From 3e45b6281245ade8613a88fea7284cc871f3b41f Mon Sep 17 00:00:00 2001 From: Nexoniarz Date: Mon, 26 Oct 2026 00:18:53 +0100 Subject: [PATCH] Enums whose variants hold values enum Shape { Circle(float), Rect(float, float), Point }; Shape.Circle(2.0) makes one, match names the values (Circle(r), _ to ignore), exhaustive like plain enums, printing shows Rect(2, 3.5). Underneath it is a struct (tag + every variant's values), so copying, freeing, methods and valgrind-cleanliness come with it. Also: stray note files removed. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_015f73FesGZGYPkmDvUcj6QX --- bootstrap/linux-aarch64.ll | 70405 ++++++++++++++------------- bootstrap/linux-x86_64.ll | 70405 ++++++++++++++------------- docs/en/for-engineers.md | 2 +- docs/en/for-technicians.md | 25 +- docs/pl/dla-inzynierow.md | 2 +- docs/pl/dla-technikow.md | 25 +- notatka.txt | 1 - note.txt | 1 - src/gen.fch | 251 +- src/parser.fch | 50 +- tests/new/fail/payload_missing.fch | 12 + tests/new/payload_enums.fch | 38 + tests/new/payload_enums.out | 6 + 13 files changed, 74828 insertions(+), 66395 deletions(-) delete mode 100644 notatka.txt delete mode 100644 note.txt create mode 100644 tests/new/fail/payload_missing.fch create mode 100644 tests/new/payload_enums.fch create mode 100644 tests/new/payload_enums.out diff --git a/bootstrap/linux-aarch64.ll b/bootstrap/linux-aarch64.ll index 782dead..466a007 100644 --- a/bootstrap/linux-aarch64.ll +++ b/bootstrap/linux-aarch64.ll @@ -16,6 +16,8 @@ target triple = "aarch64-unknown-linux-gnu" %S.gen.Binds = type { { ptr, i64, i64 }, { ptr, i64, i64 } } %S.gen.EnumDef = type { { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 } } %S.gen.Cleanup = type { i1, i64 } +%S.gen.SumDef = type { { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 } } +%S.gen.SumPat = type { i64, { ptr, i64, i64 } } %S.gen.Scope = type { { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 } } %S.gen.Pending = type { { ptr, i64, i64 }, %S.ast.Type, i1 } %S.gen.Loop = type { { ptr, i64, i64 }, { ptr, i64, i64 }, i64, i64 } @@ -25,7 +27,7 @@ target triple = "aarch64-unknown-linux-gnu" %S.gen.Place = type { { ptr, i64, i64 }, %S.ast.Type } %S.gen.Ref = type { i1, %S.gen.Place, %S.gen.Val } %S.cimport.CImports = type { { ptr, i64, i64, i64, ptr, i64, i64 }, { ptr, i64, i64, i64, ptr, i64, i64 }, { ptr, i64, i64, i64, ptr, i64, i64 }, { ptr, i64, i64, i64, ptr, i64, i64 }, { ptr, i64, i64 } } -%S.gen.Gen = type { { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, i64, i64, i64, i1, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, %S.gen.FnSig, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, i64, %S.cimport.CImports, i1, i1, { ptr, i64, i64 }, i1, %S.platform.Target, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64, i64, ptr, i64, i64 }, { ptr, i64, i64 }, i64, i64, i64, i64, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, i1, i64, i64 } +%S.gen.Gen = type { { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, i64, i64, i64, i1, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, %S.gen.FnSig, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, i64, %S.cimport.CImports, i1, i1, { ptr, i64, i64 }, i1, %S.platform.Target, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64, i64, ptr, i64, i64 }, { ptr, i64, i64 }, i64, i64, i64, i64, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, i1, i64, i64 } %S.gen.Saved = type { { ptr, i64, i64 }, { ptr, i64, i64 }, i64, i1, i64 } %S.gen.SizeAlign = type { i64, i64 } %S.gen.Fallible = type { %S.gen.Val, { ptr, i64, i64 }, { ptr, i64, i64 } } @@ -877,6622 +879,6830 @@ declare ptr @getenv(ptr) @.str.768 = private unnamed_addr constant [8 x i8] c"variant\00" @.str.769 = private unnamed_addr constant [6 x i8] c"ident\00" @.str.770 = private unnamed_addr constant [25 x i8] c"a variant name, like Red\00" -@.str.771 = private unnamed_addr constant [2 x i8] c"=\00" -@.str.772 = private unnamed_addr constant [1 x i8] c"\00" -@.str.773 = private unnamed_addr constant [2 x i8] c"-\00" -@.str.774 = private unnamed_addr constant [2 x i8] c"-\00" -@.str.775 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.776 = private unnamed_addr constant [31 x i8] c"a whole number, like Ok = 200\00" -@.str.777 = private unnamed_addr constant [2 x i8] c",\00" -@.str.778 = private unnamed_addr constant [10 x i8] c"the enum \00" -@.str.779 = private unnamed_addr constant [17 x i8] c" has no variants\00" -@.str.780 = private unnamed_addr constant [6 x i8] c"match\00" -@.str.781 = private unnamed_addr constant [6 x i8] c"match\00" -@.str.782 = private unnamed_addr constant [8 x i8] c"'match'\00" -@.str.783 = private unnamed_addr constant [2 x i8] c"{\00" -@.str.784 = private unnamed_addr constant [4 x i8] c"'{'\00" -@.str.785 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.786 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.787 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.788 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.789 = private unnamed_addr constant [2 x i8] c"}\00" -@.str.790 = private unnamed_addr constant [4 x i8] c"eof\00" -@.str.791 = private unnamed_addr constant [38 x i8] c"a match is never closed (missing '}')\00" -@.str.792 = private unnamed_addr constant [4 x i8] c"arm\00" -@.str.793 = private unnamed_addr constant [9 x i8] c"patterns\00" -@.str.794 = private unnamed_addr constant [5 x i8] c"else\00" -@.str.795 = private unnamed_addr constant [2 x i8] c",\00" -@.str.796 = private unnamed_addr constant [3 x i8] c"->\00" -@.str.797 = private unnamed_addr constant [58 x i8] c"'->' after the value to match, like Red -> print(\22red\22)\00" -@.str.798 = private unnamed_addr constant [2 x i8] c"{\00" -@.str.799 = private unnamed_addr constant [2 x i8] c",\00" -@.str.800 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.801 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.802 = private unnamed_addr constant [31 x i8] c"a match needs at least one arm\00" -@.str.803 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.804 = private unnamed_addr constant [4 x i8] c"'['\00" -@.str.805 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.806 = private unnamed_addr constant [30 x i8] c"a type parameter name, like T\00" -@.str.807 = private unnamed_addr constant [2 x i8] c",\00" -@.str.808 = private unnamed_addr constant [2 x i8] c"]\00" -@.str.809 = private unnamed_addr constant [30 x i8] c"']' after the type parameters\00" -@.str.810 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.811 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.812 = private unnamed_addr constant [9 x i8] c"'struct'\00" -@.str.813 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.814 = private unnamed_addr constant [14 x i8] c"a struct name\00" -@.str.815 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.816 = private unnamed_addr constant [2 x i8] c"{\00" -@.str.817 = private unnamed_addr constant [4 x i8] c"'{'\00" -@.str.818 = private unnamed_addr constant [2 x i8] c"}\00" -@.str.819 = private unnamed_addr constant [4 x i8] c"eof\00" -@.str.820 = private unnamed_addr constant [39 x i8] c"a struct is never closed (missing '}')\00" -@.str.821 = private unnamed_addr constant [6 x i8] c"field\00" -@.str.822 = private unnamed_addr constant [12 x i8] c"unexpected \00" -@.str.823 = private unnamed_addr constant [29 x i8] c" (a field looks like: int x)\00" -@.str.824 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.825 = private unnamed_addr constant [13 x i8] c"a field name\00" -@.str.826 = private unnamed_addr constant [2 x i8] c"=\00" -@.str.827 = private unnamed_addr constant [3 x i8] c"fn\00" -@.str.828 = private unnamed_addr constant [7 x i8] c"export\00" -@.str.829 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.830 = private unnamed_addr constant [69 x i8] c"functions start with 'fn', like: fn add(int a, int b) -> int { ... }\00" -@.str.831 = private unnamed_addr constant [3 x i8] c"fn\00" -@.str.832 = private unnamed_addr constant [27 x i8] c"'fn', 'struct' or 'import'\00" +@.str.771 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.772 = private unnamed_addr constant [2 x i8] c")\00" +@.str.773 = private unnamed_addr constant [6 x i8] c"field\00" +@.str.774 = private unnamed_addr constant [2 x i8] c",\00" +@.str.775 = private unnamed_addr constant [2 x i8] c")\00" +@.str.776 = private unnamed_addr constant [36 x i8] c"')' after the values of the variant\00" +@.str.777 = private unnamed_addr constant [13 x i8] c"the variant \00" +@.str.778 = private unnamed_addr constant [28 x i8] c" has empty () : write just \00" +@.str.779 = private unnamed_addr constant [21 x i8] c" if it holds nothing\00" +@.str.780 = private unnamed_addr constant [2 x i8] c"=\00" +@.str.781 = private unnamed_addr constant [53 x i8] c"a variant can't have both values inside and a number\00" +@.str.782 = private unnamed_addr constant [1 x i8] c"\00" +@.str.783 = private unnamed_addr constant [2 x i8] c"-\00" +@.str.784 = private unnamed_addr constant [2 x i8] c"-\00" +@.str.785 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.786 = private unnamed_addr constant [31 x i8] c"a whole number, like Ok = 200\00" +@.str.787 = private unnamed_addr constant [2 x i8] c",\00" +@.str.788 = private unnamed_addr constant [10 x i8] c"the enum \00" +@.str.789 = private unnamed_addr constant [17 x i8] c" has no variants\00" +@.str.790 = private unnamed_addr constant [55 x i8] c"an enum whose variants hold values can't number them (\00" +@.str.791 = private unnamed_addr constant [4 x i8] c" = \00" +@.str.792 = private unnamed_addr constant [2 x i8] c")\00" +@.str.793 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.794 = private unnamed_addr constant [6 x i8] c"field\00" +@.str.795 = private unnamed_addr constant [4 x i8] c"tag\00" +@.str.796 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.797 = private unnamed_addr constant [6 x i8] c"field\00" +@.str.798 = private unnamed_addr constant [2 x i8] c"_\00" +@.str.799 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.800 = private unnamed_addr constant [6 x i8] c"match\00" +@.str.801 = private unnamed_addr constant [6 x i8] c"match\00" +@.str.802 = private unnamed_addr constant [8 x i8] c"'match'\00" +@.str.803 = private unnamed_addr constant [2 x i8] c"{\00" +@.str.804 = private unnamed_addr constant [4 x i8] c"'{'\00" +@.str.805 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.806 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.807 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.808 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.809 = private unnamed_addr constant [2 x i8] c"}\00" +@.str.810 = private unnamed_addr constant [4 x i8] c"eof\00" +@.str.811 = private unnamed_addr constant [38 x i8] c"a match is never closed (missing '}')\00" +@.str.812 = private unnamed_addr constant [4 x i8] c"arm\00" +@.str.813 = private unnamed_addr constant [9 x i8] c"patterns\00" +@.str.814 = private unnamed_addr constant [5 x i8] c"else\00" +@.str.815 = private unnamed_addr constant [2 x i8] c",\00" +@.str.816 = private unnamed_addr constant [3 x i8] c"->\00" +@.str.817 = private unnamed_addr constant [58 x i8] c"'->' after the value to match, like Red -> print(\22red\22)\00" +@.str.818 = private unnamed_addr constant [2 x i8] c"{\00" +@.str.819 = private unnamed_addr constant [2 x i8] c",\00" +@.str.820 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.821 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.822 = private unnamed_addr constant [31 x i8] c"a match needs at least one arm\00" +@.str.823 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.824 = private unnamed_addr constant [4 x i8] c"'['\00" +@.str.825 = private unnamed_addr constant [6 x i8] c"ident\00" +@.str.826 = private unnamed_addr constant [30 x i8] c"a type parameter name, like T\00" +@.str.827 = private unnamed_addr constant [2 x i8] c",\00" +@.str.828 = private unnamed_addr constant [2 x i8] c"]\00" +@.str.829 = private unnamed_addr constant [30 x i8] c"']' after the type parameters\00" +@.str.830 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.831 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.832 = private unnamed_addr constant [9 x i8] c"'struct'\00" @.str.833 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.834 = private unnamed_addr constant [16 x i8] c"a function name\00" +@.str.834 = private unnamed_addr constant [14 x i8] c"a struct name\00" @.str.835 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.836 = private unnamed_addr constant [2 x i8] c".\00" -@.str.837 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.838 = private unnamed_addr constant [14 x i8] c"a method name\00" -@.str.839 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.840 = private unnamed_addr constant [4 x i8] c"'('\00" -@.str.841 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.842 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.843 = private unnamed_addr constant [2 x i8] c")\00" -@.str.844 = private unnamed_addr constant [6 x i8] c"param\00" -@.str.845 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.846 = private unnamed_addr constant [17 x i8] c"a parameter name\00" -@.str.847 = private unnamed_addr constant [2 x i8] c",\00" -@.str.848 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.849 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.850 = private unnamed_addr constant [2 x i8] c")\00" -@.str.851 = private unnamed_addr constant [4 x i8] c"')'\00" -@.str.852 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.853 = private unnamed_addr constant [3 x i8] c"->\00" -@.str.854 = private unnamed_addr constant [2 x i8] c"!\00" -@.str.855 = private unnamed_addr constant [2 x i8] c"!\00" -@.str.856 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.857 = private unnamed_addr constant [12 x i8] c"unexpected \00" -@.str.858 = private unnamed_addr constant [62 x i8] c" (after '->' comes a type, or ! for a function that can fail)\00" -@.str.859 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.860 = private unnamed_addr constant [6 x i8] c"block\00" -@.str.861 = private unnamed_addr constant [2 x i8] c"{\00" -@.str.862 = private unnamed_addr constant [4 x i8] c"'{'\00" -@.str.863 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.864 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.865 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.866 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.867 = private unnamed_addr constant [2 x i8] c"}\00" -@.str.868 = private unnamed_addr constant [4 x i8] c"eof\00" -@.str.869 = private unnamed_addr constant [36 x i8] c"a '{' is never closed (missing '}')\00" -@.str.870 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.871 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.872 = private unnamed_addr constant [3 x i8] c"if\00" -@.str.873 = private unnamed_addr constant [6 x i8] c"while\00" -@.str.874 = private unnamed_addr constant [6 x i8] c"while\00" -@.str.875 = private unnamed_addr constant [4 x i8] c"for\00" -@.str.876 = private unnamed_addr constant [4 x i8] c"for\00" -@.str.877 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.878 = private unnamed_addr constant [21 x i8] c"a loop variable name\00" -@.str.879 = private unnamed_addr constant [2 x i8] c",\00" -@.str.880 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.881 = private unnamed_addr constant [28 x i8] c"a second loop variable name\00" -@.str.882 = private unnamed_addr constant [3 x i8] c"in\00" -@.str.883 = private unnamed_addr constant [5 x i8] c"'in'\00" -@.str.884 = private unnamed_addr constant [3 x i8] c"..\00" -@.str.885 = private unnamed_addr constant [56 x i8] c"a range of numbers has one loop variable: for i in 0..n\00" -@.str.886 = private unnamed_addr constant [5 x i8] c"each\00" -@.str.887 = private unnamed_addr constant [6 x i8] c"match\00" -@.str.888 = private unnamed_addr constant [7 x i8] c"return\00" -@.str.889 = private unnamed_addr constant [7 x i8] c"return\00" -@.str.890 = private unnamed_addr constant [2 x i8] c"}\00" -@.str.891 = private unnamed_addr constant [6 x i8] c"break\00" -@.str.892 = private unnamed_addr constant [9 x i8] c"continue\00" -@.str.893 = private unnamed_addr constant [2 x i8] c"{\00" -@.str.894 = private unnamed_addr constant [6 x i8] c"defer\00" -@.str.895 = private unnamed_addr constant [6 x i8] c"defer\00" -@.str.896 = private unnamed_addr constant [6 x i8] c"defer\00" -@.str.897 = private unnamed_addr constant [34 x i8] c"defer inside defer is not allowed\00" -@.str.898 = private unnamed_addr constant [3 x i8] c"fn\00" -@.str.899 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.900 = private unnamed_addr constant [7 x i8] c"import\00" -@.str.901 = private unnamed_addr constant [5 x i8] c"link\00" -@.str.902 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.903 = private unnamed_addr constant [49 x i8] c"' can't be used here in the self-hosted compiler\00" -@.str.904 = private unnamed_addr constant [5 x i8] c"decl\00" -@.str.905 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.906 = private unnamed_addr constant [16 x i8] c"a variable name\00" -@.str.907 = private unnamed_addr constant [2 x i8] c"=\00" -@.str.908 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.909 = private unnamed_addr constant [3 x i8] c":=\00" -@.str.910 = private unnamed_addr constant [5 x i8] c"decl\00" -@.str.911 = private unnamed_addr constant [2 x i8] c"=\00" -@.str.912 = private unnamed_addr constant [3 x i8] c"+=\00" -@.str.913 = private unnamed_addr constant [3 x i8] c"-=\00" -@.str.914 = private unnamed_addr constant [3 x i8] c"*=\00" -@.str.915 = private unnamed_addr constant [3 x i8] c"/=\00" -@.str.916 = private unnamed_addr constant [3 x i8] c"%=\00" -@.str.917 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.918 = private unnamed_addr constant [7 x i8] c"member\00" -@.str.919 = private unnamed_addr constant [6 x i8] c"index\00" -@.str.920 = private unnamed_addr constant [67 x i8] c"only a variable, a field, an element or p.value can be assigned to\00" -@.str.921 = private unnamed_addr constant [7 x i8] c"assign\00" -@.str.922 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.923 = private unnamed_addr constant [29 x i8] c"used .file on a null pointer\00" -@.str.924 = private unnamed_addr constant [5 x i8] c"call\00" -@.str.925 = private unnamed_addr constant [7 x i8] c"method\00" -@.str.926 = private unnamed_addr constant [4 x i8] c"try\00" -@.str.927 = private unnamed_addr constant [3 x i8] c"or\00" -@.str.928 = private unnamed_addr constant [38 x i8] c"this value is computed but never used\00" -@.str.929 = private unnamed_addr constant [5 x i8] c"expr\00" -@.str.930 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.931 = private unnamed_addr constant [29 x i8] c"used .file on a null pointer\00" -@.str.932 = private unnamed_addr constant [3 x i8] c"if\00" -@.str.933 = private unnamed_addr constant [3 x i8] c"if\00" -@.str.934 = private unnamed_addr constant [5 x i8] c"'if'\00" -@.str.935 = private unnamed_addr constant [5 x i8] c"else\00" -@.str.936 = private unnamed_addr constant [3 x i8] c"if\00" -@.str.937 = private unnamed_addr constant [3 x i8] c"||\00" -@.str.938 = private unnamed_addr constant [3 x i8] c"&&\00" -@.str.939 = private unnamed_addr constant [3 x i8] c"==\00" -@.str.940 = private unnamed_addr constant [3 x i8] c"!=\00" -@.str.941 = private unnamed_addr constant [2 x i8] c"<\00" -@.str.942 = private unnamed_addr constant [3 x i8] c"<=\00" -@.str.943 = private unnamed_addr constant [2 x i8] c">\00" -@.str.944 = private unnamed_addr constant [3 x i8] c">=\00" -@.str.945 = private unnamed_addr constant [2 x i8] c"+\00" -@.str.946 = private unnamed_addr constant [2 x i8] c"-\00" -@.str.947 = private unnamed_addr constant [2 x i8] c"|\00" -@.str.948 = private unnamed_addr constant [2 x i8] c"^\00" -@.str.949 = private unnamed_addr constant [2 x i8] c"*\00" -@.str.950 = private unnamed_addr constant [2 x i8] c"/\00" -@.str.951 = private unnamed_addr constant [2 x i8] c"%\00" -@.str.952 = private unnamed_addr constant [3 x i8] c"<<\00" -@.str.953 = private unnamed_addr constant [3 x i8] c">>\00" -@.str.954 = private unnamed_addr constant [2 x i8] c"&\00" -@.str.955 = private unnamed_addr constant [3 x i8] c"or\00" -@.str.956 = private unnamed_addr constant [3 x i8] c"or\00" -@.str.957 = private unnamed_addr constant [2 x i8] c"{\00" -@.str.958 = private unnamed_addr constant [7 x i8] c"binary\00" -@.str.959 = private unnamed_addr constant [4 x i8] c"try\00" -@.str.960 = private unnamed_addr constant [4 x i8] c"try\00" -@.str.961 = private unnamed_addr constant [2 x i8] c"-\00" -@.str.962 = private unnamed_addr constant [2 x i8] c"!\00" -@.str.963 = private unnamed_addr constant [2 x i8] c"~\00" -@.str.964 = private unnamed_addr constant [6 x i8] c"unary\00" -@.str.965 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.966 = private unnamed_addr constant [4 x i8] c"'('\00" -@.str.967 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.968 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.969 = private unnamed_addr constant [2 x i8] c")\00" -@.str.970 = private unnamed_addr constant [2 x i8] c")\00" -@.str.971 = private unnamed_addr constant [1 x i8] c"\00" -@.str.972 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.973 = private unnamed_addr constant [2 x i8] c":\00" -@.str.974 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.975 = private unnamed_addr constant [30 x i8] c"used .names on a null pointer\00" -@.str.976 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.977 = private unnamed_addr constant [29 x i8] c"used .kids on a null pointer\00" -@.str.978 = private unnamed_addr constant [2 x i8] c",\00" -@.str.979 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.980 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.981 = private unnamed_addr constant [2 x i8] c")\00" -@.str.982 = private unnamed_addr constant [4 x i8] c"')'\00" -@.str.983 = private unnamed_addr constant [2 x i8] c".\00" -@.str.984 = private unnamed_addr constant [7 x i8] c"member\00" -@.str.985 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.986 = private unnamed_addr constant [17 x i8] c"a name after '.'\00" -@.str.987 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.988 = private unnamed_addr constant [7 x i8] c"method\00" -@.str.989 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.990 = private unnamed_addr constant [6 x i8] c"index\00" -@.str.991 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.992 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.993 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.994 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.995 = private unnamed_addr constant [2 x i8] c"]\00" -@.str.996 = private unnamed_addr constant [4 x i8] c"']'\00" -@.str.997 = private unnamed_addr constant [1 x i8] c"\00" -@.str.998 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.999 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.1000 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.1001 = private unnamed_addr constant [7 x i8] c"string\00" -@.str.1002 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.1003 = private unnamed_addr constant [5 x i8] c"true\00" -@.str.1004 = private unnamed_addr constant [6 x i8] c"false\00" -@.str.1005 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.1006 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.1007 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.1008 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.1009 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.1010 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.836 = private unnamed_addr constant [2 x i8] c"{\00" +@.str.837 = private unnamed_addr constant [4 x i8] c"'{'\00" +@.str.838 = private unnamed_addr constant [2 x i8] c"}\00" +@.str.839 = private unnamed_addr constant [4 x i8] c"eof\00" +@.str.840 = private unnamed_addr constant [39 x i8] c"a struct is never closed (missing '}')\00" +@.str.841 = private unnamed_addr constant [6 x i8] c"field\00" +@.str.842 = private unnamed_addr constant [12 x i8] c"unexpected \00" +@.str.843 = private unnamed_addr constant [29 x i8] c" (a field looks like: int x)\00" +@.str.844 = private unnamed_addr constant [6 x i8] c"ident\00" +@.str.845 = private unnamed_addr constant [13 x i8] c"a field name\00" +@.str.846 = private unnamed_addr constant [2 x i8] c"=\00" +@.str.847 = private unnamed_addr constant [3 x i8] c"fn\00" +@.str.848 = private unnamed_addr constant [7 x i8] c"export\00" +@.str.849 = private unnamed_addr constant [6 x i8] c"ident\00" +@.str.850 = private unnamed_addr constant [69 x i8] c"functions start with 'fn', like: fn add(int a, int b) -> int { ... }\00" +@.str.851 = private unnamed_addr constant [3 x i8] c"fn\00" +@.str.852 = private unnamed_addr constant [27 x i8] c"'fn', 'struct' or 'import'\00" +@.str.853 = private unnamed_addr constant [6 x i8] c"ident\00" +@.str.854 = private unnamed_addr constant [16 x i8] c"a function name\00" +@.str.855 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.856 = private unnamed_addr constant [2 x i8] c".\00" +@.str.857 = private unnamed_addr constant [6 x i8] c"ident\00" +@.str.858 = private unnamed_addr constant [14 x i8] c"a method name\00" +@.str.859 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.860 = private unnamed_addr constant [4 x i8] c"'('\00" +@.str.861 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.862 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.863 = private unnamed_addr constant [2 x i8] c")\00" +@.str.864 = private unnamed_addr constant [6 x i8] c"param\00" +@.str.865 = private unnamed_addr constant [6 x i8] c"ident\00" +@.str.866 = private unnamed_addr constant [17 x i8] c"a parameter name\00" +@.str.867 = private unnamed_addr constant [2 x i8] c",\00" +@.str.868 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.869 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.870 = private unnamed_addr constant [2 x i8] c")\00" +@.str.871 = private unnamed_addr constant [4 x i8] c"')'\00" +@.str.872 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.873 = private unnamed_addr constant [3 x i8] c"->\00" +@.str.874 = private unnamed_addr constant [2 x i8] c"!\00" +@.str.875 = private unnamed_addr constant [2 x i8] c"!\00" +@.str.876 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.877 = private unnamed_addr constant [12 x i8] c"unexpected \00" +@.str.878 = private unnamed_addr constant [62 x i8] c" (after '->' comes a type, or ! for a function that can fail)\00" +@.str.879 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.880 = private unnamed_addr constant [6 x i8] c"block\00" +@.str.881 = private unnamed_addr constant [2 x i8] c"{\00" +@.str.882 = private unnamed_addr constant [4 x i8] c"'{'\00" +@.str.883 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.884 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.885 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.886 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.887 = private unnamed_addr constant [2 x i8] c"}\00" +@.str.888 = private unnamed_addr constant [4 x i8] c"eof\00" +@.str.889 = private unnamed_addr constant [36 x i8] c"a '{' is never closed (missing '}')\00" +@.str.890 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.891 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.892 = private unnamed_addr constant [3 x i8] c"if\00" +@.str.893 = private unnamed_addr constant [6 x i8] c"while\00" +@.str.894 = private unnamed_addr constant [6 x i8] c"while\00" +@.str.895 = private unnamed_addr constant [4 x i8] c"for\00" +@.str.896 = private unnamed_addr constant [4 x i8] c"for\00" +@.str.897 = private unnamed_addr constant [6 x i8] c"ident\00" +@.str.898 = private unnamed_addr constant [21 x i8] c"a loop variable name\00" +@.str.899 = private unnamed_addr constant [2 x i8] c",\00" +@.str.900 = private unnamed_addr constant [6 x i8] c"ident\00" +@.str.901 = private unnamed_addr constant [28 x i8] c"a second loop variable name\00" +@.str.902 = private unnamed_addr constant [3 x i8] c"in\00" +@.str.903 = private unnamed_addr constant [5 x i8] c"'in'\00" +@.str.904 = private unnamed_addr constant [3 x i8] c"..\00" +@.str.905 = private unnamed_addr constant [56 x i8] c"a range of numbers has one loop variable: for i in 0..n\00" +@.str.906 = private unnamed_addr constant [5 x i8] c"each\00" +@.str.907 = private unnamed_addr constant [6 x i8] c"match\00" +@.str.908 = private unnamed_addr constant [7 x i8] c"return\00" +@.str.909 = private unnamed_addr constant [7 x i8] c"return\00" +@.str.910 = private unnamed_addr constant [2 x i8] c"}\00" +@.str.911 = private unnamed_addr constant [6 x i8] c"break\00" +@.str.912 = private unnamed_addr constant [9 x i8] c"continue\00" +@.str.913 = private unnamed_addr constant [2 x i8] c"{\00" +@.str.914 = private unnamed_addr constant [6 x i8] c"defer\00" +@.str.915 = private unnamed_addr constant [6 x i8] c"defer\00" +@.str.916 = private unnamed_addr constant [6 x i8] c"defer\00" +@.str.917 = private unnamed_addr constant [34 x i8] c"defer inside defer is not allowed\00" +@.str.918 = private unnamed_addr constant [3 x i8] c"fn\00" +@.str.919 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.920 = private unnamed_addr constant [7 x i8] c"import\00" +@.str.921 = private unnamed_addr constant [5 x i8] c"link\00" +@.str.922 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.923 = private unnamed_addr constant [49 x i8] c"' can't be used here in the self-hosted compiler\00" +@.str.924 = private unnamed_addr constant [5 x i8] c"decl\00" +@.str.925 = private unnamed_addr constant [6 x i8] c"ident\00" +@.str.926 = private unnamed_addr constant [16 x i8] c"a variable name\00" +@.str.927 = private unnamed_addr constant [2 x i8] c"=\00" +@.str.928 = private unnamed_addr constant [6 x i8] c"ident\00" +@.str.929 = private unnamed_addr constant [3 x i8] c":=\00" +@.str.930 = private unnamed_addr constant [5 x i8] c"decl\00" +@.str.931 = private unnamed_addr constant [2 x i8] c"=\00" +@.str.932 = private unnamed_addr constant [3 x i8] c"+=\00" +@.str.933 = private unnamed_addr constant [3 x i8] c"-=\00" +@.str.934 = private unnamed_addr constant [3 x i8] c"*=\00" +@.str.935 = private unnamed_addr constant [3 x i8] c"/=\00" +@.str.936 = private unnamed_addr constant [3 x i8] c"%=\00" +@.str.937 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.938 = private unnamed_addr constant [7 x i8] c"member\00" +@.str.939 = private unnamed_addr constant [6 x i8] c"index\00" +@.str.940 = private unnamed_addr constant [67 x i8] c"only a variable, a field, an element or p.value can be assigned to\00" +@.str.941 = private unnamed_addr constant [7 x i8] c"assign\00" +@.str.942 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.943 = private unnamed_addr constant [29 x i8] c"used .file on a null pointer\00" +@.str.944 = private unnamed_addr constant [5 x i8] c"call\00" +@.str.945 = private unnamed_addr constant [7 x i8] c"method\00" +@.str.946 = private unnamed_addr constant [4 x i8] c"try\00" +@.str.947 = private unnamed_addr constant [3 x i8] c"or\00" +@.str.948 = private unnamed_addr constant [38 x i8] c"this value is computed but never used\00" +@.str.949 = private unnamed_addr constant [5 x i8] c"expr\00" +@.str.950 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.951 = private unnamed_addr constant [29 x i8] c"used .file on a null pointer\00" +@.str.952 = private unnamed_addr constant [3 x i8] c"if\00" +@.str.953 = private unnamed_addr constant [3 x i8] c"if\00" +@.str.954 = private unnamed_addr constant [5 x i8] c"'if'\00" +@.str.955 = private unnamed_addr constant [5 x i8] c"else\00" +@.str.956 = private unnamed_addr constant [3 x i8] c"if\00" +@.str.957 = private unnamed_addr constant [3 x i8] c"||\00" +@.str.958 = private unnamed_addr constant [3 x i8] c"&&\00" +@.str.959 = private unnamed_addr constant [3 x i8] c"==\00" +@.str.960 = private unnamed_addr constant [3 x i8] c"!=\00" +@.str.961 = private unnamed_addr constant [2 x i8] c"<\00" +@.str.962 = private unnamed_addr constant [3 x i8] c"<=\00" +@.str.963 = private unnamed_addr constant [2 x i8] c">\00" +@.str.964 = private unnamed_addr constant [3 x i8] c">=\00" +@.str.965 = private unnamed_addr constant [2 x i8] c"+\00" +@.str.966 = private unnamed_addr constant [2 x i8] c"-\00" +@.str.967 = private unnamed_addr constant [2 x i8] c"|\00" +@.str.968 = private unnamed_addr constant [2 x i8] c"^\00" +@.str.969 = private unnamed_addr constant [2 x i8] c"*\00" +@.str.970 = private unnamed_addr constant [2 x i8] c"/\00" +@.str.971 = private unnamed_addr constant [2 x i8] c"%\00" +@.str.972 = private unnamed_addr constant [3 x i8] c"<<\00" +@.str.973 = private unnamed_addr constant [3 x i8] c">>\00" +@.str.974 = private unnamed_addr constant [2 x i8] c"&\00" +@.str.975 = private unnamed_addr constant [3 x i8] c"or\00" +@.str.976 = private unnamed_addr constant [3 x i8] c"or\00" +@.str.977 = private unnamed_addr constant [2 x i8] c"{\00" +@.str.978 = private unnamed_addr constant [7 x i8] c"binary\00" +@.str.979 = private unnamed_addr constant [4 x i8] c"try\00" +@.str.980 = private unnamed_addr constant [4 x i8] c"try\00" +@.str.981 = private unnamed_addr constant [2 x i8] c"-\00" +@.str.982 = private unnamed_addr constant [2 x i8] c"!\00" +@.str.983 = private unnamed_addr constant [2 x i8] c"~\00" +@.str.984 = private unnamed_addr constant [6 x i8] c"unary\00" +@.str.985 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.986 = private unnamed_addr constant [4 x i8] c"'('\00" +@.str.987 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.988 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.989 = private unnamed_addr constant [2 x i8] c")\00" +@.str.990 = private unnamed_addr constant [2 x i8] c")\00" +@.str.991 = private unnamed_addr constant [1 x i8] c"\00" +@.str.992 = private unnamed_addr constant [6 x i8] c"ident\00" +@.str.993 = private unnamed_addr constant [2 x i8] c":\00" +@.str.994 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.995 = private unnamed_addr constant [30 x i8] c"used .names on a null pointer\00" +@.str.996 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.997 = private unnamed_addr constant [29 x i8] c"used .kids on a null pointer\00" +@.str.998 = private unnamed_addr constant [2 x i8] c",\00" +@.str.999 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.1000 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.1001 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1002 = private unnamed_addr constant [4 x i8] c"')'\00" +@.str.1003 = private unnamed_addr constant [2 x i8] c".\00" +@.str.1004 = private unnamed_addr constant [7 x i8] c"member\00" +@.str.1005 = private unnamed_addr constant [6 x i8] c"ident\00" +@.str.1006 = private unnamed_addr constant [17 x i8] c"a name after '.'\00" +@.str.1007 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.1008 = private unnamed_addr constant [7 x i8] c"method\00" +@.str.1009 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.1010 = private unnamed_addr constant [6 x i8] c"index\00" @.str.1011 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" @.str.1012 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.1013 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1014 = private unnamed_addr constant [4 x i8] c"')'\00" -@.str.1015 = private unnamed_addr constant [6 x i8] c"match\00" -@.str.1016 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.1017 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.1018 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.1019 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.1020 = private unnamed_addr constant [2 x i8] c":\00" -@.str.1021 = private unnamed_addr constant [2 x i8] c"]\00" -@.str.1022 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.1023 = private unnamed_addr constant [2 x i8] c"]\00" -@.str.1024 = private unnamed_addr constant [2 x i8] c":\00" -@.str.1025 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.1026 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.1027 = private unnamed_addr constant [2 x i8] c":\00" -@.str.1028 = private unnamed_addr constant [42 x i8] c"':' (a map entry looks like \22key\22: value)\00" -@.str.1029 = private unnamed_addr constant [2 x i8] c",\00" -@.str.1030 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.1031 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.1032 = private unnamed_addr constant [2 x i8] c"]\00" -@.str.1033 = private unnamed_addr constant [4 x i8] c"']'\00" -@.str.1034 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.1035 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.1036 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.1037 = private unnamed_addr constant [29 x i8] c"used .toks on a null pointer\00" +@.str.1013 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.1014 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.1015 = private unnamed_addr constant [2 x i8] c"]\00" +@.str.1016 = private unnamed_addr constant [4 x i8] c"']'\00" +@.str.1017 = private unnamed_addr constant [1 x i8] c"\00" +@.str.1018 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.1019 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.1020 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.1021 = private unnamed_addr constant [7 x i8] c"string\00" +@.str.1022 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.1023 = private unnamed_addr constant [5 x i8] c"true\00" +@.str.1024 = private unnamed_addr constant [6 x i8] c"false\00" +@.str.1025 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.1026 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.1027 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.1028 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.1029 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.1030 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.1031 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.1032 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.1033 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1034 = private unnamed_addr constant [4 x i8] c"')'\00" +@.str.1035 = private unnamed_addr constant [6 x i8] c"match\00" +@.str.1036 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.1037 = private unnamed_addr constant [6 x i8] c"array\00" @.str.1038 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.1039 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.1040 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.1041 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.1042 = private unnamed_addr constant [6 x i8] c"targs\00" -@.str.1043 = private unnamed_addr constant [2 x i8] c",\00" -@.str.1044 = private unnamed_addr constant [2 x i8] c"]\00" -@.str.1045 = private unnamed_addr constant [29 x i8] c"']' after the type arguments\00" -@.str.1046 = private unnamed_addr constant [5 x i8] c"call\00" -@.str.1047 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.1048 = private unnamed_addr constant [5 x i8] c"call\00" -@.str.1049 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.1050 = private unnamed_addr constant [12 x i8] c"unexpected \00" -@.str.1051 = private unnamed_addr constant [20 x i8] c" (expected a value)\00" -@.str.1052 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1053 = private unnamed_addr constant [2 x i8] c"\5C\00" -@.str.1054 = private unnamed_addr constant [3 x i8] c"\5C\5C\00" -@.str.1055 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1056 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.1057 = private unnamed_addr constant [3 x i8] c"\5Cn\00" -@.str.1058 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1059 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1060 = private unnamed_addr constant [2 x i8] c" \00" -@.str.1061 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1062 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" -@.str.1063 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1064 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" -@.str.1065 = private unnamed_addr constant [4 x i8] c"@R\09\00" -@.str.1066 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1067 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" -@.str.1068 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1069 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1070 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1071 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1072 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1073 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1074 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1075 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1076 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1077 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1039 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.1040 = private unnamed_addr constant [2 x i8] c":\00" +@.str.1041 = private unnamed_addr constant [2 x i8] c"]\00" +@.str.1042 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.1043 = private unnamed_addr constant [2 x i8] c"]\00" +@.str.1044 = private unnamed_addr constant [2 x i8] c":\00" +@.str.1045 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.1046 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.1047 = private unnamed_addr constant [2 x i8] c":\00" +@.str.1048 = private unnamed_addr constant [42 x i8] c"':' (a map entry looks like \22key\22: value)\00" +@.str.1049 = private unnamed_addr constant [2 x i8] c",\00" +@.str.1050 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.1051 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.1052 = private unnamed_addr constant [2 x i8] c"]\00" +@.str.1053 = private unnamed_addr constant [4 x i8] c"']'\00" +@.str.1054 = private unnamed_addr constant [6 x i8] c"ident\00" +@.str.1055 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.1056 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.1057 = private unnamed_addr constant [29 x i8] c"used .toks on a null pointer\00" +@.str.1058 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.1059 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.1060 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.1061 = private unnamed_addr constant [6 x i8] c"ident\00" +@.str.1062 = private unnamed_addr constant [6 x i8] c"targs\00" +@.str.1063 = private unnamed_addr constant [2 x i8] c",\00" +@.str.1064 = private unnamed_addr constant [2 x i8] c"]\00" +@.str.1065 = private unnamed_addr constant [29 x i8] c"']' after the type arguments\00" +@.str.1066 = private unnamed_addr constant [5 x i8] c"call\00" +@.str.1067 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.1068 = private unnamed_addr constant [5 x i8] c"call\00" +@.str.1069 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.1070 = private unnamed_addr constant [12 x i8] c"unexpected \00" +@.str.1071 = private unnamed_addr constant [20 x i8] c" (expected a value)\00" +@.str.1072 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1073 = private unnamed_addr constant [2 x i8] c"\5C\00" +@.str.1074 = private unnamed_addr constant [3 x i8] c"\5C\5C\00" +@.str.1075 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1076 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.1077 = private unnamed_addr constant [3 x i8] c"\5Cn\00" @.str.1078 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1079 = private unnamed_addr constant [2 x i8] c".\00" -@.str.1080 = private unnamed_addr constant [4 x i8] c"fn \00" -@.str.1081 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.1082 = private unnamed_addr constant [3 x i8] c", \00" -@.str.1083 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1084 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.1085 = private unnamed_addr constant [6 x i8] c" -> !\00" -@.str.1086 = private unnamed_addr constant [5 x i8] c" -> \00" -@.str.1087 = private unnamed_addr constant [2 x i8] c"!\00" -@.str.1088 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.1089 = private unnamed_addr constant [5 x i8] c" -> \00" -@.str.1090 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1091 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" -@.str.1092 = private unnamed_addr constant [7 x i8] c"method\00" -@.str.1093 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1094 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.1095 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1079 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1080 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1081 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1082 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" +@.str.1083 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1084 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" +@.str.1085 = private unnamed_addr constant [4 x i8] c"@R\09\00" +@.str.1086 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1087 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.1088 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1089 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1090 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1091 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1092 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1093 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1094 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1095 = private unnamed_addr constant [2 x i8] c"\09\00" @.str.1096 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1097 = private unnamed_addr constant [10 x i8] c"```finch\0A\00" -@.str.1098 = private unnamed_addr constant [5 x i8] c"\0A```\00" -@.str.1099 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1100 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" -@.str.1101 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1102 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1103 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" -@.str.1104 = private unnamed_addr constant [4 x i8] c"@I\09\00" -@.str.1105 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1106 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.1107 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1108 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.1109 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1097 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1098 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1099 = private unnamed_addr constant [2 x i8] c".\00" +@.str.1100 = private unnamed_addr constant [4 x i8] c"fn \00" +@.str.1101 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.1102 = private unnamed_addr constant [3 x i8] c", \00" +@.str.1103 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1104 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.1105 = private unnamed_addr constant [6 x i8] c" -> !\00" +@.str.1106 = private unnamed_addr constant [5 x i8] c" -> \00" +@.str.1107 = private unnamed_addr constant [2 x i8] c"!\00" +@.str.1108 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.1109 = private unnamed_addr constant [5 x i8] c" -> \00" @.str.1110 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1111 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1112 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1111 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" +@.str.1112 = private unnamed_addr constant [7 x i8] c"method\00" @.str.1113 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1114 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1115 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" -@.str.1116 = private unnamed_addr constant [4 x i8] c"@F\09\00" -@.str.1117 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1118 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1119 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1120 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1121 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.1114 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.1115 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1116 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1117 = private unnamed_addr constant [10 x i8] c"```finch\0A\00" +@.str.1118 = private unnamed_addr constant [5 x i8] c"\0A```\00" +@.str.1119 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1120 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.1121 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.1122 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1123 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1124 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1125 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1126 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1127 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1128 = private unnamed_addr constant [2 x i8] c"|\00" +@.str.1123 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" +@.str.1124 = private unnamed_addr constant [4 x i8] c"@I\09\00" +@.str.1125 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1126 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.1127 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1128 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.1129 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1130 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" +@.str.1130 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.1131 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1132 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.1132 = private unnamed_addr constant [2 x i8] c" \00" @.str.1133 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.1134 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1135 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1136 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" -@.str.1137 = private unnamed_addr constant [4 x i8] c"@F\09\00" +@.str.1135 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" +@.str.1136 = private unnamed_addr constant [4 x i8] c"@F\09\00" +@.str.1137 = private unnamed_addr constant [2 x i8] c"\09\00" @.str.1138 = private unnamed_addr constant [2 x i8] c"\09\00" @.str.1139 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1140 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1141 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1142 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" -@.str.1143 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1140 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1141 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.1142 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1143 = private unnamed_addr constant [2 x i8] c"\09\00" @.str.1144 = private unnamed_addr constant [2 x i8] c"\09\00" @.str.1145 = private unnamed_addr constant [2 x i8] c"\09\00" @.str.1146 = private unnamed_addr constant [2 x i8] c"\09\00" @.str.1147 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1148 = private unnamed_addr constant [4 x i8] c"fn \00" -@.str.1149 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.1150 = private unnamed_addr constant [3 x i8] c", \00" -@.str.1151 = private unnamed_addr constant [7 x i8] c"](...)\00" -@.str.1152 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1148 = private unnamed_addr constant [2 x i8] c"|\00" +@.str.1149 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1150 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" +@.str.1151 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1152 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.1153 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1154 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.1154 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.1155 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1156 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.1157 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1158 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1159 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1160 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" -@.str.1161 = private unnamed_addr constant [4 x i8] c"@S\09\00" -@.str.1162 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1163 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1164 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1165 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" -@.str.1166 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1156 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" +@.str.1157 = private unnamed_addr constant [4 x i8] c"@F\09\00" +@.str.1158 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1159 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1160 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1161 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1162 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.1163 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1164 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1165 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1166 = private unnamed_addr constant [2 x i8] c"\09\00" @.str.1167 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1168 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1169 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1170 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" -@.str.1171 = private unnamed_addr constant [5 x i8] c"@SF\09\00" +@.str.1168 = private unnamed_addr constant [4 x i8] c"fn \00" +@.str.1169 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.1170 = private unnamed_addr constant [3 x i8] c", \00" +@.str.1171 = private unnamed_addr constant [7 x i8] c"](...)\00" @.str.1172 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1173 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1174 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1175 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1176 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1173 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1174 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.1175 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1176 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.1177 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1178 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.1178 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.1179 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1180 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.1181 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1182 = private unnamed_addr constant [1 x i8] c"\00" -@.str.1183 = private unnamed_addr constant [2 x i8] c",\00" +@.str.1180 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" +@.str.1181 = private unnamed_addr constant [4 x i8] c"@S\09\00" +@.str.1182 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1183 = private unnamed_addr constant [2 x i8] c"\09\00" @.str.1184 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1185 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" -@.str.1186 = private unnamed_addr constant [4 x i8] c"@E\09\00" -@.str.1187 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1188 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.1185 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.1186 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1187 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1188 = private unnamed_addr constant [2 x i8] c"\09\00" @.str.1189 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1190 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1191 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1192 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1193 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.1190 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" +@.str.1191 = private unnamed_addr constant [5 x i8] c"@SF\09\00" +@.str.1192 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1193 = private unnamed_addr constant [2 x i8] c"\09\00" @.str.1194 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.1195 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1196 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1197 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1198 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1199 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" -@.str.1200 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1201 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" -@.str.1202 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1203 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" -@.str.1204 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.1205 = private unnamed_addr constant [1 x i8] c"\00" -@.str.1206 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.1207 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.1208 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1209 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" -@.str.1210 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1211 = private unnamed_addr constant [2 x i8] c":\00" -@.str.1212 = private unnamed_addr constant [2 x i8] c":\00" -@.str.1213 = private unnamed_addr constant [10 x i8] c": error: \00" +@.str.1196 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1197 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1198 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.1199 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1200 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.1201 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1202 = private unnamed_addr constant [1 x i8] c"\00" +@.str.1203 = private unnamed_addr constant [2 x i8] c",\00" +@.str.1204 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1205 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" +@.str.1206 = private unnamed_addr constant [4 x i8] c"@E\09\00" +@.str.1207 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1208 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.1209 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1210 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1211 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1212 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1213 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" @.str.1214 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1215 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" -@.str.1216 = private unnamed_addr constant [1 x i8] c"\00" -@.str.1217 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.1218 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.1219 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1220 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" -@.str.1221 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1222 = private unnamed_addr constant [6 x i8] c"call \00" -@.str.1223 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1224 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" -@.str.1225 = private unnamed_addr constant [3 x i8] c" \00" -@.str.1226 = private unnamed_addr constant [9 x i8] c", !dbg !\00" -@.str.1227 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1228 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" -@.str.1229 = private unnamed_addr constant [3 x i8] c" \00" +@.str.1215 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1216 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1217 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1218 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1219 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" +@.str.1220 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1221 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" +@.str.1222 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1223 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" +@.str.1224 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.1225 = private unnamed_addr constant [1 x i8] c"\00" +@.str.1226 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.1227 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.1228 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1229 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" @.str.1230 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1231 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" -@.str.1232 = private unnamed_addr constant [3 x i8] c"%t\00" -@.str.1233 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1234 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" -@.str.1235 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1236 = private unnamed_addr constant [28 x i8] c"used .lbl on a null pointer\00" -@.str.1237 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1238 = private unnamed_addr constant [28 x i8] c"used .lbl on a null pointer\00" +@.str.1231 = private unnamed_addr constant [2 x i8] c":\00" +@.str.1232 = private unnamed_addr constant [2 x i8] c":\00" +@.str.1233 = private unnamed_addr constant [10 x i8] c": error: \00" +@.str.1234 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1235 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" +@.str.1236 = private unnamed_addr constant [1 x i8] c"\00" +@.str.1237 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.1238 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str.1239 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1240 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" -@.str.1241 = private unnamed_addr constant [2 x i8] c":\00" -@.str.1242 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1243 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.1244 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1245 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.1246 = private unnamed_addr constant [11 x i8] c"br label %\00" +@.str.1240 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" +@.str.1241 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1242 = private unnamed_addr constant [6 x i8] c"call \00" +@.str.1243 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1244 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" +@.str.1245 = private unnamed_addr constant [3 x i8] c" \00" +@.str.1246 = private unnamed_addr constant [9 x i8] c", !dbg !\00" @.str.1247 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1248 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.1249 = private unnamed_addr constant [7 x i8] c"br i1 \00" -@.str.1250 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str.1251 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str.1252 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1253 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.1254 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1255 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" -@.str.1256 = private unnamed_addr constant [3 x i8] c"%a\00" +@.str.1248 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" +@.str.1249 = private unnamed_addr constant [3 x i8] c" \00" +@.str.1250 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1251 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" +@.str.1252 = private unnamed_addr constant [3 x i8] c"%t\00" +@.str.1253 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1254 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" +@.str.1255 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1256 = private unnamed_addr constant [28 x i8] c"used .lbl on a null pointer\00" @.str.1257 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1258 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" +@.str.1258 = private unnamed_addr constant [28 x i8] c"used .lbl on a null pointer\00" @.str.1259 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1260 = private unnamed_addr constant [32 x i8] c"used .allocas on a null pointer\00" -@.str.1261 = private unnamed_addr constant [3 x i8] c" \00" -@.str.1262 = private unnamed_addr constant [11 x i8] c" = alloca \00" -@.str.1263 = private unnamed_addr constant [11 x i8] c", align 16\00" -@.str.1264 = private unnamed_addr constant [9 x i8] c" = load \00" -@.str.1265 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1266 = private unnamed_addr constant [7 x i8] c"store \00" -@.str.1267 = private unnamed_addr constant [2 x i8] c" \00" -@.str.1268 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1269 = private unnamed_addr constant [4 x i8] c" = \00" -@.str.1270 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.1271 = private unnamed_addr constant [3 x i8] c"i8\00" -@.str.1272 = private unnamed_addr constant [4 x i8] c"i16\00" -@.str.1273 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.1274 = private unnamed_addr constant [3 x i8] c"u8\00" -@.str.1275 = private unnamed_addr constant [4 x i8] c"u16\00" -@.str.1276 = private unnamed_addr constant [4 x i8] c"u32\00" -@.str.1277 = private unnamed_addr constant [4 x i8] c"u64\00" -@.str.1278 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.1279 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.1280 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.1281 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.1282 = private unnamed_addr constant [3 x i8] c"i8\00" -@.str.1283 = private unnamed_addr constant [3 x i8] c"u8\00" -@.str.1284 = private unnamed_addr constant [4 x i8] c"i16\00" -@.str.1285 = private unnamed_addr constant [4 x i8] c"u16\00" -@.str.1286 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.1287 = private unnamed_addr constant [4 x i8] c"u32\00" -@.str.1288 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.1289 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1290 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1291 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.1292 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1293 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.1294 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1295 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1296 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.1297 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1298 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1299 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" -@.str.1300 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1301 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" -@.str.1302 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1303 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1304 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" -@.str.1305 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1306 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1307 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.1308 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1309 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.1260 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" +@.str.1261 = private unnamed_addr constant [2 x i8] c":\00" +@.str.1262 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1263 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.1264 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1265 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.1266 = private unnamed_addr constant [11 x i8] c"br label %\00" +@.str.1267 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1268 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.1269 = private unnamed_addr constant [7 x i8] c"br i1 \00" +@.str.1270 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str.1271 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str.1272 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1273 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.1274 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1275 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" +@.str.1276 = private unnamed_addr constant [3 x i8] c"%a\00" +@.str.1277 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1278 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" +@.str.1279 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1280 = private unnamed_addr constant [32 x i8] c"used .allocas on a null pointer\00" +@.str.1281 = private unnamed_addr constant [3 x i8] c" \00" +@.str.1282 = private unnamed_addr constant [11 x i8] c" = alloca \00" +@.str.1283 = private unnamed_addr constant [11 x i8] c", align 16\00" +@.str.1284 = private unnamed_addr constant [9 x i8] c" = load \00" +@.str.1285 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1286 = private unnamed_addr constant [7 x i8] c"store \00" +@.str.1287 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1288 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1289 = private unnamed_addr constant [4 x i8] c" = \00" +@.str.1290 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.1291 = private unnamed_addr constant [3 x i8] c"i8\00" +@.str.1292 = private unnamed_addr constant [4 x i8] c"i16\00" +@.str.1293 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.1294 = private unnamed_addr constant [3 x i8] c"u8\00" +@.str.1295 = private unnamed_addr constant [4 x i8] c"u16\00" +@.str.1296 = private unnamed_addr constant [4 x i8] c"u32\00" +@.str.1297 = private unnamed_addr constant [4 x i8] c"u64\00" +@.str.1298 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.1299 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.1300 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.1301 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.1302 = private unnamed_addr constant [3 x i8] c"i8\00" +@.str.1303 = private unnamed_addr constant [3 x i8] c"u8\00" +@.str.1304 = private unnamed_addr constant [4 x i8] c"i16\00" +@.str.1305 = private unnamed_addr constant [4 x i8] c"u16\00" +@.str.1306 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.1307 = private unnamed_addr constant [4 x i8] c"u32\00" +@.str.1308 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.1309 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.1310 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1311 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1312 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.1313 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1314 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.1311 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.1312 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1313 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.1314 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.1315 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1316 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.1316 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.1317 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1318 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.1319 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1320 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.1321 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.1322 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.1323 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.1324 = private unnamed_addr constant [64 x i8] c"a map key must be a whole number, a char, a bool or a str, not \00" +@.str.1318 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1319 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" +@.str.1320 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1321 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" +@.str.1322 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1323 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1324 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" @.str.1325 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1326 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.1327 = private unnamed_addr constant [42 x i8] c"a map value can't have the type 'nothing'\00" -@.str.1328 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str.1329 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str.1326 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1327 = private unnamed_addr constant [29 x i8] c"used .sums on a null pointer\00" +@.str.1328 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1329 = private unnamed_addr constant [29 x i8] c"used .sums on a null pointer\00" @.str.1330 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1331 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.1332 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1333 = private unnamed_addr constant [6 x i8] c"named\00" +@.str.1331 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1332 = private unnamed_addr constant [29 x i8] c"used .sums on a null pointer\00" +@.str.1333 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.1334 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1335 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" +@.str.1335 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.1336 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1337 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" +@.str.1337 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.1338 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1339 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" -@.str.1340 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1339 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1340 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.1341 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.1342 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.1343 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.1344 = private unnamed_addr constant [37 x i8] c"' is not imported here (add: import \00" -@.str.1345 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1346 = private unnamed_addr constant [2 x i8] c"C\00" -@.str.1347 = private unnamed_addr constant [2 x i8] c"C\00" -@.str.1348 = private unnamed_addr constant [29 x i8] c"there is no C struct named '\00" -@.str.1349 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.1350 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.1351 = private unnamed_addr constant [2 x i8] c"C\00" -@.str.1352 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1353 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.1354 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.1355 = private unnamed_addr constant [37 x i8] c"' is not imported here (add: import \00" -@.str.1356 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1357 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.1358 = private unnamed_addr constant [2 x i8] c"C\00" -@.str.1359 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.1360 = private unnamed_addr constant [2 x i8] c"C\00" -@.str.1361 = private unnamed_addr constant [25 x i8] c"there is no type named '\00" -@.str.1362 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.1363 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.1343 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1344 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.1345 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1346 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.1347 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1348 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.1349 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.1350 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.1351 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.1352 = private unnamed_addr constant [64 x i8] c"a map key must be a whole number, a char, a bool or a str, not \00" +@.str.1353 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1354 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.1355 = private unnamed_addr constant [42 x i8] c"a map value can't have the type 'nothing'\00" +@.str.1356 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str.1357 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str.1358 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1359 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.1360 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1361 = private unnamed_addr constant [6 x i8] c"named\00" +@.str.1362 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1363 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" @.str.1364 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1365 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.1366 = private unnamed_addr constant [2 x i8] c".\00" -@.str.1367 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1368 = private unnamed_addr constant [2 x i8] c"]\00" -@.str.1369 = private unnamed_addr constant [1 x i8] c"\00" -@.str.1370 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1371 = private unnamed_addr constant [2 x i8] c",\00" -@.str.1372 = private unnamed_addr constant [2 x i8] c".\00" -@.str.1373 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1374 = private unnamed_addr constant [2 x i8] c" \00" -@.str.1375 = private unnamed_addr constant [1 x i8] c"\00" -@.str.1376 = private unnamed_addr constant [5 x i8] c"main\00" -@.str.1377 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.1378 = private unnamed_addr constant [3 x i8] c"i1\00" -@.str.1379 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.1380 = private unnamed_addr constant [2 x i8] c"i\00" -@.str.1381 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.1382 = private unnamed_addr constant [7 x i8] c"double\00" -@.str.1383 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.1384 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.1385 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.1386 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.1387 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.1388 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.1389 = private unnamed_addr constant [38 x i8] c"{ ptr, i64, i64, i64, ptr, i64, i64 }\00" -@.str.1390 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str.1391 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.1392 = private unnamed_addr constant [4 x i8] c" x \00" -@.str.1393 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1394 = private unnamed_addr constant [2 x i8] c"]\00" -@.str.1395 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.1396 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.1397 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.1398 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.1399 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.1400 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.1401 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.1402 = private unnamed_addr constant [4 x i8] c"%S.\00" -@.str.1403 = private unnamed_addr constant [2 x i8] c".\00" -@.str.1404 = private unnamed_addr constant [3 x i8] c"i8\00" -@.str.1405 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.1406 = private unnamed_addr constant [7 x i8] c"{ i1, \00" -@.str.1407 = private unnamed_addr constant [22 x i8] c", { ptr, i64, i64 } }\00" -@.str.1408 = private unnamed_addr constant [2 x i8] c":\00" -@.str.1409 = private unnamed_addr constant [2 x i8] c":\00" -@.str.1410 = private unnamed_addr constant [2 x i8] c":\00" -@.str.1411 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.1412 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.1413 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.1414 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.1415 = private unnamed_addr constant [6 x i8] c"false\00" -@.str.1416 = private unnamed_addr constant [4 x i8] c"0.0\00" -@.str.1417 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.1418 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.1419 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.1420 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.1421 = private unnamed_addr constant [30 x i8] c"ptrtoint (ptr getelementptr (\00" -@.str.1422 = private unnamed_addr constant [27 x i8] c", ptr null, i32 1) to i64)\00" -@.str.1423 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.1424 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.1425 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.1426 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.1427 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1428 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.1429 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1430 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.1431 = private unnamed_addr constant [5 x i8] c"arr_\00" -@.str.1432 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1433 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.1434 = private unnamed_addr constant [5 x i8] c"map_\00" -@.str.1435 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1436 = private unnamed_addr constant [2 x i8] c"_\00" -@.str.1437 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1438 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.1439 = private unnamed_addr constant [3 x i8] c"E_\00" -@.str.1440 = private unnamed_addr constant [2 x i8] c"_\00" -@.str.1441 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.1442 = private unnamed_addr constant [3 x i8] c"S_\00" -@.str.1443 = private unnamed_addr constant [2 x i8] c"_\00" -@.str.1444 = private unnamed_addr constant [17 x i8] c"0123456789ABCDEF\00" -@.str.1445 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1446 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1447 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1448 = private unnamed_addr constant [29 x i8] c"used .nstr on a null pointer\00" -@.str.1449 = private unnamed_addr constant [7 x i8] c"@.str.\00" -@.str.1450 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1451 = private unnamed_addr constant [29 x i8] c"used .nstr on a null pointer\00" -@.str.1452 = private unnamed_addr constant [2 x i8] c"\5C\00" -@.str.1453 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1454 = private unnamed_addr constant [29 x i8] c"used .head on a null pointer\00" -@.str.1455 = private unnamed_addr constant [35 x i8] c" = private unnamed_addr constant [\00" -@.str.1456 = private unnamed_addr constant [10 x i8] c" x i8] c\22\00" -@.str.1457 = private unnamed_addr constant [1 x i8] c"\00" -@.str.1458 = private unnamed_addr constant [5 x i8] c"\5C00\22\00" -@.str.1459 = private unnamed_addr constant [7 x i8] c"{ ptr \00" -@.str.1460 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.1461 = private unnamed_addr constant [10 x i8] c", i64 0 }\00" -@.str.1462 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.1463 = private unnamed_addr constant [6 x i8] c"panic\00" -@.str.1464 = private unnamed_addr constant [3 x i8] c"ok\00" +@.str.1365 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" +@.str.1366 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1367 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" +@.str.1368 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1369 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1370 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.1371 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.1372 = private unnamed_addr constant [37 x i8] c"' is not imported here (add: import \00" +@.str.1373 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1374 = private unnamed_addr constant [2 x i8] c"C\00" +@.str.1375 = private unnamed_addr constant [2 x i8] c"C\00" +@.str.1376 = private unnamed_addr constant [29 x i8] c"there is no C struct named '\00" +@.str.1377 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.1378 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.1379 = private unnamed_addr constant [2 x i8] c"C\00" +@.str.1380 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1381 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.1382 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.1383 = private unnamed_addr constant [37 x i8] c"' is not imported here (add: import \00" +@.str.1384 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1385 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.1386 = private unnamed_addr constant [2 x i8] c"C\00" +@.str.1387 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.1388 = private unnamed_addr constant [2 x i8] c"C\00" +@.str.1389 = private unnamed_addr constant [25 x i8] c"there is no type named '\00" +@.str.1390 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.1391 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.1392 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1393 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.1394 = private unnamed_addr constant [2 x i8] c".\00" +@.str.1395 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1396 = private unnamed_addr constant [2 x i8] c"]\00" +@.str.1397 = private unnamed_addr constant [1 x i8] c"\00" +@.str.1398 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1399 = private unnamed_addr constant [2 x i8] c",\00" +@.str.1400 = private unnamed_addr constant [2 x i8] c".\00" +@.str.1401 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1402 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1403 = private unnamed_addr constant [1 x i8] c"\00" +@.str.1404 = private unnamed_addr constant [5 x i8] c"main\00" +@.str.1405 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.1406 = private unnamed_addr constant [3 x i8] c"i1\00" +@.str.1407 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.1408 = private unnamed_addr constant [2 x i8] c"i\00" +@.str.1409 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.1410 = private unnamed_addr constant [7 x i8] c"double\00" +@.str.1411 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.1412 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.1413 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.1414 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.1415 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.1416 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.1417 = private unnamed_addr constant [38 x i8] c"{ ptr, i64, i64, i64, ptr, i64, i64 }\00" +@.str.1418 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str.1419 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.1420 = private unnamed_addr constant [4 x i8] c" x \00" +@.str.1421 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1422 = private unnamed_addr constant [2 x i8] c"]\00" +@.str.1423 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.1424 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.1425 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.1426 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.1427 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.1428 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.1429 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.1430 = private unnamed_addr constant [4 x i8] c"%S.\00" +@.str.1431 = private unnamed_addr constant [2 x i8] c".\00" +@.str.1432 = private unnamed_addr constant [3 x i8] c"i8\00" +@.str.1433 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.1434 = private unnamed_addr constant [7 x i8] c"{ i1, \00" +@.str.1435 = private unnamed_addr constant [22 x i8] c", { ptr, i64, i64 } }\00" +@.str.1436 = private unnamed_addr constant [2 x i8] c":\00" +@.str.1437 = private unnamed_addr constant [2 x i8] c":\00" +@.str.1438 = private unnamed_addr constant [2 x i8] c":\00" +@.str.1439 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.1440 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.1441 = private unnamed_addr constant [2 x i8] c"0\00" +@.str.1442 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.1443 = private unnamed_addr constant [6 x i8] c"false\00" +@.str.1444 = private unnamed_addr constant [4 x i8] c"0.0\00" +@.str.1445 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.1446 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.1447 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.1448 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" +@.str.1449 = private unnamed_addr constant [30 x i8] c"ptrtoint (ptr getelementptr (\00" +@.str.1450 = private unnamed_addr constant [27 x i8] c", ptr null, i32 1) to i64)\00" +@.str.1451 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.1452 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.1453 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.1454 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.1455 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1456 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.1457 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1458 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.1459 = private unnamed_addr constant [5 x i8] c"arr_\00" +@.str.1460 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1461 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.1462 = private unnamed_addr constant [5 x i8] c"map_\00" +@.str.1463 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1464 = private unnamed_addr constant [2 x i8] c"_\00" @.str.1465 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1466 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" -@.str.1467 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1468 = private unnamed_addr constant [28 x i8] c"call void @finch_panic(ptr \00" -@.str.1469 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.1470 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1471 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1472 = private unnamed_addr constant [12 x i8] c"unreachable\00" +@.str.1466 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.1467 = private unnamed_addr constant [3 x i8] c"E_\00" +@.str.1468 = private unnamed_addr constant [2 x i8] c"_\00" +@.str.1469 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.1470 = private unnamed_addr constant [3 x i8] c"S_\00" +@.str.1471 = private unnamed_addr constant [2 x i8] c"_\00" +@.str.1472 = private unnamed_addr constant [17 x i8] c"0123456789ABCDEF\00" @.str.1473 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1474 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.1475 = private unnamed_addr constant [6 x i8] c"range\00" -@.str.1476 = private unnamed_addr constant [8 x i8] c"inrange\00" -@.str.1477 = private unnamed_addr constant [14 x i8] c"icmp uge i64 \00" -@.str.1478 = private unnamed_addr constant [3 x i8] c", \00" -@.str.1479 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1480 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.1474 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1475 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1476 = private unnamed_addr constant [29 x i8] c"used .nstr on a null pointer\00" +@.str.1477 = private unnamed_addr constant [7 x i8] c"@.str.\00" +@.str.1478 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1479 = private unnamed_addr constant [29 x i8] c"used .nstr on a null pointer\00" +@.str.1480 = private unnamed_addr constant [2 x i8] c"\5C\00" @.str.1481 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1482 = private unnamed_addr constant [34 x i8] c"call void @finch_panic_index(ptr \00" -@.str.1483 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.1484 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.1485 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.1486 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1487 = private unnamed_addr constant [12 x i8] c"unreachable\00" -@.str.1488 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1489 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.1490 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1491 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" -@.str.1492 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1493 = private unnamed_addr constant [32 x i8] c"used .allocas on a null pointer\00" -@.str.1494 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1495 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" -@.str.1496 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1497 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.1498 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1499 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" -@.str.1500 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1501 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" -@.str.1502 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1503 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" -@.str.1504 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1505 = private unnamed_addr constant [32 x i8] c"used .allocas on a null pointer\00" -@.str.1506 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1507 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" -@.str.1508 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1509 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.1510 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1511 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.1512 = private unnamed_addr constant [11 x i8] c" {\0Aentry:\0A\00" -@.str.1513 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1514 = private unnamed_addr constant [32 x i8] c"used .allocas on a null pointer\00" -@.str.1515 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.1516 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.1517 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1518 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" -@.str.1519 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.1520 = private unnamed_addr constant [4 x i8] c"\0A}\0A\00" -@.str.1521 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1522 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" -@.str.1523 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1524 = private unnamed_addr constant [32 x i8] c"used .allocas on a null pointer\00" -@.str.1525 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1526 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" -@.str.1527 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1528 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.1529 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1530 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" -@.str.1531 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.1532 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.1533 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.1534 = private unnamed_addr constant [7 x i8] c"n.cond\00" -@.str.1535 = private unnamed_addr constant [7 x i8] c"n.body\00" -@.str.1536 = private unnamed_addr constant [6 x i8] c"n.end\00" -@.str.1537 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.1538 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" -@.str.1539 = private unnamed_addr constant [3 x i8] c", \00" -@.str.1540 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1482 = private unnamed_addr constant [29 x i8] c"used .head on a null pointer\00" +@.str.1483 = private unnamed_addr constant [35 x i8] c" = private unnamed_addr constant [\00" +@.str.1484 = private unnamed_addr constant [10 x i8] c" x i8] c\22\00" +@.str.1485 = private unnamed_addr constant [1 x i8] c"\00" +@.str.1486 = private unnamed_addr constant [5 x i8] c"\5C00\22\00" +@.str.1487 = private unnamed_addr constant [7 x i8] c"{ ptr \00" +@.str.1488 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.1489 = private unnamed_addr constant [10 x i8] c", i64 0 }\00" +@.str.1490 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.1491 = private unnamed_addr constant [6 x i8] c"panic\00" +@.str.1492 = private unnamed_addr constant [3 x i8] c"ok\00" +@.str.1493 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1494 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.1495 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1496 = private unnamed_addr constant [28 x i8] c"call void @finch_panic(ptr \00" +@.str.1497 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.1498 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1499 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1500 = private unnamed_addr constant [12 x i8] c"unreachable\00" +@.str.1501 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1502 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.1503 = private unnamed_addr constant [6 x i8] c"range\00" +@.str.1504 = private unnamed_addr constant [8 x i8] c"inrange\00" +@.str.1505 = private unnamed_addr constant [14 x i8] c"icmp uge i64 \00" +@.str.1506 = private unnamed_addr constant [3 x i8] c", \00" +@.str.1507 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1508 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.1509 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1510 = private unnamed_addr constant [34 x i8] c"call void @finch_panic_index(ptr \00" +@.str.1511 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.1512 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.1513 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.1514 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1515 = private unnamed_addr constant [12 x i8] c"unreachable\00" +@.str.1516 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1517 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.1518 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1519 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" +@.str.1520 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1521 = private unnamed_addr constant [32 x i8] c"used .allocas on a null pointer\00" +@.str.1522 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1523 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" +@.str.1524 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1525 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.1526 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1527 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" +@.str.1528 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1529 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" +@.str.1530 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1531 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" +@.str.1532 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1533 = private unnamed_addr constant [32 x i8] c"used .allocas on a null pointer\00" +@.str.1534 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1535 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" +@.str.1536 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1537 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.1538 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1539 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.1540 = private unnamed_addr constant [11 x i8] c" {\0Aentry:\0A\00" @.str.1541 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1542 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.1543 = private unnamed_addr constant [9 x i8] c"add i64 \00" -@.str.1544 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.1542 = private unnamed_addr constant [32 x i8] c"used .allocas on a null pointer\00" +@.str.1543 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.1544 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str.1545 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1546 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1547 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1548 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.1549 = private unnamed_addr constant [31 x i8] c"call void @finch_str_copy(ptr \00" -@.str.1550 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1551 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1552 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.1553 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.1554 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.1555 = private unnamed_addr constant [11 x i8] c"call void \00" -@.str.1556 = private unnamed_addr constant [6 x i8] c"(ptr \00" -@.str.1557 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1558 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1559 = private unnamed_addr constant [13 x i8] c"@finch.copy.\00" -@.str.1560 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1561 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" -@.str.1562 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1563 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" -@.str.1564 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.1565 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1566 = private unnamed_addr constant [56 x i8] c"call void @finch_arr_clone_raw(ptr %dst, ptr %src, i64 \00" -@.str.1567 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1568 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.1569 = private unnamed_addr constant [5 x i8] c"%dst\00" -@.str.1570 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.1571 = private unnamed_addr constant [5 x i8] c"%src\00" -@.str.1572 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.1573 = private unnamed_addr constant [65 x i8] c"getelementptr inbounds { ptr, i64, i64 }, ptr %src, i32 0, i32 1\00" -@.str.1574 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.1575 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1576 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.1577 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1578 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.1579 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1580 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.1581 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1582 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.1583 = private unnamed_addr constant [56 x i8] c"call void @finch_map_clone_raw(ptr %dst, ptr %src, i64 \00" -@.str.1584 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1585 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1586 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1587 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.1588 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.1589 = private unnamed_addr constant [25 x i8] c", ptr %src, i32 0, i32 2\00" -@.str.1590 = private unnamed_addr constant [5 x i8] c"%src\00" -@.str.1591 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1592 = private unnamed_addr constant [5 x i8] c"%dst\00" +@.str.1546 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" +@.str.1547 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.1548 = private unnamed_addr constant [4 x i8] c"\0A}\0A\00" +@.str.1549 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1550 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" +@.str.1551 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1552 = private unnamed_addr constant [32 x i8] c"used .allocas on a null pointer\00" +@.str.1553 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1554 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" +@.str.1555 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1556 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.1557 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1558 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" +@.str.1559 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1560 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1561 = private unnamed_addr constant [2 x i8] c"0\00" +@.str.1562 = private unnamed_addr constant [7 x i8] c"n.cond\00" +@.str.1563 = private unnamed_addr constant [7 x i8] c"n.body\00" +@.str.1564 = private unnamed_addr constant [6 x i8] c"n.end\00" +@.str.1565 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1566 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" +@.str.1567 = private unnamed_addr constant [3 x i8] c", \00" +@.str.1568 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1569 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1570 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1571 = private unnamed_addr constant [9 x i8] c"add i64 \00" +@.str.1572 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.1573 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1574 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1575 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1576 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.1577 = private unnamed_addr constant [31 x i8] c"call void @finch_str_copy(ptr \00" +@.str.1578 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1579 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1580 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.1581 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.1582 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.1583 = private unnamed_addr constant [11 x i8] c"call void \00" +@.str.1584 = private unnamed_addr constant [6 x i8] c"(ptr \00" +@.str.1585 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1586 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1587 = private unnamed_addr constant [13 x i8] c"@finch.copy.\00" +@.str.1588 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1589 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" +@.str.1590 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1591 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" +@.str.1592 = private unnamed_addr constant [6 x i8] c"array\00" @.str.1593 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1594 = private unnamed_addr constant [11 x i8] c"entry.live\00" -@.str.1595 = private unnamed_addr constant [11 x i8] c"entry.next\00" -@.str.1596 = private unnamed_addr constant [13 x i8] c"icmp ne i64 \00" -@.str.1597 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.1598 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.1599 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1600 = private unnamed_addr constant [15 x i8] c", i32 0, i32 0\00" -@.str.1601 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.1602 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1603 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1604 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1605 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.1606 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1607 = private unnamed_addr constant [5 x i8] c"%src\00" -@.str.1608 = private unnamed_addr constant [5 x i8] c"%dst\00" +@.str.1594 = private unnamed_addr constant [56 x i8] c"call void @finch_arr_clone_raw(ptr %dst, ptr %src, i64 \00" +@.str.1595 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1596 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.1597 = private unnamed_addr constant [5 x i8] c"%dst\00" +@.str.1598 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.1599 = private unnamed_addr constant [5 x i8] c"%src\00" +@.str.1600 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1601 = private unnamed_addr constant [65 x i8] c"getelementptr inbounds { ptr, i64, i64 }, ptr %src, i32 0, i32 1\00" +@.str.1602 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.1603 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1604 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.1605 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1606 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.1607 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1608 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str.1609 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1610 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.1611 = private unnamed_addr constant [24 x i8] c", ptr %dst, i32 0, i32 \00" -@.str.1612 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1613 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.1614 = private unnamed_addr constant [24 x i8] c", ptr %src, i32 0, i32 \00" -@.str.1615 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1616 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1617 = private unnamed_addr constant [9 x i8] c"ret void\00" -@.str.1618 = private unnamed_addr constant [22 x i8] c"define internal void \00" -@.str.1619 = private unnamed_addr constant [21 x i8] c"(ptr %dst, ptr %src)\00" -@.str.1620 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.1621 = private unnamed_addr constant [31 x i8] c"call void @finch_str_drop(ptr \00" -@.str.1622 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1623 = private unnamed_addr constant [11 x i8] c"call void \00" -@.str.1624 = private unnamed_addr constant [6 x i8] c"(ptr \00" -@.str.1625 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1626 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1627 = private unnamed_addr constant [2 x i8] c"%\00" -@.str.1628 = private unnamed_addr constant [13 x i8] c"@finch.drop.\00" -@.str.1629 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1630 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" +@.str.1610 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.1611 = private unnamed_addr constant [56 x i8] c"call void @finch_map_clone_raw(ptr %dst, ptr %src, i64 \00" +@.str.1612 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1613 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1614 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1615 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1616 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.1617 = private unnamed_addr constant [25 x i8] c", ptr %src, i32 0, i32 2\00" +@.str.1618 = private unnamed_addr constant [5 x i8] c"%src\00" +@.str.1619 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1620 = private unnamed_addr constant [5 x i8] c"%dst\00" +@.str.1621 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1622 = private unnamed_addr constant [11 x i8] c"entry.live\00" +@.str.1623 = private unnamed_addr constant [11 x i8] c"entry.next\00" +@.str.1624 = private unnamed_addr constant [13 x i8] c"icmp ne i64 \00" +@.str.1625 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1626 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.1627 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1628 = private unnamed_addr constant [15 x i8] c", i32 0, i32 0\00" +@.str.1629 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.1630 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.1631 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1632 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" -@.str.1633 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.1632 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1633 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.1634 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1635 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.1636 = private unnamed_addr constant [3 x i8] c"%a\00" -@.str.1637 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.1638 = private unnamed_addr constant [63 x i8] c"getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1\00" -@.str.1639 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.1640 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1641 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.1642 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1643 = private unnamed_addr constant [34 x i8] c"call void @finch_arr_free(ptr %a)\00" -@.str.1644 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.1645 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1646 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1647 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.1648 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.1649 = private unnamed_addr constant [23 x i8] c", ptr %a, i32 0, i32 2\00" -@.str.1650 = private unnamed_addr constant [3 x i8] c"%a\00" -@.str.1651 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1652 = private unnamed_addr constant [11 x i8] c"entry.live\00" -@.str.1653 = private unnamed_addr constant [11 x i8] c"entry.next\00" -@.str.1654 = private unnamed_addr constant [13 x i8] c"icmp ne i64 \00" -@.str.1655 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.1656 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.1657 = private unnamed_addr constant [34 x i8] c"call void @finch_map_free(ptr %a)\00" -@.str.1658 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1659 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.1660 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1661 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1662 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.1663 = private unnamed_addr constant [22 x i8] c", ptr %a, i32 0, i32 \00" -@.str.1664 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1665 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1666 = private unnamed_addr constant [9 x i8] c"ret void\00" -@.str.1667 = private unnamed_addr constant [22 x i8] c"define internal void \00" -@.str.1668 = private unnamed_addr constant [9 x i8] c"(ptr %a)\00" -@.str.1669 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1670 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.1671 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1672 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.1635 = private unnamed_addr constant [5 x i8] c"%src\00" +@.str.1636 = private unnamed_addr constant [5 x i8] c"%dst\00" +@.str.1637 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1638 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.1639 = private unnamed_addr constant [24 x i8] c", ptr %dst, i32 0, i32 \00" +@.str.1640 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1641 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.1642 = private unnamed_addr constant [24 x i8] c", ptr %src, i32 0, i32 \00" +@.str.1643 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1644 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1645 = private unnamed_addr constant [9 x i8] c"ret void\00" +@.str.1646 = private unnamed_addr constant [22 x i8] c"define internal void \00" +@.str.1647 = private unnamed_addr constant [21 x i8] c"(ptr %dst, ptr %src)\00" +@.str.1648 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.1649 = private unnamed_addr constant [31 x i8] c"call void @finch_str_drop(ptr \00" +@.str.1650 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1651 = private unnamed_addr constant [11 x i8] c"call void \00" +@.str.1652 = private unnamed_addr constant [6 x i8] c"(ptr \00" +@.str.1653 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1654 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1655 = private unnamed_addr constant [2 x i8] c"%\00" +@.str.1656 = private unnamed_addr constant [13 x i8] c"@finch.drop.\00" +@.str.1657 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1658 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" +@.str.1659 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1660 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" +@.str.1661 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.1662 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1663 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.1664 = private unnamed_addr constant [3 x i8] c"%a\00" +@.str.1665 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1666 = private unnamed_addr constant [63 x i8] c"getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1\00" +@.str.1667 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.1668 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1669 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.1670 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1671 = private unnamed_addr constant [34 x i8] c"call void @finch_arr_free(ptr %a)\00" +@.str.1672 = private unnamed_addr constant [4 x i8] c"map\00" @.str.1673 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1674 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.1675 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1676 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.1677 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1678 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1679 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.1680 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1681 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.1682 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1683 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" -@.str.1684 = private unnamed_addr constant [1 x i8] c"\00" -@.str.1685 = private unnamed_addr constant [3 x i8] c", \00" -@.str.1686 = private unnamed_addr constant [36 x i8] c" = call i32 (ptr, ...) @printf(ptr \00" -@.str.1687 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1688 = private unnamed_addr constant [32 x i8] c"extractvalue { ptr, i64, i64 } \00" -@.str.1689 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.1690 = private unnamed_addr constant [13 x i8] c"icmp eq ptr \00" -@.str.1691 = private unnamed_addr constant [7 x i8] c", null\00" -@.str.1692 = private unnamed_addr constant [1 x i8] c"\00" -@.str.1693 = private unnamed_addr constant [11 x i8] c"select i1 \00" -@.str.1694 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1695 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1696 = private unnamed_addr constant [5 x i8] c"%lld\00" -@.str.1697 = private unnamed_addr constant [5 x i8] c"i64 \00" -@.str.1698 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.1699 = private unnamed_addr constant [5 x i8] c"%llu\00" -@.str.1700 = private unnamed_addr constant [5 x i8] c"i64 \00" -@.str.1701 = private unnamed_addr constant [4 x i8] c"u64\00" -@.str.1702 = private unnamed_addr constant [3 x i8] c"%g\00" -@.str.1703 = private unnamed_addr constant [8 x i8] c"double \00" -@.str.1704 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.1705 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.1706 = private unnamed_addr constant [9 x i8] c"sext i8 \00" -@.str.1707 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str.1708 = private unnamed_addr constant [5 x i8] c"'%c'\00" -@.str.1709 = private unnamed_addr constant [5 x i8] c"i32 \00" -@.str.1710 = private unnamed_addr constant [3 x i8] c"%c\00" -@.str.1711 = private unnamed_addr constant [5 x i8] c"i32 \00" -@.str.1712 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.1713 = private unnamed_addr constant [5 x i8] c"true\00" -@.str.1714 = private unnamed_addr constant [6 x i8] c"false\00" -@.str.1715 = private unnamed_addr constant [11 x i8] c"select i1 \00" -@.str.1716 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1717 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1718 = private unnamed_addr constant [3 x i8] c"%s\00" -@.str.1719 = private unnamed_addr constant [5 x i8] c"ptr \00" -@.str.1720 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.1721 = private unnamed_addr constant [32 x i8] c"extractvalue { ptr, i64, i64 } \00" -@.str.1722 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str.1723 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" -@.str.1724 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str.1725 = private unnamed_addr constant [7 x i8] c"\22%.*s\22\00" -@.str.1726 = private unnamed_addr constant [5 x i8] c"i32 \00" -@.str.1727 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1728 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.1729 = private unnamed_addr constant [5 x i8] c"i32 \00" -@.str.1730 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1731 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.1732 = private unnamed_addr constant [13 x i8] c"icmp eq ptr \00" -@.str.1733 = private unnamed_addr constant [7 x i8] c", null\00" -@.str.1734 = private unnamed_addr constant [9 x i8] c"ptr.null\00" -@.str.1735 = private unnamed_addr constant [9 x i8] c"ptr.addr\00" -@.str.1736 = private unnamed_addr constant [9 x i8] c"ptr.done\00" -@.str.1737 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.1738 = private unnamed_addr constant [1 x i8] c"\00" -@.str.1739 = private unnamed_addr constant [7 x i8] c"0x%llx\00" -@.str.1740 = private unnamed_addr constant [5 x i8] c"i64 \00" -@.str.1741 = private unnamed_addr constant [14 x i8] c"ptrtoint ptr \00" -@.str.1742 = private unnamed_addr constant [8 x i8] c" to i64\00" -@.str.1743 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.1744 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.1745 = private unnamed_addr constant [1 x i8] c"\00" -@.str.1746 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.1747 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.1748 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.1749 = private unnamed_addr constant [32 x i8] c"call void @finch_buf_print(ptr \00" -@.str.1750 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1751 = private unnamed_addr constant [30 x i8] c"call void @finch_buf_add(ptr \00" -@.str.1752 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1753 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.1754 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1755 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.1756 = private unnamed_addr constant [2 x i8] c"1\00" -@.str.1757 = private unnamed_addr constant [30 x i8] c"call void @finch_buf_int(ptr \00" -@.str.1758 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.1759 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.1760 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1761 = private unnamed_addr constant [31 x i8] c"call void @finch_buf_uint(ptr \00" -@.str.1762 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.1763 = private unnamed_addr constant [4 x i8] c"u64\00" -@.str.1764 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1765 = private unnamed_addr constant [32 x i8] c"call void @finch_buf_float(ptr \00" -@.str.1766 = private unnamed_addr constant [10 x i8] c", double \00" -@.str.1767 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.1768 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1769 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.1770 = private unnamed_addr constant [31 x i8] c"call void @finch_buf_char(ptr \00" -@.str.1771 = private unnamed_addr constant [6 x i8] c", i8 \00" -@.str.1772 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str.1773 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1774 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.1775 = private unnamed_addr constant [31 x i8] c"call void @finch_buf_bool(ptr \00" -@.str.1776 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str.1777 = private unnamed_addr constant [9 x i8] c"zext i1 \00" -@.str.1778 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str.1779 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1780 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.1781 = private unnamed_addr constant [30 x i8] c"call void @finch_buf_str(ptr \00" -@.str.1782 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1783 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str.1784 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1785 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.1786 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.1787 = private unnamed_addr constant [30 x i8] c"call void @finch_buf_ptr(ptr \00" -@.str.1788 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1789 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1790 = private unnamed_addr constant [11 x i8] c"call void \00" -@.str.1791 = private unnamed_addr constant [6 x i8] c"(ptr \00" -@.str.1792 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1793 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1794 = private unnamed_addr constant [15 x i8] c"@finch.format.\00" -@.str.1795 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1796 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" -@.str.1797 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1798 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" -@.str.1799 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.1800 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1801 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.1802 = private unnamed_addr constant [3 x i8] c"%a\00" -@.str.1803 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.1804 = private unnamed_addr constant [63 x i8] c"getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1\00" -@.str.1805 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1806 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.1807 = private unnamed_addr constant [4 x i8] c"sep\00" -@.str.1808 = private unnamed_addr constant [5 x i8] c"item\00" -@.str.1809 = private unnamed_addr constant [14 x i8] c"icmp sgt i64 \00" -@.str.1810 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1811 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.1812 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1813 = private unnamed_addr constant [3 x i8] c", \00" -@.str.1814 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.1815 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1816 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.1817 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1818 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1819 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1820 = private unnamed_addr constant [2 x i8] c"]\00" -@.str.1821 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.1822 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1823 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" -@.str.1824 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1825 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.1826 = private unnamed_addr constant [3 x i8] c"%a\00" -@.str.1827 = private unnamed_addr constant [11 x i8] c"enum.other\00" -@.str.1828 = private unnamed_addr constant [10 x i8] c"enum.done\00" -@.str.1829 = private unnamed_addr constant [7 x i8] c"enum.v\00" -@.str.1830 = private unnamed_addr constant [5 x i8] c"i32 \00" -@.str.1831 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1832 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str.1833 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1834 = private unnamed_addr constant [12 x i8] c"switch i32 \00" -@.str.1835 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str.1836 = private unnamed_addr constant [4 x i8] c" [ \00" -@.str.1837 = private unnamed_addr constant [2 x i8] c" \00" -@.str.1838 = private unnamed_addr constant [3 x i8] c" ]\00" -@.str.1839 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1840 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.1841 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1842 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1843 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1844 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1845 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.1846 = private unnamed_addr constant [40 x i8] c"call void @finch_buf_int(ptr %buf, i64 \00" -@.str.1847 = private unnamed_addr constant [10 x i8] c"sext i32 \00" -@.str.1848 = private unnamed_addr constant [8 x i8] c" to i64\00" -@.str.1849 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1850 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1851 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1852 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.1853 = private unnamed_addr constant [3 x i8] c"i1\00" -@.str.1854 = private unnamed_addr constant [3 x i8] c"i1\00" -@.str.1855 = private unnamed_addr constant [5 x i8] c"true\00" -@.str.1856 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1857 = private unnamed_addr constant [2 x i8] c"{\00" -@.str.1858 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.1859 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.1860 = private unnamed_addr constant [23 x i8] c", ptr %a, i32 0, i32 2\00" -@.str.1861 = private unnamed_addr constant [3 x i8] c"%a\00" -@.str.1862 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1863 = private unnamed_addr constant [11 x i8] c"entry.live\00" -@.str.1864 = private unnamed_addr constant [11 x i8] c"entry.next\00" -@.str.1865 = private unnamed_addr constant [13 x i8] c"icmp ne i64 \00" -@.str.1866 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.1867 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.1868 = private unnamed_addr constant [4 x i8] c"sep\00" -@.str.1869 = private unnamed_addr constant [5 x i8] c"item\00" -@.str.1870 = private unnamed_addr constant [3 x i8] c"i1\00" -@.str.1871 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1872 = private unnamed_addr constant [3 x i8] c", \00" -@.str.1873 = private unnamed_addr constant [3 x i8] c"i1\00" -@.str.1874 = private unnamed_addr constant [6 x i8] c"false\00" -@.str.1875 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1876 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1877 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1674 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1675 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1676 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.1677 = private unnamed_addr constant [23 x i8] c", ptr %a, i32 0, i32 2\00" +@.str.1678 = private unnamed_addr constant [3 x i8] c"%a\00" +@.str.1679 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1680 = private unnamed_addr constant [11 x i8] c"entry.live\00" +@.str.1681 = private unnamed_addr constant [11 x i8] c"entry.next\00" +@.str.1682 = private unnamed_addr constant [13 x i8] c"icmp ne i64 \00" +@.str.1683 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1684 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.1685 = private unnamed_addr constant [34 x i8] c"call void @finch_map_free(ptr %a)\00" +@.str.1686 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1687 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.1688 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1689 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1690 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.1691 = private unnamed_addr constant [22 x i8] c", ptr %a, i32 0, i32 \00" +@.str.1692 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1693 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1694 = private unnamed_addr constant [9 x i8] c"ret void\00" +@.str.1695 = private unnamed_addr constant [22 x i8] c"define internal void \00" +@.str.1696 = private unnamed_addr constant [9 x i8] c"(ptr %a)\00" +@.str.1697 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1698 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.1699 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1700 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.1701 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1702 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.1703 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1704 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.1705 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1706 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1707 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.1708 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1709 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.1710 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1711 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" +@.str.1712 = private unnamed_addr constant [1 x i8] c"\00" +@.str.1713 = private unnamed_addr constant [3 x i8] c", \00" +@.str.1714 = private unnamed_addr constant [36 x i8] c" = call i32 (ptr, ...) @printf(ptr \00" +@.str.1715 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1716 = private unnamed_addr constant [32 x i8] c"extractvalue { ptr, i64, i64 } \00" +@.str.1717 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.1718 = private unnamed_addr constant [13 x i8] c"icmp eq ptr \00" +@.str.1719 = private unnamed_addr constant [7 x i8] c", null\00" +@.str.1720 = private unnamed_addr constant [1 x i8] c"\00" +@.str.1721 = private unnamed_addr constant [11 x i8] c"select i1 \00" +@.str.1722 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1723 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1724 = private unnamed_addr constant [5 x i8] c"%lld\00" +@.str.1725 = private unnamed_addr constant [5 x i8] c"i64 \00" +@.str.1726 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.1727 = private unnamed_addr constant [5 x i8] c"%llu\00" +@.str.1728 = private unnamed_addr constant [5 x i8] c"i64 \00" +@.str.1729 = private unnamed_addr constant [4 x i8] c"u64\00" +@.str.1730 = private unnamed_addr constant [3 x i8] c"%g\00" +@.str.1731 = private unnamed_addr constant [8 x i8] c"double \00" +@.str.1732 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.1733 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.1734 = private unnamed_addr constant [9 x i8] c"sext i8 \00" +@.str.1735 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str.1736 = private unnamed_addr constant [5 x i8] c"'%c'\00" +@.str.1737 = private unnamed_addr constant [5 x i8] c"i32 \00" +@.str.1738 = private unnamed_addr constant [3 x i8] c"%c\00" +@.str.1739 = private unnamed_addr constant [5 x i8] c"i32 \00" +@.str.1740 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.1741 = private unnamed_addr constant [5 x i8] c"true\00" +@.str.1742 = private unnamed_addr constant [6 x i8] c"false\00" +@.str.1743 = private unnamed_addr constant [11 x i8] c"select i1 \00" +@.str.1744 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1745 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1746 = private unnamed_addr constant [3 x i8] c"%s\00" +@.str.1747 = private unnamed_addr constant [5 x i8] c"ptr \00" +@.str.1748 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.1749 = private unnamed_addr constant [32 x i8] c"extractvalue { ptr, i64, i64 } \00" +@.str.1750 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.1751 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" +@.str.1752 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str.1753 = private unnamed_addr constant [7 x i8] c"\22%.*s\22\00" +@.str.1754 = private unnamed_addr constant [5 x i8] c"i32 \00" +@.str.1755 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1756 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.1757 = private unnamed_addr constant [5 x i8] c"i32 \00" +@.str.1758 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1759 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.1760 = private unnamed_addr constant [13 x i8] c"icmp eq ptr \00" +@.str.1761 = private unnamed_addr constant [7 x i8] c", null\00" +@.str.1762 = private unnamed_addr constant [9 x i8] c"ptr.null\00" +@.str.1763 = private unnamed_addr constant [9 x i8] c"ptr.addr\00" +@.str.1764 = private unnamed_addr constant [9 x i8] c"ptr.done\00" +@.str.1765 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.1766 = private unnamed_addr constant [1 x i8] c"\00" +@.str.1767 = private unnamed_addr constant [7 x i8] c"0x%llx\00" +@.str.1768 = private unnamed_addr constant [5 x i8] c"i64 \00" +@.str.1769 = private unnamed_addr constant [14 x i8] c"ptrtoint ptr \00" +@.str.1770 = private unnamed_addr constant [8 x i8] c" to i64\00" +@.str.1771 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.1772 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.1773 = private unnamed_addr constant [1 x i8] c"\00" +@.str.1774 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.1775 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.1776 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" +@.str.1777 = private unnamed_addr constant [32 x i8] c"call void @finch_buf_print(ptr \00" +@.str.1778 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1779 = private unnamed_addr constant [30 x i8] c"call void @finch_buf_add(ptr \00" +@.str.1780 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1781 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.1782 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1783 = private unnamed_addr constant [2 x i8] c"0\00" +@.str.1784 = private unnamed_addr constant [2 x i8] c"1\00" +@.str.1785 = private unnamed_addr constant [30 x i8] c"call void @finch_buf_int(ptr \00" +@.str.1786 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.1787 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.1788 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1789 = private unnamed_addr constant [31 x i8] c"call void @finch_buf_uint(ptr \00" +@.str.1790 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.1791 = private unnamed_addr constant [4 x i8] c"u64\00" +@.str.1792 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1793 = private unnamed_addr constant [32 x i8] c"call void @finch_buf_float(ptr \00" +@.str.1794 = private unnamed_addr constant [10 x i8] c", double \00" +@.str.1795 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.1796 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1797 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.1798 = private unnamed_addr constant [31 x i8] c"call void @finch_buf_char(ptr \00" +@.str.1799 = private unnamed_addr constant [6 x i8] c", i8 \00" +@.str.1800 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str.1801 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1802 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.1803 = private unnamed_addr constant [31 x i8] c"call void @finch_buf_bool(ptr \00" +@.str.1804 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str.1805 = private unnamed_addr constant [9 x i8] c"zext i1 \00" +@.str.1806 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str.1807 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1808 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.1809 = private unnamed_addr constant [30 x i8] c"call void @finch_buf_str(ptr \00" +@.str.1810 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1811 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str.1812 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1813 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.1814 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.1815 = private unnamed_addr constant [30 x i8] c"call void @finch_buf_ptr(ptr \00" +@.str.1816 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1817 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1818 = private unnamed_addr constant [11 x i8] c"call void \00" +@.str.1819 = private unnamed_addr constant [6 x i8] c"(ptr \00" +@.str.1820 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1821 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1822 = private unnamed_addr constant [15 x i8] c"@finch.format.\00" +@.str.1823 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1824 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" +@.str.1825 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1826 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" +@.str.1827 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.1828 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1829 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.1830 = private unnamed_addr constant [3 x i8] c"%a\00" +@.str.1831 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1832 = private unnamed_addr constant [63 x i8] c"getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1\00" +@.str.1833 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1834 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.1835 = private unnamed_addr constant [4 x i8] c"sep\00" +@.str.1836 = private unnamed_addr constant [5 x i8] c"item\00" +@.str.1837 = private unnamed_addr constant [14 x i8] c"icmp sgt i64 \00" +@.str.1838 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1839 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.1840 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1841 = private unnamed_addr constant [3 x i8] c", \00" +@.str.1842 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.1843 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1844 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.1845 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1846 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1847 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1848 = private unnamed_addr constant [2 x i8] c"]\00" +@.str.1849 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.1850 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1851 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" +@.str.1852 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1853 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.1854 = private unnamed_addr constant [3 x i8] c"%a\00" +@.str.1855 = private unnamed_addr constant [11 x i8] c"enum.other\00" +@.str.1856 = private unnamed_addr constant [10 x i8] c"enum.done\00" +@.str.1857 = private unnamed_addr constant [7 x i8] c"enum.v\00" +@.str.1858 = private unnamed_addr constant [5 x i8] c"i32 \00" +@.str.1859 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1860 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str.1861 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1862 = private unnamed_addr constant [12 x i8] c"switch i32 \00" +@.str.1863 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str.1864 = private unnamed_addr constant [4 x i8] c" [ \00" +@.str.1865 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1866 = private unnamed_addr constant [3 x i8] c" ]\00" +@.str.1867 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1868 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.1869 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1870 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1871 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1872 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1873 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.1874 = private unnamed_addr constant [40 x i8] c"call void @finch_buf_int(ptr %buf, i64 \00" +@.str.1875 = private unnamed_addr constant [10 x i8] c"sext i32 \00" +@.str.1876 = private unnamed_addr constant [8 x i8] c" to i64\00" +@.str.1877 = private unnamed_addr constant [2 x i8] c")\00" @.str.1878 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1879 = private unnamed_addr constant [3 x i8] c": \00" -@.str.1880 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1881 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1882 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1883 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1884 = private unnamed_addr constant [2 x i8] c"}\00" -@.str.1885 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1886 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.1887 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1888 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1889 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.1890 = private unnamed_addr constant [3 x i8] c", \00" -@.str.1891 = private unnamed_addr constant [1 x i8] c"\00" -@.str.1892 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1893 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1894 = private unnamed_addr constant [3 x i8] c": \00" -@.str.1895 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.1896 = private unnamed_addr constant [22 x i8] c", ptr %a, i32 0, i32 \00" -@.str.1897 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1898 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1899 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1900 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1901 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1902 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1903 = private unnamed_addr constant [9 x i8] c"ret void\00" -@.str.1904 = private unnamed_addr constant [22 x i8] c"define internal void \00" -@.str.1905 = private unnamed_addr constant [19 x i8] c"(ptr %buf, ptr %a)\00" -@.str.1906 = private unnamed_addr constant [7 x i8] c"trunc \00" -@.str.1907 = private unnamed_addr constant [2 x i8] c" \00" -@.str.1908 = private unnamed_addr constant [5 x i8] c" to \00" -@.str.1909 = private unnamed_addr constant [6 x i8] c"sext \00" -@.str.1910 = private unnamed_addr constant [2 x i8] c" \00" -@.str.1911 = private unnamed_addr constant [5 x i8] c" to \00" -@.str.1912 = private unnamed_addr constant [6 x i8] c"zext \00" -@.str.1913 = private unnamed_addr constant [2 x i8] c" \00" -@.str.1914 = private unnamed_addr constant [5 x i8] c" to \00" -@.str.1915 = private unnamed_addr constant [7 x i8] c"fpext \00" -@.str.1916 = private unnamed_addr constant [2 x i8] c" \00" -@.str.1917 = private unnamed_addr constant [5 x i8] c" to \00" -@.str.1918 = private unnamed_addr constant [9 x i8] c"fptrunc \00" -@.str.1919 = private unnamed_addr constant [2 x i8] c" \00" -@.str.1920 = private unnamed_addr constant [5 x i8] c" to \00" -@.str.1921 = private unnamed_addr constant [8 x i8] c"sitofp \00" -@.str.1922 = private unnamed_addr constant [2 x i8] c" \00" -@.str.1923 = private unnamed_addr constant [5 x i8] c" to \00" -@.str.1924 = private unnamed_addr constant [8 x i8] c"uitofp \00" -@.str.1925 = private unnamed_addr constant [2 x i8] c" \00" -@.str.1926 = private unnamed_addr constant [5 x i8] c" to \00" -@.str.1927 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.1928 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.1929 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.1930 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.1931 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.1932 = private unnamed_addr constant [12 x i8] c"the number \00" -@.str.1933 = private unnamed_addr constant [17 x i8] c" doesn't fit in \00" -@.str.1934 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.1935 = private unnamed_addr constant [3 x i8] c".0\00" -@.str.1936 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.1937 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.1938 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.1939 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.1940 = private unnamed_addr constant [10 x i8] c" must be \00" -@.str.1941 = private unnamed_addr constant [15 x i8] c", but this is \00" -@.str.1942 = private unnamed_addr constant [7 x i8] c" (use \00" -@.str.1943 = private unnamed_addr constant [17 x i8] c"(...) to convert\00" -@.str.1944 = private unnamed_addr constant [27 x i8] c", it cuts off the fraction\00" -@.str.1945 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1946 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.1947 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.1948 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.1949 = private unnamed_addr constant [35 x i8] c" (turn it into text with str(...))\00" -@.str.1950 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1951 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.1879 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1880 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.1881 = private unnamed_addr constant [3 x i8] c"i1\00" +@.str.1882 = private unnamed_addr constant [3 x i8] c"i1\00" +@.str.1883 = private unnamed_addr constant [5 x i8] c"true\00" +@.str.1884 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1885 = private unnamed_addr constant [2 x i8] c"{\00" +@.str.1886 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1887 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.1888 = private unnamed_addr constant [23 x i8] c", ptr %a, i32 0, i32 2\00" +@.str.1889 = private unnamed_addr constant [3 x i8] c"%a\00" +@.str.1890 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1891 = private unnamed_addr constant [11 x i8] c"entry.live\00" +@.str.1892 = private unnamed_addr constant [11 x i8] c"entry.next\00" +@.str.1893 = private unnamed_addr constant [13 x i8] c"icmp ne i64 \00" +@.str.1894 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1895 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.1896 = private unnamed_addr constant [4 x i8] c"sep\00" +@.str.1897 = private unnamed_addr constant [5 x i8] c"item\00" +@.str.1898 = private unnamed_addr constant [3 x i8] c"i1\00" +@.str.1899 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1900 = private unnamed_addr constant [3 x i8] c", \00" +@.str.1901 = private unnamed_addr constant [3 x i8] c"i1\00" +@.str.1902 = private unnamed_addr constant [6 x i8] c"false\00" +@.str.1903 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1904 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1905 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1906 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1907 = private unnamed_addr constant [3 x i8] c": \00" +@.str.1908 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1909 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1910 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1911 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1912 = private unnamed_addr constant [2 x i8] c"}\00" +@.str.1913 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.1914 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1915 = private unnamed_addr constant [29 x i8] c"used .sums on a null pointer\00" +@.str.1916 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1917 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1918 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.1919 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1920 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1921 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.1922 = private unnamed_addr constant [22 x i8] c", ptr %a, i32 0, i32 \00" +@.str.1923 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1924 = private unnamed_addr constant [10 x i8] c"sum.other\00" +@.str.1925 = private unnamed_addr constant [9 x i8] c"sum.done\00" +@.str.1926 = private unnamed_addr constant [6 x i8] c"sum.v\00" +@.str.1927 = private unnamed_addr constant [5 x i8] c"i64 \00" +@.str.1928 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str.1929 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1930 = private unnamed_addr constant [12 x i8] c"switch i64 \00" +@.str.1931 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str.1932 = private unnamed_addr constant [4 x i8] c" [ \00" +@.str.1933 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1934 = private unnamed_addr constant [3 x i8] c" ]\00" +@.str.1935 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1936 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.1937 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1938 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1939 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1940 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1941 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1942 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.1943 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1944 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1945 = private unnamed_addr constant [3 x i8] c", \00" +@.str.1946 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1947 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.1948 = private unnamed_addr constant [22 x i8] c", ptr %a, i32 0, i32 \00" +@.str.1949 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1950 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1951 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.1952 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1953 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.1954 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1955 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.1956 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1953 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1954 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1955 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1956 = private unnamed_addr constant [4 x i8] c"(?)\00" @.str.1957 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1958 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.1958 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.1959 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1960 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1961 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1962 = private unnamed_addr constant [32 x i8] c"used .deferOn on a null pointer\00" -@.str.1963 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1964 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.1960 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1961 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.1962 = private unnamed_addr constant [3 x i8] c", \00" +@.str.1963 = private unnamed_addr constant [1 x i8] c"\00" +@.str.1964 = private unnamed_addr constant [5 x i8] c"%buf\00" @.str.1965 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1966 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1967 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1968 = private unnamed_addr constant [35 x i8] c"used .deferLimit on a null pointer\00" +@.str.1966 = private unnamed_addr constant [3 x i8] c": \00" +@.str.1967 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.1968 = private unnamed_addr constant [22 x i8] c", ptr %a, i32 0, i32 \00" @.str.1969 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1970 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.1970 = private unnamed_addr constant [5 x i8] c"%buf\00" @.str.1971 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.1972 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1973 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1974 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.1975 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1976 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.1977 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1978 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1979 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.1980 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1981 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1982 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.1983 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1984 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1985 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.1986 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1987 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.1988 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1989 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1990 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.1991 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1992 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1993 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.1994 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1995 = private unnamed_addr constant [6 x i8] c"print\00" -@.str.1996 = private unnamed_addr constant [5 x i8] c"addr\00" -@.str.1997 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.1998 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.1999 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.2000 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.2001 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.2002 = private unnamed_addr constant [10 x i8] c"read_file\00" -@.str.2003 = private unnamed_addr constant [11 x i8] c"write_file\00" -@.str.2004 = private unnamed_addr constant [12 x i8] c"file_exists\00" -@.str.2005 = private unnamed_addr constant [6 x i8] c"shell\00" -@.str.2006 = private unnamed_addr constant [5 x i8] c"exit\00" -@.str.2007 = private unnamed_addr constant [6 x i8] c"input\00" -@.str.2008 = private unnamed_addr constant [4 x i8] c"new\00" -@.str.2009 = private unnamed_addr constant [5 x i8] c"free\00" -@.str.2010 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.2011 = private unnamed_addr constant [12 x i8] c"delete_file\00" -@.str.2012 = private unnamed_addr constant [3 x i8] c"i8\00" -@.str.2013 = private unnamed_addr constant [4 x i8] c"i16\00" -@.str.2014 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.2015 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.2016 = private unnamed_addr constant [3 x i8] c"u8\00" -@.str.2017 = private unnamed_addr constant [4 x i8] c"u16\00" -@.str.2018 = private unnamed_addr constant [4 x i8] c"u32\00" -@.str.2019 = private unnamed_addr constant [4 x i8] c"u64\00" -@.str.2020 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.2021 = private unnamed_addr constant [4 x i8] c"f64\00" -@.str.2022 = private unnamed_addr constant [6 x i8] c"error\00" -@.str.2023 = private unnamed_addr constant [4 x i8] c"err\00" -@.str.2024 = private unnamed_addr constant [19 x i8] c"a variable named '\00" -@.str.2025 = private unnamed_addr constant [22 x i8] c"' already exists here\00" +@.str.1973 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1974 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1975 = private unnamed_addr constant [9 x i8] c"ret void\00" +@.str.1976 = private unnamed_addr constant [22 x i8] c"define internal void \00" +@.str.1977 = private unnamed_addr constant [19 x i8] c"(ptr %buf, ptr %a)\00" +@.str.1978 = private unnamed_addr constant [7 x i8] c"trunc \00" +@.str.1979 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1980 = private unnamed_addr constant [5 x i8] c" to \00" +@.str.1981 = private unnamed_addr constant [6 x i8] c"sext \00" +@.str.1982 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1983 = private unnamed_addr constant [5 x i8] c" to \00" +@.str.1984 = private unnamed_addr constant [6 x i8] c"zext \00" +@.str.1985 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1986 = private unnamed_addr constant [5 x i8] c" to \00" +@.str.1987 = private unnamed_addr constant [7 x i8] c"fpext \00" +@.str.1988 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1989 = private unnamed_addr constant [5 x i8] c" to \00" +@.str.1990 = private unnamed_addr constant [9 x i8] c"fptrunc \00" +@.str.1991 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1992 = private unnamed_addr constant [5 x i8] c" to \00" +@.str.1993 = private unnamed_addr constant [8 x i8] c"sitofp \00" +@.str.1994 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1995 = private unnamed_addr constant [5 x i8] c" to \00" +@.str.1996 = private unnamed_addr constant [8 x i8] c"uitofp \00" +@.str.1997 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1998 = private unnamed_addr constant [5 x i8] c" to \00" +@.str.1999 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.2000 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.2001 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.2002 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.2003 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.2004 = private unnamed_addr constant [12 x i8] c"the number \00" +@.str.2005 = private unnamed_addr constant [17 x i8] c" doesn't fit in \00" +@.str.2006 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.2007 = private unnamed_addr constant [3 x i8] c".0\00" +@.str.2008 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.2009 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.2010 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.2011 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.2012 = private unnamed_addr constant [10 x i8] c" must be \00" +@.str.2013 = private unnamed_addr constant [15 x i8] c", but this is \00" +@.str.2014 = private unnamed_addr constant [7 x i8] c" (use \00" +@.str.2015 = private unnamed_addr constant [17 x i8] c"(...) to convert\00" +@.str.2016 = private unnamed_addr constant [27 x i8] c", it cuts off the fraction\00" +@.str.2017 = private unnamed_addr constant [2 x i8] c")\00" +@.str.2018 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.2019 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.2020 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.2021 = private unnamed_addr constant [35 x i8] c" (turn it into text with str(...))\00" +@.str.2022 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2023 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2024 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2025 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.2026 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2027 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2028 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.2029 = private unnamed_addr constant [36 x i8] c"' is already the name of a function\00" -@.str.2030 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.2031 = private unnamed_addr constant [39 x i8] c"' is a built-in name, pick another one\00" +@.str.2027 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2028 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2029 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2030 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2031 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2032 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2033 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.2034 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2035 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.2036 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2033 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2034 = private unnamed_addr constant [32 x i8] c"used .deferOn on a null pointer\00" +@.str.2035 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2036 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.2037 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2038 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2038 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2039 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2040 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2041 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.2042 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2040 = private unnamed_addr constant [35 x i8] c"used .deferLimit on a null pointer\00" +@.str.2041 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2042 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.2043 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2044 = private unnamed_addr constant [30 x i8] c"used .nvars on a null pointer\00" +@.str.2044 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2045 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2046 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.2046 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" @.str.2047 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2048 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2049 = private unnamed_addr constant [30 x i8] c"used .nvars on a null pointer\00" +@.str.2048 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2049 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2050 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2051 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" -@.str.2052 = private unnamed_addr constant [4 x i8] c"err\00" +@.str.2051 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2052 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2053 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2054 = private unnamed_addr constant [2 x i8] c"$\00" +@.str.2054 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" @.str.2055 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2056 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.2057 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2058 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.2059 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2056 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2057 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2058 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2059 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" @.str.2060 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2061 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.2062 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2061 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2062 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" @.str.2063 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2064 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" -@.str.2065 = private unnamed_addr constant [4 x i8] c"@V\09\00" -@.str.2066 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.2067 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.2068 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2069 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" -@.str.2070 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2071 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.2072 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.2073 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.2074 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2075 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" -@.str.2076 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2077 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.2078 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.2079 = private unnamed_addr constant [10 x i8] c"```finch\0A\00" -@.str.2080 = private unnamed_addr constant [2 x i8] c" \00" -@.str.2081 = private unnamed_addr constant [5 x i8] c"\0A```\00" -@.str.2082 = private unnamed_addr constant [1 x i8] c"\00" -@.str.2083 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2084 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.2085 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2086 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.2087 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2088 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.2089 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2090 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.2091 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2092 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" -@.str.2093 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2094 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.2095 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2096 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2097 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2064 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2065 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2066 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2067 = private unnamed_addr constant [6 x i8] c"print\00" +@.str.2068 = private unnamed_addr constant [5 x i8] c"addr\00" +@.str.2069 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.2070 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.2071 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.2072 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.2073 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.2074 = private unnamed_addr constant [10 x i8] c"read_file\00" +@.str.2075 = private unnamed_addr constant [11 x i8] c"write_file\00" +@.str.2076 = private unnamed_addr constant [12 x i8] c"file_exists\00" +@.str.2077 = private unnamed_addr constant [6 x i8] c"shell\00" +@.str.2078 = private unnamed_addr constant [5 x i8] c"exit\00" +@.str.2079 = private unnamed_addr constant [6 x i8] c"input\00" +@.str.2080 = private unnamed_addr constant [4 x i8] c"new\00" +@.str.2081 = private unnamed_addr constant [5 x i8] c"free\00" +@.str.2082 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.2083 = private unnamed_addr constant [12 x i8] c"delete_file\00" +@.str.2084 = private unnamed_addr constant [3 x i8] c"i8\00" +@.str.2085 = private unnamed_addr constant [4 x i8] c"i16\00" +@.str.2086 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.2087 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.2088 = private unnamed_addr constant [3 x i8] c"u8\00" +@.str.2089 = private unnamed_addr constant [4 x i8] c"u16\00" +@.str.2090 = private unnamed_addr constant [4 x i8] c"u32\00" +@.str.2091 = private unnamed_addr constant [4 x i8] c"u64\00" +@.str.2092 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.2093 = private unnamed_addr constant [4 x i8] c"f64\00" +@.str.2094 = private unnamed_addr constant [6 x i8] c"error\00" +@.str.2095 = private unnamed_addr constant [4 x i8] c"err\00" +@.str.2096 = private unnamed_addr constant [19 x i8] c"a variable named '\00" +@.str.2097 = private unnamed_addr constant [22 x i8] c"' already exists here\00" @.str.2098 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2099 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2100 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2101 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.2102 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2103 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2099 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2100 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.2101 = private unnamed_addr constant [36 x i8] c"' is already the name of a function\00" +@.str.2102 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.2103 = private unnamed_addr constant [39 x i8] c"' is a built-in name, pick another one\00" @.str.2104 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2105 = private unnamed_addr constant [32 x i8] c"used .deferOn on a null pointer\00" +@.str.2105 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.2106 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2107 = private unnamed_addr constant [35 x i8] c"used .deferLimit on a null pointer\00" +@.str.2107 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.2108 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2109 = private unnamed_addr constant [32 x i8] c"used .deferOn on a null pointer\00" -@.str.2110 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2111 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2109 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2110 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2111 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2112 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2113 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2113 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.2114 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2115 = private unnamed_addr constant [35 x i8] c"used .deferLimit on a null pointer\00" -@.str.2116 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2117 = private unnamed_addr constant [32 x i8] c"used .inDefer on a null pointer\00" -@.str.2118 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2119 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2115 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2116 = private unnamed_addr constant [30 x i8] c"used .nvars on a null pointer\00" +@.str.2117 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2118 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.2119 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2120 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2121 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2121 = private unnamed_addr constant [30 x i8] c"used .nvars on a null pointer\00" @.str.2122 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2123 = private unnamed_addr constant [32 x i8] c"used .inDefer on a null pointer\00" -@.str.2124 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2125 = private unnamed_addr constant [32 x i8] c"used .deferOn on a null pointer\00" -@.str.2126 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2127 = private unnamed_addr constant [35 x i8] c"used .deferLimit on a null pointer\00" -@.str.2128 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2129 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.2130 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.2131 = private unnamed_addr constant [7 x i8] c"member\00" -@.str.2132 = private unnamed_addr constant [6 x i8] c"index\00" -@.str.2133 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2134 = private unnamed_addr constant [1 x i8] c"\00" -@.str.2135 = private unnamed_addr constant [5 x i8] c"push\00" -@.str.2136 = private unnamed_addr constant [4 x i8] c"pop\00" -@.str.2137 = private unnamed_addr constant [7 x i8] c"insert\00" -@.str.2138 = private unnamed_addr constant [7 x i8] c"remove\00" -@.str.2139 = private unnamed_addr constant [6 x i8] c"clear\00" -@.str.2140 = private unnamed_addr constant [7 x i8] c"resize\00" -@.str.2141 = private unnamed_addr constant [5 x i8] c"sort\00" -@.str.2142 = private unnamed_addr constant [8 x i8] c"reverse\00" -@.str.2143 = private unnamed_addr constant [7 x i8] c"assign\00" -@.str.2144 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2145 = private unnamed_addr constant [7 x i8] c"method\00" +@.str.2123 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" +@.str.2124 = private unnamed_addr constant [4 x i8] c"err\00" +@.str.2125 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2126 = private unnamed_addr constant [2 x i8] c"$\00" +@.str.2127 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2128 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2129 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2130 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.2131 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2132 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2133 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.2134 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2135 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2136 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" +@.str.2137 = private unnamed_addr constant [4 x i8] c"@V\09\00" +@.str.2138 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.2139 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.2140 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2141 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.2142 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2143 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.2144 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.2145 = private unnamed_addr constant [2 x i8] c"\09\00" @.str.2146 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2147 = private unnamed_addr constant [27 x i8] c"used .mm on a null pointer\00" +@.str.2147 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" @.str.2148 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2149 = private unnamed_addr constant [5 x i8] c"call\00" -@.str.2150 = private unnamed_addr constant [5 x i8] c"addr\00" -@.str.2151 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2152 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2153 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.2154 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2155 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.2156 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2149 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.2150 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.2151 = private unnamed_addr constant [10 x i8] c"```finch\0A\00" +@.str.2152 = private unnamed_addr constant [2 x i8] c" \00" +@.str.2153 = private unnamed_addr constant [5 x i8] c"\0A```\00" +@.str.2154 = private unnamed_addr constant [1 x i8] c"\00" +@.str.2155 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2156 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.2157 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2158 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2158 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" @.str.2159 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2160 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2160 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.2161 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2162 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2163 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.2164 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2162 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2163 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2164 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" @.str.2165 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2166 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2167 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2166 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2167 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2168 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2169 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2170 = private unnamed_addr constant [1 x i8] c"\00" -@.str.2171 = private unnamed_addr constant [13 x i8] c"the struct '\00" -@.str.2172 = private unnamed_addr constant [19 x i8] c"' is defined twice\00" -@.str.2173 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2174 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" +@.str.2169 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2170 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2171 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2172 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2173 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2174 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2175 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2176 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2177 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2178 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2179 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2180 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2181 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2182 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.2183 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2184 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2176 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2177 = private unnamed_addr constant [32 x i8] c"used .deferOn on a null pointer\00" +@.str.2178 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2179 = private unnamed_addr constant [35 x i8] c"used .deferLimit on a null pointer\00" +@.str.2180 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2181 = private unnamed_addr constant [32 x i8] c"used .deferOn on a null pointer\00" +@.str.2182 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2183 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2184 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2185 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2186 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2187 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2187 = private unnamed_addr constant [35 x i8] c"used .deferLimit on a null pointer\00" @.str.2188 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2189 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2189 = private unnamed_addr constant [32 x i8] c"used .inDefer on a null pointer\00" @.str.2190 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2191 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2192 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2191 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2192 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2193 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2194 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2195 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2196 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2197 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2198 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2199 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.2200 = private unnamed_addr constant [19 x i8] c"' is defined twice\00" -@.str.2201 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2202 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2203 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2204 = private unnamed_addr constant [10 x i8] c"the enum \00" -@.str.2205 = private unnamed_addr constant [18 x i8] c" has the variant \00" -@.str.2206 = private unnamed_addr constant [7 x i8] c" twice\00" -@.str.2207 = private unnamed_addr constant [17 x i8] c"two variants of \00" -@.str.2208 = private unnamed_addr constant [18 x i8] c" have the number \00" -@.str.2209 = private unnamed_addr constant [21 x i8] c" (give each its own)\00" -@.str.2210 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2211 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" -@.str.2212 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2213 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" -@.str.2214 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2215 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2216 = private unnamed_addr constant [2 x i8] c"C\00" -@.str.2217 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2218 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" -@.str.2219 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2195 = private unnamed_addr constant [32 x i8] c"used .inDefer on a null pointer\00" +@.str.2196 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2197 = private unnamed_addr constant [32 x i8] c"used .deferOn on a null pointer\00" +@.str.2198 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2199 = private unnamed_addr constant [35 x i8] c"used .deferLimit on a null pointer\00" +@.str.2200 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2201 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2202 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.2203 = private unnamed_addr constant [7 x i8] c"member\00" +@.str.2204 = private unnamed_addr constant [6 x i8] c"index\00" +@.str.2205 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2206 = private unnamed_addr constant [1 x i8] c"\00" +@.str.2207 = private unnamed_addr constant [5 x i8] c"push\00" +@.str.2208 = private unnamed_addr constant [4 x i8] c"pop\00" +@.str.2209 = private unnamed_addr constant [7 x i8] c"insert\00" +@.str.2210 = private unnamed_addr constant [7 x i8] c"remove\00" +@.str.2211 = private unnamed_addr constant [6 x i8] c"clear\00" +@.str.2212 = private unnamed_addr constant [7 x i8] c"resize\00" +@.str.2213 = private unnamed_addr constant [5 x i8] c"sort\00" +@.str.2214 = private unnamed_addr constant [8 x i8] c"reverse\00" +@.str.2215 = private unnamed_addr constant [7 x i8] c"assign\00" +@.str.2216 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2217 = private unnamed_addr constant [7 x i8] c"method\00" +@.str.2218 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2219 = private unnamed_addr constant [27 x i8] c"used .mm on a null pointer\00" @.str.2220 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2221 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2222 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2223 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2221 = private unnamed_addr constant [5 x i8] c"call\00" +@.str.2222 = private unnamed_addr constant [5 x i8] c"addr\00" +@.str.2223 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2224 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2225 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.2226 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2227 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2228 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2227 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2228 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2229 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2230 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2230 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" @.str.2231 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2232 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2233 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2232 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2233 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2234 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2235 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2235 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.2236 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2237 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2238 = private unnamed_addr constant [11 x i8] c"function '\00" -@.str.2239 = private unnamed_addr constant [19 x i8] c"' is defined twice\00" +@.str.2237 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2238 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2239 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" @.str.2240 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2241 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" @.str.2242 = private unnamed_addr constant [1 x i8] c"\00" -@.str.2243 = private unnamed_addr constant [35 x i8] c"there is no generic struct named '\00" -@.str.2244 = private unnamed_addr constant [54 x i8] c"' here (a method goes in the same file as its struct)\00" +@.str.2243 = private unnamed_addr constant [13 x i8] c"the struct '\00" +@.str.2244 = private unnamed_addr constant [19 x i8] c"' is defined twice\00" @.str.2245 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2246 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" @.str.2247 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2248 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" @.str.2249 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2250 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2250 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.2251 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2252 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2253 = private unnamed_addr constant [12 x i8] c"the method \00" -@.str.2254 = private unnamed_addr constant [2 x i8] c".\00" -@.str.2255 = private unnamed_addr constant [18 x i8] c" is defined twice\00" -@.str.2256 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2257 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2258 = private unnamed_addr constant [2 x i8] c"C\00" -@.str.2259 = private unnamed_addr constant [2 x i8] c"C\00" -@.str.2260 = private unnamed_addr constant [2 x i8] c"C\00" -@.str.2261 = private unnamed_addr constant [27 x i8] c"there is no struct named '\00" -@.str.2262 = private unnamed_addr constant [77 x i8] c"' here (a method goes in the same file as its struct, or on a struct from C)\00" -@.str.2263 = private unnamed_addr constant [12 x i8] c"the method \00" -@.str.2264 = private unnamed_addr constant [2 x i8] c".\00" -@.str.2265 = private unnamed_addr constant [18 x i8] c" is defined twice\00" +@.str.2253 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2254 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2255 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2256 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2257 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2258 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2259 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2260 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2261 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2262 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2263 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2264 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2265 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2266 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2267 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2268 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2269 = private unnamed_addr constant [12 x i8] c"the struct \00" -@.str.2270 = private unnamed_addr constant [29 x i8] c" already has a field named '\00" +@.str.2267 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2268 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2269 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2270 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" @.str.2271 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.2272 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2273 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2274 = private unnamed_addr constant [11 x i8] c"function '\00" -@.str.2275 = private unnamed_addr constant [19 x i8] c"' is defined twice\00" -@.str.2276 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.2277 = private unnamed_addr constant [44 x i8] c"' is a built-in function, pick another name\00" +@.str.2272 = private unnamed_addr constant [19 x i8] c"' is defined twice\00" +@.str.2273 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2274 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2275 = private unnamed_addr constant [10 x i8] c"the enum \00" +@.str.2276 = private unnamed_addr constant [18 x i8] c" has the variant \00" +@.str.2277 = private unnamed_addr constant [7 x i8] c" twice\00" @.str.2278 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2279 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2280 = private unnamed_addr constant [8 x i8] c"@finch.\00" -@.str.2281 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2282 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2283 = private unnamed_addr constant [2 x i8] c".\00" -@.str.2284 = private unnamed_addr constant [8 x i8] c"@finch.\00" -@.str.2285 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2286 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2287 = private unnamed_addr constant [2 x i8] c".\00" -@.str.2288 = private unnamed_addr constant [2 x i8] c".\00" -@.str.2289 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2290 = private unnamed_addr constant [5 x i8] c"self\00" -@.str.2291 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2292 = private unnamed_addr constant [23 x i8] c"'self' is already the \00" -@.str.2293 = private unnamed_addr constant [25 x i8] c" the method is called on\00" -@.str.2294 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2279 = private unnamed_addr constant [29 x i8] c"used .sums on a null pointer\00" +@.str.2280 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2281 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2282 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2283 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2284 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.2285 = private unnamed_addr constant [19 x i8] c"' is defined twice\00" +@.str.2286 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2287 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2288 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2289 = private unnamed_addr constant [10 x i8] c"the enum \00" +@.str.2290 = private unnamed_addr constant [18 x i8] c" has the variant \00" +@.str.2291 = private unnamed_addr constant [7 x i8] c" twice\00" +@.str.2292 = private unnamed_addr constant [17 x i8] c"two variants of \00" +@.str.2293 = private unnamed_addr constant [18 x i8] c" have the number \00" +@.str.2294 = private unnamed_addr constant [21 x i8] c" (give each its own)\00" @.str.2295 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2296 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2296 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" @.str.2297 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2298 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2298 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" @.str.2299 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2300 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.2301 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2302 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.2303 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2300 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2301 = private unnamed_addr constant [2 x i8] c"C\00" +@.str.2302 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2303 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" @.str.2304 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2305 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.2306 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2305 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2306 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.2307 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2308 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.2309 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2310 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2310 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.2311 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2312 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2313 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2314 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.2315 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2313 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2314 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2315 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.2316 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2317 = private unnamed_addr constant [5 x i8] c"self\00" -@.str.2318 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2317 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2318 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.2319 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2320 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2320 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2321 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2322 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2323 = private unnamed_addr constant [27 x i8] c"used .mm on a null pointer\00" -@.str.2324 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2325 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.2326 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2327 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2328 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" -@.str.2329 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2330 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" -@.str.2331 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2322 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2323 = private unnamed_addr constant [11 x i8] c"function '\00" +@.str.2324 = private unnamed_addr constant [19 x i8] c"' is defined twice\00" +@.str.2325 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2326 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2327 = private unnamed_addr constant [1 x i8] c"\00" +@.str.2328 = private unnamed_addr constant [35 x i8] c"there is no generic struct named '\00" +@.str.2329 = private unnamed_addr constant [54 x i8] c"' here (a method goes in the same file as its struct)\00" +@.str.2330 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2331 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" @.str.2332 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2333 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2333 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" @.str.2334 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2335 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2336 = private unnamed_addr constant [5 x i8] c"self\00" -@.str.2337 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2338 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2339 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" -@.str.2340 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2335 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2336 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2337 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2338 = private unnamed_addr constant [12 x i8] c"the method \00" +@.str.2339 = private unnamed_addr constant [2 x i8] c".\00" +@.str.2340 = private unnamed_addr constant [18 x i8] c" is defined twice\00" @.str.2341 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2342 = private unnamed_addr constant [27 x i8] c"used .mm on a null pointer\00" -@.str.2343 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2344 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.2345 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2346 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.2347 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2348 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.2349 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2350 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2342 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2343 = private unnamed_addr constant [2 x i8] c"C\00" +@.str.2344 = private unnamed_addr constant [2 x i8] c"C\00" +@.str.2345 = private unnamed_addr constant [2 x i8] c"C\00" +@.str.2346 = private unnamed_addr constant [27 x i8] c"there is no struct named '\00" +@.str.2347 = private unnamed_addr constant [77 x i8] c"' here (a method goes in the same file as its struct, or on a struct from C)\00" +@.str.2348 = private unnamed_addr constant [12 x i8] c"the method \00" +@.str.2349 = private unnamed_addr constant [2 x i8] c".\00" +@.str.2350 = private unnamed_addr constant [18 x i8] c" is defined twice\00" @.str.2351 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2352 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2352 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.2353 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2354 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2355 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2356 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2357 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.2358 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2359 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2360 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.2361 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2362 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2354 = private unnamed_addr constant [12 x i8] c"the struct \00" +@.str.2355 = private unnamed_addr constant [29 x i8] c" already has a field named '\00" +@.str.2356 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.2357 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2358 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2359 = private unnamed_addr constant [11 x i8] c"function '\00" +@.str.2360 = private unnamed_addr constant [19 x i8] c"' is defined twice\00" +@.str.2361 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.2362 = private unnamed_addr constant [44 x i8] c"' is a built-in function, pick another name\00" @.str.2363 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2364 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.2365 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2364 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2365 = private unnamed_addr constant [8 x i8] c"@finch.\00" @.str.2366 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2367 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.2368 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2369 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2367 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2368 = private unnamed_addr constant [2 x i8] c".\00" +@.str.2369 = private unnamed_addr constant [8 x i8] c"@finch.\00" @.str.2370 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2371 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" -@.str.2372 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2373 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" +@.str.2371 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2372 = private unnamed_addr constant [2 x i8] c".\00" +@.str.2373 = private unnamed_addr constant [2 x i8] c".\00" @.str.2374 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2375 = private unnamed_addr constant [3 x i8] c", \00" -@.str.2376 = private unnamed_addr constant [1 x i8] c"\00" -@.str.2377 = private unnamed_addr constant [35 x i8] c"there is no generic struct named '\00" -@.str.2378 = private unnamed_addr constant [29 x i8] c"' (a struct written struct \00" -@.str.2379 = private unnamed_addr constant [35 x i8] c"[T] { ... } takes type arguments)\00" +@.str.2375 = private unnamed_addr constant [5 x i8] c"self\00" +@.str.2376 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2377 = private unnamed_addr constant [23 x i8] c"'self' is already the \00" +@.str.2378 = private unnamed_addr constant [25 x i8] c" the method is called on\00" +@.str.2379 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2380 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2381 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" +@.str.2381 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2382 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2383 = private unnamed_addr constant [8 x i8] c" takes \00" -@.str.2384 = private unnamed_addr constant [25 x i8] c" type argument(s), like \00" -@.str.2385 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.2386 = private unnamed_addr constant [3 x i8] c", \00" -@.str.2387 = private unnamed_addr constant [12 x i8] c"], but got \00" -@.str.2388 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.2389 = private unnamed_addr constant [2 x i8] c"]\00" -@.str.2390 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2391 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2383 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2384 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2385 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2386 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2387 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2388 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2389 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2390 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2391 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2392 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2393 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2394 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.2395 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2396 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" +@.str.2393 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2394 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2395 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2396 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2397 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2398 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.2399 = private unnamed_addr constant [2 x i8] c"]\00" +@.str.2398 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2399 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" @.str.2400 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2401 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.2402 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2401 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2402 = private unnamed_addr constant [5 x i8] c"self\00" @.str.2403 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2404 = private unnamed_addr constant [8 x i8] c"@finch.\00" -@.str.2405 = private unnamed_addr constant [2 x i8] c".\00" -@.str.2406 = private unnamed_addr constant [2 x i8] c".\00" -@.str.2407 = private unnamed_addr constant [8 x i8] c"@finch.\00" -@.str.2408 = private unnamed_addr constant [2 x i8] c".\00" -@.str.2409 = private unnamed_addr constant [2 x i8] c".\00" -@.str.2410 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2411 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" +@.str.2404 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2405 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2406 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2407 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2408 = private unnamed_addr constant [27 x i8] c"used .mm on a null pointer\00" +@.str.2409 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2410 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2411 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2412 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2413 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" +@.str.2413 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" @.str.2414 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2415 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2415 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" @.str.2416 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2417 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" -@.str.2418 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2419 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" +@.str.2417 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2418 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2419 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2420 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2421 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" +@.str.2421 = private unnamed_addr constant [5 x i8] c"self\00" @.str.2422 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2423 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2424 = private unnamed_addr constant [18 x i8] c" (while building \00" -@.str.2425 = private unnamed_addr constant [2 x i8] c")\00" +@.str.2423 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2424 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" +@.str.2425 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2426 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2427 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" +@.str.2427 = private unnamed_addr constant [27 x i8] c"used .mm on a null pointer\00" @.str.2428 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2429 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2429 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" @.str.2430 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2431 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2431 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.2432 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2433 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2434 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" +@.str.2433 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2434 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2435 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2436 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" -@.str.2437 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2438 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2436 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2437 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2438 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2439 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2440 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" +@.str.2440 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2441 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2442 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" @.str.2443 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2444 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.2445 = private unnamed_addr constant [6 x i8] c"named\00" +@.str.2444 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2445 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" @.str.2446 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2447 = private unnamed_addr constant [30 x i8] c"used .bound on a null pointer\00" +@.str.2447 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2448 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2449 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2450 = private unnamed_addr constant [30 x i8] c"used .types on a null pointer\00" +@.str.2449 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2450 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2451 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2452 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2453 = private unnamed_addr constant [30 x i8] c"used .bound on a null pointer\00" +@.str.2452 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2453 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2454 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2455 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.2456 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.2457 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str.2458 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2455 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2456 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" +@.str.2457 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2458 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" @.str.2459 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2460 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.2461 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.2462 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2463 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2464 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2460 = private unnamed_addr constant [3 x i8] c", \00" +@.str.2461 = private unnamed_addr constant [1 x i8] c"\00" +@.str.2462 = private unnamed_addr constant [35 x i8] c"there is no generic struct named '\00" +@.str.2463 = private unnamed_addr constant [29 x i8] c"' (a struct written struct \00" +@.str.2464 = private unnamed_addr constant [35 x i8] c"[T] { ... } takes type arguments)\00" @.str.2465 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2466 = private unnamed_addr constant [6 x i8] c"named\00" -@.str.2467 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.2468 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2469 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2470 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2471 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2472 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2473 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2474 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" +@.str.2466 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" +@.str.2467 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2468 = private unnamed_addr constant [8 x i8] c" takes \00" +@.str.2469 = private unnamed_addr constant [25 x i8] c" type argument(s), like \00" +@.str.2470 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.2471 = private unnamed_addr constant [3 x i8] c", \00" +@.str.2472 = private unnamed_addr constant [12 x i8] c"], but got \00" +@.str.2473 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.2474 = private unnamed_addr constant [2 x i8] c"]\00" @.str.2475 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2476 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2477 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.2478 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2479 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2480 = private unnamed_addr constant [8 x i8] c" takes \00" -@.str.2481 = private unnamed_addr constant [28 x i8] c" type argument(s), but got \00" -@.str.2482 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.2483 = private unnamed_addr constant [1 x i8] c"\00" -@.str.2484 = private unnamed_addr constant [1 x i8] c"\00" -@.str.2485 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.2486 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2487 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.2476 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2477 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2478 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2479 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.2480 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2481 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" +@.str.2482 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2483 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.2484 = private unnamed_addr constant [2 x i8] c"]\00" +@.str.2485 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2486 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2487 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2488 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2489 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.2490 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.2491 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2492 = private unnamed_addr constant [30 x i8] c"this has no type to work out \00" -@.str.2493 = private unnamed_addr constant [3 x i8] c", \00" -@.str.2494 = private unnamed_addr constant [6 x i8] c" from\00" +@.str.2489 = private unnamed_addr constant [8 x i8] c"@finch.\00" +@.str.2490 = private unnamed_addr constant [2 x i8] c".\00" +@.str.2491 = private unnamed_addr constant [2 x i8] c".\00" +@.str.2492 = private unnamed_addr constant [8 x i8] c"@finch.\00" +@.str.2493 = private unnamed_addr constant [2 x i8] c".\00" +@.str.2494 = private unnamed_addr constant [2 x i8] c".\00" @.str.2495 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2496 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2497 = private unnamed_addr constant [17 x i8] c"can't tell what \00" -@.str.2498 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2499 = private unnamed_addr constant [25 x i8] c" is here; write it out: \00" -@.str.2500 = private unnamed_addr constant [11 x i8] c"[int](...)\00" -@.str.2501 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.2502 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2503 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.2504 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2496 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" +@.str.2497 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2498 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" +@.str.2499 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2500 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2501 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2502 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" +@.str.2503 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2504 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" @.str.2505 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2506 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2506 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" @.str.2507 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2508 = private unnamed_addr constant [11 x i8] c"argument '\00" -@.str.2509 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2510 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.2508 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2509 = private unnamed_addr constant [18 x i8] c" (while building \00" +@.str.2510 = private unnamed_addr constant [2 x i8] c")\00" @.str.2511 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2512 = private unnamed_addr constant [2 x i8] c" \00" +@.str.2512 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" @.str.2513 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2514 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" +@.str.2514 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2515 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2516 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2516 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2517 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2518 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2519 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2520 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2521 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2522 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.2523 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.2524 = private unnamed_addr constant [7 x i8] c" x i8]\00" -@.str.2525 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2526 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2527 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2519 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" +@.str.2520 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2521 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" +@.str.2522 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2523 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2524 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2525 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" +@.str.2526 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2527 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" @.str.2528 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2529 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2530 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2529 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2530 = private unnamed_addr constant [6 x i8] c"named\00" @.str.2531 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2532 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2532 = private unnamed_addr constant [30 x i8] c"used .bound on a null pointer\00" @.str.2533 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2534 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2535 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2535 = private unnamed_addr constant [30 x i8] c"used .types on a null pointer\00" @.str.2536 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2537 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.2538 = private unnamed_addr constant [7 x i8] c" x i8]\00" +@.str.2537 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2538 = private unnamed_addr constant [30 x i8] c"used .bound on a null pointer\00" @.str.2539 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2540 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2541 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2542 = private unnamed_addr constant [50 x i8] c"has fields Finch can't see (unions or bit fields)\00" +@.str.2540 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.2541 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.2542 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str.2543 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2544 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2545 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2546 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2547 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2544 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2545 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.2546 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.2547 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2548 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2549 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2550 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2551 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2552 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2553 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2554 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2550 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2551 = private unnamed_addr constant [6 x i8] c"named\00" +@.str.2552 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.2553 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2554 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.2555 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2556 = private unnamed_addr constant [29 x i8] c"used .head on a null pointer\00" -@.str.2557 = private unnamed_addr constant [6 x i8] c"%S.C.\00" -@.str.2558 = private unnamed_addr constant [11 x i8] c" = type { \00" -@.str.2559 = private unnamed_addr constant [3 x i8] c", \00" -@.str.2560 = private unnamed_addr constant [3 x i8] c" }\00" +@.str.2556 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2557 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2558 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2559 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" +@.str.2560 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2561 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2562 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2562 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.2563 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2564 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2565 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2566 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2567 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2568 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2569 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2570 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2571 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" -@.str.2572 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2573 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" -@.str.2574 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2575 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" +@.str.2565 = private unnamed_addr constant [8 x i8] c" takes \00" +@.str.2566 = private unnamed_addr constant [28 x i8] c" type argument(s), but got \00" +@.str.2567 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.2568 = private unnamed_addr constant [1 x i8] c"\00" +@.str.2569 = private unnamed_addr constant [1 x i8] c"\00" +@.str.2570 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.2571 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2572 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.2573 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2574 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.2575 = private unnamed_addr constant [5 x i8] c"null\00" @.str.2576 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2577 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2578 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2579 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2580 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" +@.str.2577 = private unnamed_addr constant [30 x i8] c"this has no type to work out \00" +@.str.2578 = private unnamed_addr constant [3 x i8] c", \00" +@.str.2579 = private unnamed_addr constant [6 x i8] c" from\00" +@.str.2580 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2581 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2582 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2582 = private unnamed_addr constant [17 x i8] c"can't tell what \00" @.str.2583 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2584 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2585 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" -@.str.2586 = private unnamed_addr constant [18 x i8] c" (while building \00" +@.str.2584 = private unnamed_addr constant [25 x i8] c" is here; write it out: \00" +@.str.2585 = private unnamed_addr constant [11 x i8] c"[int](...)\00" +@.str.2586 = private unnamed_addr constant [5 x i8] c"void\00" @.str.2587 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2588 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2588 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" @.str.2589 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2590 = private unnamed_addr constant [2 x i8] c")\00" +@.str.2590 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2591 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2592 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" -@.str.2593 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2594 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" -@.str.2595 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2596 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" -@.str.2597 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2598 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" -@.str.2599 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2600 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.2601 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2602 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2592 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2593 = private unnamed_addr constant [11 x i8] c"argument '\00" +@.str.2594 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2595 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.2596 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2597 = private unnamed_addr constant [2 x i8] c" \00" +@.str.2598 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2599 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" +@.str.2600 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2601 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2602 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2603 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2604 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2605 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2606 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2607 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2608 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2609 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2610 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2611 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2612 = private unnamed_addr constant [12 x i8] c"the struct \00" -@.str.2613 = private unnamed_addr constant [27 x i8] c" contains itself; use ptr[\00" -@.str.2614 = private unnamed_addr constant [8 x i8] c"] or []\00" -@.str.2615 = private unnamed_addr constant [16 x i8] c" for that field\00" +@.str.2605 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2606 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2607 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.2608 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.2609 = private unnamed_addr constant [7 x i8] c" x i8]\00" +@.str.2610 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2611 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2612 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2613 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2614 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2615 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2616 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2617 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.2618 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2619 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2620 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2620 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.2621 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2622 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2623 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2622 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.2623 = private unnamed_addr constant [7 x i8] c" x i8]\00" @.str.2624 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2625 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2626 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.2627 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2628 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2629 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2625 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2626 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2627 = private unnamed_addr constant [50 x i8] c"has fields Finch can't see (unions or bit fields)\00" +@.str.2628 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2629 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.2630 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2631 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2632 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2631 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2632 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.2633 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2634 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2635 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2634 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2635 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.2636 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2637 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2638 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2637 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2638 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.2639 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2640 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2641 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2642 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2643 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2644 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2645 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2640 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2641 = private unnamed_addr constant [29 x i8] c"used .head on a null pointer\00" +@.str.2642 = private unnamed_addr constant [6 x i8] c"%S.C.\00" +@.str.2643 = private unnamed_addr constant [11 x i8] c" = type { \00" +@.str.2644 = private unnamed_addr constant [3 x i8] c", \00" +@.str.2645 = private unnamed_addr constant [3 x i8] c" }\00" @.str.2646 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2647 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2648 = private unnamed_addr constant [29 x i8] c"used .head on a null pointer\00" -@.str.2649 = private unnamed_addr constant [4 x i8] c"%S.\00" -@.str.2650 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2651 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2647 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2648 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2649 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2650 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2651 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2652 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2653 = private unnamed_addr constant [2 x i8] c".\00" +@.str.2653 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.2654 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2655 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2656 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2657 = private unnamed_addr constant [11 x i8] c" = type { \00" -@.str.2658 = private unnamed_addr constant [3 x i8] c", \00" -@.str.2659 = private unnamed_addr constant [3 x i8] c" }\00" -@.str.2660 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2661 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" -@.str.2662 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2663 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" -@.str.2664 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.2665 = private unnamed_addr constant [2 x i8] c"!\00" +@.str.2655 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2656 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" +@.str.2657 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2658 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" +@.str.2659 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2660 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" +@.str.2661 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2662 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2663 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2664 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2665 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" @.str.2666 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2667 = private unnamed_addr constant [17 x i8] c"division by zero\00" -@.str.2668 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.2669 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.2670 = private unnamed_addr constant [3 x i8] c"i8\00" -@.str.2671 = private unnamed_addr constant [3 x i8] c"u8\00" -@.str.2672 = private unnamed_addr constant [4 x i8] c"i16\00" -@.str.2673 = private unnamed_addr constant [4 x i8] c"u16\00" -@.str.2674 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.2675 = private unnamed_addr constant [4 x i8] c"u32\00" -@.str.2676 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.2677 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.2678 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.2679 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.2680 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.2681 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str.2667 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2668 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2669 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2670 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" +@.str.2671 = private unnamed_addr constant [18 x i8] c" (while building \00" +@.str.2672 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2673 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2674 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2675 = private unnamed_addr constant [2 x i8] c")\00" +@.str.2676 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2677 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" +@.str.2678 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2679 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" +@.str.2680 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2681 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" @.str.2682 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2683 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.2683 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" @.str.2684 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2685 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2685 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.2686 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2687 = private unnamed_addr constant [43 x i8] c"!DIDerivedType(tag: DW_TAG_member, name: \22\00" -@.str.2688 = private unnamed_addr constant [12 x i8] c"\22, scope: !\00" -@.str.2689 = private unnamed_addr constant [10 x i8] c", file: !\00" -@.str.2690 = private unnamed_addr constant [9 x i8] c", line: \00" -@.str.2691 = private unnamed_addr constant [13 x i8] c", baseType: \00" -@.str.2692 = private unnamed_addr constant [9 x i8] c", size: \00" -@.str.2693 = private unnamed_addr constant [11 x i8] c", offset: \00" -@.str.2694 = private unnamed_addr constant [2 x i8] c")\00" -@.str.2695 = private unnamed_addr constant [21 x i8] c"!DIBasicType(name: \22\00" -@.str.2696 = private unnamed_addr constant [10 x i8] c"\22, size: \00" -@.str.2697 = private unnamed_addr constant [13 x i8] c", encoding: \00" -@.str.2698 = private unnamed_addr constant [2 x i8] c")\00" -@.str.2699 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.2700 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.2701 = private unnamed_addr constant [3 x i8] c"T:\00" -@.str.2702 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2703 = private unnamed_addr constant [32 x i8] c"used .mdcache on a null pointer\00" +@.str.2687 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2688 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2689 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2690 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2691 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2692 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2693 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2694 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2695 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2696 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2697 = private unnamed_addr constant [12 x i8] c"the struct \00" +@.str.2698 = private unnamed_addr constant [27 x i8] c" contains itself; use ptr[\00" +@.str.2699 = private unnamed_addr constant [8 x i8] c"] or []\00" +@.str.2700 = private unnamed_addr constant [16 x i8] c" for that field\00" +@.str.2701 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2702 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2703 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2704 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2705 = private unnamed_addr constant [32 x i8] c"used .mdcache on a null pointer\00" +@.str.2705 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" @.str.2706 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2707 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2708 = private unnamed_addr constant [32 x i8] c"used .mdfiles on a null pointer\00" +@.str.2707 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2708 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2709 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2710 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.2711 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.2712 = private unnamed_addr constant [15 x i8] c"DW_ATE_boolean\00" -@.str.2713 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.2714 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.2715 = private unnamed_addr constant [19 x i8] c"DW_ATE_signed_char\00" -@.str.2716 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.2717 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.2718 = private unnamed_addr constant [14 x i8] c"DW_ATE_signed\00" -@.str.2719 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.2720 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.2721 = private unnamed_addr constant [13 x i8] c"DW_ATE_float\00" -@.str.2722 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.2723 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.2724 = private unnamed_addr constant [13 x i8] c"DW_ATE_float\00" -@.str.2725 = private unnamed_addr constant [16 x i8] c"DW_ATE_unsigned\00" -@.str.2726 = private unnamed_addr constant [14 x i8] c"DW_ATE_signed\00" -@.str.2727 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.2728 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2729 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" -@.str.2730 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2731 = private unnamed_addr constant [22 x i8] c"!DIEnumerator(name: \22\00" +@.str.2710 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2711 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.2712 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2713 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2714 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2715 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2716 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2717 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2718 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2719 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2720 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2721 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2722 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2723 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2724 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2725 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2726 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2727 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2728 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2729 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2730 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2731 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2732 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2733 = private unnamed_addr constant [11 x i8] c"\22, value: \00" -@.str.2734 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2735 = private unnamed_addr constant [2 x i8] c")\00" -@.str.2736 = private unnamed_addr constant [55 x i8] c"!DICompositeType(tag: DW_TAG_enumeration_type, name: \22\00" -@.str.2737 = private unnamed_addr constant [11 x i8] c"\22, file: !\00" -@.str.2738 = private unnamed_addr constant [25 x i8] c", size: 32, elements: !{\00" -@.str.2739 = private unnamed_addr constant [3 x i8] c", \00" -@.str.2740 = private unnamed_addr constant [3 x i8] c"})\00" -@.str.2741 = private unnamed_addr constant [1 x i8] c"\00" -@.str.2742 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2743 = private unnamed_addr constant [32 x i8] c"used .mdcache on a null pointer\00" -@.str.2744 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.2733 = private unnamed_addr constant [29 x i8] c"used .head on a null pointer\00" +@.str.2734 = private unnamed_addr constant [4 x i8] c"%S.\00" +@.str.2735 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2736 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2737 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2738 = private unnamed_addr constant [2 x i8] c".\00" +@.str.2739 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2740 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2741 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2742 = private unnamed_addr constant [11 x i8] c" = type { \00" +@.str.2743 = private unnamed_addr constant [3 x i8] c", \00" +@.str.2744 = private unnamed_addr constant [3 x i8] c" }\00" @.str.2745 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2746 = private unnamed_addr constant [52 x i8] c"!DIDerivedType(tag: DW_TAG_pointer_type, baseType: \00" -@.str.2747 = private unnamed_addr constant [12 x i8] c", size: 64)\00" -@.str.2748 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2749 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" -@.str.2750 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2751 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str.2752 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2753 = private unnamed_addr constant [20 x i8] c"!DISubrange(count: \00" -@.str.2754 = private unnamed_addr constant [2 x i8] c")\00" -@.str.2755 = private unnamed_addr constant [52 x i8] c"!DICompositeType(tag: DW_TAG_array_type, baseType: \00" -@.str.2756 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2757 = private unnamed_addr constant [9 x i8] c", size: \00" -@.str.2758 = private unnamed_addr constant [16 x i8] c", elements: !{!\00" -@.str.2759 = private unnamed_addr constant [3 x i8] c"})\00" -@.str.2760 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2761 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" -@.str.2762 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2746 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" +@.str.2747 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2748 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" +@.str.2749 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.2750 = private unnamed_addr constant [2 x i8] c"!\00" +@.str.2751 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2752 = private unnamed_addr constant [17 x i8] c"division by zero\00" +@.str.2753 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.2754 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.2755 = private unnamed_addr constant [3 x i8] c"i8\00" +@.str.2756 = private unnamed_addr constant [3 x i8] c"u8\00" +@.str.2757 = private unnamed_addr constant [4 x i8] c"i16\00" +@.str.2758 = private unnamed_addr constant [4 x i8] c"u16\00" +@.str.2759 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.2760 = private unnamed_addr constant [4 x i8] c"u32\00" +@.str.2761 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.2762 = private unnamed_addr constant [5 x i8] c"enum\00" @.str.2763 = private unnamed_addr constant [4 x i8] c"str\00" @.str.2764 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.2765 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.2766 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.2765 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.2766 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str.2767 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2768 = private unnamed_addr constant [52 x i8] c"!DIDerivedType(tag: DW_TAG_pointer_type, baseType: \00" -@.str.2769 = private unnamed_addr constant [12 x i8] c", size: 64)\00" -@.str.2770 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.2771 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.2772 = private unnamed_addr constant [4 x i8] c"len\00" -@.str.2773 = private unnamed_addr constant [4 x i8] c"cap\00" -@.str.2774 = private unnamed_addr constant [53 x i8] c"!DICompositeType(tag: DW_TAG_structure_type, name: \22\00" -@.str.2775 = private unnamed_addr constant [11 x i8] c"\22, file: !\00" -@.str.2776 = private unnamed_addr constant [38 x i8] c", size: 192, align: 64, elements: !{!\00" -@.str.2777 = private unnamed_addr constant [4 x i8] c", !\00" -@.str.2778 = private unnamed_addr constant [4 x i8] c", !\00" -@.str.2779 = private unnamed_addr constant [3 x i8] c"})\00" -@.str.2780 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2781 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" -@.str.2782 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2783 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.2784 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.2785 = private unnamed_addr constant [67 x i8] c"!DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64)\00" -@.str.2786 = private unnamed_addr constant [8 x i8] c"entries\00" -@.str.2787 = private unnamed_addr constant [4 x i8] c"len\00" -@.str.2788 = private unnamed_addr constant [5 x i8] c"used\00" -@.str.2789 = private unnamed_addr constant [4 x i8] c"cap\00" -@.str.2790 = private unnamed_addr constant [6 x i8] c"index\00" -@.str.2791 = private unnamed_addr constant [5 x i8] c"icap\00" -@.str.2792 = private unnamed_addr constant [5 x i8] c"adds\00" -@.str.2793 = private unnamed_addr constant [2 x i8] c"!\00" +@.str.2768 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.2769 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2770 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2771 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2772 = private unnamed_addr constant [43 x i8] c"!DIDerivedType(tag: DW_TAG_member, name: \22\00" +@.str.2773 = private unnamed_addr constant [12 x i8] c"\22, scope: !\00" +@.str.2774 = private unnamed_addr constant [10 x i8] c", file: !\00" +@.str.2775 = private unnamed_addr constant [9 x i8] c", line: \00" +@.str.2776 = private unnamed_addr constant [13 x i8] c", baseType: \00" +@.str.2777 = private unnamed_addr constant [9 x i8] c", size: \00" +@.str.2778 = private unnamed_addr constant [11 x i8] c", offset: \00" +@.str.2779 = private unnamed_addr constant [2 x i8] c")\00" +@.str.2780 = private unnamed_addr constant [21 x i8] c"!DIBasicType(name: \22\00" +@.str.2781 = private unnamed_addr constant [10 x i8] c"\22, size: \00" +@.str.2782 = private unnamed_addr constant [13 x i8] c", encoding: \00" +@.str.2783 = private unnamed_addr constant [2 x i8] c")\00" +@.str.2784 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.2785 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.2786 = private unnamed_addr constant [3 x i8] c"T:\00" +@.str.2787 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2788 = private unnamed_addr constant [32 x i8] c"used .mdcache on a null pointer\00" +@.str.2789 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2790 = private unnamed_addr constant [32 x i8] c"used .mdcache on a null pointer\00" +@.str.2791 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2792 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2793 = private unnamed_addr constant [32 x i8] c"used .mdfiles on a null pointer\00" @.str.2794 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2795 = private unnamed_addr constant [53 x i8] c"!DICompositeType(tag: DW_TAG_structure_type, name: \22\00" -@.str.2796 = private unnamed_addr constant [11 x i8] c"\22, file: !\00" -@.str.2797 = private unnamed_addr constant [37 x i8] c", size: 448, align: 64, elements: !{\00" -@.str.2798 = private unnamed_addr constant [3 x i8] c", \00" -@.str.2799 = private unnamed_addr constant [3 x i8] c"})\00" -@.str.2800 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2801 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" -@.str.2802 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2803 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.2804 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2805 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2806 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2807 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2808 = private unnamed_addr constant [2 x i8] c"!\00" -@.str.2809 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2810 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2811 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2812 = private unnamed_addr constant [53 x i8] c"!DICompositeType(tag: DW_TAG_structure_type, name: \22\00" -@.str.2813 = private unnamed_addr constant [11 x i8] c"\22, file: !\00" -@.str.2814 = private unnamed_addr constant [9 x i8] c", size: \00" -@.str.2815 = private unnamed_addr constant [25 x i8] c", align: 8, elements: !{\00" -@.str.2816 = private unnamed_addr constant [3 x i8] c", \00" -@.str.2817 = private unnamed_addr constant [3 x i8] c"})\00" -@.str.2818 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2819 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" -@.str.2820 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2821 = private unnamed_addr constant [21 x i8] c"!DIBasicType(name: \22\00" -@.str.2822 = private unnamed_addr constant [40 x i8] c"\22, size: 64, encoding: DW_ATE_unsigned)\00" -@.str.2823 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2824 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" -@.str.2825 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2826 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2827 = private unnamed_addr constant [32 x i8] c"used .mdcache on a null pointer\00" -@.str.2828 = private unnamed_addr constant [3 x i8] c"L:\00" -@.str.2829 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2830 = private unnamed_addr constant [32 x i8] c"used .dbgLine on a null pointer\00" -@.str.2831 = private unnamed_addr constant [2 x i8] c":\00" -@.str.2832 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2833 = private unnamed_addr constant [31 x i8] c"used .dbgCol on a null pointer\00" -@.str.2834 = private unnamed_addr constant [2 x i8] c":\00" +@.str.2795 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.2796 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.2797 = private unnamed_addr constant [15 x i8] c"DW_ATE_boolean\00" +@.str.2798 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.2799 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.2800 = private unnamed_addr constant [19 x i8] c"DW_ATE_signed_char\00" +@.str.2801 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.2802 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.2803 = private unnamed_addr constant [14 x i8] c"DW_ATE_signed\00" +@.str.2804 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.2805 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.2806 = private unnamed_addr constant [13 x i8] c"DW_ATE_float\00" +@.str.2807 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.2808 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.2809 = private unnamed_addr constant [13 x i8] c"DW_ATE_float\00" +@.str.2810 = private unnamed_addr constant [16 x i8] c"DW_ATE_unsigned\00" +@.str.2811 = private unnamed_addr constant [14 x i8] c"DW_ATE_signed\00" +@.str.2812 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.2813 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2814 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" +@.str.2815 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2816 = private unnamed_addr constant [22 x i8] c"!DIEnumerator(name: \22\00" +@.str.2817 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2818 = private unnamed_addr constant [11 x i8] c"\22, value: \00" +@.str.2819 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2820 = private unnamed_addr constant [2 x i8] c")\00" +@.str.2821 = private unnamed_addr constant [55 x i8] c"!DICompositeType(tag: DW_TAG_enumeration_type, name: \22\00" +@.str.2822 = private unnamed_addr constant [11 x i8] c"\22, file: !\00" +@.str.2823 = private unnamed_addr constant [25 x i8] c", size: 32, elements: !{\00" +@.str.2824 = private unnamed_addr constant [3 x i8] c", \00" +@.str.2825 = private unnamed_addr constant [3 x i8] c"})\00" +@.str.2826 = private unnamed_addr constant [1 x i8] c"\00" +@.str.2827 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2828 = private unnamed_addr constant [32 x i8] c"used .mdcache on a null pointer\00" +@.str.2829 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.2830 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2831 = private unnamed_addr constant [52 x i8] c"!DIDerivedType(tag: DW_TAG_pointer_type, baseType: \00" +@.str.2832 = private unnamed_addr constant [12 x i8] c", size: 64)\00" +@.str.2833 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2834 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" @.str.2835 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2836 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" +@.str.2836 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str.2837 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2838 = private unnamed_addr constant [32 x i8] c"used .mdcache on a null pointer\00" -@.str.2839 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2840 = private unnamed_addr constant [32 x i8] c"used .mdcache on a null pointer\00" +@.str.2838 = private unnamed_addr constant [20 x i8] c"!DISubrange(count: \00" +@.str.2839 = private unnamed_addr constant [2 x i8] c")\00" +@.str.2840 = private unnamed_addr constant [52 x i8] c"!DICompositeType(tag: DW_TAG_array_type, baseType: \00" @.str.2841 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2842 = private unnamed_addr constant [19 x i8] c"!DILocation(line: \00" -@.str.2843 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2844 = private unnamed_addr constant [32 x i8] c"used .dbgLine on a null pointer\00" -@.str.2845 = private unnamed_addr constant [11 x i8] c", column: \00" -@.str.2846 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2847 = private unnamed_addr constant [31 x i8] c"used .dbgCol on a null pointer\00" -@.str.2848 = private unnamed_addr constant [11 x i8] c", scope: !\00" -@.str.2849 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2850 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" -@.str.2851 = private unnamed_addr constant [2 x i8] c")\00" +@.str.2842 = private unnamed_addr constant [9 x i8] c", size: \00" +@.str.2843 = private unnamed_addr constant [16 x i8] c", elements: !{!\00" +@.str.2844 = private unnamed_addr constant [3 x i8] c"})\00" +@.str.2845 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2846 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" +@.str.2847 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2848 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.2849 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.2850 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.2851 = private unnamed_addr constant [6 x i8] c"array\00" @.str.2852 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2853 = private unnamed_addr constant [32 x i8] c"used .mdcache on a null pointer\00" -@.str.2854 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2855 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.2856 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.2857 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2858 = private unnamed_addr constant [32 x i8] c"used .mdfiles on a null pointer\00" -@.str.2859 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2860 = private unnamed_addr constant [28 x i8] c"!DISubroutineType(types: !{\00" -@.str.2861 = private unnamed_addr constant [3 x i8] c", \00" -@.str.2862 = private unnamed_addr constant [3 x i8] c"})\00" -@.str.2863 = private unnamed_addr constant [31 x i8] c"distinct !DISubprogram(name: \22\00" -@.str.2864 = private unnamed_addr constant [18 x i8] c"\22, linkageName: \22\00" +@.str.2853 = private unnamed_addr constant [52 x i8] c"!DIDerivedType(tag: DW_TAG_pointer_type, baseType: \00" +@.str.2854 = private unnamed_addr constant [12 x i8] c", size: 64)\00" +@.str.2855 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.2856 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.2857 = private unnamed_addr constant [4 x i8] c"len\00" +@.str.2858 = private unnamed_addr constant [4 x i8] c"cap\00" +@.str.2859 = private unnamed_addr constant [53 x i8] c"!DICompositeType(tag: DW_TAG_structure_type, name: \22\00" +@.str.2860 = private unnamed_addr constant [11 x i8] c"\22, file: !\00" +@.str.2861 = private unnamed_addr constant [38 x i8] c", size: 192, align: 64, elements: !{!\00" +@.str.2862 = private unnamed_addr constant [4 x i8] c", !\00" +@.str.2863 = private unnamed_addr constant [4 x i8] c", !\00" +@.str.2864 = private unnamed_addr constant [3 x i8] c"})\00" @.str.2865 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2866 = private unnamed_addr constant [12 x i8] c"\22, scope: !\00" -@.str.2867 = private unnamed_addr constant [10 x i8] c", file: !\00" -@.str.2868 = private unnamed_addr constant [9 x i8] c", line: \00" -@.str.2869 = private unnamed_addr constant [10 x i8] c", type: !\00" -@.str.2870 = private unnamed_addr constant [14 x i8] c", scopeLine: \00" -@.str.2871 = private unnamed_addr constant [88 x i8] c", flags: DIFlagPrototyped, spFlags: DISPFlagDefinition | DISPFlagLocalToUnit, unit: !0)\00" -@.str.2872 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2873 = private unnamed_addr constant [30 x i8] c"used .debug on a null pointer\00" -@.str.2874 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2875 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" -@.str.2876 = private unnamed_addr constant [1 x i8] c"\00" -@.str.2877 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2878 = private unnamed_addr constant [31 x i8] c"used .dbgArg on a null pointer\00" -@.str.2879 = private unnamed_addr constant [8 x i8] c", arg: \00" -@.str.2880 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2881 = private unnamed_addr constant [31 x i8] c"used .dbgArg on a null pointer\00" -@.str.2882 = private unnamed_addr constant [25 x i8] c"!DILocalVariable(name: \22\00" -@.str.2883 = private unnamed_addr constant [12 x i8] c"\22, scope: !\00" -@.str.2884 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2885 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" -@.str.2886 = private unnamed_addr constant [10 x i8] c", file: !\00" +@.str.2866 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" +@.str.2867 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2868 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.2869 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.2870 = private unnamed_addr constant [67 x i8] c"!DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64)\00" +@.str.2871 = private unnamed_addr constant [8 x i8] c"entries\00" +@.str.2872 = private unnamed_addr constant [4 x i8] c"len\00" +@.str.2873 = private unnamed_addr constant [5 x i8] c"used\00" +@.str.2874 = private unnamed_addr constant [4 x i8] c"cap\00" +@.str.2875 = private unnamed_addr constant [6 x i8] c"index\00" +@.str.2876 = private unnamed_addr constant [5 x i8] c"icap\00" +@.str.2877 = private unnamed_addr constant [5 x i8] c"adds\00" +@.str.2878 = private unnamed_addr constant [2 x i8] c"!\00" +@.str.2879 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2880 = private unnamed_addr constant [53 x i8] c"!DICompositeType(tag: DW_TAG_structure_type, name: \22\00" +@.str.2881 = private unnamed_addr constant [11 x i8] c"\22, file: !\00" +@.str.2882 = private unnamed_addr constant [37 x i8] c", size: 448, align: 64, elements: !{\00" +@.str.2883 = private unnamed_addr constant [3 x i8] c", \00" +@.str.2884 = private unnamed_addr constant [3 x i8] c"})\00" +@.str.2885 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2886 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" @.str.2887 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2888 = private unnamed_addr constant [32 x i8] c"used .mdfiles on a null pointer\00" +@.str.2888 = private unnamed_addr constant [7 x i8] c"struct\00" @.str.2889 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2890 = private unnamed_addr constant [9 x i8] c", line: \00" -@.str.2891 = private unnamed_addr constant [10 x i8] c", type: !\00" -@.str.2892 = private unnamed_addr constant [2 x i8] c")\00" -@.str.2893 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2894 = private unnamed_addr constant [32 x i8] c"used .dbgLine on a null pointer\00" +@.str.2890 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2891 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2892 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2893 = private unnamed_addr constant [2 x i8] c"!\00" +@.str.2894 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2895 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2896 = private unnamed_addr constant [31 x i8] c"used .dbgCol on a null pointer\00" -@.str.2897 = private unnamed_addr constant [42 x i8] c"call void @llvm.dbg.declare(metadata ptr \00" -@.str.2898 = private unnamed_addr constant [13 x i8] c", metadata !\00" -@.str.2899 = private unnamed_addr constant [28 x i8] c", metadata !DIExpression())\00" -@.str.2900 = private unnamed_addr constant [21 x i8] c"!llvm.dbg.cu = !{!0}\00" -@.str.2901 = private unnamed_addr constant [31 x i8] c"!llvm.module.flags = !{!1, !2}\00" -@.str.2902 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2903 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" -@.str.2904 = private unnamed_addr constant [2 x i8] c"!\00" -@.str.2905 = private unnamed_addr constant [4 x i8] c" = \00" -@.str.2906 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2907 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" +@.str.2896 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2897 = private unnamed_addr constant [53 x i8] c"!DICompositeType(tag: DW_TAG_structure_type, name: \22\00" +@.str.2898 = private unnamed_addr constant [11 x i8] c"\22, file: !\00" +@.str.2899 = private unnamed_addr constant [9 x i8] c", size: \00" +@.str.2900 = private unnamed_addr constant [25 x i8] c", align: 8, elements: !{\00" +@.str.2901 = private unnamed_addr constant [3 x i8] c", \00" +@.str.2902 = private unnamed_addr constant [3 x i8] c"})\00" +@.str.2903 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2904 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" +@.str.2905 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2906 = private unnamed_addr constant [21 x i8] c"!DIBasicType(name: \22\00" +@.str.2907 = private unnamed_addr constant [40 x i8] c"\22, size: 64, encoding: DW_ATE_unsigned)\00" @.str.2908 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2909 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.2910 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.2909 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" +@.str.2910 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2911 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2912 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.2913 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2912 = private unnamed_addr constant [32 x i8] c"used .mdcache on a null pointer\00" +@.str.2913 = private unnamed_addr constant [3 x i8] c"L:\00" @.str.2914 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2915 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.2916 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2917 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.2918 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2919 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2915 = private unnamed_addr constant [32 x i8] c"used .dbgLine on a null pointer\00" +@.str.2916 = private unnamed_addr constant [2 x i8] c":\00" +@.str.2917 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2918 = private unnamed_addr constant [31 x i8] c"used .dbgCol on a null pointer\00" +@.str.2919 = private unnamed_addr constant [2 x i8] c":\00" @.str.2920 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2921 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.2921 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" @.str.2922 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2923 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" +@.str.2923 = private unnamed_addr constant [32 x i8] c"used .mdcache on a null pointer\00" @.str.2924 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2925 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.2925 = private unnamed_addr constant [32 x i8] c"used .mdcache on a null pointer\00" @.str.2926 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2927 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" -@.str.2928 = private unnamed_addr constant [1 x i8] c"\00" -@.str.2929 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2930 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" +@.str.2927 = private unnamed_addr constant [19 x i8] c"!DILocation(line: \00" +@.str.2928 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2929 = private unnamed_addr constant [32 x i8] c"used .dbgLine on a null pointer\00" +@.str.2930 = private unnamed_addr constant [11 x i8] c", column: \00" @.str.2931 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2932 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.2933 = private unnamed_addr constant [18 x i8] c" (while building \00" +@.str.2932 = private unnamed_addr constant [31 x i8] c"used .dbgCol on a null pointer\00" +@.str.2933 = private unnamed_addr constant [11 x i8] c", scope: !\00" @.str.2934 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2935 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.2935 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" @.str.2936 = private unnamed_addr constant [2 x i8] c")\00" @.str.2937 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2938 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" +@.str.2938 = private unnamed_addr constant [32 x i8] c"used .mdcache on a null pointer\00" @.str.2939 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2940 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.2941 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2942 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.2943 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2940 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.2941 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.2942 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2943 = private unnamed_addr constant [32 x i8] c"used .mdfiles on a null pointer\00" @.str.2944 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2945 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.2946 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2947 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2948 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" -@.str.2949 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2950 = private unnamed_addr constant [32 x i8] c"used .allocas on a null pointer\00" -@.str.2951 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2952 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" -@.str.2953 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2954 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.2955 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2956 = private unnamed_addr constant [30 x i8] c"used .nvars on a null pointer\00" +@.str.2945 = private unnamed_addr constant [28 x i8] c"!DISubroutineType(types: !{\00" +@.str.2946 = private unnamed_addr constant [3 x i8] c", \00" +@.str.2947 = private unnamed_addr constant [3 x i8] c"})\00" +@.str.2948 = private unnamed_addr constant [31 x i8] c"distinct !DISubprogram(name: \22\00" +@.str.2949 = private unnamed_addr constant [18 x i8] c"\22, linkageName: \22\00" +@.str.2950 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2951 = private unnamed_addr constant [12 x i8] c"\22, scope: !\00" +@.str.2952 = private unnamed_addr constant [10 x i8] c", file: !\00" +@.str.2953 = private unnamed_addr constant [9 x i8] c", line: \00" +@.str.2954 = private unnamed_addr constant [10 x i8] c", type: !\00" +@.str.2955 = private unnamed_addr constant [14 x i8] c", scopeLine: \00" +@.str.2956 = private unnamed_addr constant [88 x i8] c", flags: DIFlagPrototyped, spFlags: DISPFlagDefinition | DISPFlagLocalToUnit, unit: !0)\00" @.str.2957 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2958 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" +@.str.2958 = private unnamed_addr constant [30 x i8] c"used .debug on a null pointer\00" @.str.2959 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2960 = private unnamed_addr constant [30 x i8] c"used .debug on a null pointer\00" -@.str.2961 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2962 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" -@.str.2963 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2964 = private unnamed_addr constant [32 x i8] c"used .dbgLine on a null pointer\00" +@.str.2960 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" +@.str.2961 = private unnamed_addr constant [1 x i8] c"\00" +@.str.2962 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2963 = private unnamed_addr constant [31 x i8] c"used .dbgArg on a null pointer\00" +@.str.2964 = private unnamed_addr constant [8 x i8] c", arg: \00" @.str.2965 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2966 = private unnamed_addr constant [31 x i8] c"used .dbgCol on a null pointer\00" -@.str.2967 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2968 = private unnamed_addr constant [32 x i8] c"used .deferOn on a null pointer\00" +@.str.2966 = private unnamed_addr constant [31 x i8] c"used .dbgArg on a null pointer\00" +@.str.2967 = private unnamed_addr constant [25 x i8] c"!DILocalVariable(name: \22\00" +@.str.2968 = private unnamed_addr constant [12 x i8] c"\22, scope: !\00" @.str.2969 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2970 = private unnamed_addr constant [32 x i8] c"used .inDefer on a null pointer\00" -@.str.2971 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2972 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.2973 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2974 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.2975 = private unnamed_addr constant [10 x i8] c"ptr %self\00" -@.str.2976 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.2977 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2978 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.2979 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.2970 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" +@.str.2971 = private unnamed_addr constant [10 x i8] c", file: !\00" +@.str.2972 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2973 = private unnamed_addr constant [32 x i8] c"used .mdfiles on a null pointer\00" +@.str.2974 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2975 = private unnamed_addr constant [9 x i8] c", line: \00" +@.str.2976 = private unnamed_addr constant [10 x i8] c", type: !\00" +@.str.2977 = private unnamed_addr constant [2 x i8] c")\00" +@.str.2978 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2979 = private unnamed_addr constant [32 x i8] c"used .dbgLine on a null pointer\00" @.str.2980 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2981 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.2982 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2983 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.2984 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2985 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.2986 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2987 = private unnamed_addr constant [5 x i8] c"self\00" -@.str.2988 = private unnamed_addr constant [6 x i8] c"%self\00" -@.str.2989 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2990 = private unnamed_addr constant [30 x i8] c"used .debug on a null pointer\00" -@.str.2991 = private unnamed_addr constant [5 x i8] c"self\00" -@.str.2992 = private unnamed_addr constant [6 x i8] c"%self\00" +@.str.2981 = private unnamed_addr constant [31 x i8] c"used .dbgCol on a null pointer\00" +@.str.2982 = private unnamed_addr constant [42 x i8] c"call void @llvm.dbg.declare(metadata ptr \00" +@.str.2983 = private unnamed_addr constant [13 x i8] c", metadata !\00" +@.str.2984 = private unnamed_addr constant [28 x i8] c", metadata !DIExpression())\00" +@.str.2985 = private unnamed_addr constant [21 x i8] c"!llvm.dbg.cu = !{!0}\00" +@.str.2986 = private unnamed_addr constant [31 x i8] c"!llvm.module.flags = !{!1, !2}\00" +@.str.2987 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2988 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" +@.str.2989 = private unnamed_addr constant [2 x i8] c"!\00" +@.str.2990 = private unnamed_addr constant [4 x i8] c" = \00" +@.str.2991 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2992 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" @.str.2993 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2994 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.2995 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2996 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.2997 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2998 = private unnamed_addr constant [4 x i8] c" %p\00" -@.str.2999 = private unnamed_addr constant [3 x i8] c"%p\00" -@.str.3000 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3001 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3002 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2994 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.2995 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.2996 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2997 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2998 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2999 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3000 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3001 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3002 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" @.str.3003 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3004 = private unnamed_addr constant [31 x i8] c"used .dbgArg on a null pointer\00" +@.str.3004 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" @.str.3005 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3006 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" @.str.3007 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3008 = private unnamed_addr constant [31 x i8] c"used .dbgArg on a null pointer\00" +@.str.3008 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" @.str.3009 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3010 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3011 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3012 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3013 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3014 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3015 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3010 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3011 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3012 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" +@.str.3013 = private unnamed_addr constant [1 x i8] c"\00" +@.str.3014 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3015 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" @.str.3016 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3017 = private unnamed_addr constant [31 x i8] c"used .dbgArg on a null pointer\00" -@.str.3018 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3017 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3018 = private unnamed_addr constant [18 x i8] c" (while building \00" @.str.3019 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3020 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.3021 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3022 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3023 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3024 = private unnamed_addr constant [11 x i8] c"function '\00" -@.str.3025 = private unnamed_addr constant [39 x i8] c"' can reach its end without returning \00" +@.str.3020 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3021 = private unnamed_addr constant [2 x i8] c")\00" +@.str.3022 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3023 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" +@.str.3024 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3025 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.3026 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3027 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" @.str.3028 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3029 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3030 = private unnamed_addr constant [5 x i8] c"ret \00" +@.str.3029 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3030 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" @.str.3031 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3032 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3033 = private unnamed_addr constant [54 x i8] c" { i1 true, i8 0, { ptr, i64, i64 } zeroinitializer }\00" -@.str.3034 = private unnamed_addr constant [9 x i8] c"ret void\00" -@.str.3035 = private unnamed_addr constant [1 x i8] c"\00" -@.str.3036 = private unnamed_addr constant [8 x i8] c" !dbg !\00" -@.str.3037 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3038 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" -@.str.3039 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3040 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.3041 = private unnamed_addr constant [17 x i8] c"define internal \00" +@.str.3032 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3033 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" +@.str.3034 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3035 = private unnamed_addr constant [32 x i8] c"used .allocas on a null pointer\00" +@.str.3036 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3037 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" +@.str.3038 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3039 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.3040 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3041 = private unnamed_addr constant [30 x i8] c"used .nvars on a null pointer\00" @.str.3042 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3043 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3044 = private unnamed_addr constant [2 x i8] c" \00" -@.str.3045 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3046 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3047 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.3048 = private unnamed_addr constant [3 x i8] c", \00" -@.str.3049 = private unnamed_addr constant [2 x i8] c")\00" -@.str.3050 = private unnamed_addr constant [11 x i8] c" {\0Aentry:\0A\00" -@.str.3051 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3052 = private unnamed_addr constant [32 x i8] c"used .allocas on a null pointer\00" -@.str.3053 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.3054 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.3055 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3056 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" -@.str.3057 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.3058 = private unnamed_addr constant [4 x i8] c"\0A}\0A\00" -@.str.3059 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3060 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.3061 = private unnamed_addr constant [67 x i8] c"this code can never run (it comes after return, break or continue)\00" +@.str.3043 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" +@.str.3044 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3045 = private unnamed_addr constant [30 x i8] c"used .debug on a null pointer\00" +@.str.3046 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3047 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" +@.str.3048 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3049 = private unnamed_addr constant [32 x i8] c"used .dbgLine on a null pointer\00" +@.str.3050 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3051 = private unnamed_addr constant [31 x i8] c"used .dbgCol on a null pointer\00" +@.str.3052 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3053 = private unnamed_addr constant [32 x i8] c"used .deferOn on a null pointer\00" +@.str.3054 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3055 = private unnamed_addr constant [32 x i8] c"used .inDefer on a null pointer\00" +@.str.3056 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3057 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3058 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3059 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3060 = private unnamed_addr constant [10 x i8] c"ptr %self\00" +@.str.3061 = private unnamed_addr constant [7 x i8] c"struct\00" @.str.3062 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3063 = private unnamed_addr constant [32 x i8] c"used .dbgLine on a null pointer\00" -@.str.3064 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3065 = private unnamed_addr constant [31 x i8] c"used .dbgCol on a null pointer\00" -@.str.3066 = private unnamed_addr constant [6 x i8] c"block\00" -@.str.3067 = private unnamed_addr constant [5 x i8] c"decl\00" -@.str.3068 = private unnamed_addr constant [7 x i8] c"assign\00" -@.str.3069 = private unnamed_addr constant [5 x i8] c"expr\00" -@.str.3070 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3071 = private unnamed_addr constant [3 x i8] c"or\00" -@.str.3072 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3073 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3074 = private unnamed_addr constant [6 x i8] c"match\00" -@.str.3075 = private unnamed_addr constant [3 x i8] c"if\00" -@.str.3076 = private unnamed_addr constant [6 x i8] c"while\00" -@.str.3077 = private unnamed_addr constant [4 x i8] c"for\00" -@.str.3078 = private unnamed_addr constant [5 x i8] c"each\00" -@.str.3079 = private unnamed_addr constant [7 x i8] c"return\00" -@.str.3080 = private unnamed_addr constant [6 x i8] c"defer\00" -@.str.3081 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3082 = private unnamed_addr constant [32 x i8] c"used .inDefer on a null pointer\00" -@.str.3083 = private unnamed_addr constant [34 x i8] c"defer inside defer is not allowed\00" -@.str.3084 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3085 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.3086 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3087 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3063 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3064 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.3065 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3066 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3067 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3068 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3069 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3070 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3071 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3072 = private unnamed_addr constant [5 x i8] c"self\00" +@.str.3073 = private unnamed_addr constant [6 x i8] c"%self\00" +@.str.3074 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3075 = private unnamed_addr constant [30 x i8] c"used .debug on a null pointer\00" +@.str.3076 = private unnamed_addr constant [5 x i8] c"self\00" +@.str.3077 = private unnamed_addr constant [6 x i8] c"%self\00" +@.str.3078 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3079 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3080 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3081 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3082 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3083 = private unnamed_addr constant [4 x i8] c" %p\00" +@.str.3084 = private unnamed_addr constant [3 x i8] c"%p\00" +@.str.3085 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3086 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3087 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3088 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3089 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3090 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.3091 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3089 = private unnamed_addr constant [31 x i8] c"used .dbgArg on a null pointer\00" +@.str.3090 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3091 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" @.str.3092 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3093 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3093 = private unnamed_addr constant [31 x i8] c"used .dbgArg on a null pointer\00" @.str.3094 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3095 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3096 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3097 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3096 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3097 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3098 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3099 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3100 = private unnamed_addr constant [30 x i8] c"used .nvars on a null pointer\00" -@.str.3101 = private unnamed_addr constant [6 x i8] c"break\00" -@.str.3102 = private unnamed_addr constant [9 x i8] c"continue\00" +@.str.3099 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3100 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3101 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3102 = private unnamed_addr constant [31 x i8] c"used .dbgArg on a null pointer\00" @.str.3103 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3104 = private unnamed_addr constant [32 x i8] c"used .inDefer on a null pointer\00" -@.str.3105 = private unnamed_addr constant [28 x i8] c" can't be used inside defer\00" +@.str.3104 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3105 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" @.str.3106 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3107 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" -@.str.3108 = private unnamed_addr constant [32 x i8] c" can only be used inside a loop\00" -@.str.3109 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3110 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" +@.str.3107 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3108 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3109 = private unnamed_addr constant [11 x i8] c"function '\00" +@.str.3110 = private unnamed_addr constant [39 x i8] c"' can reach its end without returning \00" @.str.3111 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3112 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" +@.str.3112 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" @.str.3113 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3114 = private unnamed_addr constant [6 x i8] c"break\00" -@.str.3115 = private unnamed_addr constant [19 x i8] c"unknown statement \00" +@.str.3114 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3115 = private unnamed_addr constant [5 x i8] c"ret \00" @.str.3116 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3117 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3118 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3119 = private unnamed_addr constant [47 x i8] c"this gives back nothing, so it can't be stored\00" -@.str.3120 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.3121 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3122 = private unnamed_addr constant [35 x i8] c"null needs a type, like: ptr[int] \00" -@.str.3123 = private unnamed_addr constant [8 x i8] c" = null\00" -@.str.3124 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.3125 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3126 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3127 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.3128 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.3129 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3130 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.3131 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3132 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3133 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.3134 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3135 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3117 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3118 = private unnamed_addr constant [54 x i8] c" { i1 true, i8 0, { ptr, i64, i64 } zeroinitializer }\00" +@.str.3119 = private unnamed_addr constant [9 x i8] c"ret void\00" +@.str.3120 = private unnamed_addr constant [1 x i8] c"\00" +@.str.3121 = private unnamed_addr constant [8 x i8] c" !dbg !\00" +@.str.3122 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3123 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" +@.str.3124 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3125 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.3126 = private unnamed_addr constant [17 x i8] c"define internal \00" +@.str.3127 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3128 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3129 = private unnamed_addr constant [2 x i8] c" \00" +@.str.3130 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3131 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3132 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.3133 = private unnamed_addr constant [3 x i8] c", \00" +@.str.3134 = private unnamed_addr constant [2 x i8] c")\00" +@.str.3135 = private unnamed_addr constant [11 x i8] c" {\0Aentry:\0A\00" @.str.3136 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3137 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.3138 = private unnamed_addr constant [29 x i8] c"there is no variable named '\00" -@.str.3139 = private unnamed_addr constant [19 x i8] c"' (create it with \00" -@.str.3140 = private unnamed_addr constant [9 x i8] c" := ...)\00" -@.str.3141 = private unnamed_addr constant [20 x i8] c"the loop variable '\00" -@.str.3142 = private unnamed_addr constant [19 x i8] c"' can't be changed\00" -@.str.3143 = private unnamed_addr constant [10 x i8] c"the value\00" -@.str.3144 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.3145 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.3146 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.3147 = private unnamed_addr constant [2 x i8] c"=\00" -@.str.3148 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3149 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.3150 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3151 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3152 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3153 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.3154 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3137 = private unnamed_addr constant [32 x i8] c"used .allocas on a null pointer\00" +@.str.3138 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.3139 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.3140 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3141 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" +@.str.3142 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.3143 = private unnamed_addr constant [4 x i8] c"\0A}\0A\00" +@.str.3144 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3145 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.3146 = private unnamed_addr constant [67 x i8] c"this code can never run (it comes after return, break or continue)\00" +@.str.3147 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3148 = private unnamed_addr constant [32 x i8] c"used .dbgLine on a null pointer\00" +@.str.3149 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3150 = private unnamed_addr constant [31 x i8] c"used .dbgCol on a null pointer\00" +@.str.3151 = private unnamed_addr constant [6 x i8] c"block\00" +@.str.3152 = private unnamed_addr constant [5 x i8] c"decl\00" +@.str.3153 = private unnamed_addr constant [7 x i8] c"assign\00" +@.str.3154 = private unnamed_addr constant [5 x i8] c"expr\00" @.str.3155 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3156 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3157 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.3156 = private unnamed_addr constant [3 x i8] c"or\00" +@.str.3157 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3158 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3159 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.3160 = private unnamed_addr constant [12 x i8] c"a condition\00" -@.str.3161 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3162 = private unnamed_addr constant [5 x i8] c"then\00" -@.str.3163 = private unnamed_addr constant [5 x i8] c"else\00" -@.str.3164 = private unnamed_addr constant [6 x i8] c"endif\00" -@.str.3165 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3159 = private unnamed_addr constant [6 x i8] c"match\00" +@.str.3160 = private unnamed_addr constant [3 x i8] c"if\00" +@.str.3161 = private unnamed_addr constant [6 x i8] c"while\00" +@.str.3162 = private unnamed_addr constant [4 x i8] c"for\00" +@.str.3163 = private unnamed_addr constant [5 x i8] c"each\00" +@.str.3164 = private unnamed_addr constant [7 x i8] c"return\00" +@.str.3165 = private unnamed_addr constant [6 x i8] c"defer\00" @.str.3166 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3167 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.3168 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3167 = private unnamed_addr constant [32 x i8] c"used .inDefer on a null pointer\00" +@.str.3168 = private unnamed_addr constant [34 x i8] c"defer inside defer is not allowed\00" @.str.3169 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3170 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.3171 = private unnamed_addr constant [11 x i8] c"while.cond\00" -@.str.3172 = private unnamed_addr constant [11 x i8] c"while.body\00" -@.str.3173 = private unnamed_addr constant [10 x i8] c"while.end\00" +@.str.3170 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3171 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3172 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3173 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3174 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3175 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.3175 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.3176 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3177 = private unnamed_addr constant [5 x i8] c"true\00" -@.str.3178 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3177 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3178 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.3179 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3180 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" +@.str.3180 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3181 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3182 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.3183 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3184 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.3185 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3186 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3187 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3188 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" -@.str.3189 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3190 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" -@.str.3191 = private unnamed_addr constant [6 x i8] c"break\00" -@.str.3192 = private unnamed_addr constant [6 x i8] c"while\00" -@.str.3193 = private unnamed_addr constant [4 x i8] c"for\00" -@.str.3194 = private unnamed_addr constant [5 x i8] c"each\00" -@.str.3195 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3196 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.3197 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3198 = private unnamed_addr constant [21 x i8] c"the start of a range\00" -@.str.3199 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3200 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.3184 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3185 = private unnamed_addr constant [30 x i8] c"used .nvars on a null pointer\00" +@.str.3186 = private unnamed_addr constant [6 x i8] c"break\00" +@.str.3187 = private unnamed_addr constant [9 x i8] c"continue\00" +@.str.3188 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3189 = private unnamed_addr constant [32 x i8] c"used .inDefer on a null pointer\00" +@.str.3190 = private unnamed_addr constant [28 x i8] c" can't be used inside defer\00" +@.str.3191 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3192 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" +@.str.3193 = private unnamed_addr constant [32 x i8] c" can only be used inside a loop\00" +@.str.3194 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3195 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" +@.str.3196 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3197 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" +@.str.3198 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3199 = private unnamed_addr constant [6 x i8] c"break\00" +@.str.3200 = private unnamed_addr constant [19 x i8] c"unknown statement \00" @.str.3201 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3202 = private unnamed_addr constant [19 x i8] c"the end of a range\00" -@.str.3203 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.3204 = private unnamed_addr constant [9 x i8] c"for.cond\00" -@.str.3205 = private unnamed_addr constant [9 x i8] c"for.body\00" -@.str.3206 = private unnamed_addr constant [9 x i8] c"for.step\00" -@.str.3207 = private unnamed_addr constant [8 x i8] c"for.end\00" -@.str.3208 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3209 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" -@.str.3210 = private unnamed_addr constant [3 x i8] c", \00" +@.str.3202 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3203 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3204 = private unnamed_addr constant [47 x i8] c"this gives back nothing, so it can't be stored\00" +@.str.3205 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.3206 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3207 = private unnamed_addr constant [35 x i8] c"null needs a type, like: ptr[int] \00" +@.str.3208 = private unnamed_addr constant [8 x i8] c" = null\00" +@.str.3209 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.3210 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3211 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3212 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" -@.str.3213 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3214 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.3215 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3216 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.3212 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.3213 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.3214 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3215 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.3216 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3217 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3218 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3219 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" +@.str.3218 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.3219 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3220 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3221 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" -@.str.3222 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3223 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3224 = private unnamed_addr constant [9 x i8] c"add i64 \00" -@.str.3225 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str.3226 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3227 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3228 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3229 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3230 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3231 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3232 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.3233 = private unnamed_addr constant [1 x i8] c"\00" -@.str.3234 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3235 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.3236 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.3237 = private unnamed_addr constant [15 x i8] c", i32 0, i32 6\00" -@.str.3238 = private unnamed_addr constant [9 x i8] c"map.cond\00" -@.str.3239 = private unnamed_addr constant [10 x i8] c"map.check\00" -@.str.3240 = private unnamed_addr constant [9 x i8] c"map.body\00" -@.str.3241 = private unnamed_addr constant [9 x i8] c"map.step\00" -@.str.3242 = private unnamed_addr constant [8 x i8] c"map.end\00" -@.str.3243 = private unnamed_addr constant [12 x i8] c"map.changed\00" -@.str.3244 = private unnamed_addr constant [9 x i8] c"map.same\00" -@.str.3245 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3246 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.3247 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.3248 = private unnamed_addr constant [15 x i8] c", i32 0, i32 6\00" -@.str.3249 = private unnamed_addr constant [13 x i8] c"icmp ne i64 \00" -@.str.3250 = private unnamed_addr constant [3 x i8] c", \00" -@.str.3251 = private unnamed_addr constant [34 x i8] c"call void @finch_map_changed(ptr \00" -@.str.3252 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3253 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.3221 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3222 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.3223 = private unnamed_addr constant [29 x i8] c"there is no variable named '\00" +@.str.3224 = private unnamed_addr constant [19 x i8] c"' (create it with \00" +@.str.3225 = private unnamed_addr constant [9 x i8] c" := ...)\00" +@.str.3226 = private unnamed_addr constant [20 x i8] c"the loop variable '\00" +@.str.3227 = private unnamed_addr constant [19 x i8] c"' can't be changed\00" +@.str.3228 = private unnamed_addr constant [10 x i8] c"the value\00" +@.str.3229 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.3230 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.3231 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.3232 = private unnamed_addr constant [2 x i8] c"=\00" +@.str.3233 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3234 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.3235 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3236 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3237 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3238 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.3239 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3240 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3241 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3242 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.3243 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3244 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.3245 = private unnamed_addr constant [12 x i8] c"a condition\00" +@.str.3246 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3247 = private unnamed_addr constant [5 x i8] c"then\00" +@.str.3248 = private unnamed_addr constant [5 x i8] c"else\00" +@.str.3249 = private unnamed_addr constant [6 x i8] c"endif\00" +@.str.3250 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3251 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3252 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.3253 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3254 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3255 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.3256 = private unnamed_addr constant [2 x i8] c")\00" -@.str.3257 = private unnamed_addr constant [12 x i8] c"unreachable\00" -@.str.3258 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3259 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.3260 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3261 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3262 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.3263 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.3264 = private unnamed_addr constant [15 x i8] c", i32 0, i32 2\00" -@.str.3265 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" -@.str.3266 = private unnamed_addr constant [3 x i8] c", \00" -@.str.3267 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3268 = private unnamed_addr constant [13 x i8] c"icmp eq i64 \00" -@.str.3269 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.3255 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.3256 = private unnamed_addr constant [11 x i8] c"while.cond\00" +@.str.3257 = private unnamed_addr constant [11 x i8] c"while.body\00" +@.str.3258 = private unnamed_addr constant [10 x i8] c"while.end\00" +@.str.3259 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3260 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.3261 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3262 = private unnamed_addr constant [5 x i8] c"true\00" +@.str.3263 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3264 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3265 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" +@.str.3266 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3267 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3268 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3269 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" @.str.3270 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3271 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" +@.str.3271 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3272 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3273 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3273 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" @.str.3274 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3275 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.3276 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3277 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3278 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" -@.str.3279 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3280 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" -@.str.3281 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3282 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3283 = private unnamed_addr constant [9 x i8] c"add i64 \00" -@.str.3284 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str.3285 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3286 = private unnamed_addr constant [1 x i8] c"\00" -@.str.3287 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3288 = private unnamed_addr constant [6 x i8] c"$list\00" -@.str.3289 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3290 = private unnamed_addr constant [30 x i8] c"used .nvars on a null pointer\00" -@.str.3291 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.3292 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.3293 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.3294 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3295 = private unnamed_addr constant [56 x i8] c"for ... in needs an array, a str or a map, but this is \00" -@.str.3296 = private unnamed_addr constant [37 x i8] c" (for a range of numbers write 0..n)\00" -@.str.3297 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.3298 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.3299 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3275 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" +@.str.3276 = private unnamed_addr constant [6 x i8] c"break\00" +@.str.3277 = private unnamed_addr constant [6 x i8] c"while\00" +@.str.3278 = private unnamed_addr constant [4 x i8] c"for\00" +@.str.3279 = private unnamed_addr constant [5 x i8] c"each\00" +@.str.3280 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3281 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.3282 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3283 = private unnamed_addr constant [21 x i8] c"the start of a range\00" +@.str.3284 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3285 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.3286 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3287 = private unnamed_addr constant [19 x i8] c"the end of a range\00" +@.str.3288 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.3289 = private unnamed_addr constant [9 x i8] c"for.cond\00" +@.str.3290 = private unnamed_addr constant [9 x i8] c"for.body\00" +@.str.3291 = private unnamed_addr constant [9 x i8] c"for.step\00" +@.str.3292 = private unnamed_addr constant [8 x i8] c"for.end\00" +@.str.3293 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3294 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" +@.str.3295 = private unnamed_addr constant [3 x i8] c", \00" +@.str.3296 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3297 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" +@.str.3298 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3299 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.3300 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3301 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3302 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3303 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3304 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.3305 = private unnamed_addr constant [10 x i8] c"each.cond\00" -@.str.3306 = private unnamed_addr constant [10 x i8] c"each.body\00" -@.str.3307 = private unnamed_addr constant [10 x i8] c"each.step\00" -@.str.3308 = private unnamed_addr constant [9 x i8] c"each.end\00" -@.str.3309 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3310 = private unnamed_addr constant [47 x i8] c"getelementptr inbounds { ptr, i64, i64 }, ptr \00" -@.str.3311 = private unnamed_addr constant [15 x i8] c", i32 0, i32 1\00" -@.str.3312 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3313 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" -@.str.3314 = private unnamed_addr constant [3 x i8] c", \00" -@.str.3315 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.3316 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.3317 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.3318 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.3319 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3320 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" -@.str.3321 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3322 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.3323 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3324 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.3325 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.3326 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3327 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3328 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" -@.str.3329 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3330 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" -@.str.3331 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3332 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3333 = private unnamed_addr constant [9 x i8] c"add i64 \00" -@.str.3334 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str.3335 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3336 = private unnamed_addr constant [32 x i8] c"used .inDefer on a null pointer\00" -@.str.3337 = private unnamed_addr constant [34 x i8] c"return can't be used inside defer\00" -@.str.3338 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3339 = private unnamed_addr constant [5 x i8] c"call\00" -@.str.3340 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3341 = private unnamed_addr constant [6 x i8] c"error\00" -@.str.3342 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3301 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.3302 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3303 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3304 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" +@.str.3305 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3306 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" +@.str.3307 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3308 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3309 = private unnamed_addr constant [9 x i8] c"add i64 \00" +@.str.3310 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.3311 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3312 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3313 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3314 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3315 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3316 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3317 = private unnamed_addr constant [2 x i8] c"0\00" +@.str.3318 = private unnamed_addr constant [1 x i8] c"\00" +@.str.3319 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3320 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.3321 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.3322 = private unnamed_addr constant [15 x i8] c", i32 0, i32 6\00" +@.str.3323 = private unnamed_addr constant [9 x i8] c"map.cond\00" +@.str.3324 = private unnamed_addr constant [10 x i8] c"map.check\00" +@.str.3325 = private unnamed_addr constant [9 x i8] c"map.body\00" +@.str.3326 = private unnamed_addr constant [9 x i8] c"map.step\00" +@.str.3327 = private unnamed_addr constant [8 x i8] c"map.end\00" +@.str.3328 = private unnamed_addr constant [12 x i8] c"map.changed\00" +@.str.3329 = private unnamed_addr constant [9 x i8] c"map.same\00" +@.str.3330 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3331 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.3332 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.3333 = private unnamed_addr constant [15 x i8] c", i32 0, i32 6\00" +@.str.3334 = private unnamed_addr constant [13 x i8] c"icmp ne i64 \00" +@.str.3335 = private unnamed_addr constant [3 x i8] c", \00" +@.str.3336 = private unnamed_addr constant [34 x i8] c"call void @finch_map_changed(ptr \00" +@.str.3337 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3338 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.3339 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3340 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.3341 = private unnamed_addr constant [2 x i8] c")\00" +@.str.3342 = private unnamed_addr constant [12 x i8] c"unreachable\00" @.str.3343 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3344 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3345 = private unnamed_addr constant [2 x i8] c"!\00" -@.str.3346 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3347 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3348 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3349 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3350 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3351 = private unnamed_addr constant [2 x i8] c"!\00" -@.str.3352 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.3353 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3354 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3355 = private unnamed_addr constant [65 x i8] c"' can't fail, so it can't return an error (make it fallible: -> \00" -@.str.3356 = private unnamed_addr constant [2 x i8] c")\00" -@.str.3357 = private unnamed_addr constant [6 x i8] c"error\00" -@.str.3358 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3359 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.3360 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3361 = private unnamed_addr constant [18 x i8] c"the error message\00" -@.str.3362 = private unnamed_addr constant [5 x i8] c"ret \00" -@.str.3363 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3364 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3365 = private unnamed_addr constant [2 x i8] c" \00" -@.str.3366 = private unnamed_addr constant [13 x i8] c"insertvalue \00" -@.str.3367 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3368 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3369 = private unnamed_addr constant [37 x i8] c" zeroinitializer, { ptr, i64, i64 } \00" -@.str.3370 = private unnamed_addr constant [4 x i8] c", 2\00" -@.str.3371 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3372 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.3373 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3374 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3375 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3376 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3377 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.3378 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3379 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3380 = private unnamed_addr constant [47 x i8] c"' doesn't return a value (it has no '-> type')\00" -@.str.3381 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3382 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3383 = private unnamed_addr constant [5 x i8] c"ret \00" +@.str.3344 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.3345 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3346 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3347 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.3348 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.3349 = private unnamed_addr constant [15 x i8] c", i32 0, i32 2\00" +@.str.3350 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" +@.str.3351 = private unnamed_addr constant [3 x i8] c", \00" +@.str.3352 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3353 = private unnamed_addr constant [13 x i8] c"icmp eq i64 \00" +@.str.3354 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.3355 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3356 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" +@.str.3357 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3358 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3359 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3360 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.3361 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3362 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3363 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" +@.str.3364 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3365 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" +@.str.3366 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3367 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3368 = private unnamed_addr constant [9 x i8] c"add i64 \00" +@.str.3369 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.3370 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3371 = private unnamed_addr constant [1 x i8] c"\00" +@.str.3372 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3373 = private unnamed_addr constant [6 x i8] c"$list\00" +@.str.3374 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3375 = private unnamed_addr constant [30 x i8] c"used .nvars on a null pointer\00" +@.str.3376 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.3377 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.3378 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.3379 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3380 = private unnamed_addr constant [56 x i8] c"for ... in needs an array, a str or a map, but this is \00" +@.str.3381 = private unnamed_addr constant [37 x i8] c" (for a range of numbers write 0..n)\00" +@.str.3382 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.3383 = private unnamed_addr constant [6 x i8] c"array\00" @.str.3384 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3385 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3386 = private unnamed_addr constant [54 x i8] c" { i1 true, i8 0, { ptr, i64, i64 } zeroinitializer }\00" -@.str.3387 = private unnamed_addr constant [9 x i8] c"ret void\00" -@.str.3388 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3389 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.3390 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.3391 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3392 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3393 = private unnamed_addr constant [15 x i8] c"' must return \00" -@.str.3394 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3395 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3396 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3397 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.3398 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3399 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3400 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.3401 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3402 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.3403 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3385 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3386 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3387 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3388 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3389 = private unnamed_addr constant [2 x i8] c"0\00" +@.str.3390 = private unnamed_addr constant [10 x i8] c"each.cond\00" +@.str.3391 = private unnamed_addr constant [10 x i8] c"each.body\00" +@.str.3392 = private unnamed_addr constant [10 x i8] c"each.step\00" +@.str.3393 = private unnamed_addr constant [9 x i8] c"each.end\00" +@.str.3394 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3395 = private unnamed_addr constant [47 x i8] c"getelementptr inbounds { ptr, i64, i64 }, ptr \00" +@.str.3396 = private unnamed_addr constant [15 x i8] c", i32 0, i32 1\00" +@.str.3397 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3398 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" +@.str.3399 = private unnamed_addr constant [3 x i8] c", \00" +@.str.3400 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.3401 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.3402 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.3403 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str.3404 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3405 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3405 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" @.str.3406 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3407 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3407 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.3408 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3409 = private unnamed_addr constant [32 x i8] c"used .deferOn on a null pointer\00" -@.str.3410 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3411 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3409 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.3410 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.3411 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3412 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3413 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3413 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" @.str.3414 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3415 = private unnamed_addr constant [35 x i8] c"used .deferLimit on a null pointer\00" -@.str.3416 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3417 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.3418 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3419 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3415 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" +@.str.3416 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3417 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3418 = private unnamed_addr constant [9 x i8] c"add i64 \00" +@.str.3419 = private unnamed_addr constant [4 x i8] c", 1\00" @.str.3420 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3421 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3422 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3423 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.3424 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3421 = private unnamed_addr constant [32 x i8] c"used .inDefer on a null pointer\00" +@.str.3422 = private unnamed_addr constant [34 x i8] c"return can't be used inside defer\00" +@.str.3423 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3424 = private unnamed_addr constant [5 x i8] c"call\00" @.str.3425 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3426 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3427 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3426 = private unnamed_addr constant [6 x i8] c"error\00" +@.str.3427 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3428 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3429 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3430 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3429 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3430 = private unnamed_addr constant [2 x i8] c"!\00" @.str.3431 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3432 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3433 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3434 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3435 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3436 = private unnamed_addr constant [19 x i8] c"the returned value\00" -@.str.3437 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3438 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3439 = private unnamed_addr constant [13 x i8] c"insertvalue \00" -@.str.3440 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3441 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3442 = private unnamed_addr constant [29 x i8] c" zeroinitializer, i1 true, 0\00" -@.str.3443 = private unnamed_addr constant [13 x i8] c"insertvalue \00" -@.str.3444 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3445 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3446 = private unnamed_addr constant [2 x i8] c" \00" -@.str.3447 = private unnamed_addr constant [3 x i8] c", \00" +@.str.3433 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3434 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3435 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3436 = private unnamed_addr constant [2 x i8] c"!\00" +@.str.3437 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.3438 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3439 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3440 = private unnamed_addr constant [65 x i8] c"' can't fail, so it can't return an error (make it fallible: -> \00" +@.str.3441 = private unnamed_addr constant [2 x i8] c")\00" +@.str.3442 = private unnamed_addr constant [6 x i8] c"error\00" +@.str.3443 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3444 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.3445 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3446 = private unnamed_addr constant [18 x i8] c"the error message\00" +@.str.3447 = private unnamed_addr constant [5 x i8] c"ret \00" @.str.3448 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3449 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" @.str.3450 = private unnamed_addr constant [2 x i8] c" \00" -@.str.3451 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str.3452 = private unnamed_addr constant [5 x i8] c"ret \00" -@.str.3453 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3454 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3455 = private unnamed_addr constant [2 x i8] c" \00" -@.str.3456 = private unnamed_addr constant [5 x i8] c"ret \00" -@.str.3457 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3458 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3459 = private unnamed_addr constant [2 x i8] c" \00" -@.str.3460 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3461 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.3462 = private unnamed_addr constant [8 x i8] c"{ i64, \00" +@.str.3451 = private unnamed_addr constant [13 x i8] c"insertvalue \00" +@.str.3452 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3453 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3454 = private unnamed_addr constant [37 x i8] c" zeroinitializer, { ptr, i64, i64 } \00" +@.str.3455 = private unnamed_addr constant [4 x i8] c", 2\00" +@.str.3456 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3457 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.3458 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3459 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3460 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3461 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3462 = private unnamed_addr constant [2 x i8] c"'\00" @.str.3463 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3464 = private unnamed_addr constant [3 x i8] c", \00" -@.str.3465 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3466 = private unnamed_addr constant [3 x i8] c" }\00" -@.str.3467 = private unnamed_addr constant [30 x i8] c"ptrtoint (ptr getelementptr (\00" -@.str.3468 = private unnamed_addr constant [27 x i8] c", ptr null, i32 1) to i64)\00" -@.str.3469 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.3470 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.3471 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.3472 = private unnamed_addr constant [15 x i8] c", i32 0, i32 0\00" -@.str.3473 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.3474 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.3475 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.3476 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.3477 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.3478 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" -@.str.3479 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.3480 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3481 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.3482 = private unnamed_addr constant [2 x i8] c"1\00" -@.str.3483 = private unnamed_addr constant [5 x i8] c"ptr \00" -@.str.3484 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.3485 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.3486 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.3487 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3488 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str.3489 = private unnamed_addr constant [26 x i8] c"call i64 @finch_map_find(\00" -@.str.3490 = private unnamed_addr constant [2 x i8] c")\00" -@.str.3491 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.3492 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.3493 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.3494 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.3495 = private unnamed_addr constant [26 x i8] c"call i64 @finch_map_slot(\00" -@.str.3496 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.3497 = private unnamed_addr constant [2 x i8] c")\00" -@.str.3498 = private unnamed_addr constant [8 x i8] c"map.new\00" -@.str.3499 = private unnamed_addr constant [9 x i8] c"map.have\00" -@.str.3500 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str.3501 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.3502 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.3464 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3465 = private unnamed_addr constant [47 x i8] c"' doesn't return a value (it has no '-> type')\00" +@.str.3466 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3467 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3468 = private unnamed_addr constant [5 x i8] c"ret \00" +@.str.3469 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3470 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3471 = private unnamed_addr constant [54 x i8] c" { i1 true, i8 0, { ptr, i64, i64 } zeroinitializer }\00" +@.str.3472 = private unnamed_addr constant [9 x i8] c"ret void\00" +@.str.3473 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3474 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.3475 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.3476 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3477 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3478 = private unnamed_addr constant [15 x i8] c"' must return \00" +@.str.3479 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3480 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3481 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3482 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.3483 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3484 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3485 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3486 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3487 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3488 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3489 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3490 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3491 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3492 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3493 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3494 = private unnamed_addr constant [32 x i8] c"used .deferOn on a null pointer\00" +@.str.3495 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3496 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3497 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3498 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3499 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3500 = private unnamed_addr constant [35 x i8] c"used .deferLimit on a null pointer\00" +@.str.3501 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3502 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.3503 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3504 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3505 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3506 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3506 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" @.str.3507 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3508 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3508 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.3509 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3510 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3511 = private unnamed_addr constant [8 x i8] c"the key\00" -@.str.3512 = private unnamed_addr constant [45 x i8] c"this is a temporary map, it can't be changed\00" -@.str.3513 = private unnamed_addr constant [1 x i8] c"\00" -@.str.3514 = private unnamed_addr constant [12 x i8] c"map.missing\00" -@.str.3515 = private unnamed_addr constant [10 x i8] c"map.found\00" -@.str.3516 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" -@.str.3517 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.3518 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.3519 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.3520 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.3521 = private unnamed_addr constant [34 x i8] c"call void @finch_map_missing(ptr \00" +@.str.3511 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3512 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3513 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3514 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3515 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3516 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3517 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3518 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3519 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3520 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3521 = private unnamed_addr constant [19 x i8] c"the returned value\00" @.str.3522 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3523 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" -@.str.3524 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3525 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.3526 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.3527 = private unnamed_addr constant [2 x i8] c")\00" -@.str.3528 = private unnamed_addr constant [12 x i8] c"unreachable\00" +@.str.3523 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3524 = private unnamed_addr constant [13 x i8] c"insertvalue \00" +@.str.3525 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3526 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3527 = private unnamed_addr constant [29 x i8] c" zeroinitializer, i1 true, 0\00" +@.str.3528 = private unnamed_addr constant [13 x i8] c"insertvalue \00" @.str.3529 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3530 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.3531 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.3532 = private unnamed_addr constant [53 x i8] c"an empty [:] needs a type, like: map[str]int m = [:]\00" +@.str.3530 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3531 = private unnamed_addr constant [2 x i8] c" \00" +@.str.3532 = private unnamed_addr constant [3 x i8] c", \00" @.str.3533 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3534 = private unnamed_addr constant [6 x i8] c"unary\00" -@.str.3535 = private unnamed_addr constant [2 x i8] c"-\00" -@.str.3536 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3537 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.3538 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.3539 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3540 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3541 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3542 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.3543 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3544 = private unnamed_addr constant [36 x i8] c"a map key needs a value with a type\00" -@.str.3545 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3546 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.3547 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3548 = private unnamed_addr constant [38 x i8] c"a map value needs a value with a type\00" -@.str.3549 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.3550 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.3551 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3552 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.3553 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3554 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.3555 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3556 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3557 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3558 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3559 = private unnamed_addr constant [22 x i8] c"every key of this map\00" -@.str.3560 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3561 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3562 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3563 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3564 = private unnamed_addr constant [24 x i8] c"every value of this map\00" +@.str.3534 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3535 = private unnamed_addr constant [2 x i8] c" \00" +@.str.3536 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.3537 = private unnamed_addr constant [5 x i8] c"ret \00" +@.str.3538 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3539 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3540 = private unnamed_addr constant [2 x i8] c" \00" +@.str.3541 = private unnamed_addr constant [5 x i8] c"ret \00" +@.str.3542 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3543 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3544 = private unnamed_addr constant [2 x i8] c" \00" +@.str.3545 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3546 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.3547 = private unnamed_addr constant [8 x i8] c"{ i64, \00" +@.str.3548 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3549 = private unnamed_addr constant [3 x i8] c", \00" +@.str.3550 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3551 = private unnamed_addr constant [3 x i8] c" }\00" +@.str.3552 = private unnamed_addr constant [30 x i8] c"ptrtoint (ptr getelementptr (\00" +@.str.3553 = private unnamed_addr constant [27 x i8] c", ptr null, i32 1) to i64)\00" +@.str.3554 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.3555 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.3556 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.3557 = private unnamed_addr constant [15 x i8] c", i32 0, i32 0\00" +@.str.3558 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.3559 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.3560 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.3561 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.3562 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.3563 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" +@.str.3564 = private unnamed_addr constant [2 x i8] c"0\00" @.str.3565 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3566 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3567 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3568 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3569 = private unnamed_addr constant [4 x i8] c"has\00" -@.str.3570 = private unnamed_addr constant [4 x i8] c"get\00" -@.str.3571 = private unnamed_addr constant [7 x i8] c"remove\00" -@.str.3572 = private unnamed_addr constant [4 x i8] c"get\00" -@.str.3573 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3574 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3575 = private unnamed_addr constant [8 x i8] c"the key\00" -@.str.3576 = private unnamed_addr constant [14 x i8] c"icmp sge i64 \00" -@.str.3577 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.3578 = private unnamed_addr constant [4 x i8] c"has\00" -@.str.3579 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.3580 = private unnamed_addr constant [7 x i8] c"remove\00" -@.str.3581 = private unnamed_addr constant [11 x i8] c"remove.hit\00" -@.str.3582 = private unnamed_addr constant [11 x i8] c"remove.end\00" -@.str.3583 = private unnamed_addr constant [36 x i8] c"call void @finch_map_remove_at(ptr \00" -@.str.3584 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.3585 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.3586 = private unnamed_addr constant [2 x i8] c")\00" -@.str.3587 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.3588 = private unnamed_addr constant [10 x i8] c"get.found\00" -@.str.3589 = private unnamed_addr constant [12 x i8] c"get.missing\00" -@.str.3590 = private unnamed_addr constant [9 x i8] c"get.fend\00" -@.str.3591 = private unnamed_addr constant [9 x i8] c"get.mend\00" -@.str.3592 = private unnamed_addr constant [8 x i8] c"get.end\00" +@.str.3566 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.3567 = private unnamed_addr constant [2 x i8] c"1\00" +@.str.3568 = private unnamed_addr constant [5 x i8] c"ptr \00" +@.str.3569 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.3570 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.3571 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.3572 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3573 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str.3574 = private unnamed_addr constant [26 x i8] c"call i64 @finch_map_find(\00" +@.str.3575 = private unnamed_addr constant [2 x i8] c")\00" +@.str.3576 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.3577 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.3578 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.3579 = private unnamed_addr constant [2 x i8] c"0\00" +@.str.3580 = private unnamed_addr constant [26 x i8] c"call i64 @finch_map_slot(\00" +@.str.3581 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.3582 = private unnamed_addr constant [2 x i8] c")\00" +@.str.3583 = private unnamed_addr constant [8 x i8] c"map.new\00" +@.str.3584 = private unnamed_addr constant [9 x i8] c"map.have\00" +@.str.3585 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str.3586 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.3587 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.3588 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3589 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3590 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3591 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3592 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3593 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3594 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3595 = private unnamed_addr constant [12 x i8] c"the default\00" -@.str.3596 = private unnamed_addr constant [5 x i8] c"phi \00" -@.str.3597 = private unnamed_addr constant [4 x i8] c" [ \00" -@.str.3598 = private unnamed_addr constant [4 x i8] c", %\00" -@.str.3599 = private unnamed_addr constant [7 x i8] c" ], [ \00" -@.str.3600 = private unnamed_addr constant [4 x i8] c", %\00" -@.str.3601 = private unnamed_addr constant [3 x i8] c" ]\00" -@.str.3602 = private unnamed_addr constant [6 x i8] c"clear\00" -@.str.3603 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3604 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.3605 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.3606 = private unnamed_addr constant [15 x i8] c", i32 0, i32 2\00" +@.str.3595 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3596 = private unnamed_addr constant [8 x i8] c"the key\00" +@.str.3597 = private unnamed_addr constant [45 x i8] c"this is a temporary map, it can't be changed\00" +@.str.3598 = private unnamed_addr constant [1 x i8] c"\00" +@.str.3599 = private unnamed_addr constant [12 x i8] c"map.missing\00" +@.str.3600 = private unnamed_addr constant [10 x i8] c"map.found\00" +@.str.3601 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" +@.str.3602 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.3603 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.3604 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.3605 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" +@.str.3606 = private unnamed_addr constant [34 x i8] c"call void @finch_map_missing(ptr \00" @.str.3607 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3608 = private unnamed_addr constant [11 x i8] c"entry.live\00" -@.str.3609 = private unnamed_addr constant [11 x i8] c"entry.next\00" -@.str.3610 = private unnamed_addr constant [13 x i8] c"icmp ne i64 \00" -@.str.3611 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3612 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.3613 = private unnamed_addr constant [32 x i8] c"call void @finch_map_clear(ptr \00" -@.str.3614 = private unnamed_addr constant [2 x i8] c")\00" -@.str.3615 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3616 = private unnamed_addr constant [5 x i8] c"keys\00" -@.str.3617 = private unnamed_addr constant [7 x i8] c"values\00" -@.str.3618 = private unnamed_addr constant [7 x i8] c"values\00" -@.str.3619 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.3620 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.3621 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.3622 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3623 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.3624 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.3625 = private unnamed_addr constant [15 x i8] c", i32 0, i32 1\00" -@.str.3626 = private unnamed_addr constant [31 x i8] c"call void @finch_arr_make(ptr \00" -@.str.3627 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.3628 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.3629 = private unnamed_addr constant [2 x i8] c")\00" -@.str.3630 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.3631 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3632 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3633 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.3634 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3635 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.3636 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.3637 = private unnamed_addr constant [15 x i8] c", i32 0, i32 2\00" +@.str.3608 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.3609 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3610 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.3611 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.3612 = private unnamed_addr constant [2 x i8] c")\00" +@.str.3613 = private unnamed_addr constant [12 x i8] c"unreachable\00" +@.str.3614 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3615 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.3616 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.3617 = private unnamed_addr constant [53 x i8] c"an empty [:] needs a type, like: map[str]int m = [:]\00" +@.str.3618 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3619 = private unnamed_addr constant [6 x i8] c"unary\00" +@.str.3620 = private unnamed_addr constant [2 x i8] c"-\00" +@.str.3621 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3622 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.3623 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.3624 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3625 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3626 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3627 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.3628 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3629 = private unnamed_addr constant [36 x i8] c"a map key needs a value with a type\00" +@.str.3630 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3631 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.3632 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3633 = private unnamed_addr constant [38 x i8] c"a map value needs a value with a type\00" +@.str.3634 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.3635 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" +@.str.3636 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3637 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" @.str.3638 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3639 = private unnamed_addr constant [11 x i8] c"entry.live\00" -@.str.3640 = private unnamed_addr constant [11 x i8] c"entry.next\00" -@.str.3641 = private unnamed_addr constant [13 x i8] c"icmp ne i64 \00" -@.str.3642 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3643 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.3644 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3645 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.3646 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.3647 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.3648 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3649 = private unnamed_addr constant [9 x i8] c"add i64 \00" -@.str.3650 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str.3651 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.3652 = private unnamed_addr constant [22 x i8] c"a map has no method '\00" -@.str.3653 = private unnamed_addr constant [50 x i8] c"' (it has: has, get, remove, clear, keys, values)\00" -@.str.3654 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.3655 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.3656 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3657 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" +@.str.3639 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.3640 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3641 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3642 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3643 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3644 = private unnamed_addr constant [22 x i8] c"every key of this map\00" +@.str.3645 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3646 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3647 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3648 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3649 = private unnamed_addr constant [24 x i8] c"every value of this map\00" +@.str.3650 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3651 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3652 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3653 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3654 = private unnamed_addr constant [4 x i8] c"has\00" +@.str.3655 = private unnamed_addr constant [4 x i8] c"get\00" +@.str.3656 = private unnamed_addr constant [7 x i8] c"remove\00" +@.str.3657 = private unnamed_addr constant [4 x i8] c"get\00" @.str.3658 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3659 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.3660 = private unnamed_addr constant [23 x i8] c"' is not a variant of \00" -@.str.3661 = private unnamed_addr constant [11 x i8] c" (it has: \00" -@.str.3662 = private unnamed_addr constant [3 x i8] c", \00" -@.str.3663 = private unnamed_addr constant [2 x i8] c")\00" -@.str.3664 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3665 = private unnamed_addr constant [13 x i8] c"this pattern\00" -@.str.3666 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3667 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3668 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.3669 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3670 = private unnamed_addr constant [31 x i8] c"there is nothing to match here\00" -@.str.3671 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3672 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.3673 = private unnamed_addr constant [10 x i8] c"match.end\00" -@.str.3674 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3675 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3676 = private unnamed_addr constant [73 x i8] c"this arm can never be used: 'else' already takes everything that is left\00" -@.str.3677 = private unnamed_addr constant [10 x i8] c"match.arm\00" -@.str.3678 = private unnamed_addr constant [11 x i8] c"match.next\00" +@.str.3659 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3660 = private unnamed_addr constant [8 x i8] c"the key\00" +@.str.3661 = private unnamed_addr constant [14 x i8] c"icmp sge i64 \00" +@.str.3662 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.3663 = private unnamed_addr constant [4 x i8] c"has\00" +@.str.3664 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.3665 = private unnamed_addr constant [7 x i8] c"remove\00" +@.str.3666 = private unnamed_addr constant [11 x i8] c"remove.hit\00" +@.str.3667 = private unnamed_addr constant [11 x i8] c"remove.end\00" +@.str.3668 = private unnamed_addr constant [36 x i8] c"call void @finch_map_remove_at(ptr \00" +@.str.3669 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.3670 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.3671 = private unnamed_addr constant [2 x i8] c")\00" +@.str.3672 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.3673 = private unnamed_addr constant [10 x i8] c"get.found\00" +@.str.3674 = private unnamed_addr constant [12 x i8] c"get.missing\00" +@.str.3675 = private unnamed_addr constant [9 x i8] c"get.fend\00" +@.str.3676 = private unnamed_addr constant [9 x i8] c"get.mend\00" +@.str.3677 = private unnamed_addr constant [8 x i8] c"get.end\00" +@.str.3678 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3679 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3680 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3681 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.3682 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3683 = private unnamed_addr constant [50 x i8] c"this variant is already handled by an earlier arm\00" -@.str.3684 = private unnamed_addr constant [3 x i8] c"==\00" -@.str.3685 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3686 = private unnamed_addr constant [9 x i8] c"match.or\00" -@.str.3687 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3688 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3689 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3690 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.3691 = private unnamed_addr constant [53 x i8] c"an arm of a match that gives a value has to give one\00" -@.str.3692 = private unnamed_addr constant [58 x i8] c"this arm (the arms of a match have to give the same type)\00" -@.str.3693 = private unnamed_addr constant [11 x i8] c"match.from\00" -@.str.3694 = private unnamed_addr constant [6 x i8] c"block\00" -@.str.3695 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3696 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.3697 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.3698 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3699 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" -@.str.3700 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3701 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3702 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3703 = private unnamed_addr constant [27 x i8] c"this match doesn't handle \00" -@.str.3704 = private unnamed_addr constant [3 x i8] c", \00" -@.str.3705 = private unnamed_addr constant [30 x i8] c" (add them, or an 'else' arm)\00" -@.str.3706 = private unnamed_addr constant [12 x i8] c"a match on \00" -@.str.3707 = private unnamed_addr constant [55 x i8] c" needs an 'else' arm for everything that is not listed\00" -@.str.3708 = private unnamed_addr constant [5 x i8] c"true\00" -@.str.3709 = private unnamed_addr constant [36 x i8] c"no arm of this match fits the value\00" -@.str.3710 = private unnamed_addr constant [12 x i8] c"unreachable\00" -@.str.3711 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3712 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.3713 = private unnamed_addr constant [12 x i8] c"unreachable\00" -@.str.3714 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3715 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.3716 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3717 = private unnamed_addr constant [5 x i8] c"phi \00" -@.str.3718 = private unnamed_addr constant [2 x i8] c" \00" -@.str.3719 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3720 = private unnamed_addr constant [3 x i8] c"[ \00" -@.str.3721 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3722 = private unnamed_addr constant [4 x i8] c", %\00" +@.str.3680 = private unnamed_addr constant [12 x i8] c"the default\00" +@.str.3681 = private unnamed_addr constant [5 x i8] c"phi \00" +@.str.3682 = private unnamed_addr constant [4 x i8] c" [ \00" +@.str.3683 = private unnamed_addr constant [4 x i8] c", %\00" +@.str.3684 = private unnamed_addr constant [7 x i8] c" ], [ \00" +@.str.3685 = private unnamed_addr constant [4 x i8] c", %\00" +@.str.3686 = private unnamed_addr constant [3 x i8] c" ]\00" +@.str.3687 = private unnamed_addr constant [6 x i8] c"clear\00" +@.str.3688 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3689 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.3690 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.3691 = private unnamed_addr constant [15 x i8] c", i32 0, i32 2\00" +@.str.3692 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3693 = private unnamed_addr constant [11 x i8] c"entry.live\00" +@.str.3694 = private unnamed_addr constant [11 x i8] c"entry.next\00" +@.str.3695 = private unnamed_addr constant [13 x i8] c"icmp ne i64 \00" +@.str.3696 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3697 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.3698 = private unnamed_addr constant [32 x i8] c"call void @finch_map_clear(ptr \00" +@.str.3699 = private unnamed_addr constant [2 x i8] c")\00" +@.str.3700 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3701 = private unnamed_addr constant [5 x i8] c"keys\00" +@.str.3702 = private unnamed_addr constant [7 x i8] c"values\00" +@.str.3703 = private unnamed_addr constant [7 x i8] c"values\00" +@.str.3704 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.3705 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.3706 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" +@.str.3707 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3708 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.3709 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.3710 = private unnamed_addr constant [15 x i8] c", i32 0, i32 1\00" +@.str.3711 = private unnamed_addr constant [31 x i8] c"call void @finch_arr_make(ptr \00" +@.str.3712 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.3713 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.3714 = private unnamed_addr constant [2 x i8] c")\00" +@.str.3715 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.3716 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3717 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3718 = private unnamed_addr constant [2 x i8] c"0\00" +@.str.3719 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3720 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.3721 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.3722 = private unnamed_addr constant [15 x i8] c", i32 0, i32 2\00" @.str.3723 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3724 = private unnamed_addr constant [3 x i8] c" ]\00" -@.str.3725 = private unnamed_addr constant [3 x i8] c", \00" -@.str.3726 = private unnamed_addr constant [5 x i8] c"call\00" -@.str.3727 = private unnamed_addr constant [7 x i8] c"method\00" -@.str.3728 = private unnamed_addr constant [81 x i8] c"only a function call can fail; 'or' and 'try' go after one, like int(text) or 0\00" -@.str.3729 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3730 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" -@.str.3731 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3732 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" -@.str.3733 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3734 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" -@.str.3735 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3736 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" -@.str.3737 = private unnamed_addr constant [1 x i8] c"\00" -@.str.3738 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3739 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" -@.str.3740 = private unnamed_addr constant [1 x i8] c"\00" +@.str.3724 = private unnamed_addr constant [11 x i8] c"entry.live\00" +@.str.3725 = private unnamed_addr constant [11 x i8] c"entry.next\00" +@.str.3726 = private unnamed_addr constant [13 x i8] c"icmp ne i64 \00" +@.str.3727 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3728 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.3729 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3730 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.3731 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.3732 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.3733 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3734 = private unnamed_addr constant [9 x i8] c"add i64 \00" +@.str.3735 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.3736 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.3737 = private unnamed_addr constant [22 x i8] c"a map has no method '\00" +@.str.3738 = private unnamed_addr constant [50 x i8] c"' (it has: has, get, remove, clear, keys, values)\00" +@.str.3739 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.3740 = private unnamed_addr constant [4 x i8] c"var\00" @.str.3741 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3742 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" +@.str.3742 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" @.str.3743 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3744 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" -@.str.3745 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3746 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" -@.str.3747 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3748 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" +@.str.3744 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.3745 = private unnamed_addr constant [23 x i8] c"' is not a variant of \00" +@.str.3746 = private unnamed_addr constant [11 x i8] c" (it has: \00" +@.str.3747 = private unnamed_addr constant [3 x i8] c", \00" +@.str.3748 = private unnamed_addr constant [2 x i8] c")\00" @.str.3749 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3750 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" +@.str.3750 = private unnamed_addr constant [13 x i8] c"this pattern\00" @.str.3751 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3752 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" -@.str.3753 = private unnamed_addr constant [51 x i8] c"this call can't fail, so it needs no 'or' or 'try'\00" +@.str.3752 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3753 = private unnamed_addr constant [5 x i8] c"null\00" @.str.3754 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3755 = private unnamed_addr constant [32 x i8] c"used .inDefer on a null pointer\00" -@.str.3756 = private unnamed_addr constant [31 x i8] c"try can't be used inside defer\00" -@.str.3757 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3758 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3759 = private unnamed_addr constant [2 x i8] c"!\00" -@.str.3760 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3761 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3762 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3755 = private unnamed_addr constant [31 x i8] c"there is nothing to match here\00" +@.str.3756 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3757 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.3758 = private unnamed_addr constant [1 x i8] c"\00" +@.str.3759 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.3760 = private unnamed_addr constant [14 x i8] c"extractvalue \00" +@.str.3761 = private unnamed_addr constant [2 x i8] c" \00" +@.str.3762 = private unnamed_addr constant [3 x i8] c", \00" @.str.3763 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3764 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3765 = private unnamed_addr constant [2 x i8] c"!\00" -@.str.3766 = private unnamed_addr constant [30 x i8] c"try passes the error on, so '\00" -@.str.3767 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3768 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3769 = private unnamed_addr constant [32 x i8] c"' must be able to fail too (-> \00" -@.str.3770 = private unnamed_addr constant [56 x i8] c"); or handle it here: ... or / ... or { ... }\00" -@.str.3771 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3772 = private unnamed_addr constant [11 x i8] c"try.failed\00" -@.str.3773 = private unnamed_addr constant [7 x i8] c"try.ok\00" -@.str.3774 = private unnamed_addr constant [5 x i8] c"ret \00" +@.str.3764 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.3765 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3766 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3767 = private unnamed_addr constant [10 x i8] c"match.end\00" +@.str.3768 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3769 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3770 = private unnamed_addr constant [73 x i8] c"this arm can never be used: 'else' already takes everything that is left\00" +@.str.3771 = private unnamed_addr constant [10 x i8] c"match.arm\00" +@.str.3772 = private unnamed_addr constant [11 x i8] c"match.next\00" +@.str.3773 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3774 = private unnamed_addr constant [1 x i8] c"\00" @.str.3775 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3776 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3777 = private unnamed_addr constant [2 x i8] c" \00" -@.str.3778 = private unnamed_addr constant [13 x i8] c"insertvalue \00" -@.str.3779 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3780 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3781 = private unnamed_addr constant [37 x i8] c" zeroinitializer, { ptr, i64, i64 } \00" -@.str.3782 = private unnamed_addr constant [4 x i8] c", 2\00" -@.str.3783 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3784 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.3785 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3786 = private unnamed_addr constant [10 x i8] c"or.failed\00" -@.str.3787 = private unnamed_addr constant [6 x i8] c"or.ok\00" -@.str.3788 = private unnamed_addr constant [4 x i8] c"err\00" -@.str.3789 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.3790 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3776 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3777 = private unnamed_addr constant [50 x i8] c"this variant is already handled by an earlier arm\00" +@.str.3778 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3779 = private unnamed_addr constant [53 x i8] c"an arm with several variants can't name their values\00" +@.str.3780 = private unnamed_addr constant [13 x i8] c"icmp eq i64 \00" +@.str.3781 = private unnamed_addr constant [3 x i8] c", \00" +@.str.3782 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3783 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.3784 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3785 = private unnamed_addr constant [50 x i8] c"this variant is already handled by an earlier arm\00" +@.str.3786 = private unnamed_addr constant [3 x i8] c"==\00" +@.str.3787 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3788 = private unnamed_addr constant [9 x i8] c"match.or\00" +@.str.3789 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3790 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.3791 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3792 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.3793 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3792 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3793 = private unnamed_addr constant [2 x i8] c"_\00" @.str.3794 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3795 = private unnamed_addr constant [143 x i8] c"this block must leave with return, break, continue or exit(...): after a failure there is no value to go on with (or give one: ... or )\00" -@.str.3796 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3797 = private unnamed_addr constant [7 x i8] c"or.end\00" -@.str.3798 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3799 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3800 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3801 = private unnamed_addr constant [99 x i8] c"this call gives back no value, so there is nothing to replace; handle the failure with or { ... }\00" -@.str.3802 = private unnamed_addr constant [4 x i8] c"err\00" -@.str.3803 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.3795 = private unnamed_addr constant [29 x i8] c"used .sums on a null pointer\00" +@.str.3796 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3797 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3798 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3799 = private unnamed_addr constant [14 x i8] c"extractvalue \00" +@.str.3800 = private unnamed_addr constant [2 x i8] c" \00" +@.str.3801 = private unnamed_addr constant [3 x i8] c", \00" +@.str.3802 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3803 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3804 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3805 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3806 = private unnamed_addr constant [21 x i8] c"the value after 'or'\00" -@.str.3807 = private unnamed_addr constant [8 x i8] c"or.bend\00" -@.str.3808 = private unnamed_addr constant [7 x i8] c"or.end\00" -@.str.3809 = private unnamed_addr constant [5 x i8] c"phi \00" -@.str.3810 = private unnamed_addr constant [4 x i8] c" [ \00" -@.str.3811 = private unnamed_addr constant [4 x i8] c", %\00" -@.str.3812 = private unnamed_addr constant [7 x i8] c" ], [ \00" -@.str.3813 = private unnamed_addr constant [4 x i8] c", %\00" -@.str.3814 = private unnamed_addr constant [3 x i8] c" ]\00" -@.str.3815 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.3816 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.3817 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.3806 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3807 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3808 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.3809 = private unnamed_addr constant [53 x i8] c"an arm of a match that gives a value has to give one\00" +@.str.3810 = private unnamed_addr constant [58 x i8] c"this arm (the arms of a match have to give the same type)\00" +@.str.3811 = private unnamed_addr constant [11 x i8] c"match.from\00" +@.str.3812 = private unnamed_addr constant [6 x i8] c"block\00" +@.str.3813 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3814 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.3815 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3816 = private unnamed_addr constant [29 x i8] c"used .sums on a null pointer\00" +@.str.3817 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3818 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3819 = private unnamed_addr constant [3 x i8] c"0x\00" +@.str.3819 = private unnamed_addr constant [29 x i8] c"used .sums on a null pointer\00" @.str.3820 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3821 = private unnamed_addr constant [3 x i8] c"0X\00" -@.str.3822 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3823 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.3824 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3825 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.3826 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.3827 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.3828 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.3829 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.3830 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.3831 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3832 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.3833 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.3834 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.3835 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.3836 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.3837 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.3838 = private unnamed_addr constant [7 x i8] c"member\00" -@.str.3839 = private unnamed_addr constant [6 x i8] c"index\00" -@.str.3840 = private unnamed_addr constant [6 x i8] c"match\00" -@.str.3841 = private unnamed_addr constant [4 x i8] c"try\00" -@.str.3842 = private unnamed_addr constant [3 x i8] c"or\00" -@.str.3843 = private unnamed_addr constant [6 x i8] c"unary\00" -@.str.3844 = private unnamed_addr constant [7 x i8] c"binary\00" -@.str.3845 = private unnamed_addr constant [5 x i8] c"call\00" -@.str.3846 = private unnamed_addr constant [7 x i8] c"method\00" -@.str.3847 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.3848 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3849 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.3850 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3851 = private unnamed_addr constant [20 x i8] c"unknown expression \00" -@.str.3852 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3853 = private unnamed_addr constant [2 x i8] c"!\00" -@.str.3854 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.3855 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3856 = private unnamed_addr constant [20 x i8] c"the value after '!'\00" -@.str.3857 = private unnamed_addr constant [8 x i8] c"xor i1 \00" -@.str.3858 = private unnamed_addr constant [7 x i8] c", true\00" -@.str.3859 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.3860 = private unnamed_addr constant [2 x i8] c"~\00" -@.str.3861 = private unnamed_addr constant [46 x i8] c"'~' flips the bits of a whole number, not of \00" -@.str.3862 = private unnamed_addr constant [5 x i8] c"xor \00" -@.str.3863 = private unnamed_addr constant [2 x i8] c" \00" -@.str.3864 = private unnamed_addr constant [5 x i8] c", -1\00" -@.str.3865 = private unnamed_addr constant [35 x i8] c" can't be negative (it's unsigned)\00" +@.str.3821 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3822 = private unnamed_addr constant [27 x i8] c"this match doesn't handle \00" +@.str.3823 = private unnamed_addr constant [3 x i8] c", \00" +@.str.3824 = private unnamed_addr constant [30 x i8] c" (add them, or an 'else' arm)\00" +@.str.3825 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.3826 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3827 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" +@.str.3828 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3829 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3830 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3831 = private unnamed_addr constant [27 x i8] c"this match doesn't handle \00" +@.str.3832 = private unnamed_addr constant [3 x i8] c", \00" +@.str.3833 = private unnamed_addr constant [30 x i8] c" (add them, or an 'else' arm)\00" +@.str.3834 = private unnamed_addr constant [12 x i8] c"a match on \00" +@.str.3835 = private unnamed_addr constant [55 x i8] c" needs an 'else' arm for everything that is not listed\00" +@.str.3836 = private unnamed_addr constant [5 x i8] c"true\00" +@.str.3837 = private unnamed_addr constant [36 x i8] c"no arm of this match fits the value\00" +@.str.3838 = private unnamed_addr constant [12 x i8] c"unreachable\00" +@.str.3839 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3840 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.3841 = private unnamed_addr constant [12 x i8] c"unreachable\00" +@.str.3842 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3843 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.3844 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3845 = private unnamed_addr constant [5 x i8] c"phi \00" +@.str.3846 = private unnamed_addr constant [2 x i8] c" \00" +@.str.3847 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3848 = private unnamed_addr constant [3 x i8] c"[ \00" +@.str.3849 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3850 = private unnamed_addr constant [4 x i8] c", %\00" +@.str.3851 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3852 = private unnamed_addr constant [3 x i8] c" ]\00" +@.str.3853 = private unnamed_addr constant [3 x i8] c", \00" +@.str.3854 = private unnamed_addr constant [5 x i8] c"call\00" +@.str.3855 = private unnamed_addr constant [7 x i8] c"method\00" +@.str.3856 = private unnamed_addr constant [81 x i8] c"only a function call can fail; 'or' and 'try' go after one, like int(text) or 0\00" +@.str.3857 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3858 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" +@.str.3859 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3860 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" +@.str.3861 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3862 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" +@.str.3863 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3864 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" +@.str.3865 = private unnamed_addr constant [1 x i8] c"\00" @.str.3866 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3867 = private unnamed_addr constant [2 x i8] c"-\00" -@.str.3868 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3869 = private unnamed_addr constant [2 x i8] c"-\00" -@.str.3870 = private unnamed_addr constant [5 x i8] c"sub \00" -@.str.3871 = private unnamed_addr constant [5 x i8] c" 0, \00" -@.str.3872 = private unnamed_addr constant [6 x i8] c"fneg \00" -@.str.3873 = private unnamed_addr constant [2 x i8] c" \00" -@.str.3874 = private unnamed_addr constant [27 x i8] c"can't put '-' in front of \00" -@.str.3875 = private unnamed_addr constant [12 x i8] c"can't use '\00" -@.str.3876 = private unnamed_addr constant [6 x i8] c"' on \00" -@.str.3877 = private unnamed_addr constant [6 x i8] c" and \00" -@.str.3878 = private unnamed_addr constant [2 x i8] c"+\00" -@.str.3879 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.3880 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.3881 = private unnamed_addr constant [49 x i8] c" (turn the other side into text first: str(...))\00" -@.str.3882 = private unnamed_addr constant [2 x i8] c"&\00" -@.str.3883 = private unnamed_addr constant [2 x i8] c"|\00" -@.str.3884 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.3885 = private unnamed_addr constant [2 x i8] c"&\00" -@.str.3886 = private unnamed_addr constant [27 x i8] c" (for true/false use '&&')\00" -@.str.3887 = private unnamed_addr constant [27 x i8] c" (for true/false use '||')\00" -@.str.3888 = private unnamed_addr constant [2 x i8] c"&\00" -@.str.3889 = private unnamed_addr constant [2 x i8] c"|\00" -@.str.3890 = private unnamed_addr constant [2 x i8] c"^\00" -@.str.3891 = private unnamed_addr constant [3 x i8] c"<<\00" -@.str.3892 = private unnamed_addr constant [3 x i8] c">>\00" -@.str.3893 = private unnamed_addr constant [44 x i8] c" (bit operators work on whole numbers only)\00" -@.str.3894 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.3895 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.3896 = private unnamed_addr constant [3 x i8] c"==\00" -@.str.3897 = private unnamed_addr constant [3 x i8] c"!=\00" -@.str.3898 = private unnamed_addr constant [32 x i8] c" (compare the parts one by one)\00" +@.str.3867 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" +@.str.3868 = private unnamed_addr constant [1 x i8] c"\00" +@.str.3869 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3870 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" +@.str.3871 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3872 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" +@.str.3873 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3874 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" +@.str.3875 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3876 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" +@.str.3877 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3878 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" +@.str.3879 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3880 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" +@.str.3881 = private unnamed_addr constant [51 x i8] c"this call can't fail, so it needs no 'or' or 'try'\00" +@.str.3882 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3883 = private unnamed_addr constant [32 x i8] c"used .inDefer on a null pointer\00" +@.str.3884 = private unnamed_addr constant [31 x i8] c"try can't be used inside defer\00" +@.str.3885 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3886 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3887 = private unnamed_addr constant [2 x i8] c"!\00" +@.str.3888 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3889 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3890 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3891 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3892 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3893 = private unnamed_addr constant [2 x i8] c"!\00" +@.str.3894 = private unnamed_addr constant [30 x i8] c"try passes the error on, so '\00" +@.str.3895 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3896 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3897 = private unnamed_addr constant [32 x i8] c"' must be able to fail too (-> \00" +@.str.3898 = private unnamed_addr constant [56 x i8] c"); or handle it here: ... or / ... or { ... }\00" @.str.3899 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3900 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3901 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3902 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.3900 = private unnamed_addr constant [11 x i8] c"try.failed\00" +@.str.3901 = private unnamed_addr constant [7 x i8] c"try.ok\00" +@.str.3902 = private unnamed_addr constant [5 x i8] c"ret \00" @.str.3903 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3904 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3905 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3906 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.3904 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3905 = private unnamed_addr constant [2 x i8] c" \00" +@.str.3906 = private unnamed_addr constant [13 x i8] c"insertvalue \00" @.str.3907 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3908 = private unnamed_addr constant [28 x i8] c"used .lit on a null pointer\00" -@.str.3909 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3910 = private unnamed_addr constant [28 x i8] c"used .lit on a null pointer\00" +@.str.3908 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3909 = private unnamed_addr constant [37 x i8] c" zeroinitializer, { ptr, i64, i64 } \00" +@.str.3910 = private unnamed_addr constant [4 x i8] c", 2\00" @.str.3911 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3912 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" +@.str.3912 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" @.str.3913 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3914 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3915 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3916 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3917 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3918 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" +@.str.3914 = private unnamed_addr constant [10 x i8] c"or.failed\00" +@.str.3915 = private unnamed_addr constant [6 x i8] c"or.ok\00" +@.str.3916 = private unnamed_addr constant [4 x i8] c"err\00" +@.str.3917 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.3918 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3919 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3920 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3921 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3922 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" -@.str.3923 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3924 = private unnamed_addr constant [28 x i8] c"used .lit on a null pointer\00" -@.str.3925 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3926 = private unnamed_addr constant [28 x i8] c"used .lit on a null pointer\00" -@.str.3927 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3928 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" -@.str.3929 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3930 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3931 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3932 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.3920 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.3921 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3922 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3923 = private unnamed_addr constant [143 x i8] c"this block must leave with return, break, continue or exit(...): after a failure there is no value to go on with (or give one: ... or )\00" +@.str.3924 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3925 = private unnamed_addr constant [7 x i8] c"or.end\00" +@.str.3926 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3927 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3928 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3929 = private unnamed_addr constant [99 x i8] c"this call gives back no value, so there is nothing to replace; handle the failure with or { ... }\00" +@.str.3930 = private unnamed_addr constant [4 x i8] c"err\00" +@.str.3931 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.3932 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3933 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3934 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" -@.str.3935 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3936 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3937 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3938 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" -@.str.3939 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3940 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3941 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3942 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3943 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3944 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" -@.str.3945 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3946 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3947 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3948 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3949 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3950 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3951 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3952 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" -@.str.3953 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3954 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3955 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3956 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3957 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3958 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" +@.str.3934 = private unnamed_addr constant [21 x i8] c"the value after 'or'\00" +@.str.3935 = private unnamed_addr constant [8 x i8] c"or.bend\00" +@.str.3936 = private unnamed_addr constant [7 x i8] c"or.end\00" +@.str.3937 = private unnamed_addr constant [5 x i8] c"phi \00" +@.str.3938 = private unnamed_addr constant [4 x i8] c" [ \00" +@.str.3939 = private unnamed_addr constant [4 x i8] c", %\00" +@.str.3940 = private unnamed_addr constant [7 x i8] c" ], [ \00" +@.str.3941 = private unnamed_addr constant [4 x i8] c", %\00" +@.str.3942 = private unnamed_addr constant [3 x i8] c" ]\00" +@.str.3943 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.3944 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.3945 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.3946 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3947 = private unnamed_addr constant [3 x i8] c"0x\00" +@.str.3948 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3949 = private unnamed_addr constant [3 x i8] c"0X\00" +@.str.3950 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3951 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.3952 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3953 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.3954 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.3955 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.3956 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.3957 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.3958 = private unnamed_addr constant [5 x i8] c"char\00" @.str.3959 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3960 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3961 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3962 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3963 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3964 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3965 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3966 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" -@.str.3967 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3968 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3969 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3970 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3971 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3972 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" -@.str.3973 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3974 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3975 = private unnamed_addr constant [1 x i8] c"\00" -@.str.3976 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3977 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" -@.str.3978 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3979 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.3960 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.3961 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.3962 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.3963 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.3964 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.3965 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.3966 = private unnamed_addr constant [7 x i8] c"member\00" +@.str.3967 = private unnamed_addr constant [6 x i8] c"index\00" +@.str.3968 = private unnamed_addr constant [6 x i8] c"match\00" +@.str.3969 = private unnamed_addr constant [4 x i8] c"try\00" +@.str.3970 = private unnamed_addr constant [3 x i8] c"or\00" +@.str.3971 = private unnamed_addr constant [6 x i8] c"unary\00" +@.str.3972 = private unnamed_addr constant [7 x i8] c"binary\00" +@.str.3973 = private unnamed_addr constant [5 x i8] c"call\00" +@.str.3974 = private unnamed_addr constant [7 x i8] c"method\00" +@.str.3975 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.3976 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3977 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.3978 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3979 = private unnamed_addr constant [20 x i8] c"unknown expression \00" @.str.3980 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3981 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3982 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3983 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" -@.str.3984 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3985 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3986 = private unnamed_addr constant [1 x i8] c"\00" -@.str.3987 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3988 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" -@.str.3989 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3990 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3991 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3992 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3993 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3994 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3995 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.3981 = private unnamed_addr constant [2 x i8] c"!\00" +@.str.3982 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.3983 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3984 = private unnamed_addr constant [20 x i8] c"the value after '!'\00" +@.str.3985 = private unnamed_addr constant [8 x i8] c"xor i1 \00" +@.str.3986 = private unnamed_addr constant [7 x i8] c", true\00" +@.str.3987 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.3988 = private unnamed_addr constant [2 x i8] c"~\00" +@.str.3989 = private unnamed_addr constant [46 x i8] c"'~' flips the bits of a whole number, not of \00" +@.str.3990 = private unnamed_addr constant [5 x i8] c"xor \00" +@.str.3991 = private unnamed_addr constant [2 x i8] c" \00" +@.str.3992 = private unnamed_addr constant [5 x i8] c", -1\00" +@.str.3993 = private unnamed_addr constant [35 x i8] c" can't be negative (it's unsigned)\00" +@.str.3994 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3995 = private unnamed_addr constant [2 x i8] c"-\00" @.str.3996 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3997 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" -@.str.3998 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3999 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.4000 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4001 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4002 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4003 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" -@.str.4004 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4005 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.4006 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.4007 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4008 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" -@.str.4009 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4010 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.4011 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4012 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4013 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4014 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" -@.str.4015 = private unnamed_addr constant [2 x i8] c"+\00" -@.str.4016 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4017 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4018 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.4019 = private unnamed_addr constant [33 x i8] c"call void @finch_str_concat(ptr \00" -@.str.4020 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4021 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4022 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4023 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.4024 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4025 = private unnamed_addr constant [2 x i8] c"+\00" -@.str.4026 = private unnamed_addr constant [2 x i8] c"-\00" -@.str.4027 = private unnamed_addr constant [2 x i8] c"*\00" -@.str.4028 = private unnamed_addr constant [2 x i8] c"/\00" -@.str.4029 = private unnamed_addr constant [2 x i8] c"%\00" -@.str.4030 = private unnamed_addr constant [2 x i8] c"&\00" -@.str.4031 = private unnamed_addr constant [2 x i8] c"|\00" -@.str.4032 = private unnamed_addr constant [2 x i8] c"^\00" -@.str.4033 = private unnamed_addr constant [3 x i8] c"<<\00" -@.str.4034 = private unnamed_addr constant [3 x i8] c">>\00" -@.str.4035 = private unnamed_addr constant [4 x i8] c"add\00" -@.str.4036 = private unnamed_addr constant [4 x i8] c"sub\00" -@.str.4037 = private unnamed_addr constant [4 x i8] c"mul\00" -@.str.4038 = private unnamed_addr constant [5 x i8] c"sdiv\00" -@.str.4039 = private unnamed_addr constant [5 x i8] c"srem\00" -@.str.4040 = private unnamed_addr constant [4 x i8] c"and\00" -@.str.4041 = private unnamed_addr constant [3 x i8] c"or\00" -@.str.4042 = private unnamed_addr constant [4 x i8] c"xor\00" -@.str.4043 = private unnamed_addr constant [4 x i8] c"shl\00" -@.str.4044 = private unnamed_addr constant [5 x i8] c"ashr\00" -@.str.4045 = private unnamed_addr constant [4 x i8] c"add\00" -@.str.4046 = private unnamed_addr constant [4 x i8] c"sub\00" -@.str.4047 = private unnamed_addr constant [4 x i8] c"mul\00" -@.str.4048 = private unnamed_addr constant [5 x i8] c"udiv\00" -@.str.4049 = private unnamed_addr constant [5 x i8] c"urem\00" -@.str.4050 = private unnamed_addr constant [4 x i8] c"and\00" -@.str.4051 = private unnamed_addr constant [3 x i8] c"or\00" -@.str.4052 = private unnamed_addr constant [4 x i8] c"xor\00" -@.str.4053 = private unnamed_addr constant [4 x i8] c"shl\00" -@.str.4054 = private unnamed_addr constant [5 x i8] c"lshr\00" -@.str.4055 = private unnamed_addr constant [2 x i8] c"/\00" -@.str.4056 = private unnamed_addr constant [2 x i8] c"%\00" -@.str.4057 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.4058 = private unnamed_addr constant [17 x i8] c"division by zero\00" -@.str.4059 = private unnamed_addr constant [9 x i8] c"icmp eq \00" -@.str.4060 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4061 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.4062 = private unnamed_addr constant [17 x i8] c"division by zero\00" +@.str.3997 = private unnamed_addr constant [2 x i8] c"-\00" +@.str.3998 = private unnamed_addr constant [5 x i8] c"sub \00" +@.str.3999 = private unnamed_addr constant [5 x i8] c" 0, \00" +@.str.4000 = private unnamed_addr constant [6 x i8] c"fneg \00" +@.str.4001 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4002 = private unnamed_addr constant [27 x i8] c"can't put '-' in front of \00" +@.str.4003 = private unnamed_addr constant [12 x i8] c"can't use '\00" +@.str.4004 = private unnamed_addr constant [6 x i8] c"' on \00" +@.str.4005 = private unnamed_addr constant [6 x i8] c" and \00" +@.str.4006 = private unnamed_addr constant [2 x i8] c"+\00" +@.str.4007 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4008 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4009 = private unnamed_addr constant [49 x i8] c" (turn the other side into text first: str(...))\00" +@.str.4010 = private unnamed_addr constant [2 x i8] c"&\00" +@.str.4011 = private unnamed_addr constant [2 x i8] c"|\00" +@.str.4012 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4013 = private unnamed_addr constant [2 x i8] c"&\00" +@.str.4014 = private unnamed_addr constant [27 x i8] c" (for true/false use '&&')\00" +@.str.4015 = private unnamed_addr constant [27 x i8] c" (for true/false use '||')\00" +@.str.4016 = private unnamed_addr constant [2 x i8] c"&\00" +@.str.4017 = private unnamed_addr constant [2 x i8] c"|\00" +@.str.4018 = private unnamed_addr constant [2 x i8] c"^\00" +@.str.4019 = private unnamed_addr constant [3 x i8] c"<<\00" +@.str.4020 = private unnamed_addr constant [3 x i8] c">>\00" +@.str.4021 = private unnamed_addr constant [44 x i8] c" (bit operators work on whole numbers only)\00" +@.str.4022 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.4023 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.4024 = private unnamed_addr constant [3 x i8] c"==\00" +@.str.4025 = private unnamed_addr constant [3 x i8] c"!=\00" +@.str.4026 = private unnamed_addr constant [32 x i8] c" (compare the parts one by one)\00" +@.str.4027 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4028 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4029 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4030 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4031 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4032 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4033 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4034 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4035 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4036 = private unnamed_addr constant [28 x i8] c"used .lit on a null pointer\00" +@.str.4037 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4038 = private unnamed_addr constant [28 x i8] c"used .lit on a null pointer\00" +@.str.4039 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4040 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" +@.str.4041 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4042 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4043 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4044 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4045 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4046 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" +@.str.4047 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4048 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4049 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4050 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" +@.str.4051 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4052 = private unnamed_addr constant [28 x i8] c"used .lit on a null pointer\00" +@.str.4053 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4054 = private unnamed_addr constant [28 x i8] c"used .lit on a null pointer\00" +@.str.4055 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4056 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" +@.str.4057 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4058 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4059 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4060 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4061 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4062 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" @.str.4063 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4064 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4065 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4066 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4067 = private unnamed_addr constant [2 x i8] c"+\00" -@.str.4068 = private unnamed_addr constant [2 x i8] c"-\00" -@.str.4069 = private unnamed_addr constant [2 x i8] c"*\00" -@.str.4070 = private unnamed_addr constant [2 x i8] c"/\00" -@.str.4071 = private unnamed_addr constant [2 x i8] c"%\00" -@.str.4072 = private unnamed_addr constant [5 x i8] c"fadd\00" -@.str.4073 = private unnamed_addr constant [5 x i8] c"fsub\00" -@.str.4074 = private unnamed_addr constant [5 x i8] c"fmul\00" -@.str.4075 = private unnamed_addr constant [5 x i8] c"fdiv\00" -@.str.4076 = private unnamed_addr constant [5 x i8] c"frem\00" +@.str.4064 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4065 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4066 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" +@.str.4067 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4068 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4069 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4070 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4071 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4072 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" +@.str.4073 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4074 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4075 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4076 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" @.str.4077 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4078 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4079 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4080 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4081 = private unnamed_addr constant [3 x i8] c"==\00" -@.str.4082 = private unnamed_addr constant [3 x i8] c"!=\00" -@.str.4083 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4084 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4085 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.4086 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.4087 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4088 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4089 = private unnamed_addr constant [60 x i8] c"a str is never null; to check for empty text use s.len == 0\00" -@.str.4090 = private unnamed_addr constant [3 x i8] c"eq\00" -@.str.4091 = private unnamed_addr constant [3 x i8] c"!=\00" -@.str.4092 = private unnamed_addr constant [3 x i8] c"ne\00" -@.str.4093 = private unnamed_addr constant [6 x i8] c"icmp \00" -@.str.4094 = private unnamed_addr constant [6 x i8] c" ptr \00" -@.str.4095 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4096 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4097 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4098 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4099 = private unnamed_addr constant [28 x i8] c"call i32 @finch_str_eq(ptr \00" -@.str.4100 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4101 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4102 = private unnamed_addr constant [3 x i8] c"ne\00" -@.str.4103 = private unnamed_addr constant [3 x i8] c"!=\00" -@.str.4104 = private unnamed_addr constant [3 x i8] c"eq\00" -@.str.4105 = private unnamed_addr constant [6 x i8] c"icmp \00" -@.str.4106 = private unnamed_addr constant [6 x i8] c" i32 \00" -@.str.4107 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.4108 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4109 = private unnamed_addr constant [29 x i8] c"call i64 @finch_str_cmp(ptr \00" -@.str.4110 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4111 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4112 = private unnamed_addr constant [6 x i8] c"icmp \00" -@.str.4113 = private unnamed_addr constant [6 x i8] c" i64 \00" -@.str.4114 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.4115 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4116 = private unnamed_addr constant [3 x i8] c"==\00" -@.str.4117 = private unnamed_addr constant [3 x i8] c"!=\00" -@.str.4118 = private unnamed_addr constant [2 x i8] c"<\00" -@.str.4119 = private unnamed_addr constant [3 x i8] c"<=\00" -@.str.4120 = private unnamed_addr constant [2 x i8] c">\00" -@.str.4121 = private unnamed_addr constant [3 x i8] c">=\00" -@.str.4122 = private unnamed_addr constant [4 x i8] c"oeq\00" -@.str.4123 = private unnamed_addr constant [4 x i8] c"une\00" -@.str.4124 = private unnamed_addr constant [4 x i8] c"olt\00" -@.str.4125 = private unnamed_addr constant [4 x i8] c"ole\00" -@.str.4126 = private unnamed_addr constant [4 x i8] c"ogt\00" -@.str.4127 = private unnamed_addr constant [4 x i8] c"oge\00" -@.str.4128 = private unnamed_addr constant [6 x i8] c"fcmp \00" -@.str.4129 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4130 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4131 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4132 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4133 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4134 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.4135 = private unnamed_addr constant [116 x i8] c"enums can only be compared with == and != (to go through them in order, give the variants numbers and use int(...))\00" -@.str.4136 = private unnamed_addr constant [3 x i8] c"eq\00" -@.str.4137 = private unnamed_addr constant [3 x i8] c"!=\00" -@.str.4138 = private unnamed_addr constant [3 x i8] c"ne\00" -@.str.4139 = private unnamed_addr constant [6 x i8] c"icmp \00" -@.str.4140 = private unnamed_addr constant [6 x i8] c" i32 \00" -@.str.4141 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4142 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4143 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4144 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.4145 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4146 = private unnamed_addr constant [6 x i8] c"icmp \00" -@.str.4147 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4148 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4149 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4150 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4151 = private unnamed_addr constant [3 x i8] c"==\00" -@.str.4152 = private unnamed_addr constant [3 x i8] c"!=\00" -@.str.4153 = private unnamed_addr constant [2 x i8] c"<\00" -@.str.4154 = private unnamed_addr constant [3 x i8] c"<=\00" -@.str.4155 = private unnamed_addr constant [2 x i8] c">\00" -@.str.4156 = private unnamed_addr constant [3 x i8] c">=\00" -@.str.4157 = private unnamed_addr constant [3 x i8] c"eq\00" -@.str.4158 = private unnamed_addr constant [3 x i8] c"ne\00" -@.str.4159 = private unnamed_addr constant [4 x i8] c"ult\00" -@.str.4160 = private unnamed_addr constant [4 x i8] c"ule\00" -@.str.4161 = private unnamed_addr constant [4 x i8] c"ugt\00" -@.str.4162 = private unnamed_addr constant [4 x i8] c"uge\00" -@.str.4163 = private unnamed_addr constant [3 x i8] c"eq\00" -@.str.4164 = private unnamed_addr constant [3 x i8] c"ne\00" -@.str.4165 = private unnamed_addr constant [4 x i8] c"slt\00" -@.str.4166 = private unnamed_addr constant [4 x i8] c"sle\00" -@.str.4167 = private unnamed_addr constant [4 x i8] c"sgt\00" -@.str.4168 = private unnamed_addr constant [4 x i8] c"sge\00" -@.str.4169 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4170 = private unnamed_addr constant [3 x i8] c"&&\00" -@.str.4171 = private unnamed_addr constant [3 x i8] c"||\00" -@.str.4172 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4173 = private unnamed_addr constant [11 x i8] c"logic.from\00" -@.str.4174 = private unnamed_addr constant [10 x i8] c"logic.rhs\00" -@.str.4175 = private unnamed_addr constant [10 x i8] c"logic.end\00" -@.str.4176 = private unnamed_addr constant [3 x i8] c"&&\00" -@.str.4177 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4178 = private unnamed_addr constant [11 x i8] c"logic.rend\00" -@.str.4179 = private unnamed_addr constant [5 x i8] c"true\00" -@.str.4180 = private unnamed_addr constant [3 x i8] c"&&\00" -@.str.4181 = private unnamed_addr constant [6 x i8] c"false\00" -@.str.4182 = private unnamed_addr constant [10 x i8] c"phi i1 [ \00" -@.str.4183 = private unnamed_addr constant [4 x i8] c", %\00" -@.str.4184 = private unnamed_addr constant [7 x i8] c" ], [ \00" -@.str.4185 = private unnamed_addr constant [4 x i8] c", %\00" -@.str.4186 = private unnamed_addr constant [3 x i8] c" ]\00" -@.str.4187 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4188 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4189 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4190 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.4078 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4079 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4080 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" +@.str.4081 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4082 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4083 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4084 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4085 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4086 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" +@.str.4087 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4088 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4089 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4090 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4091 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4092 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4093 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4094 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" +@.str.4095 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4096 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4097 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4098 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4099 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4100 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" +@.str.4101 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4102 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4103 = private unnamed_addr constant [1 x i8] c"\00" +@.str.4104 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4105 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" +@.str.4106 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4107 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4108 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4109 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4110 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4111 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" +@.str.4112 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4113 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4114 = private unnamed_addr constant [1 x i8] c"\00" +@.str.4115 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4116 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" +@.str.4117 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4118 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4119 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4120 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4121 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4122 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4123 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.4124 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4125 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" +@.str.4126 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4127 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4128 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.4129 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.4130 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4131 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" +@.str.4132 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4133 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4134 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.4135 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4136 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" +@.str.4137 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4138 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4139 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.4140 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.4141 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4142 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" +@.str.4143 = private unnamed_addr constant [2 x i8] c"+\00" +@.str.4144 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4145 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4146 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.4147 = private unnamed_addr constant [33 x i8] c"call void @finch_str_concat(ptr \00" +@.str.4148 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4149 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4150 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4151 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.4152 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4153 = private unnamed_addr constant [2 x i8] c"+\00" +@.str.4154 = private unnamed_addr constant [2 x i8] c"-\00" +@.str.4155 = private unnamed_addr constant [2 x i8] c"*\00" +@.str.4156 = private unnamed_addr constant [2 x i8] c"/\00" +@.str.4157 = private unnamed_addr constant [2 x i8] c"%\00" +@.str.4158 = private unnamed_addr constant [2 x i8] c"&\00" +@.str.4159 = private unnamed_addr constant [2 x i8] c"|\00" +@.str.4160 = private unnamed_addr constant [2 x i8] c"^\00" +@.str.4161 = private unnamed_addr constant [3 x i8] c"<<\00" +@.str.4162 = private unnamed_addr constant [3 x i8] c">>\00" +@.str.4163 = private unnamed_addr constant [4 x i8] c"add\00" +@.str.4164 = private unnamed_addr constant [4 x i8] c"sub\00" +@.str.4165 = private unnamed_addr constant [4 x i8] c"mul\00" +@.str.4166 = private unnamed_addr constant [5 x i8] c"sdiv\00" +@.str.4167 = private unnamed_addr constant [5 x i8] c"srem\00" +@.str.4168 = private unnamed_addr constant [4 x i8] c"and\00" +@.str.4169 = private unnamed_addr constant [3 x i8] c"or\00" +@.str.4170 = private unnamed_addr constant [4 x i8] c"xor\00" +@.str.4171 = private unnamed_addr constant [4 x i8] c"shl\00" +@.str.4172 = private unnamed_addr constant [5 x i8] c"ashr\00" +@.str.4173 = private unnamed_addr constant [4 x i8] c"add\00" +@.str.4174 = private unnamed_addr constant [4 x i8] c"sub\00" +@.str.4175 = private unnamed_addr constant [4 x i8] c"mul\00" +@.str.4176 = private unnamed_addr constant [5 x i8] c"udiv\00" +@.str.4177 = private unnamed_addr constant [5 x i8] c"urem\00" +@.str.4178 = private unnamed_addr constant [4 x i8] c"and\00" +@.str.4179 = private unnamed_addr constant [3 x i8] c"or\00" +@.str.4180 = private unnamed_addr constant [4 x i8] c"xor\00" +@.str.4181 = private unnamed_addr constant [4 x i8] c"shl\00" +@.str.4182 = private unnamed_addr constant [5 x i8] c"lshr\00" +@.str.4183 = private unnamed_addr constant [2 x i8] c"/\00" +@.str.4184 = private unnamed_addr constant [2 x i8] c"%\00" +@.str.4185 = private unnamed_addr constant [2 x i8] c"0\00" +@.str.4186 = private unnamed_addr constant [17 x i8] c"division by zero\00" +@.str.4187 = private unnamed_addr constant [9 x i8] c"icmp eq \00" +@.str.4188 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4189 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.4190 = private unnamed_addr constant [17 x i8] c"division by zero\00" @.str.4191 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4192 = private unnamed_addr constant [3 x i8] c"==\00" -@.str.4193 = private unnamed_addr constant [3 x i8] c"!=\00" -@.str.4194 = private unnamed_addr constant [2 x i8] c"<\00" -@.str.4195 = private unnamed_addr constant [3 x i8] c"<=\00" -@.str.4196 = private unnamed_addr constant [2 x i8] c">\00" -@.str.4197 = private unnamed_addr constant [3 x i8] c">=\00" -@.str.4198 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.4199 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.4200 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4201 = private unnamed_addr constant [48 x i8] c"an empty [] needs a type, like: []int nums = []\00" -@.str.4202 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4203 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.4204 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.4205 = private unnamed_addr constant [28 x i8] c"every element of this array\00" -@.str.4206 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4207 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.4208 = private unnamed_addr constant [9 x i8] c"mul i64 \00" -@.str.4209 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4210 = private unnamed_addr constant [27 x i8] c"call ptr @finch_alloc(i64 \00" -@.str.4211 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4212 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.4213 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4214 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.4215 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4216 = private unnamed_addr constant [42 x i8] c"insertvalue { ptr, i64, i64 } undef, ptr \00" -@.str.4217 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.4218 = private unnamed_addr constant [31 x i8] c"insertvalue { ptr, i64, i64 } \00" -@.str.4219 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.4220 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str.4221 = private unnamed_addr constant [31 x i8] c"insertvalue { ptr, i64, i64 } \00" -@.str.4222 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.4223 = private unnamed_addr constant [4 x i8] c", 2\00" -@.str.4224 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.4225 = private unnamed_addr constant [29 x i8] c"there is no variable named '\00" -@.str.4226 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.4227 = private unnamed_addr constant [61 x i8] c"this is a temporary value, it can't be changed or pointed to\00" -@.str.4228 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.4229 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4230 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" -@.str.4231 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4232 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" -@.str.4233 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4234 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4235 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.4236 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4237 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" -@.str.4238 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4239 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" -@.str.4240 = private unnamed_addr constant [8 x i8] c"fprintf\00" -@.str.4241 = private unnamed_addr constant [6 x i8] c"stdin\00" -@.str.4242 = private unnamed_addr constant [7 x i8] c"stdout\00" -@.str.4243 = private unnamed_addr constant [7 x i8] c"stderr\00" -@.str.4244 = private unnamed_addr constant [2 x i8] c"2\00" -@.str.4245 = private unnamed_addr constant [6 x i8] c"stdin\00" -@.str.4246 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.4247 = private unnamed_addr constant [7 x i8] c"stdout\00" -@.str.4248 = private unnamed_addr constant [2 x i8] c"1\00" -@.str.4249 = private unnamed_addr constant [32 x i8] c"call ptr @finch_std_stream(i32 \00" -@.str.4250 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4251 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4252 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4253 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" -@.str.4254 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4255 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" -@.str.4256 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4192 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4193 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4194 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4195 = private unnamed_addr constant [2 x i8] c"+\00" +@.str.4196 = private unnamed_addr constant [2 x i8] c"-\00" +@.str.4197 = private unnamed_addr constant [2 x i8] c"*\00" +@.str.4198 = private unnamed_addr constant [2 x i8] c"/\00" +@.str.4199 = private unnamed_addr constant [2 x i8] c"%\00" +@.str.4200 = private unnamed_addr constant [5 x i8] c"fadd\00" +@.str.4201 = private unnamed_addr constant [5 x i8] c"fsub\00" +@.str.4202 = private unnamed_addr constant [5 x i8] c"fmul\00" +@.str.4203 = private unnamed_addr constant [5 x i8] c"fdiv\00" +@.str.4204 = private unnamed_addr constant [5 x i8] c"frem\00" +@.str.4205 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4206 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4207 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4208 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4209 = private unnamed_addr constant [3 x i8] c"==\00" +@.str.4210 = private unnamed_addr constant [3 x i8] c"!=\00" +@.str.4211 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4212 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4213 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.4214 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.4215 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4216 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4217 = private unnamed_addr constant [60 x i8] c"a str is never null; to check for empty text use s.len == 0\00" +@.str.4218 = private unnamed_addr constant [3 x i8] c"eq\00" +@.str.4219 = private unnamed_addr constant [3 x i8] c"!=\00" +@.str.4220 = private unnamed_addr constant [3 x i8] c"ne\00" +@.str.4221 = private unnamed_addr constant [6 x i8] c"icmp \00" +@.str.4222 = private unnamed_addr constant [6 x i8] c" ptr \00" +@.str.4223 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4224 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4225 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4226 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4227 = private unnamed_addr constant [28 x i8] c"call i32 @finch_str_eq(ptr \00" +@.str.4228 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4229 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4230 = private unnamed_addr constant [3 x i8] c"ne\00" +@.str.4231 = private unnamed_addr constant [3 x i8] c"!=\00" +@.str.4232 = private unnamed_addr constant [3 x i8] c"eq\00" +@.str.4233 = private unnamed_addr constant [6 x i8] c"icmp \00" +@.str.4234 = private unnamed_addr constant [6 x i8] c" i32 \00" +@.str.4235 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.4236 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4237 = private unnamed_addr constant [29 x i8] c"call i64 @finch_str_cmp(ptr \00" +@.str.4238 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4239 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4240 = private unnamed_addr constant [6 x i8] c"icmp \00" +@.str.4241 = private unnamed_addr constant [6 x i8] c" i64 \00" +@.str.4242 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.4243 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4244 = private unnamed_addr constant [3 x i8] c"==\00" +@.str.4245 = private unnamed_addr constant [3 x i8] c"!=\00" +@.str.4246 = private unnamed_addr constant [2 x i8] c"<\00" +@.str.4247 = private unnamed_addr constant [3 x i8] c"<=\00" +@.str.4248 = private unnamed_addr constant [2 x i8] c">\00" +@.str.4249 = private unnamed_addr constant [3 x i8] c">=\00" +@.str.4250 = private unnamed_addr constant [4 x i8] c"oeq\00" +@.str.4251 = private unnamed_addr constant [4 x i8] c"une\00" +@.str.4252 = private unnamed_addr constant [4 x i8] c"olt\00" +@.str.4253 = private unnamed_addr constant [4 x i8] c"ole\00" +@.str.4254 = private unnamed_addr constant [4 x i8] c"ogt\00" +@.str.4255 = private unnamed_addr constant [4 x i8] c"oge\00" +@.str.4256 = private unnamed_addr constant [6 x i8] c"fcmp \00" @.str.4257 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4258 = private unnamed_addr constant [30 x i8] c"used .cdone on a null pointer\00" -@.str.4259 = private unnamed_addr constant [3 x i8] c"g:\00" -@.str.4260 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4261 = private unnamed_addr constant [30 x i8] c"used .cdone on a null pointer\00" -@.str.4262 = private unnamed_addr constant [3 x i8] c"g:\00" -@.str.4263 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4264 = private unnamed_addr constant [29 x i8] c"used .head on a null pointer\00" -@.str.4265 = private unnamed_addr constant [2 x i8] c"@\00" -@.str.4266 = private unnamed_addr constant [20 x i8] c" = external global \00" -@.str.4267 = private unnamed_addr constant [2 x i8] c"@\00" -@.str.4268 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.4269 = private unnamed_addr constant [44 x i8] c"' is a module; use something from it, like \00" -@.str.4270 = private unnamed_addr constant [11 x i8] c".name(...)\00" -@.str.4271 = private unnamed_addr constant [29 x i8] c"there is no variable named '\00" -@.str.4272 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.4273 = private unnamed_addr constant [10 x i8] c"```finch\0A\00" -@.str.4274 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4275 = private unnamed_addr constant [5 x i8] c"\0A```\00" -@.str.4276 = private unnamed_addr constant [7 x i8] c"member\00" -@.str.4277 = private unnamed_addr constant [6 x i8] c"index\00" -@.str.4278 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4279 = private unnamed_addr constant [2 x i8] c".\00" -@.str.4280 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.4281 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4282 = private unnamed_addr constant [2 x i8] c".\00" -@.str.4283 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4284 = private unnamed_addr constant [2 x i8] c"e\00" -@.str.4285 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4286 = private unnamed_addr constant [2 x i8] c"E\00" -@.str.4287 = private unnamed_addr constant [3 x i8] c".0\00" -@.str.4288 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4289 = private unnamed_addr constant [3 x i8] c".0\00" -@.str.4290 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4291 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.4292 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4293 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.4294 = private unnamed_addr constant [7 x i8] c"member\00" -@.str.4295 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4296 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.4258 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4259 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4260 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4261 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4262 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.4263 = private unnamed_addr constant [116 x i8] c"enums can only be compared with == and != (to go through them in order, give the variants numbers and use int(...))\00" +@.str.4264 = private unnamed_addr constant [3 x i8] c"eq\00" +@.str.4265 = private unnamed_addr constant [3 x i8] c"!=\00" +@.str.4266 = private unnamed_addr constant [3 x i8] c"ne\00" +@.str.4267 = private unnamed_addr constant [6 x i8] c"icmp \00" +@.str.4268 = private unnamed_addr constant [6 x i8] c" i32 \00" +@.str.4269 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4270 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4271 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4272 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.4273 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4274 = private unnamed_addr constant [6 x i8] c"icmp \00" +@.str.4275 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4276 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4277 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4278 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4279 = private unnamed_addr constant [3 x i8] c"==\00" +@.str.4280 = private unnamed_addr constant [3 x i8] c"!=\00" +@.str.4281 = private unnamed_addr constant [2 x i8] c"<\00" +@.str.4282 = private unnamed_addr constant [3 x i8] c"<=\00" +@.str.4283 = private unnamed_addr constant [2 x i8] c">\00" +@.str.4284 = private unnamed_addr constant [3 x i8] c">=\00" +@.str.4285 = private unnamed_addr constant [3 x i8] c"eq\00" +@.str.4286 = private unnamed_addr constant [3 x i8] c"ne\00" +@.str.4287 = private unnamed_addr constant [4 x i8] c"ult\00" +@.str.4288 = private unnamed_addr constant [4 x i8] c"ule\00" +@.str.4289 = private unnamed_addr constant [4 x i8] c"ugt\00" +@.str.4290 = private unnamed_addr constant [4 x i8] c"uge\00" +@.str.4291 = private unnamed_addr constant [3 x i8] c"eq\00" +@.str.4292 = private unnamed_addr constant [3 x i8] c"ne\00" +@.str.4293 = private unnamed_addr constant [4 x i8] c"slt\00" +@.str.4294 = private unnamed_addr constant [4 x i8] c"sle\00" +@.str.4295 = private unnamed_addr constant [4 x i8] c"sgt\00" +@.str.4296 = private unnamed_addr constant [4 x i8] c"sge\00" @.str.4297 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4298 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4299 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4298 = private unnamed_addr constant [3 x i8] c"&&\00" +@.str.4299 = private unnamed_addr constant [3 x i8] c"||\00" @.str.4300 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4301 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" -@.str.4302 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4303 = private unnamed_addr constant [10 x i8] c"the enum \00" -@.str.4304 = private unnamed_addr constant [18 x i8] c" has no variant '\00" -@.str.4305 = private unnamed_addr constant [12 x i8] c"' (it has: \00" -@.str.4306 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4307 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4308 = private unnamed_addr constant [10 x i8] c"```finch\0A\00" -@.str.4309 = private unnamed_addr constant [2 x i8] c".\00" -@.str.4310 = private unnamed_addr constant [4 x i8] c" = \00" -@.str.4311 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4312 = private unnamed_addr constant [5 x i8] c"\0A```\00" -@.str.4313 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4314 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4315 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.4301 = private unnamed_addr constant [11 x i8] c"logic.from\00" +@.str.4302 = private unnamed_addr constant [10 x i8] c"logic.rhs\00" +@.str.4303 = private unnamed_addr constant [10 x i8] c"logic.end\00" +@.str.4304 = private unnamed_addr constant [3 x i8] c"&&\00" +@.str.4305 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4306 = private unnamed_addr constant [11 x i8] c"logic.rend\00" +@.str.4307 = private unnamed_addr constant [5 x i8] c"true\00" +@.str.4308 = private unnamed_addr constant [3 x i8] c"&&\00" +@.str.4309 = private unnamed_addr constant [6 x i8] c"false\00" +@.str.4310 = private unnamed_addr constant [10 x i8] c"phi i1 [ \00" +@.str.4311 = private unnamed_addr constant [4 x i8] c", %\00" +@.str.4312 = private unnamed_addr constant [7 x i8] c" ], [ \00" +@.str.4313 = private unnamed_addr constant [4 x i8] c", %\00" +@.str.4314 = private unnamed_addr constant [3 x i8] c" ]\00" +@.str.4315 = private unnamed_addr constant [5 x i8] c"bool\00" @.str.4316 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4317 = private unnamed_addr constant [38 x i8] c"a variant of an enum can't be changed\00" -@.str.4318 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4319 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4320 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4321 = private unnamed_addr constant [58 x i8] c"this ptr has no type, so Finch doesn't know what's inside\00" -@.str.4322 = private unnamed_addr constant [13 x i8] c"icmp eq ptr \00" -@.str.4323 = private unnamed_addr constant [7 x i8] c", null\00" -@.str.4324 = private unnamed_addr constant [7 x i8] c"used .\00" -@.str.4325 = private unnamed_addr constant [19 x i8] c" on a null pointer\00" -@.str.4326 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4327 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.4317 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4318 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.4319 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4320 = private unnamed_addr constant [3 x i8] c"==\00" +@.str.4321 = private unnamed_addr constant [3 x i8] c"!=\00" +@.str.4322 = private unnamed_addr constant [2 x i8] c"<\00" +@.str.4323 = private unnamed_addr constant [3 x i8] c"<=\00" +@.str.4324 = private unnamed_addr constant [2 x i8] c">\00" +@.str.4325 = private unnamed_addr constant [3 x i8] c">=\00" +@.str.4326 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.4327 = private unnamed_addr constant [6 x i8] c"array\00" @.str.4328 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4329 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.4329 = private unnamed_addr constant [48 x i8] c"an empty [] needs a type, like: []int nums = []\00" @.str.4330 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4331 = private unnamed_addr constant [6 x i8] c"value\00" -@.str.4332 = private unnamed_addr constant [6 x i8] c"value\00" -@.str.4333 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.4334 = private unnamed_addr constant [3 x i8] c"a \00" -@.str.4335 = private unnamed_addr constant [44 x i8] c" only has '.value' (the thing it points to)\00" -@.str.4336 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str.4337 = private unnamed_addr constant [2 x i8] c".\00" -@.str.4338 = private unnamed_addr constant [27 x i8] c" can't be changed directly\00" -@.str.4339 = private unnamed_addr constant [4 x i8] c"len\00" -@.str.4340 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.4341 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4342 = private unnamed_addr constant [35 x i8] c"an array has .len and .ptr, not '.\00" -@.str.4343 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.4344 = private unnamed_addr constant [49 x i8] c".ptr of a temporary value would point to nothing\00" -@.str.4345 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4346 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.4347 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4348 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4349 = private unnamed_addr constant [31 x i8] c".ptr can't be changed directly\00" -@.str.4350 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4351 = private unnamed_addr constant [2 x i8] c"%\00" -@.str.4352 = private unnamed_addr constant [54 x i8] c".ptr of a temporary value would point to freed memory\00" -@.str.4353 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4354 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.4355 = private unnamed_addr constant [32 x i8] c"extractvalue { ptr, i64, i64 } \00" -@.str.4356 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.4331 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.4332 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.4333 = private unnamed_addr constant [28 x i8] c"every element of this array\00" +@.str.4334 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4335 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.4336 = private unnamed_addr constant [9 x i8] c"mul i64 \00" +@.str.4337 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4338 = private unnamed_addr constant [27 x i8] c"call ptr @finch_alloc(i64 \00" +@.str.4339 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4340 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.4341 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4342 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.4343 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4344 = private unnamed_addr constant [42 x i8] c"insertvalue { ptr, i64, i64 } undef, ptr \00" +@.str.4345 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.4346 = private unnamed_addr constant [31 x i8] c"insertvalue { ptr, i64, i64 } \00" +@.str.4347 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.4348 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.4349 = private unnamed_addr constant [31 x i8] c"insertvalue { ptr, i64, i64 } \00" +@.str.4350 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.4351 = private unnamed_addr constant [4 x i8] c", 2\00" +@.str.4352 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.4353 = private unnamed_addr constant [29 x i8] c"there is no variable named '\00" +@.str.4354 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.4355 = private unnamed_addr constant [61 x i8] c"this is a temporary value, it can't be changed or pointed to\00" +@.str.4356 = private unnamed_addr constant [4 x i8] c"var\00" @.str.4357 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4358 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.4359 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4360 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.4361 = private unnamed_addr constant [4 x i8] c"len\00" -@.str.4362 = private unnamed_addr constant [38 x i8] c"an array, map or str has .len, not '.\00" -@.str.4363 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.4364 = private unnamed_addr constant [49 x i8] c".len can't be changed directly (use push or pop)\00" -@.str.4365 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.4366 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4367 = private unnamed_addr constant [15 x i8] c", i32 0, i32 1\00" -@.str.4368 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.4369 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.4370 = private unnamed_addr constant [14 x i8] c"extractvalue \00" -@.str.4371 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4372 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str.4373 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.4374 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.4375 = private unnamed_addr constant [22 x i8] c" has no fields (no '.\00" -@.str.4376 = private unnamed_addr constant [3 x i8] c"')\00" -@.str.4377 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4378 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.4379 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4380 = private unnamed_addr constant [12 x i8] c"the struct \00" -@.str.4381 = private unnamed_addr constant [16 x i8] c" has no field '\00" -@.str.4382 = private unnamed_addr constant [12 x i8] c"' (it has: \00" -@.str.4383 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4384 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4358 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" +@.str.4359 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4360 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" +@.str.4361 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4362 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.4363 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.4364 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4365 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" +@.str.4366 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4367 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" +@.str.4368 = private unnamed_addr constant [8 x i8] c"fprintf\00" +@.str.4369 = private unnamed_addr constant [6 x i8] c"stdin\00" +@.str.4370 = private unnamed_addr constant [7 x i8] c"stdout\00" +@.str.4371 = private unnamed_addr constant [7 x i8] c"stderr\00" +@.str.4372 = private unnamed_addr constant [2 x i8] c"2\00" +@.str.4373 = private unnamed_addr constant [6 x i8] c"stdin\00" +@.str.4374 = private unnamed_addr constant [2 x i8] c"0\00" +@.str.4375 = private unnamed_addr constant [7 x i8] c"stdout\00" +@.str.4376 = private unnamed_addr constant [2 x i8] c"1\00" +@.str.4377 = private unnamed_addr constant [32 x i8] c"call ptr @finch_std_stream(i32 \00" +@.str.4378 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4379 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4380 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4381 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" +@.str.4382 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4383 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" +@.str.4384 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.4385 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4386 = private unnamed_addr constant [10 x i8] c"```finch\0A\00" -@.str.4387 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4388 = private unnamed_addr constant [5 x i8] c"\0A```\00" -@.str.4389 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4390 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.4391 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4392 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" -@.str.4393 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4394 = private unnamed_addr constant [14 x i8] c"extractvalue \00" -@.str.4395 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4396 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4397 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4398 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4399 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4400 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.4401 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.4402 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4403 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.4404 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4405 = private unnamed_addr constant [9 x i8] c"an index\00" -@.str.4406 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str.4407 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4408 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.4409 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4410 = private unnamed_addr constant [14 x i8] c", i64 0, i64 \00" +@.str.4386 = private unnamed_addr constant [30 x i8] c"used .cdone on a null pointer\00" +@.str.4387 = private unnamed_addr constant [3 x i8] c"g:\00" +@.str.4388 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4389 = private unnamed_addr constant [30 x i8] c"used .cdone on a null pointer\00" +@.str.4390 = private unnamed_addr constant [3 x i8] c"g:\00" +@.str.4391 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4392 = private unnamed_addr constant [29 x i8] c"used .head on a null pointer\00" +@.str.4393 = private unnamed_addr constant [2 x i8] c"@\00" +@.str.4394 = private unnamed_addr constant [20 x i8] c" = external global \00" +@.str.4395 = private unnamed_addr constant [2 x i8] c"@\00" +@.str.4396 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.4397 = private unnamed_addr constant [44 x i8] c"' is a module; use something from it, like \00" +@.str.4398 = private unnamed_addr constant [11 x i8] c".name(...)\00" +@.str.4399 = private unnamed_addr constant [29 x i8] c"there is no variable named '\00" +@.str.4400 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.4401 = private unnamed_addr constant [10 x i8] c"```finch\0A\00" +@.str.4402 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4403 = private unnamed_addr constant [5 x i8] c"\0A```\00" +@.str.4404 = private unnamed_addr constant [7 x i8] c"member\00" +@.str.4405 = private unnamed_addr constant [6 x i8] c"index\00" +@.str.4406 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4407 = private unnamed_addr constant [2 x i8] c".\00" +@.str.4408 = private unnamed_addr constant [2 x i8] c"0\00" +@.str.4409 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4410 = private unnamed_addr constant [2 x i8] c".\00" @.str.4411 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4412 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4413 = private unnamed_addr constant [58 x i8] c"this ptr has no type, so Finch doesn't know what's inside\00" -@.str.4414 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4415 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4416 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.4417 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4418 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.4419 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.4420 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4421 = private unnamed_addr constant [47 x i8] c"[ ] works on arrays, str and pointers, not on \00" -@.str.4422 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.4423 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.4424 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4425 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4426 = private unnamed_addr constant [45 x i8] c"this is a temporary str, it can't be changed\00" -@.str.4427 = private unnamed_addr constant [30 x i8] c"call void @finch_str_own(ptr \00" -@.str.4428 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4429 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.4430 = private unnamed_addr constant [32 x i8] c"extractvalue { ptr, i64, i64 } \00" -@.str.4431 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str.4432 = private unnamed_addr constant [32 x i8] c"extractvalue { ptr, i64, i64 } \00" -@.str.4433 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.4434 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.4435 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4436 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.4437 = private unnamed_addr constant [18 x i8] c"named arguments (\00" -@.str.4438 = private unnamed_addr constant [37 x i8] c": ...) are only for creating structs\00" -@.str.4439 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.4440 = private unnamed_addr constant [9 x i8] c"' takes \00" -@.str.4441 = private unnamed_addr constant [23 x i8] c" argument(s), but got \00" -@.str.4442 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4443 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.4444 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.4445 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.4446 = private unnamed_addr constant [4 x i8] c"f64\00" -@.str.4447 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4448 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.4449 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4450 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.4451 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4452 = private unnamed_addr constant [3 x i8] c"i8\00" -@.str.4453 = private unnamed_addr constant [4 x i8] c"i16\00" -@.str.4454 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.4455 = private unnamed_addr constant [3 x i8] c"u8\00" -@.str.4456 = private unnamed_addr constant [4 x i8] c"u16\00" -@.str.4457 = private unnamed_addr constant [4 x i8] c"u32\00" -@.str.4458 = private unnamed_addr constant [4 x i8] c"u64\00" -@.str.4459 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.4460 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4461 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4462 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4463 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4464 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4465 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" -@.str.4466 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.4467 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.4468 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.4469 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.4470 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.4471 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.4472 = private unnamed_addr constant [33 x i8] c"call i32 @finch_str_try_int(ptr \00" -@.str.4473 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4474 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4475 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4476 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" -@.str.4477 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.4478 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4479 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" -@.str.4480 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.4412 = private unnamed_addr constant [2 x i8] c"e\00" +@.str.4413 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4414 = private unnamed_addr constant [2 x i8] c"E\00" +@.str.4415 = private unnamed_addr constant [3 x i8] c".0\00" +@.str.4416 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4417 = private unnamed_addr constant [3 x i8] c".0\00" +@.str.4418 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4419 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.4420 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4421 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.4422 = private unnamed_addr constant [7 x i8] c"member\00" +@.str.4423 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4424 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.4425 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4426 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4427 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4428 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.4429 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4430 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.4431 = private unnamed_addr constant [7 x i8] c"member\00" +@.str.4432 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4433 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.4434 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4435 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4436 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4437 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4438 = private unnamed_addr constant [29 x i8] c"used .sums on a null pointer\00" +@.str.4439 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4440 = private unnamed_addr constant [10 x i8] c"the enum \00" +@.str.4441 = private unnamed_addr constant [18 x i8] c" has no variant '\00" +@.str.4442 = private unnamed_addr constant [12 x i8] c"' (it has: \00" +@.str.4443 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4444 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4445 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4446 = private unnamed_addr constant [29 x i8] c"used .sums on a null pointer\00" +@.str.4447 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4448 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4449 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4450 = private unnamed_addr constant [23 x i8] c" holds nothing: write \00" +@.str.4451 = private unnamed_addr constant [2 x i8] c".\00" +@.str.4452 = private unnamed_addr constant [8 x i8] c" holds \00" +@.str.4453 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4454 = private unnamed_addr constant [20 x i8] c" value(s), but got \00" +@.str.4455 = private unnamed_addr constant [3 x i8] c": \00" +@.str.4456 = private unnamed_addr constant [2 x i8] c".\00" +@.str.4457 = private unnamed_addr constant [6 x i8] c"(...)\00" +@.str.4458 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.4459 = private unnamed_addr constant [4 x i8] c"tag\00" +@.str.4460 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4461 = private unnamed_addr constant [2 x i8] c"_\00" +@.str.4462 = private unnamed_addr constant [10 x i8] c"```finch\0A\00" +@.str.4463 = private unnamed_addr constant [2 x i8] c".\00" +@.str.4464 = private unnamed_addr constant [5 x i8] c"\0A```\00" +@.str.4465 = private unnamed_addr constant [1 x i8] c"\00" +@.str.4466 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4467 = private unnamed_addr constant [29 x i8] c"used .sums on a null pointer\00" +@.str.4468 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4469 = private unnamed_addr constant [1 x i8] c"\00" +@.str.4470 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.4471 = private unnamed_addr constant [5 x i8] c"call\00" +@.str.4472 = private unnamed_addr constant [7 x i8] c"member\00" +@.str.4473 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4474 = private unnamed_addr constant [7 x i8] c"method\00" +@.str.4475 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4476 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4477 = private unnamed_addr constant [34 x i8] c"this pattern is not a variant of \00" +@.str.4478 = private unnamed_addr constant [11 x i8] c" (it has: \00" +@.str.4479 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4480 = private unnamed_addr constant [2 x i8] c")\00" @.str.4481 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4482 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" -@.str.4483 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.4484 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.4485 = private unnamed_addr constant [7 x i8] c"double\00" -@.str.4486 = private unnamed_addr constant [7 x i8] c"double\00" -@.str.4487 = private unnamed_addr constant [4 x i8] c"0.0\00" -@.str.4488 = private unnamed_addr constant [35 x i8] c"call i32 @finch_str_try_float(ptr \00" -@.str.4489 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4490 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4491 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4492 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" -@.str.4493 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.4494 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4495 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" -@.str.4496 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.4497 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4498 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" -@.str.4499 = private unnamed_addr constant [7 x i8] c"double\00" -@.str.4500 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4501 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4502 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4503 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.4482 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4483 = private unnamed_addr constant [28 x i8] c" holds nothing: write just \00" +@.str.4484 = private unnamed_addr constant [8 x i8] c" holds \00" +@.str.4485 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4486 = private unnamed_addr constant [28 x i8] c" value(s): name them, like \00" +@.str.4487 = private unnamed_addr constant [28 x i8] c"(x), or use _ to ignore one\00" +@.str.4488 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.4489 = private unnamed_addr constant [51 x i8] c"write a name to hold the value (or _ to ignore it)\00" +@.str.4490 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4491 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" +@.str.4492 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4493 = private unnamed_addr constant [10 x i8] c"the enum \00" +@.str.4494 = private unnamed_addr constant [18 x i8] c" has no variant '\00" +@.str.4495 = private unnamed_addr constant [12 x i8] c"' (it has: \00" +@.str.4496 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4497 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4498 = private unnamed_addr constant [10 x i8] c"```finch\0A\00" +@.str.4499 = private unnamed_addr constant [2 x i8] c".\00" +@.str.4500 = private unnamed_addr constant [4 x i8] c" = \00" +@.str.4501 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4502 = private unnamed_addr constant [5 x i8] c"\0A```\00" +@.str.4503 = private unnamed_addr constant [1 x i8] c"\00" @.str.4504 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4505 = private unnamed_addr constant [32 x i8] c"call i64 @finch_str_to_int(ptr \00" -@.str.4506 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4507 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.4508 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4509 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.4510 = private unnamed_addr constant [37 x i8] c"call double @finch_str_to_float(ptr \00" -@.str.4511 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4512 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.4513 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4514 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4515 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.4516 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.4517 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.4518 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.4519 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4520 = private unnamed_addr constant [9 x i8] c"zext i1 \00" -@.str.4521 = private unnamed_addr constant [5 x i8] c" to \00" -@.str.4522 = private unnamed_addr constant [7 x i8] c"fptoui\00" -@.str.4523 = private unnamed_addr constant [7 x i8] c"fptosi\00" -@.str.4524 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4525 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4526 = private unnamed_addr constant [5 x i8] c" to \00" -@.str.4527 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4528 = private unnamed_addr constant [9 x i8] c"icmp ne \00" -@.str.4529 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4530 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.4531 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4532 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4533 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.4534 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4535 = private unnamed_addr constant [14 x i8] c"inttoptr i64 \00" -@.str.4536 = private unnamed_addr constant [4 x i8] c"u64\00" -@.str.4537 = private unnamed_addr constant [8 x i8] c" to ptr\00" -@.str.4538 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4539 = private unnamed_addr constant [14 x i8] c"ptrtoint ptr \00" -@.str.4540 = private unnamed_addr constant [5 x i8] c" to \00" -@.str.4541 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4542 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4543 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4544 = private unnamed_addr constant [71 x i8] c"use .ptr to get a str's address (it is only valid while the str lives)\00" -@.str.4545 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4546 = private unnamed_addr constant [12 x i8] c"can't turn \00" -@.str.4547 = private unnamed_addr constant [7 x i8] c" into \00" -@.str.4548 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.4549 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4550 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.4551 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4552 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str.4553 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4554 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4555 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4556 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4557 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.4558 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4559 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.4560 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4561 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.4562 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4563 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4505 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.4506 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4507 = private unnamed_addr constant [38 x i8] c"a variant of an enum can't be changed\00" +@.str.4508 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4509 = private unnamed_addr constant [29 x i8] c"used .sums on a null pointer\00" +@.str.4510 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4511 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4512 = private unnamed_addr constant [8 x i8] c" holds \00" +@.str.4513 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4514 = private unnamed_addr constant [29 x i8] c"used .sums on a null pointer\00" +@.str.4515 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4516 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4517 = private unnamed_addr constant [12 x i8] c" value(s): \00" +@.str.4518 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4519 = private unnamed_addr constant [29 x i8] c"used .sums on a null pointer\00" +@.str.4520 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4521 = private unnamed_addr constant [2 x i8] c".\00" +@.str.4522 = private unnamed_addr constant [6 x i8] c"(...)\00" +@.str.4523 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4524 = private unnamed_addr constant [38 x i8] c"a variant of an enum can't be changed\00" +@.str.4525 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4526 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4527 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4528 = private unnamed_addr constant [58 x i8] c"this ptr has no type, so Finch doesn't know what's inside\00" +@.str.4529 = private unnamed_addr constant [13 x i8] c"icmp eq ptr \00" +@.str.4530 = private unnamed_addr constant [7 x i8] c", null\00" +@.str.4531 = private unnamed_addr constant [7 x i8] c"used .\00" +@.str.4532 = private unnamed_addr constant [19 x i8] c" on a null pointer\00" +@.str.4533 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4534 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.4535 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4536 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.4537 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4538 = private unnamed_addr constant [6 x i8] c"value\00" +@.str.4539 = private unnamed_addr constant [6 x i8] c"value\00" +@.str.4540 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.4541 = private unnamed_addr constant [3 x i8] c"a \00" +@.str.4542 = private unnamed_addr constant [44 x i8] c" only has '.value' (the thing it points to)\00" +@.str.4543 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str.4544 = private unnamed_addr constant [2 x i8] c".\00" +@.str.4545 = private unnamed_addr constant [27 x i8] c" can't be changed directly\00" +@.str.4546 = private unnamed_addr constant [4 x i8] c"len\00" +@.str.4547 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.4548 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4549 = private unnamed_addr constant [35 x i8] c"an array has .len and .ptr, not '.\00" +@.str.4550 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.4551 = private unnamed_addr constant [49 x i8] c".ptr of a temporary value would point to nothing\00" +@.str.4552 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4553 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.4554 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4555 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4556 = private unnamed_addr constant [31 x i8] c".ptr can't be changed directly\00" +@.str.4557 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4558 = private unnamed_addr constant [2 x i8] c"%\00" +@.str.4559 = private unnamed_addr constant [54 x i8] c".ptr of a temporary value would point to freed memory\00" +@.str.4560 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4561 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.4562 = private unnamed_addr constant [32 x i8] c"extractvalue { ptr, i64, i64 } \00" +@.str.4563 = private unnamed_addr constant [4 x i8] c", 0\00" @.str.4564 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4565 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str.4566 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4567 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4568 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4569 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4570 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4571 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4572 = private unnamed_addr constant [7 x i8] c"double\00" -@.str.4573 = private unnamed_addr constant [7 x i8] c"expand\00" -@.str.4574 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.4575 = private unnamed_addr constant [4 x i8] c" x \00" -@.str.4576 = private unnamed_addr constant [2 x i8] c"]\00" -@.str.4577 = private unnamed_addr constant [3 x i8] c"{ \00" -@.str.4578 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4579 = private unnamed_addr constant [3 x i8] c" }\00" -@.str.4580 = private unnamed_addr constant [9 x i8] c"indirect\00" -@.str.4581 = private unnamed_addr constant [7 x i8] c"expand\00" -@.str.4582 = private unnamed_addr constant [5 x i8] c"i128\00" -@.str.4583 = private unnamed_addr constant [5 x i8] c"i128\00" -@.str.4584 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.4585 = private unnamed_addr constant [2 x i8] c"i\00" -@.str.4586 = private unnamed_addr constant [10 x i8] c"[2 x i64]\00" -@.str.4587 = private unnamed_addr constant [10 x i8] c"[2 x i64]\00" -@.str.4588 = private unnamed_addr constant [7 x i8] c"direct\00" -@.str.4589 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.4590 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4591 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.4565 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.4566 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4567 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.4568 = private unnamed_addr constant [4 x i8] c"len\00" +@.str.4569 = private unnamed_addr constant [38 x i8] c"an array, map or str has .len, not '.\00" +@.str.4570 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.4571 = private unnamed_addr constant [49 x i8] c".len can't be changed directly (use push or pop)\00" +@.str.4572 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.4573 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4574 = private unnamed_addr constant [15 x i8] c", i32 0, i32 1\00" +@.str.4575 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.4576 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.4577 = private unnamed_addr constant [14 x i8] c"extractvalue \00" +@.str.4578 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4579 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.4580 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.4581 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.4582 = private unnamed_addr constant [22 x i8] c" has no fields (no '.\00" +@.str.4583 = private unnamed_addr constant [3 x i8] c"')\00" +@.str.4584 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4585 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.4586 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4587 = private unnamed_addr constant [12 x i8] c"the struct \00" +@.str.4588 = private unnamed_addr constant [16 x i8] c" has no field '\00" +@.str.4589 = private unnamed_addr constant [12 x i8] c"' (it has: \00" +@.str.4590 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4591 = private unnamed_addr constant [2 x i8] c")\00" @.str.4592 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4593 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4594 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" -@.str.4595 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4596 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" -@.str.4597 = private unnamed_addr constant [7 x i8] c"expand\00" -@.str.4598 = private unnamed_addr constant [2 x i8] c"i\00" -@.str.4599 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4600 = private unnamed_addr constant [9 x i8] c"indirect\00" -@.str.4601 = private unnamed_addr constant [7 x i8] c"memory\00" -@.str.4602 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4603 = private unnamed_addr constant [17 x i8] c"division by zero\00" -@.str.4604 = private unnamed_addr constant [7 x i8] c"memory\00" +@.str.4593 = private unnamed_addr constant [10 x i8] c"```finch\0A\00" +@.str.4594 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4595 = private unnamed_addr constant [5 x i8] c"\0A```\00" +@.str.4596 = private unnamed_addr constant [1 x i8] c"\00" +@.str.4597 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.4598 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4599 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" +@.str.4600 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4601 = private unnamed_addr constant [14 x i8] c"extractvalue \00" +@.str.4602 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4603 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4604 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.4605 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.4606 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4607 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4608 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4609 = private unnamed_addr constant [7 x i8] c"expand\00" -@.str.4610 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4607 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.4608 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.4609 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4610 = private unnamed_addr constant [4 x i8] c"int\00" @.str.4611 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4612 = private unnamed_addr constant [7 x i8] c"double\00" -@.str.4613 = private unnamed_addr constant [12 x i8] c"<2 x float>\00" -@.str.4614 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4615 = private unnamed_addr constant [2 x i8] c"i\00" -@.str.4616 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4617 = private unnamed_addr constant [3 x i8] c"{ \00" -@.str.4618 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4619 = private unnamed_addr constant [3 x i8] c" }\00" -@.str.4620 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.4621 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.4622 = private unnamed_addr constant [9 x i8] c"indirect\00" -@.str.4623 = private unnamed_addr constant [7 x i8] c"memory\00" -@.str.4624 = private unnamed_addr constant [7 x i8] c"memory\00" -@.str.4625 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.4626 = private unnamed_addr constant [7 x i8] c"expand\00" -@.str.4627 = private unnamed_addr constant [7 x i8] c"expand\00" -@.str.4628 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4629 = private unnamed_addr constant [2 x i8] c"i\00" -@.str.4630 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4631 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" -@.str.4632 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4633 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" -@.str.4634 = private unnamed_addr constant [7 x i8] c"memory\00" -@.str.4635 = private unnamed_addr constant [7 x i8] c"direct\00" -@.str.4636 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.4637 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4638 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.4639 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4640 = private unnamed_addr constant [17 x i8] c"the C function '\00" -@.str.4641 = private unnamed_addr constant [3 x i8] c"' \00" -@.str.4642 = private unnamed_addr constant [19 x i8] c" the Finch struct \00" -@.str.4643 = private unnamed_addr constant [21 x i8] c", which C can't take\00" -@.str.4644 = private unnamed_addr constant [17 x i8] c"the C function '\00" -@.str.4645 = private unnamed_addr constant [3 x i8] c"' \00" -@.str.4646 = private unnamed_addr constant [13 x i8] c" the struct \00" -@.str.4647 = private unnamed_addr constant [41 x i8] c" by value, which Finch can't do yet: it \00" -@.str.4648 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4649 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.4650 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4651 = private unnamed_addr constant [60 x i8] c"methods can't be exported (export a plain fn that calls it)\00" -@.str.4652 = private unnamed_addr constant [75 x i8] c"an export fn can't fail (C has no errors as values): handle them inside it\00" -@.str.4653 = private unnamed_addr constant [30 x i8] c"an export fn can't be generic\00" -@.str.4654 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4655 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4656 = private unnamed_addr constant [67 x i8] c"an export fn takes numbers, bool, char and pointers only (this is \00" -@.str.4657 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4658 = private unnamed_addr constant [51 x i8] c"; pass text as ptr[char] and make it a str inside)\00" -@.str.4659 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.4660 = private unnamed_addr constant [70 x i8] c"an export fn returns nothing, a number, bool, char or a pointer (not \00" -@.str.4661 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4662 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4663 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.4664 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.4665 = private unnamed_addr constant [39 x i8] c"' is exported twice (from two modules)\00" -@.str.4666 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4667 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4668 = private unnamed_addr constant [14 x i8] c"i8 zeroext %e\00" -@.str.4669 = private unnamed_addr constant [4 x i8] c"i1 \00" -@.str.4670 = private unnamed_addr constant [14 x i8] c"icmp ne i8 %e\00" -@.str.4671 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.4672 = private unnamed_addr constant [4 x i8] c" %e\00" -@.str.4673 = private unnamed_addr constant [4 x i8] c" %e\00" -@.str.4674 = private unnamed_addr constant [6 x i8] c"call \00" -@.str.4675 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4676 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.4677 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4678 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4679 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.4680 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4681 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.4682 = private unnamed_addr constant [9 x i8] c"ret void\00" -@.str.4683 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4684 = private unnamed_addr constant [3 x i8] c"i8\00" -@.str.4685 = private unnamed_addr constant [9 x i8] c" zeroext\00" -@.str.4686 = private unnamed_addr constant [8 x i8] c"ret i8 \00" -@.str.4687 = private unnamed_addr constant [9 x i8] c"zext i1 \00" -@.str.4688 = private unnamed_addr constant [7 x i8] c" to i8\00" -@.str.4689 = private unnamed_addr constant [5 x i8] c"ret \00" -@.str.4690 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4691 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4692 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4693 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" -@.str.4694 = private unnamed_addr constant [11 x i8] c" dllexport\00" -@.str.4695 = private unnamed_addr constant [7 x i8] c"define\00" -@.str.4696 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4697 = private unnamed_addr constant [3 x i8] c" @\00" -@.str.4698 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.4699 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4700 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4612 = private unnamed_addr constant [9 x i8] c"an index\00" +@.str.4613 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str.4614 = private unnamed_addr constant [1 x i8] c"\00" +@.str.4615 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.4616 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4617 = private unnamed_addr constant [14 x i8] c", i64 0, i64 \00" +@.str.4618 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4619 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4620 = private unnamed_addr constant [58 x i8] c"this ptr has no type, so Finch doesn't know what's inside\00" +@.str.4621 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4622 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4623 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.4624 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4625 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.4626 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.4627 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4628 = private unnamed_addr constant [47 x i8] c"[ ] works on arrays, str and pointers, not on \00" +@.str.4629 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.4630 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.4631 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4632 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4633 = private unnamed_addr constant [45 x i8] c"this is a temporary str, it can't be changed\00" +@.str.4634 = private unnamed_addr constant [30 x i8] c"call void @finch_str_own(ptr \00" +@.str.4635 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4636 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.4637 = private unnamed_addr constant [32 x i8] c"extractvalue { ptr, i64, i64 } \00" +@.str.4638 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.4639 = private unnamed_addr constant [32 x i8] c"extractvalue { ptr, i64, i64 } \00" +@.str.4640 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.4641 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.4642 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4643 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.4644 = private unnamed_addr constant [18 x i8] c"named arguments (\00" +@.str.4645 = private unnamed_addr constant [37 x i8] c": ...) are only for creating structs\00" +@.str.4646 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.4647 = private unnamed_addr constant [9 x i8] c"' takes \00" +@.str.4648 = private unnamed_addr constant [23 x i8] c" argument(s), but got \00" +@.str.4649 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4650 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.4651 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.4652 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.4653 = private unnamed_addr constant [4 x i8] c"f64\00" +@.str.4654 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.4655 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.4656 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.4657 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.4658 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4659 = private unnamed_addr constant [3 x i8] c"i8\00" +@.str.4660 = private unnamed_addr constant [4 x i8] c"i16\00" +@.str.4661 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.4662 = private unnamed_addr constant [3 x i8] c"u8\00" +@.str.4663 = private unnamed_addr constant [4 x i8] c"u16\00" +@.str.4664 = private unnamed_addr constant [4 x i8] c"u32\00" +@.str.4665 = private unnamed_addr constant [4 x i8] c"u64\00" +@.str.4666 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.4667 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4668 = private unnamed_addr constant [1 x i8] c"\00" +@.str.4669 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4670 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4671 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4672 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" +@.str.4673 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.4674 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.4675 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" +@.str.4676 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.4677 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.4678 = private unnamed_addr constant [2 x i8] c"0\00" +@.str.4679 = private unnamed_addr constant [33 x i8] c"call i32 @finch_str_try_int(ptr \00" +@.str.4680 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4681 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4682 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4683 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" +@.str.4684 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.4685 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4686 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" +@.str.4687 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.4688 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4689 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" +@.str.4690 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.4691 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.4692 = private unnamed_addr constant [7 x i8] c"double\00" +@.str.4693 = private unnamed_addr constant [7 x i8] c"double\00" +@.str.4694 = private unnamed_addr constant [4 x i8] c"0.0\00" +@.str.4695 = private unnamed_addr constant [35 x i8] c"call i32 @finch_str_try_float(ptr \00" +@.str.4696 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4697 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4698 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4699 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" +@.str.4700 = private unnamed_addr constant [4 x i8] c", 0\00" @.str.4701 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4702 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.4703 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4704 = private unnamed_addr constant [10 x i8] c"@finch.c.\00" -@.str.4705 = private unnamed_addr constant [2 x i8] c".\00" -@.str.4706 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4707 = private unnamed_addr constant [30 x i8] c"used .cdone on a null pointer\00" -@.str.4708 = private unnamed_addr constant [3 x i8] c"t:\00" +@.str.4702 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" +@.str.4703 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.4704 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4705 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" +@.str.4706 = private unnamed_addr constant [7 x i8] c"double\00" +@.str.4707 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.4708 = private unnamed_addr constant [4 x i8] c"str\00" @.str.4709 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4710 = private unnamed_addr constant [30 x i8] c"used .cdone on a null pointer\00" -@.str.4711 = private unnamed_addr constant [3 x i8] c"t:\00" -@.str.4712 = private unnamed_addr constant [6 x i8] c"addr(\00" -@.str.4713 = private unnamed_addr constant [82 x i8] c") gives C a function pointer, so it can't be a method or a function that can fail\00" -@.str.4714 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4715 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.4716 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4717 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.4718 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4719 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.4720 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4721 = private unnamed_addr constant [6 x i8] c"addr(\00" -@.str.4722 = private unnamed_addr constant [96 x i8] c") gives C a function pointer, so its parameters must be C types (numbers, ptr, C structs), not \00" -@.str.4723 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4710 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.4711 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4712 = private unnamed_addr constant [32 x i8] c"call i64 @finch_str_to_int(ptr \00" +@.str.4713 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4714 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.4715 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4716 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.4717 = private unnamed_addr constant [37 x i8] c"call double @finch_str_to_float(ptr \00" +@.str.4718 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4719 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.4720 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4721 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.4722 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.4723 = private unnamed_addr constant [4 x i8] c"i32\00" @.str.4724 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.4725 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4726 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.4727 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.4728 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4729 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.4730 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4731 = private unnamed_addr constant [6 x i8] c"addr(\00" -@.str.4732 = private unnamed_addr constant [39 x i8] c"): a function given to C can't return \00" -@.str.4733 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4734 = private unnamed_addr constant [10 x i8] c"ptr sret(\00" -@.str.4735 = private unnamed_addr constant [15 x i8] c") align 16 %c0\00" -@.str.4736 = private unnamed_addr constant [4 x i8] c"%c0\00" -@.str.4737 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4738 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4739 = private unnamed_addr constant [7 x i8] c"memory\00" -@.str.4740 = private unnamed_addr constant [11 x i8] c"ptr byval(\00" -@.str.4741 = private unnamed_addr constant [9 x i8] c") align \00" -@.str.4742 = private unnamed_addr constant [4 x i8] c" %c\00" -@.str.4743 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4744 = private unnamed_addr constant [3 x i8] c"%c\00" -@.str.4745 = private unnamed_addr constant [9 x i8] c"indirect\00" -@.str.4746 = private unnamed_addr constant [7 x i8] c"ptr %c\00" -@.str.4747 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4748 = private unnamed_addr constant [3 x i8] c"%c\00" -@.str.4749 = private unnamed_addr constant [7 x i8] c"expand\00" -@.str.4750 = private unnamed_addr constant [10 x i8] c"[32 x i8]\00" -@.str.4751 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4752 = private unnamed_addr constant [4 x i8] c" %c\00" -@.str.4753 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4754 = private unnamed_addr constant [3 x i8] c"%c\00" -@.str.4755 = private unnamed_addr constant [32 x i8] c"getelementptr inbounds i8, ptr \00" -@.str.4756 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.4757 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4758 = private unnamed_addr constant [4 x i8] c" %c\00" -@.str.4759 = private unnamed_addr constant [4 x i8] c" %c\00" -@.str.4760 = private unnamed_addr constant [6 x i8] c"call \00" -@.str.4761 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4762 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.4763 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4764 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4765 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4766 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.4767 = private unnamed_addr constant [9 x i8] c"ret void\00" -@.str.4768 = private unnamed_addr constant [9 x i8] c"ret void\00" -@.str.4769 = private unnamed_addr constant [7 x i8] c"expand\00" -@.str.4770 = private unnamed_addr constant [10 x i8] c"[32 x i8]\00" -@.str.4771 = private unnamed_addr constant [5 x i8] c"ret \00" -@.str.4772 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4773 = private unnamed_addr constant [5 x i8] c"ret \00" -@.str.4774 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4775 = private unnamed_addr constant [16 x i8] c"define internal\00" -@.str.4776 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4777 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4778 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.4779 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4780 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4781 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4782 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" -@.str.4783 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4784 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4785 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4786 = private unnamed_addr constant [55 x i8] c"(...) turns a whole number into the enum, but this is \00" -@.str.4787 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.4788 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4789 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4790 = private unnamed_addr constant [38 x i8] c" is not the number of any variant of \00" -@.str.4791 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.4792 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4793 = private unnamed_addr constant [13 x i8] c"icmp eq i64 \00" -@.str.4794 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4795 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4796 = private unnamed_addr constant [7 x i8] c"or i1 \00" -@.str.4797 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4798 = private unnamed_addr constant [8 x i8] c"xor i1 \00" -@.str.4799 = private unnamed_addr constant [7 x i8] c", true\00" -@.str.4800 = private unnamed_addr constant [33 x i8] c"this number is not a variant of \00" -@.str.4801 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" -@.str.4802 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str.4803 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4804 = private unnamed_addr constant [9 x i8] c" zeroext\00" -@.str.4805 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.4725 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.4726 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4727 = private unnamed_addr constant [9 x i8] c"zext i1 \00" +@.str.4728 = private unnamed_addr constant [5 x i8] c" to \00" +@.str.4729 = private unnamed_addr constant [7 x i8] c"fptoui\00" +@.str.4730 = private unnamed_addr constant [7 x i8] c"fptosi\00" +@.str.4731 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4732 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4733 = private unnamed_addr constant [5 x i8] c" to \00" +@.str.4734 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4735 = private unnamed_addr constant [9 x i8] c"icmp ne \00" +@.str.4736 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4737 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.4738 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4739 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4740 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.4741 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4742 = private unnamed_addr constant [14 x i8] c"inttoptr i64 \00" +@.str.4743 = private unnamed_addr constant [4 x i8] c"u64\00" +@.str.4744 = private unnamed_addr constant [8 x i8] c" to ptr\00" +@.str.4745 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4746 = private unnamed_addr constant [14 x i8] c"ptrtoint ptr \00" +@.str.4747 = private unnamed_addr constant [5 x i8] c" to \00" +@.str.4748 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4749 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4750 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4751 = private unnamed_addr constant [71 x i8] c"use .ptr to get a str's address (it is only valid while the str lives)\00" +@.str.4752 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4753 = private unnamed_addr constant [12 x i8] c"can't turn \00" +@.str.4754 = private unnamed_addr constant [7 x i8] c" into \00" +@.str.4755 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.4756 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4757 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.4758 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4759 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str.4760 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4761 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4762 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4763 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.4764 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.4765 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4766 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.4767 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4768 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.4769 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4770 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4771 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4772 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str.4773 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4774 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4775 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.4776 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4777 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.4778 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4779 = private unnamed_addr constant [7 x i8] c"double\00" +@.str.4780 = private unnamed_addr constant [7 x i8] c"expand\00" +@.str.4781 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.4782 = private unnamed_addr constant [4 x i8] c" x \00" +@.str.4783 = private unnamed_addr constant [2 x i8] c"]\00" +@.str.4784 = private unnamed_addr constant [3 x i8] c"{ \00" +@.str.4785 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4786 = private unnamed_addr constant [3 x i8] c" }\00" +@.str.4787 = private unnamed_addr constant [9 x i8] c"indirect\00" +@.str.4788 = private unnamed_addr constant [7 x i8] c"expand\00" +@.str.4789 = private unnamed_addr constant [5 x i8] c"i128\00" +@.str.4790 = private unnamed_addr constant [5 x i8] c"i128\00" +@.str.4791 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.4792 = private unnamed_addr constant [2 x i8] c"i\00" +@.str.4793 = private unnamed_addr constant [10 x i8] c"[2 x i64]\00" +@.str.4794 = private unnamed_addr constant [10 x i8] c"[2 x i64]\00" +@.str.4795 = private unnamed_addr constant [7 x i8] c"direct\00" +@.str.4796 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.4797 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4798 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.4799 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4800 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4801 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" +@.str.4802 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4803 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" +@.str.4804 = private unnamed_addr constant [7 x i8] c"expand\00" +@.str.4805 = private unnamed_addr constant [2 x i8] c"i\00" @.str.4806 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4807 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" -@.str.4808 = private unnamed_addr constant [9 x i8] c" signext\00" -@.str.4809 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.4810 = private unnamed_addr constant [9 x i8] c" zeroext\00" -@.str.4811 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4812 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4813 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4807 = private unnamed_addr constant [9 x i8] c"indirect\00" +@.str.4808 = private unnamed_addr constant [7 x i8] c"memory\00" +@.str.4809 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4810 = private unnamed_addr constant [17 x i8] c"division by zero\00" +@.str.4811 = private unnamed_addr constant [7 x i8] c"memory\00" +@.str.4812 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4813 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.4814 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4815 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" -@.str.4816 = private unnamed_addr constant [4 x i8] c"...\00" -@.str.4817 = private unnamed_addr constant [18 x i8] c"C function from `\00" -@.str.4818 = private unnamed_addr constant [8 x i8] c"`\0A```c\0A\00" -@.str.4819 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4820 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.4821 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4822 = private unnamed_addr constant [6 x i8] c")\0A```\00" -@.str.4823 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4824 = private unnamed_addr constant [17 x i8] c"the C function '\00" -@.str.4825 = private unnamed_addr constant [36 x i8] c"' can't be used from Finch yet: it \00" -@.str.4826 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.4827 = private unnamed_addr constant [18 x i8] c"' takes at least \00" -@.str.4828 = private unnamed_addr constant [23 x i8] c" argument(s), but got \00" -@.str.4829 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.4830 = private unnamed_addr constant [9 x i8] c"' takes \00" -@.str.4831 = private unnamed_addr constant [23 x i8] c" argument(s), but got \00" -@.str.4832 = private unnamed_addr constant [8 x i8] c"returns\00" -@.str.4833 = private unnamed_addr constant [6 x i8] c"takes\00" -@.str.4834 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4835 = private unnamed_addr constant [10 x i8] c"ptr sret(\00" -@.str.4836 = private unnamed_addr constant [11 x i8] c") align 16\00" -@.str.4837 = private unnamed_addr constant [10 x i8] c"ptr sret(\00" -@.str.4838 = private unnamed_addr constant [12 x i8] c") align 16 \00" +@.str.4815 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4816 = private unnamed_addr constant [7 x i8] c"expand\00" +@.str.4817 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4818 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4819 = private unnamed_addr constant [7 x i8] c"double\00" +@.str.4820 = private unnamed_addr constant [12 x i8] c"<2 x float>\00" +@.str.4821 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.4822 = private unnamed_addr constant [2 x i8] c"i\00" +@.str.4823 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4824 = private unnamed_addr constant [3 x i8] c"{ \00" +@.str.4825 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4826 = private unnamed_addr constant [3 x i8] c" }\00" +@.str.4827 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.4828 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.4829 = private unnamed_addr constant [9 x i8] c"indirect\00" +@.str.4830 = private unnamed_addr constant [7 x i8] c"memory\00" +@.str.4831 = private unnamed_addr constant [7 x i8] c"memory\00" +@.str.4832 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.4833 = private unnamed_addr constant [7 x i8] c"expand\00" +@.str.4834 = private unnamed_addr constant [7 x i8] c"expand\00" +@.str.4835 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4836 = private unnamed_addr constant [2 x i8] c"i\00" +@.str.4837 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4838 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" @.str.4839 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4840 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.4841 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4842 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4843 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4840 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" +@.str.4841 = private unnamed_addr constant [7 x i8] c"memory\00" +@.str.4842 = private unnamed_addr constant [7 x i8] c"direct\00" +@.str.4843 = private unnamed_addr constant [7 x i8] c"struct\00" @.str.4844 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4845 = private unnamed_addr constant [10 x i8] c"argument \00" -@.str.4846 = private unnamed_addr constant [5 x i8] c" of \00" -@.str.4847 = private unnamed_addr constant [7 x i8] c"memory\00" -@.str.4848 = private unnamed_addr constant [11 x i8] c"ptr byval(\00" -@.str.4849 = private unnamed_addr constant [9 x i8] c") align \00" -@.str.4850 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4851 = private unnamed_addr constant [9 x i8] c"indirect\00" -@.str.4852 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4853 = private unnamed_addr constant [5 x i8] c"ptr \00" -@.str.4854 = private unnamed_addr constant [7 x i8] c"expand\00" -@.str.4855 = private unnamed_addr constant [10 x i8] c"[32 x i8]\00" -@.str.4856 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4857 = private unnamed_addr constant [32 x i8] c"getelementptr inbounds i8, ptr \00" -@.str.4858 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.4859 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4860 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4861 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4862 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4863 = private unnamed_addr constant [5 x i8] c"ptr \00" -@.str.4864 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4865 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4845 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.4846 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4847 = private unnamed_addr constant [17 x i8] c"the C function '\00" +@.str.4848 = private unnamed_addr constant [3 x i8] c"' \00" +@.str.4849 = private unnamed_addr constant [19 x i8] c" the Finch struct \00" +@.str.4850 = private unnamed_addr constant [21 x i8] c", which C can't take\00" +@.str.4851 = private unnamed_addr constant [17 x i8] c"the C function '\00" +@.str.4852 = private unnamed_addr constant [3 x i8] c"' \00" +@.str.4853 = private unnamed_addr constant [13 x i8] c" the struct \00" +@.str.4854 = private unnamed_addr constant [41 x i8] c" by value, which Finch can't do yet: it \00" +@.str.4855 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4856 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.4857 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4858 = private unnamed_addr constant [60 x i8] c"methods can't be exported (export a plain fn that calls it)\00" +@.str.4859 = private unnamed_addr constant [75 x i8] c"an export fn can't fail (C has no errors as values): handle them inside it\00" +@.str.4860 = private unnamed_addr constant [30 x i8] c"an export fn can't be generic\00" +@.str.4861 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4862 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4863 = private unnamed_addr constant [67 x i8] c"an export fn takes numbers, bool, char and pointers only (this is \00" +@.str.4864 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4865 = private unnamed_addr constant [51 x i8] c"; pass text as ptr[char] and make it a str inside)\00" @.str.4866 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.4867 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4868 = private unnamed_addr constant [24 x i8] c"this gives back nothing\00" -@.str.4869 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.4870 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.4871 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4872 = private unnamed_addr constant [69 x i8] c"structs and arrays can't be passed to the '...' part of a C function\00" -@.str.4873 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.4874 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4875 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4876 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4877 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4878 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4879 = private unnamed_addr constant [9 x i8] c"zext i1 \00" -@.str.4880 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str.4881 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.4882 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.4883 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.4884 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.4885 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4886 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4887 = private unnamed_addr constant [7 x i8] c"direct\00" -@.str.4888 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4889 = private unnamed_addr constant [6 x i8] c", ...\00" -@.str.4890 = private unnamed_addr constant [4 x i8] c"...\00" -@.str.4891 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4892 = private unnamed_addr constant [30 x i8] c"used .cdone on a null pointer\00" -@.str.4893 = private unnamed_addr constant [3 x i8] c"f:\00" -@.str.4894 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4895 = private unnamed_addr constant [30 x i8] c"used .cdone on a null pointer\00" -@.str.4896 = private unnamed_addr constant [3 x i8] c"f:\00" -@.str.4897 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4898 = private unnamed_addr constant [29 x i8] c"used .head on a null pointer\00" -@.str.4899 = private unnamed_addr constant [8 x i8] c"declare\00" -@.str.4900 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4901 = private unnamed_addr constant [3 x i8] c" @\00" -@.str.4902 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.4903 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4904 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4905 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4906 = private unnamed_addr constant [3 x i8] c" (\00" -@.str.4907 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4908 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4909 = private unnamed_addr constant [5 x i8] c"call\00" -@.str.4910 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4911 = private unnamed_addr constant [3 x i8] c" @\00" -@.str.4912 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.4913 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4914 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4915 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.4916 = private unnamed_addr constant [7 x i8] c"expand\00" -@.str.4917 = private unnamed_addr constant [10 x i8] c"[32 x i8]\00" -@.str.4918 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4919 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.4920 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.4921 = private unnamed_addr constant [33 x i8] c"call void @finch_str_from_c(ptr \00" -@.str.4922 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4923 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4924 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.4925 = private unnamed_addr constant [7 x i8] c"printf\00" -@.str.4926 = private unnamed_addr constant [7 x i8] c"fflush\00" -@.str.4927 = private unnamed_addr constant [5 x i8] c"exit\00" -@.str.4928 = private unnamed_addr constant [5 x i8] c"free\00" -@.str.4929 = private unnamed_addr constant [6 x i8] c"qsort\00" -@.str.4930 = private unnamed_addr constant [7 x i8] c"printf\00" -@.str.4931 = private unnamed_addr constant [5 x i8] c"puts\00" -@.str.4932 = private unnamed_addr constant [8 x i8] c"putchar\00" -@.str.4933 = private unnamed_addr constant [6 x i8] c"scanf\00" -@.str.4934 = private unnamed_addr constant [6 x i8] c"fopen\00" -@.str.4935 = private unnamed_addr constant [8 x i8] c"getchar\00" -@.str.4936 = private unnamed_addr constant [5 x i8] c"sqrt\00" -@.str.4937 = private unnamed_addr constant [4 x i8] c"pow\00" -@.str.4938 = private unnamed_addr constant [4 x i8] c"sin\00" -@.str.4939 = private unnamed_addr constant [4 x i8] c"cos\00" -@.str.4940 = private unnamed_addr constant [6 x i8] c"floor\00" -@.str.4941 = private unnamed_addr constant [5 x i8] c"fabs\00" -@.str.4942 = private unnamed_addr constant [7 x i8] c"malloc\00" -@.str.4943 = private unnamed_addr constant [5 x i8] c"rand\00" -@.str.4944 = private unnamed_addr constant [6 x i8] c"srand\00" -@.str.4945 = private unnamed_addr constant [4 x i8] c"abs\00" -@.str.4946 = private unnamed_addr constant [5 x i8] c"atoi\00" -@.str.4947 = private unnamed_addr constant [7 x i8] c"strlen\00" -@.str.4948 = private unnamed_addr constant [7 x i8] c"strcpy\00" -@.str.4949 = private unnamed_addr constant [7 x i8] c"memcpy\00" -@.str.4950 = private unnamed_addr constant [5 x i8] c"time\00" -@.str.4951 = private unnamed_addr constant [6 x i8] c"sleep\00" -@.str.4952 = private unnamed_addr constant [7 x i8] c"usleep\00" -@.str.4953 = private unnamed_addr constant [8 x i8] c"stdio.h\00" -@.str.4954 = private unnamed_addr constant [8 x i8] c"stdio.h\00" -@.str.4955 = private unnamed_addr constant [8 x i8] c"stdio.h\00" -@.str.4956 = private unnamed_addr constant [8 x i8] c"stdio.h\00" -@.str.4957 = private unnamed_addr constant [8 x i8] c"stdio.h\00" -@.str.4958 = private unnamed_addr constant [8 x i8] c"stdio.h\00" -@.str.4959 = private unnamed_addr constant [7 x i8] c"math.h\00" -@.str.4960 = private unnamed_addr constant [7 x i8] c"math.h\00" -@.str.4961 = private unnamed_addr constant [7 x i8] c"math.h\00" -@.str.4962 = private unnamed_addr constant [7 x i8] c"math.h\00" -@.str.4963 = private unnamed_addr constant [7 x i8] c"math.h\00" -@.str.4964 = private unnamed_addr constant [7 x i8] c"math.h\00" -@.str.4965 = private unnamed_addr constant [9 x i8] c"stdlib.h\00" -@.str.4966 = private unnamed_addr constant [9 x i8] c"stdlib.h\00" -@.str.4967 = private unnamed_addr constant [9 x i8] c"stdlib.h\00" -@.str.4968 = private unnamed_addr constant [9 x i8] c"stdlib.h\00" -@.str.4969 = private unnamed_addr constant [9 x i8] c"stdlib.h\00" -@.str.4970 = private unnamed_addr constant [9 x i8] c"string.h\00" -@.str.4971 = private unnamed_addr constant [9 x i8] c"string.h\00" -@.str.4972 = private unnamed_addr constant [9 x i8] c"string.h\00" -@.str.4973 = private unnamed_addr constant [7 x i8] c"time.h\00" -@.str.4974 = private unnamed_addr constant [9 x i8] c"unistd.h\00" -@.str.4975 = private unnamed_addr constant [9 x i8] c"unistd.h\00" -@.str.4976 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4977 = private unnamed_addr constant [29 x i8] c" (it's from C: add import \22\00" -@.str.4978 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4979 = private unnamed_addr constant [15 x i8] c"\22 at the top)\00" -@.str.4980 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4981 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" -@.str.4982 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4983 = private unnamed_addr constant [6 x i8] c"error\00" -@.str.4984 = private unnamed_addr constant [87 x i8] c"error(...) makes an error to return from a function that can fail: return error(\22...\22)\00" -@.str.4985 = private unnamed_addr constant [6 x i8] c"print\00" -@.str.4986 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4987 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.4867 = private unnamed_addr constant [70 x i8] c"an export fn returns nothing, a number, bool, char or a pointer (not \00" +@.str.4868 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4869 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4870 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.4871 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.4872 = private unnamed_addr constant [39 x i8] c"' is exported twice (from two modules)\00" +@.str.4873 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4874 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4875 = private unnamed_addr constant [14 x i8] c"i8 zeroext %e\00" +@.str.4876 = private unnamed_addr constant [4 x i8] c"i1 \00" +@.str.4877 = private unnamed_addr constant [14 x i8] c"icmp ne i8 %e\00" +@.str.4878 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.4879 = private unnamed_addr constant [4 x i8] c" %e\00" +@.str.4880 = private unnamed_addr constant [4 x i8] c" %e\00" +@.str.4881 = private unnamed_addr constant [6 x i8] c"call \00" +@.str.4882 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4883 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.4884 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4885 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4886 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.4887 = private unnamed_addr constant [1 x i8] c"\00" +@.str.4888 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.4889 = private unnamed_addr constant [9 x i8] c"ret void\00" +@.str.4890 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4891 = private unnamed_addr constant [3 x i8] c"i8\00" +@.str.4892 = private unnamed_addr constant [9 x i8] c" zeroext\00" +@.str.4893 = private unnamed_addr constant [8 x i8] c"ret i8 \00" +@.str.4894 = private unnamed_addr constant [9 x i8] c"zext i1 \00" +@.str.4895 = private unnamed_addr constant [7 x i8] c" to i8\00" +@.str.4896 = private unnamed_addr constant [5 x i8] c"ret \00" +@.str.4897 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4898 = private unnamed_addr constant [1 x i8] c"\00" +@.str.4899 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4900 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" +@.str.4901 = private unnamed_addr constant [11 x i8] c" dllexport\00" +@.str.4902 = private unnamed_addr constant [7 x i8] c"define\00" +@.str.4903 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4904 = private unnamed_addr constant [3 x i8] c" @\00" +@.str.4905 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.4906 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4907 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4908 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4909 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.4910 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4911 = private unnamed_addr constant [10 x i8] c"@finch.c.\00" +@.str.4912 = private unnamed_addr constant [2 x i8] c".\00" +@.str.4913 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4914 = private unnamed_addr constant [30 x i8] c"used .cdone on a null pointer\00" +@.str.4915 = private unnamed_addr constant [3 x i8] c"t:\00" +@.str.4916 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4917 = private unnamed_addr constant [30 x i8] c"used .cdone on a null pointer\00" +@.str.4918 = private unnamed_addr constant [3 x i8] c"t:\00" +@.str.4919 = private unnamed_addr constant [6 x i8] c"addr(\00" +@.str.4920 = private unnamed_addr constant [82 x i8] c") gives C a function pointer, so it can't be a method or a function that can fail\00" +@.str.4921 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4922 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.4923 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4924 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.4925 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4926 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.4927 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4928 = private unnamed_addr constant [6 x i8] c"addr(\00" +@.str.4929 = private unnamed_addr constant [96 x i8] c") gives C a function pointer, so its parameters must be C types (numbers, ptr, C structs), not \00" +@.str.4930 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4931 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.4932 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4933 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.4934 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.4935 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4936 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.4937 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4938 = private unnamed_addr constant [6 x i8] c"addr(\00" +@.str.4939 = private unnamed_addr constant [39 x i8] c"): a function given to C can't return \00" +@.str.4940 = private unnamed_addr constant [1 x i8] c"\00" +@.str.4941 = private unnamed_addr constant [10 x i8] c"ptr sret(\00" +@.str.4942 = private unnamed_addr constant [15 x i8] c") align 16 %c0\00" +@.str.4943 = private unnamed_addr constant [4 x i8] c"%c0\00" +@.str.4944 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4945 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4946 = private unnamed_addr constant [7 x i8] c"memory\00" +@.str.4947 = private unnamed_addr constant [11 x i8] c"ptr byval(\00" +@.str.4948 = private unnamed_addr constant [9 x i8] c") align \00" +@.str.4949 = private unnamed_addr constant [4 x i8] c" %c\00" +@.str.4950 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4951 = private unnamed_addr constant [3 x i8] c"%c\00" +@.str.4952 = private unnamed_addr constant [9 x i8] c"indirect\00" +@.str.4953 = private unnamed_addr constant [7 x i8] c"ptr %c\00" +@.str.4954 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4955 = private unnamed_addr constant [3 x i8] c"%c\00" +@.str.4956 = private unnamed_addr constant [7 x i8] c"expand\00" +@.str.4957 = private unnamed_addr constant [10 x i8] c"[32 x i8]\00" +@.str.4958 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4959 = private unnamed_addr constant [4 x i8] c" %c\00" +@.str.4960 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4961 = private unnamed_addr constant [3 x i8] c"%c\00" +@.str.4962 = private unnamed_addr constant [32 x i8] c"getelementptr inbounds i8, ptr \00" +@.str.4963 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.4964 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4965 = private unnamed_addr constant [4 x i8] c" %c\00" +@.str.4966 = private unnamed_addr constant [4 x i8] c" %c\00" +@.str.4967 = private unnamed_addr constant [6 x i8] c"call \00" +@.str.4968 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4969 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.4970 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4971 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4972 = private unnamed_addr constant [1 x i8] c"\00" +@.str.4973 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.4974 = private unnamed_addr constant [9 x i8] c"ret void\00" +@.str.4975 = private unnamed_addr constant [9 x i8] c"ret void\00" +@.str.4976 = private unnamed_addr constant [7 x i8] c"expand\00" +@.str.4977 = private unnamed_addr constant [10 x i8] c"[32 x i8]\00" +@.str.4978 = private unnamed_addr constant [5 x i8] c"ret \00" +@.str.4979 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4980 = private unnamed_addr constant [5 x i8] c"ret \00" +@.str.4981 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4982 = private unnamed_addr constant [16 x i8] c"define internal\00" +@.str.4983 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4984 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4985 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.4986 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4987 = private unnamed_addr constant [2 x i8] c")\00" @.str.4988 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4989 = private unnamed_addr constant [54 x i8] c"this gives back nothing, so there is nothing to print\00" -@.str.4990 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4991 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4992 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.4993 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4994 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.4995 = private unnamed_addr constant [5 x i8] c"addr\00" +@.str.4989 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" +@.str.4990 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4991 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4992 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4993 = private unnamed_addr constant [55 x i8] c"(...) turns a whole number into the enum, but this is \00" +@.str.4994 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.4995 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.4996 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4997 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.4998 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4999 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.5000 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.5001 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.5002 = private unnamed_addr constant [7 x i8] c"member\00" -@.str.5003 = private unnamed_addr constant [6 x i8] c"index\00" -@.str.5004 = private unnamed_addr constant [64 x i8] c"addr(...) needs a variable, a field or an element, like addr(x)\00" -@.str.5005 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5006 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5007 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5008 = private unnamed_addr constant [35 x i8] c"call void @finch_str_from_int(ptr \00" -@.str.5009 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5010 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.5011 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5012 = private unnamed_addr constant [36 x i8] c"call void @finch_str_from_uint(ptr \00" -@.str.5013 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5014 = private unnamed_addr constant [4 x i8] c"u64\00" -@.str.5015 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5016 = private unnamed_addr constant [37 x i8] c"call void @finch_str_from_float(ptr \00" -@.str.5017 = private unnamed_addr constant [10 x i8] c", double \00" -@.str.5018 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.5019 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5020 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.5021 = private unnamed_addr constant [36 x i8] c"call void @finch_str_from_char(ptr \00" -@.str.5022 = private unnamed_addr constant [14 x i8] c", i8 signext \00" -@.str.5023 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5024 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.5025 = private unnamed_addr constant [9 x i8] c"zext i1 \00" -@.str.5026 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str.5027 = private unnamed_addr constant [36 x i8] c"call void @finch_str_from_bool(ptr \00" -@.str.5028 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str.5029 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5030 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.5031 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5032 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.5033 = private unnamed_addr constant [33 x i8] c"call void @finch_str_from_c(ptr \00" -@.str.5034 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5035 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5036 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.5037 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5038 = private unnamed_addr constant [3 x i8] c"u8\00" -@.str.5039 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5040 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.5041 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5042 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.5043 = private unnamed_addr constant [37 x i8] c"call void @finch_str_from_bytes(ptr \00" -@.str.5044 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5045 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5046 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.5047 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.5048 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.5049 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.5050 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.5051 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.5052 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5053 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.5054 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5055 = private unnamed_addr constant [12 x i8] c"can't turn \00" -@.str.5056 = private unnamed_addr constant [10 x i8] c" into str\00" -@.str.5057 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5058 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5059 = private unnamed_addr constant [10 x i8] c"read_file\00" -@.str.5060 = private unnamed_addr constant [12 x i8] c"file_exists\00" -@.str.5061 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5062 = private unnamed_addr constant [14 x i8] c"the file name\00" -@.str.5063 = private unnamed_addr constant [12 x i8] c"file_exists\00" -@.str.5064 = private unnamed_addr constant [33 x i8] c"call i32 @finch_file_exists(ptr \00" -@.str.5065 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5066 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str.5067 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.5068 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.5069 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5070 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" -@.str.5071 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5072 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5073 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.5074 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5075 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.5076 = private unnamed_addr constant [35 x i8] c"call i32 @finch_try_read_file(ptr \00" -@.str.5077 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5078 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5079 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5080 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" -@.str.5081 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.5082 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5083 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" -@.str.5084 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5085 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5086 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" -@.str.5087 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5088 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5089 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5090 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" -@.str.5091 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5092 = private unnamed_addr constant [32 x i8] c"call void @finch_read_file(ptr \00" -@.str.5093 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5094 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5095 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5096 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5097 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5098 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5099 = private unnamed_addr constant [11 x i8] c"write_file\00" -@.str.5100 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5101 = private unnamed_addr constant [14 x i8] c"the file name\00" -@.str.5102 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5103 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.4997 = private unnamed_addr constant [38 x i8] c" is not the number of any variant of \00" +@.str.4998 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.4999 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5000 = private unnamed_addr constant [13 x i8] c"icmp eq i64 \00" +@.str.5001 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5002 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5003 = private unnamed_addr constant [7 x i8] c"or i1 \00" +@.str.5004 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5005 = private unnamed_addr constant [8 x i8] c"xor i1 \00" +@.str.5006 = private unnamed_addr constant [7 x i8] c", true\00" +@.str.5007 = private unnamed_addr constant [33 x i8] c"this number is not a variant of \00" +@.str.5008 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" +@.str.5009 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str.5010 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.5011 = private unnamed_addr constant [9 x i8] c" zeroext\00" +@.str.5012 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.5013 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5014 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" +@.str.5015 = private unnamed_addr constant [9 x i8] c" signext\00" +@.str.5016 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.5017 = private unnamed_addr constant [9 x i8] c" zeroext\00" +@.str.5018 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5019 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5020 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5021 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5022 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" +@.str.5023 = private unnamed_addr constant [4 x i8] c"...\00" +@.str.5024 = private unnamed_addr constant [18 x i8] c"C function from `\00" +@.str.5025 = private unnamed_addr constant [8 x i8] c"`\0A```c\0A\00" +@.str.5026 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5027 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.5028 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5029 = private unnamed_addr constant [6 x i8] c")\0A```\00" +@.str.5030 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5031 = private unnamed_addr constant [17 x i8] c"the C function '\00" +@.str.5032 = private unnamed_addr constant [36 x i8] c"' can't be used from Finch yet: it \00" +@.str.5033 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.5034 = private unnamed_addr constant [18 x i8] c"' takes at least \00" +@.str.5035 = private unnamed_addr constant [23 x i8] c" argument(s), but got \00" +@.str.5036 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.5037 = private unnamed_addr constant [9 x i8] c"' takes \00" +@.str.5038 = private unnamed_addr constant [23 x i8] c" argument(s), but got \00" +@.str.5039 = private unnamed_addr constant [8 x i8] c"returns\00" +@.str.5040 = private unnamed_addr constant [6 x i8] c"takes\00" +@.str.5041 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5042 = private unnamed_addr constant [10 x i8] c"ptr sret(\00" +@.str.5043 = private unnamed_addr constant [11 x i8] c") align 16\00" +@.str.5044 = private unnamed_addr constant [10 x i8] c"ptr sret(\00" +@.str.5045 = private unnamed_addr constant [12 x i8] c") align 16 \00" +@.str.5046 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5047 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.5048 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5049 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5050 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5051 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5052 = private unnamed_addr constant [10 x i8] c"argument \00" +@.str.5053 = private unnamed_addr constant [5 x i8] c" of \00" +@.str.5054 = private unnamed_addr constant [7 x i8] c"memory\00" +@.str.5055 = private unnamed_addr constant [11 x i8] c"ptr byval(\00" +@.str.5056 = private unnamed_addr constant [9 x i8] c") align \00" +@.str.5057 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5058 = private unnamed_addr constant [9 x i8] c"indirect\00" +@.str.5059 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5060 = private unnamed_addr constant [5 x i8] c"ptr \00" +@.str.5061 = private unnamed_addr constant [7 x i8] c"expand\00" +@.str.5062 = private unnamed_addr constant [10 x i8] c"[32 x i8]\00" +@.str.5063 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5064 = private unnamed_addr constant [32 x i8] c"getelementptr inbounds i8, ptr \00" +@.str.5065 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5066 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5067 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5068 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5069 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5070 = private unnamed_addr constant [5 x i8] c"ptr \00" +@.str.5071 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5072 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5073 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.5074 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5075 = private unnamed_addr constant [24 x i8] c"this gives back nothing\00" +@.str.5076 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.5077 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.5078 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5079 = private unnamed_addr constant [69 x i8] c"structs and arrays can't be passed to the '...' part of a C function\00" +@.str.5080 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.5081 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.5082 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.5083 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5084 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5085 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.5086 = private unnamed_addr constant [9 x i8] c"zext i1 \00" +@.str.5087 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str.5088 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.5089 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.5090 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.5091 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.5092 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5093 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5094 = private unnamed_addr constant [7 x i8] c"direct\00" +@.str.5095 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5096 = private unnamed_addr constant [6 x i8] c", ...\00" +@.str.5097 = private unnamed_addr constant [4 x i8] c"...\00" +@.str.5098 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5099 = private unnamed_addr constant [30 x i8] c"used .cdone on a null pointer\00" +@.str.5100 = private unnamed_addr constant [3 x i8] c"f:\00" +@.str.5101 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5102 = private unnamed_addr constant [30 x i8] c"used .cdone on a null pointer\00" +@.str.5103 = private unnamed_addr constant [3 x i8] c"f:\00" @.str.5104 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5105 = private unnamed_addr constant [9 x i8] c"the text\00" -@.str.5106 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5107 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" -@.str.5108 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5109 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5110 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.5111 = private unnamed_addr constant [36 x i8] c"call i32 @finch_try_write_file(ptr \00" -@.str.5112 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5113 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5114 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5115 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" -@.str.5116 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.5117 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5118 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" -@.str.5119 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5120 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5121 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" +@.str.5105 = private unnamed_addr constant [29 x i8] c"used .head on a null pointer\00" +@.str.5106 = private unnamed_addr constant [8 x i8] c"declare\00" +@.str.5107 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5108 = private unnamed_addr constant [3 x i8] c" @\00" +@.str.5109 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.5110 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5111 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5112 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5113 = private unnamed_addr constant [3 x i8] c" (\00" +@.str.5114 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5115 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5116 = private unnamed_addr constant [5 x i8] c"call\00" +@.str.5117 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5118 = private unnamed_addr constant [3 x i8] c" @\00" +@.str.5119 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.5120 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5121 = private unnamed_addr constant [2 x i8] c")\00" @.str.5122 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.5123 = private unnamed_addr constant [32 x i8] c"call i32 @finch_write_file(ptr \00" -@.str.5124 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5125 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5126 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str.5127 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.5128 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.5129 = private unnamed_addr constant [12 x i8] c"delete_file\00" -@.str.5130 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5131 = private unnamed_addr constant [14 x i8] c"the file name\00" -@.str.5132 = private unnamed_addr constant [31 x i8] c"call void @finch_str_copy(ptr \00" -@.str.5133 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5134 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5135 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5136 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" -@.str.5137 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5138 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5139 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.5140 = private unnamed_addr constant [37 x i8] c"call i32 @finch_try_delete_file(ptr \00" -@.str.5141 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5142 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5143 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" -@.str.5144 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.5145 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5146 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" -@.str.5147 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5148 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5149 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" -@.str.5150 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5151 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.5152 = private unnamed_addr constant [33 x i8] c"call i32 @finch_delete_file(ptr \00" -@.str.5153 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5154 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5155 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str.5156 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.5157 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.5158 = private unnamed_addr constant [6 x i8] c"shell\00" -@.str.5159 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5160 = private unnamed_addr constant [12 x i8] c"the command\00" -@.str.5161 = private unnamed_addr constant [31 x i8] c"call void @finch_str_copy(ptr \00" -@.str.5162 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5163 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5164 = private unnamed_addr constant [27 x i8] c"call i64 @finch_shell(ptr \00" -@.str.5165 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5166 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5167 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.5168 = private unnamed_addr constant [5 x i8] c"exit\00" -@.str.5169 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5170 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.5171 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5172 = private unnamed_addr constant [14 x i8] c"the exit code\00" -@.str.5173 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" -@.str.5174 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str.5175 = private unnamed_addr constant [27 x i8] c"call i32 @fflush(ptr null)\00" -@.str.5176 = private unnamed_addr constant [21 x i8] c"call void @exit(i32 \00" -@.str.5177 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5178 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.5179 = private unnamed_addr constant [6 x i8] c"input\00" -@.str.5180 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5181 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5182 = private unnamed_addr constant [13 x i8] c"the question\00" -@.str.5183 = private unnamed_addr constant [28 x i8] c"call void @finch_input(ptr \00" -@.str.5184 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5185 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5186 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5187 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5188 = private unnamed_addr constant [4 x i8] c"new\00" -@.str.5189 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5190 = private unnamed_addr constant [27 x i8] c"call ptr @finch_alloc(i64 \00" -@.str.5191 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5192 = private unnamed_addr constant [5 x i8] c"free\00" +@.str.5123 = private unnamed_addr constant [7 x i8] c"expand\00" +@.str.5124 = private unnamed_addr constant [10 x i8] c"[32 x i8]\00" +@.str.5125 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5126 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5127 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" +@.str.5128 = private unnamed_addr constant [33 x i8] c"call void @finch_str_from_c(ptr \00" +@.str.5129 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5130 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5131 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5132 = private unnamed_addr constant [7 x i8] c"printf\00" +@.str.5133 = private unnamed_addr constant [7 x i8] c"fflush\00" +@.str.5134 = private unnamed_addr constant [5 x i8] c"exit\00" +@.str.5135 = private unnamed_addr constant [5 x i8] c"free\00" +@.str.5136 = private unnamed_addr constant [6 x i8] c"qsort\00" +@.str.5137 = private unnamed_addr constant [7 x i8] c"printf\00" +@.str.5138 = private unnamed_addr constant [5 x i8] c"puts\00" +@.str.5139 = private unnamed_addr constant [8 x i8] c"putchar\00" +@.str.5140 = private unnamed_addr constant [6 x i8] c"scanf\00" +@.str.5141 = private unnamed_addr constant [6 x i8] c"fopen\00" +@.str.5142 = private unnamed_addr constant [8 x i8] c"getchar\00" +@.str.5143 = private unnamed_addr constant [5 x i8] c"sqrt\00" +@.str.5144 = private unnamed_addr constant [4 x i8] c"pow\00" +@.str.5145 = private unnamed_addr constant [4 x i8] c"sin\00" +@.str.5146 = private unnamed_addr constant [4 x i8] c"cos\00" +@.str.5147 = private unnamed_addr constant [6 x i8] c"floor\00" +@.str.5148 = private unnamed_addr constant [5 x i8] c"fabs\00" +@.str.5149 = private unnamed_addr constant [7 x i8] c"malloc\00" +@.str.5150 = private unnamed_addr constant [5 x i8] c"rand\00" +@.str.5151 = private unnamed_addr constant [6 x i8] c"srand\00" +@.str.5152 = private unnamed_addr constant [4 x i8] c"abs\00" +@.str.5153 = private unnamed_addr constant [5 x i8] c"atoi\00" +@.str.5154 = private unnamed_addr constant [7 x i8] c"strlen\00" +@.str.5155 = private unnamed_addr constant [7 x i8] c"strcpy\00" +@.str.5156 = private unnamed_addr constant [7 x i8] c"memcpy\00" +@.str.5157 = private unnamed_addr constant [5 x i8] c"time\00" +@.str.5158 = private unnamed_addr constant [6 x i8] c"sleep\00" +@.str.5159 = private unnamed_addr constant [7 x i8] c"usleep\00" +@.str.5160 = private unnamed_addr constant [8 x i8] c"stdio.h\00" +@.str.5161 = private unnamed_addr constant [8 x i8] c"stdio.h\00" +@.str.5162 = private unnamed_addr constant [8 x i8] c"stdio.h\00" +@.str.5163 = private unnamed_addr constant [8 x i8] c"stdio.h\00" +@.str.5164 = private unnamed_addr constant [8 x i8] c"stdio.h\00" +@.str.5165 = private unnamed_addr constant [8 x i8] c"stdio.h\00" +@.str.5166 = private unnamed_addr constant [7 x i8] c"math.h\00" +@.str.5167 = private unnamed_addr constant [7 x i8] c"math.h\00" +@.str.5168 = private unnamed_addr constant [7 x i8] c"math.h\00" +@.str.5169 = private unnamed_addr constant [7 x i8] c"math.h\00" +@.str.5170 = private unnamed_addr constant [7 x i8] c"math.h\00" +@.str.5171 = private unnamed_addr constant [7 x i8] c"math.h\00" +@.str.5172 = private unnamed_addr constant [9 x i8] c"stdlib.h\00" +@.str.5173 = private unnamed_addr constant [9 x i8] c"stdlib.h\00" +@.str.5174 = private unnamed_addr constant [9 x i8] c"stdlib.h\00" +@.str.5175 = private unnamed_addr constant [9 x i8] c"stdlib.h\00" +@.str.5176 = private unnamed_addr constant [9 x i8] c"stdlib.h\00" +@.str.5177 = private unnamed_addr constant [9 x i8] c"string.h\00" +@.str.5178 = private unnamed_addr constant [9 x i8] c"string.h\00" +@.str.5179 = private unnamed_addr constant [9 x i8] c"string.h\00" +@.str.5180 = private unnamed_addr constant [7 x i8] c"time.h\00" +@.str.5181 = private unnamed_addr constant [9 x i8] c"unistd.h\00" +@.str.5182 = private unnamed_addr constant [9 x i8] c"unistd.h\00" +@.str.5183 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5184 = private unnamed_addr constant [29 x i8] c" (it's from C: add import \22\00" +@.str.5185 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5186 = private unnamed_addr constant [15 x i8] c"\22 at the top)\00" +@.str.5187 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5188 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" +@.str.5189 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5190 = private unnamed_addr constant [6 x i8] c"error\00" +@.str.5191 = private unnamed_addr constant [87 x i8] c"error(...) makes an error to return from a function that can fail: return error(\22...\22)\00" +@.str.5192 = private unnamed_addr constant [6 x i8] c"print\00" @.str.5193 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5194 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5194 = private unnamed_addr constant [5 x i8] c"void\00" @.str.5195 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5196 = private unnamed_addr constant [120 x i8] c"free(...) is only for pointers from new(...) or C; arrays, str and structs are freed by Finch at the end of their block\00" -@.str.5197 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5198 = private unnamed_addr constant [10 x i8] c"free.drop\00" -@.str.5199 = private unnamed_addr constant [10 x i8] c"free.done\00" -@.str.5200 = private unnamed_addr constant [13 x i8] c"icmp eq ptr \00" -@.str.5201 = private unnamed_addr constant [7 x i8] c", null\00" -@.str.5202 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5203 = private unnamed_addr constant [21 x i8] c"call void @free(ptr \00" -@.str.5204 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5205 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.5206 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5207 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.5208 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.5209 = private unnamed_addr constant [48 x i8] c"' is not generic, so it takes no type arguments\00" -@.str.5210 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5211 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5212 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5213 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.5214 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5215 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5216 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.5217 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5218 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.5219 = private unnamed_addr constant [43 x i8] c"' is generic, so say which type it holds: \00" -@.str.5220 = private unnamed_addr constant [11 x i8] c"[int](...)\00" -@.str.5221 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5222 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.5223 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5224 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.5225 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5226 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.5227 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5228 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5229 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" -@.str.5230 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5231 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.5232 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5233 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5234 = private unnamed_addr constant [17 x i8] c"```finch\0Astruct \00" -@.str.5235 = private unnamed_addr constant [4 x i8] c" { \00" -@.str.5236 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5237 = private unnamed_addr constant [7 x i8] c" }\0A```\00" -@.str.5238 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5239 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" -@.str.5240 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5241 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5242 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.5243 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5244 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" -@.str.5245 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5246 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" -@.str.5247 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5248 = private unnamed_addr constant [2 x i8] c"C\00" -@.str.5249 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.5250 = private unnamed_addr constant [32 x i8] c"' is a variable, not a function\00" -@.str.5251 = private unnamed_addr constant [29 x i8] c"there is no function named '\00" -@.str.5252 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.5253 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5254 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.5255 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5256 = private unnamed_addr constant [5 x i8] c"main\00" -@.str.5257 = private unnamed_addr constant [53 x i8] c"main can't be called, it is where the program starts\00" -@.str.5258 = private unnamed_addr constant [5 x i8] c"ptr \00" -@.str.5259 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5260 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.5196 = private unnamed_addr constant [54 x i8] c"this gives back nothing, so there is nothing to print\00" +@.str.5197 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5198 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5199 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.5200 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5201 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.5202 = private unnamed_addr constant [5 x i8] c"addr\00" +@.str.5203 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5204 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.5205 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5206 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.5207 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5208 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.5209 = private unnamed_addr constant [7 x i8] c"member\00" +@.str.5210 = private unnamed_addr constant [6 x i8] c"index\00" +@.str.5211 = private unnamed_addr constant [64 x i8] c"addr(...) needs a variable, a field or an element, like addr(x)\00" +@.str.5212 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5213 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5214 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5215 = private unnamed_addr constant [35 x i8] c"call void @finch_str_from_int(ptr \00" +@.str.5216 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5217 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.5218 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5219 = private unnamed_addr constant [36 x i8] c"call void @finch_str_from_uint(ptr \00" +@.str.5220 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5221 = private unnamed_addr constant [4 x i8] c"u64\00" +@.str.5222 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5223 = private unnamed_addr constant [37 x i8] c"call void @finch_str_from_float(ptr \00" +@.str.5224 = private unnamed_addr constant [10 x i8] c", double \00" +@.str.5225 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.5226 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5227 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.5228 = private unnamed_addr constant [36 x i8] c"call void @finch_str_from_char(ptr \00" +@.str.5229 = private unnamed_addr constant [14 x i8] c", i8 signext \00" +@.str.5230 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5231 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.5232 = private unnamed_addr constant [9 x i8] c"zext i1 \00" +@.str.5233 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str.5234 = private unnamed_addr constant [36 x i8] c"call void @finch_str_from_bool(ptr \00" +@.str.5235 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str.5236 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5237 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5238 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5239 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" +@.str.5240 = private unnamed_addr constant [33 x i8] c"call void @finch_str_from_c(ptr \00" +@.str.5241 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5242 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5243 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.5244 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5245 = private unnamed_addr constant [3 x i8] c"u8\00" +@.str.5246 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5247 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.5248 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5249 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" +@.str.5250 = private unnamed_addr constant [37 x i8] c"call void @finch_str_from_bytes(ptr \00" +@.str.5251 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5252 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5253 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.5254 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.5255 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.5256 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.5257 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.5258 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.5259 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5260 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" @.str.5261 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5262 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5263 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5264 = private unnamed_addr constant [11 x i8] c"argument '\00" -@.str.5265 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5266 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.5267 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5262 = private unnamed_addr constant [12 x i8] c"can't turn \00" +@.str.5263 = private unnamed_addr constant [10 x i8] c" into str\00" +@.str.5264 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5265 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5266 = private unnamed_addr constant [10 x i8] c"read_file\00" +@.str.5267 = private unnamed_addr constant [12 x i8] c"file_exists\00" @.str.5268 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5269 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5270 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5271 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" -@.str.5272 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.5273 = private unnamed_addr constant [40 x i8] c"' can fail, so say what happens then: \00" -@.str.5274 = private unnamed_addr constant [20 x i8] c"(...) or , \00" -@.str.5275 = private unnamed_addr constant [28 x i8] c"(...) or { ... }, or try \00" -@.str.5276 = private unnamed_addr constant [6 x i8] c"(...)\00" -@.str.5277 = private unnamed_addr constant [6 x i8] c"call \00" -@.str.5278 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5279 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.5280 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5281 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5282 = private unnamed_addr constant [14 x i8] c"extractvalue \00" -@.str.5283 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5284 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.5285 = private unnamed_addr constant [8 x i8] c"xor i1 \00" -@.str.5286 = private unnamed_addr constant [7 x i8] c", true\00" -@.str.5287 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5288 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" -@.str.5289 = private unnamed_addr constant [14 x i8] c"extractvalue \00" -@.str.5290 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5291 = private unnamed_addr constant [4 x i8] c", 2\00" +@.str.5269 = private unnamed_addr constant [14 x i8] c"the file name\00" +@.str.5270 = private unnamed_addr constant [12 x i8] c"file_exists\00" +@.str.5271 = private unnamed_addr constant [33 x i8] c"call i32 @finch_file_exists(ptr \00" +@.str.5272 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5273 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str.5274 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.5275 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.5276 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5277 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" +@.str.5278 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5279 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5280 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" +@.str.5281 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5282 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" +@.str.5283 = private unnamed_addr constant [35 x i8] c"call i32 @finch_try_read_file(ptr \00" +@.str.5284 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5285 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5286 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5287 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" +@.str.5288 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.5289 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5290 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" +@.str.5291 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" @.str.5292 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.5293 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" -@.str.5294 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.5295 = private unnamed_addr constant [14 x i8] c"extractvalue \00" -@.str.5296 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5297 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str.5298 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.5299 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5300 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.5301 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5302 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5303 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.5304 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5305 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5306 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.5294 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5295 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5296 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5297 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.5298 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5299 = private unnamed_addr constant [32 x i8] c"call void @finch_read_file(ptr \00" +@.str.5300 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5301 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5302 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5303 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5304 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5305 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5306 = private unnamed_addr constant [11 x i8] c"write_file\00" @.str.5307 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5308 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5308 = private unnamed_addr constant [14 x i8] c"the file name\00" @.str.5309 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5310 = private unnamed_addr constant [70 x i8] c"give either all fields by name (x: 1, y: 2) or none (1, 2), not a mix\00" -@.str.5311 = private unnamed_addr constant [6 x i8] c" has \00" -@.str.5312 = private unnamed_addr constant [18 x i8] c" fields, but got \00" -@.str.5313 = private unnamed_addr constant [24 x i8] c" values (or name them: \00" -@.str.5314 = private unnamed_addr constant [16 x i8] c"(field: value))\00" -@.str.5315 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5316 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5317 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5318 = private unnamed_addr constant [16 x i8] c" has no field '\00" -@.str.5319 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5320 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.5321 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5322 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5323 = private unnamed_addr constant [12 x i8] c"the field '\00" +@.str.5310 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.5311 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5312 = private unnamed_addr constant [9 x i8] c"the text\00" +@.str.5313 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5314 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" +@.str.5315 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5316 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5317 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" +@.str.5318 = private unnamed_addr constant [36 x i8] c"call i32 @finch_try_write_file(ptr \00" +@.str.5319 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5320 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5321 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5322 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" +@.str.5323 = private unnamed_addr constant [4 x i8] c", 0\00" @.str.5324 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5325 = private unnamed_addr constant [17 x i8] c"' is given twice\00" -@.str.5326 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5327 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.5328 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5329 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.5330 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5331 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5332 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5333 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5334 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5335 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5336 = private unnamed_addr constant [12 x i8] c"the field '\00" +@.str.5325 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" +@.str.5326 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5327 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5328 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" +@.str.5329 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.5330 = private unnamed_addr constant [32 x i8] c"call i32 @finch_write_file(ptr \00" +@.str.5331 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5332 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5333 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str.5334 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.5335 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.5336 = private unnamed_addr constant [12 x i8] c"delete_file\00" @.str.5337 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5338 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.5339 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5340 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5341 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.5338 = private unnamed_addr constant [14 x i8] c"the file name\00" +@.str.5339 = private unnamed_addr constant [31 x i8] c"call void @finch_str_copy(ptr \00" +@.str.5340 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5341 = private unnamed_addr constant [2 x i8] c")\00" @.str.5342 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5343 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.5344 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5345 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" -@.str.5346 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5347 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" -@.str.5348 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5349 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" -@.str.5350 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5351 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" +@.str.5343 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" +@.str.5344 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5345 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5346 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" +@.str.5347 = private unnamed_addr constant [37 x i8] c"call i32 @finch_try_delete_file(ptr \00" +@.str.5348 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5349 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5350 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" +@.str.5351 = private unnamed_addr constant [4 x i8] c", 0\00" @.str.5352 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5353 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.5354 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5355 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.5356 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5357 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5358 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5359 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5360 = private unnamed_addr constant [17 x i8] c"the default of '\00" -@.str.5361 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5362 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.5363 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5364 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.5365 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5366 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" -@.str.5367 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5368 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" -@.str.5369 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5370 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.5371 = private unnamed_addr constant [13 x i8] c"insertvalue \00" -@.str.5372 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5373 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5374 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5375 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5353 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" +@.str.5354 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5355 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5356 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" +@.str.5357 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5358 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.5359 = private unnamed_addr constant [33 x i8] c"call i32 @finch_delete_file(ptr \00" +@.str.5360 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5361 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5362 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str.5363 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.5364 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.5365 = private unnamed_addr constant [6 x i8] c"shell\00" +@.str.5366 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5367 = private unnamed_addr constant [12 x i8] c"the command\00" +@.str.5368 = private unnamed_addr constant [31 x i8] c"call void @finch_str_copy(ptr \00" +@.str.5369 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5370 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5371 = private unnamed_addr constant [27 x i8] c"call i64 @finch_shell(ptr \00" +@.str.5372 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5373 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5374 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.5375 = private unnamed_addr constant [5 x i8] c"exit\00" @.str.5376 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5377 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5378 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" -@.str.5379 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5380 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5381 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.5382 = private unnamed_addr constant [39 x i8] c"there is no variable or module named '\00" -@.str.5383 = private unnamed_addr constant [33 x i8] c"' (to use a module, add import \00" -@.str.5384 = private unnamed_addr constant [14 x i8] c" at the top)\00" -@.str.5385 = private unnamed_addr constant [2 x i8] c".\00" -@.str.5386 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5377 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.5378 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5379 = private unnamed_addr constant [14 x i8] c"the exit code\00" +@.str.5380 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" +@.str.5381 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str.5382 = private unnamed_addr constant [27 x i8] c"call i32 @fflush(ptr null)\00" +@.str.5383 = private unnamed_addr constant [21 x i8] c"call void @exit(i32 \00" +@.str.5384 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5385 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.5386 = private unnamed_addr constant [6 x i8] c"input\00" @.str.5387 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5388 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5389 = private unnamed_addr constant [2 x i8] c".\00" -@.str.5390 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5391 = private unnamed_addr constant [13 x i8] c"the module '\00" -@.str.5392 = private unnamed_addr constant [36 x i8] c"' has no function or struct named '\00" -@.str.5393 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.5394 = private unnamed_addr constant [5 x i8] c"push\00" -@.str.5395 = private unnamed_addr constant [4 x i8] c"pop\00" -@.str.5396 = private unnamed_addr constant [7 x i8] c"insert\00" -@.str.5397 = private unnamed_addr constant [7 x i8] c"remove\00" -@.str.5398 = private unnamed_addr constant [6 x i8] c"clear\00" -@.str.5399 = private unnamed_addr constant [7 x i8] c"resize\00" -@.str.5400 = private unnamed_addr constant [5 x i8] c"sort\00" -@.str.5401 = private unnamed_addr constant [8 x i8] c"reverse\00" +@.str.5388 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5389 = private unnamed_addr constant [13 x i8] c"the question\00" +@.str.5390 = private unnamed_addr constant [28 x i8] c"call void @finch_input(ptr \00" +@.str.5391 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5392 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5393 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5394 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5395 = private unnamed_addr constant [4 x i8] c"new\00" +@.str.5396 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5397 = private unnamed_addr constant [27 x i8] c"call ptr @finch_alloc(i64 \00" +@.str.5398 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5399 = private unnamed_addr constant [5 x i8] c"free\00" +@.str.5400 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5401 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str.5402 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5403 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.5404 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.5405 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5406 = private unnamed_addr constant [64 x i8] c"() would change a temporary array; store it in a variable first\00" -@.str.5407 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5408 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5409 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.5410 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5411 = private unnamed_addr constant [62 x i8] c"() would change a temporary map; store it in a variable first\00" -@.str.5412 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5413 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.5414 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5415 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.5416 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.5417 = private unnamed_addr constant [13 x i8] c"icmp eq ptr \00" -@.str.5418 = private unnamed_addr constant [7 x i8] c", null\00" -@.str.5419 = private unnamed_addr constant [9 x i8] c"called .\00" -@.str.5420 = private unnamed_addr constant [21 x i8] c"() on a null pointer\00" -@.str.5421 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5422 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.5423 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.5424 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.5425 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.5426 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.5427 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5428 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.5429 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5403 = private unnamed_addr constant [120 x i8] c"free(...) is only for pointers from new(...) or C; arrays, str and structs are freed by Finch at the end of their block\00" +@.str.5404 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5405 = private unnamed_addr constant [10 x i8] c"free.drop\00" +@.str.5406 = private unnamed_addr constant [10 x i8] c"free.done\00" +@.str.5407 = private unnamed_addr constant [13 x i8] c"icmp eq ptr \00" +@.str.5408 = private unnamed_addr constant [7 x i8] c", null\00" +@.str.5409 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5410 = private unnamed_addr constant [21 x i8] c"call void @free(ptr \00" +@.str.5411 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5412 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.5413 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5414 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.5415 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.5416 = private unnamed_addr constant [48 x i8] c"' is not generic, so it takes no type arguments\00" +@.str.5417 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5418 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5419 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5420 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.5421 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5422 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5423 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.5424 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5425 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.5426 = private unnamed_addr constant [43 x i8] c"' is generic, so say which type it holds: \00" +@.str.5427 = private unnamed_addr constant [11 x i8] c"[int](...)\00" +@.str.5428 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5429 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" @.str.5430 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5431 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.5431 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" @.str.5432 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5433 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5434 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.5433 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.5434 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.5435 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5436 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5437 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.5438 = private unnamed_addr constant [5 x i8] c"the \00" -@.str.5439 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5440 = private unnamed_addr constant [35 x i8] c" has no methods; add one with fn \00" -@.str.5441 = private unnamed_addr constant [2 x i8] c".\00" -@.str.5442 = private unnamed_addr constant [14 x i8] c"(...) { ... }\00" -@.str.5443 = private unnamed_addr constant [5 x i8] c"the \00" -@.str.5444 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5445 = private unnamed_addr constant [17 x i8] c" has no method '\00" -@.str.5446 = private unnamed_addr constant [12 x i8] c"' (it has: \00" -@.str.5447 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5448 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5449 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5450 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.5451 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5452 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.5453 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.5454 = private unnamed_addr constant [29 x i8] c"() would change a temporary \00" -@.str.5455 = private unnamed_addr constant [31 x i8] c"; store it in a variable first\00" -@.str.5456 = private unnamed_addr constant [20 x i8] c"the loop variable '\00" -@.str.5457 = private unnamed_addr constant [19 x i8] c"' can't be changed\00" -@.str.5458 = private unnamed_addr constant [2 x i8] c".\00" -@.str.5459 = private unnamed_addr constant [16 x i8] c" has no methods\00" +@.str.5436 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" +@.str.5437 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5438 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.5439 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5440 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5441 = private unnamed_addr constant [17 x i8] c"```finch\0Astruct \00" +@.str.5442 = private unnamed_addr constant [4 x i8] c" { \00" +@.str.5443 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5444 = private unnamed_addr constant [7 x i8] c" }\0A```\00" +@.str.5445 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5446 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.5447 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5448 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5449 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.5450 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5451 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" +@.str.5452 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5453 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" +@.str.5454 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5455 = private unnamed_addr constant [2 x i8] c"C\00" +@.str.5456 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.5457 = private unnamed_addr constant [32 x i8] c"' is a variable, not a function\00" +@.str.5458 = private unnamed_addr constant [29 x i8] c"there is no function named '\00" +@.str.5459 = private unnamed_addr constant [2 x i8] c"'\00" @.str.5460 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5461 = private unnamed_addr constant [47 x i8] c"getelementptr inbounds { ptr, i64, i64 }, ptr \00" -@.str.5462 = private unnamed_addr constant [15 x i8] c", i32 0, i32 1\00" -@.str.5463 = private unnamed_addr constant [5 x i8] c"push\00" -@.str.5464 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5465 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5466 = private unnamed_addr constant [12 x i8] c"the element\00" -@.str.5467 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5468 = private unnamed_addr constant [9 x i8] c"add i64 \00" -@.str.5469 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str.5470 = private unnamed_addr constant [34 x i8] c"call void @finch_arr_reserve(ptr \00" -@.str.5471 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5472 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5473 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5474 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.5475 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.5476 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5477 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5478 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5479 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.5480 = private unnamed_addr constant [4 x i8] c"pop\00" -@.str.5481 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5482 = private unnamed_addr constant [13 x i8] c"icmp eq i64 \00" -@.str.5483 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.5484 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" -@.str.5485 = private unnamed_addr constant [9 x i8] c"sub i64 \00" -@.str.5486 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str.5487 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.5488 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.5489 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5490 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5491 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5492 = private unnamed_addr constant [6 x i8] c"clear\00" -@.str.5493 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.5494 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5495 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.5496 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.5497 = private unnamed_addr constant [5 x i8] c"find\00" -@.str.5498 = private unnamed_addr constant [9 x i8] c"contains\00" +@.str.5461 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.5462 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5463 = private unnamed_addr constant [5 x i8] c"main\00" +@.str.5464 = private unnamed_addr constant [53 x i8] c"main can't be called, it is where the program starts\00" +@.str.5465 = private unnamed_addr constant [5 x i8] c"ptr \00" +@.str.5466 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5467 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.5468 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5469 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5470 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5471 = private unnamed_addr constant [11 x i8] c"argument '\00" +@.str.5472 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5473 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.5474 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5475 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5476 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5477 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5478 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" +@.str.5479 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.5480 = private unnamed_addr constant [40 x i8] c"' can fail, so say what happens then: \00" +@.str.5481 = private unnamed_addr constant [20 x i8] c"(...) or , \00" +@.str.5482 = private unnamed_addr constant [28 x i8] c"(...) or { ... }, or try \00" +@.str.5483 = private unnamed_addr constant [6 x i8] c"(...)\00" +@.str.5484 = private unnamed_addr constant [6 x i8] c"call \00" +@.str.5485 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5486 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.5487 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5488 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5489 = private unnamed_addr constant [14 x i8] c"extractvalue \00" +@.str.5490 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5491 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.5492 = private unnamed_addr constant [8 x i8] c"xor i1 \00" +@.str.5493 = private unnamed_addr constant [7 x i8] c", true\00" +@.str.5494 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5495 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" +@.str.5496 = private unnamed_addr constant [14 x i8] c"extractvalue \00" +@.str.5497 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5498 = private unnamed_addr constant [4 x i8] c", 2\00" @.str.5499 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5500 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5501 = private unnamed_addr constant [22 x i8] c"the value to look for\00" -@.str.5502 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5503 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5504 = private unnamed_addr constant [3 x i8] c"-1\00" -@.str.5505 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5506 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.5507 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5508 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5509 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.5510 = private unnamed_addr constant [10 x i8] c"find.cond\00" -@.str.5511 = private unnamed_addr constant [10 x i8] c"find.body\00" -@.str.5512 = private unnamed_addr constant [9 x i8] c"find.hit\00" -@.str.5513 = private unnamed_addr constant [10 x i8] c"find.next\00" -@.str.5514 = private unnamed_addr constant [9 x i8] c"find.end\00" -@.str.5515 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5516 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" -@.str.5517 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5518 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.5519 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5520 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5521 = private unnamed_addr constant [3 x i8] c"==\00" -@.str.5522 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5523 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5524 = private unnamed_addr constant [9 x i8] c"add i64 \00" -@.str.5525 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str.5526 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5527 = private unnamed_addr constant [5 x i8] c"find\00" -@.str.5528 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.5529 = private unnamed_addr constant [14 x i8] c"icmp sge i64 \00" -@.str.5530 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.5531 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.5532 = private unnamed_addr constant [5 x i8] c"join\00" -@.str.5533 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5534 = private unnamed_addr constant [32 x i8] c"join() works on an array of str\00" +@.str.5500 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" +@.str.5501 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.5502 = private unnamed_addr constant [14 x i8] c"extractvalue \00" +@.str.5503 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5504 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.5505 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.5506 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5507 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.5508 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5509 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5510 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.5511 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5512 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5513 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.5514 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5515 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5516 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5517 = private unnamed_addr constant [70 x i8] c"give either all fields by name (x: 1, y: 2) or none (1, 2), not a mix\00" +@.str.5518 = private unnamed_addr constant [6 x i8] c" has \00" +@.str.5519 = private unnamed_addr constant [18 x i8] c" fields, but got \00" +@.str.5520 = private unnamed_addr constant [24 x i8] c" values (or name them: \00" +@.str.5521 = private unnamed_addr constant [16 x i8] c"(field: value))\00" +@.str.5522 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5523 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5524 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5525 = private unnamed_addr constant [16 x i8] c" has no field '\00" +@.str.5526 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5527 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.5528 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5529 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5530 = private unnamed_addr constant [12 x i8] c"the field '\00" +@.str.5531 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5532 = private unnamed_addr constant [17 x i8] c"' is given twice\00" +@.str.5533 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5534 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" @.str.5535 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5536 = private unnamed_addr constant [14 x i8] c"the separator\00" -@.str.5537 = private unnamed_addr constant [31 x i8] c"call void @finch_str_join(ptr \00" -@.str.5538 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5539 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5540 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5541 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5542 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5543 = private unnamed_addr constant [7 x i8] c"insert\00" +@.str.5536 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.5537 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5538 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5539 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5540 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5541 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5542 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5543 = private unnamed_addr constant [12 x i8] c"the field '\00" @.str.5544 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5545 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.5545 = private unnamed_addr constant [2 x i8] c"'\00" @.str.5546 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5547 = private unnamed_addr constant [13 x i8] c"the position\00" -@.str.5548 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5547 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5548 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.5549 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5550 = private unnamed_addr constant [12 x i8] c"the element\00" +@.str.5550 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" @.str.5551 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5552 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.5552 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" @.str.5553 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5554 = private unnamed_addr constant [37 x i8] c"call void @finch_arr_insert_gap(ptr \00" -@.str.5555 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5556 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5557 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5558 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5559 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5560 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.5561 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.5562 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5563 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5564 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.5565 = private unnamed_addr constant [7 x i8] c"remove\00" +@.str.5554 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" +@.str.5555 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5556 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" +@.str.5557 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5558 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" +@.str.5559 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5560 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.5561 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5562 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.5563 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5564 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5565 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.5566 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5567 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.5567 = private unnamed_addr constant [17 x i8] c"the default of '\00" @.str.5568 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5569 = private unnamed_addr constant [13 x i8] c"the position\00" -@.str.5570 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5571 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.5572 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.5573 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5574 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5575 = private unnamed_addr constant [37 x i8] c"call void @finch_arr_remove_gap(ptr \00" -@.str.5576 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5577 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5578 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5579 = private unnamed_addr constant [7 x i8] c"resize\00" -@.str.5580 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5581 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.5582 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5583 = private unnamed_addr constant [15 x i8] c"the new length\00" -@.str.5584 = private unnamed_addr constant [33 x i8] c"call void @finch_arr_resize(ptr \00" -@.str.5585 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5586 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5587 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5588 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.5589 = private unnamed_addr constant [8 x i8] c"reverse\00" -@.str.5590 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5591 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.5592 = private unnamed_addr constant [10 x i8] c"sdiv i64 \00" -@.str.5593 = private unnamed_addr constant [4 x i8] c", 2\00" -@.str.5594 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.5595 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5596 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5597 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5598 = private unnamed_addr constant [9 x i8] c"sub i64 \00" -@.str.5599 = private unnamed_addr constant [9 x i8] c"sub i64 \00" -@.str.5600 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str.5601 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5602 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5603 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.5604 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5605 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5606 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.5607 = private unnamed_addr constant [6 x i8] c"slice\00" -@.str.5608 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5609 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.5569 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.5570 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5571 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.5572 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5573 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" +@.str.5574 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5575 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" +@.str.5576 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5577 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.5578 = private unnamed_addr constant [13 x i8] c"insertvalue \00" +@.str.5579 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5580 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5581 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5582 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5583 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5584 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5585 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" +@.str.5586 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5587 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5588 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5589 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.5590 = private unnamed_addr constant [39 x i8] c"there is no variable or module named '\00" +@.str.5591 = private unnamed_addr constant [33 x i8] c"' (to use a module, add import \00" +@.str.5592 = private unnamed_addr constant [14 x i8] c" at the top)\00" +@.str.5593 = private unnamed_addr constant [2 x i8] c".\00" +@.str.5594 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5595 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5596 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5597 = private unnamed_addr constant [2 x i8] c".\00" +@.str.5598 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5599 = private unnamed_addr constant [13 x i8] c"the module '\00" +@.str.5600 = private unnamed_addr constant [36 x i8] c"' has no function or struct named '\00" +@.str.5601 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.5602 = private unnamed_addr constant [5 x i8] c"push\00" +@.str.5603 = private unnamed_addr constant [4 x i8] c"pop\00" +@.str.5604 = private unnamed_addr constant [7 x i8] c"insert\00" +@.str.5605 = private unnamed_addr constant [7 x i8] c"remove\00" +@.str.5606 = private unnamed_addr constant [6 x i8] c"clear\00" +@.str.5607 = private unnamed_addr constant [7 x i8] c"resize\00" +@.str.5608 = private unnamed_addr constant [5 x i8] c"sort\00" +@.str.5609 = private unnamed_addr constant [8 x i8] c"reverse\00" @.str.5610 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5611 = private unnamed_addr constant [10 x i8] c"the start\00" -@.str.5612 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5613 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.5614 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5615 = private unnamed_addr constant [8 x i8] c"the end\00" -@.str.5616 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5617 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" -@.str.5618 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.5619 = private unnamed_addr constant [14 x i8] c"icmp sgt i64 \00" -@.str.5620 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5621 = private unnamed_addr constant [14 x i8] c"icmp sgt i64 \00" -@.str.5622 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5623 = private unnamed_addr constant [7 x i8] c"or i1 \00" -@.str.5624 = private unnamed_addr constant [7 x i8] c"or i1 \00" -@.str.5625 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5626 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5627 = private unnamed_addr constant [34 x i8] c"slice(start, end) is out of range\00" -@.str.5628 = private unnamed_addr constant [9 x i8] c"sub i64 \00" -@.str.5629 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5630 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5631 = private unnamed_addr constant [31 x i8] c"call void @finch_arr_make(ptr \00" -@.str.5632 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5633 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5634 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5635 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.5636 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.5637 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.5638 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5639 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5611 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.5612 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.5613 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5614 = private unnamed_addr constant [64 x i8] c"() would change a temporary array; store it in a variable first\00" +@.str.5615 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5616 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5617 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.5618 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5619 = private unnamed_addr constant [62 x i8] c"() would change a temporary map; store it in a variable first\00" +@.str.5620 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5621 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5622 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5623 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.5624 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5625 = private unnamed_addr constant [13 x i8] c"icmp eq ptr \00" +@.str.5626 = private unnamed_addr constant [7 x i8] c", null\00" +@.str.5627 = private unnamed_addr constant [9 x i8] c"called .\00" +@.str.5628 = private unnamed_addr constant [21 x i8] c"() on a null pointer\00" +@.str.5629 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5630 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.5631 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.5632 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.5633 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.5634 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.5635 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5636 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.5637 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5638 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5639 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.5640 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5641 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.5642 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5643 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5644 = private unnamed_addr constant [9 x i8] c"add i64 \00" -@.str.5645 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5646 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5647 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5648 = private unnamed_addr constant [5 x i8] c"sort\00" -@.str.5649 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.5650 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5651 = private unnamed_addr constant [48 x i8] c"sort() works on arrays of numbers, chars or str\00" -@.str.5652 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5653 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.5654 = private unnamed_addr constant [22 x i8] c"call void @qsort(ptr \00" -@.str.5655 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5656 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5657 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5658 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5659 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.5660 = private unnamed_addr constant [25 x i8] c"an array has no method '\00" -@.str.5661 = private unnamed_addr constant [97 x i8] c"' (it has: push, pop, insert, remove, clear, resize, find, contains, join, slice, reverse, sort)\00" -@.str.5662 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5663 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5664 = private unnamed_addr constant [47 x i8] c"getelementptr inbounds { ptr, i64, i64 }, ptr \00" -@.str.5665 = private unnamed_addr constant [15 x i8] c", i32 0, i32 1\00" -@.str.5666 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.5667 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" -@.str.5668 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5669 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" -@.str.5670 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.5671 = private unnamed_addr constant [11 x i8] c"select i1 \00" -@.str.5672 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5673 = private unnamed_addr constant [11 x i8] c"select i1 \00" -@.str.5674 = private unnamed_addr constant [14 x i8] c", i64 0, i64 \00" -@.str.5675 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5676 = private unnamed_addr constant [9 x i8] c"sub i64 \00" -@.str.5677 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5678 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.5679 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5641 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5642 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.5643 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5644 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5645 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.5646 = private unnamed_addr constant [5 x i8] c"the \00" +@.str.5647 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5648 = private unnamed_addr constant [35 x i8] c" has no methods; add one with fn \00" +@.str.5649 = private unnamed_addr constant [2 x i8] c".\00" +@.str.5650 = private unnamed_addr constant [14 x i8] c"(...) { ... }\00" +@.str.5651 = private unnamed_addr constant [5 x i8] c"the \00" +@.str.5652 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5653 = private unnamed_addr constant [17 x i8] c" has no method '\00" +@.str.5654 = private unnamed_addr constant [12 x i8] c"' (it has: \00" +@.str.5655 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5656 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5657 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5658 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.5659 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5660 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.5661 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.5662 = private unnamed_addr constant [29 x i8] c"() would change a temporary \00" +@.str.5663 = private unnamed_addr constant [31 x i8] c"; store it in a variable first\00" +@.str.5664 = private unnamed_addr constant [20 x i8] c"the loop variable '\00" +@.str.5665 = private unnamed_addr constant [19 x i8] c"' can't be changed\00" +@.str.5666 = private unnamed_addr constant [2 x i8] c".\00" +@.str.5667 = private unnamed_addr constant [16 x i8] c" has no methods\00" +@.str.5668 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5669 = private unnamed_addr constant [47 x i8] c"getelementptr inbounds { ptr, i64, i64 }, ptr \00" +@.str.5670 = private unnamed_addr constant [15 x i8] c", i32 0, i32 1\00" +@.str.5671 = private unnamed_addr constant [5 x i8] c"push\00" +@.str.5672 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5673 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5674 = private unnamed_addr constant [12 x i8] c"the element\00" +@.str.5675 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5676 = private unnamed_addr constant [9 x i8] c"add i64 \00" +@.str.5677 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.5678 = private unnamed_addr constant [34 x i8] c"call void @finch_arr_reserve(ptr \00" +@.str.5679 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str.5680 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5681 = private unnamed_addr constant [9 x i8] c"add i64 \00" -@.str.5682 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5683 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5684 = private unnamed_addr constant [12 x i8] c"@finch.cmp.\00" -@.str.5685 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5686 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" -@.str.5687 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5688 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" -@.str.5689 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5690 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5691 = private unnamed_addr constant [40 x i8] c"call i64 @finch_str_cmp(ptr %x, ptr %y)\00" -@.str.5692 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" -@.str.5693 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str.5694 = private unnamed_addr constant [3 x i8] c"%x\00" -@.str.5695 = private unnamed_addr constant [3 x i8] c"%y\00" -@.str.5696 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5697 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5698 = private unnamed_addr constant [10 x i8] c"fcmp olt \00" -@.str.5699 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5700 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5701 = private unnamed_addr constant [10 x i8] c"fcmp ogt \00" -@.str.5702 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5703 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5704 = private unnamed_addr constant [6 x i8] c"icmp \00" -@.str.5705 = private unnamed_addr constant [2 x i8] c"<\00" -@.str.5706 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5707 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5708 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5709 = private unnamed_addr constant [6 x i8] c"icmp \00" -@.str.5710 = private unnamed_addr constant [2 x i8] c">\00" -@.str.5711 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5712 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5713 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5714 = private unnamed_addr constant [9 x i8] c"sub i32 \00" -@.str.5715 = private unnamed_addr constant [9 x i8] c"zext i1 \00" -@.str.5716 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str.5717 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5718 = private unnamed_addr constant [9 x i8] c"zext i1 \00" -@.str.5719 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str.5720 = private unnamed_addr constant [9 x i8] c"ret i32 \00" -@.str.5721 = private unnamed_addr constant [21 x i8] c"define internal i32 \00" -@.str.5722 = private unnamed_addr constant [17 x i8] c"(ptr %x, ptr %y)\00" -@.str.5723 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5724 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" -@.str.5725 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5726 = private unnamed_addr constant [4 x i8] c"sub\00" -@.str.5727 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5728 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.5729 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5730 = private unnamed_addr constant [10 x i8] c"the start\00" -@.str.5731 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5732 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.5733 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5734 = private unnamed_addr constant [8 x i8] c"the end\00" -@.str.5735 = private unnamed_addr constant [30 x i8] c"call void @finch_str_sub(ptr \00" -@.str.5736 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5737 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5738 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5739 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5740 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5741 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5742 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5743 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5744 = private unnamed_addr constant [5 x i8] c"find\00" -@.str.5745 = private unnamed_addr constant [9 x i8] c"contains\00" -@.str.5746 = private unnamed_addr constant [12 x i8] c"starts_with\00" -@.str.5747 = private unnamed_addr constant [10 x i8] c"ends_with\00" -@.str.5748 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5749 = private unnamed_addr constant [21 x i8] c"the text to look for\00" -@.str.5750 = private unnamed_addr constant [5 x i8] c"find\00" -@.str.5751 = private unnamed_addr constant [30 x i8] c"call i64 @finch_str_find(ptr \00" -@.str.5752 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5753 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5754 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.5755 = private unnamed_addr constant [9 x i8] c"contains\00" -@.str.5756 = private unnamed_addr constant [30 x i8] c"call i64 @finch_str_find(ptr \00" -@.str.5757 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5758 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5759 = private unnamed_addr constant [14 x i8] c"icmp sge i64 \00" -@.str.5760 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.5761 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.5762 = private unnamed_addr constant [18 x i8] c"@finch_str_starts\00" -@.str.5763 = private unnamed_addr constant [10 x i8] c"ends_with\00" -@.str.5764 = private unnamed_addr constant [16 x i8] c"@finch_str_ends\00" -@.str.5765 = private unnamed_addr constant [10 x i8] c"call i32 \00" -@.str.5766 = private unnamed_addr constant [6 x i8] c"(ptr \00" -@.str.5767 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5768 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5769 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str.5770 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.5771 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.5772 = private unnamed_addr constant [5 x i8] c"trim\00" -@.str.5773 = private unnamed_addr constant [6 x i8] c"upper\00" -@.str.5774 = private unnamed_addr constant [6 x i8] c"lower\00" -@.str.5775 = private unnamed_addr constant [22 x i8] c"call void @finch_str_\00" -@.str.5776 = private unnamed_addr constant [6 x i8] c"(ptr \00" -@.str.5777 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5778 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5779 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5780 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5781 = private unnamed_addr constant [8 x i8] c"replace\00" -@.str.5782 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5783 = private unnamed_addr constant [20 x i8] c"the text to replace\00" -@.str.5784 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5785 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.5786 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5787 = private unnamed_addr constant [13 x i8] c"the new text\00" -@.str.5788 = private unnamed_addr constant [34 x i8] c"call void @finch_str_replace(ptr \00" -@.str.5789 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5790 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5791 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5792 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5793 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5794 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5795 = private unnamed_addr constant [6 x i8] c"split\00" -@.str.5796 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5797 = private unnamed_addr constant [14 x i8] c"the separator\00" -@.str.5798 = private unnamed_addr constant [32 x i8] c"call void @finch_str_split(ptr \00" -@.str.5799 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5800 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5801 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5802 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5803 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5804 = private unnamed_addr constant [7 x i8] c"repeat\00" +@.str.5681 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5682 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5683 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.5684 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5685 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5686 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5687 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.5688 = private unnamed_addr constant [4 x i8] c"pop\00" +@.str.5689 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5690 = private unnamed_addr constant [13 x i8] c"icmp eq i64 \00" +@.str.5691 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.5692 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" +@.str.5693 = private unnamed_addr constant [9 x i8] c"sub i64 \00" +@.str.5694 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.5695 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5696 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.5697 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5698 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5699 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5700 = private unnamed_addr constant [6 x i8] c"clear\00" +@.str.5701 = private unnamed_addr constant [2 x i8] c"0\00" +@.str.5702 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5703 = private unnamed_addr constant [2 x i8] c"0\00" +@.str.5704 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.5705 = private unnamed_addr constant [5 x i8] c"find\00" +@.str.5706 = private unnamed_addr constant [9 x i8] c"contains\00" +@.str.5707 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5708 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5709 = private unnamed_addr constant [22 x i8] c"the value to look for\00" +@.str.5710 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5711 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5712 = private unnamed_addr constant [3 x i8] c"-1\00" +@.str.5713 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5714 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5715 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5716 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5717 = private unnamed_addr constant [2 x i8] c"0\00" +@.str.5718 = private unnamed_addr constant [10 x i8] c"find.cond\00" +@.str.5719 = private unnamed_addr constant [10 x i8] c"find.body\00" +@.str.5720 = private unnamed_addr constant [9 x i8] c"find.hit\00" +@.str.5721 = private unnamed_addr constant [10 x i8] c"find.next\00" +@.str.5722 = private unnamed_addr constant [9 x i8] c"find.end\00" +@.str.5723 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5724 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" +@.str.5725 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5726 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.5727 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5728 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5729 = private unnamed_addr constant [3 x i8] c"==\00" +@.str.5730 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5731 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5732 = private unnamed_addr constant [9 x i8] c"add i64 \00" +@.str.5733 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.5734 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5735 = private unnamed_addr constant [5 x i8] c"find\00" +@.str.5736 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.5737 = private unnamed_addr constant [14 x i8] c"icmp sge i64 \00" +@.str.5738 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.5739 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.5740 = private unnamed_addr constant [5 x i8] c"join\00" +@.str.5741 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5742 = private unnamed_addr constant [32 x i8] c"join() works on an array of str\00" +@.str.5743 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5744 = private unnamed_addr constant [14 x i8] c"the separator\00" +@.str.5745 = private unnamed_addr constant [31 x i8] c"call void @finch_str_join(ptr \00" +@.str.5746 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5747 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5748 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5749 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5750 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5751 = private unnamed_addr constant [7 x i8] c"insert\00" +@.str.5752 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5753 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.5754 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5755 = private unnamed_addr constant [13 x i8] c"the position\00" +@.str.5756 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5757 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5758 = private unnamed_addr constant [12 x i8] c"the element\00" +@.str.5759 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5760 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.5761 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5762 = private unnamed_addr constant [37 x i8] c"call void @finch_arr_insert_gap(ptr \00" +@.str.5763 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5764 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5765 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5766 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5767 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5768 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5769 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.5770 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5771 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5772 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.5773 = private unnamed_addr constant [7 x i8] c"remove\00" +@.str.5774 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5775 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.5776 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5777 = private unnamed_addr constant [13 x i8] c"the position\00" +@.str.5778 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5779 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5780 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.5781 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5782 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5783 = private unnamed_addr constant [37 x i8] c"call void @finch_arr_remove_gap(ptr \00" +@.str.5784 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5785 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5786 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5787 = private unnamed_addr constant [7 x i8] c"resize\00" +@.str.5788 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5789 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.5790 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5791 = private unnamed_addr constant [15 x i8] c"the new length\00" +@.str.5792 = private unnamed_addr constant [33 x i8] c"call void @finch_arr_resize(ptr \00" +@.str.5793 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5794 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5795 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5796 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.5797 = private unnamed_addr constant [8 x i8] c"reverse\00" +@.str.5798 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5799 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5800 = private unnamed_addr constant [10 x i8] c"sdiv i64 \00" +@.str.5801 = private unnamed_addr constant [4 x i8] c", 2\00" +@.str.5802 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.5803 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5804 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str.5805 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5806 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.5807 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5808 = private unnamed_addr constant [10 x i8] c"the count\00" -@.str.5809 = private unnamed_addr constant [33 x i8] c"call void @finch_str_repeat(ptr \00" -@.str.5810 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5811 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5812 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5813 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5814 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5815 = private unnamed_addr constant [6 x i8] c"bytes\00" -@.str.5816 = private unnamed_addr constant [37 x i8] c"call void @finch_bytes_from_str(ptr \00" -@.str.5817 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5818 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5819 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5820 = private unnamed_addr constant [3 x i8] c"u8\00" -@.str.5821 = private unnamed_addr constant [22 x i8] c"a str has no method '\00" -@.str.5822 = private unnamed_addr constant [107 x i8] c"' (it has: sub, find, contains, starts_with, ends_with, split, trim, upper, lower, replace, repeat, bytes)\00" -@.str.5823 = private unnamed_addr constant [55 x i8] c"declare void @finch_panic(ptr, i64, ptr) noreturn cold\00" -@.str.5824 = private unnamed_addr constant [66 x i8] c"declare void @finch_panic_index(ptr, i64, i64, i64) noreturn cold\00" -@.str.5825 = private unnamed_addr constant [30 x i8] c"declare ptr @finch_alloc(i64)\00" -@.str.5826 = private unnamed_addr constant [39 x i8] c"declare void @finch_str_copy(ptr, ptr)\00" -@.str.5827 = private unnamed_addr constant [34 x i8] c"declare void @finch_str_drop(ptr)\00" -@.str.5828 = private unnamed_addr constant [34 x i8] c"declare void @finch_arr_free(ptr)\00" -@.str.5829 = private unnamed_addr constant [34 x i8] c"declare void @finch_map_free(ptr)\00" -@.str.5830 = private unnamed_addr constant [33 x i8] c"declare void @finch_str_own(ptr)\00" -@.str.5831 = private unnamed_addr constant [46 x i8] c"declare void @finch_str_concat(ptr, ptr, ptr)\00" -@.str.5832 = private unnamed_addr constant [36 x i8] c"declare i32 @finch_str_eq(ptr, ptr)\00" -@.str.5833 = private unnamed_addr constant [37 x i8] c"declare i64 @finch_str_cmp(ptr, ptr)\00" -@.str.5834 = private unnamed_addr constant [43 x i8] c"declare void @finch_buf_add(ptr, ptr, i64)\00" -@.str.5835 = private unnamed_addr constant [38 x i8] c"declare void @finch_buf_int(ptr, i64)\00" -@.str.5836 = private unnamed_addr constant [39 x i8] c"declare void @finch_buf_uint(ptr, i64)\00" -@.str.5837 = private unnamed_addr constant [43 x i8] c"declare void @finch_buf_float(ptr, double)\00" -@.str.5838 = private unnamed_addr constant [39 x i8] c"declare void @finch_buf_bool(ptr, i32)\00" -@.str.5839 = private unnamed_addr constant [38 x i8] c"declare void @finch_buf_ptr(ptr, ptr)\00" -@.str.5840 = private unnamed_addr constant [43 x i8] c"declare void @finch_buf_char(ptr, i8, i32)\00" -@.str.5841 = private unnamed_addr constant [43 x i8] c"declare void @finch_buf_str(ptr, ptr, i32)\00" -@.str.5842 = private unnamed_addr constant [35 x i8] c"declare void @finch_buf_print(ptr)\00" -@.str.5843 = private unnamed_addr constant [43 x i8] c"declare void @finch_str_from_int(ptr, i64)\00" -@.str.5844 = private unnamed_addr constant [44 x i8] c"declare void @finch_str_from_uint(ptr, i64)\00" -@.str.5845 = private unnamed_addr constant [48 x i8] c"declare void @finch_str_from_float(ptr, double)\00" -@.str.5846 = private unnamed_addr constant [51 x i8] c"declare void @finch_str_from_char(ptr, i8 signext)\00" -@.str.5847 = private unnamed_addr constant [44 x i8] c"declare void @finch_str_from_bool(ptr, i32)\00" -@.str.5848 = private unnamed_addr constant [45 x i8] c"declare i64 @finch_str_to_int(ptr, ptr, i64)\00" -@.str.5849 = private unnamed_addr constant [50 x i8] c"declare double @finch_str_to_float(ptr, ptr, i64)\00" -@.str.5850 = private unnamed_addr constant [58 x i8] c"declare void @finch_str_sub(ptr, ptr, i64, i64, ptr, i64)\00" -@.str.5851 = private unnamed_addr constant [38 x i8] c"declare i64 @finch_str_find(ptr, ptr)\00" -@.str.5852 = private unnamed_addr constant [40 x i8] c"declare i32 @finch_str_starts(ptr, ptr)\00" -@.str.5853 = private unnamed_addr constant [38 x i8] c"declare i32 @finch_str_ends(ptr, ptr)\00" -@.str.5854 = private unnamed_addr constant [39 x i8] c"declare void @finch_str_trim(ptr, ptr)\00" -@.str.5855 = private unnamed_addr constant [40 x i8] c"declare void @finch_str_upper(ptr, ptr)\00" -@.str.5856 = private unnamed_addr constant [40 x i8] c"declare void @finch_str_lower(ptr, ptr)\00" -@.str.5857 = private unnamed_addr constant [52 x i8] c"declare void @finch_str_replace(ptr, ptr, ptr, ptr)\00" -@.str.5858 = private unnamed_addr constant [45 x i8] c"declare void @finch_str_split(ptr, ptr, ptr)\00" -@.str.5859 = private unnamed_addr constant [44 x i8] c"declare void @finch_str_join(ptr, ptr, ptr)\00" -@.str.5860 = private unnamed_addr constant [46 x i8] c"declare void @finch_str_repeat(ptr, ptr, i64)\00" -@.str.5861 = private unnamed_addr constant [45 x i8] c"declare void @finch_bytes_from_str(ptr, ptr)\00" -@.str.5862 = private unnamed_addr constant [53 x i8] c"declare i64 @finch_map_find(ptr, ptr, i64, i64, i32)\00" -@.str.5863 = private unnamed_addr constant [58 x i8] c"declare i64 @finch_map_slot(ptr, ptr, i64, i64, i32, ptr)\00" -@.str.5864 = private unnamed_addr constant [49 x i8] c"declare void @finch_map_remove_at(ptr, i64, i64)\00" -@.str.5865 = private unnamed_addr constant [35 x i8] c"declare void @finch_map_clear(ptr)\00" -@.str.5866 = private unnamed_addr constant [49 x i8] c"declare void @finch_map_clone_raw(ptr, ptr, i64)\00" -@.str.5867 = private unnamed_addr constant [61 x i8] c"declare void @finch_map_missing(ptr, i64, ptr) noreturn cold\00" -@.str.5868 = private unnamed_addr constant [56 x i8] c"declare void @finch_map_changed(ptr, i64) noreturn cold\00" -@.str.5869 = private unnamed_addr constant [47 x i8] c"declare void @finch_arr_reserve(ptr, i64, i64)\00" -@.str.5870 = private unnamed_addr constant [49 x i8] c"declare void @finch_arr_clone_raw(ptr, ptr, i64)\00" -@.str.5871 = private unnamed_addr constant [44 x i8] c"declare void @finch_arr_make(ptr, i64, i64)\00" -@.str.5872 = private unnamed_addr constant [46 x i8] c"declare void @finch_arr_resize(ptr, i64, i64)\00" -@.str.5873 = private unnamed_addr constant [60 x i8] c"declare void @finch_arr_insert_gap(ptr, i64, i64, ptr, i64)\00" -@.str.5874 = private unnamed_addr constant [50 x i8] c"declare void @finch_arr_remove_gap(ptr, i64, i64)\00" -@.str.5875 = private unnamed_addr constant [40 x i8] c"declare void @qsort(ptr, i64, i64, ptr)\00" -@.str.5876 = private unnamed_addr constant [40 x i8] c"declare void @finch_args(ptr, i32, ptr)\00" -@.str.5877 = private unnamed_addr constant [36 x i8] c"declare void @finch_input(ptr, ptr)\00" -@.str.5878 = private unnamed_addr constant [36 x i8] c"declare i32 @finch_file_exists(ptr)\00" -@.str.5879 = private unnamed_addr constant [46 x i8] c"declare i32 @finch_str_try_int(ptr, ptr, ptr)\00" -@.str.5880 = private unnamed_addr constant [48 x i8] c"declare i32 @finch_str_try_float(ptr, ptr, ptr)\00" -@.str.5881 = private unnamed_addr constant [48 x i8] c"declare i32 @finch_try_read_file(ptr, ptr, ptr)\00" -@.str.5882 = private unnamed_addr constant [49 x i8] c"declare i32 @finch_try_write_file(ptr, ptr, ptr)\00" -@.str.5883 = private unnamed_addr constant [45 x i8] c"declare i32 @finch_try_delete_file(ptr, ptr)\00" -@.str.5884 = private unnamed_addr constant [38 x i8] c"declare void @finch_report_error(ptr)\00" -@.str.5885 = private unnamed_addr constant [50 x i8] c"declare void @finch_read_file(ptr, ptr, ptr, i64)\00" -@.str.5886 = private unnamed_addr constant [40 x i8] c"declare i32 @finch_write_file(ptr, ptr)\00" -@.str.5887 = private unnamed_addr constant [30 x i8] c"declare i64 @finch_shell(ptr)\00" -@.str.5888 = private unnamed_addr constant [36 x i8] c"declare i32 @finch_delete_file(ptr)\00" -@.str.5889 = private unnamed_addr constant [30 x i8] c"declare i32 @printf(ptr, ...)\00" -@.str.5890 = private unnamed_addr constant [25 x i8] c"declare i32 @fflush(ptr)\00" -@.str.5891 = private unnamed_addr constant [41 x i8] c"declare void @finch_str_from_c(ptr, ptr)\00" -@.str.5892 = private unnamed_addr constant [34 x i8] c"declare void @finch_on_fatal(ptr)\00" -@.str.5893 = private unnamed_addr constant [35 x i8] c"declare ptr @finch_std_stream(i32)\00" -@.str.5894 = private unnamed_addr constant [45 x i8] c"declare void @finch_str_from_bytes(ptr, ptr)\00" -@.str.5895 = private unnamed_addr constant [33 x i8] c"declare void @exit(i32) noreturn\00" -@.str.5896 = private unnamed_addr constant [24 x i8] c"declare void @free(ptr)\00" -@.str.5897 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.5898 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.5899 = private unnamed_addr constant [53 x i8] c"; generated by the Finch compiler written in Finch\0A\0A\00" -@.str.5900 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5901 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" -@.str.5902 = private unnamed_addr constant [18 x i8] c"target triple = \22\00" -@.str.5903 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5904 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" -@.str.5905 = private unnamed_addr constant [4 x i8] c"\22\0A\0A\00" -@.str.5906 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5907 = private unnamed_addr constant [29 x i8] c"used .head on a null pointer\00" -@.str.5908 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.5909 = private unnamed_addr constant [3 x i8] c"\0A\0A\00" -@.str.5910 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.5911 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5912 = private unnamed_addr constant [30 x i8] c"used .debug on a null pointer\00" -@.str.5913 = private unnamed_addr constant [63 x i8] c"declare void @llvm.dbg.declare(metadata, metadata, metadata)\0A\0A\00" -@.str.5914 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5915 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.5916 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.5917 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5918 = private unnamed_addr constant [30 x i8] c"used .debug on a null pointer\00" -@.str.5919 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.5920 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5921 = private unnamed_addr constant [30 x i8] c"used .debug on a null pointer\00" -@.str.5922 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5923 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" -@.str.5924 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5925 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5926 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" -@.str.5927 = private unnamed_addr constant [34 x i8] c"!{i32 7, !\22Dwarf Version\22, i32 4}\00" -@.str.5928 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5929 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" -@.str.5930 = private unnamed_addr constant [39 x i8] c"!{i32 2, !\22Debug Info Version\22, i32 3}\00" +@.str.5806 = private unnamed_addr constant [9 x i8] c"sub i64 \00" +@.str.5807 = private unnamed_addr constant [9 x i8] c"sub i64 \00" +@.str.5808 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.5809 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5810 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5811 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.5812 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5813 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5814 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.5815 = private unnamed_addr constant [6 x i8] c"slice\00" +@.str.5816 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5817 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.5818 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5819 = private unnamed_addr constant [10 x i8] c"the start\00" +@.str.5820 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5821 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.5822 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5823 = private unnamed_addr constant [8 x i8] c"the end\00" +@.str.5824 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5825 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" +@.str.5826 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.5827 = private unnamed_addr constant [14 x i8] c"icmp sgt i64 \00" +@.str.5828 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5829 = private unnamed_addr constant [14 x i8] c"icmp sgt i64 \00" +@.str.5830 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5831 = private unnamed_addr constant [7 x i8] c"or i1 \00" +@.str.5832 = private unnamed_addr constant [7 x i8] c"or i1 \00" +@.str.5833 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5834 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5835 = private unnamed_addr constant [34 x i8] c"slice(start, end) is out of range\00" +@.str.5836 = private unnamed_addr constant [9 x i8] c"sub i64 \00" +@.str.5837 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5838 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5839 = private unnamed_addr constant [31 x i8] c"call void @finch_arr_make(ptr \00" +@.str.5840 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5841 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5842 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5843 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5844 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5845 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.5846 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5847 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5848 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5849 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.5850 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5851 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5852 = private unnamed_addr constant [9 x i8] c"add i64 \00" +@.str.5853 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5854 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5855 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5856 = private unnamed_addr constant [5 x i8] c"sort\00" +@.str.5857 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.5858 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5859 = private unnamed_addr constant [48 x i8] c"sort() works on arrays of numbers, chars or str\00" +@.str.5860 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5861 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5862 = private unnamed_addr constant [22 x i8] c"call void @qsort(ptr \00" +@.str.5863 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5864 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5865 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5866 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5867 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.5868 = private unnamed_addr constant [25 x i8] c"an array has no method '\00" +@.str.5869 = private unnamed_addr constant [97 x i8] c"' (it has: push, pop, insert, remove, clear, resize, find, contains, join, slice, reverse, sort)\00" +@.str.5870 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5871 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5872 = private unnamed_addr constant [47 x i8] c"getelementptr inbounds { ptr, i64, i64 }, ptr \00" +@.str.5873 = private unnamed_addr constant [15 x i8] c", i32 0, i32 1\00" +@.str.5874 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5875 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" +@.str.5876 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5877 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" +@.str.5878 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.5879 = private unnamed_addr constant [11 x i8] c"select i1 \00" +@.str.5880 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5881 = private unnamed_addr constant [11 x i8] c"select i1 \00" +@.str.5882 = private unnamed_addr constant [14 x i8] c", i64 0, i64 \00" +@.str.5883 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5884 = private unnamed_addr constant [9 x i8] c"sub i64 \00" +@.str.5885 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5886 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.5887 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5888 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5889 = private unnamed_addr constant [9 x i8] c"add i64 \00" +@.str.5890 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5891 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5892 = private unnamed_addr constant [12 x i8] c"@finch.cmp.\00" +@.str.5893 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5894 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" +@.str.5895 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5896 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" +@.str.5897 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5898 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5899 = private unnamed_addr constant [40 x i8] c"call i64 @finch_str_cmp(ptr %x, ptr %y)\00" +@.str.5900 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" +@.str.5901 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str.5902 = private unnamed_addr constant [3 x i8] c"%x\00" +@.str.5903 = private unnamed_addr constant [3 x i8] c"%y\00" +@.str.5904 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5905 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5906 = private unnamed_addr constant [10 x i8] c"fcmp olt \00" +@.str.5907 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5908 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5909 = private unnamed_addr constant [10 x i8] c"fcmp ogt \00" +@.str.5910 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5911 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5912 = private unnamed_addr constant [6 x i8] c"icmp \00" +@.str.5913 = private unnamed_addr constant [2 x i8] c"<\00" +@.str.5914 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5915 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5916 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5917 = private unnamed_addr constant [6 x i8] c"icmp \00" +@.str.5918 = private unnamed_addr constant [2 x i8] c">\00" +@.str.5919 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5920 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5921 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5922 = private unnamed_addr constant [9 x i8] c"sub i32 \00" +@.str.5923 = private unnamed_addr constant [9 x i8] c"zext i1 \00" +@.str.5924 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str.5925 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5926 = private unnamed_addr constant [9 x i8] c"zext i1 \00" +@.str.5927 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str.5928 = private unnamed_addr constant [9 x i8] c"ret i32 \00" +@.str.5929 = private unnamed_addr constant [21 x i8] c"define internal i32 \00" +@.str.5930 = private unnamed_addr constant [17 x i8] c"(ptr %x, ptr %y)\00" @.str.5931 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5932 = private unnamed_addr constant [32 x i8] c"used .mdfiles on a null pointer\00" -@.str.5933 = private unnamed_addr constant [20 x i8] c"!DIFile(filename: \22\00" -@.str.5934 = private unnamed_addr constant [16 x i8] c"\22, directory: \22\00" +@.str.5932 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.5933 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5934 = private unnamed_addr constant [4 x i8] c"sub\00" @.str.5935 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5936 = private unnamed_addr constant [28 x i8] c"used .cwd on a null pointer\00" -@.str.5937 = private unnamed_addr constant [3 x i8] c"\22)\00" -@.str.5938 = private unnamed_addr constant [53 x i8] c"distinct !DICompileUnit(language: DW_LANG_C, file: !\00" +@.str.5936 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.5937 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5938 = private unnamed_addr constant [10 x i8] c"the start\00" @.str.5939 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5940 = private unnamed_addr constant [32 x i8] c"used .mdfiles on a null pointer\00" +@.str.5940 = private unnamed_addr constant [4 x i8] c"int\00" @.str.5941 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5942 = private unnamed_addr constant [85 x i8] c", producer: \22finch\22, isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug)\00" -@.str.5943 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5944 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" -@.str.5945 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5946 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5947 = private unnamed_addr constant [5 x i8] c"main\00" -@.str.5948 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5949 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.5950 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5951 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.5952 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5953 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5954 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5955 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.5942 = private unnamed_addr constant [8 x i8] c"the end\00" +@.str.5943 = private unnamed_addr constant [30 x i8] c"call void @finch_str_sub(ptr \00" +@.str.5944 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5945 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5946 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5947 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5948 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5949 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5950 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5951 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5952 = private unnamed_addr constant [5 x i8] c"find\00" +@.str.5953 = private unnamed_addr constant [9 x i8] c"contains\00" +@.str.5954 = private unnamed_addr constant [12 x i8] c"starts_with\00" +@.str.5955 = private unnamed_addr constant [10 x i8] c"ends_with\00" @.str.5956 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5957 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5958 = private unnamed_addr constant [83 x i8] c"a library (--shared) has no main: the program that loads it calls its 'export fn's\00" -@.str.5959 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5960 = private unnamed_addr constant [65 x i8] c":1:1: error: there is no main function (add 'fn main() { ... }')\00" -@.str.5961 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5962 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.5963 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.5964 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5965 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.5966 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5967 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" -@.str.5968 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5969 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.5970 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5971 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5972 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" -@.str.5973 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.5974 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5975 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.5976 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5977 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5978 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" -@.str.5979 = private unnamed_addr constant [11 x i8] c" dllexport\00" -@.str.5980 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5981 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.5982 = private unnamed_addr constant [7 x i8] c"define\00" -@.str.5983 = private unnamed_addr constant [108 x i8] c" void @finch_module_on_fatal(ptr %handler) {\0Aentry:\0A call void @finch_on_fatal(ptr %handler)\0A ret void\0A}\0A\00" -@.str.5984 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5985 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.5986 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5987 = private unnamed_addr constant [6 x i8] c"call \00" -@.str.5988 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5989 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.5990 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5991 = private unnamed_addr constant [134 x i8] c" %args = alloca { ptr, i64, i64 }\0A call void @finch_args(ptr %args, i32 %argc, ptr %argv)\0A %a = load { ptr, i64, i64 }, ptr %args\0A\00" -@.str.5992 = private unnamed_addr constant [21 x i8] c"{ ptr, i64, i64 } %a\00" -@.str.5993 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5994 = private unnamed_addr constant [13 x i8] c" ret i32 0\0A\00" -@.str.5995 = private unnamed_addr constant [6 x i8] c"%r = \00" -@.str.5996 = private unnamed_addr constant [3 x i8] c" \00" -@.str.5997 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.5998 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5999 = private unnamed_addr constant [22 x i8] c" %ok = extractvalue \00" -@.str.6000 = private unnamed_addr constant [63 x i8] c" %r, 0\0A br i1 %ok, label %main.ok, label %main.bad\0Amain.bad:\0A\00" -@.str.6001 = private unnamed_addr constant [21 x i8] c" %m = extractvalue \00" -@.str.6002 = private unnamed_addr constant [79 x i8] c" %r, 2\0A %mp = alloca { ptr, i64, i64 }\0A store { ptr, i64, i64 } %m, ptr %mp\0A\00" -@.str.6003 = private unnamed_addr constant [63 x i8] c" call void @finch_report_error(ptr %mp)\0A ret i32 1\0Amain.ok:\0A\00" -@.str.6004 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.6005 = private unnamed_addr constant [21 x i8] c" %v = extractvalue \00" -@.str.6006 = private unnamed_addr constant [54 x i8] c" %r, 1\0A %code = trunc i64 %v to i32\0A ret i32 %code\0A\00" -@.str.6007 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.6008 = private unnamed_addr constant [6 x i8] c"%r = \00" -@.str.6009 = private unnamed_addr constant [47 x i8] c" %code = trunc i64 %r to i32\0A ret i32 %code\0A\00" -@.str.6010 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.6011 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.6012 = private unnamed_addr constant [49 x i8] c"define i32 @main(i32 %argc, ptr %argv) {\0Aentry:\0A\00" -@.str.6013 = private unnamed_addr constant [3 x i8] c" \00" -@.str.6014 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6015 = private unnamed_addr constant [3 x i8] c"}\0A\00" -@.str.6016 = private unnamed_addr constant [6 x i8] c"print\00" -@.str.6017 = private unnamed_addr constant [17 x i8] c"print(a, b, ...)\00" -@.str.6018 = private unnamed_addr constant [79 x i8] c"Prints the values separated by spaces, then a new line. Works with every type.\00" -@.str.6019 = private unnamed_addr constant [6 x i8] c"input\00" -@.str.6020 = private unnamed_addr constant [32 x i8] c"input(str question = \22\22) -> str\00" -@.str.6021 = private unnamed_addr constant [78 x i8] c"Shows the question and reads one line typed by the user, without the newline.\00" -@.str.6022 = private unnamed_addr constant [10 x i8] c"read_file\00" -@.str.6023 = private unnamed_addr constant [27 x i8] c"read_file(str path) -> str\00" -@.str.6024 = private unnamed_addr constant [122 x i8] c"The whole file as text. Stops the program if it can't be read, unless handled: read_file(p) or { ... }, try read_file(p).\00" -@.str.6025 = private unnamed_addr constant [11 x i8] c"write_file\00" -@.str.6026 = private unnamed_addr constant [39 x i8] c"write_file(str path, str text) -> bool\00" -@.str.6027 = private unnamed_addr constant [84 x i8] c"Writes (replaces) the file. true if it worked; with or / try, the reason it didn't.\00" -@.str.6028 = private unnamed_addr constant [12 x i8] c"file_exists\00" -@.str.6029 = private unnamed_addr constant [30 x i8] c"file_exists(str path) -> bool\00" -@.str.6030 = private unnamed_addr constant [30 x i8] c"Is there a file at this path?\00" -@.str.6031 = private unnamed_addr constant [12 x i8] c"delete_file\00" -@.str.6032 = private unnamed_addr constant [30 x i8] c"delete_file(str path) -> bool\00" -@.str.6033 = private unnamed_addr constant [74 x i8] c"Deletes the file. true if it worked; with or / try, the reason it didn't.\00" -@.str.6034 = private unnamed_addr constant [6 x i8] c"error\00" -@.str.6035 = private unnamed_addr constant [19 x i8] c"error(str message)\00" -@.str.6036 = private unnamed_addr constant [99 x i8] c"The failure a fallible function returns: return error(\22...\22). The caller handles it with or / try.\00" -@.str.6037 = private unnamed_addr constant [6 x i8] c"shell\00" -@.str.6038 = private unnamed_addr constant [26 x i8] c"shell(str command) -> int\00" -@.str.6039 = private unnamed_addr constant [67 x i8] c"Runs a command in the system's shell and gives back its exit code.\00" -@.str.6040 = private unnamed_addr constant [5 x i8] c"exit\00" -@.str.6041 = private unnamed_addr constant [15 x i8] c"exit(int code)\00" -@.str.6042 = private unnamed_addr constant [49 x i8] c"Ends the program right away with this exit code.\00" -@.str.6043 = private unnamed_addr constant [5 x i8] c"addr\00" -@.str.6044 = private unnamed_addr constant [18 x i8] c"addr(x) -> ptr[T]\00" -@.str.6045 = private unnamed_addr constant [78 x i8] c"A pointer to a variable, field or element. addr(function) gives C a callback.\00" -@.str.6046 = private unnamed_addr constant [4 x i8] c"new\00" -@.str.6047 = private unnamed_addr constant [21 x i8] c"new(value) -> ptr[T]\00" -@.str.6048 = private unnamed_addr constant [67 x i8] c"Puts a copy of the value on the heap. Give it back with free(...).\00" -@.str.6049 = private unnamed_addr constant [5 x i8] c"free\00" -@.str.6050 = private unnamed_addr constant [12 x i8] c"free(ptr p)\00" -@.str.6051 = private unnamed_addr constant [74 x i8] c"Gives back memory from new(...) (or from C), freeing what the value owns.\00" -@.str.6052 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.6053 = private unnamed_addr constant [14 x i8] c"str(x) -> str\00" -@.str.6054 = private unnamed_addr constant [62 x i8] c"Turns a number, bool, char, []u8 or C char pointer into text.\00" -@.str.6055 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.6056 = private unnamed_addr constant [14 x i8] c"int(x) -> int\00" -@.str.6057 = private unnamed_addr constant [131 x i8] c"Converts to a whole number: cuts off fractions, parses text (stops the program if it isn't a number, unless handled: int(s) or 0).\00" -@.str.6058 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.6059 = private unnamed_addr constant [18 x i8] c"float(x) -> float\00" -@.str.6060 = private unnamed_addr constant [76 x i8] c"Converts to a decimal number; parses text (int(s) or 0.0 handles bad text).\00" -@.str.6061 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.6062 = private unnamed_addr constant [20 x i8] c"char(int n) -> char\00" -@.str.6063 = private unnamed_addr constant [30 x i8] c"The character with this code.\00" -@.str.6064 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.6065 = private unnamed_addr constant [20 x i8] c"bool(int n) -> bool\00" -@.str.6066 = private unnamed_addr constant [27 x i8] c"true for any number but 0.\00" -@.str.6067 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.6068 = private unnamed_addr constant [14 x i8] c"ptr(x) -> ptr\00" -@.str.6069 = private unnamed_addr constant [89 x i8] c"An untyped pointer: from a typed pointer, or from a number (an address or offset for C).\00" -@.str.6070 = private unnamed_addr constant [4 x i8] c"len\00" -@.str.6071 = private unnamed_addr constant [12 x i8] c".len -> int\00" -@.str.6072 = private unnamed_addr constant [24 x i8] c"The number of elements.\00" -@.str.6073 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.6074 = private unnamed_addr constant [15 x i8] c".ptr -> ptr[T]\00" -@.str.6075 = private unnamed_addr constant [41 x i8] c"The address of the first element, for C.\00" -@.str.6076 = private unnamed_addr constant [5 x i8] c"push\00" -@.str.6077 = private unnamed_addr constant [10 x i8] c"push(T x)\00" -@.str.6078 = private unnamed_addr constant [19 x i8] c"Adds x at the end.\00" -@.str.6079 = private unnamed_addr constant [4 x i8] c"pop\00" -@.str.6080 = private unnamed_addr constant [11 x i8] c"pop() -> T\00" -@.str.6081 = private unnamed_addr constant [44 x i8] c"Removes the last element and gives it back.\00" -@.str.6082 = private unnamed_addr constant [7 x i8] c"insert\00" -@.str.6083 = private unnamed_addr constant [19 x i8] c"insert(int i, T x)\00" -@.str.6084 = private unnamed_addr constant [39 x i8] c"Puts x at position i, moving the rest.\00" -@.str.6085 = private unnamed_addr constant [7 x i8] c"remove\00" -@.str.6086 = private unnamed_addr constant [19 x i8] c"remove(int i) -> T\00" -@.str.6087 = private unnamed_addr constant [38 x i8] c"Removes position i and gives it back.\00" -@.str.6088 = private unnamed_addr constant [6 x i8] c"clear\00" -@.str.6089 = private unnamed_addr constant [8 x i8] c"clear()\00" -@.str.6090 = private unnamed_addr constant [20 x i8] c"Removes everything.\00" -@.str.6091 = private unnamed_addr constant [7 x i8] c"resize\00" -@.str.6092 = private unnamed_addr constant [14 x i8] c"resize(int n)\00" -@.str.6093 = private unnamed_addr constant [47 x i8] c"Makes the array n long; new elements are zero.\00" -@.str.6094 = private unnamed_addr constant [5 x i8] c"find\00" -@.str.6095 = private unnamed_addr constant [17 x i8] c"find(T x) -> int\00" -@.str.6096 = private unnamed_addr constant [23 x i8] c"The index of x, or -1.\00" -@.str.6097 = private unnamed_addr constant [9 x i8] c"contains\00" -@.str.6098 = private unnamed_addr constant [22 x i8] c"contains(T x) -> bool\00" -@.str.6099 = private unnamed_addr constant [19 x i8] c"Is x in the array?\00" -@.str.6100 = private unnamed_addr constant [5 x i8] c"sort\00" -@.str.6101 = private unnamed_addr constant [7 x i8] c"sort()\00" -@.str.6102 = private unnamed_addr constant [38 x i8] c"Sorts in place (numbers, chars, str).\00" -@.str.6103 = private unnamed_addr constant [8 x i8] c"reverse\00" -@.str.6104 = private unnamed_addr constant [10 x i8] c"reverse()\00" -@.str.6105 = private unnamed_addr constant [19 x i8] c"Reverses in place.\00" -@.str.6106 = private unnamed_addr constant [6 x i8] c"slice\00" -@.str.6107 = private unnamed_addr constant [33 x i8] c"slice(int start, int end) -> []T\00" -@.str.6108 = private unnamed_addr constant [46 x i8] c"A new array with the elements start to end-1.\00" -@.str.6109 = private unnamed_addr constant [5 x i8] c"join\00" -@.str.6110 = private unnamed_addr constant [21 x i8] c"join(str sep) -> str\00" -@.str.6111 = private unnamed_addr constant [48 x i8] c"For []str: one text with sep between the parts.\00" -@.str.6112 = private unnamed_addr constant [4 x i8] c"len\00" -@.str.6113 = private unnamed_addr constant [12 x i8] c".len -> int\00" -@.str.6114 = private unnamed_addr constant [21 x i8] c"The number of bytes.\00" -@.str.6115 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.6116 = private unnamed_addr constant [18 x i8] c".ptr -> ptr[char]\00" -@.str.6117 = private unnamed_addr constant [60 x i8] c"The address of the text, for C (valid while the str lives).\00" -@.str.6118 = private unnamed_addr constant [4 x i8] c"sub\00" -@.str.6119 = private unnamed_addr constant [31 x i8] c"sub(int start, int end) -> str\00" -@.str.6120 = private unnamed_addr constant [30 x i8] c"The part from start to end-1.\00" -@.str.6121 = private unnamed_addr constant [5 x i8] c"find\00" -@.str.6122 = private unnamed_addr constant [19 x i8] c"find(str t) -> int\00" -@.str.6123 = private unnamed_addr constant [23 x i8] c"Where t starts, or -1.\00" -@.str.6124 = private unnamed_addr constant [9 x i8] c"contains\00" -@.str.6125 = private unnamed_addr constant [24 x i8] c"contains(str t) -> bool\00" -@.str.6126 = private unnamed_addr constant [25 x i8] c"Does the text contain t?\00" -@.str.6127 = private unnamed_addr constant [12 x i8] c"starts_with\00" -@.str.6128 = private unnamed_addr constant [27 x i8] c"starts_with(str t) -> bool\00" -@.str.6129 = private unnamed_addr constant [28 x i8] c"Does the text start with t?\00" -@.str.6130 = private unnamed_addr constant [10 x i8] c"ends_with\00" -@.str.6131 = private unnamed_addr constant [25 x i8] c"ends_with(str t) -> bool\00" -@.str.6132 = private unnamed_addr constant [26 x i8] c"Does the text end with t?\00" -@.str.6133 = private unnamed_addr constant [6 x i8] c"split\00" -@.str.6134 = private unnamed_addr constant [24 x i8] c"split(str sep) -> []str\00" -@.str.6135 = private unnamed_addr constant [63 x i8] c"The parts between each sep; split(\22\22) gives single characters.\00" -@.str.6136 = private unnamed_addr constant [5 x i8] c"trim\00" -@.str.6137 = private unnamed_addr constant [14 x i8] c"trim() -> str\00" -@.str.6138 = private unnamed_addr constant [42 x i8] c"Without spaces and newlines at both ends.\00" -@.str.6139 = private unnamed_addr constant [6 x i8] c"upper\00" -@.str.6140 = private unnamed_addr constant [15 x i8] c"upper() -> str\00" -@.str.6141 = private unnamed_addr constant [25 x i8] c"With a-z changed to A-Z.\00" -@.str.6142 = private unnamed_addr constant [6 x i8] c"lower\00" -@.str.6143 = private unnamed_addr constant [15 x i8] c"lower() -> str\00" -@.str.6144 = private unnamed_addr constant [25 x i8] c"With A-Z changed to a-z.\00" -@.str.6145 = private unnamed_addr constant [8 x i8] c"replace\00" -@.str.6146 = private unnamed_addr constant [33 x i8] c"replace(str from, str to) -> str\00" -@.str.6147 = private unnamed_addr constant [27 x i8] c"Every from replaced by to.\00" -@.str.6148 = private unnamed_addr constant [7 x i8] c"repeat\00" -@.str.6149 = private unnamed_addr constant [21 x i8] c"repeat(int n) -> str\00" -@.str.6150 = private unnamed_addr constant [18 x i8] c"The text n times.\00" -@.str.6151 = private unnamed_addr constant [6 x i8] c"bytes\00" -@.str.6152 = private unnamed_addr constant [16 x i8] c"bytes() -> []u8\00" -@.str.6153 = private unnamed_addr constant [23 x i8] c"The bytes of the text.\00" -@.str.6154 = private unnamed_addr constant [4 x i8] c"len\00" -@.str.6155 = private unnamed_addr constant [12 x i8] c".len -> int\00" -@.str.6156 = private unnamed_addr constant [20 x i8] c"The number of keys.\00" -@.str.6157 = private unnamed_addr constant [4 x i8] c"has\00" -@.str.6158 = private unnamed_addr constant [19 x i8] c"has(K key) -> bool\00" -@.str.6159 = private unnamed_addr constant [23 x i8] c"Is the key in the map?\00" -@.str.6160 = private unnamed_addr constant [4 x i8] c"get\00" -@.str.6161 = private unnamed_addr constant [27 x i8] c"get(K key, V default) -> V\00" -@.str.6162 = private unnamed_addr constant [54 x i8] c"The value for key, or default if the key isn't there.\00" -@.str.6163 = private unnamed_addr constant [7 x i8] c"remove\00" -@.str.6164 = private unnamed_addr constant [22 x i8] c"remove(K key) -> bool\00" -@.str.6165 = private unnamed_addr constant [53 x i8] c"Removes the key and its value; true if it was there.\00" -@.str.6166 = private unnamed_addr constant [6 x i8] c"clear\00" -@.str.6167 = private unnamed_addr constant [8 x i8] c"clear()\00" -@.str.6168 = private unnamed_addr constant [20 x i8] c"Removes everything.\00" -@.str.6169 = private unnamed_addr constant [5 x i8] c"keys\00" -@.str.6170 = private unnamed_addr constant [14 x i8] c"keys() -> []K\00" -@.str.6171 = private unnamed_addr constant [40 x i8] c"The keys, in the order they were added.\00" -@.str.6172 = private unnamed_addr constant [7 x i8] c"values\00" -@.str.6173 = private unnamed_addr constant [16 x i8] c"values() -> []V\00" -@.str.6174 = private unnamed_addr constant [48 x i8] c"The values, in the order their keys were added.\00" -@.str.6175 = private unnamed_addr constant [3 x i8] c"fn\00" -@.str.6176 = private unnamed_addr constant [7 x i8] c"return\00" -@.str.6177 = private unnamed_addr constant [3 x i8] c"if\00" -@.str.6178 = private unnamed_addr constant [5 x i8] c"else\00" -@.str.6179 = private unnamed_addr constant [6 x i8] c"while\00" -@.str.6180 = private unnamed_addr constant [4 x i8] c"for\00" -@.str.6181 = private unnamed_addr constant [3 x i8] c"in\00" -@.str.6182 = private unnamed_addr constant [6 x i8] c"break\00" -@.str.6183 = private unnamed_addr constant [9 x i8] c"continue\00" -@.str.6184 = private unnamed_addr constant [5 x i8] c"true\00" -@.str.6185 = private unnamed_addr constant [6 x i8] c"false\00" -@.str.6186 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.6187 = private unnamed_addr constant [7 x i8] c"import\00" -@.str.6188 = private unnamed_addr constant [5 x i8] c"link\00" -@.str.6189 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.6190 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.6191 = private unnamed_addr constant [6 x i8] c"match\00" -@.str.6192 = private unnamed_addr constant [7 x i8] c"export\00" -@.str.6193 = private unnamed_addr constant [6 x i8] c"defer\00" -@.str.6194 = private unnamed_addr constant [3 x i8] c"or\00" -@.str.6195 = private unnamed_addr constant [4 x i8] c"try\00" -@.str.6196 = private unnamed_addr constant [5 x i8] c"self\00" -@.str.6197 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.6198 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.6199 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.6200 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.6201 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.6202 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.6203 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.6204 = private unnamed_addr constant [3 x i8] c"i8\00" -@.str.6205 = private unnamed_addr constant [4 x i8] c"i16\00" -@.str.6206 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.6207 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.6208 = private unnamed_addr constant [3 x i8] c"u8\00" -@.str.6209 = private unnamed_addr constant [4 x i8] c"u16\00" -@.str.6210 = private unnamed_addr constant [4 x i8] c"u32\00" -@.str.6211 = private unnamed_addr constant [4 x i8] c"u64\00" -@.str.6212 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.6213 = private unnamed_addr constant [4 x i8] c"f64\00" -@.str.6214 = private unnamed_addr constant [10 x i8] c"```finch\0A\00" -@.str.6215 = private unnamed_addr constant [6 x i8] c"\0A```\0A\00" +@.str.5957 = private unnamed_addr constant [21 x i8] c"the text to look for\00" +@.str.5958 = private unnamed_addr constant [5 x i8] c"find\00" +@.str.5959 = private unnamed_addr constant [30 x i8] c"call i64 @finch_str_find(ptr \00" +@.str.5960 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5961 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5962 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.5963 = private unnamed_addr constant [9 x i8] c"contains\00" +@.str.5964 = private unnamed_addr constant [30 x i8] c"call i64 @finch_str_find(ptr \00" +@.str.5965 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5966 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5967 = private unnamed_addr constant [14 x i8] c"icmp sge i64 \00" +@.str.5968 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.5969 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.5970 = private unnamed_addr constant [18 x i8] c"@finch_str_starts\00" +@.str.5971 = private unnamed_addr constant [10 x i8] c"ends_with\00" +@.str.5972 = private unnamed_addr constant [16 x i8] c"@finch_str_ends\00" +@.str.5973 = private unnamed_addr constant [10 x i8] c"call i32 \00" +@.str.5974 = private unnamed_addr constant [6 x i8] c"(ptr \00" +@.str.5975 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5976 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5977 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str.5978 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.5979 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.5980 = private unnamed_addr constant [5 x i8] c"trim\00" +@.str.5981 = private unnamed_addr constant [6 x i8] c"upper\00" +@.str.5982 = private unnamed_addr constant [6 x i8] c"lower\00" +@.str.5983 = private unnamed_addr constant [22 x i8] c"call void @finch_str_\00" +@.str.5984 = private unnamed_addr constant [6 x i8] c"(ptr \00" +@.str.5985 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5986 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5987 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5988 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5989 = private unnamed_addr constant [8 x i8] c"replace\00" +@.str.5990 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5991 = private unnamed_addr constant [20 x i8] c"the text to replace\00" +@.str.5992 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5993 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.5994 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5995 = private unnamed_addr constant [13 x i8] c"the new text\00" +@.str.5996 = private unnamed_addr constant [34 x i8] c"call void @finch_str_replace(ptr \00" +@.str.5997 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5998 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5999 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.6000 = private unnamed_addr constant [2 x i8] c")\00" +@.str.6001 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.6002 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.6003 = private unnamed_addr constant [6 x i8] c"split\00" +@.str.6004 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6005 = private unnamed_addr constant [14 x i8] c"the separator\00" +@.str.6006 = private unnamed_addr constant [32 x i8] c"call void @finch_str_split(ptr \00" +@.str.6007 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.6008 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.6009 = private unnamed_addr constant [2 x i8] c")\00" +@.str.6010 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.6011 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.6012 = private unnamed_addr constant [7 x i8] c"repeat\00" +@.str.6013 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6014 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.6015 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6016 = private unnamed_addr constant [10 x i8] c"the count\00" +@.str.6017 = private unnamed_addr constant [33 x i8] c"call void @finch_str_repeat(ptr \00" +@.str.6018 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.6019 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.6020 = private unnamed_addr constant [2 x i8] c")\00" +@.str.6021 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.6022 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.6023 = private unnamed_addr constant [6 x i8] c"bytes\00" +@.str.6024 = private unnamed_addr constant [37 x i8] c"call void @finch_bytes_from_str(ptr \00" +@.str.6025 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.6026 = private unnamed_addr constant [2 x i8] c")\00" +@.str.6027 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.6028 = private unnamed_addr constant [3 x i8] c"u8\00" +@.str.6029 = private unnamed_addr constant [22 x i8] c"a str has no method '\00" +@.str.6030 = private unnamed_addr constant [107 x i8] c"' (it has: sub, find, contains, starts_with, ends_with, split, trim, upper, lower, replace, repeat, bytes)\00" +@.str.6031 = private unnamed_addr constant [55 x i8] c"declare void @finch_panic(ptr, i64, ptr) noreturn cold\00" +@.str.6032 = private unnamed_addr constant [66 x i8] c"declare void @finch_panic_index(ptr, i64, i64, i64) noreturn cold\00" +@.str.6033 = private unnamed_addr constant [30 x i8] c"declare ptr @finch_alloc(i64)\00" +@.str.6034 = private unnamed_addr constant [39 x i8] c"declare void @finch_str_copy(ptr, ptr)\00" +@.str.6035 = private unnamed_addr constant [34 x i8] c"declare void @finch_str_drop(ptr)\00" +@.str.6036 = private unnamed_addr constant [34 x i8] c"declare void @finch_arr_free(ptr)\00" +@.str.6037 = private unnamed_addr constant [34 x i8] c"declare void @finch_map_free(ptr)\00" +@.str.6038 = private unnamed_addr constant [33 x i8] c"declare void @finch_str_own(ptr)\00" +@.str.6039 = private unnamed_addr constant [46 x i8] c"declare void @finch_str_concat(ptr, ptr, ptr)\00" +@.str.6040 = private unnamed_addr constant [36 x i8] c"declare i32 @finch_str_eq(ptr, ptr)\00" +@.str.6041 = private unnamed_addr constant [37 x i8] c"declare i64 @finch_str_cmp(ptr, ptr)\00" +@.str.6042 = private unnamed_addr constant [43 x i8] c"declare void @finch_buf_add(ptr, ptr, i64)\00" +@.str.6043 = private unnamed_addr constant [38 x i8] c"declare void @finch_buf_int(ptr, i64)\00" +@.str.6044 = private unnamed_addr constant [39 x i8] c"declare void @finch_buf_uint(ptr, i64)\00" +@.str.6045 = private unnamed_addr constant [43 x i8] c"declare void @finch_buf_float(ptr, double)\00" +@.str.6046 = private unnamed_addr constant [39 x i8] c"declare void @finch_buf_bool(ptr, i32)\00" +@.str.6047 = private unnamed_addr constant [38 x i8] c"declare void @finch_buf_ptr(ptr, ptr)\00" +@.str.6048 = private unnamed_addr constant [43 x i8] c"declare void @finch_buf_char(ptr, i8, i32)\00" +@.str.6049 = private unnamed_addr constant [43 x i8] c"declare void @finch_buf_str(ptr, ptr, i32)\00" +@.str.6050 = private unnamed_addr constant [35 x i8] c"declare void @finch_buf_print(ptr)\00" +@.str.6051 = private unnamed_addr constant [43 x i8] c"declare void @finch_str_from_int(ptr, i64)\00" +@.str.6052 = private unnamed_addr constant [44 x i8] c"declare void @finch_str_from_uint(ptr, i64)\00" +@.str.6053 = private unnamed_addr constant [48 x i8] c"declare void @finch_str_from_float(ptr, double)\00" +@.str.6054 = private unnamed_addr constant [51 x i8] c"declare void @finch_str_from_char(ptr, i8 signext)\00" +@.str.6055 = private unnamed_addr constant [44 x i8] c"declare void @finch_str_from_bool(ptr, i32)\00" +@.str.6056 = private unnamed_addr constant [45 x i8] c"declare i64 @finch_str_to_int(ptr, ptr, i64)\00" +@.str.6057 = private unnamed_addr constant [50 x i8] c"declare double @finch_str_to_float(ptr, ptr, i64)\00" +@.str.6058 = private unnamed_addr constant [58 x i8] c"declare void @finch_str_sub(ptr, ptr, i64, i64, ptr, i64)\00" +@.str.6059 = private unnamed_addr constant [38 x i8] c"declare i64 @finch_str_find(ptr, ptr)\00" +@.str.6060 = private unnamed_addr constant [40 x i8] c"declare i32 @finch_str_starts(ptr, ptr)\00" +@.str.6061 = private unnamed_addr constant [38 x i8] c"declare i32 @finch_str_ends(ptr, ptr)\00" +@.str.6062 = private unnamed_addr constant [39 x i8] c"declare void @finch_str_trim(ptr, ptr)\00" +@.str.6063 = private unnamed_addr constant [40 x i8] c"declare void @finch_str_upper(ptr, ptr)\00" +@.str.6064 = private unnamed_addr constant [40 x i8] c"declare void @finch_str_lower(ptr, ptr)\00" +@.str.6065 = private unnamed_addr constant [52 x i8] c"declare void @finch_str_replace(ptr, ptr, ptr, ptr)\00" +@.str.6066 = private unnamed_addr constant [45 x i8] c"declare void @finch_str_split(ptr, ptr, ptr)\00" +@.str.6067 = private unnamed_addr constant [44 x i8] c"declare void @finch_str_join(ptr, ptr, ptr)\00" +@.str.6068 = private unnamed_addr constant [46 x i8] c"declare void @finch_str_repeat(ptr, ptr, i64)\00" +@.str.6069 = private unnamed_addr constant [45 x i8] c"declare void @finch_bytes_from_str(ptr, ptr)\00" +@.str.6070 = private unnamed_addr constant [53 x i8] c"declare i64 @finch_map_find(ptr, ptr, i64, i64, i32)\00" +@.str.6071 = private unnamed_addr constant [58 x i8] c"declare i64 @finch_map_slot(ptr, ptr, i64, i64, i32, ptr)\00" +@.str.6072 = private unnamed_addr constant [49 x i8] c"declare void @finch_map_remove_at(ptr, i64, i64)\00" +@.str.6073 = private unnamed_addr constant [35 x i8] c"declare void @finch_map_clear(ptr)\00" +@.str.6074 = private unnamed_addr constant [49 x i8] c"declare void @finch_map_clone_raw(ptr, ptr, i64)\00" +@.str.6075 = private unnamed_addr constant [61 x i8] c"declare void @finch_map_missing(ptr, i64, ptr) noreturn cold\00" +@.str.6076 = private unnamed_addr constant [56 x i8] c"declare void @finch_map_changed(ptr, i64) noreturn cold\00" +@.str.6077 = private unnamed_addr constant [47 x i8] c"declare void @finch_arr_reserve(ptr, i64, i64)\00" +@.str.6078 = private unnamed_addr constant [49 x i8] c"declare void @finch_arr_clone_raw(ptr, ptr, i64)\00" +@.str.6079 = private unnamed_addr constant [44 x i8] c"declare void @finch_arr_make(ptr, i64, i64)\00" +@.str.6080 = private unnamed_addr constant [46 x i8] c"declare void @finch_arr_resize(ptr, i64, i64)\00" +@.str.6081 = private unnamed_addr constant [60 x i8] c"declare void @finch_arr_insert_gap(ptr, i64, i64, ptr, i64)\00" +@.str.6082 = private unnamed_addr constant [50 x i8] c"declare void @finch_arr_remove_gap(ptr, i64, i64)\00" +@.str.6083 = private unnamed_addr constant [40 x i8] c"declare void @qsort(ptr, i64, i64, ptr)\00" +@.str.6084 = private unnamed_addr constant [40 x i8] c"declare void @finch_args(ptr, i32, ptr)\00" +@.str.6085 = private unnamed_addr constant [36 x i8] c"declare void @finch_input(ptr, ptr)\00" +@.str.6086 = private unnamed_addr constant [36 x i8] c"declare i32 @finch_file_exists(ptr)\00" +@.str.6087 = private unnamed_addr constant [46 x i8] c"declare i32 @finch_str_try_int(ptr, ptr, ptr)\00" +@.str.6088 = private unnamed_addr constant [48 x i8] c"declare i32 @finch_str_try_float(ptr, ptr, ptr)\00" +@.str.6089 = private unnamed_addr constant [48 x i8] c"declare i32 @finch_try_read_file(ptr, ptr, ptr)\00" +@.str.6090 = private unnamed_addr constant [49 x i8] c"declare i32 @finch_try_write_file(ptr, ptr, ptr)\00" +@.str.6091 = private unnamed_addr constant [45 x i8] c"declare i32 @finch_try_delete_file(ptr, ptr)\00" +@.str.6092 = private unnamed_addr constant [38 x i8] c"declare void @finch_report_error(ptr)\00" +@.str.6093 = private unnamed_addr constant [50 x i8] c"declare void @finch_read_file(ptr, ptr, ptr, i64)\00" +@.str.6094 = private unnamed_addr constant [40 x i8] c"declare i32 @finch_write_file(ptr, ptr)\00" +@.str.6095 = private unnamed_addr constant [30 x i8] c"declare i64 @finch_shell(ptr)\00" +@.str.6096 = private unnamed_addr constant [36 x i8] c"declare i32 @finch_delete_file(ptr)\00" +@.str.6097 = private unnamed_addr constant [30 x i8] c"declare i32 @printf(ptr, ...)\00" +@.str.6098 = private unnamed_addr constant [25 x i8] c"declare i32 @fflush(ptr)\00" +@.str.6099 = private unnamed_addr constant [41 x i8] c"declare void @finch_str_from_c(ptr, ptr)\00" +@.str.6100 = private unnamed_addr constant [34 x i8] c"declare void @finch_on_fatal(ptr)\00" +@.str.6101 = private unnamed_addr constant [35 x i8] c"declare ptr @finch_std_stream(i32)\00" +@.str.6102 = private unnamed_addr constant [45 x i8] c"declare void @finch_str_from_bytes(ptr, ptr)\00" +@.str.6103 = private unnamed_addr constant [33 x i8] c"declare void @exit(i32) noreturn\00" +@.str.6104 = private unnamed_addr constant [24 x i8] c"declare void @free(ptr)\00" +@.str.6105 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6106 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6107 = private unnamed_addr constant [53 x i8] c"; generated by the Finch compiler written in Finch\0A\0A\00" +@.str.6108 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6109 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" +@.str.6110 = private unnamed_addr constant [18 x i8] c"target triple = \22\00" +@.str.6111 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6112 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" +@.str.6113 = private unnamed_addr constant [4 x i8] c"\22\0A\0A\00" +@.str.6114 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6115 = private unnamed_addr constant [29 x i8] c"used .head on a null pointer\00" +@.str.6116 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6117 = private unnamed_addr constant [3 x i8] c"\0A\0A\00" +@.str.6118 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6119 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6120 = private unnamed_addr constant [30 x i8] c"used .debug on a null pointer\00" +@.str.6121 = private unnamed_addr constant [63 x i8] c"declare void @llvm.dbg.declare(metadata, metadata, metadata)\0A\0A\00" +@.str.6122 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6123 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6124 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6125 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6126 = private unnamed_addr constant [30 x i8] c"used .debug on a null pointer\00" +@.str.6127 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6128 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6129 = private unnamed_addr constant [30 x i8] c"used .debug on a null pointer\00" +@.str.6130 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6131 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" +@.str.6132 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6133 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6134 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" +@.str.6135 = private unnamed_addr constant [34 x i8] c"!{i32 7, !\22Dwarf Version\22, i32 4}\00" +@.str.6136 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6137 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" +@.str.6138 = private unnamed_addr constant [39 x i8] c"!{i32 2, !\22Debug Info Version\22, i32 3}\00" +@.str.6139 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6140 = private unnamed_addr constant [32 x i8] c"used .mdfiles on a null pointer\00" +@.str.6141 = private unnamed_addr constant [20 x i8] c"!DIFile(filename: \22\00" +@.str.6142 = private unnamed_addr constant [16 x i8] c"\22, directory: \22\00" +@.str.6143 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6144 = private unnamed_addr constant [28 x i8] c"used .cwd on a null pointer\00" +@.str.6145 = private unnamed_addr constant [3 x i8] c"\22)\00" +@.str.6146 = private unnamed_addr constant [53 x i8] c"distinct !DICompileUnit(language: DW_LANG_C, file: !\00" +@.str.6147 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6148 = private unnamed_addr constant [32 x i8] c"used .mdfiles on a null pointer\00" +@.str.6149 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6150 = private unnamed_addr constant [85 x i8] c", producer: \22finch\22, isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug)\00" +@.str.6151 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6152 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" +@.str.6153 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6154 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6155 = private unnamed_addr constant [5 x i8] c"main\00" +@.str.6156 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6157 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.6158 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6159 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.6160 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6161 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6162 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6163 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.6164 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6165 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6166 = private unnamed_addr constant [83 x i8] c"a library (--shared) has no main: the program that loads it calls its 'export fn's\00" +@.str.6167 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6168 = private unnamed_addr constant [65 x i8] c":1:1: error: there is no main function (add 'fn main() { ... }')\00" +@.str.6169 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6170 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6171 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6172 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6173 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.6174 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6175 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" +@.str.6176 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6177 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.6178 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6179 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6180 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" +@.str.6181 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6182 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6183 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.6184 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6185 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6186 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" +@.str.6187 = private unnamed_addr constant [11 x i8] c" dllexport\00" +@.str.6188 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6189 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6190 = private unnamed_addr constant [7 x i8] c"define\00" +@.str.6191 = private unnamed_addr constant [108 x i8] c" void @finch_module_on_fatal(ptr %handler) {\0Aentry:\0A call void @finch_on_fatal(ptr %handler)\0A ret void\0A}\0A\00" +@.str.6192 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6193 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.6194 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6195 = private unnamed_addr constant [6 x i8] c"call \00" +@.str.6196 = private unnamed_addr constant [2 x i8] c" \00" +@.str.6197 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.6198 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6199 = private unnamed_addr constant [134 x i8] c" %args = alloca { ptr, i64, i64 }\0A call void @finch_args(ptr %args, i32 %argc, ptr %argv)\0A %a = load { ptr, i64, i64 }, ptr %args\0A\00" +@.str.6200 = private unnamed_addr constant [21 x i8] c"{ ptr, i64, i64 } %a\00" +@.str.6201 = private unnamed_addr constant [2 x i8] c")\00" +@.str.6202 = private unnamed_addr constant [13 x i8] c" ret i32 0\0A\00" +@.str.6203 = private unnamed_addr constant [6 x i8] c"%r = \00" +@.str.6204 = private unnamed_addr constant [3 x i8] c" \00" +@.str.6205 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6206 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6207 = private unnamed_addr constant [22 x i8] c" %ok = extractvalue \00" +@.str.6208 = private unnamed_addr constant [63 x i8] c" %r, 0\0A br i1 %ok, label %main.ok, label %main.bad\0Amain.bad:\0A\00" +@.str.6209 = private unnamed_addr constant [21 x i8] c" %m = extractvalue \00" +@.str.6210 = private unnamed_addr constant [79 x i8] c" %r, 2\0A %mp = alloca { ptr, i64, i64 }\0A store { ptr, i64, i64 } %m, ptr %mp\0A\00" +@.str.6211 = private unnamed_addr constant [63 x i8] c" call void @finch_report_error(ptr %mp)\0A ret i32 1\0Amain.ok:\0A\00" +@.str.6212 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.6213 = private unnamed_addr constant [21 x i8] c" %v = extractvalue \00" +@.str.6214 = private unnamed_addr constant [54 x i8] c" %r, 1\0A %code = trunc i64 %v to i32\0A ret i32 %code\0A\00" +@.str.6215 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.6216 = private unnamed_addr constant [6 x i8] c"%r = \00" +@.str.6217 = private unnamed_addr constant [47 x i8] c" %code = trunc i64 %r to i32\0A ret i32 %code\0A\00" +@.str.6218 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6219 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6220 = private unnamed_addr constant [49 x i8] c"define i32 @main(i32 %argc, ptr %argv) {\0Aentry:\0A\00" +@.str.6221 = private unnamed_addr constant [3 x i8] c" \00" +@.str.6222 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6223 = private unnamed_addr constant [3 x i8] c"}\0A\00" +@.str.6224 = private unnamed_addr constant [6 x i8] c"print\00" +@.str.6225 = private unnamed_addr constant [17 x i8] c"print(a, b, ...)\00" +@.str.6226 = private unnamed_addr constant [79 x i8] c"Prints the values separated by spaces, then a new line. Works with every type.\00" +@.str.6227 = private unnamed_addr constant [6 x i8] c"input\00" +@.str.6228 = private unnamed_addr constant [32 x i8] c"input(str question = \22\22) -> str\00" +@.str.6229 = private unnamed_addr constant [78 x i8] c"Shows the question and reads one line typed by the user, without the newline.\00" +@.str.6230 = private unnamed_addr constant [10 x i8] c"read_file\00" +@.str.6231 = private unnamed_addr constant [27 x i8] c"read_file(str path) -> str\00" +@.str.6232 = private unnamed_addr constant [122 x i8] c"The whole file as text. Stops the program if it can't be read, unless handled: read_file(p) or { ... }, try read_file(p).\00" +@.str.6233 = private unnamed_addr constant [11 x i8] c"write_file\00" +@.str.6234 = private unnamed_addr constant [39 x i8] c"write_file(str path, str text) -> bool\00" +@.str.6235 = private unnamed_addr constant [84 x i8] c"Writes (replaces) the file. true if it worked; with or / try, the reason it didn't.\00" +@.str.6236 = private unnamed_addr constant [12 x i8] c"file_exists\00" +@.str.6237 = private unnamed_addr constant [30 x i8] c"file_exists(str path) -> bool\00" +@.str.6238 = private unnamed_addr constant [30 x i8] c"Is there a file at this path?\00" +@.str.6239 = private unnamed_addr constant [12 x i8] c"delete_file\00" +@.str.6240 = private unnamed_addr constant [30 x i8] c"delete_file(str path) -> bool\00" +@.str.6241 = private unnamed_addr constant [74 x i8] c"Deletes the file. true if it worked; with or / try, the reason it didn't.\00" +@.str.6242 = private unnamed_addr constant [6 x i8] c"error\00" +@.str.6243 = private unnamed_addr constant [19 x i8] c"error(str message)\00" +@.str.6244 = private unnamed_addr constant [99 x i8] c"The failure a fallible function returns: return error(\22...\22). The caller handles it with or / try.\00" +@.str.6245 = private unnamed_addr constant [6 x i8] c"shell\00" +@.str.6246 = private unnamed_addr constant [26 x i8] c"shell(str command) -> int\00" +@.str.6247 = private unnamed_addr constant [67 x i8] c"Runs a command in the system's shell and gives back its exit code.\00" +@.str.6248 = private unnamed_addr constant [5 x i8] c"exit\00" +@.str.6249 = private unnamed_addr constant [15 x i8] c"exit(int code)\00" +@.str.6250 = private unnamed_addr constant [49 x i8] c"Ends the program right away with this exit code.\00" +@.str.6251 = private unnamed_addr constant [5 x i8] c"addr\00" +@.str.6252 = private unnamed_addr constant [18 x i8] c"addr(x) -> ptr[T]\00" +@.str.6253 = private unnamed_addr constant [78 x i8] c"A pointer to a variable, field or element. addr(function) gives C a callback.\00" +@.str.6254 = private unnamed_addr constant [4 x i8] c"new\00" +@.str.6255 = private unnamed_addr constant [21 x i8] c"new(value) -> ptr[T]\00" +@.str.6256 = private unnamed_addr constant [67 x i8] c"Puts a copy of the value on the heap. Give it back with free(...).\00" +@.str.6257 = private unnamed_addr constant [5 x i8] c"free\00" +@.str.6258 = private unnamed_addr constant [12 x i8] c"free(ptr p)\00" +@.str.6259 = private unnamed_addr constant [74 x i8] c"Gives back memory from new(...) (or from C), freeing what the value owns.\00" +@.str.6260 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.6261 = private unnamed_addr constant [14 x i8] c"str(x) -> str\00" +@.str.6262 = private unnamed_addr constant [62 x i8] c"Turns a number, bool, char, []u8 or C char pointer into text.\00" +@.str.6263 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.6264 = private unnamed_addr constant [14 x i8] c"int(x) -> int\00" +@.str.6265 = private unnamed_addr constant [131 x i8] c"Converts to a whole number: cuts off fractions, parses text (stops the program if it isn't a number, unless handled: int(s) or 0).\00" +@.str.6266 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.6267 = private unnamed_addr constant [18 x i8] c"float(x) -> float\00" +@.str.6268 = private unnamed_addr constant [76 x i8] c"Converts to a decimal number; parses text (int(s) or 0.0 handles bad text).\00" +@.str.6269 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.6270 = private unnamed_addr constant [20 x i8] c"char(int n) -> char\00" +@.str.6271 = private unnamed_addr constant [30 x i8] c"The character with this code.\00" +@.str.6272 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.6273 = private unnamed_addr constant [20 x i8] c"bool(int n) -> bool\00" +@.str.6274 = private unnamed_addr constant [27 x i8] c"true for any number but 0.\00" +@.str.6275 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.6276 = private unnamed_addr constant [14 x i8] c"ptr(x) -> ptr\00" +@.str.6277 = private unnamed_addr constant [89 x i8] c"An untyped pointer: from a typed pointer, or from a number (an address or offset for C).\00" +@.str.6278 = private unnamed_addr constant [4 x i8] c"len\00" +@.str.6279 = private unnamed_addr constant [12 x i8] c".len -> int\00" +@.str.6280 = private unnamed_addr constant [24 x i8] c"The number of elements.\00" +@.str.6281 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.6282 = private unnamed_addr constant [15 x i8] c".ptr -> ptr[T]\00" +@.str.6283 = private unnamed_addr constant [41 x i8] c"The address of the first element, for C.\00" +@.str.6284 = private unnamed_addr constant [5 x i8] c"push\00" +@.str.6285 = private unnamed_addr constant [10 x i8] c"push(T x)\00" +@.str.6286 = private unnamed_addr constant [19 x i8] c"Adds x at the end.\00" +@.str.6287 = private unnamed_addr constant [4 x i8] c"pop\00" +@.str.6288 = private unnamed_addr constant [11 x i8] c"pop() -> T\00" +@.str.6289 = private unnamed_addr constant [44 x i8] c"Removes the last element and gives it back.\00" +@.str.6290 = private unnamed_addr constant [7 x i8] c"insert\00" +@.str.6291 = private unnamed_addr constant [19 x i8] c"insert(int i, T x)\00" +@.str.6292 = private unnamed_addr constant [39 x i8] c"Puts x at position i, moving the rest.\00" +@.str.6293 = private unnamed_addr constant [7 x i8] c"remove\00" +@.str.6294 = private unnamed_addr constant [19 x i8] c"remove(int i) -> T\00" +@.str.6295 = private unnamed_addr constant [38 x i8] c"Removes position i and gives it back.\00" +@.str.6296 = private unnamed_addr constant [6 x i8] c"clear\00" +@.str.6297 = private unnamed_addr constant [8 x i8] c"clear()\00" +@.str.6298 = private unnamed_addr constant [20 x i8] c"Removes everything.\00" +@.str.6299 = private unnamed_addr constant [7 x i8] c"resize\00" +@.str.6300 = private unnamed_addr constant [14 x i8] c"resize(int n)\00" +@.str.6301 = private unnamed_addr constant [47 x i8] c"Makes the array n long; new elements are zero.\00" +@.str.6302 = private unnamed_addr constant [5 x i8] c"find\00" +@.str.6303 = private unnamed_addr constant [17 x i8] c"find(T x) -> int\00" +@.str.6304 = private unnamed_addr constant [23 x i8] c"The index of x, or -1.\00" +@.str.6305 = private unnamed_addr constant [9 x i8] c"contains\00" +@.str.6306 = private unnamed_addr constant [22 x i8] c"contains(T x) -> bool\00" +@.str.6307 = private unnamed_addr constant [19 x i8] c"Is x in the array?\00" +@.str.6308 = private unnamed_addr constant [5 x i8] c"sort\00" +@.str.6309 = private unnamed_addr constant [7 x i8] c"sort()\00" +@.str.6310 = private unnamed_addr constant [38 x i8] c"Sorts in place (numbers, chars, str).\00" +@.str.6311 = private unnamed_addr constant [8 x i8] c"reverse\00" +@.str.6312 = private unnamed_addr constant [10 x i8] c"reverse()\00" +@.str.6313 = private unnamed_addr constant [19 x i8] c"Reverses in place.\00" +@.str.6314 = private unnamed_addr constant [6 x i8] c"slice\00" +@.str.6315 = private unnamed_addr constant [33 x i8] c"slice(int start, int end) -> []T\00" +@.str.6316 = private unnamed_addr constant [46 x i8] c"A new array with the elements start to end-1.\00" +@.str.6317 = private unnamed_addr constant [5 x i8] c"join\00" +@.str.6318 = private unnamed_addr constant [21 x i8] c"join(str sep) -> str\00" +@.str.6319 = private unnamed_addr constant [48 x i8] c"For []str: one text with sep between the parts.\00" +@.str.6320 = private unnamed_addr constant [4 x i8] c"len\00" +@.str.6321 = private unnamed_addr constant [12 x i8] c".len -> int\00" +@.str.6322 = private unnamed_addr constant [21 x i8] c"The number of bytes.\00" +@.str.6323 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.6324 = private unnamed_addr constant [18 x i8] c".ptr -> ptr[char]\00" +@.str.6325 = private unnamed_addr constant [60 x i8] c"The address of the text, for C (valid while the str lives).\00" +@.str.6326 = private unnamed_addr constant [4 x i8] c"sub\00" +@.str.6327 = private unnamed_addr constant [31 x i8] c"sub(int start, int end) -> str\00" +@.str.6328 = private unnamed_addr constant [30 x i8] c"The part from start to end-1.\00" +@.str.6329 = private unnamed_addr constant [5 x i8] c"find\00" +@.str.6330 = private unnamed_addr constant [19 x i8] c"find(str t) -> int\00" +@.str.6331 = private unnamed_addr constant [23 x i8] c"Where t starts, or -1.\00" +@.str.6332 = private unnamed_addr constant [9 x i8] c"contains\00" +@.str.6333 = private unnamed_addr constant [24 x i8] c"contains(str t) -> bool\00" +@.str.6334 = private unnamed_addr constant [25 x i8] c"Does the text contain t?\00" +@.str.6335 = private unnamed_addr constant [12 x i8] c"starts_with\00" +@.str.6336 = private unnamed_addr constant [27 x i8] c"starts_with(str t) -> bool\00" +@.str.6337 = private unnamed_addr constant [28 x i8] c"Does the text start with t?\00" +@.str.6338 = private unnamed_addr constant [10 x i8] c"ends_with\00" +@.str.6339 = private unnamed_addr constant [25 x i8] c"ends_with(str t) -> bool\00" +@.str.6340 = private unnamed_addr constant [26 x i8] c"Does the text end with t?\00" +@.str.6341 = private unnamed_addr constant [6 x i8] c"split\00" +@.str.6342 = private unnamed_addr constant [24 x i8] c"split(str sep) -> []str\00" +@.str.6343 = private unnamed_addr constant [63 x i8] c"The parts between each sep; split(\22\22) gives single characters.\00" +@.str.6344 = private unnamed_addr constant [5 x i8] c"trim\00" +@.str.6345 = private unnamed_addr constant [14 x i8] c"trim() -> str\00" +@.str.6346 = private unnamed_addr constant [42 x i8] c"Without spaces and newlines at both ends.\00" +@.str.6347 = private unnamed_addr constant [6 x i8] c"upper\00" +@.str.6348 = private unnamed_addr constant [15 x i8] c"upper() -> str\00" +@.str.6349 = private unnamed_addr constant [25 x i8] c"With a-z changed to A-Z.\00" +@.str.6350 = private unnamed_addr constant [6 x i8] c"lower\00" +@.str.6351 = private unnamed_addr constant [15 x i8] c"lower() -> str\00" +@.str.6352 = private unnamed_addr constant [25 x i8] c"With A-Z changed to a-z.\00" +@.str.6353 = private unnamed_addr constant [8 x i8] c"replace\00" +@.str.6354 = private unnamed_addr constant [33 x i8] c"replace(str from, str to) -> str\00" +@.str.6355 = private unnamed_addr constant [27 x i8] c"Every from replaced by to.\00" +@.str.6356 = private unnamed_addr constant [7 x i8] c"repeat\00" +@.str.6357 = private unnamed_addr constant [21 x i8] c"repeat(int n) -> str\00" +@.str.6358 = private unnamed_addr constant [18 x i8] c"The text n times.\00" +@.str.6359 = private unnamed_addr constant [6 x i8] c"bytes\00" +@.str.6360 = private unnamed_addr constant [16 x i8] c"bytes() -> []u8\00" +@.str.6361 = private unnamed_addr constant [23 x i8] c"The bytes of the text.\00" +@.str.6362 = private unnamed_addr constant [4 x i8] c"len\00" +@.str.6363 = private unnamed_addr constant [12 x i8] c".len -> int\00" +@.str.6364 = private unnamed_addr constant [20 x i8] c"The number of keys.\00" +@.str.6365 = private unnamed_addr constant [4 x i8] c"has\00" +@.str.6366 = private unnamed_addr constant [19 x i8] c"has(K key) -> bool\00" +@.str.6367 = private unnamed_addr constant [23 x i8] c"Is the key in the map?\00" +@.str.6368 = private unnamed_addr constant [4 x i8] c"get\00" +@.str.6369 = private unnamed_addr constant [27 x i8] c"get(K key, V default) -> V\00" +@.str.6370 = private unnamed_addr constant [54 x i8] c"The value for key, or default if the key isn't there.\00" +@.str.6371 = private unnamed_addr constant [7 x i8] c"remove\00" +@.str.6372 = private unnamed_addr constant [22 x i8] c"remove(K key) -> bool\00" +@.str.6373 = private unnamed_addr constant [53 x i8] c"Removes the key and its value; true if it was there.\00" +@.str.6374 = private unnamed_addr constant [6 x i8] c"clear\00" +@.str.6375 = private unnamed_addr constant [8 x i8] c"clear()\00" +@.str.6376 = private unnamed_addr constant [20 x i8] c"Removes everything.\00" +@.str.6377 = private unnamed_addr constant [5 x i8] c"keys\00" +@.str.6378 = private unnamed_addr constant [14 x i8] c"keys() -> []K\00" +@.str.6379 = private unnamed_addr constant [40 x i8] c"The keys, in the order they were added.\00" +@.str.6380 = private unnamed_addr constant [7 x i8] c"values\00" +@.str.6381 = private unnamed_addr constant [16 x i8] c"values() -> []V\00" +@.str.6382 = private unnamed_addr constant [48 x i8] c"The values, in the order their keys were added.\00" +@.str.6383 = private unnamed_addr constant [3 x i8] c"fn\00" +@.str.6384 = private unnamed_addr constant [7 x i8] c"return\00" +@.str.6385 = private unnamed_addr constant [3 x i8] c"if\00" +@.str.6386 = private unnamed_addr constant [5 x i8] c"else\00" +@.str.6387 = private unnamed_addr constant [6 x i8] c"while\00" +@.str.6388 = private unnamed_addr constant [4 x i8] c"for\00" +@.str.6389 = private unnamed_addr constant [3 x i8] c"in\00" +@.str.6390 = private unnamed_addr constant [6 x i8] c"break\00" +@.str.6391 = private unnamed_addr constant [9 x i8] c"continue\00" +@.str.6392 = private unnamed_addr constant [5 x i8] c"true\00" +@.str.6393 = private unnamed_addr constant [6 x i8] c"false\00" +@.str.6394 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.6395 = private unnamed_addr constant [7 x i8] c"import\00" +@.str.6396 = private unnamed_addr constant [5 x i8] c"link\00" +@.str.6397 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.6398 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.6399 = private unnamed_addr constant [6 x i8] c"match\00" +@.str.6400 = private unnamed_addr constant [7 x i8] c"export\00" +@.str.6401 = private unnamed_addr constant [6 x i8] c"defer\00" +@.str.6402 = private unnamed_addr constant [3 x i8] c"or\00" +@.str.6403 = private unnamed_addr constant [4 x i8] c"try\00" +@.str.6404 = private unnamed_addr constant [5 x i8] c"self\00" +@.str.6405 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.6406 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.6407 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.6408 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.6409 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.6410 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.6411 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.6412 = private unnamed_addr constant [3 x i8] c"i8\00" +@.str.6413 = private unnamed_addr constant [4 x i8] c"i16\00" +@.str.6414 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.6415 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.6416 = private unnamed_addr constant [3 x i8] c"u8\00" +@.str.6417 = private unnamed_addr constant [4 x i8] c"u16\00" +@.str.6418 = private unnamed_addr constant [4 x i8] c"u32\00" +@.str.6419 = private unnamed_addr constant [4 x i8] c"u64\00" +@.str.6420 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.6421 = private unnamed_addr constant [4 x i8] c"f64\00" +@.str.6422 = private unnamed_addr constant [10 x i8] c"```finch\0A\00" +@.str.6423 = private unnamed_addr constant [6 x i8] c"\0A```\0A\00" declare ptr @clang_getCString([2 x i64]) declare void @clang_disposeString([2 x i64]) -@.str.6216 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str.6217 = private unnamed_addr constant [16 x i8] c"/finch_cc_dirs_\00" -@.str.6218 = private unnamed_addr constant [5 x i8] c".txt\00" -@.str.6219 = private unnamed_addr constant [14 x i8] c"/finch_empty_\00" -@.str.6220 = private unnamed_addr constant [3 x i8] c".c\00" -@.str.6221 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6222 = private unnamed_addr constant [13 x i8] c" -E -v -x c \00" -@.str.6223 = private unnamed_addr constant [5 x i8] c" 2> \00" -@.str.6224 = private unnamed_addr constant [4 x i8] c" > \00" -@.str.6225 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6226 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6227 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6228 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6229 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6230 = private unnamed_addr constant [35 x i8] c"#include <...> search starts here:\00" -@.str.6231 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6232 = private unnamed_addr constant [20 x i8] c"End of search list.\00" -@.str.6233 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6234 = private unnamed_addr constant [23 x i8] c" (framework directory)\00" -@.str.6235 = private unnamed_addr constant [12 x i8] c"-iframework\00" -@.str.6236 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6237 = private unnamed_addr constant [9 x i8] c"-isystem\00" +@.str.6424 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str.6425 = private unnamed_addr constant [16 x i8] c"/finch_cc_dirs_\00" +@.str.6426 = private unnamed_addr constant [5 x i8] c".txt\00" +@.str.6427 = private unnamed_addr constant [14 x i8] c"/finch_empty_\00" +@.str.6428 = private unnamed_addr constant [3 x i8] c".c\00" +@.str.6429 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6430 = private unnamed_addr constant [13 x i8] c" -E -v -x c \00" +@.str.6431 = private unnamed_addr constant [5 x i8] c" 2> \00" +@.str.6432 = private unnamed_addr constant [4 x i8] c" > \00" +@.str.6433 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6434 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6435 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6436 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6437 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6438 = private unnamed_addr constant [35 x i8] c"#include <...> search starts here:\00" +@.str.6439 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6440 = private unnamed_addr constant [20 x i8] c"End of search list.\00" +@.str.6441 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6442 = private unnamed_addr constant [23 x i8] c" (framework directory)\00" +@.str.6443 = private unnamed_addr constant [12 x i8] c"-iframework\00" +@.str.6444 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6445 = private unnamed_addr constant [9 x i8] c"-isystem\00" declare void @clang_getTypeDeclaration(ptr sret(%S.C.CXCursor) align 16, ptr) declare [2 x i64] @clang_getCursorUSR(ptr) -@.str.6238 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6239 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" -@.str.6240 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6241 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" -@.str.6242 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6446 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6447 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" +@.str.6448 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6449 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" +@.str.6450 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" declare [2 x i64] @clang_getCursorSpelling(ptr) -@.str.6243 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6244 = private unnamed_addr constant [2 x i8] c" \00" -@.str.6245 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6246 = private unnamed_addr constant [29 x i8] c"used .anon on a null pointer\00" -@.str.6247 = private unnamed_addr constant [13 x i8] c"anon_struct_\00" -@.str.6248 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6249 = private unnamed_addr constant [29 x i8] c"used .anon on a null pointer\00" -@.str.6250 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6251 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" +@.str.6451 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6452 = private unnamed_addr constant [2 x i8] c" \00" +@.str.6453 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6454 = private unnamed_addr constant [29 x i8] c"used .anon on a null pointer\00" +@.str.6455 = private unnamed_addr constant [13 x i8] c"anon_struct_\00" +@.str.6456 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6457 = private unnamed_addr constant [29 x i8] c"used .anon on a null pointer\00" +@.str.6458 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6459 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" declare void @clang_getCanonicalType(ptr sret(%S.C.CXType) align 16, ptr) -@.str.6252 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6253 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.6254 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6255 = private unnamed_addr constant [33 x i8] c"used .defining on a null pointer\00" +@.str.6460 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6461 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6462 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6463 = private unnamed_addr constant [33 x i8] c"used .defining on a null pointer\00" declare i64 @clang_Type_getSizeOf(ptr) -@.str.6256 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6257 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6258 = private unnamed_addr constant [33 x i8] c"used .defining on a null pointer\00" +@.str.6464 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6465 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6466 = private unnamed_addr constant [33 x i8] c"used .defining on a null pointer\00" declare i64 @clang_Type_getAlignOf(ptr) declare i32 @clang_getCursorKind(ptr) -@.str.6259 = private unnamed_addr constant [13 x i8] c"is a C union\00" +@.str.6467 = private unnamed_addr constant [13 x i8] c"is a C union\00" declare i32 @clang_Type_visitFields(ptr, ptr, ptr) -@.str.6260 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6261 = private unnamed_addr constant [33 x i8] c"used .defining on a null pointer\00" -@.str.6262 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6263 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.6264 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6265 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6468 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6469 = private unnamed_addr constant [33 x i8] c"used .defining on a null pointer\00" +@.str.6470 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6471 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6472 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6473 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" declare void @clang_getCursorType(ptr sret(%S.C.CXType) align 16, ptr) declare i64 @clang_Cursor_getOffsetOfField(ptr) declare i32 @clang_Cursor_isBitField(ptr) -@.str.6266 = private unnamed_addr constant [15 x i8] c"has bit fields\00" -@.str.6267 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6268 = private unnamed_addr constant [26 x i8] c"used .s on a null pointer\00" -@.str.6269 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6270 = private unnamed_addr constant [36 x i8] c"used .unsupported on a null pointer\00" -@.str.6271 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6272 = private unnamed_addr constant [28 x i8] c"used .imp on a null pointer\00" -@.str.6273 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6274 = private unnamed_addr constant [26 x i8] c"used .s on a null pointer\00" -@.str.6275 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6276 = private unnamed_addr constant [34 x i8] c"used .hasHidden on a null pointer\00" -@.str.6277 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6278 = private unnamed_addr constant [26 x i8] c"used .s on a null pointer\00" -@.str.6279 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6280 = private unnamed_addr constant [31 x i8] c"used .fields on a null pointer\00" -@.str.6281 = private unnamed_addr constant [3 x i8] c"i8\00" -@.str.6282 = private unnamed_addr constant [3 x i8] c"u8\00" -@.str.6283 = private unnamed_addr constant [4 x i8] c"i16\00" -@.str.6284 = private unnamed_addr constant [4 x i8] c"u16\00" -@.str.6285 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.6286 = private unnamed_addr constant [4 x i8] c"u32\00" -@.str.6287 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.6288 = private unnamed_addr constant [4 x i8] c"u64\00" -@.str.6289 = private unnamed_addr constant [8 x i8] c"uses a \00" -@.str.6290 = private unnamed_addr constant [12 x i8] c"-bit number\00" -@.str.6291 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.6292 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.6293 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.6294 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.6295 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.6474 = private unnamed_addr constant [15 x i8] c"has bit fields\00" +@.str.6475 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6476 = private unnamed_addr constant [26 x i8] c"used .s on a null pointer\00" +@.str.6477 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6478 = private unnamed_addr constant [36 x i8] c"used .unsupported on a null pointer\00" +@.str.6479 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6480 = private unnamed_addr constant [28 x i8] c"used .imp on a null pointer\00" +@.str.6481 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6482 = private unnamed_addr constant [26 x i8] c"used .s on a null pointer\00" +@.str.6483 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6484 = private unnamed_addr constant [34 x i8] c"used .hasHidden on a null pointer\00" +@.str.6485 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6486 = private unnamed_addr constant [26 x i8] c"used .s on a null pointer\00" +@.str.6487 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6488 = private unnamed_addr constant [31 x i8] c"used .fields on a null pointer\00" +@.str.6489 = private unnamed_addr constant [3 x i8] c"i8\00" +@.str.6490 = private unnamed_addr constant [3 x i8] c"u8\00" +@.str.6491 = private unnamed_addr constant [4 x i8] c"i16\00" +@.str.6492 = private unnamed_addr constant [4 x i8] c"u16\00" +@.str.6493 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.6494 = private unnamed_addr constant [4 x i8] c"u32\00" +@.str.6495 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.6496 = private unnamed_addr constant [4 x i8] c"u64\00" +@.str.6497 = private unnamed_addr constant [8 x i8] c"uses a \00" +@.str.6498 = private unnamed_addr constant [12 x i8] c"-bit number\00" +@.str.6499 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.6500 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.6501 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.6502 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.6503 = private unnamed_addr constant [6 x i8] c"float\00" declare void @clang_getPointeeType(ptr sret(%S.C.CXType) align 16, ptr) declare i32 @clang_isConstQualifiedType(ptr) -@.str.6296 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.6297 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.6298 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.6299 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str.6300 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.6301 = private unnamed_addr constant [24 x i8] c"uses a C union by value\00" -@.str.6302 = private unnamed_addr constant [37 x i8] c"uses an incomplete C struct by value\00" -@.str.6303 = private unnamed_addr constant [6 x i8] c"named\00" -@.str.6304 = private unnamed_addr constant [2 x i8] c"C\00" +@.str.6504 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.6505 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.6506 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.6507 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str.6508 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.6509 = private unnamed_addr constant [24 x i8] c"uses a C union by value\00" +@.str.6510 = private unnamed_addr constant [37 x i8] c"uses an incomplete C struct by value\00" +@.str.6511 = private unnamed_addr constant [6 x i8] c"named\00" +@.str.6512 = private unnamed_addr constant [2 x i8] c"C\00" declare void @clang_getArrayElementType(ptr sret(%S.C.CXType) align 16, ptr) declare i64 @clang_getArraySize(ptr) -@.str.6305 = private unnamed_addr constant [17 x i8] c"uses long double\00" -@.str.6306 = private unnamed_addr constant [18 x i8] c"uses the C type '\00" +@.str.6513 = private unnamed_addr constant [17 x i8] c"uses long double\00" +@.str.6514 = private unnamed_addr constant [18 x i8] c"uses the C type '\00" declare [2 x i64] @clang_getTypeSpelling(ptr) -@.str.6307 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.6308 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6309 = private unnamed_addr constant [3 x i8] c"0x\00" -@.str.6310 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6311 = private unnamed_addr constant [3 x i8] c"0X\00" -@.str.6312 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6313 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6314 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6315 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6316 = private unnamed_addr constant [5 x i8] c"uUlL\00" -@.str.6317 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6318 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6319 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6320 = private unnamed_addr constant [27 x i8] c"used .tu on a null pointer\00" +@.str.6515 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.6516 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6517 = private unnamed_addr constant [3 x i8] c"0x\00" +@.str.6518 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6519 = private unnamed_addr constant [3 x i8] c"0X\00" +@.str.6520 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6521 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6522 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6523 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6524 = private unnamed_addr constant [5 x i8] c"uUlL\00" +@.str.6525 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6526 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6527 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6528 = private unnamed_addr constant [27 x i8] c"used .tu on a null pointer\00" declare void @clang_getCursorExtent(ptr sret(%S.C.CXSourceRange) align 16, ptr) declare void @clang_tokenize(ptr, ptr, ptr, ptr) declare i32 @clang_getTokenKind(ptr) -@.str.6321 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6322 = private unnamed_addr constant [27 x i8] c"used .tu on a null pointer\00" +@.str.6529 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6530 = private unnamed_addr constant [27 x i8] c"used .tu on a null pointer\00" declare [2 x i64] @clang_getTokenSpelling(ptr, ptr) -@.str.6323 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6324 = private unnamed_addr constant [27 x i8] c"used .tu on a null pointer\00" +@.str.6531 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6532 = private unnamed_addr constant [27 x i8] c"used .tu on a null pointer\00" declare void @clang_disposeTokens(ptr, ptr, i32) -@.str.6325 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6326 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.6327 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6328 = private unnamed_addr constant [2 x i8] c")\00" -@.str.6329 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6330 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6331 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" -@.str.6332 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6333 = private unnamed_addr constant [2 x i8] c"-\00" -@.str.6334 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6335 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6336 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6337 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6338 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6339 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6340 = private unnamed_addr constant [2 x i8] c".\00" -@.str.6341 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6342 = private unnamed_addr constant [2 x i8] c"e\00" -@.str.6343 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6344 = private unnamed_addr constant [2 x i8] c"E\00" -@.str.6345 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6346 = private unnamed_addr constant [3 x i8] c"0x\00" -@.str.6347 = private unnamed_addr constant [5 x i8] c"fFlL\00" -@.str.6348 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6349 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6350 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6533 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6534 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.6535 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6536 = private unnamed_addr constant [2 x i8] c")\00" +@.str.6537 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6538 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6539 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" +@.str.6540 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6541 = private unnamed_addr constant [2 x i8] c"-\00" +@.str.6542 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6543 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6544 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6545 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6546 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6547 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6548 = private unnamed_addr constant [2 x i8] c".\00" +@.str.6549 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6550 = private unnamed_addr constant [2 x i8] c"e\00" +@.str.6551 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6552 = private unnamed_addr constant [2 x i8] c"E\00" +@.str.6553 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6554 = private unnamed_addr constant [3 x i8] c"0x\00" +@.str.6555 = private unnamed_addr constant [5 x i8] c"fFlL\00" +@.str.6556 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6557 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6558 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" declare void @clang_getTypedefDeclUnderlyingType(ptr sret(%S.C.CXType) align 16, ptr) -@.str.6351 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6352 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" -@.str.6353 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6354 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.6355 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6356 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" -@.str.6357 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6358 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6359 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.6360 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6361 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" -@.str.6362 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6363 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.6364 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6365 = private unnamed_addr constant [31 x i8] c"used .header on a null pointer\00" +@.str.6559 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6560 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" +@.str.6561 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6562 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6563 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6564 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" +@.str.6565 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6566 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6567 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6568 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6569 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" +@.str.6570 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6571 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6572 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6573 = private unnamed_addr constant [31 x i8] c"used .header on a null pointer\00" declare i32 @clang_Cursor_getStorageClass(ptr) -@.str.6366 = private unnamed_addr constant [63 x i8] c"is a static inline C function (it has no code to link against)\00" -@.str.6367 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6368 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.6369 = private unnamed_addr constant [43 x i8] c"has no parameter list in its C declaration\00" -@.str.6370 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6371 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6574 = private unnamed_addr constant [63 x i8] c"is a static inline C function (it has no code to link against)\00" +@.str.6575 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6576 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6577 = private unnamed_addr constant [43 x i8] c"has no parameter list in its C declaration\00" +@.str.6578 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6579 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" declare void @clang_getResultType(ptr sret(%S.C.CXType) align 16, ptr) declare i32 @clang_getNumArgTypes(ptr) declare void @clang_getArgType(ptr sret(%S.C.CXType) align 16, ptr, i32) declare i32 @clang_isFunctionTypeVariadic(ptr) -@.str.6372 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6373 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.6374 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6375 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.6376 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6377 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6580 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6581 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6582 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6583 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6584 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6585 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" declare i32 @clang_isCursorDefinition(ptr) -@.str.6378 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6379 = private unnamed_addr constant [2 x i8] c" \00" -@.str.6380 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6381 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" -@.str.6382 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6383 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" +@.str.6586 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6587 = private unnamed_addr constant [2 x i8] c" \00" +@.str.6588 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6589 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" +@.str.6590 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6591 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" declare i32 @clang_visitChildren(ptr, ptr, ptr) -@.str.6384 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6385 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6592 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6593 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" declare i64 @clang_getEnumConstantDeclValue(ptr) -@.str.6386 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6387 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6594 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6595 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" declare i32 @clang_Cursor_isMacroBuiltin(ptr) declare i32 @clang_Cursor_isMacroFunctionLike(ptr) -@.str.6388 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6389 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.6390 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6391 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.6392 = private unnamed_addr constant [3 x i8] c"-x\00" -@.str.6393 = private unnamed_addr constant [2 x i8] c"c\00" -@.str.6394 = private unnamed_addr constant [11 x i8] c"-std=gnu11\00" -@.str.6395 = private unnamed_addr constant [10 x i8] c"--target=\00" -@.str.6396 = private unnamed_addr constant [20 x i8] c"-D_USE_MATH_DEFINES\00" -@.str.6397 = private unnamed_addr constant [3 x i8] c"-I\00" -@.str.6398 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6399 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6596 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6597 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6598 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6599 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6600 = private unnamed_addr constant [3 x i8] c"-x\00" +@.str.6601 = private unnamed_addr constant [2 x i8] c"c\00" +@.str.6602 = private unnamed_addr constant [11 x i8] c"-std=gnu11\00" +@.str.6603 = private unnamed_addr constant [10 x i8] c"--target=\00" +@.str.6604 = private unnamed_addr constant [20 x i8] c"-D_USE_MATH_DEFINES\00" +@.str.6605 = private unnamed_addr constant [3 x i8] c"-I\00" +@.str.6606 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6607 = private unnamed_addr constant [1 x i8] c"\00" declare ptr @clang_createIndex(i32, i32) -@.str.6400 = private unnamed_addr constant [11 x i8] c"#include \22\00" -@.str.6401 = private unnamed_addr constant [3 x i8] c"\22\0A\00" -@.str.6402 = private unnamed_addr constant [15 x i8] c"finch_import.c\00" -@.str.6403 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6404 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6405 = private unnamed_addr constant [15 x i8] c"finch_import.c\00" -@.str.6406 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6608 = private unnamed_addr constant [11 x i8] c"#include \22\00" +@.str.6609 = private unnamed_addr constant [3 x i8] c"\22\0A\00" +@.str.6610 = private unnamed_addr constant [15 x i8] c"finch_import.c\00" +@.str.6611 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6612 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6613 = private unnamed_addr constant [15 x i8] c"finch_import.c\00" +@.str.6614 = private unnamed_addr constant [1 x i8] c"\00" declare i32 @clang_parseTranslationUnit2(ptr, ptr, ptr, i32, ptr, i32, i32, ptr) -@.str.6407 = private unnamed_addr constant [34 x i8] c": error: couldn't read C header '\00" -@.str.6408 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.6615 = private unnamed_addr constant [34 x i8] c": error: couldn't read C header '\00" +@.str.6616 = private unnamed_addr constant [2 x i8] c"'\00" declare i32 @clang_getNumDiagnostics(ptr) declare ptr @clang_getDiagnostic(ptr, i32) declare i32 @clang_getDiagnosticSeverity(ptr) declare [2 x i64] @clang_getDiagnosticSpelling(ptr) declare void @clang_disposeDiagnostic(ptr) -@.str.6409 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6410 = private unnamed_addr constant [15 x i8] c"file not found\00" -@.str.6411 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6412 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6413 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6414 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.6415 = private unnamed_addr constant [35 x i8] c": error: can't find the C header '\00" -@.str.6416 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.6417 = private unnamed_addr constant [35 x i8] c": error: can't find the C header '\00" -@.str.6418 = private unnamed_addr constant [11 x i8] c"', which '\00" -@.str.6419 = private unnamed_addr constant [61 x i8] c"' includes (is its library's development package installed?)\00" -@.str.6420 = private unnamed_addr constant [20 x i8] c": error: C header '\00" -@.str.6421 = private unnamed_addr constant [17 x i8] c"' has an error: \00" +@.str.6617 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6618 = private unnamed_addr constant [15 x i8] c"file not found\00" +@.str.6619 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6620 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6621 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6622 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.6623 = private unnamed_addr constant [35 x i8] c": error: can't find the C header '\00" +@.str.6624 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.6625 = private unnamed_addr constant [35 x i8] c": error: can't find the C header '\00" +@.str.6626 = private unnamed_addr constant [11 x i8] c"', which '\00" +@.str.6627 = private unnamed_addr constant [61 x i8] c"' includes (is its library's development package installed?)\00" +@.str.6628 = private unnamed_addr constant [20 x i8] c": error: C header '\00" +@.str.6629 = private unnamed_addr constant [17 x i8] c"' has an error: \00" declare void @clang_getTranslationUnitCursor(ptr sret(%S.C.CXCursor) align 16, ptr) declare void @clang_disposeTranslationUnit(ptr) declare void @clang_disposeIndex(ptr) -@.str.6422 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.6423 = private unnamed_addr constant [13 x i8] c"src/host.fch\00" -@.str.6424 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.6425 = private unnamed_addr constant [5 x i8] c"'\5C''\00" -@.str.6426 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.6427 = private unnamed_addr constant [10 x i8] c"/dev/null\00" -@.str.6428 = private unnamed_addr constant [7 x i8] c"TMPDIR\00" -@.str.6429 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6430 = private unnamed_addr constant [13 x i8] c"src/host.fch\00" -@.str.6431 = private unnamed_addr constant [2 x i8] c"/\00" -@.str.6432 = private unnamed_addr constant [13 x i8] c"src/host.fch\00" -@.str.6433 = private unnamed_addr constant [5 x i8] c"/tmp\00" -@.str.6434 = private unnamed_addr constant [2 x i8] c":\00" +@.str.6630 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.6631 = private unnamed_addr constant [13 x i8] c"src/host.fch\00" +@.str.6632 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.6633 = private unnamed_addr constant [5 x i8] c"'\5C''\00" +@.str.6634 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.6635 = private unnamed_addr constant [10 x i8] c"/dev/null\00" +@.str.6636 = private unnamed_addr constant [7 x i8] c"TMPDIR\00" +@.str.6637 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6638 = private unnamed_addr constant [13 x i8] c"src/host.fch\00" +@.str.6639 = private unnamed_addr constant [2 x i8] c"/\00" +@.str.6640 = private unnamed_addr constant [13 x i8] c"src/host.fch\00" +@.str.6641 = private unnamed_addr constant [5 x i8] c"/tmp\00" +@.str.6642 = private unnamed_addr constant [2 x i8] c":\00" declare i32 @getpid() -@.str.6435 = private unnamed_addr constant [4 x i8] c"PWD\00" -@.str.6436 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6437 = private unnamed_addr constant [15 x i8] c"XDG_CACHE_HOME\00" -@.str.6438 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6439 = private unnamed_addr constant [7 x i8] c"/finch\00" -@.str.6440 = private unnamed_addr constant [5 x i8] c"HOME\00" -@.str.6441 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6442 = private unnamed_addr constant [14 x i8] c"/.cache/finch\00" -@.str.6443 = private unnamed_addr constant [13 x i8] c"/finch-cache\00" -@.str.6444 = private unnamed_addr constant [10 x i8] c"mkdir -p \00" -@.str.6445 = private unnamed_addr constant [8 x i8] c"rm -rf \00" -@.str.6446 = private unnamed_addr constant [4 x i8] c"mv \00" -@.str.6447 = private unnamed_addr constant [2 x i8] c" \00" -@.str.6448 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6449 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6450 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6451 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6452 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6453 = private unnamed_addr constant [15 x i8] c"/finch_triple_\00" -@.str.6454 = private unnamed_addr constant [5 x i8] c".txt\00" -@.str.6455 = private unnamed_addr constant [22 x i8] c"clang -dumpmachine > \00" -@.str.6456 = private unnamed_addr constant [5 x i8] c" 2> \00" -@.str.6457 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6458 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6459 = private unnamed_addr constant [25 x i8] c"x86_64-unknown-linux-gnu\00" -@.str.6460 = private unnamed_addr constant [8 x i8] c"windows\00" -@.str.6461 = private unnamed_addr constant [19 x i8] c"x86_64-w64-mingw32\00" -@.str.6462 = private unnamed_addr constant [6 x i8] c"linux\00" -@.str.6463 = private unnamed_addr constant [25 x i8] c"x86_64-unknown-linux-gnu\00" -@.str.6464 = private unnamed_addr constant [6 x i8] c"arm64\00" -@.str.6465 = private unnamed_addr constant [8 x i8] c"aarch64\00" -@.str.6466 = private unnamed_addr constant [12 x i8] c"linux-arm64\00" -@.str.6467 = private unnamed_addr constant [26 x i8] c"aarch64-unknown-linux-gnu\00" -@.str.6468 = private unnamed_addr constant [6 x i8] c"macos\00" -@.str.6469 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6470 = private unnamed_addr constant [8 x i8] c"aarch64\00" -@.str.6471 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6472 = private unnamed_addr constant [6 x i8] c"arm64\00" -@.str.6473 = private unnamed_addr constant [25 x i8] c"arm64-apple-macosx14.0.0\00" -@.str.6474 = private unnamed_addr constant [26 x i8] c"x86_64-apple-macosx14.0.0\00" -@.str.6475 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6476 = private unnamed_addr constant [8 x i8] c"windows\00" -@.str.6477 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6478 = private unnamed_addr constant [6 x i8] c"mingw\00" -@.str.6479 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6480 = private unnamed_addr constant [5 x i8] c"msvc\00" -@.str.6481 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6482 = private unnamed_addr constant [6 x i8] c"win32\00" -@.str.6483 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6484 = private unnamed_addr constant [5 x i8] c"msvc\00" -@.str.6485 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6486 = private unnamed_addr constant [6 x i8] c"apple\00" -@.str.6487 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6488 = private unnamed_addr constant [7 x i8] c"darwin\00" -@.str.6489 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6490 = private unnamed_addr constant [6 x i8] c"macos\00" -@.str.6491 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6492 = private unnamed_addr constant [8 x i8] c"aarch64\00" -@.str.6493 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6494 = private unnamed_addr constant [6 x i8] c"arm64\00" -@.str.6495 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6496 = private unnamed_addr constant [8 x i8] c"aarch64\00" -@.str.6497 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6498 = private unnamed_addr constant [6 x i8] c"arm64\00" -@.str.6499 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6500 = private unnamed_addr constant [6 x i8] c"apple\00" -@.str.6501 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6502 = private unnamed_addr constant [7 x i8] c"darwin\00" -@.str.6503 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6504 = private unnamed_addr constant [5 x i8] c".exe\00" -@.str.6505 = private unnamed_addr constant [9 x i8] c"FINCH_CC\00" -@.str.6506 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6507 = private unnamed_addr constant [23 x i8] c"x86_64-w64-mingw32-gcc\00" -@.str.6508 = private unnamed_addr constant [22 x i8] c"aarch64-linux-gnu-gcc\00" -@.str.6509 = private unnamed_addr constant [16 x i8] c"clang --target=\00" -@.str.6510 = private unnamed_addr constant [2 x i8] c";\00" -@.str.6511 = private unnamed_addr constant [6 x i8] c"clang\00" -@.str.6512 = private unnamed_addr constant [3 x i8] c"cc\00" -@.str.6513 = private unnamed_addr constant [6 x i8] c"wine \00" -@.str.6514 = private unnamed_addr constant [14 x i8] c"qemu-aarch64 \00" -@.str.6515 = private unnamed_addr constant [17 x i8] c"0123456789abcdef\00" -@.str.6516 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6517 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6518 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6519 = private unnamed_addr constant [11 x i8] c".framework\00" -@.str.6520 = private unnamed_addr constant [12 x i8] c"-framework \00" -@.str.6521 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6522 = private unnamed_addr constant [18 x i8] c"/finch_pkg_flags_\00" -@.str.6523 = private unnamed_addr constant [5 x i8] c".txt\00" -@.str.6524 = private unnamed_addr constant [19 x i8] c"pkg-config --libs \00" -@.str.6525 = private unnamed_addr constant [4 x i8] c" > \00" -@.str.6526 = private unnamed_addr constant [5 x i8] c" 2> \00" -@.str.6527 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6528 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6529 = private unnamed_addr constant [3 x i8] c"-l\00" -@.str.6530 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6531 = private unnamed_addr constant [2 x i8] c"/\00" -@.str.6532 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6533 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6534 = private unnamed_addr constant [2 x i8] c"/\00" -@.str.6535 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6536 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6537 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6538 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6539 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6540 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6541 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6542 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6543 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6544 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6545 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6546 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6547 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6548 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6549 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6550 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6551 = private unnamed_addr constant [25 x i8] c"undefined reference to `\00" -@.str.6552 = private unnamed_addr constant [25 x i8] c"undefined reference to `\00" -@.str.6553 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.6554 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6555 = private unnamed_addr constant [19 x i8] c"undefined symbol: \00" -@.str.6556 = private unnamed_addr constant [19 x i8] c"undefined symbol: \00" -@.str.6557 = private unnamed_addr constant [3 x i8] c" \0A\00" -@.str.6558 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6559 = private unnamed_addr constant [28 x i8] c"unresolved external symbol \00" -@.str.6560 = private unnamed_addr constant [28 x i8] c"unresolved external symbol \00" -@.str.6561 = private unnamed_addr constant [4 x i8] c" \0A\0D\00" -@.str.6562 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6563 = private unnamed_addr constant [15 x i8] c"cannot find -l\00" -@.str.6564 = private unnamed_addr constant [15 x i8] c"cannot find -l\00" -@.str.6565 = private unnamed_addr constant [5 x i8] c": \0A\0D\00" -@.str.6566 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6567 = private unnamed_addr constant [25 x i8] c"library not found for -l\00" -@.str.6568 = private unnamed_addr constant [25 x i8] c"library not found for -l\00" -@.str.6569 = private unnamed_addr constant [5 x i8] c": \0A\0D\00" -@.str.6570 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6571 = private unnamed_addr constant [14 x i8] c"ld: library '\00" -@.str.6572 = private unnamed_addr constant [14 x i8] c"ld: library '\00" -@.str.6573 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.6574 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6575 = private unnamed_addr constant [12 x i8] c"framework '\00" -@.str.6576 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6577 = private unnamed_addr constant [10 x i8] c"not found\00" -@.str.6578 = private unnamed_addr constant [12 x i8] c"framework '\00" -@.str.6579 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.6580 = private unnamed_addr constant [11 x i8] c".framework\00" -@.str.6581 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6582 = private unnamed_addr constant [2 x i8] c"\22\00" -@.str.6583 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6584 = private unnamed_addr constant [20 x i8] c"\22, referenced from:\00" -@.str.6585 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6586 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6587 = private unnamed_addr constant [20 x i8] c"\22, referenced from:\00" -@.str.6588 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6589 = private unnamed_addr constant [2 x i8] c"_\00" -@.str.6590 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6591 = private unnamed_addr constant [22 x i8] c"error: linking failed\00" -@.str.6592 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6593 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6594 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6595 = private unnamed_addr constant [21 x i8] c"error: the library '\00" -@.str.6596 = private unnamed_addr constant [63 x i8] c"' wasn't found. Is it installed? (on Nix: add it to shell.nix)\00" -@.str.6597 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6598 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6599 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6600 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6601 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6602 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6603 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6604 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6605 = private unnamed_addr constant [3 x i8] c", \00" -@.str.6606 = private unnamed_addr constant [6 x i8] c" and \00" -@.str.6607 = private unnamed_addr constant [6 x i8] c" more\00" -@.str.6608 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6609 = private unnamed_addr constant [26 x i8] c"error: no code found for \00" -@.str.6610 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6611 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6612 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6613 = private unnamed_addr constant [5 x i8] c"come\00" -@.str.6614 = private unnamed_addr constant [6 x i8] c"comes\00" -@.str.6615 = private unnamed_addr constant [8 x i8] c"error: \00" -@.str.6616 = private unnamed_addr constant [2 x i8] c" \00" -@.str.6617 = private unnamed_addr constant [8 x i8] c" from \22\00" -@.str.6618 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6619 = private unnamed_addr constant [32 x i8] c"\22, but its library isn't linked\00" -@.str.6620 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6621 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6622 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6623 = private unnamed_addr constant [75 x i8] c" the header only says the functions exist; their code lives in a library.\00" -@.str.6624 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6625 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6626 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6627 = private unnamed_addr constant [67 x i8] c" add this at the top of your file (with the library's real name):\00" -@.str.6628 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6629 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6630 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6631 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6632 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6633 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6634 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6635 = private unnamed_addr constant [13 x i8] c" link \22\00" -@.str.6636 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6637 = private unnamed_addr constant [2 x i8] c"\22\00" -@.str.6638 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6639 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6640 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6641 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6642 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6643 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6644 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6645 = private unnamed_addr constant [5 x i8] c"/rt-\00" -@.str.6646 = private unnamed_addr constant [4 x i8] c"2.5\00" -@.str.6647 = private unnamed_addr constant [3 x i8] c".o\00" -@.str.6648 = private unnamed_addr constant [6 x i8] c".part\00" -@.str.6649 = private unnamed_addr constant [7 x i8] c" -fPIC\00" -@.str.6650 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6651 = private unnamed_addr constant [5 x i8] c".log\00" -@.str.6652 = private unnamed_addr constant [5 x i8] c" -O2\00" -@.str.6653 = private unnamed_addr constant [5 x i8] c" -c \00" -@.str.6654 = private unnamed_addr constant [5 x i8] c" -o \00" -@.str.6655 = private unnamed_addr constant [4 x i8] c" > \00" -@.str.6656 = private unnamed_addr constant [6 x i8] c" 2>&1\00" -@.str.6657 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6658 = private unnamed_addr constant [47 x i8] c"error: couldn't build the Finch runtime with '\00" -@.str.6659 = private unnamed_addr constant [31 x i8] c"' (is a C compiler installed?)\00" -@.str.6660 = private unnamed_addr constant [12 x i8] c"FINCH_CLANG\00" -@.str.6661 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6662 = private unnamed_addr constant [6 x i8] c"clang\00" -@.str.6663 = private unnamed_addr constant [9 x i8] c"FINCH_CC\00" -@.str.6664 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6665 = private unnamed_addr constant [9 x i8] c"FINCH_CC\00" -@.str.6666 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6667 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6668 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6669 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6670 = private unnamed_addr constant [4 x i8] c".ll\00" -@.str.6671 = private unnamed_addr constant [3 x i8] c".o\00" -@.str.6672 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6673 = private unnamed_addr constant [11 x i8] c" --target=\00" -@.str.6674 = private unnamed_addr constant [5 x i8] c".log\00" -@.str.6675 = private unnamed_addr constant [2 x i8] c" \00" -@.str.6676 = private unnamed_addr constant [8 x i8] c" -w -c \00" -@.str.6677 = private unnamed_addr constant [5 x i8] c" -o \00" -@.str.6678 = private unnamed_addr constant [4 x i8] c" > \00" -@.str.6679 = private unnamed_addr constant [6 x i8] c" 2>&1\00" -@.str.6680 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6681 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6682 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6683 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6684 = private unnamed_addr constant [47 x i8] c"error: clang couldn't compile the program's IR\00" -@.str.6685 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6686 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6687 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6688 = private unnamed_addr constant [2 x i8] c" \00" -@.str.6689 = private unnamed_addr constant [2 x i8] c" \00" -@.str.6690 = private unnamed_addr constant [5 x i8] c" -o \00" -@.str.6691 = private unnamed_addr constant [5 x i8] c" -lm\00" -@.str.6692 = private unnamed_addr constant [13 x i8] c" -dynamiclib\00" -@.str.6693 = private unnamed_addr constant [9 x i8] c" -shared\00" -@.str.6694 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6695 = private unnamed_addr constant [3 x i8] c".c\00" -@.str.6696 = private unnamed_addr constant [2 x i8] c".\00" -@.str.6697 = private unnamed_addr constant [3 x i8] c".o\00" -@.str.6698 = private unnamed_addr constant [7 x i8] c" -fPIC\00" -@.str.6699 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6700 = private unnamed_addr constant [5 x i8] c" -O2\00" -@.str.6701 = private unnamed_addr constant [5 x i8] c" -c \00" -@.str.6702 = private unnamed_addr constant [5 x i8] c" -o \00" -@.str.6703 = private unnamed_addr constant [4 x i8] c" > \00" -@.str.6704 = private unnamed_addr constant [6 x i8] c" 2>&1\00" -@.str.6705 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6706 = private unnamed_addr constant [25 x i8] c"error: couldn't compile \00" -@.str.6707 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6708 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6709 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6710 = private unnamed_addr constant [2 x i8] c" \00" -@.str.6711 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6712 = private unnamed_addr constant [3 x i8] c".o\00" -@.str.6713 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6714 = private unnamed_addr constant [3 x i8] c".a\00" -@.str.6715 = private unnamed_addr constant [2 x i8] c" \00" -@.str.6716 = private unnamed_addr constant [2 x i8] c" \00" -@.str.6717 = private unnamed_addr constant [4 x i8] c" > \00" -@.str.6718 = private unnamed_addr constant [6 x i8] c" 2>&1\00" -@.str.6719 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6720 = private unnamed_addr constant [43 x i8] c"error: no C compiler found to link with ('\00" -@.str.6721 = private unnamed_addr constant [33 x i8] c"'; install one, or set FINCH_CC)\00" -@.str.6722 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6723 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6724 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6643 = private unnamed_addr constant [4 x i8] c"PWD\00" +@.str.6644 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6645 = private unnamed_addr constant [15 x i8] c"XDG_CACHE_HOME\00" +@.str.6646 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6647 = private unnamed_addr constant [7 x i8] c"/finch\00" +@.str.6648 = private unnamed_addr constant [5 x i8] c"HOME\00" +@.str.6649 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6650 = private unnamed_addr constant [14 x i8] c"/.cache/finch\00" +@.str.6651 = private unnamed_addr constant [13 x i8] c"/finch-cache\00" +@.str.6652 = private unnamed_addr constant [10 x i8] c"mkdir -p \00" +@.str.6653 = private unnamed_addr constant [8 x i8] c"rm -rf \00" +@.str.6654 = private unnamed_addr constant [4 x i8] c"mv \00" +@.str.6655 = private unnamed_addr constant [2 x i8] c" \00" +@.str.6656 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6657 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6658 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6659 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6660 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6661 = private unnamed_addr constant [15 x i8] c"/finch_triple_\00" +@.str.6662 = private unnamed_addr constant [5 x i8] c".txt\00" +@.str.6663 = private unnamed_addr constant [22 x i8] c"clang -dumpmachine > \00" +@.str.6664 = private unnamed_addr constant [5 x i8] c" 2> \00" +@.str.6665 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6666 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6667 = private unnamed_addr constant [25 x i8] c"x86_64-unknown-linux-gnu\00" +@.str.6668 = private unnamed_addr constant [8 x i8] c"windows\00" +@.str.6669 = private unnamed_addr constant [19 x i8] c"x86_64-w64-mingw32\00" +@.str.6670 = private unnamed_addr constant [6 x i8] c"linux\00" +@.str.6671 = private unnamed_addr constant [25 x i8] c"x86_64-unknown-linux-gnu\00" +@.str.6672 = private unnamed_addr constant [6 x i8] c"arm64\00" +@.str.6673 = private unnamed_addr constant [8 x i8] c"aarch64\00" +@.str.6674 = private unnamed_addr constant [12 x i8] c"linux-arm64\00" +@.str.6675 = private unnamed_addr constant [26 x i8] c"aarch64-unknown-linux-gnu\00" +@.str.6676 = private unnamed_addr constant [6 x i8] c"macos\00" +@.str.6677 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6678 = private unnamed_addr constant [8 x i8] c"aarch64\00" +@.str.6679 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6680 = private unnamed_addr constant [6 x i8] c"arm64\00" +@.str.6681 = private unnamed_addr constant [25 x i8] c"arm64-apple-macosx14.0.0\00" +@.str.6682 = private unnamed_addr constant [26 x i8] c"x86_64-apple-macosx14.0.0\00" +@.str.6683 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6684 = private unnamed_addr constant [8 x i8] c"windows\00" +@.str.6685 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6686 = private unnamed_addr constant [6 x i8] c"mingw\00" +@.str.6687 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6688 = private unnamed_addr constant [5 x i8] c"msvc\00" +@.str.6689 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6690 = private unnamed_addr constant [6 x i8] c"win32\00" +@.str.6691 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6692 = private unnamed_addr constant [5 x i8] c"msvc\00" +@.str.6693 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6694 = private unnamed_addr constant [6 x i8] c"apple\00" +@.str.6695 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6696 = private unnamed_addr constant [7 x i8] c"darwin\00" +@.str.6697 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6698 = private unnamed_addr constant [6 x i8] c"macos\00" +@.str.6699 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6700 = private unnamed_addr constant [8 x i8] c"aarch64\00" +@.str.6701 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6702 = private unnamed_addr constant [6 x i8] c"arm64\00" +@.str.6703 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6704 = private unnamed_addr constant [8 x i8] c"aarch64\00" +@.str.6705 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6706 = private unnamed_addr constant [6 x i8] c"arm64\00" +@.str.6707 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6708 = private unnamed_addr constant [6 x i8] c"apple\00" +@.str.6709 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6710 = private unnamed_addr constant [7 x i8] c"darwin\00" +@.str.6711 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6712 = private unnamed_addr constant [5 x i8] c".exe\00" +@.str.6713 = private unnamed_addr constant [9 x i8] c"FINCH_CC\00" +@.str.6714 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6715 = private unnamed_addr constant [23 x i8] c"x86_64-w64-mingw32-gcc\00" +@.str.6716 = private unnamed_addr constant [22 x i8] c"aarch64-linux-gnu-gcc\00" +@.str.6717 = private unnamed_addr constant [16 x i8] c"clang --target=\00" +@.str.6718 = private unnamed_addr constant [2 x i8] c";\00" +@.str.6719 = private unnamed_addr constant [6 x i8] c"clang\00" +@.str.6720 = private unnamed_addr constant [3 x i8] c"cc\00" +@.str.6721 = private unnamed_addr constant [6 x i8] c"wine \00" +@.str.6722 = private unnamed_addr constant [14 x i8] c"qemu-aarch64 \00" +@.str.6723 = private unnamed_addr constant [17 x i8] c"0123456789abcdef\00" +@.str.6724 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" @.str.6725 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6726 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6727 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6728 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6729 = private unnamed_addr constant [8 x i8] c"file://\00" -@.str.6730 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6731 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6732 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6733 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6734 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6735 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6736 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6737 = private unnamed_addr constant [17 x i8] c"0123456789ABCDEF\00" -@.str.6738 = private unnamed_addr constant [8 x i8] c"file://\00" -@.str.6739 = private unnamed_addr constant [6 x i8] c"/-_.~\00" -@.str.6740 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6741 = private unnamed_addr constant [2 x i8] c"%\00" -@.str.6742 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6743 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6744 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6745 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6746 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6747 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6748 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6749 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6726 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6727 = private unnamed_addr constant [11 x i8] c".framework\00" +@.str.6728 = private unnamed_addr constant [12 x i8] c"-framework \00" +@.str.6729 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6730 = private unnamed_addr constant [18 x i8] c"/finch_pkg_flags_\00" +@.str.6731 = private unnamed_addr constant [5 x i8] c".txt\00" +@.str.6732 = private unnamed_addr constant [19 x i8] c"pkg-config --libs \00" +@.str.6733 = private unnamed_addr constant [4 x i8] c" > \00" +@.str.6734 = private unnamed_addr constant [5 x i8] c" 2> \00" +@.str.6735 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6736 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6737 = private unnamed_addr constant [3 x i8] c"-l\00" +@.str.6738 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6739 = private unnamed_addr constant [2 x i8] c"/\00" +@.str.6740 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6741 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6742 = private unnamed_addr constant [2 x i8] c"/\00" +@.str.6743 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6744 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6745 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6746 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6747 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6748 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6749 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" @.str.6750 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6751 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6752 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6753 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6754 = private unnamed_addr constant [1 x i8] c"\00" -declare i32 @getchar() -@.str.6755 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6756 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6757 = private unnamed_addr constant [2 x i8] c"\0D\00" -@.str.6758 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@stdin = external global ptr -declare i32 @feof(ptr) -@.str.6759 = private unnamed_addr constant [33 x i8] c"the editor closed the connection\00" -@.str.6760 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6761 = private unnamed_addr constant [16 x i8] c"Content-Length:\00" -@.str.6762 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6763 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6764 = private unnamed_addr constant [26 x i8] c"the message was cut short\00" -@.str.6765 = private unnamed_addr constant [17 x i8] c"Content-Length: \00" -@.str.6766 = private unnamed_addr constant [5 x i8] c"\0D\0A\0D\0A\00" -@.str.6767 = private unnamed_addr constant [1 x i8] c"\00" -@stdout = external global ptr -declare i64 @fwrite(ptr, i64, i64, ptr) -@.str.6768 = private unnamed_addr constant [8 x i8] c"jsonrpc\00" -@.str.6769 = private unnamed_addr constant [4 x i8] c"2.0\00" -@.str.6770 = private unnamed_addr constant [3 x i8] c"id\00" -@.str.6771 = private unnamed_addr constant [7 x i8] c"result\00" -@.str.6772 = private unnamed_addr constant [8 x i8] c"jsonrpc\00" -@.str.6773 = private unnamed_addr constant [4 x i8] c"2.0\00" -@.str.6774 = private unnamed_addr constant [7 x i8] c"method\00" -@.str.6775 = private unnamed_addr constant [7 x i8] c"params\00" -@.str.6776 = private unnamed_addr constant [5 x i8] c"line\00" -@.str.6777 = private unnamed_addr constant [10 x i8] c"character\00" -@.str.6778 = private unnamed_addr constant [6 x i8] c"start\00" -@.str.6779 = private unnamed_addr constant [4 x i8] c"end\00" -@.str.6780 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6781 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.6782 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6783 = private unnamed_addr constant [10 x i8] c": error: \00" -@.str.6784 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6785 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6786 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6787 = private unnamed_addr constant [2 x i8] c":\00" -@.str.6788 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6789 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6790 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6791 = private unnamed_addr constant [2 x i8] c":\00" -@.str.6792 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6793 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6794 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6795 = private unnamed_addr constant [2 x i8] c"@\00" -@.str.6796 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6797 = private unnamed_addr constant [3 x i8] c"@R\00" -@.str.6798 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6799 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6800 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6801 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6802 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6803 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6804 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6805 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6806 = private unnamed_addr constant [3 x i8] c"@V\00" -@.str.6807 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6808 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6809 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6810 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6811 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6812 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6813 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6814 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6815 = private unnamed_addr constant [3 x i8] c"@F\00" -@.str.6816 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6817 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6818 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6819 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6820 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6821 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6822 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6823 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6824 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6825 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6826 = private unnamed_addr constant [2 x i8] c"|\00" -@.str.6827 = private unnamed_addr constant [3 x i8] c"@S\00" -@.str.6828 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6829 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6830 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6831 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6832 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6833 = private unnamed_addr constant [4 x i8] c"@SF\00" -@.str.6834 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6835 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6836 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6837 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6838 = private unnamed_addr constant [3 x i8] c"@E\00" -@.str.6839 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6840 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6841 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6842 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6843 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6844 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6845 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6846 = private unnamed_addr constant [2 x i8] c",\00" -@.str.6847 = private unnamed_addr constant [3 x i8] c"@I\00" -@.str.6848 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6751 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6752 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6753 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6754 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6755 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6756 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6757 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6758 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6759 = private unnamed_addr constant [25 x i8] c"undefined reference to `\00" +@.str.6760 = private unnamed_addr constant [25 x i8] c"undefined reference to `\00" +@.str.6761 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.6762 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6763 = private unnamed_addr constant [19 x i8] c"undefined symbol: \00" +@.str.6764 = private unnamed_addr constant [19 x i8] c"undefined symbol: \00" +@.str.6765 = private unnamed_addr constant [3 x i8] c" \0A\00" +@.str.6766 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6767 = private unnamed_addr constant [28 x i8] c"unresolved external symbol \00" +@.str.6768 = private unnamed_addr constant [28 x i8] c"unresolved external symbol \00" +@.str.6769 = private unnamed_addr constant [4 x i8] c" \0A\0D\00" +@.str.6770 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6771 = private unnamed_addr constant [15 x i8] c"cannot find -l\00" +@.str.6772 = private unnamed_addr constant [15 x i8] c"cannot find -l\00" +@.str.6773 = private unnamed_addr constant [5 x i8] c": \0A\0D\00" +@.str.6774 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6775 = private unnamed_addr constant [25 x i8] c"library not found for -l\00" +@.str.6776 = private unnamed_addr constant [25 x i8] c"library not found for -l\00" +@.str.6777 = private unnamed_addr constant [5 x i8] c": \0A\0D\00" +@.str.6778 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6779 = private unnamed_addr constant [14 x i8] c"ld: library '\00" +@.str.6780 = private unnamed_addr constant [14 x i8] c"ld: library '\00" +@.str.6781 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.6782 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6783 = private unnamed_addr constant [12 x i8] c"framework '\00" +@.str.6784 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6785 = private unnamed_addr constant [10 x i8] c"not found\00" +@.str.6786 = private unnamed_addr constant [12 x i8] c"framework '\00" +@.str.6787 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.6788 = private unnamed_addr constant [11 x i8] c".framework\00" +@.str.6789 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6790 = private unnamed_addr constant [2 x i8] c"\22\00" +@.str.6791 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6792 = private unnamed_addr constant [20 x i8] c"\22, referenced from:\00" +@.str.6793 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6794 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6795 = private unnamed_addr constant [20 x i8] c"\22, referenced from:\00" +@.str.6796 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6797 = private unnamed_addr constant [2 x i8] c"_\00" +@.str.6798 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6799 = private unnamed_addr constant [22 x i8] c"error: linking failed\00" +@.str.6800 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6801 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6802 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6803 = private unnamed_addr constant [21 x i8] c"error: the library '\00" +@.str.6804 = private unnamed_addr constant [63 x i8] c"' wasn't found. Is it installed? (on Nix: add it to shell.nix)\00" +@.str.6805 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6806 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6807 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6808 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6809 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6810 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6811 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6812 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6813 = private unnamed_addr constant [3 x i8] c", \00" +@.str.6814 = private unnamed_addr constant [6 x i8] c" and \00" +@.str.6815 = private unnamed_addr constant [6 x i8] c" more\00" +@.str.6816 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6817 = private unnamed_addr constant [26 x i8] c"error: no code found for \00" +@.str.6818 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6819 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6820 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6821 = private unnamed_addr constant [5 x i8] c"come\00" +@.str.6822 = private unnamed_addr constant [6 x i8] c"comes\00" +@.str.6823 = private unnamed_addr constant [8 x i8] c"error: \00" +@.str.6824 = private unnamed_addr constant [2 x i8] c" \00" +@.str.6825 = private unnamed_addr constant [8 x i8] c" from \22\00" +@.str.6826 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6827 = private unnamed_addr constant [32 x i8] c"\22, but its library isn't linked\00" +@.str.6828 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6829 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6830 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6831 = private unnamed_addr constant [75 x i8] c" the header only says the functions exist; their code lives in a library.\00" +@.str.6832 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6833 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6834 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6835 = private unnamed_addr constant [67 x i8] c" add this at the top of your file (with the library's real name):\00" +@.str.6836 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6837 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6838 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6839 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6840 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6841 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6842 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6843 = private unnamed_addr constant [13 x i8] c" link \22\00" +@.str.6844 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6845 = private unnamed_addr constant [2 x i8] c"\22\00" +@.str.6846 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6847 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6848 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str.6849 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6850 = private unnamed_addr constant [5 x i8] c"/doc\00" -@.str.6851 = private unnamed_addr constant [5 x i8] c".fch\00" -@.str.6852 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6853 = private unnamed_addr constant [12 x i8] c" --overlay \00" -@.str.6854 = private unnamed_addr constant [2 x i8] c"=\00" -@.str.6855 = private unnamed_addr constant [9 x i8] c"/out.txt\00" -@.str.6856 = private unnamed_addr constant [8 x i8] c" index \00" -@.str.6857 = private unnamed_addr constant [4 x i8] c" > \00" -@.str.6858 = private unnamed_addr constant [6 x i8] c" 2>&1\00" -@.str.6859 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6860 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6861 = private unnamed_addr constant [6 x i8] c"range\00" -@.str.6862 = private unnamed_addr constant [9 x i8] c"severity\00" -@.str.6863 = private unnamed_addr constant [7 x i8] c"source\00" -@.str.6864 = private unnamed_addr constant [6 x i8] c"finch\00" -@.str.6865 = private unnamed_addr constant [8 x i8] c"message\00" -@.str.6866 = private unnamed_addr constant [4 x i8] c"uri\00" -@.str.6867 = private unnamed_addr constant [12 x i8] c"diagnostics\00" -@.str.6868 = private unnamed_addr constant [32 x i8] c"textDocument/publishDiagnostics\00" -@.str.6869 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6870 = private unnamed_addr constant [5 x i8] c"kind\00" -@.str.6871 = private unnamed_addr constant [9 x i8] c"markdown\00" -@.str.6872 = private unnamed_addr constant [6 x i8] c"value\00" -@.str.6873 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6874 = private unnamed_addr constant [9 x i8] c"contents\00" -@.str.6875 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6876 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6877 = private unnamed_addr constant [4 x i8] c"uri\00" -@.str.6878 = private unnamed_addr constant [6 x i8] c"range\00" -@.str.6879 = private unnamed_addr constant [2 x i8] c".\00" -@.str.6880 = private unnamed_addr constant [5 x i8] c"name\00" -@.str.6881 = private unnamed_addr constant [5 x i8] c"kind\00" -@.str.6882 = private unnamed_addr constant [6 x i8] c"start\00" -@.str.6883 = private unnamed_addr constant [4 x i8] c"end\00" -@.str.6884 = private unnamed_addr constant [6 x i8] c"range\00" -@.str.6885 = private unnamed_addr constant [15 x i8] c"selectionRange\00" -@.str.6886 = private unnamed_addr constant [6 x i8] c"label\00" -@.str.6887 = private unnamed_addr constant [5 x i8] c"kind\00" -@.str.6888 = private unnamed_addr constant [7 x i8] c"detail\00" -@.str.6889 = private unnamed_addr constant [5 x i8] c"kind\00" -@.str.6890 = private unnamed_addr constant [9 x i8] c"markdown\00" -@.str.6891 = private unnamed_addr constant [6 x i8] c"value\00" -@.str.6892 = private unnamed_addr constant [14 x i8] c"documentation\00" -@.str.6893 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6894 = private unnamed_addr constant [2 x i8] c".\00" -@.str.6895 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6896 = private unnamed_addr constant [33 x i8] c"called .push() on a null pointer\00" -@.str.6897 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6898 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6899 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6900 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6901 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6902 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6903 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6904 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6905 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.6906 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6850 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6851 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6852 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6853 = private unnamed_addr constant [5 x i8] c"/rt-\00" +@.str.6854 = private unnamed_addr constant [4 x i8] c"2.5\00" +@.str.6855 = private unnamed_addr constant [3 x i8] c".o\00" +@.str.6856 = private unnamed_addr constant [6 x i8] c".part\00" +@.str.6857 = private unnamed_addr constant [7 x i8] c" -fPIC\00" +@.str.6858 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6859 = private unnamed_addr constant [5 x i8] c".log\00" +@.str.6860 = private unnamed_addr constant [5 x i8] c" -O2\00" +@.str.6861 = private unnamed_addr constant [5 x i8] c" -c \00" +@.str.6862 = private unnamed_addr constant [5 x i8] c" -o \00" +@.str.6863 = private unnamed_addr constant [4 x i8] c" > \00" +@.str.6864 = private unnamed_addr constant [6 x i8] c" 2>&1\00" +@.str.6865 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6866 = private unnamed_addr constant [47 x i8] c"error: couldn't build the Finch runtime with '\00" +@.str.6867 = private unnamed_addr constant [31 x i8] c"' (is a C compiler installed?)\00" +@.str.6868 = private unnamed_addr constant [12 x i8] c"FINCH_CLANG\00" +@.str.6869 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6870 = private unnamed_addr constant [6 x i8] c"clang\00" +@.str.6871 = private unnamed_addr constant [9 x i8] c"FINCH_CC\00" +@.str.6872 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6873 = private unnamed_addr constant [9 x i8] c"FINCH_CC\00" +@.str.6874 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6875 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6876 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6877 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6878 = private unnamed_addr constant [4 x i8] c".ll\00" +@.str.6879 = private unnamed_addr constant [3 x i8] c".o\00" +@.str.6880 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6881 = private unnamed_addr constant [11 x i8] c" --target=\00" +@.str.6882 = private unnamed_addr constant [5 x i8] c".log\00" +@.str.6883 = private unnamed_addr constant [2 x i8] c" \00" +@.str.6884 = private unnamed_addr constant [8 x i8] c" -w -c \00" +@.str.6885 = private unnamed_addr constant [5 x i8] c" -o \00" +@.str.6886 = private unnamed_addr constant [4 x i8] c" > \00" +@.str.6887 = private unnamed_addr constant [6 x i8] c" 2>&1\00" +@.str.6888 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6889 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6890 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6891 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6892 = private unnamed_addr constant [47 x i8] c"error: clang couldn't compile the program's IR\00" +@.str.6893 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6894 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6895 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6896 = private unnamed_addr constant [2 x i8] c" \00" +@.str.6897 = private unnamed_addr constant [2 x i8] c" \00" +@.str.6898 = private unnamed_addr constant [5 x i8] c" -o \00" +@.str.6899 = private unnamed_addr constant [5 x i8] c" -lm\00" +@.str.6900 = private unnamed_addr constant [13 x i8] c" -dynamiclib\00" +@.str.6901 = private unnamed_addr constant [9 x i8] c" -shared\00" +@.str.6902 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6903 = private unnamed_addr constant [3 x i8] c".c\00" +@.str.6904 = private unnamed_addr constant [2 x i8] c".\00" +@.str.6905 = private unnamed_addr constant [3 x i8] c".o\00" +@.str.6906 = private unnamed_addr constant [7 x i8] c" -fPIC\00" @.str.6907 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6908 = private unnamed_addr constant [8 x i8] c"struct \00" -@.str.6909 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6910 = private unnamed_addr constant [6 x i8] c"enum \00" -@.str.6911 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6912 = private unnamed_addr constant [2 x i8] c".\00" +@.str.6908 = private unnamed_addr constant [5 x i8] c" -O2\00" +@.str.6909 = private unnamed_addr constant [5 x i8] c" -c \00" +@.str.6910 = private unnamed_addr constant [5 x i8] c" -o \00" +@.str.6911 = private unnamed_addr constant [4 x i8] c" > \00" +@.str.6912 = private unnamed_addr constant [6 x i8] c" 2>&1\00" @.str.6913 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6914 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6915 = private unnamed_addr constant [3 x i8] c"[]\00" -@.str.6916 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6917 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.6918 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.6919 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6920 = private unnamed_addr constant [5 x i8] c"ptr[\00" -@.str.6921 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6922 = private unnamed_addr constant [2 x i8] c"]\00" -@.str.6923 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6924 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6925 = private unnamed_addr constant [3 x i8] c"[]\00" -@.str.6926 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.6927 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6928 = private unnamed_addr constant [5 x i8] c"map[\00" -@.str.6929 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6930 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6931 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6932 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6914 = private unnamed_addr constant [25 x i8] c"error: couldn't compile \00" +@.str.6915 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6916 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6917 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6918 = private unnamed_addr constant [2 x i8] c" \00" +@.str.6919 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6920 = private unnamed_addr constant [3 x i8] c".o\00" +@.str.6921 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6922 = private unnamed_addr constant [3 x i8] c".a\00" +@.str.6923 = private unnamed_addr constant [2 x i8] c" \00" +@.str.6924 = private unnamed_addr constant [2 x i8] c" \00" +@.str.6925 = private unnamed_addr constant [4 x i8] c" > \00" +@.str.6926 = private unnamed_addr constant [6 x i8] c" 2>&1\00" +@.str.6927 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6928 = private unnamed_addr constant [43 x i8] c"error: no C compiler found to link with ('\00" +@.str.6929 = private unnamed_addr constant [33 x i8] c"'; install one, or set FINCH_CC)\00" +@.str.6930 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6931 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6932 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str.6933 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6934 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6935 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6936 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6937 = private unnamed_addr constant [8 x i8] c"struct \00" -@.str.6938 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6939 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6940 = private unnamed_addr constant [6 x i8] c"enum \00" -@.str.6941 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6942 = private unnamed_addr constant [7 x i8] c"module\00" -@.str.6943 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6944 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6945 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6946 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6947 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6948 = private unnamed_addr constant [13 x i8] c"isIncomplete\00" -@.str.6949 = private unnamed_addr constant [6 x i8] c"items\00" +@.str.6934 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6935 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6936 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6937 = private unnamed_addr constant [8 x i8] c"file://\00" +@.str.6938 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6939 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6940 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6941 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6942 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6943 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6944 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6945 = private unnamed_addr constant [17 x i8] c"0123456789ABCDEF\00" +@.str.6946 = private unnamed_addr constant [8 x i8] c"file://\00" +@.str.6947 = private unnamed_addr constant [6 x i8] c"/-_.~\00" +@.str.6948 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6949 = private unnamed_addr constant [2 x i8] c"%\00" @.str.6950 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" @.str.6951 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6952 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6952 = private unnamed_addr constant [1 x i8] c"\00" @.str.6953 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6954 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6955 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6954 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6955 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str.6956 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" @.str.6957 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6958 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6959 = private unnamed_addr constant [5 x i8] c"ptr[\00" -@.str.6960 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6961 = private unnamed_addr constant [2 x i8] c"]\00" -@.str.6962 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6963 = private unnamed_addr constant [6 x i8] c"label\00" -@.str.6964 = private unnamed_addr constant [6 x i8] c"label\00" -@.str.6965 = private unnamed_addr constant [11 x i8] c"parameters\00" -@.str.6966 = private unnamed_addr constant [11 x i8] c"signatures\00" -@.str.6967 = private unnamed_addr constant [16 x i8] c"activeSignature\00" -@.str.6968 = private unnamed_addr constant [16 x i8] c"activeParameter\00" -@.str.6969 = private unnamed_addr constant [6 x i8] c"label\00" -@.str.6970 = private unnamed_addr constant [14 x i8] c"documentation\00" -@.str.6971 = private unnamed_addr constant [11 x i8] c"signatures\00" -@.str.6972 = private unnamed_addr constant [16 x i8] c"activeSignature\00" -@.str.6973 = private unnamed_addr constant [16 x i8] c"activeParameter\00" -@.str.6974 = private unnamed_addr constant [13 x i8] c"textDocument\00" -@.str.6975 = private unnamed_addr constant [5 x i8] c"text\00" -@.str.6976 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6977 = private unnamed_addr constant [13 x i8] c"textDocument\00" -@.str.6978 = private unnamed_addr constant [4 x i8] c"uri\00" -@.str.6979 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6980 = private unnamed_addr constant [7 x i8] c"method\00" -@.str.6981 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6982 = private unnamed_addr constant [7 x i8] c"params\00" -@.str.6983 = private unnamed_addr constant [3 x i8] c"id\00" -@.str.6984 = private unnamed_addr constant [11 x i8] c"initialize\00" -@.str.6985 = private unnamed_addr constant [17 x i8] c"textDocumentSync\00" -@.str.6986 = private unnamed_addr constant [14 x i8] c"hoverProvider\00" -@.str.6987 = private unnamed_addr constant [19 x i8] c"definitionProvider\00" -@.str.6988 = private unnamed_addr constant [23 x i8] c"documentSymbolProvider\00" -@.str.6989 = private unnamed_addr constant [2 x i8] c".\00" -@.str.6990 = private unnamed_addr constant [18 x i8] c"triggerCharacters\00" -@.str.6991 = private unnamed_addr constant [19 x i8] c"completionProvider\00" -@.str.6992 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.6993 = private unnamed_addr constant [2 x i8] c",\00" -@.str.6994 = private unnamed_addr constant [18 x i8] c"triggerCharacters\00" -@.str.6995 = private unnamed_addr constant [22 x i8] c"signatureHelpProvider\00" -@.str.6996 = private unnamed_addr constant [13 x i8] c"capabilities\00" -@.str.6997 = private unnamed_addr constant [5 x i8] c"name\00" -@.str.6998 = private unnamed_addr constant [6 x i8] c"finch\00" -@.str.6999 = private unnamed_addr constant [11 x i8] c"serverInfo\00" -@.str.7000 = private unnamed_addr constant [9 x i8] c"shutdown\00" -@.str.7001 = private unnamed_addr constant [5 x i8] c"exit\00" -@.str.7002 = private unnamed_addr constant [21 x i8] c"textDocument/didOpen\00" -@.str.7003 = private unnamed_addr constant [23 x i8] c"textDocument/didChange\00" -@.str.7004 = private unnamed_addr constant [15 x i8] c"contentChanges\00" -@.str.7005 = private unnamed_addr constant [5 x i8] c"text\00" -@.str.7006 = private unnamed_addr constant [1 x i8] c"\00" -@.str.7007 = private unnamed_addr constant [21 x i8] c"textDocument/didSave\00" -@.str.7008 = private unnamed_addr constant [22 x i8] c"textDocument/didClose\00" -@.str.7009 = private unnamed_addr constant [4 x i8] c"uri\00" -@.str.7010 = private unnamed_addr constant [12 x i8] c"diagnostics\00" -@.str.7011 = private unnamed_addr constant [32 x i8] c"textDocument/publishDiagnostics\00" -@.str.7012 = private unnamed_addr constant [19 x i8] c"textDocument/hover\00" -@.str.7013 = private unnamed_addr constant [24 x i8] c"textDocument/definition\00" -@.str.7014 = private unnamed_addr constant [24 x i8] c"textDocument/completion\00" -@.str.7015 = private unnamed_addr constant [28 x i8] c"textDocument/documentSymbol\00" -@.str.7016 = private unnamed_addr constant [27 x i8] c"textDocument/signatureHelp\00" -@.str.7017 = private unnamed_addr constant [9 x i8] c"position\00" -@.str.7018 = private unnamed_addr constant [5 x i8] c"line\00" -@.str.7019 = private unnamed_addr constant [9 x i8] c"position\00" -@.str.7020 = private unnamed_addr constant [10 x i8] c"character\00" +@.str.6958 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6959 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6960 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6961 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6962 = private unnamed_addr constant [1 x i8] c"\00" +declare i32 @getchar() +@.str.6963 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6964 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6965 = private unnamed_addr constant [2 x i8] c"\0D\00" +@.str.6966 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@stdin = external global ptr +declare i32 @feof(ptr) +@.str.6967 = private unnamed_addr constant [33 x i8] c"the editor closed the connection\00" +@.str.6968 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6969 = private unnamed_addr constant [16 x i8] c"Content-Length:\00" +@.str.6970 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6971 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6972 = private unnamed_addr constant [26 x i8] c"the message was cut short\00" +@.str.6973 = private unnamed_addr constant [17 x i8] c"Content-Length: \00" +@.str.6974 = private unnamed_addr constant [5 x i8] c"\0D\0A\0D\0A\00" +@.str.6975 = private unnamed_addr constant [1 x i8] c"\00" +@stdout = external global ptr +declare i64 @fwrite(ptr, i64, i64, ptr) +@.str.6976 = private unnamed_addr constant [8 x i8] c"jsonrpc\00" +@.str.6977 = private unnamed_addr constant [4 x i8] c"2.0\00" +@.str.6978 = private unnamed_addr constant [3 x i8] c"id\00" +@.str.6979 = private unnamed_addr constant [7 x i8] c"result\00" +@.str.6980 = private unnamed_addr constant [8 x i8] c"jsonrpc\00" +@.str.6981 = private unnamed_addr constant [4 x i8] c"2.0\00" +@.str.6982 = private unnamed_addr constant [7 x i8] c"method\00" +@.str.6983 = private unnamed_addr constant [7 x i8] c"params\00" +@.str.6984 = private unnamed_addr constant [5 x i8] c"line\00" +@.str.6985 = private unnamed_addr constant [10 x i8] c"character\00" +@.str.6986 = private unnamed_addr constant [6 x i8] c"start\00" +@.str.6987 = private unnamed_addr constant [4 x i8] c"end\00" +@.str.6988 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6989 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.6990 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6991 = private unnamed_addr constant [10 x i8] c": error: \00" +@.str.6992 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6993 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6994 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6995 = private unnamed_addr constant [2 x i8] c":\00" +@.str.6996 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6997 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6998 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6999 = private unnamed_addr constant [2 x i8] c":\00" +@.str.7000 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7001 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.7002 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7003 = private unnamed_addr constant [2 x i8] c"@\00" +@.str.7004 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7005 = private unnamed_addr constant [3 x i8] c"@R\00" +@.str.7006 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7007 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7008 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7009 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7010 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7011 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7012 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7013 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7014 = private unnamed_addr constant [3 x i8] c"@V\00" +@.str.7015 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7016 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7017 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7018 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7019 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7020 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" @.str.7021 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.7022 = private unnamed_addr constant [1 x i8] c"\00" -@.str.7023 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.7024 = private unnamed_addr constant [19 x i8] c"textDocument/hover\00" -@.str.7025 = private unnamed_addr constant [24 x i8] c"textDocument/definition\00" -@.str.7026 = private unnamed_addr constant [24 x i8] c"textDocument/completion\00" -@.str.7027 = private unnamed_addr constant [28 x i8] c"textDocument/documentSymbol\00" -@.str.7028 = private unnamed_addr constant [12 x i8] c"/finch_lsp_\00" -@.str.7029 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7030 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7031 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7032 = private unnamed_addr constant [2 x i8] c"\22\00" -@.str.7033 = private unnamed_addr constant [3 x i8] c"\5C\22\00" -@.str.7034 = private unnamed_addr constant [3 x i8] c"\5C\5C\00" -@.str.7035 = private unnamed_addr constant [3 x i8] c"\5Cn\00" -@.str.7036 = private unnamed_addr constant [3 x i8] c"\5Cr\00" -@.str.7037 = private unnamed_addr constant [3 x i8] c"\5Ct\00" -@.str.7038 = private unnamed_addr constant [5 x i8] c"\5Cu00\00" -@.str.7039 = private unnamed_addr constant [2 x i8] c"\22\00" -@.str.7040 = private unnamed_addr constant [1 x i8] c"\00" -@.str.7041 = private unnamed_addr constant [17 x i8] c"0123456789abcdef\00" -@.str.7042 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7043 = private unnamed_addr constant [1 x i8] c"\00" -@.str.7044 = private unnamed_addr constant [1 x i8] c"\00" -@.str.7045 = private unnamed_addr constant [2 x i8] c",\00" -@.str.7046 = private unnamed_addr constant [2 x i8] c":\00" -@.str.7047 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.7048 = private unnamed_addr constant [3 x i8] c": \00" -@.str.7049 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7050 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7051 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.7052 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7053 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7054 = private unnamed_addr constant [5 x i8] c"true\00" -@.str.7055 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7056 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7057 = private unnamed_addr constant [6 x i8] c"false\00" -@.str.7058 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7059 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7060 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7061 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7062 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7063 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7064 = private unnamed_addr constant [3 x i8] c"[]\00" -@.str.7065 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7066 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7067 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.7068 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7069 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7070 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7071 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7072 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7073 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7074 = private unnamed_addr constant [2 x i8] c"]\00" -@.str.7075 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7076 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7077 = private unnamed_addr constant [3 x i8] c"{}\00" -@.str.7078 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7079 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7080 = private unnamed_addr constant [2 x i8] c"{\00" -@.str.7081 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7082 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7083 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7084 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7085 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7086 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7087 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7088 = private unnamed_addr constant [2 x i8] c"}\00" -@.str.7089 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7090 = private unnamed_addr constant [36 x i8] c"no arm of this match fits the value\00" -@.str.7091 = private unnamed_addr constant [1 x i8] c"\00" -@.str.7092 = private unnamed_addr constant [1 x i8] c"\00" -@.str.7093 = private unnamed_addr constant [1 x i8] c"\00" -@.str.7094 = private unnamed_addr constant [3 x i8] c" \00" -@.str.7095 = private unnamed_addr constant [1 x i8] c"\00" -@.str.7096 = private unnamed_addr constant [1 x i8] c"\00" -@.str.7097 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7098 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7099 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7100 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7101 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7102 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7103 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7104 = private unnamed_addr constant [6 x i8] c"line \00" -@.str.7105 = private unnamed_addr constant [10 x i8] c", column \00" -@.str.7106 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7107 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7108 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7109 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7110 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7111 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7112 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7113 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7114 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7115 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7116 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7117 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7118 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7119 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7120 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7121 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7122 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7123 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7124 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7125 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7126 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7127 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7128 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7129 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7130 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7131 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7132 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7133 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7134 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7135 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7136 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7137 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7138 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7139 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7140 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7141 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7142 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7143 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7144 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7145 = private unnamed_addr constant [27 x i8] c"json: the text ends where \00" -@.str.7146 = private unnamed_addr constant [13 x i8] c" should be (\00" -@.str.7147 = private unnamed_addr constant [2 x i8] c")\00" -@.str.7148 = private unnamed_addr constant [14 x i8] c"json: found '\00" -@.str.7149 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7150 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7151 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7152 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7153 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7154 = private unnamed_addr constant [9 x i8] c"' where \00" -@.str.7155 = private unnamed_addr constant [13 x i8] c" should be (\00" -@.str.7156 = private unnamed_addr constant [2 x i8] c")\00" -@.str.7157 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7158 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7159 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7160 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7161 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7162 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7163 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7164 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7165 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7166 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7167 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7168 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.7169 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.7170 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7171 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7172 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7173 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7174 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7175 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7176 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7177 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7178 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7179 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7180 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7181 = private unnamed_addr constant [20 x i8] c"a hexadecimal digit\00" -@.str.7182 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7183 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7184 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7185 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7186 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7187 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7188 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7189 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7190 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7191 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7192 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7193 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7194 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7195 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7196 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7197 = private unnamed_addr constant [31 x i8] c"json: a text is never closed (\00" -@.str.7198 = private unnamed_addr constant [2 x i8] c")\00" -@.str.7199 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7200 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7201 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7202 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7203 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7204 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7205 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7206 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7207 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7208 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7209 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7210 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7211 = private unnamed_addr constant [1 x i8] c"\00" -@.str.7212 = private unnamed_addr constant [56 x i8] c"json: a line break or control character inside a text (\00" -@.str.7213 = private unnamed_addr constant [2 x i8] c")\00" -@.str.7214 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7215 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7216 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7217 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7218 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7219 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7220 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7221 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7222 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7223 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7224 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7225 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.7226 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.7227 = private unnamed_addr constant [2 x i8] c"\0D\00" -@.str.7228 = private unnamed_addr constant [3 x i8] c"\5Cu\00" -@.str.7229 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7230 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7231 = private unnamed_addr constant [23 x i8] c"json: unknown escape \5C\00" -@.str.7232 = private unnamed_addr constant [13 x i8] c" in a text (\00" -@.str.7233 = private unnamed_addr constant [2 x i8] c")\00" -@.str.7234 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7235 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7236 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7237 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7022 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7023 = private unnamed_addr constant [3 x i8] c"@F\00" +@.str.7024 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7025 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7026 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7027 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7028 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7029 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7030 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7031 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7032 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7033 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7034 = private unnamed_addr constant [2 x i8] c"|\00" +@.str.7035 = private unnamed_addr constant [3 x i8] c"@S\00" +@.str.7036 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7037 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7038 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7039 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7040 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7041 = private unnamed_addr constant [4 x i8] c"@SF\00" +@.str.7042 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7043 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7044 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7045 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7046 = private unnamed_addr constant [3 x i8] c"@E\00" +@.str.7047 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7048 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7049 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7050 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7051 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7052 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7053 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7054 = private unnamed_addr constant [2 x i8] c",\00" +@.str.7055 = private unnamed_addr constant [3 x i8] c"@I\00" +@.str.7056 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7057 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7058 = private unnamed_addr constant [5 x i8] c"/doc\00" +@.str.7059 = private unnamed_addr constant [5 x i8] c".fch\00" +@.str.7060 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7061 = private unnamed_addr constant [12 x i8] c" --overlay \00" +@.str.7062 = private unnamed_addr constant [2 x i8] c"=\00" +@.str.7063 = private unnamed_addr constant [9 x i8] c"/out.txt\00" +@.str.7064 = private unnamed_addr constant [8 x i8] c" index \00" +@.str.7065 = private unnamed_addr constant [4 x i8] c" > \00" +@.str.7066 = private unnamed_addr constant [6 x i8] c" 2>&1\00" +@.str.7067 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7068 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7069 = private unnamed_addr constant [6 x i8] c"range\00" +@.str.7070 = private unnamed_addr constant [9 x i8] c"severity\00" +@.str.7071 = private unnamed_addr constant [7 x i8] c"source\00" +@.str.7072 = private unnamed_addr constant [6 x i8] c"finch\00" +@.str.7073 = private unnamed_addr constant [8 x i8] c"message\00" +@.str.7074 = private unnamed_addr constant [4 x i8] c"uri\00" +@.str.7075 = private unnamed_addr constant [12 x i8] c"diagnostics\00" +@.str.7076 = private unnamed_addr constant [32 x i8] c"textDocument/publishDiagnostics\00" +@.str.7077 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7078 = private unnamed_addr constant [5 x i8] c"kind\00" +@.str.7079 = private unnamed_addr constant [9 x i8] c"markdown\00" +@.str.7080 = private unnamed_addr constant [6 x i8] c"value\00" +@.str.7081 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7082 = private unnamed_addr constant [9 x i8] c"contents\00" +@.str.7083 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7084 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7085 = private unnamed_addr constant [4 x i8] c"uri\00" +@.str.7086 = private unnamed_addr constant [6 x i8] c"range\00" +@.str.7087 = private unnamed_addr constant [2 x i8] c".\00" +@.str.7088 = private unnamed_addr constant [5 x i8] c"name\00" +@.str.7089 = private unnamed_addr constant [5 x i8] c"kind\00" +@.str.7090 = private unnamed_addr constant [6 x i8] c"start\00" +@.str.7091 = private unnamed_addr constant [4 x i8] c"end\00" +@.str.7092 = private unnamed_addr constant [6 x i8] c"range\00" +@.str.7093 = private unnamed_addr constant [15 x i8] c"selectionRange\00" +@.str.7094 = private unnamed_addr constant [6 x i8] c"label\00" +@.str.7095 = private unnamed_addr constant [5 x i8] c"kind\00" +@.str.7096 = private unnamed_addr constant [7 x i8] c"detail\00" +@.str.7097 = private unnamed_addr constant [5 x i8] c"kind\00" +@.str.7098 = private unnamed_addr constant [9 x i8] c"markdown\00" +@.str.7099 = private unnamed_addr constant [6 x i8] c"value\00" +@.str.7100 = private unnamed_addr constant [14 x i8] c"documentation\00" +@.str.7101 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7102 = private unnamed_addr constant [2 x i8] c".\00" +@.str.7103 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7104 = private unnamed_addr constant [33 x i8] c"called .push() on a null pointer\00" +@.str.7105 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7106 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7107 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7108 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7109 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7110 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7111 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7112 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7113 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.7114 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7115 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7116 = private unnamed_addr constant [8 x i8] c"struct \00" +@.str.7117 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7118 = private unnamed_addr constant [6 x i8] c"enum \00" +@.str.7119 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7120 = private unnamed_addr constant [2 x i8] c".\00" +@.str.7121 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7122 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7123 = private unnamed_addr constant [3 x i8] c"[]\00" +@.str.7124 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7125 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.7126 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.7127 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7128 = private unnamed_addr constant [5 x i8] c"ptr[\00" +@.str.7129 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7130 = private unnamed_addr constant [2 x i8] c"]\00" +@.str.7131 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7132 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7133 = private unnamed_addr constant [3 x i8] c"[]\00" +@.str.7134 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.7135 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7136 = private unnamed_addr constant [5 x i8] c"map[\00" +@.str.7137 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7138 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7139 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7140 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7141 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7142 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7143 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7144 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7145 = private unnamed_addr constant [8 x i8] c"struct \00" +@.str.7146 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7147 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7148 = private unnamed_addr constant [6 x i8] c"enum \00" +@.str.7149 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7150 = private unnamed_addr constant [7 x i8] c"module\00" +@.str.7151 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7152 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7153 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7154 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7155 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7156 = private unnamed_addr constant [13 x i8] c"isIncomplete\00" +@.str.7157 = private unnamed_addr constant [6 x i8] c"items\00" +@.str.7158 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7159 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7160 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7161 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7162 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7163 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7164 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7165 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7166 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7167 = private unnamed_addr constant [5 x i8] c"ptr[\00" +@.str.7168 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7169 = private unnamed_addr constant [2 x i8] c"]\00" +@.str.7170 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7171 = private unnamed_addr constant [6 x i8] c"label\00" +@.str.7172 = private unnamed_addr constant [6 x i8] c"label\00" +@.str.7173 = private unnamed_addr constant [11 x i8] c"parameters\00" +@.str.7174 = private unnamed_addr constant [11 x i8] c"signatures\00" +@.str.7175 = private unnamed_addr constant [16 x i8] c"activeSignature\00" +@.str.7176 = private unnamed_addr constant [16 x i8] c"activeParameter\00" +@.str.7177 = private unnamed_addr constant [6 x i8] c"label\00" +@.str.7178 = private unnamed_addr constant [14 x i8] c"documentation\00" +@.str.7179 = private unnamed_addr constant [11 x i8] c"signatures\00" +@.str.7180 = private unnamed_addr constant [16 x i8] c"activeSignature\00" +@.str.7181 = private unnamed_addr constant [16 x i8] c"activeParameter\00" +@.str.7182 = private unnamed_addr constant [13 x i8] c"textDocument\00" +@.str.7183 = private unnamed_addr constant [5 x i8] c"text\00" +@.str.7184 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7185 = private unnamed_addr constant [13 x i8] c"textDocument\00" +@.str.7186 = private unnamed_addr constant [4 x i8] c"uri\00" +@.str.7187 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7188 = private unnamed_addr constant [7 x i8] c"method\00" +@.str.7189 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7190 = private unnamed_addr constant [7 x i8] c"params\00" +@.str.7191 = private unnamed_addr constant [3 x i8] c"id\00" +@.str.7192 = private unnamed_addr constant [11 x i8] c"initialize\00" +@.str.7193 = private unnamed_addr constant [17 x i8] c"textDocumentSync\00" +@.str.7194 = private unnamed_addr constant [14 x i8] c"hoverProvider\00" +@.str.7195 = private unnamed_addr constant [19 x i8] c"definitionProvider\00" +@.str.7196 = private unnamed_addr constant [23 x i8] c"documentSymbolProvider\00" +@.str.7197 = private unnamed_addr constant [2 x i8] c".\00" +@.str.7198 = private unnamed_addr constant [18 x i8] c"triggerCharacters\00" +@.str.7199 = private unnamed_addr constant [19 x i8] c"completionProvider\00" +@.str.7200 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.7201 = private unnamed_addr constant [2 x i8] c",\00" +@.str.7202 = private unnamed_addr constant [18 x i8] c"triggerCharacters\00" +@.str.7203 = private unnamed_addr constant [22 x i8] c"signatureHelpProvider\00" +@.str.7204 = private unnamed_addr constant [13 x i8] c"capabilities\00" +@.str.7205 = private unnamed_addr constant [5 x i8] c"name\00" +@.str.7206 = private unnamed_addr constant [6 x i8] c"finch\00" +@.str.7207 = private unnamed_addr constant [11 x i8] c"serverInfo\00" +@.str.7208 = private unnamed_addr constant [9 x i8] c"shutdown\00" +@.str.7209 = private unnamed_addr constant [5 x i8] c"exit\00" +@.str.7210 = private unnamed_addr constant [21 x i8] c"textDocument/didOpen\00" +@.str.7211 = private unnamed_addr constant [23 x i8] c"textDocument/didChange\00" +@.str.7212 = private unnamed_addr constant [15 x i8] c"contentChanges\00" +@.str.7213 = private unnamed_addr constant [5 x i8] c"text\00" +@.str.7214 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7215 = private unnamed_addr constant [21 x i8] c"textDocument/didSave\00" +@.str.7216 = private unnamed_addr constant [22 x i8] c"textDocument/didClose\00" +@.str.7217 = private unnamed_addr constant [4 x i8] c"uri\00" +@.str.7218 = private unnamed_addr constant [12 x i8] c"diagnostics\00" +@.str.7219 = private unnamed_addr constant [32 x i8] c"textDocument/publishDiagnostics\00" +@.str.7220 = private unnamed_addr constant [19 x i8] c"textDocument/hover\00" +@.str.7221 = private unnamed_addr constant [24 x i8] c"textDocument/definition\00" +@.str.7222 = private unnamed_addr constant [24 x i8] c"textDocument/completion\00" +@.str.7223 = private unnamed_addr constant [28 x i8] c"textDocument/documentSymbol\00" +@.str.7224 = private unnamed_addr constant [27 x i8] c"textDocument/signatureHelp\00" +@.str.7225 = private unnamed_addr constant [9 x i8] c"position\00" +@.str.7226 = private unnamed_addr constant [5 x i8] c"line\00" +@.str.7227 = private unnamed_addr constant [9 x i8] c"position\00" +@.str.7228 = private unnamed_addr constant [10 x i8] c"character\00" +@.str.7229 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7230 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7231 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7232 = private unnamed_addr constant [19 x i8] c"textDocument/hover\00" +@.str.7233 = private unnamed_addr constant [24 x i8] c"textDocument/definition\00" +@.str.7234 = private unnamed_addr constant [24 x i8] c"textDocument/completion\00" +@.str.7235 = private unnamed_addr constant [28 x i8] c"textDocument/documentSymbol\00" +@.str.7236 = private unnamed_addr constant [12 x i8] c"/finch_lsp_\00" +@.str.7237 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" @.str.7238 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7239 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7240 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7241 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7242 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7243 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7244 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7245 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7246 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7247 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7248 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7249 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7250 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7251 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7252 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7253 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7254 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7255 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7256 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7257 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7258 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7259 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7260 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7261 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7262 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7239 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7240 = private unnamed_addr constant [2 x i8] c"\22\00" +@.str.7241 = private unnamed_addr constant [3 x i8] c"\5C\22\00" +@.str.7242 = private unnamed_addr constant [3 x i8] c"\5C\5C\00" +@.str.7243 = private unnamed_addr constant [3 x i8] c"\5Cn\00" +@.str.7244 = private unnamed_addr constant [3 x i8] c"\5Cr\00" +@.str.7245 = private unnamed_addr constant [3 x i8] c"\5Ct\00" +@.str.7246 = private unnamed_addr constant [5 x i8] c"\5Cu00\00" +@.str.7247 = private unnamed_addr constant [2 x i8] c"\22\00" +@.str.7248 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7249 = private unnamed_addr constant [17 x i8] c"0123456789abcdef\00" +@.str.7250 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7251 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7252 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7253 = private unnamed_addr constant [2 x i8] c",\00" +@.str.7254 = private unnamed_addr constant [2 x i8] c":\00" +@.str.7255 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.7256 = private unnamed_addr constant [3 x i8] c": \00" +@.str.7257 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7258 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.7259 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.7260 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7261 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.7262 = private unnamed_addr constant [5 x i8] c"true\00" @.str.7263 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7264 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7265 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7264 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.7265 = private unnamed_addr constant [6 x i8] c"false\00" @.str.7266 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7267 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7267 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" @.str.7268 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7269 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7270 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7271 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7272 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7269 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.7270 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7271 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.7272 = private unnamed_addr constant [3 x i8] c"[]\00" @.str.7273 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7274 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7275 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7274 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.7275 = private unnamed_addr constant [2 x i8] c"[\00" @.str.7276 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7277 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7277 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" @.str.7278 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7279 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7280 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7281 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7282 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7279 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.7280 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7281 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.7282 = private unnamed_addr constant [2 x i8] c"]\00" @.str.7283 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7284 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7285 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7284 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.7285 = private unnamed_addr constant [3 x i8] c"{}\00" @.str.7286 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7287 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7288 = private unnamed_addr constant [9 x i8] c"a number\00" +@.str.7287 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.7288 = private unnamed_addr constant [2 x i8] c"{\00" @.str.7289 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7290 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7290 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" @.str.7291 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7292 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7293 = private unnamed_addr constant [8 x i8] c"a value\00" +@.str.7292 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.7293 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" @.str.7294 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7295 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7296 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7297 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7298 = private unnamed_addr constant [16 x i8] c"a key in quotes\00" -@.str.7299 = private unnamed_addr constant [4 x i8] c"':'\00" -@.str.7300 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7301 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7302 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7303 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7304 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7305 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7306 = private unnamed_addr constant [11 x i8] c"',' or '}'\00" +@.str.7295 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.7296 = private unnamed_addr constant [2 x i8] c"}\00" +@.str.7297 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7298 = private unnamed_addr constant [36 x i8] c"no arm of this match fits the value\00" +@.str.7299 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7300 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7301 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7302 = private unnamed_addr constant [3 x i8] c" \00" +@.str.7303 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7304 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7305 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7306 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" @.str.7307 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7308 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7308 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" @.str.7309 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7310 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7310 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" @.str.7311 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7312 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7313 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7314 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7315 = private unnamed_addr constant [11 x i8] c"',' or ']'\00" -@.str.7316 = private unnamed_addr constant [5 x i8] c"true\00" -@.str.7317 = private unnamed_addr constant [6 x i8] c"false\00" -@.str.7318 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.7319 = private unnamed_addr constant [8 x i8] c"a value\00" -@.str.7320 = private unnamed_addr constant [20 x i8] c"the end of the text\00" -@.str.7321 = private unnamed_addr constant [19 x i8] c"runtime/finch_rt.c\00" -@.str.7322 = private unnamed_addr constant [13 x i8] c"std/json.fch\00" -@.str.7323 = private unnamed_addr constant [13 x i8] c"std/path.fch\00" -@.str.7324 = private unnamed_addr constant [13 x i8] c"std/proc.fch\00" -@.str.7325 = private unnamed_addr constant [21 x i8] c"std/proc_windows.fch\00" -@.str.7326 = private unnamed_addr constant [13 x i8] c"std/time.fch\00" -@.str.7327 = private unnamed_addr constant [21 x i8] c"std/time_windows.fch\00" -@.str.7328 = private unnamed_addr constant [16 x i8] c"std/finch_win.h\00" -@.str.7329 = private unnamed_addr constant [24982 x i8] c"// The Finch runtime: string and array helpers, input, files and runtime errors.\0A// It is embedded in the compiler, compiled once into a cache folder, and linked\0A// statically into every Finch program. Everything here is plain C with no state.\0A//\0A// Layout shared with the compiler (src/codegen.cpp):\0A// str = { char *ptr; int64 len; int64 cap } ptr is always NUL-terminated\0A// cap > 0 : heap memory owned by the value (cap bytes allocated)\0A// cap == 0 : a string literal, valid forever, never written to\0A// cap == -1: borrowed from C, must be copied before it is kept\0A// []T = { T *ptr; int64 len; int64 cap } owns ptr when cap > 0\0A// map[K]V: see \22maps\22 below\0A\0A#include \0A#include \0A#include \0A#include \0A#include \0A#include \0A#include \0A#ifndef _WIN32\0A#include \0A#endif\0A\0Atypedef struct {\0A char *ptr;\0A int64_t len;\0A int64_t cap;\0A} FStr;\0A\0Atypedef struct {\0A void *ptr;\0A int64_t len;\0A int64_t cap;\0A} FArr;\0A\0Astatic char empty[1] = \22\22;\0A\0A// ---------- runtime errors ----------\0A\0A// A program that loads Finch libraries (finch build --shared) can take runtime errors over\0A// instead of the process exiting: finch_module_on_fatal(handler) in each library. The handler\0A// gets the message and must not return (longjmp out, or exit itself).\0Astatic void (*fatal_hook)(const char *msg);\0Avoid finch_on_fatal(void (*hook)(const char *msg)) { fatal_hook = hook; }\0A\0Astatic __attribute__((noreturn)) void fatal(const char *msg) {\0A if (fatal_hook) fatal_hook(msg);\0A fflush(stdout);\0A fprintf(stderr, \22%s\5Cn\22, msg);\0A exit(1);\0A}\0A\0A__attribute__((noreturn, cold)) void finch_panic(const char *file, int64_t line, const char *msg) {\0A char full[1024];\0A snprintf(full, sizeof full, \22%s:%lld: runtime error: %s\22, file, (long long)line, msg);\0A fflush(stdout);\0A fatal(full);\0A}\0A\0A__attribute__((noreturn, cold)) void finch_panic_index(const char *file, int64_t line, int64_t i, int64_t len) {\0A char msg[128];\0A snprintf(msg, sizeof msg, \22index %lld is out of range (the length is %lld)\22, (long long)i, (long long)len);\0A finch_panic(file, line, msg);\0A}\0A\0Astatic void *must(void *p) {\0A if (!p) {\0A fflush(stdout);\0A fatal(\22runtime error: out of memory\22);\0A }\0A return p;\0A}\0A\0Avoid *finch_alloc(int64_t n) { return must(malloc(n ? (size_t)n : 1)); }\0Avoid *finch_zalloc(int64_t n) { return must(calloc(1, n ? (size_t)n : 1)); }\0A\0A// ---------- strings ----------\0A\0Astatic void str_heap(FStr *out, const char *p, int64_t len) {\0A char *m = finch_alloc(len + 1);\0A if (len) memcpy(m, p, (size_t)len);\0A m[len] = 0;\0A out->ptr = m;\0A out->len = len;\0A out->cap = len + 1;\0A}\0A\0Astatic void str_static(FStr *out, const char *lit) {\0A out->ptr = (char *)lit;\0A out->len = (int64_t)strlen(lit);\0A out->cap = 0;\0A}\0A\0A// A copy that can be kept: literals are shared, everything else is duplicated.\0Avoid finch_str_copy(FStr *out, const FStr *s) {\0A if (s->cap == 0) *out = *s;\0A else str_heap(out, s->ptr, s->len);\0A}\0A\0A// Make `s` writable (before s[i] = c).\0Avoid finch_str_own(FStr *s) {\0A if (s->cap > 0) return;\0A FStr t;\0A str_heap(&t, s->ptr, s->len);\0A *s = t;\0A}\0A\0Avoid finch_str_drop(FStr *s) {\0A if (s->cap > 0) free(s->ptr);\0A}\0A\0Avoid finch_str_from_c(FStr *out, const char *p) {\0A if (!p) {\0A str_static(out, empty);\0A return;\0A }\0A out->ptr = (char *)p;\0A out->len = (int64_t)strlen(p);\0A out->cap = -1;\0A}\0A\0Avoid finch_str_concat(FStr *out, const FStr *a, const FStr *b) {\0A int64_t len = a->len + b->len;\0A char *m = finch_alloc(len + 1);\0A memcpy(m, a->ptr, (size_t)a->len);\0A memcpy(m + a->len, b->ptr, (size_t)b->len);\0A m[len] = 0;\0A out->ptr = m;\0A out->len = len;\0A out->cap = len + 1;\0A}\0A\0Aint finch_str_eq(const FStr *a, const FStr *b) {\0A return a->len == b->len && memcmp(a->ptr, b->ptr, (size_t)a->len) == 0;\0A}\0A\0Aint64_t finch_str_cmp(const FStr *a, const FStr *b) {\0A int64_t n = a->len < b->len ? a->len : b->len;\0A int c = memcmp(a->ptr, b->ptr, (size_t)n);\0A if (c) return c < 0 ? -1 : 1;\0A return a->len < b->len ? -1 : a->len > b->len;\0A}\0A\0Avoid finch_str_from_int(FStr *out, int64_t v) {\0A char buf[32];\0A int n = snprintf(buf, sizeof buf, \22%lld\22, (long long)v);\0A str_heap(out, buf, n);\0A}\0A\0Avoid finch_str_from_uint(FStr *out, uint64_t v) {\0A char buf[32];\0A int n = snprintf(buf, sizeof buf, \22%llu\22, (unsigned long long)v);\0A str_heap(out, buf, n);\0A}\0A\0Avoid finch_str_from_float(FStr *out, double v) {\0A char buf[64];\0A int n = snprintf(buf, sizeof buf, \22%g\22, v);\0A str_heap(out, buf, n);\0A}\0A\0Avoid finch_str_from_char(FStr *out, char c) { str_heap(out, &c, 1); }\0A\0Avoid finch_str_from_bool(FStr *out, int b) { str_static(out, b ? \22true\22 : \22false\22); }\0A\0Astatic void number_error(char *msg, size_t size, const FStr *s, const char *kind) {\0A snprintf(msg, size, \22can't turn \5C\22%.*s\5C\22 into %s\22, (int)(s->len > 100 ? 100 : s->len), s->ptr ? s->ptr : \22\22, kind);\0A}\0A\0Astatic int parse_int(const FStr *s, int64_t *out) {\0A const char *p = s->ptr ? s->ptr : \22\22;\0A while (isspace((unsigned char)*p)) p++;\0A char *end;\0A errno = 0;\0A long long v = strtoll(p, &end, 10);\0A while (isspace((unsigned char)*end)) end++;\0A *out = v;\0A return !(end == p || *end || errno == ERANGE);\0A}\0A\0Astatic int parse_float(const FStr *s, double *out) {\0A const char *p = s->ptr ? s->ptr : \22\22;\0A while (isspace((unsigned char)*p)) p++;\0A char *end;\0A double v = strtod(p, &end);\0A while (isspace((unsigned char)*end)) end++;\0A *out = v;\0A return !(end == p || *end);\0A}\0A\0Aint64_t finch_str_to_int(const FStr *s, const char *file, int64_t line) {\0A int64_t v;\0A if (!parse_int(s, &v)) {\0A char msg[200];\0A number_error(msg, sizeof msg, s, \22int\22);\0A finch_panic(file, line, msg);\0A }\0A return v;\0A}\0A\0Adouble finch_str_to_float(const FStr *s, const char *file, int64_t line) {\0A double v;\0A if (!parse_float(s, &v)) {\0A char msg[200];\0A number_error(msg, sizeof msg, s, \22float\22);\0A finch_panic(file, line, msg);\0A }\0A return v;\0A}\0A\0A// ---------- errors as values: int(s) or 0, try read_file(p) ... ----------\0A// Each gives back 1 on success; on failure 0, with the message in *err.\0A\0Astatic void set_error(FStr *err, const char *msg) { str_heap(err, msg, (int64_t)strlen(msg)); }\0A\0Aint finch_str_try_int(const FStr *s, int64_t *out, FStr *err) {\0A if (parse_int(s, out)) return 1;\0A char msg[200];\0A number_error(msg, sizeof msg, s, \22int\22);\0A set_error(err, msg);\0A *out = 0;\0A return 0;\0A}\0A\0Aint finch_str_try_float(const FStr *s, double *out, FStr *err) {\0A if (parse_float(s, out)) return 1;\0A char msg[200];\0A number_error(msg, sizeof msg, s, \22float\22);\0A set_error(err, msg);\0A *out = 0;\0A return 0;\0A}\0A\0Astatic void file_error(FStr *err, const char *what, const FStr *path) {\0A char msg[300];\0A snprintf(msg, sizeof msg, \22can't %s the file \5C\22%.*s\5C\22: %s\22, what, (int)(path->len > 200 ? 200 : path->len),\0A path->ptr ? path->ptr : \22\22, strerror(errno));\0A set_error(err, msg);\0A}\0A\0A// when `fn main() -> !` fails\0Avoid finch_report_error(const FStr *msg) {\0A fflush(stdout);\0A fprintf(stderr, \22error: %.*s\5Cn\22, (int)msg->len, msg->ptr ? msg->ptr : \22\22);\0A}\0A\0Avoid finch_str_sub(FStr *out, const FStr *s, int64_t start, int64_t end, const char *file, int64_t line) {\0A if (start < 0 || end > s->len || start > end) {\0A char msg[160];\0A snprintf(msg, sizeof msg, \22sub(%lld, %lld) is out of range (the length is %lld)\22, (long long)start,\0A (long long)end, (long long)s->len);\0A finch_panic(file, line, msg);\0A }\0A str_heap(out, s->ptr + start, end - start);\0A}\0A\0Aint64_t finch_str_find(const FStr *s, const FStr *t) {\0A if (t->len == 0) return 0;\0A for (int64_t i = 0; i + t->len <= s->len; i++)\0A if (s->ptr[i] == t->ptr[0] && memcmp(s->ptr + i, t->ptr, (size_t)t->len) == 0) return i;\0A return -1;\0A}\0A\0Aint finch_str_starts(const FStr *s, const FStr *t) {\0A return t->len <= s->len && memcmp(s->ptr, t->ptr, (size_t)t->len) == 0;\0A}\0A\0Aint finch_str_ends(const FStr *s, const FStr *t) {\0A return t->len <= s->len && memcmp(s->ptr + s->len - t->len, t->ptr, (size_t)t->len) == 0;\0A}\0A\0Avoid finch_str_trim(FStr *out, const FStr *s) {\0A int64_t a = 0, b = s->len;\0A while (a < b && isspace((unsigned char)s->ptr[a])) a++;\0A while (b > a && isspace((unsigned char)s->ptr[b - 1])) b--;\0A str_heap(out, s->ptr + a, b - a);\0A}\0A\0Avoid finch_str_upper(FStr *out, const FStr *s) {\0A str_heap(out, s->ptr, s->len);\0A for (int64_t i = 0; i < out->len; i++) out->ptr[i] = (char)toupper((unsigned char)out->ptr[i]);\0A}\0A\0Avoid finch_str_lower(FStr *out, const FStr *s) {\0A str_heap(out, s->ptr, s->len);\0A for (int64_t i = 0; i < out->len; i++) out->ptr[i] = (char)tolower((unsigned char)out->ptr[i]);\0A}\0A\0Avoid finch_str_replace(FStr *out, const FStr *s, const FStr *from, const FStr *to) {\0A if (from->len == 0) {\0A str_heap(out, s->ptr, s->len);\0A return;\0A }\0A int64_t count = 0;\0A for (int64_t i = 0; i + from->len <= s->len;) {\0A if (memcmp(s->ptr + i, from->ptr, (size_t)from->len) == 0) {\0A count++;\0A i += from->len;\0A } else {\0A i++;\0A }\0A }\0A int64_t len = s->len + count * (to->len - from->len);\0A char *m = finch_alloc(len + 1), *w = m;\0A for (int64_t i = 0; i < s->len;) {\0A if (i + from->len <= s->len && memcmp(s->ptr + i, from->ptr, (size_t)from->len) == 0) {\0A memcpy(w, to->ptr, (size_t)to->len);\0A w += to->len;\0A i += from->len;\0A } else {\0A *w++ = s->ptr[i++];\0A }\0A }\0A *w = 0;\0A out->ptr = m;\0A out->len = len;\0A out->cap = len + 1;\0A}\0A\0Astatic void arr_push_str(FArr *a, const char *p, int64_t len);\0A\0A// \22a,b,,c\22.split(\22,\22) -> [\22a\22, \22b\22, \22\22, \22c\22]; split(\22\22) gives single characters.\0Avoid finch_str_split(FArr *out, const FStr *s, const FStr *sep) {\0A out->ptr = NULL;\0A out->len = out->cap = 0;\0A if (sep->len == 0) {\0A for (int64_t i = 0; i < s->len; i++) arr_push_str(out, s->ptr + i, 1);\0A return;\0A }\0A int64_t start = 0;\0A for (int64_t i = 0; i + sep->len <= s->len;) {\0A if (memcmp(s->ptr + i, sep->ptr, (size_t)sep->len) == 0) {\0A arr_push_str(out, s->ptr + start, i - start);\0A i += sep->len;\0A start = i;\0A } else {\0A i++;\0A }\0A }\0A arr_push_str(out, s->ptr + start, s->len - start);\0A}\0A\0Avoid finch_str_join(FStr *out, const FArr *parts, const FStr *sep) {\0A const FStr *p = parts->ptr;\0A int64_t len = 0;\0A for (int64_t i = 0; i < parts->len; i++) len += p[i].len + (i ? sep->len : 0);\0A char *m = finch_alloc(len + 1), *w = m;\0A for (int64_t i = 0; i < parts->len; i++) {\0A if (i) {\0A memcpy(w, sep->ptr, (size_t)sep->len);\0A w += sep->len;\0A }\0A memcpy(w, p[i].ptr, (size_t)p[i].len);\0A w += p[i].len;\0A }\0A *w = 0;\0A out->ptr = m;\0A out->len = len;\0A out->cap = len + 1;\0A}\0A\0Avoid finch_str_repeat(FStr *out, const FStr *s, int64_t n) {\0A if (n < 0) n = 0;\0A int64_t len = s->len * n;\0A char *m = finch_alloc(len + 1);\0A for (int64_t i = 0; i < n; i++) memcpy(m + i * s->len, s->ptr, (size_t)s->len);\0A m[len] = 0;\0A out->ptr = m;\0A out->len = len;\0A out->cap = len + 1;\0A}\0A\0Avoid finch_str_from_bytes(FStr *out, const FArr *bytes) { str_heap(out, bytes->ptr, bytes->len); }\0A\0A// ---------- building text: print(x) and str(x) of arrays, maps and structs ----------\0A// A buffer starts as an empty str and grows on the heap.\0A\0Avoid finch_buf_add(FStr *b, const char *p, int64_t n) {\0A if (b->len + n + 1 > b->cap) {\0A int64_t cap = b->cap > 0 ? b->cap * 2 : 32;\0A while (cap < b->len + n + 1) cap *= 2;\0A b->ptr = must(realloc(b->cap > 0 ? b->ptr : NULL, (size_t)cap));\0A b->cap = cap;\0A }\0A if (n) memcpy(b->ptr + b->len, p, (size_t)n);\0A b->len += n;\0A b->ptr[b->len] = 0;\0A}\0A\0Astatic void buf_fmt(FStr *b, const char *fmt, ...) __attribute__((format(printf, 2, 3)));\0Astatic void buf_fmt(FStr *b, const char *fmt, ...) {\0A char t[64];\0A va_list ap;\0A va_start(ap, fmt);\0A int n = vsnprintf(t, sizeof t, fmt, ap);\0A va_end(ap);\0A finch_buf_add(b, t, n);\0A}\0A\0Avoid finch_buf_int(FStr *b, int64_t v) { buf_fmt(b, \22%lld\22, (long long)v); }\0Avoid finch_buf_uint(FStr *b, uint64_t v) { buf_fmt(b, \22%llu\22, (unsigned long long)v); }\0Avoid finch_buf_float(FStr *b, double v) { buf_fmt(b, \22%g\22, v); }\0Avoid finch_buf_bool(FStr *b, int v) { finch_buf_add(b, v ? \22true\22 : \22false\22, v ? 4 : 5); }\0Avoid finch_buf_ptr(FStr *b, const void *p) {\0A if (p) buf_fmt(b, \220x%llx\22, (unsigned long long)(uintptr_t)p);\0A else finch_buf_add(b, \22null\22, 4);\0A}\0A\0Avoid finch_buf_char(FStr *b, char c, int quoted) {\0A if (quoted) finch_buf_add(b, \22'\22, 1);\0A finch_buf_add(b, &c, 1);\0A if (quoted) finch_buf_add(b, \22'\22, 1);\0A}\0A\0Avoid finch_buf_str(FStr *b, const FStr *s, int quoted) {\0A if (quoted) finch_buf_add(b, \22\5C\22\22, 1);\0A finch_buf_add(b, s->ptr, s->len);\0A if (quoted) finch_buf_add(b, \22\5C\22\22, 1);\0A}\0A\0A// print the buffer and free it\0Avoid finch_buf_print(FStr *b) {\0A if (b->len) fwrite(b->ptr, 1, (size_t)b->len, stdout);\0A if (b->cap > 0) free(b->ptr);\0A}\0A\0A// ---------- arrays ----------\0A\0Avoid finch_arr_reserve(FArr *a, int64_t need, int64_t es) {\0A if (need <= a->cap) return;\0A int64_t cap = a->cap * 2;\0A if (cap < 4) cap = 4;\0A if (cap < need) cap = need;\0A a->ptr = must(realloc(a->cap > 0 ? a->ptr : NULL, (size_t)(cap * es)));\0A a->cap = cap;\0A}\0A\0Avoid finch_arr_make(FArr *out, int64_t len, int64_t es) {\0A if (len < 0) len = 0;\0A out->ptr = len ? finch_zalloc(len * es) : NULL;\0A out->len = len;\0A out->cap = len;\0A}\0A\0A// grow or shrink to `len`; new elements are zero\0Avoid finch_arr_resize(FArr *a, int64_t len, int64_t es) {\0A if (len < 0) len = 0;\0A finch_arr_reserve(a, len, es);\0A if (len > a->len) memset((char *)a->ptr + a->len * es, 0, (size_t)((len - a->len) * es));\0A a->len = len;\0A}\0A\0A// a byte-for-byte copy of the elements (the compiler deep-copies owning elements afterwards)\0Avoid finch_arr_clone_raw(FArr *out, const FArr *a, int64_t es) {\0A out->len = a->len;\0A out->cap = a->len;\0A out->ptr = a->len ? finch_alloc(a->len * es) : NULL;\0A if (a->len) memcpy(out->ptr, a->ptr, (size_t)(a->len * es));\0A}\0A\0Avoid finch_arr_free(FArr *a) {\0A if (a->cap > 0) free(a->ptr);\0A}\0A\0A// open a hole at i (0 <= i <= len), len grows by one\0Avoid finch_arr_insert_gap(FArr *a, int64_t i, int64_t es, const char *file, int64_t line) {\0A if (i < 0 || i > a->len) finch_panic_index(file, line, i, a->len);\0A finch_arr_reserve(a, a->len + 1, es);\0A char *p = a->ptr;\0A memmove(p + (i + 1) * es, p + i * es, (size_t)((a->len - i) * es));\0A a->len++;\0A}\0A\0A// close the hole at i (the element was already moved out), len shrinks by one\0Avoid finch_arr_remove_gap(FArr *a, int64_t i, int64_t es) {\0A char *p = a->ptr;\0A memmove(p + i * es, p + (i + 1) * es, (size_t)((a->len - i - 1) * es));\0A a->len--;\0A}\0A\0Astatic void arr_push_str(FArr *a, const char *p, int64_t len) {\0A finch_arr_reserve(a, a->len + 1, (int64_t)sizeof(FStr));\0A str_heap((FStr *)a->ptr + a->len, p, len);\0A a->len++;\0A}\0A\0Avoid finch_bytes_from_str(FArr *out, const FStr *s) {\0A out->len = out->cap = s->len;\0A out->ptr = s->len ? finch_alloc(s->len) : NULL;\0A if (s->len) memcpy(out->ptr, s->ptr, (size_t)s->len);\0A}\0A\0A// ---------- program arguments, input and files ----------\0A\0Avoid finch_args(FArr *out, int argc, char **argv) {\0A out->len = out->cap = argc;\0A out->ptr = finch_alloc((int64_t)sizeof(FStr) * (argc ? argc : 1));\0A for (int i = 0; i < argc; i++) str_heap((FStr *)out->ptr + i, argv[i], (int64_t)strlen(argv[i]));\0A}\0A\0A// input(\22Name? \22) prints the prompt and reads one line, without the newline.\0Avoid finch_input(FStr *out, const FStr *prompt) {\0A if (prompt->len) fwrite(prompt->ptr, 1, (size_t)prompt->len, stdout);\0A fflush(stdout);\0A // read one line of any length (getline isn't available everywhere)\0A size_t size = 128, n = 0;\0A char *line = finch_alloc((int64_t)size);\0A int c, got = 0;\0A while ((c = fgetc(stdin)) != EOF) {\0A got = 1;\0A if (c == '\5Cn') break;\0A if (n + 1 >= size) line = must(realloc(line, size *= 2));\0A line[n++] = (char)c;\0A }\0A if (!got) {\0A free(line);\0A str_static(out, empty);\0A return;\0A }\0A while (n > 0 && line[n - 1] == '\5Cr') n--;\0A line[n] = 0;\0A out->ptr = line;\0A out->len = (int64_t)n;\0A out->cap = (int64_t)size;\0A}\0A\0Aint finch_file_exists(const FStr *path) {\0A FILE *f = fopen(path->ptr, \22rb\22);\0A if (f) fclose(f);\0A return f != NULL;\0A}\0A\0Aint finch_try_read_file(FStr *out, const FStr *path, FStr *err) {\0A FILE *f = fopen(path->ptr ? path->ptr : \22\22, \22rb\22);\0A if (!f) {\0A file_error(err, \22read\22, path);\0A return 0;\0A }\0A fseek(f, 0, SEEK_END);\0A long size = ftell(f);\0A fseek(f, 0, SEEK_SET);\0A char *m = finch_alloc(size + 1);\0A size_t got = fread(m, 1, (size_t)size, f);\0A fclose(f);\0A m[got] = 0;\0A out->ptr = m;\0A out->len = (int64_t)got;\0A out->cap = size + 1;\0A return 1;\0A}\0A\0Avoid finch_read_file(FStr *out, const FStr *path, const char *file, int64_t line) {\0A FILE *f = fopen(path->ptr ? path->ptr : \22\22, \22rb\22);\0A if (!f) {\0A char msg[300];\0A snprintf(msg, sizeof msg, \22can't read the file \5C\22%.*s\5C\22: %s\22, (int)(path->len > 200 ? 200 : path->len),\0A path->ptr, strerror(errno));\0A finch_panic(file, line, msg);\0A }\0A fseek(f, 0, SEEK_END);\0A long size = ftell(f);\0A fseek(f, 0, SEEK_SET);\0A char *m = finch_alloc(size + 1);\0A size_t got = fread(m, 1, (size_t)size, f);\0A fclose(f);\0A m[got] = 0;\0A out->ptr = m;\0A out->len = (int64_t)got;\0A out->cap = size + 1;\0A}\0A\0A// shell(\22ls -l\22): run a command, give back its exit code\0Aint64_t finch_shell(const FStr *cmd) {\0A fflush(stdout);\0A int status = system(cmd->ptr ? cmd->ptr : \22\22);\0A#ifdef _WIN32\0A return status; // Windows gives the exit code directly\0A#else\0A if (status == -1) return -1;\0A if (WIFEXITED(status)) return WEXITSTATUS(status);\0A return 128 + (WIFSIGNALED(status) ? WTERMSIG(status) : 0);\0A#endif\0A}\0A\0Aint finch_delete_file(const FStr *path) { return remove(path->ptr ? path->ptr : \22\22) == 0; }\0A\0Aint finch_try_delete_file(const FStr *path, FStr *err) {\0A if (remove(path->ptr ? path->ptr : \22\22) == 0) return 1;\0A file_error(err, \22delete\22, path);\0A return 0;\0A}\0A\0A// stdin/stdout/stderr are macros on some systems (Windows), so Finch asks for them here\0Avoid *finch_std_stream(int i) { return i == 0 ? (void *)stdin : i == 1 ? (void *)stdout : (void *)stderr; }\0A\0Aint finch_write_file(const FStr *path, const FStr *text) {\0A FILE *f = fopen(path->ptr ? path->ptr : \22\22, \22wb\22);\0A if (!f) return 0;\0A size_t put = text->len ? fwrite(text->ptr, 1, (size_t)text->len, f) : 0;\0A return fclose(f) == 0 && put == (size_t)text->len;\0A}\0A\0Aint finch_try_write_file(const FStr *path, const FStr *text, FStr *err) {\0A errno = 0;\0A if (finch_write_file(path, text)) return 1;\0A if (!errno) errno = EIO;\0A file_error(err, \22write\22, path);\0A return 0;\0A}\0A\0A// ---------- maps ----------\0A// map[K]V = { entries; len; used; cap; index; icap; adds }\0A// entries: `used` slots of es bytes, each { uint64 hash; K key; V value }, in insertion order.\0A// A removed entry keeps its slot (hash 0) until the next resize packs the slots.\0A// index: icap slots (a power of two, at least 2 * cap): -1 empty, -2 removed, else an entry number.\0A// adds: how many keys were ever added; a `for` over the map stops with an error if it changes.\0A// The compiler stores, copies and drops keys and values; the runtime only finds and places entries.\0A// Keys are compared byte for byte (numbers, chars, bools) or as text (kstr).\0A\0Atypedef struct {\0A char *entries;\0A int64_t len, used, cap;\0A int64_t *index;\0A int64_t icap;\0A int64_t adds;\0A} FMap;\0A\0Astatic uint64_t map_hash(const void *key, int64_t ks, int kstr) {\0A const unsigned char *p;\0A size_t n;\0A if (kstr) {\0A const FStr *s = key;\0A p = (const unsigned char *)s->ptr;\0A n = (size_t)s->len;\0A } else {\0A p = key;\0A n = (size_t)ks;\0A }\0A uint64_t h = 1469598103934665603ULL; // FNV-1a, then mixed so the low bits spread well\0A for (size_t i = 0; i < n; i++) {\0A h ^= p[i];\0A h *= 1099511628211ULL;\0A }\0A h ^= h >> 31;\0A h *= 0xbf58476d1ce4e5b9ULL;\0A h ^= h >> 29;\0A return h | 1; // 0 marks a removed entry\0A}\0A\0Astatic int map_key_eq(const char *a, const void *b, int64_t ks, int kstr) {\0A if (!kstr) return memcmp(a, b, (size_t)ks) == 0;\0A const FStr *x = (const FStr *)a, *y = b;\0A return x->len == y->len && (x->len == 0 || memcmp(x->ptr, y->ptr, (size_t)x->len) == 0);\0A}\0A\0Astatic void map_reindex(FMap *m, int64_t es) {\0A if (m->len != m->used) { // pack the slots of removed entries away\0A int64_t j = 0;\0A for (int64_t i = 0; i < m->used; i++) {\0A char *e = m->entries + i * es;\0A if (*(uint64_t *)e == 0) continue;\0A if (i != j) memmove(m->entries + j * es, e, (size_t)es);\0A j++;\0A }\0A m->used = j;\0A }\0A int64_t icap = 16;\0A while (icap < m->cap * 2) icap *= 2;\0A free(m->index);\0A m->index = finch_alloc(icap * (int64_t)sizeof(int64_t));\0A memset(m->index, 0xff, (size_t)icap * sizeof(int64_t));\0A m->icap = icap;\0A for (int64_t i = 0; i < m->used; i++) {\0A uint64_t h = *(uint64_t *)(m->entries + i * es);\0A int64_t s = (int64_t)(h & (uint64_t)(icap - 1));\0A while (m->index[s] != -1) s = (s + 1) & (icap - 1);\0A m->index[s] = i;\0A }\0A}\0A\0A// the entry number of `key`, or -1\0Aint64_t finch_map_find(const FMap *m, const void *key, int64_t es, int64_t ks, int32_t kstr) {\0A if (m->len == 0) return -1;\0A uint64_t h = map_hash(key, ks, kstr);\0A for (int64_t s = (int64_t)(h & (uint64_t)(m->icap - 1));; s = (s + 1) & (m->icap - 1)) {\0A int64_t i = m->index[s];\0A if (i == -1) return -1;\0A if (i < 0) continue;\0A char *e = m->entries + i * es;\0A if (*(uint64_t *)e == h && map_key_eq(e + 8, key, ks, kstr)) return i;\0A }\0A}\0A\0A// The entry for `key`. A new one is zeroed except its hash (*added = 1); the compiler then stores the key.\0Aint64_t finch_map_slot(FMap *m, const void *key, int64_t es, int64_t ks, int32_t kstr, int32_t *added) {\0A int64_t i = finch_map_find(m, key, es, ks, kstr);\0A *added = i < 0;\0A if (i >= 0) return i;\0A if (m->used == m->cap) {\0A if (m->len * 4 < m->cap * 3) { // many removed slots: pack them instead of growing\0A map_reindex(m, es);\0A } else {\0A m->cap = m->cap ? m->cap * 2 : 8;\0A m->entries = must(realloc(m->entries, (size_t)(m->cap * es)));\0A map_reindex(m, es);\0A }\0A }\0A uint64_t h = map_hash(key, ks, kstr);\0A i = m->used++;\0A char *e = m->entries + i * es;\0A memset(e, 0, (size_t)es);\0A *(uint64_t *)e = h;\0A int64_t s = (int64_t)(h & (uint64_t)(m->icap - 1));\0A while (m->index[s] >= 0) s = (s + 1) & (m->icap - 1);\0A m->index[s] = i;\0A m->len++;\0A m->adds++;\0A return i;\0A}\0A\0A// Forget entry i (its key and value were already dropped by the compiler).\0Avoid finch_map_remove_at(FMap *m, int64_t i, int64_t es) {\0A char *e = m->entries + i * es;\0A uint64_t h = *(uint64_t *)e;\0A int64_t s = (int64_t)(h & (uint64_t)(m->icap - 1));\0A while (m->index[s] != i) s = (s + 1) & (m->icap - 1);\0A m->index[s] = -2;\0A *(uint64_t *)e = 0;\0A if (--m->len == 0) {\0A m->used = 0;\0A memset(m->index, 0xff, (size_t)m->icap * sizeof(int64_t));\0A }\0A}\0A\0Avoid finch_map_clear(FMap *m) {\0A m->len = m->used = 0;\0A if (m->index) memset(m->index, 0xff, (size_t)m->icap * sizeof(int64_t));\0A}\0A\0Avoid finch_map_free(FMap *m) {\0A free(m->entries);\0A free(m->index);\0A}\0A\0A// A copy of the slots and the index; the compiler then copies the keys and values that own memory.\0Avoid finch_map_clone_raw(FMap *out, const FMap *m, int64_t es) {\0A *out = *m;\0A if (!m->cap) return;\0A out->entries = finch_alloc(m->cap * es);\0A memcpy(out->entries, m->entries, (size_t)(m->used * es));\0A out->index = finch_alloc(m->icap * (int64_t)sizeof(int64_t));\0A memcpy(out->index, m->index, (size_t)m->icap * sizeof(int64_t));\0A}\0A\0A__attribute__((noreturn, cold)) void finch_map_changed(const char *file, int64_t line) {\0A finch_panic(file, line, \22a key was added to the map while looping over it (collect the new keys, and add them after the loop)\22);\0A}\0A\0A__attribute__((noreturn, cold)) void finch_map_missing(const char *file, int64_t line, const FStr *key) {\0A char msg[200];\0A snprintf(msg, sizeof msg, \22the key %.*s is not in the map (check with .has(key), or use .get(key, default))\22,\0A (int)(key->len > 100 ? 100 : key->len), key->ptr ? key->ptr : \22\22);\0A finch_panic(file, line, msg);\0A}\0A\00" -@.str.7330 = private unnamed_addr constant [12885 x i8] c"// JSON: read it, build it, write it.\0A//\0A// import json\0A//\0A// doc := try json.parse(\22{\5C\22name\5C\22: \5C\22Finch\5C\22, \5C\22tags\5C\22: [\5C\22fast\5C\22, \5C\22small\5C\22], \5C\22stars\5C\22: 5}\22)\0A// print(doc.get(\22name\22).str_or(\22\22)) Finch\0A// print(doc.get(\22tags\22).at(1).str_or(\22\22)) small\0A// print(doc.get(\22stars\22).int_or(0)) 5\0A// print(doc.get(\22missing\22).is_null()) true (a missing key is null, so chains never fail)\0A//\0A// out := json.new_object()\0A// out.set(\22ok\22, json.new_bool(true))\0A// list := json.new_list()\0A// list.push(json.new_number(1.5))\0A// out.set(\22values\22, list)\0A// print(json.stringify(out)) {\22ok\22:true,\22values\22:[1.5]}\0A// print(json.pretty(out)) the same, over several lines\0A\0Aenum Kind { Null, Bool, Number, Text, List, Object }\0A\0A// One JSON value. `kind` says which of the other fields it uses: flag for Bool, num for Number,\0A// text for Text, items for List, and items with keys (the same length, in the same order) for Object.\0Astruct Json {\0A Kind kind\0A bool flag\0A float num\0A str text\0A []Json items\0A []str keys\0A}\0A\0Afn new_null() -> Json {\0A return Json(kind: Kind.Null)\0A}\0A\0Afn new_bool(bool b) -> Json {\0A return Json(kind: Kind.Bool, flag: b)\0A}\0A\0Afn new_number(float n) -> Json {\0A return Json(kind: Kind.Number, num: n)\0A}\0A\0Afn new_text(str s) -> Json {\0A return Json(kind: Kind.Text, text: s)\0A}\0A\0Afn new_list() -> Json {\0A return Json(kind: Kind.List)\0A}\0A\0Afn new_object() -> Json {\0A return Json(kind: Kind.Object)\0A}\0A\0A// ---------- looking inside ----------\0A\0Afn Json.is_null() -> bool {\0A return self.kind == Kind.Null\0A}\0A\0A// the number of elements of a list, of keys of an object, of bytes of a text; 0 for the rest\0Afn Json.len() -> int {\0A return match self.kind {\0A List, Object -> self.items.len\0A Text -> self.text.len\0A else -> 0\0A }\0A}\0A\0Afn Json.has(str key) -> bool {\0A return self.kind == Kind.Object && self.keys.contains(key)\0A}\0A\0A// the value of a key of an object; null if there is none (or this is not an object)\0Afn Json.get(str key) -> Json {\0A if self.kind != Kind.Object {\0A return new_null()\0A }\0A i := self.keys.find(key)\0A if i < 0 {\0A return new_null()\0A }\0A return self.items[i]\0A}\0A\0A// the element of a list; null if there is none\0Afn Json.at(int i) -> Json {\0A if self.kind != Kind.List || i < 0 || i >= self.items.len {\0A return new_null()\0A }\0A return self.items[i]\0A}\0A\0A// the value if it is of that kind, else what was given\0Afn Json.str_or(str fallback) -> str {\0A if self.kind == Kind.Text {\0A return self.text\0A }\0A return fallback\0A}\0A\0Afn Json.float_or(float fallback) -> float {\0A if self.kind == Kind.Number {\0A return self.num\0A }\0A return fallback\0A}\0A\0Afn Json.int_or(int fallback) -> int {\0A if self.kind == Kind.Number {\0A return int(self.num)\0A }\0A return fallback\0A}\0A\0Afn Json.bool_or(bool fallback) -> bool {\0A if self.kind == Kind.Bool {\0A return self.flag\0A }\0A return fallback\0A}\0A\0A// the keys of an object, in the order they were written\0Afn Json.names() -> []str {\0A return self.keys\0A}\0A\0A// ---------- building ----------\0A\0A// add to the end of a list\0Afn Json.push(Json v) {\0A self.items.push(v)\0A}\0A\0A// give a key a value in an object; a key that is already there is replaced\0Afn Json.set(str key, Json v) {\0A i := self.keys.find(key)\0A if i >= 0 {\0A self.items[i] = v\0A return\0A }\0A self.keys.push(key)\0A self.items.push(v)\0A}\0A\0A// ---------- writing ----------\0A\0Afn quote(str s) -> str {\0A []str parts = [\22\5C\22\22]\0A for c in s {\0A n := int(c)\0A if c == '\22' {\0A parts.push(\22\5C\5C\5C\22\22)\0A } else if c == '\5C\5C' {\0A parts.push(\22\5C\5C\5C\5C\22)\0A } else if c == '\5Cn' {\0A parts.push(\22\5C\5Cn\22)\0A } else if c == '\5Cr' {\0A parts.push(\22\5C\5Cr\22)\0A } else if c == '\5Ct' {\0A parts.push(\22\5C\5Ct\22)\0A } else if n < 32 {\0A parts.push(\22\5C\5Cu00\22 + hexdigit(n / 16) + hexdigit(n % 16))\0A } else {\0A parts.push(str(c))\0A }\0A }\0A parts.push(\22\5C\22\22)\0A return parts.join(\22\22)\0A}\0A\0Afn hexdigit(int n) -> str {\0A digits := \220123456789abcdef\22\0A return str(digits[n])\0A}\0A\0Afn number_text(float n) -> str {\0A if n == float(int(n)) && n > -1000000000000000.0 && n < 1000000000000000.0 {\0A return str(int(n))\0A }\0A return str(n)\0A}\0A\0Astruct Writer {\0A []str out\0A}\0A\0Afn write(Json j, str indent, str pad, ptr[Writer] w) {\0A nl := \22\22\0A inner := \22\22\0A sep := \22,\22\0A colon := \22:\22\0A if indent.len > 0 {\0A nl = \22\5Cn\22\0A inner = pad + indent\0A colon = \22: \22\0A }\0A match j.kind {\0A Null -> w.out.push(\22null\22)\0A Bool -> {\0A if j.flag {\0A w.out.push(\22true\22)\0A } else {\0A w.out.push(\22false\22)\0A }\0A }\0A Number -> w.out.push(number_text(j.num))\0A Text -> w.out.push(quote(j.text))\0A List -> {\0A if j.items.len == 0 {\0A w.out.push(\22[]\22)\0A return\0A }\0A w.out.push(\22[\22 + nl)\0A for i, item in j.items {\0A if i > 0 {\0A w.out.push(sep + nl)\0A }\0A w.out.push(inner)\0A write(item, indent, inner, w)\0A }\0A w.out.push(nl + pad + \22]\22)\0A }\0A Object -> {\0A if j.items.len == 0 {\0A w.out.push(\22{}\22)\0A return\0A }\0A w.out.push(\22{\22 + nl)\0A for i, item in j.items {\0A if i > 0 {\0A w.out.push(sep + nl)\0A }\0A w.out.push(inner + quote(j.keys[i]) + colon)\0A write(item, indent, inner, w)\0A }\0A w.out.push(nl + pad + \22}\22)\0A }\0A }\0A}\0A\0A// the value as text on one line\0Afn stringify(Json j) -> str {\0A w := Writer()\0A write(j, \22\22, \22\22, addr(w))\0A return w.out.join(\22\22)\0A}\0A\0A// the value as text over several lines, indented by two spaces\0Afn pretty(Json j) -> str {\0A w := Writer()\0A write(j, \22 \22, \22\22, addr(w))\0A return w.out.join(\22\22)\0A}\0A\0A// ---------- reading ----------\0A\0Astruct Reader {\0A str src\0A int i\0A}\0A\0A// the line and column of a position, for a message\0Afn where(ptr[Reader] r) -> str {\0A line := 1\0A col := 1\0A for k in 0..r.i {\0A if k < r.src.len && r.src[k] == '\5Cn' {\0A line += 1\0A col = 1\0A } else {\0A col += 1\0A }\0A }\0A return \22line \22 + str(line) + \22, column \22 + str(col)\0A}\0A\0Afn peek(ptr[Reader] r) -> char {\0A if r.i < r.src.len {\0A return r.src[r.i]\0A }\0A return char(0)\0A}\0A\0Afn skip_space(ptr[Reader] r) {\0A while r.i < r.src.len && (r.src[r.i] == ' ' || r.src[r.i] == '\5Cn' || r.src[r.i] == '\5Ct' || r.src[r.i] == '\5Cr') {\0A r.i += 1\0A }\0A}\0A\0Afn unexpected(ptr[Reader] r, str wanted) -> str {\0A if r.i >= r.src.len {\0A return \22json: the text ends where \22 + wanted + \22 should be (\22 + where(r) + \22)\22\0A }\0A return \22json: found '\22 + str(r.src[r.i]) + \22' where \22 + wanted + \22 should be (\22 + where(r) + \22)\22\0A}\0A\0A// does `word` come next?\0Afn comes(ptr[Reader] r, str word) -> bool {\0A return r.src.len - r.i >= word.len && r.src.sub(r.i, r.i + word.len) == word\0A}\0A\0Afn expect_word(ptr[Reader] r, str word) -> ! {\0A if !comes(r, word) {\0A return error(unexpected(r, \22'\22 + word + \22'\22))\0A }\0A r.i += word.len\0A}\0A\0Afn hex_value(char c) -> int {\0A if c >= '0' && c <= '9' {\0A return int(c) - int('0')\0A }\0A if c >= 'a' && c <= 'f' {\0A return int(c) - int('a') + 10\0A }\0A if c >= 'A' && c <= 'F' {\0A return int(c) - int('A') + 10\0A }\0A return -1\0A}\0A\0A// a code point as UTF-8\0Afn utf8(int cp) -> str {\0A []u8 b\0A if cp < 128 {\0A b.push(u8(cp))\0A } else if cp < 2048 {\0A b.push(u8(192 + cp / 64))\0A b.push(u8(128 + cp % 64))\0A } else if cp < 65536 {\0A b.push(u8(224 + cp / 4096))\0A b.push(u8(128 + (cp / 64) % 64))\0A b.push(u8(128 + cp % 64))\0A } else {\0A b.push(u8(240 + cp / 262144))\0A b.push(u8(128 + (cp / 4096) % 64))\0A b.push(u8(128 + (cp / 64) % 64))\0A b.push(u8(128 + cp % 64))\0A }\0A return str(b)\0A}\0A\0Afn read_hex4(ptr[Reader] r) -> int! {\0A n := 0\0A for k in 0..4 {\0A if r.i >= r.src.len || hex_value(r.src[r.i]) < 0 {\0A return error(unexpected(r, \22a hexadecimal digit\22))\0A }\0A n = n * 16 + hex_value(r.src[r.i])\0A r.i += 1\0A }\0A return n\0A}\0A\0Afn read_string(ptr[Reader] r) -> str! {\0A r.i += 1 // the opening quote\0A []str parts\0A start := r.i\0A while true {\0A if r.i >= r.src.len {\0A return error(\22json: a text is never closed (\22 + where(r) + \22)\22)\0A }\0A c := r.src[r.i]\0A if c == '\22' {\0A parts.push(r.src.sub(start, r.i))\0A r.i += 1\0A return parts.join(\22\22)\0A }\0A if int(c) < 32 {\0A return error(\22json: a line break or control character inside a text (\22 + where(r) + \22)\22)\0A }\0A if c != '\5C\5C' {\0A r.i += 1\0A continue\0A }\0A parts.push(r.src.sub(start, r.i))\0A r.i += 1\0A e := peek(r)\0A r.i += 1\0A if e == 'n' {\0A parts.push(\22\5Cn\22)\0A } else if e == 't' {\0A parts.push(\22\5Ct\22)\0A } else if e == 'r' {\0A parts.push(\22\5Cr\22)\0A } else if e == 'b' {\0A parts.push(utf8(8))\0A } else if e == 'f' {\0A parts.push(utf8(12))\0A } else if e == '\22' || e == '\5C\5C' || e == '/' {\0A parts.push(str(e))\0A } else if e == 'u' {\0A cp := try read_hex4(r)\0A // a pair of \F0\9F\98\80 stands for one character above U+FFFF\0A if cp >= 55296 && cp < 56320 && comes(r, \22\5C\5Cu\22) {\0A r.i += 2\0A low := try read_hex4(r)\0A cp = 65536 + (cp - 55296) * 1024 + (low - 56320)\0A }\0A parts.push(utf8(cp))\0A } else {\0A return error(\22json: unknown escape \5C\5C\22 + str(e) + \22 in a text (\22 + where(r) + \22)\22)\0A }\0A start = r.i\0A }\0A}\0A\0Afn read_number(ptr[Reader] r) -> Json! {\0A start := r.i\0A if peek(r) == '-' {\0A r.i += 1\0A }\0A while r.i < r.src.len && ((r.src[r.i] >= '0' && r.src[r.i] <= '9') || r.src[r.i] == '.' || r.src[r.i] == 'e' || r.src[r.i] == 'E' || r.src[r.i] == '+' || r.src[r.i] == '-') {\0A r.i += 1\0A }\0A n := float(r.src.sub(start, r.i)) or {\0A r.i = start\0A return error(unexpected(r, \22a number\22))\0A }\0A return new_number(n)\0A}\0A\0Afn read_value(ptr[Reader] r) -> Json! {\0A skip_space(r)\0A c := peek(r)\0A if r.i >= r.src.len {\0A return error(unexpected(r, \22a value\22))\0A }\0A if c == '{' {\0A obj := new_object()\0A r.i += 1\0A skip_space(r)\0A if peek(r) == '}' {\0A r.i += 1\0A return obj\0A }\0A while true {\0A skip_space(r)\0A if peek(r) != '\22' {\0A return error(unexpected(r, \22a key in quotes\22))\0A }\0A key := try read_string(r)\0A skip_space(r)\0A if peek(r) != ':' {\0A return error(unexpected(r, \22':'\22))\0A }\0A r.i += 1\0A v := try read_value(r)\0A obj.set(key, v)\0A skip_space(r)\0A if peek(r) == ',' {\0A r.i += 1\0A continue\0A }\0A if peek(r) == '}' {\0A r.i += 1\0A return obj\0A }\0A return error(unexpected(r, \22',' or '}'\22))\0A }\0A }\0A if c == '[' {\0A list := new_list()\0A r.i += 1\0A skip_space(r)\0A if peek(r) == ']' {\0A r.i += 1\0A return list\0A }\0A while true {\0A v := try read_value(r)\0A list.push(v)\0A skip_space(r)\0A if peek(r) == ',' {\0A r.i += 1\0A continue\0A }\0A if peek(r) == ']' {\0A r.i += 1\0A return list\0A }\0A return error(unexpected(r, \22',' or ']'\22))\0A }\0A }\0A if c == '\22' {\0A s := try read_string(r)\0A return new_text(s)\0A }\0A if c == 't' {\0A try expect_word(r, \22true\22)\0A return new_bool(true)\0A }\0A if c == 'f' {\0A try expect_word(r, \22false\22)\0A return new_bool(false)\0A }\0A if c == 'n' {\0A try expect_word(r, \22null\22)\0A return new_null()\0A }\0A if c == '-' || (c >= '0' && c <= '9') {\0A return try read_number(r)\0A }\0A return error(unexpected(r, \22a value\22))\0A}\0A\0A// the JSON in `text`; an error with the line and column where it went wrong\0Afn parse(str text) -> Json! {\0A r := Reader(src: text)\0A v := try read_value(addr(r))\0A skip_space(addr(r))\0A if r.i < r.src.len {\0A return error(unexpected(addr(r), \22the end of the text\22))\0A }\0A return v\0A}\0A\00" -@.str.7331 = private unnamed_addr constant [2847 x i8] c"// Paths, as text. Elements are separated by \22/\22.\0A//\0A// import path\0A// path.join(\22a\22, \22b.txt\22) a/b.txt\0A// path.base(\22/tmp/x/a.tar.gz\22) a.tar.gz path.stem(...) a.tar path.ext(...) .gz\0A// path.dir(\22/tmp/x/a.txt\22) /tmp/x\0A// path.clean(\22a//b/../c/./d\22) a/c/d\0A\0A// a and b with one separator between; an absolute b replaces a\0Afn join(str a, str b) -> str {\0A if a.len == 0 {\0A return b\0A }\0A if b.len == 0 {\0A return a\0A }\0A if b[0] == '/' {\0A return b\0A }\0A if a[a.len - 1] == '/' {\0A return a + b\0A }\0A return a + \22/\22 + b\0A}\0A\0Afn is_abs(str p) -> bool {\0A return p.len > 0 && p[0] == '/'\0A}\0A\0A// the last element: \22a/b.txt\22 -> \22b.txt\22, \22a/b/\22 -> \22b\22, \22\22 -> \22.\22, \22/\22 -> \22/\22\0Afn base(str p) -> str {\0A if p.len == 0 {\0A return \22.\22\0A }\0A end := p.len\0A while end > 1 && p[end - 1] == '/' {\0A end -= 1\0A }\0A if end == 1 && p[0] == '/' {\0A return \22/\22\0A }\0A start := end\0A while start > 0 && p[start - 1] != '/' {\0A start -= 1\0A }\0A return p.sub(start, end)\0A}\0A\0A// everything before the last element: \22a/b.txt\22 -> \22a\22, \22b.txt\22 -> \22.\22, \22/b\22 -> \22/\22\0Afn dir(str p) -> str {\0A end := p.len\0A while end > 1 && p[end - 1] == '/' {\0A end -= 1\0A }\0A i := end\0A while i > 0 && p[i - 1] != '/' {\0A i -= 1\0A }\0A if i == 0 {\0A return \22.\22\0A }\0A while i > 1 && p[i - 1] == '/' {\0A i -= 1\0A }\0A return p.sub(0, i)\0A}\0A\0A// the part of the last element from its last dot: \22a.tar.gz\22 -> \22.gz\22; \22\22 when there is none\0Afn ext(str p) -> str {\0A b := base(p)\0A i := b.len\0A while i > 0 && b[i - 1] != '.' {\0A i -= 1\0A }\0A if i <= 1 { // no dot, or a name that only starts with one (.bashrc)\0A return \22\22\0A }\0A return b.sub(i - 1, b.len)\0A}\0A\0A// the last element without its extension\0Afn stem(str p) -> str {\0A b := base(p)\0A e := ext(p)\0A return b.sub(0, b.len - e.len)\0A}\0A\0A// the elements of a path: \22/a/b/c\22 -> [\22a\22, \22b\22, \22c\22]\0Afn parts(str p) -> []str {\0A []str out\0A for piece in p.split(\22/\22) {\0A if piece.len > 0 {\0A out.push(piece)\0A }\0A }\0A return out\0A}\0A\0A// the shortest path with the same meaning: no \22//\22, no \22.\22, and \22..\22 resolved where it can be\0Afn clean(str p) -> str {\0A if p.len == 0 {\0A return \22.\22\0A }\0A abs := is_abs(p)\0A []str out\0A for piece in parts(p) {\0A if piece == \22.\22 {\0A continue\0A }\0A if piece == \22..\22 {\0A if out.len > 0 && out[out.len - 1] != \22..\22 {\0A out.pop()\0A } else if !abs {\0A out.push(\22..\22)\0A }\0A continue\0A }\0A out.push(piece)\0A }\0A joined := out.join(\22/\22)\0A if abs {\0A return \22/\22 + joined\0A }\0A if joined.len == 0 {\0A return \22.\22\0A }\0A return joined\0A}\0A\00" -@.str.7332 = private unnamed_addr constant [1407 x i8] c"// Programs: run a command, read what it printed, look at the environment.\0A//\0A// import proc\0A// code := proc.run(\22make\22) the exit code; what the command prints goes to the screen\0A// text := try proc.output(\22git describe\22) what the command printed; an error if it failed\0A// proc.env(\22HOME\22, \22/\22) an environment variable, or the second value if it is not set\0Aimport \22stdlib.h\22\0Aimport \22unistd.h\22\0Aimport \22time.h\22\0A\0A// run a command; its output goes to the screen. Gives its exit code.\0Afn run(str command) -> int {\0A return shell(command)\0A}\0A\0A// run a command and give what it printed. Fails, with its output as the message, if it exits with an error.\0Afn output(str command) -> str! {\0A tmp := \22/tmp/finch_out_\22 + str(getpid()) + \22_\22 + str(int(time(null)))\0A code := shell(\22(\22 + command + \22) > '\22 + tmp + \22' 2>&1\22)\0A text := read_file(tmp) or \22\22\0A delete_file(tmp)\0A if code != 0 {\0A return error(\22'\22 + command + \22' exited with code \22 + str(code) + \22: \22 + text.trim())\0A }\0A return text\0A}\0A\0Afn env(str name, str fallback) -> str {\0A v := getenv(name)\0A if v.len == 0 {\0A return fallback\0A }\0A return v\0A}\0A\0Afn pid() -> int {\0A return int(getpid())\0A}\0A\0A// the folder the program is running in\0Afn cwd() -> str {\0A []char buf\0A for i in 0..4096 {\0A buf.push(char(0))\0A }\0A getcwd(buf.ptr, 4096)\0A return str(buf.ptr)\0A}\0A\00" -@.str.7333 = private unnamed_addr constant [996 x i8] c"// Programs, for Windows. The same functions as proc.fch (that file is for Linux and macOS).\0Aimport \22stdlib.h\22\0Aimport \22process.h\22\0Aimport \22direct.h\22\0Aimport \22time.h\22\0A\0Afn run(str command) -> int {\0A return shell(command)\0A}\0A\0Afn output(str command) -> str! {\0A tmp := proc_env(\22TEMP\22, \22.\22) + \22\5C\5Cfinch_out_\22 + str(getpid()) + \22_\22 + str(int(time(null)))\0A code := shell(command + \22 > \5C\22\22 + tmp + \22\5C\22 2>&1\22)\0A text := read_file(tmp) or \22\22\0A delete_file(tmp)\0A if code != 0 {\0A return error(\22'\22 + command + \22' exited with code \22 + str(code) + \22: \22 + text.trim())\0A }\0A return text\0A}\0A\0Afn proc_env(str name, str fallback) -> str {\0A v := getenv(name)\0A if v.len == 0 {\0A return fallback\0A }\0A return v\0A}\0A\0Afn env(str name, str fallback) -> str {\0A return proc_env(name, fallback)\0A}\0A\0Afn pid() -> int {\0A return int(getpid())\0A}\0A\0Afn cwd() -> str {\0A []char buf\0A for i in 0..4096 {\0A buf.push(char(0))\0A }\0A getcwd(buf.ptr, 4096)\0A return str(buf.ptr)\0A}\0A\00" -@.str.7334 = private unnamed_addr constant [2540 x i8] c"// Time: the clock, sleeping, and dates.\0A//\0A// import time\0A// start := time.millis() milliseconds from a clock that only goes forward (to measure with)\0A// time.sleep(250) wait a quarter of a second\0A// time.now() seconds since 1970-01-01 00:00 UTC\0A// d := time.date(time.now()) the parts: d.year, d.month, d.day, d.hour, d.minute, d.second\0A// time.format(time.now(), \22%Y-%m-%d %H:%M\22) as text, in the computer's time zone\0Aimport \22time.h\22\0A\0Astruct Date {\0A int year\0A int month // 1 to 12\0A int day // 1 to 31\0A int hour\0A int minute\0A int second\0A int weekday // 0 is Sunday\0A int yearday // 1 to 366\0A}\0A\0A// seconds since 1970-01-01 00:00 UTC\0Afn now() -> int {\0A return int(time(null))\0A}\0A\0A// milliseconds on a clock that only goes forward: for measuring how long something took\0Afn millis() -> int {\0A timespec ts\0A clock_gettime(CLOCK_MONOTONIC, addr(ts))\0A return int(ts.tv_sec) * 1000 + int(ts.tv_nsec) / 1000000\0A}\0A\0Afn sleep(int ms) {\0A timespec ts\0A ts.tv_sec = ms / 1000\0A ts.tv_nsec = (ms % 1000) * 1000000\0A nanosleep(addr(ts), null)\0A}\0A\0Afn parts(tm t) -> Date {\0A return Date(year: int(t.tm_year) + 1900, month: int(t.tm_mon) + 1, day: int(t.tm_mday), hour: int(t.tm_hour),\0A minute: int(t.tm_min), second: int(t.tm_sec), weekday: int(t.tm_wday), yearday: int(t.tm_yday) + 1)\0A}\0A\0A// the date and time of a moment, in UTC\0Afn date(int unix) -> Date {\0A tm t\0A i64 stamp = unix\0A gmtime_r(addr(stamp), addr(t))\0A return parts(t)\0A}\0A\0A// the date and time of a moment, in the computer's time zone\0Afn local(int unix) -> Date {\0A tm t\0A i64 stamp = unix\0A localtime_r(addr(stamp), addr(t))\0A return parts(t)\0A}\0A\0A// a moment as text, in the computer's time zone: %Y year, %m month, %d day, %H hour, %M minute, %S second\0A// (the rest of C's strftime works too: %A weekday name, %B month name, ...)\0Afn format(int unix, str pattern) -> str {\0A tm t\0A i64 stamp = unix\0A localtime_r(addr(stamp), addr(t))\0A []char buf\0A for i in 0..256 {\0A buf.push(char(0))\0A }\0A strftime(buf.ptr, 256, pattern, addr(t))\0A return str(buf.ptr)\0A}\0A\0A// the number of days in a month (month is 1 to 12)\0Afn days_in_month(int year, int month) -> int {\0A if month == 2 {\0A if year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) {\0A return 29\0A }\0A return 28\0A }\0A if month == 4 || month == 6 || month == 9 || month == 11 {\0A return 30\0A }\0A return 31\0A}\0A\00" -@.str.7335 = private unnamed_addr constant [1793 x i8] c"// Time, for Windows. The same functions as time.fch (that file is for Linux and macOS).\0Aimport \22time.h\22\0Aimport \22finch_win.h\22\0A\0Astruct Date {\0A int year\0A int month // 1 to 12\0A int day // 1 to 31\0A int hour\0A int minute\0A int second\0A int weekday // 0 is Sunday\0A int yearday // 1 to 366\0A}\0A\0Afn now() -> int {\0A return int(time(null))\0A}\0A\0A// milliseconds on a clock that only goes forward (the performance counter: GetTickCount64 ticks every 15 ms)\0Afn millis() -> int {\0A i64 count = 0\0A i64 freq = 1\0A QueryPerformanceFrequency(addr(freq))\0A QueryPerformanceCounter(addr(count))\0A return int(count / freq) * 1000 + int(count % freq) * 1000 / int(freq)\0A}\0A\0Afn sleep(int ms) {\0A Sleep(u32(ms))\0A}\0A\0Afn parts(tm t) -> Date {\0A return Date(year: int(t.tm_year) + 1900, month: int(t.tm_mon) + 1, day: int(t.tm_mday), hour: int(t.tm_hour),\0A minute: int(t.tm_min), second: int(t.tm_sec), weekday: int(t.tm_wday), yearday: int(t.tm_yday) + 1)\0A}\0A\0Afn date(int unix) -> Date {\0A tm t\0A i64 stamp = unix\0A _gmtime64_s(addr(t), addr(stamp))\0A return parts(t)\0A}\0A\0Afn local(int unix) -> Date {\0A tm t\0A i64 stamp = unix\0A _localtime64_s(addr(t), addr(stamp))\0A return parts(t)\0A}\0A\0Afn format(int unix, str pattern) -> str {\0A tm t\0A i64 stamp = unix\0A _localtime64_s(addr(t), addr(stamp))\0A []char buf\0A for i in 0..256 {\0A buf.push(char(0))\0A }\0A strftime(buf.ptr, 256, pattern, addr(t))\0A return str(buf.ptr)\0A}\0A\0Afn days_in_month(int year, int month) -> int {\0A if month == 2 {\0A if year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) {\0A return 29\0A }\0A return 28\0A }\0A if month == 4 || month == 6 || month == 9 || month == 11 {\0A return 30\0A }\0A return 31\0A}\0A\00" -@.str.7336 = private unnamed_addr constant [366 x i8] c"/* The Windows functions std/time_windows.fch needs. Declared here, not by including :\0A libclang can't parse that header with MinGW's intrinsics. Both are in kernel32. */\0Aunsigned long long GetTickCount64(void);\0Avoid Sleep(unsigned long milliseconds);\0Aint QueryPerformanceCounter(long long *count);\0Aint QueryPerformanceFrequency(long long *frequency);\0A\00" +@.str.7312 = private unnamed_addr constant [6 x i8] c"line \00" +@.str.7313 = private unnamed_addr constant [10 x i8] c", column \00" +@.str.7314 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7315 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7316 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7317 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7318 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7319 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7320 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7321 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7322 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7323 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7324 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7325 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7326 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7327 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7328 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7329 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7330 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7331 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7332 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7333 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7334 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7335 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7336 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7337 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7338 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7339 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7340 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7341 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7342 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7343 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7344 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7345 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7346 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7347 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7348 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7349 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7350 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7351 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7352 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7353 = private unnamed_addr constant [27 x i8] c"json: the text ends where \00" +@.str.7354 = private unnamed_addr constant [13 x i8] c" should be (\00" +@.str.7355 = private unnamed_addr constant [2 x i8] c")\00" +@.str.7356 = private unnamed_addr constant [14 x i8] c"json: found '\00" +@.str.7357 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7358 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7359 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7360 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7361 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7362 = private unnamed_addr constant [9 x i8] c"' where \00" +@.str.7363 = private unnamed_addr constant [13 x i8] c" should be (\00" +@.str.7364 = private unnamed_addr constant [2 x i8] c")\00" +@.str.7365 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7366 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7367 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7368 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7369 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7370 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7371 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7372 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7373 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7374 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7375 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7376 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.7377 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.7378 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7379 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7380 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7381 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7382 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7383 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7384 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7385 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7386 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7387 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7388 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7389 = private unnamed_addr constant [20 x i8] c"a hexadecimal digit\00" +@.str.7390 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7391 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7392 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7393 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7394 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7395 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7396 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7397 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7398 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7399 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7400 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7401 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7402 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7403 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7404 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7405 = private unnamed_addr constant [31 x i8] c"json: a text is never closed (\00" +@.str.7406 = private unnamed_addr constant [2 x i8] c")\00" +@.str.7407 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7408 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7409 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7410 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7411 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7412 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7413 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7414 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7415 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7416 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7417 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7418 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7419 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7420 = private unnamed_addr constant [56 x i8] c"json: a line break or control character inside a text (\00" +@.str.7421 = private unnamed_addr constant [2 x i8] c")\00" +@.str.7422 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7423 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7424 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7425 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7426 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7427 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7428 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7429 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7430 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7431 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7432 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7433 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.7434 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.7435 = private unnamed_addr constant [2 x i8] c"\0D\00" +@.str.7436 = private unnamed_addr constant [3 x i8] c"\5Cu\00" +@.str.7437 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7438 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7439 = private unnamed_addr constant [23 x i8] c"json: unknown escape \5C\00" +@.str.7440 = private unnamed_addr constant [13 x i8] c" in a text (\00" +@.str.7441 = private unnamed_addr constant [2 x i8] c")\00" +@.str.7442 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7443 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7444 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7445 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7446 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7447 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7448 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7449 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7450 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7451 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7452 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7453 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7454 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7455 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7456 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7457 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7458 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7459 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7460 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7461 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7462 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7463 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7464 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7465 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7466 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7467 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7468 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7469 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7470 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7471 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7472 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7473 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7474 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7475 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7476 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7477 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7478 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7479 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7480 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7481 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7482 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7483 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7484 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7485 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7486 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7487 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7488 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7489 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7490 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7491 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7492 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7493 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7494 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7495 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7496 = private unnamed_addr constant [9 x i8] c"a number\00" +@.str.7497 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7498 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7499 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7500 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7501 = private unnamed_addr constant [8 x i8] c"a value\00" +@.str.7502 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7503 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7504 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7505 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7506 = private unnamed_addr constant [16 x i8] c"a key in quotes\00" +@.str.7507 = private unnamed_addr constant [4 x i8] c"':'\00" +@.str.7508 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7509 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7510 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7511 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7512 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7513 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7514 = private unnamed_addr constant [11 x i8] c"',' or '}'\00" +@.str.7515 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7516 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7517 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7518 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7519 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7520 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7521 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7522 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7523 = private unnamed_addr constant [11 x i8] c"',' or ']'\00" +@.str.7524 = private unnamed_addr constant [5 x i8] c"true\00" +@.str.7525 = private unnamed_addr constant [6 x i8] c"false\00" +@.str.7526 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.7527 = private unnamed_addr constant [8 x i8] c"a value\00" +@.str.7528 = private unnamed_addr constant [20 x i8] c"the end of the text\00" +@.str.7529 = private unnamed_addr constant [19 x i8] c"runtime/finch_rt.c\00" +@.str.7530 = private unnamed_addr constant [13 x i8] c"std/json.fch\00" +@.str.7531 = private unnamed_addr constant [13 x i8] c"std/path.fch\00" +@.str.7532 = private unnamed_addr constant [13 x i8] c"std/proc.fch\00" +@.str.7533 = private unnamed_addr constant [21 x i8] c"std/proc_windows.fch\00" +@.str.7534 = private unnamed_addr constant [13 x i8] c"std/time.fch\00" +@.str.7535 = private unnamed_addr constant [21 x i8] c"std/time_windows.fch\00" +@.str.7536 = private unnamed_addr constant [16 x i8] c"std/finch_win.h\00" +@.str.7537 = private unnamed_addr constant [24982 x i8] c"// The Finch runtime: string and array helpers, input, files and runtime errors.\0A// It is embedded in the compiler, compiled once into a cache folder, and linked\0A// statically into every Finch program. Everything here is plain C with no state.\0A//\0A// Layout shared with the compiler (src/codegen.cpp):\0A// str = { char *ptr; int64 len; int64 cap } ptr is always NUL-terminated\0A// cap > 0 : heap memory owned by the value (cap bytes allocated)\0A// cap == 0 : a string literal, valid forever, never written to\0A// cap == -1: borrowed from C, must be copied before it is kept\0A// []T = { T *ptr; int64 len; int64 cap } owns ptr when cap > 0\0A// map[K]V: see \22maps\22 below\0A\0A#include \0A#include \0A#include \0A#include \0A#include \0A#include \0A#include \0A#ifndef _WIN32\0A#include \0A#endif\0A\0Atypedef struct {\0A char *ptr;\0A int64_t len;\0A int64_t cap;\0A} FStr;\0A\0Atypedef struct {\0A void *ptr;\0A int64_t len;\0A int64_t cap;\0A} FArr;\0A\0Astatic char empty[1] = \22\22;\0A\0A// ---------- runtime errors ----------\0A\0A// A program that loads Finch libraries (finch build --shared) can take runtime errors over\0A// instead of the process exiting: finch_module_on_fatal(handler) in each library. The handler\0A// gets the message and must not return (longjmp out, or exit itself).\0Astatic void (*fatal_hook)(const char *msg);\0Avoid finch_on_fatal(void (*hook)(const char *msg)) { fatal_hook = hook; }\0A\0Astatic __attribute__((noreturn)) void fatal(const char *msg) {\0A if (fatal_hook) fatal_hook(msg);\0A fflush(stdout);\0A fprintf(stderr, \22%s\5Cn\22, msg);\0A exit(1);\0A}\0A\0A__attribute__((noreturn, cold)) void finch_panic(const char *file, int64_t line, const char *msg) {\0A char full[1024];\0A snprintf(full, sizeof full, \22%s:%lld: runtime error: %s\22, file, (long long)line, msg);\0A fflush(stdout);\0A fatal(full);\0A}\0A\0A__attribute__((noreturn, cold)) void finch_panic_index(const char *file, int64_t line, int64_t i, int64_t len) {\0A char msg[128];\0A snprintf(msg, sizeof msg, \22index %lld is out of range (the length is %lld)\22, (long long)i, (long long)len);\0A finch_panic(file, line, msg);\0A}\0A\0Astatic void *must(void *p) {\0A if (!p) {\0A fflush(stdout);\0A fatal(\22runtime error: out of memory\22);\0A }\0A return p;\0A}\0A\0Avoid *finch_alloc(int64_t n) { return must(malloc(n ? (size_t)n : 1)); }\0Avoid *finch_zalloc(int64_t n) { return must(calloc(1, n ? (size_t)n : 1)); }\0A\0A// ---------- strings ----------\0A\0Astatic void str_heap(FStr *out, const char *p, int64_t len) {\0A char *m = finch_alloc(len + 1);\0A if (len) memcpy(m, p, (size_t)len);\0A m[len] = 0;\0A out->ptr = m;\0A out->len = len;\0A out->cap = len + 1;\0A}\0A\0Astatic void str_static(FStr *out, const char *lit) {\0A out->ptr = (char *)lit;\0A out->len = (int64_t)strlen(lit);\0A out->cap = 0;\0A}\0A\0A// A copy that can be kept: literals are shared, everything else is duplicated.\0Avoid finch_str_copy(FStr *out, const FStr *s) {\0A if (s->cap == 0) *out = *s;\0A else str_heap(out, s->ptr, s->len);\0A}\0A\0A// Make `s` writable (before s[i] = c).\0Avoid finch_str_own(FStr *s) {\0A if (s->cap > 0) return;\0A FStr t;\0A str_heap(&t, s->ptr, s->len);\0A *s = t;\0A}\0A\0Avoid finch_str_drop(FStr *s) {\0A if (s->cap > 0) free(s->ptr);\0A}\0A\0Avoid finch_str_from_c(FStr *out, const char *p) {\0A if (!p) {\0A str_static(out, empty);\0A return;\0A }\0A out->ptr = (char *)p;\0A out->len = (int64_t)strlen(p);\0A out->cap = -1;\0A}\0A\0Avoid finch_str_concat(FStr *out, const FStr *a, const FStr *b) {\0A int64_t len = a->len + b->len;\0A char *m = finch_alloc(len + 1);\0A memcpy(m, a->ptr, (size_t)a->len);\0A memcpy(m + a->len, b->ptr, (size_t)b->len);\0A m[len] = 0;\0A out->ptr = m;\0A out->len = len;\0A out->cap = len + 1;\0A}\0A\0Aint finch_str_eq(const FStr *a, const FStr *b) {\0A return a->len == b->len && memcmp(a->ptr, b->ptr, (size_t)a->len) == 0;\0A}\0A\0Aint64_t finch_str_cmp(const FStr *a, const FStr *b) {\0A int64_t n = a->len < b->len ? a->len : b->len;\0A int c = memcmp(a->ptr, b->ptr, (size_t)n);\0A if (c) return c < 0 ? -1 : 1;\0A return a->len < b->len ? -1 : a->len > b->len;\0A}\0A\0Avoid finch_str_from_int(FStr *out, int64_t v) {\0A char buf[32];\0A int n = snprintf(buf, sizeof buf, \22%lld\22, (long long)v);\0A str_heap(out, buf, n);\0A}\0A\0Avoid finch_str_from_uint(FStr *out, uint64_t v) {\0A char buf[32];\0A int n = snprintf(buf, sizeof buf, \22%llu\22, (unsigned long long)v);\0A str_heap(out, buf, n);\0A}\0A\0Avoid finch_str_from_float(FStr *out, double v) {\0A char buf[64];\0A int n = snprintf(buf, sizeof buf, \22%g\22, v);\0A str_heap(out, buf, n);\0A}\0A\0Avoid finch_str_from_char(FStr *out, char c) { str_heap(out, &c, 1); }\0A\0Avoid finch_str_from_bool(FStr *out, int b) { str_static(out, b ? \22true\22 : \22false\22); }\0A\0Astatic void number_error(char *msg, size_t size, const FStr *s, const char *kind) {\0A snprintf(msg, size, \22can't turn \5C\22%.*s\5C\22 into %s\22, (int)(s->len > 100 ? 100 : s->len), s->ptr ? s->ptr : \22\22, kind);\0A}\0A\0Astatic int parse_int(const FStr *s, int64_t *out) {\0A const char *p = s->ptr ? s->ptr : \22\22;\0A while (isspace((unsigned char)*p)) p++;\0A char *end;\0A errno = 0;\0A long long v = strtoll(p, &end, 10);\0A while (isspace((unsigned char)*end)) end++;\0A *out = v;\0A return !(end == p || *end || errno == ERANGE);\0A}\0A\0Astatic int parse_float(const FStr *s, double *out) {\0A const char *p = s->ptr ? s->ptr : \22\22;\0A while (isspace((unsigned char)*p)) p++;\0A char *end;\0A double v = strtod(p, &end);\0A while (isspace((unsigned char)*end)) end++;\0A *out = v;\0A return !(end == p || *end);\0A}\0A\0Aint64_t finch_str_to_int(const FStr *s, const char *file, int64_t line) {\0A int64_t v;\0A if (!parse_int(s, &v)) {\0A char msg[200];\0A number_error(msg, sizeof msg, s, \22int\22);\0A finch_panic(file, line, msg);\0A }\0A return v;\0A}\0A\0Adouble finch_str_to_float(const FStr *s, const char *file, int64_t line) {\0A double v;\0A if (!parse_float(s, &v)) {\0A char msg[200];\0A number_error(msg, sizeof msg, s, \22float\22);\0A finch_panic(file, line, msg);\0A }\0A return v;\0A}\0A\0A// ---------- errors as values: int(s) or 0, try read_file(p) ... ----------\0A// Each gives back 1 on success; on failure 0, with the message in *err.\0A\0Astatic void set_error(FStr *err, const char *msg) { str_heap(err, msg, (int64_t)strlen(msg)); }\0A\0Aint finch_str_try_int(const FStr *s, int64_t *out, FStr *err) {\0A if (parse_int(s, out)) return 1;\0A char msg[200];\0A number_error(msg, sizeof msg, s, \22int\22);\0A set_error(err, msg);\0A *out = 0;\0A return 0;\0A}\0A\0Aint finch_str_try_float(const FStr *s, double *out, FStr *err) {\0A if (parse_float(s, out)) return 1;\0A char msg[200];\0A number_error(msg, sizeof msg, s, \22float\22);\0A set_error(err, msg);\0A *out = 0;\0A return 0;\0A}\0A\0Astatic void file_error(FStr *err, const char *what, const FStr *path) {\0A char msg[300];\0A snprintf(msg, sizeof msg, \22can't %s the file \5C\22%.*s\5C\22: %s\22, what, (int)(path->len > 200 ? 200 : path->len),\0A path->ptr ? path->ptr : \22\22, strerror(errno));\0A set_error(err, msg);\0A}\0A\0A// when `fn main() -> !` fails\0Avoid finch_report_error(const FStr *msg) {\0A fflush(stdout);\0A fprintf(stderr, \22error: %.*s\5Cn\22, (int)msg->len, msg->ptr ? msg->ptr : \22\22);\0A}\0A\0Avoid finch_str_sub(FStr *out, const FStr *s, int64_t start, int64_t end, const char *file, int64_t line) {\0A if (start < 0 || end > s->len || start > end) {\0A char msg[160];\0A snprintf(msg, sizeof msg, \22sub(%lld, %lld) is out of range (the length is %lld)\22, (long long)start,\0A (long long)end, (long long)s->len);\0A finch_panic(file, line, msg);\0A }\0A str_heap(out, s->ptr + start, end - start);\0A}\0A\0Aint64_t finch_str_find(const FStr *s, const FStr *t) {\0A if (t->len == 0) return 0;\0A for (int64_t i = 0; i + t->len <= s->len; i++)\0A if (s->ptr[i] == t->ptr[0] && memcmp(s->ptr + i, t->ptr, (size_t)t->len) == 0) return i;\0A return -1;\0A}\0A\0Aint finch_str_starts(const FStr *s, const FStr *t) {\0A return t->len <= s->len && memcmp(s->ptr, t->ptr, (size_t)t->len) == 0;\0A}\0A\0Aint finch_str_ends(const FStr *s, const FStr *t) {\0A return t->len <= s->len && memcmp(s->ptr + s->len - t->len, t->ptr, (size_t)t->len) == 0;\0A}\0A\0Avoid finch_str_trim(FStr *out, const FStr *s) {\0A int64_t a = 0, b = s->len;\0A while (a < b && isspace((unsigned char)s->ptr[a])) a++;\0A while (b > a && isspace((unsigned char)s->ptr[b - 1])) b--;\0A str_heap(out, s->ptr + a, b - a);\0A}\0A\0Avoid finch_str_upper(FStr *out, const FStr *s) {\0A str_heap(out, s->ptr, s->len);\0A for (int64_t i = 0; i < out->len; i++) out->ptr[i] = (char)toupper((unsigned char)out->ptr[i]);\0A}\0A\0Avoid finch_str_lower(FStr *out, const FStr *s) {\0A str_heap(out, s->ptr, s->len);\0A for (int64_t i = 0; i < out->len; i++) out->ptr[i] = (char)tolower((unsigned char)out->ptr[i]);\0A}\0A\0Avoid finch_str_replace(FStr *out, const FStr *s, const FStr *from, const FStr *to) {\0A if (from->len == 0) {\0A str_heap(out, s->ptr, s->len);\0A return;\0A }\0A int64_t count = 0;\0A for (int64_t i = 0; i + from->len <= s->len;) {\0A if (memcmp(s->ptr + i, from->ptr, (size_t)from->len) == 0) {\0A count++;\0A i += from->len;\0A } else {\0A i++;\0A }\0A }\0A int64_t len = s->len + count * (to->len - from->len);\0A char *m = finch_alloc(len + 1), *w = m;\0A for (int64_t i = 0; i < s->len;) {\0A if (i + from->len <= s->len && memcmp(s->ptr + i, from->ptr, (size_t)from->len) == 0) {\0A memcpy(w, to->ptr, (size_t)to->len);\0A w += to->len;\0A i += from->len;\0A } else {\0A *w++ = s->ptr[i++];\0A }\0A }\0A *w = 0;\0A out->ptr = m;\0A out->len = len;\0A out->cap = len + 1;\0A}\0A\0Astatic void arr_push_str(FArr *a, const char *p, int64_t len);\0A\0A// \22a,b,,c\22.split(\22,\22) -> [\22a\22, \22b\22, \22\22, \22c\22]; split(\22\22) gives single characters.\0Avoid finch_str_split(FArr *out, const FStr *s, const FStr *sep) {\0A out->ptr = NULL;\0A out->len = out->cap = 0;\0A if (sep->len == 0) {\0A for (int64_t i = 0; i < s->len; i++) arr_push_str(out, s->ptr + i, 1);\0A return;\0A }\0A int64_t start = 0;\0A for (int64_t i = 0; i + sep->len <= s->len;) {\0A if (memcmp(s->ptr + i, sep->ptr, (size_t)sep->len) == 0) {\0A arr_push_str(out, s->ptr + start, i - start);\0A i += sep->len;\0A start = i;\0A } else {\0A i++;\0A }\0A }\0A arr_push_str(out, s->ptr + start, s->len - start);\0A}\0A\0Avoid finch_str_join(FStr *out, const FArr *parts, const FStr *sep) {\0A const FStr *p = parts->ptr;\0A int64_t len = 0;\0A for (int64_t i = 0; i < parts->len; i++) len += p[i].len + (i ? sep->len : 0);\0A char *m = finch_alloc(len + 1), *w = m;\0A for (int64_t i = 0; i < parts->len; i++) {\0A if (i) {\0A memcpy(w, sep->ptr, (size_t)sep->len);\0A w += sep->len;\0A }\0A memcpy(w, p[i].ptr, (size_t)p[i].len);\0A w += p[i].len;\0A }\0A *w = 0;\0A out->ptr = m;\0A out->len = len;\0A out->cap = len + 1;\0A}\0A\0Avoid finch_str_repeat(FStr *out, const FStr *s, int64_t n) {\0A if (n < 0) n = 0;\0A int64_t len = s->len * n;\0A char *m = finch_alloc(len + 1);\0A for (int64_t i = 0; i < n; i++) memcpy(m + i * s->len, s->ptr, (size_t)s->len);\0A m[len] = 0;\0A out->ptr = m;\0A out->len = len;\0A out->cap = len + 1;\0A}\0A\0Avoid finch_str_from_bytes(FStr *out, const FArr *bytes) { str_heap(out, bytes->ptr, bytes->len); }\0A\0A// ---------- building text: print(x) and str(x) of arrays, maps and structs ----------\0A// A buffer starts as an empty str and grows on the heap.\0A\0Avoid finch_buf_add(FStr *b, const char *p, int64_t n) {\0A if (b->len + n + 1 > b->cap) {\0A int64_t cap = b->cap > 0 ? b->cap * 2 : 32;\0A while (cap < b->len + n + 1) cap *= 2;\0A b->ptr = must(realloc(b->cap > 0 ? b->ptr : NULL, (size_t)cap));\0A b->cap = cap;\0A }\0A if (n) memcpy(b->ptr + b->len, p, (size_t)n);\0A b->len += n;\0A b->ptr[b->len] = 0;\0A}\0A\0Astatic void buf_fmt(FStr *b, const char *fmt, ...) __attribute__((format(printf, 2, 3)));\0Astatic void buf_fmt(FStr *b, const char *fmt, ...) {\0A char t[64];\0A va_list ap;\0A va_start(ap, fmt);\0A int n = vsnprintf(t, sizeof t, fmt, ap);\0A va_end(ap);\0A finch_buf_add(b, t, n);\0A}\0A\0Avoid finch_buf_int(FStr *b, int64_t v) { buf_fmt(b, \22%lld\22, (long long)v); }\0Avoid finch_buf_uint(FStr *b, uint64_t v) { buf_fmt(b, \22%llu\22, (unsigned long long)v); }\0Avoid finch_buf_float(FStr *b, double v) { buf_fmt(b, \22%g\22, v); }\0Avoid finch_buf_bool(FStr *b, int v) { finch_buf_add(b, v ? \22true\22 : \22false\22, v ? 4 : 5); }\0Avoid finch_buf_ptr(FStr *b, const void *p) {\0A if (p) buf_fmt(b, \220x%llx\22, (unsigned long long)(uintptr_t)p);\0A else finch_buf_add(b, \22null\22, 4);\0A}\0A\0Avoid finch_buf_char(FStr *b, char c, int quoted) {\0A if (quoted) finch_buf_add(b, \22'\22, 1);\0A finch_buf_add(b, &c, 1);\0A if (quoted) finch_buf_add(b, \22'\22, 1);\0A}\0A\0Avoid finch_buf_str(FStr *b, const FStr *s, int quoted) {\0A if (quoted) finch_buf_add(b, \22\5C\22\22, 1);\0A finch_buf_add(b, s->ptr, s->len);\0A if (quoted) finch_buf_add(b, \22\5C\22\22, 1);\0A}\0A\0A// print the buffer and free it\0Avoid finch_buf_print(FStr *b) {\0A if (b->len) fwrite(b->ptr, 1, (size_t)b->len, stdout);\0A if (b->cap > 0) free(b->ptr);\0A}\0A\0A// ---------- arrays ----------\0A\0Avoid finch_arr_reserve(FArr *a, int64_t need, int64_t es) {\0A if (need <= a->cap) return;\0A int64_t cap = a->cap * 2;\0A if (cap < 4) cap = 4;\0A if (cap < need) cap = need;\0A a->ptr = must(realloc(a->cap > 0 ? a->ptr : NULL, (size_t)(cap * es)));\0A a->cap = cap;\0A}\0A\0Avoid finch_arr_make(FArr *out, int64_t len, int64_t es) {\0A if (len < 0) len = 0;\0A out->ptr = len ? finch_zalloc(len * es) : NULL;\0A out->len = len;\0A out->cap = len;\0A}\0A\0A// grow or shrink to `len`; new elements are zero\0Avoid finch_arr_resize(FArr *a, int64_t len, int64_t es) {\0A if (len < 0) len = 0;\0A finch_arr_reserve(a, len, es);\0A if (len > a->len) memset((char *)a->ptr + a->len * es, 0, (size_t)((len - a->len) * es));\0A a->len = len;\0A}\0A\0A// a byte-for-byte copy of the elements (the compiler deep-copies owning elements afterwards)\0Avoid finch_arr_clone_raw(FArr *out, const FArr *a, int64_t es) {\0A out->len = a->len;\0A out->cap = a->len;\0A out->ptr = a->len ? finch_alloc(a->len * es) : NULL;\0A if (a->len) memcpy(out->ptr, a->ptr, (size_t)(a->len * es));\0A}\0A\0Avoid finch_arr_free(FArr *a) {\0A if (a->cap > 0) free(a->ptr);\0A}\0A\0A// open a hole at i (0 <= i <= len), len grows by one\0Avoid finch_arr_insert_gap(FArr *a, int64_t i, int64_t es, const char *file, int64_t line) {\0A if (i < 0 || i > a->len) finch_panic_index(file, line, i, a->len);\0A finch_arr_reserve(a, a->len + 1, es);\0A char *p = a->ptr;\0A memmove(p + (i + 1) * es, p + i * es, (size_t)((a->len - i) * es));\0A a->len++;\0A}\0A\0A// close the hole at i (the element was already moved out), len shrinks by one\0Avoid finch_arr_remove_gap(FArr *a, int64_t i, int64_t es) {\0A char *p = a->ptr;\0A memmove(p + i * es, p + (i + 1) * es, (size_t)((a->len - i - 1) * es));\0A a->len--;\0A}\0A\0Astatic void arr_push_str(FArr *a, const char *p, int64_t len) {\0A finch_arr_reserve(a, a->len + 1, (int64_t)sizeof(FStr));\0A str_heap((FStr *)a->ptr + a->len, p, len);\0A a->len++;\0A}\0A\0Avoid finch_bytes_from_str(FArr *out, const FStr *s) {\0A out->len = out->cap = s->len;\0A out->ptr = s->len ? finch_alloc(s->len) : NULL;\0A if (s->len) memcpy(out->ptr, s->ptr, (size_t)s->len);\0A}\0A\0A// ---------- program arguments, input and files ----------\0A\0Avoid finch_args(FArr *out, int argc, char **argv) {\0A out->len = out->cap = argc;\0A out->ptr = finch_alloc((int64_t)sizeof(FStr) * (argc ? argc : 1));\0A for (int i = 0; i < argc; i++) str_heap((FStr *)out->ptr + i, argv[i], (int64_t)strlen(argv[i]));\0A}\0A\0A// input(\22Name? \22) prints the prompt and reads one line, without the newline.\0Avoid finch_input(FStr *out, const FStr *prompt) {\0A if (prompt->len) fwrite(prompt->ptr, 1, (size_t)prompt->len, stdout);\0A fflush(stdout);\0A // read one line of any length (getline isn't available everywhere)\0A size_t size = 128, n = 0;\0A char *line = finch_alloc((int64_t)size);\0A int c, got = 0;\0A while ((c = fgetc(stdin)) != EOF) {\0A got = 1;\0A if (c == '\5Cn') break;\0A if (n + 1 >= size) line = must(realloc(line, size *= 2));\0A line[n++] = (char)c;\0A }\0A if (!got) {\0A free(line);\0A str_static(out, empty);\0A return;\0A }\0A while (n > 0 && line[n - 1] == '\5Cr') n--;\0A line[n] = 0;\0A out->ptr = line;\0A out->len = (int64_t)n;\0A out->cap = (int64_t)size;\0A}\0A\0Aint finch_file_exists(const FStr *path) {\0A FILE *f = fopen(path->ptr, \22rb\22);\0A if (f) fclose(f);\0A return f != NULL;\0A}\0A\0Aint finch_try_read_file(FStr *out, const FStr *path, FStr *err) {\0A FILE *f = fopen(path->ptr ? path->ptr : \22\22, \22rb\22);\0A if (!f) {\0A file_error(err, \22read\22, path);\0A return 0;\0A }\0A fseek(f, 0, SEEK_END);\0A long size = ftell(f);\0A fseek(f, 0, SEEK_SET);\0A char *m = finch_alloc(size + 1);\0A size_t got = fread(m, 1, (size_t)size, f);\0A fclose(f);\0A m[got] = 0;\0A out->ptr = m;\0A out->len = (int64_t)got;\0A out->cap = size + 1;\0A return 1;\0A}\0A\0Avoid finch_read_file(FStr *out, const FStr *path, const char *file, int64_t line) {\0A FILE *f = fopen(path->ptr ? path->ptr : \22\22, \22rb\22);\0A if (!f) {\0A char msg[300];\0A snprintf(msg, sizeof msg, \22can't read the file \5C\22%.*s\5C\22: %s\22, (int)(path->len > 200 ? 200 : path->len),\0A path->ptr, strerror(errno));\0A finch_panic(file, line, msg);\0A }\0A fseek(f, 0, SEEK_END);\0A long size = ftell(f);\0A fseek(f, 0, SEEK_SET);\0A char *m = finch_alloc(size + 1);\0A size_t got = fread(m, 1, (size_t)size, f);\0A fclose(f);\0A m[got] = 0;\0A out->ptr = m;\0A out->len = (int64_t)got;\0A out->cap = size + 1;\0A}\0A\0A// shell(\22ls -l\22): run a command, give back its exit code\0Aint64_t finch_shell(const FStr *cmd) {\0A fflush(stdout);\0A int status = system(cmd->ptr ? cmd->ptr : \22\22);\0A#ifdef _WIN32\0A return status; // Windows gives the exit code directly\0A#else\0A if (status == -1) return -1;\0A if (WIFEXITED(status)) return WEXITSTATUS(status);\0A return 128 + (WIFSIGNALED(status) ? WTERMSIG(status) : 0);\0A#endif\0A}\0A\0Aint finch_delete_file(const FStr *path) { return remove(path->ptr ? path->ptr : \22\22) == 0; }\0A\0Aint finch_try_delete_file(const FStr *path, FStr *err) {\0A if (remove(path->ptr ? path->ptr : \22\22) == 0) return 1;\0A file_error(err, \22delete\22, path);\0A return 0;\0A}\0A\0A// stdin/stdout/stderr are macros on some systems (Windows), so Finch asks for them here\0Avoid *finch_std_stream(int i) { return i == 0 ? (void *)stdin : i == 1 ? (void *)stdout : (void *)stderr; }\0A\0Aint finch_write_file(const FStr *path, const FStr *text) {\0A FILE *f = fopen(path->ptr ? path->ptr : \22\22, \22wb\22);\0A if (!f) return 0;\0A size_t put = text->len ? fwrite(text->ptr, 1, (size_t)text->len, f) : 0;\0A return fclose(f) == 0 && put == (size_t)text->len;\0A}\0A\0Aint finch_try_write_file(const FStr *path, const FStr *text, FStr *err) {\0A errno = 0;\0A if (finch_write_file(path, text)) return 1;\0A if (!errno) errno = EIO;\0A file_error(err, \22write\22, path);\0A return 0;\0A}\0A\0A// ---------- maps ----------\0A// map[K]V = { entries; len; used; cap; index; icap; adds }\0A// entries: `used` slots of es bytes, each { uint64 hash; K key; V value }, in insertion order.\0A// A removed entry keeps its slot (hash 0) until the next resize packs the slots.\0A// index: icap slots (a power of two, at least 2 * cap): -1 empty, -2 removed, else an entry number.\0A// adds: how many keys were ever added; a `for` over the map stops with an error if it changes.\0A// The compiler stores, copies and drops keys and values; the runtime only finds and places entries.\0A// Keys are compared byte for byte (numbers, chars, bools) or as text (kstr).\0A\0Atypedef struct {\0A char *entries;\0A int64_t len, used, cap;\0A int64_t *index;\0A int64_t icap;\0A int64_t adds;\0A} FMap;\0A\0Astatic uint64_t map_hash(const void *key, int64_t ks, int kstr) {\0A const unsigned char *p;\0A size_t n;\0A if (kstr) {\0A const FStr *s = key;\0A p = (const unsigned char *)s->ptr;\0A n = (size_t)s->len;\0A } else {\0A p = key;\0A n = (size_t)ks;\0A }\0A uint64_t h = 1469598103934665603ULL; // FNV-1a, then mixed so the low bits spread well\0A for (size_t i = 0; i < n; i++) {\0A h ^= p[i];\0A h *= 1099511628211ULL;\0A }\0A h ^= h >> 31;\0A h *= 0xbf58476d1ce4e5b9ULL;\0A h ^= h >> 29;\0A return h | 1; // 0 marks a removed entry\0A}\0A\0Astatic int map_key_eq(const char *a, const void *b, int64_t ks, int kstr) {\0A if (!kstr) return memcmp(a, b, (size_t)ks) == 0;\0A const FStr *x = (const FStr *)a, *y = b;\0A return x->len == y->len && (x->len == 0 || memcmp(x->ptr, y->ptr, (size_t)x->len) == 0);\0A}\0A\0Astatic void map_reindex(FMap *m, int64_t es) {\0A if (m->len != m->used) { // pack the slots of removed entries away\0A int64_t j = 0;\0A for (int64_t i = 0; i < m->used; i++) {\0A char *e = m->entries + i * es;\0A if (*(uint64_t *)e == 0) continue;\0A if (i != j) memmove(m->entries + j * es, e, (size_t)es);\0A j++;\0A }\0A m->used = j;\0A }\0A int64_t icap = 16;\0A while (icap < m->cap * 2) icap *= 2;\0A free(m->index);\0A m->index = finch_alloc(icap * (int64_t)sizeof(int64_t));\0A memset(m->index, 0xff, (size_t)icap * sizeof(int64_t));\0A m->icap = icap;\0A for (int64_t i = 0; i < m->used; i++) {\0A uint64_t h = *(uint64_t *)(m->entries + i * es);\0A int64_t s = (int64_t)(h & (uint64_t)(icap - 1));\0A while (m->index[s] != -1) s = (s + 1) & (icap - 1);\0A m->index[s] = i;\0A }\0A}\0A\0A// the entry number of `key`, or -1\0Aint64_t finch_map_find(const FMap *m, const void *key, int64_t es, int64_t ks, int32_t kstr) {\0A if (m->len == 0) return -1;\0A uint64_t h = map_hash(key, ks, kstr);\0A for (int64_t s = (int64_t)(h & (uint64_t)(m->icap - 1));; s = (s + 1) & (m->icap - 1)) {\0A int64_t i = m->index[s];\0A if (i == -1) return -1;\0A if (i < 0) continue;\0A char *e = m->entries + i * es;\0A if (*(uint64_t *)e == h && map_key_eq(e + 8, key, ks, kstr)) return i;\0A }\0A}\0A\0A// The entry for `key`. A new one is zeroed except its hash (*added = 1); the compiler then stores the key.\0Aint64_t finch_map_slot(FMap *m, const void *key, int64_t es, int64_t ks, int32_t kstr, int32_t *added) {\0A int64_t i = finch_map_find(m, key, es, ks, kstr);\0A *added = i < 0;\0A if (i >= 0) return i;\0A if (m->used == m->cap) {\0A if (m->len * 4 < m->cap * 3) { // many removed slots: pack them instead of growing\0A map_reindex(m, es);\0A } else {\0A m->cap = m->cap ? m->cap * 2 : 8;\0A m->entries = must(realloc(m->entries, (size_t)(m->cap * es)));\0A map_reindex(m, es);\0A }\0A }\0A uint64_t h = map_hash(key, ks, kstr);\0A i = m->used++;\0A char *e = m->entries + i * es;\0A memset(e, 0, (size_t)es);\0A *(uint64_t *)e = h;\0A int64_t s = (int64_t)(h & (uint64_t)(m->icap - 1));\0A while (m->index[s] >= 0) s = (s + 1) & (m->icap - 1);\0A m->index[s] = i;\0A m->len++;\0A m->adds++;\0A return i;\0A}\0A\0A// Forget entry i (its key and value were already dropped by the compiler).\0Avoid finch_map_remove_at(FMap *m, int64_t i, int64_t es) {\0A char *e = m->entries + i * es;\0A uint64_t h = *(uint64_t *)e;\0A int64_t s = (int64_t)(h & (uint64_t)(m->icap - 1));\0A while (m->index[s] != i) s = (s + 1) & (m->icap - 1);\0A m->index[s] = -2;\0A *(uint64_t *)e = 0;\0A if (--m->len == 0) {\0A m->used = 0;\0A memset(m->index, 0xff, (size_t)m->icap * sizeof(int64_t));\0A }\0A}\0A\0Avoid finch_map_clear(FMap *m) {\0A m->len = m->used = 0;\0A if (m->index) memset(m->index, 0xff, (size_t)m->icap * sizeof(int64_t));\0A}\0A\0Avoid finch_map_free(FMap *m) {\0A free(m->entries);\0A free(m->index);\0A}\0A\0A// A copy of the slots and the index; the compiler then copies the keys and values that own memory.\0Avoid finch_map_clone_raw(FMap *out, const FMap *m, int64_t es) {\0A *out = *m;\0A if (!m->cap) return;\0A out->entries = finch_alloc(m->cap * es);\0A memcpy(out->entries, m->entries, (size_t)(m->used * es));\0A out->index = finch_alloc(m->icap * (int64_t)sizeof(int64_t));\0A memcpy(out->index, m->index, (size_t)m->icap * sizeof(int64_t));\0A}\0A\0A__attribute__((noreturn, cold)) void finch_map_changed(const char *file, int64_t line) {\0A finch_panic(file, line, \22a key was added to the map while looping over it (collect the new keys, and add them after the loop)\22);\0A}\0A\0A__attribute__((noreturn, cold)) void finch_map_missing(const char *file, int64_t line, const FStr *key) {\0A char msg[200];\0A snprintf(msg, sizeof msg, \22the key %.*s is not in the map (check with .has(key), or use .get(key, default))\22,\0A (int)(key->len > 100 ? 100 : key->len), key->ptr ? key->ptr : \22\22);\0A finch_panic(file, line, msg);\0A}\0A\00" +@.str.7538 = private unnamed_addr constant [12885 x i8] c"// JSON: read it, build it, write it.\0A//\0A// import json\0A//\0A// doc := try json.parse(\22{\5C\22name\5C\22: \5C\22Finch\5C\22, \5C\22tags\5C\22: [\5C\22fast\5C\22, \5C\22small\5C\22], \5C\22stars\5C\22: 5}\22)\0A// print(doc.get(\22name\22).str_or(\22\22)) Finch\0A// print(doc.get(\22tags\22).at(1).str_or(\22\22)) small\0A// print(doc.get(\22stars\22).int_or(0)) 5\0A// print(doc.get(\22missing\22).is_null()) true (a missing key is null, so chains never fail)\0A//\0A// out := json.new_object()\0A// out.set(\22ok\22, json.new_bool(true))\0A// list := json.new_list()\0A// list.push(json.new_number(1.5))\0A// out.set(\22values\22, list)\0A// print(json.stringify(out)) {\22ok\22:true,\22values\22:[1.5]}\0A// print(json.pretty(out)) the same, over several lines\0A\0Aenum Kind { Null, Bool, Number, Text, List, Object }\0A\0A// One JSON value. `kind` says which of the other fields it uses: flag for Bool, num for Number,\0A// text for Text, items for List, and items with keys (the same length, in the same order) for Object.\0Astruct Json {\0A Kind kind\0A bool flag\0A float num\0A str text\0A []Json items\0A []str keys\0A}\0A\0Afn new_null() -> Json {\0A return Json(kind: Kind.Null)\0A}\0A\0Afn new_bool(bool b) -> Json {\0A return Json(kind: Kind.Bool, flag: b)\0A}\0A\0Afn new_number(float n) -> Json {\0A return Json(kind: Kind.Number, num: n)\0A}\0A\0Afn new_text(str s) -> Json {\0A return Json(kind: Kind.Text, text: s)\0A}\0A\0Afn new_list() -> Json {\0A return Json(kind: Kind.List)\0A}\0A\0Afn new_object() -> Json {\0A return Json(kind: Kind.Object)\0A}\0A\0A// ---------- looking inside ----------\0A\0Afn Json.is_null() -> bool {\0A return self.kind == Kind.Null\0A}\0A\0A// the number of elements of a list, of keys of an object, of bytes of a text; 0 for the rest\0Afn Json.len() -> int {\0A return match self.kind {\0A List, Object -> self.items.len\0A Text -> self.text.len\0A else -> 0\0A }\0A}\0A\0Afn Json.has(str key) -> bool {\0A return self.kind == Kind.Object && self.keys.contains(key)\0A}\0A\0A// the value of a key of an object; null if there is none (or this is not an object)\0Afn Json.get(str key) -> Json {\0A if self.kind != Kind.Object {\0A return new_null()\0A }\0A i := self.keys.find(key)\0A if i < 0 {\0A return new_null()\0A }\0A return self.items[i]\0A}\0A\0A// the element of a list; null if there is none\0Afn Json.at(int i) -> Json {\0A if self.kind != Kind.List || i < 0 || i >= self.items.len {\0A return new_null()\0A }\0A return self.items[i]\0A}\0A\0A// the value if it is of that kind, else what was given\0Afn Json.str_or(str fallback) -> str {\0A if self.kind == Kind.Text {\0A return self.text\0A }\0A return fallback\0A}\0A\0Afn Json.float_or(float fallback) -> float {\0A if self.kind == Kind.Number {\0A return self.num\0A }\0A return fallback\0A}\0A\0Afn Json.int_or(int fallback) -> int {\0A if self.kind == Kind.Number {\0A return int(self.num)\0A }\0A return fallback\0A}\0A\0Afn Json.bool_or(bool fallback) -> bool {\0A if self.kind == Kind.Bool {\0A return self.flag\0A }\0A return fallback\0A}\0A\0A// the keys of an object, in the order they were written\0Afn Json.names() -> []str {\0A return self.keys\0A}\0A\0A// ---------- building ----------\0A\0A// add to the end of a list\0Afn Json.push(Json v) {\0A self.items.push(v)\0A}\0A\0A// give a key a value in an object; a key that is already there is replaced\0Afn Json.set(str key, Json v) {\0A i := self.keys.find(key)\0A if i >= 0 {\0A self.items[i] = v\0A return\0A }\0A self.keys.push(key)\0A self.items.push(v)\0A}\0A\0A// ---------- writing ----------\0A\0Afn quote(str s) -> str {\0A []str parts = [\22\5C\22\22]\0A for c in s {\0A n := int(c)\0A if c == '\22' {\0A parts.push(\22\5C\5C\5C\22\22)\0A } else if c == '\5C\5C' {\0A parts.push(\22\5C\5C\5C\5C\22)\0A } else if c == '\5Cn' {\0A parts.push(\22\5C\5Cn\22)\0A } else if c == '\5Cr' {\0A parts.push(\22\5C\5Cr\22)\0A } else if c == '\5Ct' {\0A parts.push(\22\5C\5Ct\22)\0A } else if n < 32 {\0A parts.push(\22\5C\5Cu00\22 + hexdigit(n / 16) + hexdigit(n % 16))\0A } else {\0A parts.push(str(c))\0A }\0A }\0A parts.push(\22\5C\22\22)\0A return parts.join(\22\22)\0A}\0A\0Afn hexdigit(int n) -> str {\0A digits := \220123456789abcdef\22\0A return str(digits[n])\0A}\0A\0Afn number_text(float n) -> str {\0A if n == float(int(n)) && n > -1000000000000000.0 && n < 1000000000000000.0 {\0A return str(int(n))\0A }\0A return str(n)\0A}\0A\0Astruct Writer {\0A []str out\0A}\0A\0Afn write(Json j, str indent, str pad, ptr[Writer] w) {\0A nl := \22\22\0A inner := \22\22\0A sep := \22,\22\0A colon := \22:\22\0A if indent.len > 0 {\0A nl = \22\5Cn\22\0A inner = pad + indent\0A colon = \22: \22\0A }\0A match j.kind {\0A Null -> w.out.push(\22null\22)\0A Bool -> {\0A if j.flag {\0A w.out.push(\22true\22)\0A } else {\0A w.out.push(\22false\22)\0A }\0A }\0A Number -> w.out.push(number_text(j.num))\0A Text -> w.out.push(quote(j.text))\0A List -> {\0A if j.items.len == 0 {\0A w.out.push(\22[]\22)\0A return\0A }\0A w.out.push(\22[\22 + nl)\0A for i, item in j.items {\0A if i > 0 {\0A w.out.push(sep + nl)\0A }\0A w.out.push(inner)\0A write(item, indent, inner, w)\0A }\0A w.out.push(nl + pad + \22]\22)\0A }\0A Object -> {\0A if j.items.len == 0 {\0A w.out.push(\22{}\22)\0A return\0A }\0A w.out.push(\22{\22 + nl)\0A for i, item in j.items {\0A if i > 0 {\0A w.out.push(sep + nl)\0A }\0A w.out.push(inner + quote(j.keys[i]) + colon)\0A write(item, indent, inner, w)\0A }\0A w.out.push(nl + pad + \22}\22)\0A }\0A }\0A}\0A\0A// the value as text on one line\0Afn stringify(Json j) -> str {\0A w := Writer()\0A write(j, \22\22, \22\22, addr(w))\0A return w.out.join(\22\22)\0A}\0A\0A// the value as text over several lines, indented by two spaces\0Afn pretty(Json j) -> str {\0A w := Writer()\0A write(j, \22 \22, \22\22, addr(w))\0A return w.out.join(\22\22)\0A}\0A\0A// ---------- reading ----------\0A\0Astruct Reader {\0A str src\0A int i\0A}\0A\0A// the line and column of a position, for a message\0Afn where(ptr[Reader] r) -> str {\0A line := 1\0A col := 1\0A for k in 0..r.i {\0A if k < r.src.len && r.src[k] == '\5Cn' {\0A line += 1\0A col = 1\0A } else {\0A col += 1\0A }\0A }\0A return \22line \22 + str(line) + \22, column \22 + str(col)\0A}\0A\0Afn peek(ptr[Reader] r) -> char {\0A if r.i < r.src.len {\0A return r.src[r.i]\0A }\0A return char(0)\0A}\0A\0Afn skip_space(ptr[Reader] r) {\0A while r.i < r.src.len && (r.src[r.i] == ' ' || r.src[r.i] == '\5Cn' || r.src[r.i] == '\5Ct' || r.src[r.i] == '\5Cr') {\0A r.i += 1\0A }\0A}\0A\0Afn unexpected(ptr[Reader] r, str wanted) -> str {\0A if r.i >= r.src.len {\0A return \22json: the text ends where \22 + wanted + \22 should be (\22 + where(r) + \22)\22\0A }\0A return \22json: found '\22 + str(r.src[r.i]) + \22' where \22 + wanted + \22 should be (\22 + where(r) + \22)\22\0A}\0A\0A// does `word` come next?\0Afn comes(ptr[Reader] r, str word) -> bool {\0A return r.src.len - r.i >= word.len && r.src.sub(r.i, r.i + word.len) == word\0A}\0A\0Afn expect_word(ptr[Reader] r, str word) -> ! {\0A if !comes(r, word) {\0A return error(unexpected(r, \22'\22 + word + \22'\22))\0A }\0A r.i += word.len\0A}\0A\0Afn hex_value(char c) -> int {\0A if c >= '0' && c <= '9' {\0A return int(c) - int('0')\0A }\0A if c >= 'a' && c <= 'f' {\0A return int(c) - int('a') + 10\0A }\0A if c >= 'A' && c <= 'F' {\0A return int(c) - int('A') + 10\0A }\0A return -1\0A}\0A\0A// a code point as UTF-8\0Afn utf8(int cp) -> str {\0A []u8 b\0A if cp < 128 {\0A b.push(u8(cp))\0A } else if cp < 2048 {\0A b.push(u8(192 + cp / 64))\0A b.push(u8(128 + cp % 64))\0A } else if cp < 65536 {\0A b.push(u8(224 + cp / 4096))\0A b.push(u8(128 + (cp / 64) % 64))\0A b.push(u8(128 + cp % 64))\0A } else {\0A b.push(u8(240 + cp / 262144))\0A b.push(u8(128 + (cp / 4096) % 64))\0A b.push(u8(128 + (cp / 64) % 64))\0A b.push(u8(128 + cp % 64))\0A }\0A return str(b)\0A}\0A\0Afn read_hex4(ptr[Reader] r) -> int! {\0A n := 0\0A for k in 0..4 {\0A if r.i >= r.src.len || hex_value(r.src[r.i]) < 0 {\0A return error(unexpected(r, \22a hexadecimal digit\22))\0A }\0A n = n * 16 + hex_value(r.src[r.i])\0A r.i += 1\0A }\0A return n\0A}\0A\0Afn read_string(ptr[Reader] r) -> str! {\0A r.i += 1 // the opening quote\0A []str parts\0A start := r.i\0A while true {\0A if r.i >= r.src.len {\0A return error(\22json: a text is never closed (\22 + where(r) + \22)\22)\0A }\0A c := r.src[r.i]\0A if c == '\22' {\0A parts.push(r.src.sub(start, r.i))\0A r.i += 1\0A return parts.join(\22\22)\0A }\0A if int(c) < 32 {\0A return error(\22json: a line break or control character inside a text (\22 + where(r) + \22)\22)\0A }\0A if c != '\5C\5C' {\0A r.i += 1\0A continue\0A }\0A parts.push(r.src.sub(start, r.i))\0A r.i += 1\0A e := peek(r)\0A r.i += 1\0A if e == 'n' {\0A parts.push(\22\5Cn\22)\0A } else if e == 't' {\0A parts.push(\22\5Ct\22)\0A } else if e == 'r' {\0A parts.push(\22\5Cr\22)\0A } else if e == 'b' {\0A parts.push(utf8(8))\0A } else if e == 'f' {\0A parts.push(utf8(12))\0A } else if e == '\22' || e == '\5C\5C' || e == '/' {\0A parts.push(str(e))\0A } else if e == 'u' {\0A cp := try read_hex4(r)\0A // a pair of \F0\9F\98\80 stands for one character above U+FFFF\0A if cp >= 55296 && cp < 56320 && comes(r, \22\5C\5Cu\22) {\0A r.i += 2\0A low := try read_hex4(r)\0A cp = 65536 + (cp - 55296) * 1024 + (low - 56320)\0A }\0A parts.push(utf8(cp))\0A } else {\0A return error(\22json: unknown escape \5C\5C\22 + str(e) + \22 in a text (\22 + where(r) + \22)\22)\0A }\0A start = r.i\0A }\0A}\0A\0Afn read_number(ptr[Reader] r) -> Json! {\0A start := r.i\0A if peek(r) == '-' {\0A r.i += 1\0A }\0A while r.i < r.src.len && ((r.src[r.i] >= '0' && r.src[r.i] <= '9') || r.src[r.i] == '.' || r.src[r.i] == 'e' || r.src[r.i] == 'E' || r.src[r.i] == '+' || r.src[r.i] == '-') {\0A r.i += 1\0A }\0A n := float(r.src.sub(start, r.i)) or {\0A r.i = start\0A return error(unexpected(r, \22a number\22))\0A }\0A return new_number(n)\0A}\0A\0Afn read_value(ptr[Reader] r) -> Json! {\0A skip_space(r)\0A c := peek(r)\0A if r.i >= r.src.len {\0A return error(unexpected(r, \22a value\22))\0A }\0A if c == '{' {\0A obj := new_object()\0A r.i += 1\0A skip_space(r)\0A if peek(r) == '}' {\0A r.i += 1\0A return obj\0A }\0A while true {\0A skip_space(r)\0A if peek(r) != '\22' {\0A return error(unexpected(r, \22a key in quotes\22))\0A }\0A key := try read_string(r)\0A skip_space(r)\0A if peek(r) != ':' {\0A return error(unexpected(r, \22':'\22))\0A }\0A r.i += 1\0A v := try read_value(r)\0A obj.set(key, v)\0A skip_space(r)\0A if peek(r) == ',' {\0A r.i += 1\0A continue\0A }\0A if peek(r) == '}' {\0A r.i += 1\0A return obj\0A }\0A return error(unexpected(r, \22',' or '}'\22))\0A }\0A }\0A if c == '[' {\0A list := new_list()\0A r.i += 1\0A skip_space(r)\0A if peek(r) == ']' {\0A r.i += 1\0A return list\0A }\0A while true {\0A v := try read_value(r)\0A list.push(v)\0A skip_space(r)\0A if peek(r) == ',' {\0A r.i += 1\0A continue\0A }\0A if peek(r) == ']' {\0A r.i += 1\0A return list\0A }\0A return error(unexpected(r, \22',' or ']'\22))\0A }\0A }\0A if c == '\22' {\0A s := try read_string(r)\0A return new_text(s)\0A }\0A if c == 't' {\0A try expect_word(r, \22true\22)\0A return new_bool(true)\0A }\0A if c == 'f' {\0A try expect_word(r, \22false\22)\0A return new_bool(false)\0A }\0A if c == 'n' {\0A try expect_word(r, \22null\22)\0A return new_null()\0A }\0A if c == '-' || (c >= '0' && c <= '9') {\0A return try read_number(r)\0A }\0A return error(unexpected(r, \22a value\22))\0A}\0A\0A// the JSON in `text`; an error with the line and column where it went wrong\0Afn parse(str text) -> Json! {\0A r := Reader(src: text)\0A v := try read_value(addr(r))\0A skip_space(addr(r))\0A if r.i < r.src.len {\0A return error(unexpected(addr(r), \22the end of the text\22))\0A }\0A return v\0A}\0A\00" +@.str.7539 = private unnamed_addr constant [2847 x i8] c"// Paths, as text. Elements are separated by \22/\22.\0A//\0A// import path\0A// path.join(\22a\22, \22b.txt\22) a/b.txt\0A// path.base(\22/tmp/x/a.tar.gz\22) a.tar.gz path.stem(...) a.tar path.ext(...) .gz\0A// path.dir(\22/tmp/x/a.txt\22) /tmp/x\0A// path.clean(\22a//b/../c/./d\22) a/c/d\0A\0A// a and b with one separator between; an absolute b replaces a\0Afn join(str a, str b) -> str {\0A if a.len == 0 {\0A return b\0A }\0A if b.len == 0 {\0A return a\0A }\0A if b[0] == '/' {\0A return b\0A }\0A if a[a.len - 1] == '/' {\0A return a + b\0A }\0A return a + \22/\22 + b\0A}\0A\0Afn is_abs(str p) -> bool {\0A return p.len > 0 && p[0] == '/'\0A}\0A\0A// the last element: \22a/b.txt\22 -> \22b.txt\22, \22a/b/\22 -> \22b\22, \22\22 -> \22.\22, \22/\22 -> \22/\22\0Afn base(str p) -> str {\0A if p.len == 0 {\0A return \22.\22\0A }\0A end := p.len\0A while end > 1 && p[end - 1] == '/' {\0A end -= 1\0A }\0A if end == 1 && p[0] == '/' {\0A return \22/\22\0A }\0A start := end\0A while start > 0 && p[start - 1] != '/' {\0A start -= 1\0A }\0A return p.sub(start, end)\0A}\0A\0A// everything before the last element: \22a/b.txt\22 -> \22a\22, \22b.txt\22 -> \22.\22, \22/b\22 -> \22/\22\0Afn dir(str p) -> str {\0A end := p.len\0A while end > 1 && p[end - 1] == '/' {\0A end -= 1\0A }\0A i := end\0A while i > 0 && p[i - 1] != '/' {\0A i -= 1\0A }\0A if i == 0 {\0A return \22.\22\0A }\0A while i > 1 && p[i - 1] == '/' {\0A i -= 1\0A }\0A return p.sub(0, i)\0A}\0A\0A// the part of the last element from its last dot: \22a.tar.gz\22 -> \22.gz\22; \22\22 when there is none\0Afn ext(str p) -> str {\0A b := base(p)\0A i := b.len\0A while i > 0 && b[i - 1] != '.' {\0A i -= 1\0A }\0A if i <= 1 { // no dot, or a name that only starts with one (.bashrc)\0A return \22\22\0A }\0A return b.sub(i - 1, b.len)\0A}\0A\0A// the last element without its extension\0Afn stem(str p) -> str {\0A b := base(p)\0A e := ext(p)\0A return b.sub(0, b.len - e.len)\0A}\0A\0A// the elements of a path: \22/a/b/c\22 -> [\22a\22, \22b\22, \22c\22]\0Afn parts(str p) -> []str {\0A []str out\0A for piece in p.split(\22/\22) {\0A if piece.len > 0 {\0A out.push(piece)\0A }\0A }\0A return out\0A}\0A\0A// the shortest path with the same meaning: no \22//\22, no \22.\22, and \22..\22 resolved where it can be\0Afn clean(str p) -> str {\0A if p.len == 0 {\0A return \22.\22\0A }\0A abs := is_abs(p)\0A []str out\0A for piece in parts(p) {\0A if piece == \22.\22 {\0A continue\0A }\0A if piece == \22..\22 {\0A if out.len > 0 && out[out.len - 1] != \22..\22 {\0A out.pop()\0A } else if !abs {\0A out.push(\22..\22)\0A }\0A continue\0A }\0A out.push(piece)\0A }\0A joined := out.join(\22/\22)\0A if abs {\0A return \22/\22 + joined\0A }\0A if joined.len == 0 {\0A return \22.\22\0A }\0A return joined\0A}\0A\00" +@.str.7540 = private unnamed_addr constant [1407 x i8] c"// Programs: run a command, read what it printed, look at the environment.\0A//\0A// import proc\0A// code := proc.run(\22make\22) the exit code; what the command prints goes to the screen\0A// text := try proc.output(\22git describe\22) what the command printed; an error if it failed\0A// proc.env(\22HOME\22, \22/\22) an environment variable, or the second value if it is not set\0Aimport \22stdlib.h\22\0Aimport \22unistd.h\22\0Aimport \22time.h\22\0A\0A// run a command; its output goes to the screen. Gives its exit code.\0Afn run(str command) -> int {\0A return shell(command)\0A}\0A\0A// run a command and give what it printed. Fails, with its output as the message, if it exits with an error.\0Afn output(str command) -> str! {\0A tmp := \22/tmp/finch_out_\22 + str(getpid()) + \22_\22 + str(int(time(null)))\0A code := shell(\22(\22 + command + \22) > '\22 + tmp + \22' 2>&1\22)\0A text := read_file(tmp) or \22\22\0A delete_file(tmp)\0A if code != 0 {\0A return error(\22'\22 + command + \22' exited with code \22 + str(code) + \22: \22 + text.trim())\0A }\0A return text\0A}\0A\0Afn env(str name, str fallback) -> str {\0A v := getenv(name)\0A if v.len == 0 {\0A return fallback\0A }\0A return v\0A}\0A\0Afn pid() -> int {\0A return int(getpid())\0A}\0A\0A// the folder the program is running in\0Afn cwd() -> str {\0A []char buf\0A for i in 0..4096 {\0A buf.push(char(0))\0A }\0A getcwd(buf.ptr, 4096)\0A return str(buf.ptr)\0A}\0A\00" +@.str.7541 = private unnamed_addr constant [996 x i8] c"// Programs, for Windows. The same functions as proc.fch (that file is for Linux and macOS).\0Aimport \22stdlib.h\22\0Aimport \22process.h\22\0Aimport \22direct.h\22\0Aimport \22time.h\22\0A\0Afn run(str command) -> int {\0A return shell(command)\0A}\0A\0Afn output(str command) -> str! {\0A tmp := proc_env(\22TEMP\22, \22.\22) + \22\5C\5Cfinch_out_\22 + str(getpid()) + \22_\22 + str(int(time(null)))\0A code := shell(command + \22 > \5C\22\22 + tmp + \22\5C\22 2>&1\22)\0A text := read_file(tmp) or \22\22\0A delete_file(tmp)\0A if code != 0 {\0A return error(\22'\22 + command + \22' exited with code \22 + str(code) + \22: \22 + text.trim())\0A }\0A return text\0A}\0A\0Afn proc_env(str name, str fallback) -> str {\0A v := getenv(name)\0A if v.len == 0 {\0A return fallback\0A }\0A return v\0A}\0A\0Afn env(str name, str fallback) -> str {\0A return proc_env(name, fallback)\0A}\0A\0Afn pid() -> int {\0A return int(getpid())\0A}\0A\0Afn cwd() -> str {\0A []char buf\0A for i in 0..4096 {\0A buf.push(char(0))\0A }\0A getcwd(buf.ptr, 4096)\0A return str(buf.ptr)\0A}\0A\00" +@.str.7542 = private unnamed_addr constant [2540 x i8] c"// Time: the clock, sleeping, and dates.\0A//\0A// import time\0A// start := time.millis() milliseconds from a clock that only goes forward (to measure with)\0A// time.sleep(250) wait a quarter of a second\0A// time.now() seconds since 1970-01-01 00:00 UTC\0A// d := time.date(time.now()) the parts: d.year, d.month, d.day, d.hour, d.minute, d.second\0A// time.format(time.now(), \22%Y-%m-%d %H:%M\22) as text, in the computer's time zone\0Aimport \22time.h\22\0A\0Astruct Date {\0A int year\0A int month // 1 to 12\0A int day // 1 to 31\0A int hour\0A int minute\0A int second\0A int weekday // 0 is Sunday\0A int yearday // 1 to 366\0A}\0A\0A// seconds since 1970-01-01 00:00 UTC\0Afn now() -> int {\0A return int(time(null))\0A}\0A\0A// milliseconds on a clock that only goes forward: for measuring how long something took\0Afn millis() -> int {\0A timespec ts\0A clock_gettime(CLOCK_MONOTONIC, addr(ts))\0A return int(ts.tv_sec) * 1000 + int(ts.tv_nsec) / 1000000\0A}\0A\0Afn sleep(int ms) {\0A timespec ts\0A ts.tv_sec = ms / 1000\0A ts.tv_nsec = (ms % 1000) * 1000000\0A nanosleep(addr(ts), null)\0A}\0A\0Afn parts(tm t) -> Date {\0A return Date(year: int(t.tm_year) + 1900, month: int(t.tm_mon) + 1, day: int(t.tm_mday), hour: int(t.tm_hour),\0A minute: int(t.tm_min), second: int(t.tm_sec), weekday: int(t.tm_wday), yearday: int(t.tm_yday) + 1)\0A}\0A\0A// the date and time of a moment, in UTC\0Afn date(int unix) -> Date {\0A tm t\0A i64 stamp = unix\0A gmtime_r(addr(stamp), addr(t))\0A return parts(t)\0A}\0A\0A// the date and time of a moment, in the computer's time zone\0Afn local(int unix) -> Date {\0A tm t\0A i64 stamp = unix\0A localtime_r(addr(stamp), addr(t))\0A return parts(t)\0A}\0A\0A// a moment as text, in the computer's time zone: %Y year, %m month, %d day, %H hour, %M minute, %S second\0A// (the rest of C's strftime works too: %A weekday name, %B month name, ...)\0Afn format(int unix, str pattern) -> str {\0A tm t\0A i64 stamp = unix\0A localtime_r(addr(stamp), addr(t))\0A []char buf\0A for i in 0..256 {\0A buf.push(char(0))\0A }\0A strftime(buf.ptr, 256, pattern, addr(t))\0A return str(buf.ptr)\0A}\0A\0A// the number of days in a month (month is 1 to 12)\0Afn days_in_month(int year, int month) -> int {\0A if month == 2 {\0A if year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) {\0A return 29\0A }\0A return 28\0A }\0A if month == 4 || month == 6 || month == 9 || month == 11 {\0A return 30\0A }\0A return 31\0A}\0A\00" +@.str.7543 = private unnamed_addr constant [1793 x i8] c"// Time, for Windows. The same functions as time.fch (that file is for Linux and macOS).\0Aimport \22time.h\22\0Aimport \22finch_win.h\22\0A\0Astruct Date {\0A int year\0A int month // 1 to 12\0A int day // 1 to 31\0A int hour\0A int minute\0A int second\0A int weekday // 0 is Sunday\0A int yearday // 1 to 366\0A}\0A\0Afn now() -> int {\0A return int(time(null))\0A}\0A\0A// milliseconds on a clock that only goes forward (the performance counter: GetTickCount64 ticks every 15 ms)\0Afn millis() -> int {\0A i64 count = 0\0A i64 freq = 1\0A QueryPerformanceFrequency(addr(freq))\0A QueryPerformanceCounter(addr(count))\0A return int(count / freq) * 1000 + int(count % freq) * 1000 / int(freq)\0A}\0A\0Afn sleep(int ms) {\0A Sleep(u32(ms))\0A}\0A\0Afn parts(tm t) -> Date {\0A return Date(year: int(t.tm_year) + 1900, month: int(t.tm_mon) + 1, day: int(t.tm_mday), hour: int(t.tm_hour),\0A minute: int(t.tm_min), second: int(t.tm_sec), weekday: int(t.tm_wday), yearday: int(t.tm_yday) + 1)\0A}\0A\0Afn date(int unix) -> Date {\0A tm t\0A i64 stamp = unix\0A _gmtime64_s(addr(t), addr(stamp))\0A return parts(t)\0A}\0A\0Afn local(int unix) -> Date {\0A tm t\0A i64 stamp = unix\0A _localtime64_s(addr(t), addr(stamp))\0A return parts(t)\0A}\0A\0Afn format(int unix, str pattern) -> str {\0A tm t\0A i64 stamp = unix\0A _localtime64_s(addr(t), addr(stamp))\0A []char buf\0A for i in 0..256 {\0A buf.push(char(0))\0A }\0A strftime(buf.ptr, 256, pattern, addr(t))\0A return str(buf.ptr)\0A}\0A\0Afn days_in_month(int year, int month) -> int {\0A if month == 2 {\0A if year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) {\0A return 29\0A }\0A return 28\0A }\0A if month == 4 || month == 6 || month == 9 || month == 11 {\0A return 30\0A }\0A return 31\0A}\0A\00" +@.str.7544 = private unnamed_addr constant [366 x i8] c"/* The Windows functions std/time_windows.fch needs. Declared here, not by including :\0A libclang can't parse that header with MinGW's intrinsics. Both are in kernel32. */\0Aunsigned long long GetTickCount64(void);\0Avoid Sleep(unsigned long milliseconds);\0Aint QueryPerformanceCounter(long long *count);\0Aint QueryPerformanceFrequency(long long *frequency);\0A\00" declare void @finch_panic(ptr, i64, ptr) noreturn cold declare void @finch_panic_index(ptr, i64, i64, i64) noreturn cold @@ -17114,6 +17324,9 @@ entry: %a135 = alloca { ptr, i64, i64 }, align 16 %a145 = alloca { ptr, i64, i64 }, align 16 %a146 = alloca { ptr, i64, i64 }, align 16 + %a166 = alloca %S.ast.Node, align 16 + %a170 = alloca %S.ast.Node, align 16 + %a171 = alloca %S.ast.Node, align 16 store ptr %p0, ptr %a1 store %S.ast.Program zeroinitializer, ptr %a2 br label %while.cond1351 @@ -17376,30 +17589,53 @@ else1392: %t163 = call i1 @finch.parser.at(ptr %t162, { ptr, i64, i64 } { ptr @.str.757, i64 4, i64 0 }) br i1 %t163, label %then1394, label %else1395 then1394: - %t164 = getelementptr inbounds %S.ast.Program, ptr %a2, i32 0, i32 7 - %t165 = getelementptr inbounds { ptr, i64, i64 }, ptr %t164, i32 0, i32 1 - %t166 = load ptr, ptr %a1 - %t167 = call %S.ast.Node @finch.parser.parseEnum(ptr %t166) - %t168 = load i64, ptr %t165 - %t169 = add i64 %t168, 1 - call void @finch_arr_reserve(ptr %t164, i64 %t169, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) - %t170 = load ptr, ptr %t164 - %t171 = getelementptr inbounds %S.ast.Node, ptr %t170, i64 %t168 - store %S.ast.Node %t167, ptr %t171 - store i64 %t169, ptr %t165 + %t164 = load ptr, ptr %a1 + %t165 = call %S.ast.Node @finch.parser.parseEnum(ptr %t164) + store %S.ast.Node %t165, ptr %a166 + %t167 = getelementptr inbounds %S.ast.Program, ptr %a2, i32 0, i32 7 + %t168 = getelementptr inbounds { ptr, i64, i64 }, ptr %t167, i32 0, i32 1 + %t169 = load %S.ast.Node, ptr %a166 + store %S.ast.Node %t169, ptr %a170 + call void @finch.copy.S_ast_Node(ptr %a171, ptr %a170) + %t172 = load %S.ast.Node, ptr %a171 + %t173 = load i64, ptr %t168 + %t174 = add i64 %t173, 1 + call void @finch_arr_reserve(ptr %t167, i64 %t174, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) + %t175 = load ptr, ptr %t167 + %t176 = getelementptr inbounds %S.ast.Node, ptr %t175, i64 %t173 + store %S.ast.Node %t172, ptr %t176 + store i64 %t174, ptr %t168 + %t177 = getelementptr inbounds %S.ast.Node, ptr %a166, i32 0, i32 6 + %t178 = load i1, ptr %t177 + br i1 %t178, label %then1397, label %endif1399 +then1397: + %t179 = getelementptr inbounds %S.ast.Program, ptr %a2, i32 0, i32 6 + %t180 = getelementptr inbounds { ptr, i64, i64 }, ptr %t179, i32 0, i32 1 + %t181 = load %S.ast.Node, ptr %a166 + %t182 = call %S.ast.Node @finch.parser.sumStruct(%S.ast.Node %t181) + %t183 = load i64, ptr %t180 + %t184 = add i64 %t183, 1 + call void @finch_arr_reserve(ptr %t179, i64 %t184, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) + %t185 = load ptr, ptr %t179 + %t186 = getelementptr inbounds %S.ast.Node, ptr %t185, i64 %t183 + store %S.ast.Node %t182, ptr %t186 + store i64 %t184, ptr %t180 + br label %endif1399 +endif1399: + call void @finch.drop.S_ast_Node(ptr %a166) br label %endif1396 else1395: - %t172 = getelementptr inbounds %S.ast.Program, ptr %a2, i32 0, i32 8 - %t173 = getelementptr inbounds { ptr, i64, i64 }, ptr %t172, i32 0, i32 1 - %t174 = load ptr, ptr %a1 - %t175 = call %S.ast.Node @finch.parser.parseFn(ptr %t174) - %t176 = load i64, ptr %t173 - %t177 = add i64 %t176, 1 - call void @finch_arr_reserve(ptr %t172, i64 %t177, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) - %t178 = load ptr, ptr %t172 - %t179 = getelementptr inbounds %S.ast.Node, ptr %t178, i64 %t176 - store %S.ast.Node %t175, ptr %t179 - store i64 %t177, ptr %t173 + %t187 = getelementptr inbounds %S.ast.Program, ptr %a2, i32 0, i32 8 + %t188 = getelementptr inbounds { ptr, i64, i64 }, ptr %t187, i32 0, i32 1 + %t189 = load ptr, ptr %a1 + %t190 = call %S.ast.Node @finch.parser.parseFn(ptr %t189) + %t191 = load i64, ptr %t188 + %t192 = add i64 %t191, 1 + call void @finch_arr_reserve(ptr %t187, i64 %t192, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) + %t193 = load ptr, ptr %t187 + %t194 = getelementptr inbounds %S.ast.Node, ptr %t193, i64 %t191 + store %S.ast.Node %t190, ptr %t194 + store i64 %t192, ptr %t188 br label %endif1396 endif1396: br label %endif1393 @@ -17410,8 +17646,8 @@ endif1367: endif1356: br label %while.cond1351 while.end1353: - %t180 = load %S.ast.Program, ptr %a2 - ret %S.ast.Program %t180 + %t195 = load %S.ast.Program, ptr %a2 + ret %S.ast.Program %t195 } define internal %S.ast.Node @finch.parser.parseEnum(ptr %p0) { @@ -17430,28 +17666,70 @@ entry: %a37 = alloca { ptr, i64, i64 }, align 16 %a39 = alloca %S.lexer.Token, align 16 %a42 = alloca { ptr, i64, i64 }, align 16 - %a45 = alloca { ptr, i64, i64 }, align 16 - %a49 = alloca { ptr, i64, i64 }, align 16 - %a54 = alloca { ptr, i64, i64 }, align 16 - %a55 = alloca { ptr, i64, i64 }, align 16 - %a57 = alloca %S.lexer.Token, align 16 - %a58 = alloca { ptr, i64, i64 }, align 16 - %a59 = alloca { ptr, i64, i64 }, align 16 - %a60 = alloca { ptr, i64, i64 }, align 16 - %a61 = alloca { ptr, i64, i64 }, align 16 - %a65 = alloca { ptr, i64, i64 }, align 16 - %a69 = alloca %S.ast.Node, align 16 - %a70 = alloca %S.ast.Node, align 16 - %a82 = alloca %S.lexer.Token, align 16 - %a92 = alloca { ptr, i64, i64 }, align 16 + %a51 = alloca %S.ast.Node, align 16 + %a56 = alloca %S.ast.Type, align 16 + %a60 = alloca %S.ast.Node, align 16 + %a61 = alloca %S.ast.Node, align 16 + %a72 = alloca %S.lexer.Token, align 16 + %a82 = alloca { ptr, i64, i64 }, align 16 + %a83 = alloca { ptr, i64, i64 }, align 16 + %a84 = alloca { ptr, i64, i64 }, align 16 + %a86 = alloca { ptr, i64, i64 }, align 16 + %a87 = alloca { ptr, i64, i64 }, align 16 + %a88 = alloca { ptr, i64, i64 }, align 16 + %a89 = alloca { ptr, i64, i64 }, align 16 %a93 = alloca { ptr, i64, i64 }, align 16 %a94 = alloca { ptr, i64, i64 }, align 16 + %a95 = alloca { ptr, i64, i64 }, align 16 %a96 = alloca { ptr, i64, i64 }, align 16 - %a97 = alloca { ptr, i64, i64 }, align 16 %a98 = alloca { ptr, i64, i64 }, align 16 %a99 = alloca { ptr, i64, i64 }, align 16 - %a101 = alloca %S.lexer.Token, align 16 - %a102 = alloca { ptr, i64, i64 }, align 16 + %a100 = alloca { ptr, i64, i64 }, align 16 + %a101 = alloca { ptr, i64, i64 }, align 16 + %a103 = alloca %S.lexer.Token, align 16 + %a104 = alloca { ptr, i64, i64 }, align 16 + %a112 = alloca %S.lexer.Token, align 16 + %a113 = alloca { ptr, i64, i64 }, align 16 + %a117 = alloca { ptr, i64, i64 }, align 16 + %a122 = alloca { ptr, i64, i64 }, align 16 + %a123 = alloca { ptr, i64, i64 }, align 16 + %a125 = alloca %S.lexer.Token, align 16 + %a126 = alloca { ptr, i64, i64 }, align 16 + %a127 = alloca { ptr, i64, i64 }, align 16 + %a128 = alloca { ptr, i64, i64 }, align 16 + %a129 = alloca { ptr, i64, i64 }, align 16 + %a133 = alloca { ptr, i64, i64 }, align 16 + %a137 = alloca %S.ast.Node, align 16 + %a138 = alloca %S.ast.Node, align 16 + %a150 = alloca %S.lexer.Token, align 16 + %a160 = alloca { ptr, i64, i64 }, align 16 + %a161 = alloca { ptr, i64, i64 }, align 16 + %a162 = alloca { ptr, i64, i64 }, align 16 + %a164 = alloca { ptr, i64, i64 }, align 16 + %a165 = alloca { ptr, i64, i64 }, align 16 + %a166 = alloca { ptr, i64, i64 }, align 16 + %a167 = alloca { ptr, i64, i64 }, align 16 + %a169 = alloca %S.lexer.Token, align 16 + %a170 = alloca { ptr, i64, i64 }, align 16 + %a174 = alloca i64, align 16 + %a182 = alloca %S.ast.Node, align 16 + %a192 = alloca { ptr, i64, i64 }, align 16 + %a193 = alloca { ptr, i64, i64 }, align 16 + %a194 = alloca { ptr, i64, i64 }, align 16 + %a196 = alloca { ptr, i64, i64 }, align 16 + %a197 = alloca { ptr, i64, i64 }, align 16 + %a198 = alloca { ptr, i64, i64 }, align 16 + %a199 = alloca { ptr, i64, i64 }, align 16 + %a203 = alloca { ptr, i64, i64 }, align 16 + %a204 = alloca { ptr, i64, i64 }, align 16 + %a205 = alloca { ptr, i64, i64 }, align 16 + %a206 = alloca { ptr, i64, i64 }, align 16 + %a208 = alloca { ptr, i64, i64 }, align 16 + %a209 = alloca { ptr, i64, i64 }, align 16 + %a210 = alloca { ptr, i64, i64 }, align 16 + %a211 = alloca { ptr, i64, i64 }, align 16 + %a213 = alloca %S.lexer.Token, align 16 + %a214 = alloca { ptr, i64, i64 }, align 16 store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 %t3 = call %S.ast.Node @finch.parser.node(ptr %t2, { ptr, i64, i64 } { ptr @.str.758, i64 4, i64 0 }) @@ -17477,25 +17755,25 @@ entry: %t19 = call %S.lexer.Token @finch.parser.expect(ptr %t18, { ptr, i64, i64 } { ptr @.str.763, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.764, i64 3, i64 0 }) store %S.lexer.Token %t19, ptr %a20 call void @finch.drop.S_lexer_Token(ptr %a20) - br label %while.cond1397 -while.cond1397: + br label %while.cond1400 +while.cond1400: %t21 = load ptr, ptr %a1 %t22 = call i1 @finch.parser.at(ptr %t21, { ptr, i64, i64 } { ptr @.str.765, i64 1, i64 0 }) %t23 = xor i1 %t22, true - br i1 %t23, label %while.body1398, label %while.end1399 -while.body1398: + br i1 %t23, label %while.body1401, label %while.end1402 +while.body1401: %t24 = load ptr, ptr %a1 %t25 = call i1 @finch.parser.at(ptr %t24, { ptr, i64, i64 } { ptr @.str.766, i64 3, i64 0 }) - br i1 %t25, label %then1400, label %endif1402 -then1400: + br i1 %t25, label %then1403, label %endif1405 +then1403: %t26 = load ptr, ptr %a1 %t27 = load ptr, ptr %a1 %t28 = call %S.lexer.Token @finch.parser.cur(ptr %t27) call void @finch.parser.fail(ptr %t26, %S.lexer.Token %t28, { ptr, i64, i64 } { ptr @.str.767, i64 37, i64 0 }) store %S.lexer.Token %t28, ptr %a29 call void @finch.drop.S_lexer_Token(ptr %a29) - br label %endif1402 -endif1402: + br label %endif1405 +endif1405: %t30 = load ptr, ptr %a1 %t31 = call %S.ast.Node @finch.parser.node(ptr %t30, { ptr, i64, i64 } { ptr @.str.768, i64 7, i64 0 }) store %S.ast.Node %t31, ptr %a32 @@ -17514,101 +17792,462 @@ endif1402: call void @finch_str_drop(ptr %a42) %t43 = load ptr, ptr %a1 %t44 = call i1 @finch.parser.accept(ptr %t43, { ptr, i64, i64 } { ptr @.str.771, i64 1, i64 0 }) - br i1 %t44, label %then1403, label %endif1405 -then1403: - store { ptr, i64, i64 } { ptr @.str.772, i64 0, i64 0 }, ptr %a45 - %t46 = load ptr, ptr %a1 - %t47 = call i1 @finch.parser.accept(ptr %t46, { ptr, i64, i64 } { ptr @.str.773, i64 1, i64 0 }) - br i1 %t47, label %then1406, label %endif1408 + br i1 %t44, label %then1406, label %endif1408 then1406: - %t48 = load { ptr, i64, i64 }, ptr %a45 - store { ptr, i64, i64 } { ptr @.str.774, i64 1, i64 0 }, ptr %a45 - store { ptr, i64, i64 } %t48, ptr %a49 - call void @finch_str_drop(ptr %a49) + %t45 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 6 + store i1 true, ptr %t45 + br label %while.cond1409 +while.cond1409: + %t46 = load ptr, ptr %a1 + %t47 = call i1 @finch.parser.at(ptr %t46, { ptr, i64, i64 } { ptr @.str.772, i64 1, i64 0 }) + %t48 = xor i1 %t47, true + br i1 %t48, label %while.body1410, label %while.end1411 +while.body1410: + %t49 = load ptr, ptr %a1 + %t50 = call %S.ast.Node @finch.parser.node(ptr %t49, { ptr, i64, i64 } { ptr @.str.773, i64 5, i64 0 }) + store %S.ast.Node %t50, ptr %a51 + %t52 = load ptr, ptr %a1 + %t53 = call %S.ast.Type @finch.parser.parseType(ptr %t52) + %t54 = getelementptr inbounds %S.ast.Node, ptr %a51, i32 0, i32 5 + %t55 = load %S.ast.Type, ptr %t54 + store %S.ast.Type %t53, ptr %t54 + store %S.ast.Type %t55, ptr %a56 + call void @finch.drop.S_ast_Type(ptr %a56) + %t57 = getelementptr inbounds %S.ast.Node, ptr %a32, i32 0, i32 9 + %t58 = getelementptr inbounds { ptr, i64, i64 }, ptr %t57, i32 0, i32 1 + %t59 = load %S.ast.Node, ptr %a51 + store %S.ast.Node %t59, ptr %a60 + call void @finch.copy.S_ast_Node(ptr %a61, ptr %a60) + %t62 = load %S.ast.Node, ptr %a61 + %t63 = load i64, ptr %t58 + %t64 = add i64 %t63, 1 + call void @finch_arr_reserve(ptr %t57, i64 %t64, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) + %t65 = load ptr, ptr %t57 + %t66 = getelementptr inbounds %S.ast.Node, ptr %t65, i64 %t63 + store %S.ast.Node %t62, ptr %t66 + store i64 %t64, ptr %t58 + %t67 = load ptr, ptr %a1 + %t68 = call i1 @finch.parser.accept(ptr %t67, { ptr, i64, i64 } { ptr @.str.774, i64 1, i64 0 }) + %t69 = xor i1 %t68, true + br i1 %t69, label %then1412, label %endif1414 +then1412: + call void @finch.drop.S_ast_Node(ptr %a51) + br label %while.end1411 +endif1414: + call void @finch.drop.S_ast_Node(ptr %a51) + br label %while.cond1409 +while.end1411: + %t70 = load ptr, ptr %a1 + %t71 = call %S.lexer.Token @finch.parser.expect(ptr %t70, { ptr, i64, i64 } { ptr @.str.775, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.776, i64 35, i64 0 }) + store %S.lexer.Token %t71, ptr %a72 + call void @finch.drop.S_lexer_Token(ptr %a72) + %t73 = getelementptr inbounds %S.ast.Node, ptr %a32, i32 0, i32 9 + %t74 = getelementptr inbounds { ptr, i64, i64 }, ptr %t73, i32 0, i32 1 + %t75 = load i64, ptr %t74 + %t76 = icmp eq i64 %t75, 0 + br i1 %t76, label %then1415, label %endif1417 +then1415: + %t77 = load ptr, ptr %a1 + %t78 = load ptr, ptr %a1 + %t79 = call %S.lexer.Token @finch.parser.cur(ptr %t78) + %t80 = getelementptr inbounds %S.ast.Node, ptr %a32, i32 0, i32 1 + %t81 = load { ptr, i64, i64 }, ptr %t80 + store { ptr, i64, i64 } { ptr @.str.777, i64 12, i64 0 }, ptr %a83 + store { ptr, i64, i64 } %t81, ptr %a84 + call void @finch_str_concat(ptr %a82, ptr %a83, ptr %a84) + %t85 = load { ptr, i64, i64 }, ptr %a82 + store { ptr, i64, i64 } %t85, ptr %a87 + store { ptr, i64, i64 } { ptr @.str.778, i64 27, i64 0 }, ptr %a88 + call void @finch_str_concat(ptr %a86, ptr %a87, ptr %a88) + store { ptr, i64, i64 } %t85, ptr %a89 + call void @finch_str_drop(ptr %a89) + %t90 = load { ptr, i64, i64 }, ptr %a86 + %t91 = getelementptr inbounds %S.ast.Node, ptr %a32, i32 0, i32 1 + %t92 = load { ptr, i64, i64 }, ptr %t91 + store { ptr, i64, i64 } %t90, ptr %a94 + store { ptr, i64, i64 } %t92, ptr %a95 + call void @finch_str_concat(ptr %a93, ptr %a94, ptr %a95) + store { ptr, i64, i64 } %t90, ptr %a96 + call void @finch_str_drop(ptr %a96) + %t97 = load { ptr, i64, i64 }, ptr %a93 + store { ptr, i64, i64 } %t97, ptr %a99 + store { ptr, i64, i64 } { ptr @.str.779, i64 20, i64 0 }, ptr %a100 + call void @finch_str_concat(ptr %a98, ptr %a99, ptr %a100) + store { ptr, i64, i64 } %t97, ptr %a101 + call void @finch_str_drop(ptr %a101) + %t102 = load { ptr, i64, i64 }, ptr %a98 + call void @finch.parser.fail(ptr %t77, %S.lexer.Token %t79, { ptr, i64, i64 } %t102) + store %S.lexer.Token %t79, ptr %a103 + call void @finch.drop.S_lexer_Token(ptr %a103) + store { ptr, i64, i64 } %t102, ptr %a104 + call void @finch_str_drop(ptr %a104) + br label %endif1417 +endif1417: br label %endif1408 endif1408: - %t50 = load { ptr, i64, i64 }, ptr %a45 - %t51 = load ptr, ptr %a1 - %t52 = call %S.lexer.Token @finch.parser.expect(ptr %t51, { ptr, i64, i64 } { ptr @.str.775, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.776, i64 30, i64 0 }) - %t53 = extractvalue %S.lexer.Token %t52, 1 - store { ptr, i64, i64 } %t53, ptr %a54 - call void @finch_str_copy(ptr %a55, ptr %a54) - %t56 = load { ptr, i64, i64 }, ptr %a55 - store %S.lexer.Token %t52, ptr %a57 - call void @finch.drop.S_lexer_Token(ptr %a57) - store { ptr, i64, i64 } %t50, ptr %a59 - store { ptr, i64, i64 } %t56, ptr %a60 - call void @finch_str_concat(ptr %a58, ptr %a59, ptr %a60) - store { ptr, i64, i64 } %t56, ptr %a61 - call void @finch_str_drop(ptr %a61) - %t62 = load { ptr, i64, i64 }, ptr %a58 - %t63 = getelementptr inbounds %S.ast.Node, ptr %a32, i32 0, i32 4 - %t64 = load { ptr, i64, i64 }, ptr %t63 - store { ptr, i64, i64 } %t62, ptr %t63 - store { ptr, i64, i64 } %t64, ptr %a65 - call void @finch_str_drop(ptr %a65) - call void @finch_str_drop(ptr %a45) - br label %endif1405 -endif1405: - %t66 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 9 - %t67 = getelementptr inbounds { ptr, i64, i64 }, ptr %t66, i32 0, i32 1 - %t68 = load %S.ast.Node, ptr %a32 - store %S.ast.Node %t68, ptr %a69 - call void @finch.copy.S_ast_Node(ptr %a70, ptr %a69) - %t71 = load %S.ast.Node, ptr %a70 - %t72 = load i64, ptr %t67 - %t73 = add i64 %t72, 1 - call void @finch_arr_reserve(ptr %t66, i64 %t73, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) - %t74 = load ptr, ptr %t66 - %t75 = getelementptr inbounds %S.ast.Node, ptr %t74, i64 %t72 - store %S.ast.Node %t71, ptr %t75 - store i64 %t73, ptr %t67 - %t76 = load ptr, ptr %a1 - %t77 = call i1 @finch.parser.accept(ptr %t76, { ptr, i64, i64 } { ptr @.str.777, i64 1, i64 0 }) - %t78 = xor i1 %t77, true - br i1 %t78, label %then1409, label %endif1411 -then1409: - %t79 = load ptr, ptr %a1 - call void @finch.parser.endOfStatement(ptr %t79) - br label %endif1411 -endif1411: + %t105 = load ptr, ptr %a1 + %t106 = call i1 @finch.parser.accept(ptr %t105, { ptr, i64, i64 } { ptr @.str.780, i64 1, i64 0 }) + br i1 %t106, label %then1418, label %endif1420 +then1418: + %t107 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 6 + %t108 = load i1, ptr %t107 + br i1 %t108, label %then1421, label %endif1423 +then1421: + %t109 = load ptr, ptr %a1 + %t110 = load ptr, ptr %a1 + %t111 = call %S.lexer.Token @finch.parser.cur(ptr %t110) + call void @finch.parser.fail(ptr %t109, %S.lexer.Token %t111, { ptr, i64, i64 } { ptr @.str.781, i64 52, i64 0 }) + store %S.lexer.Token %t111, ptr %a112 + call void @finch.drop.S_lexer_Token(ptr %a112) + br label %endif1423 +endif1423: + store { ptr, i64, i64 } { ptr @.str.782, i64 0, i64 0 }, ptr %a113 + %t114 = load ptr, ptr %a1 + %t115 = call i1 @finch.parser.accept(ptr %t114, { ptr, i64, i64 } { ptr @.str.783, i64 1, i64 0 }) + br i1 %t115, label %then1424, label %endif1426 +then1424: + %t116 = load { ptr, i64, i64 }, ptr %a113 + store { ptr, i64, i64 } { ptr @.str.784, i64 1, i64 0 }, ptr %a113 + store { ptr, i64, i64 } %t116, ptr %a117 + call void @finch_str_drop(ptr %a117) + br label %endif1426 +endif1426: + %t118 = load { ptr, i64, i64 }, ptr %a113 + %t119 = load ptr, ptr %a1 + %t120 = call %S.lexer.Token @finch.parser.expect(ptr %t119, { ptr, i64, i64 } { ptr @.str.785, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.786, i64 30, i64 0 }) + %t121 = extractvalue %S.lexer.Token %t120, 1 + store { ptr, i64, i64 } %t121, ptr %a122 + call void @finch_str_copy(ptr %a123, ptr %a122) + %t124 = load { ptr, i64, i64 }, ptr %a123 + store %S.lexer.Token %t120, ptr %a125 + call void @finch.drop.S_lexer_Token(ptr %a125) + store { ptr, i64, i64 } %t118, ptr %a127 + store { ptr, i64, i64 } %t124, ptr %a128 + call void @finch_str_concat(ptr %a126, ptr %a127, ptr %a128) + store { ptr, i64, i64 } %t124, ptr %a129 + call void @finch_str_drop(ptr %a129) + %t130 = load { ptr, i64, i64 }, ptr %a126 + %t131 = getelementptr inbounds %S.ast.Node, ptr %a32, i32 0, i32 4 + %t132 = load { ptr, i64, i64 }, ptr %t131 + store { ptr, i64, i64 } %t130, ptr %t131 + store { ptr, i64, i64 } %t132, ptr %a133 + call void @finch_str_drop(ptr %a133) + call void @finch_str_drop(ptr %a113) + br label %endif1420 +endif1420: + %t134 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 9 + %t135 = getelementptr inbounds { ptr, i64, i64 }, ptr %t134, i32 0, i32 1 + %t136 = load %S.ast.Node, ptr %a32 + store %S.ast.Node %t136, ptr %a137 + call void @finch.copy.S_ast_Node(ptr %a138, ptr %a137) + %t139 = load %S.ast.Node, ptr %a138 + %t140 = load i64, ptr %t135 + %t141 = add i64 %t140, 1 + call void @finch_arr_reserve(ptr %t134, i64 %t141, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) + %t142 = load ptr, ptr %t134 + %t143 = getelementptr inbounds %S.ast.Node, ptr %t142, i64 %t140 + store %S.ast.Node %t139, ptr %t143 + store i64 %t141, ptr %t135 + %t144 = load ptr, ptr %a1 + %t145 = call i1 @finch.parser.accept(ptr %t144, { ptr, i64, i64 } { ptr @.str.787, i64 1, i64 0 }) + %t146 = xor i1 %t145, true + br i1 %t146, label %then1427, label %endif1429 +then1427: + %t147 = load ptr, ptr %a1 + call void @finch.parser.endOfStatement(ptr %t147) + br label %endif1429 +endif1429: call void @finch.drop.S_ast_Node(ptr %a32) - br label %while.cond1397 -while.end1399: - %t80 = load ptr, ptr %a1 - %t81 = call %S.lexer.Token @finch.parser.next(ptr %t80) - store %S.lexer.Token %t81, ptr %a82 - call void @finch.drop.S_lexer_Token(ptr %a82) - %t83 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 9 - %t84 = getelementptr inbounds { ptr, i64, i64 }, ptr %t83, i32 0, i32 1 + br label %while.cond1400 +while.end1402: + %t148 = load ptr, ptr %a1 + %t149 = call %S.lexer.Token @finch.parser.next(ptr %t148) + store %S.lexer.Token %t149, ptr %a150 + call void @finch.drop.S_lexer_Token(ptr %a150) + %t151 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 9 + %t152 = getelementptr inbounds { ptr, i64, i64 }, ptr %t151, i32 0, i32 1 + %t153 = load i64, ptr %t152 + %t154 = icmp eq i64 %t153, 0 + br i1 %t154, label %then1430, label %endif1432 +then1430: + %t155 = load ptr, ptr %a1 + %t156 = load ptr, ptr %a1 + %t157 = call %S.lexer.Token @finch.parser.cur(ptr %t156) + %t158 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 1 + %t159 = load { ptr, i64, i64 }, ptr %t158 + store { ptr, i64, i64 } { ptr @.str.788, i64 9, i64 0 }, ptr %a161 + store { ptr, i64, i64 } %t159, ptr %a162 + call void @finch_str_concat(ptr %a160, ptr %a161, ptr %a162) + %t163 = load { ptr, i64, i64 }, ptr %a160 + store { ptr, i64, i64 } %t163, ptr %a165 + store { ptr, i64, i64 } { ptr @.str.789, i64 16, i64 0 }, ptr %a166 + call void @finch_str_concat(ptr %a164, ptr %a165, ptr %a166) + store { ptr, i64, i64 } %t163, ptr %a167 + call void @finch_str_drop(ptr %a167) + %t168 = load { ptr, i64, i64 }, ptr %a164 + call void @finch.parser.fail(ptr %t155, %S.lexer.Token %t157, { ptr, i64, i64 } %t168) + store %S.lexer.Token %t157, ptr %a169 + call void @finch.drop.S_lexer_Token(ptr %a169) + store { ptr, i64, i64 } %t168, ptr %a170 + call void @finch_str_drop(ptr %a170) + br label %endif1432 +endif1432: + %t171 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 6 + %t172 = load i1, ptr %t171 + br i1 %t172, label %then1433, label %endif1435 +then1433: + %t173 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 9 + store i64 0, ptr %a174 + br label %each.cond1436 +each.cond1436: + %t175 = getelementptr inbounds { ptr, i64, i64 }, ptr %t173, i32 0, i32 1 + %t176 = load i64, ptr %t175 + %t177 = load i64, ptr %a174 + %t178 = icmp slt i64 %t177, %t176 + br i1 %t178, label %each.body1437, label %each.end1439 +each.body1437: + %t179 = load ptr, ptr %t173 + %t180 = getelementptr inbounds %S.ast.Node, ptr %t179, i64 %t177 + %t181 = load %S.ast.Node, ptr %t180 + store %S.ast.Node %t181, ptr %a182 + %t183 = getelementptr inbounds %S.ast.Node, ptr %a182, i32 0, i32 4 + %t184 = getelementptr inbounds { ptr, i64, i64 }, ptr %t183, i32 0, i32 1 + %t185 = load i64, ptr %t184 + %t186 = icmp sgt i64 %t185, 0 + br i1 %t186, label %then1440, label %endif1442 +then1440: + %t187 = load ptr, ptr %a1 + %t188 = load ptr, ptr %a1 + %t189 = call %S.lexer.Token @finch.parser.cur(ptr %t188) + %t190 = getelementptr inbounds %S.ast.Node, ptr %a182, i32 0, i32 1 + %t191 = load { ptr, i64, i64 }, ptr %t190 + store { ptr, i64, i64 } { ptr @.str.790, i64 54, i64 0 }, ptr %a193 + store { ptr, i64, i64 } %t191, ptr %a194 + call void @finch_str_concat(ptr %a192, ptr %a193, ptr %a194) + %t195 = load { ptr, i64, i64 }, ptr %a192 + store { ptr, i64, i64 } %t195, ptr %a197 + store { ptr, i64, i64 } { ptr @.str.791, i64 3, i64 0 }, ptr %a198 + call void @finch_str_concat(ptr %a196, ptr %a197, ptr %a198) + store { ptr, i64, i64 } %t195, ptr %a199 + call void @finch_str_drop(ptr %a199) + %t200 = load { ptr, i64, i64 }, ptr %a196 + %t201 = getelementptr inbounds %S.ast.Node, ptr %a182, i32 0, i32 4 + %t202 = load { ptr, i64, i64 }, ptr %t201 + store { ptr, i64, i64 } %t200, ptr %a204 + store { ptr, i64, i64 } %t202, ptr %a205 + call void @finch_str_concat(ptr %a203, ptr %a204, ptr %a205) + store { ptr, i64, i64 } %t200, ptr %a206 + call void @finch_str_drop(ptr %a206) + %t207 = load { ptr, i64, i64 }, ptr %a203 + store { ptr, i64, i64 } %t207, ptr %a209 + store { ptr, i64, i64 } { ptr @.str.792, i64 1, i64 0 }, ptr %a210 + call void @finch_str_concat(ptr %a208, ptr %a209, ptr %a210) + store { ptr, i64, i64 } %t207, ptr %a211 + call void @finch_str_drop(ptr %a211) + %t212 = load { ptr, i64, i64 }, ptr %a208 + call void @finch.parser.fail(ptr %t187, %S.lexer.Token %t189, { ptr, i64, i64 } %t212) + store %S.lexer.Token %t189, ptr %a213 + call void @finch.drop.S_lexer_Token(ptr %a213) + store { ptr, i64, i64 } %t212, ptr %a214 + call void @finch_str_drop(ptr %a214) + br label %endif1442 +endif1442: + br label %each.step1438 +each.step1438: + %t215 = load i64, ptr %a174 + %t216 = add i64 %t215, 1 + store i64 %t216, ptr %a174 + br label %each.cond1436 +each.end1439: + br label %endif1435 +endif1435: + %t217 = load %S.ast.Node, ptr %a4 + ret %S.ast.Node %t217 +} + +define internal %S.ast.Node @finch.parser.sumStruct(%S.ast.Node %p0) { +entry: + %a1 = alloca %S.ast.Node, align 16 + %a5 = alloca { ptr, i64, i64 }, align 16 + %a6 = alloca { ptr, i64, i64 }, align 16 + %a18 = alloca %S.ast.Node, align 16 + %a30 = alloca %S.ast.Node, align 16 + %a34 = alloca %S.ast.Type, align 16 + %a38 = alloca %S.ast.Node, align 16 + %a39 = alloca %S.ast.Node, align 16 + %a46 = alloca i64, align 16 + %a54 = alloca %S.ast.Node, align 16 + %a58 = alloca i64, align 16 + %a64 = alloca { ptr, i64, i64 }, align 16 + %a65 = alloca { ptr, i64, i64 }, align 16 + %a66 = alloca { ptr, i64, i64 }, align 16 + %a69 = alloca { ptr, i64, i64 }, align 16 + %a71 = alloca { ptr, i64, i64 }, align 16 + %a72 = alloca { ptr, i64, i64 }, align 16 + %a73 = alloca { ptr, i64, i64 }, align 16 + %a74 = alloca { ptr, i64, i64 }, align 16 + %a75 = alloca { ptr, i64, i64 }, align 16 + %a87 = alloca %S.ast.Node, align 16 + %a98 = alloca %S.ast.Type, align 16 + %a99 = alloca %S.ast.Type, align 16 + %a102 = alloca %S.ast.Type, align 16 + %a106 = alloca %S.ast.Node, align 16 + %a107 = alloca %S.ast.Node, align 16 + store %S.ast.Node %p0, ptr %a1 + %t2 = insertvalue %S.ast.Node zeroinitializer, { ptr, i64, i64 } { ptr @.str.793, i64 6, i64 0 }, 0 + %t3 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 1 + %t4 = load { ptr, i64, i64 }, ptr %t3 + store { ptr, i64, i64 } %t4, ptr %a5 + call void @finch_str_copy(ptr %a6, ptr %a5) + %t7 = load { ptr, i64, i64 }, ptr %a6 + %t8 = insertvalue %S.ast.Node %t2, { ptr, i64, i64 } %t7, 1 + %t9 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 11 + %t10 = load i64, ptr %t9 + %t11 = insertvalue %S.ast.Node %t8, i64 %t10, 11 + %t12 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 12 + %t13 = load i64, ptr %t12 + %t14 = insertvalue %S.ast.Node %t11, i64 %t13, 12 + %t15 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 13 + %t16 = load i64, ptr %t15 + %t17 = insertvalue %S.ast.Node %t14, i64 %t16, 13 + store %S.ast.Node %t17, ptr %a18 + %t19 = insertvalue %S.ast.Node zeroinitializer, { ptr, i64, i64 } { ptr @.str.794, i64 5, i64 0 }, 0 + %t20 = insertvalue %S.ast.Node %t19, { ptr, i64, i64 } { ptr @.str.795, i64 3, i64 0 }, 1 + %t21 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 11 + %t22 = load i64, ptr %t21 + %t23 = insertvalue %S.ast.Node %t20, i64 %t22, 11 + %t24 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 12 + %t25 = load i64, ptr %t24 + %t26 = insertvalue %S.ast.Node %t23, i64 %t25, 12 + %t27 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 13 + %t28 = load i64, ptr %t27 + %t29 = insertvalue %S.ast.Node %t26, i64 %t28, 13 + store %S.ast.Node %t29, ptr %a30 + %t31 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.796, i64 3, i64 0 }) + %t32 = getelementptr inbounds %S.ast.Node, ptr %a30, i32 0, i32 5 + %t33 = load %S.ast.Type, ptr %t32 + store %S.ast.Type %t31, ptr %t32 + store %S.ast.Type %t33, ptr %a34 + call void @finch.drop.S_ast_Type(ptr %a34) + %t35 = getelementptr inbounds %S.ast.Node, ptr %a18, i32 0, i32 9 + %t36 = getelementptr inbounds { ptr, i64, i64 }, ptr %t35, i32 0, i32 1 + %t37 = load %S.ast.Node, ptr %a30 + store %S.ast.Node %t37, ptr %a38 + call void @finch.copy.S_ast_Node(ptr %a39, ptr %a38) + %t40 = load %S.ast.Node, ptr %a39 + %t41 = load i64, ptr %t36 + %t42 = add i64 %t41, 1 + call void @finch_arr_reserve(ptr %t35, i64 %t42, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) + %t43 = load ptr, ptr %t35 + %t44 = getelementptr inbounds %S.ast.Node, ptr %t43, i64 %t41 + store %S.ast.Node %t40, ptr %t44 + store i64 %t42, ptr %t36 + %t45 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 9 + store i64 0, ptr %a46 + br label %each.cond1443 +each.cond1443: + %t47 = getelementptr inbounds { ptr, i64, i64 }, ptr %t45, i32 0, i32 1 + %t48 = load i64, ptr %t47 + %t49 = load i64, ptr %a46 + %t50 = icmp slt i64 %t49, %t48 + br i1 %t50, label %each.body1444, label %each.end1446 +each.body1444: + %t51 = load ptr, ptr %t45 + %t52 = getelementptr inbounds %S.ast.Node, ptr %t51, i64 %t49 + %t53 = load %S.ast.Node, ptr %t52 + store %S.ast.Node %t53, ptr %a54 + %t55 = getelementptr inbounds %S.ast.Node, ptr %a54, i32 0, i32 9 + %t56 = getelementptr inbounds { ptr, i64, i64 }, ptr %t55, i32 0, i32 1 + %t57 = load i64, ptr %t56 + store i64 0, ptr %a58 + br label %for.cond1447 +for.cond1447: + %t59 = load i64, ptr %a58 + %t60 = icmp slt i64 %t59, %t57 + br i1 %t60, label %for.body1448, label %for.end1450 +for.body1448: + %t61 = insertvalue %S.ast.Node zeroinitializer, { ptr, i64, i64 } { ptr @.str.797, i64 5, i64 0 }, 0 + %t62 = getelementptr inbounds %S.ast.Node, ptr %a54, i32 0, i32 1 + %t63 = load { ptr, i64, i64 }, ptr %t62 + store { ptr, i64, i64 } %t63, ptr %a65 + store { ptr, i64, i64 } { ptr @.str.798, i64 1, i64 0 }, ptr %a66 + call void @finch_str_concat(ptr %a64, ptr %a65, ptr %a66) + %t67 = load { ptr, i64, i64 }, ptr %a64 + %t68 = load i64, ptr %a58 + call void @finch_str_from_int(ptr %a69, i64 %t68) + %t70 = load { ptr, i64, i64 }, ptr %a69 + store { ptr, i64, i64 } %t67, ptr %a72 + store { ptr, i64, i64 } %t70, ptr %a73 + call void @finch_str_concat(ptr %a71, ptr %a72, ptr %a73) + store { ptr, i64, i64 } %t67, ptr %a74 + call void @finch_str_drop(ptr %a74) + store { ptr, i64, i64 } %t70, ptr %a75 + call void @finch_str_drop(ptr %a75) + %t76 = load { ptr, i64, i64 }, ptr %a71 + %t77 = insertvalue %S.ast.Node %t61, { ptr, i64, i64 } %t76, 1 + %t78 = getelementptr inbounds %S.ast.Node, ptr %a54, i32 0, i32 11 + %t79 = load i64, ptr %t78 + %t80 = insertvalue %S.ast.Node %t77, i64 %t79, 11 + %t81 = getelementptr inbounds %S.ast.Node, ptr %a54, i32 0, i32 12 + %t82 = load i64, ptr %t81 + %t83 = insertvalue %S.ast.Node %t80, i64 %t82, 12 + %t84 = getelementptr inbounds %S.ast.Node, ptr %a54, i32 0, i32 13 %t85 = load i64, ptr %t84 - %t86 = icmp eq i64 %t85, 0 - br i1 %t86, label %then1412, label %endif1414 -then1412: - %t87 = load ptr, ptr %a1 - %t88 = load ptr, ptr %a1 - %t89 = call %S.lexer.Token @finch.parser.cur(ptr %t88) - %t90 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 1 - %t91 = load { ptr, i64, i64 }, ptr %t90 - store { ptr, i64, i64 } { ptr @.str.778, i64 9, i64 0 }, ptr %a93 - store { ptr, i64, i64 } %t91, ptr %a94 - call void @finch_str_concat(ptr %a92, ptr %a93, ptr %a94) - %t95 = load { ptr, i64, i64 }, ptr %a92 - store { ptr, i64, i64 } %t95, ptr %a97 - store { ptr, i64, i64 } { ptr @.str.779, i64 16, i64 0 }, ptr %a98 - call void @finch_str_concat(ptr %a96, ptr %a97, ptr %a98) - store { ptr, i64, i64 } %t95, ptr %a99 - call void @finch_str_drop(ptr %a99) - %t100 = load { ptr, i64, i64 }, ptr %a96 - call void @finch.parser.fail(ptr %t87, %S.lexer.Token %t89, { ptr, i64, i64 } %t100) - store %S.lexer.Token %t89, ptr %a101 - call void @finch.drop.S_lexer_Token(ptr %a101) - store { ptr, i64, i64 } %t100, ptr %a102 - call void @finch_str_drop(ptr %a102) - br label %endif1414 -endif1414: - %t103 = load %S.ast.Node, ptr %a4 - ret %S.ast.Node %t103 + %t86 = insertvalue %S.ast.Node %t83, i64 %t85, 13 + store %S.ast.Node %t86, ptr %a87 + %t88 = getelementptr inbounds %S.ast.Node, ptr %a54, i32 0, i32 9 + %t89 = load i64, ptr %a58 + %t90 = load { ptr, i64, i64 }, ptr %t88 + %t91 = extractvalue { ptr, i64, i64 } %t90, 1 + %t92 = icmp uge i64 %t89, %t91 + br i1 %t92, label %range1451, label %inrange1452 +range1451: + call void @finch_panic_index(ptr @.str.799, i64 333, i64 %t89, i64 %t91) + unreachable +inrange1452: + %t93 = extractvalue { ptr, i64, i64 } %t90, 0 + %t94 = getelementptr inbounds %S.ast.Node, ptr %t93, i64 %t89 + %t95 = getelementptr inbounds %S.ast.Node, ptr %t94, i32 0, i32 5 + %t96 = load %S.ast.Type, ptr %t95 + %t97 = getelementptr inbounds %S.ast.Node, ptr %a87, i32 0, i32 5 + store %S.ast.Type %t96, ptr %a98 + call void @finch.copy.S_ast_Type(ptr %a99, ptr %a98) + %t100 = load %S.ast.Type, ptr %a99 + %t101 = load %S.ast.Type, ptr %t97 + store %S.ast.Type %t100, ptr %t97 + store %S.ast.Type %t101, ptr %a102 + call void @finch.drop.S_ast_Type(ptr %a102) + %t103 = getelementptr inbounds %S.ast.Node, ptr %a18, i32 0, i32 9 + %t104 = getelementptr inbounds { ptr, i64, i64 }, ptr %t103, i32 0, i32 1 + %t105 = load %S.ast.Node, ptr %a87 + store %S.ast.Node %t105, ptr %a106 + call void @finch.copy.S_ast_Node(ptr %a107, ptr %a106) + %t108 = load %S.ast.Node, ptr %a107 + %t109 = load i64, ptr %t104 + %t110 = add i64 %t109, 1 + call void @finch_arr_reserve(ptr %t103, i64 %t110, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) + %t111 = load ptr, ptr %t103 + %t112 = getelementptr inbounds %S.ast.Node, ptr %t111, i64 %t109 + store %S.ast.Node %t108, ptr %t112 + store i64 %t110, ptr %t104 + call void @finch.drop.S_ast_Node(ptr %a87) + br label %for.step1449 +for.step1449: + %t113 = load i64, ptr %a58 + %t114 = add i64 %t113, 1 + store i64 %t114, ptr %a58 + br label %for.cond1447 +for.end1450: + br label %each.step1445 +each.step1445: + %t115 = load i64, ptr %a46 + %t116 = add i64 %t115, 1 + store i64 %t116, ptr %a46 + br label %each.cond1443 +each.end1446: + %t117 = load %S.ast.Node, ptr %a18 + call void @finch.drop.S_ast_Node(ptr %a30) + ret %S.ast.Node %t117 } define internal %S.ast.Node @finch.parser.parseMatch(ptr %p0, i1 %p1) { @@ -17632,13 +18271,13 @@ entry: store ptr %p0, ptr %a1 store i1 %p1, ptr %a2 %t3 = load ptr, ptr %a1 - %t4 = call %S.ast.Node @finch.parser.node(ptr %t3, { ptr, i64, i64 } { ptr @.str.780, i64 5, i64 0 }) + %t4 = call %S.ast.Node @finch.parser.node(ptr %t3, { ptr, i64, i64 } { ptr @.str.800, i64 5, i64 0 }) store %S.ast.Node %t4, ptr %a5 %t6 = load i1, ptr %a2 %t7 = getelementptr inbounds %S.ast.Node, ptr %a5, i32 0, i32 6 store i1 %t6, ptr %t7 %t8 = load ptr, ptr %a1 - %t9 = call %S.lexer.Token @finch.parser.expect(ptr %t8, { ptr, i64, i64 } { ptr @.str.781, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.782, i64 7, i64 0 }) + %t9 = call %S.lexer.Token @finch.parser.expect(ptr %t8, { ptr, i64, i64 } { ptr @.str.801, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.802, i64 7, i64 0 }) store %S.lexer.Token %t9, ptr %a10 call void @finch.drop.S_lexer_Token(ptr %a10) %t11 = getelementptr inbounds %S.ast.Node, ptr %a5, i32 0, i32 9 @@ -17653,65 +18292,65 @@ entry: store %S.ast.Node %t14, ptr %t18 store i64 %t16, ptr %t12 %t19 = load ptr, ptr %a1 - %t20 = call %S.lexer.Token @finch.parser.expect(ptr %t19, { ptr, i64, i64 } { ptr @.str.783, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.784, i64 3, i64 0 }) + %t20 = call %S.lexer.Token @finch.parser.expect(ptr %t19, { ptr, i64, i64 } { ptr @.str.803, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.804, i64 3, i64 0 }) store %S.lexer.Token %t20, ptr %a21 call void @finch.drop.S_lexer_Token(ptr %a21) %t22 = load ptr, ptr %a1 %t23 = icmp eq ptr %t22, null - br i1 %t23, label %panic1415, label %ok1416 -panic1415: - call void @finch_panic(ptr @.str.785, i64 300, ptr @.str.786) + br i1 %t23, label %panic1453, label %ok1454 +panic1453: + call void @finch_panic(ptr @.str.805, i64 348, ptr @.str.806) unreachable -ok1416: +ok1454: %t24 = getelementptr inbounds %S.parser.Parser, ptr %t22, i32 0, i32 2 %t25 = load i64, ptr %t24 store i64 %t25, ptr %a26 %t27 = load ptr, ptr %a1 %t28 = icmp eq ptr %t27, null - br i1 %t28, label %panic1417, label %ok1418 -panic1417: - call void @finch_panic(ptr @.str.787, i64 301, ptr @.str.788) + br i1 %t28, label %panic1455, label %ok1456 +panic1455: + call void @finch_panic(ptr @.str.807, i64 349, ptr @.str.808) unreachable -ok1418: +ok1456: %t29 = getelementptr inbounds %S.parser.Parser, ptr %t27, i32 0, i32 2 store i64 0, ptr %t29 - br label %while.cond1419 -while.cond1419: + br label %while.cond1457 +while.cond1457: %t30 = load ptr, ptr %a1 - %t31 = call i1 @finch.parser.at(ptr %t30, { ptr, i64, i64 } { ptr @.str.789, i64 1, i64 0 }) + %t31 = call i1 @finch.parser.at(ptr %t30, { ptr, i64, i64 } { ptr @.str.809, i64 1, i64 0 }) %t32 = xor i1 %t31, true - br i1 %t32, label %while.body1420, label %while.end1421 -while.body1420: + br i1 %t32, label %while.body1458, label %while.end1459 +while.body1458: %t33 = load ptr, ptr %a1 - %t34 = call i1 @finch.parser.at(ptr %t33, { ptr, i64, i64 } { ptr @.str.790, i64 3, i64 0 }) - br i1 %t34, label %then1422, label %endif1424 -then1422: + %t34 = call i1 @finch.parser.at(ptr %t33, { ptr, i64, i64 } { ptr @.str.810, i64 3, i64 0 }) + br i1 %t34, label %then1460, label %endif1462 +then1460: %t35 = load ptr, ptr %a1 %t36 = load ptr, ptr %a1 %t37 = call %S.lexer.Token @finch.parser.cur(ptr %t36) - call void @finch.parser.fail(ptr %t35, %S.lexer.Token %t37, { ptr, i64, i64 } { ptr @.str.791, i64 37, i64 0 }) + call void @finch.parser.fail(ptr %t35, %S.lexer.Token %t37, { ptr, i64, i64 } { ptr @.str.811, i64 37, i64 0 }) store %S.lexer.Token %t37, ptr %a38 call void @finch.drop.S_lexer_Token(ptr %a38) - br label %endif1424 -endif1424: + br label %endif1462 +endif1462: %t39 = load ptr, ptr %a1 - %t40 = call %S.ast.Node @finch.parser.node(ptr %t39, { ptr, i64, i64 } { ptr @.str.792, i64 3, i64 0 }) + %t40 = call %S.ast.Node @finch.parser.node(ptr %t39, { ptr, i64, i64 } { ptr @.str.812, i64 3, i64 0 }) store %S.ast.Node %t40, ptr %a41 %t42 = load ptr, ptr %a1 - %t43 = call %S.ast.Node @finch.parser.node(ptr %t42, { ptr, i64, i64 } { ptr @.str.793, i64 8, i64 0 }) + %t43 = call %S.ast.Node @finch.parser.node(ptr %t42, { ptr, i64, i64 } { ptr @.str.813, i64 8, i64 0 }) store %S.ast.Node %t43, ptr %a44 %t45 = load ptr, ptr %a1 - %t46 = call i1 @finch.parser.accept(ptr %t45, { ptr, i64, i64 } { ptr @.str.794, i64 4, i64 0 }) - br i1 %t46, label %then1425, label %else1426 -then1425: + %t46 = call i1 @finch.parser.accept(ptr %t45, { ptr, i64, i64 } { ptr @.str.814, i64 4, i64 0 }) + br i1 %t46, label %then1463, label %else1464 +then1463: %t47 = getelementptr inbounds %S.ast.Node, ptr %a41, i32 0, i32 6 store i1 true, ptr %t47 - br label %endif1427 -else1426: - br label %while.cond1428 -while.cond1428: - br label %while.body1429 -while.body1429: + br label %endif1465 +else1464: + br label %while.cond1466 +while.cond1466: + br label %while.body1467 +while.body1467: %t48 = getelementptr inbounds %S.ast.Node, ptr %a44, i32 0, i32 9 %t49 = getelementptr inbounds { ptr, i64, i64 }, ptr %t48, i32 0, i32 1 %t50 = load ptr, ptr %a1 @@ -17724,16 +18363,16 @@ while.body1429: store %S.ast.Node %t51, ptr %t55 store i64 %t53, ptr %t49 %t56 = load ptr, ptr %a1 - %t57 = call i1 @finch.parser.accept(ptr %t56, { ptr, i64, i64 } { ptr @.str.795, i64 1, i64 0 }) + %t57 = call i1 @finch.parser.accept(ptr %t56, { ptr, i64, i64 } { ptr @.str.815, i64 1, i64 0 }) %t58 = xor i1 %t57, true - br i1 %t58, label %then1431, label %endif1433 -then1431: - br label %while.end1430 -endif1433: - br label %while.cond1428 -while.end1430: - br label %endif1427 -endif1427: + br i1 %t58, label %then1469, label %endif1471 +then1469: + br label %while.end1468 +endif1471: + br label %while.cond1466 +while.end1468: + br label %endif1465 +endif1465: %t59 = getelementptr inbounds %S.ast.Node, ptr %a41, i32 0, i32 9 %t60 = getelementptr inbounds { ptr, i64, i64 }, ptr %t59, i32 0, i32 1 %t61 = load %S.ast.Node, ptr %a44 @@ -17748,24 +18387,24 @@ endif1427: store %S.ast.Node %t64, ptr %t68 store i64 %t66, ptr %t60 %t69 = load ptr, ptr %a1 - %t70 = call %S.lexer.Token @finch.parser.expect(ptr %t69, { ptr, i64, i64 } { ptr @.str.796, i64 2, i64 0 }, { ptr, i64, i64 } { ptr @.str.797, i64 57, i64 0 }) + %t70 = call %S.lexer.Token @finch.parser.expect(ptr %t69, { ptr, i64, i64 } { ptr @.str.816, i64 2, i64 0 }, { ptr, i64, i64 } { ptr @.str.817, i64 57, i64 0 }) store %S.lexer.Token %t70, ptr %a71 call void @finch.drop.S_lexer_Token(ptr %a71) %t72 = load ptr, ptr %a1 - %t73 = call i1 @finch.parser.at(ptr %t72, { ptr, i64, i64 } { ptr @.str.798, i64 1, i64 0 }) - br label %logic.from1434 -logic.from1434: - br i1 %t73, label %logic.rhs1435, label %logic.end1436 -logic.rhs1435: + %t73 = call i1 @finch.parser.at(ptr %t72, { ptr, i64, i64 } { ptr @.str.818, i64 1, i64 0 }) + br label %logic.from1472 +logic.from1472: + br i1 %t73, label %logic.rhs1473, label %logic.end1474 +logic.rhs1473: %t74 = load i1, ptr %a2 %t75 = xor i1 %t74, true - br label %logic.rend1437 -logic.rend1437: - br label %logic.end1436 -logic.end1436: - %t76 = phi i1 [ false, %logic.from1434 ], [ %t75, %logic.rend1437 ] - br i1 %t76, label %then1438, label %else1439 -then1438: + br label %logic.rend1475 +logic.rend1475: + br label %logic.end1474 +logic.end1474: + %t76 = phi i1 [ false, %logic.from1472 ], [ %t75, %logic.rend1475 ] + br i1 %t76, label %then1476, label %else1477 +then1476: %t77 = getelementptr inbounds %S.ast.Node, ptr %a41, i32 0, i32 9 %t78 = getelementptr inbounds { ptr, i64, i64 }, ptr %t77, i32 0, i32 1 %t79 = load ptr, ptr %a1 @@ -17777,11 +18416,11 @@ then1438: %t84 = getelementptr inbounds %S.ast.Node, ptr %t83, i64 %t81 store %S.ast.Node %t80, ptr %t84 store i64 %t82, ptr %t78 - br label %endif1440 -else1439: + br label %endif1478 +else1477: %t85 = load i1, ptr %a2 - br i1 %t85, label %then1441, label %else1442 -then1441: + br i1 %t85, label %then1479, label %else1480 +then1479: %t86 = getelementptr inbounds %S.ast.Node, ptr %a41, i32 0, i32 9 %t87 = getelementptr inbounds { ptr, i64, i64 }, ptr %t86, i32 0, i32 1 %t88 = load ptr, ptr %a1 @@ -17793,8 +18432,8 @@ then1441: %t93 = getelementptr inbounds %S.ast.Node, ptr %t92, i64 %t90 store %S.ast.Node %t89, ptr %t93 store i64 %t91, ptr %t87 - br label %endif1443 -else1442: + br label %endif1481 +else1480: %t94 = getelementptr inbounds %S.ast.Node, ptr %a41, i32 0, i32 9 %t95 = getelementptr inbounds { ptr, i64, i64 }, ptr %t94, i32 0, i32 1 %t96 = load ptr, ptr %a1 @@ -17806,10 +18445,10 @@ else1442: %t101 = getelementptr inbounds %S.ast.Node, ptr %t100, i64 %t98 store %S.ast.Node %t97, ptr %t101 store i64 %t99, ptr %t95 - br label %endif1443 -endif1443: - br label %endif1440 -endif1440: + br label %endif1481 +endif1481: + br label %endif1478 +endif1478: %t102 = getelementptr inbounds %S.ast.Node, ptr %a5, i32 0, i32 9 %t103 = getelementptr inbounds { ptr, i64, i64 }, ptr %t102, i32 0, i32 1 %t104 = load %S.ast.Node, ptr %a41 @@ -17824,26 +18463,26 @@ endif1440: store %S.ast.Node %t107, ptr %t111 store i64 %t109, ptr %t103 %t112 = load ptr, ptr %a1 - %t113 = call i1 @finch.parser.accept(ptr %t112, { ptr, i64, i64 } { ptr @.str.799, i64 1, i64 0 }) + %t113 = call i1 @finch.parser.accept(ptr %t112, { ptr, i64, i64 } { ptr @.str.819, i64 1, i64 0 }) %t114 = xor i1 %t113, true - br i1 %t114, label %then1444, label %endif1446 -then1444: + br i1 %t114, label %then1482, label %endif1484 +then1482: %t115 = load ptr, ptr %a1 call void @finch.parser.endOfStatement(ptr %t115) - br label %endif1446 -endif1446: + br label %endif1484 +endif1484: call void @finch.drop.S_ast_Node(ptr %a44) call void @finch.drop.S_ast_Node(ptr %a41) - br label %while.cond1419 -while.end1421: + br label %while.cond1457 +while.end1459: %t116 = load i64, ptr %a26 %t117 = load ptr, ptr %a1 %t118 = icmp eq ptr %t117, null - br i1 %t118, label %panic1447, label %ok1448 -panic1447: - call void @finch_panic(ptr @.str.800, i64 332, ptr @.str.801) + br i1 %t118, label %panic1485, label %ok1486 +panic1485: + call void @finch_panic(ptr @.str.820, i64 380, ptr @.str.821) unreachable -ok1448: +ok1486: %t119 = getelementptr inbounds %S.parser.Parser, ptr %t117, i32 0, i32 2 store i64 %t116, ptr %t119 %t120 = load ptr, ptr %a1 @@ -17854,16 +18493,16 @@ ok1448: %t124 = getelementptr inbounds { ptr, i64, i64 }, ptr %t123, i32 0, i32 1 %t125 = load i64, ptr %t124 %t126 = icmp eq i64 %t125, 1 - br i1 %t126, label %then1449, label %endif1451 -then1449: + br i1 %t126, label %then1487, label %endif1489 +then1487: %t127 = load ptr, ptr %a1 %t128 = load ptr, ptr %a1 %t129 = call %S.lexer.Token @finch.parser.cur(ptr %t128) - call void @finch.parser.fail(ptr %t127, %S.lexer.Token %t129, { ptr, i64, i64 } { ptr @.str.802, i64 30, i64 0 }) + call void @finch.parser.fail(ptr %t127, %S.lexer.Token %t129, { ptr, i64, i64 } { ptr @.str.822, i64 30, i64 0 }) store %S.lexer.Token %t129, ptr %a130 call void @finch.drop.S_lexer_Token(ptr %a130) - br label %endif1451 -endif1451: + br label %endif1489 +endif1489: %t131 = load %S.ast.Node, ptr %a5 ret %S.ast.Node %t131 } @@ -17880,16 +18519,16 @@ entry: store ptr %p0, ptr %a1 store { ptr, i64, i64 } zeroinitializer, ptr %a2 %t3 = load ptr, ptr %a1 - %t4 = call %S.lexer.Token @finch.parser.expect(ptr %t3, { ptr, i64, i64 } { ptr @.str.803, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.804, i64 3, i64 0 }) + %t4 = call %S.lexer.Token @finch.parser.expect(ptr %t3, { ptr, i64, i64 } { ptr @.str.823, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.824, i64 3, i64 0 }) store %S.lexer.Token %t4, ptr %a5 call void @finch.drop.S_lexer_Token(ptr %a5) - br label %while.cond1452 -while.cond1452: - br label %while.body1453 -while.body1453: + br label %while.cond1490 +while.cond1490: + br label %while.body1491 +while.body1491: %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t7 = load ptr, ptr %a1 - %t8 = call %S.lexer.Token @finch.parser.expect(ptr %t7, { ptr, i64, i64 } { ptr @.str.805, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.806, i64 29, i64 0 }) + %t8 = call %S.lexer.Token @finch.parser.expect(ptr %t7, { ptr, i64, i64 } { ptr @.str.825, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.826, i64 29, i64 0 }) %t9 = extractvalue %S.lexer.Token %t8, 1 store { ptr, i64, i64 } %t9, ptr %a10 call void @finch_str_copy(ptr %a11, ptr %a10) @@ -17904,16 +18543,16 @@ while.body1453: store { ptr, i64, i64 } %t12, ptr %t17 store i64 %t15, ptr %t6 %t18 = load ptr, ptr %a1 - %t19 = call i1 @finch.parser.accept(ptr %t18, { ptr, i64, i64 } { ptr @.str.807, i64 1, i64 0 }) + %t19 = call i1 @finch.parser.accept(ptr %t18, { ptr, i64, i64 } { ptr @.str.827, i64 1, i64 0 }) %t20 = xor i1 %t19, true - br i1 %t20, label %then1455, label %endif1457 -then1455: - br label %while.end1454 -endif1457: - br label %while.cond1452 -while.end1454: + br i1 %t20, label %then1493, label %endif1495 +then1493: + br label %while.end1492 +endif1495: + br label %while.cond1490 +while.end1492: %t21 = load ptr, ptr %a1 - %t22 = call %S.lexer.Token @finch.parser.expect(ptr %t21, { ptr, i64, i64 } { ptr @.str.808, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.809, i64 29, i64 0 }) + %t22 = call %S.lexer.Token @finch.parser.expect(ptr %t21, { ptr, i64, i64 } { ptr @.str.828, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.829, i64 29, i64 0 }) store %S.lexer.Token %t22, ptr %a23 call void @finch.drop.S_lexer_Token(ptr %a23) %t24 = load { ptr, i64, i64 }, ptr %a2 @@ -17954,14 +18593,14 @@ entry: %a100 = alloca %S.lexer.Token, align 16 store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 - %t3 = call %S.ast.Node @finch.parser.node(ptr %t2, { ptr, i64, i64 } { ptr @.str.810, i64 6, i64 0 }) + %t3 = call %S.ast.Node @finch.parser.node(ptr %t2, { ptr, i64, i64 } { ptr @.str.830, i64 6, i64 0 }) store %S.ast.Node %t3, ptr %a4 %t5 = load ptr, ptr %a1 - %t6 = call %S.lexer.Token @finch.parser.expect(ptr %t5, { ptr, i64, i64 } { ptr @.str.811, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.812, i64 8, i64 0 }) + %t6 = call %S.lexer.Token @finch.parser.expect(ptr %t5, { ptr, i64, i64 } { ptr @.str.831, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.832, i64 8, i64 0 }) store %S.lexer.Token %t6, ptr %a7 call void @finch.drop.S_lexer_Token(ptr %a7) %t8 = load ptr, ptr %a1 - %t9 = call %S.lexer.Token @finch.parser.expect(ptr %t8, { ptr, i64, i64 } { ptr @.str.813, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.814, i64 13, i64 0 }) + %t9 = call %S.lexer.Token @finch.parser.expect(ptr %t8, { ptr, i64, i64 } { ptr @.str.833, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.834, i64 13, i64 0 }) %t10 = extractvalue %S.lexer.Token %t9, 1 store { ptr, i64, i64 } %t10, ptr %a11 call void @finch_str_copy(ptr %a12, ptr %a11) @@ -17974,9 +18613,9 @@ entry: store { ptr, i64, i64 } %t16, ptr %a17 call void @finch_str_drop(ptr %a17) %t18 = load ptr, ptr %a1 - %t19 = call i1 @finch.parser.at(ptr %t18, { ptr, i64, i64 } { ptr @.str.815, i64 1, i64 0 }) - br i1 %t19, label %then1458, label %endif1460 -then1458: + %t19 = call i1 @finch.parser.at(ptr %t18, { ptr, i64, i64 } { ptr @.str.835, i64 1, i64 0 }) + br i1 %t19, label %then1496, label %endif1498 +then1496: %t20 = load ptr, ptr %a1 %t21 = call { ptr, i64, i64 } @finch.parser.parseTParams(ptr %t20) %t22 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 3 @@ -17984,39 +18623,39 @@ then1458: store { ptr, i64, i64 } %t21, ptr %t22 store { ptr, i64, i64 } %t23, ptr %a24 call void @finch.drop.arr_str(ptr %a24) - br label %endif1460 -endif1460: + br label %endif1498 +endif1498: %t25 = load ptr, ptr %a1 - %t26 = call %S.lexer.Token @finch.parser.expect(ptr %t25, { ptr, i64, i64 } { ptr @.str.816, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.817, i64 3, i64 0 }) + %t26 = call %S.lexer.Token @finch.parser.expect(ptr %t25, { ptr, i64, i64 } { ptr @.str.836, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.837, i64 3, i64 0 }) store %S.lexer.Token %t26, ptr %a27 call void @finch.drop.S_lexer_Token(ptr %a27) - br label %while.cond1461 -while.cond1461: + br label %while.cond1499 +while.cond1499: %t28 = load ptr, ptr %a1 - %t29 = call i1 @finch.parser.at(ptr %t28, { ptr, i64, i64 } { ptr @.str.818, i64 1, i64 0 }) + %t29 = call i1 @finch.parser.at(ptr %t28, { ptr, i64, i64 } { ptr @.str.838, i64 1, i64 0 }) %t30 = xor i1 %t29, true - br i1 %t30, label %while.body1462, label %while.end1463 -while.body1462: + br i1 %t30, label %while.body1500, label %while.end1501 +while.body1500: %t31 = load ptr, ptr %a1 - %t32 = call i1 @finch.parser.at(ptr %t31, { ptr, i64, i64 } { ptr @.str.819, i64 3, i64 0 }) - br i1 %t32, label %then1464, label %endif1466 -then1464: + %t32 = call i1 @finch.parser.at(ptr %t31, { ptr, i64, i64 } { ptr @.str.839, i64 3, i64 0 }) + br i1 %t32, label %then1502, label %endif1504 +then1502: %t33 = load ptr, ptr %a1 %t34 = load ptr, ptr %a1 %t35 = call %S.lexer.Token @finch.parser.cur(ptr %t34) - call void @finch.parser.fail(ptr %t33, %S.lexer.Token %t35, { ptr, i64, i64 } { ptr @.str.820, i64 38, i64 0 }) + call void @finch.parser.fail(ptr %t33, %S.lexer.Token %t35, { ptr, i64, i64 } { ptr @.str.840, i64 38, i64 0 }) store %S.lexer.Token %t35, ptr %a36 call void @finch.drop.S_lexer_Token(ptr %a36) - br label %endif1466 -endif1466: + br label %endif1504 +endif1504: %t37 = load ptr, ptr %a1 - %t38 = call %S.ast.Node @finch.parser.node(ptr %t37, { ptr, i64, i64 } { ptr @.str.821, i64 5, i64 0 }) + %t38 = call %S.ast.Node @finch.parser.node(ptr %t37, { ptr, i64, i64 } { ptr @.str.841, i64 5, i64 0 }) store %S.ast.Node %t38, ptr %a39 %t40 = load ptr, ptr %a1 %t41 = call i1 @finch.parser.atDeclaration(ptr %t40) %t42 = xor i1 %t41, true - br i1 %t42, label %then1467, label %endif1469 -then1467: + br i1 %t42, label %then1505, label %endif1507 +then1505: %t43 = load ptr, ptr %a1 %t44 = load ptr, ptr %a1 %t45 = call %S.lexer.Token @finch.parser.cur(ptr %t44) @@ -18025,14 +18664,14 @@ then1467: %t48 = call { ptr, i64, i64 } @finch.parser.describe(%S.lexer.Token %t47) store %S.lexer.Token %t47, ptr %a49 call void @finch.drop.S_lexer_Token(ptr %a49) - store { ptr, i64, i64 } { ptr @.str.822, i64 11, i64 0 }, ptr %a51 + store { ptr, i64, i64 } { ptr @.str.842, i64 11, i64 0 }, ptr %a51 store { ptr, i64, i64 } %t48, ptr %a52 call void @finch_str_concat(ptr %a50, ptr %a51, ptr %a52) store { ptr, i64, i64 } %t48, ptr %a53 call void @finch_str_drop(ptr %a53) %t54 = load { ptr, i64, i64 }, ptr %a50 store { ptr, i64, i64 } %t54, ptr %a56 - store { ptr, i64, i64 } { ptr @.str.823, i64 28, i64 0 }, ptr %a57 + store { ptr, i64, i64 } { ptr @.str.843, i64 28, i64 0 }, ptr %a57 call void @finch_str_concat(ptr %a55, ptr %a56, ptr %a57) store { ptr, i64, i64 } %t54, ptr %a58 call void @finch_str_drop(ptr %a58) @@ -18042,8 +18681,8 @@ then1467: call void @finch.drop.S_lexer_Token(ptr %a60) store { ptr, i64, i64 } %t59, ptr %a61 call void @finch_str_drop(ptr %a61) - br label %endif1469 -endif1469: + br label %endif1507 +endif1507: %t62 = load ptr, ptr %a1 %t63 = call %S.ast.Type @finch.parser.parseType(ptr %t62) %t64 = getelementptr inbounds %S.ast.Node, ptr %a39, i32 0, i32 5 @@ -18052,7 +18691,7 @@ endif1469: store %S.ast.Type %t65, ptr %a66 call void @finch.drop.S_ast_Type(ptr %a66) %t67 = load ptr, ptr %a1 - %t68 = call %S.lexer.Token @finch.parser.expect(ptr %t67, { ptr, i64, i64 } { ptr @.str.824, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.825, i64 12, i64 0 }) + %t68 = call %S.lexer.Token @finch.parser.expect(ptr %t67, { ptr, i64, i64 } { ptr @.str.844, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.845, i64 12, i64 0 }) %t69 = extractvalue %S.lexer.Token %t68, 1 store { ptr, i64, i64 } %t69, ptr %a70 call void @finch_str_copy(ptr %a71, ptr %a70) @@ -18065,9 +18704,9 @@ endif1469: store { ptr, i64, i64 } %t75, ptr %a76 call void @finch_str_drop(ptr %a76) %t77 = load ptr, ptr %a1 - %t78 = call i1 @finch.parser.accept(ptr %t77, { ptr, i64, i64 } { ptr @.str.826, i64 1, i64 0 }) - br i1 %t78, label %then1470, label %endif1472 -then1470: + %t78 = call i1 @finch.parser.accept(ptr %t77, { ptr, i64, i64 } { ptr @.str.846, i64 1, i64 0 }) + br i1 %t78, label %then1508, label %endif1510 +then1508: %t79 = getelementptr inbounds %S.ast.Node, ptr %a39, i32 0, i32 9 %t80 = getelementptr inbounds { ptr, i64, i64 }, ptr %t79, i32 0, i32 1 %t81 = load ptr, ptr %a1 @@ -18079,8 +18718,8 @@ then1470: %t86 = getelementptr inbounds %S.ast.Node, ptr %t85, i64 %t83 store %S.ast.Node %t82, ptr %t86 store i64 %t84, ptr %t80 - br label %endif1472 -endif1472: + br label %endif1510 +endif1510: %t87 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 9 %t88 = getelementptr inbounds { ptr, i64, i64 }, ptr %t87, i32 0, i32 1 %t89 = load %S.ast.Node, ptr %a39 @@ -18097,8 +18736,8 @@ endif1472: %t97 = load ptr, ptr %a1 call void @finch.parser.endOfStatement(ptr %t97) call void @finch.drop.S_ast_Node(ptr %a39) - br label %while.cond1461 -while.end1463: + br label %while.cond1499 +while.end1501: %t98 = load ptr, ptr %a1 %t99 = call %S.lexer.Token @finch.parser.next(ptr %t98) store %S.lexer.Token %t99, ptr %a100 @@ -18156,18 +18795,18 @@ entry: %a160 = alloca { ptr, i64, i64 }, align 16 store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 - %t3 = call %S.ast.Node @finch.parser.node(ptr %t2, { ptr, i64, i64 } { ptr @.str.827, i64 2, i64 0 }) + %t3 = call %S.ast.Node @finch.parser.node(ptr %t2, { ptr, i64, i64 } { ptr @.str.847, i64 2, i64 0 }) store %S.ast.Node %t3, ptr %a4 %t5 = load ptr, ptr %a1 - %t6 = call i1 @finch.parser.accept(ptr %t5, { ptr, i64, i64 } { ptr @.str.828, i64 6, i64 0 }) + %t6 = call i1 @finch.parser.accept(ptr %t5, { ptr, i64, i64 } { ptr @.str.848, i64 6, i64 0 }) %t7 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 8 store i1 %t6, ptr %t7 %t8 = load ptr, ptr %a1 - %t9 = call i1 @finch.parser.at(ptr %t8, { ptr, i64, i64 } { ptr @.str.829, i64 5, i64 0 }) - br label %logic.from1473 -logic.from1473: - br i1 %t9, label %logic.rhs1474, label %logic.end1475 -logic.rhs1474: + %t9 = call i1 @finch.parser.at(ptr %t8, { ptr, i64, i64 } { ptr @.str.849, i64 5, i64 0 }) + br label %logic.from1511 +logic.from1511: + br i1 %t9, label %logic.rhs1512, label %logic.end1513 +logic.rhs1512: %t10 = load ptr, ptr %a1 %t11 = call %S.lexer.Token @finch.parser.cur(ptr %t10) %t12 = extractvalue %S.lexer.Token %t11, 1 @@ -18179,27 +18818,27 @@ logic.rhs1474: %t17 = call i1 @finch.parser.isTypeName({ ptr, i64, i64 } %t15) store { ptr, i64, i64 } %t15, ptr %a18 call void @finch_str_drop(ptr %a18) - br label %logic.rend1476 -logic.rend1476: - br label %logic.end1475 -logic.end1475: - %t19 = phi i1 [ false, %logic.from1473 ], [ %t17, %logic.rend1476 ] - br i1 %t19, label %then1477, label %endif1479 -then1477: + br label %logic.rend1514 +logic.rend1514: + br label %logic.end1513 +logic.end1513: + %t19 = phi i1 [ false, %logic.from1511 ], [ %t17, %logic.rend1514 ] + br i1 %t19, label %then1515, label %endif1517 +then1515: %t20 = load ptr, ptr %a1 %t21 = load ptr, ptr %a1 %t22 = call %S.lexer.Token @finch.parser.cur(ptr %t21) - call void @finch.parser.fail(ptr %t20, %S.lexer.Token %t22, { ptr, i64, i64 } { ptr @.str.830, i64 68, i64 0 }) + call void @finch.parser.fail(ptr %t20, %S.lexer.Token %t22, { ptr, i64, i64 } { ptr @.str.850, i64 68, i64 0 }) store %S.lexer.Token %t22, ptr %a23 call void @finch.drop.S_lexer_Token(ptr %a23) - br label %endif1479 -endif1479: + br label %endif1517 +endif1517: %t24 = load ptr, ptr %a1 - %t25 = call %S.lexer.Token @finch.parser.expect(ptr %t24, { ptr, i64, i64 } { ptr @.str.831, i64 2, i64 0 }, { ptr, i64, i64 } { ptr @.str.832, i64 26, i64 0 }) + %t25 = call %S.lexer.Token @finch.parser.expect(ptr %t24, { ptr, i64, i64 } { ptr @.str.851, i64 2, i64 0 }, { ptr, i64, i64 } { ptr @.str.852, i64 26, i64 0 }) store %S.lexer.Token %t25, ptr %a26 call void @finch.drop.S_lexer_Token(ptr %a26) %t27 = load ptr, ptr %a1 - %t28 = call %S.lexer.Token @finch.parser.expect(ptr %t27, { ptr, i64, i64 } { ptr @.str.833, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.834, i64 15, i64 0 }) + %t28 = call %S.lexer.Token @finch.parser.expect(ptr %t27, { ptr, i64, i64 } { ptr @.str.853, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.854, i64 15, i64 0 }) %t29 = extractvalue %S.lexer.Token %t28, 1 store { ptr, i64, i64 } %t29, ptr %a30 call void @finch_str_copy(ptr %a31, ptr %a30) @@ -18212,9 +18851,9 @@ endif1479: store { ptr, i64, i64 } %t35, ptr %a36 call void @finch_str_drop(ptr %a36) %t37 = load ptr, ptr %a1 - %t38 = call i1 @finch.parser.at(ptr %t37, { ptr, i64, i64 } { ptr @.str.835, i64 1, i64 0 }) - br i1 %t38, label %then1480, label %endif1482 -then1480: + %t38 = call i1 @finch.parser.at(ptr %t37, { ptr, i64, i64 } { ptr @.str.855, i64 1, i64 0 }) + br i1 %t38, label %then1518, label %endif1520 +then1518: %t39 = load ptr, ptr %a1 %t40 = call { ptr, i64, i64 } @finch.parser.parseTParams(ptr %t39) %t41 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 3 @@ -18222,12 +18861,12 @@ then1480: store { ptr, i64, i64 } %t40, ptr %t41 store { ptr, i64, i64 } %t42, ptr %a43 call void @finch.drop.arr_str(ptr %a43) - br label %endif1482 -endif1482: + br label %endif1520 +endif1520: %t44 = load ptr, ptr %a1 - %t45 = call i1 @finch.parser.accept(ptr %t44, { ptr, i64, i64 } { ptr @.str.836, i64 1, i64 0 }) - br i1 %t45, label %then1483, label %endif1485 -then1483: + %t45 = call i1 @finch.parser.accept(ptr %t44, { ptr, i64, i64 } { ptr @.str.856, i64 1, i64 0 }) + br i1 %t45, label %then1521, label %endif1523 +then1521: %t46 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 1 %t47 = load { ptr, i64, i64 }, ptr %t46 %t48 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 2 @@ -18239,7 +18878,7 @@ then1483: store { ptr, i64, i64 } %t52, ptr %a53 call void @finch_str_drop(ptr %a53) %t54 = load ptr, ptr %a1 - %t55 = call %S.lexer.Token @finch.parser.expect(ptr %t54, { ptr, i64, i64 } { ptr @.str.837, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.838, i64 13, i64 0 }) + %t55 = call %S.lexer.Token @finch.parser.expect(ptr %t54, { ptr, i64, i64 } { ptr @.str.857, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.858, i64 13, i64 0 }) %t56 = extractvalue %S.lexer.Token %t55, 1 store { ptr, i64, i64 } %t56, ptr %a57 call void @finch_str_copy(ptr %a58, ptr %a57) @@ -18251,34 +18890,34 @@ then1483: store { ptr, i64, i64 } %t59, ptr %t61 store { ptr, i64, i64 } %t62, ptr %a63 call void @finch_str_drop(ptr %a63) - br label %endif1485 -endif1485: + br label %endif1523 +endif1523: %t64 = load ptr, ptr %a1 - %t65 = call %S.lexer.Token @finch.parser.expect(ptr %t64, { ptr, i64, i64 } { ptr @.str.839, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.840, i64 3, i64 0 }) + %t65 = call %S.lexer.Token @finch.parser.expect(ptr %t64, { ptr, i64, i64 } { ptr @.str.859, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.860, i64 3, i64 0 }) store %S.lexer.Token %t65, ptr %a66 call void @finch.drop.S_lexer_Token(ptr %a66) %t67 = load ptr, ptr %a1 %t68 = icmp eq ptr %t67, null - br i1 %t68, label %panic1486, label %ok1487 -panic1486: - call void @finch_panic(ptr @.str.841, i64 398, ptr @.str.842) + br i1 %t68, label %panic1524, label %ok1525 +panic1524: + call void @finch_panic(ptr @.str.861, i64 446, ptr @.str.862) unreachable -ok1487: +ok1525: %t69 = getelementptr inbounds %S.parser.Parser, ptr %t67, i32 0, i32 2 %t70 = load i64, ptr %t69 %t71 = add i64 %t70, 1 store i64 %t71, ptr %t69 %t72 = load ptr, ptr %a1 - %t73 = call i1 @finch.parser.at(ptr %t72, { ptr, i64, i64 } { ptr @.str.843, i64 1, i64 0 }) + %t73 = call i1 @finch.parser.at(ptr %t72, { ptr, i64, i64 } { ptr @.str.863, i64 1, i64 0 }) %t74 = xor i1 %t73, true - br i1 %t74, label %then1488, label %endif1490 -then1488: - br label %while.cond1491 -while.cond1491: - br label %while.body1492 -while.body1492: + br i1 %t74, label %then1526, label %endif1528 +then1526: + br label %while.cond1529 +while.cond1529: + br label %while.body1530 +while.body1530: %t75 = load ptr, ptr %a1 - %t76 = call %S.ast.Node @finch.parser.node(ptr %t75, { ptr, i64, i64 } { ptr @.str.844, i64 5, i64 0 }) + %t76 = call %S.ast.Node @finch.parser.node(ptr %t75, { ptr, i64, i64 } { ptr @.str.864, i64 5, i64 0 }) store %S.ast.Node %t76, ptr %a77 %t78 = load ptr, ptr %a1 %t79 = call %S.ast.Type @finch.parser.parseType(ptr %t78) @@ -18288,7 +18927,7 @@ while.body1492: store %S.ast.Type %t81, ptr %a82 call void @finch.drop.S_ast_Type(ptr %a82) %t83 = load ptr, ptr %a1 - %t84 = call %S.lexer.Token @finch.parser.expect(ptr %t83, { ptr, i64, i64 } { ptr @.str.845, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.846, i64 16, i64 0 }) + %t84 = call %S.lexer.Token @finch.parser.expect(ptr %t83, { ptr, i64, i64 } { ptr @.str.865, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.866, i64 16, i64 0 }) %t85 = extractvalue %S.lexer.Token %t84, 1 store { ptr, i64, i64 } %t85, ptr %a86 call void @finch_str_copy(ptr %a87, ptr %a86) @@ -18314,48 +18953,48 @@ while.body1492: store %S.ast.Node %t98, ptr %t102 store i64 %t100, ptr %t94 %t103 = load ptr, ptr %a1 - %t104 = call i1 @finch.parser.accept(ptr %t103, { ptr, i64, i64 } { ptr @.str.847, i64 1, i64 0 }) + %t104 = call i1 @finch.parser.accept(ptr %t103, { ptr, i64, i64 } { ptr @.str.867, i64 1, i64 0 }) %t105 = xor i1 %t104, true - br i1 %t105, label %then1494, label %endif1496 -then1494: + br i1 %t105, label %then1532, label %endif1534 +then1532: call void @finch.drop.S_ast_Node(ptr %a77) - br label %while.end1493 -endif1496: + br label %while.end1531 +endif1534: call void @finch.drop.S_ast_Node(ptr %a77) - br label %while.cond1491 -while.end1493: - br label %endif1490 -endif1490: + br label %while.cond1529 +while.end1531: + br label %endif1528 +endif1528: %t106 = load ptr, ptr %a1 %t107 = icmp eq ptr %t106, null - br i1 %t107, label %panic1497, label %ok1498 -panic1497: - call void @finch_panic(ptr @.str.848, i64 410, ptr @.str.849) + br i1 %t107, label %panic1535, label %ok1536 +panic1535: + call void @finch_panic(ptr @.str.868, i64 458, ptr @.str.869) unreachable -ok1498: +ok1536: %t108 = getelementptr inbounds %S.parser.Parser, ptr %t106, i32 0, i32 2 %t109 = load i64, ptr %t108 %t110 = sub i64 %t109, 1 store i64 %t110, ptr %t108 %t111 = load ptr, ptr %a1 - %t112 = call %S.lexer.Token @finch.parser.expect(ptr %t111, { ptr, i64, i64 } { ptr @.str.850, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.851, i64 3, i64 0 }) + %t112 = call %S.lexer.Token @finch.parser.expect(ptr %t111, { ptr, i64, i64 } { ptr @.str.870, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.871, i64 3, i64 0 }) store %S.lexer.Token %t112, ptr %a113 call void @finch.drop.S_lexer_Token(ptr %a113) - %t114 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.852, i64 4, i64 0 }) + %t114 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.872, i64 4, i64 0 }) %t115 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 5 %t116 = load %S.ast.Type, ptr %t115 store %S.ast.Type %t114, ptr %t115 store %S.ast.Type %t116, ptr %a117 call void @finch.drop.S_ast_Type(ptr %a117) %t118 = load ptr, ptr %a1 - %t119 = call i1 @finch.parser.accept(ptr %t118, { ptr, i64, i64 } { ptr @.str.853, i64 2, i64 0 }) - br i1 %t119, label %then1499, label %endif1501 -then1499: + %t119 = call i1 @finch.parser.accept(ptr %t118, { ptr, i64, i64 } { ptr @.str.873, i64 2, i64 0 }) + br i1 %t119, label %then1537, label %endif1539 +then1537: %t120 = load ptr, ptr %a1 - %t121 = call i1 @finch.parser.at(ptr %t120, { ptr, i64, i64 } { ptr @.str.854, i64 1, i64 0 }) + %t121 = call i1 @finch.parser.at(ptr %t120, { ptr, i64, i64 } { ptr @.str.874, i64 1, i64 0 }) %t122 = xor i1 %t121, true - br i1 %t122, label %then1502, label %endif1504 -then1502: + br i1 %t122, label %then1540, label %endif1542 +then1540: %t123 = load ptr, ptr %a1 %t124 = call %S.ast.Type @finch.parser.parseType(ptr %t123) %t125 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 5 @@ -18363,33 +19002,33 @@ then1502: store %S.ast.Type %t124, ptr %t125 store %S.ast.Type %t126, ptr %a127 call void @finch.drop.S_ast_Type(ptr %a127) - br label %endif1504 -endif1504: + br label %endif1542 +endif1542: %t128 = load ptr, ptr %a1 - %t129 = call i1 @finch.parser.accept(ptr %t128, { ptr, i64, i64 } { ptr @.str.855, i64 1, i64 0 }) + %t129 = call i1 @finch.parser.accept(ptr %t128, { ptr, i64, i64 } { ptr @.str.875, i64 1, i64 0 }) %t130 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 7 store i1 %t129, ptr %t130 %t131 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 7 %t132 = load i1, ptr %t131 %t133 = xor i1 %t132, true - br label %logic.from1505 -logic.from1505: - br i1 %t133, label %logic.rhs1506, label %logic.end1507 -logic.rhs1506: + br label %logic.from1543 +logic.from1543: + br i1 %t133, label %logic.rhs1544, label %logic.end1545 +logic.rhs1544: %t134 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 5 %t135 = getelementptr inbounds %S.ast.Type, ptr %t134, i32 0, i32 0 %t136 = load { ptr, i64, i64 }, ptr %t135 store { ptr, i64, i64 } %t136, ptr %a137 - store { ptr, i64, i64 } { ptr @.str.856, i64 4, i64 0 }, ptr %a138 + store { ptr, i64, i64 } { ptr @.str.876, i64 4, i64 0 }, ptr %a138 %t139 = call i32 @finch_str_eq(ptr %a137, ptr %a138) %t140 = icmp ne i32 %t139, 0 - br label %logic.rend1508 -logic.rend1508: - br label %logic.end1507 -logic.end1507: - %t141 = phi i1 [ false, %logic.from1505 ], [ %t140, %logic.rend1508 ] - br i1 %t141, label %then1509, label %endif1511 -then1509: + br label %logic.rend1546 +logic.rend1546: + br label %logic.end1545 +logic.end1545: + %t141 = phi i1 [ false, %logic.from1543 ], [ %t140, %logic.rend1546 ] + br i1 %t141, label %then1547, label %endif1549 +then1547: %t142 = load ptr, ptr %a1 %t143 = load ptr, ptr %a1 %t144 = call %S.lexer.Token @finch.parser.cur(ptr %t143) @@ -18398,14 +19037,14 @@ then1509: %t147 = call { ptr, i64, i64 } @finch.parser.describe(%S.lexer.Token %t146) store %S.lexer.Token %t146, ptr %a148 call void @finch.drop.S_lexer_Token(ptr %a148) - store { ptr, i64, i64 } { ptr @.str.857, i64 11, i64 0 }, ptr %a150 + store { ptr, i64, i64 } { ptr @.str.877, i64 11, i64 0 }, ptr %a150 store { ptr, i64, i64 } %t147, ptr %a151 call void @finch_str_concat(ptr %a149, ptr %a150, ptr %a151) store { ptr, i64, i64 } %t147, ptr %a152 call void @finch_str_drop(ptr %a152) %t153 = load { ptr, i64, i64 }, ptr %a149 store { ptr, i64, i64 } %t153, ptr %a155 - store { ptr, i64, i64 } { ptr @.str.858, i64 61, i64 0 }, ptr %a156 + store { ptr, i64, i64 } { ptr @.str.878, i64 61, i64 0 }, ptr %a156 call void @finch_str_concat(ptr %a154, ptr %a155, ptr %a156) store { ptr, i64, i64 } %t153, ptr %a157 call void @finch_str_drop(ptr %a157) @@ -18415,10 +19054,10 @@ then1509: call void @finch.drop.S_lexer_Token(ptr %a159) store { ptr, i64, i64 } %t158, ptr %a160 call void @finch_str_drop(ptr %a160) - br label %endif1511 -endif1511: - br label %endif1501 -endif1501: + br label %endif1549 +endif1549: + br label %endif1539 +endif1539: %t161 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 9 %t162 = getelementptr inbounds { ptr, i64, i64 }, ptr %t161, i32 0, i32 1 %t163 = load ptr, ptr %a1 @@ -18438,11 +19077,11 @@ endif1501: %t174 = load { ptr, i64, i64 }, ptr %t169 %t175 = extractvalue { ptr, i64, i64 } %t174, 1 %t176 = icmp uge i64 %t173, %t175 - br i1 %t176, label %range1512, label %inrange1513 -range1512: - call void @finch_panic_index(ptr @.str.859, i64 423, i64 %t173, i64 %t175) + br i1 %t176, label %range1550, label %inrange1551 +range1550: + call void @finch_panic_index(ptr @.str.879, i64 471, i64 %t173, i64 %t175) unreachable -inrange1513: +inrange1551: %t177 = extractvalue { ptr, i64, i64 } %t174, 0 %t178 = getelementptr inbounds %S.ast.Node, ptr %t177, i64 %t173 %t179 = getelementptr inbounds %S.ast.Node, ptr %t178, i32 0, i32 14 @@ -18464,50 +19103,50 @@ entry: %a45 = alloca %S.lexer.Token, align 16 store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 - %t3 = call %S.ast.Node @finch.parser.node(ptr %t2, { ptr, i64, i64 } { ptr @.str.860, i64 5, i64 0 }) + %t3 = call %S.ast.Node @finch.parser.node(ptr %t2, { ptr, i64, i64 } { ptr @.str.880, i64 5, i64 0 }) store %S.ast.Node %t3, ptr %a4 %t5 = load ptr, ptr %a1 - %t6 = call %S.lexer.Token @finch.parser.expect(ptr %t5, { ptr, i64, i64 } { ptr @.str.861, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.862, i64 3, i64 0 }) + %t6 = call %S.lexer.Token @finch.parser.expect(ptr %t5, { ptr, i64, i64 } { ptr @.str.881, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.882, i64 3, i64 0 }) store %S.lexer.Token %t6, ptr %a7 call void @finch.drop.S_lexer_Token(ptr %a7) %t8 = load ptr, ptr %a1 %t9 = icmp eq ptr %t8, null - br i1 %t9, label %panic1514, label %ok1515 -panic1514: - call void @finch_panic(ptr @.str.863, i64 432, ptr @.str.864) + br i1 %t9, label %panic1552, label %ok1553 +panic1552: + call void @finch_panic(ptr @.str.883, i64 480, ptr @.str.884) unreachable -ok1515: +ok1553: %t10 = getelementptr inbounds %S.parser.Parser, ptr %t8, i32 0, i32 2 %t11 = load i64, ptr %t10 store i64 %t11, ptr %a12 %t13 = load ptr, ptr %a1 %t14 = icmp eq ptr %t13, null - br i1 %t14, label %panic1516, label %ok1517 -panic1516: - call void @finch_panic(ptr @.str.865, i64 433, ptr @.str.866) + br i1 %t14, label %panic1554, label %ok1555 +panic1554: + call void @finch_panic(ptr @.str.885, i64 481, ptr @.str.886) unreachable -ok1517: +ok1555: %t15 = getelementptr inbounds %S.parser.Parser, ptr %t13, i32 0, i32 2 store i64 0, ptr %t15 - br label %while.cond1518 -while.cond1518: + br label %while.cond1556 +while.cond1556: %t16 = load ptr, ptr %a1 - %t17 = call i1 @finch.parser.at(ptr %t16, { ptr, i64, i64 } { ptr @.str.867, i64 1, i64 0 }) + %t17 = call i1 @finch.parser.at(ptr %t16, { ptr, i64, i64 } { ptr @.str.887, i64 1, i64 0 }) %t18 = xor i1 %t17, true - br i1 %t18, label %while.body1519, label %while.end1520 -while.body1519: + br i1 %t18, label %while.body1557, label %while.end1558 +while.body1557: %t19 = load ptr, ptr %a1 - %t20 = call i1 @finch.parser.at(ptr %t19, { ptr, i64, i64 } { ptr @.str.868, i64 3, i64 0 }) - br i1 %t20, label %then1521, label %endif1523 -then1521: + %t20 = call i1 @finch.parser.at(ptr %t19, { ptr, i64, i64 } { ptr @.str.888, i64 3, i64 0 }) + br i1 %t20, label %then1559, label %endif1561 +then1559: %t21 = load ptr, ptr %a1 %t22 = load ptr, ptr %a1 %t23 = call %S.lexer.Token @finch.parser.cur(ptr %t22) - call void @finch.parser.fail(ptr %t21, %S.lexer.Token %t23, { ptr, i64, i64 } { ptr @.str.869, i64 35, i64 0 }) + call void @finch.parser.fail(ptr %t21, %S.lexer.Token %t23, { ptr, i64, i64 } { ptr @.str.889, i64 35, i64 0 }) store %S.lexer.Token %t23, ptr %a24 call void @finch.drop.S_lexer_Token(ptr %a24) - br label %endif1523 -endif1523: + br label %endif1561 +endif1561: %t25 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 9 %t26 = getelementptr inbounds { ptr, i64, i64 }, ptr %t25, i32 0, i32 1 %t27 = load ptr, ptr %a1 @@ -18521,16 +19160,16 @@ endif1523: store i64 %t30, ptr %t26 %t33 = load ptr, ptr %a1 call void @finch.parser.endOfStatement(ptr %t33) - br label %while.cond1518 -while.end1520: + br label %while.cond1556 +while.end1558: %t34 = load i64, ptr %a12 %t35 = load ptr, ptr %a1 %t36 = icmp eq ptr %t35, null - br i1 %t36, label %panic1524, label %ok1525 -panic1524: - call void @finch_panic(ptr @.str.870, i64 441, ptr @.str.871) + br i1 %t36, label %panic1562, label %ok1563 +panic1562: + call void @finch_panic(ptr @.str.890, i64 489, ptr @.str.891) unreachable -ok1525: +ok1563: %t37 = getelementptr inbounds %S.parser.Parser, ptr %t35, i32 0, i32 2 store i64 %t34, ptr %t37 %t38 = load ptr, ptr %a1 @@ -18663,25 +19302,25 @@ entry: store { ptr, i64, i64 } %t3, ptr %a4 %t5 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t5, ptr %a6 - store { ptr, i64, i64 } { ptr @.str.872, i64 2, i64 0 }, ptr %a7 + store { ptr, i64, i64 } { ptr @.str.892, i64 2, i64 0 }, ptr %a7 %t8 = call i32 @finch_str_eq(ptr %a6, ptr %a7) %t9 = icmp ne i32 %t8, 0 - br i1 %t9, label %then1526, label %endif1528 -then1526: + br i1 %t9, label %then1564, label %endif1566 +then1564: %t10 = load ptr, ptr %a1 %t11 = call %S.ast.Node @finch.parser.parseIf(ptr %t10) call void @finch_str_drop(ptr %a4) ret %S.ast.Node %t11 -endif1528: +endif1566: %t12 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t12, ptr %a13 - store { ptr, i64, i64 } { ptr @.str.873, i64 5, i64 0 }, ptr %a14 + store { ptr, i64, i64 } { ptr @.str.893, i64 5, i64 0 }, ptr %a14 %t15 = call i32 @finch_str_eq(ptr %a13, ptr %a14) %t16 = icmp ne i32 %t15, 0 - br i1 %t16, label %then1529, label %endif1531 -then1529: + br i1 %t16, label %then1567, label %endif1569 +then1567: %t17 = load ptr, ptr %a1 - %t18 = call %S.ast.Node @finch.parser.node(ptr %t17, { ptr, i64, i64 } { ptr @.str.874, i64 5, i64 0 }) + %t18 = call %S.ast.Node @finch.parser.node(ptr %t17, { ptr, i64, i64 } { ptr @.str.894, i64 5, i64 0 }) store %S.ast.Node %t18, ptr %a19 %t20 = load ptr, ptr %a1 %t21 = call %S.lexer.Token @finch.parser.next(ptr %t20) @@ -18712,23 +19351,23 @@ then1529: %t39 = load %S.ast.Node, ptr %a19 call void @finch_str_drop(ptr %a4) ret %S.ast.Node %t39 -endif1531: +endif1569: %t40 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t40, ptr %a41 - store { ptr, i64, i64 } { ptr @.str.875, i64 3, i64 0 }, ptr %a42 + store { ptr, i64, i64 } { ptr @.str.895, i64 3, i64 0 }, ptr %a42 %t43 = call i32 @finch_str_eq(ptr %a41, ptr %a42) %t44 = icmp ne i32 %t43, 0 - br i1 %t44, label %then1532, label %endif1534 -then1532: + br i1 %t44, label %then1570, label %endif1572 +then1570: %t45 = load ptr, ptr %a1 - %t46 = call %S.ast.Node @finch.parser.node(ptr %t45, { ptr, i64, i64 } { ptr @.str.876, i64 3, i64 0 }) + %t46 = call %S.ast.Node @finch.parser.node(ptr %t45, { ptr, i64, i64 } { ptr @.str.896, i64 3, i64 0 }) store %S.ast.Node %t46, ptr %a47 %t48 = load ptr, ptr %a1 %t49 = call %S.lexer.Token @finch.parser.next(ptr %t48) store %S.lexer.Token %t49, ptr %a50 call void @finch.drop.S_lexer_Token(ptr %a50) %t51 = load ptr, ptr %a1 - %t52 = call %S.lexer.Token @finch.parser.expect(ptr %t51, { ptr, i64, i64 } { ptr @.str.877, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.878, i64 20, i64 0 }) + %t52 = call %S.lexer.Token @finch.parser.expect(ptr %t51, { ptr, i64, i64 } { ptr @.str.897, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.898, i64 20, i64 0 }) %t53 = extractvalue %S.lexer.Token %t52, 1 store { ptr, i64, i64 } %t53, ptr %a54 call void @finch_str_copy(ptr %a55, ptr %a54) @@ -18741,11 +19380,11 @@ then1532: store { ptr, i64, i64 } %t59, ptr %a60 call void @finch_str_drop(ptr %a60) %t61 = load ptr, ptr %a1 - %t62 = call i1 @finch.parser.accept(ptr %t61, { ptr, i64, i64 } { ptr @.str.879, i64 1, i64 0 }) - br i1 %t62, label %then1535, label %endif1537 -then1535: + %t62 = call i1 @finch.parser.accept(ptr %t61, { ptr, i64, i64 } { ptr @.str.899, i64 1, i64 0 }) + br i1 %t62, label %then1573, label %endif1575 +then1573: %t63 = load ptr, ptr %a1 - %t64 = call %S.lexer.Token @finch.parser.expect(ptr %t63, { ptr, i64, i64 } { ptr @.str.880, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.881, i64 27, i64 0 }) + %t64 = call %S.lexer.Token @finch.parser.expect(ptr %t63, { ptr, i64, i64 } { ptr @.str.900, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.901, i64 27, i64 0 }) %t65 = extractvalue %S.lexer.Token %t64, 1 store { ptr, i64, i64 } %t65, ptr %a66 call void @finch_str_copy(ptr %a67, ptr %a66) @@ -18757,10 +19396,10 @@ then1535: store { ptr, i64, i64 } %t68, ptr %t70 store { ptr, i64, i64 } %t71, ptr %a72 call void @finch_str_drop(ptr %a72) - br label %endif1537 -endif1537: + br label %endif1575 +endif1575: %t73 = load ptr, ptr %a1 - %t74 = call %S.lexer.Token @finch.parser.expect(ptr %t73, { ptr, i64, i64 } { ptr @.str.882, i64 2, i64 0 }, { ptr, i64, i64 } { ptr @.str.883, i64 4, i64 0 }) + %t74 = call %S.lexer.Token @finch.parser.expect(ptr %t73, { ptr, i64, i64 } { ptr @.str.902, i64 2, i64 0 }, { ptr, i64, i64 } { ptr @.str.903, i64 4, i64 0 }) store %S.lexer.Token %t74, ptr %a75 call void @finch.drop.S_lexer_Token(ptr %a75) %t76 = getelementptr inbounds %S.ast.Node, ptr %a47, i32 0, i32 9 @@ -18775,23 +19414,23 @@ endif1537: store %S.ast.Node %t79, ptr %t83 store i64 %t81, ptr %t77 %t84 = load ptr, ptr %a1 - %t85 = call i1 @finch.parser.accept(ptr %t84, { ptr, i64, i64 } { ptr @.str.884, i64 2, i64 0 }) - br i1 %t85, label %then1538, label %else1539 -then1538: + %t85 = call i1 @finch.parser.accept(ptr %t84, { ptr, i64, i64 } { ptr @.str.904, i64 2, i64 0 }) + br i1 %t85, label %then1576, label %else1577 +then1576: %t86 = getelementptr inbounds %S.ast.Node, ptr %a47, i32 0, i32 4 %t87 = getelementptr inbounds { ptr, i64, i64 }, ptr %t86, i32 0, i32 1 %t88 = load i64, ptr %t87 %t89 = icmp sgt i64 %t88, 0 - br i1 %t89, label %then1541, label %endif1543 -then1541: + br i1 %t89, label %then1579, label %endif1581 +then1579: %t90 = load ptr, ptr %a1 %t91 = load ptr, ptr %a1 %t92 = call %S.lexer.Token @finch.parser.cur(ptr %t91) - call void @finch.parser.fail(ptr %t90, %S.lexer.Token %t92, { ptr, i64, i64 } { ptr @.str.885, i64 55, i64 0 }) + call void @finch.parser.fail(ptr %t90, %S.lexer.Token %t92, { ptr, i64, i64 } { ptr @.str.905, i64 55, i64 0 }) store %S.lexer.Token %t92, ptr %a93 call void @finch.drop.S_lexer_Token(ptr %a93) - br label %endif1543 -endif1543: + br label %endif1581 +endif1581: %t94 = getelementptr inbounds %S.ast.Node, ptr %a47, i32 0, i32 9 %t95 = getelementptr inbounds { ptr, i64, i64 }, ptr %t94, i32 0, i32 1 %t96 = load ptr, ptr %a1 @@ -18803,15 +19442,15 @@ endif1543: %t101 = getelementptr inbounds %S.ast.Node, ptr %t100, i64 %t98 store %S.ast.Node %t97, ptr %t101 store i64 %t99, ptr %t95 - br label %endif1540 -else1539: + br label %endif1578 +else1577: %t102 = getelementptr inbounds %S.ast.Node, ptr %a47, i32 0, i32 0 %t103 = load { ptr, i64, i64 }, ptr %t102 - store { ptr, i64, i64 } { ptr @.str.886, i64 4, i64 0 }, ptr %t102 + store { ptr, i64, i64 } { ptr @.str.906, i64 4, i64 0 }, ptr %t102 store { ptr, i64, i64 } %t103, ptr %a104 call void @finch_str_drop(ptr %a104) - br label %endif1540 -endif1540: + br label %endif1578 +endif1578: %t105 = getelementptr inbounds %S.ast.Node, ptr %a47, i32 0, i32 9 %t106 = getelementptr inbounds { ptr, i64, i64 }, ptr %t105, i32 0, i32 1 %t107 = load ptr, ptr %a1 @@ -18826,53 +19465,53 @@ endif1540: %t113 = load %S.ast.Node, ptr %a47 call void @finch_str_drop(ptr %a4) ret %S.ast.Node %t113 -endif1534: +endif1572: %t114 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t114, ptr %a115 - store { ptr, i64, i64 } { ptr @.str.887, i64 5, i64 0 }, ptr %a116 + store { ptr, i64, i64 } { ptr @.str.907, i64 5, i64 0 }, ptr %a116 %t117 = call i32 @finch_str_eq(ptr %a115, ptr %a116) %t118 = icmp ne i32 %t117, 0 - br i1 %t118, label %then1544, label %endif1546 -then1544: + br i1 %t118, label %then1582, label %endif1584 +then1582: %t119 = load ptr, ptr %a1 %t120 = call %S.ast.Node @finch.parser.parseMatch(ptr %t119, i1 false) call void @finch_str_drop(ptr %a4) ret %S.ast.Node %t120 -endif1546: +endif1584: %t121 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t121, ptr %a122 - store { ptr, i64, i64 } { ptr @.str.888, i64 6, i64 0 }, ptr %a123 + store { ptr, i64, i64 } { ptr @.str.908, i64 6, i64 0 }, ptr %a123 %t124 = call i32 @finch_str_eq(ptr %a122, ptr %a123) %t125 = icmp ne i32 %t124, 0 - br i1 %t125, label %then1547, label %endif1549 -then1547: + br i1 %t125, label %then1585, label %endif1587 +then1585: %t126 = load ptr, ptr %a1 - %t127 = call %S.ast.Node @finch.parser.node(ptr %t126, { ptr, i64, i64 } { ptr @.str.889, i64 6, i64 0 }) + %t127 = call %S.ast.Node @finch.parser.node(ptr %t126, { ptr, i64, i64 } { ptr @.str.909, i64 6, i64 0 }) store %S.ast.Node %t127, ptr %a128 %t129 = load ptr, ptr %a1 %t130 = call %S.lexer.Token @finch.parser.next(ptr %t129) store %S.lexer.Token %t130, ptr %a131 call void @finch.drop.S_lexer_Token(ptr %a131) %t132 = load ptr, ptr %a1 - %t133 = call i1 @finch.parser.at(ptr %t132, { ptr, i64, i64 } { ptr @.str.890, i64 1, i64 0 }) + %t133 = call i1 @finch.parser.at(ptr %t132, { ptr, i64, i64 } { ptr @.str.910, i64 1, i64 0 }) %t134 = xor i1 %t133, true - br label %logic.from1550 -logic.from1550: - br i1 %t134, label %logic.rhs1551, label %logic.end1552 -logic.rhs1551: + br label %logic.from1588 +logic.from1588: + br i1 %t134, label %logic.rhs1589, label %logic.end1590 +logic.rhs1589: %t135 = load ptr, ptr %a1 %t136 = call %S.lexer.Token @finch.parser.cur(ptr %t135) %t137 = extractvalue %S.lexer.Token %t136, 4 store %S.lexer.Token %t136, ptr %a138 call void @finch.drop.S_lexer_Token(ptr %a138) %t139 = xor i1 %t137, true - br label %logic.rend1553 -logic.rend1553: - br label %logic.end1552 -logic.end1552: - %t140 = phi i1 [ false, %logic.from1550 ], [ %t139, %logic.rend1553 ] - br i1 %t140, label %then1554, label %endif1556 -then1554: + br label %logic.rend1591 +logic.rend1591: + br label %logic.end1590 +logic.end1590: + %t140 = phi i1 [ false, %logic.from1588 ], [ %t139, %logic.rend1591 ] + br i1 %t140, label %then1592, label %endif1594 +then1592: %t141 = getelementptr inbounds %S.ast.Node, ptr %a128, i32 0, i32 9 %t142 = getelementptr inbounds { ptr, i64, i64 }, ptr %t141, i32 0, i32 1 %t143 = load ptr, ptr %a1 @@ -18884,33 +19523,33 @@ then1554: %t148 = getelementptr inbounds %S.ast.Node, ptr %t147, i64 %t145 store %S.ast.Node %t144, ptr %t148 store i64 %t146, ptr %t142 - br label %endif1556 -endif1556: + br label %endif1594 +endif1594: %t149 = load %S.ast.Node, ptr %a128 call void @finch_str_drop(ptr %a4) ret %S.ast.Node %t149 -endif1549: +endif1587: %t150 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t150, ptr %a151 - store { ptr, i64, i64 } { ptr @.str.891, i64 5, i64 0 }, ptr %a152 + store { ptr, i64, i64 } { ptr @.str.911, i64 5, i64 0 }, ptr %a152 %t153 = call i32 @finch_str_eq(ptr %a151, ptr %a152) %t154 = icmp ne i32 %t153, 0 - br label %logic.from1557 -logic.from1557: - br i1 %t154, label %logic.end1559, label %logic.rhs1558 -logic.rhs1558: + br label %logic.from1595 +logic.from1595: + br i1 %t154, label %logic.end1597, label %logic.rhs1596 +logic.rhs1596: %t155 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t155, ptr %a156 - store { ptr, i64, i64 } { ptr @.str.892, i64 8, i64 0 }, ptr %a157 + store { ptr, i64, i64 } { ptr @.str.912, i64 8, i64 0 }, ptr %a157 %t158 = call i32 @finch_str_eq(ptr %a156, ptr %a157) %t159 = icmp ne i32 %t158, 0 - br label %logic.rend1560 -logic.rend1560: - br label %logic.end1559 -logic.end1559: - %t160 = phi i1 [ true, %logic.from1557 ], [ %t159, %logic.rend1560 ] - br i1 %t160, label %then1561, label %endif1563 -then1561: + br label %logic.rend1598 +logic.rend1598: + br label %logic.end1597 +logic.end1597: + %t160 = phi i1 [ true, %logic.from1595 ], [ %t159, %logic.rend1598 ] + br i1 %t160, label %then1599, label %endif1601 +then1599: %t161 = load ptr, ptr %a1 %t162 = load { ptr, i64, i64 }, ptr %a4 %t163 = call %S.ast.Node @finch.parser.node(ptr %t161, { ptr, i64, i64 } %t162) @@ -18922,45 +19561,45 @@ then1561: %t168 = load %S.ast.Node, ptr %a164 call void @finch_str_drop(ptr %a4) ret %S.ast.Node %t168 -endif1563: +endif1601: %t169 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t169, ptr %a170 - store { ptr, i64, i64 } { ptr @.str.893, i64 1, i64 0 }, ptr %a171 + store { ptr, i64, i64 } { ptr @.str.913, i64 1, i64 0 }, ptr %a171 %t172 = call i32 @finch_str_eq(ptr %a170, ptr %a171) %t173 = icmp ne i32 %t172, 0 - br i1 %t173, label %then1564, label %endif1566 -then1564: + br i1 %t173, label %then1602, label %endif1604 +then1602: %t174 = load ptr, ptr %a1 %t175 = call %S.ast.Node @finch.parser.parseBlock(ptr %t174) call void @finch_str_drop(ptr %a4) ret %S.ast.Node %t175 -endif1566: +endif1604: %t176 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t176, ptr %a177 - store { ptr, i64, i64 } { ptr @.str.894, i64 5, i64 0 }, ptr %a178 + store { ptr, i64, i64 } { ptr @.str.914, i64 5, i64 0 }, ptr %a178 %t179 = call i32 @finch_str_eq(ptr %a177, ptr %a178) %t180 = icmp ne i32 %t179, 0 - br i1 %t180, label %then1567, label %endif1569 -then1567: + br i1 %t180, label %then1605, label %endif1607 +then1605: %t181 = load ptr, ptr %a1 - %t182 = call %S.ast.Node @finch.parser.node(ptr %t181, { ptr, i64, i64 } { ptr @.str.895, i64 5, i64 0 }) + %t182 = call %S.ast.Node @finch.parser.node(ptr %t181, { ptr, i64, i64 } { ptr @.str.915, i64 5, i64 0 }) store %S.ast.Node %t182, ptr %a183 %t184 = load ptr, ptr %a1 %t185 = call %S.lexer.Token @finch.parser.next(ptr %t184) store %S.lexer.Token %t185, ptr %a186 call void @finch.drop.S_lexer_Token(ptr %a186) %t187 = load ptr, ptr %a1 - %t188 = call i1 @finch.parser.at(ptr %t187, { ptr, i64, i64 } { ptr @.str.896, i64 5, i64 0 }) - br i1 %t188, label %then1570, label %endif1572 -then1570: + %t188 = call i1 @finch.parser.at(ptr %t187, { ptr, i64, i64 } { ptr @.str.916, i64 5, i64 0 }) + br i1 %t188, label %then1608, label %endif1610 +then1608: %t189 = load ptr, ptr %a1 %t190 = load ptr, ptr %a1 %t191 = call %S.lexer.Token @finch.parser.cur(ptr %t190) - call void @finch.parser.fail(ptr %t189, %S.lexer.Token %t191, { ptr, i64, i64 } { ptr @.str.897, i64 33, i64 0 }) + call void @finch.parser.fail(ptr %t189, %S.lexer.Token %t191, { ptr, i64, i64 } { ptr @.str.917, i64 33, i64 0 }) store %S.lexer.Token %t191, ptr %a192 call void @finch.drop.S_lexer_Token(ptr %a192) - br label %endif1572 -endif1572: + br label %endif1610 +endif1610: %t193 = getelementptr inbounds %S.ast.Node, ptr %a183, i32 0, i32 9 %t194 = getelementptr inbounds { ptr, i64, i64 }, ptr %t193, i32 0, i32 1 %t195 = load ptr, ptr %a1 @@ -18975,66 +19614,66 @@ endif1572: %t201 = load %S.ast.Node, ptr %a183 call void @finch_str_drop(ptr %a4) ret %S.ast.Node %t201 -endif1569: +endif1607: %t202 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t202, ptr %a203 - store { ptr, i64, i64 } { ptr @.str.898, i64 2, i64 0 }, ptr %a204 + store { ptr, i64, i64 } { ptr @.str.918, i64 2, i64 0 }, ptr %a204 %t205 = call i32 @finch_str_eq(ptr %a203, ptr %a204) %t206 = icmp ne i32 %t205, 0 - br label %logic.from1573 -logic.from1573: - br i1 %t206, label %logic.end1575, label %logic.rhs1574 -logic.rhs1574: + br label %logic.from1611 +logic.from1611: + br i1 %t206, label %logic.end1613, label %logic.rhs1612 +logic.rhs1612: %t207 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t207, ptr %a208 - store { ptr, i64, i64 } { ptr @.str.899, i64 6, i64 0 }, ptr %a209 + store { ptr, i64, i64 } { ptr @.str.919, i64 6, i64 0 }, ptr %a209 %t210 = call i32 @finch_str_eq(ptr %a208, ptr %a209) %t211 = icmp ne i32 %t210, 0 - br label %logic.rend1576 -logic.rend1576: - br label %logic.end1575 -logic.end1575: - %t212 = phi i1 [ true, %logic.from1573 ], [ %t211, %logic.rend1576 ] - br label %logic.from1577 -logic.from1577: - br i1 %t212, label %logic.end1579, label %logic.rhs1578 -logic.rhs1578: + br label %logic.rend1614 +logic.rend1614: + br label %logic.end1613 +logic.end1613: + %t212 = phi i1 [ true, %logic.from1611 ], [ %t211, %logic.rend1614 ] + br label %logic.from1615 +logic.from1615: + br i1 %t212, label %logic.end1617, label %logic.rhs1616 +logic.rhs1616: %t213 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t213, ptr %a214 - store { ptr, i64, i64 } { ptr @.str.900, i64 6, i64 0 }, ptr %a215 + store { ptr, i64, i64 } { ptr @.str.920, i64 6, i64 0 }, ptr %a215 %t216 = call i32 @finch_str_eq(ptr %a214, ptr %a215) %t217 = icmp ne i32 %t216, 0 - br label %logic.rend1580 -logic.rend1580: - br label %logic.end1579 -logic.end1579: - %t218 = phi i1 [ true, %logic.from1577 ], [ %t217, %logic.rend1580 ] - br label %logic.from1581 -logic.from1581: - br i1 %t218, label %logic.end1583, label %logic.rhs1582 -logic.rhs1582: + br label %logic.rend1618 +logic.rend1618: + br label %logic.end1617 +logic.end1617: + %t218 = phi i1 [ true, %logic.from1615 ], [ %t217, %logic.rend1618 ] + br label %logic.from1619 +logic.from1619: + br i1 %t218, label %logic.end1621, label %logic.rhs1620 +logic.rhs1620: %t219 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t219, ptr %a220 - store { ptr, i64, i64 } { ptr @.str.901, i64 4, i64 0 }, ptr %a221 + store { ptr, i64, i64 } { ptr @.str.921, i64 4, i64 0 }, ptr %a221 %t222 = call i32 @finch_str_eq(ptr %a220, ptr %a221) %t223 = icmp ne i32 %t222, 0 - br label %logic.rend1584 -logic.rend1584: - br label %logic.end1583 -logic.end1583: - %t224 = phi i1 [ true, %logic.from1581 ], [ %t223, %logic.rend1584 ] - br i1 %t224, label %then1585, label %endif1587 -then1585: + br label %logic.rend1622 +logic.rend1622: + br label %logic.end1621 +logic.end1621: + %t224 = phi i1 [ true, %logic.from1619 ], [ %t223, %logic.rend1622 ] + br i1 %t224, label %then1623, label %endif1625 +then1623: %t225 = load ptr, ptr %a1 %t226 = load ptr, ptr %a1 %t227 = call %S.lexer.Token @finch.parser.cur(ptr %t226) %t228 = load { ptr, i64, i64 }, ptr %a4 - store { ptr, i64, i64 } { ptr @.str.902, i64 1, i64 0 }, ptr %a230 + store { ptr, i64, i64 } { ptr @.str.922, i64 1, i64 0 }, ptr %a230 store { ptr, i64, i64 } %t228, ptr %a231 call void @finch_str_concat(ptr %a229, ptr %a230, ptr %a231) %t232 = load { ptr, i64, i64 }, ptr %a229 store { ptr, i64, i64 } %t232, ptr %a234 - store { ptr, i64, i64 } { ptr @.str.903, i64 48, i64 0 }, ptr %a235 + store { ptr, i64, i64 } { ptr @.str.923, i64 48, i64 0 }, ptr %a235 call void @finch_str_concat(ptr %a233, ptr %a234, ptr %a235) store { ptr, i64, i64 } %t232, ptr %a236 call void @finch_str_drop(ptr %a236) @@ -19044,14 +19683,14 @@ then1585: call void @finch.drop.S_lexer_Token(ptr %a238) store { ptr, i64, i64 } %t237, ptr %a239 call void @finch_str_drop(ptr %a239) - br label %endif1587 -endif1587: + br label %endif1625 +endif1625: %t240 = load ptr, ptr %a1 %t241 = call i1 @finch.parser.atDeclaration(ptr %t240) - br i1 %t241, label %then1588, label %endif1590 -then1588: + br i1 %t241, label %then1626, label %endif1628 +then1626: %t242 = load ptr, ptr %a1 - %t243 = call %S.ast.Node @finch.parser.node(ptr %t242, { ptr, i64, i64 } { ptr @.str.904, i64 4, i64 0 }) + %t243 = call %S.ast.Node @finch.parser.node(ptr %t242, { ptr, i64, i64 } { ptr @.str.924, i64 4, i64 0 }) store %S.ast.Node %t243, ptr %a244 %t245 = getelementptr inbounds %S.ast.Node, ptr %a244, i32 0, i32 6 store i1 true, ptr %t245 @@ -19063,7 +19702,7 @@ then1588: store %S.ast.Type %t249, ptr %a250 call void @finch.drop.S_ast_Type(ptr %a250) %t251 = load ptr, ptr %a1 - %t252 = call %S.lexer.Token @finch.parser.expect(ptr %t251, { ptr, i64, i64 } { ptr @.str.905, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.906, i64 15, i64 0 }) + %t252 = call %S.lexer.Token @finch.parser.expect(ptr %t251, { ptr, i64, i64 } { ptr @.str.925, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.926, i64 15, i64 0 }) %t253 = extractvalue %S.lexer.Token %t252, 1 store { ptr, i64, i64 } %t253, ptr %a254 call void @finch_str_copy(ptr %a255, ptr %a254) @@ -19076,9 +19715,9 @@ then1588: store { ptr, i64, i64 } %t259, ptr %a260 call void @finch_str_drop(ptr %a260) %t261 = load ptr, ptr %a1 - %t262 = call i1 @finch.parser.accept(ptr %t261, { ptr, i64, i64 } { ptr @.str.907, i64 1, i64 0 }) - br i1 %t262, label %then1591, label %endif1593 -then1591: + %t262 = call i1 @finch.parser.accept(ptr %t261, { ptr, i64, i64 } { ptr @.str.927, i64 1, i64 0 }) + br i1 %t262, label %then1629, label %endif1631 +then1629: %t263 = getelementptr inbounds %S.ast.Node, ptr %a244, i32 0, i32 9 %t264 = getelementptr inbounds { ptr, i64, i64 }, ptr %t263, i32 0, i32 1 %t265 = load ptr, ptr %a1 @@ -19090,35 +19729,35 @@ then1591: %t270 = getelementptr inbounds %S.ast.Node, ptr %t269, i64 %t267 store %S.ast.Node %t266, ptr %t270 store i64 %t268, ptr %t264 - br label %endif1593 -endif1593: + br label %endif1631 +endif1631: %t271 = load %S.ast.Node, ptr %a244 call void @finch_str_drop(ptr %a4) ret %S.ast.Node %t271 -endif1590: +endif1628: %t272 = load ptr, ptr %a1 - %t273 = call i1 @finch.parser.at(ptr %t272, { ptr, i64, i64 } { ptr @.str.908, i64 5, i64 0 }) - br label %logic.from1594 -logic.from1594: - br i1 %t273, label %logic.rhs1595, label %logic.end1596 -logic.rhs1595: + %t273 = call i1 @finch.parser.at(ptr %t272, { ptr, i64, i64 } { ptr @.str.928, i64 5, i64 0 }) + br label %logic.from1632 +logic.from1632: + br i1 %t273, label %logic.rhs1633, label %logic.end1634 +logic.rhs1633: %t274 = load ptr, ptr %a1 %t275 = call { ptr, i64, i64 } @finch.parser.peekKind(ptr %t274, i64 1) store { ptr, i64, i64 } %t275, ptr %a276 - store { ptr, i64, i64 } { ptr @.str.909, i64 2, i64 0 }, ptr %a277 + store { ptr, i64, i64 } { ptr @.str.929, i64 2, i64 0 }, ptr %a277 %t278 = call i32 @finch_str_eq(ptr %a276, ptr %a277) %t279 = icmp ne i32 %t278, 0 store { ptr, i64, i64 } %t275, ptr %a280 call void @finch_str_drop(ptr %a280) - br label %logic.rend1597 -logic.rend1597: - br label %logic.end1596 -logic.end1596: - %t281 = phi i1 [ false, %logic.from1594 ], [ %t279, %logic.rend1597 ] - br i1 %t281, label %then1598, label %endif1600 -then1598: + br label %logic.rend1635 +logic.rend1635: + br label %logic.end1634 +logic.end1634: + %t281 = phi i1 [ false, %logic.from1632 ], [ %t279, %logic.rend1635 ] + br i1 %t281, label %then1636, label %endif1638 +then1636: %t282 = load ptr, ptr %a1 - %t283 = call %S.ast.Node @finch.parser.node(ptr %t282, { ptr, i64, i64 } { ptr @.str.910, i64 4, i64 0 }) + %t283 = call %S.ast.Node @finch.parser.node(ptr %t282, { ptr, i64, i64 } { ptr @.str.930, i64 4, i64 0 }) store %S.ast.Node %t283, ptr %a284 %t285 = load ptr, ptr %a1 %t286 = call %S.lexer.Token @finch.parser.next(ptr %t285) @@ -19151,7 +19790,7 @@ then1598: %t306 = load %S.ast.Node, ptr %a284 call void @finch_str_drop(ptr %a4) ret %S.ast.Node %t306 -endif1600: +endif1638: %t307 = load ptr, ptr %a1 %t308 = call %S.lexer.Token @finch.parser.cur(ptr %t307) store %S.lexer.Token %t308, ptr %a309 @@ -19161,17 +19800,17 @@ endif1600: %t313 = mul i64 6, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t314 = call ptr @finch_alloc(i64 %t313) %t315 = getelementptr inbounds { ptr, i64, i64 }, ptr %t314, i64 0 - store { ptr, i64, i64 } { ptr @.str.911, i64 1, i64 0 }, ptr %t315 + store { ptr, i64, i64 } { ptr @.str.931, i64 1, i64 0 }, ptr %t315 %t316 = getelementptr inbounds { ptr, i64, i64 }, ptr %t314, i64 1 - store { ptr, i64, i64 } { ptr @.str.912, i64 2, i64 0 }, ptr %t316 + store { ptr, i64, i64 } { ptr @.str.932, i64 2, i64 0 }, ptr %t316 %t317 = getelementptr inbounds { ptr, i64, i64 }, ptr %t314, i64 2 - store { ptr, i64, i64 } { ptr @.str.913, i64 2, i64 0 }, ptr %t317 + store { ptr, i64, i64 } { ptr @.str.933, i64 2, i64 0 }, ptr %t317 %t318 = getelementptr inbounds { ptr, i64, i64 }, ptr %t314, i64 3 - store { ptr, i64, i64 } { ptr @.str.914, i64 2, i64 0 }, ptr %t318 + store { ptr, i64, i64 } { ptr @.str.934, i64 2, i64 0 }, ptr %t318 %t319 = getelementptr inbounds { ptr, i64, i64 }, ptr %t314, i64 4 - store { ptr, i64, i64 } { ptr @.str.915, i64 2, i64 0 }, ptr %t319 + store { ptr, i64, i64 } { ptr @.str.935, i64 2, i64 0 }, ptr %t319 %t320 = getelementptr inbounds { ptr, i64, i64 }, ptr %t314, i64 5 - store { ptr, i64, i64 } { ptr @.str.916, i64 2, i64 0 }, ptr %t320 + store { ptr, i64, i64 } { ptr @.str.936, i64 2, i64 0 }, ptr %t320 %t321 = insertvalue { ptr, i64, i64 } undef, ptr %t314, 0 %t322 = insertvalue { ptr, i64, i64 } %t321, i64 6, 1 %t323 = insertvalue { ptr, i64, i64 } %t322, i64 6, 2 @@ -19183,88 +19822,88 @@ endif1600: %t329 = load i64, ptr %t325 %t330 = load ptr, ptr %a324 store i64 0, ptr %a331 - br label %find.cond1601 -find.cond1601: + br label %find.cond1639 +find.cond1639: %t332 = load i64, ptr %a331 %t333 = icmp slt i64 %t332, %t329 - br i1 %t333, label %find.body1602, label %find.end1605 -find.body1602: + br i1 %t333, label %find.body1640, label %find.end1643 +find.body1640: %t334 = getelementptr inbounds { ptr, i64, i64 }, ptr %t330, i64 %t332 %t335 = load { ptr, i64, i64 }, ptr %t334 store { ptr, i64, i64 } %t335, ptr %a336 store { ptr, i64, i64 } %t327, ptr %a337 %t338 = call i32 @finch_str_eq(ptr %a336, ptr %a337) %t339 = icmp ne i32 %t338, 0 - br i1 %t339, label %find.hit1603, label %find.next1604 -find.hit1603: + br i1 %t339, label %find.hit1641, label %find.next1642 +find.hit1641: store i64 %t332, ptr %a328 - br label %find.end1605 -find.next1604: + br label %find.end1643 +find.next1642: %t340 = add i64 %t332, 1 store i64 %t340, ptr %a331 - br label %find.cond1601 -find.end1605: + br label %find.cond1639 +find.end1643: store { ptr, i64, i64 } %t327, ptr %a341 call void @finch_str_drop(ptr %a341) %t342 = load i64, ptr %a328 %t343 = icmp sge i64 %t342, 0 - br label %logic.from1606 -logic.from1606: - br i1 %t343, label %logic.rhs1607, label %logic.end1608 -logic.rhs1607: + br label %logic.from1644 +logic.from1644: + br i1 %t343, label %logic.rhs1645, label %logic.end1646 +logic.rhs1645: %t344 = load ptr, ptr %a1 %t345 = call i1 @finch.parser.sameLine(ptr %t344) - br label %logic.rend1609 -logic.rend1609: - br label %logic.end1608 -logic.end1608: - %t346 = phi i1 [ false, %logic.from1606 ], [ %t345, %logic.rend1609 ] - br i1 %t346, label %then1610, label %endif1612 -then1610: + br label %logic.rend1647 +logic.rend1647: + br label %logic.end1646 +logic.end1646: + %t346 = phi i1 [ false, %logic.from1644 ], [ %t345, %logic.rend1647 ] + br i1 %t346, label %then1648, label %endif1650 +then1648: %t347 = getelementptr inbounds %S.ast.Node, ptr %a312, i32 0, i32 0 %t348 = load { ptr, i64, i64 }, ptr %t347 store { ptr, i64, i64 } %t348, ptr %a349 - store { ptr, i64, i64 } { ptr @.str.917, i64 3, i64 0 }, ptr %a350 + store { ptr, i64, i64 } { ptr @.str.937, i64 3, i64 0 }, ptr %a350 %t351 = call i32 @finch_str_eq(ptr %a349, ptr %a350) %t352 = icmp eq i32 %t351, 0 - br label %logic.from1613 -logic.from1613: - br i1 %t352, label %logic.rhs1614, label %logic.end1615 -logic.rhs1614: + br label %logic.from1651 +logic.from1651: + br i1 %t352, label %logic.rhs1652, label %logic.end1653 +logic.rhs1652: %t353 = getelementptr inbounds %S.ast.Node, ptr %a312, i32 0, i32 0 %t354 = load { ptr, i64, i64 }, ptr %t353 store { ptr, i64, i64 } %t354, ptr %a355 - store { ptr, i64, i64 } { ptr @.str.918, i64 6, i64 0 }, ptr %a356 + store { ptr, i64, i64 } { ptr @.str.938, i64 6, i64 0 }, ptr %a356 %t357 = call i32 @finch_str_eq(ptr %a355, ptr %a356) %t358 = icmp eq i32 %t357, 0 - br label %logic.rend1616 -logic.rend1616: - br label %logic.end1615 -logic.end1615: - %t359 = phi i1 [ false, %logic.from1613 ], [ %t358, %logic.rend1616 ] - br label %logic.from1617 -logic.from1617: - br i1 %t359, label %logic.rhs1618, label %logic.end1619 -logic.rhs1618: + br label %logic.rend1654 +logic.rend1654: + br label %logic.end1653 +logic.end1653: + %t359 = phi i1 [ false, %logic.from1651 ], [ %t358, %logic.rend1654 ] + br label %logic.from1655 +logic.from1655: + br i1 %t359, label %logic.rhs1656, label %logic.end1657 +logic.rhs1656: %t360 = getelementptr inbounds %S.ast.Node, ptr %a312, i32 0, i32 0 %t361 = load { ptr, i64, i64 }, ptr %t360 store { ptr, i64, i64 } %t361, ptr %a362 - store { ptr, i64, i64 } { ptr @.str.919, i64 5, i64 0 }, ptr %a363 + store { ptr, i64, i64 } { ptr @.str.939, i64 5, i64 0 }, ptr %a363 %t364 = call i32 @finch_str_eq(ptr %a362, ptr %a363) %t365 = icmp eq i32 %t364, 0 - br label %logic.rend1620 -logic.rend1620: - br label %logic.end1619 -logic.end1619: - %t366 = phi i1 [ false, %logic.from1617 ], [ %t365, %logic.rend1620 ] - br i1 %t366, label %then1621, label %endif1623 -then1621: + br label %logic.rend1658 +logic.rend1658: + br label %logic.end1657 +logic.end1657: + %t366 = phi i1 [ false, %logic.from1655 ], [ %t365, %logic.rend1658 ] + br i1 %t366, label %then1659, label %endif1661 +then1659: %t367 = load ptr, ptr %a1 %t368 = load %S.lexer.Token, ptr %a309 - call void @finch.parser.fail(ptr %t367, %S.lexer.Token %t368, { ptr, i64, i64 } { ptr @.str.920, i64 66, i64 0 }) - br label %endif1623 -endif1623: - %t369 = insertvalue %S.ast.Node zeroinitializer, { ptr, i64, i64 } { ptr @.str.921, i64 6, i64 0 }, 0 + call void @finch.parser.fail(ptr %t367, %S.lexer.Token %t368, { ptr, i64, i64 } { ptr @.str.940, i64 66, i64 0 }) + br label %endif1661 +endif1661: + %t369 = insertvalue %S.ast.Node zeroinitializer, { ptr, i64, i64 } { ptr @.str.941, i64 6, i64 0 }, 0 %t370 = getelementptr inbounds %S.lexer.Token, ptr %a309, i32 0, i32 2 %t371 = load i64, ptr %t370 %t372 = insertvalue %S.ast.Node %t369, i64 %t371, 11 @@ -19273,11 +19912,11 @@ endif1623: %t375 = insertvalue %S.ast.Node %t372, i64 %t374, 12 %t376 = load ptr, ptr %a1 %t377 = icmp eq ptr %t376, null - br i1 %t377, label %panic1624, label %ok1625 -panic1624: - call void @finch_panic(ptr @.str.922, i64 536, ptr @.str.923) + br i1 %t377, label %panic1662, label %ok1663 +panic1662: + call void @finch_panic(ptr @.str.942, i64 584, ptr @.str.943) unreachable -ok1625: +ok1663: %t378 = getelementptr inbounds %S.parser.Parser, ptr %t376, i32 0, i32 3 %t379 = load i64, ptr %t378 %t380 = insertvalue %S.ast.Node %t375, i64 %t379, 13 @@ -19325,66 +19964,66 @@ ok1625: call void @finch.drop.S_lexer_Token(ptr %a309) call void @finch_str_drop(ptr %a4) ret %S.ast.Node %t410 -endif1612: +endif1650: %t411 = getelementptr inbounds %S.ast.Node, ptr %a312, i32 0, i32 0 %t412 = load { ptr, i64, i64 }, ptr %t411 store { ptr, i64, i64 } %t412, ptr %a413 - store { ptr, i64, i64 } { ptr @.str.924, i64 4, i64 0 }, ptr %a414 + store { ptr, i64, i64 } { ptr @.str.944, i64 4, i64 0 }, ptr %a414 %t415 = call i32 @finch_str_eq(ptr %a413, ptr %a414) %t416 = icmp eq i32 %t415, 0 - br label %logic.from1626 -logic.from1626: - br i1 %t416, label %logic.rhs1627, label %logic.end1628 -logic.rhs1627: + br label %logic.from1664 +logic.from1664: + br i1 %t416, label %logic.rhs1665, label %logic.end1666 +logic.rhs1665: %t417 = getelementptr inbounds %S.ast.Node, ptr %a312, i32 0, i32 0 %t418 = load { ptr, i64, i64 }, ptr %t417 store { ptr, i64, i64 } %t418, ptr %a419 - store { ptr, i64, i64 } { ptr @.str.925, i64 6, i64 0 }, ptr %a420 + store { ptr, i64, i64 } { ptr @.str.945, i64 6, i64 0 }, ptr %a420 %t421 = call i32 @finch_str_eq(ptr %a419, ptr %a420) %t422 = icmp eq i32 %t421, 0 - br label %logic.rend1629 -logic.rend1629: - br label %logic.end1628 -logic.end1628: - %t423 = phi i1 [ false, %logic.from1626 ], [ %t422, %logic.rend1629 ] - br label %logic.from1630 -logic.from1630: - br i1 %t423, label %logic.rhs1631, label %logic.end1632 -logic.rhs1631: + br label %logic.rend1667 +logic.rend1667: + br label %logic.end1666 +logic.end1666: + %t423 = phi i1 [ false, %logic.from1664 ], [ %t422, %logic.rend1667 ] + br label %logic.from1668 +logic.from1668: + br i1 %t423, label %logic.rhs1669, label %logic.end1670 +logic.rhs1669: %t424 = getelementptr inbounds %S.ast.Node, ptr %a312, i32 0, i32 0 %t425 = load { ptr, i64, i64 }, ptr %t424 store { ptr, i64, i64 } %t425, ptr %a426 - store { ptr, i64, i64 } { ptr @.str.926, i64 3, i64 0 }, ptr %a427 + store { ptr, i64, i64 } { ptr @.str.946, i64 3, i64 0 }, ptr %a427 %t428 = call i32 @finch_str_eq(ptr %a426, ptr %a427) %t429 = icmp eq i32 %t428, 0 - br label %logic.rend1633 -logic.rend1633: - br label %logic.end1632 -logic.end1632: - %t430 = phi i1 [ false, %logic.from1630 ], [ %t429, %logic.rend1633 ] - br label %logic.from1634 -logic.from1634: - br i1 %t430, label %logic.rhs1635, label %logic.end1636 -logic.rhs1635: + br label %logic.rend1671 +logic.rend1671: + br label %logic.end1670 +logic.end1670: + %t430 = phi i1 [ false, %logic.from1668 ], [ %t429, %logic.rend1671 ] + br label %logic.from1672 +logic.from1672: + br i1 %t430, label %logic.rhs1673, label %logic.end1674 +logic.rhs1673: %t431 = getelementptr inbounds %S.ast.Node, ptr %a312, i32 0, i32 0 %t432 = load { ptr, i64, i64 }, ptr %t431 store { ptr, i64, i64 } %t432, ptr %a433 - store { ptr, i64, i64 } { ptr @.str.927, i64 2, i64 0 }, ptr %a434 + store { ptr, i64, i64 } { ptr @.str.947, i64 2, i64 0 }, ptr %a434 %t435 = call i32 @finch_str_eq(ptr %a433, ptr %a434) %t436 = icmp eq i32 %t435, 0 - br label %logic.rend1637 -logic.rend1637: - br label %logic.end1636 -logic.end1636: - %t437 = phi i1 [ false, %logic.from1634 ], [ %t436, %logic.rend1637 ] - br i1 %t437, label %then1638, label %endif1640 -then1638: + br label %logic.rend1675 +logic.rend1675: + br label %logic.end1674 +logic.end1674: + %t437 = phi i1 [ false, %logic.from1672 ], [ %t436, %logic.rend1675 ] + br i1 %t437, label %then1676, label %endif1678 +then1676: %t438 = load ptr, ptr %a1 %t439 = load %S.lexer.Token, ptr %a309 - call void @finch.parser.fail(ptr %t438, %S.lexer.Token %t439, { ptr, i64, i64 } { ptr @.str.928, i64 37, i64 0 }) - br label %endif1640 -endif1640: - %t440 = insertvalue %S.ast.Node zeroinitializer, { ptr, i64, i64 } { ptr @.str.929, i64 4, i64 0 }, 0 + call void @finch.parser.fail(ptr %t438, %S.lexer.Token %t439, { ptr, i64, i64 } { ptr @.str.948, i64 37, i64 0 }) + br label %endif1678 +endif1678: + %t440 = insertvalue %S.ast.Node zeroinitializer, { ptr, i64, i64 } { ptr @.str.949, i64 4, i64 0 }, 0 %t441 = getelementptr inbounds %S.lexer.Token, ptr %a309, i32 0, i32 2 %t442 = load i64, ptr %t441 %t443 = insertvalue %S.ast.Node %t440, i64 %t442, 11 @@ -19393,11 +20032,11 @@ endif1640: %t446 = insertvalue %S.ast.Node %t443, i64 %t445, 12 %t447 = load ptr, ptr %a1 %t448 = icmp eq ptr %t447, null - br i1 %t448, label %panic1641, label %ok1642 -panic1641: - call void @finch_panic(ptr @.str.930, i64 545, ptr @.str.931) + br i1 %t448, label %panic1679, label %ok1680 +panic1679: + call void @finch_panic(ptr @.str.950, i64 593, ptr @.str.951) unreachable -ok1642: +ok1680: %t449 = getelementptr inbounds %S.parser.Parser, ptr %t447, i32 0, i32 3 %t450 = load i64, ptr %t449 %t451 = insertvalue %S.ast.Node %t446, i64 %t450, 13 @@ -19430,10 +20069,10 @@ entry: %a7 = alloca %S.lexer.Token, align 16 store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 - %t3 = call %S.ast.Node @finch.parser.node(ptr %t2, { ptr, i64, i64 } { ptr @.str.932, i64 2, i64 0 }) + %t3 = call %S.ast.Node @finch.parser.node(ptr %t2, { ptr, i64, i64 } { ptr @.str.952, i64 2, i64 0 }) store %S.ast.Node %t3, ptr %a4 %t5 = load ptr, ptr %a1 - %t6 = call %S.lexer.Token @finch.parser.expect(ptr %t5, { ptr, i64, i64 } { ptr @.str.933, i64 2, i64 0 }, { ptr, i64, i64 } { ptr @.str.934, i64 4, i64 0 }) + %t6 = call %S.lexer.Token @finch.parser.expect(ptr %t5, { ptr, i64, i64 } { ptr @.str.953, i64 2, i64 0 }, { ptr, i64, i64 } { ptr @.str.954, i64 4, i64 0 }) store %S.lexer.Token %t6, ptr %a7 call void @finch.drop.S_lexer_Token(ptr %a7) %t8 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 9 @@ -19459,13 +20098,13 @@ entry: store %S.ast.Node %t19, ptr %t23 store i64 %t21, ptr %t17 %t24 = load ptr, ptr %a1 - %t25 = call i1 @finch.parser.accept(ptr %t24, { ptr, i64, i64 } { ptr @.str.935, i64 4, i64 0 }) - br i1 %t25, label %then1643, label %endif1645 -then1643: + %t25 = call i1 @finch.parser.accept(ptr %t24, { ptr, i64, i64 } { ptr @.str.955, i64 4, i64 0 }) + br i1 %t25, label %then1681, label %endif1683 +then1681: %t26 = load ptr, ptr %a1 - %t27 = call i1 @finch.parser.at(ptr %t26, { ptr, i64, i64 } { ptr @.str.936, i64 2, i64 0 }) - br i1 %t27, label %then1646, label %else1647 -then1646: + %t27 = call i1 @finch.parser.at(ptr %t26, { ptr, i64, i64 } { ptr @.str.956, i64 2, i64 0 }) + br i1 %t27, label %then1684, label %else1685 +then1684: %t28 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 9 %t29 = getelementptr inbounds { ptr, i64, i64 }, ptr %t28, i32 0, i32 1 %t30 = load ptr, ptr %a1 @@ -19477,8 +20116,8 @@ then1646: %t35 = getelementptr inbounds %S.ast.Node, ptr %t34, i64 %t32 store %S.ast.Node %t31, ptr %t35 store i64 %t33, ptr %t29 - br label %endif1648 -else1647: + br label %endif1686 +else1685: %t36 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 9 %t37 = getelementptr inbounds { ptr, i64, i64 }, ptr %t36, i32 0, i32 1 %t38 = load ptr, ptr %a1 @@ -19490,10 +20129,10 @@ else1647: %t43 = getelementptr inbounds %S.ast.Node, ptr %t42, i64 %t40 store %S.ast.Node %t39, ptr %t43 store i64 %t41, ptr %t37 - br label %endif1648 -endif1648: - br label %endif1645 -endif1645: + br label %endif1686 +endif1686: + br label %endif1683 +endif1683: %t44 = load %S.ast.Node, ptr %a4 ret %S.ast.Node %t44 } @@ -19540,231 +20179,231 @@ entry: store { ptr, i64, i64 } %p0, ptr %a1 %t2 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t2, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.937, i64 2, i64 0 }, ptr %a4 + store { ptr, i64, i64 } { ptr @.str.957, i64 2, i64 0 }, ptr %a4 %t5 = call i32 @finch_str_eq(ptr %a3, ptr %a4) %t6 = icmp ne i32 %t5, 0 - br i1 %t6, label %then1649, label %endif1651 -then1649: + br i1 %t6, label %then1687, label %endif1689 +then1687: ret i64 1 -endif1651: +endif1689: %t7 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t7, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.938, i64 2, i64 0 }, ptr %a9 + store { ptr, i64, i64 } { ptr @.str.958, i64 2, i64 0 }, ptr %a9 %t10 = call i32 @finch_str_eq(ptr %a8, ptr %a9) %t11 = icmp ne i32 %t10, 0 - br i1 %t11, label %then1652, label %endif1654 -then1652: + br i1 %t11, label %then1690, label %endif1692 +then1690: ret i64 2 -endif1654: +endif1692: %t12 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t12, ptr %a13 - store { ptr, i64, i64 } { ptr @.str.939, i64 2, i64 0 }, ptr %a14 + store { ptr, i64, i64 } { ptr @.str.959, i64 2, i64 0 }, ptr %a14 %t15 = call i32 @finch_str_eq(ptr %a13, ptr %a14) %t16 = icmp ne i32 %t15, 0 - br label %logic.from1655 -logic.from1655: - br i1 %t16, label %logic.end1657, label %logic.rhs1656 -logic.rhs1656: - %t17 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t17, ptr %a18 - store { ptr, i64, i64 } { ptr @.str.940, i64 2, i64 0 }, ptr %a19 - %t20 = call i32 @finch_str_eq(ptr %a18, ptr %a19) - %t21 = icmp ne i32 %t20, 0 - br label %logic.rend1658 -logic.rend1658: - br label %logic.end1657 -logic.end1657: - %t22 = phi i1 [ true, %logic.from1655 ], [ %t21, %logic.rend1658 ] - br label %logic.from1659 -logic.from1659: - br i1 %t22, label %logic.end1661, label %logic.rhs1660 -logic.rhs1660: - %t23 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t23, ptr %a24 - store { ptr, i64, i64 } { ptr @.str.941, i64 1, i64 0 }, ptr %a25 - %t26 = call i32 @finch_str_eq(ptr %a24, ptr %a25) - %t27 = icmp ne i32 %t26, 0 - br label %logic.rend1662 -logic.rend1662: - br label %logic.end1661 -logic.end1661: - %t28 = phi i1 [ true, %logic.from1659 ], [ %t27, %logic.rend1662 ] - br label %logic.from1663 -logic.from1663: - br i1 %t28, label %logic.end1665, label %logic.rhs1664 -logic.rhs1664: - %t29 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t29, ptr %a30 - store { ptr, i64, i64 } { ptr @.str.942, i64 2, i64 0 }, ptr %a31 - %t32 = call i32 @finch_str_eq(ptr %a30, ptr %a31) - %t33 = icmp ne i32 %t32, 0 - br label %logic.rend1666 -logic.rend1666: - br label %logic.end1665 -logic.end1665: - %t34 = phi i1 [ true, %logic.from1663 ], [ %t33, %logic.rend1666 ] - br label %logic.from1667 -logic.from1667: - br i1 %t34, label %logic.end1669, label %logic.rhs1668 -logic.rhs1668: - %t35 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t35, ptr %a36 - store { ptr, i64, i64 } { ptr @.str.943, i64 1, i64 0 }, ptr %a37 - %t38 = call i32 @finch_str_eq(ptr %a36, ptr %a37) - %t39 = icmp ne i32 %t38, 0 - br label %logic.rend1670 -logic.rend1670: - br label %logic.end1669 -logic.end1669: - %t40 = phi i1 [ true, %logic.from1667 ], [ %t39, %logic.rend1670 ] - br label %logic.from1671 -logic.from1671: - br i1 %t40, label %logic.end1673, label %logic.rhs1672 -logic.rhs1672: - %t41 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t41, ptr %a42 - store { ptr, i64, i64 } { ptr @.str.944, i64 2, i64 0 }, ptr %a43 - %t44 = call i32 @finch_str_eq(ptr %a42, ptr %a43) - %t45 = icmp ne i32 %t44, 0 - br label %logic.rend1674 -logic.rend1674: - br label %logic.end1673 -logic.end1673: - %t46 = phi i1 [ true, %logic.from1671 ], [ %t45, %logic.rend1674 ] - br i1 %t46, label %then1675, label %endif1677 -then1675: - ret i64 3 -endif1677: - %t47 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t47, ptr %a48 - store { ptr, i64, i64 } { ptr @.str.945, i64 1, i64 0 }, ptr %a49 - %t50 = call i32 @finch_str_eq(ptr %a48, ptr %a49) - %t51 = icmp ne i32 %t50, 0 - br label %logic.from1678 -logic.from1678: - br i1 %t51, label %logic.end1680, label %logic.rhs1679 -logic.rhs1679: - %t52 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t52, ptr %a53 - store { ptr, i64, i64 } { ptr @.str.946, i64 1, i64 0 }, ptr %a54 - %t55 = call i32 @finch_str_eq(ptr %a53, ptr %a54) - %t56 = icmp ne i32 %t55, 0 - br label %logic.rend1681 -logic.rend1681: - br label %logic.end1680 -logic.end1680: - %t57 = phi i1 [ true, %logic.from1678 ], [ %t56, %logic.rend1681 ] - br label %logic.from1682 -logic.from1682: - br i1 %t57, label %logic.end1684, label %logic.rhs1683 -logic.rhs1683: - %t58 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t58, ptr %a59 - store { ptr, i64, i64 } { ptr @.str.947, i64 1, i64 0 }, ptr %a60 - %t61 = call i32 @finch_str_eq(ptr %a59, ptr %a60) - %t62 = icmp ne i32 %t61, 0 - br label %logic.rend1685 -logic.rend1685: - br label %logic.end1684 -logic.end1684: - %t63 = phi i1 [ true, %logic.from1682 ], [ %t62, %logic.rend1685 ] - br label %logic.from1686 -logic.from1686: - br i1 %t63, label %logic.end1688, label %logic.rhs1687 -logic.rhs1687: - %t64 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t64, ptr %a65 - store { ptr, i64, i64 } { ptr @.str.948, i64 1, i64 0 }, ptr %a66 - %t67 = call i32 @finch_str_eq(ptr %a65, ptr %a66) - %t68 = icmp ne i32 %t67, 0 - br label %logic.rend1689 -logic.rend1689: - br label %logic.end1688 -logic.end1688: - %t69 = phi i1 [ true, %logic.from1686 ], [ %t68, %logic.rend1689 ] - br i1 %t69, label %then1690, label %endif1692 -then1690: - ret i64 4 -endif1692: - %t70 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t70, ptr %a71 - store { ptr, i64, i64 } { ptr @.str.949, i64 1, i64 0 }, ptr %a72 - %t73 = call i32 @finch_str_eq(ptr %a71, ptr %a72) - %t74 = icmp ne i32 %t73, 0 br label %logic.from1693 logic.from1693: - br i1 %t74, label %logic.end1695, label %logic.rhs1694 + br i1 %t16, label %logic.end1695, label %logic.rhs1694 logic.rhs1694: - %t75 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t75, ptr %a76 - store { ptr, i64, i64 } { ptr @.str.950, i64 1, i64 0 }, ptr %a77 - %t78 = call i32 @finch_str_eq(ptr %a76, ptr %a77) - %t79 = icmp ne i32 %t78, 0 + %t17 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t17, ptr %a18 + store { ptr, i64, i64 } { ptr @.str.960, i64 2, i64 0 }, ptr %a19 + %t20 = call i32 @finch_str_eq(ptr %a18, ptr %a19) + %t21 = icmp ne i32 %t20, 0 br label %logic.rend1696 logic.rend1696: br label %logic.end1695 logic.end1695: - %t80 = phi i1 [ true, %logic.from1693 ], [ %t79, %logic.rend1696 ] + %t22 = phi i1 [ true, %logic.from1693 ], [ %t21, %logic.rend1696 ] br label %logic.from1697 logic.from1697: - br i1 %t80, label %logic.end1699, label %logic.rhs1698 + br i1 %t22, label %logic.end1699, label %logic.rhs1698 logic.rhs1698: - %t81 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t81, ptr %a82 - store { ptr, i64, i64 } { ptr @.str.951, i64 1, i64 0 }, ptr %a83 - %t84 = call i32 @finch_str_eq(ptr %a82, ptr %a83) - %t85 = icmp ne i32 %t84, 0 + %t23 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t23, ptr %a24 + store { ptr, i64, i64 } { ptr @.str.961, i64 1, i64 0 }, ptr %a25 + %t26 = call i32 @finch_str_eq(ptr %a24, ptr %a25) + %t27 = icmp ne i32 %t26, 0 br label %logic.rend1700 logic.rend1700: br label %logic.end1699 logic.end1699: - %t86 = phi i1 [ true, %logic.from1697 ], [ %t85, %logic.rend1700 ] + %t28 = phi i1 [ true, %logic.from1697 ], [ %t27, %logic.rend1700 ] br label %logic.from1701 logic.from1701: - br i1 %t86, label %logic.end1703, label %logic.rhs1702 + br i1 %t28, label %logic.end1703, label %logic.rhs1702 logic.rhs1702: - %t87 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t87, ptr %a88 - store { ptr, i64, i64 } { ptr @.str.952, i64 2, i64 0 }, ptr %a89 - %t90 = call i32 @finch_str_eq(ptr %a88, ptr %a89) - %t91 = icmp ne i32 %t90, 0 + %t29 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t29, ptr %a30 + store { ptr, i64, i64 } { ptr @.str.962, i64 2, i64 0 }, ptr %a31 + %t32 = call i32 @finch_str_eq(ptr %a30, ptr %a31) + %t33 = icmp ne i32 %t32, 0 br label %logic.rend1704 logic.rend1704: br label %logic.end1703 logic.end1703: - %t92 = phi i1 [ true, %logic.from1701 ], [ %t91, %logic.rend1704 ] + %t34 = phi i1 [ true, %logic.from1701 ], [ %t33, %logic.rend1704 ] br label %logic.from1705 logic.from1705: - br i1 %t92, label %logic.end1707, label %logic.rhs1706 + br i1 %t34, label %logic.end1707, label %logic.rhs1706 logic.rhs1706: - %t93 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t93, ptr %a94 - store { ptr, i64, i64 } { ptr @.str.953, i64 2, i64 0 }, ptr %a95 - %t96 = call i32 @finch_str_eq(ptr %a94, ptr %a95) - %t97 = icmp ne i32 %t96, 0 + %t35 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t35, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.963, i64 1, i64 0 }, ptr %a37 + %t38 = call i32 @finch_str_eq(ptr %a36, ptr %a37) + %t39 = icmp ne i32 %t38, 0 br label %logic.rend1708 logic.rend1708: br label %logic.end1707 logic.end1707: - %t98 = phi i1 [ true, %logic.from1705 ], [ %t97, %logic.rend1708 ] + %t40 = phi i1 [ true, %logic.from1705 ], [ %t39, %logic.rend1708 ] br label %logic.from1709 logic.from1709: - br i1 %t98, label %logic.end1711, label %logic.rhs1710 + br i1 %t40, label %logic.end1711, label %logic.rhs1710 logic.rhs1710: - %t99 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t99, ptr %a100 - store { ptr, i64, i64 } { ptr @.str.954, i64 1, i64 0 }, ptr %a101 - %t102 = call i32 @finch_str_eq(ptr %a100, ptr %a101) - %t103 = icmp ne i32 %t102, 0 + %t41 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t41, ptr %a42 + store { ptr, i64, i64 } { ptr @.str.964, i64 2, i64 0 }, ptr %a43 + %t44 = call i32 @finch_str_eq(ptr %a42, ptr %a43) + %t45 = icmp ne i32 %t44, 0 br label %logic.rend1712 logic.rend1712: br label %logic.end1711 logic.end1711: - %t104 = phi i1 [ true, %logic.from1709 ], [ %t103, %logic.rend1712 ] - br i1 %t104, label %then1713, label %endif1715 + %t46 = phi i1 [ true, %logic.from1709 ], [ %t45, %logic.rend1712 ] + br i1 %t46, label %then1713, label %endif1715 then1713: - ret i64 5 + ret i64 3 endif1715: + %t47 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t47, ptr %a48 + store { ptr, i64, i64 } { ptr @.str.965, i64 1, i64 0 }, ptr %a49 + %t50 = call i32 @finch_str_eq(ptr %a48, ptr %a49) + %t51 = icmp ne i32 %t50, 0 + br label %logic.from1716 +logic.from1716: + br i1 %t51, label %logic.end1718, label %logic.rhs1717 +logic.rhs1717: + %t52 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t52, ptr %a53 + store { ptr, i64, i64 } { ptr @.str.966, i64 1, i64 0 }, ptr %a54 + %t55 = call i32 @finch_str_eq(ptr %a53, ptr %a54) + %t56 = icmp ne i32 %t55, 0 + br label %logic.rend1719 +logic.rend1719: + br label %logic.end1718 +logic.end1718: + %t57 = phi i1 [ true, %logic.from1716 ], [ %t56, %logic.rend1719 ] + br label %logic.from1720 +logic.from1720: + br i1 %t57, label %logic.end1722, label %logic.rhs1721 +logic.rhs1721: + %t58 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t58, ptr %a59 + store { ptr, i64, i64 } { ptr @.str.967, i64 1, i64 0 }, ptr %a60 + %t61 = call i32 @finch_str_eq(ptr %a59, ptr %a60) + %t62 = icmp ne i32 %t61, 0 + br label %logic.rend1723 +logic.rend1723: + br label %logic.end1722 +logic.end1722: + %t63 = phi i1 [ true, %logic.from1720 ], [ %t62, %logic.rend1723 ] + br label %logic.from1724 +logic.from1724: + br i1 %t63, label %logic.end1726, label %logic.rhs1725 +logic.rhs1725: + %t64 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t64, ptr %a65 + store { ptr, i64, i64 } { ptr @.str.968, i64 1, i64 0 }, ptr %a66 + %t67 = call i32 @finch_str_eq(ptr %a65, ptr %a66) + %t68 = icmp ne i32 %t67, 0 + br label %logic.rend1727 +logic.rend1727: + br label %logic.end1726 +logic.end1726: + %t69 = phi i1 [ true, %logic.from1724 ], [ %t68, %logic.rend1727 ] + br i1 %t69, label %then1728, label %endif1730 +then1728: + ret i64 4 +endif1730: + %t70 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t70, ptr %a71 + store { ptr, i64, i64 } { ptr @.str.969, i64 1, i64 0 }, ptr %a72 + %t73 = call i32 @finch_str_eq(ptr %a71, ptr %a72) + %t74 = icmp ne i32 %t73, 0 + br label %logic.from1731 +logic.from1731: + br i1 %t74, label %logic.end1733, label %logic.rhs1732 +logic.rhs1732: + %t75 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t75, ptr %a76 + store { ptr, i64, i64 } { ptr @.str.970, i64 1, i64 0 }, ptr %a77 + %t78 = call i32 @finch_str_eq(ptr %a76, ptr %a77) + %t79 = icmp ne i32 %t78, 0 + br label %logic.rend1734 +logic.rend1734: + br label %logic.end1733 +logic.end1733: + %t80 = phi i1 [ true, %logic.from1731 ], [ %t79, %logic.rend1734 ] + br label %logic.from1735 +logic.from1735: + br i1 %t80, label %logic.end1737, label %logic.rhs1736 +logic.rhs1736: + %t81 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t81, ptr %a82 + store { ptr, i64, i64 } { ptr @.str.971, i64 1, i64 0 }, ptr %a83 + %t84 = call i32 @finch_str_eq(ptr %a82, ptr %a83) + %t85 = icmp ne i32 %t84, 0 + br label %logic.rend1738 +logic.rend1738: + br label %logic.end1737 +logic.end1737: + %t86 = phi i1 [ true, %logic.from1735 ], [ %t85, %logic.rend1738 ] + br label %logic.from1739 +logic.from1739: + br i1 %t86, label %logic.end1741, label %logic.rhs1740 +logic.rhs1740: + %t87 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t87, ptr %a88 + store { ptr, i64, i64 } { ptr @.str.972, i64 2, i64 0 }, ptr %a89 + %t90 = call i32 @finch_str_eq(ptr %a88, ptr %a89) + %t91 = icmp ne i32 %t90, 0 + br label %logic.rend1742 +logic.rend1742: + br label %logic.end1741 +logic.end1741: + %t92 = phi i1 [ true, %logic.from1739 ], [ %t91, %logic.rend1742 ] + br label %logic.from1743 +logic.from1743: + br i1 %t92, label %logic.end1745, label %logic.rhs1744 +logic.rhs1744: + %t93 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t93, ptr %a94 + store { ptr, i64, i64 } { ptr @.str.973, i64 2, i64 0 }, ptr %a95 + %t96 = call i32 @finch_str_eq(ptr %a94, ptr %a95) + %t97 = icmp ne i32 %t96, 0 + br label %logic.rend1746 +logic.rend1746: + br label %logic.end1745 +logic.end1745: + %t98 = phi i1 [ true, %logic.from1743 ], [ %t97, %logic.rend1746 ] + br label %logic.from1747 +logic.from1747: + br i1 %t98, label %logic.end1749, label %logic.rhs1748 +logic.rhs1748: + %t99 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t99, ptr %a100 + store { ptr, i64, i64 } { ptr @.str.974, i64 1, i64 0 }, ptr %a101 + %t102 = call i32 @finch_str_eq(ptr %a100, ptr %a101) + %t103 = icmp ne i32 %t102, 0 + br label %logic.rend1750 +logic.rend1750: + br label %logic.end1749 +logic.end1749: + %t104 = phi i1 [ true, %logic.from1747 ], [ %t103, %logic.rend1750 ] + br i1 %t104, label %then1751, label %endif1753 +then1751: + ret i64 5 +endif1753: ret i64 0 } @@ -19783,25 +20422,25 @@ entry: %t5 = load ptr, ptr %a1 %t6 = call i1 @finch.parser.sameLine(ptr %t5) %t7 = xor i1 %t6, true - br label %logic.from1716 -logic.from1716: - br i1 %t7, label %logic.end1718, label %logic.rhs1717 -logic.rhs1717: + br label %logic.from1754 +logic.from1754: + br i1 %t7, label %logic.end1756, label %logic.rhs1755 +logic.rhs1755: %t8 = load ptr, ptr %a1 - %t9 = call i1 @finch.parser.at(ptr %t8, { ptr, i64, i64 } { ptr @.str.955, i64 2, i64 0 }) + %t9 = call i1 @finch.parser.at(ptr %t8, { ptr, i64, i64 } { ptr @.str.975, i64 2, i64 0 }) %t10 = xor i1 %t9, true - br label %logic.rend1719 -logic.rend1719: - br label %logic.end1718 -logic.end1718: - %t11 = phi i1 [ true, %logic.from1716 ], [ %t10, %logic.rend1719 ] - br i1 %t11, label %then1720, label %endif1722 -then1720: + br label %logic.rend1757 +logic.rend1757: + br label %logic.end1756 +logic.end1756: + %t11 = phi i1 [ true, %logic.from1754 ], [ %t10, %logic.rend1757 ] + br i1 %t11, label %then1758, label %endif1760 +then1758: %t12 = load %S.ast.Node, ptr %a4 ret %S.ast.Node %t12 -endif1722: +endif1760: %t13 = load ptr, ptr %a1 - %t14 = call %S.ast.Node @finch.parser.node(ptr %t13, { ptr, i64, i64 } { ptr @.str.956, i64 2, i64 0 }) + %t14 = call %S.ast.Node @finch.parser.node(ptr %t13, { ptr, i64, i64 } { ptr @.str.976, i64 2, i64 0 }) store %S.ast.Node %t14, ptr %a15 %t16 = load ptr, ptr %a1 %t17 = call %S.lexer.Token @finch.parser.next(ptr %t16) @@ -19821,9 +20460,9 @@ endif1722: store %S.ast.Node %t24, ptr %t28 store i64 %t26, ptr %t20 %t29 = load ptr, ptr %a1 - %t30 = call i1 @finch.parser.at(ptr %t29, { ptr, i64, i64 } { ptr @.str.957, i64 1, i64 0 }) - br i1 %t30, label %then1723, label %else1724 -then1723: + %t30 = call i1 @finch.parser.at(ptr %t29, { ptr, i64, i64 } { ptr @.str.977, i64 1, i64 0 }) + br i1 %t30, label %then1761, label %else1762 +then1761: %t31 = getelementptr inbounds %S.ast.Node, ptr %a15, i32 0, i32 6 store i1 true, ptr %t31 %t32 = getelementptr inbounds %S.ast.Node, ptr %a15, i32 0, i32 9 @@ -19837,8 +20476,8 @@ then1723: %t39 = getelementptr inbounds %S.ast.Node, ptr %t38, i64 %t36 store %S.ast.Node %t35, ptr %t39 store i64 %t37, ptr %t33 - br label %endif1725 -else1724: + br label %endif1763 +else1762: %t40 = getelementptr inbounds %S.ast.Node, ptr %a15, i32 0, i32 9 %t41 = getelementptr inbounds { ptr, i64, i64 }, ptr %t40, i32 0, i32 1 %t42 = load ptr, ptr %a1 @@ -19850,8 +20489,8 @@ else1724: %t47 = getelementptr inbounds %S.ast.Node, ptr %t46, i64 %t44 store %S.ast.Node %t43, ptr %t47 store i64 %t45, ptr %t41 - br label %endif1725 -endif1725: + br label %endif1763 +endif1763: %t48 = load %S.ast.Node, ptr %a15 call void @finch.drop.S_ast_Node(ptr %a4) ret %S.ast.Node %t48 @@ -19877,25 +20516,25 @@ entry: store i64 %p1, ptr %a2 %t3 = load i64, ptr %a2 %t4 = icmp sgt i64 %t3, 5 - br i1 %t4, label %then1726, label %endif1728 -then1726: + br i1 %t4, label %then1764, label %endif1766 +then1764: %t5 = load ptr, ptr %a1 %t6 = call %S.ast.Node @finch.parser.parseUnary(ptr %t5) ret %S.ast.Node %t6 -endif1728: +endif1766: %t7 = load ptr, ptr %a1 %t8 = load i64, ptr %a2 %t9 = add i64 %t8, 1 %t10 = call %S.ast.Node @finch.parser.parseBinary(ptr %t7, i64 %t9) store %S.ast.Node %t10, ptr %a11 - br label %while.cond1729 -while.cond1729: + br label %while.cond1767 +while.cond1767: %t12 = load ptr, ptr %a1 %t13 = call i1 @finch.parser.sameLine(ptr %t12) - br label %logic.from1732 -logic.from1732: - br i1 %t13, label %logic.rhs1733, label %logic.end1734 -logic.rhs1733: + br label %logic.from1770 +logic.from1770: + br i1 %t13, label %logic.rhs1771, label %logic.end1772 +logic.rhs1771: %t14 = load ptr, ptr %a1 %t15 = call { ptr, i64, i64 } @finch.parser.curKind(ptr %t14) %t16 = call i64 @finch.parser.binaryLevel({ ptr, i64, i64 } %t15) @@ -19903,15 +20542,15 @@ logic.rhs1733: call void @finch_str_drop(ptr %a17) %t18 = load i64, ptr %a2 %t19 = icmp eq i64 %t16, %t18 - br label %logic.rend1735 -logic.rend1735: - br label %logic.end1734 -logic.end1734: - %t20 = phi i1 [ false, %logic.from1732 ], [ %t19, %logic.rend1735 ] - br i1 %t20, label %while.body1730, label %while.end1731 -while.body1730: + br label %logic.rend1773 +logic.rend1773: + br label %logic.end1772 +logic.end1772: + %t20 = phi i1 [ false, %logic.from1770 ], [ %t19, %logic.rend1773 ] + br i1 %t20, label %while.body1768, label %while.end1769 +while.body1768: %t21 = load ptr, ptr %a1 - %t22 = call %S.ast.Node @finch.parser.node(ptr %t21, { ptr, i64, i64 } { ptr @.str.958, i64 6, i64 0 }) + %t22 = call %S.ast.Node @finch.parser.node(ptr %t21, { ptr, i64, i64 } { ptr @.str.978, i64 6, i64 0 }) store %S.ast.Node %t22, ptr %a23 %t24 = load ptr, ptr %a1 %t25 = call %S.lexer.Token @finch.parser.next(ptr %t24) @@ -19961,8 +20600,8 @@ while.body1730: store %S.ast.Node %t58, ptr %a59 call void @finch.drop.S_ast_Node(ptr %a59) call void @finch.drop.S_ast_Node(ptr %a23) - br label %while.cond1729 -while.end1731: + br label %while.cond1767 +while.end1769: %t60 = load %S.ast.Node, ptr %a11 ret %S.ast.Node %t60 } @@ -19979,11 +20618,11 @@ entry: %a39 = alloca { ptr, i64, i64 }, align 16 store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 - %t3 = call i1 @finch.parser.at(ptr %t2, { ptr, i64, i64 } { ptr @.str.959, i64 3, i64 0 }) - br i1 %t3, label %then1736, label %endif1738 -then1736: + %t3 = call i1 @finch.parser.at(ptr %t2, { ptr, i64, i64 } { ptr @.str.979, i64 3, i64 0 }) + br i1 %t3, label %then1774, label %endif1776 +then1774: %t4 = load ptr, ptr %a1 - %t5 = call %S.ast.Node @finch.parser.node(ptr %t4, { ptr, i64, i64 } { ptr @.str.960, i64 3, i64 0 }) + %t5 = call %S.ast.Node @finch.parser.node(ptr %t4, { ptr, i64, i64 } { ptr @.str.980, i64 3, i64 0 }) store %S.ast.Node %t5, ptr %a6 %t7 = load ptr, ptr %a1 %t8 = call %S.lexer.Token @finch.parser.next(ptr %t7) @@ -20002,35 +20641,35 @@ then1736: store i64 %t15, ptr %t11 %t18 = load %S.ast.Node, ptr %a6 ret %S.ast.Node %t18 -endif1738: +endif1776: %t19 = load ptr, ptr %a1 - %t20 = call i1 @finch.parser.at(ptr %t19, { ptr, i64, i64 } { ptr @.str.961, i64 1, i64 0 }) - br label %logic.from1739 -logic.from1739: - br i1 %t20, label %logic.end1741, label %logic.rhs1740 -logic.rhs1740: + %t20 = call i1 @finch.parser.at(ptr %t19, { ptr, i64, i64 } { ptr @.str.981, i64 1, i64 0 }) + br label %logic.from1777 +logic.from1777: + br i1 %t20, label %logic.end1779, label %logic.rhs1778 +logic.rhs1778: %t21 = load ptr, ptr %a1 - %t22 = call i1 @finch.parser.at(ptr %t21, { ptr, i64, i64 } { ptr @.str.962, i64 1, i64 0 }) - br label %logic.rend1742 -logic.rend1742: - br label %logic.end1741 -logic.end1741: - %t23 = phi i1 [ true, %logic.from1739 ], [ %t22, %logic.rend1742 ] - br label %logic.from1743 -logic.from1743: - br i1 %t23, label %logic.end1745, label %logic.rhs1744 -logic.rhs1744: + %t22 = call i1 @finch.parser.at(ptr %t21, { ptr, i64, i64 } { ptr @.str.982, i64 1, i64 0 }) + br label %logic.rend1780 +logic.rend1780: + br label %logic.end1779 +logic.end1779: + %t23 = phi i1 [ true, %logic.from1777 ], [ %t22, %logic.rend1780 ] + br label %logic.from1781 +logic.from1781: + br i1 %t23, label %logic.end1783, label %logic.rhs1782 +logic.rhs1782: %t24 = load ptr, ptr %a1 - %t25 = call i1 @finch.parser.at(ptr %t24, { ptr, i64, i64 } { ptr @.str.963, i64 1, i64 0 }) - br label %logic.rend1746 -logic.rend1746: - br label %logic.end1745 -logic.end1745: - %t26 = phi i1 [ true, %logic.from1743 ], [ %t25, %logic.rend1746 ] - br i1 %t26, label %then1747, label %endif1749 -then1747: + %t25 = call i1 @finch.parser.at(ptr %t24, { ptr, i64, i64 } { ptr @.str.983, i64 1, i64 0 }) + br label %logic.rend1784 +logic.rend1784: + br label %logic.end1783 +logic.end1783: + %t26 = phi i1 [ true, %logic.from1781 ], [ %t25, %logic.rend1784 ] + br i1 %t26, label %then1785, label %endif1787 +then1785: %t27 = load ptr, ptr %a1 - %t28 = call %S.ast.Node @finch.parser.node(ptr %t27, { ptr, i64, i64 } { ptr @.str.964, i64 5, i64 0 }) + %t28 = call %S.ast.Node @finch.parser.node(ptr %t27, { ptr, i64, i64 } { ptr @.str.984, i64 5, i64 0 }) store %S.ast.Node %t28, ptr %a29 %t30 = load ptr, ptr %a1 %t31 = call %S.lexer.Token @finch.parser.next(ptr %t30) @@ -20058,7 +20697,7 @@ then1747: store i64 %t45, ptr %t41 %t48 = load %S.ast.Node, ptr %a29 ret %S.ast.Node %t48 -endif1749: +endif1787: %t49 = load ptr, ptr %a1 %t50 = call %S.ast.Node @finch.parser.parsePostfix(ptr %t49) ret %S.ast.Node %t50 @@ -20084,54 +20723,54 @@ entry: store ptr %p0, ptr %a1 store ptr %p1, ptr %a2 %t3 = load ptr, ptr %a1 - %t4 = call %S.lexer.Token @finch.parser.expect(ptr %t3, { ptr, i64, i64 } { ptr @.str.965, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.966, i64 3, i64 0 }) + %t4 = call %S.lexer.Token @finch.parser.expect(ptr %t3, { ptr, i64, i64 } { ptr @.str.985, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.986, i64 3, i64 0 }) store %S.lexer.Token %t4, ptr %a5 call void @finch.drop.S_lexer_Token(ptr %a5) %t6 = load ptr, ptr %a1 %t7 = icmp eq ptr %t6, null - br i1 %t7, label %panic1750, label %ok1751 -panic1750: - call void @finch_panic(ptr @.str.967, i64 638, ptr @.str.968) + br i1 %t7, label %panic1788, label %ok1789 +panic1788: + call void @finch_panic(ptr @.str.987, i64 686, ptr @.str.988) unreachable -ok1751: +ok1789: %t8 = getelementptr inbounds %S.parser.Parser, ptr %t6, i32 0, i32 2 %t9 = load i64, ptr %t8 %t10 = add i64 %t9, 1 store i64 %t10, ptr %t8 %t11 = load ptr, ptr %a1 - %t12 = call i1 @finch.parser.at(ptr %t11, { ptr, i64, i64 } { ptr @.str.969, i64 1, i64 0 }) + %t12 = call i1 @finch.parser.at(ptr %t11, { ptr, i64, i64 } { ptr @.str.989, i64 1, i64 0 }) %t13 = xor i1 %t12, true - br i1 %t13, label %then1752, label %endif1754 -then1752: - br label %while.cond1755 -while.cond1755: + br i1 %t13, label %then1790, label %endif1792 +then1790: + br label %while.cond1793 +while.cond1793: %t14 = load ptr, ptr %a1 - %t15 = call i1 @finch.parser.at(ptr %t14, { ptr, i64, i64 } { ptr @.str.970, i64 1, i64 0 }) + %t15 = call i1 @finch.parser.at(ptr %t14, { ptr, i64, i64 } { ptr @.str.990, i64 1, i64 0 }) %t16 = xor i1 %t15, true - br i1 %t16, label %while.body1756, label %while.end1757 -while.body1756: - store { ptr, i64, i64 } { ptr @.str.971, i64 0, i64 0 }, ptr %a17 + br i1 %t16, label %while.body1794, label %while.end1795 +while.body1794: + store { ptr, i64, i64 } { ptr @.str.991, i64 0, i64 0 }, ptr %a17 %t18 = load ptr, ptr %a1 - %t19 = call i1 @finch.parser.at(ptr %t18, { ptr, i64, i64 } { ptr @.str.972, i64 5, i64 0 }) - br label %logic.from1758 -logic.from1758: - br i1 %t19, label %logic.rhs1759, label %logic.end1760 -logic.rhs1759: + %t19 = call i1 @finch.parser.at(ptr %t18, { ptr, i64, i64 } { ptr @.str.992, i64 5, i64 0 }) + br label %logic.from1796 +logic.from1796: + br i1 %t19, label %logic.rhs1797, label %logic.end1798 +logic.rhs1797: %t20 = load ptr, ptr %a1 %t21 = call { ptr, i64, i64 } @finch.parser.peekKind(ptr %t20, i64 1) store { ptr, i64, i64 } %t21, ptr %a22 - store { ptr, i64, i64 } { ptr @.str.973, i64 1, i64 0 }, ptr %a23 + store { ptr, i64, i64 } { ptr @.str.993, i64 1, i64 0 }, ptr %a23 %t24 = call i32 @finch_str_eq(ptr %a22, ptr %a23) %t25 = icmp ne i32 %t24, 0 store { ptr, i64, i64 } %t21, ptr %a26 call void @finch_str_drop(ptr %a26) - br label %logic.rend1761 -logic.rend1761: - br label %logic.end1760 -logic.end1760: - %t27 = phi i1 [ false, %logic.from1758 ], [ %t25, %logic.rend1761 ] - br i1 %t27, label %then1762, label %endif1764 -then1762: + br label %logic.rend1799 +logic.rend1799: + br label %logic.end1798 +logic.end1798: + %t27 = phi i1 [ false, %logic.from1796 ], [ %t25, %logic.rend1799 ] + br i1 %t27, label %then1800, label %endif1802 +then1800: %t28 = load ptr, ptr %a1 %t29 = call %S.lexer.Token @finch.parser.next(ptr %t28) %t30 = extractvalue %S.lexer.Token %t29, 1 @@ -20148,15 +20787,15 @@ then1762: %t38 = call %S.lexer.Token @finch.parser.next(ptr %t37) store %S.lexer.Token %t38, ptr %a39 call void @finch.drop.S_lexer_Token(ptr %a39) - br label %endif1764 -endif1764: + br label %endif1802 +endif1802: %t40 = load ptr, ptr %a2 %t41 = icmp eq ptr %t40, null - br i1 %t41, label %panic1765, label %ok1766 -panic1765: - call void @finch_panic(ptr @.str.974, i64 646, ptr @.str.975) + br i1 %t41, label %panic1803, label %ok1804 +panic1803: + call void @finch_panic(ptr @.str.994, i64 694, ptr @.str.995) unreachable -ok1766: +ok1804: %t42 = getelementptr inbounds %S.ast.Node, ptr %t40, i32 0, i32 10 %t43 = getelementptr inbounds { ptr, i64, i64 }, ptr %t42, i32 0, i32 1 %t44 = load { ptr, i64, i64 }, ptr %a17 @@ -20172,11 +20811,11 @@ ok1766: store i64 %t49, ptr %t43 %t52 = load ptr, ptr %a2 %t53 = icmp eq ptr %t52, null - br i1 %t53, label %panic1767, label %ok1768 -panic1767: - call void @finch_panic(ptr @.str.976, i64 647, ptr @.str.977) + br i1 %t53, label %panic1805, label %ok1806 +panic1805: + call void @finch_panic(ptr @.str.996, i64 695, ptr @.str.997) unreachable -ok1768: +ok1806: %t54 = getelementptr inbounds %S.ast.Node, ptr %t52, i32 0, i32 9 %t55 = getelementptr inbounds { ptr, i64, i64 }, ptr %t54, i32 0, i32 1 %t56 = load ptr, ptr %a1 @@ -20189,31 +20828,31 @@ ok1768: store %S.ast.Node %t57, ptr %t61 store i64 %t59, ptr %t55 %t62 = load ptr, ptr %a1 - %t63 = call i1 @finch.parser.accept(ptr %t62, { ptr, i64, i64 } { ptr @.str.978, i64 1, i64 0 }) + %t63 = call i1 @finch.parser.accept(ptr %t62, { ptr, i64, i64 } { ptr @.str.998, i64 1, i64 0 }) %t64 = xor i1 %t63, true - br i1 %t64, label %then1769, label %endif1771 -then1769: + br i1 %t64, label %then1807, label %endif1809 +then1807: call void @finch_str_drop(ptr %a17) - br label %while.end1757 -endif1771: + br label %while.end1795 +endif1809: call void @finch_str_drop(ptr %a17) - br label %while.cond1755 -while.end1757: - br label %endif1754 -endif1754: + br label %while.cond1793 +while.end1795: + br label %endif1792 +endif1792: %t65 = load ptr, ptr %a1 %t66 = icmp eq ptr %t65, null - br i1 %t66, label %panic1772, label %ok1773 -panic1772: - call void @finch_panic(ptr @.str.979, i64 653, ptr @.str.980) + br i1 %t66, label %panic1810, label %ok1811 +panic1810: + call void @finch_panic(ptr @.str.999, i64 701, ptr @.str.1000) unreachable -ok1773: +ok1811: %t67 = getelementptr inbounds %S.parser.Parser, ptr %t65, i32 0, i32 2 %t68 = load i64, ptr %t67 %t69 = sub i64 %t68, 1 store i64 %t69, ptr %t67 %t70 = load ptr, ptr %a1 - %t71 = call %S.lexer.Token @finch.parser.expect(ptr %t70, { ptr, i64, i64 } { ptr @.str.981, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.982, i64 3, i64 0 }) + %t71 = call %S.lexer.Token @finch.parser.expect(ptr %t70, { ptr, i64, i64 } { ptr @.str.1001, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.1002, i64 3, i64 0 }) store %S.lexer.Token %t71, ptr %a72 call void @finch.drop.S_lexer_Token(ptr %a72) ret void @@ -20248,25 +20887,25 @@ entry: %t2 = load ptr, ptr %a1 %t3 = call %S.ast.Node @finch.parser.parsePrimary(ptr %t2) store %S.ast.Node %t3, ptr %a4 - br label %while.cond1774 -while.cond1774: + br label %while.cond1812 +while.cond1812: %t5 = load ptr, ptr %a1 %t6 = call i1 @finch.parser.sameLine(ptr %t5) - br i1 %t6, label %while.body1775, label %while.end1776 -while.body1775: + br i1 %t6, label %while.body1813, label %while.end1814 +while.body1813: %t7 = load ptr, ptr %a1 - %t8 = call i1 @finch.parser.at(ptr %t7, { ptr, i64, i64 } { ptr @.str.983, i64 1, i64 0 }) - br i1 %t8, label %then1777, label %else1778 -then1777: + %t8 = call i1 @finch.parser.at(ptr %t7, { ptr, i64, i64 } { ptr @.str.1003, i64 1, i64 0 }) + br i1 %t8, label %then1815, label %else1816 +then1815: %t9 = load ptr, ptr %a1 - %t10 = call %S.ast.Node @finch.parser.node(ptr %t9, { ptr, i64, i64 } { ptr @.str.984, i64 6, i64 0 }) + %t10 = call %S.ast.Node @finch.parser.node(ptr %t9, { ptr, i64, i64 } { ptr @.str.1004, i64 6, i64 0 }) store %S.ast.Node %t10, ptr %a11 %t12 = load ptr, ptr %a1 %t13 = call %S.lexer.Token @finch.parser.next(ptr %t12) store %S.lexer.Token %t13, ptr %a14 call void @finch.drop.S_lexer_Token(ptr %a14) %t15 = load ptr, ptr %a1 - %t16 = call %S.lexer.Token @finch.parser.expect(ptr %t15, { ptr, i64, i64 } { ptr @.str.985, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.986, i64 16, i64 0 }) + %t16 = call %S.lexer.Token @finch.parser.expect(ptr %t15, { ptr, i64, i64 } { ptr @.str.1005, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.1006, i64 16, i64 0 }) %t17 = extractvalue %S.lexer.Token %t16, 1 store { ptr, i64, i64 } %t17, ptr %a18 call void @finch_str_copy(ptr %a19, ptr %a18) @@ -20292,33 +20931,33 @@ then1777: store %S.ast.Node %t30, ptr %t34 store i64 %t32, ptr %t26 %t35 = load ptr, ptr %a1 - %t36 = call i1 @finch.parser.at(ptr %t35, { ptr, i64, i64 } { ptr @.str.987, i64 1, i64 0 }) - br label %logic.from1780 -logic.from1780: - br i1 %t36, label %logic.rhs1781, label %logic.end1782 -logic.rhs1781: + %t36 = call i1 @finch.parser.at(ptr %t35, { ptr, i64, i64 } { ptr @.str.1007, i64 1, i64 0 }) + br label %logic.from1818 +logic.from1818: + br i1 %t36, label %logic.rhs1819, label %logic.end1820 +logic.rhs1819: %t37 = load ptr, ptr %a1 %t38 = call %S.lexer.Token @finch.parser.cur(ptr %t37) %t39 = extractvalue %S.lexer.Token %t38, 4 store %S.lexer.Token %t38, ptr %a40 call void @finch.drop.S_lexer_Token(ptr %a40) %t41 = xor i1 %t39, true - br label %logic.rend1783 -logic.rend1783: - br label %logic.end1782 -logic.end1782: - %t42 = phi i1 [ false, %logic.from1780 ], [ %t41, %logic.rend1783 ] - br i1 %t42, label %then1784, label %endif1786 -then1784: + br label %logic.rend1821 +logic.rend1821: + br label %logic.end1820 +logic.end1820: + %t42 = phi i1 [ false, %logic.from1818 ], [ %t41, %logic.rend1821 ] + br i1 %t42, label %then1822, label %endif1824 +then1822: %t43 = getelementptr inbounds %S.ast.Node, ptr %a11, i32 0, i32 0 %t44 = load { ptr, i64, i64 }, ptr %t43 - store { ptr, i64, i64 } { ptr @.str.988, i64 6, i64 0 }, ptr %t43 + store { ptr, i64, i64 } { ptr @.str.1008, i64 6, i64 0 }, ptr %t43 store { ptr, i64, i64 } %t44, ptr %a45 call void @finch_str_drop(ptr %a45) %t46 = load ptr, ptr %a1 call void @finch.parser.parseArgs(ptr %t46, ptr %a11) - br label %endif1786 -endif1786: + br label %endif1824 +endif1824: %t47 = load %S.ast.Node, ptr %a11 store %S.ast.Node %t47, ptr %a48 call void @finch.copy.S_ast_Node(ptr %a49, ptr %a48) @@ -20328,14 +20967,14 @@ endif1786: store %S.ast.Node %t51, ptr %a52 call void @finch.drop.S_ast_Node(ptr %a52) call void @finch.drop.S_ast_Node(ptr %a11) - br label %endif1779 -else1778: + br label %endif1817 +else1816: %t53 = load ptr, ptr %a1 - %t54 = call i1 @finch.parser.at(ptr %t53, { ptr, i64, i64 } { ptr @.str.989, i64 1, i64 0 }) - br i1 %t54, label %then1787, label %else1788 -then1787: + %t54 = call i1 @finch.parser.at(ptr %t53, { ptr, i64, i64 } { ptr @.str.1009, i64 1, i64 0 }) + br i1 %t54, label %then1825, label %else1826 +then1825: %t55 = load ptr, ptr %a1 - %t56 = call %S.ast.Node @finch.parser.node(ptr %t55, { ptr, i64, i64 } { ptr @.str.990, i64 5, i64 0 }) + %t56 = call %S.ast.Node @finch.parser.node(ptr %t55, { ptr, i64, i64 } { ptr @.str.1010, i64 5, i64 0 }) store %S.ast.Node %t56, ptr %a57 %t58 = load ptr, ptr %a1 %t59 = call %S.lexer.Token @finch.parser.next(ptr %t58) @@ -20343,11 +20982,11 @@ then1787: call void @finch.drop.S_lexer_Token(ptr %a60) %t61 = load ptr, ptr %a1 %t62 = icmp eq ptr %t61, null - br i1 %t62, label %panic1790, label %ok1791 -panic1790: - call void @finch_panic(ptr @.str.991, i64 673, ptr @.str.992) + br i1 %t62, label %panic1828, label %ok1829 +panic1828: + call void @finch_panic(ptr @.str.1011, i64 721, ptr @.str.1012) unreachable -ok1791: +ok1829: %t63 = getelementptr inbounds %S.parser.Parser, ptr %t61, i32 0, i32 2 %t64 = load i64, ptr %t63 %t65 = add i64 %t64, 1 @@ -20378,17 +21017,17 @@ ok1791: store i64 %t81, ptr %t77 %t84 = load ptr, ptr %a1 %t85 = icmp eq ptr %t84, null - br i1 %t85, label %panic1792, label %ok1793 -panic1792: - call void @finch_panic(ptr @.str.993, i64 676, ptr @.str.994) + br i1 %t85, label %panic1830, label %ok1831 +panic1830: + call void @finch_panic(ptr @.str.1013, i64 724, ptr @.str.1014) unreachable -ok1793: +ok1831: %t86 = getelementptr inbounds %S.parser.Parser, ptr %t84, i32 0, i32 2 %t87 = load i64, ptr %t86 %t88 = sub i64 %t87, 1 store i64 %t88, ptr %t86 %t89 = load ptr, ptr %a1 - %t90 = call %S.lexer.Token @finch.parser.expect(ptr %t89, { ptr, i64, i64 } { ptr @.str.995, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.996, i64 3, i64 0 }) + %t90 = call %S.lexer.Token @finch.parser.expect(ptr %t89, { ptr, i64, i64 } { ptr @.str.1015, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.1016, i64 3, i64 0 }) store %S.lexer.Token %t90, ptr %a91 call void @finch.drop.S_lexer_Token(ptr %a91) %t92 = load %S.ast.Node, ptr %a57 @@ -20400,15 +21039,15 @@ ok1793: store %S.ast.Node %t96, ptr %a97 call void @finch.drop.S_ast_Node(ptr %a97) call void @finch.drop.S_ast_Node(ptr %a57) - br label %endif1789 -else1788: + br label %endif1827 +else1826: %t98 = load %S.ast.Node, ptr %a4 ret %S.ast.Node %t98 -endif1789: - br label %endif1779 -endif1779: - br label %while.cond1774 -while.end1776: +endif1827: + br label %endif1817 +endif1817: + br label %while.cond1812 +while.end1814: %t99 = load %S.ast.Node, ptr %a4 ret %S.ast.Node %t99 } @@ -20504,7 +21143,7 @@ entry: %t3 = call %S.lexer.Token @finch.parser.cur(ptr %t2) store %S.lexer.Token %t3, ptr %a4 %t5 = load ptr, ptr %a1 - %t6 = call %S.ast.Node @finch.parser.node(ptr %t5, { ptr, i64, i64 } { ptr @.str.997, i64 0, i64 0 }) + %t6 = call %S.ast.Node @finch.parser.node(ptr %t5, { ptr, i64, i64 } { ptr @.str.1017, i64 0, i64 0 }) store %S.ast.Node %t6, ptr %a7 %t8 = getelementptr inbounds %S.lexer.Token, ptr %a4, i32 0, i32 0 %t9 = load { ptr, i64, i64 }, ptr %t8 @@ -20514,39 +21153,39 @@ entry: store { ptr, i64, i64 } %t12, ptr %a13 %t14 = load { ptr, i64, i64 }, ptr %a13 store { ptr, i64, i64 } %t14, ptr %a15 - store { ptr, i64, i64 } { ptr @.str.998, i64 3, i64 0 }, ptr %a16 + store { ptr, i64, i64 } { ptr @.str.1018, i64 3, i64 0 }, ptr %a16 %t17 = call i32 @finch_str_eq(ptr %a15, ptr %a16) %t18 = icmp ne i32 %t17, 0 - br label %logic.from1794 -logic.from1794: - br i1 %t18, label %logic.end1796, label %logic.rhs1795 -logic.rhs1795: + br label %logic.from1832 +logic.from1832: + br i1 %t18, label %logic.end1834, label %logic.rhs1833 +logic.rhs1833: %t19 = load { ptr, i64, i64 }, ptr %a13 store { ptr, i64, i64 } %t19, ptr %a20 - store { ptr, i64, i64 } { ptr @.str.999, i64 5, i64 0 }, ptr %a21 + store { ptr, i64, i64 } { ptr @.str.1019, i64 5, i64 0 }, ptr %a21 %t22 = call i32 @finch_str_eq(ptr %a20, ptr %a21) %t23 = icmp ne i32 %t22, 0 - br label %logic.rend1797 -logic.rend1797: - br label %logic.end1796 -logic.end1796: - %t24 = phi i1 [ true, %logic.from1794 ], [ %t23, %logic.rend1797 ] - br label %logic.from1798 -logic.from1798: - br i1 %t24, label %logic.end1800, label %logic.rhs1799 -logic.rhs1799: + br label %logic.rend1835 +logic.rend1835: + br label %logic.end1834 +logic.end1834: + %t24 = phi i1 [ true, %logic.from1832 ], [ %t23, %logic.rend1835 ] + br label %logic.from1836 +logic.from1836: + br i1 %t24, label %logic.end1838, label %logic.rhs1837 +logic.rhs1837: %t25 = load { ptr, i64, i64 }, ptr %a13 store { ptr, i64, i64 } %t25, ptr %a26 - store { ptr, i64, i64 } { ptr @.str.1000, i64 4, i64 0 }, ptr %a27 + store { ptr, i64, i64 } { ptr @.str.1020, i64 4, i64 0 }, ptr %a27 %t28 = call i32 @finch_str_eq(ptr %a26, ptr %a27) %t29 = icmp ne i32 %t28, 0 - br label %logic.rend1801 -logic.rend1801: - br label %logic.end1800 -logic.end1800: - %t30 = phi i1 [ true, %logic.from1798 ], [ %t29, %logic.rend1801 ] - br i1 %t30, label %then1802, label %endif1804 -then1802: + br label %logic.rend1839 +logic.rend1839: + br label %logic.end1838 +logic.end1838: + %t30 = phi i1 [ true, %logic.from1836 ], [ %t29, %logic.rend1839 ] + br i1 %t30, label %then1840, label %endif1842 +then1840: %t31 = load ptr, ptr %a1 %t32 = call %S.lexer.Token @finch.parser.next(ptr %t31) store %S.lexer.Token %t32, ptr %a33 @@ -20574,21 +21213,21 @@ then1802: call void @finch_str_drop(ptr %a13) call void @finch.drop.S_lexer_Token(ptr %a4) ret %S.ast.Node %t49 -endif1804: +endif1842: %t50 = load { ptr, i64, i64 }, ptr %a13 store { ptr, i64, i64 } %t50, ptr %a51 - store { ptr, i64, i64 } { ptr @.str.1001, i64 6, i64 0 }, ptr %a52 + store { ptr, i64, i64 } { ptr @.str.1021, i64 6, i64 0 }, ptr %a52 %t53 = call i32 @finch_str_eq(ptr %a51, ptr %a52) %t54 = icmp ne i32 %t53, 0 - br i1 %t54, label %then1805, label %endif1807 -then1805: + br i1 %t54, label %then1843, label %endif1845 +then1843: %t55 = load ptr, ptr %a1 %t56 = call %S.lexer.Token @finch.parser.next(ptr %t55) store %S.lexer.Token %t56, ptr %a57 call void @finch.drop.S_lexer_Token(ptr %a57) %t58 = getelementptr inbounds %S.ast.Node, ptr %a7, i32 0, i32 0 %t59 = load { ptr, i64, i64 }, ptr %t58 - store { ptr, i64, i64 } { ptr @.str.1002, i64 3, i64 0 }, ptr %t58 + store { ptr, i64, i64 } { ptr @.str.1022, i64 3, i64 0 }, ptr %t58 store { ptr, i64, i64 } %t59, ptr %a60 call void @finch_str_drop(ptr %a60) %t61 = getelementptr inbounds %S.lexer.Token, ptr %a4, i32 0, i32 1 @@ -20605,35 +21244,35 @@ then1805: call void @finch_str_drop(ptr %a13) call void @finch.drop.S_lexer_Token(ptr %a4) ret %S.ast.Node %t69 -endif1807: +endif1845: %t70 = load { ptr, i64, i64 }, ptr %a13 store { ptr, i64, i64 } %t70, ptr %a71 - store { ptr, i64, i64 } { ptr @.str.1003, i64 4, i64 0 }, ptr %a72 + store { ptr, i64, i64 } { ptr @.str.1023, i64 4, i64 0 }, ptr %a72 %t73 = call i32 @finch_str_eq(ptr %a71, ptr %a72) %t74 = icmp ne i32 %t73, 0 - br label %logic.from1808 -logic.from1808: - br i1 %t74, label %logic.end1810, label %logic.rhs1809 -logic.rhs1809: + br label %logic.from1846 +logic.from1846: + br i1 %t74, label %logic.end1848, label %logic.rhs1847 +logic.rhs1847: %t75 = load { ptr, i64, i64 }, ptr %a13 store { ptr, i64, i64 } %t75, ptr %a76 - store { ptr, i64, i64 } { ptr @.str.1004, i64 5, i64 0 }, ptr %a77 + store { ptr, i64, i64 } { ptr @.str.1024, i64 5, i64 0 }, ptr %a77 %t78 = call i32 @finch_str_eq(ptr %a76, ptr %a77) %t79 = icmp ne i32 %t78, 0 - br label %logic.rend1811 -logic.rend1811: - br label %logic.end1810 -logic.end1810: - %t80 = phi i1 [ true, %logic.from1808 ], [ %t79, %logic.rend1811 ] - br i1 %t80, label %then1812, label %endif1814 -then1812: + br label %logic.rend1849 +logic.rend1849: + br label %logic.end1848 +logic.end1848: + %t80 = phi i1 [ true, %logic.from1846 ], [ %t79, %logic.rend1849 ] + br i1 %t80, label %then1850, label %endif1852 +then1850: %t81 = load ptr, ptr %a1 %t82 = call %S.lexer.Token @finch.parser.next(ptr %t81) store %S.lexer.Token %t82, ptr %a83 call void @finch.drop.S_lexer_Token(ptr %a83) %t84 = getelementptr inbounds %S.ast.Node, ptr %a7, i32 0, i32 0 %t85 = load { ptr, i64, i64 }, ptr %t84 - store { ptr, i64, i64 } { ptr @.str.1005, i64 4, i64 0 }, ptr %t84 + store { ptr, i64, i64 } { ptr @.str.1025, i64 4, i64 0 }, ptr %t84 store { ptr, i64, i64 } %t85, ptr %a86 call void @finch_str_drop(ptr %a86) %t87 = load { ptr, i64, i64 }, ptr %a13 @@ -20649,46 +21288,46 @@ then1812: call void @finch_str_drop(ptr %a13) call void @finch.drop.S_lexer_Token(ptr %a4) ret %S.ast.Node %t94 -endif1814: +endif1852: %t95 = load { ptr, i64, i64 }, ptr %a13 store { ptr, i64, i64 } %t95, ptr %a96 - store { ptr, i64, i64 } { ptr @.str.1006, i64 4, i64 0 }, ptr %a97 + store { ptr, i64, i64 } { ptr @.str.1026, i64 4, i64 0 }, ptr %a97 %t98 = call i32 @finch_str_eq(ptr %a96, ptr %a97) %t99 = icmp ne i32 %t98, 0 - br i1 %t99, label %then1815, label %endif1817 -then1815: + br i1 %t99, label %then1853, label %endif1855 +then1853: %t100 = load ptr, ptr %a1 %t101 = call %S.lexer.Token @finch.parser.next(ptr %t100) store %S.lexer.Token %t101, ptr %a102 call void @finch.drop.S_lexer_Token(ptr %a102) %t103 = getelementptr inbounds %S.ast.Node, ptr %a7, i32 0, i32 0 %t104 = load { ptr, i64, i64 }, ptr %t103 - store { ptr, i64, i64 } { ptr @.str.1007, i64 4, i64 0 }, ptr %t103 + store { ptr, i64, i64 } { ptr @.str.1027, i64 4, i64 0 }, ptr %t103 store { ptr, i64, i64 } %t104, ptr %a105 call void @finch_str_drop(ptr %a105) %t106 = load %S.ast.Node, ptr %a7 call void @finch_str_drop(ptr %a13) call void @finch.drop.S_lexer_Token(ptr %a4) ret %S.ast.Node %t106 -endif1817: +endif1855: %t107 = load { ptr, i64, i64 }, ptr %a13 store { ptr, i64, i64 } %t107, ptr %a108 - store { ptr, i64, i64 } { ptr @.str.1008, i64 1, i64 0 }, ptr %a109 + store { ptr, i64, i64 } { ptr @.str.1028, i64 1, i64 0 }, ptr %a109 %t110 = call i32 @finch_str_eq(ptr %a108, ptr %a109) %t111 = icmp ne i32 %t110, 0 - br i1 %t111, label %then1818, label %endif1820 -then1818: + br i1 %t111, label %then1856, label %endif1858 +then1856: %t112 = load ptr, ptr %a1 %t113 = call %S.lexer.Token @finch.parser.next(ptr %t112) store %S.lexer.Token %t113, ptr %a114 call void @finch.drop.S_lexer_Token(ptr %a114) %t115 = load ptr, ptr %a1 %t116 = icmp eq ptr %t115, null - br i1 %t116, label %panic1821, label %ok1822 -panic1821: - call void @finch_panic(ptr @.str.1009, i64 715, ptr @.str.1010) + br i1 %t116, label %panic1859, label %ok1860 +panic1859: + call void @finch_panic(ptr @.str.1029, i64 763, ptr @.str.1030) unreachable -ok1822: +ok1860: %t117 = getelementptr inbounds %S.parser.Parser, ptr %t115, i32 0, i32 2 %t118 = load i64, ptr %t117 %t119 = add i64 %t118, 1 @@ -20698,17 +21337,17 @@ ok1822: store %S.ast.Node %t121, ptr %a122 %t123 = load ptr, ptr %a1 %t124 = icmp eq ptr %t123, null - br i1 %t124, label %panic1823, label %ok1824 -panic1823: - call void @finch_panic(ptr @.str.1011, i64 717, ptr @.str.1012) + br i1 %t124, label %panic1861, label %ok1862 +panic1861: + call void @finch_panic(ptr @.str.1031, i64 765, ptr @.str.1032) unreachable -ok1824: +ok1862: %t125 = getelementptr inbounds %S.parser.Parser, ptr %t123, i32 0, i32 2 %t126 = load i64, ptr %t125 %t127 = sub i64 %t126, 1 store i64 %t127, ptr %t125 %t128 = load ptr, ptr %a1 - %t129 = call %S.lexer.Token @finch.parser.expect(ptr %t128, { ptr, i64, i64 } { ptr @.str.1013, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.1014, i64 3, i64 0 }) + %t129 = call %S.lexer.Token @finch.parser.expect(ptr %t128, { ptr, i64, i64 } { ptr @.str.1033, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.1034, i64 3, i64 0 }) store %S.lexer.Token %t129, ptr %a130 call void @finch.drop.S_lexer_Token(ptr %a130) %t131 = load %S.ast.Node, ptr %a122 @@ -20716,87 +21355,87 @@ ok1824: call void @finch.drop.S_ast_Node(ptr %a7) call void @finch.drop.S_lexer_Token(ptr %a4) ret %S.ast.Node %t131 -endif1820: +endif1858: %t132 = load { ptr, i64, i64 }, ptr %a13 store { ptr, i64, i64 } %t132, ptr %a133 - store { ptr, i64, i64 } { ptr @.str.1015, i64 5, i64 0 }, ptr %a134 + store { ptr, i64, i64 } { ptr @.str.1035, i64 5, i64 0 }, ptr %a134 %t135 = call i32 @finch_str_eq(ptr %a133, ptr %a134) %t136 = icmp ne i32 %t135, 0 - br i1 %t136, label %then1825, label %endif1827 -then1825: + br i1 %t136, label %then1863, label %endif1865 +then1863: %t137 = load ptr, ptr %a1 %t138 = call %S.ast.Node @finch.parser.parseMatch(ptr %t137, i1 true) call void @finch_str_drop(ptr %a13) call void @finch.drop.S_ast_Node(ptr %a7) call void @finch.drop.S_lexer_Token(ptr %a4) ret %S.ast.Node %t138 -endif1827: +endif1865: %t139 = load { ptr, i64, i64 }, ptr %a13 store { ptr, i64, i64 } %t139, ptr %a140 - store { ptr, i64, i64 } { ptr @.str.1016, i64 1, i64 0 }, ptr %a141 + store { ptr, i64, i64 } { ptr @.str.1036, i64 1, i64 0 }, ptr %a141 %t142 = call i32 @finch_str_eq(ptr %a140, ptr %a141) %t143 = icmp ne i32 %t142, 0 - br i1 %t143, label %then1828, label %endif1830 -then1828: + br i1 %t143, label %then1866, label %endif1868 +then1866: %t144 = load ptr, ptr %a1 %t145 = call %S.lexer.Token @finch.parser.next(ptr %t144) store %S.lexer.Token %t145, ptr %a146 call void @finch.drop.S_lexer_Token(ptr %a146) %t147 = getelementptr inbounds %S.ast.Node, ptr %a7, i32 0, i32 0 %t148 = load { ptr, i64, i64 }, ptr %t147 - store { ptr, i64, i64 } { ptr @.str.1017, i64 5, i64 0 }, ptr %t147 + store { ptr, i64, i64 } { ptr @.str.1037, i64 5, i64 0 }, ptr %t147 store { ptr, i64, i64 } %t148, ptr %a149 call void @finch_str_drop(ptr %a149) %t150 = load ptr, ptr %a1 %t151 = icmp eq ptr %t150, null - br i1 %t151, label %panic1831, label %ok1832 -panic1831: - call void @finch_panic(ptr @.str.1018, i64 727, ptr @.str.1019) + br i1 %t151, label %panic1869, label %ok1870 +panic1869: + call void @finch_panic(ptr @.str.1038, i64 775, ptr @.str.1039) unreachable -ok1832: +ok1870: %t152 = getelementptr inbounds %S.parser.Parser, ptr %t150, i32 0, i32 2 %t153 = load i64, ptr %t152 %t154 = add i64 %t153, 1 store i64 %t154, ptr %t152 %t155 = load ptr, ptr %a1 - %t156 = call i1 @finch.parser.at(ptr %t155, { ptr, i64, i64 } { ptr @.str.1020, i64 1, i64 0 }) - br label %logic.from1833 -logic.from1833: - br i1 %t156, label %logic.rhs1834, label %logic.end1835 -logic.rhs1834: + %t156 = call i1 @finch.parser.at(ptr %t155, { ptr, i64, i64 } { ptr @.str.1040, i64 1, i64 0 }) + br label %logic.from1871 +logic.from1871: + br i1 %t156, label %logic.rhs1872, label %logic.end1873 +logic.rhs1872: %t157 = load ptr, ptr %a1 %t158 = call { ptr, i64, i64 } @finch.parser.peekKind(ptr %t157, i64 1) store { ptr, i64, i64 } %t158, ptr %a159 - store { ptr, i64, i64 } { ptr @.str.1021, i64 1, i64 0 }, ptr %a160 + store { ptr, i64, i64 } { ptr @.str.1041, i64 1, i64 0 }, ptr %a160 %t161 = call i32 @finch_str_eq(ptr %a159, ptr %a160) %t162 = icmp ne i32 %t161, 0 store { ptr, i64, i64 } %t158, ptr %a163 call void @finch_str_drop(ptr %a163) - br label %logic.rend1836 -logic.rend1836: - br label %logic.end1835 -logic.end1835: - %t164 = phi i1 [ false, %logic.from1833 ], [ %t162, %logic.rend1836 ] - br i1 %t164, label %then1837, label %endif1839 -then1837: + br label %logic.rend1874 +logic.rend1874: + br label %logic.end1873 +logic.end1873: + %t164 = phi i1 [ false, %logic.from1871 ], [ %t162, %logic.rend1874 ] + br i1 %t164, label %then1875, label %endif1877 +then1875: %t165 = load ptr, ptr %a1 %t166 = call %S.lexer.Token @finch.parser.next(ptr %t165) store %S.lexer.Token %t166, ptr %a167 call void @finch.drop.S_lexer_Token(ptr %a167) %t168 = getelementptr inbounds %S.ast.Node, ptr %a7, i32 0, i32 0 %t169 = load { ptr, i64, i64 }, ptr %t168 - store { ptr, i64, i64 } { ptr @.str.1022, i64 3, i64 0 }, ptr %t168 + store { ptr, i64, i64 } { ptr @.str.1042, i64 3, i64 0 }, ptr %t168 store { ptr, i64, i64 } %t169, ptr %a170 call void @finch_str_drop(ptr %a170) - br label %endif1839 -endif1839: - br label %while.cond1840 -while.cond1840: + br label %endif1877 +endif1877: + br label %while.cond1878 +while.cond1878: %t171 = load ptr, ptr %a1 - %t172 = call i1 @finch.parser.at(ptr %t171, { ptr, i64, i64 } { ptr @.str.1023, i64 1, i64 0 }) + %t172 = call i1 @finch.parser.at(ptr %t171, { ptr, i64, i64 } { ptr @.str.1043, i64 1, i64 0 }) %t173 = xor i1 %t172, true - br i1 %t173, label %while.body1841, label %while.end1842 -while.body1841: + br i1 %t173, label %while.body1879, label %while.end1880 +while.body1879: %t174 = getelementptr inbounds %S.ast.Node, ptr %a7, i32 0, i32 9 %t175 = getelementptr inbounds { ptr, i64, i64 }, ptr %t174, i32 0, i32 1 %t176 = load ptr, ptr %a1 @@ -20812,36 +21451,36 @@ while.body1841: %t183 = getelementptr inbounds { ptr, i64, i64 }, ptr %t182, i32 0, i32 1 %t184 = load i64, ptr %t183 %t185 = icmp eq i64 %t184, 1 - br label %logic.from1843 -logic.from1843: - br i1 %t185, label %logic.rhs1844, label %logic.end1845 -logic.rhs1844: + br label %logic.from1881 +logic.from1881: + br i1 %t185, label %logic.rhs1882, label %logic.end1883 +logic.rhs1882: %t186 = load ptr, ptr %a1 - %t187 = call i1 @finch.parser.at(ptr %t186, { ptr, i64, i64 } { ptr @.str.1024, i64 1, i64 0 }) - br label %logic.rend1846 -logic.rend1846: - br label %logic.end1845 -logic.end1845: - %t188 = phi i1 [ false, %logic.from1843 ], [ %t187, %logic.rend1846 ] - br i1 %t188, label %then1847, label %endif1849 -then1847: + %t187 = call i1 @finch.parser.at(ptr %t186, { ptr, i64, i64 } { ptr @.str.1044, i64 1, i64 0 }) + br label %logic.rend1884 +logic.rend1884: + br label %logic.end1883 +logic.end1883: + %t188 = phi i1 [ false, %logic.from1881 ], [ %t187, %logic.rend1884 ] + br i1 %t188, label %then1885, label %endif1887 +then1885: %t189 = getelementptr inbounds %S.ast.Node, ptr %a7, i32 0, i32 0 %t190 = load { ptr, i64, i64 }, ptr %t189 - store { ptr, i64, i64 } { ptr @.str.1025, i64 3, i64 0 }, ptr %t189 + store { ptr, i64, i64 } { ptr @.str.1045, i64 3, i64 0 }, ptr %t189 store { ptr, i64, i64 } %t190, ptr %a191 call void @finch_str_drop(ptr %a191) - br label %endif1849 -endif1849: + br label %endif1887 +endif1887: %t192 = getelementptr inbounds %S.ast.Node, ptr %a7, i32 0, i32 0 %t193 = load { ptr, i64, i64 }, ptr %t192 store { ptr, i64, i64 } %t193, ptr %a194 - store { ptr, i64, i64 } { ptr @.str.1026, i64 3, i64 0 }, ptr %a195 + store { ptr, i64, i64 } { ptr @.str.1046, i64 3, i64 0 }, ptr %a195 %t196 = call i32 @finch_str_eq(ptr %a194, ptr %a195) %t197 = icmp ne i32 %t196, 0 - br i1 %t197, label %then1850, label %endif1852 -then1850: + br i1 %t197, label %then1888, label %endif1890 +then1888: %t198 = load ptr, ptr %a1 - %t199 = call %S.lexer.Token @finch.parser.expect(ptr %t198, { ptr, i64, i64 } { ptr @.str.1027, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.1028, i64 41, i64 0 }) + %t199 = call %S.lexer.Token @finch.parser.expect(ptr %t198, { ptr, i64, i64 } { ptr @.str.1047, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.1048, i64 41, i64 0 }) store %S.lexer.Token %t199, ptr %a200 call void @finch.drop.S_lexer_Token(ptr %a200) %t201 = getelementptr inbounds %S.ast.Node, ptr %a7, i32 0, i32 9 @@ -20855,44 +21494,44 @@ then1850: %t208 = getelementptr inbounds %S.ast.Node, ptr %t207, i64 %t205 store %S.ast.Node %t204, ptr %t208 store i64 %t206, ptr %t202 - br label %endif1852 -endif1852: + br label %endif1890 +endif1890: %t209 = load ptr, ptr %a1 - %t210 = call i1 @finch.parser.accept(ptr %t209, { ptr, i64, i64 } { ptr @.str.1029, i64 1, i64 0 }) + %t210 = call i1 @finch.parser.accept(ptr %t209, { ptr, i64, i64 } { ptr @.str.1049, i64 1, i64 0 }) %t211 = xor i1 %t210, true - br i1 %t211, label %then1853, label %endif1855 -then1853: - br label %while.end1842 -endif1855: - br label %while.cond1840 -while.end1842: + br i1 %t211, label %then1891, label %endif1893 +then1891: + br label %while.end1880 +endif1893: + br label %while.cond1878 +while.end1880: %t212 = load ptr, ptr %a1 %t213 = icmp eq ptr %t212, null - br i1 %t213, label %panic1856, label %ok1857 -panic1856: - call void @finch_panic(ptr @.str.1030, i64 745, ptr @.str.1031) + br i1 %t213, label %panic1894, label %ok1895 +panic1894: + call void @finch_panic(ptr @.str.1050, i64 793, ptr @.str.1051) unreachable -ok1857: +ok1895: %t214 = getelementptr inbounds %S.parser.Parser, ptr %t212, i32 0, i32 2 %t215 = load i64, ptr %t214 %t216 = sub i64 %t215, 1 store i64 %t216, ptr %t214 %t217 = load ptr, ptr %a1 - %t218 = call %S.lexer.Token @finch.parser.expect(ptr %t217, { ptr, i64, i64 } { ptr @.str.1032, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.1033, i64 3, i64 0 }) + %t218 = call %S.lexer.Token @finch.parser.expect(ptr %t217, { ptr, i64, i64 } { ptr @.str.1052, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.1053, i64 3, i64 0 }) store %S.lexer.Token %t218, ptr %a219 call void @finch.drop.S_lexer_Token(ptr %a219) %t220 = load %S.ast.Node, ptr %a7 call void @finch_str_drop(ptr %a13) call void @finch.drop.S_lexer_Token(ptr %a4) ret %S.ast.Node %t220 -endif1830: +endif1868: %t221 = load { ptr, i64, i64 }, ptr %a13 store { ptr, i64, i64 } %t221, ptr %a222 - store { ptr, i64, i64 } { ptr @.str.1034, i64 5, i64 0 }, ptr %a223 + store { ptr, i64, i64 } { ptr @.str.1054, i64 5, i64 0 }, ptr %a223 %t224 = call i32 @finch_str_eq(ptr %a222, ptr %a223) %t225 = icmp ne i32 %t224, 0 - br i1 %t225, label %then1858, label %endif1860 -then1858: + br i1 %t225, label %then1896, label %endif1898 +then1896: %t226 = load ptr, ptr %a1 %t227 = call %S.lexer.Token @finch.parser.next(ptr %t226) store %S.lexer.Token %t227, ptr %a228 @@ -20908,77 +21547,77 @@ then1858: store { ptr, i64, i64 } %t235, ptr %a236 call void @finch_str_drop(ptr %a236) %t237 = load ptr, ptr %a1 - %t238 = call i1 @finch.parser.at(ptr %t237, { ptr, i64, i64 } { ptr @.str.1035, i64 1, i64 0 }) - br label %logic.from1861 -logic.from1861: - br i1 %t238, label %logic.rhs1862, label %logic.end1863 -logic.rhs1862: + %t238 = call i1 @finch.parser.at(ptr %t237, { ptr, i64, i64 } { ptr @.str.1055, i64 1, i64 0 }) + br label %logic.from1899 +logic.from1899: + br i1 %t238, label %logic.rhs1900, label %logic.end1901 +logic.rhs1900: %t239 = load ptr, ptr %a1 %t240 = icmp eq ptr %t239, null - br i1 %t240, label %panic1864, label %ok1865 -panic1864: - call void @finch_panic(ptr @.str.1036, i64 752, ptr @.str.1037) + br i1 %t240, label %panic1902, label %ok1903 +panic1902: + call void @finch_panic(ptr @.str.1056, i64 800, ptr @.str.1057) unreachable -ok1865: +ok1903: %t241 = getelementptr inbounds %S.parser.Parser, ptr %t239, i32 0, i32 0 %t242 = load ptr, ptr %a1 %t243 = icmp eq ptr %t242, null - br i1 %t243, label %panic1866, label %ok1867 -panic1866: - call void @finch_panic(ptr @.str.1038, i64 752, ptr @.str.1039) + br i1 %t243, label %panic1904, label %ok1905 +panic1904: + call void @finch_panic(ptr @.str.1058, i64 800, ptr @.str.1059) unreachable -ok1867: +ok1905: %t244 = getelementptr inbounds %S.parser.Parser, ptr %t242, i32 0, i32 1 %t245 = load i64, ptr %t244 %t246 = sub i64 %t245, 1 %t247 = load { ptr, i64, i64 }, ptr %t241 %t248 = extractvalue { ptr, i64, i64 } %t247, 1 %t249 = icmp uge i64 %t246, %t248 - br i1 %t249, label %range1868, label %inrange1869 -range1868: - call void @finch_panic_index(ptr @.str.1040, i64 752, i64 %t246, i64 %t248) + br i1 %t249, label %range1906, label %inrange1907 +range1906: + call void @finch_panic_index(ptr @.str.1060, i64 800, i64 %t246, i64 %t248) unreachable -inrange1869: +inrange1907: %t250 = extractvalue { ptr, i64, i64 } %t247, 0 %t251 = getelementptr inbounds %S.lexer.Token, ptr %t250, i64 %t246 %t252 = getelementptr inbounds %S.lexer.Token, ptr %t251, i32 0, i32 0 %t253 = load { ptr, i64, i64 }, ptr %t252 store { ptr, i64, i64 } %t253, ptr %a254 - store { ptr, i64, i64 } { ptr @.str.1041, i64 5, i64 0 }, ptr %a255 + store { ptr, i64, i64 } { ptr @.str.1061, i64 5, i64 0 }, ptr %a255 %t256 = call i32 @finch_str_eq(ptr %a254, ptr %a255) %t257 = icmp ne i32 %t256, 0 - br label %logic.rend1870 -logic.rend1870: - br label %logic.end1863 -logic.end1863: - %t258 = phi i1 [ false, %logic.from1861 ], [ %t257, %logic.rend1870 ] - br label %logic.from1871 -logic.from1871: - br i1 %t258, label %logic.rhs1872, label %logic.end1873 -logic.rhs1872: + br label %logic.rend1908 +logic.rend1908: + br label %logic.end1901 +logic.end1901: + %t258 = phi i1 [ false, %logic.from1899 ], [ %t257, %logic.rend1908 ] + br label %logic.from1909 +logic.from1909: + br i1 %t258, label %logic.rhs1910, label %logic.end1911 +logic.rhs1910: %t259 = load ptr, ptr %a1 %t260 = call i1 @finch.parser.genericCallAheadFrom(ptr %t259) - br label %logic.rend1874 -logic.rend1874: - br label %logic.end1873 -logic.end1873: - %t261 = phi i1 [ false, %logic.from1871 ], [ %t260, %logic.rend1874 ] - br i1 %t261, label %then1875, label %endif1877 -then1875: + br label %logic.rend1912 +logic.rend1912: + br label %logic.end1911 +logic.end1911: + %t261 = phi i1 [ false, %logic.from1909 ], [ %t260, %logic.rend1912 ] + br i1 %t261, label %then1913, label %endif1915 +then1913: %t262 = load ptr, ptr %a1 %t263 = call %S.lexer.Token @finch.parser.next(ptr %t262) store %S.lexer.Token %t263, ptr %a264 call void @finch.drop.S_lexer_Token(ptr %a264) - %t265 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.1042, i64 5, i64 0 }, 0 + %t265 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.1062, i64 5, i64 0 }, 0 %t266 = getelementptr inbounds %S.ast.Node, ptr %a7, i32 0, i32 5 %t267 = load %S.ast.Type, ptr %t266 store %S.ast.Type %t265, ptr %t266 store %S.ast.Type %t267, ptr %a268 call void @finch.drop.S_ast_Type(ptr %a268) - br label %while.cond1878 -while.cond1878: - br label %while.body1879 -while.body1879: + br label %while.cond1916 +while.cond1916: + br label %while.body1917 +while.body1917: %t269 = getelementptr inbounds %S.ast.Node, ptr %a7, i32 0, i32 5 %t270 = getelementptr inbounds %S.ast.Type, ptr %t269, i32 0, i32 1 %t271 = getelementptr inbounds { ptr, i64, i64 }, ptr %t270, i32 0, i32 1 @@ -20992,21 +21631,21 @@ while.body1879: store %S.ast.Type %t273, ptr %t277 store i64 %t275, ptr %t271 %t278 = load ptr, ptr %a1 - %t279 = call i1 @finch.parser.accept(ptr %t278, { ptr, i64, i64 } { ptr @.str.1043, i64 1, i64 0 }) + %t279 = call i1 @finch.parser.accept(ptr %t278, { ptr, i64, i64 } { ptr @.str.1063, i64 1, i64 0 }) %t280 = xor i1 %t279, true - br i1 %t280, label %then1881, label %endif1883 -then1881: - br label %while.end1880 -endif1883: - br label %while.cond1878 -while.end1880: + br i1 %t280, label %then1919, label %endif1921 +then1919: + br label %while.end1918 +endif1921: + br label %while.cond1916 +while.end1918: %t281 = load ptr, ptr %a1 - %t282 = call %S.lexer.Token @finch.parser.expect(ptr %t281, { ptr, i64, i64 } { ptr @.str.1044, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.1045, i64 28, i64 0 }) + %t282 = call %S.lexer.Token @finch.parser.expect(ptr %t281, { ptr, i64, i64 } { ptr @.str.1064, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.1065, i64 28, i64 0 }) store %S.lexer.Token %t282, ptr %a283 call void @finch.drop.S_lexer_Token(ptr %a283) %t284 = getelementptr inbounds %S.ast.Node, ptr %a7, i32 0, i32 0 %t285 = load { ptr, i64, i64 }, ptr %t284 - store { ptr, i64, i64 } { ptr @.str.1046, i64 4, i64 0 }, ptr %t284 + store { ptr, i64, i64 } { ptr @.str.1066, i64 4, i64 0 }, ptr %t284 store { ptr, i64, i64 } %t285, ptr %a286 call void @finch_str_drop(ptr %a286) %t287 = load ptr, ptr %a1 @@ -21015,29 +21654,29 @@ while.end1880: call void @finch_str_drop(ptr %a13) call void @finch.drop.S_lexer_Token(ptr %a4) ret %S.ast.Node %t288 -endif1877: +endif1915: %t289 = load ptr, ptr %a1 - %t290 = call i1 @finch.parser.at(ptr %t289, { ptr, i64, i64 } { ptr @.str.1047, i64 1, i64 0 }) - br label %logic.from1884 -logic.from1884: - br i1 %t290, label %logic.rhs1885, label %logic.end1886 -logic.rhs1885: + %t290 = call i1 @finch.parser.at(ptr %t289, { ptr, i64, i64 } { ptr @.str.1067, i64 1, i64 0 }) + br label %logic.from1922 +logic.from1922: + br i1 %t290, label %logic.rhs1923, label %logic.end1924 +logic.rhs1923: %t291 = load ptr, ptr %a1 %t292 = call %S.lexer.Token @finch.parser.cur(ptr %t291) %t293 = extractvalue %S.lexer.Token %t292, 4 store %S.lexer.Token %t292, ptr %a294 call void @finch.drop.S_lexer_Token(ptr %a294) %t295 = xor i1 %t293, true - br label %logic.rend1887 -logic.rend1887: - br label %logic.end1886 -logic.end1886: - %t296 = phi i1 [ false, %logic.from1884 ], [ %t295, %logic.rend1887 ] - br i1 %t296, label %then1888, label %endif1890 -then1888: + br label %logic.rend1925 +logic.rend1925: + br label %logic.end1924 +logic.end1924: + %t296 = phi i1 [ false, %logic.from1922 ], [ %t295, %logic.rend1925 ] + br i1 %t296, label %then1926, label %endif1928 +then1926: %t297 = getelementptr inbounds %S.ast.Node, ptr %a7, i32 0, i32 0 %t298 = load { ptr, i64, i64 }, ptr %t297 - store { ptr, i64, i64 } { ptr @.str.1048, i64 4, i64 0 }, ptr %t297 + store { ptr, i64, i64 } { ptr @.str.1068, i64 4, i64 0 }, ptr %t297 store { ptr, i64, i64 } %t298, ptr %a299 call void @finch_str_drop(ptr %a299) %t300 = load ptr, ptr %a1 @@ -21046,29 +21685,29 @@ then1888: call void @finch_str_drop(ptr %a13) call void @finch.drop.S_lexer_Token(ptr %a4) ret %S.ast.Node %t301 -endif1890: +endif1928: %t302 = getelementptr inbounds %S.ast.Node, ptr %a7, i32 0, i32 0 %t303 = load { ptr, i64, i64 }, ptr %t302 - store { ptr, i64, i64 } { ptr @.str.1049, i64 3, i64 0 }, ptr %t302 + store { ptr, i64, i64 } { ptr @.str.1069, i64 3, i64 0 }, ptr %t302 store { ptr, i64, i64 } %t303, ptr %a304 call void @finch_str_drop(ptr %a304) %t305 = load %S.ast.Node, ptr %a7 call void @finch_str_drop(ptr %a13) call void @finch.drop.S_lexer_Token(ptr %a4) ret %S.ast.Node %t305 -endif1860: +endif1898: %t306 = load ptr, ptr %a1 %t307 = load %S.lexer.Token, ptr %a4 %t308 = load %S.lexer.Token, ptr %a4 %t309 = call { ptr, i64, i64 } @finch.parser.describe(%S.lexer.Token %t308) - store { ptr, i64, i64 } { ptr @.str.1050, i64 11, i64 0 }, ptr %a311 + store { ptr, i64, i64 } { ptr @.str.1070, i64 11, i64 0 }, ptr %a311 store { ptr, i64, i64 } %t309, ptr %a312 call void @finch_str_concat(ptr %a310, ptr %a311, ptr %a312) store { ptr, i64, i64 } %t309, ptr %a313 call void @finch_str_drop(ptr %a313) %t314 = load { ptr, i64, i64 }, ptr %a310 store { ptr, i64, i64 } %t314, ptr %a316 - store { ptr, i64, i64 } { ptr @.str.1051, i64 19, i64 0 }, ptr %a317 + store { ptr, i64, i64 } { ptr @.str.1071, i64 19, i64 0 }, ptr %a317 call void @finch_str_concat(ptr %a315, ptr %a316, ptr %a317) store { ptr, i64, i64 } %t314, ptr %a318 call void @finch_str_drop(ptr %a318) @@ -21091,20 +21730,20 @@ entry: %t3 = getelementptr inbounds { ptr, i64, i64 }, ptr %src, i32 0, i32 1 %t4 = load i64, ptr %t3 store i64 0, ptr %a5 - br label %n.cond1891 -n.cond1891: + br label %n.cond1929 +n.cond1929: %t6 = load i64, ptr %a5 %t7 = icmp slt i64 %t6, %t4 - br i1 %t7, label %n.body1892, label %n.end1893 -n.body1892: + br i1 %t7, label %n.body1930, label %n.end1931 +n.body1930: %t8 = getelementptr inbounds %S.lexer.Token, ptr %t1, i64 %t6 %t9 = getelementptr inbounds %S.lexer.Token, ptr %t2, i64 %t6 call void @finch.copy.S_lexer_Token(ptr %t8, ptr %t9) %t10 = load i64, ptr %a5 %t11 = add i64 %t10, 1 store i64 %t11, ptr %a5 - br label %n.cond1891 -n.end1893: + br label %n.cond1929 +n.end1931: ret void } @@ -21171,20 +21810,20 @@ entry: store { ptr, i64, i64 } %p0, ptr %a1 %t2 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t2, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.1053, i64 1, i64 0 }, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.1054, i64 2, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.1073, i64 1, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.1074, i64 2, i64 0 }, ptr %a6 call void @finch_str_replace(ptr %a4, ptr %a3, ptr %a5, ptr %a6) %t7 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t7, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.1056, i64 1, i64 0 }, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.1057, i64 2, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.1076, i64 1, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.1077, i64 2, i64 0 }, ptr %a11 call void @finch_str_replace(ptr %a9, ptr %a8, ptr %a10, ptr %a11) %t12 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t7, ptr %a13 call void @finch_str_drop(ptr %a13) store { ptr, i64, i64 } %t12, ptr %a14 - store { ptr, i64, i64 } { ptr @.str.1059, i64 1, i64 0 }, ptr %a16 - store { ptr, i64, i64 } { ptr @.str.1060, i64 1, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.1079, i64 1, i64 0 }, ptr %a16 + store { ptr, i64, i64 } { ptr @.str.1080, i64 1, i64 0 }, ptr %a17 call void @finch_str_replace(ptr %a15, ptr %a14, ptr %a16, ptr %a17) %t18 = load { ptr, i64, i64 }, ptr %a15 store { ptr, i64, i64 } %t12, ptr %a19 @@ -21282,54 +21921,54 @@ entry: store i64 %p7, ptr %a8 %t9 = load ptr, ptr %a1 %t10 = icmp eq ptr %t9, null - br i1 %t10, label %panic1894, label %ok1895 -panic1894: - call void @finch_panic(ptr @.str.1061, i64 215, ptr @.str.1062) + br i1 %t10, label %panic1932, label %ok1933 +panic1932: + call void @finch_panic(ptr @.str.1081, i64 232, ptr @.str.1082) unreachable -ok1895: - %t11 = getelementptr inbounds %S.gen.Gen, ptr %t9, i32 0, i32 27 +ok1933: + %t11 = getelementptr inbounds %S.gen.Gen, ptr %t9, i32 0, i32 28 %t12 = load i1, ptr %t11 %t13 = xor i1 %t12, true - br i1 %t13, label %then1896, label %endif1898 -then1896: + br i1 %t13, label %then1934, label %endif1936 +then1934: ret void -endif1898: +endif1936: %t14 = load ptr, ptr %a1 %t15 = icmp eq ptr %t14, null - br i1 %t15, label %panic1899, label %ok1900 -panic1899: - call void @finch_panic(ptr @.str.1063, i64 218, ptr @.str.1064) + br i1 %t15, label %panic1937, label %ok1938 +panic1937: + call void @finch_panic(ptr @.str.1083, i64 235, ptr @.str.1084) unreachable -ok1900: - %t16 = getelementptr inbounds %S.gen.Gen, ptr %t14, i32 0, i32 28 +ok1938: + %t16 = getelementptr inbounds %S.gen.Gen, ptr %t14, i32 0, i32 29 %t17 = getelementptr inbounds { ptr, i64, i64 }, ptr %t16, i32 0, i32 1 %t18 = load ptr, ptr %a1 %t19 = icmp eq ptr %t18, null - br i1 %t19, label %panic1901, label %ok1902 -panic1901: - call void @finch_panic(ptr @.str.1066, i64 218, ptr @.str.1067) + br i1 %t19, label %panic1939, label %ok1940 +panic1939: + call void @finch_panic(ptr @.str.1086, i64 235, ptr @.str.1087) unreachable -ok1902: +ok1940: %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 1 %t21 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 13 %t22 = load i64, ptr %t21 %t23 = load { ptr, i64, i64 }, ptr %t20 %t24 = extractvalue { ptr, i64, i64 } %t23, 1 %t25 = icmp uge i64 %t22, %t24 - br i1 %t25, label %range1903, label %inrange1904 -range1903: - call void @finch_panic_index(ptr @.str.1068, i64 218, i64 %t22, i64 %t24) + br i1 %t25, label %range1941, label %inrange1942 +range1941: + call void @finch_panic_index(ptr @.str.1088, i64 235, i64 %t22, i64 %t24) unreachable -inrange1904: +inrange1942: %t26 = extractvalue { ptr, i64, i64 } %t23, 0 %t27 = getelementptr inbounds { ptr, i64, i64 }, ptr %t26, i64 %t22 %t28 = load { ptr, i64, i64 }, ptr %t27 - store { ptr, i64, i64 } { ptr @.str.1065, i64 3, i64 0 }, ptr %a30 + store { ptr, i64, i64 } { ptr @.str.1085, i64 3, i64 0 }, ptr %a30 store { ptr, i64, i64 } %t28, ptr %a31 call void @finch_str_concat(ptr %a29, ptr %a30, ptr %a31) %t32 = load { ptr, i64, i64 }, ptr %a29 store { ptr, i64, i64 } %t32, ptr %a34 - store { ptr, i64, i64 } { ptr @.str.1069, i64 1, i64 0 }, ptr %a35 + store { ptr, i64, i64 } { ptr @.str.1089, i64 1, i64 0 }, ptr %a35 call void @finch_str_concat(ptr %a33, ptr %a34, ptr %a35) store { ptr, i64, i64 } %t32, ptr %a36 call void @finch_str_drop(ptr %a36) @@ -21347,7 +21986,7 @@ inrange1904: call void @finch_str_drop(ptr %a46) %t47 = load { ptr, i64, i64 }, ptr %a42 store { ptr, i64, i64 } %t47, ptr %a49 - store { ptr, i64, i64 } { ptr @.str.1070, i64 1, i64 0 }, ptr %a50 + store { ptr, i64, i64 } { ptr @.str.1090, i64 1, i64 0 }, ptr %a50 call void @finch_str_concat(ptr %a48, ptr %a49, ptr %a50) store { ptr, i64, i64 } %t47, ptr %a51 call void @finch_str_drop(ptr %a51) @@ -21364,7 +22003,7 @@ inrange1904: call void @finch_str_drop(ptr %a60) %t61 = load { ptr, i64, i64 }, ptr %a56 store { ptr, i64, i64 } %t61, ptr %a63 - store { ptr, i64, i64 } { ptr @.str.1071, i64 1, i64 0 }, ptr %a64 + store { ptr, i64, i64 } { ptr @.str.1091, i64 1, i64 0 }, ptr %a64 call void @finch_str_concat(ptr %a62, ptr %a63, ptr %a64) store { ptr, i64, i64 } %t61, ptr %a65 call void @finch_str_drop(ptr %a65) @@ -21381,7 +22020,7 @@ inrange1904: call void @finch_str_drop(ptr %a74) %t75 = load { ptr, i64, i64 }, ptr %a70 store { ptr, i64, i64 } %t75, ptr %a77 - store { ptr, i64, i64 } { ptr @.str.1072, i64 1, i64 0 }, ptr %a78 + store { ptr, i64, i64 } { ptr @.str.1092, i64 1, i64 0 }, ptr %a78 call void @finch_str_concat(ptr %a76, ptr %a77, ptr %a78) store { ptr, i64, i64 } %t75, ptr %a79 call void @finch_str_drop(ptr %a79) @@ -21394,7 +22033,7 @@ inrange1904: call void @finch_str_drop(ptr %a85) %t86 = load { ptr, i64, i64 }, ptr %a82 store { ptr, i64, i64 } %t86, ptr %a88 - store { ptr, i64, i64 } { ptr @.str.1073, i64 1, i64 0 }, ptr %a89 + store { ptr, i64, i64 } { ptr @.str.1093, i64 1, i64 0 }, ptr %a89 call void @finch_str_concat(ptr %a87, ptr %a88, ptr %a89) store { ptr, i64, i64 } %t86, ptr %a90 call void @finch_str_drop(ptr %a90) @@ -21411,7 +22050,7 @@ inrange1904: call void @finch_str_drop(ptr %a99) %t100 = load { ptr, i64, i64 }, ptr %a95 store { ptr, i64, i64 } %t100, ptr %a102 - store { ptr, i64, i64 } { ptr @.str.1074, i64 1, i64 0 }, ptr %a103 + store { ptr, i64, i64 } { ptr @.str.1094, i64 1, i64 0 }, ptr %a103 call void @finch_str_concat(ptr %a101, ptr %a102, ptr %a103) store { ptr, i64, i64 } %t100, ptr %a104 call void @finch_str_drop(ptr %a104) @@ -21428,7 +22067,7 @@ inrange1904: call void @finch_str_drop(ptr %a113) %t114 = load { ptr, i64, i64 }, ptr %a109 store { ptr, i64, i64 } %t114, ptr %a116 - store { ptr, i64, i64 } { ptr @.str.1075, i64 1, i64 0 }, ptr %a117 + store { ptr, i64, i64 } { ptr @.str.1095, i64 1, i64 0 }, ptr %a117 call void @finch_str_concat(ptr %a115, ptr %a116, ptr %a117) store { ptr, i64, i64 } %t114, ptr %a118 call void @finch_str_drop(ptr %a118) @@ -21532,29 +22171,29 @@ entry: %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i32 0, i32 1 %t5 = load i64, ptr %t4 store i64 0, ptr %a6 - br label %for.cond1905 -for.cond1905: + br label %for.cond1943 +for.cond1943: %t7 = load i64, ptr %a6 %t8 = icmp slt i64 %t7, %t5 - br i1 %t8, label %for.body1906, label %for.end1908 -for.body1906: + br i1 %t8, label %for.body1944, label %for.end1946 +for.body1944: %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t10 = getelementptr inbounds %S.gen.FnSig, ptr %a1, i32 0, i32 13 %t11 = load i64, ptr %a6 %t12 = load { ptr, i64, i64 }, ptr %t10 %t13 = extractvalue { ptr, i64, i64 } %t12, 1 %t14 = icmp uge i64 %t11, %t13 - br i1 %t14, label %range1909, label %inrange1910 -range1909: - call void @finch_panic_index(ptr @.str.1076, i64 225, i64 %t11, i64 %t13) + br i1 %t14, label %range1947, label %inrange1948 +range1947: + call void @finch_panic_index(ptr @.str.1096, i64 242, i64 %t11, i64 %t13) unreachable -inrange1910: +inrange1948: %t15 = extractvalue { ptr, i64, i64 } %t12, 0 %t16 = getelementptr inbounds %S.ast.Type, ptr %t15, i64 %t11 %t17 = load %S.ast.Type, ptr %t16 %t18 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t17) store { ptr, i64, i64 } %t18, ptr %a20 - store { ptr, i64, i64 } { ptr @.str.1077, i64 1, i64 0 }, ptr %a21 + store { ptr, i64, i64 } { ptr @.str.1097, i64 1, i64 0 }, ptr %a21 call void @finch_str_concat(ptr %a19, ptr %a20, ptr %a21) store { ptr, i64, i64 } %t18, ptr %a22 call void @finch_str_drop(ptr %a22) @@ -21564,11 +22203,11 @@ inrange1910: %t26 = load { ptr, i64, i64 }, ptr %t24 %t27 = extractvalue { ptr, i64, i64 } %t26, 1 %t28 = icmp uge i64 %t25, %t27 - br i1 %t28, label %range1911, label %inrange1912 -range1911: - call void @finch_panic_index(ptr @.str.1078, i64 225, i64 %t25, i64 %t27) + br i1 %t28, label %range1949, label %inrange1950 +range1949: + call void @finch_panic_index(ptr @.str.1098, i64 242, i64 %t25, i64 %t27) unreachable -inrange1912: +inrange1950: %t29 = extractvalue { ptr, i64, i64 } %t26, 0 %t30 = getelementptr inbounds { ptr, i64, i64 }, ptr %t29, i64 %t25 %t31 = load { ptr, i64, i64 }, ptr %t30 @@ -21585,13 +22224,13 @@ inrange1912: %t40 = getelementptr inbounds { ptr, i64, i64 }, ptr %t39, i64 %t37 store { ptr, i64, i64 } %t36, ptr %t40 store i64 %t38, ptr %t9 - br label %for.step1907 -for.step1907: + br label %for.step1945 +for.step1945: %t41 = load i64, ptr %a6 %t42 = add i64 %t41, 1 store i64 %t42, ptr %a6 - br label %for.cond1905 -for.end1908: + br label %for.cond1943 +for.end1946: %t43 = getelementptr inbounds %S.gen.FnSig, ptr %a1, i32 0, i32 1 %t44 = load { ptr, i64, i64 }, ptr %t43 store { ptr, i64, i64 } %t44, ptr %a45 @@ -21602,12 +22241,12 @@ for.end1908: %t50 = getelementptr inbounds { ptr, i64, i64 }, ptr %t49, i32 0, i32 1 %t51 = load i64, ptr %t50 %t52 = icmp sgt i64 %t51, 0 - br i1 %t52, label %then1913, label %endif1915 -then1913: + br i1 %t52, label %then1951, label %endif1953 +then1951: %t53 = getelementptr inbounds %S.gen.FnSig, ptr %a1, i32 0, i32 2 %t54 = load { ptr, i64, i64 }, ptr %t53 store { ptr, i64, i64 } %t54, ptr %a56 - store { ptr, i64, i64 } { ptr @.str.1079, i64 1, i64 0 }, ptr %a57 + store { ptr, i64, i64 } { ptr @.str.1099, i64 1, i64 0 }, ptr %a57 call void @finch_str_concat(ptr %a55, ptr %a56, ptr %a57) %t58 = load { ptr, i64, i64 }, ptr %a55 %t59 = getelementptr inbounds %S.gen.FnSig, ptr %a1, i32 0, i32 1 @@ -21622,21 +22261,21 @@ then1913: store { ptr, i64, i64 } %t65, ptr %a48 store { ptr, i64, i64 } %t66, ptr %a67 call void @finch_str_drop(ptr %a67) - br label %endif1915 -endif1915: + br label %endif1953 +endif1953: %t68 = load { ptr, i64, i64 }, ptr %a48 - store { ptr, i64, i64 } { ptr @.str.1080, i64 3, i64 0 }, ptr %a70 + store { ptr, i64, i64 } { ptr @.str.1100, i64 3, i64 0 }, ptr %a70 store { ptr, i64, i64 } %t68, ptr %a71 call void @finch_str_concat(ptr %a69, ptr %a70, ptr %a71) %t72 = load { ptr, i64, i64 }, ptr %a69 store { ptr, i64, i64 } %t72, ptr %a74 - store { ptr, i64, i64 } { ptr @.str.1081, i64 1, i64 0 }, ptr %a75 + store { ptr, i64, i64 } { ptr @.str.1101, i64 1, i64 0 }, ptr %a75 call void @finch_str_concat(ptr %a73, ptr %a74, ptr %a75) store { ptr, i64, i64 } %t72, ptr %a76 call void @finch_str_drop(ptr %a76) %t77 = load { ptr, i64, i64 }, ptr %a73 %t78 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.1082, i64 2, i64 0 }, ptr %a79 + store { ptr, i64, i64 } { ptr @.str.1102, i64 2, i64 0 }, ptr %a79 call void @finch_str_join(ptr %a80, ptr %a2, ptr %a79) %t81 = load { ptr, i64, i64 }, ptr %a80 store { ptr, i64, i64 } %t77, ptr %a83 @@ -21648,7 +22287,7 @@ endif1915: call void @finch_str_drop(ptr %a86) %t87 = load { ptr, i64, i64 }, ptr %a82 store { ptr, i64, i64 } %t87, ptr %a89 - store { ptr, i64, i64 } { ptr @.str.1083, i64 1, i64 0 }, ptr %a90 + store { ptr, i64, i64 } { ptr @.str.1103, i64 1, i64 0 }, ptr %a90 call void @finch_str_concat(ptr %a88, ptr %a89, ptr %a90) store { ptr, i64, i64 } %t87, ptr %a91 call void @finch_str_drop(ptr %a91) @@ -21656,31 +22295,31 @@ endif1915: store { ptr, i64, i64 } %t92, ptr %a93 %t94 = getelementptr inbounds %S.gen.FnSig, ptr %a1, i32 0, i32 9 %t95 = load i1, ptr %t94 - br i1 %t95, label %then1916, label %else1917 -then1916: + br i1 %t95, label %then1954, label %else1955 +then1954: %t96 = getelementptr inbounds %S.gen.FnSig, ptr %a1, i32 0, i32 12 %t97 = getelementptr inbounds %S.ast.Type, ptr %t96, i32 0, i32 0 %t98 = load { ptr, i64, i64 }, ptr %t97 store { ptr, i64, i64 } %t98, ptr %a99 - store { ptr, i64, i64 } { ptr @.str.1084, i64 4, i64 0 }, ptr %a100 + store { ptr, i64, i64 } { ptr @.str.1104, i64 4, i64 0 }, ptr %a100 %t101 = call i32 @finch_str_eq(ptr %a99, ptr %a100) %t102 = icmp ne i32 %t101, 0 - br i1 %t102, label %then1919, label %else1920 -then1919: + br i1 %t102, label %then1957, label %else1958 +then1957: %t103 = load { ptr, i64, i64 }, ptr %a93 store { ptr, i64, i64 } %t103, ptr %a105 - store { ptr, i64, i64 } { ptr @.str.1085, i64 5, i64 0 }, ptr %a106 + store { ptr, i64, i64 } { ptr @.str.1105, i64 5, i64 0 }, ptr %a106 call void @finch_str_concat(ptr %a104, ptr %a105, ptr %a106) %t107 = load { ptr, i64, i64 }, ptr %a104 %t108 = load { ptr, i64, i64 }, ptr %a93 store { ptr, i64, i64 } %t107, ptr %a93 store { ptr, i64, i64 } %t108, ptr %a109 call void @finch_str_drop(ptr %a109) - br label %endif1921 -else1920: + br label %endif1959 +else1958: %t110 = load { ptr, i64, i64 }, ptr %a93 store { ptr, i64, i64 } %t110, ptr %a112 - store { ptr, i64, i64 } { ptr @.str.1086, i64 4, i64 0 }, ptr %a113 + store { ptr, i64, i64 } { ptr @.str.1106, i64 4, i64 0 }, ptr %a113 call void @finch_str_concat(ptr %a111, ptr %a112, ptr %a113) %t114 = load { ptr, i64, i64 }, ptr %a111 %t115 = getelementptr inbounds %S.gen.FnSig, ptr %a1, i32 0, i32 12 @@ -21695,7 +22334,7 @@ else1920: call void @finch_str_drop(ptr %a122) %t123 = load { ptr, i64, i64 }, ptr %a118 store { ptr, i64, i64 } %t123, ptr %a125 - store { ptr, i64, i64 } { ptr @.str.1087, i64 1, i64 0 }, ptr %a126 + store { ptr, i64, i64 } { ptr @.str.1107, i64 1, i64 0 }, ptr %a126 call void @finch_str_concat(ptr %a124, ptr %a125, ptr %a126) store { ptr, i64, i64 } %t123, ptr %a127 call void @finch_str_drop(ptr %a127) @@ -21704,22 +22343,22 @@ else1920: store { ptr, i64, i64 } %t128, ptr %a93 store { ptr, i64, i64 } %t129, ptr %a130 call void @finch_str_drop(ptr %a130) - br label %endif1921 -endif1921: - br label %endif1918 -else1917: + br label %endif1959 +endif1959: + br label %endif1956 +else1955: %t131 = getelementptr inbounds %S.gen.FnSig, ptr %a1, i32 0, i32 12 %t132 = getelementptr inbounds %S.ast.Type, ptr %t131, i32 0, i32 0 %t133 = load { ptr, i64, i64 }, ptr %t132 store { ptr, i64, i64 } %t133, ptr %a134 - store { ptr, i64, i64 } { ptr @.str.1088, i64 4, i64 0 }, ptr %a135 + store { ptr, i64, i64 } { ptr @.str.1108, i64 4, i64 0 }, ptr %a135 %t136 = call i32 @finch_str_eq(ptr %a134, ptr %a135) %t137 = icmp eq i32 %t136, 0 - br i1 %t137, label %then1922, label %endif1924 -then1922: + br i1 %t137, label %then1960, label %endif1962 +then1960: %t138 = load { ptr, i64, i64 }, ptr %a93 store { ptr, i64, i64 } %t138, ptr %a140 - store { ptr, i64, i64 } { ptr @.str.1089, i64 4, i64 0 }, ptr %a141 + store { ptr, i64, i64 } { ptr @.str.1109, i64 4, i64 0 }, ptr %a141 call void @finch_str_concat(ptr %a139, ptr %a140, ptr %a141) %t142 = load { ptr, i64, i64 }, ptr %a139 %t143 = getelementptr inbounds %S.gen.FnSig, ptr %a1, i32 0, i32 12 @@ -21737,10 +22376,10 @@ then1922: store { ptr, i64, i64 } %t151, ptr %a93 store { ptr, i64, i64 } %t152, ptr %a153 call void @finch_str_drop(ptr %a153) - br label %endif1924 -endif1924: - br label %endif1918 -endif1918: + br label %endif1962 +endif1962: + br label %endif1956 +endif1956: %t154 = load { ptr, i64, i64 }, ptr %a93 call void @finch_str_drop(ptr %a48) call void @finch.drop.arr_str(ptr %a2) @@ -21778,53 +22417,53 @@ entry: store %S.gen.FnSig %p2, ptr %a3 %t4 = load ptr, ptr %a1 %t5 = icmp eq ptr %t4, null - br i1 %t5, label %panic1925, label %ok1926 -panic1925: - call void @finch_panic(ptr @.str.1090, i64 246, ptr @.str.1091) + br i1 %t5, label %panic1963, label %ok1964 +panic1963: + call void @finch_panic(ptr @.str.1110, i64 263, ptr @.str.1111) unreachable -ok1926: - %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 27 +ok1964: + %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 28 %t7 = load i1, ptr %t6 %t8 = xor i1 %t7, true - br i1 %t8, label %then1927, label %endif1929 -then1927: + br i1 %t8, label %then1965, label %endif1967 +then1965: ret void -endif1929: +endif1967: %t9 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 12 %t10 = load i64, ptr %t9 store i64 %t10, ptr %a11 %t12 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 %t13 = load { ptr, i64, i64 }, ptr %t12 store { ptr, i64, i64 } %t13, ptr %a14 - store { ptr, i64, i64 } { ptr @.str.1092, i64 6, i64 0 }, ptr %a15 + store { ptr, i64, i64 } { ptr @.str.1112, i64 6, i64 0 }, ptr %a15 %t16 = call i32 @finch_str_eq(ptr %a14, ptr %a15) %t17 = icmp ne i32 %t16, 0 - br i1 %t17, label %then1930, label %endif1932 -then1930: + br i1 %t17, label %then1968, label %endif1970 +then1968: %t18 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 12 %t19 = load i64, ptr %t18 %t20 = add i64 %t19, 1 store i64 %t20, ptr %a11 - br label %endif1932 -endif1932: + br label %endif1970 +endif1970: %t21 = load ptr, ptr %a1 %t22 = icmp eq ptr %t21, null - br i1 %t22, label %panic1933, label %ok1934 -panic1933: - call void @finch_panic(ptr @.str.1093, i64 253, ptr @.str.1094) + br i1 %t22, label %panic1971, label %ok1972 +panic1971: + call void @finch_panic(ptr @.str.1113, i64 270, ptr @.str.1114) unreachable -ok1934: +ok1972: %t23 = getelementptr inbounds %S.gen.Gen, ptr %t21, i32 0, i32 0 %t24 = getelementptr inbounds %S.gen.FnSig, ptr %a3, i32 0, i32 16 %t25 = load i64, ptr %t24 %t26 = load { ptr, i64, i64 }, ptr %t23 %t27 = extractvalue { ptr, i64, i64 } %t26, 1 %t28 = icmp uge i64 %t25, %t27 - br i1 %t28, label %range1935, label %inrange1936 -range1935: - call void @finch_panic_index(ptr @.str.1095, i64 253, i64 %t25, i64 %t27) + br i1 %t28, label %range1973, label %inrange1974 +range1973: + call void @finch_panic_index(ptr @.str.1115, i64 270, i64 %t25, i64 %t27) unreachable -inrange1936: +inrange1974: %t29 = extractvalue { ptr, i64, i64 } %t26, 0 %t30 = getelementptr inbounds %S.ast.Program, ptr %t29, i64 %t25 %t31 = getelementptr inbounds %S.ast.Program, ptr %t30, i32 0, i32 8 @@ -21833,11 +22472,11 @@ inrange1936: %t34 = load { ptr, i64, i64 }, ptr %t31 %t35 = extractvalue { ptr, i64, i64 } %t34, 1 %t36 = icmp uge i64 %t33, %t35 - br i1 %t36, label %range1937, label %inrange1938 -range1937: - call void @finch_panic_index(ptr @.str.1096, i64 253, i64 %t33, i64 %t35) + br i1 %t36, label %range1975, label %inrange1976 +range1975: + call void @finch_panic_index(ptr @.str.1116, i64 270, i64 %t33, i64 %t35) unreachable -inrange1938: +inrange1976: %t37 = extractvalue { ptr, i64, i64 } %t34, 0 %t38 = getelementptr inbounds %S.ast.Node, ptr %t37, i64 %t33 %t39 = load %S.ast.Node, ptr %t38 @@ -21855,21 +22494,21 @@ inrange1938: %t51 = getelementptr inbounds { ptr, i64, i64 }, ptr %t50, i32 0, i32 1 %t52 = load i64, ptr %t51 %t53 = icmp sgt i64 %t52, 0 - br label %logic.from1939 -logic.from1939: - br i1 %t53, label %logic.rhs1940, label %logic.end1941 -logic.rhs1940: + br label %logic.from1977 +logic.from1977: + br i1 %t53, label %logic.rhs1978, label %logic.end1979 +logic.rhs1978: %t54 = getelementptr inbounds %S.gen.FnSig, ptr %a3, i32 0, i32 2 %t55 = getelementptr inbounds { ptr, i64, i64 }, ptr %t54, i32 0, i32 1 %t56 = load i64, ptr %t55 %t57 = icmp eq i64 %t56, 0 - br label %logic.rend1942 -logic.rend1942: - br label %logic.end1941 -logic.end1941: - %t58 = phi i1 [ false, %logic.from1939 ], [ %t57, %logic.rend1942 ] - br i1 %t58, label %then1943, label %endif1945 -then1943: + br label %logic.rend1980 +logic.rend1980: + br label %logic.end1979 +logic.end1979: + %t58 = phi i1 [ false, %logic.from1977 ], [ %t57, %logic.rend1980 ] + br i1 %t58, label %then1981, label %endif1983 +then1981: %t59 = getelementptr inbounds %S.ast.Node, ptr %a43, i32 0, i32 1 %t60 = load { ptr, i64, i64 }, ptr %t59 store { ptr, i64, i64 } %t60, ptr %a61 @@ -21879,8 +22518,8 @@ then1943: store { ptr, i64, i64 } %t63, ptr %a49 store { ptr, i64, i64 } %t64, ptr %a65 call void @finch_str_drop(ptr %a65) - br label %endif1945 -endif1945: + br label %endif1983 +endif1983: %t66 = load ptr, ptr %a1 %t67 = load %S.ast.Node, ptr %a2 %t68 = load i64, ptr %a11 @@ -21888,36 +22527,36 @@ endif1945: %t70 = load i64, ptr %t69 %t71 = load %S.gen.FnSig, ptr %a3 %t72 = call { ptr, i64, i64 } @finch.gen.sigText(%S.gen.FnSig %t71) - store { ptr, i64, i64 } { ptr @.str.1097, i64 9, i64 0 }, ptr %a74 + store { ptr, i64, i64 } { ptr @.str.1117, i64 9, i64 0 }, ptr %a74 store { ptr, i64, i64 } %t72, ptr %a75 call void @finch_str_concat(ptr %a73, ptr %a74, ptr %a75) store { ptr, i64, i64 } %t72, ptr %a76 call void @finch_str_drop(ptr %a76) %t77 = load { ptr, i64, i64 }, ptr %a73 store { ptr, i64, i64 } %t77, ptr %a79 - store { ptr, i64, i64 } { ptr @.str.1098, i64 4, i64 0 }, ptr %a80 + store { ptr, i64, i64 } { ptr @.str.1118, i64 4, i64 0 }, ptr %a80 call void @finch_str_concat(ptr %a78, ptr %a79, ptr %a80) store { ptr, i64, i64 } %t77, ptr %a81 call void @finch_str_drop(ptr %a81) %t82 = load { ptr, i64, i64 }, ptr %a78 %t83 = load ptr, ptr %a1 %t84 = icmp eq ptr %t83, null - br i1 %t84, label %panic1946, label %ok1947 -panic1946: - call void @finch_panic(ptr @.str.1099, i64 258, ptr @.str.1100) + br i1 %t84, label %panic1984, label %ok1985 +panic1984: + call void @finch_panic(ptr @.str.1119, i64 275, ptr @.str.1120) unreachable -ok1947: +ok1985: %t85 = getelementptr inbounds %S.gen.Gen, ptr %t83, i32 0, i32 1 %t86 = getelementptr inbounds %S.ast.Node, ptr %a43, i32 0, i32 13 %t87 = load i64, ptr %t86 %t88 = load { ptr, i64, i64 }, ptr %t85 %t89 = extractvalue { ptr, i64, i64 } %t88, 1 %t90 = icmp uge i64 %t87, %t89 - br i1 %t90, label %range1948, label %inrange1949 -range1948: - call void @finch_panic_index(ptr @.str.1101, i64 258, i64 %t87, i64 %t89) + br i1 %t90, label %range1986, label %inrange1987 +range1986: + call void @finch_panic_index(ptr @.str.1121, i64 275, i64 %t87, i64 %t89) unreachable -inrange1949: +inrange1987: %t91 = extractvalue { ptr, i64, i64 } %t88, 0 %t92 = getelementptr inbounds { ptr, i64, i64 }, ptr %t91, i64 %t87 %t93 = load { ptr, i64, i64 }, ptr %t92 @@ -22473,29 +23112,29 @@ entry: store ptr %p0, ptr %a1 store { ptr, i64, i64 } %p1, ptr %a2 store i64 0, ptr %a3 - br label %each.cond1950 -each.cond1950: + br label %each.cond1988 +each.cond1988: %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t5 = load i64, ptr %t4 %t6 = load i64, ptr %a3 %t7 = icmp slt i64 %t6, %t5 - br i1 %t7, label %each.body1951, label %each.end1953 -each.body1951: + br i1 %t7, label %each.body1989, label %each.end1991 +each.body1989: %t8 = load ptr, ptr %a2 %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %t8, i64 %t6 %t10 = load { ptr, i64, i64 }, ptr %t9 store { ptr, i64, i64 } %t10, ptr %a11 %t12 = load ptr, ptr %a1 %t13 = icmp eq ptr %t12, null - br i1 %t13, label %panic1954, label %ok1955 -panic1954: - call void @finch_panic(ptr @.str.1102, i64 264, ptr @.str.1103) + br i1 %t13, label %panic1992, label %ok1993 +panic1992: + call void @finch_panic(ptr @.str.1122, i64 281, ptr @.str.1123) unreachable -ok1955: - %t14 = getelementptr inbounds %S.gen.Gen, ptr %t12, i32 0, i32 28 +ok1993: + %t14 = getelementptr inbounds %S.gen.Gen, ptr %t12, i32 0, i32 29 %t15 = getelementptr inbounds { ptr, i64, i64 }, ptr %t14, i32 0, i32 1 %t16 = load { ptr, i64, i64 }, ptr %a11 - store { ptr, i64, i64 } { ptr @.str.1104, i64 3, i64 0 }, ptr %a18 + store { ptr, i64, i64 } { ptr @.str.1124, i64 3, i64 0 }, ptr %a18 store { ptr, i64, i64 } %t16, ptr %a19 call void @finch_str_concat(ptr %a17, ptr %a18, ptr %a19) %t20 = load { ptr, i64, i64 }, ptr %a17 @@ -22506,30 +23145,30 @@ ok1955: %t24 = getelementptr inbounds { ptr, i64, i64 }, ptr %t23, i64 %t21 store { ptr, i64, i64 } %t20, ptr %t24 store i64 %t22, ptr %t15 - br label %each.step1952 -each.step1952: + br label %each.step1990 +each.step1990: %t25 = load i64, ptr %a3 %t26 = add i64 %t25, 1 store i64 %t26, ptr %a3 - br label %each.cond1950 -each.end1953: + br label %each.cond1988 +each.end1991: %t27 = load ptr, ptr %a1 %t28 = icmp eq ptr %t27, null - br i1 %t28, label %panic1956, label %ok1957 -panic1956: - call void @finch_panic(ptr @.str.1105, i64 266, ptr @.str.1106) + br i1 %t28, label %panic1994, label %ok1995 +panic1994: + call void @finch_panic(ptr @.str.1125, i64 283, ptr @.str.1126) unreachable -ok1957: +ok1995: %t29 = getelementptr inbounds %S.gen.Gen, ptr %t27, i32 0, i32 15 store i64 0, ptr %a30 - br label %each.cond1958 -each.cond1958: + br label %each.cond1996 +each.cond1996: %t31 = getelementptr inbounds { ptr, i64, i64 }, ptr %t29, i32 0, i32 1 %t32 = load i64, ptr %t31 %t33 = load i64, ptr %a30 %t34 = icmp slt i64 %t33, %t32 - br i1 %t34, label %each.body1959, label %each.end1961 -each.body1959: + br i1 %t34, label %each.body1997, label %each.end1999 +each.body1997: %t35 = load ptr, ptr %t29 %t36 = getelementptr inbounds %S.gen.FnSig, ptr %t35, i64 %t33 %t37 = load %S.gen.FnSig, ptr %t36 @@ -22539,22 +23178,22 @@ each.body1959: store %S.gen.FnSig %t40, ptr %a41 %t42 = load ptr, ptr %a1 %t43 = icmp eq ptr %t42, null - br i1 %t43, label %panic1962, label %ok1963 -panic1962: - call void @finch_panic(ptr @.str.1107, i64 267, ptr @.str.1108) + br i1 %t43, label %panic2000, label %ok2001 +panic2000: + call void @finch_panic(ptr @.str.1127, i64 284, ptr @.str.1128) unreachable -ok1963: +ok2001: %t44 = getelementptr inbounds %S.gen.Gen, ptr %t42, i32 0, i32 0 %t45 = getelementptr inbounds %S.gen.FnSig, ptr %a41, i32 0, i32 16 %t46 = load i64, ptr %t45 %t47 = load { ptr, i64, i64 }, ptr %t44 %t48 = extractvalue { ptr, i64, i64 } %t47, 1 %t49 = icmp uge i64 %t46, %t48 - br i1 %t49, label %range1964, label %inrange1965 -range1964: - call void @finch_panic_index(ptr @.str.1109, i64 267, i64 %t46, i64 %t48) + br i1 %t49, label %range2002, label %inrange2003 +range2002: + call void @finch_panic_index(ptr @.str.1129, i64 284, i64 %t46, i64 %t48) unreachable -inrange1965: +inrange2003: %t50 = extractvalue { ptr, i64, i64 } %t47, 0 %t51 = getelementptr inbounds %S.ast.Program, ptr %t50, i64 %t46 %t52 = getelementptr inbounds %S.ast.Program, ptr %t51, i32 0, i32 8 @@ -22563,11 +23202,11 @@ inrange1965: %t55 = load { ptr, i64, i64 }, ptr %t52 %t56 = extractvalue { ptr, i64, i64 } %t55, 1 %t57 = icmp uge i64 %t54, %t56 - br i1 %t57, label %range1966, label %inrange1967 -range1966: - call void @finch_panic_index(ptr @.str.1110, i64 267, i64 %t54, i64 %t56) + br i1 %t57, label %range2004, label %inrange2005 +range2004: + call void @finch_panic_index(ptr @.str.1130, i64 284, i64 %t54, i64 %t56) unreachable -inrange1967: +inrange2005: %t58 = extractvalue { ptr, i64, i64 } %t55, 0 %t59 = getelementptr inbounds %S.ast.Node, ptr %t58, i64 %t54 %t60 = load %S.ast.Node, ptr %t59 @@ -22579,40 +23218,40 @@ inrange1967: %t66 = getelementptr inbounds { ptr, i64, i64 }, ptr %t65, i32 0, i32 1 %t67 = load i64, ptr %t66 %t68 = icmp sgt i64 %t67, 0 - br i1 %t68, label %then1968, label %endif1970 -then1968: + br i1 %t68, label %then2006, label %endif2008 +then2006: call void @finch.drop.S_ast_Node(ptr %a64) call void @finch.drop.S_gen_FnSig(ptr %a41) - br label %each.step1960 -endif1970: + br label %each.step1998 +endif2008: store { ptr, i64, i64 } zeroinitializer, ptr %a69 %t70 = getelementptr inbounds %S.gen.FnSig, ptr %a41, i32 0, i32 13 %t71 = getelementptr inbounds { ptr, i64, i64 }, ptr %t70, i32 0, i32 1 %t72 = load i64, ptr %t71 store i64 0, ptr %a73 - br label %for.cond1971 -for.cond1971: + br label %for.cond2009 +for.cond2009: %t74 = load i64, ptr %a73 %t75 = icmp slt i64 %t74, %t72 - br i1 %t75, label %for.body1972, label %for.end1974 -for.body1972: + br i1 %t75, label %for.body2010, label %for.end2012 +for.body2010: %t76 = getelementptr inbounds { ptr, i64, i64 }, ptr %a69, i32 0, i32 1 %t77 = getelementptr inbounds %S.gen.FnSig, ptr %a41, i32 0, i32 13 %t78 = load i64, ptr %a73 %t79 = load { ptr, i64, i64 }, ptr %t77 %t80 = extractvalue { ptr, i64, i64 } %t79, 1 %t81 = icmp uge i64 %t78, %t80 - br i1 %t81, label %range1975, label %inrange1976 -range1975: - call void @finch_panic_index(ptr @.str.1111, i64 273, i64 %t78, i64 %t80) + br i1 %t81, label %range2013, label %inrange2014 +range2013: + call void @finch_panic_index(ptr @.str.1131, i64 290, i64 %t78, i64 %t80) unreachable -inrange1976: +inrange2014: %t82 = extractvalue { ptr, i64, i64 } %t79, 0 %t83 = getelementptr inbounds %S.ast.Type, ptr %t82, i64 %t78 %t84 = load %S.ast.Type, ptr %t83 %t85 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t84) store { ptr, i64, i64 } %t85, ptr %a87 - store { ptr, i64, i64 } { ptr @.str.1112, i64 1, i64 0 }, ptr %a88 + store { ptr, i64, i64 } { ptr @.str.1132, i64 1, i64 0 }, ptr %a88 call void @finch_str_concat(ptr %a86, ptr %a87, ptr %a88) store { ptr, i64, i64 } %t85, ptr %a89 call void @finch_str_drop(ptr %a89) @@ -22622,11 +23261,11 @@ inrange1976: %t93 = load { ptr, i64, i64 }, ptr %t91 %t94 = extractvalue { ptr, i64, i64 } %t93, 1 %t95 = icmp uge i64 %t92, %t94 - br i1 %t95, label %range1977, label %inrange1978 -range1977: - call void @finch_panic_index(ptr @.str.1113, i64 273, i64 %t92, i64 %t94) + br i1 %t95, label %range2015, label %inrange2016 +range2015: + call void @finch_panic_index(ptr @.str.1133, i64 290, i64 %t92, i64 %t94) unreachable -inrange1978: +inrange2016: %t96 = extractvalue { ptr, i64, i64 } %t93, 0 %t97 = getelementptr inbounds { ptr, i64, i64 }, ptr %t96, i64 %t92 %t98 = load { ptr, i64, i64 }, ptr %t97 @@ -22643,30 +23282,30 @@ inrange1978: %t107 = getelementptr inbounds { ptr, i64, i64 }, ptr %t106, i64 %t104 store { ptr, i64, i64 } %t103, ptr %t107 store i64 %t105, ptr %t76 - br label %for.step1973 -for.step1973: + br label %for.step2011 +for.step2011: %t108 = load i64, ptr %a73 %t109 = add i64 %t108, 1 store i64 %t109, ptr %a73 - br label %for.cond1971 -for.end1974: + br label %for.cond2009 +for.end2012: %t110 = load ptr, ptr %a1 %t111 = icmp eq ptr %t110, null - br i1 %t111, label %panic1979, label %ok1980 -panic1979: - call void @finch_panic(ptr @.str.1114, i64 275, ptr @.str.1115) + br i1 %t111, label %panic2017, label %ok2018 +panic2017: + call void @finch_panic(ptr @.str.1134, i64 292, ptr @.str.1135) unreachable -ok1980: - %t112 = getelementptr inbounds %S.gen.Gen, ptr %t110, i32 0, i32 28 +ok2018: + %t112 = getelementptr inbounds %S.gen.Gen, ptr %t110, i32 0, i32 29 %t113 = getelementptr inbounds { ptr, i64, i64 }, ptr %t112, i32 0, i32 1 %t114 = getelementptr inbounds %S.gen.FnSig, ptr %a41, i32 0, i32 0 %t115 = load { ptr, i64, i64 }, ptr %t114 - store { ptr, i64, i64 } { ptr @.str.1116, i64 3, i64 0 }, ptr %a117 + store { ptr, i64, i64 } { ptr @.str.1136, i64 3, i64 0 }, ptr %a117 store { ptr, i64, i64 } %t115, ptr %a118 call void @finch_str_concat(ptr %a116, ptr %a117, ptr %a118) %t119 = load { ptr, i64, i64 }, ptr %a116 store { ptr, i64, i64 } %t119, ptr %a121 - store { ptr, i64, i64 } { ptr @.str.1117, i64 1, i64 0 }, ptr %a122 + store { ptr, i64, i64 } { ptr @.str.1137, i64 1, i64 0 }, ptr %a122 call void @finch_str_concat(ptr %a120, ptr %a121, ptr %a122) store { ptr, i64, i64 } %t119, ptr %a123 call void @finch_str_drop(ptr %a123) @@ -22680,7 +23319,7 @@ ok1980: call void @finch_str_drop(ptr %a130) %t131 = load { ptr, i64, i64 }, ptr %a127 store { ptr, i64, i64 } %t131, ptr %a133 - store { ptr, i64, i64 } { ptr @.str.1118, i64 1, i64 0 }, ptr %a134 + store { ptr, i64, i64 } { ptr @.str.1138, i64 1, i64 0 }, ptr %a134 call void @finch_str_concat(ptr %a132, ptr %a133, ptr %a134) store { ptr, i64, i64 } %t131, ptr %a135 call void @finch_str_drop(ptr %a135) @@ -22694,29 +23333,29 @@ ok1980: call void @finch_str_drop(ptr %a142) %t143 = load { ptr, i64, i64 }, ptr %a139 store { ptr, i64, i64 } %t143, ptr %a145 - store { ptr, i64, i64 } { ptr @.str.1119, i64 1, i64 0 }, ptr %a146 + store { ptr, i64, i64 } { ptr @.str.1139, i64 1, i64 0 }, ptr %a146 call void @finch_str_concat(ptr %a144, ptr %a145, ptr %a146) store { ptr, i64, i64 } %t143, ptr %a147 call void @finch_str_drop(ptr %a147) %t148 = load { ptr, i64, i64 }, ptr %a144 %t149 = load ptr, ptr %a1 %t150 = icmp eq ptr %t149, null - br i1 %t150, label %panic1981, label %ok1982 -panic1981: - call void @finch_panic(ptr @.str.1120, i64 275, ptr @.str.1121) + br i1 %t150, label %panic2019, label %ok2020 +panic2019: + call void @finch_panic(ptr @.str.1140, i64 292, ptr @.str.1141) unreachable -ok1982: +ok2020: %t151 = getelementptr inbounds %S.gen.Gen, ptr %t149, i32 0, i32 1 %t152 = getelementptr inbounds %S.ast.Node, ptr %a64, i32 0, i32 13 %t153 = load i64, ptr %t152 %t154 = load { ptr, i64, i64 }, ptr %t151 %t155 = extractvalue { ptr, i64, i64 } %t154, 1 %t156 = icmp uge i64 %t153, %t155 - br i1 %t156, label %range1983, label %inrange1984 -range1983: - call void @finch_panic_index(ptr @.str.1122, i64 275, i64 %t153, i64 %t155) + br i1 %t156, label %range2021, label %inrange2022 +range2021: + call void @finch_panic_index(ptr @.str.1142, i64 292, i64 %t153, i64 %t155) unreachable -inrange1984: +inrange2022: %t157 = extractvalue { ptr, i64, i64 } %t154, 0 %t158 = getelementptr inbounds { ptr, i64, i64 }, ptr %t157, i64 %t153 %t159 = load { ptr, i64, i64 }, ptr %t158 @@ -22727,7 +23366,7 @@ inrange1984: call void @finch_str_drop(ptr %a163) %t164 = load { ptr, i64, i64 }, ptr %a160 store { ptr, i64, i64 } %t164, ptr %a166 - store { ptr, i64, i64 } { ptr @.str.1123, i64 1, i64 0 }, ptr %a167 + store { ptr, i64, i64 } { ptr @.str.1143, i64 1, i64 0 }, ptr %a167 call void @finch_str_concat(ptr %a165, ptr %a166, ptr %a167) store { ptr, i64, i64 } %t164, ptr %a168 call void @finch_str_drop(ptr %a168) @@ -22745,7 +23384,7 @@ inrange1984: call void @finch_str_drop(ptr %a178) %t179 = load { ptr, i64, i64 }, ptr %a174 store { ptr, i64, i64 } %t179, ptr %a181 - store { ptr, i64, i64 } { ptr @.str.1124, i64 1, i64 0 }, ptr %a182 + store { ptr, i64, i64 } { ptr @.str.1144, i64 1, i64 0 }, ptr %a182 call void @finch_str_concat(ptr %a180, ptr %a181, ptr %a182) store { ptr, i64, i64 } %t179, ptr %a183 call void @finch_str_drop(ptr %a183) @@ -22763,7 +23402,7 @@ inrange1984: call void @finch_str_drop(ptr %a193) %t194 = load { ptr, i64, i64 }, ptr %a189 store { ptr, i64, i64 } %t194, ptr %a196 - store { ptr, i64, i64 } { ptr @.str.1125, i64 1, i64 0 }, ptr %a197 + store { ptr, i64, i64 } { ptr @.str.1145, i64 1, i64 0 }, ptr %a197 call void @finch_str_concat(ptr %a195, ptr %a196, ptr %a197) store { ptr, i64, i64 } %t194, ptr %a198 call void @finch_str_drop(ptr %a198) @@ -22781,7 +23420,7 @@ inrange1984: call void @finch_str_drop(ptr %a208) %t209 = load { ptr, i64, i64 }, ptr %a204 store { ptr, i64, i64 } %t209, ptr %a211 - store { ptr, i64, i64 } { ptr @.str.1126, i64 1, i64 0 }, ptr %a212 + store { ptr, i64, i64 } { ptr @.str.1146, i64 1, i64 0 }, ptr %a212 call void @finch_str_concat(ptr %a210, ptr %a211, ptr %a212) store { ptr, i64, i64 } %t209, ptr %a213 call void @finch_str_drop(ptr %a213) @@ -22800,13 +23439,13 @@ inrange1984: call void @finch_str_drop(ptr %a223) %t224 = load { ptr, i64, i64 }, ptr %a219 store { ptr, i64, i64 } %t224, ptr %a226 - store { ptr, i64, i64 } { ptr @.str.1127, i64 1, i64 0 }, ptr %a227 + store { ptr, i64, i64 } { ptr @.str.1147, i64 1, i64 0 }, ptr %a227 call void @finch_str_concat(ptr %a225, ptr %a226, ptr %a227) store { ptr, i64, i64 } %t224, ptr %a228 call void @finch_str_drop(ptr %a228) %t229 = load { ptr, i64, i64 }, ptr %a225 %t230 = getelementptr inbounds { ptr, i64, i64 }, ptr %a69, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.1128, i64 1, i64 0 }, ptr %a231 + store { ptr, i64, i64 } { ptr @.str.1148, i64 1, i64 0 }, ptr %a231 call void @finch_str_join(ptr %a232, ptr %a69, ptr %a231) %t233 = load { ptr, i64, i64 }, ptr %a232 store { ptr, i64, i64 } %t229, ptr %a235 @@ -22827,30 +23466,30 @@ inrange1984: call void @finch.drop.arr_str(ptr %a69) call void @finch.drop.S_ast_Node(ptr %a64) call void @finch.drop.S_gen_FnSig(ptr %a41) - br label %each.step1960 -each.step1960: + br label %each.step1998 +each.step1998: %t244 = load i64, ptr %a30 %t245 = add i64 %t244, 1 store i64 %t245, ptr %a30 - br label %each.cond1958 -each.end1961: + br label %each.cond1996 +each.end1999: %t246 = load ptr, ptr %a1 %t247 = icmp eq ptr %t246, null - br i1 %t247, label %panic1985, label %ok1986 -panic1985: - call void @finch_panic(ptr @.str.1129, i64 277, ptr @.str.1130) + br i1 %t247, label %panic2023, label %ok2024 +panic2023: + call void @finch_panic(ptr @.str.1149, i64 294, ptr @.str.1150) unreachable -ok1986: +ok2024: %t248 = getelementptr inbounds %S.gen.Gen, ptr %t246, i32 0, i32 17 store i64 0, ptr %a249 - br label %each.cond1987 -each.cond1987: + br label %each.cond2025 +each.cond2025: %t250 = getelementptr inbounds { ptr, i64, i64 }, ptr %t248, i32 0, i32 1 %t251 = load i64, ptr %t250 %t252 = load i64, ptr %a249 %t253 = icmp slt i64 %t252, %t251 - br i1 %t253, label %each.body1988, label %each.end1990 -each.body1988: + br i1 %t253, label %each.body2026, label %each.end2028 +each.body2026: %t254 = load ptr, ptr %t248 %t255 = getelementptr inbounds %S.gen.Template, ptr %t254, i64 %t252 %t256 = load %S.gen.Template, ptr %t255 @@ -22860,29 +23499,29 @@ each.body1988: store %S.gen.Template %t259, ptr %a260 %t261 = getelementptr inbounds %S.gen.Template, ptr %a260, i32 0, i32 6 %t262 = load i1, ptr %t261 - br i1 %t262, label %then1991, label %endif1993 -then1991: + br i1 %t262, label %then2029, label %endif2031 +then2029: call void @finch.drop.S_gen_Template(ptr %a260) - br label %each.step1989 -endif1993: + br label %each.step2027 +endif2031: %t263 = load ptr, ptr %a1 %t264 = icmp eq ptr %t263, null - br i1 %t264, label %panic1994, label %ok1995 -panic1994: - call void @finch_panic(ptr @.str.1131, i64 281, ptr @.str.1132) + br i1 %t264, label %panic2032, label %ok2033 +panic2032: + call void @finch_panic(ptr @.str.1151, i64 298, ptr @.str.1152) unreachable -ok1995: +ok2033: %t265 = getelementptr inbounds %S.gen.Gen, ptr %t263, i32 0, i32 0 %t266 = getelementptr inbounds %S.gen.Template, ptr %a260, i32 0, i32 4 %t267 = load i64, ptr %t266 %t268 = load { ptr, i64, i64 }, ptr %t265 %t269 = extractvalue { ptr, i64, i64 } %t268, 1 %t270 = icmp uge i64 %t267, %t269 - br i1 %t270, label %range1996, label %inrange1997 -range1996: - call void @finch_panic_index(ptr @.str.1133, i64 281, i64 %t267, i64 %t269) + br i1 %t270, label %range2034, label %inrange2035 +range2034: + call void @finch_panic_index(ptr @.str.1153, i64 298, i64 %t267, i64 %t269) unreachable -inrange1997: +inrange2035: %t271 = extractvalue { ptr, i64, i64 } %t268, 0 %t272 = getelementptr inbounds %S.ast.Program, ptr %t271, i64 %t267 %t273 = getelementptr inbounds %S.ast.Program, ptr %t272, i32 0, i32 8 @@ -22891,11 +23530,11 @@ inrange1997: %t276 = load { ptr, i64, i64 }, ptr %t273 %t277 = extractvalue { ptr, i64, i64 } %t276, 1 %t278 = icmp uge i64 %t275, %t277 - br i1 %t278, label %range1998, label %inrange1999 -range1998: - call void @finch_panic_index(ptr @.str.1134, i64 281, i64 %t275, i64 %t277) + br i1 %t278, label %range2036, label %inrange2037 +range2036: + call void @finch_panic_index(ptr @.str.1154, i64 298, i64 %t275, i64 %t277) unreachable -inrange1999: +inrange2037: %t279 = extractvalue { ptr, i64, i64 } %t276, 0 %t280 = getelementptr inbounds %S.ast.Node, ptr %t279, i64 %t275 %t281 = load %S.ast.Node, ptr %t280 @@ -22905,21 +23544,21 @@ inrange1999: store %S.ast.Node %t284, ptr %a285 %t286 = load ptr, ptr %a1 %t287 = icmp eq ptr %t286, null - br i1 %t287, label %panic2000, label %ok2001 -panic2000: - call void @finch_panic(ptr @.str.1135, i64 282, ptr @.str.1136) + br i1 %t287, label %panic2038, label %ok2039 +panic2038: + call void @finch_panic(ptr @.str.1155, i64 299, ptr @.str.1156) unreachable -ok2001: - %t288 = getelementptr inbounds %S.gen.Gen, ptr %t286, i32 0, i32 28 +ok2039: + %t288 = getelementptr inbounds %S.gen.Gen, ptr %t286, i32 0, i32 29 %t289 = getelementptr inbounds { ptr, i64, i64 }, ptr %t288, i32 0, i32 1 %t290 = getelementptr inbounds %S.gen.Template, ptr %a260, i32 0, i32 0 %t291 = load { ptr, i64, i64 }, ptr %t290 - store { ptr, i64, i64 } { ptr @.str.1137, i64 3, i64 0 }, ptr %a293 + store { ptr, i64, i64 } { ptr @.str.1157, i64 3, i64 0 }, ptr %a293 store { ptr, i64, i64 } %t291, ptr %a294 call void @finch_str_concat(ptr %a292, ptr %a293, ptr %a294) %t295 = load { ptr, i64, i64 }, ptr %a292 store { ptr, i64, i64 } %t295, ptr %a297 - store { ptr, i64, i64 } { ptr @.str.1138, i64 1, i64 0 }, ptr %a298 + store { ptr, i64, i64 } { ptr @.str.1158, i64 1, i64 0 }, ptr %a298 call void @finch_str_concat(ptr %a296, ptr %a297, ptr %a298) store { ptr, i64, i64 } %t295, ptr %a299 call void @finch_str_drop(ptr %a299) @@ -22933,7 +23572,7 @@ ok2001: call void @finch_str_drop(ptr %a306) %t307 = load { ptr, i64, i64 }, ptr %a303 store { ptr, i64, i64 } %t307, ptr %a309 - store { ptr, i64, i64 } { ptr @.str.1139, i64 1, i64 0 }, ptr %a310 + store { ptr, i64, i64 } { ptr @.str.1159, i64 1, i64 0 }, ptr %a310 call void @finch_str_concat(ptr %a308, ptr %a309, ptr %a310) store { ptr, i64, i64 } %t307, ptr %a311 call void @finch_str_drop(ptr %a311) @@ -22947,29 +23586,29 @@ ok2001: call void @finch_str_drop(ptr %a318) %t319 = load { ptr, i64, i64 }, ptr %a315 store { ptr, i64, i64 } %t319, ptr %a321 - store { ptr, i64, i64 } { ptr @.str.1140, i64 1, i64 0 }, ptr %a322 + store { ptr, i64, i64 } { ptr @.str.1160, i64 1, i64 0 }, ptr %a322 call void @finch_str_concat(ptr %a320, ptr %a321, ptr %a322) store { ptr, i64, i64 } %t319, ptr %a323 call void @finch_str_drop(ptr %a323) %t324 = load { ptr, i64, i64 }, ptr %a320 %t325 = load ptr, ptr %a1 %t326 = icmp eq ptr %t325, null - br i1 %t326, label %panic2002, label %ok2003 -panic2002: - call void @finch_panic(ptr @.str.1141, i64 282, ptr @.str.1142) + br i1 %t326, label %panic2040, label %ok2041 +panic2040: + call void @finch_panic(ptr @.str.1161, i64 299, ptr @.str.1162) unreachable -ok2003: +ok2041: %t327 = getelementptr inbounds %S.gen.Gen, ptr %t325, i32 0, i32 1 %t328 = getelementptr inbounds %S.ast.Node, ptr %a285, i32 0, i32 13 %t329 = load i64, ptr %t328 %t330 = load { ptr, i64, i64 }, ptr %t327 %t331 = extractvalue { ptr, i64, i64 } %t330, 1 %t332 = icmp uge i64 %t329, %t331 - br i1 %t332, label %range2004, label %inrange2005 -range2004: - call void @finch_panic_index(ptr @.str.1143, i64 282, i64 %t329, i64 %t331) + br i1 %t332, label %range2042, label %inrange2043 +range2042: + call void @finch_panic_index(ptr @.str.1163, i64 299, i64 %t329, i64 %t331) unreachable -inrange2005: +inrange2043: %t333 = extractvalue { ptr, i64, i64 } %t330, 0 %t334 = getelementptr inbounds { ptr, i64, i64 }, ptr %t333, i64 %t329 %t335 = load { ptr, i64, i64 }, ptr %t334 @@ -22980,7 +23619,7 @@ inrange2005: call void @finch_str_drop(ptr %a339) %t340 = load { ptr, i64, i64 }, ptr %a336 store { ptr, i64, i64 } %t340, ptr %a342 - store { ptr, i64, i64 } { ptr @.str.1144, i64 1, i64 0 }, ptr %a343 + store { ptr, i64, i64 } { ptr @.str.1164, i64 1, i64 0 }, ptr %a343 call void @finch_str_concat(ptr %a341, ptr %a342, ptr %a343) store { ptr, i64, i64 } %t340, ptr %a344 call void @finch_str_drop(ptr %a344) @@ -22998,7 +23637,7 @@ inrange2005: call void @finch_str_drop(ptr %a354) %t355 = load { ptr, i64, i64 }, ptr %a350 store { ptr, i64, i64 } %t355, ptr %a357 - store { ptr, i64, i64 } { ptr @.str.1145, i64 1, i64 0 }, ptr %a358 + store { ptr, i64, i64 } { ptr @.str.1165, i64 1, i64 0 }, ptr %a358 call void @finch_str_concat(ptr %a356, ptr %a357, ptr %a358) store { ptr, i64, i64 } %t355, ptr %a359 call void @finch_str_drop(ptr %a359) @@ -23016,7 +23655,7 @@ inrange2005: call void @finch_str_drop(ptr %a369) %t370 = load { ptr, i64, i64 }, ptr %a365 store { ptr, i64, i64 } %t370, ptr %a372 - store { ptr, i64, i64 } { ptr @.str.1146, i64 1, i64 0 }, ptr %a373 + store { ptr, i64, i64 } { ptr @.str.1166, i64 1, i64 0 }, ptr %a373 call void @finch_str_concat(ptr %a371, ptr %a372, ptr %a373) store { ptr, i64, i64 } %t370, ptr %a374 call void @finch_str_drop(ptr %a374) @@ -23034,26 +23673,26 @@ inrange2005: call void @finch_str_drop(ptr %a384) %t385 = load { ptr, i64, i64 }, ptr %a380 store { ptr, i64, i64 } %t385, ptr %a387 - store { ptr, i64, i64 } { ptr @.str.1147, i64 1, i64 0 }, ptr %a388 + store { ptr, i64, i64 } { ptr @.str.1167, i64 1, i64 0 }, ptr %a388 call void @finch_str_concat(ptr %a386, ptr %a387, ptr %a388) store { ptr, i64, i64 } %t385, ptr %a389 call void @finch_str_drop(ptr %a389) %t390 = load { ptr, i64, i64 }, ptr %a386 %t391 = getelementptr inbounds %S.gen.Template, ptr %a260, i32 0, i32 1 %t392 = load { ptr, i64, i64 }, ptr %t391 - store { ptr, i64, i64 } { ptr @.str.1148, i64 3, i64 0 }, ptr %a394 + store { ptr, i64, i64 } { ptr @.str.1168, i64 3, i64 0 }, ptr %a394 store { ptr, i64, i64 } %t392, ptr %a395 call void @finch_str_concat(ptr %a393, ptr %a394, ptr %a395) %t396 = load { ptr, i64, i64 }, ptr %a393 store { ptr, i64, i64 } %t396, ptr %a398 - store { ptr, i64, i64 } { ptr @.str.1149, i64 1, i64 0 }, ptr %a399 + store { ptr, i64, i64 } { ptr @.str.1169, i64 1, i64 0 }, ptr %a399 call void @finch_str_concat(ptr %a397, ptr %a398, ptr %a399) store { ptr, i64, i64 } %t396, ptr %a400 call void @finch_str_drop(ptr %a400) %t401 = load { ptr, i64, i64 }, ptr %a397 %t402 = getelementptr inbounds %S.gen.Template, ptr %a260, i32 0, i32 3 %t403 = getelementptr inbounds { ptr, i64, i64 }, ptr %t402, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.1150, i64 2, i64 0 }, ptr %a404 + store { ptr, i64, i64 } { ptr @.str.1170, i64 2, i64 0 }, ptr %a404 call void @finch_str_join(ptr %a405, ptr %t402, ptr %a404) %t406 = load { ptr, i64, i64 }, ptr %a405 store { ptr, i64, i64 } %t401, ptr %a408 @@ -23065,7 +23704,7 @@ inrange2005: call void @finch_str_drop(ptr %a411) %t412 = load { ptr, i64, i64 }, ptr %a407 store { ptr, i64, i64 } %t412, ptr %a414 - store { ptr, i64, i64 } { ptr @.str.1151, i64 6, i64 0 }, ptr %a415 + store { ptr, i64, i64 } { ptr @.str.1171, i64 6, i64 0 }, ptr %a415 call void @finch_str_concat(ptr %a413, ptr %a414, ptr %a415) store { ptr, i64, i64 } %t412, ptr %a416 call void @finch_str_drop(ptr %a416) @@ -23082,7 +23721,7 @@ inrange2005: call void @finch_str_drop(ptr %a424) %t425 = load { ptr, i64, i64 }, ptr %a420 store { ptr, i64, i64 } %t425, ptr %a427 - store { ptr, i64, i64 } { ptr @.str.1152, i64 1, i64 0 }, ptr %a428 + store { ptr, i64, i64 } { ptr @.str.1172, i64 1, i64 0 }, ptr %a428 call void @finch_str_concat(ptr %a426, ptr %a427, ptr %a428) store { ptr, i64, i64 } %t425, ptr %a429 call void @finch_str_drop(ptr %a429) @@ -23096,30 +23735,30 @@ inrange2005: store i64 %t432, ptr %t289 call void @finch.drop.S_ast_Node(ptr %a285) call void @finch.drop.S_gen_Template(ptr %a260) - br label %each.step1989 -each.step1989: + br label %each.step2027 +each.step2027: %t435 = load i64, ptr %a249 %t436 = add i64 %t435, 1 store i64 %t436, ptr %a249 - br label %each.cond1987 -each.end1990: + br label %each.cond2025 +each.end2028: %t437 = load ptr, ptr %a1 %t438 = icmp eq ptr %t437, null - br i1 %t438, label %panic2006, label %ok2007 -panic2006: - call void @finch_panic(ptr @.str.1153, i64 284, ptr @.str.1154) + br i1 %t438, label %panic2044, label %ok2045 +panic2044: + call void @finch_panic(ptr @.str.1173, i64 301, ptr @.str.1174) unreachable -ok2007: +ok2045: %t439 = getelementptr inbounds %S.gen.Gen, ptr %t437, i32 0, i32 16 store i64 0, ptr %a440 - br label %each.cond2008 -each.cond2008: + br label %each.cond2046 +each.cond2046: %t441 = getelementptr inbounds { ptr, i64, i64 }, ptr %t439, i32 0, i32 1 %t442 = load i64, ptr %t441 %t443 = load i64, ptr %a440 %t444 = icmp slt i64 %t443, %t442 - br i1 %t444, label %each.body2009, label %each.end2011 -each.body2009: + br i1 %t444, label %each.body2047, label %each.end2049 +each.body2047: %t445 = load ptr, ptr %t439 %t446 = getelementptr inbounds %S.gen.StructDef, ptr %t445, i64 %t443 %t447 = load %S.gen.StructDef, ptr %t446 @@ -23129,42 +23768,42 @@ each.body2009: store %S.gen.StructDef %t450, ptr %a451 %t452 = getelementptr inbounds %S.gen.StructDef, ptr %a451, i32 0, i32 2 %t453 = load i1, ptr %t452 - br label %logic.from2012 -logic.from2012: - br i1 %t453, label %logic.end2014, label %logic.rhs2013 -logic.rhs2013: + br label %logic.from2050 +logic.from2050: + br i1 %t453, label %logic.end2052, label %logic.rhs2051 +logic.rhs2051: %t454 = getelementptr inbounds %S.gen.StructDef, ptr %a451, i32 0, i32 5 %t455 = getelementptr inbounds { ptr, i64, i64 }, ptr %t454, i32 0, i32 1 %t456 = load i64, ptr %t455 %t457 = icmp sgt i64 %t456, 0 - br label %logic.rend2015 -logic.rend2015: - br label %logic.end2014 -logic.end2014: - %t458 = phi i1 [ true, %logic.from2012 ], [ %t457, %logic.rend2015 ] - br i1 %t458, label %then2016, label %endif2018 -then2016: + br label %logic.rend2053 +logic.rend2053: + br label %logic.end2052 +logic.end2052: + %t458 = phi i1 [ true, %logic.from2050 ], [ %t457, %logic.rend2053 ] + br i1 %t458, label %then2054, label %endif2056 +then2054: call void @finch.drop.S_gen_StructDef(ptr %a451) - br label %each.step2010 -endif2018: + br label %each.step2048 +endif2056: %t459 = load ptr, ptr %a1 %t460 = icmp eq ptr %t459, null - br i1 %t460, label %panic2019, label %ok2020 -panic2019: - call void @finch_panic(ptr @.str.1155, i64 288, ptr @.str.1156) + br i1 %t460, label %panic2057, label %ok2058 +panic2057: + call void @finch_panic(ptr @.str.1175, i64 305, ptr @.str.1176) unreachable -ok2020: +ok2058: %t461 = getelementptr inbounds %S.gen.Gen, ptr %t459, i32 0, i32 0 %t462 = getelementptr inbounds %S.gen.StructDef, ptr %a451, i32 0, i32 13 %t463 = load i64, ptr %t462 %t464 = load { ptr, i64, i64 }, ptr %t461 %t465 = extractvalue { ptr, i64, i64 } %t464, 1 %t466 = icmp uge i64 %t463, %t465 - br i1 %t466, label %range2021, label %inrange2022 -range2021: - call void @finch_panic_index(ptr @.str.1157, i64 288, i64 %t463, i64 %t465) + br i1 %t466, label %range2059, label %inrange2060 +range2059: + call void @finch_panic_index(ptr @.str.1177, i64 305, i64 %t463, i64 %t465) unreachable -inrange2022: +inrange2060: %t467 = extractvalue { ptr, i64, i64 } %t464, 0 %t468 = getelementptr inbounds %S.ast.Program, ptr %t467, i64 %t463 %t469 = getelementptr inbounds %S.ast.Program, ptr %t468, i32 0, i32 6 @@ -23173,11 +23812,11 @@ inrange2022: %t472 = load { ptr, i64, i64 }, ptr %t469 %t473 = extractvalue { ptr, i64, i64 } %t472, 1 %t474 = icmp uge i64 %t471, %t473 - br i1 %t474, label %range2023, label %inrange2024 -range2023: - call void @finch_panic_index(ptr @.str.1158, i64 288, i64 %t471, i64 %t473) + br i1 %t474, label %range2061, label %inrange2062 +range2061: + call void @finch_panic_index(ptr @.str.1178, i64 305, i64 %t471, i64 %t473) unreachable -inrange2024: +inrange2062: %t475 = extractvalue { ptr, i64, i64 } %t472, 0 %t476 = getelementptr inbounds %S.ast.Node, ptr %t475, i64 %t471 %t477 = load %S.ast.Node, ptr %t476 @@ -23187,21 +23826,21 @@ inrange2024: store %S.ast.Node %t480, ptr %a481 %t482 = load ptr, ptr %a1 %t483 = icmp eq ptr %t482, null - br i1 %t483, label %panic2025, label %ok2026 -panic2025: - call void @finch_panic(ptr @.str.1159, i64 289, ptr @.str.1160) + br i1 %t483, label %panic2063, label %ok2064 +panic2063: + call void @finch_panic(ptr @.str.1179, i64 306, ptr @.str.1180) unreachable -ok2026: - %t484 = getelementptr inbounds %S.gen.Gen, ptr %t482, i32 0, i32 28 +ok2064: + %t484 = getelementptr inbounds %S.gen.Gen, ptr %t482, i32 0, i32 29 %t485 = getelementptr inbounds { ptr, i64, i64 }, ptr %t484, i32 0, i32 1 %t486 = getelementptr inbounds %S.gen.StructDef, ptr %a451, i32 0, i32 0 %t487 = load { ptr, i64, i64 }, ptr %t486 - store { ptr, i64, i64 } { ptr @.str.1161, i64 3, i64 0 }, ptr %a489 + store { ptr, i64, i64 } { ptr @.str.1181, i64 3, i64 0 }, ptr %a489 store { ptr, i64, i64 } %t487, ptr %a490 call void @finch_str_concat(ptr %a488, ptr %a489, ptr %a490) %t491 = load { ptr, i64, i64 }, ptr %a488 store { ptr, i64, i64 } %t491, ptr %a493 - store { ptr, i64, i64 } { ptr @.str.1162, i64 1, i64 0 }, ptr %a494 + store { ptr, i64, i64 } { ptr @.str.1182, i64 1, i64 0 }, ptr %a494 call void @finch_str_concat(ptr %a492, ptr %a493, ptr %a494) store { ptr, i64, i64 } %t491, ptr %a495 call void @finch_str_drop(ptr %a495) @@ -23215,29 +23854,29 @@ ok2026: call void @finch_str_drop(ptr %a502) %t503 = load { ptr, i64, i64 }, ptr %a499 store { ptr, i64, i64 } %t503, ptr %a505 - store { ptr, i64, i64 } { ptr @.str.1163, i64 1, i64 0 }, ptr %a506 + store { ptr, i64, i64 } { ptr @.str.1183, i64 1, i64 0 }, ptr %a506 call void @finch_str_concat(ptr %a504, ptr %a505, ptr %a506) store { ptr, i64, i64 } %t503, ptr %a507 call void @finch_str_drop(ptr %a507) %t508 = load { ptr, i64, i64 }, ptr %a504 %t509 = load ptr, ptr %a1 %t510 = icmp eq ptr %t509, null - br i1 %t510, label %panic2027, label %ok2028 -panic2027: - call void @finch_panic(ptr @.str.1164, i64 289, ptr @.str.1165) + br i1 %t510, label %panic2065, label %ok2066 +panic2065: + call void @finch_panic(ptr @.str.1184, i64 306, ptr @.str.1185) unreachable -ok2028: +ok2066: %t511 = getelementptr inbounds %S.gen.Gen, ptr %t509, i32 0, i32 1 %t512 = getelementptr inbounds %S.ast.Node, ptr %a481, i32 0, i32 13 %t513 = load i64, ptr %t512 %t514 = load { ptr, i64, i64 }, ptr %t511 %t515 = extractvalue { ptr, i64, i64 } %t514, 1 %t516 = icmp uge i64 %t513, %t515 - br i1 %t516, label %range2029, label %inrange2030 -range2029: - call void @finch_panic_index(ptr @.str.1166, i64 289, i64 %t513, i64 %t515) + br i1 %t516, label %range2067, label %inrange2068 +range2067: + call void @finch_panic_index(ptr @.str.1186, i64 306, i64 %t513, i64 %t515) unreachable -inrange2030: +inrange2068: %t517 = extractvalue { ptr, i64, i64 } %t514, 0 %t518 = getelementptr inbounds { ptr, i64, i64 }, ptr %t517, i64 %t513 %t519 = load { ptr, i64, i64 }, ptr %t518 @@ -23248,7 +23887,7 @@ inrange2030: call void @finch_str_drop(ptr %a523) %t524 = load { ptr, i64, i64 }, ptr %a520 store { ptr, i64, i64 } %t524, ptr %a526 - store { ptr, i64, i64 } { ptr @.str.1167, i64 1, i64 0 }, ptr %a527 + store { ptr, i64, i64 } { ptr @.str.1187, i64 1, i64 0 }, ptr %a527 call void @finch_str_concat(ptr %a525, ptr %a526, ptr %a527) store { ptr, i64, i64 } %t524, ptr %a528 call void @finch_str_drop(ptr %a528) @@ -23266,7 +23905,7 @@ inrange2030: call void @finch_str_drop(ptr %a538) %t539 = load { ptr, i64, i64 }, ptr %a534 store { ptr, i64, i64 } %t539, ptr %a541 - store { ptr, i64, i64 } { ptr @.str.1168, i64 1, i64 0 }, ptr %a542 + store { ptr, i64, i64 } { ptr @.str.1188, i64 1, i64 0 }, ptr %a542 call void @finch_str_concat(ptr %a540, ptr %a541, ptr %a542) store { ptr, i64, i64 } %t539, ptr %a543 call void @finch_str_drop(ptr %a543) @@ -23294,29 +23933,29 @@ inrange2030: %t560 = getelementptr inbounds { ptr, i64, i64 }, ptr %t559, i32 0, i32 1 %t561 = load i64, ptr %t560 store i64 0, ptr %a562 - br label %for.cond2031 -for.cond2031: + br label %for.cond2069 +for.cond2069: %t563 = load i64, ptr %a562 %t564 = icmp slt i64 %t563, %t561 - br i1 %t564, label %for.body2032, label %for.end2034 -for.body2032: + br i1 %t564, label %for.body2070, label %for.end2072 +for.body2070: %t565 = load ptr, ptr %a1 %t566 = icmp eq ptr %t565, null - br i1 %t566, label %panic2035, label %ok2036 -panic2035: - call void @finch_panic(ptr @.str.1169, i64 291, ptr @.str.1170) + br i1 %t566, label %panic2073, label %ok2074 +panic2073: + call void @finch_panic(ptr @.str.1189, i64 308, ptr @.str.1190) unreachable -ok2036: - %t567 = getelementptr inbounds %S.gen.Gen, ptr %t565, i32 0, i32 28 +ok2074: + %t567 = getelementptr inbounds %S.gen.Gen, ptr %t565, i32 0, i32 29 %t568 = getelementptr inbounds { ptr, i64, i64 }, ptr %t567, i32 0, i32 1 %t569 = getelementptr inbounds %S.gen.StructDef, ptr %a451, i32 0, i32 0 %t570 = load { ptr, i64, i64 }, ptr %t569 - store { ptr, i64, i64 } { ptr @.str.1171, i64 4, i64 0 }, ptr %a572 + store { ptr, i64, i64 } { ptr @.str.1191, i64 4, i64 0 }, ptr %a572 store { ptr, i64, i64 } %t570, ptr %a573 call void @finch_str_concat(ptr %a571, ptr %a572, ptr %a573) %t574 = load { ptr, i64, i64 }, ptr %a571 store { ptr, i64, i64 } %t574, ptr %a576 - store { ptr, i64, i64 } { ptr @.str.1172, i64 1, i64 0 }, ptr %a577 + store { ptr, i64, i64 } { ptr @.str.1192, i64 1, i64 0 }, ptr %a577 call void @finch_str_concat(ptr %a575, ptr %a576, ptr %a577) store { ptr, i64, i64 } %t574, ptr %a578 call void @finch_str_drop(ptr %a578) @@ -23330,7 +23969,7 @@ ok2036: call void @finch_str_drop(ptr %a585) %t586 = load { ptr, i64, i64 }, ptr %a582 store { ptr, i64, i64 } %t586, ptr %a588 - store { ptr, i64, i64 } { ptr @.str.1173, i64 1, i64 0 }, ptr %a589 + store { ptr, i64, i64 } { ptr @.str.1193, i64 1, i64 0 }, ptr %a589 call void @finch_str_concat(ptr %a587, ptr %a588, ptr %a589) store { ptr, i64, i64 } %t586, ptr %a590 call void @finch_str_drop(ptr %a590) @@ -23340,11 +23979,11 @@ ok2036: %t594 = load { ptr, i64, i64 }, ptr %t592 %t595 = extractvalue { ptr, i64, i64 } %t594, 1 %t596 = icmp uge i64 %t593, %t595 - br i1 %t596, label %range2037, label %inrange2038 -range2037: - call void @finch_panic_index(ptr @.str.1174, i64 291, i64 %t593, i64 %t595) + br i1 %t596, label %range2075, label %inrange2076 +range2075: + call void @finch_panic_index(ptr @.str.1194, i64 308, i64 %t593, i64 %t595) unreachable -inrange2038: +inrange2076: %t597 = extractvalue { ptr, i64, i64 } %t594, 0 %t598 = getelementptr inbounds { ptr, i64, i64 }, ptr %t597, i64 %t593 %t599 = load { ptr, i64, i64 }, ptr %t598 @@ -23355,7 +23994,7 @@ inrange2038: call void @finch_str_drop(ptr %a603) %t604 = load { ptr, i64, i64 }, ptr %a600 store { ptr, i64, i64 } %t604, ptr %a606 - store { ptr, i64, i64 } { ptr @.str.1175, i64 1, i64 0 }, ptr %a607 + store { ptr, i64, i64 } { ptr @.str.1195, i64 1, i64 0 }, ptr %a607 call void @finch_str_concat(ptr %a605, ptr %a606, ptr %a607) store { ptr, i64, i64 } %t604, ptr %a608 call void @finch_str_drop(ptr %a608) @@ -23365,11 +24004,11 @@ inrange2038: %t612 = load { ptr, i64, i64 }, ptr %t610 %t613 = extractvalue { ptr, i64, i64 } %t612, 1 %t614 = icmp uge i64 %t611, %t613 - br i1 %t614, label %range2039, label %inrange2040 -range2039: - call void @finch_panic_index(ptr @.str.1176, i64 291, i64 %t611, i64 %t613) + br i1 %t614, label %range2077, label %inrange2078 +range2077: + call void @finch_panic_index(ptr @.str.1196, i64 308, i64 %t611, i64 %t613) unreachable -inrange2040: +inrange2078: %t615 = extractvalue { ptr, i64, i64 } %t612, 0 %t616 = getelementptr inbounds %S.ast.Type, ptr %t615, i64 %t611 %t617 = load %S.ast.Type, ptr %t616 @@ -23389,68 +24028,68 @@ inrange2040: %t628 = getelementptr inbounds { ptr, i64, i64 }, ptr %t627, i64 %t625 store { ptr, i64, i64 } %t624, ptr %t628 store i64 %t626, ptr %t568 - br label %for.step2033 -for.step2033: + br label %for.step2071 +for.step2071: %t629 = load i64, ptr %a562 %t630 = add i64 %t629, 1 store i64 %t630, ptr %a562 - br label %for.cond2031 -for.end2034: + br label %for.cond2069 +for.end2072: call void @finch.drop.S_ast_Node(ptr %a481) call void @finch.drop.S_gen_StructDef(ptr %a451) - br label %each.step2010 -each.step2010: + br label %each.step2048 +each.step2048: %t631 = load i64, ptr %a440 %t632 = add i64 %t631, 1 store i64 %t632, ptr %a440 - br label %each.cond2008 -each.end2011: + br label %each.cond2046 +each.end2049: %t633 = load ptr, ptr %a1 %t634 = icmp eq ptr %t633, null - br i1 %t634, label %panic2041, label %ok2042 -panic2041: - call void @finch_panic(ptr @.str.1177, i64 294, ptr @.str.1178) + br i1 %t634, label %panic2079, label %ok2080 +panic2079: + call void @finch_panic(ptr @.str.1197, i64 311, ptr @.str.1198) unreachable -ok2042: +ok2080: %t635 = getelementptr inbounds %S.gen.Gen, ptr %t633, i32 0, i32 0 %t636 = getelementptr inbounds { ptr, i64, i64 }, ptr %t635, i32 0, i32 1 %t637 = load i64, ptr %t636 store i64 0, ptr %a638 - br label %for.cond2043 -for.cond2043: + br label %for.cond2081 +for.cond2081: %t639 = load i64, ptr %a638 %t640 = icmp slt i64 %t639, %t637 - br i1 %t640, label %for.body2044, label %for.end2046 -for.body2044: + br i1 %t640, label %for.body2082, label %for.end2084 +for.body2082: %t641 = load ptr, ptr %a1 %t642 = icmp eq ptr %t641, null - br i1 %t642, label %panic2047, label %ok2048 -panic2047: - call void @finch_panic(ptr @.str.1179, i64 295, ptr @.str.1180) + br i1 %t642, label %panic2085, label %ok2086 +panic2085: + call void @finch_panic(ptr @.str.1199, i64 312, ptr @.str.1200) unreachable -ok2048: +ok2086: %t643 = getelementptr inbounds %S.gen.Gen, ptr %t641, i32 0, i32 0 %t644 = load i64, ptr %a638 %t645 = load { ptr, i64, i64 }, ptr %t643 %t646 = extractvalue { ptr, i64, i64 } %t645, 1 %t647 = icmp uge i64 %t644, %t646 - br i1 %t647, label %range2049, label %inrange2050 -range2049: - call void @finch_panic_index(ptr @.str.1181, i64 295, i64 %t644, i64 %t646) + br i1 %t647, label %range2087, label %inrange2088 +range2087: + call void @finch_panic_index(ptr @.str.1201, i64 312, i64 %t644, i64 %t646) unreachable -inrange2050: +inrange2088: %t648 = extractvalue { ptr, i64, i64 } %t645, 0 %t649 = getelementptr inbounds %S.ast.Program, ptr %t648, i64 %t644 %t650 = getelementptr inbounds %S.ast.Program, ptr %t649, i32 0, i32 7 store i64 0, ptr %a651 - br label %each.cond2051 -each.cond2051: + br label %each.cond2089 +each.cond2089: %t652 = getelementptr inbounds { ptr, i64, i64 }, ptr %t650, i32 0, i32 1 %t653 = load i64, ptr %t652 %t654 = load i64, ptr %a651 %t655 = icmp slt i64 %t654, %t653 - br i1 %t655, label %each.body2052, label %each.end2054 -each.body2052: + br i1 %t655, label %each.body2090, label %each.end2092 +each.body2090: %t656 = load ptr, ptr %t650 %t657 = getelementptr inbounds %S.ast.Node, ptr %t656, i64 %t654 %t658 = load %S.ast.Node, ptr %t657 @@ -23458,18 +24097,18 @@ each.body2052: call void @finch.copy.S_ast_Node(ptr %a660, ptr %a659) %t661 = load %S.ast.Node, ptr %a660 store %S.ast.Node %t661, ptr %a662 - store { ptr, i64, i64 } { ptr @.str.1182, i64 0, i64 0 }, ptr %a663 + store { ptr, i64, i64 } { ptr @.str.1202, i64 0, i64 0 }, ptr %a663 store { ptr, i64, i64 } zeroinitializer, ptr %a664 %t665 = getelementptr inbounds %S.ast.Node, ptr %a662, i32 0, i32 9 store i64 0, ptr %a666 - br label %each.cond2055 -each.cond2055: + br label %each.cond2093 +each.cond2093: %t667 = getelementptr inbounds { ptr, i64, i64 }, ptr %t665, i32 0, i32 1 %t668 = load i64, ptr %t667 %t669 = load i64, ptr %a666 %t670 = icmp slt i64 %t669, %t668 - br i1 %t670, label %each.body2056, label %each.end2058 -each.body2056: + br i1 %t670, label %each.body2094, label %each.end2096 +each.body2094: %t671 = load ptr, ptr %t665 %t672 = getelementptr inbounds %S.ast.Node, ptr %t671, i64 %t669 %t673 = load %S.ast.Node, ptr %t672 @@ -23487,15 +24126,15 @@ each.body2056: %t684 = getelementptr inbounds { ptr, i64, i64 }, ptr %t683, i64 %t681 store { ptr, i64, i64 } %t680, ptr %t684 store i64 %t682, ptr %t675 - br label %each.step2057 -each.step2057: + br label %each.step2095 +each.step2095: %t685 = load i64, ptr %a666 %t686 = add i64 %t685, 1 store i64 %t686, ptr %a666 - br label %each.cond2055 -each.end2058: + br label %each.cond2093 +each.end2096: %t687 = getelementptr inbounds { ptr, i64, i64 }, ptr %a664, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.1183, i64 1, i64 0 }, ptr %a688 + store { ptr, i64, i64 } { ptr @.str.1203, i64 1, i64 0 }, ptr %a688 call void @finch_str_join(ptr %a689, ptr %a664, ptr %a688) %t690 = load { ptr, i64, i64 }, ptr %a689 %t691 = load { ptr, i64, i64 }, ptr %a663 @@ -23504,40 +24143,40 @@ each.end2058: call void @finch_str_drop(ptr %a692) %t693 = load ptr, ptr %a1 %t694 = icmp eq ptr %t693, null - br i1 %t694, label %panic2059, label %ok2060 -panic2059: - call void @finch_panic(ptr @.str.1184, i64 302, ptr @.str.1185) + br i1 %t694, label %panic2097, label %ok2098 +panic2097: + call void @finch_panic(ptr @.str.1204, i64 319, ptr @.str.1205) unreachable -ok2060: - %t695 = getelementptr inbounds %S.gen.Gen, ptr %t693, i32 0, i32 28 +ok2098: + %t695 = getelementptr inbounds %S.gen.Gen, ptr %t693, i32 0, i32 29 %t696 = getelementptr inbounds { ptr, i64, i64 }, ptr %t695, i32 0, i32 1 %t697 = load ptr, ptr %a1 %t698 = icmp eq ptr %t697, null - br i1 %t698, label %panic2061, label %ok2062 -panic2061: - call void @finch_panic(ptr @.str.1187, i64 302, ptr @.str.1188) + br i1 %t698, label %panic2099, label %ok2100 +panic2099: + call void @finch_panic(ptr @.str.1207, i64 319, ptr @.str.1208) unreachable -ok2062: +ok2100: %t699 = getelementptr inbounds %S.gen.Gen, ptr %t697, i32 0, i32 0 %t700 = load i64, ptr %a638 %t701 = load { ptr, i64, i64 }, ptr %t699 %t702 = extractvalue { ptr, i64, i64 } %t701, 1 %t703 = icmp uge i64 %t700, %t702 - br i1 %t703, label %range2063, label %inrange2064 -range2063: - call void @finch_panic_index(ptr @.str.1189, i64 302, i64 %t700, i64 %t702) + br i1 %t703, label %range2101, label %inrange2102 +range2101: + call void @finch_panic_index(ptr @.str.1209, i64 319, i64 %t700, i64 %t702) unreachable -inrange2064: +inrange2102: %t704 = extractvalue { ptr, i64, i64 } %t701, 0 %t705 = getelementptr inbounds %S.ast.Program, ptr %t704, i64 %t700 %t706 = getelementptr inbounds %S.ast.Program, ptr %t705, i32 0, i32 0 %t707 = load { ptr, i64, i64 }, ptr %t706 - store { ptr, i64, i64 } { ptr @.str.1186, i64 3, i64 0 }, ptr %a709 + store { ptr, i64, i64 } { ptr @.str.1206, i64 3, i64 0 }, ptr %a709 store { ptr, i64, i64 } %t707, ptr %a710 call void @finch_str_concat(ptr %a708, ptr %a709, ptr %a710) %t711 = load { ptr, i64, i64 }, ptr %a708 store { ptr, i64, i64 } %t711, ptr %a713 - store { ptr, i64, i64 } { ptr @.str.1190, i64 1, i64 0 }, ptr %a714 + store { ptr, i64, i64 } { ptr @.str.1210, i64 1, i64 0 }, ptr %a714 call void @finch_str_concat(ptr %a712, ptr %a713, ptr %a714) store { ptr, i64, i64 } %t711, ptr %a715 call void @finch_str_drop(ptr %a715) @@ -23551,29 +24190,29 @@ inrange2064: call void @finch_str_drop(ptr %a722) %t723 = load { ptr, i64, i64 }, ptr %a719 store { ptr, i64, i64 } %t723, ptr %a725 - store { ptr, i64, i64 } { ptr @.str.1191, i64 1, i64 0 }, ptr %a726 + store { ptr, i64, i64 } { ptr @.str.1211, i64 1, i64 0 }, ptr %a726 call void @finch_str_concat(ptr %a724, ptr %a725, ptr %a726) store { ptr, i64, i64 } %t723, ptr %a727 call void @finch_str_drop(ptr %a727) %t728 = load { ptr, i64, i64 }, ptr %a724 %t729 = load ptr, ptr %a1 %t730 = icmp eq ptr %t729, null - br i1 %t730, label %panic2065, label %ok2066 -panic2065: - call void @finch_panic(ptr @.str.1192, i64 302, ptr @.str.1193) + br i1 %t730, label %panic2103, label %ok2104 +panic2103: + call void @finch_panic(ptr @.str.1212, i64 319, ptr @.str.1213) unreachable -ok2066: +ok2104: %t731 = getelementptr inbounds %S.gen.Gen, ptr %t729, i32 0, i32 1 %t732 = getelementptr inbounds %S.ast.Node, ptr %a662, i32 0, i32 13 %t733 = load i64, ptr %t732 %t734 = load { ptr, i64, i64 }, ptr %t731 %t735 = extractvalue { ptr, i64, i64 } %t734, 1 %t736 = icmp uge i64 %t733, %t735 - br i1 %t736, label %range2067, label %inrange2068 -range2067: - call void @finch_panic_index(ptr @.str.1194, i64 302, i64 %t733, i64 %t735) + br i1 %t736, label %range2105, label %inrange2106 +range2105: + call void @finch_panic_index(ptr @.str.1214, i64 319, i64 %t733, i64 %t735) unreachable -inrange2068: +inrange2106: %t737 = extractvalue { ptr, i64, i64 } %t734, 0 %t738 = getelementptr inbounds { ptr, i64, i64 }, ptr %t737, i64 %t733 %t739 = load { ptr, i64, i64 }, ptr %t738 @@ -23584,7 +24223,7 @@ inrange2068: call void @finch_str_drop(ptr %a743) %t744 = load { ptr, i64, i64 }, ptr %a740 store { ptr, i64, i64 } %t744, ptr %a746 - store { ptr, i64, i64 } { ptr @.str.1195, i64 1, i64 0 }, ptr %a747 + store { ptr, i64, i64 } { ptr @.str.1215, i64 1, i64 0 }, ptr %a747 call void @finch_str_concat(ptr %a745, ptr %a746, ptr %a747) store { ptr, i64, i64 } %t744, ptr %a748 call void @finch_str_drop(ptr %a748) @@ -23602,7 +24241,7 @@ inrange2068: call void @finch_str_drop(ptr %a758) %t759 = load { ptr, i64, i64 }, ptr %a754 store { ptr, i64, i64 } %t759, ptr %a761 - store { ptr, i64, i64 } { ptr @.str.1196, i64 1, i64 0 }, ptr %a762 + store { ptr, i64, i64 } { ptr @.str.1216, i64 1, i64 0 }, ptr %a762 call void @finch_str_concat(ptr %a760, ptr %a761, ptr %a762) store { ptr, i64, i64 } %t759, ptr %a763 call void @finch_str_drop(ptr %a763) @@ -23620,7 +24259,7 @@ inrange2068: call void @finch_str_drop(ptr %a773) %t774 = load { ptr, i64, i64 }, ptr %a769 store { ptr, i64, i64 } %t774, ptr %a776 - store { ptr, i64, i64 } { ptr @.str.1197, i64 1, i64 0 }, ptr %a777 + store { ptr, i64, i64 } { ptr @.str.1217, i64 1, i64 0 }, ptr %a777 call void @finch_str_concat(ptr %a775, ptr %a776, ptr %a777) store { ptr, i64, i64 } %t774, ptr %a778 call void @finch_str_drop(ptr %a778) @@ -23642,20 +24281,20 @@ inrange2068: call void @finch.drop.arr_str(ptr %a664) call void @finch_str_drop(ptr %a663) call void @finch.drop.S_ast_Node(ptr %a662) - br label %each.step2053 -each.step2053: + br label %each.step2091 +each.step2091: %t790 = load i64, ptr %a651 %t791 = add i64 %t790, 1 store i64 %t791, ptr %a651 - br label %each.cond2051 -each.end2054: - br label %for.step2045 -for.step2045: + br label %each.cond2089 +each.end2092: + br label %for.step2083 +for.step2083: %t792 = load i64, ptr %a638 %t793 = add i64 %t792, 1 store i64 %t793, ptr %a638 - br label %for.cond2043 -for.end2046: + br label %for.cond2081 +for.end2084: ret void } @@ -23704,81 +24343,81 @@ entry: store { ptr, i64, i64 } %p2, ptr %a3 %t4 = load ptr, ptr %a1 %t5 = icmp eq ptr %t4, null - br i1 %t5, label %panic2069, label %ok2070 -panic2069: - call void @finch_panic(ptr @.str.1198, i64 308, ptr @.str.1199) + br i1 %t5, label %panic2107, label %ok2108 +panic2107: + call void @finch_panic(ptr @.str.1218, i64 325, ptr @.str.1219) unreachable -ok2070: - %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 27 +ok2108: + %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 28 %t7 = load i1, ptr %t6 - br label %logic.from2071 -logic.from2071: - br i1 %t7, label %logic.rhs2072, label %logic.end2073 -logic.rhs2072: + br label %logic.from2109 +logic.from2109: + br i1 %t7, label %logic.rhs2110, label %logic.end2111 +logic.rhs2110: %t8 = load ptr, ptr %a1 %t9 = icmp eq ptr %t8, null - br i1 %t9, label %panic2074, label %ok2075 -panic2074: - call void @finch_panic(ptr @.str.1200, i64 308, ptr @.str.1201) + br i1 %t9, label %panic2112, label %ok2113 +panic2112: + call void @finch_panic(ptr @.str.1220, i64 325, ptr @.str.1221) unreachable -ok2075: - %t10 = getelementptr inbounds %S.gen.Gen, ptr %t8, i32 0, i32 28 +ok2113: + %t10 = getelementptr inbounds %S.gen.Gen, ptr %t8, i32 0, i32 29 %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %t10, i32 0, i32 1 %t12 = load i64, ptr %t11 %t13 = icmp sgt i64 %t12, 0 - br label %logic.rend2076 -logic.rend2076: - br label %logic.end2073 -logic.end2073: - %t14 = phi i1 [ false, %logic.from2071 ], [ %t13, %logic.rend2076 ] - br i1 %t14, label %then2077, label %endif2079 -then2077: + br label %logic.rend2114 +logic.rend2114: + br label %logic.end2111 +logic.end2111: + %t14 = phi i1 [ false, %logic.from2109 ], [ %t13, %logic.rend2114 ] + br i1 %t14, label %then2115, label %endif2117 +then2115: %t15 = load ptr, ptr %a1 %t16 = icmp eq ptr %t15, null - br i1 %t16, label %panic2080, label %ok2081 -panic2080: - call void @finch_panic(ptr @.str.1202, i64 309, ptr @.str.1203) + br i1 %t16, label %panic2118, label %ok2119 +panic2118: + call void @finch_panic(ptr @.str.1222, i64 326, ptr @.str.1223) unreachable -ok2081: - %t17 = getelementptr inbounds %S.gen.Gen, ptr %t15, i32 0, i32 28 +ok2119: + %t17 = getelementptr inbounds %S.gen.Gen, ptr %t15, i32 0, i32 29 %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %t17, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.1204, i64 1, i64 0 }, ptr %a19 + store { ptr, i64, i64 } { ptr @.str.1224, i64 1, i64 0 }, ptr %a19 call void @finch_str_join(ptr %a20, ptr %t17, ptr %a19) %t21 = load { ptr, i64, i64 }, ptr %a20 %t22 = extractvalue { ptr, i64, i64 } %t21, 1 %t23 = trunc i64 %t22 to i32 %t24 = extractvalue { ptr, i64, i64 } %t21, 0 %t25 = icmp eq ptr %t24, null - %t26 = select i1 %t25, ptr @.str.1205, ptr %t24 - %t27 = call i32 (ptr, ...) @printf(ptr @.str.1206, i32 %t23, ptr %t26) + %t26 = select i1 %t25, ptr @.str.1225, ptr %t24 + %t27 = call i32 (ptr, ...) @printf(ptr @.str.1226, i32 %t23, ptr %t26) store { ptr, i64, i64 } %t21, ptr %a28 call void @finch_str_drop(ptr %a28) - %t29 = call i32 (ptr, ...) @printf(ptr @.str.1207) - br label %endif2079 -endif2079: + %t29 = call i32 (ptr, ...) @printf(ptr @.str.1227) + br label %endif2117 +endif2117: %t30 = load ptr, ptr %a1 %t31 = icmp eq ptr %t30, null - br i1 %t31, label %panic2082, label %ok2083 -panic2082: - call void @finch_panic(ptr @.str.1208, i64 311, ptr @.str.1209) + br i1 %t31, label %panic2120, label %ok2121 +panic2120: + call void @finch_panic(ptr @.str.1228, i64 328, ptr @.str.1229) unreachable -ok2083: +ok2121: %t32 = getelementptr inbounds %S.gen.Gen, ptr %t30, i32 0, i32 1 %t33 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 13 %t34 = load i64, ptr %t33 %t35 = load { ptr, i64, i64 }, ptr %t32 %t36 = extractvalue { ptr, i64, i64 } %t35, 1 %t37 = icmp uge i64 %t34, %t36 - br i1 %t37, label %range2084, label %inrange2085 -range2084: - call void @finch_panic_index(ptr @.str.1210, i64 311, i64 %t34, i64 %t36) + br i1 %t37, label %range2122, label %inrange2123 +range2122: + call void @finch_panic_index(ptr @.str.1230, i64 328, i64 %t34, i64 %t36) unreachable -inrange2085: +inrange2123: %t38 = extractvalue { ptr, i64, i64 } %t35, 0 %t39 = getelementptr inbounds { ptr, i64, i64 }, ptr %t38, i64 %t34 %t40 = load { ptr, i64, i64 }, ptr %t39 store { ptr, i64, i64 } %t40, ptr %a42 - store { ptr, i64, i64 } { ptr @.str.1211, i64 1, i64 0 }, ptr %a43 + store { ptr, i64, i64 } { ptr @.str.1231, i64 1, i64 0 }, ptr %a43 call void @finch_str_concat(ptr %a41, ptr %a42, ptr %a43) %t44 = load { ptr, i64, i64 }, ptr %a41 %t45 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 11 @@ -23794,7 +24433,7 @@ inrange2085: call void @finch_str_drop(ptr %a53) %t54 = load { ptr, i64, i64 }, ptr %a49 store { ptr, i64, i64 } %t54, ptr %a56 - store { ptr, i64, i64 } { ptr @.str.1212, i64 1, i64 0 }, ptr %a57 + store { ptr, i64, i64 } { ptr @.str.1232, i64 1, i64 0 }, ptr %a57 call void @finch_str_concat(ptr %a55, ptr %a56, ptr %a57) store { ptr, i64, i64 } %t54, ptr %a58 call void @finch_str_drop(ptr %a58) @@ -23812,7 +24451,7 @@ inrange2085: call void @finch_str_drop(ptr %a68) %t69 = load { ptr, i64, i64 }, ptr %a64 store { ptr, i64, i64 } %t69, ptr %a71 - store { ptr, i64, i64 } { ptr @.str.1213, i64 9, i64 0 }, ptr %a72 + store { ptr, i64, i64 } { ptr @.str.1233, i64 9, i64 0 }, ptr %a72 call void @finch_str_concat(ptr %a70, ptr %a71, ptr %a72) store { ptr, i64, i64 } %t69, ptr %a73 call void @finch_str_drop(ptr %a73) @@ -23826,11 +24465,11 @@ inrange2085: %t80 = load { ptr, i64, i64 }, ptr %a76 %t81 = load ptr, ptr %a1 %t82 = icmp eq ptr %t81, null - br i1 %t82, label %panic2086, label %ok2087 -panic2086: - call void @finch_panic(ptr @.str.1214, i64 311, ptr @.str.1215) + br i1 %t82, label %panic2124, label %ok2125 +panic2124: + call void @finch_panic(ptr @.str.1234, i64 328, ptr @.str.1235) unreachable -ok2087: +ok2125: %t83 = getelementptr inbounds %S.gen.Gen, ptr %t81, i32 0, i32 20 %t84 = load { ptr, i64, i64 }, ptr %t83 store { ptr, i64, i64 } %t80, ptr %a86 @@ -23843,11 +24482,11 @@ ok2087: %t91 = trunc i64 %t90 to i32 %t92 = extractvalue { ptr, i64, i64 } %t89, 0 %t93 = icmp eq ptr %t92, null - %t94 = select i1 %t93, ptr @.str.1216, ptr %t92 - %t95 = call i32 (ptr, ...) @printf(ptr @.str.1217, i32 %t91, ptr %t94) + %t94 = select i1 %t93, ptr @.str.1236, ptr %t92 + %t95 = call i32 (ptr, ...) @printf(ptr @.str.1237, i32 %t91, ptr %t94) store { ptr, i64, i64 } %t89, ptr %a96 call void @finch_str_drop(ptr %a96) - %t97 = call i32 (ptr, ...) @printf(ptr @.str.1218) + %t97 = call i32 (ptr, ...) @printf(ptr @.str.1238) %t98 = trunc i64 1 to i32 %t99 = call i32 @fflush(ptr null) call void @exit(i32 %t98) @@ -23881,46 +24520,46 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic2088, label %ok2089 -panic2088: - call void @finch_panic(ptr @.str.1219, i64 317, ptr @.str.1220) + br i1 %t4, label %panic2126, label %ok2127 +panic2126: + call void @finch_panic(ptr @.str.1239, i64 334, ptr @.str.1240) unreachable -ok2089: - %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 35 +ok2127: + %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 36 %t6 = load i64, ptr %t5 %t7 = icmp sge i64 %t6, 0 - br label %logic.from2090 -logic.from2090: - br i1 %t7, label %logic.rhs2091, label %logic.end2092 -logic.rhs2091: + br label %logic.from2128 +logic.from2128: + br i1 %t7, label %logic.rhs2129, label %logic.end2130 +logic.rhs2129: %t8 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t8, ptr %a9 - store { ptr, i64, i64 } { ptr @.str.1222, i64 5, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.1242, i64 5, i64 0 }, ptr %a11 %t12 = call i64 @finch_str_find(ptr %a9, ptr %a11) %t13 = icmp sge i64 %t12, 0 - br label %logic.rend2093 -logic.rend2093: - br label %logic.end2092 -logic.end2092: - %t14 = phi i1 [ false, %logic.from2090 ], [ %t13, %logic.rend2093 ] - br i1 %t14, label %then2094, label %endif2096 -then2094: + br label %logic.rend2131 +logic.rend2131: + br label %logic.end2130 +logic.end2130: + %t14 = phi i1 [ false, %logic.from2128 ], [ %t13, %logic.rend2131 ] + br i1 %t14, label %then2132, label %endif2134 +then2132: %t15 = load ptr, ptr %a1 %t16 = icmp eq ptr %t15, null - br i1 %t16, label %panic2097, label %ok2098 -panic2097: - call void @finch_panic(ptr @.str.1223, i64 318, ptr @.str.1224) + br i1 %t16, label %panic2135, label %ok2136 +panic2135: + call void @finch_panic(ptr @.str.1243, i64 335, ptr @.str.1244) unreachable -ok2098: +ok2136: %t17 = getelementptr inbounds %S.gen.Gen, ptr %t15, i32 0, i32 4 %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %t17, i32 0, i32 1 %t19 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1225, i64 2, i64 0 }, ptr %a21 + store { ptr, i64, i64 } { ptr @.str.1245, i64 2, i64 0 }, ptr %a21 store { ptr, i64, i64 } %t19, ptr %a22 call void @finch_str_concat(ptr %a20, ptr %a21, ptr %a22) %t23 = load { ptr, i64, i64 }, ptr %a20 store { ptr, i64, i64 } %t23, ptr %a25 - store { ptr, i64, i64 } { ptr @.str.1226, i64 8, i64 0 }, ptr %a26 + store { ptr, i64, i64 } { ptr @.str.1246, i64 8, i64 0 }, ptr %a26 call void @finch_str_concat(ptr %a24, ptr %a25, ptr %a26) store { ptr, i64, i64 } %t23, ptr %a27 call void @finch_str_drop(ptr %a27) @@ -23945,18 +24584,18 @@ ok2098: store { ptr, i64, i64 } %t38, ptr %t42 store i64 %t40, ptr %t18 ret void -endif2096: +endif2134: %t43 = load ptr, ptr %a1 %t44 = icmp eq ptr %t43, null - br i1 %t44, label %panic2099, label %ok2100 -panic2099: - call void @finch_panic(ptr @.str.1227, i64 321, ptr @.str.1228) + br i1 %t44, label %panic2137, label %ok2138 +panic2137: + call void @finch_panic(ptr @.str.1247, i64 338, ptr @.str.1248) unreachable -ok2100: +ok2138: %t45 = getelementptr inbounds %S.gen.Gen, ptr %t43, i32 0, i32 4 %t46 = getelementptr inbounds { ptr, i64, i64 }, ptr %t45, i32 0, i32 1 %t47 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1229, i64 2, i64 0 }, ptr %a49 + store { ptr, i64, i64 } { ptr @.str.1249, i64 2, i64 0 }, ptr %a49 store { ptr, i64, i64 } %t47, ptr %a50 call void @finch_str_concat(ptr %a48, ptr %a49, ptr %a50) %t51 = load { ptr, i64, i64 }, ptr %a48 @@ -23981,27 +24620,27 @@ entry: store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 %t3 = icmp eq ptr %t2, null - br i1 %t3, label %panic2101, label %ok2102 -panic2101: - call void @finch_panic(ptr @.str.1230, i64 325, ptr @.str.1231) + br i1 %t3, label %panic2139, label %ok2140 +panic2139: + call void @finch_panic(ptr @.str.1250, i64 342, ptr @.str.1251) unreachable -ok2102: +ok2140: %t4 = getelementptr inbounds %S.gen.Gen, ptr %t2, i32 0, i32 6 %t5 = load i64, ptr %t4 %t6 = add i64 %t5, 1 store i64 %t6, ptr %t4 %t7 = load ptr, ptr %a1 %t8 = icmp eq ptr %t7, null - br i1 %t8, label %panic2103, label %ok2104 -panic2103: - call void @finch_panic(ptr @.str.1233, i64 326, ptr @.str.1234) + br i1 %t8, label %panic2141, label %ok2142 +panic2141: + call void @finch_panic(ptr @.str.1253, i64 343, ptr @.str.1254) unreachable -ok2104: +ok2142: %t9 = getelementptr inbounds %S.gen.Gen, ptr %t7, i32 0, i32 6 %t10 = load i64, ptr %t9 call void @finch_str_from_int(ptr %a11, i64 %t10) %t12 = load { ptr, i64, i64 }, ptr %a11 - store { ptr, i64, i64 } { ptr @.str.1232, i64 2, i64 0 }, ptr %a14 + store { ptr, i64, i64 } { ptr @.str.1252, i64 2, i64 0 }, ptr %a14 store { ptr, i64, i64 } %t12, ptr %a15 call void @finch_str_concat(ptr %a13, ptr %a14, ptr %a15) store { ptr, i64, i64 } %t12, ptr %a16 @@ -24023,11 +24662,11 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic2105, label %ok2106 -panic2105: - call void @finch_panic(ptr @.str.1235, i64 330, ptr @.str.1236) + br i1 %t4, label %panic2143, label %ok2144 +panic2143: + call void @finch_panic(ptr @.str.1255, i64 347, ptr @.str.1256) unreachable -ok2106: +ok2144: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 7 %t6 = load i64, ptr %t5 %t7 = add i64 %t6, 1 @@ -24035,11 +24674,11 @@ ok2106: %t8 = load { ptr, i64, i64 }, ptr %a2 %t9 = load ptr, ptr %a1 %t10 = icmp eq ptr %t9, null - br i1 %t10, label %panic2107, label %ok2108 -panic2107: - call void @finch_panic(ptr @.str.1237, i64 331, ptr @.str.1238) + br i1 %t10, label %panic2145, label %ok2146 +panic2145: + call void @finch_panic(ptr @.str.1257, i64 348, ptr @.str.1258) unreachable -ok2108: +ok2146: %t11 = getelementptr inbounds %S.gen.Gen, ptr %t9, i32 0, i32 7 %t12 = load i64, ptr %t11 call void @finch_str_from_int(ptr %a13, i64 %t12) @@ -24064,16 +24703,16 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic2109, label %ok2110 -panic2109: - call void @finch_panic(ptr @.str.1239, i64 335, ptr @.str.1240) + br i1 %t4, label %panic2147, label %ok2148 +panic2147: + call void @finch_panic(ptr @.str.1259, i64 352, ptr @.str.1260) unreachable -ok2110: +ok2148: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 4 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t7 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t7, ptr %a9 - store { ptr, i64, i64 } { ptr @.str.1241, i64 1, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.1261, i64 1, i64 0 }, ptr %a10 call void @finch_str_concat(ptr %a8, ptr %a9, ptr %a10) %t11 = load { ptr, i64, i64 }, ptr %a8 %t12 = load i64, ptr %t6 @@ -24085,11 +24724,11 @@ ok2110: store i64 %t13, ptr %t6 %t16 = load ptr, ptr %a1 %t17 = icmp eq ptr %t16, null - br i1 %t17, label %panic2111, label %ok2112 -panic2111: - call void @finch_panic(ptr @.str.1242, i64 336, ptr @.str.1243) + br i1 %t17, label %panic2149, label %ok2150 +panic2149: + call void @finch_panic(ptr @.str.1262, i64 353, ptr @.str.1263) unreachable -ok2112: +ok2150: %t18 = getelementptr inbounds %S.gen.Gen, ptr %t16, i32 0, i32 9 store i1 false, ptr %t18 ret void @@ -24107,19 +24746,19 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic2113, label %ok2114 -panic2113: - call void @finch_panic(ptr @.str.1244, i64 340, ptr @.str.1245) + br i1 %t4, label %panic2151, label %ok2152 +panic2151: + call void @finch_panic(ptr @.str.1264, i64 357, ptr @.str.1265) unreachable -ok2114: +ok2152: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 9 %t6 = load i1, ptr %t5 %t7 = xor i1 %t6, true - br i1 %t7, label %then2115, label %endif2117 -then2115: + br i1 %t7, label %then2153, label %endif2155 +then2153: %t8 = load ptr, ptr %a1 %t9 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1246, i64 10, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.1266, i64 10, i64 0 }, ptr %a11 store { ptr, i64, i64 } %t9, ptr %a12 call void @finch_str_concat(ptr %a10, ptr %a11, ptr %a12) %t13 = load { ptr, i64, i64 }, ptr %a10 @@ -24128,15 +24767,15 @@ then2115: call void @finch_str_drop(ptr %a14) %t15 = load ptr, ptr %a1 %t16 = icmp eq ptr %t15, null - br i1 %t16, label %panic2118, label %ok2119 -panic2118: - call void @finch_panic(ptr @.str.1247, i64 342, ptr @.str.1248) + br i1 %t16, label %panic2156, label %ok2157 +panic2156: + call void @finch_panic(ptr @.str.1267, i64 359, ptr @.str.1268) unreachable -ok2119: +ok2157: %t17 = getelementptr inbounds %S.gen.Gen, ptr %t15, i32 0, i32 9 store i1 true, ptr %t17 - br label %endif2117 -endif2117: + br label %endif2155 +endif2155: ret void } @@ -24172,12 +24811,12 @@ entry: store { ptr, i64, i64 } %p3, ptr %a4 %t5 = load ptr, ptr %a1 %t6 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1249, i64 6, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.1269, i64 6, i64 0 }, ptr %a8 store { ptr, i64, i64 } %t6, ptr %a9 call void @finch_str_concat(ptr %a7, ptr %a8, ptr %a9) %t10 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t10, ptr %a12 - store { ptr, i64, i64 } { ptr @.str.1250, i64 9, i64 0 }, ptr %a13 + store { ptr, i64, i64 } { ptr @.str.1270, i64 9, i64 0 }, ptr %a13 call void @finch_str_concat(ptr %a11, ptr %a12, ptr %a13) store { ptr, i64, i64 } %t10, ptr %a14 call void @finch_str_drop(ptr %a14) @@ -24190,7 +24829,7 @@ entry: call void @finch_str_drop(ptr %a20) %t21 = load { ptr, i64, i64 }, ptr %a17 store { ptr, i64, i64 } %t21, ptr %a23 - store { ptr, i64, i64 } { ptr @.str.1251, i64 9, i64 0 }, ptr %a24 + store { ptr, i64, i64 } { ptr @.str.1271, i64 9, i64 0 }, ptr %a24 call void @finch_str_concat(ptr %a22, ptr %a23, ptr %a24) store { ptr, i64, i64 } %t21, ptr %a25 call void @finch_str_drop(ptr %a25) @@ -24207,11 +24846,11 @@ entry: call void @finch_str_drop(ptr %a33) %t34 = load ptr, ptr %a1 %t35 = icmp eq ptr %t34, null - br i1 %t35, label %panic2120, label %ok2121 -panic2120: - call void @finch_panic(ptr @.str.1252, i64 348, ptr @.str.1253) + br i1 %t35, label %panic2158, label %ok2159 +panic2158: + call void @finch_panic(ptr @.str.1272, i64 365, ptr @.str.1273) unreachable -ok2121: +ok2159: %t36 = getelementptr inbounds %S.gen.Gen, ptr %t34, i32 0, i32 9 store i1 true, ptr %t36 ret void @@ -24246,27 +24885,27 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic2122, label %ok2123 -panic2122: - call void @finch_panic(ptr @.str.1254, i64 352, ptr @.str.1255) + br i1 %t4, label %panic2160, label %ok2161 +panic2160: + call void @finch_panic(ptr @.str.1274, i64 369, ptr @.str.1275) unreachable -ok2123: +ok2161: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 6 %t6 = load i64, ptr %t5 %t7 = add i64 %t6, 1 store i64 %t7, ptr %t5 %t8 = load ptr, ptr %a1 %t9 = icmp eq ptr %t8, null - br i1 %t9, label %panic2124, label %ok2125 -panic2124: - call void @finch_panic(ptr @.str.1257, i64 353, ptr @.str.1258) + br i1 %t9, label %panic2162, label %ok2163 +panic2162: + call void @finch_panic(ptr @.str.1277, i64 370, ptr @.str.1278) unreachable -ok2125: +ok2163: %t10 = getelementptr inbounds %S.gen.Gen, ptr %t8, i32 0, i32 6 %t11 = load i64, ptr %t10 call void @finch_str_from_int(ptr %a12, i64 %t11) %t13 = load { ptr, i64, i64 }, ptr %a12 - store { ptr, i64, i64 } { ptr @.str.1256, i64 2, i64 0 }, ptr %a15 + store { ptr, i64, i64 } { ptr @.str.1276, i64 2, i64 0 }, ptr %a15 store { ptr, i64, i64 } %t13, ptr %a16 call void @finch_str_concat(ptr %a14, ptr %a15, ptr %a16) store { ptr, i64, i64 } %t13, ptr %a17 @@ -24275,20 +24914,20 @@ ok2125: store { ptr, i64, i64 } %t18, ptr %a19 %t20 = load ptr, ptr %a1 %t21 = icmp eq ptr %t20, null - br i1 %t21, label %panic2126, label %ok2127 -panic2126: - call void @finch_panic(ptr @.str.1259, i64 354, ptr @.str.1260) + br i1 %t21, label %panic2164, label %ok2165 +panic2164: + call void @finch_panic(ptr @.str.1279, i64 371, ptr @.str.1280) unreachable -ok2127: +ok2165: %t22 = getelementptr inbounds %S.gen.Gen, ptr %t20, i32 0, i32 5 %t23 = getelementptr inbounds { ptr, i64, i64 }, ptr %t22, i32 0, i32 1 %t24 = load { ptr, i64, i64 }, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.1261, i64 2, i64 0 }, ptr %a26 + store { ptr, i64, i64 } { ptr @.str.1281, i64 2, i64 0 }, ptr %a26 store { ptr, i64, i64 } %t24, ptr %a27 call void @finch_str_concat(ptr %a25, ptr %a26, ptr %a27) %t28 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t28, ptr %a30 - store { ptr, i64, i64 } { ptr @.str.1262, i64 10, i64 0 }, ptr %a31 + store { ptr, i64, i64 } { ptr @.str.1282, i64 10, i64 0 }, ptr %a31 call void @finch_str_concat(ptr %a29, ptr %a30, ptr %a31) store { ptr, i64, i64 } %t28, ptr %a32 call void @finch_str_drop(ptr %a32) @@ -24301,7 +24940,7 @@ ok2127: call void @finch_str_drop(ptr %a38) %t39 = load { ptr, i64, i64 }, ptr %a35 store { ptr, i64, i64 } %t39, ptr %a41 - store { ptr, i64, i64 } { ptr @.str.1263, i64 10, i64 0 }, ptr %a42 + store { ptr, i64, i64 } { ptr @.str.1283, i64 10, i64 0 }, ptr %a42 call void @finch_str_concat(ptr %a40, ptr %a41, ptr %a42) store { ptr, i64, i64 } %t39, ptr %a43 call void @finch_str_drop(ptr %a43) @@ -24348,7 +24987,7 @@ entry: %t7 = load ptr, ptr %a1 %t8 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t8, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.1264, i64 8, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.1284, i64 8, i64 0 }, ptr %a11 call void @finch_str_concat(ptr %a9, ptr %a10, ptr %a11) %t12 = load { ptr, i64, i64 }, ptr %a9 %t13 = load { ptr, i64, i64 }, ptr %a2 @@ -24359,7 +24998,7 @@ entry: call void @finch_str_drop(ptr %a17) %t18 = load { ptr, i64, i64 }, ptr %a14 store { ptr, i64, i64 } %t18, ptr %a20 - store { ptr, i64, i64 } { ptr @.str.1265, i64 6, i64 0 }, ptr %a21 + store { ptr, i64, i64 } { ptr @.str.1285, i64 6, i64 0 }, ptr %a21 call void @finch_str_concat(ptr %a19, ptr %a20, ptr %a21) store { ptr, i64, i64 } %t18, ptr %a22 call void @finch_str_drop(ptr %a22) @@ -24410,12 +25049,12 @@ entry: store { ptr, i64, i64 } %p3, ptr %a4 %t5 = load ptr, ptr %a1 %t6 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1266, i64 6, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.1286, i64 6, i64 0 }, ptr %a8 store { ptr, i64, i64 } %t6, ptr %a9 call void @finch_str_concat(ptr %a7, ptr %a8, ptr %a9) %t10 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t10, ptr %a12 - store { ptr, i64, i64 } { ptr @.str.1267, i64 1, i64 0 }, ptr %a13 + store { ptr, i64, i64 } { ptr @.str.1287, i64 1, i64 0 }, ptr %a13 call void @finch_str_concat(ptr %a11, ptr %a12, ptr %a13) store { ptr, i64, i64 } %t10, ptr %a14 call void @finch_str_drop(ptr %a14) @@ -24428,7 +25067,7 @@ entry: call void @finch_str_drop(ptr %a20) %t21 = load { ptr, i64, i64 }, ptr %a17 store { ptr, i64, i64 } %t21, ptr %a23 - store { ptr, i64, i64 } { ptr @.str.1268, i64 6, i64 0 }, ptr %a24 + store { ptr, i64, i64 } { ptr @.str.1288, i64 6, i64 0 }, ptr %a24 call void @finch_str_concat(ptr %a22, ptr %a23, ptr %a24) store { ptr, i64, i64 } %t21, ptr %a25 call void @finch_str_drop(ptr %a25) @@ -24500,7 +25139,7 @@ entry: %t6 = load ptr, ptr %a1 %t7 = load { ptr, i64, i64 }, ptr %a5 store { ptr, i64, i64 } %t7, ptr %a9 - store { ptr, i64, i64 } { ptr @.str.1269, i64 3, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.1289, i64 3, i64 0 }, ptr %a10 call void @finch_str_concat(ptr %a8, ptr %a9, ptr %a10) %t11 = load { ptr, i64, i64 }, ptr %a8 %t12 = load { ptr, i64, i64 }, ptr %a2 @@ -24533,27 +25172,27 @@ entry: %t6 = load i64, ptr %t3 %t7 = load ptr, ptr %a1 store i64 0, ptr %a8 - br label %find.cond2128 -find.cond2128: + br label %find.cond2166 +find.cond2166: %t9 = load i64, ptr %a8 %t10 = icmp slt i64 %t9, %t6 - br i1 %t10, label %find.body2129, label %find.end2132 -find.body2129: + br i1 %t10, label %find.body2167, label %find.end2170 +find.body2167: %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %t7, i64 %t9 %t12 = load { ptr, i64, i64 }, ptr %t11 store { ptr, i64, i64 } %t12, ptr %a13 store { ptr, i64, i64 } %t4, ptr %a14 %t15 = call i32 @finch_str_eq(ptr %a13, ptr %a14) %t16 = icmp ne i32 %t15, 0 - br i1 %t16, label %find.hit2130, label %find.next2131 -find.hit2130: + br i1 %t16, label %find.hit2168, label %find.next2169 +find.hit2168: store i64 %t9, ptr %a5 - br label %find.end2132 -find.next2131: + br label %find.end2170 +find.next2169: %t17 = add i64 %t9, 1 store i64 %t17, ptr %a8 - br label %find.cond2128 -find.end2132: + br label %find.cond2166 +find.end2170: %t18 = load i64, ptr %a5 %t19 = icmp sge i64 %t18, 0 ret i1 %t19 @@ -24591,51 +25230,51 @@ entry: store { ptr, i64, i64 } %t6, ptr %a7 %t8 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t8, ptr %a9 - store { ptr, i64, i64 } { ptr @.str.1270, i64 3, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.1290, i64 3, i64 0 }, ptr %a10 %t11 = call i32 @finch_str_eq(ptr %a9, ptr %a10) %t12 = icmp ne i32 %t11, 0 - br label %logic.from2133 -logic.from2133: - br i1 %t12, label %logic.end2135, label %logic.rhs2134 -logic.rhs2134: + br label %logic.from2171 +logic.from2171: + br i1 %t12, label %logic.end2173, label %logic.rhs2172 +logic.rhs2172: %t13 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t13, ptr %a14 - store { ptr, i64, i64 } { ptr @.str.1271, i64 2, i64 0 }, ptr %a15 + store { ptr, i64, i64 } { ptr @.str.1291, i64 2, i64 0 }, ptr %a15 %t16 = call i32 @finch_str_eq(ptr %a14, ptr %a15) %t17 = icmp ne i32 %t16, 0 - br label %logic.rend2136 -logic.rend2136: - br label %logic.end2135 -logic.end2135: - %t18 = phi i1 [ true, %logic.from2133 ], [ %t17, %logic.rend2136 ] - br label %logic.from2137 -logic.from2137: - br i1 %t18, label %logic.end2139, label %logic.rhs2138 -logic.rhs2138: + br label %logic.rend2174 +logic.rend2174: + br label %logic.end2173 +logic.end2173: + %t18 = phi i1 [ true, %logic.from2171 ], [ %t17, %logic.rend2174 ] + br label %logic.from2175 +logic.from2175: + br i1 %t18, label %logic.end2177, label %logic.rhs2176 +logic.rhs2176: %t19 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t19, ptr %a20 - store { ptr, i64, i64 } { ptr @.str.1272, i64 3, i64 0 }, ptr %a21 + store { ptr, i64, i64 } { ptr @.str.1292, i64 3, i64 0 }, ptr %a21 %t22 = call i32 @finch_str_eq(ptr %a20, ptr %a21) %t23 = icmp ne i32 %t22, 0 - br label %logic.rend2140 -logic.rend2140: - br label %logic.end2139 -logic.end2139: - %t24 = phi i1 [ true, %logic.from2137 ], [ %t23, %logic.rend2140 ] - br label %logic.from2141 -logic.from2141: - br i1 %t24, label %logic.end2143, label %logic.rhs2142 -logic.rhs2142: + br label %logic.rend2178 +logic.rend2178: + br label %logic.end2177 +logic.end2177: + %t24 = phi i1 [ true, %logic.from2175 ], [ %t23, %logic.rend2178 ] + br label %logic.from2179 +logic.from2179: + br i1 %t24, label %logic.end2181, label %logic.rhs2180 +logic.rhs2180: %t25 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t25, ptr %a26 - store { ptr, i64, i64 } { ptr @.str.1273, i64 3, i64 0 }, ptr %a27 + store { ptr, i64, i64 } { ptr @.str.1293, i64 3, i64 0 }, ptr %a27 %t28 = call i32 @finch_str_eq(ptr %a26, ptr %a27) %t29 = icmp ne i32 %t28, 0 - br label %logic.rend2144 -logic.rend2144: - br label %logic.end2143 -logic.end2143: - %t30 = phi i1 [ true, %logic.from2141 ], [ %t29, %logic.rend2144 ] + br label %logic.rend2182 +logic.rend2182: + br label %logic.end2181 +logic.end2181: + %t30 = phi i1 [ true, %logic.from2179 ], [ %t29, %logic.rend2182 ] call void @finch_str_drop(ptr %a7) ret i1 %t30 } @@ -24663,51 +25302,51 @@ entry: store { ptr, i64, i64 } %t6, ptr %a7 %t8 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t8, ptr %a9 - store { ptr, i64, i64 } { ptr @.str.1274, i64 2, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.1294, i64 2, i64 0 }, ptr %a10 %t11 = call i32 @finch_str_eq(ptr %a9, ptr %a10) %t12 = icmp ne i32 %t11, 0 - br label %logic.from2145 -logic.from2145: - br i1 %t12, label %logic.end2147, label %logic.rhs2146 -logic.rhs2146: + br label %logic.from2183 +logic.from2183: + br i1 %t12, label %logic.end2185, label %logic.rhs2184 +logic.rhs2184: %t13 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t13, ptr %a14 - store { ptr, i64, i64 } { ptr @.str.1275, i64 3, i64 0 }, ptr %a15 + store { ptr, i64, i64 } { ptr @.str.1295, i64 3, i64 0 }, ptr %a15 %t16 = call i32 @finch_str_eq(ptr %a14, ptr %a15) %t17 = icmp ne i32 %t16, 0 - br label %logic.rend2148 -logic.rend2148: - br label %logic.end2147 -logic.end2147: - %t18 = phi i1 [ true, %logic.from2145 ], [ %t17, %logic.rend2148 ] - br label %logic.from2149 -logic.from2149: - br i1 %t18, label %logic.end2151, label %logic.rhs2150 -logic.rhs2150: + br label %logic.rend2186 +logic.rend2186: + br label %logic.end2185 +logic.end2185: + %t18 = phi i1 [ true, %logic.from2183 ], [ %t17, %logic.rend2186 ] + br label %logic.from2187 +logic.from2187: + br i1 %t18, label %logic.end2189, label %logic.rhs2188 +logic.rhs2188: %t19 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t19, ptr %a20 - store { ptr, i64, i64 } { ptr @.str.1276, i64 3, i64 0 }, ptr %a21 + store { ptr, i64, i64 } { ptr @.str.1296, i64 3, i64 0 }, ptr %a21 %t22 = call i32 @finch_str_eq(ptr %a20, ptr %a21) %t23 = icmp ne i32 %t22, 0 - br label %logic.rend2152 -logic.rend2152: - br label %logic.end2151 -logic.end2151: - %t24 = phi i1 [ true, %logic.from2149 ], [ %t23, %logic.rend2152 ] - br label %logic.from2153 -logic.from2153: - br i1 %t24, label %logic.end2155, label %logic.rhs2154 -logic.rhs2154: + br label %logic.rend2190 +logic.rend2190: + br label %logic.end2189 +logic.end2189: + %t24 = phi i1 [ true, %logic.from2187 ], [ %t23, %logic.rend2190 ] + br label %logic.from2191 +logic.from2191: + br i1 %t24, label %logic.end2193, label %logic.rhs2192 +logic.rhs2192: %t25 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t25, ptr %a26 - store { ptr, i64, i64 } { ptr @.str.1277, i64 3, i64 0 }, ptr %a27 + store { ptr, i64, i64 } { ptr @.str.1297, i64 3, i64 0 }, ptr %a27 %t28 = call i32 @finch_str_eq(ptr %a26, ptr %a27) %t29 = icmp ne i32 %t28, 0 - br label %logic.rend2156 -logic.rend2156: - br label %logic.end2155 -logic.end2155: - %t30 = phi i1 [ true, %logic.from2153 ], [ %t29, %logic.rend2156 ] + br label %logic.rend2194 +logic.rend2194: + br label %logic.end2193 +logic.end2193: + %t30 = phi i1 [ true, %logic.from2191 ], [ %t29, %logic.rend2194 ] call void @finch_str_drop(ptr %a7) ret i1 %t30 } @@ -24718,17 +25357,17 @@ entry: store %S.ast.Type %p0, ptr %a1 %t2 = load %S.ast.Type, ptr %a1 %t3 = call i1 @finch.gen.isSigned(%S.ast.Type %t2) - br label %logic.from2157 -logic.from2157: - br i1 %t3, label %logic.end2159, label %logic.rhs2158 -logic.rhs2158: + br label %logic.from2195 +logic.from2195: + br i1 %t3, label %logic.end2197, label %logic.rhs2196 +logic.rhs2196: %t4 = load %S.ast.Type, ptr %a1 %t5 = call i1 @finch.gen.isUnsigned(%S.ast.Type %t4) - br label %logic.rend2160 -logic.rend2160: - br label %logic.end2159 -logic.end2159: - %t6 = phi i1 [ true, %logic.from2157 ], [ %t5, %logic.rend2160 ] + br label %logic.rend2198 +logic.rend2198: + br label %logic.end2197 +logic.end2197: + %t6 = phi i1 [ true, %logic.from2195 ], [ %t5, %logic.rend2198 ] ret i1 %t6 } @@ -24743,24 +25382,24 @@ entry: %t2 = getelementptr inbounds %S.ast.Type, ptr %a1, i32 0, i32 0 %t3 = load { ptr, i64, i64 }, ptr %t2 store { ptr, i64, i64 } %t3, ptr %a4 - store { ptr, i64, i64 } { ptr @.str.1278, i64 5, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.1298, i64 5, i64 0 }, ptr %a5 %t6 = call i32 @finch_str_eq(ptr %a4, ptr %a5) %t7 = icmp ne i32 %t6, 0 - br label %logic.from2161 -logic.from2161: - br i1 %t7, label %logic.end2163, label %logic.rhs2162 -logic.rhs2162: + br label %logic.from2199 +logic.from2199: + br i1 %t7, label %logic.end2201, label %logic.rhs2200 +logic.rhs2200: %t8 = getelementptr inbounds %S.ast.Type, ptr %a1, i32 0, i32 0 %t9 = load { ptr, i64, i64 }, ptr %t8 store { ptr, i64, i64 } %t9, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.1279, i64 3, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.1299, i64 3, i64 0 }, ptr %a11 %t12 = call i32 @finch_str_eq(ptr %a10, ptr %a11) %t13 = icmp ne i32 %t12, 0 - br label %logic.rend2164 -logic.rend2164: - br label %logic.end2163 -logic.end2163: - %t14 = phi i1 [ true, %logic.from2161 ], [ %t13, %logic.rend2164 ] + br label %logic.rend2202 +logic.rend2202: + br label %logic.end2201 +logic.end2201: + %t14 = phi i1 [ true, %logic.from2199 ], [ %t13, %logic.rend2202 ] ret i1 %t14 } @@ -24770,17 +25409,17 @@ entry: store %S.ast.Type %p0, ptr %a1 %t2 = load %S.ast.Type, ptr %a1 %t3 = call i1 @finch.gen.isInt(%S.ast.Type %t2) - br label %logic.from2165 -logic.from2165: - br i1 %t3, label %logic.end2167, label %logic.rhs2166 -logic.rhs2166: + br label %logic.from2203 +logic.from2203: + br i1 %t3, label %logic.end2205, label %logic.rhs2204 +logic.rhs2204: %t4 = load %S.ast.Type, ptr %a1 %t5 = call i1 @finch.gen.isFloat(%S.ast.Type %t4) - br label %logic.rend2168 -logic.rend2168: - br label %logic.end2167 -logic.end2167: - %t6 = phi i1 [ true, %logic.from2165 ], [ %t5, %logic.rend2168 ] + br label %logic.rend2206 +logic.rend2206: + br label %logic.end2205 +logic.end2205: + %t6 = phi i1 [ true, %logic.from2203 ], [ %t5, %logic.rend2206 ] ret i1 %t6 } @@ -24817,114 +25456,114 @@ entry: store { ptr, i64, i64 } %t6, ptr %a7 %t8 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t8, ptr %a9 - store { ptr, i64, i64 } { ptr @.str.1280, i64 4, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.1300, i64 4, i64 0 }, ptr %a10 %t11 = call i32 @finch_str_eq(ptr %a9, ptr %a10) %t12 = icmp ne i32 %t11, 0 - br i1 %t12, label %then2169, label %endif2171 -then2169: + br i1 %t12, label %then2207, label %endif2209 +then2207: call void @finch_str_drop(ptr %a7) ret i64 1 -endif2171: +endif2209: %t13 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t13, ptr %a14 - store { ptr, i64, i64 } { ptr @.str.1281, i64 4, i64 0 }, ptr %a15 + store { ptr, i64, i64 } { ptr @.str.1301, i64 4, i64 0 }, ptr %a15 %t16 = call i32 @finch_str_eq(ptr %a14, ptr %a15) %t17 = icmp ne i32 %t16, 0 - br label %logic.from2172 -logic.from2172: - br i1 %t17, label %logic.end2174, label %logic.rhs2173 -logic.rhs2173: + br label %logic.from2210 +logic.from2210: + br i1 %t17, label %logic.end2212, label %logic.rhs2211 +logic.rhs2211: %t18 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t18, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.1282, i64 2, i64 0 }, ptr %a20 + store { ptr, i64, i64 } { ptr @.str.1302, i64 2, i64 0 }, ptr %a20 %t21 = call i32 @finch_str_eq(ptr %a19, ptr %a20) %t22 = icmp ne i32 %t21, 0 - br label %logic.rend2175 -logic.rend2175: - br label %logic.end2174 -logic.end2174: - %t23 = phi i1 [ true, %logic.from2172 ], [ %t22, %logic.rend2175 ] - br label %logic.from2176 -logic.from2176: - br i1 %t23, label %logic.end2178, label %logic.rhs2177 -logic.rhs2177: + br label %logic.rend2213 +logic.rend2213: + br label %logic.end2212 +logic.end2212: + %t23 = phi i1 [ true, %logic.from2210 ], [ %t22, %logic.rend2213 ] + br label %logic.from2214 +logic.from2214: + br i1 %t23, label %logic.end2216, label %logic.rhs2215 +logic.rhs2215: %t24 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t24, ptr %a25 - store { ptr, i64, i64 } { ptr @.str.1283, i64 2, i64 0 }, ptr %a26 + store { ptr, i64, i64 } { ptr @.str.1303, i64 2, i64 0 }, ptr %a26 %t27 = call i32 @finch_str_eq(ptr %a25, ptr %a26) %t28 = icmp ne i32 %t27, 0 - br label %logic.rend2179 -logic.rend2179: - br label %logic.end2178 -logic.end2178: - %t29 = phi i1 [ true, %logic.from2176 ], [ %t28, %logic.rend2179 ] - br i1 %t29, label %then2180, label %endif2182 -then2180: + br label %logic.rend2217 +logic.rend2217: + br label %logic.end2216 +logic.end2216: + %t29 = phi i1 [ true, %logic.from2214 ], [ %t28, %logic.rend2217 ] + br i1 %t29, label %then2218, label %endif2220 +then2218: call void @finch_str_drop(ptr %a7) ret i64 8 -endif2182: +endif2220: %t30 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t30, ptr %a31 - store { ptr, i64, i64 } { ptr @.str.1284, i64 3, i64 0 }, ptr %a32 + store { ptr, i64, i64 } { ptr @.str.1304, i64 3, i64 0 }, ptr %a32 %t33 = call i32 @finch_str_eq(ptr %a31, ptr %a32) %t34 = icmp ne i32 %t33, 0 - br label %logic.from2183 -logic.from2183: - br i1 %t34, label %logic.end2185, label %logic.rhs2184 -logic.rhs2184: + br label %logic.from2221 +logic.from2221: + br i1 %t34, label %logic.end2223, label %logic.rhs2222 +logic.rhs2222: %t35 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t35, ptr %a36 - store { ptr, i64, i64 } { ptr @.str.1285, i64 3, i64 0 }, ptr %a37 + store { ptr, i64, i64 } { ptr @.str.1305, i64 3, i64 0 }, ptr %a37 %t38 = call i32 @finch_str_eq(ptr %a36, ptr %a37) %t39 = icmp ne i32 %t38, 0 - br label %logic.rend2186 -logic.rend2186: - br label %logic.end2185 -logic.end2185: - %t40 = phi i1 [ true, %logic.from2183 ], [ %t39, %logic.rend2186 ] - br i1 %t40, label %then2187, label %endif2189 -then2187: + br label %logic.rend2224 +logic.rend2224: + br label %logic.end2223 +logic.end2223: + %t40 = phi i1 [ true, %logic.from2221 ], [ %t39, %logic.rend2224 ] + br i1 %t40, label %then2225, label %endif2227 +then2225: call void @finch_str_drop(ptr %a7) ret i64 16 -endif2189: +endif2227: %t41 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t41, ptr %a42 - store { ptr, i64, i64 } { ptr @.str.1286, i64 3, i64 0 }, ptr %a43 + store { ptr, i64, i64 } { ptr @.str.1306, i64 3, i64 0 }, ptr %a43 %t44 = call i32 @finch_str_eq(ptr %a42, ptr %a43) %t45 = icmp ne i32 %t44, 0 - br label %logic.from2190 -logic.from2190: - br i1 %t45, label %logic.end2192, label %logic.rhs2191 -logic.rhs2191: + br label %logic.from2228 +logic.from2228: + br i1 %t45, label %logic.end2230, label %logic.rhs2229 +logic.rhs2229: %t46 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t46, ptr %a47 - store { ptr, i64, i64 } { ptr @.str.1287, i64 3, i64 0 }, ptr %a48 + store { ptr, i64, i64 } { ptr @.str.1307, i64 3, i64 0 }, ptr %a48 %t49 = call i32 @finch_str_eq(ptr %a47, ptr %a48) %t50 = icmp ne i32 %t49, 0 - br label %logic.rend2193 -logic.rend2193: - br label %logic.end2192 -logic.end2192: - %t51 = phi i1 [ true, %logic.from2190 ], [ %t50, %logic.rend2193 ] - br label %logic.from2194 -logic.from2194: - br i1 %t51, label %logic.end2196, label %logic.rhs2195 -logic.rhs2195: + br label %logic.rend2231 +logic.rend2231: + br label %logic.end2230 +logic.end2230: + %t51 = phi i1 [ true, %logic.from2228 ], [ %t50, %logic.rend2231 ] + br label %logic.from2232 +logic.from2232: + br i1 %t51, label %logic.end2234, label %logic.rhs2233 +logic.rhs2233: %t52 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t52, ptr %a53 - store { ptr, i64, i64 } { ptr @.str.1288, i64 3, i64 0 }, ptr %a54 + store { ptr, i64, i64 } { ptr @.str.1308, i64 3, i64 0 }, ptr %a54 %t55 = call i32 @finch_str_eq(ptr %a53, ptr %a54) %t56 = icmp ne i32 %t55, 0 - br label %logic.rend2197 -logic.rend2197: - br label %logic.end2196 -logic.end2196: - %t57 = phi i1 [ true, %logic.from2194 ], [ %t56, %logic.rend2197 ] - br i1 %t57, label %then2198, label %endif2200 -then2198: + br label %logic.rend2235 +logic.rend2235: + br label %logic.end2234 +logic.end2234: + %t57 = phi i1 [ true, %logic.from2232 ], [ %t56, %logic.rend2235 ] + br i1 %t57, label %then2236, label %endif2238 +then2236: call void @finch_str_drop(ptr %a7) ret i64 32 -endif2200: +endif2238: call void @finch_str_drop(ptr %a7) ret i64 64 } @@ -24938,39 +25577,39 @@ entry: %t3 = load %S.ast.Type, ptr %a1 %t4 = call i1 @finch.gen.isInt(%S.ast.Type %t3) %t5 = xor i1 %t4, true - br label %logic.from2201 -logic.from2201: - br i1 %t5, label %logic.end2203, label %logic.rhs2202 -logic.rhs2202: + br label %logic.from2239 +logic.from2239: + br i1 %t5, label %logic.end2241, label %logic.rhs2240 +logic.rhs2240: %t6 = load %S.ast.Type, ptr %a2 %t7 = call i1 @finch.gen.isInt(%S.ast.Type %t6) %t8 = xor i1 %t7, true - br label %logic.rend2204 -logic.rend2204: - br label %logic.end2203 -logic.end2203: - %t9 = phi i1 [ true, %logic.from2201 ], [ %t8, %logic.rend2204 ] - br i1 %t9, label %then2205, label %endif2207 -then2205: + br label %logic.rend2242 +logic.rend2242: + br label %logic.end2241 +logic.end2241: + %t9 = phi i1 [ true, %logic.from2239 ], [ %t8, %logic.rend2242 ] + br i1 %t9, label %then2243, label %endif2245 +then2243: ret i1 false -endif2207: +endif2245: %t10 = load %S.ast.Type, ptr %a1 %t11 = call i1 @finch.gen.isSigned(%S.ast.Type %t10) - br label %logic.from2208 -logic.from2208: - br i1 %t11, label %logic.rhs2209, label %logic.end2210 -logic.rhs2209: + br label %logic.from2246 +logic.from2246: + br i1 %t11, label %logic.rhs2247, label %logic.end2248 +logic.rhs2247: %t12 = load %S.ast.Type, ptr %a2 %t13 = call i1 @finch.gen.isUnsigned(%S.ast.Type %t12) - br label %logic.rend2211 -logic.rend2211: - br label %logic.end2210 -logic.end2210: - %t14 = phi i1 [ false, %logic.from2208 ], [ %t13, %logic.rend2211 ] - br i1 %t14, label %then2212, label %endif2214 -then2212: + br label %logic.rend2249 +logic.rend2249: + br label %logic.end2248 +logic.end2248: + %t14 = phi i1 [ false, %logic.from2246 ], [ %t13, %logic.rend2249 ] + br i1 %t14, label %then2250, label %endif2252 +then2250: ret i1 false -endif2214: +endif2252: %t15 = load %S.ast.Type, ptr %a2 %t16 = call i64 @finch.gen.bitsOf(%S.ast.Type %t15) %t17 = load %S.ast.Type, ptr %a1 @@ -24994,33 +25633,33 @@ entry: %t4 = load %S.ast.Type, ptr %a3 %t5 = call i1 @finch.gen.isInt(%S.ast.Type %t4) %t6 = xor i1 %t5, true - br i1 %t6, label %then2215, label %endif2217 -then2215: + br i1 %t6, label %then2253, label %endif2255 +then2253: ret i1 false -endif2217: +endif2255: %t7 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t7, ptr %a8 - %t9 = call i64 @finch_str_to_int(ptr %a8, ptr @.str.1289, i64 447) + %t9 = call i64 @finch_str_to_int(ptr %a8, ptr @.str.1309, i64 464) store i64 %t9, ptr %a10 %t11 = load %S.ast.Type, ptr %a3 %t12 = call i64 @finch.gen.bitsOf(%S.ast.Type %t11) store i64 %t12, ptr %a13 %t14 = load i64, ptr %a10 %t15 = icmp slt i64 %t14, 0 - br i1 %t15, label %then2218, label %endif2220 -then2218: + br i1 %t15, label %then2256, label %endif2258 +then2256: %t16 = load %S.ast.Type, ptr %a3 %t17 = call i1 @finch.gen.isUnsigned(%S.ast.Type %t16) - br i1 %t17, label %then2221, label %endif2223 -then2221: + br i1 %t17, label %then2259, label %endif2261 +then2259: ret i1 false -endif2223: +endif2261: %t18 = load i64, ptr %a13 %t19 = icmp eq i64 %t18, 64 - br i1 %t19, label %then2224, label %endif2226 -then2224: + br i1 %t19, label %then2262, label %endif2264 +then2262: ret i1 true -endif2226: +endif2264: %t20 = load i64, ptr %a10 %t21 = load i64, ptr %a13 %t22 = sub i64 %t21, 1 @@ -25028,28 +25667,28 @@ endif2226: %t24 = sub i64 0, %t23 %t25 = icmp sge i64 %t20, %t24 ret i1 %t25 -endif2220: +endif2258: %t26 = load i64, ptr %a13 %t27 = icmp eq i64 %t26, 64 - br i1 %t27, label %then2227, label %endif2229 -then2227: + br i1 %t27, label %then2265, label %endif2267 +then2265: ret i1 true -endif2229: +endif2267: %t28 = load i64, ptr %a13 %t29 = shl i64 1, %t28 %t30 = sub i64 %t29, 1 store i64 %t30, ptr %a31 %t32 = load %S.ast.Type, ptr %a3 %t33 = call i1 @finch.gen.isSigned(%S.ast.Type %t32) - br i1 %t33, label %then2230, label %endif2232 -then2230: + br i1 %t33, label %then2268, label %endif2270 +then2268: %t34 = load i64, ptr %a13 %t35 = sub i64 %t34, 1 %t36 = shl i64 1, %t35 %t37 = sub i64 %t36, 1 store i64 %t37, ptr %a31 - br label %endif2232 -endif2232: + br label %endif2270 +endif2270: %t38 = load i64, ptr %a10 %t39 = load i64, ptr %a31 %t40 = icmp sle i64 %t38, %t39 @@ -25071,38 +25710,38 @@ entry: store { ptr, i64, i64 } %p2, ptr %a3 %t4 = load ptr, ptr %a1 %t5 = icmp eq ptr %t4, null - br i1 %t5, label %panic2233, label %ok2234 -panic2233: - call void @finch_panic(ptr @.str.1290, i64 469, ptr @.str.1291) + br i1 %t5, label %panic2271, label %ok2272 +panic2271: + call void @finch_panic(ptr @.str.1310, i64 486, ptr @.str.1311) unreachable -ok2234: +ok2272: %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 16 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t6, i32 0, i32 1 %t8 = load i64, ptr %t7 store i64 0, ptr %a9 - br label %for.cond2235 -for.cond2235: + br label %for.cond2273 +for.cond2273: %t10 = load i64, ptr %a9 %t11 = icmp slt i64 %t10, %t8 - br i1 %t11, label %for.body2236, label %for.end2238 -for.body2236: + br i1 %t11, label %for.body2274, label %for.end2276 +for.body2274: %t12 = load ptr, ptr %a1 %t13 = icmp eq ptr %t12, null - br i1 %t13, label %panic2239, label %ok2240 -panic2239: - call void @finch_panic(ptr @.str.1292, i64 470, ptr @.str.1293) + br i1 %t13, label %panic2277, label %ok2278 +panic2277: + call void @finch_panic(ptr @.str.1312, i64 487, ptr @.str.1313) unreachable -ok2240: +ok2278: %t14 = getelementptr inbounds %S.gen.Gen, ptr %t12, i32 0, i32 16 %t15 = load i64, ptr %a9 %t16 = load { ptr, i64, i64 }, ptr %t14 %t17 = extractvalue { ptr, i64, i64 } %t16, 1 %t18 = icmp uge i64 %t15, %t17 - br i1 %t18, label %range2241, label %inrange2242 -range2241: - call void @finch_panic_index(ptr @.str.1294, i64 470, i64 %t15, i64 %t17) + br i1 %t18, label %range2279, label %inrange2280 +range2279: + call void @finch_panic_index(ptr @.str.1314, i64 487, i64 %t15, i64 %t17) unreachable -inrange2242: +inrange2280: %t19 = extractvalue { ptr, i64, i64 } %t16, 0 %t20 = getelementptr inbounds %S.gen.StructDef, ptr %t19, i64 %t15 %t21 = getelementptr inbounds %S.gen.StructDef, ptr %t20, i32 0, i32 0 @@ -25112,27 +25751,27 @@ inrange2242: store { ptr, i64, i64 } %t23, ptr %a25 %t26 = call i32 @finch_str_eq(ptr %a24, ptr %a25) %t27 = icmp ne i32 %t26, 0 - br label %logic.from2243 -logic.from2243: - br i1 %t27, label %logic.rhs2244, label %logic.end2245 -logic.rhs2244: + br label %logic.from2281 +logic.from2281: + br i1 %t27, label %logic.rhs2282, label %logic.end2283 +logic.rhs2282: %t28 = load ptr, ptr %a1 %t29 = icmp eq ptr %t28, null - br i1 %t29, label %panic2246, label %ok2247 -panic2246: - call void @finch_panic(ptr @.str.1295, i64 470, ptr @.str.1296) + br i1 %t29, label %panic2284, label %ok2285 +panic2284: + call void @finch_panic(ptr @.str.1315, i64 487, ptr @.str.1316) unreachable -ok2247: +ok2285: %t30 = getelementptr inbounds %S.gen.Gen, ptr %t28, i32 0, i32 16 %t31 = load i64, ptr %a9 %t32 = load { ptr, i64, i64 }, ptr %t30 %t33 = extractvalue { ptr, i64, i64 } %t32, 1 %t34 = icmp uge i64 %t31, %t33 - br i1 %t34, label %range2248, label %inrange2249 -range2248: - call void @finch_panic_index(ptr @.str.1297, i64 470, i64 %t31, i64 %t33) + br i1 %t34, label %range2286, label %inrange2287 +range2286: + call void @finch_panic_index(ptr @.str.1317, i64 487, i64 %t31, i64 %t33) unreachable -inrange2249: +inrange2287: %t35 = extractvalue { ptr, i64, i64 } %t32, 0 %t36 = getelementptr inbounds %S.gen.StructDef, ptr %t35, i64 %t31 %t37 = getelementptr inbounds %S.gen.StructDef, ptr %t36, i32 0, i32 1 @@ -25142,23 +25781,23 @@ inrange2249: store { ptr, i64, i64 } %t39, ptr %a41 %t42 = call i32 @finch_str_eq(ptr %a40, ptr %a41) %t43 = icmp ne i32 %t42, 0 - br label %logic.rend2250 -logic.rend2250: - br label %logic.end2245 -logic.end2245: - %t44 = phi i1 [ false, %logic.from2243 ], [ %t43, %logic.rend2250 ] - br i1 %t44, label %then2251, label %endif2253 -then2251: + br label %logic.rend2288 +logic.rend2288: + br label %logic.end2283 +logic.end2283: + %t44 = phi i1 [ false, %logic.from2281 ], [ %t43, %logic.rend2288 ] + br i1 %t44, label %then2289, label %endif2291 +then2289: %t45 = load i64, ptr %a9 ret i64 %t45 -endif2253: - br label %for.step2237 -for.step2237: +endif2291: + br label %for.step2275 +for.step2275: %t46 = load i64, ptr %a9 %t47 = add i64 %t46, 1 store i64 %t47, ptr %a9 - br label %for.cond2235 -for.end2238: + br label %for.cond2273 +for.end2276: ret i64 -1 } @@ -25177,38 +25816,38 @@ entry: store { ptr, i64, i64 } %p2, ptr %a3 %t4 = load ptr, ptr %a1 %t5 = icmp eq ptr %t4, null - br i1 %t5, label %panic2254, label %ok2255 -panic2254: - call void @finch_panic(ptr @.str.1298, i64 478, ptr @.str.1299) + br i1 %t5, label %panic2292, label %ok2293 +panic2292: + call void @finch_panic(ptr @.str.1318, i64 495, ptr @.str.1319) unreachable -ok2255: +ok2293: %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 21 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t6, i32 0, i32 1 %t8 = load i64, ptr %t7 store i64 0, ptr %a9 - br label %for.cond2256 -for.cond2256: + br label %for.cond2294 +for.cond2294: %t10 = load i64, ptr %a9 %t11 = icmp slt i64 %t10, %t8 - br i1 %t11, label %for.body2257, label %for.end2259 -for.body2257: + br i1 %t11, label %for.body2295, label %for.end2297 +for.body2295: %t12 = load ptr, ptr %a1 %t13 = icmp eq ptr %t12, null - br i1 %t13, label %panic2260, label %ok2261 -panic2260: - call void @finch_panic(ptr @.str.1300, i64 479, ptr @.str.1301) + br i1 %t13, label %panic2298, label %ok2299 +panic2298: + call void @finch_panic(ptr @.str.1320, i64 496, ptr @.str.1321) unreachable -ok2261: +ok2299: %t14 = getelementptr inbounds %S.gen.Gen, ptr %t12, i32 0, i32 21 %t15 = load i64, ptr %a9 %t16 = load { ptr, i64, i64 }, ptr %t14 %t17 = extractvalue { ptr, i64, i64 } %t16, 1 %t18 = icmp uge i64 %t15, %t17 - br i1 %t18, label %range2262, label %inrange2263 -range2262: - call void @finch_panic_index(ptr @.str.1302, i64 479, i64 %t15, i64 %t17) + br i1 %t18, label %range2300, label %inrange2301 +range2300: + call void @finch_panic_index(ptr @.str.1322, i64 496, i64 %t15, i64 %t17) unreachable -inrange2263: +inrange2301: %t19 = extractvalue { ptr, i64, i64 } %t16, 0 %t20 = getelementptr inbounds %S.gen.EnumDef, ptr %t19, i64 %t15 %t21 = getelementptr inbounds %S.gen.EnumDef, ptr %t20, i32 0, i32 0 @@ -25218,27 +25857,27 @@ inrange2263: store { ptr, i64, i64 } %t23, ptr %a25 %t26 = call i32 @finch_str_eq(ptr %a24, ptr %a25) %t27 = icmp ne i32 %t26, 0 - br label %logic.from2264 -logic.from2264: - br i1 %t27, label %logic.rhs2265, label %logic.end2266 -logic.rhs2265: + br label %logic.from2302 +logic.from2302: + br i1 %t27, label %logic.rhs2303, label %logic.end2304 +logic.rhs2303: %t28 = load ptr, ptr %a1 %t29 = icmp eq ptr %t28, null - br i1 %t29, label %panic2267, label %ok2268 -panic2267: - call void @finch_panic(ptr @.str.1303, i64 479, ptr @.str.1304) + br i1 %t29, label %panic2305, label %ok2306 +panic2305: + call void @finch_panic(ptr @.str.1323, i64 496, ptr @.str.1324) unreachable -ok2268: +ok2306: %t30 = getelementptr inbounds %S.gen.Gen, ptr %t28, i32 0, i32 21 %t31 = load i64, ptr %a9 %t32 = load { ptr, i64, i64 }, ptr %t30 %t33 = extractvalue { ptr, i64, i64 } %t32, 1 %t34 = icmp uge i64 %t31, %t33 - br i1 %t34, label %range2269, label %inrange2270 -range2269: - call void @finch_panic_index(ptr @.str.1305, i64 479, i64 %t31, i64 %t33) + br i1 %t34, label %range2307, label %inrange2308 +range2307: + call void @finch_panic_index(ptr @.str.1325, i64 496, i64 %t31, i64 %t33) unreachable -inrange2270: +inrange2308: %t35 = extractvalue { ptr, i64, i64 } %t32, 0 %t36 = getelementptr inbounds %S.gen.EnumDef, ptr %t35, i64 %t31 %t37 = getelementptr inbounds %S.gen.EnumDef, ptr %t36, i32 0, i32 1 @@ -25248,23 +25887,129 @@ inrange2270: store { ptr, i64, i64 } %t39, ptr %a41 %t42 = call i32 @finch_str_eq(ptr %a40, ptr %a41) %t43 = icmp ne i32 %t42, 0 - br label %logic.rend2271 -logic.rend2271: - br label %logic.end2266 -logic.end2266: - %t44 = phi i1 [ false, %logic.from2264 ], [ %t43, %logic.rend2271 ] - br i1 %t44, label %then2272, label %endif2274 -then2272: + br label %logic.rend2309 +logic.rend2309: + br label %logic.end2304 +logic.end2304: + %t44 = phi i1 [ false, %logic.from2302 ], [ %t43, %logic.rend2309 ] + br i1 %t44, label %then2310, label %endif2312 +then2310: %t45 = load i64, ptr %a9 ret i64 %t45 -endif2274: - br label %for.step2258 -for.step2258: +endif2312: + br label %for.step2296 +for.step2296: %t46 = load i64, ptr %a9 %t47 = add i64 %t46, 1 store i64 %t47, ptr %a9 - br label %for.cond2256 -for.end2259: + br label %for.cond2294 +for.end2297: + ret i64 -1 +} + +define internal i64 @finch.gen.findSum(ptr %p0, { ptr, i64, i64 } %p1, { ptr, i64, i64 } %p2) { +entry: + %a1 = alloca ptr, align 16 + %a2 = alloca { ptr, i64, i64 }, align 16 + %a3 = alloca { ptr, i64, i64 }, align 16 + %a9 = alloca i64, align 16 + %a24 = alloca { ptr, i64, i64 }, align 16 + %a25 = alloca { ptr, i64, i64 }, align 16 + %a40 = alloca { ptr, i64, i64 }, align 16 + %a41 = alloca { ptr, i64, i64 }, align 16 + store ptr %p0, ptr %a1 + store { ptr, i64, i64 } %p1, ptr %a2 + store { ptr, i64, i64 } %p2, ptr %a3 + %t4 = load ptr, ptr %a1 + %t5 = icmp eq ptr %t4, null + br i1 %t5, label %panic2313, label %ok2314 +panic2313: + call void @finch_panic(ptr @.str.1326, i64 504, ptr @.str.1327) + unreachable +ok2314: + %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 22 + %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t6, i32 0, i32 1 + %t8 = load i64, ptr %t7 + store i64 0, ptr %a9 + br label %for.cond2315 +for.cond2315: + %t10 = load i64, ptr %a9 + %t11 = icmp slt i64 %t10, %t8 + br i1 %t11, label %for.body2316, label %for.end2318 +for.body2316: + %t12 = load ptr, ptr %a1 + %t13 = icmp eq ptr %t12, null + br i1 %t13, label %panic2319, label %ok2320 +panic2319: + call void @finch_panic(ptr @.str.1328, i64 505, ptr @.str.1329) + unreachable +ok2320: + %t14 = getelementptr inbounds %S.gen.Gen, ptr %t12, i32 0, i32 22 + %t15 = load i64, ptr %a9 + %t16 = load { ptr, i64, i64 }, ptr %t14 + %t17 = extractvalue { ptr, i64, i64 } %t16, 1 + %t18 = icmp uge i64 %t15, %t17 + br i1 %t18, label %range2321, label %inrange2322 +range2321: + call void @finch_panic_index(ptr @.str.1330, i64 505, i64 %t15, i64 %t17) + unreachable +inrange2322: + %t19 = extractvalue { ptr, i64, i64 } %t16, 0 + %t20 = getelementptr inbounds %S.gen.SumDef, ptr %t19, i64 %t15 + %t21 = getelementptr inbounds %S.gen.SumDef, ptr %t20, i32 0, i32 0 + %t22 = load { ptr, i64, i64 }, ptr %t21 + %t23 = load { ptr, i64, i64 }, ptr %a2 + store { ptr, i64, i64 } %t22, ptr %a24 + store { ptr, i64, i64 } %t23, ptr %a25 + %t26 = call i32 @finch_str_eq(ptr %a24, ptr %a25) + %t27 = icmp ne i32 %t26, 0 + br label %logic.from2323 +logic.from2323: + br i1 %t27, label %logic.rhs2324, label %logic.end2325 +logic.rhs2324: + %t28 = load ptr, ptr %a1 + %t29 = icmp eq ptr %t28, null + br i1 %t29, label %panic2326, label %ok2327 +panic2326: + call void @finch_panic(ptr @.str.1331, i64 505, ptr @.str.1332) + unreachable +ok2327: + %t30 = getelementptr inbounds %S.gen.Gen, ptr %t28, i32 0, i32 22 + %t31 = load i64, ptr %a9 + %t32 = load { ptr, i64, i64 }, ptr %t30 + %t33 = extractvalue { ptr, i64, i64 } %t32, 1 + %t34 = icmp uge i64 %t31, %t33 + br i1 %t34, label %range2328, label %inrange2329 +range2328: + call void @finch_panic_index(ptr @.str.1333, i64 505, i64 %t31, i64 %t33) + unreachable +inrange2329: + %t35 = extractvalue { ptr, i64, i64 } %t32, 0 + %t36 = getelementptr inbounds %S.gen.SumDef, ptr %t35, i64 %t31 + %t37 = getelementptr inbounds %S.gen.SumDef, ptr %t36, i32 0, i32 1 + %t38 = load { ptr, i64, i64 }, ptr %t37 + %t39 = load { ptr, i64, i64 }, ptr %a3 + store { ptr, i64, i64 } %t38, ptr %a40 + store { ptr, i64, i64 } %t39, ptr %a41 + %t42 = call i32 @finch_str_eq(ptr %a40, ptr %a41) + %t43 = icmp ne i32 %t42, 0 + br label %logic.rend2330 +logic.rend2330: + br label %logic.end2325 +logic.end2325: + %t44 = phi i1 [ false, %logic.from2323 ], [ %t43, %logic.rend2330 ] + br i1 %t44, label %then2331, label %endif2333 +then2331: + %t45 = load i64, ptr %a9 + ret i64 %t45 +endif2333: + br label %for.step2317 +for.step2317: + %t46 = load i64, ptr %a9 + %t47 = add i64 %t46, 1 + store i64 %t47, ptr %a9 + br label %for.cond2315 +for.end2318: ret i64 -1 } @@ -25279,38 +26024,38 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic2275, label %ok2276 -panic2275: - call void @finch_panic(ptr @.str.1306, i64 487, ptr @.str.1307) + br i1 %t4, label %panic2334, label %ok2335 +panic2334: + call void @finch_panic(ptr @.str.1334, i64 513, ptr @.str.1335) unreachable -ok2276: +ok2335: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 0 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t7 = load i64, ptr %t6 store i64 0, ptr %a8 - br label %for.cond2277 -for.cond2277: + br label %for.cond2336 +for.cond2336: %t9 = load i64, ptr %a8 %t10 = icmp slt i64 %t9, %t7 - br i1 %t10, label %for.body2278, label %for.end2280 -for.body2278: + br i1 %t10, label %for.body2337, label %for.end2339 +for.body2337: %t11 = load ptr, ptr %a1 %t12 = icmp eq ptr %t11, null - br i1 %t12, label %panic2281, label %ok2282 -panic2281: - call void @finch_panic(ptr @.str.1308, i64 488, ptr @.str.1309) + br i1 %t12, label %panic2340, label %ok2341 +panic2340: + call void @finch_panic(ptr @.str.1336, i64 514, ptr @.str.1337) unreachable -ok2282: +ok2341: %t13 = getelementptr inbounds %S.gen.Gen, ptr %t11, i32 0, i32 0 %t14 = load i64, ptr %a8 %t15 = load { ptr, i64, i64 }, ptr %t13 %t16 = extractvalue { ptr, i64, i64 } %t15, 1 %t17 = icmp uge i64 %t14, %t16 - br i1 %t17, label %range2283, label %inrange2284 -range2283: - call void @finch_panic_index(ptr @.str.1310, i64 488, i64 %t14, i64 %t16) + br i1 %t17, label %range2342, label %inrange2343 +range2342: + call void @finch_panic_index(ptr @.str.1338, i64 514, i64 %t14, i64 %t16) unreachable -inrange2284: +inrange2343: %t18 = extractvalue { ptr, i64, i64 } %t15, 0 %t19 = getelementptr inbounds %S.ast.Program, ptr %t18, i64 %t14 %t20 = getelementptr inbounds %S.ast.Program, ptr %t19, i32 0, i32 0 @@ -25320,18 +26065,18 @@ inrange2284: store { ptr, i64, i64 } %t22, ptr %a24 %t25 = call i32 @finch_str_eq(ptr %a23, ptr %a24) %t26 = icmp ne i32 %t25, 0 - br i1 %t26, label %then2285, label %endif2287 -then2285: + br i1 %t26, label %then2344, label %endif2346 +then2344: %t27 = load i64, ptr %a8 ret i64 %t27 -endif2287: - br label %for.step2279 -for.step2279: +endif2346: + br label %for.step2338 +for.step2338: %t28 = load i64, ptr %a8 %t29 = add i64 %t28, 1 store i64 %t29, ptr %a8 - br label %for.cond2277 -for.end2280: + br label %for.cond2336 +for.end2339: ret i64 -1 } @@ -25347,31 +26092,31 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic2288, label %ok2289 -panic2288: - call void @finch_panic(ptr @.str.1311, i64 496, ptr @.str.1312) + br i1 %t4, label %panic2347, label %ok2348 +panic2347: + call void @finch_panic(ptr @.str.1339, i64 522, ptr @.str.1340) unreachable -ok2289: +ok2348: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 0 %t6 = load ptr, ptr %a1 %t7 = load ptr, ptr %a1 %t8 = icmp eq ptr %t7, null - br i1 %t8, label %panic2290, label %ok2291 -panic2290: - call void @finch_panic(ptr @.str.1313, i64 496, ptr @.str.1314) + br i1 %t8, label %panic2349, label %ok2350 +panic2349: + call void @finch_panic(ptr @.str.1341, i64 522, ptr @.str.1342) unreachable -ok2291: +ok2350: %t9 = getelementptr inbounds %S.gen.Gen, ptr %t7, i32 0, i32 14 %t10 = load { ptr, i64, i64 }, ptr %t9 %t11 = call i64 @finch.gen.progOf(ptr %t6, { ptr, i64, i64 } %t10) %t12 = load { ptr, i64, i64 }, ptr %t5 %t13 = extractvalue { ptr, i64, i64 } %t12, 1 %t14 = icmp uge i64 %t11, %t13 - br i1 %t14, label %range2292, label %inrange2293 -range2292: - call void @finch_panic_index(ptr @.str.1315, i64 496, i64 %t11, i64 %t13) + br i1 %t14, label %range2351, label %inrange2352 +range2351: + call void @finch_panic_index(ptr @.str.1343, i64 522, i64 %t11, i64 %t13) unreachable -inrange2293: +inrange2352: %t15 = extractvalue { ptr, i64, i64 } %t12, 0 %t16 = getelementptr inbounds %S.ast.Program, ptr %t15, i64 %t11 %t17 = getelementptr inbounds %S.ast.Program, ptr %t16, i32 0, i32 2 @@ -25381,27 +26126,27 @@ inrange2293: %t21 = load i64, ptr %t18 %t22 = load ptr, ptr %t17 store i64 0, ptr %a23 - br label %find.cond2294 -find.cond2294: + br label %find.cond2353 +find.cond2353: %t24 = load i64, ptr %a23 %t25 = icmp slt i64 %t24, %t21 - br i1 %t25, label %find.body2295, label %find.end2298 -find.body2295: + br i1 %t25, label %find.body2354, label %find.end2357 +find.body2354: %t26 = getelementptr inbounds { ptr, i64, i64 }, ptr %t22, i64 %t24 %t27 = load { ptr, i64, i64 }, ptr %t26 store { ptr, i64, i64 } %t27, ptr %a28 store { ptr, i64, i64 } %t19, ptr %a29 %t30 = call i32 @finch_str_eq(ptr %a28, ptr %a29) %t31 = icmp ne i32 %t30, 0 - br i1 %t31, label %find.hit2296, label %find.next2297 -find.hit2296: + br i1 %t31, label %find.hit2355, label %find.next2356 +find.hit2355: store i64 %t24, ptr %a20 - br label %find.end2298 -find.next2297: + br label %find.end2357 +find.next2356: %t32 = add i64 %t24, 1 store i64 %t32, ptr %a23 - br label %find.cond2294 -find.end2298: + br label %find.cond2353 +find.end2357: %t33 = load i64, ptr %a20 %t34 = icmp sge i64 %t33, 0 ret i1 %t34 @@ -25540,21 +26285,21 @@ entry: %t4 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t5 = load { ptr, i64, i64 }, ptr %t4 store { ptr, i64, i64 } %t5, ptr %a6 - store { ptr, i64, i64 } { ptr @.str.1316, i64 5, i64 0 }, ptr %a7 + store { ptr, i64, i64 } { ptr @.str.1344, i64 5, i64 0 }, ptr %a7 %t8 = call i32 @finch_str_eq(ptr %a6, ptr %a7) %t9 = icmp ne i32 %t8, 0 - br i1 %t9, label %then2299, label %endif2301 -then2299: + br i1 %t9, label %then2358, label %endif2360 +then2358: %t10 = load ptr, ptr %a1 %t11 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t12 = load { ptr, i64, i64 }, ptr %t11 %t13 = extractvalue { ptr, i64, i64 } %t12, 1 %t14 = icmp uge i64 0, %t13 - br i1 %t14, label %range2302, label %inrange2303 -range2302: - call void @finch_panic_index(ptr @.str.1317, i64 501, i64 0, i64 %t13) + br i1 %t14, label %range2361, label %inrange2362 +range2361: + call void @finch_panic_index(ptr @.str.1345, i64 527, i64 0, i64 %t13) unreachable -inrange2303: +inrange2362: %t15 = extractvalue { ptr, i64, i64 } %t12, 0 %t16 = getelementptr inbounds %S.ast.Type, ptr %t15, i64 0 %t17 = load %S.ast.Type, ptr %t16 @@ -25564,25 +26309,25 @@ inrange2303: store %S.ast.Type %t19, ptr %a21 call void @finch.drop.S_ast_Type(ptr %a21) ret %S.ast.Type %t20 -endif2301: +endif2360: %t22 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t23 = load { ptr, i64, i64 }, ptr %t22 store { ptr, i64, i64 } %t23, ptr %a24 - store { ptr, i64, i64 } { ptr @.str.1318, i64 3, i64 0 }, ptr %a25 + store { ptr, i64, i64 } { ptr @.str.1346, i64 3, i64 0 }, ptr %a25 %t26 = call i32 @finch_str_eq(ptr %a24, ptr %a25) %t27 = icmp ne i32 %t26, 0 - br i1 %t27, label %then2304, label %endif2306 -then2304: + br i1 %t27, label %then2363, label %endif2365 +then2363: %t28 = load ptr, ptr %a1 %t29 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t30 = load { ptr, i64, i64 }, ptr %t29 %t31 = extractvalue { ptr, i64, i64 } %t30, 1 %t32 = icmp uge i64 0, %t31 - br i1 %t32, label %range2307, label %inrange2308 -range2307: - call void @finch_panic_index(ptr @.str.1319, i64 504, i64 0, i64 %t31) + br i1 %t32, label %range2366, label %inrange2367 +range2366: + call void @finch_panic_index(ptr @.str.1347, i64 530, i64 0, i64 %t31) unreachable -inrange2308: +inrange2367: %t33 = extractvalue { ptr, i64, i64 } %t30, 0 %t34 = getelementptr inbounds %S.ast.Type, ptr %t33, i64 0 %t35 = load %S.ast.Type, ptr %t34 @@ -25592,73 +26337,73 @@ inrange2308: %t39 = load %S.ast.Type, ptr %a38 %t40 = call i1 @finch.gen.isInt(%S.ast.Type %t39) %t41 = xor i1 %t40, true - br label %logic.from2309 -logic.from2309: - br i1 %t41, label %logic.rhs2310, label %logic.end2311 -logic.rhs2310: + br label %logic.from2368 +logic.from2368: + br i1 %t41, label %logic.rhs2369, label %logic.end2370 +logic.rhs2369: %t42 = getelementptr inbounds %S.ast.Type, ptr %a38, i32 0, i32 0 %t43 = load { ptr, i64, i64 }, ptr %t42 store { ptr, i64, i64 } %t43, ptr %a44 - store { ptr, i64, i64 } { ptr @.str.1320, i64 4, i64 0 }, ptr %a45 + store { ptr, i64, i64 } { ptr @.str.1348, i64 4, i64 0 }, ptr %a45 %t46 = call i32 @finch_str_eq(ptr %a44, ptr %a45) %t47 = icmp eq i32 %t46, 0 - br label %logic.rend2312 -logic.rend2312: - br label %logic.end2311 -logic.end2311: - %t48 = phi i1 [ false, %logic.from2309 ], [ %t47, %logic.rend2312 ] - br label %logic.from2313 -logic.from2313: - br i1 %t48, label %logic.rhs2314, label %logic.end2315 -logic.rhs2314: + br label %logic.rend2371 +logic.rend2371: + br label %logic.end2370 +logic.end2370: + %t48 = phi i1 [ false, %logic.from2368 ], [ %t47, %logic.rend2371 ] + br label %logic.from2372 +logic.from2372: + br i1 %t48, label %logic.rhs2373, label %logic.end2374 +logic.rhs2373: %t49 = getelementptr inbounds %S.ast.Type, ptr %a38, i32 0, i32 0 %t50 = load { ptr, i64, i64 }, ptr %t49 store { ptr, i64, i64 } %t50, ptr %a51 - store { ptr, i64, i64 } { ptr @.str.1321, i64 4, i64 0 }, ptr %a52 + store { ptr, i64, i64 } { ptr @.str.1349, i64 4, i64 0 }, ptr %a52 %t53 = call i32 @finch_str_eq(ptr %a51, ptr %a52) %t54 = icmp eq i32 %t53, 0 - br label %logic.rend2316 -logic.rend2316: - br label %logic.end2315 -logic.end2315: - %t55 = phi i1 [ false, %logic.from2313 ], [ %t54, %logic.rend2316 ] - br label %logic.from2317 -logic.from2317: - br i1 %t55, label %logic.rhs2318, label %logic.end2319 -logic.rhs2318: + br label %logic.rend2375 +logic.rend2375: + br label %logic.end2374 +logic.end2374: + %t55 = phi i1 [ false, %logic.from2372 ], [ %t54, %logic.rend2375 ] + br label %logic.from2376 +logic.from2376: + br i1 %t55, label %logic.rhs2377, label %logic.end2378 +logic.rhs2377: %t56 = getelementptr inbounds %S.ast.Type, ptr %a38, i32 0, i32 0 %t57 = load { ptr, i64, i64 }, ptr %t56 store { ptr, i64, i64 } %t57, ptr %a58 - store { ptr, i64, i64 } { ptr @.str.1322, i64 3, i64 0 }, ptr %a59 + store { ptr, i64, i64 } { ptr @.str.1350, i64 3, i64 0 }, ptr %a59 %t60 = call i32 @finch_str_eq(ptr %a58, ptr %a59) %t61 = icmp eq i32 %t60, 0 - br label %logic.rend2320 -logic.rend2320: - br label %logic.end2319 -logic.end2319: - %t62 = phi i1 [ false, %logic.from2317 ], [ %t61, %logic.rend2320 ] - br label %logic.from2321 -logic.from2321: - br i1 %t62, label %logic.rhs2322, label %logic.end2323 -logic.rhs2322: + br label %logic.rend2379 +logic.rend2379: + br label %logic.end2378 +logic.end2378: + %t62 = phi i1 [ false, %logic.from2376 ], [ %t61, %logic.rend2379 ] + br label %logic.from2380 +logic.from2380: + br i1 %t62, label %logic.rhs2381, label %logic.end2382 +logic.rhs2381: %t63 = getelementptr inbounds %S.ast.Type, ptr %a38, i32 0, i32 0 %t64 = load { ptr, i64, i64 }, ptr %t63 store { ptr, i64, i64 } %t64, ptr %a65 - store { ptr, i64, i64 } { ptr @.str.1323, i64 4, i64 0 }, ptr %a66 + store { ptr, i64, i64 } { ptr @.str.1351, i64 4, i64 0 }, ptr %a66 %t67 = call i32 @finch_str_eq(ptr %a65, ptr %a66) %t68 = icmp eq i32 %t67, 0 - br label %logic.rend2324 -logic.rend2324: - br label %logic.end2323 -logic.end2323: - %t69 = phi i1 [ false, %logic.from2321 ], [ %t68, %logic.rend2324 ] - br i1 %t69, label %then2325, label %endif2327 -then2325: + br label %logic.rend2383 +logic.rend2383: + br label %logic.end2382 +logic.end2382: + %t69 = phi i1 [ false, %logic.from2380 ], [ %t68, %logic.rend2383 ] + br i1 %t69, label %then2384, label %endif2386 +then2384: %t70 = load ptr, ptr %a1 %t71 = load %S.ast.Node, ptr %a3 %t72 = load %S.ast.Type, ptr %a38 %t73 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t72) - store { ptr, i64, i64 } { ptr @.str.1324, i64 63, i64 0 }, ptr %a75 + store { ptr, i64, i64 } { ptr @.str.1352, i64 63, i64 0 }, ptr %a75 store { ptr, i64, i64 } %t73, ptr %a76 call void @finch_str_concat(ptr %a74, ptr %a75, ptr %a76) store { ptr, i64, i64 } %t73, ptr %a77 @@ -25667,18 +26412,18 @@ then2325: call void @finch.gen.fail(ptr %t70, %S.ast.Node %t71, { ptr, i64, i64 } %t78) store { ptr, i64, i64 } %t78, ptr %a79 call void @finch_str_drop(ptr %a79) - br label %endif2327 -endif2327: + br label %endif2386 +endif2386: %t80 = load ptr, ptr %a1 %t81 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t82 = load { ptr, i64, i64 }, ptr %t81 %t83 = extractvalue { ptr, i64, i64 } %t82, 1 %t84 = icmp uge i64 1, %t83 - br i1 %t84, label %range2328, label %inrange2329 -range2328: - call void @finch_panic_index(ptr @.str.1325, i64 508, i64 1, i64 %t83) + br i1 %t84, label %range2387, label %inrange2388 +range2387: + call void @finch_panic_index(ptr @.str.1353, i64 534, i64 1, i64 %t83) unreachable -inrange2329: +inrange2388: %t85 = extractvalue { ptr, i64, i64 } %t82, 0 %t86 = getelementptr inbounds %S.ast.Type, ptr %t85, i64 1 %t87 = load %S.ast.Type, ptr %t86 @@ -25688,32 +26433,32 @@ inrange2329: %t91 = getelementptr inbounds %S.ast.Type, ptr %a90, i32 0, i32 0 %t92 = load { ptr, i64, i64 }, ptr %t91 store { ptr, i64, i64 } %t92, ptr %a93 - store { ptr, i64, i64 } { ptr @.str.1326, i64 4, i64 0 }, ptr %a94 + store { ptr, i64, i64 } { ptr @.str.1354, i64 4, i64 0 }, ptr %a94 %t95 = call i32 @finch_str_eq(ptr %a93, ptr %a94) %t96 = icmp ne i32 %t95, 0 - br i1 %t96, label %then2330, label %endif2332 -then2330: + br i1 %t96, label %then2389, label %endif2391 +then2389: %t97 = load ptr, ptr %a1 %t98 = load %S.ast.Node, ptr %a3 - call void @finch.gen.fail(ptr %t97, %S.ast.Node %t98, { ptr, i64, i64 } { ptr @.str.1327, i64 41, i64 0 }) - br label %endif2332 -endif2332: + call void @finch.gen.fail(ptr %t97, %S.ast.Node %t98, { ptr, i64, i64 } { ptr @.str.1355, i64 41, i64 0 }) + br label %endif2391 +endif2391: %t99 = load %S.ast.Type, ptr %a38 %t100 = load %S.ast.Type, ptr %a90 %t101 = call %S.ast.Type @finch.ast.mapOf(%S.ast.Type %t99, %S.ast.Type %t100) call void @finch.drop.S_ast_Type(ptr %a90) call void @finch.drop.S_ast_Type(ptr %a38) ret %S.ast.Type %t101 -endif2306: +endif2365: %t102 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t103 = load { ptr, i64, i64 }, ptr %t102 store { ptr, i64, i64 } %t103, ptr %a104 - store { ptr, i64, i64 } { ptr @.str.1328, i64 5, i64 0 }, ptr %a105 + store { ptr, i64, i64 } { ptr @.str.1356, i64 5, i64 0 }, ptr %a105 %t106 = call i32 @finch_str_eq(ptr %a104, ptr %a105) %t107 = icmp ne i32 %t106, 0 - br i1 %t107, label %then2333, label %endif2335 -then2333: - %t108 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.1329, i64 5, i64 0 }, 0 + br i1 %t107, label %then2392, label %endif2394 +then2392: + %t108 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.1357, i64 5, i64 0 }, 0 %t109 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 4 %t110 = load i64, ptr %t109 %t111 = insertvalue %S.ast.Type %t108, i64 %t110, 4 @@ -25725,11 +26470,11 @@ then2333: %t117 = load { ptr, i64, i64 }, ptr %t116 %t118 = extractvalue { ptr, i64, i64 } %t117, 1 %t119 = icmp uge i64 0, %t118 - br i1 %t119, label %range2336, label %inrange2337 -range2336: - call void @finch_panic_index(ptr @.str.1330, i64 516, i64 0, i64 %t118) + br i1 %t119, label %range2395, label %inrange2396 +range2395: + call void @finch_panic_index(ptr @.str.1358, i64 542, i64 0, i64 %t118) unreachable -inrange2337: +inrange2396: %t120 = extractvalue { ptr, i64, i64 } %t117, 0 %t121 = getelementptr inbounds %S.ast.Type, ptr %t120, i64 0 %t122 = load %S.ast.Type, ptr %t121 @@ -25744,37 +26489,37 @@ inrange2337: store i64 %t126, ptr %t114 %t129 = load %S.ast.Type, ptr %a112 ret %S.ast.Type %t129 -endif2335: +endif2394: %t130 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t131 = load { ptr, i64, i64 }, ptr %t130 store { ptr, i64, i64 } %t131, ptr %a132 - store { ptr, i64, i64 } { ptr @.str.1331, i64 3, i64 0 }, ptr %a133 + store { ptr, i64, i64 } { ptr @.str.1359, i64 3, i64 0 }, ptr %a133 %t134 = call i32 @finch_str_eq(ptr %a132, ptr %a133) %t135 = icmp ne i32 %t134, 0 - br i1 %t135, label %then2338, label %endif2340 -then2338: + br i1 %t135, label %then2397, label %endif2399 +then2397: %t136 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t137 = getelementptr inbounds { ptr, i64, i64 }, ptr %t136, i32 0, i32 1 %t138 = load i64, ptr %t137 %t139 = icmp eq i64 %t138, 0 - br i1 %t139, label %then2341, label %endif2343 -then2341: + br i1 %t139, label %then2400, label %endif2402 +then2400: %t140 = load %S.ast.Type, ptr %a2 store %S.ast.Type %t140, ptr %a141 call void @finch.copy.S_ast_Type(ptr %a142, ptr %a141) %t143 = load %S.ast.Type, ptr %a142 ret %S.ast.Type %t143 -endif2343: +endif2402: %t144 = load ptr, ptr %a1 %t145 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t146 = load { ptr, i64, i64 }, ptr %t145 %t147 = extractvalue { ptr, i64, i64 } %t146, 1 %t148 = icmp uge i64 0, %t147 - br i1 %t148, label %range2344, label %inrange2345 -range2344: - call void @finch_panic_index(ptr @.str.1332, i64 523, i64 0, i64 %t147) + br i1 %t148, label %range2403, label %inrange2404 +range2403: + call void @finch_panic_index(ptr @.str.1360, i64 549, i64 0, i64 %t147) unreachable -inrange2345: +inrange2404: %t149 = extractvalue { ptr, i64, i64 } %t146, 0 %t150 = getelementptr inbounds %S.ast.Type, ptr %t149, i64 0 %t151 = load %S.ast.Type, ptr %t150 @@ -25784,49 +26529,49 @@ inrange2345: store %S.ast.Type %t153, ptr %a155 call void @finch.drop.S_ast_Type(ptr %a155) ret %S.ast.Type %t154 -endif2340: +endif2399: %t156 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t157 = load { ptr, i64, i64 }, ptr %t156 store { ptr, i64, i64 } %t157, ptr %a158 - store { ptr, i64, i64 } { ptr @.str.1333, i64 5, i64 0 }, ptr %a159 + store { ptr, i64, i64 } { ptr @.str.1361, i64 5, i64 0 }, ptr %a159 %t160 = call i32 @finch_str_eq(ptr %a158, ptr %a159) %t161 = icmp eq i32 %t160, 0 - br i1 %t161, label %then2346, label %endif2348 -then2346: + br i1 %t161, label %then2405, label %endif2407 +then2405: %t162 = load %S.ast.Type, ptr %a2 store %S.ast.Type %t162, ptr %a163 call void @finch.copy.S_ast_Type(ptr %a164, ptr %a163) %t165 = load %S.ast.Type, ptr %a164 ret %S.ast.Type %t165 -endif2348: +endif2407: %t166 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 %t167 = getelementptr inbounds { ptr, i64, i64 }, ptr %t166, i32 0, i32 1 %t168 = load i64, ptr %t167 %t169 = icmp eq i64 %t168, 0 - br label %logic.from2349 -logic.from2349: - br i1 %t169, label %logic.rhs2350, label %logic.end2351 -logic.rhs2350: + br label %logic.from2408 +logic.from2408: + br i1 %t169, label %logic.rhs2409, label %logic.end2410 +logic.rhs2409: %t170 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t171 = getelementptr inbounds { ptr, i64, i64 }, ptr %t170, i32 0, i32 1 %t172 = load i64, ptr %t171 %t173 = icmp eq i64 %t172, 0 - br label %logic.rend2352 -logic.rend2352: - br label %logic.end2351 -logic.end2351: - %t174 = phi i1 [ false, %logic.from2349 ], [ %t173, %logic.rend2352 ] - br label %logic.from2353 -logic.from2353: - br i1 %t174, label %logic.rhs2354, label %logic.end2355 -logic.rhs2354: + br label %logic.rend2411 +logic.rend2411: + br label %logic.end2410 +logic.end2410: + %t174 = phi i1 [ false, %logic.from2408 ], [ %t173, %logic.rend2411 ] + br label %logic.from2412 +logic.from2412: + br i1 %t174, label %logic.rhs2413, label %logic.end2414 +logic.rhs2413: %t175 = load ptr, ptr %a1 %t176 = icmp eq ptr %t175, null - br i1 %t176, label %panic2356, label %ok2357 -panic2356: - call void @finch_panic(ptr @.str.1334, i64 529, ptr @.str.1335) + br i1 %t176, label %panic2415, label %ok2416 +panic2415: + call void @finch_panic(ptr @.str.1362, i64 555, ptr @.str.1363) unreachable -ok2357: +ok2416: %t177 = getelementptr inbounds %S.gen.Gen, ptr %t175, i32 0, i32 18 %t178 = getelementptr inbounds { ptr, i64, i64 }, ptr %t177, i32 0, i32 1 %t179 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 @@ -25835,51 +26580,51 @@ ok2357: %t182 = load i64, ptr %t178 %t183 = load ptr, ptr %t177 store i64 0, ptr %a184 - br label %find.cond2358 -find.cond2358: + br label %find.cond2417 +find.cond2417: %t185 = load i64, ptr %a184 %t186 = icmp slt i64 %t185, %t182 - br i1 %t186, label %find.body2359, label %find.end2362 -find.body2359: + br i1 %t186, label %find.body2418, label %find.end2421 +find.body2418: %t187 = getelementptr inbounds { ptr, i64, i64 }, ptr %t183, i64 %t185 %t188 = load { ptr, i64, i64 }, ptr %t187 store { ptr, i64, i64 } %t188, ptr %a189 store { ptr, i64, i64 } %t180, ptr %a190 %t191 = call i32 @finch_str_eq(ptr %a189, ptr %a190) %t192 = icmp ne i32 %t191, 0 - br i1 %t192, label %find.hit2360, label %find.next2361 -find.hit2360: + br i1 %t192, label %find.hit2419, label %find.next2420 +find.hit2419: store i64 %t185, ptr %a181 - br label %find.end2362 -find.next2361: + br label %find.end2421 +find.next2420: %t193 = add i64 %t185, 1 store i64 %t193, ptr %a184 - br label %find.cond2358 -find.end2362: + br label %find.cond2417 +find.end2421: %t194 = load i64, ptr %a181 %t195 = icmp sge i64 %t194, 0 - br label %logic.rend2363 -logic.rend2363: - br label %logic.end2355 -logic.end2355: - %t196 = phi i1 [ false, %logic.from2353 ], [ %t195, %logic.rend2363 ] - br i1 %t196, label %then2364, label %endif2366 -then2364: + br label %logic.rend2422 +logic.rend2422: + br label %logic.end2414 +logic.end2414: + %t196 = phi i1 [ false, %logic.from2412 ], [ %t195, %logic.rend2422 ] + br i1 %t196, label %then2423, label %endif2425 +then2423: %t197 = load ptr, ptr %a1 %t198 = icmp eq ptr %t197, null - br i1 %t198, label %panic2367, label %ok2368 -panic2367: - call void @finch_panic(ptr @.str.1336, i64 530, ptr @.str.1337) + br i1 %t198, label %panic2426, label %ok2427 +panic2426: + call void @finch_panic(ptr @.str.1364, i64 556, ptr @.str.1365) unreachable -ok2368: +ok2427: %t199 = getelementptr inbounds %S.gen.Gen, ptr %t197, i32 0, i32 19 %t200 = load ptr, ptr %a1 %t201 = icmp eq ptr %t200, null - br i1 %t201, label %panic2369, label %ok2370 -panic2369: - call void @finch_panic(ptr @.str.1338, i64 530, ptr @.str.1339) + br i1 %t201, label %panic2428, label %ok2429 +panic2428: + call void @finch_panic(ptr @.str.1366, i64 556, ptr @.str.1367) unreachable -ok2370: +ok2429: %t202 = getelementptr inbounds %S.gen.Gen, ptr %t200, i32 0, i32 18 %t203 = getelementptr inbounds { ptr, i64, i64 }, ptr %t202, i32 0, i32 1 %t204 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 @@ -25888,36 +26633,36 @@ ok2370: %t207 = load i64, ptr %t203 %t208 = load ptr, ptr %t202 store i64 0, ptr %a209 - br label %find.cond2371 -find.cond2371: + br label %find.cond2430 +find.cond2430: %t210 = load i64, ptr %a209 %t211 = icmp slt i64 %t210, %t207 - br i1 %t211, label %find.body2372, label %find.end2375 -find.body2372: + br i1 %t211, label %find.body2431, label %find.end2434 +find.body2431: %t212 = getelementptr inbounds { ptr, i64, i64 }, ptr %t208, i64 %t210 %t213 = load { ptr, i64, i64 }, ptr %t212 store { ptr, i64, i64 } %t213, ptr %a214 store { ptr, i64, i64 } %t205, ptr %a215 %t216 = call i32 @finch_str_eq(ptr %a214, ptr %a215) %t217 = icmp ne i32 %t216, 0 - br i1 %t217, label %find.hit2373, label %find.next2374 -find.hit2373: + br i1 %t217, label %find.hit2432, label %find.next2433 +find.hit2432: store i64 %t210, ptr %a206 - br label %find.end2375 -find.next2374: + br label %find.end2434 +find.next2433: %t218 = add i64 %t210, 1 store i64 %t218, ptr %a209 - br label %find.cond2371 -find.end2375: + br label %find.cond2430 +find.end2434: %t219 = load i64, ptr %a206 %t220 = load { ptr, i64, i64 }, ptr %t199 %t221 = extractvalue { ptr, i64, i64 } %t220, 1 %t222 = icmp uge i64 %t219, %t221 - br i1 %t222, label %range2376, label %inrange2377 -range2376: - call void @finch_panic_index(ptr @.str.1340, i64 530, i64 %t219, i64 %t221) + br i1 %t222, label %range2435, label %inrange2436 +range2435: + call void @finch_panic_index(ptr @.str.1368, i64 556, i64 %t219, i64 %t221) unreachable -inrange2377: +inrange2436: %t223 = extractvalue { ptr, i64, i64 } %t220, 0 %t224 = getelementptr inbounds %S.ast.Type, ptr %t223, i64 %t219 %t225 = load %S.ast.Type, ptr %t224 @@ -25925,24 +26670,24 @@ inrange2377: call void @finch.copy.S_ast_Type(ptr %a227, ptr %a226) %t228 = load %S.ast.Type, ptr %a227 ret %S.ast.Type %t228 -endif2366: +endif2425: %t229 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t230 = getelementptr inbounds { ptr, i64, i64 }, ptr %t229, i32 0, i32 1 %t231 = load i64, ptr %t230 %t232 = icmp sgt i64 %t231, 0 - br i1 %t232, label %then2378, label %endif2380 -then2378: + br i1 %t232, label %then2437, label %endif2439 +then2437: store { ptr, i64, i64 } zeroinitializer, ptr %a233 %t234 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 store i64 0, ptr %a235 - br label %each.cond2381 -each.cond2381: + br label %each.cond2440 +each.cond2440: %t236 = getelementptr inbounds { ptr, i64, i64 }, ptr %t234, i32 0, i32 1 %t237 = load i64, ptr %t236 %t238 = load i64, ptr %a235 %t239 = icmp slt i64 %t238, %t237 - br i1 %t239, label %each.body2382, label %each.end2384 -each.body2382: + br i1 %t239, label %each.body2441, label %each.end2443 +each.body2441: %t240 = load ptr, ptr %t234 %t241 = getelementptr inbounds %S.ast.Type, ptr %t240, i64 %t238 %t242 = load %S.ast.Type, ptr %t241 @@ -25959,20 +26704,20 @@ each.body2382: %t252 = getelementptr inbounds %S.ast.Type, ptr %t251, i64 %t249 store %S.ast.Type %t248, ptr %t252 store i64 %t250, ptr %t244 - br label %each.step2383 -each.step2383: + br label %each.step2442 +each.step2442: %t253 = load i64, ptr %a235 %t254 = add i64 %t253, 1 store i64 %t254, ptr %a235 - br label %each.cond2381 -each.end2384: + br label %each.cond2440 +each.end2443: %t255 = load ptr, ptr %a1 %t256 = icmp eq ptr %t255, null - br i1 %t256, label %panic2385, label %ok2386 -panic2385: - call void @finch_panic(ptr @.str.1341, i64 538, ptr @.str.1342) + br i1 %t256, label %panic2444, label %ok2445 +panic2444: + call void @finch_panic(ptr @.str.1369, i64 564, ptr @.str.1370) unreachable -ok2386: +ok2445: %t257 = getelementptr inbounds %S.gen.Gen, ptr %t255, i32 0, i32 14 %t258 = load { ptr, i64, i64 }, ptr %t257 store { ptr, i64, i64 } %t258, ptr %a259 @@ -25983,25 +26728,25 @@ ok2386: %t264 = getelementptr inbounds { ptr, i64, i64 }, ptr %t263, i32 0, i32 1 %t265 = load i64, ptr %t264 %t266 = icmp sgt i64 %t265, 0 - br i1 %t266, label %then2387, label %endif2389 -then2387: + br i1 %t266, label %then2446, label %endif2448 +then2446: %t267 = load ptr, ptr %a1 %t268 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 %t269 = load { ptr, i64, i64 }, ptr %t268 %t270 = call i1 @finch.gen.imports(ptr %t267, { ptr, i64, i64 } %t269) %t271 = xor i1 %t270, true - br i1 %t271, label %then2390, label %endif2392 -then2390: + br i1 %t271, label %then2449, label %endif2451 +then2449: %t272 = load ptr, ptr %a1 %t273 = load %S.ast.Node, ptr %a3 %t274 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 %t275 = load { ptr, i64, i64 }, ptr %t274 - store { ptr, i64, i64 } { ptr @.str.1343, i64 1, i64 0 }, ptr %a277 + store { ptr, i64, i64 } { ptr @.str.1371, i64 1, i64 0 }, ptr %a277 store { ptr, i64, i64 } %t275, ptr %a278 call void @finch_str_concat(ptr %a276, ptr %a277, ptr %a278) %t279 = load { ptr, i64, i64 }, ptr %a276 store { ptr, i64, i64 } %t279, ptr %a281 - store { ptr, i64, i64 } { ptr @.str.1344, i64 36, i64 0 }, ptr %a282 + store { ptr, i64, i64 } { ptr @.str.1372, i64 36, i64 0 }, ptr %a282 call void @finch_str_concat(ptr %a280, ptr %a281, ptr %a282) store { ptr, i64, i64 } %t279, ptr %a283 call void @finch_str_drop(ptr %a283) @@ -26015,7 +26760,7 @@ then2390: call void @finch_str_drop(ptr %a290) %t291 = load { ptr, i64, i64 }, ptr %a287 store { ptr, i64, i64 } %t291, ptr %a293 - store { ptr, i64, i64 } { ptr @.str.1345, i64 1, i64 0 }, ptr %a294 + store { ptr, i64, i64 } { ptr @.str.1373, i64 1, i64 0 }, ptr %a294 call void @finch_str_concat(ptr %a292, ptr %a293, ptr %a294) store { ptr, i64, i64 } %t291, ptr %a295 call void @finch_str_drop(ptr %a295) @@ -26023,8 +26768,8 @@ then2390: call void @finch.gen.fail(ptr %t272, %S.ast.Node %t273, { ptr, i64, i64 } %t296) store { ptr, i64, i64 } %t296, ptr %a297 call void @finch_str_drop(ptr %a297) - br label %endif2392 -endif2392: + br label %endif2451 +endif2451: %t298 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 %t299 = load { ptr, i64, i64 }, ptr %t298 store { ptr, i64, i64 } %t299, ptr %a300 @@ -26034,8 +26779,8 @@ endif2392: store { ptr, i64, i64 } %t302, ptr %a262 store { ptr, i64, i64 } %t303, ptr %a304 call void @finch_str_drop(ptr %a304) - br label %endif2389 -endif2389: + br label %endif2448 +endif2448: %t305 = load ptr, ptr %a1 %t306 = load { ptr, i64, i64 }, ptr %a262 %t307 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 @@ -26046,32 +26791,32 @@ endif2389: call void @finch_str_drop(ptr %a262) call void @finch.drop.arr_S_ast_Type(ptr %a233) ret %S.ast.Type %t311 -endif2380: +endif2439: %t312 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 %t313 = load { ptr, i64, i64 }, ptr %t312 store { ptr, i64, i64 } %t313, ptr %a314 - store { ptr, i64, i64 } { ptr @.str.1346, i64 1, i64 0 }, ptr %a315 + store { ptr, i64, i64 } { ptr @.str.1374, i64 1, i64 0 }, ptr %a315 %t316 = call i32 @finch_str_eq(ptr %a314, ptr %a315) %t317 = icmp ne i32 %t316, 0 - br i1 %t317, label %then2393, label %endif2395 -then2393: + br i1 %t317, label %then2452, label %endif2454 +then2452: %t318 = load ptr, ptr %a1 %t319 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 %t320 = load { ptr, i64, i64 }, ptr %t319 - %t321 = call i64 @finch.gen.findStruct(ptr %t318, { ptr, i64, i64 } { ptr @.str.1347, i64 1, i64 0 }, { ptr, i64, i64 } %t320) + %t321 = call i64 @finch.gen.findStruct(ptr %t318, { ptr, i64, i64 } { ptr @.str.1375, i64 1, i64 0 }, { ptr, i64, i64 } %t320) %t322 = icmp slt i64 %t321, 0 - br i1 %t322, label %then2396, label %endif2398 -then2396: + br i1 %t322, label %then2455, label %endif2457 +then2455: %t323 = load ptr, ptr %a1 %t324 = load %S.ast.Node, ptr %a3 %t325 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 %t326 = load { ptr, i64, i64 }, ptr %t325 - store { ptr, i64, i64 } { ptr @.str.1348, i64 28, i64 0 }, ptr %a328 + store { ptr, i64, i64 } { ptr @.str.1376, i64 28, i64 0 }, ptr %a328 store { ptr, i64, i64 } %t326, ptr %a329 call void @finch_str_concat(ptr %a327, ptr %a328, ptr %a329) %t330 = load { ptr, i64, i64 }, ptr %a327 store { ptr, i64, i64 } %t330, ptr %a332 - store { ptr, i64, i64 } { ptr @.str.1349, i64 1, i64 0 }, ptr %a333 + store { ptr, i64, i64 } { ptr @.str.1377, i64 1, i64 0 }, ptr %a333 call void @finch_str_concat(ptr %a331, ptr %a332, ptr %a333) store { ptr, i64, i64 } %t330, ptr %a334 call void @finch_str_drop(ptr %a334) @@ -26079,25 +26824,25 @@ then2396: call void @finch.gen.fail(ptr %t323, %S.ast.Node %t324, { ptr, i64, i64 } %t335) store { ptr, i64, i64 } %t335, ptr %a336 call void @finch_str_drop(ptr %a336) - br label %endif2398 -endif2398: - %t337 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.1350, i64 6, i64 0 }, 0 + br label %endif2457 +endif2457: + %t337 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.1378, i64 6, i64 0 }, 0 %t338 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 %t339 = load { ptr, i64, i64 }, ptr %t338 store { ptr, i64, i64 } %t339, ptr %a340 call void @finch_str_copy(ptr %a341, ptr %a340) %t342 = load { ptr, i64, i64 }, ptr %a341 %t343 = insertvalue %S.ast.Type %t337, { ptr, i64, i64 } %t342, 2 - %t344 = insertvalue %S.ast.Type %t343, { ptr, i64, i64 } { ptr @.str.1351, i64 1, i64 0 }, 3 + %t344 = insertvalue %S.ast.Type %t343, { ptr, i64, i64 } { ptr @.str.1379, i64 1, i64 0 }, 3 ret %S.ast.Type %t344 -endif2395: +endif2454: %t345 = load ptr, ptr %a1 %t346 = icmp eq ptr %t345, null - br i1 %t346, label %panic2399, label %ok2400 -panic2399: - call void @finch_panic(ptr @.str.1352, i64 553, ptr @.str.1353) + br i1 %t346, label %panic2458, label %ok2459 +panic2458: + call void @finch_panic(ptr @.str.1380, i64 579, ptr @.str.1381) unreachable -ok2400: +ok2459: %t347 = getelementptr inbounds %S.gen.Gen, ptr %t345, i32 0, i32 14 %t348 = load { ptr, i64, i64 }, ptr %t347 store { ptr, i64, i64 } %t348, ptr %a349 @@ -26108,25 +26853,25 @@ ok2400: %t354 = getelementptr inbounds { ptr, i64, i64 }, ptr %t353, i32 0, i32 1 %t355 = load i64, ptr %t354 %t356 = icmp sgt i64 %t355, 0 - br i1 %t356, label %then2401, label %endif2403 -then2401: + br i1 %t356, label %then2460, label %endif2462 +then2460: %t357 = load ptr, ptr %a1 %t358 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 %t359 = load { ptr, i64, i64 }, ptr %t358 %t360 = call i1 @finch.gen.imports(ptr %t357, { ptr, i64, i64 } %t359) %t361 = xor i1 %t360, true - br i1 %t361, label %then2404, label %endif2406 -then2404: + br i1 %t361, label %then2463, label %endif2465 +then2463: %t362 = load ptr, ptr %a1 %t363 = load %S.ast.Node, ptr %a3 %t364 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 %t365 = load { ptr, i64, i64 }, ptr %t364 - store { ptr, i64, i64 } { ptr @.str.1354, i64 1, i64 0 }, ptr %a367 + store { ptr, i64, i64 } { ptr @.str.1382, i64 1, i64 0 }, ptr %a367 store { ptr, i64, i64 } %t365, ptr %a368 call void @finch_str_concat(ptr %a366, ptr %a367, ptr %a368) %t369 = load { ptr, i64, i64 }, ptr %a366 store { ptr, i64, i64 } %t369, ptr %a371 - store { ptr, i64, i64 } { ptr @.str.1355, i64 36, i64 0 }, ptr %a372 + store { ptr, i64, i64 } { ptr @.str.1383, i64 36, i64 0 }, ptr %a372 call void @finch_str_concat(ptr %a370, ptr %a371, ptr %a372) store { ptr, i64, i64 } %t369, ptr %a373 call void @finch_str_drop(ptr %a373) @@ -26140,7 +26885,7 @@ then2404: call void @finch_str_drop(ptr %a380) %t381 = load { ptr, i64, i64 }, ptr %a377 store { ptr, i64, i64 } %t381, ptr %a383 - store { ptr, i64, i64 } { ptr @.str.1356, i64 1, i64 0 }, ptr %a384 + store { ptr, i64, i64 } { ptr @.str.1384, i64 1, i64 0 }, ptr %a384 call void @finch_str_concat(ptr %a382, ptr %a383, ptr %a384) store { ptr, i64, i64 } %t381, ptr %a385 call void @finch_str_drop(ptr %a385) @@ -26148,8 +26893,8 @@ then2404: call void @finch.gen.fail(ptr %t362, %S.ast.Node %t363, { ptr, i64, i64 } %t386) store { ptr, i64, i64 } %t386, ptr %a387 call void @finch_str_drop(ptr %a387) - br label %endif2406 -endif2406: + br label %endif2465 +endif2465: %t388 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 %t389 = load { ptr, i64, i64 }, ptr %t388 store { ptr, i64, i64 } %t389, ptr %a390 @@ -26159,17 +26904,17 @@ endif2406: store { ptr, i64, i64 } %t392, ptr %a352 store { ptr, i64, i64 } %t393, ptr %a394 call void @finch_str_drop(ptr %a394) - br label %endif2403 -endif2403: + br label %endif2462 +endif2462: %t395 = load ptr, ptr %a1 %t396 = load { ptr, i64, i64 }, ptr %a352 %t397 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 %t398 = load { ptr, i64, i64 }, ptr %t397 %t399 = call i64 @finch.gen.findEnum(ptr %t395, { ptr, i64, i64 } %t396, { ptr, i64, i64 } %t398) %t400 = icmp sge i64 %t399, 0 - br i1 %t400, label %then2407, label %endif2409 -then2407: - %t401 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.1357, i64 4, i64 0 }, 0 + br i1 %t400, label %then2466, label %endif2468 +then2466: + %t401 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.1385, i64 4, i64 0 }, 0 %t402 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 %t403 = load { ptr, i64, i64 }, ptr %t402 store { ptr, i64, i64 } %t403, ptr %a404 @@ -26183,58 +26928,58 @@ then2407: %t412 = insertvalue %S.ast.Type %t407, { ptr, i64, i64 } %t411, 3 call void @finch_str_drop(ptr %a352) ret %S.ast.Type %t412 -endif2409: +endif2468: %t413 = load ptr, ptr %a1 %t414 = load { ptr, i64, i64 }, ptr %a352 %t415 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 %t416 = load { ptr, i64, i64 }, ptr %t415 %t417 = call i64 @finch.gen.findStruct(ptr %t413, { ptr, i64, i64 } %t414, { ptr, i64, i64 } %t416) %t418 = icmp slt i64 %t417, 0 - br i1 %t418, label %then2410, label %endif2412 -then2410: + br i1 %t418, label %then2469, label %endif2471 +then2469: %t419 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 %t420 = getelementptr inbounds { ptr, i64, i64 }, ptr %t419, i32 0, i32 1 %t421 = load i64, ptr %t420 %t422 = icmp eq i64 %t421, 0 - br label %logic.from2413 -logic.from2413: - br i1 %t422, label %logic.rhs2414, label %logic.end2415 -logic.rhs2414: + br label %logic.from2472 +logic.from2472: + br i1 %t422, label %logic.rhs2473, label %logic.end2474 +logic.rhs2473: %t423 = load ptr, ptr %a1 %t424 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 %t425 = load { ptr, i64, i64 }, ptr %t424 - %t426 = call i64 @finch.gen.findStruct(ptr %t423, { ptr, i64, i64 } { ptr @.str.1358, i64 1, i64 0 }, { ptr, i64, i64 } %t425) + %t426 = call i64 @finch.gen.findStruct(ptr %t423, { ptr, i64, i64 } { ptr @.str.1386, i64 1, i64 0 }, { ptr, i64, i64 } %t425) %t427 = icmp sge i64 %t426, 0 - br label %logic.rend2416 -logic.rend2416: - br label %logic.end2415 -logic.end2415: - %t428 = phi i1 [ false, %logic.from2413 ], [ %t427, %logic.rend2416 ] - br i1 %t428, label %then2417, label %endif2419 -then2417: - %t429 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.1359, i64 6, i64 0 }, 0 + br label %logic.rend2475 +logic.rend2475: + br label %logic.end2474 +logic.end2474: + %t428 = phi i1 [ false, %logic.from2472 ], [ %t427, %logic.rend2475 ] + br i1 %t428, label %then2476, label %endif2478 +then2476: + %t429 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.1387, i64 6, i64 0 }, 0 %t430 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 %t431 = load { ptr, i64, i64 }, ptr %t430 store { ptr, i64, i64 } %t431, ptr %a432 call void @finch_str_copy(ptr %a433, ptr %a432) %t434 = load { ptr, i64, i64 }, ptr %a433 %t435 = insertvalue %S.ast.Type %t429, { ptr, i64, i64 } %t434, 2 - %t436 = insertvalue %S.ast.Type %t435, { ptr, i64, i64 } { ptr @.str.1360, i64 1, i64 0 }, 3 + %t436 = insertvalue %S.ast.Type %t435, { ptr, i64, i64 } { ptr @.str.1388, i64 1, i64 0 }, 3 call void @finch_str_drop(ptr %a352) ret %S.ast.Type %t436 -endif2419: +endif2478: %t437 = load ptr, ptr %a1 %t438 = load %S.ast.Node, ptr %a3 %t439 = load %S.ast.Type, ptr %a2 %t440 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t439) - store { ptr, i64, i64 } { ptr @.str.1361, i64 24, i64 0 }, ptr %a442 + store { ptr, i64, i64 } { ptr @.str.1389, i64 24, i64 0 }, ptr %a442 store { ptr, i64, i64 } %t440, ptr %a443 call void @finch_str_concat(ptr %a441, ptr %a442, ptr %a443) store { ptr, i64, i64 } %t440, ptr %a444 call void @finch_str_drop(ptr %a444) %t445 = load { ptr, i64, i64 }, ptr %a441 store { ptr, i64, i64 } %t445, ptr %a447 - store { ptr, i64, i64 } { ptr @.str.1362, i64 1, i64 0 }, ptr %a448 + store { ptr, i64, i64 } { ptr @.str.1390, i64 1, i64 0 }, ptr %a448 call void @finch_str_concat(ptr %a446, ptr %a447, ptr %a448) store { ptr, i64, i64 } %t445, ptr %a449 call void @finch_str_drop(ptr %a449) @@ -26242,9 +26987,9 @@ endif2419: call void @finch.gen.fail(ptr %t437, %S.ast.Node %t438, { ptr, i64, i64 } %t450) store { ptr, i64, i64 } %t450, ptr %a451 call void @finch_str_drop(ptr %a451) - br label %endif2412 -endif2412: - %t452 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.1363, i64 6, i64 0 }, 0 + br label %endif2471 +endif2471: + %t452 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.1391, i64 6, i64 0 }, 0 %t453 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 %t454 = load { ptr, i64, i64 }, ptr %t453 store { ptr, i64, i64 } %t454, ptr %a455 @@ -26285,27 +27030,27 @@ entry: store { ptr, i64, i64 } %p0, ptr %a1 %t2 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t2, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.1365, i64 1, i64 0 }, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.1366, i64 1, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.1393, i64 1, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.1394, i64 1, i64 0 }, ptr %a6 call void @finch_str_replace(ptr %a4, ptr %a3, ptr %a5, ptr %a6) %t7 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t7, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.1368, i64 1, i64 0 }, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.1369, i64 0, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.1396, i64 1, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.1397, i64 0, i64 0 }, ptr %a11 call void @finch_str_replace(ptr %a9, ptr %a8, ptr %a10, ptr %a11) %t12 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t7, ptr %a13 call void @finch_str_drop(ptr %a13) store { ptr, i64, i64 } %t12, ptr %a14 - store { ptr, i64, i64 } { ptr @.str.1371, i64 1, i64 0 }, ptr %a16 - store { ptr, i64, i64 } { ptr @.str.1372, i64 1, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.1399, i64 1, i64 0 }, ptr %a16 + store { ptr, i64, i64 } { ptr @.str.1400, i64 1, i64 0 }, ptr %a17 call void @finch_str_replace(ptr %a15, ptr %a14, ptr %a16, ptr %a17) %t18 = load { ptr, i64, i64 }, ptr %a15 store { ptr, i64, i64 } %t12, ptr %a19 call void @finch_str_drop(ptr %a19) store { ptr, i64, i64 } %t18, ptr %a20 - store { ptr, i64, i64 } { ptr @.str.1374, i64 1, i64 0 }, ptr %a22 - store { ptr, i64, i64 } { ptr @.str.1375, i64 0, i64 0 }, ptr %a23 + store { ptr, i64, i64 } { ptr @.str.1402, i64 1, i64 0 }, ptr %a22 + store { ptr, i64, i64 } { ptr @.str.1403, i64 0, i64 0 }, ptr %a23 call void @finch_str_replace(ptr %a21, ptr %a20, ptr %a22, ptr %a23) %t24 = load { ptr, i64, i64 }, ptr %a21 store { ptr, i64, i64 } %t18, ptr %a25 @@ -26322,10 +27067,10 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t3 = load i64, ptr %t2 %t4 = icmp eq i64 %t3, 0 - br i1 %t4, label %then2420, label %endif2422 -then2420: - ret { ptr, i64, i64 } { ptr @.str.1376, i64 4, i64 0 } -endif2422: + br i1 %t4, label %then2479, label %endif2481 +then2479: + ret { ptr, i64, i64 } { ptr @.str.1404, i64 4, i64 0 } +endif2481: %t5 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t5, ptr %a6 call void @finch_str_copy(ptr %a7, ptr %a6) @@ -26410,37 +27155,37 @@ entry: store { ptr, i64, i64 } %t7, ptr %a8 %t9 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t9, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.1377, i64 4, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.1405, i64 4, i64 0 }, ptr %a11 %t12 = call i32 @finch_str_eq(ptr %a10, ptr %a11) %t13 = icmp ne i32 %t12, 0 - br i1 %t13, label %then2423, label %endif2425 -then2423: + br i1 %t13, label %then2482, label %endif2484 +then2482: call void @finch_str_drop(ptr %a8) - ret { ptr, i64, i64 } { ptr @.str.1378, i64 2, i64 0 } -endif2425: + ret { ptr, i64, i64 } { ptr @.str.1406, i64 2, i64 0 } +endif2484: %t14 = load %S.ast.Type, ptr %a2 %t15 = call i1 @finch.gen.isInt(%S.ast.Type %t14) - br label %logic.from2426 -logic.from2426: - br i1 %t15, label %logic.end2428, label %logic.rhs2427 -logic.rhs2427: + br label %logic.from2485 +logic.from2485: + br i1 %t15, label %logic.end2487, label %logic.rhs2486 +logic.rhs2486: %t16 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t16, ptr %a17 - store { ptr, i64, i64 } { ptr @.str.1379, i64 4, i64 0 }, ptr %a18 + store { ptr, i64, i64 } { ptr @.str.1407, i64 4, i64 0 }, ptr %a18 %t19 = call i32 @finch_str_eq(ptr %a17, ptr %a18) %t20 = icmp ne i32 %t19, 0 - br label %logic.rend2429 -logic.rend2429: - br label %logic.end2428 -logic.end2428: - %t21 = phi i1 [ true, %logic.from2426 ], [ %t20, %logic.rend2429 ] - br i1 %t21, label %then2430, label %endif2432 -then2430: + br label %logic.rend2488 +logic.rend2488: + br label %logic.end2487 +logic.end2487: + %t21 = phi i1 [ true, %logic.from2485 ], [ %t20, %logic.rend2488 ] + br i1 %t21, label %then2489, label %endif2491 +then2489: %t22 = load %S.ast.Type, ptr %a2 %t23 = call i64 @finch.gen.bitsOf(%S.ast.Type %t22) call void @finch_str_from_int(ptr %a24, i64 %t23) %t25 = load { ptr, i64, i64 }, ptr %a24 - store { ptr, i64, i64 } { ptr @.str.1380, i64 1, i64 0 }, ptr %a27 + store { ptr, i64, i64 } { ptr @.str.1408, i64 1, i64 0 }, ptr %a27 store { ptr, i64, i64 } %t25, ptr %a28 call void @finch_str_concat(ptr %a26, ptr %a27, ptr %a28) store { ptr, i64, i64 } %t25, ptr %a29 @@ -26448,80 +27193,80 @@ then2430: %t30 = load { ptr, i64, i64 }, ptr %a26 call void @finch_str_drop(ptr %a8) ret { ptr, i64, i64 } %t30 -endif2432: +endif2491: %t31 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t31, ptr %a32 - store { ptr, i64, i64 } { ptr @.str.1381, i64 5, i64 0 }, ptr %a33 + store { ptr, i64, i64 } { ptr @.str.1409, i64 5, i64 0 }, ptr %a33 %t34 = call i32 @finch_str_eq(ptr %a32, ptr %a33) %t35 = icmp ne i32 %t34, 0 - br i1 %t35, label %then2433, label %endif2435 -then2433: + br i1 %t35, label %then2492, label %endif2494 +then2492: call void @finch_str_drop(ptr %a8) - ret { ptr, i64, i64 } { ptr @.str.1382, i64 6, i64 0 } -endif2435: + ret { ptr, i64, i64 } { ptr @.str.1410, i64 6, i64 0 } +endif2494: %t36 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t36, ptr %a37 - store { ptr, i64, i64 } { ptr @.str.1383, i64 3, i64 0 }, ptr %a38 + store { ptr, i64, i64 } { ptr @.str.1411, i64 3, i64 0 }, ptr %a38 %t39 = call i32 @finch_str_eq(ptr %a37, ptr %a38) %t40 = icmp ne i32 %t39, 0 - br i1 %t40, label %then2436, label %endif2438 -then2436: + br i1 %t40, label %then2495, label %endif2497 +then2495: call void @finch_str_drop(ptr %a8) - ret { ptr, i64, i64 } { ptr @.str.1384, i64 5, i64 0 } -endif2438: + ret { ptr, i64, i64 } { ptr @.str.1412, i64 5, i64 0 } +endif2497: %t41 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t41, ptr %a42 - store { ptr, i64, i64 } { ptr @.str.1385, i64 3, i64 0 }, ptr %a43 + store { ptr, i64, i64 } { ptr @.str.1413, i64 3, i64 0 }, ptr %a43 %t44 = call i32 @finch_str_eq(ptr %a42, ptr %a43) %t45 = icmp ne i32 %t44, 0 - br label %logic.from2439 -logic.from2439: - br i1 %t45, label %logic.end2441, label %logic.rhs2440 -logic.rhs2440: + br label %logic.from2498 +logic.from2498: + br i1 %t45, label %logic.end2500, label %logic.rhs2499 +logic.rhs2499: %t46 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t46, ptr %a47 - store { ptr, i64, i64 } { ptr @.str.1386, i64 5, i64 0 }, ptr %a48 + store { ptr, i64, i64 } { ptr @.str.1414, i64 5, i64 0 }, ptr %a48 %t49 = call i32 @finch_str_eq(ptr %a47, ptr %a48) %t50 = icmp ne i32 %t49, 0 - br label %logic.rend2442 -logic.rend2442: - br label %logic.end2441 -logic.end2441: - %t51 = phi i1 [ true, %logic.from2439 ], [ %t50, %logic.rend2442 ] - br i1 %t51, label %then2443, label %endif2445 -then2443: + br label %logic.rend2501 +logic.rend2501: + br label %logic.end2500 +logic.end2500: + %t51 = phi i1 [ true, %logic.from2498 ], [ %t50, %logic.rend2501 ] + br i1 %t51, label %then2502, label %endif2504 +then2502: call void @finch_str_drop(ptr %a8) - ret { ptr, i64, i64 } { ptr @.str.1387, i64 17, i64 0 } -endif2445: + ret { ptr, i64, i64 } { ptr @.str.1415, i64 17, i64 0 } +endif2504: %t52 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t52, ptr %a53 - store { ptr, i64, i64 } { ptr @.str.1388, i64 3, i64 0 }, ptr %a54 + store { ptr, i64, i64 } { ptr @.str.1416, i64 3, i64 0 }, ptr %a54 %t55 = call i32 @finch_str_eq(ptr %a53, ptr %a54) %t56 = icmp ne i32 %t55, 0 - br i1 %t56, label %then2446, label %endif2448 -then2446: + br i1 %t56, label %then2505, label %endif2507 +then2505: call void @finch_str_drop(ptr %a8) - ret { ptr, i64, i64 } { ptr @.str.1389, i64 37, i64 0 } -endif2448: + ret { ptr, i64, i64 } { ptr @.str.1417, i64 37, i64 0 } +endif2507: %t57 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t57, ptr %a58 - store { ptr, i64, i64 } { ptr @.str.1390, i64 5, i64 0 }, ptr %a59 + store { ptr, i64, i64 } { ptr @.str.1418, i64 5, i64 0 }, ptr %a59 %t60 = call i32 @finch_str_eq(ptr %a58, ptr %a59) %t61 = icmp ne i32 %t60, 0 - br i1 %t61, label %then2449, label %endif2451 -then2449: + br i1 %t61, label %then2508, label %endif2510 +then2508: %t62 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 4 %t63 = load i64, ptr %t62 call void @finch_str_from_int(ptr %a64, i64 %t63) %t65 = load { ptr, i64, i64 }, ptr %a64 - store { ptr, i64, i64 } { ptr @.str.1391, i64 1, i64 0 }, ptr %a67 + store { ptr, i64, i64 } { ptr @.str.1419, i64 1, i64 0 }, ptr %a67 store { ptr, i64, i64 } %t65, ptr %a68 call void @finch_str_concat(ptr %a66, ptr %a67, ptr %a68) store { ptr, i64, i64 } %t65, ptr %a69 call void @finch_str_drop(ptr %a69) %t70 = load { ptr, i64, i64 }, ptr %a66 store { ptr, i64, i64 } %t70, ptr %a72 - store { ptr, i64, i64 } { ptr @.str.1392, i64 3, i64 0 }, ptr %a73 + store { ptr, i64, i64 } { ptr @.str.1420, i64 3, i64 0 }, ptr %a73 call void @finch_str_concat(ptr %a71, ptr %a72, ptr %a73) store { ptr, i64, i64 } %t70, ptr %a74 call void @finch_str_drop(ptr %a74) @@ -26531,11 +27276,11 @@ then2449: %t78 = load { ptr, i64, i64 }, ptr %t77 %t79 = extractvalue { ptr, i64, i64 } %t78, 1 %t80 = icmp uge i64 0, %t79 - br i1 %t80, label %range2452, label %inrange2453 -range2452: - call void @finch_panic_index(ptr @.str.1393, i64 606, i64 0, i64 %t79) + br i1 %t80, label %range2511, label %inrange2512 +range2511: + call void @finch_panic_index(ptr @.str.1421, i64 632, i64 0, i64 %t79) unreachable -inrange2453: +inrange2512: %t81 = extractvalue { ptr, i64, i64 } %t78, 0 %t82 = getelementptr inbounds %S.ast.Type, ptr %t81, i64 0 %t83 = load %S.ast.Type, ptr %t82 @@ -26549,69 +27294,69 @@ inrange2453: call void @finch_str_drop(ptr %a89) %t90 = load { ptr, i64, i64 }, ptr %a85 store { ptr, i64, i64 } %t90, ptr %a92 - store { ptr, i64, i64 } { ptr @.str.1394, i64 1, i64 0 }, ptr %a93 + store { ptr, i64, i64 } { ptr @.str.1422, i64 1, i64 0 }, ptr %a93 call void @finch_str_concat(ptr %a91, ptr %a92, ptr %a93) store { ptr, i64, i64 } %t90, ptr %a94 call void @finch_str_drop(ptr %a94) %t95 = load { ptr, i64, i64 }, ptr %a91 call void @finch_str_drop(ptr %a8) ret { ptr, i64, i64 } %t95 -endif2451: +endif2510: %t96 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t96, ptr %a97 - store { ptr, i64, i64 } { ptr @.str.1395, i64 4, i64 0 }, ptr %a98 + store { ptr, i64, i64 } { ptr @.str.1423, i64 4, i64 0 }, ptr %a98 %t99 = call i32 @finch_str_eq(ptr %a97, ptr %a98) %t100 = icmp ne i32 %t99, 0 - br i1 %t100, label %then2454, label %endif2456 -then2454: + br i1 %t100, label %then2513, label %endif2515 +then2513: call void @finch_str_drop(ptr %a8) - ret { ptr, i64, i64 } { ptr @.str.1396, i64 3, i64 0 } -endif2456: + ret { ptr, i64, i64 } { ptr @.str.1424, i64 3, i64 0 } +endif2515: %t101 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t101, ptr %a102 - store { ptr, i64, i64 } { ptr @.str.1397, i64 3, i64 0 }, ptr %a103 + store { ptr, i64, i64 } { ptr @.str.1425, i64 3, i64 0 }, ptr %a103 %t104 = call i32 @finch_str_eq(ptr %a102, ptr %a103) %t105 = icmp ne i32 %t104, 0 - br label %logic.from2457 -logic.from2457: - br i1 %t105, label %logic.end2459, label %logic.rhs2458 -logic.rhs2458: + br label %logic.from2516 +logic.from2516: + br i1 %t105, label %logic.end2518, label %logic.rhs2517 +logic.rhs2517: %t106 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t106, ptr %a107 - store { ptr, i64, i64 } { ptr @.str.1398, i64 4, i64 0 }, ptr %a108 + store { ptr, i64, i64 } { ptr @.str.1426, i64 4, i64 0 }, ptr %a108 %t109 = call i32 @finch_str_eq(ptr %a107, ptr %a108) %t110 = icmp ne i32 %t109, 0 - br label %logic.rend2460 -logic.rend2460: - br label %logic.end2459 -logic.end2459: - %t111 = phi i1 [ true, %logic.from2457 ], [ %t110, %logic.rend2460 ] - br i1 %t111, label %then2461, label %endif2463 -then2461: + br label %logic.rend2519 +logic.rend2519: + br label %logic.end2518 +logic.end2518: + %t111 = phi i1 [ true, %logic.from2516 ], [ %t110, %logic.rend2519 ] + br i1 %t111, label %then2520, label %endif2522 +then2520: call void @finch_str_drop(ptr %a8) - ret { ptr, i64, i64 } { ptr @.str.1399, i64 3, i64 0 } -endif2463: + ret { ptr, i64, i64 } { ptr @.str.1427, i64 3, i64 0 } +endif2522: %t112 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t112, ptr %a113 - store { ptr, i64, i64 } { ptr @.str.1400, i64 4, i64 0 }, ptr %a114 + store { ptr, i64, i64 } { ptr @.str.1428, i64 4, i64 0 }, ptr %a114 %t115 = call i32 @finch_str_eq(ptr %a113, ptr %a114) %t116 = icmp ne i32 %t115, 0 - br i1 %t116, label %then2464, label %endif2466 -then2464: + br i1 %t116, label %then2523, label %endif2525 +then2523: call void @finch_str_drop(ptr %a8) - ret { ptr, i64, i64 } { ptr @.str.1401, i64 4, i64 0 } -endif2466: + ret { ptr, i64, i64 } { ptr @.str.1429, i64 4, i64 0 } +endif2525: %t117 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 %t118 = load { ptr, i64, i64 }, ptr %t117 %t119 = call { ptr, i64, i64 } @finch.gen.modName({ ptr, i64, i64 } %t118) - store { ptr, i64, i64 } { ptr @.str.1402, i64 3, i64 0 }, ptr %a121 + store { ptr, i64, i64 } { ptr @.str.1430, i64 3, i64 0 }, ptr %a121 store { ptr, i64, i64 } %t119, ptr %a122 call void @finch_str_concat(ptr %a120, ptr %a121, ptr %a122) store { ptr, i64, i64 } %t119, ptr %a123 call void @finch_str_drop(ptr %a123) %t124 = load { ptr, i64, i64 }, ptr %a120 store { ptr, i64, i64 } %t124, ptr %a126 - store { ptr, i64, i64 } { ptr @.str.1403, i64 1, i64 0 }, ptr %a127 + store { ptr, i64, i64 } { ptr @.str.1431, i64 1, i64 0 }, ptr %a127 call void @finch_str_concat(ptr %a125, ptr %a126, ptr %a127) store { ptr, i64, i64 } %t124, ptr %a128 call void @finch_str_drop(ptr %a128) @@ -26651,24 +27396,24 @@ entry: %t3 = getelementptr inbounds %S.gen.FnSig, ptr %a2, i32 0, i32 9 %t4 = load i1, ptr %t3 %t5 = xor i1 %t4, true - br i1 %t5, label %then2467, label %endif2469 -then2467: + br i1 %t5, label %then2526, label %endif2528 +then2526: %t6 = load ptr, ptr %a1 %t7 = getelementptr inbounds %S.gen.FnSig, ptr %a2, i32 0, i32 12 %t8 = load %S.ast.Type, ptr %t7 %t9 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t6, %S.ast.Type %t8) ret { ptr, i64, i64 } %t9 -endif2469: - store { ptr, i64, i64 } { ptr @.str.1404, i64 2, i64 0 }, ptr %a10 +endif2528: + store { ptr, i64, i64 } { ptr @.str.1432, i64 2, i64 0 }, ptr %a10 %t11 = getelementptr inbounds %S.gen.FnSig, ptr %a2, i32 0, i32 12 %t12 = getelementptr inbounds %S.ast.Type, ptr %t11, i32 0, i32 0 %t13 = load { ptr, i64, i64 }, ptr %t12 store { ptr, i64, i64 } %t13, ptr %a14 - store { ptr, i64, i64 } { ptr @.str.1405, i64 4, i64 0 }, ptr %a15 + store { ptr, i64, i64 } { ptr @.str.1433, i64 4, i64 0 }, ptr %a15 %t16 = call i32 @finch_str_eq(ptr %a14, ptr %a15) %t17 = icmp eq i32 %t16, 0 - br i1 %t17, label %then2470, label %endif2472 -then2470: + br i1 %t17, label %then2529, label %endif2531 +then2529: %t18 = load ptr, ptr %a1 %t19 = getelementptr inbounds %S.gen.FnSig, ptr %a2, i32 0, i32 12 %t20 = load %S.ast.Type, ptr %t19 @@ -26677,15 +27422,15 @@ then2470: store { ptr, i64, i64 } %t21, ptr %a10 store { ptr, i64, i64 } %t22, ptr %a23 call void @finch_str_drop(ptr %a23) - br label %endif2472 -endif2472: + br label %endif2531 +endif2531: %t24 = load { ptr, i64, i64 }, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.1406, i64 6, i64 0 }, ptr %a26 + store { ptr, i64, i64 } { ptr @.str.1434, i64 6, i64 0 }, ptr %a26 store { ptr, i64, i64 } %t24, ptr %a27 call void @finch_str_concat(ptr %a25, ptr %a26, ptr %a27) %t28 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t28, ptr %a30 - store { ptr, i64, i64 } { ptr @.str.1407, i64 21, i64 0 }, ptr %a31 + store { ptr, i64, i64 } { ptr @.str.1435, i64 21, i64 0 }, ptr %a31 call void @finch_str_concat(ptr %a29, ptr %a30, ptr %a31) store { ptr, i64, i64 } %t28, ptr %a32 call void @finch_str_drop(ptr %a32) @@ -26730,7 +27475,7 @@ entry: %t2 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 0 %t3 = load { ptr, i64, i64 }, ptr %t2 store { ptr, i64, i64 } %t3, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.1408, i64 1, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.1436, i64 1, i64 0 }, ptr %a6 call void @finch_str_concat(ptr %a4, ptr %a5, ptr %a6) %t7 = load { ptr, i64, i64 }, ptr %a4 %t8 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 11 @@ -26746,7 +27491,7 @@ entry: call void @finch_str_drop(ptr %a16) %t17 = load { ptr, i64, i64 }, ptr %a12 store { ptr, i64, i64 } %t17, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.1409, i64 1, i64 0 }, ptr %a20 + store { ptr, i64, i64 } { ptr @.str.1437, i64 1, i64 0 }, ptr %a20 call void @finch_str_concat(ptr %a18, ptr %a19, ptr %a20) store { ptr, i64, i64 } %t17, ptr %a21 call void @finch_str_drop(ptr %a21) @@ -26764,7 +27509,7 @@ entry: call void @finch_str_drop(ptr %a31) %t32 = load { ptr, i64, i64 }, ptr %a27 store { ptr, i64, i64 } %t32, ptr %a34 - store { ptr, i64, i64 } { ptr @.str.1410, i64 1, i64 0 }, ptr %a35 + store { ptr, i64, i64 } { ptr @.str.1438, i64 1, i64 0 }, ptr %a35 call void @finch_str_concat(ptr %a33, ptr %a34, ptr %a35) store { ptr, i64, i64 } %t32, ptr %a36 call void @finch_str_drop(ptr %a36) @@ -26809,82 +27554,82 @@ entry: store { ptr, i64, i64 } %t6, ptr %a7 %t8 = load %S.ast.Type, ptr %a1 %t9 = call i1 @finch.gen.isInt(%S.ast.Type %t8) - br label %logic.from2473 -logic.from2473: - br i1 %t9, label %logic.end2475, label %logic.rhs2474 -logic.rhs2474: + br label %logic.from2532 +logic.from2532: + br i1 %t9, label %logic.end2534, label %logic.rhs2533 +logic.rhs2533: %t10 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t10, ptr %a11 - store { ptr, i64, i64 } { ptr @.str.1411, i64 4, i64 0 }, ptr %a12 + store { ptr, i64, i64 } { ptr @.str.1439, i64 4, i64 0 }, ptr %a12 %t13 = call i32 @finch_str_eq(ptr %a11, ptr %a12) %t14 = icmp ne i32 %t13, 0 - br label %logic.rend2476 -logic.rend2476: - br label %logic.end2475 -logic.end2475: - %t15 = phi i1 [ true, %logic.from2473 ], [ %t14, %logic.rend2476 ] - br label %logic.from2477 -logic.from2477: - br i1 %t15, label %logic.end2479, label %logic.rhs2478 -logic.rhs2478: + br label %logic.rend2535 +logic.rend2535: + br label %logic.end2534 +logic.end2534: + %t15 = phi i1 [ true, %logic.from2532 ], [ %t14, %logic.rend2535 ] + br label %logic.from2536 +logic.from2536: + br i1 %t15, label %logic.end2538, label %logic.rhs2537 +logic.rhs2537: %t16 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t16, ptr %a17 - store { ptr, i64, i64 } { ptr @.str.1412, i64 4, i64 0 }, ptr %a18 + store { ptr, i64, i64 } { ptr @.str.1440, i64 4, i64 0 }, ptr %a18 %t19 = call i32 @finch_str_eq(ptr %a17, ptr %a18) %t20 = icmp ne i32 %t19, 0 - br label %logic.rend2480 -logic.rend2480: - br label %logic.end2479 -logic.end2479: - %t21 = phi i1 [ true, %logic.from2477 ], [ %t20, %logic.rend2480 ] - br i1 %t21, label %then2481, label %endif2483 -then2481: + br label %logic.rend2539 +logic.rend2539: + br label %logic.end2538 +logic.end2538: + %t21 = phi i1 [ true, %logic.from2536 ], [ %t20, %logic.rend2539 ] + br i1 %t21, label %then2540, label %endif2542 +then2540: call void @finch_str_drop(ptr %a7) - ret { ptr, i64, i64 } { ptr @.str.1413, i64 1, i64 0 } -endif2483: + ret { ptr, i64, i64 } { ptr @.str.1441, i64 1, i64 0 } +endif2542: %t22 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t22, ptr %a23 - store { ptr, i64, i64 } { ptr @.str.1414, i64 4, i64 0 }, ptr %a24 + store { ptr, i64, i64 } { ptr @.str.1442, i64 4, i64 0 }, ptr %a24 %t25 = call i32 @finch_str_eq(ptr %a23, ptr %a24) %t26 = icmp ne i32 %t25, 0 - br i1 %t26, label %then2484, label %endif2486 -then2484: + br i1 %t26, label %then2543, label %endif2545 +then2543: call void @finch_str_drop(ptr %a7) - ret { ptr, i64, i64 } { ptr @.str.1415, i64 5, i64 0 } -endif2486: + ret { ptr, i64, i64 } { ptr @.str.1443, i64 5, i64 0 } +endif2545: %t27 = load %S.ast.Type, ptr %a1 %t28 = call i1 @finch.gen.isFloat(%S.ast.Type %t27) - br i1 %t28, label %then2487, label %endif2489 -then2487: + br i1 %t28, label %then2546, label %endif2548 +then2546: call void @finch_str_drop(ptr %a7) - ret { ptr, i64, i64 } { ptr @.str.1416, i64 3, i64 0 } -endif2489: + ret { ptr, i64, i64 } { ptr @.str.1444, i64 3, i64 0 } +endif2548: %t29 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t29, ptr %a30 - store { ptr, i64, i64 } { ptr @.str.1417, i64 3, i64 0 }, ptr %a31 + store { ptr, i64, i64 } { ptr @.str.1445, i64 3, i64 0 }, ptr %a31 %t32 = call i32 @finch_str_eq(ptr %a30, ptr %a31) %t33 = icmp ne i32 %t32, 0 - br label %logic.from2490 -logic.from2490: - br i1 %t33, label %logic.end2492, label %logic.rhs2491 -logic.rhs2491: + br label %logic.from2549 +logic.from2549: + br i1 %t33, label %logic.end2551, label %logic.rhs2550 +logic.rhs2550: %t34 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t34, ptr %a35 - store { ptr, i64, i64 } { ptr @.str.1418, i64 4, i64 0 }, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.1446, i64 4, i64 0 }, ptr %a36 %t37 = call i32 @finch_str_eq(ptr %a35, ptr %a36) %t38 = icmp ne i32 %t37, 0 - br label %logic.rend2493 -logic.rend2493: - br label %logic.end2492 -logic.end2492: - %t39 = phi i1 [ true, %logic.from2490 ], [ %t38, %logic.rend2493 ] - br i1 %t39, label %then2494, label %endif2496 -then2494: + br label %logic.rend2552 +logic.rend2552: + br label %logic.end2551 +logic.end2551: + %t39 = phi i1 [ true, %logic.from2549 ], [ %t38, %logic.rend2552 ] + br i1 %t39, label %then2553, label %endif2555 +then2553: call void @finch_str_drop(ptr %a7) - ret { ptr, i64, i64 } { ptr @.str.1419, i64 4, i64 0 } -endif2496: + ret { ptr, i64, i64 } { ptr @.str.1447, i64 4, i64 0 } +endif2555: call void @finch_str_drop(ptr %a7) - ret { ptr, i64, i64 } { ptr @.str.1420, i64 15, i64 0 } + ret { ptr, i64, i64 } { ptr @.str.1448, i64 15, i64 0 } } define internal { ptr, i64, i64 } @finch.gen.sizeOf(ptr %p0, %S.ast.Type %p1) { @@ -26904,14 +27649,14 @@ entry: %t3 = load ptr, ptr %a1 %t4 = load %S.ast.Type, ptr %a2 %t5 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t3, %S.ast.Type %t4) - store { ptr, i64, i64 } { ptr @.str.1421, i64 29, i64 0 }, ptr %a7 + store { ptr, i64, i64 } { ptr @.str.1449, i64 29, i64 0 }, ptr %a7 store { ptr, i64, i64 } %t5, ptr %a8 call void @finch_str_concat(ptr %a6, ptr %a7, ptr %a8) store { ptr, i64, i64 } %t5, ptr %a9 call void @finch_str_drop(ptr %a9) %t10 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t10, ptr %a12 - store { ptr, i64, i64 } { ptr @.str.1422, i64 26, i64 0 }, ptr %a13 + store { ptr, i64, i64 } { ptr @.str.1450, i64 26, i64 0 }, ptr %a13 call void @finch_str_concat(ptr %a11, ptr %a12, ptr %a13) store { ptr, i64, i64 } %t10, ptr %a14 call void @finch_str_drop(ptr %a14) @@ -26936,58 +27681,58 @@ entry: %t3 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t4 = load { ptr, i64, i64 }, ptr %t3 store { ptr, i64, i64 } %t4, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.1423, i64 3, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.1451, i64 3, i64 0 }, ptr %a6 %t7 = call i32 @finch_str_eq(ptr %a5, ptr %a6) %t8 = icmp ne i32 %t7, 0 - br label %logic.from2497 -logic.from2497: - br i1 %t8, label %logic.end2499, label %logic.rhs2498 -logic.rhs2498: + br label %logic.from2556 +logic.from2556: + br i1 %t8, label %logic.end2558, label %logic.rhs2557 +logic.rhs2557: %t9 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t10 = load { ptr, i64, i64 }, ptr %t9 store { ptr, i64, i64 } %t10, ptr %a11 - store { ptr, i64, i64 } { ptr @.str.1424, i64 5, i64 0 }, ptr %a12 + store { ptr, i64, i64 } { ptr @.str.1452, i64 5, i64 0 }, ptr %a12 %t13 = call i32 @finch_str_eq(ptr %a11, ptr %a12) %t14 = icmp ne i32 %t13, 0 - br label %logic.rend2500 -logic.rend2500: - br label %logic.end2499 -logic.end2499: - %t15 = phi i1 [ true, %logic.from2497 ], [ %t14, %logic.rend2500 ] - br label %logic.from2501 -logic.from2501: - br i1 %t15, label %logic.end2503, label %logic.rhs2502 -logic.rhs2502: + br label %logic.rend2559 +logic.rend2559: + br label %logic.end2558 +logic.end2558: + %t15 = phi i1 [ true, %logic.from2556 ], [ %t14, %logic.rend2559 ] + br label %logic.from2560 +logic.from2560: + br i1 %t15, label %logic.end2562, label %logic.rhs2561 +logic.rhs2561: %t16 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t17 = load { ptr, i64, i64 }, ptr %t16 store { ptr, i64, i64 } %t17, ptr %a18 - store { ptr, i64, i64 } { ptr @.str.1425, i64 3, i64 0 }, ptr %a19 + store { ptr, i64, i64 } { ptr @.str.1453, i64 3, i64 0 }, ptr %a19 %t20 = call i32 @finch_str_eq(ptr %a18, ptr %a19) %t21 = icmp ne i32 %t20, 0 - br label %logic.rend2504 -logic.rend2504: - br label %logic.end2503 -logic.end2503: - %t22 = phi i1 [ true, %logic.from2501 ], [ %t21, %logic.rend2504 ] - br i1 %t22, label %then2505, label %endif2507 -then2505: + br label %logic.rend2563 +logic.rend2563: + br label %logic.end2562 +logic.end2562: + %t22 = phi i1 [ true, %logic.from2560 ], [ %t21, %logic.rend2563 ] + br i1 %t22, label %then2564, label %endif2566 +then2564: ret i1 true -endif2507: +endif2566: %t23 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t24 = load { ptr, i64, i64 }, ptr %t23 store { ptr, i64, i64 } %t24, ptr %a25 - store { ptr, i64, i64 } { ptr @.str.1426, i64 6, i64 0 }, ptr %a26 + store { ptr, i64, i64 } { ptr @.str.1454, i64 6, i64 0 }, ptr %a26 %t27 = call i32 @finch_str_eq(ptr %a25, ptr %a26) %t28 = icmp ne i32 %t27, 0 - br i1 %t28, label %then2508, label %endif2510 -then2508: + br i1 %t28, label %then2567, label %endif2569 +then2567: %t29 = load ptr, ptr %a1 %t30 = icmp eq ptr %t29, null - br i1 %t30, label %panic2511, label %ok2512 -panic2511: - call void @finch_panic(ptr @.str.1427, i64 664, ptr @.str.1428) + br i1 %t30, label %panic2570, label %ok2571 +panic2570: + call void @finch_panic(ptr @.str.1455, i64 690, ptr @.str.1456) unreachable -ok2512: +ok2571: %t31 = getelementptr inbounds %S.gen.Gen, ptr %t29, i32 0, i32 16 %t32 = load ptr, ptr %a1 %t33 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 @@ -26998,17 +27743,17 @@ ok2512: %t38 = load { ptr, i64, i64 }, ptr %t31 %t39 = extractvalue { ptr, i64, i64 } %t38, 1 %t40 = icmp uge i64 %t37, %t39 - br i1 %t40, label %range2513, label %inrange2514 -range2513: - call void @finch_panic_index(ptr @.str.1429, i64 664, i64 %t37, i64 %t39) + br i1 %t40, label %range2572, label %inrange2573 +range2572: + call void @finch_panic_index(ptr @.str.1457, i64 690, i64 %t37, i64 %t39) unreachable -inrange2514: +inrange2573: %t41 = extractvalue { ptr, i64, i64 } %t38, 0 %t42 = getelementptr inbounds %S.gen.StructDef, ptr %t41, i64 %t37 %t43 = getelementptr inbounds %S.gen.StructDef, ptr %t42, i32 0, i32 16 %t44 = load i1, ptr %t43 ret i1 %t44 -endif2510: +endif2569: ret i1 false } @@ -27071,61 +27816,61 @@ entry: %t2 = getelementptr inbounds %S.ast.Type, ptr %a1, i32 0, i32 0 %t3 = load { ptr, i64, i64 }, ptr %t2 store { ptr, i64, i64 } %t3, ptr %a4 - store { ptr, i64, i64 } { ptr @.str.1430, i64 5, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.1458, i64 5, i64 0 }, ptr %a5 %t6 = call i32 @finch_str_eq(ptr %a4, ptr %a5) %t7 = icmp ne i32 %t6, 0 - br i1 %t7, label %then2515, label %endif2517 -then2515: + br i1 %t7, label %then2574, label %endif2576 +then2574: %t8 = getelementptr inbounds %S.ast.Type, ptr %a1, i32 0, i32 1 %t9 = load { ptr, i64, i64 }, ptr %t8 %t10 = extractvalue { ptr, i64, i64 } %t9, 1 %t11 = icmp uge i64 0, %t10 - br i1 %t11, label %range2518, label %inrange2519 -range2518: - call void @finch_panic_index(ptr @.str.1432, i64 671, i64 0, i64 %t10) + br i1 %t11, label %range2577, label %inrange2578 +range2577: + call void @finch_panic_index(ptr @.str.1460, i64 697, i64 0, i64 %t10) unreachable -inrange2519: +inrange2578: %t12 = extractvalue { ptr, i64, i64 } %t9, 0 %t13 = getelementptr inbounds %S.ast.Type, ptr %t12, i64 0 %t14 = load %S.ast.Type, ptr %t13 %t15 = call { ptr, i64, i64 } @finch.gen.typeKey(%S.ast.Type %t14) - store { ptr, i64, i64 } { ptr @.str.1431, i64 4, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.1459, i64 4, i64 0 }, ptr %a17 store { ptr, i64, i64 } %t15, ptr %a18 call void @finch_str_concat(ptr %a16, ptr %a17, ptr %a18) store { ptr, i64, i64 } %t15, ptr %a19 call void @finch_str_drop(ptr %a19) %t20 = load { ptr, i64, i64 }, ptr %a16 ret { ptr, i64, i64 } %t20 -endif2517: +endif2576: %t21 = getelementptr inbounds %S.ast.Type, ptr %a1, i32 0, i32 0 %t22 = load { ptr, i64, i64 }, ptr %t21 store { ptr, i64, i64 } %t22, ptr %a23 - store { ptr, i64, i64 } { ptr @.str.1433, i64 3, i64 0 }, ptr %a24 + store { ptr, i64, i64 } { ptr @.str.1461, i64 3, i64 0 }, ptr %a24 %t25 = call i32 @finch_str_eq(ptr %a23, ptr %a24) %t26 = icmp ne i32 %t25, 0 - br i1 %t26, label %then2520, label %endif2522 -then2520: + br i1 %t26, label %then2579, label %endif2581 +then2579: %t27 = getelementptr inbounds %S.ast.Type, ptr %a1, i32 0, i32 1 %t28 = load { ptr, i64, i64 }, ptr %t27 %t29 = extractvalue { ptr, i64, i64 } %t28, 1 %t30 = icmp uge i64 0, %t29 - br i1 %t30, label %range2523, label %inrange2524 -range2523: - call void @finch_panic_index(ptr @.str.1435, i64 674, i64 0, i64 %t29) + br i1 %t30, label %range2582, label %inrange2583 +range2582: + call void @finch_panic_index(ptr @.str.1463, i64 700, i64 0, i64 %t29) unreachable -inrange2524: +inrange2583: %t31 = extractvalue { ptr, i64, i64 } %t28, 0 %t32 = getelementptr inbounds %S.ast.Type, ptr %t31, i64 0 %t33 = load %S.ast.Type, ptr %t32 %t34 = call { ptr, i64, i64 } @finch.gen.typeKey(%S.ast.Type %t33) - store { ptr, i64, i64 } { ptr @.str.1434, i64 4, i64 0 }, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.1462, i64 4, i64 0 }, ptr %a36 store { ptr, i64, i64 } %t34, ptr %a37 call void @finch_str_concat(ptr %a35, ptr %a36, ptr %a37) store { ptr, i64, i64 } %t34, ptr %a38 call void @finch_str_drop(ptr %a38) %t39 = load { ptr, i64, i64 }, ptr %a35 store { ptr, i64, i64 } %t39, ptr %a41 - store { ptr, i64, i64 } { ptr @.str.1436, i64 1, i64 0 }, ptr %a42 + store { ptr, i64, i64 } { ptr @.str.1464, i64 1, i64 0 }, ptr %a42 call void @finch_str_concat(ptr %a40, ptr %a41, ptr %a42) store { ptr, i64, i64 } %t39, ptr %a43 call void @finch_str_drop(ptr %a43) @@ -27134,11 +27879,11 @@ inrange2524: %t46 = load { ptr, i64, i64 }, ptr %t45 %t47 = extractvalue { ptr, i64, i64 } %t46, 1 %t48 = icmp uge i64 1, %t47 - br i1 %t48, label %range2525, label %inrange2526 -range2525: - call void @finch_panic_index(ptr @.str.1437, i64 674, i64 1, i64 %t47) + br i1 %t48, label %range2584, label %inrange2585 +range2584: + call void @finch_panic_index(ptr @.str.1465, i64 700, i64 1, i64 %t47) unreachable -inrange2526: +inrange2585: %t49 = extractvalue { ptr, i64, i64 } %t46, 0 %t50 = getelementptr inbounds %S.ast.Type, ptr %t49, i64 1 %t51 = load %S.ast.Type, ptr %t50 @@ -27152,26 +27897,26 @@ inrange2526: call void @finch_str_drop(ptr %a57) %t58 = load { ptr, i64, i64 }, ptr %a53 ret { ptr, i64, i64 } %t58 -endif2522: +endif2581: %t59 = getelementptr inbounds %S.ast.Type, ptr %a1, i32 0, i32 0 %t60 = load { ptr, i64, i64 }, ptr %t59 store { ptr, i64, i64 } %t60, ptr %a61 - store { ptr, i64, i64 } { ptr @.str.1438, i64 4, i64 0 }, ptr %a62 + store { ptr, i64, i64 } { ptr @.str.1466, i64 4, i64 0 }, ptr %a62 %t63 = call i32 @finch_str_eq(ptr %a61, ptr %a62) %t64 = icmp ne i32 %t63, 0 - br i1 %t64, label %then2527, label %endif2529 -then2527: + br i1 %t64, label %then2586, label %endif2588 +then2586: %t65 = getelementptr inbounds %S.ast.Type, ptr %a1, i32 0, i32 3 %t66 = load { ptr, i64, i64 }, ptr %t65 %t67 = call { ptr, i64, i64 } @finch.gen.modName({ ptr, i64, i64 } %t66) - store { ptr, i64, i64 } { ptr @.str.1439, i64 2, i64 0 }, ptr %a69 + store { ptr, i64, i64 } { ptr @.str.1467, i64 2, i64 0 }, ptr %a69 store { ptr, i64, i64 } %t67, ptr %a70 call void @finch_str_concat(ptr %a68, ptr %a69, ptr %a70) store { ptr, i64, i64 } %t67, ptr %a71 call void @finch_str_drop(ptr %a71) %t72 = load { ptr, i64, i64 }, ptr %a68 store { ptr, i64, i64 } %t72, ptr %a74 - store { ptr, i64, i64 } { ptr @.str.1440, i64 1, i64 0 }, ptr %a75 + store { ptr, i64, i64 } { ptr @.str.1468, i64 1, i64 0 }, ptr %a75 call void @finch_str_concat(ptr %a73, ptr %a74, ptr %a75) store { ptr, i64, i64 } %t72, ptr %a76 call void @finch_str_drop(ptr %a76) @@ -27185,26 +27930,26 @@ then2527: call void @finch_str_drop(ptr %a83) %t84 = load { ptr, i64, i64 }, ptr %a80 ret { ptr, i64, i64 } %t84 -endif2529: +endif2588: %t85 = getelementptr inbounds %S.ast.Type, ptr %a1, i32 0, i32 0 %t86 = load { ptr, i64, i64 }, ptr %t85 store { ptr, i64, i64 } %t86, ptr %a87 - store { ptr, i64, i64 } { ptr @.str.1441, i64 6, i64 0 }, ptr %a88 + store { ptr, i64, i64 } { ptr @.str.1469, i64 6, i64 0 }, ptr %a88 %t89 = call i32 @finch_str_eq(ptr %a87, ptr %a88) %t90 = icmp ne i32 %t89, 0 - br i1 %t90, label %then2530, label %endif2532 -then2530: + br i1 %t90, label %then2589, label %endif2591 +then2589: %t91 = getelementptr inbounds %S.ast.Type, ptr %a1, i32 0, i32 3 %t92 = load { ptr, i64, i64 }, ptr %t91 %t93 = call { ptr, i64, i64 } @finch.gen.modName({ ptr, i64, i64 } %t92) - store { ptr, i64, i64 } { ptr @.str.1442, i64 2, i64 0 }, ptr %a95 + store { ptr, i64, i64 } { ptr @.str.1470, i64 2, i64 0 }, ptr %a95 store { ptr, i64, i64 } %t93, ptr %a96 call void @finch_str_concat(ptr %a94, ptr %a95, ptr %a96) store { ptr, i64, i64 } %t93, ptr %a97 call void @finch_str_drop(ptr %a97) %t98 = load { ptr, i64, i64 }, ptr %a94 store { ptr, i64, i64 } %t98, ptr %a100 - store { ptr, i64, i64 } { ptr @.str.1443, i64 1, i64 0 }, ptr %a101 + store { ptr, i64, i64 } { ptr @.str.1471, i64 1, i64 0 }, ptr %a101 call void @finch_str_concat(ptr %a99, ptr %a100, ptr %a101) store { ptr, i64, i64 } %t98, ptr %a102 call void @finch_str_drop(ptr %a102) @@ -27221,7 +27966,7 @@ then2530: call void @finch_str_drop(ptr %a111) %t112 = load { ptr, i64, i64 }, ptr %a107 ret { ptr, i64, i64 } %t112 -endif2532: +endif2591: %t113 = getelementptr inbounds %S.ast.Type, ptr %a1, i32 0, i32 0 %t114 = load { ptr, i64, i64 }, ptr %t113 store { ptr, i64, i64 } %t114, ptr %a115 @@ -27242,17 +27987,17 @@ entry: %a26 = alloca { ptr, i64, i64 }, align 16 %a27 = alloca { ptr, i64, i64 }, align 16 store i64 %p0, ptr %a1 - store { ptr, i64, i64 } { ptr @.str.1444, i64 16, i64 0 }, ptr %a2 + store { ptr, i64, i64 } { ptr @.str.1472, i64 16, i64 0 }, ptr %a2 %t3 = load i64, ptr %a1 %t4 = sdiv i64 %t3, 16 %t5 = load { ptr, i64, i64 }, ptr %a2 %t6 = extractvalue { ptr, i64, i64 } %t5, 1 %t7 = icmp uge i64 %t4, %t6 - br i1 %t7, label %range2533, label %inrange2534 -range2533: - call void @finch_panic_index(ptr @.str.1445, i64 689, i64 %t4, i64 %t6) + br i1 %t7, label %range2592, label %inrange2593 +range2592: + call void @finch_panic_index(ptr @.str.1473, i64 715, i64 %t4, i64 %t6) unreachable -inrange2534: +inrange2593: %t8 = extractvalue { ptr, i64, i64 } %t5, 0 %t9 = getelementptr inbounds i8, ptr %t8, i64 %t4 %t10 = load i8, ptr %t9 @@ -27263,11 +28008,11 @@ inrange2534: %t15 = load { ptr, i64, i64 }, ptr %a2 %t16 = extractvalue { ptr, i64, i64 } %t15, 1 %t17 = icmp uge i64 %t14, %t16 - br i1 %t17, label %range2535, label %inrange2536 -range2535: - call void @finch_panic_index(ptr @.str.1446, i64 689, i64 %t14, i64 %t16) + br i1 %t17, label %range2594, label %inrange2595 +range2594: + call void @finch_panic_index(ptr @.str.1474, i64 715, i64 %t14, i64 %t16) unreachable -inrange2536: +inrange2595: %t18 = extractvalue { ptr, i64, i64 } %t15, 0 %t19 = getelementptr inbounds i8, ptr %t18, i64 %t14 %t20 = load i8, ptr %t19 @@ -27332,27 +28077,27 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic2537, label %ok2538 -panic2537: - call void @finch_panic(ptr @.str.1447, i64 693, ptr @.str.1448) + br i1 %t4, label %panic2596, label %ok2597 +panic2596: + call void @finch_panic(ptr @.str.1475, i64 719, ptr @.str.1476) unreachable -ok2538: +ok2597: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 8 %t6 = load i64, ptr %t5 %t7 = add i64 %t6, 1 store i64 %t7, ptr %t5 %t8 = load ptr, ptr %a1 %t9 = icmp eq ptr %t8, null - br i1 %t9, label %panic2539, label %ok2540 -panic2539: - call void @finch_panic(ptr @.str.1450, i64 694, ptr @.str.1451) + br i1 %t9, label %panic2598, label %ok2599 +panic2598: + call void @finch_panic(ptr @.str.1478, i64 720, ptr @.str.1479) unreachable -ok2540: +ok2599: %t10 = getelementptr inbounds %S.gen.Gen, ptr %t8, i32 0, i32 8 %t11 = load i64, ptr %t10 call void @finch_str_from_int(ptr %a12, i64 %t11) %t13 = load { ptr, i64, i64 }, ptr %a12 - store { ptr, i64, i64 } { ptr @.str.1449, i64 6, i64 0 }, ptr %a15 + store { ptr, i64, i64 } { ptr @.str.1477, i64 6, i64 0 }, ptr %a15 store { ptr, i64, i64 } %t13, ptr %a16 call void @finch_str_concat(ptr %a14, ptr %a15, ptr %a16) store { ptr, i64, i64 } %t13, ptr %a17 @@ -27361,14 +28106,14 @@ ok2540: store { ptr, i64, i64 } %t18, ptr %a19 store { ptr, i64, i64 } zeroinitializer, ptr %a20 store i64 0, ptr %a21 - br label %each.cond2541 -each.cond2541: + br label %each.cond2600 +each.cond2600: %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t23 = load i64, ptr %t22 %t24 = load i64, ptr %a21 %t25 = icmp slt i64 %t24, %t23 - br i1 %t25, label %each.body2542, label %each.end2544 -each.body2542: + br i1 %t25, label %each.body2601, label %each.end2603 +each.body2601: %t26 = load ptr, ptr %a2 %t27 = getelementptr inbounds i8, ptr %t26, i64 %t24 %t28 = load i8, ptr %t27 @@ -27378,50 +28123,50 @@ each.body2542: store i64 %t31, ptr %a32 %t33 = load i64, ptr %a32 %t34 = icmp slt i64 %t33, 0 - br i1 %t34, label %then2545, label %endif2547 -then2545: + br i1 %t34, label %then2604, label %endif2606 +then2604: %t35 = load i64, ptr %a32 %t36 = add i64 %t35, 256 store i64 %t36, ptr %a32 - br label %endif2547 -endif2547: + br label %endif2606 +endif2606: %t37 = load i64, ptr %a32 %t38 = icmp sge i64 %t37, 32 - br label %logic.from2548 -logic.from2548: - br i1 %t38, label %logic.rhs2549, label %logic.end2550 -logic.rhs2549: + br label %logic.from2607 +logic.from2607: + br i1 %t38, label %logic.rhs2608, label %logic.end2609 +logic.rhs2608: %t39 = load i64, ptr %a32 %t40 = icmp slt i64 %t39, 127 - br label %logic.rend2551 -logic.rend2551: - br label %logic.end2550 -logic.end2550: - %t41 = phi i1 [ false, %logic.from2548 ], [ %t40, %logic.rend2551 ] - br label %logic.from2552 -logic.from2552: - br i1 %t41, label %logic.rhs2553, label %logic.end2554 -logic.rhs2553: + br label %logic.rend2610 +logic.rend2610: + br label %logic.end2609 +logic.end2609: + %t41 = phi i1 [ false, %logic.from2607 ], [ %t40, %logic.rend2610 ] + br label %logic.from2611 +logic.from2611: + br i1 %t41, label %logic.rhs2612, label %logic.end2613 +logic.rhs2612: %t42 = load i8, ptr %a29 %t43 = icmp ne i8 %t42, 34 - br label %logic.rend2555 -logic.rend2555: - br label %logic.end2554 -logic.end2554: - %t44 = phi i1 [ false, %logic.from2552 ], [ %t43, %logic.rend2555 ] - br label %logic.from2556 -logic.from2556: - br i1 %t44, label %logic.rhs2557, label %logic.end2558 -logic.rhs2557: + br label %logic.rend2614 +logic.rend2614: + br label %logic.end2613 +logic.end2613: + %t44 = phi i1 [ false, %logic.from2611 ], [ %t43, %logic.rend2614 ] + br label %logic.from2615 +logic.from2615: + br i1 %t44, label %logic.rhs2616, label %logic.end2617 +logic.rhs2616: %t45 = load i8, ptr %a29 %t46 = icmp ne i8 %t45, 92 - br label %logic.rend2559 -logic.rend2559: - br label %logic.end2558 -logic.end2558: - %t47 = phi i1 [ false, %logic.from2556 ], [ %t46, %logic.rend2559 ] - br i1 %t47, label %then2560, label %else2561 -then2560: + br label %logic.rend2618 +logic.rend2618: + br label %logic.end2617 +logic.end2617: + %t47 = phi i1 [ false, %logic.from2615 ], [ %t46, %logic.rend2618 ] + br i1 %t47, label %then2619, label %else2620 +then2619: %t48 = getelementptr inbounds { ptr, i64, i64 }, ptr %a20, i32 0, i32 1 %t49 = load i8, ptr %a29 call void @finch_str_from_char(ptr %a50, i8 signext %t49) @@ -27433,12 +28178,12 @@ then2560: %t55 = getelementptr inbounds { ptr, i64, i64 }, ptr %t54, i64 %t52 store { ptr, i64, i64 } %t51, ptr %t55 store i64 %t53, ptr %t48 - br label %endif2562 -else2561: + br label %endif2621 +else2620: %t56 = getelementptr inbounds { ptr, i64, i64 }, ptr %a20, i32 0, i32 1 %t57 = load i64, ptr %a32 %t58 = call { ptr, i64, i64 } @finch.gen.hex(i64 %t57) - store { ptr, i64, i64 } { ptr @.str.1452, i64 1, i64 0 }, ptr %a60 + store { ptr, i64, i64 } { ptr @.str.1480, i64 1, i64 0 }, ptr %a60 store { ptr, i64, i64 } %t58, ptr %a61 call void @finch_str_concat(ptr %a59, ptr %a60, ptr %a61) store { ptr, i64, i64 } %t58, ptr %a62 @@ -27451,27 +28196,27 @@ else2561: %t67 = getelementptr inbounds { ptr, i64, i64 }, ptr %t66, i64 %t64 store { ptr, i64, i64 } %t63, ptr %t67 store i64 %t65, ptr %t56 - br label %endif2562 -endif2562: - br label %each.step2543 -each.step2543: + br label %endif2621 +endif2621: + br label %each.step2602 +each.step2602: %t68 = load i64, ptr %a21 %t69 = add i64 %t68, 1 store i64 %t69, ptr %a21 - br label %each.cond2541 -each.end2544: + br label %each.cond2600 +each.end2603: %t70 = load ptr, ptr %a1 %t71 = icmp eq ptr %t70, null - br i1 %t71, label %panic2563, label %ok2564 -panic2563: - call void @finch_panic(ptr @.str.1453, i64 707, ptr @.str.1454) + br i1 %t71, label %panic2622, label %ok2623 +panic2622: + call void @finch_panic(ptr @.str.1481, i64 733, ptr @.str.1482) unreachable -ok2564: +ok2623: %t72 = getelementptr inbounds %S.gen.Gen, ptr %t70, i32 0, i32 2 %t73 = getelementptr inbounds { ptr, i64, i64 }, ptr %t72, i32 0, i32 1 %t74 = load { ptr, i64, i64 }, ptr %a19 store { ptr, i64, i64 } %t74, ptr %a76 - store { ptr, i64, i64 } { ptr @.str.1455, i64 34, i64 0 }, ptr %a77 + store { ptr, i64, i64 } { ptr @.str.1483, i64 34, i64 0 }, ptr %a77 call void @finch_str_concat(ptr %a75, ptr %a76, ptr %a77) %t78 = load { ptr, i64, i64 }, ptr %a75 %t79 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 @@ -27488,13 +28233,13 @@ ok2564: call void @finch_str_drop(ptr %a88) %t89 = load { ptr, i64, i64 }, ptr %a84 store { ptr, i64, i64 } %t89, ptr %a91 - store { ptr, i64, i64 } { ptr @.str.1456, i64 9, i64 0 }, ptr %a92 + store { ptr, i64, i64 } { ptr @.str.1484, i64 9, i64 0 }, ptr %a92 call void @finch_str_concat(ptr %a90, ptr %a91, ptr %a92) store { ptr, i64, i64 } %t89, ptr %a93 call void @finch_str_drop(ptr %a93) %t94 = load { ptr, i64, i64 }, ptr %a90 %t95 = getelementptr inbounds { ptr, i64, i64 }, ptr %a20, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.1457, i64 0, i64 0 }, ptr %a96 + store { ptr, i64, i64 } { ptr @.str.1485, i64 0, i64 0 }, ptr %a96 call void @finch_str_join(ptr %a97, ptr %a20, ptr %a96) %t98 = load { ptr, i64, i64 }, ptr %a97 store { ptr, i64, i64 } %t94, ptr %a100 @@ -27506,7 +28251,7 @@ ok2564: call void @finch_str_drop(ptr %a103) %t104 = load { ptr, i64, i64 }, ptr %a99 store { ptr, i64, i64 } %t104, ptr %a106 - store { ptr, i64, i64 } { ptr @.str.1458, i64 4, i64 0 }, ptr %a107 + store { ptr, i64, i64 } { ptr @.str.1486, i64 4, i64 0 }, ptr %a107 call void @finch_str_concat(ptr %a105, ptr %a106, ptr %a107) store { ptr, i64, i64 } %t104, ptr %a108 call void @finch_str_drop(ptr %a108) @@ -27552,12 +28297,12 @@ entry: %t5 = call { ptr, i64, i64 } @finch.gen.strGlobal(ptr %t3, { ptr, i64, i64 } %t4) store { ptr, i64, i64 } %t5, ptr %a6 %t7 = load { ptr, i64, i64 }, ptr %a6 - store { ptr, i64, i64 } { ptr @.str.1459, i64 6, i64 0 }, ptr %a9 + store { ptr, i64, i64 } { ptr @.str.1487, i64 6, i64 0 }, ptr %a9 store { ptr, i64, i64 } %t7, ptr %a10 call void @finch_str_concat(ptr %a8, ptr %a9, ptr %a10) %t11 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t11, ptr %a13 - store { ptr, i64, i64 } { ptr @.str.1460, i64 6, i64 0 }, ptr %a14 + store { ptr, i64, i64 } { ptr @.str.1488, i64 6, i64 0 }, ptr %a14 call void @finch_str_concat(ptr %a12, ptr %a13, ptr %a14) store { ptr, i64, i64 } %t11, ptr %a15 call void @finch_str_drop(ptr %a15) @@ -27575,13 +28320,13 @@ entry: call void @finch_str_drop(ptr %a25) %t26 = load { ptr, i64, i64 }, ptr %a21 store { ptr, i64, i64 } %t26, ptr %a28 - store { ptr, i64, i64 } { ptr @.str.1461, i64 9, i64 0 }, ptr %a29 + store { ptr, i64, i64 } { ptr @.str.1489, i64 9, i64 0 }, ptr %a29 call void @finch_str_concat(ptr %a27, ptr %a28, ptr %a29) store { ptr, i64, i64 } %t26, ptr %a30 call void @finch_str_drop(ptr %a30) %t31 = load { ptr, i64, i64 }, ptr %a27 %t32 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t31, 0 - %t33 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.1462, i64 3, i64 0 }) + %t33 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.1490, i64 3, i64 0 }) %t34 = insertvalue %S.gen.Val %t32, %S.ast.Type %t33, 1 %t35 = insertvalue %S.gen.Val %t34, i1 true, 2 call void @finch_str_drop(ptr %a6) @@ -27629,10 +28374,10 @@ entry: store { ptr, i64, i64 } %p2, ptr %a3 store %S.ast.Node %p3, ptr %a4 %t5 = load ptr, ptr %a1 - %t6 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t5, { ptr, i64, i64 } { ptr @.str.1463, i64 5, i64 0 }) + %t6 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t5, { ptr, i64, i64 } { ptr @.str.1491, i64 5, i64 0 }) store { ptr, i64, i64 } %t6, ptr %a7 %t8 = load ptr, ptr %a1 - %t9 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t8, { ptr, i64, i64 } { ptr @.str.1464, i64 2, i64 0 }) + %t9 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t8, { ptr, i64, i64 } { ptr @.str.1492, i64 2, i64 0 }) store { ptr, i64, i64 } %t9, ptr %a10 %t11 = load ptr, ptr %a1 %t12 = load { ptr, i64, i64 }, ptr %a2 @@ -27645,22 +28390,22 @@ entry: %t17 = load ptr, ptr %a1 %t18 = load ptr, ptr %a1 %t19 = icmp eq ptr %t18, null - br i1 %t19, label %panic2565, label %ok2566 -panic2565: - call void @finch_panic(ptr @.str.1465, i64 723, ptr @.str.1466) + br i1 %t19, label %panic2624, label %ok2625 +panic2624: + call void @finch_panic(ptr @.str.1493, i64 749, ptr @.str.1494) unreachable -ok2566: +ok2625: %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 1 %t21 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 13 %t22 = load i64, ptr %t21 %t23 = load { ptr, i64, i64 }, ptr %t20 %t24 = extractvalue { ptr, i64, i64 } %t23, 1 %t25 = icmp uge i64 %t22, %t24 - br i1 %t25, label %range2567, label %inrange2568 -range2567: - call void @finch_panic_index(ptr @.str.1467, i64 723, i64 %t22, i64 %t24) + br i1 %t25, label %range2626, label %inrange2627 +range2626: + call void @finch_panic_index(ptr @.str.1495, i64 749, i64 %t22, i64 %t24) unreachable -inrange2568: +inrange2627: %t26 = extractvalue { ptr, i64, i64 } %t23, 0 %t27 = getelementptr inbounds { ptr, i64, i64 }, ptr %t26, i64 %t22 %t28 = load { ptr, i64, i64 }, ptr %t27 @@ -27672,12 +28417,12 @@ inrange2568: store { ptr, i64, i64 } %t33, ptr %a34 %t35 = load ptr, ptr %a1 %t36 = load { ptr, i64, i64 }, ptr %a30 - store { ptr, i64, i64 } { ptr @.str.1468, i64 27, i64 0 }, ptr %a38 + store { ptr, i64, i64 } { ptr @.str.1496, i64 27, i64 0 }, ptr %a38 store { ptr, i64, i64 } %t36, ptr %a39 call void @finch_str_concat(ptr %a37, ptr %a38, ptr %a39) %t40 = load { ptr, i64, i64 }, ptr %a37 store { ptr, i64, i64 } %t40, ptr %a42 - store { ptr, i64, i64 } { ptr @.str.1469, i64 6, i64 0 }, ptr %a43 + store { ptr, i64, i64 } { ptr @.str.1497, i64 6, i64 0 }, ptr %a43 call void @finch_str_concat(ptr %a41, ptr %a42, ptr %a43) store { ptr, i64, i64 } %t40, ptr %a44 call void @finch_str_drop(ptr %a44) @@ -27695,7 +28440,7 @@ inrange2568: call void @finch_str_drop(ptr %a54) %t55 = load { ptr, i64, i64 }, ptr %a50 store { ptr, i64, i64 } %t55, ptr %a57 - store { ptr, i64, i64 } { ptr @.str.1470, i64 6, i64 0 }, ptr %a58 + store { ptr, i64, i64 } { ptr @.str.1498, i64 6, i64 0 }, ptr %a58 call void @finch_str_concat(ptr %a56, ptr %a57, ptr %a58) store { ptr, i64, i64 } %t55, ptr %a59 call void @finch_str_drop(ptr %a59) @@ -27708,7 +28453,7 @@ inrange2568: call void @finch_str_drop(ptr %a65) %t66 = load { ptr, i64, i64 }, ptr %a62 store { ptr, i64, i64 } %t66, ptr %a68 - store { ptr, i64, i64 } { ptr @.str.1471, i64 1, i64 0 }, ptr %a69 + store { ptr, i64, i64 } { ptr @.str.1499, i64 1, i64 0 }, ptr %a69 call void @finch_str_concat(ptr %a67, ptr %a68, ptr %a69) store { ptr, i64, i64 } %t66, ptr %a70 call void @finch_str_drop(ptr %a70) @@ -27717,14 +28462,14 @@ inrange2568: store { ptr, i64, i64 } %t71, ptr %a72 call void @finch_str_drop(ptr %a72) %t73 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t73, { ptr, i64, i64 } { ptr @.str.1472, i64 11, i64 0 }) + call void @finch.gen.emit(ptr %t73, { ptr, i64, i64 } { ptr @.str.1500, i64 11, i64 0 }) %t74 = load ptr, ptr %a1 %t75 = icmp eq ptr %t74, null - br i1 %t75, label %panic2569, label %ok2570 -panic2569: - call void @finch_panic(ptr @.str.1473, i64 727, ptr @.str.1474) + br i1 %t75, label %panic2628, label %ok2629 +panic2628: + call void @finch_panic(ptr @.str.1501, i64 753, ptr @.str.1502) unreachable -ok2570: +ok2629: %t76 = getelementptr inbounds %S.gen.Gen, ptr %t74, i32 0, i32 9 store i1 true, ptr %t76 %t77 = load ptr, ptr %a1 @@ -27798,19 +28543,19 @@ entry: store { ptr, i64, i64 } %p2, ptr %a3 store %S.ast.Node %p3, ptr %a4 %t5 = load ptr, ptr %a1 - %t6 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t5, { ptr, i64, i64 } { ptr @.str.1475, i64 5, i64 0 }) + %t6 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t5, { ptr, i64, i64 } { ptr @.str.1503, i64 5, i64 0 }) store { ptr, i64, i64 } %t6, ptr %a7 %t8 = load ptr, ptr %a1 - %t9 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t8, { ptr, i64, i64 } { ptr @.str.1476, i64 7, i64 0 }) + %t9 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t8, { ptr, i64, i64 } { ptr @.str.1504, i64 7, i64 0 }) store { ptr, i64, i64 } %t9, ptr %a10 %t11 = load ptr, ptr %a1 %t12 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1477, i64 13, i64 0 }, ptr %a14 + store { ptr, i64, i64 } { ptr @.str.1505, i64 13, i64 0 }, ptr %a14 store { ptr, i64, i64 } %t12, ptr %a15 call void @finch_str_concat(ptr %a13, ptr %a14, ptr %a15) %t16 = load { ptr, i64, i64 }, ptr %a13 store { ptr, i64, i64 } %t16, ptr %a18 - store { ptr, i64, i64 } { ptr @.str.1478, i64 2, i64 0 }, ptr %a19 + store { ptr, i64, i64 } { ptr @.str.1506, i64 2, i64 0 }, ptr %a19 call void @finch_str_concat(ptr %a17, ptr %a18, ptr %a19) store { ptr, i64, i64 } %t16, ptr %a20 call void @finch_str_drop(ptr %a20) @@ -27837,22 +28582,22 @@ entry: %t37 = load ptr, ptr %a1 %t38 = load ptr, ptr %a1 %t39 = icmp eq ptr %t38, null - br i1 %t39, label %panic2571, label %ok2572 -panic2571: - call void @finch_panic(ptr @.str.1479, i64 737, ptr @.str.1480) + br i1 %t39, label %panic2630, label %ok2631 +panic2630: + call void @finch_panic(ptr @.str.1507, i64 763, ptr @.str.1508) unreachable -ok2572: +ok2631: %t40 = getelementptr inbounds %S.gen.Gen, ptr %t38, i32 0, i32 1 %t41 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 13 %t42 = load i64, ptr %t41 %t43 = load { ptr, i64, i64 }, ptr %t40 %t44 = extractvalue { ptr, i64, i64 } %t43, 1 %t45 = icmp uge i64 %t42, %t44 - br i1 %t45, label %range2573, label %inrange2574 -range2573: - call void @finch_panic_index(ptr @.str.1481, i64 737, i64 %t42, i64 %t44) + br i1 %t45, label %range2632, label %inrange2633 +range2632: + call void @finch_panic_index(ptr @.str.1509, i64 763, i64 %t42, i64 %t44) unreachable -inrange2574: +inrange2633: %t46 = extractvalue { ptr, i64, i64 } %t43, 0 %t47 = getelementptr inbounds { ptr, i64, i64 }, ptr %t46, i64 %t42 %t48 = load { ptr, i64, i64 }, ptr %t47 @@ -27860,12 +28605,12 @@ inrange2574: store { ptr, i64, i64 } %t49, ptr %a50 %t51 = load ptr, ptr %a1 %t52 = load { ptr, i64, i64 }, ptr %a50 - store { ptr, i64, i64 } { ptr @.str.1482, i64 33, i64 0 }, ptr %a54 + store { ptr, i64, i64 } { ptr @.str.1510, i64 33, i64 0 }, ptr %a54 store { ptr, i64, i64 } %t52, ptr %a55 call void @finch_str_concat(ptr %a53, ptr %a54, ptr %a55) %t56 = load { ptr, i64, i64 }, ptr %a53 store { ptr, i64, i64 } %t56, ptr %a58 - store { ptr, i64, i64 } { ptr @.str.1483, i64 6, i64 0 }, ptr %a59 + store { ptr, i64, i64 } { ptr @.str.1511, i64 6, i64 0 }, ptr %a59 call void @finch_str_concat(ptr %a57, ptr %a58, ptr %a59) store { ptr, i64, i64 } %t56, ptr %a60 call void @finch_str_drop(ptr %a60) @@ -27883,7 +28628,7 @@ inrange2574: call void @finch_str_drop(ptr %a70) %t71 = load { ptr, i64, i64 }, ptr %a66 store { ptr, i64, i64 } %t71, ptr %a73 - store { ptr, i64, i64 } { ptr @.str.1484, i64 6, i64 0 }, ptr %a74 + store { ptr, i64, i64 } { ptr @.str.1512, i64 6, i64 0 }, ptr %a74 call void @finch_str_concat(ptr %a72, ptr %a73, ptr %a74) store { ptr, i64, i64 } %t71, ptr %a75 call void @finch_str_drop(ptr %a75) @@ -27896,7 +28641,7 @@ inrange2574: call void @finch_str_drop(ptr %a81) %t82 = load { ptr, i64, i64 }, ptr %a78 store { ptr, i64, i64 } %t82, ptr %a84 - store { ptr, i64, i64 } { ptr @.str.1485, i64 6, i64 0 }, ptr %a85 + store { ptr, i64, i64 } { ptr @.str.1513, i64 6, i64 0 }, ptr %a85 call void @finch_str_concat(ptr %a83, ptr %a84, ptr %a85) store { ptr, i64, i64 } %t82, ptr %a86 call void @finch_str_drop(ptr %a86) @@ -27909,7 +28654,7 @@ inrange2574: call void @finch_str_drop(ptr %a92) %t93 = load { ptr, i64, i64 }, ptr %a89 store { ptr, i64, i64 } %t93, ptr %a95 - store { ptr, i64, i64 } { ptr @.str.1486, i64 1, i64 0 }, ptr %a96 + store { ptr, i64, i64 } { ptr @.str.1514, i64 1, i64 0 }, ptr %a96 call void @finch_str_concat(ptr %a94, ptr %a95, ptr %a96) store { ptr, i64, i64 } %t93, ptr %a97 call void @finch_str_drop(ptr %a97) @@ -27918,14 +28663,14 @@ inrange2574: store { ptr, i64, i64 } %t98, ptr %a99 call void @finch_str_drop(ptr %a99) %t100 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t100, { ptr, i64, i64 } { ptr @.str.1487, i64 11, i64 0 }) + call void @finch.gen.emit(ptr %t100, { ptr, i64, i64 } { ptr @.str.1515, i64 11, i64 0 }) %t101 = load ptr, ptr %a1 %t102 = icmp eq ptr %t101, null - br i1 %t102, label %panic2575, label %ok2576 -panic2575: - call void @finch_panic(ptr @.str.1488, i64 740, ptr @.str.1489) + br i1 %t102, label %panic2634, label %ok2635 +panic2634: + call void @finch_panic(ptr @.str.1516, i64 766, ptr @.str.1517) unreachable -ok2576: +ok2635: %t103 = getelementptr inbounds %S.gen.Gen, ptr %t101, i32 0, i32 9 store i1 true, ptr %t103 %t104 = load ptr, ptr %a1 @@ -27956,11 +28701,11 @@ entry: store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 %t3 = icmp eq ptr %t2, null - br i1 %t3, label %panic2577, label %ok2578 -panic2577: - call void @finch_panic(ptr @.str.1490, i64 755, ptr @.str.1491) + br i1 %t3, label %panic2636, label %ok2637 +panic2636: + call void @finch_panic(ptr @.str.1518, i64 781, ptr @.str.1519) unreachable -ok2578: +ok2637: %t4 = getelementptr inbounds %S.gen.Gen, ptr %t2, i32 0, i32 4 %t5 = load { ptr, i64, i64 }, ptr %t4 store { ptr, i64, i64 } %t5, ptr %a6 @@ -27969,11 +28714,11 @@ ok2578: %t9 = insertvalue %S.gen.Saved zeroinitializer, { ptr, i64, i64 } %t8, 0 %t10 = load ptr, ptr %a1 %t11 = icmp eq ptr %t10, null - br i1 %t11, label %panic2579, label %ok2580 -panic2579: - call void @finch_panic(ptr @.str.1492, i64 755, ptr @.str.1493) + br i1 %t11, label %panic2638, label %ok2639 +panic2638: + call void @finch_panic(ptr @.str.1520, i64 781, ptr @.str.1521) unreachable -ok2580: +ok2639: %t12 = getelementptr inbounds %S.gen.Gen, ptr %t10, i32 0, i32 5 %t13 = load { ptr, i64, i64 }, ptr %t12 store { ptr, i64, i64 } %t13, ptr %a14 @@ -27982,53 +28727,53 @@ ok2580: %t17 = insertvalue %S.gen.Saved %t9, { ptr, i64, i64 } %t16, 1 %t18 = load ptr, ptr %a1 %t19 = icmp eq ptr %t18, null - br i1 %t19, label %panic2581, label %ok2582 -panic2581: - call void @finch_panic(ptr @.str.1494, i64 755, ptr @.str.1495) + br i1 %t19, label %panic2640, label %ok2641 +panic2640: + call void @finch_panic(ptr @.str.1522, i64 781, ptr @.str.1523) unreachable -ok2582: +ok2641: %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 6 %t21 = load i64, ptr %t20 %t22 = insertvalue %S.gen.Saved %t17, i64 %t21, 2 %t23 = load ptr, ptr %a1 %t24 = icmp eq ptr %t23, null - br i1 %t24, label %panic2583, label %ok2584 -panic2583: - call void @finch_panic(ptr @.str.1496, i64 755, ptr @.str.1497) + br i1 %t24, label %panic2642, label %ok2643 +panic2642: + call void @finch_panic(ptr @.str.1524, i64 781, ptr @.str.1525) unreachable -ok2584: +ok2643: %t25 = getelementptr inbounds %S.gen.Gen, ptr %t23, i32 0, i32 9 %t26 = load i1, ptr %t25 %t27 = insertvalue %S.gen.Saved %t22, i1 %t26, 3 %t28 = load ptr, ptr %a1 %t29 = icmp eq ptr %t28, null - br i1 %t29, label %panic2585, label %ok2586 -panic2585: - call void @finch_panic(ptr @.str.1498, i64 755, ptr @.str.1499) + br i1 %t29, label %panic2644, label %ok2645 +panic2644: + call void @finch_panic(ptr @.str.1526, i64 781, ptr @.str.1527) unreachable -ok2586: - %t30 = getelementptr inbounds %S.gen.Gen, ptr %t28, i32 0, i32 35 +ok2645: + %t30 = getelementptr inbounds %S.gen.Gen, ptr %t28, i32 0, i32 36 %t31 = load i64, ptr %t30 %t32 = insertvalue %S.gen.Saved %t27, i64 %t31, 4 store %S.gen.Saved %t32, ptr %a33 %t34 = load ptr, ptr %a1 %t35 = icmp eq ptr %t34, null - br i1 %t35, label %panic2587, label %ok2588 -panic2587: - call void @finch_panic(ptr @.str.1500, i64 756, ptr @.str.1501) + br i1 %t35, label %panic2646, label %ok2647 +panic2646: + call void @finch_panic(ptr @.str.1528, i64 782, ptr @.str.1529) unreachable -ok2588: - %t36 = getelementptr inbounds %S.gen.Gen, ptr %t34, i32 0, i32 35 +ok2647: + %t36 = getelementptr inbounds %S.gen.Gen, ptr %t34, i32 0, i32 36 store i64 -1, ptr %t36 store { ptr, i64, i64 } zeroinitializer, ptr %a37 %t38 = load { ptr, i64, i64 }, ptr %a37 %t39 = load ptr, ptr %a1 %t40 = icmp eq ptr %t39, null - br i1 %t40, label %panic2589, label %ok2590 -panic2589: - call void @finch_panic(ptr @.str.1502, i64 758, ptr @.str.1503) + br i1 %t40, label %panic2648, label %ok2649 +panic2648: + call void @finch_panic(ptr @.str.1530, i64 784, ptr @.str.1531) unreachable -ok2590: +ok2649: %t41 = getelementptr inbounds %S.gen.Gen, ptr %t39, i32 0, i32 4 store { ptr, i64, i64 } %t38, ptr %a42 call void @finch.copy.arr_str(ptr %a43, ptr %a42) @@ -28040,11 +28785,11 @@ ok2590: %t47 = load { ptr, i64, i64 }, ptr %a37 %t48 = load ptr, ptr %a1 %t49 = icmp eq ptr %t48, null - br i1 %t49, label %panic2591, label %ok2592 -panic2591: - call void @finch_panic(ptr @.str.1504, i64 759, ptr @.str.1505) + br i1 %t49, label %panic2650, label %ok2651 +panic2650: + call void @finch_panic(ptr @.str.1532, i64 785, ptr @.str.1533) unreachable -ok2592: +ok2651: %t50 = getelementptr inbounds %S.gen.Gen, ptr %t48, i32 0, i32 5 store { ptr, i64, i64 } %t47, ptr %a51 call void @finch.copy.arr_str(ptr %a52, ptr %a51) @@ -28055,20 +28800,20 @@ ok2592: call void @finch.drop.arr_str(ptr %a55) %t56 = load ptr, ptr %a1 %t57 = icmp eq ptr %t56, null - br i1 %t57, label %panic2593, label %ok2594 -panic2593: - call void @finch_panic(ptr @.str.1506, i64 760, ptr @.str.1507) + br i1 %t57, label %panic2652, label %ok2653 +panic2652: + call void @finch_panic(ptr @.str.1534, i64 786, ptr @.str.1535) unreachable -ok2594: +ok2653: %t58 = getelementptr inbounds %S.gen.Gen, ptr %t56, i32 0, i32 6 store i64 0, ptr %t58 %t59 = load ptr, ptr %a1 %t60 = icmp eq ptr %t59, null - br i1 %t60, label %panic2595, label %ok2596 -panic2595: - call void @finch_panic(ptr @.str.1508, i64 761, ptr @.str.1509) + br i1 %t60, label %panic2654, label %ok2655 +panic2654: + call void @finch_panic(ptr @.str.1536, i64 787, ptr @.str.1537) unreachable -ok2596: +ok2655: %t61 = getelementptr inbounds %S.gen.Gen, ptr %t59, i32 0, i32 9 store i1 false, ptr %t61 %t62 = load %S.gen.Saved, ptr %a33 @@ -28117,28 +28862,28 @@ entry: store { ptr, i64, i64 } %p2, ptr %a3 %t4 = load ptr, ptr %a1 %t5 = icmp eq ptr %t4, null - br i1 %t5, label %panic2597, label %ok2598 -panic2597: - call void @finch_panic(ptr @.str.1510, i64 766, ptr @.str.1511) + br i1 %t5, label %panic2656, label %ok2657 +panic2656: + call void @finch_panic(ptr @.str.1538, i64 792, ptr @.str.1539) unreachable -ok2598: +ok2657: %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 3 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t6, i32 0, i32 1 %t8 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t8, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.1512, i64 10, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.1540, i64 10, i64 0 }, ptr %a11 call void @finch_str_concat(ptr %a9, ptr %a10, ptr %a11) %t12 = load { ptr, i64, i64 }, ptr %a9 %t13 = load ptr, ptr %a1 %t14 = icmp eq ptr %t13, null - br i1 %t14, label %panic2599, label %ok2600 -panic2599: - call void @finch_panic(ptr @.str.1513, i64 766, ptr @.str.1514) + br i1 %t14, label %panic2658, label %ok2659 +panic2658: + call void @finch_panic(ptr @.str.1541, i64 792, ptr @.str.1542) unreachable -ok2600: +ok2659: %t15 = getelementptr inbounds %S.gen.Gen, ptr %t13, i32 0, i32 5 %t16 = getelementptr inbounds { ptr, i64, i64 }, ptr %t15, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.1515, i64 1, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.1543, i64 1, i64 0 }, ptr %a17 call void @finch_str_join(ptr %a18, ptr %t15, ptr %a17) %t19 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t12, ptr %a21 @@ -28150,21 +28895,21 @@ ok2600: call void @finch_str_drop(ptr %a24) %t25 = load { ptr, i64, i64 }, ptr %a20 store { ptr, i64, i64 } %t25, ptr %a27 - store { ptr, i64, i64 } { ptr @.str.1516, i64 1, i64 0 }, ptr %a28 + store { ptr, i64, i64 } { ptr @.str.1544, i64 1, i64 0 }, ptr %a28 call void @finch_str_concat(ptr %a26, ptr %a27, ptr %a28) store { ptr, i64, i64 } %t25, ptr %a29 call void @finch_str_drop(ptr %a29) %t30 = load { ptr, i64, i64 }, ptr %a26 %t31 = load ptr, ptr %a1 %t32 = icmp eq ptr %t31, null - br i1 %t32, label %panic2601, label %ok2602 -panic2601: - call void @finch_panic(ptr @.str.1517, i64 766, ptr @.str.1518) + br i1 %t32, label %panic2660, label %ok2661 +panic2660: + call void @finch_panic(ptr @.str.1545, i64 792, ptr @.str.1546) unreachable -ok2602: +ok2661: %t33 = getelementptr inbounds %S.gen.Gen, ptr %t31, i32 0, i32 4 %t34 = getelementptr inbounds { ptr, i64, i64 }, ptr %t33, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.1519, i64 1, i64 0 }, ptr %a35 + store { ptr, i64, i64 } { ptr @.str.1547, i64 1, i64 0 }, ptr %a35 call void @finch_str_join(ptr %a36, ptr %t33, ptr %a35) %t37 = load { ptr, i64, i64 }, ptr %a36 store { ptr, i64, i64 } %t30, ptr %a39 @@ -28176,7 +28921,7 @@ ok2602: call void @finch_str_drop(ptr %a42) %t43 = load { ptr, i64, i64 }, ptr %a38 store { ptr, i64, i64 } %t43, ptr %a45 - store { ptr, i64, i64 } { ptr @.str.1520, i64 3, i64 0 }, ptr %a46 + store { ptr, i64, i64 } { ptr @.str.1548, i64 3, i64 0 }, ptr %a46 call void @finch_str_concat(ptr %a44, ptr %a45, ptr %a46) store { ptr, i64, i64 } %t43, ptr %a47 call void @finch_str_drop(ptr %a47) @@ -28192,11 +28937,11 @@ ok2602: %t54 = load { ptr, i64, i64 }, ptr %t53 %t55 = load ptr, ptr %a1 %t56 = icmp eq ptr %t55, null - br i1 %t56, label %panic2603, label %ok2604 -panic2603: - call void @finch_panic(ptr @.str.1521, i64 767, ptr @.str.1522) + br i1 %t56, label %panic2662, label %ok2663 +panic2662: + call void @finch_panic(ptr @.str.1549, i64 793, ptr @.str.1550) unreachable -ok2604: +ok2663: %t57 = getelementptr inbounds %S.gen.Gen, ptr %t55, i32 0, i32 4 store { ptr, i64, i64 } %t54, ptr %a58 call void @finch.copy.arr_str(ptr %a59, ptr %a58) @@ -28209,11 +28954,11 @@ ok2604: %t64 = load { ptr, i64, i64 }, ptr %t63 %t65 = load ptr, ptr %a1 %t66 = icmp eq ptr %t65, null - br i1 %t66, label %panic2605, label %ok2606 -panic2605: - call void @finch_panic(ptr @.str.1523, i64 768, ptr @.str.1524) + br i1 %t66, label %panic2664, label %ok2665 +panic2664: + call void @finch_panic(ptr @.str.1551, i64 794, ptr @.str.1552) unreachable -ok2606: +ok2665: %t67 = getelementptr inbounds %S.gen.Gen, ptr %t65, i32 0, i32 5 store { ptr, i64, i64 } %t64, ptr %a68 call void @finch.copy.arr_str(ptr %a69, ptr %a68) @@ -28226,34 +28971,34 @@ ok2606: %t74 = load i64, ptr %t73 %t75 = load ptr, ptr %a1 %t76 = icmp eq ptr %t75, null - br i1 %t76, label %panic2607, label %ok2608 -panic2607: - call void @finch_panic(ptr @.str.1525, i64 769, ptr @.str.1526) + br i1 %t76, label %panic2666, label %ok2667 +panic2666: + call void @finch_panic(ptr @.str.1553, i64 795, ptr @.str.1554) unreachable -ok2608: +ok2667: %t77 = getelementptr inbounds %S.gen.Gen, ptr %t75, i32 0, i32 6 store i64 %t74, ptr %t77 %t78 = getelementptr inbounds %S.gen.Saved, ptr %a2, i32 0, i32 3 %t79 = load i1, ptr %t78 %t80 = load ptr, ptr %a1 %t81 = icmp eq ptr %t80, null - br i1 %t81, label %panic2609, label %ok2610 -panic2609: - call void @finch_panic(ptr @.str.1527, i64 770, ptr @.str.1528) + br i1 %t81, label %panic2668, label %ok2669 +panic2668: + call void @finch_panic(ptr @.str.1555, i64 796, ptr @.str.1556) unreachable -ok2610: +ok2669: %t82 = getelementptr inbounds %S.gen.Gen, ptr %t80, i32 0, i32 9 store i1 %t79, ptr %t82 %t83 = getelementptr inbounds %S.gen.Saved, ptr %a2, i32 0, i32 4 %t84 = load i64, ptr %t83 %t85 = load ptr, ptr %a1 %t86 = icmp eq ptr %t85, null - br i1 %t86, label %panic2611, label %ok2612 -panic2611: - call void @finch_panic(ptr @.str.1529, i64 771, ptr @.str.1530) + br i1 %t86, label %panic2670, label %ok2671 +panic2670: + call void @finch_panic(ptr @.str.1557, i64 797, ptr @.str.1558) unreachable -ok2612: - %t87 = getelementptr inbounds %S.gen.Gen, ptr %t85, i32 0, i32 35 +ok2671: + %t87 = getelementptr inbounds %S.gen.Gen, ptr %t85, i32 0, i32 36 store i64 %t84, ptr %t87 ret void } @@ -28291,19 +29036,19 @@ entry: store ptr %p0, ptr %a1 store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 - %t4 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t3, { ptr, i64, i64 } { ptr @.str.1531, i64 3, i64 0 }) + %t4 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t3, { ptr, i64, i64 } { ptr @.str.1559, i64 3, i64 0 }) store { ptr, i64, i64 } %t4, ptr %a5 %t6 = load ptr, ptr %a1 %t7 = load { ptr, i64, i64 }, ptr %a5 - call void @finch.gen.store(ptr %t6, { ptr, i64, i64 } { ptr @.str.1532, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.1533, i64 1, i64 0 }, { ptr, i64, i64 } %t7) + call void @finch.gen.store(ptr %t6, { ptr, i64, i64 } { ptr @.str.1560, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.1561, i64 1, i64 0 }, { ptr, i64, i64 } %t7) %t8 = load ptr, ptr %a1 - %t9 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t8, { ptr, i64, i64 } { ptr @.str.1534, i64 6, i64 0 }) + %t9 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t8, { ptr, i64, i64 } { ptr @.str.1562, i64 6, i64 0 }) store { ptr, i64, i64 } %t9, ptr %a10 %t11 = load ptr, ptr %a1 - %t12 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t11, { ptr, i64, i64 } { ptr @.str.1535, i64 6, i64 0 }) + %t12 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t11, { ptr, i64, i64 } { ptr @.str.1563, i64 6, i64 0 }) store { ptr, i64, i64 } %t12, ptr %a13 %t14 = load ptr, ptr %a1 - %t15 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t14, { ptr, i64, i64 } { ptr @.str.1536, i64 5, i64 0 }) + %t15 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t14, { ptr, i64, i64 } { ptr @.str.1564, i64 5, i64 0 }) store { ptr, i64, i64 } %t15, ptr %a16 %t17 = load ptr, ptr %a1 %t18 = load { ptr, i64, i64 }, ptr %a10 @@ -28313,16 +29058,16 @@ entry: call void @finch.gen.label(ptr %t19, { ptr, i64, i64 } %t20) %t21 = load ptr, ptr %a1 %t22 = load { ptr, i64, i64 }, ptr %a5 - %t23 = call { ptr, i64, i64 } @finch.gen.load(ptr %t21, { ptr, i64, i64 } { ptr @.str.1537, i64 3, i64 0 }, { ptr, i64, i64 } %t22) + %t23 = call { ptr, i64, i64 } @finch.gen.load(ptr %t21, { ptr, i64, i64 } { ptr @.str.1565, i64 3, i64 0 }, { ptr, i64, i64 } %t22) store { ptr, i64, i64 } %t23, ptr %a24 %t25 = load ptr, ptr %a1 %t26 = load { ptr, i64, i64 }, ptr %a24 - store { ptr, i64, i64 } { ptr @.str.1538, i64 13, i64 0 }, ptr %a28 + store { ptr, i64, i64 } { ptr @.str.1566, i64 13, i64 0 }, ptr %a28 store { ptr, i64, i64 } %t26, ptr %a29 call void @finch_str_concat(ptr %a27, ptr %a28, ptr %a29) %t30 = load { ptr, i64, i64 }, ptr %a27 store { ptr, i64, i64 } %t30, ptr %a32 - store { ptr, i64, i64 } { ptr @.str.1539, i64 2, i64 0 }, ptr %a33 + store { ptr, i64, i64 } { ptr @.str.1567, i64 2, i64 0 }, ptr %a33 call void @finch_str_concat(ptr %a31, ptr %a32, ptr %a33) store { ptr, i64, i64 } %t30, ptr %a34 call void @finch_str_drop(ptr %a34) @@ -28404,25 +29149,25 @@ entry: %t4 = load { ptr, i64, i64 }, ptr %a2 %t5 = extractvalue { ptr, i64, i64 } %t4, 1 %t6 = icmp uge i64 0, %t5 - br i1 %t6, label %range2613, label %inrange2614 -range2613: - call void @finch_panic_index(ptr @.str.1541, i64 791, i64 0, i64 %t5) + br i1 %t6, label %range2672, label %inrange2673 +range2672: + call void @finch_panic_index(ptr @.str.1569, i64 817, i64 0, i64 %t5) unreachable -inrange2614: +inrange2673: %t7 = extractvalue { ptr, i64, i64 } %t4, 0 %t8 = getelementptr inbounds { ptr, i64, i64 }, ptr %t7, i64 0 %t9 = load { ptr, i64, i64 }, ptr %t8 - %t10 = call { ptr, i64, i64 } @finch.gen.load(ptr %t3, { ptr, i64, i64 } { ptr @.str.1540, i64 3, i64 0 }, { ptr, i64, i64 } %t9) + %t10 = call { ptr, i64, i64 } @finch.gen.load(ptr %t3, { ptr, i64, i64 } { ptr @.str.1568, i64 3, i64 0 }, { ptr, i64, i64 } %t9) store { ptr, i64, i64 } %t10, ptr %a11 %t12 = load ptr, ptr %a1 %t13 = load ptr, ptr %a1 %t14 = load { ptr, i64, i64 }, ptr %a11 - store { ptr, i64, i64 } { ptr @.str.1543, i64 8, i64 0 }, ptr %a16 + store { ptr, i64, i64 } { ptr @.str.1571, i64 8, i64 0 }, ptr %a16 store { ptr, i64, i64 } %t14, ptr %a17 call void @finch_str_concat(ptr %a15, ptr %a16, ptr %a17) %t18 = load { ptr, i64, i64 }, ptr %a15 store { ptr, i64, i64 } %t18, ptr %a20 - store { ptr, i64, i64 } { ptr @.str.1544, i64 3, i64 0 }, ptr %a21 + store { ptr, i64, i64 } { ptr @.str.1572, i64 3, i64 0 }, ptr %a21 call void @finch_str_concat(ptr %a19, ptr %a20, ptr %a21) store { ptr, i64, i64 } %t18, ptr %a22 call void @finch_str_drop(ptr %a22) @@ -28433,26 +29178,26 @@ inrange2614: %t26 = load { ptr, i64, i64 }, ptr %a2 %t27 = extractvalue { ptr, i64, i64 } %t26, 1 %t28 = icmp uge i64 0, %t27 - br i1 %t28, label %range2615, label %inrange2616 -range2615: - call void @finch_panic_index(ptr @.str.1545, i64 792, i64 0, i64 %t27) + br i1 %t28, label %range2674, label %inrange2675 +range2674: + call void @finch_panic_index(ptr @.str.1573, i64 818, i64 0, i64 %t27) unreachable -inrange2616: +inrange2675: %t29 = extractvalue { ptr, i64, i64 } %t26, 0 %t30 = getelementptr inbounds { ptr, i64, i64 }, ptr %t29, i64 0 %t31 = load { ptr, i64, i64 }, ptr %t30 - call void @finch.gen.store(ptr %t12, { ptr, i64, i64 } { ptr @.str.1542, i64 3, i64 0 }, { ptr, i64, i64 } %t24, { ptr, i64, i64 } %t31) + call void @finch.gen.store(ptr %t12, { ptr, i64, i64 } { ptr @.str.1570, i64 3, i64 0 }, { ptr, i64, i64 } %t24, { ptr, i64, i64 } %t31) store { ptr, i64, i64 } %t24, ptr %a32 call void @finch_str_drop(ptr %a32) %t33 = load ptr, ptr %a1 %t34 = load { ptr, i64, i64 }, ptr %a2 %t35 = extractvalue { ptr, i64, i64 } %t34, 1 %t36 = icmp uge i64 1, %t35 - br i1 %t36, label %range2617, label %inrange2618 -range2617: - call void @finch_panic_index(ptr @.str.1546, i64 793, i64 1, i64 %t35) + br i1 %t36, label %range2676, label %inrange2677 +range2676: + call void @finch_panic_index(ptr @.str.1574, i64 819, i64 1, i64 %t35) unreachable -inrange2618: +inrange2677: %t37 = extractvalue { ptr, i64, i64 } %t34, 0 %t38 = getelementptr inbounds { ptr, i64, i64 }, ptr %t37, i64 1 %t39 = load { ptr, i64, i64 }, ptr %t38 @@ -28461,11 +29206,11 @@ inrange2618: %t41 = load { ptr, i64, i64 }, ptr %a2 %t42 = extractvalue { ptr, i64, i64 } %t41, 1 %t43 = icmp uge i64 2, %t42 - br i1 %t43, label %range2619, label %inrange2620 -range2619: - call void @finch_panic_index(ptr @.str.1547, i64 794, i64 2, i64 %t42) + br i1 %t43, label %range2678, label %inrange2679 +range2678: + call void @finch_panic_index(ptr @.str.1575, i64 820, i64 2, i64 %t42) unreachable -inrange2620: +inrange2679: %t44 = extractvalue { ptr, i64, i64 } %t41, 0 %t45 = getelementptr inbounds { ptr, i64, i64 }, ptr %t44, i64 2 %t46 = load { ptr, i64, i64 }, ptr %t45 @@ -28539,19 +29284,19 @@ entry: %t5 = getelementptr inbounds %S.ast.Type, ptr %a4, i32 0, i32 0 %t6 = load { ptr, i64, i64 }, ptr %t5 store { ptr, i64, i64 } %t6, ptr %a7 - store { ptr, i64, i64 } { ptr @.str.1548, i64 3, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.1576, i64 3, i64 0 }, ptr %a8 %t9 = call i32 @finch_str_eq(ptr %a7, ptr %a8) %t10 = icmp ne i32 %t9, 0 - br i1 %t10, label %then2621, label %else2622 -then2621: + br i1 %t10, label %then2680, label %else2681 +then2680: %t11 = load ptr, ptr %a1 %t12 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1549, i64 30, i64 0 }, ptr %a14 + store { ptr, i64, i64 } { ptr @.str.1577, i64 30, i64 0 }, ptr %a14 store { ptr, i64, i64 } %t12, ptr %a15 call void @finch_str_concat(ptr %a13, ptr %a14, ptr %a15) %t16 = load { ptr, i64, i64 }, ptr %a13 store { ptr, i64, i64 } %t16, ptr %a18 - store { ptr, i64, i64 } { ptr @.str.1550, i64 6, i64 0 }, ptr %a19 + store { ptr, i64, i64 } { ptr @.str.1578, i64 6, i64 0 }, ptr %a19 call void @finch_str_concat(ptr %a17, ptr %a18, ptr %a19) store { ptr, i64, i64 } %t16, ptr %a20 call void @finch_str_drop(ptr %a20) @@ -28564,7 +29309,7 @@ then2621: call void @finch_str_drop(ptr %a26) %t27 = load { ptr, i64, i64 }, ptr %a23 store { ptr, i64, i64 } %t27, ptr %a29 - store { ptr, i64, i64 } { ptr @.str.1551, i64 1, i64 0 }, ptr %a30 + store { ptr, i64, i64 } { ptr @.str.1579, i64 1, i64 0 }, ptr %a30 call void @finch_str_concat(ptr %a28, ptr %a29, ptr %a30) store { ptr, i64, i64 } %t27, ptr %a31 call void @finch_str_drop(ptr %a31) @@ -28572,70 +29317,70 @@ then2621: call void @finch.gen.emit(ptr %t11, { ptr, i64, i64 } %t32) store { ptr, i64, i64 } %t32, ptr %a33 call void @finch_str_drop(ptr %a33) - br label %endif2623 -else2622: + br label %endif2682 +else2681: %t34 = getelementptr inbounds %S.ast.Type, ptr %a4, i32 0, i32 0 %t35 = load { ptr, i64, i64 }, ptr %t34 store { ptr, i64, i64 } %t35, ptr %a36 - store { ptr, i64, i64 } { ptr @.str.1552, i64 5, i64 0 }, ptr %a37 + store { ptr, i64, i64 } { ptr @.str.1580, i64 5, i64 0 }, ptr %a37 %t38 = call i32 @finch_str_eq(ptr %a36, ptr %a37) %t39 = icmp ne i32 %t38, 0 - br label %logic.from2624 -logic.from2624: - br i1 %t39, label %logic.end2626, label %logic.rhs2625 -logic.rhs2625: + br label %logic.from2683 +logic.from2683: + br i1 %t39, label %logic.end2685, label %logic.rhs2684 +logic.rhs2684: %t40 = getelementptr inbounds %S.ast.Type, ptr %a4, i32 0, i32 0 %t41 = load { ptr, i64, i64 }, ptr %t40 store { ptr, i64, i64 } %t41, ptr %a42 - store { ptr, i64, i64 } { ptr @.str.1553, i64 3, i64 0 }, ptr %a43 + store { ptr, i64, i64 } { ptr @.str.1581, i64 3, i64 0 }, ptr %a43 %t44 = call i32 @finch_str_eq(ptr %a42, ptr %a43) %t45 = icmp ne i32 %t44, 0 - br label %logic.rend2627 -logic.rend2627: - br label %logic.end2626 -logic.end2626: - %t46 = phi i1 [ true, %logic.from2624 ], [ %t45, %logic.rend2627 ] - br label %logic.from2628 -logic.from2628: - br i1 %t46, label %logic.end2630, label %logic.rhs2629 -logic.rhs2629: + br label %logic.rend2686 +logic.rend2686: + br label %logic.end2685 +logic.end2685: + %t46 = phi i1 [ true, %logic.from2683 ], [ %t45, %logic.rend2686 ] + br label %logic.from2687 +logic.from2687: + br i1 %t46, label %logic.end2689, label %logic.rhs2688 +logic.rhs2688: %t47 = getelementptr inbounds %S.ast.Type, ptr %a4, i32 0, i32 0 %t48 = load { ptr, i64, i64 }, ptr %t47 store { ptr, i64, i64 } %t48, ptr %a49 - store { ptr, i64, i64 } { ptr @.str.1554, i64 6, i64 0 }, ptr %a50 + store { ptr, i64, i64 } { ptr @.str.1582, i64 6, i64 0 }, ptr %a50 %t51 = call i32 @finch_str_eq(ptr %a49, ptr %a50) %t52 = icmp ne i32 %t51, 0 - br label %logic.from2631 -logic.from2631: - br i1 %t52, label %logic.rhs2632, label %logic.end2633 -logic.rhs2632: + br label %logic.from2690 +logic.from2690: + br i1 %t52, label %logic.rhs2691, label %logic.end2692 +logic.rhs2691: %t53 = load ptr, ptr %a1 %t54 = load %S.ast.Type, ptr %a4 %t55 = call i1 @finch.gen.owning(ptr %t53, %S.ast.Type %t54) - br label %logic.rend2634 -logic.rend2634: - br label %logic.end2633 -logic.end2633: - %t56 = phi i1 [ false, %logic.from2631 ], [ %t55, %logic.rend2634 ] - br label %logic.rend2635 -logic.rend2635: - br label %logic.end2630 -logic.end2630: - %t57 = phi i1 [ true, %logic.from2628 ], [ %t56, %logic.rend2635 ] - br i1 %t57, label %then2636, label %else2637 -then2636: + br label %logic.rend2693 +logic.rend2693: + br label %logic.end2692 +logic.end2692: + %t56 = phi i1 [ false, %logic.from2690 ], [ %t55, %logic.rend2693 ] + br label %logic.rend2694 +logic.rend2694: + br label %logic.end2689 +logic.end2689: + %t57 = phi i1 [ true, %logic.from2687 ], [ %t56, %logic.rend2694 ] + br i1 %t57, label %then2695, label %else2696 +then2695: %t58 = load ptr, ptr %a1 %t59 = load ptr, ptr %a1 %t60 = load %S.ast.Type, ptr %a4 %t61 = call { ptr, i64, i64 } @finch.gen.copyFn(ptr %t59, %S.ast.Type %t60) - store { ptr, i64, i64 } { ptr @.str.1555, i64 10, i64 0 }, ptr %a63 + store { ptr, i64, i64 } { ptr @.str.1583, i64 10, i64 0 }, ptr %a63 store { ptr, i64, i64 } %t61, ptr %a64 call void @finch_str_concat(ptr %a62, ptr %a63, ptr %a64) store { ptr, i64, i64 } %t61, ptr %a65 call void @finch_str_drop(ptr %a65) %t66 = load { ptr, i64, i64 }, ptr %a62 store { ptr, i64, i64 } %t66, ptr %a68 - store { ptr, i64, i64 } { ptr @.str.1556, i64 5, i64 0 }, ptr %a69 + store { ptr, i64, i64 } { ptr @.str.1584, i64 5, i64 0 }, ptr %a69 call void @finch_str_concat(ptr %a67, ptr %a68, ptr %a69) store { ptr, i64, i64 } %t66, ptr %a70 call void @finch_str_drop(ptr %a70) @@ -28648,7 +29393,7 @@ then2636: call void @finch_str_drop(ptr %a76) %t77 = load { ptr, i64, i64 }, ptr %a73 store { ptr, i64, i64 } %t77, ptr %a79 - store { ptr, i64, i64 } { ptr @.str.1557, i64 6, i64 0 }, ptr %a80 + store { ptr, i64, i64 } { ptr @.str.1585, i64 6, i64 0 }, ptr %a80 call void @finch_str_concat(ptr %a78, ptr %a79, ptr %a80) store { ptr, i64, i64 } %t77, ptr %a81 call void @finch_str_drop(ptr %a81) @@ -28661,7 +29406,7 @@ then2636: call void @finch_str_drop(ptr %a87) %t88 = load { ptr, i64, i64 }, ptr %a84 store { ptr, i64, i64 } %t88, ptr %a90 - store { ptr, i64, i64 } { ptr @.str.1558, i64 1, i64 0 }, ptr %a91 + store { ptr, i64, i64 } { ptr @.str.1586, i64 1, i64 0 }, ptr %a91 call void @finch_str_concat(ptr %a89, ptr %a90, ptr %a91) store { ptr, i64, i64 } %t88, ptr %a92 call void @finch_str_drop(ptr %a92) @@ -28669,8 +29414,8 @@ then2636: call void @finch.gen.emit(ptr %t58, { ptr, i64, i64 } %t93) store { ptr, i64, i64 } %t93, ptr %a94 call void @finch_str_drop(ptr %a94) - br label %endif2638 -else2637: + br label %endif2697 +else2696: %t95 = load ptr, ptr %a1 %t96 = load ptr, ptr %a1 %t97 = load %S.ast.Type, ptr %a4 @@ -28689,10 +29434,10 @@ else2637: call void @finch_str_drop(ptr %a107) store { ptr, i64, i64 } %t104, ptr %a108 call void @finch_str_drop(ptr %a108) - br label %endif2638 -endif2638: - br label %endif2623 -endif2623: + br label %endif2697 +endif2697: + br label %endif2682 +endif2682: ret void } @@ -28888,7 +29633,7 @@ entry: store %S.ast.Type %p1, ptr %a2 %t3 = load %S.ast.Type, ptr %a2 %t4 = call { ptr, i64, i64 } @finch.gen.typeKey(%S.ast.Type %t3) - store { ptr, i64, i64 } { ptr @.str.1559, i64 12, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.1587, i64 12, i64 0 }, ptr %a6 store { ptr, i64, i64 } %t4, ptr %a7 call void @finch_str_concat(ptr %a5, ptr %a6, ptr %a7) store { ptr, i64, i64 } %t4, ptr %a8 @@ -28897,28 +29642,28 @@ entry: store { ptr, i64, i64 } %t9, ptr %a10 %t11 = load ptr, ptr %a1 %t12 = icmp eq ptr %t11, null - br i1 %t12, label %panic2639, label %ok2640 -panic2639: - call void @finch_panic(ptr @.str.1560, i64 809, ptr @.str.1561) + br i1 %t12, label %panic2698, label %ok2699 +panic2698: + call void @finch_panic(ptr @.str.1588, i64 835, ptr @.str.1589) unreachable -ok2640: - %t13 = getelementptr inbounds %S.gen.Gen, ptr %t11, i32 0, i32 22 +ok2699: + %t13 = getelementptr inbounds %S.gen.Gen, ptr %t11, i32 0, i32 23 %t14 = load { ptr, i64, i64 }, ptr %t13 %t15 = load { ptr, i64, i64 }, ptr %a10 %t16 = call i1 @finch.gen.has({ ptr, i64, i64 } %t14, { ptr, i64, i64 } %t15) - br i1 %t16, label %then2641, label %endif2643 -then2641: + br i1 %t16, label %then2700, label %endif2702 +then2700: %t17 = load { ptr, i64, i64 }, ptr %a10 ret { ptr, i64, i64 } %t17 -endif2643: +endif2702: %t18 = load ptr, ptr %a1 %t19 = icmp eq ptr %t18, null - br i1 %t19, label %panic2644, label %ok2645 -panic2644: - call void @finch_panic(ptr @.str.1562, i64 812, ptr @.str.1563) + br i1 %t19, label %panic2703, label %ok2704 +panic2703: + call void @finch_panic(ptr @.str.1590, i64 838, ptr @.str.1591) unreachable -ok2645: - %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 22 +ok2704: + %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 23 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t20, i32 0, i32 1 %t22 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t22, ptr %a23 @@ -28937,20 +29682,20 @@ ok2645: %t33 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t34 = load { ptr, i64, i64 }, ptr %t33 store { ptr, i64, i64 } %t34, ptr %a35 - store { ptr, i64, i64 } { ptr @.str.1564, i64 5, i64 0 }, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.1592, i64 5, i64 0 }, ptr %a36 %t37 = call i32 @finch_str_eq(ptr %a35, ptr %a36) %t38 = icmp ne i32 %t37, 0 - br i1 %t38, label %then2646, label %else2647 -then2646: + br i1 %t38, label %then2705, label %else2706 +then2705: %t39 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t40 = load { ptr, i64, i64 }, ptr %t39 %t41 = extractvalue { ptr, i64, i64 } %t40, 1 %t42 = icmp uge i64 0, %t41 - br i1 %t42, label %range2649, label %inrange2650 -range2649: - call void @finch_panic_index(ptr @.str.1565, i64 815, i64 0, i64 %t41) + br i1 %t42, label %range2708, label %inrange2709 +range2708: + call void @finch_panic_index(ptr @.str.1593, i64 841, i64 0, i64 %t41) unreachable -inrange2650: +inrange2709: %t43 = extractvalue { ptr, i64, i64 } %t40, 0 %t44 = getelementptr inbounds %S.ast.Type, ptr %t43, i64 0 %t45 = load %S.ast.Type, ptr %t44 @@ -28962,14 +29707,14 @@ inrange2650: %t51 = load ptr, ptr %a1 %t52 = load %S.ast.Type, ptr %a49 %t53 = call { ptr, i64, i64 } @finch.gen.sizeOf(ptr %t51, %S.ast.Type %t52) - store { ptr, i64, i64 } { ptr @.str.1566, i64 55, i64 0 }, ptr %a55 + store { ptr, i64, i64 } { ptr @.str.1594, i64 55, i64 0 }, ptr %a55 store { ptr, i64, i64 } %t53, ptr %a56 call void @finch_str_concat(ptr %a54, ptr %a55, ptr %a56) store { ptr, i64, i64 } %t53, ptr %a57 call void @finch_str_drop(ptr %a57) %t58 = load { ptr, i64, i64 }, ptr %a54 store { ptr, i64, i64 } %t58, ptr %a60 - store { ptr, i64, i64 } { ptr @.str.1567, i64 1, i64 0 }, ptr %a61 + store { ptr, i64, i64 } { ptr @.str.1595, i64 1, i64 0 }, ptr %a61 call void @finch_str_concat(ptr %a59, ptr %a60, ptr %a61) store { ptr, i64, i64 } %t58, ptr %a62 call void @finch_str_drop(ptr %a62) @@ -28980,18 +29725,18 @@ inrange2650: %t65 = load ptr, ptr %a1 %t66 = load %S.ast.Type, ptr %a49 %t67 = call i1 @finch.gen.owning(ptr %t65, %S.ast.Type %t66) - br i1 %t67, label %then2651, label %endif2653 -then2651: + br i1 %t67, label %then2710, label %endif2712 +then2710: %t68 = load ptr, ptr %a1 - %t69 = call { ptr, i64, i64 } @finch.gen.load(ptr %t68, { ptr, i64, i64 } { ptr @.str.1568, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.1569, i64 4, i64 0 }) + %t69 = call { ptr, i64, i64 } @finch.gen.load(ptr %t68, { ptr, i64, i64 } { ptr @.str.1596, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.1597, i64 4, i64 0 }) store { ptr, i64, i64 } %t69, ptr %a70 %t71 = load ptr, ptr %a1 - %t72 = call { ptr, i64, i64 } @finch.gen.load(ptr %t71, { ptr, i64, i64 } { ptr @.str.1570, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.1571, i64 4, i64 0 }) + %t72 = call { ptr, i64, i64 } @finch.gen.load(ptr %t71, { ptr, i64, i64 } { ptr @.str.1598, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.1599, i64 4, i64 0 }) store { ptr, i64, i64 } %t72, ptr %a73 %t74 = load ptr, ptr %a1 %t75 = load ptr, ptr %a1 - %t76 = call { ptr, i64, i64 } @finch.gen.op(ptr %t75, { ptr, i64, i64 } { ptr @.str.1573, i64 64, i64 0 }) - %t77 = call { ptr, i64, i64 } @finch.gen.load(ptr %t74, { ptr, i64, i64 } { ptr @.str.1572, i64 3, i64 0 }, { ptr, i64, i64 } %t76) + %t76 = call { ptr, i64, i64 } @finch.gen.op(ptr %t75, { ptr, i64, i64 } { ptr @.str.1601, i64 64, i64 0 }) + %t77 = call { ptr, i64, i64 } @finch.gen.load(ptr %t74, { ptr, i64, i64 } { ptr @.str.1600, i64 3, i64 0 }, { ptr, i64, i64 } %t76) store { ptr, i64, i64 } %t76, ptr %a78 call void @finch_str_drop(ptr %a78) store { ptr, i64, i64 } %t77, ptr %a79 @@ -29003,14 +29748,14 @@ then2651: %t85 = load ptr, ptr %a1 %t86 = load %S.ast.Type, ptr %a49 %t87 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t85, %S.ast.Type %t86) - store { ptr, i64, i64 } { ptr @.str.1574, i64 23, i64 0 }, ptr %a89 + store { ptr, i64, i64 } { ptr @.str.1602, i64 23, i64 0 }, ptr %a89 store { ptr, i64, i64 } %t87, ptr %a90 call void @finch_str_concat(ptr %a88, ptr %a89, ptr %a90) store { ptr, i64, i64 } %t87, ptr %a91 call void @finch_str_drop(ptr %a91) %t92 = load { ptr, i64, i64 }, ptr %a88 store { ptr, i64, i64 } %t92, ptr %a94 - store { ptr, i64, i64 } { ptr @.str.1575, i64 6, i64 0 }, ptr %a95 + store { ptr, i64, i64 } { ptr @.str.1603, i64 6, i64 0 }, ptr %a95 call void @finch_str_concat(ptr %a93, ptr %a94, ptr %a95) store { ptr, i64, i64 } %t92, ptr %a96 call void @finch_str_drop(ptr %a96) @@ -29023,7 +29768,7 @@ then2651: call void @finch_str_drop(ptr %a102) %t103 = load { ptr, i64, i64 }, ptr %a99 store { ptr, i64, i64 } %t103, ptr %a105 - store { ptr, i64, i64 } { ptr @.str.1576, i64 6, i64 0 }, ptr %a106 + store { ptr, i64, i64 } { ptr @.str.1604, i64 6, i64 0 }, ptr %a106 call void @finch_str_concat(ptr %a104, ptr %a105, ptr %a106) store { ptr, i64, i64 } %t103, ptr %a107 call void @finch_str_drop(ptr %a107) @@ -29031,11 +29776,11 @@ then2651: %t109 = load { ptr, i64, i64 }, ptr %a83 %t110 = extractvalue { ptr, i64, i64 } %t109, 1 %t111 = icmp uge i64 3, %t110 - br i1 %t111, label %range2654, label %inrange2655 -range2654: - call void @finch_panic_index(ptr @.str.1577, i64 822, i64 3, i64 %t110) + br i1 %t111, label %range2713, label %inrange2714 +range2713: + call void @finch_panic_index(ptr @.str.1605, i64 848, i64 3, i64 %t110) unreachable -inrange2655: +inrange2714: %t112 = extractvalue { ptr, i64, i64 } %t109, 0 %t113 = getelementptr inbounds { ptr, i64, i64 }, ptr %t112, i64 3 %t114 = load { ptr, i64, i64 }, ptr %t113 @@ -29053,14 +29798,14 @@ inrange2655: %t124 = load ptr, ptr %a1 %t125 = load %S.ast.Type, ptr %a49 %t126 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t124, %S.ast.Type %t125) - store { ptr, i64, i64 } { ptr @.str.1578, i64 23, i64 0 }, ptr %a128 + store { ptr, i64, i64 } { ptr @.str.1606, i64 23, i64 0 }, ptr %a128 store { ptr, i64, i64 } %t126, ptr %a129 call void @finch_str_concat(ptr %a127, ptr %a128, ptr %a129) store { ptr, i64, i64 } %t126, ptr %a130 call void @finch_str_drop(ptr %a130) %t131 = load { ptr, i64, i64 }, ptr %a127 store { ptr, i64, i64 } %t131, ptr %a133 - store { ptr, i64, i64 } { ptr @.str.1579, i64 6, i64 0 }, ptr %a134 + store { ptr, i64, i64 } { ptr @.str.1607, i64 6, i64 0 }, ptr %a134 call void @finch_str_concat(ptr %a132, ptr %a133, ptr %a134) store { ptr, i64, i64 } %t131, ptr %a135 call void @finch_str_drop(ptr %a135) @@ -29073,7 +29818,7 @@ inrange2655: call void @finch_str_drop(ptr %a141) %t142 = load { ptr, i64, i64 }, ptr %a138 store { ptr, i64, i64 } %t142, ptr %a144 - store { ptr, i64, i64 } { ptr @.str.1580, i64 6, i64 0 }, ptr %a145 + store { ptr, i64, i64 } { ptr @.str.1608, i64 6, i64 0 }, ptr %a145 call void @finch_str_concat(ptr %a143, ptr %a144, ptr %a145) store { ptr, i64, i64 } %t142, ptr %a146 call void @finch_str_drop(ptr %a146) @@ -29081,11 +29826,11 @@ inrange2655: %t148 = load { ptr, i64, i64 }, ptr %a83 %t149 = extractvalue { ptr, i64, i64 } %t148, 1 %t150 = icmp uge i64 3, %t149 - br i1 %t150, label %range2656, label %inrange2657 -range2656: - call void @finch_panic_index(ptr @.str.1581, i64 823, i64 3, i64 %t149) + br i1 %t150, label %range2715, label %inrange2716 +range2715: + call void @finch_panic_index(ptr @.str.1609, i64 849, i64 3, i64 %t149) unreachable -inrange2657: +inrange2716: %t151 = extractvalue { ptr, i64, i64 } %t148, 0 %t152 = getelementptr inbounds { ptr, i64, i64 }, ptr %t151, i64 3 %t153 = load { ptr, i64, i64 }, ptr %t152 @@ -29113,31 +29858,31 @@ inrange2657: call void @finch_str_drop(ptr %a79) call void @finch_str_drop(ptr %a73) call void @finch_str_drop(ptr %a70) - br label %endif2653 -endif2653: + br label %endif2712 +endif2712: call void @finch.drop.S_ast_Type(ptr %a49) - br label %endif2648 -else2647: + br label %endif2707 +else2706: %t168 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t169 = load { ptr, i64, i64 }, ptr %t168 store { ptr, i64, i64 } %t169, ptr %a170 - store { ptr, i64, i64 } { ptr @.str.1582, i64 3, i64 0 }, ptr %a171 + store { ptr, i64, i64 } { ptr @.str.1610, i64 3, i64 0 }, ptr %a171 %t172 = call i32 @finch_str_eq(ptr %a170, ptr %a171) %t173 = icmp ne i32 %t172, 0 - br i1 %t173, label %then2658, label %else2659 -then2658: + br i1 %t173, label %then2717, label %else2718 +then2717: %t174 = load ptr, ptr %a1 %t175 = load ptr, ptr %a1 %t176 = load %S.ast.Type, ptr %a2 %t177 = call { ptr, i64, i64 } @finch.gen.entrySize(ptr %t175, %S.ast.Type %t176) - store { ptr, i64, i64 } { ptr @.str.1583, i64 55, i64 0 }, ptr %a179 + store { ptr, i64, i64 } { ptr @.str.1611, i64 55, i64 0 }, ptr %a179 store { ptr, i64, i64 } %t177, ptr %a180 call void @finch_str_concat(ptr %a178, ptr %a179, ptr %a180) store { ptr, i64, i64 } %t177, ptr %a181 call void @finch_str_drop(ptr %a181) %t182 = load { ptr, i64, i64 }, ptr %a178 store { ptr, i64, i64 } %t182, ptr %a184 - store { ptr, i64, i64 } { ptr @.str.1584, i64 1, i64 0 }, ptr %a185 + store { ptr, i64, i64 } { ptr @.str.1612, i64 1, i64 0 }, ptr %a185 call void @finch_str_concat(ptr %a183, ptr %a184, ptr %a185) store { ptr, i64, i64 } %t182, ptr %a186 call void @finch_str_drop(ptr %a186) @@ -29150,53 +29895,53 @@ then2658: %t191 = load { ptr, i64, i64 }, ptr %t190 %t192 = extractvalue { ptr, i64, i64 } %t191, 1 %t193 = icmp uge i64 0, %t192 - br i1 %t193, label %range2661, label %inrange2662 -range2661: - call void @finch_panic_index(ptr @.str.1585, i64 829, i64 0, i64 %t192) + br i1 %t193, label %range2720, label %inrange2721 +range2720: + call void @finch_panic_index(ptr @.str.1613, i64 855, i64 0, i64 %t192) unreachable -inrange2662: +inrange2721: %t194 = extractvalue { ptr, i64, i64 } %t191, 0 %t195 = getelementptr inbounds %S.ast.Type, ptr %t194, i64 0 %t196 = load %S.ast.Type, ptr %t195 %t197 = call i1 @finch.gen.owning(ptr %t189, %S.ast.Type %t196) - br label %logic.from2663 -logic.from2663: - br i1 %t197, label %logic.end2665, label %logic.rhs2664 -logic.rhs2664: + br label %logic.from2722 +logic.from2722: + br i1 %t197, label %logic.end2724, label %logic.rhs2723 +logic.rhs2723: %t198 = load ptr, ptr %a1 %t199 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t200 = load { ptr, i64, i64 }, ptr %t199 %t201 = extractvalue { ptr, i64, i64 } %t200, 1 %t202 = icmp uge i64 1, %t201 - br i1 %t202, label %range2666, label %inrange2667 -range2666: - call void @finch_panic_index(ptr @.str.1586, i64 829, i64 1, i64 %t201) + br i1 %t202, label %range2725, label %inrange2726 +range2725: + call void @finch_panic_index(ptr @.str.1614, i64 855, i64 1, i64 %t201) unreachable -inrange2667: +inrange2726: %t203 = extractvalue { ptr, i64, i64 } %t200, 0 %t204 = getelementptr inbounds %S.ast.Type, ptr %t203, i64 1 %t205 = load %S.ast.Type, ptr %t204 %t206 = call i1 @finch.gen.owning(ptr %t198, %S.ast.Type %t205) - br label %logic.rend2668 -logic.rend2668: - br label %logic.end2665 -logic.end2665: - %t207 = phi i1 [ true, %logic.from2663 ], [ %t206, %logic.rend2668 ] - br i1 %t207, label %then2669, label %endif2671 -then2669: + br label %logic.rend2727 +logic.rend2727: + br label %logic.end2724 +logic.end2724: + %t207 = phi i1 [ true, %logic.from2722 ], [ %t206, %logic.rend2727 ] + br i1 %t207, label %then2728, label %endif2730 +then2728: %t208 = load ptr, ptr %a1 %t209 = load ptr, ptr %a1 %t210 = load ptr, ptr %a1 %t211 = load %S.ast.Type, ptr %a2 %t212 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t210, %S.ast.Type %t211) - store { ptr, i64, i64 } { ptr @.str.1588, i64 23, i64 0 }, ptr %a214 + store { ptr, i64, i64 } { ptr @.str.1616, i64 23, i64 0 }, ptr %a214 store { ptr, i64, i64 } %t212, ptr %a215 call void @finch_str_concat(ptr %a213, ptr %a214, ptr %a215) store { ptr, i64, i64 } %t212, ptr %a216 call void @finch_str_drop(ptr %a216) %t217 = load { ptr, i64, i64 }, ptr %a213 store { ptr, i64, i64 } %t217, ptr %a219 - store { ptr, i64, i64 } { ptr @.str.1589, i64 24, i64 0 }, ptr %a220 + store { ptr, i64, i64 } { ptr @.str.1617, i64 24, i64 0 }, ptr %a220 call void @finch_str_concat(ptr %a218, ptr %a219, ptr %a220) store { ptr, i64, i64 } %t217, ptr %a221 call void @finch_str_drop(ptr %a221) @@ -29204,7 +29949,7 @@ then2669: %t223 = call { ptr, i64, i64 } @finch.gen.op(ptr %t209, { ptr, i64, i64 } %t222) store { ptr, i64, i64 } %t222, ptr %a224 call void @finch_str_drop(ptr %a224) - %t225 = call { ptr, i64, i64 } @finch.gen.load(ptr %t208, { ptr, i64, i64 } { ptr @.str.1587, i64 3, i64 0 }, { ptr, i64, i64 } %t223) + %t225 = call { ptr, i64, i64 } @finch.gen.load(ptr %t208, { ptr, i64, i64 } { ptr @.str.1615, i64 3, i64 0 }, { ptr, i64, i64 } %t223) store { ptr, i64, i64 } %t223, ptr %a226 call void @finch_str_drop(ptr %a226) store { ptr, i64, i64 } %t225, ptr %a227 @@ -29217,36 +29962,36 @@ then2669: %t234 = load { ptr, i64, i64 }, ptr %a231 %t235 = extractvalue { ptr, i64, i64 } %t234, 1 %t236 = icmp uge i64 3, %t235 - br i1 %t236, label %range2672, label %inrange2673 -range2672: - call void @finch_panic_index(ptr @.str.1591, i64 833, i64 3, i64 %t235) + br i1 %t236, label %range2731, label %inrange2732 +range2731: + call void @finch_panic_index(ptr @.str.1619, i64 859, i64 3, i64 %t235) unreachable -inrange2673: +inrange2732: %t237 = extractvalue { ptr, i64, i64 } %t234, 0 %t238 = getelementptr inbounds { ptr, i64, i64 }, ptr %t237, i64 3 %t239 = load { ptr, i64, i64 }, ptr %t238 - %t240 = call { ptr, i64, i64 } @finch.gen.entryAt(ptr %t232, { ptr, i64, i64 } { ptr @.str.1590, i64 4, i64 0 }, %S.ast.Type %t233, { ptr, i64, i64 } %t239) + %t240 = call { ptr, i64, i64 } @finch.gen.entryAt(ptr %t232, { ptr, i64, i64 } { ptr @.str.1618, i64 4, i64 0 }, %S.ast.Type %t233, { ptr, i64, i64 } %t239) store { ptr, i64, i64 } %t240, ptr %a241 %t242 = load ptr, ptr %a1 %t243 = load %S.ast.Type, ptr %a2 %t244 = load { ptr, i64, i64 }, ptr %a231 %t245 = extractvalue { ptr, i64, i64 } %t244, 1 %t246 = icmp uge i64 3, %t245 - br i1 %t246, label %range2674, label %inrange2675 -range2674: - call void @finch_panic_index(ptr @.str.1593, i64 834, i64 3, i64 %t245) + br i1 %t246, label %range2733, label %inrange2734 +range2733: + call void @finch_panic_index(ptr @.str.1621, i64 860, i64 3, i64 %t245) unreachable -inrange2675: +inrange2734: %t247 = extractvalue { ptr, i64, i64 } %t244, 0 %t248 = getelementptr inbounds { ptr, i64, i64 }, ptr %t247, i64 3 %t249 = load { ptr, i64, i64 }, ptr %t248 - %t250 = call { ptr, i64, i64 } @finch.gen.entryAt(ptr %t242, { ptr, i64, i64 } { ptr @.str.1592, i64 4, i64 0 }, %S.ast.Type %t243, { ptr, i64, i64 } %t249) + %t250 = call { ptr, i64, i64 } @finch.gen.entryAt(ptr %t242, { ptr, i64, i64 } { ptr @.str.1620, i64 4, i64 0 }, %S.ast.Type %t243, { ptr, i64, i64 } %t249) store { ptr, i64, i64 } %t250, ptr %a251 %t252 = load ptr, ptr %a1 - %t253 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t252, { ptr, i64, i64 } { ptr @.str.1594, i64 10, i64 0 }) + %t253 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t252, { ptr, i64, i64 } { ptr @.str.1622, i64 10, i64 0 }) store { ptr, i64, i64 } %t253, ptr %a254 %t255 = load ptr, ptr %a1 - %t256 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t255, { ptr, i64, i64 } { ptr @.str.1595, i64 10, i64 0 }) + %t256 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t255, { ptr, i64, i64 } { ptr @.str.1623, i64 10, i64 0 }) store { ptr, i64, i64 } %t256, ptr %a257 %t258 = load ptr, ptr %a1 %t259 = load ptr, ptr %a1 @@ -29255,14 +30000,14 @@ inrange2675: %t262 = load ptr, ptr %a1 %t263 = load %S.ast.Type, ptr %a2 %t264 = call { ptr, i64, i64 } @finch.gen.entryTy(ptr %t262, %S.ast.Type %t263) - store { ptr, i64, i64 } { ptr @.str.1598, i64 23, i64 0 }, ptr %a266 + store { ptr, i64, i64 } { ptr @.str.1626, i64 23, i64 0 }, ptr %a266 store { ptr, i64, i64 } %t264, ptr %a267 call void @finch_str_concat(ptr %a265, ptr %a266, ptr %a267) store { ptr, i64, i64 } %t264, ptr %a268 call void @finch_str_drop(ptr %a268) %t269 = load { ptr, i64, i64 }, ptr %a265 store { ptr, i64, i64 } %t269, ptr %a271 - store { ptr, i64, i64 } { ptr @.str.1599, i64 6, i64 0 }, ptr %a272 + store { ptr, i64, i64 } { ptr @.str.1627, i64 6, i64 0 }, ptr %a272 call void @finch_str_concat(ptr %a270, ptr %a271, ptr %a272) store { ptr, i64, i64 } %t269, ptr %a273 call void @finch_str_drop(ptr %a273) @@ -29275,7 +30020,7 @@ inrange2675: call void @finch_str_drop(ptr %a279) %t280 = load { ptr, i64, i64 }, ptr %a276 store { ptr, i64, i64 } %t280, ptr %a282 - store { ptr, i64, i64 } { ptr @.str.1600, i64 14, i64 0 }, ptr %a283 + store { ptr, i64, i64 } { ptr @.str.1628, i64 14, i64 0 }, ptr %a283 call void @finch_str_concat(ptr %a281, ptr %a282, ptr %a283) store { ptr, i64, i64 } %t280, ptr %a284 call void @finch_str_drop(ptr %a284) @@ -29283,17 +30028,17 @@ inrange2675: %t286 = call { ptr, i64, i64 } @finch.gen.op(ptr %t261, { ptr, i64, i64 } %t285) store { ptr, i64, i64 } %t285, ptr %a287 call void @finch_str_drop(ptr %a287) - %t288 = call { ptr, i64, i64 } @finch.gen.load(ptr %t260, { ptr, i64, i64 } { ptr @.str.1597, i64 3, i64 0 }, { ptr, i64, i64 } %t286) + %t288 = call { ptr, i64, i64 } @finch.gen.load(ptr %t260, { ptr, i64, i64 } { ptr @.str.1625, i64 3, i64 0 }, { ptr, i64, i64 } %t286) store { ptr, i64, i64 } %t286, ptr %a289 call void @finch_str_drop(ptr %a289) - store { ptr, i64, i64 } { ptr @.str.1596, i64 12, i64 0 }, ptr %a291 + store { ptr, i64, i64 } { ptr @.str.1624, i64 12, i64 0 }, ptr %a291 store { ptr, i64, i64 } %t288, ptr %a292 call void @finch_str_concat(ptr %a290, ptr %a291, ptr %a292) store { ptr, i64, i64 } %t288, ptr %a293 call void @finch_str_drop(ptr %a293) %t294 = load { ptr, i64, i64 }, ptr %a290 store { ptr, i64, i64 } %t294, ptr %a296 - store { ptr, i64, i64 } { ptr @.str.1601, i64 3, i64 0 }, ptr %a297 + store { ptr, i64, i64 } { ptr @.str.1629, i64 3, i64 0 }, ptr %a297 call void @finch_str_concat(ptr %a295, ptr %a296, ptr %a297) store { ptr, i64, i64 } %t294, ptr %a298 call void @finch_str_drop(ptr %a298) @@ -29322,11 +30067,11 @@ inrange2675: %t317 = load { ptr, i64, i64 }, ptr %t316 %t318 = extractvalue { ptr, i64, i64 } %t317, 1 %t319 = icmp uge i64 0, %t318 - br i1 %t319, label %range2676, label %inrange2677 -range2676: - call void @finch_panic_index(ptr @.str.1602, i64 839, i64 0, i64 %t318) + br i1 %t319, label %range2735, label %inrange2736 +range2735: + call void @finch_panic_index(ptr @.str.1630, i64 865, i64 0, i64 %t318) unreachable -inrange2677: +inrange2736: %t320 = extractvalue { ptr, i64, i64 } %t317, 0 %t321 = getelementptr inbounds %S.ast.Type, ptr %t320, i64 0 %t322 = load %S.ast.Type, ptr %t321 @@ -29348,11 +30093,11 @@ inrange2677: %t335 = load { ptr, i64, i64 }, ptr %t334 %t336 = extractvalue { ptr, i64, i64 } %t335, 1 %t337 = icmp uge i64 1, %t336 - br i1 %t337, label %range2678, label %inrange2679 -range2678: - call void @finch_panic_index(ptr @.str.1603, i64 840, i64 1, i64 %t336) + br i1 %t337, label %range2737, label %inrange2738 +range2737: + call void @finch_panic_index(ptr @.str.1631, i64 866, i64 1, i64 %t336) unreachable -inrange2679: +inrange2738: %t338 = extractvalue { ptr, i64, i64 } %t335, 0 %t339 = getelementptr inbounds %S.ast.Type, ptr %t338, i64 1 %t340 = load %S.ast.Type, ptr %t339 @@ -29376,17 +30121,17 @@ inrange2679: call void @finch_str_drop(ptr %a241) call void @finch.drop.arr_str(ptr %a231) call void @finch_str_drop(ptr %a227) - br label %endif2671 -endif2671: - br label %endif2660 -else2659: + br label %endif2730 +endif2730: + br label %endif2719 +else2718: %t349 = load ptr, ptr %a1 %t350 = icmp eq ptr %t349, null - br i1 %t350, label %panic2680, label %ok2681 -panic2680: - call void @finch_panic(ptr @.str.1604, i64 846, ptr @.str.1605) + br i1 %t350, label %panic2739, label %ok2740 +panic2739: + call void @finch_panic(ptr @.str.1632, i64 872, ptr @.str.1633) unreachable -ok2681: +ok2740: %t351 = getelementptr inbounds %S.gen.Gen, ptr %t349, i32 0, i32 16 %t352 = load ptr, ptr %a1 %t353 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 @@ -29397,11 +30142,11 @@ ok2681: %t358 = load { ptr, i64, i64 }, ptr %t351 %t359 = extractvalue { ptr, i64, i64 } %t358, 1 %t360 = icmp uge i64 %t357, %t359 - br i1 %t360, label %range2682, label %inrange2683 -range2682: - call void @finch_panic_index(ptr @.str.1606, i64 846, i64 %t357, i64 %t359) + br i1 %t360, label %range2741, label %inrange2742 +range2741: + call void @finch_panic_index(ptr @.str.1634, i64 872, i64 %t357, i64 %t359) unreachable -inrange2683: +inrange2742: %t361 = extractvalue { ptr, i64, i64 } %t358, 0 %t362 = getelementptr inbounds %S.gen.StructDef, ptr %t361, i64 %t357 %t363 = load %S.gen.StructDef, ptr %t362 @@ -29417,45 +30162,45 @@ inrange2683: %t373 = load { ptr, i64, i64 }, ptr %a371 %t374 = load ptr, ptr %a1 %t375 = load { ptr, i64, i64 }, ptr %a371 - %t376 = call { ptr, i64, i64 } @finch.gen.load(ptr %t374, { ptr, i64, i64 } %t375, { ptr, i64, i64 } { ptr @.str.1607, i64 4, i64 0 }) - call void @finch.gen.store(ptr %t372, { ptr, i64, i64 } %t373, { ptr, i64, i64 } %t376, { ptr, i64, i64 } { ptr @.str.1608, i64 4, i64 0 }) + %t376 = call { ptr, i64, i64 } @finch.gen.load(ptr %t374, { ptr, i64, i64 } %t375, { ptr, i64, i64 } { ptr @.str.1635, i64 4, i64 0 }) + call void @finch.gen.store(ptr %t372, { ptr, i64, i64 } %t373, { ptr, i64, i64 } %t376, { ptr, i64, i64 } { ptr @.str.1636, i64 4, i64 0 }) store { ptr, i64, i64 } %t376, ptr %a377 call void @finch_str_drop(ptr %a377) %t378 = getelementptr inbounds %S.gen.StructDef, ptr %a367, i32 0, i32 12 %t379 = getelementptr inbounds { ptr, i64, i64 }, ptr %t378, i32 0, i32 1 %t380 = load i64, ptr %t379 store i64 0, ptr %a381 - br label %for.cond2684 -for.cond2684: + br label %for.cond2743 +for.cond2743: %t382 = load i64, ptr %a381 %t383 = icmp slt i64 %t382, %t380 - br i1 %t383, label %for.body2685, label %for.end2687 -for.body2685: + br i1 %t383, label %for.body2744, label %for.end2746 +for.body2744: %t384 = load ptr, ptr %a1 %t385 = getelementptr inbounds %S.gen.StructDef, ptr %a367, i32 0, i32 12 %t386 = load i64, ptr %a381 %t387 = load { ptr, i64, i64 }, ptr %t385 %t388 = extractvalue { ptr, i64, i64 } %t387, 1 %t389 = icmp uge i64 %t386, %t388 - br i1 %t389, label %range2688, label %inrange2689 -range2688: - call void @finch_panic_index(ptr @.str.1609, i64 850, i64 %t386, i64 %t388) + br i1 %t389, label %range2747, label %inrange2748 +range2747: + call void @finch_panic_index(ptr @.str.1637, i64 876, i64 %t386, i64 %t388) unreachable -inrange2689: +inrange2748: %t390 = extractvalue { ptr, i64, i64 } %t387, 0 %t391 = getelementptr inbounds %S.ast.Type, ptr %t390, i64 %t386 %t392 = load %S.ast.Type, ptr %t391 %t393 = call i1 @finch.gen.owning(ptr %t384, %S.ast.Type %t392) - br i1 %t393, label %then2690, label %endif2692 -then2690: + br i1 %t393, label %then2749, label %endif2751 +then2749: %t394 = load ptr, ptr %a1 %t395 = load { ptr, i64, i64 }, ptr %a371 - store { ptr, i64, i64 } { ptr @.str.1610, i64 23, i64 0 }, ptr %a397 + store { ptr, i64, i64 } { ptr @.str.1638, i64 23, i64 0 }, ptr %a397 store { ptr, i64, i64 } %t395, ptr %a398 call void @finch_str_concat(ptr %a396, ptr %a397, ptr %a398) %t399 = load { ptr, i64, i64 }, ptr %a396 store { ptr, i64, i64 } %t399, ptr %a401 - store { ptr, i64, i64 } { ptr @.str.1611, i64 23, i64 0 }, ptr %a402 + store { ptr, i64, i64 } { ptr @.str.1639, i64 23, i64 0 }, ptr %a402 call void @finch_str_concat(ptr %a400, ptr %a401, ptr %a402) store { ptr, i64, i64 } %t399, ptr %a403 call void @finch_str_drop(ptr %a403) @@ -29465,11 +30210,11 @@ then2690: %t407 = load { ptr, i64, i64 }, ptr %t405 %t408 = extractvalue { ptr, i64, i64 } %t407, 1 %t409 = icmp uge i64 %t406, %t408 - br i1 %t409, label %range2693, label %inrange2694 -range2693: - call void @finch_panic_index(ptr @.str.1612, i64 851, i64 %t406, i64 %t408) + br i1 %t409, label %range2752, label %inrange2753 +range2752: + call void @finch_panic_index(ptr @.str.1640, i64 877, i64 %t406, i64 %t408) unreachable -inrange2694: +inrange2753: %t410 = extractvalue { ptr, i64, i64 } %t407, 0 %t411 = getelementptr inbounds i64, ptr %t410, i64 %t406 %t412 = load i64, ptr %t411 @@ -29489,12 +30234,12 @@ inrange2694: store { ptr, i64, i64 } %t421, ptr %a423 %t424 = load ptr, ptr %a1 %t425 = load { ptr, i64, i64 }, ptr %a371 - store { ptr, i64, i64 } { ptr @.str.1613, i64 23, i64 0 }, ptr %a427 + store { ptr, i64, i64 } { ptr @.str.1641, i64 23, i64 0 }, ptr %a427 store { ptr, i64, i64 } %t425, ptr %a428 call void @finch_str_concat(ptr %a426, ptr %a427, ptr %a428) %t429 = load { ptr, i64, i64 }, ptr %a426 store { ptr, i64, i64 } %t429, ptr %a431 - store { ptr, i64, i64 } { ptr @.str.1614, i64 23, i64 0 }, ptr %a432 + store { ptr, i64, i64 } { ptr @.str.1642, i64 23, i64 0 }, ptr %a432 call void @finch_str_concat(ptr %a430, ptr %a431, ptr %a432) store { ptr, i64, i64 } %t429, ptr %a433 call void @finch_str_drop(ptr %a433) @@ -29504,11 +30249,11 @@ inrange2694: %t437 = load { ptr, i64, i64 }, ptr %t435 %t438 = extractvalue { ptr, i64, i64 } %t437, 1 %t439 = icmp uge i64 %t436, %t438 - br i1 %t439, label %range2695, label %inrange2696 -range2695: - call void @finch_panic_index(ptr @.str.1615, i64 852, i64 %t436, i64 %t438) + br i1 %t439, label %range2754, label %inrange2755 +range2754: + call void @finch_panic_index(ptr @.str.1643, i64 878, i64 %t436, i64 %t438) unreachable -inrange2696: +inrange2755: %t440 = extractvalue { ptr, i64, i64 } %t437, 0 %t441 = getelementptr inbounds i64, ptr %t440, i64 %t436 %t442 = load i64, ptr %t441 @@ -29534,43 +30279,43 @@ inrange2696: %t459 = load { ptr, i64, i64 }, ptr %t457 %t460 = extractvalue { ptr, i64, i64 } %t459, 1 %t461 = icmp uge i64 %t458, %t460 - br i1 %t461, label %range2697, label %inrange2698 -range2697: - call void @finch_panic_index(ptr @.str.1616, i64 853, i64 %t458, i64 %t460) + br i1 %t461, label %range2756, label %inrange2757 +range2756: + call void @finch_panic_index(ptr @.str.1644, i64 879, i64 %t458, i64 %t460) unreachable -inrange2698: +inrange2757: %t462 = extractvalue { ptr, i64, i64 } %t459, 0 %t463 = getelementptr inbounds %S.ast.Type, ptr %t462, i64 %t458 %t464 = load %S.ast.Type, ptr %t463 call void @finch.gen.copyAt(ptr %t454, { ptr, i64, i64 } %t455, { ptr, i64, i64 } %t456, %S.ast.Type %t464) call void @finch_str_drop(ptr %a453) call void @finch_str_drop(ptr %a423) - br label %endif2692 -endif2692: - br label %for.step2686 -for.step2686: + br label %endif2751 +endif2751: + br label %for.step2745 +for.step2745: %t465 = load i64, ptr %a381 %t466 = add i64 %t465, 1 store i64 %t466, ptr %a381 - br label %for.cond2684 -for.end2687: + br label %for.cond2743 +for.end2746: call void @finch_str_drop(ptr %a371) call void @finch.drop.S_gen_StructDef(ptr %a367) - br label %endif2660 -endif2660: - br label %endif2648 -endif2648: + br label %endif2719 +endif2719: + br label %endif2707 +endif2707: %t467 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t467, { ptr, i64, i64 } { ptr @.str.1617, i64 8, i64 0 }) + call void @finch.gen.emit(ptr %t467, { ptr, i64, i64 } { ptr @.str.1645, i64 8, i64 0 }) %t468 = load ptr, ptr %a1 %t469 = load %S.gen.Saved, ptr %a32 %t470 = load { ptr, i64, i64 }, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.1618, i64 21, i64 0 }, ptr %a472 + store { ptr, i64, i64 } { ptr @.str.1646, i64 21, i64 0 }, ptr %a472 store { ptr, i64, i64 } %t470, ptr %a473 call void @finch_str_concat(ptr %a471, ptr %a472, ptr %a473) %t474 = load { ptr, i64, i64 }, ptr %a471 store { ptr, i64, i64 } %t474, ptr %a476 - store { ptr, i64, i64 } { ptr @.str.1619, i64 20, i64 0 }, ptr %a477 + store { ptr, i64, i64 } { ptr @.str.1647, i64 20, i64 0 }, ptr %a477 call void @finch_str_concat(ptr %a475, ptr %a476, ptr %a477) store { ptr, i64, i64 } %t474, ptr %a478 call void @finch_str_drop(ptr %a478) @@ -29616,14 +30361,14 @@ entry: %t5 = load %S.ast.Type, ptr %a3 %t6 = call i1 @finch.gen.owning(ptr %t4, %S.ast.Type %t5) %t7 = xor i1 %t6, true - br i1 %t7, label %then2699, label %endif2701 -then2699: + br i1 %t7, label %then2758, label %endif2760 +then2758: %t8 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t8, ptr %a9 call void @finch_str_copy(ptr %a10, ptr %a9) %t11 = load { ptr, i64, i64 }, ptr %a10 ret { ptr, i64, i64 } %t11 -endif2701: +endif2760: %t12 = load ptr, ptr %a1 %t13 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t13, ptr %a14 @@ -29704,26 +30449,26 @@ entry: %t5 = load %S.ast.Type, ptr %a3 %t6 = call i1 @finch.gen.owning(ptr %t4, %S.ast.Type %t5) %t7 = xor i1 %t6, true - br i1 %t7, label %then2702, label %endif2704 -then2702: + br i1 %t7, label %then2761, label %endif2763 +then2761: ret void -endif2704: +endif2763: %t8 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t9 = load { ptr, i64, i64 }, ptr %t8 store { ptr, i64, i64 } %t9, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.1620, i64 3, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.1648, i64 3, i64 0 }, ptr %a11 %t12 = call i32 @finch_str_eq(ptr %a10, ptr %a11) %t13 = icmp ne i32 %t12, 0 - br i1 %t13, label %then2705, label %else2706 -then2705: + br i1 %t13, label %then2764, label %else2765 +then2764: %t14 = load ptr, ptr %a1 %t15 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1621, i64 30, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.1649, i64 30, i64 0 }, ptr %a17 store { ptr, i64, i64 } %t15, ptr %a18 call void @finch_str_concat(ptr %a16, ptr %a17, ptr %a18) %t19 = load { ptr, i64, i64 }, ptr %a16 store { ptr, i64, i64 } %t19, ptr %a21 - store { ptr, i64, i64 } { ptr @.str.1622, i64 1, i64 0 }, ptr %a22 + store { ptr, i64, i64 } { ptr @.str.1650, i64 1, i64 0 }, ptr %a22 call void @finch_str_concat(ptr %a20, ptr %a21, ptr %a22) store { ptr, i64, i64 } %t19, ptr %a23 call void @finch_str_drop(ptr %a23) @@ -29731,20 +30476,20 @@ then2705: call void @finch.gen.emit(ptr %t14, { ptr, i64, i64 } %t24) store { ptr, i64, i64 } %t24, ptr %a25 call void @finch_str_drop(ptr %a25) - br label %endif2707 -else2706: + br label %endif2766 +else2765: %t26 = load ptr, ptr %a1 %t27 = load ptr, ptr %a1 %t28 = load %S.ast.Type, ptr %a3 %t29 = call { ptr, i64, i64 } @finch.gen.dropFn(ptr %t27, %S.ast.Type %t28) - store { ptr, i64, i64 } { ptr @.str.1623, i64 10, i64 0 }, ptr %a31 + store { ptr, i64, i64 } { ptr @.str.1651, i64 10, i64 0 }, ptr %a31 store { ptr, i64, i64 } %t29, ptr %a32 call void @finch_str_concat(ptr %a30, ptr %a31, ptr %a32) store { ptr, i64, i64 } %t29, ptr %a33 call void @finch_str_drop(ptr %a33) %t34 = load { ptr, i64, i64 }, ptr %a30 store { ptr, i64, i64 } %t34, ptr %a36 - store { ptr, i64, i64 } { ptr @.str.1624, i64 5, i64 0 }, ptr %a37 + store { ptr, i64, i64 } { ptr @.str.1652, i64 5, i64 0 }, ptr %a37 call void @finch_str_concat(ptr %a35, ptr %a36, ptr %a37) store { ptr, i64, i64 } %t34, ptr %a38 call void @finch_str_drop(ptr %a38) @@ -29757,7 +30502,7 @@ else2706: call void @finch_str_drop(ptr %a44) %t45 = load { ptr, i64, i64 }, ptr %a41 store { ptr, i64, i64 } %t45, ptr %a47 - store { ptr, i64, i64 } { ptr @.str.1625, i64 1, i64 0 }, ptr %a48 + store { ptr, i64, i64 } { ptr @.str.1653, i64 1, i64 0 }, ptr %a48 call void @finch_str_concat(ptr %a46, ptr %a47, ptr %a48) store { ptr, i64, i64 } %t45, ptr %a49 call void @finch_str_drop(ptr %a49) @@ -29765,8 +30510,8 @@ else2706: call void @finch.gen.emit(ptr %t26, { ptr, i64, i64 } %t50) store { ptr, i64, i64 } %t50, ptr %a51 call void @finch_str_drop(ptr %a51) - br label %endif2707 -endif2707: + br label %endif2766 +endif2766: ret void } @@ -29787,8 +30532,8 @@ entry: %t4 = load ptr, ptr %a1 %t5 = load %S.ast.Type, ptr %a3 %t6 = call i1 @finch.gen.owning(ptr %t4, %S.ast.Type %t5) - br i1 %t6, label %then2708, label %endif2710 -then2708: + br i1 %t6, label %then2767, label %endif2769 +then2767: %t7 = load ptr, ptr %a1 %t8 = load ptr, ptr %a1 %t9 = load { ptr, i64, i64 }, ptr %a2 @@ -29808,8 +30553,8 @@ then2708: call void @finch.gen.dropAt(ptr %t7, { ptr, i64, i64 } %t19, %S.ast.Type %t21) store { ptr, i64, i64 } %t19, ptr %a22 call void @finch_str_drop(ptr %a22) - br label %endif2710 -endif2710: + br label %endif2769 +endif2769: ret void } @@ -29821,55 +30566,55 @@ entry: store %S.gen.Val %p1, ptr %a2 %t3 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 2 %t4 = load i1, ptr %t3 - br label %logic.from2711 -logic.from2711: - br i1 %t4, label %logic.rhs2712, label %logic.end2713 -logic.rhs2712: + br label %logic.from2770 +logic.from2770: + br i1 %t4, label %logic.rhs2771, label %logic.end2772 +logic.rhs2771: %t5 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t7 = load i64, ptr %t6 %t8 = icmp sgt i64 %t7, 0 - br label %logic.rend2714 -logic.rend2714: - br label %logic.end2713 -logic.end2713: - %t9 = phi i1 [ false, %logic.from2711 ], [ %t8, %logic.rend2714 ] - br label %logic.from2715 -logic.from2715: - br i1 %t9, label %logic.rhs2716, label %logic.end2717 -logic.rhs2716: + br label %logic.rend2773 +logic.rend2773: + br label %logic.end2772 +logic.end2772: + %t9 = phi i1 [ false, %logic.from2770 ], [ %t8, %logic.rend2773 ] + br label %logic.from2774 +logic.from2774: + br i1 %t9, label %logic.rhs2775, label %logic.end2776 +logic.rhs2775: %t10 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t11 = load { ptr, i64, i64 }, ptr %t10 %t12 = call i1 @finch.gen.isConstant({ ptr, i64, i64 } %t11) %t13 = xor i1 %t12, true - br label %logic.rend2718 -logic.rend2718: - br label %logic.end2717 -logic.end2717: - %t14 = phi i1 [ false, %logic.from2715 ], [ %t13, %logic.rend2718 ] - br label %logic.from2719 -logic.from2719: - br i1 %t14, label %logic.rhs2720, label %logic.end2721 -logic.rhs2720: + br label %logic.rend2777 +logic.rend2777: + br label %logic.end2776 +logic.end2776: + %t14 = phi i1 [ false, %logic.from2774 ], [ %t13, %logic.rend2777 ] + br label %logic.from2778 +logic.from2778: + br i1 %t14, label %logic.rhs2779, label %logic.end2780 +logic.rhs2779: %t15 = load ptr, ptr %a1 %t16 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t17 = load %S.ast.Type, ptr %t16 %t18 = call i1 @finch.gen.owning(ptr %t15, %S.ast.Type %t17) - br label %logic.rend2722 -logic.rend2722: - br label %logic.end2721 -logic.end2721: - %t19 = phi i1 [ false, %logic.from2719 ], [ %t18, %logic.rend2722 ] - br i1 %t19, label %then2723, label %endif2725 -then2723: + br label %logic.rend2781 +logic.rend2781: + br label %logic.end2780 +logic.end2780: + %t19 = phi i1 [ false, %logic.from2778 ], [ %t18, %logic.rend2781 ] + br i1 %t19, label %then2782, label %endif2784 +then2782: %t20 = load ptr, ptr %a1 %t21 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t22 = load { ptr, i64, i64 }, ptr %t21 %t23 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t24 = load %S.ast.Type, ptr %t23 call void @finch.gen.dropValue(ptr %t20, { ptr, i64, i64 } %t22, %S.ast.Type %t24) - br label %endif2725 -endif2725: + br label %endif2784 +endif2784: ret void } @@ -29882,7 +30627,7 @@ entry: store { ptr, i64, i64 } %p0, ptr %a1 %t2 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t2, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.1627, i64 1, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.1655, i64 1, i64 0 }, ptr %a5 %t6 = call i32 @finch_str_starts(ptr %a3, ptr %a5) %t7 = icmp ne i32 %t6, 0 %t8 = xor i1 %t7, true @@ -30000,7 +30745,7 @@ entry: store %S.ast.Type %p1, ptr %a2 %t3 = load %S.ast.Type, ptr %a2 %t4 = call { ptr, i64, i64 } @finch.gen.typeKey(%S.ast.Type %t3) - store { ptr, i64, i64 } { ptr @.str.1628, i64 12, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.1656, i64 12, i64 0 }, ptr %a6 store { ptr, i64, i64 } %t4, ptr %a7 call void @finch_str_concat(ptr %a5, ptr %a6, ptr %a7) store { ptr, i64, i64 } %t4, ptr %a8 @@ -30009,28 +30754,28 @@ entry: store { ptr, i64, i64 } %t9, ptr %a10 %t11 = load ptr, ptr %a1 %t12 = icmp eq ptr %t11, null - br i1 %t12, label %panic2726, label %ok2727 -panic2726: - call void @finch_panic(ptr @.str.1629, i64 904, ptr @.str.1630) + br i1 %t12, label %panic2785, label %ok2786 +panic2785: + call void @finch_panic(ptr @.str.1657, i64 930, ptr @.str.1658) unreachable -ok2727: - %t13 = getelementptr inbounds %S.gen.Gen, ptr %t11, i32 0, i32 22 +ok2786: + %t13 = getelementptr inbounds %S.gen.Gen, ptr %t11, i32 0, i32 23 %t14 = load { ptr, i64, i64 }, ptr %t13 %t15 = load { ptr, i64, i64 }, ptr %a10 %t16 = call i1 @finch.gen.has({ ptr, i64, i64 } %t14, { ptr, i64, i64 } %t15) - br i1 %t16, label %then2728, label %endif2730 -then2728: + br i1 %t16, label %then2787, label %endif2789 +then2787: %t17 = load { ptr, i64, i64 }, ptr %a10 ret { ptr, i64, i64 } %t17 -endif2730: +endif2789: %t18 = load ptr, ptr %a1 %t19 = icmp eq ptr %t18, null - br i1 %t19, label %panic2731, label %ok2732 -panic2731: - call void @finch_panic(ptr @.str.1631, i64 907, ptr @.str.1632) + br i1 %t19, label %panic2790, label %ok2791 +panic2790: + call void @finch_panic(ptr @.str.1659, i64 933, ptr @.str.1660) unreachable -ok2732: - %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 22 +ok2791: + %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 23 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t20, i32 0, i32 1 %t22 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t22, ptr %a23 @@ -30049,20 +30794,20 @@ ok2732: %t33 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t34 = load { ptr, i64, i64 }, ptr %t33 store { ptr, i64, i64 } %t34, ptr %a35 - store { ptr, i64, i64 } { ptr @.str.1633, i64 5, i64 0 }, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.1661, i64 5, i64 0 }, ptr %a36 %t37 = call i32 @finch_str_eq(ptr %a35, ptr %a36) %t38 = icmp ne i32 %t37, 0 - br i1 %t38, label %then2733, label %else2734 -then2733: + br i1 %t38, label %then2792, label %else2793 +then2792: %t39 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t40 = load { ptr, i64, i64 }, ptr %t39 %t41 = extractvalue { ptr, i64, i64 } %t40, 1 %t42 = icmp uge i64 0, %t41 - br i1 %t42, label %range2736, label %inrange2737 -range2736: - call void @finch_panic_index(ptr @.str.1634, i64 910, i64 0, i64 %t41) + br i1 %t42, label %range2795, label %inrange2796 +range2795: + call void @finch_panic_index(ptr @.str.1662, i64 936, i64 0, i64 %t41) unreachable -inrange2737: +inrange2796: %t43 = extractvalue { ptr, i64, i64 } %t40, 0 %t44 = getelementptr inbounds %S.ast.Type, ptr %t43, i64 0 %t45 = load %S.ast.Type, ptr %t44 @@ -30073,15 +30818,15 @@ inrange2737: %t50 = load ptr, ptr %a1 %t51 = load %S.ast.Type, ptr %a49 %t52 = call i1 @finch.gen.owning(ptr %t50, %S.ast.Type %t51) - br i1 %t52, label %then2738, label %endif2740 -then2738: + br i1 %t52, label %then2797, label %endif2799 +then2797: %t53 = load ptr, ptr %a1 - %t54 = call { ptr, i64, i64 } @finch.gen.load(ptr %t53, { ptr, i64, i64 } { ptr @.str.1635, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.1636, i64 2, i64 0 }) + %t54 = call { ptr, i64, i64 } @finch.gen.load(ptr %t53, { ptr, i64, i64 } { ptr @.str.1663, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.1664, i64 2, i64 0 }) store { ptr, i64, i64 } %t54, ptr %a55 %t56 = load ptr, ptr %a1 %t57 = load ptr, ptr %a1 - %t58 = call { ptr, i64, i64 } @finch.gen.op(ptr %t57, { ptr, i64, i64 } { ptr @.str.1638, i64 62, i64 0 }) - %t59 = call { ptr, i64, i64 } @finch.gen.load(ptr %t56, { ptr, i64, i64 } { ptr @.str.1637, i64 3, i64 0 }, { ptr, i64, i64 } %t58) + %t58 = call { ptr, i64, i64 } @finch.gen.op(ptr %t57, { ptr, i64, i64 } { ptr @.str.1666, i64 62, i64 0 }) + %t59 = call { ptr, i64, i64 } @finch.gen.load(ptr %t56, { ptr, i64, i64 } { ptr @.str.1665, i64 3, i64 0 }, { ptr, i64, i64 } %t58) store { ptr, i64, i64 } %t58, ptr %a60 call void @finch_str_drop(ptr %a60) store { ptr, i64, i64 } %t59, ptr %a61 @@ -30093,14 +30838,14 @@ then2738: %t67 = load ptr, ptr %a1 %t68 = load %S.ast.Type, ptr %a49 %t69 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t67, %S.ast.Type %t68) - store { ptr, i64, i64 } { ptr @.str.1639, i64 23, i64 0 }, ptr %a71 + store { ptr, i64, i64 } { ptr @.str.1667, i64 23, i64 0 }, ptr %a71 store { ptr, i64, i64 } %t69, ptr %a72 call void @finch_str_concat(ptr %a70, ptr %a71, ptr %a72) store { ptr, i64, i64 } %t69, ptr %a73 call void @finch_str_drop(ptr %a73) %t74 = load { ptr, i64, i64 }, ptr %a70 store { ptr, i64, i64 } %t74, ptr %a76 - store { ptr, i64, i64 } { ptr @.str.1640, i64 6, i64 0 }, ptr %a77 + store { ptr, i64, i64 } { ptr @.str.1668, i64 6, i64 0 }, ptr %a77 call void @finch_str_concat(ptr %a75, ptr %a76, ptr %a77) store { ptr, i64, i64 } %t74, ptr %a78 call void @finch_str_drop(ptr %a78) @@ -30113,7 +30858,7 @@ then2738: call void @finch_str_drop(ptr %a84) %t85 = load { ptr, i64, i64 }, ptr %a81 store { ptr, i64, i64 } %t85, ptr %a87 - store { ptr, i64, i64 } { ptr @.str.1641, i64 6, i64 0 }, ptr %a88 + store { ptr, i64, i64 } { ptr @.str.1669, i64 6, i64 0 }, ptr %a88 call void @finch_str_concat(ptr %a86, ptr %a87, ptr %a88) store { ptr, i64, i64 } %t85, ptr %a89 call void @finch_str_drop(ptr %a89) @@ -30121,11 +30866,11 @@ then2738: %t91 = load { ptr, i64, i64 }, ptr %a65 %t92 = extractvalue { ptr, i64, i64 } %t91, 1 %t93 = icmp uge i64 3, %t92 - br i1 %t93, label %range2741, label %inrange2742 -range2741: - call void @finch_panic_index(ptr @.str.1642, i64 915, i64 3, i64 %t92) + br i1 %t93, label %range2800, label %inrange2801 +range2800: + call void @finch_panic_index(ptr @.str.1670, i64 941, i64 3, i64 %t92) unreachable -inrange2742: +inrange2801: %t94 = extractvalue { ptr, i64, i64 } %t91, 0 %t95 = getelementptr inbounds { ptr, i64, i64 }, ptr %t94, i64 3 %t96 = load { ptr, i64, i64 }, ptr %t95 @@ -30150,30 +30895,30 @@ inrange2742: call void @finch.drop.arr_str(ptr %a65) call void @finch_str_drop(ptr %a61) call void @finch_str_drop(ptr %a55) - br label %endif2740 -endif2740: + br label %endif2799 +endif2799: %t110 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t110, { ptr, i64, i64 } { ptr @.str.1643, i64 33, i64 0 }) + call void @finch.gen.emit(ptr %t110, { ptr, i64, i64 } { ptr @.str.1671, i64 33, i64 0 }) call void @finch.drop.S_ast_Type(ptr %a49) - br label %endif2735 -else2734: + br label %endif2794 +else2793: %t111 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t112 = load { ptr, i64, i64 }, ptr %t111 store { ptr, i64, i64 } %t112, ptr %a113 - store { ptr, i64, i64 } { ptr @.str.1644, i64 3, i64 0 }, ptr %a114 + store { ptr, i64, i64 } { ptr @.str.1672, i64 3, i64 0 }, ptr %a114 %t115 = call i32 @finch_str_eq(ptr %a113, ptr %a114) %t116 = icmp ne i32 %t115, 0 - br i1 %t116, label %then2743, label %else2744 -then2743: + br i1 %t116, label %then2802, label %else2803 +then2802: %t117 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t118 = load { ptr, i64, i64 }, ptr %t117 %t119 = extractvalue { ptr, i64, i64 } %t118, 1 %t120 = icmp uge i64 0, %t119 - br i1 %t120, label %range2746, label %inrange2747 -range2746: - call void @finch_panic_index(ptr @.str.1645, i64 921, i64 0, i64 %t119) + br i1 %t120, label %range2805, label %inrange2806 +range2805: + call void @finch_panic_index(ptr @.str.1673, i64 947, i64 0, i64 %t119) unreachable -inrange2747: +inrange2806: %t121 = extractvalue { ptr, i64, i64 } %t118, 0 %t122 = getelementptr inbounds %S.ast.Type, ptr %t121, i64 0 %t123 = load %S.ast.Type, ptr %t122 @@ -30185,11 +30930,11 @@ inrange2747: %t129 = load { ptr, i64, i64 }, ptr %t128 %t130 = extractvalue { ptr, i64, i64 } %t129, 1 %t131 = icmp uge i64 1, %t130 - br i1 %t131, label %range2748, label %inrange2749 -range2748: - call void @finch_panic_index(ptr @.str.1646, i64 922, i64 1, i64 %t130) + br i1 %t131, label %range2807, label %inrange2808 +range2807: + call void @finch_panic_index(ptr @.str.1674, i64 948, i64 1, i64 %t130) unreachable -inrange2749: +inrange2808: %t132 = extractvalue { ptr, i64, i64 } %t129, 0 %t133 = getelementptr inbounds %S.ast.Type, ptr %t132, i64 1 %t134 = load %S.ast.Type, ptr %t133 @@ -30200,33 +30945,33 @@ inrange2749: %t139 = load ptr, ptr %a1 %t140 = load %S.ast.Type, ptr %a127 %t141 = call i1 @finch.gen.owning(ptr %t139, %S.ast.Type %t140) - br label %logic.from2750 -logic.from2750: - br i1 %t141, label %logic.end2752, label %logic.rhs2751 -logic.rhs2751: + br label %logic.from2809 +logic.from2809: + br i1 %t141, label %logic.end2811, label %logic.rhs2810 +logic.rhs2810: %t142 = load ptr, ptr %a1 %t143 = load %S.ast.Type, ptr %a138 %t144 = call i1 @finch.gen.owning(ptr %t142, %S.ast.Type %t143) - br label %logic.rend2753 -logic.rend2753: - br label %logic.end2752 -logic.end2752: - %t145 = phi i1 [ true, %logic.from2750 ], [ %t144, %logic.rend2753 ] - br i1 %t145, label %then2754, label %endif2756 -then2754: + br label %logic.rend2812 +logic.rend2812: + br label %logic.end2811 +logic.end2811: + %t145 = phi i1 [ true, %logic.from2809 ], [ %t144, %logic.rend2812 ] + br i1 %t145, label %then2813, label %endif2815 +then2813: %t146 = load ptr, ptr %a1 %t147 = load ptr, ptr %a1 %t148 = load ptr, ptr %a1 %t149 = load %S.ast.Type, ptr %a2 %t150 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t148, %S.ast.Type %t149) - store { ptr, i64, i64 } { ptr @.str.1648, i64 23, i64 0 }, ptr %a152 + store { ptr, i64, i64 } { ptr @.str.1676, i64 23, i64 0 }, ptr %a152 store { ptr, i64, i64 } %t150, ptr %a153 call void @finch_str_concat(ptr %a151, ptr %a152, ptr %a153) store { ptr, i64, i64 } %t150, ptr %a154 call void @finch_str_drop(ptr %a154) %t155 = load { ptr, i64, i64 }, ptr %a151 store { ptr, i64, i64 } %t155, ptr %a157 - store { ptr, i64, i64 } { ptr @.str.1649, i64 22, i64 0 }, ptr %a158 + store { ptr, i64, i64 } { ptr @.str.1677, i64 22, i64 0 }, ptr %a158 call void @finch_str_concat(ptr %a156, ptr %a157, ptr %a158) store { ptr, i64, i64 } %t155, ptr %a159 call void @finch_str_drop(ptr %a159) @@ -30234,7 +30979,7 @@ then2754: %t161 = call { ptr, i64, i64 } @finch.gen.op(ptr %t147, { ptr, i64, i64 } %t160) store { ptr, i64, i64 } %t160, ptr %a162 call void @finch_str_drop(ptr %a162) - %t163 = call { ptr, i64, i64 } @finch.gen.load(ptr %t146, { ptr, i64, i64 } { ptr @.str.1647, i64 3, i64 0 }, { ptr, i64, i64 } %t161) + %t163 = call { ptr, i64, i64 } @finch.gen.load(ptr %t146, { ptr, i64, i64 } { ptr @.str.1675, i64 3, i64 0 }, { ptr, i64, i64 } %t161) store { ptr, i64, i64 } %t161, ptr %a164 call void @finch_str_drop(ptr %a164) store { ptr, i64, i64 } %t163, ptr %a165 @@ -30247,21 +30992,21 @@ then2754: %t172 = load { ptr, i64, i64 }, ptr %a169 %t173 = extractvalue { ptr, i64, i64 } %t172, 1 %t174 = icmp uge i64 3, %t173 - br i1 %t174, label %range2757, label %inrange2758 -range2757: - call void @finch_panic_index(ptr @.str.1651, i64 926, i64 3, i64 %t173) + br i1 %t174, label %range2816, label %inrange2817 +range2816: + call void @finch_panic_index(ptr @.str.1679, i64 952, i64 3, i64 %t173) unreachable -inrange2758: +inrange2817: %t175 = extractvalue { ptr, i64, i64 } %t172, 0 %t176 = getelementptr inbounds { ptr, i64, i64 }, ptr %t175, i64 3 %t177 = load { ptr, i64, i64 }, ptr %t176 - %t178 = call { ptr, i64, i64 } @finch.gen.entryAt(ptr %t170, { ptr, i64, i64 } { ptr @.str.1650, i64 2, i64 0 }, %S.ast.Type %t171, { ptr, i64, i64 } %t177) + %t178 = call { ptr, i64, i64 } @finch.gen.entryAt(ptr %t170, { ptr, i64, i64 } { ptr @.str.1678, i64 2, i64 0 }, %S.ast.Type %t171, { ptr, i64, i64 } %t177) store { ptr, i64, i64 } %t178, ptr %a179 %t180 = load ptr, ptr %a1 - %t181 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t180, { ptr, i64, i64 } { ptr @.str.1652, i64 10, i64 0 }) + %t181 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t180, { ptr, i64, i64 } { ptr @.str.1680, i64 10, i64 0 }) store { ptr, i64, i64 } %t181, ptr %a182 %t183 = load ptr, ptr %a1 - %t184 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t183, { ptr, i64, i64 } { ptr @.str.1653, i64 10, i64 0 }) + %t184 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t183, { ptr, i64, i64 } { ptr @.str.1681, i64 10, i64 0 }) store { ptr, i64, i64 } %t184, ptr %a185 %t186 = load ptr, ptr %a1 %t187 = load ptr, ptr %a1 @@ -30270,17 +31015,17 @@ inrange2758: %t190 = load { ptr, i64, i64 }, ptr %a179 %t191 = load %S.ast.Type, ptr %a2 %t192 = call { ptr, i64, i64 } @finch.gen.entryField(ptr %t189, { ptr, i64, i64 } %t190, %S.ast.Type %t191, i64 0) - %t193 = call { ptr, i64, i64 } @finch.gen.load(ptr %t188, { ptr, i64, i64 } { ptr @.str.1655, i64 3, i64 0 }, { ptr, i64, i64 } %t192) + %t193 = call { ptr, i64, i64 } @finch.gen.load(ptr %t188, { ptr, i64, i64 } { ptr @.str.1683, i64 3, i64 0 }, { ptr, i64, i64 } %t192) store { ptr, i64, i64 } %t192, ptr %a194 call void @finch_str_drop(ptr %a194) - store { ptr, i64, i64 } { ptr @.str.1654, i64 12, i64 0 }, ptr %a196 + store { ptr, i64, i64 } { ptr @.str.1682, i64 12, i64 0 }, ptr %a196 store { ptr, i64, i64 } %t193, ptr %a197 call void @finch_str_concat(ptr %a195, ptr %a196, ptr %a197) store { ptr, i64, i64 } %t193, ptr %a198 call void @finch_str_drop(ptr %a198) %t199 = load { ptr, i64, i64 }, ptr %a195 store { ptr, i64, i64 } %t199, ptr %a201 - store { ptr, i64, i64 } { ptr @.str.1656, i64 3, i64 0 }, ptr %a202 + store { ptr, i64, i64 } { ptr @.str.1684, i64 3, i64 0 }, ptr %a202 call void @finch_str_concat(ptr %a200, ptr %a201, ptr %a202) store { ptr, i64, i64 } %t199, ptr %a203 call void @finch_str_drop(ptr %a203) @@ -30328,21 +31073,21 @@ inrange2758: call void @finch_str_drop(ptr %a179) call void @finch.drop.arr_str(ptr %a169) call void @finch_str_drop(ptr %a165) - br label %endif2756 -endif2756: + br label %endif2815 +endif2815: %t232 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t232, { ptr, i64, i64 } { ptr @.str.1657, i64 33, i64 0 }) + call void @finch.gen.emit(ptr %t232, { ptr, i64, i64 } { ptr @.str.1685, i64 33, i64 0 }) call void @finch.drop.S_ast_Type(ptr %a138) call void @finch.drop.S_ast_Type(ptr %a127) - br label %endif2745 -else2744: + br label %endif2804 +else2803: %t233 = load ptr, ptr %a1 %t234 = icmp eq ptr %t233, null - br i1 %t234, label %panic2759, label %ok2760 -panic2759: - call void @finch_panic(ptr @.str.1658, i64 939, ptr @.str.1659) + br i1 %t234, label %panic2818, label %ok2819 +panic2818: + call void @finch_panic(ptr @.str.1686, i64 965, ptr @.str.1687) unreachable -ok2760: +ok2819: %t235 = getelementptr inbounds %S.gen.Gen, ptr %t233, i32 0, i32 16 %t236 = load ptr, ptr %a1 %t237 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 @@ -30353,11 +31098,11 @@ ok2760: %t242 = load { ptr, i64, i64 }, ptr %t235 %t243 = extractvalue { ptr, i64, i64 } %t242, 1 %t244 = icmp uge i64 %t241, %t243 - br i1 %t244, label %range2761, label %inrange2762 -range2761: - call void @finch_panic_index(ptr @.str.1660, i64 939, i64 %t241, i64 %t243) + br i1 %t244, label %range2820, label %inrange2821 +range2820: + call void @finch_panic_index(ptr @.str.1688, i64 965, i64 %t241, i64 %t243) unreachable -inrange2762: +inrange2821: %t245 = extractvalue { ptr, i64, i64 } %t242, 0 %t246 = getelementptr inbounds %S.gen.StructDef, ptr %t245, i64 %t241 %t247 = load %S.gen.StructDef, ptr %t246 @@ -30373,38 +31118,38 @@ inrange2762: %t257 = getelementptr inbounds { ptr, i64, i64 }, ptr %t256, i32 0, i32 1 %t258 = load i64, ptr %t257 store i64 0, ptr %a259 - br label %for.cond2763 -for.cond2763: + br label %for.cond2822 +for.cond2822: %t260 = load i64, ptr %a259 %t261 = icmp slt i64 %t260, %t258 - br i1 %t261, label %for.body2764, label %for.end2766 -for.body2764: + br i1 %t261, label %for.body2823, label %for.end2825 +for.body2823: %t262 = load ptr, ptr %a1 %t263 = getelementptr inbounds %S.gen.StructDef, ptr %a251, i32 0, i32 12 %t264 = load i64, ptr %a259 %t265 = load { ptr, i64, i64 }, ptr %t263 %t266 = extractvalue { ptr, i64, i64 } %t265, 1 %t267 = icmp uge i64 %t264, %t266 - br i1 %t267, label %range2767, label %inrange2768 -range2767: - call void @finch_panic_index(ptr @.str.1661, i64 942, i64 %t264, i64 %t266) + br i1 %t267, label %range2826, label %inrange2827 +range2826: + call void @finch_panic_index(ptr @.str.1689, i64 968, i64 %t264, i64 %t266) unreachable -inrange2768: +inrange2827: %t268 = extractvalue { ptr, i64, i64 } %t265, 0 %t269 = getelementptr inbounds %S.ast.Type, ptr %t268, i64 %t264 %t270 = load %S.ast.Type, ptr %t269 %t271 = call i1 @finch.gen.owning(ptr %t262, %S.ast.Type %t270) - br i1 %t271, label %then2769, label %endif2771 -then2769: + br i1 %t271, label %then2828, label %endif2830 +then2828: %t272 = load ptr, ptr %a1 %t273 = load ptr, ptr %a1 %t274 = load { ptr, i64, i64 }, ptr %a255 - store { ptr, i64, i64 } { ptr @.str.1662, i64 23, i64 0 }, ptr %a276 + store { ptr, i64, i64 } { ptr @.str.1690, i64 23, i64 0 }, ptr %a276 store { ptr, i64, i64 } %t274, ptr %a277 call void @finch_str_concat(ptr %a275, ptr %a276, ptr %a277) %t278 = load { ptr, i64, i64 }, ptr %a275 store { ptr, i64, i64 } %t278, ptr %a280 - store { ptr, i64, i64 } { ptr @.str.1663, i64 21, i64 0 }, ptr %a281 + store { ptr, i64, i64 } { ptr @.str.1691, i64 21, i64 0 }, ptr %a281 call void @finch_str_concat(ptr %a279, ptr %a280, ptr %a281) store { ptr, i64, i64 } %t278, ptr %a282 call void @finch_str_drop(ptr %a282) @@ -30414,11 +31159,11 @@ then2769: %t286 = load { ptr, i64, i64 }, ptr %t284 %t287 = extractvalue { ptr, i64, i64 } %t286, 1 %t288 = icmp uge i64 %t285, %t287 - br i1 %t288, label %range2772, label %inrange2773 -range2772: - call void @finch_panic_index(ptr @.str.1664, i64 943, i64 %t285, i64 %t287) + br i1 %t288, label %range2831, label %inrange2832 +range2831: + call void @finch_panic_index(ptr @.str.1692, i64 969, i64 %t285, i64 %t287) unreachable -inrange2773: +inrange2832: %t289 = extractvalue { ptr, i64, i64 } %t286, 0 %t290 = getelementptr inbounds i64, ptr %t289, i64 %t285 %t291 = load i64, ptr %t290 @@ -30440,43 +31185,43 @@ inrange2773: %t304 = load { ptr, i64, i64 }, ptr %t302 %t305 = extractvalue { ptr, i64, i64 } %t304, 1 %t306 = icmp uge i64 %t303, %t305 - br i1 %t306, label %range2774, label %inrange2775 -range2774: - call void @finch_panic_index(ptr @.str.1665, i64 943, i64 %t303, i64 %t305) + br i1 %t306, label %range2833, label %inrange2834 +range2833: + call void @finch_panic_index(ptr @.str.1693, i64 969, i64 %t303, i64 %t305) unreachable -inrange2775: +inrange2834: %t307 = extractvalue { ptr, i64, i64 } %t304, 0 %t308 = getelementptr inbounds %S.ast.Type, ptr %t307, i64 %t303 %t309 = load %S.ast.Type, ptr %t308 call void @finch.gen.dropAt(ptr %t272, { ptr, i64, i64 } %t300, %S.ast.Type %t309) store { ptr, i64, i64 } %t300, ptr %a310 call void @finch_str_drop(ptr %a310) - br label %endif2771 -endif2771: - br label %for.step2765 -for.step2765: + br label %endif2830 +endif2830: + br label %for.step2824 +for.step2824: %t311 = load i64, ptr %a259 %t312 = add i64 %t311, 1 store i64 %t312, ptr %a259 - br label %for.cond2763 -for.end2766: + br label %for.cond2822 +for.end2825: call void @finch_str_drop(ptr %a255) call void @finch.drop.S_gen_StructDef(ptr %a251) - br label %endif2745 -endif2745: - br label %endif2735 -endif2735: + br label %endif2804 +endif2804: + br label %endif2794 +endif2794: %t313 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t313, { ptr, i64, i64 } { ptr @.str.1666, i64 8, i64 0 }) + call void @finch.gen.emit(ptr %t313, { ptr, i64, i64 } { ptr @.str.1694, i64 8, i64 0 }) %t314 = load ptr, ptr %a1 %t315 = load %S.gen.Saved, ptr %a32 %t316 = load { ptr, i64, i64 }, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.1667, i64 21, i64 0 }, ptr %a318 + store { ptr, i64, i64 } { ptr @.str.1695, i64 21, i64 0 }, ptr %a318 store { ptr, i64, i64 } %t316, ptr %a319 call void @finch_str_concat(ptr %a317, ptr %a318, ptr %a319) %t320 = load { ptr, i64, i64 }, ptr %a317 store { ptr, i64, i64 } %t320, ptr %a322 - store { ptr, i64, i64 } { ptr @.str.1668, i64 8, i64 0 }, ptr %a323 + store { ptr, i64, i64 } { ptr @.str.1696, i64 8, i64 0 }, ptr %a323 call void @finch_str_concat(ptr %a321, ptr %a322, ptr %a323) store { ptr, i64, i64 } %t320, ptr %a324 call void @finch_str_drop(ptr %a324) @@ -30501,54 +31246,54 @@ entry: store %S.gen.Val %p1, ptr %a2 %t3 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 2 %t4 = load i1, ptr %t3 - br label %logic.from2776 -logic.from2776: - br i1 %t4, label %logic.rhs2777, label %logic.end2778 -logic.rhs2777: + br label %logic.from2835 +logic.from2835: + br i1 %t4, label %logic.rhs2836, label %logic.end2837 +logic.rhs2836: %t5 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t7 = load i64, ptr %t6 %t8 = icmp sgt i64 %t7, 0 - br label %logic.rend2779 -logic.rend2779: - br label %logic.end2778 -logic.end2778: - %t9 = phi i1 [ false, %logic.from2776 ], [ %t8, %logic.rend2779 ] - br label %logic.from2780 -logic.from2780: - br i1 %t9, label %logic.rhs2781, label %logic.end2782 -logic.rhs2781: + br label %logic.rend2838 +logic.rend2838: + br label %logic.end2837 +logic.end2837: + %t9 = phi i1 [ false, %logic.from2835 ], [ %t8, %logic.rend2838 ] + br label %logic.from2839 +logic.from2839: + br i1 %t9, label %logic.rhs2840, label %logic.end2841 +logic.rhs2840: %t10 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t11 = load { ptr, i64, i64 }, ptr %t10 %t12 = call i1 @finch.gen.isConstant({ ptr, i64, i64 } %t11) %t13 = xor i1 %t12, true - br label %logic.rend2783 -logic.rend2783: - br label %logic.end2782 -logic.end2782: - %t14 = phi i1 [ false, %logic.from2780 ], [ %t13, %logic.rend2783 ] - br label %logic.from2784 -logic.from2784: - br i1 %t14, label %logic.rhs2785, label %logic.end2786 -logic.rhs2785: + br label %logic.rend2842 +logic.rend2842: + br label %logic.end2841 +logic.end2841: + %t14 = phi i1 [ false, %logic.from2839 ], [ %t13, %logic.rend2842 ] + br label %logic.from2843 +logic.from2843: + br i1 %t14, label %logic.rhs2844, label %logic.end2845 +logic.rhs2844: %t15 = load ptr, ptr %a1 %t16 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t17 = load %S.ast.Type, ptr %t16 %t18 = call i1 @finch.gen.owning(ptr %t15, %S.ast.Type %t17) - br label %logic.rend2787 -logic.rend2787: - br label %logic.end2786 -logic.end2786: - %t19 = phi i1 [ false, %logic.from2784 ], [ %t18, %logic.rend2787 ] - br i1 %t19, label %then2788, label %endif2790 -then2788: + br label %logic.rend2846 +logic.rend2846: + br label %logic.end2845 +logic.end2845: + %t19 = phi i1 [ false, %logic.from2843 ], [ %t18, %logic.rend2846 ] + br i1 %t19, label %then2847, label %endif2849 +then2847: %t20 = load ptr, ptr %a1 %t21 = icmp eq ptr %t20, null - br i1 %t21, label %panic2791, label %ok2792 -panic2791: - call void @finch_panic(ptr @.str.1669, i64 956, ptr @.str.1670) + br i1 %t21, label %panic2850, label %ok2851 +panic2850: + call void @finch_panic(ptr @.str.1697, i64 982, ptr @.str.1698) unreachable -ok2792: +ok2851: %t22 = getelementptr inbounds %S.gen.Gen, ptr %t20, i32 0, i32 11 %t23 = getelementptr inbounds { ptr, i64, i64 }, ptr %t22, i32 0, i32 1 %t24 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 @@ -30571,8 +31316,8 @@ ok2792: %t40 = getelementptr inbounds %S.gen.Pending, ptr %t39, i64 %t37 store %S.gen.Pending %t36, ptr %t40 store i64 %t38, ptr %t23 - br label %endif2790 -endif2790: + br label %endif2849 +endif2849: ret void } @@ -30591,15 +31336,15 @@ entry: %t4 = load ptr, ptr %a1 %t5 = load %S.ast.Type, ptr %a3 %t6 = call i1 @finch.gen.owning(ptr %t4, %S.ast.Type %t5) - br i1 %t6, label %then2793, label %endif2795 -then2793: + br i1 %t6, label %then2852, label %endif2854 +then2852: %t7 = load ptr, ptr %a1 %t8 = icmp eq ptr %t7, null - br i1 %t8, label %panic2796, label %ok2797 -panic2796: - call void @finch_panic(ptr @.str.1671, i64 962, ptr @.str.1672) + br i1 %t8, label %panic2855, label %ok2856 +panic2855: + call void @finch_panic(ptr @.str.1699, i64 988, ptr @.str.1700) unreachable -ok2797: +ok2856: %t9 = getelementptr inbounds %S.gen.Gen, ptr %t7, i32 0, i32 11 %t10 = getelementptr inbounds { ptr, i64, i64 }, ptr %t9, i32 0, i32 1 %t11 = load { ptr, i64, i64 }, ptr %a2 @@ -30620,8 +31365,8 @@ ok2797: %t25 = getelementptr inbounds %S.gen.Pending, ptr %t24, i64 %t22 store %S.gen.Pending %t21, ptr %t25 store i64 %t23, ptr %t10 - br label %endif2795 -endif2795: + br label %endif2854 +endif2854: ret void } @@ -30661,42 +31406,42 @@ entry: store i64 %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic2798, label %ok2799 -panic2798: - call void @finch_panic(ptr @.str.1673, i64 968, ptr @.str.1674) + br i1 %t4, label %panic2857, label %ok2858 +panic2857: + call void @finch_panic(ptr @.str.1701, i64 994, ptr @.str.1702) unreachable -ok2799: +ok2858: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 11 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t7 = load i64, ptr %t6 store i64 %t7, ptr %a8 - br label %while.cond2800 -while.cond2800: + br label %while.cond2859 +while.cond2859: %t9 = load i64, ptr %a8 %t10 = load i64, ptr %a2 %t11 = icmp sgt i64 %t9, %t10 - br i1 %t11, label %while.body2801, label %while.end2802 -while.body2801: + br i1 %t11, label %while.body2860, label %while.end2861 +while.body2860: %t12 = load i64, ptr %a8 %t13 = sub i64 %t12, 1 store i64 %t13, ptr %a8 %t14 = load ptr, ptr %a1 %t15 = icmp eq ptr %t14, null - br i1 %t15, label %panic2803, label %ok2804 -panic2803: - call void @finch_panic(ptr @.str.1675, i64 971, ptr @.str.1676) + br i1 %t15, label %panic2862, label %ok2863 +panic2862: + call void @finch_panic(ptr @.str.1703, i64 997, ptr @.str.1704) unreachable -ok2804: +ok2863: %t16 = getelementptr inbounds %S.gen.Gen, ptr %t14, i32 0, i32 11 %t17 = load i64, ptr %a8 %t18 = load { ptr, i64, i64 }, ptr %t16 %t19 = extractvalue { ptr, i64, i64 } %t18, 1 %t20 = icmp uge i64 %t17, %t19 - br i1 %t20, label %range2805, label %inrange2806 -range2805: - call void @finch_panic_index(ptr @.str.1677, i64 971, i64 %t17, i64 %t19) + br i1 %t20, label %range2864, label %inrange2865 +range2864: + call void @finch_panic_index(ptr @.str.1705, i64 997, i64 %t17, i64 %t19) unreachable -inrange2806: +inrange2865: %t21 = extractvalue { ptr, i64, i64 } %t18, 0 %t22 = getelementptr inbounds %S.gen.Pending, ptr %t21, i64 %t17 %t23 = load %S.gen.Pending, ptr %t22 @@ -30706,27 +31451,27 @@ inrange2806: store %S.gen.Pending %t26, ptr %a27 %t28 = getelementptr inbounds %S.gen.Pending, ptr %a27, i32 0, i32 2 %t29 = load i1, ptr %t28 - br i1 %t29, label %then2807, label %else2808 -then2807: + br i1 %t29, label %then2866, label %else2867 +then2866: %t30 = load ptr, ptr %a1 %t31 = getelementptr inbounds %S.gen.Pending, ptr %a27, i32 0, i32 0 %t32 = load { ptr, i64, i64 }, ptr %t31 %t33 = getelementptr inbounds %S.gen.Pending, ptr %a27, i32 0, i32 1 %t34 = load %S.ast.Type, ptr %t33 call void @finch.gen.dropAt(ptr %t30, { ptr, i64, i64 } %t32, %S.ast.Type %t34) - br label %endif2809 -else2808: + br label %endif2868 +else2867: %t35 = load ptr, ptr %a1 %t36 = getelementptr inbounds %S.gen.Pending, ptr %a27, i32 0, i32 0 %t37 = load { ptr, i64, i64 }, ptr %t36 %t38 = getelementptr inbounds %S.gen.Pending, ptr %a27, i32 0, i32 1 %t39 = load %S.ast.Type, ptr %t38 call void @finch.gen.dropValue(ptr %t35, { ptr, i64, i64 } %t37, %S.ast.Type %t39) - br label %endif2809 -endif2809: + br label %endif2868 +endif2868: call void @finch.drop.S_gen_Pending(ptr %a27) - br label %while.cond2800 -while.end2802: + br label %while.cond2859 +while.end2861: ret void } @@ -30737,38 +31482,38 @@ entry: %a20 = alloca %S.gen.Pending, align 16 store ptr %p0, ptr %a1 store i64 %p1, ptr %a2 - br label %while.cond2810 -while.cond2810: + br label %while.cond2869 +while.cond2869: %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic2813, label %ok2814 -panic2813: - call void @finch_panic(ptr @.str.1678, i64 982, ptr @.str.1679) + br i1 %t4, label %panic2872, label %ok2873 +panic2872: + call void @finch_panic(ptr @.str.1706, i64 1008, ptr @.str.1707) unreachable -ok2814: +ok2873: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 11 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t7 = load i64, ptr %t6 %t8 = load i64, ptr %a2 %t9 = icmp sgt i64 %t7, %t8 - br i1 %t9, label %while.body2811, label %while.end2812 -while.body2811: + br i1 %t9, label %while.body2870, label %while.end2871 +while.body2870: %t10 = load ptr, ptr %a1 %t11 = icmp eq ptr %t10, null - br i1 %t11, label %panic2815, label %ok2816 -panic2815: - call void @finch_panic(ptr @.str.1680, i64 983, ptr @.str.1681) + br i1 %t11, label %panic2874, label %ok2875 +panic2874: + call void @finch_panic(ptr @.str.1708, i64 1009, ptr @.str.1709) unreachable -ok2816: +ok2875: %t12 = getelementptr inbounds %S.gen.Gen, ptr %t10, i32 0, i32 11 %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %t12, i32 0, i32 1 %t14 = load i64, ptr %t13 %t15 = icmp eq i64 %t14, 0 - br i1 %t15, label %panic2817, label %ok2818 -panic2817: - call void @finch_panic(ptr @.str.1682, i64 983, ptr @.str.1683) + br i1 %t15, label %panic2876, label %ok2877 +panic2876: + call void @finch_panic(ptr @.str.1710, i64 1009, ptr @.str.1711) unreachable -ok2818: +ok2877: %t16 = sub i64 %t14, 1 %t17 = load ptr, ptr %t12 %t18 = getelementptr inbounds %S.gen.Pending, ptr %t17, i64 %t16 @@ -30776,8 +31521,8 @@ ok2818: store i64 %t16, ptr %t13 store %S.gen.Pending %t19, ptr %a20 call void @finch.drop.S_gen_Pending(ptr %a20) - br label %while.cond2810 -while.end2812: + br label %while.cond2869 +while.end2871: ret void } @@ -30794,26 +31539,26 @@ entry: %t5 = load %S.ast.Type, ptr %t4 %t6 = call i1 @finch.gen.owning(ptr %t3, %S.ast.Type %t5) %t7 = xor i1 %t6, true - br label %logic.from2819 -logic.from2819: - br i1 %t7, label %logic.end2821, label %logic.rhs2820 -logic.rhs2820: + br label %logic.from2878 +logic.from2878: + br i1 %t7, label %logic.end2880, label %logic.rhs2879 +logic.rhs2879: %t8 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 2 %t9 = load i1, ptr %t8 - br label %logic.rend2822 -logic.rend2822: - br label %logic.end2821 -logic.end2821: - %t10 = phi i1 [ true, %logic.from2819 ], [ %t9, %logic.rend2822 ] - br i1 %t10, label %then2823, label %endif2825 -then2823: + br label %logic.rend2881 +logic.rend2881: + br label %logic.end2880 +logic.end2880: + %t10 = phi i1 [ true, %logic.from2878 ], [ %t9, %logic.rend2881 ] + br i1 %t10, label %then2882, label %endif2884 +then2882: %t11 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t12 = load { ptr, i64, i64 }, ptr %t11 store { ptr, i64, i64 } %t12, ptr %a13 call void @finch_str_copy(ptr %a14, ptr %a13) %t15 = load { ptr, i64, i64 }, ptr %a14 ret { ptr, i64, i64 } %t15 -endif2825: +endif2884: %t16 = load ptr, ptr %a1 %t17 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t18 = load { ptr, i64, i64 }, ptr %t17 @@ -30861,14 +31606,14 @@ entry: %t8 = load ptr, ptr %a1 %t9 = call { ptr, i64, i64 } @finch.gen.tmpName(ptr %t8) store { ptr, i64, i64 } %t9, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.1684, i64 0, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.1712, i64 0, i64 0 }, ptr %a11 %t12 = getelementptr inbounds { ptr, i64, i64 }, ptr %a3, i32 0, i32 1 %t13 = load i64, ptr %t12 %t14 = icmp sgt i64 %t13, 0 - br i1 %t14, label %then2826, label %endif2828 -then2826: + br i1 %t14, label %then2885, label %endif2887 +then2885: %t15 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.1685, i64 2, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.1713, i64 2, i64 0 }, ptr %a17 store { ptr, i64, i64 } %t15, ptr %a18 call void @finch_str_concat(ptr %a16, ptr %a17, ptr %a18) %t19 = load { ptr, i64, i64 }, ptr %a16 @@ -30876,12 +31621,12 @@ then2826: store { ptr, i64, i64 } %t19, ptr %a11 store { ptr, i64, i64 } %t20, ptr %a21 call void @finch_str_drop(ptr %a21) - br label %endif2828 -endif2828: + br label %endif2887 +endif2887: %t22 = load ptr, ptr %a1 %t23 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t23, ptr %a25 - store { ptr, i64, i64 } { ptr @.str.1686, i64 35, i64 0 }, ptr %a26 + store { ptr, i64, i64 } { ptr @.str.1714, i64 35, i64 0 }, ptr %a26 call void @finch_str_concat(ptr %a24, ptr %a25, ptr %a26) %t27 = load { ptr, i64, i64 }, ptr %a24 %t28 = load { ptr, i64, i64 }, ptr %a7 @@ -30899,7 +31644,7 @@ endif2828: call void @finch_str_drop(ptr %a38) %t39 = load { ptr, i64, i64 }, ptr %a35 store { ptr, i64, i64 } %t39, ptr %a41 - store { ptr, i64, i64 } { ptr @.str.1687, i64 1, i64 0 }, ptr %a42 + store { ptr, i64, i64 } { ptr @.str.1715, i64 1, i64 0 }, ptr %a42 call void @finch_str_concat(ptr %a40, ptr %a41, ptr %a42) store { ptr, i64, i64 } %t39, ptr %a43 call void @finch_str_drop(ptr %a43) @@ -30960,12 +31705,12 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1688, i64 31, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.1716, i64 31, i64 0 }, ptr %a6 store { ptr, i64, i64 } %t4, ptr %a7 call void @finch_str_concat(ptr %a5, ptr %a6, ptr %a7) %t8 = load { ptr, i64, i64 }, ptr %a5 store { ptr, i64, i64 } %t8, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.1689, i64 3, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.1717, i64 3, i64 0 }, ptr %a11 call void @finch_str_concat(ptr %a9, ptr %a10, ptr %a11) store { ptr, i64, i64 } %t8, ptr %a12 call void @finch_str_drop(ptr %a12) @@ -30976,12 +31721,12 @@ entry: store { ptr, i64, i64 } %t14, ptr %a16 %t17 = load ptr, ptr %a1 %t18 = load { ptr, i64, i64 }, ptr %a16 - store { ptr, i64, i64 } { ptr @.str.1690, i64 12, i64 0 }, ptr %a20 + store { ptr, i64, i64 } { ptr @.str.1718, i64 12, i64 0 }, ptr %a20 store { ptr, i64, i64 } %t18, ptr %a21 call void @finch_str_concat(ptr %a19, ptr %a20, ptr %a21) %t22 = load { ptr, i64, i64 }, ptr %a19 store { ptr, i64, i64 } %t22, ptr %a24 - store { ptr, i64, i64 } { ptr @.str.1691, i64 6, i64 0 }, ptr %a25 + store { ptr, i64, i64 } { ptr @.str.1719, i64 6, i64 0 }, ptr %a25 call void @finch_str_concat(ptr %a23, ptr %a24, ptr %a25) store { ptr, i64, i64 } %t22, ptr %a26 call void @finch_str_drop(ptr %a26) @@ -30991,16 +31736,16 @@ entry: call void @finch_str_drop(ptr %a29) store { ptr, i64, i64 } %t28, ptr %a30 %t31 = load ptr, ptr %a1 - %t32 = call { ptr, i64, i64 } @finch.gen.strGlobal(ptr %t31, { ptr, i64, i64 } { ptr @.str.1692, i64 0, i64 0 }) + %t32 = call { ptr, i64, i64 } @finch.gen.strGlobal(ptr %t31, { ptr, i64, i64 } { ptr @.str.1720, i64 0, i64 0 }) store { ptr, i64, i64 } %t32, ptr %a33 %t34 = load ptr, ptr %a1 %t35 = load { ptr, i64, i64 }, ptr %a30 - store { ptr, i64, i64 } { ptr @.str.1693, i64 10, i64 0 }, ptr %a37 + store { ptr, i64, i64 } { ptr @.str.1721, i64 10, i64 0 }, ptr %a37 store { ptr, i64, i64 } %t35, ptr %a38 call void @finch_str_concat(ptr %a36, ptr %a37, ptr %a38) %t39 = load { ptr, i64, i64 }, ptr %a36 store { ptr, i64, i64 } %t39, ptr %a41 - store { ptr, i64, i64 } { ptr @.str.1694, i64 6, i64 0 }, ptr %a42 + store { ptr, i64, i64 } { ptr @.str.1722, i64 6, i64 0 }, ptr %a42 call void @finch_str_concat(ptr %a40, ptr %a41, ptr %a42) store { ptr, i64, i64 } %t39, ptr %a43 call void @finch_str_drop(ptr %a43) @@ -31013,7 +31758,7 @@ entry: call void @finch_str_drop(ptr %a49) %t50 = load { ptr, i64, i64 }, ptr %a46 store { ptr, i64, i64 } %t50, ptr %a52 - store { ptr, i64, i64 } { ptr @.str.1695, i64 6, i64 0 }, ptr %a53 + store { ptr, i64, i64 } { ptr @.str.1723, i64 6, i64 0 }, ptr %a53 call void @finch_str_concat(ptr %a51, ptr %a52, ptr %a53) store { ptr, i64, i64 } %t50, ptr %a54 call void @finch_str_drop(ptr %a54) @@ -31204,88 +31949,88 @@ entry: store { ptr, i64, i64 } %t9, ptr %a10 %t11 = load %S.ast.Type, ptr %a3 %t12 = call i1 @finch.gen.isSigned(%S.ast.Type %t11) - br i1 %t12, label %then2829, label %else2830 -then2829: + br i1 %t12, label %then2888, label %else2889 +then2888: %t13 = load ptr, ptr %a1 %t14 = load ptr, ptr %a1 %t15 = load { ptr, i64, i64 }, ptr %a2 %t16 = load %S.ast.Type, ptr %a3 - %t17 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.1698, i64 3, i64 0 }) + %t17 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.1726, i64 3, i64 0 }) %t18 = call { ptr, i64, i64 } @finch.gen.intCast(ptr %t14, { ptr, i64, i64 } %t15, %S.ast.Type %t16, %S.ast.Type %t17) store %S.ast.Type %t17, ptr %a19 call void @finch.drop.S_ast_Type(ptr %a19) - store { ptr, i64, i64 } { ptr @.str.1697, i64 4, i64 0 }, ptr %a21 + store { ptr, i64, i64 } { ptr @.str.1725, i64 4, i64 0 }, ptr %a21 store { ptr, i64, i64 } %t18, ptr %a22 call void @finch_str_concat(ptr %a20, ptr %a21, ptr %a22) store { ptr, i64, i64 } %t18, ptr %a23 call void @finch_str_drop(ptr %a23) %t24 = load { ptr, i64, i64 }, ptr %a20 - call void @finch.gen.printf(ptr %t13, { ptr, i64, i64 } { ptr @.str.1696, i64 4, i64 0 }, { ptr, i64, i64 } %t24) + call void @finch.gen.printf(ptr %t13, { ptr, i64, i64 } { ptr @.str.1724, i64 4, i64 0 }, { ptr, i64, i64 } %t24) store { ptr, i64, i64 } %t24, ptr %a25 call void @finch_str_drop(ptr %a25) - br label %endif2831 -else2830: + br label %endif2890 +else2889: %t26 = load %S.ast.Type, ptr %a3 %t27 = call i1 @finch.gen.isUnsigned(%S.ast.Type %t26) - br i1 %t27, label %then2832, label %else2833 -then2832: + br i1 %t27, label %then2891, label %else2892 +then2891: %t28 = load ptr, ptr %a1 %t29 = load ptr, ptr %a1 %t30 = load { ptr, i64, i64 }, ptr %a2 %t31 = load %S.ast.Type, ptr %a3 - %t32 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.1701, i64 3, i64 0 }) + %t32 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.1729, i64 3, i64 0 }) %t33 = call { ptr, i64, i64 } @finch.gen.intCast(ptr %t29, { ptr, i64, i64 } %t30, %S.ast.Type %t31, %S.ast.Type %t32) store %S.ast.Type %t32, ptr %a34 call void @finch.drop.S_ast_Type(ptr %a34) - store { ptr, i64, i64 } { ptr @.str.1700, i64 4, i64 0 }, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.1728, i64 4, i64 0 }, ptr %a36 store { ptr, i64, i64 } %t33, ptr %a37 call void @finch_str_concat(ptr %a35, ptr %a36, ptr %a37) store { ptr, i64, i64 } %t33, ptr %a38 call void @finch_str_drop(ptr %a38) %t39 = load { ptr, i64, i64 }, ptr %a35 - call void @finch.gen.printf(ptr %t28, { ptr, i64, i64 } { ptr @.str.1699, i64 4, i64 0 }, { ptr, i64, i64 } %t39) + call void @finch.gen.printf(ptr %t28, { ptr, i64, i64 } { ptr @.str.1727, i64 4, i64 0 }, { ptr, i64, i64 } %t39) store { ptr, i64, i64 } %t39, ptr %a40 call void @finch_str_drop(ptr %a40) - br label %endif2834 -else2833: + br label %endif2893 +else2892: %t41 = load %S.ast.Type, ptr %a3 %t42 = call i1 @finch.gen.isFloat(%S.ast.Type %t41) - br i1 %t42, label %then2835, label %else2836 -then2835: + br i1 %t42, label %then2894, label %else2895 +then2894: %t43 = load ptr, ptr %a1 %t44 = load ptr, ptr %a1 %t45 = load { ptr, i64, i64 }, ptr %a2 %t46 = load %S.ast.Type, ptr %a3 - %t47 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.1704, i64 5, i64 0 }) + %t47 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.1732, i64 5, i64 0 }) %t48 = call { ptr, i64, i64 } @finch.gen.floatCast(ptr %t44, { ptr, i64, i64 } %t45, %S.ast.Type %t46, %S.ast.Type %t47) store %S.ast.Type %t47, ptr %a49 call void @finch.drop.S_ast_Type(ptr %a49) - store { ptr, i64, i64 } { ptr @.str.1703, i64 7, i64 0 }, ptr %a51 + store { ptr, i64, i64 } { ptr @.str.1731, i64 7, i64 0 }, ptr %a51 store { ptr, i64, i64 } %t48, ptr %a52 call void @finch_str_concat(ptr %a50, ptr %a51, ptr %a52) store { ptr, i64, i64 } %t48, ptr %a53 call void @finch_str_drop(ptr %a53) %t54 = load { ptr, i64, i64 }, ptr %a50 - call void @finch.gen.printf(ptr %t43, { ptr, i64, i64 } { ptr @.str.1702, i64 2, i64 0 }, { ptr, i64, i64 } %t54) + call void @finch.gen.printf(ptr %t43, { ptr, i64, i64 } { ptr @.str.1730, i64 2, i64 0 }, { ptr, i64, i64 } %t54) store { ptr, i64, i64 } %t54, ptr %a55 call void @finch_str_drop(ptr %a55) - br label %endif2837 -else2836: + br label %endif2896 +else2895: %t56 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t56, ptr %a57 - store { ptr, i64, i64 } { ptr @.str.1705, i64 4, i64 0 }, ptr %a58 + store { ptr, i64, i64 } { ptr @.str.1733, i64 4, i64 0 }, ptr %a58 %t59 = call i32 @finch_str_eq(ptr %a57, ptr %a58) %t60 = icmp ne i32 %t59, 0 - br i1 %t60, label %then2838, label %else2839 -then2838: + br i1 %t60, label %then2897, label %else2898 +then2897: %t61 = load ptr, ptr %a1 %t62 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1706, i64 8, i64 0 }, ptr %a64 + store { ptr, i64, i64 } { ptr @.str.1734, i64 8, i64 0 }, ptr %a64 store { ptr, i64, i64 } %t62, ptr %a65 call void @finch_str_concat(ptr %a63, ptr %a64, ptr %a65) %t66 = load { ptr, i64, i64 }, ptr %a63 store { ptr, i64, i64 } %t66, ptr %a68 - store { ptr, i64, i64 } { ptr @.str.1707, i64 7, i64 0 }, ptr %a69 + store { ptr, i64, i64 } { ptr @.str.1735, i64 7, i64 0 }, ptr %a69 call void @finch_str_concat(ptr %a67, ptr %a68, ptr %a69) store { ptr, i64, i64 } %t66, ptr %a70 call void @finch_str_drop(ptr %a70) @@ -31295,54 +32040,54 @@ then2838: call void @finch_str_drop(ptr %a73) store { ptr, i64, i64 } %t72, ptr %a74 %t75 = load i1, ptr %a4 - br i1 %t75, label %then2841, label %else2842 -then2841: + br i1 %t75, label %then2900, label %else2901 +then2900: %t76 = load ptr, ptr %a1 %t77 = load { ptr, i64, i64 }, ptr %a74 - store { ptr, i64, i64 } { ptr @.str.1709, i64 4, i64 0 }, ptr %a79 + store { ptr, i64, i64 } { ptr @.str.1737, i64 4, i64 0 }, ptr %a79 store { ptr, i64, i64 } %t77, ptr %a80 call void @finch_str_concat(ptr %a78, ptr %a79, ptr %a80) %t81 = load { ptr, i64, i64 }, ptr %a78 - call void @finch.gen.printf(ptr %t76, { ptr, i64, i64 } { ptr @.str.1708, i64 4, i64 0 }, { ptr, i64, i64 } %t81) + call void @finch.gen.printf(ptr %t76, { ptr, i64, i64 } { ptr @.str.1736, i64 4, i64 0 }, { ptr, i64, i64 } %t81) store { ptr, i64, i64 } %t81, ptr %a82 call void @finch_str_drop(ptr %a82) - br label %endif2843 -else2842: + br label %endif2902 +else2901: %t83 = load ptr, ptr %a1 %t84 = load { ptr, i64, i64 }, ptr %a74 - store { ptr, i64, i64 } { ptr @.str.1711, i64 4, i64 0 }, ptr %a86 + store { ptr, i64, i64 } { ptr @.str.1739, i64 4, i64 0 }, ptr %a86 store { ptr, i64, i64 } %t84, ptr %a87 call void @finch_str_concat(ptr %a85, ptr %a86, ptr %a87) %t88 = load { ptr, i64, i64 }, ptr %a85 - call void @finch.gen.printf(ptr %t83, { ptr, i64, i64 } { ptr @.str.1710, i64 2, i64 0 }, { ptr, i64, i64 } %t88) + call void @finch.gen.printf(ptr %t83, { ptr, i64, i64 } { ptr @.str.1738, i64 2, i64 0 }, { ptr, i64, i64 } %t88) store { ptr, i64, i64 } %t88, ptr %a89 call void @finch_str_drop(ptr %a89) - br label %endif2843 -endif2843: + br label %endif2902 +endif2902: call void @finch_str_drop(ptr %a74) - br label %endif2840 -else2839: + br label %endif2899 +else2898: %t90 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t90, ptr %a91 - store { ptr, i64, i64 } { ptr @.str.1712, i64 4, i64 0 }, ptr %a92 + store { ptr, i64, i64 } { ptr @.str.1740, i64 4, i64 0 }, ptr %a92 %t93 = call i32 @finch_str_eq(ptr %a91, ptr %a92) %t94 = icmp ne i32 %t93, 0 - br i1 %t94, label %then2844, label %else2845 -then2844: + br i1 %t94, label %then2903, label %else2904 +then2903: %t95 = load ptr, ptr %a1 - %t96 = call { ptr, i64, i64 } @finch.gen.strGlobal(ptr %t95, { ptr, i64, i64 } { ptr @.str.1713, i64 4, i64 0 }) + %t96 = call { ptr, i64, i64 } @finch.gen.strGlobal(ptr %t95, { ptr, i64, i64 } { ptr @.str.1741, i64 4, i64 0 }) store { ptr, i64, i64 } %t96, ptr %a97 %t98 = load ptr, ptr %a1 - %t99 = call { ptr, i64, i64 } @finch.gen.strGlobal(ptr %t98, { ptr, i64, i64 } { ptr @.str.1714, i64 5, i64 0 }) + %t99 = call { ptr, i64, i64 } @finch.gen.strGlobal(ptr %t98, { ptr, i64, i64 } { ptr @.str.1742, i64 5, i64 0 }) store { ptr, i64, i64 } %t99, ptr %a100 %t101 = load ptr, ptr %a1 %t102 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1715, i64 10, i64 0 }, ptr %a104 + store { ptr, i64, i64 } { ptr @.str.1743, i64 10, i64 0 }, ptr %a104 store { ptr, i64, i64 } %t102, ptr %a105 call void @finch_str_concat(ptr %a103, ptr %a104, ptr %a105) %t106 = load { ptr, i64, i64 }, ptr %a103 store { ptr, i64, i64 } %t106, ptr %a108 - store { ptr, i64, i64 } { ptr @.str.1716, i64 6, i64 0 }, ptr %a109 + store { ptr, i64, i64 } { ptr @.str.1744, i64 6, i64 0 }, ptr %a109 call void @finch_str_concat(ptr %a107, ptr %a108, ptr %a109) store { ptr, i64, i64 } %t106, ptr %a110 call void @finch_str_drop(ptr %a110) @@ -31355,7 +32100,7 @@ then2844: call void @finch_str_drop(ptr %a116) %t117 = load { ptr, i64, i64 }, ptr %a113 store { ptr, i64, i64 } %t117, ptr %a119 - store { ptr, i64, i64 } { ptr @.str.1717, i64 6, i64 0 }, ptr %a120 + store { ptr, i64, i64 } { ptr @.str.1745, i64 6, i64 0 }, ptr %a120 call void @finch_str_concat(ptr %a118, ptr %a119, ptr %a120) store { ptr, i64, i64 } %t117, ptr %a121 call void @finch_str_drop(ptr %a121) @@ -31373,33 +32118,33 @@ then2844: store { ptr, i64, i64 } %t129, ptr %a131 %t132 = load ptr, ptr %a1 %t133 = load { ptr, i64, i64 }, ptr %a131 - store { ptr, i64, i64 } { ptr @.str.1719, i64 4, i64 0 }, ptr %a135 + store { ptr, i64, i64 } { ptr @.str.1747, i64 4, i64 0 }, ptr %a135 store { ptr, i64, i64 } %t133, ptr %a136 call void @finch_str_concat(ptr %a134, ptr %a135, ptr %a136) %t137 = load { ptr, i64, i64 }, ptr %a134 - call void @finch.gen.printf(ptr %t132, { ptr, i64, i64 } { ptr @.str.1718, i64 2, i64 0 }, { ptr, i64, i64 } %t137) + call void @finch.gen.printf(ptr %t132, { ptr, i64, i64 } { ptr @.str.1746, i64 2, i64 0 }, { ptr, i64, i64 } %t137) store { ptr, i64, i64 } %t137, ptr %a138 call void @finch_str_drop(ptr %a138) call void @finch_str_drop(ptr %a131) call void @finch_str_drop(ptr %a100) call void @finch_str_drop(ptr %a97) - br label %endif2846 -else2845: + br label %endif2905 +else2904: %t139 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t139, ptr %a140 - store { ptr, i64, i64 } { ptr @.str.1720, i64 3, i64 0 }, ptr %a141 + store { ptr, i64, i64 } { ptr @.str.1748, i64 3, i64 0 }, ptr %a141 %t142 = call i32 @finch_str_eq(ptr %a140, ptr %a141) %t143 = icmp ne i32 %t142, 0 - br i1 %t143, label %then2847, label %else2848 -then2847: + br i1 %t143, label %then2906, label %else2907 +then2906: %t144 = load ptr, ptr %a1 %t145 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1721, i64 31, i64 0 }, ptr %a147 + store { ptr, i64, i64 } { ptr @.str.1749, i64 31, i64 0 }, ptr %a147 store { ptr, i64, i64 } %t145, ptr %a148 call void @finch_str_concat(ptr %a146, ptr %a147, ptr %a148) %t149 = load { ptr, i64, i64 }, ptr %a146 store { ptr, i64, i64 } %t149, ptr %a151 - store { ptr, i64, i64 } { ptr @.str.1722, i64 3, i64 0 }, ptr %a152 + store { ptr, i64, i64 } { ptr @.str.1750, i64 3, i64 0 }, ptr %a152 call void @finch_str_concat(ptr %a150, ptr %a151, ptr %a152) store { ptr, i64, i64 } %t149, ptr %a153 call void @finch_str_drop(ptr %a153) @@ -31410,12 +32155,12 @@ then2847: store { ptr, i64, i64 } %t155, ptr %a157 %t158 = load ptr, ptr %a1 %t159 = load { ptr, i64, i64 }, ptr %a157 - store { ptr, i64, i64 } { ptr @.str.1723, i64 10, i64 0 }, ptr %a161 + store { ptr, i64, i64 } { ptr @.str.1751, i64 10, i64 0 }, ptr %a161 store { ptr, i64, i64 } %t159, ptr %a162 call void @finch_str_concat(ptr %a160, ptr %a161, ptr %a162) %t163 = load { ptr, i64, i64 }, ptr %a160 store { ptr, i64, i64 } %t163, ptr %a165 - store { ptr, i64, i64 } { ptr @.str.1724, i64 7, i64 0 }, ptr %a166 + store { ptr, i64, i64 } { ptr @.str.1752, i64 7, i64 0 }, ptr %a166 call void @finch_str_concat(ptr %a164, ptr %a165, ptr %a166) store { ptr, i64, i64 } %t163, ptr %a167 call void @finch_str_drop(ptr %a167) @@ -31429,16 +32174,16 @@ then2847: %t174 = call { ptr, i64, i64 } @finch.gen.cstr(ptr %t172, { ptr, i64, i64 } %t173) store { ptr, i64, i64 } %t174, ptr %a175 %t176 = load i1, ptr %a4 - br i1 %t176, label %then2850, label %else2851 -then2850: + br i1 %t176, label %then2909, label %else2910 +then2909: %t177 = load ptr, ptr %a1 %t178 = load { ptr, i64, i64 }, ptr %a171 - store { ptr, i64, i64 } { ptr @.str.1726, i64 4, i64 0 }, ptr %a180 + store { ptr, i64, i64 } { ptr @.str.1754, i64 4, i64 0 }, ptr %a180 store { ptr, i64, i64 } %t178, ptr %a181 call void @finch_str_concat(ptr %a179, ptr %a180, ptr %a181) %t182 = load { ptr, i64, i64 }, ptr %a179 store { ptr, i64, i64 } %t182, ptr %a184 - store { ptr, i64, i64 } { ptr @.str.1727, i64 6, i64 0 }, ptr %a185 + store { ptr, i64, i64 } { ptr @.str.1755, i64 6, i64 0 }, ptr %a185 call void @finch_str_concat(ptr %a183, ptr %a184, ptr %a185) store { ptr, i64, i64 } %t182, ptr %a186 call void @finch_str_drop(ptr %a186) @@ -31450,19 +32195,19 @@ then2850: store { ptr, i64, i64 } %t187, ptr %a192 call void @finch_str_drop(ptr %a192) %t193 = load { ptr, i64, i64 }, ptr %a189 - call void @finch.gen.printf(ptr %t177, { ptr, i64, i64 } { ptr @.str.1725, i64 6, i64 0 }, { ptr, i64, i64 } %t193) + call void @finch.gen.printf(ptr %t177, { ptr, i64, i64 } { ptr @.str.1753, i64 6, i64 0 }, { ptr, i64, i64 } %t193) store { ptr, i64, i64 } %t193, ptr %a194 call void @finch_str_drop(ptr %a194) - br label %endif2852 -else2851: + br label %endif2911 +else2910: %t195 = load ptr, ptr %a1 %t196 = load { ptr, i64, i64 }, ptr %a171 - store { ptr, i64, i64 } { ptr @.str.1729, i64 4, i64 0 }, ptr %a198 + store { ptr, i64, i64 } { ptr @.str.1757, i64 4, i64 0 }, ptr %a198 store { ptr, i64, i64 } %t196, ptr %a199 call void @finch_str_concat(ptr %a197, ptr %a198, ptr %a199) %t200 = load { ptr, i64, i64 }, ptr %a197 store { ptr, i64, i64 } %t200, ptr %a202 - store { ptr, i64, i64 } { ptr @.str.1730, i64 6, i64 0 }, ptr %a203 + store { ptr, i64, i64 } { ptr @.str.1758, i64 6, i64 0 }, ptr %a203 call void @finch_str_concat(ptr %a201, ptr %a202, ptr %a203) store { ptr, i64, i64 } %t200, ptr %a204 call void @finch_str_drop(ptr %a204) @@ -31474,31 +32219,31 @@ else2851: store { ptr, i64, i64 } %t205, ptr %a210 call void @finch_str_drop(ptr %a210) %t211 = load { ptr, i64, i64 }, ptr %a207 - call void @finch.gen.printf(ptr %t195, { ptr, i64, i64 } { ptr @.str.1728, i64 4, i64 0 }, { ptr, i64, i64 } %t211) + call void @finch.gen.printf(ptr %t195, { ptr, i64, i64 } { ptr @.str.1756, i64 4, i64 0 }, { ptr, i64, i64 } %t211) store { ptr, i64, i64 } %t211, ptr %a212 call void @finch_str_drop(ptr %a212) - br label %endif2852 -endif2852: + br label %endif2911 +endif2911: call void @finch_str_drop(ptr %a175) call void @finch_str_drop(ptr %a171) call void @finch_str_drop(ptr %a157) - br label %endif2849 -else2848: + br label %endif2908 +else2907: %t213 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t213, ptr %a214 - store { ptr, i64, i64 } { ptr @.str.1731, i64 3, i64 0 }, ptr %a215 + store { ptr, i64, i64 } { ptr @.str.1759, i64 3, i64 0 }, ptr %a215 %t216 = call i32 @finch_str_eq(ptr %a214, ptr %a215) %t217 = icmp ne i32 %t216, 0 - br i1 %t217, label %then2853, label %else2854 -then2853: + br i1 %t217, label %then2912, label %else2913 +then2912: %t218 = load ptr, ptr %a1 %t219 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1732, i64 12, i64 0 }, ptr %a221 + store { ptr, i64, i64 } { ptr @.str.1760, i64 12, i64 0 }, ptr %a221 store { ptr, i64, i64 } %t219, ptr %a222 call void @finch_str_concat(ptr %a220, ptr %a221, ptr %a222) %t223 = load { ptr, i64, i64 }, ptr %a220 store { ptr, i64, i64 } %t223, ptr %a225 - store { ptr, i64, i64 } { ptr @.str.1733, i64 6, i64 0 }, ptr %a226 + store { ptr, i64, i64 } { ptr @.str.1761, i64 6, i64 0 }, ptr %a226 call void @finch_str_concat(ptr %a224, ptr %a225, ptr %a226) store { ptr, i64, i64 } %t223, ptr %a227 call void @finch_str_drop(ptr %a227) @@ -31508,13 +32253,13 @@ then2853: call void @finch_str_drop(ptr %a230) store { ptr, i64, i64 } %t229, ptr %a231 %t232 = load ptr, ptr %a1 - %t233 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t232, { ptr, i64, i64 } { ptr @.str.1734, i64 8, i64 0 }) + %t233 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t232, { ptr, i64, i64 } { ptr @.str.1762, i64 8, i64 0 }) store { ptr, i64, i64 } %t233, ptr %a234 %t235 = load ptr, ptr %a1 - %t236 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t235, { ptr, i64, i64 } { ptr @.str.1735, i64 8, i64 0 }) + %t236 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t235, { ptr, i64, i64 } { ptr @.str.1763, i64 8, i64 0 }) store { ptr, i64, i64 } %t236, ptr %a237 %t238 = load ptr, ptr %a1 - %t239 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t238, { ptr, i64, i64 } { ptr @.str.1736, i64 8, i64 0 }) + %t239 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t238, { ptr, i64, i64 } { ptr @.str.1764, i64 8, i64 0 }) store { ptr, i64, i64 } %t239, ptr %a240 %t241 = load ptr, ptr %a1 %t242 = load { ptr, i64, i64 }, ptr %a231 @@ -31525,7 +32270,7 @@ then2853: %t246 = load { ptr, i64, i64 }, ptr %a234 call void @finch.gen.label(ptr %t245, { ptr, i64, i64 } %t246) %t247 = load ptr, ptr %a1 - call void @finch.gen.printf(ptr %t247, { ptr, i64, i64 } { ptr @.str.1737, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1738, i64 0, i64 0 }) + call void @finch.gen.printf(ptr %t247, { ptr, i64, i64 } { ptr @.str.1765, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1766, i64 0, i64 0 }) %t248 = load ptr, ptr %a1 %t249 = load { ptr, i64, i64 }, ptr %a240 call void @finch.gen.br(ptr %t248, { ptr, i64, i64 } %t249) @@ -31535,12 +32280,12 @@ then2853: %t252 = load ptr, ptr %a1 %t253 = load ptr, ptr %a1 %t254 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1741, i64 13, i64 0 }, ptr %a256 + store { ptr, i64, i64 } { ptr @.str.1769, i64 13, i64 0 }, ptr %a256 store { ptr, i64, i64 } %t254, ptr %a257 call void @finch_str_concat(ptr %a255, ptr %a256, ptr %a257) %t258 = load { ptr, i64, i64 }, ptr %a255 store { ptr, i64, i64 } %t258, ptr %a260 - store { ptr, i64, i64 } { ptr @.str.1742, i64 7, i64 0 }, ptr %a261 + store { ptr, i64, i64 } { ptr @.str.1770, i64 7, i64 0 }, ptr %a261 call void @finch_str_concat(ptr %a259, ptr %a260, ptr %a261) store { ptr, i64, i64 } %t258, ptr %a262 call void @finch_str_drop(ptr %a262) @@ -31548,13 +32293,13 @@ then2853: %t264 = call { ptr, i64, i64 } @finch.gen.op(ptr %t253, { ptr, i64, i64 } %t263) store { ptr, i64, i64 } %t263, ptr %a265 call void @finch_str_drop(ptr %a265) - store { ptr, i64, i64 } { ptr @.str.1740, i64 4, i64 0 }, ptr %a267 + store { ptr, i64, i64 } { ptr @.str.1768, i64 4, i64 0 }, ptr %a267 store { ptr, i64, i64 } %t264, ptr %a268 call void @finch_str_concat(ptr %a266, ptr %a267, ptr %a268) store { ptr, i64, i64 } %t264, ptr %a269 call void @finch_str_drop(ptr %a269) %t270 = load { ptr, i64, i64 }, ptr %a266 - call void @finch.gen.printf(ptr %t252, { ptr, i64, i64 } { ptr @.str.1739, i64 6, i64 0 }, { ptr, i64, i64 } %t270) + call void @finch.gen.printf(ptr %t252, { ptr, i64, i64 } { ptr @.str.1767, i64 6, i64 0 }, { ptr, i64, i64 } %t270) store { ptr, i64, i64 } %t270, ptr %a271 call void @finch_str_drop(ptr %a271) %t272 = load ptr, ptr %a1 @@ -31567,25 +32312,25 @@ then2853: call void @finch_str_drop(ptr %a237) call void @finch_str_drop(ptr %a234) call void @finch_str_drop(ptr %a231) - br label %endif2855 -else2854: + br label %endif2914 +else2913: %t276 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t276, ptr %a277 - store { ptr, i64, i64 } { ptr @.str.1743, i64 4, i64 0 }, ptr %a278 + store { ptr, i64, i64 } { ptr @.str.1771, i64 4, i64 0 }, ptr %a278 %t279 = call i32 @finch_str_eq(ptr %a277, ptr %a278) %t280 = icmp ne i32 %t279, 0 - br i1 %t280, label %then2856, label %else2857 -then2856: + br i1 %t280, label %then2915, label %else2916 +then2915: %t281 = load ptr, ptr %a1 - call void @finch.gen.printf(ptr %t281, { ptr, i64, i64 } { ptr @.str.1744, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1745, i64 0, i64 0 }) - br label %endif2858 -else2857: + call void @finch.gen.printf(ptr %t281, { ptr, i64, i64 } { ptr @.str.1772, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1773, i64 0, i64 0 }) + br label %endif2917 +else2916: %t282 = load ptr, ptr %a1 - %t283 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t282, { ptr, i64, i64 } { ptr @.str.1746, i64 17, i64 0 }) + %t283 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t282, { ptr, i64, i64 } { ptr @.str.1774, i64 17, i64 0 }) store { ptr, i64, i64 } %t283, ptr %a284 %t285 = load ptr, ptr %a1 %t286 = load { ptr, i64, i64 }, ptr %a284 - call void @finch.gen.store(ptr %t285, { ptr, i64, i64 } { ptr @.str.1747, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.1748, i64 15, i64 0 }, { ptr, i64, i64 } %t286) + call void @finch.gen.store(ptr %t285, { ptr, i64, i64 } { ptr @.str.1775, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.1776, i64 15, i64 0 }, { ptr, i64, i64 } %t286) %t287 = load ptr, ptr %a1 %t288 = load { ptr, i64, i64 }, ptr %a284 %t289 = load { ptr, i64, i64 }, ptr %a2 @@ -31594,12 +32339,12 @@ else2857: call void @finch.gen.emitFormat(ptr %t287, { ptr, i64, i64 } %t288, { ptr, i64, i64 } %t289, %S.ast.Type %t290, i1 %t291) %t292 = load ptr, ptr %a1 %t293 = load { ptr, i64, i64 }, ptr %a284 - store { ptr, i64, i64 } { ptr @.str.1749, i64 31, i64 0 }, ptr %a295 + store { ptr, i64, i64 } { ptr @.str.1777, i64 31, i64 0 }, ptr %a295 store { ptr, i64, i64 } %t293, ptr %a296 call void @finch_str_concat(ptr %a294, ptr %a295, ptr %a296) %t297 = load { ptr, i64, i64 }, ptr %a294 store { ptr, i64, i64 } %t297, ptr %a299 - store { ptr, i64, i64 } { ptr @.str.1750, i64 1, i64 0 }, ptr %a300 + store { ptr, i64, i64 } { ptr @.str.1778, i64 1, i64 0 }, ptr %a300 call void @finch_str_concat(ptr %a298, ptr %a299, ptr %a300) store { ptr, i64, i64 } %t297, ptr %a301 call void @finch_str_drop(ptr %a301) @@ -31608,22 +32353,22 @@ else2857: store { ptr, i64, i64 } %t302, ptr %a303 call void @finch_str_drop(ptr %a303) call void @finch_str_drop(ptr %a284) - br label %endif2858 -endif2858: - br label %endif2855 -endif2855: - br label %endif2849 -endif2849: - br label %endif2846 -endif2846: - br label %endif2840 -endif2840: - br label %endif2837 -endif2837: - br label %endif2834 -endif2834: - br label %endif2831 -endif2831: + br label %endif2917 +endif2917: + br label %endif2914 +endif2914: + br label %endif2908 +endif2908: + br label %endif2905 +endif2905: + br label %endif2899 +endif2899: + br label %endif2896 +endif2896: + br label %endif2893 +endif2893: + br label %endif2890 +endif2890: call void @finch_str_drop(ptr %a10) ret void } @@ -31665,12 +32410,12 @@ entry: store { ptr, i64, i64 } %p2, ptr %a3 %t4 = load ptr, ptr %a1 %t5 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1751, i64 29, i64 0 }, ptr %a7 + store { ptr, i64, i64 } { ptr @.str.1779, i64 29, i64 0 }, ptr %a7 store { ptr, i64, i64 } %t5, ptr %a8 call void @finch_str_concat(ptr %a6, ptr %a7, ptr %a8) %t9 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t9, ptr %a11 - store { ptr, i64, i64 } { ptr @.str.1752, i64 6, i64 0 }, ptr %a12 + store { ptr, i64, i64 } { ptr @.str.1780, i64 6, i64 0 }, ptr %a12 call void @finch_str_concat(ptr %a10, ptr %a11, ptr %a12) store { ptr, i64, i64 } %t9, ptr %a13 call void @finch_str_drop(ptr %a13) @@ -31687,7 +32432,7 @@ entry: call void @finch_str_drop(ptr %a22) %t23 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t23, ptr %a25 - store { ptr, i64, i64 } { ptr @.str.1753, i64 6, i64 0 }, ptr %a26 + store { ptr, i64, i64 } { ptr @.str.1781, i64 6, i64 0 }, ptr %a26 call void @finch_str_concat(ptr %a24, ptr %a25, ptr %a26) store { ptr, i64, i64 } %t23, ptr %a27 call void @finch_str_drop(ptr %a27) @@ -31705,7 +32450,7 @@ entry: call void @finch_str_drop(ptr %a37) %t38 = load { ptr, i64, i64 }, ptr %a33 store { ptr, i64, i64 } %t38, ptr %a40 - store { ptr, i64, i64 } { ptr @.str.1754, i64 1, i64 0 }, ptr %a41 + store { ptr, i64, i64 } { ptr @.str.1782, i64 1, i64 0 }, ptr %a41 call void @finch_str_concat(ptr %a39, ptr %a40, ptr %a41) store { ptr, i64, i64 } %t38, ptr %a42 call void @finch_str_drop(ptr %a42) @@ -31929,28 +32674,28 @@ entry: call void @finch_str_copy(ptr %a9, ptr %a8) %t10 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t10, ptr %a11 - store { ptr, i64, i64 } { ptr @.str.1755, i64 1, i64 0 }, ptr %a12 + store { ptr, i64, i64 } { ptr @.str.1783, i64 1, i64 0 }, ptr %a12 %t13 = load i1, ptr %a5 - br i1 %t13, label %then2859, label %endif2861 -then2859: + br i1 %t13, label %then2918, label %endif2920 +then2918: %t14 = load { ptr, i64, i64 }, ptr %a12 - store { ptr, i64, i64 } { ptr @.str.1756, i64 1, i64 0 }, ptr %a12 + store { ptr, i64, i64 } { ptr @.str.1784, i64 1, i64 0 }, ptr %a12 store { ptr, i64, i64 } %t14, ptr %a15 call void @finch_str_drop(ptr %a15) - br label %endif2861 -endif2861: + br label %endif2920 +endif2920: %t16 = load %S.ast.Type, ptr %a4 %t17 = call i1 @finch.gen.isSigned(%S.ast.Type %t16) - br i1 %t17, label %then2862, label %else2863 -then2862: + br i1 %t17, label %then2921, label %else2922 +then2921: %t18 = load ptr, ptr %a1 %t19 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1757, i64 29, i64 0 }, ptr %a21 + store { ptr, i64, i64 } { ptr @.str.1785, i64 29, i64 0 }, ptr %a21 store { ptr, i64, i64 } %t19, ptr %a22 call void @finch_str_concat(ptr %a20, ptr %a21, ptr %a22) %t23 = load { ptr, i64, i64 }, ptr %a20 store { ptr, i64, i64 } %t23, ptr %a25 - store { ptr, i64, i64 } { ptr @.str.1758, i64 6, i64 0 }, ptr %a26 + store { ptr, i64, i64 } { ptr @.str.1786, i64 6, i64 0 }, ptr %a26 call void @finch_str_concat(ptr %a24, ptr %a25, ptr %a26) store { ptr, i64, i64 } %t23, ptr %a27 call void @finch_str_drop(ptr %a27) @@ -31958,7 +32703,7 @@ then2862: %t29 = load ptr, ptr %a1 %t30 = load { ptr, i64, i64 }, ptr %a3 %t31 = load %S.ast.Type, ptr %a4 - %t32 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.1759, i64 3, i64 0 }) + %t32 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.1787, i64 3, i64 0 }) %t33 = call { ptr, i64, i64 } @finch.gen.intCast(ptr %t29, { ptr, i64, i64 } %t30, %S.ast.Type %t31, %S.ast.Type %t32) store %S.ast.Type %t32, ptr %a34 call void @finch.drop.S_ast_Type(ptr %a34) @@ -31971,7 +32716,7 @@ then2862: call void @finch_str_drop(ptr %a39) %t40 = load { ptr, i64, i64 }, ptr %a35 store { ptr, i64, i64 } %t40, ptr %a42 - store { ptr, i64, i64 } { ptr @.str.1760, i64 1, i64 0 }, ptr %a43 + store { ptr, i64, i64 } { ptr @.str.1788, i64 1, i64 0 }, ptr %a43 call void @finch_str_concat(ptr %a41, ptr %a42, ptr %a43) store { ptr, i64, i64 } %t40, ptr %a44 call void @finch_str_drop(ptr %a44) @@ -31979,20 +32724,20 @@ then2862: call void @finch.gen.emit(ptr %t18, { ptr, i64, i64 } %t45) store { ptr, i64, i64 } %t45, ptr %a46 call void @finch_str_drop(ptr %a46) - br label %endif2864 -else2863: + br label %endif2923 +else2922: %t47 = load %S.ast.Type, ptr %a4 %t48 = call i1 @finch.gen.isUnsigned(%S.ast.Type %t47) - br i1 %t48, label %then2865, label %else2866 -then2865: + br i1 %t48, label %then2924, label %else2925 +then2924: %t49 = load ptr, ptr %a1 %t50 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1761, i64 30, i64 0 }, ptr %a52 + store { ptr, i64, i64 } { ptr @.str.1789, i64 30, i64 0 }, ptr %a52 store { ptr, i64, i64 } %t50, ptr %a53 call void @finch_str_concat(ptr %a51, ptr %a52, ptr %a53) %t54 = load { ptr, i64, i64 }, ptr %a51 store { ptr, i64, i64 } %t54, ptr %a56 - store { ptr, i64, i64 } { ptr @.str.1762, i64 6, i64 0 }, ptr %a57 + store { ptr, i64, i64 } { ptr @.str.1790, i64 6, i64 0 }, ptr %a57 call void @finch_str_concat(ptr %a55, ptr %a56, ptr %a57) store { ptr, i64, i64 } %t54, ptr %a58 call void @finch_str_drop(ptr %a58) @@ -32000,7 +32745,7 @@ then2865: %t60 = load ptr, ptr %a1 %t61 = load { ptr, i64, i64 }, ptr %a3 %t62 = load %S.ast.Type, ptr %a4 - %t63 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.1763, i64 3, i64 0 }) + %t63 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.1791, i64 3, i64 0 }) %t64 = call { ptr, i64, i64 } @finch.gen.intCast(ptr %t60, { ptr, i64, i64 } %t61, %S.ast.Type %t62, %S.ast.Type %t63) store %S.ast.Type %t63, ptr %a65 call void @finch.drop.S_ast_Type(ptr %a65) @@ -32013,7 +32758,7 @@ then2865: call void @finch_str_drop(ptr %a70) %t71 = load { ptr, i64, i64 }, ptr %a66 store { ptr, i64, i64 } %t71, ptr %a73 - store { ptr, i64, i64 } { ptr @.str.1764, i64 1, i64 0 }, ptr %a74 + store { ptr, i64, i64 } { ptr @.str.1792, i64 1, i64 0 }, ptr %a74 call void @finch_str_concat(ptr %a72, ptr %a73, ptr %a74) store { ptr, i64, i64 } %t71, ptr %a75 call void @finch_str_drop(ptr %a75) @@ -32021,20 +32766,20 @@ then2865: call void @finch.gen.emit(ptr %t49, { ptr, i64, i64 } %t76) store { ptr, i64, i64 } %t76, ptr %a77 call void @finch_str_drop(ptr %a77) - br label %endif2867 -else2866: + br label %endif2926 +else2925: %t78 = load %S.ast.Type, ptr %a4 %t79 = call i1 @finch.gen.isFloat(%S.ast.Type %t78) - br i1 %t79, label %then2868, label %else2869 -then2868: + br i1 %t79, label %then2927, label %else2928 +then2927: %t80 = load ptr, ptr %a1 %t81 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1765, i64 31, i64 0 }, ptr %a83 + store { ptr, i64, i64 } { ptr @.str.1793, i64 31, i64 0 }, ptr %a83 store { ptr, i64, i64 } %t81, ptr %a84 call void @finch_str_concat(ptr %a82, ptr %a83, ptr %a84) %t85 = load { ptr, i64, i64 }, ptr %a82 store { ptr, i64, i64 } %t85, ptr %a87 - store { ptr, i64, i64 } { ptr @.str.1766, i64 9, i64 0 }, ptr %a88 + store { ptr, i64, i64 } { ptr @.str.1794, i64 9, i64 0 }, ptr %a88 call void @finch_str_concat(ptr %a86, ptr %a87, ptr %a88) store { ptr, i64, i64 } %t85, ptr %a89 call void @finch_str_drop(ptr %a89) @@ -32042,7 +32787,7 @@ then2868: %t91 = load ptr, ptr %a1 %t92 = load { ptr, i64, i64 }, ptr %a3 %t93 = load %S.ast.Type, ptr %a4 - %t94 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.1767, i64 5, i64 0 }) + %t94 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.1795, i64 5, i64 0 }) %t95 = call { ptr, i64, i64 } @finch.gen.floatCast(ptr %t91, { ptr, i64, i64 } %t92, %S.ast.Type %t93, %S.ast.Type %t94) store %S.ast.Type %t94, ptr %a96 call void @finch.drop.S_ast_Type(ptr %a96) @@ -32055,7 +32800,7 @@ then2868: call void @finch_str_drop(ptr %a101) %t102 = load { ptr, i64, i64 }, ptr %a97 store { ptr, i64, i64 } %t102, ptr %a104 - store { ptr, i64, i64 } { ptr @.str.1768, i64 1, i64 0 }, ptr %a105 + store { ptr, i64, i64 } { ptr @.str.1796, i64 1, i64 0 }, ptr %a105 call void @finch_str_concat(ptr %a103, ptr %a104, ptr %a105) store { ptr, i64, i64 } %t102, ptr %a106 call void @finch_str_drop(ptr %a106) @@ -32063,23 +32808,23 @@ then2868: call void @finch.gen.emit(ptr %t80, { ptr, i64, i64 } %t107) store { ptr, i64, i64 } %t107, ptr %a108 call void @finch_str_drop(ptr %a108) - br label %endif2870 -else2869: + br label %endif2929 +else2928: %t109 = load { ptr, i64, i64 }, ptr %a11 store { ptr, i64, i64 } %t109, ptr %a110 - store { ptr, i64, i64 } { ptr @.str.1769, i64 4, i64 0 }, ptr %a111 + store { ptr, i64, i64 } { ptr @.str.1797, i64 4, i64 0 }, ptr %a111 %t112 = call i32 @finch_str_eq(ptr %a110, ptr %a111) %t113 = icmp ne i32 %t112, 0 - br i1 %t113, label %then2871, label %else2872 -then2871: + br i1 %t113, label %then2930, label %else2931 +then2930: %t114 = load ptr, ptr %a1 %t115 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1770, i64 30, i64 0 }, ptr %a117 + store { ptr, i64, i64 } { ptr @.str.1798, i64 30, i64 0 }, ptr %a117 store { ptr, i64, i64 } %t115, ptr %a118 call void @finch_str_concat(ptr %a116, ptr %a117, ptr %a118) %t119 = load { ptr, i64, i64 }, ptr %a116 store { ptr, i64, i64 } %t119, ptr %a121 - store { ptr, i64, i64 } { ptr @.str.1771, i64 5, i64 0 }, ptr %a122 + store { ptr, i64, i64 } { ptr @.str.1799, i64 5, i64 0 }, ptr %a122 call void @finch_str_concat(ptr %a120, ptr %a121, ptr %a122) store { ptr, i64, i64 } %t119, ptr %a123 call void @finch_str_drop(ptr %a123) @@ -32092,7 +32837,7 @@ then2871: call void @finch_str_drop(ptr %a129) %t130 = load { ptr, i64, i64 }, ptr %a126 store { ptr, i64, i64 } %t130, ptr %a132 - store { ptr, i64, i64 } { ptr @.str.1772, i64 6, i64 0 }, ptr %a133 + store { ptr, i64, i64 } { ptr @.str.1800, i64 6, i64 0 }, ptr %a133 call void @finch_str_concat(ptr %a131, ptr %a132, ptr %a133) store { ptr, i64, i64 } %t130, ptr %a134 call void @finch_str_drop(ptr %a134) @@ -32105,7 +32850,7 @@ then2871: call void @finch_str_drop(ptr %a140) %t141 = load { ptr, i64, i64 }, ptr %a137 store { ptr, i64, i64 } %t141, ptr %a143 - store { ptr, i64, i64 } { ptr @.str.1773, i64 1, i64 0 }, ptr %a144 + store { ptr, i64, i64 } { ptr @.str.1801, i64 1, i64 0 }, ptr %a144 call void @finch_str_concat(ptr %a142, ptr %a143, ptr %a144) store { ptr, i64, i64 } %t141, ptr %a145 call void @finch_str_drop(ptr %a145) @@ -32113,35 +32858,35 @@ then2871: call void @finch.gen.emit(ptr %t114, { ptr, i64, i64 } %t146) store { ptr, i64, i64 } %t146, ptr %a147 call void @finch_str_drop(ptr %a147) - br label %endif2873 -else2872: + br label %endif2932 +else2931: %t148 = load { ptr, i64, i64 }, ptr %a11 store { ptr, i64, i64 } %t148, ptr %a149 - store { ptr, i64, i64 } { ptr @.str.1774, i64 4, i64 0 }, ptr %a150 + store { ptr, i64, i64 } { ptr @.str.1802, i64 4, i64 0 }, ptr %a150 %t151 = call i32 @finch_str_eq(ptr %a149, ptr %a150) %t152 = icmp ne i32 %t151, 0 - br i1 %t152, label %then2874, label %else2875 -then2874: + br i1 %t152, label %then2933, label %else2934 +then2933: %t153 = load ptr, ptr %a1 %t154 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1775, i64 30, i64 0 }, ptr %a156 + store { ptr, i64, i64 } { ptr @.str.1803, i64 30, i64 0 }, ptr %a156 store { ptr, i64, i64 } %t154, ptr %a157 call void @finch_str_concat(ptr %a155, ptr %a156, ptr %a157) %t158 = load { ptr, i64, i64 }, ptr %a155 store { ptr, i64, i64 } %t158, ptr %a160 - store { ptr, i64, i64 } { ptr @.str.1776, i64 6, i64 0 }, ptr %a161 + store { ptr, i64, i64 } { ptr @.str.1804, i64 6, i64 0 }, ptr %a161 call void @finch_str_concat(ptr %a159, ptr %a160, ptr %a161) store { ptr, i64, i64 } %t158, ptr %a162 call void @finch_str_drop(ptr %a162) %t163 = load { ptr, i64, i64 }, ptr %a159 %t164 = load ptr, ptr %a1 %t165 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.1777, i64 8, i64 0 }, ptr %a167 + store { ptr, i64, i64 } { ptr @.str.1805, i64 8, i64 0 }, ptr %a167 store { ptr, i64, i64 } %t165, ptr %a168 call void @finch_str_concat(ptr %a166, ptr %a167, ptr %a168) %t169 = load { ptr, i64, i64 }, ptr %a166 store { ptr, i64, i64 } %t169, ptr %a171 - store { ptr, i64, i64 } { ptr @.str.1778, i64 7, i64 0 }, ptr %a172 + store { ptr, i64, i64 } { ptr @.str.1806, i64 7, i64 0 }, ptr %a172 call void @finch_str_concat(ptr %a170, ptr %a171, ptr %a172) store { ptr, i64, i64 } %t169, ptr %a173 call void @finch_str_drop(ptr %a173) @@ -32158,7 +32903,7 @@ then2874: call void @finch_str_drop(ptr %a181) %t182 = load { ptr, i64, i64 }, ptr %a177 store { ptr, i64, i64 } %t182, ptr %a184 - store { ptr, i64, i64 } { ptr @.str.1779, i64 1, i64 0 }, ptr %a185 + store { ptr, i64, i64 } { ptr @.str.1807, i64 1, i64 0 }, ptr %a185 call void @finch_str_concat(ptr %a183, ptr %a184, ptr %a185) store { ptr, i64, i64 } %t182, ptr %a186 call void @finch_str_drop(ptr %a186) @@ -32166,23 +32911,23 @@ then2874: call void @finch.gen.emit(ptr %t153, { ptr, i64, i64 } %t187) store { ptr, i64, i64 } %t187, ptr %a188 call void @finch_str_drop(ptr %a188) - br label %endif2876 -else2875: + br label %endif2935 +else2934: %t189 = load { ptr, i64, i64 }, ptr %a11 store { ptr, i64, i64 } %t189, ptr %a190 - store { ptr, i64, i64 } { ptr @.str.1780, i64 3, i64 0 }, ptr %a191 + store { ptr, i64, i64 } { ptr @.str.1808, i64 3, i64 0 }, ptr %a191 %t192 = call i32 @finch_str_eq(ptr %a190, ptr %a191) %t193 = icmp ne i32 %t192, 0 - br i1 %t193, label %then2877, label %else2878 -then2877: + br i1 %t193, label %then2936, label %else2937 +then2936: %t194 = load ptr, ptr %a1 %t195 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1781, i64 29, i64 0 }, ptr %a197 + store { ptr, i64, i64 } { ptr @.str.1809, i64 29, i64 0 }, ptr %a197 store { ptr, i64, i64 } %t195, ptr %a198 call void @finch_str_concat(ptr %a196, ptr %a197, ptr %a198) %t199 = load { ptr, i64, i64 }, ptr %a196 store { ptr, i64, i64 } %t199, ptr %a201 - store { ptr, i64, i64 } { ptr @.str.1782, i64 6, i64 0 }, ptr %a202 + store { ptr, i64, i64 } { ptr @.str.1810, i64 6, i64 0 }, ptr %a202 call void @finch_str_concat(ptr %a200, ptr %a201, ptr %a202) store { ptr, i64, i64 } %t199, ptr %a203 call void @finch_str_drop(ptr %a203) @@ -32210,7 +32955,7 @@ then2877: call void @finch_str_drop(ptr %a222) %t223 = load { ptr, i64, i64 }, ptr %a218 store { ptr, i64, i64 } %t223, ptr %a225 - store { ptr, i64, i64 } { ptr @.str.1783, i64 6, i64 0 }, ptr %a226 + store { ptr, i64, i64 } { ptr @.str.1811, i64 6, i64 0 }, ptr %a226 call void @finch_str_concat(ptr %a224, ptr %a225, ptr %a226) store { ptr, i64, i64 } %t223, ptr %a227 call void @finch_str_drop(ptr %a227) @@ -32223,7 +32968,7 @@ then2877: call void @finch_str_drop(ptr %a233) %t234 = load { ptr, i64, i64 }, ptr %a230 store { ptr, i64, i64 } %t234, ptr %a236 - store { ptr, i64, i64 } { ptr @.str.1784, i64 1, i64 0 }, ptr %a237 + store { ptr, i64, i64 } { ptr @.str.1812, i64 1, i64 0 }, ptr %a237 call void @finch_str_concat(ptr %a235, ptr %a236, ptr %a237) store { ptr, i64, i64 } %t234, ptr %a238 call void @finch_str_drop(ptr %a238) @@ -32231,37 +32976,37 @@ then2877: call void @finch.gen.emit(ptr %t194, { ptr, i64, i64 } %t239) store { ptr, i64, i64 } %t239, ptr %a240 call void @finch_str_drop(ptr %a240) - br label %endif2879 -else2878: + br label %endif2938 +else2937: %t241 = load { ptr, i64, i64 }, ptr %a11 store { ptr, i64, i64 } %t241, ptr %a242 - store { ptr, i64, i64 } { ptr @.str.1785, i64 3, i64 0 }, ptr %a243 + store { ptr, i64, i64 } { ptr @.str.1813, i64 3, i64 0 }, ptr %a243 %t244 = call i32 @finch_str_eq(ptr %a242, ptr %a243) %t245 = icmp ne i32 %t244, 0 - br label %logic.from2880 -logic.from2880: - br i1 %t245, label %logic.end2882, label %logic.rhs2881 -logic.rhs2881: + br label %logic.from2939 +logic.from2939: + br i1 %t245, label %logic.end2941, label %logic.rhs2940 +logic.rhs2940: %t246 = load { ptr, i64, i64 }, ptr %a11 store { ptr, i64, i64 } %t246, ptr %a247 - store { ptr, i64, i64 } { ptr @.str.1786, i64 4, i64 0 }, ptr %a248 + store { ptr, i64, i64 } { ptr @.str.1814, i64 4, i64 0 }, ptr %a248 %t249 = call i32 @finch_str_eq(ptr %a247, ptr %a248) %t250 = icmp ne i32 %t249, 0 - br label %logic.rend2883 -logic.rend2883: - br label %logic.end2882 -logic.end2882: - %t251 = phi i1 [ true, %logic.from2880 ], [ %t250, %logic.rend2883 ] - br i1 %t251, label %then2884, label %else2885 -then2884: + br label %logic.rend2942 +logic.rend2942: + br label %logic.end2941 +logic.end2941: + %t251 = phi i1 [ true, %logic.from2939 ], [ %t250, %logic.rend2942 ] + br i1 %t251, label %then2943, label %else2944 +then2943: %t252 = load ptr, ptr %a1 %t253 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1787, i64 29, i64 0 }, ptr %a255 + store { ptr, i64, i64 } { ptr @.str.1815, i64 29, i64 0 }, ptr %a255 store { ptr, i64, i64 } %t253, ptr %a256 call void @finch_str_concat(ptr %a254, ptr %a255, ptr %a256) %t257 = load { ptr, i64, i64 }, ptr %a254 store { ptr, i64, i64 } %t257, ptr %a259 - store { ptr, i64, i64 } { ptr @.str.1788, i64 6, i64 0 }, ptr %a260 + store { ptr, i64, i64 } { ptr @.str.1816, i64 6, i64 0 }, ptr %a260 call void @finch_str_concat(ptr %a258, ptr %a259, ptr %a260) store { ptr, i64, i64 } %t257, ptr %a261 call void @finch_str_drop(ptr %a261) @@ -32274,7 +33019,7 @@ then2884: call void @finch_str_drop(ptr %a267) %t268 = load { ptr, i64, i64 }, ptr %a264 store { ptr, i64, i64 } %t268, ptr %a270 - store { ptr, i64, i64 } { ptr @.str.1789, i64 1, i64 0 }, ptr %a271 + store { ptr, i64, i64 } { ptr @.str.1817, i64 1, i64 0 }, ptr %a271 call void @finch_str_concat(ptr %a269, ptr %a270, ptr %a271) store { ptr, i64, i64 } %t268, ptr %a272 call void @finch_str_drop(ptr %a272) @@ -32282,20 +33027,20 @@ then2884: call void @finch.gen.emit(ptr %t252, { ptr, i64, i64 } %t273) store { ptr, i64, i64 } %t273, ptr %a274 call void @finch_str_drop(ptr %a274) - br label %endif2886 -else2885: + br label %endif2945 +else2944: %t275 = load ptr, ptr %a1 %t276 = load ptr, ptr %a1 %t277 = load %S.ast.Type, ptr %a4 %t278 = call { ptr, i64, i64 } @finch.gen.formatFn(ptr %t276, %S.ast.Type %t277) - store { ptr, i64, i64 } { ptr @.str.1790, i64 10, i64 0 }, ptr %a280 + store { ptr, i64, i64 } { ptr @.str.1818, i64 10, i64 0 }, ptr %a280 store { ptr, i64, i64 } %t278, ptr %a281 call void @finch_str_concat(ptr %a279, ptr %a280, ptr %a281) store { ptr, i64, i64 } %t278, ptr %a282 call void @finch_str_drop(ptr %a282) %t283 = load { ptr, i64, i64 }, ptr %a279 store { ptr, i64, i64 } %t283, ptr %a285 - store { ptr, i64, i64 } { ptr @.str.1791, i64 5, i64 0 }, ptr %a286 + store { ptr, i64, i64 } { ptr @.str.1819, i64 5, i64 0 }, ptr %a286 call void @finch_str_concat(ptr %a284, ptr %a285, ptr %a286) store { ptr, i64, i64 } %t283, ptr %a287 call void @finch_str_drop(ptr %a287) @@ -32308,7 +33053,7 @@ else2885: call void @finch_str_drop(ptr %a293) %t294 = load { ptr, i64, i64 }, ptr %a290 store { ptr, i64, i64 } %t294, ptr %a296 - store { ptr, i64, i64 } { ptr @.str.1792, i64 6, i64 0 }, ptr %a297 + store { ptr, i64, i64 } { ptr @.str.1820, i64 6, i64 0 }, ptr %a297 call void @finch_str_concat(ptr %a295, ptr %a296, ptr %a297) store { ptr, i64, i64 } %t294, ptr %a298 call void @finch_str_drop(ptr %a298) @@ -32336,7 +33081,7 @@ else2885: call void @finch_str_drop(ptr %a317) %t318 = load { ptr, i64, i64 }, ptr %a313 store { ptr, i64, i64 } %t318, ptr %a320 - store { ptr, i64, i64 } { ptr @.str.1793, i64 1, i64 0 }, ptr %a321 + store { ptr, i64, i64 } { ptr @.str.1821, i64 1, i64 0 }, ptr %a321 call void @finch_str_concat(ptr %a319, ptr %a320, ptr %a321) store { ptr, i64, i64 } %t318, ptr %a322 call void @finch_str_drop(ptr %a322) @@ -32344,20 +33089,20 @@ else2885: call void @finch.gen.emit(ptr %t275, { ptr, i64, i64 } %t323) store { ptr, i64, i64 } %t323, ptr %a324 call void @finch_str_drop(ptr %a324) - br label %endif2886 -endif2886: - br label %endif2879 -endif2879: - br label %endif2876 -endif2876: - br label %endif2873 -endif2873: - br label %endif2870 -endif2870: - br label %endif2867 -endif2867: - br label %endif2864 -endif2864: + br label %endif2945 +endif2945: + br label %endif2938 +endif2938: + br label %endif2935 +endif2935: + br label %endif2932 +endif2932: + br label %endif2929 +endif2929: + br label %endif2926 +endif2926: + br label %endif2923 +endif2923: call void @finch_str_drop(ptr %a12) call void @finch_str_drop(ptr %a11) ret void @@ -32397,6 +33142,50 @@ entry: ret void } +define internal void @finch.copy.S_gen_SumDef(ptr %dst, ptr %src) { +entry: + + %t1 = load %S.gen.SumDef, ptr %src + store %S.gen.SumDef %t1, ptr %dst + %t2 = getelementptr inbounds %S.gen.SumDef, ptr %dst, i32 0, i32 0 + %t3 = getelementptr inbounds %S.gen.SumDef, ptr %src, i32 0, i32 0 + call void @finch_str_copy(ptr %t2, ptr %t3) + %t4 = getelementptr inbounds %S.gen.SumDef, ptr %dst, i32 0, i32 1 + %t5 = getelementptr inbounds %S.gen.SumDef, ptr %src, i32 0, i32 1 + call void @finch_str_copy(ptr %t4, ptr %t5) + %t6 = getelementptr inbounds %S.gen.SumDef, ptr %dst, i32 0, i32 2 + %t7 = getelementptr inbounds %S.gen.SumDef, ptr %src, i32 0, i32 2 + call void @finch.copy.arr_str(ptr %t6, ptr %t7) + %t8 = getelementptr inbounds %S.gen.SumDef, ptr %dst, i32 0, i32 3 + %t9 = getelementptr inbounds %S.gen.SumDef, ptr %src, i32 0, i32 3 + call void @finch.copy.arr_int(ptr %t8, ptr %t9) + %t10 = getelementptr inbounds %S.gen.SumDef, ptr %dst, i32 0, i32 4 + %t11 = getelementptr inbounds %S.gen.SumDef, ptr %src, i32 0, i32 4 + call void @finch.copy.arr_int(ptr %t10, ptr %t11) + %t12 = getelementptr inbounds %S.gen.SumDef, ptr %dst, i32 0, i32 5 + %t13 = getelementptr inbounds %S.gen.SumDef, ptr %src, i32 0, i32 5 + call void @finch.copy.arr_S_ast_Node(ptr %t12, ptr %t13) + ret void +} + +define internal void @finch.drop.S_gen_SumDef(ptr %a) { +entry: + + %t1 = getelementptr inbounds %S.gen.SumDef, ptr %a, i32 0, i32 0 + call void @finch_str_drop(ptr %t1) + %t2 = getelementptr inbounds %S.gen.SumDef, ptr %a, i32 0, i32 1 + call void @finch_str_drop(ptr %t2) + %t3 = getelementptr inbounds %S.gen.SumDef, ptr %a, i32 0, i32 2 + call void @finch.drop.arr_str(ptr %t3) + %t4 = getelementptr inbounds %S.gen.SumDef, ptr %a, i32 0, i32 3 + call void @finch.drop.arr_int(ptr %t4) + %t5 = getelementptr inbounds %S.gen.SumDef, ptr %a, i32 0, i32 4 + call void @finch.drop.arr_int(ptr %t5) + %t6 = getelementptr inbounds %S.gen.SumDef, ptr %a, i32 0, i32 5 + call void @finch.drop.arr_S_ast_Node(ptr %t6) + ret void +} + define internal { ptr, i64, i64 } @finch.gen.formatFn(ptr %p0, %S.ast.Type %p1) { entry: %a1 = alloca ptr, align 16 @@ -32564,55 +33353,149 @@ entry: %a491 = alloca { ptr, i64, i64 }, align 16 %a492 = alloca { ptr, i64, i64 }, align 16 %a500 = alloca { ptr, i64, i64 }, align 16 - %a523 = alloca %S.gen.StructDef, align 16 - %a524 = alloca %S.gen.StructDef, align 16 - %a526 = alloca %S.gen.StructDef, align 16 - %a530 = alloca { ptr, i64, i64 }, align 16 - %a534 = alloca { ptr, i64, i64 }, align 16 - %a535 = alloca { ptr, i64, i64 }, align 16 - %a536 = alloca { ptr, i64, i64 }, align 16 - %a538 = alloca { ptr, i64, i64 }, align 16 - %a542 = alloca i64, align 16 - %a545 = alloca { ptr, i64, i64 }, align 16 - %a549 = alloca { ptr, i64, i64 }, align 16 - %a560 = alloca { ptr, i64, i64 }, align 16 - %a561 = alloca { ptr, i64, i64 }, align 16 - %a562 = alloca { ptr, i64, i64 }, align 16 - %a564 = alloca { ptr, i64, i64 }, align 16 - %a565 = alloca { ptr, i64, i64 }, align 16 - %a566 = alloca { ptr, i64, i64 }, align 16 + %a510 = alloca { ptr, i64, i64 }, align 16 + %a511 = alloca { ptr, i64, i64 }, align 16 + %a537 = alloca %S.gen.SumDef, align 16 + %a538 = alloca %S.gen.SumDef, align 16 + %a540 = alloca %S.gen.SumDef, align 16 + %a556 = alloca %S.gen.StructDef, align 16 + %a557 = alloca %S.gen.StructDef, align 16 + %a559 = alloca %S.gen.StructDef, align 16 + %a563 = alloca { ptr, i64, i64 }, align 16 %a567 = alloca { ptr, i64, i64 }, align 16 + %a568 = alloca { ptr, i64, i64 }, align 16 %a569 = alloca { ptr, i64, i64 }, align 16 + %a571 = alloca { ptr, i64, i64 }, align 16 %a572 = alloca { ptr, i64, i64 }, align 16 %a573 = alloca { ptr, i64, i64 }, align 16 %a574 = alloca { ptr, i64, i64 }, align 16 - %a576 = alloca { ptr, i64, i64 }, align 16 - %a577 = alloca { ptr, i64, i64 }, align 16 - %a578 = alloca { ptr, i64, i64 }, align 16 - %a579 = alloca { ptr, i64, i64 }, align 16 + %a583 = alloca { ptr, i64, i64 }, align 16 + %a585 = alloca { ptr, i64, i64 }, align 16 + %a586 = alloca { ptr, i64, i64 }, align 16 + %a587 = alloca { ptr, i64, i64 }, align 16 + %a588 = alloca { ptr, i64, i64 }, align 16 %a589 = alloca { ptr, i64, i64 }, align 16 - %a591 = alloca { ptr, i64, i64 }, align 16 %a592 = alloca { ptr, i64, i64 }, align 16 - %a593 = alloca { ptr, i64, i64 }, align 16 %a594 = alloca { ptr, i64, i64 }, align 16 %a595 = alloca { ptr, i64, i64 }, align 16 %a598 = alloca { ptr, i64, i64 }, align 16 - %a599 = alloca { ptr, i64, i64 }, align 16 - %a614 = alloca { ptr, i64, i64 }, align 16 + %a601 = alloca { ptr, i64, i64 }, align 16 + %a602 = alloca { ptr, i64, i64 }, align 16 + %a603 = alloca { ptr, i64, i64 }, align 16 + %a607 = alloca i64, align 16 + %a619 = alloca { ptr, i64, i64 }, align 16 + %a621 = alloca { ptr, i64, i64 }, align 16 + %a622 = alloca { ptr, i64, i64 }, align 16 %a623 = alloca { ptr, i64, i64 }, align 16 - %a631 = alloca { ptr, i64, i64 }, align 16 - %a632 = alloca { ptr, i64, i64 }, align 16 - %a633 = alloca { ptr, i64, i64 }, align 16 - %a635 = alloca { ptr, i64, i64 }, align 16 - %a636 = alloca { ptr, i64, i64 }, align 16 - %a637 = alloca { ptr, i64, i64 }, align 16 + %a624 = alloca { ptr, i64, i64 }, align 16 + %a626 = alloca { ptr, i64, i64 }, align 16 + %a627 = alloca { ptr, i64, i64 }, align 16 + %a628 = alloca { ptr, i64, i64 }, align 16 + %a629 = alloca { ptr, i64, i64 }, align 16 %a638 = alloca { ptr, i64, i64 }, align 16 + %a639 = alloca { ptr, i64, i64 }, align 16 %a640 = alloca { ptr, i64, i64 }, align 16 + %a641 = alloca { ptr, i64, i64 }, align 16 + %a651 = alloca { ptr, i64, i64 }, align 16 + %a652 = alloca { ptr, i64, i64 }, align 16 + %a653 = alloca { ptr, i64, i64 }, align 16 + %a655 = alloca { ptr, i64, i64 }, align 16 + %a656 = alloca { ptr, i64, i64 }, align 16 + %a657 = alloca { ptr, i64, i64 }, align 16 + %a658 = alloca { ptr, i64, i64 }, align 16 + %a661 = alloca { ptr, i64, i64 }, align 16 + %a662 = alloca { ptr, i64, i64 }, align 16 + %a663 = alloca { ptr, i64, i64 }, align 16 + %a664 = alloca { ptr, i64, i64 }, align 16 + %a666 = alloca { ptr, i64, i64 }, align 16 + %a667 = alloca { ptr, i64, i64 }, align 16 + %a668 = alloca { ptr, i64, i64 }, align 16 + %a669 = alloca { ptr, i64, i64 }, align 16 + %a672 = alloca { ptr, i64, i64 }, align 16 + %a673 = alloca { ptr, i64, i64 }, align 16 + %a675 = alloca { ptr, i64, i64 }, align 16 + %a676 = alloca { ptr, i64, i64 }, align 16 + %a677 = alloca { ptr, i64, i64 }, align 16 + %a678 = alloca { ptr, i64, i64 }, align 16 + %a679 = alloca { ptr, i64, i64 }, align 16 + %a681 = alloca { ptr, i64, i64 }, align 16 + %a682 = alloca { ptr, i64, i64 }, align 16 + %a683 = alloca { ptr, i64, i64 }, align 16 + %a684 = alloca { ptr, i64, i64 }, align 16 + %a686 = alloca { ptr, i64, i64 }, align 16 + %a693 = alloca i64, align 16 + %a731 = alloca i64, align 16 + %a747 = alloca i64, align 16 + %a750 = alloca { ptr, i64, i64 }, align 16 + %a751 = alloca { ptr, i64, i64 }, align 16 + %a752 = alloca { ptr, i64, i64 }, align 16 + %a754 = alloca { ptr, i64, i64 }, align 16 + %a755 = alloca { ptr, i64, i64 }, align 16 + %a756 = alloca { ptr, i64, i64 }, align 16 + %a757 = alloca { ptr, i64, i64 }, align 16 + %a767 = alloca { ptr, i64, i64 }, align 16 + %a769 = alloca { ptr, i64, i64 }, align 16 + %a770 = alloca { ptr, i64, i64 }, align 16 + %a771 = alloca { ptr, i64, i64 }, align 16 + %a772 = alloca { ptr, i64, i64 }, align 16 + %a773 = alloca { ptr, i64, i64 }, align 16 + %a776 = alloca { ptr, i64, i64 }, align 16 + %a777 = alloca { ptr, i64, i64 }, align 16 + %a792 = alloca { ptr, i64, i64 }, align 16 + %a801 = alloca { ptr, i64, i64 }, align 16 + %a814 = alloca { ptr, i64, i64 }, align 16 + %a815 = alloca { ptr, i64, i64 }, align 16 + %a816 = alloca { ptr, i64, i64 }, align 16 + %a818 = alloca { ptr, i64, i64 }, align 16 + %a838 = alloca %S.gen.StructDef, align 16 + %a839 = alloca %S.gen.StructDef, align 16 + %a841 = alloca %S.gen.StructDef, align 16 + %a845 = alloca { ptr, i64, i64 }, align 16 + %a849 = alloca { ptr, i64, i64 }, align 16 + %a850 = alloca { ptr, i64, i64 }, align 16 + %a851 = alloca { ptr, i64, i64 }, align 16 + %a853 = alloca { ptr, i64, i64 }, align 16 + %a857 = alloca i64, align 16 + %a860 = alloca { ptr, i64, i64 }, align 16 + %a864 = alloca { ptr, i64, i64 }, align 16 + %a875 = alloca { ptr, i64, i64 }, align 16 + %a876 = alloca { ptr, i64, i64 }, align 16 + %a877 = alloca { ptr, i64, i64 }, align 16 + %a879 = alloca { ptr, i64, i64 }, align 16 + %a880 = alloca { ptr, i64, i64 }, align 16 + %a881 = alloca { ptr, i64, i64 }, align 16 + %a882 = alloca { ptr, i64, i64 }, align 16 + %a884 = alloca { ptr, i64, i64 }, align 16 + %a887 = alloca { ptr, i64, i64 }, align 16 + %a888 = alloca { ptr, i64, i64 }, align 16 + %a889 = alloca { ptr, i64, i64 }, align 16 + %a891 = alloca { ptr, i64, i64 }, align 16 + %a892 = alloca { ptr, i64, i64 }, align 16 + %a893 = alloca { ptr, i64, i64 }, align 16 + %a894 = alloca { ptr, i64, i64 }, align 16 + %a904 = alloca { ptr, i64, i64 }, align 16 + %a906 = alloca { ptr, i64, i64 }, align 16 + %a907 = alloca { ptr, i64, i64 }, align 16 + %a908 = alloca { ptr, i64, i64 }, align 16 + %a909 = alloca { ptr, i64, i64 }, align 16 + %a910 = alloca { ptr, i64, i64 }, align 16 + %a913 = alloca { ptr, i64, i64 }, align 16 + %a914 = alloca { ptr, i64, i64 }, align 16 + %a929 = alloca { ptr, i64, i64 }, align 16 + %a938 = alloca { ptr, i64, i64 }, align 16 + %a946 = alloca { ptr, i64, i64 }, align 16 + %a947 = alloca { ptr, i64, i64 }, align 16 + %a948 = alloca { ptr, i64, i64 }, align 16 + %a950 = alloca { ptr, i64, i64 }, align 16 + %a951 = alloca { ptr, i64, i64 }, align 16 + %a952 = alloca { ptr, i64, i64 }, align 16 + %a953 = alloca { ptr, i64, i64 }, align 16 + %a955 = alloca { ptr, i64, i64 }, align 16 store ptr %p0, ptr %a1 store %S.ast.Type %p1, ptr %a2 %t3 = load %S.ast.Type, ptr %a2 %t4 = call { ptr, i64, i64 } @finch.gen.typeKey(%S.ast.Type %t3) - store { ptr, i64, i64 } { ptr @.str.1794, i64 14, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.1822, i64 14, i64 0 }, ptr %a6 store { ptr, i64, i64 } %t4, ptr %a7 call void @finch_str_concat(ptr %a5, ptr %a6, ptr %a7) store { ptr, i64, i64 } %t4, ptr %a8 @@ -32621,28 +33504,28 @@ entry: store { ptr, i64, i64 } %t9, ptr %a10 %t11 = load ptr, ptr %a1 %t12 = icmp eq ptr %t11, null - br i1 %t12, label %panic2887, label %ok2888 -panic2887: - call void @finch_panic(ptr @.str.1795, i64 1100, ptr @.str.1796) + br i1 %t12, label %panic2946, label %ok2947 +panic2946: + call void @finch_panic(ptr @.str.1823, i64 1126, ptr @.str.1824) unreachable -ok2888: - %t13 = getelementptr inbounds %S.gen.Gen, ptr %t11, i32 0, i32 22 +ok2947: + %t13 = getelementptr inbounds %S.gen.Gen, ptr %t11, i32 0, i32 23 %t14 = load { ptr, i64, i64 }, ptr %t13 %t15 = load { ptr, i64, i64 }, ptr %a10 %t16 = call i1 @finch.gen.has({ ptr, i64, i64 } %t14, { ptr, i64, i64 } %t15) - br i1 %t16, label %then2889, label %endif2891 -then2889: + br i1 %t16, label %then2948, label %endif2950 +then2948: %t17 = load { ptr, i64, i64 }, ptr %a10 ret { ptr, i64, i64 } %t17 -endif2891: +endif2950: %t18 = load ptr, ptr %a1 %t19 = icmp eq ptr %t18, null - br i1 %t19, label %panic2892, label %ok2893 -panic2892: - call void @finch_panic(ptr @.str.1797, i64 1103, ptr @.str.1798) + br i1 %t19, label %panic2951, label %ok2952 +panic2951: + call void @finch_panic(ptr @.str.1825, i64 1129, ptr @.str.1826) unreachable -ok2893: - %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 22 +ok2952: + %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 23 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t20, i32 0, i32 1 %t22 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t22, ptr %a23 @@ -32661,20 +33544,20 @@ ok2893: %t33 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t34 = load { ptr, i64, i64 }, ptr %t33 store { ptr, i64, i64 } %t34, ptr %a35 - store { ptr, i64, i64 } { ptr @.str.1799, i64 5, i64 0 }, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.1827, i64 5, i64 0 }, ptr %a36 %t37 = call i32 @finch_str_eq(ptr %a35, ptr %a36) %t38 = icmp ne i32 %t37, 0 - br i1 %t38, label %then2894, label %else2895 -then2894: + br i1 %t38, label %then2953, label %else2954 +then2953: %t39 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t40 = load { ptr, i64, i64 }, ptr %t39 %t41 = extractvalue { ptr, i64, i64 } %t40, 1 %t42 = icmp uge i64 0, %t41 - br i1 %t42, label %range2897, label %inrange2898 -range2897: - call void @finch_panic_index(ptr @.str.1800, i64 1106, i64 0, i64 %t41) + br i1 %t42, label %range2956, label %inrange2957 +range2956: + call void @finch_panic_index(ptr @.str.1828, i64 1132, i64 0, i64 %t41) unreachable -inrange2898: +inrange2957: %t43 = extractvalue { ptr, i64, i64 } %t40, 0 %t44 = getelementptr inbounds %S.ast.Type, ptr %t43, i64 0 %t45 = load %S.ast.Type, ptr %t44 @@ -32683,45 +33566,45 @@ inrange2898: %t48 = load %S.ast.Type, ptr %a47 store %S.ast.Type %t48, ptr %a49 %t50 = load ptr, ptr %a1 - %t51 = call { ptr, i64, i64 } @finch.gen.load(ptr %t50, { ptr, i64, i64 } { ptr @.str.1801, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.1802, i64 2, i64 0 }) + %t51 = call { ptr, i64, i64 } @finch.gen.load(ptr %t50, { ptr, i64, i64 } { ptr @.str.1829, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.1830, i64 2, i64 0 }) store { ptr, i64, i64 } %t51, ptr %a52 %t53 = load ptr, ptr %a1 %t54 = load ptr, ptr %a1 - %t55 = call { ptr, i64, i64 } @finch.gen.op(ptr %t54, { ptr, i64, i64 } { ptr @.str.1804, i64 62, i64 0 }) - %t56 = call { ptr, i64, i64 } @finch.gen.load(ptr %t53, { ptr, i64, i64 } { ptr @.str.1803, i64 3, i64 0 }, { ptr, i64, i64 } %t55) + %t55 = call { ptr, i64, i64 } @finch.gen.op(ptr %t54, { ptr, i64, i64 } { ptr @.str.1832, i64 62, i64 0 }) + %t56 = call { ptr, i64, i64 } @finch.gen.load(ptr %t53, { ptr, i64, i64 } { ptr @.str.1831, i64 3, i64 0 }, { ptr, i64, i64 } %t55) store { ptr, i64, i64 } %t55, ptr %a57 call void @finch_str_drop(ptr %a57) store { ptr, i64, i64 } %t56, ptr %a58 %t59 = load ptr, ptr %a1 - call void @finch.gen.bufText(ptr %t59, { ptr, i64, i64 } { ptr @.str.1805, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1806, i64 1, i64 0 }) + call void @finch.gen.bufText(ptr %t59, { ptr, i64, i64 } { ptr @.str.1833, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1834, i64 1, i64 0 }) %t60 = load ptr, ptr %a1 %t61 = load { ptr, i64, i64 }, ptr %a58 %t62 = call { ptr, i64, i64 } @finch.gen.loopStart(ptr %t60, { ptr, i64, i64 } %t61) store { ptr, i64, i64 } %t62, ptr %a63 %t64 = load ptr, ptr %a1 - %t65 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t64, { ptr, i64, i64 } { ptr @.str.1807, i64 3, i64 0 }) + %t65 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t64, { ptr, i64, i64 } { ptr @.str.1835, i64 3, i64 0 }) store { ptr, i64, i64 } %t65, ptr %a66 %t67 = load ptr, ptr %a1 - %t68 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t67, { ptr, i64, i64 } { ptr @.str.1808, i64 4, i64 0 }) + %t68 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t67, { ptr, i64, i64 } { ptr @.str.1836, i64 4, i64 0 }) store { ptr, i64, i64 } %t68, ptr %a69 %t70 = load ptr, ptr %a1 %t71 = load { ptr, i64, i64 }, ptr %a63 %t72 = extractvalue { ptr, i64, i64 } %t71, 1 %t73 = icmp uge i64 3, %t72 - br i1 %t73, label %range2899, label %inrange2900 -range2899: - call void @finch_panic_index(ptr @.str.1810, i64 1113, i64 3, i64 %t72) + br i1 %t73, label %range2958, label %inrange2959 +range2958: + call void @finch_panic_index(ptr @.str.1838, i64 1139, i64 3, i64 %t72) unreachable -inrange2900: +inrange2959: %t74 = extractvalue { ptr, i64, i64 } %t71, 0 %t75 = getelementptr inbounds { ptr, i64, i64 }, ptr %t74, i64 3 %t76 = load { ptr, i64, i64 }, ptr %t75 - store { ptr, i64, i64 } { ptr @.str.1809, i64 13, i64 0 }, ptr %a78 + store { ptr, i64, i64 } { ptr @.str.1837, i64 13, i64 0 }, ptr %a78 store { ptr, i64, i64 } %t76, ptr %a79 call void @finch_str_concat(ptr %a77, ptr %a78, ptr %a79) %t80 = load { ptr, i64, i64 }, ptr %a77 store { ptr, i64, i64 } %t80, ptr %a82 - store { ptr, i64, i64 } { ptr @.str.1811, i64 3, i64 0 }, ptr %a83 + store { ptr, i64, i64 } { ptr @.str.1839, i64 3, i64 0 }, ptr %a83 call void @finch_str_concat(ptr %a81, ptr %a82, ptr %a83) store { ptr, i64, i64 } %t80, ptr %a84 call void @finch_str_drop(ptr %a84) @@ -32739,7 +33622,7 @@ inrange2900: %t94 = load { ptr, i64, i64 }, ptr %a66 call void @finch.gen.label(ptr %t93, { ptr, i64, i64 } %t94) %t95 = load ptr, ptr %a1 - call void @finch.gen.bufText(ptr %t95, { ptr, i64, i64 } { ptr @.str.1812, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1813, i64 2, i64 0 }) + call void @finch.gen.bufText(ptr %t95, { ptr, i64, i64 } { ptr @.str.1840, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1841, i64 2, i64 0 }) %t96 = load ptr, ptr %a1 %t97 = load { ptr, i64, i64 }, ptr %a69 call void @finch.gen.br(ptr %t96, { ptr, i64, i64 } %t97) @@ -32750,14 +33633,14 @@ inrange2900: %t101 = load ptr, ptr %a1 %t102 = load %S.ast.Type, ptr %a49 %t103 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t101, %S.ast.Type %t102) - store { ptr, i64, i64 } { ptr @.str.1814, i64 23, i64 0 }, ptr %a105 + store { ptr, i64, i64 } { ptr @.str.1842, i64 23, i64 0 }, ptr %a105 store { ptr, i64, i64 } %t103, ptr %a106 call void @finch_str_concat(ptr %a104, ptr %a105, ptr %a106) store { ptr, i64, i64 } %t103, ptr %a107 call void @finch_str_drop(ptr %a107) %t108 = load { ptr, i64, i64 }, ptr %a104 store { ptr, i64, i64 } %t108, ptr %a110 - store { ptr, i64, i64 } { ptr @.str.1815, i64 6, i64 0 }, ptr %a111 + store { ptr, i64, i64 } { ptr @.str.1843, i64 6, i64 0 }, ptr %a111 call void @finch_str_concat(ptr %a109, ptr %a110, ptr %a111) store { ptr, i64, i64 } %t108, ptr %a112 call void @finch_str_drop(ptr %a112) @@ -32770,7 +33653,7 @@ inrange2900: call void @finch_str_drop(ptr %a118) %t119 = load { ptr, i64, i64 }, ptr %a115 store { ptr, i64, i64 } %t119, ptr %a121 - store { ptr, i64, i64 } { ptr @.str.1816, i64 6, i64 0 }, ptr %a122 + store { ptr, i64, i64 } { ptr @.str.1844, i64 6, i64 0 }, ptr %a122 call void @finch_str_concat(ptr %a120, ptr %a121, ptr %a122) store { ptr, i64, i64 } %t119, ptr %a123 call void @finch_str_drop(ptr %a123) @@ -32778,11 +33661,11 @@ inrange2900: %t125 = load { ptr, i64, i64 }, ptr %a63 %t126 = extractvalue { ptr, i64, i64 } %t125, 1 %t127 = icmp uge i64 3, %t126 - br i1 %t127, label %range2901, label %inrange2902 -range2901: - call void @finch_panic_index(ptr @.str.1817, i64 1119, i64 3, i64 %t126) + br i1 %t127, label %range2960, label %inrange2961 +range2960: + call void @finch_panic_index(ptr @.str.1845, i64 1145, i64 3, i64 %t126) unreachable -inrange2902: +inrange2961: %t128 = extractvalue { ptr, i64, i64 } %t125, 0 %t129 = getelementptr inbounds { ptr, i64, i64 }, ptr %t128, i64 3 %t130 = load { ptr, i64, i64 }, ptr %t129 @@ -32806,14 +33689,14 @@ inrange2902: store { ptr, i64, i64 } %t143, ptr %a146 call void @finch_str_drop(ptr %a146) %t147 = load %S.ast.Type, ptr %a49 - call void @finch.gen.emitFormat(ptr %t139, { ptr, i64, i64 } { ptr @.str.1818, i64 4, i64 0 }, { ptr, i64, i64 } %t145, %S.ast.Type %t147, i1 true) + call void @finch.gen.emitFormat(ptr %t139, { ptr, i64, i64 } { ptr @.str.1846, i64 4, i64 0 }, { ptr, i64, i64 } %t145, %S.ast.Type %t147, i1 true) store { ptr, i64, i64 } %t145, ptr %a148 call void @finch_str_drop(ptr %a148) %t149 = load ptr, ptr %a1 %t150 = load { ptr, i64, i64 }, ptr %a63 call void @finch.gen.loopEnd(ptr %t149, { ptr, i64, i64 } %t150) %t151 = load ptr, ptr %a1 - call void @finch.gen.bufText(ptr %t151, { ptr, i64, i64 } { ptr @.str.1819, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1820, i64 1, i64 0 }) + call void @finch.gen.bufText(ptr %t151, { ptr, i64, i64 } { ptr @.str.1847, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1848, i64 1, i64 0 }) call void @finch_str_drop(ptr %a138) call void @finch_str_drop(ptr %a88) call void @finch_str_drop(ptr %a69) @@ -32822,23 +33705,23 @@ inrange2902: call void @finch_str_drop(ptr %a58) call void @finch_str_drop(ptr %a52) call void @finch.drop.S_ast_Type(ptr %a49) - br label %endif2896 -else2895: + br label %endif2955 +else2954: %t152 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t153 = load { ptr, i64, i64 }, ptr %t152 store { ptr, i64, i64 } %t153, ptr %a154 - store { ptr, i64, i64 } { ptr @.str.1821, i64 4, i64 0 }, ptr %a155 + store { ptr, i64, i64 } { ptr @.str.1849, i64 4, i64 0 }, ptr %a155 %t156 = call i32 @finch_str_eq(ptr %a154, ptr %a155) %t157 = icmp ne i32 %t156, 0 - br i1 %t157, label %then2903, label %else2904 -then2903: + br i1 %t157, label %then2962, label %else2963 +then2962: %t158 = load ptr, ptr %a1 %t159 = icmp eq ptr %t158, null - br i1 %t159, label %panic2906, label %ok2907 -panic2906: - call void @finch_panic(ptr @.str.1822, i64 1125, ptr @.str.1823) + br i1 %t159, label %panic2965, label %ok2966 +panic2965: + call void @finch_panic(ptr @.str.1850, i64 1151, ptr @.str.1851) unreachable -ok2907: +ok2966: %t160 = getelementptr inbounds %S.gen.Gen, ptr %t158, i32 0, i32 21 %t161 = load ptr, ptr %a1 %t162 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 @@ -32849,11 +33732,11 @@ ok2907: %t167 = load { ptr, i64, i64 }, ptr %t160 %t168 = extractvalue { ptr, i64, i64 } %t167, 1 %t169 = icmp uge i64 %t166, %t168 - br i1 %t169, label %range2908, label %inrange2909 -range2908: - call void @finch_panic_index(ptr @.str.1824, i64 1125, i64 %t166, i64 %t168) + br i1 %t169, label %range2967, label %inrange2968 +range2967: + call void @finch_panic_index(ptr @.str.1852, i64 1151, i64 %t166, i64 %t168) unreachable -inrange2909: +inrange2968: %t170 = extractvalue { ptr, i64, i64 } %t167, 0 %t171 = getelementptr inbounds %S.gen.EnumDef, ptr %t170, i64 %t166 %t172 = load %S.gen.EnumDef, ptr %t171 @@ -32862,13 +33745,13 @@ inrange2909: %t175 = load %S.gen.EnumDef, ptr %a174 store %S.gen.EnumDef %t175, ptr %a176 %t177 = load ptr, ptr %a1 - %t178 = call { ptr, i64, i64 } @finch.gen.load(ptr %t177, { ptr, i64, i64 } { ptr @.str.1825, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.1826, i64 2, i64 0 }) + %t178 = call { ptr, i64, i64 } @finch.gen.load(ptr %t177, { ptr, i64, i64 } { ptr @.str.1853, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.1854, i64 2, i64 0 }) store { ptr, i64, i64 } %t178, ptr %a179 %t180 = load ptr, ptr %a1 - %t181 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t180, { ptr, i64, i64 } { ptr @.str.1827, i64 10, i64 0 }) + %t181 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t180, { ptr, i64, i64 } { ptr @.str.1855, i64 10, i64 0 }) store { ptr, i64, i64 } %t181, ptr %a182 %t183 = load ptr, ptr %a1 - %t184 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t183, { ptr, i64, i64 } { ptr @.str.1828, i64 9, i64 0 }) + %t184 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t183, { ptr, i64, i64 } { ptr @.str.1856, i64 9, i64 0 }) store { ptr, i64, i64 } %t184, ptr %a185 store { ptr, i64, i64 } zeroinitializer, ptr %a186 store { ptr, i64, i64 } zeroinitializer, ptr %a187 @@ -32876,15 +33759,15 @@ inrange2909: %t189 = getelementptr inbounds { ptr, i64, i64 }, ptr %t188, i32 0, i32 1 %t190 = load i64, ptr %t189 store i64 0, ptr %a191 - br label %for.cond2910 -for.cond2910: + br label %for.cond2969 +for.cond2969: %t192 = load i64, ptr %a191 %t193 = icmp slt i64 %t192, %t190 - br i1 %t193, label %for.body2911, label %for.end2913 -for.body2911: + br i1 %t193, label %for.body2970, label %for.end2972 +for.body2970: %t194 = getelementptr inbounds { ptr, i64, i64 }, ptr %a187, i32 0, i32 1 %t195 = load ptr, ptr %a1 - %t196 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t195, { ptr, i64, i64 } { ptr @.str.1829, i64 6, i64 0 }) + %t196 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t195, { ptr, i64, i64 } { ptr @.str.1857, i64 6, i64 0 }) %t197 = load i64, ptr %t194 %t198 = add i64 %t197, 1 call void @finch_arr_reserve(ptr %a187, i64 %t198, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) @@ -32898,24 +33781,24 @@ for.body2911: %t204 = load { ptr, i64, i64 }, ptr %t202 %t205 = extractvalue { ptr, i64, i64 } %t204, 1 %t206 = icmp uge i64 %t203, %t205 - br i1 %t206, label %range2914, label %inrange2915 -range2914: - call void @finch_panic_index(ptr @.str.1831, i64 1133, i64 %t203, i64 %t205) + br i1 %t206, label %range2973, label %inrange2974 +range2973: + call void @finch_panic_index(ptr @.str.1859, i64 1159, i64 %t203, i64 %t205) unreachable -inrange2915: +inrange2974: %t207 = extractvalue { ptr, i64, i64 } %t204, 0 %t208 = getelementptr inbounds i64, ptr %t207, i64 %t203 %t209 = load i64, ptr %t208 call void @finch_str_from_int(ptr %a210, i64 %t209) %t211 = load { ptr, i64, i64 }, ptr %a210 - store { ptr, i64, i64 } { ptr @.str.1830, i64 4, i64 0 }, ptr %a213 + store { ptr, i64, i64 } { ptr @.str.1858, i64 4, i64 0 }, ptr %a213 store { ptr, i64, i64 } %t211, ptr %a214 call void @finch_str_concat(ptr %a212, ptr %a213, ptr %a214) store { ptr, i64, i64 } %t211, ptr %a215 call void @finch_str_drop(ptr %a215) %t216 = load { ptr, i64, i64 }, ptr %a212 store { ptr, i64, i64 } %t216, ptr %a218 - store { ptr, i64, i64 } { ptr @.str.1832, i64 9, i64 0 }, ptr %a219 + store { ptr, i64, i64 } { ptr @.str.1860, i64 9, i64 0 }, ptr %a219 call void @finch_str_concat(ptr %a217, ptr %a218, ptr %a219) store { ptr, i64, i64 } %t216, ptr %a220 call void @finch_str_drop(ptr %a220) @@ -32924,11 +33807,11 @@ inrange2915: %t223 = load { ptr, i64, i64 }, ptr %a187 %t224 = extractvalue { ptr, i64, i64 } %t223, 1 %t225 = icmp uge i64 %t222, %t224 - br i1 %t225, label %range2916, label %inrange2917 -range2916: - call void @finch_panic_index(ptr @.str.1833, i64 1133, i64 %t222, i64 %t224) + br i1 %t225, label %range2975, label %inrange2976 +range2975: + call void @finch_panic_index(ptr @.str.1861, i64 1159, i64 %t222, i64 %t224) unreachable -inrange2917: +inrange2976: %t226 = extractvalue { ptr, i64, i64 } %t223, 0 %t227 = getelementptr inbounds { ptr, i64, i64 }, ptr %t226, i64 %t222 %t228 = load { ptr, i64, i64 }, ptr %t227 @@ -32945,21 +33828,21 @@ inrange2917: %t237 = getelementptr inbounds { ptr, i64, i64 }, ptr %t236, i64 %t234 store { ptr, i64, i64 } %t233, ptr %t237 store i64 %t235, ptr %t201 - br label %for.step2912 -for.step2912: + br label %for.step2971 +for.step2971: %t238 = load i64, ptr %a191 %t239 = add i64 %t238, 1 store i64 %t239, ptr %a191 - br label %for.cond2910 -for.end2913: + br label %for.cond2969 +for.end2972: %t240 = load ptr, ptr %a1 %t241 = load { ptr, i64, i64 }, ptr %a179 - store { ptr, i64, i64 } { ptr @.str.1834, i64 11, i64 0 }, ptr %a243 + store { ptr, i64, i64 } { ptr @.str.1862, i64 11, i64 0 }, ptr %a243 store { ptr, i64, i64 } %t241, ptr %a244 call void @finch_str_concat(ptr %a242, ptr %a243, ptr %a244) %t245 = load { ptr, i64, i64 }, ptr %a242 store { ptr, i64, i64 } %t245, ptr %a247 - store { ptr, i64, i64 } { ptr @.str.1835, i64 9, i64 0 }, ptr %a248 + store { ptr, i64, i64 } { ptr @.str.1863, i64 9, i64 0 }, ptr %a248 call void @finch_str_concat(ptr %a246, ptr %a247, ptr %a248) store { ptr, i64, i64 } %t245, ptr %a249 call void @finch_str_drop(ptr %a249) @@ -32972,13 +33855,13 @@ for.end2913: call void @finch_str_drop(ptr %a255) %t256 = load { ptr, i64, i64 }, ptr %a252 store { ptr, i64, i64 } %t256, ptr %a258 - store { ptr, i64, i64 } { ptr @.str.1836, i64 3, i64 0 }, ptr %a259 + store { ptr, i64, i64 } { ptr @.str.1864, i64 3, i64 0 }, ptr %a259 call void @finch_str_concat(ptr %a257, ptr %a258, ptr %a259) store { ptr, i64, i64 } %t256, ptr %a260 call void @finch_str_drop(ptr %a260) %t261 = load { ptr, i64, i64 }, ptr %a257 %t262 = getelementptr inbounds { ptr, i64, i64 }, ptr %a186, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.1837, i64 1, i64 0 }, ptr %a263 + store { ptr, i64, i64 } { ptr @.str.1865, i64 1, i64 0 }, ptr %a263 call void @finch_str_join(ptr %a264, ptr %a186, ptr %a263) %t265 = load { ptr, i64, i64 }, ptr %a264 store { ptr, i64, i64 } %t261, ptr %a267 @@ -32990,7 +33873,7 @@ for.end2913: call void @finch_str_drop(ptr %a270) %t271 = load { ptr, i64, i64 }, ptr %a266 store { ptr, i64, i64 } %t271, ptr %a273 - store { ptr, i64, i64 } { ptr @.str.1838, i64 2, i64 0 }, ptr %a274 + store { ptr, i64, i64 } { ptr @.str.1866, i64 2, i64 0 }, ptr %a274 call void @finch_str_concat(ptr %a272, ptr %a273, ptr %a274) store { ptr, i64, i64 } %t271, ptr %a275 call void @finch_str_drop(ptr %a275) @@ -33000,33 +33883,33 @@ for.end2913: call void @finch_str_drop(ptr %a277) %t278 = load ptr, ptr %a1 %t279 = icmp eq ptr %t278, null - br i1 %t279, label %panic2918, label %ok2919 -panic2918: - call void @finch_panic(ptr @.str.1839, i64 1136, ptr @.str.1840) + br i1 %t279, label %panic2977, label %ok2978 +panic2977: + call void @finch_panic(ptr @.str.1867, i64 1162, ptr @.str.1868) unreachable -ok2919: +ok2978: %t280 = getelementptr inbounds %S.gen.Gen, ptr %t278, i32 0, i32 9 store i1 true, ptr %t280 %t281 = getelementptr inbounds %S.gen.EnumDef, ptr %a176, i32 0, i32 2 %t282 = getelementptr inbounds { ptr, i64, i64 }, ptr %t281, i32 0, i32 1 %t283 = load i64, ptr %t282 store i64 0, ptr %a284 - br label %for.cond2920 -for.cond2920: + br label %for.cond2979 +for.cond2979: %t285 = load i64, ptr %a284 %t286 = icmp slt i64 %t285, %t283 - br i1 %t286, label %for.body2921, label %for.end2923 -for.body2921: + br i1 %t286, label %for.body2980, label %for.end2982 +for.body2980: %t287 = load ptr, ptr %a1 %t288 = load i64, ptr %a284 %t289 = load { ptr, i64, i64 }, ptr %a187 %t290 = extractvalue { ptr, i64, i64 } %t289, 1 %t291 = icmp uge i64 %t288, %t290 - br i1 %t291, label %range2924, label %inrange2925 -range2924: - call void @finch_panic_index(ptr @.str.1841, i64 1138, i64 %t288, i64 %t290) + br i1 %t291, label %range2983, label %inrange2984 +range2983: + call void @finch_panic_index(ptr @.str.1869, i64 1164, i64 %t288, i64 %t290) unreachable -inrange2925: +inrange2984: %t292 = extractvalue { ptr, i64, i64 } %t289, 0 %t293 = getelementptr inbounds { ptr, i64, i64 }, ptr %t292, i64 %t288 %t294 = load { ptr, i64, i64 }, ptr %t293 @@ -33037,25 +33920,25 @@ inrange2925: %t298 = load { ptr, i64, i64 }, ptr %t296 %t299 = extractvalue { ptr, i64, i64 } %t298, 1 %t300 = icmp uge i64 %t297, %t299 - br i1 %t300, label %range2926, label %inrange2927 -range2926: - call void @finch_panic_index(ptr @.str.1843, i64 1139, i64 %t297, i64 %t299) + br i1 %t300, label %range2985, label %inrange2986 +range2985: + call void @finch_panic_index(ptr @.str.1871, i64 1165, i64 %t297, i64 %t299) unreachable -inrange2927: +inrange2986: %t301 = extractvalue { ptr, i64, i64 } %t298, 0 %t302 = getelementptr inbounds { ptr, i64, i64 }, ptr %t301, i64 %t297 %t303 = load { ptr, i64, i64 }, ptr %t302 - call void @finch.gen.bufText(ptr %t295, { ptr, i64, i64 } { ptr @.str.1842, i64 4, i64 0 }, { ptr, i64, i64 } %t303) + call void @finch.gen.bufText(ptr %t295, { ptr, i64, i64 } { ptr @.str.1870, i64 4, i64 0 }, { ptr, i64, i64 } %t303) %t304 = load ptr, ptr %a1 %t305 = load { ptr, i64, i64 }, ptr %a185 call void @finch.gen.br(ptr %t304, { ptr, i64, i64 } %t305) - br label %for.step2922 -for.step2922: + br label %for.step2981 +for.step2981: %t306 = load i64, ptr %a284 %t307 = add i64 %t306, 1 store i64 %t307, ptr %a284 - br label %for.cond2920 -for.end2923: + br label %for.cond2979 +for.end2982: %t308 = load ptr, ptr %a1 %t309 = load { ptr, i64, i64 }, ptr %a182 call void @finch.gen.label(ptr %t308, { ptr, i64, i64 } %t309) @@ -33063,21 +33946,21 @@ for.end2923: %t311 = getelementptr inbounds %S.gen.EnumDef, ptr %a176, i32 0, i32 1 %t312 = load { ptr, i64, i64 }, ptr %t311 store { ptr, i64, i64 } %t312, ptr %a314 - store { ptr, i64, i64 } { ptr @.str.1845, i64 1, i64 0 }, ptr %a315 + store { ptr, i64, i64 } { ptr @.str.1873, i64 1, i64 0 }, ptr %a315 call void @finch_str_concat(ptr %a313, ptr %a314, ptr %a315) %t316 = load { ptr, i64, i64 }, ptr %a313 - call void @finch.gen.bufText(ptr %t310, { ptr, i64, i64 } { ptr @.str.1844, i64 4, i64 0 }, { ptr, i64, i64 } %t316) + call void @finch.gen.bufText(ptr %t310, { ptr, i64, i64 } { ptr @.str.1872, i64 4, i64 0 }, { ptr, i64, i64 } %t316) store { ptr, i64, i64 } %t316, ptr %a317 call void @finch_str_drop(ptr %a317) %t318 = load ptr, ptr %a1 %t319 = load ptr, ptr %a1 %t320 = load { ptr, i64, i64 }, ptr %a179 - store { ptr, i64, i64 } { ptr @.str.1847, i64 9, i64 0 }, ptr %a322 + store { ptr, i64, i64 } { ptr @.str.1875, i64 9, i64 0 }, ptr %a322 store { ptr, i64, i64 } %t320, ptr %a323 call void @finch_str_concat(ptr %a321, ptr %a322, ptr %a323) %t324 = load { ptr, i64, i64 }, ptr %a321 store { ptr, i64, i64 } %t324, ptr %a326 - store { ptr, i64, i64 } { ptr @.str.1848, i64 7, i64 0 }, ptr %a327 + store { ptr, i64, i64 } { ptr @.str.1876, i64 7, i64 0 }, ptr %a327 call void @finch_str_concat(ptr %a325, ptr %a326, ptr %a327) store { ptr, i64, i64 } %t324, ptr %a328 call void @finch_str_drop(ptr %a328) @@ -33085,14 +33968,14 @@ for.end2923: %t330 = call { ptr, i64, i64 } @finch.gen.op(ptr %t319, { ptr, i64, i64 } %t329) store { ptr, i64, i64 } %t329, ptr %a331 call void @finch_str_drop(ptr %a331) - store { ptr, i64, i64 } { ptr @.str.1846, i64 39, i64 0 }, ptr %a333 + store { ptr, i64, i64 } { ptr @.str.1874, i64 39, i64 0 }, ptr %a333 store { ptr, i64, i64 } %t330, ptr %a334 call void @finch_str_concat(ptr %a332, ptr %a333, ptr %a334) store { ptr, i64, i64 } %t330, ptr %a335 call void @finch_str_drop(ptr %a335) %t336 = load { ptr, i64, i64 }, ptr %a332 store { ptr, i64, i64 } %t336, ptr %a338 - store { ptr, i64, i64 } { ptr @.str.1849, i64 1, i64 0 }, ptr %a339 + store { ptr, i64, i64 } { ptr @.str.1877, i64 1, i64 0 }, ptr %a339 call void @finch_str_concat(ptr %a337, ptr %a338, ptr %a339) store { ptr, i64, i64 } %t336, ptr %a340 call void @finch_str_drop(ptr %a340) @@ -33101,7 +33984,7 @@ for.end2923: store { ptr, i64, i64 } %t341, ptr %a342 call void @finch_str_drop(ptr %a342) %t343 = load ptr, ptr %a1 - call void @finch.gen.bufText(ptr %t343, { ptr, i64, i64 } { ptr @.str.1850, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1851, i64 1, i64 0 }) + call void @finch.gen.bufText(ptr %t343, { ptr, i64, i64 } { ptr @.str.1878, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1879, i64 1, i64 0 }) %t344 = load ptr, ptr %a1 %t345 = load { ptr, i64, i64 }, ptr %a185 call void @finch.gen.br(ptr %t344, { ptr, i64, i64 } %t345) @@ -33114,37 +33997,37 @@ for.end2923: call void @finch_str_drop(ptr %a182) call void @finch_str_drop(ptr %a179) call void @finch.drop.S_gen_EnumDef(ptr %a176) - br label %endif2905 -else2904: + br label %endif2964 +else2963: %t348 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t349 = load { ptr, i64, i64 }, ptr %t348 store { ptr, i64, i64 } %t349, ptr %a350 - store { ptr, i64, i64 } { ptr @.str.1852, i64 3, i64 0 }, ptr %a351 + store { ptr, i64, i64 } { ptr @.str.1880, i64 3, i64 0 }, ptr %a351 %t352 = call i32 @finch_str_eq(ptr %a350, ptr %a351) %t353 = icmp ne i32 %t352, 0 - br i1 %t353, label %then2928, label %else2929 -then2928: + br i1 %t353, label %then2987, label %else2988 +then2987: %t354 = load ptr, ptr %a1 - %t355 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t354, { ptr, i64, i64 } { ptr @.str.1853, i64 2, i64 0 }) + %t355 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t354, { ptr, i64, i64 } { ptr @.str.1881, i64 2, i64 0 }) store { ptr, i64, i64 } %t355, ptr %a356 %t357 = load ptr, ptr %a1 %t358 = load { ptr, i64, i64 }, ptr %a356 - call void @finch.gen.store(ptr %t357, { ptr, i64, i64 } { ptr @.str.1854, i64 2, i64 0 }, { ptr, i64, i64 } { ptr @.str.1855, i64 4, i64 0 }, { ptr, i64, i64 } %t358) + call void @finch.gen.store(ptr %t357, { ptr, i64, i64 } { ptr @.str.1882, i64 2, i64 0 }, { ptr, i64, i64 } { ptr @.str.1883, i64 4, i64 0 }, { ptr, i64, i64 } %t358) %t359 = load ptr, ptr %a1 - call void @finch.gen.bufText(ptr %t359, { ptr, i64, i64 } { ptr @.str.1856, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1857, i64 1, i64 0 }) + call void @finch.gen.bufText(ptr %t359, { ptr, i64, i64 } { ptr @.str.1884, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1885, i64 1, i64 0 }) %t360 = load ptr, ptr %a1 %t361 = load ptr, ptr %a1 %t362 = load ptr, ptr %a1 %t363 = load %S.ast.Type, ptr %a2 %t364 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t362, %S.ast.Type %t363) - store { ptr, i64, i64 } { ptr @.str.1859, i64 23, i64 0 }, ptr %a366 + store { ptr, i64, i64 } { ptr @.str.1887, i64 23, i64 0 }, ptr %a366 store { ptr, i64, i64 } %t364, ptr %a367 call void @finch_str_concat(ptr %a365, ptr %a366, ptr %a367) store { ptr, i64, i64 } %t364, ptr %a368 call void @finch_str_drop(ptr %a368) %t369 = load { ptr, i64, i64 }, ptr %a365 store { ptr, i64, i64 } %t369, ptr %a371 - store { ptr, i64, i64 } { ptr @.str.1860, i64 22, i64 0 }, ptr %a372 + store { ptr, i64, i64 } { ptr @.str.1888, i64 22, i64 0 }, ptr %a372 call void @finch_str_concat(ptr %a370, ptr %a371, ptr %a372) store { ptr, i64, i64 } %t369, ptr %a373 call void @finch_str_drop(ptr %a373) @@ -33152,7 +34035,7 @@ then2928: %t375 = call { ptr, i64, i64 } @finch.gen.op(ptr %t361, { ptr, i64, i64 } %t374) store { ptr, i64, i64 } %t374, ptr %a376 call void @finch_str_drop(ptr %a376) - %t377 = call { ptr, i64, i64 } @finch.gen.load(ptr %t360, { ptr, i64, i64 } { ptr @.str.1858, i64 3, i64 0 }, { ptr, i64, i64 } %t375) + %t377 = call { ptr, i64, i64 } @finch.gen.load(ptr %t360, { ptr, i64, i64 } { ptr @.str.1886, i64 3, i64 0 }, { ptr, i64, i64 } %t375) store { ptr, i64, i64 } %t375, ptr %a378 call void @finch_str_drop(ptr %a378) store { ptr, i64, i64 } %t377, ptr %a379 @@ -33165,21 +34048,21 @@ then2928: %t386 = load { ptr, i64, i64 }, ptr %a383 %t387 = extractvalue { ptr, i64, i64 } %t386, 1 %t388 = icmp uge i64 3, %t387 - br i1 %t388, label %range2931, label %inrange2932 -range2931: - call void @finch_panic_index(ptr @.str.1862, i64 1155, i64 3, i64 %t387) + br i1 %t388, label %range2990, label %inrange2991 +range2990: + call void @finch_panic_index(ptr @.str.1890, i64 1181, i64 3, i64 %t387) unreachable -inrange2932: +inrange2991: %t389 = extractvalue { ptr, i64, i64 } %t386, 0 %t390 = getelementptr inbounds { ptr, i64, i64 }, ptr %t389, i64 3 %t391 = load { ptr, i64, i64 }, ptr %t390 - %t392 = call { ptr, i64, i64 } @finch.gen.entryAt(ptr %t384, { ptr, i64, i64 } { ptr @.str.1861, i64 2, i64 0 }, %S.ast.Type %t385, { ptr, i64, i64 } %t391) + %t392 = call { ptr, i64, i64 } @finch.gen.entryAt(ptr %t384, { ptr, i64, i64 } { ptr @.str.1889, i64 2, i64 0 }, %S.ast.Type %t385, { ptr, i64, i64 } %t391) store { ptr, i64, i64 } %t392, ptr %a393 %t394 = load ptr, ptr %a1 - %t395 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t394, { ptr, i64, i64 } { ptr @.str.1863, i64 10, i64 0 }) + %t395 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t394, { ptr, i64, i64 } { ptr @.str.1891, i64 10, i64 0 }) store { ptr, i64, i64 } %t395, ptr %a396 %t397 = load ptr, ptr %a1 - %t398 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t397, { ptr, i64, i64 } { ptr @.str.1864, i64 10, i64 0 }) + %t398 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t397, { ptr, i64, i64 } { ptr @.str.1892, i64 10, i64 0 }) store { ptr, i64, i64 } %t398, ptr %a399 %t400 = load ptr, ptr %a1 %t401 = load ptr, ptr %a1 @@ -33188,17 +34071,17 @@ inrange2932: %t404 = load { ptr, i64, i64 }, ptr %a393 %t405 = load %S.ast.Type, ptr %a2 %t406 = call { ptr, i64, i64 } @finch.gen.entryField(ptr %t403, { ptr, i64, i64 } %t404, %S.ast.Type %t405, i64 0) - %t407 = call { ptr, i64, i64 } @finch.gen.load(ptr %t402, { ptr, i64, i64 } { ptr @.str.1866, i64 3, i64 0 }, { ptr, i64, i64 } %t406) + %t407 = call { ptr, i64, i64 } @finch.gen.load(ptr %t402, { ptr, i64, i64 } { ptr @.str.1894, i64 3, i64 0 }, { ptr, i64, i64 } %t406) store { ptr, i64, i64 } %t406, ptr %a408 call void @finch_str_drop(ptr %a408) - store { ptr, i64, i64 } { ptr @.str.1865, i64 12, i64 0 }, ptr %a410 + store { ptr, i64, i64 } { ptr @.str.1893, i64 12, i64 0 }, ptr %a410 store { ptr, i64, i64 } %t407, ptr %a411 call void @finch_str_concat(ptr %a409, ptr %a410, ptr %a411) store { ptr, i64, i64 } %t407, ptr %a412 call void @finch_str_drop(ptr %a412) %t413 = load { ptr, i64, i64 }, ptr %a409 store { ptr, i64, i64 } %t413, ptr %a415 - store { ptr, i64, i64 } { ptr @.str.1867, i64 3, i64 0 }, ptr %a416 + store { ptr, i64, i64 } { ptr @.str.1895, i64 3, i64 0 }, ptr %a416 call void @finch_str_concat(ptr %a414, ptr %a415, ptr %a416) store { ptr, i64, i64 } %t413, ptr %a417 call void @finch_str_drop(ptr %a417) @@ -33215,15 +34098,15 @@ inrange2932: %t425 = load { ptr, i64, i64 }, ptr %a396 call void @finch.gen.label(ptr %t424, { ptr, i64, i64 } %t425) %t426 = load ptr, ptr %a1 - %t427 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t426, { ptr, i64, i64 } { ptr @.str.1868, i64 3, i64 0 }) + %t427 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t426, { ptr, i64, i64 } { ptr @.str.1896, i64 3, i64 0 }) store { ptr, i64, i64 } %t427, ptr %a428 %t429 = load ptr, ptr %a1 - %t430 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t429, { ptr, i64, i64 } { ptr @.str.1869, i64 4, i64 0 }) + %t430 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t429, { ptr, i64, i64 } { ptr @.str.1897, i64 4, i64 0 }) store { ptr, i64, i64 } %t430, ptr %a431 %t432 = load ptr, ptr %a1 %t433 = load ptr, ptr %a1 %t434 = load { ptr, i64, i64 }, ptr %a356 - %t435 = call { ptr, i64, i64 } @finch.gen.load(ptr %t433, { ptr, i64, i64 } { ptr @.str.1870, i64 2, i64 0 }, { ptr, i64, i64 } %t434) + %t435 = call { ptr, i64, i64 } @finch.gen.load(ptr %t433, { ptr, i64, i64 } { ptr @.str.1898, i64 2, i64 0 }, { ptr, i64, i64 } %t434) %t436 = load { ptr, i64, i64 }, ptr %a431 %t437 = load { ptr, i64, i64 }, ptr %a428 call void @finch.gen.condBr(ptr %t432, { ptr, i64, i64 } %t435, { ptr, i64, i64 } %t436, { ptr, i64, i64 } %t437) @@ -33233,7 +34116,7 @@ inrange2932: %t440 = load { ptr, i64, i64 }, ptr %a428 call void @finch.gen.label(ptr %t439, { ptr, i64, i64 } %t440) %t441 = load ptr, ptr %a1 - call void @finch.gen.bufText(ptr %t441, { ptr, i64, i64 } { ptr @.str.1871, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1872, i64 2, i64 0 }) + call void @finch.gen.bufText(ptr %t441, { ptr, i64, i64 } { ptr @.str.1899, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1900, i64 2, i64 0 }) %t442 = load ptr, ptr %a1 %t443 = load { ptr, i64, i64 }, ptr %a431 call void @finch.gen.br(ptr %t442, { ptr, i64, i64 } %t443) @@ -33242,7 +34125,7 @@ inrange2932: call void @finch.gen.label(ptr %t444, { ptr, i64, i64 } %t445) %t446 = load ptr, ptr %a1 %t447 = load { ptr, i64, i64 }, ptr %a356 - call void @finch.gen.store(ptr %t446, { ptr, i64, i64 } { ptr @.str.1873, i64 2, i64 0 }, { ptr, i64, i64 } { ptr @.str.1874, i64 5, i64 0 }, { ptr, i64, i64 } %t447) + call void @finch.gen.store(ptr %t446, { ptr, i64, i64 } { ptr @.str.1901, i64 2, i64 0 }, { ptr, i64, i64 } { ptr @.str.1902, i64 5, i64 0 }, { ptr, i64, i64 } %t447) %t448 = load ptr, ptr %a1 %t449 = load ptr, ptr %a1 %t450 = load ptr, ptr %a1 @@ -33250,11 +34133,11 @@ inrange2932: %t452 = load { ptr, i64, i64 }, ptr %t451 %t453 = extractvalue { ptr, i64, i64 } %t452, 1 %t454 = icmp uge i64 0, %t453 - br i1 %t454, label %range2933, label %inrange2934 -range2933: - call void @finch_panic_index(ptr @.str.1876, i64 1168, i64 0, i64 %t453) + br i1 %t454, label %range2992, label %inrange2993 +range2992: + call void @finch_panic_index(ptr @.str.1904, i64 1194, i64 0, i64 %t453) unreachable -inrange2934: +inrange2993: %t455 = extractvalue { ptr, i64, i64 } %t452, 0 %t456 = getelementptr inbounds %S.ast.Type, ptr %t455, i64 0 %t457 = load %S.ast.Type, ptr %t456 @@ -33272,19 +34155,19 @@ inrange2934: %t467 = load { ptr, i64, i64 }, ptr %t466 %t468 = extractvalue { ptr, i64, i64 } %t467, 1 %t469 = icmp uge i64 0, %t468 - br i1 %t469, label %range2935, label %inrange2936 -range2935: - call void @finch_panic_index(ptr @.str.1877, i64 1168, i64 0, i64 %t468) + br i1 %t469, label %range2994, label %inrange2995 +range2994: + call void @finch_panic_index(ptr @.str.1905, i64 1194, i64 0, i64 %t468) unreachable -inrange2936: +inrange2995: %t470 = extractvalue { ptr, i64, i64 } %t467, 0 %t471 = getelementptr inbounds %S.ast.Type, ptr %t470, i64 0 %t472 = load %S.ast.Type, ptr %t471 - call void @finch.gen.emitFormat(ptr %t448, { ptr, i64, i64 } { ptr @.str.1875, i64 4, i64 0 }, { ptr, i64, i64 } %t463, %S.ast.Type %t472, i1 true) + call void @finch.gen.emitFormat(ptr %t448, { ptr, i64, i64 } { ptr @.str.1903, i64 4, i64 0 }, { ptr, i64, i64 } %t463, %S.ast.Type %t472, i1 true) store { ptr, i64, i64 } %t463, ptr %a473 call void @finch_str_drop(ptr %a473) %t474 = load ptr, ptr %a1 - call void @finch.gen.bufText(ptr %t474, { ptr, i64, i64 } { ptr @.str.1878, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1879, i64 2, i64 0 }) + call void @finch.gen.bufText(ptr %t474, { ptr, i64, i64 } { ptr @.str.1906, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1907, i64 2, i64 0 }) %t475 = load ptr, ptr %a1 %t476 = load ptr, ptr %a1 %t477 = load ptr, ptr %a1 @@ -33292,11 +34175,11 @@ inrange2936: %t479 = load { ptr, i64, i64 }, ptr %t478 %t480 = extractvalue { ptr, i64, i64 } %t479, 1 %t481 = icmp uge i64 1, %t480 - br i1 %t481, label %range2937, label %inrange2938 -range2937: - call void @finch_panic_index(ptr @.str.1881, i64 1170, i64 1, i64 %t480) + br i1 %t481, label %range2996, label %inrange2997 +range2996: + call void @finch_panic_index(ptr @.str.1909, i64 1196, i64 1, i64 %t480) unreachable -inrange2938: +inrange2997: %t482 = extractvalue { ptr, i64, i64 } %t479, 0 %t483 = getelementptr inbounds %S.ast.Type, ptr %t482, i64 1 %t484 = load %S.ast.Type, ptr %t483 @@ -33314,15 +34197,15 @@ inrange2938: %t494 = load { ptr, i64, i64 }, ptr %t493 %t495 = extractvalue { ptr, i64, i64 } %t494, 1 %t496 = icmp uge i64 1, %t495 - br i1 %t496, label %range2939, label %inrange2940 -range2939: - call void @finch_panic_index(ptr @.str.1882, i64 1170, i64 1, i64 %t495) + br i1 %t496, label %range2998, label %inrange2999 +range2998: + call void @finch_panic_index(ptr @.str.1910, i64 1196, i64 1, i64 %t495) unreachable -inrange2940: +inrange2999: %t497 = extractvalue { ptr, i64, i64 } %t494, 0 %t498 = getelementptr inbounds %S.ast.Type, ptr %t497, i64 1 %t499 = load %S.ast.Type, ptr %t498 - call void @finch.gen.emitFormat(ptr %t475, { ptr, i64, i64 } { ptr @.str.1880, i64 4, i64 0 }, { ptr, i64, i64 } %t490, %S.ast.Type %t499, i1 true) + call void @finch.gen.emitFormat(ptr %t475, { ptr, i64, i64 } { ptr @.str.1908, i64 4, i64 0 }, { ptr, i64, i64 } %t490, %S.ast.Type %t499, i1 true) store { ptr, i64, i64 } %t490, ptr %a500 call void @finch_str_drop(ptr %a500) %t501 = load ptr, ptr %a1 @@ -33335,7 +34218,7 @@ inrange2940: %t506 = load { ptr, i64, i64 }, ptr %a383 call void @finch.gen.loopEnd(ptr %t505, { ptr, i64, i64 } %t506) %t507 = load ptr, ptr %a1 - call void @finch.gen.bufText(ptr %t507, { ptr, i64, i64 } { ptr @.str.1883, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1884, i64 1, i64 0 }) + call void @finch.gen.bufText(ptr %t507, { ptr, i64, i64 } { ptr @.str.1911, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1912, i64 1, i64 0 }) call void @finch_str_drop(ptr %a431) call void @finch_str_drop(ptr %a428) call void @finch_str_drop(ptr %a399) @@ -33344,216 +34227,705 @@ inrange2940: call void @finch.drop.arr_str(ptr %a383) call void @finch_str_drop(ptr %a379) call void @finch_str_drop(ptr %a356) - br label %endif2930 -else2929: - %t508 = load ptr, ptr %a1 - %t509 = icmp eq ptr %t508, null - br i1 %t509, label %panic2941, label %ok2942 -panic2941: - call void @finch_panic(ptr @.str.1885, i64 1176, ptr @.str.1886) + br label %endif2989 +else2988: + %t508 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 + %t509 = load { ptr, i64, i64 }, ptr %t508 + store { ptr, i64, i64 } %t509, ptr %a510 + store { ptr, i64, i64 } { ptr @.str.1913, i64 6, i64 0 }, ptr %a511 + %t512 = call i32 @finch_str_eq(ptr %a510, ptr %a511) + %t513 = icmp ne i32 %t512, 0 + br label %logic.from3000 +logic.from3000: + br i1 %t513, label %logic.rhs3001, label %logic.end3002 +logic.rhs3001: + %t514 = load ptr, ptr %a1 + %t515 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 + %t516 = load { ptr, i64, i64 }, ptr %t515 + %t517 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 + %t518 = load { ptr, i64, i64 }, ptr %t517 + %t519 = call i64 @finch.gen.findSum(ptr %t514, { ptr, i64, i64 } %t516, { ptr, i64, i64 } %t518) + %t520 = icmp sge i64 %t519, 0 + br label %logic.rend3003 +logic.rend3003: + br label %logic.end3002 +logic.end3002: + %t521 = phi i1 [ false, %logic.from3000 ], [ %t520, %logic.rend3003 ] + br i1 %t521, label %then3004, label %else3005 +then3004: + %t522 = load ptr, ptr %a1 + %t523 = icmp eq ptr %t522, null + br i1 %t523, label %panic3007, label %ok3008 +panic3007: + call void @finch_panic(ptr @.str.1914, i64 1203, ptr @.str.1915) unreachable -ok2942: - %t510 = getelementptr inbounds %S.gen.Gen, ptr %t508, i32 0, i32 16 - %t511 = load ptr, ptr %a1 - %t512 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 - %t513 = load { ptr, i64, i64 }, ptr %t512 - %t514 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 - %t515 = load { ptr, i64, i64 }, ptr %t514 - %t516 = call i64 @finch.gen.findStruct(ptr %t511, { ptr, i64, i64 } %t513, { ptr, i64, i64 } %t515) - %t517 = load { ptr, i64, i64 }, ptr %t510 - %t518 = extractvalue { ptr, i64, i64 } %t517, 1 - %t519 = icmp uge i64 %t516, %t518 - br i1 %t519, label %range2943, label %inrange2944 -range2943: - call void @finch_panic_index(ptr @.str.1887, i64 1176, i64 %t516, i64 %t518) +ok3008: + %t524 = getelementptr inbounds %S.gen.Gen, ptr %t522, i32 0, i32 22 + %t525 = load ptr, ptr %a1 + %t526 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 + %t527 = load { ptr, i64, i64 }, ptr %t526 + %t528 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 + %t529 = load { ptr, i64, i64 }, ptr %t528 + %t530 = call i64 @finch.gen.findSum(ptr %t525, { ptr, i64, i64 } %t527, { ptr, i64, i64 } %t529) + %t531 = load { ptr, i64, i64 }, ptr %t524 + %t532 = extractvalue { ptr, i64, i64 } %t531, 1 + %t533 = icmp uge i64 %t530, %t532 + br i1 %t533, label %range3009, label %inrange3010 +range3009: + call void @finch_panic_index(ptr @.str.1916, i64 1203, i64 %t530, i64 %t532) unreachable -inrange2944: - %t520 = extractvalue { ptr, i64, i64 } %t517, 0 - %t521 = getelementptr inbounds %S.gen.StructDef, ptr %t520, i64 %t516 - %t522 = load %S.gen.StructDef, ptr %t521 - store %S.gen.StructDef %t522, ptr %a523 - call void @finch.copy.S_gen_StructDef(ptr %a524, ptr %a523) - %t525 = load %S.gen.StructDef, ptr %a524 - store %S.gen.StructDef %t525, ptr %a526 - %t527 = load ptr, ptr %a1 - %t528 = load %S.ast.Type, ptr %a2 - %t529 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t527, %S.ast.Type %t528) - store { ptr, i64, i64 } %t529, ptr %a530 - %t531 = load ptr, ptr %a1 - %t532 = getelementptr inbounds %S.gen.StructDef, ptr %a526, i32 0, i32 1 - %t533 = load { ptr, i64, i64 }, ptr %t532 - store { ptr, i64, i64 } %t533, ptr %a535 - store { ptr, i64, i64 } { ptr @.str.1889, i64 1, i64 0 }, ptr %a536 - call void @finch_str_concat(ptr %a534, ptr %a535, ptr %a536) - %t537 = load { ptr, i64, i64 }, ptr %a534 - call void @finch.gen.bufText(ptr %t531, { ptr, i64, i64 } { ptr @.str.1888, i64 4, i64 0 }, { ptr, i64, i64 } %t537) - store { ptr, i64, i64 } %t537, ptr %a538 - call void @finch_str_drop(ptr %a538) - %t539 = getelementptr inbounds %S.gen.StructDef, ptr %a526, i32 0, i32 12 - %t540 = getelementptr inbounds { ptr, i64, i64 }, ptr %t539, i32 0, i32 1 - %t541 = load i64, ptr %t540 - store i64 0, ptr %a542 - br label %for.cond2945 -for.cond2945: - %t543 = load i64, ptr %a542 - %t544 = icmp slt i64 %t543, %t541 - br i1 %t544, label %for.body2946, label %for.end2948 -for.body2946: - store { ptr, i64, i64 } { ptr @.str.1890, i64 2, i64 0 }, ptr %a545 - %t546 = load i64, ptr %a542 - %t547 = icmp eq i64 %t546, 0 - br i1 %t547, label %then2949, label %endif2951 -then2949: - %t548 = load { ptr, i64, i64 }, ptr %a545 - store { ptr, i64, i64 } { ptr @.str.1891, i64 0, i64 0 }, ptr %a545 - store { ptr, i64, i64 } %t548, ptr %a549 - call void @finch_str_drop(ptr %a549) - br label %endif2951 -endif2951: - %t550 = load ptr, ptr %a1 - %t551 = load { ptr, i64, i64 }, ptr %a545 - %t552 = getelementptr inbounds %S.gen.StructDef, ptr %a526, i32 0, i32 11 - %t553 = load i64, ptr %a542 - %t554 = load { ptr, i64, i64 }, ptr %t552 - %t555 = extractvalue { ptr, i64, i64 } %t554, 1 - %t556 = icmp uge i64 %t553, %t555 - br i1 %t556, label %range2952, label %inrange2953 -range2952: - call void @finch_panic_index(ptr @.str.1893, i64 1184, i64 %t553, i64 %t555) +inrange3010: + %t534 = extractvalue { ptr, i64, i64 } %t531, 0 + %t535 = getelementptr inbounds %S.gen.SumDef, ptr %t534, i64 %t530 + %t536 = load %S.gen.SumDef, ptr %t535 + store %S.gen.SumDef %t536, ptr %a537 + call void @finch.copy.S_gen_SumDef(ptr %a538, ptr %a537) + %t539 = load %S.gen.SumDef, ptr %a538 + store %S.gen.SumDef %t539, ptr %a540 + %t541 = load ptr, ptr %a1 + %t542 = icmp eq ptr %t541, null + br i1 %t542, label %panic3011, label %ok3012 +panic3011: + call void @finch_panic(ptr @.str.1917, i64 1204, ptr @.str.1918) unreachable -inrange2953: - %t557 = extractvalue { ptr, i64, i64 } %t554, 0 - %t558 = getelementptr inbounds { ptr, i64, i64 }, ptr %t557, i64 %t553 - %t559 = load { ptr, i64, i64 }, ptr %t558 - store { ptr, i64, i64 } %t551, ptr %a561 - store { ptr, i64, i64 } %t559, ptr %a562 - call void @finch_str_concat(ptr %a560, ptr %a561, ptr %a562) - %t563 = load { ptr, i64, i64 }, ptr %a560 - store { ptr, i64, i64 } %t563, ptr %a565 - store { ptr, i64, i64 } { ptr @.str.1894, i64 2, i64 0 }, ptr %a566 - call void @finch_str_concat(ptr %a564, ptr %a565, ptr %a566) - store { ptr, i64, i64 } %t563, ptr %a567 - call void @finch_str_drop(ptr %a567) - %t568 = load { ptr, i64, i64 }, ptr %a564 - call void @finch.gen.bufText(ptr %t550, { ptr, i64, i64 } { ptr @.str.1892, i64 4, i64 0 }, { ptr, i64, i64 } %t568) - store { ptr, i64, i64 } %t568, ptr %a569 - call void @finch_str_drop(ptr %a569) - %t570 = load ptr, ptr %a1 - %t571 = load { ptr, i64, i64 }, ptr %a530 - store { ptr, i64, i64 } { ptr @.str.1895, i64 23, i64 0 }, ptr %a573 - store { ptr, i64, i64 } %t571, ptr %a574 - call void @finch_str_concat(ptr %a572, ptr %a573, ptr %a574) - %t575 = load { ptr, i64, i64 }, ptr %a572 - store { ptr, i64, i64 } %t575, ptr %a577 - store { ptr, i64, i64 } { ptr @.str.1896, i64 21, i64 0 }, ptr %a578 - call void @finch_str_concat(ptr %a576, ptr %a577, ptr %a578) - store { ptr, i64, i64 } %t575, ptr %a579 - call void @finch_str_drop(ptr %a579) - %t580 = load { ptr, i64, i64 }, ptr %a576 - %t581 = getelementptr inbounds %S.gen.StructDef, ptr %a526, i32 0, i32 3 - %t582 = load i64, ptr %a542 - %t583 = load { ptr, i64, i64 }, ptr %t581 - %t584 = extractvalue { ptr, i64, i64 } %t583, 1 - %t585 = icmp uge i64 %t582, %t584 - br i1 %t585, label %range2954, label %inrange2955 -range2954: - call void @finch_panic_index(ptr @.str.1897, i64 1185, i64 %t582, i64 %t584) +ok3012: + %t543 = getelementptr inbounds %S.gen.Gen, ptr %t541, i32 0, i32 16 + %t544 = load ptr, ptr %a1 + %t545 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 + %t546 = load { ptr, i64, i64 }, ptr %t545 + %t547 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 + %t548 = load { ptr, i64, i64 }, ptr %t547 + %t549 = call i64 @finch.gen.findStruct(ptr %t544, { ptr, i64, i64 } %t546, { ptr, i64, i64 } %t548) + %t550 = load { ptr, i64, i64 }, ptr %t543 + %t551 = extractvalue { ptr, i64, i64 } %t550, 1 + %t552 = icmp uge i64 %t549, %t551 + br i1 %t552, label %range3013, label %inrange3014 +range3013: + call void @finch_panic_index(ptr @.str.1919, i64 1204, i64 %t549, i64 %t551) unreachable -inrange2955: - %t586 = extractvalue { ptr, i64, i64 } %t583, 0 - %t587 = getelementptr inbounds i64, ptr %t586, i64 %t582 - %t588 = load i64, ptr %t587 - call void @finch_str_from_int(ptr %a589, i64 %t588) - %t590 = load { ptr, i64, i64 }, ptr %a589 - store { ptr, i64, i64 } %t580, ptr %a592 - store { ptr, i64, i64 } %t590, ptr %a593 - call void @finch_str_concat(ptr %a591, ptr %a592, ptr %a593) - store { ptr, i64, i64 } %t580, ptr %a594 +inrange3014: + %t553 = extractvalue { ptr, i64, i64 } %t550, 0 + %t554 = getelementptr inbounds %S.gen.StructDef, ptr %t553, i64 %t549 + %t555 = load %S.gen.StructDef, ptr %t554 + store %S.gen.StructDef %t555, ptr %a556 + call void @finch.copy.S_gen_StructDef(ptr %a557, ptr %a556) + %t558 = load %S.gen.StructDef, ptr %a557 + store %S.gen.StructDef %t558, ptr %a559 + %t560 = load ptr, ptr %a1 + %t561 = load %S.ast.Type, ptr %a2 + %t562 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t560, %S.ast.Type %t561) + store { ptr, i64, i64 } %t562, ptr %a563 + %t564 = load ptr, ptr %a1 + %t565 = load ptr, ptr %a1 + %t566 = load { ptr, i64, i64 }, ptr %a563 + store { ptr, i64, i64 } { ptr @.str.1921, i64 23, i64 0 }, ptr %a568 + store { ptr, i64, i64 } %t566, ptr %a569 + call void @finch_str_concat(ptr %a567, ptr %a568, ptr %a569) + %t570 = load { ptr, i64, i64 }, ptr %a567 + store { ptr, i64, i64 } %t570, ptr %a572 + store { ptr, i64, i64 } { ptr @.str.1922, i64 21, i64 0 }, ptr %a573 + call void @finch_str_concat(ptr %a571, ptr %a572, ptr %a573) + store { ptr, i64, i64 } %t570, ptr %a574 + call void @finch_str_drop(ptr %a574) + %t575 = load { ptr, i64, i64 }, ptr %a571 + %t576 = getelementptr inbounds %S.gen.StructDef, ptr %a559, i32 0, i32 3 + %t577 = load { ptr, i64, i64 }, ptr %t576 + %t578 = extractvalue { ptr, i64, i64 } %t577, 1 + %t579 = icmp uge i64 0, %t578 + br i1 %t579, label %range3015, label %inrange3016 +range3015: + call void @finch_panic_index(ptr @.str.1923, i64 1206, i64 0, i64 %t578) + unreachable +inrange3016: + %t580 = extractvalue { ptr, i64, i64 } %t577, 0 + %t581 = getelementptr inbounds i64, ptr %t580, i64 0 + %t582 = load i64, ptr %t581 + call void @finch_str_from_int(ptr %a583, i64 %t582) + %t584 = load { ptr, i64, i64 }, ptr %a583 + store { ptr, i64, i64 } %t575, ptr %a586 + store { ptr, i64, i64 } %t584, ptr %a587 + call void @finch_str_concat(ptr %a585, ptr %a586, ptr %a587) + store { ptr, i64, i64 } %t575, ptr %a588 + call void @finch_str_drop(ptr %a588) + store { ptr, i64, i64 } %t584, ptr %a589 + call void @finch_str_drop(ptr %a589) + %t590 = load { ptr, i64, i64 }, ptr %a585 + %t591 = call { ptr, i64, i64 } @finch.gen.op(ptr %t565, { ptr, i64, i64 } %t590) + store { ptr, i64, i64 } %t590, ptr %a592 + call void @finch_str_drop(ptr %a592) + %t593 = call { ptr, i64, i64 } @finch.gen.load(ptr %t564, { ptr, i64, i64 } { ptr @.str.1920, i64 3, i64 0 }, { ptr, i64, i64 } %t591) + store { ptr, i64, i64 } %t591, ptr %a594 call void @finch_str_drop(ptr %a594) - store { ptr, i64, i64 } %t590, ptr %a595 - call void @finch_str_drop(ptr %a595) - %t596 = load { ptr, i64, i64 }, ptr %a591 - %t597 = call { ptr, i64, i64 } @finch.gen.op(ptr %t570, { ptr, i64, i64 } %t596) - store { ptr, i64, i64 } %t596, ptr %a598 + store { ptr, i64, i64 } %t593, ptr %a595 + %t596 = load ptr, ptr %a1 + %t597 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t596, { ptr, i64, i64 } { ptr @.str.1924, i64 9, i64 0 }) + store { ptr, i64, i64 } %t597, ptr %a598 + %t599 = load ptr, ptr %a1 + %t600 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t599, { ptr, i64, i64 } { ptr @.str.1925, i64 8, i64 0 }) + store { ptr, i64, i64 } %t600, ptr %a601 + store { ptr, i64, i64 } zeroinitializer, ptr %a602 + store { ptr, i64, i64 } zeroinitializer, ptr %a603 + %t604 = getelementptr inbounds %S.gen.SumDef, ptr %a540, i32 0, i32 2 + %t605 = getelementptr inbounds { ptr, i64, i64 }, ptr %t604, i32 0, i32 1 + %t606 = load i64, ptr %t605 + store i64 0, ptr %a607 + br label %for.cond3017 +for.cond3017: + %t608 = load i64, ptr %a607 + %t609 = icmp slt i64 %t608, %t606 + br i1 %t609, label %for.body3018, label %for.end3020 +for.body3018: + %t610 = getelementptr inbounds { ptr, i64, i64 }, ptr %a603, i32 0, i32 1 + %t611 = load ptr, ptr %a1 + %t612 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t611, { ptr, i64, i64 } { ptr @.str.1926, i64 5, i64 0 }) + %t613 = load i64, ptr %t610 + %t614 = add i64 %t613, 1 + call void @finch_arr_reserve(ptr %a603, i64 %t614, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t615 = load ptr, ptr %a603 + %t616 = getelementptr inbounds { ptr, i64, i64 }, ptr %t615, i64 %t613 + store { ptr, i64, i64 } %t612, ptr %t616 + store i64 %t614, ptr %t610 + %t617 = getelementptr inbounds { ptr, i64, i64 }, ptr %a602, i32 0, i32 1 + %t618 = load i64, ptr %a607 + call void @finch_str_from_int(ptr %a619, i64 %t618) + %t620 = load { ptr, i64, i64 }, ptr %a619 + store { ptr, i64, i64 } { ptr @.str.1927, i64 4, i64 0 }, ptr %a622 + store { ptr, i64, i64 } %t620, ptr %a623 + call void @finch_str_concat(ptr %a621, ptr %a622, ptr %a623) + store { ptr, i64, i64 } %t620, ptr %a624 + call void @finch_str_drop(ptr %a624) + %t625 = load { ptr, i64, i64 }, ptr %a621 + store { ptr, i64, i64 } %t625, ptr %a627 + store { ptr, i64, i64 } { ptr @.str.1928, i64 9, i64 0 }, ptr %a628 + call void @finch_str_concat(ptr %a626, ptr %a627, ptr %a628) + store { ptr, i64, i64 } %t625, ptr %a629 + call void @finch_str_drop(ptr %a629) + %t630 = load { ptr, i64, i64 }, ptr %a626 + %t631 = load i64, ptr %a607 + %t632 = load { ptr, i64, i64 }, ptr %a603 + %t633 = extractvalue { ptr, i64, i64 } %t632, 1 + %t634 = icmp uge i64 %t631, %t633 + br i1 %t634, label %range3021, label %inrange3022 +range3021: + call void @finch_panic_index(ptr @.str.1929, i64 1213, i64 %t631, i64 %t633) + unreachable +inrange3022: + %t635 = extractvalue { ptr, i64, i64 } %t632, 0 + %t636 = getelementptr inbounds { ptr, i64, i64 }, ptr %t635, i64 %t631 + %t637 = load { ptr, i64, i64 }, ptr %t636 + store { ptr, i64, i64 } %t630, ptr %a639 + store { ptr, i64, i64 } %t637, ptr %a640 + call void @finch_str_concat(ptr %a638, ptr %a639, ptr %a640) + store { ptr, i64, i64 } %t630, ptr %a641 + call void @finch_str_drop(ptr %a641) + %t642 = load { ptr, i64, i64 }, ptr %a638 + %t643 = load i64, ptr %t617 + %t644 = add i64 %t643, 1 + call void @finch_arr_reserve(ptr %a602, i64 %t644, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t645 = load ptr, ptr %a602 + %t646 = getelementptr inbounds { ptr, i64, i64 }, ptr %t645, i64 %t643 + store { ptr, i64, i64 } %t642, ptr %t646 + store i64 %t644, ptr %t617 + br label %for.step3019 +for.step3019: + %t647 = load i64, ptr %a607 + %t648 = add i64 %t647, 1 + store i64 %t648, ptr %a607 + br label %for.cond3017 +for.end3020: + %t649 = load ptr, ptr %a1 + %t650 = load { ptr, i64, i64 }, ptr %a595 + store { ptr, i64, i64 } { ptr @.str.1930, i64 11, i64 0 }, ptr %a652 + store { ptr, i64, i64 } %t650, ptr %a653 + call void @finch_str_concat(ptr %a651, ptr %a652, ptr %a653) + %t654 = load { ptr, i64, i64 }, ptr %a651 + store { ptr, i64, i64 } %t654, ptr %a656 + store { ptr, i64, i64 } { ptr @.str.1931, i64 9, i64 0 }, ptr %a657 + call void @finch_str_concat(ptr %a655, ptr %a656, ptr %a657) + store { ptr, i64, i64 } %t654, ptr %a658 + call void @finch_str_drop(ptr %a658) + %t659 = load { ptr, i64, i64 }, ptr %a655 + %t660 = load { ptr, i64, i64 }, ptr %a598 + store { ptr, i64, i64 } %t659, ptr %a662 + store { ptr, i64, i64 } %t660, ptr %a663 + call void @finch_str_concat(ptr %a661, ptr %a662, ptr %a663) + store { ptr, i64, i64 } %t659, ptr %a664 + call void @finch_str_drop(ptr %a664) + %t665 = load { ptr, i64, i64 }, ptr %a661 + store { ptr, i64, i64 } %t665, ptr %a667 + store { ptr, i64, i64 } { ptr @.str.1932, i64 3, i64 0 }, ptr %a668 + call void @finch_str_concat(ptr %a666, ptr %a667, ptr %a668) + store { ptr, i64, i64 } %t665, ptr %a669 + call void @finch_str_drop(ptr %a669) + %t670 = load { ptr, i64, i64 }, ptr %a666 + %t671 = getelementptr inbounds { ptr, i64, i64 }, ptr %a602, i32 0, i32 1 + store { ptr, i64, i64 } { ptr @.str.1933, i64 1, i64 0 }, ptr %a672 + call void @finch_str_join(ptr %a673, ptr %a602, ptr %a672) + %t674 = load { ptr, i64, i64 }, ptr %a673 + store { ptr, i64, i64 } %t670, ptr %a676 + store { ptr, i64, i64 } %t674, ptr %a677 + call void @finch_str_concat(ptr %a675, ptr %a676, ptr %a677) + store { ptr, i64, i64 } %t670, ptr %a678 + call void @finch_str_drop(ptr %a678) + store { ptr, i64, i64 } %t674, ptr %a679 + call void @finch_str_drop(ptr %a679) + %t680 = load { ptr, i64, i64 }, ptr %a675 + store { ptr, i64, i64 } %t680, ptr %a682 + store { ptr, i64, i64 } { ptr @.str.1934, i64 2, i64 0 }, ptr %a683 + call void @finch_str_concat(ptr %a681, ptr %a682, ptr %a683) + store { ptr, i64, i64 } %t680, ptr %a684 + call void @finch_str_drop(ptr %a684) + %t685 = load { ptr, i64, i64 }, ptr %a681 + call void @finch.gen.emit(ptr %t649, { ptr, i64, i64 } %t685) + store { ptr, i64, i64 } %t685, ptr %a686 + call void @finch_str_drop(ptr %a686) + %t687 = load ptr, ptr %a1 + %t688 = icmp eq ptr %t687, null + br i1 %t688, label %panic3023, label %ok3024 +panic3023: + call void @finch_panic(ptr @.str.1935, i64 1216, ptr @.str.1936) + unreachable +ok3024: + %t689 = getelementptr inbounds %S.gen.Gen, ptr %t687, i32 0, i32 9 + store i1 true, ptr %t689 + %t690 = getelementptr inbounds %S.gen.SumDef, ptr %a540, i32 0, i32 2 + %t691 = getelementptr inbounds { ptr, i64, i64 }, ptr %t690, i32 0, i32 1 + %t692 = load i64, ptr %t691 + store i64 0, ptr %a693 + br label %for.cond3025 +for.cond3025: + %t694 = load i64, ptr %a693 + %t695 = icmp slt i64 %t694, %t692 + br i1 %t695, label %for.body3026, label %for.end3028 +for.body3026: + %t696 = load ptr, ptr %a1 + %t697 = load i64, ptr %a693 + %t698 = load { ptr, i64, i64 }, ptr %a603 + %t699 = extractvalue { ptr, i64, i64 } %t698, 1 + %t700 = icmp uge i64 %t697, %t699 + br i1 %t700, label %range3029, label %inrange3030 +range3029: + call void @finch_panic_index(ptr @.str.1937, i64 1218, i64 %t697, i64 %t699) + unreachable +inrange3030: + %t701 = extractvalue { ptr, i64, i64 } %t698, 0 + %t702 = getelementptr inbounds { ptr, i64, i64 }, ptr %t701, i64 %t697 + %t703 = load { ptr, i64, i64 }, ptr %t702 + call void @finch.gen.label(ptr %t696, { ptr, i64, i64 } %t703) + %t704 = load ptr, ptr %a1 + %t705 = getelementptr inbounds %S.gen.SumDef, ptr %a540, i32 0, i32 2 + %t706 = load i64, ptr %a693 + %t707 = load { ptr, i64, i64 }, ptr %t705 + %t708 = extractvalue { ptr, i64, i64 } %t707, 1 + %t709 = icmp uge i64 %t706, %t708 + br i1 %t709, label %range3031, label %inrange3032 +range3031: + call void @finch_panic_index(ptr @.str.1939, i64 1219, i64 %t706, i64 %t708) + unreachable +inrange3032: + %t710 = extractvalue { ptr, i64, i64 } %t707, 0 + %t711 = getelementptr inbounds { ptr, i64, i64 }, ptr %t710, i64 %t706 + %t712 = load { ptr, i64, i64 }, ptr %t711 + call void @finch.gen.bufText(ptr %t704, { ptr, i64, i64 } { ptr @.str.1938, i64 4, i64 0 }, { ptr, i64, i64 } %t712) + %t713 = getelementptr inbounds %S.gen.SumDef, ptr %a540, i32 0, i32 3 + %t714 = load i64, ptr %a693 + %t715 = load { ptr, i64, i64 }, ptr %t713 + %t716 = extractvalue { ptr, i64, i64 } %t715, 1 + %t717 = icmp uge i64 %t714, %t716 + br i1 %t717, label %range3033, label %inrange3034 +range3033: + call void @finch_panic_index(ptr @.str.1940, i64 1220, i64 %t714, i64 %t716) + unreachable +inrange3034: + %t718 = extractvalue { ptr, i64, i64 } %t715, 0 + %t719 = getelementptr inbounds i64, ptr %t718, i64 %t714 + %t720 = load i64, ptr %t719 + %t721 = icmp sgt i64 %t720, 0 + br i1 %t721, label %then3035, label %endif3037 +then3035: + %t722 = load ptr, ptr %a1 + call void @finch.gen.bufText(ptr %t722, { ptr, i64, i64 } { ptr @.str.1941, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1942, i64 1, i64 0 }) + %t723 = getelementptr inbounds %S.gen.SumDef, ptr %a540, i32 0, i32 3 + %t724 = load i64, ptr %a693 + %t725 = load { ptr, i64, i64 }, ptr %t723 + %t726 = extractvalue { ptr, i64, i64 } %t725, 1 + %t727 = icmp uge i64 %t724, %t726 + br i1 %t727, label %range3038, label %inrange3039 +range3038: + call void @finch_panic_index(ptr @.str.1943, i64 1222, i64 %t724, i64 %t726) + unreachable +inrange3039: + %t728 = extractvalue { ptr, i64, i64 } %t725, 0 + %t729 = getelementptr inbounds i64, ptr %t728, i64 %t724 + %t730 = load i64, ptr %t729 + store i64 0, ptr %a731 + br label %for.cond3040 +for.cond3040: + %t732 = load i64, ptr %a731 + %t733 = icmp slt i64 %t732, %t730 + br i1 %t733, label %for.body3041, label %for.end3043 +for.body3041: + %t734 = load i64, ptr %a731 + %t735 = icmp sgt i64 %t734, 0 + br i1 %t735, label %then3044, label %endif3046 +then3044: + %t736 = load ptr, ptr %a1 + call void @finch.gen.bufText(ptr %t736, { ptr, i64, i64 } { ptr @.str.1944, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1945, i64 2, i64 0 }) + br label %endif3046 +endif3046: + %t737 = getelementptr inbounds %S.gen.SumDef, ptr %a540, i32 0, i32 4 + %t738 = load i64, ptr %a693 + %t739 = load { ptr, i64, i64 }, ptr %t737 + %t740 = extractvalue { ptr, i64, i64 } %t739, 1 + %t741 = icmp uge i64 %t738, %t740 + br i1 %t741, label %range3047, label %inrange3048 +range3047: + call void @finch_panic_index(ptr @.str.1946, i64 1226, i64 %t738, i64 %t740) + unreachable +inrange3048: + %t742 = extractvalue { ptr, i64, i64 } %t739, 0 + %t743 = getelementptr inbounds i64, ptr %t742, i64 %t738 + %t744 = load i64, ptr %t743 + %t745 = load i64, ptr %a731 + %t746 = add i64 %t744, %t745 + store i64 %t746, ptr %a747 + %t748 = load ptr, ptr %a1 + %t749 = load { ptr, i64, i64 }, ptr %a563 + store { ptr, i64, i64 } { ptr @.str.1947, i64 23, i64 0 }, ptr %a751 + store { ptr, i64, i64 } %t749, ptr %a752 + call void @finch_str_concat(ptr %a750, ptr %a751, ptr %a752) + %t753 = load { ptr, i64, i64 }, ptr %a750 + store { ptr, i64, i64 } %t753, ptr %a755 + store { ptr, i64, i64 } { ptr @.str.1948, i64 21, i64 0 }, ptr %a756 + call void @finch_str_concat(ptr %a754, ptr %a755, ptr %a756) + store { ptr, i64, i64 } %t753, ptr %a757 + call void @finch_str_drop(ptr %a757) + %t758 = load { ptr, i64, i64 }, ptr %a754 + %t759 = getelementptr inbounds %S.gen.StructDef, ptr %a559, i32 0, i32 3 + %t760 = load i64, ptr %a747 + %t761 = load { ptr, i64, i64 }, ptr %t759 + %t762 = extractvalue { ptr, i64, i64 } %t761, 1 + %t763 = icmp uge i64 %t760, %t762 + br i1 %t763, label %range3049, label %inrange3050 +range3049: + call void @finch_panic_index(ptr @.str.1949, i64 1227, i64 %t760, i64 %t762) + unreachable +inrange3050: + %t764 = extractvalue { ptr, i64, i64 } %t761, 0 + %t765 = getelementptr inbounds i64, ptr %t764, i64 %t760 + %t766 = load i64, ptr %t765 + call void @finch_str_from_int(ptr %a767, i64 %t766) + %t768 = load { ptr, i64, i64 }, ptr %a767 + store { ptr, i64, i64 } %t758, ptr %a770 + store { ptr, i64, i64 } %t768, ptr %a771 + call void @finch_str_concat(ptr %a769, ptr %a770, ptr %a771) + store { ptr, i64, i64 } %t758, ptr %a772 + call void @finch_str_drop(ptr %a772) + store { ptr, i64, i64 } %t768, ptr %a773 + call void @finch_str_drop(ptr %a773) + %t774 = load { ptr, i64, i64 }, ptr %a769 + %t775 = call { ptr, i64, i64 } @finch.gen.op(ptr %t748, { ptr, i64, i64 } %t774) + store { ptr, i64, i64 } %t774, ptr %a776 + call void @finch_str_drop(ptr %a776) + store { ptr, i64, i64 } %t775, ptr %a777 + %t778 = load ptr, ptr %a1 + %t779 = load ptr, ptr %a1 + %t780 = load ptr, ptr %a1 + %t781 = getelementptr inbounds %S.gen.StructDef, ptr %a559, i32 0, i32 12 + %t782 = load i64, ptr %a747 + %t783 = load { ptr, i64, i64 }, ptr %t781 + %t784 = extractvalue { ptr, i64, i64 } %t783, 1 + %t785 = icmp uge i64 %t782, %t784 + br i1 %t785, label %range3051, label %inrange3052 +range3051: + call void @finch_panic_index(ptr @.str.1951, i64 1228, i64 %t782, i64 %t784) + unreachable +inrange3052: + %t786 = extractvalue { ptr, i64, i64 } %t783, 0 + %t787 = getelementptr inbounds %S.ast.Type, ptr %t786, i64 %t782 + %t788 = load %S.ast.Type, ptr %t787 + %t789 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t780, %S.ast.Type %t788) + %t790 = load { ptr, i64, i64 }, ptr %a777 + %t791 = call { ptr, i64, i64 } @finch.gen.load(ptr %t779, { ptr, i64, i64 } %t789, { ptr, i64, i64 } %t790) + store { ptr, i64, i64 } %t789, ptr %a792 + call void @finch_str_drop(ptr %a792) + %t793 = getelementptr inbounds %S.gen.StructDef, ptr %a559, i32 0, i32 12 + %t794 = load i64, ptr %a747 + %t795 = load { ptr, i64, i64 }, ptr %t793 + %t796 = extractvalue { ptr, i64, i64 } %t795, 1 + %t797 = icmp uge i64 %t794, %t796 + br i1 %t797, label %range3053, label %inrange3054 +range3053: + call void @finch_panic_index(ptr @.str.1952, i64 1228, i64 %t794, i64 %t796) + unreachable +inrange3054: + %t798 = extractvalue { ptr, i64, i64 } %t795, 0 + %t799 = getelementptr inbounds %S.ast.Type, ptr %t798, i64 %t794 + %t800 = load %S.ast.Type, ptr %t799 + call void @finch.gen.emitFormat(ptr %t778, { ptr, i64, i64 } { ptr @.str.1950, i64 4, i64 0 }, { ptr, i64, i64 } %t791, %S.ast.Type %t800, i1 true) + store { ptr, i64, i64 } %t791, ptr %a801 + call void @finch_str_drop(ptr %a801) + call void @finch_str_drop(ptr %a777) + br label %for.step3042 +for.step3042: + %t802 = load i64, ptr %a731 + %t803 = add i64 %t802, 1 + store i64 %t803, ptr %a731 + br label %for.cond3040 +for.end3043: + %t804 = load ptr, ptr %a1 + call void @finch.gen.bufText(ptr %t804, { ptr, i64, i64 } { ptr @.str.1953, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1954, i64 1, i64 0 }) + br label %endif3037 +endif3037: + %t805 = load ptr, ptr %a1 + %t806 = load { ptr, i64, i64 }, ptr %a601 + call void @finch.gen.br(ptr %t805, { ptr, i64, i64 } %t806) + br label %for.step3027 +for.step3027: + %t807 = load i64, ptr %a693 + %t808 = add i64 %t807, 1 + store i64 %t808, ptr %a693 + br label %for.cond3025 +for.end3028: + %t809 = load ptr, ptr %a1 + %t810 = load { ptr, i64, i64 }, ptr %a598 + call void @finch.gen.label(ptr %t809, { ptr, i64, i64 } %t810) + %t811 = load ptr, ptr %a1 + %t812 = getelementptr inbounds %S.gen.SumDef, ptr %a540, i32 0, i32 1 + %t813 = load { ptr, i64, i64 }, ptr %t812 + store { ptr, i64, i64 } %t813, ptr %a815 + store { ptr, i64, i64 } { ptr @.str.1956, i64 3, i64 0 }, ptr %a816 + call void @finch_str_concat(ptr %a814, ptr %a815, ptr %a816) + %t817 = load { ptr, i64, i64 }, ptr %a814 + call void @finch.gen.bufText(ptr %t811, { ptr, i64, i64 } { ptr @.str.1955, i64 4, i64 0 }, { ptr, i64, i64 } %t817) + store { ptr, i64, i64 } %t817, ptr %a818 + call void @finch_str_drop(ptr %a818) + %t819 = load ptr, ptr %a1 + %t820 = load { ptr, i64, i64 }, ptr %a601 + call void @finch.gen.br(ptr %t819, { ptr, i64, i64 } %t820) + %t821 = load ptr, ptr %a1 + %t822 = load { ptr, i64, i64 }, ptr %a601 + call void @finch.gen.label(ptr %t821, { ptr, i64, i64 } %t822) + call void @finch.drop.arr_str(ptr %a603) + call void @finch.drop.arr_str(ptr %a602) + call void @finch_str_drop(ptr %a601) call void @finch_str_drop(ptr %a598) - store { ptr, i64, i64 } %t597, ptr %a599 - %t600 = load ptr, ptr %a1 - %t601 = load ptr, ptr %a1 - %t602 = load ptr, ptr %a1 - %t603 = getelementptr inbounds %S.gen.StructDef, ptr %a526, i32 0, i32 12 - %t604 = load i64, ptr %a542 - %t605 = load { ptr, i64, i64 }, ptr %t603 - %t606 = extractvalue { ptr, i64, i64 } %t605, 1 - %t607 = icmp uge i64 %t604, %t606 - br i1 %t607, label %range2956, label %inrange2957 -range2956: - call void @finch_panic_index(ptr @.str.1899, i64 1186, i64 %t604, i64 %t606) + call void @finch_str_drop(ptr %a595) + call void @finch_str_drop(ptr %a563) + call void @finch.drop.S_gen_StructDef(ptr %a559) + call void @finch.drop.S_gen_SumDef(ptr %a540) + br label %endif3006 +else3005: + %t823 = load ptr, ptr %a1 + %t824 = icmp eq ptr %t823, null + br i1 %t824, label %panic3055, label %ok3056 +panic3055: + call void @finch_panic(ptr @.str.1957, i64 1239, ptr @.str.1958) unreachable -inrange2957: - %t608 = extractvalue { ptr, i64, i64 } %t605, 0 - %t609 = getelementptr inbounds %S.ast.Type, ptr %t608, i64 %t604 - %t610 = load %S.ast.Type, ptr %t609 - %t611 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t602, %S.ast.Type %t610) - %t612 = load { ptr, i64, i64 }, ptr %a599 - %t613 = call { ptr, i64, i64 } @finch.gen.load(ptr %t601, { ptr, i64, i64 } %t611, { ptr, i64, i64 } %t612) - store { ptr, i64, i64 } %t611, ptr %a614 - call void @finch_str_drop(ptr %a614) - %t615 = getelementptr inbounds %S.gen.StructDef, ptr %a526, i32 0, i32 12 - %t616 = load i64, ptr %a542 - %t617 = load { ptr, i64, i64 }, ptr %t615 - %t618 = extractvalue { ptr, i64, i64 } %t617, 1 - %t619 = icmp uge i64 %t616, %t618 - br i1 %t619, label %range2958, label %inrange2959 -range2958: - call void @finch_panic_index(ptr @.str.1900, i64 1186, i64 %t616, i64 %t618) +ok3056: + %t825 = getelementptr inbounds %S.gen.Gen, ptr %t823, i32 0, i32 16 + %t826 = load ptr, ptr %a1 + %t827 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 + %t828 = load { ptr, i64, i64 }, ptr %t827 + %t829 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 + %t830 = load { ptr, i64, i64 }, ptr %t829 + %t831 = call i64 @finch.gen.findStruct(ptr %t826, { ptr, i64, i64 } %t828, { ptr, i64, i64 } %t830) + %t832 = load { ptr, i64, i64 }, ptr %t825 + %t833 = extractvalue { ptr, i64, i64 } %t832, 1 + %t834 = icmp uge i64 %t831, %t833 + br i1 %t834, label %range3057, label %inrange3058 +range3057: + call void @finch_panic_index(ptr @.str.1959, i64 1239, i64 %t831, i64 %t833) unreachable -inrange2959: - %t620 = extractvalue { ptr, i64, i64 } %t617, 0 - %t621 = getelementptr inbounds %S.ast.Type, ptr %t620, i64 %t616 - %t622 = load %S.ast.Type, ptr %t621 - call void @finch.gen.emitFormat(ptr %t600, { ptr, i64, i64 } { ptr @.str.1898, i64 4, i64 0 }, { ptr, i64, i64 } %t613, %S.ast.Type %t622, i1 true) - store { ptr, i64, i64 } %t613, ptr %a623 - call void @finch_str_drop(ptr %a623) - call void @finch_str_drop(ptr %a599) - call void @finch_str_drop(ptr %a545) - br label %for.step2947 -for.step2947: - %t624 = load i64, ptr %a542 - %t625 = add i64 %t624, 1 - store i64 %t625, ptr %a542 - br label %for.cond2945 -for.end2948: - %t626 = load ptr, ptr %a1 - call void @finch.gen.bufText(ptr %t626, { ptr, i64, i64 } { ptr @.str.1901, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1902, i64 1, i64 0 }) - call void @finch_str_drop(ptr %a530) - call void @finch.drop.S_gen_StructDef(ptr %a526) - br label %endif2930 -endif2930: - br label %endif2905 -endif2905: - br label %endif2896 -endif2896: - %t627 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t627, { ptr, i64, i64 } { ptr @.str.1903, i64 8, i64 0 }) - %t628 = load ptr, ptr %a1 - %t629 = load %S.gen.Saved, ptr %a32 - %t630 = load { ptr, i64, i64 }, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.1904, i64 21, i64 0 }, ptr %a632 - store { ptr, i64, i64 } %t630, ptr %a633 - call void @finch_str_concat(ptr %a631, ptr %a632, ptr %a633) - %t634 = load { ptr, i64, i64 }, ptr %a631 - store { ptr, i64, i64 } %t634, ptr %a636 - store { ptr, i64, i64 } { ptr @.str.1905, i64 18, i64 0 }, ptr %a637 - call void @finch_str_concat(ptr %a635, ptr %a636, ptr %a637) - store { ptr, i64, i64 } %t634, ptr %a638 - call void @finch_str_drop(ptr %a638) - %t639 = load { ptr, i64, i64 }, ptr %a635 - call void @finch.gen.endHelper(ptr %t628, %S.gen.Saved %t629, { ptr, i64, i64 } %t639) - store { ptr, i64, i64 } %t639, ptr %a640 - call void @finch_str_drop(ptr %a640) - %t641 = load { ptr, i64, i64 }, ptr %a10 +inrange3058: + %t835 = extractvalue { ptr, i64, i64 } %t832, 0 + %t836 = getelementptr inbounds %S.gen.StructDef, ptr %t835, i64 %t831 + %t837 = load %S.gen.StructDef, ptr %t836 + store %S.gen.StructDef %t837, ptr %a838 + call void @finch.copy.S_gen_StructDef(ptr %a839, ptr %a838) + %t840 = load %S.gen.StructDef, ptr %a839 + store %S.gen.StructDef %t840, ptr %a841 + %t842 = load ptr, ptr %a1 + %t843 = load %S.ast.Type, ptr %a2 + %t844 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t842, %S.ast.Type %t843) + store { ptr, i64, i64 } %t844, ptr %a845 + %t846 = load ptr, ptr %a1 + %t847 = getelementptr inbounds %S.gen.StructDef, ptr %a841, i32 0, i32 1 + %t848 = load { ptr, i64, i64 }, ptr %t847 + store { ptr, i64, i64 } %t848, ptr %a850 + store { ptr, i64, i64 } { ptr @.str.1961, i64 1, i64 0 }, ptr %a851 + call void @finch_str_concat(ptr %a849, ptr %a850, ptr %a851) + %t852 = load { ptr, i64, i64 }, ptr %a849 + call void @finch.gen.bufText(ptr %t846, { ptr, i64, i64 } { ptr @.str.1960, i64 4, i64 0 }, { ptr, i64, i64 } %t852) + store { ptr, i64, i64 } %t852, ptr %a853 + call void @finch_str_drop(ptr %a853) + %t854 = getelementptr inbounds %S.gen.StructDef, ptr %a841, i32 0, i32 12 + %t855 = getelementptr inbounds { ptr, i64, i64 }, ptr %t854, i32 0, i32 1 + %t856 = load i64, ptr %t855 + store i64 0, ptr %a857 + br label %for.cond3059 +for.cond3059: + %t858 = load i64, ptr %a857 + %t859 = icmp slt i64 %t858, %t856 + br i1 %t859, label %for.body3060, label %for.end3062 +for.body3060: + store { ptr, i64, i64 } { ptr @.str.1962, i64 2, i64 0 }, ptr %a860 + %t861 = load i64, ptr %a857 + %t862 = icmp eq i64 %t861, 0 + br i1 %t862, label %then3063, label %endif3065 +then3063: + %t863 = load { ptr, i64, i64 }, ptr %a860 + store { ptr, i64, i64 } { ptr @.str.1963, i64 0, i64 0 }, ptr %a860 + store { ptr, i64, i64 } %t863, ptr %a864 + call void @finch_str_drop(ptr %a864) + br label %endif3065 +endif3065: + %t865 = load ptr, ptr %a1 + %t866 = load { ptr, i64, i64 }, ptr %a860 + %t867 = getelementptr inbounds %S.gen.StructDef, ptr %a841, i32 0, i32 11 + %t868 = load i64, ptr %a857 + %t869 = load { ptr, i64, i64 }, ptr %t867 + %t870 = extractvalue { ptr, i64, i64 } %t869, 1 + %t871 = icmp uge i64 %t868, %t870 + br i1 %t871, label %range3066, label %inrange3067 +range3066: + call void @finch_panic_index(ptr @.str.1965, i64 1247, i64 %t868, i64 %t870) + unreachable +inrange3067: + %t872 = extractvalue { ptr, i64, i64 } %t869, 0 + %t873 = getelementptr inbounds { ptr, i64, i64 }, ptr %t872, i64 %t868 + %t874 = load { ptr, i64, i64 }, ptr %t873 + store { ptr, i64, i64 } %t866, ptr %a876 + store { ptr, i64, i64 } %t874, ptr %a877 + call void @finch_str_concat(ptr %a875, ptr %a876, ptr %a877) + %t878 = load { ptr, i64, i64 }, ptr %a875 + store { ptr, i64, i64 } %t878, ptr %a880 + store { ptr, i64, i64 } { ptr @.str.1966, i64 2, i64 0 }, ptr %a881 + call void @finch_str_concat(ptr %a879, ptr %a880, ptr %a881) + store { ptr, i64, i64 } %t878, ptr %a882 + call void @finch_str_drop(ptr %a882) + %t883 = load { ptr, i64, i64 }, ptr %a879 + call void @finch.gen.bufText(ptr %t865, { ptr, i64, i64 } { ptr @.str.1964, i64 4, i64 0 }, { ptr, i64, i64 } %t883) + store { ptr, i64, i64 } %t883, ptr %a884 + call void @finch_str_drop(ptr %a884) + %t885 = load ptr, ptr %a1 + %t886 = load { ptr, i64, i64 }, ptr %a845 + store { ptr, i64, i64 } { ptr @.str.1967, i64 23, i64 0 }, ptr %a888 + store { ptr, i64, i64 } %t886, ptr %a889 + call void @finch_str_concat(ptr %a887, ptr %a888, ptr %a889) + %t890 = load { ptr, i64, i64 }, ptr %a887 + store { ptr, i64, i64 } %t890, ptr %a892 + store { ptr, i64, i64 } { ptr @.str.1968, i64 21, i64 0 }, ptr %a893 + call void @finch_str_concat(ptr %a891, ptr %a892, ptr %a893) + store { ptr, i64, i64 } %t890, ptr %a894 + call void @finch_str_drop(ptr %a894) + %t895 = load { ptr, i64, i64 }, ptr %a891 + %t896 = getelementptr inbounds %S.gen.StructDef, ptr %a841, i32 0, i32 3 + %t897 = load i64, ptr %a857 + %t898 = load { ptr, i64, i64 }, ptr %t896 + %t899 = extractvalue { ptr, i64, i64 } %t898, 1 + %t900 = icmp uge i64 %t897, %t899 + br i1 %t900, label %range3068, label %inrange3069 +range3068: + call void @finch_panic_index(ptr @.str.1969, i64 1248, i64 %t897, i64 %t899) + unreachable +inrange3069: + %t901 = extractvalue { ptr, i64, i64 } %t898, 0 + %t902 = getelementptr inbounds i64, ptr %t901, i64 %t897 + %t903 = load i64, ptr %t902 + call void @finch_str_from_int(ptr %a904, i64 %t903) + %t905 = load { ptr, i64, i64 }, ptr %a904 + store { ptr, i64, i64 } %t895, ptr %a907 + store { ptr, i64, i64 } %t905, ptr %a908 + call void @finch_str_concat(ptr %a906, ptr %a907, ptr %a908) + store { ptr, i64, i64 } %t895, ptr %a909 + call void @finch_str_drop(ptr %a909) + store { ptr, i64, i64 } %t905, ptr %a910 + call void @finch_str_drop(ptr %a910) + %t911 = load { ptr, i64, i64 }, ptr %a906 + %t912 = call { ptr, i64, i64 } @finch.gen.op(ptr %t885, { ptr, i64, i64 } %t911) + store { ptr, i64, i64 } %t911, ptr %a913 + call void @finch_str_drop(ptr %a913) + store { ptr, i64, i64 } %t912, ptr %a914 + %t915 = load ptr, ptr %a1 + %t916 = load ptr, ptr %a1 + %t917 = load ptr, ptr %a1 + %t918 = getelementptr inbounds %S.gen.StructDef, ptr %a841, i32 0, i32 12 + %t919 = load i64, ptr %a857 + %t920 = load { ptr, i64, i64 }, ptr %t918 + %t921 = extractvalue { ptr, i64, i64 } %t920, 1 + %t922 = icmp uge i64 %t919, %t921 + br i1 %t922, label %range3070, label %inrange3071 +range3070: + call void @finch_panic_index(ptr @.str.1971, i64 1249, i64 %t919, i64 %t921) + unreachable +inrange3071: + %t923 = extractvalue { ptr, i64, i64 } %t920, 0 + %t924 = getelementptr inbounds %S.ast.Type, ptr %t923, i64 %t919 + %t925 = load %S.ast.Type, ptr %t924 + %t926 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t917, %S.ast.Type %t925) + %t927 = load { ptr, i64, i64 }, ptr %a914 + %t928 = call { ptr, i64, i64 } @finch.gen.load(ptr %t916, { ptr, i64, i64 } %t926, { ptr, i64, i64 } %t927) + store { ptr, i64, i64 } %t926, ptr %a929 + call void @finch_str_drop(ptr %a929) + %t930 = getelementptr inbounds %S.gen.StructDef, ptr %a841, i32 0, i32 12 + %t931 = load i64, ptr %a857 + %t932 = load { ptr, i64, i64 }, ptr %t930 + %t933 = extractvalue { ptr, i64, i64 } %t932, 1 + %t934 = icmp uge i64 %t931, %t933 + br i1 %t934, label %range3072, label %inrange3073 +range3072: + call void @finch_panic_index(ptr @.str.1972, i64 1249, i64 %t931, i64 %t933) + unreachable +inrange3073: + %t935 = extractvalue { ptr, i64, i64 } %t932, 0 + %t936 = getelementptr inbounds %S.ast.Type, ptr %t935, i64 %t931 + %t937 = load %S.ast.Type, ptr %t936 + call void @finch.gen.emitFormat(ptr %t915, { ptr, i64, i64 } { ptr @.str.1970, i64 4, i64 0 }, { ptr, i64, i64 } %t928, %S.ast.Type %t937, i1 true) + store { ptr, i64, i64 } %t928, ptr %a938 + call void @finch_str_drop(ptr %a938) + call void @finch_str_drop(ptr %a914) + call void @finch_str_drop(ptr %a860) + br label %for.step3061 +for.step3061: + %t939 = load i64, ptr %a857 + %t940 = add i64 %t939, 1 + store i64 %t940, ptr %a857 + br label %for.cond3059 +for.end3062: + %t941 = load ptr, ptr %a1 + call void @finch.gen.bufText(ptr %t941, { ptr, i64, i64 } { ptr @.str.1973, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1974, i64 1, i64 0 }) + call void @finch_str_drop(ptr %a845) + call void @finch.drop.S_gen_StructDef(ptr %a841) + br label %endif3006 +endif3006: + br label %endif2989 +endif2989: + br label %endif2964 +endif2964: + br label %endif2955 +endif2955: + %t942 = load ptr, ptr %a1 + call void @finch.gen.emit(ptr %t942, { ptr, i64, i64 } { ptr @.str.1975, i64 8, i64 0 }) + %t943 = load ptr, ptr %a1 + %t944 = load %S.gen.Saved, ptr %a32 + %t945 = load { ptr, i64, i64 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.1976, i64 21, i64 0 }, ptr %a947 + store { ptr, i64, i64 } %t945, ptr %a948 + call void @finch_str_concat(ptr %a946, ptr %a947, ptr %a948) + %t949 = load { ptr, i64, i64 }, ptr %a946 + store { ptr, i64, i64 } %t949, ptr %a951 + store { ptr, i64, i64 } { ptr @.str.1977, i64 18, i64 0 }, ptr %a952 + call void @finch_str_concat(ptr %a950, ptr %a951, ptr %a952) + store { ptr, i64, i64 } %t949, ptr %a953 + call void @finch_str_drop(ptr %a953) + %t954 = load { ptr, i64, i64 }, ptr %a950 + call void @finch.gen.endHelper(ptr %t943, %S.gen.Saved %t944, { ptr, i64, i64 } %t954) + store { ptr, i64, i64 } %t954, ptr %a955 + call void @finch_str_drop(ptr %a955) + %t956 = load { ptr, i64, i64 }, ptr %a10 call void @finch.drop.S_gen_Saved(ptr %a32) - ret { ptr, i64, i64 } %t641 + ret { ptr, i64, i64 } %t956 } define internal { ptr, i64, i64 } @finch.gen.intCast(ptr %p0, { ptr, i64, i64 } %p1, %S.ast.Type %p2, %S.ast.Type %p3) { @@ -33645,31 +35017,31 @@ entry: %t11 = load i64, ptr %a7 %t12 = load i64, ptr %a10 %t13 = icmp eq i64 %t11, %t12 - br i1 %t13, label %then2960, label %endif2962 -then2960: + br i1 %t13, label %then3074, label %endif3076 +then3074: %t14 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t14, ptr %a15 call void @finch_str_copy(ptr %a16, ptr %a15) %t17 = load { ptr, i64, i64 }, ptr %a16 ret { ptr, i64, i64 } %t17 -endif2962: +endif3076: %t18 = load i64, ptr %a10 %t19 = load i64, ptr %a7 %t20 = icmp slt i64 %t18, %t19 - br i1 %t20, label %then2963, label %endif2965 -then2963: + br i1 %t20, label %then3077, label %endif3079 +then3077: %t21 = load ptr, ptr %a1 %t22 = load ptr, ptr %a1 %t23 = load %S.ast.Type, ptr %a3 %t24 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t22, %S.ast.Type %t23) - store { ptr, i64, i64 } { ptr @.str.1906, i64 6, i64 0 }, ptr %a26 + store { ptr, i64, i64 } { ptr @.str.1978, i64 6, i64 0 }, ptr %a26 store { ptr, i64, i64 } %t24, ptr %a27 call void @finch_str_concat(ptr %a25, ptr %a26, ptr %a27) store { ptr, i64, i64 } %t24, ptr %a28 call void @finch_str_drop(ptr %a28) %t29 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t29, ptr %a31 - store { ptr, i64, i64 } { ptr @.str.1907, i64 1, i64 0 }, ptr %a32 + store { ptr, i64, i64 } { ptr @.str.1979, i64 1, i64 0 }, ptr %a32 call void @finch_str_concat(ptr %a30, ptr %a31, ptr %a32) store { ptr, i64, i64 } %t29, ptr %a33 call void @finch_str_drop(ptr %a33) @@ -33682,7 +35054,7 @@ then2963: call void @finch_str_drop(ptr %a39) %t40 = load { ptr, i64, i64 }, ptr %a36 store { ptr, i64, i64 } %t40, ptr %a42 - store { ptr, i64, i64 } { ptr @.str.1908, i64 4, i64 0 }, ptr %a43 + store { ptr, i64, i64 } { ptr @.str.1980, i64 4, i64 0 }, ptr %a43 call void @finch_str_concat(ptr %a41, ptr %a42, ptr %a43) store { ptr, i64, i64 } %t40, ptr %a44 call void @finch_str_drop(ptr %a44) @@ -33702,23 +35074,23 @@ then2963: store { ptr, i64, i64 } %t54, ptr %a56 call void @finch_str_drop(ptr %a56) ret { ptr, i64, i64 } %t55 -endif2965: +endif3079: %t57 = load %S.ast.Type, ptr %a3 %t58 = call i1 @finch.gen.isSigned(%S.ast.Type %t57) - br i1 %t58, label %then2966, label %endif2968 -then2966: + br i1 %t58, label %then3080, label %endif3082 +then3080: %t59 = load ptr, ptr %a1 %t60 = load ptr, ptr %a1 %t61 = load %S.ast.Type, ptr %a3 %t62 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t60, %S.ast.Type %t61) - store { ptr, i64, i64 } { ptr @.str.1909, i64 5, i64 0 }, ptr %a64 + store { ptr, i64, i64 } { ptr @.str.1981, i64 5, i64 0 }, ptr %a64 store { ptr, i64, i64 } %t62, ptr %a65 call void @finch_str_concat(ptr %a63, ptr %a64, ptr %a65) store { ptr, i64, i64 } %t62, ptr %a66 call void @finch_str_drop(ptr %a66) %t67 = load { ptr, i64, i64 }, ptr %a63 store { ptr, i64, i64 } %t67, ptr %a69 - store { ptr, i64, i64 } { ptr @.str.1910, i64 1, i64 0 }, ptr %a70 + store { ptr, i64, i64 } { ptr @.str.1982, i64 1, i64 0 }, ptr %a70 call void @finch_str_concat(ptr %a68, ptr %a69, ptr %a70) store { ptr, i64, i64 } %t67, ptr %a71 call void @finch_str_drop(ptr %a71) @@ -33731,7 +35103,7 @@ then2966: call void @finch_str_drop(ptr %a77) %t78 = load { ptr, i64, i64 }, ptr %a74 store { ptr, i64, i64 } %t78, ptr %a80 - store { ptr, i64, i64 } { ptr @.str.1911, i64 4, i64 0 }, ptr %a81 + store { ptr, i64, i64 } { ptr @.str.1983, i64 4, i64 0 }, ptr %a81 call void @finch_str_concat(ptr %a79, ptr %a80, ptr %a81) store { ptr, i64, i64 } %t78, ptr %a82 call void @finch_str_drop(ptr %a82) @@ -33751,19 +35123,19 @@ then2966: store { ptr, i64, i64 } %t92, ptr %a94 call void @finch_str_drop(ptr %a94) ret { ptr, i64, i64 } %t93 -endif2968: +endif3082: %t95 = load ptr, ptr %a1 %t96 = load ptr, ptr %a1 %t97 = load %S.ast.Type, ptr %a3 %t98 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t96, %S.ast.Type %t97) - store { ptr, i64, i64 } { ptr @.str.1912, i64 5, i64 0 }, ptr %a100 + store { ptr, i64, i64 } { ptr @.str.1984, i64 5, i64 0 }, ptr %a100 store { ptr, i64, i64 } %t98, ptr %a101 call void @finch_str_concat(ptr %a99, ptr %a100, ptr %a101) store { ptr, i64, i64 } %t98, ptr %a102 call void @finch_str_drop(ptr %a102) %t103 = load { ptr, i64, i64 }, ptr %a99 store { ptr, i64, i64 } %t103, ptr %a105 - store { ptr, i64, i64 } { ptr @.str.1913, i64 1, i64 0 }, ptr %a106 + store { ptr, i64, i64 } { ptr @.str.1985, i64 1, i64 0 }, ptr %a106 call void @finch_str_concat(ptr %a104, ptr %a105, ptr %a106) store { ptr, i64, i64 } %t103, ptr %a107 call void @finch_str_drop(ptr %a107) @@ -33776,7 +35148,7 @@ endif2968: call void @finch_str_drop(ptr %a113) %t114 = load { ptr, i64, i64 }, ptr %a110 store { ptr, i64, i64 } %t114, ptr %a116 - store { ptr, i64, i64 } { ptr @.str.1914, i64 4, i64 0 }, ptr %a117 + store { ptr, i64, i64 } { ptr @.str.1986, i64 4, i64 0 }, ptr %a117 call void @finch_str_concat(ptr %a115, ptr %a116, ptr %a117) store { ptr, i64, i64 } %t114, ptr %a118 call void @finch_str_drop(ptr %a118) @@ -33864,33 +35236,33 @@ entry: store { ptr, i64, i64 } %t8, ptr %a10 %t11 = call i32 @finch_str_eq(ptr %a9, ptr %a10) %t12 = icmp ne i32 %t11, 0 - br i1 %t12, label %then2969, label %endif2971 -then2969: + br i1 %t12, label %then3083, label %endif3085 +then3083: %t13 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t13, ptr %a14 call void @finch_str_copy(ptr %a15, ptr %a14) %t16 = load { ptr, i64, i64 }, ptr %a15 ret { ptr, i64, i64 } %t16 -endif2971: +endif3085: %t17 = load %S.ast.Type, ptr %a4 %t18 = call i64 @finch.gen.bitsOf(%S.ast.Type %t17) %t19 = load %S.ast.Type, ptr %a3 %t20 = call i64 @finch.gen.bitsOf(%S.ast.Type %t19) %t21 = icmp sgt i64 %t18, %t20 - br i1 %t21, label %then2972, label %endif2974 -then2972: + br i1 %t21, label %then3086, label %endif3088 +then3086: %t22 = load ptr, ptr %a1 %t23 = load ptr, ptr %a1 %t24 = load %S.ast.Type, ptr %a3 %t25 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t23, %S.ast.Type %t24) - store { ptr, i64, i64 } { ptr @.str.1915, i64 6, i64 0 }, ptr %a27 + store { ptr, i64, i64 } { ptr @.str.1987, i64 6, i64 0 }, ptr %a27 store { ptr, i64, i64 } %t25, ptr %a28 call void @finch_str_concat(ptr %a26, ptr %a27, ptr %a28) store { ptr, i64, i64 } %t25, ptr %a29 call void @finch_str_drop(ptr %a29) %t30 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t30, ptr %a32 - store { ptr, i64, i64 } { ptr @.str.1916, i64 1, i64 0 }, ptr %a33 + store { ptr, i64, i64 } { ptr @.str.1988, i64 1, i64 0 }, ptr %a33 call void @finch_str_concat(ptr %a31, ptr %a32, ptr %a33) store { ptr, i64, i64 } %t30, ptr %a34 call void @finch_str_drop(ptr %a34) @@ -33903,7 +35275,7 @@ then2972: call void @finch_str_drop(ptr %a40) %t41 = load { ptr, i64, i64 }, ptr %a37 store { ptr, i64, i64 } %t41, ptr %a43 - store { ptr, i64, i64 } { ptr @.str.1917, i64 4, i64 0 }, ptr %a44 + store { ptr, i64, i64 } { ptr @.str.1989, i64 4, i64 0 }, ptr %a44 call void @finch_str_concat(ptr %a42, ptr %a43, ptr %a44) store { ptr, i64, i64 } %t41, ptr %a45 call void @finch_str_drop(ptr %a45) @@ -33923,19 +35295,19 @@ then2972: store { ptr, i64, i64 } %t55, ptr %a57 call void @finch_str_drop(ptr %a57) ret { ptr, i64, i64 } %t56 -endif2974: +endif3088: %t58 = load ptr, ptr %a1 %t59 = load ptr, ptr %a1 %t60 = load %S.ast.Type, ptr %a3 %t61 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t59, %S.ast.Type %t60) - store { ptr, i64, i64 } { ptr @.str.1918, i64 8, i64 0 }, ptr %a63 + store { ptr, i64, i64 } { ptr @.str.1990, i64 8, i64 0 }, ptr %a63 store { ptr, i64, i64 } %t61, ptr %a64 call void @finch_str_concat(ptr %a62, ptr %a63, ptr %a64) store { ptr, i64, i64 } %t61, ptr %a65 call void @finch_str_drop(ptr %a65) %t66 = load { ptr, i64, i64 }, ptr %a62 store { ptr, i64, i64 } %t66, ptr %a68 - store { ptr, i64, i64 } { ptr @.str.1919, i64 1, i64 0 }, ptr %a69 + store { ptr, i64, i64 } { ptr @.str.1991, i64 1, i64 0 }, ptr %a69 call void @finch_str_concat(ptr %a67, ptr %a68, ptr %a69) store { ptr, i64, i64 } %t66, ptr %a70 call void @finch_str_drop(ptr %a70) @@ -33948,7 +35320,7 @@ endif2974: call void @finch_str_drop(ptr %a76) %t77 = load { ptr, i64, i64 }, ptr %a73 store { ptr, i64, i64 } %t77, ptr %a79 - store { ptr, i64, i64 } { ptr @.str.1920, i64 4, i64 0 }, ptr %a80 + store { ptr, i64, i64 } { ptr @.str.1992, i64 4, i64 0 }, ptr %a80 call void @finch_str_concat(ptr %a78, ptr %a79, ptr %a80) store { ptr, i64, i64 } %t77, ptr %a81 call void @finch_str_drop(ptr %a81) @@ -34026,20 +35398,20 @@ entry: store %S.ast.Type %p3, ptr %a4 %t5 = load %S.ast.Type, ptr %a3 %t6 = call i1 @finch.gen.isSigned(%S.ast.Type %t5) - br i1 %t6, label %then2975, label %endif2977 -then2975: + br i1 %t6, label %then3089, label %endif3091 +then3089: %t7 = load ptr, ptr %a1 %t8 = load ptr, ptr %a1 %t9 = load %S.ast.Type, ptr %a3 %t10 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t8, %S.ast.Type %t9) - store { ptr, i64, i64 } { ptr @.str.1921, i64 7, i64 0 }, ptr %a12 + store { ptr, i64, i64 } { ptr @.str.1993, i64 7, i64 0 }, ptr %a12 store { ptr, i64, i64 } %t10, ptr %a13 call void @finch_str_concat(ptr %a11, ptr %a12, ptr %a13) store { ptr, i64, i64 } %t10, ptr %a14 call void @finch_str_drop(ptr %a14) %t15 = load { ptr, i64, i64 }, ptr %a11 store { ptr, i64, i64 } %t15, ptr %a17 - store { ptr, i64, i64 } { ptr @.str.1922, i64 1, i64 0 }, ptr %a18 + store { ptr, i64, i64 } { ptr @.str.1994, i64 1, i64 0 }, ptr %a18 call void @finch_str_concat(ptr %a16, ptr %a17, ptr %a18) store { ptr, i64, i64 } %t15, ptr %a19 call void @finch_str_drop(ptr %a19) @@ -34052,7 +35424,7 @@ then2975: call void @finch_str_drop(ptr %a25) %t26 = load { ptr, i64, i64 }, ptr %a22 store { ptr, i64, i64 } %t26, ptr %a28 - store { ptr, i64, i64 } { ptr @.str.1923, i64 4, i64 0 }, ptr %a29 + store { ptr, i64, i64 } { ptr @.str.1995, i64 4, i64 0 }, ptr %a29 call void @finch_str_concat(ptr %a27, ptr %a28, ptr %a29) store { ptr, i64, i64 } %t26, ptr %a30 call void @finch_str_drop(ptr %a30) @@ -34072,19 +35444,19 @@ then2975: store { ptr, i64, i64 } %t40, ptr %a42 call void @finch_str_drop(ptr %a42) ret { ptr, i64, i64 } %t41 -endif2977: +endif3091: %t43 = load ptr, ptr %a1 %t44 = load ptr, ptr %a1 %t45 = load %S.ast.Type, ptr %a3 %t46 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t44, %S.ast.Type %t45) - store { ptr, i64, i64 } { ptr @.str.1924, i64 7, i64 0 }, ptr %a48 + store { ptr, i64, i64 } { ptr @.str.1996, i64 7, i64 0 }, ptr %a48 store { ptr, i64, i64 } %t46, ptr %a49 call void @finch_str_concat(ptr %a47, ptr %a48, ptr %a49) store { ptr, i64, i64 } %t46, ptr %a50 call void @finch_str_drop(ptr %a50) %t51 = load { ptr, i64, i64 }, ptr %a47 store { ptr, i64, i64 } %t51, ptr %a53 - store { ptr, i64, i64 } { ptr @.str.1925, i64 1, i64 0 }, ptr %a54 + store { ptr, i64, i64 } { ptr @.str.1997, i64 1, i64 0 }, ptr %a54 call void @finch_str_concat(ptr %a52, ptr %a53, ptr %a54) store { ptr, i64, i64 } %t51, ptr %a55 call void @finch_str_drop(ptr %a55) @@ -34097,7 +35469,7 @@ endif2977: call void @finch_str_drop(ptr %a61) %t62 = load { ptr, i64, i64 }, ptr %a58 store { ptr, i64, i64 } %t62, ptr %a64 - store { ptr, i64, i64 } { ptr @.str.1926, i64 4, i64 0 }, ptr %a65 + store { ptr, i64, i64 } { ptr @.str.1998, i64 4, i64 0 }, ptr %a65 call void @finch_str_concat(ptr %a63, ptr %a64, ptr %a65) store { ptr, i64, i64 } %t62, ptr %a66 call void @finch_str_drop(ptr %a66) @@ -34256,97 +35628,97 @@ entry: %t7 = load %S.ast.Type, ptr %t6 %t8 = load %S.ast.Type, ptr %a3 %t9 = call i1 @finch.ast.same(%S.ast.Type %t7, %S.ast.Type %t8) - br i1 %t9, label %then2978, label %endif2980 -then2978: + br i1 %t9, label %then3092, label %endif3094 +then3092: %t10 = load %S.gen.Val, ptr %a2 store %S.gen.Val %t10, ptr %a11 call void @finch.copy.S_gen_Val(ptr %a12, ptr %a11) %t13 = load %S.gen.Val, ptr %a12 ret %S.gen.Val %t13 -endif2980: +endif3094: %t14 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t15 = getelementptr inbounds %S.ast.Type, ptr %t14, i32 0, i32 0 %t16 = load { ptr, i64, i64 }, ptr %t15 store { ptr, i64, i64 } %t16, ptr %a17 - store { ptr, i64, i64 } { ptr @.str.1927, i64 4, i64 0 }, ptr %a18 + store { ptr, i64, i64 } { ptr @.str.1999, i64 4, i64 0 }, ptr %a18 %t19 = call i32 @finch_str_eq(ptr %a17, ptr %a18) %t20 = icmp ne i32 %t19, 0 - br label %logic.from2981 -logic.from2981: - br i1 %t20, label %logic.rhs2982, label %logic.end2983 -logic.rhs2982: + br label %logic.from3095 +logic.from3095: + br i1 %t20, label %logic.rhs3096, label %logic.end3097 +logic.rhs3096: %t21 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t22 = load { ptr, i64, i64 }, ptr %t21 store { ptr, i64, i64 } %t22, ptr %a23 - store { ptr, i64, i64 } { ptr @.str.1928, i64 3, i64 0 }, ptr %a24 + store { ptr, i64, i64 } { ptr @.str.2000, i64 3, i64 0 }, ptr %a24 %t25 = call i32 @finch_str_eq(ptr %a23, ptr %a24) %t26 = icmp ne i32 %t25, 0 - br label %logic.rend2984 -logic.rend2984: - br label %logic.end2983 -logic.end2983: - %t27 = phi i1 [ false, %logic.from2981 ], [ %t26, %logic.rend2984 ] - br i1 %t27, label %then2985, label %endif2987 -then2985: - %t28 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } { ptr @.str.1929, i64 4, i64 0 }, 0 + br label %logic.rend3098 +logic.rend3098: + br label %logic.end3097 +logic.end3097: + %t27 = phi i1 [ false, %logic.from3095 ], [ %t26, %logic.rend3098 ] + br i1 %t27, label %then3099, label %endif3101 +then3099: + %t28 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } { ptr @.str.2001, i64 4, i64 0 }, 0 %t29 = load %S.ast.Type, ptr %a3 store %S.ast.Type %t29, ptr %a30 call void @finch.copy.S_ast_Type(ptr %a31, ptr %a30) %t32 = load %S.ast.Type, ptr %a31 %t33 = insertvalue %S.gen.Val %t28, %S.ast.Type %t32, 1 ret %S.gen.Val %t33 -endif2987: +endif3101: %t34 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t35 = getelementptr inbounds %S.ast.Type, ptr %t34, i32 0, i32 0 %t36 = load { ptr, i64, i64 }, ptr %t35 store { ptr, i64, i64 } %t36, ptr %a37 - store { ptr, i64, i64 } { ptr @.str.1930, i64 3, i64 0 }, ptr %a38 + store { ptr, i64, i64 } { ptr @.str.2002, i64 3, i64 0 }, ptr %a38 %t39 = call i32 @finch_str_eq(ptr %a37, ptr %a38) %t40 = icmp ne i32 %t39, 0 - br label %logic.from2988 -logic.from2988: - br i1 %t40, label %logic.rhs2989, label %logic.end2990 -logic.rhs2989: + br label %logic.from3102 +logic.from3102: + br i1 %t40, label %logic.rhs3103, label %logic.end3104 +logic.rhs3103: %t41 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t42 = load { ptr, i64, i64 }, ptr %t41 store { ptr, i64, i64 } %t42, ptr %a43 - store { ptr, i64, i64 } { ptr @.str.1931, i64 3, i64 0 }, ptr %a44 + store { ptr, i64, i64 } { ptr @.str.2003, i64 3, i64 0 }, ptr %a44 %t45 = call i32 @finch_str_eq(ptr %a43, ptr %a44) %t46 = icmp ne i32 %t45, 0 - br label %logic.rend2991 -logic.rend2991: - br label %logic.end2990 -logic.end2990: - %t47 = phi i1 [ false, %logic.from2988 ], [ %t46, %logic.rend2991 ] - br label %logic.from2992 -logic.from2992: - br i1 %t47, label %logic.rhs2993, label %logic.end2994 -logic.rhs2993: + br label %logic.rend3105 +logic.rend3105: + br label %logic.end3104 +logic.end3104: + %t47 = phi i1 [ false, %logic.from3102 ], [ %t46, %logic.rend3105 ] + br label %logic.from3106 +logic.from3106: + br i1 %t47, label %logic.rhs3107, label %logic.end3108 +logic.rhs3107: %t48 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t49 = getelementptr inbounds %S.ast.Type, ptr %t48, i32 0, i32 1 %t50 = getelementptr inbounds { ptr, i64, i64 }, ptr %t49, i32 0, i32 1 %t51 = load i64, ptr %t50 %t52 = icmp eq i64 %t51, 0 - br label %logic.from2995 -logic.from2995: - br i1 %t52, label %logic.end2997, label %logic.rhs2996 -logic.rhs2996: + br label %logic.from3109 +logic.from3109: + br i1 %t52, label %logic.end3111, label %logic.rhs3110 +logic.rhs3110: %t53 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 1 %t54 = getelementptr inbounds { ptr, i64, i64 }, ptr %t53, i32 0, i32 1 %t55 = load i64, ptr %t54 %t56 = icmp eq i64 %t55, 0 - br label %logic.rend2998 -logic.rend2998: - br label %logic.end2997 -logic.end2997: - %t57 = phi i1 [ true, %logic.from2995 ], [ %t56, %logic.rend2998 ] - br label %logic.rend2999 -logic.rend2999: - br label %logic.end2994 -logic.end2994: - %t58 = phi i1 [ false, %logic.from2992 ], [ %t57, %logic.rend2999 ] - br i1 %t58, label %then3000, label %endif3002 -then3000: + br label %logic.rend3112 +logic.rend3112: + br label %logic.end3111 +logic.end3111: + %t57 = phi i1 [ true, %logic.from3109 ], [ %t56, %logic.rend3112 ] + br label %logic.rend3113 +logic.rend3113: + br label %logic.end3108 +logic.end3108: + %t58 = phi i1 [ false, %logic.from3106 ], [ %t57, %logic.rend3113 ] + br i1 %t58, label %then3114, label %endif3116 +then3114: %t59 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t60 = load { ptr, i64, i64 }, ptr %t59 store { ptr, i64, i64 } %t60, ptr %a61 @@ -34359,42 +35731,42 @@ then3000: %t68 = load %S.ast.Type, ptr %a67 %t69 = insertvalue %S.gen.Val %t64, %S.ast.Type %t68, 1 ret %S.gen.Val %t69 -endif3002: +endif3116: %t70 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t71 = load %S.ast.Type, ptr %t70 %t72 = call i1 @finch.gen.isInt(%S.ast.Type %t71) - br label %logic.from3003 -logic.from3003: - br i1 %t72, label %logic.rhs3004, label %logic.end3005 -logic.rhs3004: + br label %logic.from3117 +logic.from3117: + br i1 %t72, label %logic.rhs3118, label %logic.end3119 +logic.rhs3118: %t73 = load %S.ast.Type, ptr %a3 %t74 = call i1 @finch.gen.isInt(%S.ast.Type %t73) - br label %logic.rend3006 -logic.rend3006: - br label %logic.end3005 -logic.end3005: - %t75 = phi i1 [ false, %logic.from3003 ], [ %t74, %logic.rend3006 ] - br i1 %t75, label %then3007, label %endif3009 -then3007: + br label %logic.rend3120 +logic.rend3120: + br label %logic.end3119 +logic.end3119: + %t75 = phi i1 [ false, %logic.from3117 ], [ %t74, %logic.rend3120 ] + br i1 %t75, label %then3121, label %endif3123 +then3121: %t76 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 3 %t77 = load i1, ptr %t76 - br label %logic.from3010 -logic.from3010: - br i1 %t77, label %logic.rhs3011, label %logic.end3012 -logic.rhs3011: + br label %logic.from3124 +logic.from3124: + br i1 %t77, label %logic.rhs3125, label %logic.end3126 +logic.rhs3125: %t78 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t79 = load { ptr, i64, i64 }, ptr %t78 %t80 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t81 = load %S.ast.Type, ptr %t80 %t82 = load %S.ast.Type, ptr %a3 %t83 = call i1 @finch.gen.fits({ ptr, i64, i64 } %t79, %S.ast.Type %t81, %S.ast.Type %t82) - br label %logic.rend3013 -logic.rend3013: - br label %logic.end3012 -logic.end3012: - %t84 = phi i1 [ false, %logic.from3010 ], [ %t83, %logic.rend3013 ] - br i1 %t84, label %then3014, label %endif3016 -then3014: + br label %logic.rend3127 +logic.rend3127: + br label %logic.end3126 +logic.end3126: + %t84 = phi i1 [ false, %logic.from3124 ], [ %t83, %logic.rend3127 ] + br i1 %t84, label %then3128, label %endif3130 +then3128: %t85 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t86 = load { ptr, i64, i64 }, ptr %t85 store { ptr, i64, i64 } %t86, ptr %a87 @@ -34408,13 +35780,13 @@ then3014: %t95 = insertvalue %S.gen.Val %t90, %S.ast.Type %t94, 1 %t96 = insertvalue %S.gen.Val %t95, i1 true, 3 ret %S.gen.Val %t96 -endif3016: +endif3130: %t97 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t98 = load %S.ast.Type, ptr %t97 %t99 = load %S.ast.Type, ptr %a3 %t100 = call i1 @finch.gen.widens(%S.ast.Type %t98, %S.ast.Type %t99) - br i1 %t100, label %then3017, label %endif3019 -then3017: + br i1 %t100, label %then3131, label %endif3133 +then3131: %t101 = load ptr, ptr %a1 %t102 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t103 = load { ptr, i64, i64 }, ptr %t102 @@ -34429,21 +35801,21 @@ then3017: %t112 = load %S.ast.Type, ptr %a111 %t113 = insertvalue %S.gen.Val %t108, %S.ast.Type %t112, 1 ret %S.gen.Val %t113 -endif3019: +endif3133: %t114 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 3 %t115 = load i1, ptr %t114 - br i1 %t115, label %then3020, label %endif3022 -then3020: + br i1 %t115, label %then3134, label %endif3136 +then3134: %t116 = load ptr, ptr %a1 %t117 = load %S.ast.Node, ptr %a4 %t118 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t119 = load { ptr, i64, i64 }, ptr %t118 - store { ptr, i64, i64 } { ptr @.str.1932, i64 11, i64 0 }, ptr %a121 + store { ptr, i64, i64 } { ptr @.str.2004, i64 11, i64 0 }, ptr %a121 store { ptr, i64, i64 } %t119, ptr %a122 call void @finch_str_concat(ptr %a120, ptr %a121, ptr %a122) %t123 = load { ptr, i64, i64 }, ptr %a120 store { ptr, i64, i64 } %t123, ptr %a125 - store { ptr, i64, i64 } { ptr @.str.1933, i64 16, i64 0 }, ptr %a126 + store { ptr, i64, i64 } { ptr @.str.2005, i64 16, i64 0 }, ptr %a126 call void @finch_str_concat(ptr %a124, ptr %a125, ptr %a126) store { ptr, i64, i64 } %t123, ptr %a127 call void @finch_str_drop(ptr %a127) @@ -34461,49 +35833,49 @@ then3020: call void @finch.gen.fail(ptr %t116, %S.ast.Node %t117, { ptr, i64, i64 } %t136) store { ptr, i64, i64 } %t136, ptr %a137 call void @finch_str_drop(ptr %a137) - br label %endif3022 -endif3022: - br label %endif3009 -endif3009: + br label %endif3136 +endif3136: + br label %endif3123 +endif3123: %t138 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t139 = load %S.ast.Type, ptr %t138 %t140 = call i1 @finch.gen.isInt(%S.ast.Type %t139) - br label %logic.from3023 -logic.from3023: - br i1 %t140, label %logic.rhs3024, label %logic.end3025 -logic.rhs3024: + br label %logic.from3137 +logic.from3137: + br i1 %t140, label %logic.rhs3138, label %logic.end3139 +logic.rhs3138: %t141 = load %S.ast.Type, ptr %a3 %t142 = call i1 @finch.gen.isFloat(%S.ast.Type %t141) - br label %logic.rend3026 -logic.rend3026: - br label %logic.end3025 -logic.end3025: - %t143 = phi i1 [ false, %logic.from3023 ], [ %t142, %logic.rend3026 ] - br i1 %t143, label %then3027, label %endif3029 -then3027: + br label %logic.rend3140 +logic.rend3140: + br label %logic.end3139 +logic.end3139: + %t143 = phi i1 [ false, %logic.from3137 ], [ %t142, %logic.rend3140 ] + br i1 %t143, label %then3141, label %endif3143 +then3141: %t144 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 3 %t145 = load i1, ptr %t144 - br label %logic.from3030 -logic.from3030: - br i1 %t145, label %logic.rhs3031, label %logic.end3032 -logic.rhs3031: + br label %logic.from3144 +logic.from3144: + br i1 %t145, label %logic.rhs3145, label %logic.end3146 +logic.rhs3145: %t146 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t147 = load { ptr, i64, i64 }, ptr %t146 store { ptr, i64, i64 } %t147, ptr %a148 - store { ptr, i64, i64 } { ptr @.str.1934, i64 5, i64 0 }, ptr %a149 + store { ptr, i64, i64 } { ptr @.str.2006, i64 5, i64 0 }, ptr %a149 %t150 = call i32 @finch_str_eq(ptr %a148, ptr %a149) %t151 = icmp ne i32 %t150, 0 - br label %logic.rend3033 -logic.rend3033: - br label %logic.end3032 -logic.end3032: - %t152 = phi i1 [ false, %logic.from3030 ], [ %t151, %logic.rend3033 ] - br i1 %t152, label %then3034, label %endif3036 -then3034: + br label %logic.rend3147 +logic.rend3147: + br label %logic.end3146 +logic.end3146: + %t152 = phi i1 [ false, %logic.from3144 ], [ %t151, %logic.rend3147 ] + br i1 %t152, label %then3148, label %endif3150 +then3148: %t153 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t154 = load { ptr, i64, i64 }, ptr %t153 store { ptr, i64, i64 } %t154, ptr %a156 - store { ptr, i64, i64 } { ptr @.str.1935, i64 2, i64 0 }, ptr %a157 + store { ptr, i64, i64 } { ptr @.str.2007, i64 2, i64 0 }, ptr %a157 call void @finch_str_concat(ptr %a155, ptr %a156, ptr %a157) %t158 = load { ptr, i64, i64 }, ptr %a155 %t159 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t158, 0 @@ -34514,7 +35886,7 @@ then3034: %t164 = insertvalue %S.gen.Val %t159, %S.ast.Type %t163, 1 %t165 = insertvalue %S.gen.Val %t164, i1 true, 3 ret %S.gen.Val %t165 -endif3036: +endif3150: %t166 = load ptr, ptr %a1 %t167 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t168 = load { ptr, i64, i64 }, ptr %t167 @@ -34529,31 +35901,31 @@ endif3036: %t177 = load %S.ast.Type, ptr %a176 %t178 = insertvalue %S.gen.Val %t173, %S.ast.Type %t177, 1 ret %S.gen.Val %t178 -endif3029: +endif3143: %t179 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t180 = getelementptr inbounds %S.ast.Type, ptr %t179, i32 0, i32 0 %t181 = load { ptr, i64, i64 }, ptr %t180 store { ptr, i64, i64 } %t181, ptr %a182 - store { ptr, i64, i64 } { ptr @.str.1936, i64 3, i64 0 }, ptr %a183 + store { ptr, i64, i64 } { ptr @.str.2008, i64 3, i64 0 }, ptr %a183 %t184 = call i32 @finch_str_eq(ptr %a182, ptr %a183) %t185 = icmp ne i32 %t184, 0 - br label %logic.from3037 -logic.from3037: - br i1 %t185, label %logic.rhs3038, label %logic.end3039 -logic.rhs3038: + br label %logic.from3151 +logic.from3151: + br i1 %t185, label %logic.rhs3152, label %logic.end3153 +logic.rhs3152: %t186 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t187 = load { ptr, i64, i64 }, ptr %t186 store { ptr, i64, i64 } %t187, ptr %a188 - store { ptr, i64, i64 } { ptr @.str.1937, i64 5, i64 0 }, ptr %a189 + store { ptr, i64, i64 } { ptr @.str.2009, i64 5, i64 0 }, ptr %a189 %t190 = call i32 @finch_str_eq(ptr %a188, ptr %a189) %t191 = icmp ne i32 %t190, 0 - br label %logic.rend3040 -logic.rend3040: - br label %logic.end3039 -logic.end3039: - %t192 = phi i1 [ false, %logic.from3037 ], [ %t191, %logic.rend3040 ] - br i1 %t192, label %then3041, label %endif3043 -then3041: + br label %logic.rend3154 +logic.rend3154: + br label %logic.end3153 +logic.end3153: + %t192 = phi i1 [ false, %logic.from3151 ], [ %t191, %logic.rend3154 ] + br i1 %t192, label %then3155, label %endif3157 +then3155: %t193 = load ptr, ptr %a1 %t194 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t195 = load { ptr, i64, i64 }, ptr %t194 @@ -34568,42 +35940,42 @@ then3041: %t204 = load %S.ast.Type, ptr %a203 %t205 = insertvalue %S.gen.Val %t200, %S.ast.Type %t204, 1 ret %S.gen.Val %t205 -endif3043: +endif3157: %t206 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t207 = getelementptr inbounds %S.ast.Type, ptr %t206, i32 0, i32 0 %t208 = load { ptr, i64, i64 }, ptr %t207 store { ptr, i64, i64 } %t208, ptr %a209 - store { ptr, i64, i64 } { ptr @.str.1938, i64 5, i64 0 }, ptr %a210 + store { ptr, i64, i64 } { ptr @.str.2010, i64 5, i64 0 }, ptr %a210 %t211 = call i32 @finch_str_eq(ptr %a209, ptr %a210) %t212 = icmp ne i32 %t211, 0 - br label %logic.from3044 -logic.from3044: - br i1 %t212, label %logic.rhs3045, label %logic.end3046 -logic.rhs3045: + br label %logic.from3158 +logic.from3158: + br i1 %t212, label %logic.rhs3159, label %logic.end3160 +logic.rhs3159: %t213 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t214 = load { ptr, i64, i64 }, ptr %t213 store { ptr, i64, i64 } %t214, ptr %a215 - store { ptr, i64, i64 } { ptr @.str.1939, i64 3, i64 0 }, ptr %a216 + store { ptr, i64, i64 } { ptr @.str.2011, i64 3, i64 0 }, ptr %a216 %t217 = call i32 @finch_str_eq(ptr %a215, ptr %a216) %t218 = icmp ne i32 %t217, 0 - br label %logic.rend3047 -logic.rend3047: - br label %logic.end3046 -logic.end3046: - %t219 = phi i1 [ false, %logic.from3044 ], [ %t218, %logic.rend3047 ] - br label %logic.from3048 -logic.from3048: - br i1 %t219, label %logic.rhs3049, label %logic.end3050 -logic.rhs3049: + br label %logic.rend3161 +logic.rend3161: + br label %logic.end3160 +logic.end3160: + %t219 = phi i1 [ false, %logic.from3158 ], [ %t218, %logic.rend3161 ] + br label %logic.from3162 +logic.from3162: + br i1 %t219, label %logic.rhs3163, label %logic.end3164 +logic.rhs3163: %t220 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 3 %t221 = load i1, ptr %t220 - br label %logic.rend3051 -logic.rend3051: - br label %logic.end3050 -logic.end3050: - %t222 = phi i1 [ false, %logic.from3048 ], [ %t221, %logic.rend3051 ] - br i1 %t222, label %then3052, label %endif3054 -then3052: + br label %logic.rend3165 +logic.rend3165: + br label %logic.end3164 +logic.end3164: + %t222 = phi i1 [ false, %logic.from3162 ], [ %t221, %logic.rend3165 ] + br i1 %t222, label %then3166, label %endif3168 +then3166: %t223 = load ptr, ptr %a1 %t224 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t225 = load { ptr, i64, i64 }, ptr %t224 @@ -34618,10 +35990,10 @@ then3052: %t234 = load %S.ast.Type, ptr %a233 %t235 = insertvalue %S.gen.Val %t230, %S.ast.Type %t234, 1 ret %S.gen.Val %t235 -endif3054: +endif3168: %t236 = load { ptr, i64, i64 }, ptr %a5 store { ptr, i64, i64 } %t236, ptr %a238 - store { ptr, i64, i64 } { ptr @.str.1940, i64 9, i64 0 }, ptr %a239 + store { ptr, i64, i64 } { ptr @.str.2012, i64 9, i64 0 }, ptr %a239 call void @finch_str_concat(ptr %a237, ptr %a238, ptr %a239) %t240 = load { ptr, i64, i64 }, ptr %a237 %t241 = load %S.ast.Type, ptr %a3 @@ -34635,7 +36007,7 @@ endif3054: call void @finch_str_drop(ptr %a247) %t248 = load { ptr, i64, i64 }, ptr %a243 store { ptr, i64, i64 } %t248, ptr %a250 - store { ptr, i64, i64 } { ptr @.str.1941, i64 14, i64 0 }, ptr %a251 + store { ptr, i64, i64 } { ptr @.str.2013, i64 14, i64 0 }, ptr %a251 call void @finch_str_concat(ptr %a249, ptr %a250, ptr %a251) store { ptr, i64, i64 } %t248, ptr %a252 call void @finch_str_drop(ptr %a252) @@ -34655,22 +36027,22 @@ endif3054: %t264 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t265 = load %S.ast.Type, ptr %t264 %t266 = call i1 @finch.gen.isNumber(%S.ast.Type %t265) - br label %logic.from3055 -logic.from3055: - br i1 %t266, label %logic.rhs3056, label %logic.end3057 -logic.rhs3056: + br label %logic.from3169 +logic.from3169: + br i1 %t266, label %logic.rhs3170, label %logic.end3171 +logic.rhs3170: %t267 = load %S.ast.Type, ptr %a3 %t268 = call i1 @finch.gen.isNumber(%S.ast.Type %t267) - br label %logic.rend3058 -logic.rend3058: - br label %logic.end3057 -logic.end3057: - %t269 = phi i1 [ false, %logic.from3055 ], [ %t268, %logic.rend3058 ] - br i1 %t269, label %then3059, label %endif3061 -then3059: + br label %logic.rend3172 +logic.rend3172: + br label %logic.end3171 +logic.end3171: + %t269 = phi i1 [ false, %logic.from3169 ], [ %t268, %logic.rend3172 ] + br i1 %t269, label %then3173, label %endif3175 +then3173: %t270 = load { ptr, i64, i64 }, ptr %a263 store { ptr, i64, i64 } %t270, ptr %a272 - store { ptr, i64, i64 } { ptr @.str.1942, i64 6, i64 0 }, ptr %a273 + store { ptr, i64, i64 } { ptr @.str.2014, i64 6, i64 0 }, ptr %a273 call void @finch_str_concat(ptr %a271, ptr %a272, ptr %a273) %t274 = load { ptr, i64, i64 }, ptr %a271 %t275 = load %S.ast.Type, ptr %a3 @@ -34684,7 +36056,7 @@ then3059: call void @finch_str_drop(ptr %a281) %t282 = load { ptr, i64, i64 }, ptr %a277 store { ptr, i64, i64 } %t282, ptr %a284 - store { ptr, i64, i64 } { ptr @.str.1943, i64 16, i64 0 }, ptr %a285 + store { ptr, i64, i64 } { ptr @.str.2015, i64 16, i64 0 }, ptr %a285 call void @finch_str_concat(ptr %a283, ptr %a284, ptr %a285) store { ptr, i64, i64 } %t282, ptr %a286 call void @finch_str_drop(ptr %a286) @@ -34696,104 +36068,104 @@ then3059: %t290 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t291 = load %S.ast.Type, ptr %t290 %t292 = call i1 @finch.gen.isFloat(%S.ast.Type %t291) - br label %logic.from3062 -logic.from3062: - br i1 %t292, label %logic.rhs3063, label %logic.end3064 -logic.rhs3063: + br label %logic.from3176 +logic.from3176: + br i1 %t292, label %logic.rhs3177, label %logic.end3178 +logic.rhs3177: %t293 = load %S.ast.Type, ptr %a3 %t294 = call i1 @finch.gen.isInt(%S.ast.Type %t293) - br label %logic.rend3065 -logic.rend3065: - br label %logic.end3064 -logic.end3064: - %t295 = phi i1 [ false, %logic.from3062 ], [ %t294, %logic.rend3065 ] - br i1 %t295, label %then3066, label %endif3068 -then3066: + br label %logic.rend3179 +logic.rend3179: + br label %logic.end3178 +logic.end3178: + %t295 = phi i1 [ false, %logic.from3176 ], [ %t294, %logic.rend3179 ] + br i1 %t295, label %then3180, label %endif3182 +then3180: %t296 = load { ptr, i64, i64 }, ptr %a263 store { ptr, i64, i64 } %t296, ptr %a298 - store { ptr, i64, i64 } { ptr @.str.1944, i64 26, i64 0 }, ptr %a299 + store { ptr, i64, i64 } { ptr @.str.2016, i64 26, i64 0 }, ptr %a299 call void @finch_str_concat(ptr %a297, ptr %a298, ptr %a299) %t300 = load { ptr, i64, i64 }, ptr %a297 %t301 = load { ptr, i64, i64 }, ptr %a263 store { ptr, i64, i64 } %t300, ptr %a263 store { ptr, i64, i64 } %t301, ptr %a302 call void @finch_str_drop(ptr %a302) - br label %endif3068 -endif3068: + br label %endif3182 +endif3182: %t303 = load { ptr, i64, i64 }, ptr %a263 store { ptr, i64, i64 } %t303, ptr %a305 - store { ptr, i64, i64 } { ptr @.str.1945, i64 1, i64 0 }, ptr %a306 + store { ptr, i64, i64 } { ptr @.str.2017, i64 1, i64 0 }, ptr %a306 call void @finch_str_concat(ptr %a304, ptr %a305, ptr %a306) %t307 = load { ptr, i64, i64 }, ptr %a304 %t308 = load { ptr, i64, i64 }, ptr %a263 store { ptr, i64, i64 } %t307, ptr %a263 store { ptr, i64, i64 } %t308, ptr %a309 call void @finch_str_drop(ptr %a309) - br label %endif3061 -endif3061: + br label %endif3175 +endif3175: %t310 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t311 = load { ptr, i64, i64 }, ptr %t310 store { ptr, i64, i64 } %t311, ptr %a312 - store { ptr, i64, i64 } { ptr @.str.1946, i64 3, i64 0 }, ptr %a313 + store { ptr, i64, i64 } { ptr @.str.2018, i64 3, i64 0 }, ptr %a313 %t314 = call i32 @finch_str_eq(ptr %a312, ptr %a313) %t315 = icmp ne i32 %t314, 0 - br label %logic.from3069 -logic.from3069: - br i1 %t315, label %logic.rhs3070, label %logic.end3071 -logic.rhs3070: + br label %logic.from3183 +logic.from3183: + br i1 %t315, label %logic.rhs3184, label %logic.end3185 +logic.rhs3184: %t316 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t317 = load %S.ast.Type, ptr %t316 %t318 = call i1 @finch.gen.isNumber(%S.ast.Type %t317) - br label %logic.from3072 -logic.from3072: - br i1 %t318, label %logic.end3074, label %logic.rhs3073 -logic.rhs3073: + br label %logic.from3186 +logic.from3186: + br i1 %t318, label %logic.end3188, label %logic.rhs3187 +logic.rhs3187: %t319 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t320 = getelementptr inbounds %S.ast.Type, ptr %t319, i32 0, i32 0 %t321 = load { ptr, i64, i64 }, ptr %t320 store { ptr, i64, i64 } %t321, ptr %a322 - store { ptr, i64, i64 } { ptr @.str.1947, i64 4, i64 0 }, ptr %a323 + store { ptr, i64, i64 } { ptr @.str.2019, i64 4, i64 0 }, ptr %a323 %t324 = call i32 @finch_str_eq(ptr %a322, ptr %a323) %t325 = icmp ne i32 %t324, 0 - br label %logic.rend3075 -logic.rend3075: - br label %logic.end3074 -logic.end3074: - %t326 = phi i1 [ true, %logic.from3072 ], [ %t325, %logic.rend3075 ] - br label %logic.from3076 -logic.from3076: - br i1 %t326, label %logic.end3078, label %logic.rhs3077 -logic.rhs3077: + br label %logic.rend3189 +logic.rend3189: + br label %logic.end3188 +logic.end3188: + %t326 = phi i1 [ true, %logic.from3186 ], [ %t325, %logic.rend3189 ] + br label %logic.from3190 +logic.from3190: + br i1 %t326, label %logic.end3192, label %logic.rhs3191 +logic.rhs3191: %t327 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t328 = getelementptr inbounds %S.ast.Type, ptr %t327, i32 0, i32 0 %t329 = load { ptr, i64, i64 }, ptr %t328 store { ptr, i64, i64 } %t329, ptr %a330 - store { ptr, i64, i64 } { ptr @.str.1948, i64 4, i64 0 }, ptr %a331 + store { ptr, i64, i64 } { ptr @.str.2020, i64 4, i64 0 }, ptr %a331 %t332 = call i32 @finch_str_eq(ptr %a330, ptr %a331) %t333 = icmp ne i32 %t332, 0 - br label %logic.rend3079 -logic.rend3079: - br label %logic.end3078 -logic.end3078: - %t334 = phi i1 [ true, %logic.from3076 ], [ %t333, %logic.rend3079 ] - br label %logic.rend3080 -logic.rend3080: - br label %logic.end3071 -logic.end3071: - %t335 = phi i1 [ false, %logic.from3069 ], [ %t334, %logic.rend3080 ] - br i1 %t335, label %then3081, label %endif3083 -then3081: + br label %logic.rend3193 +logic.rend3193: + br label %logic.end3192 +logic.end3192: + %t334 = phi i1 [ true, %logic.from3190 ], [ %t333, %logic.rend3193 ] + br label %logic.rend3194 +logic.rend3194: + br label %logic.end3185 +logic.end3185: + %t335 = phi i1 [ false, %logic.from3183 ], [ %t334, %logic.rend3194 ] + br i1 %t335, label %then3195, label %endif3197 +then3195: %t336 = load { ptr, i64, i64 }, ptr %a263 store { ptr, i64, i64 } %t336, ptr %a338 - store { ptr, i64, i64 } { ptr @.str.1949, i64 34, i64 0 }, ptr %a339 + store { ptr, i64, i64 } { ptr @.str.2021, i64 34, i64 0 }, ptr %a339 call void @finch_str_concat(ptr %a337, ptr %a338, ptr %a339) %t340 = load { ptr, i64, i64 }, ptr %a337 %t341 = load { ptr, i64, i64 }, ptr %a263 store { ptr, i64, i64 } %t340, ptr %a263 store { ptr, i64, i64 } %t341, ptr %a342 call void @finch_str_drop(ptr %a342) - br label %endif3083 -endif3083: + br label %endif3197 +endif3197: %t343 = load ptr, ptr %a1 %t344 = load %S.ast.Node, ptr %a4 %t345 = load { ptr, i64, i64 }, ptr %a263 @@ -34819,28 +36191,28 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic3084, label %ok3085 -panic3084: - call void @finch_panic(ptr @.str.1950, i64 1283, ptr @.str.1951) + br i1 %t4, label %panic3198, label %ok3199 +panic3198: + call void @finch_panic(ptr @.str.2022, i64 1346, ptr @.str.2023) unreachable -ok3085: +ok3199: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 10 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t7 = load i64, ptr %t6 store i64 0, ptr %a8 - br label %for.cond3086 -for.cond3086: + br label %for.cond3200 +for.cond3200: %t9 = load i64, ptr %a8 %t10 = icmp slt i64 %t9, %t7 - br i1 %t10, label %for.body3087, label %for.end3089 -for.body3087: + br i1 %t10, label %for.body3201, label %for.end3203 +for.body3201: %t11 = load ptr, ptr %a1 %t12 = icmp eq ptr %t11, null - br i1 %t12, label %panic3090, label %ok3091 -panic3090: - call void @finch_panic(ptr @.str.1952, i64 1284, ptr @.str.1953) + br i1 %t12, label %panic3204, label %ok3205 +panic3204: + call void @finch_panic(ptr @.str.2024, i64 1347, ptr @.str.2025) unreachable -ok3091: +ok3205: %t13 = getelementptr inbounds %S.gen.Gen, ptr %t11, i32 0, i32 10 %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %t13, i32 0, i32 1 %t15 = load i64, ptr %t14 @@ -34850,50 +36222,50 @@ ok3091: store i64 %t18, ptr %a19 %t20 = load ptr, ptr %a1 %t21 = icmp eq ptr %t20, null - br i1 %t21, label %panic3092, label %ok3093 -panic3092: - call void @finch_panic(ptr @.str.1954, i64 1285, ptr @.str.1955) + br i1 %t21, label %panic3206, label %ok3207 +panic3206: + call void @finch_panic(ptr @.str.2026, i64 1348, ptr @.str.2027) unreachable -ok3093: +ok3207: %t22 = getelementptr inbounds %S.gen.Gen, ptr %t20, i32 0, i32 10 %t23 = load i64, ptr %a19 %t24 = load { ptr, i64, i64 }, ptr %t22 %t25 = extractvalue { ptr, i64, i64 } %t24, 1 %t26 = icmp uge i64 %t23, %t25 - br i1 %t26, label %range3094, label %inrange3095 -range3094: - call void @finch_panic_index(ptr @.str.1956, i64 1285, i64 %t23, i64 %t25) + br i1 %t26, label %range3208, label %inrange3209 +range3208: + call void @finch_panic_index(ptr @.str.2028, i64 1348, i64 %t23, i64 %t25) unreachable -inrange3095: +inrange3209: %t27 = extractvalue { ptr, i64, i64 } %t24, 0 %t28 = getelementptr inbounds %S.gen.Scope, ptr %t27, i64 %t23 %t29 = getelementptr inbounds %S.gen.Scope, ptr %t28, i32 0, i32 0 %t30 = getelementptr inbounds { ptr, i64, i64 }, ptr %t29, i32 0, i32 1 %t31 = load i64, ptr %t30 store i64 0, ptr %a32 - br label %for.cond3096 -for.cond3096: + br label %for.cond3210 +for.cond3210: %t33 = load i64, ptr %a32 %t34 = icmp slt i64 %t33, %t31 - br i1 %t34, label %for.body3097, label %for.end3099 -for.body3097: + br i1 %t34, label %for.body3211, label %for.end3213 +for.body3211: %t35 = load ptr, ptr %a1 %t36 = icmp eq ptr %t35, null - br i1 %t36, label %panic3100, label %ok3101 -panic3100: - call void @finch_panic(ptr @.str.1957, i64 1286, ptr @.str.1958) + br i1 %t36, label %panic3214, label %ok3215 +panic3214: + call void @finch_panic(ptr @.str.2029, i64 1349, ptr @.str.2030) unreachable -ok3101: +ok3215: %t37 = getelementptr inbounds %S.gen.Gen, ptr %t35, i32 0, i32 10 %t38 = load i64, ptr %a19 %t39 = load { ptr, i64, i64 }, ptr %t37 %t40 = extractvalue { ptr, i64, i64 } %t39, 1 %t41 = icmp uge i64 %t38, %t40 - br i1 %t41, label %range3102, label %inrange3103 -range3102: - call void @finch_panic_index(ptr @.str.1959, i64 1286, i64 %t38, i64 %t40) + br i1 %t41, label %range3216, label %inrange3217 +range3216: + call void @finch_panic_index(ptr @.str.2031, i64 1349, i64 %t38, i64 %t40) unreachable -inrange3103: +inrange3217: %t42 = extractvalue { ptr, i64, i64 } %t39, 0 %t43 = getelementptr inbounds %S.gen.Scope, ptr %t42, i64 %t38 %t44 = getelementptr inbounds %S.gen.Scope, ptr %t43, i32 0, i32 0 @@ -34901,11 +36273,11 @@ inrange3103: %t46 = load { ptr, i64, i64 }, ptr %t44 %t47 = extractvalue { ptr, i64, i64 } %t46, 1 %t48 = icmp uge i64 %t45, %t47 - br i1 %t48, label %range3104, label %inrange3105 -range3104: - call void @finch_panic_index(ptr @.str.1960, i64 1286, i64 %t45, i64 %t47) + br i1 %t48, label %range3218, label %inrange3219 +range3218: + call void @finch_panic_index(ptr @.str.2032, i64 1349, i64 %t45, i64 %t47) unreachable -inrange3105: +inrange3219: %t49 = extractvalue { ptr, i64, i64 } %t46, 0 %t50 = getelementptr inbounds %S.gen.Var, ptr %t49, i64 %t45 %t51 = getelementptr inbounds %S.gen.Var, ptr %t50, i32 0, i32 0 @@ -34915,38 +36287,38 @@ inrange3105: store { ptr, i64, i64 } %t53, ptr %a55 %t56 = call i32 @finch_str_eq(ptr %a54, ptr %a55) %t57 = icmp ne i32 %t56, 0 - br i1 %t57, label %then3106, label %endif3108 -then3106: + br i1 %t57, label %then3220, label %endif3222 +then3220: %t58 = load ptr, ptr %a1 %t59 = icmp eq ptr %t58, null - br i1 %t59, label %panic3109, label %ok3110 -panic3109: - call void @finch_panic(ptr @.str.1961, i64 1287, ptr @.str.1962) + br i1 %t59, label %panic3223, label %ok3224 +panic3223: + call void @finch_panic(ptr @.str.2033, i64 1350, ptr @.str.2034) unreachable -ok3110: - %t60 = getelementptr inbounds %S.gen.Gen, ptr %t58, i32 0, i32 43 +ok3224: + %t60 = getelementptr inbounds %S.gen.Gen, ptr %t58, i32 0, i32 44 %t61 = load i1, ptr %t60 - br label %logic.from3111 -logic.from3111: - br i1 %t61, label %logic.rhs3112, label %logic.end3113 -logic.rhs3112: + br label %logic.from3225 +logic.from3225: + br i1 %t61, label %logic.rhs3226, label %logic.end3227 +logic.rhs3226: %t62 = load ptr, ptr %a1 %t63 = icmp eq ptr %t62, null - br i1 %t63, label %panic3114, label %ok3115 -panic3114: - call void @finch_panic(ptr @.str.1963, i64 1287, ptr @.str.1964) + br i1 %t63, label %panic3228, label %ok3229 +panic3228: + call void @finch_panic(ptr @.str.2035, i64 1350, ptr @.str.2036) unreachable -ok3115: +ok3229: %t64 = getelementptr inbounds %S.gen.Gen, ptr %t62, i32 0, i32 10 %t65 = load i64, ptr %a19 %t66 = load { ptr, i64, i64 }, ptr %t64 %t67 = extractvalue { ptr, i64, i64 } %t66, 1 %t68 = icmp uge i64 %t65, %t67 - br i1 %t68, label %range3116, label %inrange3117 -range3116: - call void @finch_panic_index(ptr @.str.1965, i64 1287, i64 %t65, i64 %t67) + br i1 %t68, label %range3230, label %inrange3231 +range3230: + call void @finch_panic_index(ptr @.str.2037, i64 1350, i64 %t65, i64 %t67) unreachable -inrange3117: +inrange3231: %t69 = extractvalue { ptr, i64, i64 } %t66, 0 %t70 = getelementptr inbounds %S.gen.Scope, ptr %t69, i64 %t65 %t71 = getelementptr inbounds %S.gen.Scope, ptr %t70, i32 0, i32 0 @@ -34954,54 +36326,54 @@ inrange3117: %t73 = load { ptr, i64, i64 }, ptr %t71 %t74 = extractvalue { ptr, i64, i64 } %t73, 1 %t75 = icmp uge i64 %t72, %t74 - br i1 %t75, label %range3118, label %inrange3119 -range3118: - call void @finch_panic_index(ptr @.str.1966, i64 1287, i64 %t72, i64 %t74) + br i1 %t75, label %range3232, label %inrange3233 +range3232: + call void @finch_panic_index(ptr @.str.2038, i64 1350, i64 %t72, i64 %t74) unreachable -inrange3119: +inrange3233: %t76 = extractvalue { ptr, i64, i64 } %t73, 0 %t77 = getelementptr inbounds %S.gen.Var, ptr %t76, i64 %t72 %t78 = getelementptr inbounds %S.gen.Var, ptr %t77, i32 0, i32 4 %t79 = load i64, ptr %t78 %t80 = load ptr, ptr %a1 %t81 = icmp eq ptr %t80, null - br i1 %t81, label %panic3120, label %ok3121 -panic3120: - call void @finch_panic(ptr @.str.1967, i64 1287, ptr @.str.1968) + br i1 %t81, label %panic3234, label %ok3235 +panic3234: + call void @finch_panic(ptr @.str.2039, i64 1350, ptr @.str.2040) unreachable -ok3121: - %t82 = getelementptr inbounds %S.gen.Gen, ptr %t80, i32 0, i32 44 +ok3235: + %t82 = getelementptr inbounds %S.gen.Gen, ptr %t80, i32 0, i32 45 %t83 = load i64, ptr %t82 %t84 = icmp sge i64 %t79, %t83 - br label %logic.rend3122 -logic.rend3122: - br label %logic.end3113 -logic.end3113: - %t85 = phi i1 [ false, %logic.from3111 ], [ %t84, %logic.rend3122 ] - br i1 %t85, label %then3123, label %endif3125 -then3123: - br label %for.step3098 -endif3125: + br label %logic.rend3236 +logic.rend3236: + br label %logic.end3227 +logic.end3227: + %t85 = phi i1 [ false, %logic.from3225 ], [ %t84, %logic.rend3236 ] + br i1 %t85, label %then3237, label %endif3239 +then3237: + br label %for.step3212 +endif3239: %t86 = load i64, ptr %a19 %t87 = mul i64 %t86, 100000 %t88 = load i64, ptr %a32 %t89 = add i64 %t87, %t88 ret i64 %t89 -endif3108: - br label %for.step3098 -for.step3098: +endif3222: + br label %for.step3212 +for.step3212: %t90 = load i64, ptr %a32 %t91 = add i64 %t90, 1 store i64 %t91, ptr %a32 - br label %for.cond3096 -for.end3099: - br label %for.step3088 -for.step3088: + br label %for.cond3210 +for.end3213: + br label %for.step3202 +for.step3202: %t92 = load i64, ptr %a8 %t93 = add i64 %t92, 1 store i64 %t93, ptr %a8 - br label %for.cond3086 -for.end3089: + br label %for.cond3200 +for.end3203: ret i64 -1 } @@ -35035,22 +36407,22 @@ entry: store i64 %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic3126, label %ok3127 -panic3126: - call void @finch_panic(ptr @.str.1969, i64 1298, ptr @.str.1970) + br i1 %t4, label %panic3240, label %ok3241 +panic3240: + call void @finch_panic(ptr @.str.2041, i64 1361, ptr @.str.2042) unreachable -ok3127: +ok3241: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 10 %t6 = load i64, ptr %a2 %t7 = sdiv i64 %t6, 100000 %t8 = load { ptr, i64, i64 }, ptr %t5 %t9 = extractvalue { ptr, i64, i64 } %t8, 1 %t10 = icmp uge i64 %t7, %t9 - br i1 %t10, label %range3128, label %inrange3129 -range3128: - call void @finch_panic_index(ptr @.str.1971, i64 1298, i64 %t7, i64 %t9) + br i1 %t10, label %range3242, label %inrange3243 +range3242: + call void @finch_panic_index(ptr @.str.2043, i64 1361, i64 %t7, i64 %t9) unreachable -inrange3129: +inrange3243: %t11 = extractvalue { ptr, i64, i64 } %t8, 0 %t12 = getelementptr inbounds %S.gen.Scope, ptr %t11, i64 %t7 %t13 = getelementptr inbounds %S.gen.Scope, ptr %t12, i32 0, i32 0 @@ -35059,11 +36431,11 @@ inrange3129: %t16 = load { ptr, i64, i64 }, ptr %t13 %t17 = extractvalue { ptr, i64, i64 } %t16, 1 %t18 = icmp uge i64 %t15, %t17 - br i1 %t18, label %range3130, label %inrange3131 -range3130: - call void @finch_panic_index(ptr @.str.1972, i64 1298, i64 %t15, i64 %t17) + br i1 %t18, label %range3244, label %inrange3245 +range3244: + call void @finch_panic_index(ptr @.str.2044, i64 1361, i64 %t15, i64 %t17) unreachable -inrange3131: +inrange3245: %t19 = extractvalue { ptr, i64, i64 } %t16, 0 %t20 = getelementptr inbounds %S.gen.Var, ptr %t19, i64 %t15 %t21 = load %S.gen.Var, ptr %t20 @@ -35088,38 +36460,38 @@ entry: store { ptr, i64, i64 } %p2, ptr %a3 %t4 = load ptr, ptr %a1 %t5 = icmp eq ptr %t4, null - br i1 %t5, label %panic3132, label %ok3133 -panic3132: - call void @finch_panic(ptr @.str.1973, i64 1302, ptr @.str.1974) + br i1 %t5, label %panic3246, label %ok3247 +panic3246: + call void @finch_panic(ptr @.str.2045, i64 1365, ptr @.str.2046) unreachable -ok3133: +ok3247: %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 15 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t6, i32 0, i32 1 %t8 = load i64, ptr %t7 store i64 0, ptr %a9 - br label %for.cond3134 -for.cond3134: + br label %for.cond3248 +for.cond3248: %t10 = load i64, ptr %a9 %t11 = icmp slt i64 %t10, %t8 - br i1 %t11, label %for.body3135, label %for.end3137 -for.body3135: + br i1 %t11, label %for.body3249, label %for.end3251 +for.body3249: %t12 = load ptr, ptr %a1 %t13 = icmp eq ptr %t12, null - br i1 %t13, label %panic3138, label %ok3139 -panic3138: - call void @finch_panic(ptr @.str.1975, i64 1303, ptr @.str.1976) + br i1 %t13, label %panic3252, label %ok3253 +panic3252: + call void @finch_panic(ptr @.str.2047, i64 1366, ptr @.str.2048) unreachable -ok3139: +ok3253: %t14 = getelementptr inbounds %S.gen.Gen, ptr %t12, i32 0, i32 15 %t15 = load i64, ptr %a9 %t16 = load { ptr, i64, i64 }, ptr %t14 %t17 = extractvalue { ptr, i64, i64 } %t16, 1 %t18 = icmp uge i64 %t15, %t17 - br i1 %t18, label %range3140, label %inrange3141 -range3140: - call void @finch_panic_index(ptr @.str.1977, i64 1303, i64 %t15, i64 %t17) + br i1 %t18, label %range3254, label %inrange3255 +range3254: + call void @finch_panic_index(ptr @.str.2049, i64 1366, i64 %t15, i64 %t17) unreachable -inrange3141: +inrange3255: %t19 = extractvalue { ptr, i64, i64 } %t16, 0 %t20 = getelementptr inbounds %S.gen.FnSig, ptr %t19, i64 %t15 %t21 = getelementptr inbounds %S.gen.FnSig, ptr %t20, i32 0, i32 0 @@ -35129,27 +36501,27 @@ inrange3141: store { ptr, i64, i64 } %t23, ptr %a25 %t26 = call i32 @finch_str_eq(ptr %a24, ptr %a25) %t27 = icmp ne i32 %t26, 0 - br label %logic.from3142 -logic.from3142: - br i1 %t27, label %logic.rhs3143, label %logic.end3144 -logic.rhs3143: + br label %logic.from3256 +logic.from3256: + br i1 %t27, label %logic.rhs3257, label %logic.end3258 +logic.rhs3257: %t28 = load ptr, ptr %a1 %t29 = icmp eq ptr %t28, null - br i1 %t29, label %panic3145, label %ok3146 -panic3145: - call void @finch_panic(ptr @.str.1978, i64 1303, ptr @.str.1979) + br i1 %t29, label %panic3259, label %ok3260 +panic3259: + call void @finch_panic(ptr @.str.2050, i64 1366, ptr @.str.2051) unreachable -ok3146: +ok3260: %t30 = getelementptr inbounds %S.gen.Gen, ptr %t28, i32 0, i32 15 %t31 = load i64, ptr %a9 %t32 = load { ptr, i64, i64 }, ptr %t30 %t33 = extractvalue { ptr, i64, i64 } %t32, 1 %t34 = icmp uge i64 %t31, %t33 - br i1 %t34, label %range3147, label %inrange3148 -range3147: - call void @finch_panic_index(ptr @.str.1980, i64 1303, i64 %t31, i64 %t33) + br i1 %t34, label %range3261, label %inrange3262 +range3261: + call void @finch_panic_index(ptr @.str.2052, i64 1366, i64 %t31, i64 %t33) unreachable -inrange3148: +inrange3262: %t35 = extractvalue { ptr, i64, i64 } %t32, 0 %t36 = getelementptr inbounds %S.gen.FnSig, ptr %t35, i64 %t31 %t37 = getelementptr inbounds %S.gen.FnSig, ptr %t36, i32 0, i32 1 @@ -35159,55 +36531,55 @@ inrange3148: store { ptr, i64, i64 } %t39, ptr %a41 %t42 = call i32 @finch_str_eq(ptr %a40, ptr %a41) %t43 = icmp ne i32 %t42, 0 - br label %logic.rend3149 -logic.rend3149: - br label %logic.end3144 -logic.end3144: - %t44 = phi i1 [ false, %logic.from3142 ], [ %t43, %logic.rend3149 ] - br label %logic.from3150 -logic.from3150: - br i1 %t44, label %logic.rhs3151, label %logic.end3152 -logic.rhs3151: + br label %logic.rend3263 +logic.rend3263: + br label %logic.end3258 +logic.end3258: + %t44 = phi i1 [ false, %logic.from3256 ], [ %t43, %logic.rend3263 ] + br label %logic.from3264 +logic.from3264: + br i1 %t44, label %logic.rhs3265, label %logic.end3266 +logic.rhs3265: %t45 = load ptr, ptr %a1 %t46 = icmp eq ptr %t45, null - br i1 %t46, label %panic3153, label %ok3154 -panic3153: - call void @finch_panic(ptr @.str.1981, i64 1303, ptr @.str.1982) + br i1 %t46, label %panic3267, label %ok3268 +panic3267: + call void @finch_panic(ptr @.str.2053, i64 1366, ptr @.str.2054) unreachable -ok3154: +ok3268: %t47 = getelementptr inbounds %S.gen.Gen, ptr %t45, i32 0, i32 15 %t48 = load i64, ptr %a9 %t49 = load { ptr, i64, i64 }, ptr %t47 %t50 = extractvalue { ptr, i64, i64 } %t49, 1 %t51 = icmp uge i64 %t48, %t50 - br i1 %t51, label %range3155, label %inrange3156 -range3155: - call void @finch_panic_index(ptr @.str.1983, i64 1303, i64 %t48, i64 %t50) + br i1 %t51, label %range3269, label %inrange3270 +range3269: + call void @finch_panic_index(ptr @.str.2055, i64 1366, i64 %t48, i64 %t50) unreachable -inrange3156: +inrange3270: %t52 = extractvalue { ptr, i64, i64 } %t49, 0 %t53 = getelementptr inbounds %S.gen.FnSig, ptr %t52, i64 %t48 %t54 = getelementptr inbounds %S.gen.FnSig, ptr %t53, i32 0, i32 2 %t55 = getelementptr inbounds { ptr, i64, i64 }, ptr %t54, i32 0, i32 1 %t56 = load i64, ptr %t55 %t57 = icmp eq i64 %t56, 0 - br label %logic.rend3157 -logic.rend3157: - br label %logic.end3152 -logic.end3152: - %t58 = phi i1 [ false, %logic.from3150 ], [ %t57, %logic.rend3157 ] - br i1 %t58, label %then3158, label %endif3160 -then3158: + br label %logic.rend3271 +logic.rend3271: + br label %logic.end3266 +logic.end3266: + %t58 = phi i1 [ false, %logic.from3264 ], [ %t57, %logic.rend3271 ] + br i1 %t58, label %then3272, label %endif3274 +then3272: %t59 = load i64, ptr %a9 ret i64 %t59 -endif3160: - br label %for.step3136 -for.step3136: +endif3274: + br label %for.step3250 +for.step3250: %t60 = load i64, ptr %a9 %t61 = add i64 %t60, 1 store i64 %t61, ptr %a9 - br label %for.cond3134 -for.end3137: + br label %for.cond3248 +for.end3251: ret i64 -1 } @@ -35230,38 +36602,38 @@ entry: store { ptr, i64, i64 } %p3, ptr %a4 %t5 = load ptr, ptr %a1 %t6 = icmp eq ptr %t5, null - br i1 %t6, label %panic3161, label %ok3162 -panic3161: - call void @finch_panic(ptr @.str.1984, i64 1311, ptr @.str.1985) + br i1 %t6, label %panic3275, label %ok3276 +panic3275: + call void @finch_panic(ptr @.str.2056, i64 1374, ptr @.str.2057) unreachable -ok3162: +ok3276: %t7 = getelementptr inbounds %S.gen.Gen, ptr %t5, i32 0, i32 15 %t8 = getelementptr inbounds { ptr, i64, i64 }, ptr %t7, i32 0, i32 1 %t9 = load i64, ptr %t8 store i64 0, ptr %a10 - br label %for.cond3163 -for.cond3163: + br label %for.cond3277 +for.cond3277: %t11 = load i64, ptr %a10 %t12 = icmp slt i64 %t11, %t9 - br i1 %t12, label %for.body3164, label %for.end3166 -for.body3164: + br i1 %t12, label %for.body3278, label %for.end3280 +for.body3278: %t13 = load ptr, ptr %a1 %t14 = icmp eq ptr %t13, null - br i1 %t14, label %panic3167, label %ok3168 -panic3167: - call void @finch_panic(ptr @.str.1986, i64 1312, ptr @.str.1987) + br i1 %t14, label %panic3281, label %ok3282 +panic3281: + call void @finch_panic(ptr @.str.2058, i64 1375, ptr @.str.2059) unreachable -ok3168: +ok3282: %t15 = getelementptr inbounds %S.gen.Gen, ptr %t13, i32 0, i32 15 %t16 = load i64, ptr %a10 %t17 = load { ptr, i64, i64 }, ptr %t15 %t18 = extractvalue { ptr, i64, i64 } %t17, 1 %t19 = icmp uge i64 %t16, %t18 - br i1 %t19, label %range3169, label %inrange3170 -range3169: - call void @finch_panic_index(ptr @.str.1988, i64 1312, i64 %t16, i64 %t18) + br i1 %t19, label %range3283, label %inrange3284 +range3283: + call void @finch_panic_index(ptr @.str.2060, i64 1375, i64 %t16, i64 %t18) unreachable -inrange3170: +inrange3284: %t20 = extractvalue { ptr, i64, i64 } %t17, 0 %t21 = getelementptr inbounds %S.gen.FnSig, ptr %t20, i64 %t16 %t22 = getelementptr inbounds %S.gen.FnSig, ptr %t21, i32 0, i32 3 @@ -35271,27 +36643,27 @@ inrange3170: store { ptr, i64, i64 } %t24, ptr %a26 %t27 = call i32 @finch_str_eq(ptr %a25, ptr %a26) %t28 = icmp ne i32 %t27, 0 - br label %logic.from3171 -logic.from3171: - br i1 %t28, label %logic.rhs3172, label %logic.end3173 -logic.rhs3172: + br label %logic.from3285 +logic.from3285: + br i1 %t28, label %logic.rhs3286, label %logic.end3287 +logic.rhs3286: %t29 = load ptr, ptr %a1 %t30 = icmp eq ptr %t29, null - br i1 %t30, label %panic3174, label %ok3175 -panic3174: - call void @finch_panic(ptr @.str.1989, i64 1312, ptr @.str.1990) + br i1 %t30, label %panic3288, label %ok3289 +panic3288: + call void @finch_panic(ptr @.str.2061, i64 1375, ptr @.str.2062) unreachable -ok3175: +ok3289: %t31 = getelementptr inbounds %S.gen.Gen, ptr %t29, i32 0, i32 15 %t32 = load i64, ptr %a10 %t33 = load { ptr, i64, i64 }, ptr %t31 %t34 = extractvalue { ptr, i64, i64 } %t33, 1 %t35 = icmp uge i64 %t32, %t34 - br i1 %t35, label %range3176, label %inrange3177 -range3176: - call void @finch_panic_index(ptr @.str.1991, i64 1312, i64 %t32, i64 %t34) + br i1 %t35, label %range3290, label %inrange3291 +range3290: + call void @finch_panic_index(ptr @.str.2063, i64 1375, i64 %t32, i64 %t34) unreachable -inrange3177: +inrange3291: %t36 = extractvalue { ptr, i64, i64 } %t33, 0 %t37 = getelementptr inbounds %S.gen.FnSig, ptr %t36, i64 %t32 %t38 = getelementptr inbounds %S.gen.FnSig, ptr %t37, i32 0, i32 2 @@ -35301,32 +36673,32 @@ inrange3177: store { ptr, i64, i64 } %t40, ptr %a42 %t43 = call i32 @finch_str_eq(ptr %a41, ptr %a42) %t44 = icmp ne i32 %t43, 0 - br label %logic.rend3178 -logic.rend3178: - br label %logic.end3173 -logic.end3173: - %t45 = phi i1 [ false, %logic.from3171 ], [ %t44, %logic.rend3178 ] - br label %logic.from3179 -logic.from3179: - br i1 %t45, label %logic.rhs3180, label %logic.end3181 -logic.rhs3180: + br label %logic.rend3292 +logic.rend3292: + br label %logic.end3287 +logic.end3287: + %t45 = phi i1 [ false, %logic.from3285 ], [ %t44, %logic.rend3292 ] + br label %logic.from3293 +logic.from3293: + br i1 %t45, label %logic.rhs3294, label %logic.end3295 +logic.rhs3294: %t46 = load ptr, ptr %a1 %t47 = icmp eq ptr %t46, null - br i1 %t47, label %panic3182, label %ok3183 -panic3182: - call void @finch_panic(ptr @.str.1992, i64 1312, ptr @.str.1993) + br i1 %t47, label %panic3296, label %ok3297 +panic3296: + call void @finch_panic(ptr @.str.2064, i64 1375, ptr @.str.2065) unreachable -ok3183: +ok3297: %t48 = getelementptr inbounds %S.gen.Gen, ptr %t46, i32 0, i32 15 %t49 = load i64, ptr %a10 %t50 = load { ptr, i64, i64 }, ptr %t48 %t51 = extractvalue { ptr, i64, i64 } %t50, 1 %t52 = icmp uge i64 %t49, %t51 - br i1 %t52, label %range3184, label %inrange3185 -range3184: - call void @finch_panic_index(ptr @.str.1994, i64 1312, i64 %t49, i64 %t51) + br i1 %t52, label %range3298, label %inrange3299 +range3298: + call void @finch_panic_index(ptr @.str.2066, i64 1375, i64 %t49, i64 %t51) unreachable -inrange3185: +inrange3299: %t53 = extractvalue { ptr, i64, i64 } %t50, 0 %t54 = getelementptr inbounds %S.gen.FnSig, ptr %t53, i64 %t49 %t55 = getelementptr inbounds %S.gen.FnSig, ptr %t54, i32 0, i32 1 @@ -35336,23 +36708,23 @@ inrange3185: store { ptr, i64, i64 } %t57, ptr %a59 %t60 = call i32 @finch_str_eq(ptr %a58, ptr %a59) %t61 = icmp ne i32 %t60, 0 - br label %logic.rend3186 -logic.rend3186: - br label %logic.end3181 -logic.end3181: - %t62 = phi i1 [ false, %logic.from3179 ], [ %t61, %logic.rend3186 ] - br i1 %t62, label %then3187, label %endif3189 -then3187: + br label %logic.rend3300 +logic.rend3300: + br label %logic.end3295 +logic.end3295: + %t62 = phi i1 [ false, %logic.from3293 ], [ %t61, %logic.rend3300 ] + br i1 %t62, label %then3301, label %endif3303 +then3301: %t63 = load i64, ptr %a10 ret i64 %t63 -endif3189: - br label %for.step3165 -for.step3165: +endif3303: + br label %for.step3279 +for.step3279: %t64 = load i64, ptr %a10 %t65 = add i64 %t64, 1 store i64 %t65, ptr %a10 - br label %for.cond3163 -for.end3166: + br label %for.cond3277 +for.end3280: ret i64 -1 } @@ -35368,61 +36740,61 @@ entry: %t2 = mul i64 28, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t3 = call ptr @finch_alloc(i64 %t2) %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 0 - store { ptr, i64, i64 } { ptr @.str.1995, i64 5, i64 0 }, ptr %t4 + store { ptr, i64, i64 } { ptr @.str.2067, i64 5, i64 0 }, ptr %t4 %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 1 - store { ptr, i64, i64 } { ptr @.str.1996, i64 4, i64 0 }, ptr %t5 + store { ptr, i64, i64 } { ptr @.str.2068, i64 4, i64 0 }, ptr %t5 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 2 - store { ptr, i64, i64 } { ptr @.str.1997, i64 3, i64 0 }, ptr %t6 + store { ptr, i64, i64 } { ptr @.str.2069, i64 3, i64 0 }, ptr %t6 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 3 - store { ptr, i64, i64 } { ptr @.str.1998, i64 3, i64 0 }, ptr %t7 + store { ptr, i64, i64 } { ptr @.str.2070, i64 3, i64 0 }, ptr %t7 %t8 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 4 - store { ptr, i64, i64 } { ptr @.str.1999, i64 4, i64 0 }, ptr %t8 + store { ptr, i64, i64 } { ptr @.str.2071, i64 4, i64 0 }, ptr %t8 %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 5 - store { ptr, i64, i64 } { ptr @.str.2000, i64 5, i64 0 }, ptr %t9 + store { ptr, i64, i64 } { ptr @.str.2072, i64 5, i64 0 }, ptr %t9 %t10 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 6 - store { ptr, i64, i64 } { ptr @.str.2001, i64 4, i64 0 }, ptr %t10 + store { ptr, i64, i64 } { ptr @.str.2073, i64 4, i64 0 }, ptr %t10 %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 7 - store { ptr, i64, i64 } { ptr @.str.2002, i64 9, i64 0 }, ptr %t11 + store { ptr, i64, i64 } { ptr @.str.2074, i64 9, i64 0 }, ptr %t11 %t12 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 8 - store { ptr, i64, i64 } { ptr @.str.2003, i64 10, i64 0 }, ptr %t12 + store { ptr, i64, i64 } { ptr @.str.2075, i64 10, i64 0 }, ptr %t12 %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 9 - store { ptr, i64, i64 } { ptr @.str.2004, i64 11, i64 0 }, ptr %t13 + store { ptr, i64, i64 } { ptr @.str.2076, i64 11, i64 0 }, ptr %t13 %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 10 - store { ptr, i64, i64 } { ptr @.str.2005, i64 5, i64 0 }, ptr %t14 + store { ptr, i64, i64 } { ptr @.str.2077, i64 5, i64 0 }, ptr %t14 %t15 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 11 - store { ptr, i64, i64 } { ptr @.str.2006, i64 4, i64 0 }, ptr %t15 + store { ptr, i64, i64 } { ptr @.str.2078, i64 4, i64 0 }, ptr %t15 %t16 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 12 - store { ptr, i64, i64 } { ptr @.str.2007, i64 5, i64 0 }, ptr %t16 + store { ptr, i64, i64 } { ptr @.str.2079, i64 5, i64 0 }, ptr %t16 %t17 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 13 - store { ptr, i64, i64 } { ptr @.str.2008, i64 3, i64 0 }, ptr %t17 + store { ptr, i64, i64 } { ptr @.str.2080, i64 3, i64 0 }, ptr %t17 %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 14 - store { ptr, i64, i64 } { ptr @.str.2009, i64 4, i64 0 }, ptr %t18 + store { ptr, i64, i64 } { ptr @.str.2081, i64 4, i64 0 }, ptr %t18 %t19 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 15 - store { ptr, i64, i64 } { ptr @.str.2010, i64 3, i64 0 }, ptr %t19 + store { ptr, i64, i64 } { ptr @.str.2082, i64 3, i64 0 }, ptr %t19 %t20 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 16 - store { ptr, i64, i64 } { ptr @.str.2011, i64 11, i64 0 }, ptr %t20 + store { ptr, i64, i64 } { ptr @.str.2083, i64 11, i64 0 }, ptr %t20 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 17 - store { ptr, i64, i64 } { ptr @.str.2012, i64 2, i64 0 }, ptr %t21 + store { ptr, i64, i64 } { ptr @.str.2084, i64 2, i64 0 }, ptr %t21 %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 18 - store { ptr, i64, i64 } { ptr @.str.2013, i64 3, i64 0 }, ptr %t22 + store { ptr, i64, i64 } { ptr @.str.2085, i64 3, i64 0 }, ptr %t22 %t23 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 19 - store { ptr, i64, i64 } { ptr @.str.2014, i64 3, i64 0 }, ptr %t23 + store { ptr, i64, i64 } { ptr @.str.2086, i64 3, i64 0 }, ptr %t23 %t24 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 20 - store { ptr, i64, i64 } { ptr @.str.2015, i64 3, i64 0 }, ptr %t24 + store { ptr, i64, i64 } { ptr @.str.2087, i64 3, i64 0 }, ptr %t24 %t25 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 21 - store { ptr, i64, i64 } { ptr @.str.2016, i64 2, i64 0 }, ptr %t25 + store { ptr, i64, i64 } { ptr @.str.2088, i64 2, i64 0 }, ptr %t25 %t26 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 22 - store { ptr, i64, i64 } { ptr @.str.2017, i64 3, i64 0 }, ptr %t26 + store { ptr, i64, i64 } { ptr @.str.2089, i64 3, i64 0 }, ptr %t26 %t27 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 23 - store { ptr, i64, i64 } { ptr @.str.2018, i64 3, i64 0 }, ptr %t27 + store { ptr, i64, i64 } { ptr @.str.2090, i64 3, i64 0 }, ptr %t27 %t28 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 24 - store { ptr, i64, i64 } { ptr @.str.2019, i64 3, i64 0 }, ptr %t28 + store { ptr, i64, i64 } { ptr @.str.2091, i64 3, i64 0 }, ptr %t28 %t29 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 25 - store { ptr, i64, i64 } { ptr @.str.2020, i64 3, i64 0 }, ptr %t29 + store { ptr, i64, i64 } { ptr @.str.2092, i64 3, i64 0 }, ptr %t29 %t30 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 26 - store { ptr, i64, i64 } { ptr @.str.2021, i64 3, i64 0 }, ptr %t30 + store { ptr, i64, i64 } { ptr @.str.2093, i64 3, i64 0 }, ptr %t30 %t31 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 27 - store { ptr, i64, i64 } { ptr @.str.2022, i64 5, i64 0 }, ptr %t31 + store { ptr, i64, i64 } { ptr @.str.2094, i64 5, i64 0 }, ptr %t31 %t32 = insertvalue { ptr, i64, i64 } undef, ptr %t3, 0 %t33 = insertvalue { ptr, i64, i64 } %t32, i64 28, 1 %t34 = insertvalue { ptr, i64, i64 } %t33, i64 28, 2 @@ -35433,27 +36805,27 @@ entry: %t39 = load i64, ptr %t36 %t40 = load ptr, ptr %a35 store i64 0, ptr %a41 - br label %find.cond3190 -find.cond3190: + br label %find.cond3304 +find.cond3304: %t42 = load i64, ptr %a41 %t43 = icmp slt i64 %t42, %t39 - br i1 %t43, label %find.body3191, label %find.end3194 -find.body3191: + br i1 %t43, label %find.body3305, label %find.end3308 +find.body3305: %t44 = getelementptr inbounds { ptr, i64, i64 }, ptr %t40, i64 %t42 %t45 = load { ptr, i64, i64 }, ptr %t44 store { ptr, i64, i64 } %t45, ptr %a46 store { ptr, i64, i64 } %t37, ptr %a47 %t48 = call i32 @finch_str_eq(ptr %a46, ptr %a47) %t49 = icmp ne i32 %t48, 0 - br i1 %t49, label %find.hit3192, label %find.next3193 -find.hit3192: + br i1 %t49, label %find.hit3306, label %find.next3307 +find.hit3306: store i64 %t42, ptr %a38 - br label %find.end3194 -find.next3193: + br label %find.end3308 +find.next3307: %t50 = add i64 %t42, 1 store i64 %t50, ptr %a41 - br label %find.cond3190 -find.end3194: + br label %find.cond3304 +find.end3308: %t51 = load i64, ptr %a38 %t52 = icmp sge i64 %t51, 0 call void @finch.drop.arr_str(ptr %a35) @@ -35612,31 +36984,31 @@ entry: %t9 = load { ptr, i64, i64 }, ptr %a3 %t10 = call i64 @finch.gen.lookup(ptr %t8, { ptr, i64, i64 } %t9) %t11 = icmp sge i64 %t10, 0 - br label %logic.from3195 -logic.from3195: - br i1 %t11, label %logic.rhs3196, label %logic.end3197 -logic.rhs3196: + br label %logic.from3309 +logic.from3309: + br i1 %t11, label %logic.rhs3310, label %logic.end3311 +logic.rhs3310: %t12 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t12, ptr %a13 - store { ptr, i64, i64 } { ptr @.str.2023, i64 3, i64 0 }, ptr %a14 + store { ptr, i64, i64 } { ptr @.str.2095, i64 3, i64 0 }, ptr %a14 %t15 = call i32 @finch_str_eq(ptr %a13, ptr %a14) %t16 = icmp eq i32 %t15, 0 - br label %logic.rend3198 -logic.rend3198: - br label %logic.end3197 -logic.end3197: - %t17 = phi i1 [ false, %logic.from3195 ], [ %t16, %logic.rend3198 ] - br i1 %t17, label %then3199, label %endif3201 -then3199: + br label %logic.rend3312 +logic.rend3312: + br label %logic.end3311 +logic.end3311: + %t17 = phi i1 [ false, %logic.from3309 ], [ %t16, %logic.rend3312 ] + br i1 %t17, label %then3313, label %endif3315 +then3313: %t18 = load ptr, ptr %a1 %t19 = load %S.ast.Node, ptr %a2 %t20 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.2024, i64 18, i64 0 }, ptr %a22 + store { ptr, i64, i64 } { ptr @.str.2096, i64 18, i64 0 }, ptr %a22 store { ptr, i64, i64 } %t20, ptr %a23 call void @finch_str_concat(ptr %a21, ptr %a22, ptr %a23) %t24 = load { ptr, i64, i64 }, ptr %a21 store { ptr, i64, i64 } %t24, ptr %a26 - store { ptr, i64, i64 } { ptr @.str.2025, i64 21, i64 0 }, ptr %a27 + store { ptr, i64, i64 } { ptr @.str.2097, i64 21, i64 0 }, ptr %a27 call void @finch_str_concat(ptr %a25, ptr %a26, ptr %a27) store { ptr, i64, i64 } %t24, ptr %a28 call void @finch_str_drop(ptr %a28) @@ -35644,32 +37016,32 @@ then3199: call void @finch.gen.fail(ptr %t18, %S.ast.Node %t19, { ptr, i64, i64 } %t29) store { ptr, i64, i64 } %t29, ptr %a30 call void @finch_str_drop(ptr %a30) - br label %endif3201 -endif3201: + br label %endif3315 +endif3315: %t31 = load ptr, ptr %a1 %t32 = load ptr, ptr %a1 %t33 = icmp eq ptr %t32, null - br i1 %t33, label %panic3202, label %ok3203 -panic3202: - call void @finch_panic(ptr @.str.2026, i64 1330, ptr @.str.2027) + br i1 %t33, label %panic3316, label %ok3317 +panic3316: + call void @finch_panic(ptr @.str.2098, i64 1393, ptr @.str.2099) unreachable -ok3203: +ok3317: %t34 = getelementptr inbounds %S.gen.Gen, ptr %t32, i32 0, i32 14 %t35 = load { ptr, i64, i64 }, ptr %t34 %t36 = load { ptr, i64, i64 }, ptr %a3 %t37 = call i64 @finch.gen.findFn(ptr %t31, { ptr, i64, i64 } %t35, { ptr, i64, i64 } %t36) %t38 = icmp sge i64 %t37, 0 - br i1 %t38, label %then3204, label %endif3206 -then3204: + br i1 %t38, label %then3318, label %endif3320 +then3318: %t39 = load ptr, ptr %a1 %t40 = load %S.ast.Node, ptr %a2 %t41 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.2028, i64 1, i64 0 }, ptr %a43 + store { ptr, i64, i64 } { ptr @.str.2100, i64 1, i64 0 }, ptr %a43 store { ptr, i64, i64 } %t41, ptr %a44 call void @finch_str_concat(ptr %a42, ptr %a43, ptr %a44) %t45 = load { ptr, i64, i64 }, ptr %a42 store { ptr, i64, i64 } %t45, ptr %a47 - store { ptr, i64, i64 } { ptr @.str.2029, i64 35, i64 0 }, ptr %a48 + store { ptr, i64, i64 } { ptr @.str.2101, i64 35, i64 0 }, ptr %a48 call void @finch_str_concat(ptr %a46, ptr %a47, ptr %a48) store { ptr, i64, i64 } %t45, ptr %a49 call void @finch_str_drop(ptr %a49) @@ -35677,21 +37049,21 @@ then3204: call void @finch.gen.fail(ptr %t39, %S.ast.Node %t40, { ptr, i64, i64 } %t50) store { ptr, i64, i64 } %t50, ptr %a51 call void @finch_str_drop(ptr %a51) - br label %endif3206 -endif3206: + br label %endif3320 +endif3320: %t52 = load { ptr, i64, i64 }, ptr %a3 %t53 = call i1 @finch.gen.isBuiltin({ ptr, i64, i64 } %t52) - br i1 %t53, label %then3207, label %endif3209 -then3207: + br i1 %t53, label %then3321, label %endif3323 +then3321: %t54 = load ptr, ptr %a1 %t55 = load %S.ast.Node, ptr %a2 %t56 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.2030, i64 1, i64 0 }, ptr %a58 + store { ptr, i64, i64 } { ptr @.str.2102, i64 1, i64 0 }, ptr %a58 store { ptr, i64, i64 } %t56, ptr %a59 call void @finch_str_concat(ptr %a57, ptr %a58, ptr %a59) %t60 = load { ptr, i64, i64 }, ptr %a57 store { ptr, i64, i64 } %t60, ptr %a62 - store { ptr, i64, i64 } { ptr @.str.2031, i64 38, i64 0 }, ptr %a63 + store { ptr, i64, i64 } { ptr @.str.2103, i64 38, i64 0 }, ptr %a63 call void @finch_str_concat(ptr %a61, ptr %a62, ptr %a63) store { ptr, i64, i64 } %t60, ptr %a64 call void @finch_str_drop(ptr %a64) @@ -35699,8 +37071,8 @@ then3207: call void @finch.gen.fail(ptr %t54, %S.ast.Node %t55, { ptr, i64, i64 } %t65) store { ptr, i64, i64 } %t65, ptr %a66 call void @finch_str_drop(ptr %a66) - br label %endif3209 -endif3209: + br label %endif3323 +endif3323: %t67 = load ptr, ptr %a1 %t68 = load ptr, ptr %a1 %t69 = load %S.ast.Type, ptr %a4 @@ -35720,50 +37092,50 @@ endif3209: call void @finch_str_drop(ptr %a80) %t81 = load ptr, ptr %a1 %t82 = icmp eq ptr %t81, null - br i1 %t82, label %panic3210, label %ok3211 -panic3210: - call void @finch_panic(ptr @.str.2032, i64 1338, ptr @.str.2033) + br i1 %t82, label %panic3324, label %ok3325 +panic3324: + call void @finch_panic(ptr @.str.2104, i64 1401, ptr @.str.2105) unreachable -ok3211: +ok3325: %t83 = getelementptr inbounds %S.gen.Gen, ptr %t81, i32 0, i32 10 %t84 = getelementptr inbounds { ptr, i64, i64 }, ptr %t83, i32 0, i32 1 %t85 = load i64, ptr %t84 %t86 = sub i64 %t85, 1 store i64 %t86, ptr %a87 %t88 = load i1, ptr %a7 - br label %logic.from3212 -logic.from3212: - br i1 %t88, label %logic.rhs3213, label %logic.end3214 -logic.rhs3213: + br label %logic.from3326 +logic.from3326: + br i1 %t88, label %logic.rhs3327, label %logic.end3328 +logic.rhs3327: %t89 = load ptr, ptr %a1 %t90 = load %S.ast.Type, ptr %a4 %t91 = call i1 @finch.gen.owning(ptr %t89, %S.ast.Type %t90) - br label %logic.rend3215 -logic.rend3215: - br label %logic.end3214 -logic.end3214: - %t92 = phi i1 [ false, %logic.from3212 ], [ %t91, %logic.rend3215 ] + br label %logic.rend3329 +logic.rend3329: + br label %logic.end3328 +logic.end3328: + %t92 = phi i1 [ false, %logic.from3326 ], [ %t91, %logic.rend3329 ] store i1 %t92, ptr %a93 %t94 = load i1, ptr %a93 - br i1 %t94, label %then3216, label %endif3218 -then3216: + br i1 %t94, label %then3330, label %endif3332 +then3330: %t95 = load ptr, ptr %a1 %t96 = icmp eq ptr %t95, null - br i1 %t96, label %panic3219, label %ok3220 -panic3219: - call void @finch_panic(ptr @.str.2034, i64 1341, ptr @.str.2035) + br i1 %t96, label %panic3333, label %ok3334 +panic3333: + call void @finch_panic(ptr @.str.2106, i64 1404, ptr @.str.2107) unreachable -ok3220: +ok3334: %t97 = getelementptr inbounds %S.gen.Gen, ptr %t95, i32 0, i32 10 %t98 = load i64, ptr %a87 %t99 = load { ptr, i64, i64 }, ptr %t97 %t100 = extractvalue { ptr, i64, i64 } %t99, 1 %t101 = icmp uge i64 %t98, %t100 - br i1 %t101, label %range3221, label %inrange3222 -range3221: - call void @finch_panic_index(ptr @.str.2036, i64 1341, i64 %t98, i64 %t100) + br i1 %t101, label %range3335, label %inrange3336 +range3335: + call void @finch_panic_index(ptr @.str.2108, i64 1404, i64 %t98, i64 %t100) unreachable -inrange3222: +inrange3336: %t102 = extractvalue { ptr, i64, i64 } %t99, 0 %t103 = getelementptr inbounds %S.gen.Scope, ptr %t102, i64 %t98 %t104 = getelementptr inbounds %S.gen.Scope, ptr %t103, i32 0, i32 3 @@ -35771,21 +37143,21 @@ inrange3222: %t106 = insertvalue %S.gen.Cleanup zeroinitializer, i1 false, 0 %t107 = load ptr, ptr %a1 %t108 = icmp eq ptr %t107, null - br i1 %t108, label %panic3223, label %ok3224 -panic3223: - call void @finch_panic(ptr @.str.2037, i64 1341, ptr @.str.2038) + br i1 %t108, label %panic3337, label %ok3338 +panic3337: + call void @finch_panic(ptr @.str.2109, i64 1404, ptr @.str.2110) unreachable -ok3224: +ok3338: %t109 = getelementptr inbounds %S.gen.Gen, ptr %t107, i32 0, i32 10 %t110 = load i64, ptr %a87 %t111 = load { ptr, i64, i64 }, ptr %t109 %t112 = extractvalue { ptr, i64, i64 } %t111, 1 %t113 = icmp uge i64 %t110, %t112 - br i1 %t113, label %range3225, label %inrange3226 -range3225: - call void @finch_panic_index(ptr @.str.2039, i64 1341, i64 %t110, i64 %t112) + br i1 %t113, label %range3339, label %inrange3340 +range3339: + call void @finch_panic_index(ptr @.str.2111, i64 1404, i64 %t110, i64 %t112) unreachable -inrange3226: +inrange3340: %t114 = extractvalue { ptr, i64, i64 } %t111, 0 %t115 = getelementptr inbounds %S.gen.Scope, ptr %t114, i64 %t110 %t116 = getelementptr inbounds %S.gen.Scope, ptr %t115, i32 0, i32 0 @@ -35799,25 +37171,25 @@ inrange3226: %t123 = getelementptr inbounds %S.gen.Cleanup, ptr %t122, i64 %t120 store %S.gen.Cleanup %t119, ptr %t123 store i64 %t121, ptr %t105 - br label %endif3218 -endif3218: + br label %endif3332 +endif3332: %t124 = load ptr, ptr %a1 %t125 = icmp eq ptr %t124, null - br i1 %t125, label %panic3227, label %ok3228 -panic3227: - call void @finch_panic(ptr @.str.2040, i64 1343, ptr @.str.2041) + br i1 %t125, label %panic3341, label %ok3342 +panic3341: + call void @finch_panic(ptr @.str.2112, i64 1406, ptr @.str.2113) unreachable -ok3228: +ok3342: %t126 = getelementptr inbounds %S.gen.Gen, ptr %t124, i32 0, i32 10 %t127 = load i64, ptr %a87 %t128 = load { ptr, i64, i64 }, ptr %t126 %t129 = extractvalue { ptr, i64, i64 } %t128, 1 %t130 = icmp uge i64 %t127, %t129 - br i1 %t130, label %range3229, label %inrange3230 -range3229: - call void @finch_panic_index(ptr @.str.2042, i64 1343, i64 %t127, i64 %t129) + br i1 %t130, label %range3343, label %inrange3344 +range3343: + call void @finch_panic_index(ptr @.str.2114, i64 1406, i64 %t127, i64 %t129) unreachable -inrange3230: +inrange3344: %t131 = extractvalue { ptr, i64, i64 } %t128, 0 %t132 = getelementptr inbounds %S.gen.Scope, ptr %t131, i64 %t127 %t133 = getelementptr inbounds %S.gen.Scope, ptr %t132, i32 0, i32 0 @@ -35841,34 +37213,34 @@ inrange3230: %t151 = insertvalue %S.gen.Var %t149, i1 %t150, 3 %t152 = load ptr, ptr %a1 %t153 = icmp eq ptr %t152, null - br i1 %t153, label %panic3231, label %ok3232 -panic3231: - call void @finch_panic(ptr @.str.2043, i64 1343, ptr @.str.2044) + br i1 %t153, label %panic3345, label %ok3346 +panic3345: + call void @finch_panic(ptr @.str.2115, i64 1406, ptr @.str.2116) unreachable -ok3232: - %t154 = getelementptr inbounds %S.gen.Gen, ptr %t152, i32 0, i32 24 +ok3346: + %t154 = getelementptr inbounds %S.gen.Gen, ptr %t152, i32 0, i32 25 %t155 = load i64, ptr %t154 %t156 = insertvalue %S.gen.Var %t151, i64 %t155, 4 %t157 = load i1, ptr %a93 %t158 = insertvalue %S.gen.Var %t156, i1 %t157, 5 %t159 = load ptr, ptr %a1 %t160 = icmp eq ptr %t159, null - br i1 %t160, label %panic3233, label %ok3234 -panic3233: - call void @finch_panic(ptr @.str.2045, i64 1343, ptr @.str.2046) + br i1 %t160, label %panic3347, label %ok3348 +panic3347: + call void @finch_panic(ptr @.str.2117, i64 1406, ptr @.str.2118) unreachable -ok3234: +ok3348: %t161 = getelementptr inbounds %S.gen.Gen, ptr %t159, i32 0, i32 1 %t162 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 13 %t163 = load i64, ptr %t162 %t164 = load { ptr, i64, i64 }, ptr %t161 %t165 = extractvalue { ptr, i64, i64 } %t164, 1 %t166 = icmp uge i64 %t163, %t165 - br i1 %t166, label %range3235, label %inrange3236 -range3235: - call void @finch_panic_index(ptr @.str.2047, i64 1343, i64 %t163, i64 %t165) + br i1 %t166, label %range3349, label %inrange3350 +range3349: + call void @finch_panic_index(ptr @.str.2119, i64 1406, i64 %t163, i64 %t165) unreachable -inrange3236: +inrange3350: %t167 = extractvalue { ptr, i64, i64 } %t164, 0 %t168 = getelementptr inbounds { ptr, i64, i64 }, ptr %t167, i64 %t163 %t169 = load { ptr, i64, i64 }, ptr %t168 @@ -35891,12 +37263,12 @@ inrange3236: store i64 %t181, ptr %t134 %t184 = load ptr, ptr %a1 %t185 = icmp eq ptr %t184, null - br i1 %t185, label %panic3237, label %ok3238 -panic3237: - call void @finch_panic(ptr @.str.2048, i64 1344, ptr @.str.2049) + br i1 %t185, label %panic3351, label %ok3352 +panic3351: + call void @finch_panic(ptr @.str.2120, i64 1407, ptr @.str.2121) unreachable -ok3238: - %t186 = getelementptr inbounds %S.gen.Gen, ptr %t184, i32 0, i32 24 +ok3352: + %t186 = getelementptr inbounds %S.gen.Gen, ptr %t184, i32 0, i32 25 %t187 = load i64, ptr %t186 %t188 = add i64 %t187, 1 store i64 %t188, ptr %t186 @@ -35908,91 +37280,91 @@ ok3238: call void @finch.gen.dbgVariable(ptr %t189, %S.ast.Node %t190, { ptr, i64, i64 } %t191, %S.ast.Type %t192, { ptr, i64, i64 } %t193) %t194 = load ptr, ptr %a1 %t195 = icmp eq ptr %t194, null - br i1 %t195, label %panic3239, label %ok3240 -panic3239: - call void @finch_panic(ptr @.str.2050, i64 1346, ptr @.str.2051) + br i1 %t195, label %panic3353, label %ok3354 +panic3353: + call void @finch_panic(ptr @.str.2122, i64 1409, ptr @.str.2123) unreachable -ok3240: - %t196 = getelementptr inbounds %S.gen.Gen, ptr %t194, i32 0, i32 27 +ok3354: + %t196 = getelementptr inbounds %S.gen.Gen, ptr %t194, i32 0, i32 28 %t197 = load i1, ptr %t196 - br label %logic.from3241 -logic.from3241: - br i1 %t197, label %logic.rhs3242, label %logic.end3243 -logic.rhs3242: + br label %logic.from3355 +logic.from3355: + br i1 %t197, label %logic.rhs3356, label %logic.end3357 +logic.rhs3356: %t198 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t198, ptr %a199 - store { ptr, i64, i64 } { ptr @.str.2052, i64 3, i64 0 }, ptr %a200 + store { ptr, i64, i64 } { ptr @.str.2124, i64 3, i64 0 }, ptr %a200 %t201 = call i32 @finch_str_eq(ptr %a199, ptr %a200) %t202 = icmp eq i32 %t201, 0 - br label %logic.rend3244 -logic.rend3244: - br label %logic.end3243 -logic.end3243: - %t203 = phi i1 [ false, %logic.from3241 ], [ %t202, %logic.rend3244 ] - br label %logic.from3245 -logic.from3245: - br i1 %t203, label %logic.rhs3246, label %logic.end3247 -logic.rhs3246: + br label %logic.rend3358 +logic.rend3358: + br label %logic.end3357 +logic.end3357: + %t203 = phi i1 [ false, %logic.from3355 ], [ %t202, %logic.rend3358 ] + br label %logic.from3359 +logic.from3359: + br i1 %t203, label %logic.rhs3360, label %logic.end3361 +logic.rhs3360: %t204 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t204, ptr %a205 - store { ptr, i64, i64 } { ptr @.str.2054, i64 1, i64 0 }, ptr %a207 + store { ptr, i64, i64 } { ptr @.str.2126, i64 1, i64 0 }, ptr %a207 %t208 = call i32 @finch_str_starts(ptr %a205, ptr %a207) %t209 = icmp ne i32 %t208, 0 %t210 = xor i1 %t209, true - br label %logic.rend3248 -logic.rend3248: - br label %logic.end3247 -logic.end3247: - %t211 = phi i1 [ false, %logic.from3245 ], [ %t210, %logic.rend3248 ] - br i1 %t211, label %then3249, label %endif3251 -then3249: + br label %logic.rend3362 +logic.rend3362: + br label %logic.end3361 +logic.end3361: + %t211 = phi i1 [ false, %logic.from3359 ], [ %t210, %logic.rend3362 ] + br i1 %t211, label %then3363, label %endif3365 +then3363: %t212 = load ptr, ptr %a1 %t213 = icmp eq ptr %t212, null - br i1 %t213, label %panic3252, label %ok3253 -panic3252: - call void @finch_panic(ptr @.str.2055, i64 1347, ptr @.str.2056) + br i1 %t213, label %panic3366, label %ok3367 +panic3366: + call void @finch_panic(ptr @.str.2127, i64 1410, ptr @.str.2128) unreachable -ok3253: +ok3367: %t214 = getelementptr inbounds %S.gen.Gen, ptr %t212, i32 0, i32 0 %t215 = load ptr, ptr %a1 %t216 = icmp eq ptr %t215, null - br i1 %t216, label %panic3254, label %ok3255 -panic3254: - call void @finch_panic(ptr @.str.2057, i64 1347, ptr @.str.2058) + br i1 %t216, label %panic3368, label %ok3369 +panic3368: + call void @finch_panic(ptr @.str.2129, i64 1410, ptr @.str.2130) unreachable -ok3255: +ok3369: %t217 = getelementptr inbounds %S.gen.Gen, ptr %t215, i32 0, i32 13 %t218 = getelementptr inbounds %S.gen.FnSig, ptr %t217, i32 0, i32 16 %t219 = load i64, ptr %t218 %t220 = load { ptr, i64, i64 }, ptr %t214 %t221 = extractvalue { ptr, i64, i64 } %t220, 1 %t222 = icmp uge i64 %t219, %t221 - br i1 %t222, label %range3256, label %inrange3257 -range3256: - call void @finch_panic_index(ptr @.str.2059, i64 1347, i64 %t219, i64 %t221) + br i1 %t222, label %range3370, label %inrange3371 +range3370: + call void @finch_panic_index(ptr @.str.2131, i64 1410, i64 %t219, i64 %t221) unreachable -inrange3257: +inrange3371: %t223 = extractvalue { ptr, i64, i64 } %t220, 0 %t224 = getelementptr inbounds %S.ast.Program, ptr %t223, i64 %t219 %t225 = getelementptr inbounds %S.ast.Program, ptr %t224, i32 0, i32 8 %t226 = load ptr, ptr %a1 %t227 = icmp eq ptr %t226, null - br i1 %t227, label %panic3258, label %ok3259 -panic3258: - call void @finch_panic(ptr @.str.2060, i64 1347, ptr @.str.2061) + br i1 %t227, label %panic3372, label %ok3373 +panic3372: + call void @finch_panic(ptr @.str.2132, i64 1410, ptr @.str.2133) unreachable -ok3259: +ok3373: %t228 = getelementptr inbounds %S.gen.Gen, ptr %t226, i32 0, i32 13 %t229 = getelementptr inbounds %S.gen.FnSig, ptr %t228, i32 0, i32 17 %t230 = load i64, ptr %t229 %t231 = load { ptr, i64, i64 }, ptr %t225 %t232 = extractvalue { ptr, i64, i64 } %t231, 1 %t233 = icmp uge i64 %t230, %t232 - br i1 %t233, label %range3260, label %inrange3261 -range3260: - call void @finch_panic_index(ptr @.str.2062, i64 1347, i64 %t230, i64 %t232) + br i1 %t233, label %range3374, label %inrange3375 +range3374: + call void @finch_panic_index(ptr @.str.2134, i64 1410, i64 %t230, i64 %t232) unreachable -inrange3261: +inrange3375: %t234 = extractvalue { ptr, i64, i64 } %t231, 0 %t235 = getelementptr inbounds %S.ast.Node, ptr %t234, i64 %t230 %t236 = load %S.ast.Node, ptr %t235 @@ -36002,20 +37374,20 @@ inrange3261: store %S.ast.Node %t239, ptr %a240 %t241 = load ptr, ptr %a1 %t242 = icmp eq ptr %t241, null - br i1 %t242, label %panic3262, label %ok3263 -panic3262: - call void @finch_panic(ptr @.str.2063, i64 1348, ptr @.str.2064) + br i1 %t242, label %panic3376, label %ok3377 +panic3376: + call void @finch_panic(ptr @.str.2135, i64 1411, ptr @.str.2136) unreachable -ok3263: - %t243 = getelementptr inbounds %S.gen.Gen, ptr %t241, i32 0, i32 28 +ok3377: + %t243 = getelementptr inbounds %S.gen.Gen, ptr %t241, i32 0, i32 29 %t244 = getelementptr inbounds { ptr, i64, i64 }, ptr %t243, i32 0, i32 1 %t245 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.2065, i64 3, i64 0 }, ptr %a247 + store { ptr, i64, i64 } { ptr @.str.2137, i64 3, i64 0 }, ptr %a247 store { ptr, i64, i64 } %t245, ptr %a248 call void @finch_str_concat(ptr %a246, ptr %a247, ptr %a248) %t249 = load { ptr, i64, i64 }, ptr %a246 store { ptr, i64, i64 } %t249, ptr %a251 - store { ptr, i64, i64 } { ptr @.str.2066, i64 1, i64 0 }, ptr %a252 + store { ptr, i64, i64 } { ptr @.str.2138, i64 1, i64 0 }, ptr %a252 call void @finch_str_concat(ptr %a250, ptr %a251, ptr %a252) store { ptr, i64, i64 } %t249, ptr %a253 call void @finch_str_drop(ptr %a253) @@ -36031,29 +37403,29 @@ ok3263: call void @finch_str_drop(ptr %a261) %t262 = load { ptr, i64, i64 }, ptr %a257 store { ptr, i64, i64 } %t262, ptr %a264 - store { ptr, i64, i64 } { ptr @.str.2067, i64 1, i64 0 }, ptr %a265 + store { ptr, i64, i64 } { ptr @.str.2139, i64 1, i64 0 }, ptr %a265 call void @finch_str_concat(ptr %a263, ptr %a264, ptr %a265) store { ptr, i64, i64 } %t262, ptr %a266 call void @finch_str_drop(ptr %a266) %t267 = load { ptr, i64, i64 }, ptr %a263 %t268 = load ptr, ptr %a1 %t269 = icmp eq ptr %t268, null - br i1 %t269, label %panic3264, label %ok3265 -panic3264: - call void @finch_panic(ptr @.str.2068, i64 1348, ptr @.str.2069) + br i1 %t269, label %panic3378, label %ok3379 +panic3378: + call void @finch_panic(ptr @.str.2140, i64 1411, ptr @.str.2141) unreachable -ok3265: +ok3379: %t270 = getelementptr inbounds %S.gen.Gen, ptr %t268, i32 0, i32 1 %t271 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 13 %t272 = load i64, ptr %t271 %t273 = load { ptr, i64, i64 }, ptr %t270 %t274 = extractvalue { ptr, i64, i64 } %t273, 1 %t275 = icmp uge i64 %t272, %t274 - br i1 %t275, label %range3266, label %inrange3267 -range3266: - call void @finch_panic_index(ptr @.str.2070, i64 1348, i64 %t272, i64 %t274) + br i1 %t275, label %range3380, label %inrange3381 +range3380: + call void @finch_panic_index(ptr @.str.2142, i64 1411, i64 %t272, i64 %t274) unreachable -inrange3267: +inrange3381: %t276 = extractvalue { ptr, i64, i64 } %t273, 0 %t277 = getelementptr inbounds { ptr, i64, i64 }, ptr %t276, i64 %t272 %t278 = load { ptr, i64, i64 }, ptr %t277 @@ -36064,7 +37436,7 @@ inrange3267: call void @finch_str_drop(ptr %a282) %t283 = load { ptr, i64, i64 }, ptr %a279 store { ptr, i64, i64 } %t283, ptr %a285 - store { ptr, i64, i64 } { ptr @.str.2071, i64 1, i64 0 }, ptr %a286 + store { ptr, i64, i64 } { ptr @.str.2143, i64 1, i64 0 }, ptr %a286 call void @finch_str_concat(ptr %a284, ptr %a285, ptr %a286) store { ptr, i64, i64 } %t283, ptr %a287 call void @finch_str_drop(ptr %a287) @@ -36082,7 +37454,7 @@ inrange3267: call void @finch_str_drop(ptr %a297) %t298 = load { ptr, i64, i64 }, ptr %a293 store { ptr, i64, i64 } %t298, ptr %a300 - store { ptr, i64, i64 } { ptr @.str.2072, i64 1, i64 0 }, ptr %a301 + store { ptr, i64, i64 } { ptr @.str.2144, i64 1, i64 0 }, ptr %a301 call void @finch_str_concat(ptr %a299, ptr %a300, ptr %a301) store { ptr, i64, i64 } %t298, ptr %a302 call void @finch_str_drop(ptr %a302) @@ -36100,29 +37472,29 @@ inrange3267: call void @finch_str_drop(ptr %a312) %t313 = load { ptr, i64, i64 }, ptr %a308 store { ptr, i64, i64 } %t313, ptr %a315 - store { ptr, i64, i64 } { ptr @.str.2073, i64 1, i64 0 }, ptr %a316 + store { ptr, i64, i64 } { ptr @.str.2145, i64 1, i64 0 }, ptr %a316 call void @finch_str_concat(ptr %a314, ptr %a315, ptr %a316) store { ptr, i64, i64 } %t313, ptr %a317 call void @finch_str_drop(ptr %a317) %t318 = load { ptr, i64, i64 }, ptr %a314 %t319 = load ptr, ptr %a1 %t320 = icmp eq ptr %t319, null - br i1 %t320, label %panic3268, label %ok3269 -panic3268: - call void @finch_panic(ptr @.str.2074, i64 1348, ptr @.str.2075) + br i1 %t320, label %panic3382, label %ok3383 +panic3382: + call void @finch_panic(ptr @.str.2146, i64 1411, ptr @.str.2147) unreachable -ok3269: +ok3383: %t321 = getelementptr inbounds %S.gen.Gen, ptr %t319, i32 0, i32 1 %t322 = getelementptr inbounds %S.ast.Node, ptr %a240, i32 0, i32 13 %t323 = load i64, ptr %t322 %t324 = load { ptr, i64, i64 }, ptr %t321 %t325 = extractvalue { ptr, i64, i64 } %t324, 1 %t326 = icmp uge i64 %t323, %t325 - br i1 %t326, label %range3270, label %inrange3271 -range3270: - call void @finch_panic_index(ptr @.str.2076, i64 1348, i64 %t323, i64 %t325) + br i1 %t326, label %range3384, label %inrange3385 +range3384: + call void @finch_panic_index(ptr @.str.2148, i64 1411, i64 %t323, i64 %t325) unreachable -inrange3271: +inrange3385: %t327 = extractvalue { ptr, i64, i64 } %t324, 0 %t328 = getelementptr inbounds { ptr, i64, i64 }, ptr %t327, i64 %t323 %t329 = load { ptr, i64, i64 }, ptr %t328 @@ -36133,7 +37505,7 @@ inrange3271: call void @finch_str_drop(ptr %a333) %t334 = load { ptr, i64, i64 }, ptr %a330 store { ptr, i64, i64 } %t334, ptr %a336 - store { ptr, i64, i64 } { ptr @.str.2077, i64 1, i64 0 }, ptr %a337 + store { ptr, i64, i64 } { ptr @.str.2149, i64 1, i64 0 }, ptr %a337 call void @finch_str_concat(ptr %a335, ptr %a336, ptr %a337) store { ptr, i64, i64 } %t334, ptr %a338 call void @finch_str_drop(ptr %a338) @@ -36151,7 +37523,7 @@ inrange3271: call void @finch_str_drop(ptr %a348) %t349 = load { ptr, i64, i64 }, ptr %a344 store { ptr, i64, i64 } %t349, ptr %a351 - store { ptr, i64, i64 } { ptr @.str.2078, i64 1, i64 0 }, ptr %a352 + store { ptr, i64, i64 } { ptr @.str.2150, i64 1, i64 0 }, ptr %a352 call void @finch_str_concat(ptr %a350, ptr %a351, ptr %a352) store { ptr, i64, i64 } %t349, ptr %a353 call void @finch_str_drop(ptr %a353) @@ -36183,14 +37555,14 @@ inrange3271: %t374 = load i64, ptr %t373 %t375 = load %S.ast.Type, ptr %a4 %t376 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t375) - store { ptr, i64, i64 } { ptr @.str.2079, i64 9, i64 0 }, ptr %a378 + store { ptr, i64, i64 } { ptr @.str.2151, i64 9, i64 0 }, ptr %a378 store { ptr, i64, i64 } %t376, ptr %a379 call void @finch_str_concat(ptr %a377, ptr %a378, ptr %a379) store { ptr, i64, i64 } %t376, ptr %a380 call void @finch_str_drop(ptr %a380) %t381 = load { ptr, i64, i64 }, ptr %a377 store { ptr, i64, i64 } %t381, ptr %a383 - store { ptr, i64, i64 } { ptr @.str.2080, i64 1, i64 0 }, ptr %a384 + store { ptr, i64, i64 } { ptr @.str.2152, i64 1, i64 0 }, ptr %a384 call void @finch_str_concat(ptr %a382, ptr %a383, ptr %a384) store { ptr, i64, i64 } %t381, ptr %a385 call void @finch_str_drop(ptr %a385) @@ -36203,17 +37575,17 @@ inrange3271: call void @finch_str_drop(ptr %a391) %t392 = load { ptr, i64, i64 }, ptr %a388 store { ptr, i64, i64 } %t392, ptr %a394 - store { ptr, i64, i64 } { ptr @.str.2081, i64 4, i64 0 }, ptr %a395 + store { ptr, i64, i64 } { ptr @.str.2153, i64 4, i64 0 }, ptr %a395 call void @finch_str_concat(ptr %a393, ptr %a394, ptr %a395) store { ptr, i64, i64 } %t392, ptr %a396 call void @finch_str_drop(ptr %a396) %t397 = load { ptr, i64, i64 }, ptr %a393 - call void @finch.gen.noteRef(ptr %t369, %S.ast.Node %t370, i64 %t372, i64 %t374, { ptr, i64, i64 } %t397, { ptr, i64, i64 } { ptr @.str.2082, i64 0, i64 0 }, i64 0, i64 0) + call void @finch.gen.noteRef(ptr %t369, %S.ast.Node %t370, i64 %t372, i64 %t374, { ptr, i64, i64 } %t397, { ptr, i64, i64 } { ptr @.str.2154, i64 0, i64 0 }, i64 0, i64 0) store { ptr, i64, i64 } %t397, ptr %a398 call void @finch_str_drop(ptr %a398) call void @finch.drop.S_ast_Node(ptr %a240) - br label %endif3251 -endif3251: + br label %endif3365 +endif3365: %t399 = load { ptr, i64, i64 }, ptr %a73 ret { ptr, i64, i64 } %t399 } @@ -36224,11 +37596,11 @@ entry: store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 %t3 = icmp eq ptr %t2, null - br i1 %t3, label %panic3272, label %ok3273 -panic3272: - call void @finch_panic(ptr @.str.2083, i64 1355, ptr @.str.2084) + br i1 %t3, label %panic3386, label %ok3387 +panic3386: + call void @finch_panic(ptr @.str.2155, i64 1418, ptr @.str.2156) unreachable -ok3273: +ok3387: %t4 = getelementptr inbounds %S.gen.Gen, ptr %t2, i32 0, i32 10 %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %t4, i32 0, i32 1 %t6 = load i64, ptr %t5 @@ -36262,19 +37634,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond3285 -n.cond3285: + br label %n.cond3399 +n.cond3399: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body3286, label %n.end3287 -n.body3286: + br i1 %t6, label %n.body3400, label %n.end3401 +n.body3400: %t7 = getelementptr inbounds %S.gen.Var, ptr %t1, i64 %t5 call void @finch.drop.S_gen_Var(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond3285 -n.end3287: + br label %n.cond3399 +n.end3401: call void @finch_arr_free(ptr %a) ret void } @@ -36307,47 +37679,47 @@ entry: store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 %t3 = icmp eq ptr %t2, null - br i1 %t3, label %panic3274, label %ok3275 -panic3274: - call void @finch_panic(ptr @.str.2085, i64 1361, ptr @.str.2086) + br i1 %t3, label %panic3388, label %ok3389 +panic3388: + call void @finch_panic(ptr @.str.2157, i64 1424, ptr @.str.2158) unreachable -ok3275: +ok3389: %t4 = getelementptr inbounds %S.gen.Gen, ptr %t2, i32 0, i32 9 %t5 = load i1, ptr %t4 %t6 = xor i1 %t5, true - br i1 %t6, label %then3276, label %endif3278 -then3276: + br i1 %t6, label %then3390, label %endif3392 +then3390: %t7 = load ptr, ptr %a1 %t8 = load ptr, ptr %a1 %t9 = icmp eq ptr %t8, null - br i1 %t9, label %panic3279, label %ok3280 -panic3279: - call void @finch_panic(ptr @.str.2087, i64 1362, ptr @.str.2088) + br i1 %t9, label %panic3393, label %ok3394 +panic3393: + call void @finch_panic(ptr @.str.2159, i64 1425, ptr @.str.2160) unreachable -ok3280: +ok3394: %t10 = getelementptr inbounds %S.gen.Gen, ptr %t8, i32 0, i32 10 %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %t10, i32 0, i32 1 %t12 = load i64, ptr %t11 %t13 = sub i64 %t12, 1 call void @finch.gen.runCleanups(ptr %t7, i64 %t13) - br label %endif3278 -endif3278: + br label %endif3392 +endif3392: %t14 = load ptr, ptr %a1 %t15 = icmp eq ptr %t14, null - br i1 %t15, label %panic3281, label %ok3282 -panic3281: - call void @finch_panic(ptr @.str.2089, i64 1364, ptr @.str.2090) + br i1 %t15, label %panic3395, label %ok3396 +panic3395: + call void @finch_panic(ptr @.str.2161, i64 1427, ptr @.str.2162) unreachable -ok3282: +ok3396: %t16 = getelementptr inbounds %S.gen.Gen, ptr %t14, i32 0, i32 10 %t17 = getelementptr inbounds { ptr, i64, i64 }, ptr %t16, i32 0, i32 1 %t18 = load i64, ptr %t17 %t19 = icmp eq i64 %t18, 0 - br i1 %t19, label %panic3283, label %ok3284 -panic3283: - call void @finch_panic(ptr @.str.2091, i64 1364, ptr @.str.2092) + br i1 %t19, label %panic3397, label %ok3398 +panic3397: + call void @finch_panic(ptr @.str.2163, i64 1427, ptr @.str.2164) unreachable -ok3284: +ok3398: %t20 = sub i64 %t18, 1 %t21 = load ptr, ptr %t16 %t22 = getelementptr inbounds %S.gen.Scope, ptr %t21, i64 %t20 @@ -36373,53 +37745,53 @@ entry: store i64 %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic3288, label %ok3289 -panic3288: - call void @finch_panic(ptr @.str.2093, i64 1369, ptr @.str.2094) + br i1 %t4, label %panic3402, label %ok3403 +panic3402: + call void @finch_panic(ptr @.str.2165, i64 1432, ptr @.str.2166) unreachable -ok3289: +ok3403: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 10 %t6 = load i64, ptr %a2 %t7 = load { ptr, i64, i64 }, ptr %t5 %t8 = extractvalue { ptr, i64, i64 } %t7, 1 %t9 = icmp uge i64 %t6, %t8 - br i1 %t9, label %range3290, label %inrange3291 -range3290: - call void @finch_panic_index(ptr @.str.2095, i64 1369, i64 %t6, i64 %t8) + br i1 %t9, label %range3404, label %inrange3405 +range3404: + call void @finch_panic_index(ptr @.str.2167, i64 1432, i64 %t6, i64 %t8) unreachable -inrange3291: +inrange3405: %t10 = extractvalue { ptr, i64, i64 } %t7, 0 %t11 = getelementptr inbounds %S.gen.Scope, ptr %t10, i64 %t6 %t12 = getelementptr inbounds %S.gen.Scope, ptr %t11, i32 0, i32 3 %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %t12, i32 0, i32 1 %t14 = load i64, ptr %t13 store i64 %t14, ptr %a15 - br label %while.cond3292 -while.cond3292: + br label %while.cond3406 +while.cond3406: %t16 = load i64, ptr %a15 %t17 = icmp sgt i64 %t16, 0 - br i1 %t17, label %while.body3293, label %while.end3294 -while.body3293: + br i1 %t17, label %while.body3407, label %while.end3408 +while.body3407: %t18 = load i64, ptr %a15 %t19 = sub i64 %t18, 1 store i64 %t19, ptr %a15 %t20 = load ptr, ptr %a1 %t21 = icmp eq ptr %t20, null - br i1 %t21, label %panic3295, label %ok3296 -panic3295: - call void @finch_panic(ptr @.str.2096, i64 1372, ptr @.str.2097) + br i1 %t21, label %panic3409, label %ok3410 +panic3409: + call void @finch_panic(ptr @.str.2168, i64 1435, ptr @.str.2169) unreachable -ok3296: +ok3410: %t22 = getelementptr inbounds %S.gen.Gen, ptr %t20, i32 0, i32 10 %t23 = load i64, ptr %a2 %t24 = load { ptr, i64, i64 }, ptr %t22 %t25 = extractvalue { ptr, i64, i64 } %t24, 1 %t26 = icmp uge i64 %t23, %t25 - br i1 %t26, label %range3297, label %inrange3298 -range3297: - call void @finch_panic_index(ptr @.str.2098, i64 1372, i64 %t23, i64 %t25) + br i1 %t26, label %range3411, label %inrange3412 +range3411: + call void @finch_panic_index(ptr @.str.2170, i64 1435, i64 %t23, i64 %t25) unreachable -inrange3298: +inrange3412: %t27 = extractvalue { ptr, i64, i64 } %t24, 0 %t28 = getelementptr inbounds %S.gen.Scope, ptr %t27, i64 %t23 %t29 = getelementptr inbounds %S.gen.Scope, ptr %t28, i32 0, i32 3 @@ -36427,11 +37799,11 @@ inrange3298: %t31 = load { ptr, i64, i64 }, ptr %t29 %t32 = extractvalue { ptr, i64, i64 } %t31, 1 %t33 = icmp uge i64 %t30, %t32 - br i1 %t33, label %range3299, label %inrange3300 -range3299: - call void @finch_panic_index(ptr @.str.2099, i64 1372, i64 %t30, i64 %t32) + br i1 %t33, label %range3413, label %inrange3414 +range3413: + call void @finch_panic_index(ptr @.str.2171, i64 1435, i64 %t30, i64 %t32) unreachable -inrange3300: +inrange3414: %t34 = extractvalue { ptr, i64, i64 } %t31, 0 %t35 = getelementptr inbounds %S.gen.Cleanup, ptr %t34, i64 %t30 %t36 = load %S.gen.Cleanup, ptr %t35 @@ -36439,25 +37811,25 @@ inrange3300: %t38 = getelementptr inbounds %S.gen.Cleanup, ptr %a37, i32 0, i32 0 %t39 = load i1, ptr %t38 %t40 = xor i1 %t39, true - br i1 %t40, label %then3301, label %endif3303 -then3301: + br i1 %t40, label %then3415, label %endif3417 +then3415: %t41 = load ptr, ptr %a1 %t42 = icmp eq ptr %t41, null - br i1 %t42, label %panic3304, label %ok3305 -panic3304: - call void @finch_panic(ptr @.str.2100, i64 1374, ptr @.str.2101) + br i1 %t42, label %panic3418, label %ok3419 +panic3418: + call void @finch_panic(ptr @.str.2172, i64 1437, ptr @.str.2173) unreachable -ok3305: +ok3419: %t43 = getelementptr inbounds %S.gen.Gen, ptr %t41, i32 0, i32 10 %t44 = load i64, ptr %a2 %t45 = load { ptr, i64, i64 }, ptr %t43 %t46 = extractvalue { ptr, i64, i64 } %t45, 1 %t47 = icmp uge i64 %t44, %t46 - br i1 %t47, label %range3306, label %inrange3307 -range3306: - call void @finch_panic_index(ptr @.str.2102, i64 1374, i64 %t44, i64 %t46) + br i1 %t47, label %range3420, label %inrange3421 +range3420: + call void @finch_panic_index(ptr @.str.2174, i64 1437, i64 %t44, i64 %t46) unreachable -inrange3307: +inrange3421: %t48 = extractvalue { ptr, i64, i64 } %t45, 0 %t49 = getelementptr inbounds %S.gen.Scope, ptr %t48, i64 %t44 %t50 = getelementptr inbounds %S.gen.Scope, ptr %t49, i32 0, i32 0 @@ -36466,11 +37838,11 @@ inrange3307: %t53 = load { ptr, i64, i64 }, ptr %t50 %t54 = extractvalue { ptr, i64, i64 } %t53, 1 %t55 = icmp uge i64 %t52, %t54 - br i1 %t55, label %range3308, label %inrange3309 -range3308: - call void @finch_panic_index(ptr @.str.2103, i64 1374, i64 %t52, i64 %t54) + br i1 %t55, label %range3422, label %inrange3423 +range3422: + call void @finch_panic_index(ptr @.str.2175, i64 1437, i64 %t52, i64 %t54) unreachable -inrange3309: +inrange3423: %t56 = extractvalue { ptr, i64, i64 } %t53, 0 %t57 = getelementptr inbounds %S.gen.Var, ptr %t56, i64 %t52 %t58 = load %S.gen.Var, ptr %t57 @@ -36481,65 +37853,65 @@ inrange3309: %t63 = getelementptr inbounds %S.gen.Var, ptr %a62, i32 0, i32 6 %t64 = load i1, ptr %t63 %t65 = xor i1 %t64, true - br i1 %t65, label %then3310, label %endif3312 -then3310: + br i1 %t65, label %then3424, label %endif3426 +then3424: %t66 = load ptr, ptr %a1 %t67 = getelementptr inbounds %S.gen.Var, ptr %a62, i32 0, i32 2 %t68 = load { ptr, i64, i64 }, ptr %t67 %t69 = getelementptr inbounds %S.gen.Var, ptr %a62, i32 0, i32 1 %t70 = load %S.ast.Type, ptr %t69 call void @finch.gen.dropAt(ptr %t66, { ptr, i64, i64 } %t68, %S.ast.Type %t70) - br label %endif3312 -endif3312: + br label %endif3426 +endif3426: call void @finch.drop.S_gen_Var(ptr %a62) - br label %while.cond3292 -endif3303: + br label %while.cond3406 +endif3417: %t71 = load ptr, ptr %a1 %t72 = icmp eq ptr %t71, null - br i1 %t72, label %panic3313, label %ok3314 -panic3313: - call void @finch_panic(ptr @.str.2104, i64 1380, ptr @.str.2105) + br i1 %t72, label %panic3427, label %ok3428 +panic3427: + call void @finch_panic(ptr @.str.2176, i64 1443, ptr @.str.2177) unreachable -ok3314: - %t73 = getelementptr inbounds %S.gen.Gen, ptr %t71, i32 0, i32 43 +ok3428: + %t73 = getelementptr inbounds %S.gen.Gen, ptr %t71, i32 0, i32 44 %t74 = load i1, ptr %t73 store i1 %t74, ptr %a75 %t76 = load ptr, ptr %a1 %t77 = icmp eq ptr %t76, null - br i1 %t77, label %panic3315, label %ok3316 -panic3315: - call void @finch_panic(ptr @.str.2106, i64 1381, ptr @.str.2107) + br i1 %t77, label %panic3429, label %ok3430 +panic3429: + call void @finch_panic(ptr @.str.2178, i64 1444, ptr @.str.2179) unreachable -ok3316: - %t78 = getelementptr inbounds %S.gen.Gen, ptr %t76, i32 0, i32 44 +ok3430: + %t78 = getelementptr inbounds %S.gen.Gen, ptr %t76, i32 0, i32 45 %t79 = load i64, ptr %t78 store i64 %t79, ptr %a80 %t81 = load ptr, ptr %a1 %t82 = icmp eq ptr %t81, null - br i1 %t82, label %panic3317, label %ok3318 -panic3317: - call void @finch_panic(ptr @.str.2108, i64 1382, ptr @.str.2109) + br i1 %t82, label %panic3431, label %ok3432 +panic3431: + call void @finch_panic(ptr @.str.2180, i64 1445, ptr @.str.2181) unreachable -ok3318: - %t83 = getelementptr inbounds %S.gen.Gen, ptr %t81, i32 0, i32 43 +ok3432: + %t83 = getelementptr inbounds %S.gen.Gen, ptr %t81, i32 0, i32 44 store i1 true, ptr %t83 %t84 = load ptr, ptr %a1 %t85 = icmp eq ptr %t84, null - br i1 %t85, label %panic3319, label %ok3320 -panic3319: - call void @finch_panic(ptr @.str.2110, i64 1383, ptr @.str.2111) + br i1 %t85, label %panic3433, label %ok3434 +panic3433: + call void @finch_panic(ptr @.str.2182, i64 1446, ptr @.str.2183) unreachable -ok3320: +ok3434: %t86 = getelementptr inbounds %S.gen.Gen, ptr %t84, i32 0, i32 10 %t87 = load i64, ptr %a2 %t88 = load { ptr, i64, i64 }, ptr %t86 %t89 = extractvalue { ptr, i64, i64 } %t88, 1 %t90 = icmp uge i64 %t87, %t89 - br i1 %t90, label %range3321, label %inrange3322 -range3321: - call void @finch_panic_index(ptr @.str.2112, i64 1383, i64 %t87, i64 %t89) + br i1 %t90, label %range3435, label %inrange3436 +range3435: + call void @finch_panic_index(ptr @.str.2184, i64 1446, i64 %t87, i64 %t89) unreachable -inrange3322: +inrange3436: %t91 = extractvalue { ptr, i64, i64 } %t88, 0 %t92 = getelementptr inbounds %S.gen.Scope, ptr %t91, i64 %t87 %t93 = getelementptr inbounds %S.gen.Scope, ptr %t92, i32 0, i32 2 @@ -36548,31 +37920,31 @@ inrange3322: %t96 = load { ptr, i64, i64 }, ptr %t93 %t97 = extractvalue { ptr, i64, i64 } %t96, 1 %t98 = icmp uge i64 %t95, %t97 - br i1 %t98, label %range3323, label %inrange3324 -range3323: - call void @finch_panic_index(ptr @.str.2113, i64 1383, i64 %t95, i64 %t97) + br i1 %t98, label %range3437, label %inrange3438 +range3437: + call void @finch_panic_index(ptr @.str.2185, i64 1446, i64 %t95, i64 %t97) unreachable -inrange3324: +inrange3438: %t99 = extractvalue { ptr, i64, i64 } %t96, 0 %t100 = getelementptr inbounds i64, ptr %t99, i64 %t95 %t101 = load i64, ptr %t100 %t102 = load ptr, ptr %a1 %t103 = icmp eq ptr %t102, null - br i1 %t103, label %panic3325, label %ok3326 -panic3325: - call void @finch_panic(ptr @.str.2114, i64 1383, ptr @.str.2115) + br i1 %t103, label %panic3439, label %ok3440 +panic3439: + call void @finch_panic(ptr @.str.2186, i64 1446, ptr @.str.2187) unreachable -ok3326: - %t104 = getelementptr inbounds %S.gen.Gen, ptr %t102, i32 0, i32 44 +ok3440: + %t104 = getelementptr inbounds %S.gen.Gen, ptr %t102, i32 0, i32 45 store i64 %t101, ptr %t104 %t105 = load ptr, ptr %a1 %t106 = icmp eq ptr %t105, null - br i1 %t106, label %panic3327, label %ok3328 -panic3327: - call void @finch_panic(ptr @.str.2116, i64 1384, ptr @.str.2117) + br i1 %t106, label %panic3441, label %ok3442 +panic3441: + call void @finch_panic(ptr @.str.2188, i64 1447, ptr @.str.2189) unreachable -ok3328: - %t107 = getelementptr inbounds %S.gen.Gen, ptr %t105, i32 0, i32 45 +ok3442: + %t107 = getelementptr inbounds %S.gen.Gen, ptr %t105, i32 0, i32 46 %t108 = load i64, ptr %t107 %t109 = add i64 %t108, 1 store i64 %t109, ptr %t107 @@ -36581,21 +37953,21 @@ ok3328: %t111 = load ptr, ptr %a1 %t112 = load ptr, ptr %a1 %t113 = icmp eq ptr %t112, null - br i1 %t113, label %panic3329, label %ok3330 -panic3329: - call void @finch_panic(ptr @.str.2118, i64 1386, ptr @.str.2119) + br i1 %t113, label %panic3443, label %ok3444 +panic3443: + call void @finch_panic(ptr @.str.2190, i64 1449, ptr @.str.2191) unreachable -ok3330: +ok3444: %t114 = getelementptr inbounds %S.gen.Gen, ptr %t112, i32 0, i32 10 %t115 = load i64, ptr %a2 %t116 = load { ptr, i64, i64 }, ptr %t114 %t117 = extractvalue { ptr, i64, i64 } %t116, 1 %t118 = icmp uge i64 %t115, %t117 - br i1 %t118, label %range3331, label %inrange3332 -range3331: - call void @finch_panic_index(ptr @.str.2120, i64 1386, i64 %t115, i64 %t117) + br i1 %t118, label %range3445, label %inrange3446 +range3445: + call void @finch_panic_index(ptr @.str.2192, i64 1449, i64 %t115, i64 %t117) unreachable -inrange3332: +inrange3446: %t119 = extractvalue { ptr, i64, i64 } %t116, 0 %t120 = getelementptr inbounds %S.gen.Scope, ptr %t119, i64 %t115 %t121 = getelementptr inbounds %S.gen.Scope, ptr %t120, i32 0, i32 1 @@ -36604,11 +37976,11 @@ inrange3332: %t124 = load { ptr, i64, i64 }, ptr %t121 %t125 = extractvalue { ptr, i64, i64 } %t124, 1 %t126 = icmp uge i64 %t123, %t125 - br i1 %t126, label %range3333, label %inrange3334 -range3333: - call void @finch_panic_index(ptr @.str.2121, i64 1386, i64 %t123, i64 %t125) + br i1 %t126, label %range3447, label %inrange3448 +range3447: + call void @finch_panic_index(ptr @.str.2193, i64 1449, i64 %t123, i64 %t125) unreachable -inrange3334: +inrange3448: %t127 = extractvalue { ptr, i64, i64 } %t124, 0 %t128 = getelementptr inbounds %S.ast.Node, ptr %t127, i64 %t123 %t129 = load %S.ast.Node, ptr %t128 @@ -36617,37 +37989,37 @@ inrange3334: call void @finch.gen.popScope(ptr %t130) %t131 = load ptr, ptr %a1 %t132 = icmp eq ptr %t131, null - br i1 %t132, label %panic3335, label %ok3336 -panic3335: - call void @finch_panic(ptr @.str.2122, i64 1388, ptr @.str.2123) + br i1 %t132, label %panic3449, label %ok3450 +panic3449: + call void @finch_panic(ptr @.str.2194, i64 1451, ptr @.str.2195) unreachable -ok3336: - %t133 = getelementptr inbounds %S.gen.Gen, ptr %t131, i32 0, i32 45 +ok3450: + %t133 = getelementptr inbounds %S.gen.Gen, ptr %t131, i32 0, i32 46 %t134 = load i64, ptr %t133 %t135 = sub i64 %t134, 1 store i64 %t135, ptr %t133 %t136 = load i1, ptr %a75 %t137 = load ptr, ptr %a1 %t138 = icmp eq ptr %t137, null - br i1 %t138, label %panic3337, label %ok3338 -panic3337: - call void @finch_panic(ptr @.str.2124, i64 1389, ptr @.str.2125) + br i1 %t138, label %panic3451, label %ok3452 +panic3451: + call void @finch_panic(ptr @.str.2196, i64 1452, ptr @.str.2197) unreachable -ok3338: - %t139 = getelementptr inbounds %S.gen.Gen, ptr %t137, i32 0, i32 43 +ok3452: + %t139 = getelementptr inbounds %S.gen.Gen, ptr %t137, i32 0, i32 44 store i1 %t136, ptr %t139 %t140 = load i64, ptr %a80 %t141 = load ptr, ptr %a1 %t142 = icmp eq ptr %t141, null - br i1 %t142, label %panic3339, label %ok3340 -panic3339: - call void @finch_panic(ptr @.str.2126, i64 1390, ptr @.str.2127) + br i1 %t142, label %panic3453, label %ok3454 +panic3453: + call void @finch_panic(ptr @.str.2198, i64 1453, ptr @.str.2199) unreachable -ok3340: - %t143 = getelementptr inbounds %S.gen.Gen, ptr %t141, i32 0, i32 44 +ok3454: + %t143 = getelementptr inbounds %S.gen.Gen, ptr %t141, i32 0, i32 45 store i64 %t140, ptr %t143 - br label %while.cond3292 -while.end3294: + br label %while.cond3406 +while.end3408: ret void } @@ -36660,30 +38032,30 @@ entry: store i64 %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic3341, label %ok3342 -panic3341: - call void @finch_panic(ptr @.str.2128, i64 1396, ptr @.str.2129) + br i1 %t4, label %panic3455, label %ok3456 +panic3455: + call void @finch_panic(ptr @.str.2200, i64 1459, ptr @.str.2201) unreachable -ok3342: +ok3456: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 10 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t7 = load i64, ptr %t6 store i64 %t7, ptr %a8 - br label %while.cond3343 -while.cond3343: + br label %while.cond3457 +while.cond3457: %t9 = load i64, ptr %a8 %t10 = load i64, ptr %a2 %t11 = icmp sgt i64 %t9, %t10 - br i1 %t11, label %while.body3344, label %while.end3345 -while.body3344: + br i1 %t11, label %while.body3458, label %while.end3459 +while.body3458: %t12 = load i64, ptr %a8 %t13 = sub i64 %t12, 1 store i64 %t13, ptr %a8 %t14 = load ptr, ptr %a1 %t15 = load i64, ptr %a8 call void @finch.gen.runCleanups(ptr %t14, i64 %t15) - br label %while.cond3343 -while.end3345: + br label %while.cond3457 +while.end3459: ret void } @@ -36711,57 +38083,57 @@ entry: %t2 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 0 %t3 = load { ptr, i64, i64 }, ptr %t2 store { ptr, i64, i64 } %t3, ptr %a4 - store { ptr, i64, i64 } { ptr @.str.2130, i64 3, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.2202, i64 3, i64 0 }, ptr %a5 %t6 = call i32 @finch_str_eq(ptr %a4, ptr %a5) %t7 = icmp ne i32 %t6, 0 - br i1 %t7, label %then3346, label %endif3348 -then3346: + br i1 %t7, label %then3460, label %endif3462 +then3460: %t8 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 1 %t9 = load { ptr, i64, i64 }, ptr %t8 store { ptr, i64, i64 } %t9, ptr %a10 call void @finch_str_copy(ptr %a11, ptr %a10) %t12 = load { ptr, i64, i64 }, ptr %a11 ret { ptr, i64, i64 } %t12 -endif3348: +endif3462: %t13 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 0 %t14 = load { ptr, i64, i64 }, ptr %t13 store { ptr, i64, i64 } %t14, ptr %a15 - store { ptr, i64, i64 } { ptr @.str.2131, i64 6, i64 0 }, ptr %a16 + store { ptr, i64, i64 } { ptr @.str.2203, i64 6, i64 0 }, ptr %a16 %t17 = call i32 @finch_str_eq(ptr %a15, ptr %a16) %t18 = icmp ne i32 %t17, 0 - br label %logic.from3349 -logic.from3349: - br i1 %t18, label %logic.end3351, label %logic.rhs3350 -logic.rhs3350: + br label %logic.from3463 +logic.from3463: + br i1 %t18, label %logic.end3465, label %logic.rhs3464 +logic.rhs3464: %t19 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 0 %t20 = load { ptr, i64, i64 }, ptr %t19 store { ptr, i64, i64 } %t20, ptr %a21 - store { ptr, i64, i64 } { ptr @.str.2132, i64 5, i64 0 }, ptr %a22 + store { ptr, i64, i64 } { ptr @.str.2204, i64 5, i64 0 }, ptr %a22 %t23 = call i32 @finch_str_eq(ptr %a21, ptr %a22) %t24 = icmp ne i32 %t23, 0 - br label %logic.rend3352 -logic.rend3352: - br label %logic.end3351 -logic.end3351: - %t25 = phi i1 [ true, %logic.from3349 ], [ %t24, %logic.rend3352 ] - br i1 %t25, label %then3353, label %endif3355 -then3353: + br label %logic.rend3466 +logic.rend3466: + br label %logic.end3465 +logic.end3465: + %t25 = phi i1 [ true, %logic.from3463 ], [ %t24, %logic.rend3466 ] + br i1 %t25, label %then3467, label %endif3469 +then3467: %t26 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 9 %t27 = load { ptr, i64, i64 }, ptr %t26 %t28 = extractvalue { ptr, i64, i64 } %t27, 1 %t29 = icmp uge i64 0, %t28 - br i1 %t29, label %range3356, label %inrange3357 -range3356: - call void @finch_panic_index(ptr @.str.2133, i64 1414, i64 0, i64 %t28) + br i1 %t29, label %range3470, label %inrange3471 +range3470: + call void @finch_panic_index(ptr @.str.2205, i64 1477, i64 0, i64 %t28) unreachable -inrange3357: +inrange3471: %t30 = extractvalue { ptr, i64, i64 } %t27, 0 %t31 = getelementptr inbounds %S.ast.Node, ptr %t30, i64 0 %t32 = load %S.ast.Node, ptr %t31 %t33 = call { ptr, i64, i64 } @finch.gen.rootVar(%S.ast.Node %t32) ret { ptr, i64, i64 } %t33 -endif3355: - ret { ptr, i64, i64 } { ptr @.str.2134, i64 0, i64 0 } +endif3469: + ret { ptr, i64, i64 } { ptr @.str.2206, i64 0, i64 0 } } define internal i1 @finch.gen.mutates(ptr %p0, { ptr, i64, i64 } %p1, %S.ast.Node %p2) { @@ -36803,21 +38175,21 @@ entry: %t4 = mul i64 8, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t5 = call ptr @finch_alloc(i64 %t4) %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i64 0 - store { ptr, i64, i64 } { ptr @.str.2135, i64 4, i64 0 }, ptr %t6 + store { ptr, i64, i64 } { ptr @.str.2207, i64 4, i64 0 }, ptr %t6 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i64 1 - store { ptr, i64, i64 } { ptr @.str.2136, i64 3, i64 0 }, ptr %t7 + store { ptr, i64, i64 } { ptr @.str.2208, i64 3, i64 0 }, ptr %t7 %t8 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i64 2 - store { ptr, i64, i64 } { ptr @.str.2137, i64 6, i64 0 }, ptr %t8 + store { ptr, i64, i64 } { ptr @.str.2209, i64 6, i64 0 }, ptr %t8 %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i64 3 - store { ptr, i64, i64 } { ptr @.str.2138, i64 6, i64 0 }, ptr %t9 + store { ptr, i64, i64 } { ptr @.str.2210, i64 6, i64 0 }, ptr %t9 %t10 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i64 4 - store { ptr, i64, i64 } { ptr @.str.2139, i64 5, i64 0 }, ptr %t10 + store { ptr, i64, i64 } { ptr @.str.2211, i64 5, i64 0 }, ptr %t10 %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i64 5 - store { ptr, i64, i64 } { ptr @.str.2140, i64 6, i64 0 }, ptr %t11 + store { ptr, i64, i64 } { ptr @.str.2212, i64 6, i64 0 }, ptr %t11 %t12 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i64 6 - store { ptr, i64, i64 } { ptr @.str.2141, i64 4, i64 0 }, ptr %t12 + store { ptr, i64, i64 } { ptr @.str.2213, i64 4, i64 0 }, ptr %t12 %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i64 7 - store { ptr, i64, i64 } { ptr @.str.2142, i64 7, i64 0 }, ptr %t13 + store { ptr, i64, i64 } { ptr @.str.2214, i64 7, i64 0 }, ptr %t13 %t14 = insertvalue { ptr, i64, i64 } undef, ptr %t5, 0 %t15 = insertvalue { ptr, i64, i64 } %t14, i64 8, 1 %t16 = insertvalue { ptr, i64, i64 } %t15, i64 8, 2 @@ -36825,22 +38197,22 @@ entry: %t18 = getelementptr inbounds %S.ast.Node, ptr %a3, i32 0, i32 0 %t19 = load { ptr, i64, i64 }, ptr %t18 store { ptr, i64, i64 } %t19, ptr %a20 - store { ptr, i64, i64 } { ptr @.str.2143, i64 6, i64 0 }, ptr %a21 + store { ptr, i64, i64 } { ptr @.str.2215, i64 6, i64 0 }, ptr %a21 %t22 = call i32 @finch_str_eq(ptr %a20, ptr %a21) %t23 = icmp ne i32 %t22, 0 - br label %logic.from3358 -logic.from3358: - br i1 %t23, label %logic.rhs3359, label %logic.end3360 -logic.rhs3359: + br label %logic.from3472 +logic.from3472: + br i1 %t23, label %logic.rhs3473, label %logic.end3474 +logic.rhs3473: %t24 = getelementptr inbounds %S.ast.Node, ptr %a3, i32 0, i32 9 %t25 = load { ptr, i64, i64 }, ptr %t24 %t26 = extractvalue { ptr, i64, i64 } %t25, 1 %t27 = icmp uge i64 0, %t26 - br i1 %t27, label %range3361, label %inrange3362 -range3361: - call void @finch_panic_index(ptr @.str.2144, i64 1421, i64 0, i64 %t26) + br i1 %t27, label %range3475, label %inrange3476 +range3475: + call void @finch_panic_index(ptr @.str.2216, i64 1484, i64 0, i64 %t26) unreachable -inrange3362: +inrange3476: %t28 = extractvalue { ptr, i64, i64 } %t25, 0 %t29 = getelementptr inbounds %S.ast.Node, ptr %t28, i64 0 %t30 = load %S.ast.Node, ptr %t29 @@ -36852,26 +38224,26 @@ inrange3362: %t36 = icmp ne i32 %t35, 0 store { ptr, i64, i64 } %t31, ptr %a37 call void @finch_str_drop(ptr %a37) - br label %logic.rend3363 -logic.rend3363: - br label %logic.end3360 -logic.end3360: - %t38 = phi i1 [ false, %logic.from3358 ], [ %t36, %logic.rend3363 ] - br i1 %t38, label %then3364, label %endif3366 -then3364: + br label %logic.rend3477 +logic.rend3477: + br label %logic.end3474 +logic.end3474: + %t38 = phi i1 [ false, %logic.from3472 ], [ %t36, %logic.rend3477 ] + br i1 %t38, label %then3478, label %endif3480 +then3478: call void @finch.drop.arr_str(ptr %a17) ret i1 true -endif3366: +endif3480: %t39 = getelementptr inbounds %S.ast.Node, ptr %a3, i32 0, i32 0 %t40 = load { ptr, i64, i64 }, ptr %t39 store { ptr, i64, i64 } %t40, ptr %a41 - store { ptr, i64, i64 } { ptr @.str.2145, i64 6, i64 0 }, ptr %a42 + store { ptr, i64, i64 } { ptr @.str.2217, i64 6, i64 0 }, ptr %a42 %t43 = call i32 @finch_str_eq(ptr %a41, ptr %a42) %t44 = icmp ne i32 %t43, 0 - br label %logic.from3367 -logic.from3367: - br i1 %t44, label %logic.rhs3368, label %logic.end3369 -logic.rhs3368: + br label %logic.from3481 +logic.from3481: + br i1 %t44, label %logic.rhs3482, label %logic.end3483 +logic.rhs3482: %t45 = getelementptr inbounds { ptr, i64, i64 }, ptr %a17, i32 0, i32 1 %t46 = getelementptr inbounds %S.ast.Node, ptr %a3, i32 0, i32 1 %t47 = load { ptr, i64, i64 }, ptr %t46 @@ -36879,41 +38251,41 @@ logic.rhs3368: %t49 = load i64, ptr %t45 %t50 = load ptr, ptr %a17 store i64 0, ptr %a51 - br label %find.cond3370 -find.cond3370: + br label %find.cond3484 +find.cond3484: %t52 = load i64, ptr %a51 %t53 = icmp slt i64 %t52, %t49 - br i1 %t53, label %find.body3371, label %find.end3374 -find.body3371: + br i1 %t53, label %find.body3485, label %find.end3488 +find.body3485: %t54 = getelementptr inbounds { ptr, i64, i64 }, ptr %t50, i64 %t52 %t55 = load { ptr, i64, i64 }, ptr %t54 store { ptr, i64, i64 } %t55, ptr %a56 store { ptr, i64, i64 } %t47, ptr %a57 %t58 = call i32 @finch_str_eq(ptr %a56, ptr %a57) %t59 = icmp ne i32 %t58, 0 - br i1 %t59, label %find.hit3372, label %find.next3373 -find.hit3372: + br i1 %t59, label %find.hit3486, label %find.next3487 +find.hit3486: store i64 %t52, ptr %a48 - br label %find.end3374 -find.next3373: + br label %find.end3488 +find.next3487: %t60 = add i64 %t52, 1 store i64 %t60, ptr %a51 - br label %find.cond3370 -find.end3374: + br label %find.cond3484 +find.end3488: %t61 = load i64, ptr %a48 %t62 = icmp sge i64 %t61, 0 - br label %logic.from3375 -logic.from3375: - br i1 %t62, label %logic.end3377, label %logic.rhs3376 -logic.rhs3376: + br label %logic.from3489 +logic.from3489: + br i1 %t62, label %logic.end3491, label %logic.rhs3490 +logic.rhs3490: %t63 = load ptr, ptr %a1 %t64 = icmp eq ptr %t63, null - br i1 %t64, label %panic3378, label %ok3379 -panic3378: - call void @finch_panic(ptr @.str.2146, i64 1427, ptr @.str.2147) + br i1 %t64, label %panic3492, label %ok3493 +panic3492: + call void @finch_panic(ptr @.str.2218, i64 1490, ptr @.str.2219) unreachable -ok3379: - %t65 = getelementptr inbounds %S.gen.Gen, ptr %t63, i32 0, i32 23 +ok3493: + %t65 = getelementptr inbounds %S.gen.Gen, ptr %t63, i32 0, i32 24 %t66 = getelementptr inbounds { ptr, i64, i64 }, ptr %t65, i32 0, i32 1 %t67 = getelementptr inbounds %S.ast.Node, ptr %a3, i32 0, i32 1 %t68 = load { ptr, i64, i64 }, ptr %t67 @@ -36921,52 +38293,52 @@ ok3379: %t70 = load i64, ptr %t66 %t71 = load ptr, ptr %t65 store i64 0, ptr %a72 - br label %find.cond3380 -find.cond3380: + br label %find.cond3494 +find.cond3494: %t73 = load i64, ptr %a72 %t74 = icmp slt i64 %t73, %t70 - br i1 %t74, label %find.body3381, label %find.end3384 -find.body3381: + br i1 %t74, label %find.body3495, label %find.end3498 +find.body3495: %t75 = getelementptr inbounds { ptr, i64, i64 }, ptr %t71, i64 %t73 %t76 = load { ptr, i64, i64 }, ptr %t75 store { ptr, i64, i64 } %t76, ptr %a77 store { ptr, i64, i64 } %t68, ptr %a78 %t79 = call i32 @finch_str_eq(ptr %a77, ptr %a78) %t80 = icmp ne i32 %t79, 0 - br i1 %t80, label %find.hit3382, label %find.next3383 -find.hit3382: + br i1 %t80, label %find.hit3496, label %find.next3497 +find.hit3496: store i64 %t73, ptr %a69 - br label %find.end3384 -find.next3383: + br label %find.end3498 +find.next3497: %t81 = add i64 %t73, 1 store i64 %t81, ptr %a72 - br label %find.cond3380 -find.end3384: + br label %find.cond3494 +find.end3498: %t82 = load i64, ptr %a69 %t83 = icmp sge i64 %t82, 0 - br label %logic.rend3385 -logic.rend3385: - br label %logic.end3377 -logic.end3377: - %t84 = phi i1 [ true, %logic.from3375 ], [ %t83, %logic.rend3385 ] - br label %logic.rend3386 -logic.rend3386: - br label %logic.end3369 -logic.end3369: - %t85 = phi i1 [ false, %logic.from3367 ], [ %t84, %logic.rend3386 ] - br label %logic.from3387 -logic.from3387: - br i1 %t85, label %logic.rhs3388, label %logic.end3389 -logic.rhs3388: + br label %logic.rend3499 +logic.rend3499: + br label %logic.end3491 +logic.end3491: + %t84 = phi i1 [ true, %logic.from3489 ], [ %t83, %logic.rend3499 ] + br label %logic.rend3500 +logic.rend3500: + br label %logic.end3483 +logic.end3483: + %t85 = phi i1 [ false, %logic.from3481 ], [ %t84, %logic.rend3500 ] + br label %logic.from3501 +logic.from3501: + br i1 %t85, label %logic.rhs3502, label %logic.end3503 +logic.rhs3502: %t86 = getelementptr inbounds %S.ast.Node, ptr %a3, i32 0, i32 9 %t87 = load { ptr, i64, i64 }, ptr %t86 %t88 = extractvalue { ptr, i64, i64 } %t87, 1 %t89 = icmp uge i64 0, %t88 - br i1 %t89, label %range3390, label %inrange3391 -range3390: - call void @finch_panic_index(ptr @.str.2148, i64 1427, i64 0, i64 %t88) + br i1 %t89, label %range3504, label %inrange3505 +range3504: + call void @finch_panic_index(ptr @.str.2220, i64 1490, i64 0, i64 %t88) unreachable -inrange3391: +inrange3505: %t90 = extractvalue { ptr, i64, i64 } %t87, 0 %t91 = getelementptr inbounds %S.ast.Node, ptr %t90, i64 0 %t92 = load %S.ast.Node, ptr %t91 @@ -36978,63 +38350,63 @@ inrange3391: %t98 = icmp ne i32 %t97, 0 store { ptr, i64, i64 } %t93, ptr %a99 call void @finch_str_drop(ptr %a99) - br label %logic.rend3392 -logic.rend3392: - br label %logic.end3389 -logic.end3389: - %t100 = phi i1 [ false, %logic.from3387 ], [ %t98, %logic.rend3392 ] - br i1 %t100, label %then3393, label %endif3395 -then3393: + br label %logic.rend3506 +logic.rend3506: + br label %logic.end3503 +logic.end3503: + %t100 = phi i1 [ false, %logic.from3501 ], [ %t98, %logic.rend3506 ] + br i1 %t100, label %then3507, label %endif3509 +then3507: call void @finch.drop.arr_str(ptr %a17) ret i1 true -endif3395: +endif3509: %t101 = getelementptr inbounds %S.ast.Node, ptr %a3, i32 0, i32 0 %t102 = load { ptr, i64, i64 }, ptr %t101 store { ptr, i64, i64 } %t102, ptr %a103 - store { ptr, i64, i64 } { ptr @.str.2149, i64 4, i64 0 }, ptr %a104 + store { ptr, i64, i64 } { ptr @.str.2221, i64 4, i64 0 }, ptr %a104 %t105 = call i32 @finch_str_eq(ptr %a103, ptr %a104) %t106 = icmp ne i32 %t105, 0 - br label %logic.from3396 -logic.from3396: - br i1 %t106, label %logic.rhs3397, label %logic.end3398 -logic.rhs3397: + br label %logic.from3510 +logic.from3510: + br i1 %t106, label %logic.rhs3511, label %logic.end3512 +logic.rhs3511: %t107 = getelementptr inbounds %S.ast.Node, ptr %a3, i32 0, i32 1 %t108 = load { ptr, i64, i64 }, ptr %t107 store { ptr, i64, i64 } %t108, ptr %a109 - store { ptr, i64, i64 } { ptr @.str.2150, i64 4, i64 0 }, ptr %a110 + store { ptr, i64, i64 } { ptr @.str.2222, i64 4, i64 0 }, ptr %a110 %t111 = call i32 @finch_str_eq(ptr %a109, ptr %a110) %t112 = icmp ne i32 %t111, 0 - br label %logic.rend3399 -logic.rend3399: - br label %logic.end3398 -logic.end3398: - %t113 = phi i1 [ false, %logic.from3396 ], [ %t112, %logic.rend3399 ] - br label %logic.from3400 -logic.from3400: - br i1 %t113, label %logic.rhs3401, label %logic.end3402 -logic.rhs3401: + br label %logic.rend3513 +logic.rend3513: + br label %logic.end3512 +logic.end3512: + %t113 = phi i1 [ false, %logic.from3510 ], [ %t112, %logic.rend3513 ] + br label %logic.from3514 +logic.from3514: + br i1 %t113, label %logic.rhs3515, label %logic.end3516 +logic.rhs3515: %t114 = getelementptr inbounds %S.ast.Node, ptr %a3, i32 0, i32 9 %t115 = getelementptr inbounds { ptr, i64, i64 }, ptr %t114, i32 0, i32 1 %t116 = load i64, ptr %t115 %t117 = icmp eq i64 %t116, 1 - br label %logic.rend3403 -logic.rend3403: - br label %logic.end3402 -logic.end3402: - %t118 = phi i1 [ false, %logic.from3400 ], [ %t117, %logic.rend3403 ] - br label %logic.from3404 -logic.from3404: - br i1 %t118, label %logic.rhs3405, label %logic.end3406 -logic.rhs3405: + br label %logic.rend3517 +logic.rend3517: + br label %logic.end3516 +logic.end3516: + %t118 = phi i1 [ false, %logic.from3514 ], [ %t117, %logic.rend3517 ] + br label %logic.from3518 +logic.from3518: + br i1 %t118, label %logic.rhs3519, label %logic.end3520 +logic.rhs3519: %t119 = getelementptr inbounds %S.ast.Node, ptr %a3, i32 0, i32 9 %t120 = load { ptr, i64, i64 }, ptr %t119 %t121 = extractvalue { ptr, i64, i64 } %t120, 1 %t122 = icmp uge i64 0, %t121 - br i1 %t122, label %range3407, label %inrange3408 -range3407: - call void @finch_panic_index(ptr @.str.2151, i64 1430, i64 0, i64 %t121) + br i1 %t122, label %range3521, label %inrange3522 +range3521: + call void @finch_panic_index(ptr @.str.2223, i64 1493, i64 0, i64 %t121) unreachable -inrange3408: +inrange3522: %t123 = extractvalue { ptr, i64, i64 } %t120, 0 %t124 = getelementptr inbounds %S.ast.Node, ptr %t123, i64 0 %t125 = load %S.ast.Node, ptr %t124 @@ -37046,26 +38418,26 @@ inrange3408: %t131 = icmp ne i32 %t130, 0 store { ptr, i64, i64 } %t126, ptr %a132 call void @finch_str_drop(ptr %a132) - br label %logic.rend3409 -logic.rend3409: - br label %logic.end3406 -logic.end3406: - %t133 = phi i1 [ false, %logic.from3404 ], [ %t131, %logic.rend3409 ] - br i1 %t133, label %then3410, label %endif3412 -then3410: + br label %logic.rend3523 +logic.rend3523: + br label %logic.end3520 +logic.end3520: + %t133 = phi i1 [ false, %logic.from3518 ], [ %t131, %logic.rend3523 ] + br i1 %t133, label %then3524, label %endif3526 +then3524: call void @finch.drop.arr_str(ptr %a17) ret i1 true -endif3412: +endif3526: %t134 = getelementptr inbounds %S.ast.Node, ptr %a3, i32 0, i32 9 store i64 0, ptr %a135 - br label %each.cond3413 -each.cond3413: + br label %each.cond3527 +each.cond3527: %t136 = getelementptr inbounds { ptr, i64, i64 }, ptr %t134, i32 0, i32 1 %t137 = load i64, ptr %t136 %t138 = load i64, ptr %a135 %t139 = icmp slt i64 %t138, %t137 - br i1 %t139, label %each.body3414, label %each.end3416 -each.body3414: + br i1 %t139, label %each.body3528, label %each.end3530 +each.body3528: %t140 = load ptr, ptr %t134 %t141 = getelementptr inbounds %S.ast.Node, ptr %t140, i64 %t138 %t142 = load %S.ast.Node, ptr %t141 @@ -37074,18 +38446,18 @@ each.body3414: %t145 = load { ptr, i64, i64 }, ptr %a2 %t146 = load %S.ast.Node, ptr %a143 %t147 = call i1 @finch.gen.mutates(ptr %t144, { ptr, i64, i64 } %t145, %S.ast.Node %t146) - br i1 %t147, label %then3417, label %endif3419 -then3417: + br i1 %t147, label %then3531, label %endif3533 +then3531: call void @finch.drop.arr_str(ptr %a17) ret i1 true -endif3419: - br label %each.step3415 -each.step3415: +endif3533: + br label %each.step3529 +each.step3529: %t148 = load i64, ptr %a135 %t149 = add i64 %t148, 1 store i64 %t149, ptr %a135 - br label %each.cond3413 -each.end3416: + br label %each.cond3527 +each.end3530: call void @finch.drop.arr_str(ptr %a17) ret i1 false } @@ -37127,317 +38499,357 @@ entry: %a224 = alloca %S.ast.Node, align 16 %a225 = alloca %S.ast.Node, align 16 %a227 = alloca %S.ast.Node, align 16 - %a251 = alloca { ptr, i64, i64 }, align 16 - %a252 = alloca { ptr, i64, i64 }, align 16 %a253 = alloca { ptr, i64, i64 }, align 16 + %a254 = alloca { ptr, i64, i64 }, align 16 %a255 = alloca { ptr, i64, i64 }, align 16 - %a256 = alloca { ptr, i64, i64 }, align 16 %a257 = alloca { ptr, i64, i64 }, align 16 %a258 = alloca { ptr, i64, i64 }, align 16 + %a259 = alloca { ptr, i64, i64 }, align 16 %a260 = alloca { ptr, i64, i64 }, align 16 - %a265 = alloca { ptr, i64, i64 }, align 16 - %a266 = alloca { ptr, i64, i64 }, align 16 - %a271 = alloca { ptr, i64, i64 }, align 16 - %a272 = alloca { ptr, i64, i64 }, align 16 - %a275 = alloca %S.gen.EnumDef, align 16 - %a276 = alloca i64, align 16 + %a262 = alloca { ptr, i64, i64 }, align 16 + %a267 = alloca { ptr, i64, i64 }, align 16 + %a268 = alloca { ptr, i64, i64 }, align 16 + %a273 = alloca { ptr, i64, i64 }, align 16 + %a274 = alloca { ptr, i64, i64 }, align 16 + %a277 = alloca %S.gen.SumDef, align 16 %a278 = alloca i64, align 16 - %a286 = alloca %S.ast.Node, align 16 - %a293 = alloca { ptr, i64, i64 }, align 16 - %a299 = alloca i64, align 16 - %a302 = alloca i64, align 16 - %a307 = alloca { ptr, i64, i64 }, align 16 - %a308 = alloca { ptr, i64, i64 }, align 16 + %a280 = alloca i64, align 16 + %a288 = alloca %S.ast.Node, align 16 + %a293 = alloca i64, align 16 + %a296 = alloca i64, align 16 + %a301 = alloca { ptr, i64, i64 }, align 16 + %a302 = alloca { ptr, i64, i64 }, align 16 + %a312 = alloca { ptr, i64, i64 }, align 16 + %a313 = alloca { ptr, i64, i64 }, align 16 + %a314 = alloca { ptr, i64, i64 }, align 16 + %a316 = alloca { ptr, i64, i64 }, align 16 + %a317 = alloca { ptr, i64, i64 }, align 16 %a318 = alloca { ptr, i64, i64 }, align 16 %a319 = alloca { ptr, i64, i64 }, align 16 - %a320 = alloca { ptr, i64, i64 }, align 16 - %a322 = alloca { ptr, i64, i64 }, align 16 %a323 = alloca { ptr, i64, i64 }, align 16 %a324 = alloca { ptr, i64, i64 }, align 16 %a325 = alloca { ptr, i64, i64 }, align 16 + %a326 = alloca { ptr, i64, i64 }, align 16 + %a328 = alloca { ptr, i64, i64 }, align 16 %a329 = alloca { ptr, i64, i64 }, align 16 %a330 = alloca { ptr, i64, i64 }, align 16 %a331 = alloca { ptr, i64, i64 }, align 16 - %a332 = alloca { ptr, i64, i64 }, align 16 - %a334 = alloca { ptr, i64, i64 }, align 16 - %a335 = alloca { ptr, i64, i64 }, align 16 - %a336 = alloca { ptr, i64, i64 }, align 16 - %a337 = alloca { ptr, i64, i64 }, align 16 + %a333 = alloca { ptr, i64, i64 }, align 16 + %a338 = alloca { ptr, i64, i64 }, align 16 %a339 = alloca { ptr, i64, i64 }, align 16 - %a343 = alloca i64, align 16 - %a346 = alloca i64, align 16 - %a359 = alloca { ptr, i64, i64 }, align 16 - %a360 = alloca { ptr, i64, i64 }, align 16 - %a361 = alloca { ptr, i64, i64 }, align 16 - %a363 = alloca { ptr, i64, i64 }, align 16 - %a364 = alloca { ptr, i64, i64 }, align 16 - %a365 = alloca { ptr, i64, i64 }, align 16 - %a366 = alloca { ptr, i64, i64 }, align 16 - %a369 = alloca { ptr, i64, i64 }, align 16 - %a371 = alloca { ptr, i64, i64 }, align 16 - %a372 = alloca { ptr, i64, i64 }, align 16 - %a373 = alloca { ptr, i64, i64 }, align 16 - %a374 = alloca { ptr, i64, i64 }, align 16 - %a375 = alloca { ptr, i64, i64 }, align 16 - %a377 = alloca { ptr, i64, i64 }, align 16 - %a378 = alloca { ptr, i64, i64 }, align 16 - %a379 = alloca { ptr, i64, i64 }, align 16 - %a380 = alloca { ptr, i64, i64 }, align 16 - %a382 = alloca { ptr, i64, i64 }, align 16 - %a387 = alloca { ptr, i64, i64 }, align 16 - %a388 = alloca { ptr, i64, i64 }, align 16 - %a410 = alloca %S.gen.EnumDef, align 16 - %a411 = alloca %S.gen.EnumDef, align 16 - %a427 = alloca i64, align 16 - %a446 = alloca { ptr, i64, i64 }, align 16 - %a447 = alloca { ptr, i64, i64 }, align 16 - %a465 = alloca i64, align 16 - %a477 = alloca i64, align 16 - %a494 = alloca { ptr, i64, i64 }, align 16 - %a495 = alloca { ptr, i64, i64 }, align 16 - %a498 = alloca { ptr, i64, i64 }, align 16 - %a511 = alloca i64, align 16 - %a531 = alloca %S.ast.Node, align 16 - %a532 = alloca %S.ast.Node, align 16 - %a534 = alloca %S.ast.Node, align 16 - %a554 = alloca { ptr, i64, i64 }, align 16 - %a555 = alloca { ptr, i64, i64 }, align 16 - %a556 = alloca { ptr, i64, i64 }, align 16 - %a558 = alloca { ptr, i64, i64 }, align 16 - %a559 = alloca { ptr, i64, i64 }, align 16 - %a560 = alloca { ptr, i64, i64 }, align 16 - %a561 = alloca { ptr, i64, i64 }, align 16 - %a563 = alloca { ptr, i64, i64 }, align 16 - %a582 = alloca { ptr, i64, i64 }, align 16 - %a583 = alloca { ptr, i64, i64 }, align 16 - %a584 = alloca { ptr, i64, i64 }, align 16 - %a586 = alloca { ptr, i64, i64 }, align 16 - %a587 = alloca { ptr, i64, i64 }, align 16 - %a588 = alloca { ptr, i64, i64 }, align 16 - %a589 = alloca { ptr, i64, i64 }, align 16 - %a591 = alloca { ptr, i64, i64 }, align 16 - %a600 = alloca { ptr, i64, i64 }, align 16 - %a601 = alloca { ptr, i64, i64 }, align 16 - %a606 = alloca { ptr, i64, i64 }, align 16 - %a607 = alloca { ptr, i64, i64 }, align 16 - %a612 = alloca { ptr, i64, i64 }, align 16 - %a613 = alloca { ptr, i64, i64 }, align 16 - %a618 = alloca { ptr, i64, i64 }, align 16 - %a619 = alloca { ptr, i64, i64 }, align 16 - %a634 = alloca { ptr, i64, i64 }, align 16 - %a635 = alloca { ptr, i64, i64 }, align 16 - %a637 = alloca { ptr, i64, i64 }, align 16 - %a638 = alloca i1, align 16 - %a665 = alloca { ptr, i64, i64 }, align 16 - %a666 = alloca { ptr, i64, i64 }, align 16 - %a667 = alloca { ptr, i64, i64 }, align 16 - %a669 = alloca { ptr, i64, i64 }, align 16 - %a670 = alloca { ptr, i64, i64 }, align 16 - %a671 = alloca { ptr, i64, i64 }, align 16 - %a672 = alloca { ptr, i64, i64 }, align 16 - %a676 = alloca { ptr, i64, i64 }, align 16 - %a677 = alloca { ptr, i64, i64 }, align 16 - %a678 = alloca { ptr, i64, i64 }, align 16 - %a679 = alloca { ptr, i64, i64 }, align 16 - %a681 = alloca { ptr, i64, i64 }, align 16 - %a682 = alloca { ptr, i64, i64 }, align 16 - %a683 = alloca { ptr, i64, i64 }, align 16 - %a684 = alloca { ptr, i64, i64 }, align 16 - %a686 = alloca { ptr, i64, i64 }, align 16 - %a699 = alloca i64, align 16 + %a373 = alloca %S.gen.SumDef, align 16 + %a374 = alloca %S.gen.SumDef, align 16 + %a403 = alloca { ptr, i64, i64 }, align 16 + %a404 = alloca { ptr, i64, i64 }, align 16 + %a405 = alloca { ptr, i64, i64 }, align 16 + %a407 = alloca { ptr, i64, i64 }, align 16 + %a408 = alloca { ptr, i64, i64 }, align 16 + %a409 = alloca { ptr, i64, i64 }, align 16 + %a410 = alloca { ptr, i64, i64 }, align 16 + %a412 = alloca { ptr, i64, i64 }, align 16 + %a417 = alloca { ptr, i64, i64 }, align 16 + %a418 = alloca { ptr, i64, i64 }, align 16 + %a423 = alloca { ptr, i64, i64 }, align 16 + %a424 = alloca { ptr, i64, i64 }, align 16 + %a427 = alloca %S.gen.EnumDef, align 16 + %a428 = alloca i64, align 16 + %a430 = alloca i64, align 16 + %a438 = alloca %S.ast.Node, align 16 + %a445 = alloca { ptr, i64, i64 }, align 16 + %a451 = alloca i64, align 16 + %a454 = alloca i64, align 16 + %a459 = alloca { ptr, i64, i64 }, align 16 + %a460 = alloca { ptr, i64, i64 }, align 16 + %a470 = alloca { ptr, i64, i64 }, align 16 + %a471 = alloca { ptr, i64, i64 }, align 16 + %a472 = alloca { ptr, i64, i64 }, align 16 + %a474 = alloca { ptr, i64, i64 }, align 16 + %a475 = alloca { ptr, i64, i64 }, align 16 + %a476 = alloca { ptr, i64, i64 }, align 16 + %a477 = alloca { ptr, i64, i64 }, align 16 + %a481 = alloca { ptr, i64, i64 }, align 16 + %a482 = alloca { ptr, i64, i64 }, align 16 + %a483 = alloca { ptr, i64, i64 }, align 16 + %a484 = alloca { ptr, i64, i64 }, align 16 + %a486 = alloca { ptr, i64, i64 }, align 16 + %a487 = alloca { ptr, i64, i64 }, align 16 + %a488 = alloca { ptr, i64, i64 }, align 16 + %a489 = alloca { ptr, i64, i64 }, align 16 + %a491 = alloca { ptr, i64, i64 }, align 16 + %a495 = alloca i64, align 16 + %a498 = alloca i64, align 16 + %a511 = alloca { ptr, i64, i64 }, align 16 + %a512 = alloca { ptr, i64, i64 }, align 16 + %a513 = alloca { ptr, i64, i64 }, align 16 + %a515 = alloca { ptr, i64, i64 }, align 16 + %a516 = alloca { ptr, i64, i64 }, align 16 + %a517 = alloca { ptr, i64, i64 }, align 16 + %a518 = alloca { ptr, i64, i64 }, align 16 + %a521 = alloca { ptr, i64, i64 }, align 16 + %a523 = alloca { ptr, i64, i64 }, align 16 + %a524 = alloca { ptr, i64, i64 }, align 16 + %a525 = alloca { ptr, i64, i64 }, align 16 + %a526 = alloca { ptr, i64, i64 }, align 16 + %a527 = alloca { ptr, i64, i64 }, align 16 + %a529 = alloca { ptr, i64, i64 }, align 16 + %a530 = alloca { ptr, i64, i64 }, align 16 + %a531 = alloca { ptr, i64, i64 }, align 16 + %a532 = alloca { ptr, i64, i64 }, align 16 + %a534 = alloca { ptr, i64, i64 }, align 16 + %a539 = alloca { ptr, i64, i64 }, align 16 + %a540 = alloca { ptr, i64, i64 }, align 16 + %a562 = alloca %S.gen.EnumDef, align 16 + %a563 = alloca %S.gen.EnumDef, align 16 + %a579 = alloca i64, align 16 + %a598 = alloca { ptr, i64, i64 }, align 16 + %a599 = alloca { ptr, i64, i64 }, align 16 + %a617 = alloca i64, align 16 + %a629 = alloca i64, align 16 + %a646 = alloca { ptr, i64, i64 }, align 16 + %a647 = alloca { ptr, i64, i64 }, align 16 + %a650 = alloca { ptr, i64, i64 }, align 16 + %a663 = alloca i64, align 16 + %a683 = alloca %S.ast.Node, align 16 + %a684 = alloca %S.ast.Node, align 16 + %a686 = alloca %S.ast.Node, align 16 + %a706 = alloca { ptr, i64, i64 }, align 16 + %a707 = alloca { ptr, i64, i64 }, align 16 + %a708 = alloca { ptr, i64, i64 }, align 16 + %a710 = alloca { ptr, i64, i64 }, align 16 + %a711 = alloca { ptr, i64, i64 }, align 16 + %a712 = alloca { ptr, i64, i64 }, align 16 %a713 = alloca { ptr, i64, i64 }, align 16 - %a720 = alloca { ptr, i64, i64 }, align 16 - %a721 = alloca { ptr, i64, i64 }, align 16 - %a722 = alloca { ptr, i64, i64 }, align 16 - %a724 = alloca { ptr, i64, i64 }, align 16 - %a725 = alloca { ptr, i64, i64 }, align 16 - %a726 = alloca { ptr, i64, i64 }, align 16 - %a727 = alloca { ptr, i64, i64 }, align 16 - %a729 = alloca { ptr, i64, i64 }, align 16 - %a742 = alloca { ptr, i64, i64 }, align 16 + %a715 = alloca { ptr, i64, i64 }, align 16 + %a734 = alloca { ptr, i64, i64 }, align 16 + %a735 = alloca { ptr, i64, i64 }, align 16 + %a736 = alloca { ptr, i64, i64 }, align 16 + %a738 = alloca { ptr, i64, i64 }, align 16 + %a739 = alloca { ptr, i64, i64 }, align 16 + %a740 = alloca { ptr, i64, i64 }, align 16 + %a741 = alloca { ptr, i64, i64 }, align 16 %a743 = alloca { ptr, i64, i64 }, align 16 - %a744 = alloca { ptr, i64, i64 }, align 16 - %a746 = alloca { ptr, i64, i64 }, align 16 - %a747 = alloca { ptr, i64, i64 }, align 16 - %a748 = alloca { ptr, i64, i64 }, align 16 - %a749 = alloca { ptr, i64, i64 }, align 16 + %a752 = alloca { ptr, i64, i64 }, align 16 %a753 = alloca { ptr, i64, i64 }, align 16 - %a754 = alloca { ptr, i64, i64 }, align 16 - %a755 = alloca { ptr, i64, i64 }, align 16 - %a756 = alloca { ptr, i64, i64 }, align 16 %a758 = alloca { ptr, i64, i64 }, align 16 %a759 = alloca { ptr, i64, i64 }, align 16 - %a760 = alloca { ptr, i64, i64 }, align 16 - %a761 = alloca { ptr, i64, i64 }, align 16 - %a763 = alloca { ptr, i64, i64 }, align 16 - %a777 = alloca i64, align 16 - %a780 = alloca i64, align 16 - %a785 = alloca { ptr, i64, i64 }, align 16 + %a764 = alloca { ptr, i64, i64 }, align 16 + %a765 = alloca { ptr, i64, i64 }, align 16 + %a770 = alloca { ptr, i64, i64 }, align 16 + %a771 = alloca { ptr, i64, i64 }, align 16 %a786 = alloca { ptr, i64, i64 }, align 16 - %a796 = alloca { ptr, i64, i64 }, align 16 - %a797 = alloca { ptr, i64, i64 }, align 16 - %a798 = alloca { ptr, i64, i64 }, align 16 - %a800 = alloca { ptr, i64, i64 }, align 16 - %a801 = alloca { ptr, i64, i64 }, align 16 - %a802 = alloca { ptr, i64, i64 }, align 16 - %a803 = alloca { ptr, i64, i64 }, align 16 - %a807 = alloca { ptr, i64, i64 }, align 16 - %a808 = alloca { ptr, i64, i64 }, align 16 - %a809 = alloca { ptr, i64, i64 }, align 16 - %a810 = alloca { ptr, i64, i64 }, align 16 - %a812 = alloca { ptr, i64, i64 }, align 16 - %a813 = alloca { ptr, i64, i64 }, align 16 - %a814 = alloca { ptr, i64, i64 }, align 16 - %a815 = alloca { ptr, i64, i64 }, align 16 + %a787 = alloca { ptr, i64, i64 }, align 16 + %a789 = alloca { ptr, i64, i64 }, align 16 + %a790 = alloca i1, align 16 %a817 = alloca { ptr, i64, i64 }, align 16 + %a818 = alloca { ptr, i64, i64 }, align 16 + %a819 = alloca { ptr, i64, i64 }, align 16 + %a821 = alloca { ptr, i64, i64 }, align 16 + %a822 = alloca { ptr, i64, i64 }, align 16 + %a823 = alloca { ptr, i64, i64 }, align 16 + %a824 = alloca { ptr, i64, i64 }, align 16 + %a828 = alloca { ptr, i64, i64 }, align 16 + %a829 = alloca { ptr, i64, i64 }, align 16 + %a830 = alloca { ptr, i64, i64 }, align 16 %a831 = alloca { ptr, i64, i64 }, align 16 - %a832 = alloca { ptr, i64, i64 }, align 16 %a833 = alloca { ptr, i64, i64 }, align 16 + %a834 = alloca { ptr, i64, i64 }, align 16 %a835 = alloca { ptr, i64, i64 }, align 16 %a836 = alloca { ptr, i64, i64 }, align 16 - %a837 = alloca { ptr, i64, i64 }, align 16 %a838 = alloca { ptr, i64, i64 }, align 16 - %a840 = alloca { ptr, i64, i64 }, align 16 - %a848 = alloca { ptr, i64, i64 }, align 16 - %a849 = alloca { ptr, i64, i64 }, align 16 - %a850 = alloca { ptr, i64, i64 }, align 16 - %a852 = alloca { ptr, i64, i64 }, align 16 - %a853 = alloca { ptr, i64, i64 }, align 16 - %a854 = alloca { ptr, i64, i64 }, align 16 - %a855 = alloca { ptr, i64, i64 }, align 16 - %a857 = alloca { ptr, i64, i64 }, align 16 - %a862 = alloca { ptr, i64, i64 }, align 16 - %a863 = alloca { ptr, i64, i64 }, align 16 - %a868 = alloca { ptr, i64, i64 }, align 16 - %a869 = alloca { ptr, i64, i64 }, align 16 + %a851 = alloca i64, align 16 + %a865 = alloca { ptr, i64, i64 }, align 16 + %a872 = alloca { ptr, i64, i64 }, align 16 + %a873 = alloca { ptr, i64, i64 }, align 16 %a874 = alloca { ptr, i64, i64 }, align 16 - %a875 = alloca { ptr, i64, i64 }, align 16 + %a876 = alloca { ptr, i64, i64 }, align 16 + %a877 = alloca { ptr, i64, i64 }, align 16 + %a878 = alloca { ptr, i64, i64 }, align 16 %a879 = alloca { ptr, i64, i64 }, align 16 - %a880 = alloca { ptr, i64, i64 }, align 16 - %a895 = alloca %S.gen.FnSig, align 16 + %a881 = alloca { ptr, i64, i64 }, align 16 + %a894 = alloca { ptr, i64, i64 }, align 16 + %a895 = alloca { ptr, i64, i64 }, align 16 + %a896 = alloca { ptr, i64, i64 }, align 16 + %a898 = alloca { ptr, i64, i64 }, align 16 + %a899 = alloca { ptr, i64, i64 }, align 16 + %a900 = alloca { ptr, i64, i64 }, align 16 %a901 = alloca { ptr, i64, i64 }, align 16 - %a902 = alloca { ptr, i64, i64 }, align 16 - %a903 = alloca { ptr, i64, i64 }, align 16 - %a904 = alloca { ptr, i64, i64 }, align 16 + %a905 = alloca { ptr, i64, i64 }, align 16 %a906 = alloca { ptr, i64, i64 }, align 16 %a907 = alloca { ptr, i64, i64 }, align 16 %a908 = alloca { ptr, i64, i64 }, align 16 - %a909 = alloca { ptr, i64, i64 }, align 16 + %a910 = alloca { ptr, i64, i64 }, align 16 + %a911 = alloca { ptr, i64, i64 }, align 16 + %a912 = alloca { ptr, i64, i64 }, align 16 %a913 = alloca { ptr, i64, i64 }, align 16 - %a914 = alloca { ptr, i64, i64 }, align 16 %a915 = alloca { ptr, i64, i64 }, align 16 - %a916 = alloca { ptr, i64, i64 }, align 16 - %a920 = alloca { ptr, i64, i64 }, align 16 - %a930 = alloca { ptr, i64, i64 }, align 16 - %a931 = alloca { ptr, i64, i64 }, align 16 - %a932 = alloca { ptr, i64, i64 }, align 16 - %a933 = alloca { ptr, i64, i64 }, align 16 - %a935 = alloca { ptr, i64, i64 }, align 16 - %a936 = alloca { ptr, i64, i64 }, align 16 + %a929 = alloca i64, align 16 + %a932 = alloca i64, align 16 %a937 = alloca { ptr, i64, i64 }, align 16 %a938 = alloca { ptr, i64, i64 }, align 16 - %a942 = alloca { ptr, i64, i64 }, align 16 - %a943 = alloca { ptr, i64, i64 }, align 16 - %a944 = alloca { ptr, i64, i64 }, align 16 - %a945 = alloca { ptr, i64, i64 }, align 16 - %a947 = alloca { ptr, i64, i64 }, align 16 %a948 = alloca { ptr, i64, i64 }, align 16 %a949 = alloca { ptr, i64, i64 }, align 16 %a950 = alloca { ptr, i64, i64 }, align 16 + %a952 = alloca { ptr, i64, i64 }, align 16 + %a953 = alloca { ptr, i64, i64 }, align 16 %a954 = alloca { ptr, i64, i64 }, align 16 %a955 = alloca { ptr, i64, i64 }, align 16 - %a956 = alloca { ptr, i64, i64 }, align 16 - %a957 = alloca { ptr, i64, i64 }, align 16 + %a959 = alloca { ptr, i64, i64 }, align 16 + %a960 = alloca { ptr, i64, i64 }, align 16 %a961 = alloca { ptr, i64, i64 }, align 16 - %a969 = alloca %S.ast.Type, align 16 - %a974 = alloca i64, align 16 - %a986 = alloca { ptr, i64, i64 }, align 16 + %a962 = alloca { ptr, i64, i64 }, align 16 + %a964 = alloca { ptr, i64, i64 }, align 16 + %a965 = alloca { ptr, i64, i64 }, align 16 + %a966 = alloca { ptr, i64, i64 }, align 16 + %a967 = alloca { ptr, i64, i64 }, align 16 + %a969 = alloca { ptr, i64, i64 }, align 16 + %a983 = alloca { ptr, i64, i64 }, align 16 + %a984 = alloca { ptr, i64, i64 }, align 16 + %a985 = alloca { ptr, i64, i64 }, align 16 %a987 = alloca { ptr, i64, i64 }, align 16 + %a988 = alloca { ptr, i64, i64 }, align 16 + %a989 = alloca { ptr, i64, i64 }, align 16 + %a990 = alloca { ptr, i64, i64 }, align 16 + %a992 = alloca { ptr, i64, i64 }, align 16 + %a1000 = alloca { ptr, i64, i64 }, align 16 + %a1001 = alloca { ptr, i64, i64 }, align 16 + %a1002 = alloca { ptr, i64, i64 }, align 16 + %a1004 = alloca { ptr, i64, i64 }, align 16 + %a1005 = alloca { ptr, i64, i64 }, align 16 %a1006 = alloca { ptr, i64, i64 }, align 16 %a1007 = alloca { ptr, i64, i64 }, align 16 - %a1008 = alloca { ptr, i64, i64 }, align 16 - %a1010 = alloca { ptr, i64, i64 }, align 16 - %a1011 = alloca { ptr, i64, i64 }, align 16 - %a1012 = alloca { ptr, i64, i64 }, align 16 - %a1013 = alloca { ptr, i64, i64 }, align 16 + %a1009 = alloca { ptr, i64, i64 }, align 16 + %a1014 = alloca { ptr, i64, i64 }, align 16 %a1015 = alloca { ptr, i64, i64 }, align 16 - %a1052 = alloca { ptr, i64, i64 }, align 16 + %a1020 = alloca { ptr, i64, i64 }, align 16 + %a1021 = alloca { ptr, i64, i64 }, align 16 + %a1026 = alloca { ptr, i64, i64 }, align 16 + %a1027 = alloca { ptr, i64, i64 }, align 16 + %a1031 = alloca { ptr, i64, i64 }, align 16 + %a1032 = alloca { ptr, i64, i64 }, align 16 + %a1047 = alloca %S.gen.FnSig, align 16 %a1053 = alloca { ptr, i64, i64 }, align 16 - %a1071 = alloca %S.gen.FnSig, align 16 - %a1072 = alloca %S.gen.FnSig, align 16 - %a1082 = alloca i1, align 16 - %a1089 = alloca i64, align 16 - %a1155 = alloca %S.ast.Node, align 16 - %a1156 = alloca %S.ast.Node, align 16 - %a1158 = alloca %S.ast.Node, align 16 - %a1197 = alloca { ptr, i64, i64 }, align 16 - %a1198 = alloca { ptr, i64, i64 }, align 16 - %a1211 = alloca i64, align 16 - %a1224 = alloca %S.gen.Template, align 16 - %a1225 = alloca %S.gen.Template, align 16 - %a1227 = alloca %S.gen.Template, align 16 - %a1255 = alloca %S.ast.Node, align 16 - %a1256 = alloca %S.ast.Node, align 16 - %a1258 = alloca %S.ast.Node, align 16 - %a1288 = alloca { ptr, i64, i64 }, align 16 - %a1289 = alloca { ptr, i64, i64 }, align 16 - %a1302 = alloca i64, align 16 - %a1342 = alloca %S.ast.Node, align 16 - %a1343 = alloca %S.ast.Node, align 16 - %a1345 = alloca %S.ast.Node, align 16 - %a1357 = alloca %S.ast.Node, align 16 - %a1358 = alloca %S.ast.Node, align 16 - %a1360 = alloca %S.ast.Node, align 16 - %a1373 = alloca i64, align 16 - %a1393 = alloca %S.ast.Type, align 16 - %a1394 = alloca %S.ast.Type, align 16 - %a1396 = alloca %S.ast.Type, align 16 + %a1054 = alloca { ptr, i64, i64 }, align 16 + %a1055 = alloca { ptr, i64, i64 }, align 16 + %a1056 = alloca { ptr, i64, i64 }, align 16 + %a1058 = alloca { ptr, i64, i64 }, align 16 + %a1059 = alloca { ptr, i64, i64 }, align 16 + %a1060 = alloca { ptr, i64, i64 }, align 16 + %a1061 = alloca { ptr, i64, i64 }, align 16 + %a1065 = alloca { ptr, i64, i64 }, align 16 + %a1066 = alloca { ptr, i64, i64 }, align 16 + %a1067 = alloca { ptr, i64, i64 }, align 16 + %a1068 = alloca { ptr, i64, i64 }, align 16 + %a1072 = alloca { ptr, i64, i64 }, align 16 + %a1082 = alloca { ptr, i64, i64 }, align 16 + %a1083 = alloca { ptr, i64, i64 }, align 16 + %a1084 = alloca { ptr, i64, i64 }, align 16 + %a1085 = alloca { ptr, i64, i64 }, align 16 + %a1087 = alloca { ptr, i64, i64 }, align 16 + %a1088 = alloca { ptr, i64, i64 }, align 16 + %a1089 = alloca { ptr, i64, i64 }, align 16 + %a1090 = alloca { ptr, i64, i64 }, align 16 + %a1094 = alloca { ptr, i64, i64 }, align 16 + %a1095 = alloca { ptr, i64, i64 }, align 16 + %a1096 = alloca { ptr, i64, i64 }, align 16 + %a1097 = alloca { ptr, i64, i64 }, align 16 + %a1099 = alloca { ptr, i64, i64 }, align 16 + %a1100 = alloca { ptr, i64, i64 }, align 16 + %a1101 = alloca { ptr, i64, i64 }, align 16 + %a1102 = alloca { ptr, i64, i64 }, align 16 + %a1106 = alloca { ptr, i64, i64 }, align 16 + %a1107 = alloca { ptr, i64, i64 }, align 16 + %a1108 = alloca { ptr, i64, i64 }, align 16 + %a1109 = alloca { ptr, i64, i64 }, align 16 + %a1113 = alloca { ptr, i64, i64 }, align 16 + %a1121 = alloca %S.ast.Type, align 16 + %a1126 = alloca i64, align 16 + %a1138 = alloca { ptr, i64, i64 }, align 16 + %a1139 = alloca { ptr, i64, i64 }, align 16 + %a1158 = alloca { ptr, i64, i64 }, align 16 + %a1159 = alloca { ptr, i64, i64 }, align 16 + %a1160 = alloca { ptr, i64, i64 }, align 16 + %a1162 = alloca { ptr, i64, i64 }, align 16 + %a1163 = alloca { ptr, i64, i64 }, align 16 + %a1164 = alloca { ptr, i64, i64 }, align 16 + %a1165 = alloca { ptr, i64, i64 }, align 16 + %a1167 = alloca { ptr, i64, i64 }, align 16 + %a1204 = alloca { ptr, i64, i64 }, align 16 + %a1205 = alloca { ptr, i64, i64 }, align 16 + %a1223 = alloca %S.gen.FnSig, align 16 + %a1224 = alloca %S.gen.FnSig, align 16 + %a1234 = alloca i1, align 16 + %a1241 = alloca i64, align 16 + %a1307 = alloca %S.ast.Node, align 16 + %a1308 = alloca %S.ast.Node, align 16 + %a1310 = alloca %S.ast.Node, align 16 + %a1349 = alloca { ptr, i64, i64 }, align 16 + %a1350 = alloca { ptr, i64, i64 }, align 16 + %a1363 = alloca i64, align 16 + %a1376 = alloca %S.gen.Template, align 16 + %a1377 = alloca %S.gen.Template, align 16 + %a1379 = alloca %S.gen.Template, align 16 + %a1407 = alloca %S.ast.Node, align 16 + %a1408 = alloca %S.ast.Node, align 16 + %a1410 = alloca %S.ast.Node, align 16 + %a1440 = alloca { ptr, i64, i64 }, align 16 + %a1441 = alloca { ptr, i64, i64 }, align 16 + %a1454 = alloca i64, align 16 + %a1494 = alloca %S.ast.Node, align 16 + %a1495 = alloca %S.ast.Node, align 16 + %a1497 = alloca %S.ast.Node, align 16 + %a1509 = alloca %S.ast.Node, align 16 + %a1510 = alloca %S.ast.Node, align 16 + %a1512 = alloca %S.ast.Node, align 16 + %a1525 = alloca i64, align 16 + %a1545 = alloca %S.ast.Type, align 16 + %a1546 = alloca %S.ast.Type, align 16 + %a1548 = alloca %S.ast.Type, align 16 store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 %t3 = icmp eq ptr %t2, null - br i1 %t3, label %panic3420, label %ok3421 -panic3420: - call void @finch_panic(ptr @.str.2152, i64 1444, ptr @.str.2153) + br i1 %t3, label %panic3534, label %ok3535 +panic3534: + call void @finch_panic(ptr @.str.2224, i64 1507, ptr @.str.2225) unreachable -ok3421: +ok3535: %t4 = getelementptr inbounds %S.gen.Gen, ptr %t2, i32 0, i32 0 %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %t4, i32 0, i32 1 %t6 = load i64, ptr %t5 store i64 0, ptr %a7 - br label %for.cond3422 -for.cond3422: + br label %for.cond3536 +for.cond3536: %t8 = load i64, ptr %a7 %t9 = icmp slt i64 %t8, %t6 - br i1 %t9, label %for.body3423, label %for.end3425 -for.body3423: + br i1 %t9, label %for.body3537, label %for.end3539 +for.body3537: %t10 = load ptr, ptr %a1 %t11 = icmp eq ptr %t10, null - br i1 %t11, label %panic3426, label %ok3427 -panic3426: - call void @finch_panic(ptr @.str.2154, i64 1445, ptr @.str.2155) + br i1 %t11, label %panic3540, label %ok3541 +panic3540: + call void @finch_panic(ptr @.str.2226, i64 1508, ptr @.str.2227) unreachable -ok3427: +ok3541: %t12 = getelementptr inbounds %S.gen.Gen, ptr %t10, i32 0, i32 0 %t13 = load i64, ptr %a7 %t14 = load { ptr, i64, i64 }, ptr %t12 %t15 = extractvalue { ptr, i64, i64 } %t14, 1 %t16 = icmp uge i64 %t13, %t15 - br i1 %t16, label %range3428, label %inrange3429 -range3428: - call void @finch_panic_index(ptr @.str.2156, i64 1445, i64 %t13, i64 %t15) + br i1 %t16, label %range3542, label %inrange3543 +range3542: + call void @finch_panic_index(ptr @.str.2228, i64 1508, i64 %t13, i64 %t15) unreachable -inrange3429: +inrange3543: %t17 = extractvalue { ptr, i64, i64 } %t14, 0 %t18 = getelementptr inbounds %S.ast.Program, ptr %t17, i64 %t13 %t19 = getelementptr inbounds %S.ast.Program, ptr %t18, i32 0, i32 0 %t20 = load { ptr, i64, i64 }, ptr %t19 %t21 = load ptr, ptr %a1 %t22 = icmp eq ptr %t21, null - br i1 %t22, label %panic3430, label %ok3431 -panic3430: - call void @finch_panic(ptr @.str.2157, i64 1445, ptr @.str.2158) + br i1 %t22, label %panic3544, label %ok3545 +panic3544: + call void @finch_panic(ptr @.str.2229, i64 1508, ptr @.str.2230) unreachable -ok3431: +ok3545: %t23 = getelementptr inbounds %S.gen.Gen, ptr %t21, i32 0, i32 14 store { ptr, i64, i64 } %t20, ptr %a24 call void @finch_str_copy(ptr %a25, ptr %a24) @@ -37448,50 +38860,50 @@ ok3431: call void @finch_str_drop(ptr %a28) %t29 = load ptr, ptr %a1 %t30 = icmp eq ptr %t29, null - br i1 %t30, label %panic3432, label %ok3433 -panic3432: - call void @finch_panic(ptr @.str.2159, i64 1446, ptr @.str.2160) + br i1 %t30, label %panic3546, label %ok3547 +panic3546: + call void @finch_panic(ptr @.str.2231, i64 1509, ptr @.str.2232) unreachable -ok3433: +ok3547: %t31 = getelementptr inbounds %S.gen.Gen, ptr %t29, i32 0, i32 0 %t32 = load i64, ptr %a7 %t33 = load { ptr, i64, i64 }, ptr %t31 %t34 = extractvalue { ptr, i64, i64 } %t33, 1 %t35 = icmp uge i64 %t32, %t34 - br i1 %t35, label %range3434, label %inrange3435 -range3434: - call void @finch_panic_index(ptr @.str.2161, i64 1446, i64 %t32, i64 %t34) + br i1 %t35, label %range3548, label %inrange3549 +range3548: + call void @finch_panic_index(ptr @.str.2233, i64 1509, i64 %t32, i64 %t34) unreachable -inrange3435: +inrange3549: %t36 = extractvalue { ptr, i64, i64 } %t33, 0 %t37 = getelementptr inbounds %S.ast.Program, ptr %t36, i64 %t32 %t38 = getelementptr inbounds %S.ast.Program, ptr %t37, i32 0, i32 6 %t39 = getelementptr inbounds { ptr, i64, i64 }, ptr %t38, i32 0, i32 1 %t40 = load i64, ptr %t39 store i64 0, ptr %a41 - br label %for.cond3436 -for.cond3436: + br label %for.cond3550 +for.cond3550: %t42 = load i64, ptr %a41 %t43 = icmp slt i64 %t42, %t40 - br i1 %t43, label %for.body3437, label %for.end3439 -for.body3437: + br i1 %t43, label %for.body3551, label %for.end3553 +for.body3551: %t44 = load ptr, ptr %a1 %t45 = icmp eq ptr %t44, null - br i1 %t45, label %panic3440, label %ok3441 -panic3440: - call void @finch_panic(ptr @.str.2162, i64 1447, ptr @.str.2163) + br i1 %t45, label %panic3554, label %ok3555 +panic3554: + call void @finch_panic(ptr @.str.2234, i64 1510, ptr @.str.2235) unreachable -ok3441: +ok3555: %t46 = getelementptr inbounds %S.gen.Gen, ptr %t44, i32 0, i32 0 %t47 = load i64, ptr %a7 %t48 = load { ptr, i64, i64 }, ptr %t46 %t49 = extractvalue { ptr, i64, i64 } %t48, 1 %t50 = icmp uge i64 %t47, %t49 - br i1 %t50, label %range3442, label %inrange3443 -range3442: - call void @finch_panic_index(ptr @.str.2164, i64 1447, i64 %t47, i64 %t49) + br i1 %t50, label %range3556, label %inrange3557 +range3556: + call void @finch_panic_index(ptr @.str.2236, i64 1510, i64 %t47, i64 %t49) unreachable -inrange3443: +inrange3557: %t51 = extractvalue { ptr, i64, i64 } %t48, 0 %t52 = getelementptr inbounds %S.ast.Program, ptr %t51, i64 %t47 %t53 = getelementptr inbounds %S.ast.Program, ptr %t52, i32 0, i32 6 @@ -37499,11 +38911,11 @@ inrange3443: %t55 = load { ptr, i64, i64 }, ptr %t53 %t56 = extractvalue { ptr, i64, i64 } %t55, 1 %t57 = icmp uge i64 %t54, %t56 - br i1 %t57, label %range3444, label %inrange3445 -range3444: - call void @finch_panic_index(ptr @.str.2165, i64 1447, i64 %t54, i64 %t56) + br i1 %t57, label %range3558, label %inrange3559 +range3558: + call void @finch_panic_index(ptr @.str.2237, i64 1510, i64 %t54, i64 %t56) unreachable -inrange3445: +inrange3559: %t58 = extractvalue { ptr, i64, i64 } %t55, 0 %t59 = getelementptr inbounds %S.ast.Node, ptr %t58, i64 %t54 %t60 = load %S.ast.Node, ptr %t59 @@ -37514,52 +38926,52 @@ inrange3445: %t65 = load ptr, ptr %a1 %t66 = load ptr, ptr %a1 %t67 = icmp eq ptr %t66, null - br i1 %t67, label %panic3446, label %ok3447 -panic3446: - call void @finch_panic(ptr @.str.2166, i64 1448, ptr @.str.2167) + br i1 %t67, label %panic3560, label %ok3561 +panic3560: + call void @finch_panic(ptr @.str.2238, i64 1511, ptr @.str.2239) unreachable -ok3447: +ok3561: %t68 = getelementptr inbounds %S.gen.Gen, ptr %t66, i32 0, i32 14 %t69 = load { ptr, i64, i64 }, ptr %t68 %t70 = getelementptr inbounds %S.ast.Node, ptr %a64, i32 0, i32 1 %t71 = load { ptr, i64, i64 }, ptr %t70 %t72 = call i64 @finch.gen.findStruct(ptr %t65, { ptr, i64, i64 } %t69, { ptr, i64, i64 } %t71) %t73 = icmp sge i64 %t72, 0 - br label %logic.from3448 -logic.from3448: - br i1 %t73, label %logic.end3450, label %logic.rhs3449 -logic.rhs3449: + br label %logic.from3562 +logic.from3562: + br i1 %t73, label %logic.end3564, label %logic.rhs3563 +logic.rhs3563: %t74 = load ptr, ptr %a1 %t75 = load ptr, ptr %a1 %t76 = icmp eq ptr %t75, null - br i1 %t76, label %panic3451, label %ok3452 -panic3451: - call void @finch_panic(ptr @.str.2168, i64 1448, ptr @.str.2169) + br i1 %t76, label %panic3565, label %ok3566 +panic3565: + call void @finch_panic(ptr @.str.2240, i64 1511, ptr @.str.2241) unreachable -ok3452: +ok3566: %t77 = getelementptr inbounds %S.gen.Gen, ptr %t75, i32 0, i32 14 %t78 = load { ptr, i64, i64 }, ptr %t77 %t79 = getelementptr inbounds %S.ast.Node, ptr %a64, i32 0, i32 1 %t80 = load { ptr, i64, i64 }, ptr %t79 - %t81 = call i64 @finch.gen.findTemplate(ptr %t74, { ptr, i64, i64 } %t78, { ptr, i64, i64 } %t80, { ptr, i64, i64 } { ptr @.str.2170, i64 0, i64 0 }, i1 true) + %t81 = call i64 @finch.gen.findTemplate(ptr %t74, { ptr, i64, i64 } %t78, { ptr, i64, i64 } %t80, { ptr, i64, i64 } { ptr @.str.2242, i64 0, i64 0 }, i1 true) %t82 = icmp sge i64 %t81, 0 - br label %logic.rend3453 -logic.rend3453: - br label %logic.end3450 -logic.end3450: - %t83 = phi i1 [ true, %logic.from3448 ], [ %t82, %logic.rend3453 ] - br i1 %t83, label %then3454, label %endif3456 -then3454: + br label %logic.rend3567 +logic.rend3567: + br label %logic.end3564 +logic.end3564: + %t83 = phi i1 [ true, %logic.from3562 ], [ %t82, %logic.rend3567 ] + br i1 %t83, label %then3568, label %endif3570 +then3568: %t84 = load ptr, ptr %a1 %t85 = load %S.ast.Node, ptr %a64 %t86 = getelementptr inbounds %S.ast.Node, ptr %a64, i32 0, i32 1 %t87 = load { ptr, i64, i64 }, ptr %t86 - store { ptr, i64, i64 } { ptr @.str.2171, i64 12, i64 0 }, ptr %a89 + store { ptr, i64, i64 } { ptr @.str.2243, i64 12, i64 0 }, ptr %a89 store { ptr, i64, i64 } %t87, ptr %a90 call void @finch_str_concat(ptr %a88, ptr %a89, ptr %a90) %t91 = load { ptr, i64, i64 }, ptr %a88 store { ptr, i64, i64 } %t91, ptr %a93 - store { ptr, i64, i64 } { ptr @.str.2172, i64 18, i64 0 }, ptr %a94 + store { ptr, i64, i64 } { ptr @.str.2244, i64 18, i64 0 }, ptr %a94 call void @finch_str_concat(ptr %a92, ptr %a93, ptr %a94) store { ptr, i64, i64 } %t91, ptr %a95 call void @finch_str_drop(ptr %a95) @@ -37567,30 +38979,30 @@ then3454: call void @finch.gen.fail(ptr %t84, %S.ast.Node %t85, { ptr, i64, i64 } %t96) store { ptr, i64, i64 } %t96, ptr %a97 call void @finch_str_drop(ptr %a97) - br label %endif3456 -endif3456: + br label %endif3570 +endif3570: %t98 = getelementptr inbounds %S.ast.Node, ptr %a64, i32 0, i32 3 %t99 = getelementptr inbounds { ptr, i64, i64 }, ptr %t98, i32 0, i32 1 %t100 = load i64, ptr %t99 %t101 = icmp sgt i64 %t100, 0 - br i1 %t101, label %then3457, label %endif3459 -then3457: + br i1 %t101, label %then3571, label %endif3573 +then3571: %t102 = load ptr, ptr %a1 %t103 = icmp eq ptr %t102, null - br i1 %t103, label %panic3460, label %ok3461 -panic3460: - call void @finch_panic(ptr @.str.2173, i64 1453, ptr @.str.2174) + br i1 %t103, label %panic3574, label %ok3575 +panic3574: + call void @finch_panic(ptr @.str.2245, i64 1516, ptr @.str.2246) unreachable -ok3461: +ok3575: %t104 = getelementptr inbounds %S.gen.Gen, ptr %t102, i32 0, i32 17 %t105 = getelementptr inbounds { ptr, i64, i64 }, ptr %t104, i32 0, i32 1 %t106 = load ptr, ptr %a1 %t107 = icmp eq ptr %t106, null - br i1 %t107, label %panic3462, label %ok3463 -panic3462: - call void @finch_panic(ptr @.str.2175, i64 1453, ptr @.str.2176) + br i1 %t107, label %panic3576, label %ok3577 +panic3576: + call void @finch_panic(ptr @.str.2247, i64 1516, ptr @.str.2248) unreachable -ok3463: +ok3577: %t108 = getelementptr inbounds %S.gen.Gen, ptr %t106, i32 0, i32 14 %t109 = load { ptr, i64, i64 }, ptr %t108 store { ptr, i64, i64 } %t109, ptr %a110 @@ -37622,24 +39034,24 @@ ok3463: store %S.gen.Template %t130, ptr %t134 store i64 %t132, ptr %t105 call void @finch.drop.S_ast_Node(ptr %a64) - br label %for.step3438 -endif3459: + br label %for.step3552 +endif3573: %t135 = load ptr, ptr %a1 %t136 = icmp eq ptr %t135, null - br i1 %t136, label %panic3464, label %ok3465 -panic3464: - call void @finch_panic(ptr @.str.2177, i64 1456, ptr @.str.2178) + br i1 %t136, label %panic3578, label %ok3579 +panic3578: + call void @finch_panic(ptr @.str.2249, i64 1519, ptr @.str.2250) unreachable -ok3465: +ok3579: %t137 = getelementptr inbounds %S.gen.Gen, ptr %t135, i32 0, i32 16 %t138 = getelementptr inbounds { ptr, i64, i64 }, ptr %t137, i32 0, i32 1 %t139 = load ptr, ptr %a1 %t140 = icmp eq ptr %t139, null - br i1 %t140, label %panic3466, label %ok3467 -panic3466: - call void @finch_panic(ptr @.str.2179, i64 1456, ptr @.str.2180) + br i1 %t140, label %panic3580, label %ok3581 +panic3580: + call void @finch_panic(ptr @.str.2251, i64 1519, ptr @.str.2252) unreachable -ok3467: +ok3581: %t141 = getelementptr inbounds %S.gen.Gen, ptr %t139, i32 0, i32 14 %t142 = load { ptr, i64, i64 }, ptr %t141 store { ptr, i64, i64 } %t142, ptr %a143 @@ -37664,65 +39076,65 @@ ok3467: store %S.gen.StructDef %t156, ptr %t160 store i64 %t158, ptr %t138 call void @finch.drop.S_ast_Node(ptr %a64) - br label %for.step3438 -for.step3438: + br label %for.step3552 +for.step3552: %t161 = load i64, ptr %a41 %t162 = add i64 %t161, 1 store i64 %t162, ptr %a41 - br label %for.cond3436 -for.end3439: - br label %for.step3424 -for.step3424: + br label %for.cond3550 +for.end3553: + br label %for.step3538 +for.step3538: %t163 = load i64, ptr %a7 %t164 = add i64 %t163, 1 store i64 %t164, ptr %a7 - br label %for.cond3422 -for.end3425: + br label %for.cond3536 +for.end3539: %t165 = load ptr, ptr %a1 %t166 = icmp eq ptr %t165, null - br i1 %t166, label %panic3468, label %ok3469 -panic3468: - call void @finch_panic(ptr @.str.2181, i64 1459, ptr @.str.2182) + br i1 %t166, label %panic3582, label %ok3583 +panic3582: + call void @finch_panic(ptr @.str.2253, i64 1522, ptr @.str.2254) unreachable -ok3469: +ok3583: %t167 = getelementptr inbounds %S.gen.Gen, ptr %t165, i32 0, i32 0 %t168 = getelementptr inbounds { ptr, i64, i64 }, ptr %t167, i32 0, i32 1 %t169 = load i64, ptr %t168 store i64 0, ptr %a170 - br label %for.cond3470 -for.cond3470: + br label %for.cond3584 +for.cond3584: %t171 = load i64, ptr %a170 %t172 = icmp slt i64 %t171, %t169 - br i1 %t172, label %for.body3471, label %for.end3473 -for.body3471: + br i1 %t172, label %for.body3585, label %for.end3587 +for.body3585: %t173 = load ptr, ptr %a1 %t174 = icmp eq ptr %t173, null - br i1 %t174, label %panic3474, label %ok3475 -panic3474: - call void @finch_panic(ptr @.str.2183, i64 1460, ptr @.str.2184) + br i1 %t174, label %panic3588, label %ok3589 +panic3588: + call void @finch_panic(ptr @.str.2255, i64 1523, ptr @.str.2256) unreachable -ok3475: +ok3589: %t175 = getelementptr inbounds %S.gen.Gen, ptr %t173, i32 0, i32 0 %t176 = load i64, ptr %a170 %t177 = load { ptr, i64, i64 }, ptr %t175 %t178 = extractvalue { ptr, i64, i64 } %t177, 1 %t179 = icmp uge i64 %t176, %t178 - br i1 %t179, label %range3476, label %inrange3477 -range3476: - call void @finch_panic_index(ptr @.str.2185, i64 1460, i64 %t176, i64 %t178) + br i1 %t179, label %range3590, label %inrange3591 +range3590: + call void @finch_panic_index(ptr @.str.2257, i64 1523, i64 %t176, i64 %t178) unreachable -inrange3477: +inrange3591: %t180 = extractvalue { ptr, i64, i64 } %t177, 0 %t181 = getelementptr inbounds %S.ast.Program, ptr %t180, i64 %t176 %t182 = getelementptr inbounds %S.ast.Program, ptr %t181, i32 0, i32 0 %t183 = load { ptr, i64, i64 }, ptr %t182 %t184 = load ptr, ptr %a1 %t185 = icmp eq ptr %t184, null - br i1 %t185, label %panic3478, label %ok3479 -panic3478: - call void @finch_panic(ptr @.str.2186, i64 1460, ptr @.str.2187) + br i1 %t185, label %panic3592, label %ok3593 +panic3592: + call void @finch_panic(ptr @.str.2258, i64 1523, ptr @.str.2259) unreachable -ok3479: +ok3593: %t186 = getelementptr inbounds %S.gen.Gen, ptr %t184, i32 0, i32 14 store { ptr, i64, i64 } %t183, ptr %a187 call void @finch_str_copy(ptr %a188, ptr %a187) @@ -37733,50 +39145,50 @@ ok3479: call void @finch_str_drop(ptr %a191) %t192 = load ptr, ptr %a1 %t193 = icmp eq ptr %t192, null - br i1 %t193, label %panic3480, label %ok3481 -panic3480: - call void @finch_panic(ptr @.str.2188, i64 1461, ptr @.str.2189) + br i1 %t193, label %panic3594, label %ok3595 +panic3594: + call void @finch_panic(ptr @.str.2260, i64 1524, ptr @.str.2261) unreachable -ok3481: +ok3595: %t194 = getelementptr inbounds %S.gen.Gen, ptr %t192, i32 0, i32 0 %t195 = load i64, ptr %a170 %t196 = load { ptr, i64, i64 }, ptr %t194 %t197 = extractvalue { ptr, i64, i64 } %t196, 1 %t198 = icmp uge i64 %t195, %t197 - br i1 %t198, label %range3482, label %inrange3483 -range3482: - call void @finch_panic_index(ptr @.str.2190, i64 1461, i64 %t195, i64 %t197) + br i1 %t198, label %range3596, label %inrange3597 +range3596: + call void @finch_panic_index(ptr @.str.2262, i64 1524, i64 %t195, i64 %t197) unreachable -inrange3483: +inrange3597: %t199 = extractvalue { ptr, i64, i64 } %t196, 0 %t200 = getelementptr inbounds %S.ast.Program, ptr %t199, i64 %t195 %t201 = getelementptr inbounds %S.ast.Program, ptr %t200, i32 0, i32 7 %t202 = getelementptr inbounds { ptr, i64, i64 }, ptr %t201, i32 0, i32 1 %t203 = load i64, ptr %t202 store i64 0, ptr %a204 - br label %for.cond3484 -for.cond3484: + br label %for.cond3598 +for.cond3598: %t205 = load i64, ptr %a204 %t206 = icmp slt i64 %t205, %t203 - br i1 %t206, label %for.body3485, label %for.end3487 -for.body3485: + br i1 %t206, label %for.body3599, label %for.end3601 +for.body3599: %t207 = load ptr, ptr %a1 %t208 = icmp eq ptr %t207, null - br i1 %t208, label %panic3488, label %ok3489 -panic3488: - call void @finch_panic(ptr @.str.2191, i64 1462, ptr @.str.2192) + br i1 %t208, label %panic3602, label %ok3603 +panic3602: + call void @finch_panic(ptr @.str.2263, i64 1525, ptr @.str.2264) unreachable -ok3489: +ok3603: %t209 = getelementptr inbounds %S.gen.Gen, ptr %t207, i32 0, i32 0 %t210 = load i64, ptr %a170 %t211 = load { ptr, i64, i64 }, ptr %t209 %t212 = extractvalue { ptr, i64, i64 } %t211, 1 %t213 = icmp uge i64 %t210, %t212 - br i1 %t213, label %range3490, label %inrange3491 -range3490: - call void @finch_panic_index(ptr @.str.2193, i64 1462, i64 %t210, i64 %t212) + br i1 %t213, label %range3604, label %inrange3605 +range3604: + call void @finch_panic_index(ptr @.str.2265, i64 1525, i64 %t210, i64 %t212) unreachable -inrange3491: +inrange3605: %t214 = extractvalue { ptr, i64, i64 } %t211, 0 %t215 = getelementptr inbounds %S.ast.Program, ptr %t214, i64 %t210 %t216 = getelementptr inbounds %S.ast.Program, ptr %t215, i32 0, i32 7 @@ -37784,11 +39196,11 @@ inrange3491: %t218 = load { ptr, i64, i64 }, ptr %t216 %t219 = extractvalue { ptr, i64, i64 } %t218, 1 %t220 = icmp uge i64 %t217, %t219 - br i1 %t220, label %range3492, label %inrange3493 -range3492: - call void @finch_panic_index(ptr @.str.2194, i64 1462, i64 %t217, i64 %t219) + br i1 %t220, label %range3606, label %inrange3607 +range3606: + call void @finch_panic_index(ptr @.str.2266, i64 1525, i64 %t217, i64 %t219) unreachable -inrange3493: +inrange3607: %t221 = extractvalue { ptr, i64, i64 } %t218, 0 %t222 = getelementptr inbounds %S.ast.Node, ptr %t221, i64 %t217 %t223 = load %S.ast.Node, ptr %t222 @@ -37796,2062 +39208,2298 @@ inrange3493: call void @finch.copy.S_ast_Node(ptr %a225, ptr %a224) %t226 = load %S.ast.Node, ptr %a225 store %S.ast.Node %t226, ptr %a227 - %t228 = load ptr, ptr %a1 - %t229 = load ptr, ptr %a1 - %t230 = icmp eq ptr %t229, null - br i1 %t230, label %panic3494, label %ok3495 -panic3494: - call void @finch_panic(ptr @.str.2195, i64 1463, ptr @.str.2196) - unreachable -ok3495: - %t231 = getelementptr inbounds %S.gen.Gen, ptr %t229, i32 0, i32 14 - %t232 = load { ptr, i64, i64 }, ptr %t231 - %t233 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 - %t234 = load { ptr, i64, i64 }, ptr %t233 - %t235 = call i64 @finch.gen.findEnum(ptr %t228, { ptr, i64, i64 } %t232, { ptr, i64, i64 } %t234) - %t236 = icmp sge i64 %t235, 0 - br label %logic.from3496 -logic.from3496: - br i1 %t236, label %logic.end3498, label %logic.rhs3497 -logic.rhs3497: - %t237 = load ptr, ptr %a1 - %t238 = load ptr, ptr %a1 - %t239 = icmp eq ptr %t238, null - br i1 %t239, label %panic3499, label %ok3500 -panic3499: - call void @finch_panic(ptr @.str.2197, i64 1463, ptr @.str.2198) - unreachable -ok3500: - %t240 = getelementptr inbounds %S.gen.Gen, ptr %t238, i32 0, i32 14 - %t241 = load { ptr, i64, i64 }, ptr %t240 - %t242 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 - %t243 = load { ptr, i64, i64 }, ptr %t242 - %t244 = call i64 @finch.gen.findStruct(ptr %t237, { ptr, i64, i64 } %t241, { ptr, i64, i64 } %t243) - %t245 = icmp sge i64 %t244, 0 - br label %logic.rend3501 -logic.rend3501: - br label %logic.end3498 -logic.end3498: - %t246 = phi i1 [ true, %logic.from3496 ], [ %t245, %logic.rend3501 ] - br i1 %t246, label %then3502, label %endif3504 -then3502: - %t247 = load ptr, ptr %a1 - %t248 = load %S.ast.Node, ptr %a227 - %t249 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 - %t250 = load { ptr, i64, i64 }, ptr %t249 - store { ptr, i64, i64 } { ptr @.str.2199, i64 1, i64 0 }, ptr %a252 - store { ptr, i64, i64 } %t250, ptr %a253 - call void @finch_str_concat(ptr %a251, ptr %a252, ptr %a253) - %t254 = load { ptr, i64, i64 }, ptr %a251 - store { ptr, i64, i64 } %t254, ptr %a256 - store { ptr, i64, i64 } { ptr @.str.2200, i64 18, i64 0 }, ptr %a257 - call void @finch_str_concat(ptr %a255, ptr %a256, ptr %a257) - store { ptr, i64, i64 } %t254, ptr %a258 - call void @finch_str_drop(ptr %a258) - %t259 = load { ptr, i64, i64 }, ptr %a255 - call void @finch.gen.fail(ptr %t247, %S.ast.Node %t248, { ptr, i64, i64 } %t259) - store { ptr, i64, i64 } %t259, ptr %a260 - call void @finch_str_drop(ptr %a260) - br label %endif3504 -endif3504: - %t261 = load ptr, ptr %a1 - %t262 = icmp eq ptr %t261, null - br i1 %t262, label %panic3505, label %ok3506 -panic3505: - call void @finch_panic(ptr @.str.2201, i64 1466, ptr @.str.2202) - unreachable -ok3506: - %t263 = getelementptr inbounds %S.gen.Gen, ptr %t261, i32 0, i32 14 - %t264 = load { ptr, i64, i64 }, ptr %t263 - store { ptr, i64, i64 } %t264, ptr %a265 - call void @finch_str_copy(ptr %a266, ptr %a265) - %t267 = load { ptr, i64, i64 }, ptr %a266 - %t268 = insertvalue %S.gen.EnumDef zeroinitializer, { ptr, i64, i64 } %t267, 0 - %t269 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 - %t270 = load { ptr, i64, i64 }, ptr %t269 - store { ptr, i64, i64 } %t270, ptr %a271 - call void @finch_str_copy(ptr %a272, ptr %a271) - %t273 = load { ptr, i64, i64 }, ptr %a272 - %t274 = insertvalue %S.gen.EnumDef %t268, { ptr, i64, i64 } %t273, 1 - store %S.gen.EnumDef %t274, ptr %a275 - store i64 0, ptr %a276 - %t277 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 9 - store i64 0, ptr %a278 - br label %each.cond3507 -each.cond3507: - %t279 = getelementptr inbounds { ptr, i64, i64 }, ptr %t277, i32 0, i32 1 - %t280 = load i64, ptr %t279 - %t281 = load i64, ptr %a278 - %t282 = icmp slt i64 %t281, %t280 - br i1 %t282, label %each.body3508, label %each.end3510 -each.body3508: - %t283 = load ptr, ptr %t277 - %t284 = getelementptr inbounds %S.ast.Node, ptr %t283, i64 %t281 - %t285 = load %S.ast.Node, ptr %t284 - store %S.ast.Node %t285, ptr %a286 - %t287 = getelementptr inbounds %S.ast.Node, ptr %a286, i32 0, i32 4 - %t288 = getelementptr inbounds { ptr, i64, i64 }, ptr %t287, i32 0, i32 1 - %t289 = load i64, ptr %t288 - %t290 = icmp sgt i64 %t289, 0 - br i1 %t290, label %then3511, label %endif3513 -then3511: - %t291 = getelementptr inbounds %S.ast.Node, ptr %a286, i32 0, i32 4 - %t292 = load { ptr, i64, i64 }, ptr %t291 - store { ptr, i64, i64 } %t292, ptr %a293 - %t294 = call i64 @finch_str_to_int(ptr %a293, ptr @.str.2203, i64 1470) - store i64 %t294, ptr %a276 - br label %endif3513 -endif3513: - %t295 = getelementptr inbounds %S.gen.EnumDef, ptr %a275, i32 0, i32 2 - %t296 = getelementptr inbounds { ptr, i64, i64 }, ptr %t295, i32 0, i32 1 - %t297 = getelementptr inbounds %S.ast.Node, ptr %a286, i32 0, i32 1 - %t298 = load { ptr, i64, i64 }, ptr %t297 - store i64 -1, ptr %a299 - %t300 = load i64, ptr %t296 - %t301 = load ptr, ptr %t295 - store i64 0, ptr %a302 - br label %find.cond3514 -find.cond3514: - %t303 = load i64, ptr %a302 - %t304 = icmp slt i64 %t303, %t300 - br i1 %t304, label %find.body3515, label %find.end3518 -find.body3515: - %t305 = getelementptr inbounds { ptr, i64, i64 }, ptr %t301, i64 %t303 - %t306 = load { ptr, i64, i64 }, ptr %t305 - store { ptr, i64, i64 } %t306, ptr %a307 - store { ptr, i64, i64 } %t298, ptr %a308 - %t309 = call i32 @finch_str_eq(ptr %a307, ptr %a308) - %t310 = icmp ne i32 %t309, 0 - br i1 %t310, label %find.hit3516, label %find.next3517 -find.hit3516: - store i64 %t303, ptr %a299 - br label %find.end3518 -find.next3517: - %t311 = add i64 %t303, 1 - store i64 %t311, ptr %a302 - br label %find.cond3514 -find.end3518: - %t312 = load i64, ptr %a299 - %t313 = icmp sge i64 %t312, 0 - br i1 %t313, label %then3519, label %endif3521 -then3519: - %t314 = load ptr, ptr %a1 - %t315 = load %S.ast.Node, ptr %a286 - %t316 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 - %t317 = load { ptr, i64, i64 }, ptr %t316 - store { ptr, i64, i64 } { ptr @.str.2204, i64 9, i64 0 }, ptr %a319 - store { ptr, i64, i64 } %t317, ptr %a320 - call void @finch_str_concat(ptr %a318, ptr %a319, ptr %a320) - %t321 = load { ptr, i64, i64 }, ptr %a318 - store { ptr, i64, i64 } %t321, ptr %a323 - store { ptr, i64, i64 } { ptr @.str.2205, i64 17, i64 0 }, ptr %a324 - call void @finch_str_concat(ptr %a322, ptr %a323, ptr %a324) - store { ptr, i64, i64 } %t321, ptr %a325 - call void @finch_str_drop(ptr %a325) - %t326 = load { ptr, i64, i64 }, ptr %a322 - %t327 = getelementptr inbounds %S.ast.Node, ptr %a286, i32 0, i32 1 - %t328 = load { ptr, i64, i64 }, ptr %t327 - store { ptr, i64, i64 } %t326, ptr %a330 - store { ptr, i64, i64 } %t328, ptr %a331 - call void @finch_str_concat(ptr %a329, ptr %a330, ptr %a331) - store { ptr, i64, i64 } %t326, ptr %a332 - call void @finch_str_drop(ptr %a332) - %t333 = load { ptr, i64, i64 }, ptr %a329 - store { ptr, i64, i64 } %t333, ptr %a335 - store { ptr, i64, i64 } { ptr @.str.2206, i64 6, i64 0 }, ptr %a336 - call void @finch_str_concat(ptr %a334, ptr %a335, ptr %a336) - store { ptr, i64, i64 } %t333, ptr %a337 - call void @finch_str_drop(ptr %a337) - %t338 = load { ptr, i64, i64 }, ptr %a334 - call void @finch.gen.fail(ptr %t314, %S.ast.Node %t315, { ptr, i64, i64 } %t338) - store { ptr, i64, i64 } %t338, ptr %a339 - call void @finch_str_drop(ptr %a339) - br label %endif3521 -endif3521: - %t340 = getelementptr inbounds %S.gen.EnumDef, ptr %a275, i32 0, i32 3 - %t341 = getelementptr inbounds { ptr, i64, i64 }, ptr %t340, i32 0, i32 1 - %t342 = load i64, ptr %a276 - store i64 -1, ptr %a343 - %t344 = load i64, ptr %t341 - %t345 = load ptr, ptr %t340 - store i64 0, ptr %a346 - br label %find.cond3522 -find.cond3522: - %t347 = load i64, ptr %a346 - %t348 = icmp slt i64 %t347, %t344 - br i1 %t348, label %find.body3523, label %find.end3526 -find.body3523: - %t349 = getelementptr inbounds i64, ptr %t345, i64 %t347 - %t350 = load i64, ptr %t349 - %t351 = icmp eq i64 %t350, %t342 - br i1 %t351, label %find.hit3524, label %find.next3525 -find.hit3524: - store i64 %t347, ptr %a343 - br label %find.end3526 -find.next3525: - %t352 = add i64 %t347, 1 - store i64 %t352, ptr %a346 - br label %find.cond3522 -find.end3526: - %t353 = load i64, ptr %a343 - %t354 = icmp sge i64 %t353, 0 - br i1 %t354, label %then3527, label %endif3529 -then3527: - %t355 = load ptr, ptr %a1 - %t356 = load %S.ast.Node, ptr %a286 - %t357 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 - %t358 = load { ptr, i64, i64 }, ptr %t357 - store { ptr, i64, i64 } { ptr @.str.2207, i64 16, i64 0 }, ptr %a360 - store { ptr, i64, i64 } %t358, ptr %a361 - call void @finch_str_concat(ptr %a359, ptr %a360, ptr %a361) - %t362 = load { ptr, i64, i64 }, ptr %a359 - store { ptr, i64, i64 } %t362, ptr %a364 - store { ptr, i64, i64 } { ptr @.str.2208, i64 17, i64 0 }, ptr %a365 - call void @finch_str_concat(ptr %a363, ptr %a364, ptr %a365) - store { ptr, i64, i64 } %t362, ptr %a366 - call void @finch_str_drop(ptr %a366) - %t367 = load { ptr, i64, i64 }, ptr %a363 - %t368 = load i64, ptr %a276 - call void @finch_str_from_int(ptr %a369, i64 %t368) - %t370 = load { ptr, i64, i64 }, ptr %a369 - store { ptr, i64, i64 } %t367, ptr %a372 - store { ptr, i64, i64 } %t370, ptr %a373 - call void @finch_str_concat(ptr %a371, ptr %a372, ptr %a373) - store { ptr, i64, i64 } %t367, ptr %a374 - call void @finch_str_drop(ptr %a374) - store { ptr, i64, i64 } %t370, ptr %a375 - call void @finch_str_drop(ptr %a375) - %t376 = load { ptr, i64, i64 }, ptr %a371 - store { ptr, i64, i64 } %t376, ptr %a378 - store { ptr, i64, i64 } { ptr @.str.2209, i64 20, i64 0 }, ptr %a379 - call void @finch_str_concat(ptr %a377, ptr %a378, ptr %a379) - store { ptr, i64, i64 } %t376, ptr %a380 - call void @finch_str_drop(ptr %a380) - %t381 = load { ptr, i64, i64 }, ptr %a377 - call void @finch.gen.fail(ptr %t355, %S.ast.Node %t356, { ptr, i64, i64 } %t381) - store { ptr, i64, i64 } %t381, ptr %a382 - call void @finch_str_drop(ptr %a382) - br label %endif3529 -endif3529: - %t383 = getelementptr inbounds %S.gen.EnumDef, ptr %a275, i32 0, i32 2 - %t384 = getelementptr inbounds { ptr, i64, i64 }, ptr %t383, i32 0, i32 1 - %t385 = getelementptr inbounds %S.ast.Node, ptr %a286, i32 0, i32 1 - %t386 = load { ptr, i64, i64 }, ptr %t385 - store { ptr, i64, i64 } %t386, ptr %a387 - call void @finch_str_copy(ptr %a388, ptr %a387) - %t389 = load { ptr, i64, i64 }, ptr %a388 - %t390 = load i64, ptr %t384 - %t391 = add i64 %t390, 1 - call void @finch_arr_reserve(ptr %t383, i64 %t391, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) - %t392 = load ptr, ptr %t383 - %t393 = getelementptr inbounds { ptr, i64, i64 }, ptr %t392, i64 %t390 - store { ptr, i64, i64 } %t389, ptr %t393 - store i64 %t391, ptr %t384 - %t394 = getelementptr inbounds %S.gen.EnumDef, ptr %a275, i32 0, i32 3 - %t395 = getelementptr inbounds { ptr, i64, i64 }, ptr %t394, i32 0, i32 1 - %t396 = load i64, ptr %a276 - %t397 = load i64, ptr %t395 - %t398 = add i64 %t397, 1 - call void @finch_arr_reserve(ptr %t394, i64 %t398, i64 ptrtoint (ptr getelementptr (i64, ptr null, i32 1) to i64)) - %t399 = load ptr, ptr %t394 - %t400 = getelementptr inbounds i64, ptr %t399, i64 %t397 - store i64 %t396, ptr %t400 - store i64 %t398, ptr %t395 - %t401 = load i64, ptr %a276 - %t402 = add i64 %t401, 1 - store i64 %t402, ptr %a276 - br label %each.step3509 -each.step3509: - %t403 = load i64, ptr %a278 - %t404 = add i64 %t403, 1 - store i64 %t404, ptr %a278 - br label %each.cond3507 -each.end3510: - %t405 = load ptr, ptr %a1 - %t406 = icmp eq ptr %t405, null - br i1 %t406, label %panic3530, label %ok3531 -panic3530: - call void @finch_panic(ptr @.str.2210, i64 1482, ptr @.str.2211) - unreachable -ok3531: - %t407 = getelementptr inbounds %S.gen.Gen, ptr %t405, i32 0, i32 21 - %t408 = getelementptr inbounds { ptr, i64, i64 }, ptr %t407, i32 0, i32 1 - %t409 = load %S.gen.EnumDef, ptr %a275 - store %S.gen.EnumDef %t409, ptr %a410 - call void @finch.copy.S_gen_EnumDef(ptr %a411, ptr %a410) - %t412 = load %S.gen.EnumDef, ptr %a411 - %t413 = load i64, ptr %t408 - %t414 = add i64 %t413, 1 - call void @finch_arr_reserve(ptr %t407, i64 %t414, i64 ptrtoint (ptr getelementptr (%S.gen.EnumDef, ptr null, i32 1) to i64)) - %t415 = load ptr, ptr %t407 - %t416 = getelementptr inbounds %S.gen.EnumDef, ptr %t415, i64 %t413 - store %S.gen.EnumDef %t412, ptr %t416 - store i64 %t414, ptr %t408 - call void @finch.drop.S_gen_EnumDef(ptr %a275) - call void @finch.drop.S_ast_Node(ptr %a227) - br label %for.step3486 -for.step3486: - %t417 = load i64, ptr %a204 - %t418 = add i64 %t417, 1 - store i64 %t418, ptr %a204 - br label %for.cond3484 -for.end3487: - br label %for.step3472 -for.step3472: - %t419 = load i64, ptr %a170 - %t420 = add i64 %t419, 1 - store i64 %t420, ptr %a170 - br label %for.cond3470 -for.end3473: - %t421 = load ptr, ptr %a1 - %t422 = icmp eq ptr %t421, null - br i1 %t422, label %panic3532, label %ok3533 -panic3532: - call void @finch_panic(ptr @.str.2212, i64 1485, ptr @.str.2213) - unreachable -ok3533: - %t423 = getelementptr inbounds %S.gen.Gen, ptr %t421, i32 0, i32 25 - %t424 = getelementptr inbounds %S.cimport.CImports, ptr %t423, i32 0, i32 4 - %t425 = getelementptr inbounds { ptr, i64, i64 }, ptr %t424, i32 0, i32 1 - %t426 = load i64, ptr %t425 - store i64 0, ptr %a427 - br label %for.cond3534 -for.cond3534: - %t428 = load i64, ptr %a427 - %t429 = icmp slt i64 %t428, %t426 - br i1 %t429, label %for.body3535, label %for.end3537 -for.body3535: - %t430 = load ptr, ptr %a1 - %t431 = icmp eq ptr %t430, null - br i1 %t431, label %panic3538, label %ok3539 -panic3538: - call void @finch_panic(ptr @.str.2214, i64 1486, ptr @.str.2215) - unreachable -ok3539: - %t432 = getelementptr inbounds %S.gen.Gen, ptr %t430, i32 0, i32 16 - %t433 = getelementptr inbounds { ptr, i64, i64 }, ptr %t432, i32 0, i32 1 - %t434 = insertvalue %S.gen.StructDef zeroinitializer, { ptr, i64, i64 } { ptr @.str.2216, i64 1, i64 0 }, 0 - %t435 = load ptr, ptr %a1 - %t436 = icmp eq ptr %t435, null - br i1 %t436, label %panic3540, label %ok3541 -panic3540: - call void @finch_panic(ptr @.str.2217, i64 1486, ptr @.str.2218) - unreachable -ok3541: - %t437 = getelementptr inbounds %S.gen.Gen, ptr %t435, i32 0, i32 25 - %t438 = getelementptr inbounds %S.cimport.CImports, ptr %t437, i32 0, i32 4 - %t439 = load i64, ptr %a427 - %t440 = load { ptr, i64, i64 }, ptr %t438 - %t441 = extractvalue { ptr, i64, i64 } %t440, 1 - %t442 = icmp uge i64 %t439, %t441 - br i1 %t442, label %range3542, label %inrange3543 -range3542: - call void @finch_panic_index(ptr @.str.2219, i64 1486, i64 %t439, i64 %t441) - unreachable -inrange3543: - %t443 = extractvalue { ptr, i64, i64 } %t440, 0 - %t444 = getelementptr inbounds { ptr, i64, i64 }, ptr %t443, i64 %t439 - %t445 = load { ptr, i64, i64 }, ptr %t444 - store { ptr, i64, i64 } %t445, ptr %a446 - call void @finch_str_copy(ptr %a447, ptr %a446) - %t448 = load { ptr, i64, i64 }, ptr %a447 - %t449 = insertvalue %S.gen.StructDef %t434, { ptr, i64, i64 } %t448, 1 - %t450 = insertvalue %S.gen.StructDef %t449, i1 true, 2 - %t451 = insertvalue %S.gen.StructDef %t450, i64 -1, 13 - %t452 = load i64, ptr %a427 - %t453 = insertvalue %S.gen.StructDef %t451, i64 %t452, 14 - %t454 = load i64, ptr %t433 - %t455 = add i64 %t454, 1 - call void @finch_arr_reserve(ptr %t432, i64 %t455, i64 ptrtoint (ptr getelementptr (%S.gen.StructDef, ptr null, i32 1) to i64)) - %t456 = load ptr, ptr %t432 - %t457 = getelementptr inbounds %S.gen.StructDef, ptr %t456, i64 %t454 - store %S.gen.StructDef %t453, ptr %t457 - store i64 %t455, ptr %t433 - br label %for.step3536 -for.step3536: - %t458 = load i64, ptr %a427 - %t459 = add i64 %t458, 1 - store i64 %t459, ptr %a427 - br label %for.cond3534 -for.end3537: - %t460 = load ptr, ptr %a1 - %t461 = icmp eq ptr %t460, null - br i1 %t461, label %panic3544, label %ok3545 -panic3544: - call void @finch_panic(ptr @.str.2220, i64 1488, ptr @.str.2221) - unreachable -ok3545: - %t462 = getelementptr inbounds %S.gen.Gen, ptr %t460, i32 0, i32 16 - %t463 = getelementptr inbounds { ptr, i64, i64 }, ptr %t462, i32 0, i32 1 - %t464 = load i64, ptr %t463 - store i64 0, ptr %a465 - br label %for.cond3546 -for.cond3546: - %t466 = load i64, ptr %a465 - %t467 = icmp slt i64 %t466, %t464 - br i1 %t467, label %for.body3547, label %for.end3549 -for.body3547: - %t468 = load ptr, ptr %a1 - %t469 = load i64, ptr %a465 - call void @finch.gen.resolveStruct(ptr %t468, i64 %t469) - br label %for.step3548 -for.step3548: - %t470 = load i64, ptr %a465 - %t471 = add i64 %t470, 1 - store i64 %t471, ptr %a465 - br label %for.cond3546 -for.end3549: - %t472 = load ptr, ptr %a1 - %t473 = icmp eq ptr %t472, null - br i1 %t473, label %panic3550, label %ok3551 -panic3550: - call void @finch_panic(ptr @.str.2222, i64 1491, ptr @.str.2223) - unreachable -ok3551: - %t474 = getelementptr inbounds %S.gen.Gen, ptr %t472, i32 0, i32 0 - %t475 = getelementptr inbounds { ptr, i64, i64 }, ptr %t474, i32 0, i32 1 - %t476 = load i64, ptr %t475 - store i64 0, ptr %a477 - br label %for.cond3552 -for.cond3552: - %t478 = load i64, ptr %a477 - %t479 = icmp slt i64 %t478, %t476 - br i1 %t479, label %for.body3553, label %for.end3555 -for.body3553: - %t480 = load ptr, ptr %a1 - %t481 = icmp eq ptr %t480, null - br i1 %t481, label %panic3556, label %ok3557 -panic3556: - call void @finch_panic(ptr @.str.2224, i64 1492, ptr @.str.2225) - unreachable -ok3557: - %t482 = getelementptr inbounds %S.gen.Gen, ptr %t480, i32 0, i32 0 - %t483 = load i64, ptr %a477 - %t484 = load { ptr, i64, i64 }, ptr %t482 - %t485 = extractvalue { ptr, i64, i64 } %t484, 1 - %t486 = icmp uge i64 %t483, %t485 - br i1 %t486, label %range3558, label %inrange3559 -range3558: - call void @finch_panic_index(ptr @.str.2226, i64 1492, i64 %t483, i64 %t485) - unreachable -inrange3559: - %t487 = extractvalue { ptr, i64, i64 } %t484, 0 - %t488 = getelementptr inbounds %S.ast.Program, ptr %t487, i64 %t483 - %t489 = getelementptr inbounds %S.ast.Program, ptr %t488, i32 0, i32 0 - %t490 = load { ptr, i64, i64 }, ptr %t489 - %t491 = load ptr, ptr %a1 - %t492 = icmp eq ptr %t491, null - br i1 %t492, label %panic3560, label %ok3561 -panic3560: - call void @finch_panic(ptr @.str.2227, i64 1492, ptr @.str.2228) - unreachable -ok3561: - %t493 = getelementptr inbounds %S.gen.Gen, ptr %t491, i32 0, i32 14 - store { ptr, i64, i64 } %t490, ptr %a494 - call void @finch_str_copy(ptr %a495, ptr %a494) - %t496 = load { ptr, i64, i64 }, ptr %a495 - %t497 = load { ptr, i64, i64 }, ptr %t493 - store { ptr, i64, i64 } %t496, ptr %t493 - store { ptr, i64, i64 } %t497, ptr %a498 - call void @finch_str_drop(ptr %a498) - %t499 = load ptr, ptr %a1 - %t500 = icmp eq ptr %t499, null - br i1 %t500, label %panic3562, label %ok3563 -panic3562: - call void @finch_panic(ptr @.str.2229, i64 1493, ptr @.str.2230) - unreachable -ok3563: - %t501 = getelementptr inbounds %S.gen.Gen, ptr %t499, i32 0, i32 0 - %t502 = load i64, ptr %a477 - %t503 = load { ptr, i64, i64 }, ptr %t501 - %t504 = extractvalue { ptr, i64, i64 } %t503, 1 - %t505 = icmp uge i64 %t502, %t504 - br i1 %t505, label %range3564, label %inrange3565 -range3564: - call void @finch_panic_index(ptr @.str.2231, i64 1493, i64 %t502, i64 %t504) - unreachable -inrange3565: - %t506 = extractvalue { ptr, i64, i64 } %t503, 0 - %t507 = getelementptr inbounds %S.ast.Program, ptr %t506, i64 %t502 - %t508 = getelementptr inbounds %S.ast.Program, ptr %t507, i32 0, i32 8 - %t509 = getelementptr inbounds { ptr, i64, i64 }, ptr %t508, i32 0, i32 1 - %t510 = load i64, ptr %t509 - store i64 0, ptr %a511 - br label %for.cond3566 -for.cond3566: - %t512 = load i64, ptr %a511 - %t513 = icmp slt i64 %t512, %t510 - br i1 %t513, label %for.body3567, label %for.end3569 -for.body3567: - %t514 = load ptr, ptr %a1 - %t515 = icmp eq ptr %t514, null - br i1 %t515, label %panic3570, label %ok3571 -panic3570: - call void @finch_panic(ptr @.str.2232, i64 1494, ptr @.str.2233) - unreachable -ok3571: - %t516 = getelementptr inbounds %S.gen.Gen, ptr %t514, i32 0, i32 0 - %t517 = load i64, ptr %a477 - %t518 = load { ptr, i64, i64 }, ptr %t516 - %t519 = extractvalue { ptr, i64, i64 } %t518, 1 - %t520 = icmp uge i64 %t517, %t519 - br i1 %t520, label %range3572, label %inrange3573 -range3572: - call void @finch_panic_index(ptr @.str.2234, i64 1494, i64 %t517, i64 %t519) - unreachable -inrange3573: - %t521 = extractvalue { ptr, i64, i64 } %t518, 0 - %t522 = getelementptr inbounds %S.ast.Program, ptr %t521, i64 %t517 - %t523 = getelementptr inbounds %S.ast.Program, ptr %t522, i32 0, i32 8 - %t524 = load i64, ptr %a511 - %t525 = load { ptr, i64, i64 }, ptr %t523 - %t526 = extractvalue { ptr, i64, i64 } %t525, 1 - %t527 = icmp uge i64 %t524, %t526 - br i1 %t527, label %range3574, label %inrange3575 -range3574: - call void @finch_panic_index(ptr @.str.2235, i64 1494, i64 %t524, i64 %t526) - unreachable -inrange3575: - %t528 = extractvalue { ptr, i64, i64 } %t525, 0 - %t529 = getelementptr inbounds %S.ast.Node, ptr %t528, i64 %t524 - %t530 = load %S.ast.Node, ptr %t529 - store %S.ast.Node %t530, ptr %a531 - call void @finch.copy.S_ast_Node(ptr %a532, ptr %a531) - %t533 = load %S.ast.Node, ptr %a532 - store %S.ast.Node %t533, ptr %a534 - %t535 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 3 - %t536 = getelementptr inbounds { ptr, i64, i64 }, ptr %t535, i32 0, i32 1 - %t537 = load i64, ptr %t536 - %t538 = icmp sgt i64 %t537, 0 - br i1 %t538, label %then3576, label %endif3578 -then3576: - %t539 = load ptr, ptr %a1 - %t540 = load ptr, ptr %a1 - %t541 = icmp eq ptr %t540, null - br i1 %t541, label %panic3579, label %ok3580 -panic3579: - call void @finch_panic(ptr @.str.2236, i64 1497, ptr @.str.2237) - unreachable -ok3580: - %t542 = getelementptr inbounds %S.gen.Gen, ptr %t540, i32 0, i32 14 - %t543 = load { ptr, i64, i64 }, ptr %t542 - %t544 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t545 = load { ptr, i64, i64 }, ptr %t544 - %t546 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t547 = load { ptr, i64, i64 }, ptr %t546 - %t548 = call i64 @finch.gen.findTemplate(ptr %t539, { ptr, i64, i64 } %t543, { ptr, i64, i64 } %t545, { ptr, i64, i64 } %t547, i1 false) - %t549 = icmp sge i64 %t548, 0 - br i1 %t549, label %then3581, label %endif3583 -then3581: - %t550 = load ptr, ptr %a1 - %t551 = load %S.ast.Node, ptr %a534 - %t552 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t553 = load { ptr, i64, i64 }, ptr %t552 - store { ptr, i64, i64 } { ptr @.str.2238, i64 10, i64 0 }, ptr %a555 - store { ptr, i64, i64 } %t553, ptr %a556 - call void @finch_str_concat(ptr %a554, ptr %a555, ptr %a556) - %t557 = load { ptr, i64, i64 }, ptr %a554 - store { ptr, i64, i64 } %t557, ptr %a559 - store { ptr, i64, i64 } { ptr @.str.2239, i64 18, i64 0 }, ptr %a560 - call void @finch_str_concat(ptr %a558, ptr %a559, ptr %a560) - store { ptr, i64, i64 } %t557, ptr %a561 - call void @finch_str_drop(ptr %a561) - %t562 = load { ptr, i64, i64 }, ptr %a558 - call void @finch.gen.fail(ptr %t550, %S.ast.Node %t551, { ptr, i64, i64 } %t562) - store { ptr, i64, i64 } %t562, ptr %a563 - call void @finch_str_drop(ptr %a563) - br label %endif3583 -endif3583: - %t564 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t565 = getelementptr inbounds { ptr, i64, i64 }, ptr %t564, i32 0, i32 1 - %t566 = load i64, ptr %t565 - %t567 = icmp sgt i64 %t566, 0 - br label %logic.from3584 -logic.from3584: - br i1 %t567, label %logic.rhs3585, label %logic.end3586 -logic.rhs3585: - %t568 = load ptr, ptr %a1 - %t569 = load ptr, ptr %a1 - %t570 = icmp eq ptr %t569, null - br i1 %t570, label %panic3587, label %ok3588 -panic3587: - call void @finch_panic(ptr @.str.2240, i64 1500, ptr @.str.2241) - unreachable -ok3588: - %t571 = getelementptr inbounds %S.gen.Gen, ptr %t569, i32 0, i32 14 - %t572 = load { ptr, i64, i64 }, ptr %t571 - %t573 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t574 = load { ptr, i64, i64 }, ptr %t573 - %t575 = call i64 @finch.gen.findTemplate(ptr %t568, { ptr, i64, i64 } %t572, { ptr, i64, i64 } %t574, { ptr, i64, i64 } { ptr @.str.2242, i64 0, i64 0 }, i1 true) - %t576 = icmp slt i64 %t575, 0 - br label %logic.rend3589 -logic.rend3589: - br label %logic.end3586 -logic.end3586: - %t577 = phi i1 [ false, %logic.from3584 ], [ %t576, %logic.rend3589 ] - br i1 %t577, label %then3590, label %endif3592 -then3590: - %t578 = load ptr, ptr %a1 - %t579 = load %S.ast.Node, ptr %a534 - %t580 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t581 = load { ptr, i64, i64 }, ptr %t580 - store { ptr, i64, i64 } { ptr @.str.2243, i64 34, i64 0 }, ptr %a583 - store { ptr, i64, i64 } %t581, ptr %a584 - call void @finch_str_concat(ptr %a582, ptr %a583, ptr %a584) - %t585 = load { ptr, i64, i64 }, ptr %a582 - store { ptr, i64, i64 } %t585, ptr %a587 - store { ptr, i64, i64 } { ptr @.str.2244, i64 53, i64 0 }, ptr %a588 - call void @finch_str_concat(ptr %a586, ptr %a587, ptr %a588) - store { ptr, i64, i64 } %t585, ptr %a589 - call void @finch_str_drop(ptr %a589) - %t590 = load { ptr, i64, i64 }, ptr %a586 - call void @finch.gen.fail(ptr %t578, %S.ast.Node %t579, { ptr, i64, i64 } %t590) - store { ptr, i64, i64 } %t590, ptr %a591 - call void @finch_str_drop(ptr %a591) - br label %endif3592 -endif3592: - %t592 = load ptr, ptr %a1 - %t593 = icmp eq ptr %t592, null - br i1 %t593, label %panic3593, label %ok3594 -panic3593: - call void @finch_panic(ptr @.str.2245, i64 1503, ptr @.str.2246) - unreachable -ok3594: - %t594 = getelementptr inbounds %S.gen.Gen, ptr %t592, i32 0, i32 17 - %t595 = getelementptr inbounds { ptr, i64, i64 }, ptr %t594, i32 0, i32 1 - %t596 = load ptr, ptr %a1 - %t597 = icmp eq ptr %t596, null - br i1 %t597, label %panic3595, label %ok3596 -panic3595: - call void @finch_panic(ptr @.str.2247, i64 1503, ptr @.str.2248) - unreachable -ok3596: - %t598 = getelementptr inbounds %S.gen.Gen, ptr %t596, i32 0, i32 14 - %t599 = load { ptr, i64, i64 }, ptr %t598 - store { ptr, i64, i64 } %t599, ptr %a600 - call void @finch_str_copy(ptr %a601, ptr %a600) - %t602 = load { ptr, i64, i64 }, ptr %a601 - %t603 = insertvalue %S.gen.Template zeroinitializer, { ptr, i64, i64 } %t602, 0 - %t604 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t605 = load { ptr, i64, i64 }, ptr %t604 - store { ptr, i64, i64 } %t605, ptr %a606 - call void @finch_str_copy(ptr %a607, ptr %a606) - %t608 = load { ptr, i64, i64 }, ptr %a607 - %t609 = insertvalue %S.gen.Template %t603, { ptr, i64, i64 } %t608, 1 - %t610 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t611 = load { ptr, i64, i64 }, ptr %t610 - store { ptr, i64, i64 } %t611, ptr %a612 - call void @finch_str_copy(ptr %a613, ptr %a612) - %t614 = load { ptr, i64, i64 }, ptr %a613 - %t615 = insertvalue %S.gen.Template %t609, { ptr, i64, i64 } %t614, 2 - %t616 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 3 - %t617 = load { ptr, i64, i64 }, ptr %t616 - store { ptr, i64, i64 } %t617, ptr %a618 - call void @finch.copy.arr_str(ptr %a619, ptr %a618) - %t620 = load { ptr, i64, i64 }, ptr %a619 - %t621 = insertvalue %S.gen.Template %t615, { ptr, i64, i64 } %t620, 3 - %t622 = load i64, ptr %a477 - %t623 = insertvalue %S.gen.Template %t621, i64 %t622, 4 - %t624 = load i64, ptr %a511 - %t625 = insertvalue %S.gen.Template %t623, i64 %t624, 5 - %t626 = load i64, ptr %t595 - %t627 = add i64 %t626, 1 - call void @finch_arr_reserve(ptr %t594, i64 %t627, i64 ptrtoint (ptr getelementptr (%S.gen.Template, ptr null, i32 1) to i64)) - %t628 = load ptr, ptr %t594 - %t629 = getelementptr inbounds %S.gen.Template, ptr %t628, i64 %t626 - store %S.gen.Template %t625, ptr %t629 - store i64 %t627, ptr %t595 - call void @finch.drop.S_ast_Node(ptr %a534) - br label %for.step3568 -endif3578: - %t630 = load ptr, ptr %a1 - %t631 = icmp eq ptr %t630, null - br i1 %t631, label %panic3597, label %ok3598 -panic3597: - call void @finch_panic(ptr @.str.2249, i64 1506, ptr @.str.2250) - unreachable -ok3598: - %t632 = getelementptr inbounds %S.gen.Gen, ptr %t630, i32 0, i32 14 - %t633 = load { ptr, i64, i64 }, ptr %t632 - store { ptr, i64, i64 } %t633, ptr %a634 - call void @finch_str_copy(ptr %a635, ptr %a634) - %t636 = load { ptr, i64, i64 }, ptr %a635 - store { ptr, i64, i64 } %t636, ptr %a637 - store i1 false, ptr %a638 - %t639 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t640 = getelementptr inbounds { ptr, i64, i64 }, ptr %t639, i32 0, i32 1 - %t641 = load i64, ptr %t640 - %t642 = icmp sgt i64 %t641, 0 - br label %logic.from3599 -logic.from3599: - br i1 %t642, label %logic.rhs3600, label %logic.end3601 -logic.rhs3600: - %t643 = load ptr, ptr %a1 - %t644 = load ptr, ptr %a1 - %t645 = icmp eq ptr %t644, null - br i1 %t645, label %panic3602, label %ok3603 -panic3602: - call void @finch_panic(ptr @.str.2251, i64 1508, ptr @.str.2252) - unreachable -ok3603: - %t646 = getelementptr inbounds %S.gen.Gen, ptr %t644, i32 0, i32 14 - %t647 = load { ptr, i64, i64 }, ptr %t646 - %t648 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t649 = load { ptr, i64, i64 }, ptr %t648 - %t650 = call i64 @finch.gen.findEnum(ptr %t643, { ptr, i64, i64 } %t647, { ptr, i64, i64 } %t649) - %t651 = icmp sge i64 %t650, 0 - br label %logic.rend3604 -logic.rend3604: - br label %logic.end3601 -logic.end3601: - %t652 = phi i1 [ false, %logic.from3599 ], [ %t651, %logic.rend3604 ] - br i1 %t652, label %then3605, label %else3606 -then3605: - store i1 true, ptr %a638 - %t653 = load ptr, ptr %a1 - %t654 = load { ptr, i64, i64 }, ptr %a637 - %t655 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t656 = load { ptr, i64, i64 }, ptr %t655 - %t657 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t658 = load { ptr, i64, i64 }, ptr %t657 - %t659 = call i64 @finch.gen.findMethod(ptr %t653, { ptr, i64, i64 } %t654, { ptr, i64, i64 } %t656, { ptr, i64, i64 } %t658) - %t660 = icmp sge i64 %t659, 0 - br i1 %t660, label %then3608, label %endif3610 + %t228 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 6 + %t229 = load i1, ptr %t228 + br i1 %t229, label %then3608, label %endif3610 then3608: - %t661 = load ptr, ptr %a1 - %t662 = load %S.ast.Node, ptr %a534 - %t663 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t664 = load { ptr, i64, i64 }, ptr %t663 - store { ptr, i64, i64 } { ptr @.str.2253, i64 11, i64 0 }, ptr %a666 - store { ptr, i64, i64 } %t664, ptr %a667 - call void @finch_str_concat(ptr %a665, ptr %a666, ptr %a667) - %t668 = load { ptr, i64, i64 }, ptr %a665 - store { ptr, i64, i64 } %t668, ptr %a670 - store { ptr, i64, i64 } { ptr @.str.2254, i64 1, i64 0 }, ptr %a671 - call void @finch_str_concat(ptr %a669, ptr %a670, ptr %a671) - store { ptr, i64, i64 } %t668, ptr %a672 - call void @finch_str_drop(ptr %a672) - %t673 = load { ptr, i64, i64 }, ptr %a669 - %t674 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t675 = load { ptr, i64, i64 }, ptr %t674 - store { ptr, i64, i64 } %t673, ptr %a677 - store { ptr, i64, i64 } %t675, ptr %a678 - call void @finch_str_concat(ptr %a676, ptr %a677, ptr %a678) - store { ptr, i64, i64 } %t673, ptr %a679 - call void @finch_str_drop(ptr %a679) - %t680 = load { ptr, i64, i64 }, ptr %a676 - store { ptr, i64, i64 } %t680, ptr %a682 - store { ptr, i64, i64 } { ptr @.str.2255, i64 17, i64 0 }, ptr %a683 - call void @finch_str_concat(ptr %a681, ptr %a682, ptr %a683) - store { ptr, i64, i64 } %t680, ptr %a684 - call void @finch_str_drop(ptr %a684) - %t685 = load { ptr, i64, i64 }, ptr %a681 - call void @finch.gen.fail(ptr %t661, %S.ast.Node %t662, { ptr, i64, i64 } %t685) - store { ptr, i64, i64 } %t685, ptr %a686 - call void @finch_str_drop(ptr %a686) - br label %endif3610 + %t230 = load ptr, ptr %a1 + %t231 = load ptr, ptr %a1 + %t232 = icmp eq ptr %t231, null + br i1 %t232, label %panic3611, label %ok3612 +panic3611: + call void @finch_panic(ptr @.str.2267, i64 1527, ptr @.str.2268) + unreachable +ok3612: + %t233 = getelementptr inbounds %S.gen.Gen, ptr %t231, i32 0, i32 14 + %t234 = load { ptr, i64, i64 }, ptr %t233 + %t235 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 + %t236 = load { ptr, i64, i64 }, ptr %t235 + %t237 = call i64 @finch.gen.findEnum(ptr %t230, { ptr, i64, i64 } %t234, { ptr, i64, i64 } %t236) + %t238 = icmp sge i64 %t237, 0 + br label %logic.from3613 +logic.from3613: + br i1 %t238, label %logic.end3615, label %logic.rhs3614 +logic.rhs3614: + %t239 = load ptr, ptr %a1 + %t240 = load ptr, ptr %a1 + %t241 = icmp eq ptr %t240, null + br i1 %t241, label %panic3616, label %ok3617 +panic3616: + call void @finch_panic(ptr @.str.2269, i64 1527, ptr @.str.2270) + unreachable +ok3617: + %t242 = getelementptr inbounds %S.gen.Gen, ptr %t240, i32 0, i32 14 + %t243 = load { ptr, i64, i64 }, ptr %t242 + %t244 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 + %t245 = load { ptr, i64, i64 }, ptr %t244 + %t246 = call i64 @finch.gen.findSum(ptr %t239, { ptr, i64, i64 } %t243, { ptr, i64, i64 } %t245) + %t247 = icmp sge i64 %t246, 0 + br label %logic.rend3618 +logic.rend3618: + br label %logic.end3615 +logic.end3615: + %t248 = phi i1 [ true, %logic.from3613 ], [ %t247, %logic.rend3618 ] + br i1 %t248, label %then3619, label %endif3621 +then3619: + %t249 = load ptr, ptr %a1 + %t250 = load %S.ast.Node, ptr %a227 + %t251 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 + %t252 = load { ptr, i64, i64 }, ptr %t251 + store { ptr, i64, i64 } { ptr @.str.2271, i64 1, i64 0 }, ptr %a254 + store { ptr, i64, i64 } %t252, ptr %a255 + call void @finch_str_concat(ptr %a253, ptr %a254, ptr %a255) + %t256 = load { ptr, i64, i64 }, ptr %a253 + store { ptr, i64, i64 } %t256, ptr %a258 + store { ptr, i64, i64 } { ptr @.str.2272, i64 18, i64 0 }, ptr %a259 + call void @finch_str_concat(ptr %a257, ptr %a258, ptr %a259) + store { ptr, i64, i64 } %t256, ptr %a260 + call void @finch_str_drop(ptr %a260) + %t261 = load { ptr, i64, i64 }, ptr %a257 + call void @finch.gen.fail(ptr %t249, %S.ast.Node %t250, { ptr, i64, i64 } %t261) + store { ptr, i64, i64 } %t261, ptr %a262 + call void @finch_str_drop(ptr %a262) + br label %endif3621 +endif3621: + %t263 = load ptr, ptr %a1 + %t264 = icmp eq ptr %t263, null + br i1 %t264, label %panic3622, label %ok3623 +panic3622: + call void @finch_panic(ptr @.str.2273, i64 1530, ptr @.str.2274) + unreachable +ok3623: + %t265 = getelementptr inbounds %S.gen.Gen, ptr %t263, i32 0, i32 14 + %t266 = load { ptr, i64, i64 }, ptr %t265 + store { ptr, i64, i64 } %t266, ptr %a267 + call void @finch_str_copy(ptr %a268, ptr %a267) + %t269 = load { ptr, i64, i64 }, ptr %a268 + %t270 = insertvalue %S.gen.SumDef zeroinitializer, { ptr, i64, i64 } %t269, 0 + %t271 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 + %t272 = load { ptr, i64, i64 }, ptr %t271 + store { ptr, i64, i64 } %t272, ptr %a273 + call void @finch_str_copy(ptr %a274, ptr %a273) + %t275 = load { ptr, i64, i64 }, ptr %a274 + %t276 = insertvalue %S.gen.SumDef %t270, { ptr, i64, i64 } %t275, 1 + store %S.gen.SumDef %t276, ptr %a277 + store i64 1, ptr %a278 + %t279 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 9 + store i64 0, ptr %a280 + br label %each.cond3624 +each.cond3624: + %t281 = getelementptr inbounds { ptr, i64, i64 }, ptr %t279, i32 0, i32 1 + %t282 = load i64, ptr %t281 + %t283 = load i64, ptr %a280 + %t284 = icmp slt i64 %t283, %t282 + br i1 %t284, label %each.body3625, label %each.end3627 +each.body3625: + %t285 = load ptr, ptr %t279 + %t286 = getelementptr inbounds %S.ast.Node, ptr %t285, i64 %t283 + %t287 = load %S.ast.Node, ptr %t286 + store %S.ast.Node %t287, ptr %a288 + %t289 = getelementptr inbounds %S.gen.SumDef, ptr %a277, i32 0, i32 2 + %t290 = getelementptr inbounds { ptr, i64, i64 }, ptr %t289, i32 0, i32 1 + %t291 = getelementptr inbounds %S.ast.Node, ptr %a288, i32 0, i32 1 + %t292 = load { ptr, i64, i64 }, ptr %t291 + store i64 -1, ptr %a293 + %t294 = load i64, ptr %t290 + %t295 = load ptr, ptr %t289 + store i64 0, ptr %a296 + br label %find.cond3628 +find.cond3628: + %t297 = load i64, ptr %a296 + %t298 = icmp slt i64 %t297, %t294 + br i1 %t298, label %find.body3629, label %find.end3632 +find.body3629: + %t299 = getelementptr inbounds { ptr, i64, i64 }, ptr %t295, i64 %t297 + %t300 = load { ptr, i64, i64 }, ptr %t299 + store { ptr, i64, i64 } %t300, ptr %a301 + store { ptr, i64, i64 } %t292, ptr %a302 + %t303 = call i32 @finch_str_eq(ptr %a301, ptr %a302) + %t304 = icmp ne i32 %t303, 0 + br i1 %t304, label %find.hit3630, label %find.next3631 +find.hit3630: + store i64 %t297, ptr %a293 + br label %find.end3632 +find.next3631: + %t305 = add i64 %t297, 1 + store i64 %t305, ptr %a296 + br label %find.cond3628 +find.end3632: + %t306 = load i64, ptr %a293 + %t307 = icmp sge i64 %t306, 0 + br i1 %t307, label %then3633, label %endif3635 +then3633: + %t308 = load ptr, ptr %a1 + %t309 = load %S.ast.Node, ptr %a288 + %t310 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 + %t311 = load { ptr, i64, i64 }, ptr %t310 + store { ptr, i64, i64 } { ptr @.str.2275, i64 9, i64 0 }, ptr %a313 + store { ptr, i64, i64 } %t311, ptr %a314 + call void @finch_str_concat(ptr %a312, ptr %a313, ptr %a314) + %t315 = load { ptr, i64, i64 }, ptr %a312 + store { ptr, i64, i64 } %t315, ptr %a317 + store { ptr, i64, i64 } { ptr @.str.2276, i64 17, i64 0 }, ptr %a318 + call void @finch_str_concat(ptr %a316, ptr %a317, ptr %a318) + store { ptr, i64, i64 } %t315, ptr %a319 + call void @finch_str_drop(ptr %a319) + %t320 = load { ptr, i64, i64 }, ptr %a316 + %t321 = getelementptr inbounds %S.ast.Node, ptr %a288, i32 0, i32 1 + %t322 = load { ptr, i64, i64 }, ptr %t321 + store { ptr, i64, i64 } %t320, ptr %a324 + store { ptr, i64, i64 } %t322, ptr %a325 + call void @finch_str_concat(ptr %a323, ptr %a324, ptr %a325) + store { ptr, i64, i64 } %t320, ptr %a326 + call void @finch_str_drop(ptr %a326) + %t327 = load { ptr, i64, i64 }, ptr %a323 + store { ptr, i64, i64 } %t327, ptr %a329 + store { ptr, i64, i64 } { ptr @.str.2277, i64 6, i64 0 }, ptr %a330 + call void @finch_str_concat(ptr %a328, ptr %a329, ptr %a330) + store { ptr, i64, i64 } %t327, ptr %a331 + call void @finch_str_drop(ptr %a331) + %t332 = load { ptr, i64, i64 }, ptr %a328 + call void @finch.gen.fail(ptr %t308, %S.ast.Node %t309, { ptr, i64, i64 } %t332) + store { ptr, i64, i64 } %t332, ptr %a333 + call void @finch_str_drop(ptr %a333) + br label %endif3635 +endif3635: + %t334 = getelementptr inbounds %S.gen.SumDef, ptr %a277, i32 0, i32 2 + %t335 = getelementptr inbounds { ptr, i64, i64 }, ptr %t334, i32 0, i32 1 + %t336 = getelementptr inbounds %S.ast.Node, ptr %a288, i32 0, i32 1 + %t337 = load { ptr, i64, i64 }, ptr %t336 + store { ptr, i64, i64 } %t337, ptr %a338 + call void @finch_str_copy(ptr %a339, ptr %a338) + %t340 = load { ptr, i64, i64 }, ptr %a339 + %t341 = load i64, ptr %t335 + %t342 = add i64 %t341, 1 + call void @finch_arr_reserve(ptr %t334, i64 %t342, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t343 = load ptr, ptr %t334 + %t344 = getelementptr inbounds { ptr, i64, i64 }, ptr %t343, i64 %t341 + store { ptr, i64, i64 } %t340, ptr %t344 + store i64 %t342, ptr %t335 + %t345 = getelementptr inbounds %S.gen.SumDef, ptr %a277, i32 0, i32 3 + %t346 = getelementptr inbounds { ptr, i64, i64 }, ptr %t345, i32 0, i32 1 + %t347 = getelementptr inbounds %S.ast.Node, ptr %a288, i32 0, i32 9 + %t348 = getelementptr inbounds { ptr, i64, i64 }, ptr %t347, i32 0, i32 1 + %t349 = load i64, ptr %t348 + %t350 = load i64, ptr %t346 + %t351 = add i64 %t350, 1 + call void @finch_arr_reserve(ptr %t345, i64 %t351, i64 ptrtoint (ptr getelementptr (i64, ptr null, i32 1) to i64)) + %t352 = load ptr, ptr %t345 + %t353 = getelementptr inbounds i64, ptr %t352, i64 %t350 + store i64 %t349, ptr %t353 + store i64 %t351, ptr %t346 + %t354 = getelementptr inbounds %S.gen.SumDef, ptr %a277, i32 0, i32 4 + %t355 = getelementptr inbounds { ptr, i64, i64 }, ptr %t354, i32 0, i32 1 + %t356 = load i64, ptr %a278 + %t357 = load i64, ptr %t355 + %t358 = add i64 %t357, 1 + call void @finch_arr_reserve(ptr %t354, i64 %t358, i64 ptrtoint (ptr getelementptr (i64, ptr null, i32 1) to i64)) + %t359 = load ptr, ptr %t354 + %t360 = getelementptr inbounds i64, ptr %t359, i64 %t357 + store i64 %t356, ptr %t360 + store i64 %t358, ptr %t355 + %t361 = getelementptr inbounds %S.ast.Node, ptr %a288, i32 0, i32 9 + %t362 = getelementptr inbounds { ptr, i64, i64 }, ptr %t361, i32 0, i32 1 + %t363 = load i64, ptr %t362 + %t364 = load i64, ptr %a278 + %t365 = add i64 %t364, %t363 + store i64 %t365, ptr %a278 + br label %each.step3626 +each.step3626: + %t366 = load i64, ptr %a280 + %t367 = add i64 %t366, 1 + store i64 %t367, ptr %a280 + br label %each.cond3624 +each.end3627: + %t368 = load ptr, ptr %a1 + %t369 = icmp eq ptr %t368, null + br i1 %t369, label %panic3636, label %ok3637 +panic3636: + call void @finch_panic(ptr @.str.2278, i64 1541, ptr @.str.2279) + unreachable +ok3637: + %t370 = getelementptr inbounds %S.gen.Gen, ptr %t368, i32 0, i32 22 + %t371 = getelementptr inbounds { ptr, i64, i64 }, ptr %t370, i32 0, i32 1 + %t372 = load %S.gen.SumDef, ptr %a277 + store %S.gen.SumDef %t372, ptr %a373 + call void @finch.copy.S_gen_SumDef(ptr %a374, ptr %a373) + %t375 = load %S.gen.SumDef, ptr %a374 + %t376 = load i64, ptr %t371 + %t377 = add i64 %t376, 1 + call void @finch_arr_reserve(ptr %t370, i64 %t377, i64 ptrtoint (ptr getelementptr (%S.gen.SumDef, ptr null, i32 1) to i64)) + %t378 = load ptr, ptr %t370 + %t379 = getelementptr inbounds %S.gen.SumDef, ptr %t378, i64 %t376 + store %S.gen.SumDef %t375, ptr %t379 + store i64 %t377, ptr %t371 + call void @finch.drop.S_gen_SumDef(ptr %a277) + call void @finch.drop.S_ast_Node(ptr %a227) + br label %for.step3600 endif3610: - br label %endif3607 -else3606: - %t687 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 + %t380 = load ptr, ptr %a1 + %t381 = load ptr, ptr %a1 + %t382 = icmp eq ptr %t381, null + br i1 %t382, label %panic3638, label %ok3639 +panic3638: + call void @finch_panic(ptr @.str.2280, i64 1544, ptr @.str.2281) + unreachable +ok3639: + %t383 = getelementptr inbounds %S.gen.Gen, ptr %t381, i32 0, i32 14 + %t384 = load { ptr, i64, i64 }, ptr %t383 + %t385 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 + %t386 = load { ptr, i64, i64 }, ptr %t385 + %t387 = call i64 @finch.gen.findEnum(ptr %t380, { ptr, i64, i64 } %t384, { ptr, i64, i64 } %t386) + %t388 = icmp sge i64 %t387, 0 + br label %logic.from3640 +logic.from3640: + br i1 %t388, label %logic.end3642, label %logic.rhs3641 +logic.rhs3641: + %t389 = load ptr, ptr %a1 + %t390 = load ptr, ptr %a1 + %t391 = icmp eq ptr %t390, null + br i1 %t391, label %panic3643, label %ok3644 +panic3643: + call void @finch_panic(ptr @.str.2282, i64 1544, ptr @.str.2283) + unreachable +ok3644: + %t392 = getelementptr inbounds %S.gen.Gen, ptr %t390, i32 0, i32 14 + %t393 = load { ptr, i64, i64 }, ptr %t392 + %t394 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 + %t395 = load { ptr, i64, i64 }, ptr %t394 + %t396 = call i64 @finch.gen.findStruct(ptr %t389, { ptr, i64, i64 } %t393, { ptr, i64, i64 } %t395) + %t397 = icmp sge i64 %t396, 0 + br label %logic.rend3645 +logic.rend3645: + br label %logic.end3642 +logic.end3642: + %t398 = phi i1 [ true, %logic.from3640 ], [ %t397, %logic.rend3645 ] + br i1 %t398, label %then3646, label %endif3648 +then3646: + %t399 = load ptr, ptr %a1 + %t400 = load %S.ast.Node, ptr %a227 + %t401 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 + %t402 = load { ptr, i64, i64 }, ptr %t401 + store { ptr, i64, i64 } { ptr @.str.2284, i64 1, i64 0 }, ptr %a404 + store { ptr, i64, i64 } %t402, ptr %a405 + call void @finch_str_concat(ptr %a403, ptr %a404, ptr %a405) + %t406 = load { ptr, i64, i64 }, ptr %a403 + store { ptr, i64, i64 } %t406, ptr %a408 + store { ptr, i64, i64 } { ptr @.str.2285, i64 18, i64 0 }, ptr %a409 + call void @finch_str_concat(ptr %a407, ptr %a408, ptr %a409) + store { ptr, i64, i64 } %t406, ptr %a410 + call void @finch_str_drop(ptr %a410) + %t411 = load { ptr, i64, i64 }, ptr %a407 + call void @finch.gen.fail(ptr %t399, %S.ast.Node %t400, { ptr, i64, i64 } %t411) + store { ptr, i64, i64 } %t411, ptr %a412 + call void @finch_str_drop(ptr %a412) + br label %endif3648 +endif3648: + %t413 = load ptr, ptr %a1 + %t414 = icmp eq ptr %t413, null + br i1 %t414, label %panic3649, label %ok3650 +panic3649: + call void @finch_panic(ptr @.str.2286, i64 1547, ptr @.str.2287) + unreachable +ok3650: + %t415 = getelementptr inbounds %S.gen.Gen, ptr %t413, i32 0, i32 14 + %t416 = load { ptr, i64, i64 }, ptr %t415 + store { ptr, i64, i64 } %t416, ptr %a417 + call void @finch_str_copy(ptr %a418, ptr %a417) + %t419 = load { ptr, i64, i64 }, ptr %a418 + %t420 = insertvalue %S.gen.EnumDef zeroinitializer, { ptr, i64, i64 } %t419, 0 + %t421 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 + %t422 = load { ptr, i64, i64 }, ptr %t421 + store { ptr, i64, i64 } %t422, ptr %a423 + call void @finch_str_copy(ptr %a424, ptr %a423) + %t425 = load { ptr, i64, i64 }, ptr %a424 + %t426 = insertvalue %S.gen.EnumDef %t420, { ptr, i64, i64 } %t425, 1 + store %S.gen.EnumDef %t426, ptr %a427 + store i64 0, ptr %a428 + %t429 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 9 + store i64 0, ptr %a430 + br label %each.cond3651 +each.cond3651: + %t431 = getelementptr inbounds { ptr, i64, i64 }, ptr %t429, i32 0, i32 1 + %t432 = load i64, ptr %t431 + %t433 = load i64, ptr %a430 + %t434 = icmp slt i64 %t433, %t432 + br i1 %t434, label %each.body3652, label %each.end3654 +each.body3652: + %t435 = load ptr, ptr %t429 + %t436 = getelementptr inbounds %S.ast.Node, ptr %t435, i64 %t433 + %t437 = load %S.ast.Node, ptr %t436 + store %S.ast.Node %t437, ptr %a438 + %t439 = getelementptr inbounds %S.ast.Node, ptr %a438, i32 0, i32 4 + %t440 = getelementptr inbounds { ptr, i64, i64 }, ptr %t439, i32 0, i32 1 + %t441 = load i64, ptr %t440 + %t442 = icmp sgt i64 %t441, 0 + br i1 %t442, label %then3655, label %endif3657 +then3655: + %t443 = getelementptr inbounds %S.ast.Node, ptr %a438, i32 0, i32 4 + %t444 = load { ptr, i64, i64 }, ptr %t443 + store { ptr, i64, i64 } %t444, ptr %a445 + %t446 = call i64 @finch_str_to_int(ptr %a445, ptr @.str.2288, i64 1551) + store i64 %t446, ptr %a428 + br label %endif3657 +endif3657: + %t447 = getelementptr inbounds %S.gen.EnumDef, ptr %a427, i32 0, i32 2 + %t448 = getelementptr inbounds { ptr, i64, i64 }, ptr %t447, i32 0, i32 1 + %t449 = getelementptr inbounds %S.ast.Node, ptr %a438, i32 0, i32 1 + %t450 = load { ptr, i64, i64 }, ptr %t449 + store i64 -1, ptr %a451 + %t452 = load i64, ptr %t448 + %t453 = load ptr, ptr %t447 + store i64 0, ptr %a454 + br label %find.cond3658 +find.cond3658: + %t455 = load i64, ptr %a454 + %t456 = icmp slt i64 %t455, %t452 + br i1 %t456, label %find.body3659, label %find.end3662 +find.body3659: + %t457 = getelementptr inbounds { ptr, i64, i64 }, ptr %t453, i64 %t455 + %t458 = load { ptr, i64, i64 }, ptr %t457 + store { ptr, i64, i64 } %t458, ptr %a459 + store { ptr, i64, i64 } %t450, ptr %a460 + %t461 = call i32 @finch_str_eq(ptr %a459, ptr %a460) + %t462 = icmp ne i32 %t461, 0 + br i1 %t462, label %find.hit3660, label %find.next3661 +find.hit3660: + store i64 %t455, ptr %a451 + br label %find.end3662 +find.next3661: + %t463 = add i64 %t455, 1 + store i64 %t463, ptr %a454 + br label %find.cond3658 +find.end3662: + %t464 = load i64, ptr %a451 + %t465 = icmp sge i64 %t464, 0 + br i1 %t465, label %then3663, label %endif3665 +then3663: + %t466 = load ptr, ptr %a1 + %t467 = load %S.ast.Node, ptr %a438 + %t468 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 + %t469 = load { ptr, i64, i64 }, ptr %t468 + store { ptr, i64, i64 } { ptr @.str.2289, i64 9, i64 0 }, ptr %a471 + store { ptr, i64, i64 } %t469, ptr %a472 + call void @finch_str_concat(ptr %a470, ptr %a471, ptr %a472) + %t473 = load { ptr, i64, i64 }, ptr %a470 + store { ptr, i64, i64 } %t473, ptr %a475 + store { ptr, i64, i64 } { ptr @.str.2290, i64 17, i64 0 }, ptr %a476 + call void @finch_str_concat(ptr %a474, ptr %a475, ptr %a476) + store { ptr, i64, i64 } %t473, ptr %a477 + call void @finch_str_drop(ptr %a477) + %t478 = load { ptr, i64, i64 }, ptr %a474 + %t479 = getelementptr inbounds %S.ast.Node, ptr %a438, i32 0, i32 1 + %t480 = load { ptr, i64, i64 }, ptr %t479 + store { ptr, i64, i64 } %t478, ptr %a482 + store { ptr, i64, i64 } %t480, ptr %a483 + call void @finch_str_concat(ptr %a481, ptr %a482, ptr %a483) + store { ptr, i64, i64 } %t478, ptr %a484 + call void @finch_str_drop(ptr %a484) + %t485 = load { ptr, i64, i64 }, ptr %a481 + store { ptr, i64, i64 } %t485, ptr %a487 + store { ptr, i64, i64 } { ptr @.str.2291, i64 6, i64 0 }, ptr %a488 + call void @finch_str_concat(ptr %a486, ptr %a487, ptr %a488) + store { ptr, i64, i64 } %t485, ptr %a489 + call void @finch_str_drop(ptr %a489) + %t490 = load { ptr, i64, i64 }, ptr %a486 + call void @finch.gen.fail(ptr %t466, %S.ast.Node %t467, { ptr, i64, i64 } %t490) + store { ptr, i64, i64 } %t490, ptr %a491 + call void @finch_str_drop(ptr %a491) + br label %endif3665 +endif3665: + %t492 = getelementptr inbounds %S.gen.EnumDef, ptr %a427, i32 0, i32 3 + %t493 = getelementptr inbounds { ptr, i64, i64 }, ptr %t492, i32 0, i32 1 + %t494 = load i64, ptr %a428 + store i64 -1, ptr %a495 + %t496 = load i64, ptr %t493 + %t497 = load ptr, ptr %t492 + store i64 0, ptr %a498 + br label %find.cond3666 +find.cond3666: + %t499 = load i64, ptr %a498 + %t500 = icmp slt i64 %t499, %t496 + br i1 %t500, label %find.body3667, label %find.end3670 +find.body3667: + %t501 = getelementptr inbounds i64, ptr %t497, i64 %t499 + %t502 = load i64, ptr %t501 + %t503 = icmp eq i64 %t502, %t494 + br i1 %t503, label %find.hit3668, label %find.next3669 +find.hit3668: + store i64 %t499, ptr %a495 + br label %find.end3670 +find.next3669: + %t504 = add i64 %t499, 1 + store i64 %t504, ptr %a498 + br label %find.cond3666 +find.end3670: + %t505 = load i64, ptr %a495 + %t506 = icmp sge i64 %t505, 0 + br i1 %t506, label %then3671, label %endif3673 +then3671: + %t507 = load ptr, ptr %a1 + %t508 = load %S.ast.Node, ptr %a438 + %t509 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 + %t510 = load { ptr, i64, i64 }, ptr %t509 + store { ptr, i64, i64 } { ptr @.str.2292, i64 16, i64 0 }, ptr %a512 + store { ptr, i64, i64 } %t510, ptr %a513 + call void @finch_str_concat(ptr %a511, ptr %a512, ptr %a513) + %t514 = load { ptr, i64, i64 }, ptr %a511 + store { ptr, i64, i64 } %t514, ptr %a516 + store { ptr, i64, i64 } { ptr @.str.2293, i64 17, i64 0 }, ptr %a517 + call void @finch_str_concat(ptr %a515, ptr %a516, ptr %a517) + store { ptr, i64, i64 } %t514, ptr %a518 + call void @finch_str_drop(ptr %a518) + %t519 = load { ptr, i64, i64 }, ptr %a515 + %t520 = load i64, ptr %a428 + call void @finch_str_from_int(ptr %a521, i64 %t520) + %t522 = load { ptr, i64, i64 }, ptr %a521 + store { ptr, i64, i64 } %t519, ptr %a524 + store { ptr, i64, i64 } %t522, ptr %a525 + call void @finch_str_concat(ptr %a523, ptr %a524, ptr %a525) + store { ptr, i64, i64 } %t519, ptr %a526 + call void @finch_str_drop(ptr %a526) + store { ptr, i64, i64 } %t522, ptr %a527 + call void @finch_str_drop(ptr %a527) + %t528 = load { ptr, i64, i64 }, ptr %a523 + store { ptr, i64, i64 } %t528, ptr %a530 + store { ptr, i64, i64 } { ptr @.str.2294, i64 20, i64 0 }, ptr %a531 + call void @finch_str_concat(ptr %a529, ptr %a530, ptr %a531) + store { ptr, i64, i64 } %t528, ptr %a532 + call void @finch_str_drop(ptr %a532) + %t533 = load { ptr, i64, i64 }, ptr %a529 + call void @finch.gen.fail(ptr %t507, %S.ast.Node %t508, { ptr, i64, i64 } %t533) + store { ptr, i64, i64 } %t533, ptr %a534 + call void @finch_str_drop(ptr %a534) + br label %endif3673 +endif3673: + %t535 = getelementptr inbounds %S.gen.EnumDef, ptr %a427, i32 0, i32 2 + %t536 = getelementptr inbounds { ptr, i64, i64 }, ptr %t535, i32 0, i32 1 + %t537 = getelementptr inbounds %S.ast.Node, ptr %a438, i32 0, i32 1 + %t538 = load { ptr, i64, i64 }, ptr %t537 + store { ptr, i64, i64 } %t538, ptr %a539 + call void @finch_str_copy(ptr %a540, ptr %a539) + %t541 = load { ptr, i64, i64 }, ptr %a540 + %t542 = load i64, ptr %t536 + %t543 = add i64 %t542, 1 + call void @finch_arr_reserve(ptr %t535, i64 %t543, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t544 = load ptr, ptr %t535 + %t545 = getelementptr inbounds { ptr, i64, i64 }, ptr %t544, i64 %t542 + store { ptr, i64, i64 } %t541, ptr %t545 + store i64 %t543, ptr %t536 + %t546 = getelementptr inbounds %S.gen.EnumDef, ptr %a427, i32 0, i32 3 + %t547 = getelementptr inbounds { ptr, i64, i64 }, ptr %t546, i32 0, i32 1 + %t548 = load i64, ptr %a428 + %t549 = load i64, ptr %t547 + %t550 = add i64 %t549, 1 + call void @finch_arr_reserve(ptr %t546, i64 %t550, i64 ptrtoint (ptr getelementptr (i64, ptr null, i32 1) to i64)) + %t551 = load ptr, ptr %t546 + %t552 = getelementptr inbounds i64, ptr %t551, i64 %t549 + store i64 %t548, ptr %t552 + store i64 %t550, ptr %t547 + %t553 = load i64, ptr %a428 + %t554 = add i64 %t553, 1 + store i64 %t554, ptr %a428 + br label %each.step3653 +each.step3653: + %t555 = load i64, ptr %a430 + %t556 = add i64 %t555, 1 + store i64 %t556, ptr %a430 + br label %each.cond3651 +each.end3654: + %t557 = load ptr, ptr %a1 + %t558 = icmp eq ptr %t557, null + br i1 %t558, label %panic3674, label %ok3675 +panic3674: + call void @finch_panic(ptr @.str.2295, i64 1563, ptr @.str.2296) + unreachable +ok3675: + %t559 = getelementptr inbounds %S.gen.Gen, ptr %t557, i32 0, i32 21 + %t560 = getelementptr inbounds { ptr, i64, i64 }, ptr %t559, i32 0, i32 1 + %t561 = load %S.gen.EnumDef, ptr %a427 + store %S.gen.EnumDef %t561, ptr %a562 + call void @finch.copy.S_gen_EnumDef(ptr %a563, ptr %a562) + %t564 = load %S.gen.EnumDef, ptr %a563 + %t565 = load i64, ptr %t560 + %t566 = add i64 %t565, 1 + call void @finch_arr_reserve(ptr %t559, i64 %t566, i64 ptrtoint (ptr getelementptr (%S.gen.EnumDef, ptr null, i32 1) to i64)) + %t567 = load ptr, ptr %t559 + %t568 = getelementptr inbounds %S.gen.EnumDef, ptr %t567, i64 %t565 + store %S.gen.EnumDef %t564, ptr %t568 + store i64 %t566, ptr %t560 + call void @finch.drop.S_gen_EnumDef(ptr %a427) + call void @finch.drop.S_ast_Node(ptr %a227) + br label %for.step3600 +for.step3600: + %t569 = load i64, ptr %a204 + %t570 = add i64 %t569, 1 + store i64 %t570, ptr %a204 + br label %for.cond3598 +for.end3601: + br label %for.step3586 +for.step3586: + %t571 = load i64, ptr %a170 + %t572 = add i64 %t571, 1 + store i64 %t572, ptr %a170 + br label %for.cond3584 +for.end3587: + %t573 = load ptr, ptr %a1 + %t574 = icmp eq ptr %t573, null + br i1 %t574, label %panic3676, label %ok3677 +panic3676: + call void @finch_panic(ptr @.str.2297, i64 1566, ptr @.str.2298) + unreachable +ok3677: + %t575 = getelementptr inbounds %S.gen.Gen, ptr %t573, i32 0, i32 26 + %t576 = getelementptr inbounds %S.cimport.CImports, ptr %t575, i32 0, i32 4 + %t577 = getelementptr inbounds { ptr, i64, i64 }, ptr %t576, i32 0, i32 1 + %t578 = load i64, ptr %t577 + store i64 0, ptr %a579 + br label %for.cond3678 +for.cond3678: + %t580 = load i64, ptr %a579 + %t581 = icmp slt i64 %t580, %t578 + br i1 %t581, label %for.body3679, label %for.end3681 +for.body3679: + %t582 = load ptr, ptr %a1 + %t583 = icmp eq ptr %t582, null + br i1 %t583, label %panic3682, label %ok3683 +panic3682: + call void @finch_panic(ptr @.str.2299, i64 1567, ptr @.str.2300) + unreachable +ok3683: + %t584 = getelementptr inbounds %S.gen.Gen, ptr %t582, i32 0, i32 16 + %t585 = getelementptr inbounds { ptr, i64, i64 }, ptr %t584, i32 0, i32 1 + %t586 = insertvalue %S.gen.StructDef zeroinitializer, { ptr, i64, i64 } { ptr @.str.2301, i64 1, i64 0 }, 0 + %t587 = load ptr, ptr %a1 + %t588 = icmp eq ptr %t587, null + br i1 %t588, label %panic3684, label %ok3685 +panic3684: + call void @finch_panic(ptr @.str.2302, i64 1567, ptr @.str.2303) + unreachable +ok3685: + %t589 = getelementptr inbounds %S.gen.Gen, ptr %t587, i32 0, i32 26 + %t590 = getelementptr inbounds %S.cimport.CImports, ptr %t589, i32 0, i32 4 + %t591 = load i64, ptr %a579 + %t592 = load { ptr, i64, i64 }, ptr %t590 + %t593 = extractvalue { ptr, i64, i64 } %t592, 1 + %t594 = icmp uge i64 %t591, %t593 + br i1 %t594, label %range3686, label %inrange3687 +range3686: + call void @finch_panic_index(ptr @.str.2304, i64 1567, i64 %t591, i64 %t593) + unreachable +inrange3687: + %t595 = extractvalue { ptr, i64, i64 } %t592, 0 + %t596 = getelementptr inbounds { ptr, i64, i64 }, ptr %t595, i64 %t591 + %t597 = load { ptr, i64, i64 }, ptr %t596 + store { ptr, i64, i64 } %t597, ptr %a598 + call void @finch_str_copy(ptr %a599, ptr %a598) + %t600 = load { ptr, i64, i64 }, ptr %a599 + %t601 = insertvalue %S.gen.StructDef %t586, { ptr, i64, i64 } %t600, 1 + %t602 = insertvalue %S.gen.StructDef %t601, i1 true, 2 + %t603 = insertvalue %S.gen.StructDef %t602, i64 -1, 13 + %t604 = load i64, ptr %a579 + %t605 = insertvalue %S.gen.StructDef %t603, i64 %t604, 14 + %t606 = load i64, ptr %t585 + %t607 = add i64 %t606, 1 + call void @finch_arr_reserve(ptr %t584, i64 %t607, i64 ptrtoint (ptr getelementptr (%S.gen.StructDef, ptr null, i32 1) to i64)) + %t608 = load ptr, ptr %t584 + %t609 = getelementptr inbounds %S.gen.StructDef, ptr %t608, i64 %t606 + store %S.gen.StructDef %t605, ptr %t609 + store i64 %t607, ptr %t585 + br label %for.step3680 +for.step3680: + %t610 = load i64, ptr %a579 + %t611 = add i64 %t610, 1 + store i64 %t611, ptr %a579 + br label %for.cond3678 +for.end3681: + %t612 = load ptr, ptr %a1 + %t613 = icmp eq ptr %t612, null + br i1 %t613, label %panic3688, label %ok3689 +panic3688: + call void @finch_panic(ptr @.str.2305, i64 1569, ptr @.str.2306) + unreachable +ok3689: + %t614 = getelementptr inbounds %S.gen.Gen, ptr %t612, i32 0, i32 16 + %t615 = getelementptr inbounds { ptr, i64, i64 }, ptr %t614, i32 0, i32 1 + %t616 = load i64, ptr %t615 + store i64 0, ptr %a617 + br label %for.cond3690 +for.cond3690: + %t618 = load i64, ptr %a617 + %t619 = icmp slt i64 %t618, %t616 + br i1 %t619, label %for.body3691, label %for.end3693 +for.body3691: + %t620 = load ptr, ptr %a1 + %t621 = load i64, ptr %a617 + call void @finch.gen.resolveStruct(ptr %t620, i64 %t621) + br label %for.step3692 +for.step3692: + %t622 = load i64, ptr %a617 + %t623 = add i64 %t622, 1 + store i64 %t623, ptr %a617 + br label %for.cond3690 +for.end3693: + %t624 = load ptr, ptr %a1 + %t625 = icmp eq ptr %t624, null + br i1 %t625, label %panic3694, label %ok3695 +panic3694: + call void @finch_panic(ptr @.str.2307, i64 1572, ptr @.str.2308) + unreachable +ok3695: + %t626 = getelementptr inbounds %S.gen.Gen, ptr %t624, i32 0, i32 0 + %t627 = getelementptr inbounds { ptr, i64, i64 }, ptr %t626, i32 0, i32 1 + %t628 = load i64, ptr %t627 + store i64 0, ptr %a629 + br label %for.cond3696 +for.cond3696: + %t630 = load i64, ptr %a629 + %t631 = icmp slt i64 %t630, %t628 + br i1 %t631, label %for.body3697, label %for.end3699 +for.body3697: + %t632 = load ptr, ptr %a1 + %t633 = icmp eq ptr %t632, null + br i1 %t633, label %panic3700, label %ok3701 +panic3700: + call void @finch_panic(ptr @.str.2309, i64 1573, ptr @.str.2310) + unreachable +ok3701: + %t634 = getelementptr inbounds %S.gen.Gen, ptr %t632, i32 0, i32 0 + %t635 = load i64, ptr %a629 + %t636 = load { ptr, i64, i64 }, ptr %t634 + %t637 = extractvalue { ptr, i64, i64 } %t636, 1 + %t638 = icmp uge i64 %t635, %t637 + br i1 %t638, label %range3702, label %inrange3703 +range3702: + call void @finch_panic_index(ptr @.str.2311, i64 1573, i64 %t635, i64 %t637) + unreachable +inrange3703: + %t639 = extractvalue { ptr, i64, i64 } %t636, 0 + %t640 = getelementptr inbounds %S.ast.Program, ptr %t639, i64 %t635 + %t641 = getelementptr inbounds %S.ast.Program, ptr %t640, i32 0, i32 0 + %t642 = load { ptr, i64, i64 }, ptr %t641 + %t643 = load ptr, ptr %a1 + %t644 = icmp eq ptr %t643, null + br i1 %t644, label %panic3704, label %ok3705 +panic3704: + call void @finch_panic(ptr @.str.2312, i64 1573, ptr @.str.2313) + unreachable +ok3705: + %t645 = getelementptr inbounds %S.gen.Gen, ptr %t643, i32 0, i32 14 + store { ptr, i64, i64 } %t642, ptr %a646 + call void @finch_str_copy(ptr %a647, ptr %a646) + %t648 = load { ptr, i64, i64 }, ptr %a647 + %t649 = load { ptr, i64, i64 }, ptr %t645 + store { ptr, i64, i64 } %t648, ptr %t645 + store { ptr, i64, i64 } %t649, ptr %a650 + call void @finch_str_drop(ptr %a650) + %t651 = load ptr, ptr %a1 + %t652 = icmp eq ptr %t651, null + br i1 %t652, label %panic3706, label %ok3707 +panic3706: + call void @finch_panic(ptr @.str.2314, i64 1574, ptr @.str.2315) + unreachable +ok3707: + %t653 = getelementptr inbounds %S.gen.Gen, ptr %t651, i32 0, i32 0 + %t654 = load i64, ptr %a629 + %t655 = load { ptr, i64, i64 }, ptr %t653 + %t656 = extractvalue { ptr, i64, i64 } %t655, 1 + %t657 = icmp uge i64 %t654, %t656 + br i1 %t657, label %range3708, label %inrange3709 +range3708: + call void @finch_panic_index(ptr @.str.2316, i64 1574, i64 %t654, i64 %t656) + unreachable +inrange3709: + %t658 = extractvalue { ptr, i64, i64 } %t655, 0 + %t659 = getelementptr inbounds %S.ast.Program, ptr %t658, i64 %t654 + %t660 = getelementptr inbounds %S.ast.Program, ptr %t659, i32 0, i32 8 + %t661 = getelementptr inbounds { ptr, i64, i64 }, ptr %t660, i32 0, i32 1 + %t662 = load i64, ptr %t661 + store i64 0, ptr %a663 + br label %for.cond3710 +for.cond3710: + %t664 = load i64, ptr %a663 + %t665 = icmp slt i64 %t664, %t662 + br i1 %t665, label %for.body3711, label %for.end3713 +for.body3711: + %t666 = load ptr, ptr %a1 + %t667 = icmp eq ptr %t666, null + br i1 %t667, label %panic3714, label %ok3715 +panic3714: + call void @finch_panic(ptr @.str.2317, i64 1575, ptr @.str.2318) + unreachable +ok3715: + %t668 = getelementptr inbounds %S.gen.Gen, ptr %t666, i32 0, i32 0 + %t669 = load i64, ptr %a629 + %t670 = load { ptr, i64, i64 }, ptr %t668 + %t671 = extractvalue { ptr, i64, i64 } %t670, 1 + %t672 = icmp uge i64 %t669, %t671 + br i1 %t672, label %range3716, label %inrange3717 +range3716: + call void @finch_panic_index(ptr @.str.2319, i64 1575, i64 %t669, i64 %t671) + unreachable +inrange3717: + %t673 = extractvalue { ptr, i64, i64 } %t670, 0 + %t674 = getelementptr inbounds %S.ast.Program, ptr %t673, i64 %t669 + %t675 = getelementptr inbounds %S.ast.Program, ptr %t674, i32 0, i32 8 + %t676 = load i64, ptr %a663 + %t677 = load { ptr, i64, i64 }, ptr %t675 + %t678 = extractvalue { ptr, i64, i64 } %t677, 1 + %t679 = icmp uge i64 %t676, %t678 + br i1 %t679, label %range3718, label %inrange3719 +range3718: + call void @finch_panic_index(ptr @.str.2320, i64 1575, i64 %t676, i64 %t678) + unreachable +inrange3719: + %t680 = extractvalue { ptr, i64, i64 } %t677, 0 + %t681 = getelementptr inbounds %S.ast.Node, ptr %t680, i64 %t676 + %t682 = load %S.ast.Node, ptr %t681 + store %S.ast.Node %t682, ptr %a683 + call void @finch.copy.S_ast_Node(ptr %a684, ptr %a683) + %t685 = load %S.ast.Node, ptr %a684 + store %S.ast.Node %t685, ptr %a686 + %t687 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 3 %t688 = getelementptr inbounds { ptr, i64, i64 }, ptr %t687, i32 0, i32 1 %t689 = load i64, ptr %t688 %t690 = icmp sgt i64 %t689, 0 - br i1 %t690, label %then3611, label %else3612 -then3611: + br i1 %t690, label %then3720, label %endif3722 +then3720: %t691 = load ptr, ptr %a1 %t692 = load ptr, ptr %a1 %t693 = icmp eq ptr %t692, null - br i1 %t693, label %panic3614, label %ok3615 -panic3614: - call void @finch_panic(ptr @.str.2256, i64 1514, ptr @.str.2257) + br i1 %t693, label %panic3723, label %ok3724 +panic3723: + call void @finch_panic(ptr @.str.2321, i64 1578, ptr @.str.2322) unreachable -ok3615: +ok3724: %t694 = getelementptr inbounds %S.gen.Gen, ptr %t692, i32 0, i32 14 %t695 = load { ptr, i64, i64 }, ptr %t694 - %t696 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 + %t696 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 %t697 = load { ptr, i64, i64 }, ptr %t696 - %t698 = call i64 @finch.gen.findStruct(ptr %t691, { ptr, i64, i64 } %t695, { ptr, i64, i64 } %t697) - store i64 %t698, ptr %a699 - %t700 = load i64, ptr %a699 - %t701 = icmp slt i64 %t700, 0 - br label %logic.from3616 -logic.from3616: - br i1 %t701, label %logic.rhs3617, label %logic.end3618 -logic.rhs3617: + %t698 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t699 = load { ptr, i64, i64 }, ptr %t698 + %t700 = call i64 @finch.gen.findTemplate(ptr %t691, { ptr, i64, i64 } %t695, { ptr, i64, i64 } %t697, { ptr, i64, i64 } %t699, i1 false) + %t701 = icmp sge i64 %t700, 0 + br i1 %t701, label %then3725, label %endif3727 +then3725: %t702 = load ptr, ptr %a1 - %t703 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t704 = load { ptr, i64, i64 }, ptr %t703 - %t705 = call i64 @finch.gen.findStruct(ptr %t702, { ptr, i64, i64 } { ptr @.str.2258, i64 1, i64 0 }, { ptr, i64, i64 } %t704) - %t706 = icmp sge i64 %t705, 0 - br label %logic.rend3619 -logic.rend3619: - br label %logic.end3618 -logic.end3618: - %t707 = phi i1 [ false, %logic.from3616 ], [ %t706, %logic.rend3619 ] - br i1 %t707, label %then3620, label %endif3622 -then3620: - %t708 = load ptr, ptr %a1 - %t709 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t710 = load { ptr, i64, i64 }, ptr %t709 - %t711 = call i64 @finch.gen.findStruct(ptr %t708, { ptr, i64, i64 } { ptr @.str.2259, i64 1, i64 0 }, { ptr, i64, i64 } %t710) - store i64 %t711, ptr %a699 - %t712 = load { ptr, i64, i64 }, ptr %a637 - store { ptr, i64, i64 } { ptr @.str.2260, i64 1, i64 0 }, ptr %a637 - store { ptr, i64, i64 } %t712, ptr %a713 + %t703 = load %S.ast.Node, ptr %a686 + %t704 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t705 = load { ptr, i64, i64 }, ptr %t704 + store { ptr, i64, i64 } { ptr @.str.2323, i64 10, i64 0 }, ptr %a707 + store { ptr, i64, i64 } %t705, ptr %a708 + call void @finch_str_concat(ptr %a706, ptr %a707, ptr %a708) + %t709 = load { ptr, i64, i64 }, ptr %a706 + store { ptr, i64, i64 } %t709, ptr %a711 + store { ptr, i64, i64 } { ptr @.str.2324, i64 18, i64 0 }, ptr %a712 + call void @finch_str_concat(ptr %a710, ptr %a711, ptr %a712) + store { ptr, i64, i64 } %t709, ptr %a713 call void @finch_str_drop(ptr %a713) - br label %endif3622 -endif3622: - %t714 = load i64, ptr %a699 - %t715 = icmp slt i64 %t714, 0 - br i1 %t715, label %then3623, label %endif3625 -then3623: - %t716 = load ptr, ptr %a1 - %t717 = load %S.ast.Node, ptr %a534 - %t718 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t719 = load { ptr, i64, i64 }, ptr %t718 - store { ptr, i64, i64 } { ptr @.str.2261, i64 26, i64 0 }, ptr %a721 - store { ptr, i64, i64 } %t719, ptr %a722 - call void @finch_str_concat(ptr %a720, ptr %a721, ptr %a722) - %t723 = load { ptr, i64, i64 }, ptr %a720 - store { ptr, i64, i64 } %t723, ptr %a725 - store { ptr, i64, i64 } { ptr @.str.2262, i64 76, i64 0 }, ptr %a726 - call void @finch_str_concat(ptr %a724, ptr %a725, ptr %a726) - store { ptr, i64, i64 } %t723, ptr %a727 - call void @finch_str_drop(ptr %a727) - %t728 = load { ptr, i64, i64 }, ptr %a724 - call void @finch.gen.fail(ptr %t716, %S.ast.Node %t717, { ptr, i64, i64 } %t728) - store { ptr, i64, i64 } %t728, ptr %a729 - call void @finch_str_drop(ptr %a729) - br label %endif3625 -endif3625: - %t730 = load ptr, ptr %a1 - %t731 = load { ptr, i64, i64 }, ptr %a637 - %t732 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t733 = load { ptr, i64, i64 }, ptr %t732 - %t734 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t735 = load { ptr, i64, i64 }, ptr %t734 - %t736 = call i64 @finch.gen.findMethod(ptr %t730, { ptr, i64, i64 } %t731, { ptr, i64, i64 } %t733, { ptr, i64, i64 } %t735) - %t737 = icmp sge i64 %t736, 0 - br i1 %t737, label %then3626, label %endif3628 -then3626: - %t738 = load ptr, ptr %a1 - %t739 = load %S.ast.Node, ptr %a534 - %t740 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t741 = load { ptr, i64, i64 }, ptr %t740 - store { ptr, i64, i64 } { ptr @.str.2263, i64 11, i64 0 }, ptr %a743 - store { ptr, i64, i64 } %t741, ptr %a744 - call void @finch_str_concat(ptr %a742, ptr %a743, ptr %a744) - %t745 = load { ptr, i64, i64 }, ptr %a742 - store { ptr, i64, i64 } %t745, ptr %a747 - store { ptr, i64, i64 } { ptr @.str.2264, i64 1, i64 0 }, ptr %a748 - call void @finch_str_concat(ptr %a746, ptr %a747, ptr %a748) - store { ptr, i64, i64 } %t745, ptr %a749 - call void @finch_str_drop(ptr %a749) - %t750 = load { ptr, i64, i64 }, ptr %a746 - %t751 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t752 = load { ptr, i64, i64 }, ptr %t751 - store { ptr, i64, i64 } %t750, ptr %a754 - store { ptr, i64, i64 } %t752, ptr %a755 - call void @finch_str_concat(ptr %a753, ptr %a754, ptr %a755) - store { ptr, i64, i64 } %t750, ptr %a756 - call void @finch_str_drop(ptr %a756) - %t757 = load { ptr, i64, i64 }, ptr %a753 - store { ptr, i64, i64 } %t757, ptr %a759 - store { ptr, i64, i64 } { ptr @.str.2265, i64 17, i64 0 }, ptr %a760 - call void @finch_str_concat(ptr %a758, ptr %a759, ptr %a760) - store { ptr, i64, i64 } %t757, ptr %a761 - call void @finch_str_drop(ptr %a761) - %t762 = load { ptr, i64, i64 }, ptr %a758 - call void @finch.gen.fail(ptr %t738, %S.ast.Node %t739, { ptr, i64, i64 } %t762) - store { ptr, i64, i64 } %t762, ptr %a763 - call void @finch_str_drop(ptr %a763) - br label %endif3628 -endif3628: - %t764 = load ptr, ptr %a1 - %t765 = icmp eq ptr %t764, null - br i1 %t765, label %panic3629, label %ok3630 -panic3629: - call void @finch_panic(ptr @.str.2266, i64 1525, ptr @.str.2267) - unreachable -ok3630: - %t766 = getelementptr inbounds %S.gen.Gen, ptr %t764, i32 0, i32 16 - %t767 = load i64, ptr %a699 - %t768 = load { ptr, i64, i64 }, ptr %t766 - %t769 = extractvalue { ptr, i64, i64 } %t768, 1 - %t770 = icmp uge i64 %t767, %t769 - br i1 %t770, label %range3631, label %inrange3632 -range3631: - call void @finch_panic_index(ptr @.str.2268, i64 1525, i64 %t767, i64 %t769) - unreachable -inrange3632: - %t771 = extractvalue { ptr, i64, i64 } %t768, 0 - %t772 = getelementptr inbounds %S.gen.StructDef, ptr %t771, i64 %t767 - %t773 = getelementptr inbounds %S.gen.StructDef, ptr %t772, i32 0, i32 11 - %t774 = getelementptr inbounds { ptr, i64, i64 }, ptr %t773, i32 0, i32 1 - %t775 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t776 = load { ptr, i64, i64 }, ptr %t775 - store i64 -1, ptr %a777 - %t778 = load i64, ptr %t774 - %t779 = load ptr, ptr %t773 - store i64 0, ptr %a780 - br label %find.cond3633 -find.cond3633: - %t781 = load i64, ptr %a780 - %t782 = icmp slt i64 %t781, %t778 - br i1 %t782, label %find.body3634, label %find.end3637 -find.body3634: - %t783 = getelementptr inbounds { ptr, i64, i64 }, ptr %t779, i64 %t781 - %t784 = load { ptr, i64, i64 }, ptr %t783 - store { ptr, i64, i64 } %t784, ptr %a785 - store { ptr, i64, i64 } %t776, ptr %a786 - %t787 = call i32 @finch_str_eq(ptr %a785, ptr %a786) - %t788 = icmp ne i32 %t787, 0 - br i1 %t788, label %find.hit3635, label %find.next3636 -find.hit3635: - store i64 %t781, ptr %a777 - br label %find.end3637 -find.next3636: - %t789 = add i64 %t781, 1 - store i64 %t789, ptr %a780 - br label %find.cond3633 -find.end3637: - %t790 = load i64, ptr %a777 - %t791 = icmp sge i64 %t790, 0 - br i1 %t791, label %then3638, label %endif3640 -then3638: - %t792 = load ptr, ptr %a1 - %t793 = load %S.ast.Node, ptr %a534 - %t794 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t795 = load { ptr, i64, i64 }, ptr %t794 - store { ptr, i64, i64 } { ptr @.str.2269, i64 11, i64 0 }, ptr %a797 - store { ptr, i64, i64 } %t795, ptr %a798 - call void @finch_str_concat(ptr %a796, ptr %a797, ptr %a798) - %t799 = load { ptr, i64, i64 }, ptr %a796 - store { ptr, i64, i64 } %t799, ptr %a801 - store { ptr, i64, i64 } { ptr @.str.2270, i64 28, i64 0 }, ptr %a802 - call void @finch_str_concat(ptr %a800, ptr %a801, ptr %a802) - store { ptr, i64, i64 } %t799, ptr %a803 - call void @finch_str_drop(ptr %a803) - %t804 = load { ptr, i64, i64 }, ptr %a800 - %t805 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t806 = load { ptr, i64, i64 }, ptr %t805 - store { ptr, i64, i64 } %t804, ptr %a808 - store { ptr, i64, i64 } %t806, ptr %a809 - call void @finch_str_concat(ptr %a807, ptr %a808, ptr %a809) - store { ptr, i64, i64 } %t804, ptr %a810 - call void @finch_str_drop(ptr %a810) - %t811 = load { ptr, i64, i64 }, ptr %a807 - store { ptr, i64, i64 } %t811, ptr %a813 - store { ptr, i64, i64 } { ptr @.str.2271, i64 1, i64 0 }, ptr %a814 - call void @finch_str_concat(ptr %a812, ptr %a813, ptr %a814) - store { ptr, i64, i64 } %t811, ptr %a815 - call void @finch_str_drop(ptr %a815) - %t816 = load { ptr, i64, i64 }, ptr %a812 - call void @finch.gen.fail(ptr %t792, %S.ast.Node %t793, { ptr, i64, i64 } %t816) - store { ptr, i64, i64 } %t816, ptr %a817 - call void @finch_str_drop(ptr %a817) - br label %endif3640 -endif3640: - br label %endif3613 -else3612: - %t818 = load ptr, ptr %a1 - %t819 = load ptr, ptr %a1 - %t820 = icmp eq ptr %t819, null - br i1 %t820, label %panic3641, label %ok3642 -panic3641: - call void @finch_panic(ptr @.str.2272, i64 1529, ptr @.str.2273) - unreachable -ok3642: - %t821 = getelementptr inbounds %S.gen.Gen, ptr %t819, i32 0, i32 14 - %t822 = load { ptr, i64, i64 }, ptr %t821 - %t823 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t824 = load { ptr, i64, i64 }, ptr %t823 - %t825 = call i64 @finch.gen.findFn(ptr %t818, { ptr, i64, i64 } %t822, { ptr, i64, i64 } %t824) - %t826 = icmp sge i64 %t825, 0 - br i1 %t826, label %then3643, label %endif3645 -then3643: - %t827 = load ptr, ptr %a1 - %t828 = load %S.ast.Node, ptr %a534 - %t829 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t830 = load { ptr, i64, i64 }, ptr %t829 - store { ptr, i64, i64 } { ptr @.str.2274, i64 10, i64 0 }, ptr %a832 - store { ptr, i64, i64 } %t830, ptr %a833 - call void @finch_str_concat(ptr %a831, ptr %a832, ptr %a833) - %t834 = load { ptr, i64, i64 }, ptr %a831 - store { ptr, i64, i64 } %t834, ptr %a836 - store { ptr, i64, i64 } { ptr @.str.2275, i64 18, i64 0 }, ptr %a837 - call void @finch_str_concat(ptr %a835, ptr %a836, ptr %a837) - store { ptr, i64, i64 } %t834, ptr %a838 - call void @finch_str_drop(ptr %a838) - %t839 = load { ptr, i64, i64 }, ptr %a835 - call void @finch.gen.fail(ptr %t827, %S.ast.Node %t828, { ptr, i64, i64 } %t839) - store { ptr, i64, i64 } %t839, ptr %a840 - call void @finch_str_drop(ptr %a840) - br label %endif3645 -endif3645: - %t841 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t842 = load { ptr, i64, i64 }, ptr %t841 - %t843 = call i1 @finch.gen.isBuiltin({ ptr, i64, i64 } %t842) - br i1 %t843, label %then3646, label %endif3648 -then3646: - %t844 = load ptr, ptr %a1 - %t845 = load %S.ast.Node, ptr %a534 - %t846 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t847 = load { ptr, i64, i64 }, ptr %t846 - store { ptr, i64, i64 } { ptr @.str.2276, i64 1, i64 0 }, ptr %a849 - store { ptr, i64, i64 } %t847, ptr %a850 - call void @finch_str_concat(ptr %a848, ptr %a849, ptr %a850) - %t851 = load { ptr, i64, i64 }, ptr %a848 - store { ptr, i64, i64 } %t851, ptr %a853 - store { ptr, i64, i64 } { ptr @.str.2277, i64 43, i64 0 }, ptr %a854 - call void @finch_str_concat(ptr %a852, ptr %a853, ptr %a854) - store { ptr, i64, i64 } %t851, ptr %a855 - call void @finch_str_drop(ptr %a855) - %t856 = load { ptr, i64, i64 }, ptr %a852 - call void @finch.gen.fail(ptr %t844, %S.ast.Node %t845, { ptr, i64, i64 } %t856) - store { ptr, i64, i64 } %t856, ptr %a857 - call void @finch_str_drop(ptr %a857) - br label %endif3648 -endif3648: - br label %endif3613 -endif3613: - br label %endif3607 -endif3607: - %t858 = load ptr, ptr %a1 - %t859 = icmp eq ptr %t858, null - br i1 %t859, label %panic3649, label %ok3650 -panic3649: - call void @finch_panic(ptr @.str.2278, i64 1536, ptr @.str.2279) - unreachable -ok3650: - %t860 = getelementptr inbounds %S.gen.Gen, ptr %t858, i32 0, i32 14 - %t861 = load { ptr, i64, i64 }, ptr %t860 - store { ptr, i64, i64 } %t861, ptr %a862 - call void @finch_str_copy(ptr %a863, ptr %a862) - %t864 = load { ptr, i64, i64 }, ptr %a863 - %t865 = insertvalue %S.gen.FnSig zeroinitializer, { ptr, i64, i64 } %t864, 0 - %t866 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t867 = load { ptr, i64, i64 }, ptr %t866 - store { ptr, i64, i64 } %t867, ptr %a868 - call void @finch_str_copy(ptr %a869, ptr %a868) - %t870 = load { ptr, i64, i64 }, ptr %a869 - %t871 = insertvalue %S.gen.FnSig %t865, { ptr, i64, i64 } %t870, 1 - %t872 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t873 = load { ptr, i64, i64 }, ptr %t872 - store { ptr, i64, i64 } %t873, ptr %a874 - call void @finch_str_copy(ptr %a875, ptr %a874) - %t876 = load { ptr, i64, i64 }, ptr %a875 - %t877 = insertvalue %S.gen.FnSig %t871, { ptr, i64, i64 } %t876, 2 - %t878 = load { ptr, i64, i64 }, ptr %a637 - store { ptr, i64, i64 } %t878, ptr %a879 - call void @finch_str_copy(ptr %a880, ptr %a879) - %t881 = load { ptr, i64, i64 }, ptr %a880 - %t882 = insertvalue %S.gen.FnSig %t877, { ptr, i64, i64 } %t881, 3 - %t883 = load i1, ptr %a638 - %t884 = insertvalue %S.gen.FnSig %t882, i1 %t883, 4 - %t885 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 8 - %t886 = load i1, ptr %t885 - %t887 = insertvalue %S.gen.FnSig %t884, i1 %t886, 5 - %t888 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 7 - %t889 = load i1, ptr %t888 - %t890 = insertvalue %S.gen.FnSig %t887, i1 %t889, 9 - %t891 = load i64, ptr %a477 - %t892 = insertvalue %S.gen.FnSig %t890, i64 %t891, 16 - %t893 = load i64, ptr %a511 - %t894 = insertvalue %S.gen.FnSig %t892, i64 %t893, 17 - store %S.gen.FnSig %t894, ptr %a895 - %t896 = load ptr, ptr %a1 - %t897 = icmp eq ptr %t896, null - br i1 %t897, label %panic3651, label %ok3652 -panic3651: - call void @finch_panic(ptr @.str.2281, i64 1537, ptr @.str.2282) - unreachable -ok3652: - %t898 = getelementptr inbounds %S.gen.Gen, ptr %t896, i32 0, i32 14 - %t899 = load { ptr, i64, i64 }, ptr %t898 - %t900 = call { ptr, i64, i64 } @finch.gen.modName({ ptr, i64, i64 } %t899) - store { ptr, i64, i64 } { ptr @.str.2280, i64 7, i64 0 }, ptr %a902 - store { ptr, i64, i64 } %t900, ptr %a903 - call void @finch_str_concat(ptr %a901, ptr %a902, ptr %a903) - store { ptr, i64, i64 } %t900, ptr %a904 - call void @finch_str_drop(ptr %a904) - %t905 = load { ptr, i64, i64 }, ptr %a901 - store { ptr, i64, i64 } %t905, ptr %a907 - store { ptr, i64, i64 } { ptr @.str.2283, i64 1, i64 0 }, ptr %a908 - call void @finch_str_concat(ptr %a906, ptr %a907, ptr %a908) - store { ptr, i64, i64 } %t905, ptr %a909 - call void @finch_str_drop(ptr %a909) - %t910 = load { ptr, i64, i64 }, ptr %a906 - %t911 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t912 = load { ptr, i64, i64 }, ptr %t911 - store { ptr, i64, i64 } %t910, ptr %a914 - store { ptr, i64, i64 } %t912, ptr %a915 - call void @finch_str_concat(ptr %a913, ptr %a914, ptr %a915) - store { ptr, i64, i64 } %t910, ptr %a916 - call void @finch_str_drop(ptr %a916) - %t917 = load { ptr, i64, i64 }, ptr %a913 - %t918 = getelementptr inbounds %S.gen.FnSig, ptr %a895, i32 0, i32 11 - %t919 = load { ptr, i64, i64 }, ptr %t918 - store { ptr, i64, i64 } %t917, ptr %t918 - store { ptr, i64, i64 } %t919, ptr %a920 - call void @finch_str_drop(ptr %a920) - %t921 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t922 = getelementptr inbounds { ptr, i64, i64 }, ptr %t921, i32 0, i32 1 - %t923 = load i64, ptr %t922 - %t924 = icmp sgt i64 %t923, 0 - br i1 %t924, label %then3653, label %endif3655 -then3653: - %t925 = load ptr, ptr %a1 - %t926 = icmp eq ptr %t925, null - br i1 %t926, label %panic3656, label %ok3657 -panic3656: - call void @finch_panic(ptr @.str.2285, i64 1539, ptr @.str.2286) - unreachable -ok3657: - %t927 = getelementptr inbounds %S.gen.Gen, ptr %t925, i32 0, i32 14 - %t928 = load { ptr, i64, i64 }, ptr %t927 - %t929 = call { ptr, i64, i64 } @finch.gen.modName({ ptr, i64, i64 } %t928) - store { ptr, i64, i64 } { ptr @.str.2284, i64 7, i64 0 }, ptr %a931 - store { ptr, i64, i64 } %t929, ptr %a932 - call void @finch_str_concat(ptr %a930, ptr %a931, ptr %a932) - store { ptr, i64, i64 } %t929, ptr %a933 - call void @finch_str_drop(ptr %a933) - %t934 = load { ptr, i64, i64 }, ptr %a930 - store { ptr, i64, i64 } %t934, ptr %a936 - store { ptr, i64, i64 } { ptr @.str.2287, i64 1, i64 0 }, ptr %a937 - call void @finch_str_concat(ptr %a935, ptr %a936, ptr %a937) - store { ptr, i64, i64 } %t934, ptr %a938 - call void @finch_str_drop(ptr %a938) - %t939 = load { ptr, i64, i64 }, ptr %a935 - %t940 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t941 = load { ptr, i64, i64 }, ptr %t940 - store { ptr, i64, i64 } %t939, ptr %a943 - store { ptr, i64, i64 } %t941, ptr %a944 - call void @finch_str_concat(ptr %a942, ptr %a943, ptr %a944) - store { ptr, i64, i64 } %t939, ptr %a945 - call void @finch_str_drop(ptr %a945) - %t946 = load { ptr, i64, i64 }, ptr %a942 - store { ptr, i64, i64 } %t946, ptr %a948 - store { ptr, i64, i64 } { ptr @.str.2288, i64 1, i64 0 }, ptr %a949 - call void @finch_str_concat(ptr %a947, ptr %a948, ptr %a949) - store { ptr, i64, i64 } %t946, ptr %a950 - call void @finch_str_drop(ptr %a950) - %t951 = load { ptr, i64, i64 }, ptr %a947 - %t952 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t953 = load { ptr, i64, i64 }, ptr %t952 - store { ptr, i64, i64 } %t951, ptr %a955 - store { ptr, i64, i64 } %t953, ptr %a956 - call void @finch_str_concat(ptr %a954, ptr %a955, ptr %a956) - store { ptr, i64, i64 } %t951, ptr %a957 - call void @finch_str_drop(ptr %a957) - %t958 = load { ptr, i64, i64 }, ptr %a954 - %t959 = getelementptr inbounds %S.gen.FnSig, ptr %a895, i32 0, i32 11 - %t960 = load { ptr, i64, i64 }, ptr %t959 - store { ptr, i64, i64 } %t958, ptr %t959 - store { ptr, i64, i64 } %t960, ptr %a961 - call void @finch_str_drop(ptr %a961) - br label %endif3655 -endif3655: - %t962 = load ptr, ptr %a1 - %t963 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 5 - %t964 = load %S.ast.Type, ptr %t963 - %t965 = load %S.ast.Node, ptr %a534 - %t966 = call %S.ast.Type @finch.gen.resolve(ptr %t962, %S.ast.Type %t964, %S.ast.Node %t965) - %t967 = getelementptr inbounds %S.gen.FnSig, ptr %a895, i32 0, i32 12 - %t968 = load %S.ast.Type, ptr %t967 - store %S.ast.Type %t966, ptr %t967 - store %S.ast.Type %t968, ptr %a969 - call void @finch.drop.S_ast_Type(ptr %a969) - %t970 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 9 - %t971 = getelementptr inbounds { ptr, i64, i64 }, ptr %t970, i32 0, i32 1 - %t972 = load i64, ptr %t971 - %t973 = sub i64 %t972, 1 - store i64 0, ptr %a974 - br label %for.cond3658 -for.cond3658: - %t975 = load i64, ptr %a974 - %t976 = icmp slt i64 %t975, %t973 - br i1 %t976, label %for.body3659, label %for.end3661 -for.body3659: - %t977 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 9 - %t978 = load i64, ptr %a974 - %t979 = load { ptr, i64, i64 }, ptr %t977 - %t980 = extractvalue { ptr, i64, i64 } %t979, 1 - %t981 = icmp uge i64 %t978, %t980 - br i1 %t981, label %range3662, label %inrange3663 -range3662: - call void @finch_panic_index(ptr @.str.2289, i64 1543, i64 %t978, i64 %t980) - unreachable -inrange3663: - %t982 = extractvalue { ptr, i64, i64 } %t979, 0 - %t983 = getelementptr inbounds %S.ast.Node, ptr %t982, i64 %t978 - %t984 = getelementptr inbounds %S.ast.Node, ptr %t983, i32 0, i32 1 - %t985 = load { ptr, i64, i64 }, ptr %t984 - store { ptr, i64, i64 } %t985, ptr %a986 - store { ptr, i64, i64 } { ptr @.str.2290, i64 4, i64 0 }, ptr %a987 - %t988 = call i32 @finch_str_eq(ptr %a986, ptr %a987) - %t989 = icmp ne i32 %t988, 0 - br label %logic.from3664 -logic.from3664: - br i1 %t989, label %logic.rhs3665, label %logic.end3666 -logic.rhs3665: - %t990 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t991 = getelementptr inbounds { ptr, i64, i64 }, ptr %t990, i32 0, i32 1 - %t992 = load i64, ptr %t991 - %t993 = icmp sgt i64 %t992, 0 - br label %logic.rend3667 -logic.rend3667: - br label %logic.end3666 -logic.end3666: - %t994 = phi i1 [ false, %logic.from3664 ], [ %t993, %logic.rend3667 ] - br i1 %t994, label %then3668, label %endif3670 -then3668: - %t995 = load ptr, ptr %a1 - %t996 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 9 - %t997 = load i64, ptr %a974 - %t998 = load { ptr, i64, i64 }, ptr %t996 - %t999 = extractvalue { ptr, i64, i64 } %t998, 1 - %t1000 = icmp uge i64 %t997, %t999 - br i1 %t1000, label %range3671, label %inrange3672 -range3671: - call void @finch_panic_index(ptr @.str.2291, i64 1544, i64 %t997, i64 %t999) - unreachable -inrange3672: - %t1001 = extractvalue { ptr, i64, i64 } %t998, 0 - %t1002 = getelementptr inbounds %S.ast.Node, ptr %t1001, i64 %t997 - %t1003 = load %S.ast.Node, ptr %t1002 - %t1004 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t1005 = load { ptr, i64, i64 }, ptr %t1004 - store { ptr, i64, i64 } { ptr @.str.2292, i64 22, i64 0 }, ptr %a1007 - store { ptr, i64, i64 } %t1005, ptr %a1008 - call void @finch_str_concat(ptr %a1006, ptr %a1007, ptr %a1008) - %t1009 = load { ptr, i64, i64 }, ptr %a1006 - store { ptr, i64, i64 } %t1009, ptr %a1011 - store { ptr, i64, i64 } { ptr @.str.2293, i64 24, i64 0 }, ptr %a1012 - call void @finch_str_concat(ptr %a1010, ptr %a1011, ptr %a1012) - store { ptr, i64, i64 } %t1009, ptr %a1013 - call void @finch_str_drop(ptr %a1013) - %t1014 = load { ptr, i64, i64 }, ptr %a1010 - call void @finch.gen.fail(ptr %t995, %S.ast.Node %t1003, { ptr, i64, i64 } %t1014) - store { ptr, i64, i64 } %t1014, ptr %a1015 - call void @finch_str_drop(ptr %a1015) - br label %endif3670 -endif3670: - %t1016 = getelementptr inbounds %S.gen.FnSig, ptr %a895, i32 0, i32 13 - %t1017 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1016, i32 0, i32 1 - %t1018 = load ptr, ptr %a1 - %t1019 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 9 - %t1020 = load i64, ptr %a974 - %t1021 = load { ptr, i64, i64 }, ptr %t1019 - %t1022 = extractvalue { ptr, i64, i64 } %t1021, 1 - %t1023 = icmp uge i64 %t1020, %t1022 - br i1 %t1023, label %range3673, label %inrange3674 -range3673: - call void @finch_panic_index(ptr @.str.2294, i64 1546, i64 %t1020, i64 %t1022) - unreachable -inrange3674: - %t1024 = extractvalue { ptr, i64, i64 } %t1021, 0 - %t1025 = getelementptr inbounds %S.ast.Node, ptr %t1024, i64 %t1020 - %t1026 = getelementptr inbounds %S.ast.Node, ptr %t1025, i32 0, i32 5 - %t1027 = load %S.ast.Type, ptr %t1026 - %t1028 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 9 - %t1029 = load i64, ptr %a974 - %t1030 = load { ptr, i64, i64 }, ptr %t1028 - %t1031 = extractvalue { ptr, i64, i64 } %t1030, 1 - %t1032 = icmp uge i64 %t1029, %t1031 - br i1 %t1032, label %range3675, label %inrange3676 -range3675: - call void @finch_panic_index(ptr @.str.2295, i64 1546, i64 %t1029, i64 %t1031) - unreachable -inrange3676: - %t1033 = extractvalue { ptr, i64, i64 } %t1030, 0 - %t1034 = getelementptr inbounds %S.ast.Node, ptr %t1033, i64 %t1029 - %t1035 = load %S.ast.Node, ptr %t1034 - %t1036 = call %S.ast.Type @finch.gen.resolve(ptr %t1018, %S.ast.Type %t1027, %S.ast.Node %t1035) - %t1037 = load i64, ptr %t1017 - %t1038 = add i64 %t1037, 1 - call void @finch_arr_reserve(ptr %t1016, i64 %t1038, i64 ptrtoint (ptr getelementptr (%S.ast.Type, ptr null, i32 1) to i64)) - %t1039 = load ptr, ptr %t1016 - %t1040 = getelementptr inbounds %S.ast.Type, ptr %t1039, i64 %t1037 - store %S.ast.Type %t1036, ptr %t1040 - store i64 %t1038, ptr %t1017 - %t1041 = getelementptr inbounds %S.gen.FnSig, ptr %a895, i32 0, i32 14 - %t1042 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1041, i32 0, i32 1 - %t1043 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 9 - %t1044 = load i64, ptr %a974 - %t1045 = load { ptr, i64, i64 }, ptr %t1043 - %t1046 = extractvalue { ptr, i64, i64 } %t1045, 1 - %t1047 = icmp uge i64 %t1044, %t1046 - br i1 %t1047, label %range3677, label %inrange3678 -range3677: - call void @finch_panic_index(ptr @.str.2296, i64 1547, i64 %t1044, i64 %t1046) - unreachable -inrange3678: - %t1048 = extractvalue { ptr, i64, i64 } %t1045, 0 - %t1049 = getelementptr inbounds %S.ast.Node, ptr %t1048, i64 %t1044 - %t1050 = getelementptr inbounds %S.ast.Node, ptr %t1049, i32 0, i32 1 - %t1051 = load { ptr, i64, i64 }, ptr %t1050 - store { ptr, i64, i64 } %t1051, ptr %a1052 - call void @finch_str_copy(ptr %a1053, ptr %a1052) - %t1054 = load { ptr, i64, i64 }, ptr %a1053 - %t1055 = load i64, ptr %t1042 - %t1056 = add i64 %t1055, 1 - call void @finch_arr_reserve(ptr %t1041, i64 %t1056, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) - %t1057 = load ptr, ptr %t1041 - %t1058 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1057, i64 %t1055 - store { ptr, i64, i64 } %t1054, ptr %t1058 - store i64 %t1056, ptr %t1042 - br label %for.step3660 -for.step3660: - %t1059 = load i64, ptr %a974 - %t1060 = add i64 %t1059, 1 - store i64 %t1060, ptr %a974 - br label %for.cond3658 -for.end3661: - %t1061 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 8 - %t1062 = load i1, ptr %t1061 - br i1 %t1062, label %then3679, label %endif3681 -then3679: - %t1063 = load ptr, ptr %a1 - %t1064 = load %S.ast.Node, ptr %a534 - %t1065 = load %S.gen.FnSig, ptr %a895 - call void @finch.gen.checkExport(ptr %t1063, %S.ast.Node %t1064, %S.gen.FnSig %t1065) - br label %endif3681 -endif3681: - %t1066 = load ptr, ptr %a1 - %t1067 = icmp eq ptr %t1066, null - br i1 %t1067, label %panic3682, label %ok3683 -panic3682: - call void @finch_panic(ptr @.str.2297, i64 1552, ptr @.str.2298) - unreachable -ok3683: - %t1068 = getelementptr inbounds %S.gen.Gen, ptr %t1066, i32 0, i32 15 - %t1069 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1068, i32 0, i32 1 - %t1070 = load %S.gen.FnSig, ptr %a895 - store %S.gen.FnSig %t1070, ptr %a1071 - call void @finch.copy.S_gen_FnSig(ptr %a1072, ptr %a1071) - %t1073 = load %S.gen.FnSig, ptr %a1072 - %t1074 = load i64, ptr %t1069 - %t1075 = add i64 %t1074, 1 - call void @finch_arr_reserve(ptr %t1068, i64 %t1075, i64 ptrtoint (ptr getelementptr (%S.gen.FnSig, ptr null, i32 1) to i64)) - %t1076 = load ptr, ptr %t1068 - %t1077 = getelementptr inbounds %S.gen.FnSig, ptr %t1076, i64 %t1074 - store %S.gen.FnSig %t1073, ptr %t1077 - store i64 %t1075, ptr %t1069 - call void @finch.drop.S_gen_FnSig(ptr %a895) - call void @finch_str_drop(ptr %a637) - call void @finch.drop.S_ast_Node(ptr %a534) - br label %for.step3568 -for.step3568: - %t1078 = load i64, ptr %a511 - %t1079 = add i64 %t1078, 1 - store i64 %t1079, ptr %a511 - br label %for.cond3566 -for.end3569: - br label %for.step3554 -for.step3554: - %t1080 = load i64, ptr %a477 - %t1081 = add i64 %t1080, 1 - store i64 %t1081, ptr %a477 - br label %for.cond3552 -for.end3555: - store i1 true, ptr %a1082 - br label %while.cond3684 -while.cond3684: - %t1083 = load i1, ptr %a1082 - br i1 %t1083, label %while.body3685, label %while.end3686 -while.body3685: - store i1 false, ptr %a1082 - %t1084 = load ptr, ptr %a1 - %t1085 = icmp eq ptr %t1084, null - br i1 %t1085, label %panic3687, label %ok3688 -panic3687: - call void @finch_panic(ptr @.str.2299, i64 1560, ptr @.str.2300) - unreachable -ok3688: - %t1086 = getelementptr inbounds %S.gen.Gen, ptr %t1084, i32 0, i32 15 - %t1087 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1086, i32 0, i32 1 - %t1088 = load i64, ptr %t1087 - store i64 0, ptr %a1089 - br label %for.cond3689 -for.cond3689: - %t1090 = load i64, ptr %a1089 - %t1091 = icmp slt i64 %t1090, %t1088 - br i1 %t1091, label %for.body3690, label %for.end3692 -for.body3690: - %t1092 = load ptr, ptr %a1 - %t1093 = icmp eq ptr %t1092, null - br i1 %t1093, label %panic3693, label %ok3694 -panic3693: - call void @finch_panic(ptr @.str.2301, i64 1561, ptr @.str.2302) - unreachable -ok3694: - %t1094 = getelementptr inbounds %S.gen.Gen, ptr %t1092, i32 0, i32 15 - %t1095 = load i64, ptr %a1089 - %t1096 = load { ptr, i64, i64 }, ptr %t1094 - %t1097 = extractvalue { ptr, i64, i64 } %t1096, 1 - %t1098 = icmp uge i64 %t1095, %t1097 - br i1 %t1098, label %range3695, label %inrange3696 -range3695: - call void @finch_panic_index(ptr @.str.2303, i64 1561, i64 %t1095, i64 %t1097) - unreachable -inrange3696: - %t1099 = extractvalue { ptr, i64, i64 } %t1096, 0 - %t1100 = getelementptr inbounds %S.gen.FnSig, ptr %t1099, i64 %t1095 - %t1101 = getelementptr inbounds %S.gen.FnSig, ptr %t1100, i32 0, i32 2 - %t1102 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1101, i32 0, i32 1 - %t1103 = load i64, ptr %t1102 - %t1104 = icmp sgt i64 %t1103, 0 - br label %logic.from3697 -logic.from3697: - br i1 %t1104, label %logic.rhs3698, label %logic.end3699 -logic.rhs3698: - %t1105 = load ptr, ptr %a1 - %t1106 = icmp eq ptr %t1105, null - br i1 %t1106, label %panic3700, label %ok3701 -panic3700: - call void @finch_panic(ptr @.str.2304, i64 1561, ptr @.str.2305) - unreachable -ok3701: - %t1107 = getelementptr inbounds %S.gen.Gen, ptr %t1105, i32 0, i32 15 - %t1108 = load i64, ptr %a1089 - %t1109 = load { ptr, i64, i64 }, ptr %t1107 - %t1110 = extractvalue { ptr, i64, i64 } %t1109, 1 - %t1111 = icmp uge i64 %t1108, %t1110 - br i1 %t1111, label %range3702, label %inrange3703 -range3702: - call void @finch_panic_index(ptr @.str.2306, i64 1561, i64 %t1108, i64 %t1110) - unreachable -inrange3703: - %t1112 = extractvalue { ptr, i64, i64 } %t1109, 0 - %t1113 = getelementptr inbounds %S.gen.FnSig, ptr %t1112, i64 %t1108 - %t1114 = getelementptr inbounds %S.gen.FnSig, ptr %t1113, i32 0, i32 10 - %t1115 = load i1, ptr %t1114 - %t1116 = xor i1 %t1115, true - br label %logic.rend3704 -logic.rend3704: - br label %logic.end3699 -logic.end3699: - %t1117 = phi i1 [ false, %logic.from3697 ], [ %t1116, %logic.rend3704 ] - br i1 %t1117, label %then3705, label %endif3707 -then3705: - %t1118 = load ptr, ptr %a1 - %t1119 = icmp eq ptr %t1118, null - br i1 %t1119, label %panic3708, label %ok3709 -panic3708: - call void @finch_panic(ptr @.str.2307, i64 1562, ptr @.str.2308) - unreachable -ok3709: - %t1120 = getelementptr inbounds %S.gen.Gen, ptr %t1118, i32 0, i32 0 - %t1121 = load ptr, ptr %a1 - %t1122 = icmp eq ptr %t1121, null - br i1 %t1122, label %panic3710, label %ok3711 -panic3710: - call void @finch_panic(ptr @.str.2309, i64 1562, ptr @.str.2310) - unreachable -ok3711: - %t1123 = getelementptr inbounds %S.gen.Gen, ptr %t1121, i32 0, i32 15 - %t1124 = load i64, ptr %a1089 - %t1125 = load { ptr, i64, i64 }, ptr %t1123 - %t1126 = extractvalue { ptr, i64, i64 } %t1125, 1 - %t1127 = icmp uge i64 %t1124, %t1126 - br i1 %t1127, label %range3712, label %inrange3713 -range3712: - call void @finch_panic_index(ptr @.str.2311, i64 1562, i64 %t1124, i64 %t1126) - unreachable -inrange3713: - %t1128 = extractvalue { ptr, i64, i64 } %t1125, 0 - %t1129 = getelementptr inbounds %S.gen.FnSig, ptr %t1128, i64 %t1124 - %t1130 = getelementptr inbounds %S.gen.FnSig, ptr %t1129, i32 0, i32 16 - %t1131 = load i64, ptr %t1130 - %t1132 = load { ptr, i64, i64 }, ptr %t1120 - %t1133 = extractvalue { ptr, i64, i64 } %t1132, 1 - %t1134 = icmp uge i64 %t1131, %t1133 - br i1 %t1134, label %range3714, label %inrange3715 -range3714: - call void @finch_panic_index(ptr @.str.2312, i64 1562, i64 %t1131, i64 %t1133) - unreachable -inrange3715: - %t1135 = extractvalue { ptr, i64, i64 } %t1132, 0 - %t1136 = getelementptr inbounds %S.ast.Program, ptr %t1135, i64 %t1131 - %t1137 = getelementptr inbounds %S.ast.Program, ptr %t1136, i32 0, i32 8 - %t1138 = load ptr, ptr %a1 - %t1139 = icmp eq ptr %t1138, null - br i1 %t1139, label %panic3716, label %ok3717 -panic3716: - call void @finch_panic(ptr @.str.2313, i64 1562, ptr @.str.2314) - unreachable -ok3717: - %t1140 = getelementptr inbounds %S.gen.Gen, ptr %t1138, i32 0, i32 15 - %t1141 = load i64, ptr %a1089 - %t1142 = load { ptr, i64, i64 }, ptr %t1140 - %t1143 = extractvalue { ptr, i64, i64 } %t1142, 1 - %t1144 = icmp uge i64 %t1141, %t1143 - br i1 %t1144, label %range3718, label %inrange3719 -range3718: - call void @finch_panic_index(ptr @.str.2315, i64 1562, i64 %t1141, i64 %t1143) - unreachable -inrange3719: - %t1145 = extractvalue { ptr, i64, i64 } %t1142, 0 - %t1146 = getelementptr inbounds %S.gen.FnSig, ptr %t1145, i64 %t1141 - %t1147 = getelementptr inbounds %S.gen.FnSig, ptr %t1146, i32 0, i32 17 - %t1148 = load i64, ptr %t1147 - %t1149 = load { ptr, i64, i64 }, ptr %t1137 - %t1150 = extractvalue { ptr, i64, i64 } %t1149, 1 - %t1151 = icmp uge i64 %t1148, %t1150 - br i1 %t1151, label %range3720, label %inrange3721 -range3720: - call void @finch_panic_index(ptr @.str.2316, i64 1562, i64 %t1148, i64 %t1150) - unreachable -inrange3721: - %t1152 = extractvalue { ptr, i64, i64 } %t1149, 0 - %t1153 = getelementptr inbounds %S.ast.Node, ptr %t1152, i64 %t1148 - %t1154 = load %S.ast.Node, ptr %t1153 - store %S.ast.Node %t1154, ptr %a1155 - call void @finch.copy.S_ast_Node(ptr %a1156, ptr %a1155) - %t1157 = load %S.ast.Node, ptr %a1156 - store %S.ast.Node %t1157, ptr %a1158 - %t1159 = load ptr, ptr %a1 - %t1160 = getelementptr inbounds %S.ast.Node, ptr %a1158, i32 0, i32 9 - %t1161 = getelementptr inbounds %S.ast.Node, ptr %a1158, i32 0, i32 9 - %t1162 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1161, i32 0, i32 1 - %t1163 = load i64, ptr %t1162 - %t1164 = sub i64 %t1163, 1 - %t1165 = load { ptr, i64, i64 }, ptr %t1160 - %t1166 = extractvalue { ptr, i64, i64 } %t1165, 1 - %t1167 = icmp uge i64 %t1164, %t1166 - br i1 %t1167, label %range3722, label %inrange3723 -range3722: - call void @finch_panic_index(ptr @.str.2318, i64 1563, i64 %t1164, i64 %t1166) - unreachable -inrange3723: - %t1168 = extractvalue { ptr, i64, i64 } %t1165, 0 - %t1169 = getelementptr inbounds %S.ast.Node, ptr %t1168, i64 %t1164 - %t1170 = load %S.ast.Node, ptr %t1169 - %t1171 = call i1 @finch.gen.mutates(ptr %t1159, { ptr, i64, i64 } { ptr @.str.2317, i64 4, i64 0 }, %S.ast.Node %t1170) - br i1 %t1171, label %then3724, label %endif3726 -then3724: - %t1172 = load ptr, ptr %a1 - %t1173 = icmp eq ptr %t1172, null - br i1 %t1173, label %panic3727, label %ok3728 -panic3727: - call void @finch_panic(ptr @.str.2319, i64 1564, ptr @.str.2320) - unreachable -ok3728: - %t1174 = getelementptr inbounds %S.gen.Gen, ptr %t1172, i32 0, i32 15 - %t1175 = load i64, ptr %a1089 - %t1176 = load { ptr, i64, i64 }, ptr %t1174 - %t1177 = extractvalue { ptr, i64, i64 } %t1176, 1 - %t1178 = icmp uge i64 %t1175, %t1177 - br i1 %t1178, label %range3729, label %inrange3730 -range3729: - call void @finch_panic_index(ptr @.str.2321, i64 1564, i64 %t1175, i64 %t1177) - unreachable -inrange3730: - %t1179 = extractvalue { ptr, i64, i64 } %t1176, 0 - %t1180 = getelementptr inbounds %S.gen.FnSig, ptr %t1179, i64 %t1175 - %t1181 = getelementptr inbounds %S.gen.FnSig, ptr %t1180, i32 0, i32 10 - store i1 true, ptr %t1181 - %t1182 = load ptr, ptr %a1 - %t1183 = icmp eq ptr %t1182, null - br i1 %t1183, label %panic3731, label %ok3732 + %t714 = load { ptr, i64, i64 }, ptr %a710 + call void @finch.gen.fail(ptr %t702, %S.ast.Node %t703, { ptr, i64, i64 } %t714) + store { ptr, i64, i64 } %t714, ptr %a715 + call void @finch_str_drop(ptr %a715) + br label %endif3727 +endif3727: + %t716 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t717 = getelementptr inbounds { ptr, i64, i64 }, ptr %t716, i32 0, i32 1 + %t718 = load i64, ptr %t717 + %t719 = icmp sgt i64 %t718, 0 + br label %logic.from3728 +logic.from3728: + br i1 %t719, label %logic.rhs3729, label %logic.end3730 +logic.rhs3729: + %t720 = load ptr, ptr %a1 + %t721 = load ptr, ptr %a1 + %t722 = icmp eq ptr %t721, null + br i1 %t722, label %panic3731, label %ok3732 panic3731: - call void @finch_panic(ptr @.str.2322, i64 1565, ptr @.str.2323) + call void @finch_panic(ptr @.str.2325, i64 1581, ptr @.str.2326) unreachable ok3732: - %t1184 = getelementptr inbounds %S.gen.Gen, ptr %t1182, i32 0, i32 23 - %t1185 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1184, i32 0, i32 1 - %t1186 = load ptr, ptr %a1 - %t1187 = icmp eq ptr %t1186, null - br i1 %t1187, label %panic3733, label %ok3734 -panic3733: - call void @finch_panic(ptr @.str.2324, i64 1565, ptr @.str.2325) - unreachable -ok3734: - %t1188 = getelementptr inbounds %S.gen.Gen, ptr %t1186, i32 0, i32 15 - %t1189 = load i64, ptr %a1089 - %t1190 = load { ptr, i64, i64 }, ptr %t1188 - %t1191 = extractvalue { ptr, i64, i64 } %t1190, 1 - %t1192 = icmp uge i64 %t1189, %t1191 - br i1 %t1192, label %range3735, label %inrange3736 -range3735: - call void @finch_panic_index(ptr @.str.2326, i64 1565, i64 %t1189, i64 %t1191) - unreachable -inrange3736: - %t1193 = extractvalue { ptr, i64, i64 } %t1190, 0 - %t1194 = getelementptr inbounds %S.gen.FnSig, ptr %t1193, i64 %t1189 - %t1195 = getelementptr inbounds %S.gen.FnSig, ptr %t1194, i32 0, i32 1 - %t1196 = load { ptr, i64, i64 }, ptr %t1195 - store { ptr, i64, i64 } %t1196, ptr %a1197 - call void @finch_str_copy(ptr %a1198, ptr %a1197) - %t1199 = load { ptr, i64, i64 }, ptr %a1198 - %t1200 = load i64, ptr %t1185 - %t1201 = add i64 %t1200, 1 - call void @finch_arr_reserve(ptr %t1184, i64 %t1201, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) - %t1202 = load ptr, ptr %t1184 - %t1203 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1202, i64 %t1200 - store { ptr, i64, i64 } %t1199, ptr %t1203 - store i64 %t1201, ptr %t1185 - store i1 true, ptr %a1082 - br label %endif3726 -endif3726: - call void @finch.drop.S_ast_Node(ptr %a1158) - br label %endif3707 -endif3707: - br label %for.step3691 -for.step3691: - %t1204 = load i64, ptr %a1089 - %t1205 = add i64 %t1204, 1 - store i64 %t1205, ptr %a1089 - br label %for.cond3689 -for.end3692: - %t1206 = load ptr, ptr %a1 - %t1207 = icmp eq ptr %t1206, null - br i1 %t1207, label %panic3737, label %ok3738 + %t723 = getelementptr inbounds %S.gen.Gen, ptr %t721, i32 0, i32 14 + %t724 = load { ptr, i64, i64 }, ptr %t723 + %t725 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t726 = load { ptr, i64, i64 }, ptr %t725 + %t727 = call i64 @finch.gen.findTemplate(ptr %t720, { ptr, i64, i64 } %t724, { ptr, i64, i64 } %t726, { ptr, i64, i64 } { ptr @.str.2327, i64 0, i64 0 }, i1 true) + %t728 = icmp slt i64 %t727, 0 + br label %logic.rend3733 +logic.rend3733: + br label %logic.end3730 +logic.end3730: + %t729 = phi i1 [ false, %logic.from3728 ], [ %t728, %logic.rend3733 ] + br i1 %t729, label %then3734, label %endif3736 +then3734: + %t730 = load ptr, ptr %a1 + %t731 = load %S.ast.Node, ptr %a686 + %t732 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t733 = load { ptr, i64, i64 }, ptr %t732 + store { ptr, i64, i64 } { ptr @.str.2328, i64 34, i64 0 }, ptr %a735 + store { ptr, i64, i64 } %t733, ptr %a736 + call void @finch_str_concat(ptr %a734, ptr %a735, ptr %a736) + %t737 = load { ptr, i64, i64 }, ptr %a734 + store { ptr, i64, i64 } %t737, ptr %a739 + store { ptr, i64, i64 } { ptr @.str.2329, i64 53, i64 0 }, ptr %a740 + call void @finch_str_concat(ptr %a738, ptr %a739, ptr %a740) + store { ptr, i64, i64 } %t737, ptr %a741 + call void @finch_str_drop(ptr %a741) + %t742 = load { ptr, i64, i64 }, ptr %a738 + call void @finch.gen.fail(ptr %t730, %S.ast.Node %t731, { ptr, i64, i64 } %t742) + store { ptr, i64, i64 } %t742, ptr %a743 + call void @finch_str_drop(ptr %a743) + br label %endif3736 +endif3736: + %t744 = load ptr, ptr %a1 + %t745 = icmp eq ptr %t744, null + br i1 %t745, label %panic3737, label %ok3738 panic3737: - call void @finch_panic(ptr @.str.2327, i64 1570, ptr @.str.2328) + call void @finch_panic(ptr @.str.2330, i64 1584, ptr @.str.2331) unreachable ok3738: - %t1208 = getelementptr inbounds %S.gen.Gen, ptr %t1206, i32 0, i32 17 - %t1209 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1208, i32 0, i32 1 - %t1210 = load i64, ptr %t1209 - store i64 0, ptr %a1211 - br label %for.cond3739 -for.cond3739: - %t1212 = load i64, ptr %a1211 - %t1213 = icmp slt i64 %t1212, %t1210 - br i1 %t1213, label %for.body3740, label %for.end3742 -for.body3740: - %t1214 = load ptr, ptr %a1 - %t1215 = icmp eq ptr %t1214, null - br i1 %t1215, label %panic3743, label %ok3744 -panic3743: - call void @finch_panic(ptr @.str.2329, i64 1571, ptr @.str.2330) + %t746 = getelementptr inbounds %S.gen.Gen, ptr %t744, i32 0, i32 17 + %t747 = getelementptr inbounds { ptr, i64, i64 }, ptr %t746, i32 0, i32 1 + %t748 = load ptr, ptr %a1 + %t749 = icmp eq ptr %t748, null + br i1 %t749, label %panic3739, label %ok3740 +panic3739: + call void @finch_panic(ptr @.str.2332, i64 1584, ptr @.str.2333) unreachable -ok3744: - %t1216 = getelementptr inbounds %S.gen.Gen, ptr %t1214, i32 0, i32 17 - %t1217 = load i64, ptr %a1211 - %t1218 = load { ptr, i64, i64 }, ptr %t1216 - %t1219 = extractvalue { ptr, i64, i64 } %t1218, 1 - %t1220 = icmp uge i64 %t1217, %t1219 - br i1 %t1220, label %range3745, label %inrange3746 -range3745: - call void @finch_panic_index(ptr @.str.2331, i64 1571, i64 %t1217, i64 %t1219) +ok3740: + %t750 = getelementptr inbounds %S.gen.Gen, ptr %t748, i32 0, i32 14 + %t751 = load { ptr, i64, i64 }, ptr %t750 + store { ptr, i64, i64 } %t751, ptr %a752 + call void @finch_str_copy(ptr %a753, ptr %a752) + %t754 = load { ptr, i64, i64 }, ptr %a753 + %t755 = insertvalue %S.gen.Template zeroinitializer, { ptr, i64, i64 } %t754, 0 + %t756 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t757 = load { ptr, i64, i64 }, ptr %t756 + store { ptr, i64, i64 } %t757, ptr %a758 + call void @finch_str_copy(ptr %a759, ptr %a758) + %t760 = load { ptr, i64, i64 }, ptr %a759 + %t761 = insertvalue %S.gen.Template %t755, { ptr, i64, i64 } %t760, 1 + %t762 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t763 = load { ptr, i64, i64 }, ptr %t762 + store { ptr, i64, i64 } %t763, ptr %a764 + call void @finch_str_copy(ptr %a765, ptr %a764) + %t766 = load { ptr, i64, i64 }, ptr %a765 + %t767 = insertvalue %S.gen.Template %t761, { ptr, i64, i64 } %t766, 2 + %t768 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 3 + %t769 = load { ptr, i64, i64 }, ptr %t768 + store { ptr, i64, i64 } %t769, ptr %a770 + call void @finch.copy.arr_str(ptr %a771, ptr %a770) + %t772 = load { ptr, i64, i64 }, ptr %a771 + %t773 = insertvalue %S.gen.Template %t767, { ptr, i64, i64 } %t772, 3 + %t774 = load i64, ptr %a629 + %t775 = insertvalue %S.gen.Template %t773, i64 %t774, 4 + %t776 = load i64, ptr %a663 + %t777 = insertvalue %S.gen.Template %t775, i64 %t776, 5 + %t778 = load i64, ptr %t747 + %t779 = add i64 %t778, 1 + call void @finch_arr_reserve(ptr %t746, i64 %t779, i64 ptrtoint (ptr getelementptr (%S.gen.Template, ptr null, i32 1) to i64)) + %t780 = load ptr, ptr %t746 + %t781 = getelementptr inbounds %S.gen.Template, ptr %t780, i64 %t778 + store %S.gen.Template %t777, ptr %t781 + store i64 %t779, ptr %t747 + call void @finch.drop.S_ast_Node(ptr %a686) + br label %for.step3712 +endif3722: + %t782 = load ptr, ptr %a1 + %t783 = icmp eq ptr %t782, null + br i1 %t783, label %panic3741, label %ok3742 +panic3741: + call void @finch_panic(ptr @.str.2334, i64 1587, ptr @.str.2335) unreachable -inrange3746: - %t1221 = extractvalue { ptr, i64, i64 } %t1218, 0 - %t1222 = getelementptr inbounds %S.gen.Template, ptr %t1221, i64 %t1217 - %t1223 = load %S.gen.Template, ptr %t1222 - store %S.gen.Template %t1223, ptr %a1224 - call void @finch.copy.S_gen_Template(ptr %a1225, ptr %a1224) - %t1226 = load %S.gen.Template, ptr %a1225 - store %S.gen.Template %t1226, ptr %a1227 - %t1228 = getelementptr inbounds %S.gen.Template, ptr %a1227, i32 0, i32 2 - %t1229 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1228, i32 0, i32 1 - %t1230 = load i64, ptr %t1229 - %t1231 = icmp sgt i64 %t1230, 0 - br label %logic.from3747 -logic.from3747: - br i1 %t1231, label %logic.rhs3748, label %logic.end3749 -logic.rhs3748: - %t1232 = getelementptr inbounds %S.gen.Template, ptr %a1227, i32 0, i32 7 - %t1233 = load i1, ptr %t1232 - %t1234 = xor i1 %t1233, true - br label %logic.rend3750 -logic.rend3750: - br label %logic.end3749 -logic.end3749: - %t1235 = phi i1 [ false, %logic.from3747 ], [ %t1234, %logic.rend3750 ] - br i1 %t1235, label %then3751, label %endif3753 -then3751: - %t1236 = load ptr, ptr %a1 - %t1237 = icmp eq ptr %t1236, null - br i1 %t1237, label %panic3754, label %ok3755 -panic3754: - call void @finch_panic(ptr @.str.2332, i64 1573, ptr @.str.2333) +ok3742: + %t784 = getelementptr inbounds %S.gen.Gen, ptr %t782, i32 0, i32 14 + %t785 = load { ptr, i64, i64 }, ptr %t784 + store { ptr, i64, i64 } %t785, ptr %a786 + call void @finch_str_copy(ptr %a787, ptr %a786) + %t788 = load { ptr, i64, i64 }, ptr %a787 + store { ptr, i64, i64 } %t788, ptr %a789 + store i1 false, ptr %a790 + %t791 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t792 = getelementptr inbounds { ptr, i64, i64 }, ptr %t791, i32 0, i32 1 + %t793 = load i64, ptr %t792 + %t794 = icmp sgt i64 %t793, 0 + br label %logic.from3743 +logic.from3743: + br i1 %t794, label %logic.rhs3744, label %logic.end3745 +logic.rhs3744: + %t795 = load ptr, ptr %a1 + %t796 = load ptr, ptr %a1 + %t797 = icmp eq ptr %t796, null + br i1 %t797, label %panic3746, label %ok3747 +panic3746: + call void @finch_panic(ptr @.str.2336, i64 1589, ptr @.str.2337) unreachable -ok3755: - %t1238 = getelementptr inbounds %S.gen.Gen, ptr %t1236, i32 0, i32 0 - %t1239 = getelementptr inbounds %S.gen.Template, ptr %a1227, i32 0, i32 4 - %t1240 = load i64, ptr %t1239 - %t1241 = load { ptr, i64, i64 }, ptr %t1238 - %t1242 = extractvalue { ptr, i64, i64 } %t1241, 1 - %t1243 = icmp uge i64 %t1240, %t1242 - br i1 %t1243, label %range3756, label %inrange3757 -range3756: - call void @finch_panic_index(ptr @.str.2334, i64 1573, i64 %t1240, i64 %t1242) +ok3747: + %t798 = getelementptr inbounds %S.gen.Gen, ptr %t796, i32 0, i32 14 + %t799 = load { ptr, i64, i64 }, ptr %t798 + %t800 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t801 = load { ptr, i64, i64 }, ptr %t800 + %t802 = call i64 @finch.gen.findEnum(ptr %t795, { ptr, i64, i64 } %t799, { ptr, i64, i64 } %t801) + %t803 = icmp sge i64 %t802, 0 + br label %logic.rend3748 +logic.rend3748: + br label %logic.end3745 +logic.end3745: + %t804 = phi i1 [ false, %logic.from3743 ], [ %t803, %logic.rend3748 ] + br i1 %t804, label %then3749, label %else3750 +then3749: + store i1 true, ptr %a790 + %t805 = load ptr, ptr %a1 + %t806 = load { ptr, i64, i64 }, ptr %a789 + %t807 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t808 = load { ptr, i64, i64 }, ptr %t807 + %t809 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t810 = load { ptr, i64, i64 }, ptr %t809 + %t811 = call i64 @finch.gen.findMethod(ptr %t805, { ptr, i64, i64 } %t806, { ptr, i64, i64 } %t808, { ptr, i64, i64 } %t810) + %t812 = icmp sge i64 %t811, 0 + br i1 %t812, label %then3752, label %endif3754 +then3752: + %t813 = load ptr, ptr %a1 + %t814 = load %S.ast.Node, ptr %a686 + %t815 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t816 = load { ptr, i64, i64 }, ptr %t815 + store { ptr, i64, i64 } { ptr @.str.2338, i64 11, i64 0 }, ptr %a818 + store { ptr, i64, i64 } %t816, ptr %a819 + call void @finch_str_concat(ptr %a817, ptr %a818, ptr %a819) + %t820 = load { ptr, i64, i64 }, ptr %a817 + store { ptr, i64, i64 } %t820, ptr %a822 + store { ptr, i64, i64 } { ptr @.str.2339, i64 1, i64 0 }, ptr %a823 + call void @finch_str_concat(ptr %a821, ptr %a822, ptr %a823) + store { ptr, i64, i64 } %t820, ptr %a824 + call void @finch_str_drop(ptr %a824) + %t825 = load { ptr, i64, i64 }, ptr %a821 + %t826 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t827 = load { ptr, i64, i64 }, ptr %t826 + store { ptr, i64, i64 } %t825, ptr %a829 + store { ptr, i64, i64 } %t827, ptr %a830 + call void @finch_str_concat(ptr %a828, ptr %a829, ptr %a830) + store { ptr, i64, i64 } %t825, ptr %a831 + call void @finch_str_drop(ptr %a831) + %t832 = load { ptr, i64, i64 }, ptr %a828 + store { ptr, i64, i64 } %t832, ptr %a834 + store { ptr, i64, i64 } { ptr @.str.2340, i64 17, i64 0 }, ptr %a835 + call void @finch_str_concat(ptr %a833, ptr %a834, ptr %a835) + store { ptr, i64, i64 } %t832, ptr %a836 + call void @finch_str_drop(ptr %a836) + %t837 = load { ptr, i64, i64 }, ptr %a833 + call void @finch.gen.fail(ptr %t813, %S.ast.Node %t814, { ptr, i64, i64 } %t837) + store { ptr, i64, i64 } %t837, ptr %a838 + call void @finch_str_drop(ptr %a838) + br label %endif3754 +endif3754: + br label %endif3751 +else3750: + %t839 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t840 = getelementptr inbounds { ptr, i64, i64 }, ptr %t839, i32 0, i32 1 + %t841 = load i64, ptr %t840 + %t842 = icmp sgt i64 %t841, 0 + br i1 %t842, label %then3755, label %else3756 +then3755: + %t843 = load ptr, ptr %a1 + %t844 = load ptr, ptr %a1 + %t845 = icmp eq ptr %t844, null + br i1 %t845, label %panic3758, label %ok3759 +panic3758: + call void @finch_panic(ptr @.str.2341, i64 1595, ptr @.str.2342) unreachable -inrange3757: - %t1244 = extractvalue { ptr, i64, i64 } %t1241, 0 - %t1245 = getelementptr inbounds %S.ast.Program, ptr %t1244, i64 %t1240 - %t1246 = getelementptr inbounds %S.ast.Program, ptr %t1245, i32 0, i32 8 - %t1247 = getelementptr inbounds %S.gen.Template, ptr %a1227, i32 0, i32 5 - %t1248 = load i64, ptr %t1247 - %t1249 = load { ptr, i64, i64 }, ptr %t1246 - %t1250 = extractvalue { ptr, i64, i64 } %t1249, 1 - %t1251 = icmp uge i64 %t1248, %t1250 - br i1 %t1251, label %range3758, label %inrange3759 -range3758: - call void @finch_panic_index(ptr @.str.2335, i64 1573, i64 %t1248, i64 %t1250) +ok3759: + %t846 = getelementptr inbounds %S.gen.Gen, ptr %t844, i32 0, i32 14 + %t847 = load { ptr, i64, i64 }, ptr %t846 + %t848 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t849 = load { ptr, i64, i64 }, ptr %t848 + %t850 = call i64 @finch.gen.findStruct(ptr %t843, { ptr, i64, i64 } %t847, { ptr, i64, i64 } %t849) + store i64 %t850, ptr %a851 + %t852 = load i64, ptr %a851 + %t853 = icmp slt i64 %t852, 0 + br label %logic.from3760 +logic.from3760: + br i1 %t853, label %logic.rhs3761, label %logic.end3762 +logic.rhs3761: + %t854 = load ptr, ptr %a1 + %t855 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t856 = load { ptr, i64, i64 }, ptr %t855 + %t857 = call i64 @finch.gen.findStruct(ptr %t854, { ptr, i64, i64 } { ptr @.str.2343, i64 1, i64 0 }, { ptr, i64, i64 } %t856) + %t858 = icmp sge i64 %t857, 0 + br label %logic.rend3763 +logic.rend3763: + br label %logic.end3762 +logic.end3762: + %t859 = phi i1 [ false, %logic.from3760 ], [ %t858, %logic.rend3763 ] + br i1 %t859, label %then3764, label %endif3766 +then3764: + %t860 = load ptr, ptr %a1 + %t861 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t862 = load { ptr, i64, i64 }, ptr %t861 + %t863 = call i64 @finch.gen.findStruct(ptr %t860, { ptr, i64, i64 } { ptr @.str.2344, i64 1, i64 0 }, { ptr, i64, i64 } %t862) + store i64 %t863, ptr %a851 + %t864 = load { ptr, i64, i64 }, ptr %a789 + store { ptr, i64, i64 } { ptr @.str.2345, i64 1, i64 0 }, ptr %a789 + store { ptr, i64, i64 } %t864, ptr %a865 + call void @finch_str_drop(ptr %a865) + br label %endif3766 +endif3766: + %t866 = load i64, ptr %a851 + %t867 = icmp slt i64 %t866, 0 + br i1 %t867, label %then3767, label %endif3769 +then3767: + %t868 = load ptr, ptr %a1 + %t869 = load %S.ast.Node, ptr %a686 + %t870 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t871 = load { ptr, i64, i64 }, ptr %t870 + store { ptr, i64, i64 } { ptr @.str.2346, i64 26, i64 0 }, ptr %a873 + store { ptr, i64, i64 } %t871, ptr %a874 + call void @finch_str_concat(ptr %a872, ptr %a873, ptr %a874) + %t875 = load { ptr, i64, i64 }, ptr %a872 + store { ptr, i64, i64 } %t875, ptr %a877 + store { ptr, i64, i64 } { ptr @.str.2347, i64 76, i64 0 }, ptr %a878 + call void @finch_str_concat(ptr %a876, ptr %a877, ptr %a878) + store { ptr, i64, i64 } %t875, ptr %a879 + call void @finch_str_drop(ptr %a879) + %t880 = load { ptr, i64, i64 }, ptr %a876 + call void @finch.gen.fail(ptr %t868, %S.ast.Node %t869, { ptr, i64, i64 } %t880) + store { ptr, i64, i64 } %t880, ptr %a881 + call void @finch_str_drop(ptr %a881) + br label %endif3769 +endif3769: + %t882 = load ptr, ptr %a1 + %t883 = load { ptr, i64, i64 }, ptr %a789 + %t884 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t885 = load { ptr, i64, i64 }, ptr %t884 + %t886 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t887 = load { ptr, i64, i64 }, ptr %t886 + %t888 = call i64 @finch.gen.findMethod(ptr %t882, { ptr, i64, i64 } %t883, { ptr, i64, i64 } %t885, { ptr, i64, i64 } %t887) + %t889 = icmp sge i64 %t888, 0 + br i1 %t889, label %then3770, label %endif3772 +then3770: + %t890 = load ptr, ptr %a1 + %t891 = load %S.ast.Node, ptr %a686 + %t892 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t893 = load { ptr, i64, i64 }, ptr %t892 + store { ptr, i64, i64 } { ptr @.str.2348, i64 11, i64 0 }, ptr %a895 + store { ptr, i64, i64 } %t893, ptr %a896 + call void @finch_str_concat(ptr %a894, ptr %a895, ptr %a896) + %t897 = load { ptr, i64, i64 }, ptr %a894 + store { ptr, i64, i64 } %t897, ptr %a899 + store { ptr, i64, i64 } { ptr @.str.2349, i64 1, i64 0 }, ptr %a900 + call void @finch_str_concat(ptr %a898, ptr %a899, ptr %a900) + store { ptr, i64, i64 } %t897, ptr %a901 + call void @finch_str_drop(ptr %a901) + %t902 = load { ptr, i64, i64 }, ptr %a898 + %t903 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t904 = load { ptr, i64, i64 }, ptr %t903 + store { ptr, i64, i64 } %t902, ptr %a906 + store { ptr, i64, i64 } %t904, ptr %a907 + call void @finch_str_concat(ptr %a905, ptr %a906, ptr %a907) + store { ptr, i64, i64 } %t902, ptr %a908 + call void @finch_str_drop(ptr %a908) + %t909 = load { ptr, i64, i64 }, ptr %a905 + store { ptr, i64, i64 } %t909, ptr %a911 + store { ptr, i64, i64 } { ptr @.str.2350, i64 17, i64 0 }, ptr %a912 + call void @finch_str_concat(ptr %a910, ptr %a911, ptr %a912) + store { ptr, i64, i64 } %t909, ptr %a913 + call void @finch_str_drop(ptr %a913) + %t914 = load { ptr, i64, i64 }, ptr %a910 + call void @finch.gen.fail(ptr %t890, %S.ast.Node %t891, { ptr, i64, i64 } %t914) + store { ptr, i64, i64 } %t914, ptr %a915 + call void @finch_str_drop(ptr %a915) + br label %endif3772 +endif3772: + %t916 = load ptr, ptr %a1 + %t917 = icmp eq ptr %t916, null + br i1 %t917, label %panic3773, label %ok3774 +panic3773: + call void @finch_panic(ptr @.str.2351, i64 1606, ptr @.str.2352) unreachable -inrange3759: - %t1252 = extractvalue { ptr, i64, i64 } %t1249, 0 - %t1253 = getelementptr inbounds %S.ast.Node, ptr %t1252, i64 %t1248 - %t1254 = load %S.ast.Node, ptr %t1253 - store %S.ast.Node %t1254, ptr %a1255 - call void @finch.copy.S_ast_Node(ptr %a1256, ptr %a1255) - %t1257 = load %S.ast.Node, ptr %a1256 - store %S.ast.Node %t1257, ptr %a1258 - %t1259 = load ptr, ptr %a1 - %t1260 = getelementptr inbounds %S.ast.Node, ptr %a1258, i32 0, i32 9 - %t1261 = getelementptr inbounds %S.ast.Node, ptr %a1258, i32 0, i32 9 - %t1262 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1261, i32 0, i32 1 - %t1263 = load i64, ptr %t1262 - %t1264 = sub i64 %t1263, 1 - %t1265 = load { ptr, i64, i64 }, ptr %t1260 - %t1266 = extractvalue { ptr, i64, i64 } %t1265, 1 - %t1267 = icmp uge i64 %t1264, %t1266 - br i1 %t1267, label %range3760, label %inrange3761 -range3760: - call void @finch_panic_index(ptr @.str.2337, i64 1574, i64 %t1264, i64 %t1266) +ok3774: + %t918 = getelementptr inbounds %S.gen.Gen, ptr %t916, i32 0, i32 16 + %t919 = load i64, ptr %a851 + %t920 = load { ptr, i64, i64 }, ptr %t918 + %t921 = extractvalue { ptr, i64, i64 } %t920, 1 + %t922 = icmp uge i64 %t919, %t921 + br i1 %t922, label %range3775, label %inrange3776 +range3775: + call void @finch_panic_index(ptr @.str.2353, i64 1606, i64 %t919, i64 %t921) unreachable -inrange3761: - %t1268 = extractvalue { ptr, i64, i64 } %t1265, 0 - %t1269 = getelementptr inbounds %S.ast.Node, ptr %t1268, i64 %t1264 - %t1270 = load %S.ast.Node, ptr %t1269 - %t1271 = call i1 @finch.gen.mutates(ptr %t1259, { ptr, i64, i64 } { ptr @.str.2336, i64 4, i64 0 }, %S.ast.Node %t1270) - br i1 %t1271, label %then3762, label %endif3764 -then3762: - %t1272 = load ptr, ptr %a1 - %t1273 = icmp eq ptr %t1272, null - br i1 %t1273, label %panic3765, label %ok3766 -panic3765: - call void @finch_panic(ptr @.str.2338, i64 1575, ptr @.str.2339) - unreachable -ok3766: - %t1274 = getelementptr inbounds %S.gen.Gen, ptr %t1272, i32 0, i32 17 - %t1275 = load i64, ptr %a1211 - %t1276 = load { ptr, i64, i64 }, ptr %t1274 - %t1277 = extractvalue { ptr, i64, i64 } %t1276, 1 - %t1278 = icmp uge i64 %t1275, %t1277 - br i1 %t1278, label %range3767, label %inrange3768 -range3767: - call void @finch_panic_index(ptr @.str.2340, i64 1575, i64 %t1275, i64 %t1277) - unreachable -inrange3768: - %t1279 = extractvalue { ptr, i64, i64 } %t1276, 0 - %t1280 = getelementptr inbounds %S.gen.Template, ptr %t1279, i64 %t1275 - %t1281 = getelementptr inbounds %S.gen.Template, ptr %t1280, i32 0, i32 7 - store i1 true, ptr %t1281 - %t1282 = load ptr, ptr %a1 - %t1283 = icmp eq ptr %t1282, null - br i1 %t1283, label %panic3769, label %ok3770 -panic3769: - call void @finch_panic(ptr @.str.2341, i64 1576, ptr @.str.2342) - unreachable -ok3770: - %t1284 = getelementptr inbounds %S.gen.Gen, ptr %t1282, i32 0, i32 23 - %t1285 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1284, i32 0, i32 1 - %t1286 = getelementptr inbounds %S.gen.Template, ptr %a1227, i32 0, i32 1 - %t1287 = load { ptr, i64, i64 }, ptr %t1286 - store { ptr, i64, i64 } %t1287, ptr %a1288 - call void @finch_str_copy(ptr %a1289, ptr %a1288) - %t1290 = load { ptr, i64, i64 }, ptr %a1289 - %t1291 = load i64, ptr %t1285 - %t1292 = add i64 %t1291, 1 - call void @finch_arr_reserve(ptr %t1284, i64 %t1292, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) - %t1293 = load ptr, ptr %t1284 - %t1294 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1293, i64 %t1291 - store { ptr, i64, i64 } %t1290, ptr %t1294 - store i64 %t1292, ptr %t1285 - store i1 true, ptr %a1082 - br label %endif3764 -endif3764: - call void @finch.drop.S_ast_Node(ptr %a1258) - br label %endif3753 -endif3753: - call void @finch.drop.S_gen_Template(ptr %a1227) - br label %for.step3741 -for.step3741: - %t1295 = load i64, ptr %a1211 - %t1296 = add i64 %t1295, 1 - store i64 %t1296, ptr %a1211 - br label %for.cond3739 -for.end3742: - br label %while.cond3684 -while.end3686: - %t1297 = load ptr, ptr %a1 - %t1298 = icmp eq ptr %t1297, null - br i1 %t1298, label %panic3771, label %ok3772 -panic3771: - call void @finch_panic(ptr @.str.2343, i64 1583, ptr @.str.2344) - unreachable -ok3772: - %t1299 = getelementptr inbounds %S.gen.Gen, ptr %t1297, i32 0, i32 15 - %t1300 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1299, i32 0, i32 1 - %t1301 = load i64, ptr %t1300 - store i64 0, ptr %a1302 - br label %for.cond3773 -for.cond3773: - %t1303 = load i64, ptr %a1302 - %t1304 = icmp slt i64 %t1303, %t1301 - br i1 %t1304, label %for.body3774, label %for.end3776 -for.body3774: - %t1305 = load ptr, ptr %a1 - %t1306 = icmp eq ptr %t1305, null - br i1 %t1306, label %panic3777, label %ok3778 -panic3777: - call void @finch_panic(ptr @.str.2345, i64 1584, ptr @.str.2346) - unreachable -ok3778: - %t1307 = getelementptr inbounds %S.gen.Gen, ptr %t1305, i32 0, i32 0 - %t1308 = load ptr, ptr %a1 - %t1309 = icmp eq ptr %t1308, null - br i1 %t1309, label %panic3779, label %ok3780 -panic3779: - call void @finch_panic(ptr @.str.2347, i64 1584, ptr @.str.2348) - unreachable -ok3780: - %t1310 = getelementptr inbounds %S.gen.Gen, ptr %t1308, i32 0, i32 15 - %t1311 = load i64, ptr %a1302 - %t1312 = load { ptr, i64, i64 }, ptr %t1310 - %t1313 = extractvalue { ptr, i64, i64 } %t1312, 1 - %t1314 = icmp uge i64 %t1311, %t1313 - br i1 %t1314, label %range3781, label %inrange3782 -range3781: - call void @finch_panic_index(ptr @.str.2349, i64 1584, i64 %t1311, i64 %t1313) - unreachable -inrange3782: - %t1315 = extractvalue { ptr, i64, i64 } %t1312, 0 - %t1316 = getelementptr inbounds %S.gen.FnSig, ptr %t1315, i64 %t1311 - %t1317 = getelementptr inbounds %S.gen.FnSig, ptr %t1316, i32 0, i32 16 - %t1318 = load i64, ptr %t1317 - %t1319 = load { ptr, i64, i64 }, ptr %t1307 - %t1320 = extractvalue { ptr, i64, i64 } %t1319, 1 - %t1321 = icmp uge i64 %t1318, %t1320 - br i1 %t1321, label %range3783, label %inrange3784 -range3783: - call void @finch_panic_index(ptr @.str.2350, i64 1584, i64 %t1318, i64 %t1320) - unreachable -inrange3784: - %t1322 = extractvalue { ptr, i64, i64 } %t1319, 0 - %t1323 = getelementptr inbounds %S.ast.Program, ptr %t1322, i64 %t1318 - %t1324 = getelementptr inbounds %S.ast.Program, ptr %t1323, i32 0, i32 8 - %t1325 = load ptr, ptr %a1 - %t1326 = icmp eq ptr %t1325, null - br i1 %t1326, label %panic3785, label %ok3786 +inrange3776: + %t923 = extractvalue { ptr, i64, i64 } %t920, 0 + %t924 = getelementptr inbounds %S.gen.StructDef, ptr %t923, i64 %t919 + %t925 = getelementptr inbounds %S.gen.StructDef, ptr %t924, i32 0, i32 11 + %t926 = getelementptr inbounds { ptr, i64, i64 }, ptr %t925, i32 0, i32 1 + %t927 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t928 = load { ptr, i64, i64 }, ptr %t927 + store i64 -1, ptr %a929 + %t930 = load i64, ptr %t926 + %t931 = load ptr, ptr %t925 + store i64 0, ptr %a932 + br label %find.cond3777 +find.cond3777: + %t933 = load i64, ptr %a932 + %t934 = icmp slt i64 %t933, %t930 + br i1 %t934, label %find.body3778, label %find.end3781 +find.body3778: + %t935 = getelementptr inbounds { ptr, i64, i64 }, ptr %t931, i64 %t933 + %t936 = load { ptr, i64, i64 }, ptr %t935 + store { ptr, i64, i64 } %t936, ptr %a937 + store { ptr, i64, i64 } %t928, ptr %a938 + %t939 = call i32 @finch_str_eq(ptr %a937, ptr %a938) + %t940 = icmp ne i32 %t939, 0 + br i1 %t940, label %find.hit3779, label %find.next3780 +find.hit3779: + store i64 %t933, ptr %a929 + br label %find.end3781 +find.next3780: + %t941 = add i64 %t933, 1 + store i64 %t941, ptr %a932 + br label %find.cond3777 +find.end3781: + %t942 = load i64, ptr %a929 + %t943 = icmp sge i64 %t942, 0 + br i1 %t943, label %then3782, label %endif3784 +then3782: + %t944 = load ptr, ptr %a1 + %t945 = load %S.ast.Node, ptr %a686 + %t946 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t947 = load { ptr, i64, i64 }, ptr %t946 + store { ptr, i64, i64 } { ptr @.str.2354, i64 11, i64 0 }, ptr %a949 + store { ptr, i64, i64 } %t947, ptr %a950 + call void @finch_str_concat(ptr %a948, ptr %a949, ptr %a950) + %t951 = load { ptr, i64, i64 }, ptr %a948 + store { ptr, i64, i64 } %t951, ptr %a953 + store { ptr, i64, i64 } { ptr @.str.2355, i64 28, i64 0 }, ptr %a954 + call void @finch_str_concat(ptr %a952, ptr %a953, ptr %a954) + store { ptr, i64, i64 } %t951, ptr %a955 + call void @finch_str_drop(ptr %a955) + %t956 = load { ptr, i64, i64 }, ptr %a952 + %t957 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t958 = load { ptr, i64, i64 }, ptr %t957 + store { ptr, i64, i64 } %t956, ptr %a960 + store { ptr, i64, i64 } %t958, ptr %a961 + call void @finch_str_concat(ptr %a959, ptr %a960, ptr %a961) + store { ptr, i64, i64 } %t956, ptr %a962 + call void @finch_str_drop(ptr %a962) + %t963 = load { ptr, i64, i64 }, ptr %a959 + store { ptr, i64, i64 } %t963, ptr %a965 + store { ptr, i64, i64 } { ptr @.str.2356, i64 1, i64 0 }, ptr %a966 + call void @finch_str_concat(ptr %a964, ptr %a965, ptr %a966) + store { ptr, i64, i64 } %t963, ptr %a967 + call void @finch_str_drop(ptr %a967) + %t968 = load { ptr, i64, i64 }, ptr %a964 + call void @finch.gen.fail(ptr %t944, %S.ast.Node %t945, { ptr, i64, i64 } %t968) + store { ptr, i64, i64 } %t968, ptr %a969 + call void @finch_str_drop(ptr %a969) + br label %endif3784 +endif3784: + br label %endif3757 +else3756: + %t970 = load ptr, ptr %a1 + %t971 = load ptr, ptr %a1 + %t972 = icmp eq ptr %t971, null + br i1 %t972, label %panic3785, label %ok3786 panic3785: - call void @finch_panic(ptr @.str.2351, i64 1584, ptr @.str.2352) + call void @finch_panic(ptr @.str.2357, i64 1610, ptr @.str.2358) unreachable ok3786: - %t1327 = getelementptr inbounds %S.gen.Gen, ptr %t1325, i32 0, i32 15 - %t1328 = load i64, ptr %a1302 - %t1329 = load { ptr, i64, i64 }, ptr %t1327 - %t1330 = extractvalue { ptr, i64, i64 } %t1329, 1 - %t1331 = icmp uge i64 %t1328, %t1330 - br i1 %t1331, label %range3787, label %inrange3788 -range3787: - call void @finch_panic_index(ptr @.str.2353, i64 1584, i64 %t1328, i64 %t1330) - unreachable -inrange3788: - %t1332 = extractvalue { ptr, i64, i64 } %t1329, 0 - %t1333 = getelementptr inbounds %S.gen.FnSig, ptr %t1332, i64 %t1328 - %t1334 = getelementptr inbounds %S.gen.FnSig, ptr %t1333, i32 0, i32 17 - %t1335 = load i64, ptr %t1334 - %t1336 = load { ptr, i64, i64 }, ptr %t1324 - %t1337 = extractvalue { ptr, i64, i64 } %t1336, 1 - %t1338 = icmp uge i64 %t1335, %t1337 - br i1 %t1338, label %range3789, label %inrange3790 -range3789: - call void @finch_panic_index(ptr @.str.2354, i64 1584, i64 %t1335, i64 %t1337) - unreachable -inrange3790: - %t1339 = extractvalue { ptr, i64, i64 } %t1336, 0 - %t1340 = getelementptr inbounds %S.ast.Node, ptr %t1339, i64 %t1335 - %t1341 = load %S.ast.Node, ptr %t1340 - store %S.ast.Node %t1341, ptr %a1342 - call void @finch.copy.S_ast_Node(ptr %a1343, ptr %a1342) - %t1344 = load %S.ast.Node, ptr %a1343 - store %S.ast.Node %t1344, ptr %a1345 - %t1346 = getelementptr inbounds %S.ast.Node, ptr %a1345, i32 0, i32 9 - %t1347 = getelementptr inbounds %S.ast.Node, ptr %a1345, i32 0, i32 9 - %t1348 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1347, i32 0, i32 1 - %t1349 = load i64, ptr %t1348 - %t1350 = sub i64 %t1349, 1 - %t1351 = load { ptr, i64, i64 }, ptr %t1346 - %t1352 = extractvalue { ptr, i64, i64 } %t1351, 1 - %t1353 = icmp uge i64 %t1350, %t1352 - br i1 %t1353, label %range3791, label %inrange3792 -range3791: - call void @finch_panic_index(ptr @.str.2355, i64 1585, i64 %t1350, i64 %t1352) - unreachable -inrange3792: - %t1354 = extractvalue { ptr, i64, i64 } %t1351, 0 - %t1355 = getelementptr inbounds %S.ast.Node, ptr %t1354, i64 %t1350 - %t1356 = load %S.ast.Node, ptr %t1355 - store %S.ast.Node %t1356, ptr %a1357 - call void @finch.copy.S_ast_Node(ptr %a1358, ptr %a1357) - %t1359 = load %S.ast.Node, ptr %a1358 - store %S.ast.Node %t1359, ptr %a1360 - %t1361 = load ptr, ptr %a1 - %t1362 = icmp eq ptr %t1361, null - br i1 %t1362, label %panic3793, label %ok3794 + %t973 = getelementptr inbounds %S.gen.Gen, ptr %t971, i32 0, i32 14 + %t974 = load { ptr, i64, i64 }, ptr %t973 + %t975 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t976 = load { ptr, i64, i64 }, ptr %t975 + %t977 = call i64 @finch.gen.findFn(ptr %t970, { ptr, i64, i64 } %t974, { ptr, i64, i64 } %t976) + %t978 = icmp sge i64 %t977, 0 + br i1 %t978, label %then3787, label %endif3789 +then3787: + %t979 = load ptr, ptr %a1 + %t980 = load %S.ast.Node, ptr %a686 + %t981 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t982 = load { ptr, i64, i64 }, ptr %t981 + store { ptr, i64, i64 } { ptr @.str.2359, i64 10, i64 0 }, ptr %a984 + store { ptr, i64, i64 } %t982, ptr %a985 + call void @finch_str_concat(ptr %a983, ptr %a984, ptr %a985) + %t986 = load { ptr, i64, i64 }, ptr %a983 + store { ptr, i64, i64 } %t986, ptr %a988 + store { ptr, i64, i64 } { ptr @.str.2360, i64 18, i64 0 }, ptr %a989 + call void @finch_str_concat(ptr %a987, ptr %a988, ptr %a989) + store { ptr, i64, i64 } %t986, ptr %a990 + call void @finch_str_drop(ptr %a990) + %t991 = load { ptr, i64, i64 }, ptr %a987 + call void @finch.gen.fail(ptr %t979, %S.ast.Node %t980, { ptr, i64, i64 } %t991) + store { ptr, i64, i64 } %t991, ptr %a992 + call void @finch_str_drop(ptr %a992) + br label %endif3789 +endif3789: + %t993 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t994 = load { ptr, i64, i64 }, ptr %t993 + %t995 = call i1 @finch.gen.isBuiltin({ ptr, i64, i64 } %t994) + br i1 %t995, label %then3790, label %endif3792 +then3790: + %t996 = load ptr, ptr %a1 + %t997 = load %S.ast.Node, ptr %a686 + %t998 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t999 = load { ptr, i64, i64 }, ptr %t998 + store { ptr, i64, i64 } { ptr @.str.2361, i64 1, i64 0 }, ptr %a1001 + store { ptr, i64, i64 } %t999, ptr %a1002 + call void @finch_str_concat(ptr %a1000, ptr %a1001, ptr %a1002) + %t1003 = load { ptr, i64, i64 }, ptr %a1000 + store { ptr, i64, i64 } %t1003, ptr %a1005 + store { ptr, i64, i64 } { ptr @.str.2362, i64 43, i64 0 }, ptr %a1006 + call void @finch_str_concat(ptr %a1004, ptr %a1005, ptr %a1006) + store { ptr, i64, i64 } %t1003, ptr %a1007 + call void @finch_str_drop(ptr %a1007) + %t1008 = load { ptr, i64, i64 }, ptr %a1004 + call void @finch.gen.fail(ptr %t996, %S.ast.Node %t997, { ptr, i64, i64 } %t1008) + store { ptr, i64, i64 } %t1008, ptr %a1009 + call void @finch_str_drop(ptr %a1009) + br label %endif3792 +endif3792: + br label %endif3757 +endif3757: + br label %endif3751 +endif3751: + %t1010 = load ptr, ptr %a1 + %t1011 = icmp eq ptr %t1010, null + br i1 %t1011, label %panic3793, label %ok3794 panic3793: - call void @finch_panic(ptr @.str.2356, i64 1586, ptr @.str.2357) + call void @finch_panic(ptr @.str.2363, i64 1617, ptr @.str.2364) unreachable ok3794: - %t1363 = getelementptr inbounds %S.gen.Gen, ptr %t1361, i32 0, i32 15 - %t1364 = load i64, ptr %a1302 - %t1365 = load { ptr, i64, i64 }, ptr %t1363 - %t1366 = extractvalue { ptr, i64, i64 } %t1365, 1 - %t1367 = icmp uge i64 %t1364, %t1366 - br i1 %t1367, label %range3795, label %inrange3796 -range3795: - call void @finch_panic_index(ptr @.str.2358, i64 1586, i64 %t1364, i64 %t1366) + %t1012 = getelementptr inbounds %S.gen.Gen, ptr %t1010, i32 0, i32 14 + %t1013 = load { ptr, i64, i64 }, ptr %t1012 + store { ptr, i64, i64 } %t1013, ptr %a1014 + call void @finch_str_copy(ptr %a1015, ptr %a1014) + %t1016 = load { ptr, i64, i64 }, ptr %a1015 + %t1017 = insertvalue %S.gen.FnSig zeroinitializer, { ptr, i64, i64 } %t1016, 0 + %t1018 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t1019 = load { ptr, i64, i64 }, ptr %t1018 + store { ptr, i64, i64 } %t1019, ptr %a1020 + call void @finch_str_copy(ptr %a1021, ptr %a1020) + %t1022 = load { ptr, i64, i64 }, ptr %a1021 + %t1023 = insertvalue %S.gen.FnSig %t1017, { ptr, i64, i64 } %t1022, 1 + %t1024 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t1025 = load { ptr, i64, i64 }, ptr %t1024 + store { ptr, i64, i64 } %t1025, ptr %a1026 + call void @finch_str_copy(ptr %a1027, ptr %a1026) + %t1028 = load { ptr, i64, i64 }, ptr %a1027 + %t1029 = insertvalue %S.gen.FnSig %t1023, { ptr, i64, i64 } %t1028, 2 + %t1030 = load { ptr, i64, i64 }, ptr %a789 + store { ptr, i64, i64 } %t1030, ptr %a1031 + call void @finch_str_copy(ptr %a1032, ptr %a1031) + %t1033 = load { ptr, i64, i64 }, ptr %a1032 + %t1034 = insertvalue %S.gen.FnSig %t1029, { ptr, i64, i64 } %t1033, 3 + %t1035 = load i1, ptr %a790 + %t1036 = insertvalue %S.gen.FnSig %t1034, i1 %t1035, 4 + %t1037 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 8 + %t1038 = load i1, ptr %t1037 + %t1039 = insertvalue %S.gen.FnSig %t1036, i1 %t1038, 5 + %t1040 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 7 + %t1041 = load i1, ptr %t1040 + %t1042 = insertvalue %S.gen.FnSig %t1039, i1 %t1041, 9 + %t1043 = load i64, ptr %a629 + %t1044 = insertvalue %S.gen.FnSig %t1042, i64 %t1043, 16 + %t1045 = load i64, ptr %a663 + %t1046 = insertvalue %S.gen.FnSig %t1044, i64 %t1045, 17 + store %S.gen.FnSig %t1046, ptr %a1047 + %t1048 = load ptr, ptr %a1 + %t1049 = icmp eq ptr %t1048, null + br i1 %t1049, label %panic3795, label %ok3796 +panic3795: + call void @finch_panic(ptr @.str.2366, i64 1618, ptr @.str.2367) unreachable -inrange3796: - %t1368 = extractvalue { ptr, i64, i64 } %t1365, 0 - %t1369 = getelementptr inbounds %S.gen.FnSig, ptr %t1368, i64 %t1364 - %t1370 = getelementptr inbounds %S.gen.FnSig, ptr %t1369, i32 0, i32 13 - %t1371 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1370, i32 0, i32 1 - %t1372 = load i64, ptr %t1371 - store i64 0, ptr %a1373 - br label %for.cond3797 -for.cond3797: - %t1374 = load i64, ptr %a1373 - %t1375 = icmp slt i64 %t1374, %t1372 - br i1 %t1375, label %for.body3798, label %for.end3800 -for.body3798: - %t1376 = load ptr, ptr %a1 - %t1377 = icmp eq ptr %t1376, null - br i1 %t1377, label %panic3801, label %ok3802 -panic3801: - call void @finch_panic(ptr @.str.2359, i64 1587, ptr @.str.2360) +ok3796: + %t1050 = getelementptr inbounds %S.gen.Gen, ptr %t1048, i32 0, i32 14 + %t1051 = load { ptr, i64, i64 }, ptr %t1050 + %t1052 = call { ptr, i64, i64 } @finch.gen.modName({ ptr, i64, i64 } %t1051) + store { ptr, i64, i64 } { ptr @.str.2365, i64 7, i64 0 }, ptr %a1054 + store { ptr, i64, i64 } %t1052, ptr %a1055 + call void @finch_str_concat(ptr %a1053, ptr %a1054, ptr %a1055) + store { ptr, i64, i64 } %t1052, ptr %a1056 + call void @finch_str_drop(ptr %a1056) + %t1057 = load { ptr, i64, i64 }, ptr %a1053 + store { ptr, i64, i64 } %t1057, ptr %a1059 + store { ptr, i64, i64 } { ptr @.str.2368, i64 1, i64 0 }, ptr %a1060 + call void @finch_str_concat(ptr %a1058, ptr %a1059, ptr %a1060) + store { ptr, i64, i64 } %t1057, ptr %a1061 + call void @finch_str_drop(ptr %a1061) + %t1062 = load { ptr, i64, i64 }, ptr %a1058 + %t1063 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t1064 = load { ptr, i64, i64 }, ptr %t1063 + store { ptr, i64, i64 } %t1062, ptr %a1066 + store { ptr, i64, i64 } %t1064, ptr %a1067 + call void @finch_str_concat(ptr %a1065, ptr %a1066, ptr %a1067) + store { ptr, i64, i64 } %t1062, ptr %a1068 + call void @finch_str_drop(ptr %a1068) + %t1069 = load { ptr, i64, i64 }, ptr %a1065 + %t1070 = getelementptr inbounds %S.gen.FnSig, ptr %a1047, i32 0, i32 11 + %t1071 = load { ptr, i64, i64 }, ptr %t1070 + store { ptr, i64, i64 } %t1069, ptr %t1070 + store { ptr, i64, i64 } %t1071, ptr %a1072 + call void @finch_str_drop(ptr %a1072) + %t1073 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t1074 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1073, i32 0, i32 1 + %t1075 = load i64, ptr %t1074 + %t1076 = icmp sgt i64 %t1075, 0 + br i1 %t1076, label %then3797, label %endif3799 +then3797: + %t1077 = load ptr, ptr %a1 + %t1078 = icmp eq ptr %t1077, null + br i1 %t1078, label %panic3800, label %ok3801 +panic3800: + call void @finch_panic(ptr @.str.2370, i64 1620, ptr @.str.2371) unreachable -ok3802: - %t1378 = getelementptr inbounds %S.gen.Gen, ptr %t1376, i32 0, i32 15 - %t1379 = load i64, ptr %a1302 - %t1380 = load { ptr, i64, i64 }, ptr %t1378 - %t1381 = extractvalue { ptr, i64, i64 } %t1380, 1 - %t1382 = icmp uge i64 %t1379, %t1381 - br i1 %t1382, label %range3803, label %inrange3804 -range3803: - call void @finch_panic_index(ptr @.str.2361, i64 1587, i64 %t1379, i64 %t1381) +ok3801: + %t1079 = getelementptr inbounds %S.gen.Gen, ptr %t1077, i32 0, i32 14 + %t1080 = load { ptr, i64, i64 }, ptr %t1079 + %t1081 = call { ptr, i64, i64 } @finch.gen.modName({ ptr, i64, i64 } %t1080) + store { ptr, i64, i64 } { ptr @.str.2369, i64 7, i64 0 }, ptr %a1083 + store { ptr, i64, i64 } %t1081, ptr %a1084 + call void @finch_str_concat(ptr %a1082, ptr %a1083, ptr %a1084) + store { ptr, i64, i64 } %t1081, ptr %a1085 + call void @finch_str_drop(ptr %a1085) + %t1086 = load { ptr, i64, i64 }, ptr %a1082 + store { ptr, i64, i64 } %t1086, ptr %a1088 + store { ptr, i64, i64 } { ptr @.str.2372, i64 1, i64 0 }, ptr %a1089 + call void @finch_str_concat(ptr %a1087, ptr %a1088, ptr %a1089) + store { ptr, i64, i64 } %t1086, ptr %a1090 + call void @finch_str_drop(ptr %a1090) + %t1091 = load { ptr, i64, i64 }, ptr %a1087 + %t1092 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t1093 = load { ptr, i64, i64 }, ptr %t1092 + store { ptr, i64, i64 } %t1091, ptr %a1095 + store { ptr, i64, i64 } %t1093, ptr %a1096 + call void @finch_str_concat(ptr %a1094, ptr %a1095, ptr %a1096) + store { ptr, i64, i64 } %t1091, ptr %a1097 + call void @finch_str_drop(ptr %a1097) + %t1098 = load { ptr, i64, i64 }, ptr %a1094 + store { ptr, i64, i64 } %t1098, ptr %a1100 + store { ptr, i64, i64 } { ptr @.str.2373, i64 1, i64 0 }, ptr %a1101 + call void @finch_str_concat(ptr %a1099, ptr %a1100, ptr %a1101) + store { ptr, i64, i64 } %t1098, ptr %a1102 + call void @finch_str_drop(ptr %a1102) + %t1103 = load { ptr, i64, i64 }, ptr %a1099 + %t1104 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t1105 = load { ptr, i64, i64 }, ptr %t1104 + store { ptr, i64, i64 } %t1103, ptr %a1107 + store { ptr, i64, i64 } %t1105, ptr %a1108 + call void @finch_str_concat(ptr %a1106, ptr %a1107, ptr %a1108) + store { ptr, i64, i64 } %t1103, ptr %a1109 + call void @finch_str_drop(ptr %a1109) + %t1110 = load { ptr, i64, i64 }, ptr %a1106 + %t1111 = getelementptr inbounds %S.gen.FnSig, ptr %a1047, i32 0, i32 11 + %t1112 = load { ptr, i64, i64 }, ptr %t1111 + store { ptr, i64, i64 } %t1110, ptr %t1111 + store { ptr, i64, i64 } %t1112, ptr %a1113 + call void @finch_str_drop(ptr %a1113) + br label %endif3799 +endif3799: + %t1114 = load ptr, ptr %a1 + %t1115 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 5 + %t1116 = load %S.ast.Type, ptr %t1115 + %t1117 = load %S.ast.Node, ptr %a686 + %t1118 = call %S.ast.Type @finch.gen.resolve(ptr %t1114, %S.ast.Type %t1116, %S.ast.Node %t1117) + %t1119 = getelementptr inbounds %S.gen.FnSig, ptr %a1047, i32 0, i32 12 + %t1120 = load %S.ast.Type, ptr %t1119 + store %S.ast.Type %t1118, ptr %t1119 + store %S.ast.Type %t1120, ptr %a1121 + call void @finch.drop.S_ast_Type(ptr %a1121) + %t1122 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 9 + %t1123 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1122, i32 0, i32 1 + %t1124 = load i64, ptr %t1123 + %t1125 = sub i64 %t1124, 1 + store i64 0, ptr %a1126 + br label %for.cond3802 +for.cond3802: + %t1127 = load i64, ptr %a1126 + %t1128 = icmp slt i64 %t1127, %t1125 + br i1 %t1128, label %for.body3803, label %for.end3805 +for.body3803: + %t1129 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 9 + %t1130 = load i64, ptr %a1126 + %t1131 = load { ptr, i64, i64 }, ptr %t1129 + %t1132 = extractvalue { ptr, i64, i64 } %t1131, 1 + %t1133 = icmp uge i64 %t1130, %t1132 + br i1 %t1133, label %range3806, label %inrange3807 +range3806: + call void @finch_panic_index(ptr @.str.2374, i64 1624, i64 %t1130, i64 %t1132) unreachable -inrange3804: - %t1383 = extractvalue { ptr, i64, i64 } %t1380, 0 - %t1384 = getelementptr inbounds %S.gen.FnSig, ptr %t1383, i64 %t1379 - %t1385 = getelementptr inbounds %S.gen.FnSig, ptr %t1384, i32 0, i32 13 - %t1386 = load i64, ptr %a1373 - %t1387 = load { ptr, i64, i64 }, ptr %t1385 - %t1388 = extractvalue { ptr, i64, i64 } %t1387, 1 - %t1389 = icmp uge i64 %t1386, %t1388 - br i1 %t1389, label %range3805, label %inrange3806 -range3805: - call void @finch_panic_index(ptr @.str.2362, i64 1587, i64 %t1386, i64 %t1388) +inrange3807: + %t1134 = extractvalue { ptr, i64, i64 } %t1131, 0 + %t1135 = getelementptr inbounds %S.ast.Node, ptr %t1134, i64 %t1130 + %t1136 = getelementptr inbounds %S.ast.Node, ptr %t1135, i32 0, i32 1 + %t1137 = load { ptr, i64, i64 }, ptr %t1136 + store { ptr, i64, i64 } %t1137, ptr %a1138 + store { ptr, i64, i64 } { ptr @.str.2375, i64 4, i64 0 }, ptr %a1139 + %t1140 = call i32 @finch_str_eq(ptr %a1138, ptr %a1139) + %t1141 = icmp ne i32 %t1140, 0 + br label %logic.from3808 +logic.from3808: + br i1 %t1141, label %logic.rhs3809, label %logic.end3810 +logic.rhs3809: + %t1142 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t1143 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1142, i32 0, i32 1 + %t1144 = load i64, ptr %t1143 + %t1145 = icmp sgt i64 %t1144, 0 + br label %logic.rend3811 +logic.rend3811: + br label %logic.end3810 +logic.end3810: + %t1146 = phi i1 [ false, %logic.from3808 ], [ %t1145, %logic.rend3811 ] + br i1 %t1146, label %then3812, label %endif3814 +then3812: + %t1147 = load ptr, ptr %a1 + %t1148 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 9 + %t1149 = load i64, ptr %a1126 + %t1150 = load { ptr, i64, i64 }, ptr %t1148 + %t1151 = extractvalue { ptr, i64, i64 } %t1150, 1 + %t1152 = icmp uge i64 %t1149, %t1151 + br i1 %t1152, label %range3815, label %inrange3816 +range3815: + call void @finch_panic_index(ptr @.str.2376, i64 1625, i64 %t1149, i64 %t1151) unreachable -inrange3806: - %t1390 = extractvalue { ptr, i64, i64 } %t1387, 0 - %t1391 = getelementptr inbounds %S.ast.Type, ptr %t1390, i64 %t1386 - %t1392 = load %S.ast.Type, ptr %t1391 - store %S.ast.Type %t1392, ptr %a1393 - call void @finch.copy.S_ast_Type(ptr %a1394, ptr %a1393) - %t1395 = load %S.ast.Type, ptr %a1394 - store %S.ast.Type %t1395, ptr %a1396 - %t1397 = load ptr, ptr %a1 - %t1398 = icmp eq ptr %t1397, null - br i1 %t1398, label %panic3807, label %ok3808 -panic3807: - call void @finch_panic(ptr @.str.2363, i64 1588, ptr @.str.2364) +inrange3816: + %t1153 = extractvalue { ptr, i64, i64 } %t1150, 0 + %t1154 = getelementptr inbounds %S.ast.Node, ptr %t1153, i64 %t1149 + %t1155 = load %S.ast.Node, ptr %t1154 + %t1156 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t1157 = load { ptr, i64, i64 }, ptr %t1156 + store { ptr, i64, i64 } { ptr @.str.2377, i64 22, i64 0 }, ptr %a1159 + store { ptr, i64, i64 } %t1157, ptr %a1160 + call void @finch_str_concat(ptr %a1158, ptr %a1159, ptr %a1160) + %t1161 = load { ptr, i64, i64 }, ptr %a1158 + store { ptr, i64, i64 } %t1161, ptr %a1163 + store { ptr, i64, i64 } { ptr @.str.2378, i64 24, i64 0 }, ptr %a1164 + call void @finch_str_concat(ptr %a1162, ptr %a1163, ptr %a1164) + store { ptr, i64, i64 } %t1161, ptr %a1165 + call void @finch_str_drop(ptr %a1165) + %t1166 = load { ptr, i64, i64 }, ptr %a1162 + call void @finch.gen.fail(ptr %t1147, %S.ast.Node %t1155, { ptr, i64, i64 } %t1166) + store { ptr, i64, i64 } %t1166, ptr %a1167 + call void @finch_str_drop(ptr %a1167) + br label %endif3814 +endif3814: + %t1168 = getelementptr inbounds %S.gen.FnSig, ptr %a1047, i32 0, i32 13 + %t1169 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1168, i32 0, i32 1 + %t1170 = load ptr, ptr %a1 + %t1171 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 9 + %t1172 = load i64, ptr %a1126 + %t1173 = load { ptr, i64, i64 }, ptr %t1171 + %t1174 = extractvalue { ptr, i64, i64 } %t1173, 1 + %t1175 = icmp uge i64 %t1172, %t1174 + br i1 %t1175, label %range3817, label %inrange3818 +range3817: + call void @finch_panic_index(ptr @.str.2379, i64 1627, i64 %t1172, i64 %t1174) unreachable -ok3808: - %t1399 = getelementptr inbounds %S.gen.Gen, ptr %t1397, i32 0, i32 15 - %t1400 = load i64, ptr %a1302 - %t1401 = load { ptr, i64, i64 }, ptr %t1399 +inrange3818: + %t1176 = extractvalue { ptr, i64, i64 } %t1173, 0 + %t1177 = getelementptr inbounds %S.ast.Node, ptr %t1176, i64 %t1172 + %t1178 = getelementptr inbounds %S.ast.Node, ptr %t1177, i32 0, i32 5 + %t1179 = load %S.ast.Type, ptr %t1178 + %t1180 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 9 + %t1181 = load i64, ptr %a1126 + %t1182 = load { ptr, i64, i64 }, ptr %t1180 + %t1183 = extractvalue { ptr, i64, i64 } %t1182, 1 + %t1184 = icmp uge i64 %t1181, %t1183 + br i1 %t1184, label %range3819, label %inrange3820 +range3819: + call void @finch_panic_index(ptr @.str.2380, i64 1627, i64 %t1181, i64 %t1183) + unreachable +inrange3820: + %t1185 = extractvalue { ptr, i64, i64 } %t1182, 0 + %t1186 = getelementptr inbounds %S.ast.Node, ptr %t1185, i64 %t1181 + %t1187 = load %S.ast.Node, ptr %t1186 + %t1188 = call %S.ast.Type @finch.gen.resolve(ptr %t1170, %S.ast.Type %t1179, %S.ast.Node %t1187) + %t1189 = load i64, ptr %t1169 + %t1190 = add i64 %t1189, 1 + call void @finch_arr_reserve(ptr %t1168, i64 %t1190, i64 ptrtoint (ptr getelementptr (%S.ast.Type, ptr null, i32 1) to i64)) + %t1191 = load ptr, ptr %t1168 + %t1192 = getelementptr inbounds %S.ast.Type, ptr %t1191, i64 %t1189 + store %S.ast.Type %t1188, ptr %t1192 + store i64 %t1190, ptr %t1169 + %t1193 = getelementptr inbounds %S.gen.FnSig, ptr %a1047, i32 0, i32 14 + %t1194 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1193, i32 0, i32 1 + %t1195 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 9 + %t1196 = load i64, ptr %a1126 + %t1197 = load { ptr, i64, i64 }, ptr %t1195 + %t1198 = extractvalue { ptr, i64, i64 } %t1197, 1 + %t1199 = icmp uge i64 %t1196, %t1198 + br i1 %t1199, label %range3821, label %inrange3822 +range3821: + call void @finch_panic_index(ptr @.str.2381, i64 1628, i64 %t1196, i64 %t1198) + unreachable +inrange3822: + %t1200 = extractvalue { ptr, i64, i64 } %t1197, 0 + %t1201 = getelementptr inbounds %S.ast.Node, ptr %t1200, i64 %t1196 + %t1202 = getelementptr inbounds %S.ast.Node, ptr %t1201, i32 0, i32 1 + %t1203 = load { ptr, i64, i64 }, ptr %t1202 + store { ptr, i64, i64 } %t1203, ptr %a1204 + call void @finch_str_copy(ptr %a1205, ptr %a1204) + %t1206 = load { ptr, i64, i64 }, ptr %a1205 + %t1207 = load i64, ptr %t1194 + %t1208 = add i64 %t1207, 1 + call void @finch_arr_reserve(ptr %t1193, i64 %t1208, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t1209 = load ptr, ptr %t1193 + %t1210 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1209, i64 %t1207 + store { ptr, i64, i64 } %t1206, ptr %t1210 + store i64 %t1208, ptr %t1194 + br label %for.step3804 +for.step3804: + %t1211 = load i64, ptr %a1126 + %t1212 = add i64 %t1211, 1 + store i64 %t1212, ptr %a1126 + br label %for.cond3802 +for.end3805: + %t1213 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 8 + %t1214 = load i1, ptr %t1213 + br i1 %t1214, label %then3823, label %endif3825 +then3823: + %t1215 = load ptr, ptr %a1 + %t1216 = load %S.ast.Node, ptr %a686 + %t1217 = load %S.gen.FnSig, ptr %a1047 + call void @finch.gen.checkExport(ptr %t1215, %S.ast.Node %t1216, %S.gen.FnSig %t1217) + br label %endif3825 +endif3825: + %t1218 = load ptr, ptr %a1 + %t1219 = icmp eq ptr %t1218, null + br i1 %t1219, label %panic3826, label %ok3827 +panic3826: + call void @finch_panic(ptr @.str.2382, i64 1633, ptr @.str.2383) + unreachable +ok3827: + %t1220 = getelementptr inbounds %S.gen.Gen, ptr %t1218, i32 0, i32 15 + %t1221 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1220, i32 0, i32 1 + %t1222 = load %S.gen.FnSig, ptr %a1047 + store %S.gen.FnSig %t1222, ptr %a1223 + call void @finch.copy.S_gen_FnSig(ptr %a1224, ptr %a1223) + %t1225 = load %S.gen.FnSig, ptr %a1224 + %t1226 = load i64, ptr %t1221 + %t1227 = add i64 %t1226, 1 + call void @finch_arr_reserve(ptr %t1220, i64 %t1227, i64 ptrtoint (ptr getelementptr (%S.gen.FnSig, ptr null, i32 1) to i64)) + %t1228 = load ptr, ptr %t1220 + %t1229 = getelementptr inbounds %S.gen.FnSig, ptr %t1228, i64 %t1226 + store %S.gen.FnSig %t1225, ptr %t1229 + store i64 %t1227, ptr %t1221 + call void @finch.drop.S_gen_FnSig(ptr %a1047) + call void @finch_str_drop(ptr %a789) + call void @finch.drop.S_ast_Node(ptr %a686) + br label %for.step3712 +for.step3712: + %t1230 = load i64, ptr %a663 + %t1231 = add i64 %t1230, 1 + store i64 %t1231, ptr %a663 + br label %for.cond3710 +for.end3713: + br label %for.step3698 +for.step3698: + %t1232 = load i64, ptr %a629 + %t1233 = add i64 %t1232, 1 + store i64 %t1233, ptr %a629 + br label %for.cond3696 +for.end3699: + store i1 true, ptr %a1234 + br label %while.cond3828 +while.cond3828: + %t1235 = load i1, ptr %a1234 + br i1 %t1235, label %while.body3829, label %while.end3830 +while.body3829: + store i1 false, ptr %a1234 + %t1236 = load ptr, ptr %a1 + %t1237 = icmp eq ptr %t1236, null + br i1 %t1237, label %panic3831, label %ok3832 +panic3831: + call void @finch_panic(ptr @.str.2384, i64 1641, ptr @.str.2385) + unreachable +ok3832: + %t1238 = getelementptr inbounds %S.gen.Gen, ptr %t1236, i32 0, i32 15 + %t1239 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1238, i32 0, i32 1 + %t1240 = load i64, ptr %t1239 + store i64 0, ptr %a1241 + br label %for.cond3833 +for.cond3833: + %t1242 = load i64, ptr %a1241 + %t1243 = icmp slt i64 %t1242, %t1240 + br i1 %t1243, label %for.body3834, label %for.end3836 +for.body3834: + %t1244 = load ptr, ptr %a1 + %t1245 = icmp eq ptr %t1244, null + br i1 %t1245, label %panic3837, label %ok3838 +panic3837: + call void @finch_panic(ptr @.str.2386, i64 1642, ptr @.str.2387) + unreachable +ok3838: + %t1246 = getelementptr inbounds %S.gen.Gen, ptr %t1244, i32 0, i32 15 + %t1247 = load i64, ptr %a1241 + %t1248 = load { ptr, i64, i64 }, ptr %t1246 + %t1249 = extractvalue { ptr, i64, i64 } %t1248, 1 + %t1250 = icmp uge i64 %t1247, %t1249 + br i1 %t1250, label %range3839, label %inrange3840 +range3839: + call void @finch_panic_index(ptr @.str.2388, i64 1642, i64 %t1247, i64 %t1249) + unreachable +inrange3840: + %t1251 = extractvalue { ptr, i64, i64 } %t1248, 0 + %t1252 = getelementptr inbounds %S.gen.FnSig, ptr %t1251, i64 %t1247 + %t1253 = getelementptr inbounds %S.gen.FnSig, ptr %t1252, i32 0, i32 2 + %t1254 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1253, i32 0, i32 1 + %t1255 = load i64, ptr %t1254 + %t1256 = icmp sgt i64 %t1255, 0 + br label %logic.from3841 +logic.from3841: + br i1 %t1256, label %logic.rhs3842, label %logic.end3843 +logic.rhs3842: + %t1257 = load ptr, ptr %a1 + %t1258 = icmp eq ptr %t1257, null + br i1 %t1258, label %panic3844, label %ok3845 +panic3844: + call void @finch_panic(ptr @.str.2389, i64 1642, ptr @.str.2390) + unreachable +ok3845: + %t1259 = getelementptr inbounds %S.gen.Gen, ptr %t1257, i32 0, i32 15 + %t1260 = load i64, ptr %a1241 + %t1261 = load { ptr, i64, i64 }, ptr %t1259 + %t1262 = extractvalue { ptr, i64, i64 } %t1261, 1 + %t1263 = icmp uge i64 %t1260, %t1262 + br i1 %t1263, label %range3846, label %inrange3847 +range3846: + call void @finch_panic_index(ptr @.str.2391, i64 1642, i64 %t1260, i64 %t1262) + unreachable +inrange3847: + %t1264 = extractvalue { ptr, i64, i64 } %t1261, 0 + %t1265 = getelementptr inbounds %S.gen.FnSig, ptr %t1264, i64 %t1260 + %t1266 = getelementptr inbounds %S.gen.FnSig, ptr %t1265, i32 0, i32 10 + %t1267 = load i1, ptr %t1266 + %t1268 = xor i1 %t1267, true + br label %logic.rend3848 +logic.rend3848: + br label %logic.end3843 +logic.end3843: + %t1269 = phi i1 [ false, %logic.from3841 ], [ %t1268, %logic.rend3848 ] + br i1 %t1269, label %then3849, label %endif3851 +then3849: + %t1270 = load ptr, ptr %a1 + %t1271 = icmp eq ptr %t1270, null + br i1 %t1271, label %panic3852, label %ok3853 +panic3852: + call void @finch_panic(ptr @.str.2392, i64 1643, ptr @.str.2393) + unreachable +ok3853: + %t1272 = getelementptr inbounds %S.gen.Gen, ptr %t1270, i32 0, i32 0 + %t1273 = load ptr, ptr %a1 + %t1274 = icmp eq ptr %t1273, null + br i1 %t1274, label %panic3854, label %ok3855 +panic3854: + call void @finch_panic(ptr @.str.2394, i64 1643, ptr @.str.2395) + unreachable +ok3855: + %t1275 = getelementptr inbounds %S.gen.Gen, ptr %t1273, i32 0, i32 15 + %t1276 = load i64, ptr %a1241 + %t1277 = load { ptr, i64, i64 }, ptr %t1275 + %t1278 = extractvalue { ptr, i64, i64 } %t1277, 1 + %t1279 = icmp uge i64 %t1276, %t1278 + br i1 %t1279, label %range3856, label %inrange3857 +range3856: + call void @finch_panic_index(ptr @.str.2396, i64 1643, i64 %t1276, i64 %t1278) + unreachable +inrange3857: + %t1280 = extractvalue { ptr, i64, i64 } %t1277, 0 + %t1281 = getelementptr inbounds %S.gen.FnSig, ptr %t1280, i64 %t1276 + %t1282 = getelementptr inbounds %S.gen.FnSig, ptr %t1281, i32 0, i32 16 + %t1283 = load i64, ptr %t1282 + %t1284 = load { ptr, i64, i64 }, ptr %t1272 + %t1285 = extractvalue { ptr, i64, i64 } %t1284, 1 + %t1286 = icmp uge i64 %t1283, %t1285 + br i1 %t1286, label %range3858, label %inrange3859 +range3858: + call void @finch_panic_index(ptr @.str.2397, i64 1643, i64 %t1283, i64 %t1285) + unreachable +inrange3859: + %t1287 = extractvalue { ptr, i64, i64 } %t1284, 0 + %t1288 = getelementptr inbounds %S.ast.Program, ptr %t1287, i64 %t1283 + %t1289 = getelementptr inbounds %S.ast.Program, ptr %t1288, i32 0, i32 8 + %t1290 = load ptr, ptr %a1 + %t1291 = icmp eq ptr %t1290, null + br i1 %t1291, label %panic3860, label %ok3861 +panic3860: + call void @finch_panic(ptr @.str.2398, i64 1643, ptr @.str.2399) + unreachable +ok3861: + %t1292 = getelementptr inbounds %S.gen.Gen, ptr %t1290, i32 0, i32 15 + %t1293 = load i64, ptr %a1241 + %t1294 = load { ptr, i64, i64 }, ptr %t1292 + %t1295 = extractvalue { ptr, i64, i64 } %t1294, 1 + %t1296 = icmp uge i64 %t1293, %t1295 + br i1 %t1296, label %range3862, label %inrange3863 +range3862: + call void @finch_panic_index(ptr @.str.2400, i64 1643, i64 %t1293, i64 %t1295) + unreachable +inrange3863: + %t1297 = extractvalue { ptr, i64, i64 } %t1294, 0 + %t1298 = getelementptr inbounds %S.gen.FnSig, ptr %t1297, i64 %t1293 + %t1299 = getelementptr inbounds %S.gen.FnSig, ptr %t1298, i32 0, i32 17 + %t1300 = load i64, ptr %t1299 + %t1301 = load { ptr, i64, i64 }, ptr %t1289 + %t1302 = extractvalue { ptr, i64, i64 } %t1301, 1 + %t1303 = icmp uge i64 %t1300, %t1302 + br i1 %t1303, label %range3864, label %inrange3865 +range3864: + call void @finch_panic_index(ptr @.str.2401, i64 1643, i64 %t1300, i64 %t1302) + unreachable +inrange3865: + %t1304 = extractvalue { ptr, i64, i64 } %t1301, 0 + %t1305 = getelementptr inbounds %S.ast.Node, ptr %t1304, i64 %t1300 + %t1306 = load %S.ast.Node, ptr %t1305 + store %S.ast.Node %t1306, ptr %a1307 + call void @finch.copy.S_ast_Node(ptr %a1308, ptr %a1307) + %t1309 = load %S.ast.Node, ptr %a1308 + store %S.ast.Node %t1309, ptr %a1310 + %t1311 = load ptr, ptr %a1 + %t1312 = getelementptr inbounds %S.ast.Node, ptr %a1310, i32 0, i32 9 + %t1313 = getelementptr inbounds %S.ast.Node, ptr %a1310, i32 0, i32 9 + %t1314 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1313, i32 0, i32 1 + %t1315 = load i64, ptr %t1314 + %t1316 = sub i64 %t1315, 1 + %t1317 = load { ptr, i64, i64 }, ptr %t1312 + %t1318 = extractvalue { ptr, i64, i64 } %t1317, 1 + %t1319 = icmp uge i64 %t1316, %t1318 + br i1 %t1319, label %range3866, label %inrange3867 +range3866: + call void @finch_panic_index(ptr @.str.2403, i64 1644, i64 %t1316, i64 %t1318) + unreachable +inrange3867: + %t1320 = extractvalue { ptr, i64, i64 } %t1317, 0 + %t1321 = getelementptr inbounds %S.ast.Node, ptr %t1320, i64 %t1316 + %t1322 = load %S.ast.Node, ptr %t1321 + %t1323 = call i1 @finch.gen.mutates(ptr %t1311, { ptr, i64, i64 } { ptr @.str.2402, i64 4, i64 0 }, %S.ast.Node %t1322) + br i1 %t1323, label %then3868, label %endif3870 +then3868: + %t1324 = load ptr, ptr %a1 + %t1325 = icmp eq ptr %t1324, null + br i1 %t1325, label %panic3871, label %ok3872 +panic3871: + call void @finch_panic(ptr @.str.2404, i64 1645, ptr @.str.2405) + unreachable +ok3872: + %t1326 = getelementptr inbounds %S.gen.Gen, ptr %t1324, i32 0, i32 15 + %t1327 = load i64, ptr %a1241 + %t1328 = load { ptr, i64, i64 }, ptr %t1326 + %t1329 = extractvalue { ptr, i64, i64 } %t1328, 1 + %t1330 = icmp uge i64 %t1327, %t1329 + br i1 %t1330, label %range3873, label %inrange3874 +range3873: + call void @finch_panic_index(ptr @.str.2406, i64 1645, i64 %t1327, i64 %t1329) + unreachable +inrange3874: + %t1331 = extractvalue { ptr, i64, i64 } %t1328, 0 + %t1332 = getelementptr inbounds %S.gen.FnSig, ptr %t1331, i64 %t1327 + %t1333 = getelementptr inbounds %S.gen.FnSig, ptr %t1332, i32 0, i32 10 + store i1 true, ptr %t1333 + %t1334 = load ptr, ptr %a1 + %t1335 = icmp eq ptr %t1334, null + br i1 %t1335, label %panic3875, label %ok3876 +panic3875: + call void @finch_panic(ptr @.str.2407, i64 1646, ptr @.str.2408) + unreachable +ok3876: + %t1336 = getelementptr inbounds %S.gen.Gen, ptr %t1334, i32 0, i32 24 + %t1337 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1336, i32 0, i32 1 + %t1338 = load ptr, ptr %a1 + %t1339 = icmp eq ptr %t1338, null + br i1 %t1339, label %panic3877, label %ok3878 +panic3877: + call void @finch_panic(ptr @.str.2409, i64 1646, ptr @.str.2410) + unreachable +ok3878: + %t1340 = getelementptr inbounds %S.gen.Gen, ptr %t1338, i32 0, i32 15 + %t1341 = load i64, ptr %a1241 + %t1342 = load { ptr, i64, i64 }, ptr %t1340 + %t1343 = extractvalue { ptr, i64, i64 } %t1342, 1 + %t1344 = icmp uge i64 %t1341, %t1343 + br i1 %t1344, label %range3879, label %inrange3880 +range3879: + call void @finch_panic_index(ptr @.str.2411, i64 1646, i64 %t1341, i64 %t1343) + unreachable +inrange3880: + %t1345 = extractvalue { ptr, i64, i64 } %t1342, 0 + %t1346 = getelementptr inbounds %S.gen.FnSig, ptr %t1345, i64 %t1341 + %t1347 = getelementptr inbounds %S.gen.FnSig, ptr %t1346, i32 0, i32 1 + %t1348 = load { ptr, i64, i64 }, ptr %t1347 + store { ptr, i64, i64 } %t1348, ptr %a1349 + call void @finch_str_copy(ptr %a1350, ptr %a1349) + %t1351 = load { ptr, i64, i64 }, ptr %a1350 + %t1352 = load i64, ptr %t1337 + %t1353 = add i64 %t1352, 1 + call void @finch_arr_reserve(ptr %t1336, i64 %t1353, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t1354 = load ptr, ptr %t1336 + %t1355 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1354, i64 %t1352 + store { ptr, i64, i64 } %t1351, ptr %t1355 + store i64 %t1353, ptr %t1337 + store i1 true, ptr %a1234 + br label %endif3870 +endif3870: + call void @finch.drop.S_ast_Node(ptr %a1310) + br label %endif3851 +endif3851: + br label %for.step3835 +for.step3835: + %t1356 = load i64, ptr %a1241 + %t1357 = add i64 %t1356, 1 + store i64 %t1357, ptr %a1241 + br label %for.cond3833 +for.end3836: + %t1358 = load ptr, ptr %a1 + %t1359 = icmp eq ptr %t1358, null + br i1 %t1359, label %panic3881, label %ok3882 +panic3881: + call void @finch_panic(ptr @.str.2412, i64 1651, ptr @.str.2413) + unreachable +ok3882: + %t1360 = getelementptr inbounds %S.gen.Gen, ptr %t1358, i32 0, i32 17 + %t1361 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1360, i32 0, i32 1 + %t1362 = load i64, ptr %t1361 + store i64 0, ptr %a1363 + br label %for.cond3883 +for.cond3883: + %t1364 = load i64, ptr %a1363 + %t1365 = icmp slt i64 %t1364, %t1362 + br i1 %t1365, label %for.body3884, label %for.end3886 +for.body3884: + %t1366 = load ptr, ptr %a1 + %t1367 = icmp eq ptr %t1366, null + br i1 %t1367, label %panic3887, label %ok3888 +panic3887: + call void @finch_panic(ptr @.str.2414, i64 1652, ptr @.str.2415) + unreachable +ok3888: + %t1368 = getelementptr inbounds %S.gen.Gen, ptr %t1366, i32 0, i32 17 + %t1369 = load i64, ptr %a1363 + %t1370 = load { ptr, i64, i64 }, ptr %t1368 + %t1371 = extractvalue { ptr, i64, i64 } %t1370, 1 + %t1372 = icmp uge i64 %t1369, %t1371 + br i1 %t1372, label %range3889, label %inrange3890 +range3889: + call void @finch_panic_index(ptr @.str.2416, i64 1652, i64 %t1369, i64 %t1371) + unreachable +inrange3890: + %t1373 = extractvalue { ptr, i64, i64 } %t1370, 0 + %t1374 = getelementptr inbounds %S.gen.Template, ptr %t1373, i64 %t1369 + %t1375 = load %S.gen.Template, ptr %t1374 + store %S.gen.Template %t1375, ptr %a1376 + call void @finch.copy.S_gen_Template(ptr %a1377, ptr %a1376) + %t1378 = load %S.gen.Template, ptr %a1377 + store %S.gen.Template %t1378, ptr %a1379 + %t1380 = getelementptr inbounds %S.gen.Template, ptr %a1379, i32 0, i32 2 + %t1381 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1380, i32 0, i32 1 + %t1382 = load i64, ptr %t1381 + %t1383 = icmp sgt i64 %t1382, 0 + br label %logic.from3891 +logic.from3891: + br i1 %t1383, label %logic.rhs3892, label %logic.end3893 +logic.rhs3892: + %t1384 = getelementptr inbounds %S.gen.Template, ptr %a1379, i32 0, i32 7 + %t1385 = load i1, ptr %t1384 + %t1386 = xor i1 %t1385, true + br label %logic.rend3894 +logic.rend3894: + br label %logic.end3893 +logic.end3893: + %t1387 = phi i1 [ false, %logic.from3891 ], [ %t1386, %logic.rend3894 ] + br i1 %t1387, label %then3895, label %endif3897 +then3895: + %t1388 = load ptr, ptr %a1 + %t1389 = icmp eq ptr %t1388, null + br i1 %t1389, label %panic3898, label %ok3899 +panic3898: + call void @finch_panic(ptr @.str.2417, i64 1654, ptr @.str.2418) + unreachable +ok3899: + %t1390 = getelementptr inbounds %S.gen.Gen, ptr %t1388, i32 0, i32 0 + %t1391 = getelementptr inbounds %S.gen.Template, ptr %a1379, i32 0, i32 4 + %t1392 = load i64, ptr %t1391 + %t1393 = load { ptr, i64, i64 }, ptr %t1390 + %t1394 = extractvalue { ptr, i64, i64 } %t1393, 1 + %t1395 = icmp uge i64 %t1392, %t1394 + br i1 %t1395, label %range3900, label %inrange3901 +range3900: + call void @finch_panic_index(ptr @.str.2419, i64 1654, i64 %t1392, i64 %t1394) + unreachable +inrange3901: + %t1396 = extractvalue { ptr, i64, i64 } %t1393, 0 + %t1397 = getelementptr inbounds %S.ast.Program, ptr %t1396, i64 %t1392 + %t1398 = getelementptr inbounds %S.ast.Program, ptr %t1397, i32 0, i32 8 + %t1399 = getelementptr inbounds %S.gen.Template, ptr %a1379, i32 0, i32 5 + %t1400 = load i64, ptr %t1399 + %t1401 = load { ptr, i64, i64 }, ptr %t1398 %t1402 = extractvalue { ptr, i64, i64 } %t1401, 1 %t1403 = icmp uge i64 %t1400, %t1402 - br i1 %t1403, label %range3809, label %inrange3810 -range3809: - call void @finch_panic_index(ptr @.str.2365, i64 1588, i64 %t1400, i64 %t1402) + br i1 %t1403, label %range3902, label %inrange3903 +range3902: + call void @finch_panic_index(ptr @.str.2420, i64 1654, i64 %t1400, i64 %t1402) unreachable -inrange3810: +inrange3903: %t1404 = extractvalue { ptr, i64, i64 } %t1401, 0 - %t1405 = getelementptr inbounds %S.gen.FnSig, ptr %t1404, i64 %t1400 - %t1406 = getelementptr inbounds %S.gen.FnSig, ptr %t1405, i32 0, i32 15 - %t1407 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1406, i32 0, i32 1 - %t1408 = load ptr, ptr %a1 - %t1409 = load %S.ast.Type, ptr %a1396 - %t1410 = call i1 @finch.gen.owning(ptr %t1408, %S.ast.Type %t1409) - br label %logic.from3811 -logic.from3811: - br i1 %t1410, label %logic.rhs3812, label %logic.end3813 -logic.rhs3812: + %t1405 = getelementptr inbounds %S.ast.Node, ptr %t1404, i64 %t1400 + %t1406 = load %S.ast.Node, ptr %t1405 + store %S.ast.Node %t1406, ptr %a1407 + call void @finch.copy.S_ast_Node(ptr %a1408, ptr %a1407) + %t1409 = load %S.ast.Node, ptr %a1408 + store %S.ast.Node %t1409, ptr %a1410 %t1411 = load ptr, ptr %a1 - %t1412 = load ptr, ptr %a1 - %t1413 = icmp eq ptr %t1412, null - br i1 %t1413, label %panic3814, label %ok3815 -panic3814: - call void @finch_panic(ptr @.str.2366, i64 1588, ptr @.str.2367) + %t1412 = getelementptr inbounds %S.ast.Node, ptr %a1410, i32 0, i32 9 + %t1413 = getelementptr inbounds %S.ast.Node, ptr %a1410, i32 0, i32 9 + %t1414 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1413, i32 0, i32 1 + %t1415 = load i64, ptr %t1414 + %t1416 = sub i64 %t1415, 1 + %t1417 = load { ptr, i64, i64 }, ptr %t1412 + %t1418 = extractvalue { ptr, i64, i64 } %t1417, 1 + %t1419 = icmp uge i64 %t1416, %t1418 + br i1 %t1419, label %range3904, label %inrange3905 +range3904: + call void @finch_panic_index(ptr @.str.2422, i64 1655, i64 %t1416, i64 %t1418) unreachable -ok3815: - %t1414 = getelementptr inbounds %S.gen.Gen, ptr %t1412, i32 0, i32 15 - %t1415 = load i64, ptr %a1302 - %t1416 = load { ptr, i64, i64 }, ptr %t1414 - %t1417 = extractvalue { ptr, i64, i64 } %t1416, 1 - %t1418 = icmp uge i64 %t1415, %t1417 - br i1 %t1418, label %range3816, label %inrange3817 -range3816: - call void @finch_panic_index(ptr @.str.2368, i64 1588, i64 %t1415, i64 %t1417) +inrange3905: + %t1420 = extractvalue { ptr, i64, i64 } %t1417, 0 + %t1421 = getelementptr inbounds %S.ast.Node, ptr %t1420, i64 %t1416 + %t1422 = load %S.ast.Node, ptr %t1421 + %t1423 = call i1 @finch.gen.mutates(ptr %t1411, { ptr, i64, i64 } { ptr @.str.2421, i64 4, i64 0 }, %S.ast.Node %t1422) + br i1 %t1423, label %then3906, label %endif3908 +then3906: + %t1424 = load ptr, ptr %a1 + %t1425 = icmp eq ptr %t1424, null + br i1 %t1425, label %panic3909, label %ok3910 +panic3909: + call void @finch_panic(ptr @.str.2423, i64 1656, ptr @.str.2424) unreachable -inrange3817: - %t1419 = extractvalue { ptr, i64, i64 } %t1416, 0 - %t1420 = getelementptr inbounds %S.gen.FnSig, ptr %t1419, i64 %t1415 - %t1421 = getelementptr inbounds %S.gen.FnSig, ptr %t1420, i32 0, i32 14 - %t1422 = load i64, ptr %a1373 - %t1423 = load { ptr, i64, i64 }, ptr %t1421 - %t1424 = extractvalue { ptr, i64, i64 } %t1423, 1 - %t1425 = icmp uge i64 %t1422, %t1424 - br i1 %t1425, label %range3818, label %inrange3819 -range3818: - call void @finch_panic_index(ptr @.str.2369, i64 1588, i64 %t1422, i64 %t1424) +ok3910: + %t1426 = getelementptr inbounds %S.gen.Gen, ptr %t1424, i32 0, i32 17 + %t1427 = load i64, ptr %a1363 + %t1428 = load { ptr, i64, i64 }, ptr %t1426 + %t1429 = extractvalue { ptr, i64, i64 } %t1428, 1 + %t1430 = icmp uge i64 %t1427, %t1429 + br i1 %t1430, label %range3911, label %inrange3912 +range3911: + call void @finch_panic_index(ptr @.str.2425, i64 1656, i64 %t1427, i64 %t1429) unreachable -inrange3819: - %t1426 = extractvalue { ptr, i64, i64 } %t1423, 0 - %t1427 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1426, i64 %t1422 - %t1428 = load { ptr, i64, i64 }, ptr %t1427 - %t1429 = load %S.ast.Node, ptr %a1360 - %t1430 = call i1 @finch.gen.mutates(ptr %t1411, { ptr, i64, i64 } %t1428, %S.ast.Node %t1429) - %t1431 = xor i1 %t1430, true - br label %logic.rend3820 -logic.rend3820: - br label %logic.end3813 -logic.end3813: - %t1432 = phi i1 [ false, %logic.from3811 ], [ %t1431, %logic.rend3820 ] - %t1433 = load i64, ptr %t1407 - %t1434 = add i64 %t1433, 1 - call void @finch_arr_reserve(ptr %t1406, i64 %t1434, i64 ptrtoint (ptr getelementptr (i1, ptr null, i32 1) to i64)) - %t1435 = load ptr, ptr %t1406 - %t1436 = getelementptr inbounds i1, ptr %t1435, i64 %t1433 - store i1 %t1432, ptr %t1436 - store i64 %t1434, ptr %t1407 - call void @finch.drop.S_ast_Type(ptr %a1396) - br label %for.step3799 -for.step3799: - %t1437 = load i64, ptr %a1373 - %t1438 = add i64 %t1437, 1 - store i64 %t1438, ptr %a1373 - br label %for.cond3797 -for.end3800: - call void @finch.drop.S_ast_Node(ptr %a1360) - call void @finch.drop.S_ast_Node(ptr %a1345) - br label %for.step3775 -for.step3775: - %t1439 = load i64, ptr %a1302 - %t1440 = add i64 %t1439, 1 - store i64 %t1440, ptr %a1302 - br label %for.cond3773 -for.end3776: +inrange3912: + %t1431 = extractvalue { ptr, i64, i64 } %t1428, 0 + %t1432 = getelementptr inbounds %S.gen.Template, ptr %t1431, i64 %t1427 + %t1433 = getelementptr inbounds %S.gen.Template, ptr %t1432, i32 0, i32 7 + store i1 true, ptr %t1433 + %t1434 = load ptr, ptr %a1 + %t1435 = icmp eq ptr %t1434, null + br i1 %t1435, label %panic3913, label %ok3914 +panic3913: + call void @finch_panic(ptr @.str.2426, i64 1657, ptr @.str.2427) + unreachable +ok3914: + %t1436 = getelementptr inbounds %S.gen.Gen, ptr %t1434, i32 0, i32 24 + %t1437 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1436, i32 0, i32 1 + %t1438 = getelementptr inbounds %S.gen.Template, ptr %a1379, i32 0, i32 1 + %t1439 = load { ptr, i64, i64 }, ptr %t1438 + store { ptr, i64, i64 } %t1439, ptr %a1440 + call void @finch_str_copy(ptr %a1441, ptr %a1440) + %t1442 = load { ptr, i64, i64 }, ptr %a1441 + %t1443 = load i64, ptr %t1437 + %t1444 = add i64 %t1443, 1 + call void @finch_arr_reserve(ptr %t1436, i64 %t1444, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t1445 = load ptr, ptr %t1436 + %t1446 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1445, i64 %t1443 + store { ptr, i64, i64 } %t1442, ptr %t1446 + store i64 %t1444, ptr %t1437 + store i1 true, ptr %a1234 + br label %endif3908 +endif3908: + call void @finch.drop.S_ast_Node(ptr %a1410) + br label %endif3897 +endif3897: + call void @finch.drop.S_gen_Template(ptr %a1379) + br label %for.step3885 +for.step3885: + %t1447 = load i64, ptr %a1363 + %t1448 = add i64 %t1447, 1 + store i64 %t1448, ptr %a1363 + br label %for.cond3883 +for.end3886: + br label %while.cond3828 +while.end3830: + %t1449 = load ptr, ptr %a1 + %t1450 = icmp eq ptr %t1449, null + br i1 %t1450, label %panic3915, label %ok3916 +panic3915: + call void @finch_panic(ptr @.str.2428, i64 1664, ptr @.str.2429) + unreachable +ok3916: + %t1451 = getelementptr inbounds %S.gen.Gen, ptr %t1449, i32 0, i32 15 + %t1452 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1451, i32 0, i32 1 + %t1453 = load i64, ptr %t1452 + store i64 0, ptr %a1454 + br label %for.cond3917 +for.cond3917: + %t1455 = load i64, ptr %a1454 + %t1456 = icmp slt i64 %t1455, %t1453 + br i1 %t1456, label %for.body3918, label %for.end3920 +for.body3918: + %t1457 = load ptr, ptr %a1 + %t1458 = icmp eq ptr %t1457, null + br i1 %t1458, label %panic3921, label %ok3922 +panic3921: + call void @finch_panic(ptr @.str.2430, i64 1665, ptr @.str.2431) + unreachable +ok3922: + %t1459 = getelementptr inbounds %S.gen.Gen, ptr %t1457, i32 0, i32 0 + %t1460 = load ptr, ptr %a1 + %t1461 = icmp eq ptr %t1460, null + br i1 %t1461, label %panic3923, label %ok3924 +panic3923: + call void @finch_panic(ptr @.str.2432, i64 1665, ptr @.str.2433) + unreachable +ok3924: + %t1462 = getelementptr inbounds %S.gen.Gen, ptr %t1460, i32 0, i32 15 + %t1463 = load i64, ptr %a1454 + %t1464 = load { ptr, i64, i64 }, ptr %t1462 + %t1465 = extractvalue { ptr, i64, i64 } %t1464, 1 + %t1466 = icmp uge i64 %t1463, %t1465 + br i1 %t1466, label %range3925, label %inrange3926 +range3925: + call void @finch_panic_index(ptr @.str.2434, i64 1665, i64 %t1463, i64 %t1465) + unreachable +inrange3926: + %t1467 = extractvalue { ptr, i64, i64 } %t1464, 0 + %t1468 = getelementptr inbounds %S.gen.FnSig, ptr %t1467, i64 %t1463 + %t1469 = getelementptr inbounds %S.gen.FnSig, ptr %t1468, i32 0, i32 16 + %t1470 = load i64, ptr %t1469 + %t1471 = load { ptr, i64, i64 }, ptr %t1459 + %t1472 = extractvalue { ptr, i64, i64 } %t1471, 1 + %t1473 = icmp uge i64 %t1470, %t1472 + br i1 %t1473, label %range3927, label %inrange3928 +range3927: + call void @finch_panic_index(ptr @.str.2435, i64 1665, i64 %t1470, i64 %t1472) + unreachable +inrange3928: + %t1474 = extractvalue { ptr, i64, i64 } %t1471, 0 + %t1475 = getelementptr inbounds %S.ast.Program, ptr %t1474, i64 %t1470 + %t1476 = getelementptr inbounds %S.ast.Program, ptr %t1475, i32 0, i32 8 + %t1477 = load ptr, ptr %a1 + %t1478 = icmp eq ptr %t1477, null + br i1 %t1478, label %panic3929, label %ok3930 +panic3929: + call void @finch_panic(ptr @.str.2436, i64 1665, ptr @.str.2437) + unreachable +ok3930: + %t1479 = getelementptr inbounds %S.gen.Gen, ptr %t1477, i32 0, i32 15 + %t1480 = load i64, ptr %a1454 + %t1481 = load { ptr, i64, i64 }, ptr %t1479 + %t1482 = extractvalue { ptr, i64, i64 } %t1481, 1 + %t1483 = icmp uge i64 %t1480, %t1482 + br i1 %t1483, label %range3931, label %inrange3932 +range3931: + call void @finch_panic_index(ptr @.str.2438, i64 1665, i64 %t1480, i64 %t1482) + unreachable +inrange3932: + %t1484 = extractvalue { ptr, i64, i64 } %t1481, 0 + %t1485 = getelementptr inbounds %S.gen.FnSig, ptr %t1484, i64 %t1480 + %t1486 = getelementptr inbounds %S.gen.FnSig, ptr %t1485, i32 0, i32 17 + %t1487 = load i64, ptr %t1486 + %t1488 = load { ptr, i64, i64 }, ptr %t1476 + %t1489 = extractvalue { ptr, i64, i64 } %t1488, 1 + %t1490 = icmp uge i64 %t1487, %t1489 + br i1 %t1490, label %range3933, label %inrange3934 +range3933: + call void @finch_panic_index(ptr @.str.2439, i64 1665, i64 %t1487, i64 %t1489) + unreachable +inrange3934: + %t1491 = extractvalue { ptr, i64, i64 } %t1488, 0 + %t1492 = getelementptr inbounds %S.ast.Node, ptr %t1491, i64 %t1487 + %t1493 = load %S.ast.Node, ptr %t1492 + store %S.ast.Node %t1493, ptr %a1494 + call void @finch.copy.S_ast_Node(ptr %a1495, ptr %a1494) + %t1496 = load %S.ast.Node, ptr %a1495 + store %S.ast.Node %t1496, ptr %a1497 + %t1498 = getelementptr inbounds %S.ast.Node, ptr %a1497, i32 0, i32 9 + %t1499 = getelementptr inbounds %S.ast.Node, ptr %a1497, i32 0, i32 9 + %t1500 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1499, i32 0, i32 1 + %t1501 = load i64, ptr %t1500 + %t1502 = sub i64 %t1501, 1 + %t1503 = load { ptr, i64, i64 }, ptr %t1498 + %t1504 = extractvalue { ptr, i64, i64 } %t1503, 1 + %t1505 = icmp uge i64 %t1502, %t1504 + br i1 %t1505, label %range3935, label %inrange3936 +range3935: + call void @finch_panic_index(ptr @.str.2440, i64 1666, i64 %t1502, i64 %t1504) + unreachable +inrange3936: + %t1506 = extractvalue { ptr, i64, i64 } %t1503, 0 + %t1507 = getelementptr inbounds %S.ast.Node, ptr %t1506, i64 %t1502 + %t1508 = load %S.ast.Node, ptr %t1507 + store %S.ast.Node %t1508, ptr %a1509 + call void @finch.copy.S_ast_Node(ptr %a1510, ptr %a1509) + %t1511 = load %S.ast.Node, ptr %a1510 + store %S.ast.Node %t1511, ptr %a1512 + %t1513 = load ptr, ptr %a1 + %t1514 = icmp eq ptr %t1513, null + br i1 %t1514, label %panic3937, label %ok3938 +panic3937: + call void @finch_panic(ptr @.str.2441, i64 1667, ptr @.str.2442) + unreachable +ok3938: + %t1515 = getelementptr inbounds %S.gen.Gen, ptr %t1513, i32 0, i32 15 + %t1516 = load i64, ptr %a1454 + %t1517 = load { ptr, i64, i64 }, ptr %t1515 + %t1518 = extractvalue { ptr, i64, i64 } %t1517, 1 + %t1519 = icmp uge i64 %t1516, %t1518 + br i1 %t1519, label %range3939, label %inrange3940 +range3939: + call void @finch_panic_index(ptr @.str.2443, i64 1667, i64 %t1516, i64 %t1518) + unreachable +inrange3940: + %t1520 = extractvalue { ptr, i64, i64 } %t1517, 0 + %t1521 = getelementptr inbounds %S.gen.FnSig, ptr %t1520, i64 %t1516 + %t1522 = getelementptr inbounds %S.gen.FnSig, ptr %t1521, i32 0, i32 13 + %t1523 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1522, i32 0, i32 1 + %t1524 = load i64, ptr %t1523 + store i64 0, ptr %a1525 + br label %for.cond3941 +for.cond3941: + %t1526 = load i64, ptr %a1525 + %t1527 = icmp slt i64 %t1526, %t1524 + br i1 %t1527, label %for.body3942, label %for.end3944 +for.body3942: + %t1528 = load ptr, ptr %a1 + %t1529 = icmp eq ptr %t1528, null + br i1 %t1529, label %panic3945, label %ok3946 +panic3945: + call void @finch_panic(ptr @.str.2444, i64 1668, ptr @.str.2445) + unreachable +ok3946: + %t1530 = getelementptr inbounds %S.gen.Gen, ptr %t1528, i32 0, i32 15 + %t1531 = load i64, ptr %a1454 + %t1532 = load { ptr, i64, i64 }, ptr %t1530 + %t1533 = extractvalue { ptr, i64, i64 } %t1532, 1 + %t1534 = icmp uge i64 %t1531, %t1533 + br i1 %t1534, label %range3947, label %inrange3948 +range3947: + call void @finch_panic_index(ptr @.str.2446, i64 1668, i64 %t1531, i64 %t1533) + unreachable +inrange3948: + %t1535 = extractvalue { ptr, i64, i64 } %t1532, 0 + %t1536 = getelementptr inbounds %S.gen.FnSig, ptr %t1535, i64 %t1531 + %t1537 = getelementptr inbounds %S.gen.FnSig, ptr %t1536, i32 0, i32 13 + %t1538 = load i64, ptr %a1525 + %t1539 = load { ptr, i64, i64 }, ptr %t1537 + %t1540 = extractvalue { ptr, i64, i64 } %t1539, 1 + %t1541 = icmp uge i64 %t1538, %t1540 + br i1 %t1541, label %range3949, label %inrange3950 +range3949: + call void @finch_panic_index(ptr @.str.2447, i64 1668, i64 %t1538, i64 %t1540) + unreachable +inrange3950: + %t1542 = extractvalue { ptr, i64, i64 } %t1539, 0 + %t1543 = getelementptr inbounds %S.ast.Type, ptr %t1542, i64 %t1538 + %t1544 = load %S.ast.Type, ptr %t1543 + store %S.ast.Type %t1544, ptr %a1545 + call void @finch.copy.S_ast_Type(ptr %a1546, ptr %a1545) + %t1547 = load %S.ast.Type, ptr %a1546 + store %S.ast.Type %t1547, ptr %a1548 + %t1549 = load ptr, ptr %a1 + %t1550 = icmp eq ptr %t1549, null + br i1 %t1550, label %panic3951, label %ok3952 +panic3951: + call void @finch_panic(ptr @.str.2448, i64 1669, ptr @.str.2449) + unreachable +ok3952: + %t1551 = getelementptr inbounds %S.gen.Gen, ptr %t1549, i32 0, i32 15 + %t1552 = load i64, ptr %a1454 + %t1553 = load { ptr, i64, i64 }, ptr %t1551 + %t1554 = extractvalue { ptr, i64, i64 } %t1553, 1 + %t1555 = icmp uge i64 %t1552, %t1554 + br i1 %t1555, label %range3953, label %inrange3954 +range3953: + call void @finch_panic_index(ptr @.str.2450, i64 1669, i64 %t1552, i64 %t1554) + unreachable +inrange3954: + %t1556 = extractvalue { ptr, i64, i64 } %t1553, 0 + %t1557 = getelementptr inbounds %S.gen.FnSig, ptr %t1556, i64 %t1552 + %t1558 = getelementptr inbounds %S.gen.FnSig, ptr %t1557, i32 0, i32 15 + %t1559 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1558, i32 0, i32 1 + %t1560 = load ptr, ptr %a1 + %t1561 = load %S.ast.Type, ptr %a1548 + %t1562 = call i1 @finch.gen.owning(ptr %t1560, %S.ast.Type %t1561) + br label %logic.from3955 +logic.from3955: + br i1 %t1562, label %logic.rhs3956, label %logic.end3957 +logic.rhs3956: + %t1563 = load ptr, ptr %a1 + %t1564 = load ptr, ptr %a1 + %t1565 = icmp eq ptr %t1564, null + br i1 %t1565, label %panic3958, label %ok3959 +panic3958: + call void @finch_panic(ptr @.str.2451, i64 1669, ptr @.str.2452) + unreachable +ok3959: + %t1566 = getelementptr inbounds %S.gen.Gen, ptr %t1564, i32 0, i32 15 + %t1567 = load i64, ptr %a1454 + %t1568 = load { ptr, i64, i64 }, ptr %t1566 + %t1569 = extractvalue { ptr, i64, i64 } %t1568, 1 + %t1570 = icmp uge i64 %t1567, %t1569 + br i1 %t1570, label %range3960, label %inrange3961 +range3960: + call void @finch_panic_index(ptr @.str.2453, i64 1669, i64 %t1567, i64 %t1569) + unreachable +inrange3961: + %t1571 = extractvalue { ptr, i64, i64 } %t1568, 0 + %t1572 = getelementptr inbounds %S.gen.FnSig, ptr %t1571, i64 %t1567 + %t1573 = getelementptr inbounds %S.gen.FnSig, ptr %t1572, i32 0, i32 14 + %t1574 = load i64, ptr %a1525 + %t1575 = load { ptr, i64, i64 }, ptr %t1573 + %t1576 = extractvalue { ptr, i64, i64 } %t1575, 1 + %t1577 = icmp uge i64 %t1574, %t1576 + br i1 %t1577, label %range3962, label %inrange3963 +range3962: + call void @finch_panic_index(ptr @.str.2454, i64 1669, i64 %t1574, i64 %t1576) + unreachable +inrange3963: + %t1578 = extractvalue { ptr, i64, i64 } %t1575, 0 + %t1579 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1578, i64 %t1574 + %t1580 = load { ptr, i64, i64 }, ptr %t1579 + %t1581 = load %S.ast.Node, ptr %a1512 + %t1582 = call i1 @finch.gen.mutates(ptr %t1563, { ptr, i64, i64 } %t1580, %S.ast.Node %t1581) + %t1583 = xor i1 %t1582, true + br label %logic.rend3964 +logic.rend3964: + br label %logic.end3957 +logic.end3957: + %t1584 = phi i1 [ false, %logic.from3955 ], [ %t1583, %logic.rend3964 ] + %t1585 = load i64, ptr %t1559 + %t1586 = add i64 %t1585, 1 + call void @finch_arr_reserve(ptr %t1558, i64 %t1586, i64 ptrtoint (ptr getelementptr (i1, ptr null, i32 1) to i64)) + %t1587 = load ptr, ptr %t1558 + %t1588 = getelementptr inbounds i1, ptr %t1587, i64 %t1585 + store i1 %t1584, ptr %t1588 + store i64 %t1586, ptr %t1559 + call void @finch.drop.S_ast_Type(ptr %a1548) + br label %for.step3943 +for.step3943: + %t1589 = load i64, ptr %a1525 + %t1590 = add i64 %t1589, 1 + store i64 %t1590, ptr %a1525 + br label %for.cond3941 +for.end3944: + call void @finch.drop.S_ast_Node(ptr %a1512) + call void @finch.drop.S_ast_Node(ptr %a1497) + br label %for.step3919 +for.step3919: + %t1591 = load i64, ptr %a1454 + %t1592 = add i64 %t1591, 1 + store i64 %t1592, ptr %a1454 + br label %for.cond3917 +for.end3920: ret void } @@ -39879,38 +41527,38 @@ entry: store i1 %p4, ptr %a5 %t6 = load ptr, ptr %a1 %t7 = icmp eq ptr %t6, null - br i1 %t7, label %panic3821, label %ok3822 -panic3821: - call void @finch_panic(ptr @.str.2370, i64 1594, ptr @.str.2371) + br i1 %t7, label %panic3965, label %ok3966 +panic3965: + call void @finch_panic(ptr @.str.2455, i64 1675, ptr @.str.2456) unreachable -ok3822: +ok3966: %t8 = getelementptr inbounds %S.gen.Gen, ptr %t6, i32 0, i32 17 %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %t8, i32 0, i32 1 %t10 = load i64, ptr %t9 store i64 0, ptr %a11 - br label %for.cond3823 -for.cond3823: + br label %for.cond3967 +for.cond3967: %t12 = load i64, ptr %a11 %t13 = icmp slt i64 %t12, %t10 - br i1 %t13, label %for.body3824, label %for.end3826 -for.body3824: + br i1 %t13, label %for.body3968, label %for.end3970 +for.body3968: %t14 = load ptr, ptr %a1 %t15 = icmp eq ptr %t14, null - br i1 %t15, label %panic3827, label %ok3828 -panic3827: - call void @finch_panic(ptr @.str.2372, i64 1595, ptr @.str.2373) + br i1 %t15, label %panic3971, label %ok3972 +panic3971: + call void @finch_panic(ptr @.str.2457, i64 1676, ptr @.str.2458) unreachable -ok3828: +ok3972: %t16 = getelementptr inbounds %S.gen.Gen, ptr %t14, i32 0, i32 17 %t17 = load i64, ptr %a11 %t18 = load { ptr, i64, i64 }, ptr %t16 %t19 = extractvalue { ptr, i64, i64 } %t18, 1 %t20 = icmp uge i64 %t17, %t19 - br i1 %t20, label %range3829, label %inrange3830 -range3829: - call void @finch_panic_index(ptr @.str.2374, i64 1595, i64 %t17, i64 %t19) + br i1 %t20, label %range3973, label %inrange3974 +range3973: + call void @finch_panic_index(ptr @.str.2459, i64 1676, i64 %t17, i64 %t19) unreachable -inrange3830: +inrange3974: %t21 = extractvalue { ptr, i64, i64 } %t18, 0 %t22 = getelementptr inbounds %S.gen.Template, ptr %t21, i64 %t17 %t23 = load %S.gen.Template, ptr %t22 @@ -39925,10 +41573,10 @@ inrange3830: store { ptr, i64, i64 } %t30, ptr %a32 %t33 = call i32 @finch_str_eq(ptr %a31, ptr %a32) %t34 = icmp ne i32 %t33, 0 - br label %logic.from3831 -logic.from3831: - br i1 %t34, label %logic.rhs3832, label %logic.end3833 -logic.rhs3832: + br label %logic.from3975 +logic.from3975: + br i1 %t34, label %logic.rhs3976, label %logic.end3977 +logic.rhs3976: %t35 = getelementptr inbounds %S.gen.Template, ptr %a27, i32 0, i32 1 %t36 = load { ptr, i64, i64 }, ptr %t35 %t37 = load { ptr, i64, i64 }, ptr %a3 @@ -39936,15 +41584,15 @@ logic.rhs3832: store { ptr, i64, i64 } %t37, ptr %a39 %t40 = call i32 @finch_str_eq(ptr %a38, ptr %a39) %t41 = icmp ne i32 %t40, 0 - br label %logic.rend3834 -logic.rend3834: - br label %logic.end3833 -logic.end3833: - %t42 = phi i1 [ false, %logic.from3831 ], [ %t41, %logic.rend3834 ] - br label %logic.from3835 -logic.from3835: - br i1 %t42, label %logic.rhs3836, label %logic.end3837 -logic.rhs3836: + br label %logic.rend3978 +logic.rend3978: + br label %logic.end3977 +logic.end3977: + %t42 = phi i1 [ false, %logic.from3975 ], [ %t41, %logic.rend3978 ] + br label %logic.from3979 +logic.from3979: + br i1 %t42, label %logic.rhs3980, label %logic.end3981 +logic.rhs3980: %t43 = getelementptr inbounds %S.gen.Template, ptr %a27, i32 0, i32 2 %t44 = load { ptr, i64, i64 }, ptr %t43 %t45 = load { ptr, i64, i64 }, ptr %a4 @@ -39952,38 +41600,38 @@ logic.rhs3836: store { ptr, i64, i64 } %t45, ptr %a47 %t48 = call i32 @finch_str_eq(ptr %a46, ptr %a47) %t49 = icmp ne i32 %t48, 0 - br label %logic.rend3838 -logic.rend3838: - br label %logic.end3837 -logic.end3837: - %t50 = phi i1 [ false, %logic.from3835 ], [ %t49, %logic.rend3838 ] - br label %logic.from3839 -logic.from3839: - br i1 %t50, label %logic.rhs3840, label %logic.end3841 -logic.rhs3840: + br label %logic.rend3982 +logic.rend3982: + br label %logic.end3981 +logic.end3981: + %t50 = phi i1 [ false, %logic.from3979 ], [ %t49, %logic.rend3982 ] + br label %logic.from3983 +logic.from3983: + br i1 %t50, label %logic.rhs3984, label %logic.end3985 +logic.rhs3984: %t51 = getelementptr inbounds %S.gen.Template, ptr %a27, i32 0, i32 6 %t52 = load i1, ptr %t51 %t53 = load i1, ptr %a5 %t54 = icmp eq i1 %t52, %t53 - br label %logic.rend3842 -logic.rend3842: - br label %logic.end3841 -logic.end3841: - %t55 = phi i1 [ false, %logic.from3839 ], [ %t54, %logic.rend3842 ] - br i1 %t55, label %then3843, label %endif3845 -then3843: + br label %logic.rend3986 +logic.rend3986: + br label %logic.end3985 +logic.end3985: + %t55 = phi i1 [ false, %logic.from3983 ], [ %t54, %logic.rend3986 ] + br i1 %t55, label %then3987, label %endif3989 +then3987: %t56 = load i64, ptr %a11 call void @finch.drop.S_gen_Template(ptr %a27) ret i64 %t56 -endif3845: +endif3989: call void @finch.drop.S_gen_Template(ptr %a27) - br label %for.step3825 -for.step3825: + br label %for.step3969 +for.step3969: %t57 = load i64, ptr %a11 %t58 = add i64 %t57, 1 store i64 %t58, ptr %a11 - br label %for.cond3823 -for.end3826: + br label %for.cond3967 +for.end3970: ret i64 -1 } @@ -39998,14 +41646,14 @@ entry: store { ptr, i64, i64 } %p0, ptr %a1 store { ptr, i64, i64 } zeroinitializer, ptr %a2 store i64 0, ptr %a3 - br label %each.cond3846 -each.cond3846: + br label %each.cond3990 +each.cond3990: %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t5 = load i64, ptr %t4 %t6 = load i64, ptr %a3 %t7 = icmp slt i64 %t6, %t5 - br i1 %t7, label %each.body3847, label %each.end3849 -each.body3847: + br i1 %t7, label %each.body3991, label %each.end3993 +each.body3991: %t8 = load ptr, ptr %a1 %t9 = getelementptr inbounds %S.ast.Type, ptr %t8, i64 %t6 %t10 = load %S.ast.Type, ptr %t9 @@ -40020,15 +41668,15 @@ each.body3847: %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %t17, i64 %t15 store { ptr, i64, i64 } %t14, ptr %t18 store i64 %t16, ptr %t12 - br label %each.step3848 -each.step3848: + br label %each.step3992 +each.step3992: %t19 = load i64, ptr %a3 %t20 = add i64 %t19, 1 store i64 %t20, ptr %a3 - br label %each.cond3846 -each.end3849: + br label %each.cond3990 +each.end3993: %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.2375, i64 2, i64 0 }, ptr %a22 + store { ptr, i64, i64 } { ptr @.str.2460, i64 2, i64 0 }, ptr %a22 call void @finch_str_join(ptr %a23, ptr %a2, ptr %a22) %t24 = load { ptr, i64, i64 }, ptr %a23 call void @finch.drop.arr_str(ptr %a2) @@ -40136,21 +41784,21 @@ entry: %t6 = load ptr, ptr %a1 %t7 = load { ptr, i64, i64 }, ptr %a2 %t8 = load { ptr, i64, i64 }, ptr %a3 - %t9 = call i64 @finch.gen.findTemplate(ptr %t6, { ptr, i64, i64 } %t7, { ptr, i64, i64 } %t8, { ptr, i64, i64 } { ptr @.str.2376, i64 0, i64 0 }, i1 true) + %t9 = call i64 @finch.gen.findTemplate(ptr %t6, { ptr, i64, i64 } %t7, { ptr, i64, i64 } %t8, { ptr, i64, i64 } { ptr @.str.2461, i64 0, i64 0 }, i1 true) store i64 %t9, ptr %a10 %t11 = load i64, ptr %a10 %t12 = icmp slt i64 %t11, 0 - br i1 %t12, label %then3850, label %endif3852 -then3850: + br i1 %t12, label %then3994, label %endif3996 +then3994: %t13 = load ptr, ptr %a1 %t14 = load %S.ast.Node, ptr %a5 %t15 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.2377, i64 34, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.2462, i64 34, i64 0 }, ptr %a17 store { ptr, i64, i64 } %t15, ptr %a18 call void @finch_str_concat(ptr %a16, ptr %a17, ptr %a18) %t19 = load { ptr, i64, i64 }, ptr %a16 store { ptr, i64, i64 } %t19, ptr %a21 - store { ptr, i64, i64 } { ptr @.str.2378, i64 28, i64 0 }, ptr %a22 + store { ptr, i64, i64 } { ptr @.str.2463, i64 28, i64 0 }, ptr %a22 call void @finch_str_concat(ptr %a20, ptr %a21, ptr %a22) store { ptr, i64, i64 } %t19, ptr %a23 call void @finch_str_drop(ptr %a23) @@ -40163,7 +41811,7 @@ then3850: call void @finch_str_drop(ptr %a29) %t30 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t30, ptr %a32 - store { ptr, i64, i64 } { ptr @.str.2379, i64 34, i64 0 }, ptr %a33 + store { ptr, i64, i64 } { ptr @.str.2464, i64 34, i64 0 }, ptr %a33 call void @finch_str_concat(ptr %a31, ptr %a32, ptr %a33) store { ptr, i64, i64 } %t30, ptr %a34 call void @finch_str_drop(ptr %a34) @@ -40171,25 +41819,25 @@ then3850: call void @finch.gen.fail(ptr %t13, %S.ast.Node %t14, { ptr, i64, i64 } %t35) store { ptr, i64, i64 } %t35, ptr %a36 call void @finch_str_drop(ptr %a36) - br label %endif3852 -endif3852: + br label %endif3996 +endif3996: %t37 = load ptr, ptr %a1 %t38 = icmp eq ptr %t37, null - br i1 %t38, label %panic3853, label %ok3854 -panic3853: - call void @finch_panic(ptr @.str.2380, i64 1617, ptr @.str.2381) + br i1 %t38, label %panic3997, label %ok3998 +panic3997: + call void @finch_panic(ptr @.str.2465, i64 1698, ptr @.str.2466) unreachable -ok3854: +ok3998: %t39 = getelementptr inbounds %S.gen.Gen, ptr %t37, i32 0, i32 17 %t40 = load i64, ptr %a10 %t41 = load { ptr, i64, i64 }, ptr %t39 %t42 = extractvalue { ptr, i64, i64 } %t41, 1 %t43 = icmp uge i64 %t40, %t42 - br i1 %t43, label %range3855, label %inrange3856 -range3855: - call void @finch_panic_index(ptr @.str.2382, i64 1617, i64 %t40, i64 %t42) + br i1 %t43, label %range3999, label %inrange4000 +range3999: + call void @finch_panic_index(ptr @.str.2467, i64 1698, i64 %t40, i64 %t42) unreachable -inrange3856: +inrange4000: %t44 = extractvalue { ptr, i64, i64 } %t41, 0 %t45 = getelementptr inbounds %S.gen.Template, ptr %t44, i64 %t40 %t46 = load %S.gen.Template, ptr %t45 @@ -40203,13 +41851,13 @@ inrange3856: %t54 = getelementptr inbounds { ptr, i64, i64 }, ptr %t53, i32 0, i32 1 %t55 = load i64, ptr %t54 %t56 = icmp ne i64 %t52, %t55 - br i1 %t56, label %then3857, label %endif3859 -then3857: + br i1 %t56, label %then4001, label %endif4003 +then4001: %t57 = load ptr, ptr %a1 %t58 = load %S.ast.Node, ptr %a5 %t59 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t59, ptr %a61 - store { ptr, i64, i64 } { ptr @.str.2383, i64 7, i64 0 }, ptr %a62 + store { ptr, i64, i64 } { ptr @.str.2468, i64 7, i64 0 }, ptr %a62 call void @finch_str_concat(ptr %a60, ptr %a61, ptr %a62) %t63 = load { ptr, i64, i64 }, ptr %a60 %t64 = getelementptr inbounds %S.gen.Template, ptr %a50, i32 0, i32 3 @@ -40226,7 +41874,7 @@ then3857: call void @finch_str_drop(ptr %a73) %t74 = load { ptr, i64, i64 }, ptr %a69 store { ptr, i64, i64 } %t74, ptr %a76 - store { ptr, i64, i64 } { ptr @.str.2384, i64 24, i64 0 }, ptr %a77 + store { ptr, i64, i64 } { ptr @.str.2469, i64 24, i64 0 }, ptr %a77 call void @finch_str_concat(ptr %a75, ptr %a76, ptr %a77) store { ptr, i64, i64 } %t74, ptr %a78 call void @finch_str_drop(ptr %a78) @@ -40239,14 +41887,14 @@ then3857: call void @finch_str_drop(ptr %a84) %t85 = load { ptr, i64, i64 }, ptr %a81 store { ptr, i64, i64 } %t85, ptr %a87 - store { ptr, i64, i64 } { ptr @.str.2385, i64 1, i64 0 }, ptr %a88 + store { ptr, i64, i64 } { ptr @.str.2470, i64 1, i64 0 }, ptr %a88 call void @finch_str_concat(ptr %a86, ptr %a87, ptr %a88) store { ptr, i64, i64 } %t85, ptr %a89 call void @finch_str_drop(ptr %a89) %t90 = load { ptr, i64, i64 }, ptr %a86 %t91 = getelementptr inbounds %S.gen.Template, ptr %a50, i32 0, i32 3 %t92 = getelementptr inbounds { ptr, i64, i64 }, ptr %t91, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.2386, i64 2, i64 0 }, ptr %a93 + store { ptr, i64, i64 } { ptr @.str.2471, i64 2, i64 0 }, ptr %a93 call void @finch_str_join(ptr %a94, ptr %t91, ptr %a93) %t95 = load { ptr, i64, i64 }, ptr %a94 store { ptr, i64, i64 } %t90, ptr %a97 @@ -40258,7 +41906,7 @@ then3857: call void @finch_str_drop(ptr %a100) %t101 = load { ptr, i64, i64 }, ptr %a96 store { ptr, i64, i64 } %t101, ptr %a103 - store { ptr, i64, i64 } { ptr @.str.2387, i64 11, i64 0 }, ptr %a104 + store { ptr, i64, i64 } { ptr @.str.2472, i64 11, i64 0 }, ptr %a104 call void @finch_str_concat(ptr %a102, ptr %a103, ptr %a104) store { ptr, i64, i64 } %t101, ptr %a105 call void @finch_str_drop(ptr %a105) @@ -40278,11 +41926,11 @@ then3857: call void @finch.gen.fail(ptr %t57, %S.ast.Node %t58, { ptr, i64, i64 } %t116) store { ptr, i64, i64 } %t116, ptr %a117 call void @finch_str_drop(ptr %a117) - br label %endif3859 -endif3859: + br label %endif4003 +endif4003: %t118 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t118, ptr %a120 - store { ptr, i64, i64 } { ptr @.str.2388, i64 1, i64 0 }, ptr %a121 + store { ptr, i64, i64 } { ptr @.str.2473, i64 1, i64 0 }, ptr %a121 call void @finch_str_concat(ptr %a119, ptr %a120, ptr %a121) %t122 = load { ptr, i64, i64 }, ptr %a119 %t123 = load { ptr, i64, i64 }, ptr %a4 @@ -40296,7 +41944,7 @@ endif3859: call void @finch_str_drop(ptr %a129) %t130 = load { ptr, i64, i64 }, ptr %a125 store { ptr, i64, i64 } %t130, ptr %a132 - store { ptr, i64, i64 } { ptr @.str.2389, i64 1, i64 0 }, ptr %a133 + store { ptr, i64, i64 } { ptr @.str.2474, i64 1, i64 0 }, ptr %a133 call void @finch_str_concat(ptr %a131, ptr %a132, ptr %a133) store { ptr, i64, i64 } %t130, ptr %a134 call void @finch_str_drop(ptr %a134) @@ -40307,15 +41955,15 @@ endif3859: %t139 = load { ptr, i64, i64 }, ptr %a136 %t140 = call i64 @finch.gen.findStruct(ptr %t137, { ptr, i64, i64 } %t138, { ptr, i64, i64 } %t139) %t141 = icmp slt i64 %t140, 0 - br i1 %t141, label %then3860, label %endif3862 -then3860: + br i1 %t141, label %then4004, label %endif4006 +then4004: %t142 = load ptr, ptr %a1 %t143 = icmp eq ptr %t142, null - br i1 %t143, label %panic3863, label %ok3864 -panic3863: - call void @finch_panic(ptr @.str.2390, i64 1623, ptr @.str.2391) + br i1 %t143, label %panic4007, label %ok4008 +panic4007: + call void @finch_panic(ptr @.str.2475, i64 1704, ptr @.str.2476) unreachable -ok3864: +ok4008: %t144 = getelementptr inbounds %S.gen.Gen, ptr %t142, i32 0, i32 16 %t145 = getelementptr inbounds { ptr, i64, i64 }, ptr %t144, i32 0, i32 1 %t146 = load { ptr, i64, i64 }, ptr %a2 @@ -40360,19 +42008,19 @@ ok3864: %t182 = load ptr, ptr %a1 %t183 = load ptr, ptr %a1 %t184 = icmp eq ptr %t183, null - br i1 %t184, label %panic3865, label %ok3866 -panic3865: - call void @finch_panic(ptr @.str.2392, i64 1624, ptr @.str.2393) + br i1 %t184, label %panic4009, label %ok4010 +panic4009: + call void @finch_panic(ptr @.str.2477, i64 1705, ptr @.str.2478) unreachable -ok3866: +ok4010: %t185 = getelementptr inbounds %S.gen.Gen, ptr %t183, i32 0, i32 16 %t186 = getelementptr inbounds { ptr, i64, i64 }, ptr %t185, i32 0, i32 1 %t187 = load i64, ptr %t186 %t188 = sub i64 %t187, 1 call void @finch.gen.resolveStruct(ptr %t182, i64 %t188) - br label %endif3862 -endif3862: - %t189 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.2394, i64 6, i64 0 }, 0 + br label %endif4006 +endif4006: + %t189 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.2479, i64 6, i64 0 }, 0 %t190 = load { ptr, i64, i64 }, ptr %a136 store { ptr, i64, i64 } %t190, ptr %a191 call void @finch_str_copy(ptr %a192, ptr %a191) @@ -40539,21 +42187,21 @@ entry: store %S.ast.Node %p4, ptr %a5 %t6 = load ptr, ptr %a1 %t7 = icmp eq ptr %t6, null - br i1 %t7, label %panic3867, label %ok3868 -panic3867: - call void @finch_panic(ptr @.str.2395, i64 1631, ptr @.str.2396) + br i1 %t7, label %panic4011, label %ok4012 +panic4011: + call void @finch_panic(ptr @.str.2480, i64 1712, ptr @.str.2481) unreachable -ok3868: +ok4012: %t8 = getelementptr inbounds %S.gen.Gen, ptr %t6, i32 0, i32 17 %t9 = load i64, ptr %a2 %t10 = load { ptr, i64, i64 }, ptr %t8 %t11 = extractvalue { ptr, i64, i64 } %t10, 1 %t12 = icmp uge i64 %t9, %t11 - br i1 %t12, label %range3869, label %inrange3870 -range3869: - call void @finch_panic_index(ptr @.str.2397, i64 1631, i64 %t9, i64 %t11) + br i1 %t12, label %range4013, label %inrange4014 +range4013: + call void @finch_panic_index(ptr @.str.2482, i64 1712, i64 %t9, i64 %t11) unreachable -inrange3870: +inrange4014: %t13 = extractvalue { ptr, i64, i64 } %t10, 0 %t14 = getelementptr inbounds %S.gen.Template, ptr %t13, i64 %t9 %t15 = load %S.gen.Template, ptr %t14 @@ -40564,7 +42212,7 @@ inrange3870: %t20 = getelementptr inbounds %S.gen.Template, ptr %a19, i32 0, i32 1 %t21 = load { ptr, i64, i64 }, ptr %t20 store { ptr, i64, i64 } %t21, ptr %a23 - store { ptr, i64, i64 } { ptr @.str.2398, i64 1, i64 0 }, ptr %a24 + store { ptr, i64, i64 } { ptr @.str.2483, i64 1, i64 0 }, ptr %a24 call void @finch_str_concat(ptr %a22, ptr %a23, ptr %a24) %t25 = load { ptr, i64, i64 }, ptr %a22 %t26 = load { ptr, i64, i64 }, ptr %a3 @@ -40578,7 +42226,7 @@ inrange3870: call void @finch_str_drop(ptr %a32) %t33 = load { ptr, i64, i64 }, ptr %a28 store { ptr, i64, i64 } %t33, ptr %a35 - store { ptr, i64, i64 } { ptr @.str.2399, i64 1, i64 0 }, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.2484, i64 1, i64 0 }, ptr %a36 call void @finch_str_concat(ptr %a34, ptr %a35, ptr %a36) store { ptr, i64, i64 } %t33, ptr %a37 call void @finch_str_drop(ptr %a37) @@ -40588,8 +42236,8 @@ inrange3870: %t41 = getelementptr inbounds { ptr, i64, i64 }, ptr %t40, i32 0, i32 1 %t42 = load i64, ptr %t41 %t43 = icmp sgt i64 %t42, 0 - br i1 %t43, label %then3871, label %else3872 -then3871: + br i1 %t43, label %then4015, label %else4016 +then4015: %t44 = load ptr, ptr %a1 %t45 = getelementptr inbounds %S.gen.Template, ptr %a19, i32 0, i32 0 %t46 = load { ptr, i64, i64 }, ptr %t45 @@ -40601,15 +42249,15 @@ then3871: store i64 %t51, ptr %a52 %t53 = load i64, ptr %a52 %t54 = icmp sge i64 %t53, 0 - br i1 %t54, label %then3874, label %endif3876 -then3874: + br i1 %t54, label %then4018, label %endif4020 +then4018: %t55 = load i64, ptr %a52 call void @finch_str_drop(ptr %a39) call void @finch.drop.S_gen_Template(ptr %a19) ret i64 %t55 -endif3876: - br label %endif3873 -else3872: +endif4020: + br label %endif4017 +else4016: %t56 = load ptr, ptr %a1 %t57 = getelementptr inbounds %S.gen.Template, ptr %a19, i32 0, i32 0 %t58 = load { ptr, i64, i64 }, ptr %t57 @@ -40618,33 +42266,33 @@ else3872: store i64 %t60, ptr %a61 %t62 = load i64, ptr %a61 %t63 = icmp sge i64 %t62, 0 - br i1 %t63, label %then3877, label %endif3879 -then3877: + br i1 %t63, label %then4021, label %endif4023 +then4021: %t64 = load i64, ptr %a61 call void @finch_str_drop(ptr %a39) call void @finch.drop.S_gen_Template(ptr %a19) ret i64 %t64 -endif3879: - br label %endif3873 -endif3873: +endif4023: + br label %endif4017 +endif4017: %t65 = load ptr, ptr %a1 %t66 = icmp eq ptr %t65, null - br i1 %t66, label %panic3880, label %ok3881 -panic3880: - call void @finch_panic(ptr @.str.2400, i64 1644, ptr @.str.2401) + br i1 %t66, label %panic4024, label %ok4025 +panic4024: + call void @finch_panic(ptr @.str.2485, i64 1725, ptr @.str.2486) unreachable -ok3881: +ok4025: %t67 = getelementptr inbounds %S.gen.Gen, ptr %t65, i32 0, i32 0 %t68 = getelementptr inbounds %S.gen.Template, ptr %a19, i32 0, i32 4 %t69 = load i64, ptr %t68 %t70 = load { ptr, i64, i64 }, ptr %t67 %t71 = extractvalue { ptr, i64, i64 } %t70, 1 %t72 = icmp uge i64 %t69, %t71 - br i1 %t72, label %range3882, label %inrange3883 -range3882: - call void @finch_panic_index(ptr @.str.2402, i64 1644, i64 %t69, i64 %t71) + br i1 %t72, label %range4026, label %inrange4027 +range4026: + call void @finch_panic_index(ptr @.str.2487, i64 1725, i64 %t69, i64 %t71) unreachable -inrange3883: +inrange4027: %t73 = extractvalue { ptr, i64, i64 } %t70, 0 %t74 = getelementptr inbounds %S.ast.Program, ptr %t73, i64 %t69 %t75 = getelementptr inbounds %S.ast.Program, ptr %t74, i32 0, i32 8 @@ -40653,11 +42301,11 @@ inrange3883: %t78 = load { ptr, i64, i64 }, ptr %t75 %t79 = extractvalue { ptr, i64, i64 } %t78, 1 %t80 = icmp uge i64 %t77, %t79 - br i1 %t80, label %range3884, label %inrange3885 -range3884: - call void @finch_panic_index(ptr @.str.2403, i64 1644, i64 %t77, i64 %t79) + br i1 %t80, label %range4028, label %inrange4029 +range4028: + call void @finch_panic_index(ptr @.str.2488, i64 1725, i64 %t77, i64 %t79) unreachable -inrange3885: +inrange4029: %t81 = extractvalue { ptr, i64, i64 } %t78, 0 %t82 = getelementptr inbounds %S.ast.Node, ptr %t81, i64 %t77 %t83 = load %S.ast.Node, ptr %t82 @@ -40714,14 +42362,14 @@ inrange3885: %t134 = getelementptr inbounds %S.gen.Template, ptr %a19, i32 0, i32 0 %t135 = load { ptr, i64, i64 }, ptr %t134 %t136 = call { ptr, i64, i64 } @finch.gen.modName({ ptr, i64, i64 } %t135) - store { ptr, i64, i64 } { ptr @.str.2404, i64 7, i64 0 }, ptr %a138 + store { ptr, i64, i64 } { ptr @.str.2489, i64 7, i64 0 }, ptr %a138 store { ptr, i64, i64 } %t136, ptr %a139 call void @finch_str_concat(ptr %a137, ptr %a138, ptr %a139) store { ptr, i64, i64 } %t136, ptr %a140 call void @finch_str_drop(ptr %a140) %t141 = load { ptr, i64, i64 }, ptr %a137 store { ptr, i64, i64 } %t141, ptr %a143 - store { ptr, i64, i64 } { ptr @.str.2405, i64 1, i64 0 }, ptr %a144 + store { ptr, i64, i64 } { ptr @.str.2490, i64 1, i64 0 }, ptr %a144 call void @finch_str_concat(ptr %a142, ptr %a143, ptr %a144) store { ptr, i64, i64 } %t141, ptr %a145 call void @finch_str_drop(ptr %a145) @@ -40745,8 +42393,8 @@ inrange3885: %t159 = getelementptr inbounds { ptr, i64, i64 }, ptr %t158, i32 0, i32 1 %t160 = load i64, ptr %t159 %t161 = icmp sgt i64 %t160, 0 - br i1 %t161, label %then3886, label %endif3888 -then3886: + br i1 %t161, label %then4030, label %endif4032 +then4030: %t162 = getelementptr inbounds %S.gen.Template, ptr %a19, i32 0, i32 1 %t163 = load { ptr, i64, i64 }, ptr %t162 %t164 = getelementptr inbounds %S.gen.FnSig, ptr %a133, i32 0, i32 1 @@ -40770,7 +42418,7 @@ then3886: %t178 = getelementptr inbounds %S.ast.Type, ptr %a4, i32 0, i32 2 %t179 = load { ptr, i64, i64 }, ptr %t178 store { ptr, i64, i64 } %t179, ptr %a181 - store { ptr, i64, i64 } { ptr @.str.2406, i64 1, i64 0 }, ptr %a182 + store { ptr, i64, i64 } { ptr @.str.2491, i64 1, i64 0 }, ptr %a182 call void @finch_str_concat(ptr %a180, ptr %a181, ptr %a182) %t183 = load { ptr, i64, i64 }, ptr %a180 %t184 = getelementptr inbounds %S.gen.Template, ptr %a19, i32 0, i32 1 @@ -40789,14 +42437,14 @@ then3886: %t194 = getelementptr inbounds %S.gen.Template, ptr %a19, i32 0, i32 0 %t195 = load { ptr, i64, i64 }, ptr %t194 %t196 = call { ptr, i64, i64 } @finch.gen.modName({ ptr, i64, i64 } %t195) - store { ptr, i64, i64 } { ptr @.str.2407, i64 7, i64 0 }, ptr %a198 + store { ptr, i64, i64 } { ptr @.str.2492, i64 7, i64 0 }, ptr %a198 store { ptr, i64, i64 } %t196, ptr %a199 call void @finch_str_concat(ptr %a197, ptr %a198, ptr %a199) store { ptr, i64, i64 } %t196, ptr %a200 call void @finch_str_drop(ptr %a200) %t201 = load { ptr, i64, i64 }, ptr %a197 store { ptr, i64, i64 } %t201, ptr %a203 - store { ptr, i64, i64 } { ptr @.str.2408, i64 1, i64 0 }, ptr %a204 + store { ptr, i64, i64 } { ptr @.str.2493, i64 1, i64 0 }, ptr %a204 call void @finch_str_concat(ptr %a202, ptr %a203, ptr %a204) store { ptr, i64, i64 } %t201, ptr %a205 call void @finch_str_drop(ptr %a205) @@ -40813,7 +42461,7 @@ then3886: call void @finch_str_drop(ptr %a214) %t215 = load { ptr, i64, i64 }, ptr %a210 store { ptr, i64, i64 } %t215, ptr %a217 - store { ptr, i64, i64 } { ptr @.str.2409, i64 1, i64 0 }, ptr %a218 + store { ptr, i64, i64 } { ptr @.str.2494, i64 1, i64 0 }, ptr %a218 call void @finch_str_concat(ptr %a216, ptr %a217, ptr %a218) store { ptr, i64, i64 } %t215, ptr %a219 call void @finch_str_drop(ptr %a219) @@ -40831,15 +42479,15 @@ then3886: store { ptr, i64, i64 } %t227, ptr %t228 store { ptr, i64, i64 } %t229, ptr %a230 call void @finch_str_drop(ptr %a230) - br label %endif3888 -endif3888: + br label %endif4032 +endif4032: %t231 = load ptr, ptr %a1 %t232 = icmp eq ptr %t231, null - br i1 %t232, label %panic3889, label %ok3890 -panic3889: - call void @finch_panic(ptr @.str.2410, i64 1653, ptr @.str.2411) + br i1 %t232, label %panic4033, label %ok4034 +panic4033: + call void @finch_panic(ptr @.str.2495, i64 1734, ptr @.str.2496) unreachable -ok3890: +ok4034: %t233 = getelementptr inbounds %S.gen.Gen, ptr %t231, i32 0, i32 18 %t234 = load { ptr, i64, i64 }, ptr %t233 store { ptr, i64, i64 } %t234, ptr %a235 @@ -40848,11 +42496,11 @@ ok3890: store { ptr, i64, i64 } %t237, ptr %a238 %t239 = load ptr, ptr %a1 %t240 = icmp eq ptr %t239, null - br i1 %t240, label %panic3891, label %ok3892 -panic3891: - call void @finch_panic(ptr @.str.2412, i64 1654, ptr @.str.2413) + br i1 %t240, label %panic4035, label %ok4036 +panic4035: + call void @finch_panic(ptr @.str.2497, i64 1735, ptr @.str.2498) unreachable -ok3892: +ok4036: %t241 = getelementptr inbounds %S.gen.Gen, ptr %t239, i32 0, i32 19 %t242 = load { ptr, i64, i64 }, ptr %t241 store { ptr, i64, i64 } %t242, ptr %a243 @@ -40861,11 +42509,11 @@ ok3892: store { ptr, i64, i64 } %t245, ptr %a246 %t247 = load ptr, ptr %a1 %t248 = icmp eq ptr %t247, null - br i1 %t248, label %panic3893, label %ok3894 -panic3893: - call void @finch_panic(ptr @.str.2414, i64 1655, ptr @.str.2415) + br i1 %t248, label %panic4037, label %ok4038 +panic4037: + call void @finch_panic(ptr @.str.2499, i64 1736, ptr @.str.2500) unreachable -ok3894: +ok4038: %t249 = getelementptr inbounds %S.gen.Gen, ptr %t247, i32 0, i32 14 %t250 = load { ptr, i64, i64 }, ptr %t249 store { ptr, i64, i64 } %t250, ptr %a251 @@ -40874,11 +42522,11 @@ ok3894: store { ptr, i64, i64 } %t253, ptr %a254 %t255 = load ptr, ptr %a1 %t256 = icmp eq ptr %t255, null - br i1 %t256, label %panic3895, label %ok3896 -panic3895: - call void @finch_panic(ptr @.str.2416, i64 1656, ptr @.str.2417) + br i1 %t256, label %panic4039, label %ok4040 +panic4039: + call void @finch_panic(ptr @.str.2501, i64 1737, ptr @.str.2502) unreachable -ok3896: +ok4040: %t257 = getelementptr inbounds %S.gen.Gen, ptr %t255, i32 0, i32 20 %t258 = load { ptr, i64, i64 }, ptr %t257 store { ptr, i64, i64 } %t258, ptr %a259 @@ -40889,11 +42537,11 @@ ok3896: %t264 = load { ptr, i64, i64 }, ptr %t263 %t265 = load ptr, ptr %a1 %t266 = icmp eq ptr %t265, null - br i1 %t266, label %panic3897, label %ok3898 -panic3897: - call void @finch_panic(ptr @.str.2418, i64 1657, ptr @.str.2419) + br i1 %t266, label %panic4041, label %ok4042 +panic4041: + call void @finch_panic(ptr @.str.2503, i64 1738, ptr @.str.2504) unreachable -ok3898: +ok4042: %t267 = getelementptr inbounds %S.gen.Gen, ptr %t265, i32 0, i32 18 store { ptr, i64, i64 } %t264, ptr %a268 call void @finch.copy.arr_str(ptr %a269, ptr %a268) @@ -40905,11 +42553,11 @@ ok3898: %t273 = load { ptr, i64, i64 }, ptr %a3 %t274 = load ptr, ptr %a1 %t275 = icmp eq ptr %t274, null - br i1 %t275, label %panic3899, label %ok3900 -panic3899: - call void @finch_panic(ptr @.str.2420, i64 1658, ptr @.str.2421) + br i1 %t275, label %panic4043, label %ok4044 +panic4043: + call void @finch_panic(ptr @.str.2505, i64 1739, ptr @.str.2506) unreachable -ok3900: +ok4044: %t276 = getelementptr inbounds %S.gen.Gen, ptr %t274, i32 0, i32 19 store { ptr, i64, i64 } %t273, ptr %a277 call void @finch.copy.arr_S_ast_Type(ptr %a278, ptr %a277) @@ -40922,11 +42570,11 @@ ok3900: %t283 = load { ptr, i64, i64 }, ptr %t282 %t284 = load ptr, ptr %a1 %t285 = icmp eq ptr %t284, null - br i1 %t285, label %panic3901, label %ok3902 -panic3901: - call void @finch_panic(ptr @.str.2422, i64 1659, ptr @.str.2423) + br i1 %t285, label %panic4045, label %ok4046 +panic4045: + call void @finch_panic(ptr @.str.2507, i64 1740, ptr @.str.2508) unreachable -ok3902: +ok4046: %t286 = getelementptr inbounds %S.gen.Gen, ptr %t284, i32 0, i32 14 store { ptr, i64, i64 } %t283, ptr %a287 call void @finch_str_copy(ptr %a288, ptr %a287) @@ -40937,23 +42585,23 @@ ok3902: call void @finch_str_drop(ptr %a291) %t292 = getelementptr inbounds %S.gen.FnSig, ptr %a133, i32 0, i32 8 %t293 = load { ptr, i64, i64 }, ptr %t292 - store { ptr, i64, i64 } { ptr @.str.2424, i64 17, i64 0 }, ptr %a295 + store { ptr, i64, i64 } { ptr @.str.2509, i64 17, i64 0 }, ptr %a295 store { ptr, i64, i64 } %t293, ptr %a296 call void @finch_str_concat(ptr %a294, ptr %a295, ptr %a296) %t297 = load { ptr, i64, i64 }, ptr %a294 store { ptr, i64, i64 } %t297, ptr %a299 - store { ptr, i64, i64 } { ptr @.str.2425, i64 1, i64 0 }, ptr %a300 + store { ptr, i64, i64 } { ptr @.str.2510, i64 1, i64 0 }, ptr %a300 call void @finch_str_concat(ptr %a298, ptr %a299, ptr %a300) store { ptr, i64, i64 } %t297, ptr %a301 call void @finch_str_drop(ptr %a301) %t302 = load { ptr, i64, i64 }, ptr %a298 %t303 = load ptr, ptr %a1 %t304 = icmp eq ptr %t303, null - br i1 %t304, label %panic3903, label %ok3904 -panic3903: - call void @finch_panic(ptr @.str.2426, i64 1660, ptr @.str.2427) + br i1 %t304, label %panic4047, label %ok4048 +panic4047: + call void @finch_panic(ptr @.str.2511, i64 1741, ptr @.str.2512) unreachable -ok3904: +ok4048: %t305 = getelementptr inbounds %S.gen.Gen, ptr %t303, i32 0, i32 20 %t306 = load { ptr, i64, i64 }, ptr %t305 store { ptr, i64, i64 } %t302, ptr %t305 @@ -40977,11 +42625,11 @@ ok3904: %t321 = load { ptr, i64, i64 }, ptr %t316 %t322 = extractvalue { ptr, i64, i64 } %t321, 1 %t323 = icmp uge i64 %t320, %t322 - br i1 %t323, label %range3905, label %inrange3906 -range3905: - call void @finch_panic_index(ptr @.str.2428, i64 1662, i64 %t320, i64 %t322) + br i1 %t323, label %range4049, label %inrange4050 +range4049: + call void @finch_panic_index(ptr @.str.2513, i64 1743, i64 %t320, i64 %t322) unreachable -inrange3906: +inrange4050: %t324 = extractvalue { ptr, i64, i64 } %t321, 0 %t325 = getelementptr inbounds %S.ast.Node, ptr %t324, i64 %t320 %t326 = load %S.ast.Node, ptr %t325 @@ -40994,23 +42642,23 @@ inrange3906: %t333 = load i64, ptr %t332 %t334 = sub i64 %t333, 1 store i64 0, ptr %a335 - br label %for.cond3907 -for.cond3907: + br label %for.cond4051 +for.cond4051: %t336 = load i64, ptr %a335 %t337 = icmp slt i64 %t336, %t334 - br i1 %t337, label %for.body3908, label %for.end3910 -for.body3908: + br i1 %t337, label %for.body4052, label %for.end4054 +for.body4052: %t338 = load ptr, ptr %a1 %t339 = getelementptr inbounds %S.ast.Node, ptr %a87, i32 0, i32 9 %t340 = load i64, ptr %a335 %t341 = load { ptr, i64, i64 }, ptr %t339 %t342 = extractvalue { ptr, i64, i64 } %t341, 1 %t343 = icmp uge i64 %t340, %t342 - br i1 %t343, label %range3911, label %inrange3912 -range3911: - call void @finch_panic_index(ptr @.str.2429, i64 1664, i64 %t340, i64 %t342) + br i1 %t343, label %range4055, label %inrange4056 +range4055: + call void @finch_panic_index(ptr @.str.2514, i64 1745, i64 %t340, i64 %t342) unreachable -inrange3912: +inrange4056: %t344 = extractvalue { ptr, i64, i64 } %t341, 0 %t345 = getelementptr inbounds %S.ast.Node, ptr %t344, i64 %t340 %t346 = getelementptr inbounds %S.ast.Node, ptr %t345, i32 0, i32 5 @@ -41020,11 +42668,11 @@ inrange3912: %t350 = load { ptr, i64, i64 }, ptr %t348 %t351 = extractvalue { ptr, i64, i64 } %t350, 1 %t352 = icmp uge i64 %t349, %t351 - br i1 %t352, label %range3913, label %inrange3914 -range3913: - call void @finch_panic_index(ptr @.str.2430, i64 1664, i64 %t349, i64 %t351) + br i1 %t352, label %range4057, label %inrange4058 +range4057: + call void @finch_panic_index(ptr @.str.2515, i64 1745, i64 %t349, i64 %t351) unreachable -inrange3914: +inrange4058: %t353 = extractvalue { ptr, i64, i64 } %t350, 0 %t354 = getelementptr inbounds %S.ast.Node, ptr %t353, i64 %t349 %t355 = load %S.ast.Node, ptr %t354 @@ -41050,11 +42698,11 @@ inrange3914: %t372 = load { ptr, i64, i64 }, ptr %t370 %t373 = extractvalue { ptr, i64, i64 } %t372, 1 %t374 = icmp uge i64 %t371, %t373 - br i1 %t374, label %range3915, label %inrange3916 -range3915: - call void @finch_panic_index(ptr @.str.2431, i64 1666, i64 %t371, i64 %t373) + br i1 %t374, label %range4059, label %inrange4060 +range4059: + call void @finch_panic_index(ptr @.str.2516, i64 1747, i64 %t371, i64 %t373) unreachable -inrange3916: +inrange4060: %t375 = extractvalue { ptr, i64, i64 } %t372, 0 %t376 = getelementptr inbounds %S.ast.Node, ptr %t375, i64 %t371 %t377 = getelementptr inbounds %S.ast.Node, ptr %t376, i32 0, i32 1 @@ -41074,21 +42722,21 @@ inrange3916: %t388 = load ptr, ptr %a1 %t389 = load %S.ast.Type, ptr %a357 %t390 = call i1 @finch.gen.owning(ptr %t388, %S.ast.Type %t389) - br label %logic.from3917 -logic.from3917: - br i1 %t390, label %logic.rhs3918, label %logic.end3919 -logic.rhs3918: + br label %logic.from4061 +logic.from4061: + br i1 %t390, label %logic.rhs4062, label %logic.end4063 +logic.rhs4062: %t391 = load ptr, ptr %a1 %t392 = getelementptr inbounds %S.ast.Node, ptr %a87, i32 0, i32 9 %t393 = load i64, ptr %a335 %t394 = load { ptr, i64, i64 }, ptr %t392 %t395 = extractvalue { ptr, i64, i64 } %t394, 1 %t396 = icmp uge i64 %t393, %t395 - br i1 %t396, label %range3920, label %inrange3921 -range3920: - call void @finch_panic_index(ptr @.str.2432, i64 1667, i64 %t393, i64 %t395) + br i1 %t396, label %range4064, label %inrange4065 +range4064: + call void @finch_panic_index(ptr @.str.2517, i64 1748, i64 %t393, i64 %t395) unreachable -inrange3921: +inrange4065: %t397 = extractvalue { ptr, i64, i64 } %t394, 0 %t398 = getelementptr inbounds %S.ast.Node, ptr %t397, i64 %t393 %t399 = getelementptr inbounds %S.ast.Node, ptr %t398, i32 0, i32 1 @@ -41096,11 +42744,11 @@ inrange3921: %t401 = load %S.ast.Node, ptr %a330 %t402 = call i1 @finch.gen.mutates(ptr %t391, { ptr, i64, i64 } %t400, %S.ast.Node %t401) %t403 = xor i1 %t402, true - br label %logic.rend3922 -logic.rend3922: - br label %logic.end3919 -logic.end3919: - %t404 = phi i1 [ false, %logic.from3917 ], [ %t403, %logic.rend3922 ] + br label %logic.rend4066 +logic.rend4066: + br label %logic.end4063 +logic.end4063: + %t404 = phi i1 [ false, %logic.from4061 ], [ %t403, %logic.rend4066 ] %t405 = load i64, ptr %t387 %t406 = add i64 %t405, 1 call void @finch_arr_reserve(ptr %t386, i64 %t406, i64 ptrtoint (ptr getelementptr (i1, ptr null, i32 1) to i64)) @@ -41109,21 +42757,21 @@ logic.end3919: store i1 %t404, ptr %t408 store i64 %t406, ptr %t387 call void @finch.drop.S_ast_Type(ptr %a357) - br label %for.step3909 -for.step3909: + br label %for.step4053 +for.step4053: %t409 = load i64, ptr %a335 %t410 = add i64 %t409, 1 store i64 %t410, ptr %a335 - br label %for.cond3907 -for.end3910: + br label %for.cond4051 +for.end4054: %t411 = load { ptr, i64, i64 }, ptr %a238 %t412 = load ptr, ptr %a1 %t413 = icmp eq ptr %t412, null - br i1 %t413, label %panic3923, label %ok3924 -panic3923: - call void @finch_panic(ptr @.str.2433, i64 1669, ptr @.str.2434) + br i1 %t413, label %panic4067, label %ok4068 +panic4067: + call void @finch_panic(ptr @.str.2518, i64 1750, ptr @.str.2519) unreachable -ok3924: +ok4068: %t414 = getelementptr inbounds %S.gen.Gen, ptr %t412, i32 0, i32 18 store { ptr, i64, i64 } %t411, ptr %a415 call void @finch.copy.arr_str(ptr %a416, ptr %a415) @@ -41135,11 +42783,11 @@ ok3924: %t420 = load { ptr, i64, i64 }, ptr %a246 %t421 = load ptr, ptr %a1 %t422 = icmp eq ptr %t421, null - br i1 %t422, label %panic3925, label %ok3926 -panic3925: - call void @finch_panic(ptr @.str.2435, i64 1670, ptr @.str.2436) + br i1 %t422, label %panic4069, label %ok4070 +panic4069: + call void @finch_panic(ptr @.str.2520, i64 1751, ptr @.str.2521) unreachable -ok3926: +ok4070: %t423 = getelementptr inbounds %S.gen.Gen, ptr %t421, i32 0, i32 19 store { ptr, i64, i64 } %t420, ptr %a424 call void @finch.copy.arr_S_ast_Type(ptr %a425, ptr %a424) @@ -41151,11 +42799,11 @@ ok3926: %t429 = load { ptr, i64, i64 }, ptr %a254 %t430 = load ptr, ptr %a1 %t431 = icmp eq ptr %t430, null - br i1 %t431, label %panic3927, label %ok3928 -panic3927: - call void @finch_panic(ptr @.str.2437, i64 1671, ptr @.str.2438) + br i1 %t431, label %panic4071, label %ok4072 +panic4071: + call void @finch_panic(ptr @.str.2522, i64 1752, ptr @.str.2523) unreachable -ok3928: +ok4072: %t432 = getelementptr inbounds %S.gen.Gen, ptr %t430, i32 0, i32 14 store { ptr, i64, i64 } %t429, ptr %a433 call void @finch_str_copy(ptr %a434, ptr %a433) @@ -41167,11 +42815,11 @@ ok3928: %t438 = load { ptr, i64, i64 }, ptr %a262 %t439 = load ptr, ptr %a1 %t440 = icmp eq ptr %t439, null - br i1 %t440, label %panic3929, label %ok3930 -panic3929: - call void @finch_panic(ptr @.str.2439, i64 1672, ptr @.str.2440) + br i1 %t440, label %panic4073, label %ok4074 +panic4073: + call void @finch_panic(ptr @.str.2524, i64 1753, ptr @.str.2525) unreachable -ok3930: +ok4074: %t441 = getelementptr inbounds %S.gen.Gen, ptr %t439, i32 0, i32 20 store { ptr, i64, i64 } %t438, ptr %a442 call void @finch_str_copy(ptr %a443, ptr %a442) @@ -41182,11 +42830,11 @@ ok3930: call void @finch_str_drop(ptr %a446) %t447 = load ptr, ptr %a1 %t448 = icmp eq ptr %t447, null - br i1 %t448, label %panic3931, label %ok3932 -panic3931: - call void @finch_panic(ptr @.str.2441, i64 1673, ptr @.str.2442) + br i1 %t448, label %panic4075, label %ok4076 +panic4075: + call void @finch_panic(ptr @.str.2526, i64 1754, ptr @.str.2527) unreachable -ok3932: +ok4076: %t449 = getelementptr inbounds %S.gen.Gen, ptr %t447, i32 0, i32 15 %t450 = getelementptr inbounds { ptr, i64, i64 }, ptr %t449, i32 0, i32 1 %t451 = load %S.gen.FnSig, ptr %a133 @@ -41202,11 +42850,11 @@ ok3932: store i64 %t456, ptr %t450 %t459 = load ptr, ptr %a1 %t460 = icmp eq ptr %t459, null - br i1 %t460, label %panic3933, label %ok3934 -panic3933: - call void @finch_panic(ptr @.str.2443, i64 1674, ptr @.str.2444) + br i1 %t460, label %panic4077, label %ok4078 +panic4077: + call void @finch_panic(ptr @.str.2528, i64 1755, ptr @.str.2529) unreachable -ok3934: +ok4078: %t461 = getelementptr inbounds %S.gen.Gen, ptr %t459, i32 0, i32 15 %t462 = getelementptr inbounds { ptr, i64, i64 }, ptr %t461, i32 0, i32 1 %t463 = load i64, ptr %t462 @@ -41274,39 +42922,39 @@ entry: %t6 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t7 = load { ptr, i64, i64 }, ptr %t6 store { ptr, i64, i64 } %t7, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.2445, i64 5, i64 0 }, ptr %a9 + store { ptr, i64, i64 } { ptr @.str.2530, i64 5, i64 0 }, ptr %a9 %t10 = call i32 @finch_str_eq(ptr %a8, ptr %a9) %t11 = icmp ne i32 %t10, 0 - br label %logic.from3935 -logic.from3935: - br i1 %t11, label %logic.rhs3936, label %logic.end3937 -logic.rhs3936: + br label %logic.from4079 +logic.from4079: + br i1 %t11, label %logic.rhs4080, label %logic.end4081 +logic.rhs4080: %t12 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %t12, i32 0, i32 1 %t14 = load i64, ptr %t13 %t15 = icmp eq i64 %t14, 0 - br label %logic.rend3938 -logic.rend3938: - br label %logic.end3937 -logic.end3937: - %t16 = phi i1 [ false, %logic.from3935 ], [ %t15, %logic.rend3938 ] - br label %logic.from3939 -logic.from3939: - br i1 %t16, label %logic.rhs3940, label %logic.end3941 -logic.rhs3940: + br label %logic.rend4082 +logic.rend4082: + br label %logic.end4081 +logic.end4081: + %t16 = phi i1 [ false, %logic.from4079 ], [ %t15, %logic.rend4082 ] + br label %logic.from4083 +logic.from4083: + br i1 %t16, label %logic.rhs4084, label %logic.end4085 +logic.rhs4084: %t17 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %t17, i32 0, i32 1 %t19 = load i64, ptr %t18 %t20 = icmp eq i64 %t19, 0 - br label %logic.rend3942 -logic.rend3942: - br label %logic.end3941 -logic.end3941: - %t21 = phi i1 [ false, %logic.from3939 ], [ %t20, %logic.rend3942 ] - br label %logic.from3943 -logic.from3943: - br i1 %t21, label %logic.rhs3944, label %logic.end3945 -logic.rhs3944: + br label %logic.rend4086 +logic.rend4086: + br label %logic.end4085 +logic.end4085: + %t21 = phi i1 [ false, %logic.from4083 ], [ %t20, %logic.rend4086 ] + br label %logic.from4087 +logic.from4087: + br i1 %t21, label %logic.rhs4088, label %logic.end4089 +logic.rhs4088: %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %a4, i32 0, i32 1 %t23 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 %t24 = load { ptr, i64, i64 }, ptr %t23 @@ -41314,36 +42962,36 @@ logic.rhs3944: %t26 = load i64, ptr %t22 %t27 = load ptr, ptr %a4 store i64 0, ptr %a28 - br label %find.cond3946 -find.cond3946: + br label %find.cond4090 +find.cond4090: %t29 = load i64, ptr %a28 %t30 = icmp slt i64 %t29, %t26 - br i1 %t30, label %find.body3947, label %find.end3950 -find.body3947: + br i1 %t30, label %find.body4091, label %find.end4094 +find.body4091: %t31 = getelementptr inbounds { ptr, i64, i64 }, ptr %t27, i64 %t29 %t32 = load { ptr, i64, i64 }, ptr %t31 store { ptr, i64, i64 } %t32, ptr %a33 store { ptr, i64, i64 } %t24, ptr %a34 %t35 = call i32 @finch_str_eq(ptr %a33, ptr %a34) %t36 = icmp ne i32 %t35, 0 - br i1 %t36, label %find.hit3948, label %find.next3949 -find.hit3948: + br i1 %t36, label %find.hit4092, label %find.next4093 +find.hit4092: store i64 %t29, ptr %a25 - br label %find.end3950 -find.next3949: + br label %find.end4094 +find.next4093: %t37 = add i64 %t29, 1 store i64 %t37, ptr %a28 - br label %find.cond3946 -find.end3950: + br label %find.cond4090 +find.end4094: %t38 = load i64, ptr %a25 %t39 = icmp sge i64 %t38, 0 - br label %logic.rend3951 -logic.rend3951: - br label %logic.end3945 -logic.end3945: - %t40 = phi i1 [ false, %logic.from3943 ], [ %t39, %logic.rend3951 ] - br i1 %t40, label %then3952, label %endif3954 -then3952: + br label %logic.rend4095 +logic.rend4095: + br label %logic.end4089 +logic.end4089: + %t40 = phi i1 [ false, %logic.from4087 ], [ %t39, %logic.rend4095 ] + br i1 %t40, label %then4096, label %endif4098 +then4096: %t41 = getelementptr inbounds { ptr, i64, i64 }, ptr %a4, i32 0, i32 1 %t42 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 %t43 = load { ptr, i64, i64 }, ptr %t42 @@ -41351,70 +42999,70 @@ then3952: %t45 = load i64, ptr %t41 %t46 = load ptr, ptr %a4 store i64 0, ptr %a47 - br label %find.cond3955 -find.cond3955: + br label %find.cond4099 +find.cond4099: %t48 = load i64, ptr %a47 %t49 = icmp slt i64 %t48, %t45 - br i1 %t49, label %find.body3956, label %find.end3959 -find.body3956: + br i1 %t49, label %find.body4100, label %find.end4103 +find.body4100: %t50 = getelementptr inbounds { ptr, i64, i64 }, ptr %t46, i64 %t48 %t51 = load { ptr, i64, i64 }, ptr %t50 store { ptr, i64, i64 } %t51, ptr %a52 store { ptr, i64, i64 } %t43, ptr %a53 %t54 = call i32 @finch_str_eq(ptr %a52, ptr %a53) %t55 = icmp ne i32 %t54, 0 - br i1 %t55, label %find.hit3957, label %find.next3958 -find.hit3957: + br i1 %t55, label %find.hit4101, label %find.next4102 +find.hit4101: store i64 %t48, ptr %a44 - br label %find.end3959 -find.next3958: + br label %find.end4103 +find.next4102: %t56 = add i64 %t48, 1 store i64 %t56, ptr %a47 - br label %find.cond3955 -find.end3959: + br label %find.cond4099 +find.end4103: %t57 = load i64, ptr %a44 store i64 %t57, ptr %a58 %t59 = load ptr, ptr %a5 %t60 = icmp eq ptr %t59, null - br i1 %t60, label %panic3960, label %ok3961 -panic3960: - call void @finch_panic(ptr @.str.2446, i64 1681, ptr @.str.2447) + br i1 %t60, label %panic4104, label %ok4105 +panic4104: + call void @finch_panic(ptr @.str.2531, i64 1762, ptr @.str.2532) unreachable -ok3961: +ok4105: %t61 = getelementptr inbounds %S.gen.Binds, ptr %t59, i32 0, i32 1 %t62 = load i64, ptr %a58 %t63 = load { ptr, i64, i64 }, ptr %t61 %t64 = extractvalue { ptr, i64, i64 } %t63, 1 %t65 = icmp uge i64 %t62, %t64 - br i1 %t65, label %range3962, label %inrange3963 -range3962: - call void @finch_panic_index(ptr @.str.2448, i64 1681, i64 %t62, i64 %t64) + br i1 %t65, label %range4106, label %inrange4107 +range4106: + call void @finch_panic_index(ptr @.str.2533, i64 1762, i64 %t62, i64 %t64) unreachable -inrange3963: +inrange4107: %t66 = extractvalue { ptr, i64, i64 } %t63, 0 %t67 = getelementptr inbounds i1, ptr %t66, i64 %t62 %t68 = load i1, ptr %t67 %t69 = xor i1 %t68, true - br i1 %t69, label %then3964, label %endif3966 -then3964: + br i1 %t69, label %then4108, label %endif4110 +then4108: %t70 = load %S.ast.Type, ptr %a3 %t71 = load ptr, ptr %a5 %t72 = icmp eq ptr %t71, null - br i1 %t72, label %panic3967, label %ok3968 -panic3967: - call void @finch_panic(ptr @.str.2449, i64 1682, ptr @.str.2450) + br i1 %t72, label %panic4111, label %ok4112 +panic4111: + call void @finch_panic(ptr @.str.2534, i64 1763, ptr @.str.2535) unreachable -ok3968: +ok4112: %t73 = getelementptr inbounds %S.gen.Binds, ptr %t71, i32 0, i32 0 %t74 = load i64, ptr %a58 %t75 = load { ptr, i64, i64 }, ptr %t73 %t76 = extractvalue { ptr, i64, i64 } %t75, 1 %t77 = icmp uge i64 %t74, %t76 - br i1 %t77, label %range3969, label %inrange3970 -range3969: - call void @finch_panic_index(ptr @.str.2451, i64 1682, i64 %t74, i64 %t76) + br i1 %t77, label %range4113, label %inrange4114 +range4113: + call void @finch_panic_index(ptr @.str.2536, i64 1763, i64 %t74, i64 %t76) unreachable -inrange3970: +inrange4114: %t78 = extractvalue { ptr, i64, i64 } %t75, 0 %t79 = getelementptr inbounds %S.ast.Type, ptr %t78, i64 %t74 store %S.ast.Type %t70, ptr %a80 @@ -41426,81 +43074,81 @@ inrange3970: call void @finch.drop.S_ast_Type(ptr %a84) %t85 = load ptr, ptr %a5 %t86 = icmp eq ptr %t85, null - br i1 %t86, label %panic3971, label %ok3972 -panic3971: - call void @finch_panic(ptr @.str.2452, i64 1683, ptr @.str.2453) + br i1 %t86, label %panic4115, label %ok4116 +panic4115: + call void @finch_panic(ptr @.str.2537, i64 1764, ptr @.str.2538) unreachable -ok3972: +ok4116: %t87 = getelementptr inbounds %S.gen.Binds, ptr %t85, i32 0, i32 1 %t88 = load i64, ptr %a58 %t89 = load { ptr, i64, i64 }, ptr %t87 %t90 = extractvalue { ptr, i64, i64 } %t89, 1 %t91 = icmp uge i64 %t88, %t90 - br i1 %t91, label %range3973, label %inrange3974 -range3973: - call void @finch_panic_index(ptr @.str.2454, i64 1683, i64 %t88, i64 %t90) + br i1 %t91, label %range4117, label %inrange4118 +range4117: + call void @finch_panic_index(ptr @.str.2539, i64 1764, i64 %t88, i64 %t90) unreachable -inrange3974: +inrange4118: %t92 = extractvalue { ptr, i64, i64 } %t89, 0 %t93 = getelementptr inbounds i1, ptr %t92, i64 %t88 store i1 true, ptr %t93 - br label %endif3966 -endif3966: + br label %endif4110 +endif4110: ret void -endif3954: +endif4098: %t94 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t95 = load { ptr, i64, i64 }, ptr %t94 store { ptr, i64, i64 } %t95, ptr %a96 - store { ptr, i64, i64 } { ptr @.str.2455, i64 5, i64 0 }, ptr %a97 + store { ptr, i64, i64 } { ptr @.str.2540, i64 5, i64 0 }, ptr %a97 %t98 = call i32 @finch_str_eq(ptr %a96, ptr %a97) %t99 = icmp ne i32 %t98, 0 - br label %logic.from3975 -logic.from3975: - br i1 %t99, label %logic.end3977, label %logic.rhs3976 -logic.rhs3976: + br label %logic.from4119 +logic.from4119: + br i1 %t99, label %logic.end4121, label %logic.rhs4120 +logic.rhs4120: %t100 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t101 = load { ptr, i64, i64 }, ptr %t100 store { ptr, i64, i64 } %t101, ptr %a102 - store { ptr, i64, i64 } { ptr @.str.2456, i64 3, i64 0 }, ptr %a103 + store { ptr, i64, i64 } { ptr @.str.2541, i64 3, i64 0 }, ptr %a103 %t104 = call i32 @finch_str_eq(ptr %a102, ptr %a103) %t105 = icmp ne i32 %t104, 0 - br label %logic.rend3978 -logic.rend3978: - br label %logic.end3977 -logic.end3977: - %t106 = phi i1 [ true, %logic.from3975 ], [ %t105, %logic.rend3978 ] - br label %logic.from3979 -logic.from3979: - br i1 %t106, label %logic.end3981, label %logic.rhs3980 -logic.rhs3980: + br label %logic.rend4122 +logic.rend4122: + br label %logic.end4121 +logic.end4121: + %t106 = phi i1 [ true, %logic.from4119 ], [ %t105, %logic.rend4122 ] + br label %logic.from4123 +logic.from4123: + br i1 %t106, label %logic.end4125, label %logic.rhs4124 +logic.rhs4124: %t107 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t108 = load { ptr, i64, i64 }, ptr %t107 store { ptr, i64, i64 } %t108, ptr %a109 - store { ptr, i64, i64 } { ptr @.str.2457, i64 5, i64 0 }, ptr %a110 + store { ptr, i64, i64 } { ptr @.str.2542, i64 5, i64 0 }, ptr %a110 %t111 = call i32 @finch_str_eq(ptr %a109, ptr %a110) %t112 = icmp ne i32 %t111, 0 - br label %logic.rend3982 -logic.rend3982: - br label %logic.end3981 -logic.end3981: - %t113 = phi i1 [ true, %logic.from3979 ], [ %t112, %logic.rend3982 ] - br label %logic.from3983 -logic.from3983: - br i1 %t113, label %logic.rhs3984, label %logic.end3985 -logic.rhs3984: + br label %logic.rend4126 +logic.rend4126: + br label %logic.end4125 +logic.end4125: + %t113 = phi i1 [ true, %logic.from4123 ], [ %t112, %logic.rend4126 ] + br label %logic.from4127 +logic.from4127: + br i1 %t113, label %logic.rhs4128, label %logic.end4129 +logic.rhs4128: %t114 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t115 = getelementptr inbounds { ptr, i64, i64 }, ptr %t114, i32 0, i32 1 %t116 = load i64, ptr %t115 %t117 = icmp sgt i64 %t116, 0 - br label %logic.rend3986 -logic.rend3986: - br label %logic.end3985 -logic.end3985: - %t118 = phi i1 [ false, %logic.from3983 ], [ %t117, %logic.rend3986 ] - br label %logic.from3987 -logic.from3987: - br i1 %t118, label %logic.rhs3988, label %logic.end3989 -logic.rhs3988: + br label %logic.rend4130 +logic.rend4130: + br label %logic.end4129 +logic.end4129: + %t118 = phi i1 [ false, %logic.from4127 ], [ %t117, %logic.rend4130 ] + br label %logic.from4131 +logic.from4131: + br i1 %t118, label %logic.rhs4132, label %logic.end4133 +logic.rhs4132: %t119 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t120 = load { ptr, i64, i64 }, ptr %t119 %t121 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 @@ -41509,36 +43157,36 @@ logic.rhs3988: store { ptr, i64, i64 } %t122, ptr %a124 %t125 = call i32 @finch_str_eq(ptr %a123, ptr %a124) %t126 = icmp ne i32 %t125, 0 - br label %logic.rend3990 -logic.rend3990: - br label %logic.end3989 -logic.end3989: - %t127 = phi i1 [ false, %logic.from3987 ], [ %t126, %logic.rend3990 ] - br label %logic.from3991 -logic.from3991: - br i1 %t127, label %logic.rhs3992, label %logic.end3993 -logic.rhs3992: + br label %logic.rend4134 +logic.rend4134: + br label %logic.end4133 +logic.end4133: + %t127 = phi i1 [ false, %logic.from4131 ], [ %t126, %logic.rend4134 ] + br label %logic.from4135 +logic.from4135: + br i1 %t127, label %logic.rhs4136, label %logic.end4137 +logic.rhs4136: %t128 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 1 %t129 = getelementptr inbounds { ptr, i64, i64 }, ptr %t128, i32 0, i32 1 %t130 = load i64, ptr %t129 %t131 = icmp sgt i64 %t130, 0 - br label %logic.rend3994 -logic.rend3994: - br label %logic.end3993 -logic.end3993: - %t132 = phi i1 [ false, %logic.from3991 ], [ %t131, %logic.rend3994 ] - br i1 %t132, label %then3995, label %endif3997 -then3995: + br label %logic.rend4138 +logic.rend4138: + br label %logic.end4137 +logic.end4137: + %t132 = phi i1 [ false, %logic.from4135 ], [ %t131, %logic.rend4138 ] + br i1 %t132, label %then4139, label %endif4141 +then4139: %t133 = load ptr, ptr %a1 %t134 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t135 = load { ptr, i64, i64 }, ptr %t134 %t136 = extractvalue { ptr, i64, i64 } %t135, 1 %t137 = icmp uge i64 0, %t136 - br i1 %t137, label %range3998, label %inrange3999 -range3998: - call void @finch_panic_index(ptr @.str.2458, i64 1688, i64 0, i64 %t136) + br i1 %t137, label %range4142, label %inrange4143 +range4142: + call void @finch_panic_index(ptr @.str.2543, i64 1769, i64 0, i64 %t136) unreachable -inrange3999: +inrange4143: %t138 = extractvalue { ptr, i64, i64 } %t135, 0 %t139 = getelementptr inbounds %S.ast.Type, ptr %t138, i64 0 %t140 = load %S.ast.Type, ptr %t139 @@ -41546,11 +43194,11 @@ inrange3999: %t142 = load { ptr, i64, i64 }, ptr %t141 %t143 = extractvalue { ptr, i64, i64 } %t142, 1 %t144 = icmp uge i64 0, %t143 - br i1 %t144, label %range4000, label %inrange4001 -range4000: - call void @finch_panic_index(ptr @.str.2459, i64 1688, i64 0, i64 %t143) + br i1 %t144, label %range4144, label %inrange4145 +range4144: + call void @finch_panic_index(ptr @.str.2544, i64 1769, i64 0, i64 %t143) unreachable -inrange4001: +inrange4145: %t145 = extractvalue { ptr, i64, i64 } %t142, 0 %t146 = getelementptr inbounds %S.ast.Type, ptr %t145, i64 0 %t147 = load %S.ast.Type, ptr %t146 @@ -41558,40 +43206,40 @@ inrange4001: %t149 = load ptr, ptr %a5 call void @finch.gen.bindType(ptr %t133, %S.ast.Type %t140, %S.ast.Type %t147, { ptr, i64, i64 } %t148, ptr %t149) ret void -endif3997: +endif4141: %t150 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t151 = load { ptr, i64, i64 }, ptr %t150 store { ptr, i64, i64 } %t151, ptr %a152 - store { ptr, i64, i64 } { ptr @.str.2460, i64 3, i64 0 }, ptr %a153 + store { ptr, i64, i64 } { ptr @.str.2545, i64 3, i64 0 }, ptr %a153 %t154 = call i32 @finch_str_eq(ptr %a152, ptr %a153) %t155 = icmp ne i32 %t154, 0 - br label %logic.from4002 -logic.from4002: - br i1 %t155, label %logic.rhs4003, label %logic.end4004 -logic.rhs4003: + br label %logic.from4146 +logic.from4146: + br i1 %t155, label %logic.rhs4147, label %logic.end4148 +logic.rhs4147: %t156 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t157 = load { ptr, i64, i64 }, ptr %t156 store { ptr, i64, i64 } %t157, ptr %a158 - store { ptr, i64, i64 } { ptr @.str.2461, i64 3, i64 0 }, ptr %a159 + store { ptr, i64, i64 } { ptr @.str.2546, i64 3, i64 0 }, ptr %a159 %t160 = call i32 @finch_str_eq(ptr %a158, ptr %a159) %t161 = icmp ne i32 %t160, 0 - br label %logic.rend4005 -logic.rend4005: - br label %logic.end4004 -logic.end4004: - %t162 = phi i1 [ false, %logic.from4002 ], [ %t161, %logic.rend4005 ] - br i1 %t162, label %then4006, label %endif4008 -then4006: + br label %logic.rend4149 +logic.rend4149: + br label %logic.end4148 +logic.end4148: + %t162 = phi i1 [ false, %logic.from4146 ], [ %t161, %logic.rend4149 ] + br i1 %t162, label %then4150, label %endif4152 +then4150: %t163 = load ptr, ptr %a1 %t164 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t165 = load { ptr, i64, i64 }, ptr %t164 %t166 = extractvalue { ptr, i64, i64 } %t165, 1 %t167 = icmp uge i64 0, %t166 - br i1 %t167, label %range4009, label %inrange4010 -range4009: - call void @finch_panic_index(ptr @.str.2462, i64 1692, i64 0, i64 %t166) + br i1 %t167, label %range4153, label %inrange4154 +range4153: + call void @finch_panic_index(ptr @.str.2547, i64 1773, i64 0, i64 %t166) unreachable -inrange4010: +inrange4154: %t168 = extractvalue { ptr, i64, i64 } %t165, 0 %t169 = getelementptr inbounds %S.ast.Type, ptr %t168, i64 0 %t170 = load %S.ast.Type, ptr %t169 @@ -41599,11 +43247,11 @@ inrange4010: %t172 = load { ptr, i64, i64 }, ptr %t171 %t173 = extractvalue { ptr, i64, i64 } %t172, 1 %t174 = icmp uge i64 0, %t173 - br i1 %t174, label %range4011, label %inrange4012 -range4011: - call void @finch_panic_index(ptr @.str.2463, i64 1692, i64 0, i64 %t173) + br i1 %t174, label %range4155, label %inrange4156 +range4155: + call void @finch_panic_index(ptr @.str.2548, i64 1773, i64 0, i64 %t173) unreachable -inrange4012: +inrange4156: %t175 = extractvalue { ptr, i64, i64 } %t172, 0 %t176 = getelementptr inbounds %S.ast.Type, ptr %t175, i64 0 %t177 = load %S.ast.Type, ptr %t176 @@ -41615,11 +43263,11 @@ inrange4012: %t182 = load { ptr, i64, i64 }, ptr %t181 %t183 = extractvalue { ptr, i64, i64 } %t182, 1 %t184 = icmp uge i64 1, %t183 - br i1 %t184, label %range4013, label %inrange4014 -range4013: - call void @finch_panic_index(ptr @.str.2464, i64 1693, i64 1, i64 %t183) + br i1 %t184, label %range4157, label %inrange4158 +range4157: + call void @finch_panic_index(ptr @.str.2549, i64 1774, i64 1, i64 %t183) unreachable -inrange4014: +inrange4158: %t185 = extractvalue { ptr, i64, i64 } %t182, 0 %t186 = getelementptr inbounds %S.ast.Type, ptr %t185, i64 1 %t187 = load %S.ast.Type, ptr %t186 @@ -41627,11 +43275,11 @@ inrange4014: %t189 = load { ptr, i64, i64 }, ptr %t188 %t190 = extractvalue { ptr, i64, i64 } %t189, 1 %t191 = icmp uge i64 1, %t190 - br i1 %t191, label %range4015, label %inrange4016 -range4015: - call void @finch_panic_index(ptr @.str.2465, i64 1693, i64 1, i64 %t190) + br i1 %t191, label %range4159, label %inrange4160 +range4159: + call void @finch_panic_index(ptr @.str.2550, i64 1774, i64 1, i64 %t190) unreachable -inrange4016: +inrange4160: %t192 = extractvalue { ptr, i64, i64 } %t189, 0 %t193 = getelementptr inbounds %S.ast.Type, ptr %t192, i64 1 %t194 = load %S.ast.Type, ptr %t193 @@ -41639,50 +43287,50 @@ inrange4016: %t196 = load ptr, ptr %a5 call void @finch.gen.bindType(ptr %t180, %S.ast.Type %t187, %S.ast.Type %t194, { ptr, i64, i64 } %t195, ptr %t196) ret void -endif4008: +endif4152: %t197 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t198 = load { ptr, i64, i64 }, ptr %t197 store { ptr, i64, i64 } %t198, ptr %a199 - store { ptr, i64, i64 } { ptr @.str.2466, i64 5, i64 0 }, ptr %a200 + store { ptr, i64, i64 } { ptr @.str.2551, i64 5, i64 0 }, ptr %a200 %t201 = call i32 @finch_str_eq(ptr %a199, ptr %a200) %t202 = icmp ne i32 %t201, 0 - br label %logic.from4017 -logic.from4017: - br i1 %t202, label %logic.rhs4018, label %logic.end4019 -logic.rhs4018: + br label %logic.from4161 +logic.from4161: + br i1 %t202, label %logic.rhs4162, label %logic.end4163 +logic.rhs4162: %t203 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t204 = getelementptr inbounds { ptr, i64, i64 }, ptr %t203, i32 0, i32 1 %t205 = load i64, ptr %t204 %t206 = icmp sgt i64 %t205, 0 - br label %logic.rend4020 -logic.rend4020: - br label %logic.end4019 -logic.end4019: - %t207 = phi i1 [ false, %logic.from4017 ], [ %t206, %logic.rend4020 ] - br label %logic.from4021 -logic.from4021: - br i1 %t207, label %logic.rhs4022, label %logic.end4023 -logic.rhs4022: + br label %logic.rend4164 +logic.rend4164: + br label %logic.end4163 +logic.end4163: + %t207 = phi i1 [ false, %logic.from4161 ], [ %t206, %logic.rend4164 ] + br label %logic.from4165 +logic.from4165: + br i1 %t207, label %logic.rhs4166, label %logic.end4167 +logic.rhs4166: %t208 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t209 = load { ptr, i64, i64 }, ptr %t208 store { ptr, i64, i64 } %t209, ptr %a210 - store { ptr, i64, i64 } { ptr @.str.2467, i64 6, i64 0 }, ptr %a211 + store { ptr, i64, i64 } { ptr @.str.2552, i64 6, i64 0 }, ptr %a211 %t212 = call i32 @finch_str_eq(ptr %a210, ptr %a211) %t213 = icmp ne i32 %t212, 0 - br label %logic.rend4024 -logic.rend4024: - br label %logic.end4023 -logic.end4023: - %t214 = phi i1 [ false, %logic.from4021 ], [ %t213, %logic.rend4024 ] - br i1 %t214, label %then4025, label %endif4027 -then4025: + br label %logic.rend4168 +logic.rend4168: + br label %logic.end4167 +logic.end4167: + %t214 = phi i1 [ false, %logic.from4165 ], [ %t213, %logic.rend4168 ] + br i1 %t214, label %then4169, label %endif4171 +then4169: %t215 = load ptr, ptr %a1 %t216 = icmp eq ptr %t215, null - br i1 %t216, label %panic4028, label %ok4029 -panic4028: - call void @finch_panic(ptr @.str.2468, i64 1697, ptr @.str.2469) + br i1 %t216, label %panic4172, label %ok4173 +panic4172: + call void @finch_panic(ptr @.str.2553, i64 1778, ptr @.str.2554) unreachable -ok4029: +ok4173: %t217 = getelementptr inbounds %S.gen.Gen, ptr %t215, i32 0, i32 16 %t218 = load ptr, ptr %a1 %t219 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 3 @@ -41693,11 +43341,11 @@ ok4029: %t224 = load { ptr, i64, i64 }, ptr %t217 %t225 = extractvalue { ptr, i64, i64 } %t224, 1 %t226 = icmp uge i64 %t223, %t225 - br i1 %t226, label %range4030, label %inrange4031 -range4030: - call void @finch_panic_index(ptr @.str.2470, i64 1697, i64 %t223, i64 %t225) + br i1 %t226, label %range4174, label %inrange4175 +range4174: + call void @finch_panic_index(ptr @.str.2555, i64 1778, i64 %t223, i64 %t225) unreachable -inrange4031: +inrange4175: %t227 = extractvalue { ptr, i64, i64 } %t224, 0 %t228 = getelementptr inbounds %S.gen.StructDef, ptr %t227, i64 %t223 %t229 = load %S.gen.StructDef, ptr %t228 @@ -41713,10 +43361,10 @@ inrange4031: store { ptr, i64, i64 } %t237, ptr %a239 %t240 = call i32 @finch_str_eq(ptr %a238, ptr %a239) %t241 = icmp ne i32 %t240, 0 - br label %logic.from4032 -logic.from4032: - br i1 %t241, label %logic.rhs4033, label %logic.end4034 -logic.rhs4033: + br label %logic.from4176 +logic.from4176: + br i1 %t241, label %logic.rhs4177, label %logic.end4178 +logic.rhs4177: %t242 = getelementptr inbounds %S.gen.StructDef, ptr %a233, i32 0, i32 7 %t243 = getelementptr inbounds { ptr, i64, i64 }, ptr %t242, i32 0, i32 1 %t244 = load i64, ptr %t243 @@ -41724,34 +43372,34 @@ logic.rhs4033: %t246 = getelementptr inbounds { ptr, i64, i64 }, ptr %t245, i32 0, i32 1 %t247 = load i64, ptr %t246 %t248 = icmp eq i64 %t244, %t247 - br label %logic.rend4035 -logic.rend4035: - br label %logic.end4034 -logic.end4034: - %t249 = phi i1 [ false, %logic.from4032 ], [ %t248, %logic.rend4035 ] - br i1 %t249, label %then4036, label %endif4038 -then4036: + br label %logic.rend4179 +logic.rend4179: + br label %logic.end4178 +logic.end4178: + %t249 = phi i1 [ false, %logic.from4176 ], [ %t248, %logic.rend4179 ] + br i1 %t249, label %then4180, label %endif4182 +then4180: %t250 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t251 = getelementptr inbounds { ptr, i64, i64 }, ptr %t250, i32 0, i32 1 %t252 = load i64, ptr %t251 store i64 0, ptr %a253 - br label %for.cond4039 -for.cond4039: + br label %for.cond4183 +for.cond4183: %t254 = load i64, ptr %a253 %t255 = icmp slt i64 %t254, %t252 - br i1 %t255, label %for.body4040, label %for.end4042 -for.body4040: + br i1 %t255, label %for.body4184, label %for.end4186 +for.body4184: %t256 = load ptr, ptr %a1 %t257 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t258 = load i64, ptr %a253 %t259 = load { ptr, i64, i64 }, ptr %t257 %t260 = extractvalue { ptr, i64, i64 } %t259, 1 %t261 = icmp uge i64 %t258, %t260 - br i1 %t261, label %range4043, label %inrange4044 -range4043: - call void @finch_panic_index(ptr @.str.2471, i64 1700, i64 %t258, i64 %t260) + br i1 %t261, label %range4187, label %inrange4188 +range4187: + call void @finch_panic_index(ptr @.str.2556, i64 1781, i64 %t258, i64 %t260) unreachable -inrange4044: +inrange4188: %t262 = extractvalue { ptr, i64, i64 } %t259, 0 %t263 = getelementptr inbounds %S.ast.Type, ptr %t262, i64 %t258 %t264 = load %S.ast.Type, ptr %t263 @@ -41760,29 +43408,29 @@ inrange4044: %t267 = load { ptr, i64, i64 }, ptr %t265 %t268 = extractvalue { ptr, i64, i64 } %t267, 1 %t269 = icmp uge i64 %t266, %t268 - br i1 %t269, label %range4045, label %inrange4046 -range4045: - call void @finch_panic_index(ptr @.str.2472, i64 1700, i64 %t266, i64 %t268) + br i1 %t269, label %range4189, label %inrange4190 +range4189: + call void @finch_panic_index(ptr @.str.2557, i64 1781, i64 %t266, i64 %t268) unreachable -inrange4046: +inrange4190: %t270 = extractvalue { ptr, i64, i64 } %t267, 0 %t271 = getelementptr inbounds %S.ast.Type, ptr %t270, i64 %t266 %t272 = load %S.ast.Type, ptr %t271 %t273 = load { ptr, i64, i64 }, ptr %a4 %t274 = load ptr, ptr %a5 call void @finch.gen.bindType(ptr %t256, %S.ast.Type %t264, %S.ast.Type %t272, { ptr, i64, i64 } %t273, ptr %t274) - br label %for.step4041 -for.step4041: + br label %for.step4185 +for.step4185: %t275 = load i64, ptr %a253 %t276 = add i64 %t275, 1 store i64 %t276, ptr %a253 - br label %for.cond4039 -for.end4042: - br label %endif4038 -endif4038: + br label %for.cond4183 +for.end4186: + br label %endif4182 +endif4182: call void @finch.drop.S_gen_StructDef(ptr %a233) - br label %endif4027 -endif4027: + br label %endif4171 +endif4171: ret void } @@ -41793,19 +43441,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond4123 -n.cond4123: + br label %n.cond4267 +n.cond4267: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body4124, label %n.end4125 -n.body4124: + br i1 %t6, label %n.body4268, label %n.end4269 +n.body4268: %t7 = getelementptr inbounds %S.gen.Val, ptr %t1, i64 %t5 call void @finch.drop.S_gen_Val(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond4123 -n.end4125: + br label %n.cond4267 +n.end4269: call void @finch_arr_free(ptr %a) ret void } @@ -41932,21 +43580,21 @@ entry: store { ptr, i64, i64 } %p4, ptr %a5 %t6 = load ptr, ptr %a1 %t7 = icmp eq ptr %t6, null - br i1 %t7, label %panic4047, label %ok4048 -panic4047: - call void @finch_panic(ptr @.str.2473, i64 1708, ptr @.str.2474) + br i1 %t7, label %panic4191, label %ok4192 +panic4191: + call void @finch_panic(ptr @.str.2558, i64 1789, ptr @.str.2559) unreachable -ok4048: +ok4192: %t8 = getelementptr inbounds %S.gen.Gen, ptr %t6, i32 0, i32 17 %t9 = load i64, ptr %a3 %t10 = load { ptr, i64, i64 }, ptr %t8 %t11 = extractvalue { ptr, i64, i64 } %t10, 1 %t12 = icmp uge i64 %t9, %t11 - br i1 %t12, label %range4049, label %inrange4050 -range4049: - call void @finch_panic_index(ptr @.str.2475, i64 1708, i64 %t9, i64 %t11) + br i1 %t12, label %range4193, label %inrange4194 +range4193: + call void @finch_panic_index(ptr @.str.2560, i64 1789, i64 %t9, i64 %t11) unreachable -inrange4050: +inrange4194: %t13 = extractvalue { ptr, i64, i64 } %t10, 0 %t14 = getelementptr inbounds %S.gen.Template, ptr %t13, i64 %t9 %t15 = load %S.gen.Template, ptr %t14 @@ -41956,22 +43604,22 @@ inrange4050: store %S.gen.Template %t18, ptr %a19 %t20 = load ptr, ptr %a1 %t21 = icmp eq ptr %t20, null - br i1 %t21, label %panic4051, label %ok4052 -panic4051: - call void @finch_panic(ptr @.str.2476, i64 1709, ptr @.str.2477) + br i1 %t21, label %panic4195, label %ok4196 +panic4195: + call void @finch_panic(ptr @.str.2561, i64 1790, ptr @.str.2562) unreachable -ok4052: +ok4196: %t22 = getelementptr inbounds %S.gen.Gen, ptr %t20, i32 0, i32 0 %t23 = getelementptr inbounds %S.gen.Template, ptr %a19, i32 0, i32 4 %t24 = load i64, ptr %t23 %t25 = load { ptr, i64, i64 }, ptr %t22 %t26 = extractvalue { ptr, i64, i64 } %t25, 1 %t27 = icmp uge i64 %t24, %t26 - br i1 %t27, label %range4053, label %inrange4054 -range4053: - call void @finch_panic_index(ptr @.str.2478, i64 1709, i64 %t24, i64 %t26) + br i1 %t27, label %range4197, label %inrange4198 +range4197: + call void @finch_panic_index(ptr @.str.2563, i64 1790, i64 %t24, i64 %t26) unreachable -inrange4054: +inrange4198: %t28 = extractvalue { ptr, i64, i64 } %t25, 0 %t29 = getelementptr inbounds %S.ast.Program, ptr %t28, i64 %t24 %t30 = getelementptr inbounds %S.ast.Program, ptr %t29, i32 0, i32 8 @@ -41980,11 +43628,11 @@ inrange4054: %t33 = load { ptr, i64, i64 }, ptr %t30 %t34 = extractvalue { ptr, i64, i64 } %t33, 1 %t35 = icmp uge i64 %t32, %t34 - br i1 %t35, label %range4055, label %inrange4056 -range4055: - call void @finch_panic_index(ptr @.str.2479, i64 1709, i64 %t32, i64 %t34) + br i1 %t35, label %range4199, label %inrange4200 +range4199: + call void @finch_panic_index(ptr @.str.2564, i64 1790, i64 %t32, i64 %t34) unreachable -inrange4056: +inrange4200: %t36 = extractvalue { ptr, i64, i64 } %t33, 0 %t37 = getelementptr inbounds %S.ast.Node, ptr %t36, i64 %t32 %t38 = load %S.ast.Node, ptr %t37 @@ -42009,8 +43657,8 @@ inrange4056: %t56 = getelementptr inbounds { ptr, i64, i64 }, ptr %t55, i32 0, i32 1 %t57 = load i64, ptr %t56 %t58 = icmp sgt i64 %t57, 0 - br i1 %t58, label %then4057, label %endif4059 -then4057: + br i1 %t58, label %then4201, label %endif4203 +then4201: %t59 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 5 %t60 = getelementptr inbounds %S.ast.Type, ptr %t59, i32 0, i32 1 %t61 = getelementptr inbounds { ptr, i64, i64 }, ptr %t60, i32 0, i32 1 @@ -42019,13 +43667,13 @@ then4057: %t64 = getelementptr inbounds { ptr, i64, i64 }, ptr %t63, i32 0, i32 1 %t65 = load i64, ptr %t64 %t66 = icmp ne i64 %t62, %t65 - br i1 %t66, label %then4060, label %endif4062 -then4060: + br i1 %t66, label %then4204, label %endif4206 +then4204: %t67 = load ptr, ptr %a1 %t68 = load %S.ast.Node, ptr %a2 %t69 = load { ptr, i64, i64 }, ptr %a5 store { ptr, i64, i64 } %t69, ptr %a71 - store { ptr, i64, i64 } { ptr @.str.2480, i64 7, i64 0 }, ptr %a72 + store { ptr, i64, i64 } { ptr @.str.2565, i64 7, i64 0 }, ptr %a72 call void @finch_str_concat(ptr %a70, ptr %a71, ptr %a72) %t73 = load { ptr, i64, i64 }, ptr %a70 %t74 = getelementptr inbounds %S.gen.Template, ptr %a19, i32 0, i32 3 @@ -42042,7 +43690,7 @@ then4060: call void @finch_str_drop(ptr %a83) %t84 = load { ptr, i64, i64 }, ptr %a79 store { ptr, i64, i64 } %t84, ptr %a86 - store { ptr, i64, i64 } { ptr @.str.2481, i64 27, i64 0 }, ptr %a87 + store { ptr, i64, i64 } { ptr @.str.2566, i64 27, i64 0 }, ptr %a87 call void @finch_str_concat(ptr %a85, ptr %a86, ptr %a87) store { ptr, i64, i64 } %t84, ptr %a88 call void @finch_str_drop(ptr %a88) @@ -42064,19 +43712,19 @@ then4060: call void @finch.gen.fail(ptr %t67, %S.ast.Node %t68, { ptr, i64, i64 } %t101) store { ptr, i64, i64 } %t101, ptr %a102 call void @finch_str_drop(ptr %a102) - br label %endif4062 -endif4062: + br label %endif4206 +endif4206: %t103 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 5 %t104 = getelementptr inbounds %S.ast.Type, ptr %t103, i32 0, i32 1 store i64 0, ptr %a105 - br label %each.cond4063 -each.cond4063: + br label %each.cond4207 +each.cond4207: %t106 = getelementptr inbounds { ptr, i64, i64 }, ptr %t104, i32 0, i32 1 %t107 = load i64, ptr %t106 %t108 = load i64, ptr %a105 %t109 = icmp slt i64 %t108, %t107 - br i1 %t109, label %each.body4064, label %each.end4066 -each.body4064: + br i1 %t109, label %each.body4208, label %each.end4210 +each.body4208: %t110 = load ptr, ptr %t104 %t111 = getelementptr inbounds %S.ast.Type, ptr %t110, i64 %t108 %t112 = load %S.ast.Type, ptr %t111 @@ -42093,18 +43741,18 @@ each.body4064: %t122 = getelementptr inbounds %S.ast.Type, ptr %t121, i64 %t119 store %S.ast.Type %t118, ptr %t122 store i64 %t120, ptr %t114 - br label %each.step4065 -each.step4065: + br label %each.step4209 +each.step4209: %t123 = load i64, ptr %a105 %t124 = add i64 %t123, 1 store i64 %t124, ptr %a105 - br label %each.cond4063 -each.end4066: + br label %each.cond4207 +each.end4210: %t125 = load ptr, ptr %a1 %t126 = load ptr, ptr %a1 %t127 = load i64, ptr %a3 %t128 = load { ptr, i64, i64 }, ptr %a53 - %t129 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.2482, i64 4, i64 0 }) + %t129 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.2567, i64 4, i64 0 }) %t130 = load %S.ast.Node, ptr %a2 %t131 = call i64 @finch.gen.instFn(ptr %t126, i64 %t127, { ptr, i64, i64 } %t128, %S.ast.Type %t129, %S.ast.Node %t130) store %S.ast.Type %t129, ptr %a132 @@ -42112,26 +43760,26 @@ each.end4066: %t133 = load %S.ast.Node, ptr %a2 %t134 = load i64, ptr %a4 %t135 = load { ptr, i64, i64 }, ptr %a5 - %t136 = call %S.gen.Val @finch.gen.callFn(ptr %t125, i64 %t131, %S.ast.Node %t133, i64 %t134, { ptr, i64, i64 } %t135, { ptr, i64, i64 } { ptr @.str.2483, i64 0, i64 0 }, { ptr, i64, i64 } { ptr @.str.2484, i64 0, i64 0 }) + %t136 = call %S.gen.Val @finch.gen.callFn(ptr %t125, i64 %t131, %S.ast.Node %t133, i64 %t134, { ptr, i64, i64 } %t135, { ptr, i64, i64 } { ptr @.str.2568, i64 0, i64 0 }, { ptr, i64, i64 } { ptr @.str.2569, i64 0, i64 0 }) call void @finch.drop.arr_S_ast_Type(ptr %a53) call void @finch.drop.S_ast_Node(ptr %a42) call void @finch.drop.S_gen_Template(ptr %a19) ret %S.gen.Val %t136 -endif4059: +endif4203: store %S.gen.Binds zeroinitializer, ptr %a137 %t138 = getelementptr inbounds %S.gen.Template, ptr %a19, i32 0, i32 3 %t139 = getelementptr inbounds { ptr, i64, i64 }, ptr %t138, i32 0, i32 1 %t140 = load i64, ptr %t139 store i64 0, ptr %a141 - br label %for.cond4067 -for.cond4067: + br label %for.cond4211 +for.cond4211: %t142 = load i64, ptr %a141 %t143 = icmp slt i64 %t142, %t140 - br i1 %t143, label %for.body4068, label %for.end4070 -for.body4068: + br i1 %t143, label %for.body4212, label %for.end4214 +for.body4212: %t144 = getelementptr inbounds %S.gen.Binds, ptr %a137, i32 0, i32 0 %t145 = getelementptr inbounds { ptr, i64, i64 }, ptr %t144, i32 0, i32 1 - %t146 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.2485, i64 4, i64 0 }) + %t146 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.2570, i64 4, i64 0 }) %t147 = load i64, ptr %t145 %t148 = add i64 %t147, 1 call void @finch_arr_reserve(ptr %t144, i64 %t148, i64 ptrtoint (ptr getelementptr (%S.ast.Type, ptr null, i32 1) to i64)) @@ -42148,33 +43796,33 @@ for.body4068: %t156 = getelementptr inbounds i1, ptr %t155, i64 %t153 store i1 false, ptr %t156 store i64 %t154, ptr %t152 - br label %for.step4069 -for.step4069: + br label %for.step4213 +for.step4213: %t157 = load i64, ptr %a141 %t158 = add i64 %t157, 1 store i64 %t158, ptr %a141 - br label %for.cond4067 -for.end4070: + br label %for.cond4211 +for.end4214: store { ptr, i64, i64 } zeroinitializer, ptr %a159 %t160 = load ptr, ptr %a1 %t161 = icmp eq ptr %t160, null - br i1 %t161, label %panic4071, label %ok4072 -panic4071: - call void @finch_panic(ptr @.str.2486, i64 1728, ptr @.str.2487) + br i1 %t161, label %panic4215, label %ok4216 +panic4215: + call void @finch_panic(ptr @.str.2571, i64 1809, ptr @.str.2572) unreachable -ok4072: +ok4216: %t162 = getelementptr inbounds %S.gen.Gen, ptr %t160, i32 0, i32 11 %t163 = getelementptr inbounds { ptr, i64, i64 }, ptr %t162, i32 0, i32 1 %t164 = load i64, ptr %t163 store i64 %t164, ptr %a165 %t166 = load i64, ptr %a47 store i64 0, ptr %a167 - br label %for.cond4073 -for.cond4073: + br label %for.cond4217 +for.cond4217: %t168 = load i64, ptr %a167 %t169 = icmp slt i64 %t168, %t166 - br i1 %t169, label %for.body4074, label %for.end4076 -for.body4074: + br i1 %t169, label %for.body4218, label %for.end4220 +for.body4218: %t170 = load ptr, ptr %a1 %t171 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t172 = load i64, ptr %a4 @@ -42183,11 +43831,11 @@ for.body4074: %t175 = load { ptr, i64, i64 }, ptr %t171 %t176 = extractvalue { ptr, i64, i64 } %t175, 1 %t177 = icmp uge i64 %t174, %t176 - br i1 %t177, label %range4077, label %inrange4078 -range4077: - call void @finch_panic_index(ptr @.str.2488, i64 1730, i64 %t174, i64 %t176) + br i1 %t177, label %range4221, label %inrange4222 +range4221: + call void @finch_panic_index(ptr @.str.2573, i64 1811, i64 %t174, i64 %t176) unreachable -inrange4078: +inrange4222: %t178 = extractvalue { ptr, i64, i64 } %t175, 0 %t179 = getelementptr inbounds %S.ast.Node, ptr %t178, i64 %t174 %t180 = load %S.ast.Node, ptr %t179 @@ -42197,27 +43845,27 @@ inrange4078: %t184 = getelementptr inbounds %S.ast.Type, ptr %t183, i32 0, i32 0 %t185 = load { ptr, i64, i64 }, ptr %t184 store { ptr, i64, i64 } %t185, ptr %a186 - store { ptr, i64, i64 } { ptr @.str.2489, i64 4, i64 0 }, ptr %a187 + store { ptr, i64, i64 } { ptr @.str.2574, i64 4, i64 0 }, ptr %a187 %t188 = call i32 @finch_str_eq(ptr %a186, ptr %a187) %t189 = icmp ne i32 %t188, 0 - br label %logic.from4079 -logic.from4079: - br i1 %t189, label %logic.end4081, label %logic.rhs4080 -logic.rhs4080: + br label %logic.from4223 +logic.from4223: + br i1 %t189, label %logic.end4225, label %logic.rhs4224 +logic.rhs4224: %t190 = getelementptr inbounds %S.gen.Val, ptr %a182, i32 0, i32 1 %t191 = getelementptr inbounds %S.ast.Type, ptr %t190, i32 0, i32 0 %t192 = load { ptr, i64, i64 }, ptr %t191 store { ptr, i64, i64 } %t192, ptr %a193 - store { ptr, i64, i64 } { ptr @.str.2490, i64 4, i64 0 }, ptr %a194 + store { ptr, i64, i64 } { ptr @.str.2575, i64 4, i64 0 }, ptr %a194 %t195 = call i32 @finch_str_eq(ptr %a193, ptr %a194) %t196 = icmp ne i32 %t195, 0 - br label %logic.rend4082 -logic.rend4082: - br label %logic.end4081 -logic.end4081: - %t197 = phi i1 [ true, %logic.from4079 ], [ %t196, %logic.rend4082 ] - br i1 %t197, label %then4083, label %endif4085 -then4083: + br label %logic.rend4226 +logic.rend4226: + br label %logic.end4225 +logic.end4225: + %t197 = phi i1 [ true, %logic.from4223 ], [ %t196, %logic.rend4226 ] + br i1 %t197, label %then4227, label %endif4229 +then4227: %t198 = load ptr, ptr %a1 %t199 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t200 = load i64, ptr %a4 @@ -42226,27 +43874,27 @@ then4083: %t203 = load { ptr, i64, i64 }, ptr %t199 %t204 = extractvalue { ptr, i64, i64 } %t203, 1 %t205 = icmp uge i64 %t202, %t204 - br i1 %t205, label %range4086, label %inrange4087 -range4086: - call void @finch_panic_index(ptr @.str.2491, i64 1732, i64 %t202, i64 %t204) + br i1 %t205, label %range4230, label %inrange4231 +range4230: + call void @finch_panic_index(ptr @.str.2576, i64 1813, i64 %t202, i64 %t204) unreachable -inrange4087: +inrange4231: %t206 = extractvalue { ptr, i64, i64 } %t203, 0 %t207 = getelementptr inbounds %S.ast.Node, ptr %t206, i64 %t202 %t208 = load %S.ast.Node, ptr %t207 %t209 = getelementptr inbounds %S.gen.Template, ptr %a19, i32 0, i32 3 %t210 = getelementptr inbounds { ptr, i64, i64 }, ptr %t209, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.2493, i64 2, i64 0 }, ptr %a211 + store { ptr, i64, i64 } { ptr @.str.2578, i64 2, i64 0 }, ptr %a211 call void @finch_str_join(ptr %a212, ptr %t209, ptr %a211) %t213 = load { ptr, i64, i64 }, ptr %a212 - store { ptr, i64, i64 } { ptr @.str.2492, i64 29, i64 0 }, ptr %a215 + store { ptr, i64, i64 } { ptr @.str.2577, i64 29, i64 0 }, ptr %a215 store { ptr, i64, i64 } %t213, ptr %a216 call void @finch_str_concat(ptr %a214, ptr %a215, ptr %a216) store { ptr, i64, i64 } %t213, ptr %a217 call void @finch_str_drop(ptr %a217) %t218 = load { ptr, i64, i64 }, ptr %a214 store { ptr, i64, i64 } %t218, ptr %a220 - store { ptr, i64, i64 } { ptr @.str.2494, i64 5, i64 0 }, ptr %a221 + store { ptr, i64, i64 } { ptr @.str.2579, i64 5, i64 0 }, ptr %a221 call void @finch_str_concat(ptr %a219, ptr %a220, ptr %a221) store { ptr, i64, i64 } %t218, ptr %a222 call void @finch_str_drop(ptr %a222) @@ -42254,8 +43902,8 @@ inrange4087: call void @finch.gen.fail(ptr %t198, %S.ast.Node %t208, { ptr, i64, i64 } %t223) store { ptr, i64, i64 } %t223, ptr %a224 call void @finch_str_drop(ptr %a224) - br label %endif4085 -endif4085: + br label %endif4229 +endif4229: %t225 = getelementptr inbounds { ptr, i64, i64 }, ptr %a159, i32 0, i32 1 %t226 = load %S.gen.Val, ptr %a182 store %S.gen.Val %t226, ptr %a227 @@ -42277,11 +43925,11 @@ endif4085: %t239 = load { ptr, i64, i64 }, ptr %t237 %t240 = extractvalue { ptr, i64, i64 } %t239, 1 %t241 = icmp uge i64 %t238, %t240 - br i1 %t241, label %range4088, label %inrange4089 -range4088: - call void @finch_panic_index(ptr @.str.2495, i64 1736, i64 %t238, i64 %t240) + br i1 %t241, label %range4232, label %inrange4233 +range4232: + call void @finch_panic_index(ptr @.str.2580, i64 1817, i64 %t238, i64 %t240) unreachable -inrange4089: +inrange4233: %t242 = extractvalue { ptr, i64, i64 } %t239, 0 %t243 = getelementptr inbounds %S.ast.Node, ptr %t242, i64 %t238 %t244 = getelementptr inbounds %S.ast.Node, ptr %t243, i32 0, i32 5 @@ -42292,39 +43940,39 @@ inrange4089: %t249 = load { ptr, i64, i64 }, ptr %t248 call void @finch.gen.bindType(ptr %t236, %S.ast.Type %t245, %S.ast.Type %t247, { ptr, i64, i64 } %t249, ptr %a137) call void @finch.drop.S_gen_Val(ptr %a182) - br label %for.step4075 -for.step4075: + br label %for.step4219 +for.step4219: %t250 = load i64, ptr %a167 %t251 = add i64 %t250, 1 store i64 %t251, ptr %a167 - br label %for.cond4073 -for.end4076: + br label %for.cond4217 +for.end4220: %t252 = getelementptr inbounds %S.gen.Template, ptr %a19, i32 0, i32 3 %t253 = getelementptr inbounds { ptr, i64, i64 }, ptr %t252, i32 0, i32 1 %t254 = load i64, ptr %t253 store i64 0, ptr %a255 - br label %for.cond4090 -for.cond4090: + br label %for.cond4234 +for.cond4234: %t256 = load i64, ptr %a255 %t257 = icmp slt i64 %t256, %t254 - br i1 %t257, label %for.body4091, label %for.end4093 -for.body4091: + br i1 %t257, label %for.body4235, label %for.end4237 +for.body4235: %t258 = getelementptr inbounds %S.gen.Binds, ptr %a137, i32 0, i32 1 %t259 = load i64, ptr %a255 %t260 = load { ptr, i64, i64 }, ptr %t258 %t261 = extractvalue { ptr, i64, i64 } %t260, 1 %t262 = icmp uge i64 %t259, %t261 - br i1 %t262, label %range4094, label %inrange4095 -range4094: - call void @finch_panic_index(ptr @.str.2496, i64 1739, i64 %t259, i64 %t261) + br i1 %t262, label %range4238, label %inrange4239 +range4238: + call void @finch_panic_index(ptr @.str.2581, i64 1820, i64 %t259, i64 %t261) unreachable -inrange4095: +inrange4239: %t263 = extractvalue { ptr, i64, i64 } %t260, 0 %t264 = getelementptr inbounds i1, ptr %t263, i64 %t259 %t265 = load i1, ptr %t264 %t266 = xor i1 %t265, true - br i1 %t266, label %then4096, label %endif4098 -then4096: + br i1 %t266, label %then4240, label %endif4242 +then4240: %t267 = load ptr, ptr %a1 %t268 = load %S.ast.Node, ptr %a2 %t269 = getelementptr inbounds %S.gen.Template, ptr %a19, i32 0, i32 3 @@ -42332,20 +43980,20 @@ then4096: %t271 = load { ptr, i64, i64 }, ptr %t269 %t272 = extractvalue { ptr, i64, i64 } %t271, 1 %t273 = icmp uge i64 %t270, %t272 - br i1 %t273, label %range4099, label %inrange4100 -range4099: - call void @finch_panic_index(ptr @.str.2498, i64 1740, i64 %t270, i64 %t272) + br i1 %t273, label %range4243, label %inrange4244 +range4243: + call void @finch_panic_index(ptr @.str.2583, i64 1821, i64 %t270, i64 %t272) unreachable -inrange4100: +inrange4244: %t274 = extractvalue { ptr, i64, i64 } %t271, 0 %t275 = getelementptr inbounds { ptr, i64, i64 }, ptr %t274, i64 %t270 %t276 = load { ptr, i64, i64 }, ptr %t275 - store { ptr, i64, i64 } { ptr @.str.2497, i64 16, i64 0 }, ptr %a278 + store { ptr, i64, i64 } { ptr @.str.2582, i64 16, i64 0 }, ptr %a278 store { ptr, i64, i64 } %t276, ptr %a279 call void @finch_str_concat(ptr %a277, ptr %a278, ptr %a279) %t280 = load { ptr, i64, i64 }, ptr %a277 store { ptr, i64, i64 } %t280, ptr %a282 - store { ptr, i64, i64 } { ptr @.str.2499, i64 24, i64 0 }, ptr %a283 + store { ptr, i64, i64 } { ptr @.str.2584, i64 24, i64 0 }, ptr %a283 call void @finch_str_concat(ptr %a281, ptr %a282, ptr %a283) store { ptr, i64, i64 } %t280, ptr %a284 call void @finch_str_drop(ptr %a284) @@ -42359,7 +44007,7 @@ inrange4100: call void @finch_str_drop(ptr %a291) %t292 = load { ptr, i64, i64 }, ptr %a288 store { ptr, i64, i64 } %t292, ptr %a294 - store { ptr, i64, i64 } { ptr @.str.2500, i64 10, i64 0 }, ptr %a295 + store { ptr, i64, i64 } { ptr @.str.2585, i64 10, i64 0 }, ptr %a295 call void @finch_str_concat(ptr %a293, ptr %a294, ptr %a295) store { ptr, i64, i64 } %t292, ptr %a296 call void @finch_str_drop(ptr %a296) @@ -42367,20 +44015,20 @@ inrange4100: call void @finch.gen.fail(ptr %t267, %S.ast.Node %t268, { ptr, i64, i64 } %t297) store { ptr, i64, i64 } %t297, ptr %a298 call void @finch_str_drop(ptr %a298) - br label %endif4098 -endif4098: - br label %for.step4092 -for.step4092: + br label %endif4242 +endif4242: + br label %for.step4236 +for.step4236: %t299 = load i64, ptr %a255 %t300 = add i64 %t299, 1 store i64 %t300, ptr %a255 - br label %for.cond4090 -for.end4093: + br label %for.cond4234 +for.end4237: %t301 = load ptr, ptr %a1 %t302 = load i64, ptr %a3 %t303 = getelementptr inbounds %S.gen.Binds, ptr %a137, i32 0, i32 0 %t304 = load { ptr, i64, i64 }, ptr %t303 - %t305 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.2501, i64 4, i64 0 }) + %t305 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.2586, i64 4, i64 0 }) %t306 = load %S.ast.Node, ptr %a2 %t307 = call i64 @finch.gen.instFn(ptr %t301, i64 %t302, { ptr, i64, i64 } %t304, %S.ast.Type %t305, %S.ast.Node %t306) store %S.ast.Type %t305, ptr %a308 @@ -42388,21 +44036,21 @@ for.end4093: store i64 %t307, ptr %a309 %t310 = load ptr, ptr %a1 %t311 = icmp eq ptr %t310, null - br i1 %t311, label %panic4101, label %ok4102 -panic4101: - call void @finch_panic(ptr @.str.2502, i64 1744, ptr @.str.2503) + br i1 %t311, label %panic4245, label %ok4246 +panic4245: + call void @finch_panic(ptr @.str.2587, i64 1825, ptr @.str.2588) unreachable -ok4102: +ok4246: %t312 = getelementptr inbounds %S.gen.Gen, ptr %t310, i32 0, i32 15 %t313 = load i64, ptr %a309 %t314 = load { ptr, i64, i64 }, ptr %t312 %t315 = extractvalue { ptr, i64, i64 } %t314, 1 %t316 = icmp uge i64 %t313, %t315 - br i1 %t316, label %range4103, label %inrange4104 -range4103: - call void @finch_panic_index(ptr @.str.2504, i64 1744, i64 %t313, i64 %t315) + br i1 %t316, label %range4247, label %inrange4248 +range4247: + call void @finch_panic_index(ptr @.str.2589, i64 1825, i64 %t313, i64 %t315) unreachable -inrange4104: +inrange4248: %t317 = extractvalue { ptr, i64, i64 } %t314, 0 %t318 = getelementptr inbounds %S.gen.FnSig, ptr %t317, i64 %t313 %t319 = load %S.gen.FnSig, ptr %t318 @@ -42417,22 +44065,22 @@ inrange4104: store { ptr, i64, i64 } zeroinitializer, ptr %a327 %t328 = load i64, ptr %a47 store i64 0, ptr %a329 - br label %for.cond4105 -for.cond4105: + br label %for.cond4249 +for.cond4249: %t330 = load i64, ptr %a329 %t331 = icmp slt i64 %t330, %t328 - br i1 %t331, label %for.body4106, label %for.end4108 -for.body4106: + br i1 %t331, label %for.body4250, label %for.end4252 +for.body4250: %t332 = load ptr, ptr %a1 %t333 = load i64, ptr %a329 %t334 = load { ptr, i64, i64 }, ptr %a159 %t335 = extractvalue { ptr, i64, i64 } %t334, 1 %t336 = icmp uge i64 %t333, %t335 - br i1 %t336, label %range4109, label %inrange4110 -range4109: - call void @finch_panic_index(ptr @.str.2505, i64 1748, i64 %t333, i64 %t335) + br i1 %t336, label %range4253, label %inrange4254 +range4253: + call void @finch_panic_index(ptr @.str.2590, i64 1829, i64 %t333, i64 %t335) unreachable -inrange4110: +inrange4254: %t337 = extractvalue { ptr, i64, i64 } %t334, 0 %t338 = getelementptr inbounds %S.gen.Val, ptr %t337, i64 %t333 %t339 = load %S.gen.Val, ptr %t338 @@ -42441,11 +44089,11 @@ inrange4110: %t342 = load { ptr, i64, i64 }, ptr %t340 %t343 = extractvalue { ptr, i64, i64 } %t342, 1 %t344 = icmp uge i64 %t341, %t343 - br i1 %t344, label %range4111, label %inrange4112 -range4111: - call void @finch_panic_index(ptr @.str.2506, i64 1748, i64 %t341, i64 %t343) + br i1 %t344, label %range4255, label %inrange4256 +range4255: + call void @finch_panic_index(ptr @.str.2591, i64 1829, i64 %t341, i64 %t343) unreachable -inrange4112: +inrange4256: %t345 = extractvalue { ptr, i64, i64 } %t342, 0 %t346 = getelementptr inbounds %S.ast.Type, ptr %t345, i64 %t341 %t347 = load %S.ast.Type, ptr %t346 @@ -42456,11 +44104,11 @@ inrange4112: %t352 = load { ptr, i64, i64 }, ptr %t348 %t353 = extractvalue { ptr, i64, i64 } %t352, 1 %t354 = icmp uge i64 %t351, %t353 - br i1 %t354, label %range4113, label %inrange4114 -range4113: - call void @finch_panic_index(ptr @.str.2507, i64 1748, i64 %t351, i64 %t353) + br i1 %t354, label %range4257, label %inrange4258 +range4257: + call void @finch_panic_index(ptr @.str.2592, i64 1829, i64 %t351, i64 %t353) unreachable -inrange4114: +inrange4258: %t355 = extractvalue { ptr, i64, i64 } %t352, 0 %t356 = getelementptr inbounds %S.ast.Node, ptr %t355, i64 %t351 %t357 = load %S.ast.Node, ptr %t356 @@ -42469,20 +44117,20 @@ inrange4114: %t360 = load { ptr, i64, i64 }, ptr %t358 %t361 = extractvalue { ptr, i64, i64 } %t360, 1 %t362 = icmp uge i64 %t359, %t361 - br i1 %t362, label %range4115, label %inrange4116 -range4115: - call void @finch_panic_index(ptr @.str.2509, i64 1748, i64 %t359, i64 %t361) + br i1 %t362, label %range4259, label %inrange4260 +range4259: + call void @finch_panic_index(ptr @.str.2594, i64 1829, i64 %t359, i64 %t361) unreachable -inrange4116: +inrange4260: %t363 = extractvalue { ptr, i64, i64 } %t360, 0 %t364 = getelementptr inbounds { ptr, i64, i64 }, ptr %t363, i64 %t359 %t365 = load { ptr, i64, i64 }, ptr %t364 - store { ptr, i64, i64 } { ptr @.str.2508, i64 10, i64 0 }, ptr %a367 + store { ptr, i64, i64 } { ptr @.str.2593, i64 10, i64 0 }, ptr %a367 store { ptr, i64, i64 } %t365, ptr %a368 call void @finch_str_concat(ptr %a366, ptr %a367, ptr %a368) %t369 = load { ptr, i64, i64 }, ptr %a366 store { ptr, i64, i64 } %t369, ptr %a371 - store { ptr, i64, i64 } { ptr @.str.2510, i64 1, i64 0 }, ptr %a372 + store { ptr, i64, i64 } { ptr @.str.2595, i64 1, i64 0 }, ptr %a372 call void @finch_str_concat(ptr %a370, ptr %a371, ptr %a372) store { ptr, i64, i64 } %t369, ptr %a373 call void @finch_str_drop(ptr %a373) @@ -42498,17 +44146,17 @@ inrange4116: %t382 = load { ptr, i64, i64 }, ptr %t380 %t383 = extractvalue { ptr, i64, i64 } %t382, 1 %t384 = icmp uge i64 %t381, %t383 - br i1 %t384, label %range4117, label %inrange4118 -range4117: - call void @finch_panic_index(ptr @.str.2511, i64 1749, i64 %t381, i64 %t383) + br i1 %t384, label %range4261, label %inrange4262 +range4261: + call void @finch_panic_index(ptr @.str.2596, i64 1830, i64 %t381, i64 %t383) unreachable -inrange4118: +inrange4262: %t385 = extractvalue { ptr, i64, i64 } %t382, 0 %t386 = getelementptr inbounds %S.ast.Type, ptr %t385, i64 %t381 %t387 = load %S.ast.Type, ptr %t386 %t388 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t379, %S.ast.Type %t387) store { ptr, i64, i64 } %t388, ptr %a390 - store { ptr, i64, i64 } { ptr @.str.2512, i64 1, i64 0 }, ptr %a391 + store { ptr, i64, i64 } { ptr @.str.2597, i64 1, i64 0 }, ptr %a391 call void @finch_str_concat(ptr %a389, ptr %a390, ptr %a391) store { ptr, i64, i64 } %t388, ptr %a392 call void @finch_str_drop(ptr %a392) @@ -42529,13 +44177,13 @@ inrange4118: store { ptr, i64, i64 } %t400, ptr %t404 store i64 %t402, ptr %t378 call void @finch.drop.S_gen_Val(ptr %a377) - br label %for.step4107 -for.step4107: + br label %for.step4251 +for.step4251: %t405 = load i64, ptr %a329 %t406 = add i64 %t405, 1 store i64 %t406, ptr %a329 - br label %for.cond4105 -for.end4108: + br label %for.cond4249 +for.end4252: %t407 = load ptr, ptr %a1 %t408 = load %S.gen.FnSig, ptr %a323 %t409 = load %S.ast.Node, ptr %a2 @@ -42544,14 +44192,14 @@ for.end4108: %t412 = call %S.gen.Val @finch.gen.emitCall(ptr %t407, %S.gen.FnSig %t408, %S.ast.Node %t409, { ptr, i64, i64 } %t410, { ptr, i64, i64 } %t411) store %S.gen.Val %t412, ptr %a413 store i64 0, ptr %a414 - br label %each.cond4119 -each.cond4119: + br label %each.cond4263 +each.cond4263: %t415 = getelementptr inbounds { ptr, i64, i64 }, ptr %a159, i32 0, i32 1 %t416 = load i64, ptr %t415 %t417 = load i64, ptr %a414 %t418 = icmp slt i64 %t417, %t416 - br i1 %t418, label %each.body4120, label %each.end4122 -each.body4120: + br i1 %t418, label %each.body4264, label %each.end4266 +each.body4264: %t419 = load ptr, ptr %a159 %t420 = getelementptr inbounds %S.gen.Val, ptr %t419, i64 %t417 %t421 = load %S.gen.Val, ptr %t420 @@ -42559,13 +44207,13 @@ each.body4120: %t423 = load ptr, ptr %a1 %t424 = load %S.gen.Val, ptr %a422 call void @finch.gen.release(ptr %t423, %S.gen.Val %t424) - br label %each.step4121 -each.step4121: + br label %each.step4265 +each.step4265: %t425 = load i64, ptr %a414 %t426 = add i64 %t425, 1 store i64 %t426, ptr %a414 - br label %each.cond4119 -each.end4122: + br label %each.cond4263 +each.end4266: %t427 = load ptr, ptr %a1 %t428 = load i64, ptr %a165 call void @finch.gen.heldEnd(ptr %t427, i64 %t428) @@ -42603,20 +44251,20 @@ entry: %t3 = getelementptr inbounds { ptr, i64, i64 }, ptr %src, i32 0, i32 1 %t4 = load i64, ptr %t3 store i64 0, ptr %a5 - br label %n.cond4134 -n.cond4134: + br label %n.cond4278 +n.cond4278: %t6 = load i64, ptr %a5 %t7 = icmp slt i64 %t6, %t4 - br i1 %t7, label %n.body4135, label %n.end4136 -n.body4135: + br i1 %t7, label %n.body4279, label %n.end4280 +n.body4279: %t8 = getelementptr inbounds %S.cimport.CField, ptr %t1, i64 %t6 %t9 = getelementptr inbounds %S.cimport.CField, ptr %t2, i64 %t6 call void @finch.copy.S_cimport_CField(ptr %t8, ptr %t9) %t10 = load i64, ptr %a5 %t11 = add i64 %t10, 1 store i64 %t11, ptr %a5 - br label %n.cond4134 -n.end4136: + br label %n.cond4278 +n.end4280: ret void } @@ -42702,30 +44350,30 @@ entry: store i64 %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic4126, label %ok4127 -panic4126: - call void @finch_panic(ptr @.str.2513, i64 1762, ptr @.str.2514) + br i1 %t4, label %panic4270, label %ok4271 +panic4270: + call void @finch_panic(ptr @.str.2598, i64 1843, ptr @.str.2599) unreachable -ok4127: - %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 25 +ok4271: + %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 26 %t6 = getelementptr inbounds %S.cimport.CImports, ptr %t5, i32 0, i32 3 %t7 = load ptr, ptr %a1 %t8 = icmp eq ptr %t7, null - br i1 %t8, label %panic4128, label %ok4129 -panic4128: - call void @finch_panic(ptr @.str.2515, i64 1762, ptr @.str.2516) + br i1 %t8, label %panic4272, label %ok4273 +panic4272: + call void @finch_panic(ptr @.str.2600, i64 1843, ptr @.str.2601) unreachable -ok4129: +ok4273: %t9 = getelementptr inbounds %S.gen.Gen, ptr %t7, i32 0, i32 16 %t10 = load i64, ptr %a2 %t11 = load { ptr, i64, i64 }, ptr %t9 %t12 = extractvalue { ptr, i64, i64 } %t11, 1 %t13 = icmp uge i64 %t10, %t12 - br i1 %t13, label %range4130, label %inrange4131 -range4130: - call void @finch_panic_index(ptr @.str.2517, i64 1762, i64 %t10, i64 %t12) + br i1 %t13, label %range4274, label %inrange4275 +range4274: + call void @finch_panic_index(ptr @.str.2602, i64 1843, i64 %t10, i64 %t12) unreachable -inrange4131: +inrange4275: %t14 = extractvalue { ptr, i64, i64 } %t11, 0 %t15 = getelementptr inbounds %S.gen.StructDef, ptr %t14, i64 %t10 %t16 = getelementptr inbounds %S.gen.StructDef, ptr %t15, i32 0, i32 1 @@ -42733,14 +44381,14 @@ inrange4131: store { ptr, i64, i64 } %t17, ptr %a18 %t19 = call i64 @finch_map_find(ptr %t6, ptr %a18, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t20 = icmp slt i64 %t19, 0 - br i1 %t20, label %map.missing4132, label %map.found4133 -map.missing4132: + br i1 %t20, label %map.missing4276, label %map.found4277 +map.missing4276: store { ptr, i64, i64 } zeroinitializer, ptr %a21 store { ptr, i64, i64 } %t17, ptr %a22 call void @finch_buf_str(ptr %a21, ptr %a22, i32 1) - call void @finch_map_missing(ptr @.str.2518, i64 1762, ptr %a21) + call void @finch_map_missing(ptr @.str.2603, i64 1843, ptr %a21) unreachable -map.found4133: +map.found4277: %t23 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t6, i32 0, i32 0 %t24 = load ptr, ptr %t23 %t25 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr %t24, i64 %t19 @@ -42752,21 +44400,21 @@ map.found4133: store %S.cimport.CStruct %t30, ptr %a31 %t32 = load ptr, ptr %a1 %t33 = icmp eq ptr %t32, null - br i1 %t33, label %panic4137, label %ok4138 -panic4137: - call void @finch_panic(ptr @.str.2519, i64 1763, ptr @.str.2520) + br i1 %t33, label %panic4281, label %ok4282 +panic4281: + call void @finch_panic(ptr @.str.2604, i64 1844, ptr @.str.2605) unreachable -ok4138: +ok4282: %t34 = getelementptr inbounds %S.gen.Gen, ptr %t32, i32 0, i32 16 %t35 = load i64, ptr %a2 %t36 = load { ptr, i64, i64 }, ptr %t34 %t37 = extractvalue { ptr, i64, i64 } %t36, 1 %t38 = icmp uge i64 %t35, %t37 - br i1 %t38, label %range4139, label %inrange4140 -range4139: - call void @finch_panic_index(ptr @.str.2521, i64 1763, i64 %t35, i64 %t37) + br i1 %t38, label %range4283, label %inrange4284 +range4283: + call void @finch_panic_index(ptr @.str.2606, i64 1844, i64 %t35, i64 %t37) unreachable -inrange4140: +inrange4284: %t39 = extractvalue { ptr, i64, i64 } %t36, 0 %t40 = getelementptr inbounds %S.gen.StructDef, ptr %t39, i64 %t35 %t41 = getelementptr inbounds %S.gen.StructDef, ptr %t40, i32 0, i32 15 @@ -42775,24 +44423,24 @@ inrange4140: store { ptr, i64, i64 } zeroinitializer, ptr %a43 %t44 = getelementptr inbounds %S.cimport.CStruct, ptr %a31, i32 0, i32 1 store i64 0, ptr %a45 - br label %each.cond4141 -each.cond4141: + br label %each.cond4285 +each.cond4285: %t46 = getelementptr inbounds { ptr, i64, i64 }, ptr %t44, i32 0, i32 1 %t47 = load i64, ptr %t46 %t48 = load i64, ptr %a45 %t49 = icmp slt i64 %t48, %t47 - br i1 %t49, label %each.body4142, label %each.end4144 -each.body4142: + br i1 %t49, label %each.body4286, label %each.end4288 +each.body4286: %t50 = load ptr, ptr %t44 %t51 = getelementptr inbounds %S.cimport.CField, ptr %t50, i64 %t48 %t52 = load %S.cimport.CField, ptr %t51 store %S.cimport.CField %t52, ptr %a53 %t54 = getelementptr inbounds %S.cimport.CField, ptr %a53, i32 0, i32 5 %t55 = load i1, ptr %t54 - br i1 %t55, label %then4145, label %endif4147 -then4145: - br label %each.step4143 -endif4147: + br i1 %t55, label %then4289, label %endif4291 +then4289: + br label %each.step4287 +endif4291: %t56 = load ptr, ptr %a1 %t57 = getelementptr inbounds %S.cimport.CField, ptr %a53, i32 0, i32 1 %t58 = load %S.ast.Type, ptr %t57 @@ -42801,11 +44449,11 @@ endif4147: %t61 = getelementptr inbounds %S.ast.Type, ptr %a60, i32 0, i32 0 %t62 = load { ptr, i64, i64 }, ptr %t61 store { ptr, i64, i64 } %t62, ptr %a63 - store { ptr, i64, i64 } { ptr @.str.2522, i64 6, i64 0 }, ptr %a64 + store { ptr, i64, i64 } { ptr @.str.2607, i64 6, i64 0 }, ptr %a64 %t65 = call i32 @finch_str_eq(ptr %a63, ptr %a64) %t66 = icmp ne i32 %t65, 0 - br i1 %t66, label %then4148, label %endif4150 -then4148: + br i1 %t66, label %then4292, label %endif4294 +then4292: %t67 = load ptr, ptr %a1 %t68 = load ptr, ptr %a1 %t69 = getelementptr inbounds %S.ast.Type, ptr %a60, i32 0, i32 3 @@ -42814,14 +44462,14 @@ then4148: %t72 = load { ptr, i64, i64 }, ptr %t71 %t73 = call i64 @finch.gen.findStruct(ptr %t68, { ptr, i64, i64 } %t70, { ptr, i64, i64 } %t72) call void @finch.gen.resolveStruct(ptr %t67, i64 %t73) - br label %endif4150 -endif4150: + br label %endif4294 +endif4294: %t74 = getelementptr inbounds %S.cimport.CField, ptr %a53, i32 0, i32 2 %t75 = load i64, ptr %t74 %t76 = load i64, ptr %a42 %t77 = icmp sgt i64 %t75, %t76 - br i1 %t77, label %then4151, label %endif4153 -then4151: + br i1 %t77, label %then4295, label %endif4297 +then4295: %t78 = getelementptr inbounds { ptr, i64, i64 }, ptr %a43, i32 0, i32 1 %t79 = getelementptr inbounds %S.cimport.CField, ptr %a53, i32 0, i32 2 %t80 = load i64, ptr %t79 @@ -42829,14 +44477,14 @@ then4151: %t82 = sub i64 %t80, %t81 call void @finch_str_from_int(ptr %a83, i64 %t82) %t84 = load { ptr, i64, i64 }, ptr %a83 - store { ptr, i64, i64 } { ptr @.str.2523, i64 1, i64 0 }, ptr %a86 + store { ptr, i64, i64 } { ptr @.str.2608, i64 1, i64 0 }, ptr %a86 store { ptr, i64, i64 } %t84, ptr %a87 call void @finch_str_concat(ptr %a85, ptr %a86, ptr %a87) store { ptr, i64, i64 } %t84, ptr %a88 call void @finch_str_drop(ptr %a88) %t89 = load { ptr, i64, i64 }, ptr %a85 store { ptr, i64, i64 } %t89, ptr %a91 - store { ptr, i64, i64 } { ptr @.str.2524, i64 6, i64 0 }, ptr %a92 + store { ptr, i64, i64 } { ptr @.str.2609, i64 6, i64 0 }, ptr %a92 call void @finch_str_concat(ptr %a90, ptr %a91, ptr %a92) store { ptr, i64, i64 } %t89, ptr %a93 call void @finch_str_drop(ptr %a93) @@ -42848,25 +44496,25 @@ then4151: %t98 = getelementptr inbounds { ptr, i64, i64 }, ptr %t97, i64 %t95 store { ptr, i64, i64 } %t94, ptr %t98 store i64 %t96, ptr %t78 - br label %endif4153 -endif4153: + br label %endif4297 +endif4297: %t99 = load ptr, ptr %a1 %t100 = icmp eq ptr %t99, null - br i1 %t100, label %panic4154, label %ok4155 -panic4154: - call void @finch_panic(ptr @.str.2525, i64 1777, ptr @.str.2526) + br i1 %t100, label %panic4298, label %ok4299 +panic4298: + call void @finch_panic(ptr @.str.2610, i64 1858, ptr @.str.2611) unreachable -ok4155: +ok4299: %t101 = getelementptr inbounds %S.gen.Gen, ptr %t99, i32 0, i32 16 %t102 = load i64, ptr %a2 %t103 = load { ptr, i64, i64 }, ptr %t101 %t104 = extractvalue { ptr, i64, i64 } %t103, 1 %t105 = icmp uge i64 %t102, %t104 - br i1 %t105, label %range4156, label %inrange4157 -range4156: - call void @finch_panic_index(ptr @.str.2527, i64 1777, i64 %t102, i64 %t104) + br i1 %t105, label %range4300, label %inrange4301 +range4300: + call void @finch_panic_index(ptr @.str.2612, i64 1858, i64 %t102, i64 %t104) unreachable -inrange4157: +inrange4301: %t106 = extractvalue { ptr, i64, i64 } %t103, 0 %t107 = getelementptr inbounds %S.gen.StructDef, ptr %t106, i64 %t102 %t108 = getelementptr inbounds %S.gen.StructDef, ptr %t107, i32 0, i32 11 @@ -42885,21 +44533,21 @@ inrange4157: store i64 %t116, ptr %t109 %t119 = load ptr, ptr %a1 %t120 = icmp eq ptr %t119, null - br i1 %t120, label %panic4158, label %ok4159 -panic4158: - call void @finch_panic(ptr @.str.2528, i64 1778, ptr @.str.2529) + br i1 %t120, label %panic4302, label %ok4303 +panic4302: + call void @finch_panic(ptr @.str.2613, i64 1859, ptr @.str.2614) unreachable -ok4159: +ok4303: %t121 = getelementptr inbounds %S.gen.Gen, ptr %t119, i32 0, i32 16 %t122 = load i64, ptr %a2 %t123 = load { ptr, i64, i64 }, ptr %t121 %t124 = extractvalue { ptr, i64, i64 } %t123, 1 %t125 = icmp uge i64 %t122, %t124 - br i1 %t125, label %range4160, label %inrange4161 -range4160: - call void @finch_panic_index(ptr @.str.2530, i64 1778, i64 %t122, i64 %t124) + br i1 %t125, label %range4304, label %inrange4305 +range4304: + call void @finch_panic_index(ptr @.str.2615, i64 1859, i64 %t122, i64 %t124) unreachable -inrange4161: +inrange4305: %t126 = extractvalue { ptr, i64, i64 } %t123, 0 %t127 = getelementptr inbounds %S.gen.StructDef, ptr %t126, i64 %t122 %t128 = getelementptr inbounds %S.gen.StructDef, ptr %t127, i32 0, i32 12 @@ -42917,21 +44565,21 @@ inrange4161: store i64 %t135, ptr %t129 %t138 = load ptr, ptr %a1 %t139 = icmp eq ptr %t138, null - br i1 %t139, label %panic4162, label %ok4163 -panic4162: - call void @finch_panic(ptr @.str.2531, i64 1779, ptr @.str.2532) + br i1 %t139, label %panic4306, label %ok4307 +panic4306: + call void @finch_panic(ptr @.str.2616, i64 1860, ptr @.str.2617) unreachable -ok4163: +ok4307: %t140 = getelementptr inbounds %S.gen.Gen, ptr %t138, i32 0, i32 16 %t141 = load i64, ptr %a2 %t142 = load { ptr, i64, i64 }, ptr %t140 %t143 = extractvalue { ptr, i64, i64 } %t142, 1 %t144 = icmp uge i64 %t141, %t143 - br i1 %t144, label %range4164, label %inrange4165 -range4164: - call void @finch_panic_index(ptr @.str.2533, i64 1779, i64 %t141, i64 %t143) + br i1 %t144, label %range4308, label %inrange4309 +range4308: + call void @finch_panic_index(ptr @.str.2618, i64 1860, i64 %t141, i64 %t143) unreachable -inrange4165: +inrange4309: %t145 = extractvalue { ptr, i64, i64 } %t142, 0 %t146 = getelementptr inbounds %S.gen.StructDef, ptr %t145, i64 %t141 %t147 = getelementptr inbounds %S.gen.StructDef, ptr %t146, i32 0, i32 3 @@ -42947,21 +44595,21 @@ inrange4165: store i64 %t152, ptr %t148 %t155 = load ptr, ptr %a1 %t156 = icmp eq ptr %t155, null - br i1 %t156, label %panic4166, label %ok4167 -panic4166: - call void @finch_panic(ptr @.str.2534, i64 1780, ptr @.str.2535) + br i1 %t156, label %panic4310, label %ok4311 +panic4310: + call void @finch_panic(ptr @.str.2619, i64 1861, ptr @.str.2620) unreachable -ok4167: +ok4311: %t157 = getelementptr inbounds %S.gen.Gen, ptr %t155, i32 0, i32 16 %t158 = load i64, ptr %a2 %t159 = load { ptr, i64, i64 }, ptr %t157 %t160 = extractvalue { ptr, i64, i64 } %t159, 1 %t161 = icmp uge i64 %t158, %t160 - br i1 %t161, label %range4168, label %inrange4169 -range4168: - call void @finch_panic_index(ptr @.str.2536, i64 1780, i64 %t158, i64 %t160) + br i1 %t161, label %range4312, label %inrange4313 +range4312: + call void @finch_panic_index(ptr @.str.2621, i64 1861, i64 %t158, i64 %t160) unreachable -inrange4169: +inrange4313: %t162 = extractvalue { ptr, i64, i64 } %t159, 0 %t163 = getelementptr inbounds %S.gen.StructDef, ptr %t162, i64 %t158 %t164 = getelementptr inbounds %S.gen.StructDef, ptr %t163, i32 0, i32 4 @@ -42993,19 +44641,19 @@ inrange4169: %t184 = add i64 %t181, %t183 store i64 %t184, ptr %a42 call void @finch.drop.S_ast_Type(ptr %a60) - br label %each.step4143 -each.step4143: + br label %each.step4287 +each.step4287: %t185 = load i64, ptr %a45 %t186 = add i64 %t185, 1 store i64 %t186, ptr %a45 - br label %each.cond4141 -each.end4144: + br label %each.cond4285 +each.end4288: %t187 = getelementptr inbounds %S.cimport.CStruct, ptr %a31, i32 0, i32 2 %t188 = load i64, ptr %t187 %t189 = load i64, ptr %a42 %t190 = icmp sgt i64 %t188, %t189 - br i1 %t190, label %then4170, label %endif4172 -then4170: + br i1 %t190, label %then4314, label %endif4316 +then4314: %t191 = getelementptr inbounds { ptr, i64, i64 }, ptr %a43, i32 0, i32 1 %t192 = getelementptr inbounds %S.cimport.CStruct, ptr %a31, i32 0, i32 2 %t193 = load i64, ptr %t192 @@ -43013,14 +44661,14 @@ then4170: %t195 = sub i64 %t193, %t194 call void @finch_str_from_int(ptr %a196, i64 %t195) %t197 = load { ptr, i64, i64 }, ptr %a196 - store { ptr, i64, i64 } { ptr @.str.2537, i64 1, i64 0 }, ptr %a199 + store { ptr, i64, i64 } { ptr @.str.2622, i64 1, i64 0 }, ptr %a199 store { ptr, i64, i64 } %t197, ptr %a200 call void @finch_str_concat(ptr %a198, ptr %a199, ptr %a200) store { ptr, i64, i64 } %t197, ptr %a201 call void @finch_str_drop(ptr %a201) %t202 = load { ptr, i64, i64 }, ptr %a198 store { ptr, i64, i64 } %t202, ptr %a204 - store { ptr, i64, i64 } { ptr @.str.2538, i64 6, i64 0 }, ptr %a205 + store { ptr, i64, i64 } { ptr @.str.2623, i64 6, i64 0 }, ptr %a205 call void @finch_str_concat(ptr %a203, ptr %a204, ptr %a205) store { ptr, i64, i64 } %t202, ptr %a206 call void @finch_str_drop(ptr %a206) @@ -43032,27 +44680,27 @@ then4170: %t211 = getelementptr inbounds { ptr, i64, i64 }, ptr %t210, i64 %t208 store { ptr, i64, i64 } %t207, ptr %t211 store i64 %t209, ptr %t191 - br label %endif4172 -endif4172: + br label %endif4316 +endif4316: %t212 = getelementptr inbounds %S.cimport.CStruct, ptr %a31, i32 0, i32 4 %t213 = load { ptr, i64, i64 }, ptr %t212 %t214 = load ptr, ptr %a1 %t215 = icmp eq ptr %t214, null - br i1 %t215, label %panic4173, label %ok4174 -panic4173: - call void @finch_panic(ptr @.str.2539, i64 1787, ptr @.str.2540) + br i1 %t215, label %panic4317, label %ok4318 +panic4317: + call void @finch_panic(ptr @.str.2624, i64 1868, ptr @.str.2625) unreachable -ok4174: +ok4318: %t216 = getelementptr inbounds %S.gen.Gen, ptr %t214, i32 0, i32 16 %t217 = load i64, ptr %a2 %t218 = load { ptr, i64, i64 }, ptr %t216 %t219 = extractvalue { ptr, i64, i64 } %t218, 1 %t220 = icmp uge i64 %t217, %t219 - br i1 %t220, label %range4175, label %inrange4176 -range4175: - call void @finch_panic_index(ptr @.str.2541, i64 1787, i64 %t217, i64 %t219) + br i1 %t220, label %range4319, label %inrange4320 +range4319: + call void @finch_panic_index(ptr @.str.2626, i64 1868, i64 %t217, i64 %t219) unreachable -inrange4176: +inrange4320: %t221 = extractvalue { ptr, i64, i64 } %t218, 0 %t222 = getelementptr inbounds %S.gen.StructDef, ptr %t221, i64 %t217 %t223 = getelementptr inbounds %S.gen.StructDef, ptr %t222, i32 0, i32 8 @@ -43065,66 +44713,66 @@ inrange4176: call void @finch_str_drop(ptr %a228) %t229 = getelementptr inbounds %S.cimport.CStruct, ptr %a31, i32 0, i32 5 %t230 = load i1, ptr %t229 - br label %logic.from4177 -logic.from4177: - br i1 %t230, label %logic.rhs4178, label %logic.end4179 -logic.rhs4178: + br label %logic.from4321 +logic.from4321: + br i1 %t230, label %logic.rhs4322, label %logic.end4323 +logic.rhs4322: %t231 = getelementptr inbounds %S.cimport.CStruct, ptr %a31, i32 0, i32 4 %t232 = getelementptr inbounds { ptr, i64, i64 }, ptr %t231, i32 0, i32 1 %t233 = load i64, ptr %t232 %t234 = icmp eq i64 %t233, 0 - br label %logic.rend4180 -logic.rend4180: - br label %logic.end4179 -logic.end4179: - %t235 = phi i1 [ false, %logic.from4177 ], [ %t234, %logic.rend4180 ] - br i1 %t235, label %then4181, label %endif4183 -then4181: + br label %logic.rend4324 +logic.rend4324: + br label %logic.end4323 +logic.end4323: + %t235 = phi i1 [ false, %logic.from4321 ], [ %t234, %logic.rend4324 ] + br i1 %t235, label %then4325, label %endif4327 +then4325: %t236 = load ptr, ptr %a1 %t237 = icmp eq ptr %t236, null - br i1 %t237, label %panic4184, label %ok4185 -panic4184: - call void @finch_panic(ptr @.str.2543, i64 1789, ptr @.str.2544) + br i1 %t237, label %panic4328, label %ok4329 +panic4328: + call void @finch_panic(ptr @.str.2628, i64 1870, ptr @.str.2629) unreachable -ok4185: +ok4329: %t238 = getelementptr inbounds %S.gen.Gen, ptr %t236, i32 0, i32 16 %t239 = load i64, ptr %a2 %t240 = load { ptr, i64, i64 }, ptr %t238 %t241 = extractvalue { ptr, i64, i64 } %t240, 1 %t242 = icmp uge i64 %t239, %t241 - br i1 %t242, label %range4186, label %inrange4187 -range4186: - call void @finch_panic_index(ptr @.str.2545, i64 1789, i64 %t239, i64 %t241) + br i1 %t242, label %range4330, label %inrange4331 +range4330: + call void @finch_panic_index(ptr @.str.2630, i64 1870, i64 %t239, i64 %t241) unreachable -inrange4187: +inrange4331: %t243 = extractvalue { ptr, i64, i64 } %t240, 0 %t244 = getelementptr inbounds %S.gen.StructDef, ptr %t243, i64 %t239 %t245 = getelementptr inbounds %S.gen.StructDef, ptr %t244, i32 0, i32 8 %t246 = load { ptr, i64, i64 }, ptr %t245 - store { ptr, i64, i64 } { ptr @.str.2542, i64 49, i64 0 }, ptr %t245 + store { ptr, i64, i64 } { ptr @.str.2627, i64 49, i64 0 }, ptr %t245 store { ptr, i64, i64 } %t246, ptr %a247 call void @finch_str_drop(ptr %a247) - br label %endif4183 -endif4183: + br label %endif4327 +endif4327: %t248 = getelementptr inbounds %S.cimport.CStruct, ptr %a31, i32 0, i32 2 %t249 = load i64, ptr %t248 %t250 = load ptr, ptr %a1 %t251 = icmp eq ptr %t250, null - br i1 %t251, label %panic4188, label %ok4189 -panic4188: - call void @finch_panic(ptr @.str.2546, i64 1791, ptr @.str.2547) + br i1 %t251, label %panic4332, label %ok4333 +panic4332: + call void @finch_panic(ptr @.str.2631, i64 1872, ptr @.str.2632) unreachable -ok4189: +ok4333: %t252 = getelementptr inbounds %S.gen.Gen, ptr %t250, i32 0, i32 16 %t253 = load i64, ptr %a2 %t254 = load { ptr, i64, i64 }, ptr %t252 %t255 = extractvalue { ptr, i64, i64 } %t254, 1 %t256 = icmp uge i64 %t253, %t255 - br i1 %t256, label %range4190, label %inrange4191 -range4190: - call void @finch_panic_index(ptr @.str.2548, i64 1791, i64 %t253, i64 %t255) + br i1 %t256, label %range4334, label %inrange4335 +range4334: + call void @finch_panic_index(ptr @.str.2633, i64 1872, i64 %t253, i64 %t255) unreachable -inrange4191: +inrange4335: %t257 = extractvalue { ptr, i64, i64 } %t254, 0 %t258 = getelementptr inbounds %S.gen.StructDef, ptr %t257, i64 %t253 %t259 = getelementptr inbounds %S.gen.StructDef, ptr %t258, i32 0, i32 9 @@ -43133,69 +44781,69 @@ inrange4191: %t261 = load i64, ptr %t260 %t262 = load ptr, ptr %a1 %t263 = icmp eq ptr %t262, null - br i1 %t263, label %panic4192, label %ok4193 -panic4192: - call void @finch_panic(ptr @.str.2549, i64 1792, ptr @.str.2550) + br i1 %t263, label %panic4336, label %ok4337 +panic4336: + call void @finch_panic(ptr @.str.2634, i64 1873, ptr @.str.2635) unreachable -ok4193: +ok4337: %t264 = getelementptr inbounds %S.gen.Gen, ptr %t262, i32 0, i32 16 %t265 = load i64, ptr %a2 %t266 = load { ptr, i64, i64 }, ptr %t264 %t267 = extractvalue { ptr, i64, i64 } %t266, 1 %t268 = icmp uge i64 %t265, %t267 - br i1 %t268, label %range4194, label %inrange4195 -range4194: - call void @finch_panic_index(ptr @.str.2551, i64 1792, i64 %t265, i64 %t267) + br i1 %t268, label %range4338, label %inrange4339 +range4338: + call void @finch_panic_index(ptr @.str.2636, i64 1873, i64 %t265, i64 %t267) unreachable -inrange4195: +inrange4339: %t269 = extractvalue { ptr, i64, i64 } %t266, 0 %t270 = getelementptr inbounds %S.gen.StructDef, ptr %t269, i64 %t265 %t271 = getelementptr inbounds %S.gen.StructDef, ptr %t270, i32 0, i32 10 store i64 %t261, ptr %t271 %t272 = load ptr, ptr %a1 %t273 = icmp eq ptr %t272, null - br i1 %t273, label %panic4196, label %ok4197 -panic4196: - call void @finch_panic(ptr @.str.2552, i64 1793, ptr @.str.2553) + br i1 %t273, label %panic4340, label %ok4341 +panic4340: + call void @finch_panic(ptr @.str.2637, i64 1874, ptr @.str.2638) unreachable -ok4197: +ok4341: %t274 = getelementptr inbounds %S.gen.Gen, ptr %t272, i32 0, i32 16 %t275 = load i64, ptr %a2 %t276 = load { ptr, i64, i64 }, ptr %t274 %t277 = extractvalue { ptr, i64, i64 } %t276, 1 %t278 = icmp uge i64 %t275, %t277 - br i1 %t278, label %range4198, label %inrange4199 -range4198: - call void @finch_panic_index(ptr @.str.2554, i64 1793, i64 %t275, i64 %t277) + br i1 %t278, label %range4342, label %inrange4343 +range4342: + call void @finch_panic_index(ptr @.str.2639, i64 1874, i64 %t275, i64 %t277) unreachable -inrange4199: +inrange4343: %t279 = extractvalue { ptr, i64, i64 } %t276, 0 %t280 = getelementptr inbounds %S.gen.StructDef, ptr %t279, i64 %t275 %t281 = getelementptr inbounds %S.gen.StructDef, ptr %t280, i32 0, i32 15 store i64 2, ptr %t281 %t282 = load ptr, ptr %a1 %t283 = icmp eq ptr %t282, null - br i1 %t283, label %panic4200, label %ok4201 -panic4200: - call void @finch_panic(ptr @.str.2555, i64 1794, ptr @.str.2556) + br i1 %t283, label %panic4344, label %ok4345 +panic4344: + call void @finch_panic(ptr @.str.2640, i64 1875, ptr @.str.2641) unreachable -ok4201: +ok4345: %t284 = getelementptr inbounds %S.gen.Gen, ptr %t282, i32 0, i32 2 %t285 = getelementptr inbounds { ptr, i64, i64 }, ptr %t284, i32 0, i32 1 %t286 = getelementptr inbounds %S.cimport.CStruct, ptr %a31, i32 0, i32 0 %t287 = load { ptr, i64, i64 }, ptr %t286 - store { ptr, i64, i64 } { ptr @.str.2557, i64 5, i64 0 }, ptr %a289 + store { ptr, i64, i64 } { ptr @.str.2642, i64 5, i64 0 }, ptr %a289 store { ptr, i64, i64 } %t287, ptr %a290 call void @finch_str_concat(ptr %a288, ptr %a289, ptr %a290) %t291 = load { ptr, i64, i64 }, ptr %a288 store { ptr, i64, i64 } %t291, ptr %a293 - store { ptr, i64, i64 } { ptr @.str.2558, i64 10, i64 0 }, ptr %a294 + store { ptr, i64, i64 } { ptr @.str.2643, i64 10, i64 0 }, ptr %a294 call void @finch_str_concat(ptr %a292, ptr %a293, ptr %a294) store { ptr, i64, i64 } %t291, ptr %a295 call void @finch_str_drop(ptr %a295) %t296 = load { ptr, i64, i64 }, ptr %a292 %t297 = getelementptr inbounds { ptr, i64, i64 }, ptr %a43, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.2559, i64 2, i64 0 }, ptr %a298 + store { ptr, i64, i64 } { ptr @.str.2644, i64 2, i64 0 }, ptr %a298 call void @finch_str_join(ptr %a299, ptr %a43, ptr %a298) %t300 = load { ptr, i64, i64 }, ptr %a299 store { ptr, i64, i64 } %t296, ptr %a302 @@ -43207,7 +44855,7 @@ ok4201: call void @finch_str_drop(ptr %a305) %t306 = load { ptr, i64, i64 }, ptr %a301 store { ptr, i64, i64 } %t306, ptr %a308 - store { ptr, i64, i64 } { ptr @.str.2560, i64 2, i64 0 }, ptr %a309 + store { ptr, i64, i64 } { ptr @.str.2645, i64 2, i64 0 }, ptr %a309 call void @finch_str_concat(ptr %a307, ptr %a308, ptr %a309) store { ptr, i64, i64 } %t306, ptr %a310 call void @finch_str_drop(ptr %a310) @@ -43264,95 +44912,95 @@ entry: store i64 %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic4202, label %ok4203 -panic4202: - call void @finch_panic(ptr @.str.2561, i64 1798, ptr @.str.2562) + br i1 %t4, label %panic4346, label %ok4347 +panic4346: + call void @finch_panic(ptr @.str.2646, i64 1879, ptr @.str.2647) unreachable -ok4203: +ok4347: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 16 %t6 = load i64, ptr %a2 %t7 = load { ptr, i64, i64 }, ptr %t5 %t8 = extractvalue { ptr, i64, i64 } %t7, 1 %t9 = icmp uge i64 %t6, %t8 - br i1 %t9, label %range4204, label %inrange4205 -range4204: - call void @finch_panic_index(ptr @.str.2563, i64 1798, i64 %t6, i64 %t8) + br i1 %t9, label %range4348, label %inrange4349 +range4348: + call void @finch_panic_index(ptr @.str.2648, i64 1879, i64 %t6, i64 %t8) unreachable -inrange4205: +inrange4349: %t10 = extractvalue { ptr, i64, i64 } %t7, 0 %t11 = getelementptr inbounds %S.gen.StructDef, ptr %t10, i64 %t6 %t12 = getelementptr inbounds %S.gen.StructDef, ptr %t11, i32 0, i32 15 %t13 = load i64, ptr %t12 %t14 = icmp eq i64 %t13, 2 - br i1 %t14, label %then4206, label %endif4208 -then4206: + br i1 %t14, label %then4350, label %endif4352 +then4350: ret void -endif4208: +endif4352: %t15 = load ptr, ptr %a1 %t16 = icmp eq ptr %t15, null - br i1 %t16, label %panic4209, label %ok4210 -panic4209: - call void @finch_panic(ptr @.str.2564, i64 1801, ptr @.str.2565) + br i1 %t16, label %panic4353, label %ok4354 +panic4353: + call void @finch_panic(ptr @.str.2649, i64 1882, ptr @.str.2650) unreachable -ok4210: +ok4354: %t17 = getelementptr inbounds %S.gen.Gen, ptr %t15, i32 0, i32 16 %t18 = load i64, ptr %a2 %t19 = load { ptr, i64, i64 }, ptr %t17 %t20 = extractvalue { ptr, i64, i64 } %t19, 1 %t21 = icmp uge i64 %t18, %t20 - br i1 %t21, label %range4211, label %inrange4212 -range4211: - call void @finch_panic_index(ptr @.str.2566, i64 1801, i64 %t18, i64 %t20) + br i1 %t21, label %range4355, label %inrange4356 +range4355: + call void @finch_panic_index(ptr @.str.2651, i64 1882, i64 %t18, i64 %t20) unreachable -inrange4212: +inrange4356: %t22 = extractvalue { ptr, i64, i64 } %t19, 0 %t23 = getelementptr inbounds %S.gen.StructDef, ptr %t22, i64 %t18 %t24 = getelementptr inbounds %S.gen.StructDef, ptr %t23, i32 0, i32 2 %t25 = load i1, ptr %t24 - br i1 %t25, label %then4213, label %endif4215 -then4213: + br i1 %t25, label %then4357, label %endif4359 +then4357: %t26 = load ptr, ptr %a1 %t27 = load i64, ptr %a2 call void @finch.gen.resolveCStruct(ptr %t26, i64 %t27) ret void -endif4215: +endif4359: %t28 = load ptr, ptr %a1 %t29 = icmp eq ptr %t28, null - br i1 %t29, label %panic4216, label %ok4217 -panic4216: - call void @finch_panic(ptr @.str.2567, i64 1805, ptr @.str.2568) + br i1 %t29, label %panic4360, label %ok4361 +panic4360: + call void @finch_panic(ptr @.str.2652, i64 1886, ptr @.str.2653) unreachable -ok4217: +ok4361: %t30 = getelementptr inbounds %S.gen.Gen, ptr %t28, i32 0, i32 16 %t31 = load i64, ptr %a2 %t32 = load { ptr, i64, i64 }, ptr %t30 %t33 = extractvalue { ptr, i64, i64 } %t32, 1 %t34 = icmp uge i64 %t31, %t33 - br i1 %t34, label %range4218, label %inrange4219 -range4218: - call void @finch_panic_index(ptr @.str.2569, i64 1805, i64 %t31, i64 %t33) + br i1 %t34, label %range4362, label %inrange4363 +range4362: + call void @finch_panic_index(ptr @.str.2654, i64 1886, i64 %t31, i64 %t33) unreachable -inrange4219: +inrange4363: %t35 = extractvalue { ptr, i64, i64 } %t32, 0 %t36 = getelementptr inbounds %S.gen.StructDef, ptr %t35, i64 %t31 %t37 = getelementptr inbounds %S.gen.StructDef, ptr %t36, i32 0, i32 5 %t38 = getelementptr inbounds { ptr, i64, i64 }, ptr %t37, i32 0, i32 1 %t39 = load i64, ptr %t38 %t40 = icmp eq i64 %t39, 0 - br i1 %t40, label %then4220, label %endif4222 -then4220: + br i1 %t40, label %then4364, label %endif4366 +then4364: %t41 = load ptr, ptr %a1 %t42 = load i64, ptr %a2 call void @finch.gen.resolveStructBody(ptr %t41, i64 %t42) ret void -endif4222: +endif4366: %t43 = load ptr, ptr %a1 %t44 = icmp eq ptr %t43, null - br i1 %t44, label %panic4223, label %ok4224 -panic4223: - call void @finch_panic(ptr @.str.2570, i64 1810, ptr @.str.2571) + br i1 %t44, label %panic4367, label %ok4368 +panic4367: + call void @finch_panic(ptr @.str.2655, i64 1891, ptr @.str.2656) unreachable -ok4224: +ok4368: %t45 = getelementptr inbounds %S.gen.Gen, ptr %t43, i32 0, i32 18 %t46 = load { ptr, i64, i64 }, ptr %t45 store { ptr, i64, i64 } %t46, ptr %a47 @@ -43361,11 +45009,11 @@ ok4224: store { ptr, i64, i64 } %t49, ptr %a50 %t51 = load ptr, ptr %a1 %t52 = icmp eq ptr %t51, null - br i1 %t52, label %panic4225, label %ok4226 -panic4225: - call void @finch_panic(ptr @.str.2572, i64 1811, ptr @.str.2573) + br i1 %t52, label %panic4369, label %ok4370 +panic4369: + call void @finch_panic(ptr @.str.2657, i64 1892, ptr @.str.2658) unreachable -ok4226: +ok4370: %t53 = getelementptr inbounds %S.gen.Gen, ptr %t51, i32 0, i32 19 %t54 = load { ptr, i64, i64 }, ptr %t53 store { ptr, i64, i64 } %t54, ptr %a55 @@ -43374,11 +45022,11 @@ ok4226: store { ptr, i64, i64 } %t57, ptr %a58 %t59 = load ptr, ptr %a1 %t60 = icmp eq ptr %t59, null - br i1 %t60, label %panic4227, label %ok4228 -panic4227: - call void @finch_panic(ptr @.str.2574, i64 1812, ptr @.str.2575) + br i1 %t60, label %panic4371, label %ok4372 +panic4371: + call void @finch_panic(ptr @.str.2659, i64 1893, ptr @.str.2660) unreachable -ok4228: +ok4372: %t61 = getelementptr inbounds %S.gen.Gen, ptr %t59, i32 0, i32 20 %t62 = load { ptr, i64, i64 }, ptr %t61 store { ptr, i64, i64 } %t62, ptr %a63 @@ -43387,32 +45035,32 @@ ok4228: store { ptr, i64, i64 } %t65, ptr %a66 %t67 = load ptr, ptr %a1 %t68 = icmp eq ptr %t67, null - br i1 %t68, label %panic4229, label %ok4230 -panic4229: - call void @finch_panic(ptr @.str.2576, i64 1813, ptr @.str.2577) + br i1 %t68, label %panic4373, label %ok4374 +panic4373: + call void @finch_panic(ptr @.str.2661, i64 1894, ptr @.str.2662) unreachable -ok4230: +ok4374: %t69 = getelementptr inbounds %S.gen.Gen, ptr %t67, i32 0, i32 16 %t70 = load i64, ptr %a2 %t71 = load { ptr, i64, i64 }, ptr %t69 %t72 = extractvalue { ptr, i64, i64 } %t71, 1 %t73 = icmp uge i64 %t70, %t72 - br i1 %t73, label %range4231, label %inrange4232 -range4231: - call void @finch_panic_index(ptr @.str.2578, i64 1813, i64 %t70, i64 %t72) + br i1 %t73, label %range4375, label %inrange4376 +range4375: + call void @finch_panic_index(ptr @.str.2663, i64 1894, i64 %t70, i64 %t72) unreachable -inrange4232: +inrange4376: %t74 = extractvalue { ptr, i64, i64 } %t71, 0 %t75 = getelementptr inbounds %S.gen.StructDef, ptr %t74, i64 %t70 %t76 = getelementptr inbounds %S.gen.StructDef, ptr %t75, i32 0, i32 6 %t77 = load { ptr, i64, i64 }, ptr %t76 %t78 = load ptr, ptr %a1 %t79 = icmp eq ptr %t78, null - br i1 %t79, label %panic4233, label %ok4234 -panic4233: - call void @finch_panic(ptr @.str.2579, i64 1813, ptr @.str.2580) + br i1 %t79, label %panic4377, label %ok4378 +panic4377: + call void @finch_panic(ptr @.str.2664, i64 1894, ptr @.str.2665) unreachable -ok4234: +ok4378: %t80 = getelementptr inbounds %S.gen.Gen, ptr %t78, i32 0, i32 18 store { ptr, i64, i64 } %t77, ptr %a81 call void @finch.copy.arr_str(ptr %a82, ptr %a81) @@ -43423,32 +45071,32 @@ ok4234: call void @finch.drop.arr_str(ptr %a85) %t86 = load ptr, ptr %a1 %t87 = icmp eq ptr %t86, null - br i1 %t87, label %panic4235, label %ok4236 -panic4235: - call void @finch_panic(ptr @.str.2581, i64 1814, ptr @.str.2582) + br i1 %t87, label %panic4379, label %ok4380 +panic4379: + call void @finch_panic(ptr @.str.2666, i64 1895, ptr @.str.2667) unreachable -ok4236: +ok4380: %t88 = getelementptr inbounds %S.gen.Gen, ptr %t86, i32 0, i32 16 %t89 = load i64, ptr %a2 %t90 = load { ptr, i64, i64 }, ptr %t88 %t91 = extractvalue { ptr, i64, i64 } %t90, 1 %t92 = icmp uge i64 %t89, %t91 - br i1 %t92, label %range4237, label %inrange4238 -range4237: - call void @finch_panic_index(ptr @.str.2583, i64 1814, i64 %t89, i64 %t91) + br i1 %t92, label %range4381, label %inrange4382 +range4381: + call void @finch_panic_index(ptr @.str.2668, i64 1895, i64 %t89, i64 %t91) unreachable -inrange4238: +inrange4382: %t93 = extractvalue { ptr, i64, i64 } %t90, 0 %t94 = getelementptr inbounds %S.gen.StructDef, ptr %t93, i64 %t89 %t95 = getelementptr inbounds %S.gen.StructDef, ptr %t94, i32 0, i32 7 %t96 = load { ptr, i64, i64 }, ptr %t95 %t97 = load ptr, ptr %a1 %t98 = icmp eq ptr %t97, null - br i1 %t98, label %panic4239, label %ok4240 -panic4239: - call void @finch_panic(ptr @.str.2584, i64 1814, ptr @.str.2585) + br i1 %t98, label %panic4383, label %ok4384 +panic4383: + call void @finch_panic(ptr @.str.2669, i64 1895, ptr @.str.2670) unreachable -ok4240: +ok4384: %t99 = getelementptr inbounds %S.gen.Gen, ptr %t97, i32 0, i32 19 store { ptr, i64, i64 } %t96, ptr %a100 call void @finch.copy.arr_S_ast_Type(ptr %a101, ptr %a100) @@ -43459,42 +45107,42 @@ ok4240: call void @finch.drop.arr_S_ast_Type(ptr %a104) %t105 = load ptr, ptr %a1 %t106 = icmp eq ptr %t105, null - br i1 %t106, label %panic4241, label %ok4242 -panic4241: - call void @finch_panic(ptr @.str.2587, i64 1815, ptr @.str.2588) + br i1 %t106, label %panic4385, label %ok4386 +panic4385: + call void @finch_panic(ptr @.str.2672, i64 1896, ptr @.str.2673) unreachable -ok4242: +ok4386: %t107 = getelementptr inbounds %S.gen.Gen, ptr %t105, i32 0, i32 16 %t108 = load i64, ptr %a2 %t109 = load { ptr, i64, i64 }, ptr %t107 %t110 = extractvalue { ptr, i64, i64 } %t109, 1 %t111 = icmp uge i64 %t108, %t110 - br i1 %t111, label %range4243, label %inrange4244 -range4243: - call void @finch_panic_index(ptr @.str.2589, i64 1815, i64 %t108, i64 %t110) + br i1 %t111, label %range4387, label %inrange4388 +range4387: + call void @finch_panic_index(ptr @.str.2674, i64 1896, i64 %t108, i64 %t110) unreachable -inrange4244: +inrange4388: %t112 = extractvalue { ptr, i64, i64 } %t109, 0 %t113 = getelementptr inbounds %S.gen.StructDef, ptr %t112, i64 %t108 %t114 = getelementptr inbounds %S.gen.StructDef, ptr %t113, i32 0, i32 1 %t115 = load { ptr, i64, i64 }, ptr %t114 - store { ptr, i64, i64 } { ptr @.str.2586, i64 17, i64 0 }, ptr %a117 + store { ptr, i64, i64 } { ptr @.str.2671, i64 17, i64 0 }, ptr %a117 store { ptr, i64, i64 } %t115, ptr %a118 call void @finch_str_concat(ptr %a116, ptr %a117, ptr %a118) %t119 = load { ptr, i64, i64 }, ptr %a116 store { ptr, i64, i64 } %t119, ptr %a121 - store { ptr, i64, i64 } { ptr @.str.2590, i64 1, i64 0 }, ptr %a122 + store { ptr, i64, i64 } { ptr @.str.2675, i64 1, i64 0 }, ptr %a122 call void @finch_str_concat(ptr %a120, ptr %a121, ptr %a122) store { ptr, i64, i64 } %t119, ptr %a123 call void @finch_str_drop(ptr %a123) %t124 = load { ptr, i64, i64 }, ptr %a120 %t125 = load ptr, ptr %a1 %t126 = icmp eq ptr %t125, null - br i1 %t126, label %panic4245, label %ok4246 -panic4245: - call void @finch_panic(ptr @.str.2591, i64 1815, ptr @.str.2592) + br i1 %t126, label %panic4389, label %ok4390 +panic4389: + call void @finch_panic(ptr @.str.2676, i64 1896, ptr @.str.2677) unreachable -ok4246: +ok4390: %t127 = getelementptr inbounds %S.gen.Gen, ptr %t125, i32 0, i32 20 %t128 = load { ptr, i64, i64 }, ptr %t127 store { ptr, i64, i64 } %t124, ptr %t127 @@ -43506,11 +45154,11 @@ ok4246: %t132 = load { ptr, i64, i64 }, ptr %a50 %t133 = load ptr, ptr %a1 %t134 = icmp eq ptr %t133, null - br i1 %t134, label %panic4247, label %ok4248 -panic4247: - call void @finch_panic(ptr @.str.2593, i64 1817, ptr @.str.2594) + br i1 %t134, label %panic4391, label %ok4392 +panic4391: + call void @finch_panic(ptr @.str.2678, i64 1898, ptr @.str.2679) unreachable -ok4248: +ok4392: %t135 = getelementptr inbounds %S.gen.Gen, ptr %t133, i32 0, i32 18 store { ptr, i64, i64 } %t132, ptr %a136 call void @finch.copy.arr_str(ptr %a137, ptr %a136) @@ -43522,11 +45170,11 @@ ok4248: %t141 = load { ptr, i64, i64 }, ptr %a58 %t142 = load ptr, ptr %a1 %t143 = icmp eq ptr %t142, null - br i1 %t143, label %panic4249, label %ok4250 -panic4249: - call void @finch_panic(ptr @.str.2595, i64 1818, ptr @.str.2596) + br i1 %t143, label %panic4393, label %ok4394 +panic4393: + call void @finch_panic(ptr @.str.2680, i64 1899, ptr @.str.2681) unreachable -ok4250: +ok4394: %t144 = getelementptr inbounds %S.gen.Gen, ptr %t142, i32 0, i32 19 store { ptr, i64, i64 } %t141, ptr %a145 call void @finch.copy.arr_S_ast_Type(ptr %a146, ptr %a145) @@ -43538,11 +45186,11 @@ ok4250: %t150 = load { ptr, i64, i64 }, ptr %a66 %t151 = load ptr, ptr %a1 %t152 = icmp eq ptr %t151, null - br i1 %t152, label %panic4251, label %ok4252 -panic4251: - call void @finch_panic(ptr @.str.2597, i64 1819, ptr @.str.2598) + br i1 %t152, label %panic4395, label %ok4396 +panic4395: + call void @finch_panic(ptr @.str.2682, i64 1900, ptr @.str.2683) unreachable -ok4252: +ok4396: %t153 = getelementptr inbounds %S.gen.Gen, ptr %t151, i32 0, i32 20 store { ptr, i64, i64 } %t150, ptr %a154 call void @finch_str_copy(ptr %a155, ptr %a154) @@ -43640,29 +45288,29 @@ entry: store i64 %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic4253, label %ok4254 -panic4253: - call void @finch_panic(ptr @.str.2599, i64 1823, ptr @.str.2600) + br i1 %t4, label %panic4397, label %ok4398 +panic4397: + call void @finch_panic(ptr @.str.2684, i64 1904, ptr @.str.2685) unreachable -ok4254: +ok4398: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 0 %t6 = load ptr, ptr %a1 %t7 = icmp eq ptr %t6, null - br i1 %t7, label %panic4255, label %ok4256 -panic4255: - call void @finch_panic(ptr @.str.2601, i64 1823, ptr @.str.2602) + br i1 %t7, label %panic4399, label %ok4400 +panic4399: + call void @finch_panic(ptr @.str.2686, i64 1904, ptr @.str.2687) unreachable -ok4256: +ok4400: %t8 = getelementptr inbounds %S.gen.Gen, ptr %t6, i32 0, i32 16 %t9 = load i64, ptr %a2 %t10 = load { ptr, i64, i64 }, ptr %t8 %t11 = extractvalue { ptr, i64, i64 } %t10, 1 %t12 = icmp uge i64 %t9, %t11 - br i1 %t12, label %range4257, label %inrange4258 -range4257: - call void @finch_panic_index(ptr @.str.2603, i64 1823, i64 %t9, i64 %t11) + br i1 %t12, label %range4401, label %inrange4402 +range4401: + call void @finch_panic_index(ptr @.str.2688, i64 1904, i64 %t9, i64 %t11) unreachable -inrange4258: +inrange4402: %t13 = extractvalue { ptr, i64, i64 } %t10, 0 %t14 = getelementptr inbounds %S.gen.StructDef, ptr %t13, i64 %t9 %t15 = getelementptr inbounds %S.gen.StructDef, ptr %t14, i32 0, i32 13 @@ -43670,31 +45318,31 @@ inrange4258: %t17 = load { ptr, i64, i64 }, ptr %t5 %t18 = extractvalue { ptr, i64, i64 } %t17, 1 %t19 = icmp uge i64 %t16, %t18 - br i1 %t19, label %range4259, label %inrange4260 -range4259: - call void @finch_panic_index(ptr @.str.2604, i64 1823, i64 %t16, i64 %t18) + br i1 %t19, label %range4403, label %inrange4404 +range4403: + call void @finch_panic_index(ptr @.str.2689, i64 1904, i64 %t16, i64 %t18) unreachable -inrange4260: +inrange4404: %t20 = extractvalue { ptr, i64, i64 } %t17, 0 %t21 = getelementptr inbounds %S.ast.Program, ptr %t20, i64 %t16 %t22 = getelementptr inbounds %S.ast.Program, ptr %t21, i32 0, i32 6 %t23 = load ptr, ptr %a1 %t24 = icmp eq ptr %t23, null - br i1 %t24, label %panic4261, label %ok4262 -panic4261: - call void @finch_panic(ptr @.str.2605, i64 1823, ptr @.str.2606) + br i1 %t24, label %panic4405, label %ok4406 +panic4405: + call void @finch_panic(ptr @.str.2690, i64 1904, ptr @.str.2691) unreachable -ok4262: +ok4406: %t25 = getelementptr inbounds %S.gen.Gen, ptr %t23, i32 0, i32 16 %t26 = load i64, ptr %a2 %t27 = load { ptr, i64, i64 }, ptr %t25 %t28 = extractvalue { ptr, i64, i64 } %t27, 1 %t29 = icmp uge i64 %t26, %t28 - br i1 %t29, label %range4263, label %inrange4264 -range4263: - call void @finch_panic_index(ptr @.str.2607, i64 1823, i64 %t26, i64 %t28) + br i1 %t29, label %range4407, label %inrange4408 +range4407: + call void @finch_panic_index(ptr @.str.2692, i64 1904, i64 %t26, i64 %t28) unreachable -inrange4264: +inrange4408: %t30 = extractvalue { ptr, i64, i64 } %t27, 0 %t31 = getelementptr inbounds %S.gen.StructDef, ptr %t30, i64 %t26 %t32 = getelementptr inbounds %S.gen.StructDef, ptr %t31, i32 0, i32 14 @@ -43702,11 +45350,11 @@ inrange4264: %t34 = load { ptr, i64, i64 }, ptr %t22 %t35 = extractvalue { ptr, i64, i64 } %t34, 1 %t36 = icmp uge i64 %t33, %t35 - br i1 %t36, label %range4265, label %inrange4266 -range4265: - call void @finch_panic_index(ptr @.str.2608, i64 1823, i64 %t33, i64 %t35) + br i1 %t36, label %range4409, label %inrange4410 +range4409: + call void @finch_panic_index(ptr @.str.2693, i64 1904, i64 %t33, i64 %t35) unreachable -inrange4266: +inrange4410: %t37 = extractvalue { ptr, i64, i64 } %t34, 0 %t38 = getelementptr inbounds %S.ast.Node, ptr %t37, i64 %t33 %t39 = load %S.ast.Node, ptr %t38 @@ -43716,38 +45364,38 @@ inrange4266: store %S.ast.Node %t42, ptr %a43 %t44 = load ptr, ptr %a1 %t45 = icmp eq ptr %t44, null - br i1 %t45, label %panic4267, label %ok4268 -panic4267: - call void @finch_panic(ptr @.str.2609, i64 1824, ptr @.str.2610) + br i1 %t45, label %panic4411, label %ok4412 +panic4411: + call void @finch_panic(ptr @.str.2694, i64 1905, ptr @.str.2695) unreachable -ok4268: +ok4412: %t46 = getelementptr inbounds %S.gen.Gen, ptr %t44, i32 0, i32 16 %t47 = load i64, ptr %a2 %t48 = load { ptr, i64, i64 }, ptr %t46 %t49 = extractvalue { ptr, i64, i64 } %t48, 1 %t50 = icmp uge i64 %t47, %t49 - br i1 %t50, label %range4269, label %inrange4270 -range4269: - call void @finch_panic_index(ptr @.str.2611, i64 1824, i64 %t47, i64 %t49) + br i1 %t50, label %range4413, label %inrange4414 +range4413: + call void @finch_panic_index(ptr @.str.2696, i64 1905, i64 %t47, i64 %t49) unreachable -inrange4270: +inrange4414: %t51 = extractvalue { ptr, i64, i64 } %t48, 0 %t52 = getelementptr inbounds %S.gen.StructDef, ptr %t51, i64 %t47 %t53 = getelementptr inbounds %S.gen.StructDef, ptr %t52, i32 0, i32 15 %t54 = load i64, ptr %t53 %t55 = icmp eq i64 %t54, 1 - br i1 %t55, label %then4271, label %endif4273 -then4271: + br i1 %t55, label %then4415, label %endif4417 +then4415: %t56 = load ptr, ptr %a1 %t57 = load %S.ast.Node, ptr %a43 %t58 = getelementptr inbounds %S.ast.Node, ptr %a43, i32 0, i32 1 %t59 = load { ptr, i64, i64 }, ptr %t58 - store { ptr, i64, i64 } { ptr @.str.2612, i64 11, i64 0 }, ptr %a61 + store { ptr, i64, i64 } { ptr @.str.2697, i64 11, i64 0 }, ptr %a61 store { ptr, i64, i64 } %t59, ptr %a62 call void @finch_str_concat(ptr %a60, ptr %a61, ptr %a62) %t63 = load { ptr, i64, i64 }, ptr %a60 store { ptr, i64, i64 } %t63, ptr %a65 - store { ptr, i64, i64 } { ptr @.str.2613, i64 26, i64 0 }, ptr %a66 + store { ptr, i64, i64 } { ptr @.str.2698, i64 26, i64 0 }, ptr %a66 call void @finch_str_concat(ptr %a64, ptr %a65, ptr %a66) store { ptr, i64, i64 } %t63, ptr %a67 call void @finch_str_drop(ptr %a67) @@ -43761,7 +45409,7 @@ then4271: call void @finch_str_drop(ptr %a74) %t75 = load { ptr, i64, i64 }, ptr %a71 store { ptr, i64, i64 } %t75, ptr %a77 - store { ptr, i64, i64 } { ptr @.str.2614, i64 7, i64 0 }, ptr %a78 + store { ptr, i64, i64 } { ptr @.str.2699, i64 7, i64 0 }, ptr %a78 call void @finch_str_concat(ptr %a76, ptr %a77, ptr %a78) store { ptr, i64, i64 } %t75, ptr %a79 call void @finch_str_drop(ptr %a79) @@ -43775,7 +45423,7 @@ then4271: call void @finch_str_drop(ptr %a86) %t87 = load { ptr, i64, i64 }, ptr %a83 store { ptr, i64, i64 } %t87, ptr %a89 - store { ptr, i64, i64 } { ptr @.str.2615, i64 15, i64 0 }, ptr %a90 + store { ptr, i64, i64 } { ptr @.str.2700, i64 15, i64 0 }, ptr %a90 call void @finch_str_concat(ptr %a88, ptr %a89, ptr %a90) store { ptr, i64, i64 } %t87, ptr %a91 call void @finch_str_drop(ptr %a91) @@ -43783,36 +45431,36 @@ then4271: call void @finch.gen.fail(ptr %t56, %S.ast.Node %t57, { ptr, i64, i64 } %t92) store { ptr, i64, i64 } %t92, ptr %a93 call void @finch_str_drop(ptr %a93) - br label %endif4273 -endif4273: + br label %endif4417 +endif4417: %t94 = load ptr, ptr %a1 %t95 = icmp eq ptr %t94, null - br i1 %t95, label %panic4274, label %ok4275 -panic4274: - call void @finch_panic(ptr @.str.2616, i64 1827, ptr @.str.2617) + br i1 %t95, label %panic4418, label %ok4419 +panic4418: + call void @finch_panic(ptr @.str.2701, i64 1908, ptr @.str.2702) unreachable -ok4275: +ok4419: %t96 = getelementptr inbounds %S.gen.Gen, ptr %t94, i32 0, i32 16 %t97 = load i64, ptr %a2 %t98 = load { ptr, i64, i64 }, ptr %t96 %t99 = extractvalue { ptr, i64, i64 } %t98, 1 %t100 = icmp uge i64 %t97, %t99 - br i1 %t100, label %range4276, label %inrange4277 -range4276: - call void @finch_panic_index(ptr @.str.2618, i64 1827, i64 %t97, i64 %t99) + br i1 %t100, label %range4420, label %inrange4421 +range4420: + call void @finch_panic_index(ptr @.str.2703, i64 1908, i64 %t97, i64 %t99) unreachable -inrange4277: +inrange4421: %t101 = extractvalue { ptr, i64, i64 } %t98, 0 %t102 = getelementptr inbounds %S.gen.StructDef, ptr %t101, i64 %t97 %t103 = getelementptr inbounds %S.gen.StructDef, ptr %t102, i32 0, i32 15 store i64 1, ptr %t103 %t104 = load ptr, ptr %a1 %t105 = icmp eq ptr %t104, null - br i1 %t105, label %panic4278, label %ok4279 -panic4278: - call void @finch_panic(ptr @.str.2619, i64 1828, ptr @.str.2620) + br i1 %t105, label %panic4422, label %ok4423 +panic4422: + call void @finch_panic(ptr @.str.2704, i64 1909, ptr @.str.2705) unreachable -ok4279: +ok4423: %t106 = getelementptr inbounds %S.gen.Gen, ptr %t104, i32 0, i32 14 %t107 = load { ptr, i64, i64 }, ptr %t106 store { ptr, i64, i64 } %t107, ptr %a108 @@ -43821,32 +45469,32 @@ ok4279: store { ptr, i64, i64 } %t110, ptr %a111 %t112 = load ptr, ptr %a1 %t113 = icmp eq ptr %t112, null - br i1 %t113, label %panic4280, label %ok4281 -panic4280: - call void @finch_panic(ptr @.str.2621, i64 1829, ptr @.str.2622) + br i1 %t113, label %panic4424, label %ok4425 +panic4424: + call void @finch_panic(ptr @.str.2706, i64 1910, ptr @.str.2707) unreachable -ok4281: +ok4425: %t114 = getelementptr inbounds %S.gen.Gen, ptr %t112, i32 0, i32 16 %t115 = load i64, ptr %a2 %t116 = load { ptr, i64, i64 }, ptr %t114 %t117 = extractvalue { ptr, i64, i64 } %t116, 1 %t118 = icmp uge i64 %t115, %t117 - br i1 %t118, label %range4282, label %inrange4283 -range4282: - call void @finch_panic_index(ptr @.str.2623, i64 1829, i64 %t115, i64 %t117) + br i1 %t118, label %range4426, label %inrange4427 +range4426: + call void @finch_panic_index(ptr @.str.2708, i64 1910, i64 %t115, i64 %t117) unreachable -inrange4283: +inrange4427: %t119 = extractvalue { ptr, i64, i64 } %t116, 0 %t120 = getelementptr inbounds %S.gen.StructDef, ptr %t119, i64 %t115 %t121 = getelementptr inbounds %S.gen.StructDef, ptr %t120, i32 0, i32 0 %t122 = load { ptr, i64, i64 }, ptr %t121 %t123 = load ptr, ptr %a1 %t124 = icmp eq ptr %t123, null - br i1 %t124, label %panic4284, label %ok4285 -panic4284: - call void @finch_panic(ptr @.str.2624, i64 1829, ptr @.str.2625) + br i1 %t124, label %panic4428, label %ok4429 +panic4428: + call void @finch_panic(ptr @.str.2709, i64 1910, ptr @.str.2710) unreachable -ok4285: +ok4429: %t125 = getelementptr inbounds %S.gen.Gen, ptr %t123, i32 0, i32 14 store { ptr, i64, i64 } %t122, ptr %a126 call void @finch_str_copy(ptr %a127, ptr %a126) @@ -43859,14 +45507,14 @@ ok4285: store { ptr, i64, i64 } zeroinitializer, ptr %a132 %t133 = getelementptr inbounds %S.ast.Node, ptr %a43, i32 0, i32 9 store i64 0, ptr %a134 - br label %each.cond4286 -each.cond4286: + br label %each.cond4430 +each.cond4430: %t135 = getelementptr inbounds { ptr, i64, i64 }, ptr %t133, i32 0, i32 1 %t136 = load i64, ptr %t135 %t137 = load i64, ptr %a134 %t138 = icmp slt i64 %t137, %t136 - br i1 %t138, label %each.body4287, label %each.end4289 -each.body4287: + br i1 %t138, label %each.body4431, label %each.end4433 +each.body4431: %t139 = load ptr, ptr %t133 %t140 = getelementptr inbounds %S.ast.Node, ptr %t139, i64 %t137 %t141 = load %S.ast.Node, ptr %t140 @@ -43880,11 +45528,11 @@ each.body4287: %t149 = getelementptr inbounds %S.ast.Type, ptr %a148, i32 0, i32 0 %t150 = load { ptr, i64, i64 }, ptr %t149 store { ptr, i64, i64 } %t150, ptr %a151 - store { ptr, i64, i64 } { ptr @.str.2626, i64 6, i64 0 }, ptr %a152 + store { ptr, i64, i64 } { ptr @.str.2711, i64 6, i64 0 }, ptr %a152 %t153 = call i32 @finch_str_eq(ptr %a151, ptr %a152) %t154 = icmp ne i32 %t153, 0 - br i1 %t154, label %then4290, label %endif4292 -then4290: + br i1 %t154, label %then4434, label %endif4436 +then4434: %t155 = load ptr, ptr %a1 %t156 = load ptr, ptr %a1 %t157 = getelementptr inbounds %S.ast.Type, ptr %a148, i32 0, i32 3 @@ -43893,46 +45541,46 @@ then4290: %t160 = load { ptr, i64, i64 }, ptr %t159 %t161 = call i64 @finch.gen.findStruct(ptr %t156, { ptr, i64, i64 } %t158, { ptr, i64, i64 } %t160) call void @finch.gen.resolveStruct(ptr %t155, i64 %t161) - br label %endif4292 -endif4292: + br label %endif4436 +endif4436: %t162 = load ptr, ptr %a1 %t163 = icmp eq ptr %t162, null - br i1 %t163, label %panic4293, label %ok4294 -panic4293: - call void @finch_panic(ptr @.str.2627, i64 1837, ptr @.str.2628) + br i1 %t163, label %panic4437, label %ok4438 +panic4437: + call void @finch_panic(ptr @.str.2712, i64 1918, ptr @.str.2713) unreachable -ok4294: +ok4438: %t164 = getelementptr inbounds %S.gen.Gen, ptr %t162, i32 0, i32 16 %t165 = load i64, ptr %a2 %t166 = load { ptr, i64, i64 }, ptr %t164 %t167 = extractvalue { ptr, i64, i64 } %t166, 1 %t168 = icmp uge i64 %t165, %t167 - br i1 %t168, label %range4295, label %inrange4296 -range4295: - call void @finch_panic_index(ptr @.str.2629, i64 1837, i64 %t165, i64 %t167) + br i1 %t168, label %range4439, label %inrange4440 +range4439: + call void @finch_panic_index(ptr @.str.2714, i64 1918, i64 %t165, i64 %t167) unreachable -inrange4296: +inrange4440: %t169 = extractvalue { ptr, i64, i64 } %t166, 0 %t170 = getelementptr inbounds %S.gen.StructDef, ptr %t169, i64 %t165 %t171 = getelementptr inbounds %S.gen.StructDef, ptr %t170, i32 0, i32 3 %t172 = getelementptr inbounds { ptr, i64, i64 }, ptr %t171, i32 0, i32 1 %t173 = load ptr, ptr %a1 %t174 = icmp eq ptr %t173, null - br i1 %t174, label %panic4297, label %ok4298 -panic4297: - call void @finch_panic(ptr @.str.2630, i64 1837, ptr @.str.2631) + br i1 %t174, label %panic4441, label %ok4442 +panic4441: + call void @finch_panic(ptr @.str.2715, i64 1918, ptr @.str.2716) unreachable -ok4298: +ok4442: %t175 = getelementptr inbounds %S.gen.Gen, ptr %t173, i32 0, i32 16 %t176 = load i64, ptr %a2 %t177 = load { ptr, i64, i64 }, ptr %t175 %t178 = extractvalue { ptr, i64, i64 } %t177, 1 %t179 = icmp uge i64 %t176, %t178 - br i1 %t179, label %range4299, label %inrange4300 -range4299: - call void @finch_panic_index(ptr @.str.2632, i64 1837, i64 %t176, i64 %t178) + br i1 %t179, label %range4443, label %inrange4444 +range4443: + call void @finch_panic_index(ptr @.str.2717, i64 1918, i64 %t176, i64 %t178) unreachable -inrange4300: +inrange4444: %t180 = extractvalue { ptr, i64, i64 } %t177, 0 %t181 = getelementptr inbounds %S.gen.StructDef, ptr %t180, i64 %t176 %t182 = getelementptr inbounds %S.gen.StructDef, ptr %t181, i32 0, i32 11 @@ -43947,21 +45595,21 @@ inrange4300: store i64 %t186, ptr %t172 %t189 = load ptr, ptr %a1 %t190 = icmp eq ptr %t189, null - br i1 %t190, label %panic4301, label %ok4302 -panic4301: - call void @finch_panic(ptr @.str.2633, i64 1838, ptr @.str.2634) + br i1 %t190, label %panic4445, label %ok4446 +panic4445: + call void @finch_panic(ptr @.str.2718, i64 1919, ptr @.str.2719) unreachable -ok4302: +ok4446: %t191 = getelementptr inbounds %S.gen.Gen, ptr %t189, i32 0, i32 16 %t192 = load i64, ptr %a2 %t193 = load { ptr, i64, i64 }, ptr %t191 %t194 = extractvalue { ptr, i64, i64 } %t193, 1 %t195 = icmp uge i64 %t192, %t194 - br i1 %t195, label %range4303, label %inrange4304 -range4303: - call void @finch_panic_index(ptr @.str.2635, i64 1838, i64 %t192, i64 %t194) + br i1 %t195, label %range4447, label %inrange4448 +range4447: + call void @finch_panic_index(ptr @.str.2720, i64 1919, i64 %t192, i64 %t194) unreachable -inrange4304: +inrange4448: %t196 = extractvalue { ptr, i64, i64 } %t193, 0 %t197 = getelementptr inbounds %S.gen.StructDef, ptr %t196, i64 %t192 %t198 = getelementptr inbounds %S.gen.StructDef, ptr %t197, i32 0, i32 11 @@ -43980,21 +45628,21 @@ inrange4304: store i64 %t206, ptr %t199 %t209 = load ptr, ptr %a1 %t210 = icmp eq ptr %t209, null - br i1 %t210, label %panic4305, label %ok4306 -panic4305: - call void @finch_panic(ptr @.str.2636, i64 1839, ptr @.str.2637) + br i1 %t210, label %panic4449, label %ok4450 +panic4449: + call void @finch_panic(ptr @.str.2721, i64 1920, ptr @.str.2722) unreachable -ok4306: +ok4450: %t211 = getelementptr inbounds %S.gen.Gen, ptr %t209, i32 0, i32 16 %t212 = load i64, ptr %a2 %t213 = load { ptr, i64, i64 }, ptr %t211 %t214 = extractvalue { ptr, i64, i64 } %t213, 1 %t215 = icmp uge i64 %t212, %t214 - br i1 %t215, label %range4307, label %inrange4308 -range4307: - call void @finch_panic_index(ptr @.str.2638, i64 1839, i64 %t212, i64 %t214) + br i1 %t215, label %range4451, label %inrange4452 +range4451: + call void @finch_panic_index(ptr @.str.2723, i64 1920, i64 %t212, i64 %t214) unreachable -inrange4308: +inrange4452: %t216 = extractvalue { ptr, i64, i64 } %t213, 0 %t217 = getelementptr inbounds %S.gen.StructDef, ptr %t216, i64 %t212 %t218 = getelementptr inbounds %S.gen.StructDef, ptr %t217, i32 0, i32 12 @@ -44013,11 +45661,11 @@ inrange4308: %t228 = load ptr, ptr %a1 %t229 = load %S.ast.Type, ptr %a148 %t230 = call i1 @finch.gen.owning(ptr %t228, %S.ast.Type %t229) - br i1 %t230, label %then4309, label %endif4311 -then4309: + br i1 %t230, label %then4453, label %endif4455 +then4453: store i1 true, ptr %a131 - br label %endif4311 -endif4311: + br label %endif4455 +endif4455: %t231 = getelementptr inbounds { ptr, i64, i64 }, ptr %a132, i32 0, i32 1 %t232 = load ptr, ptr %a1 %t233 = load %S.ast.Type, ptr %a148 @@ -44030,31 +45678,31 @@ endif4311: store { ptr, i64, i64 } %t234, ptr %t238 store i64 %t236, ptr %t231 call void @finch.drop.S_ast_Type(ptr %a148) - br label %each.step4288 -each.step4288: + br label %each.step4432 +each.step4432: %t239 = load i64, ptr %a134 %t240 = add i64 %t239, 1 store i64 %t240, ptr %a134 - br label %each.cond4286 -each.end4289: + br label %each.cond4430 +each.end4433: %t241 = load i1, ptr %a131 %t242 = load ptr, ptr %a1 %t243 = icmp eq ptr %t242, null - br i1 %t243, label %panic4312, label %ok4313 -panic4312: - call void @finch_panic(ptr @.str.2639, i64 1845, ptr @.str.2640) + br i1 %t243, label %panic4456, label %ok4457 +panic4456: + call void @finch_panic(ptr @.str.2724, i64 1926, ptr @.str.2725) unreachable -ok4313: +ok4457: %t244 = getelementptr inbounds %S.gen.Gen, ptr %t242, i32 0, i32 16 %t245 = load i64, ptr %a2 %t246 = load { ptr, i64, i64 }, ptr %t244 %t247 = extractvalue { ptr, i64, i64 } %t246, 1 %t248 = icmp uge i64 %t245, %t247 - br i1 %t248, label %range4314, label %inrange4315 -range4314: - call void @finch_panic_index(ptr @.str.2641, i64 1845, i64 %t245, i64 %t247) + br i1 %t248, label %range4458, label %inrange4459 +range4458: + call void @finch_panic_index(ptr @.str.2726, i64 1926, i64 %t245, i64 %t247) unreachable -inrange4315: +inrange4459: %t249 = extractvalue { ptr, i64, i64 } %t246, 0 %t250 = getelementptr inbounds %S.gen.StructDef, ptr %t249, i64 %t245 %t251 = getelementptr inbounds %S.gen.StructDef, ptr %t250, i32 0, i32 16 @@ -44062,11 +45710,11 @@ inrange4315: %t252 = load { ptr, i64, i64 }, ptr %a111 %t253 = load ptr, ptr %a1 %t254 = icmp eq ptr %t253, null - br i1 %t254, label %panic4316, label %ok4317 -panic4316: - call void @finch_panic(ptr @.str.2642, i64 1846, ptr @.str.2643) + br i1 %t254, label %panic4460, label %ok4461 +panic4460: + call void @finch_panic(ptr @.str.2727, i64 1927, ptr @.str.2728) unreachable -ok4317: +ok4461: %t255 = getelementptr inbounds %S.gen.Gen, ptr %t253, i32 0, i32 14 store { ptr, i64, i64 } %t252, ptr %a256 call void @finch_str_copy(ptr %a257, ptr %a256) @@ -44077,85 +45725,85 @@ ok4317: call void @finch_str_drop(ptr %a260) %t261 = load ptr, ptr %a1 %t262 = icmp eq ptr %t261, null - br i1 %t262, label %panic4318, label %ok4319 -panic4318: - call void @finch_panic(ptr @.str.2644, i64 1847, ptr @.str.2645) + br i1 %t262, label %panic4462, label %ok4463 +panic4462: + call void @finch_panic(ptr @.str.2729, i64 1928, ptr @.str.2730) unreachable -ok4319: +ok4463: %t263 = getelementptr inbounds %S.gen.Gen, ptr %t261, i32 0, i32 16 %t264 = load i64, ptr %a2 %t265 = load { ptr, i64, i64 }, ptr %t263 %t266 = extractvalue { ptr, i64, i64 } %t265, 1 %t267 = icmp uge i64 %t264, %t266 - br i1 %t267, label %range4320, label %inrange4321 -range4320: - call void @finch_panic_index(ptr @.str.2646, i64 1847, i64 %t264, i64 %t266) + br i1 %t267, label %range4464, label %inrange4465 +range4464: + call void @finch_panic_index(ptr @.str.2731, i64 1928, i64 %t264, i64 %t266) unreachable -inrange4321: +inrange4465: %t268 = extractvalue { ptr, i64, i64 } %t265, 0 %t269 = getelementptr inbounds %S.gen.StructDef, ptr %t268, i64 %t264 %t270 = getelementptr inbounds %S.gen.StructDef, ptr %t269, i32 0, i32 15 store i64 2, ptr %t270 %t271 = load ptr, ptr %a1 %t272 = icmp eq ptr %t271, null - br i1 %t272, label %panic4322, label %ok4323 -panic4322: - call void @finch_panic(ptr @.str.2647, i64 1848, ptr @.str.2648) + br i1 %t272, label %panic4466, label %ok4467 +panic4466: + call void @finch_panic(ptr @.str.2732, i64 1929, ptr @.str.2733) unreachable -ok4323: +ok4467: %t273 = getelementptr inbounds %S.gen.Gen, ptr %t271, i32 0, i32 2 %t274 = getelementptr inbounds { ptr, i64, i64 }, ptr %t273, i32 0, i32 1 %t275 = load ptr, ptr %a1 %t276 = icmp eq ptr %t275, null - br i1 %t276, label %panic4324, label %ok4325 -panic4324: - call void @finch_panic(ptr @.str.2650, i64 1848, ptr @.str.2651) + br i1 %t276, label %panic4468, label %ok4469 +panic4468: + call void @finch_panic(ptr @.str.2735, i64 1929, ptr @.str.2736) unreachable -ok4325: +ok4469: %t277 = getelementptr inbounds %S.gen.Gen, ptr %t275, i32 0, i32 16 %t278 = load i64, ptr %a2 %t279 = load { ptr, i64, i64 }, ptr %t277 %t280 = extractvalue { ptr, i64, i64 } %t279, 1 %t281 = icmp uge i64 %t278, %t280 - br i1 %t281, label %range4326, label %inrange4327 -range4326: - call void @finch_panic_index(ptr @.str.2652, i64 1848, i64 %t278, i64 %t280) + br i1 %t281, label %range4470, label %inrange4471 +range4470: + call void @finch_panic_index(ptr @.str.2737, i64 1929, i64 %t278, i64 %t280) unreachable -inrange4327: +inrange4471: %t282 = extractvalue { ptr, i64, i64 } %t279, 0 %t283 = getelementptr inbounds %S.gen.StructDef, ptr %t282, i64 %t278 %t284 = getelementptr inbounds %S.gen.StructDef, ptr %t283, i32 0, i32 0 %t285 = load { ptr, i64, i64 }, ptr %t284 %t286 = call { ptr, i64, i64 } @finch.gen.modName({ ptr, i64, i64 } %t285) - store { ptr, i64, i64 } { ptr @.str.2649, i64 3, i64 0 }, ptr %a288 + store { ptr, i64, i64 } { ptr @.str.2734, i64 3, i64 0 }, ptr %a288 store { ptr, i64, i64 } %t286, ptr %a289 call void @finch_str_concat(ptr %a287, ptr %a288, ptr %a289) store { ptr, i64, i64 } %t286, ptr %a290 call void @finch_str_drop(ptr %a290) %t291 = load { ptr, i64, i64 }, ptr %a287 store { ptr, i64, i64 } %t291, ptr %a293 - store { ptr, i64, i64 } { ptr @.str.2653, i64 1, i64 0 }, ptr %a294 + store { ptr, i64, i64 } { ptr @.str.2738, i64 1, i64 0 }, ptr %a294 call void @finch_str_concat(ptr %a292, ptr %a293, ptr %a294) store { ptr, i64, i64 } %t291, ptr %a295 call void @finch_str_drop(ptr %a295) %t296 = load { ptr, i64, i64 }, ptr %a292 %t297 = load ptr, ptr %a1 %t298 = icmp eq ptr %t297, null - br i1 %t298, label %panic4328, label %ok4329 -panic4328: - call void @finch_panic(ptr @.str.2654, i64 1848, ptr @.str.2655) + br i1 %t298, label %panic4472, label %ok4473 +panic4472: + call void @finch_panic(ptr @.str.2739, i64 1929, ptr @.str.2740) unreachable -ok4329: +ok4473: %t299 = getelementptr inbounds %S.gen.Gen, ptr %t297, i32 0, i32 16 %t300 = load i64, ptr %a2 %t301 = load { ptr, i64, i64 }, ptr %t299 %t302 = extractvalue { ptr, i64, i64 } %t301, 1 %t303 = icmp uge i64 %t300, %t302 - br i1 %t303, label %range4330, label %inrange4331 -range4330: - call void @finch_panic_index(ptr @.str.2656, i64 1848, i64 %t300, i64 %t302) + br i1 %t303, label %range4474, label %inrange4475 +range4474: + call void @finch_panic_index(ptr @.str.2741, i64 1929, i64 %t300, i64 %t302) unreachable -inrange4331: +inrange4475: %t304 = extractvalue { ptr, i64, i64 } %t301, 0 %t305 = getelementptr inbounds %S.gen.StructDef, ptr %t304, i64 %t300 %t306 = getelementptr inbounds %S.gen.StructDef, ptr %t305, i32 0, i32 1 @@ -44170,13 +45818,13 @@ inrange4331: call void @finch_str_drop(ptr %a313) %t314 = load { ptr, i64, i64 }, ptr %a309 store { ptr, i64, i64 } %t314, ptr %a316 - store { ptr, i64, i64 } { ptr @.str.2657, i64 10, i64 0 }, ptr %a317 + store { ptr, i64, i64 } { ptr @.str.2742, i64 10, i64 0 }, ptr %a317 call void @finch_str_concat(ptr %a315, ptr %a316, ptr %a317) store { ptr, i64, i64 } %t314, ptr %a318 call void @finch_str_drop(ptr %a318) %t319 = load { ptr, i64, i64 }, ptr %a315 %t320 = getelementptr inbounds { ptr, i64, i64 }, ptr %a132, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.2658, i64 2, i64 0 }, ptr %a321 + store { ptr, i64, i64 } { ptr @.str.2743, i64 2, i64 0 }, ptr %a321 call void @finch_str_join(ptr %a322, ptr %a132, ptr %a321) %t323 = load { ptr, i64, i64 }, ptr %a322 store { ptr, i64, i64 } %t319, ptr %a325 @@ -44188,7 +45836,7 @@ inrange4331: call void @finch_str_drop(ptr %a328) %t329 = load { ptr, i64, i64 }, ptr %a324 store { ptr, i64, i64 } %t329, ptr %a331 - store { ptr, i64, i64 } { ptr @.str.2659, i64 2, i64 0 }, ptr %a332 + store { ptr, i64, i64 } { ptr @.str.2744, i64 2, i64 0 }, ptr %a332 call void @finch_str_concat(ptr %a330, ptr %a331, ptr %a332) store { ptr, i64, i64 } %t329, ptr %a333 call void @finch_str_drop(ptr %a333) @@ -44216,12 +45864,12 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic4332, label %ok4333 -panic4332: - call void @finch_panic(ptr @.str.2660, i64 1857, ptr @.str.2661) + br i1 %t4, label %panic4476, label %ok4477 +panic4476: + call void @finch_panic(ptr @.str.2745, i64 1938, ptr @.str.2746) unreachable -ok4333: - %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 32 +ok4477: + %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 33 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t7 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t7, ptr %a8 @@ -44236,12 +45884,12 @@ ok4333: store i64 %t12, ptr %t6 %t15 = load ptr, ptr %a1 %t16 = icmp eq ptr %t15, null - br i1 %t16, label %panic4334, label %ok4335 -panic4334: - call void @finch_panic(ptr @.str.2662, i64 1858, ptr @.str.2663) + br i1 %t16, label %panic4478, label %ok4479 +panic4478: + call void @finch_panic(ptr @.str.2747, i64 1939, ptr @.str.2748) unreachable -ok4335: - %t17 = getelementptr inbounds %S.gen.Gen, ptr %t15, i32 0, i32 32 +ok4479: + %t17 = getelementptr inbounds %S.gen.Gen, ptr %t15, i32 0, i32 33 %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %t17, i32 0, i32 1 %t19 = load i64, ptr %t18 %t20 = sub i64 %t19, 1 @@ -44259,14 +45907,14 @@ entry: store i64 %p0, ptr %a1 %t2 = load i64, ptr %a1 %t3 = icmp slt i64 %t2, 0 - br i1 %t3, label %then4336, label %endif4338 -then4336: - ret { ptr, i64, i64 } { ptr @.str.2664, i64 4, i64 0 } -endif4338: + br i1 %t3, label %then4480, label %endif4482 +then4480: + ret { ptr, i64, i64 } { ptr @.str.2749, i64 4, i64 0 } +endif4482: %t4 = load i64, ptr %a1 call void @finch_str_from_int(ptr %a5, i64 %t4) %t6 = load { ptr, i64, i64 }, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.2665, i64 1, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.2750, i64 1, i64 0 }, ptr %a8 store { ptr, i64, i64 } %t6, ptr %a9 call void @finch_str_concat(ptr %a7, ptr %a8, ptr %a9) store { ptr, i64, i64 } %t6, ptr %a10 @@ -44283,22 +45931,22 @@ entry: store i64 %p1, ptr %a2 %t3 = load i64, ptr %a2 %t4 = icmp sle i64 %t3, 1 - br i1 %t4, label %then4339, label %endif4341 -then4339: + br i1 %t4, label %then4483, label %endif4485 +then4483: %t5 = load i64, ptr %a1 ret i64 %t5 -endif4341: +endif4485: %t6 = load i64, ptr %a1 %t7 = load i64, ptr %a2 %t8 = add i64 %t6, %t7 %t9 = sub i64 %t8, 1 %t10 = load i64, ptr %a2 %t11 = icmp eq i64 %t10, 0 - br i1 %t11, label %panic4342, label %ok4343 -panic4342: - call void @finch_panic(ptr @.str.2666, i64 1877, ptr @.str.2667) + br i1 %t11, label %panic4486, label %ok4487 +panic4486: + call void @finch_panic(ptr @.str.2751, i64 1958, ptr @.str.2752) unreachable -ok4343: +ok4487: %t12 = sdiv i64 %t9, %t10 %t13 = load i64, ptr %a2 %t14 = mul i64 %t12, %t13 @@ -44361,193 +46009,193 @@ entry: store { ptr, i64, i64 } %t7, ptr %a8 %t9 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t9, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.2668, i64 4, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.2753, i64 4, i64 0 }, ptr %a11 %t12 = call i32 @finch_str_eq(ptr %a10, ptr %a11) %t13 = icmp ne i32 %t12, 0 - br label %logic.from4344 -logic.from4344: - br i1 %t13, label %logic.end4346, label %logic.rhs4345 -logic.rhs4345: + br label %logic.from4488 +logic.from4488: + br i1 %t13, label %logic.end4490, label %logic.rhs4489 +logic.rhs4489: %t14 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t14, ptr %a15 - store { ptr, i64, i64 } { ptr @.str.2669, i64 4, i64 0 }, ptr %a16 + store { ptr, i64, i64 } { ptr @.str.2754, i64 4, i64 0 }, ptr %a16 %t17 = call i32 @finch_str_eq(ptr %a15, ptr %a16) %t18 = icmp ne i32 %t17, 0 - br label %logic.rend4347 -logic.rend4347: - br label %logic.end4346 -logic.end4346: - %t19 = phi i1 [ true, %logic.from4344 ], [ %t18, %logic.rend4347 ] - br label %logic.from4348 -logic.from4348: - br i1 %t19, label %logic.end4350, label %logic.rhs4349 -logic.rhs4349: + br label %logic.rend4491 +logic.rend4491: + br label %logic.end4490 +logic.end4490: + %t19 = phi i1 [ true, %logic.from4488 ], [ %t18, %logic.rend4491 ] + br label %logic.from4492 +logic.from4492: + br i1 %t19, label %logic.end4494, label %logic.rhs4493 +logic.rhs4493: %t20 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t20, ptr %a21 - store { ptr, i64, i64 } { ptr @.str.2670, i64 2, i64 0 }, ptr %a22 + store { ptr, i64, i64 } { ptr @.str.2755, i64 2, i64 0 }, ptr %a22 %t23 = call i32 @finch_str_eq(ptr %a21, ptr %a22) %t24 = icmp ne i32 %t23, 0 - br label %logic.rend4351 -logic.rend4351: - br label %logic.end4350 -logic.end4350: - %t25 = phi i1 [ true, %logic.from4348 ], [ %t24, %logic.rend4351 ] - br label %logic.from4352 -logic.from4352: - br i1 %t25, label %logic.end4354, label %logic.rhs4353 -logic.rhs4353: + br label %logic.rend4495 +logic.rend4495: + br label %logic.end4494 +logic.end4494: + %t25 = phi i1 [ true, %logic.from4492 ], [ %t24, %logic.rend4495 ] + br label %logic.from4496 +logic.from4496: + br i1 %t25, label %logic.end4498, label %logic.rhs4497 +logic.rhs4497: %t26 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t26, ptr %a27 - store { ptr, i64, i64 } { ptr @.str.2671, i64 2, i64 0 }, ptr %a28 + store { ptr, i64, i64 } { ptr @.str.2756, i64 2, i64 0 }, ptr %a28 %t29 = call i32 @finch_str_eq(ptr %a27, ptr %a28) %t30 = icmp ne i32 %t29, 0 - br label %logic.rend4355 -logic.rend4355: - br label %logic.end4354 -logic.end4354: - %t31 = phi i1 [ true, %logic.from4352 ], [ %t30, %logic.rend4355 ] - br i1 %t31, label %then4356, label %endif4358 -then4356: + br label %logic.rend4499 +logic.rend4499: + br label %logic.end4498 +logic.end4498: + %t31 = phi i1 [ true, %logic.from4496 ], [ %t30, %logic.rend4499 ] + br i1 %t31, label %then4500, label %endif4502 +then4500: %t32 = insertvalue %S.gen.SizeAlign zeroinitializer, i64 1, 0 %t33 = insertvalue %S.gen.SizeAlign %t32, i64 1, 1 call void @finch_str_drop(ptr %a8) ret %S.gen.SizeAlign %t33 -endif4358: +endif4502: %t34 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t34, ptr %a35 - store { ptr, i64, i64 } { ptr @.str.2672, i64 3, i64 0 }, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.2757, i64 3, i64 0 }, ptr %a36 %t37 = call i32 @finch_str_eq(ptr %a35, ptr %a36) %t38 = icmp ne i32 %t37, 0 - br label %logic.from4359 -logic.from4359: - br i1 %t38, label %logic.end4361, label %logic.rhs4360 -logic.rhs4360: + br label %logic.from4503 +logic.from4503: + br i1 %t38, label %logic.end4505, label %logic.rhs4504 +logic.rhs4504: %t39 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t39, ptr %a40 - store { ptr, i64, i64 } { ptr @.str.2673, i64 3, i64 0 }, ptr %a41 + store { ptr, i64, i64 } { ptr @.str.2758, i64 3, i64 0 }, ptr %a41 %t42 = call i32 @finch_str_eq(ptr %a40, ptr %a41) %t43 = icmp ne i32 %t42, 0 - br label %logic.rend4362 -logic.rend4362: - br label %logic.end4361 -logic.end4361: - %t44 = phi i1 [ true, %logic.from4359 ], [ %t43, %logic.rend4362 ] - br i1 %t44, label %then4363, label %endif4365 -then4363: + br label %logic.rend4506 +logic.rend4506: + br label %logic.end4505 +logic.end4505: + %t44 = phi i1 [ true, %logic.from4503 ], [ %t43, %logic.rend4506 ] + br i1 %t44, label %then4507, label %endif4509 +then4507: %t45 = insertvalue %S.gen.SizeAlign zeroinitializer, i64 2, 0 %t46 = insertvalue %S.gen.SizeAlign %t45, i64 2, 1 call void @finch_str_drop(ptr %a8) ret %S.gen.SizeAlign %t46 -endif4365: +endif4509: %t47 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t47, ptr %a48 - store { ptr, i64, i64 } { ptr @.str.2674, i64 3, i64 0 }, ptr %a49 + store { ptr, i64, i64 } { ptr @.str.2759, i64 3, i64 0 }, ptr %a49 %t50 = call i32 @finch_str_eq(ptr %a48, ptr %a49) %t51 = icmp ne i32 %t50, 0 - br label %logic.from4366 -logic.from4366: - br i1 %t51, label %logic.end4368, label %logic.rhs4367 -logic.rhs4367: + br label %logic.from4510 +logic.from4510: + br i1 %t51, label %logic.end4512, label %logic.rhs4511 +logic.rhs4511: %t52 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t52, ptr %a53 - store { ptr, i64, i64 } { ptr @.str.2675, i64 3, i64 0 }, ptr %a54 + store { ptr, i64, i64 } { ptr @.str.2760, i64 3, i64 0 }, ptr %a54 %t55 = call i32 @finch_str_eq(ptr %a53, ptr %a54) %t56 = icmp ne i32 %t55, 0 - br label %logic.rend4369 -logic.rend4369: - br label %logic.end4368 -logic.end4368: - %t57 = phi i1 [ true, %logic.from4366 ], [ %t56, %logic.rend4369 ] - br label %logic.from4370 -logic.from4370: - br i1 %t57, label %logic.end4372, label %logic.rhs4371 -logic.rhs4371: + br label %logic.rend4513 +logic.rend4513: + br label %logic.end4512 +logic.end4512: + %t57 = phi i1 [ true, %logic.from4510 ], [ %t56, %logic.rend4513 ] + br label %logic.from4514 +logic.from4514: + br i1 %t57, label %logic.end4516, label %logic.rhs4515 +logic.rhs4515: %t58 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t58, ptr %a59 - store { ptr, i64, i64 } { ptr @.str.2676, i64 3, i64 0 }, ptr %a60 + store { ptr, i64, i64 } { ptr @.str.2761, i64 3, i64 0 }, ptr %a60 %t61 = call i32 @finch_str_eq(ptr %a59, ptr %a60) %t62 = icmp ne i32 %t61, 0 - br label %logic.rend4373 -logic.rend4373: - br label %logic.end4372 -logic.end4372: - %t63 = phi i1 [ true, %logic.from4370 ], [ %t62, %logic.rend4373 ] - br label %logic.from4374 -logic.from4374: - br i1 %t63, label %logic.end4376, label %logic.rhs4375 -logic.rhs4375: + br label %logic.rend4517 +logic.rend4517: + br label %logic.end4516 +logic.end4516: + %t63 = phi i1 [ true, %logic.from4514 ], [ %t62, %logic.rend4517 ] + br label %logic.from4518 +logic.from4518: + br i1 %t63, label %logic.end4520, label %logic.rhs4519 +logic.rhs4519: %t64 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t64, ptr %a65 - store { ptr, i64, i64 } { ptr @.str.2677, i64 4, i64 0 }, ptr %a66 + store { ptr, i64, i64 } { ptr @.str.2762, i64 4, i64 0 }, ptr %a66 %t67 = call i32 @finch_str_eq(ptr %a65, ptr %a66) %t68 = icmp ne i32 %t67, 0 - br label %logic.rend4377 -logic.rend4377: - br label %logic.end4376 -logic.end4376: - %t69 = phi i1 [ true, %logic.from4374 ], [ %t68, %logic.rend4377 ] - br i1 %t69, label %then4378, label %endif4380 -then4378: + br label %logic.rend4521 +logic.rend4521: + br label %logic.end4520 +logic.end4520: + %t69 = phi i1 [ true, %logic.from4518 ], [ %t68, %logic.rend4521 ] + br i1 %t69, label %then4522, label %endif4524 +then4522: %t70 = insertvalue %S.gen.SizeAlign zeroinitializer, i64 4, 0 %t71 = insertvalue %S.gen.SizeAlign %t70, i64 4, 1 call void @finch_str_drop(ptr %a8) ret %S.gen.SizeAlign %t71 -endif4380: +endif4524: %t72 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t72, ptr %a73 - store { ptr, i64, i64 } { ptr @.str.2678, i64 3, i64 0 }, ptr %a74 + store { ptr, i64, i64 } { ptr @.str.2763, i64 3, i64 0 }, ptr %a74 %t75 = call i32 @finch_str_eq(ptr %a73, ptr %a74) %t76 = icmp ne i32 %t75, 0 - br label %logic.from4381 -logic.from4381: - br i1 %t76, label %logic.end4383, label %logic.rhs4382 -logic.rhs4382: + br label %logic.from4525 +logic.from4525: + br i1 %t76, label %logic.end4527, label %logic.rhs4526 +logic.rhs4526: %t77 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t77, ptr %a78 - store { ptr, i64, i64 } { ptr @.str.2679, i64 5, i64 0 }, ptr %a79 + store { ptr, i64, i64 } { ptr @.str.2764, i64 5, i64 0 }, ptr %a79 %t80 = call i32 @finch_str_eq(ptr %a78, ptr %a79) %t81 = icmp ne i32 %t80, 0 - br label %logic.rend4384 -logic.rend4384: - br label %logic.end4383 -logic.end4383: - %t82 = phi i1 [ true, %logic.from4381 ], [ %t81, %logic.rend4384 ] - br i1 %t82, label %then4385, label %endif4387 -then4385: + br label %logic.rend4528 +logic.rend4528: + br label %logic.end4527 +logic.end4527: + %t82 = phi i1 [ true, %logic.from4525 ], [ %t81, %logic.rend4528 ] + br i1 %t82, label %then4529, label %endif4531 +then4529: %t83 = insertvalue %S.gen.SizeAlign zeroinitializer, i64 24, 0 %t84 = insertvalue %S.gen.SizeAlign %t83, i64 8, 1 call void @finch_str_drop(ptr %a8) ret %S.gen.SizeAlign %t84 -endif4387: +endif4531: %t85 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t85, ptr %a86 - store { ptr, i64, i64 } { ptr @.str.2680, i64 3, i64 0 }, ptr %a87 + store { ptr, i64, i64 } { ptr @.str.2765, i64 3, i64 0 }, ptr %a87 %t88 = call i32 @finch_str_eq(ptr %a86, ptr %a87) %t89 = icmp ne i32 %t88, 0 - br i1 %t89, label %then4388, label %endif4390 -then4388: + br i1 %t89, label %then4532, label %endif4534 +then4532: %t90 = insertvalue %S.gen.SizeAlign zeroinitializer, i64 56, 0 %t91 = insertvalue %S.gen.SizeAlign %t90, i64 8, 1 call void @finch_str_drop(ptr %a8) ret %S.gen.SizeAlign %t91 -endif4390: +endif4534: %t92 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t92, ptr %a93 - store { ptr, i64, i64 } { ptr @.str.2681, i64 5, i64 0 }, ptr %a94 + store { ptr, i64, i64 } { ptr @.str.2766, i64 5, i64 0 }, ptr %a94 %t95 = call i32 @finch_str_eq(ptr %a93, ptr %a94) %t96 = icmp ne i32 %t95, 0 - br i1 %t96, label %then4391, label %endif4393 -then4391: + br i1 %t96, label %then4535, label %endif4537 +then4535: %t97 = load ptr, ptr %a1 %t98 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t99 = load { ptr, i64, i64 }, ptr %t98 %t100 = extractvalue { ptr, i64, i64 } %t99, 1 %t101 = icmp uge i64 0, %t100 - br i1 %t101, label %range4394, label %inrange4395 -range4394: - call void @finch_panic_index(ptr @.str.2682, i64 1899, i64 0, i64 %t100) + br i1 %t101, label %range4538, label %inrange4539 +range4538: + call void @finch_panic_index(ptr @.str.2767, i64 1980, i64 0, i64 %t100) unreachable -inrange4395: +inrange4539: %t102 = extractvalue { ptr, i64, i64 } %t99, 0 %t103 = getelementptr inbounds %S.ast.Type, ptr %t102, i64 0 %t104 = load %S.ast.Type, ptr %t103 @@ -44564,21 +46212,21 @@ inrange4395: %t115 = insertvalue %S.gen.SizeAlign %t112, i64 %t114, 1 call void @finch_str_drop(ptr %a8) ret %S.gen.SizeAlign %t115 -endif4393: +endif4537: %t116 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t116, ptr %a117 - store { ptr, i64, i64 } { ptr @.str.2683, i64 6, i64 0 }, ptr %a118 + store { ptr, i64, i64 } { ptr @.str.2768, i64 6, i64 0 }, ptr %a118 %t119 = call i32 @finch_str_eq(ptr %a117, ptr %a118) %t120 = icmp ne i32 %t119, 0 - br i1 %t120, label %then4396, label %endif4398 -then4396: + br i1 %t120, label %then4540, label %endif4542 +then4540: %t121 = load ptr, ptr %a1 %t122 = icmp eq ptr %t121, null - br i1 %t122, label %panic4399, label %ok4400 -panic4399: - call void @finch_panic(ptr @.str.2684, i64 1903, ptr @.str.2685) + br i1 %t122, label %panic4543, label %ok4544 +panic4543: + call void @finch_panic(ptr @.str.2769, i64 1984, ptr @.str.2770) unreachable -ok4400: +ok4544: %t123 = getelementptr inbounds %S.gen.Gen, ptr %t121, i32 0, i32 16 %t124 = load ptr, ptr %a1 %t125 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 @@ -44589,11 +46237,11 @@ ok4400: %t130 = load { ptr, i64, i64 }, ptr %t123 %t131 = extractvalue { ptr, i64, i64 } %t130, 1 %t132 = icmp uge i64 %t129, %t131 - br i1 %t132, label %range4401, label %inrange4402 -range4401: - call void @finch_panic_index(ptr @.str.2686, i64 1903, i64 %t129, i64 %t131) + br i1 %t132, label %range4545, label %inrange4546 +range4545: + call void @finch_panic_index(ptr @.str.2771, i64 1984, i64 %t129, i64 %t131) unreachable -inrange4402: +inrange4546: %t133 = extractvalue { ptr, i64, i64 } %t130, 0 %t134 = getelementptr inbounds %S.gen.StructDef, ptr %t133, i64 %t129 %t135 = load %S.gen.StructDef, ptr %t134 @@ -44603,8 +46251,8 @@ inrange4402: store %S.gen.StructDef %t138, ptr %a139 %t140 = getelementptr inbounds %S.gen.StructDef, ptr %a139, i32 0, i32 2 %t141 = load i1, ptr %t140 - br i1 %t141, label %then4403, label %endif4405 -then4403: + br i1 %t141, label %then4547, label %endif4549 +then4547: %t142 = getelementptr inbounds %S.gen.StructDef, ptr %a139, i32 0, i32 9 %t143 = load i64, ptr %t142 %t144 = insertvalue %S.gen.SizeAlign zeroinitializer, i64 %t143, 0 @@ -44614,19 +46262,19 @@ then4403: call void @finch.drop.S_gen_StructDef(ptr %a139) call void @finch_str_drop(ptr %a8) ret %S.gen.SizeAlign %t147 -endif4405: +endif4549: store i64 0, ptr %a148 store i64 1, ptr %a149 %t150 = getelementptr inbounds %S.gen.StructDef, ptr %a139, i32 0, i32 12 store i64 0, ptr %a151 - br label %each.cond4406 -each.cond4406: + br label %each.cond4550 +each.cond4550: %t152 = getelementptr inbounds { ptr, i64, i64 }, ptr %t150, i32 0, i32 1 %t153 = load i64, ptr %t152 %t154 = load i64, ptr %a151 %t155 = icmp slt i64 %t154, %t153 - br i1 %t155, label %each.body4407, label %each.end4409 -each.body4407: + br i1 %t155, label %each.body4551, label %each.end4553 +each.body4551: %t156 = load ptr, ptr %t150 %t157 = getelementptr inbounds %S.ast.Type, ptr %t156, i64 %t154 %t158 = load %S.ast.Type, ptr %t157 @@ -44647,20 +46295,20 @@ each.body4407: %t172 = load i64, ptr %t171 %t173 = load i64, ptr %a149 %t174 = icmp sgt i64 %t172, %t173 - br i1 %t174, label %then4410, label %endif4412 -then4410: + br i1 %t174, label %then4554, label %endif4556 +then4554: %t175 = getelementptr inbounds %S.gen.SizeAlign, ptr %a163, i32 0, i32 1 %t176 = load i64, ptr %t175 store i64 %t176, ptr %a149 - br label %endif4412 -endif4412: - br label %each.step4408 -each.step4408: + br label %endif4556 +endif4556: + br label %each.step4552 +each.step4552: %t177 = load i64, ptr %a151 %t178 = add i64 %t177, 1 store i64 %t178, ptr %a151 - br label %each.cond4406 -each.end4409: + br label %each.cond4550 +each.end4553: %t179 = load i64, ptr %a148 %t180 = load i64, ptr %a149 %t181 = call i64 @finch.gen.alignUp(i64 %t179, i64 %t180) @@ -44670,7 +46318,7 @@ each.end4409: call void @finch.drop.S_gen_StructDef(ptr %a139) call void @finch_str_drop(ptr %a8) ret %S.gen.SizeAlign %t184 -endif4398: +endif4542: %t185 = insertvalue %S.gen.SizeAlign zeroinitializer, i64 8, 0 %t186 = insertvalue %S.gen.SizeAlign %t185, i64 8, 1 call void @finch_str_drop(ptr %a8) @@ -44692,27 +46340,27 @@ entry: store %S.gen.StructDef %p1, ptr %a2 %t3 = getelementptr inbounds %S.gen.StructDef, ptr %a2, i32 0, i32 2 %t4 = load i1, ptr %t3 - br i1 %t4, label %then4413, label %endif4415 -then4413: + br i1 %t4, label %then4557, label %endif4559 +then4557: %t5 = getelementptr inbounds %S.gen.StructDef, ptr %a2, i32 0, i32 4 %t6 = load { ptr, i64, i64 }, ptr %t5 store { ptr, i64, i64 } %t6, ptr %a7 call void @finch.copy.arr_int(ptr %a8, ptr %a7) %t9 = load { ptr, i64, i64 }, ptr %a8 ret { ptr, i64, i64 } %t9 -endif4415: +endif4559: store { ptr, i64, i64 } zeroinitializer, ptr %a10 store i64 0, ptr %a11 %t12 = getelementptr inbounds %S.gen.StructDef, ptr %a2, i32 0, i32 12 store i64 0, ptr %a13 - br label %each.cond4416 -each.cond4416: + br label %each.cond4560 +each.cond4560: %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %t12, i32 0, i32 1 %t15 = load i64, ptr %t14 %t16 = load i64, ptr %a13 %t17 = icmp slt i64 %t16, %t15 - br i1 %t17, label %each.body4417, label %each.end4419 -each.body4417: + br i1 %t17, label %each.body4561, label %each.end4563 +each.body4561: %t18 = load ptr, ptr %t12 %t19 = getelementptr inbounds %S.ast.Type, ptr %t18, i64 %t16 %t20 = load %S.ast.Type, ptr %t19 @@ -44740,13 +46388,13 @@ each.body4417: %t38 = load i64, ptr %a11 %t39 = add i64 %t38, %t37 store i64 %t39, ptr %a11 - br label %each.step4418 -each.step4418: + br label %each.step4562 +each.step4562: %t40 = load i64, ptr %a13 %t41 = add i64 %t40, 1 store i64 %t41, ptr %a13 - br label %each.cond4416 -each.end4419: + br label %each.cond4560 +each.end4563: %t42 = load { ptr, i64, i64 }, ptr %a10 ret { ptr, i64, i64 } %t42 } @@ -44838,12 +46486,12 @@ entry: store i64 %p7, ptr %a8 %t9 = load ptr, ptr %a1 %t10 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.2687, i64 42, i64 0 }, ptr %a12 + store { ptr, i64, i64 } { ptr @.str.2772, i64 42, i64 0 }, ptr %a12 store { ptr, i64, i64 } %t10, ptr %a13 call void @finch_str_concat(ptr %a11, ptr %a12, ptr %a13) %t14 = load { ptr, i64, i64 }, ptr %a11 store { ptr, i64, i64 } %t14, ptr %a16 - store { ptr, i64, i64 } { ptr @.str.2688, i64 11, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.2773, i64 11, i64 0 }, ptr %a17 call void @finch_str_concat(ptr %a15, ptr %a16, ptr %a17) store { ptr, i64, i64 } %t14, ptr %a18 call void @finch_str_drop(ptr %a18) @@ -44860,7 +46508,7 @@ entry: call void @finch_str_drop(ptr %a27) %t28 = load { ptr, i64, i64 }, ptr %a23 store { ptr, i64, i64 } %t28, ptr %a30 - store { ptr, i64, i64 } { ptr @.str.2689, i64 9, i64 0 }, ptr %a31 + store { ptr, i64, i64 } { ptr @.str.2774, i64 9, i64 0 }, ptr %a31 call void @finch_str_concat(ptr %a29, ptr %a30, ptr %a31) store { ptr, i64, i64 } %t28, ptr %a32 call void @finch_str_drop(ptr %a32) @@ -44877,7 +46525,7 @@ entry: call void @finch_str_drop(ptr %a41) %t42 = load { ptr, i64, i64 }, ptr %a37 store { ptr, i64, i64 } %t42, ptr %a44 - store { ptr, i64, i64 } { ptr @.str.2690, i64 8, i64 0 }, ptr %a45 + store { ptr, i64, i64 } { ptr @.str.2775, i64 8, i64 0 }, ptr %a45 call void @finch_str_concat(ptr %a43, ptr %a44, ptr %a45) store { ptr, i64, i64 } %t42, ptr %a46 call void @finch_str_drop(ptr %a46) @@ -44894,7 +46542,7 @@ entry: call void @finch_str_drop(ptr %a55) %t56 = load { ptr, i64, i64 }, ptr %a51 store { ptr, i64, i64 } %t56, ptr %a58 - store { ptr, i64, i64 } { ptr @.str.2691, i64 12, i64 0 }, ptr %a59 + store { ptr, i64, i64 } { ptr @.str.2776, i64 12, i64 0 }, ptr %a59 call void @finch_str_concat(ptr %a57, ptr %a58, ptr %a59) store { ptr, i64, i64 } %t56, ptr %a60 call void @finch_str_drop(ptr %a60) @@ -44910,7 +46558,7 @@ entry: call void @finch_str_drop(ptr %a68) %t69 = load { ptr, i64, i64 }, ptr %a64 store { ptr, i64, i64 } %t69, ptr %a71 - store { ptr, i64, i64 } { ptr @.str.2692, i64 8, i64 0 }, ptr %a72 + store { ptr, i64, i64 } { ptr @.str.2777, i64 8, i64 0 }, ptr %a72 call void @finch_str_concat(ptr %a70, ptr %a71, ptr %a72) store { ptr, i64, i64 } %t69, ptr %a73 call void @finch_str_drop(ptr %a73) @@ -44927,7 +46575,7 @@ entry: call void @finch_str_drop(ptr %a82) %t83 = load { ptr, i64, i64 }, ptr %a78 store { ptr, i64, i64 } %t83, ptr %a85 - store { ptr, i64, i64 } { ptr @.str.2693, i64 10, i64 0 }, ptr %a86 + store { ptr, i64, i64 } { ptr @.str.2778, i64 10, i64 0 }, ptr %a86 call void @finch_str_concat(ptr %a84, ptr %a85, ptr %a86) store { ptr, i64, i64 } %t83, ptr %a87 call void @finch_str_drop(ptr %a87) @@ -44944,7 +46592,7 @@ entry: call void @finch_str_drop(ptr %a96) %t97 = load { ptr, i64, i64 }, ptr %a92 store { ptr, i64, i64 } %t97, ptr %a99 - store { ptr, i64, i64 } { ptr @.str.2694, i64 1, i64 0 }, ptr %a100 + store { ptr, i64, i64 } { ptr @.str.2779, i64 1, i64 0 }, ptr %a100 call void @finch_str_concat(ptr %a98, ptr %a99, ptr %a100) store { ptr, i64, i64 } %t97, ptr %a101 call void @finch_str_drop(ptr %a101) @@ -44993,12 +46641,12 @@ entry: store { ptr, i64, i64 } %p3, ptr %a4 %t5 = load ptr, ptr %a1 %t6 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.2695, i64 20, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.2780, i64 20, i64 0 }, ptr %a8 store { ptr, i64, i64 } %t6, ptr %a9 call void @finch_str_concat(ptr %a7, ptr %a8, ptr %a9) %t10 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t10, ptr %a12 - store { ptr, i64, i64 } { ptr @.str.2696, i64 9, i64 0 }, ptr %a13 + store { ptr, i64, i64 } { ptr @.str.2781, i64 9, i64 0 }, ptr %a13 call void @finch_str_concat(ptr %a11, ptr %a12, ptr %a13) store { ptr, i64, i64 } %t10, ptr %a14 call void @finch_str_drop(ptr %a14) @@ -45015,7 +46663,7 @@ entry: call void @finch_str_drop(ptr %a23) %t24 = load { ptr, i64, i64 }, ptr %a19 store { ptr, i64, i64 } %t24, ptr %a26 - store { ptr, i64, i64 } { ptr @.str.2697, i64 12, i64 0 }, ptr %a27 + store { ptr, i64, i64 } { ptr @.str.2782, i64 12, i64 0 }, ptr %a27 call void @finch_str_concat(ptr %a25, ptr %a26, ptr %a27) store { ptr, i64, i64 } %t24, ptr %a28 call void @finch_str_drop(ptr %a28) @@ -45028,7 +46676,7 @@ entry: call void @finch_str_drop(ptr %a34) %t35 = load { ptr, i64, i64 }, ptr %a31 store { ptr, i64, i64 } %t35, ptr %a37 - store { ptr, i64, i64 } { ptr @.str.2698, i64 1, i64 0 }, ptr %a38 + store { ptr, i64, i64 } { ptr @.str.2783, i64 1, i64 0 }, ptr %a38 call void @finch_str_concat(ptr %a36, ptr %a37, ptr %a38) store { ptr, i64, i64 } %t35, ptr %a39 call void @finch_str_drop(ptr %a39) @@ -45376,31 +47024,31 @@ entry: store { ptr, i64, i64 } %t7, ptr %a8 %t9 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t9, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.2699, i64 4, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.2784, i64 4, i64 0 }, ptr %a11 %t12 = call i32 @finch_str_eq(ptr %a10, ptr %a11) %t13 = icmp ne i32 %t12, 0 - br label %logic.from4420 -logic.from4420: - br i1 %t13, label %logic.end4422, label %logic.rhs4421 -logic.rhs4421: + br label %logic.from4564 +logic.from4564: + br i1 %t13, label %logic.end4566, label %logic.rhs4565 +logic.rhs4565: %t14 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t14, ptr %a15 - store { ptr, i64, i64 } { ptr @.str.2700, i64 4, i64 0 }, ptr %a16 + store { ptr, i64, i64 } { ptr @.str.2785, i64 4, i64 0 }, ptr %a16 %t17 = call i32 @finch_str_eq(ptr %a15, ptr %a16) %t18 = icmp ne i32 %t17, 0 - br label %logic.rend4423 -logic.rend4423: - br label %logic.end4422 -logic.end4422: - %t19 = phi i1 [ true, %logic.from4420 ], [ %t18, %logic.rend4423 ] - br i1 %t19, label %then4424, label %endif4426 -then4424: + br label %logic.rend4567 +logic.rend4567: + br label %logic.end4566 +logic.end4566: + %t19 = phi i1 [ true, %logic.from4564 ], [ %t18, %logic.rend4567 ] + br i1 %t19, label %then4568, label %endif4570 +then4568: call void @finch_str_drop(ptr %a8) ret i64 -1 -endif4426: +endif4570: %t20 = load %S.ast.Type, ptr %a2 %t21 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t20) - store { ptr, i64, i64 } { ptr @.str.2701, i64 2, i64 0 }, ptr %a23 + store { ptr, i64, i64 } { ptr @.str.2786, i64 2, i64 0 }, ptr %a23 store { ptr, i64, i64 } %t21, ptr %a24 call void @finch_str_concat(ptr %a22, ptr %a23, ptr %a24) store { ptr, i64, i64 } %t21, ptr %a25 @@ -45409,38 +47057,38 @@ endif4426: store { ptr, i64, i64 } %t26, ptr %a27 %t28 = load ptr, ptr %a1 %t29 = icmp eq ptr %t28, null - br i1 %t29, label %panic4427, label %ok4428 -panic4427: - call void @finch_panic(ptr @.str.2702, i64 1952, ptr @.str.2703) + br i1 %t29, label %panic4571, label %ok4572 +panic4571: + call void @finch_panic(ptr @.str.2787, i64 2033, ptr @.str.2788) unreachable -ok4428: - %t30 = getelementptr inbounds %S.gen.Gen, ptr %t28, i32 0, i32 33 +ok4572: + %t30 = getelementptr inbounds %S.gen.Gen, ptr %t28, i32 0, i32 34 %t31 = load { ptr, i64, i64 }, ptr %a27 store { ptr, i64, i64 } %t31, ptr %a32 %t33 = call i64 @finch_map_find(ptr %t30, ptr %a32, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, i64 }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t34 = icmp sge i64 %t33, 0 - br i1 %t34, label %then4429, label %endif4431 -then4429: + br i1 %t34, label %then4573, label %endif4575 +then4573: %t35 = load ptr, ptr %a1 %t36 = icmp eq ptr %t35, null - br i1 %t36, label %panic4432, label %ok4433 -panic4432: - call void @finch_panic(ptr @.str.2704, i64 1953, ptr @.str.2705) + br i1 %t36, label %panic4576, label %ok4577 +panic4576: + call void @finch_panic(ptr @.str.2789, i64 2034, ptr @.str.2790) unreachable -ok4433: - %t37 = getelementptr inbounds %S.gen.Gen, ptr %t35, i32 0, i32 33 +ok4577: + %t37 = getelementptr inbounds %S.gen.Gen, ptr %t35, i32 0, i32 34 %t38 = load { ptr, i64, i64 }, ptr %a27 store { ptr, i64, i64 } %t38, ptr %a39 %t40 = call i64 @finch_map_find(ptr %t37, ptr %a39, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, i64 }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t41 = icmp slt i64 %t40, 0 - br i1 %t41, label %map.missing4434, label %map.found4435 -map.missing4434: + br i1 %t41, label %map.missing4578, label %map.found4579 +map.missing4578: store { ptr, i64, i64 } zeroinitializer, ptr %a42 store { ptr, i64, i64 } %t38, ptr %a43 call void @finch_buf_str(ptr %a42, ptr %a43, i32 1) - call void @finch_map_missing(ptr @.str.2706, i64 1953, ptr %a42) + call void @finch_map_missing(ptr @.str.2791, i64 2034, ptr %a42) unreachable -map.found4435: +map.found4579: %t44 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t37, i32 0, i32 0 %t45 = load ptr, ptr %t44 %t46 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t45, i64 %t40 @@ -45449,103 +47097,103 @@ map.found4435: call void @finch_str_drop(ptr %a27) call void @finch_str_drop(ptr %a8) ret i64 %t48 -endif4431: +endif4575: store i64 -1, ptr %a49 %t50 = load ptr, ptr %a1 %t51 = icmp eq ptr %t50, null - br i1 %t51, label %panic4436, label %ok4437 -panic4436: - call void @finch_panic(ptr @.str.2707, i64 1956, ptr @.str.2708) + br i1 %t51, label %panic4580, label %ok4581 +panic4580: + call void @finch_panic(ptr @.str.2792, i64 2037, ptr @.str.2793) unreachable -ok4437: - %t52 = getelementptr inbounds %S.gen.Gen, ptr %t50, i32 0, i32 34 +ok4581: + %t52 = getelementptr inbounds %S.gen.Gen, ptr %t50, i32 0, i32 35 %t53 = load { ptr, i64, i64 }, ptr %t52 %t54 = extractvalue { ptr, i64, i64 } %t53, 1 %t55 = icmp uge i64 0, %t54 - br i1 %t55, label %range4438, label %inrange4439 -range4438: - call void @finch_panic_index(ptr @.str.2709, i64 1956, i64 0, i64 %t54) + br i1 %t55, label %range4582, label %inrange4583 +range4582: + call void @finch_panic_index(ptr @.str.2794, i64 2037, i64 0, i64 %t54) unreachable -inrange4439: +inrange4583: %t56 = extractvalue { ptr, i64, i64 } %t53, 0 %t57 = getelementptr inbounds i64, ptr %t56, i64 0 %t58 = load i64, ptr %t57 store i64 %t58, ptr %a59 %t60 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t60, ptr %a61 - store { ptr, i64, i64 } { ptr @.str.2710, i64 4, i64 0 }, ptr %a62 + store { ptr, i64, i64 } { ptr @.str.2795, i64 4, i64 0 }, ptr %a62 %t63 = call i32 @finch_str_eq(ptr %a61, ptr %a62) %t64 = icmp ne i32 %t63, 0 - br i1 %t64, label %then4440, label %else4441 -then4440: + br i1 %t64, label %then4584, label %else4585 +then4584: %t65 = load ptr, ptr %a1 - %t66 = call i64 @finch.gen.basicType(ptr %t65, { ptr, i64, i64 } { ptr @.str.2711, i64 4, i64 0 }, i64 8, { ptr, i64, i64 } { ptr @.str.2712, i64 14, i64 0 }) + %t66 = call i64 @finch.gen.basicType(ptr %t65, { ptr, i64, i64 } { ptr @.str.2796, i64 4, i64 0 }, i64 8, { ptr, i64, i64 } { ptr @.str.2797, i64 14, i64 0 }) store i64 %t66, ptr %a49 - br label %endif4442 -else4441: + br label %endif4586 +else4585: %t67 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t67, ptr %a68 - store { ptr, i64, i64 } { ptr @.str.2713, i64 4, i64 0 }, ptr %a69 + store { ptr, i64, i64 } { ptr @.str.2798, i64 4, i64 0 }, ptr %a69 %t70 = call i32 @finch_str_eq(ptr %a68, ptr %a69) %t71 = icmp ne i32 %t70, 0 - br i1 %t71, label %then4443, label %else4444 -then4443: + br i1 %t71, label %then4587, label %else4588 +then4587: %t72 = load ptr, ptr %a1 - %t73 = call i64 @finch.gen.basicType(ptr %t72, { ptr, i64, i64 } { ptr @.str.2714, i64 4, i64 0 }, i64 8, { ptr, i64, i64 } { ptr @.str.2715, i64 18, i64 0 }) + %t73 = call i64 @finch.gen.basicType(ptr %t72, { ptr, i64, i64 } { ptr @.str.2799, i64 4, i64 0 }, i64 8, { ptr, i64, i64 } { ptr @.str.2800, i64 18, i64 0 }) store i64 %t73, ptr %a49 - br label %endif4445 -else4444: + br label %endif4589 +else4588: %t74 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t74, ptr %a75 - store { ptr, i64, i64 } { ptr @.str.2716, i64 3, i64 0 }, ptr %a76 + store { ptr, i64, i64 } { ptr @.str.2801, i64 3, i64 0 }, ptr %a76 %t77 = call i32 @finch_str_eq(ptr %a75, ptr %a76) %t78 = icmp ne i32 %t77, 0 - br i1 %t78, label %then4446, label %else4447 -then4446: + br i1 %t78, label %then4590, label %else4591 +then4590: %t79 = load ptr, ptr %a1 - %t80 = call i64 @finch.gen.basicType(ptr %t79, { ptr, i64, i64 } { ptr @.str.2717, i64 3, i64 0 }, i64 64, { ptr, i64, i64 } { ptr @.str.2718, i64 13, i64 0 }) + %t80 = call i64 @finch.gen.basicType(ptr %t79, { ptr, i64, i64 } { ptr @.str.2802, i64 3, i64 0 }, i64 64, { ptr, i64, i64 } { ptr @.str.2803, i64 13, i64 0 }) store i64 %t80, ptr %a49 - br label %endif4448 -else4447: + br label %endif4592 +else4591: %t81 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t81, ptr %a82 - store { ptr, i64, i64 } { ptr @.str.2719, i64 5, i64 0 }, ptr %a83 + store { ptr, i64, i64 } { ptr @.str.2804, i64 5, i64 0 }, ptr %a83 %t84 = call i32 @finch_str_eq(ptr %a82, ptr %a83) %t85 = icmp ne i32 %t84, 0 - br i1 %t85, label %then4449, label %else4450 -then4449: + br i1 %t85, label %then4593, label %else4594 +then4593: %t86 = load ptr, ptr %a1 - %t87 = call i64 @finch.gen.basicType(ptr %t86, { ptr, i64, i64 } { ptr @.str.2720, i64 5, i64 0 }, i64 64, { ptr, i64, i64 } { ptr @.str.2721, i64 12, i64 0 }) + %t87 = call i64 @finch.gen.basicType(ptr %t86, { ptr, i64, i64 } { ptr @.str.2805, i64 5, i64 0 }, i64 64, { ptr, i64, i64 } { ptr @.str.2806, i64 12, i64 0 }) store i64 %t87, ptr %a49 - br label %endif4451 -else4450: + br label %endif4595 +else4594: %t88 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t88, ptr %a89 - store { ptr, i64, i64 } { ptr @.str.2722, i64 3, i64 0 }, ptr %a90 + store { ptr, i64, i64 } { ptr @.str.2807, i64 3, i64 0 }, ptr %a90 %t91 = call i32 @finch_str_eq(ptr %a89, ptr %a90) %t92 = icmp ne i32 %t91, 0 - br i1 %t92, label %then4452, label %else4453 -then4452: + br i1 %t92, label %then4596, label %else4597 +then4596: %t93 = load ptr, ptr %a1 - %t94 = call i64 @finch.gen.basicType(ptr %t93, { ptr, i64, i64 } { ptr @.str.2723, i64 3, i64 0 }, i64 32, { ptr, i64, i64 } { ptr @.str.2724, i64 12, i64 0 }) + %t94 = call i64 @finch.gen.basicType(ptr %t93, { ptr, i64, i64 } { ptr @.str.2808, i64 3, i64 0 }, i64 32, { ptr, i64, i64 } { ptr @.str.2809, i64 12, i64 0 }) store i64 %t94, ptr %a49 - br label %endif4454 -else4453: + br label %endif4598 +else4597: %t95 = load %S.ast.Type, ptr %a2 %t96 = call i1 @finch.gen.isInt(%S.ast.Type %t95) - br i1 %t96, label %then4455, label %else4456 -then4455: - store { ptr, i64, i64 } { ptr @.str.2725, i64 15, i64 0 }, ptr %a97 + br i1 %t96, label %then4599, label %else4600 +then4599: + store { ptr, i64, i64 } { ptr @.str.2810, i64 15, i64 0 }, ptr %a97 %t98 = load %S.ast.Type, ptr %a2 %t99 = call i1 @finch.gen.isSigned(%S.ast.Type %t98) - br i1 %t99, label %then4458, label %endif4460 -then4458: + br i1 %t99, label %then4602, label %endif4604 +then4602: %t100 = load { ptr, i64, i64 }, ptr %a97 - store { ptr, i64, i64 } { ptr @.str.2726, i64 13, i64 0 }, ptr %a97 + store { ptr, i64, i64 } { ptr @.str.2811, i64 13, i64 0 }, ptr %a97 store { ptr, i64, i64 } %t100, ptr %a101 call void @finch_str_drop(ptr %a101) - br label %endif4460 -endif4460: + br label %endif4604 +endif4604: %t102 = load ptr, ptr %a1 %t103 = load { ptr, i64, i64 }, ptr %a8 %t104 = load %S.ast.Type, ptr %a2 @@ -45554,22 +47202,22 @@ endif4460: %t107 = call i64 @finch.gen.basicType(ptr %t102, { ptr, i64, i64 } %t103, i64 %t105, { ptr, i64, i64 } %t106) store i64 %t107, ptr %a49 call void @finch_str_drop(ptr %a97) - br label %endif4457 -else4456: + br label %endif4601 +else4600: %t108 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t108, ptr %a109 - store { ptr, i64, i64 } { ptr @.str.2727, i64 4, i64 0 }, ptr %a110 + store { ptr, i64, i64 } { ptr @.str.2812, i64 4, i64 0 }, ptr %a110 %t111 = call i32 @finch_str_eq(ptr %a109, ptr %a110) %t112 = icmp ne i32 %t111, 0 - br i1 %t112, label %then4461, label %else4462 -then4461: + br i1 %t112, label %then4605, label %else4606 +then4605: %t113 = load ptr, ptr %a1 %t114 = icmp eq ptr %t113, null - br i1 %t114, label %panic4464, label %ok4465 -panic4464: - call void @finch_panic(ptr @.str.2728, i64 1974, ptr @.str.2729) + br i1 %t114, label %panic4608, label %ok4609 +panic4608: + call void @finch_panic(ptr @.str.2813, i64 2055, ptr @.str.2814) unreachable -ok4465: +ok4609: %t115 = getelementptr inbounds %S.gen.Gen, ptr %t113, i32 0, i32 21 %t116 = load ptr, ptr %a1 %t117 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 @@ -45580,11 +47228,11 @@ ok4465: %t122 = load { ptr, i64, i64 }, ptr %t115 %t123 = extractvalue { ptr, i64, i64 } %t122, 1 %t124 = icmp uge i64 %t121, %t123 - br i1 %t124, label %range4466, label %inrange4467 -range4466: - call void @finch_panic_index(ptr @.str.2730, i64 1974, i64 %t121, i64 %t123) + br i1 %t124, label %range4610, label %inrange4611 +range4610: + call void @finch_panic_index(ptr @.str.2815, i64 2055, i64 %t121, i64 %t123) unreachable -inrange4467: +inrange4611: %t125 = extractvalue { ptr, i64, i64 } %t122, 0 %t126 = getelementptr inbounds %S.gen.EnumDef, ptr %t125, i64 %t121 %t127 = load %S.gen.EnumDef, ptr %t126 @@ -45597,12 +47245,12 @@ inrange4467: %t134 = getelementptr inbounds { ptr, i64, i64 }, ptr %t133, i32 0, i32 1 %t135 = load i64, ptr %t134 store i64 0, ptr %a136 - br label %for.cond4468 -for.cond4468: + br label %for.cond4612 +for.cond4612: %t137 = load i64, ptr %a136 %t138 = icmp slt i64 %t137, %t135 - br i1 %t138, label %for.body4469, label %for.end4471 -for.body4469: + br i1 %t138, label %for.body4613, label %for.end4615 +for.body4613: %t139 = getelementptr inbounds { ptr, i64, i64 }, ptr %a132, i32 0, i32 1 %t140 = load ptr, ptr %a1 %t141 = getelementptr inbounds %S.gen.EnumDef, ptr %a131, i32 0, i32 2 @@ -45610,20 +47258,20 @@ for.body4469: %t143 = load { ptr, i64, i64 }, ptr %t141 %t144 = extractvalue { ptr, i64, i64 } %t143, 1 %t145 = icmp uge i64 %t142, %t144 - br i1 %t145, label %range4472, label %inrange4473 -range4472: - call void @finch_panic_index(ptr @.str.2732, i64 1977, i64 %t142, i64 %t144) + br i1 %t145, label %range4616, label %inrange4617 +range4616: + call void @finch_panic_index(ptr @.str.2817, i64 2058, i64 %t142, i64 %t144) unreachable -inrange4473: +inrange4617: %t146 = extractvalue { ptr, i64, i64 } %t143, 0 %t147 = getelementptr inbounds { ptr, i64, i64 }, ptr %t146, i64 %t142 %t148 = load { ptr, i64, i64 }, ptr %t147 - store { ptr, i64, i64 } { ptr @.str.2731, i64 21, i64 0 }, ptr %a150 + store { ptr, i64, i64 } { ptr @.str.2816, i64 21, i64 0 }, ptr %a150 store { ptr, i64, i64 } %t148, ptr %a151 call void @finch_str_concat(ptr %a149, ptr %a150, ptr %a151) %t152 = load { ptr, i64, i64 }, ptr %a149 store { ptr, i64, i64 } %t152, ptr %a154 - store { ptr, i64, i64 } { ptr @.str.2733, i64 10, i64 0 }, ptr %a155 + store { ptr, i64, i64 } { ptr @.str.2818, i64 10, i64 0 }, ptr %a155 call void @finch_str_concat(ptr %a153, ptr %a154, ptr %a155) store { ptr, i64, i64 } %t152, ptr %a156 call void @finch_str_drop(ptr %a156) @@ -45633,11 +47281,11 @@ inrange4473: %t160 = load { ptr, i64, i64 }, ptr %t158 %t161 = extractvalue { ptr, i64, i64 } %t160, 1 %t162 = icmp uge i64 %t159, %t161 - br i1 %t162, label %range4474, label %inrange4475 -range4474: - call void @finch_panic_index(ptr @.str.2734, i64 1977, i64 %t159, i64 %t161) + br i1 %t162, label %range4618, label %inrange4619 +range4618: + call void @finch_panic_index(ptr @.str.2819, i64 2058, i64 %t159, i64 %t161) unreachable -inrange4475: +inrange4619: %t163 = extractvalue { ptr, i64, i64 } %t160, 0 %t164 = getelementptr inbounds i64, ptr %t163, i64 %t159 %t165 = load i64, ptr %t164 @@ -45652,7 +47300,7 @@ inrange4475: call void @finch_str_drop(ptr %a172) %t173 = load { ptr, i64, i64 }, ptr %a168 store { ptr, i64, i64 } %t173, ptr %a175 - store { ptr, i64, i64 } { ptr @.str.2735, i64 1, i64 0 }, ptr %a176 + store { ptr, i64, i64 } { ptr @.str.2820, i64 1, i64 0 }, ptr %a176 call void @finch_str_concat(ptr %a174, ptr %a175, ptr %a176) store { ptr, i64, i64 } %t173, ptr %a177 call void @finch_str_drop(ptr %a177) @@ -45668,22 +47316,22 @@ inrange4475: %t185 = getelementptr inbounds { ptr, i64, i64 }, ptr %t184, i64 %t182 store { ptr, i64, i64 } %t181, ptr %t185 store i64 %t183, ptr %t139 - br label %for.step4470 -for.step4470: + br label %for.step4614 +for.step4614: %t186 = load i64, ptr %a136 %t187 = add i64 %t186, 1 store i64 %t187, ptr %a136 - br label %for.cond4468 -for.end4471: + br label %for.cond4612 +for.end4615: %t188 = load ptr, ptr %a1 %t189 = getelementptr inbounds %S.gen.EnumDef, ptr %a131, i32 0, i32 1 %t190 = load { ptr, i64, i64 }, ptr %t189 - store { ptr, i64, i64 } { ptr @.str.2736, i64 54, i64 0 }, ptr %a192 + store { ptr, i64, i64 } { ptr @.str.2821, i64 54, i64 0 }, ptr %a192 store { ptr, i64, i64 } %t190, ptr %a193 call void @finch_str_concat(ptr %a191, ptr %a192, ptr %a193) %t194 = load { ptr, i64, i64 }, ptr %a191 store { ptr, i64, i64 } %t194, ptr %a196 - store { ptr, i64, i64 } { ptr @.str.2737, i64 10, i64 0 }, ptr %a197 + store { ptr, i64, i64 } { ptr @.str.2822, i64 10, i64 0 }, ptr %a197 call void @finch_str_concat(ptr %a195, ptr %a196, ptr %a197) store { ptr, i64, i64 } %t194, ptr %a198 call void @finch_str_drop(ptr %a198) @@ -45700,13 +47348,13 @@ for.end4471: call void @finch_str_drop(ptr %a207) %t208 = load { ptr, i64, i64 }, ptr %a203 store { ptr, i64, i64 } %t208, ptr %a210 - store { ptr, i64, i64 } { ptr @.str.2738, i64 24, i64 0 }, ptr %a211 + store { ptr, i64, i64 } { ptr @.str.2823, i64 24, i64 0 }, ptr %a211 call void @finch_str_concat(ptr %a209, ptr %a210, ptr %a211) store { ptr, i64, i64 } %t208, ptr %a212 call void @finch_str_drop(ptr %a212) %t213 = load { ptr, i64, i64 }, ptr %a209 %t214 = getelementptr inbounds { ptr, i64, i64 }, ptr %a132, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.2739, i64 2, i64 0 }, ptr %a215 + store { ptr, i64, i64 } { ptr @.str.2824, i64 2, i64 0 }, ptr %a215 call void @finch_str_join(ptr %a216, ptr %a132, ptr %a215) %t217 = load { ptr, i64, i64 }, ptr %a216 store { ptr, i64, i64 } %t213, ptr %a219 @@ -45718,7 +47366,7 @@ for.end4471: call void @finch_str_drop(ptr %a222) %t223 = load { ptr, i64, i64 }, ptr %a218 store { ptr, i64, i64 } %t223, ptr %a225 - store { ptr, i64, i64 } { ptr @.str.2740, i64 2, i64 0 }, ptr %a226 + store { ptr, i64, i64 } { ptr @.str.2825, i64 2, i64 0 }, ptr %a226 call void @finch_str_concat(ptr %a224, ptr %a225, ptr %a226) store { ptr, i64, i64 } %t223, ptr %a227 call void @finch_str_drop(ptr %a227) @@ -45729,20 +47377,20 @@ for.end4471: store i64 %t229, ptr %a49 call void @finch.drop.arr_str(ptr %a132) call void @finch.drop.S_gen_EnumDef(ptr %a131) - br label %endif4463 -else4462: + br label %endif4607 +else4606: %t231 = load ptr, ptr %a1 - %t232 = call i64 @finch.gen.md(ptr %t231, { ptr, i64, i64 } { ptr @.str.2741, i64 0, i64 0 }) + %t232 = call i64 @finch.gen.md(ptr %t231, { ptr, i64, i64 } { ptr @.str.2826, i64 0, i64 0 }) store i64 %t232, ptr %a49 %t233 = load i64, ptr %a49 %t234 = load ptr, ptr %a1 %t235 = icmp eq ptr %t234, null - br i1 %t235, label %panic4476, label %ok4477 -panic4476: - call void @finch_panic(ptr @.str.2742, i64 1983, ptr @.str.2743) + br i1 %t235, label %panic4620, label %ok4621 +panic4620: + call void @finch_panic(ptr @.str.2827, i64 2064, ptr @.str.2828) unreachable -ok4477: - %t236 = getelementptr inbounds %S.gen.Gen, ptr %t234, i32 0, i32 33 +ok4621: + %t236 = getelementptr inbounds %S.gen.Gen, ptr %t234, i32 0, i32 34 %t237 = load { ptr, i64, i64 }, ptr %a27 store { ptr, i64, i64 } %t237, ptr %a238 store i32 0, ptr %a239 @@ -45752,103 +47400,103 @@ ok4477: %t243 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t242, i64 %t240 %t244 = load i32, ptr %a239 %t245 = icmp ne i32 %t244, 0 - br i1 %t245, label %map.new4478, label %map.have4479 -map.new4478: + br i1 %t245, label %map.new4622, label %map.have4623 +map.new4622: %t246 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t243, i32 0, i32 1 call void @finch_str_copy(ptr %t246, ptr %a238) %t247 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t243, i32 0, i32 2 store i64 0, ptr %t247 - br label %map.have4479 -map.have4479: + br label %map.have4623 +map.have4623: %t248 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t243, i32 0, i32 2 store i64 %t233, ptr %t248 %t249 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t249, ptr %a250 - store { ptr, i64, i64 } { ptr @.str.2744, i64 3, i64 0 }, ptr %a251 + store { ptr, i64, i64 } { ptr @.str.2829, i64 3, i64 0 }, ptr %a251 %t252 = call i32 @finch_str_eq(ptr %a250, ptr %a251) %t253 = icmp ne i32 %t252, 0 - br i1 %t253, label %then4480, label %else4481 -then4480: + br i1 %t253, label %then4624, label %else4625 +then4624: store i64 -1, ptr %a254 %t255 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t256 = getelementptr inbounds { ptr, i64, i64 }, ptr %t255, i32 0, i32 1 %t257 = load i64, ptr %t256 %t258 = icmp sgt i64 %t257, 0 - br i1 %t258, label %then4483, label %endif4485 -then4483: + br i1 %t258, label %then4627, label %endif4629 +then4627: %t259 = load ptr, ptr %a1 %t260 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t261 = load { ptr, i64, i64 }, ptr %t260 %t262 = extractvalue { ptr, i64, i64 } %t261, 1 %t263 = icmp uge i64 0, %t262 - br i1 %t263, label %range4486, label %inrange4487 -range4486: - call void @finch_panic_index(ptr @.str.2745, i64 1987, i64 0, i64 %t262) + br i1 %t263, label %range4630, label %inrange4631 +range4630: + call void @finch_panic_index(ptr @.str.2830, i64 2068, i64 0, i64 %t262) unreachable -inrange4487: +inrange4631: %t264 = extractvalue { ptr, i64, i64 } %t261, 0 %t265 = getelementptr inbounds %S.ast.Type, ptr %t264, i64 0 %t266 = load %S.ast.Type, ptr %t265 %t267 = call i64 @finch.gen.diType(ptr %t259, %S.ast.Type %t266) store i64 %t267, ptr %a254 - br label %endif4485 -endif4485: + br label %endif4629 +endif4629: %t268 = load i64, ptr %a254 %t269 = call { ptr, i64, i64 } @finch.gen.mdRef(i64 %t268) - store { ptr, i64, i64 } { ptr @.str.2746, i64 51, i64 0 }, ptr %a271 + store { ptr, i64, i64 } { ptr @.str.2831, i64 51, i64 0 }, ptr %a271 store { ptr, i64, i64 } %t269, ptr %a272 call void @finch_str_concat(ptr %a270, ptr %a271, ptr %a272) store { ptr, i64, i64 } %t269, ptr %a273 call void @finch_str_drop(ptr %a273) %t274 = load { ptr, i64, i64 }, ptr %a270 store { ptr, i64, i64 } %t274, ptr %a276 - store { ptr, i64, i64 } { ptr @.str.2747, i64 11, i64 0 }, ptr %a277 + store { ptr, i64, i64 } { ptr @.str.2832, i64 11, i64 0 }, ptr %a277 call void @finch_str_concat(ptr %a275, ptr %a276, ptr %a277) store { ptr, i64, i64 } %t274, ptr %a278 call void @finch_str_drop(ptr %a278) %t279 = load { ptr, i64, i64 }, ptr %a275 %t280 = load ptr, ptr %a1 %t281 = icmp eq ptr %t280, null - br i1 %t281, label %panic4488, label %ok4489 -panic4488: - call void @finch_panic(ptr @.str.2748, i64 1989, ptr @.str.2749) + br i1 %t281, label %panic4632, label %ok4633 +panic4632: + call void @finch_panic(ptr @.str.2833, i64 2070, ptr @.str.2834) unreachable -ok4489: - %t282 = getelementptr inbounds %S.gen.Gen, ptr %t280, i32 0, i32 32 +ok4633: + %t282 = getelementptr inbounds %S.gen.Gen, ptr %t280, i32 0, i32 33 %t283 = load i64, ptr %a49 %t284 = load { ptr, i64, i64 }, ptr %t282 %t285 = extractvalue { ptr, i64, i64 } %t284, 1 %t286 = icmp uge i64 %t283, %t285 - br i1 %t286, label %range4490, label %inrange4491 -range4490: - call void @finch_panic_index(ptr @.str.2750, i64 1989, i64 %t283, i64 %t285) + br i1 %t286, label %range4634, label %inrange4635 +range4634: + call void @finch_panic_index(ptr @.str.2835, i64 2070, i64 %t283, i64 %t285) unreachable -inrange4491: +inrange4635: %t287 = extractvalue { ptr, i64, i64 } %t284, 0 %t288 = getelementptr inbounds { ptr, i64, i64 }, ptr %t287, i64 %t283 %t289 = load { ptr, i64, i64 }, ptr %t288 store { ptr, i64, i64 } %t279, ptr %t288 store { ptr, i64, i64 } %t289, ptr %a290 call void @finch_str_drop(ptr %a290) - br label %endif4482 -else4481: + br label %endif4626 +else4625: %t291 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t291, ptr %a292 - store { ptr, i64, i64 } { ptr @.str.2751, i64 5, i64 0 }, ptr %a293 + store { ptr, i64, i64 } { ptr @.str.2836, i64 5, i64 0 }, ptr %a293 %t294 = call i32 @finch_str_eq(ptr %a292, ptr %a293) %t295 = icmp ne i32 %t294, 0 - br i1 %t295, label %then4492, label %else4493 -then4492: + br i1 %t295, label %then4636, label %else4637 +then4636: %t296 = load ptr, ptr %a1 %t297 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t298 = load { ptr, i64, i64 }, ptr %t297 %t299 = extractvalue { ptr, i64, i64 } %t298, 1 %t300 = icmp uge i64 0, %t299 - br i1 %t300, label %range4495, label %inrange4496 -range4495: - call void @finch_panic_index(ptr @.str.2752, i64 1991, i64 0, i64 %t299) + br i1 %t300, label %range4639, label %inrange4640 +range4639: + call void @finch_panic_index(ptr @.str.2837, i64 2072, i64 0, i64 %t299) unreachable -inrange4496: +inrange4640: %t301 = extractvalue { ptr, i64, i64 } %t298, 0 %t302 = getelementptr inbounds %S.ast.Type, ptr %t301, i64 0 %t303 = load %S.ast.Type, ptr %t302 @@ -45859,14 +47507,14 @@ inrange4496: %t308 = load i64, ptr %t307 call void @finch_str_from_int(ptr %a309, i64 %t308) %t310 = load { ptr, i64, i64 }, ptr %a309 - store { ptr, i64, i64 } { ptr @.str.2753, i64 19, i64 0 }, ptr %a312 + store { ptr, i64, i64 } { ptr @.str.2838, i64 19, i64 0 }, ptr %a312 store { ptr, i64, i64 } %t310, ptr %a313 call void @finch_str_concat(ptr %a311, ptr %a312, ptr %a313) store { ptr, i64, i64 } %t310, ptr %a314 call void @finch_str_drop(ptr %a314) %t315 = load { ptr, i64, i64 }, ptr %a311 store { ptr, i64, i64 } %t315, ptr %a317 - store { ptr, i64, i64 } { ptr @.str.2754, i64 1, i64 0 }, ptr %a318 + store { ptr, i64, i64 } { ptr @.str.2839, i64 1, i64 0 }, ptr %a318 call void @finch_str_concat(ptr %a316, ptr %a317, ptr %a318) store { ptr, i64, i64 } %t315, ptr %a319 call void @finch_str_drop(ptr %a319) @@ -45880,24 +47528,24 @@ inrange4496: %t326 = load { ptr, i64, i64 }, ptr %t325 %t327 = extractvalue { ptr, i64, i64 } %t326, 1 %t328 = icmp uge i64 0, %t327 - br i1 %t328, label %range4497, label %inrange4498 -range4497: - call void @finch_panic_index(ptr @.str.2756, i64 1993, i64 0, i64 %t327) + br i1 %t328, label %range4641, label %inrange4642 +range4641: + call void @finch_panic_index(ptr @.str.2841, i64 2074, i64 0, i64 %t327) unreachable -inrange4498: +inrange4642: %t329 = extractvalue { ptr, i64, i64 } %t326, 0 %t330 = getelementptr inbounds %S.ast.Type, ptr %t329, i64 0 %t331 = load %S.ast.Type, ptr %t330 %t332 = call i64 @finch.gen.diType(ptr %t324, %S.ast.Type %t331) %t333 = call { ptr, i64, i64 } @finch.gen.mdRef(i64 %t332) - store { ptr, i64, i64 } { ptr @.str.2755, i64 51, i64 0 }, ptr %a335 + store { ptr, i64, i64 } { ptr @.str.2840, i64 51, i64 0 }, ptr %a335 store { ptr, i64, i64 } %t333, ptr %a336 call void @finch_str_concat(ptr %a334, ptr %a335, ptr %a336) store { ptr, i64, i64 } %t333, ptr %a337 call void @finch_str_drop(ptr %a337) %t338 = load { ptr, i64, i64 }, ptr %a334 store { ptr, i64, i64 } %t338, ptr %a340 - store { ptr, i64, i64 } { ptr @.str.2757, i64 8, i64 0 }, ptr %a341 + store { ptr, i64, i64 } { ptr @.str.2842, i64 8, i64 0 }, ptr %a341 call void @finch_str_concat(ptr %a339, ptr %a340, ptr %a341) store { ptr, i64, i64 } %t338, ptr %a342 call void @finch_str_drop(ptr %a342) @@ -45919,7 +47567,7 @@ inrange4498: call void @finch_str_drop(ptr %a356) %t357 = load { ptr, i64, i64 }, ptr %a352 store { ptr, i64, i64 } %t357, ptr %a359 - store { ptr, i64, i64 } { ptr @.str.2758, i64 15, i64 0 }, ptr %a360 + store { ptr, i64, i64 } { ptr @.str.2843, i64 15, i64 0 }, ptr %a360 call void @finch_str_concat(ptr %a358, ptr %a359, ptr %a360) store { ptr, i64, i64 } %t357, ptr %a361 call void @finch_str_drop(ptr %a361) @@ -45936,75 +47584,75 @@ inrange4498: call void @finch_str_drop(ptr %a370) %t371 = load { ptr, i64, i64 }, ptr %a366 store { ptr, i64, i64 } %t371, ptr %a373 - store { ptr, i64, i64 } { ptr @.str.2759, i64 2, i64 0 }, ptr %a374 + store { ptr, i64, i64 } { ptr @.str.2844, i64 2, i64 0 }, ptr %a374 call void @finch_str_concat(ptr %a372, ptr %a373, ptr %a374) store { ptr, i64, i64 } %t371, ptr %a375 call void @finch_str_drop(ptr %a375) %t376 = load { ptr, i64, i64 }, ptr %a372 %t377 = load ptr, ptr %a1 %t378 = icmp eq ptr %t377, null - br i1 %t378, label %panic4499, label %ok4500 -panic4499: - call void @finch_panic(ptr @.str.2760, i64 1993, ptr @.str.2761) + br i1 %t378, label %panic4643, label %ok4644 +panic4643: + call void @finch_panic(ptr @.str.2845, i64 2074, ptr @.str.2846) unreachable -ok4500: - %t379 = getelementptr inbounds %S.gen.Gen, ptr %t377, i32 0, i32 32 +ok4644: + %t379 = getelementptr inbounds %S.gen.Gen, ptr %t377, i32 0, i32 33 %t380 = load i64, ptr %a49 %t381 = load { ptr, i64, i64 }, ptr %t379 %t382 = extractvalue { ptr, i64, i64 } %t381, 1 %t383 = icmp uge i64 %t380, %t382 - br i1 %t383, label %range4501, label %inrange4502 -range4501: - call void @finch_panic_index(ptr @.str.2762, i64 1993, i64 %t380, i64 %t382) + br i1 %t383, label %range4645, label %inrange4646 +range4645: + call void @finch_panic_index(ptr @.str.2847, i64 2074, i64 %t380, i64 %t382) unreachable -inrange4502: +inrange4646: %t384 = extractvalue { ptr, i64, i64 } %t381, 0 %t385 = getelementptr inbounds { ptr, i64, i64 }, ptr %t384, i64 %t380 %t386 = load { ptr, i64, i64 }, ptr %t385 store { ptr, i64, i64 } %t376, ptr %t385 store { ptr, i64, i64 } %t386, ptr %a387 call void @finch_str_drop(ptr %a387) - br label %endif4494 -else4493: + br label %endif4638 +else4637: %t388 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t388, ptr %a389 - store { ptr, i64, i64 } { ptr @.str.2763, i64 3, i64 0 }, ptr %a390 + store { ptr, i64, i64 } { ptr @.str.2848, i64 3, i64 0 }, ptr %a390 %t391 = call i32 @finch_str_eq(ptr %a389, ptr %a390) %t392 = icmp ne i32 %t391, 0 - br label %logic.from4503 -logic.from4503: - br i1 %t392, label %logic.end4505, label %logic.rhs4504 -logic.rhs4504: + br label %logic.from4647 +logic.from4647: + br i1 %t392, label %logic.end4649, label %logic.rhs4648 +logic.rhs4648: %t393 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t393, ptr %a394 - store { ptr, i64, i64 } { ptr @.str.2764, i64 5, i64 0 }, ptr %a395 + store { ptr, i64, i64 } { ptr @.str.2849, i64 5, i64 0 }, ptr %a395 %t396 = call i32 @finch_str_eq(ptr %a394, ptr %a395) %t397 = icmp ne i32 %t396, 0 - br label %logic.rend4506 -logic.rend4506: - br label %logic.end4505 -logic.end4505: - %t398 = phi i1 [ true, %logic.from4503 ], [ %t397, %logic.rend4506 ] - br i1 %t398, label %then4507, label %else4508 -then4507: - %t399 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.2765, i64 4, i64 0 }) + br label %logic.rend4650 +logic.rend4650: + br label %logic.end4649 +logic.end4649: + %t398 = phi i1 [ true, %logic.from4647 ], [ %t397, %logic.rend4650 ] + br i1 %t398, label %then4651, label %else4652 +then4651: + %t399 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.2850, i64 4, i64 0 }) store %S.ast.Type %t399, ptr %a400 %t401 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t401, ptr %a402 - store { ptr, i64, i64 } { ptr @.str.2766, i64 5, i64 0 }, ptr %a403 + store { ptr, i64, i64 } { ptr @.str.2851, i64 5, i64 0 }, ptr %a403 %t404 = call i32 @finch_str_eq(ptr %a402, ptr %a403) %t405 = icmp ne i32 %t404, 0 - br i1 %t405, label %then4510, label %endif4512 -then4510: + br i1 %t405, label %then4654, label %endif4656 +then4654: %t406 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t407 = load { ptr, i64, i64 }, ptr %t406 %t408 = extractvalue { ptr, i64, i64 } %t407, 1 %t409 = icmp uge i64 0, %t408 - br i1 %t409, label %range4513, label %inrange4514 -range4513: - call void @finch_panic_index(ptr @.str.2767, i64 1997, i64 0, i64 %t408) + br i1 %t409, label %range4657, label %inrange4658 +range4657: + call void @finch_panic_index(ptr @.str.2852, i64 2078, i64 0, i64 %t408) unreachable -inrange4514: +inrange4658: %t410 = extractvalue { ptr, i64, i64 } %t407, 0 %t411 = getelementptr inbounds %S.ast.Type, ptr %t410, i64 0 %t412 = load %S.ast.Type, ptr %t411 @@ -46015,21 +47663,21 @@ inrange4514: store %S.ast.Type %t415, ptr %a400 store %S.ast.Type %t416, ptr %a417 call void @finch.drop.S_ast_Type(ptr %a417) - br label %endif4512 -endif4512: + br label %endif4656 +endif4656: %t418 = load ptr, ptr %a1 %t419 = load ptr, ptr %a1 %t420 = load %S.ast.Type, ptr %a400 %t421 = call i64 @finch.gen.diType(ptr %t419, %S.ast.Type %t420) %t422 = call { ptr, i64, i64 } @finch.gen.mdRef(i64 %t421) - store { ptr, i64, i64 } { ptr @.str.2768, i64 51, i64 0 }, ptr %a424 + store { ptr, i64, i64 } { ptr @.str.2853, i64 51, i64 0 }, ptr %a424 store { ptr, i64, i64 } %t422, ptr %a425 call void @finch_str_concat(ptr %a423, ptr %a424, ptr %a425) store { ptr, i64, i64 } %t422, ptr %a426 call void @finch_str_drop(ptr %a426) %t427 = load { ptr, i64, i64 }, ptr %a423 store { ptr, i64, i64 } %t427, ptr %a429 - store { ptr, i64, i64 } { ptr @.str.2769, i64 11, i64 0 }, ptr %a430 + store { ptr, i64, i64 } { ptr @.str.2854, i64 11, i64 0 }, ptr %a430 call void @finch_str_concat(ptr %a428, ptr %a429, ptr %a430) store { ptr, i64, i64 } %t427, ptr %a431 call void @finch_str_drop(ptr %a431) @@ -46039,7 +47687,7 @@ endif4512: call void @finch_str_drop(ptr %a434) store i64 %t433, ptr %a435 %t436 = load ptr, ptr %a1 - %t437 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.2770, i64 3, i64 0 }) + %t437 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.2855, i64 3, i64 0 }) %t438 = call i64 @finch.gen.diType(ptr %t436, %S.ast.Type %t437) store %S.ast.Type %t437, ptr %a439 call void @finch.drop.S_ast_Type(ptr %a439) @@ -46048,30 +47696,30 @@ endif4512: %t442 = load i64, ptr %a49 %t443 = load i64, ptr %a59 %t444 = load i64, ptr %a435 - %t445 = call i64 @finch.gen.dbgMember(ptr %t441, { ptr, i64, i64 } { ptr @.str.2771, i64 3, i64 0 }, i64 %t442, i64 %t443, i64 0, i64 %t444, i64 64, i64 0) + %t445 = call i64 @finch.gen.dbgMember(ptr %t441, { ptr, i64, i64 } { ptr @.str.2856, i64 3, i64 0 }, i64 %t442, i64 %t443, i64 0, i64 %t444, i64 64, i64 0) store i64 %t445, ptr %a446 %t447 = load ptr, ptr %a1 %t448 = load i64, ptr %a49 %t449 = load i64, ptr %a59 %t450 = load i64, ptr %a440 - %t451 = call i64 @finch.gen.dbgMember(ptr %t447, { ptr, i64, i64 } { ptr @.str.2772, i64 3, i64 0 }, i64 %t448, i64 %t449, i64 0, i64 %t450, i64 64, i64 64) + %t451 = call i64 @finch.gen.dbgMember(ptr %t447, { ptr, i64, i64 } { ptr @.str.2857, i64 3, i64 0 }, i64 %t448, i64 %t449, i64 0, i64 %t450, i64 64, i64 64) store i64 %t451, ptr %a452 %t453 = load ptr, ptr %a1 %t454 = load i64, ptr %a49 %t455 = load i64, ptr %a59 %t456 = load i64, ptr %a440 - %t457 = call i64 @finch.gen.dbgMember(ptr %t453, { ptr, i64, i64 } { ptr @.str.2773, i64 3, i64 0 }, i64 %t454, i64 %t455, i64 0, i64 %t456, i64 64, i64 128) + %t457 = call i64 @finch.gen.dbgMember(ptr %t453, { ptr, i64, i64 } { ptr @.str.2858, i64 3, i64 0 }, i64 %t454, i64 %t455, i64 0, i64 %t456, i64 64, i64 128) store i64 %t457, ptr %a458 %t459 = load %S.ast.Type, ptr %a2 %t460 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t459) - store { ptr, i64, i64 } { ptr @.str.2774, i64 52, i64 0 }, ptr %a462 + store { ptr, i64, i64 } { ptr @.str.2859, i64 52, i64 0 }, ptr %a462 store { ptr, i64, i64 } %t460, ptr %a463 call void @finch_str_concat(ptr %a461, ptr %a462, ptr %a463) store { ptr, i64, i64 } %t460, ptr %a464 call void @finch_str_drop(ptr %a464) %t465 = load { ptr, i64, i64 }, ptr %a461 store { ptr, i64, i64 } %t465, ptr %a467 - store { ptr, i64, i64 } { ptr @.str.2775, i64 10, i64 0 }, ptr %a468 + store { ptr, i64, i64 } { ptr @.str.2860, i64 10, i64 0 }, ptr %a468 call void @finch_str_concat(ptr %a466, ptr %a467, ptr %a468) store { ptr, i64, i64 } %t465, ptr %a469 call void @finch_str_drop(ptr %a469) @@ -46088,7 +47736,7 @@ endif4512: call void @finch_str_drop(ptr %a478) %t479 = load { ptr, i64, i64 }, ptr %a474 store { ptr, i64, i64 } %t479, ptr %a481 - store { ptr, i64, i64 } { ptr @.str.2776, i64 37, i64 0 }, ptr %a482 + store { ptr, i64, i64 } { ptr @.str.2861, i64 37, i64 0 }, ptr %a482 call void @finch_str_concat(ptr %a480, ptr %a481, ptr %a482) store { ptr, i64, i64 } %t479, ptr %a483 call void @finch_str_drop(ptr %a483) @@ -46105,7 +47753,7 @@ endif4512: call void @finch_str_drop(ptr %a492) %t493 = load { ptr, i64, i64 }, ptr %a488 store { ptr, i64, i64 } %t493, ptr %a495 - store { ptr, i64, i64 } { ptr @.str.2777, i64 3, i64 0 }, ptr %a496 + store { ptr, i64, i64 } { ptr @.str.2862, i64 3, i64 0 }, ptr %a496 call void @finch_str_concat(ptr %a494, ptr %a495, ptr %a496) store { ptr, i64, i64 } %t493, ptr %a497 call void @finch_str_drop(ptr %a497) @@ -46122,7 +47770,7 @@ endif4512: call void @finch_str_drop(ptr %a506) %t507 = load { ptr, i64, i64 }, ptr %a502 store { ptr, i64, i64 } %t507, ptr %a509 - store { ptr, i64, i64 } { ptr @.str.2778, i64 3, i64 0 }, ptr %a510 + store { ptr, i64, i64 } { ptr @.str.2863, i64 3, i64 0 }, ptr %a510 call void @finch_str_concat(ptr %a508, ptr %a509, ptr %a510) store { ptr, i64, i64 } %t507, ptr %a511 call void @finch_str_drop(ptr %a511) @@ -46139,28 +47787,28 @@ endif4512: call void @finch_str_drop(ptr %a520) %t521 = load { ptr, i64, i64 }, ptr %a516 store { ptr, i64, i64 } %t521, ptr %a523 - store { ptr, i64, i64 } { ptr @.str.2779, i64 2, i64 0 }, ptr %a524 + store { ptr, i64, i64 } { ptr @.str.2864, i64 2, i64 0 }, ptr %a524 call void @finch_str_concat(ptr %a522, ptr %a523, ptr %a524) store { ptr, i64, i64 } %t521, ptr %a525 call void @finch_str_drop(ptr %a525) %t526 = load { ptr, i64, i64 }, ptr %a522 %t527 = load ptr, ptr %a1 %t528 = icmp eq ptr %t527, null - br i1 %t528, label %panic4515, label %ok4516 -panic4515: - call void @finch_panic(ptr @.str.2780, i64 2004, ptr @.str.2781) + br i1 %t528, label %panic4659, label %ok4660 +panic4659: + call void @finch_panic(ptr @.str.2865, i64 2085, ptr @.str.2866) unreachable -ok4516: - %t529 = getelementptr inbounds %S.gen.Gen, ptr %t527, i32 0, i32 32 +ok4660: + %t529 = getelementptr inbounds %S.gen.Gen, ptr %t527, i32 0, i32 33 %t530 = load i64, ptr %a49 %t531 = load { ptr, i64, i64 }, ptr %t529 %t532 = extractvalue { ptr, i64, i64 } %t531, 1 %t533 = icmp uge i64 %t530, %t532 - br i1 %t533, label %range4517, label %inrange4518 -range4517: - call void @finch_panic_index(ptr @.str.2782, i64 2004, i64 %t530, i64 %t532) + br i1 %t533, label %range4661, label %inrange4662 +range4661: + call void @finch_panic_index(ptr @.str.2867, i64 2085, i64 %t530, i64 %t532) unreachable -inrange4518: +inrange4662: %t534 = extractvalue { ptr, i64, i64 } %t531, 0 %t535 = getelementptr inbounds { ptr, i64, i64 }, ptr %t534, i64 %t530 %t536 = load { ptr, i64, i64 }, ptr %t535 @@ -46168,84 +47816,84 @@ inrange4518: store { ptr, i64, i64 } %t536, ptr %a537 call void @finch_str_drop(ptr %a537) call void @finch.drop.S_ast_Type(ptr %a400) - br label %endif4509 -else4508: + br label %endif4653 +else4652: %t538 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t538, ptr %a539 - store { ptr, i64, i64 } { ptr @.str.2783, i64 3, i64 0 }, ptr %a540 + store { ptr, i64, i64 } { ptr @.str.2868, i64 3, i64 0 }, ptr %a540 %t541 = call i32 @finch_str_eq(ptr %a539, ptr %a540) %t542 = icmp ne i32 %t541, 0 - br i1 %t542, label %then4519, label %else4520 -then4519: + br i1 %t542, label %then4663, label %else4664 +then4663: %t543 = load ptr, ptr %a1 - %t544 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.2784, i64 3, i64 0 }) + %t544 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.2869, i64 3, i64 0 }) %t545 = call i64 @finch.gen.diType(ptr %t543, %S.ast.Type %t544) store %S.ast.Type %t544, ptr %a546 call void @finch.drop.S_ast_Type(ptr %a546) store i64 %t545, ptr %a547 %t548 = load ptr, ptr %a1 - %t549 = call i64 @finch.gen.md(ptr %t548, { ptr, i64, i64 } { ptr @.str.2785, i64 66, i64 0 }) + %t549 = call i64 @finch.gen.md(ptr %t548, { ptr, i64, i64 } { ptr @.str.2870, i64 66, i64 0 }) store i64 %t549, ptr %a550 %t551 = mul i64 7, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t552 = call ptr @finch_alloc(i64 %t551) %t553 = getelementptr inbounds { ptr, i64, i64 }, ptr %t552, i64 0 - store { ptr, i64, i64 } { ptr @.str.2786, i64 7, i64 0 }, ptr %t553 + store { ptr, i64, i64 } { ptr @.str.2871, i64 7, i64 0 }, ptr %t553 %t554 = getelementptr inbounds { ptr, i64, i64 }, ptr %t552, i64 1 - store { ptr, i64, i64 } { ptr @.str.2787, i64 3, i64 0 }, ptr %t554 + store { ptr, i64, i64 } { ptr @.str.2872, i64 3, i64 0 }, ptr %t554 %t555 = getelementptr inbounds { ptr, i64, i64 }, ptr %t552, i64 2 - store { ptr, i64, i64 } { ptr @.str.2788, i64 4, i64 0 }, ptr %t555 + store { ptr, i64, i64 } { ptr @.str.2873, i64 4, i64 0 }, ptr %t555 %t556 = getelementptr inbounds { ptr, i64, i64 }, ptr %t552, i64 3 - store { ptr, i64, i64 } { ptr @.str.2789, i64 3, i64 0 }, ptr %t556 + store { ptr, i64, i64 } { ptr @.str.2874, i64 3, i64 0 }, ptr %t556 %t557 = getelementptr inbounds { ptr, i64, i64 }, ptr %t552, i64 4 - store { ptr, i64, i64 } { ptr @.str.2790, i64 5, i64 0 }, ptr %t557 + store { ptr, i64, i64 } { ptr @.str.2875, i64 5, i64 0 }, ptr %t557 %t558 = getelementptr inbounds { ptr, i64, i64 }, ptr %t552, i64 5 - store { ptr, i64, i64 } { ptr @.str.2791, i64 4, i64 0 }, ptr %t558 + store { ptr, i64, i64 } { ptr @.str.2876, i64 4, i64 0 }, ptr %t558 %t559 = getelementptr inbounds { ptr, i64, i64 }, ptr %t552, i64 6 - store { ptr, i64, i64 } { ptr @.str.2792, i64 4, i64 0 }, ptr %t559 + store { ptr, i64, i64 } { ptr @.str.2877, i64 4, i64 0 }, ptr %t559 %t560 = insertvalue { ptr, i64, i64 } undef, ptr %t552, 0 %t561 = insertvalue { ptr, i64, i64 } %t560, i64 7, 1 %t562 = insertvalue { ptr, i64, i64 } %t561, i64 7, 2 store { ptr, i64, i64 } %t562, ptr %a563 store { ptr, i64, i64 } zeroinitializer, ptr %a564 store i64 0, ptr %a565 - br label %for.cond4522 -for.cond4522: + br label %for.cond4666 +for.cond4666: %t566 = load i64, ptr %a565 %t567 = icmp slt i64 %t566, 7 - br i1 %t567, label %for.body4523, label %for.end4525 -for.body4523: + br i1 %t567, label %for.body4667, label %for.end4669 +for.body4667: %t568 = load i64, ptr %a547 store i64 %t568, ptr %a569 %t570 = load i64, ptr %a565 %t571 = icmp eq i64 %t570, 0 - br label %logic.from4526 -logic.from4526: - br i1 %t571, label %logic.end4528, label %logic.rhs4527 -logic.rhs4527: + br label %logic.from4670 +logic.from4670: + br i1 %t571, label %logic.end4672, label %logic.rhs4671 +logic.rhs4671: %t572 = load i64, ptr %a565 %t573 = icmp eq i64 %t572, 4 - br label %logic.rend4529 -logic.rend4529: - br label %logic.end4528 -logic.end4528: - %t574 = phi i1 [ true, %logic.from4526 ], [ %t573, %logic.rend4529 ] - br i1 %t574, label %then4530, label %endif4532 -then4530: + br label %logic.rend4673 +logic.rend4673: + br label %logic.end4672 +logic.end4672: + %t574 = phi i1 [ true, %logic.from4670 ], [ %t573, %logic.rend4673 ] + br i1 %t574, label %then4674, label %endif4676 +then4674: %t575 = load i64, ptr %a550 store i64 %t575, ptr %a569 - br label %endif4532 -endif4532: + br label %endif4676 +endif4676: %t576 = getelementptr inbounds { ptr, i64, i64 }, ptr %a564, i32 0, i32 1 %t577 = load ptr, ptr %a1 %t578 = load i64, ptr %a565 %t579 = load { ptr, i64, i64 }, ptr %a563 %t580 = extractvalue { ptr, i64, i64 } %t579, 1 %t581 = icmp uge i64 %t578, %t580 - br i1 %t581, label %range4533, label %inrange4534 -range4533: - call void @finch_panic_index(ptr @.str.2794, i64 2015, i64 %t578, i64 %t580) + br i1 %t581, label %range4677, label %inrange4678 +range4677: + call void @finch_panic_index(ptr @.str.2879, i64 2096, i64 %t578, i64 %t580) unreachable -inrange4534: +inrange4678: %t582 = extractvalue { ptr, i64, i64 } %t579, 0 %t583 = getelementptr inbounds { ptr, i64, i64 }, ptr %t582, i64 %t578 %t584 = load { ptr, i64, i64 }, ptr %t583 @@ -46257,7 +47905,7 @@ inrange4534: %t590 = call i64 @finch.gen.dbgMember(ptr %t577, { ptr, i64, i64 } %t584, i64 %t585, i64 %t586, i64 0, i64 %t587, i64 64, i64 %t589) call void @finch_str_from_int(ptr %a591, i64 %t590) %t592 = load { ptr, i64, i64 }, ptr %a591 - store { ptr, i64, i64 } { ptr @.str.2793, i64 1, i64 0 }, ptr %a594 + store { ptr, i64, i64 } { ptr @.str.2878, i64 1, i64 0 }, ptr %a594 store { ptr, i64, i64 } %t592, ptr %a595 call void @finch_str_concat(ptr %a593, ptr %a594, ptr %a595) store { ptr, i64, i64 } %t592, ptr %a596 @@ -46270,23 +47918,23 @@ inrange4534: %t601 = getelementptr inbounds { ptr, i64, i64 }, ptr %t600, i64 %t598 store { ptr, i64, i64 } %t597, ptr %t601 store i64 %t599, ptr %t576 - br label %for.step4524 -for.step4524: + br label %for.step4668 +for.step4668: %t602 = load i64, ptr %a565 %t603 = add i64 %t602, 1 store i64 %t603, ptr %a565 - br label %for.cond4522 -for.end4525: + br label %for.cond4666 +for.end4669: %t604 = load %S.ast.Type, ptr %a2 %t605 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t604) - store { ptr, i64, i64 } { ptr @.str.2795, i64 52, i64 0 }, ptr %a607 + store { ptr, i64, i64 } { ptr @.str.2880, i64 52, i64 0 }, ptr %a607 store { ptr, i64, i64 } %t605, ptr %a608 call void @finch_str_concat(ptr %a606, ptr %a607, ptr %a608) store { ptr, i64, i64 } %t605, ptr %a609 call void @finch_str_drop(ptr %a609) %t610 = load { ptr, i64, i64 }, ptr %a606 store { ptr, i64, i64 } %t610, ptr %a612 - store { ptr, i64, i64 } { ptr @.str.2796, i64 10, i64 0 }, ptr %a613 + store { ptr, i64, i64 } { ptr @.str.2881, i64 10, i64 0 }, ptr %a613 call void @finch_str_concat(ptr %a611, ptr %a612, ptr %a613) store { ptr, i64, i64 } %t610, ptr %a614 call void @finch_str_drop(ptr %a614) @@ -46303,13 +47951,13 @@ for.end4525: call void @finch_str_drop(ptr %a623) %t624 = load { ptr, i64, i64 }, ptr %a619 store { ptr, i64, i64 } %t624, ptr %a626 - store { ptr, i64, i64 } { ptr @.str.2797, i64 36, i64 0 }, ptr %a627 + store { ptr, i64, i64 } { ptr @.str.2882, i64 36, i64 0 }, ptr %a627 call void @finch_str_concat(ptr %a625, ptr %a626, ptr %a627) store { ptr, i64, i64 } %t624, ptr %a628 call void @finch_str_drop(ptr %a628) %t629 = load { ptr, i64, i64 }, ptr %a625 %t630 = getelementptr inbounds { ptr, i64, i64 }, ptr %a564, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.2798, i64 2, i64 0 }, ptr %a631 + store { ptr, i64, i64 } { ptr @.str.2883, i64 2, i64 0 }, ptr %a631 call void @finch_str_join(ptr %a632, ptr %a564, ptr %a631) %t633 = load { ptr, i64, i64 }, ptr %a632 store { ptr, i64, i64 } %t629, ptr %a635 @@ -46321,28 +47969,28 @@ for.end4525: call void @finch_str_drop(ptr %a638) %t639 = load { ptr, i64, i64 }, ptr %a634 store { ptr, i64, i64 } %t639, ptr %a641 - store { ptr, i64, i64 } { ptr @.str.2799, i64 2, i64 0 }, ptr %a642 + store { ptr, i64, i64 } { ptr @.str.2884, i64 2, i64 0 }, ptr %a642 call void @finch_str_concat(ptr %a640, ptr %a641, ptr %a642) store { ptr, i64, i64 } %t639, ptr %a643 call void @finch_str_drop(ptr %a643) %t644 = load { ptr, i64, i64 }, ptr %a640 %t645 = load ptr, ptr %a1 %t646 = icmp eq ptr %t645, null - br i1 %t646, label %panic4535, label %ok4536 -panic4535: - call void @finch_panic(ptr @.str.2800, i64 2017, ptr @.str.2801) + br i1 %t646, label %panic4679, label %ok4680 +panic4679: + call void @finch_panic(ptr @.str.2885, i64 2098, ptr @.str.2886) unreachable -ok4536: - %t647 = getelementptr inbounds %S.gen.Gen, ptr %t645, i32 0, i32 32 +ok4680: + %t647 = getelementptr inbounds %S.gen.Gen, ptr %t645, i32 0, i32 33 %t648 = load i64, ptr %a49 %t649 = load { ptr, i64, i64 }, ptr %t647 %t650 = extractvalue { ptr, i64, i64 } %t649, 1 %t651 = icmp uge i64 %t648, %t650 - br i1 %t651, label %range4537, label %inrange4538 -range4537: - call void @finch_panic_index(ptr @.str.2802, i64 2017, i64 %t648, i64 %t650) + br i1 %t651, label %range4681, label %inrange4682 +range4681: + call void @finch_panic_index(ptr @.str.2887, i64 2098, i64 %t648, i64 %t650) unreachable -inrange4538: +inrange4682: %t652 = extractvalue { ptr, i64, i64 } %t649, 0 %t653 = getelementptr inbounds { ptr, i64, i64 }, ptr %t652, i64 %t648 %t654 = load { ptr, i64, i64 }, ptr %t653 @@ -46351,22 +47999,22 @@ inrange4538: call void @finch_str_drop(ptr %a655) call void @finch.drop.arr_str(ptr %a564) call void @finch.drop.arr_str(ptr %a563) - br label %endif4521 -else4520: + br label %endif4665 +else4664: %t656 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t656, ptr %a657 - store { ptr, i64, i64 } { ptr @.str.2803, i64 6, i64 0 }, ptr %a658 + store { ptr, i64, i64 } { ptr @.str.2888, i64 6, i64 0 }, ptr %a658 %t659 = call i32 @finch_str_eq(ptr %a657, ptr %a658) %t660 = icmp ne i32 %t659, 0 - br i1 %t660, label %then4539, label %else4540 -then4539: + br i1 %t660, label %then4683, label %else4684 +then4683: %t661 = load ptr, ptr %a1 %t662 = icmp eq ptr %t661, null - br i1 %t662, label %panic4542, label %ok4543 -panic4542: - call void @finch_panic(ptr @.str.2804, i64 2019, ptr @.str.2805) + br i1 %t662, label %panic4686, label %ok4687 +panic4686: + call void @finch_panic(ptr @.str.2889, i64 2100, ptr @.str.2890) unreachable -ok4543: +ok4687: %t663 = getelementptr inbounds %S.gen.Gen, ptr %t661, i32 0, i32 16 %t664 = load ptr, ptr %a1 %t665 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 @@ -46377,11 +48025,11 @@ ok4543: %t670 = load { ptr, i64, i64 }, ptr %t663 %t671 = extractvalue { ptr, i64, i64 } %t670, 1 %t672 = icmp uge i64 %t669, %t671 - br i1 %t672, label %range4544, label %inrange4545 -range4544: - call void @finch_panic_index(ptr @.str.2806, i64 2019, i64 %t669, i64 %t671) + br i1 %t672, label %range4688, label %inrange4689 +range4688: + call void @finch_panic_index(ptr @.str.2891, i64 2100, i64 %t669, i64 %t671) unreachable -inrange4545: +inrange4689: %t673 = extractvalue { ptr, i64, i64 } %t670, 0 %t674 = getelementptr inbounds %S.gen.StructDef, ptr %t673, i64 %t669 %t675 = load %S.gen.StructDef, ptr %t674 @@ -46402,23 +48050,23 @@ inrange4545: %t690 = getelementptr inbounds { ptr, i64, i64 }, ptr %t689, i32 0, i32 1 %t691 = load i64, ptr %t690 store i64 0, ptr %a692 - br label %for.cond4546 -for.cond4546: + br label %for.cond4690 +for.cond4690: %t693 = load i64, ptr %a692 %t694 = icmp slt i64 %t693, %t691 - br i1 %t694, label %for.body4547, label %for.end4549 -for.body4547: + br i1 %t694, label %for.body4691, label %for.end4693 +for.body4691: %t695 = load ptr, ptr %a1 %t696 = getelementptr inbounds %S.gen.StructDef, ptr %a679, i32 0, i32 12 %t697 = load i64, ptr %a692 %t698 = load { ptr, i64, i64 }, ptr %t696 %t699 = extractvalue { ptr, i64, i64 } %t698, 1 %t700 = icmp uge i64 %t697, %t699 - br i1 %t700, label %range4550, label %inrange4551 -range4550: - call void @finch_panic_index(ptr @.str.2807, i64 2024, i64 %t697, i64 %t699) + br i1 %t700, label %range4694, label %inrange4695 +range4694: + call void @finch_panic_index(ptr @.str.2892, i64 2105, i64 %t697, i64 %t699) unreachable -inrange4551: +inrange4695: %t701 = extractvalue { ptr, i64, i64 } %t698, 0 %t702 = getelementptr inbounds %S.ast.Type, ptr %t701, i64 %t697 %t703 = load %S.ast.Type, ptr %t702 @@ -46431,11 +48079,11 @@ inrange4551: %t710 = load { ptr, i64, i64 }, ptr %t708 %t711 = extractvalue { ptr, i64, i64 } %t710, 1 %t712 = icmp uge i64 %t709, %t711 - br i1 %t712, label %range4552, label %inrange4553 -range4552: - call void @finch_panic_index(ptr @.str.2809, i64 2025, i64 %t709, i64 %t711) + br i1 %t712, label %range4696, label %inrange4697 +range4696: + call void @finch_panic_index(ptr @.str.2894, i64 2106, i64 %t709, i64 %t711) unreachable -inrange4553: +inrange4697: %t713 = extractvalue { ptr, i64, i64 } %t710, 0 %t714 = getelementptr inbounds { ptr, i64, i64 }, ptr %t713, i64 %t709 %t715 = load { ptr, i64, i64 }, ptr %t714 @@ -46447,11 +48095,11 @@ inrange4553: %t721 = load { ptr, i64, i64 }, ptr %t719 %t722 = extractvalue { ptr, i64, i64 } %t721, 1 %t723 = icmp uge i64 %t720, %t722 - br i1 %t723, label %range4554, label %inrange4555 -range4554: - call void @finch_panic_index(ptr @.str.2810, i64 2025, i64 %t720, i64 %t722) + br i1 %t723, label %range4698, label %inrange4699 +range4698: + call void @finch_panic_index(ptr @.str.2895, i64 2106, i64 %t720, i64 %t722) unreachable -inrange4555: +inrange4699: %t724 = extractvalue { ptr, i64, i64 } %t721, 0 %t725 = getelementptr inbounds %S.ast.Type, ptr %t724, i64 %t720 %t726 = load %S.ast.Type, ptr %t725 @@ -46463,11 +48111,11 @@ inrange4555: %t732 = load { ptr, i64, i64 }, ptr %a683 %t733 = extractvalue { ptr, i64, i64 } %t732, 1 %t734 = icmp uge i64 %t731, %t733 - br i1 %t734, label %range4556, label %inrange4557 -range4556: - call void @finch_panic_index(ptr @.str.2811, i64 2025, i64 %t731, i64 %t733) + br i1 %t734, label %range4700, label %inrange4701 +range4700: + call void @finch_panic_index(ptr @.str.2896, i64 2106, i64 %t731, i64 %t733) unreachable -inrange4557: +inrange4701: %t735 = extractvalue { ptr, i64, i64 } %t732, 0 %t736 = getelementptr inbounds i64, ptr %t735, i64 %t731 %t737 = load i64, ptr %t736 @@ -46475,7 +48123,7 @@ inrange4557: %t739 = call i64 @finch.gen.dbgMember(ptr %t707, { ptr, i64, i64 } %t715, i64 %t716, i64 %t717, i64 0, i64 %t727, i64 %t730, i64 %t738) call void @finch_str_from_int(ptr %a740, i64 %t739) %t741 = load { ptr, i64, i64 }, ptr %a740 - store { ptr, i64, i64 } { ptr @.str.2808, i64 1, i64 0 }, ptr %a743 + store { ptr, i64, i64 } { ptr @.str.2893, i64 1, i64 0 }, ptr %a743 store { ptr, i64, i64 } %t741, ptr %a744 call void @finch_str_concat(ptr %a742, ptr %a743, ptr %a744) store { ptr, i64, i64 } %t741, ptr %a745 @@ -46488,21 +48136,21 @@ inrange4557: %t750 = getelementptr inbounds { ptr, i64, i64 }, ptr %t749, i64 %t747 store { ptr, i64, i64 } %t746, ptr %t750 store i64 %t748, ptr %t706 - br label %for.step4548 -for.step4548: + br label %for.step4692 +for.step4692: %t751 = load i64, ptr %a692 %t752 = add i64 %t751, 1 store i64 %t752, ptr %a692 - br label %for.cond4546 -for.end4549: + br label %for.cond4690 +for.end4693: %t753 = getelementptr inbounds %S.gen.StructDef, ptr %a679, i32 0, i32 1 %t754 = load { ptr, i64, i64 }, ptr %t753 - store { ptr, i64, i64 } { ptr @.str.2812, i64 52, i64 0 }, ptr %a756 + store { ptr, i64, i64 } { ptr @.str.2897, i64 52, i64 0 }, ptr %a756 store { ptr, i64, i64 } %t754, ptr %a757 call void @finch_str_concat(ptr %a755, ptr %a756, ptr %a757) %t758 = load { ptr, i64, i64 }, ptr %a755 store { ptr, i64, i64 } %t758, ptr %a760 - store { ptr, i64, i64 } { ptr @.str.2813, i64 10, i64 0 }, ptr %a761 + store { ptr, i64, i64 } { ptr @.str.2898, i64 10, i64 0 }, ptr %a761 call void @finch_str_concat(ptr %a759, ptr %a760, ptr %a761) store { ptr, i64, i64 } %t758, ptr %a762 call void @finch_str_drop(ptr %a762) @@ -46519,7 +48167,7 @@ for.end4549: call void @finch_str_drop(ptr %a771) %t772 = load { ptr, i64, i64 }, ptr %a767 store { ptr, i64, i64 } %t772, ptr %a774 - store { ptr, i64, i64 } { ptr @.str.2814, i64 8, i64 0 }, ptr %a775 + store { ptr, i64, i64 } { ptr @.str.2899, i64 8, i64 0 }, ptr %a775 call void @finch_str_concat(ptr %a773, ptr %a774, ptr %a775) store { ptr, i64, i64 } %t772, ptr %a776 call void @finch_str_drop(ptr %a776) @@ -46538,13 +48186,13 @@ for.end4549: call void @finch_str_drop(ptr %a787) %t788 = load { ptr, i64, i64 }, ptr %a783 store { ptr, i64, i64 } %t788, ptr %a790 - store { ptr, i64, i64 } { ptr @.str.2815, i64 24, i64 0 }, ptr %a791 + store { ptr, i64, i64 } { ptr @.str.2900, i64 24, i64 0 }, ptr %a791 call void @finch_str_concat(ptr %a789, ptr %a790, ptr %a791) store { ptr, i64, i64 } %t788, ptr %a792 call void @finch_str_drop(ptr %a792) %t793 = load { ptr, i64, i64 }, ptr %a789 %t794 = getelementptr inbounds { ptr, i64, i64 }, ptr %a688, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.2816, i64 2, i64 0 }, ptr %a795 + store { ptr, i64, i64 } { ptr @.str.2901, i64 2, i64 0 }, ptr %a795 call void @finch_str_join(ptr %a796, ptr %a688, ptr %a795) %t797 = load { ptr, i64, i64 }, ptr %a796 store { ptr, i64, i64 } %t793, ptr %a799 @@ -46556,28 +48204,28 @@ for.end4549: call void @finch_str_drop(ptr %a802) %t803 = load { ptr, i64, i64 }, ptr %a798 store { ptr, i64, i64 } %t803, ptr %a805 - store { ptr, i64, i64 } { ptr @.str.2817, i64 2, i64 0 }, ptr %a806 + store { ptr, i64, i64 } { ptr @.str.2902, i64 2, i64 0 }, ptr %a806 call void @finch_str_concat(ptr %a804, ptr %a805, ptr %a806) store { ptr, i64, i64 } %t803, ptr %a807 call void @finch_str_drop(ptr %a807) %t808 = load { ptr, i64, i64 }, ptr %a804 %t809 = load ptr, ptr %a1 %t810 = icmp eq ptr %t809, null - br i1 %t810, label %panic4558, label %ok4559 -panic4558: - call void @finch_panic(ptr @.str.2818, i64 2027, ptr @.str.2819) + br i1 %t810, label %panic4702, label %ok4703 +panic4702: + call void @finch_panic(ptr @.str.2903, i64 2108, ptr @.str.2904) unreachable -ok4559: - %t811 = getelementptr inbounds %S.gen.Gen, ptr %t809, i32 0, i32 32 +ok4703: + %t811 = getelementptr inbounds %S.gen.Gen, ptr %t809, i32 0, i32 33 %t812 = load i64, ptr %a49 %t813 = load { ptr, i64, i64 }, ptr %t811 %t814 = extractvalue { ptr, i64, i64 } %t813, 1 %t815 = icmp uge i64 %t812, %t814 - br i1 %t815, label %range4560, label %inrange4561 -range4560: - call void @finch_panic_index(ptr @.str.2820, i64 2027, i64 %t812, i64 %t814) + br i1 %t815, label %range4704, label %inrange4705 +range4704: + call void @finch_panic_index(ptr @.str.2905, i64 2108, i64 %t812, i64 %t814) unreachable -inrange4561: +inrange4705: %t816 = extractvalue { ptr, i64, i64 } %t813, 0 %t817 = getelementptr inbounds { ptr, i64, i64 }, ptr %t816, i64 %t812 %t818 = load { ptr, i64, i64 }, ptr %t817 @@ -46587,78 +48235,78 @@ inrange4561: call void @finch.drop.arr_str(ptr %a688) call void @finch.drop.arr_int(ptr %a683) call void @finch.drop.S_gen_StructDef(ptr %a679) - br label %endif4541 -else4540: + br label %endif4685 +else4684: %t820 = load { ptr, i64, i64 }, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.2821, i64 20, i64 0 }, ptr %a822 + store { ptr, i64, i64 } { ptr @.str.2906, i64 20, i64 0 }, ptr %a822 store { ptr, i64, i64 } %t820, ptr %a823 call void @finch_str_concat(ptr %a821, ptr %a822, ptr %a823) %t824 = load { ptr, i64, i64 }, ptr %a821 store { ptr, i64, i64 } %t824, ptr %a826 - store { ptr, i64, i64 } { ptr @.str.2822, i64 39, i64 0 }, ptr %a827 + store { ptr, i64, i64 } { ptr @.str.2907, i64 39, i64 0 }, ptr %a827 call void @finch_str_concat(ptr %a825, ptr %a826, ptr %a827) store { ptr, i64, i64 } %t824, ptr %a828 call void @finch_str_drop(ptr %a828) %t829 = load { ptr, i64, i64 }, ptr %a825 %t830 = load ptr, ptr %a1 %t831 = icmp eq ptr %t830, null - br i1 %t831, label %panic4562, label %ok4563 -panic4562: - call void @finch_panic(ptr @.str.2823, i64 2029, ptr @.str.2824) + br i1 %t831, label %panic4706, label %ok4707 +panic4706: + call void @finch_panic(ptr @.str.2908, i64 2110, ptr @.str.2909) unreachable -ok4563: - %t832 = getelementptr inbounds %S.gen.Gen, ptr %t830, i32 0, i32 32 +ok4707: + %t832 = getelementptr inbounds %S.gen.Gen, ptr %t830, i32 0, i32 33 %t833 = load i64, ptr %a49 %t834 = load { ptr, i64, i64 }, ptr %t832 %t835 = extractvalue { ptr, i64, i64 } %t834, 1 %t836 = icmp uge i64 %t833, %t835 - br i1 %t836, label %range4564, label %inrange4565 -range4564: - call void @finch_panic_index(ptr @.str.2825, i64 2029, i64 %t833, i64 %t835) + br i1 %t836, label %range4708, label %inrange4709 +range4708: + call void @finch_panic_index(ptr @.str.2910, i64 2110, i64 %t833, i64 %t835) unreachable -inrange4565: +inrange4709: %t837 = extractvalue { ptr, i64, i64 } %t834, 0 %t838 = getelementptr inbounds { ptr, i64, i64 }, ptr %t837, i64 %t833 %t839 = load { ptr, i64, i64 }, ptr %t838 store { ptr, i64, i64 } %t829, ptr %t838 store { ptr, i64, i64 } %t839, ptr %a840 call void @finch_str_drop(ptr %a840) - br label %endif4541 -endif4541: - br label %endif4521 -endif4521: - br label %endif4509 -endif4509: - br label %endif4494 -endif4494: - br label %endif4482 -endif4482: + br label %endif4685 +endif4685: + br label %endif4665 +endif4665: + br label %endif4653 +endif4653: + br label %endif4638 +endif4638: + br label %endif4626 +endif4626: %t841 = load i64, ptr %a49 call void @finch_str_drop(ptr %a27) call void @finch_str_drop(ptr %a8) ret i64 %t841 -endif4463: - br label %endif4457 -endif4457: - br label %endif4454 -endif4454: - br label %endif4451 -endif4451: - br label %endif4448 -endif4448: - br label %endif4445 -endif4445: - br label %endif4442 -endif4442: +endif4607: + br label %endif4601 +endif4601: + br label %endif4598 +endif4598: + br label %endif4595 +endif4595: + br label %endif4592 +endif4592: + br label %endif4589 +endif4589: + br label %endif4586 +endif4586: %t842 = load i64, ptr %a49 %t843 = load ptr, ptr %a1 %t844 = icmp eq ptr %t843, null - br i1 %t844, label %panic4566, label %ok4567 -panic4566: - call void @finch_panic(ptr @.str.2826, i64 2033, ptr @.str.2827) + br i1 %t844, label %panic4710, label %ok4711 +panic4710: + call void @finch_panic(ptr @.str.2911, i64 2114, ptr @.str.2912) unreachable -ok4567: - %t845 = getelementptr inbounds %S.gen.Gen, ptr %t843, i32 0, i32 33 +ok4711: + %t845 = getelementptr inbounds %S.gen.Gen, ptr %t843, i32 0, i32 34 %t846 = load { ptr, i64, i64 }, ptr %a27 store { ptr, i64, i64 } %t846, ptr %a847 store i32 0, ptr %a848 @@ -46668,14 +48316,14 @@ ok4567: %t852 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t851, i64 %t849 %t853 = load i32, ptr %a848 %t854 = icmp ne i32 %t853, 0 - br i1 %t854, label %map.new4568, label %map.have4569 -map.new4568: + br i1 %t854, label %map.new4712, label %map.have4713 +map.new4712: %t855 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t852, i32 0, i32 1 call void @finch_str_copy(ptr %t855, ptr %a847) %t856 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t852, i32 0, i32 2 store i64 0, ptr %t856 - br label %map.have4569 -map.have4569: + br label %map.have4713 +map.have4713: %t857 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t852, i32 0, i32 2 store i64 %t842, ptr %t857 %t858 = load i64, ptr %a49 @@ -46753,35 +48401,35 @@ entry: store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 %t3 = icmp eq ptr %t2, null - br i1 %t3, label %panic4570, label %ok4571 -panic4570: - call void @finch_panic(ptr @.str.2829, i64 2038, ptr @.str.2830) + br i1 %t3, label %panic4714, label %ok4715 +panic4714: + call void @finch_panic(ptr @.str.2914, i64 2119, ptr @.str.2915) unreachable -ok4571: - %t4 = getelementptr inbounds %S.gen.Gen, ptr %t2, i32 0, i32 36 +ok4715: + %t4 = getelementptr inbounds %S.gen.Gen, ptr %t2, i32 0, i32 37 %t5 = load i64, ptr %t4 call void @finch_str_from_int(ptr %a6, i64 %t5) %t7 = load { ptr, i64, i64 }, ptr %a6 - store { ptr, i64, i64 } { ptr @.str.2828, i64 2, i64 0 }, ptr %a9 + store { ptr, i64, i64 } { ptr @.str.2913, i64 2, i64 0 }, ptr %a9 store { ptr, i64, i64 } %t7, ptr %a10 call void @finch_str_concat(ptr %a8, ptr %a9, ptr %a10) store { ptr, i64, i64 } %t7, ptr %a11 call void @finch_str_drop(ptr %a11) %t12 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t12, ptr %a14 - store { ptr, i64, i64 } { ptr @.str.2831, i64 1, i64 0 }, ptr %a15 + store { ptr, i64, i64 } { ptr @.str.2916, i64 1, i64 0 }, ptr %a15 call void @finch_str_concat(ptr %a13, ptr %a14, ptr %a15) store { ptr, i64, i64 } %t12, ptr %a16 call void @finch_str_drop(ptr %a16) %t17 = load { ptr, i64, i64 }, ptr %a13 %t18 = load ptr, ptr %a1 %t19 = icmp eq ptr %t18, null - br i1 %t19, label %panic4572, label %ok4573 -panic4572: - call void @finch_panic(ptr @.str.2832, i64 2038, ptr @.str.2833) + br i1 %t19, label %panic4716, label %ok4717 +panic4716: + call void @finch_panic(ptr @.str.2917, i64 2119, ptr @.str.2918) unreachable -ok4573: - %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 37 +ok4717: + %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 38 %t21 = load i64, ptr %t20 call void @finch_str_from_int(ptr %a22, i64 %t21) %t23 = load { ptr, i64, i64 }, ptr %a22 @@ -46794,19 +48442,19 @@ ok4573: call void @finch_str_drop(ptr %a28) %t29 = load { ptr, i64, i64 }, ptr %a24 store { ptr, i64, i64 } %t29, ptr %a31 - store { ptr, i64, i64 } { ptr @.str.2834, i64 1, i64 0 }, ptr %a32 + store { ptr, i64, i64 } { ptr @.str.2919, i64 1, i64 0 }, ptr %a32 call void @finch_str_concat(ptr %a30, ptr %a31, ptr %a32) store { ptr, i64, i64 } %t29, ptr %a33 call void @finch_str_drop(ptr %a33) %t34 = load { ptr, i64, i64 }, ptr %a30 %t35 = load ptr, ptr %a1 %t36 = icmp eq ptr %t35, null - br i1 %t36, label %panic4574, label %ok4575 -panic4574: - call void @finch_panic(ptr @.str.2835, i64 2038, ptr @.str.2836) + br i1 %t36, label %panic4718, label %ok4719 +panic4718: + call void @finch_panic(ptr @.str.2920, i64 2119, ptr @.str.2921) unreachable -ok4575: - %t37 = getelementptr inbounds %S.gen.Gen, ptr %t35, i32 0, i32 35 +ok4719: + %t37 = getelementptr inbounds %S.gen.Gen, ptr %t35, i32 0, i32 36 %t38 = load i64, ptr %t37 call void @finch_str_from_int(ptr %a39, i64 %t38) %t40 = load { ptr, i64, i64 }, ptr %a39 @@ -46821,38 +48469,38 @@ ok4575: store { ptr, i64, i64 } %t46, ptr %a47 %t48 = load ptr, ptr %a1 %t49 = icmp eq ptr %t48, null - br i1 %t49, label %panic4576, label %ok4577 -panic4576: - call void @finch_panic(ptr @.str.2837, i64 2039, ptr @.str.2838) + br i1 %t49, label %panic4720, label %ok4721 +panic4720: + call void @finch_panic(ptr @.str.2922, i64 2120, ptr @.str.2923) unreachable -ok4577: - %t50 = getelementptr inbounds %S.gen.Gen, ptr %t48, i32 0, i32 33 +ok4721: + %t50 = getelementptr inbounds %S.gen.Gen, ptr %t48, i32 0, i32 34 %t51 = load { ptr, i64, i64 }, ptr %a47 store { ptr, i64, i64 } %t51, ptr %a52 %t53 = call i64 @finch_map_find(ptr %t50, ptr %a52, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, i64 }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t54 = icmp sge i64 %t53, 0 - br i1 %t54, label %then4578, label %endif4580 -then4578: + br i1 %t54, label %then4722, label %endif4724 +then4722: %t55 = load ptr, ptr %a1 %t56 = icmp eq ptr %t55, null - br i1 %t56, label %panic4581, label %ok4582 -panic4581: - call void @finch_panic(ptr @.str.2839, i64 2040, ptr @.str.2840) + br i1 %t56, label %panic4725, label %ok4726 +panic4725: + call void @finch_panic(ptr @.str.2924, i64 2121, ptr @.str.2925) unreachable -ok4582: - %t57 = getelementptr inbounds %S.gen.Gen, ptr %t55, i32 0, i32 33 +ok4726: + %t57 = getelementptr inbounds %S.gen.Gen, ptr %t55, i32 0, i32 34 %t58 = load { ptr, i64, i64 }, ptr %a47 store { ptr, i64, i64 } %t58, ptr %a59 %t60 = call i64 @finch_map_find(ptr %t57, ptr %a59, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, i64 }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t61 = icmp slt i64 %t60, 0 - br i1 %t61, label %map.missing4583, label %map.found4584 -map.missing4583: + br i1 %t61, label %map.missing4727, label %map.found4728 +map.missing4727: store { ptr, i64, i64 } zeroinitializer, ptr %a62 store { ptr, i64, i64 } %t58, ptr %a63 call void @finch_buf_str(ptr %a62, ptr %a63, i32 1) - call void @finch_map_missing(ptr @.str.2841, i64 2040, ptr %a62) + call void @finch_map_missing(ptr @.str.2926, i64 2121, ptr %a62) unreachable -map.found4584: +map.found4728: %t64 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t57, i32 0, i32 0 %t65 = load ptr, ptr %t64 %t66 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t65, i64 %t60 @@ -46860,39 +48508,39 @@ map.found4584: %t68 = load i64, ptr %t67 call void @finch_str_drop(ptr %a47) ret i64 %t68 -endif4580: +endif4724: %t69 = load ptr, ptr %a1 %t70 = load ptr, ptr %a1 %t71 = icmp eq ptr %t70, null - br i1 %t71, label %panic4585, label %ok4586 -panic4585: - call void @finch_panic(ptr @.str.2843, i64 2042, ptr @.str.2844) + br i1 %t71, label %panic4729, label %ok4730 +panic4729: + call void @finch_panic(ptr @.str.2928, i64 2123, ptr @.str.2929) unreachable -ok4586: - %t72 = getelementptr inbounds %S.gen.Gen, ptr %t70, i32 0, i32 36 +ok4730: + %t72 = getelementptr inbounds %S.gen.Gen, ptr %t70, i32 0, i32 37 %t73 = load i64, ptr %t72 call void @finch_str_from_int(ptr %a74, i64 %t73) %t75 = load { ptr, i64, i64 }, ptr %a74 - store { ptr, i64, i64 } { ptr @.str.2842, i64 18, i64 0 }, ptr %a77 + store { ptr, i64, i64 } { ptr @.str.2927, i64 18, i64 0 }, ptr %a77 store { ptr, i64, i64 } %t75, ptr %a78 call void @finch_str_concat(ptr %a76, ptr %a77, ptr %a78) store { ptr, i64, i64 } %t75, ptr %a79 call void @finch_str_drop(ptr %a79) %t80 = load { ptr, i64, i64 }, ptr %a76 store { ptr, i64, i64 } %t80, ptr %a82 - store { ptr, i64, i64 } { ptr @.str.2845, i64 10, i64 0 }, ptr %a83 + store { ptr, i64, i64 } { ptr @.str.2930, i64 10, i64 0 }, ptr %a83 call void @finch_str_concat(ptr %a81, ptr %a82, ptr %a83) store { ptr, i64, i64 } %t80, ptr %a84 call void @finch_str_drop(ptr %a84) %t85 = load { ptr, i64, i64 }, ptr %a81 %t86 = load ptr, ptr %a1 %t87 = icmp eq ptr %t86, null - br i1 %t87, label %panic4587, label %ok4588 -panic4587: - call void @finch_panic(ptr @.str.2846, i64 2042, ptr @.str.2847) + br i1 %t87, label %panic4731, label %ok4732 +panic4731: + call void @finch_panic(ptr @.str.2931, i64 2123, ptr @.str.2932) unreachable -ok4588: - %t88 = getelementptr inbounds %S.gen.Gen, ptr %t86, i32 0, i32 37 +ok4732: + %t88 = getelementptr inbounds %S.gen.Gen, ptr %t86, i32 0, i32 38 %t89 = load i64, ptr %t88 call void @finch_str_from_int(ptr %a90, i64 %t89) %t91 = load { ptr, i64, i64 }, ptr %a90 @@ -46905,19 +48553,19 @@ ok4588: call void @finch_str_drop(ptr %a96) %t97 = load { ptr, i64, i64 }, ptr %a92 store { ptr, i64, i64 } %t97, ptr %a99 - store { ptr, i64, i64 } { ptr @.str.2848, i64 10, i64 0 }, ptr %a100 + store { ptr, i64, i64 } { ptr @.str.2933, i64 10, i64 0 }, ptr %a100 call void @finch_str_concat(ptr %a98, ptr %a99, ptr %a100) store { ptr, i64, i64 } %t97, ptr %a101 call void @finch_str_drop(ptr %a101) %t102 = load { ptr, i64, i64 }, ptr %a98 %t103 = load ptr, ptr %a1 %t104 = icmp eq ptr %t103, null - br i1 %t104, label %panic4589, label %ok4590 -panic4589: - call void @finch_panic(ptr @.str.2849, i64 2042, ptr @.str.2850) + br i1 %t104, label %panic4733, label %ok4734 +panic4733: + call void @finch_panic(ptr @.str.2934, i64 2123, ptr @.str.2935) unreachable -ok4590: - %t105 = getelementptr inbounds %S.gen.Gen, ptr %t103, i32 0, i32 35 +ok4734: + %t105 = getelementptr inbounds %S.gen.Gen, ptr %t103, i32 0, i32 36 %t106 = load i64, ptr %t105 call void @finch_str_from_int(ptr %a107, i64 %t106) %t108 = load { ptr, i64, i64 }, ptr %a107 @@ -46930,7 +48578,7 @@ ok4590: call void @finch_str_drop(ptr %a113) %t114 = load { ptr, i64, i64 }, ptr %a109 store { ptr, i64, i64 } %t114, ptr %a116 - store { ptr, i64, i64 } { ptr @.str.2851, i64 1, i64 0 }, ptr %a117 + store { ptr, i64, i64 } { ptr @.str.2936, i64 1, i64 0 }, ptr %a117 call void @finch_str_concat(ptr %a115, ptr %a116, ptr %a117) store { ptr, i64, i64 } %t114, ptr %a118 call void @finch_str_drop(ptr %a118) @@ -46942,12 +48590,12 @@ ok4590: %t123 = load i64, ptr %a122 %t124 = load ptr, ptr %a1 %t125 = icmp eq ptr %t124, null - br i1 %t125, label %panic4591, label %ok4592 -panic4591: - call void @finch_panic(ptr @.str.2852, i64 2043, ptr @.str.2853) + br i1 %t125, label %panic4735, label %ok4736 +panic4735: + call void @finch_panic(ptr @.str.2937, i64 2124, ptr @.str.2938) unreachable -ok4592: - %t126 = getelementptr inbounds %S.gen.Gen, ptr %t124, i32 0, i32 33 +ok4736: + %t126 = getelementptr inbounds %S.gen.Gen, ptr %t124, i32 0, i32 34 %t127 = load { ptr, i64, i64 }, ptr %a47 store { ptr, i64, i64 } %t127, ptr %a128 store i32 0, ptr %a129 @@ -46957,14 +48605,14 @@ ok4592: %t133 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t132, i64 %t130 %t134 = load i32, ptr %a129 %t135 = icmp ne i32 %t134, 0 - br i1 %t135, label %map.new4593, label %map.have4594 -map.new4593: + br i1 %t135, label %map.new4737, label %map.have4738 +map.new4737: %t136 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t133, i32 0, i32 1 call void @finch_str_copy(ptr %t136, ptr %a128) %t137 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t133, i32 0, i32 2 store i64 0, ptr %t137 - br label %map.have4594 -map.have4594: + br label %map.have4738 +map.have4738: %t138 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t133, i32 0, i32 2 store i64 %t123, ptr %t138 %t139 = load i64, ptr %a122 @@ -47068,11 +48716,11 @@ entry: store %S.ast.Node %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic4595, label %ok4596 -panic4595: - call void @finch_panic(ptr @.str.2854, i64 2048, ptr @.str.2855) + br i1 %t4, label %panic4739, label %ok4740 +panic4739: + call void @finch_panic(ptr @.str.2939, i64 2129, ptr @.str.2940) unreachable -ok4596: +ok4740: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 13 %t6 = load %S.gen.FnSig, ptr %t5 store %S.gen.FnSig %t6, ptr %a7 @@ -47097,28 +48745,28 @@ ok4596: %t23 = getelementptr inbounds { ptr, i64, i64 }, ptr %t22, i32 0, i32 1 %t24 = load i64, ptr %t23 %t25 = icmp sgt i64 %t24, 0 - br i1 %t25, label %then4597, label %endif4599 -then4597: + br i1 %t25, label %then4741, label %endif4743 +then4741: %t26 = getelementptr inbounds { ptr, i64, i64 }, ptr %a11, i32 0, i32 1 %t27 = load i64, ptr %t26 %t28 = add i64 %t27, 1 call void @finch_arr_reserve(ptr %a11, i64 %t28, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t29 = load ptr, ptr %a11 %t30 = getelementptr inbounds { ptr, i64, i64 }, ptr %t29, i64 %t27 - store { ptr, i64, i64 } { ptr @.str.2856, i64 4, i64 0 }, ptr %t30 + store { ptr, i64, i64 } { ptr @.str.2941, i64 4, i64 0 }, ptr %t30 store i64 %t28, ptr %t26 - br label %endif4599 -endif4599: + br label %endif4743 +endif4743: %t31 = getelementptr inbounds %S.gen.FnSig, ptr %a10, i32 0, i32 13 store i64 0, ptr %a32 - br label %each.cond4600 -each.cond4600: + br label %each.cond4744 +each.cond4744: %t33 = getelementptr inbounds { ptr, i64, i64 }, ptr %t31, i32 0, i32 1 %t34 = load i64, ptr %t33 %t35 = load i64, ptr %a32 %t36 = icmp slt i64 %t35, %t34 - br i1 %t36, label %each.body4601, label %each.end4603 -each.body4601: + br i1 %t36, label %each.body4745, label %each.end4747 +each.body4745: %t37 = load ptr, ptr %t31 %t38 = getelementptr inbounds %S.ast.Type, ptr %t37, i64 %t35 %t39 = load %S.ast.Type, ptr %t38 @@ -47135,48 +48783,48 @@ each.body4601: %t49 = getelementptr inbounds { ptr, i64, i64 }, ptr %t48, i64 %t46 store { ptr, i64, i64 } %t45, ptr %t49 store i64 %t47, ptr %t41 - br label %each.step4602 -each.step4602: + br label %each.step4746 +each.step4746: %t50 = load i64, ptr %a32 %t51 = add i64 %t50, 1 store i64 %t51, ptr %a32 - br label %each.cond4600 -each.end4603: + br label %each.cond4744 +each.end4747: %t52 = load ptr, ptr %a1 %t53 = icmp eq ptr %t52, null - br i1 %t53, label %panic4604, label %ok4605 -panic4604: - call void @finch_panic(ptr @.str.2857, i64 2057, ptr @.str.2858) + br i1 %t53, label %panic4748, label %ok4749 +panic4748: + call void @finch_panic(ptr @.str.2942, i64 2138, ptr @.str.2943) unreachable -ok4605: - %t54 = getelementptr inbounds %S.gen.Gen, ptr %t52, i32 0, i32 34 +ok4749: + %t54 = getelementptr inbounds %S.gen.Gen, ptr %t52, i32 0, i32 35 %t55 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 13 %t56 = load i64, ptr %t55 %t57 = load { ptr, i64, i64 }, ptr %t54 %t58 = extractvalue { ptr, i64, i64 } %t57, 1 %t59 = icmp uge i64 %t56, %t58 - br i1 %t59, label %range4606, label %inrange4607 -range4606: - call void @finch_panic_index(ptr @.str.2859, i64 2057, i64 %t56, i64 %t58) + br i1 %t59, label %range4750, label %inrange4751 +range4750: + call void @finch_panic_index(ptr @.str.2944, i64 2138, i64 %t56, i64 %t58) unreachable -inrange4607: +inrange4751: %t60 = extractvalue { ptr, i64, i64 } %t57, 0 %t61 = getelementptr inbounds i64, ptr %t60, i64 %t56 %t62 = load i64, ptr %t61 store i64 %t62, ptr %a63 %t64 = load ptr, ptr %a1 %t65 = getelementptr inbounds { ptr, i64, i64 }, ptr %a11, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.2861, i64 2, i64 0 }, ptr %a66 + store { ptr, i64, i64 } { ptr @.str.2946, i64 2, i64 0 }, ptr %a66 call void @finch_str_join(ptr %a67, ptr %a11, ptr %a66) %t68 = load { ptr, i64, i64 }, ptr %a67 - store { ptr, i64, i64 } { ptr @.str.2860, i64 27, i64 0 }, ptr %a70 + store { ptr, i64, i64 } { ptr @.str.2945, i64 27, i64 0 }, ptr %a70 store { ptr, i64, i64 } %t68, ptr %a71 call void @finch_str_concat(ptr %a69, ptr %a70, ptr %a71) store { ptr, i64, i64 } %t68, ptr %a72 call void @finch_str_drop(ptr %a72) %t73 = load { ptr, i64, i64 }, ptr %a69 store { ptr, i64, i64 } %t73, ptr %a75 - store { ptr, i64, i64 } { ptr @.str.2862, i64 2, i64 0 }, ptr %a76 + store { ptr, i64, i64 } { ptr @.str.2947, i64 2, i64 0 }, ptr %a76 call void @finch_str_concat(ptr %a74, ptr %a75, ptr %a76) store { ptr, i64, i64 } %t73, ptr %a77 call void @finch_str_drop(ptr %a77) @@ -47188,12 +48836,12 @@ inrange4607: %t82 = load ptr, ptr %a1 %t83 = getelementptr inbounds %S.gen.FnSig, ptr %a10, i32 0, i32 1 %t84 = load { ptr, i64, i64 }, ptr %t83 - store { ptr, i64, i64 } { ptr @.str.2863, i64 30, i64 0 }, ptr %a86 + store { ptr, i64, i64 } { ptr @.str.2948, i64 30, i64 0 }, ptr %a86 store { ptr, i64, i64 } %t84, ptr %a87 call void @finch_str_concat(ptr %a85, ptr %a86, ptr %a87) %t88 = load { ptr, i64, i64 }, ptr %a85 store { ptr, i64, i64 } %t88, ptr %a90 - store { ptr, i64, i64 } { ptr @.str.2864, i64 17, i64 0 }, ptr %a91 + store { ptr, i64, i64 } { ptr @.str.2949, i64 17, i64 0 }, ptr %a91 call void @finch_str_concat(ptr %a89, ptr %a90, ptr %a91) store { ptr, i64, i64 } %t88, ptr %a92 call void @finch_str_drop(ptr %a92) @@ -47204,7 +48852,7 @@ inrange4607: %t98 = getelementptr inbounds %S.gen.FnSig, ptr %a10, i32 0, i32 11 %t99 = getelementptr inbounds { ptr, i64, i64 }, ptr %t98, i32 0, i32 1 %t100 = load i64, ptr %t99 - call void @finch_str_sub(ptr %a97, ptr %a96, i64 1, i64 %t100, ptr @.str.2865, i64 2059) + call void @finch_str_sub(ptr %a97, ptr %a96, i64 1, i64 %t100, ptr @.str.2950, i64 2140) %t101 = load { ptr, i64, i64 }, ptr %a97 store { ptr, i64, i64 } %t93, ptr %a103 store { ptr, i64, i64 } %t101, ptr %a104 @@ -47215,7 +48863,7 @@ inrange4607: call void @finch_str_drop(ptr %a106) %t107 = load { ptr, i64, i64 }, ptr %a102 store { ptr, i64, i64 } %t107, ptr %a109 - store { ptr, i64, i64 } { ptr @.str.2866, i64 11, i64 0 }, ptr %a110 + store { ptr, i64, i64 } { ptr @.str.2951, i64 11, i64 0 }, ptr %a110 call void @finch_str_concat(ptr %a108, ptr %a109, ptr %a110) store { ptr, i64, i64 } %t107, ptr %a111 call void @finch_str_drop(ptr %a111) @@ -47232,7 +48880,7 @@ inrange4607: call void @finch_str_drop(ptr %a120) %t121 = load { ptr, i64, i64 }, ptr %a116 store { ptr, i64, i64 } %t121, ptr %a123 - store { ptr, i64, i64 } { ptr @.str.2867, i64 9, i64 0 }, ptr %a124 + store { ptr, i64, i64 } { ptr @.str.2952, i64 9, i64 0 }, ptr %a124 call void @finch_str_concat(ptr %a122, ptr %a123, ptr %a124) store { ptr, i64, i64 } %t121, ptr %a125 call void @finch_str_drop(ptr %a125) @@ -47249,7 +48897,7 @@ inrange4607: call void @finch_str_drop(ptr %a134) %t135 = load { ptr, i64, i64 }, ptr %a130 store { ptr, i64, i64 } %t135, ptr %a137 - store { ptr, i64, i64 } { ptr @.str.2868, i64 8, i64 0 }, ptr %a138 + store { ptr, i64, i64 } { ptr @.str.2953, i64 8, i64 0 }, ptr %a138 call void @finch_str_concat(ptr %a136, ptr %a137, ptr %a138) store { ptr, i64, i64 } %t135, ptr %a139 call void @finch_str_drop(ptr %a139) @@ -47267,7 +48915,7 @@ inrange4607: call void @finch_str_drop(ptr %a149) %t150 = load { ptr, i64, i64 }, ptr %a145 store { ptr, i64, i64 } %t150, ptr %a152 - store { ptr, i64, i64 } { ptr @.str.2869, i64 9, i64 0 }, ptr %a153 + store { ptr, i64, i64 } { ptr @.str.2954, i64 9, i64 0 }, ptr %a153 call void @finch_str_concat(ptr %a151, ptr %a152, ptr %a153) store { ptr, i64, i64 } %t150, ptr %a154 call void @finch_str_drop(ptr %a154) @@ -47284,7 +48932,7 @@ inrange4607: call void @finch_str_drop(ptr %a163) %t164 = load { ptr, i64, i64 }, ptr %a159 store { ptr, i64, i64 } %t164, ptr %a166 - store { ptr, i64, i64 } { ptr @.str.2870, i64 13, i64 0 }, ptr %a167 + store { ptr, i64, i64 } { ptr @.str.2955, i64 13, i64 0 }, ptr %a167 call void @finch_str_concat(ptr %a165, ptr %a166, ptr %a167) store { ptr, i64, i64 } %t164, ptr %a168 call void @finch_str_drop(ptr %a168) @@ -47302,7 +48950,7 @@ inrange4607: call void @finch_str_drop(ptr %a178) %t179 = load { ptr, i64, i64 }, ptr %a174 store { ptr, i64, i64 } %t179, ptr %a181 - store { ptr, i64, i64 } { ptr @.str.2871, i64 87, i64 0 }, ptr %a182 + store { ptr, i64, i64 } { ptr @.str.2956, i64 87, i64 0 }, ptr %a182 call void @finch_str_concat(ptr %a180, ptr %a181, ptr %a182) store { ptr, i64, i64 } %t179, ptr %a183 call void @finch_str_drop(ptr %a183) @@ -47408,72 +49056,72 @@ entry: store { ptr, i64, i64 } %p4, ptr %a5 %t6 = load ptr, ptr %a1 %t7 = icmp eq ptr %t6, null - br i1 %t7, label %panic4608, label %ok4609 -panic4608: - call void @finch_panic(ptr @.str.2872, i64 2063, ptr @.str.2873) + br i1 %t7, label %panic4752, label %ok4753 +panic4752: + call void @finch_panic(ptr @.str.2957, i64 2144, ptr @.str.2958) unreachable -ok4609: - %t8 = getelementptr inbounds %S.gen.Gen, ptr %t6, i32 0, i32 29 +ok4753: + %t8 = getelementptr inbounds %S.gen.Gen, ptr %t6, i32 0, i32 30 %t9 = load i1, ptr %t8 %t10 = xor i1 %t9, true - br label %logic.from4610 -logic.from4610: - br i1 %t10, label %logic.end4612, label %logic.rhs4611 -logic.rhs4611: + br label %logic.from4754 +logic.from4754: + br i1 %t10, label %logic.end4756, label %logic.rhs4755 +logic.rhs4755: %t11 = load ptr, ptr %a1 %t12 = icmp eq ptr %t11, null - br i1 %t12, label %panic4613, label %ok4614 -panic4613: - call void @finch_panic(ptr @.str.2874, i64 2063, ptr @.str.2875) + br i1 %t12, label %panic4757, label %ok4758 +panic4757: + call void @finch_panic(ptr @.str.2959, i64 2144, ptr @.str.2960) unreachable -ok4614: - %t13 = getelementptr inbounds %S.gen.Gen, ptr %t11, i32 0, i32 35 +ok4758: + %t13 = getelementptr inbounds %S.gen.Gen, ptr %t11, i32 0, i32 36 %t14 = load i64, ptr %t13 %t15 = icmp slt i64 %t14, 0 - br label %logic.rend4615 -logic.rend4615: - br label %logic.end4612 -logic.end4612: - %t16 = phi i1 [ true, %logic.from4610 ], [ %t15, %logic.rend4615 ] - br i1 %t16, label %then4616, label %endif4618 -then4616: + br label %logic.rend4759 +logic.rend4759: + br label %logic.end4756 +logic.end4756: + %t16 = phi i1 [ true, %logic.from4754 ], [ %t15, %logic.rend4759 ] + br i1 %t16, label %then4760, label %endif4762 +then4760: ret void -endif4618: +endif4762: %t17 = load ptr, ptr %a1 %t18 = load %S.ast.Type, ptr %a4 %t19 = call i64 @finch.gen.diType(ptr %t17, %S.ast.Type %t18) store i64 %t19, ptr %a20 %t21 = load i64, ptr %a20 %t22 = icmp slt i64 %t21, 0 - br i1 %t22, label %then4619, label %endif4621 -then4619: + br i1 %t22, label %then4763, label %endif4765 +then4763: ret void -endif4621: - store { ptr, i64, i64 } { ptr @.str.2876, i64 0, i64 0 }, ptr %a23 +endif4765: + store { ptr, i64, i64 } { ptr @.str.2961, i64 0, i64 0 }, ptr %a23 %t24 = load ptr, ptr %a1 %t25 = icmp eq ptr %t24, null - br i1 %t25, label %panic4622, label %ok4623 -panic4622: - call void @finch_panic(ptr @.str.2877, i64 2071, ptr @.str.2878) + br i1 %t25, label %panic4766, label %ok4767 +panic4766: + call void @finch_panic(ptr @.str.2962, i64 2152, ptr @.str.2963) unreachable -ok4623: - %t26 = getelementptr inbounds %S.gen.Gen, ptr %t24, i32 0, i32 38 +ok4767: + %t26 = getelementptr inbounds %S.gen.Gen, ptr %t24, i32 0, i32 39 %t27 = load i64, ptr %t26 %t28 = icmp sgt i64 %t27, 0 - br i1 %t28, label %then4624, label %endif4626 -then4624: + br i1 %t28, label %then4768, label %endif4770 +then4768: %t29 = load ptr, ptr %a1 %t30 = icmp eq ptr %t29, null - br i1 %t30, label %panic4627, label %ok4628 -panic4627: - call void @finch_panic(ptr @.str.2880, i64 2072, ptr @.str.2881) + br i1 %t30, label %panic4771, label %ok4772 +panic4771: + call void @finch_panic(ptr @.str.2965, i64 2153, ptr @.str.2966) unreachable -ok4628: - %t31 = getelementptr inbounds %S.gen.Gen, ptr %t29, i32 0, i32 38 +ok4772: + %t31 = getelementptr inbounds %S.gen.Gen, ptr %t29, i32 0, i32 39 %t32 = load i64, ptr %t31 call void @finch_str_from_int(ptr %a33, i64 %t32) %t34 = load { ptr, i64, i64 }, ptr %a33 - store { ptr, i64, i64 } { ptr @.str.2879, i64 7, i64 0 }, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.2964, i64 7, i64 0 }, ptr %a36 store { ptr, i64, i64 } %t34, ptr %a37 call void @finch_str_concat(ptr %a35, ptr %a36, ptr %a37) store { ptr, i64, i64 } %t34, ptr %a38 @@ -47483,28 +49131,28 @@ ok4628: store { ptr, i64, i64 } %t39, ptr %a23 store { ptr, i64, i64 } %t40, ptr %a41 call void @finch_str_drop(ptr %a41) - br label %endif4626 -endif4626: + br label %endif4770 +endif4770: %t42 = load ptr, ptr %a1 %t43 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.2882, i64 24, i64 0 }, ptr %a45 + store { ptr, i64, i64 } { ptr @.str.2967, i64 24, i64 0 }, ptr %a45 store { ptr, i64, i64 } %t43, ptr %a46 call void @finch_str_concat(ptr %a44, ptr %a45, ptr %a46) %t47 = load { ptr, i64, i64 }, ptr %a44 store { ptr, i64, i64 } %t47, ptr %a49 - store { ptr, i64, i64 } { ptr @.str.2883, i64 11, i64 0 }, ptr %a50 + store { ptr, i64, i64 } { ptr @.str.2968, i64 11, i64 0 }, ptr %a50 call void @finch_str_concat(ptr %a48, ptr %a49, ptr %a50) store { ptr, i64, i64 } %t47, ptr %a51 call void @finch_str_drop(ptr %a51) %t52 = load { ptr, i64, i64 }, ptr %a48 %t53 = load ptr, ptr %a1 %t54 = icmp eq ptr %t53, null - br i1 %t54, label %panic4629, label %ok4630 -panic4629: - call void @finch_panic(ptr @.str.2884, i64 2074, ptr @.str.2885) + br i1 %t54, label %panic4773, label %ok4774 +panic4773: + call void @finch_panic(ptr @.str.2969, i64 2155, ptr @.str.2970) unreachable -ok4630: - %t55 = getelementptr inbounds %S.gen.Gen, ptr %t53, i32 0, i32 35 +ok4774: + %t55 = getelementptr inbounds %S.gen.Gen, ptr %t53, i32 0, i32 36 %t56 = load i64, ptr %t55 call void @finch_str_from_int(ptr %a57, i64 %t56) %t58 = load { ptr, i64, i64 }, ptr %a57 @@ -47517,29 +49165,29 @@ ok4630: call void @finch_str_drop(ptr %a63) %t64 = load { ptr, i64, i64 }, ptr %a59 store { ptr, i64, i64 } %t64, ptr %a66 - store { ptr, i64, i64 } { ptr @.str.2886, i64 9, i64 0 }, ptr %a67 + store { ptr, i64, i64 } { ptr @.str.2971, i64 9, i64 0 }, ptr %a67 call void @finch_str_concat(ptr %a65, ptr %a66, ptr %a67) store { ptr, i64, i64 } %t64, ptr %a68 call void @finch_str_drop(ptr %a68) %t69 = load { ptr, i64, i64 }, ptr %a65 %t70 = load ptr, ptr %a1 %t71 = icmp eq ptr %t70, null - br i1 %t71, label %panic4631, label %ok4632 -panic4631: - call void @finch_panic(ptr @.str.2887, i64 2074, ptr @.str.2888) + br i1 %t71, label %panic4775, label %ok4776 +panic4775: + call void @finch_panic(ptr @.str.2972, i64 2155, ptr @.str.2973) unreachable -ok4632: - %t72 = getelementptr inbounds %S.gen.Gen, ptr %t70, i32 0, i32 34 +ok4776: + %t72 = getelementptr inbounds %S.gen.Gen, ptr %t70, i32 0, i32 35 %t73 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 13 %t74 = load i64, ptr %t73 %t75 = load { ptr, i64, i64 }, ptr %t72 %t76 = extractvalue { ptr, i64, i64 } %t75, 1 %t77 = icmp uge i64 %t74, %t76 - br i1 %t77, label %range4633, label %inrange4634 -range4633: - call void @finch_panic_index(ptr @.str.2889, i64 2074, i64 %t74, i64 %t76) + br i1 %t77, label %range4777, label %inrange4778 +range4777: + call void @finch_panic_index(ptr @.str.2974, i64 2155, i64 %t74, i64 %t76) unreachable -inrange4634: +inrange4778: %t78 = extractvalue { ptr, i64, i64 } %t75, 0 %t79 = getelementptr inbounds i64, ptr %t78, i64 %t74 %t80 = load i64, ptr %t79 @@ -47554,7 +49202,7 @@ inrange4634: call void @finch_str_drop(ptr %a87) %t88 = load { ptr, i64, i64 }, ptr %a83 store { ptr, i64, i64 } %t88, ptr %a90 - store { ptr, i64, i64 } { ptr @.str.2890, i64 8, i64 0 }, ptr %a91 + store { ptr, i64, i64 } { ptr @.str.2975, i64 8, i64 0 }, ptr %a91 call void @finch_str_concat(ptr %a89, ptr %a90, ptr %a91) store { ptr, i64, i64 } %t88, ptr %a92 call void @finch_str_drop(ptr %a92) @@ -47572,7 +49220,7 @@ inrange4634: call void @finch_str_drop(ptr %a102) %t103 = load { ptr, i64, i64 }, ptr %a98 store { ptr, i64, i64 } %t103, ptr %a105 - store { ptr, i64, i64 } { ptr @.str.2891, i64 9, i64 0 }, ptr %a106 + store { ptr, i64, i64 } { ptr @.str.2976, i64 9, i64 0 }, ptr %a106 call void @finch_str_concat(ptr %a104, ptr %a105, ptr %a106) store { ptr, i64, i64 } %t103, ptr %a107 call void @finch_str_drop(ptr %a107) @@ -47596,7 +49244,7 @@ inrange4634: call void @finch_str_drop(ptr %a122) %t123 = load { ptr, i64, i64 }, ptr %a119 store { ptr, i64, i64 } %t123, ptr %a125 - store { ptr, i64, i64 } { ptr @.str.2892, i64 1, i64 0 }, ptr %a126 + store { ptr, i64, i64 } { ptr @.str.2977, i64 1, i64 0 }, ptr %a126 call void @finch_str_concat(ptr %a124, ptr %a125, ptr %a126) store { ptr, i64, i64 } %t123, ptr %a127 call void @finch_str_drop(ptr %a127) @@ -47609,32 +49257,32 @@ inrange4634: %t133 = load i64, ptr %t132 %t134 = load ptr, ptr %a1 %t135 = icmp eq ptr %t134, null - br i1 %t135, label %panic4635, label %ok4636 -panic4635: - call void @finch_panic(ptr @.str.2893, i64 2075, ptr @.str.2894) + br i1 %t135, label %panic4779, label %ok4780 +panic4779: + call void @finch_panic(ptr @.str.2978, i64 2156, ptr @.str.2979) unreachable -ok4636: - %t136 = getelementptr inbounds %S.gen.Gen, ptr %t134, i32 0, i32 36 +ok4780: + %t136 = getelementptr inbounds %S.gen.Gen, ptr %t134, i32 0, i32 37 store i64 %t133, ptr %t136 %t137 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 12 %t138 = load i64, ptr %t137 %t139 = load ptr, ptr %a1 %t140 = icmp eq ptr %t139, null - br i1 %t140, label %panic4637, label %ok4638 -panic4637: - call void @finch_panic(ptr @.str.2895, i64 2076, ptr @.str.2896) + br i1 %t140, label %panic4781, label %ok4782 +panic4781: + call void @finch_panic(ptr @.str.2980, i64 2157, ptr @.str.2981) unreachable -ok4638: - %t141 = getelementptr inbounds %S.gen.Gen, ptr %t139, i32 0, i32 37 +ok4782: + %t141 = getelementptr inbounds %S.gen.Gen, ptr %t139, i32 0, i32 38 store i64 %t138, ptr %t141 %t142 = load ptr, ptr %a1 %t143 = load { ptr, i64, i64 }, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.2897, i64 41, i64 0 }, ptr %a145 + store { ptr, i64, i64 } { ptr @.str.2982, i64 41, i64 0 }, ptr %a145 store { ptr, i64, i64 } %t143, ptr %a146 call void @finch_str_concat(ptr %a144, ptr %a145, ptr %a146) %t147 = load { ptr, i64, i64 }, ptr %a144 store { ptr, i64, i64 } %t147, ptr %a149 - store { ptr, i64, i64 } { ptr @.str.2898, i64 12, i64 0 }, ptr %a150 + store { ptr, i64, i64 } { ptr @.str.2983, i64 12, i64 0 }, ptr %a150 call void @finch_str_concat(ptr %a148, ptr %a149, ptr %a150) store { ptr, i64, i64 } %t147, ptr %a151 call void @finch_str_drop(ptr %a151) @@ -47651,7 +49299,7 @@ ok4638: call void @finch_str_drop(ptr %a160) %t161 = load { ptr, i64, i64 }, ptr %a156 store { ptr, i64, i64 } %t161, ptr %a163 - store { ptr, i64, i64 } { ptr @.str.2899, i64 27, i64 0 }, ptr %a164 + store { ptr, i64, i64 } { ptr @.str.2984, i64 27, i64 0 }, ptr %a164 call void @finch_str_concat(ptr %a162, ptr %a163, ptr %a164) store { ptr, i64, i64 } %t161, ptr %a165 call void @finch_str_drop(ptr %a165) @@ -47691,63 +49339,63 @@ entry: %t2 = mul i64 2, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t3 = call ptr @finch_alloc(i64 %t2) %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 0 - store { ptr, i64, i64 } { ptr @.str.2900, i64 20, i64 0 }, ptr %t4 + store { ptr, i64, i64 } { ptr @.str.2985, i64 20, i64 0 }, ptr %t4 %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 1 - store { ptr, i64, i64 } { ptr @.str.2901, i64 30, i64 0 }, ptr %t5 + store { ptr, i64, i64 } { ptr @.str.2986, i64 30, i64 0 }, ptr %t5 %t6 = insertvalue { ptr, i64, i64 } undef, ptr %t3, 0 %t7 = insertvalue { ptr, i64, i64 } %t6, i64 2, 1 %t8 = insertvalue { ptr, i64, i64 } %t7, i64 2, 2 store { ptr, i64, i64 } %t8, ptr %a9 %t10 = load ptr, ptr %a1 %t11 = icmp eq ptr %t10, null - br i1 %t11, label %panic4639, label %ok4640 -panic4639: - call void @finch_panic(ptr @.str.2902, i64 2083, ptr @.str.2903) + br i1 %t11, label %panic4783, label %ok4784 +panic4783: + call void @finch_panic(ptr @.str.2987, i64 2164, ptr @.str.2988) unreachable -ok4640: - %t12 = getelementptr inbounds %S.gen.Gen, ptr %t10, i32 0, i32 32 +ok4784: + %t12 = getelementptr inbounds %S.gen.Gen, ptr %t10, i32 0, i32 33 %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %t12, i32 0, i32 1 %t14 = load i64, ptr %t13 store i64 0, ptr %a15 - br label %for.cond4641 -for.cond4641: + br label %for.cond4785 +for.cond4785: %t16 = load i64, ptr %a15 %t17 = icmp slt i64 %t16, %t14 - br i1 %t17, label %for.body4642, label %for.end4644 -for.body4642: + br i1 %t17, label %for.body4786, label %for.end4788 +for.body4786: %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %a9, i32 0, i32 1 %t19 = load i64, ptr %a15 call void @finch_str_from_int(ptr %a20, i64 %t19) %t21 = load { ptr, i64, i64 }, ptr %a20 - store { ptr, i64, i64 } { ptr @.str.2904, i64 1, i64 0 }, ptr %a23 + store { ptr, i64, i64 } { ptr @.str.2989, i64 1, i64 0 }, ptr %a23 store { ptr, i64, i64 } %t21, ptr %a24 call void @finch_str_concat(ptr %a22, ptr %a23, ptr %a24) store { ptr, i64, i64 } %t21, ptr %a25 call void @finch_str_drop(ptr %a25) %t26 = load { ptr, i64, i64 }, ptr %a22 store { ptr, i64, i64 } %t26, ptr %a28 - store { ptr, i64, i64 } { ptr @.str.2905, i64 3, i64 0 }, ptr %a29 + store { ptr, i64, i64 } { ptr @.str.2990, i64 3, i64 0 }, ptr %a29 call void @finch_str_concat(ptr %a27, ptr %a28, ptr %a29) store { ptr, i64, i64 } %t26, ptr %a30 call void @finch_str_drop(ptr %a30) %t31 = load { ptr, i64, i64 }, ptr %a27 %t32 = load ptr, ptr %a1 %t33 = icmp eq ptr %t32, null - br i1 %t33, label %panic4645, label %ok4646 -panic4645: - call void @finch_panic(ptr @.str.2906, i64 2084, ptr @.str.2907) + br i1 %t33, label %panic4789, label %ok4790 +panic4789: + call void @finch_panic(ptr @.str.2991, i64 2165, ptr @.str.2992) unreachable -ok4646: - %t34 = getelementptr inbounds %S.gen.Gen, ptr %t32, i32 0, i32 32 +ok4790: + %t34 = getelementptr inbounds %S.gen.Gen, ptr %t32, i32 0, i32 33 %t35 = load i64, ptr %a15 %t36 = load { ptr, i64, i64 }, ptr %t34 %t37 = extractvalue { ptr, i64, i64 } %t36, 1 %t38 = icmp uge i64 %t35, %t37 - br i1 %t38, label %range4647, label %inrange4648 -range4647: - call void @finch_panic_index(ptr @.str.2908, i64 2084, i64 %t35, i64 %t37) + br i1 %t38, label %range4791, label %inrange4792 +range4791: + call void @finch_panic_index(ptr @.str.2993, i64 2165, i64 %t35, i64 %t37) unreachable -inrange4648: +inrange4792: %t39 = extractvalue { ptr, i64, i64 } %t36, 0 %t40 = getelementptr inbounds { ptr, i64, i64 }, ptr %t39, i64 %t35 %t41 = load { ptr, i64, i64 }, ptr %t40 @@ -47764,19 +49412,19 @@ inrange4648: %t50 = getelementptr inbounds { ptr, i64, i64 }, ptr %t49, i64 %t47 store { ptr, i64, i64 } %t46, ptr %t50 store i64 %t48, ptr %t18 - br label %for.step4643 -for.step4643: + br label %for.step4787 +for.step4787: %t51 = load i64, ptr %a15 %t52 = add i64 %t51, 1 store i64 %t52, ptr %a15 - br label %for.cond4641 -for.end4644: + br label %for.cond4785 +for.end4788: %t53 = getelementptr inbounds { ptr, i64, i64 }, ptr %a9, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.2909, i64 1, i64 0 }, ptr %a54 + store { ptr, i64, i64 } { ptr @.str.2994, i64 1, i64 0 }, ptr %a54 call void @finch_str_join(ptr %a55, ptr %a9, ptr %a54) %t56 = load { ptr, i64, i64 }, ptr %a55 store { ptr, i64, i64 } %t56, ptr %a58 - store { ptr, i64, i64 } { ptr @.str.2910, i64 1, i64 0 }, ptr %a59 + store { ptr, i64, i64 } { ptr @.str.2995, i64 1, i64 0 }, ptr %a59 call void @finch_str_concat(ptr %a57, ptr %a58, ptr %a59) store { ptr, i64, i64 } %t56, ptr %a60 call void @finch_str_drop(ptr %a60) @@ -47794,20 +49442,20 @@ entry: %t3 = getelementptr inbounds { ptr, i64, i64 }, ptr %src, i32 0, i32 1 %t4 = load i64, ptr %t3 store i64 0, ptr %a5 - br label %n.cond4720 -n.cond4720: + br label %n.cond4864 +n.cond4864: %t6 = load i64, ptr %a5 %t7 = icmp slt i64 %t6, %t4 - br i1 %t7, label %n.body4721, label %n.end4722 -n.body4721: + br i1 %t7, label %n.body4865, label %n.end4866 +n.body4865: %t8 = getelementptr inbounds %S.gen.Var, ptr %t1, i64 %t6 %t9 = getelementptr inbounds %S.gen.Var, ptr %t2, i64 %t6 call void @finch.copy.S_gen_Var(ptr %t8, ptr %t9) %t10 = load i64, ptr %a5 %t11 = add i64 %t10, 1 store i64 %t11, ptr %a5 - br label %n.cond4720 -n.end4722: + br label %n.cond4864 +n.end4866: ret void } @@ -47847,20 +49495,20 @@ entry: %t3 = getelementptr inbounds { ptr, i64, i64 }, ptr %src, i32 0, i32 1 %t4 = load i64, ptr %t3 store i64 0, ptr %a5 - br label %n.cond4717 -n.cond4717: + br label %n.cond4861 +n.cond4861: %t6 = load i64, ptr %a5 %t7 = icmp slt i64 %t6, %t4 - br i1 %t7, label %n.body4718, label %n.end4719 -n.body4718: + br i1 %t7, label %n.body4862, label %n.end4863 +n.body4862: %t8 = getelementptr inbounds %S.gen.Scope, ptr %t1, i64 %t6 %t9 = getelementptr inbounds %S.gen.Scope, ptr %t2, i64 %t6 call void @finch.copy.S_gen_Scope(ptr %t8, ptr %t9) %t10 = load i64, ptr %a5 %t11 = add i64 %t10, 1 store i64 %t11, ptr %a5 - br label %n.cond4717 -n.end4719: + br label %n.cond4861 +n.end4863: ret void } @@ -47871,19 +49519,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond4723 -n.cond4723: + br label %n.cond4867 +n.cond4867: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body4724, label %n.end4725 -n.body4724: + br i1 %t6, label %n.body4868, label %n.end4869 +n.body4868: %t7 = getelementptr inbounds %S.gen.Scope, ptr %t1, i64 %t5 call void @finch.drop.S_gen_Scope(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond4723 -n.end4725: + br label %n.cond4867 +n.end4869: call void @finch_arr_free(ptr %a) ret void } @@ -48054,31 +49702,31 @@ entry: store i64 %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic4649, label %ok4650 -panic4649: - call void @finch_panic(ptr @.str.2911, i64 2090, ptr @.str.2912) + br i1 %t4, label %panic4793, label %ok4794 +panic4793: + call void @finch_panic(ptr @.str.2996, i64 2171, ptr @.str.2997) unreachable -ok4650: +ok4794: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 15 %t6 = load i64, ptr %a2 %t7 = load { ptr, i64, i64 }, ptr %t5 %t8 = extractvalue { ptr, i64, i64 } %t7, 1 %t9 = icmp uge i64 %t6, %t8 - br i1 %t9, label %range4651, label %inrange4652 -range4651: - call void @finch_panic_index(ptr @.str.2913, i64 2090, i64 %t6, i64 %t8) + br i1 %t9, label %range4795, label %inrange4796 +range4795: + call void @finch_panic_index(ptr @.str.2998, i64 2171, i64 %t6, i64 %t8) unreachable -inrange4652: +inrange4796: %t10 = extractvalue { ptr, i64, i64 } %t7, 0 %t11 = getelementptr inbounds %S.gen.FnSig, ptr %t10, i64 %t6 %t12 = load %S.gen.FnSig, ptr %t11 %t13 = load ptr, ptr %a1 %t14 = icmp eq ptr %t13, null - br i1 %t14, label %panic4653, label %ok4654 -panic4653: - call void @finch_panic(ptr @.str.2914, i64 2090, ptr @.str.2915) + br i1 %t14, label %panic4797, label %ok4798 +panic4797: + call void @finch_panic(ptr @.str.2999, i64 2171, ptr @.str.3000) unreachable -ok4654: +ok4798: %t15 = getelementptr inbounds %S.gen.Gen, ptr %t13, i32 0, i32 13 store %S.gen.FnSig %t12, ptr %a16 call void @finch.copy.S_gen_FnSig(ptr %a17, ptr %a16) @@ -48089,21 +49737,21 @@ ok4654: call void @finch.drop.S_gen_FnSig(ptr %a20) %t21 = load ptr, ptr %a1 %t22 = icmp eq ptr %t21, null - br i1 %t22, label %panic4655, label %ok4656 -panic4655: - call void @finch_panic(ptr @.str.2916, i64 2091, ptr @.str.2917) + br i1 %t22, label %panic4799, label %ok4800 +panic4799: + call void @finch_panic(ptr @.str.3001, i64 2172, ptr @.str.3002) unreachable -ok4656: +ok4800: %t23 = getelementptr inbounds %S.gen.Gen, ptr %t21, i32 0, i32 13 %t24 = getelementptr inbounds %S.gen.FnSig, ptr %t23, i32 0, i32 0 %t25 = load { ptr, i64, i64 }, ptr %t24 %t26 = load ptr, ptr %a1 %t27 = icmp eq ptr %t26, null - br i1 %t27, label %panic4657, label %ok4658 -panic4657: - call void @finch_panic(ptr @.str.2918, i64 2091, ptr @.str.2919) + br i1 %t27, label %panic4801, label %ok4802 +panic4801: + call void @finch_panic(ptr @.str.3003, i64 2172, ptr @.str.3004) unreachable -ok4658: +ok4802: %t28 = getelementptr inbounds %S.gen.Gen, ptr %t26, i32 0, i32 14 store { ptr, i64, i64 } %t25, ptr %a29 call void @finch_str_copy(ptr %a30, ptr %a29) @@ -48114,21 +49762,21 @@ ok4658: call void @finch_str_drop(ptr %a33) %t34 = load ptr, ptr %a1 %t35 = icmp eq ptr %t34, null - br i1 %t35, label %panic4659, label %ok4660 -panic4659: - call void @finch_panic(ptr @.str.2920, i64 2092, ptr @.str.2921) + br i1 %t35, label %panic4803, label %ok4804 +panic4803: + call void @finch_panic(ptr @.str.3005, i64 2173, ptr @.str.3006) unreachable -ok4660: +ok4804: %t36 = getelementptr inbounds %S.gen.Gen, ptr %t34, i32 0, i32 13 %t37 = getelementptr inbounds %S.gen.FnSig, ptr %t36, i32 0, i32 6 %t38 = load { ptr, i64, i64 }, ptr %t37 %t39 = load ptr, ptr %a1 %t40 = icmp eq ptr %t39, null - br i1 %t40, label %panic4661, label %ok4662 -panic4661: - call void @finch_panic(ptr @.str.2922, i64 2092, ptr @.str.2923) + br i1 %t40, label %panic4805, label %ok4806 +panic4805: + call void @finch_panic(ptr @.str.3007, i64 2173, ptr @.str.3008) unreachable -ok4662: +ok4806: %t41 = getelementptr inbounds %S.gen.Gen, ptr %t39, i32 0, i32 18 store { ptr, i64, i64 } %t38, ptr %a42 call void @finch.copy.arr_str(ptr %a43, ptr %a42) @@ -48139,21 +49787,21 @@ ok4662: call void @finch.drop.arr_str(ptr %a46) %t47 = load ptr, ptr %a1 %t48 = icmp eq ptr %t47, null - br i1 %t48, label %panic4663, label %ok4664 -panic4663: - call void @finch_panic(ptr @.str.2924, i64 2093, ptr @.str.2925) + br i1 %t48, label %panic4807, label %ok4808 +panic4807: + call void @finch_panic(ptr @.str.3009, i64 2174, ptr @.str.3010) unreachable -ok4664: +ok4808: %t49 = getelementptr inbounds %S.gen.Gen, ptr %t47, i32 0, i32 13 %t50 = getelementptr inbounds %S.gen.FnSig, ptr %t49, i32 0, i32 7 %t51 = load { ptr, i64, i64 }, ptr %t50 %t52 = load ptr, ptr %a1 %t53 = icmp eq ptr %t52, null - br i1 %t53, label %panic4665, label %ok4666 -panic4665: - call void @finch_panic(ptr @.str.2926, i64 2093, ptr @.str.2927) + br i1 %t53, label %panic4809, label %ok4810 +panic4809: + call void @finch_panic(ptr @.str.3011, i64 2174, ptr @.str.3012) unreachable -ok4666: +ok4810: %t54 = getelementptr inbounds %S.gen.Gen, ptr %t52, i32 0, i32 19 store { ptr, i64, i64 } %t51, ptr %a55 call void @finch.copy.arr_S_ast_Type(ptr %a56, ptr %a55) @@ -48164,111 +49812,111 @@ ok4666: call void @finch.drop.arr_S_ast_Type(ptr %a59) %t60 = load ptr, ptr %a1 %t61 = icmp eq ptr %t60, null - br i1 %t61, label %panic4667, label %ok4668 -panic4667: - call void @finch_panic(ptr @.str.2929, i64 2094, ptr @.str.2930) + br i1 %t61, label %panic4811, label %ok4812 +panic4811: + call void @finch_panic(ptr @.str.3014, i64 2175, ptr @.str.3015) unreachable -ok4668: +ok4812: %t62 = getelementptr inbounds %S.gen.Gen, ptr %t60, i32 0, i32 20 %t63 = load { ptr, i64, i64 }, ptr %t62 - store { ptr, i64, i64 } { ptr @.str.2928, i64 0, i64 0 }, ptr %t62 + store { ptr, i64, i64 } { ptr @.str.3013, i64 0, i64 0 }, ptr %t62 store { ptr, i64, i64 } %t63, ptr %a64 call void @finch_str_drop(ptr %a64) %t65 = load ptr, ptr %a1 %t66 = icmp eq ptr %t65, null - br i1 %t66, label %panic4669, label %ok4670 -panic4669: - call void @finch_panic(ptr @.str.2931, i64 2095, ptr @.str.2932) + br i1 %t66, label %panic4813, label %ok4814 +panic4813: + call void @finch_panic(ptr @.str.3016, i64 2176, ptr @.str.3017) unreachable -ok4670: +ok4814: %t67 = getelementptr inbounds %S.gen.Gen, ptr %t65, i32 0, i32 13 %t68 = getelementptr inbounds %S.gen.FnSig, ptr %t67, i32 0, i32 7 %t69 = getelementptr inbounds { ptr, i64, i64 }, ptr %t68, i32 0, i32 1 %t70 = load i64, ptr %t69 %t71 = icmp sgt i64 %t70, 0 - br i1 %t71, label %then4671, label %endif4673 -then4671: + br i1 %t71, label %then4815, label %endif4817 +then4815: %t72 = load ptr, ptr %a1 %t73 = icmp eq ptr %t72, null - br i1 %t73, label %panic4674, label %ok4675 -panic4674: - call void @finch_panic(ptr @.str.2934, i64 2096, ptr @.str.2935) + br i1 %t73, label %panic4818, label %ok4819 +panic4818: + call void @finch_panic(ptr @.str.3019, i64 2177, ptr @.str.3020) unreachable -ok4675: +ok4819: %t74 = getelementptr inbounds %S.gen.Gen, ptr %t72, i32 0, i32 13 %t75 = getelementptr inbounds %S.gen.FnSig, ptr %t74, i32 0, i32 8 %t76 = load { ptr, i64, i64 }, ptr %t75 - store { ptr, i64, i64 } { ptr @.str.2933, i64 17, i64 0 }, ptr %a78 + store { ptr, i64, i64 } { ptr @.str.3018, i64 17, i64 0 }, ptr %a78 store { ptr, i64, i64 } %t76, ptr %a79 call void @finch_str_concat(ptr %a77, ptr %a78, ptr %a79) %t80 = load { ptr, i64, i64 }, ptr %a77 store { ptr, i64, i64 } %t80, ptr %a82 - store { ptr, i64, i64 } { ptr @.str.2936, i64 1, i64 0 }, ptr %a83 + store { ptr, i64, i64 } { ptr @.str.3021, i64 1, i64 0 }, ptr %a83 call void @finch_str_concat(ptr %a81, ptr %a82, ptr %a83) store { ptr, i64, i64 } %t80, ptr %a84 call void @finch_str_drop(ptr %a84) %t85 = load { ptr, i64, i64 }, ptr %a81 %t86 = load ptr, ptr %a1 %t87 = icmp eq ptr %t86, null - br i1 %t87, label %panic4676, label %ok4677 -panic4676: - call void @finch_panic(ptr @.str.2937, i64 2096, ptr @.str.2938) + br i1 %t87, label %panic4820, label %ok4821 +panic4820: + call void @finch_panic(ptr @.str.3022, i64 2177, ptr @.str.3023) unreachable -ok4677: +ok4821: %t88 = getelementptr inbounds %S.gen.Gen, ptr %t86, i32 0, i32 20 %t89 = load { ptr, i64, i64 }, ptr %t88 store { ptr, i64, i64 } %t85, ptr %t88 store { ptr, i64, i64 } %t89, ptr %a90 call void @finch_str_drop(ptr %a90) - br label %endif4673 -endif4673: + br label %endif4817 +endif4817: %t91 = load ptr, ptr %a1 %t92 = icmp eq ptr %t91, null - br i1 %t92, label %panic4678, label %ok4679 -panic4678: - call void @finch_panic(ptr @.str.2939, i64 2098, ptr @.str.2940) + br i1 %t92, label %panic4822, label %ok4823 +panic4822: + call void @finch_panic(ptr @.str.3024, i64 2179, ptr @.str.3025) unreachable -ok4679: +ok4823: %t93 = getelementptr inbounds %S.gen.Gen, ptr %t91, i32 0, i32 0 %t94 = load ptr, ptr %a1 %t95 = icmp eq ptr %t94, null - br i1 %t95, label %panic4680, label %ok4681 -panic4680: - call void @finch_panic(ptr @.str.2941, i64 2098, ptr @.str.2942) + br i1 %t95, label %panic4824, label %ok4825 +panic4824: + call void @finch_panic(ptr @.str.3026, i64 2179, ptr @.str.3027) unreachable -ok4681: +ok4825: %t96 = getelementptr inbounds %S.gen.Gen, ptr %t94, i32 0, i32 13 %t97 = getelementptr inbounds %S.gen.FnSig, ptr %t96, i32 0, i32 16 %t98 = load i64, ptr %t97 %t99 = load { ptr, i64, i64 }, ptr %t93 %t100 = extractvalue { ptr, i64, i64 } %t99, 1 %t101 = icmp uge i64 %t98, %t100 - br i1 %t101, label %range4682, label %inrange4683 -range4682: - call void @finch_panic_index(ptr @.str.2943, i64 2098, i64 %t98, i64 %t100) + br i1 %t101, label %range4826, label %inrange4827 +range4826: + call void @finch_panic_index(ptr @.str.3028, i64 2179, i64 %t98, i64 %t100) unreachable -inrange4683: +inrange4827: %t102 = extractvalue { ptr, i64, i64 } %t99, 0 %t103 = getelementptr inbounds %S.ast.Program, ptr %t102, i64 %t98 %t104 = getelementptr inbounds %S.ast.Program, ptr %t103, i32 0, i32 8 %t105 = load ptr, ptr %a1 %t106 = icmp eq ptr %t105, null - br i1 %t106, label %panic4684, label %ok4685 -panic4684: - call void @finch_panic(ptr @.str.2944, i64 2098, ptr @.str.2945) + br i1 %t106, label %panic4828, label %ok4829 +panic4828: + call void @finch_panic(ptr @.str.3029, i64 2179, ptr @.str.3030) unreachable -ok4685: +ok4829: %t107 = getelementptr inbounds %S.gen.Gen, ptr %t105, i32 0, i32 13 %t108 = getelementptr inbounds %S.gen.FnSig, ptr %t107, i32 0, i32 17 %t109 = load i64, ptr %t108 %t110 = load { ptr, i64, i64 }, ptr %t104 %t111 = extractvalue { ptr, i64, i64 } %t110, 1 %t112 = icmp uge i64 %t109, %t111 - br i1 %t112, label %range4686, label %inrange4687 -range4686: - call void @finch_panic_index(ptr @.str.2946, i64 2098, i64 %t109, i64 %t111) + br i1 %t112, label %range4830, label %inrange4831 +range4830: + call void @finch_panic_index(ptr @.str.3031, i64 2179, i64 %t109, i64 %t111) unreachable -inrange4687: +inrange4831: %t113 = extractvalue { ptr, i64, i64 } %t110, 0 %t114 = getelementptr inbounds %S.ast.Node, ptr %t113, i64 %t109 %t115 = load %S.ast.Node, ptr %t114 @@ -48280,11 +49928,11 @@ inrange4687: %t121 = load { ptr, i64, i64 }, ptr %a120 %t122 = load ptr, ptr %a1 %t123 = icmp eq ptr %t122, null - br i1 %t123, label %panic4688, label %ok4689 -panic4688: - call void @finch_panic(ptr @.str.2947, i64 2100, ptr @.str.2948) + br i1 %t123, label %panic4832, label %ok4833 +panic4832: + call void @finch_panic(ptr @.str.3032, i64 2181, ptr @.str.3033) unreachable -ok4689: +ok4833: %t124 = getelementptr inbounds %S.gen.Gen, ptr %t122, i32 0, i32 4 store { ptr, i64, i64 } %t121, ptr %a125 call void @finch.copy.arr_str(ptr %a126, ptr %a125) @@ -48296,11 +49944,11 @@ ok4689: %t130 = load { ptr, i64, i64 }, ptr %a120 %t131 = load ptr, ptr %a1 %t132 = icmp eq ptr %t131, null - br i1 %t132, label %panic4690, label %ok4691 -panic4690: - call void @finch_panic(ptr @.str.2949, i64 2101, ptr @.str.2950) + br i1 %t132, label %panic4834, label %ok4835 +panic4834: + call void @finch_panic(ptr @.str.3034, i64 2182, ptr @.str.3035) unreachable -ok4691: +ok4835: %t133 = getelementptr inbounds %S.gen.Gen, ptr %t131, i32 0, i32 5 store { ptr, i64, i64 } %t130, ptr %a134 call void @finch.copy.arr_str(ptr %a135, ptr %a134) @@ -48311,52 +49959,52 @@ ok4691: call void @finch.drop.arr_str(ptr %a138) %t139 = load ptr, ptr %a1 %t140 = icmp eq ptr %t139, null - br i1 %t140, label %panic4692, label %ok4693 -panic4692: - call void @finch_panic(ptr @.str.2951, i64 2102, ptr @.str.2952) + br i1 %t140, label %panic4836, label %ok4837 +panic4836: + call void @finch_panic(ptr @.str.3036, i64 2183, ptr @.str.3037) unreachable -ok4693: +ok4837: %t141 = getelementptr inbounds %S.gen.Gen, ptr %t139, i32 0, i32 6 store i64 0, ptr %t141 %t142 = load ptr, ptr %a1 %t143 = icmp eq ptr %t142, null - br i1 %t143, label %panic4694, label %ok4695 -panic4694: - call void @finch_panic(ptr @.str.2953, i64 2103, ptr @.str.2954) + br i1 %t143, label %panic4838, label %ok4839 +panic4838: + call void @finch_panic(ptr @.str.3038, i64 2184, ptr @.str.3039) unreachable -ok4695: +ok4839: %t144 = getelementptr inbounds %S.gen.Gen, ptr %t142, i32 0, i32 9 store i1 false, ptr %t144 %t145 = load ptr, ptr %a1 %t146 = icmp eq ptr %t145, null - br i1 %t146, label %panic4696, label %ok4697 -panic4696: - call void @finch_panic(ptr @.str.2955, i64 2104, ptr @.str.2956) + br i1 %t146, label %panic4840, label %ok4841 +panic4840: + call void @finch_panic(ptr @.str.3040, i64 2185, ptr @.str.3041) unreachable -ok4697: - %t147 = getelementptr inbounds %S.gen.Gen, ptr %t145, i32 0, i32 24 +ok4841: + %t147 = getelementptr inbounds %S.gen.Gen, ptr %t145, i32 0, i32 25 store i64 0, ptr %t147 %t148 = load ptr, ptr %a1 %t149 = icmp eq ptr %t148, null - br i1 %t149, label %panic4698, label %ok4699 -panic4698: - call void @finch_panic(ptr @.str.2957, i64 2105, ptr @.str.2958) + br i1 %t149, label %panic4842, label %ok4843 +panic4842: + call void @finch_panic(ptr @.str.3042, i64 2186, ptr @.str.3043) unreachable -ok4699: - %t150 = getelementptr inbounds %S.gen.Gen, ptr %t148, i32 0, i32 35 +ok4843: + %t150 = getelementptr inbounds %S.gen.Gen, ptr %t148, i32 0, i32 36 store i64 -1, ptr %t150 store i64 -1, ptr %a151 %t152 = load ptr, ptr %a1 %t153 = icmp eq ptr %t152, null - br i1 %t153, label %panic4700, label %ok4701 -panic4700: - call void @finch_panic(ptr @.str.2959, i64 2107, ptr @.str.2960) + br i1 %t153, label %panic4844, label %ok4845 +panic4844: + call void @finch_panic(ptr @.str.3044, i64 2188, ptr @.str.3045) unreachable -ok4701: - %t154 = getelementptr inbounds %S.gen.Gen, ptr %t152, i32 0, i32 29 +ok4845: + %t154 = getelementptr inbounds %S.gen.Gen, ptr %t152, i32 0, i32 30 %t155 = load i1, ptr %t154 - br i1 %t155, label %then4702, label %endif4704 -then4702: + br i1 %t155, label %then4846, label %endif4848 +then4846: %t156 = load ptr, ptr %a1 %t157 = load %S.ast.Node, ptr %a119 %t158 = call i64 @finch.gen.dbgSubprogram(ptr %t156, %S.ast.Node %t157) @@ -48364,64 +50012,64 @@ then4702: %t159 = load i64, ptr %a151 %t160 = load ptr, ptr %a1 %t161 = icmp eq ptr %t160, null - br i1 %t161, label %panic4705, label %ok4706 -panic4705: - call void @finch_panic(ptr @.str.2961, i64 2109, ptr @.str.2962) + br i1 %t161, label %panic4849, label %ok4850 +panic4849: + call void @finch_panic(ptr @.str.3046, i64 2190, ptr @.str.3047) unreachable -ok4706: - %t162 = getelementptr inbounds %S.gen.Gen, ptr %t160, i32 0, i32 35 +ok4850: + %t162 = getelementptr inbounds %S.gen.Gen, ptr %t160, i32 0, i32 36 store i64 %t159, ptr %t162 %t163 = getelementptr inbounds %S.ast.Node, ptr %a119, i32 0, i32 11 %t164 = load i64, ptr %t163 %t165 = load ptr, ptr %a1 %t166 = icmp eq ptr %t165, null - br i1 %t166, label %panic4707, label %ok4708 -panic4707: - call void @finch_panic(ptr @.str.2963, i64 2110, ptr @.str.2964) + br i1 %t166, label %panic4851, label %ok4852 +panic4851: + call void @finch_panic(ptr @.str.3048, i64 2191, ptr @.str.3049) unreachable -ok4708: - %t167 = getelementptr inbounds %S.gen.Gen, ptr %t165, i32 0, i32 36 +ok4852: + %t167 = getelementptr inbounds %S.gen.Gen, ptr %t165, i32 0, i32 37 store i64 %t164, ptr %t167 %t168 = getelementptr inbounds %S.ast.Node, ptr %a119, i32 0, i32 12 %t169 = load i64, ptr %t168 %t170 = load ptr, ptr %a1 %t171 = icmp eq ptr %t170, null - br i1 %t171, label %panic4709, label %ok4710 -panic4709: - call void @finch_panic(ptr @.str.2965, i64 2111, ptr @.str.2966) + br i1 %t171, label %panic4853, label %ok4854 +panic4853: + call void @finch_panic(ptr @.str.3050, i64 2192, ptr @.str.3051) unreachable -ok4710: - %t172 = getelementptr inbounds %S.gen.Gen, ptr %t170, i32 0, i32 37 +ok4854: + %t172 = getelementptr inbounds %S.gen.Gen, ptr %t170, i32 0, i32 38 store i64 %t169, ptr %t172 - br label %endif4704 -endif4704: + br label %endif4848 +endif4848: %t173 = load ptr, ptr %a1 %t174 = icmp eq ptr %t173, null - br i1 %t174, label %panic4711, label %ok4712 -panic4711: - call void @finch_panic(ptr @.str.2967, i64 2113, ptr @.str.2968) + br i1 %t174, label %panic4855, label %ok4856 +panic4855: + call void @finch_panic(ptr @.str.3052, i64 2194, ptr @.str.3053) unreachable -ok4712: - %t175 = getelementptr inbounds %S.gen.Gen, ptr %t173, i32 0, i32 43 +ok4856: + %t175 = getelementptr inbounds %S.gen.Gen, ptr %t173, i32 0, i32 44 store i1 false, ptr %t175 %t176 = load ptr, ptr %a1 %t177 = icmp eq ptr %t176, null - br i1 %t177, label %panic4713, label %ok4714 -panic4713: - call void @finch_panic(ptr @.str.2969, i64 2114, ptr @.str.2970) + br i1 %t177, label %panic4857, label %ok4858 +panic4857: + call void @finch_panic(ptr @.str.3054, i64 2195, ptr @.str.3055) unreachable -ok4714: - %t178 = getelementptr inbounds %S.gen.Gen, ptr %t176, i32 0, i32 45 +ok4858: + %t178 = getelementptr inbounds %S.gen.Gen, ptr %t176, i32 0, i32 46 store i64 0, ptr %t178 store { ptr, i64, i64 } zeroinitializer, ptr %a179 %t180 = load { ptr, i64, i64 }, ptr %a179 %t181 = load ptr, ptr %a1 %t182 = icmp eq ptr %t181, null - br i1 %t182, label %panic4715, label %ok4716 -panic4715: - call void @finch_panic(ptr @.str.2971, i64 2116, ptr @.str.2972) + br i1 %t182, label %panic4859, label %ok4860 +panic4859: + call void @finch_panic(ptr @.str.3056, i64 2197, ptr @.str.3057) unreachable -ok4716: +ok4860: %t183 = getelementptr inbounds %S.gen.Gen, ptr %t181, i32 0, i32 10 store { ptr, i64, i64 } %t180, ptr %a184 call void @finch.copy.arr_S_gen_Scope(ptr %a185, ptr %a184) @@ -48435,45 +50083,45 @@ ok4716: store { ptr, i64, i64 } zeroinitializer, ptr %a190 %t191 = load ptr, ptr %a1 %t192 = icmp eq ptr %t191, null - br i1 %t192, label %panic4726, label %ok4727 -panic4726: - call void @finch_panic(ptr @.str.2973, i64 2119, ptr @.str.2974) + br i1 %t192, label %panic4870, label %ok4871 +panic4870: + call void @finch_panic(ptr @.str.3058, i64 2200, ptr @.str.3059) unreachable -ok4727: +ok4871: %t193 = getelementptr inbounds %S.gen.Gen, ptr %t191, i32 0, i32 13 %t194 = getelementptr inbounds %S.gen.FnSig, ptr %t193, i32 0, i32 2 %t195 = getelementptr inbounds { ptr, i64, i64 }, ptr %t194, i32 0, i32 1 %t196 = load i64, ptr %t195 %t197 = icmp sgt i64 %t196, 0 - br i1 %t197, label %then4728, label %endif4730 -then4728: + br i1 %t197, label %then4872, label %endif4874 +then4872: %t198 = getelementptr inbounds { ptr, i64, i64 }, ptr %a190, i32 0, i32 1 %t199 = load i64, ptr %t198 %t200 = add i64 %t199, 1 call void @finch_arr_reserve(ptr %a190, i64 %t200, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t201 = load ptr, ptr %a190 %t202 = getelementptr inbounds { ptr, i64, i64 }, ptr %t201, i64 %t199 - store { ptr, i64, i64 } { ptr @.str.2975, i64 9, i64 0 }, ptr %t202 + store { ptr, i64, i64 } { ptr @.str.3060, i64 9, i64 0 }, ptr %t202 store i64 %t200, ptr %t198 - store { ptr, i64, i64 } { ptr @.str.2976, i64 6, i64 0 }, ptr %a203 + store { ptr, i64, i64 } { ptr @.str.3061, i64 6, i64 0 }, ptr %a203 %t204 = load ptr, ptr %a1 %t205 = icmp eq ptr %t204, null - br i1 %t205, label %panic4731, label %ok4732 -panic4731: - call void @finch_panic(ptr @.str.2977, i64 2123, ptr @.str.2978) + br i1 %t205, label %panic4875, label %ok4876 +panic4875: + call void @finch_panic(ptr @.str.3062, i64 2204, ptr @.str.3063) unreachable -ok4732: +ok4876: %t206 = getelementptr inbounds %S.gen.Gen, ptr %t204, i32 0, i32 13 %t207 = getelementptr inbounds %S.gen.FnSig, ptr %t206, i32 0, i32 4 %t208 = load i1, ptr %t207 - br i1 %t208, label %then4733, label %endif4735 -then4733: + br i1 %t208, label %then4877, label %endif4879 +then4877: %t209 = load { ptr, i64, i64 }, ptr %a203 - store { ptr, i64, i64 } { ptr @.str.2979, i64 4, i64 0 }, ptr %a203 + store { ptr, i64, i64 } { ptr @.str.3064, i64 4, i64 0 }, ptr %a203 store { ptr, i64, i64 } %t209, ptr %a210 call void @finch_str_drop(ptr %a210) - br label %endif4735 -endif4735: + br label %endif4879 +endif4879: %t211 = load { ptr, i64, i64 }, ptr %a203 store { ptr, i64, i64 } %t211, ptr %a212 call void @finch_str_copy(ptr %a213, ptr %a212) @@ -48481,11 +50129,11 @@ endif4735: %t215 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } %t214, 0 %t216 = load ptr, ptr %a1 %t217 = icmp eq ptr %t216, null - br i1 %t217, label %panic4736, label %ok4737 -panic4736: - call void @finch_panic(ptr @.str.2980, i64 2126, ptr @.str.2981) + br i1 %t217, label %panic4880, label %ok4881 +panic4880: + call void @finch_panic(ptr @.str.3065, i64 2207, ptr @.str.3066) unreachable -ok4737: +ok4881: %t218 = getelementptr inbounds %S.gen.Gen, ptr %t216, i32 0, i32 13 %t219 = getelementptr inbounds %S.gen.FnSig, ptr %t218, i32 0, i32 2 %t220 = load { ptr, i64, i64 }, ptr %t219 @@ -48495,11 +50143,11 @@ ok4737: %t224 = insertvalue %S.ast.Type %t215, { ptr, i64, i64 } %t223, 2 %t225 = load ptr, ptr %a1 %t226 = icmp eq ptr %t225, null - br i1 %t226, label %panic4738, label %ok4739 -panic4738: - call void @finch_panic(ptr @.str.2982, i64 2126, ptr @.str.2983) + br i1 %t226, label %panic4882, label %ok4883 +panic4882: + call void @finch_panic(ptr @.str.3067, i64 2207, ptr @.str.3068) unreachable -ok4739: +ok4883: %t227 = getelementptr inbounds %S.gen.Gen, ptr %t225, i32 0, i32 13 %t228 = getelementptr inbounds %S.gen.FnSig, ptr %t227, i32 0, i32 3 %t229 = load { ptr, i64, i64 }, ptr %t228 @@ -48510,31 +50158,31 @@ ok4739: store %S.ast.Type %t233, ptr %a234 %t235 = load ptr, ptr %a1 %t236 = icmp eq ptr %t235, null - br i1 %t236, label %panic4740, label %ok4741 -panic4740: - call void @finch_panic(ptr @.str.2984, i64 2127, ptr @.str.2985) + br i1 %t236, label %panic4884, label %ok4885 +panic4884: + call void @finch_panic(ptr @.str.3069, i64 2208, ptr @.str.3070) unreachable -ok4741: +ok4885: %t237 = getelementptr inbounds %S.gen.Gen, ptr %t235, i32 0, i32 10 %t238 = load { ptr, i64, i64 }, ptr %t237 %t239 = extractvalue { ptr, i64, i64 } %t238, 1 %t240 = icmp uge i64 0, %t239 - br i1 %t240, label %range4742, label %inrange4743 -range4742: - call void @finch_panic_index(ptr @.str.2986, i64 2127, i64 0, i64 %t239) + br i1 %t240, label %range4886, label %inrange4887 +range4886: + call void @finch_panic_index(ptr @.str.3071, i64 2208, i64 0, i64 %t239) unreachable -inrange4743: +inrange4887: %t241 = extractvalue { ptr, i64, i64 } %t238, 0 %t242 = getelementptr inbounds %S.gen.Scope, ptr %t241, i64 0 %t243 = getelementptr inbounds %S.gen.Scope, ptr %t242, i32 0, i32 0 %t244 = getelementptr inbounds { ptr, i64, i64 }, ptr %t243, i32 0, i32 1 - %t245 = insertvalue %S.gen.Var zeroinitializer, { ptr, i64, i64 } { ptr @.str.2987, i64 4, i64 0 }, 0 + %t245 = insertvalue %S.gen.Var zeroinitializer, { ptr, i64, i64 } { ptr @.str.3072, i64 4, i64 0 }, 0 %t246 = load %S.ast.Type, ptr %a234 store %S.ast.Type %t246, ptr %a247 call void @finch.copy.S_ast_Type(ptr %a248, ptr %a247) %t249 = load %S.ast.Type, ptr %a248 %t250 = insertvalue %S.gen.Var %t245, %S.ast.Type %t249, 1 - %t251 = insertvalue %S.gen.Var %t250, { ptr, i64, i64 } { ptr @.str.2988, i64 5, i64 0 }, 2 + %t251 = insertvalue %S.gen.Var %t250, { ptr, i64, i64 } { ptr @.str.3073, i64 5, i64 0 }, 2 %t252 = insertvalue %S.gen.Var %t251, i1 false, 3 %t253 = load i64, ptr %t244 %t254 = add i64 %t253, 1 @@ -48545,61 +50193,61 @@ inrange4743: store i64 %t254, ptr %t244 %t257 = load ptr, ptr %a1 %t258 = icmp eq ptr %t257, null - br i1 %t258, label %panic4744, label %ok4745 -panic4744: - call void @finch_panic(ptr @.str.2989, i64 2128, ptr @.str.2990) + br i1 %t258, label %panic4888, label %ok4889 +panic4888: + call void @finch_panic(ptr @.str.3074, i64 2209, ptr @.str.3075) unreachable -ok4745: - %t259 = getelementptr inbounds %S.gen.Gen, ptr %t257, i32 0, i32 29 +ok4889: + %t259 = getelementptr inbounds %S.gen.Gen, ptr %t257, i32 0, i32 30 %t260 = load i1, ptr %t259 - br i1 %t260, label %then4746, label %endif4748 -then4746: + br i1 %t260, label %then4890, label %endif4892 +then4890: %t261 = load ptr, ptr %a1 %t262 = load %S.ast.Node, ptr %a119 %t263 = load %S.ast.Type, ptr %a234 - call void @finch.gen.dbgVariable(ptr %t261, %S.ast.Node %t262, { ptr, i64, i64 } { ptr @.str.2991, i64 4, i64 0 }, %S.ast.Type %t263, { ptr, i64, i64 } { ptr @.str.2992, i64 5, i64 0 }) - br label %endif4748 -endif4748: + call void @finch.gen.dbgVariable(ptr %t261, %S.ast.Node %t262, { ptr, i64, i64 } { ptr @.str.3076, i64 4, i64 0 }, %S.ast.Type %t263, { ptr, i64, i64 } { ptr @.str.3077, i64 5, i64 0 }) + br label %endif4892 +endif4892: call void @finch.drop.S_ast_Type(ptr %a234) call void @finch_str_drop(ptr %a203) - br label %endif4730 -endif4730: + br label %endif4874 +endif4874: %t264 = load ptr, ptr %a1 %t265 = icmp eq ptr %t264, null - br i1 %t265, label %panic4749, label %ok4750 -panic4749: - call void @finch_panic(ptr @.str.2993, i64 2133, ptr @.str.2994) + br i1 %t265, label %panic4893, label %ok4894 +panic4893: + call void @finch_panic(ptr @.str.3078, i64 2214, ptr @.str.3079) unreachable -ok4750: +ok4894: %t266 = getelementptr inbounds %S.gen.Gen, ptr %t264, i32 0, i32 13 %t267 = getelementptr inbounds %S.gen.FnSig, ptr %t266, i32 0, i32 13 %t268 = getelementptr inbounds { ptr, i64, i64 }, ptr %t267, i32 0, i32 1 %t269 = load i64, ptr %t268 store i64 0, ptr %a270 - br label %for.cond4751 -for.cond4751: + br label %for.cond4895 +for.cond4895: %t271 = load i64, ptr %a270 %t272 = icmp slt i64 %t271, %t269 - br i1 %t272, label %for.body4752, label %for.end4754 -for.body4752: + br i1 %t272, label %for.body4896, label %for.end4898 +for.body4896: %t273 = load ptr, ptr %a1 %t274 = icmp eq ptr %t273, null - br i1 %t274, label %panic4755, label %ok4756 -panic4755: - call void @finch_panic(ptr @.str.2995, i64 2134, ptr @.str.2996) + br i1 %t274, label %panic4899, label %ok4900 +panic4899: + call void @finch_panic(ptr @.str.3080, i64 2215, ptr @.str.3081) unreachable -ok4756: +ok4900: %t275 = getelementptr inbounds %S.gen.Gen, ptr %t273, i32 0, i32 13 %t276 = getelementptr inbounds %S.gen.FnSig, ptr %t275, i32 0, i32 13 %t277 = load i64, ptr %a270 %t278 = load { ptr, i64, i64 }, ptr %t276 %t279 = extractvalue { ptr, i64, i64 } %t278, 1 %t280 = icmp uge i64 %t277, %t279 - br i1 %t280, label %range4757, label %inrange4758 -range4757: - call void @finch_panic_index(ptr @.str.2997, i64 2134, i64 %t277, i64 %t279) + br i1 %t280, label %range4901, label %inrange4902 +range4901: + call void @finch_panic_index(ptr @.str.3082, i64 2215, i64 %t277, i64 %t279) unreachable -inrange4758: +inrange4902: %t281 = extractvalue { ptr, i64, i64 } %t278, 0 %t282 = getelementptr inbounds %S.ast.Type, ptr %t281, i64 %t277 %t283 = load %S.ast.Type, ptr %t282 @@ -48612,7 +50260,7 @@ inrange4758: %t290 = load %S.ast.Type, ptr %a287 %t291 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t289, %S.ast.Type %t290) store { ptr, i64, i64 } %t291, ptr %a293 - store { ptr, i64, i64 } { ptr @.str.2998, i64 3, i64 0 }, ptr %a294 + store { ptr, i64, i64 } { ptr @.str.3083, i64 3, i64 0 }, ptr %a294 call void @finch_str_concat(ptr %a292, ptr %a293, ptr %a294) store { ptr, i64, i64 } %t291, ptr %a295 call void @finch_str_drop(ptr %a295) @@ -48638,7 +50286,7 @@ inrange4758: %t310 = load i64, ptr %a270 call void @finch_str_from_int(ptr %a311, i64 %t310) %t312 = load { ptr, i64, i64 }, ptr %a311 - store { ptr, i64, i64 } { ptr @.str.2999, i64 2, i64 0 }, ptr %a314 + store { ptr, i64, i64 } { ptr @.str.3084, i64 2, i64 0 }, ptr %a314 store { ptr, i64, i64 } %t312, ptr %a315 call void @finch_str_concat(ptr %a313, ptr %a314, ptr %a315) store { ptr, i64, i64 } %t312, ptr %a316 @@ -48648,39 +50296,39 @@ inrange4758: %t319 = load ptr, ptr %a1 %t320 = load %S.ast.Type, ptr %a287 %t321 = call i1 @finch.gen.owning(ptr %t319, %S.ast.Type %t320) - br label %logic.from4759 -logic.from4759: - br i1 %t321, label %logic.rhs4760, label %logic.end4761 -logic.rhs4760: + br label %logic.from4903 +logic.from4903: + br i1 %t321, label %logic.rhs4904, label %logic.end4905 +logic.rhs4904: %t322 = load ptr, ptr %a1 %t323 = icmp eq ptr %t322, null - br i1 %t323, label %panic4762, label %ok4763 -panic4762: - call void @finch_panic(ptr @.str.3000, i64 2137, ptr @.str.3001) + br i1 %t323, label %panic4906, label %ok4907 +panic4906: + call void @finch_panic(ptr @.str.3085, i64 2218, ptr @.str.3086) unreachable -ok4763: +ok4907: %t324 = getelementptr inbounds %S.gen.Gen, ptr %t322, i32 0, i32 13 %t325 = getelementptr inbounds %S.gen.FnSig, ptr %t324, i32 0, i32 15 %t326 = load i64, ptr %a270 %t327 = load { ptr, i64, i64 }, ptr %t325 %t328 = extractvalue { ptr, i64, i64 } %t327, 1 %t329 = icmp uge i64 %t326, %t328 - br i1 %t329, label %range4764, label %inrange4765 -range4764: - call void @finch_panic_index(ptr @.str.3002, i64 2137, i64 %t326, i64 %t328) + br i1 %t329, label %range4908, label %inrange4909 +range4908: + call void @finch_panic_index(ptr @.str.3087, i64 2218, i64 %t326, i64 %t328) unreachable -inrange4765: +inrange4909: %t330 = extractvalue { ptr, i64, i64 } %t327, 0 %t331 = getelementptr inbounds i1, ptr %t330, i64 %t326 %t332 = load i1, ptr %t331 %t333 = xor i1 %t332, true - br label %logic.rend4766 -logic.rend4766: - br label %logic.end4761 -logic.end4761: - %t334 = phi i1 [ false, %logic.from4759 ], [ %t333, %logic.rend4766 ] - br i1 %t334, label %then4767, label %endif4769 -then4767: + br label %logic.rend4910 +logic.rend4910: + br label %logic.end4905 +logic.end4905: + %t334 = phi i1 [ false, %logic.from4903 ], [ %t333, %logic.rend4910 ] + br i1 %t334, label %then4911, label %endif4913 +then4911: %t335 = load ptr, ptr %a1 %t336 = load { ptr, i64, i64 }, ptr %a318 %t337 = load %S.ast.Type, ptr %a287 @@ -48689,78 +50337,78 @@ then4767: store { ptr, i64, i64 } %t338, ptr %a318 store { ptr, i64, i64 } %t339, ptr %a340 call void @finch_str_drop(ptr %a340) - br label %endif4769 -endif4769: + br label %endif4913 +endif4913: %t341 = load i64, ptr %a270 %t342 = add i64 %t341, 1 %t343 = load ptr, ptr %a1 %t344 = icmp eq ptr %t343, null - br i1 %t344, label %panic4770, label %ok4771 -panic4770: - call void @finch_panic(ptr @.str.3003, i64 2140, ptr @.str.3004) + br i1 %t344, label %panic4914, label %ok4915 +panic4914: + call void @finch_panic(ptr @.str.3088, i64 2221, ptr @.str.3089) unreachable -ok4771: - %t345 = getelementptr inbounds %S.gen.Gen, ptr %t343, i32 0, i32 38 +ok4915: + %t345 = getelementptr inbounds %S.gen.Gen, ptr %t343, i32 0, i32 39 store i64 %t342, ptr %t345 %t346 = load ptr, ptr %a1 %t347 = icmp eq ptr %t346, null - br i1 %t347, label %panic4772, label %ok4773 -panic4772: - call void @finch_panic(ptr @.str.3005, i64 2141, ptr @.str.3006) + br i1 %t347, label %panic4916, label %ok4917 +panic4916: + call void @finch_panic(ptr @.str.3090, i64 2222, ptr @.str.3091) unreachable -ok4773: +ok4917: %t348 = getelementptr inbounds %S.gen.Gen, ptr %t346, i32 0, i32 13 %t349 = getelementptr inbounds %S.gen.FnSig, ptr %t348, i32 0, i32 2 %t350 = getelementptr inbounds { ptr, i64, i64 }, ptr %t349, i32 0, i32 1 %t351 = load i64, ptr %t350 %t352 = icmp sgt i64 %t351, 0 - br i1 %t352, label %then4774, label %endif4776 -then4774: + br i1 %t352, label %then4918, label %endif4920 +then4918: %t353 = load i64, ptr %a270 %t354 = add i64 %t353, 2 %t355 = load ptr, ptr %a1 %t356 = icmp eq ptr %t355, null - br i1 %t356, label %panic4777, label %ok4778 -panic4777: - call void @finch_panic(ptr @.str.3007, i64 2142, ptr @.str.3008) + br i1 %t356, label %panic4921, label %ok4922 +panic4921: + call void @finch_panic(ptr @.str.3092, i64 2223, ptr @.str.3093) unreachable -ok4778: - %t357 = getelementptr inbounds %S.gen.Gen, ptr %t355, i32 0, i32 38 +ok4922: + %t357 = getelementptr inbounds %S.gen.Gen, ptr %t355, i32 0, i32 39 store i64 %t354, ptr %t357 - br label %endif4776 -endif4776: + br label %endif4920 +endif4920: %t358 = load ptr, ptr %a1 %t359 = getelementptr inbounds %S.ast.Node, ptr %a119, i32 0, i32 9 %t360 = load i64, ptr %a270 %t361 = load { ptr, i64, i64 }, ptr %t359 %t362 = extractvalue { ptr, i64, i64 } %t361, 1 %t363 = icmp uge i64 %t360, %t362 - br i1 %t363, label %range4779, label %inrange4780 -range4779: - call void @finch_panic_index(ptr @.str.3009, i64 2144, i64 %t360, i64 %t362) + br i1 %t363, label %range4923, label %inrange4924 +range4923: + call void @finch_panic_index(ptr @.str.3094, i64 2225, i64 %t360, i64 %t362) unreachable -inrange4780: +inrange4924: %t364 = extractvalue { ptr, i64, i64 } %t361, 0 %t365 = getelementptr inbounds %S.ast.Node, ptr %t364, i64 %t360 %t366 = load %S.ast.Node, ptr %t365 %t367 = load ptr, ptr %a1 %t368 = icmp eq ptr %t367, null - br i1 %t368, label %panic4781, label %ok4782 -panic4781: - call void @finch_panic(ptr @.str.3010, i64 2144, ptr @.str.3011) + br i1 %t368, label %panic4925, label %ok4926 +panic4925: + call void @finch_panic(ptr @.str.3095, i64 2225, ptr @.str.3096) unreachable -ok4782: +ok4926: %t369 = getelementptr inbounds %S.gen.Gen, ptr %t367, i32 0, i32 13 %t370 = getelementptr inbounds %S.gen.FnSig, ptr %t369, i32 0, i32 14 %t371 = load i64, ptr %a270 %t372 = load { ptr, i64, i64 }, ptr %t370 %t373 = extractvalue { ptr, i64, i64 } %t372, 1 %t374 = icmp uge i64 %t371, %t373 - br i1 %t374, label %range4783, label %inrange4784 -range4783: - call void @finch_panic_index(ptr @.str.3012, i64 2144, i64 %t371, i64 %t373) + br i1 %t374, label %range4927, label %inrange4928 +range4927: + call void @finch_panic_index(ptr @.str.3097, i64 2225, i64 %t371, i64 %t373) unreachable -inrange4784: +inrange4928: %t375 = extractvalue { ptr, i64, i64 } %t372, 0 %t376 = getelementptr inbounds { ptr, i64, i64 }, ptr %t375, i64 %t371 %t377 = load { ptr, i64, i64 }, ptr %t376 @@ -48769,58 +50417,58 @@ inrange4784: %t380 = load ptr, ptr %a1 %t381 = load %S.ast.Type, ptr %a287 %t382 = call i1 @finch.gen.owning(ptr %t380, %S.ast.Type %t381) - br label %logic.from4785 -logic.from4785: - br i1 %t382, label %logic.rhs4786, label %logic.end4787 -logic.rhs4786: + br label %logic.from4929 +logic.from4929: + br i1 %t382, label %logic.rhs4930, label %logic.end4931 +logic.rhs4930: %t383 = load ptr, ptr %a1 %t384 = icmp eq ptr %t383, null - br i1 %t384, label %panic4788, label %ok4789 -panic4788: - call void @finch_panic(ptr @.str.3013, i64 2144, ptr @.str.3014) + br i1 %t384, label %panic4932, label %ok4933 +panic4932: + call void @finch_panic(ptr @.str.3098, i64 2225, ptr @.str.3099) unreachable -ok4789: +ok4933: %t385 = getelementptr inbounds %S.gen.Gen, ptr %t383, i32 0, i32 13 %t386 = getelementptr inbounds %S.gen.FnSig, ptr %t385, i32 0, i32 15 %t387 = load i64, ptr %a270 %t388 = load { ptr, i64, i64 }, ptr %t386 %t389 = extractvalue { ptr, i64, i64 } %t388, 1 %t390 = icmp uge i64 %t387, %t389 - br i1 %t390, label %range4790, label %inrange4791 -range4790: - call void @finch_panic_index(ptr @.str.3015, i64 2144, i64 %t387, i64 %t389) + br i1 %t390, label %range4934, label %inrange4935 +range4934: + call void @finch_panic_index(ptr @.str.3100, i64 2225, i64 %t387, i64 %t389) unreachable -inrange4791: +inrange4935: %t391 = extractvalue { ptr, i64, i64 } %t388, 0 %t392 = getelementptr inbounds i1, ptr %t391, i64 %t387 %t393 = load i1, ptr %t392 %t394 = xor i1 %t393, true - br label %logic.rend4792 -logic.rend4792: - br label %logic.end4787 -logic.end4787: - %t395 = phi i1 [ false, %logic.from4785 ], [ %t394, %logic.rend4792 ] + br label %logic.rend4936 +logic.rend4936: + br label %logic.end4931 +logic.end4931: + %t395 = phi i1 [ false, %logic.from4929 ], [ %t394, %logic.rend4936 ] %t396 = call { ptr, i64, i64 } @finch.gen.addVar(ptr %t358, %S.ast.Node %t366, { ptr, i64, i64 } %t377, %S.ast.Type %t378, { ptr, i64, i64 } %t379, i1 false, i1 %t395) store { ptr, i64, i64 } %t396, ptr %a397 call void @finch_str_drop(ptr %a397) %t398 = load ptr, ptr %a1 %t399 = icmp eq ptr %t398, null - br i1 %t399, label %panic4793, label %ok4794 -panic4793: - call void @finch_panic(ptr @.str.3016, i64 2145, ptr @.str.3017) + br i1 %t399, label %panic4937, label %ok4938 +panic4937: + call void @finch_panic(ptr @.str.3101, i64 2226, ptr @.str.3102) unreachable -ok4794: - %t400 = getelementptr inbounds %S.gen.Gen, ptr %t398, i32 0, i32 38 +ok4938: + %t400 = getelementptr inbounds %S.gen.Gen, ptr %t398, i32 0, i32 39 store i64 0, ptr %t400 call void @finch_str_drop(ptr %a318) call void @finch.drop.S_ast_Type(ptr %a287) - br label %for.step4753 -for.step4753: + br label %for.step4897 +for.step4897: %t401 = load i64, ptr %a270 %t402 = add i64 %t401, 1 store i64 %t402, ptr %a270 - br label %for.cond4751 -for.end4754: + br label %for.cond4895 +for.end4898: %t403 = load ptr, ptr %a1 %t404 = getelementptr inbounds %S.ast.Node, ptr %a119, i32 0, i32 9 %t405 = getelementptr inbounds %S.ast.Node, ptr %a119, i32 0, i32 9 @@ -48830,65 +50478,65 @@ for.end4754: %t409 = load { ptr, i64, i64 }, ptr %t404 %t410 = extractvalue { ptr, i64, i64 } %t409, 1 %t411 = icmp uge i64 %t408, %t410 - br i1 %t411, label %range4795, label %inrange4796 -range4795: - call void @finch_panic_index(ptr @.str.3018, i64 2147, i64 %t408, i64 %t410) + br i1 %t411, label %range4939, label %inrange4940 +range4939: + call void @finch_panic_index(ptr @.str.3103, i64 2228, i64 %t408, i64 %t410) unreachable -inrange4796: +inrange4940: %t412 = extractvalue { ptr, i64, i64 } %t409, 0 %t413 = getelementptr inbounds %S.ast.Node, ptr %t412, i64 %t408 %t414 = load %S.ast.Node, ptr %t413 call void @finch.gen.block(ptr %t403, %S.ast.Node %t414, i1 false) %t415 = load ptr, ptr %a1 %t416 = icmp eq ptr %t415, null - br i1 %t416, label %panic4797, label %ok4798 -panic4797: - call void @finch_panic(ptr @.str.3019, i64 2148, ptr @.str.3020) + br i1 %t416, label %panic4941, label %ok4942 +panic4941: + call void @finch_panic(ptr @.str.3104, i64 2229, ptr @.str.3105) unreachable -ok4798: +ok4942: %t417 = getelementptr inbounds %S.gen.Gen, ptr %t415, i32 0, i32 9 %t418 = load i1, ptr %t417 %t419 = xor i1 %t418, true - br i1 %t419, label %then4799, label %endif4801 -then4799: + br i1 %t419, label %then4943, label %endif4945 +then4943: %t420 = load ptr, ptr %a1 %t421 = icmp eq ptr %t420, null - br i1 %t421, label %panic4802, label %ok4803 -panic4802: - call void @finch_panic(ptr @.str.3021, i64 2149, ptr @.str.3022) + br i1 %t421, label %panic4946, label %ok4947 +panic4946: + call void @finch_panic(ptr @.str.3106, i64 2230, ptr @.str.3107) unreachable -ok4803: +ok4947: %t422 = getelementptr inbounds %S.gen.Gen, ptr %t420, i32 0, i32 13 %t423 = getelementptr inbounds %S.gen.FnSig, ptr %t422, i32 0, i32 12 %t424 = getelementptr inbounds %S.ast.Type, ptr %t423, i32 0, i32 0 %t425 = load { ptr, i64, i64 }, ptr %t424 store { ptr, i64, i64 } %t425, ptr %a426 - store { ptr, i64, i64 } { ptr @.str.3023, i64 4, i64 0 }, ptr %a427 + store { ptr, i64, i64 } { ptr @.str.3108, i64 4, i64 0 }, ptr %a427 %t428 = call i32 @finch_str_eq(ptr %a426, ptr %a427) %t429 = icmp eq i32 %t428, 0 - br i1 %t429, label %then4804, label %endif4806 -then4804: + br i1 %t429, label %then4948, label %endif4950 +then4948: %t430 = load ptr, ptr %a1 %t431 = load %S.ast.Node, ptr %a119 %t432 = getelementptr inbounds %S.ast.Node, ptr %a119, i32 0, i32 1 %t433 = load { ptr, i64, i64 }, ptr %t432 - store { ptr, i64, i64 } { ptr @.str.3024, i64 10, i64 0 }, ptr %a435 + store { ptr, i64, i64 } { ptr @.str.3109, i64 10, i64 0 }, ptr %a435 store { ptr, i64, i64 } %t433, ptr %a436 call void @finch_str_concat(ptr %a434, ptr %a435, ptr %a436) %t437 = load { ptr, i64, i64 }, ptr %a434 store { ptr, i64, i64 } %t437, ptr %a439 - store { ptr, i64, i64 } { ptr @.str.3025, i64 38, i64 0 }, ptr %a440 + store { ptr, i64, i64 } { ptr @.str.3110, i64 38, i64 0 }, ptr %a440 call void @finch_str_concat(ptr %a438, ptr %a439, ptr %a440) store { ptr, i64, i64 } %t437, ptr %a441 call void @finch_str_drop(ptr %a441) %t442 = load { ptr, i64, i64 }, ptr %a438 %t443 = load ptr, ptr %a1 %t444 = icmp eq ptr %t443, null - br i1 %t444, label %panic4807, label %ok4808 -panic4807: - call void @finch_panic(ptr @.str.3026, i64 2150, ptr @.str.3027) + br i1 %t444, label %panic4951, label %ok4952 +panic4951: + call void @finch_panic(ptr @.str.3111, i64 2231, ptr @.str.3112) unreachable -ok4808: +ok4952: %t445 = getelementptr inbounds %S.gen.Gen, ptr %t443, i32 0, i32 13 %t446 = getelementptr inbounds %S.gen.FnSig, ptr %t445, i32 0, i32 12 %t447 = load %S.ast.Type, ptr %t446 @@ -48904,42 +50552,42 @@ ok4808: call void @finch.gen.fail(ptr %t430, %S.ast.Node %t431, { ptr, i64, i64 } %t454) store { ptr, i64, i64 } %t454, ptr %a455 call void @finch_str_drop(ptr %a455) - br label %endif4806 -endif4806: + br label %endif4950 +endif4950: %t456 = load ptr, ptr %a1 call void @finch.gen.unwind(ptr %t456, i64 0) %t457 = load ptr, ptr %a1 %t458 = icmp eq ptr %t457, null - br i1 %t458, label %panic4809, label %ok4810 -panic4809: - call void @finch_panic(ptr @.str.3028, i64 2153, ptr @.str.3029) + br i1 %t458, label %panic4953, label %ok4954 +panic4953: + call void @finch_panic(ptr @.str.3113, i64 2234, ptr @.str.3114) unreachable -ok4810: +ok4954: %t459 = getelementptr inbounds %S.gen.Gen, ptr %t457, i32 0, i32 13 %t460 = getelementptr inbounds %S.gen.FnSig, ptr %t459, i32 0, i32 9 %t461 = load i1, ptr %t460 - br i1 %t461, label %then4811, label %else4812 -then4811: + br i1 %t461, label %then4955, label %else4956 +then4955: %t462 = load ptr, ptr %a1 %t463 = load ptr, ptr %a1 %t464 = load ptr, ptr %a1 %t465 = icmp eq ptr %t464, null - br i1 %t465, label %panic4814, label %ok4815 -panic4814: - call void @finch_panic(ptr @.str.3031, i64 2154, ptr @.str.3032) + br i1 %t465, label %panic4958, label %ok4959 +panic4958: + call void @finch_panic(ptr @.str.3116, i64 2235, ptr @.str.3117) unreachable -ok4815: +ok4959: %t466 = getelementptr inbounds %S.gen.Gen, ptr %t464, i32 0, i32 13 %t467 = load %S.gen.FnSig, ptr %t466 %t468 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t463, %S.gen.FnSig %t467) - store { ptr, i64, i64 } { ptr @.str.3030, i64 4, i64 0 }, ptr %a470 + store { ptr, i64, i64 } { ptr @.str.3115, i64 4, i64 0 }, ptr %a470 store { ptr, i64, i64 } %t468, ptr %a471 call void @finch_str_concat(ptr %a469, ptr %a470, ptr %a471) store { ptr, i64, i64 } %t468, ptr %a472 call void @finch_str_drop(ptr %a472) %t473 = load { ptr, i64, i64 }, ptr %a469 store { ptr, i64, i64 } %t473, ptr %a475 - store { ptr, i64, i64 } { ptr @.str.3033, i64 53, i64 0 }, ptr %a476 + store { ptr, i64, i64 } { ptr @.str.3118, i64 53, i64 0 }, ptr %a476 call void @finch_str_concat(ptr %a474, ptr %a475, ptr %a476) store { ptr, i64, i64 } %t473, ptr %a477 call void @finch_str_drop(ptr %a477) @@ -48947,23 +50595,23 @@ ok4815: call void @finch.gen.emit(ptr %t462, { ptr, i64, i64 } %t478) store { ptr, i64, i64 } %t478, ptr %a479 call void @finch_str_drop(ptr %a479) - br label %endif4813 -else4812: + br label %endif4957 +else4956: %t480 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t480, { ptr, i64, i64 } { ptr @.str.3034, i64 8, i64 0 }) - br label %endif4813 -endif4813: - br label %endif4801 -endif4801: - store { ptr, i64, i64 } { ptr @.str.3035, i64 0, i64 0 }, ptr %a481 + call void @finch.gen.emit(ptr %t480, { ptr, i64, i64 } { ptr @.str.3119, i64 8, i64 0 }) + br label %endif4957 +endif4957: + br label %endif4945 +endif4945: + store { ptr, i64, i64 } { ptr @.str.3120, i64 0, i64 0 }, ptr %a481 %t482 = load i64, ptr %a151 %t483 = icmp sge i64 %t482, 0 - br i1 %t483, label %then4816, label %endif4818 -then4816: + br i1 %t483, label %then4960, label %endif4962 +then4960: %t484 = load i64, ptr %a151 call void @finch_str_from_int(ptr %a485, i64 %t484) %t486 = load { ptr, i64, i64 }, ptr %a485 - store { ptr, i64, i64 } { ptr @.str.3036, i64 7, i64 0 }, ptr %a488 + store { ptr, i64, i64 } { ptr @.str.3121, i64 7, i64 0 }, ptr %a488 store { ptr, i64, i64 } %t486, ptr %a489 call void @finch_str_concat(ptr %a487, ptr %a488, ptr %a489) store { ptr, i64, i64 } %t486, ptr %a490 @@ -48973,56 +50621,56 @@ then4816: store { ptr, i64, i64 } %t491, ptr %a481 store { ptr, i64, i64 } %t492, ptr %a493 call void @finch_str_drop(ptr %a493) - br label %endif4818 -endif4818: + br label %endif4962 +endif4962: %t494 = load ptr, ptr %a1 %t495 = icmp eq ptr %t494, null - br i1 %t495, label %panic4819, label %ok4820 -panic4819: - call void @finch_panic(ptr @.str.3037, i64 2163, ptr @.str.3038) + br i1 %t495, label %panic4963, label %ok4964 +panic4963: + call void @finch_panic(ptr @.str.3122, i64 2244, ptr @.str.3123) unreachable -ok4820: - %t496 = getelementptr inbounds %S.gen.Gen, ptr %t494, i32 0, i32 35 +ok4964: + %t496 = getelementptr inbounds %S.gen.Gen, ptr %t494, i32 0, i32 36 store i64 -1, ptr %t496 %t497 = load ptr, ptr %a1 %t498 = icmp eq ptr %t497, null - br i1 %t498, label %panic4821, label %ok4822 -panic4821: - call void @finch_panic(ptr @.str.3039, i64 2164, ptr @.str.3040) + br i1 %t498, label %panic4965, label %ok4966 +panic4965: + call void @finch_panic(ptr @.str.3124, i64 2245, ptr @.str.3125) unreachable -ok4822: +ok4966: %t499 = getelementptr inbounds %S.gen.Gen, ptr %t497, i32 0, i32 3 %t500 = getelementptr inbounds { ptr, i64, i64 }, ptr %t499, i32 0, i32 1 %t501 = load ptr, ptr %a1 %t502 = load ptr, ptr %a1 %t503 = icmp eq ptr %t502, null - br i1 %t503, label %panic4823, label %ok4824 -panic4823: - call void @finch_panic(ptr @.str.3042, i64 2164, ptr @.str.3043) + br i1 %t503, label %panic4967, label %ok4968 +panic4967: + call void @finch_panic(ptr @.str.3127, i64 2245, ptr @.str.3128) unreachable -ok4824: +ok4968: %t504 = getelementptr inbounds %S.gen.Gen, ptr %t502, i32 0, i32 13 %t505 = load %S.gen.FnSig, ptr %t504 %t506 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t501, %S.gen.FnSig %t505) - store { ptr, i64, i64 } { ptr @.str.3041, i64 16, i64 0 }, ptr %a508 + store { ptr, i64, i64 } { ptr @.str.3126, i64 16, i64 0 }, ptr %a508 store { ptr, i64, i64 } %t506, ptr %a509 call void @finch_str_concat(ptr %a507, ptr %a508, ptr %a509) store { ptr, i64, i64 } %t506, ptr %a510 call void @finch_str_drop(ptr %a510) %t511 = load { ptr, i64, i64 }, ptr %a507 store { ptr, i64, i64 } %t511, ptr %a513 - store { ptr, i64, i64 } { ptr @.str.3044, i64 1, i64 0 }, ptr %a514 + store { ptr, i64, i64 } { ptr @.str.3129, i64 1, i64 0 }, ptr %a514 call void @finch_str_concat(ptr %a512, ptr %a513, ptr %a514) store { ptr, i64, i64 } %t511, ptr %a515 call void @finch_str_drop(ptr %a515) %t516 = load { ptr, i64, i64 }, ptr %a512 %t517 = load ptr, ptr %a1 %t518 = icmp eq ptr %t517, null - br i1 %t518, label %panic4825, label %ok4826 -panic4825: - call void @finch_panic(ptr @.str.3045, i64 2164, ptr @.str.3046) + br i1 %t518, label %panic4969, label %ok4970 +panic4969: + call void @finch_panic(ptr @.str.3130, i64 2245, ptr @.str.3131) unreachable -ok4826: +ok4970: %t519 = getelementptr inbounds %S.gen.Gen, ptr %t517, i32 0, i32 13 %t520 = getelementptr inbounds %S.gen.FnSig, ptr %t519, i32 0, i32 11 %t521 = load { ptr, i64, i64 }, ptr %t520 @@ -49033,13 +50681,13 @@ ok4826: call void @finch_str_drop(ptr %a525) %t526 = load { ptr, i64, i64 }, ptr %a522 store { ptr, i64, i64 } %t526, ptr %a528 - store { ptr, i64, i64 } { ptr @.str.3047, i64 1, i64 0 }, ptr %a529 + store { ptr, i64, i64 } { ptr @.str.3132, i64 1, i64 0 }, ptr %a529 call void @finch_str_concat(ptr %a527, ptr %a528, ptr %a529) store { ptr, i64, i64 } %t526, ptr %a530 call void @finch_str_drop(ptr %a530) %t531 = load { ptr, i64, i64 }, ptr %a527 %t532 = getelementptr inbounds { ptr, i64, i64 }, ptr %a190, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.3048, i64 2, i64 0 }, ptr %a533 + store { ptr, i64, i64 } { ptr @.str.3133, i64 2, i64 0 }, ptr %a533 call void @finch_str_join(ptr %a534, ptr %a190, ptr %a533) %t535 = load { ptr, i64, i64 }, ptr %a534 store { ptr, i64, i64 } %t531, ptr %a537 @@ -49051,7 +50699,7 @@ ok4826: call void @finch_str_drop(ptr %a540) %t541 = load { ptr, i64, i64 }, ptr %a536 store { ptr, i64, i64 } %t541, ptr %a543 - store { ptr, i64, i64 } { ptr @.str.3049, i64 1, i64 0 }, ptr %a544 + store { ptr, i64, i64 } { ptr @.str.3134, i64 1, i64 0 }, ptr %a544 call void @finch_str_concat(ptr %a542, ptr %a543, ptr %a544) store { ptr, i64, i64 } %t541, ptr %a545 call void @finch_str_drop(ptr %a545) @@ -49064,21 +50712,21 @@ ok4826: call void @finch_str_drop(ptr %a551) %t552 = load { ptr, i64, i64 }, ptr %a548 store { ptr, i64, i64 } %t552, ptr %a554 - store { ptr, i64, i64 } { ptr @.str.3050, i64 10, i64 0 }, ptr %a555 + store { ptr, i64, i64 } { ptr @.str.3135, i64 10, i64 0 }, ptr %a555 call void @finch_str_concat(ptr %a553, ptr %a554, ptr %a555) store { ptr, i64, i64 } %t552, ptr %a556 call void @finch_str_drop(ptr %a556) %t557 = load { ptr, i64, i64 }, ptr %a553 %t558 = load ptr, ptr %a1 %t559 = icmp eq ptr %t558, null - br i1 %t559, label %panic4827, label %ok4828 -panic4827: - call void @finch_panic(ptr @.str.3051, i64 2165, ptr @.str.3052) + br i1 %t559, label %panic4971, label %ok4972 +panic4971: + call void @finch_panic(ptr @.str.3136, i64 2246, ptr @.str.3137) unreachable -ok4828: +ok4972: %t560 = getelementptr inbounds %S.gen.Gen, ptr %t558, i32 0, i32 5 %t561 = getelementptr inbounds { ptr, i64, i64 }, ptr %t560, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.3053, i64 1, i64 0 }, ptr %a562 + store { ptr, i64, i64 } { ptr @.str.3138, i64 1, i64 0 }, ptr %a562 call void @finch_str_join(ptr %a563, ptr %t560, ptr %a562) %t564 = load { ptr, i64, i64 }, ptr %a563 store { ptr, i64, i64 } %t557, ptr %a566 @@ -49090,21 +50738,21 @@ ok4828: call void @finch_str_drop(ptr %a569) %t570 = load { ptr, i64, i64 }, ptr %a565 store { ptr, i64, i64 } %t570, ptr %a572 - store { ptr, i64, i64 } { ptr @.str.3054, i64 1, i64 0 }, ptr %a573 + store { ptr, i64, i64 } { ptr @.str.3139, i64 1, i64 0 }, ptr %a573 call void @finch_str_concat(ptr %a571, ptr %a572, ptr %a573) store { ptr, i64, i64 } %t570, ptr %a574 call void @finch_str_drop(ptr %a574) %t575 = load { ptr, i64, i64 }, ptr %a571 %t576 = load ptr, ptr %a1 %t577 = icmp eq ptr %t576, null - br i1 %t577, label %panic4829, label %ok4830 -panic4829: - call void @finch_panic(ptr @.str.3055, i64 2165, ptr @.str.3056) + br i1 %t577, label %panic4973, label %ok4974 +panic4973: + call void @finch_panic(ptr @.str.3140, i64 2246, ptr @.str.3141) unreachable -ok4830: +ok4974: %t578 = getelementptr inbounds %S.gen.Gen, ptr %t576, i32 0, i32 4 %t579 = getelementptr inbounds { ptr, i64, i64 }, ptr %t578, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.3057, i64 1, i64 0 }, ptr %a580 + store { ptr, i64, i64 } { ptr @.str.3142, i64 1, i64 0 }, ptr %a580 call void @finch_str_join(ptr %a581, ptr %t578, ptr %a580) %t582 = load { ptr, i64, i64 }, ptr %a581 store { ptr, i64, i64 } %t575, ptr %a584 @@ -49116,7 +50764,7 @@ ok4830: call void @finch_str_drop(ptr %a587) %t588 = load { ptr, i64, i64 }, ptr %a583 store { ptr, i64, i64 } %t588, ptr %a590 - store { ptr, i64, i64 } { ptr @.str.3058, i64 3, i64 0 }, ptr %a591 + store { ptr, i64, i64 } { ptr @.str.3143, i64 3, i64 0 }, ptr %a591 call void @finch_str_concat(ptr %a589, ptr %a590, ptr %a591) store { ptr, i64, i64 } %t588, ptr %a592 call void @finch_str_drop(ptr %a592) @@ -49147,59 +50795,59 @@ entry: store %S.ast.Node %p1, ptr %a2 store i1 %p2, ptr %a3 %t4 = load i1, ptr %a3 - br i1 %t4, label %then4831, label %endif4833 -then4831: + br i1 %t4, label %then4975, label %endif4977 +then4975: %t5 = load ptr, ptr %a1 call void @finch.gen.pushScope(ptr %t5) - br label %endif4833 -endif4833: + br label %endif4977 +endif4977: %t6 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 store i64 0, ptr %a7 - br label %each.cond4834 -each.cond4834: + br label %each.cond4978 +each.cond4978: %t8 = getelementptr inbounds { ptr, i64, i64 }, ptr %t6, i32 0, i32 1 %t9 = load i64, ptr %t8 %t10 = load i64, ptr %a7 %t11 = icmp slt i64 %t10, %t9 - br i1 %t11, label %each.body4835, label %each.end4837 -each.body4835: + br i1 %t11, label %each.body4979, label %each.end4981 +each.body4979: %t12 = load ptr, ptr %t6 %t13 = getelementptr inbounds %S.ast.Node, ptr %t12, i64 %t10 %t14 = load %S.ast.Node, ptr %t13 store %S.ast.Node %t14, ptr %a15 %t16 = load ptr, ptr %a1 %t17 = icmp eq ptr %t16, null - br i1 %t17, label %panic4838, label %ok4839 -panic4838: - call void @finch_panic(ptr @.str.3059, i64 2175, ptr @.str.3060) + br i1 %t17, label %panic4982, label %ok4983 +panic4982: + call void @finch_panic(ptr @.str.3144, i64 2256, ptr @.str.3145) unreachable -ok4839: +ok4983: %t18 = getelementptr inbounds %S.gen.Gen, ptr %t16, i32 0, i32 9 %t19 = load i1, ptr %t18 - br i1 %t19, label %then4840, label %endif4842 -then4840: + br i1 %t19, label %then4984, label %endif4986 +then4984: %t20 = load ptr, ptr %a1 %t21 = load %S.ast.Node, ptr %a15 - call void @finch.gen.fail(ptr %t20, %S.ast.Node %t21, { ptr, i64, i64 } { ptr @.str.3061, i64 66, i64 0 }) - br label %endif4842 -endif4842: + call void @finch.gen.fail(ptr %t20, %S.ast.Node %t21, { ptr, i64, i64 } { ptr @.str.3146, i64 66, i64 0 }) + br label %endif4986 +endif4986: %t22 = load ptr, ptr %a1 %t23 = load %S.ast.Node, ptr %a15 call void @finch.gen.stmt(ptr %t22, %S.ast.Node %t23) - br label %each.step4836 -each.step4836: + br label %each.step4980 +each.step4980: %t24 = load i64, ptr %a7 %t25 = add i64 %t24, 1 store i64 %t25, ptr %a7 - br label %each.cond4834 -each.end4837: + br label %each.cond4978 +each.end4981: %t26 = load i1, ptr %a3 - br i1 %t26, label %then4843, label %endif4845 -then4843: + br i1 %t26, label %then4987, label %endif4989 +then4987: %t27 = load ptr, ptr %a1 call void @finch.gen.endScope(ptr %t27) - br label %endif4845 -endif4845: + br label %endif4989 +endif4989: ret void } @@ -49291,23 +50939,23 @@ entry: %t4 = load i64, ptr %t3 %t5 = load ptr, ptr %a1 %t6 = icmp eq ptr %t5, null - br i1 %t6, label %panic4846, label %ok4847 -panic4846: - call void @finch_panic(ptr @.str.3062, i64 2186, ptr @.str.3063) + br i1 %t6, label %panic4990, label %ok4991 +panic4990: + call void @finch_panic(ptr @.str.3147, i64 2267, ptr @.str.3148) unreachable -ok4847: - %t7 = getelementptr inbounds %S.gen.Gen, ptr %t5, i32 0, i32 36 +ok4991: + %t7 = getelementptr inbounds %S.gen.Gen, ptr %t5, i32 0, i32 37 store i64 %t4, ptr %t7 %t8 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 12 %t9 = load i64, ptr %t8 %t10 = load ptr, ptr %a1 %t11 = icmp eq ptr %t10, null - br i1 %t11, label %panic4848, label %ok4849 -panic4848: - call void @finch_panic(ptr @.str.3064, i64 2187, ptr @.str.3065) + br i1 %t11, label %panic4992, label %ok4993 +panic4992: + call void @finch_panic(ptr @.str.3149, i64 2268, ptr @.str.3150) unreachable -ok4849: - %t12 = getelementptr inbounds %S.gen.Gen, ptr %t10, i32 0, i32 37 +ok4993: + %t12 = getelementptr inbounds %S.gen.Gen, ptr %t10, i32 0, i32 38 store i64 %t9, ptr %t12 %t13 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 %t14 = load { ptr, i64, i64 }, ptr %t13 @@ -49317,77 +50965,77 @@ ok4849: store { ptr, i64, i64 } %t17, ptr %a18 %t19 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t19, ptr %a20 - store { ptr, i64, i64 } { ptr @.str.3066, i64 5, i64 0 }, ptr %a21 + store { ptr, i64, i64 } { ptr @.str.3151, i64 5, i64 0 }, ptr %a21 %t22 = call i32 @finch_str_eq(ptr %a20, ptr %a21) %t23 = icmp ne i32 %t22, 0 - br i1 %t23, label %then4850, label %else4851 -then4850: + br i1 %t23, label %then4994, label %else4995 +then4994: %t24 = load ptr, ptr %a1 %t25 = load %S.ast.Node, ptr %a2 call void @finch.gen.block(ptr %t24, %S.ast.Node %t25, i1 true) - br label %endif4852 -else4851: + br label %endif4996 +else4995: %t26 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t26, ptr %a27 - store { ptr, i64, i64 } { ptr @.str.3067, i64 4, i64 0 }, ptr %a28 + store { ptr, i64, i64 } { ptr @.str.3152, i64 4, i64 0 }, ptr %a28 %t29 = call i32 @finch_str_eq(ptr %a27, ptr %a28) %t30 = icmp ne i32 %t29, 0 - br i1 %t30, label %then4853, label %else4854 -then4853: + br i1 %t30, label %then4997, label %else4998 +then4997: %t31 = load ptr, ptr %a1 %t32 = load %S.ast.Node, ptr %a2 call void @finch.gen.declStmt(ptr %t31, %S.ast.Node %t32) - br label %endif4855 -else4854: + br label %endif4999 +else4998: %t33 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t33, ptr %a34 - store { ptr, i64, i64 } { ptr @.str.3068, i64 6, i64 0 }, ptr %a35 + store { ptr, i64, i64 } { ptr @.str.3153, i64 6, i64 0 }, ptr %a35 %t36 = call i32 @finch_str_eq(ptr %a34, ptr %a35) %t37 = icmp ne i32 %t36, 0 - br i1 %t37, label %then4856, label %else4857 -then4856: + br i1 %t37, label %then5000, label %else5001 +then5000: %t38 = load ptr, ptr %a1 %t39 = load %S.ast.Node, ptr %a2 call void @finch.gen.assignStmt(ptr %t38, %S.ast.Node %t39) - br label %endif4858 -else4857: + br label %endif5002 +else5001: %t40 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t40, ptr %a41 - store { ptr, i64, i64 } { ptr @.str.3069, i64 4, i64 0 }, ptr %a42 + store { ptr, i64, i64 } { ptr @.str.3154, i64 4, i64 0 }, ptr %a42 %t43 = call i32 @finch_str_eq(ptr %a41, ptr %a42) %t44 = icmp ne i32 %t43, 0 - br i1 %t44, label %then4859, label %else4860 -then4859: + br i1 %t44, label %then5003, label %else5004 +then5003: %t45 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t46 = load { ptr, i64, i64 }, ptr %t45 %t47 = extractvalue { ptr, i64, i64 } %t46, 1 %t48 = icmp uge i64 0, %t47 - br i1 %t48, label %range4862, label %inrange4863 -range4862: - call void @finch_panic_index(ptr @.str.3070, i64 2196, i64 0, i64 %t47) + br i1 %t48, label %range5006, label %inrange5007 +range5006: + call void @finch_panic_index(ptr @.str.3155, i64 2277, i64 0, i64 %t47) unreachable -inrange4863: +inrange5007: %t49 = extractvalue { ptr, i64, i64 } %t46, 0 %t50 = getelementptr inbounds %S.ast.Node, ptr %t49, i64 0 %t51 = getelementptr inbounds %S.ast.Node, ptr %t50, i32 0, i32 0 %t52 = load { ptr, i64, i64 }, ptr %t51 store { ptr, i64, i64 } %t52, ptr %a53 - store { ptr, i64, i64 } { ptr @.str.3071, i64 2, i64 0 }, ptr %a54 + store { ptr, i64, i64 } { ptr @.str.3156, i64 2, i64 0 }, ptr %a54 %t55 = call i32 @finch_str_eq(ptr %a53, ptr %a54) %t56 = icmp ne i32 %t55, 0 - br i1 %t56, label %then4864, label %else4865 -then4864: + br i1 %t56, label %then5008, label %else5009 +then5008: %t57 = load ptr, ptr %a1 %t58 = load ptr, ptr %a1 %t59 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t60 = load { ptr, i64, i64 }, ptr %t59 %t61 = extractvalue { ptr, i64, i64 } %t60, 1 %t62 = icmp uge i64 0, %t61 - br i1 %t62, label %range4867, label %inrange4868 -range4867: - call void @finch_panic_index(ptr @.str.3072, i64 2197, i64 0, i64 %t61) + br i1 %t62, label %range5011, label %inrange5012 +range5011: + call void @finch_panic_index(ptr @.str.3157, i64 2278, i64 0, i64 %t61) unreachable -inrange4868: +inrange5012: %t63 = extractvalue { ptr, i64, i64 } %t60, 0 %t64 = getelementptr inbounds %S.ast.Node, ptr %t63, i64 0 %t65 = load %S.ast.Node, ptr %t64 @@ -49395,19 +51043,19 @@ inrange4868: call void @finch.gen.release(ptr %t57, %S.gen.Val %t66) store %S.gen.Val %t66, ptr %a67 call void @finch.drop.S_gen_Val(ptr %a67) - br label %endif4866 -else4865: + br label %endif5010 +else5009: %t68 = load ptr, ptr %a1 %t69 = load ptr, ptr %a1 %t70 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t71 = load { ptr, i64, i64 }, ptr %t70 %t72 = extractvalue { ptr, i64, i64 } %t71, 1 %t73 = icmp uge i64 0, %t72 - br i1 %t73, label %range4869, label %inrange4870 -range4869: - call void @finch_panic_index(ptr @.str.3073, i64 2199, i64 0, i64 %t72) + br i1 %t73, label %range5013, label %inrange5014 +range5013: + call void @finch_panic_index(ptr @.str.3158, i64 2280, i64 0, i64 %t72) unreachable -inrange4870: +inrange5014: %t74 = extractvalue { ptr, i64, i64 } %t71, 0 %t75 = getelementptr inbounds %S.ast.Node, ptr %t74, i64 0 %t76 = load %S.ast.Node, ptr %t75 @@ -49415,115 +51063,115 @@ inrange4870: call void @finch.gen.release(ptr %t68, %S.gen.Val %t77) store %S.gen.Val %t77, ptr %a78 call void @finch.drop.S_gen_Val(ptr %a78) - br label %endif4866 -endif4866: - br label %endif4861 -else4860: + br label %endif5010 +endif5010: + br label %endif5005 +else5004: %t79 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t79, ptr %a80 - store { ptr, i64, i64 } { ptr @.str.3074, i64 5, i64 0 }, ptr %a81 + store { ptr, i64, i64 } { ptr @.str.3159, i64 5, i64 0 }, ptr %a81 %t82 = call i32 @finch_str_eq(ptr %a80, ptr %a81) %t83 = icmp ne i32 %t82, 0 - br i1 %t83, label %then4871, label %else4872 -then4871: + br i1 %t83, label %then5015, label %else5016 +then5015: %t84 = load ptr, ptr %a1 %t85 = load %S.ast.Node, ptr %a2 %t86 = call %S.gen.Val @finch.gen.matchGen(ptr %t84, %S.ast.Node %t85, i1 false) store %S.gen.Val %t86, ptr %a87 call void @finch.drop.S_gen_Val(ptr %a87) - br label %endif4873 -else4872: + br label %endif5017 +else5016: %t88 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t88, ptr %a89 - store { ptr, i64, i64 } { ptr @.str.3075, i64 2, i64 0 }, ptr %a90 + store { ptr, i64, i64 } { ptr @.str.3160, i64 2, i64 0 }, ptr %a90 %t91 = call i32 @finch_str_eq(ptr %a89, ptr %a90) %t92 = icmp ne i32 %t91, 0 - br i1 %t92, label %then4874, label %else4875 -then4874: + br i1 %t92, label %then5018, label %else5019 +then5018: %t93 = load ptr, ptr %a1 %t94 = load %S.ast.Node, ptr %a2 call void @finch.gen.ifStmt(ptr %t93, %S.ast.Node %t94) - br label %endif4876 -else4875: + br label %endif5020 +else5019: %t95 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t95, ptr %a96 - store { ptr, i64, i64 } { ptr @.str.3076, i64 5, i64 0 }, ptr %a97 + store { ptr, i64, i64 } { ptr @.str.3161, i64 5, i64 0 }, ptr %a97 %t98 = call i32 @finch_str_eq(ptr %a96, ptr %a97) %t99 = icmp ne i32 %t98, 0 - br i1 %t99, label %then4877, label %else4878 -then4877: + br i1 %t99, label %then5021, label %else5022 +then5021: %t100 = load ptr, ptr %a1 %t101 = load %S.ast.Node, ptr %a2 call void @finch.gen.whileStmt(ptr %t100, %S.ast.Node %t101) - br label %endif4879 -else4878: + br label %endif5023 +else5022: %t102 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t102, ptr %a103 - store { ptr, i64, i64 } { ptr @.str.3077, i64 3, i64 0 }, ptr %a104 + store { ptr, i64, i64 } { ptr @.str.3162, i64 3, i64 0 }, ptr %a104 %t105 = call i32 @finch_str_eq(ptr %a103, ptr %a104) %t106 = icmp ne i32 %t105, 0 - br i1 %t106, label %then4880, label %else4881 -then4880: + br i1 %t106, label %then5024, label %else5025 +then5024: %t107 = load ptr, ptr %a1 %t108 = load %S.ast.Node, ptr %a2 call void @finch.gen.forStmt(ptr %t107, %S.ast.Node %t108) - br label %endif4882 -else4881: + br label %endif5026 +else5025: %t109 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t109, ptr %a110 - store { ptr, i64, i64 } { ptr @.str.3078, i64 4, i64 0 }, ptr %a111 + store { ptr, i64, i64 } { ptr @.str.3163, i64 4, i64 0 }, ptr %a111 %t112 = call i32 @finch_str_eq(ptr %a110, ptr %a111) %t113 = icmp ne i32 %t112, 0 - br i1 %t113, label %then4883, label %else4884 -then4883: + br i1 %t113, label %then5027, label %else5028 +then5027: %t114 = load ptr, ptr %a1 %t115 = load %S.ast.Node, ptr %a2 call void @finch.gen.eachStmt(ptr %t114, %S.ast.Node %t115) - br label %endif4885 -else4884: + br label %endif5029 +else5028: %t116 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t116, ptr %a117 - store { ptr, i64, i64 } { ptr @.str.3079, i64 6, i64 0 }, ptr %a118 + store { ptr, i64, i64 } { ptr @.str.3164, i64 6, i64 0 }, ptr %a118 %t119 = call i32 @finch_str_eq(ptr %a117, ptr %a118) %t120 = icmp ne i32 %t119, 0 - br i1 %t120, label %then4886, label %else4887 -then4886: + br i1 %t120, label %then5030, label %else5031 +then5030: %t121 = load ptr, ptr %a1 %t122 = load %S.ast.Node, ptr %a2 call void @finch.gen.returnStmt(ptr %t121, %S.ast.Node %t122) - br label %endif4888 -else4887: + br label %endif5032 +else5031: %t123 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t123, ptr %a124 - store { ptr, i64, i64 } { ptr @.str.3080, i64 5, i64 0 }, ptr %a125 + store { ptr, i64, i64 } { ptr @.str.3165, i64 5, i64 0 }, ptr %a125 %t126 = call i32 @finch_str_eq(ptr %a124, ptr %a125) %t127 = icmp ne i32 %t126, 0 - br i1 %t127, label %then4889, label %else4890 -then4889: + br i1 %t127, label %then5033, label %else5034 +then5033: %t128 = load ptr, ptr %a1 %t129 = icmp eq ptr %t128, null - br i1 %t129, label %panic4892, label %ok4893 -panic4892: - call void @finch_panic(ptr @.str.3081, i64 2214, ptr @.str.3082) + br i1 %t129, label %panic5036, label %ok5037 +panic5036: + call void @finch_panic(ptr @.str.3166, i64 2295, ptr @.str.3167) unreachable -ok4893: - %t130 = getelementptr inbounds %S.gen.Gen, ptr %t128, i32 0, i32 45 +ok5037: + %t130 = getelementptr inbounds %S.gen.Gen, ptr %t128, i32 0, i32 46 %t131 = load i64, ptr %t130 %t132 = icmp sgt i64 %t131, 0 - br i1 %t132, label %then4894, label %endif4896 -then4894: + br i1 %t132, label %then5038, label %endif5040 +then5038: %t133 = load ptr, ptr %a1 %t134 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t133, %S.ast.Node %t134, { ptr, i64, i64 } { ptr @.str.3083, i64 33, i64 0 }) - br label %endif4896 -endif4896: + call void @finch.gen.fail(ptr %t133, %S.ast.Node %t134, { ptr, i64, i64 } { ptr @.str.3168, i64 33, i64 0 }) + br label %endif5040 +endif5040: %t135 = load ptr, ptr %a1 %t136 = icmp eq ptr %t135, null - br i1 %t136, label %panic4897, label %ok4898 -panic4897: - call void @finch_panic(ptr @.str.3084, i64 2217, ptr @.str.3085) + br i1 %t136, label %panic5041, label %ok5042 +panic5041: + call void @finch_panic(ptr @.str.3169, i64 2298, ptr @.str.3170) unreachable -ok4898: +ok5042: %t137 = getelementptr inbounds %S.gen.Gen, ptr %t135, i32 0, i32 10 %t138 = getelementptr inbounds { ptr, i64, i64 }, ptr %t137, i32 0, i32 1 %t139 = load i64, ptr %t138 @@ -49531,21 +51179,21 @@ ok4898: store i64 %t140, ptr %a141 %t142 = load ptr, ptr %a1 %t143 = icmp eq ptr %t142, null - br i1 %t143, label %panic4899, label %ok4900 -panic4899: - call void @finch_panic(ptr @.str.3086, i64 2218, ptr @.str.3087) + br i1 %t143, label %panic5043, label %ok5044 +panic5043: + call void @finch_panic(ptr @.str.3171, i64 2299, ptr @.str.3172) unreachable -ok4900: +ok5044: %t144 = getelementptr inbounds %S.gen.Gen, ptr %t142, i32 0, i32 10 %t145 = load i64, ptr %a141 %t146 = load { ptr, i64, i64 }, ptr %t144 %t147 = extractvalue { ptr, i64, i64 } %t146, 1 %t148 = icmp uge i64 %t145, %t147 - br i1 %t148, label %range4901, label %inrange4902 -range4901: - call void @finch_panic_index(ptr @.str.3088, i64 2218, i64 %t145, i64 %t147) + br i1 %t148, label %range5045, label %inrange5046 +range5045: + call void @finch_panic_index(ptr @.str.3173, i64 2299, i64 %t145, i64 %t147) unreachable -inrange4902: +inrange5046: %t149 = extractvalue { ptr, i64, i64 } %t146, 0 %t150 = getelementptr inbounds %S.gen.Scope, ptr %t149, i64 %t145 %t151 = getelementptr inbounds %S.gen.Scope, ptr %t150, i32 0, i32 3 @@ -49553,21 +51201,21 @@ inrange4902: %t153 = insertvalue %S.gen.Cleanup zeroinitializer, i1 true, 0 %t154 = load ptr, ptr %a1 %t155 = icmp eq ptr %t154, null - br i1 %t155, label %panic4903, label %ok4904 -panic4903: - call void @finch_panic(ptr @.str.3089, i64 2218, ptr @.str.3090) + br i1 %t155, label %panic5047, label %ok5048 +panic5047: + call void @finch_panic(ptr @.str.3174, i64 2299, ptr @.str.3175) unreachable -ok4904: +ok5048: %t156 = getelementptr inbounds %S.gen.Gen, ptr %t154, i32 0, i32 10 %t157 = load i64, ptr %a141 %t158 = load { ptr, i64, i64 }, ptr %t156 %t159 = extractvalue { ptr, i64, i64 } %t158, 1 %t160 = icmp uge i64 %t157, %t159 - br i1 %t160, label %range4905, label %inrange4906 -range4905: - call void @finch_panic_index(ptr @.str.3091, i64 2218, i64 %t157, i64 %t159) + br i1 %t160, label %range5049, label %inrange5050 +range5049: + call void @finch_panic_index(ptr @.str.3176, i64 2299, i64 %t157, i64 %t159) unreachable -inrange4906: +inrange5050: %t161 = extractvalue { ptr, i64, i64 } %t158, 0 %t162 = getelementptr inbounds %S.gen.Scope, ptr %t161, i64 %t157 %t163 = getelementptr inbounds %S.gen.Scope, ptr %t162, i32 0, i32 1 @@ -49583,21 +51231,21 @@ inrange4906: store i64 %t168, ptr %t152 %t171 = load ptr, ptr %a1 %t172 = icmp eq ptr %t171, null - br i1 %t172, label %panic4907, label %ok4908 -panic4907: - call void @finch_panic(ptr @.str.3092, i64 2219, ptr @.str.3093) + br i1 %t172, label %panic5051, label %ok5052 +panic5051: + call void @finch_panic(ptr @.str.3177, i64 2300, ptr @.str.3178) unreachable -ok4908: +ok5052: %t173 = getelementptr inbounds %S.gen.Gen, ptr %t171, i32 0, i32 10 %t174 = load i64, ptr %a141 %t175 = load { ptr, i64, i64 }, ptr %t173 %t176 = extractvalue { ptr, i64, i64 } %t175, 1 %t177 = icmp uge i64 %t174, %t176 - br i1 %t177, label %range4909, label %inrange4910 -range4909: - call void @finch_panic_index(ptr @.str.3094, i64 2219, i64 %t174, i64 %t176) + br i1 %t177, label %range5053, label %inrange5054 +range5053: + call void @finch_panic_index(ptr @.str.3179, i64 2300, i64 %t174, i64 %t176) unreachable -inrange4910: +inrange5054: %t178 = extractvalue { ptr, i64, i64 } %t175, 0 %t179 = getelementptr inbounds %S.gen.Scope, ptr %t178, i64 %t174 %t180 = getelementptr inbounds %S.gen.Scope, ptr %t179, i32 0, i32 1 @@ -49606,11 +51254,11 @@ inrange4910: %t183 = load { ptr, i64, i64 }, ptr %t182 %t184 = extractvalue { ptr, i64, i64 } %t183, 1 %t185 = icmp uge i64 0, %t184 - br i1 %t185, label %range4911, label %inrange4912 -range4911: - call void @finch_panic_index(ptr @.str.3095, i64 2219, i64 0, i64 %t184) + br i1 %t185, label %range5055, label %inrange5056 +range5055: + call void @finch_panic_index(ptr @.str.3180, i64 2300, i64 0, i64 %t184) unreachable -inrange4912: +inrange5056: %t186 = extractvalue { ptr, i64, i64 } %t183, 0 %t187 = getelementptr inbounds %S.ast.Node, ptr %t186, i64 0 %t188 = load %S.ast.Node, ptr %t187 @@ -49626,33 +51274,33 @@ inrange4912: store i64 %t193, ptr %t181 %t196 = load ptr, ptr %a1 %t197 = icmp eq ptr %t196, null - br i1 %t197, label %panic4913, label %ok4914 -panic4913: - call void @finch_panic(ptr @.str.3096, i64 2220, ptr @.str.3097) + br i1 %t197, label %panic5057, label %ok5058 +panic5057: + call void @finch_panic(ptr @.str.3181, i64 2301, ptr @.str.3182) unreachable -ok4914: +ok5058: %t198 = getelementptr inbounds %S.gen.Gen, ptr %t196, i32 0, i32 10 %t199 = load i64, ptr %a141 %t200 = load { ptr, i64, i64 }, ptr %t198 %t201 = extractvalue { ptr, i64, i64 } %t200, 1 %t202 = icmp uge i64 %t199, %t201 - br i1 %t202, label %range4915, label %inrange4916 -range4915: - call void @finch_panic_index(ptr @.str.3098, i64 2220, i64 %t199, i64 %t201) + br i1 %t202, label %range5059, label %inrange5060 +range5059: + call void @finch_panic_index(ptr @.str.3183, i64 2301, i64 %t199, i64 %t201) unreachable -inrange4916: +inrange5060: %t203 = extractvalue { ptr, i64, i64 } %t200, 0 %t204 = getelementptr inbounds %S.gen.Scope, ptr %t203, i64 %t199 %t205 = getelementptr inbounds %S.gen.Scope, ptr %t204, i32 0, i32 2 %t206 = getelementptr inbounds { ptr, i64, i64 }, ptr %t205, i32 0, i32 1 %t207 = load ptr, ptr %a1 %t208 = icmp eq ptr %t207, null - br i1 %t208, label %panic4917, label %ok4918 -panic4917: - call void @finch_panic(ptr @.str.3099, i64 2220, ptr @.str.3100) + br i1 %t208, label %panic5061, label %ok5062 +panic5061: + call void @finch_panic(ptr @.str.3184, i64 2301, ptr @.str.3185) unreachable -ok4918: - %t209 = getelementptr inbounds %S.gen.Gen, ptr %t207, i32 0, i32 24 +ok5062: + %t209 = getelementptr inbounds %S.gen.Gen, ptr %t207, i32 0, i32 25 %t210 = load i64, ptr %t209 %t211 = load i64, ptr %t206 %t212 = add i64 %t211, 1 @@ -49661,93 +51309,93 @@ ok4918: %t214 = getelementptr inbounds i64, ptr %t213, i64 %t211 store i64 %t210, ptr %t214 store i64 %t212, ptr %t206 - br label %endif4891 -else4890: + br label %endif5035 +else5034: %t215 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t215, ptr %a216 - store { ptr, i64, i64 } { ptr @.str.3101, i64 5, i64 0 }, ptr %a217 + store { ptr, i64, i64 } { ptr @.str.3186, i64 5, i64 0 }, ptr %a217 %t218 = call i32 @finch_str_eq(ptr %a216, ptr %a217) %t219 = icmp ne i32 %t218, 0 - br label %logic.from4919 -logic.from4919: - br i1 %t219, label %logic.end4921, label %logic.rhs4920 -logic.rhs4920: + br label %logic.from5063 +logic.from5063: + br i1 %t219, label %logic.end5065, label %logic.rhs5064 +logic.rhs5064: %t220 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t220, ptr %a221 - store { ptr, i64, i64 } { ptr @.str.3102, i64 8, i64 0 }, ptr %a222 + store { ptr, i64, i64 } { ptr @.str.3187, i64 8, i64 0 }, ptr %a222 %t223 = call i32 @finch_str_eq(ptr %a221, ptr %a222) %t224 = icmp ne i32 %t223, 0 - br label %logic.rend4922 -logic.rend4922: - br label %logic.end4921 -logic.end4921: - %t225 = phi i1 [ true, %logic.from4919 ], [ %t224, %logic.rend4922 ] - br i1 %t225, label %then4923, label %else4924 -then4923: + br label %logic.rend5066 +logic.rend5066: + br label %logic.end5065 +logic.end5065: + %t225 = phi i1 [ true, %logic.from5063 ], [ %t224, %logic.rend5066 ] + br i1 %t225, label %then5067, label %else5068 +then5067: %t226 = load ptr, ptr %a1 %t227 = icmp eq ptr %t226, null - br i1 %t227, label %panic4926, label %ok4927 -panic4926: - call void @finch_panic(ptr @.str.3103, i64 2222, ptr @.str.3104) + br i1 %t227, label %panic5070, label %ok5071 +panic5070: + call void @finch_panic(ptr @.str.3188, i64 2303, ptr @.str.3189) unreachable -ok4927: - %t228 = getelementptr inbounds %S.gen.Gen, ptr %t226, i32 0, i32 45 +ok5071: + %t228 = getelementptr inbounds %S.gen.Gen, ptr %t226, i32 0, i32 46 %t229 = load i64, ptr %t228 %t230 = icmp sgt i64 %t229, 0 - br i1 %t230, label %then4928, label %endif4930 -then4928: + br i1 %t230, label %then5072, label %endif5074 +then5072: %t231 = load ptr, ptr %a1 %t232 = load %S.ast.Node, ptr %a2 %t233 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t233, ptr %a235 - store { ptr, i64, i64 } { ptr @.str.3105, i64 27, i64 0 }, ptr %a236 + store { ptr, i64, i64 } { ptr @.str.3190, i64 27, i64 0 }, ptr %a236 call void @finch_str_concat(ptr %a234, ptr %a235, ptr %a236) %t237 = load { ptr, i64, i64 }, ptr %a234 call void @finch.gen.fail(ptr %t231, %S.ast.Node %t232, { ptr, i64, i64 } %t237) store { ptr, i64, i64 } %t237, ptr %a238 call void @finch_str_drop(ptr %a238) - br label %endif4930 -endif4930: + br label %endif5074 +endif5074: %t239 = load ptr, ptr %a1 %t240 = icmp eq ptr %t239, null - br i1 %t240, label %panic4931, label %ok4932 -panic4931: - call void @finch_panic(ptr @.str.3106, i64 2225, ptr @.str.3107) + br i1 %t240, label %panic5075, label %ok5076 +panic5075: + call void @finch_panic(ptr @.str.3191, i64 2306, ptr @.str.3192) unreachable -ok4932: +ok5076: %t241 = getelementptr inbounds %S.gen.Gen, ptr %t239, i32 0, i32 12 %t242 = getelementptr inbounds { ptr, i64, i64 }, ptr %t241, i32 0, i32 1 %t243 = load i64, ptr %t242 %t244 = icmp eq i64 %t243, 0 - br i1 %t244, label %then4933, label %endif4935 -then4933: + br i1 %t244, label %then5077, label %endif5079 +then5077: %t245 = load ptr, ptr %a1 %t246 = load %S.ast.Node, ptr %a2 %t247 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t247, ptr %a249 - store { ptr, i64, i64 } { ptr @.str.3108, i64 31, i64 0 }, ptr %a250 + store { ptr, i64, i64 } { ptr @.str.3193, i64 31, i64 0 }, ptr %a250 call void @finch_str_concat(ptr %a248, ptr %a249, ptr %a250) %t251 = load { ptr, i64, i64 }, ptr %a248 call void @finch.gen.fail(ptr %t245, %S.ast.Node %t246, { ptr, i64, i64 } %t251) store { ptr, i64, i64 } %t251, ptr %a252 call void @finch_str_drop(ptr %a252) - br label %endif4935 -endif4935: + br label %endif5079 +endif5079: %t253 = load ptr, ptr %a1 %t254 = icmp eq ptr %t253, null - br i1 %t254, label %panic4936, label %ok4937 -panic4936: - call void @finch_panic(ptr @.str.3109, i64 2228, ptr @.str.3110) + br i1 %t254, label %panic5080, label %ok5081 +panic5080: + call void @finch_panic(ptr @.str.3194, i64 2309, ptr @.str.3195) unreachable -ok4937: +ok5081: %t255 = getelementptr inbounds %S.gen.Gen, ptr %t253, i32 0, i32 12 %t256 = load ptr, ptr %a1 %t257 = icmp eq ptr %t256, null - br i1 %t257, label %panic4938, label %ok4939 -panic4938: - call void @finch_panic(ptr @.str.3111, i64 2228, ptr @.str.3112) + br i1 %t257, label %panic5082, label %ok5083 +panic5082: + call void @finch_panic(ptr @.str.3196, i64 2309, ptr @.str.3197) unreachable -ok4939: +ok5083: %t258 = getelementptr inbounds %S.gen.Gen, ptr %t256, i32 0, i32 12 %t259 = getelementptr inbounds { ptr, i64, i64 }, ptr %t258, i32 0, i32 1 %t260 = load i64, ptr %t259 @@ -49755,11 +51403,11 @@ ok4939: %t262 = load { ptr, i64, i64 }, ptr %t255 %t263 = extractvalue { ptr, i64, i64 } %t262, 1 %t264 = icmp uge i64 %t261, %t263 - br i1 %t264, label %range4940, label %inrange4941 -range4940: - call void @finch_panic_index(ptr @.str.3113, i64 2228, i64 %t261, i64 %t263) + br i1 %t264, label %range5084, label %inrange5085 +range5084: + call void @finch_panic_index(ptr @.str.3198, i64 2309, i64 %t261, i64 %t263) unreachable -inrange4941: +inrange5085: %t265 = extractvalue { ptr, i64, i64 } %t262, 0 %t266 = getelementptr inbounds %S.gen.Loop, ptr %t265, i64 %t261 %t267 = load %S.gen.Loop, ptr %t266 @@ -49777,60 +51425,60 @@ inrange4941: call void @finch.gen.unwind(ptr %t275, i64 %t277) %t278 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t278, ptr %a279 - store { ptr, i64, i64 } { ptr @.str.3114, i64 5, i64 0 }, ptr %a280 + store { ptr, i64, i64 } { ptr @.str.3199, i64 5, i64 0 }, ptr %a280 %t281 = call i32 @finch_str_eq(ptr %a279, ptr %a280) %t282 = icmp ne i32 %t281, 0 - br i1 %t282, label %then4942, label %else4943 -then4942: + br i1 %t282, label %then5086, label %else5087 +then5086: %t283 = load ptr, ptr %a1 %t284 = getelementptr inbounds %S.gen.Loop, ptr %a271, i32 0, i32 1 %t285 = load { ptr, i64, i64 }, ptr %t284 call void @finch.gen.br(ptr %t283, { ptr, i64, i64 } %t285) - br label %endif4944 -else4943: + br label %endif5088 +else5087: %t286 = load ptr, ptr %a1 %t287 = getelementptr inbounds %S.gen.Loop, ptr %a271, i32 0, i32 0 %t288 = load { ptr, i64, i64 }, ptr %t287 call void @finch.gen.br(ptr %t286, { ptr, i64, i64 } %t288) - br label %endif4944 -endif4944: + br label %endif5088 +endif5088: call void @finch.drop.S_gen_Loop(ptr %a271) - br label %endif4925 -else4924: + br label %endif5069 +else5068: %t289 = load ptr, ptr %a1 %t290 = load %S.ast.Node, ptr %a2 %t291 = load { ptr, i64, i64 }, ptr %a18 - store { ptr, i64, i64 } { ptr @.str.3115, i64 18, i64 0 }, ptr %a293 + store { ptr, i64, i64 } { ptr @.str.3200, i64 18, i64 0 }, ptr %a293 store { ptr, i64, i64 } %t291, ptr %a294 call void @finch_str_concat(ptr %a292, ptr %a293, ptr %a294) %t295 = load { ptr, i64, i64 }, ptr %a292 call void @finch.gen.fail(ptr %t289, %S.ast.Node %t290, { ptr, i64, i64 } %t295) store { ptr, i64, i64 } %t295, ptr %a296 call void @finch_str_drop(ptr %a296) - br label %endif4925 -endif4925: - br label %endif4891 -endif4891: - br label %endif4888 -endif4888: - br label %endif4885 -endif4885: - br label %endif4882 -endif4882: - br label %endif4879 -endif4879: - br label %endif4876 -endif4876: - br label %endif4873 -endif4873: - br label %endif4861 -endif4861: - br label %endif4858 -endif4858: - br label %endif4855 -endif4855: - br label %endif4852 -endif4852: + br label %endif5069 +endif5069: + br label %endif5035 +endif5035: + br label %endif5032 +endif5032: + br label %endif5029 +endif5029: + br label %endif5026 +endif5026: + br label %endif5023 +endif5023: + br label %endif5020 +endif5020: + br label %endif5017 +endif5017: + br label %endif5005 +endif5005: + br label %endif5002 +endif5002: + br label %endif4999 +endif4999: + br label %endif4996 +endif4996: call void @finch_str_drop(ptr %a18) ret void } @@ -49880,18 +51528,18 @@ entry: %t3 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 6 %t4 = load i1, ptr %t3 %t5 = xor i1 %t4, true - br i1 %t5, label %then4945, label %endif4947 -then4945: + br i1 %t5, label %then5089, label %endif5091 +then5089: %t6 = load ptr, ptr %a1 %t7 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t8 = load { ptr, i64, i64 }, ptr %t7 %t9 = extractvalue { ptr, i64, i64 } %t8, 1 %t10 = icmp uge i64 0, %t9 - br i1 %t10, label %range4948, label %inrange4949 -range4948: - call void @finch_panic_index(ptr @.str.3116, i64 2243, i64 0, i64 %t9) + br i1 %t10, label %range5092, label %inrange5093 +range5092: + call void @finch_panic_index(ptr @.str.3201, i64 2324, i64 0, i64 %t9) unreachable -inrange4949: +inrange5093: %t11 = extractvalue { ptr, i64, i64 } %t8, 0 %t12 = getelementptr inbounds %S.ast.Node, ptr %t11, i64 0 %t13 = load %S.ast.Node, ptr %t12 @@ -49901,57 +51549,57 @@ inrange4949: %t17 = getelementptr inbounds %S.ast.Type, ptr %t16, i32 0, i32 0 %t18 = load { ptr, i64, i64 }, ptr %t17 store { ptr, i64, i64 } %t18, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.3117, i64 4, i64 0 }, ptr %a20 + store { ptr, i64, i64 } { ptr @.str.3202, i64 4, i64 0 }, ptr %a20 %t21 = call i32 @finch_str_eq(ptr %a19, ptr %a20) %t22 = icmp ne i32 %t21, 0 - br i1 %t22, label %then4950, label %endif4952 -then4950: + br i1 %t22, label %then5094, label %endif5096 +then5094: %t23 = load ptr, ptr %a1 %t24 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t25 = load { ptr, i64, i64 }, ptr %t24 %t26 = extractvalue { ptr, i64, i64 } %t25, 1 %t27 = icmp uge i64 0, %t26 - br i1 %t27, label %range4953, label %inrange4954 -range4953: - call void @finch_panic_index(ptr @.str.3118, i64 2245, i64 0, i64 %t26) + br i1 %t27, label %range5097, label %inrange5098 +range5097: + call void @finch_panic_index(ptr @.str.3203, i64 2326, i64 0, i64 %t26) unreachable -inrange4954: +inrange5098: %t28 = extractvalue { ptr, i64, i64 } %t25, 0 %t29 = getelementptr inbounds %S.ast.Node, ptr %t28, i64 0 %t30 = load %S.ast.Node, ptr %t29 - call void @finch.gen.fail(ptr %t23, %S.ast.Node %t30, { ptr, i64, i64 } { ptr @.str.3119, i64 46, i64 0 }) - br label %endif4952 -endif4952: + call void @finch.gen.fail(ptr %t23, %S.ast.Node %t30, { ptr, i64, i64 } { ptr @.str.3204, i64 46, i64 0 }) + br label %endif5096 +endif5096: %t31 = getelementptr inbounds %S.gen.Val, ptr %a15, i32 0, i32 1 %t32 = getelementptr inbounds %S.ast.Type, ptr %t31, i32 0, i32 0 %t33 = load { ptr, i64, i64 }, ptr %t32 store { ptr, i64, i64 } %t33, ptr %a34 - store { ptr, i64, i64 } { ptr @.str.3120, i64 4, i64 0 }, ptr %a35 + store { ptr, i64, i64 } { ptr @.str.3205, i64 4, i64 0 }, ptr %a35 %t36 = call i32 @finch_str_eq(ptr %a34, ptr %a35) %t37 = icmp ne i32 %t36, 0 - br i1 %t37, label %then4955, label %endif4957 -then4955: + br i1 %t37, label %then5099, label %endif5101 +then5099: %t38 = load ptr, ptr %a1 %t39 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t40 = load { ptr, i64, i64 }, ptr %t39 %t41 = extractvalue { ptr, i64, i64 } %t40, 1 %t42 = icmp uge i64 0, %t41 - br i1 %t42, label %range4958, label %inrange4959 -range4958: - call void @finch_panic_index(ptr @.str.3121, i64 2248, i64 0, i64 %t41) + br i1 %t42, label %range5102, label %inrange5103 +range5102: + call void @finch_panic_index(ptr @.str.3206, i64 2329, i64 0, i64 %t41) unreachable -inrange4959: +inrange5103: %t43 = extractvalue { ptr, i64, i64 } %t40, 0 %t44 = getelementptr inbounds %S.ast.Node, ptr %t43, i64 0 %t45 = load %S.ast.Node, ptr %t44 %t46 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t47 = load { ptr, i64, i64 }, ptr %t46 - store { ptr, i64, i64 } { ptr @.str.3122, i64 34, i64 0 }, ptr %a49 + store { ptr, i64, i64 } { ptr @.str.3207, i64 34, i64 0 }, ptr %a49 store { ptr, i64, i64 } %t47, ptr %a50 call void @finch_str_concat(ptr %a48, ptr %a49, ptr %a50) %t51 = load { ptr, i64, i64 }, ptr %a48 store { ptr, i64, i64 } %t51, ptr %a53 - store { ptr, i64, i64 } { ptr @.str.3123, i64 7, i64 0 }, ptr %a54 + store { ptr, i64, i64 } { ptr @.str.3208, i64 7, i64 0 }, ptr %a54 call void @finch_str_concat(ptr %a52, ptr %a53, ptr %a54) store { ptr, i64, i64 } %t51, ptr %a55 call void @finch_str_drop(ptr %a55) @@ -49959,8 +51607,8 @@ inrange4959: call void @finch.gen.fail(ptr %t38, %S.ast.Node %t45, { ptr, i64, i64 } %t56) store { ptr, i64, i64 } %t56, ptr %a57 call void @finch_str_drop(ptr %a57) - br label %endif4957 -endif4957: + br label %endif5101 +endif5101: %t58 = load ptr, ptr %a1 %t59 = load %S.ast.Node, ptr %a2 %t60 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 @@ -49977,7 +51625,7 @@ endif4957: call void @finch_str_drop(ptr %a69) call void @finch.drop.S_gen_Val(ptr %a15) ret void -endif4947: +endif5091: %t70 = load ptr, ptr %a1 %t71 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 5 %t72 = load %S.ast.Type, ptr %t71 @@ -49988,28 +51636,28 @@ endif4947: %t77 = getelementptr inbounds { ptr, i64, i64 }, ptr %t76, i32 0, i32 1 %t78 = load i64, ptr %t77 %t79 = icmp eq i64 %t78, 0 - br i1 %t79, label %then4960, label %endif4962 -then4960: + br i1 %t79, label %then5104, label %endif5106 +then5104: %t80 = getelementptr inbounds %S.ast.Type, ptr %a75, i32 0, i32 0 %t81 = load { ptr, i64, i64 }, ptr %t80 store { ptr, i64, i64 } %t81, ptr %a82 - store { ptr, i64, i64 } { ptr @.str.3124, i64 6, i64 0 }, ptr %a83 + store { ptr, i64, i64 } { ptr @.str.3209, i64 6, i64 0 }, ptr %a83 %t84 = call i32 @finch_str_eq(ptr %a82, ptr %a83) %t85 = icmp ne i32 %t84, 0 - br label %logic.from4963 -logic.from4963: - br i1 %t85, label %logic.rhs4964, label %logic.end4965 -logic.rhs4964: + br label %logic.from5107 +logic.from5107: + br i1 %t85, label %logic.rhs5108, label %logic.end5109 +logic.rhs5108: %t86 = load ptr, ptr %a1 %t87 = load %S.ast.Type, ptr %a75 %t88 = call i1 @finch.gen.hasDefaults(ptr %t86, %S.ast.Type %t87) - br label %logic.rend4966 -logic.rend4966: - br label %logic.end4965 -logic.end4965: - %t89 = phi i1 [ false, %logic.from4963 ], [ %t88, %logic.rend4966 ] - br i1 %t89, label %then4967, label %endif4969 -then4967: + br label %logic.rend5110 +logic.rend5110: + br label %logic.end5109 +logic.end5109: + %t89 = phi i1 [ false, %logic.from5107 ], [ %t88, %logic.rend5110 ] + br i1 %t89, label %then5111, label %endif5113 +then5111: store { ptr, i64, i64 } zeroinitializer, ptr %a90 store { ptr, i64, i64 } zeroinitializer, ptr %a91 %t92 = load ptr, ptr %a1 @@ -50039,7 +51687,7 @@ then4967: call void @finch.drop.arr_S_ast_Node(ptr %a90) call void @finch.drop.S_ast_Type(ptr %a75) ret void -endif4969: +endif5113: %t113 = load ptr, ptr %a1 %t114 = load %S.ast.Node, ptr %a2 %t115 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 @@ -50054,18 +51702,18 @@ endif4969: call void @finch_str_drop(ptr %a122) call void @finch.drop.S_ast_Type(ptr %a75) ret void -endif4962: +endif5106: %t123 = load ptr, ptr %a1 %t124 = load ptr, ptr %a1 %t125 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t126 = load { ptr, i64, i64 }, ptr %t125 %t127 = extractvalue { ptr, i64, i64 } %t126, 1 %t128 = icmp uge i64 0, %t127 - br i1 %t128, label %range4970, label %inrange4971 -range4970: - call void @finch_panic_index(ptr @.str.3125, i64 2265, i64 0, i64 %t127) + br i1 %t128, label %range5114, label %inrange5115 +range5114: + call void @finch_panic_index(ptr @.str.3210, i64 2346, i64 0, i64 %t127) unreachable -inrange4971: +inrange5115: %t129 = extractvalue { ptr, i64, i64 } %t126, 0 %t130 = getelementptr inbounds %S.ast.Node, ptr %t129, i64 0 %t131 = load %S.ast.Node, ptr %t130 @@ -50076,22 +51724,22 @@ inrange4971: %t136 = load { ptr, i64, i64 }, ptr %t135 %t137 = extractvalue { ptr, i64, i64 } %t136, 1 %t138 = icmp uge i64 0, %t137 - br i1 %t138, label %range4972, label %inrange4973 -range4972: - call void @finch_panic_index(ptr @.str.3126, i64 2265, i64 0, i64 %t137) + br i1 %t138, label %range5116, label %inrange5117 +range5116: + call void @finch_panic_index(ptr @.str.3211, i64 2346, i64 0, i64 %t137) unreachable -inrange4973: +inrange5117: %t139 = extractvalue { ptr, i64, i64 } %t136, 0 %t140 = getelementptr inbounds %S.ast.Node, ptr %t139, i64 0 %t141 = load %S.ast.Node, ptr %t140 %t142 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t143 = load { ptr, i64, i64 }, ptr %t142 - store { ptr, i64, i64 } { ptr @.str.3127, i64 1, i64 0 }, ptr %a145 + store { ptr, i64, i64 } { ptr @.str.3212, i64 1, i64 0 }, ptr %a145 store { ptr, i64, i64 } %t143, ptr %a146 call void @finch_str_concat(ptr %a144, ptr %a145, ptr %a146) %t147 = load { ptr, i64, i64 }, ptr %a144 store { ptr, i64, i64 } %t147, ptr %a149 - store { ptr, i64, i64 } { ptr @.str.3128, i64 1, i64 0 }, ptr %a150 + store { ptr, i64, i64 } { ptr @.str.3213, i64 1, i64 0 }, ptr %a150 call void @finch_str_concat(ptr %a148, ptr %a149, ptr %a150) store { ptr, i64, i64 } %t147, ptr %a151 call void @finch_str_drop(ptr %a151) @@ -50133,11 +51781,11 @@ entry: store %S.ast.Type %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic4974, label %ok4975 -panic4974: - call void @finch_panic(ptr @.str.3129, i64 2270, ptr @.str.3130) + br i1 %t4, label %panic5118, label %ok5119 +panic5118: + call void @finch_panic(ptr @.str.3214, i64 2351, ptr @.str.3215) unreachable -ok4975: +ok5119: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 16 %t6 = load ptr, ptr %a1 %t7 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 @@ -50148,11 +51796,11 @@ ok4975: %t12 = load { ptr, i64, i64 }, ptr %t5 %t13 = extractvalue { ptr, i64, i64 } %t12, 1 %t14 = icmp uge i64 %t11, %t13 - br i1 %t14, label %range4976, label %inrange4977 -range4976: - call void @finch_panic_index(ptr @.str.3131, i64 2270, i64 %t11, i64 %t13) + br i1 %t14, label %range5120, label %inrange5121 +range5120: + call void @finch_panic_index(ptr @.str.3216, i64 2351, i64 %t11, i64 %t13) unreachable -inrange4977: +inrange5121: %t15 = extractvalue { ptr, i64, i64 } %t12, 0 %t16 = getelementptr inbounds %S.gen.StructDef, ptr %t15, i64 %t11 %t17 = load %S.gen.StructDef, ptr %t16 @@ -50162,29 +51810,29 @@ inrange4977: store %S.gen.StructDef %t20, ptr %a21 %t22 = getelementptr inbounds %S.gen.StructDef, ptr %a21, i32 0, i32 2 %t23 = load i1, ptr %t22 - br i1 %t23, label %then4978, label %endif4980 -then4978: + br i1 %t23, label %then5122, label %endif5124 +then5122: call void @finch.drop.S_gen_StructDef(ptr %a21) ret i1 false -endif4980: +endif5124: %t24 = load ptr, ptr %a1 %t25 = icmp eq ptr %t24, null - br i1 %t25, label %panic4981, label %ok4982 -panic4981: - call void @finch_panic(ptr @.str.3132, i64 2274, ptr @.str.3133) + br i1 %t25, label %panic5125, label %ok5126 +panic5125: + call void @finch_panic(ptr @.str.3217, i64 2355, ptr @.str.3218) unreachable -ok4982: +ok5126: %t26 = getelementptr inbounds %S.gen.Gen, ptr %t24, i32 0, i32 0 %t27 = getelementptr inbounds %S.gen.StructDef, ptr %a21, i32 0, i32 13 %t28 = load i64, ptr %t27 %t29 = load { ptr, i64, i64 }, ptr %t26 %t30 = extractvalue { ptr, i64, i64 } %t29, 1 %t31 = icmp uge i64 %t28, %t30 - br i1 %t31, label %range4983, label %inrange4984 -range4983: - call void @finch_panic_index(ptr @.str.3134, i64 2274, i64 %t28, i64 %t30) + br i1 %t31, label %range5127, label %inrange5128 +range5127: + call void @finch_panic_index(ptr @.str.3219, i64 2355, i64 %t28, i64 %t30) unreachable -inrange4984: +inrange5128: %t32 = extractvalue { ptr, i64, i64 } %t29, 0 %t33 = getelementptr inbounds %S.ast.Program, ptr %t32, i64 %t28 %t34 = getelementptr inbounds %S.ast.Program, ptr %t33, i32 0, i32 6 @@ -50193,23 +51841,23 @@ inrange4984: %t37 = load { ptr, i64, i64 }, ptr %t34 %t38 = extractvalue { ptr, i64, i64 } %t37, 1 %t39 = icmp uge i64 %t36, %t38 - br i1 %t39, label %range4985, label %inrange4986 -range4985: - call void @finch_panic_index(ptr @.str.3135, i64 2274, i64 %t36, i64 %t38) + br i1 %t39, label %range5129, label %inrange5130 +range5129: + call void @finch_panic_index(ptr @.str.3220, i64 2355, i64 %t36, i64 %t38) unreachable -inrange4986: +inrange5130: %t40 = extractvalue { ptr, i64, i64 } %t37, 0 %t41 = getelementptr inbounds %S.ast.Node, ptr %t40, i64 %t36 %t42 = getelementptr inbounds %S.ast.Node, ptr %t41, i32 0, i32 9 store i64 0, ptr %a43 - br label %each.cond4987 -each.cond4987: + br label %each.cond5131 +each.cond5131: %t44 = getelementptr inbounds { ptr, i64, i64 }, ptr %t42, i32 0, i32 1 %t45 = load i64, ptr %t44 %t46 = load i64, ptr %a43 %t47 = icmp slt i64 %t46, %t45 - br i1 %t47, label %each.body4988, label %each.end4990 -each.body4988: + br i1 %t47, label %each.body5132, label %each.end5134 +each.body5132: %t48 = load ptr, ptr %t42 %t49 = getelementptr inbounds %S.ast.Node, ptr %t48, i64 %t46 %t50 = load %S.ast.Node, ptr %t49 @@ -50218,18 +51866,18 @@ each.body4988: %t53 = getelementptr inbounds { ptr, i64, i64 }, ptr %t52, i32 0, i32 1 %t54 = load i64, ptr %t53 %t55 = icmp sgt i64 %t54, 0 - br i1 %t55, label %then4991, label %endif4993 -then4991: + br i1 %t55, label %then5135, label %endif5137 +then5135: call void @finch.drop.S_gen_StructDef(ptr %a21) ret i1 true -endif4993: - br label %each.step4989 -each.step4989: +endif5137: + br label %each.step5133 +each.step5133: %t56 = load i64, ptr %a43 %t57 = add i64 %t56, 1 store i64 %t57, ptr %a43 - br label %each.cond4987 -each.end4990: + br label %each.cond5131 +each.end5134: call void @finch.drop.S_gen_StructDef(ptr %a21) ret i1 false } @@ -50333,11 +51981,11 @@ entry: %t4 = load { ptr, i64, i64 }, ptr %t3 %t5 = extractvalue { ptr, i64, i64 } %t4, 1 %t6 = icmp uge i64 0, %t5 - br i1 %t6, label %range4994, label %inrange4995 -range4994: - call void @finch_panic_index(ptr @.str.3136, i64 2283, i64 0, i64 %t5) + br i1 %t6, label %range5138, label %inrange5139 +range5138: + call void @finch_panic_index(ptr @.str.3221, i64 2364, i64 0, i64 %t5) unreachable -inrange4995: +inrange5139: %t7 = extractvalue { ptr, i64, i64 } %t4, 0 %t8 = getelementptr inbounds %S.ast.Node, ptr %t7, i64 0 %t9 = load %S.ast.Node, ptr %t8 @@ -50351,40 +51999,40 @@ inrange4995: %t17 = getelementptr inbounds { ptr, i64, i64 }, ptr %a16, i32 0, i32 1 %t18 = load i64, ptr %t17 %t19 = icmp sgt i64 %t18, 0 - br i1 %t19, label %then4996, label %endif4998 -then4996: + br i1 %t19, label %then5140, label %endif5142 +then5140: %t20 = load ptr, ptr %a1 %t21 = load { ptr, i64, i64 }, ptr %a16 %t22 = call i64 @finch.gen.lookup(ptr %t20, { ptr, i64, i64 } %t21) store i64 %t22, ptr %a23 %t24 = load i64, ptr %a23 %t25 = icmp slt i64 %t24, 0 - br label %logic.from4999 -logic.from4999: - br i1 %t25, label %logic.rhs5000, label %logic.end5001 -logic.rhs5000: + br label %logic.from5143 +logic.from5143: + br i1 %t25, label %logic.rhs5144, label %logic.end5145 +logic.rhs5144: %t26 = getelementptr inbounds %S.ast.Node, ptr %a13, i32 0, i32 0 %t27 = load { ptr, i64, i64 }, ptr %t26 store { ptr, i64, i64 } %t27, ptr %a28 - store { ptr, i64, i64 } { ptr @.str.3137, i64 3, i64 0 }, ptr %a29 + store { ptr, i64, i64 } { ptr @.str.3222, i64 3, i64 0 }, ptr %a29 %t30 = call i32 @finch_str_eq(ptr %a28, ptr %a29) %t31 = icmp ne i32 %t30, 0 - br label %logic.rend5002 -logic.rend5002: - br label %logic.end5001 -logic.end5001: - %t32 = phi i1 [ false, %logic.from4999 ], [ %t31, %logic.rend5002 ] - br i1 %t32, label %then5003, label %endif5005 -then5003: + br label %logic.rend5146 +logic.rend5146: + br label %logic.end5145 +logic.end5145: + %t32 = phi i1 [ false, %logic.from5143 ], [ %t31, %logic.rend5146 ] + br i1 %t32, label %then5147, label %endif5149 +then5147: %t33 = load ptr, ptr %a1 %t34 = load %S.ast.Node, ptr %a2 %t35 = load { ptr, i64, i64 }, ptr %a16 - store { ptr, i64, i64 } { ptr @.str.3138, i64 28, i64 0 }, ptr %a37 + store { ptr, i64, i64 } { ptr @.str.3223, i64 28, i64 0 }, ptr %a37 store { ptr, i64, i64 } %t35, ptr %a38 call void @finch_str_concat(ptr %a36, ptr %a37, ptr %a38) %t39 = load { ptr, i64, i64 }, ptr %a36 store { ptr, i64, i64 } %t39, ptr %a41 - store { ptr, i64, i64 } { ptr @.str.3139, i64 18, i64 0 }, ptr %a42 + store { ptr, i64, i64 } { ptr @.str.3224, i64 18, i64 0 }, ptr %a42 call void @finch_str_concat(ptr %a40, ptr %a41, ptr %a42) store { ptr, i64, i64 } %t39, ptr %a43 call void @finch_str_drop(ptr %a43) @@ -50397,7 +52045,7 @@ then5003: call void @finch_str_drop(ptr %a49) %t50 = load { ptr, i64, i64 }, ptr %a46 store { ptr, i64, i64 } %t50, ptr %a52 - store { ptr, i64, i64 } { ptr @.str.3140, i64 8, i64 0 }, ptr %a53 + store { ptr, i64, i64 } { ptr @.str.3225, i64 8, i64 0 }, ptr %a53 call void @finch_str_concat(ptr %a51, ptr %a52, ptr %a53) store { ptr, i64, i64 } %t50, ptr %a54 call void @finch_str_drop(ptr %a54) @@ -50405,36 +52053,36 @@ then5003: call void @finch.gen.fail(ptr %t33, %S.ast.Node %t34, { ptr, i64, i64 } %t55) store { ptr, i64, i64 } %t55, ptr %a56 call void @finch_str_drop(ptr %a56) - br label %endif5005 -endif5005: + br label %endif5149 +endif5149: %t57 = load i64, ptr %a23 %t58 = icmp sge i64 %t57, 0 - br label %logic.from5006 -logic.from5006: - br i1 %t58, label %logic.rhs5007, label %logic.end5008 -logic.rhs5007: + br label %logic.from5150 +logic.from5150: + br i1 %t58, label %logic.rhs5151, label %logic.end5152 +logic.rhs5151: %t59 = load ptr, ptr %a1 %t60 = load i64, ptr %a23 %t61 = call %S.gen.Var @finch.gen.varAt(ptr %t59, i64 %t60) %t62 = extractvalue %S.gen.Var %t61, 3 store %S.gen.Var %t61, ptr %a63 call void @finch.drop.S_gen_Var(ptr %a63) - br label %logic.rend5009 -logic.rend5009: - br label %logic.end5008 -logic.end5008: - %t64 = phi i1 [ false, %logic.from5006 ], [ %t62, %logic.rend5009 ] - br i1 %t64, label %then5010, label %endif5012 -then5010: + br label %logic.rend5153 +logic.rend5153: + br label %logic.end5152 +logic.end5152: + %t64 = phi i1 [ false, %logic.from5150 ], [ %t62, %logic.rend5153 ] + br i1 %t64, label %then5154, label %endif5156 +then5154: %t65 = load ptr, ptr %a1 %t66 = load %S.ast.Node, ptr %a2 %t67 = load { ptr, i64, i64 }, ptr %a16 - store { ptr, i64, i64 } { ptr @.str.3141, i64 19, i64 0 }, ptr %a69 + store { ptr, i64, i64 } { ptr @.str.3226, i64 19, i64 0 }, ptr %a69 store { ptr, i64, i64 } %t67, ptr %a70 call void @finch_str_concat(ptr %a68, ptr %a69, ptr %a70) %t71 = load { ptr, i64, i64 }, ptr %a68 store { ptr, i64, i64 } %t71, ptr %a73 - store { ptr, i64, i64 } { ptr @.str.3142, i64 18, i64 0 }, ptr %a74 + store { ptr, i64, i64 } { ptr @.str.3227, i64 18, i64 0 }, ptr %a74 call void @finch_str_concat(ptr %a72, ptr %a73, ptr %a74) store { ptr, i64, i64 } %t71, ptr %a75 call void @finch_str_drop(ptr %a75) @@ -50442,26 +52090,26 @@ then5010: call void @finch.gen.fail(ptr %t65, %S.ast.Node %t66, { ptr, i64, i64 } %t76) store { ptr, i64, i64 } %t76, ptr %a77 call void @finch_str_drop(ptr %a77) - br label %endif5012 -endif5012: - br label %endif4998 -endif4998: - store { ptr, i64, i64 } { ptr @.str.3143, i64 9, i64 0 }, ptr %a78 + br label %endif5156 +endif5156: + br label %endif5142 +endif5142: + store { ptr, i64, i64 } { ptr @.str.3228, i64 9, i64 0 }, ptr %a78 %t79 = getelementptr inbounds %S.ast.Node, ptr %a13, i32 0, i32 0 %t80 = load { ptr, i64, i64 }, ptr %t79 store { ptr, i64, i64 } %t80, ptr %a81 - store { ptr, i64, i64 } { ptr @.str.3144, i64 3, i64 0 }, ptr %a82 + store { ptr, i64, i64 } { ptr @.str.3229, i64 3, i64 0 }, ptr %a82 %t83 = call i32 @finch_str_eq(ptr %a81, ptr %a82) %t84 = icmp ne i32 %t83, 0 - br i1 %t84, label %then5013, label %endif5015 -then5013: + br i1 %t84, label %then5157, label %endif5159 +then5157: %t85 = load { ptr, i64, i64 }, ptr %a16 - store { ptr, i64, i64 } { ptr @.str.3145, i64 1, i64 0 }, ptr %a87 + store { ptr, i64, i64 } { ptr @.str.3230, i64 1, i64 0 }, ptr %a87 store { ptr, i64, i64 } %t85, ptr %a88 call void @finch_str_concat(ptr %a86, ptr %a87, ptr %a88) %t89 = load { ptr, i64, i64 }, ptr %a86 store { ptr, i64, i64 } %t89, ptr %a91 - store { ptr, i64, i64 } { ptr @.str.3146, i64 1, i64 0 }, ptr %a92 + store { ptr, i64, i64 } { ptr @.str.3231, i64 1, i64 0 }, ptr %a92 call void @finch_str_concat(ptr %a90, ptr %a91, ptr %a92) store { ptr, i64, i64 } %t89, ptr %a93 call void @finch_str_drop(ptr %a93) @@ -50470,35 +52118,35 @@ then5013: store { ptr, i64, i64 } %t94, ptr %a78 store { ptr, i64, i64 } %t95, ptr %a96 call void @finch_str_drop(ptr %a96) - br label %endif5015 -endif5015: + br label %endif5159 +endif5159: %t97 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t98 = load { ptr, i64, i64 }, ptr %t97 store { ptr, i64, i64 } %t98, ptr %a99 - store { ptr, i64, i64 } { ptr @.str.3147, i64 1, i64 0 }, ptr %a100 + store { ptr, i64, i64 } { ptr @.str.3232, i64 1, i64 0 }, ptr %a100 %t101 = call i32 @finch_str_eq(ptr %a99, ptr %a100) %t102 = icmp ne i32 %t101, 0 - br i1 %t102, label %then5016, label %endif5018 -then5016: - %t103 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3148, i64 4, i64 0 }) + br i1 %t102, label %then5160, label %endif5162 +then5160: + %t103 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3233, i64 4, i64 0 }) store %S.ast.Type %t103, ptr %a104 store i1 false, ptr %a105 %t106 = getelementptr inbounds %S.ast.Node, ptr %a13, i32 0, i32 0 %t107 = load { ptr, i64, i64 }, ptr %t106 store { ptr, i64, i64 } %t107, ptr %a108 - store { ptr, i64, i64 } { ptr @.str.3149, i64 3, i64 0 }, ptr %a109 + store { ptr, i64, i64 } { ptr @.str.3234, i64 3, i64 0 }, ptr %a109 %t110 = call i32 @finch_str_eq(ptr %a108, ptr %a109) %t111 = icmp ne i32 %t110, 0 - br i1 %t111, label %then5019, label %endif5021 -then5019: + br i1 %t111, label %then5163, label %endif5165 +then5163: %t112 = load ptr, ptr %a1 %t113 = load { ptr, i64, i64 }, ptr %a16 %t114 = call i64 @finch.gen.lookup(ptr %t112, { ptr, i64, i64 } %t113) store i64 %t114, ptr %a115 %t116 = load i64, ptr %a115 %t117 = icmp sge i64 %t116, 0 - br i1 %t117, label %then5022, label %endif5024 -then5022: + br i1 %t117, label %then5166, label %endif5168 +then5166: %t118 = load ptr, ptr %a1 %t119 = load i64, ptr %a115 %t120 = call %S.gen.Var @finch.gen.varAt(ptr %t118, i64 %t119) @@ -50513,24 +52161,24 @@ then5022: store %S.ast.Type %t126, ptr %a127 call void @finch.drop.S_ast_Type(ptr %a127) store i1 true, ptr %a105 - br label %endif5024 -endif5024: - br label %endif5021 -endif5021: + br label %endif5168 +endif5168: + br label %endif5165 +endif5165: store %S.gen.Val zeroinitializer, ptr %a128 %t129 = load i1, ptr %a105 - br i1 %t129, label %then5025, label %else5026 -then5025: + br i1 %t129, label %then5169, label %else5170 +then5169: %t130 = load ptr, ptr %a1 %t131 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t132 = load { ptr, i64, i64 }, ptr %t131 %t133 = extractvalue { ptr, i64, i64 } %t132, 1 %t134 = icmp uge i64 1, %t133 - br i1 %t134, label %range5028, label %inrange5029 -range5028: - call void @finch_panic_index(ptr @.str.3150, i64 2311, i64 1, i64 %t133) + br i1 %t134, label %range5172, label %inrange5173 +range5172: + call void @finch_panic_index(ptr @.str.3235, i64 2392, i64 1, i64 %t133) unreachable -inrange5029: +inrange5173: %t135 = extractvalue { ptr, i64, i64 } %t132, 0 %t136 = getelementptr inbounds %S.ast.Node, ptr %t135, i64 1 %t137 = load %S.ast.Node, ptr %t136 @@ -50540,18 +52188,18 @@ inrange5029: store %S.gen.Val %t139, ptr %a128 store %S.gen.Val %t140, ptr %a141 call void @finch.drop.S_gen_Val(ptr %a141) - br label %endif5027 -else5026: + br label %endif5171 +else5170: %t142 = load ptr, ptr %a1 %t143 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t144 = load { ptr, i64, i64 }, ptr %t143 %t145 = extractvalue { ptr, i64, i64 } %t144, 1 %t146 = icmp uge i64 1, %t145 - br i1 %t146, label %range5030, label %inrange5031 -range5030: - call void @finch_panic_index(ptr @.str.3151, i64 2313, i64 1, i64 %t145) + br i1 %t146, label %range5174, label %inrange5175 +range5174: + call void @finch_panic_index(ptr @.str.3236, i64 2394, i64 1, i64 %t145) unreachable -inrange5031: +inrange5175: %t147 = extractvalue { ptr, i64, i64 } %t144, 0 %t148 = getelementptr inbounds %S.ast.Node, ptr %t147, i64 1 %t149 = load %S.ast.Node, ptr %t148 @@ -50560,15 +52208,15 @@ inrange5031: store %S.gen.Val %t150, ptr %a128 store %S.gen.Val %t151, ptr %a152 call void @finch.drop.S_gen_Val(ptr %a152) - br label %endif5027 -endif5027: + br label %endif5171 +endif5171: %t153 = load ptr, ptr %a1 %t154 = icmp eq ptr %t153, null - br i1 %t154, label %panic5032, label %ok5033 -panic5032: - call void @finch_panic(ptr @.str.3152, i64 2315, ptr @.str.3153) + br i1 %t154, label %panic5176, label %ok5177 +panic5176: + call void @finch_panic(ptr @.str.3237, i64 2396, ptr @.str.3238) unreachable -ok5033: +ok5177: %t155 = getelementptr inbounds %S.gen.Gen, ptr %t153, i32 0, i32 11 %t156 = getelementptr inbounds { ptr, i64, i64 }, ptr %t155, i32 0, i32 1 %t157 = load i64, ptr %t156 @@ -50588,11 +52236,11 @@ ok5033: %t170 = load { ptr, i64, i64 }, ptr %t169 %t171 = extractvalue { ptr, i64, i64 } %t170, 1 %t172 = icmp uge i64 1, %t171 - br i1 %t172, label %range5034, label %inrange5035 -range5034: - call void @finch_panic_index(ptr @.str.3154, i64 2318, i64 1, i64 %t171) + br i1 %t172, label %range5178, label %inrange5179 +range5178: + call void @finch_panic_index(ptr @.str.3239, i64 2399, i64 1, i64 %t171) unreachable -inrange5035: +inrange5179: %t173 = extractvalue { ptr, i64, i64 } %t170, 0 %t174 = getelementptr inbounds %S.ast.Node, ptr %t173, i64 1 %t175 = load %S.ast.Node, ptr %t174 @@ -50610,8 +52258,8 @@ inrange5035: %t185 = getelementptr inbounds %S.gen.Place, ptr %a164, i32 0, i32 1 %t186 = load %S.ast.Type, ptr %t185 %t187 = call i1 @finch.gen.owning(ptr %t184, %S.ast.Type %t186) - br i1 %t187, label %then5036, label %else5037 -then5036: + br i1 %t187, label %then5180, label %else5181 +then5180: %t188 = load ptr, ptr %a1 %t189 = load ptr, ptr %a1 %t190 = getelementptr inbounds %S.gen.Place, ptr %a164, i32 0, i32 1 @@ -50640,8 +52288,8 @@ then5036: %t210 = load %S.ast.Type, ptr %t209 call void @finch.gen.dropValue(ptr %t207, { ptr, i64, i64 } %t208, %S.ast.Type %t210) call void @finch_str_drop(ptr %a197) - br label %endif5038 -else5037: + br label %endif5182 +else5181: %t211 = load ptr, ptr %a1 %t212 = load ptr, ptr %a1 %t213 = getelementptr inbounds %S.gen.Place, ptr %a164, i32 0, i32 1 @@ -50653,8 +52301,8 @@ else5037: call void @finch.gen.store(ptr %t211, { ptr, i64, i64 } %t215, { ptr, i64, i64 } %t216, { ptr, i64, i64 } %t218) store { ptr, i64, i64 } %t215, ptr %a219 call void @finch_str_drop(ptr %a219) - br label %endif5038 -endif5038: + br label %endif5182 +endif5182: %t220 = load ptr, ptr %a1 %t221 = load i64, ptr %a158 call void @finch.gen.heldEnd(ptr %t220, i64 %t221) @@ -50666,17 +52314,17 @@ endif5038: call void @finch_str_drop(ptr %a16) call void @finch.drop.S_ast_Node(ptr %a13) ret void -endif5018: +endif5162: %t222 = load ptr, ptr %a1 %t223 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t224 = load { ptr, i64, i64 }, ptr %t223 %t225 = extractvalue { ptr, i64, i64 } %t224, 1 %t226 = icmp uge i64 1, %t225 - br i1 %t226, label %range5039, label %inrange5040 -range5039: - call void @finch_panic_index(ptr @.str.3155, i64 2330, i64 1, i64 %t225) + br i1 %t226, label %range5183, label %inrange5184 +range5183: + call void @finch_panic_index(ptr @.str.3240, i64 2411, i64 1, i64 %t225) unreachable -inrange5040: +inrange5184: %t227 = extractvalue { ptr, i64, i64 } %t224, 0 %t228 = getelementptr inbounds %S.ast.Node, ptr %t227, i64 1 %t229 = load %S.ast.Node, ptr %t228 @@ -50684,11 +52332,11 @@ inrange5040: store %S.gen.Val %t230, ptr %a231 %t232 = load ptr, ptr %a1 %t233 = icmp eq ptr %t232, null - br i1 %t233, label %panic5041, label %ok5042 -panic5041: - call void @finch_panic(ptr @.str.3156, i64 2331, ptr @.str.3157) + br i1 %t233, label %panic5185, label %ok5186 +panic5185: + call void @finch_panic(ptr @.str.3241, i64 2412, ptr @.str.3242) unreachable -ok5042: +ok5186: %t234 = getelementptr inbounds %S.gen.Gen, ptr %t232, i32 0, i32 11 %t235 = getelementptr inbounds { ptr, i64, i64 }, ptr %t234, i32 0, i32 1 %t236 = load i64, ptr %t235 @@ -50721,7 +52369,7 @@ ok5042: %t261 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t262 = load { ptr, i64, i64 }, ptr %t261 store { ptr, i64, i64 } %t262, ptr %a263 - call void @finch_str_sub(ptr %a264, ptr %a263, i64 0, i64 1, ptr @.str.3158, i64 2335) + call void @finch_str_sub(ptr %a264, ptr %a263, i64 0, i64 1, ptr @.str.3243, i64 2416) %t265 = load { ptr, i64, i64 }, ptr %a264 store { ptr, i64, i64 } %t265, ptr %a266 %t267 = load ptr, ptr %a1 @@ -50758,16 +52406,16 @@ ok5042: %t295 = getelementptr inbounds %S.gen.Place, ptr %a243, i32 0, i32 1 %t296 = load %S.ast.Type, ptr %t295 %t297 = call i1 @finch.gen.owning(ptr %t294, %S.ast.Type %t296) - br i1 %t297, label %then5043, label %endif5045 -then5043: + br i1 %t297, label %then5187, label %endif5189 +then5187: %t298 = load ptr, ptr %a1 %t299 = getelementptr inbounds %S.gen.Val, ptr %a260, i32 0, i32 0 %t300 = load { ptr, i64, i64 }, ptr %t299 %t301 = getelementptr inbounds %S.gen.Place, ptr %a243, i32 0, i32 1 %t302 = load %S.ast.Type, ptr %t301 call void @finch.gen.dropValue(ptr %t298, { ptr, i64, i64 } %t300, %S.ast.Type %t302) - br label %endif5045 -endif5045: + br label %endif5189 +endif5189: %t303 = load ptr, ptr %a1 %t304 = load i64, ptr %a237 call void @finch.gen.heldEnd(ptr %t303, i64 %t304) @@ -50798,9 +52446,9 @@ entry: %t4 = load ptr, ptr %a1 %t5 = load %S.ast.Node, ptr %a2 %t6 = call %S.gen.Val @finch.gen.expr(ptr %t4, %S.ast.Node %t5) - %t7 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3159, i64 4, i64 0 }) + %t7 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3244, i64 4, i64 0 }) %t8 = load %S.ast.Node, ptr %a2 - %t9 = call %S.gen.Val @finch.gen.coerce(ptr %t3, %S.gen.Val %t6, %S.ast.Type %t7, %S.ast.Node %t8, { ptr, i64, i64 } { ptr @.str.3160, i64 11, i64 0 }) + %t9 = call %S.gen.Val @finch.gen.coerce(ptr %t3, %S.gen.Val %t6, %S.ast.Type %t7, %S.ast.Node %t8, { ptr, i64, i64 } { ptr @.str.3245, i64 11, i64 0 }) store %S.gen.Val %t6, ptr %a10 call void @finch.drop.S_gen_Val(ptr %a10) store %S.ast.Type %t7, ptr %a11 @@ -50830,45 +52478,45 @@ entry: %t5 = load { ptr, i64, i64 }, ptr %t4 %t6 = extractvalue { ptr, i64, i64 } %t5, 1 %t7 = icmp uge i64 0, %t6 - br i1 %t7, label %range5046, label %inrange5047 -range5046: - call void @finch_panic_index(ptr @.str.3161, i64 2350, i64 0, i64 %t6) + br i1 %t7, label %range5190, label %inrange5191 +range5190: + call void @finch_panic_index(ptr @.str.3246, i64 2431, i64 0, i64 %t6) unreachable -inrange5047: +inrange5191: %t8 = extractvalue { ptr, i64, i64 } %t5, 0 %t9 = getelementptr inbounds %S.ast.Node, ptr %t8, i64 0 %t10 = load %S.ast.Node, ptr %t9 %t11 = call { ptr, i64, i64 } @finch.gen.condition(ptr %t3, %S.ast.Node %t10) store { ptr, i64, i64 } %t11, ptr %a12 %t13 = load ptr, ptr %a1 - %t14 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t13, { ptr, i64, i64 } { ptr @.str.3162, i64 4, i64 0 }) + %t14 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t13, { ptr, i64, i64 } { ptr @.str.3247, i64 4, i64 0 }) store { ptr, i64, i64 } %t14, ptr %a15 %t16 = load ptr, ptr %a1 - %t17 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t16, { ptr, i64, i64 } { ptr @.str.3163, i64 4, i64 0 }) + %t17 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t16, { ptr, i64, i64 } { ptr @.str.3248, i64 4, i64 0 }) store { ptr, i64, i64 } %t17, ptr %a18 %t19 = load ptr, ptr %a1 - %t20 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t19, { ptr, i64, i64 } { ptr @.str.3164, i64 5, i64 0 }) + %t20 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t19, { ptr, i64, i64 } { ptr @.str.3249, i64 5, i64 0 }) store { ptr, i64, i64 } %t20, ptr %a21 %t22 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t23 = getelementptr inbounds { ptr, i64, i64 }, ptr %t22, i32 0, i32 1 %t24 = load i64, ptr %t23 %t25 = icmp sgt i64 %t24, 2 - br i1 %t25, label %then5048, label %else5049 -then5048: + br i1 %t25, label %then5192, label %else5193 +then5192: %t26 = load ptr, ptr %a1 %t27 = load { ptr, i64, i64 }, ptr %a12 %t28 = load { ptr, i64, i64 }, ptr %a15 %t29 = load { ptr, i64, i64 }, ptr %a18 call void @finch.gen.condBr(ptr %t26, { ptr, i64, i64 } %t27, { ptr, i64, i64 } %t28, { ptr, i64, i64 } %t29) - br label %endif5050 -else5049: + br label %endif5194 +else5193: %t30 = load ptr, ptr %a1 %t31 = load { ptr, i64, i64 }, ptr %a12 %t32 = load { ptr, i64, i64 }, ptr %a15 %t33 = load { ptr, i64, i64 }, ptr %a21 call void @finch.gen.condBr(ptr %t30, { ptr, i64, i64 } %t31, { ptr, i64, i64 } %t32, { ptr, i64, i64 } %t33) - br label %endif5050 -endif5050: + br label %endif5194 +endif5194: %t34 = load ptr, ptr %a1 %t35 = load { ptr, i64, i64 }, ptr %a15 call void @finch.gen.label(ptr %t34, { ptr, i64, i64 } %t35) @@ -50877,22 +52525,22 @@ endif5050: %t38 = load { ptr, i64, i64 }, ptr %t37 %t39 = extractvalue { ptr, i64, i64 } %t38, 1 %t40 = icmp uge i64 1, %t39 - br i1 %t40, label %range5051, label %inrange5052 -range5051: - call void @finch_panic_index(ptr @.str.3165, i64 2360, i64 1, i64 %t39) + br i1 %t40, label %range5195, label %inrange5196 +range5195: + call void @finch_panic_index(ptr @.str.3250, i64 2441, i64 1, i64 %t39) unreachable -inrange5052: +inrange5196: %t41 = extractvalue { ptr, i64, i64 } %t38, 0 %t42 = getelementptr inbounds %S.ast.Node, ptr %t41, i64 1 %t43 = load %S.ast.Node, ptr %t42 call void @finch.gen.block(ptr %t36, %S.ast.Node %t43, i1 true) %t44 = load ptr, ptr %a1 %t45 = icmp eq ptr %t44, null - br i1 %t45, label %panic5053, label %ok5054 -panic5053: - call void @finch_panic(ptr @.str.3166, i64 2361, ptr @.str.3167) + br i1 %t45, label %panic5197, label %ok5198 +panic5197: + call void @finch_panic(ptr @.str.3251, i64 2442, ptr @.str.3252) unreachable -ok5054: +ok5198: %t46 = getelementptr inbounds %S.gen.Gen, ptr %t44, i32 0, i32 9 %t47 = load i1, ptr %t46 %t48 = xor i1 %t47, true @@ -50904,8 +52552,8 @@ ok5054: %t53 = getelementptr inbounds { ptr, i64, i64 }, ptr %t52, i32 0, i32 1 %t54 = load i64, ptr %t53 %t55 = icmp sgt i64 %t54, 2 - br i1 %t55, label %then5055, label %else5056 -then5055: + br i1 %t55, label %then5199, label %else5200 +then5199: %t56 = load ptr, ptr %a1 %t57 = load { ptr, i64, i64 }, ptr %a18 call void @finch.gen.label(ptr %t56, { ptr, i64, i64 } %t57) @@ -50914,52 +52562,52 @@ then5055: %t60 = load { ptr, i64, i64 }, ptr %t59 %t61 = extractvalue { ptr, i64, i64 } %t60, 1 %t62 = icmp uge i64 2, %t61 - br i1 %t62, label %range5058, label %inrange5059 -range5058: - call void @finch_panic_index(ptr @.str.3168, i64 2365, i64 2, i64 %t61) + br i1 %t62, label %range5202, label %inrange5203 +range5202: + call void @finch_panic_index(ptr @.str.3253, i64 2446, i64 2, i64 %t61) unreachable -inrange5059: +inrange5203: %t63 = extractvalue { ptr, i64, i64 } %t60, 0 %t64 = getelementptr inbounds %S.ast.Node, ptr %t63, i64 2 %t65 = load %S.ast.Node, ptr %t64 call void @finch.gen.stmt(ptr %t58, %S.ast.Node %t65) %t66 = load i1, ptr %a49 - br label %logic.from5060 -logic.from5060: - br i1 %t66, label %logic.end5062, label %logic.rhs5061 -logic.rhs5061: + br label %logic.from5204 +logic.from5204: + br i1 %t66, label %logic.end5206, label %logic.rhs5205 +logic.rhs5205: %t67 = load ptr, ptr %a1 %t68 = icmp eq ptr %t67, null - br i1 %t68, label %panic5063, label %ok5064 -panic5063: - call void @finch_panic(ptr @.str.3169, i64 2366, ptr @.str.3170) + br i1 %t68, label %panic5207, label %ok5208 +panic5207: + call void @finch_panic(ptr @.str.3254, i64 2447, ptr @.str.3255) unreachable -ok5064: +ok5208: %t69 = getelementptr inbounds %S.gen.Gen, ptr %t67, i32 0, i32 9 %t70 = load i1, ptr %t69 %t71 = xor i1 %t70, true - br label %logic.rend5065 -logic.rend5065: - br label %logic.end5062 -logic.end5062: - %t72 = phi i1 [ true, %logic.from5060 ], [ %t71, %logic.rend5065 ] + br label %logic.rend5209 +logic.rend5209: + br label %logic.end5206 +logic.end5206: + %t72 = phi i1 [ true, %logic.from5204 ], [ %t71, %logic.rend5209 ] store i1 %t72, ptr %a49 %t73 = load ptr, ptr %a1 %t74 = load { ptr, i64, i64 }, ptr %a21 call void @finch.gen.br(ptr %t73, { ptr, i64, i64 } %t74) - br label %endif5057 -else5056: + br label %endif5201 +else5200: store i1 true, ptr %a49 - br label %endif5057 -endif5057: + br label %endif5201 +endif5201: %t75 = load i1, ptr %a49 - br i1 %t75, label %then5066, label %endif5068 -then5066: + br i1 %t75, label %then5210, label %endif5212 +then5210: %t76 = load ptr, ptr %a1 %t77 = load { ptr, i64, i64 }, ptr %a21 call void @finch.gen.label(ptr %t76, { ptr, i64, i64 } %t77) - br label %endif5068 -endif5068: + br label %endif5212 +endif5212: call void @finch_str_drop(ptr %a21) call void @finch_str_drop(ptr %a18) call void @finch_str_drop(ptr %a15) @@ -50989,13 +52637,13 @@ entry: store ptr %p0, ptr %a1 store %S.ast.Node %p1, ptr %a2 %t3 = load ptr, ptr %a1 - %t4 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t3, { ptr, i64, i64 } { ptr @.str.3171, i64 10, i64 0 }) + %t4 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t3, { ptr, i64, i64 } { ptr @.str.3256, i64 10, i64 0 }) store { ptr, i64, i64 } %t4, ptr %a5 %t6 = load ptr, ptr %a1 - %t7 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t6, { ptr, i64, i64 } { ptr @.str.3172, i64 10, i64 0 }) + %t7 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t6, { ptr, i64, i64 } { ptr @.str.3257, i64 10, i64 0 }) store { ptr, i64, i64 } %t7, ptr %a8 %t9 = load ptr, ptr %a1 - %t10 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t9, { ptr, i64, i64 } { ptr @.str.3173, i64 9, i64 0 }) + %t10 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t9, { ptr, i64, i64 } { ptr @.str.3258, i64 9, i64 0 }) store { ptr, i64, i64 } %t10, ptr %a11 %t12 = load ptr, ptr %a1 %t13 = load { ptr, i64, i64 }, ptr %a5 @@ -51007,86 +52655,86 @@ entry: %t17 = load { ptr, i64, i64 }, ptr %t16 %t18 = extractvalue { ptr, i64, i64 } %t17, 1 %t19 = icmp uge i64 0, %t18 - br i1 %t19, label %range5069, label %inrange5070 -range5069: - call void @finch_panic_index(ptr @.str.3174, i64 2382, i64 0, i64 %t18) + br i1 %t19, label %range5213, label %inrange5214 +range5213: + call void @finch_panic_index(ptr @.str.3259, i64 2463, i64 0, i64 %t18) unreachable -inrange5070: +inrange5214: %t20 = extractvalue { ptr, i64, i64 } %t17, 0 %t21 = getelementptr inbounds %S.ast.Node, ptr %t20, i64 0 %t22 = getelementptr inbounds %S.ast.Node, ptr %t21, i32 0, i32 0 %t23 = load { ptr, i64, i64 }, ptr %t22 store { ptr, i64, i64 } %t23, ptr %a24 - store { ptr, i64, i64 } { ptr @.str.3175, i64 4, i64 0 }, ptr %a25 + store { ptr, i64, i64 } { ptr @.str.3260, i64 4, i64 0 }, ptr %a25 %t26 = call i32 @finch_str_eq(ptr %a24, ptr %a25) %t27 = icmp ne i32 %t26, 0 - br label %logic.from5071 -logic.from5071: - br i1 %t27, label %logic.rhs5072, label %logic.end5073 -logic.rhs5072: + br label %logic.from5215 +logic.from5215: + br i1 %t27, label %logic.rhs5216, label %logic.end5217 +logic.rhs5216: %t28 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t29 = load { ptr, i64, i64 }, ptr %t28 %t30 = extractvalue { ptr, i64, i64 } %t29, 1 %t31 = icmp uge i64 0, %t30 - br i1 %t31, label %range5074, label %inrange5075 -range5074: - call void @finch_panic_index(ptr @.str.3176, i64 2382, i64 0, i64 %t30) + br i1 %t31, label %range5218, label %inrange5219 +range5218: + call void @finch_panic_index(ptr @.str.3261, i64 2463, i64 0, i64 %t30) unreachable -inrange5075: +inrange5219: %t32 = extractvalue { ptr, i64, i64 } %t29, 0 %t33 = getelementptr inbounds %S.ast.Node, ptr %t32, i64 0 %t34 = getelementptr inbounds %S.ast.Node, ptr %t33, i32 0, i32 4 %t35 = load { ptr, i64, i64 }, ptr %t34 store { ptr, i64, i64 } %t35, ptr %a36 - store { ptr, i64, i64 } { ptr @.str.3177, i64 4, i64 0 }, ptr %a37 + store { ptr, i64, i64 } { ptr @.str.3262, i64 4, i64 0 }, ptr %a37 %t38 = call i32 @finch_str_eq(ptr %a36, ptr %a37) %t39 = icmp ne i32 %t38, 0 - br label %logic.rend5076 -logic.rend5076: - br label %logic.end5073 -logic.end5073: - %t40 = phi i1 [ false, %logic.from5071 ], [ %t39, %logic.rend5076 ] + br label %logic.rend5220 +logic.rend5220: + br label %logic.end5217 +logic.end5217: + %t40 = phi i1 [ false, %logic.from5215 ], [ %t39, %logic.rend5220 ] store i1 %t40, ptr %a41 %t42 = load ptr, ptr %a1 %t43 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t44 = load { ptr, i64, i64 }, ptr %t43 %t45 = extractvalue { ptr, i64, i64 } %t44, 1 %t46 = icmp uge i64 0, %t45 - br i1 %t46, label %range5077, label %inrange5078 -range5077: - call void @finch_panic_index(ptr @.str.3178, i64 2383, i64 0, i64 %t45) + br i1 %t46, label %range5221, label %inrange5222 +range5221: + call void @finch_panic_index(ptr @.str.3263, i64 2464, i64 0, i64 %t45) unreachable -inrange5078: +inrange5222: %t47 = extractvalue { ptr, i64, i64 } %t44, 0 %t48 = getelementptr inbounds %S.ast.Node, ptr %t47, i64 0 %t49 = load %S.ast.Node, ptr %t48 %t50 = call { ptr, i64, i64 } @finch.gen.condition(ptr %t42, %S.ast.Node %t49) store { ptr, i64, i64 } %t50, ptr %a51 %t52 = load i1, ptr %a41 - br i1 %t52, label %then5079, label %else5080 -then5079: + br i1 %t52, label %then5223, label %else5224 +then5223: %t53 = load ptr, ptr %a1 %t54 = load { ptr, i64, i64 }, ptr %a8 call void @finch.gen.br(ptr %t53, { ptr, i64, i64 } %t54) - br label %endif5081 -else5080: + br label %endif5225 +else5224: %t55 = load ptr, ptr %a1 %t56 = load { ptr, i64, i64 }, ptr %a51 %t57 = load { ptr, i64, i64 }, ptr %a8 %t58 = load { ptr, i64, i64 }, ptr %a11 call void @finch.gen.condBr(ptr %t55, { ptr, i64, i64 } %t56, { ptr, i64, i64 } %t57, { ptr, i64, i64 } %t58) - br label %endif5081 -endif5081: + br label %endif5225 +endif5225: %t59 = load ptr, ptr %a1 %t60 = load { ptr, i64, i64 }, ptr %a8 call void @finch.gen.label(ptr %t59, { ptr, i64, i64 } %t60) %t61 = load ptr, ptr %a1 %t62 = icmp eq ptr %t61, null - br i1 %t62, label %panic5082, label %ok5083 -panic5082: - call void @finch_panic(ptr @.str.3179, i64 2390, ptr @.str.3180) + br i1 %t62, label %panic5226, label %ok5227 +panic5226: + call void @finch_panic(ptr @.str.3264, i64 2471, ptr @.str.3265) unreachable -ok5083: +ok5227: %t63 = getelementptr inbounds %S.gen.Gen, ptr %t61, i32 0, i32 12 %t64 = getelementptr inbounds { ptr, i64, i64 }, ptr %t63, i32 0, i32 1 %t65 = load { ptr, i64, i64 }, ptr %a5 @@ -51101,22 +52749,22 @@ ok5083: %t74 = insertvalue %S.gen.Loop %t69, { ptr, i64, i64 } %t73, 1 %t75 = load ptr, ptr %a1 %t76 = icmp eq ptr %t75, null - br i1 %t76, label %panic5084, label %ok5085 -panic5084: - call void @finch_panic(ptr @.str.3181, i64 2390, ptr @.str.3182) + br i1 %t76, label %panic5228, label %ok5229 +panic5228: + call void @finch_panic(ptr @.str.3266, i64 2471, ptr @.str.3267) unreachable -ok5085: +ok5229: %t77 = getelementptr inbounds %S.gen.Gen, ptr %t75, i32 0, i32 10 %t78 = getelementptr inbounds { ptr, i64, i64 }, ptr %t77, i32 0, i32 1 %t79 = load i64, ptr %t78 %t80 = insertvalue %S.gen.Loop %t74, i64 %t79, 2 %t81 = load ptr, ptr %a1 %t82 = icmp eq ptr %t81, null - br i1 %t82, label %panic5086, label %ok5087 -panic5086: - call void @finch_panic(ptr @.str.3183, i64 2390, ptr @.str.3184) + br i1 %t82, label %panic5230, label %ok5231 +panic5230: + call void @finch_panic(ptr @.str.3268, i64 2471, ptr @.str.3269) unreachable -ok5087: +ok5231: %t83 = getelementptr inbounds %S.gen.Gen, ptr %t81, i32 0, i32 11 %t84 = getelementptr inbounds { ptr, i64, i64 }, ptr %t83, i32 0, i32 1 %t85 = load i64, ptr %t84 @@ -51132,11 +52780,11 @@ ok5087: %t92 = load { ptr, i64, i64 }, ptr %t91 %t93 = extractvalue { ptr, i64, i64 } %t92, 1 %t94 = icmp uge i64 1, %t93 - br i1 %t94, label %range5088, label %inrange5089 -range5088: - call void @finch_panic_index(ptr @.str.3185, i64 2391, i64 1, i64 %t93) + br i1 %t94, label %range5232, label %inrange5233 +range5232: + call void @finch_panic_index(ptr @.str.3270, i64 2472, i64 1, i64 %t93) unreachable -inrange5089: +inrange5233: %t95 = extractvalue { ptr, i64, i64 } %t92, 0 %t96 = getelementptr inbounds %S.ast.Node, ptr %t95, i64 1 %t97 = load %S.ast.Node, ptr %t96 @@ -51147,31 +52795,31 @@ inrange5089: %t102 = load { ptr, i64, i64 }, ptr %t101 %t103 = extractvalue { ptr, i64, i64 } %t102, 1 %t104 = icmp uge i64 1, %t103 - br i1 %t104, label %range5090, label %inrange5091 -range5090: - call void @finch_panic_index(ptr @.str.3186, i64 2392, i64 1, i64 %t103) + br i1 %t104, label %range5234, label %inrange5235 +range5234: + call void @finch_panic_index(ptr @.str.3271, i64 2473, i64 1, i64 %t103) unreachable -inrange5091: +inrange5235: %t105 = extractvalue { ptr, i64, i64 } %t102, 0 %t106 = getelementptr inbounds %S.ast.Node, ptr %t105, i64 1 %t107 = load %S.ast.Node, ptr %t106 call void @finch.gen.block(ptr %t100, %S.ast.Node %t107, i1 true) %t108 = load ptr, ptr %a1 %t109 = icmp eq ptr %t108, null - br i1 %t109, label %panic5092, label %ok5093 -panic5092: - call void @finch_panic(ptr @.str.3187, i64 2393, ptr @.str.3188) + br i1 %t109, label %panic5236, label %ok5237 +panic5236: + call void @finch_panic(ptr @.str.3272, i64 2474, ptr @.str.3273) unreachable -ok5093: +ok5237: %t110 = getelementptr inbounds %S.gen.Gen, ptr %t108, i32 0, i32 12 %t111 = getelementptr inbounds { ptr, i64, i64 }, ptr %t110, i32 0, i32 1 %t112 = load i64, ptr %t111 %t113 = icmp eq i64 %t112, 0 - br i1 %t113, label %panic5094, label %ok5095 -panic5094: - call void @finch_panic(ptr @.str.3189, i64 2393, ptr @.str.3190) + br i1 %t113, label %panic5238, label %ok5239 +panic5238: + call void @finch_panic(ptr @.str.3274, i64 2474, ptr @.str.3275) unreachable -ok5095: +ok5239: %t114 = sub i64 %t112, 1 %t115 = load ptr, ptr %t110 %t116 = getelementptr inbounds %S.gen.Loop, ptr %t115, i64 %t114 @@ -51184,23 +52832,23 @@ ok5095: call void @finch.gen.br(ptr %t119, { ptr, i64, i64 } %t120) %t121 = load i1, ptr %a41 %t122 = xor i1 %t121, true - br label %logic.from5096 -logic.from5096: - br i1 %t122, label %logic.end5098, label %logic.rhs5097 -logic.rhs5097: + br label %logic.from5240 +logic.from5240: + br i1 %t122, label %logic.end5242, label %logic.rhs5241 +logic.rhs5241: %t123 = load i1, ptr %a99 - br label %logic.rend5099 -logic.rend5099: - br label %logic.end5098 -logic.end5098: - %t124 = phi i1 [ true, %logic.from5096 ], [ %t123, %logic.rend5099 ] - br i1 %t124, label %then5100, label %endif5102 -then5100: + br label %logic.rend5243 +logic.rend5243: + br label %logic.end5242 +logic.end5242: + %t124 = phi i1 [ true, %logic.from5240 ], [ %t123, %logic.rend5243 ] + br i1 %t124, label %then5244, label %endif5246 +then5244: %t125 = load ptr, ptr %a1 %t126 = load { ptr, i64, i64 }, ptr %a11 call void @finch.gen.label(ptr %t125, { ptr, i64, i64 } %t126) - br label %endif5102 -endif5102: + br label %endif5246 +endif5246: call void @finch_str_drop(ptr %a51) call void @finch_str_drop(ptr %a11) call void @finch_str_drop(ptr %a8) @@ -51225,80 +52873,80 @@ entry: %t2 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 0 %t3 = load { ptr, i64, i64 }, ptr %t2 store { ptr, i64, i64 } %t3, ptr %a4 - store { ptr, i64, i64 } { ptr @.str.3191, i64 5, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.3276, i64 5, i64 0 }, ptr %a5 %t6 = call i32 @finch_str_eq(ptr %a4, ptr %a5) %t7 = icmp ne i32 %t6, 0 - br i1 %t7, label %then5103, label %endif5105 -then5103: + br i1 %t7, label %then5247, label %endif5249 +then5247: ret i1 true -endif5105: +endif5249: %t8 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 0 %t9 = load { ptr, i64, i64 }, ptr %t8 store { ptr, i64, i64 } %t9, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.3192, i64 5, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.3277, i64 5, i64 0 }, ptr %a11 %t12 = call i32 @finch_str_eq(ptr %a10, ptr %a11) %t13 = icmp ne i32 %t12, 0 - br label %logic.from5106 -logic.from5106: - br i1 %t13, label %logic.end5108, label %logic.rhs5107 -logic.rhs5107: + br label %logic.from5250 +logic.from5250: + br i1 %t13, label %logic.end5252, label %logic.rhs5251 +logic.rhs5251: %t14 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 0 %t15 = load { ptr, i64, i64 }, ptr %t14 store { ptr, i64, i64 } %t15, ptr %a16 - store { ptr, i64, i64 } { ptr @.str.3193, i64 3, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.3278, i64 3, i64 0 }, ptr %a17 %t18 = call i32 @finch_str_eq(ptr %a16, ptr %a17) %t19 = icmp ne i32 %t18, 0 - br label %logic.rend5109 -logic.rend5109: - br label %logic.end5108 -logic.end5108: - %t20 = phi i1 [ true, %logic.from5106 ], [ %t19, %logic.rend5109 ] - br label %logic.from5110 -logic.from5110: - br i1 %t20, label %logic.end5112, label %logic.rhs5111 -logic.rhs5111: + br label %logic.rend5253 +logic.rend5253: + br label %logic.end5252 +logic.end5252: + %t20 = phi i1 [ true, %logic.from5250 ], [ %t19, %logic.rend5253 ] + br label %logic.from5254 +logic.from5254: + br i1 %t20, label %logic.end5256, label %logic.rhs5255 +logic.rhs5255: %t21 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 0 %t22 = load { ptr, i64, i64 }, ptr %t21 store { ptr, i64, i64 } %t22, ptr %a23 - store { ptr, i64, i64 } { ptr @.str.3194, i64 4, i64 0 }, ptr %a24 + store { ptr, i64, i64 } { ptr @.str.3279, i64 4, i64 0 }, ptr %a24 %t25 = call i32 @finch_str_eq(ptr %a23, ptr %a24) %t26 = icmp ne i32 %t25, 0 - br label %logic.rend5113 -logic.rend5113: - br label %logic.end5112 -logic.end5112: - %t27 = phi i1 [ true, %logic.from5110 ], [ %t26, %logic.rend5113 ] - br i1 %t27, label %then5114, label %endif5116 -then5114: + br label %logic.rend5257 +logic.rend5257: + br label %logic.end5256 +logic.end5256: + %t27 = phi i1 [ true, %logic.from5254 ], [ %t26, %logic.rend5257 ] + br i1 %t27, label %then5258, label %endif5260 +then5258: ret i1 false -endif5116: +endif5260: %t28 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 9 store i64 0, ptr %a29 - br label %each.cond5117 -each.cond5117: + br label %each.cond5261 +each.cond5261: %t30 = getelementptr inbounds { ptr, i64, i64 }, ptr %t28, i32 0, i32 1 %t31 = load i64, ptr %t30 %t32 = load i64, ptr %a29 %t33 = icmp slt i64 %t32, %t31 - br i1 %t33, label %each.body5118, label %each.end5120 -each.body5118: + br i1 %t33, label %each.body5262, label %each.end5264 +each.body5262: %t34 = load ptr, ptr %t28 %t35 = getelementptr inbounds %S.ast.Node, ptr %t34, i64 %t32 %t36 = load %S.ast.Node, ptr %t35 store %S.ast.Node %t36, ptr %a37 %t38 = load %S.ast.Node, ptr %a37 %t39 = call i1 @finch.gen.countBreaks(%S.ast.Node %t38) - br i1 %t39, label %then5121, label %endif5123 -then5121: + br i1 %t39, label %then5265, label %endif5267 +then5265: ret i1 true -endif5123: - br label %each.step5119 -each.step5119: +endif5267: + br label %each.step5263 +each.step5263: %t40 = load i64, ptr %a29 %t41 = add i64 %t40, 1 store i64 %t41, ptr %a29 - br label %each.cond5117 -each.end5120: + br label %each.cond5261 +each.end5264: ret i1 false } @@ -51361,29 +53009,29 @@ entry: %t6 = load { ptr, i64, i64 }, ptr %t5 %t7 = extractvalue { ptr, i64, i64 } %t6, 1 %t8 = icmp uge i64 0, %t7 - br i1 %t8, label %range5124, label %inrange5125 -range5124: - call void @finch_panic_index(ptr @.str.3195, i64 2417, i64 0, i64 %t7) + br i1 %t8, label %range5268, label %inrange5269 +range5268: + call void @finch_panic_index(ptr @.str.3280, i64 2498, i64 0, i64 %t7) unreachable -inrange5125: +inrange5269: %t9 = extractvalue { ptr, i64, i64 } %t6, 0 %t10 = getelementptr inbounds %S.ast.Node, ptr %t9, i64 0 %t11 = load %S.ast.Node, ptr %t10 %t12 = call %S.gen.Val @finch.gen.expr(ptr %t4, %S.ast.Node %t11) - %t13 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3196, i64 3, i64 0 }) + %t13 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3281, i64 3, i64 0 }) %t14 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t15 = load { ptr, i64, i64 }, ptr %t14 %t16 = extractvalue { ptr, i64, i64 } %t15, 1 %t17 = icmp uge i64 0, %t16 - br i1 %t17, label %range5126, label %inrange5127 -range5126: - call void @finch_panic_index(ptr @.str.3197, i64 2417, i64 0, i64 %t16) + br i1 %t17, label %range5270, label %inrange5271 +range5270: + call void @finch_panic_index(ptr @.str.3282, i64 2498, i64 0, i64 %t16) unreachable -inrange5127: +inrange5271: %t18 = extractvalue { ptr, i64, i64 } %t15, 0 %t19 = getelementptr inbounds %S.ast.Node, ptr %t18, i64 0 %t20 = load %S.ast.Node, ptr %t19 - %t21 = call %S.gen.Val @finch.gen.coerce(ptr %t3, %S.gen.Val %t12, %S.ast.Type %t13, %S.ast.Node %t20, { ptr, i64, i64 } { ptr @.str.3198, i64 20, i64 0 }) + %t21 = call %S.gen.Val @finch.gen.coerce(ptr %t3, %S.gen.Val %t12, %S.ast.Type %t13, %S.ast.Node %t20, { ptr, i64, i64 } { ptr @.str.3283, i64 20, i64 0 }) store %S.gen.Val %t12, ptr %a22 call void @finch.drop.S_gen_Val(ptr %a22) store %S.ast.Type %t13, ptr %a23 @@ -51401,29 +53049,29 @@ inrange5127: %t33 = load { ptr, i64, i64 }, ptr %t32 %t34 = extractvalue { ptr, i64, i64 } %t33, 1 %t35 = icmp uge i64 1, %t34 - br i1 %t35, label %range5128, label %inrange5129 -range5128: - call void @finch_panic_index(ptr @.str.3199, i64 2418, i64 1, i64 %t34) + br i1 %t35, label %range5272, label %inrange5273 +range5272: + call void @finch_panic_index(ptr @.str.3284, i64 2499, i64 1, i64 %t34) unreachable -inrange5129: +inrange5273: %t36 = extractvalue { ptr, i64, i64 } %t33, 0 %t37 = getelementptr inbounds %S.ast.Node, ptr %t36, i64 1 %t38 = load %S.ast.Node, ptr %t37 %t39 = call %S.gen.Val @finch.gen.expr(ptr %t31, %S.ast.Node %t38) - %t40 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3200, i64 3, i64 0 }) + %t40 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3285, i64 3, i64 0 }) %t41 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t42 = load { ptr, i64, i64 }, ptr %t41 %t43 = extractvalue { ptr, i64, i64 } %t42, 1 %t44 = icmp uge i64 1, %t43 - br i1 %t44, label %range5130, label %inrange5131 -range5130: - call void @finch_panic_index(ptr @.str.3201, i64 2418, i64 1, i64 %t43) + br i1 %t44, label %range5274, label %inrange5275 +range5274: + call void @finch_panic_index(ptr @.str.3286, i64 2499, i64 1, i64 %t43) unreachable -inrange5131: +inrange5275: %t45 = extractvalue { ptr, i64, i64 } %t42, 0 %t46 = getelementptr inbounds %S.ast.Node, ptr %t45, i64 1 %t47 = load %S.ast.Node, ptr %t46 - %t48 = call %S.gen.Val @finch.gen.coerce(ptr %t30, %S.gen.Val %t39, %S.ast.Type %t40, %S.ast.Node %t47, { ptr, i64, i64 } { ptr @.str.3202, i64 18, i64 0 }) + %t48 = call %S.gen.Val @finch.gen.coerce(ptr %t30, %S.gen.Val %t39, %S.ast.Type %t40, %S.ast.Node %t47, { ptr, i64, i64 } { ptr @.str.3287, i64 18, i64 0 }) store %S.gen.Val %t39, ptr %a49 call void @finch.drop.S_gen_Val(ptr %a49) store %S.ast.Type %t40, ptr %a50 @@ -51441,23 +53089,23 @@ inrange5131: %t59 = load %S.ast.Node, ptr %a2 %t60 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t61 = load { ptr, i64, i64 }, ptr %t60 - %t62 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3203, i64 3, i64 0 }) + %t62 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3288, i64 3, i64 0 }) %t63 = load { ptr, i64, i64 }, ptr %a29 %t64 = call { ptr, i64, i64 } @finch.gen.addVar(ptr %t58, %S.ast.Node %t59, { ptr, i64, i64 } %t61, %S.ast.Type %t62, { ptr, i64, i64 } %t63, i1 true, i1 false) store %S.ast.Type %t62, ptr %a65 call void @finch.drop.S_ast_Type(ptr %a65) store { ptr, i64, i64 } %t64, ptr %a66 %t67 = load ptr, ptr %a1 - %t68 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t67, { ptr, i64, i64 } { ptr @.str.3204, i64 8, i64 0 }) + %t68 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t67, { ptr, i64, i64 } { ptr @.str.3289, i64 8, i64 0 }) store { ptr, i64, i64 } %t68, ptr %a69 %t70 = load ptr, ptr %a1 - %t71 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t70, { ptr, i64, i64 } { ptr @.str.3205, i64 8, i64 0 }) + %t71 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t70, { ptr, i64, i64 } { ptr @.str.3290, i64 8, i64 0 }) store { ptr, i64, i64 } %t71, ptr %a72 %t73 = load ptr, ptr %a1 - %t74 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t73, { ptr, i64, i64 } { ptr @.str.3206, i64 8, i64 0 }) + %t74 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t73, { ptr, i64, i64 } { ptr @.str.3291, i64 8, i64 0 }) store { ptr, i64, i64 } %t74, ptr %a75 %t76 = load ptr, ptr %a1 - %t77 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t76, { ptr, i64, i64 } { ptr @.str.3207, i64 7, i64 0 }) + %t77 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t76, { ptr, i64, i64 } { ptr @.str.3292, i64 7, i64 0 }) store { ptr, i64, i64 } %t77, ptr %a78 %t79 = load ptr, ptr %a1 %t80 = load { ptr, i64, i64 }, ptr %a69 @@ -51467,16 +53115,16 @@ inrange5131: call void @finch.gen.label(ptr %t81, { ptr, i64, i64 } %t82) %t83 = load ptr, ptr %a1 %t84 = load { ptr, i64, i64 }, ptr %a66 - %t85 = call { ptr, i64, i64 } @finch.gen.load(ptr %t83, { ptr, i64, i64 } { ptr @.str.3208, i64 3, i64 0 }, { ptr, i64, i64 } %t84) + %t85 = call { ptr, i64, i64 } @finch.gen.load(ptr %t83, { ptr, i64, i64 } { ptr @.str.3293, i64 3, i64 0 }, { ptr, i64, i64 } %t84) store { ptr, i64, i64 } %t85, ptr %a86 %t87 = load ptr, ptr %a1 %t88 = load { ptr, i64, i64 }, ptr %a86 - store { ptr, i64, i64 } { ptr @.str.3209, i64 13, i64 0 }, ptr %a90 + store { ptr, i64, i64 } { ptr @.str.3294, i64 13, i64 0 }, ptr %a90 store { ptr, i64, i64 } %t88, ptr %a91 call void @finch_str_concat(ptr %a89, ptr %a90, ptr %a91) %t92 = load { ptr, i64, i64 }, ptr %a89 store { ptr, i64, i64 } %t92, ptr %a94 - store { ptr, i64, i64 } { ptr @.str.3210, i64 2, i64 0 }, ptr %a95 + store { ptr, i64, i64 } { ptr @.str.3295, i64 2, i64 0 }, ptr %a95 call void @finch_str_concat(ptr %a93, ptr %a94, ptr %a95) store { ptr, i64, i64 } %t92, ptr %a96 call void @finch_str_drop(ptr %a96) @@ -51502,11 +53150,11 @@ inrange5131: call void @finch.gen.label(ptr %t111, { ptr, i64, i64 } %t112) %t113 = load ptr, ptr %a1 %t114 = icmp eq ptr %t113, null - br i1 %t114, label %panic5132, label %ok5133 -panic5132: - call void @finch_panic(ptr @.str.3211, i64 2431, ptr @.str.3212) + br i1 %t114, label %panic5276, label %ok5277 +panic5276: + call void @finch_panic(ptr @.str.3296, i64 2512, ptr @.str.3297) unreachable -ok5133: +ok5277: %t115 = getelementptr inbounds %S.gen.Gen, ptr %t113, i32 0, i32 12 %t116 = getelementptr inbounds { ptr, i64, i64 }, ptr %t115, i32 0, i32 1 %t117 = load { ptr, i64, i64 }, ptr %a75 @@ -51521,22 +53169,22 @@ ok5133: %t126 = insertvalue %S.gen.Loop %t121, { ptr, i64, i64 } %t125, 1 %t127 = load ptr, ptr %a1 %t128 = icmp eq ptr %t127, null - br i1 %t128, label %panic5134, label %ok5135 -panic5134: - call void @finch_panic(ptr @.str.3213, i64 2431, ptr @.str.3214) + br i1 %t128, label %panic5278, label %ok5279 +panic5278: + call void @finch_panic(ptr @.str.3298, i64 2512, ptr @.str.3299) unreachable -ok5135: +ok5279: %t129 = getelementptr inbounds %S.gen.Gen, ptr %t127, i32 0, i32 10 %t130 = getelementptr inbounds { ptr, i64, i64 }, ptr %t129, i32 0, i32 1 %t131 = load i64, ptr %t130 %t132 = insertvalue %S.gen.Loop %t126, i64 %t131, 2 %t133 = load ptr, ptr %a1 %t134 = icmp eq ptr %t133, null - br i1 %t134, label %panic5136, label %ok5137 -panic5136: - call void @finch_panic(ptr @.str.3215, i64 2431, ptr @.str.3216) + br i1 %t134, label %panic5280, label %ok5281 +panic5280: + call void @finch_panic(ptr @.str.3300, i64 2512, ptr @.str.3301) unreachable -ok5137: +ok5281: %t135 = getelementptr inbounds %S.gen.Gen, ptr %t133, i32 0, i32 11 %t136 = getelementptr inbounds { ptr, i64, i64 }, ptr %t135, i32 0, i32 1 %t137 = load i64, ptr %t136 @@ -51553,31 +53201,31 @@ ok5137: %t145 = load { ptr, i64, i64 }, ptr %t144 %t146 = extractvalue { ptr, i64, i64 } %t145, 1 %t147 = icmp uge i64 2, %t146 - br i1 %t147, label %range5138, label %inrange5139 -range5138: - call void @finch_panic_index(ptr @.str.3217, i64 2432, i64 2, i64 %t146) + br i1 %t147, label %range5282, label %inrange5283 +range5282: + call void @finch_panic_index(ptr @.str.3302, i64 2513, i64 2, i64 %t146) unreachable -inrange5139: +inrange5283: %t148 = extractvalue { ptr, i64, i64 } %t145, 0 %t149 = getelementptr inbounds %S.ast.Node, ptr %t148, i64 2 %t150 = load %S.ast.Node, ptr %t149 call void @finch.gen.block(ptr %t143, %S.ast.Node %t150, i1 true) %t151 = load ptr, ptr %a1 %t152 = icmp eq ptr %t151, null - br i1 %t152, label %panic5140, label %ok5141 -panic5140: - call void @finch_panic(ptr @.str.3218, i64 2433, ptr @.str.3219) + br i1 %t152, label %panic5284, label %ok5285 +panic5284: + call void @finch_panic(ptr @.str.3303, i64 2514, ptr @.str.3304) unreachable -ok5141: +ok5285: %t153 = getelementptr inbounds %S.gen.Gen, ptr %t151, i32 0, i32 12 %t154 = getelementptr inbounds { ptr, i64, i64 }, ptr %t153, i32 0, i32 1 %t155 = load i64, ptr %t154 %t156 = icmp eq i64 %t155, 0 - br i1 %t156, label %panic5142, label %ok5143 -panic5142: - call void @finch_panic(ptr @.str.3220, i64 2433, ptr @.str.3221) + br i1 %t156, label %panic5286, label %ok5287 +panic5286: + call void @finch_panic(ptr @.str.3305, i64 2514, ptr @.str.3306) unreachable -ok5143: +ok5287: %t157 = sub i64 %t155, 1 %t158 = load ptr, ptr %t153 %t159 = getelementptr inbounds %S.gen.Loop, ptr %t158, i64 %t157 @@ -51593,17 +53241,17 @@ ok5143: call void @finch.gen.label(ptr %t164, { ptr, i64, i64 } %t165) %t166 = load ptr, ptr %a1 %t167 = load { ptr, i64, i64 }, ptr %a66 - %t168 = call { ptr, i64, i64 } @finch.gen.load(ptr %t166, { ptr, i64, i64 } { ptr @.str.3222, i64 3, i64 0 }, { ptr, i64, i64 } %t167) + %t168 = call { ptr, i64, i64 } @finch.gen.load(ptr %t166, { ptr, i64, i64 } { ptr @.str.3307, i64 3, i64 0 }, { ptr, i64, i64 } %t167) store { ptr, i64, i64 } %t168, ptr %a169 %t170 = load ptr, ptr %a1 %t171 = load ptr, ptr %a1 %t172 = load { ptr, i64, i64 }, ptr %a169 - store { ptr, i64, i64 } { ptr @.str.3224, i64 8, i64 0 }, ptr %a174 + store { ptr, i64, i64 } { ptr @.str.3309, i64 8, i64 0 }, ptr %a174 store { ptr, i64, i64 } %t172, ptr %a175 call void @finch_str_concat(ptr %a173, ptr %a174, ptr %a175) %t176 = load { ptr, i64, i64 }, ptr %a173 store { ptr, i64, i64 } %t176, ptr %a178 - store { ptr, i64, i64 } { ptr @.str.3225, i64 3, i64 0 }, ptr %a179 + store { ptr, i64, i64 } { ptr @.str.3310, i64 3, i64 0 }, ptr %a179 call void @finch_str_concat(ptr %a177, ptr %a178, ptr %a179) store { ptr, i64, i64 } %t176, ptr %a180 call void @finch_str_drop(ptr %a180) @@ -51612,7 +53260,7 @@ ok5143: store { ptr, i64, i64 } %t181, ptr %a183 call void @finch_str_drop(ptr %a183) %t184 = load { ptr, i64, i64 }, ptr %a66 - call void @finch.gen.store(ptr %t170, { ptr, i64, i64 } { ptr @.str.3223, i64 3, i64 0 }, { ptr, i64, i64 } %t182, { ptr, i64, i64 } %t184) + call void @finch.gen.store(ptr %t170, { ptr, i64, i64 } { ptr @.str.3308, i64 3, i64 0 }, { ptr, i64, i64 } %t182, { ptr, i64, i64 } %t184) store { ptr, i64, i64 } %t182, ptr %a185 call void @finch_str_drop(ptr %a185) %t186 = load ptr, ptr %a1 @@ -51809,11 +53457,11 @@ entry: %t7 = load { ptr, i64, i64 }, ptr %t6 %t8 = extractvalue { ptr, i64, i64 } %t7, 1 %t9 = icmp uge i64 0, %t8 - br i1 %t9, label %range5144, label %inrange5145 -range5144: - call void @finch_panic_index(ptr @.str.3226, i64 2445, i64 0, i64 %t8) + br i1 %t9, label %range5288, label %inrange5289 +range5288: + call void @finch_panic_index(ptr @.str.3311, i64 2526, i64 0, i64 %t8) unreachable -inrange5145: +inrange5289: %t10 = extractvalue { ptr, i64, i64 } %t7, 0 %t11 = getelementptr inbounds %S.ast.Type, ptr %t10, i64 0 %t12 = load %S.ast.Type, ptr %t11 @@ -51825,11 +53473,11 @@ inrange5145: %t18 = load { ptr, i64, i64 }, ptr %t17 %t19 = extractvalue { ptr, i64, i64 } %t18, 1 %t20 = icmp uge i64 1, %t19 - br i1 %t20, label %range5146, label %inrange5147 -range5146: - call void @finch_panic_index(ptr @.str.3227, i64 2446, i64 1, i64 %t19) + br i1 %t20, label %range5290, label %inrange5291 +range5290: + call void @finch_panic_index(ptr @.str.3312, i64 2527, i64 1, i64 %t19) unreachable -inrange5147: +inrange5291: %t21 = extractvalue { ptr, i64, i64 } %t18, 0 %t22 = getelementptr inbounds %S.ast.Type, ptr %t21, i64 1 %t23 = load %S.ast.Type, ptr %t22 @@ -51838,20 +53486,20 @@ inrange5147: %t26 = load %S.ast.Type, ptr %a25 store %S.ast.Type %t26, ptr %a27 %t28 = load i1, ptr %a5 - br label %logic.from5148 -logic.from5148: - br i1 %t28, label %logic.rhs5149, label %logic.end5150 -logic.rhs5149: + br label %logic.from5292 +logic.from5292: + br i1 %t28, label %logic.rhs5293, label %logic.end5294 +logic.rhs5293: %t29 = load ptr, ptr %a1 %t30 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t31 = load { ptr, i64, i64 }, ptr %t30 %t32 = extractvalue { ptr, i64, i64 } %t31, 1 %t33 = icmp uge i64 0, %t32 - br i1 %t33, label %range5151, label %inrange5152 -range5151: - call void @finch_panic_index(ptr @.str.3228, i64 2447, i64 0, i64 %t32) + br i1 %t33, label %range5295, label %inrange5296 +range5295: + call void @finch_panic_index(ptr @.str.3313, i64 2528, i64 0, i64 %t32) unreachable -inrange5152: +inrange5296: %t34 = extractvalue { ptr, i64, i64 } %t31, 0 %t35 = getelementptr inbounds %S.ast.Node, ptr %t34, i64 0 %t36 = load %S.ast.Node, ptr %t35 @@ -51860,46 +53508,46 @@ inrange5152: %t39 = load { ptr, i64, i64 }, ptr %t38 %t40 = extractvalue { ptr, i64, i64 } %t39, 1 %t41 = icmp uge i64 1, %t40 - br i1 %t41, label %range5153, label %inrange5154 -range5153: - call void @finch_panic_index(ptr @.str.3229, i64 2447, i64 1, i64 %t40) + br i1 %t41, label %range5297, label %inrange5298 +range5297: + call void @finch_panic_index(ptr @.str.3314, i64 2528, i64 1, i64 %t40) unreachable -inrange5154: +inrange5298: %t42 = extractvalue { ptr, i64, i64 } %t39, 0 %t43 = getelementptr inbounds %S.ast.Node, ptr %t42, i64 1 %t44 = load %S.ast.Node, ptr %t43 %t45 = call i1 @finch.gen.mutates(ptr %t29, { ptr, i64, i64 } %t37, %S.ast.Node %t44) store { ptr, i64, i64 } %t37, ptr %a46 call void @finch_str_drop(ptr %a46) - br label %logic.rend5155 -logic.rend5155: - br label %logic.end5150 -logic.end5150: - %t47 = phi i1 [ false, %logic.from5148 ], [ %t45, %logic.rend5155 ] + br label %logic.rend5299 +logic.rend5299: + br label %logic.end5294 +logic.end5294: + %t47 = phi i1 [ false, %logic.from5292 ], [ %t45, %logic.rend5299 ] store i1 %t47, ptr %a48 %t49 = load ptr, ptr %a1 - %t50 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t49, { ptr, i64, i64 } { ptr @.str.3230, i64 3, i64 0 }) + %t50 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t49, { ptr, i64, i64 } { ptr @.str.3315, i64 3, i64 0 }) store { ptr, i64, i64 } %t50, ptr %a51 %t52 = load ptr, ptr %a1 %t53 = load { ptr, i64, i64 }, ptr %a51 - call void @finch.gen.store(ptr %t52, { ptr, i64, i64 } { ptr @.str.3231, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.3232, i64 1, i64 0 }, { ptr, i64, i64 } %t53) - store { ptr, i64, i64 } { ptr @.str.3233, i64 0, i64 0 }, ptr %a54 + call void @finch.gen.store(ptr %t52, { ptr, i64, i64 } { ptr @.str.3316, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.3317, i64 1, i64 0 }, { ptr, i64, i64 } %t53) + store { ptr, i64, i64 } { ptr @.str.3318, i64 0, i64 0 }, ptr %a54 %t55 = load i1, ptr %a5 - br i1 %t55, label %then5156, label %endif5158 -then5156: + br i1 %t55, label %then5300, label %endif5302 +then5300: %t56 = load ptr, ptr %a1 %t57 = load ptr, ptr %a1 %t58 = load ptr, ptr %a1 %t59 = load %S.ast.Type, ptr %a4 %t60 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t58, %S.ast.Type %t59) - store { ptr, i64, i64 } { ptr @.str.3235, i64 23, i64 0 }, ptr %a62 + store { ptr, i64, i64 } { ptr @.str.3320, i64 23, i64 0 }, ptr %a62 store { ptr, i64, i64 } %t60, ptr %a63 call void @finch_str_concat(ptr %a61, ptr %a62, ptr %a63) store { ptr, i64, i64 } %t60, ptr %a64 call void @finch_str_drop(ptr %a64) %t65 = load { ptr, i64, i64 }, ptr %a61 store { ptr, i64, i64 } %t65, ptr %a67 - store { ptr, i64, i64 } { ptr @.str.3236, i64 6, i64 0 }, ptr %a68 + store { ptr, i64, i64 } { ptr @.str.3321, i64 6, i64 0 }, ptr %a68 call void @finch_str_concat(ptr %a66, ptr %a67, ptr %a68) store { ptr, i64, i64 } %t65, ptr %a69 call void @finch_str_drop(ptr %a69) @@ -51912,7 +53560,7 @@ then5156: call void @finch_str_drop(ptr %a75) %t76 = load { ptr, i64, i64 }, ptr %a72 store { ptr, i64, i64 } %t76, ptr %a78 - store { ptr, i64, i64 } { ptr @.str.3237, i64 14, i64 0 }, ptr %a79 + store { ptr, i64, i64 } { ptr @.str.3322, i64 14, i64 0 }, ptr %a79 call void @finch_str_concat(ptr %a77, ptr %a78, ptr %a79) store { ptr, i64, i64 } %t76, ptr %a80 call void @finch_str_drop(ptr %a80) @@ -51920,29 +53568,29 @@ then5156: %t82 = call { ptr, i64, i64 } @finch.gen.op(ptr %t57, { ptr, i64, i64 } %t81) store { ptr, i64, i64 } %t81, ptr %a83 call void @finch_str_drop(ptr %a83) - %t84 = call { ptr, i64, i64 } @finch.gen.load(ptr %t56, { ptr, i64, i64 } { ptr @.str.3234, i64 3, i64 0 }, { ptr, i64, i64 } %t82) + %t84 = call { ptr, i64, i64 } @finch.gen.load(ptr %t56, { ptr, i64, i64 } { ptr @.str.3319, i64 3, i64 0 }, { ptr, i64, i64 } %t82) store { ptr, i64, i64 } %t82, ptr %a85 call void @finch_str_drop(ptr %a85) %t86 = load { ptr, i64, i64 }, ptr %a54 store { ptr, i64, i64 } %t84, ptr %a54 store { ptr, i64, i64 } %t86, ptr %a87 call void @finch_str_drop(ptr %a87) - br label %endif5158 -endif5158: + br label %endif5302 +endif5302: %t88 = load ptr, ptr %a1 - %t89 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t88, { ptr, i64, i64 } { ptr @.str.3238, i64 8, i64 0 }) + %t89 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t88, { ptr, i64, i64 } { ptr @.str.3323, i64 8, i64 0 }) store { ptr, i64, i64 } %t89, ptr %a90 %t91 = load ptr, ptr %a1 - %t92 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t91, { ptr, i64, i64 } { ptr @.str.3239, i64 9, i64 0 }) + %t92 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t91, { ptr, i64, i64 } { ptr @.str.3324, i64 9, i64 0 }) store { ptr, i64, i64 } %t92, ptr %a93 %t94 = load ptr, ptr %a1 - %t95 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t94, { ptr, i64, i64 } { ptr @.str.3240, i64 8, i64 0 }) + %t95 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t94, { ptr, i64, i64 } { ptr @.str.3325, i64 8, i64 0 }) store { ptr, i64, i64 } %t95, ptr %a96 %t97 = load ptr, ptr %a1 - %t98 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t97, { ptr, i64, i64 } { ptr @.str.3241, i64 8, i64 0 }) + %t98 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t97, { ptr, i64, i64 } { ptr @.str.3326, i64 8, i64 0 }) store { ptr, i64, i64 } %t98, ptr %a99 %t100 = load ptr, ptr %a1 - %t101 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t100, { ptr, i64, i64 } { ptr @.str.3242, i64 7, i64 0 }) + %t101 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t100, { ptr, i64, i64 } { ptr @.str.3327, i64 7, i64 0 }) store { ptr, i64, i64 } %t101, ptr %a102 %t103 = load ptr, ptr %a1 %t104 = load { ptr, i64, i64 }, ptr %a90 @@ -51951,37 +53599,37 @@ endif5158: %t106 = load { ptr, i64, i64 }, ptr %a90 call void @finch.gen.label(ptr %t105, { ptr, i64, i64 } %t106) %t107 = load i1, ptr %a5 - br label %logic.from5159 -logic.from5159: - br i1 %t107, label %logic.rhs5160, label %logic.end5161 -logic.rhs5160: + br label %logic.from5303 +logic.from5303: + br i1 %t107, label %logic.rhs5304, label %logic.end5305 +logic.rhs5304: %t108 = load i1, ptr %a48 - br label %logic.rend5162 -logic.rend5162: - br label %logic.end5161 -logic.end5161: - %t109 = phi i1 [ false, %logic.from5159 ], [ %t108, %logic.rend5162 ] - br i1 %t109, label %then5163, label %endif5165 -then5163: + br label %logic.rend5306 +logic.rend5306: + br label %logic.end5305 +logic.end5305: + %t109 = phi i1 [ false, %logic.from5303 ], [ %t108, %logic.rend5306 ] + br i1 %t109, label %then5307, label %endif5309 +then5307: %t110 = load ptr, ptr %a1 - %t111 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t110, { ptr, i64, i64 } { ptr @.str.3243, i64 11, i64 0 }) + %t111 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t110, { ptr, i64, i64 } { ptr @.str.3328, i64 11, i64 0 }) store { ptr, i64, i64 } %t111, ptr %a112 %t113 = load ptr, ptr %a1 - %t114 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t113, { ptr, i64, i64 } { ptr @.str.3244, i64 8, i64 0 }) + %t114 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t113, { ptr, i64, i64 } { ptr @.str.3329, i64 8, i64 0 }) store { ptr, i64, i64 } %t114, ptr %a115 %t116 = load ptr, ptr %a1 %t117 = load ptr, ptr %a1 %t118 = load ptr, ptr %a1 %t119 = load %S.ast.Type, ptr %a4 %t120 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t118, %S.ast.Type %t119) - store { ptr, i64, i64 } { ptr @.str.3246, i64 23, i64 0 }, ptr %a122 + store { ptr, i64, i64 } { ptr @.str.3331, i64 23, i64 0 }, ptr %a122 store { ptr, i64, i64 } %t120, ptr %a123 call void @finch_str_concat(ptr %a121, ptr %a122, ptr %a123) store { ptr, i64, i64 } %t120, ptr %a124 call void @finch_str_drop(ptr %a124) %t125 = load { ptr, i64, i64 }, ptr %a121 store { ptr, i64, i64 } %t125, ptr %a127 - store { ptr, i64, i64 } { ptr @.str.3247, i64 6, i64 0 }, ptr %a128 + store { ptr, i64, i64 } { ptr @.str.3332, i64 6, i64 0 }, ptr %a128 call void @finch_str_concat(ptr %a126, ptr %a127, ptr %a128) store { ptr, i64, i64 } %t125, ptr %a129 call void @finch_str_drop(ptr %a129) @@ -51994,7 +53642,7 @@ then5163: call void @finch_str_drop(ptr %a135) %t136 = load { ptr, i64, i64 }, ptr %a132 store { ptr, i64, i64 } %t136, ptr %a138 - store { ptr, i64, i64 } { ptr @.str.3248, i64 14, i64 0 }, ptr %a139 + store { ptr, i64, i64 } { ptr @.str.3333, i64 14, i64 0 }, ptr %a139 call void @finch_str_concat(ptr %a137, ptr %a138, ptr %a139) store { ptr, i64, i64 } %t136, ptr %a140 call void @finch_str_drop(ptr %a140) @@ -52002,19 +53650,19 @@ then5163: %t142 = call { ptr, i64, i64 } @finch.gen.op(ptr %t117, { ptr, i64, i64 } %t141) store { ptr, i64, i64 } %t141, ptr %a143 call void @finch_str_drop(ptr %a143) - %t144 = call { ptr, i64, i64 } @finch.gen.load(ptr %t116, { ptr, i64, i64 } { ptr @.str.3245, i64 3, i64 0 }, { ptr, i64, i64 } %t142) + %t144 = call { ptr, i64, i64 } @finch.gen.load(ptr %t116, { ptr, i64, i64 } { ptr @.str.3330, i64 3, i64 0 }, { ptr, i64, i64 } %t142) store { ptr, i64, i64 } %t142, ptr %a145 call void @finch_str_drop(ptr %a145) store { ptr, i64, i64 } %t144, ptr %a146 %t147 = load ptr, ptr %a1 %t148 = load ptr, ptr %a1 %t149 = load { ptr, i64, i64 }, ptr %a146 - store { ptr, i64, i64 } { ptr @.str.3249, i64 12, i64 0 }, ptr %a151 + store { ptr, i64, i64 } { ptr @.str.3334, i64 12, i64 0 }, ptr %a151 store { ptr, i64, i64 } %t149, ptr %a152 call void @finch_str_concat(ptr %a150, ptr %a151, ptr %a152) %t153 = load { ptr, i64, i64 }, ptr %a150 store { ptr, i64, i64 } %t153, ptr %a155 - store { ptr, i64, i64 } { ptr @.str.3250, i64 2, i64 0 }, ptr %a156 + store { ptr, i64, i64 } { ptr @.str.3335, i64 2, i64 0 }, ptr %a156 call void @finch_str_concat(ptr %a154, ptr %a155, ptr %a156) store { ptr, i64, i64 } %t153, ptr %a157 call void @finch_str_drop(ptr %a157) @@ -52041,34 +53689,34 @@ then5163: %t173 = load ptr, ptr %a1 %t174 = load ptr, ptr %a1 %t175 = icmp eq ptr %t174, null - br i1 %t175, label %panic5166, label %ok5167 -panic5166: - call void @finch_panic(ptr @.str.3252, i64 2468, ptr @.str.3253) + br i1 %t175, label %panic5310, label %ok5311 +panic5310: + call void @finch_panic(ptr @.str.3337, i64 2549, ptr @.str.3338) unreachable -ok5167: +ok5311: %t176 = getelementptr inbounds %S.gen.Gen, ptr %t174, i32 0, i32 1 %t177 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 13 %t178 = load i64, ptr %t177 %t179 = load { ptr, i64, i64 }, ptr %t176 %t180 = extractvalue { ptr, i64, i64 } %t179, 1 %t181 = icmp uge i64 %t178, %t180 - br i1 %t181, label %range5168, label %inrange5169 -range5168: - call void @finch_panic_index(ptr @.str.3254, i64 2468, i64 %t178, i64 %t180) + br i1 %t181, label %range5312, label %inrange5313 +range5312: + call void @finch_panic_index(ptr @.str.3339, i64 2549, i64 %t178, i64 %t180) unreachable -inrange5169: +inrange5313: %t182 = extractvalue { ptr, i64, i64 } %t179, 0 %t183 = getelementptr inbounds { ptr, i64, i64 }, ptr %t182, i64 %t178 %t184 = load { ptr, i64, i64 }, ptr %t183 %t185 = call { ptr, i64, i64 } @finch.gen.strGlobal(ptr %t173, { ptr, i64, i64 } %t184) - store { ptr, i64, i64 } { ptr @.str.3251, i64 33, i64 0 }, ptr %a187 + store { ptr, i64, i64 } { ptr @.str.3336, i64 33, i64 0 }, ptr %a187 store { ptr, i64, i64 } %t185, ptr %a188 call void @finch_str_concat(ptr %a186, ptr %a187, ptr %a188) store { ptr, i64, i64 } %t185, ptr %a189 call void @finch_str_drop(ptr %a189) %t190 = load { ptr, i64, i64 }, ptr %a186 store { ptr, i64, i64 } %t190, ptr %a192 - store { ptr, i64, i64 } { ptr @.str.3255, i64 6, i64 0 }, ptr %a193 + store { ptr, i64, i64 } { ptr @.str.3340, i64 6, i64 0 }, ptr %a193 call void @finch_str_concat(ptr %a191, ptr %a192, ptr %a193) store { ptr, i64, i64 } %t190, ptr %a194 call void @finch_str_drop(ptr %a194) @@ -52086,7 +53734,7 @@ inrange5169: call void @finch_str_drop(ptr %a204) %t205 = load { ptr, i64, i64 }, ptr %a200 store { ptr, i64, i64 } %t205, ptr %a207 - store { ptr, i64, i64 } { ptr @.str.3256, i64 1, i64 0 }, ptr %a208 + store { ptr, i64, i64 } { ptr @.str.3341, i64 1, i64 0 }, ptr %a208 call void @finch_str_concat(ptr %a206, ptr %a207, ptr %a208) store { ptr, i64, i64 } %t205, ptr %a209 call void @finch_str_drop(ptr %a209) @@ -52095,14 +53743,14 @@ inrange5169: store { ptr, i64, i64 } %t210, ptr %a211 call void @finch_str_drop(ptr %a211) %t212 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t212, { ptr, i64, i64 } { ptr @.str.3257, i64 11, i64 0 }) + call void @finch.gen.emit(ptr %t212, { ptr, i64, i64 } { ptr @.str.3342, i64 11, i64 0 }) %t213 = load ptr, ptr %a1 %t214 = icmp eq ptr %t213, null - br i1 %t214, label %panic5170, label %ok5171 -panic5170: - call void @finch_panic(ptr @.str.3258, i64 2470, ptr @.str.3259) + br i1 %t214, label %panic5314, label %ok5315 +panic5314: + call void @finch_panic(ptr @.str.3343, i64 2551, ptr @.str.3344) unreachable -ok5171: +ok5315: %t215 = getelementptr inbounds %S.gen.Gen, ptr %t213, i32 0, i32 9 store i1 true, ptr %t215 %t216 = load ptr, ptr %a1 @@ -52111,25 +53759,25 @@ ok5171: call void @finch_str_drop(ptr %a146) call void @finch_str_drop(ptr %a115) call void @finch_str_drop(ptr %a112) - br label %endif5165 -endif5165: + br label %endif5309 +endif5309: %t218 = load ptr, ptr %a1 %t219 = load { ptr, i64, i64 }, ptr %a51 - %t220 = call { ptr, i64, i64 } @finch.gen.load(ptr %t218, { ptr, i64, i64 } { ptr @.str.3260, i64 3, i64 0 }, { ptr, i64, i64 } %t219) + %t220 = call { ptr, i64, i64 } @finch.gen.load(ptr %t218, { ptr, i64, i64 } { ptr @.str.3345, i64 3, i64 0 }, { ptr, i64, i64 } %t219) store { ptr, i64, i64 } %t220, ptr %a221 %t222 = load ptr, ptr %a1 %t223 = load ptr, ptr %a1 %t224 = load ptr, ptr %a1 %t225 = load %S.ast.Type, ptr %a4 %t226 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t224, %S.ast.Type %t225) - store { ptr, i64, i64 } { ptr @.str.3262, i64 23, i64 0 }, ptr %a228 + store { ptr, i64, i64 } { ptr @.str.3347, i64 23, i64 0 }, ptr %a228 store { ptr, i64, i64 } %t226, ptr %a229 call void @finch_str_concat(ptr %a227, ptr %a228, ptr %a229) store { ptr, i64, i64 } %t226, ptr %a230 call void @finch_str_drop(ptr %a230) %t231 = load { ptr, i64, i64 }, ptr %a227 store { ptr, i64, i64 } %t231, ptr %a233 - store { ptr, i64, i64 } { ptr @.str.3263, i64 6, i64 0 }, ptr %a234 + store { ptr, i64, i64 } { ptr @.str.3348, i64 6, i64 0 }, ptr %a234 call void @finch_str_concat(ptr %a232, ptr %a233, ptr %a234) store { ptr, i64, i64 } %t231, ptr %a235 call void @finch_str_drop(ptr %a235) @@ -52142,7 +53790,7 @@ endif5165: call void @finch_str_drop(ptr %a241) %t242 = load { ptr, i64, i64 }, ptr %a238 store { ptr, i64, i64 } %t242, ptr %a244 - store { ptr, i64, i64 } { ptr @.str.3264, i64 14, i64 0 }, ptr %a245 + store { ptr, i64, i64 } { ptr @.str.3349, i64 14, i64 0 }, ptr %a245 call void @finch_str_concat(ptr %a243, ptr %a244, ptr %a245) store { ptr, i64, i64 } %t242, ptr %a246 call void @finch_str_drop(ptr %a246) @@ -52150,19 +53798,19 @@ endif5165: %t248 = call { ptr, i64, i64 } @finch.gen.op(ptr %t223, { ptr, i64, i64 } %t247) store { ptr, i64, i64 } %t247, ptr %a249 call void @finch_str_drop(ptr %a249) - %t250 = call { ptr, i64, i64 } @finch.gen.load(ptr %t222, { ptr, i64, i64 } { ptr @.str.3261, i64 3, i64 0 }, { ptr, i64, i64 } %t248) + %t250 = call { ptr, i64, i64 } @finch.gen.load(ptr %t222, { ptr, i64, i64 } { ptr @.str.3346, i64 3, i64 0 }, { ptr, i64, i64 } %t248) store { ptr, i64, i64 } %t248, ptr %a251 call void @finch_str_drop(ptr %a251) store { ptr, i64, i64 } %t250, ptr %a252 %t253 = load ptr, ptr %a1 %t254 = load ptr, ptr %a1 %t255 = load { ptr, i64, i64 }, ptr %a221 - store { ptr, i64, i64 } { ptr @.str.3265, i64 13, i64 0 }, ptr %a257 + store { ptr, i64, i64 } { ptr @.str.3350, i64 13, i64 0 }, ptr %a257 store { ptr, i64, i64 } %t255, ptr %a258 call void @finch_str_concat(ptr %a256, ptr %a257, ptr %a258) %t259 = load { ptr, i64, i64 }, ptr %a256 store { ptr, i64, i64 } %t259, ptr %a261 - store { ptr, i64, i64 } { ptr @.str.3266, i64 2, i64 0 }, ptr %a262 + store { ptr, i64, i64 } { ptr @.str.3351, i64 2, i64 0 }, ptr %a262 call void @finch_str_concat(ptr %a260, ptr %a261, ptr %a262) store { ptr, i64, i64 } %t259, ptr %a263 call void @finch_str_drop(ptr %a263) @@ -52196,19 +53844,19 @@ endif5165: %t286 = load { ptr, i64, i64 }, ptr %a283 %t287 = load %S.ast.Type, ptr %a4 %t288 = call { ptr, i64, i64 } @finch.gen.entryField(ptr %t285, { ptr, i64, i64 } %t286, %S.ast.Type %t287, i64 0) - %t289 = call { ptr, i64, i64 } @finch.gen.load(ptr %t284, { ptr, i64, i64 } { ptr @.str.3267, i64 3, i64 0 }, { ptr, i64, i64 } %t288) + %t289 = call { ptr, i64, i64 } @finch.gen.load(ptr %t284, { ptr, i64, i64 } { ptr @.str.3352, i64 3, i64 0 }, { ptr, i64, i64 } %t288) store { ptr, i64, i64 } %t288, ptr %a290 call void @finch_str_drop(ptr %a290) store { ptr, i64, i64 } %t289, ptr %a291 %t292 = load ptr, ptr %a1 %t293 = load ptr, ptr %a1 %t294 = load { ptr, i64, i64 }, ptr %a291 - store { ptr, i64, i64 } { ptr @.str.3268, i64 12, i64 0 }, ptr %a296 + store { ptr, i64, i64 } { ptr @.str.3353, i64 12, i64 0 }, ptr %a296 store { ptr, i64, i64 } %t294, ptr %a297 call void @finch_str_concat(ptr %a295, ptr %a296, ptr %a297) %t298 = load { ptr, i64, i64 }, ptr %a295 store { ptr, i64, i64 } %t298, ptr %a300 - store { ptr, i64, i64 } { ptr @.str.3269, i64 3, i64 0 }, ptr %a301 + store { ptr, i64, i64 } { ptr @.str.3354, i64 3, i64 0 }, ptr %a301 call void @finch_str_concat(ptr %a299, ptr %a300, ptr %a301) store { ptr, i64, i64 } %t298, ptr %a302 call void @finch_str_drop(ptr %a302) @@ -52226,11 +53874,11 @@ endif5165: call void @finch.gen.label(ptr %t309, { ptr, i64, i64 } %t310) %t311 = load ptr, ptr %a1 %t312 = icmp eq ptr %t311, null - br i1 %t312, label %panic5172, label %ok5173 -panic5172: - call void @finch_panic(ptr @.str.3270, i64 2481, ptr @.str.3271) + br i1 %t312, label %panic5316, label %ok5317 +panic5316: + call void @finch_panic(ptr @.str.3355, i64 2562, ptr @.str.3356) unreachable -ok5173: +ok5317: %t313 = getelementptr inbounds %S.gen.Gen, ptr %t311, i32 0, i32 12 %t314 = getelementptr inbounds { ptr, i64, i64 }, ptr %t313, i32 0, i32 1 %t315 = load { ptr, i64, i64 }, ptr %a99 @@ -52245,22 +53893,22 @@ ok5173: %t324 = insertvalue %S.gen.Loop %t319, { ptr, i64, i64 } %t323, 1 %t325 = load ptr, ptr %a1 %t326 = icmp eq ptr %t325, null - br i1 %t326, label %panic5174, label %ok5175 -panic5174: - call void @finch_panic(ptr @.str.3272, i64 2481, ptr @.str.3273) + br i1 %t326, label %panic5318, label %ok5319 +panic5318: + call void @finch_panic(ptr @.str.3357, i64 2562, ptr @.str.3358) unreachable -ok5175: +ok5319: %t327 = getelementptr inbounds %S.gen.Gen, ptr %t325, i32 0, i32 10 %t328 = getelementptr inbounds { ptr, i64, i64 }, ptr %t327, i32 0, i32 1 %t329 = load i64, ptr %t328 %t330 = insertvalue %S.gen.Loop %t324, i64 %t329, 2 %t331 = load ptr, ptr %a1 %t332 = icmp eq ptr %t331, null - br i1 %t332, label %panic5176, label %ok5177 -panic5176: - call void @finch_panic(ptr @.str.3274, i64 2481, ptr @.str.3275) + br i1 %t332, label %panic5320, label %ok5321 +panic5320: + call void @finch_panic(ptr @.str.3359, i64 2562, ptr @.str.3360) unreachable -ok5177: +ok5321: %t333 = getelementptr inbounds %S.gen.Gen, ptr %t331, i32 0, i32 11 %t334 = getelementptr inbounds { ptr, i64, i64 }, ptr %t333, i32 0, i32 1 %t335 = load i64, ptr %t334 @@ -52289,8 +53937,8 @@ ok5177: call void @finch_str_drop(ptr %a352) store { ptr, i64, i64 } %t350, ptr %a353 %t354 = load i1, ptr %a48 - br i1 %t354, label %then5178, label %endif5180 -then5178: + br i1 %t354, label %then5322, label %endif5324 +then5322: %t355 = load ptr, ptr %a1 %t356 = load { ptr, i64, i64 }, ptr %a353 %t357 = load %S.ast.Type, ptr %a16 @@ -52299,8 +53947,8 @@ then5178: store { ptr, i64, i64 } %t358, ptr %a353 store { ptr, i64, i64 } %t359, ptr %a360 call void @finch_str_drop(ptr %a360) - br label %endif5180 -endif5180: + br label %endif5324 +endif5324: %t361 = load ptr, ptr %a1 %t362 = load %S.ast.Node, ptr %a2 %t363 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 @@ -52315,8 +53963,8 @@ endif5180: %t371 = getelementptr inbounds { ptr, i64, i64 }, ptr %t370, i32 0, i32 1 %t372 = load i64, ptr %t371 %t373 = icmp sgt i64 %t372, 0 - br i1 %t373, label %then5181, label %endif5183 -then5181: + br i1 %t373, label %then5325, label %endif5327 +then5325: %t374 = load ptr, ptr %a1 %t375 = load ptr, ptr %a1 %t376 = load %S.ast.Type, ptr %a27 @@ -52332,8 +53980,8 @@ then5181: call void @finch_str_drop(ptr %a384) store { ptr, i64, i64 } %t382, ptr %a385 %t386 = load i1, ptr %a48 - br i1 %t386, label %then5184, label %endif5186 -then5184: + br i1 %t386, label %then5328, label %endif5330 +then5328: %t387 = load ptr, ptr %a1 %t388 = load { ptr, i64, i64 }, ptr %a385 %t389 = load %S.ast.Type, ptr %a27 @@ -52342,8 +53990,8 @@ then5184: store { ptr, i64, i64 } %t390, ptr %a385 store { ptr, i64, i64 } %t391, ptr %a392 call void @finch_str_drop(ptr %a392) - br label %endif5186 -endif5186: + br label %endif5330 +endif5330: %t393 = load ptr, ptr %a1 %t394 = load %S.ast.Node, ptr %a2 %t395 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 4 @@ -52355,18 +54003,18 @@ endif5186: store { ptr, i64, i64 } %t400, ptr %a401 call void @finch_str_drop(ptr %a401) call void @finch_str_drop(ptr %a385) - br label %endif5183 -endif5183: + br label %endif5327 +endif5327: %t402 = load ptr, ptr %a1 %t403 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t404 = load { ptr, i64, i64 }, ptr %t403 %t405 = extractvalue { ptr, i64, i64 } %t404, 1 %t406 = icmp uge i64 1, %t405 - br i1 %t406, label %range5187, label %inrange5188 -range5187: - call void @finch_panic_index(ptr @.str.3276, i64 2495, i64 1, i64 %t405) + br i1 %t406, label %range5331, label %inrange5332 +range5331: + call void @finch_panic_index(ptr @.str.3361, i64 2576, i64 1, i64 %t405) unreachable -inrange5188: +inrange5332: %t407 = extractvalue { ptr, i64, i64 } %t404, 0 %t408 = getelementptr inbounds %S.ast.Node, ptr %t407, i64 1 %t409 = load %S.ast.Node, ptr %t408 @@ -52375,20 +54023,20 @@ inrange5188: call void @finch.gen.popScope(ptr %t410) %t411 = load ptr, ptr %a1 %t412 = icmp eq ptr %t411, null - br i1 %t412, label %panic5189, label %ok5190 -panic5189: - call void @finch_panic(ptr @.str.3277, i64 2497, ptr @.str.3278) + br i1 %t412, label %panic5333, label %ok5334 +panic5333: + call void @finch_panic(ptr @.str.3362, i64 2578, ptr @.str.3363) unreachable -ok5190: +ok5334: %t413 = getelementptr inbounds %S.gen.Gen, ptr %t411, i32 0, i32 12 %t414 = getelementptr inbounds { ptr, i64, i64 }, ptr %t413, i32 0, i32 1 %t415 = load i64, ptr %t414 %t416 = icmp eq i64 %t415, 0 - br i1 %t416, label %panic5191, label %ok5192 -panic5191: - call void @finch_panic(ptr @.str.3279, i64 2497, ptr @.str.3280) + br i1 %t416, label %panic5335, label %ok5336 +panic5335: + call void @finch_panic(ptr @.str.3364, i64 2578, ptr @.str.3365) unreachable -ok5192: +ok5336: %t417 = sub i64 %t415, 1 %t418 = load ptr, ptr %t413 %t419 = getelementptr inbounds %S.gen.Loop, ptr %t418, i64 %t417 @@ -52404,17 +54052,17 @@ ok5192: call void @finch.gen.label(ptr %t424, { ptr, i64, i64 } %t425) %t426 = load ptr, ptr %a1 %t427 = load { ptr, i64, i64 }, ptr %a51 - %t428 = call { ptr, i64, i64 } @finch.gen.load(ptr %t426, { ptr, i64, i64 } { ptr @.str.3281, i64 3, i64 0 }, { ptr, i64, i64 } %t427) + %t428 = call { ptr, i64, i64 } @finch.gen.load(ptr %t426, { ptr, i64, i64 } { ptr @.str.3366, i64 3, i64 0 }, { ptr, i64, i64 } %t427) store { ptr, i64, i64 } %t428, ptr %a429 %t430 = load ptr, ptr %a1 %t431 = load ptr, ptr %a1 %t432 = load { ptr, i64, i64 }, ptr %a429 - store { ptr, i64, i64 } { ptr @.str.3283, i64 8, i64 0 }, ptr %a434 + store { ptr, i64, i64 } { ptr @.str.3368, i64 8, i64 0 }, ptr %a434 store { ptr, i64, i64 } %t432, ptr %a435 call void @finch_str_concat(ptr %a433, ptr %a434, ptr %a435) %t436 = load { ptr, i64, i64 }, ptr %a433 store { ptr, i64, i64 } %t436, ptr %a438 - store { ptr, i64, i64 } { ptr @.str.3284, i64 3, i64 0 }, ptr %a439 + store { ptr, i64, i64 } { ptr @.str.3369, i64 3, i64 0 }, ptr %a439 call void @finch_str_concat(ptr %a437, ptr %a438, ptr %a439) store { ptr, i64, i64 } %t436, ptr %a440 call void @finch_str_drop(ptr %a440) @@ -52423,7 +54071,7 @@ ok5192: store { ptr, i64, i64 } %t441, ptr %a443 call void @finch_str_drop(ptr %a443) %t444 = load { ptr, i64, i64 }, ptr %a51 - call void @finch.gen.store(ptr %t430, { ptr, i64, i64 } { ptr @.str.3282, i64 3, i64 0 }, { ptr, i64, i64 } %t442, { ptr, i64, i64 } %t444) + call void @finch.gen.store(ptr %t430, { ptr, i64, i64 } { ptr @.str.3367, i64 3, i64 0 }, { ptr, i64, i64 } %t442, { ptr, i64, i64 } %t444) store { ptr, i64, i64 } %t442, ptr %a445 call void @finch_str_drop(ptr %a445) %t446 = load ptr, ptr %a1 @@ -52595,23 +54243,23 @@ entry: %t6 = load { ptr, i64, i64 }, ptr %t5 %t7 = extractvalue { ptr, i64, i64 } %t6, 1 %t8 = icmp uge i64 0, %t7 - br i1 %t8, label %range5193, label %inrange5194 -range5193: - call void @finch_panic_index(ptr @.str.3285, i64 2508, i64 0, i64 %t7) + br i1 %t8, label %range5337, label %inrange5338 +range5337: + call void @finch_panic_index(ptr @.str.3370, i64 2589, i64 0, i64 %t7) unreachable -inrange5194: +inrange5338: %t9 = extractvalue { ptr, i64, i64 } %t6, 0 %t10 = getelementptr inbounds %S.ast.Node, ptr %t9, i64 0 %t11 = load %S.ast.Node, ptr %t10 %t12 = call %S.gen.Ref @finch.gen.ref(ptr %t4, %S.ast.Node %t11, i1 false) store %S.gen.Ref %t12, ptr %a13 - store { ptr, i64, i64 } { ptr @.str.3286, i64 0, i64 0 }, ptr %a14 - %t15 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3287, i64 4, i64 0 }) + store { ptr, i64, i64 } { ptr @.str.3371, i64 0, i64 0 }, ptr %a14 + %t15 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3372, i64 4, i64 0 }) store %S.ast.Type %t15, ptr %a16 %t17 = getelementptr inbounds %S.gen.Ref, ptr %a13, i32 0, i32 0 %t18 = load i1, ptr %t17 - br i1 %t18, label %then5195, label %else5196 -then5195: + br i1 %t18, label %then5339, label %else5340 +then5339: %t19 = getelementptr inbounds %S.gen.Ref, ptr %a13, i32 0, i32 1 %t20 = getelementptr inbounds %S.gen.Place, ptr %t19, i32 0, i32 0 %t21 = load { ptr, i64, i64 }, ptr %t20 @@ -52632,8 +54280,8 @@ then5195: store %S.ast.Type %t32, ptr %a16 store %S.ast.Type %t33, ptr %a34 call void @finch.drop.S_ast_Type(ptr %a34) - br label %endif5197 -else5196: + br label %endif5341 +else5340: %t35 = getelementptr inbounds %S.gen.Ref, ptr %a13, i32 0, i32 2 %t36 = getelementptr inbounds %S.gen.Val, ptr %t35, i32 0, i32 1 %t37 = load %S.ast.Type, ptr %t36 @@ -52648,16 +54296,16 @@ else5196: %t44 = load %S.ast.Node, ptr %a2 %t45 = load ptr, ptr %a1 %t46 = icmp eq ptr %t45, null - br i1 %t46, label %panic5198, label %ok5199 -panic5198: - call void @finch_panic(ptr @.str.3289, i64 2516, ptr @.str.3290) + br i1 %t46, label %panic5342, label %ok5343 +panic5342: + call void @finch_panic(ptr @.str.3374, i64 2597, ptr @.str.3375) unreachable -ok5199: - %t47 = getelementptr inbounds %S.gen.Gen, ptr %t45, i32 0, i32 24 +ok5343: + %t47 = getelementptr inbounds %S.gen.Gen, ptr %t45, i32 0, i32 25 %t48 = load i64, ptr %t47 call void @finch_str_from_int(ptr %a49, i64 %t48) %t50 = load { ptr, i64, i64 }, ptr %a49 - store { ptr, i64, i64 } { ptr @.str.3288, i64 5, i64 0 }, ptr %a52 + store { ptr, i64, i64 } { ptr @.str.3373, i64 5, i64 0 }, ptr %a52 store { ptr, i64, i64 } %t50, ptr %a53 call void @finch_str_concat(ptr %a51, ptr %a52, ptr %a53) store { ptr, i64, i64 } %t50, ptr %a54 @@ -52677,16 +54325,16 @@ ok5199: store { ptr, i64, i64 } %t61, ptr %a14 store { ptr, i64, i64 } %t64, ptr %a65 call void @finch_str_drop(ptr %a65) - br label %endif5197 -endif5197: + br label %endif5341 +endif5341: %t66 = getelementptr inbounds %S.ast.Type, ptr %a16, i32 0, i32 0 %t67 = load { ptr, i64, i64 }, ptr %t66 store { ptr, i64, i64 } %t67, ptr %a68 - store { ptr, i64, i64 } { ptr @.str.3291, i64 3, i64 0 }, ptr %a69 + store { ptr, i64, i64 } { ptr @.str.3376, i64 3, i64 0 }, ptr %a69 %t70 = call i32 @finch_str_eq(ptr %a68, ptr %a69) %t71 = icmp ne i32 %t70, 0 - br i1 %t71, label %then5200, label %endif5202 -then5200: + br i1 %t71, label %then5344, label %endif5346 +then5344: %t72 = load ptr, ptr %a1 %t73 = load %S.ast.Node, ptr %a2 %t74 = load { ptr, i64, i64 }, ptr %a14 @@ -52700,53 +54348,53 @@ then5200: call void @finch_str_drop(ptr %a14) call void @finch.drop.S_gen_Ref(ptr %a13) ret void -endif5202: +endif5346: %t79 = getelementptr inbounds %S.ast.Type, ptr %a16, i32 0, i32 0 %t80 = load { ptr, i64, i64 }, ptr %t79 store { ptr, i64, i64 } %t80, ptr %a81 - store { ptr, i64, i64 } { ptr @.str.3292, i64 5, i64 0 }, ptr %a82 + store { ptr, i64, i64 } { ptr @.str.3377, i64 5, i64 0 }, ptr %a82 %t83 = call i32 @finch_str_eq(ptr %a81, ptr %a82) %t84 = icmp eq i32 %t83, 0 - br label %logic.from5203 -logic.from5203: - br i1 %t84, label %logic.rhs5204, label %logic.end5205 -logic.rhs5204: + br label %logic.from5347 +logic.from5347: + br i1 %t84, label %logic.rhs5348, label %logic.end5349 +logic.rhs5348: %t85 = getelementptr inbounds %S.ast.Type, ptr %a16, i32 0, i32 0 %t86 = load { ptr, i64, i64 }, ptr %t85 store { ptr, i64, i64 } %t86, ptr %a87 - store { ptr, i64, i64 } { ptr @.str.3293, i64 3, i64 0 }, ptr %a88 + store { ptr, i64, i64 } { ptr @.str.3378, i64 3, i64 0 }, ptr %a88 %t89 = call i32 @finch_str_eq(ptr %a87, ptr %a88) %t90 = icmp eq i32 %t89, 0 - br label %logic.rend5206 -logic.rend5206: - br label %logic.end5205 -logic.end5205: - %t91 = phi i1 [ false, %logic.from5203 ], [ %t90, %logic.rend5206 ] - br i1 %t91, label %then5207, label %endif5209 -then5207: + br label %logic.rend5350 +logic.rend5350: + br label %logic.end5349 +logic.end5349: + %t91 = phi i1 [ false, %logic.from5347 ], [ %t90, %logic.rend5350 ] + br i1 %t91, label %then5351, label %endif5353 +then5351: %t92 = load ptr, ptr %a1 %t93 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t94 = load { ptr, i64, i64 }, ptr %t93 %t95 = extractvalue { ptr, i64, i64 } %t94, 1 %t96 = icmp uge i64 0, %t95 - br i1 %t96, label %range5210, label %inrange5211 -range5210: - call void @finch_panic_index(ptr @.str.3294, i64 2524, i64 0, i64 %t95) + br i1 %t96, label %range5354, label %inrange5355 +range5354: + call void @finch_panic_index(ptr @.str.3379, i64 2605, i64 0, i64 %t95) unreachable -inrange5211: +inrange5355: %t97 = extractvalue { ptr, i64, i64 } %t94, 0 %t98 = getelementptr inbounds %S.ast.Node, ptr %t97, i64 0 %t99 = load %S.ast.Node, ptr %t98 %t100 = load %S.ast.Type, ptr %a16 %t101 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t100) - store { ptr, i64, i64 } { ptr @.str.3295, i64 55, i64 0 }, ptr %a103 + store { ptr, i64, i64 } { ptr @.str.3380, i64 55, i64 0 }, ptr %a103 store { ptr, i64, i64 } %t101, ptr %a104 call void @finch_str_concat(ptr %a102, ptr %a103, ptr %a104) store { ptr, i64, i64 } %t101, ptr %a105 call void @finch_str_drop(ptr %a105) %t106 = load { ptr, i64, i64 }, ptr %a102 store { ptr, i64, i64 } %t106, ptr %a108 - store { ptr, i64, i64 } { ptr @.str.3296, i64 36, i64 0 }, ptr %a109 + store { ptr, i64, i64 } { ptr @.str.3381, i64 36, i64 0 }, ptr %a109 call void @finch_str_concat(ptr %a107, ptr %a108, ptr %a109) store { ptr, i64, i64 } %t106, ptr %a110 call void @finch_str_drop(ptr %a110) @@ -52754,27 +54402,27 @@ inrange5211: call void @finch.gen.fail(ptr %t92, %S.ast.Node %t99, { ptr, i64, i64 } %t111) store { ptr, i64, i64 } %t111, ptr %a112 call void @finch_str_drop(ptr %a112) - br label %endif5209 -endif5209: - %t113 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3297, i64 4, i64 0 }) + br label %endif5353 +endif5353: + %t113 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3382, i64 4, i64 0 }) store %S.ast.Type %t113, ptr %a114 %t115 = getelementptr inbounds %S.ast.Type, ptr %a16, i32 0, i32 0 %t116 = load { ptr, i64, i64 }, ptr %t115 store { ptr, i64, i64 } %t116, ptr %a117 - store { ptr, i64, i64 } { ptr @.str.3298, i64 5, i64 0 }, ptr %a118 + store { ptr, i64, i64 } { ptr @.str.3383, i64 5, i64 0 }, ptr %a118 %t119 = call i32 @finch_str_eq(ptr %a117, ptr %a118) %t120 = icmp ne i32 %t119, 0 - br i1 %t120, label %then5212, label %endif5214 -then5212: + br i1 %t120, label %then5356, label %endif5358 +then5356: %t121 = getelementptr inbounds %S.ast.Type, ptr %a16, i32 0, i32 1 %t122 = load { ptr, i64, i64 }, ptr %t121 %t123 = extractvalue { ptr, i64, i64 } %t122, 1 %t124 = icmp uge i64 0, %t123 - br i1 %t124, label %range5215, label %inrange5216 -range5215: - call void @finch_panic_index(ptr @.str.3299, i64 2528, i64 0, i64 %t123) + br i1 %t124, label %range5359, label %inrange5360 +range5359: + call void @finch_panic_index(ptr @.str.3384, i64 2609, i64 0, i64 %t123) unreachable -inrange5216: +inrange5360: %t125 = extractvalue { ptr, i64, i64 } %t122, 0 %t126 = getelementptr inbounds %S.ast.Type, ptr %t125, i64 0 %t127 = load %S.ast.Type, ptr %t126 @@ -52785,36 +54433,36 @@ inrange5216: store %S.ast.Type %t130, ptr %a114 store %S.ast.Type %t131, ptr %a132 call void @finch.drop.S_ast_Type(ptr %a132) - br label %endif5214 -endif5214: + br label %endif5358 +endif5358: %t133 = getelementptr inbounds %S.gen.Ref, ptr %a13, i32 0, i32 0 %t134 = load i1, ptr %t133 - br label %logic.from5217 -logic.from5217: - br i1 %t134, label %logic.rhs5218, label %logic.end5219 -logic.rhs5218: + br label %logic.from5361 +logic.from5361: + br i1 %t134, label %logic.rhs5362, label %logic.end5363 +logic.rhs5362: %t135 = load ptr, ptr %a1 %t136 = load %S.ast.Type, ptr %a114 %t137 = call i1 @finch.gen.owning(ptr %t135, %S.ast.Type %t136) - br label %logic.rend5220 -logic.rend5220: - br label %logic.end5219 -logic.end5219: - %t138 = phi i1 [ false, %logic.from5217 ], [ %t137, %logic.rend5220 ] - br label %logic.from5221 -logic.from5221: - br i1 %t138, label %logic.rhs5222, label %logic.end5223 -logic.rhs5222: + br label %logic.rend5364 +logic.rend5364: + br label %logic.end5363 +logic.end5363: + %t138 = phi i1 [ false, %logic.from5361 ], [ %t137, %logic.rend5364 ] + br label %logic.from5365 +logic.from5365: + br i1 %t138, label %logic.rhs5366, label %logic.end5367 +logic.rhs5366: %t139 = load ptr, ptr %a1 %t140 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t141 = load { ptr, i64, i64 }, ptr %t140 %t142 = extractvalue { ptr, i64, i64 } %t141, 1 %t143 = icmp uge i64 0, %t142 - br i1 %t143, label %range5224, label %inrange5225 -range5224: - call void @finch_panic_index(ptr @.str.3300, i64 2530, i64 0, i64 %t142) + br i1 %t143, label %range5368, label %inrange5369 +range5368: + call void @finch_panic_index(ptr @.str.3385, i64 2611, i64 0, i64 %t142) unreachable -inrange5225: +inrange5369: %t144 = extractvalue { ptr, i64, i64 } %t141, 0 %t145 = getelementptr inbounds %S.ast.Node, ptr %t144, i64 0 %t146 = load %S.ast.Node, ptr %t145 @@ -52823,40 +54471,40 @@ inrange5225: %t149 = load { ptr, i64, i64 }, ptr %t148 %t150 = extractvalue { ptr, i64, i64 } %t149, 1 %t151 = icmp uge i64 1, %t150 - br i1 %t151, label %range5226, label %inrange5227 -range5226: - call void @finch_panic_index(ptr @.str.3301, i64 2530, i64 1, i64 %t150) + br i1 %t151, label %range5370, label %inrange5371 +range5370: + call void @finch_panic_index(ptr @.str.3386, i64 2611, i64 1, i64 %t150) unreachable -inrange5227: +inrange5371: %t152 = extractvalue { ptr, i64, i64 } %t149, 0 %t153 = getelementptr inbounds %S.ast.Node, ptr %t152, i64 1 %t154 = load %S.ast.Node, ptr %t153 %t155 = call i1 @finch.gen.mutates(ptr %t139, { ptr, i64, i64 } %t147, %S.ast.Node %t154) store { ptr, i64, i64 } %t147, ptr %a156 call void @finch_str_drop(ptr %a156) - br label %logic.rend5228 -logic.rend5228: - br label %logic.end5223 -logic.end5223: - %t157 = phi i1 [ false, %logic.from5221 ], [ %t155, %logic.rend5228 ] + br label %logic.rend5372 +logic.rend5372: + br label %logic.end5367 +logic.end5367: + %t157 = phi i1 [ false, %logic.from5365 ], [ %t155, %logic.rend5372 ] store i1 %t157, ptr %a158 %t159 = load ptr, ptr %a1 - %t160 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t159, { ptr, i64, i64 } { ptr @.str.3302, i64 3, i64 0 }) + %t160 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t159, { ptr, i64, i64 } { ptr @.str.3387, i64 3, i64 0 }) store { ptr, i64, i64 } %t160, ptr %a161 %t162 = load ptr, ptr %a1 %t163 = load { ptr, i64, i64 }, ptr %a161 - call void @finch.gen.store(ptr %t162, { ptr, i64, i64 } { ptr @.str.3303, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.3304, i64 1, i64 0 }, { ptr, i64, i64 } %t163) + call void @finch.gen.store(ptr %t162, { ptr, i64, i64 } { ptr @.str.3388, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.3389, i64 1, i64 0 }, { ptr, i64, i64 } %t163) %t164 = load ptr, ptr %a1 - %t165 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t164, { ptr, i64, i64 } { ptr @.str.3305, i64 9, i64 0 }) + %t165 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t164, { ptr, i64, i64 } { ptr @.str.3390, i64 9, i64 0 }) store { ptr, i64, i64 } %t165, ptr %a166 %t167 = load ptr, ptr %a1 - %t168 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t167, { ptr, i64, i64 } { ptr @.str.3306, i64 9, i64 0 }) + %t168 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t167, { ptr, i64, i64 } { ptr @.str.3391, i64 9, i64 0 }) store { ptr, i64, i64 } %t168, ptr %a169 %t170 = load ptr, ptr %a1 - %t171 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t170, { ptr, i64, i64 } { ptr @.str.3307, i64 9, i64 0 }) + %t171 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t170, { ptr, i64, i64 } { ptr @.str.3392, i64 9, i64 0 }) store { ptr, i64, i64 } %t171, ptr %a172 %t173 = load ptr, ptr %a1 - %t174 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t173, { ptr, i64, i64 } { ptr @.str.3308, i64 8, i64 0 }) + %t174 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t173, { ptr, i64, i64 } { ptr @.str.3393, i64 8, i64 0 }) store { ptr, i64, i64 } %t174, ptr %a175 %t176 = load ptr, ptr %a1 %t177 = load { ptr, i64, i64 }, ptr %a166 @@ -52867,12 +54515,12 @@ logic.end5223: %t180 = load ptr, ptr %a1 %t181 = load ptr, ptr %a1 %t182 = load { ptr, i64, i64 }, ptr %a14 - store { ptr, i64, i64 } { ptr @.str.3310, i64 46, i64 0 }, ptr %a184 + store { ptr, i64, i64 } { ptr @.str.3395, i64 46, i64 0 }, ptr %a184 store { ptr, i64, i64 } %t182, ptr %a185 call void @finch_str_concat(ptr %a183, ptr %a184, ptr %a185) %t186 = load { ptr, i64, i64 }, ptr %a183 store { ptr, i64, i64 } %t186, ptr %a188 - store { ptr, i64, i64 } { ptr @.str.3311, i64 14, i64 0 }, ptr %a189 + store { ptr, i64, i64 } { ptr @.str.3396, i64 14, i64 0 }, ptr %a189 call void @finch_str_concat(ptr %a187, ptr %a188, ptr %a189) store { ptr, i64, i64 } %t186, ptr %a190 call void @finch_str_drop(ptr %a190) @@ -52880,22 +54528,22 @@ logic.end5223: %t192 = call { ptr, i64, i64 } @finch.gen.op(ptr %t181, { ptr, i64, i64 } %t191) store { ptr, i64, i64 } %t191, ptr %a193 call void @finch_str_drop(ptr %a193) - %t194 = call { ptr, i64, i64 } @finch.gen.load(ptr %t180, { ptr, i64, i64 } { ptr @.str.3309, i64 3, i64 0 }, { ptr, i64, i64 } %t192) + %t194 = call { ptr, i64, i64 } @finch.gen.load(ptr %t180, { ptr, i64, i64 } { ptr @.str.3394, i64 3, i64 0 }, { ptr, i64, i64 } %t192) store { ptr, i64, i64 } %t192, ptr %a195 call void @finch_str_drop(ptr %a195) store { ptr, i64, i64 } %t194, ptr %a196 %t197 = load ptr, ptr %a1 %t198 = load { ptr, i64, i64 }, ptr %a161 - %t199 = call { ptr, i64, i64 } @finch.gen.load(ptr %t197, { ptr, i64, i64 } { ptr @.str.3312, i64 3, i64 0 }, { ptr, i64, i64 } %t198) + %t199 = call { ptr, i64, i64 } @finch.gen.load(ptr %t197, { ptr, i64, i64 } { ptr @.str.3397, i64 3, i64 0 }, { ptr, i64, i64 } %t198) store { ptr, i64, i64 } %t199, ptr %a200 %t201 = load ptr, ptr %a1 %t202 = load { ptr, i64, i64 }, ptr %a200 - store { ptr, i64, i64 } { ptr @.str.3313, i64 13, i64 0 }, ptr %a204 + store { ptr, i64, i64 } { ptr @.str.3398, i64 13, i64 0 }, ptr %a204 store { ptr, i64, i64 } %t202, ptr %a205 call void @finch_str_concat(ptr %a203, ptr %a204, ptr %a205) %t206 = load { ptr, i64, i64 }, ptr %a203 store { ptr, i64, i64 } %t206, ptr %a208 - store { ptr, i64, i64 } { ptr @.str.3314, i64 2, i64 0 }, ptr %a209 + store { ptr, i64, i64 } { ptr @.str.3399, i64 2, i64 0 }, ptr %a209 call void @finch_str_concat(ptr %a207, ptr %a208, ptr %a209) store { ptr, i64, i64 } %t206, ptr %a210 call void @finch_str_drop(ptr %a210) @@ -52921,20 +54569,20 @@ logic.end5223: call void @finch.gen.label(ptr %t225, { ptr, i64, i64 } %t226) %t227 = load ptr, ptr %a1 %t228 = load { ptr, i64, i64 }, ptr %a14 - %t229 = call { ptr, i64, i64 } @finch.gen.load(ptr %t227, { ptr, i64, i64 } { ptr @.str.3315, i64 3, i64 0 }, { ptr, i64, i64 } %t228) + %t229 = call { ptr, i64, i64 } @finch.gen.load(ptr %t227, { ptr, i64, i64 } { ptr @.str.3400, i64 3, i64 0 }, { ptr, i64, i64 } %t228) store { ptr, i64, i64 } %t229, ptr %a230 %t231 = load ptr, ptr %a1 %t232 = load ptr, ptr %a1 %t233 = load %S.ast.Type, ptr %a114 %t234 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t232, %S.ast.Type %t233) - store { ptr, i64, i64 } { ptr @.str.3316, i64 23, i64 0 }, ptr %a236 + store { ptr, i64, i64 } { ptr @.str.3401, i64 23, i64 0 }, ptr %a236 store { ptr, i64, i64 } %t234, ptr %a237 call void @finch_str_concat(ptr %a235, ptr %a236, ptr %a237) store { ptr, i64, i64 } %t234, ptr %a238 call void @finch_str_drop(ptr %a238) %t239 = load { ptr, i64, i64 }, ptr %a235 store { ptr, i64, i64 } %t239, ptr %a241 - store { ptr, i64, i64 } { ptr @.str.3317, i64 6, i64 0 }, ptr %a242 + store { ptr, i64, i64 } { ptr @.str.3402, i64 6, i64 0 }, ptr %a242 call void @finch_str_concat(ptr %a240, ptr %a241, ptr %a242) store { ptr, i64, i64 } %t239, ptr %a243 call void @finch_str_drop(ptr %a243) @@ -52947,7 +54595,7 @@ logic.end5223: call void @finch_str_drop(ptr %a249) %t250 = load { ptr, i64, i64 }, ptr %a246 store { ptr, i64, i64 } %t250, ptr %a252 - store { ptr, i64, i64 } { ptr @.str.3318, i64 6, i64 0 }, ptr %a253 + store { ptr, i64, i64 } { ptr @.str.3403, i64 6, i64 0 }, ptr %a253 call void @finch_str_concat(ptr %a251, ptr %a252, ptr %a253) store { ptr, i64, i64 } %t250, ptr %a254 call void @finch_str_drop(ptr %a254) @@ -52973,8 +54621,8 @@ logic.end5223: call void @finch_str_drop(ptr %a271) store { ptr, i64, i64 } %t270, ptr %a272 %t273 = load i1, ptr %a158 - br i1 %t273, label %then5229, label %endif5231 -then5229: + br i1 %t273, label %then5373, label %endif5375 +then5373: %t274 = load ptr, ptr %a1 %t275 = load { ptr, i64, i64 }, ptr %a272 %t276 = load %S.ast.Type, ptr %a114 @@ -52983,15 +54631,15 @@ then5229: store { ptr, i64, i64 } %t277, ptr %a272 store { ptr, i64, i64 } %t278, ptr %a279 call void @finch_str_drop(ptr %a279) - br label %endif5231 -endif5231: + br label %endif5375 +endif5375: %t280 = load ptr, ptr %a1 %t281 = icmp eq ptr %t280, null - br i1 %t281, label %panic5232, label %ok5233 -panic5232: - call void @finch_panic(ptr @.str.3319, i64 2550, ptr @.str.3320) + br i1 %t281, label %panic5376, label %ok5377 +panic5376: + call void @finch_panic(ptr @.str.3404, i64 2631, ptr @.str.3405) unreachable -ok5233: +ok5377: %t282 = getelementptr inbounds %S.gen.Gen, ptr %t280, i32 0, i32 12 %t283 = getelementptr inbounds { ptr, i64, i64 }, ptr %t282, i32 0, i32 1 %t284 = load { ptr, i64, i64 }, ptr %a172 @@ -53006,22 +54654,22 @@ ok5233: %t293 = insertvalue %S.gen.Loop %t288, { ptr, i64, i64 } %t292, 1 %t294 = load ptr, ptr %a1 %t295 = icmp eq ptr %t294, null - br i1 %t295, label %panic5234, label %ok5235 -panic5234: - call void @finch_panic(ptr @.str.3321, i64 2550, ptr @.str.3322) + br i1 %t295, label %panic5378, label %ok5379 +panic5378: + call void @finch_panic(ptr @.str.3406, i64 2631, ptr @.str.3407) unreachable -ok5235: +ok5379: %t296 = getelementptr inbounds %S.gen.Gen, ptr %t294, i32 0, i32 10 %t297 = getelementptr inbounds { ptr, i64, i64 }, ptr %t296, i32 0, i32 1 %t298 = load i64, ptr %t297 %t299 = insertvalue %S.gen.Loop %t293, i64 %t298, 2 %t300 = load ptr, ptr %a1 %t301 = icmp eq ptr %t300, null - br i1 %t301, label %panic5236, label %ok5237 -panic5236: - call void @finch_panic(ptr @.str.3323, i64 2550, ptr @.str.3324) + br i1 %t301, label %panic5380, label %ok5381 +panic5380: + call void @finch_panic(ptr @.str.3408, i64 2631, ptr @.str.3409) unreachable -ok5237: +ok5381: %t302 = getelementptr inbounds %S.gen.Gen, ptr %t300, i32 0, i32 11 %t303 = getelementptr inbounds { ptr, i64, i64 }, ptr %t302, i32 0, i32 1 %t304 = load i64, ptr %t303 @@ -53045,13 +54693,13 @@ ok5237: %t318 = getelementptr inbounds { ptr, i64, i64 }, ptr %t317, i32 0, i32 1 %t319 = load i64, ptr %t318 %t320 = icmp sgt i64 %t319, 0 - br i1 %t320, label %then5238, label %endif5240 -then5238: + br i1 %t320, label %then5382, label %endif5384 +then5382: %t321 = load ptr, ptr %a1 %t322 = load %S.ast.Node, ptr %a2 %t323 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t324 = load { ptr, i64, i64 }, ptr %t323 - %t325 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3325, i64 3, i64 0 }) + %t325 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3410, i64 3, i64 0 }) %t326 = load { ptr, i64, i64 }, ptr %a200 %t327 = call { ptr, i64, i64 } @finch.gen.addVar(ptr %t321, %S.ast.Node %t322, { ptr, i64, i64 } %t324, %S.ast.Type %t325, { ptr, i64, i64 } %t326, i1 true, i1 false) store %S.ast.Type %t325, ptr %a328 @@ -53067,8 +54715,8 @@ then5238: store { ptr, i64, i64 } %t334, ptr %a316 store { ptr, i64, i64 } %t335, ptr %a336 call void @finch_str_drop(ptr %a336) - br label %endif5240 -endif5240: + br label %endif5384 +endif5384: %t337 = load ptr, ptr %a1 %t338 = load %S.ast.Node, ptr %a2 %t339 = load { ptr, i64, i64 }, ptr %a316 @@ -53083,11 +54731,11 @@ endif5240: %t347 = load { ptr, i64, i64 }, ptr %t346 %t348 = extractvalue { ptr, i64, i64 } %t347, 1 %t349 = icmp uge i64 1, %t348 - br i1 %t349, label %range5241, label %inrange5242 -range5241: - call void @finch_panic_index(ptr @.str.3326, i64 2558, i64 1, i64 %t348) + br i1 %t349, label %range5385, label %inrange5386 +range5385: + call void @finch_panic_index(ptr @.str.3411, i64 2639, i64 1, i64 %t348) unreachable -inrange5242: +inrange5386: %t350 = extractvalue { ptr, i64, i64 } %t347, 0 %t351 = getelementptr inbounds %S.ast.Node, ptr %t350, i64 1 %t352 = load %S.ast.Node, ptr %t351 @@ -53096,20 +54744,20 @@ inrange5242: call void @finch.gen.popScope(ptr %t353) %t354 = load ptr, ptr %a1 %t355 = icmp eq ptr %t354, null - br i1 %t355, label %panic5243, label %ok5244 -panic5243: - call void @finch_panic(ptr @.str.3327, i64 2560, ptr @.str.3328) + br i1 %t355, label %panic5387, label %ok5388 +panic5387: + call void @finch_panic(ptr @.str.3412, i64 2641, ptr @.str.3413) unreachable -ok5244: +ok5388: %t356 = getelementptr inbounds %S.gen.Gen, ptr %t354, i32 0, i32 12 %t357 = getelementptr inbounds { ptr, i64, i64 }, ptr %t356, i32 0, i32 1 %t358 = load i64, ptr %t357 %t359 = icmp eq i64 %t358, 0 - br i1 %t359, label %panic5245, label %ok5246 -panic5245: - call void @finch_panic(ptr @.str.3329, i64 2560, ptr @.str.3330) + br i1 %t359, label %panic5389, label %ok5390 +panic5389: + call void @finch_panic(ptr @.str.3414, i64 2641, ptr @.str.3415) unreachable -ok5246: +ok5390: %t360 = sub i64 %t358, 1 %t361 = load ptr, ptr %t356 %t362 = getelementptr inbounds %S.gen.Loop, ptr %t361, i64 %t360 @@ -53125,17 +54773,17 @@ ok5246: call void @finch.gen.label(ptr %t367, { ptr, i64, i64 } %t368) %t369 = load ptr, ptr %a1 %t370 = load { ptr, i64, i64 }, ptr %a161 - %t371 = call { ptr, i64, i64 } @finch.gen.load(ptr %t369, { ptr, i64, i64 } { ptr @.str.3331, i64 3, i64 0 }, { ptr, i64, i64 } %t370) + %t371 = call { ptr, i64, i64 } @finch.gen.load(ptr %t369, { ptr, i64, i64 } { ptr @.str.3416, i64 3, i64 0 }, { ptr, i64, i64 } %t370) store { ptr, i64, i64 } %t371, ptr %a372 %t373 = load ptr, ptr %a1 %t374 = load ptr, ptr %a1 %t375 = load { ptr, i64, i64 }, ptr %a372 - store { ptr, i64, i64 } { ptr @.str.3333, i64 8, i64 0 }, ptr %a377 + store { ptr, i64, i64 } { ptr @.str.3418, i64 8, i64 0 }, ptr %a377 store { ptr, i64, i64 } %t375, ptr %a378 call void @finch_str_concat(ptr %a376, ptr %a377, ptr %a378) %t379 = load { ptr, i64, i64 }, ptr %a376 store { ptr, i64, i64 } %t379, ptr %a381 - store { ptr, i64, i64 } { ptr @.str.3334, i64 3, i64 0 }, ptr %a382 + store { ptr, i64, i64 } { ptr @.str.3419, i64 3, i64 0 }, ptr %a382 call void @finch_str_concat(ptr %a380, ptr %a381, ptr %a382) store { ptr, i64, i64 } %t379, ptr %a383 call void @finch_str_drop(ptr %a383) @@ -53144,7 +54792,7 @@ ok5246: store { ptr, i64, i64 } %t384, ptr %a386 call void @finch_str_drop(ptr %a386) %t387 = load { ptr, i64, i64 }, ptr %a161 - call void @finch.gen.store(ptr %t373, { ptr, i64, i64 } { ptr @.str.3332, i64 3, i64 0 }, { ptr, i64, i64 } %t385, { ptr, i64, i64 } %t387) + call void @finch.gen.store(ptr %t373, { ptr, i64, i64 } { ptr @.str.3417, i64 3, i64 0 }, { ptr, i64, i64 } %t385, { ptr, i64, i64 } %t387) store { ptr, i64, i64 } %t385, ptr %a388 call void @finch_str_drop(ptr %a388) %t389 = load ptr, ptr %a1 @@ -53299,88 +54947,88 @@ entry: store %S.ast.Node %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic5247, label %ok5248 -panic5247: - call void @finch_panic(ptr @.str.3335, i64 2571, ptr @.str.3336) + br i1 %t4, label %panic5391, label %ok5392 +panic5391: + call void @finch_panic(ptr @.str.3420, i64 2652, ptr @.str.3421) unreachable -ok5248: - %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 45 +ok5392: + %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 46 %t6 = load i64, ptr %t5 %t7 = icmp sgt i64 %t6, 0 - br i1 %t7, label %then5249, label %endif5251 -then5249: + br i1 %t7, label %then5393, label %endif5395 +then5393: %t8 = load ptr, ptr %a1 %t9 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t8, %S.ast.Node %t9, { ptr, i64, i64 } { ptr @.str.3337, i64 33, i64 0 }) - br label %endif5251 -endif5251: + call void @finch.gen.fail(ptr %t8, %S.ast.Node %t9, { ptr, i64, i64 } { ptr @.str.3422, i64 33, i64 0 }) + br label %endif5395 +endif5395: %t10 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %t10, i32 0, i32 1 %t12 = load i64, ptr %t11 %t13 = icmp sgt i64 %t12, 0 - br label %logic.from5252 -logic.from5252: - br i1 %t13, label %logic.rhs5253, label %logic.end5254 -logic.rhs5253: + br label %logic.from5396 +logic.from5396: + br i1 %t13, label %logic.rhs5397, label %logic.end5398 +logic.rhs5397: %t14 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t15 = load { ptr, i64, i64 }, ptr %t14 %t16 = extractvalue { ptr, i64, i64 } %t15, 1 %t17 = icmp uge i64 0, %t16 - br i1 %t17, label %range5255, label %inrange5256 -range5255: - call void @finch_panic_index(ptr @.str.3338, i64 2575, i64 0, i64 %t16) + br i1 %t17, label %range5399, label %inrange5400 +range5399: + call void @finch_panic_index(ptr @.str.3423, i64 2656, i64 0, i64 %t16) unreachable -inrange5256: +inrange5400: %t18 = extractvalue { ptr, i64, i64 } %t15, 0 %t19 = getelementptr inbounds %S.ast.Node, ptr %t18, i64 0 %t20 = getelementptr inbounds %S.ast.Node, ptr %t19, i32 0, i32 0 %t21 = load { ptr, i64, i64 }, ptr %t20 store { ptr, i64, i64 } %t21, ptr %a22 - store { ptr, i64, i64 } { ptr @.str.3339, i64 4, i64 0 }, ptr %a23 + store { ptr, i64, i64 } { ptr @.str.3424, i64 4, i64 0 }, ptr %a23 %t24 = call i32 @finch_str_eq(ptr %a22, ptr %a23) %t25 = icmp ne i32 %t24, 0 - br label %logic.rend5257 -logic.rend5257: - br label %logic.end5254 -logic.end5254: - %t26 = phi i1 [ false, %logic.from5252 ], [ %t25, %logic.rend5257 ] - br label %logic.from5258 -logic.from5258: - br i1 %t26, label %logic.rhs5259, label %logic.end5260 -logic.rhs5259: + br label %logic.rend5401 +logic.rend5401: + br label %logic.end5398 +logic.end5398: + %t26 = phi i1 [ false, %logic.from5396 ], [ %t25, %logic.rend5401 ] + br label %logic.from5402 +logic.from5402: + br i1 %t26, label %logic.rhs5403, label %logic.end5404 +logic.rhs5403: %t27 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t28 = load { ptr, i64, i64 }, ptr %t27 %t29 = extractvalue { ptr, i64, i64 } %t28, 1 %t30 = icmp uge i64 0, %t29 - br i1 %t30, label %range5261, label %inrange5262 -range5261: - call void @finch_panic_index(ptr @.str.3340, i64 2575, i64 0, i64 %t29) + br i1 %t30, label %range5405, label %inrange5406 +range5405: + call void @finch_panic_index(ptr @.str.3425, i64 2656, i64 0, i64 %t29) unreachable -inrange5262: +inrange5406: %t31 = extractvalue { ptr, i64, i64 } %t28, 0 %t32 = getelementptr inbounds %S.ast.Node, ptr %t31, i64 0 %t33 = getelementptr inbounds %S.ast.Node, ptr %t32, i32 0, i32 1 %t34 = load { ptr, i64, i64 }, ptr %t33 store { ptr, i64, i64 } %t34, ptr %a35 - store { ptr, i64, i64 } { ptr @.str.3341, i64 5, i64 0 }, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.3426, i64 5, i64 0 }, ptr %a36 %t37 = call i32 @finch_str_eq(ptr %a35, ptr %a36) %t38 = icmp ne i32 %t37, 0 - br label %logic.rend5263 -logic.rend5263: - br label %logic.end5260 -logic.end5260: - %t39 = phi i1 [ false, %logic.from5258 ], [ %t38, %logic.rend5263 ] - br i1 %t39, label %then5264, label %endif5266 -then5264: + br label %logic.rend5407 +logic.rend5407: + br label %logic.end5404 +logic.end5404: + %t39 = phi i1 [ false, %logic.from5402 ], [ %t38, %logic.rend5407 ] + br i1 %t39, label %then5408, label %endif5410 +then5408: %t40 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t41 = load { ptr, i64, i64 }, ptr %t40 %t42 = extractvalue { ptr, i64, i64 } %t41, 1 %t43 = icmp uge i64 0, %t42 - br i1 %t43, label %range5267, label %inrange5268 -range5267: - call void @finch_panic_index(ptr @.str.3342, i64 2576, i64 0, i64 %t42) + br i1 %t43, label %range5411, label %inrange5412 +range5411: + call void @finch_panic_index(ptr @.str.3427, i64 2657, i64 0, i64 %t42) unreachable -inrange5268: +inrange5412: %t44 = extractvalue { ptr, i64, i64 } %t41, 0 %t45 = getelementptr inbounds %S.ast.Node, ptr %t44, i64 0 %t46 = load %S.ast.Node, ptr %t45 @@ -53390,48 +55038,48 @@ inrange5268: store %S.ast.Node %t49, ptr %a50 %t51 = load ptr, ptr %a1 %t52 = icmp eq ptr %t51, null - br i1 %t52, label %panic5269, label %ok5270 -panic5269: - call void @finch_panic(ptr @.str.3343, i64 2577, ptr @.str.3344) + br i1 %t52, label %panic5413, label %ok5414 +panic5413: + call void @finch_panic(ptr @.str.3428, i64 2658, ptr @.str.3429) unreachable -ok5270: +ok5414: %t53 = getelementptr inbounds %S.gen.Gen, ptr %t51, i32 0, i32 13 %t54 = getelementptr inbounds %S.gen.FnSig, ptr %t53, i32 0, i32 9 %t55 = load i1, ptr %t54 %t56 = xor i1 %t55, true - br i1 %t56, label %then5271, label %endif5273 -then5271: - store { ptr, i64, i64 } { ptr @.str.3345, i64 1, i64 0 }, ptr %a57 + br i1 %t56, label %then5415, label %endif5417 +then5415: + store { ptr, i64, i64 } { ptr @.str.3430, i64 1, i64 0 }, ptr %a57 %t58 = load ptr, ptr %a1 %t59 = icmp eq ptr %t58, null - br i1 %t59, label %panic5274, label %ok5275 -panic5274: - call void @finch_panic(ptr @.str.3346, i64 2579, ptr @.str.3347) + br i1 %t59, label %panic5418, label %ok5419 +panic5418: + call void @finch_panic(ptr @.str.3431, i64 2660, ptr @.str.3432) unreachable -ok5275: +ok5419: %t60 = getelementptr inbounds %S.gen.Gen, ptr %t58, i32 0, i32 13 %t61 = getelementptr inbounds %S.gen.FnSig, ptr %t60, i32 0, i32 12 %t62 = getelementptr inbounds %S.ast.Type, ptr %t61, i32 0, i32 0 %t63 = load { ptr, i64, i64 }, ptr %t62 store { ptr, i64, i64 } %t63, ptr %a64 - store { ptr, i64, i64 } { ptr @.str.3348, i64 4, i64 0 }, ptr %a65 + store { ptr, i64, i64 } { ptr @.str.3433, i64 4, i64 0 }, ptr %a65 %t66 = call i32 @finch_str_eq(ptr %a64, ptr %a65) %t67 = icmp eq i32 %t66, 0 - br i1 %t67, label %then5276, label %endif5278 -then5276: + br i1 %t67, label %then5420, label %endif5422 +then5420: %t68 = load ptr, ptr %a1 %t69 = icmp eq ptr %t68, null - br i1 %t69, label %panic5279, label %ok5280 -panic5279: - call void @finch_panic(ptr @.str.3349, i64 2580, ptr @.str.3350) + br i1 %t69, label %panic5423, label %ok5424 +panic5423: + call void @finch_panic(ptr @.str.3434, i64 2661, ptr @.str.3435) unreachable -ok5280: +ok5424: %t70 = getelementptr inbounds %S.gen.Gen, ptr %t68, i32 0, i32 13 %t71 = getelementptr inbounds %S.gen.FnSig, ptr %t70, i32 0, i32 12 %t72 = load %S.ast.Type, ptr %t71 %t73 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t72) store { ptr, i64, i64 } %t73, ptr %a75 - store { ptr, i64, i64 } { ptr @.str.3351, i64 1, i64 0 }, ptr %a76 + store { ptr, i64, i64 } { ptr @.str.3436, i64 1, i64 0 }, ptr %a76 call void @finch_str_concat(ptr %a74, ptr %a75, ptr %a76) store { ptr, i64, i64 } %t73, ptr %a77 call void @finch_str_drop(ptr %a77) @@ -53440,26 +55088,26 @@ ok5280: store { ptr, i64, i64 } %t78, ptr %a57 store { ptr, i64, i64 } %t79, ptr %a80 call void @finch_str_drop(ptr %a80) - br label %endif5278 -endif5278: + br label %endif5422 +endif5422: %t81 = load ptr, ptr %a1 %t82 = load %S.ast.Node, ptr %a50 %t83 = load ptr, ptr %a1 %t84 = icmp eq ptr %t83, null - br i1 %t84, label %panic5281, label %ok5282 -panic5281: - call void @finch_panic(ptr @.str.3353, i64 2582, ptr @.str.3354) + br i1 %t84, label %panic5425, label %ok5426 +panic5425: + call void @finch_panic(ptr @.str.3438, i64 2663, ptr @.str.3439) unreachable -ok5282: +ok5426: %t85 = getelementptr inbounds %S.gen.Gen, ptr %t83, i32 0, i32 13 %t86 = getelementptr inbounds %S.gen.FnSig, ptr %t85, i32 0, i32 1 %t87 = load { ptr, i64, i64 }, ptr %t86 - store { ptr, i64, i64 } { ptr @.str.3352, i64 1, i64 0 }, ptr %a89 + store { ptr, i64, i64 } { ptr @.str.3437, i64 1, i64 0 }, ptr %a89 store { ptr, i64, i64 } %t87, ptr %a90 call void @finch_str_concat(ptr %a88, ptr %a89, ptr %a90) %t91 = load { ptr, i64, i64 }, ptr %a88 store { ptr, i64, i64 } %t91, ptr %a93 - store { ptr, i64, i64 } { ptr @.str.3355, i64 64, i64 0 }, ptr %a94 + store { ptr, i64, i64 } { ptr @.str.3440, i64 64, i64 0 }, ptr %a94 call void @finch_str_concat(ptr %a92, ptr %a93, ptr %a94) store { ptr, i64, i64 } %t91, ptr %a95 call void @finch_str_drop(ptr %a95) @@ -53472,7 +55120,7 @@ ok5282: call void @finch_str_drop(ptr %a101) %t102 = load { ptr, i64, i64 }, ptr %a98 store { ptr, i64, i64 } %t102, ptr %a104 - store { ptr, i64, i64 } { ptr @.str.3356, i64 1, i64 0 }, ptr %a105 + store { ptr, i64, i64 } { ptr @.str.3441, i64 1, i64 0 }, ptr %a105 call void @finch_str_concat(ptr %a103, ptr %a104, ptr %a105) store { ptr, i64, i64 } %t102, ptr %a106 call void @finch_str_drop(ptr %a106) @@ -53481,40 +55129,40 @@ ok5282: store { ptr, i64, i64 } %t107, ptr %a108 call void @finch_str_drop(ptr %a108) call void @finch_str_drop(ptr %a57) - br label %endif5273 -endif5273: + br label %endif5417 +endif5417: %t109 = load ptr, ptr %a1 %t110 = load %S.ast.Node, ptr %a50 - call void @finch.gen.checkArgs(ptr %t109, %S.ast.Node %t110, i64 0, i64 1, { ptr, i64, i64 } { ptr @.str.3357, i64 5, i64 0 }) + call void @finch.gen.checkArgs(ptr %t109, %S.ast.Node %t110, i64 0, i64 1, { ptr, i64, i64 } { ptr @.str.3442, i64 5, i64 0 }) %t111 = load ptr, ptr %a1 %t112 = load ptr, ptr %a1 %t113 = getelementptr inbounds %S.ast.Node, ptr %a50, i32 0, i32 9 %t114 = load { ptr, i64, i64 }, ptr %t113 %t115 = extractvalue { ptr, i64, i64 } %t114, 1 %t116 = icmp uge i64 0, %t115 - br i1 %t116, label %range5283, label %inrange5284 -range5283: - call void @finch_panic_index(ptr @.str.3358, i64 2585, i64 0, i64 %t115) + br i1 %t116, label %range5427, label %inrange5428 +range5427: + call void @finch_panic_index(ptr @.str.3443, i64 2666, i64 0, i64 %t115) unreachable -inrange5284: +inrange5428: %t117 = extractvalue { ptr, i64, i64 } %t114, 0 %t118 = getelementptr inbounds %S.ast.Node, ptr %t117, i64 0 %t119 = load %S.ast.Node, ptr %t118 %t120 = call %S.gen.Val @finch.gen.expr(ptr %t112, %S.ast.Node %t119) - %t121 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3359, i64 3, i64 0 }) + %t121 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3444, i64 3, i64 0 }) %t122 = getelementptr inbounds %S.ast.Node, ptr %a50, i32 0, i32 9 %t123 = load { ptr, i64, i64 }, ptr %t122 %t124 = extractvalue { ptr, i64, i64 } %t123, 1 %t125 = icmp uge i64 0, %t124 - br i1 %t125, label %range5285, label %inrange5286 -range5285: - call void @finch_panic_index(ptr @.str.3360, i64 2585, i64 0, i64 %t124) + br i1 %t125, label %range5429, label %inrange5430 +range5429: + call void @finch_panic_index(ptr @.str.3445, i64 2666, i64 0, i64 %t124) unreachable -inrange5286: +inrange5430: %t126 = extractvalue { ptr, i64, i64 } %t123, 0 %t127 = getelementptr inbounds %S.ast.Node, ptr %t126, i64 0 %t128 = load %S.ast.Node, ptr %t127 - %t129 = call %S.gen.Val @finch.gen.coerce(ptr %t111, %S.gen.Val %t120, %S.ast.Type %t121, %S.ast.Node %t128, { ptr, i64, i64 } { ptr @.str.3361, i64 17, i64 0 }) + %t129 = call %S.gen.Val @finch.gen.coerce(ptr %t111, %S.gen.Val %t120, %S.ast.Type %t121, %S.ast.Node %t128, { ptr, i64, i64 } { ptr @.str.3446, i64 17, i64 0 }) store %S.gen.Val %t120, ptr %a130 call void @finch.drop.S_gen_Val(ptr %a130) store %S.ast.Type %t121, ptr %a131 @@ -53532,22 +55180,22 @@ inrange5286: %t140 = load ptr, ptr %a1 %t141 = load ptr, ptr %a1 %t142 = icmp eq ptr %t141, null - br i1 %t142, label %panic5287, label %ok5288 -panic5287: - call void @finch_panic(ptr @.str.3363, i64 2589, ptr @.str.3364) + br i1 %t142, label %panic5431, label %ok5432 +panic5431: + call void @finch_panic(ptr @.str.3448, i64 2670, ptr @.str.3449) unreachable -ok5288: +ok5432: %t143 = getelementptr inbounds %S.gen.Gen, ptr %t141, i32 0, i32 13 %t144 = load %S.gen.FnSig, ptr %t143 %t145 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t140, %S.gen.FnSig %t144) - store { ptr, i64, i64 } { ptr @.str.3362, i64 4, i64 0 }, ptr %a147 + store { ptr, i64, i64 } { ptr @.str.3447, i64 4, i64 0 }, ptr %a147 store { ptr, i64, i64 } %t145, ptr %a148 call void @finch_str_concat(ptr %a146, ptr %a147, ptr %a148) store { ptr, i64, i64 } %t145, ptr %a149 call void @finch_str_drop(ptr %a149) %t150 = load { ptr, i64, i64 }, ptr %a146 store { ptr, i64, i64 } %t150, ptr %a152 - store { ptr, i64, i64 } { ptr @.str.3365, i64 1, i64 0 }, ptr %a153 + store { ptr, i64, i64 } { ptr @.str.3450, i64 1, i64 0 }, ptr %a153 call void @finch_str_concat(ptr %a151, ptr %a152, ptr %a153) store { ptr, i64, i64 } %t150, ptr %a154 call void @finch_str_drop(ptr %a154) @@ -53556,22 +55204,22 @@ ok5288: %t157 = load ptr, ptr %a1 %t158 = load ptr, ptr %a1 %t159 = icmp eq ptr %t158, null - br i1 %t159, label %panic5289, label %ok5290 -panic5289: - call void @finch_panic(ptr @.str.3367, i64 2589, ptr @.str.3368) + br i1 %t159, label %panic5433, label %ok5434 +panic5433: + call void @finch_panic(ptr @.str.3452, i64 2670, ptr @.str.3453) unreachable -ok5290: +ok5434: %t160 = getelementptr inbounds %S.gen.Gen, ptr %t158, i32 0, i32 13 %t161 = load %S.gen.FnSig, ptr %t160 %t162 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t157, %S.gen.FnSig %t161) - store { ptr, i64, i64 } { ptr @.str.3366, i64 12, i64 0 }, ptr %a164 + store { ptr, i64, i64 } { ptr @.str.3451, i64 12, i64 0 }, ptr %a164 store { ptr, i64, i64 } %t162, ptr %a165 call void @finch_str_concat(ptr %a163, ptr %a164, ptr %a165) store { ptr, i64, i64 } %t162, ptr %a166 call void @finch_str_drop(ptr %a166) %t167 = load { ptr, i64, i64 }, ptr %a163 store { ptr, i64, i64 } %t167, ptr %a169 - store { ptr, i64, i64 } { ptr @.str.3369, i64 36, i64 0 }, ptr %a170 + store { ptr, i64, i64 } { ptr @.str.3454, i64 36, i64 0 }, ptr %a170 call void @finch_str_concat(ptr %a168, ptr %a169, ptr %a170) store { ptr, i64, i64 } %t167, ptr %a171 call void @finch_str_drop(ptr %a171) @@ -53584,7 +55232,7 @@ ok5290: call void @finch_str_drop(ptr %a177) %t178 = load { ptr, i64, i64 }, ptr %a174 store { ptr, i64, i64 } %t178, ptr %a180 - store { ptr, i64, i64 } { ptr @.str.3370, i64 3, i64 0 }, ptr %a181 + store { ptr, i64, i64 } { ptr @.str.3455, i64 3, i64 0 }, ptr %a181 call void @finch_str_concat(ptr %a179, ptr %a180, ptr %a181) store { ptr, i64, i64 } %t178, ptr %a182 call void @finch_str_drop(ptr %a182) @@ -53605,70 +55253,70 @@ ok5290: call void @finch_str_drop(ptr %a192) %t193 = load ptr, ptr %a1 %t194 = icmp eq ptr %t193, null - br i1 %t194, label %panic5291, label %ok5292 -panic5291: - call void @finch_panic(ptr @.str.3371, i64 2590, ptr @.str.3372) + br i1 %t194, label %panic5435, label %ok5436 +panic5435: + call void @finch_panic(ptr @.str.3456, i64 2671, ptr @.str.3457) unreachable -ok5292: +ok5436: %t195 = getelementptr inbounds %S.gen.Gen, ptr %t193, i32 0, i32 9 store i1 true, ptr %t195 call void @finch_str_drop(ptr %a136) call void @finch.drop.S_gen_Val(ptr %a132) call void @finch.drop.S_ast_Node(ptr %a50) ret void -endif5266: +endif5410: %t196 = load ptr, ptr %a1 %t197 = icmp eq ptr %t196, null - br i1 %t197, label %panic5293, label %ok5294 -panic5293: - call void @finch_panic(ptr @.str.3373, i64 2593, ptr @.str.3374) + br i1 %t197, label %panic5437, label %ok5438 +panic5437: + call void @finch_panic(ptr @.str.3458, i64 2674, ptr @.str.3459) unreachable -ok5294: +ok5438: %t198 = getelementptr inbounds %S.gen.Gen, ptr %t196, i32 0, i32 13 %t199 = getelementptr inbounds %S.gen.FnSig, ptr %t198, i32 0, i32 12 %t200 = getelementptr inbounds %S.ast.Type, ptr %t199, i32 0, i32 0 %t201 = load { ptr, i64, i64 }, ptr %t200 store { ptr, i64, i64 } %t201, ptr %a202 - store { ptr, i64, i64 } { ptr @.str.3375, i64 4, i64 0 }, ptr %a203 + store { ptr, i64, i64 } { ptr @.str.3460, i64 4, i64 0 }, ptr %a203 %t204 = call i32 @finch_str_eq(ptr %a202, ptr %a203) %t205 = icmp ne i32 %t204, 0 - br i1 %t205, label %then5295, label %endif5297 -then5295: + br i1 %t205, label %then5439, label %endif5441 +then5439: %t206 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t207 = getelementptr inbounds { ptr, i64, i64 }, ptr %t206, i32 0, i32 1 %t208 = load i64, ptr %t207 %t209 = icmp sgt i64 %t208, 0 - br i1 %t209, label %then5298, label %endif5300 -then5298: + br i1 %t209, label %then5442, label %endif5444 +then5442: %t210 = load ptr, ptr %a1 %t211 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t212 = load { ptr, i64, i64 }, ptr %t211 %t213 = extractvalue { ptr, i64, i64 } %t212, 1 %t214 = icmp uge i64 0, %t213 - br i1 %t214, label %range5301, label %inrange5302 -range5301: - call void @finch_panic_index(ptr @.str.3376, i64 2595, i64 0, i64 %t213) + br i1 %t214, label %range5445, label %inrange5446 +range5445: + call void @finch_panic_index(ptr @.str.3461, i64 2676, i64 0, i64 %t213) unreachable -inrange5302: +inrange5446: %t215 = extractvalue { ptr, i64, i64 } %t212, 0 %t216 = getelementptr inbounds %S.ast.Node, ptr %t215, i64 0 %t217 = load %S.ast.Node, ptr %t216 %t218 = load ptr, ptr %a1 %t219 = icmp eq ptr %t218, null - br i1 %t219, label %panic5303, label %ok5304 -panic5303: - call void @finch_panic(ptr @.str.3378, i64 2595, ptr @.str.3379) + br i1 %t219, label %panic5447, label %ok5448 +panic5447: + call void @finch_panic(ptr @.str.3463, i64 2676, ptr @.str.3464) unreachable -ok5304: +ok5448: %t220 = getelementptr inbounds %S.gen.Gen, ptr %t218, i32 0, i32 13 %t221 = getelementptr inbounds %S.gen.FnSig, ptr %t220, i32 0, i32 1 %t222 = load { ptr, i64, i64 }, ptr %t221 - store { ptr, i64, i64 } { ptr @.str.3377, i64 1, i64 0 }, ptr %a224 + store { ptr, i64, i64 } { ptr @.str.3462, i64 1, i64 0 }, ptr %a224 store { ptr, i64, i64 } %t222, ptr %a225 call void @finch_str_concat(ptr %a223, ptr %a224, ptr %a225) %t226 = load { ptr, i64, i64 }, ptr %a223 store { ptr, i64, i64 } %t226, ptr %a228 - store { ptr, i64, i64 } { ptr @.str.3380, i64 46, i64 0 }, ptr %a229 + store { ptr, i64, i64 } { ptr @.str.3465, i64 46, i64 0 }, ptr %a229 call void @finch_str_concat(ptr %a227, ptr %a228, ptr %a229) store { ptr, i64, i64 } %t226, ptr %a230 call void @finch_str_drop(ptr %a230) @@ -53676,44 +55324,44 @@ ok5304: call void @finch.gen.fail(ptr %t210, %S.ast.Node %t217, { ptr, i64, i64 } %t231) store { ptr, i64, i64 } %t231, ptr %a232 call void @finch_str_drop(ptr %a232) - br label %endif5300 -endif5300: + br label %endif5444 +endif5444: %t233 = load ptr, ptr %a1 call void @finch.gen.dropPending(ptr %t233, i64 0) %t234 = load ptr, ptr %a1 call void @finch.gen.unwind(ptr %t234, i64 0) %t235 = load ptr, ptr %a1 %t236 = icmp eq ptr %t235, null - br i1 %t236, label %panic5305, label %ok5306 -panic5305: - call void @finch_panic(ptr @.str.3381, i64 2599, ptr @.str.3382) + br i1 %t236, label %panic5449, label %ok5450 +panic5449: + call void @finch_panic(ptr @.str.3466, i64 2680, ptr @.str.3467) unreachable -ok5306: +ok5450: %t237 = getelementptr inbounds %S.gen.Gen, ptr %t235, i32 0, i32 13 %t238 = getelementptr inbounds %S.gen.FnSig, ptr %t237, i32 0, i32 9 %t239 = load i1, ptr %t238 - br i1 %t239, label %then5307, label %else5308 -then5307: + br i1 %t239, label %then5451, label %else5452 +then5451: %t240 = load ptr, ptr %a1 %t241 = load ptr, ptr %a1 %t242 = load ptr, ptr %a1 %t243 = icmp eq ptr %t242, null - br i1 %t243, label %panic5310, label %ok5311 -panic5310: - call void @finch_panic(ptr @.str.3384, i64 2600, ptr @.str.3385) + br i1 %t243, label %panic5454, label %ok5455 +panic5454: + call void @finch_panic(ptr @.str.3469, i64 2681, ptr @.str.3470) unreachable -ok5311: +ok5455: %t244 = getelementptr inbounds %S.gen.Gen, ptr %t242, i32 0, i32 13 %t245 = load %S.gen.FnSig, ptr %t244 %t246 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t241, %S.gen.FnSig %t245) - store { ptr, i64, i64 } { ptr @.str.3383, i64 4, i64 0 }, ptr %a248 + store { ptr, i64, i64 } { ptr @.str.3468, i64 4, i64 0 }, ptr %a248 store { ptr, i64, i64 } %t246, ptr %a249 call void @finch_str_concat(ptr %a247, ptr %a248, ptr %a249) store { ptr, i64, i64 } %t246, ptr %a250 call void @finch_str_drop(ptr %a250) %t251 = load { ptr, i64, i64 }, ptr %a247 store { ptr, i64, i64 } %t251, ptr %a253 - store { ptr, i64, i64 } { ptr @.str.3386, i64 53, i64 0 }, ptr %a254 + store { ptr, i64, i64 } { ptr @.str.3471, i64 53, i64 0 }, ptr %a254 call void @finch_str_concat(ptr %a252, ptr %a253, ptr %a254) store { ptr, i64, i64 } %t251, ptr %a255 call void @finch_str_drop(ptr %a255) @@ -53721,58 +55369,58 @@ ok5311: call void @finch.gen.emit(ptr %t240, { ptr, i64, i64 } %t256) store { ptr, i64, i64 } %t256, ptr %a257 call void @finch_str_drop(ptr %a257) - br label %endif5309 -else5308: + br label %endif5453 +else5452: %t258 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t258, { ptr, i64, i64 } { ptr @.str.3387, i64 8, i64 0 }) - br label %endif5309 -endif5309: + call void @finch.gen.emit(ptr %t258, { ptr, i64, i64 } { ptr @.str.3472, i64 8, i64 0 }) + br label %endif5453 +endif5453: %t259 = load ptr, ptr %a1 %t260 = icmp eq ptr %t259, null - br i1 %t260, label %panic5312, label %ok5313 -panic5312: - call void @finch_panic(ptr @.str.3388, i64 2604, ptr @.str.3389) + br i1 %t260, label %panic5456, label %ok5457 +panic5456: + call void @finch_panic(ptr @.str.3473, i64 2685, ptr @.str.3474) unreachable -ok5313: +ok5457: %t261 = getelementptr inbounds %S.gen.Gen, ptr %t259, i32 0, i32 9 store i1 true, ptr %t261 ret void -endif5297: +endif5441: %t262 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t263 = getelementptr inbounds { ptr, i64, i64 }, ptr %t262, i32 0, i32 1 %t264 = load i64, ptr %t263 %t265 = icmp eq i64 %t264, 0 - br i1 %t265, label %then5314, label %endif5316 -then5314: + br i1 %t265, label %then5458, label %endif5460 +then5458: %t266 = load ptr, ptr %a1 %t267 = load %S.ast.Node, ptr %a2 %t268 = load ptr, ptr %a1 %t269 = icmp eq ptr %t268, null - br i1 %t269, label %panic5317, label %ok5318 -panic5317: - call void @finch_panic(ptr @.str.3391, i64 2608, ptr @.str.3392) + br i1 %t269, label %panic5461, label %ok5462 +panic5461: + call void @finch_panic(ptr @.str.3476, i64 2689, ptr @.str.3477) unreachable -ok5318: +ok5462: %t270 = getelementptr inbounds %S.gen.Gen, ptr %t268, i32 0, i32 13 %t271 = getelementptr inbounds %S.gen.FnSig, ptr %t270, i32 0, i32 1 %t272 = load { ptr, i64, i64 }, ptr %t271 - store { ptr, i64, i64 } { ptr @.str.3390, i64 1, i64 0 }, ptr %a274 + store { ptr, i64, i64 } { ptr @.str.3475, i64 1, i64 0 }, ptr %a274 store { ptr, i64, i64 } %t272, ptr %a275 call void @finch_str_concat(ptr %a273, ptr %a274, ptr %a275) %t276 = load { ptr, i64, i64 }, ptr %a273 store { ptr, i64, i64 } %t276, ptr %a278 - store { ptr, i64, i64 } { ptr @.str.3393, i64 14, i64 0 }, ptr %a279 + store { ptr, i64, i64 } { ptr @.str.3478, i64 14, i64 0 }, ptr %a279 call void @finch_str_concat(ptr %a277, ptr %a278, ptr %a279) store { ptr, i64, i64 } %t276, ptr %a280 call void @finch_str_drop(ptr %a280) %t281 = load { ptr, i64, i64 }, ptr %a277 %t282 = load ptr, ptr %a1 %t283 = icmp eq ptr %t282, null - br i1 %t283, label %panic5319, label %ok5320 -panic5319: - call void @finch_panic(ptr @.str.3394, i64 2608, ptr @.str.3395) + br i1 %t283, label %panic5463, label %ok5464 +panic5463: + call void @finch_panic(ptr @.str.3479, i64 2689, ptr @.str.3480) unreachable -ok5320: +ok5464: %t284 = getelementptr inbounds %S.gen.Gen, ptr %t282, i32 0, i32 13 %t285 = getelementptr inbounds %S.gen.FnSig, ptr %t284, i32 0, i32 12 %t286 = load %S.ast.Type, ptr %t285 @@ -53788,36 +55436,36 @@ ok5320: call void @finch.gen.fail(ptr %t266, %S.ast.Node %t267, { ptr, i64, i64 } %t293) store { ptr, i64, i64 } %t293, ptr %a294 call void @finch_str_drop(ptr %a294) - br label %endif5316 -endif5316: + br label %endif5460 +endif5460: %t295 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t296 = load { ptr, i64, i64 }, ptr %t295 %t297 = extractvalue { ptr, i64, i64 } %t296, 1 %t298 = icmp uge i64 0, %t297 - br i1 %t298, label %range5321, label %inrange5322 -range5321: - call void @finch_panic_index(ptr @.str.3396, i64 2611, i64 0, i64 %t297) + br i1 %t298, label %range5465, label %inrange5466 +range5465: + call void @finch_panic_index(ptr @.str.3481, i64 2692, i64 0, i64 %t297) unreachable -inrange5322: +inrange5466: %t299 = extractvalue { ptr, i64, i64 } %t296, 0 %t300 = getelementptr inbounds %S.ast.Node, ptr %t299, i64 0 %t301 = getelementptr inbounds %S.ast.Node, ptr %t300, i32 0, i32 0 %t302 = load { ptr, i64, i64 }, ptr %t301 store { ptr, i64, i64 } %t302, ptr %a303 - store { ptr, i64, i64 } { ptr @.str.3397, i64 3, i64 0 }, ptr %a304 + store { ptr, i64, i64 } { ptr @.str.3482, i64 3, i64 0 }, ptr %a304 %t305 = call i32 @finch_str_eq(ptr %a303, ptr %a304) %t306 = icmp ne i32 %t305, 0 - br i1 %t306, label %then5323, label %endif5325 -then5323: + br i1 %t306, label %then5467, label %endif5469 +then5467: %t307 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t308 = load { ptr, i64, i64 }, ptr %t307 %t309 = extractvalue { ptr, i64, i64 } %t308, 1 %t310 = icmp uge i64 0, %t309 - br i1 %t310, label %range5326, label %inrange5327 -range5326: - call void @finch_panic_index(ptr @.str.3398, i64 2612, i64 0, i64 %t309) + br i1 %t310, label %range5470, label %inrange5471 +range5470: + call void @finch_panic_index(ptr @.str.3483, i64 2693, i64 0, i64 %t309) unreachable -inrange5327: +inrange5471: %t311 = extractvalue { ptr, i64, i64 } %t308, 0 %t312 = getelementptr inbounds %S.ast.Node, ptr %t311, i64 0 %t313 = getelementptr inbounds %S.ast.Node, ptr %t312, i32 0, i32 1 @@ -53828,71 +55476,71 @@ inrange5327: store { ptr, i64, i64 } %t317, ptr %a318 %t319 = load ptr, ptr %a1 %t320 = icmp eq ptr %t319, null - br i1 %t320, label %panic5328, label %ok5329 -panic5328: - call void @finch_panic(ptr @.str.3399, i64 2613, ptr @.str.3400) + br i1 %t320, label %panic5472, label %ok5473 +panic5472: + call void @finch_panic(ptr @.str.3484, i64 2694, ptr @.str.3485) unreachable -ok5329: +ok5473: %t321 = getelementptr inbounds %S.gen.Gen, ptr %t319, i32 0, i32 10 %t322 = getelementptr inbounds { ptr, i64, i64 }, ptr %t321, i32 0, i32 1 %t323 = load i64, ptr %t322 store i64 %t323, ptr %a324 - br label %while.cond5330 -while.cond5330: + br label %while.cond5474 +while.cond5474: %t325 = load i64, ptr %a324 %t326 = icmp sgt i64 %t325, 0 - br i1 %t326, label %while.body5331, label %while.end5332 -while.body5331: + br i1 %t326, label %while.body5475, label %while.end5476 +while.body5475: %t327 = load i64, ptr %a324 %t328 = sub i64 %t327, 1 store i64 %t328, ptr %a324 store i64 -1, ptr %a329 %t330 = load ptr, ptr %a1 %t331 = icmp eq ptr %t330, null - br i1 %t331, label %panic5333, label %ok5334 -panic5333: - call void @finch_panic(ptr @.str.3401, i64 2617, ptr @.str.3402) + br i1 %t331, label %panic5477, label %ok5478 +panic5477: + call void @finch_panic(ptr @.str.3486, i64 2698, ptr @.str.3487) unreachable -ok5334: +ok5478: %t332 = getelementptr inbounds %S.gen.Gen, ptr %t330, i32 0, i32 10 %t333 = load i64, ptr %a324 %t334 = load { ptr, i64, i64 }, ptr %t332 %t335 = extractvalue { ptr, i64, i64 } %t334, 1 %t336 = icmp uge i64 %t333, %t335 - br i1 %t336, label %range5335, label %inrange5336 -range5335: - call void @finch_panic_index(ptr @.str.3403, i64 2617, i64 %t333, i64 %t335) + br i1 %t336, label %range5479, label %inrange5480 +range5479: + call void @finch_panic_index(ptr @.str.3488, i64 2698, i64 %t333, i64 %t335) unreachable -inrange5336: +inrange5480: %t337 = extractvalue { ptr, i64, i64 } %t334, 0 %t338 = getelementptr inbounds %S.gen.Scope, ptr %t337, i64 %t333 %t339 = getelementptr inbounds %S.gen.Scope, ptr %t338, i32 0, i32 0 %t340 = getelementptr inbounds { ptr, i64, i64 }, ptr %t339, i32 0, i32 1 %t341 = load i64, ptr %t340 store i64 0, ptr %a342 - br label %for.cond5337 -for.cond5337: + br label %for.cond5481 +for.cond5481: %t343 = load i64, ptr %a342 %t344 = icmp slt i64 %t343, %t341 - br i1 %t344, label %for.body5338, label %for.end5340 -for.body5338: + br i1 %t344, label %for.body5482, label %for.end5484 +for.body5482: %t345 = load ptr, ptr %a1 %t346 = icmp eq ptr %t345, null - br i1 %t346, label %panic5341, label %ok5342 -panic5341: - call void @finch_panic(ptr @.str.3404, i64 2618, ptr @.str.3405) + br i1 %t346, label %panic5485, label %ok5486 +panic5485: + call void @finch_panic(ptr @.str.3489, i64 2699, ptr @.str.3490) unreachable -ok5342: +ok5486: %t347 = getelementptr inbounds %S.gen.Gen, ptr %t345, i32 0, i32 10 %t348 = load i64, ptr %a324 %t349 = load { ptr, i64, i64 }, ptr %t347 %t350 = extractvalue { ptr, i64, i64 } %t349, 1 %t351 = icmp uge i64 %t348, %t350 - br i1 %t351, label %range5343, label %inrange5344 -range5343: - call void @finch_panic_index(ptr @.str.3406, i64 2618, i64 %t348, i64 %t350) + br i1 %t351, label %range5487, label %inrange5488 +range5487: + call void @finch_panic_index(ptr @.str.3491, i64 2699, i64 %t348, i64 %t350) unreachable -inrange5344: +inrange5488: %t352 = extractvalue { ptr, i64, i64 } %t349, 0 %t353 = getelementptr inbounds %S.gen.Scope, ptr %t352, i64 %t348 %t354 = getelementptr inbounds %S.gen.Scope, ptr %t353, i32 0, i32 0 @@ -53900,11 +55548,11 @@ inrange5344: %t356 = load { ptr, i64, i64 }, ptr %t354 %t357 = extractvalue { ptr, i64, i64 } %t356, 1 %t358 = icmp uge i64 %t355, %t357 - br i1 %t358, label %range5345, label %inrange5346 -range5345: - call void @finch_panic_index(ptr @.str.3407, i64 2618, i64 %t355, i64 %t357) + br i1 %t358, label %range5489, label %inrange5490 +range5489: + call void @finch_panic_index(ptr @.str.3492, i64 2699, i64 %t355, i64 %t357) unreachable -inrange5346: +inrange5490: %t359 = extractvalue { ptr, i64, i64 } %t356, 0 %t360 = getelementptr inbounds %S.gen.Var, ptr %t359, i64 %t355 %t361 = getelementptr inbounds %S.gen.Var, ptr %t360, i32 0, i32 0 @@ -53914,40 +55562,40 @@ inrange5346: store { ptr, i64, i64 } %t363, ptr %a365 %t366 = call i32 @finch_str_eq(ptr %a364, ptr %a365) %t367 = icmp ne i32 %t366, 0 - br label %logic.from5347 -logic.from5347: - br i1 %t367, label %logic.rhs5348, label %logic.end5349 -logic.rhs5348: + br label %logic.from5491 +logic.from5491: + br i1 %t367, label %logic.rhs5492, label %logic.end5493 +logic.rhs5492: %t368 = load ptr, ptr %a1 %t369 = icmp eq ptr %t368, null - br i1 %t369, label %panic5350, label %ok5351 -panic5350: - call void @finch_panic(ptr @.str.3408, i64 2618, ptr @.str.3409) + br i1 %t369, label %panic5494, label %ok5495 +panic5494: + call void @finch_panic(ptr @.str.3493, i64 2699, ptr @.str.3494) unreachable -ok5351: - %t370 = getelementptr inbounds %S.gen.Gen, ptr %t368, i32 0, i32 43 +ok5495: + %t370 = getelementptr inbounds %S.gen.Gen, ptr %t368, i32 0, i32 44 %t371 = load i1, ptr %t370 - br label %logic.from5352 -logic.from5352: - br i1 %t371, label %logic.rhs5353, label %logic.end5354 -logic.rhs5353: + br label %logic.from5496 +logic.from5496: + br i1 %t371, label %logic.rhs5497, label %logic.end5498 +logic.rhs5497: %t372 = load ptr, ptr %a1 %t373 = icmp eq ptr %t372, null - br i1 %t373, label %panic5355, label %ok5356 -panic5355: - call void @finch_panic(ptr @.str.3410, i64 2618, ptr @.str.3411) + br i1 %t373, label %panic5499, label %ok5500 +panic5499: + call void @finch_panic(ptr @.str.3495, i64 2699, ptr @.str.3496) unreachable -ok5356: +ok5500: %t374 = getelementptr inbounds %S.gen.Gen, ptr %t372, i32 0, i32 10 %t375 = load i64, ptr %a324 %t376 = load { ptr, i64, i64 }, ptr %t374 %t377 = extractvalue { ptr, i64, i64 } %t376, 1 %t378 = icmp uge i64 %t375, %t377 - br i1 %t378, label %range5357, label %inrange5358 -range5357: - call void @finch_panic_index(ptr @.str.3412, i64 2618, i64 %t375, i64 %t377) + br i1 %t378, label %range5501, label %inrange5502 +range5501: + call void @finch_panic_index(ptr @.str.3497, i64 2699, i64 %t375, i64 %t377) unreachable -inrange5358: +inrange5502: %t379 = extractvalue { ptr, i64, i64 } %t376, 0 %t380 = getelementptr inbounds %S.gen.Scope, ptr %t379, i64 %t375 %t381 = getelementptr inbounds %S.gen.Scope, ptr %t380, i32 0, i32 0 @@ -53955,72 +55603,72 @@ inrange5358: %t383 = load { ptr, i64, i64 }, ptr %t381 %t384 = extractvalue { ptr, i64, i64 } %t383, 1 %t385 = icmp uge i64 %t382, %t384 - br i1 %t385, label %range5359, label %inrange5360 -range5359: - call void @finch_panic_index(ptr @.str.3413, i64 2618, i64 %t382, i64 %t384) + br i1 %t385, label %range5503, label %inrange5504 +range5503: + call void @finch_panic_index(ptr @.str.3498, i64 2699, i64 %t382, i64 %t384) unreachable -inrange5360: +inrange5504: %t386 = extractvalue { ptr, i64, i64 } %t383, 0 %t387 = getelementptr inbounds %S.gen.Var, ptr %t386, i64 %t382 %t388 = getelementptr inbounds %S.gen.Var, ptr %t387, i32 0, i32 4 %t389 = load i64, ptr %t388 %t390 = load ptr, ptr %a1 %t391 = icmp eq ptr %t390, null - br i1 %t391, label %panic5361, label %ok5362 -panic5361: - call void @finch_panic(ptr @.str.3414, i64 2618, ptr @.str.3415) + br i1 %t391, label %panic5505, label %ok5506 +panic5505: + call void @finch_panic(ptr @.str.3499, i64 2699, ptr @.str.3500) unreachable -ok5362: - %t392 = getelementptr inbounds %S.gen.Gen, ptr %t390, i32 0, i32 44 +ok5506: + %t392 = getelementptr inbounds %S.gen.Gen, ptr %t390, i32 0, i32 45 %t393 = load i64, ptr %t392 %t394 = icmp sge i64 %t389, %t393 - br label %logic.rend5363 -logic.rend5363: - br label %logic.end5354 -logic.end5354: - %t395 = phi i1 [ false, %logic.from5352 ], [ %t394, %logic.rend5363 ] + br label %logic.rend5507 +logic.rend5507: + br label %logic.end5498 +logic.end5498: + %t395 = phi i1 [ false, %logic.from5496 ], [ %t394, %logic.rend5507 ] %t396 = xor i1 %t395, true - br label %logic.rend5364 -logic.rend5364: - br label %logic.end5349 -logic.end5349: - %t397 = phi i1 [ false, %logic.from5347 ], [ %t396, %logic.rend5364 ] - br i1 %t397, label %then5365, label %endif5367 -then5365: + br label %logic.rend5508 +logic.rend5508: + br label %logic.end5493 +logic.end5493: + %t397 = phi i1 [ false, %logic.from5491 ], [ %t396, %logic.rend5508 ] + br i1 %t397, label %then5509, label %endif5511 +then5509: %t398 = load i64, ptr %a342 store i64 %t398, ptr %a329 - br label %endif5367 -endif5367: - br label %for.step5339 -for.step5339: + br label %endif5511 +endif5511: + br label %for.step5483 +for.step5483: %t399 = load i64, ptr %a342 %t400 = add i64 %t399, 1 store i64 %t400, ptr %a342 - br label %for.cond5337 -for.end5340: + br label %for.cond5481 +for.end5484: %t401 = load i64, ptr %a329 %t402 = icmp slt i64 %t401, 0 - br i1 %t402, label %then5368, label %endif5370 -then5368: - br label %while.cond5330 -endif5370: + br i1 %t402, label %then5512, label %endif5514 +then5512: + br label %while.cond5474 +endif5514: %t403 = load ptr, ptr %a1 %t404 = icmp eq ptr %t403, null - br i1 %t404, label %panic5371, label %ok5372 -panic5371: - call void @finch_panic(ptr @.str.3416, i64 2625, ptr @.str.3417) + br i1 %t404, label %panic5515, label %ok5516 +panic5515: + call void @finch_panic(ptr @.str.3501, i64 2706, ptr @.str.3502) unreachable -ok5372: +ok5516: %t405 = getelementptr inbounds %S.gen.Gen, ptr %t403, i32 0, i32 10 %t406 = load i64, ptr %a324 %t407 = load { ptr, i64, i64 }, ptr %t405 %t408 = extractvalue { ptr, i64, i64 } %t407, 1 %t409 = icmp uge i64 %t406, %t408 - br i1 %t409, label %range5373, label %inrange5374 -range5373: - call void @finch_panic_index(ptr @.str.3418, i64 2625, i64 %t406, i64 %t408) + br i1 %t409, label %range5517, label %inrange5518 +range5517: + call void @finch_panic_index(ptr @.str.3503, i64 2706, i64 %t406, i64 %t408) unreachable -inrange5374: +inrange5518: %t410 = extractvalue { ptr, i64, i64 } %t407, 0 %t411 = getelementptr inbounds %S.gen.Scope, ptr %t410, i64 %t406 %t412 = getelementptr inbounds %S.gen.Scope, ptr %t411, i32 0, i32 0 @@ -54028,11 +55676,11 @@ inrange5374: %t414 = load { ptr, i64, i64 }, ptr %t412 %t415 = extractvalue { ptr, i64, i64 } %t414, 1 %t416 = icmp uge i64 %t413, %t415 - br i1 %t416, label %range5375, label %inrange5376 -range5375: - call void @finch_panic_index(ptr @.str.3419, i64 2625, i64 %t413, i64 %t415) + br i1 %t416, label %range5519, label %inrange5520 +range5519: + call void @finch_panic_index(ptr @.str.3504, i64 2706, i64 %t413, i64 %t415) unreachable -inrange5376: +inrange5520: %t417 = extractvalue { ptr, i64, i64 } %t414, 0 %t418 = getelementptr inbounds %S.gen.Var, ptr %t417, i64 %t413 %t419 = load %S.gen.Var, ptr %t418 @@ -54042,30 +55690,30 @@ inrange5376: store %S.gen.Var %t422, ptr %a423 %t424 = getelementptr inbounds %S.gen.Var, ptr %a423, i32 0, i32 5 %t425 = load i1, ptr %t424 - br label %logic.from5377 -logic.from5377: - br i1 %t425, label %logic.rhs5378, label %logic.end5379 -logic.rhs5378: + br label %logic.from5521 +logic.from5521: + br i1 %t425, label %logic.rhs5522, label %logic.end5523 +logic.rhs5522: %t426 = getelementptr inbounds %S.gen.Var, ptr %a423, i32 0, i32 1 %t427 = load %S.ast.Type, ptr %t426 %t428 = load ptr, ptr %a1 %t429 = icmp eq ptr %t428, null - br i1 %t429, label %panic5380, label %ok5381 -panic5380: - call void @finch_panic(ptr @.str.3420, i64 2626, ptr @.str.3421) + br i1 %t429, label %panic5524, label %ok5525 +panic5524: + call void @finch_panic(ptr @.str.3505, i64 2707, ptr @.str.3506) unreachable -ok5381: +ok5525: %t430 = getelementptr inbounds %S.gen.Gen, ptr %t428, i32 0, i32 13 %t431 = getelementptr inbounds %S.gen.FnSig, ptr %t430, i32 0, i32 12 %t432 = load %S.ast.Type, ptr %t431 %t433 = call i1 @finch.ast.same(%S.ast.Type %t427, %S.ast.Type %t432) - br label %logic.rend5382 -logic.rend5382: - br label %logic.end5379 -logic.end5379: - %t434 = phi i1 [ false, %logic.from5377 ], [ %t433, %logic.rend5382 ] - br i1 %t434, label %then5383, label %endif5385 -then5383: + br label %logic.rend5526 +logic.rend5526: + br label %logic.end5523 +logic.end5523: + %t434 = phi i1 [ false, %logic.from5521 ], [ %t433, %logic.rend5526 ] + br i1 %t434, label %then5527, label %endif5529 +then5527: %t435 = load ptr, ptr %a1 %t436 = load ptr, ptr %a1 %t437 = getelementptr inbounds %S.gen.Var, ptr %a423, i32 0, i32 1 @@ -54079,21 +55727,21 @@ then5383: store { ptr, i64, i64 } %t442, ptr %a444 %t445 = load ptr, ptr %a1 %t446 = icmp eq ptr %t445, null - br i1 %t446, label %panic5386, label %ok5387 -panic5386: - call void @finch_panic(ptr @.str.3422, i64 2628, ptr @.str.3423) + br i1 %t446, label %panic5530, label %ok5531 +panic5530: + call void @finch_panic(ptr @.str.3507, i64 2709, ptr @.str.3508) unreachable -ok5387: +ok5531: %t447 = getelementptr inbounds %S.gen.Gen, ptr %t445, i32 0, i32 10 %t448 = load i64, ptr %a324 %t449 = load { ptr, i64, i64 }, ptr %t447 %t450 = extractvalue { ptr, i64, i64 } %t449, 1 %t451 = icmp uge i64 %t448, %t450 - br i1 %t451, label %range5388, label %inrange5389 -range5388: - call void @finch_panic_index(ptr @.str.3424, i64 2628, i64 %t448, i64 %t450) + br i1 %t451, label %range5532, label %inrange5533 +range5532: + call void @finch_panic_index(ptr @.str.3509, i64 2709, i64 %t448, i64 %t450) unreachable -inrange5389: +inrange5533: %t452 = extractvalue { ptr, i64, i64 } %t449, 0 %t453 = getelementptr inbounds %S.gen.Scope, ptr %t452, i64 %t448 %t454 = getelementptr inbounds %S.gen.Scope, ptr %t453, i32 0, i32 0 @@ -54101,11 +55749,11 @@ inrange5389: %t456 = load { ptr, i64, i64 }, ptr %t454 %t457 = extractvalue { ptr, i64, i64 } %t456, 1 %t458 = icmp uge i64 %t455, %t457 - br i1 %t458, label %range5390, label %inrange5391 -range5390: - call void @finch_panic_index(ptr @.str.3425, i64 2628, i64 %t455, i64 %t457) + br i1 %t458, label %range5534, label %inrange5535 +range5534: + call void @finch_panic_index(ptr @.str.3510, i64 2709, i64 %t455, i64 %t457) unreachable -inrange5391: +inrange5535: %t459 = extractvalue { ptr, i64, i64 } %t456, 0 %t460 = getelementptr inbounds %S.gen.Var, ptr %t459, i64 %t455 %t461 = getelementptr inbounds %S.gen.Var, ptr %t460, i32 0, i32 6 @@ -54116,21 +55764,21 @@ inrange5391: call void @finch.gen.unwind(ptr %t463, i64 0) %t464 = load ptr, ptr %a1 %t465 = icmp eq ptr %t464, null - br i1 %t465, label %panic5392, label %ok5393 -panic5392: - call void @finch_panic(ptr @.str.3426, i64 2631, ptr @.str.3427) + br i1 %t465, label %panic5536, label %ok5537 +panic5536: + call void @finch_panic(ptr @.str.3511, i64 2712, ptr @.str.3512) unreachable -ok5393: +ok5537: %t466 = getelementptr inbounds %S.gen.Gen, ptr %t464, i32 0, i32 10 %t467 = load i64, ptr %a324 %t468 = load { ptr, i64, i64 }, ptr %t466 %t469 = extractvalue { ptr, i64, i64 } %t468, 1 %t470 = icmp uge i64 %t467, %t469 - br i1 %t470, label %range5394, label %inrange5395 -range5394: - call void @finch_panic_index(ptr @.str.3428, i64 2631, i64 %t467, i64 %t469) + br i1 %t470, label %range5538, label %inrange5539 +range5538: + call void @finch_panic_index(ptr @.str.3513, i64 2712, i64 %t467, i64 %t469) unreachable -inrange5395: +inrange5539: %t471 = extractvalue { ptr, i64, i64 } %t468, 0 %t472 = getelementptr inbounds %S.gen.Scope, ptr %t471, i64 %t467 %t473 = getelementptr inbounds %S.gen.Scope, ptr %t472, i32 0, i32 0 @@ -54138,11 +55786,11 @@ inrange5395: %t475 = load { ptr, i64, i64 }, ptr %t473 %t476 = extractvalue { ptr, i64, i64 } %t475, 1 %t477 = icmp uge i64 %t474, %t476 - br i1 %t477, label %range5396, label %inrange5397 -range5396: - call void @finch_panic_index(ptr @.str.3429, i64 2631, i64 %t474, i64 %t476) + br i1 %t477, label %range5540, label %inrange5541 +range5540: + call void @finch_panic_index(ptr @.str.3514, i64 2712, i64 %t474, i64 %t476) unreachable -inrange5397: +inrange5541: %t478 = extractvalue { ptr, i64, i64 } %t475, 0 %t479 = getelementptr inbounds %S.gen.Var, ptr %t478, i64 %t474 %t480 = getelementptr inbounds %S.gen.Var, ptr %t479, i32 0, i32 6 @@ -54154,45 +55802,45 @@ inrange5397: call void @finch.drop.S_gen_Var(ptr %a423) call void @finch_str_drop(ptr %a318) ret void -endif5385: +endif5529: call void @finch.drop.S_gen_Var(ptr %a423) - br label %while.end5332 -while.end5332: + br label %while.end5476 +while.end5476: call void @finch_str_drop(ptr %a318) - br label %endif5325 -endif5325: + br label %endif5469 +endif5469: %t483 = load ptr, ptr %a1 %t484 = load ptr, ptr %a1 %t485 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t486 = load { ptr, i64, i64 }, ptr %t485 %t487 = extractvalue { ptr, i64, i64 } %t486, 1 %t488 = icmp uge i64 0, %t487 - br i1 %t488, label %range5398, label %inrange5399 -range5398: - call void @finch_panic_index(ptr @.str.3430, i64 2638, i64 0, i64 %t487) + br i1 %t488, label %range5542, label %inrange5543 +range5542: + call void @finch_panic_index(ptr @.str.3515, i64 2719, i64 0, i64 %t487) unreachable -inrange5399: +inrange5543: %t489 = extractvalue { ptr, i64, i64 } %t486, 0 %t490 = getelementptr inbounds %S.ast.Node, ptr %t489, i64 0 %t491 = load %S.ast.Node, ptr %t490 %t492 = load ptr, ptr %a1 %t493 = icmp eq ptr %t492, null - br i1 %t493, label %panic5400, label %ok5401 -panic5400: - call void @finch_panic(ptr @.str.3431, i64 2638, ptr @.str.3432) + br i1 %t493, label %panic5544, label %ok5545 +panic5544: + call void @finch_panic(ptr @.str.3516, i64 2719, ptr @.str.3517) unreachable -ok5401: +ok5545: %t494 = getelementptr inbounds %S.gen.Gen, ptr %t492, i32 0, i32 13 %t495 = getelementptr inbounds %S.gen.FnSig, ptr %t494, i32 0, i32 12 %t496 = load %S.ast.Type, ptr %t495 %t497 = call %S.gen.Val @finch.gen.exprWant(ptr %t484, %S.ast.Node %t491, %S.ast.Type %t496) %t498 = load ptr, ptr %a1 %t499 = icmp eq ptr %t498, null - br i1 %t499, label %panic5402, label %ok5403 -panic5402: - call void @finch_panic(ptr @.str.3433, i64 2638, ptr @.str.3434) + br i1 %t499, label %panic5546, label %ok5547 +panic5546: + call void @finch_panic(ptr @.str.3518, i64 2719, ptr @.str.3519) unreachable -ok5403: +ok5547: %t500 = getelementptr inbounds %S.gen.Gen, ptr %t498, i32 0, i32 13 %t501 = getelementptr inbounds %S.gen.FnSig, ptr %t500, i32 0, i32 12 %t502 = load %S.ast.Type, ptr %t501 @@ -54200,15 +55848,15 @@ ok5403: %t504 = load { ptr, i64, i64 }, ptr %t503 %t505 = extractvalue { ptr, i64, i64 } %t504, 1 %t506 = icmp uge i64 0, %t505 - br i1 %t506, label %range5404, label %inrange5405 -range5404: - call void @finch_panic_index(ptr @.str.3435, i64 2638, i64 0, i64 %t505) + br i1 %t506, label %range5548, label %inrange5549 +range5548: + call void @finch_panic_index(ptr @.str.3520, i64 2719, i64 0, i64 %t505) unreachable -inrange5405: +inrange5549: %t507 = extractvalue { ptr, i64, i64 } %t504, 0 %t508 = getelementptr inbounds %S.ast.Node, ptr %t507, i64 0 %t509 = load %S.ast.Node, ptr %t508 - %t510 = call %S.gen.Val @finch.gen.coerce(ptr %t483, %S.gen.Val %t497, %S.ast.Type %t502, %S.ast.Node %t509, { ptr, i64, i64 } { ptr @.str.3436, i64 18, i64 0 }) + %t510 = call %S.gen.Val @finch.gen.coerce(ptr %t483, %S.gen.Val %t497, %S.ast.Type %t502, %S.ast.Node %t509, { ptr, i64, i64 } { ptr @.str.3521, i64 18, i64 0 }) store %S.gen.Val %t497, ptr %a511 call void @finch.drop.S_gen_Val(ptr %a511) store %S.gen.Val %t510, ptr %a512 @@ -54307,36 +55955,36 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic5406, label %ok5407 -panic5406: - call void @finch_panic(ptr @.str.3437, i64 2646, ptr @.str.3438) + br i1 %t4, label %panic5550, label %ok5551 +panic5550: + call void @finch_panic(ptr @.str.3522, i64 2727, ptr @.str.3523) unreachable -ok5407: +ok5551: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 13 %t6 = getelementptr inbounds %S.gen.FnSig, ptr %t5, i32 0, i32 9 %t7 = load i1, ptr %t6 - br i1 %t7, label %then5408, label %else5409 -then5408: + br i1 %t7, label %then5552, label %else5553 +then5552: %t8 = load ptr, ptr %a1 %t9 = load ptr, ptr %a1 %t10 = load ptr, ptr %a1 %t11 = icmp eq ptr %t10, null - br i1 %t11, label %panic5411, label %ok5412 -panic5411: - call void @finch_panic(ptr @.str.3440, i64 2647, ptr @.str.3441) + br i1 %t11, label %panic5555, label %ok5556 +panic5555: + call void @finch_panic(ptr @.str.3525, i64 2728, ptr @.str.3526) unreachable -ok5412: +ok5556: %t12 = getelementptr inbounds %S.gen.Gen, ptr %t10, i32 0, i32 13 %t13 = load %S.gen.FnSig, ptr %t12 %t14 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t9, %S.gen.FnSig %t13) - store { ptr, i64, i64 } { ptr @.str.3439, i64 12, i64 0 }, ptr %a16 + store { ptr, i64, i64 } { ptr @.str.3524, i64 12, i64 0 }, ptr %a16 store { ptr, i64, i64 } %t14, ptr %a17 call void @finch_str_concat(ptr %a15, ptr %a16, ptr %a17) store { ptr, i64, i64 } %t14, ptr %a18 call void @finch_str_drop(ptr %a18) %t19 = load { ptr, i64, i64 }, ptr %a15 store { ptr, i64, i64 } %t19, ptr %a21 - store { ptr, i64, i64 } { ptr @.str.3442, i64 28, i64 0 }, ptr %a22 + store { ptr, i64, i64 } { ptr @.str.3527, i64 28, i64 0 }, ptr %a22 call void @finch_str_concat(ptr %a20, ptr %a21, ptr %a22) store { ptr, i64, i64 } %t19, ptr %a23 call void @finch_str_drop(ptr %a23) @@ -54349,22 +55997,22 @@ ok5412: %t29 = load ptr, ptr %a1 %t30 = load ptr, ptr %a1 %t31 = icmp eq ptr %t30, null - br i1 %t31, label %panic5413, label %ok5414 -panic5413: - call void @finch_panic(ptr @.str.3444, i64 2648, ptr @.str.3445) + br i1 %t31, label %panic5557, label %ok5558 +panic5557: + call void @finch_panic(ptr @.str.3529, i64 2729, ptr @.str.3530) unreachable -ok5414: +ok5558: %t32 = getelementptr inbounds %S.gen.Gen, ptr %t30, i32 0, i32 13 %t33 = load %S.gen.FnSig, ptr %t32 %t34 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t29, %S.gen.FnSig %t33) - store { ptr, i64, i64 } { ptr @.str.3443, i64 12, i64 0 }, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.3528, i64 12, i64 0 }, ptr %a36 store { ptr, i64, i64 } %t34, ptr %a37 call void @finch_str_concat(ptr %a35, ptr %a36, ptr %a37) store { ptr, i64, i64 } %t34, ptr %a38 call void @finch_str_drop(ptr %a38) %t39 = load { ptr, i64, i64 }, ptr %a35 store { ptr, i64, i64 } %t39, ptr %a41 - store { ptr, i64, i64 } { ptr @.str.3446, i64 1, i64 0 }, ptr %a42 + store { ptr, i64, i64 } { ptr @.str.3531, i64 1, i64 0 }, ptr %a42 call void @finch_str_concat(ptr %a40, ptr %a41, ptr %a42) store { ptr, i64, i64 } %t39, ptr %a43 call void @finch_str_drop(ptr %a43) @@ -54377,7 +56025,7 @@ ok5414: call void @finch_str_drop(ptr %a49) %t50 = load { ptr, i64, i64 }, ptr %a46 store { ptr, i64, i64 } %t50, ptr %a52 - store { ptr, i64, i64 } { ptr @.str.3447, i64 2, i64 0 }, ptr %a53 + store { ptr, i64, i64 } { ptr @.str.3532, i64 2, i64 0 }, ptr %a53 call void @finch_str_concat(ptr %a51, ptr %a52, ptr %a53) store { ptr, i64, i64 } %t50, ptr %a54 call void @finch_str_drop(ptr %a54) @@ -54385,11 +56033,11 @@ ok5414: %t56 = load ptr, ptr %a1 %t57 = load ptr, ptr %a1 %t58 = icmp eq ptr %t57, null - br i1 %t58, label %panic5415, label %ok5416 -panic5415: - call void @finch_panic(ptr @.str.3448, i64 2648, ptr @.str.3449) + br i1 %t58, label %panic5559, label %ok5560 +panic5559: + call void @finch_panic(ptr @.str.3533, i64 2729, ptr @.str.3534) unreachable -ok5416: +ok5560: %t59 = getelementptr inbounds %S.gen.Gen, ptr %t57, i32 0, i32 13 %t60 = getelementptr inbounds %S.gen.FnSig, ptr %t59, i32 0, i32 12 %t61 = load %S.ast.Type, ptr %t60 @@ -54403,7 +56051,7 @@ ok5416: call void @finch_str_drop(ptr %a67) %t68 = load { ptr, i64, i64 }, ptr %a63 store { ptr, i64, i64 } %t68, ptr %a70 - store { ptr, i64, i64 } { ptr @.str.3450, i64 1, i64 0 }, ptr %a71 + store { ptr, i64, i64 } { ptr @.str.3535, i64 1, i64 0 }, ptr %a71 call void @finch_str_concat(ptr %a69, ptr %a70, ptr %a71) store { ptr, i64, i64 } %t68, ptr %a72 call void @finch_str_drop(ptr %a72) @@ -54416,7 +56064,7 @@ ok5416: call void @finch_str_drop(ptr %a78) %t79 = load { ptr, i64, i64 }, ptr %a75 store { ptr, i64, i64 } %t79, ptr %a81 - store { ptr, i64, i64 } { ptr @.str.3451, i64 3, i64 0 }, ptr %a82 + store { ptr, i64, i64 } { ptr @.str.3536, i64 3, i64 0 }, ptr %a82 call void @finch_str_concat(ptr %a80, ptr %a81, ptr %a82) store { ptr, i64, i64 } %t79, ptr %a83 call void @finch_str_drop(ptr %a83) @@ -54429,22 +56077,22 @@ ok5416: %t89 = load ptr, ptr %a1 %t90 = load ptr, ptr %a1 %t91 = icmp eq ptr %t90, null - br i1 %t91, label %panic5417, label %ok5418 -panic5417: - call void @finch_panic(ptr @.str.3453, i64 2649, ptr @.str.3454) + br i1 %t91, label %panic5561, label %ok5562 +panic5561: + call void @finch_panic(ptr @.str.3538, i64 2730, ptr @.str.3539) unreachable -ok5418: +ok5562: %t92 = getelementptr inbounds %S.gen.Gen, ptr %t90, i32 0, i32 13 %t93 = load %S.gen.FnSig, ptr %t92 %t94 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t89, %S.gen.FnSig %t93) - store { ptr, i64, i64 } { ptr @.str.3452, i64 4, i64 0 }, ptr %a96 + store { ptr, i64, i64 } { ptr @.str.3537, i64 4, i64 0 }, ptr %a96 store { ptr, i64, i64 } %t94, ptr %a97 call void @finch_str_concat(ptr %a95, ptr %a96, ptr %a97) store { ptr, i64, i64 } %t94, ptr %a98 call void @finch_str_drop(ptr %a98) %t99 = load { ptr, i64, i64 }, ptr %a95 store { ptr, i64, i64 } %t99, ptr %a101 - store { ptr, i64, i64 } { ptr @.str.3455, i64 1, i64 0 }, ptr %a102 + store { ptr, i64, i64 } { ptr @.str.3540, i64 1, i64 0 }, ptr %a102 call void @finch_str_concat(ptr %a100, ptr %a101, ptr %a102) store { ptr, i64, i64 } %t99, ptr %a103 call void @finch_str_drop(ptr %a103) @@ -54461,29 +56109,29 @@ ok5418: call void @finch_str_drop(ptr %a111) call void @finch_str_drop(ptr %a87) call void @finch_str_drop(ptr %a27) - br label %endif5410 -else5409: + br label %endif5554 +else5553: %t112 = load ptr, ptr %a1 %t113 = load ptr, ptr %a1 %t114 = load ptr, ptr %a1 %t115 = icmp eq ptr %t114, null - br i1 %t115, label %panic5419, label %ok5420 -panic5419: - call void @finch_panic(ptr @.str.3457, i64 2651, ptr @.str.3458) + br i1 %t115, label %panic5563, label %ok5564 +panic5563: + call void @finch_panic(ptr @.str.3542, i64 2732, ptr @.str.3543) unreachable -ok5420: +ok5564: %t116 = getelementptr inbounds %S.gen.Gen, ptr %t114, i32 0, i32 13 %t117 = getelementptr inbounds %S.gen.FnSig, ptr %t116, i32 0, i32 12 %t118 = load %S.ast.Type, ptr %t117 %t119 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t113, %S.ast.Type %t118) - store { ptr, i64, i64 } { ptr @.str.3456, i64 4, i64 0 }, ptr %a121 + store { ptr, i64, i64 } { ptr @.str.3541, i64 4, i64 0 }, ptr %a121 store { ptr, i64, i64 } %t119, ptr %a122 call void @finch_str_concat(ptr %a120, ptr %a121, ptr %a122) store { ptr, i64, i64 } %t119, ptr %a123 call void @finch_str_drop(ptr %a123) %t124 = load { ptr, i64, i64 }, ptr %a120 store { ptr, i64, i64 } %t124, ptr %a126 - store { ptr, i64, i64 } { ptr @.str.3459, i64 1, i64 0 }, ptr %a127 + store { ptr, i64, i64 } { ptr @.str.3544, i64 1, i64 0 }, ptr %a127 call void @finch_str_concat(ptr %a125, ptr %a126, ptr %a127) store { ptr, i64, i64 } %t124, ptr %a128 call void @finch_str_drop(ptr %a128) @@ -54498,15 +56146,15 @@ ok5420: call void @finch.gen.emit(ptr %t112, { ptr, i64, i64 } %t135) store { ptr, i64, i64 } %t135, ptr %a136 call void @finch_str_drop(ptr %a136) - br label %endif5410 -endif5410: + br label %endif5554 +endif5554: %t137 = load ptr, ptr %a1 %t138 = icmp eq ptr %t137, null - br i1 %t138, label %panic5421, label %ok5422 -panic5421: - call void @finch_panic(ptr @.str.3460, i64 2653, ptr @.str.3461) + br i1 %t138, label %panic5565, label %ok5566 +panic5565: + call void @finch_panic(ptr @.str.3545, i64 2734, ptr @.str.3546) unreachable -ok5422: +ok5566: %t139 = getelementptr inbounds %S.gen.Gen, ptr %t137, i32 0, i32 9 store i1 true, ptr %t139 ret void @@ -54540,23 +56188,23 @@ entry: %t5 = load { ptr, i64, i64 }, ptr %t4 %t6 = extractvalue { ptr, i64, i64 } %t5, 1 %t7 = icmp uge i64 0, %t6 - br i1 %t7, label %range5423, label %inrange5424 -range5423: - call void @finch_panic_index(ptr @.str.3463, i64 2665, i64 0, i64 %t6) + br i1 %t7, label %range5567, label %inrange5568 +range5567: + call void @finch_panic_index(ptr @.str.3548, i64 2746, i64 0, i64 %t6) unreachable -inrange5424: +inrange5568: %t8 = extractvalue { ptr, i64, i64 } %t5, 0 %t9 = getelementptr inbounds %S.ast.Type, ptr %t8, i64 0 %t10 = load %S.ast.Type, ptr %t9 %t11 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t3, %S.ast.Type %t10) - store { ptr, i64, i64 } { ptr @.str.3462, i64 7, i64 0 }, ptr %a13 + store { ptr, i64, i64 } { ptr @.str.3547, i64 7, i64 0 }, ptr %a13 store { ptr, i64, i64 } %t11, ptr %a14 call void @finch_str_concat(ptr %a12, ptr %a13, ptr %a14) store { ptr, i64, i64 } %t11, ptr %a15 call void @finch_str_drop(ptr %a15) %t16 = load { ptr, i64, i64 }, ptr %a12 store { ptr, i64, i64 } %t16, ptr %a18 - store { ptr, i64, i64 } { ptr @.str.3464, i64 2, i64 0 }, ptr %a19 + store { ptr, i64, i64 } { ptr @.str.3549, i64 2, i64 0 }, ptr %a19 call void @finch_str_concat(ptr %a17, ptr %a18, ptr %a19) store { ptr, i64, i64 } %t16, ptr %a20 call void @finch_str_drop(ptr %a20) @@ -54566,11 +56214,11 @@ inrange5424: %t24 = load { ptr, i64, i64 }, ptr %t23 %t25 = extractvalue { ptr, i64, i64 } %t24, 1 %t26 = icmp uge i64 1, %t25 - br i1 %t26, label %range5425, label %inrange5426 -range5425: - call void @finch_panic_index(ptr @.str.3465, i64 2665, i64 1, i64 %t25) + br i1 %t26, label %range5569, label %inrange5570 +range5569: + call void @finch_panic_index(ptr @.str.3550, i64 2746, i64 1, i64 %t25) unreachable -inrange5426: +inrange5570: %t27 = extractvalue { ptr, i64, i64 } %t24, 0 %t28 = getelementptr inbounds %S.ast.Type, ptr %t27, i64 1 %t29 = load %S.ast.Type, ptr %t28 @@ -54584,7 +56232,7 @@ inrange5426: call void @finch_str_drop(ptr %a35) %t36 = load { ptr, i64, i64 }, ptr %a31 store { ptr, i64, i64 } %t36, ptr %a38 - store { ptr, i64, i64 } { ptr @.str.3466, i64 2, i64 0 }, ptr %a39 + store { ptr, i64, i64 } { ptr @.str.3551, i64 2, i64 0 }, ptr %a39 call void @finch_str_concat(ptr %a37, ptr %a38, ptr %a39) store { ptr, i64, i64 } %t36, ptr %a40 call void @finch_str_drop(ptr %a40) @@ -54609,14 +56257,14 @@ entry: %t3 = load ptr, ptr %a1 %t4 = load %S.ast.Type, ptr %a2 %t5 = call { ptr, i64, i64 } @finch.gen.entryTy(ptr %t3, %S.ast.Type %t4) - store { ptr, i64, i64 } { ptr @.str.3467, i64 29, i64 0 }, ptr %a7 + store { ptr, i64, i64 } { ptr @.str.3552, i64 29, i64 0 }, ptr %a7 store { ptr, i64, i64 } %t5, ptr %a8 call void @finch_str_concat(ptr %a6, ptr %a7, ptr %a8) store { ptr, i64, i64 } %t5, ptr %a9 call void @finch_str_drop(ptr %a9) %t10 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t10, ptr %a12 - store { ptr, i64, i64 } { ptr @.str.3468, i64 26, i64 0 }, ptr %a13 + store { ptr, i64, i64 } { ptr @.str.3553, i64 26, i64 0 }, ptr %a13 call void @finch_str_concat(ptr %a11, ptr %a12, ptr %a13) store { ptr, i64, i64 } %t10, ptr %a14 call void @finch_str_drop(ptr %a14) @@ -54679,14 +56327,14 @@ entry: %t7 = load ptr, ptr %a1 %t8 = load %S.ast.Type, ptr %a3 %t9 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t7, %S.ast.Type %t8) - store { ptr, i64, i64 } { ptr @.str.3470, i64 23, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.3555, i64 23, i64 0 }, ptr %a11 store { ptr, i64, i64 } %t9, ptr %a12 call void @finch_str_concat(ptr %a10, ptr %a11, ptr %a12) store { ptr, i64, i64 } %t9, ptr %a13 call void @finch_str_drop(ptr %a13) %t14 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t14, ptr %a16 - store { ptr, i64, i64 } { ptr @.str.3471, i64 6, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.3556, i64 6, i64 0 }, ptr %a17 call void @finch_str_concat(ptr %a15, ptr %a16, ptr %a17) store { ptr, i64, i64 } %t14, ptr %a18 call void @finch_str_drop(ptr %a18) @@ -54699,7 +56347,7 @@ entry: call void @finch_str_drop(ptr %a24) %t25 = load { ptr, i64, i64 }, ptr %a21 store { ptr, i64, i64 } %t25, ptr %a27 - store { ptr, i64, i64 } { ptr @.str.3472, i64 14, i64 0 }, ptr %a28 + store { ptr, i64, i64 } { ptr @.str.3557, i64 14, i64 0 }, ptr %a28 call void @finch_str_concat(ptr %a26, ptr %a27, ptr %a28) store { ptr, i64, i64 } %t25, ptr %a29 call void @finch_str_drop(ptr %a29) @@ -54707,7 +56355,7 @@ entry: %t31 = call { ptr, i64, i64 } @finch.gen.op(ptr %t6, { ptr, i64, i64 } %t30) store { ptr, i64, i64 } %t30, ptr %a32 call void @finch_str_drop(ptr %a32) - %t33 = call { ptr, i64, i64 } @finch.gen.load(ptr %t5, { ptr, i64, i64 } { ptr @.str.3469, i64 3, i64 0 }, { ptr, i64, i64 } %t31) + %t33 = call { ptr, i64, i64 } @finch.gen.load(ptr %t5, { ptr, i64, i64 } { ptr @.str.3554, i64 3, i64 0 }, { ptr, i64, i64 } %t31) store { ptr, i64, i64 } %t31, ptr %a34 call void @finch_str_drop(ptr %a34) store { ptr, i64, i64 } %t33, ptr %a35 @@ -54715,14 +56363,14 @@ entry: %t37 = load ptr, ptr %a1 %t38 = load %S.ast.Type, ptr %a3 %t39 = call { ptr, i64, i64 } @finch.gen.entryTy(ptr %t37, %S.ast.Type %t38) - store { ptr, i64, i64 } { ptr @.str.3473, i64 23, i64 0 }, ptr %a41 + store { ptr, i64, i64 } { ptr @.str.3558, i64 23, i64 0 }, ptr %a41 store { ptr, i64, i64 } %t39, ptr %a42 call void @finch_str_concat(ptr %a40, ptr %a41, ptr %a42) store { ptr, i64, i64 } %t39, ptr %a43 call void @finch_str_drop(ptr %a43) %t44 = load { ptr, i64, i64 }, ptr %a40 store { ptr, i64, i64 } %t44, ptr %a46 - store { ptr, i64, i64 } { ptr @.str.3474, i64 6, i64 0 }, ptr %a47 + store { ptr, i64, i64 } { ptr @.str.3559, i64 6, i64 0 }, ptr %a47 call void @finch_str_concat(ptr %a45, ptr %a46, ptr %a47) store { ptr, i64, i64 } %t44, ptr %a48 call void @finch_str_drop(ptr %a48) @@ -54735,7 +56383,7 @@ entry: call void @finch_str_drop(ptr %a54) %t55 = load { ptr, i64, i64 }, ptr %a51 store { ptr, i64, i64 } %t55, ptr %a57 - store { ptr, i64, i64 } { ptr @.str.3475, i64 6, i64 0 }, ptr %a58 + store { ptr, i64, i64 } { ptr @.str.3560, i64 6, i64 0 }, ptr %a58 call void @finch_str_concat(ptr %a56, ptr %a57, ptr %a58) store { ptr, i64, i64 } %t55, ptr %a59 call void @finch_str_drop(ptr %a59) @@ -54791,14 +56439,14 @@ entry: %t6 = load ptr, ptr %a1 %t7 = load %S.ast.Type, ptr %a3 %t8 = call { ptr, i64, i64 } @finch.gen.entryTy(ptr %t6, %S.ast.Type %t7) - store { ptr, i64, i64 } { ptr @.str.3476, i64 23, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.3561, i64 23, i64 0 }, ptr %a10 store { ptr, i64, i64 } %t8, ptr %a11 call void @finch_str_concat(ptr %a9, ptr %a10, ptr %a11) store { ptr, i64, i64 } %t8, ptr %a12 call void @finch_str_drop(ptr %a12) %t13 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t13, ptr %a15 - store { ptr, i64, i64 } { ptr @.str.3477, i64 6, i64 0 }, ptr %a16 + store { ptr, i64, i64 } { ptr @.str.3562, i64 6, i64 0 }, ptr %a16 call void @finch_str_concat(ptr %a14, ptr %a15, ptr %a16) store { ptr, i64, i64 } %t13, ptr %a17 call void @finch_str_drop(ptr %a17) @@ -54811,7 +56459,7 @@ entry: call void @finch_str_drop(ptr %a23) %t24 = load { ptr, i64, i64 }, ptr %a20 store { ptr, i64, i64 } %t24, ptr %a26 - store { ptr, i64, i64 } { ptr @.str.3478, i64 13, i64 0 }, ptr %a27 + store { ptr, i64, i64 } { ptr @.str.3563, i64 13, i64 0 }, ptr %a27 call void @finch_str_concat(ptr %a25, ptr %a26, ptr %a27) store { ptr, i64, i64 } %t24, ptr %a28 call void @finch_str_drop(ptr %a28) @@ -54884,39 +56532,39 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 store { ptr, i64, i64 } %p2, ptr %a3 store %S.ast.Type %p3, ptr %a4 - store { ptr, i64, i64 } { ptr @.str.3479, i64 1, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.3564, i64 1, i64 0 }, ptr %a5 %t6 = getelementptr inbounds %S.ast.Type, ptr %a4, i32 0, i32 1 %t7 = load { ptr, i64, i64 }, ptr %t6 %t8 = extractvalue { ptr, i64, i64 } %t7, 1 %t9 = icmp uge i64 0, %t8 - br i1 %t9, label %range5427, label %inrange5428 -range5427: - call void @finch_panic_index(ptr @.str.3480, i64 2685, i64 0, i64 %t8) + br i1 %t9, label %range5571, label %inrange5572 +range5571: + call void @finch_panic_index(ptr @.str.3565, i64 2766, i64 0, i64 %t8) unreachable -inrange5428: +inrange5572: %t10 = extractvalue { ptr, i64, i64 } %t7, 0 %t11 = getelementptr inbounds %S.ast.Type, ptr %t10, i64 0 %t12 = getelementptr inbounds %S.ast.Type, ptr %t11, i32 0, i32 0 %t13 = load { ptr, i64, i64 }, ptr %t12 store { ptr, i64, i64 } %t13, ptr %a14 - store { ptr, i64, i64 } { ptr @.str.3481, i64 3, i64 0 }, ptr %a15 + store { ptr, i64, i64 } { ptr @.str.3566, i64 3, i64 0 }, ptr %a15 %t16 = call i32 @finch_str_eq(ptr %a14, ptr %a15) %t17 = icmp ne i32 %t16, 0 - br i1 %t17, label %then5429, label %endif5431 -then5429: + br i1 %t17, label %then5573, label %endif5575 +then5573: %t18 = load { ptr, i64, i64 }, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.3482, i64 1, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.3567, i64 1, i64 0 }, ptr %a5 store { ptr, i64, i64 } %t18, ptr %a19 call void @finch_str_drop(ptr %a19) - br label %endif5431 -endif5431: + br label %endif5575 +endif5575: %t20 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.3483, i64 4, i64 0 }, ptr %a22 + store { ptr, i64, i64 } { ptr @.str.3568, i64 4, i64 0 }, ptr %a22 store { ptr, i64, i64 } %t20, ptr %a23 call void @finch_str_concat(ptr %a21, ptr %a22, ptr %a23) %t24 = load { ptr, i64, i64 }, ptr %a21 store { ptr, i64, i64 } %t24, ptr %a26 - store { ptr, i64, i64 } { ptr @.str.3484, i64 6, i64 0 }, ptr %a27 + store { ptr, i64, i64 } { ptr @.str.3569, i64 6, i64 0 }, ptr %a27 call void @finch_str_concat(ptr %a25, ptr %a26, ptr %a27) store { ptr, i64, i64 } %t24, ptr %a28 call void @finch_str_drop(ptr %a28) @@ -54929,7 +56577,7 @@ endif5431: call void @finch_str_drop(ptr %a34) %t35 = load { ptr, i64, i64 }, ptr %a31 store { ptr, i64, i64 } %t35, ptr %a37 - store { ptr, i64, i64 } { ptr @.str.3485, i64 6, i64 0 }, ptr %a38 + store { ptr, i64, i64 } { ptr @.str.3570, i64 6, i64 0 }, ptr %a38 call void @finch_str_concat(ptr %a36, ptr %a37, ptr %a38) store { ptr, i64, i64 } %t35, ptr %a39 call void @finch_str_drop(ptr %a39) @@ -54946,7 +56594,7 @@ endif5431: call void @finch_str_drop(ptr %a48) %t49 = load { ptr, i64, i64 }, ptr %a44 store { ptr, i64, i64 } %t49, ptr %a51 - store { ptr, i64, i64 } { ptr @.str.3486, i64 6, i64 0 }, ptr %a52 + store { ptr, i64, i64 } { ptr @.str.3571, i64 6, i64 0 }, ptr %a52 call void @finch_str_concat(ptr %a50, ptr %a51, ptr %a52) store { ptr, i64, i64 } %t49, ptr %a53 call void @finch_str_drop(ptr %a53) @@ -54956,11 +56604,11 @@ endif5431: %t57 = load { ptr, i64, i64 }, ptr %t56 %t58 = extractvalue { ptr, i64, i64 } %t57, 1 %t59 = icmp uge i64 0, %t58 - br i1 %t59, label %range5432, label %inrange5433 -range5432: - call void @finch_panic_index(ptr @.str.3487, i64 2688, i64 0, i64 %t58) + br i1 %t59, label %range5576, label %inrange5577 +range5576: + call void @finch_panic_index(ptr @.str.3572, i64 2769, i64 0, i64 %t58) unreachable -inrange5433: +inrange5577: %t60 = extractvalue { ptr, i64, i64 } %t57, 0 %t61 = getelementptr inbounds %S.ast.Type, ptr %t60, i64 0 %t62 = load %S.ast.Type, ptr %t61 @@ -54974,7 +56622,7 @@ inrange5433: call void @finch_str_drop(ptr %a68) %t69 = load { ptr, i64, i64 }, ptr %a64 store { ptr, i64, i64 } %t69, ptr %a71 - store { ptr, i64, i64 } { ptr @.str.3488, i64 6, i64 0 }, ptr %a72 + store { ptr, i64, i64 } { ptr @.str.3573, i64 6, i64 0 }, ptr %a72 call void @finch_str_concat(ptr %a70, ptr %a71, ptr %a72) store { ptr, i64, i64 } %t69, ptr %a73 call void @finch_str_drop(ptr %a73) @@ -55015,14 +56663,14 @@ entry: %t8 = load { ptr, i64, i64 }, ptr %a3 %t9 = load %S.ast.Type, ptr %a4 %t10 = call { ptr, i64, i64 } @finch.gen.mapArgs(ptr %t6, { ptr, i64, i64 } %t7, { ptr, i64, i64 } %t8, %S.ast.Type %t9) - store { ptr, i64, i64 } { ptr @.str.3489, i64 25, i64 0 }, ptr %a12 + store { ptr, i64, i64 } { ptr @.str.3574, i64 25, i64 0 }, ptr %a12 store { ptr, i64, i64 } %t10, ptr %a13 call void @finch_str_concat(ptr %a11, ptr %a12, ptr %a13) store { ptr, i64, i64 } %t10, ptr %a14 call void @finch_str_drop(ptr %a14) %t15 = load { ptr, i64, i64 }, ptr %a11 store { ptr, i64, i64 } %t15, ptr %a17 - store { ptr, i64, i64 } { ptr @.str.3490, i64 1, i64 0 }, ptr %a18 + store { ptr, i64, i64 } { ptr @.str.3575, i64 1, i64 0 }, ptr %a18 call void @finch_str_concat(ptr %a16, ptr %a17, ptr %a18) store { ptr, i64, i64 } %t15, ptr %a19 call void @finch_str_drop(ptr %a19) @@ -55051,23 +56699,23 @@ entry: %t4 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t5 = load { ptr, i64, i64 }, ptr %t4 store { ptr, i64, i64 } %t5, ptr %a6 - store { ptr, i64, i64 } { ptr @.str.3491, i64 6, i64 0 }, ptr %a7 + store { ptr, i64, i64 } { ptr @.str.3576, i64 6, i64 0 }, ptr %a7 %t8 = call i32 @finch_str_eq(ptr %a6, ptr %a7) %t9 = icmp ne i32 %t8, 0 - br label %logic.from5434 -logic.from5434: - br i1 %t9, label %logic.rhs5435, label %logic.end5436 -logic.rhs5435: + br label %logic.from5578 +logic.from5578: + br i1 %t9, label %logic.rhs5579, label %logic.end5580 +logic.rhs5579: %t10 = load ptr, ptr %a1 %t11 = load %S.ast.Type, ptr %a2 %t12 = call i1 @finch.gen.hasDefaults(ptr %t10, %S.ast.Type %t11) - br label %logic.rend5437 -logic.rend5437: - br label %logic.end5436 -logic.end5436: - %t13 = phi i1 [ false, %logic.from5434 ], [ %t12, %logic.rend5437 ] - br i1 %t13, label %then5438, label %endif5440 -then5438: + br label %logic.rend5581 +logic.rend5581: + br label %logic.end5580 +logic.end5580: + %t13 = phi i1 [ false, %logic.from5578 ], [ %t12, %logic.rend5581 ] + br i1 %t13, label %then5582, label %endif5584 +then5582: store { ptr, i64, i64 } zeroinitializer, ptr %a14 store { ptr, i64, i64 } zeroinitializer, ptr %a15 %t16 = load ptr, ptr %a1 @@ -55090,7 +56738,7 @@ then5438: call void @finch.drop.arr_str(ptr %a15) call void @finch.drop.arr_S_ast_Node(ptr %a14) ret { ptr, i64, i64 } %t30 -endif5440: +endif5584: %t32 = load %S.ast.Type, ptr %a2 %t33 = call { ptr, i64, i64 } @finch.gen.zeroOf(%S.ast.Type %t32) ret { ptr, i64, i64 } %t33 @@ -55155,25 +56803,25 @@ entry: %t9 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t7, %S.gen.Val %t8) store { ptr, i64, i64 } %t9, ptr %a10 %t11 = load ptr, ptr %a1 - %t12 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t11, { ptr, i64, i64 } { ptr @.str.3492, i64 3, i64 0 }) + %t12 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t11, { ptr, i64, i64 } { ptr @.str.3577, i64 3, i64 0 }) store { ptr, i64, i64 } %t12, ptr %a13 %t14 = load ptr, ptr %a1 %t15 = load { ptr, i64, i64 }, ptr %a13 - call void @finch.gen.store(ptr %t14, { ptr, i64, i64 } { ptr @.str.3493, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.3494, i64 1, i64 0 }, { ptr, i64, i64 } %t15) + call void @finch.gen.store(ptr %t14, { ptr, i64, i64 } { ptr @.str.3578, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.3579, i64 1, i64 0 }, { ptr, i64, i64 } %t15) %t16 = load ptr, ptr %a1 %t17 = load ptr, ptr %a1 %t18 = load { ptr, i64, i64 }, ptr %a2 %t19 = load { ptr, i64, i64 }, ptr %a10 %t20 = load %S.ast.Type, ptr %a3 %t21 = call { ptr, i64, i64 } @finch.gen.mapArgs(ptr %t17, { ptr, i64, i64 } %t18, { ptr, i64, i64 } %t19, %S.ast.Type %t20) - store { ptr, i64, i64 } { ptr @.str.3495, i64 25, i64 0 }, ptr %a23 + store { ptr, i64, i64 } { ptr @.str.3580, i64 25, i64 0 }, ptr %a23 store { ptr, i64, i64 } %t21, ptr %a24 call void @finch_str_concat(ptr %a22, ptr %a23, ptr %a24) store { ptr, i64, i64 } %t21, ptr %a25 call void @finch_str_drop(ptr %a25) %t26 = load { ptr, i64, i64 }, ptr %a22 store { ptr, i64, i64 } %t26, ptr %a28 - store { ptr, i64, i64 } { ptr @.str.3496, i64 6, i64 0 }, ptr %a29 + store { ptr, i64, i64 } { ptr @.str.3581, i64 6, i64 0 }, ptr %a29 call void @finch_str_concat(ptr %a27, ptr %a28, ptr %a29) store { ptr, i64, i64 } %t26, ptr %a30 call void @finch_str_drop(ptr %a30) @@ -55186,7 +56834,7 @@ entry: call void @finch_str_drop(ptr %a36) %t37 = load { ptr, i64, i64 }, ptr %a33 store { ptr, i64, i64 } %t37, ptr %a39 - store { ptr, i64, i64 } { ptr @.str.3497, i64 1, i64 0 }, ptr %a40 + store { ptr, i64, i64 } { ptr @.str.3582, i64 1, i64 0 }, ptr %a40 call void @finch_str_concat(ptr %a38, ptr %a39, ptr %a40) store { ptr, i64, i64 } %t37, ptr %a41 call void @finch_str_drop(ptr %a41) @@ -55202,24 +56850,24 @@ entry: %t50 = call { ptr, i64, i64 } @finch.gen.entryAt(ptr %t46, { ptr, i64, i64 } %t47, %S.ast.Type %t48, { ptr, i64, i64 } %t49) store { ptr, i64, i64 } %t50, ptr %a51 %t52 = load ptr, ptr %a1 - %t53 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t52, { ptr, i64, i64 } { ptr @.str.3498, i64 7, i64 0 }) + %t53 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t52, { ptr, i64, i64 } { ptr @.str.3583, i64 7, i64 0 }) store { ptr, i64, i64 } %t53, ptr %a54 %t55 = load ptr, ptr %a1 - %t56 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t55, { ptr, i64, i64 } { ptr @.str.3499, i64 8, i64 0 }) + %t56 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t55, { ptr, i64, i64 } { ptr @.str.3584, i64 8, i64 0 }) store { ptr, i64, i64 } %t56, ptr %a57 %t58 = load ptr, ptr %a1 %t59 = load ptr, ptr %a1 %t60 = load ptr, ptr %a1 %t61 = load { ptr, i64, i64 }, ptr %a13 - %t62 = call { ptr, i64, i64 } @finch.gen.load(ptr %t60, { ptr, i64, i64 } { ptr @.str.3501, i64 3, i64 0 }, { ptr, i64, i64 } %t61) - store { ptr, i64, i64 } { ptr @.str.3500, i64 12, i64 0 }, ptr %a64 + %t62 = call { ptr, i64, i64 } @finch.gen.load(ptr %t60, { ptr, i64, i64 } { ptr @.str.3586, i64 3, i64 0 }, { ptr, i64, i64 } %t61) + store { ptr, i64, i64 } { ptr @.str.3585, i64 12, i64 0 }, ptr %a64 store { ptr, i64, i64 } %t62, ptr %a65 call void @finch_str_concat(ptr %a63, ptr %a64, ptr %a65) store { ptr, i64, i64 } %t62, ptr %a66 call void @finch_str_drop(ptr %a66) %t67 = load { ptr, i64, i64 }, ptr %a63 store { ptr, i64, i64 } %t67, ptr %a69 - store { ptr, i64, i64 } { ptr @.str.3502, i64 3, i64 0 }, ptr %a70 + store { ptr, i64, i64 } { ptr @.str.3587, i64 3, i64 0 }, ptr %a70 call void @finch_str_concat(ptr %a68, ptr %a69, ptr %a70) store { ptr, i64, i64 } %t67, ptr %a71 call void @finch_str_drop(ptr %a71) @@ -55245,11 +56893,11 @@ entry: %t87 = load { ptr, i64, i64 }, ptr %t86 %t88 = extractvalue { ptr, i64, i64 } %t87, 1 %t89 = icmp uge i64 0, %t88 - br i1 %t89, label %range5441, label %inrange5442 -range5441: - call void @finch_panic_index(ptr @.str.3503, i64 2716, i64 0, i64 %t88) + br i1 %t89, label %range5585, label %inrange5586 +range5585: + call void @finch_panic_index(ptr @.str.3588, i64 2797, i64 0, i64 %t88) unreachable -inrange5442: +inrange5586: %t90 = extractvalue { ptr, i64, i64 } %t87, 0 %t91 = getelementptr inbounds %S.ast.Type, ptr %t90, i64 0 %t92 = load %S.ast.Type, ptr %t91 @@ -55257,19 +56905,19 @@ inrange5442: store { ptr, i64, i64 } %t84, ptr %a93 call void @finch_str_drop(ptr %a93) %t94 = load i1, ptr %a5 - br i1 %t94, label %then5443, label %endif5445 -then5443: + br i1 %t94, label %then5587, label %endif5589 +then5587: %t95 = load ptr, ptr %a1 %t96 = load ptr, ptr %a1 %t97 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 1 %t98 = load { ptr, i64, i64 }, ptr %t97 %t99 = extractvalue { ptr, i64, i64 } %t98, 1 %t100 = icmp uge i64 1, %t99 - br i1 %t100, label %range5446, label %inrange5447 -range5446: - call void @finch_panic_index(ptr @.str.3504, i64 2718, i64 1, i64 %t99) + br i1 %t100, label %range5590, label %inrange5591 +range5590: + call void @finch_panic_index(ptr @.str.3589, i64 2799, i64 1, i64 %t99) unreachable -inrange5447: +inrange5591: %t101 = extractvalue { ptr, i64, i64 } %t98, 0 %t102 = getelementptr inbounds %S.ast.Type, ptr %t101, i64 1 %t103 = load %S.ast.Type, ptr %t102 @@ -55280,11 +56928,11 @@ inrange5447: %t108 = load { ptr, i64, i64 }, ptr %t107 %t109 = extractvalue { ptr, i64, i64 } %t108, 1 %t110 = icmp uge i64 1, %t109 - br i1 %t110, label %range5448, label %inrange5449 -range5448: - call void @finch_panic_index(ptr @.str.3505, i64 2718, i64 1, i64 %t109) + br i1 %t110, label %range5592, label %inrange5593 +range5592: + call void @finch_panic_index(ptr @.str.3590, i64 2799, i64 1, i64 %t109) unreachable -inrange5449: +inrange5593: %t111 = extractvalue { ptr, i64, i64 } %t108, 0 %t112 = getelementptr inbounds %S.ast.Type, ptr %t111, i64 1 %t113 = load %S.ast.Type, ptr %t112 @@ -55295,11 +56943,11 @@ inrange5449: %t118 = load { ptr, i64, i64 }, ptr %t117 %t119 = extractvalue { ptr, i64, i64 } %t118, 1 %t120 = icmp uge i64 1, %t119 - br i1 %t120, label %range5450, label %inrange5451 -range5450: - call void @finch_panic_index(ptr @.str.3506, i64 2718, i64 1, i64 %t119) + br i1 %t120, label %range5594, label %inrange5595 +range5594: + call void @finch_panic_index(ptr @.str.3591, i64 2799, i64 1, i64 %t119) unreachable -inrange5451: +inrange5595: %t121 = extractvalue { ptr, i64, i64 } %t118, 0 %t122 = getelementptr inbounds %S.ast.Type, ptr %t121, i64 1 %t123 = load %S.ast.Type, ptr %t122 @@ -55322,8 +56970,8 @@ inrange5451: call void @finch_str_drop(ptr %a136) store { ptr, i64, i64 } %t134, ptr %a137 call void @finch_str_drop(ptr %a137) - br label %endif5445 -endif5445: + br label %endif5589 +endif5589: %t138 = load ptr, ptr %a1 %t139 = load { ptr, i64, i64 }, ptr %a57 call void @finch.gen.br(ptr %t138, { ptr, i64, i64 } %t139) @@ -55430,11 +57078,11 @@ entry: %t7 = load { ptr, i64, i64 }, ptr %t6 %t8 = extractvalue { ptr, i64, i64 } %t7, 1 %t9 = icmp uge i64 0, %t8 - br i1 %t9, label %range5452, label %inrange5453 -range5452: - call void @finch_panic_index(ptr @.str.3507, i64 2727, i64 0, i64 %t8) + br i1 %t9, label %range5596, label %inrange5597 +range5596: + call void @finch_panic_index(ptr @.str.3592, i64 2808, i64 0, i64 %t8) unreachable -inrange5453: +inrange5597: %t10 = extractvalue { ptr, i64, i64 } %t7, 0 %t11 = getelementptr inbounds %S.ast.Type, ptr %t10, i64 0 %t12 = load %S.ast.Type, ptr %t11 @@ -55446,11 +57094,11 @@ inrange5453: %t18 = load { ptr, i64, i64 }, ptr %t17 %t19 = extractvalue { ptr, i64, i64 } %t18, 1 %t20 = icmp uge i64 1, %t19 - br i1 %t20, label %range5454, label %inrange5455 -range5454: - call void @finch_panic_index(ptr @.str.3508, i64 2728, i64 1, i64 %t19) + br i1 %t20, label %range5598, label %inrange5599 +range5598: + call void @finch_panic_index(ptr @.str.3593, i64 2809, i64 1, i64 %t19) unreachable -inrange5455: +inrange5599: %t21 = extractvalue { ptr, i64, i64 } %t18, 0 %t22 = getelementptr inbounds %S.ast.Type, ptr %t21, i64 1 %t23 = load %S.ast.Type, ptr %t22 @@ -55464,11 +57112,11 @@ inrange5455: %t31 = load { ptr, i64, i64 }, ptr %t30 %t32 = extractvalue { ptr, i64, i64 } %t31, 1 %t33 = icmp uge i64 1, %t32 - br i1 %t33, label %range5456, label %inrange5457 -range5456: - call void @finch_panic_index(ptr @.str.3509, i64 2729, i64 1, i64 %t32) + br i1 %t33, label %range5600, label %inrange5601 +range5600: + call void @finch_panic_index(ptr @.str.3594, i64 2810, i64 1, i64 %t32) unreachable -inrange5457: +inrange5601: %t34 = extractvalue { ptr, i64, i64 } %t31, 0 %t35 = getelementptr inbounds %S.ast.Node, ptr %t34, i64 1 %t36 = load %S.ast.Node, ptr %t35 @@ -55479,31 +57127,31 @@ inrange5457: %t41 = load { ptr, i64, i64 }, ptr %t40 %t42 = extractvalue { ptr, i64, i64 } %t41, 1 %t43 = icmp uge i64 1, %t42 - br i1 %t43, label %range5458, label %inrange5459 -range5458: - call void @finch_panic_index(ptr @.str.3510, i64 2729, i64 1, i64 %t42) + br i1 %t43, label %range5602, label %inrange5603 +range5602: + call void @finch_panic_index(ptr @.str.3595, i64 2810, i64 1, i64 %t42) unreachable -inrange5459: +inrange5603: %t44 = extractvalue { ptr, i64, i64 } %t41, 0 %t45 = getelementptr inbounds %S.ast.Node, ptr %t44, i64 1 %t46 = load %S.ast.Node, ptr %t45 - %t47 = call %S.gen.Val @finch.gen.coerce(ptr %t28, %S.gen.Val %t38, %S.ast.Type %t39, %S.ast.Node %t46, { ptr, i64, i64 } { ptr @.str.3511, i64 7, i64 0 }) + %t47 = call %S.gen.Val @finch.gen.coerce(ptr %t28, %S.gen.Val %t38, %S.ast.Type %t39, %S.ast.Node %t46, { ptr, i64, i64 } { ptr @.str.3596, i64 7, i64 0 }) store %S.gen.Val %t38, ptr %a48 call void @finch.drop.S_gen_Val(ptr %a48) store %S.gen.Val %t47, ptr %a49 %t50 = load i1, ptr %a5 - br i1 %t50, label %then5460, label %endif5462 -then5460: + br i1 %t50, label %then5604, label %endif5606 +then5604: %t51 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 0 %t52 = load i1, ptr %t51 %t53 = xor i1 %t52, true - br i1 %t53, label %then5463, label %endif5465 -then5463: + br i1 %t53, label %then5607, label %endif5609 +then5607: %t54 = load ptr, ptr %a1 %t55 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t54, %S.ast.Node %t55, { ptr, i64, i64 } { ptr @.str.3512, i64 44, i64 0 }) - br label %endif5465 -endif5465: + call void @finch.gen.fail(ptr %t54, %S.ast.Node %t55, { ptr, i64, i64 } { ptr @.str.3597, i64 44, i64 0 }) + br label %endif5609 +endif5609: %t56 = load ptr, ptr %a1 %t57 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 1 %t58 = getelementptr inbounds %S.gen.Place, ptr %t57, i32 0, i32 0 @@ -55533,12 +57181,12 @@ endif5465: call void @finch.drop.S_ast_Type(ptr %a27) call void @finch.drop.S_ast_Type(ptr %a16) ret %S.gen.Ref %t78 -endif5462: - store { ptr, i64, i64 } { ptr @.str.3513, i64 0, i64 0 }, ptr %a79 +endif5606: + store { ptr, i64, i64 } { ptr @.str.3598, i64 0, i64 0 }, ptr %a79 %t80 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 0 %t81 = load i1, ptr %t80 - br i1 %t81, label %then5466, label %else5467 -then5466: + br i1 %t81, label %then5610, label %else5611 +then5610: %t82 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 1 %t83 = getelementptr inbounds %S.gen.Place, ptr %t82, i32 0, i32 0 %t84 = load { ptr, i64, i64 }, ptr %t83 @@ -55549,8 +57197,8 @@ then5466: store { ptr, i64, i64 } %t87, ptr %a79 store { ptr, i64, i64 } %t88, ptr %a89 call void @finch_str_drop(ptr %a89) - br label %endif5468 -else5467: + br label %endif5612 +else5611: %t90 = load ptr, ptr %a1 %t91 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 2 %t92 = load %S.gen.Val, ptr %t91 @@ -55559,8 +57207,8 @@ else5467: store { ptr, i64, i64 } %t93, ptr %a79 store { ptr, i64, i64 } %t94, ptr %a95 call void @finch_str_drop(ptr %a95) - br label %endif5468 -endif5468: + br label %endif5612 +endif5612: %t96 = load ptr, ptr %a1 %t97 = load %S.gen.Val, ptr %a49 %t98 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t96, %S.gen.Val %t97) @@ -55572,20 +57220,20 @@ endif5468: %t104 = call { ptr, i64, i64 } @finch.gen.mapFind(ptr %t100, { ptr, i64, i64 } %t101, { ptr, i64, i64 } %t102, %S.ast.Type %t103) store { ptr, i64, i64 } %t104, ptr %a105 %t106 = load ptr, ptr %a1 - %t107 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t106, { ptr, i64, i64 } { ptr @.str.3514, i64 11, i64 0 }) + %t107 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t106, { ptr, i64, i64 } { ptr @.str.3599, i64 11, i64 0 }) store { ptr, i64, i64 } %t107, ptr %a108 %t109 = load ptr, ptr %a1 - %t110 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t109, { ptr, i64, i64 } { ptr @.str.3515, i64 9, i64 0 }) + %t110 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t109, { ptr, i64, i64 } { ptr @.str.3600, i64 9, i64 0 }) store { ptr, i64, i64 } %t110, ptr %a111 %t112 = load ptr, ptr %a1 %t113 = load ptr, ptr %a1 %t114 = load { ptr, i64, i64 }, ptr %a105 - store { ptr, i64, i64 } { ptr @.str.3516, i64 13, i64 0 }, ptr %a116 + store { ptr, i64, i64 } { ptr @.str.3601, i64 13, i64 0 }, ptr %a116 store { ptr, i64, i64 } %t114, ptr %a117 call void @finch_str_concat(ptr %a115, ptr %a116, ptr %a117) %t118 = load { ptr, i64, i64 }, ptr %a115 store { ptr, i64, i64 } %t118, ptr %a120 - store { ptr, i64, i64 } { ptr @.str.3517, i64 3, i64 0 }, ptr %a121 + store { ptr, i64, i64 } { ptr @.str.3602, i64 3, i64 0 }, ptr %a121 call void @finch_str_concat(ptr %a119, ptr %a120, ptr %a121) store { ptr, i64, i64 } %t118, ptr %a122 call void @finch_str_drop(ptr %a122) @@ -55602,11 +57250,11 @@ endif5468: %t130 = load { ptr, i64, i64 }, ptr %a108 call void @finch.gen.label(ptr %t129, { ptr, i64, i64 } %t130) %t131 = load ptr, ptr %a1 - %t132 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t131, { ptr, i64, i64 } { ptr @.str.3518, i64 17, i64 0 }) + %t132 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t131, { ptr, i64, i64 } { ptr @.str.3603, i64 17, i64 0 }) store { ptr, i64, i64 } %t132, ptr %a133 %t134 = load ptr, ptr %a1 %t135 = load { ptr, i64, i64 }, ptr %a133 - call void @finch.gen.store(ptr %t134, { ptr, i64, i64 } { ptr @.str.3519, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.3520, i64 15, i64 0 }, { ptr, i64, i64 } %t135) + call void @finch.gen.store(ptr %t134, { ptr, i64, i64 } { ptr @.str.3604, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.3605, i64 15, i64 0 }, { ptr, i64, i64 } %t135) %t136 = load ptr, ptr %a1 %t137 = load { ptr, i64, i64 }, ptr %a133 %t138 = getelementptr inbounds %S.gen.Val, ptr %a49, i32 0, i32 0 @@ -55617,34 +57265,34 @@ endif5468: %t142 = load ptr, ptr %a1 %t143 = load ptr, ptr %a1 %t144 = icmp eq ptr %t143, null - br i1 %t144, label %panic5469, label %ok5470 -panic5469: - call void @finch_panic(ptr @.str.3522, i64 2753, ptr @.str.3523) + br i1 %t144, label %panic5613, label %ok5614 +panic5613: + call void @finch_panic(ptr @.str.3607, i64 2834, ptr @.str.3608) unreachable -ok5470: +ok5614: %t145 = getelementptr inbounds %S.gen.Gen, ptr %t143, i32 0, i32 1 %t146 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 13 %t147 = load i64, ptr %t146 %t148 = load { ptr, i64, i64 }, ptr %t145 %t149 = extractvalue { ptr, i64, i64 } %t148, 1 %t150 = icmp uge i64 %t147, %t149 - br i1 %t150, label %range5471, label %inrange5472 -range5471: - call void @finch_panic_index(ptr @.str.3524, i64 2753, i64 %t147, i64 %t149) + br i1 %t150, label %range5615, label %inrange5616 +range5615: + call void @finch_panic_index(ptr @.str.3609, i64 2834, i64 %t147, i64 %t149) unreachable -inrange5472: +inrange5616: %t151 = extractvalue { ptr, i64, i64 } %t148, 0 %t152 = getelementptr inbounds { ptr, i64, i64 }, ptr %t151, i64 %t147 %t153 = load { ptr, i64, i64 }, ptr %t152 %t154 = call { ptr, i64, i64 } @finch.gen.strGlobal(ptr %t142, { ptr, i64, i64 } %t153) - store { ptr, i64, i64 } { ptr @.str.3521, i64 33, i64 0 }, ptr %a156 + store { ptr, i64, i64 } { ptr @.str.3606, i64 33, i64 0 }, ptr %a156 store { ptr, i64, i64 } %t154, ptr %a157 call void @finch_str_concat(ptr %a155, ptr %a156, ptr %a157) store { ptr, i64, i64 } %t154, ptr %a158 call void @finch_str_drop(ptr %a158) %t159 = load { ptr, i64, i64 }, ptr %a155 store { ptr, i64, i64 } %t159, ptr %a161 - store { ptr, i64, i64 } { ptr @.str.3525, i64 6, i64 0 }, ptr %a162 + store { ptr, i64, i64 } { ptr @.str.3610, i64 6, i64 0 }, ptr %a162 call void @finch_str_concat(ptr %a160, ptr %a161, ptr %a162) store { ptr, i64, i64 } %t159, ptr %a163 call void @finch_str_drop(ptr %a163) @@ -55662,7 +57310,7 @@ inrange5472: call void @finch_str_drop(ptr %a173) %t174 = load { ptr, i64, i64 }, ptr %a169 store { ptr, i64, i64 } %t174, ptr %a176 - store { ptr, i64, i64 } { ptr @.str.3526, i64 6, i64 0 }, ptr %a177 + store { ptr, i64, i64 } { ptr @.str.3611, i64 6, i64 0 }, ptr %a177 call void @finch_str_concat(ptr %a175, ptr %a176, ptr %a177) store { ptr, i64, i64 } %t174, ptr %a178 call void @finch_str_drop(ptr %a178) @@ -55675,7 +57323,7 @@ inrange5472: call void @finch_str_drop(ptr %a184) %t185 = load { ptr, i64, i64 }, ptr %a181 store { ptr, i64, i64 } %t185, ptr %a187 - store { ptr, i64, i64 } { ptr @.str.3527, i64 1, i64 0 }, ptr %a188 + store { ptr, i64, i64 } { ptr @.str.3612, i64 1, i64 0 }, ptr %a188 call void @finch_str_concat(ptr %a186, ptr %a187, ptr %a188) store { ptr, i64, i64 } %t185, ptr %a189 call void @finch_str_drop(ptr %a189) @@ -55684,14 +57332,14 @@ inrange5472: store { ptr, i64, i64 } %t190, ptr %a191 call void @finch_str_drop(ptr %a191) %t192 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t192, { ptr, i64, i64 } { ptr @.str.3528, i64 11, i64 0 }) + call void @finch.gen.emit(ptr %t192, { ptr, i64, i64 } { ptr @.str.3613, i64 11, i64 0 }) %t193 = load ptr, ptr %a1 %t194 = icmp eq ptr %t193, null - br i1 %t194, label %panic5473, label %ok5474 -panic5473: - call void @finch_panic(ptr @.str.3529, i64 2755, ptr @.str.3530) + br i1 %t194, label %panic5617, label %ok5618 +panic5617: + call void @finch_panic(ptr @.str.3614, i64 2836, ptr @.str.3615) unreachable -ok5474: +ok5618: %t195 = getelementptr inbounds %S.gen.Gen, ptr %t193, i32 0, i32 9 store i1 true, ptr %t195 %t196 = load ptr, ptr %a1 @@ -55713,8 +57361,8 @@ ok5474: store { ptr, i64, i64 } %t207, ptr %a209 %t210 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 0 %t211 = load i1, ptr %t210 - br i1 %t211, label %then5475, label %endif5477 -then5475: + br i1 %t211, label %then5619, label %endif5621 +then5619: %t212 = insertvalue %S.gen.Ref zeroinitializer, i1 true, 0 %t213 = load { ptr, i64, i64 }, ptr %a209 store { ptr, i64, i64 } %t213, ptr %a214 @@ -55738,7 +57386,7 @@ then5475: call void @finch.drop.S_ast_Type(ptr %a27) call void @finch.drop.S_ast_Type(ptr %a16) ret %S.gen.Ref %t223 -endif5477: +endif5621: %t224 = load ptr, ptr %a1 %t225 = load ptr, ptr %a1 %t226 = load %S.ast.Type, ptr %a27 @@ -55762,20 +57410,20 @@ endif5477: %t243 = load ptr, ptr %a1 %t244 = load %S.ast.Type, ptr %a27 %t245 = call i1 @finch.gen.owning(ptr %t243, %S.ast.Type %t244) - br label %logic.from5478 -logic.from5478: - br i1 %t245, label %logic.rhs5479, label %logic.end5480 -logic.rhs5479: + br label %logic.from5622 +logic.from5622: + br i1 %t245, label %logic.rhs5623, label %logic.end5624 +logic.rhs5623: %t246 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 2 %t247 = getelementptr inbounds %S.gen.Val, ptr %t246, i32 0, i32 2 %t248 = load i1, ptr %t247 - br label %logic.rend5481 -logic.rend5481: - br label %logic.end5480 -logic.end5480: - %t249 = phi i1 [ false, %logic.from5478 ], [ %t248, %logic.rend5481 ] - br i1 %t249, label %then5482, label %endif5484 -then5482: + br label %logic.rend5625 +logic.rend5625: + br label %logic.end5624 +logic.end5624: + %t249 = phi i1 [ false, %logic.from5622 ], [ %t248, %logic.rend5625 ] + br i1 %t249, label %then5626, label %endif5628 +then5626: %t250 = load ptr, ptr %a1 %t251 = load { ptr, i64, i64 }, ptr %a231 %t252 = load %S.ast.Type, ptr %a27 @@ -55791,8 +57439,8 @@ then5482: store %S.gen.Val %t260, ptr %a242 store %S.gen.Val %t261, ptr %a262 call void @finch.drop.S_gen_Val(ptr %a262) - br label %endif5484 -endif5484: + br label %endif5628 +endif5628: %t263 = load ptr, ptr %a1 %t264 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 2 %t265 = load %S.gen.Val, ptr %t264 @@ -55900,22 +57548,22 @@ entry: %t12 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t13 = load { ptr, i64, i64 }, ptr %t12 store { ptr, i64, i64 } %t13, ptr %a14 - store { ptr, i64, i64 } { ptr @.str.3531, i64 3, i64 0 }, ptr %a15 + store { ptr, i64, i64 } { ptr @.str.3616, i64 3, i64 0 }, ptr %a15 %t16 = call i32 @finch_str_eq(ptr %a14, ptr %a15) %t17 = icmp eq i32 %t16, 0 - br i1 %t17, label %then5485, label %endif5487 -then5485: + br i1 %t17, label %then5629, label %endif5631 +then5629: %t18 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t19 = getelementptr inbounds { ptr, i64, i64 }, ptr %t18, i32 0, i32 1 %t20 = load i64, ptr %t19 %t21 = icmp eq i64 %t20, 0 - br i1 %t21, label %then5488, label %endif5490 -then5488: + br i1 %t21, label %then5632, label %endif5634 +then5632: %t22 = load ptr, ptr %a1 %t23 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t22, %S.ast.Node %t23, { ptr, i64, i64 } { ptr @.str.3532, i64 52, i64 0 }) - br label %endif5490 -endif5490: + call void @finch.gen.fail(ptr %t22, %S.ast.Node %t23, { ptr, i64, i64 } { ptr @.str.3617, i64 52, i64 0 }) + br label %endif5634 +endif5634: store i1 true, ptr %a24 store i1 false, ptr %a25 %t26 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 @@ -55923,12 +57571,12 @@ endif5490: %t28 = load i64, ptr %t27 %t29 = sdiv i64 %t28, 2 store i64 0, ptr %a30 - br label %for.cond5491 -for.cond5491: + br label %for.cond5635 +for.cond5635: %t31 = load i64, ptr %a30 %t32 = icmp slt i64 %t31, %t29 - br i1 %t32, label %for.body5492, label %for.end5494 -for.body5492: + br i1 %t32, label %for.body5636, label %for.end5638 +for.body5636: %t33 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t34 = load i64, ptr %a30 %t35 = mul i64 2, %t34 @@ -55936,11 +57584,11 @@ for.body5492: %t37 = load { ptr, i64, i64 }, ptr %t33 %t38 = extractvalue { ptr, i64, i64 } %t37, 1 %t39 = icmp uge i64 %t36, %t38 - br i1 %t39, label %range5495, label %inrange5496 -range5495: - call void @finch_panic_index(ptr @.str.3533, i64 2785, i64 %t36, i64 %t38) + br i1 %t39, label %range5639, label %inrange5640 +range5639: + call void @finch_panic_index(ptr @.str.3618, i64 2866, i64 %t36, i64 %t38) unreachable -inrange5496: +inrange5640: %t40 = extractvalue { ptr, i64, i64 } %t37, 0 %t41 = getelementptr inbounds %S.ast.Node, ptr %t40, i64 %t36 %t42 = load %S.ast.Node, ptr %t41 @@ -55951,35 +57599,35 @@ inrange5496: %t47 = getelementptr inbounds %S.ast.Node, ptr %a46, i32 0, i32 0 %t48 = load { ptr, i64, i64 }, ptr %t47 store { ptr, i64, i64 } %t48, ptr %a49 - store { ptr, i64, i64 } { ptr @.str.3534, i64 5, i64 0 }, ptr %a50 + store { ptr, i64, i64 } { ptr @.str.3619, i64 5, i64 0 }, ptr %a50 %t51 = call i32 @finch_str_eq(ptr %a49, ptr %a50) %t52 = icmp ne i32 %t51, 0 - br label %logic.from5497 -logic.from5497: - br i1 %t52, label %logic.rhs5498, label %logic.end5499 -logic.rhs5498: + br label %logic.from5641 +logic.from5641: + br i1 %t52, label %logic.rhs5642, label %logic.end5643 +logic.rhs5642: %t53 = getelementptr inbounds %S.ast.Node, ptr %a46, i32 0, i32 1 %t54 = load { ptr, i64, i64 }, ptr %t53 store { ptr, i64, i64 } %t54, ptr %a55 - store { ptr, i64, i64 } { ptr @.str.3535, i64 1, i64 0 }, ptr %a56 + store { ptr, i64, i64 } { ptr @.str.3620, i64 1, i64 0 }, ptr %a56 %t57 = call i32 @finch_str_eq(ptr %a55, ptr %a56) %t58 = icmp ne i32 %t57, 0 - br label %logic.rend5500 -logic.rend5500: - br label %logic.end5499 -logic.end5499: - %t59 = phi i1 [ false, %logic.from5497 ], [ %t58, %logic.rend5500 ] - br i1 %t59, label %then5501, label %endif5503 -then5501: + br label %logic.rend5644 +logic.rend5644: + br label %logic.end5643 +logic.end5643: + %t59 = phi i1 [ false, %logic.from5641 ], [ %t58, %logic.rend5644 ] + br i1 %t59, label %then5645, label %endif5647 +then5645: %t60 = getelementptr inbounds %S.ast.Node, ptr %a46, i32 0, i32 9 %t61 = load { ptr, i64, i64 }, ptr %t60 %t62 = extractvalue { ptr, i64, i64 } %t61, 1 %t63 = icmp uge i64 0, %t62 - br i1 %t63, label %range5504, label %inrange5505 -range5504: - call void @finch_panic_index(ptr @.str.3536, i64 2787, i64 0, i64 %t62) + br i1 %t63, label %range5648, label %inrange5649 +range5648: + call void @finch_panic_index(ptr @.str.3621, i64 2868, i64 0, i64 %t62) unreachable -inrange5505: +inrange5649: %t64 = extractvalue { ptr, i64, i64 } %t61, 0 %t65 = getelementptr inbounds %S.ast.Node, ptr %t64, i64 0 %t66 = load %S.ast.Node, ptr %t65 @@ -55990,50 +57638,50 @@ inrange5505: store %S.ast.Node %t69, ptr %a46 store %S.ast.Node %t70, ptr %a71 call void @finch.drop.S_ast_Node(ptr %a71) - br label %endif5503 -endif5503: + br label %endif5647 +endif5647: %t72 = getelementptr inbounds %S.ast.Node, ptr %a46, i32 0, i32 0 %t73 = load { ptr, i64, i64 }, ptr %t72 store { ptr, i64, i64 } %t73, ptr %a74 - store { ptr, i64, i64 } { ptr @.str.3537, i64 5, i64 0 }, ptr %a75 + store { ptr, i64, i64 } { ptr @.str.3622, i64 5, i64 0 }, ptr %a75 %t76 = call i32 @finch_str_eq(ptr %a74, ptr %a75) %t77 = icmp ne i32 %t76, 0 - br i1 %t77, label %then5506, label %else5507 -then5506: + br i1 %t77, label %then5650, label %else5651 +then5650: store i1 true, ptr %a25 - br label %endif5508 -else5507: + br label %endif5652 +else5651: %t78 = getelementptr inbounds %S.ast.Node, ptr %a46, i32 0, i32 0 %t79 = load { ptr, i64, i64 }, ptr %t78 store { ptr, i64, i64 } %t79, ptr %a80 - store { ptr, i64, i64 } { ptr @.str.3538, i64 3, i64 0 }, ptr %a81 + store { ptr, i64, i64 } { ptr @.str.3623, i64 3, i64 0 }, ptr %a81 %t82 = call i32 @finch_str_eq(ptr %a80, ptr %a81) %t83 = icmp eq i32 %t82, 0 - br i1 %t83, label %then5509, label %endif5511 -then5509: + br i1 %t83, label %then5653, label %endif5655 +then5653: store i1 false, ptr %a24 - br label %endif5511 -endif5511: - br label %endif5508 -endif5508: + br label %endif5655 +endif5655: + br label %endif5652 +endif5652: call void @finch.drop.S_ast_Node(ptr %a46) - br label %for.step5493 -for.step5493: + br label %for.step5637 +for.step5637: %t84 = load i64, ptr %a30 %t85 = add i64 %t84, 1 store i64 %t85, ptr %a30 - br label %for.cond5491 -for.end5494: + br label %for.cond5635 +for.end5638: %t86 = load ptr, ptr %a1 %t87 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t88 = load { ptr, i64, i64 }, ptr %t87 %t89 = extractvalue { ptr, i64, i64 } %t88, 1 %t90 = icmp uge i64 0, %t89 - br i1 %t90, label %range5512, label %inrange5513 -range5512: - call void @finch_panic_index(ptr @.str.3539, i64 2795, i64 0, i64 %t89) + br i1 %t90, label %range5656, label %inrange5657 +range5656: + call void @finch_panic_index(ptr @.str.3624, i64 2876, i64 0, i64 %t89) unreachable -inrange5513: +inrange5657: %t91 = extractvalue { ptr, i64, i64 } %t88, 0 %t92 = getelementptr inbounds %S.ast.Node, ptr %t91, i64 0 %t93 = load %S.ast.Node, ptr %t92 @@ -56047,11 +57695,11 @@ inrange5513: %t99 = load { ptr, i64, i64 }, ptr %t98 %t100 = extractvalue { ptr, i64, i64 } %t99, 1 %t101 = icmp uge i64 1, %t100 - br i1 %t101, label %range5514, label %inrange5515 -range5514: - call void @finch_panic_index(ptr @.str.3540, i64 2796, i64 1, i64 %t100) + br i1 %t101, label %range5658, label %inrange5659 +range5658: + call void @finch_panic_index(ptr @.str.3625, i64 2877, i64 1, i64 %t100) unreachable -inrange5515: +inrange5659: %t102 = extractvalue { ptr, i64, i64 } %t99, 0 %t103 = getelementptr inbounds %S.ast.Node, ptr %t102, i64 1 %t104 = load %S.ast.Node, ptr %t103 @@ -56064,84 +57712,84 @@ inrange5515: %t109 = getelementptr inbounds %S.ast.Type, ptr %t108, i32 0, i32 0 %t110 = load { ptr, i64, i64 }, ptr %t109 store { ptr, i64, i64 } %t110, ptr %a111 - store { ptr, i64, i64 } { ptr @.str.3541, i64 4, i64 0 }, ptr %a112 + store { ptr, i64, i64 } { ptr @.str.3626, i64 4, i64 0 }, ptr %a112 %t113 = call i32 @finch_str_eq(ptr %a111, ptr %a112) %t114 = icmp ne i32 %t113, 0 - br label %logic.from5516 -logic.from5516: - br i1 %t114, label %logic.end5518, label %logic.rhs5517 -logic.rhs5517: + br label %logic.from5660 +logic.from5660: + br i1 %t114, label %logic.end5662, label %logic.rhs5661 +logic.rhs5661: %t115 = getelementptr inbounds %S.gen.Val, ptr %a10, i32 0, i32 1 %t116 = getelementptr inbounds %S.ast.Type, ptr %t115, i32 0, i32 0 %t117 = load { ptr, i64, i64 }, ptr %t116 store { ptr, i64, i64 } %t117, ptr %a118 - store { ptr, i64, i64 } { ptr @.str.3542, i64 4, i64 0 }, ptr %a119 + store { ptr, i64, i64 } { ptr @.str.3627, i64 4, i64 0 }, ptr %a119 %t120 = call i32 @finch_str_eq(ptr %a118, ptr %a119) %t121 = icmp ne i32 %t120, 0 - br label %logic.rend5519 -logic.rend5519: - br label %logic.end5518 -logic.end5518: - %t122 = phi i1 [ true, %logic.from5516 ], [ %t121, %logic.rend5519 ] - br i1 %t122, label %then5520, label %endif5522 -then5520: + br label %logic.rend5663 +logic.rend5663: + br label %logic.end5662 +logic.end5662: + %t122 = phi i1 [ true, %logic.from5660 ], [ %t121, %logic.rend5663 ] + br i1 %t122, label %then5664, label %endif5666 +then5664: %t123 = load ptr, ptr %a1 %t124 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t125 = load { ptr, i64, i64 }, ptr %t124 %t126 = extractvalue { ptr, i64, i64 } %t125, 1 %t127 = icmp uge i64 0, %t126 - br i1 %t127, label %range5523, label %inrange5524 -range5523: - call void @finch_panic_index(ptr @.str.3543, i64 2798, i64 0, i64 %t126) + br i1 %t127, label %range5667, label %inrange5668 +range5667: + call void @finch_panic_index(ptr @.str.3628, i64 2879, i64 0, i64 %t126) unreachable -inrange5524: +inrange5668: %t128 = extractvalue { ptr, i64, i64 } %t125, 0 %t129 = getelementptr inbounds %S.ast.Node, ptr %t128, i64 0 %t130 = load %S.ast.Node, ptr %t129 - call void @finch.gen.fail(ptr %t123, %S.ast.Node %t130, { ptr, i64, i64 } { ptr @.str.3544, i64 35, i64 0 }) - br label %endif5522 -endif5522: + call void @finch.gen.fail(ptr %t123, %S.ast.Node %t130, { ptr, i64, i64 } { ptr @.str.3629, i64 35, i64 0 }) + br label %endif5666 +endif5666: %t131 = getelementptr inbounds %S.gen.Val, ptr %a11, i32 0, i32 1 %t132 = getelementptr inbounds %S.ast.Type, ptr %t131, i32 0, i32 0 %t133 = load { ptr, i64, i64 }, ptr %t132 store { ptr, i64, i64 } %t133, ptr %a134 - store { ptr, i64, i64 } { ptr @.str.3545, i64 4, i64 0 }, ptr %a135 + store { ptr, i64, i64 } { ptr @.str.3630, i64 4, i64 0 }, ptr %a135 %t136 = call i32 @finch_str_eq(ptr %a134, ptr %a135) %t137 = icmp ne i32 %t136, 0 - br label %logic.from5525 -logic.from5525: - br i1 %t137, label %logic.end5527, label %logic.rhs5526 -logic.rhs5526: + br label %logic.from5669 +logic.from5669: + br i1 %t137, label %logic.end5671, label %logic.rhs5670 +logic.rhs5670: %t138 = getelementptr inbounds %S.gen.Val, ptr %a11, i32 0, i32 1 %t139 = getelementptr inbounds %S.ast.Type, ptr %t138, i32 0, i32 0 %t140 = load { ptr, i64, i64 }, ptr %t139 store { ptr, i64, i64 } %t140, ptr %a141 - store { ptr, i64, i64 } { ptr @.str.3546, i64 4, i64 0 }, ptr %a142 + store { ptr, i64, i64 } { ptr @.str.3631, i64 4, i64 0 }, ptr %a142 %t143 = call i32 @finch_str_eq(ptr %a141, ptr %a142) %t144 = icmp ne i32 %t143, 0 - br label %logic.rend5528 -logic.rend5528: - br label %logic.end5527 -logic.end5527: - %t145 = phi i1 [ true, %logic.from5525 ], [ %t144, %logic.rend5528 ] - br i1 %t145, label %then5529, label %endif5531 -then5529: + br label %logic.rend5672 +logic.rend5672: + br label %logic.end5671 +logic.end5671: + %t145 = phi i1 [ true, %logic.from5669 ], [ %t144, %logic.rend5672 ] + br i1 %t145, label %then5673, label %endif5675 +then5673: %t146 = load ptr, ptr %a1 %t147 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t148 = load { ptr, i64, i64 }, ptr %t147 %t149 = extractvalue { ptr, i64, i64 } %t148, 1 %t150 = icmp uge i64 1, %t149 - br i1 %t150, label %range5532, label %inrange5533 -range5532: - call void @finch_panic_index(ptr @.str.3547, i64 2801, i64 1, i64 %t149) + br i1 %t150, label %range5676, label %inrange5677 +range5676: + call void @finch_panic_index(ptr @.str.3632, i64 2882, i64 1, i64 %t149) unreachable -inrange5533: +inrange5677: %t151 = extractvalue { ptr, i64, i64 } %t148, 0 %t152 = getelementptr inbounds %S.ast.Node, ptr %t151, i64 1 %t153 = load %S.ast.Node, ptr %t152 - call void @finch.gen.fail(ptr %t146, %S.ast.Node %t153, { ptr, i64, i64 } { ptr @.str.3548, i64 37, i64 0 }) - br label %endif5531 -endif5531: + call void @finch.gen.fail(ptr %t146, %S.ast.Node %t153, { ptr, i64, i64 } { ptr @.str.3633, i64 37, i64 0 }) + br label %endif5675 +endif5675: %t154 = getelementptr inbounds %S.gen.Val, ptr %a11, i32 0, i32 1 %t155 = load %S.ast.Type, ptr %t154 store %S.ast.Type %t155, ptr %a156 @@ -56149,25 +57797,25 @@ endif5531: %t158 = load %S.ast.Type, ptr %a157 store %S.ast.Type %t158, ptr %a159 %t160 = load i1, ptr %a24 - br label %logic.from5534 -logic.from5534: - br i1 %t160, label %logic.rhs5535, label %logic.end5536 -logic.rhs5535: + br label %logic.from5678 +logic.from5678: + br i1 %t160, label %logic.rhs5679, label %logic.end5680 +logic.rhs5679: %t161 = load i1, ptr %a25 - br label %logic.rend5537 -logic.rend5537: - br label %logic.end5536 -logic.end5536: - %t162 = phi i1 [ false, %logic.from5534 ], [ %t161, %logic.rend5537 ] - br i1 %t162, label %then5538, label %endif5540 -then5538: - %t163 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3549, i64 5, i64 0 }) + br label %logic.rend5681 +logic.rend5681: + br label %logic.end5680 +logic.end5680: + %t162 = phi i1 [ false, %logic.from5678 ], [ %t161, %logic.rend5681 ] + br i1 %t162, label %then5682, label %endif5684 +then5682: + %t163 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3634, i64 5, i64 0 }) %t164 = load %S.ast.Type, ptr %a159 store %S.ast.Type %t163, ptr %a159 store %S.ast.Type %t164, ptr %a165 call void @finch.drop.S_ast_Type(ptr %a165) - br label %endif5540 -endif5540: + br label %endif5684 +endif5684: %t166 = getelementptr inbounds %S.gen.Val, ptr %a10, i32 0, i32 1 %t167 = load %S.ast.Type, ptr %t166 %t168 = load %S.ast.Type, ptr %a159 @@ -56178,8 +57826,8 @@ endif5540: call void @finch.drop.S_ast_Type(ptr %a171) store i1 true, ptr %a9 call void @finch.drop.S_ast_Type(ptr %a159) - br label %endif5487 -endif5487: + br label %endif5631 +endif5631: %t172 = load ptr, ptr %a1 %t173 = load ptr, ptr %a1 %t174 = load %S.ast.Type, ptr %a8 @@ -56193,16 +57841,16 @@ endif5487: %t181 = load %S.ast.Type, ptr %a8 %t182 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t180, %S.ast.Type %t181) %t183 = load { ptr, i64, i64 }, ptr %a178 - call void @finch.gen.store(ptr %t179, { ptr, i64, i64 } %t182, { ptr, i64, i64 } { ptr @.str.3550, i64 15, i64 0 }, { ptr, i64, i64 } %t183) + call void @finch.gen.store(ptr %t179, { ptr, i64, i64 } %t182, { ptr, i64, i64 } { ptr @.str.3635, i64 15, i64 0 }, { ptr, i64, i64 } %t183) store { ptr, i64, i64 } %t182, ptr %a184 call void @finch_str_drop(ptr %a184) %t185 = load ptr, ptr %a1 %t186 = icmp eq ptr %t185, null - br i1 %t186, label %panic5541, label %ok5542 -panic5541: - call void @finch_panic(ptr @.str.3551, i64 2812, ptr @.str.3552) + br i1 %t186, label %panic5685, label %ok5686 +panic5685: + call void @finch_panic(ptr @.str.3636, i64 2893, ptr @.str.3637) unreachable -ok5542: +ok5686: %t187 = getelementptr inbounds %S.gen.Gen, ptr %t185, i32 0, i32 11 %t188 = getelementptr inbounds { ptr, i64, i64 }, ptr %t187, i32 0, i32 1 %t189 = load i64, ptr %t188 @@ -56216,19 +57864,19 @@ ok5542: %t196 = load i64, ptr %t195 %t197 = sdiv i64 %t196, 2 store i64 0, ptr %a198 - br label %for.cond5543 -for.cond5543: + br label %for.cond5687 +for.cond5687: %t199 = load i64, ptr %a198 %t200 = icmp slt i64 %t199, %t197 - br i1 %t200, label %for.body5544, label %for.end5546 -for.body5544: + br i1 %t200, label %for.body5688, label %for.end5690 +for.body5688: %t201 = load ptr, ptr %a1 %t202 = icmp eq ptr %t201, null - br i1 %t202, label %panic5547, label %ok5548 -panic5547: - call void @finch_panic(ptr @.str.3553, i64 2815, ptr @.str.3554) + br i1 %t202, label %panic5691, label %ok5692 +panic5691: + call void @finch_panic(ptr @.str.3638, i64 2896, ptr @.str.3639) unreachable -ok5548: +ok5692: %t203 = getelementptr inbounds %S.gen.Gen, ptr %t201, i32 0, i32 11 %t204 = getelementptr inbounds { ptr, i64, i64 }, ptr %t203, i32 0, i32 1 %t205 = load i64, ptr %t204 @@ -56240,19 +57888,19 @@ ok5548: store %S.gen.Val %t210, ptr %a211 %t212 = load i64, ptr %a198 %t213 = icmp eq i64 %t212, 0 - br label %logic.from5549 -logic.from5549: - br i1 %t213, label %logic.rhs5550, label %logic.end5551 -logic.rhs5550: + br label %logic.from5693 +logic.from5693: + br i1 %t213, label %logic.rhs5694, label %logic.end5695 +logic.rhs5694: %t214 = load i1, ptr %a9 - br label %logic.rend5552 -logic.rend5552: - br label %logic.end5551 -logic.end5551: - %t215 = phi i1 [ false, %logic.from5549 ], [ %t214, %logic.rend5552 ] + br label %logic.rend5696 +logic.rend5696: + br label %logic.end5695 +logic.end5695: + %t215 = phi i1 [ false, %logic.from5693 ], [ %t214, %logic.rend5696 ] %t216 = xor i1 %t215, true - br i1 %t216, label %then5553, label %endif5555 -then5553: + br i1 %t216, label %then5697, label %endif5699 +then5697: %t217 = load ptr, ptr %a1 %t218 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t219 = load i64, ptr %a198 @@ -56260,11 +57908,11 @@ then5553: %t221 = load { ptr, i64, i64 }, ptr %t218 %t222 = extractvalue { ptr, i64, i64 } %t221, 1 %t223 = icmp uge i64 %t220, %t222 - br i1 %t223, label %range5556, label %inrange5557 -range5556: - call void @finch_panic_index(ptr @.str.3555, i64 2818, i64 %t220, i64 %t222) + br i1 %t223, label %range5700, label %inrange5701 +range5700: + call void @finch_panic_index(ptr @.str.3640, i64 2899, i64 %t220, i64 %t222) unreachable -inrange5557: +inrange5701: %t224 = extractvalue { ptr, i64, i64 } %t221, 0 %t225 = getelementptr inbounds %S.ast.Node, ptr %t224, i64 %t220 %t226 = load %S.ast.Node, ptr %t225 @@ -56272,11 +57920,11 @@ inrange5557: %t228 = load { ptr, i64, i64 }, ptr %t227 %t229 = extractvalue { ptr, i64, i64 } %t228, 1 %t230 = icmp uge i64 0, %t229 - br i1 %t230, label %range5558, label %inrange5559 -range5558: - call void @finch_panic_index(ptr @.str.3556, i64 2818, i64 0, i64 %t229) + br i1 %t230, label %range5702, label %inrange5703 +range5702: + call void @finch_panic_index(ptr @.str.3641, i64 2899, i64 0, i64 %t229) unreachable -inrange5559: +inrange5703: %t231 = extractvalue { ptr, i64, i64 } %t228, 0 %t232 = getelementptr inbounds %S.ast.Type, ptr %t231, i64 0 %t233 = load %S.ast.Type, ptr %t232 @@ -56285,19 +57933,19 @@ inrange5559: store %S.gen.Val %t234, ptr %a211 store %S.gen.Val %t235, ptr %a236 call void @finch.drop.S_gen_Val(ptr %a236) - br label %endif5555 -endif5555: + br label %endif5699 +endif5699: %t237 = load ptr, ptr %a1 %t238 = load %S.gen.Val, ptr %a211 %t239 = getelementptr inbounds %S.ast.Type, ptr %a8, i32 0, i32 1 %t240 = load { ptr, i64, i64 }, ptr %t239 %t241 = extractvalue { ptr, i64, i64 } %t240, 1 %t242 = icmp uge i64 0, %t241 - br i1 %t242, label %range5560, label %inrange5561 -range5560: - call void @finch_panic_index(ptr @.str.3557, i64 2820, i64 0, i64 %t241) + br i1 %t242, label %range5704, label %inrange5705 +range5704: + call void @finch_panic_index(ptr @.str.3642, i64 2901, i64 0, i64 %t241) unreachable -inrange5561: +inrange5705: %t243 = extractvalue { ptr, i64, i64 } %t240, 0 %t244 = getelementptr inbounds %S.ast.Type, ptr %t243, i64 0 %t245 = load %S.ast.Type, ptr %t244 @@ -56307,15 +57955,15 @@ inrange5561: %t249 = load { ptr, i64, i64 }, ptr %t246 %t250 = extractvalue { ptr, i64, i64 } %t249, 1 %t251 = icmp uge i64 %t248, %t250 - br i1 %t251, label %range5562, label %inrange5563 -range5562: - call void @finch_panic_index(ptr @.str.3558, i64 2820, i64 %t248, i64 %t250) + br i1 %t251, label %range5706, label %inrange5707 +range5706: + call void @finch_panic_index(ptr @.str.3643, i64 2901, i64 %t248, i64 %t250) unreachable -inrange5563: +inrange5707: %t252 = extractvalue { ptr, i64, i64 } %t249, 0 %t253 = getelementptr inbounds %S.ast.Node, ptr %t252, i64 %t248 %t254 = load %S.ast.Node, ptr %t253 - %t255 = call %S.gen.Val @finch.gen.coerce(ptr %t237, %S.gen.Val %t238, %S.ast.Type %t245, %S.ast.Node %t254, { ptr, i64, i64 } { ptr @.str.3559, i64 21, i64 0 }) + %t255 = call %S.gen.Val @finch.gen.coerce(ptr %t237, %S.gen.Val %t238, %S.ast.Type %t245, %S.ast.Node %t254, { ptr, i64, i64 } { ptr @.str.3644, i64 21, i64 0 }) %t256 = load %S.gen.Val, ptr %a211 store %S.gen.Val %t255, ptr %a211 store %S.gen.Val %t256, ptr %a257 @@ -56330,19 +57978,19 @@ inrange5563: store %S.gen.Val %t263, ptr %a264 %t265 = load i64, ptr %a198 %t266 = icmp eq i64 %t265, 0 - br label %logic.from5564 -logic.from5564: - br i1 %t266, label %logic.rhs5565, label %logic.end5566 -logic.rhs5565: + br label %logic.from5708 +logic.from5708: + br i1 %t266, label %logic.rhs5709, label %logic.end5710 +logic.rhs5709: %t267 = load i1, ptr %a9 - br label %logic.rend5567 -logic.rend5567: - br label %logic.end5566 -logic.end5566: - %t268 = phi i1 [ false, %logic.from5564 ], [ %t267, %logic.rend5567 ] + br label %logic.rend5711 +logic.rend5711: + br label %logic.end5710 +logic.end5710: + %t268 = phi i1 [ false, %logic.from5708 ], [ %t267, %logic.rend5711 ] %t269 = xor i1 %t268, true - br i1 %t269, label %then5568, label %endif5570 -then5568: + br i1 %t269, label %then5712, label %endif5714 +then5712: %t270 = load ptr, ptr %a1 %t271 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t272 = load i64, ptr %a198 @@ -56351,11 +57999,11 @@ then5568: %t275 = load { ptr, i64, i64 }, ptr %t271 %t276 = extractvalue { ptr, i64, i64 } %t275, 1 %t277 = icmp uge i64 %t274, %t276 - br i1 %t277, label %range5571, label %inrange5572 -range5571: - call void @finch_panic_index(ptr @.str.3560, i64 2824, i64 %t274, i64 %t276) + br i1 %t277, label %range5715, label %inrange5716 +range5715: + call void @finch_panic_index(ptr @.str.3645, i64 2905, i64 %t274, i64 %t276) unreachable -inrange5572: +inrange5716: %t278 = extractvalue { ptr, i64, i64 } %t275, 0 %t279 = getelementptr inbounds %S.ast.Node, ptr %t278, i64 %t274 %t280 = load %S.ast.Node, ptr %t279 @@ -56363,11 +58011,11 @@ inrange5572: %t282 = load { ptr, i64, i64 }, ptr %t281 %t283 = extractvalue { ptr, i64, i64 } %t282, 1 %t284 = icmp uge i64 1, %t283 - br i1 %t284, label %range5573, label %inrange5574 -range5573: - call void @finch_panic_index(ptr @.str.3561, i64 2824, i64 1, i64 %t283) + br i1 %t284, label %range5717, label %inrange5718 +range5717: + call void @finch_panic_index(ptr @.str.3646, i64 2905, i64 1, i64 %t283) unreachable -inrange5574: +inrange5718: %t285 = extractvalue { ptr, i64, i64 } %t282, 0 %t286 = getelementptr inbounds %S.ast.Type, ptr %t285, i64 1 %t287 = load %S.ast.Type, ptr %t286 @@ -56376,19 +58024,19 @@ inrange5574: store %S.gen.Val %t288, ptr %a264 store %S.gen.Val %t289, ptr %a290 call void @finch.drop.S_gen_Val(ptr %a290) - br label %endif5570 -endif5570: + br label %endif5714 +endif5714: %t291 = load ptr, ptr %a1 %t292 = load %S.gen.Val, ptr %a264 %t293 = getelementptr inbounds %S.ast.Type, ptr %a8, i32 0, i32 1 %t294 = load { ptr, i64, i64 }, ptr %t293 %t295 = extractvalue { ptr, i64, i64 } %t294, 1 %t296 = icmp uge i64 1, %t295 - br i1 %t296, label %range5575, label %inrange5576 -range5575: - call void @finch_panic_index(ptr @.str.3562, i64 2826, i64 1, i64 %t295) + br i1 %t296, label %range5719, label %inrange5720 +range5719: + call void @finch_panic_index(ptr @.str.3647, i64 2907, i64 1, i64 %t295) unreachable -inrange5576: +inrange5720: %t297 = extractvalue { ptr, i64, i64 } %t294, 0 %t298 = getelementptr inbounds %S.ast.Type, ptr %t297, i64 1 %t299 = load %S.ast.Type, ptr %t298 @@ -56399,15 +58047,15 @@ inrange5576: %t304 = load { ptr, i64, i64 }, ptr %t300 %t305 = extractvalue { ptr, i64, i64 } %t304, 1 %t306 = icmp uge i64 %t303, %t305 - br i1 %t306, label %range5577, label %inrange5578 -range5577: - call void @finch_panic_index(ptr @.str.3563, i64 2826, i64 %t303, i64 %t305) + br i1 %t306, label %range5721, label %inrange5722 +range5721: + call void @finch_panic_index(ptr @.str.3648, i64 2907, i64 %t303, i64 %t305) unreachable -inrange5578: +inrange5722: %t307 = extractvalue { ptr, i64, i64 } %t304, 0 %t308 = getelementptr inbounds %S.ast.Node, ptr %t307, i64 %t303 %t309 = load %S.ast.Node, ptr %t308 - %t310 = call %S.gen.Val @finch.gen.coerce(ptr %t291, %S.gen.Val %t292, %S.ast.Type %t299, %S.ast.Node %t309, { ptr, i64, i64 } { ptr @.str.3564, i64 23, i64 0 }) + %t310 = call %S.gen.Val @finch.gen.coerce(ptr %t291, %S.gen.Val %t292, %S.ast.Type %t299, %S.ast.Node %t309, { ptr, i64, i64 } { ptr @.str.3649, i64 23, i64 0 }) %t311 = load %S.gen.Val, ptr %a264 store %S.gen.Val %t310, ptr %a264 store %S.gen.Val %t311, ptr %a312 @@ -56434,11 +58082,11 @@ inrange5578: %t332 = load { ptr, i64, i64 }, ptr %t331 %t333 = extractvalue { ptr, i64, i64 } %t332, 1 %t334 = icmp uge i64 1, %t333 - br i1 %t334, label %range5579, label %inrange5580 -range5579: - call void @finch_panic_index(ptr @.str.3565, i64 2830, i64 1, i64 %t333) + br i1 %t334, label %range5723, label %inrange5724 +range5723: + call void @finch_panic_index(ptr @.str.3650, i64 2911, i64 1, i64 %t333) unreachable -inrange5580: +inrange5724: %t335 = extractvalue { ptr, i64, i64 } %t332, 0 %t336 = getelementptr inbounds %S.ast.Type, ptr %t335, i64 1 %t337 = load %S.ast.Type, ptr %t336 @@ -56449,11 +58097,11 @@ inrange5580: %t341 = load { ptr, i64, i64 }, ptr %t340 %t342 = extractvalue { ptr, i64, i64 } %t341, 1 %t343 = icmp uge i64 1, %t342 - br i1 %t343, label %range5581, label %inrange5582 -range5581: - call void @finch_panic_index(ptr @.str.3566, i64 2831, i64 1, i64 %t342) + br i1 %t343, label %range5725, label %inrange5726 +range5725: + call void @finch_panic_index(ptr @.str.3651, i64 2912, i64 1, i64 %t342) unreachable -inrange5582: +inrange5726: %t344 = extractvalue { ptr, i64, i64 } %t341, 0 %t345 = getelementptr inbounds %S.ast.Type, ptr %t344, i64 1 %t346 = load %S.ast.Type, ptr %t345 @@ -56474,13 +58122,13 @@ inrange5582: call void @finch_str_drop(ptr %a316) call void @finch.drop.S_gen_Val(ptr %a264) call void @finch.drop.S_gen_Val(ptr %a211) - br label %for.step5545 -for.step5545: + br label %for.step5689 +for.step5689: %t355 = load i64, ptr %a198 %t356 = add i64 %t355, 1 store i64 %t356, ptr %a198 - br label %for.cond5543 -for.end5546: + br label %for.cond5687 +for.end5690: %t357 = load ptr, ptr %a1 %t358 = load i64, ptr %a190 call void @finch.gen.heldEnd(ptr %t357, i64 %t358) @@ -56834,11 +58482,11 @@ entry: %t12 = load { ptr, i64, i64 }, ptr %t11 %t13 = extractvalue { ptr, i64, i64 } %t12, 1 %t14 = icmp uge i64 0, %t13 - br i1 %t14, label %range5583, label %inrange5584 -range5583: - call void @finch_panic_index(ptr @.str.3567, i64 2841, i64 0, i64 %t13) + br i1 %t14, label %range5727, label %inrange5728 +range5727: + call void @finch_panic_index(ptr @.str.3652, i64 2922, i64 0, i64 %t13) unreachable -inrange5584: +inrange5728: %t15 = extractvalue { ptr, i64, i64 } %t12, 0 %t16 = getelementptr inbounds %S.ast.Type, ptr %t15, i64 0 %t17 = load %S.ast.Type, ptr %t16 @@ -56850,11 +58498,11 @@ inrange5584: %t23 = load { ptr, i64, i64 }, ptr %t22 %t24 = extractvalue { ptr, i64, i64 } %t23, 1 %t25 = icmp uge i64 1, %t24 - br i1 %t25, label %range5585, label %inrange5586 -range5585: - call void @finch_panic_index(ptr @.str.3568, i64 2842, i64 1, i64 %t24) + br i1 %t25, label %range5729, label %inrange5730 +range5729: + call void @finch_panic_index(ptr @.str.3653, i64 2923, i64 1, i64 %t24) unreachable -inrange5586: +inrange5730: %t26 = extractvalue { ptr, i64, i64 } %t23, 0 %t27 = getelementptr inbounds %S.ast.Type, ptr %t26, i64 1 %t28 = load %S.ast.Type, ptr %t27 @@ -56864,69 +58512,69 @@ inrange5586: store %S.ast.Type %t31, ptr %a32 %t33 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t33, ptr %a34 - store { ptr, i64, i64 } { ptr @.str.3569, i64 3, i64 0 }, ptr %a35 + store { ptr, i64, i64 } { ptr @.str.3654, i64 3, i64 0 }, ptr %a35 %t36 = call i32 @finch_str_eq(ptr %a34, ptr %a35) %t37 = icmp ne i32 %t36, 0 - br label %logic.from5587 -logic.from5587: - br i1 %t37, label %logic.end5589, label %logic.rhs5588 -logic.rhs5588: + br label %logic.from5731 +logic.from5731: + br i1 %t37, label %logic.end5733, label %logic.rhs5732 +logic.rhs5732: %t38 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t38, ptr %a39 - store { ptr, i64, i64 } { ptr @.str.3570, i64 3, i64 0 }, ptr %a40 + store { ptr, i64, i64 } { ptr @.str.3655, i64 3, i64 0 }, ptr %a40 %t41 = call i32 @finch_str_eq(ptr %a39, ptr %a40) %t42 = icmp ne i32 %t41, 0 - br label %logic.rend5590 -logic.rend5590: - br label %logic.end5589 -logic.end5589: - %t43 = phi i1 [ true, %logic.from5587 ], [ %t42, %logic.rend5590 ] - br label %logic.from5591 -logic.from5591: - br i1 %t43, label %logic.end5593, label %logic.rhs5592 -logic.rhs5592: + br label %logic.rend5734 +logic.rend5734: + br label %logic.end5733 +logic.end5733: + %t43 = phi i1 [ true, %logic.from5731 ], [ %t42, %logic.rend5734 ] + br label %logic.from5735 +logic.from5735: + br i1 %t43, label %logic.end5737, label %logic.rhs5736 +logic.rhs5736: %t44 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t44, ptr %a45 - store { ptr, i64, i64 } { ptr @.str.3571, i64 6, i64 0 }, ptr %a46 + store { ptr, i64, i64 } { ptr @.str.3656, i64 6, i64 0 }, ptr %a46 %t47 = call i32 @finch_str_eq(ptr %a45, ptr %a46) %t48 = icmp ne i32 %t47, 0 - br label %logic.rend5594 -logic.rend5594: - br label %logic.end5593 -logic.end5593: - %t49 = phi i1 [ true, %logic.from5591 ], [ %t48, %logic.rend5594 ] - br i1 %t49, label %then5595, label %endif5597 -then5595: + br label %logic.rend5738 +logic.rend5738: + br label %logic.end5737 +logic.end5737: + %t49 = phi i1 [ true, %logic.from5735 ], [ %t48, %logic.rend5738 ] + br i1 %t49, label %then5739, label %endif5741 +then5739: %t50 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t50, ptr %a51 - store { ptr, i64, i64 } { ptr @.str.3572, i64 3, i64 0 }, ptr %a52 + store { ptr, i64, i64 } { ptr @.str.3657, i64 3, i64 0 }, ptr %a52 %t53 = call i32 @finch_str_eq(ptr %a51, ptr %a52) %t54 = icmp ne i32 %t53, 0 - br i1 %t54, label %then5598, label %else5599 -then5598: + br i1 %t54, label %then5742, label %else5743 +then5742: %t55 = load ptr, ptr %a1 %t56 = load %S.ast.Node, ptr %a2 %t57 = load { ptr, i64, i64 }, ptr %a10 call void @finch.gen.checkArgs(ptr %t55, %S.ast.Node %t56, i64 1, i64 2, { ptr, i64, i64 } %t57) - br label %endif5600 -else5599: + br label %endif5744 +else5743: %t58 = load ptr, ptr %a1 %t59 = load %S.ast.Node, ptr %a2 %t60 = load { ptr, i64, i64 }, ptr %a10 call void @finch.gen.checkArgs(ptr %t58, %S.ast.Node %t59, i64 1, i64 1, { ptr, i64, i64 } %t60) - br label %endif5600 -endif5600: + br label %endif5744 +endif5744: %t61 = load ptr, ptr %a1 %t62 = load ptr, ptr %a1 %t63 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t64 = load { ptr, i64, i64 }, ptr %t63 %t65 = extractvalue { ptr, i64, i64 } %t64, 1 %t66 = icmp uge i64 1, %t65 - br i1 %t66, label %range5601, label %inrange5602 -range5601: - call void @finch_panic_index(ptr @.str.3573, i64 2849, i64 1, i64 %t65) + br i1 %t66, label %range5745, label %inrange5746 +range5745: + call void @finch_panic_index(ptr @.str.3658, i64 2930, i64 1, i64 %t65) unreachable -inrange5602: +inrange5746: %t67 = extractvalue { ptr, i64, i64 } %t64, 0 %t68 = getelementptr inbounds %S.ast.Node, ptr %t67, i64 1 %t69 = load %S.ast.Node, ptr %t68 @@ -56937,15 +58585,15 @@ inrange5602: %t74 = load { ptr, i64, i64 }, ptr %t73 %t75 = extractvalue { ptr, i64, i64 } %t74, 1 %t76 = icmp uge i64 1, %t75 - br i1 %t76, label %range5603, label %inrange5604 -range5603: - call void @finch_panic_index(ptr @.str.3574, i64 2849, i64 1, i64 %t75) + br i1 %t76, label %range5747, label %inrange5748 +range5747: + call void @finch_panic_index(ptr @.str.3659, i64 2930, i64 1, i64 %t75) unreachable -inrange5604: +inrange5748: %t77 = extractvalue { ptr, i64, i64 } %t74, 0 %t78 = getelementptr inbounds %S.ast.Node, ptr %t77, i64 1 %t79 = load %S.ast.Node, ptr %t78 - %t80 = call %S.gen.Val @finch.gen.coerce(ptr %t61, %S.gen.Val %t71, %S.ast.Type %t72, %S.ast.Node %t79, { ptr, i64, i64 } { ptr @.str.3575, i64 7, i64 0 }) + %t80 = call %S.gen.Val @finch.gen.coerce(ptr %t61, %S.gen.Val %t71, %S.ast.Type %t72, %S.ast.Node %t79, { ptr, i64, i64 } { ptr @.str.3660, i64 7, i64 0 }) store %S.gen.Val %t71, ptr %a81 call void @finch.drop.S_gen_Val(ptr %a81) store %S.gen.Val %t80, ptr %a82 @@ -56964,12 +58612,12 @@ inrange5604: call void @finch.gen.release(ptr %t92, %S.gen.Val %t93) %t94 = load ptr, ptr %a1 %t95 = load { ptr, i64, i64 }, ptr %a91 - store { ptr, i64, i64 } { ptr @.str.3576, i64 13, i64 0 }, ptr %a97 + store { ptr, i64, i64 } { ptr @.str.3661, i64 13, i64 0 }, ptr %a97 store { ptr, i64, i64 } %t95, ptr %a98 call void @finch_str_concat(ptr %a96, ptr %a97, ptr %a98) %t99 = load { ptr, i64, i64 }, ptr %a96 store { ptr, i64, i64 } %t99, ptr %a101 - store { ptr, i64, i64 } { ptr @.str.3577, i64 3, i64 0 }, ptr %a102 + store { ptr, i64, i64 } { ptr @.str.3662, i64 3, i64 0 }, ptr %a102 call void @finch_str_concat(ptr %a100, ptr %a101, ptr %a102) store { ptr, i64, i64 } %t99, ptr %a103 call void @finch_str_drop(ptr %a103) @@ -56980,17 +58628,17 @@ inrange5604: store { ptr, i64, i64 } %t105, ptr %a107 %t108 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t108, ptr %a109 - store { ptr, i64, i64 } { ptr @.str.3578, i64 3, i64 0 }, ptr %a110 + store { ptr, i64, i64 } { ptr @.str.3663, i64 3, i64 0 }, ptr %a110 %t111 = call i32 @finch_str_eq(ptr %a109, ptr %a110) %t112 = icmp ne i32 %t111, 0 - br i1 %t112, label %then5605, label %endif5607 -then5605: + br i1 %t112, label %then5749, label %endif5751 +then5749: %t113 = load { ptr, i64, i64 }, ptr %a107 store { ptr, i64, i64 } %t113, ptr %a114 call void @finch_str_copy(ptr %a115, ptr %a114) %t116 = load { ptr, i64, i64 }, ptr %a115 %t117 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t116, 0 - %t118 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3579, i64 4, i64 0 }) + %t118 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3664, i64 4, i64 0 }) %t119 = insertvalue %S.gen.Val %t117, %S.ast.Type %t118, 1 call void @finch_str_drop(ptr %a107) call void @finch_str_drop(ptr %a91) @@ -56999,19 +58647,19 @@ then5605: call void @finch.drop.S_ast_Type(ptr %a21) call void @finch_str_drop(ptr %a10) ret %S.gen.Val %t119 -endif5607: +endif5751: %t120 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t120, ptr %a121 - store { ptr, i64, i64 } { ptr @.str.3580, i64 6, i64 0 }, ptr %a122 + store { ptr, i64, i64 } { ptr @.str.3665, i64 6, i64 0 }, ptr %a122 %t123 = call i32 @finch_str_eq(ptr %a121, ptr %a122) %t124 = icmp ne i32 %t123, 0 - br i1 %t124, label %then5608, label %endif5610 -then5608: + br i1 %t124, label %then5752, label %endif5754 +then5752: %t125 = load ptr, ptr %a1 - %t126 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t125, { ptr, i64, i64 } { ptr @.str.3581, i64 10, i64 0 }) + %t126 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t125, { ptr, i64, i64 } { ptr @.str.3666, i64 10, i64 0 }) store { ptr, i64, i64 } %t126, ptr %a127 %t128 = load ptr, ptr %a1 - %t129 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t128, { ptr, i64, i64 } { ptr @.str.3582, i64 10, i64 0 }) + %t129 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t128, { ptr, i64, i64 } { ptr @.str.3667, i64 10, i64 0 }) store { ptr, i64, i64 } %t129, ptr %a130 %t131 = load ptr, ptr %a1 %t132 = load { ptr, i64, i64 }, ptr %a107 @@ -57047,12 +58695,12 @@ then5608: call void @finch_str_drop(ptr %a156) %t157 = load ptr, ptr %a1 %t158 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.3583, i64 35, i64 0 }, ptr %a160 + store { ptr, i64, i64 } { ptr @.str.3668, i64 35, i64 0 }, ptr %a160 store { ptr, i64, i64 } %t158, ptr %a161 call void @finch_str_concat(ptr %a159, ptr %a160, ptr %a161) %t162 = load { ptr, i64, i64 }, ptr %a159 store { ptr, i64, i64 } %t162, ptr %a164 - store { ptr, i64, i64 } { ptr @.str.3584, i64 6, i64 0 }, ptr %a165 + store { ptr, i64, i64 } { ptr @.str.3669, i64 6, i64 0 }, ptr %a165 call void @finch_str_concat(ptr %a163, ptr %a164, ptr %a165) store { ptr, i64, i64 } %t162, ptr %a166 call void @finch_str_drop(ptr %a166) @@ -57065,7 +58713,7 @@ then5608: call void @finch_str_drop(ptr %a172) %t173 = load { ptr, i64, i64 }, ptr %a169 store { ptr, i64, i64 } %t173, ptr %a175 - store { ptr, i64, i64 } { ptr @.str.3585, i64 6, i64 0 }, ptr %a176 + store { ptr, i64, i64 } { ptr @.str.3670, i64 6, i64 0 }, ptr %a176 call void @finch_str_concat(ptr %a174, ptr %a175, ptr %a176) store { ptr, i64, i64 } %t173, ptr %a177 call void @finch_str_drop(ptr %a177) @@ -57082,7 +58730,7 @@ then5608: call void @finch_str_drop(ptr %a186) %t187 = load { ptr, i64, i64 }, ptr %a182 store { ptr, i64, i64 } %t187, ptr %a189 - store { ptr, i64, i64 } { ptr @.str.3586, i64 1, i64 0 }, ptr %a190 + store { ptr, i64, i64 } { ptr @.str.3671, i64 1, i64 0 }, ptr %a190 call void @finch_str_concat(ptr %a188, ptr %a189, ptr %a190) store { ptr, i64, i64 } %t187, ptr %a191 call void @finch_str_drop(ptr %a191) @@ -57101,7 +58749,7 @@ then5608: call void @finch_str_copy(ptr %a200, ptr %a199) %t201 = load { ptr, i64, i64 }, ptr %a200 %t202 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t201, 0 - %t203 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3587, i64 4, i64 0 }) + %t203 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3672, i64 4, i64 0 }) %t204 = insertvalue %S.gen.Val %t202, %S.ast.Type %t203, 1 call void @finch_str_drop(ptr %a142) call void @finch_str_drop(ptr %a130) @@ -57113,21 +58761,21 @@ then5608: call void @finch.drop.S_ast_Type(ptr %a21) call void @finch_str_drop(ptr %a10) ret %S.gen.Val %t204 -endif5610: +endif5754: %t205 = load ptr, ptr %a1 - %t206 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t205, { ptr, i64, i64 } { ptr @.str.3588, i64 9, i64 0 }) + %t206 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t205, { ptr, i64, i64 } { ptr @.str.3673, i64 9, i64 0 }) store { ptr, i64, i64 } %t206, ptr %a207 %t208 = load ptr, ptr %a1 - %t209 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t208, { ptr, i64, i64 } { ptr @.str.3589, i64 11, i64 0 }) + %t209 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t208, { ptr, i64, i64 } { ptr @.str.3674, i64 11, i64 0 }) store { ptr, i64, i64 } %t209, ptr %a210 %t211 = load ptr, ptr %a1 - %t212 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t211, { ptr, i64, i64 } { ptr @.str.3590, i64 8, i64 0 }) + %t212 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t211, { ptr, i64, i64 } { ptr @.str.3675, i64 8, i64 0 }) store { ptr, i64, i64 } %t212, ptr %a213 %t214 = load ptr, ptr %a1 - %t215 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t214, { ptr, i64, i64 } { ptr @.str.3591, i64 8, i64 0 }) + %t215 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t214, { ptr, i64, i64 } { ptr @.str.3676, i64 8, i64 0 }) store { ptr, i64, i64 } %t215, ptr %a216 %t217 = load ptr, ptr %a1 - %t218 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t217, { ptr, i64, i64 } { ptr @.str.3592, i64 7, i64 0 }) + %t218 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t217, { ptr, i64, i64 } { ptr @.str.3677, i64 7, i64 0 }) store { ptr, i64, i64 } %t218, ptr %a219 %t220 = load ptr, ptr %a1 %t221 = load { ptr, i64, i64 }, ptr %a107 @@ -57181,11 +58829,11 @@ endif5610: %t259 = load { ptr, i64, i64 }, ptr %t258 %t260 = extractvalue { ptr, i64, i64 } %t259, 1 %t261 = icmp uge i64 2, %t260 - br i1 %t261, label %range5611, label %inrange5612 -range5611: - call void @finch_panic_index(ptr @.str.3593, i64 2882, i64 2, i64 %t260) + br i1 %t261, label %range5755, label %inrange5756 +range5755: + call void @finch_panic_index(ptr @.str.3678, i64 2963, i64 2, i64 %t260) unreachable -inrange5612: +inrange5756: %t262 = extractvalue { ptr, i64, i64 } %t259, 0 %t263 = getelementptr inbounds %S.ast.Node, ptr %t262, i64 2 %t264 = load %S.ast.Node, ptr %t263 @@ -57196,15 +58844,15 @@ inrange5612: %t269 = load { ptr, i64, i64 }, ptr %t268 %t270 = extractvalue { ptr, i64, i64 } %t269, 1 %t271 = icmp uge i64 2, %t270 - br i1 %t271, label %range5613, label %inrange5614 -range5613: - call void @finch_panic_index(ptr @.str.3594, i64 2882, i64 2, i64 %t270) + br i1 %t271, label %range5757, label %inrange5758 +range5757: + call void @finch_panic_index(ptr @.str.3679, i64 2963, i64 2, i64 %t270) unreachable -inrange5614: +inrange5758: %t272 = extractvalue { ptr, i64, i64 } %t269, 0 %t273 = getelementptr inbounds %S.ast.Node, ptr %t272, i64 2 %t274 = load %S.ast.Node, ptr %t273 - %t275 = call %S.gen.Val @finch.gen.coerce(ptr %t256, %S.gen.Val %t266, %S.ast.Type %t267, %S.ast.Node %t274, { ptr, i64, i64 } { ptr @.str.3595, i64 11, i64 0 }) + %t275 = call %S.gen.Val @finch.gen.coerce(ptr %t256, %S.gen.Val %t266, %S.ast.Type %t267, %S.ast.Node %t274, { ptr, i64, i64 } { ptr @.str.3680, i64 11, i64 0 }) store %S.gen.Val %t266, ptr %a276 call void @finch.drop.S_gen_Val(ptr %a276) %t277 = call { ptr, i64, i64 } @finch.gen.own(ptr %t255, %S.gen.Val %t275) @@ -57227,14 +58875,14 @@ inrange5614: %t289 = load ptr, ptr %a1 %t290 = load %S.ast.Type, ptr %a32 %t291 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t289, %S.ast.Type %t290) - store { ptr, i64, i64 } { ptr @.str.3596, i64 4, i64 0 }, ptr %a293 + store { ptr, i64, i64 } { ptr @.str.3681, i64 4, i64 0 }, ptr %a293 store { ptr, i64, i64 } %t291, ptr %a294 call void @finch_str_concat(ptr %a292, ptr %a293, ptr %a294) store { ptr, i64, i64 } %t291, ptr %a295 call void @finch_str_drop(ptr %a295) %t296 = load { ptr, i64, i64 }, ptr %a292 store { ptr, i64, i64 } %t296, ptr %a298 - store { ptr, i64, i64 } { ptr @.str.3597, i64 3, i64 0 }, ptr %a299 + store { ptr, i64, i64 } { ptr @.str.3682, i64 3, i64 0 }, ptr %a299 call void @finch_str_concat(ptr %a297, ptr %a298, ptr %a299) store { ptr, i64, i64 } %t296, ptr %a300 call void @finch_str_drop(ptr %a300) @@ -57247,7 +58895,7 @@ inrange5614: call void @finch_str_drop(ptr %a306) %t307 = load { ptr, i64, i64 }, ptr %a303 store { ptr, i64, i64 } %t307, ptr %a309 - store { ptr, i64, i64 } { ptr @.str.3598, i64 3, i64 0 }, ptr %a310 + store { ptr, i64, i64 } { ptr @.str.3683, i64 3, i64 0 }, ptr %a310 call void @finch_str_concat(ptr %a308, ptr %a309, ptr %a310) store { ptr, i64, i64 } %t307, ptr %a311 call void @finch_str_drop(ptr %a311) @@ -57260,7 +58908,7 @@ inrange5614: call void @finch_str_drop(ptr %a317) %t318 = load { ptr, i64, i64 }, ptr %a314 store { ptr, i64, i64 } %t318, ptr %a320 - store { ptr, i64, i64 } { ptr @.str.3599, i64 6, i64 0 }, ptr %a321 + store { ptr, i64, i64 } { ptr @.str.3684, i64 6, i64 0 }, ptr %a321 call void @finch_str_concat(ptr %a319, ptr %a320, ptr %a321) store { ptr, i64, i64 } %t318, ptr %a322 call void @finch_str_drop(ptr %a322) @@ -57273,7 +58921,7 @@ inrange5614: call void @finch_str_drop(ptr %a328) %t329 = load { ptr, i64, i64 }, ptr %a325 store { ptr, i64, i64 } %t329, ptr %a331 - store { ptr, i64, i64 } { ptr @.str.3600, i64 3, i64 0 }, ptr %a332 + store { ptr, i64, i64 } { ptr @.str.3685, i64 3, i64 0 }, ptr %a332 call void @finch_str_concat(ptr %a330, ptr %a331, ptr %a332) store { ptr, i64, i64 } %t329, ptr %a333 call void @finch_str_drop(ptr %a333) @@ -57286,7 +58934,7 @@ inrange5614: call void @finch_str_drop(ptr %a339) %t340 = load { ptr, i64, i64 }, ptr %a336 store { ptr, i64, i64 } %t340, ptr %a342 - store { ptr, i64, i64 } { ptr @.str.3601, i64 2, i64 0 }, ptr %a343 + store { ptr, i64, i64 } { ptr @.str.3686, i64 2, i64 0 }, ptr %a343 call void @finch_str_concat(ptr %a341, ptr %a342, ptr %a343) store { ptr, i64, i64 } %t340, ptr %a344 call void @finch_str_drop(ptr %a344) @@ -57318,14 +58966,14 @@ inrange5614: call void @finch.drop.S_ast_Type(ptr %a21) call void @finch_str_drop(ptr %a10) ret %S.gen.Val %t357 -endif5597: +endif5741: %t358 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t358, ptr %a359 - store { ptr, i64, i64 } { ptr @.str.3602, i64 5, i64 0 }, ptr %a360 + store { ptr, i64, i64 } { ptr @.str.3687, i64 5, i64 0 }, ptr %a360 %t361 = call i32 @finch_str_eq(ptr %a359, ptr %a360) %t362 = icmp ne i32 %t361, 0 - br i1 %t362, label %then5615, label %endif5617 -then5615: + br i1 %t362, label %then5759, label %endif5761 +then5759: %t363 = load ptr, ptr %a1 %t364 = load %S.ast.Node, ptr %a2 %t365 = load { ptr, i64, i64 }, ptr %a10 @@ -57333,33 +58981,33 @@ then5615: %t366 = load ptr, ptr %a1 %t367 = load %S.ast.Type, ptr %a21 %t368 = call i1 @finch.gen.owning(ptr %t366, %S.ast.Type %t367) - br label %logic.from5618 -logic.from5618: - br i1 %t368, label %logic.end5620, label %logic.rhs5619 -logic.rhs5619: + br label %logic.from5762 +logic.from5762: + br i1 %t368, label %logic.end5764, label %logic.rhs5763 +logic.rhs5763: %t369 = load ptr, ptr %a1 %t370 = load %S.ast.Type, ptr %a32 %t371 = call i1 @finch.gen.owning(ptr %t369, %S.ast.Type %t370) - br label %logic.rend5621 -logic.rend5621: - br label %logic.end5620 -logic.end5620: - %t372 = phi i1 [ true, %logic.from5618 ], [ %t371, %logic.rend5621 ] - br i1 %t372, label %then5622, label %endif5624 -then5622: + br label %logic.rend5765 +logic.rend5765: + br label %logic.end5764 +logic.end5764: + %t372 = phi i1 [ true, %logic.from5762 ], [ %t371, %logic.rend5765 ] + br i1 %t372, label %then5766, label %endif5768 +then5766: %t373 = load ptr, ptr %a1 %t374 = load ptr, ptr %a1 %t375 = load ptr, ptr %a1 %t376 = load %S.ast.Type, ptr %a4 %t377 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t375, %S.ast.Type %t376) - store { ptr, i64, i64 } { ptr @.str.3604, i64 23, i64 0 }, ptr %a379 + store { ptr, i64, i64 } { ptr @.str.3689, i64 23, i64 0 }, ptr %a379 store { ptr, i64, i64 } %t377, ptr %a380 call void @finch_str_concat(ptr %a378, ptr %a379, ptr %a380) store { ptr, i64, i64 } %t377, ptr %a381 call void @finch_str_drop(ptr %a381) %t382 = load { ptr, i64, i64 }, ptr %a378 store { ptr, i64, i64 } %t382, ptr %a384 - store { ptr, i64, i64 } { ptr @.str.3605, i64 6, i64 0 }, ptr %a385 + store { ptr, i64, i64 } { ptr @.str.3690, i64 6, i64 0 }, ptr %a385 call void @finch_str_concat(ptr %a383, ptr %a384, ptr %a385) store { ptr, i64, i64 } %t382, ptr %a386 call void @finch_str_drop(ptr %a386) @@ -57372,7 +59020,7 @@ then5622: call void @finch_str_drop(ptr %a392) %t393 = load { ptr, i64, i64 }, ptr %a389 store { ptr, i64, i64 } %t393, ptr %a395 - store { ptr, i64, i64 } { ptr @.str.3606, i64 14, i64 0 }, ptr %a396 + store { ptr, i64, i64 } { ptr @.str.3691, i64 14, i64 0 }, ptr %a396 call void @finch_str_concat(ptr %a394, ptr %a395, ptr %a396) store { ptr, i64, i64 } %t393, ptr %a397 call void @finch_str_drop(ptr %a397) @@ -57380,7 +59028,7 @@ then5622: %t399 = call { ptr, i64, i64 } @finch.gen.op(ptr %t374, { ptr, i64, i64 } %t398) store { ptr, i64, i64 } %t398, ptr %a400 call void @finch_str_drop(ptr %a400) - %t401 = call { ptr, i64, i64 } @finch.gen.load(ptr %t373, { ptr, i64, i64 } { ptr @.str.3603, i64 3, i64 0 }, { ptr, i64, i64 } %t399) + %t401 = call { ptr, i64, i64 } @finch.gen.load(ptr %t373, { ptr, i64, i64 } { ptr @.str.3688, i64 3, i64 0 }, { ptr, i64, i64 } %t399) store { ptr, i64, i64 } %t399, ptr %a402 call void @finch_str_drop(ptr %a402) store { ptr, i64, i64 } %t401, ptr %a403 @@ -57394,21 +59042,21 @@ then5622: %t411 = load { ptr, i64, i64 }, ptr %a407 %t412 = extractvalue { ptr, i64, i64 } %t411, 1 %t413 = icmp uge i64 3, %t412 - br i1 %t413, label %range5625, label %inrange5626 -range5625: - call void @finch_panic_index(ptr @.str.3607, i64 2894, i64 3, i64 %t412) + br i1 %t413, label %range5769, label %inrange5770 +range5769: + call void @finch_panic_index(ptr @.str.3692, i64 2975, i64 3, i64 %t412) unreachable -inrange5626: +inrange5770: %t414 = extractvalue { ptr, i64, i64 } %t411, 0 %t415 = getelementptr inbounds { ptr, i64, i64 }, ptr %t414, i64 3 %t416 = load { ptr, i64, i64 }, ptr %t415 %t417 = call { ptr, i64, i64 } @finch.gen.entryAt(ptr %t408, { ptr, i64, i64 } %t409, %S.ast.Type %t410, { ptr, i64, i64 } %t416) store { ptr, i64, i64 } %t417, ptr %a418 %t419 = load ptr, ptr %a1 - %t420 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t419, { ptr, i64, i64 } { ptr @.str.3608, i64 10, i64 0 }) + %t420 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t419, { ptr, i64, i64 } { ptr @.str.3693, i64 10, i64 0 }) store { ptr, i64, i64 } %t420, ptr %a421 %t422 = load ptr, ptr %a1 - %t423 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t422, { ptr, i64, i64 } { ptr @.str.3609, i64 10, i64 0 }) + %t423 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t422, { ptr, i64, i64 } { ptr @.str.3694, i64 10, i64 0 }) store { ptr, i64, i64 } %t423, ptr %a424 %t425 = load ptr, ptr %a1 %t426 = load ptr, ptr %a1 @@ -57417,17 +59065,17 @@ inrange5626: %t429 = load { ptr, i64, i64 }, ptr %a418 %t430 = load %S.ast.Type, ptr %a4 %t431 = call { ptr, i64, i64 } @finch.gen.entryField(ptr %t428, { ptr, i64, i64 } %t429, %S.ast.Type %t430, i64 0) - %t432 = call { ptr, i64, i64 } @finch.gen.load(ptr %t427, { ptr, i64, i64 } { ptr @.str.3611, i64 3, i64 0 }, { ptr, i64, i64 } %t431) + %t432 = call { ptr, i64, i64 } @finch.gen.load(ptr %t427, { ptr, i64, i64 } { ptr @.str.3696, i64 3, i64 0 }, { ptr, i64, i64 } %t431) store { ptr, i64, i64 } %t431, ptr %a433 call void @finch_str_drop(ptr %a433) - store { ptr, i64, i64 } { ptr @.str.3610, i64 12, i64 0 }, ptr %a435 + store { ptr, i64, i64 } { ptr @.str.3695, i64 12, i64 0 }, ptr %a435 store { ptr, i64, i64 } %t432, ptr %a436 call void @finch_str_concat(ptr %a434, ptr %a435, ptr %a436) store { ptr, i64, i64 } %t432, ptr %a437 call void @finch_str_drop(ptr %a437) %t438 = load { ptr, i64, i64 }, ptr %a434 store { ptr, i64, i64 } %t438, ptr %a440 - store { ptr, i64, i64 } { ptr @.str.3612, i64 3, i64 0 }, ptr %a441 + store { ptr, i64, i64 } { ptr @.str.3697, i64 3, i64 0 }, ptr %a441 call void @finch_str_concat(ptr %a439, ptr %a440, ptr %a441) store { ptr, i64, i64 } %t438, ptr %a442 call void @finch_str_drop(ptr %a442) @@ -57475,16 +59123,16 @@ inrange5626: call void @finch_str_drop(ptr %a418) call void @finch.drop.arr_str(ptr %a407) call void @finch_str_drop(ptr %a403) - br label %endif5624 -endif5624: + br label %endif5768 +endif5768: %t471 = load ptr, ptr %a1 %t472 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.3613, i64 31, i64 0 }, ptr %a474 + store { ptr, i64, i64 } { ptr @.str.3698, i64 31, i64 0 }, ptr %a474 store { ptr, i64, i64 } %t472, ptr %a475 call void @finch_str_concat(ptr %a473, ptr %a474, ptr %a475) %t476 = load { ptr, i64, i64 }, ptr %a473 store { ptr, i64, i64 } %t476, ptr %a478 - store { ptr, i64, i64 } { ptr @.str.3614, i64 1, i64 0 }, ptr %a479 + store { ptr, i64, i64 } { ptr @.str.3699, i64 1, i64 0 }, ptr %a479 call void @finch_str_concat(ptr %a477, ptr %a478, ptr %a479) store { ptr, i64, i64 } %t476, ptr %a480 call void @finch_str_drop(ptr %a480) @@ -57492,34 +59140,34 @@ endif5624: call void @finch.gen.emit(ptr %t471, { ptr, i64, i64 } %t481) store { ptr, i64, i64 } %t481, ptr %a482 call void @finch_str_drop(ptr %a482) - %t483 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3615, i64 4, i64 0 }) + %t483 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3700, i64 4, i64 0 }) %t484 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t483, 1 call void @finch.drop.S_ast_Type(ptr %a32) call void @finch.drop.S_ast_Type(ptr %a21) call void @finch_str_drop(ptr %a10) ret %S.gen.Val %t484 -endif5617: +endif5761: %t485 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t485, ptr %a486 - store { ptr, i64, i64 } { ptr @.str.3616, i64 4, i64 0 }, ptr %a487 + store { ptr, i64, i64 } { ptr @.str.3701, i64 4, i64 0 }, ptr %a487 %t488 = call i32 @finch_str_eq(ptr %a486, ptr %a487) %t489 = icmp ne i32 %t488, 0 - br label %logic.from5627 -logic.from5627: - br i1 %t489, label %logic.end5629, label %logic.rhs5628 -logic.rhs5628: + br label %logic.from5771 +logic.from5771: + br i1 %t489, label %logic.end5773, label %logic.rhs5772 +logic.rhs5772: %t490 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t490, ptr %a491 - store { ptr, i64, i64 } { ptr @.str.3617, i64 6, i64 0 }, ptr %a492 + store { ptr, i64, i64 } { ptr @.str.3702, i64 6, i64 0 }, ptr %a492 %t493 = call i32 @finch_str_eq(ptr %a491, ptr %a492) %t494 = icmp ne i32 %t493, 0 - br label %logic.rend5630 -logic.rend5630: - br label %logic.end5629 -logic.end5629: - %t495 = phi i1 [ true, %logic.from5627 ], [ %t494, %logic.rend5630 ] - br i1 %t495, label %then5631, label %endif5633 -then5631: + br label %logic.rend5774 +logic.rend5774: + br label %logic.end5773 +logic.end5773: + %t495 = phi i1 [ true, %logic.from5771 ], [ %t494, %logic.rend5774 ] + br i1 %t495, label %then5775, label %endif5777 +then5775: %t496 = load ptr, ptr %a1 %t497 = load %S.ast.Node, ptr %a2 %t498 = load { ptr, i64, i64 }, ptr %a10 @@ -57532,11 +59180,11 @@ then5631: store %S.ast.Type %t503, ptr %a504 %t505 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t505, ptr %a506 - store { ptr, i64, i64 } { ptr @.str.3618, i64 6, i64 0 }, ptr %a507 + store { ptr, i64, i64 } { ptr @.str.3703, i64 6, i64 0 }, ptr %a507 %t508 = call i32 @finch_str_eq(ptr %a506, ptr %a507) %t509 = icmp ne i32 %t508, 0 - br i1 %t509, label %then5634, label %endif5636 -then5634: + br i1 %t509, label %then5778, label %endif5780 +then5778: store i64 2, ptr %a499 %t510 = load %S.ast.Type, ptr %a32 store %S.ast.Type %t510, ptr %a511 @@ -57546,30 +59194,30 @@ then5634: store %S.ast.Type %t513, ptr %a504 store %S.ast.Type %t514, ptr %a515 call void @finch.drop.S_ast_Type(ptr %a515) - br label %endif5636 -endif5636: + br label %endif5780 +endif5780: %t516 = load %S.ast.Type, ptr %a504 %t517 = call %S.ast.Type @finch.ast.arrayOf(%S.ast.Type %t516) store %S.ast.Type %t517, ptr %a518 %t519 = load ptr, ptr %a1 - %t520 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t519, { ptr, i64, i64 } { ptr @.str.3619, i64 17, i64 0 }) + %t520 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t519, { ptr, i64, i64 } { ptr @.str.3704, i64 17, i64 0 }) store { ptr, i64, i64 } %t520, ptr %a521 %t522 = load ptr, ptr %a1 %t523 = load { ptr, i64, i64 }, ptr %a521 - call void @finch.gen.store(ptr %t522, { ptr, i64, i64 } { ptr @.str.3620, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.3621, i64 15, i64 0 }, { ptr, i64, i64 } %t523) + call void @finch.gen.store(ptr %t522, { ptr, i64, i64 } { ptr @.str.3705, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.3706, i64 15, i64 0 }, { ptr, i64, i64 } %t523) %t524 = load ptr, ptr %a1 %t525 = load ptr, ptr %a1 %t526 = load ptr, ptr %a1 %t527 = load %S.ast.Type, ptr %a4 %t528 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t526, %S.ast.Type %t527) - store { ptr, i64, i64 } { ptr @.str.3623, i64 23, i64 0 }, ptr %a530 + store { ptr, i64, i64 } { ptr @.str.3708, i64 23, i64 0 }, ptr %a530 store { ptr, i64, i64 } %t528, ptr %a531 call void @finch_str_concat(ptr %a529, ptr %a530, ptr %a531) store { ptr, i64, i64 } %t528, ptr %a532 call void @finch_str_drop(ptr %a532) %t533 = load { ptr, i64, i64 }, ptr %a529 store { ptr, i64, i64 } %t533, ptr %a535 - store { ptr, i64, i64 } { ptr @.str.3624, i64 6, i64 0 }, ptr %a536 + store { ptr, i64, i64 } { ptr @.str.3709, i64 6, i64 0 }, ptr %a536 call void @finch_str_concat(ptr %a534, ptr %a535, ptr %a536) store { ptr, i64, i64 } %t533, ptr %a537 call void @finch_str_drop(ptr %a537) @@ -57582,7 +59230,7 @@ endif5636: call void @finch_str_drop(ptr %a543) %t544 = load { ptr, i64, i64 }, ptr %a540 store { ptr, i64, i64 } %t544, ptr %a546 - store { ptr, i64, i64 } { ptr @.str.3625, i64 14, i64 0 }, ptr %a547 + store { ptr, i64, i64 } { ptr @.str.3710, i64 14, i64 0 }, ptr %a547 call void @finch_str_concat(ptr %a545, ptr %a546, ptr %a547) store { ptr, i64, i64 } %t544, ptr %a548 call void @finch_str_drop(ptr %a548) @@ -57590,18 +59238,18 @@ endif5636: %t550 = call { ptr, i64, i64 } @finch.gen.op(ptr %t525, { ptr, i64, i64 } %t549) store { ptr, i64, i64 } %t549, ptr %a551 call void @finch_str_drop(ptr %a551) - %t552 = call { ptr, i64, i64 } @finch.gen.load(ptr %t524, { ptr, i64, i64 } { ptr @.str.3622, i64 3, i64 0 }, { ptr, i64, i64 } %t550) + %t552 = call { ptr, i64, i64 } @finch.gen.load(ptr %t524, { ptr, i64, i64 } { ptr @.str.3707, i64 3, i64 0 }, { ptr, i64, i64 } %t550) store { ptr, i64, i64 } %t550, ptr %a553 call void @finch_str_drop(ptr %a553) store { ptr, i64, i64 } %t552, ptr %a554 %t555 = load ptr, ptr %a1 %t556 = load { ptr, i64, i64 }, ptr %a521 - store { ptr, i64, i64 } { ptr @.str.3626, i64 30, i64 0 }, ptr %a558 + store { ptr, i64, i64 } { ptr @.str.3711, i64 30, i64 0 }, ptr %a558 store { ptr, i64, i64 } %t556, ptr %a559 call void @finch_str_concat(ptr %a557, ptr %a558, ptr %a559) %t560 = load { ptr, i64, i64 }, ptr %a557 store { ptr, i64, i64 } %t560, ptr %a562 - store { ptr, i64, i64 } { ptr @.str.3627, i64 6, i64 0 }, ptr %a563 + store { ptr, i64, i64 } { ptr @.str.3712, i64 6, i64 0 }, ptr %a563 call void @finch_str_concat(ptr %a561, ptr %a562, ptr %a563) store { ptr, i64, i64 } %t560, ptr %a564 call void @finch_str_drop(ptr %a564) @@ -57614,7 +59262,7 @@ endif5636: call void @finch_str_drop(ptr %a570) %t571 = load { ptr, i64, i64 }, ptr %a567 store { ptr, i64, i64 } %t571, ptr %a573 - store { ptr, i64, i64 } { ptr @.str.3628, i64 6, i64 0 }, ptr %a574 + store { ptr, i64, i64 } { ptr @.str.3713, i64 6, i64 0 }, ptr %a574 call void @finch_str_concat(ptr %a572, ptr %a573, ptr %a574) store { ptr, i64, i64 } %t571, ptr %a575 call void @finch_str_drop(ptr %a575) @@ -57631,7 +59279,7 @@ endif5636: call void @finch_str_drop(ptr %a584) %t585 = load { ptr, i64, i64 }, ptr %a580 store { ptr, i64, i64 } %t585, ptr %a587 - store { ptr, i64, i64 } { ptr @.str.3629, i64 1, i64 0 }, ptr %a588 + store { ptr, i64, i64 } { ptr @.str.3714, i64 1, i64 0 }, ptr %a588 call void @finch_str_concat(ptr %a586, ptr %a587, ptr %a588) store { ptr, i64, i64 } %t585, ptr %a589 call void @finch_str_drop(ptr %a589) @@ -57641,27 +59289,27 @@ endif5636: call void @finch_str_drop(ptr %a591) %t592 = load ptr, ptr %a1 %t593 = load { ptr, i64, i64 }, ptr %a521 - %t594 = call { ptr, i64, i64 } @finch.gen.load(ptr %t592, { ptr, i64, i64 } { ptr @.str.3630, i64 3, i64 0 }, { ptr, i64, i64 } %t593) + %t594 = call { ptr, i64, i64 } @finch.gen.load(ptr %t592, { ptr, i64, i64 } { ptr @.str.3715, i64 3, i64 0 }, { ptr, i64, i64 } %t593) store { ptr, i64, i64 } %t594, ptr %a595 %t596 = load ptr, ptr %a1 - %t597 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t596, { ptr, i64, i64 } { ptr @.str.3631, i64 3, i64 0 }) + %t597 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t596, { ptr, i64, i64 } { ptr @.str.3716, i64 3, i64 0 }) store { ptr, i64, i64 } %t597, ptr %a598 %t599 = load ptr, ptr %a1 %t600 = load { ptr, i64, i64 }, ptr %a598 - call void @finch.gen.store(ptr %t599, { ptr, i64, i64 } { ptr @.str.3632, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.3633, i64 1, i64 0 }, { ptr, i64, i64 } %t600) + call void @finch.gen.store(ptr %t599, { ptr, i64, i64 } { ptr @.str.3717, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.3718, i64 1, i64 0 }, { ptr, i64, i64 } %t600) %t601 = load ptr, ptr %a1 %t602 = load ptr, ptr %a1 %t603 = load ptr, ptr %a1 %t604 = load %S.ast.Type, ptr %a4 %t605 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t603, %S.ast.Type %t604) - store { ptr, i64, i64 } { ptr @.str.3635, i64 23, i64 0 }, ptr %a607 + store { ptr, i64, i64 } { ptr @.str.3720, i64 23, i64 0 }, ptr %a607 store { ptr, i64, i64 } %t605, ptr %a608 call void @finch_str_concat(ptr %a606, ptr %a607, ptr %a608) store { ptr, i64, i64 } %t605, ptr %a609 call void @finch_str_drop(ptr %a609) %t610 = load { ptr, i64, i64 }, ptr %a606 store { ptr, i64, i64 } %t610, ptr %a612 - store { ptr, i64, i64 } { ptr @.str.3636, i64 6, i64 0 }, ptr %a613 + store { ptr, i64, i64 } { ptr @.str.3721, i64 6, i64 0 }, ptr %a613 call void @finch_str_concat(ptr %a611, ptr %a612, ptr %a613) store { ptr, i64, i64 } %t610, ptr %a614 call void @finch_str_drop(ptr %a614) @@ -57674,7 +59322,7 @@ endif5636: call void @finch_str_drop(ptr %a620) %t621 = load { ptr, i64, i64 }, ptr %a617 store { ptr, i64, i64 } %t621, ptr %a623 - store { ptr, i64, i64 } { ptr @.str.3637, i64 14, i64 0 }, ptr %a624 + store { ptr, i64, i64 } { ptr @.str.3722, i64 14, i64 0 }, ptr %a624 call void @finch_str_concat(ptr %a622, ptr %a623, ptr %a624) store { ptr, i64, i64 } %t621, ptr %a625 call void @finch_str_drop(ptr %a625) @@ -57682,7 +59330,7 @@ endif5636: %t627 = call { ptr, i64, i64 } @finch.gen.op(ptr %t602, { ptr, i64, i64 } %t626) store { ptr, i64, i64 } %t626, ptr %a628 call void @finch_str_drop(ptr %a628) - %t629 = call { ptr, i64, i64 } @finch.gen.load(ptr %t601, { ptr, i64, i64 } { ptr @.str.3634, i64 3, i64 0 }, { ptr, i64, i64 } %t627) + %t629 = call { ptr, i64, i64 } @finch.gen.load(ptr %t601, { ptr, i64, i64 } { ptr @.str.3719, i64 3, i64 0 }, { ptr, i64, i64 } %t627) store { ptr, i64, i64 } %t627, ptr %a630 call void @finch_str_drop(ptr %a630) store { ptr, i64, i64 } %t629, ptr %a631 @@ -57696,21 +59344,21 @@ endif5636: %t639 = load { ptr, i64, i64 }, ptr %a635 %t640 = extractvalue { ptr, i64, i64 } %t639, 1 %t641 = icmp uge i64 3, %t640 - br i1 %t641, label %range5637, label %inrange5638 -range5637: - call void @finch_panic_index(ptr @.str.3638, i64 2926, i64 3, i64 %t640) + br i1 %t641, label %range5781, label %inrange5782 +range5781: + call void @finch_panic_index(ptr @.str.3723, i64 3007, i64 3, i64 %t640) unreachable -inrange5638: +inrange5782: %t642 = extractvalue { ptr, i64, i64 } %t639, 0 %t643 = getelementptr inbounds { ptr, i64, i64 }, ptr %t642, i64 3 %t644 = load { ptr, i64, i64 }, ptr %t643 %t645 = call { ptr, i64, i64 } @finch.gen.entryAt(ptr %t636, { ptr, i64, i64 } %t637, %S.ast.Type %t638, { ptr, i64, i64 } %t644) store { ptr, i64, i64 } %t645, ptr %a646 %t647 = load ptr, ptr %a1 - %t648 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t647, { ptr, i64, i64 } { ptr @.str.3639, i64 10, i64 0 }) + %t648 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t647, { ptr, i64, i64 } { ptr @.str.3724, i64 10, i64 0 }) store { ptr, i64, i64 } %t648, ptr %a649 %t650 = load ptr, ptr %a1 - %t651 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t650, { ptr, i64, i64 } { ptr @.str.3640, i64 10, i64 0 }) + %t651 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t650, { ptr, i64, i64 } { ptr @.str.3725, i64 10, i64 0 }) store { ptr, i64, i64 } %t651, ptr %a652 %t653 = load ptr, ptr %a1 %t654 = load ptr, ptr %a1 @@ -57719,17 +59367,17 @@ inrange5638: %t657 = load { ptr, i64, i64 }, ptr %a646 %t658 = load %S.ast.Type, ptr %a4 %t659 = call { ptr, i64, i64 } @finch.gen.entryField(ptr %t656, { ptr, i64, i64 } %t657, %S.ast.Type %t658, i64 0) - %t660 = call { ptr, i64, i64 } @finch.gen.load(ptr %t655, { ptr, i64, i64 } { ptr @.str.3642, i64 3, i64 0 }, { ptr, i64, i64 } %t659) + %t660 = call { ptr, i64, i64 } @finch.gen.load(ptr %t655, { ptr, i64, i64 } { ptr @.str.3727, i64 3, i64 0 }, { ptr, i64, i64 } %t659) store { ptr, i64, i64 } %t659, ptr %a661 call void @finch_str_drop(ptr %a661) - store { ptr, i64, i64 } { ptr @.str.3641, i64 12, i64 0 }, ptr %a663 + store { ptr, i64, i64 } { ptr @.str.3726, i64 12, i64 0 }, ptr %a663 store { ptr, i64, i64 } %t660, ptr %a664 call void @finch_str_concat(ptr %a662, ptr %a663, ptr %a664) store { ptr, i64, i64 } %t660, ptr %a665 call void @finch_str_drop(ptr %a665) %t666 = load { ptr, i64, i64 }, ptr %a662 store { ptr, i64, i64 } %t666, ptr %a668 - store { ptr, i64, i64 } { ptr @.str.3643, i64 3, i64 0 }, ptr %a669 + store { ptr, i64, i64 } { ptr @.str.3728, i64 3, i64 0 }, ptr %a669 call void @finch_str_concat(ptr %a667, ptr %a668, ptr %a669) store { ptr, i64, i64 } %t666, ptr %a670 call void @finch_str_drop(ptr %a670) @@ -57747,21 +59395,21 @@ inrange5638: call void @finch.gen.label(ptr %t677, { ptr, i64, i64 } %t678) %t679 = load ptr, ptr %a1 %t680 = load { ptr, i64, i64 }, ptr %a598 - %t681 = call { ptr, i64, i64 } @finch.gen.load(ptr %t679, { ptr, i64, i64 } { ptr @.str.3644, i64 3, i64 0 }, { ptr, i64, i64 } %t680) + %t681 = call { ptr, i64, i64 } @finch.gen.load(ptr %t679, { ptr, i64, i64 } { ptr @.str.3729, i64 3, i64 0 }, { ptr, i64, i64 } %t680) store { ptr, i64, i64 } %t681, ptr %a682 %t683 = load ptr, ptr %a1 %t684 = load ptr, ptr %a1 %t685 = load ptr, ptr %a1 %t686 = load %S.ast.Type, ptr %a504 %t687 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t685, %S.ast.Type %t686) - store { ptr, i64, i64 } { ptr @.str.3645, i64 23, i64 0 }, ptr %a689 + store { ptr, i64, i64 } { ptr @.str.3730, i64 23, i64 0 }, ptr %a689 store { ptr, i64, i64 } %t687, ptr %a690 call void @finch_str_concat(ptr %a688, ptr %a689, ptr %a690) store { ptr, i64, i64 } %t687, ptr %a691 call void @finch_str_drop(ptr %a691) %t692 = load { ptr, i64, i64 }, ptr %a688 store { ptr, i64, i64 } %t692, ptr %a694 - store { ptr, i64, i64 } { ptr @.str.3646, i64 6, i64 0 }, ptr %a695 + store { ptr, i64, i64 } { ptr @.str.3731, i64 6, i64 0 }, ptr %a695 call void @finch_str_concat(ptr %a693, ptr %a694, ptr %a695) store { ptr, i64, i64 } %t692, ptr %a696 call void @finch_str_drop(ptr %a696) @@ -57774,7 +59422,7 @@ inrange5638: call void @finch_str_drop(ptr %a702) %t703 = load { ptr, i64, i64 }, ptr %a699 store { ptr, i64, i64 } %t703, ptr %a705 - store { ptr, i64, i64 } { ptr @.str.3647, i64 6, i64 0 }, ptr %a706 + store { ptr, i64, i64 } { ptr @.str.3732, i64 6, i64 0 }, ptr %a706 call void @finch_str_concat(ptr %a704, ptr %a705, ptr %a706) store { ptr, i64, i64 } %t703, ptr %a707 call void @finch_str_drop(ptr %a707) @@ -57803,12 +59451,12 @@ inrange5638: %t725 = load ptr, ptr %a1 %t726 = load ptr, ptr %a1 %t727 = load { ptr, i64, i64 }, ptr %a682 - store { ptr, i64, i64 } { ptr @.str.3649, i64 8, i64 0 }, ptr %a729 + store { ptr, i64, i64 } { ptr @.str.3734, i64 8, i64 0 }, ptr %a729 store { ptr, i64, i64 } %t727, ptr %a730 call void @finch_str_concat(ptr %a728, ptr %a729, ptr %a730) %t731 = load { ptr, i64, i64 }, ptr %a728 store { ptr, i64, i64 } %t731, ptr %a733 - store { ptr, i64, i64 } { ptr @.str.3650, i64 3, i64 0 }, ptr %a734 + store { ptr, i64, i64 } { ptr @.str.3735, i64 3, i64 0 }, ptr %a734 call void @finch_str_concat(ptr %a732, ptr %a733, ptr %a734) store { ptr, i64, i64 } %t731, ptr %a735 call void @finch_str_drop(ptr %a735) @@ -57817,7 +59465,7 @@ inrange5638: store { ptr, i64, i64 } %t736, ptr %a738 call void @finch_str_drop(ptr %a738) %t739 = load { ptr, i64, i64 }, ptr %a598 - call void @finch.gen.store(ptr %t725, { ptr, i64, i64 } { ptr @.str.3648, i64 3, i64 0 }, { ptr, i64, i64 } %t737, { ptr, i64, i64 } %t739) + call void @finch.gen.store(ptr %t725, { ptr, i64, i64 } { ptr @.str.3733, i64 3, i64 0 }, { ptr, i64, i64 } %t737, { ptr, i64, i64 } %t739) store { ptr, i64, i64 } %t737, ptr %a740 call void @finch_str_drop(ptr %a740) %t741 = load ptr, ptr %a1 @@ -57831,7 +59479,7 @@ inrange5638: call void @finch.gen.loopEnd(ptr %t745, { ptr, i64, i64 } %t746) %t747 = load ptr, ptr %a1 %t748 = load { ptr, i64, i64 }, ptr %a521 - %t749 = call { ptr, i64, i64 } @finch.gen.load(ptr %t747, { ptr, i64, i64 } { ptr @.str.3651, i64 17, i64 0 }, { ptr, i64, i64 } %t748) + %t749 = call { ptr, i64, i64 } @finch.gen.load(ptr %t747, { ptr, i64, i64 } { ptr @.str.3736, i64 17, i64 0 }, { ptr, i64, i64 } %t748) %t750 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t749, 0 %t751 = load %S.ast.Type, ptr %a518 store %S.ast.Type %t751, ptr %a752 @@ -57855,16 +59503,16 @@ inrange5638: call void @finch.drop.S_ast_Type(ptr %a21) call void @finch_str_drop(ptr %a10) ret %S.gen.Val %t756 -endif5633: +endif5777: %t757 = load ptr, ptr %a1 %t758 = load %S.ast.Node, ptr %a2 %t759 = load { ptr, i64, i64 }, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.3652, i64 21, i64 0 }, ptr %a761 + store { ptr, i64, i64 } { ptr @.str.3737, i64 21, i64 0 }, ptr %a761 store { ptr, i64, i64 } %t759, ptr %a762 call void @finch_str_concat(ptr %a760, ptr %a761, ptr %a762) %t763 = load { ptr, i64, i64 }, ptr %a760 store { ptr, i64, i64 } %t763, ptr %a765 - store { ptr, i64, i64 } { ptr @.str.3653, i64 49, i64 0 }, ptr %a766 + store { ptr, i64, i64 } { ptr @.str.3738, i64 49, i64 0 }, ptr %a766 call void @finch_str_concat(ptr %a764, ptr %a765, ptr %a766) store { ptr, i64, i64 } %t763, ptr %a767 call void @finch_str_drop(ptr %a767) @@ -57932,47 +59580,47 @@ entry: %t4 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t5 = load { ptr, i64, i64 }, ptr %t4 store { ptr, i64, i64 } %t5, ptr %a6 - store { ptr, i64, i64 } { ptr @.str.3654, i64 4, i64 0 }, ptr %a7 + store { ptr, i64, i64 } { ptr @.str.3739, i64 4, i64 0 }, ptr %a7 %t8 = call i32 @finch_str_eq(ptr %a6, ptr %a7) %t9 = icmp ne i32 %t8, 0 - br label %logic.from5639 -logic.from5639: - br i1 %t9, label %logic.rhs5640, label %logic.end5641 -logic.rhs5640: + br label %logic.from5783 +logic.from5783: + br i1 %t9, label %logic.rhs5784, label %logic.end5785 +logic.rhs5784: %t10 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 %t11 = load { ptr, i64, i64 }, ptr %t10 store { ptr, i64, i64 } %t11, ptr %a12 - store { ptr, i64, i64 } { ptr @.str.3655, i64 3, i64 0 }, ptr %a13 + store { ptr, i64, i64 } { ptr @.str.3740, i64 3, i64 0 }, ptr %a13 %t14 = call i32 @finch_str_eq(ptr %a12, ptr %a13) %t15 = icmp ne i32 %t14, 0 - br label %logic.rend5642 -logic.rend5642: - br label %logic.end5641 -logic.end5641: - %t16 = phi i1 [ false, %logic.from5639 ], [ %t15, %logic.rend5642 ] - br label %logic.from5643 -logic.from5643: - br i1 %t16, label %logic.rhs5644, label %logic.end5645 -logic.rhs5644: + br label %logic.rend5786 +logic.rend5786: + br label %logic.end5785 +logic.end5785: + %t16 = phi i1 [ false, %logic.from5783 ], [ %t15, %logic.rend5786 ] + br label %logic.from5787 +logic.from5787: + br i1 %t16, label %logic.rhs5788, label %logic.end5789 +logic.rhs5788: %t17 = load ptr, ptr %a1 %t18 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t19 = load { ptr, i64, i64 }, ptr %t18 %t20 = call i64 @finch.gen.lookup(ptr %t17, { ptr, i64, i64 } %t19) %t21 = icmp slt i64 %t20, 0 - br label %logic.rend5646 -logic.rend5646: - br label %logic.end5645 -logic.end5645: - %t22 = phi i1 [ false, %logic.from5643 ], [ %t21, %logic.rend5646 ] - br i1 %t22, label %then5647, label %endif5649 -then5647: + br label %logic.rend5790 +logic.rend5790: + br label %logic.end5789 +logic.end5789: + %t22 = phi i1 [ false, %logic.from5787 ], [ %t21, %logic.rend5790 ] + br i1 %t22, label %then5791, label %endif5793 +then5791: %t23 = load ptr, ptr %a1 %t24 = icmp eq ptr %t23, null - br i1 %t24, label %panic5650, label %ok5651 -panic5650: - call void @finch_panic(ptr @.str.3656, i64 2948, ptr @.str.3657) + br i1 %t24, label %panic5794, label %ok5795 +panic5794: + call void @finch_panic(ptr @.str.3741, i64 3029, ptr @.str.3742) unreachable -ok5651: +ok5795: %t25 = getelementptr inbounds %S.gen.Gen, ptr %t23, i32 0, i32 21 %t26 = load ptr, ptr %a1 %t27 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 3 @@ -57983,11 +59631,11 @@ ok5651: %t32 = load { ptr, i64, i64 }, ptr %t25 %t33 = extractvalue { ptr, i64, i64 } %t32, 1 %t34 = icmp uge i64 %t31, %t33 - br i1 %t34, label %range5652, label %inrange5653 -range5652: - call void @finch_panic_index(ptr @.str.3658, i64 2948, i64 %t31, i64 %t33) + br i1 %t34, label %range5796, label %inrange5797 +range5796: + call void @finch_panic_index(ptr @.str.3743, i64 3029, i64 %t31, i64 %t33) unreachable -inrange5653: +inrange5797: %t35 = extractvalue { ptr, i64, i64 } %t32, 0 %t36 = getelementptr inbounds %S.gen.EnumDef, ptr %t35, i64 %t31 %t37 = load %S.gen.EnumDef, ptr %t36 @@ -58003,43 +59651,43 @@ inrange5653: %t47 = load i64, ptr %t43 %t48 = load ptr, ptr %t42 store i64 0, ptr %a49 - br label %find.cond5654 -find.cond5654: + br label %find.cond5798 +find.cond5798: %t50 = load i64, ptr %a49 %t51 = icmp slt i64 %t50, %t47 - br i1 %t51, label %find.body5655, label %find.end5658 -find.body5655: + br i1 %t51, label %find.body5799, label %find.end5802 +find.body5799: %t52 = getelementptr inbounds { ptr, i64, i64 }, ptr %t48, i64 %t50 %t53 = load { ptr, i64, i64 }, ptr %t52 store { ptr, i64, i64 } %t53, ptr %a54 store { ptr, i64, i64 } %t45, ptr %a55 %t56 = call i32 @finch_str_eq(ptr %a54, ptr %a55) %t57 = icmp ne i32 %t56, 0 - br i1 %t57, label %find.hit5656, label %find.next5657 -find.hit5656: + br i1 %t57, label %find.hit5800, label %find.next5801 +find.hit5800: store i64 %t50, ptr %a46 - br label %find.end5658 -find.next5657: + br label %find.end5802 +find.next5801: %t58 = add i64 %t50, 1 store i64 %t58, ptr %a49 - br label %find.cond5654 -find.end5658: + br label %find.cond5798 +find.end5802: %t59 = load i64, ptr %a46 store i64 %t59, ptr %a60 %t61 = load i64, ptr %a60 %t62 = icmp slt i64 %t61, 0 - br i1 %t62, label %then5659, label %endif5661 -then5659: + br i1 %t62, label %then5803, label %endif5805 +then5803: %t63 = load ptr, ptr %a1 %t64 = load %S.ast.Node, ptr %a2 %t65 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t66 = load { ptr, i64, i64 }, ptr %t65 - store { ptr, i64, i64 } { ptr @.str.3659, i64 1, i64 0 }, ptr %a68 + store { ptr, i64, i64 } { ptr @.str.3744, i64 1, i64 0 }, ptr %a68 store { ptr, i64, i64 } %t66, ptr %a69 call void @finch_str_concat(ptr %a67, ptr %a68, ptr %a69) %t70 = load { ptr, i64, i64 }, ptr %a67 store { ptr, i64, i64 } %t70, ptr %a72 - store { ptr, i64, i64 } { ptr @.str.3660, i64 22, i64 0 }, ptr %a73 + store { ptr, i64, i64 } { ptr @.str.3745, i64 22, i64 0 }, ptr %a73 call void @finch_str_concat(ptr %a71, ptr %a72, ptr %a73) store { ptr, i64, i64 } %t70, ptr %a74 call void @finch_str_drop(ptr %a74) @@ -58053,14 +59701,14 @@ then5659: call void @finch_str_drop(ptr %a81) %t82 = load { ptr, i64, i64 }, ptr %a78 store { ptr, i64, i64 } %t82, ptr %a84 - store { ptr, i64, i64 } { ptr @.str.3661, i64 10, i64 0 }, ptr %a85 + store { ptr, i64, i64 } { ptr @.str.3746, i64 10, i64 0 }, ptr %a85 call void @finch_str_concat(ptr %a83, ptr %a84, ptr %a85) store { ptr, i64, i64 } %t82, ptr %a86 call void @finch_str_drop(ptr %a86) %t87 = load { ptr, i64, i64 }, ptr %a83 %t88 = getelementptr inbounds %S.gen.EnumDef, ptr %a41, i32 0, i32 2 %t89 = getelementptr inbounds { ptr, i64, i64 }, ptr %t88, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.3662, i64 2, i64 0 }, ptr %a90 + store { ptr, i64, i64 } { ptr @.str.3747, i64 2, i64 0 }, ptr %a90 call void @finch_str_join(ptr %a91, ptr %t88, ptr %a90) %t92 = load { ptr, i64, i64 }, ptr %a91 store { ptr, i64, i64 } %t87, ptr %a94 @@ -58072,7 +59720,7 @@ then5659: call void @finch_str_drop(ptr %a97) %t98 = load { ptr, i64, i64 }, ptr %a93 store { ptr, i64, i64 } %t98, ptr %a100 - store { ptr, i64, i64 } { ptr @.str.3663, i64 1, i64 0 }, ptr %a101 + store { ptr, i64, i64 } { ptr @.str.3748, i64 1, i64 0 }, ptr %a101 call void @finch_str_concat(ptr %a99, ptr %a100, ptr %a101) store { ptr, i64, i64 } %t98, ptr %a102 call void @finch_str_drop(ptr %a102) @@ -58080,18 +59728,18 @@ then5659: call void @finch.gen.fail(ptr %t63, %S.ast.Node %t64, { ptr, i64, i64 } %t103) store { ptr, i64, i64 } %t103, ptr %a104 call void @finch_str_drop(ptr %a104) - br label %endif5661 -endif5661: + br label %endif5805 +endif5805: %t105 = getelementptr inbounds %S.gen.EnumDef, ptr %a41, i32 0, i32 3 %t106 = load i64, ptr %a60 %t107 = load { ptr, i64, i64 }, ptr %t105 %t108 = extractvalue { ptr, i64, i64 } %t107, 1 %t109 = icmp uge i64 %t106, %t108 - br i1 %t109, label %range5662, label %inrange5663 -range5662: - call void @finch_panic_index(ptr @.str.3664, i64 2953, i64 %t106, i64 %t108) + br i1 %t109, label %range5806, label %inrange5807 +range5806: + call void @finch_panic_index(ptr @.str.3749, i64 3034, i64 %t106, i64 %t108) unreachable -inrange5663: +inrange5807: %t110 = extractvalue { ptr, i64, i64 } %t107, 0 %t111 = getelementptr inbounds i64, ptr %t110, i64 %t106 %t112 = load i64, ptr %t111 @@ -58105,7 +59753,7 @@ inrange5663: %t120 = insertvalue %S.gen.Val %t115, %S.ast.Type %t119, 1 call void @finch.drop.S_gen_EnumDef(ptr %a41) ret %S.gen.Val %t120 -endif5649: +endif5793: %t121 = load ptr, ptr %a1 %t122 = load ptr, ptr %a1 %t123 = load %S.ast.Node, ptr %a2 @@ -58113,12 +59761,20 @@ endif5649: %t125 = call %S.gen.Val @finch.gen.exprWant(ptr %t122, %S.ast.Node %t123, %S.ast.Type %t124) %t126 = load %S.ast.Type, ptr %a3 %t127 = load %S.ast.Node, ptr %a2 - %t128 = call %S.gen.Val @finch.gen.coerce(ptr %t121, %S.gen.Val %t125, %S.ast.Type %t126, %S.ast.Node %t127, { ptr, i64, i64 } { ptr @.str.3665, i64 12, i64 0 }) + %t128 = call %S.gen.Val @finch.gen.coerce(ptr %t121, %S.gen.Val %t125, %S.ast.Type %t126, %S.ast.Node %t127, { ptr, i64, i64 } { ptr @.str.3750, i64 12, i64 0 }) store %S.gen.Val %t125, ptr %a129 call void @finch.drop.S_gen_Val(ptr %a129) ret %S.gen.Val %t128 } +define internal void @finch.drop.S_gen_SumPat(ptr %a) { +entry: + + %t1 = getelementptr inbounds %S.gen.SumPat, ptr %a, i32 0, i32 1 + call void @finch.drop.arr_S_ast_Node(ptr %t1) + ret void +} + define internal %S.gen.Val @finch.gen.matchGen(ptr %p0, %S.ast.Node %p1, i1 %p2) { entry: %a1 = alloca ptr, align 16 @@ -58133,109 +59789,227 @@ entry: %a28 = alloca { ptr, i64, i64 }, align 16 %a29 = alloca { ptr, i64, i64 }, align 16 %a46 = alloca i64, align 16 - %a51 = alloca { ptr, i64, i64 }, align 16 - %a52 = alloca i1, align 16 - %a53 = alloca i1, align 16 + %a49 = alloca i64, align 16 + %a50 = alloca { ptr, i64, i64 }, align 16 + %a53 = alloca { ptr, i64, i64 }, align 16 %a54 = alloca { ptr, i64, i64 }, align 16 - %a55 = alloca { ptr, i64, i64 }, align 16 - %a56 = alloca { ptr, i64, i64 }, align 16 - %a58 = alloca %S.ast.Type, align 16 - %a63 = alloca i64, align 16 - %a65 = alloca i64, align 16 - %a77 = alloca %S.ast.Node, align 16 - %a78 = alloca %S.ast.Node, align 16 - %a80 = alloca %S.ast.Node, align 16 + %a69 = alloca { ptr, i64, i64 }, align 16 + %a70 = alloca { ptr, i64, i64 }, align 16 + %a71 = alloca { ptr, i64, i64 }, align 16 + %a72 = alloca { ptr, i64, i64 }, align 16 + %a74 = alloca { ptr, i64, i64 }, align 16 + %a75 = alloca { ptr, i64, i64 }, align 16 + %a76 = alloca { ptr, i64, i64 }, align 16 + %a77 = alloca { ptr, i64, i64 }, align 16 + %a81 = alloca { ptr, i64, i64 }, align 16 + %a82 = alloca { ptr, i64, i64 }, align 16 + %a83 = alloca { ptr, i64, i64 }, align 16 + %a84 = alloca { ptr, i64, i64 }, align 16 %a86 = alloca { ptr, i64, i64 }, align 16 + %a87 = alloca { ptr, i64, i64 }, align 16 + %a88 = alloca { ptr, i64, i64 }, align 16 %a89 = alloca { ptr, i64, i64 }, align 16 - %a102 = alloca { ptr, i64, i64 }, align 16 - %a103 = alloca { ptr, i64, i64 }, align 16 - %a105 = alloca { ptr, i64, i64 }, align 16 - %a108 = alloca i64, align 16 - %a121 = alloca %S.gen.Val, align 16 - %a125 = alloca i64, align 16 - %a128 = alloca i64, align 16 - %a133 = alloca { ptr, i64, i64 }, align 16 - %a134 = alloca { ptr, i64, i64 }, align 16 - %a142 = alloca { ptr, i64, i64 }, align 16 - %a143 = alloca { ptr, i64, i64 }, align 16 - %a158 = alloca { ptr, i64, i64 }, align 16 - %a159 = alloca { ptr, i64, i64 }, align 16 - %a176 = alloca %S.gen.Val, align 16 - %a189 = alloca { ptr, i64, i64 }, align 16 - %a208 = alloca %S.ast.Node, align 16 - %a209 = alloca %S.ast.Node, align 16 - %a211 = alloca %S.ast.Node, align 16 - %a216 = alloca %S.gen.Val, align 16 - %a221 = alloca { ptr, i64, i64 }, align 16 - %a222 = alloca { ptr, i64, i64 }, align 16 - %a229 = alloca { ptr, i64, i64 }, align 16 - %a230 = alloca { ptr, i64, i64 }, align 16 - %a236 = alloca { ptr, i64, i64 }, align 16 - %a237 = alloca { ptr, i64, i64 }, align 16 - %a245 = alloca %S.ast.Type, align 16 - %a246 = alloca %S.ast.Type, align 16 - %a249 = alloca %S.ast.Type, align 16 - %a256 = alloca %S.gen.Val, align 16 - %a260 = alloca { ptr, i64, i64 }, align 16 - %a263 = alloca { ptr, i64, i64 }, align 16 + %a112 = alloca { ptr, i64, i64 }, align 16 + %a114 = alloca { ptr, i64, i64 }, align 16 + %a115 = alloca { ptr, i64, i64 }, align 16 + %a116 = alloca { ptr, i64, i64 }, align 16 + %a117 = alloca { ptr, i64, i64 }, align 16 + %a118 = alloca { ptr, i64, i64 }, align 16 + %a121 = alloca { ptr, i64, i64 }, align 16 + %a123 = alloca { ptr, i64, i64 }, align 16 + %a126 = alloca { ptr, i64, i64 }, align 16 + %a127 = alloca i1, align 16 + %a128 = alloca i1, align 16 + %a129 = alloca { ptr, i64, i64 }, align 16 + %a130 = alloca { ptr, i64, i64 }, align 16 + %a131 = alloca { ptr, i64, i64 }, align 16 + %a133 = alloca %S.ast.Type, align 16 + %a138 = alloca i64, align 16 + %a140 = alloca i64, align 16 + %a152 = alloca %S.ast.Node, align 16 + %a153 = alloca %S.ast.Node, align 16 + %a155 = alloca %S.ast.Node, align 16 + %a161 = alloca { ptr, i64, i64 }, align 16 + %a164 = alloca { ptr, i64, i64 }, align 16 + %a165 = alloca { ptr, i64, i64 }, align 16 + %a166 = alloca i64, align 16 + %a179 = alloca { ptr, i64, i64 }, align 16 + %a180 = alloca { ptr, i64, i64 }, align 16 + %a182 = alloca { ptr, i64, i64 }, align 16 + %a185 = alloca i64, align 16 + %a188 = alloca { ptr, i64, i64 }, align 16 + %a201 = alloca %S.gen.SumPat, align 16 + %a205 = alloca { ptr, i64, i64 }, align 16 + %a207 = alloca i64, align 16 + %a210 = alloca i64, align 16 + %a215 = alloca { ptr, i64, i64 }, align 16 + %a216 = alloca { ptr, i64, i64 }, align 16 + %a220 = alloca { ptr, i64, i64 }, align 16 + %a234 = alloca { ptr, i64, i64 }, align 16 + %a257 = alloca { ptr, i64, i64 }, align 16 + %a258 = alloca { ptr, i64, i64 }, align 16 + %a261 = alloca { ptr, i64, i64 }, align 16 + %a266 = alloca { ptr, i64, i64 }, align 16 + %a267 = alloca { ptr, i64, i64 }, align 16 + %a268 = alloca { ptr, i64, i64 }, align 16 %a270 = alloca { ptr, i64, i64 }, align 16 %a271 = alloca { ptr, i64, i64 }, align 16 + %a272 = alloca { ptr, i64, i64 }, align 16 + %a273 = alloca { ptr, i64, i64 }, align 16 + %a277 = alloca { ptr, i64, i64 }, align 16 %a279 = alloca { ptr, i64, i64 }, align 16 %a280 = alloca { ptr, i64, i64 }, align 16 - %a290 = alloca { ptr, i64, i64 }, align 16 - %a291 = alloca { ptr, i64, i64 }, align 16 - %a316 = alloca { ptr, i64, i64 }, align 16 - %a317 = alloca { ptr, i64, i64 }, align 16 - %a335 = alloca %S.gen.EnumDef, align 16 - %a336 = alloca %S.gen.EnumDef, align 16 - %a338 = alloca %S.gen.EnumDef, align 16 - %a339 = alloca { ptr, i64, i64 }, align 16 - %a343 = alloca i64, align 16 + %a281 = alloca { ptr, i64, i64 }, align 16 + %a282 = alloca { ptr, i64, i64 }, align 16 + %a283 = alloca { ptr, i64, i64 }, align 16 + %a286 = alloca { ptr, i64, i64 }, align 16 + %a288 = alloca { ptr, i64, i64 }, align 16 + %a299 = alloca %S.gen.Val, align 16 + %a303 = alloca i64, align 16 + %a306 = alloca i64, align 16 + %a311 = alloca { ptr, i64, i64 }, align 16 + %a312 = alloca { ptr, i64, i64 }, align 16 + %a320 = alloca { ptr, i64, i64 }, align 16 + %a321 = alloca { ptr, i64, i64 }, align 16 + %a336 = alloca { ptr, i64, i64 }, align 16 + %a337 = alloca { ptr, i64, i64 }, align 16 %a355 = alloca { ptr, i64, i64 }, align 16 - %a357 = alloca i64, align 16 - %a360 = alloca i64, align 16 - %a365 = alloca { ptr, i64, i64 }, align 16 - %a366 = alloca { ptr, i64, i64 }, align 16 - %a370 = alloca { ptr, i64, i64 }, align 16 - %a383 = alloca { ptr, i64, i64 }, align 16 - %a384 = alloca { ptr, i64, i64 }, align 16 - %a398 = alloca { ptr, i64, i64 }, align 16 - %a399 = alloca { ptr, i64, i64 }, align 16 - %a401 = alloca { ptr, i64, i64 }, align 16 - %a402 = alloca { ptr, i64, i64 }, align 16 - %a403 = alloca { ptr, i64, i64 }, align 16 - %a404 = alloca { ptr, i64, i64 }, align 16 - %a406 = alloca { ptr, i64, i64 }, align 16 - %a407 = alloca { ptr, i64, i64 }, align 16 - %a408 = alloca { ptr, i64, i64 }, align 16 - %a409 = alloca { ptr, i64, i64 }, align 16 - %a411 = alloca { ptr, i64, i64 }, align 16 - %a416 = alloca { ptr, i64, i64 }, align 16 - %a417 = alloca { ptr, i64, i64 }, align 16 - %a418 = alloca { ptr, i64, i64 }, align 16 - %a419 = alloca { ptr, i64, i64 }, align 16 + %a356 = alloca { ptr, i64, i64 }, align 16 + %a358 = alloca %S.gen.Val, align 16 + %a360 = alloca { ptr, i64, i64 }, align 16 + %a372 = alloca { ptr, i64, i64 }, align 16 + %a386 = alloca i1, align 16 + %a404 = alloca %S.gen.StructDef, align 16 + %a405 = alloca %S.gen.StructDef, align 16 + %a407 = alloca %S.gen.StructDef, align 16 + %a410 = alloca i64, align 16 %a421 = alloca { ptr, i64, i64 }, align 16 %a422 = alloca { ptr, i64, i64 }, align 16 - %a423 = alloca { ptr, i64, i64 }, align 16 - %a424 = alloca { ptr, i64, i64 }, align 16 - %a426 = alloca { ptr, i64, i64 }, align 16 - %a450 = alloca { ptr, i64, i64 }, align 16 - %a451 = alloca { ptr, i64, i64 }, align 16 - %a452 = alloca { ptr, i64, i64 }, align 16 - %a453 = alloca { ptr, i64, i64 }, align 16 - %a455 = alloca { ptr, i64, i64 }, align 16 - %a456 = alloca { ptr, i64, i64 }, align 16 - %a457 = alloca { ptr, i64, i64 }, align 16 - %a458 = alloca { ptr, i64, i64 }, align 16 + %a444 = alloca i64, align 16 + %a453 = alloca %S.ast.Type, align 16 + %a454 = alloca %S.ast.Type, align 16 + %a456 = alloca %S.ast.Type, align 16 + %a461 = alloca { ptr, i64, i64 }, align 16 + %a462 = alloca { ptr, i64, i64 }, align 16 %a463 = alloca { ptr, i64, i64 }, align 16 %a464 = alloca { ptr, i64, i64 }, align 16 - %a465 = alloca { ptr, i64, i64 }, align 16 %a466 = alloca { ptr, i64, i64 }, align 16 %a467 = alloca { ptr, i64, i64 }, align 16 - %a470 = alloca { ptr, i64, i64 }, align 16 - %a473 = alloca %S.ast.Type, align 16 - %a474 = alloca %S.ast.Type, align 16 - %a481 = alloca %S.gen.Val, align 16 + %a468 = alloca { ptr, i64, i64 }, align 16 + %a469 = alloca { ptr, i64, i64 }, align 16 + %a473 = alloca { ptr, i64, i64 }, align 16 + %a474 = alloca { ptr, i64, i64 }, align 16 + %a475 = alloca { ptr, i64, i64 }, align 16 + %a476 = alloca { ptr, i64, i64 }, align 16 + %a478 = alloca { ptr, i64, i64 }, align 16 + %a479 = alloca { ptr, i64, i64 }, align 16 + %a480 = alloca { ptr, i64, i64 }, align 16 + %a481 = alloca { ptr, i64, i64 }, align 16 + %a491 = alloca { ptr, i64, i64 }, align 16 + %a493 = alloca { ptr, i64, i64 }, align 16 + %a494 = alloca { ptr, i64, i64 }, align 16 + %a495 = alloca { ptr, i64, i64 }, align 16 + %a496 = alloca { ptr, i64, i64 }, align 16 + %a497 = alloca { ptr, i64, i64 }, align 16 + %a500 = alloca { ptr, i64, i64 }, align 16 + %a501 = alloca { ptr, i64, i64 }, align 16 + %a524 = alloca { ptr, i64, i64 }, align 16 + %a525 = alloca { ptr, i64, i64 }, align 16 + %a535 = alloca %S.ast.Node, align 16 + %a536 = alloca %S.ast.Node, align 16 + %a538 = alloca %S.ast.Node, align 16 + %a543 = alloca %S.gen.Val, align 16 + %a548 = alloca { ptr, i64, i64 }, align 16 + %a549 = alloca { ptr, i64, i64 }, align 16 + %a556 = alloca { ptr, i64, i64 }, align 16 + %a557 = alloca { ptr, i64, i64 }, align 16 + %a563 = alloca { ptr, i64, i64 }, align 16 + %a564 = alloca { ptr, i64, i64 }, align 16 + %a572 = alloca %S.ast.Type, align 16 + %a573 = alloca %S.ast.Type, align 16 + %a576 = alloca %S.ast.Type, align 16 + %a583 = alloca %S.gen.Val, align 16 + %a587 = alloca { ptr, i64, i64 }, align 16 + %a592 = alloca { ptr, i64, i64 }, align 16 + %a599 = alloca { ptr, i64, i64 }, align 16 + %a600 = alloca { ptr, i64, i64 }, align 16 + %a608 = alloca { ptr, i64, i64 }, align 16 + %a609 = alloca { ptr, i64, i64 }, align 16 + %a619 = alloca { ptr, i64, i64 }, align 16 + %a620 = alloca { ptr, i64, i64 }, align 16 + %a647 = alloca { ptr, i64, i64 }, align 16 + %a660 = alloca i64, align 16 + %a665 = alloca { ptr, i64, i64 }, align 16 + %a667 = alloca i64, align 16 + %a670 = alloca i64, align 16 + %a675 = alloca { ptr, i64, i64 }, align 16 + %a676 = alloca { ptr, i64, i64 }, align 16 + %a680 = alloca { ptr, i64, i64 }, align 16 + %a702 = alloca { ptr, i64, i64 }, align 16 + %a703 = alloca { ptr, i64, i64 }, align 16 + %a717 = alloca { ptr, i64, i64 }, align 16 + %a718 = alloca { ptr, i64, i64 }, align 16 + %a720 = alloca { ptr, i64, i64 }, align 16 + %a721 = alloca { ptr, i64, i64 }, align 16 + %a722 = alloca { ptr, i64, i64 }, align 16 + %a723 = alloca { ptr, i64, i64 }, align 16 + %a725 = alloca { ptr, i64, i64 }, align 16 + %a726 = alloca { ptr, i64, i64 }, align 16 + %a727 = alloca { ptr, i64, i64 }, align 16 + %a728 = alloca { ptr, i64, i64 }, align 16 + %a730 = alloca { ptr, i64, i64 }, align 16 + %a733 = alloca { ptr, i64, i64 }, align 16 + %a734 = alloca { ptr, i64, i64 }, align 16 + %a752 = alloca %S.gen.EnumDef, align 16 + %a753 = alloca %S.gen.EnumDef, align 16 + %a755 = alloca %S.gen.EnumDef, align 16 + %a756 = alloca { ptr, i64, i64 }, align 16 + %a760 = alloca i64, align 16 + %a772 = alloca { ptr, i64, i64 }, align 16 + %a774 = alloca i64, align 16 + %a777 = alloca i64, align 16 + %a782 = alloca { ptr, i64, i64 }, align 16 + %a783 = alloca { ptr, i64, i64 }, align 16 + %a787 = alloca { ptr, i64, i64 }, align 16 + %a800 = alloca { ptr, i64, i64 }, align 16 + %a801 = alloca { ptr, i64, i64 }, align 16 + %a815 = alloca { ptr, i64, i64 }, align 16 + %a816 = alloca { ptr, i64, i64 }, align 16 + %a818 = alloca { ptr, i64, i64 }, align 16 + %a819 = alloca { ptr, i64, i64 }, align 16 + %a820 = alloca { ptr, i64, i64 }, align 16 + %a821 = alloca { ptr, i64, i64 }, align 16 + %a823 = alloca { ptr, i64, i64 }, align 16 + %a824 = alloca { ptr, i64, i64 }, align 16 + %a825 = alloca { ptr, i64, i64 }, align 16 + %a826 = alloca { ptr, i64, i64 }, align 16 + %a828 = alloca { ptr, i64, i64 }, align 16 + %a833 = alloca { ptr, i64, i64 }, align 16 + %a834 = alloca { ptr, i64, i64 }, align 16 + %a835 = alloca { ptr, i64, i64 }, align 16 + %a836 = alloca { ptr, i64, i64 }, align 16 + %a838 = alloca { ptr, i64, i64 }, align 16 + %a839 = alloca { ptr, i64, i64 }, align 16 + %a840 = alloca { ptr, i64, i64 }, align 16 + %a841 = alloca { ptr, i64, i64 }, align 16 + %a843 = alloca { ptr, i64, i64 }, align 16 + %a867 = alloca { ptr, i64, i64 }, align 16 + %a868 = alloca { ptr, i64, i64 }, align 16 + %a869 = alloca { ptr, i64, i64 }, align 16 + %a870 = alloca { ptr, i64, i64 }, align 16 + %a872 = alloca { ptr, i64, i64 }, align 16 + %a873 = alloca { ptr, i64, i64 }, align 16 + %a874 = alloca { ptr, i64, i64 }, align 16 + %a875 = alloca { ptr, i64, i64 }, align 16 + %a880 = alloca { ptr, i64, i64 }, align 16 + %a881 = alloca { ptr, i64, i64 }, align 16 + %a882 = alloca { ptr, i64, i64 }, align 16 + %a883 = alloca { ptr, i64, i64 }, align 16 + %a884 = alloca { ptr, i64, i64 }, align 16 + %a887 = alloca { ptr, i64, i64 }, align 16 + %a890 = alloca %S.ast.Type, align 16 + %a891 = alloca %S.ast.Type, align 16 + %a898 = alloca %S.gen.Val, align 16 store ptr %p0, ptr %a1 store %S.ast.Node %p1, ptr %a2 store i1 %p2, ptr %a3 @@ -58244,11 +60018,11 @@ entry: %t6 = load { ptr, i64, i64 }, ptr %t5 %t7 = extractvalue { ptr, i64, i64 } %t6, 1 %t8 = icmp uge i64 0, %t7 - br i1 %t8, label %range5664, label %inrange5665 -range5664: - call void @finch_panic_index(ptr @.str.3666, i64 2961, i64 0, i64 %t7) + br i1 %t8, label %range5808, label %inrange5809 +range5808: + call void @finch_panic_index(ptr @.str.3751, i64 3042, i64 0, i64 %t7) unreachable -inrange5665: +inrange5809: %t9 = extractvalue { ptr, i64, i64 } %t6, 0 %t10 = getelementptr inbounds %S.ast.Node, ptr %t9, i64 0 %t11 = load %S.ast.Node, ptr %t10 @@ -58263,49 +60037,49 @@ inrange5665: %t20 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 0 %t21 = load { ptr, i64, i64 }, ptr %t20 store { ptr, i64, i64 } %t21, ptr %a22 - store { ptr, i64, i64 } { ptr @.str.3667, i64 4, i64 0 }, ptr %a23 + store { ptr, i64, i64 } { ptr @.str.3752, i64 4, i64 0 }, ptr %a23 %t24 = call i32 @finch_str_eq(ptr %a22, ptr %a23) %t25 = icmp ne i32 %t24, 0 - br label %logic.from5666 -logic.from5666: - br i1 %t25, label %logic.end5668, label %logic.rhs5667 -logic.rhs5667: + br label %logic.from5810 +logic.from5810: + br i1 %t25, label %logic.end5812, label %logic.rhs5811 +logic.rhs5811: %t26 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 0 %t27 = load { ptr, i64, i64 }, ptr %t26 store { ptr, i64, i64 } %t27, ptr %a28 - store { ptr, i64, i64 } { ptr @.str.3668, i64 4, i64 0 }, ptr %a29 + store { ptr, i64, i64 } { ptr @.str.3753, i64 4, i64 0 }, ptr %a29 %t30 = call i32 @finch_str_eq(ptr %a28, ptr %a29) %t31 = icmp ne i32 %t30, 0 - br label %logic.rend5669 -logic.rend5669: - br label %logic.end5668 -logic.end5668: - %t32 = phi i1 [ true, %logic.from5666 ], [ %t31, %logic.rend5669 ] - br i1 %t32, label %then5670, label %endif5672 -then5670: + br label %logic.rend5813 +logic.rend5813: + br label %logic.end5812 +logic.end5812: + %t32 = phi i1 [ true, %logic.from5810 ], [ %t31, %logic.rend5813 ] + br i1 %t32, label %then5814, label %endif5816 +then5814: %t33 = load ptr, ptr %a1 %t34 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t35 = load { ptr, i64, i64 }, ptr %t34 %t36 = extractvalue { ptr, i64, i64 } %t35, 1 %t37 = icmp uge i64 0, %t36 - br i1 %t37, label %range5673, label %inrange5674 -range5673: - call void @finch_panic_index(ptr @.str.3669, i64 2964, i64 0, i64 %t36) + br i1 %t37, label %range5817, label %inrange5818 +range5817: + call void @finch_panic_index(ptr @.str.3754, i64 3045, i64 0, i64 %t36) unreachable -inrange5674: +inrange5818: %t38 = extractvalue { ptr, i64, i64 } %t35, 0 %t39 = getelementptr inbounds %S.ast.Node, ptr %t38, i64 0 %t40 = load %S.ast.Node, ptr %t39 - call void @finch.gen.fail(ptr %t33, %S.ast.Node %t40, { ptr, i64, i64 } { ptr @.str.3670, i64 30, i64 0 }) - br label %endif5672 -endif5672: + call void @finch.gen.fail(ptr %t33, %S.ast.Node %t40, { ptr, i64, i64 } { ptr @.str.3755, i64 30, i64 0 }) + br label %endif5816 +endif5816: %t41 = load ptr, ptr %a1 %t42 = icmp eq ptr %t41, null - br i1 %t42, label %panic5675, label %ok5676 -panic5675: - call void @finch_panic(ptr @.str.3671, i64 2966, ptr @.str.3672) + br i1 %t42, label %panic5819, label %ok5820 +panic5819: + call void @finch_panic(ptr @.str.3756, i64 3047, ptr @.str.3757) unreachable -ok5676: +ok5820: %t43 = getelementptr inbounds %S.gen.Gen, ptr %t41, i32 0, i32 11 %t44 = getelementptr inbounds { ptr, i64, i64 }, ptr %t43, i32 0, i32 1 %t45 = load i64, ptr %t44 @@ -58313,752 +60087,1429 @@ ok5676: %t47 = load ptr, ptr %a1 %t48 = load %S.gen.Val, ptr %a13 call void @finch.gen.hold(ptr %t47, %S.gen.Val %t48) - %t49 = load ptr, ptr %a1 - %t50 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t49, { ptr, i64, i64 } { ptr @.str.3673, i64 9, i64 0 }) - store { ptr, i64, i64 } %t50, ptr %a51 - store i1 false, ptr %a52 - store i1 false, ptr %a53 - store { ptr, i64, i64 } zeroinitializer, ptr %a54 - store { ptr, i64, i64 } zeroinitializer, ptr %a55 - store { ptr, i64, i64 } zeroinitializer, ptr %a56 - %t57 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3674, i64 4, i64 0 }) - store %S.ast.Type %t57, ptr %a58 - %t59 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 - %t60 = getelementptr inbounds { ptr, i64, i64 }, ptr %t59, i32 0, i32 1 - %t61 = load i64, ptr %t60 - %t62 = sub i64 %t61, 1 - store i64 %t62, ptr %a63 - %t64 = load i64, ptr %a63 - store i64 0, ptr %a65 - br label %for.cond5677 -for.cond5677: - %t66 = load i64, ptr %a65 - %t67 = icmp slt i64 %t66, %t64 - br i1 %t67, label %for.body5678, label %for.end5680 -for.body5678: - %t68 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 - %t69 = load i64, ptr %a65 - %t70 = add i64 1, %t69 - %t71 = load { ptr, i64, i64 }, ptr %t68 - %t72 = extractvalue { ptr, i64, i64 } %t71, 1 - %t73 = icmp uge i64 %t70, %t72 - br i1 %t73, label %range5681, label %inrange5682 -range5681: - call void @finch_panic_index(ptr @.str.3675, i64 2977, i64 %t70, i64 %t72) - unreachable -inrange5682: - %t74 = extractvalue { ptr, i64, i64 } %t71, 0 - %t75 = getelementptr inbounds %S.ast.Node, ptr %t74, i64 %t70 - %t76 = load %S.ast.Node, ptr %t75 - store %S.ast.Node %t76, ptr %a77 - call void @finch.copy.S_ast_Node(ptr %a78, ptr %a77) - %t79 = load %S.ast.Node, ptr %a78 - store %S.ast.Node %t79, ptr %a80 - %t81 = load i1, ptr %a52 - br i1 %t81, label %then5683, label %endif5685 -then5683: - %t82 = load ptr, ptr %a1 - %t83 = load %S.ast.Node, ptr %a80 - call void @finch.gen.fail(ptr %t82, %S.ast.Node %t83, { ptr, i64, i64 } { ptr @.str.3676, i64 72, i64 0 }) - br label %endif5685 -endif5685: - %t84 = load ptr, ptr %a1 - %t85 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t84, { ptr, i64, i64 } { ptr @.str.3677, i64 9, i64 0 }) - store { ptr, i64, i64 } %t85, ptr %a86 - %t87 = load ptr, ptr %a1 - %t88 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t87, { ptr, i64, i64 } { ptr @.str.3678, i64 10, i64 0 }) - store { ptr, i64, i64 } %t88, ptr %a89 - %t90 = getelementptr inbounds %S.ast.Node, ptr %a80, i32 0, i32 6 - %t91 = load i1, ptr %t90 - br i1 %t91, label %then5686, label %else5687 -then5686: - store i1 true, ptr %a52 - %t92 = load ptr, ptr %a1 - %t93 = load { ptr, i64, i64 }, ptr %a86 - call void @finch.gen.br(ptr %t92, { ptr, i64, i64 } %t93) - br label %endif5688 -else5687: - %t94 = getelementptr inbounds %S.ast.Node, ptr %a80, i32 0, i32 9 - %t95 = load { ptr, i64, i64 }, ptr %t94 - %t96 = extractvalue { ptr, i64, i64 } %t95, 1 - %t97 = icmp uge i64 0, %t96 - br i1 %t97, label %range5689, label %inrange5690 -range5689: - call void @finch_panic_index(ptr @.str.3679, i64 2987, i64 0, i64 %t96) - unreachable -inrange5690: - %t98 = extractvalue { ptr, i64, i64 } %t95, 0 - %t99 = getelementptr inbounds %S.ast.Node, ptr %t98, i64 0 - %t100 = getelementptr inbounds %S.ast.Node, ptr %t99, i32 0, i32 9 - %t101 = load { ptr, i64, i64 }, ptr %t100 - store { ptr, i64, i64 } %t101, ptr %a102 - call void @finch.copy.arr_S_ast_Node(ptr %a103, ptr %a102) - %t104 = load { ptr, i64, i64 }, ptr %a103 - store { ptr, i64, i64 } %t104, ptr %a105 - %t106 = getelementptr inbounds { ptr, i64, i64 }, ptr %a105, i32 0, i32 1 - %t107 = load i64, ptr %t106 - store i64 0, ptr %a108 - br label %for.cond5691 -for.cond5691: - %t109 = load i64, ptr %a108 - %t110 = icmp slt i64 %t109, %t107 - br i1 %t110, label %for.body5692, label %for.end5694 -for.body5692: - %t111 = load ptr, ptr %a1 - %t112 = load i64, ptr %a108 - %t113 = load { ptr, i64, i64 }, ptr %a105 - %t114 = extractvalue { ptr, i64, i64 } %t113, 1 - %t115 = icmp uge i64 %t112, %t114 - br i1 %t115, label %range5695, label %inrange5696 -range5695: - call void @finch_panic_index(ptr @.str.3680, i64 2989, i64 %t112, i64 %t114) - unreachable -inrange5696: - %t116 = extractvalue { ptr, i64, i64 } %t113, 0 - %t117 = getelementptr inbounds %S.ast.Node, ptr %t116, i64 %t112 - %t118 = load %S.ast.Node, ptr %t117 - %t119 = load %S.ast.Type, ptr %a19 - %t120 = call %S.gen.Val @finch.gen.patternValue(ptr %t111, %S.ast.Node %t118, %S.ast.Type %t119) - store %S.gen.Val %t120, ptr %a121 - %t122 = getelementptr inbounds { ptr, i64, i64 }, ptr %a54, i32 0, i32 1 - %t123 = getelementptr inbounds %S.gen.Val, ptr %a121, i32 0, i32 0 - %t124 = load { ptr, i64, i64 }, ptr %t123 - store i64 -1, ptr %a125 - %t126 = load i64, ptr %t122 - %t127 = load ptr, ptr %a54 - store i64 0, ptr %a128 - br label %find.cond5697 -find.cond5697: - %t129 = load i64, ptr %a128 - %t130 = icmp slt i64 %t129, %t126 - br i1 %t130, label %find.body5698, label %find.end5701 -find.body5698: - %t131 = getelementptr inbounds { ptr, i64, i64 }, ptr %t127, i64 %t129 - %t132 = load { ptr, i64, i64 }, ptr %t131 - store { ptr, i64, i64 } %t132, ptr %a133 - store { ptr, i64, i64 } %t124, ptr %a134 - %t135 = call i32 @finch_str_eq(ptr %a133, ptr %a134) - %t136 = icmp ne i32 %t135, 0 - br i1 %t136, label %find.hit5699, label %find.next5700 -find.hit5699: - store i64 %t129, ptr %a125 - br label %find.end5701 -find.next5700: - %t137 = add i64 %t129, 1 - store i64 %t137, ptr %a128 - br label %find.cond5697 -find.end5701: - %t138 = load i64, ptr %a125 - %t139 = icmp sge i64 %t138, 0 - br label %logic.from5702 -logic.from5702: - br i1 %t139, label %logic.rhs5703, label %logic.end5704 -logic.rhs5703: - %t140 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 0 - %t141 = load { ptr, i64, i64 }, ptr %t140 - store { ptr, i64, i64 } %t141, ptr %a142 - store { ptr, i64, i64 } { ptr @.str.3681, i64 4, i64 0 }, ptr %a143 - %t144 = call i32 @finch_str_eq(ptr %a142, ptr %a143) - %t145 = icmp ne i32 %t144, 0 - br label %logic.rend5705 -logic.rend5705: - br label %logic.end5704 -logic.end5704: - %t146 = phi i1 [ false, %logic.from5702 ], [ %t145, %logic.rend5705 ] - br i1 %t146, label %then5706, label %endif5708 -then5706: - %t147 = load ptr, ptr %a1 - %t148 = load i64, ptr %a108 - %t149 = load { ptr, i64, i64 }, ptr %a105 - %t150 = extractvalue { ptr, i64, i64 } %t149, 1 - %t151 = icmp uge i64 %t148, %t150 - br i1 %t151, label %range5709, label %inrange5710 -range5709: - call void @finch_panic_index(ptr @.str.3682, i64 2991, i64 %t148, i64 %t150) - unreachable -inrange5710: - %t152 = extractvalue { ptr, i64, i64 } %t149, 0 - %t153 = getelementptr inbounds %S.ast.Node, ptr %t152, i64 %t148 - %t154 = load %S.ast.Node, ptr %t153 - call void @finch.gen.fail(ptr %t147, %S.ast.Node %t154, { ptr, i64, i64 } { ptr @.str.3683, i64 49, i64 0 }) - br label %endif5708 -endif5708: - %t155 = getelementptr inbounds { ptr, i64, i64 }, ptr %a54, i32 0, i32 1 - %t156 = getelementptr inbounds %S.gen.Val, ptr %a121, i32 0, i32 0 - %t157 = load { ptr, i64, i64 }, ptr %t156 - store { ptr, i64, i64 } %t157, ptr %a158 - call void @finch_str_copy(ptr %a159, ptr %a158) - %t160 = load { ptr, i64, i64 }, ptr %a159 - %t161 = load i64, ptr %t155 - %t162 = add i64 %t161, 1 - call void @finch_arr_reserve(ptr %a54, i64 %t162, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) - %t163 = load ptr, ptr %a54 - %t164 = getelementptr inbounds { ptr, i64, i64 }, ptr %t163, i64 %t161 - store { ptr, i64, i64 } %t160, ptr %t164 - store i64 %t162, ptr %t155 - %t165 = load ptr, ptr %a1 - %t166 = load %S.gen.Val, ptr %a13 - %t167 = load %S.gen.Val, ptr %a121 - %t168 = load i64, ptr %a108 - %t169 = load { ptr, i64, i64 }, ptr %a105 - %t170 = extractvalue { ptr, i64, i64 } %t169, 1 - %t171 = icmp uge i64 %t168, %t170 - br i1 %t171, label %range5711, label %inrange5712 -range5711: - call void @finch_panic_index(ptr @.str.3685, i64 2994, i64 %t168, i64 %t170) - unreachable -inrange5712: - %t172 = extractvalue { ptr, i64, i64 } %t169, 0 - %t173 = getelementptr inbounds %S.ast.Node, ptr %t172, i64 %t168 - %t174 = load %S.ast.Node, ptr %t173 - %t175 = call %S.gen.Val @finch.gen.compare(ptr %t165, { ptr, i64, i64 } { ptr @.str.3684, i64 2, i64 0 }, %S.gen.Val %t166, %S.gen.Val %t167, %S.ast.Node %t174) - store %S.gen.Val %t175, ptr %a176 - %t177 = load i64, ptr %a108 - %t178 = getelementptr inbounds { ptr, i64, i64 }, ptr %a105, i32 0, i32 1 - %t179 = load i64, ptr %t178 - %t180 = sub i64 %t179, 1 - %t181 = icmp eq i64 %t177, %t180 - br i1 %t181, label %then5713, label %else5714 -then5713: - %t182 = load ptr, ptr %a1 - %t183 = getelementptr inbounds %S.gen.Val, ptr %a176, i32 0, i32 0 - %t184 = load { ptr, i64, i64 }, ptr %t183 - %t185 = load { ptr, i64, i64 }, ptr %a86 - %t186 = load { ptr, i64, i64 }, ptr %a89 - call void @finch.gen.condBr(ptr %t182, { ptr, i64, i64 } %t184, { ptr, i64, i64 } %t185, { ptr, i64, i64 } %t186) - br label %endif5715 -else5714: - %t187 = load ptr, ptr %a1 - %t188 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t187, { ptr, i64, i64 } { ptr @.str.3686, i64 8, i64 0 }) - store { ptr, i64, i64 } %t188, ptr %a189 - %t190 = load ptr, ptr %a1 - %t191 = getelementptr inbounds %S.gen.Val, ptr %a176, i32 0, i32 0 - %t192 = load { ptr, i64, i64 }, ptr %t191 - %t193 = load { ptr, i64, i64 }, ptr %a86 - %t194 = load { ptr, i64, i64 }, ptr %a189 - call void @finch.gen.condBr(ptr %t190, { ptr, i64, i64 } %t192, { ptr, i64, i64 } %t193, { ptr, i64, i64 } %t194) - %t195 = load ptr, ptr %a1 - %t196 = load { ptr, i64, i64 }, ptr %a189 - call void @finch.gen.label(ptr %t195, { ptr, i64, i64 } %t196) - call void @finch_str_drop(ptr %a189) - br label %endif5715 -endif5715: - call void @finch.drop.S_gen_Val(ptr %a176) - call void @finch.drop.S_gen_Val(ptr %a121) - br label %for.step5693 -for.step5693: - %t197 = load i64, ptr %a108 - %t198 = add i64 %t197, 1 - store i64 %t198, ptr %a108 - br label %for.cond5691 -for.end5694: - call void @finch.drop.arr_S_ast_Node(ptr %a105) - br label %endif5688 -endif5688: - %t199 = load ptr, ptr %a1 - %t200 = load { ptr, i64, i64 }, ptr %a86 - call void @finch.gen.label(ptr %t199, { ptr, i64, i64 } %t200) - %t201 = getelementptr inbounds %S.ast.Node, ptr %a80, i32 0, i32 9 - %t202 = load { ptr, i64, i64 }, ptr %t201 - %t203 = extractvalue { ptr, i64, i64 } %t202, 1 - %t204 = icmp uge i64 1, %t203 - br i1 %t204, label %range5716, label %inrange5717 -range5716: - call void @finch_panic_index(ptr @.str.3687, i64 3005, i64 1, i64 %t203) - unreachable -inrange5717: - %t205 = extractvalue { ptr, i64, i64 } %t202, 0 - %t206 = getelementptr inbounds %S.ast.Node, ptr %t205, i64 1 - %t207 = load %S.ast.Node, ptr %t206 - store %S.ast.Node %t207, ptr %a208 - call void @finch.copy.S_ast_Node(ptr %a209, ptr %a208) - %t210 = load %S.ast.Node, ptr %a209 - store %S.ast.Node %t210, ptr %a211 - %t212 = load i1, ptr %a3 - br i1 %t212, label %then5718, label %else5719 -then5718: - %t213 = load ptr, ptr %a1 - %t214 = load %S.ast.Node, ptr %a211 - %t215 = call %S.gen.Val @finch.gen.expr(ptr %t213, %S.ast.Node %t214) - store %S.gen.Val %t215, ptr %a216 - %t217 = load i64, ptr %a65 - %t218 = icmp eq i64 %t217, 0 - br label %logic.from5721 -logic.from5721: - br i1 %t218, label %logic.end5723, label %logic.rhs5722 -logic.rhs5722: - %t219 = getelementptr inbounds %S.ast.Type, ptr %a58, i32 0, i32 0 - %t220 = load { ptr, i64, i64 }, ptr %t219 - store { ptr, i64, i64 } %t220, ptr %a221 - store { ptr, i64, i64 } { ptr @.str.3688, i64 4, i64 0 }, ptr %a222 - %t223 = call i32 @finch_str_eq(ptr %a221, ptr %a222) - %t224 = icmp ne i32 %t223, 0 - br label %logic.rend5724 -logic.rend5724: - br label %logic.end5723 -logic.end5723: - %t225 = phi i1 [ true, %logic.from5721 ], [ %t224, %logic.rend5724 ] - br i1 %t225, label %then5725, label %endif5727 -then5725: - %t226 = getelementptr inbounds %S.gen.Val, ptr %a216, i32 0, i32 1 - %t227 = getelementptr inbounds %S.ast.Type, ptr %t226, i32 0, i32 0 - %t228 = load { ptr, i64, i64 }, ptr %t227 - store { ptr, i64, i64 } %t228, ptr %a229 - store { ptr, i64, i64 } { ptr @.str.3689, i64 4, i64 0 }, ptr %a230 - %t231 = call i32 @finch_str_eq(ptr %a229, ptr %a230) - %t232 = icmp ne i32 %t231, 0 - br label %logic.from5728 -logic.from5728: - br i1 %t232, label %logic.end5730, label %logic.rhs5729 -logic.rhs5729: - %t233 = getelementptr inbounds %S.gen.Val, ptr %a216, i32 0, i32 1 - %t234 = getelementptr inbounds %S.ast.Type, ptr %t233, i32 0, i32 0 - %t235 = load { ptr, i64, i64 }, ptr %t234 - store { ptr, i64, i64 } %t235, ptr %a236 - store { ptr, i64, i64 } { ptr @.str.3690, i64 4, i64 0 }, ptr %a237 - %t238 = call i32 @finch_str_eq(ptr %a236, ptr %a237) - %t239 = icmp ne i32 %t238, 0 - br label %logic.rend5731 -logic.rend5731: - br label %logic.end5730 -logic.end5730: - %t240 = phi i1 [ true, %logic.from5728 ], [ %t239, %logic.rend5731 ] - br i1 %t240, label %then5732, label %endif5734 -then5732: - %t241 = load ptr, ptr %a1 - %t242 = load %S.ast.Node, ptr %a211 - call void @finch.gen.fail(ptr %t241, %S.ast.Node %t242, { ptr, i64, i64 } { ptr @.str.3691, i64 52, i64 0 }) - br label %endif5734 -endif5734: - %t243 = getelementptr inbounds %S.gen.Val, ptr %a216, i32 0, i32 1 - %t244 = load %S.ast.Type, ptr %t243 - store %S.ast.Type %t244, ptr %a245 - call void @finch.copy.S_ast_Type(ptr %a246, ptr %a245) - %t247 = load %S.ast.Type, ptr %a246 - %t248 = load %S.ast.Type, ptr %a58 - store %S.ast.Type %t247, ptr %a58 - store %S.ast.Type %t248, ptr %a249 - call void @finch.drop.S_ast_Type(ptr %a249) - br label %endif5727 -endif5727: - %t250 = load ptr, ptr %a1 - %t251 = load %S.gen.Val, ptr %a216 - %t252 = load %S.ast.Type, ptr %a58 - %t253 = load %S.ast.Node, ptr %a211 - %t254 = call %S.gen.Val @finch.gen.coerce(ptr %t250, %S.gen.Val %t251, %S.ast.Type %t252, %S.ast.Node %t253, { ptr, i64, i64 } { ptr @.str.3692, i64 57, i64 0 }) - %t255 = load %S.gen.Val, ptr %a216 - store %S.gen.Val %t254, ptr %a216 - store %S.gen.Val %t255, ptr %a256 - call void @finch.drop.S_gen_Val(ptr %a256) - %t257 = load ptr, ptr %a1 - %t258 = load %S.gen.Val, ptr %a216 - %t259 = call { ptr, i64, i64 } @finch.gen.own(ptr %t257, %S.gen.Val %t258) - store { ptr, i64, i64 } %t259, ptr %a260 - %t261 = load ptr, ptr %a1 - %t262 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t261, { ptr, i64, i64 } { ptr @.str.3693, i64 10, i64 0 }) - store { ptr, i64, i64 } %t262, ptr %a263 - %t264 = load ptr, ptr %a1 - %t265 = load { ptr, i64, i64 }, ptr %a263 - call void @finch.gen.br(ptr %t264, { ptr, i64, i64 } %t265) - %t266 = load ptr, ptr %a1 - %t267 = load { ptr, i64, i64 }, ptr %a263 - call void @finch.gen.label(ptr %t266, { ptr, i64, i64 } %t267) - %t268 = getelementptr inbounds { ptr, i64, i64 }, ptr %a55, i32 0, i32 1 - %t269 = load { ptr, i64, i64 }, ptr %a260 - store { ptr, i64, i64 } %t269, ptr %a270 - call void @finch_str_copy(ptr %a271, ptr %a270) - %t272 = load { ptr, i64, i64 }, ptr %a271 - %t273 = load i64, ptr %t268 - %t274 = add i64 %t273, 1 - call void @finch_arr_reserve(ptr %a55, i64 %t274, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) - %t275 = load ptr, ptr %a55 - %t276 = getelementptr inbounds { ptr, i64, i64 }, ptr %t275, i64 %t273 - store { ptr, i64, i64 } %t272, ptr %t276 - store i64 %t274, ptr %t268 - %t277 = getelementptr inbounds { ptr, i64, i64 }, ptr %a56, i32 0, i32 1 - %t278 = load { ptr, i64, i64 }, ptr %a263 - store { ptr, i64, i64 } %t278, ptr %a279 - call void @finch_str_copy(ptr %a280, ptr %a279) - %t281 = load { ptr, i64, i64 }, ptr %a280 - %t282 = load i64, ptr %t277 - %t283 = add i64 %t282, 1 - call void @finch_arr_reserve(ptr %a56, i64 %t283, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) - %t284 = load ptr, ptr %a56 - %t285 = getelementptr inbounds { ptr, i64, i64 }, ptr %t284, i64 %t282 - store { ptr, i64, i64 } %t281, ptr %t285 - store i64 %t283, ptr %t277 - %t286 = load ptr, ptr %a1 - %t287 = load { ptr, i64, i64 }, ptr %a51 - call void @finch.gen.br(ptr %t286, { ptr, i64, i64 } %t287) - store i1 true, ptr %a53 - call void @finch_str_drop(ptr %a263) - call void @finch_str_drop(ptr %a260) - call void @finch.drop.S_gen_Val(ptr %a216) - br label %endif5720 -else5719: - %t288 = getelementptr inbounds %S.ast.Node, ptr %a211, i32 0, i32 0 - %t289 = load { ptr, i64, i64 }, ptr %t288 - store { ptr, i64, i64 } %t289, ptr %a290 - store { ptr, i64, i64 } { ptr @.str.3694, i64 5, i64 0 }, ptr %a291 - %t292 = call i32 @finch_str_eq(ptr %a290, ptr %a291) - %t293 = icmp ne i32 %t292, 0 - br i1 %t293, label %then5735, label %else5736 -then5735: - %t294 = load ptr, ptr %a1 - %t295 = load %S.ast.Node, ptr %a211 - call void @finch.gen.block(ptr %t294, %S.ast.Node %t295, i1 true) - br label %endif5737 -else5736: - %t296 = load ptr, ptr %a1 - %t297 = load %S.ast.Node, ptr %a211 - call void @finch.gen.stmt(ptr %t296, %S.ast.Node %t297) - br label %endif5737 -endif5737: - %t298 = load ptr, ptr %a1 - %t299 = icmp eq ptr %t298, null - br i1 %t299, label %panic5738, label %ok5739 -panic5738: - call void @finch_panic(ptr @.str.3695, i64 3029, ptr @.str.3696) - unreachable -ok5739: - %t300 = getelementptr inbounds %S.gen.Gen, ptr %t298, i32 0, i32 9 - %t301 = load i1, ptr %t300 - %t302 = xor i1 %t301, true - br i1 %t302, label %then5740, label %endif5742 -then5740: - store i1 true, ptr %a53 - br label %endif5742 -endif5742: - %t303 = load ptr, ptr %a1 - %t304 = load { ptr, i64, i64 }, ptr %a51 - call void @finch.gen.br(ptr %t303, { ptr, i64, i64 } %t304) - br label %endif5720 -endif5720: - %t305 = getelementptr inbounds %S.ast.Node, ptr %a80, i32 0, i32 6 - %t306 = load i1, ptr %t305 - %t307 = xor i1 %t306, true - br i1 %t307, label %then5743, label %endif5745 -then5743: - %t308 = load ptr, ptr %a1 - %t309 = load { ptr, i64, i64 }, ptr %a89 - call void @finch.gen.label(ptr %t308, { ptr, i64, i64 } %t309) - br label %endif5745 -endif5745: - call void @finch.drop.S_ast_Node(ptr %a211) + store i64 -1, ptr %a49 + store { ptr, i64, i64 } { ptr @.str.3758, i64 0, i64 0 }, ptr %a50 + %t51 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 0 + %t52 = load { ptr, i64, i64 }, ptr %t51 + store { ptr, i64, i64 } %t52, ptr %a53 + store { ptr, i64, i64 } { ptr @.str.3759, i64 6, i64 0 }, ptr %a54 + %t55 = call i32 @finch_str_eq(ptr %a53, ptr %a54) + %t56 = icmp ne i32 %t55, 0 + br i1 %t56, label %then5821, label %endif5823 +then5821: + %t57 = load ptr, ptr %a1 + %t58 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 3 + %t59 = load { ptr, i64, i64 }, ptr %t58 + %t60 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 2 + %t61 = load { ptr, i64, i64 }, ptr %t60 + %t62 = call i64 @finch.gen.findSum(ptr %t57, { ptr, i64, i64 } %t59, { ptr, i64, i64 } %t61) + store i64 %t62, ptr %a49 + %t63 = load i64, ptr %a49 + %t64 = icmp sge i64 %t63, 0 + br i1 %t64, label %then5824, label %endif5826 +then5824: + %t65 = load ptr, ptr %a1 + %t66 = load ptr, ptr %a1 + %t67 = load %S.ast.Type, ptr %a19 + %t68 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t66, %S.ast.Type %t67) + store { ptr, i64, i64 } { ptr @.str.3760, i64 13, i64 0 }, ptr %a70 + store { ptr, i64, i64 } %t68, ptr %a71 + call void @finch_str_concat(ptr %a69, ptr %a70, ptr %a71) + store { ptr, i64, i64 } %t68, ptr %a72 + call void @finch_str_drop(ptr %a72) + %t73 = load { ptr, i64, i64 }, ptr %a69 + store { ptr, i64, i64 } %t73, ptr %a75 + store { ptr, i64, i64 } { ptr @.str.3761, i64 1, i64 0 }, ptr %a76 + call void @finch_str_concat(ptr %a74, ptr %a75, ptr %a76) + store { ptr, i64, i64 } %t73, ptr %a77 + call void @finch_str_drop(ptr %a77) + %t78 = load { ptr, i64, i64 }, ptr %a74 + %t79 = getelementptr inbounds %S.gen.Val, ptr %a13, i32 0, i32 0 + %t80 = load { ptr, i64, i64 }, ptr %t79 + store { ptr, i64, i64 } %t78, ptr %a82 + store { ptr, i64, i64 } %t80, ptr %a83 + call void @finch_str_concat(ptr %a81, ptr %a82, ptr %a83) + store { ptr, i64, i64 } %t78, ptr %a84 + call void @finch_str_drop(ptr %a84) + %t85 = load { ptr, i64, i64 }, ptr %a81 + store { ptr, i64, i64 } %t85, ptr %a87 + store { ptr, i64, i64 } { ptr @.str.3762, i64 2, i64 0 }, ptr %a88 + call void @finch_str_concat(ptr %a86, ptr %a87, ptr %a88) + store { ptr, i64, i64 } %t85, ptr %a89 call void @finch_str_drop(ptr %a89) - call void @finch_str_drop(ptr %a86) - call void @finch.drop.S_ast_Node(ptr %a80) - br label %for.step5679 -for.step5679: - %t310 = load i64, ptr %a65 - %t311 = add i64 %t310, 1 - store i64 %t311, ptr %a65 - br label %for.cond5677 -for.end5680: - %t312 = load i1, ptr %a52 - %t313 = xor i1 %t312, true - br i1 %t313, label %then5746, label %endif5748 -then5746: - %t314 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 0 - %t315 = load { ptr, i64, i64 }, ptr %t314 - store { ptr, i64, i64 } %t315, ptr %a316 - store { ptr, i64, i64 } { ptr @.str.3697, i64 4, i64 0 }, ptr %a317 - %t318 = call i32 @finch_str_eq(ptr %a316, ptr %a317) - %t319 = icmp ne i32 %t318, 0 - br i1 %t319, label %then5749, label %else5750 -then5749: - %t320 = load ptr, ptr %a1 - %t321 = icmp eq ptr %t320, null - br i1 %t321, label %panic5752, label %ok5753 -panic5752: - call void @finch_panic(ptr @.str.3698, i64 3040, ptr @.str.3699) + %t90 = load { ptr, i64, i64 }, ptr %a86 + %t91 = load ptr, ptr %a1 + %t92 = icmp eq ptr %t91, null + br i1 %t92, label %panic5827, label %ok5828 +panic5827: + call void @finch_panic(ptr @.str.3763, i64 3054, ptr @.str.3764) unreachable -ok5753: - %t322 = getelementptr inbounds %S.gen.Gen, ptr %t320, i32 0, i32 21 - %t323 = load ptr, ptr %a1 - %t324 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 3 - %t325 = load { ptr, i64, i64 }, ptr %t324 - %t326 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 2 - %t327 = load { ptr, i64, i64 }, ptr %t326 - %t328 = call i64 @finch.gen.findEnum(ptr %t323, { ptr, i64, i64 } %t325, { ptr, i64, i64 } %t327) - %t329 = load { ptr, i64, i64 }, ptr %t322 - %t330 = extractvalue { ptr, i64, i64 } %t329, 1 - %t331 = icmp uge i64 %t328, %t330 - br i1 %t331, label %range5754, label %inrange5755 -range5754: - call void @finch_panic_index(ptr @.str.3700, i64 3040, i64 %t328, i64 %t330) +ok5828: + %t93 = getelementptr inbounds %S.gen.Gen, ptr %t91, i32 0, i32 16 + %t94 = load ptr, ptr %a1 + %t95 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 3 + %t96 = load { ptr, i64, i64 }, ptr %t95 + %t97 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 2 + %t98 = load { ptr, i64, i64 }, ptr %t97 + %t99 = call i64 @finch.gen.findStruct(ptr %t94, { ptr, i64, i64 } %t96, { ptr, i64, i64 } %t98) + %t100 = load { ptr, i64, i64 }, ptr %t93 + %t101 = extractvalue { ptr, i64, i64 } %t100, 1 + %t102 = icmp uge i64 %t99, %t101 + br i1 %t102, label %range5829, label %inrange5830 +range5829: + call void @finch_panic_index(ptr @.str.3765, i64 3054, i64 %t99, i64 %t101) unreachable -inrange5755: - %t332 = extractvalue { ptr, i64, i64 } %t329, 0 - %t333 = getelementptr inbounds %S.gen.EnumDef, ptr %t332, i64 %t328 - %t334 = load %S.gen.EnumDef, ptr %t333 - store %S.gen.EnumDef %t334, ptr %a335 - call void @finch.copy.S_gen_EnumDef(ptr %a336, ptr %a335) - %t337 = load %S.gen.EnumDef, ptr %a336 - store %S.gen.EnumDef %t337, ptr %a338 - store { ptr, i64, i64 } zeroinitializer, ptr %a339 - %t340 = getelementptr inbounds %S.gen.EnumDef, ptr %a338, i32 0, i32 2 - %t341 = getelementptr inbounds { ptr, i64, i64 }, ptr %t340, i32 0, i32 1 - %t342 = load i64, ptr %t341 - store i64 0, ptr %a343 - br label %for.cond5756 -for.cond5756: - %t344 = load i64, ptr %a343 - %t345 = icmp slt i64 %t344, %t342 - br i1 %t345, label %for.body5757, label %for.end5759 -for.body5757: - %t346 = getelementptr inbounds { ptr, i64, i64 }, ptr %a54, i32 0, i32 1 - %t347 = getelementptr inbounds %S.gen.EnumDef, ptr %a338, i32 0, i32 3 - %t348 = load i64, ptr %a343 - %t349 = load { ptr, i64, i64 }, ptr %t347 - %t350 = extractvalue { ptr, i64, i64 } %t349, 1 - %t351 = icmp uge i64 %t348, %t350 - br i1 %t351, label %range5760, label %inrange5761 -range5760: - call void @finch_panic_index(ptr @.str.3701, i64 3043, i64 %t348, i64 %t350) +inrange5830: + %t103 = extractvalue { ptr, i64, i64 } %t100, 0 + %t104 = getelementptr inbounds %S.gen.StructDef, ptr %t103, i64 %t99 + %t105 = getelementptr inbounds %S.gen.StructDef, ptr %t104, i32 0, i32 3 + %t106 = load { ptr, i64, i64 }, ptr %t105 + %t107 = extractvalue { ptr, i64, i64 } %t106, 1 + %t108 = icmp uge i64 0, %t107 + br i1 %t108, label %range5831, label %inrange5832 +range5831: + call void @finch_panic_index(ptr @.str.3766, i64 3054, i64 0, i64 %t107) unreachable -inrange5761: - %t352 = extractvalue { ptr, i64, i64 } %t349, 0 - %t353 = getelementptr inbounds i64, ptr %t352, i64 %t348 - %t354 = load i64, ptr %t353 - call void @finch_str_from_int(ptr %a355, i64 %t354) - %t356 = load { ptr, i64, i64 }, ptr %a355 - store i64 -1, ptr %a357 - %t358 = load i64, ptr %t346 - %t359 = load ptr, ptr %a54 - store i64 0, ptr %a360 - br label %find.cond5762 -find.cond5762: - %t361 = load i64, ptr %a360 - %t362 = icmp slt i64 %t361, %t358 - br i1 %t362, label %find.body5763, label %find.end5766 -find.body5763: - %t363 = getelementptr inbounds { ptr, i64, i64 }, ptr %t359, i64 %t361 - %t364 = load { ptr, i64, i64 }, ptr %t363 - store { ptr, i64, i64 } %t364, ptr %a365 - store { ptr, i64, i64 } %t356, ptr %a366 - %t367 = call i32 @finch_str_eq(ptr %a365, ptr %a366) - %t368 = icmp ne i32 %t367, 0 - br i1 %t368, label %find.hit5764, label %find.next5765 -find.hit5764: - store i64 %t361, ptr %a357 - br label %find.end5766 -find.next5765: - %t369 = add i64 %t361, 1 - store i64 %t369, ptr %a360 - br label %find.cond5762 -find.end5766: - store { ptr, i64, i64 } %t356, ptr %a370 - call void @finch_str_drop(ptr %a370) - %t371 = load i64, ptr %a357 - %t372 = icmp sge i64 %t371, 0 - %t373 = xor i1 %t372, true - br i1 %t373, label %then5767, label %endif5769 -then5767: - %t374 = getelementptr inbounds { ptr, i64, i64 }, ptr %a339, i32 0, i32 1 - %t375 = getelementptr inbounds %S.gen.EnumDef, ptr %a338, i32 0, i32 2 - %t376 = load i64, ptr %a343 - %t377 = load { ptr, i64, i64 }, ptr %t375 - %t378 = extractvalue { ptr, i64, i64 } %t377, 1 - %t379 = icmp uge i64 %t376, %t378 - br i1 %t379, label %range5770, label %inrange5771 -range5770: - call void @finch_panic_index(ptr @.str.3702, i64 3044, i64 %t376, i64 %t378) +inrange5832: + %t109 = extractvalue { ptr, i64, i64 } %t106, 0 + %t110 = getelementptr inbounds i64, ptr %t109, i64 0 + %t111 = load i64, ptr %t110 + call void @finch_str_from_int(ptr %a112, i64 %t111) + %t113 = load { ptr, i64, i64 }, ptr %a112 + store { ptr, i64, i64 } %t90, ptr %a115 + store { ptr, i64, i64 } %t113, ptr %a116 + call void @finch_str_concat(ptr %a114, ptr %a115, ptr %a116) + store { ptr, i64, i64 } %t90, ptr %a117 + call void @finch_str_drop(ptr %a117) + store { ptr, i64, i64 } %t113, ptr %a118 + call void @finch_str_drop(ptr %a118) + %t119 = load { ptr, i64, i64 }, ptr %a114 + %t120 = call { ptr, i64, i64 } @finch.gen.op(ptr %t65, { ptr, i64, i64 } %t119) + store { ptr, i64, i64 } %t119, ptr %a121 + call void @finch_str_drop(ptr %a121) + %t122 = load { ptr, i64, i64 }, ptr %a50 + store { ptr, i64, i64 } %t120, ptr %a50 + store { ptr, i64, i64 } %t122, ptr %a123 + call void @finch_str_drop(ptr %a123) + br label %endif5826 +endif5826: + br label %endif5823 +endif5823: + %t124 = load ptr, ptr %a1 + %t125 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t124, { ptr, i64, i64 } { ptr @.str.3767, i64 9, i64 0 }) + store { ptr, i64, i64 } %t125, ptr %a126 + store i1 false, ptr %a127 + store i1 false, ptr %a128 + store { ptr, i64, i64 } zeroinitializer, ptr %a129 + store { ptr, i64, i64 } zeroinitializer, ptr %a130 + store { ptr, i64, i64 } zeroinitializer, ptr %a131 + %t132 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3768, i64 4, i64 0 }) + store %S.ast.Type %t132, ptr %a133 + %t134 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t135 = getelementptr inbounds { ptr, i64, i64 }, ptr %t134, i32 0, i32 1 + %t136 = load i64, ptr %t135 + %t137 = sub i64 %t136, 1 + store i64 %t137, ptr %a138 + %t139 = load i64, ptr %a138 + store i64 0, ptr %a140 + br label %for.cond5833 +for.cond5833: + %t141 = load i64, ptr %a140 + %t142 = icmp slt i64 %t141, %t139 + br i1 %t142, label %for.body5834, label %for.end5836 +for.body5834: + %t143 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t144 = load i64, ptr %a140 + %t145 = add i64 1, %t144 + %t146 = load { ptr, i64, i64 }, ptr %t143 + %t147 = extractvalue { ptr, i64, i64 } %t146, 1 + %t148 = icmp uge i64 %t145, %t147 + br i1 %t148, label %range5837, label %inrange5838 +range5837: + call void @finch_panic_index(ptr @.str.3769, i64 3066, i64 %t145, i64 %t147) unreachable -inrange5771: - %t380 = extractvalue { ptr, i64, i64 } %t377, 0 - %t381 = getelementptr inbounds { ptr, i64, i64 }, ptr %t380, i64 %t376 - %t382 = load { ptr, i64, i64 }, ptr %t381 - store { ptr, i64, i64 } %t382, ptr %a383 - call void @finch_str_copy(ptr %a384, ptr %a383) - %t385 = load { ptr, i64, i64 }, ptr %a384 - %t386 = load i64, ptr %t374 - %t387 = add i64 %t386, 1 - call void @finch_arr_reserve(ptr %a339, i64 %t387, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) - %t388 = load ptr, ptr %a339 - %t389 = getelementptr inbounds { ptr, i64, i64 }, ptr %t388, i64 %t386 - store { ptr, i64, i64 } %t385, ptr %t389 - store i64 %t387, ptr %t374 - br label %endif5769 -endif5769: - br label %for.step5758 -for.step5758: - %t390 = load i64, ptr %a343 - %t391 = add i64 %t390, 1 - store i64 %t391, ptr %a343 - br label %for.cond5756 -for.end5759: - %t392 = getelementptr inbounds { ptr, i64, i64 }, ptr %a339, i32 0, i32 1 - %t393 = load i64, ptr %t392 - %t394 = icmp sgt i64 %t393, 0 - br i1 %t394, label %then5772, label %endif5774 -then5772: - %t395 = load ptr, ptr %a1 - %t396 = load %S.ast.Node, ptr %a2 - %t397 = getelementptr inbounds { ptr, i64, i64 }, ptr %a339, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.3704, i64 2, i64 0 }, ptr %a398 - call void @finch_str_join(ptr %a399, ptr %a339, ptr %a398) - %t400 = load { ptr, i64, i64 }, ptr %a399 - store { ptr, i64, i64 } { ptr @.str.3703, i64 26, i64 0 }, ptr %a402 - store { ptr, i64, i64 } %t400, ptr %a403 - call void @finch_str_concat(ptr %a401, ptr %a402, ptr %a403) - store { ptr, i64, i64 } %t400, ptr %a404 - call void @finch_str_drop(ptr %a404) - %t405 = load { ptr, i64, i64 }, ptr %a401 - store { ptr, i64, i64 } %t405, ptr %a407 - store { ptr, i64, i64 } { ptr @.str.3705, i64 29, i64 0 }, ptr %a408 - call void @finch_str_concat(ptr %a406, ptr %a407, ptr %a408) - store { ptr, i64, i64 } %t405, ptr %a409 - call void @finch_str_drop(ptr %a409) - %t410 = load { ptr, i64, i64 }, ptr %a406 - call void @finch.gen.fail(ptr %t395, %S.ast.Node %t396, { ptr, i64, i64 } %t410) - store { ptr, i64, i64 } %t410, ptr %a411 - call void @finch_str_drop(ptr %a411) - br label %endif5774 -endif5774: - call void @finch.drop.arr_str(ptr %a339) - call void @finch.drop.S_gen_EnumDef(ptr %a338) - br label %endif5751 -else5750: - %t412 = load ptr, ptr %a1 - %t413 = load %S.ast.Node, ptr %a2 - %t414 = load %S.ast.Type, ptr %a19 - %t415 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t414) - store { ptr, i64, i64 } { ptr @.str.3706, i64 11, i64 0 }, ptr %a417 - store { ptr, i64, i64 } %t415, ptr %a418 - call void @finch_str_concat(ptr %a416, ptr %a417, ptr %a418) - store { ptr, i64, i64 } %t415, ptr %a419 - call void @finch_str_drop(ptr %a419) - %t420 = load { ptr, i64, i64 }, ptr %a416 - store { ptr, i64, i64 } %t420, ptr %a422 - store { ptr, i64, i64 } { ptr @.str.3707, i64 54, i64 0 }, ptr %a423 - call void @finch_str_concat(ptr %a421, ptr %a422, ptr %a423) - store { ptr, i64, i64 } %t420, ptr %a424 - call void @finch_str_drop(ptr %a424) - %t425 = load { ptr, i64, i64 }, ptr %a421 - call void @finch.gen.fail(ptr %t412, %S.ast.Node %t413, { ptr, i64, i64 } %t425) - store { ptr, i64, i64 } %t425, ptr %a426 - call void @finch_str_drop(ptr %a426) - br label %endif5751 -endif5751: - %t427 = load ptr, ptr %a1 - %t428 = load %S.ast.Node, ptr %a2 - call void @finch.gen.panicIf(ptr %t427, { ptr, i64, i64 } { ptr @.str.3708, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.3709, i64 35, i64 0 }, %S.ast.Node %t428) - %t429 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t429, { ptr, i64, i64 } { ptr @.str.3710, i64 11, i64 0 }) - %t430 = load ptr, ptr %a1 - %t431 = icmp eq ptr %t430, null - br i1 %t431, label %panic5775, label %ok5776 -panic5775: - call void @finch_panic(ptr @.str.3711, i64 3056, ptr @.str.3712) +inrange5838: + %t149 = extractvalue { ptr, i64, i64 } %t146, 0 + %t150 = getelementptr inbounds %S.ast.Node, ptr %t149, i64 %t145 + %t151 = load %S.ast.Node, ptr %t150 + store %S.ast.Node %t151, ptr %a152 + call void @finch.copy.S_ast_Node(ptr %a153, ptr %a152) + %t154 = load %S.ast.Node, ptr %a153 + store %S.ast.Node %t154, ptr %a155 + %t156 = load i1, ptr %a127 + br i1 %t156, label %then5839, label %endif5841 +then5839: + %t157 = load ptr, ptr %a1 + %t158 = load %S.ast.Node, ptr %a155 + call void @finch.gen.fail(ptr %t157, %S.ast.Node %t158, { ptr, i64, i64 } { ptr @.str.3770, i64 72, i64 0 }) + br label %endif5841 +endif5841: + %t159 = load ptr, ptr %a1 + %t160 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t159, { ptr, i64, i64 } { ptr @.str.3771, i64 9, i64 0 }) + store { ptr, i64, i64 } %t160, ptr %a161 + %t162 = load ptr, ptr %a1 + %t163 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t162, { ptr, i64, i64 } { ptr @.str.3772, i64 10, i64 0 }) + store { ptr, i64, i64 } %t163, ptr %a164 + store { ptr, i64, i64 } zeroinitializer, ptr %a165 + store i64 -1, ptr %a166 + %t167 = getelementptr inbounds %S.ast.Node, ptr %a155, i32 0, i32 6 + %t168 = load i1, ptr %t167 + br i1 %t168, label %then5842, label %else5843 +then5842: + store i1 true, ptr %a127 + %t169 = load ptr, ptr %a1 + %t170 = load { ptr, i64, i64 }, ptr %a161 + call void @finch.gen.br(ptr %t169, { ptr, i64, i64 } %t170) + br label %endif5844 +else5843: + %t171 = getelementptr inbounds %S.ast.Node, ptr %a155, i32 0, i32 9 + %t172 = load { ptr, i64, i64 }, ptr %t171 + %t173 = extractvalue { ptr, i64, i64 } %t172, 1 + %t174 = icmp uge i64 0, %t173 + br i1 %t174, label %range5845, label %inrange5846 +range5845: + call void @finch_panic_index(ptr @.str.3773, i64 3078, i64 0, i64 %t173) unreachable -ok5776: - %t432 = getelementptr inbounds %S.gen.Gen, ptr %t430, i32 0, i32 9 - store i1 true, ptr %t432 - br label %endif5748 -endif5748: - %t433 = load ptr, ptr %a1 - %t434 = load i64, ptr %a46 - call void @finch.gen.heldEnd(ptr %t433, i64 %t434) - %t435 = load ptr, ptr %a1 - %t436 = load { ptr, i64, i64 }, ptr %a51 - call void @finch.gen.label(ptr %t435, { ptr, i64, i64 } %t436) - %t437 = load i1, ptr %a53 - %t438 = xor i1 %t437, true - br i1 %t438, label %then5777, label %endif5779 -then5777: - %t439 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t439, { ptr, i64, i64 } { ptr @.str.3713, i64 11, i64 0 }) - %t440 = load ptr, ptr %a1 - %t441 = icmp eq ptr %t440, null - br i1 %t441, label %panic5780, label %ok5781 -panic5780: - call void @finch_panic(ptr @.str.3714, i64 3062, ptr @.str.3715) +inrange5846: + %t175 = extractvalue { ptr, i64, i64 } %t172, 0 + %t176 = getelementptr inbounds %S.ast.Node, ptr %t175, i64 0 + %t177 = getelementptr inbounds %S.ast.Node, ptr %t176, i32 0, i32 9 + %t178 = load { ptr, i64, i64 }, ptr %t177 + store { ptr, i64, i64 } %t178, ptr %a179 + call void @finch.copy.arr_S_ast_Node(ptr %a180, ptr %a179) + %t181 = load { ptr, i64, i64 }, ptr %a180 + store { ptr, i64, i64 } %t181, ptr %a182 + %t183 = getelementptr inbounds { ptr, i64, i64 }, ptr %a182, i32 0, i32 1 + %t184 = load i64, ptr %t183 + store i64 0, ptr %a185 + br label %for.cond5847 +for.cond5847: + %t186 = load i64, ptr %a185 + %t187 = icmp slt i64 %t186, %t184 + br i1 %t187, label %for.body5848, label %for.end5850 +for.body5848: + store { ptr, i64, i64 } { ptr @.str.3774, i64 0, i64 0 }, ptr %a188 + %t189 = load i64, ptr %a49 + %t190 = icmp sge i64 %t189, 0 + br i1 %t190, label %then5851, label %else5852 +then5851: + %t191 = load ptr, ptr %a1 + %t192 = load i64, ptr %a185 + %t193 = load { ptr, i64, i64 }, ptr %a182 + %t194 = extractvalue { ptr, i64, i64 } %t193, 1 + %t195 = icmp uge i64 %t192, %t194 + br i1 %t195, label %range5854, label %inrange5855 +range5854: + call void @finch_panic_index(ptr @.str.3775, i64 3082, i64 %t192, i64 %t194) unreachable -ok5781: - %t442 = getelementptr inbounds %S.gen.Gen, ptr %t440, i32 0, i32 9 - store i1 true, ptr %t442 - %t443 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3716, i64 4, i64 0 }) - %t444 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t443, 1 - call void @finch.drop.S_ast_Type(ptr %a58) - call void @finch.drop.arr_str(ptr %a56) - call void @finch.drop.arr_str(ptr %a55) - call void @finch.drop.arr_str(ptr %a54) - call void @finch_str_drop(ptr %a51) +inrange5855: + %t196 = extractvalue { ptr, i64, i64 } %t193, 0 + %t197 = getelementptr inbounds %S.ast.Node, ptr %t196, i64 %t192 + %t198 = load %S.ast.Node, ptr %t197 + %t199 = load i64, ptr %a49 + %t200 = call %S.gen.SumPat @finch.gen.sumPattern(ptr %t191, %S.ast.Node %t198, i64 %t199) + store %S.gen.SumPat %t200, ptr %a201 + %t202 = getelementptr inbounds { ptr, i64, i64 }, ptr %a129, i32 0, i32 1 + %t203 = getelementptr inbounds %S.gen.SumPat, ptr %a201, i32 0, i32 0 + %t204 = load i64, ptr %t203 + call void @finch_str_from_int(ptr %a205, i64 %t204) + %t206 = load { ptr, i64, i64 }, ptr %a205 + store i64 -1, ptr %a207 + %t208 = load i64, ptr %t202 + %t209 = load ptr, ptr %a129 + store i64 0, ptr %a210 + br label %find.cond5856 +find.cond5856: + %t211 = load i64, ptr %a210 + %t212 = icmp slt i64 %t211, %t208 + br i1 %t212, label %find.body5857, label %find.end5860 +find.body5857: + %t213 = getelementptr inbounds { ptr, i64, i64 }, ptr %t209, i64 %t211 + %t214 = load { ptr, i64, i64 }, ptr %t213 + store { ptr, i64, i64 } %t214, ptr %a215 + store { ptr, i64, i64 } %t206, ptr %a216 + %t217 = call i32 @finch_str_eq(ptr %a215, ptr %a216) + %t218 = icmp ne i32 %t217, 0 + br i1 %t218, label %find.hit5858, label %find.next5859 +find.hit5858: + store i64 %t211, ptr %a207 + br label %find.end5860 +find.next5859: + %t219 = add i64 %t211, 1 + store i64 %t219, ptr %a210 + br label %find.cond5856 +find.end5860: + store { ptr, i64, i64 } %t206, ptr %a220 + call void @finch_str_drop(ptr %a220) + %t221 = load i64, ptr %a207 + %t222 = icmp sge i64 %t221, 0 + br i1 %t222, label %then5861, label %endif5863 +then5861: + %t223 = load ptr, ptr %a1 + %t224 = load i64, ptr %a185 + %t225 = load { ptr, i64, i64 }, ptr %a182 + %t226 = extractvalue { ptr, i64, i64 } %t225, 1 + %t227 = icmp uge i64 %t224, %t226 + br i1 %t227, label %range5864, label %inrange5865 +range5864: + call void @finch_panic_index(ptr @.str.3776, i64 3084, i64 %t224, i64 %t226) + unreachable +inrange5865: + %t228 = extractvalue { ptr, i64, i64 } %t225, 0 + %t229 = getelementptr inbounds %S.ast.Node, ptr %t228, i64 %t224 + %t230 = load %S.ast.Node, ptr %t229 + call void @finch.gen.fail(ptr %t223, %S.ast.Node %t230, { ptr, i64, i64 } { ptr @.str.3777, i64 49, i64 0 }) + br label %endif5863 +endif5863: + %t231 = getelementptr inbounds { ptr, i64, i64 }, ptr %a129, i32 0, i32 1 + %t232 = getelementptr inbounds %S.gen.SumPat, ptr %a201, i32 0, i32 0 + %t233 = load i64, ptr %t232 + call void @finch_str_from_int(ptr %a234, i64 %t233) + %t235 = load { ptr, i64, i64 }, ptr %a234 + %t236 = load i64, ptr %t231 + %t237 = add i64 %t236, 1 + call void @finch_arr_reserve(ptr %a129, i64 %t237, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t238 = load ptr, ptr %a129 + %t239 = getelementptr inbounds { ptr, i64, i64 }, ptr %t238, i64 %t236 + store { ptr, i64, i64 } %t235, ptr %t239 + store i64 %t237, ptr %t231 + %t240 = getelementptr inbounds %S.gen.SumPat, ptr %a201, i32 0, i32 1 + %t241 = getelementptr inbounds { ptr, i64, i64 }, ptr %t240, i32 0, i32 1 + %t242 = load i64, ptr %t241 + %t243 = icmp sgt i64 %t242, 0 + br i1 %t243, label %then5866, label %endif5868 +then5866: + %t244 = getelementptr inbounds { ptr, i64, i64 }, ptr %a182, i32 0, i32 1 + %t245 = load i64, ptr %t244 + %t246 = icmp sgt i64 %t245, 1 + br i1 %t246, label %then5869, label %endif5871 +then5869: + %t247 = load ptr, ptr %a1 + %t248 = load i64, ptr %a185 + %t249 = load { ptr, i64, i64 }, ptr %a182 + %t250 = extractvalue { ptr, i64, i64 } %t249, 1 + %t251 = icmp uge i64 %t248, %t250 + br i1 %t251, label %range5872, label %inrange5873 +range5872: + call void @finch_panic_index(ptr @.str.3778, i64 3089, i64 %t248, i64 %t250) + unreachable +inrange5873: + %t252 = extractvalue { ptr, i64, i64 } %t249, 0 + %t253 = getelementptr inbounds %S.ast.Node, ptr %t252, i64 %t248 + %t254 = load %S.ast.Node, ptr %t253 + call void @finch.gen.fail(ptr %t247, %S.ast.Node %t254, { ptr, i64, i64 } { ptr @.str.3779, i64 52, i64 0 }) + br label %endif5871 +endif5871: + %t255 = getelementptr inbounds %S.gen.SumPat, ptr %a201, i32 0, i32 1 + %t256 = load { ptr, i64, i64 }, ptr %t255 + store { ptr, i64, i64 } %t256, ptr %a257 + call void @finch.copy.arr_S_ast_Node(ptr %a258, ptr %a257) + %t259 = load { ptr, i64, i64 }, ptr %a258 + %t260 = load { ptr, i64, i64 }, ptr %a165 + store { ptr, i64, i64 } %t259, ptr %a165 + store { ptr, i64, i64 } %t260, ptr %a261 + call void @finch.drop.arr_S_ast_Node(ptr %a261) + %t262 = getelementptr inbounds %S.gen.SumPat, ptr %a201, i32 0, i32 0 + %t263 = load i64, ptr %t262 + store i64 %t263, ptr %a166 + br label %endif5868 +endif5868: + %t264 = load ptr, ptr %a1 + %t265 = load { ptr, i64, i64 }, ptr %a50 + store { ptr, i64, i64 } { ptr @.str.3780, i64 12, i64 0 }, ptr %a267 + store { ptr, i64, i64 } %t265, ptr %a268 + call void @finch_str_concat(ptr %a266, ptr %a267, ptr %a268) + %t269 = load { ptr, i64, i64 }, ptr %a266 + store { ptr, i64, i64 } %t269, ptr %a271 + store { ptr, i64, i64 } { ptr @.str.3781, i64 2, i64 0 }, ptr %a272 + call void @finch_str_concat(ptr %a270, ptr %a271, ptr %a272) + store { ptr, i64, i64 } %t269, ptr %a273 + call void @finch_str_drop(ptr %a273) + %t274 = load { ptr, i64, i64 }, ptr %a270 + %t275 = getelementptr inbounds %S.gen.SumPat, ptr %a201, i32 0, i32 0 + %t276 = load i64, ptr %t275 + call void @finch_str_from_int(ptr %a277, i64 %t276) + %t278 = load { ptr, i64, i64 }, ptr %a277 + store { ptr, i64, i64 } %t274, ptr %a280 + store { ptr, i64, i64 } %t278, ptr %a281 + call void @finch_str_concat(ptr %a279, ptr %a280, ptr %a281) + store { ptr, i64, i64 } %t274, ptr %a282 + call void @finch_str_drop(ptr %a282) + store { ptr, i64, i64 } %t278, ptr %a283 + call void @finch_str_drop(ptr %a283) + %t284 = load { ptr, i64, i64 }, ptr %a279 + %t285 = call { ptr, i64, i64 } @finch.gen.op(ptr %t264, { ptr, i64, i64 } %t284) + store { ptr, i64, i64 } %t284, ptr %a286 + call void @finch_str_drop(ptr %a286) + %t287 = load { ptr, i64, i64 }, ptr %a188 + store { ptr, i64, i64 } %t285, ptr %a188 + store { ptr, i64, i64 } %t287, ptr %a288 + call void @finch_str_drop(ptr %a288) + call void @finch.drop.S_gen_SumPat(ptr %a201) + br label %endif5853 +else5852: + %t289 = load ptr, ptr %a1 + %t290 = load i64, ptr %a185 + %t291 = load { ptr, i64, i64 }, ptr %a182 + %t292 = extractvalue { ptr, i64, i64 } %t291, 1 + %t293 = icmp uge i64 %t290, %t292 + br i1 %t293, label %range5874, label %inrange5875 +range5874: + call void @finch_panic_index(ptr @.str.3782, i64 3096, i64 %t290, i64 %t292) + unreachable +inrange5875: + %t294 = extractvalue { ptr, i64, i64 } %t291, 0 + %t295 = getelementptr inbounds %S.ast.Node, ptr %t294, i64 %t290 + %t296 = load %S.ast.Node, ptr %t295 + %t297 = load %S.ast.Type, ptr %a19 + %t298 = call %S.gen.Val @finch.gen.patternValue(ptr %t289, %S.ast.Node %t296, %S.ast.Type %t297) + store %S.gen.Val %t298, ptr %a299 + %t300 = getelementptr inbounds { ptr, i64, i64 }, ptr %a129, i32 0, i32 1 + %t301 = getelementptr inbounds %S.gen.Val, ptr %a299, i32 0, i32 0 + %t302 = load { ptr, i64, i64 }, ptr %t301 + store i64 -1, ptr %a303 + %t304 = load i64, ptr %t300 + %t305 = load ptr, ptr %a129 + store i64 0, ptr %a306 + br label %find.cond5876 +find.cond5876: + %t307 = load i64, ptr %a306 + %t308 = icmp slt i64 %t307, %t304 + br i1 %t308, label %find.body5877, label %find.end5880 +find.body5877: + %t309 = getelementptr inbounds { ptr, i64, i64 }, ptr %t305, i64 %t307 + %t310 = load { ptr, i64, i64 }, ptr %t309 + store { ptr, i64, i64 } %t310, ptr %a311 + store { ptr, i64, i64 } %t302, ptr %a312 + %t313 = call i32 @finch_str_eq(ptr %a311, ptr %a312) + %t314 = icmp ne i32 %t313, 0 + br i1 %t314, label %find.hit5878, label %find.next5879 +find.hit5878: + store i64 %t307, ptr %a303 + br label %find.end5880 +find.next5879: + %t315 = add i64 %t307, 1 + store i64 %t315, ptr %a306 + br label %find.cond5876 +find.end5880: + %t316 = load i64, ptr %a303 + %t317 = icmp sge i64 %t316, 0 + br label %logic.from5881 +logic.from5881: + br i1 %t317, label %logic.rhs5882, label %logic.end5883 +logic.rhs5882: + %t318 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 0 + %t319 = load { ptr, i64, i64 }, ptr %t318 + store { ptr, i64, i64 } %t319, ptr %a320 + store { ptr, i64, i64 } { ptr @.str.3783, i64 4, i64 0 }, ptr %a321 + %t322 = call i32 @finch_str_eq(ptr %a320, ptr %a321) + %t323 = icmp ne i32 %t322, 0 + br label %logic.rend5884 +logic.rend5884: + br label %logic.end5883 +logic.end5883: + %t324 = phi i1 [ false, %logic.from5881 ], [ %t323, %logic.rend5884 ] + br i1 %t324, label %then5885, label %endif5887 +then5885: + %t325 = load ptr, ptr %a1 + %t326 = load i64, ptr %a185 + %t327 = load { ptr, i64, i64 }, ptr %a182 + %t328 = extractvalue { ptr, i64, i64 } %t327, 1 + %t329 = icmp uge i64 %t326, %t328 + br i1 %t329, label %range5888, label %inrange5889 +range5888: + call void @finch_panic_index(ptr @.str.3784, i64 3098, i64 %t326, i64 %t328) + unreachable +inrange5889: + %t330 = extractvalue { ptr, i64, i64 } %t327, 0 + %t331 = getelementptr inbounds %S.ast.Node, ptr %t330, i64 %t326 + %t332 = load %S.ast.Node, ptr %t331 + call void @finch.gen.fail(ptr %t325, %S.ast.Node %t332, { ptr, i64, i64 } { ptr @.str.3785, i64 49, i64 0 }) + br label %endif5887 +endif5887: + %t333 = getelementptr inbounds { ptr, i64, i64 }, ptr %a129, i32 0, i32 1 + %t334 = getelementptr inbounds %S.gen.Val, ptr %a299, i32 0, i32 0 + %t335 = load { ptr, i64, i64 }, ptr %t334 + store { ptr, i64, i64 } %t335, ptr %a336 + call void @finch_str_copy(ptr %a337, ptr %a336) + %t338 = load { ptr, i64, i64 }, ptr %a337 + %t339 = load i64, ptr %t333 + %t340 = add i64 %t339, 1 + call void @finch_arr_reserve(ptr %a129, i64 %t340, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t341 = load ptr, ptr %a129 + %t342 = getelementptr inbounds { ptr, i64, i64 }, ptr %t341, i64 %t339 + store { ptr, i64, i64 } %t338, ptr %t342 + store i64 %t340, ptr %t333 + %t343 = load ptr, ptr %a1 + %t344 = load %S.gen.Val, ptr %a13 + %t345 = load %S.gen.Val, ptr %a299 + %t346 = load i64, ptr %a185 + %t347 = load { ptr, i64, i64 }, ptr %a182 + %t348 = extractvalue { ptr, i64, i64 } %t347, 1 + %t349 = icmp uge i64 %t346, %t348 + br i1 %t349, label %range5890, label %inrange5891 +range5890: + call void @finch_panic_index(ptr @.str.3787, i64 3101, i64 %t346, i64 %t348) + unreachable +inrange5891: + %t350 = extractvalue { ptr, i64, i64 } %t347, 0 + %t351 = getelementptr inbounds %S.ast.Node, ptr %t350, i64 %t346 + %t352 = load %S.ast.Node, ptr %t351 + %t353 = call %S.gen.Val @finch.gen.compare(ptr %t343, { ptr, i64, i64 } { ptr @.str.3786, i64 2, i64 0 }, %S.gen.Val %t344, %S.gen.Val %t345, %S.ast.Node %t352) + %t354 = extractvalue %S.gen.Val %t353, 0 + store { ptr, i64, i64 } %t354, ptr %a355 + call void @finch_str_copy(ptr %a356, ptr %a355) + %t357 = load { ptr, i64, i64 }, ptr %a356 + store %S.gen.Val %t353, ptr %a358 + call void @finch.drop.S_gen_Val(ptr %a358) + %t359 = load { ptr, i64, i64 }, ptr %a188 + store { ptr, i64, i64 } %t357, ptr %a188 + store { ptr, i64, i64 } %t359, ptr %a360 + call void @finch_str_drop(ptr %a360) + call void @finch.drop.S_gen_Val(ptr %a299) + br label %endif5853 +endif5853: + %t361 = load i64, ptr %a185 + %t362 = getelementptr inbounds { ptr, i64, i64 }, ptr %a182, i32 0, i32 1 + %t363 = load i64, ptr %t362 + %t364 = sub i64 %t363, 1 + %t365 = icmp eq i64 %t361, %t364 + br i1 %t365, label %then5892, label %else5893 +then5892: + %t366 = load ptr, ptr %a1 + %t367 = load { ptr, i64, i64 }, ptr %a188 + %t368 = load { ptr, i64, i64 }, ptr %a161 + %t369 = load { ptr, i64, i64 }, ptr %a164 + call void @finch.gen.condBr(ptr %t366, { ptr, i64, i64 } %t367, { ptr, i64, i64 } %t368, { ptr, i64, i64 } %t369) + br label %endif5894 +else5893: + %t370 = load ptr, ptr %a1 + %t371 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t370, { ptr, i64, i64 } { ptr @.str.3788, i64 8, i64 0 }) + store { ptr, i64, i64 } %t371, ptr %a372 + %t373 = load ptr, ptr %a1 + %t374 = load { ptr, i64, i64 }, ptr %a188 + %t375 = load { ptr, i64, i64 }, ptr %a161 + %t376 = load { ptr, i64, i64 }, ptr %a372 + call void @finch.gen.condBr(ptr %t373, { ptr, i64, i64 } %t374, { ptr, i64, i64 } %t375, { ptr, i64, i64 } %t376) + %t377 = load ptr, ptr %a1 + %t378 = load { ptr, i64, i64 }, ptr %a372 + call void @finch.gen.label(ptr %t377, { ptr, i64, i64 } %t378) + call void @finch_str_drop(ptr %a372) + br label %endif5894 +endif5894: + call void @finch_str_drop(ptr %a188) + br label %for.step5849 +for.step5849: + %t379 = load i64, ptr %a185 + %t380 = add i64 %t379, 1 + store i64 %t380, ptr %a185 + br label %for.cond5847 +for.end5850: + call void @finch.drop.arr_S_ast_Node(ptr %a182) + br label %endif5844 +endif5844: + %t381 = load ptr, ptr %a1 + %t382 = load { ptr, i64, i64 }, ptr %a161 + call void @finch.gen.label(ptr %t381, { ptr, i64, i64 } %t382) + %t383 = getelementptr inbounds { ptr, i64, i64 }, ptr %a165, i32 0, i32 1 + %t384 = load i64, ptr %t383 + %t385 = icmp sgt i64 %t384, 0 + store i1 %t385, ptr %a386 + %t387 = load i1, ptr %a386 + br i1 %t387, label %then5895, label %endif5897 +then5895: + %t388 = load ptr, ptr %a1 + call void @finch.gen.pushScope(ptr %t388) + %t389 = load ptr, ptr %a1 + %t390 = icmp eq ptr %t389, null + br i1 %t390, label %panic5898, label %ok5899 +panic5898: + call void @finch_panic(ptr @.str.3789, i64 3116, ptr @.str.3790) + unreachable +ok5899: + %t391 = getelementptr inbounds %S.gen.Gen, ptr %t389, i32 0, i32 16 + %t392 = load ptr, ptr %a1 + %t393 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 3 + %t394 = load { ptr, i64, i64 }, ptr %t393 + %t395 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 2 + %t396 = load { ptr, i64, i64 }, ptr %t395 + %t397 = call i64 @finch.gen.findStruct(ptr %t392, { ptr, i64, i64 } %t394, { ptr, i64, i64 } %t396) + %t398 = load { ptr, i64, i64 }, ptr %t391 + %t399 = extractvalue { ptr, i64, i64 } %t398, 1 + %t400 = icmp uge i64 %t397, %t399 + br i1 %t400, label %range5900, label %inrange5901 +range5900: + call void @finch_panic_index(ptr @.str.3791, i64 3116, i64 %t397, i64 %t399) + unreachable +inrange5901: + %t401 = extractvalue { ptr, i64, i64 } %t398, 0 + %t402 = getelementptr inbounds %S.gen.StructDef, ptr %t401, i64 %t397 + %t403 = load %S.gen.StructDef, ptr %t402 + store %S.gen.StructDef %t403, ptr %a404 + call void @finch.copy.S_gen_StructDef(ptr %a405, ptr %a404) + %t406 = load %S.gen.StructDef, ptr %a405 + store %S.gen.StructDef %t406, ptr %a407 + %t408 = getelementptr inbounds { ptr, i64, i64 }, ptr %a165, i32 0, i32 1 + %t409 = load i64, ptr %t408 + store i64 0, ptr %a410 + br label %for.cond5902 +for.cond5902: + %t411 = load i64, ptr %a410 + %t412 = icmp slt i64 %t411, %t409 + br i1 %t412, label %for.body5903, label %for.end5905 +for.body5903: + %t413 = load i64, ptr %a410 + %t414 = load { ptr, i64, i64 }, ptr %a165 + %t415 = extractvalue { ptr, i64, i64 } %t414, 1 + %t416 = icmp uge i64 %t413, %t415 + br i1 %t416, label %range5906, label %inrange5907 +range5906: + call void @finch_panic_index(ptr @.str.3792, i64 3118, i64 %t413, i64 %t415) + unreachable +inrange5907: + %t417 = extractvalue { ptr, i64, i64 } %t414, 0 + %t418 = getelementptr inbounds %S.ast.Node, ptr %t417, i64 %t413 + %t419 = getelementptr inbounds %S.ast.Node, ptr %t418, i32 0, i32 1 + %t420 = load { ptr, i64, i64 }, ptr %t419 + store { ptr, i64, i64 } %t420, ptr %a421 + store { ptr, i64, i64 } { ptr @.str.3793, i64 1, i64 0 }, ptr %a422 + %t423 = call i32 @finch_str_eq(ptr %a421, ptr %a422) + %t424 = icmp ne i32 %t423, 0 + br i1 %t424, label %then5908, label %endif5910 +then5908: + br label %for.step5904 +endif5910: + %t425 = load ptr, ptr %a1 + %t426 = icmp eq ptr %t425, null + br i1 %t426, label %panic5911, label %ok5912 +panic5911: + call void @finch_panic(ptr @.str.3794, i64 3121, ptr @.str.3795) + unreachable +ok5912: + %t427 = getelementptr inbounds %S.gen.Gen, ptr %t425, i32 0, i32 22 + %t428 = load i64, ptr %a49 + %t429 = load { ptr, i64, i64 }, ptr %t427 + %t430 = extractvalue { ptr, i64, i64 } %t429, 1 + %t431 = icmp uge i64 %t428, %t430 + br i1 %t431, label %range5913, label %inrange5914 +range5913: + call void @finch_panic_index(ptr @.str.3796, i64 3121, i64 %t428, i64 %t430) + unreachable +inrange5914: + %t432 = extractvalue { ptr, i64, i64 } %t429, 0 + %t433 = getelementptr inbounds %S.gen.SumDef, ptr %t432, i64 %t428 + %t434 = getelementptr inbounds %S.gen.SumDef, ptr %t433, i32 0, i32 4 + %t435 = load i64, ptr %a166 + %t436 = load { ptr, i64, i64 }, ptr %t434 + %t437 = extractvalue { ptr, i64, i64 } %t436, 1 + %t438 = icmp uge i64 %t435, %t437 + br i1 %t438, label %range5915, label %inrange5916 +range5915: + call void @finch_panic_index(ptr @.str.3797, i64 3121, i64 %t435, i64 %t437) + unreachable +inrange5916: + %t439 = extractvalue { ptr, i64, i64 } %t436, 0 + %t440 = getelementptr inbounds i64, ptr %t439, i64 %t435 + %t441 = load i64, ptr %t440 + %t442 = load i64, ptr %a410 + %t443 = add i64 %t441, %t442 + store i64 %t443, ptr %a444 + %t445 = getelementptr inbounds %S.gen.StructDef, ptr %a407, i32 0, i32 12 + %t446 = load i64, ptr %a444 + %t447 = load { ptr, i64, i64 }, ptr %t445 + %t448 = extractvalue { ptr, i64, i64 } %t447, 1 + %t449 = icmp uge i64 %t446, %t448 + br i1 %t449, label %range5917, label %inrange5918 +range5917: + call void @finch_panic_index(ptr @.str.3798, i64 3122, i64 %t446, i64 %t448) + unreachable +inrange5918: + %t450 = extractvalue { ptr, i64, i64 } %t447, 0 + %t451 = getelementptr inbounds %S.ast.Type, ptr %t450, i64 %t446 + %t452 = load %S.ast.Type, ptr %t451 + store %S.ast.Type %t452, ptr %a453 + call void @finch.copy.S_ast_Type(ptr %a454, ptr %a453) + %t455 = load %S.ast.Type, ptr %a454 + store %S.ast.Type %t455, ptr %a456 + %t457 = load ptr, ptr %a1 + %t458 = load ptr, ptr %a1 + %t459 = load %S.ast.Type, ptr %a19 + %t460 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t458, %S.ast.Type %t459) + store { ptr, i64, i64 } { ptr @.str.3799, i64 13, i64 0 }, ptr %a462 + store { ptr, i64, i64 } %t460, ptr %a463 + call void @finch_str_concat(ptr %a461, ptr %a462, ptr %a463) + store { ptr, i64, i64 } %t460, ptr %a464 + call void @finch_str_drop(ptr %a464) + %t465 = load { ptr, i64, i64 }, ptr %a461 + store { ptr, i64, i64 } %t465, ptr %a467 + store { ptr, i64, i64 } { ptr @.str.3800, i64 1, i64 0 }, ptr %a468 + call void @finch_str_concat(ptr %a466, ptr %a467, ptr %a468) + store { ptr, i64, i64 } %t465, ptr %a469 + call void @finch_str_drop(ptr %a469) + %t470 = load { ptr, i64, i64 }, ptr %a466 + %t471 = getelementptr inbounds %S.gen.Val, ptr %a13, i32 0, i32 0 + %t472 = load { ptr, i64, i64 }, ptr %t471 + store { ptr, i64, i64 } %t470, ptr %a474 + store { ptr, i64, i64 } %t472, ptr %a475 + call void @finch_str_concat(ptr %a473, ptr %a474, ptr %a475) + store { ptr, i64, i64 } %t470, ptr %a476 + call void @finch_str_drop(ptr %a476) + %t477 = load { ptr, i64, i64 }, ptr %a473 + store { ptr, i64, i64 } %t477, ptr %a479 + store { ptr, i64, i64 } { ptr @.str.3801, i64 2, i64 0 }, ptr %a480 + call void @finch_str_concat(ptr %a478, ptr %a479, ptr %a480) + store { ptr, i64, i64 } %t477, ptr %a481 + call void @finch_str_drop(ptr %a481) + %t482 = load { ptr, i64, i64 }, ptr %a478 + %t483 = getelementptr inbounds %S.gen.StructDef, ptr %a407, i32 0, i32 3 + %t484 = load i64, ptr %a444 + %t485 = load { ptr, i64, i64 }, ptr %t483 + %t486 = extractvalue { ptr, i64, i64 } %t485, 1 + %t487 = icmp uge i64 %t484, %t486 + br i1 %t487, label %range5919, label %inrange5920 +range5919: + call void @finch_panic_index(ptr @.str.3802, i64 3123, i64 %t484, i64 %t486) + unreachable +inrange5920: + %t488 = extractvalue { ptr, i64, i64 } %t485, 0 + %t489 = getelementptr inbounds i64, ptr %t488, i64 %t484 + %t490 = load i64, ptr %t489 + call void @finch_str_from_int(ptr %a491, i64 %t490) + %t492 = load { ptr, i64, i64 }, ptr %a491 + store { ptr, i64, i64 } %t482, ptr %a494 + store { ptr, i64, i64 } %t492, ptr %a495 + call void @finch_str_concat(ptr %a493, ptr %a494, ptr %a495) + store { ptr, i64, i64 } %t482, ptr %a496 + call void @finch_str_drop(ptr %a496) + store { ptr, i64, i64 } %t492, ptr %a497 + call void @finch_str_drop(ptr %a497) + %t498 = load { ptr, i64, i64 }, ptr %a493 + %t499 = call { ptr, i64, i64 } @finch.gen.op(ptr %t457, { ptr, i64, i64 } %t498) + store { ptr, i64, i64 } %t498, ptr %a500 + call void @finch_str_drop(ptr %a500) + store { ptr, i64, i64 } %t499, ptr %a501 + %t502 = load ptr, ptr %a1 + %t503 = load i64, ptr %a410 + %t504 = load { ptr, i64, i64 }, ptr %a165 + %t505 = extractvalue { ptr, i64, i64 } %t504, 1 + %t506 = icmp uge i64 %t503, %t505 + br i1 %t506, label %range5921, label %inrange5922 +range5921: + call void @finch_panic_index(ptr @.str.3803, i64 3124, i64 %t503, i64 %t505) + unreachable +inrange5922: + %t507 = extractvalue { ptr, i64, i64 } %t504, 0 + %t508 = getelementptr inbounds %S.ast.Node, ptr %t507, i64 %t503 + %t509 = load %S.ast.Node, ptr %t508 + %t510 = load i64, ptr %a410 + %t511 = load { ptr, i64, i64 }, ptr %a165 + %t512 = extractvalue { ptr, i64, i64 } %t511, 1 + %t513 = icmp uge i64 %t510, %t512 + br i1 %t513, label %range5923, label %inrange5924 +range5923: + call void @finch_panic_index(ptr @.str.3804, i64 3124, i64 %t510, i64 %t512) + unreachable +inrange5924: + %t514 = extractvalue { ptr, i64, i64 } %t511, 0 + %t515 = getelementptr inbounds %S.ast.Node, ptr %t514, i64 %t510 + %t516 = getelementptr inbounds %S.ast.Node, ptr %t515, i32 0, i32 1 + %t517 = load { ptr, i64, i64 }, ptr %t516 + %t518 = load %S.ast.Type, ptr %a456 + %t519 = load ptr, ptr %a1 + %t520 = load { ptr, i64, i64 }, ptr %a501 + %t521 = load %S.ast.Type, ptr %a456 + %t522 = call { ptr, i64, i64 } @finch.gen.copyValue(ptr %t519, { ptr, i64, i64 } %t520, %S.ast.Type %t521) + %t523 = call { ptr, i64, i64 } @finch.gen.addVar(ptr %t502, %S.ast.Node %t509, { ptr, i64, i64 } %t517, %S.ast.Type %t518, { ptr, i64, i64 } %t522, i1 true, i1 true) + store { ptr, i64, i64 } %t522, ptr %a524 + call void @finch_str_drop(ptr %a524) + store { ptr, i64, i64 } %t523, ptr %a525 + call void @finch_str_drop(ptr %a525) + call void @finch_str_drop(ptr %a501) + call void @finch.drop.S_ast_Type(ptr %a456) + br label %for.step5904 +for.step5904: + %t526 = load i64, ptr %a410 + %t527 = add i64 %t526, 1 + store i64 %t527, ptr %a410 + br label %for.cond5902 +for.end5905: + call void @finch.drop.S_gen_StructDef(ptr %a407) + br label %endif5897 +endif5897: + %t528 = getelementptr inbounds %S.ast.Node, ptr %a155, i32 0, i32 9 + %t529 = load { ptr, i64, i64 }, ptr %t528 + %t530 = extractvalue { ptr, i64, i64 } %t529, 1 + %t531 = icmp uge i64 1, %t530 + br i1 %t531, label %range5925, label %inrange5926 +range5925: + call void @finch_panic_index(ptr @.str.3805, i64 3127, i64 1, i64 %t530) + unreachable +inrange5926: + %t532 = extractvalue { ptr, i64, i64 } %t529, 0 + %t533 = getelementptr inbounds %S.ast.Node, ptr %t532, i64 1 + %t534 = load %S.ast.Node, ptr %t533 + store %S.ast.Node %t534, ptr %a535 + call void @finch.copy.S_ast_Node(ptr %a536, ptr %a535) + %t537 = load %S.ast.Node, ptr %a536 + store %S.ast.Node %t537, ptr %a538 + %t539 = load i1, ptr %a3 + br i1 %t539, label %then5927, label %else5928 +then5927: + %t540 = load ptr, ptr %a1 + %t541 = load %S.ast.Node, ptr %a538 + %t542 = call %S.gen.Val @finch.gen.expr(ptr %t540, %S.ast.Node %t541) + store %S.gen.Val %t542, ptr %a543 + %t544 = load i64, ptr %a140 + %t545 = icmp eq i64 %t544, 0 + br label %logic.from5930 +logic.from5930: + br i1 %t545, label %logic.end5932, label %logic.rhs5931 +logic.rhs5931: + %t546 = getelementptr inbounds %S.ast.Type, ptr %a133, i32 0, i32 0 + %t547 = load { ptr, i64, i64 }, ptr %t546 + store { ptr, i64, i64 } %t547, ptr %a548 + store { ptr, i64, i64 } { ptr @.str.3806, i64 4, i64 0 }, ptr %a549 + %t550 = call i32 @finch_str_eq(ptr %a548, ptr %a549) + %t551 = icmp ne i32 %t550, 0 + br label %logic.rend5933 +logic.rend5933: + br label %logic.end5932 +logic.end5932: + %t552 = phi i1 [ true, %logic.from5930 ], [ %t551, %logic.rend5933 ] + br i1 %t552, label %then5934, label %endif5936 +then5934: + %t553 = getelementptr inbounds %S.gen.Val, ptr %a543, i32 0, i32 1 + %t554 = getelementptr inbounds %S.ast.Type, ptr %t553, i32 0, i32 0 + %t555 = load { ptr, i64, i64 }, ptr %t554 + store { ptr, i64, i64 } %t555, ptr %a556 + store { ptr, i64, i64 } { ptr @.str.3807, i64 4, i64 0 }, ptr %a557 + %t558 = call i32 @finch_str_eq(ptr %a556, ptr %a557) + %t559 = icmp ne i32 %t558, 0 + br label %logic.from5937 +logic.from5937: + br i1 %t559, label %logic.end5939, label %logic.rhs5938 +logic.rhs5938: + %t560 = getelementptr inbounds %S.gen.Val, ptr %a543, i32 0, i32 1 + %t561 = getelementptr inbounds %S.ast.Type, ptr %t560, i32 0, i32 0 + %t562 = load { ptr, i64, i64 }, ptr %t561 + store { ptr, i64, i64 } %t562, ptr %a563 + store { ptr, i64, i64 } { ptr @.str.3808, i64 4, i64 0 }, ptr %a564 + %t565 = call i32 @finch_str_eq(ptr %a563, ptr %a564) + %t566 = icmp ne i32 %t565, 0 + br label %logic.rend5940 +logic.rend5940: + br label %logic.end5939 +logic.end5939: + %t567 = phi i1 [ true, %logic.from5937 ], [ %t566, %logic.rend5940 ] + br i1 %t567, label %then5941, label %endif5943 +then5941: + %t568 = load ptr, ptr %a1 + %t569 = load %S.ast.Node, ptr %a538 + call void @finch.gen.fail(ptr %t568, %S.ast.Node %t569, { ptr, i64, i64 } { ptr @.str.3809, i64 52, i64 0 }) + br label %endif5943 +endif5943: + %t570 = getelementptr inbounds %S.gen.Val, ptr %a543, i32 0, i32 1 + %t571 = load %S.ast.Type, ptr %t570 + store %S.ast.Type %t571, ptr %a572 + call void @finch.copy.S_ast_Type(ptr %a573, ptr %a572) + %t574 = load %S.ast.Type, ptr %a573 + %t575 = load %S.ast.Type, ptr %a133 + store %S.ast.Type %t574, ptr %a133 + store %S.ast.Type %t575, ptr %a576 + call void @finch.drop.S_ast_Type(ptr %a576) + br label %endif5936 +endif5936: + %t577 = load ptr, ptr %a1 + %t578 = load %S.gen.Val, ptr %a543 + %t579 = load %S.ast.Type, ptr %a133 + %t580 = load %S.ast.Node, ptr %a538 + %t581 = call %S.gen.Val @finch.gen.coerce(ptr %t577, %S.gen.Val %t578, %S.ast.Type %t579, %S.ast.Node %t580, { ptr, i64, i64 } { ptr @.str.3810, i64 57, i64 0 }) + %t582 = load %S.gen.Val, ptr %a543 + store %S.gen.Val %t581, ptr %a543 + store %S.gen.Val %t582, ptr %a583 + call void @finch.drop.S_gen_Val(ptr %a583) + %t584 = load ptr, ptr %a1 + %t585 = load %S.gen.Val, ptr %a543 + %t586 = call { ptr, i64, i64 } @finch.gen.own(ptr %t584, %S.gen.Val %t585) + store { ptr, i64, i64 } %t586, ptr %a587 + %t588 = load i1, ptr %a386 + br i1 %t588, label %then5944, label %endif5946 +then5944: + %t589 = load ptr, ptr %a1 + call void @finch.gen.popScope(ptr %t589) + br label %endif5946 +endif5946: + %t590 = load ptr, ptr %a1 + %t591 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t590, { ptr, i64, i64 } { ptr @.str.3811, i64 10, i64 0 }) + store { ptr, i64, i64 } %t591, ptr %a592 + %t593 = load ptr, ptr %a1 + %t594 = load { ptr, i64, i64 }, ptr %a592 + call void @finch.gen.br(ptr %t593, { ptr, i64, i64 } %t594) + %t595 = load ptr, ptr %a1 + %t596 = load { ptr, i64, i64 }, ptr %a592 + call void @finch.gen.label(ptr %t595, { ptr, i64, i64 } %t596) + %t597 = getelementptr inbounds { ptr, i64, i64 }, ptr %a130, i32 0, i32 1 + %t598 = load { ptr, i64, i64 }, ptr %a587 + store { ptr, i64, i64 } %t598, ptr %a599 + call void @finch_str_copy(ptr %a600, ptr %a599) + %t601 = load { ptr, i64, i64 }, ptr %a600 + %t602 = load i64, ptr %t597 + %t603 = add i64 %t602, 1 + call void @finch_arr_reserve(ptr %a130, i64 %t603, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t604 = load ptr, ptr %a130 + %t605 = getelementptr inbounds { ptr, i64, i64 }, ptr %t604, i64 %t602 + store { ptr, i64, i64 } %t601, ptr %t605 + store i64 %t603, ptr %t597 + %t606 = getelementptr inbounds { ptr, i64, i64 }, ptr %a131, i32 0, i32 1 + %t607 = load { ptr, i64, i64 }, ptr %a592 + store { ptr, i64, i64 } %t607, ptr %a608 + call void @finch_str_copy(ptr %a609, ptr %a608) + %t610 = load { ptr, i64, i64 }, ptr %a609 + %t611 = load i64, ptr %t606 + %t612 = add i64 %t611, 1 + call void @finch_arr_reserve(ptr %a131, i64 %t612, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t613 = load ptr, ptr %a131 + %t614 = getelementptr inbounds { ptr, i64, i64 }, ptr %t613, i64 %t611 + store { ptr, i64, i64 } %t610, ptr %t614 + store i64 %t612, ptr %t606 + %t615 = load ptr, ptr %a1 + %t616 = load { ptr, i64, i64 }, ptr %a126 + call void @finch.gen.br(ptr %t615, { ptr, i64, i64 } %t616) + store i1 true, ptr %a128 + call void @finch_str_drop(ptr %a592) + call void @finch_str_drop(ptr %a587) + call void @finch.drop.S_gen_Val(ptr %a543) + br label %endif5929 +else5928: + %t617 = getelementptr inbounds %S.ast.Node, ptr %a538, i32 0, i32 0 + %t618 = load { ptr, i64, i64 }, ptr %t617 + store { ptr, i64, i64 } %t618, ptr %a619 + store { ptr, i64, i64 } { ptr @.str.3812, i64 5, i64 0 }, ptr %a620 + %t621 = call i32 @finch_str_eq(ptr %a619, ptr %a620) + %t622 = icmp ne i32 %t621, 0 + br i1 %t622, label %then5947, label %else5948 +then5947: + %t623 = load ptr, ptr %a1 + %t624 = load %S.ast.Node, ptr %a538 + call void @finch.gen.block(ptr %t623, %S.ast.Node %t624, i1 true) + br label %endif5949 +else5948: + %t625 = load ptr, ptr %a1 + %t626 = load %S.ast.Node, ptr %a538 + call void @finch.gen.stmt(ptr %t625, %S.ast.Node %t626) + br label %endif5949 +endif5949: + %t627 = load ptr, ptr %a1 + %t628 = icmp eq ptr %t627, null + br i1 %t628, label %panic5950, label %ok5951 +panic5950: + call void @finch_panic(ptr @.str.3813, i64 3154, ptr @.str.3814) + unreachable +ok5951: + %t629 = getelementptr inbounds %S.gen.Gen, ptr %t627, i32 0, i32 9 + %t630 = load i1, ptr %t629 + %t631 = xor i1 %t630, true + br i1 %t631, label %then5952, label %endif5954 +then5952: + store i1 true, ptr %a128 + br label %endif5954 +endif5954: + %t632 = load i1, ptr %a386 + br i1 %t632, label %then5955, label %endif5957 +then5955: + %t633 = load ptr, ptr %a1 + call void @finch.gen.popScope(ptr %t633) + br label %endif5957 +endif5957: + %t634 = load ptr, ptr %a1 + %t635 = load { ptr, i64, i64 }, ptr %a126 + call void @finch.gen.br(ptr %t634, { ptr, i64, i64 } %t635) + br label %endif5929 +endif5929: + %t636 = getelementptr inbounds %S.ast.Node, ptr %a155, i32 0, i32 6 + %t637 = load i1, ptr %t636 + %t638 = xor i1 %t637, true + br i1 %t638, label %then5958, label %endif5960 +then5958: + %t639 = load ptr, ptr %a1 + %t640 = load { ptr, i64, i64 }, ptr %a164 + call void @finch.gen.label(ptr %t639, { ptr, i64, i64 } %t640) + br label %endif5960 +endif5960: + call void @finch.drop.S_ast_Node(ptr %a538) + call void @finch.drop.arr_S_ast_Node(ptr %a165) + call void @finch_str_drop(ptr %a164) + call void @finch_str_drop(ptr %a161) + call void @finch.drop.S_ast_Node(ptr %a155) + br label %for.step5835 +for.step5835: + %t641 = load i64, ptr %a140 + %t642 = add i64 %t641, 1 + store i64 %t642, ptr %a140 + br label %for.cond5833 +for.end5836: + %t643 = load i1, ptr %a127 + %t644 = xor i1 %t643, true + br i1 %t644, label %then5961, label %endif5963 +then5961: + %t645 = load i64, ptr %a49 + %t646 = icmp sge i64 %t645, 0 + br i1 %t646, label %then5964, label %else5965 +then5964: + store { ptr, i64, i64 } zeroinitializer, ptr %a647 + %t648 = load ptr, ptr %a1 + %t649 = icmp eq ptr %t648, null + br i1 %t649, label %panic5967, label %ok5968 +panic5967: + call void @finch_panic(ptr @.str.3815, i64 3169, ptr @.str.3816) + unreachable +ok5968: + %t650 = getelementptr inbounds %S.gen.Gen, ptr %t648, i32 0, i32 22 + %t651 = load i64, ptr %a49 + %t652 = load { ptr, i64, i64 }, ptr %t650 + %t653 = extractvalue { ptr, i64, i64 } %t652, 1 + %t654 = icmp uge i64 %t651, %t653 + br i1 %t654, label %range5969, label %inrange5970 +range5969: + call void @finch_panic_index(ptr @.str.3817, i64 3169, i64 %t651, i64 %t653) + unreachable +inrange5970: + %t655 = extractvalue { ptr, i64, i64 } %t652, 0 + %t656 = getelementptr inbounds %S.gen.SumDef, ptr %t655, i64 %t651 + %t657 = getelementptr inbounds %S.gen.SumDef, ptr %t656, i32 0, i32 2 + %t658 = getelementptr inbounds { ptr, i64, i64 }, ptr %t657, i32 0, i32 1 + %t659 = load i64, ptr %t658 + store i64 0, ptr %a660 + br label %for.cond5971 +for.cond5971: + %t661 = load i64, ptr %a660 + %t662 = icmp slt i64 %t661, %t659 + br i1 %t662, label %for.body5972, label %for.end5974 +for.body5972: + %t663 = getelementptr inbounds { ptr, i64, i64 }, ptr %a129, i32 0, i32 1 + %t664 = load i64, ptr %a660 + call void @finch_str_from_int(ptr %a665, i64 %t664) + %t666 = load { ptr, i64, i64 }, ptr %a665 + store i64 -1, ptr %a667 + %t668 = load i64, ptr %t663 + %t669 = load ptr, ptr %a129 + store i64 0, ptr %a670 + br label %find.cond5975 +find.cond5975: + %t671 = load i64, ptr %a670 + %t672 = icmp slt i64 %t671, %t668 + br i1 %t672, label %find.body5976, label %find.end5979 +find.body5976: + %t673 = getelementptr inbounds { ptr, i64, i64 }, ptr %t669, i64 %t671 + %t674 = load { ptr, i64, i64 }, ptr %t673 + store { ptr, i64, i64 } %t674, ptr %a675 + store { ptr, i64, i64 } %t666, ptr %a676 + %t677 = call i32 @finch_str_eq(ptr %a675, ptr %a676) + %t678 = icmp ne i32 %t677, 0 + br i1 %t678, label %find.hit5977, label %find.next5978 +find.hit5977: + store i64 %t671, ptr %a667 + br label %find.end5979 +find.next5978: + %t679 = add i64 %t671, 1 + store i64 %t679, ptr %a670 + br label %find.cond5975 +find.end5979: + store { ptr, i64, i64 } %t666, ptr %a680 + call void @finch_str_drop(ptr %a680) + %t681 = load i64, ptr %a667 + %t682 = icmp sge i64 %t681, 0 + %t683 = xor i1 %t682, true + br i1 %t683, label %then5980, label %endif5982 +then5980: + %t684 = getelementptr inbounds { ptr, i64, i64 }, ptr %a647, i32 0, i32 1 + %t685 = load ptr, ptr %a1 + %t686 = icmp eq ptr %t685, null + br i1 %t686, label %panic5983, label %ok5984 +panic5983: + call void @finch_panic(ptr @.str.3818, i64 3171, ptr @.str.3819) + unreachable +ok5984: + %t687 = getelementptr inbounds %S.gen.Gen, ptr %t685, i32 0, i32 22 + %t688 = load i64, ptr %a49 + %t689 = load { ptr, i64, i64 }, ptr %t687 + %t690 = extractvalue { ptr, i64, i64 } %t689, 1 + %t691 = icmp uge i64 %t688, %t690 + br i1 %t691, label %range5985, label %inrange5986 +range5985: + call void @finch_panic_index(ptr @.str.3820, i64 3171, i64 %t688, i64 %t690) + unreachable +inrange5986: + %t692 = extractvalue { ptr, i64, i64 } %t689, 0 + %t693 = getelementptr inbounds %S.gen.SumDef, ptr %t692, i64 %t688 + %t694 = getelementptr inbounds %S.gen.SumDef, ptr %t693, i32 0, i32 2 + %t695 = load i64, ptr %a660 + %t696 = load { ptr, i64, i64 }, ptr %t694 + %t697 = extractvalue { ptr, i64, i64 } %t696, 1 + %t698 = icmp uge i64 %t695, %t697 + br i1 %t698, label %range5987, label %inrange5988 +range5987: + call void @finch_panic_index(ptr @.str.3821, i64 3171, i64 %t695, i64 %t697) + unreachable +inrange5988: + %t699 = extractvalue { ptr, i64, i64 } %t696, 0 + %t700 = getelementptr inbounds { ptr, i64, i64 }, ptr %t699, i64 %t695 + %t701 = load { ptr, i64, i64 }, ptr %t700 + store { ptr, i64, i64 } %t701, ptr %a702 + call void @finch_str_copy(ptr %a703, ptr %a702) + %t704 = load { ptr, i64, i64 }, ptr %a703 + %t705 = load i64, ptr %t684 + %t706 = add i64 %t705, 1 + call void @finch_arr_reserve(ptr %a647, i64 %t706, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t707 = load ptr, ptr %a647 + %t708 = getelementptr inbounds { ptr, i64, i64 }, ptr %t707, i64 %t705 + store { ptr, i64, i64 } %t704, ptr %t708 + store i64 %t706, ptr %t684 + br label %endif5982 +endif5982: + br label %for.step5973 +for.step5973: + %t709 = load i64, ptr %a660 + %t710 = add i64 %t709, 1 + store i64 %t710, ptr %a660 + br label %for.cond5971 +for.end5974: + %t711 = getelementptr inbounds { ptr, i64, i64 }, ptr %a647, i32 0, i32 1 + %t712 = load i64, ptr %t711 + %t713 = icmp sgt i64 %t712, 0 + br i1 %t713, label %then5989, label %endif5991 +then5989: + %t714 = load ptr, ptr %a1 + %t715 = load %S.ast.Node, ptr %a2 + %t716 = getelementptr inbounds { ptr, i64, i64 }, ptr %a647, i32 0, i32 1 + store { ptr, i64, i64 } { ptr @.str.3823, i64 2, i64 0 }, ptr %a717 + call void @finch_str_join(ptr %a718, ptr %a647, ptr %a717) + %t719 = load { ptr, i64, i64 }, ptr %a718 + store { ptr, i64, i64 } { ptr @.str.3822, i64 26, i64 0 }, ptr %a721 + store { ptr, i64, i64 } %t719, ptr %a722 + call void @finch_str_concat(ptr %a720, ptr %a721, ptr %a722) + store { ptr, i64, i64 } %t719, ptr %a723 + call void @finch_str_drop(ptr %a723) + %t724 = load { ptr, i64, i64 }, ptr %a720 + store { ptr, i64, i64 } %t724, ptr %a726 + store { ptr, i64, i64 } { ptr @.str.3824, i64 29, i64 0 }, ptr %a727 + call void @finch_str_concat(ptr %a725, ptr %a726, ptr %a727) + store { ptr, i64, i64 } %t724, ptr %a728 + call void @finch_str_drop(ptr %a728) + %t729 = load { ptr, i64, i64 }, ptr %a725 + call void @finch.gen.fail(ptr %t714, %S.ast.Node %t715, { ptr, i64, i64 } %t729) + store { ptr, i64, i64 } %t729, ptr %a730 + call void @finch_str_drop(ptr %a730) + br label %endif5991 +endif5991: + call void @finch.drop.arr_str(ptr %a647) + br label %endif5966 +else5965: + %t731 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 0 + %t732 = load { ptr, i64, i64 }, ptr %t731 + store { ptr, i64, i64 } %t732, ptr %a733 + store { ptr, i64, i64 } { ptr @.str.3825, i64 4, i64 0 }, ptr %a734 + %t735 = call i32 @finch_str_eq(ptr %a733, ptr %a734) + %t736 = icmp ne i32 %t735, 0 + br i1 %t736, label %then5992, label %else5993 +then5992: + %t737 = load ptr, ptr %a1 + %t738 = icmp eq ptr %t737, null + br i1 %t738, label %panic5995, label %ok5996 +panic5995: + call void @finch_panic(ptr @.str.3826, i64 3178, ptr @.str.3827) + unreachable +ok5996: + %t739 = getelementptr inbounds %S.gen.Gen, ptr %t737, i32 0, i32 21 + %t740 = load ptr, ptr %a1 + %t741 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 3 + %t742 = load { ptr, i64, i64 }, ptr %t741 + %t743 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 2 + %t744 = load { ptr, i64, i64 }, ptr %t743 + %t745 = call i64 @finch.gen.findEnum(ptr %t740, { ptr, i64, i64 } %t742, { ptr, i64, i64 } %t744) + %t746 = load { ptr, i64, i64 }, ptr %t739 + %t747 = extractvalue { ptr, i64, i64 } %t746, 1 + %t748 = icmp uge i64 %t745, %t747 + br i1 %t748, label %range5997, label %inrange5998 +range5997: + call void @finch_panic_index(ptr @.str.3828, i64 3178, i64 %t745, i64 %t747) + unreachable +inrange5998: + %t749 = extractvalue { ptr, i64, i64 } %t746, 0 + %t750 = getelementptr inbounds %S.gen.EnumDef, ptr %t749, i64 %t745 + %t751 = load %S.gen.EnumDef, ptr %t750 + store %S.gen.EnumDef %t751, ptr %a752 + call void @finch.copy.S_gen_EnumDef(ptr %a753, ptr %a752) + %t754 = load %S.gen.EnumDef, ptr %a753 + store %S.gen.EnumDef %t754, ptr %a755 + store { ptr, i64, i64 } zeroinitializer, ptr %a756 + %t757 = getelementptr inbounds %S.gen.EnumDef, ptr %a755, i32 0, i32 2 + %t758 = getelementptr inbounds { ptr, i64, i64 }, ptr %t757, i32 0, i32 1 + %t759 = load i64, ptr %t758 + store i64 0, ptr %a760 + br label %for.cond5999 +for.cond5999: + %t761 = load i64, ptr %a760 + %t762 = icmp slt i64 %t761, %t759 + br i1 %t762, label %for.body6000, label %for.end6002 +for.body6000: + %t763 = getelementptr inbounds { ptr, i64, i64 }, ptr %a129, i32 0, i32 1 + %t764 = getelementptr inbounds %S.gen.EnumDef, ptr %a755, i32 0, i32 3 + %t765 = load i64, ptr %a760 + %t766 = load { ptr, i64, i64 }, ptr %t764 + %t767 = extractvalue { ptr, i64, i64 } %t766, 1 + %t768 = icmp uge i64 %t765, %t767 + br i1 %t768, label %range6003, label %inrange6004 +range6003: + call void @finch_panic_index(ptr @.str.3829, i64 3181, i64 %t765, i64 %t767) + unreachable +inrange6004: + %t769 = extractvalue { ptr, i64, i64 } %t766, 0 + %t770 = getelementptr inbounds i64, ptr %t769, i64 %t765 + %t771 = load i64, ptr %t770 + call void @finch_str_from_int(ptr %a772, i64 %t771) + %t773 = load { ptr, i64, i64 }, ptr %a772 + store i64 -1, ptr %a774 + %t775 = load i64, ptr %t763 + %t776 = load ptr, ptr %a129 + store i64 0, ptr %a777 + br label %find.cond6005 +find.cond6005: + %t778 = load i64, ptr %a777 + %t779 = icmp slt i64 %t778, %t775 + br i1 %t779, label %find.body6006, label %find.end6009 +find.body6006: + %t780 = getelementptr inbounds { ptr, i64, i64 }, ptr %t776, i64 %t778 + %t781 = load { ptr, i64, i64 }, ptr %t780 + store { ptr, i64, i64 } %t781, ptr %a782 + store { ptr, i64, i64 } %t773, ptr %a783 + %t784 = call i32 @finch_str_eq(ptr %a782, ptr %a783) + %t785 = icmp ne i32 %t784, 0 + br i1 %t785, label %find.hit6007, label %find.next6008 +find.hit6007: + store i64 %t778, ptr %a774 + br label %find.end6009 +find.next6008: + %t786 = add i64 %t778, 1 + store i64 %t786, ptr %a777 + br label %find.cond6005 +find.end6009: + store { ptr, i64, i64 } %t773, ptr %a787 + call void @finch_str_drop(ptr %a787) + %t788 = load i64, ptr %a774 + %t789 = icmp sge i64 %t788, 0 + %t790 = xor i1 %t789, true + br i1 %t790, label %then6010, label %endif6012 +then6010: + %t791 = getelementptr inbounds { ptr, i64, i64 }, ptr %a756, i32 0, i32 1 + %t792 = getelementptr inbounds %S.gen.EnumDef, ptr %a755, i32 0, i32 2 + %t793 = load i64, ptr %a760 + %t794 = load { ptr, i64, i64 }, ptr %t792 + %t795 = extractvalue { ptr, i64, i64 } %t794, 1 + %t796 = icmp uge i64 %t793, %t795 + br i1 %t796, label %range6013, label %inrange6014 +range6013: + call void @finch_panic_index(ptr @.str.3830, i64 3182, i64 %t793, i64 %t795) + unreachable +inrange6014: + %t797 = extractvalue { ptr, i64, i64 } %t794, 0 + %t798 = getelementptr inbounds { ptr, i64, i64 }, ptr %t797, i64 %t793 + %t799 = load { ptr, i64, i64 }, ptr %t798 + store { ptr, i64, i64 } %t799, ptr %a800 + call void @finch_str_copy(ptr %a801, ptr %a800) + %t802 = load { ptr, i64, i64 }, ptr %a801 + %t803 = load i64, ptr %t791 + %t804 = add i64 %t803, 1 + call void @finch_arr_reserve(ptr %a756, i64 %t804, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t805 = load ptr, ptr %a756 + %t806 = getelementptr inbounds { ptr, i64, i64 }, ptr %t805, i64 %t803 + store { ptr, i64, i64 } %t802, ptr %t806 + store i64 %t804, ptr %t791 + br label %endif6012 +endif6012: + br label %for.step6001 +for.step6001: + %t807 = load i64, ptr %a760 + %t808 = add i64 %t807, 1 + store i64 %t808, ptr %a760 + br label %for.cond5999 +for.end6002: + %t809 = getelementptr inbounds { ptr, i64, i64 }, ptr %a756, i32 0, i32 1 + %t810 = load i64, ptr %t809 + %t811 = icmp sgt i64 %t810, 0 + br i1 %t811, label %then6015, label %endif6017 +then6015: + %t812 = load ptr, ptr %a1 + %t813 = load %S.ast.Node, ptr %a2 + %t814 = getelementptr inbounds { ptr, i64, i64 }, ptr %a756, i32 0, i32 1 + store { ptr, i64, i64 } { ptr @.str.3832, i64 2, i64 0 }, ptr %a815 + call void @finch_str_join(ptr %a816, ptr %a756, ptr %a815) + %t817 = load { ptr, i64, i64 }, ptr %a816 + store { ptr, i64, i64 } { ptr @.str.3831, i64 26, i64 0 }, ptr %a819 + store { ptr, i64, i64 } %t817, ptr %a820 + call void @finch_str_concat(ptr %a818, ptr %a819, ptr %a820) + store { ptr, i64, i64 } %t817, ptr %a821 + call void @finch_str_drop(ptr %a821) + %t822 = load { ptr, i64, i64 }, ptr %a818 + store { ptr, i64, i64 } %t822, ptr %a824 + store { ptr, i64, i64 } { ptr @.str.3833, i64 29, i64 0 }, ptr %a825 + call void @finch_str_concat(ptr %a823, ptr %a824, ptr %a825) + store { ptr, i64, i64 } %t822, ptr %a826 + call void @finch_str_drop(ptr %a826) + %t827 = load { ptr, i64, i64 }, ptr %a823 + call void @finch.gen.fail(ptr %t812, %S.ast.Node %t813, { ptr, i64, i64 } %t827) + store { ptr, i64, i64 } %t827, ptr %a828 + call void @finch_str_drop(ptr %a828) + br label %endif6017 +endif6017: + call void @finch.drop.arr_str(ptr %a756) + call void @finch.drop.S_gen_EnumDef(ptr %a755) + br label %endif5994 +else5993: + %t829 = load ptr, ptr %a1 + %t830 = load %S.ast.Node, ptr %a2 + %t831 = load %S.ast.Type, ptr %a19 + %t832 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t831) + store { ptr, i64, i64 } { ptr @.str.3834, i64 11, i64 0 }, ptr %a834 + store { ptr, i64, i64 } %t832, ptr %a835 + call void @finch_str_concat(ptr %a833, ptr %a834, ptr %a835) + store { ptr, i64, i64 } %t832, ptr %a836 + call void @finch_str_drop(ptr %a836) + %t837 = load { ptr, i64, i64 }, ptr %a833 + store { ptr, i64, i64 } %t837, ptr %a839 + store { ptr, i64, i64 } { ptr @.str.3835, i64 54, i64 0 }, ptr %a840 + call void @finch_str_concat(ptr %a838, ptr %a839, ptr %a840) + store { ptr, i64, i64 } %t837, ptr %a841 + call void @finch_str_drop(ptr %a841) + %t842 = load { ptr, i64, i64 }, ptr %a838 + call void @finch.gen.fail(ptr %t829, %S.ast.Node %t830, { ptr, i64, i64 } %t842) + store { ptr, i64, i64 } %t842, ptr %a843 + call void @finch_str_drop(ptr %a843) + br label %endif5994 +endif5994: + br label %endif5966 +endif5966: + %t844 = load ptr, ptr %a1 + %t845 = load %S.ast.Node, ptr %a2 + call void @finch.gen.panicIf(ptr %t844, { ptr, i64, i64 } { ptr @.str.3836, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.3837, i64 35, i64 0 }, %S.ast.Node %t845) + %t846 = load ptr, ptr %a1 + call void @finch.gen.emit(ptr %t846, { ptr, i64, i64 } { ptr @.str.3838, i64 11, i64 0 }) + %t847 = load ptr, ptr %a1 + %t848 = icmp eq ptr %t847, null + br i1 %t848, label %panic6018, label %ok6019 +panic6018: + call void @finch_panic(ptr @.str.3839, i64 3194, ptr @.str.3840) + unreachable +ok6019: + %t849 = getelementptr inbounds %S.gen.Gen, ptr %t847, i32 0, i32 9 + store i1 true, ptr %t849 + br label %endif5963 +endif5963: + %t850 = load ptr, ptr %a1 + %t851 = load i64, ptr %a46 + call void @finch.gen.heldEnd(ptr %t850, i64 %t851) + %t852 = load ptr, ptr %a1 + %t853 = load { ptr, i64, i64 }, ptr %a126 + call void @finch.gen.label(ptr %t852, { ptr, i64, i64 } %t853) + %t854 = load i1, ptr %a128 + %t855 = xor i1 %t854, true + br i1 %t855, label %then6020, label %endif6022 +then6020: + %t856 = load ptr, ptr %a1 + call void @finch.gen.emit(ptr %t856, { ptr, i64, i64 } { ptr @.str.3841, i64 11, i64 0 }) + %t857 = load ptr, ptr %a1 + %t858 = icmp eq ptr %t857, null + br i1 %t858, label %panic6023, label %ok6024 +panic6023: + call void @finch_panic(ptr @.str.3842, i64 3200, ptr @.str.3843) + unreachable +ok6024: + %t859 = getelementptr inbounds %S.gen.Gen, ptr %t857, i32 0, i32 9 + store i1 true, ptr %t859 + %t860 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3844, i64 4, i64 0 }) + %t861 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t860, 1 + call void @finch.drop.S_ast_Type(ptr %a133) + call void @finch.drop.arr_str(ptr %a131) + call void @finch.drop.arr_str(ptr %a130) + call void @finch.drop.arr_str(ptr %a129) + call void @finch_str_drop(ptr %a126) + call void @finch_str_drop(ptr %a50) call void @finch.drop.S_ast_Type(ptr %a19) call void @finch.drop.S_gen_Val(ptr %a13) - ret %S.gen.Val %t444 -endif5779: - %t445 = load i1, ptr %a3 - br i1 %t445, label %then5782, label %endif5784 -then5782: - %t446 = load ptr, ptr %a1 - %t447 = load ptr, ptr %a1 - %t448 = load %S.ast.Type, ptr %a58 - %t449 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t447, %S.ast.Type %t448) - store { ptr, i64, i64 } { ptr @.str.3717, i64 4, i64 0 }, ptr %a451 - store { ptr, i64, i64 } %t449, ptr %a452 - call void @finch_str_concat(ptr %a450, ptr %a451, ptr %a452) - store { ptr, i64, i64 } %t449, ptr %a453 - call void @finch_str_drop(ptr %a453) - %t454 = load { ptr, i64, i64 }, ptr %a450 - store { ptr, i64, i64 } %t454, ptr %a456 - store { ptr, i64, i64 } { ptr @.str.3718, i64 1, i64 0 }, ptr %a457 - call void @finch_str_concat(ptr %a455, ptr %a456, ptr %a457) - store { ptr, i64, i64 } %t454, ptr %a458 - call void @finch_str_drop(ptr %a458) - %t459 = load { ptr, i64, i64 }, ptr %a455 - %t460 = load { ptr, i64, i64 }, ptr %a55 - %t461 = load { ptr, i64, i64 }, ptr %a56 - %t462 = call { ptr, i64, i64 } @finch.gen.phiList({ ptr, i64, i64 } %t460, { ptr, i64, i64 } %t461) - store { ptr, i64, i64 } %t459, ptr %a464 - store { ptr, i64, i64 } %t462, ptr %a465 - call void @finch_str_concat(ptr %a463, ptr %a464, ptr %a465) - store { ptr, i64, i64 } %t459, ptr %a466 - call void @finch_str_drop(ptr %a466) - store { ptr, i64, i64 } %t462, ptr %a467 - call void @finch_str_drop(ptr %a467) - %t468 = load { ptr, i64, i64 }, ptr %a463 - %t469 = call { ptr, i64, i64 } @finch.gen.op(ptr %t446, { ptr, i64, i64 } %t468) - store { ptr, i64, i64 } %t468, ptr %a470 - call void @finch_str_drop(ptr %a470) - %t471 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t469, 0 - %t472 = load %S.ast.Type, ptr %a58 - store %S.ast.Type %t472, ptr %a473 - call void @finch.copy.S_ast_Type(ptr %a474, ptr %a473) - %t475 = load %S.ast.Type, ptr %a474 - %t476 = insertvalue %S.gen.Val %t471, %S.ast.Type %t475, 1 - %t477 = load ptr, ptr %a1 - %t478 = load %S.ast.Type, ptr %a58 - %t479 = call i1 @finch.gen.owning(ptr %t477, %S.ast.Type %t478) - %t480 = insertvalue %S.gen.Val %t476, i1 %t479, 2 - store %S.gen.Val %t480, ptr %a481 - %t482 = load ptr, ptr %a1 - %t483 = load %S.gen.Val, ptr %a13 - call void @finch.gen.release(ptr %t482, %S.gen.Val %t483) - %t484 = load %S.gen.Val, ptr %a481 - call void @finch.drop.S_ast_Type(ptr %a58) - call void @finch.drop.arr_str(ptr %a56) - call void @finch.drop.arr_str(ptr %a55) - call void @finch.drop.arr_str(ptr %a54) - call void @finch_str_drop(ptr %a51) + ret %S.gen.Val %t861 +endif6022: + %t862 = load i1, ptr %a3 + br i1 %t862, label %then6025, label %endif6027 +then6025: + %t863 = load ptr, ptr %a1 + %t864 = load ptr, ptr %a1 + %t865 = load %S.ast.Type, ptr %a133 + %t866 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t864, %S.ast.Type %t865) + store { ptr, i64, i64 } { ptr @.str.3845, i64 4, i64 0 }, ptr %a868 + store { ptr, i64, i64 } %t866, ptr %a869 + call void @finch_str_concat(ptr %a867, ptr %a868, ptr %a869) + store { ptr, i64, i64 } %t866, ptr %a870 + call void @finch_str_drop(ptr %a870) + %t871 = load { ptr, i64, i64 }, ptr %a867 + store { ptr, i64, i64 } %t871, ptr %a873 + store { ptr, i64, i64 } { ptr @.str.3846, i64 1, i64 0 }, ptr %a874 + call void @finch_str_concat(ptr %a872, ptr %a873, ptr %a874) + store { ptr, i64, i64 } %t871, ptr %a875 + call void @finch_str_drop(ptr %a875) + %t876 = load { ptr, i64, i64 }, ptr %a872 + %t877 = load { ptr, i64, i64 }, ptr %a130 + %t878 = load { ptr, i64, i64 }, ptr %a131 + %t879 = call { ptr, i64, i64 } @finch.gen.phiList({ ptr, i64, i64 } %t877, { ptr, i64, i64 } %t878) + store { ptr, i64, i64 } %t876, ptr %a881 + store { ptr, i64, i64 } %t879, ptr %a882 + call void @finch_str_concat(ptr %a880, ptr %a881, ptr %a882) + store { ptr, i64, i64 } %t876, ptr %a883 + call void @finch_str_drop(ptr %a883) + store { ptr, i64, i64 } %t879, ptr %a884 + call void @finch_str_drop(ptr %a884) + %t885 = load { ptr, i64, i64 }, ptr %a880 + %t886 = call { ptr, i64, i64 } @finch.gen.op(ptr %t863, { ptr, i64, i64 } %t885) + store { ptr, i64, i64 } %t885, ptr %a887 + call void @finch_str_drop(ptr %a887) + %t888 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t886, 0 + %t889 = load %S.ast.Type, ptr %a133 + store %S.ast.Type %t889, ptr %a890 + call void @finch.copy.S_ast_Type(ptr %a891, ptr %a890) + %t892 = load %S.ast.Type, ptr %a891 + %t893 = insertvalue %S.gen.Val %t888, %S.ast.Type %t892, 1 + %t894 = load ptr, ptr %a1 + %t895 = load %S.ast.Type, ptr %a133 + %t896 = call i1 @finch.gen.owning(ptr %t894, %S.ast.Type %t895) + %t897 = insertvalue %S.gen.Val %t893, i1 %t896, 2 + store %S.gen.Val %t897, ptr %a898 + %t899 = load ptr, ptr %a1 + %t900 = load %S.gen.Val, ptr %a13 + call void @finch.gen.release(ptr %t899, %S.gen.Val %t900) + %t901 = load %S.gen.Val, ptr %a898 + call void @finch.drop.S_ast_Type(ptr %a133) + call void @finch.drop.arr_str(ptr %a131) + call void @finch.drop.arr_str(ptr %a130) + call void @finch.drop.arr_str(ptr %a129) + call void @finch_str_drop(ptr %a126) + call void @finch_str_drop(ptr %a50) call void @finch.drop.S_ast_Type(ptr %a19) call void @finch.drop.S_gen_Val(ptr %a13) - ret %S.gen.Val %t484 -endif5784: - %t485 = load ptr, ptr %a1 - %t486 = load %S.gen.Val, ptr %a13 - call void @finch.gen.release(ptr %t485, %S.gen.Val %t486) - %t487 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3719, i64 4, i64 0 }) - %t488 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t487, 1 - call void @finch.drop.S_ast_Type(ptr %a58) - call void @finch.drop.arr_str(ptr %a56) - call void @finch.drop.arr_str(ptr %a55) - call void @finch.drop.arr_str(ptr %a54) - call void @finch_str_drop(ptr %a51) + ret %S.gen.Val %t901 +endif6027: + %t902 = load ptr, ptr %a1 + %t903 = load %S.gen.Val, ptr %a13 + call void @finch.gen.release(ptr %t902, %S.gen.Val %t903) + %t904 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3847, i64 4, i64 0 }) + %t905 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t904, 1 + call void @finch.drop.S_ast_Type(ptr %a133) + call void @finch.drop.arr_str(ptr %a131) + call void @finch.drop.arr_str(ptr %a130) + call void @finch.drop.arr_str(ptr %a129) + call void @finch_str_drop(ptr %a126) + call void @finch_str_drop(ptr %a50) call void @finch.drop.S_ast_Type(ptr %a19) call void @finch.drop.S_gen_Val(ptr %a13) - ret %S.gen.Val %t488 + ret %S.gen.Val %t905 } define internal { ptr, i64, i64 } @finch.gen.phiList({ ptr, i64, i64 } %p0, { ptr, i64, i64 } %p1) { @@ -59090,31 +61541,31 @@ entry: %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t5 = load i64, ptr %t4 store i64 0, ptr %a6 - br label %for.cond5785 -for.cond5785: + br label %for.cond6028 +for.cond6028: %t7 = load i64, ptr %a6 %t8 = icmp slt i64 %t7, %t5 - br i1 %t8, label %for.body5786, label %for.end5788 -for.body5786: + br i1 %t8, label %for.body6029, label %for.end6031 +for.body6029: %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %a3, i32 0, i32 1 %t10 = load i64, ptr %a6 %t11 = load { ptr, i64, i64 }, ptr %a1 %t12 = extractvalue { ptr, i64, i64 } %t11, 1 %t13 = icmp uge i64 %t10, %t12 - br i1 %t13, label %range5789, label %inrange5790 -range5789: - call void @finch_panic_index(ptr @.str.3721, i64 3077, i64 %t10, i64 %t12) + br i1 %t13, label %range6032, label %inrange6033 +range6032: + call void @finch_panic_index(ptr @.str.3849, i64 3215, i64 %t10, i64 %t12) unreachable -inrange5790: +inrange6033: %t14 = extractvalue { ptr, i64, i64 } %t11, 0 %t15 = getelementptr inbounds { ptr, i64, i64 }, ptr %t14, i64 %t10 %t16 = load { ptr, i64, i64 }, ptr %t15 - store { ptr, i64, i64 } { ptr @.str.3720, i64 2, i64 0 }, ptr %a18 + store { ptr, i64, i64 } { ptr @.str.3848, i64 2, i64 0 }, ptr %a18 store { ptr, i64, i64 } %t16, ptr %a19 call void @finch_str_concat(ptr %a17, ptr %a18, ptr %a19) %t20 = load { ptr, i64, i64 }, ptr %a17 store { ptr, i64, i64 } %t20, ptr %a22 - store { ptr, i64, i64 } { ptr @.str.3722, i64 3, i64 0 }, ptr %a23 + store { ptr, i64, i64 } { ptr @.str.3850, i64 3, i64 0 }, ptr %a23 call void @finch_str_concat(ptr %a21, ptr %a22, ptr %a23) store { ptr, i64, i64 } %t20, ptr %a24 call void @finch_str_drop(ptr %a24) @@ -59123,11 +61574,11 @@ inrange5790: %t27 = load { ptr, i64, i64 }, ptr %a2 %t28 = extractvalue { ptr, i64, i64 } %t27, 1 %t29 = icmp uge i64 %t26, %t28 - br i1 %t29, label %range5791, label %inrange5792 -range5791: - call void @finch_panic_index(ptr @.str.3723, i64 3077, i64 %t26, i64 %t28) + br i1 %t29, label %range6034, label %inrange6035 +range6034: + call void @finch_panic_index(ptr @.str.3851, i64 3215, i64 %t26, i64 %t28) unreachable -inrange5792: +inrange6035: %t30 = extractvalue { ptr, i64, i64 } %t27, 0 %t31 = getelementptr inbounds { ptr, i64, i64 }, ptr %t30, i64 %t26 %t32 = load { ptr, i64, i64 }, ptr %t31 @@ -59138,7 +61589,7 @@ inrange5792: call void @finch_str_drop(ptr %a36) %t37 = load { ptr, i64, i64 }, ptr %a33 store { ptr, i64, i64 } %t37, ptr %a39 - store { ptr, i64, i64 } { ptr @.str.3724, i64 2, i64 0 }, ptr %a40 + store { ptr, i64, i64 } { ptr @.str.3852, i64 2, i64 0 }, ptr %a40 call void @finch_str_concat(ptr %a38, ptr %a39, ptr %a40) store { ptr, i64, i64 } %t37, ptr %a41 call void @finch_str_drop(ptr %a41) @@ -59150,15 +61601,15 @@ inrange5792: %t46 = getelementptr inbounds { ptr, i64, i64 }, ptr %t45, i64 %t43 store { ptr, i64, i64 } %t42, ptr %t46 store i64 %t44, ptr %t9 - br label %for.step5787 -for.step5787: + br label %for.step6030 +for.step6030: %t47 = load i64, ptr %a6 %t48 = add i64 %t47, 1 store i64 %t48, ptr %a6 - br label %for.cond5785 -for.end5788: + br label %for.cond6028 +for.end6031: %t49 = getelementptr inbounds { ptr, i64, i64 }, ptr %a3, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.3725, i64 2, i64 0 }, ptr %a50 + store { ptr, i64, i64 } { ptr @.str.3853, i64 2, i64 0 }, ptr %a50 call void @finch_str_join(ptr %a51, ptr %a3, ptr %a50) %t52 = load { ptr, i64, i64 }, ptr %a51 call void @finch.drop.arr_str(ptr %a3) @@ -59207,39 +61658,39 @@ entry: %t3 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 %t4 = load { ptr, i64, i64 }, ptr %t3 store { ptr, i64, i64 } %t4, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.3726, i64 4, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.3854, i64 4, i64 0 }, ptr %a6 %t7 = call i32 @finch_str_eq(ptr %a5, ptr %a6) %t8 = icmp eq i32 %t7, 0 - br label %logic.from5793 -logic.from5793: - br i1 %t8, label %logic.rhs5794, label %logic.end5795 -logic.rhs5794: + br label %logic.from6036 +logic.from6036: + br i1 %t8, label %logic.rhs6037, label %logic.end6038 +logic.rhs6037: %t9 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 %t10 = load { ptr, i64, i64 }, ptr %t9 store { ptr, i64, i64 } %t10, ptr %a11 - store { ptr, i64, i64 } { ptr @.str.3727, i64 6, i64 0 }, ptr %a12 + store { ptr, i64, i64 } { ptr @.str.3855, i64 6, i64 0 }, ptr %a12 %t13 = call i32 @finch_str_eq(ptr %a11, ptr %a12) %t14 = icmp eq i32 %t13, 0 - br label %logic.rend5796 -logic.rend5796: - br label %logic.end5795 -logic.end5795: - %t15 = phi i1 [ false, %logic.from5793 ], [ %t14, %logic.rend5796 ] - br i1 %t15, label %then5797, label %endif5799 -then5797: + br label %logic.rend6039 +logic.rend6039: + br label %logic.end6038 +logic.end6038: + %t15 = phi i1 [ false, %logic.from6036 ], [ %t14, %logic.rend6039 ] + br i1 %t15, label %then6040, label %endif6042 +then6040: %t16 = load ptr, ptr %a1 %t17 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t16, %S.ast.Node %t17, { ptr, i64, i64 } { ptr @.str.3728, i64 80, i64 0 }) - br label %endif5799 -endif5799: + call void @finch.gen.fail(ptr %t16, %S.ast.Node %t17, { ptr, i64, i64 } { ptr @.str.3856, i64 80, i64 0 }) + br label %endif6042 +endif6042: %t18 = load ptr, ptr %a1 %t19 = icmp eq ptr %t18, null - br i1 %t19, label %panic5800, label %ok5801 -panic5800: - call void @finch_panic(ptr @.str.3729, i64 3095, ptr @.str.3730) + br i1 %t19, label %panic6043, label %ok6044 +panic6043: + call void @finch_panic(ptr @.str.3857, i64 3233, ptr @.str.3858) unreachable -ok5801: - %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 40 +ok6044: + %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 41 %t21 = load { ptr, i64, i64 }, ptr %t20 store { ptr, i64, i64 } %t21, ptr %a22 call void @finch_str_copy(ptr %a23, ptr %a22) @@ -59247,12 +61698,12 @@ ok5801: store { ptr, i64, i64 } %t24, ptr %a25 %t26 = load ptr, ptr %a1 %t27 = icmp eq ptr %t26, null - br i1 %t27, label %panic5802, label %ok5803 -panic5802: - call void @finch_panic(ptr @.str.3731, i64 3096, ptr @.str.3732) + br i1 %t27, label %panic6045, label %ok6046 +panic6045: + call void @finch_panic(ptr @.str.3859, i64 3234, ptr @.str.3860) unreachable -ok5803: - %t28 = getelementptr inbounds %S.gen.Gen, ptr %t26, i32 0, i32 41 +ok6046: + %t28 = getelementptr inbounds %S.gen.Gen, ptr %t26, i32 0, i32 42 %t29 = load { ptr, i64, i64 }, ptr %t28 store { ptr, i64, i64 } %t29, ptr %a30 call void @finch_str_copy(ptr %a31, ptr %a30) @@ -59260,12 +61711,12 @@ ok5803: store { ptr, i64, i64 } %t32, ptr %a33 %t34 = load ptr, ptr %a1 %t35 = icmp eq ptr %t34, null - br i1 %t35, label %panic5804, label %ok5805 -panic5804: - call void @finch_panic(ptr @.str.3733, i64 3097, ptr @.str.3734) + br i1 %t35, label %panic6047, label %ok6048 +panic6047: + call void @finch_panic(ptr @.str.3861, i64 3235, ptr @.str.3862) unreachable -ok5805: - %t36 = getelementptr inbounds %S.gen.Gen, ptr %t34, i32 0, i32 42 +ok6048: + %t36 = getelementptr inbounds %S.gen.Gen, ptr %t34, i32 0, i32 43 %t37 = load { ptr, i64, i64 }, ptr %t36 store { ptr, i64, i64 } %t37, ptr %a38 call void @finch_str_copy(ptr %a39, ptr %a38) @@ -59275,38 +61726,38 @@ ok5805: %t43 = call { ptr, i64, i64 } @finch.gen.nodeKey(%S.ast.Node %t42) %t44 = load ptr, ptr %a1 %t45 = icmp eq ptr %t44, null - br i1 %t45, label %panic5806, label %ok5807 -panic5806: - call void @finch_panic(ptr @.str.3735, i64 3098, ptr @.str.3736) + br i1 %t45, label %panic6049, label %ok6050 +panic6049: + call void @finch_panic(ptr @.str.3863, i64 3236, ptr @.str.3864) unreachable -ok5807: - %t46 = getelementptr inbounds %S.gen.Gen, ptr %t44, i32 0, i32 40 +ok6050: + %t46 = getelementptr inbounds %S.gen.Gen, ptr %t44, i32 0, i32 41 %t47 = load { ptr, i64, i64 }, ptr %t46 store { ptr, i64, i64 } %t43, ptr %t46 store { ptr, i64, i64 } %t47, ptr %a48 call void @finch_str_drop(ptr %a48) %t49 = load ptr, ptr %a1 %t50 = icmp eq ptr %t49, null - br i1 %t50, label %panic5808, label %ok5809 -panic5808: - call void @finch_panic(ptr @.str.3738, i64 3099, ptr @.str.3739) + br i1 %t50, label %panic6051, label %ok6052 +panic6051: + call void @finch_panic(ptr @.str.3866, i64 3237, ptr @.str.3867) unreachable -ok5809: - %t51 = getelementptr inbounds %S.gen.Gen, ptr %t49, i32 0, i32 41 +ok6052: + %t51 = getelementptr inbounds %S.gen.Gen, ptr %t49, i32 0, i32 42 %t52 = load { ptr, i64, i64 }, ptr %t51 - store { ptr, i64, i64 } { ptr @.str.3737, i64 0, i64 0 }, ptr %t51 + store { ptr, i64, i64 } { ptr @.str.3865, i64 0, i64 0 }, ptr %t51 store { ptr, i64, i64 } %t52, ptr %a53 call void @finch_str_drop(ptr %a53) %t54 = load ptr, ptr %a1 %t55 = icmp eq ptr %t54, null - br i1 %t55, label %panic5810, label %ok5811 -panic5810: - call void @finch_panic(ptr @.str.3741, i64 3100, ptr @.str.3742) + br i1 %t55, label %panic6053, label %ok6054 +panic6053: + call void @finch_panic(ptr @.str.3869, i64 3238, ptr @.str.3870) unreachable -ok5811: - %t56 = getelementptr inbounds %S.gen.Gen, ptr %t54, i32 0, i32 42 +ok6054: + %t56 = getelementptr inbounds %S.gen.Gen, ptr %t54, i32 0, i32 43 %t57 = load { ptr, i64, i64 }, ptr %t56 - store { ptr, i64, i64 } { ptr @.str.3740, i64 0, i64 0 }, ptr %t56 + store { ptr, i64, i64 } { ptr @.str.3868, i64 0, i64 0 }, ptr %t56 store { ptr, i64, i64 } %t57, ptr %a58 call void @finch_str_drop(ptr %a58) %t59 = load ptr, ptr %a1 @@ -59320,12 +61771,12 @@ ok5811: %t67 = insertvalue %S.gen.Fallible zeroinitializer, %S.gen.Val %t66, 0 %t68 = load ptr, ptr %a1 %t69 = icmp eq ptr %t68, null - br i1 %t69, label %panic5812, label %ok5813 -panic5812: - call void @finch_panic(ptr @.str.3743, i64 3102, ptr @.str.3744) + br i1 %t69, label %panic6055, label %ok6056 +panic6055: + call void @finch_panic(ptr @.str.3871, i64 3240, ptr @.str.3872) unreachable -ok5813: - %t70 = getelementptr inbounds %S.gen.Gen, ptr %t68, i32 0, i32 41 +ok6056: + %t70 = getelementptr inbounds %S.gen.Gen, ptr %t68, i32 0, i32 42 %t71 = load { ptr, i64, i64 }, ptr %t70 store { ptr, i64, i64 } %t71, ptr %a72 call void @finch_str_copy(ptr %a73, ptr %a72) @@ -59333,12 +61784,12 @@ ok5813: %t75 = insertvalue %S.gen.Fallible %t67, { ptr, i64, i64 } %t74, 1 %t76 = load ptr, ptr %a1 %t77 = icmp eq ptr %t76, null - br i1 %t77, label %panic5814, label %ok5815 -panic5814: - call void @finch_panic(ptr @.str.3745, i64 3102, ptr @.str.3746) + br i1 %t77, label %panic6057, label %ok6058 +panic6057: + call void @finch_panic(ptr @.str.3873, i64 3240, ptr @.str.3874) unreachable -ok5815: - %t78 = getelementptr inbounds %S.gen.Gen, ptr %t76, i32 0, i32 42 +ok6058: + %t78 = getelementptr inbounds %S.gen.Gen, ptr %t76, i32 0, i32 43 %t79 = load { ptr, i64, i64 }, ptr %t78 store { ptr, i64, i64 } %t79, ptr %a80 call void @finch_str_copy(ptr %a81, ptr %a80) @@ -59348,12 +61799,12 @@ ok5815: %t85 = load { ptr, i64, i64 }, ptr %a25 %t86 = load ptr, ptr %a1 %t87 = icmp eq ptr %t86, null - br i1 %t87, label %panic5816, label %ok5817 -panic5816: - call void @finch_panic(ptr @.str.3747, i64 3103, ptr @.str.3748) + br i1 %t87, label %panic6059, label %ok6060 +panic6059: + call void @finch_panic(ptr @.str.3875, i64 3241, ptr @.str.3876) unreachable -ok5817: - %t88 = getelementptr inbounds %S.gen.Gen, ptr %t86, i32 0, i32 40 +ok6060: + %t88 = getelementptr inbounds %S.gen.Gen, ptr %t86, i32 0, i32 41 store { ptr, i64, i64 } %t85, ptr %a89 call void @finch_str_copy(ptr %a90, ptr %a89) %t91 = load { ptr, i64, i64 }, ptr %a90 @@ -59364,12 +61815,12 @@ ok5817: %t94 = load { ptr, i64, i64 }, ptr %a33 %t95 = load ptr, ptr %a1 %t96 = icmp eq ptr %t95, null - br i1 %t96, label %panic5818, label %ok5819 -panic5818: - call void @finch_panic(ptr @.str.3749, i64 3104, ptr @.str.3750) + br i1 %t96, label %panic6061, label %ok6062 +panic6061: + call void @finch_panic(ptr @.str.3877, i64 3242, ptr @.str.3878) unreachable -ok5819: - %t97 = getelementptr inbounds %S.gen.Gen, ptr %t95, i32 0, i32 41 +ok6062: + %t97 = getelementptr inbounds %S.gen.Gen, ptr %t95, i32 0, i32 42 store { ptr, i64, i64 } %t94, ptr %a98 call void @finch_str_copy(ptr %a99, ptr %a98) %t100 = load { ptr, i64, i64 }, ptr %a99 @@ -59380,12 +61831,12 @@ ok5819: %t103 = load { ptr, i64, i64 }, ptr %a41 %t104 = load ptr, ptr %a1 %t105 = icmp eq ptr %t104, null - br i1 %t105, label %panic5820, label %ok5821 -panic5820: - call void @finch_panic(ptr @.str.3751, i64 3105, ptr @.str.3752) + br i1 %t105, label %panic6063, label %ok6064 +panic6063: + call void @finch_panic(ptr @.str.3879, i64 3243, ptr @.str.3880) unreachable -ok5821: - %t106 = getelementptr inbounds %S.gen.Gen, ptr %t104, i32 0, i32 42 +ok6064: + %t106 = getelementptr inbounds %S.gen.Gen, ptr %t104, i32 0, i32 43 store { ptr, i64, i64 } %t103, ptr %a107 call void @finch_str_copy(ptr %a108, ptr %a107) %t109 = load { ptr, i64, i64 }, ptr %a108 @@ -59397,13 +61848,13 @@ ok5821: %t113 = getelementptr inbounds { ptr, i64, i64 }, ptr %t112, i32 0, i32 1 %t114 = load i64, ptr %t113 %t115 = icmp eq i64 %t114, 0 - br i1 %t115, label %then5822, label %endif5824 -then5822: + br i1 %t115, label %then6065, label %endif6067 +then6065: %t116 = load ptr, ptr %a1 %t117 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t116, %S.ast.Node %t117, { ptr, i64, i64 } { ptr @.str.3753, i64 50, i64 0 }) - br label %endif5824 -endif5824: + call void @finch.gen.fail(ptr %t116, %S.ast.Node %t117, { ptr, i64, i64 } { ptr @.str.3881, i64 50, i64 0 }) + br label %endif6067 +endif6067: %t118 = load %S.gen.Fallible, ptr %a84 call void @finch.drop.S_gen_Val(ptr %a62) call void @finch_str_drop(ptr %a41) @@ -59492,65 +61943,65 @@ entry: store %S.ast.Node %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic5825, label %ok5826 -panic5825: - call void @finch_panic(ptr @.str.3754, i64 3114, ptr @.str.3755) + br i1 %t4, label %panic6068, label %ok6069 +panic6068: + call void @finch_panic(ptr @.str.3882, i64 3252, ptr @.str.3883) unreachable -ok5826: - %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 45 +ok6069: + %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 46 %t6 = load i64, ptr %t5 %t7 = icmp sgt i64 %t6, 0 - br i1 %t7, label %then5827, label %endif5829 -then5827: + br i1 %t7, label %then6070, label %endif6072 +then6070: %t8 = load ptr, ptr %a1 %t9 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t8, %S.ast.Node %t9, { ptr, i64, i64 } { ptr @.str.3756, i64 30, i64 0 }) - br label %endif5829 -endif5829: + call void @finch.gen.fail(ptr %t8, %S.ast.Node %t9, { ptr, i64, i64 } { ptr @.str.3884, i64 30, i64 0 }) + br label %endif6072 +endif6072: %t10 = load ptr, ptr %a1 %t11 = icmp eq ptr %t10, null - br i1 %t11, label %panic5830, label %ok5831 -panic5830: - call void @finch_panic(ptr @.str.3757, i64 3117, ptr @.str.3758) + br i1 %t11, label %panic6073, label %ok6074 +panic6073: + call void @finch_panic(ptr @.str.3885, i64 3255, ptr @.str.3886) unreachable -ok5831: +ok6074: %t12 = getelementptr inbounds %S.gen.Gen, ptr %t10, i32 0, i32 13 %t13 = getelementptr inbounds %S.gen.FnSig, ptr %t12, i32 0, i32 9 %t14 = load i1, ptr %t13 %t15 = xor i1 %t14, true - br i1 %t15, label %then5832, label %endif5834 -then5832: - store { ptr, i64, i64 } { ptr @.str.3759, i64 1, i64 0 }, ptr %a16 + br i1 %t15, label %then6075, label %endif6077 +then6075: + store { ptr, i64, i64 } { ptr @.str.3887, i64 1, i64 0 }, ptr %a16 %t17 = load ptr, ptr %a1 %t18 = icmp eq ptr %t17, null - br i1 %t18, label %panic5835, label %ok5836 -panic5835: - call void @finch_panic(ptr @.str.3760, i64 3119, ptr @.str.3761) + br i1 %t18, label %panic6078, label %ok6079 +panic6078: + call void @finch_panic(ptr @.str.3888, i64 3257, ptr @.str.3889) unreachable -ok5836: +ok6079: %t19 = getelementptr inbounds %S.gen.Gen, ptr %t17, i32 0, i32 13 %t20 = getelementptr inbounds %S.gen.FnSig, ptr %t19, i32 0, i32 12 %t21 = getelementptr inbounds %S.ast.Type, ptr %t20, i32 0, i32 0 %t22 = load { ptr, i64, i64 }, ptr %t21 store { ptr, i64, i64 } %t22, ptr %a23 - store { ptr, i64, i64 } { ptr @.str.3762, i64 4, i64 0 }, ptr %a24 + store { ptr, i64, i64 } { ptr @.str.3890, i64 4, i64 0 }, ptr %a24 %t25 = call i32 @finch_str_eq(ptr %a23, ptr %a24) %t26 = icmp eq i32 %t25, 0 - br i1 %t26, label %then5837, label %endif5839 -then5837: + br i1 %t26, label %then6080, label %endif6082 +then6080: %t27 = load ptr, ptr %a1 %t28 = icmp eq ptr %t27, null - br i1 %t28, label %panic5840, label %ok5841 -panic5840: - call void @finch_panic(ptr @.str.3763, i64 3120, ptr @.str.3764) + br i1 %t28, label %panic6083, label %ok6084 +panic6083: + call void @finch_panic(ptr @.str.3891, i64 3258, ptr @.str.3892) unreachable -ok5841: +ok6084: %t29 = getelementptr inbounds %S.gen.Gen, ptr %t27, i32 0, i32 13 %t30 = getelementptr inbounds %S.gen.FnSig, ptr %t29, i32 0, i32 12 %t31 = load %S.ast.Type, ptr %t30 %t32 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t31) store { ptr, i64, i64 } %t32, ptr %a34 - store { ptr, i64, i64 } { ptr @.str.3765, i64 1, i64 0 }, ptr %a35 + store { ptr, i64, i64 } { ptr @.str.3893, i64 1, i64 0 }, ptr %a35 call void @finch_str_concat(ptr %a33, ptr %a34, ptr %a35) store { ptr, i64, i64 } %t32, ptr %a36 call void @finch_str_drop(ptr %a36) @@ -59559,26 +62010,26 @@ ok5841: store { ptr, i64, i64 } %t37, ptr %a16 store { ptr, i64, i64 } %t38, ptr %a39 call void @finch_str_drop(ptr %a39) - br label %endif5839 -endif5839: + br label %endif6082 +endif6082: %t40 = load ptr, ptr %a1 %t41 = load %S.ast.Node, ptr %a2 %t42 = load ptr, ptr %a1 %t43 = icmp eq ptr %t42, null - br i1 %t43, label %panic5842, label %ok5843 -panic5842: - call void @finch_panic(ptr @.str.3767, i64 3122, ptr @.str.3768) + br i1 %t43, label %panic6085, label %ok6086 +panic6085: + call void @finch_panic(ptr @.str.3895, i64 3260, ptr @.str.3896) unreachable -ok5843: +ok6086: %t44 = getelementptr inbounds %S.gen.Gen, ptr %t42, i32 0, i32 13 %t45 = getelementptr inbounds %S.gen.FnSig, ptr %t44, i32 0, i32 1 %t46 = load { ptr, i64, i64 }, ptr %t45 - store { ptr, i64, i64 } { ptr @.str.3766, i64 29, i64 0 }, ptr %a48 + store { ptr, i64, i64 } { ptr @.str.3894, i64 29, i64 0 }, ptr %a48 store { ptr, i64, i64 } %t46, ptr %a49 call void @finch_str_concat(ptr %a47, ptr %a48, ptr %a49) %t50 = load { ptr, i64, i64 }, ptr %a47 store { ptr, i64, i64 } %t50, ptr %a52 - store { ptr, i64, i64 } { ptr @.str.3769, i64 31, i64 0 }, ptr %a53 + store { ptr, i64, i64 } { ptr @.str.3897, i64 31, i64 0 }, ptr %a53 call void @finch_str_concat(ptr %a51, ptr %a52, ptr %a53) store { ptr, i64, i64 } %t50, ptr %a54 call void @finch_str_drop(ptr %a54) @@ -59591,7 +62042,7 @@ ok5843: call void @finch_str_drop(ptr %a60) %t61 = load { ptr, i64, i64 }, ptr %a57 store { ptr, i64, i64 } %t61, ptr %a63 - store { ptr, i64, i64 } { ptr @.str.3770, i64 55, i64 0 }, ptr %a64 + store { ptr, i64, i64 } { ptr @.str.3898, i64 55, i64 0 }, ptr %a64 call void @finch_str_concat(ptr %a62, ptr %a63, ptr %a64) store { ptr, i64, i64 } %t61, ptr %a65 call void @finch_str_drop(ptr %a65) @@ -59600,28 +62051,28 @@ ok5843: store { ptr, i64, i64 } %t66, ptr %a67 call void @finch_str_drop(ptr %a67) call void @finch_str_drop(ptr %a16) - br label %endif5834 -endif5834: + br label %endif6077 +endif6077: %t68 = load ptr, ptr %a1 %t69 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t70 = load { ptr, i64, i64 }, ptr %t69 %t71 = extractvalue { ptr, i64, i64 } %t70, 1 %t72 = icmp uge i64 0, %t71 - br i1 %t72, label %range5844, label %inrange5845 -range5844: - call void @finch_panic_index(ptr @.str.3771, i64 3124, i64 0, i64 %t71) + br i1 %t72, label %range6087, label %inrange6088 +range6087: + call void @finch_panic_index(ptr @.str.3899, i64 3262, i64 0, i64 %t71) unreachable -inrange5845: +inrange6088: %t73 = extractvalue { ptr, i64, i64 } %t70, 0 %t74 = getelementptr inbounds %S.ast.Node, ptr %t73, i64 0 %t75 = load %S.ast.Node, ptr %t74 %t76 = call %S.gen.Fallible @finch.gen.fallibleCall(ptr %t68, %S.ast.Node %t75) store %S.gen.Fallible %t76, ptr %a77 %t78 = load ptr, ptr %a1 - %t79 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t78, { ptr, i64, i64 } { ptr @.str.3772, i64 10, i64 0 }) + %t79 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t78, { ptr, i64, i64 } { ptr @.str.3900, i64 10, i64 0 }) store { ptr, i64, i64 } %t79, ptr %a80 %t81 = load ptr, ptr %a1 - %t82 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t81, { ptr, i64, i64 } { ptr @.str.3773, i64 6, i64 0 }) + %t82 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t81, { ptr, i64, i64 } { ptr @.str.3901, i64 6, i64 0 }) store { ptr, i64, i64 } %t82, ptr %a83 %t84 = load ptr, ptr %a1 %t85 = getelementptr inbounds %S.gen.Fallible, ptr %a77, i32 0, i32 1 @@ -59640,22 +62091,22 @@ inrange5845: %t94 = load ptr, ptr %a1 %t95 = load ptr, ptr %a1 %t96 = icmp eq ptr %t95, null - br i1 %t96, label %panic5846, label %ok5847 -panic5846: - call void @finch_panic(ptr @.str.3775, i64 3131, ptr @.str.3776) + br i1 %t96, label %panic6089, label %ok6090 +panic6089: + call void @finch_panic(ptr @.str.3903, i64 3269, ptr @.str.3904) unreachable -ok5847: +ok6090: %t97 = getelementptr inbounds %S.gen.Gen, ptr %t95, i32 0, i32 13 %t98 = load %S.gen.FnSig, ptr %t97 %t99 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t94, %S.gen.FnSig %t98) - store { ptr, i64, i64 } { ptr @.str.3774, i64 4, i64 0 }, ptr %a101 + store { ptr, i64, i64 } { ptr @.str.3902, i64 4, i64 0 }, ptr %a101 store { ptr, i64, i64 } %t99, ptr %a102 call void @finch_str_concat(ptr %a100, ptr %a101, ptr %a102) store { ptr, i64, i64 } %t99, ptr %a103 call void @finch_str_drop(ptr %a103) %t104 = load { ptr, i64, i64 }, ptr %a100 store { ptr, i64, i64 } %t104, ptr %a106 - store { ptr, i64, i64 } { ptr @.str.3777, i64 1, i64 0 }, ptr %a107 + store { ptr, i64, i64 } { ptr @.str.3905, i64 1, i64 0 }, ptr %a107 call void @finch_str_concat(ptr %a105, ptr %a106, ptr %a107) store { ptr, i64, i64 } %t104, ptr %a108 call void @finch_str_drop(ptr %a108) @@ -59664,22 +62115,22 @@ ok5847: %t111 = load ptr, ptr %a1 %t112 = load ptr, ptr %a1 %t113 = icmp eq ptr %t112, null - br i1 %t113, label %panic5848, label %ok5849 -panic5848: - call void @finch_panic(ptr @.str.3779, i64 3131, ptr @.str.3780) + br i1 %t113, label %panic6091, label %ok6092 +panic6091: + call void @finch_panic(ptr @.str.3907, i64 3269, ptr @.str.3908) unreachable -ok5849: +ok6092: %t114 = getelementptr inbounds %S.gen.Gen, ptr %t112, i32 0, i32 13 %t115 = load %S.gen.FnSig, ptr %t114 %t116 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t111, %S.gen.FnSig %t115) - store { ptr, i64, i64 } { ptr @.str.3778, i64 12, i64 0 }, ptr %a118 + store { ptr, i64, i64 } { ptr @.str.3906, i64 12, i64 0 }, ptr %a118 store { ptr, i64, i64 } %t116, ptr %a119 call void @finch_str_concat(ptr %a117, ptr %a118, ptr %a119) store { ptr, i64, i64 } %t116, ptr %a120 call void @finch_str_drop(ptr %a120) %t121 = load { ptr, i64, i64 }, ptr %a117 store { ptr, i64, i64 } %t121, ptr %a123 - store { ptr, i64, i64 } { ptr @.str.3781, i64 36, i64 0 }, ptr %a124 + store { ptr, i64, i64 } { ptr @.str.3909, i64 36, i64 0 }, ptr %a124 call void @finch_str_concat(ptr %a122, ptr %a123, ptr %a124) store { ptr, i64, i64 } %t121, ptr %a125 call void @finch_str_drop(ptr %a125) @@ -59693,7 +62144,7 @@ ok5849: call void @finch_str_drop(ptr %a132) %t133 = load { ptr, i64, i64 }, ptr %a129 store { ptr, i64, i64 } %t133, ptr %a135 - store { ptr, i64, i64 } { ptr @.str.3782, i64 3, i64 0 }, ptr %a136 + store { ptr, i64, i64 } { ptr @.str.3910, i64 3, i64 0 }, ptr %a136 call void @finch_str_concat(ptr %a134, ptr %a135, ptr %a136) store { ptr, i64, i64 } %t133, ptr %a137 call void @finch_str_drop(ptr %a137) @@ -59714,11 +62165,11 @@ ok5849: call void @finch_str_drop(ptr %a147) %t148 = load ptr, ptr %a1 %t149 = icmp eq ptr %t148, null - br i1 %t149, label %panic5850, label %ok5851 -panic5850: - call void @finch_panic(ptr @.str.3783, i64 3132, ptr @.str.3784) + br i1 %t149, label %panic6093, label %ok6094 +panic6093: + call void @finch_panic(ptr @.str.3911, i64 3270, ptr @.str.3912) unreachable -ok5851: +ok6094: %t150 = getelementptr inbounds %S.gen.Gen, ptr %t148, i32 0, i32 9 store i1 true, ptr %t150 %t151 = load ptr, ptr %a1 @@ -59814,11 +62265,11 @@ entry: %t6 = load { ptr, i64, i64 }, ptr %t5 %t7 = extractvalue { ptr, i64, i64 } %t6, 1 %t8 = icmp uge i64 0, %t7 - br i1 %t8, label %range5852, label %inrange5853 -range5852: - call void @finch_panic_index(ptr @.str.3785, i64 3139, i64 0, i64 %t7) + br i1 %t8, label %range6095, label %inrange6096 +range6095: + call void @finch_panic_index(ptr @.str.3913, i64 3277, i64 0, i64 %t7) unreachable -inrange5853: +inrange6096: %t9 = extractvalue { ptr, i64, i64 } %t6, 0 %t10 = getelementptr inbounds %S.ast.Node, ptr %t9, i64 0 %t11 = load %S.ast.Node, ptr %t10 @@ -59831,10 +62282,10 @@ inrange5853: %t18 = load %S.gen.Val, ptr %a17 store %S.gen.Val %t18, ptr %a19 %t20 = load ptr, ptr %a1 - %t21 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t20, { ptr, i64, i64 } { ptr @.str.3786, i64 9, i64 0 }) + %t21 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t20, { ptr, i64, i64 } { ptr @.str.3914, i64 9, i64 0 }) store { ptr, i64, i64 } %t21, ptr %a22 %t23 = load ptr, ptr %a1 - %t24 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t23, { ptr, i64, i64 } { ptr @.str.3787, i64 5, i64 0 }) + %t24 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t23, { ptr, i64, i64 } { ptr @.str.3915, i64 5, i64 0 }) store { ptr, i64, i64 } %t24, ptr %a25 %t26 = load ptr, ptr %a1 %t27 = getelementptr inbounds %S.gen.Fallible, ptr %a13, i32 0, i32 1 @@ -59847,16 +62298,16 @@ inrange5853: call void @finch.gen.label(ptr %t31, { ptr, i64, i64 } %t32) %t33 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 6 %t34 = load i1, ptr %t33 - br i1 %t34, label %then5854, label %endif5856 -then5854: + br i1 %t34, label %then6097, label %endif6099 +then6097: %t35 = load ptr, ptr %a1 call void @finch.gen.pushScope(ptr %t35) %t36 = load ptr, ptr %a1 %t37 = load %S.ast.Node, ptr %a2 - %t38 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3789, i64 3, i64 0 }) + %t38 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3917, i64 3, i64 0 }) %t39 = getelementptr inbounds %S.gen.Fallible, ptr %a13, i32 0, i32 2 %t40 = load { ptr, i64, i64 }, ptr %t39 - %t41 = call { ptr, i64, i64 } @finch.gen.addVar(ptr %t36, %S.ast.Node %t37, { ptr, i64, i64 } { ptr @.str.3788, i64 3, i64 0 }, %S.ast.Type %t38, { ptr, i64, i64 } %t40, i1 true, i1 true) + %t41 = call { ptr, i64, i64 } @finch.gen.addVar(ptr %t36, %S.ast.Node %t37, { ptr, i64, i64 } { ptr @.str.3916, i64 3, i64 0 }, %S.ast.Type %t38, { ptr, i64, i64 } %t40, i1 true, i1 true) store %S.ast.Type %t38, ptr %a42 call void @finch.drop.S_ast_Type(ptr %a42) store { ptr, i64, i64 } %t41, ptr %a43 @@ -59866,22 +62317,22 @@ then5854: %t46 = load { ptr, i64, i64 }, ptr %t45 %t47 = extractvalue { ptr, i64, i64 } %t46, 1 %t48 = icmp uge i64 1, %t47 - br i1 %t48, label %range5857, label %inrange5858 -range5857: - call void @finch_panic_index(ptr @.str.3790, i64 3148, i64 1, i64 %t47) + br i1 %t48, label %range6100, label %inrange6101 +range6100: + call void @finch_panic_index(ptr @.str.3918, i64 3286, i64 1, i64 %t47) unreachable -inrange5858: +inrange6101: %t49 = extractvalue { ptr, i64, i64 } %t46, 0 %t50 = getelementptr inbounds %S.ast.Node, ptr %t49, i64 1 %t51 = load %S.ast.Node, ptr %t50 call void @finch.gen.block(ptr %t44, %S.ast.Node %t51, i1 true) %t52 = load ptr, ptr %a1 %t53 = icmp eq ptr %t52, null - br i1 %t53, label %panic5859, label %ok5860 -panic5859: - call void @finch_panic(ptr @.str.3791, i64 3149, ptr @.str.3792) + br i1 %t53, label %panic6102, label %ok6103 +panic6102: + call void @finch_panic(ptr @.str.3919, i64 3287, ptr @.str.3920) unreachable -ok5860: +ok6103: %t54 = getelementptr inbounds %S.gen.Gen, ptr %t52, i32 0, i32 9 %t55 = load i1, ptr %t54 store i1 %t55, ptr %a56 @@ -59889,72 +62340,72 @@ ok5860: call void @finch.gen.popScope(ptr %t57) %t58 = load i1, ptr %a56 %t59 = xor i1 %t58, true - br label %logic.from5861 -logic.from5861: - br i1 %t59, label %logic.rhs5862, label %logic.end5863 -logic.rhs5862: + br label %logic.from6104 +logic.from6104: + br i1 %t59, label %logic.rhs6105, label %logic.end6106 +logic.rhs6105: %t60 = getelementptr inbounds %S.gen.Val, ptr %a19, i32 0, i32 1 %t61 = getelementptr inbounds %S.ast.Type, ptr %t60, i32 0, i32 0 %t62 = load { ptr, i64, i64 }, ptr %t61 store { ptr, i64, i64 } %t62, ptr %a63 - store { ptr, i64, i64 } { ptr @.str.3793, i64 4, i64 0 }, ptr %a64 + store { ptr, i64, i64 } { ptr @.str.3921, i64 4, i64 0 }, ptr %a64 %t65 = call i32 @finch_str_eq(ptr %a63, ptr %a64) %t66 = icmp eq i32 %t65, 0 - br label %logic.rend5864 -logic.rend5864: - br label %logic.end5863 -logic.end5863: - %t67 = phi i1 [ false, %logic.from5861 ], [ %t66, %logic.rend5864 ] - br label %logic.from5865 -logic.from5865: - br i1 %t67, label %logic.rhs5866, label %logic.end5867 -logic.rhs5866: + br label %logic.rend6107 +logic.rend6107: + br label %logic.end6106 +logic.end6106: + %t67 = phi i1 [ false, %logic.from6104 ], [ %t66, %logic.rend6107 ] + br label %logic.from6108 +logic.from6108: + br i1 %t67, label %logic.rhs6109, label %logic.end6110 +logic.rhs6109: %t68 = load i1, ptr %a3 %t69 = xor i1 %t68, true - br label %logic.rend5868 -logic.rend5868: - br label %logic.end5867 -logic.end5867: - %t70 = phi i1 [ false, %logic.from5865 ], [ %t69, %logic.rend5868 ] - br i1 %t70, label %then5869, label %endif5871 -then5869: + br label %logic.rend6111 +logic.rend6111: + br label %logic.end6110 +logic.end6110: + %t70 = phi i1 [ false, %logic.from6108 ], [ %t69, %logic.rend6111 ] + br i1 %t70, label %then6112, label %endif6114 +then6112: %t71 = load ptr, ptr %a1 %t72 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t73 = load { ptr, i64, i64 }, ptr %t72 %t74 = extractvalue { ptr, i64, i64 } %t73, 1 %t75 = icmp uge i64 1, %t74 - br i1 %t75, label %range5872, label %inrange5873 -range5872: - call void @finch_panic_index(ptr @.str.3794, i64 3152, i64 1, i64 %t74) + br i1 %t75, label %range6115, label %inrange6116 +range6115: + call void @finch_panic_index(ptr @.str.3922, i64 3290, i64 1, i64 %t74) unreachable -inrange5873: +inrange6116: %t76 = extractvalue { ptr, i64, i64 } %t73, 0 %t77 = getelementptr inbounds %S.ast.Node, ptr %t76, i64 1 %t78 = load %S.ast.Node, ptr %t77 - call void @finch.gen.fail(ptr %t71, %S.ast.Node %t78, { ptr, i64, i64 } { ptr @.str.3795, i64 142, i64 0 }) - br label %endif5871 -endif5871: + call void @finch.gen.fail(ptr %t71, %S.ast.Node %t78, { ptr, i64, i64 } { ptr @.str.3923, i64 142, i64 0 }) + br label %endif6114 +endif6114: %t79 = load i1, ptr %a3 - br label %logic.from5874 -logic.from5874: - br i1 %t79, label %logic.rhs5875, label %logic.end5876 -logic.rhs5875: + br label %logic.from6117 +logic.from6117: + br i1 %t79, label %logic.rhs6118, label %logic.end6119 +logic.rhs6118: %t80 = getelementptr inbounds %S.gen.Val, ptr %a19, i32 0, i32 1 %t81 = getelementptr inbounds %S.ast.Type, ptr %t80, i32 0, i32 0 %t82 = load { ptr, i64, i64 }, ptr %t81 store { ptr, i64, i64 } %t82, ptr %a83 - store { ptr, i64, i64 } { ptr @.str.3796, i64 4, i64 0 }, ptr %a84 + store { ptr, i64, i64 } { ptr @.str.3924, i64 4, i64 0 }, ptr %a84 %t85 = call i32 @finch_str_eq(ptr %a83, ptr %a84) %t86 = icmp eq i32 %t85, 0 - br label %logic.rend5877 -logic.rend5877: - br label %logic.end5876 -logic.end5876: - %t87 = phi i1 [ false, %logic.from5874 ], [ %t86, %logic.rend5877 ] - br i1 %t87, label %then5878, label %endif5880 -then5878: + br label %logic.rend6120 +logic.rend6120: + br label %logic.end6119 +logic.end6119: + %t87 = phi i1 [ false, %logic.from6117 ], [ %t86, %logic.rend6120 ] + br i1 %t87, label %then6121, label %endif6123 +then6121: %t88 = load ptr, ptr %a1 - %t89 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t88, { ptr, i64, i64 } { ptr @.str.3797, i64 6, i64 0 }) + %t89 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t88, { ptr, i64, i64 } { ptr @.str.3925, i64 6, i64 0 }) store { ptr, i64, i64 } %t89, ptr %a90 %t91 = load ptr, ptr %a1 %t92 = load { ptr, i64, i64 }, ptr %a90 @@ -59971,7 +62422,7 @@ then5878: %t99 = load ptr, ptr %a1 %t100 = load { ptr, i64, i64 }, ptr %a90 call void @finch.gen.label(ptr %t99, { ptr, i64, i64 } %t100) - %t101 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3798, i64 4, i64 0 }) + %t101 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3926, i64 4, i64 0 }) %t102 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t101, 1 call void @finch_str_drop(ptr %a90) call void @finch_str_drop(ptr %a25) @@ -59979,7 +62430,7 @@ then5878: call void @finch.drop.S_gen_Val(ptr %a19) call void @finch.drop.S_gen_Fallible(ptr %a13) ret %S.gen.Val %t102 -endif5880: +endif6123: %t103 = load ptr, ptr %a1 %t104 = load { ptr, i64, i64 }, ptr %a25 call void @finch.gen.br(ptr %t103, { ptr, i64, i64 } %t104) @@ -59991,40 +62442,40 @@ endif5880: call void @finch_str_drop(ptr %a22) call void @finch.drop.S_gen_Fallible(ptr %a13) ret %S.gen.Val %t107 -endif5856: +endif6099: %t108 = getelementptr inbounds %S.gen.Val, ptr %a19, i32 0, i32 1 %t109 = getelementptr inbounds %S.ast.Type, ptr %t108, i32 0, i32 0 %t110 = load { ptr, i64, i64 }, ptr %t109 store { ptr, i64, i64 } %t110, ptr %a111 - store { ptr, i64, i64 } { ptr @.str.3799, i64 4, i64 0 }, ptr %a112 + store { ptr, i64, i64 } { ptr @.str.3927, i64 4, i64 0 }, ptr %a112 %t113 = call i32 @finch_str_eq(ptr %a111, ptr %a112) %t114 = icmp ne i32 %t113, 0 - br i1 %t114, label %then5881, label %endif5883 -then5881: + br i1 %t114, label %then6124, label %endif6126 +then6124: %t115 = load ptr, ptr %a1 %t116 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t117 = load { ptr, i64, i64 }, ptr %t116 %t118 = extractvalue { ptr, i64, i64 } %t117, 1 %t119 = icmp uge i64 1, %t118 - br i1 %t119, label %range5884, label %inrange5885 -range5884: - call void @finch_panic_index(ptr @.str.3800, i64 3168, i64 1, i64 %t118) + br i1 %t119, label %range6127, label %inrange6128 +range6127: + call void @finch_panic_index(ptr @.str.3928, i64 3306, i64 1, i64 %t118) unreachable -inrange5885: +inrange6128: %t120 = extractvalue { ptr, i64, i64 } %t117, 0 %t121 = getelementptr inbounds %S.ast.Node, ptr %t120, i64 1 %t122 = load %S.ast.Node, ptr %t121 - call void @finch.gen.fail(ptr %t115, %S.ast.Node %t122, { ptr, i64, i64 } { ptr @.str.3801, i64 98, i64 0 }) - br label %endif5883 -endif5883: + call void @finch.gen.fail(ptr %t115, %S.ast.Node %t122, { ptr, i64, i64 } { ptr @.str.3929, i64 98, i64 0 }) + br label %endif6126 +endif6126: %t123 = load ptr, ptr %a1 call void @finch.gen.pushScope(ptr %t123) %t124 = load ptr, ptr %a1 %t125 = load %S.ast.Node, ptr %a2 - %t126 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3803, i64 3, i64 0 }) + %t126 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3931, i64 3, i64 0 }) %t127 = getelementptr inbounds %S.gen.Fallible, ptr %a13, i32 0, i32 2 %t128 = load { ptr, i64, i64 }, ptr %t127 - %t129 = call { ptr, i64, i64 } @finch.gen.addVar(ptr %t124, %S.ast.Node %t125, { ptr, i64, i64 } { ptr @.str.3802, i64 3, i64 0 }, %S.ast.Type %t126, { ptr, i64, i64 } %t128, i1 true, i1 true) + %t129 = call { ptr, i64, i64 } @finch.gen.addVar(ptr %t124, %S.ast.Node %t125, { ptr, i64, i64 } { ptr @.str.3930, i64 3, i64 0 }, %S.ast.Type %t126, { ptr, i64, i64 } %t128, i1 true, i1 true) store %S.ast.Type %t126, ptr %a130 call void @finch.drop.S_ast_Type(ptr %a130) store { ptr, i64, i64 } %t129, ptr %a131 @@ -60035,11 +62486,11 @@ endif5883: %t135 = load { ptr, i64, i64 }, ptr %t134 %t136 = extractvalue { ptr, i64, i64 } %t135, 1 %t137 = icmp uge i64 1, %t136 - br i1 %t137, label %range5886, label %inrange5887 -range5886: - call void @finch_panic_index(ptr @.str.3804, i64 3172, i64 1, i64 %t136) + br i1 %t137, label %range6129, label %inrange6130 +range6129: + call void @finch_panic_index(ptr @.str.3932, i64 3310, i64 1, i64 %t136) unreachable -inrange5887: +inrange6130: %t138 = extractvalue { ptr, i64, i64 } %t135, 0 %t139 = getelementptr inbounds %S.ast.Node, ptr %t138, i64 1 %t140 = load %S.ast.Node, ptr %t139 @@ -60052,15 +62503,15 @@ inrange5887: %t147 = load { ptr, i64, i64 }, ptr %t146 %t148 = extractvalue { ptr, i64, i64 } %t147, 1 %t149 = icmp uge i64 1, %t148 - br i1 %t149, label %range5888, label %inrange5889 -range5888: - call void @finch_panic_index(ptr @.str.3805, i64 3172, i64 1, i64 %t148) + br i1 %t149, label %range6131, label %inrange6132 +range6131: + call void @finch_panic_index(ptr @.str.3933, i64 3310, i64 1, i64 %t148) unreachable -inrange5889: +inrange6132: %t150 = extractvalue { ptr, i64, i64 } %t147, 0 %t151 = getelementptr inbounds %S.ast.Node, ptr %t150, i64 1 %t152 = load %S.ast.Node, ptr %t151 - %t153 = call %S.gen.Val @finch.gen.coerce(ptr %t132, %S.gen.Val %t143, %S.ast.Type %t145, %S.ast.Node %t152, { ptr, i64, i64 } { ptr @.str.3806, i64 20, i64 0 }) + %t153 = call %S.gen.Val @finch.gen.coerce(ptr %t132, %S.gen.Val %t143, %S.ast.Type %t145, %S.ast.Node %t152, { ptr, i64, i64 } { ptr @.str.3934, i64 20, i64 0 }) store %S.gen.Val %t143, ptr %a154 call void @finch.drop.S_gen_Val(ptr %a154) store %S.gen.Val %t153, ptr %a155 @@ -60071,10 +62522,10 @@ inrange5889: %t160 = load ptr, ptr %a1 call void @finch.gen.popScope(ptr %t160) %t161 = load ptr, ptr %a1 - %t162 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t161, { ptr, i64, i64 } { ptr @.str.3807, i64 7, i64 0 }) + %t162 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t161, { ptr, i64, i64 } { ptr @.str.3935, i64 7, i64 0 }) store { ptr, i64, i64 } %t162, ptr %a163 %t164 = load ptr, ptr %a1 - %t165 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t164, { ptr, i64, i64 } { ptr @.str.3808, i64 6, i64 0 }) + %t165 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t164, { ptr, i64, i64 } { ptr @.str.3936, i64 6, i64 0 }) store { ptr, i64, i64 } %t165, ptr %a166 %t167 = load ptr, ptr %a1 %t168 = load { ptr, i64, i64 }, ptr %a163 @@ -60099,14 +62550,14 @@ inrange5889: %t181 = getelementptr inbounds %S.gen.Val, ptr %a19, i32 0, i32 1 %t182 = load %S.ast.Type, ptr %t181 %t183 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t180, %S.ast.Type %t182) - store { ptr, i64, i64 } { ptr @.str.3809, i64 4, i64 0 }, ptr %a185 + store { ptr, i64, i64 } { ptr @.str.3937, i64 4, i64 0 }, ptr %a185 store { ptr, i64, i64 } %t183, ptr %a186 call void @finch_str_concat(ptr %a184, ptr %a185, ptr %a186) store { ptr, i64, i64 } %t183, ptr %a187 call void @finch_str_drop(ptr %a187) %t188 = load { ptr, i64, i64 }, ptr %a184 store { ptr, i64, i64 } %t188, ptr %a190 - store { ptr, i64, i64 } { ptr @.str.3810, i64 3, i64 0 }, ptr %a191 + store { ptr, i64, i64 } { ptr @.str.3938, i64 3, i64 0 }, ptr %a191 call void @finch_str_concat(ptr %a189, ptr %a190, ptr %a191) store { ptr, i64, i64 } %t188, ptr %a192 call void @finch_str_drop(ptr %a192) @@ -60119,7 +62570,7 @@ inrange5889: call void @finch_str_drop(ptr %a198) %t199 = load { ptr, i64, i64 }, ptr %a195 store { ptr, i64, i64 } %t199, ptr %a201 - store { ptr, i64, i64 } { ptr @.str.3811, i64 3, i64 0 }, ptr %a202 + store { ptr, i64, i64 } { ptr @.str.3939, i64 3, i64 0 }, ptr %a202 call void @finch_str_concat(ptr %a200, ptr %a201, ptr %a202) store { ptr, i64, i64 } %t199, ptr %a203 call void @finch_str_drop(ptr %a203) @@ -60132,7 +62583,7 @@ inrange5889: call void @finch_str_drop(ptr %a209) %t210 = load { ptr, i64, i64 }, ptr %a206 store { ptr, i64, i64 } %t210, ptr %a212 - store { ptr, i64, i64 } { ptr @.str.3812, i64 6, i64 0 }, ptr %a213 + store { ptr, i64, i64 } { ptr @.str.3940, i64 6, i64 0 }, ptr %a213 call void @finch_str_concat(ptr %a211, ptr %a212, ptr %a213) store { ptr, i64, i64 } %t210, ptr %a214 call void @finch_str_drop(ptr %a214) @@ -60146,7 +62597,7 @@ inrange5889: call void @finch_str_drop(ptr %a221) %t222 = load { ptr, i64, i64 }, ptr %a218 store { ptr, i64, i64 } %t222, ptr %a224 - store { ptr, i64, i64 } { ptr @.str.3813, i64 3, i64 0 }, ptr %a225 + store { ptr, i64, i64 } { ptr @.str.3941, i64 3, i64 0 }, ptr %a225 call void @finch_str_concat(ptr %a223, ptr %a224, ptr %a225) store { ptr, i64, i64 } %t222, ptr %a226 call void @finch_str_drop(ptr %a226) @@ -60159,7 +62610,7 @@ inrange5889: call void @finch_str_drop(ptr %a232) %t233 = load { ptr, i64, i64 }, ptr %a229 store { ptr, i64, i64 } %t233, ptr %a235 - store { ptr, i64, i64 } { ptr @.str.3814, i64 2, i64 0 }, ptr %a236 + store { ptr, i64, i64 } { ptr @.str.3942, i64 2, i64 0 }, ptr %a236 call void @finch_str_concat(ptr %a234, ptr %a235, ptr %a236) store { ptr, i64, i64 } %t233, ptr %a237 call void @finch_str_drop(ptr %a237) @@ -60205,31 +62656,31 @@ entry: %t4 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 %t5 = load { ptr, i64, i64 }, ptr %t4 store { ptr, i64, i64 } %t5, ptr %a6 - store { ptr, i64, i64 } { ptr @.str.3815, i64 5, i64 0 }, ptr %a7 + store { ptr, i64, i64 } { ptr @.str.3943, i64 5, i64 0 }, ptr %a7 %t8 = call i32 @finch_str_eq(ptr %a6, ptr %a7) %t9 = icmp ne i32 %t8, 0 - br i1 %t9, label %then5890, label %endif5892 -then5890: + br i1 %t9, label %then6133, label %endif6135 +then6133: %t10 = load ptr, ptr %a1 %t11 = load %S.ast.Node, ptr %a2 %t12 = load %S.ast.Type, ptr %a3 %t13 = call %S.gen.Val @finch.gen.arrayLit(ptr %t10, %S.ast.Node %t11, %S.ast.Type %t12) ret %S.gen.Val %t13 -endif5892: +endif6135: %t14 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 %t15 = load { ptr, i64, i64 }, ptr %t14 store { ptr, i64, i64 } %t15, ptr %a16 - store { ptr, i64, i64 } { ptr @.str.3816, i64 3, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.3944, i64 3, i64 0 }, ptr %a17 %t18 = call i32 @finch_str_eq(ptr %a16, ptr %a17) %t19 = icmp ne i32 %t18, 0 - br i1 %t19, label %then5893, label %endif5895 -then5893: + br i1 %t19, label %then6136, label %endif6138 +then6136: %t20 = load ptr, ptr %a1 %t21 = load %S.ast.Node, ptr %a2 %t22 = load %S.ast.Type, ptr %a3 %t23 = call %S.gen.Val @finch.gen.mapLit(ptr %t20, %S.ast.Node %t21, %S.ast.Type %t22) ret %S.gen.Val %t23 -endif5895: +endif6138: %t24 = load ptr, ptr %a1 %t25 = load %S.ast.Node, ptr %a2 %t26 = call %S.gen.Val @finch.gen.expr(ptr %t24, %S.ast.Node %t25) @@ -60323,34 +62774,34 @@ entry: store { ptr, i64, i64 } %t7, ptr %a8 %t9 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t9, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.3817, i64 3, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.3945, i64 3, i64 0 }, ptr %a11 %t12 = call i32 @finch_str_eq(ptr %a10, ptr %a11) %t13 = icmp ne i32 %t12, 0 - br i1 %t13, label %then5896, label %endif5898 -then5896: + br i1 %t13, label %then6139, label %endif6141 +then6139: %t14 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 4 %t15 = load { ptr, i64, i64 }, ptr %t14 store { ptr, i64, i64 } %t15, ptr %a16 - store { ptr, i64, i64 } { ptr @.str.3819, i64 2, i64 0 }, ptr %a18 + store { ptr, i64, i64 } { ptr @.str.3947, i64 2, i64 0 }, ptr %a18 %t19 = call i32 @finch_str_starts(ptr %a16, ptr %a18) %t20 = icmp ne i32 %t19, 0 - br label %logic.from5899 -logic.from5899: - br i1 %t20, label %logic.end5901, label %logic.rhs5900 -logic.rhs5900: + br label %logic.from6142 +logic.from6142: + br i1 %t20, label %logic.end6144, label %logic.rhs6143 +logic.rhs6143: %t21 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 4 %t22 = load { ptr, i64, i64 }, ptr %t21 store { ptr, i64, i64 } %t22, ptr %a23 - store { ptr, i64, i64 } { ptr @.str.3821, i64 2, i64 0 }, ptr %a25 + store { ptr, i64, i64 } { ptr @.str.3949, i64 2, i64 0 }, ptr %a25 %t26 = call i32 @finch_str_starts(ptr %a23, ptr %a25) %t27 = icmp ne i32 %t26, 0 - br label %logic.rend5902 -logic.rend5902: - br label %logic.end5901 -logic.end5901: - %t28 = phi i1 [ true, %logic.from5899 ], [ %t27, %logic.rend5902 ] - br i1 %t28, label %then5903, label %endif5905 -then5903: + br label %logic.rend6145 +logic.rend6145: + br label %logic.end6144 +logic.end6144: + %t28 = phi i1 [ true, %logic.from6142 ], [ %t27, %logic.rend6145 ] + br i1 %t28, label %then6146, label %endif6148 +then6146: store i64 0, ptr %a29 %t30 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 4 %t31 = load { ptr, i64, i64 }, ptr %t30 @@ -60358,18 +62809,18 @@ then5903: %t34 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 4 %t35 = getelementptr inbounds { ptr, i64, i64 }, ptr %t34, i32 0, i32 1 %t36 = load i64, ptr %t35 - call void @finch_str_sub(ptr %a33, ptr %a32, i64 2, i64 %t36, ptr @.str.3822, i64 3201) + call void @finch_str_sub(ptr %a33, ptr %a32, i64 2, i64 %t36, ptr @.str.3950, i64 3339) %t37 = load { ptr, i64, i64 }, ptr %a33 store { ptr, i64, i64 } %t37, ptr %a38 store i64 0, ptr %a39 - br label %each.cond5906 -each.cond5906: + br label %each.cond6149 +each.cond6149: %t40 = getelementptr inbounds { ptr, i64, i64 }, ptr %a38, i32 0, i32 1 %t41 = load i64, ptr %t40 %t42 = load i64, ptr %a39 %t43 = icmp slt i64 %t42, %t41 - br i1 %t43, label %each.body5907, label %each.end5909 -each.body5907: + br i1 %t43, label %each.body6150, label %each.end6152 +each.body6150: %t44 = load ptr, ptr %a38 %t45 = getelementptr inbounds i8, ptr %t44, i64 %t42 %t46 = load i8, ptr %t45 @@ -60381,139 +62832,139 @@ each.body5907: store i64 %t51, ptr %a52 %t53 = load i8, ptr %a47 %t54 = icmp uge i8 %t53, 97 - br label %logic.from5910 -logic.from5910: - br i1 %t54, label %logic.rhs5911, label %logic.end5912 -logic.rhs5911: + br label %logic.from6153 +logic.from6153: + br i1 %t54, label %logic.rhs6154, label %logic.end6155 +logic.rhs6154: %t55 = load i8, ptr %a47 %t56 = icmp ule i8 %t55, 102 - br label %logic.rend5913 -logic.rend5913: - br label %logic.end5912 -logic.end5912: - %t57 = phi i1 [ false, %logic.from5910 ], [ %t56, %logic.rend5913 ] - br i1 %t57, label %then5914, label %endif5916 -then5914: + br label %logic.rend6156 +logic.rend6156: + br label %logic.end6155 +logic.end6155: + %t57 = phi i1 [ false, %logic.from6153 ], [ %t56, %logic.rend6156 ] + br i1 %t57, label %then6157, label %endif6159 +then6157: %t58 = load i8, ptr %a47 %t59 = zext i8 %t58 to i64 %t60 = zext i8 97 to i64 %t61 = sub i64 %t59, %t60 %t62 = add i64 %t61, 10 store i64 %t62, ptr %a52 - br label %endif5916 -endif5916: + br label %endif6159 +endif6159: %t63 = load i8, ptr %a47 %t64 = icmp uge i8 %t63, 65 - br label %logic.from5917 -logic.from5917: - br i1 %t64, label %logic.rhs5918, label %logic.end5919 -logic.rhs5918: + br label %logic.from6160 +logic.from6160: + br i1 %t64, label %logic.rhs6161, label %logic.end6162 +logic.rhs6161: %t65 = load i8, ptr %a47 %t66 = icmp ule i8 %t65, 70 - br label %logic.rend5920 -logic.rend5920: - br label %logic.end5919 -logic.end5919: - %t67 = phi i1 [ false, %logic.from5917 ], [ %t66, %logic.rend5920 ] - br i1 %t67, label %then5921, label %endif5923 -then5921: + br label %logic.rend6163 +logic.rend6163: + br label %logic.end6162 +logic.end6162: + %t67 = phi i1 [ false, %logic.from6160 ], [ %t66, %logic.rend6163 ] + br i1 %t67, label %then6164, label %endif6166 +then6164: %t68 = load i8, ptr %a47 %t69 = zext i8 %t68 to i64 %t70 = zext i8 65 to i64 %t71 = sub i64 %t69, %t70 %t72 = add i64 %t71, 10 store i64 %t72, ptr %a52 - br label %endif5923 -endif5923: + br label %endif6166 +endif6166: %t73 = load i64, ptr %a29 %t74 = mul i64 %t73, 16 %t75 = load i64, ptr %a52 %t76 = add i64 %t74, %t75 store i64 %t76, ptr %a29 - br label %each.step5908 -each.step5908: + br label %each.step6151 +each.step6151: %t77 = load i64, ptr %a39 %t78 = add i64 %t77, 1 store i64 %t78, ptr %a39 - br label %each.cond5906 -each.end5909: + br label %each.cond6149 +each.end6152: call void @finch_str_drop(ptr %a38) %t79 = load i64, ptr %a29 call void @finch_str_from_int(ptr %a80, i64 %t79) %t81 = load { ptr, i64, i64 }, ptr %a80 %t82 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t81, 0 - %t83 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3823, i64 3, i64 0 }) + %t83 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3951, i64 3, i64 0 }) %t84 = insertvalue %S.gen.Val %t82, %S.ast.Type %t83, 1 %t85 = insertvalue %S.gen.Val %t84, i1 true, 3 call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t85 -endif5905: +endif6148: %t86 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 4 %t87 = load { ptr, i64, i64 }, ptr %t86 store { ptr, i64, i64 } %t87, ptr %a88 - %t89 = call i64 @finch_str_to_int(ptr %a88, ptr @.str.3824, i64 3213) + %t89 = call i64 @finch_str_to_int(ptr %a88, ptr @.str.3952, i64 3351) call void @finch_str_from_int(ptr %a90, i64 %t89) %t91 = load { ptr, i64, i64 }, ptr %a90 %t92 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t91, 0 - %t93 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3825, i64 3, i64 0 }) + %t93 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3953, i64 3, i64 0 }) %t94 = insertvalue %S.gen.Val %t92, %S.ast.Type %t93, 1 %t95 = insertvalue %S.gen.Val %t94, i1 true, 3 call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t95 -endif5898: +endif6141: %t96 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t96, ptr %a97 - store { ptr, i64, i64 } { ptr @.str.3826, i64 5, i64 0 }, ptr %a98 + store { ptr, i64, i64 } { ptr @.str.3954, i64 5, i64 0 }, ptr %a98 %t99 = call i32 @finch_str_eq(ptr %a97, ptr %a98) %t100 = icmp ne i32 %t99, 0 - br i1 %t100, label %then5924, label %endif5926 -then5924: + br i1 %t100, label %then6167, label %endif6169 +then6167: %t101 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 4 %t102 = load { ptr, i64, i64 }, ptr %t101 store { ptr, i64, i64 } %t102, ptr %a103 call void @finch_str_copy(ptr %a104, ptr %a103) %t105 = load { ptr, i64, i64 }, ptr %a104 %t106 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t105, 0 - %t107 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3827, i64 5, i64 0 }) + %t107 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3955, i64 5, i64 0 }) %t108 = insertvalue %S.gen.Val %t106, %S.ast.Type %t107, 1 %t109 = insertvalue %S.gen.Val %t108, i1 true, 3 call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t109 -endif5926: +endif6169: %t110 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t110, ptr %a111 - store { ptr, i64, i64 } { ptr @.str.3828, i64 4, i64 0 }, ptr %a112 + store { ptr, i64, i64 } { ptr @.str.3956, i64 4, i64 0 }, ptr %a112 %t113 = call i32 @finch_str_eq(ptr %a111, ptr %a112) %t114 = icmp ne i32 %t113, 0 - br i1 %t114, label %then5927, label %endif5929 -then5927: + br i1 %t114, label %then6170, label %endif6172 +then6170: %t115 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 4 %t116 = load { ptr, i64, i64 }, ptr %t115 store { ptr, i64, i64 } %t116, ptr %a117 call void @finch_str_copy(ptr %a118, ptr %a117) %t119 = load { ptr, i64, i64 }, ptr %a118 %t120 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t119, 0 - %t121 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3829, i64 4, i64 0 }) + %t121 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3957, i64 4, i64 0 }) %t122 = insertvalue %S.gen.Val %t120, %S.ast.Type %t121, 1 call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t122 -endif5929: +endif6172: %t123 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t123, ptr %a124 - store { ptr, i64, i64 } { ptr @.str.3830, i64 4, i64 0 }, ptr %a125 + store { ptr, i64, i64 } { ptr @.str.3958, i64 4, i64 0 }, ptr %a125 %t126 = call i32 @finch_str_eq(ptr %a124, ptr %a125) %t127 = icmp ne i32 %t126, 0 - br i1 %t127, label %then5930, label %endif5932 -then5930: + br i1 %t127, label %then6173, label %endif6175 +then6173: %t128 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 4 %t129 = load { ptr, i64, i64 }, ptr %t128 %t130 = extractvalue { ptr, i64, i64 } %t129, 1 %t131 = icmp uge i64 0, %t130 - br i1 %t131, label %range5933, label %inrange5934 -range5933: - call void @finch_panic_index(ptr @.str.3831, i64 3222, i64 0, i64 %t130) + br i1 %t131, label %range6176, label %inrange6177 +range6176: + call void @finch_panic_index(ptr @.str.3959, i64 3360, i64 0, i64 %t130) unreachable -inrange5934: +inrange6177: %t132 = extractvalue { ptr, i64, i64 } %t129, 0 %t133 = getelementptr inbounds i8, ptr %t132, i64 0 %t134 = load i8, ptr %t133 @@ -60523,73 +62974,73 @@ inrange5934: call void @finch_str_from_int(ptr %a138, i64 %t137) %t139 = load { ptr, i64, i64 }, ptr %a138 %t140 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t139, 0 - %t141 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3832, i64 4, i64 0 }) + %t141 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3960, i64 4, i64 0 }) %t142 = insertvalue %S.gen.Val %t140, %S.ast.Type %t141, 1 call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t142 -endif5932: +endif6175: %t143 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t143, ptr %a144 - store { ptr, i64, i64 } { ptr @.str.3833, i64 3, i64 0 }, ptr %a145 + store { ptr, i64, i64 } { ptr @.str.3961, i64 3, i64 0 }, ptr %a145 %t146 = call i32 @finch_str_eq(ptr %a144, ptr %a145) %t147 = icmp ne i32 %t146, 0 - br i1 %t147, label %then5935, label %endif5937 -then5935: + br i1 %t147, label %then6178, label %endif6180 +then6178: %t148 = load ptr, ptr %a1 %t149 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 4 %t150 = load { ptr, i64, i64 }, ptr %t149 %t151 = call %S.gen.Val @finch.gen.strConst(ptr %t148, { ptr, i64, i64 } %t150) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t151 -endif5937: +endif6180: %t152 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t152, ptr %a153 - store { ptr, i64, i64 } { ptr @.str.3834, i64 4, i64 0 }, ptr %a154 + store { ptr, i64, i64 } { ptr @.str.3962, i64 4, i64 0 }, ptr %a154 %t155 = call i32 @finch_str_eq(ptr %a153, ptr %a154) %t156 = icmp ne i32 %t155, 0 - br i1 %t156, label %then5938, label %endif5940 -then5938: - %t157 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } { ptr @.str.3835, i64 4, i64 0 }, 0 - %t158 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3836, i64 4, i64 0 }) + br i1 %t156, label %then6181, label %endif6183 +then6181: + %t157 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } { ptr @.str.3963, i64 4, i64 0 }, 0 + %t158 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3964, i64 4, i64 0 }) %t159 = insertvalue %S.gen.Val %t157, %S.ast.Type %t158, 1 call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t159 -endif5940: +endif6183: %t160 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t160, ptr %a161 - store { ptr, i64, i64 } { ptr @.str.3837, i64 3, i64 0 }, ptr %a162 + store { ptr, i64, i64 } { ptr @.str.3965, i64 3, i64 0 }, ptr %a162 %t163 = call i32 @finch_str_eq(ptr %a161, ptr %a162) %t164 = icmp ne i32 %t163, 0 - br label %logic.from5941 -logic.from5941: - br i1 %t164, label %logic.end5943, label %logic.rhs5942 -logic.rhs5942: + br label %logic.from6184 +logic.from6184: + br i1 %t164, label %logic.end6186, label %logic.rhs6185 +logic.rhs6185: %t165 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t165, ptr %a166 - store { ptr, i64, i64 } { ptr @.str.3838, i64 6, i64 0 }, ptr %a167 + store { ptr, i64, i64 } { ptr @.str.3966, i64 6, i64 0 }, ptr %a167 %t168 = call i32 @finch_str_eq(ptr %a166, ptr %a167) %t169 = icmp ne i32 %t168, 0 - br label %logic.rend5944 -logic.rend5944: - br label %logic.end5943 -logic.end5943: - %t170 = phi i1 [ true, %logic.from5941 ], [ %t169, %logic.rend5944 ] - br label %logic.from5945 -logic.from5945: - br i1 %t170, label %logic.end5947, label %logic.rhs5946 -logic.rhs5946: + br label %logic.rend6187 +logic.rend6187: + br label %logic.end6186 +logic.end6186: + %t170 = phi i1 [ true, %logic.from6184 ], [ %t169, %logic.rend6187 ] + br label %logic.from6188 +logic.from6188: + br i1 %t170, label %logic.end6190, label %logic.rhs6189 +logic.rhs6189: %t171 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t171, ptr %a172 - store { ptr, i64, i64 } { ptr @.str.3839, i64 5, i64 0 }, ptr %a173 + store { ptr, i64, i64 } { ptr @.str.3967, i64 5, i64 0 }, ptr %a173 %t174 = call i32 @finch_str_eq(ptr %a172, ptr %a173) %t175 = icmp ne i32 %t174, 0 - br label %logic.rend5948 -logic.rend5948: - br label %logic.end5947 -logic.end5947: - %t176 = phi i1 [ true, %logic.from5945 ], [ %t175, %logic.rend5948 ] - br i1 %t176, label %then5949, label %endif5951 -then5949: + br label %logic.rend6191 +logic.rend6191: + br label %logic.end6190 +logic.end6190: + %t176 = phi i1 [ true, %logic.from6188 ], [ %t175, %logic.rend6191 ] + br i1 %t176, label %then6192, label %endif6194 +then6192: %t177 = load ptr, ptr %a1 %t178 = load %S.ast.Node, ptr %a2 %t179 = call %S.gen.Ref @finch.gen.ref(ptr %t177, %S.ast.Node %t178, i1 false) @@ -60597,8 +63048,8 @@ then5949: %t181 = getelementptr inbounds %S.gen.Ref, ptr %a180, i32 0, i32 0 %t182 = load i1, ptr %t181 %t183 = xor i1 %t182, true - br i1 %t183, label %then5952, label %endif5954 -then5952: + br i1 %t183, label %then6195, label %endif6197 +then6195: %t184 = getelementptr inbounds %S.gen.Ref, ptr %a180, i32 0, i32 2 %t185 = load %S.gen.Val, ptr %t184 store %S.gen.Val %t185, ptr %a186 @@ -60607,7 +63058,7 @@ then5952: call void @finch.drop.S_gen_Ref(ptr %a180) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t188 -endif5954: +endif6197: %t189 = load ptr, ptr %a1 %t190 = load ptr, ptr %a1 %t191 = getelementptr inbounds %S.gen.Ref, ptr %a180, i32 0, i32 1 @@ -60631,134 +63082,134 @@ endif5954: call void @finch.drop.S_gen_Ref(ptr %a180) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t207 -endif5951: +endif6194: %t208 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t208, ptr %a209 - store { ptr, i64, i64 } { ptr @.str.3840, i64 5, i64 0 }, ptr %a210 + store { ptr, i64, i64 } { ptr @.str.3968, i64 5, i64 0 }, ptr %a210 %t211 = call i32 @finch_str_eq(ptr %a209, ptr %a210) %t212 = icmp ne i32 %t211, 0 - br i1 %t212, label %then5955, label %endif5957 -then5955: + br i1 %t212, label %then6198, label %endif6200 +then6198: %t213 = load ptr, ptr %a1 %t214 = load %S.ast.Node, ptr %a2 %t215 = call %S.gen.Val @finch.gen.matchGen(ptr %t213, %S.ast.Node %t214, i1 true) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t215 -endif5957: +endif6200: %t216 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t216, ptr %a217 - store { ptr, i64, i64 } { ptr @.str.3841, i64 3, i64 0 }, ptr %a218 + store { ptr, i64, i64 } { ptr @.str.3969, i64 3, i64 0 }, ptr %a218 %t219 = call i32 @finch_str_eq(ptr %a217, ptr %a218) %t220 = icmp ne i32 %t219, 0 - br i1 %t220, label %then5958, label %endif5960 -then5958: + br i1 %t220, label %then6201, label %endif6203 +then6201: %t221 = load ptr, ptr %a1 %t222 = load %S.ast.Node, ptr %a2 %t223 = call %S.gen.Val @finch.gen.tryExpr(ptr %t221, %S.ast.Node %t222) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t223 -endif5960: +endif6203: %t224 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t224, ptr %a225 - store { ptr, i64, i64 } { ptr @.str.3842, i64 2, i64 0 }, ptr %a226 + store { ptr, i64, i64 } { ptr @.str.3970, i64 2, i64 0 }, ptr %a226 %t227 = call i32 @finch_str_eq(ptr %a225, ptr %a226) %t228 = icmp ne i32 %t227, 0 - br i1 %t228, label %then5961, label %endif5963 -then5961: + br i1 %t228, label %then6204, label %endif6206 +then6204: %t229 = load ptr, ptr %a1 %t230 = load %S.ast.Node, ptr %a2 %t231 = call %S.gen.Val @finch.gen.orElse(ptr %t229, %S.ast.Node %t230, i1 false) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t231 -endif5963: +endif6206: %t232 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t232, ptr %a233 - store { ptr, i64, i64 } { ptr @.str.3843, i64 5, i64 0 }, ptr %a234 + store { ptr, i64, i64 } { ptr @.str.3971, i64 5, i64 0 }, ptr %a234 %t235 = call i32 @finch_str_eq(ptr %a233, ptr %a234) %t236 = icmp ne i32 %t235, 0 - br i1 %t236, label %then5964, label %endif5966 -then5964: + br i1 %t236, label %then6207, label %endif6209 +then6207: %t237 = load ptr, ptr %a1 %t238 = load %S.ast.Node, ptr %a2 %t239 = call %S.gen.Val @finch.gen.unary(ptr %t237, %S.ast.Node %t238) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t239 -endif5966: +endif6209: %t240 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t240, ptr %a241 - store { ptr, i64, i64 } { ptr @.str.3844, i64 6, i64 0 }, ptr %a242 + store { ptr, i64, i64 } { ptr @.str.3972, i64 6, i64 0 }, ptr %a242 %t243 = call i32 @finch_str_eq(ptr %a241, ptr %a242) %t244 = icmp ne i32 %t243, 0 - br i1 %t244, label %then5967, label %endif5969 -then5967: + br i1 %t244, label %then6210, label %endif6212 +then6210: %t245 = load ptr, ptr %a1 %t246 = load %S.ast.Node, ptr %a2 %t247 = call %S.gen.Val @finch.gen.binary(ptr %t245, %S.ast.Node %t246) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t247 -endif5969: +endif6212: %t248 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t248, ptr %a249 - store { ptr, i64, i64 } { ptr @.str.3845, i64 4, i64 0 }, ptr %a250 + store { ptr, i64, i64 } { ptr @.str.3973, i64 4, i64 0 }, ptr %a250 %t251 = call i32 @finch_str_eq(ptr %a249, ptr %a250) %t252 = icmp ne i32 %t251, 0 - br i1 %t252, label %then5970, label %endif5972 -then5970: + br i1 %t252, label %then6213, label %endif6215 +then6213: %t253 = load ptr, ptr %a1 %t254 = load %S.ast.Node, ptr %a2 %t255 = call %S.gen.Val @finch.gen.call(ptr %t253, %S.ast.Node %t254) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t255 -endif5972: +endif6215: %t256 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t256, ptr %a257 - store { ptr, i64, i64 } { ptr @.str.3846, i64 6, i64 0 }, ptr %a258 + store { ptr, i64, i64 } { ptr @.str.3974, i64 6, i64 0 }, ptr %a258 %t259 = call i32 @finch_str_eq(ptr %a257, ptr %a258) %t260 = icmp ne i32 %t259, 0 - br i1 %t260, label %then5973, label %endif5975 -then5973: + br i1 %t260, label %then6216, label %endif6218 +then6216: %t261 = load ptr, ptr %a1 %t262 = load %S.ast.Node, ptr %a2 %t263 = call %S.gen.Val @finch.gen.method(ptr %t261, %S.ast.Node %t262) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t263 -endif5975: +endif6218: %t264 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t264, ptr %a265 - store { ptr, i64, i64 } { ptr @.str.3847, i64 5, i64 0 }, ptr %a266 + store { ptr, i64, i64 } { ptr @.str.3975, i64 5, i64 0 }, ptr %a266 %t267 = call i32 @finch_str_eq(ptr %a265, ptr %a266) %t268 = icmp ne i32 %t267, 0 - br i1 %t268, label %then5976, label %endif5978 -then5976: + br i1 %t268, label %then6219, label %endif6221 +then6219: %t269 = load ptr, ptr %a1 %t270 = load %S.ast.Node, ptr %a2 - %t271 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3848, i64 4, i64 0 }) + %t271 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3976, i64 4, i64 0 }) %t272 = call %S.gen.Val @finch.gen.arrayLit(ptr %t269, %S.ast.Node %t270, %S.ast.Type %t271) store %S.ast.Type %t271, ptr %a273 call void @finch.drop.S_ast_Type(ptr %a273) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t272 -endif5978: +endif6221: %t274 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t274, ptr %a275 - store { ptr, i64, i64 } { ptr @.str.3849, i64 3, i64 0 }, ptr %a276 + store { ptr, i64, i64 } { ptr @.str.3977, i64 3, i64 0 }, ptr %a276 %t277 = call i32 @finch_str_eq(ptr %a275, ptr %a276) %t278 = icmp ne i32 %t277, 0 - br i1 %t278, label %then5979, label %endif5981 -then5979: + br i1 %t278, label %then6222, label %endif6224 +then6222: %t279 = load ptr, ptr %a1 %t280 = load %S.ast.Node, ptr %a2 - %t281 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3850, i64 4, i64 0 }) + %t281 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3978, i64 4, i64 0 }) %t282 = call %S.gen.Val @finch.gen.mapLit(ptr %t279, %S.ast.Node %t280, %S.ast.Type %t281) store %S.ast.Type %t281, ptr %a283 call void @finch.drop.S_ast_Type(ptr %a283) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t282 -endif5981: +endif6224: %t284 = load ptr, ptr %a1 %t285 = load %S.ast.Node, ptr %a2 %t286 = load { ptr, i64, i64 }, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.3851, i64 19, i64 0 }, ptr %a288 + store { ptr, i64, i64 } { ptr @.str.3979, i64 19, i64 0 }, ptr %a288 store { ptr, i64, i64 } %t286, ptr %a289 call void @finch_str_concat(ptr %a287, ptr %a288, ptr %a289) %t290 = load { ptr, i64, i64 }, ptr %a287 @@ -60871,11 +63322,11 @@ entry: %t5 = load { ptr, i64, i64 }, ptr %t4 %t6 = extractvalue { ptr, i64, i64 } %t5, 1 %t7 = icmp uge i64 0, %t6 - br i1 %t7, label %range5982, label %inrange5983 -range5982: - call void @finch_panic_index(ptr @.str.3852, i64 3270, i64 0, i64 %t6) + br i1 %t7, label %range6225, label %inrange6226 +range6225: + call void @finch_panic_index(ptr @.str.3980, i64 3408, i64 0, i64 %t6) unreachable -inrange5983: +inrange6226: %t8 = extractvalue { ptr, i64, i64 } %t5, 0 %t9 = getelementptr inbounds %S.ast.Node, ptr %t8, i64 0 %t10 = load %S.ast.Node, ptr %t9 @@ -60884,39 +63335,39 @@ inrange5983: %t13 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t14 = load { ptr, i64, i64 }, ptr %t13 store { ptr, i64, i64 } %t14, ptr %a15 - store { ptr, i64, i64 } { ptr @.str.3853, i64 1, i64 0 }, ptr %a16 + store { ptr, i64, i64 } { ptr @.str.3981, i64 1, i64 0 }, ptr %a16 %t17 = call i32 @finch_str_eq(ptr %a15, ptr %a16) %t18 = icmp ne i32 %t17, 0 - br i1 %t18, label %then5984, label %endif5986 -then5984: + br i1 %t18, label %then6227, label %endif6229 +then6227: %t19 = load ptr, ptr %a1 %t20 = load %S.gen.Val, ptr %a12 - %t21 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3854, i64 4, i64 0 }) + %t21 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3982, i64 4, i64 0 }) %t22 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t23 = load { ptr, i64, i64 }, ptr %t22 %t24 = extractvalue { ptr, i64, i64 } %t23, 1 %t25 = icmp uge i64 0, %t24 - br i1 %t25, label %range5987, label %inrange5988 -range5987: - call void @finch_panic_index(ptr @.str.3855, i64 3272, i64 0, i64 %t24) + br i1 %t25, label %range6230, label %inrange6231 +range6230: + call void @finch_panic_index(ptr @.str.3983, i64 3410, i64 0, i64 %t24) unreachable -inrange5988: +inrange6231: %t26 = extractvalue { ptr, i64, i64 } %t23, 0 %t27 = getelementptr inbounds %S.ast.Node, ptr %t26, i64 0 %t28 = load %S.ast.Node, ptr %t27 - %t29 = call %S.gen.Val @finch.gen.coerce(ptr %t19, %S.gen.Val %t20, %S.ast.Type %t21, %S.ast.Node %t28, { ptr, i64, i64 } { ptr @.str.3856, i64 19, i64 0 }) + %t29 = call %S.gen.Val @finch.gen.coerce(ptr %t19, %S.gen.Val %t20, %S.ast.Type %t21, %S.ast.Node %t28, { ptr, i64, i64 } { ptr @.str.3984, i64 19, i64 0 }) store %S.ast.Type %t21, ptr %a30 call void @finch.drop.S_ast_Type(ptr %a30) store %S.gen.Val %t29, ptr %a31 %t32 = load ptr, ptr %a1 %t33 = getelementptr inbounds %S.gen.Val, ptr %a31, i32 0, i32 0 %t34 = load { ptr, i64, i64 }, ptr %t33 - store { ptr, i64, i64 } { ptr @.str.3857, i64 7, i64 0 }, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.3985, i64 7, i64 0 }, ptr %a36 store { ptr, i64, i64 } %t34, ptr %a37 call void @finch_str_concat(ptr %a35, ptr %a36, ptr %a37) %t38 = load { ptr, i64, i64 }, ptr %a35 store { ptr, i64, i64 } %t38, ptr %a40 - store { ptr, i64, i64 } { ptr @.str.3858, i64 6, i64 0 }, ptr %a41 + store { ptr, i64, i64 } { ptr @.str.3986, i64 6, i64 0 }, ptr %a41 call void @finch_str_concat(ptr %a39, ptr %a40, ptr %a41) store { ptr, i64, i64 } %t38, ptr %a42 call void @finch_str_drop(ptr %a42) @@ -60925,32 +63376,32 @@ inrange5988: store { ptr, i64, i64 } %t43, ptr %a45 call void @finch_str_drop(ptr %a45) %t46 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t44, 0 - %t47 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3859, i64 4, i64 0 }) + %t47 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3987, i64 4, i64 0 }) %t48 = insertvalue %S.gen.Val %t46, %S.ast.Type %t47, 1 call void @finch.drop.S_gen_Val(ptr %a31) call void @finch.drop.S_gen_Val(ptr %a12) ret %S.gen.Val %t48 -endif5986: +endif6229: %t49 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t50 = load { ptr, i64, i64 }, ptr %t49 store { ptr, i64, i64 } %t50, ptr %a51 - store { ptr, i64, i64 } { ptr @.str.3860, i64 1, i64 0 }, ptr %a52 + store { ptr, i64, i64 } { ptr @.str.3988, i64 1, i64 0 }, ptr %a52 %t53 = call i32 @finch_str_eq(ptr %a51, ptr %a52) %t54 = icmp ne i32 %t53, 0 - br i1 %t54, label %then5989, label %endif5991 -then5989: + br i1 %t54, label %then6232, label %endif6234 +then6232: %t55 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 1 %t56 = load %S.ast.Type, ptr %t55 %t57 = call i1 @finch.gen.isInt(%S.ast.Type %t56) %t58 = xor i1 %t57, true - br i1 %t58, label %then5992, label %endif5994 -then5992: + br i1 %t58, label %then6235, label %endif6237 +then6235: %t59 = load ptr, ptr %a1 %t60 = load %S.ast.Node, ptr %a2 %t61 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 1 %t62 = load %S.ast.Type, ptr %t61 %t63 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t62) - store { ptr, i64, i64 } { ptr @.str.3861, i64 45, i64 0 }, ptr %a65 + store { ptr, i64, i64 } { ptr @.str.3989, i64 45, i64 0 }, ptr %a65 store { ptr, i64, i64 } %t63, ptr %a66 call void @finch_str_concat(ptr %a64, ptr %a65, ptr %a66) store { ptr, i64, i64 } %t63, ptr %a67 @@ -60959,21 +63410,21 @@ then5992: call void @finch.gen.fail(ptr %t59, %S.ast.Node %t60, { ptr, i64, i64 } %t68) store { ptr, i64, i64 } %t68, ptr %a69 call void @finch_str_drop(ptr %a69) - br label %endif5994 -endif5994: + br label %endif6237 +endif6237: %t70 = load ptr, ptr %a1 %t71 = load ptr, ptr %a1 %t72 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 1 %t73 = load %S.ast.Type, ptr %t72 %t74 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t71, %S.ast.Type %t73) - store { ptr, i64, i64 } { ptr @.str.3862, i64 4, i64 0 }, ptr %a76 + store { ptr, i64, i64 } { ptr @.str.3990, i64 4, i64 0 }, ptr %a76 store { ptr, i64, i64 } %t74, ptr %a77 call void @finch_str_concat(ptr %a75, ptr %a76, ptr %a77) store { ptr, i64, i64 } %t74, ptr %a78 call void @finch_str_drop(ptr %a78) %t79 = load { ptr, i64, i64 }, ptr %a75 store { ptr, i64, i64 } %t79, ptr %a81 - store { ptr, i64, i64 } { ptr @.str.3863, i64 1, i64 0 }, ptr %a82 + store { ptr, i64, i64 } { ptr @.str.3991, i64 1, i64 0 }, ptr %a82 call void @finch_str_concat(ptr %a80, ptr %a81, ptr %a82) store { ptr, i64, i64 } %t79, ptr %a83 call void @finch_str_drop(ptr %a83) @@ -60987,7 +63438,7 @@ endif5994: call void @finch_str_drop(ptr %a90) %t91 = load { ptr, i64, i64 }, ptr %a87 store { ptr, i64, i64 } %t91, ptr %a93 - store { ptr, i64, i64 } { ptr @.str.3864, i64 4, i64 0 }, ptr %a94 + store { ptr, i64, i64 } { ptr @.str.3992, i64 4, i64 0 }, ptr %a94 call void @finch_str_concat(ptr %a92, ptr %a93, ptr %a94) store { ptr, i64, i64 } %t91, ptr %a95 call void @finch_str_drop(ptr %a95) @@ -61004,19 +63455,19 @@ endif5994: %t105 = insertvalue %S.gen.Val %t99, %S.ast.Type %t104, 1 call void @finch.drop.S_gen_Val(ptr %a12) ret %S.gen.Val %t105 -endif5991: +endif6234: %t106 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 1 %t107 = load %S.ast.Type, ptr %t106 %t108 = call i1 @finch.gen.isUnsigned(%S.ast.Type %t107) - br i1 %t108, label %then5995, label %endif5997 -then5995: + br i1 %t108, label %then6238, label %endif6240 +then6238: %t109 = load ptr, ptr %a1 %t110 = load %S.ast.Node, ptr %a2 %t111 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 1 %t112 = load %S.ast.Type, ptr %t111 %t113 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t112) store { ptr, i64, i64 } %t113, ptr %a115 - store { ptr, i64, i64 } { ptr @.str.3865, i64 34, i64 0 }, ptr %a116 + store { ptr, i64, i64 } { ptr @.str.3993, i64 34, i64 0 }, ptr %a116 call void @finch_str_concat(ptr %a114, ptr %a115, ptr %a116) store { ptr, i64, i64 } %t113, ptr %a117 call void @finch_str_drop(ptr %a117) @@ -61024,32 +63475,32 @@ then5995: call void @finch.gen.fail(ptr %t109, %S.ast.Node %t110, { ptr, i64, i64 } %t118) store { ptr, i64, i64 } %t118, ptr %a119 call void @finch_str_drop(ptr %a119) - br label %endif5997 -endif5997: + br label %endif6240 +endif6240: %t120 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 1 %t121 = load %S.ast.Type, ptr %t120 %t122 = call i1 @finch.gen.isSigned(%S.ast.Type %t121) - br i1 %t122, label %then5998, label %endif6000 -then5998: + br i1 %t122, label %then6241, label %endif6243 +then6241: %t123 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 3 %t124 = load i1, ptr %t123 - br i1 %t124, label %then6001, label %endif6003 -then6001: + br i1 %t124, label %then6244, label %endif6246 +then6244: %t125 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 0 %t126 = load { ptr, i64, i64 }, ptr %t125 store { ptr, i64, i64 } %t126, ptr %a127 - store { ptr, i64, i64 } { ptr @.str.3867, i64 1, i64 0 }, ptr %a129 + store { ptr, i64, i64 } { ptr @.str.3995, i64 1, i64 0 }, ptr %a129 %t130 = call i32 @finch_str_starts(ptr %a127, ptr %a129) %t131 = icmp ne i32 %t130, 0 - br i1 %t131, label %then6004, label %endif6006 -then6004: + br i1 %t131, label %then6247, label %endif6249 +then6247: %t132 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 0 %t133 = load { ptr, i64, i64 }, ptr %t132 store { ptr, i64, i64 } %t133, ptr %a134 %t136 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 0 %t137 = getelementptr inbounds { ptr, i64, i64 }, ptr %t136, i32 0, i32 1 %t138 = load i64, ptr %t137 - call void @finch_str_sub(ptr %a135, ptr %a134, i64 1, i64 %t138, ptr @.str.3868, i64 3287) + call void @finch_str_sub(ptr %a135, ptr %a134, i64 1, i64 %t138, ptr @.str.3996, i64 3425) %t139 = load { ptr, i64, i64 }, ptr %a135 %t140 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t139, 0 %t141 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 1 @@ -61061,10 +63512,10 @@ then6004: %t147 = insertvalue %S.gen.Val %t146, i1 true, 3 call void @finch.drop.S_gen_Val(ptr %a12) ret %S.gen.Val %t147 -endif6006: +endif6249: %t148 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 0 %t149 = load { ptr, i64, i64 }, ptr %t148 - store { ptr, i64, i64 } { ptr @.str.3869, i64 1, i64 0 }, ptr %a151 + store { ptr, i64, i64 } { ptr @.str.3997, i64 1, i64 0 }, ptr %a151 store { ptr, i64, i64 } %t149, ptr %a152 call void @finch_str_concat(ptr %a150, ptr %a151, ptr %a152) %t153 = load { ptr, i64, i64 }, ptr %a150 @@ -61078,20 +63529,20 @@ endif6006: %t161 = insertvalue %S.gen.Val %t160, i1 true, 3 call void @finch.drop.S_gen_Val(ptr %a12) ret %S.gen.Val %t161 -endif6003: +endif6246: %t162 = load ptr, ptr %a1 %t163 = load ptr, ptr %a1 %t164 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 1 %t165 = load %S.ast.Type, ptr %t164 %t166 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t163, %S.ast.Type %t165) - store { ptr, i64, i64 } { ptr @.str.3870, i64 4, i64 0 }, ptr %a168 + store { ptr, i64, i64 } { ptr @.str.3998, i64 4, i64 0 }, ptr %a168 store { ptr, i64, i64 } %t166, ptr %a169 call void @finch_str_concat(ptr %a167, ptr %a168, ptr %a169) store { ptr, i64, i64 } %t166, ptr %a170 call void @finch_str_drop(ptr %a170) %t171 = load { ptr, i64, i64 }, ptr %a167 store { ptr, i64, i64 } %t171, ptr %a173 - store { ptr, i64, i64 } { ptr @.str.3871, i64 4, i64 0 }, ptr %a174 + store { ptr, i64, i64 } { ptr @.str.3999, i64 4, i64 0 }, ptr %a174 call void @finch_str_concat(ptr %a172, ptr %a173, ptr %a174) store { ptr, i64, i64 } %t171, ptr %a175 call void @finch_str_drop(ptr %a175) @@ -61116,25 +63567,25 @@ endif6003: %t192 = insertvalue %S.gen.Val %t186, %S.ast.Type %t191, 1 call void @finch.drop.S_gen_Val(ptr %a12) ret %S.gen.Val %t192 -endif6000: +endif6243: %t193 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 1 %t194 = load %S.ast.Type, ptr %t193 %t195 = call i1 @finch.gen.isFloat(%S.ast.Type %t194) - br i1 %t195, label %then6007, label %endif6009 -then6007: + br i1 %t195, label %then6250, label %endif6252 +then6250: %t196 = load ptr, ptr %a1 %t197 = load ptr, ptr %a1 %t198 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 1 %t199 = load %S.ast.Type, ptr %t198 %t200 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t197, %S.ast.Type %t199) - store { ptr, i64, i64 } { ptr @.str.3872, i64 5, i64 0 }, ptr %a202 + store { ptr, i64, i64 } { ptr @.str.4000, i64 5, i64 0 }, ptr %a202 store { ptr, i64, i64 } %t200, ptr %a203 call void @finch_str_concat(ptr %a201, ptr %a202, ptr %a203) store { ptr, i64, i64 } %t200, ptr %a204 call void @finch_str_drop(ptr %a204) %t205 = load { ptr, i64, i64 }, ptr %a201 store { ptr, i64, i64 } %t205, ptr %a207 - store { ptr, i64, i64 } { ptr @.str.3873, i64 1, i64 0 }, ptr %a208 + store { ptr, i64, i64 } { ptr @.str.4001, i64 1, i64 0 }, ptr %a208 call void @finch_str_concat(ptr %a206, ptr %a207, ptr %a208) store { ptr, i64, i64 } %t205, ptr %a209 call void @finch_str_drop(ptr %a209) @@ -61159,13 +63610,13 @@ then6007: %t226 = insertvalue %S.gen.Val %t220, %S.ast.Type %t225, 1 call void @finch.drop.S_gen_Val(ptr %a12) ret %S.gen.Val %t226 -endif6009: +endif6252: %t227 = load ptr, ptr %a1 %t228 = load %S.ast.Node, ptr %a2 %t229 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 1 %t230 = load %S.ast.Type, ptr %t229 %t231 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t230) - store { ptr, i64, i64 } { ptr @.str.3874, i64 26, i64 0 }, ptr %a233 + store { ptr, i64, i64 } { ptr @.str.4002, i64 26, i64 0 }, ptr %a233 store { ptr, i64, i64 } %t231, ptr %a234 call void @finch_str_concat(ptr %a232, ptr %a233, ptr %a234) store { ptr, i64, i64 } %t231, ptr %a235 @@ -61265,12 +63716,12 @@ entry: store %S.gen.Val %p3, ptr %a4 store %S.ast.Node %p4, ptr %a5 %t6 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.3875, i64 11, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.4003, i64 11, i64 0 }, ptr %a8 store { ptr, i64, i64 } %t6, ptr %a9 call void @finch_str_concat(ptr %a7, ptr %a8, ptr %a9) %t10 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t10, ptr %a12 - store { ptr, i64, i64 } { ptr @.str.3876, i64 5, i64 0 }, ptr %a13 + store { ptr, i64, i64 } { ptr @.str.4004, i64 5, i64 0 }, ptr %a13 call void @finch_str_concat(ptr %a11, ptr %a12, ptr %a13) store { ptr, i64, i64 } %t10, ptr %a14 call void @finch_str_drop(ptr %a14) @@ -61293,11 +63744,11 @@ entry: %t29 = load %S.ast.Type, ptr %t28 %t30 = call i1 @finch.ast.same(%S.ast.Type %t27, %S.ast.Type %t29) %t31 = xor i1 %t30, true - br i1 %t31, label %then6010, label %endif6012 -then6010: + br i1 %t31, label %then6253, label %endif6255 +then6253: %t32 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t32, ptr %a34 - store { ptr, i64, i64 } { ptr @.str.3877, i64 5, i64 0 }, ptr %a35 + store { ptr, i64, i64 } { ptr @.str.4005, i64 5, i64 0 }, ptr %a35 call void @finch_str_concat(ptr %a33, ptr %a34, ptr %a35) %t36 = load { ptr, i64, i64 }, ptr %a33 %t37 = getelementptr inbounds %S.gen.Val, ptr %a4, i32 0, i32 1 @@ -61315,266 +63766,266 @@ then6010: store { ptr, i64, i64 } %t45, ptr %a25 store { ptr, i64, i64 } %t46, ptr %a47 call void @finch_str_drop(ptr %a47) - br label %endif6012 -endif6012: + br label %endif6255 +endif6255: %t48 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t48, ptr %a49 - store { ptr, i64, i64 } { ptr @.str.3878, i64 1, i64 0 }, ptr %a50 + store { ptr, i64, i64 } { ptr @.str.4006, i64 1, i64 0 }, ptr %a50 %t51 = call i32 @finch_str_eq(ptr %a49, ptr %a50) %t52 = icmp ne i32 %t51, 0 - br label %logic.from6013 -logic.from6013: - br i1 %t52, label %logic.rhs6014, label %logic.end6015 -logic.rhs6014: + br label %logic.from6256 +logic.from6256: + br i1 %t52, label %logic.rhs6257, label %logic.end6258 +logic.rhs6257: %t53 = getelementptr inbounds %S.gen.Val, ptr %a3, i32 0, i32 1 %t54 = getelementptr inbounds %S.ast.Type, ptr %t53, i32 0, i32 0 %t55 = load { ptr, i64, i64 }, ptr %t54 store { ptr, i64, i64 } %t55, ptr %a56 - store { ptr, i64, i64 } { ptr @.str.3879, i64 3, i64 0 }, ptr %a57 + store { ptr, i64, i64 } { ptr @.str.4007, i64 3, i64 0 }, ptr %a57 %t58 = call i32 @finch_str_eq(ptr %a56, ptr %a57) %t59 = icmp ne i32 %t58, 0 - br label %logic.from6016 -logic.from6016: - br i1 %t59, label %logic.end6018, label %logic.rhs6017 -logic.rhs6017: + br label %logic.from6259 +logic.from6259: + br i1 %t59, label %logic.end6261, label %logic.rhs6260 +logic.rhs6260: %t60 = getelementptr inbounds %S.gen.Val, ptr %a4, i32 0, i32 1 %t61 = getelementptr inbounds %S.ast.Type, ptr %t60, i32 0, i32 0 %t62 = load { ptr, i64, i64 }, ptr %t61 store { ptr, i64, i64 } %t62, ptr %a63 - store { ptr, i64, i64 } { ptr @.str.3880, i64 3, i64 0 }, ptr %a64 + store { ptr, i64, i64 } { ptr @.str.4008, i64 3, i64 0 }, ptr %a64 %t65 = call i32 @finch_str_eq(ptr %a63, ptr %a64) %t66 = icmp ne i32 %t65, 0 - br label %logic.rend6019 -logic.rend6019: - br label %logic.end6018 -logic.end6018: - %t67 = phi i1 [ true, %logic.from6016 ], [ %t66, %logic.rend6019 ] - br label %logic.rend6020 -logic.rend6020: - br label %logic.end6015 -logic.end6015: - %t68 = phi i1 [ false, %logic.from6013 ], [ %t67, %logic.rend6020 ] - br i1 %t68, label %then6021, label %endif6023 -then6021: + br label %logic.rend6262 +logic.rend6262: + br label %logic.end6261 +logic.end6261: + %t67 = phi i1 [ true, %logic.from6259 ], [ %t66, %logic.rend6262 ] + br label %logic.rend6263 +logic.rend6263: + br label %logic.end6258 +logic.end6258: + %t68 = phi i1 [ false, %logic.from6256 ], [ %t67, %logic.rend6263 ] + br i1 %t68, label %then6264, label %endif6266 +then6264: %t69 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t69, ptr %a71 - store { ptr, i64, i64 } { ptr @.str.3881, i64 48, i64 0 }, ptr %a72 + store { ptr, i64, i64 } { ptr @.str.4009, i64 48, i64 0 }, ptr %a72 call void @finch_str_concat(ptr %a70, ptr %a71, ptr %a72) %t73 = load { ptr, i64, i64 }, ptr %a70 %t74 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t73, ptr %a25 store { ptr, i64, i64 } %t74, ptr %a75 call void @finch_str_drop(ptr %a75) - br label %endif6023 -endif6023: + br label %endif6266 +endif6266: %t76 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t76, ptr %a77 - store { ptr, i64, i64 } { ptr @.str.3882, i64 1, i64 0 }, ptr %a78 + store { ptr, i64, i64 } { ptr @.str.4010, i64 1, i64 0 }, ptr %a78 %t79 = call i32 @finch_str_eq(ptr %a77, ptr %a78) %t80 = icmp ne i32 %t79, 0 - br label %logic.from6024 -logic.from6024: - br i1 %t80, label %logic.end6026, label %logic.rhs6025 -logic.rhs6025: + br label %logic.from6267 +logic.from6267: + br i1 %t80, label %logic.end6269, label %logic.rhs6268 +logic.rhs6268: %t81 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t81, ptr %a82 - store { ptr, i64, i64 } { ptr @.str.3883, i64 1, i64 0 }, ptr %a83 + store { ptr, i64, i64 } { ptr @.str.4011, i64 1, i64 0 }, ptr %a83 %t84 = call i32 @finch_str_eq(ptr %a82, ptr %a83) %t85 = icmp ne i32 %t84, 0 - br label %logic.rend6027 -logic.rend6027: - br label %logic.end6026 -logic.end6026: - %t86 = phi i1 [ true, %logic.from6024 ], [ %t85, %logic.rend6027 ] - br label %logic.from6028 -logic.from6028: - br i1 %t86, label %logic.rhs6029, label %logic.end6030 -logic.rhs6029: + br label %logic.rend6270 +logic.rend6270: + br label %logic.end6269 +logic.end6269: + %t86 = phi i1 [ true, %logic.from6267 ], [ %t85, %logic.rend6270 ] + br label %logic.from6271 +logic.from6271: + br i1 %t86, label %logic.rhs6272, label %logic.end6273 +logic.rhs6272: %t87 = getelementptr inbounds %S.gen.Val, ptr %a3, i32 0, i32 1 %t88 = getelementptr inbounds %S.ast.Type, ptr %t87, i32 0, i32 0 %t89 = load { ptr, i64, i64 }, ptr %t88 store { ptr, i64, i64 } %t89, ptr %a90 - store { ptr, i64, i64 } { ptr @.str.3884, i64 4, i64 0 }, ptr %a91 + store { ptr, i64, i64 } { ptr @.str.4012, i64 4, i64 0 }, ptr %a91 %t92 = call i32 @finch_str_eq(ptr %a90, ptr %a91) %t93 = icmp ne i32 %t92, 0 - br label %logic.rend6031 -logic.rend6031: - br label %logic.end6030 -logic.end6030: - %t94 = phi i1 [ false, %logic.from6028 ], [ %t93, %logic.rend6031 ] - br i1 %t94, label %then6032, label %else6033 -then6032: + br label %logic.rend6274 +logic.rend6274: + br label %logic.end6273 +logic.end6273: + %t94 = phi i1 [ false, %logic.from6271 ], [ %t93, %logic.rend6274 ] + br i1 %t94, label %then6275, label %else6276 +then6275: %t95 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t95, ptr %a96 - store { ptr, i64, i64 } { ptr @.str.3885, i64 1, i64 0 }, ptr %a97 + store { ptr, i64, i64 } { ptr @.str.4013, i64 1, i64 0 }, ptr %a97 %t98 = call i32 @finch_str_eq(ptr %a96, ptr %a97) %t99 = icmp ne i32 %t98, 0 - br i1 %t99, label %then6035, label %else6036 -then6035: + br i1 %t99, label %then6278, label %else6279 +then6278: %t100 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t100, ptr %a102 - store { ptr, i64, i64 } { ptr @.str.3886, i64 26, i64 0 }, ptr %a103 + store { ptr, i64, i64 } { ptr @.str.4014, i64 26, i64 0 }, ptr %a103 call void @finch_str_concat(ptr %a101, ptr %a102, ptr %a103) %t104 = load { ptr, i64, i64 }, ptr %a101 %t105 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t104, ptr %a25 store { ptr, i64, i64 } %t105, ptr %a106 call void @finch_str_drop(ptr %a106) - br label %endif6037 -else6036: + br label %endif6280 +else6279: %t107 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t107, ptr %a109 - store { ptr, i64, i64 } { ptr @.str.3887, i64 26, i64 0 }, ptr %a110 + store { ptr, i64, i64 } { ptr @.str.4015, i64 26, i64 0 }, ptr %a110 call void @finch_str_concat(ptr %a108, ptr %a109, ptr %a110) %t111 = load { ptr, i64, i64 }, ptr %a108 %t112 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t111, ptr %a25 store { ptr, i64, i64 } %t112, ptr %a113 call void @finch_str_drop(ptr %a113) - br label %endif6037 -endif6037: - br label %endif6034 -else6033: + br label %endif6280 +endif6280: + br label %endif6277 +else6276: %t114 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t114, ptr %a115 - store { ptr, i64, i64 } { ptr @.str.3888, i64 1, i64 0 }, ptr %a116 + store { ptr, i64, i64 } { ptr @.str.4016, i64 1, i64 0 }, ptr %a116 %t117 = call i32 @finch_str_eq(ptr %a115, ptr %a116) %t118 = icmp ne i32 %t117, 0 - br label %logic.from6038 -logic.from6038: - br i1 %t118, label %logic.end6040, label %logic.rhs6039 -logic.rhs6039: + br label %logic.from6281 +logic.from6281: + br i1 %t118, label %logic.end6283, label %logic.rhs6282 +logic.rhs6282: %t119 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t119, ptr %a120 - store { ptr, i64, i64 } { ptr @.str.3889, i64 1, i64 0 }, ptr %a121 + store { ptr, i64, i64 } { ptr @.str.4017, i64 1, i64 0 }, ptr %a121 %t122 = call i32 @finch_str_eq(ptr %a120, ptr %a121) %t123 = icmp ne i32 %t122, 0 - br label %logic.rend6041 -logic.rend6041: - br label %logic.end6040 -logic.end6040: - %t124 = phi i1 [ true, %logic.from6038 ], [ %t123, %logic.rend6041 ] - br label %logic.from6042 -logic.from6042: - br i1 %t124, label %logic.end6044, label %logic.rhs6043 -logic.rhs6043: + br label %logic.rend6284 +logic.rend6284: + br label %logic.end6283 +logic.end6283: + %t124 = phi i1 [ true, %logic.from6281 ], [ %t123, %logic.rend6284 ] + br label %logic.from6285 +logic.from6285: + br i1 %t124, label %logic.end6287, label %logic.rhs6286 +logic.rhs6286: %t125 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t125, ptr %a126 - store { ptr, i64, i64 } { ptr @.str.3890, i64 1, i64 0 }, ptr %a127 + store { ptr, i64, i64 } { ptr @.str.4018, i64 1, i64 0 }, ptr %a127 %t128 = call i32 @finch_str_eq(ptr %a126, ptr %a127) %t129 = icmp ne i32 %t128, 0 - br label %logic.rend6045 -logic.rend6045: - br label %logic.end6044 -logic.end6044: - %t130 = phi i1 [ true, %logic.from6042 ], [ %t129, %logic.rend6045 ] - br label %logic.from6046 -logic.from6046: - br i1 %t130, label %logic.end6048, label %logic.rhs6047 -logic.rhs6047: + br label %logic.rend6288 +logic.rend6288: + br label %logic.end6287 +logic.end6287: + %t130 = phi i1 [ true, %logic.from6285 ], [ %t129, %logic.rend6288 ] + br label %logic.from6289 +logic.from6289: + br i1 %t130, label %logic.end6291, label %logic.rhs6290 +logic.rhs6290: %t131 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t131, ptr %a132 - store { ptr, i64, i64 } { ptr @.str.3891, i64 2, i64 0 }, ptr %a133 + store { ptr, i64, i64 } { ptr @.str.4019, i64 2, i64 0 }, ptr %a133 %t134 = call i32 @finch_str_eq(ptr %a132, ptr %a133) %t135 = icmp ne i32 %t134, 0 - br label %logic.rend6049 -logic.rend6049: - br label %logic.end6048 -logic.end6048: - %t136 = phi i1 [ true, %logic.from6046 ], [ %t135, %logic.rend6049 ] - br label %logic.from6050 -logic.from6050: - br i1 %t136, label %logic.end6052, label %logic.rhs6051 -logic.rhs6051: + br label %logic.rend6292 +logic.rend6292: + br label %logic.end6291 +logic.end6291: + %t136 = phi i1 [ true, %logic.from6289 ], [ %t135, %logic.rend6292 ] + br label %logic.from6293 +logic.from6293: + br i1 %t136, label %logic.end6295, label %logic.rhs6294 +logic.rhs6294: %t137 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t137, ptr %a138 - store { ptr, i64, i64 } { ptr @.str.3892, i64 2, i64 0 }, ptr %a139 + store { ptr, i64, i64 } { ptr @.str.4020, i64 2, i64 0 }, ptr %a139 %t140 = call i32 @finch_str_eq(ptr %a138, ptr %a139) %t141 = icmp ne i32 %t140, 0 - br label %logic.rend6053 -logic.rend6053: - br label %logic.end6052 -logic.end6052: - %t142 = phi i1 [ true, %logic.from6050 ], [ %t141, %logic.rend6053 ] - br i1 %t142, label %then6054, label %endif6056 -then6054: + br label %logic.rend6296 +logic.rend6296: + br label %logic.end6295 +logic.end6295: + %t142 = phi i1 [ true, %logic.from6293 ], [ %t141, %logic.rend6296 ] + br i1 %t142, label %then6297, label %endif6299 +then6297: %t143 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t143, ptr %a145 - store { ptr, i64, i64 } { ptr @.str.3893, i64 43, i64 0 }, ptr %a146 + store { ptr, i64, i64 } { ptr @.str.4021, i64 43, i64 0 }, ptr %a146 call void @finch_str_concat(ptr %a144, ptr %a145, ptr %a146) %t147 = load { ptr, i64, i64 }, ptr %a144 %t148 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t147, ptr %a25 store { ptr, i64, i64 } %t148, ptr %a149 call void @finch_str_drop(ptr %a149) - br label %endif6056 -endif6056: - br label %endif6034 -endif6034: + br label %endif6299 +endif6299: + br label %endif6277 +endif6277: %t150 = getelementptr inbounds %S.gen.Val, ptr %a3, i32 0, i32 1 %t151 = getelementptr inbounds %S.ast.Type, ptr %t150, i32 0, i32 0 %t152 = load { ptr, i64, i64 }, ptr %t151 store { ptr, i64, i64 } %t152, ptr %a153 - store { ptr, i64, i64 } { ptr @.str.3894, i64 6, i64 0 }, ptr %a154 + store { ptr, i64, i64 } { ptr @.str.4022, i64 6, i64 0 }, ptr %a154 %t155 = call i32 @finch_str_eq(ptr %a153, ptr %a154) %t156 = icmp ne i32 %t155, 0 - br label %logic.from6057 -logic.from6057: - br i1 %t156, label %logic.end6059, label %logic.rhs6058 -logic.rhs6058: + br label %logic.from6300 +logic.from6300: + br i1 %t156, label %logic.end6302, label %logic.rhs6301 +logic.rhs6301: %t157 = getelementptr inbounds %S.gen.Val, ptr %a3, i32 0, i32 1 %t158 = getelementptr inbounds %S.ast.Type, ptr %t157, i32 0, i32 0 %t159 = load { ptr, i64, i64 }, ptr %t158 store { ptr, i64, i64 } %t159, ptr %a160 - store { ptr, i64, i64 } { ptr @.str.3895, i64 5, i64 0 }, ptr %a161 + store { ptr, i64, i64 } { ptr @.str.4023, i64 5, i64 0 }, ptr %a161 %t162 = call i32 @finch_str_eq(ptr %a160, ptr %a161) %t163 = icmp ne i32 %t162, 0 - br label %logic.rend6060 -logic.rend6060: - br label %logic.end6059 -logic.end6059: - %t164 = phi i1 [ true, %logic.from6057 ], [ %t163, %logic.rend6060 ] - br label %logic.from6061 -logic.from6061: - br i1 %t164, label %logic.rhs6062, label %logic.end6063 -logic.rhs6062: + br label %logic.rend6303 +logic.rend6303: + br label %logic.end6302 +logic.end6302: + %t164 = phi i1 [ true, %logic.from6300 ], [ %t163, %logic.rend6303 ] + br label %logic.from6304 +logic.from6304: + br i1 %t164, label %logic.rhs6305, label %logic.end6306 +logic.rhs6305: %t165 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t165, ptr %a166 - store { ptr, i64, i64 } { ptr @.str.3896, i64 2, i64 0 }, ptr %a167 + store { ptr, i64, i64 } { ptr @.str.4024, i64 2, i64 0 }, ptr %a167 %t168 = call i32 @finch_str_eq(ptr %a166, ptr %a167) %t169 = icmp ne i32 %t168, 0 - br label %logic.from6064 -logic.from6064: - br i1 %t169, label %logic.end6066, label %logic.rhs6065 -logic.rhs6065: + br label %logic.from6307 +logic.from6307: + br i1 %t169, label %logic.end6309, label %logic.rhs6308 +logic.rhs6308: %t170 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t170, ptr %a171 - store { ptr, i64, i64 } { ptr @.str.3897, i64 2, i64 0 }, ptr %a172 + store { ptr, i64, i64 } { ptr @.str.4025, i64 2, i64 0 }, ptr %a172 %t173 = call i32 @finch_str_eq(ptr %a171, ptr %a172) %t174 = icmp ne i32 %t173, 0 - br label %logic.rend6067 -logic.rend6067: - br label %logic.end6066 -logic.end6066: - %t175 = phi i1 [ true, %logic.from6064 ], [ %t174, %logic.rend6067 ] - br label %logic.rend6068 -logic.rend6068: - br label %logic.end6063 -logic.end6063: - %t176 = phi i1 [ false, %logic.from6061 ], [ %t175, %logic.rend6068 ] - br i1 %t176, label %then6069, label %endif6071 -then6069: + br label %logic.rend6310 +logic.rend6310: + br label %logic.end6309 +logic.end6309: + %t175 = phi i1 [ true, %logic.from6307 ], [ %t174, %logic.rend6310 ] + br label %logic.rend6311 +logic.rend6311: + br label %logic.end6306 +logic.end6306: + %t176 = phi i1 [ false, %logic.from6304 ], [ %t175, %logic.rend6311 ] + br i1 %t176, label %then6312, label %endif6314 +then6312: %t177 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t177, ptr %a179 - store { ptr, i64, i64 } { ptr @.str.3898, i64 31, i64 0 }, ptr %a180 + store { ptr, i64, i64 } { ptr @.str.4026, i64 31, i64 0 }, ptr %a180 call void @finch_str_concat(ptr %a178, ptr %a179, ptr %a180) %t181 = load { ptr, i64, i64 }, ptr %a178 %t182 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t181, ptr %a25 store { ptr, i64, i64 } %t182, ptr %a183 call void @finch_str_drop(ptr %a183) - br label %endif6071 -endif6071: + br label %endif6314 +endif6314: %t184 = load ptr, ptr %a1 %t185 = load %S.ast.Node, ptr %a5 %t186 = load { ptr, i64, i64 }, ptr %a25 @@ -61621,132 +64072,132 @@ entry: store ptr %p2, ptr %a3 %t4 = load ptr, ptr %a2 %t5 = icmp eq ptr %t4, null - br i1 %t5, label %panic6072, label %ok6073 -panic6072: - call void @finch_panic(ptr @.str.3899, i64 3324, ptr @.str.3900) + br i1 %t5, label %panic6315, label %ok6316 +panic6315: + call void @finch_panic(ptr @.str.4027, i64 3462, ptr @.str.4028) unreachable -ok6073: +ok6316: %t6 = getelementptr inbounds %S.gen.Val, ptr %t4, i32 0, i32 1 %t7 = load %S.ast.Type, ptr %t6 %t8 = load ptr, ptr %a3 %t9 = icmp eq ptr %t8, null - br i1 %t9, label %panic6074, label %ok6075 -panic6074: - call void @finch_panic(ptr @.str.3901, i64 3324, ptr @.str.3902) + br i1 %t9, label %panic6317, label %ok6318 +panic6317: + call void @finch_panic(ptr @.str.4029, i64 3462, ptr @.str.4030) unreachable -ok6075: +ok6318: %t10 = getelementptr inbounds %S.gen.Val, ptr %t8, i32 0, i32 1 %t11 = load %S.ast.Type, ptr %t10 %t12 = call i1 @finch.ast.same(%S.ast.Type %t7, %S.ast.Type %t11) - br i1 %t12, label %then6076, label %endif6078 -then6076: + br i1 %t12, label %then6319, label %endif6321 +then6319: ret i1 true -endif6078: +endif6321: %t13 = load ptr, ptr %a2 %t14 = icmp eq ptr %t13, null - br i1 %t14, label %panic6079, label %ok6080 -panic6079: - call void @finch_panic(ptr @.str.3903, i64 3327, ptr @.str.3904) + br i1 %t14, label %panic6322, label %ok6323 +panic6322: + call void @finch_panic(ptr @.str.4031, i64 3465, ptr @.str.4032) unreachable -ok6080: +ok6323: %t15 = getelementptr inbounds %S.gen.Val, ptr %t13, i32 0, i32 1 %t16 = load %S.ast.Type, ptr %t15 %t17 = call i1 @finch.gen.isInt(%S.ast.Type %t16) - br label %logic.from6081 -logic.from6081: - br i1 %t17, label %logic.rhs6082, label %logic.end6083 -logic.rhs6082: + br label %logic.from6324 +logic.from6324: + br i1 %t17, label %logic.rhs6325, label %logic.end6326 +logic.rhs6325: %t18 = load ptr, ptr %a3 %t19 = icmp eq ptr %t18, null - br i1 %t19, label %panic6084, label %ok6085 -panic6084: - call void @finch_panic(ptr @.str.3905, i64 3327, ptr @.str.3906) + br i1 %t19, label %panic6327, label %ok6328 +panic6327: + call void @finch_panic(ptr @.str.4033, i64 3465, ptr @.str.4034) unreachable -ok6085: +ok6328: %t20 = getelementptr inbounds %S.gen.Val, ptr %t18, i32 0, i32 1 %t21 = load %S.ast.Type, ptr %t20 %t22 = call i1 @finch.gen.isInt(%S.ast.Type %t21) - br label %logic.rend6086 -logic.rend6086: - br label %logic.end6083 -logic.end6083: - %t23 = phi i1 [ false, %logic.from6081 ], [ %t22, %logic.rend6086 ] - br i1 %t23, label %then6087, label %endif6089 -then6087: + br label %logic.rend6329 +logic.rend6329: + br label %logic.end6326 +logic.end6326: + %t23 = phi i1 [ false, %logic.from6324 ], [ %t22, %logic.rend6329 ] + br i1 %t23, label %then6330, label %endif6332 +then6330: %t24 = load ptr, ptr %a2 %t25 = icmp eq ptr %t24, null - br i1 %t25, label %panic6090, label %ok6091 -panic6090: - call void @finch_panic(ptr @.str.3907, i64 3330, ptr @.str.3908) + br i1 %t25, label %panic6333, label %ok6334 +panic6333: + call void @finch_panic(ptr @.str.4035, i64 3468, ptr @.str.4036) unreachable -ok6091: +ok6334: %t26 = getelementptr inbounds %S.gen.Val, ptr %t24, i32 0, i32 3 %t27 = load i1, ptr %t26 - br label %logic.from6092 -logic.from6092: - br i1 %t27, label %logic.rhs6093, label %logic.end6094 -logic.rhs6093: + br label %logic.from6335 +logic.from6335: + br i1 %t27, label %logic.rhs6336, label %logic.end6337 +logic.rhs6336: %t28 = load ptr, ptr %a3 %t29 = icmp eq ptr %t28, null - br i1 %t29, label %panic6095, label %ok6096 -panic6095: - call void @finch_panic(ptr @.str.3909, i64 3330, ptr @.str.3910) + br i1 %t29, label %panic6338, label %ok6339 +panic6338: + call void @finch_panic(ptr @.str.4037, i64 3468, ptr @.str.4038) unreachable -ok6096: +ok6339: %t30 = getelementptr inbounds %S.gen.Val, ptr %t28, i32 0, i32 3 %t31 = load i1, ptr %t30 %t32 = xor i1 %t31, true - br label %logic.rend6097 -logic.rend6097: - br label %logic.end6094 -logic.end6094: - %t33 = phi i1 [ false, %logic.from6092 ], [ %t32, %logic.rend6097 ] - br label %logic.from6098 -logic.from6098: - br i1 %t33, label %logic.rhs6099, label %logic.end6100 -logic.rhs6099: + br label %logic.rend6340 +logic.rend6340: + br label %logic.end6337 +logic.end6337: + %t33 = phi i1 [ false, %logic.from6335 ], [ %t32, %logic.rend6340 ] + br label %logic.from6341 +logic.from6341: + br i1 %t33, label %logic.rhs6342, label %logic.end6343 +logic.rhs6342: %t34 = load ptr, ptr %a2 %t35 = icmp eq ptr %t34, null - br i1 %t35, label %panic6101, label %ok6102 -panic6101: - call void @finch_panic(ptr @.str.3911, i64 3330, ptr @.str.3912) + br i1 %t35, label %panic6344, label %ok6345 +panic6344: + call void @finch_panic(ptr @.str.4039, i64 3468, ptr @.str.4040) unreachable -ok6102: +ok6345: %t36 = getelementptr inbounds %S.gen.Val, ptr %t34, i32 0, i32 0 %t37 = load { ptr, i64, i64 }, ptr %t36 %t38 = load ptr, ptr %a2 %t39 = icmp eq ptr %t38, null - br i1 %t39, label %panic6103, label %ok6104 -panic6103: - call void @finch_panic(ptr @.str.3913, i64 3330, ptr @.str.3914) + br i1 %t39, label %panic6346, label %ok6347 +panic6346: + call void @finch_panic(ptr @.str.4041, i64 3468, ptr @.str.4042) unreachable -ok6104: +ok6347: %t40 = getelementptr inbounds %S.gen.Val, ptr %t38, i32 0, i32 1 %t41 = load %S.ast.Type, ptr %t40 %t42 = load ptr, ptr %a3 %t43 = icmp eq ptr %t42, null - br i1 %t43, label %panic6105, label %ok6106 -panic6105: - call void @finch_panic(ptr @.str.3915, i64 3330, ptr @.str.3916) + br i1 %t43, label %panic6348, label %ok6349 +panic6348: + call void @finch_panic(ptr @.str.4043, i64 3468, ptr @.str.4044) unreachable -ok6106: +ok6349: %t44 = getelementptr inbounds %S.gen.Val, ptr %t42, i32 0, i32 1 %t45 = load %S.ast.Type, ptr %t44 %t46 = call i1 @finch.gen.fits({ ptr, i64, i64 } %t37, %S.ast.Type %t41, %S.ast.Type %t45) - br label %logic.rend6107 -logic.rend6107: - br label %logic.end6100 -logic.end6100: - %t47 = phi i1 [ false, %logic.from6098 ], [ %t46, %logic.rend6107 ] - br i1 %t47, label %then6108, label %endif6110 -then6108: + br label %logic.rend6350 +logic.rend6350: + br label %logic.end6343 +logic.end6343: + %t47 = phi i1 [ false, %logic.from6341 ], [ %t46, %logic.rend6350 ] + br i1 %t47, label %then6351, label %endif6353 +then6351: %t48 = load ptr, ptr %a2 %t49 = icmp eq ptr %t48, null - br i1 %t49, label %panic6111, label %ok6112 -panic6111: - call void @finch_panic(ptr @.str.3917, i64 3331, ptr @.str.3918) + br i1 %t49, label %panic6354, label %ok6355 +panic6354: + call void @finch_panic(ptr @.str.4045, i64 3469, ptr @.str.4046) unreachable -ok6112: +ok6355: %t50 = getelementptr inbounds %S.gen.Val, ptr %t48, i32 0, i32 0 %t51 = load { ptr, i64, i64 }, ptr %t50 store { ptr, i64, i64 } %t51, ptr %a52 @@ -61755,11 +64206,11 @@ ok6112: %t55 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t54, 0 %t56 = load ptr, ptr %a3 %t57 = icmp eq ptr %t56, null - br i1 %t57, label %panic6113, label %ok6114 -panic6113: - call void @finch_panic(ptr @.str.3919, i64 3331, ptr @.str.3920) + br i1 %t57, label %panic6356, label %ok6357 +panic6356: + call void @finch_panic(ptr @.str.4047, i64 3469, ptr @.str.4048) unreachable -ok6114: +ok6357: %t58 = getelementptr inbounds %S.gen.Val, ptr %t56, i32 0, i32 1 %t59 = load %S.ast.Type, ptr %t58 store %S.ast.Type %t59, ptr %a60 @@ -61769,91 +64220,91 @@ ok6114: %t64 = insertvalue %S.gen.Val %t63, i1 true, 3 %t65 = load ptr, ptr %a2 %t66 = icmp eq ptr %t65, null - br i1 %t66, label %panic6115, label %ok6116 -panic6115: - call void @finch_panic(ptr @.str.3921, i64 3331, ptr @.str.3922) + br i1 %t66, label %panic6358, label %ok6359 +panic6358: + call void @finch_panic(ptr @.str.4049, i64 3469, ptr @.str.4050) unreachable -ok6116: +ok6359: %t67 = load %S.gen.Val, ptr %t65 store %S.gen.Val %t64, ptr %t65 store %S.gen.Val %t67, ptr %a68 call void @finch.drop.S_gen_Val(ptr %a68) ret i1 true -endif6110: +endif6353: %t69 = load ptr, ptr %a3 %t70 = icmp eq ptr %t69, null - br i1 %t70, label %panic6117, label %ok6118 -panic6117: - call void @finch_panic(ptr @.str.3923, i64 3334, ptr @.str.3924) + br i1 %t70, label %panic6360, label %ok6361 +panic6360: + call void @finch_panic(ptr @.str.4051, i64 3472, ptr @.str.4052) unreachable -ok6118: +ok6361: %t71 = getelementptr inbounds %S.gen.Val, ptr %t69, i32 0, i32 3 %t72 = load i1, ptr %t71 - br label %logic.from6119 -logic.from6119: - br i1 %t72, label %logic.rhs6120, label %logic.end6121 -logic.rhs6120: + br label %logic.from6362 +logic.from6362: + br i1 %t72, label %logic.rhs6363, label %logic.end6364 +logic.rhs6363: %t73 = load ptr, ptr %a2 %t74 = icmp eq ptr %t73, null - br i1 %t74, label %panic6122, label %ok6123 -panic6122: - call void @finch_panic(ptr @.str.3925, i64 3334, ptr @.str.3926) + br i1 %t74, label %panic6365, label %ok6366 +panic6365: + call void @finch_panic(ptr @.str.4053, i64 3472, ptr @.str.4054) unreachable -ok6123: +ok6366: %t75 = getelementptr inbounds %S.gen.Val, ptr %t73, i32 0, i32 3 %t76 = load i1, ptr %t75 %t77 = xor i1 %t76, true - br label %logic.rend6124 -logic.rend6124: - br label %logic.end6121 -logic.end6121: - %t78 = phi i1 [ false, %logic.from6119 ], [ %t77, %logic.rend6124 ] - br label %logic.from6125 -logic.from6125: - br i1 %t78, label %logic.rhs6126, label %logic.end6127 -logic.rhs6126: + br label %logic.rend6367 +logic.rend6367: + br label %logic.end6364 +logic.end6364: + %t78 = phi i1 [ false, %logic.from6362 ], [ %t77, %logic.rend6367 ] + br label %logic.from6368 +logic.from6368: + br i1 %t78, label %logic.rhs6369, label %logic.end6370 +logic.rhs6369: %t79 = load ptr, ptr %a3 %t80 = icmp eq ptr %t79, null - br i1 %t80, label %panic6128, label %ok6129 -panic6128: - call void @finch_panic(ptr @.str.3927, i64 3334, ptr @.str.3928) + br i1 %t80, label %panic6371, label %ok6372 +panic6371: + call void @finch_panic(ptr @.str.4055, i64 3472, ptr @.str.4056) unreachable -ok6129: +ok6372: %t81 = getelementptr inbounds %S.gen.Val, ptr %t79, i32 0, i32 0 %t82 = load { ptr, i64, i64 }, ptr %t81 %t83 = load ptr, ptr %a3 %t84 = icmp eq ptr %t83, null - br i1 %t84, label %panic6130, label %ok6131 -panic6130: - call void @finch_panic(ptr @.str.3929, i64 3334, ptr @.str.3930) + br i1 %t84, label %panic6373, label %ok6374 +panic6373: + call void @finch_panic(ptr @.str.4057, i64 3472, ptr @.str.4058) unreachable -ok6131: +ok6374: %t85 = getelementptr inbounds %S.gen.Val, ptr %t83, i32 0, i32 1 %t86 = load %S.ast.Type, ptr %t85 %t87 = load ptr, ptr %a2 %t88 = icmp eq ptr %t87, null - br i1 %t88, label %panic6132, label %ok6133 -panic6132: - call void @finch_panic(ptr @.str.3931, i64 3334, ptr @.str.3932) + br i1 %t88, label %panic6375, label %ok6376 +panic6375: + call void @finch_panic(ptr @.str.4059, i64 3472, ptr @.str.4060) unreachable -ok6133: +ok6376: %t89 = getelementptr inbounds %S.gen.Val, ptr %t87, i32 0, i32 1 %t90 = load %S.ast.Type, ptr %t89 %t91 = call i1 @finch.gen.fits({ ptr, i64, i64 } %t82, %S.ast.Type %t86, %S.ast.Type %t90) - br label %logic.rend6134 -logic.rend6134: - br label %logic.end6127 -logic.end6127: - %t92 = phi i1 [ false, %logic.from6125 ], [ %t91, %logic.rend6134 ] - br i1 %t92, label %then6135, label %endif6137 -then6135: + br label %logic.rend6377 +logic.rend6377: + br label %logic.end6370 +logic.end6370: + %t92 = phi i1 [ false, %logic.from6368 ], [ %t91, %logic.rend6377 ] + br i1 %t92, label %then6378, label %endif6380 +then6378: %t93 = load ptr, ptr %a3 %t94 = icmp eq ptr %t93, null - br i1 %t94, label %panic6138, label %ok6139 -panic6138: - call void @finch_panic(ptr @.str.3933, i64 3335, ptr @.str.3934) + br i1 %t94, label %panic6381, label %ok6382 +panic6381: + call void @finch_panic(ptr @.str.4061, i64 3473, ptr @.str.4062) unreachable -ok6139: +ok6382: %t95 = getelementptr inbounds %S.gen.Val, ptr %t93, i32 0, i32 0 %t96 = load { ptr, i64, i64 }, ptr %t95 store { ptr, i64, i64 } %t96, ptr %a97 @@ -61862,11 +64313,11 @@ ok6139: %t100 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t99, 0 %t101 = load ptr, ptr %a2 %t102 = icmp eq ptr %t101, null - br i1 %t102, label %panic6140, label %ok6141 -panic6140: - call void @finch_panic(ptr @.str.3935, i64 3335, ptr @.str.3936) + br i1 %t102, label %panic6383, label %ok6384 +panic6383: + call void @finch_panic(ptr @.str.4063, i64 3473, ptr @.str.4064) unreachable -ok6141: +ok6384: %t103 = getelementptr inbounds %S.gen.Val, ptr %t101, i32 0, i32 1 %t104 = load %S.ast.Type, ptr %t103 store %S.ast.Type %t104, ptr %a105 @@ -61876,75 +64327,75 @@ ok6141: %t109 = insertvalue %S.gen.Val %t108, i1 true, 3 %t110 = load ptr, ptr %a3 %t111 = icmp eq ptr %t110, null - br i1 %t111, label %panic6142, label %ok6143 -panic6142: - call void @finch_panic(ptr @.str.3937, i64 3335, ptr @.str.3938) + br i1 %t111, label %panic6385, label %ok6386 +panic6385: + call void @finch_panic(ptr @.str.4065, i64 3473, ptr @.str.4066) unreachable -ok6143: +ok6386: %t112 = load %S.gen.Val, ptr %t110 store %S.gen.Val %t109, ptr %t110 store %S.gen.Val %t112, ptr %a113 call void @finch.drop.S_gen_Val(ptr %a113) ret i1 true -endif6137: +endif6380: %t114 = load ptr, ptr %a2 %t115 = icmp eq ptr %t114, null - br i1 %t115, label %panic6144, label %ok6145 -panic6144: - call void @finch_panic(ptr @.str.3939, i64 3338, ptr @.str.3940) + br i1 %t115, label %panic6387, label %ok6388 +panic6387: + call void @finch_panic(ptr @.str.4067, i64 3476, ptr @.str.4068) unreachable -ok6145: +ok6388: %t116 = getelementptr inbounds %S.gen.Val, ptr %t114, i32 0, i32 1 %t117 = load %S.ast.Type, ptr %t116 %t118 = load ptr, ptr %a3 %t119 = icmp eq ptr %t118, null - br i1 %t119, label %panic6146, label %ok6147 -panic6146: - call void @finch_panic(ptr @.str.3941, i64 3338, ptr @.str.3942) + br i1 %t119, label %panic6389, label %ok6390 +panic6389: + call void @finch_panic(ptr @.str.4069, i64 3476, ptr @.str.4070) unreachable -ok6147: +ok6390: %t120 = getelementptr inbounds %S.gen.Val, ptr %t118, i32 0, i32 1 %t121 = load %S.ast.Type, ptr %t120 %t122 = call i1 @finch.gen.widens(%S.ast.Type %t117, %S.ast.Type %t121) - br i1 %t122, label %then6148, label %endif6150 -then6148: + br i1 %t122, label %then6391, label %endif6393 +then6391: %t123 = load ptr, ptr %a1 %t124 = load ptr, ptr %a2 %t125 = icmp eq ptr %t124, null - br i1 %t125, label %panic6151, label %ok6152 -panic6151: - call void @finch_panic(ptr @.str.3943, i64 3339, ptr @.str.3944) + br i1 %t125, label %panic6394, label %ok6395 +panic6394: + call void @finch_panic(ptr @.str.4071, i64 3477, ptr @.str.4072) unreachable -ok6152: +ok6395: %t126 = getelementptr inbounds %S.gen.Val, ptr %t124, i32 0, i32 0 %t127 = load { ptr, i64, i64 }, ptr %t126 %t128 = load ptr, ptr %a2 %t129 = icmp eq ptr %t128, null - br i1 %t129, label %panic6153, label %ok6154 -panic6153: - call void @finch_panic(ptr @.str.3945, i64 3339, ptr @.str.3946) + br i1 %t129, label %panic6396, label %ok6397 +panic6396: + call void @finch_panic(ptr @.str.4073, i64 3477, ptr @.str.4074) unreachable -ok6154: +ok6397: %t130 = getelementptr inbounds %S.gen.Val, ptr %t128, i32 0, i32 1 %t131 = load %S.ast.Type, ptr %t130 %t132 = load ptr, ptr %a3 %t133 = icmp eq ptr %t132, null - br i1 %t133, label %panic6155, label %ok6156 -panic6155: - call void @finch_panic(ptr @.str.3947, i64 3339, ptr @.str.3948) + br i1 %t133, label %panic6398, label %ok6399 +panic6398: + call void @finch_panic(ptr @.str.4075, i64 3477, ptr @.str.4076) unreachable -ok6156: +ok6399: %t134 = getelementptr inbounds %S.gen.Val, ptr %t132, i32 0, i32 1 %t135 = load %S.ast.Type, ptr %t134 %t136 = call { ptr, i64, i64 } @finch.gen.intCast(ptr %t123, { ptr, i64, i64 } %t127, %S.ast.Type %t131, %S.ast.Type %t135) %t137 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t136, 0 %t138 = load ptr, ptr %a3 %t139 = icmp eq ptr %t138, null - br i1 %t139, label %panic6157, label %ok6158 -panic6157: - call void @finch_panic(ptr @.str.3949, i64 3339, ptr @.str.3950) + br i1 %t139, label %panic6400, label %ok6401 +panic6400: + call void @finch_panic(ptr @.str.4077, i64 3477, ptr @.str.4078) unreachable -ok6158: +ok6401: %t140 = getelementptr inbounds %S.gen.Val, ptr %t138, i32 0, i32 1 %t141 = load %S.ast.Type, ptr %t140 store %S.ast.Type %t141, ptr %a142 @@ -61953,75 +64404,75 @@ ok6158: %t145 = insertvalue %S.gen.Val %t137, %S.ast.Type %t144, 1 %t146 = load ptr, ptr %a2 %t147 = icmp eq ptr %t146, null - br i1 %t147, label %panic6159, label %ok6160 -panic6159: - call void @finch_panic(ptr @.str.3951, i64 3339, ptr @.str.3952) + br i1 %t147, label %panic6402, label %ok6403 +panic6402: + call void @finch_panic(ptr @.str.4079, i64 3477, ptr @.str.4080) unreachable -ok6160: +ok6403: %t148 = load %S.gen.Val, ptr %t146 store %S.gen.Val %t145, ptr %t146 store %S.gen.Val %t148, ptr %a149 call void @finch.drop.S_gen_Val(ptr %a149) ret i1 true -endif6150: +endif6393: %t150 = load ptr, ptr %a3 %t151 = icmp eq ptr %t150, null - br i1 %t151, label %panic6161, label %ok6162 -panic6161: - call void @finch_panic(ptr @.str.3953, i64 3342, ptr @.str.3954) + br i1 %t151, label %panic6404, label %ok6405 +panic6404: + call void @finch_panic(ptr @.str.4081, i64 3480, ptr @.str.4082) unreachable -ok6162: +ok6405: %t152 = getelementptr inbounds %S.gen.Val, ptr %t150, i32 0, i32 1 %t153 = load %S.ast.Type, ptr %t152 %t154 = load ptr, ptr %a2 %t155 = icmp eq ptr %t154, null - br i1 %t155, label %panic6163, label %ok6164 -panic6163: - call void @finch_panic(ptr @.str.3955, i64 3342, ptr @.str.3956) + br i1 %t155, label %panic6406, label %ok6407 +panic6406: + call void @finch_panic(ptr @.str.4083, i64 3480, ptr @.str.4084) unreachable -ok6164: +ok6407: %t156 = getelementptr inbounds %S.gen.Val, ptr %t154, i32 0, i32 1 %t157 = load %S.ast.Type, ptr %t156 %t158 = call i1 @finch.gen.widens(%S.ast.Type %t153, %S.ast.Type %t157) - br i1 %t158, label %then6165, label %endif6167 -then6165: + br i1 %t158, label %then6408, label %endif6410 +then6408: %t159 = load ptr, ptr %a1 %t160 = load ptr, ptr %a3 %t161 = icmp eq ptr %t160, null - br i1 %t161, label %panic6168, label %ok6169 -panic6168: - call void @finch_panic(ptr @.str.3957, i64 3343, ptr @.str.3958) + br i1 %t161, label %panic6411, label %ok6412 +panic6411: + call void @finch_panic(ptr @.str.4085, i64 3481, ptr @.str.4086) unreachable -ok6169: +ok6412: %t162 = getelementptr inbounds %S.gen.Val, ptr %t160, i32 0, i32 0 %t163 = load { ptr, i64, i64 }, ptr %t162 %t164 = load ptr, ptr %a3 %t165 = icmp eq ptr %t164, null - br i1 %t165, label %panic6170, label %ok6171 -panic6170: - call void @finch_panic(ptr @.str.3959, i64 3343, ptr @.str.3960) + br i1 %t165, label %panic6413, label %ok6414 +panic6413: + call void @finch_panic(ptr @.str.4087, i64 3481, ptr @.str.4088) unreachable -ok6171: +ok6414: %t166 = getelementptr inbounds %S.gen.Val, ptr %t164, i32 0, i32 1 %t167 = load %S.ast.Type, ptr %t166 %t168 = load ptr, ptr %a2 %t169 = icmp eq ptr %t168, null - br i1 %t169, label %panic6172, label %ok6173 -panic6172: - call void @finch_panic(ptr @.str.3961, i64 3343, ptr @.str.3962) + br i1 %t169, label %panic6415, label %ok6416 +panic6415: + call void @finch_panic(ptr @.str.4089, i64 3481, ptr @.str.4090) unreachable -ok6173: +ok6416: %t170 = getelementptr inbounds %S.gen.Val, ptr %t168, i32 0, i32 1 %t171 = load %S.ast.Type, ptr %t170 %t172 = call { ptr, i64, i64 } @finch.gen.intCast(ptr %t159, { ptr, i64, i64 } %t163, %S.ast.Type %t167, %S.ast.Type %t171) %t173 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t172, 0 %t174 = load ptr, ptr %a2 %t175 = icmp eq ptr %t174, null - br i1 %t175, label %panic6174, label %ok6175 -panic6174: - call void @finch_panic(ptr @.str.3963, i64 3343, ptr @.str.3964) + br i1 %t175, label %panic6417, label %ok6418 +panic6417: + call void @finch_panic(ptr @.str.4091, i64 3481, ptr @.str.4092) unreachable -ok6175: +ok6418: %t176 = getelementptr inbounds %S.gen.Val, ptr %t174, i32 0, i32 1 %t177 = load %S.ast.Type, ptr %t176 store %S.ast.Type %t177, ptr %a178 @@ -62030,294 +64481,294 @@ ok6175: %t181 = insertvalue %S.gen.Val %t173, %S.ast.Type %t180, 1 %t182 = load ptr, ptr %a3 %t183 = icmp eq ptr %t182, null - br i1 %t183, label %panic6176, label %ok6177 -panic6176: - call void @finch_panic(ptr @.str.3965, i64 3343, ptr @.str.3966) + br i1 %t183, label %panic6419, label %ok6420 +panic6419: + call void @finch_panic(ptr @.str.4093, i64 3481, ptr @.str.4094) unreachable -ok6177: +ok6420: %t184 = load %S.gen.Val, ptr %t182 store %S.gen.Val %t181, ptr %t182 store %S.gen.Val %t184, ptr %a185 call void @finch.drop.S_gen_Val(ptr %a185) ret i1 true -endif6167: +endif6410: ret i1 false -endif6089: +endif6332: %t186 = load ptr, ptr %a2 %t187 = icmp eq ptr %t186, null - br i1 %t187, label %panic6178, label %ok6179 -panic6178: - call void @finch_panic(ptr @.str.3967, i64 3348, ptr @.str.3968) + br i1 %t187, label %panic6421, label %ok6422 +panic6421: + call void @finch_panic(ptr @.str.4095, i64 3486, ptr @.str.4096) unreachable -ok6179: +ok6422: %t188 = getelementptr inbounds %S.gen.Val, ptr %t186, i32 0, i32 1 %t189 = load %S.ast.Type, ptr %t188 %t190 = call i1 @finch.gen.isInt(%S.ast.Type %t189) - br label %logic.from6180 -logic.from6180: - br i1 %t190, label %logic.rhs6181, label %logic.end6182 -logic.rhs6181: + br label %logic.from6423 +logic.from6423: + br i1 %t190, label %logic.rhs6424, label %logic.end6425 +logic.rhs6424: %t191 = load ptr, ptr %a3 %t192 = icmp eq ptr %t191, null - br i1 %t192, label %panic6183, label %ok6184 -panic6183: - call void @finch_panic(ptr @.str.3969, i64 3348, ptr @.str.3970) + br i1 %t192, label %panic6426, label %ok6427 +panic6426: + call void @finch_panic(ptr @.str.4097, i64 3486, ptr @.str.4098) unreachable -ok6184: +ok6427: %t193 = getelementptr inbounds %S.gen.Val, ptr %t191, i32 0, i32 1 %t194 = load %S.ast.Type, ptr %t193 %t195 = call i1 @finch.gen.isFloat(%S.ast.Type %t194) - br label %logic.rend6185 -logic.rend6185: - br label %logic.end6182 -logic.end6182: - %t196 = phi i1 [ false, %logic.from6180 ], [ %t195, %logic.rend6185 ] - br i1 %t196, label %then6186, label %endif6188 -then6186: + br label %logic.rend6428 +logic.rend6428: + br label %logic.end6425 +logic.end6425: + %t196 = phi i1 [ false, %logic.from6423 ], [ %t195, %logic.rend6428 ] + br i1 %t196, label %then6429, label %endif6431 +then6429: %t197 = load ptr, ptr %a1 %t198 = load ptr, ptr %a2 %t199 = icmp eq ptr %t198, null - br i1 %t199, label %panic6189, label %ok6190 -panic6189: - call void @finch_panic(ptr @.str.3971, i64 3349, ptr @.str.3972) + br i1 %t199, label %panic6432, label %ok6433 +panic6432: + call void @finch_panic(ptr @.str.4099, i64 3487, ptr @.str.4100) unreachable -ok6190: +ok6433: %t200 = load %S.gen.Val, ptr %t198 %t201 = load ptr, ptr %a3 %t202 = icmp eq ptr %t201, null - br i1 %t202, label %panic6191, label %ok6192 -panic6191: - call void @finch_panic(ptr @.str.3973, i64 3349, ptr @.str.3974) + br i1 %t202, label %panic6434, label %ok6435 +panic6434: + call void @finch_panic(ptr @.str.4101, i64 3487, ptr @.str.4102) unreachable -ok6192: +ok6435: %t203 = getelementptr inbounds %S.gen.Val, ptr %t201, i32 0, i32 1 %t204 = load %S.ast.Type, ptr %t203 %t205 = call %S.ast.Node @finch.gen.Node0() - %t206 = call %S.gen.Val @finch.gen.coerce(ptr %t197, %S.gen.Val %t200, %S.ast.Type %t204, %S.ast.Node %t205, { ptr, i64, i64 } { ptr @.str.3975, i64 0, i64 0 }) + %t206 = call %S.gen.Val @finch.gen.coerce(ptr %t197, %S.gen.Val %t200, %S.ast.Type %t204, %S.ast.Node %t205, { ptr, i64, i64 } { ptr @.str.4103, i64 0, i64 0 }) store %S.ast.Node %t205, ptr %a207 call void @finch.drop.S_ast_Node(ptr %a207) %t208 = load ptr, ptr %a2 %t209 = icmp eq ptr %t208, null - br i1 %t209, label %panic6193, label %ok6194 -panic6193: - call void @finch_panic(ptr @.str.3976, i64 3349, ptr @.str.3977) + br i1 %t209, label %panic6436, label %ok6437 +panic6436: + call void @finch_panic(ptr @.str.4104, i64 3487, ptr @.str.4105) unreachable -ok6194: +ok6437: %t210 = load %S.gen.Val, ptr %t208 store %S.gen.Val %t206, ptr %t208 store %S.gen.Val %t210, ptr %a211 call void @finch.drop.S_gen_Val(ptr %a211) ret i1 true -endif6188: +endif6431: %t212 = load ptr, ptr %a2 %t213 = icmp eq ptr %t212, null - br i1 %t213, label %panic6195, label %ok6196 -panic6195: - call void @finch_panic(ptr @.str.3978, i64 3352, ptr @.str.3979) + br i1 %t213, label %panic6438, label %ok6439 +panic6438: + call void @finch_panic(ptr @.str.4106, i64 3490, ptr @.str.4107) unreachable -ok6196: +ok6439: %t214 = getelementptr inbounds %S.gen.Val, ptr %t212, i32 0, i32 1 %t215 = load %S.ast.Type, ptr %t214 %t216 = call i1 @finch.gen.isFloat(%S.ast.Type %t215) - br label %logic.from6197 -logic.from6197: - br i1 %t216, label %logic.rhs6198, label %logic.end6199 -logic.rhs6198: + br label %logic.from6440 +logic.from6440: + br i1 %t216, label %logic.rhs6441, label %logic.end6442 +logic.rhs6441: %t217 = load ptr, ptr %a3 %t218 = icmp eq ptr %t217, null - br i1 %t218, label %panic6200, label %ok6201 -panic6200: - call void @finch_panic(ptr @.str.3980, i64 3352, ptr @.str.3981) + br i1 %t218, label %panic6443, label %ok6444 +panic6443: + call void @finch_panic(ptr @.str.4108, i64 3490, ptr @.str.4109) unreachable -ok6201: +ok6444: %t219 = getelementptr inbounds %S.gen.Val, ptr %t217, i32 0, i32 1 %t220 = load %S.ast.Type, ptr %t219 %t221 = call i1 @finch.gen.isInt(%S.ast.Type %t220) - br label %logic.rend6202 -logic.rend6202: - br label %logic.end6199 -logic.end6199: - %t222 = phi i1 [ false, %logic.from6197 ], [ %t221, %logic.rend6202 ] - br i1 %t222, label %then6203, label %endif6205 -then6203: + br label %logic.rend6445 +logic.rend6445: + br label %logic.end6442 +logic.end6442: + %t222 = phi i1 [ false, %logic.from6440 ], [ %t221, %logic.rend6445 ] + br i1 %t222, label %then6446, label %endif6448 +then6446: %t223 = load ptr, ptr %a1 %t224 = load ptr, ptr %a3 %t225 = icmp eq ptr %t224, null - br i1 %t225, label %panic6206, label %ok6207 -panic6206: - call void @finch_panic(ptr @.str.3982, i64 3353, ptr @.str.3983) + br i1 %t225, label %panic6449, label %ok6450 +panic6449: + call void @finch_panic(ptr @.str.4110, i64 3491, ptr @.str.4111) unreachable -ok6207: +ok6450: %t226 = load %S.gen.Val, ptr %t224 %t227 = load ptr, ptr %a2 %t228 = icmp eq ptr %t227, null - br i1 %t228, label %panic6208, label %ok6209 -panic6208: - call void @finch_panic(ptr @.str.3984, i64 3353, ptr @.str.3985) + br i1 %t228, label %panic6451, label %ok6452 +panic6451: + call void @finch_panic(ptr @.str.4112, i64 3491, ptr @.str.4113) unreachable -ok6209: +ok6452: %t229 = getelementptr inbounds %S.gen.Val, ptr %t227, i32 0, i32 1 %t230 = load %S.ast.Type, ptr %t229 %t231 = call %S.ast.Node @finch.gen.Node0() - %t232 = call %S.gen.Val @finch.gen.coerce(ptr %t223, %S.gen.Val %t226, %S.ast.Type %t230, %S.ast.Node %t231, { ptr, i64, i64 } { ptr @.str.3986, i64 0, i64 0 }) + %t232 = call %S.gen.Val @finch.gen.coerce(ptr %t223, %S.gen.Val %t226, %S.ast.Type %t230, %S.ast.Node %t231, { ptr, i64, i64 } { ptr @.str.4114, i64 0, i64 0 }) store %S.ast.Node %t231, ptr %a233 call void @finch.drop.S_ast_Node(ptr %a233) %t234 = load ptr, ptr %a3 %t235 = icmp eq ptr %t234, null - br i1 %t235, label %panic6210, label %ok6211 -panic6210: - call void @finch_panic(ptr @.str.3987, i64 3353, ptr @.str.3988) + br i1 %t235, label %panic6453, label %ok6454 +panic6453: + call void @finch_panic(ptr @.str.4115, i64 3491, ptr @.str.4116) unreachable -ok6211: +ok6454: %t236 = load %S.gen.Val, ptr %t234 store %S.gen.Val %t232, ptr %t234 store %S.gen.Val %t236, ptr %a237 call void @finch.drop.S_gen_Val(ptr %a237) ret i1 true -endif6205: +endif6448: %t238 = load ptr, ptr %a2 %t239 = icmp eq ptr %t238, null - br i1 %t239, label %panic6212, label %ok6213 -panic6212: - call void @finch_panic(ptr @.str.3989, i64 3356, ptr @.str.3990) + br i1 %t239, label %panic6455, label %ok6456 +panic6455: + call void @finch_panic(ptr @.str.4117, i64 3494, ptr @.str.4118) unreachable -ok6213: +ok6456: %t240 = getelementptr inbounds %S.gen.Val, ptr %t238, i32 0, i32 1 %t241 = load %S.ast.Type, ptr %t240 %t242 = call i1 @finch.gen.isFloat(%S.ast.Type %t241) - br label %logic.from6214 -logic.from6214: - br i1 %t242, label %logic.rhs6215, label %logic.end6216 -logic.rhs6215: + br label %logic.from6457 +logic.from6457: + br i1 %t242, label %logic.rhs6458, label %logic.end6459 +logic.rhs6458: %t243 = load ptr, ptr %a3 %t244 = icmp eq ptr %t243, null - br i1 %t244, label %panic6217, label %ok6218 -panic6217: - call void @finch_panic(ptr @.str.3991, i64 3356, ptr @.str.3992) + br i1 %t244, label %panic6460, label %ok6461 +panic6460: + call void @finch_panic(ptr @.str.4119, i64 3494, ptr @.str.4120) unreachable -ok6218: +ok6461: %t245 = getelementptr inbounds %S.gen.Val, ptr %t243, i32 0, i32 1 %t246 = load %S.ast.Type, ptr %t245 %t247 = call i1 @finch.gen.isFloat(%S.ast.Type %t246) - br label %logic.rend6219 -logic.rend6219: - br label %logic.end6216 -logic.end6216: - %t248 = phi i1 [ false, %logic.from6214 ], [ %t247, %logic.rend6219 ] - br i1 %t248, label %then6220, label %endif6222 -then6220: + br label %logic.rend6462 +logic.rend6462: + br label %logic.end6459 +logic.end6459: + %t248 = phi i1 [ false, %logic.from6457 ], [ %t247, %logic.rend6462 ] + br i1 %t248, label %then6463, label %endif6465 +then6463: %t249 = load ptr, ptr %a2 %t250 = icmp eq ptr %t249, null - br i1 %t250, label %panic6223, label %ok6224 -panic6223: - call void @finch_panic(ptr @.str.3993, i64 3357, ptr @.str.3994) + br i1 %t250, label %panic6466, label %ok6467 +panic6466: + call void @finch_panic(ptr @.str.4121, i64 3495, ptr @.str.4122) unreachable -ok6224: +ok6467: %t251 = getelementptr inbounds %S.gen.Val, ptr %t249, i32 0, i32 1 %t252 = getelementptr inbounds %S.ast.Type, ptr %t251, i32 0, i32 0 %t253 = load { ptr, i64, i64 }, ptr %t252 store { ptr, i64, i64 } %t253, ptr %a254 - store { ptr, i64, i64 } { ptr @.str.3995, i64 3, i64 0 }, ptr %a255 + store { ptr, i64, i64 } { ptr @.str.4123, i64 3, i64 0 }, ptr %a255 %t256 = call i32 @finch_str_eq(ptr %a254, ptr %a255) %t257 = icmp ne i32 %t256, 0 - br i1 %t257, label %then6225, label %endif6227 -then6225: + br i1 %t257, label %then6468, label %endif6470 +then6468: %t258 = load ptr, ptr %a1 %t259 = load ptr, ptr %a2 %t260 = icmp eq ptr %t259, null - br i1 %t260, label %panic6228, label %ok6229 -panic6228: - call void @finch_panic(ptr @.str.3996, i64 3358, ptr @.str.3997) + br i1 %t260, label %panic6471, label %ok6472 +panic6471: + call void @finch_panic(ptr @.str.4124, i64 3496, ptr @.str.4125) unreachable -ok6229: +ok6472: %t261 = getelementptr inbounds %S.gen.Val, ptr %t259, i32 0, i32 0 %t262 = load { ptr, i64, i64 }, ptr %t261 %t263 = load ptr, ptr %a2 %t264 = icmp eq ptr %t263, null - br i1 %t264, label %panic6230, label %ok6231 -panic6230: - call void @finch_panic(ptr @.str.3998, i64 3358, ptr @.str.3999) + br i1 %t264, label %panic6473, label %ok6474 +panic6473: + call void @finch_panic(ptr @.str.4126, i64 3496, ptr @.str.4127) unreachable -ok6231: +ok6474: %t265 = getelementptr inbounds %S.gen.Val, ptr %t263, i32 0, i32 1 %t266 = load %S.ast.Type, ptr %t265 - %t267 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4000, i64 5, i64 0 }) + %t267 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4128, i64 5, i64 0 }) %t268 = call { ptr, i64, i64 } @finch.gen.floatCast(ptr %t258, { ptr, i64, i64 } %t262, %S.ast.Type %t266, %S.ast.Type %t267) store %S.ast.Type %t267, ptr %a269 call void @finch.drop.S_ast_Type(ptr %a269) %t270 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t268, 0 - %t271 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4001, i64 5, i64 0 }) + %t271 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4129, i64 5, i64 0 }) %t272 = insertvalue %S.gen.Val %t270, %S.ast.Type %t271, 1 %t273 = load ptr, ptr %a2 %t274 = icmp eq ptr %t273, null - br i1 %t274, label %panic6232, label %ok6233 -panic6232: - call void @finch_panic(ptr @.str.4002, i64 3358, ptr @.str.4003) + br i1 %t274, label %panic6475, label %ok6476 +panic6475: + call void @finch_panic(ptr @.str.4130, i64 3496, ptr @.str.4131) unreachable -ok6233: +ok6476: %t275 = load %S.gen.Val, ptr %t273 store %S.gen.Val %t272, ptr %t273 store %S.gen.Val %t275, ptr %a276 call void @finch.drop.S_gen_Val(ptr %a276) - br label %endif6227 -endif6227: + br label %endif6470 +endif6470: %t277 = load ptr, ptr %a3 %t278 = icmp eq ptr %t277, null - br i1 %t278, label %panic6234, label %ok6235 -panic6234: - call void @finch_panic(ptr @.str.4004, i64 3360, ptr @.str.4005) + br i1 %t278, label %panic6477, label %ok6478 +panic6477: + call void @finch_panic(ptr @.str.4132, i64 3498, ptr @.str.4133) unreachable -ok6235: +ok6478: %t279 = getelementptr inbounds %S.gen.Val, ptr %t277, i32 0, i32 1 %t280 = getelementptr inbounds %S.ast.Type, ptr %t279, i32 0, i32 0 %t281 = load { ptr, i64, i64 }, ptr %t280 store { ptr, i64, i64 } %t281, ptr %a282 - store { ptr, i64, i64 } { ptr @.str.4006, i64 3, i64 0 }, ptr %a283 + store { ptr, i64, i64 } { ptr @.str.4134, i64 3, i64 0 }, ptr %a283 %t284 = call i32 @finch_str_eq(ptr %a282, ptr %a283) %t285 = icmp ne i32 %t284, 0 - br i1 %t285, label %then6236, label %endif6238 -then6236: + br i1 %t285, label %then6479, label %endif6481 +then6479: %t286 = load ptr, ptr %a1 %t287 = load ptr, ptr %a3 %t288 = icmp eq ptr %t287, null - br i1 %t288, label %panic6239, label %ok6240 -panic6239: - call void @finch_panic(ptr @.str.4007, i64 3361, ptr @.str.4008) + br i1 %t288, label %panic6482, label %ok6483 +panic6482: + call void @finch_panic(ptr @.str.4135, i64 3499, ptr @.str.4136) unreachable -ok6240: +ok6483: %t289 = getelementptr inbounds %S.gen.Val, ptr %t287, i32 0, i32 0 %t290 = load { ptr, i64, i64 }, ptr %t289 %t291 = load ptr, ptr %a3 %t292 = icmp eq ptr %t291, null - br i1 %t292, label %panic6241, label %ok6242 -panic6241: - call void @finch_panic(ptr @.str.4009, i64 3361, ptr @.str.4010) + br i1 %t292, label %panic6484, label %ok6485 +panic6484: + call void @finch_panic(ptr @.str.4137, i64 3499, ptr @.str.4138) unreachable -ok6242: +ok6485: %t293 = getelementptr inbounds %S.gen.Val, ptr %t291, i32 0, i32 1 %t294 = load %S.ast.Type, ptr %t293 - %t295 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4011, i64 5, i64 0 }) + %t295 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4139, i64 5, i64 0 }) %t296 = call { ptr, i64, i64 } @finch.gen.floatCast(ptr %t286, { ptr, i64, i64 } %t290, %S.ast.Type %t294, %S.ast.Type %t295) store %S.ast.Type %t295, ptr %a297 call void @finch.drop.S_ast_Type(ptr %a297) %t298 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t296, 0 - %t299 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4012, i64 5, i64 0 }) + %t299 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4140, i64 5, i64 0 }) %t300 = insertvalue %S.gen.Val %t298, %S.ast.Type %t299, 1 %t301 = load ptr, ptr %a3 %t302 = icmp eq ptr %t301, null - br i1 %t302, label %panic6243, label %ok6244 -panic6243: - call void @finch_panic(ptr @.str.4013, i64 3361, ptr @.str.4014) + br i1 %t302, label %panic6486, label %ok6487 +panic6486: + call void @finch_panic(ptr @.str.4141, i64 3499, ptr @.str.4142) unreachable -ok6244: +ok6487: %t303 = load %S.gen.Val, ptr %t301 store %S.gen.Val %t300, ptr %t301 store %S.gen.Val %t303, ptr %a304 call void @finch.drop.S_gen_Val(ptr %a304) - br label %endif6238 -endif6238: + br label %endif6481 +endif6481: ret i1 true -endif6222: +endif6465: ret i1 false } @@ -62476,54 +64927,54 @@ entry: store %S.ast.Node %p4, ptr %a11 %t12 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t12, ptr %a13 - store { ptr, i64, i64 } { ptr @.str.4015, i64 1, i64 0 }, ptr %a14 + store { ptr, i64, i64 } { ptr @.str.4143, i64 1, i64 0 }, ptr %a14 %t15 = call i32 @finch_str_eq(ptr %a13, ptr %a14) %t16 = icmp ne i32 %t15, 0 - br label %logic.from6245 -logic.from6245: - br i1 %t16, label %logic.rhs6246, label %logic.end6247 -logic.rhs6246: + br label %logic.from6488 +logic.from6488: + br i1 %t16, label %logic.rhs6489, label %logic.end6490 +logic.rhs6489: %t17 = getelementptr inbounds %S.gen.Val, ptr %a6, i32 0, i32 1 %t18 = getelementptr inbounds %S.ast.Type, ptr %t17, i32 0, i32 0 %t19 = load { ptr, i64, i64 }, ptr %t18 store { ptr, i64, i64 } %t19, ptr %a20 - store { ptr, i64, i64 } { ptr @.str.4016, i64 3, i64 0 }, ptr %a21 + store { ptr, i64, i64 } { ptr @.str.4144, i64 3, i64 0 }, ptr %a21 %t22 = call i32 @finch_str_eq(ptr %a20, ptr %a21) %t23 = icmp ne i32 %t22, 0 - br label %logic.rend6248 -logic.rend6248: - br label %logic.end6247 -logic.end6247: - %t24 = phi i1 [ false, %logic.from6245 ], [ %t23, %logic.rend6248 ] - br label %logic.from6249 -logic.from6249: - br i1 %t24, label %logic.rhs6250, label %logic.end6251 -logic.rhs6250: + br label %logic.rend6491 +logic.rend6491: + br label %logic.end6490 +logic.end6490: + %t24 = phi i1 [ false, %logic.from6488 ], [ %t23, %logic.rend6491 ] + br label %logic.from6492 +logic.from6492: + br i1 %t24, label %logic.rhs6493, label %logic.end6494 +logic.rhs6493: %t25 = getelementptr inbounds %S.gen.Val, ptr %a10, i32 0, i32 1 %t26 = getelementptr inbounds %S.ast.Type, ptr %t25, i32 0, i32 0 %t27 = load { ptr, i64, i64 }, ptr %t26 store { ptr, i64, i64 } %t27, ptr %a28 - store { ptr, i64, i64 } { ptr @.str.4017, i64 3, i64 0 }, ptr %a29 + store { ptr, i64, i64 } { ptr @.str.4145, i64 3, i64 0 }, ptr %a29 %t30 = call i32 @finch_str_eq(ptr %a28, ptr %a29) %t31 = icmp ne i32 %t30, 0 - br label %logic.rend6252 -logic.rend6252: - br label %logic.end6251 -logic.end6251: - %t32 = phi i1 [ false, %logic.from6249 ], [ %t31, %logic.rend6252 ] - br i1 %t32, label %then6253, label %endif6255 -then6253: + br label %logic.rend6495 +logic.rend6495: + br label %logic.end6494 +logic.end6494: + %t32 = phi i1 [ false, %logic.from6492 ], [ %t31, %logic.rend6495 ] + br i1 %t32, label %then6496, label %endif6498 +then6496: %t33 = load ptr, ptr %a1 - %t34 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t33, { ptr, i64, i64 } { ptr @.str.4018, i64 17, i64 0 }) + %t34 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t33, { ptr, i64, i64 } { ptr @.str.4146, i64 17, i64 0 }) store { ptr, i64, i64 } %t34, ptr %a35 %t36 = load ptr, ptr %a1 %t37 = load { ptr, i64, i64 }, ptr %a35 - store { ptr, i64, i64 } { ptr @.str.4019, i64 32, i64 0 }, ptr %a39 + store { ptr, i64, i64 } { ptr @.str.4147, i64 32, i64 0 }, ptr %a39 store { ptr, i64, i64 } %t37, ptr %a40 call void @finch_str_concat(ptr %a38, ptr %a39, ptr %a40) %t41 = load { ptr, i64, i64 }, ptr %a38 store { ptr, i64, i64 } %t41, ptr %a43 - store { ptr, i64, i64 } { ptr @.str.4020, i64 6, i64 0 }, ptr %a44 + store { ptr, i64, i64 } { ptr @.str.4148, i64 6, i64 0 }, ptr %a44 call void @finch_str_concat(ptr %a42, ptr %a43, ptr %a44) store { ptr, i64, i64 } %t41, ptr %a45 call void @finch_str_drop(ptr %a45) @@ -62540,7 +64991,7 @@ then6253: call void @finch_str_drop(ptr %a54) %t55 = load { ptr, i64, i64 }, ptr %a50 store { ptr, i64, i64 } %t55, ptr %a57 - store { ptr, i64, i64 } { ptr @.str.4021, i64 6, i64 0 }, ptr %a58 + store { ptr, i64, i64 } { ptr @.str.4149, i64 6, i64 0 }, ptr %a58 call void @finch_str_concat(ptr %a56, ptr %a57, ptr %a58) store { ptr, i64, i64 } %t55, ptr %a59 call void @finch_str_drop(ptr %a59) @@ -62557,7 +65008,7 @@ then6253: call void @finch_str_drop(ptr %a68) %t69 = load { ptr, i64, i64 }, ptr %a64 store { ptr, i64, i64 } %t69, ptr %a71 - store { ptr, i64, i64 } { ptr @.str.4022, i64 1, i64 0 }, ptr %a72 + store { ptr, i64, i64 } { ptr @.str.4150, i64 1, i64 0 }, ptr %a72 call void @finch_str_concat(ptr %a70, ptr %a71, ptr %a72) store { ptr, i64, i64 } %t69, ptr %a73 call void @finch_str_drop(ptr %a73) @@ -62573,56 +65024,56 @@ then6253: call void @finch.gen.release(ptr %t78, %S.gen.Val %t79) %t80 = load ptr, ptr %a1 %t81 = load { ptr, i64, i64 }, ptr %a35 - %t82 = call { ptr, i64, i64 } @finch.gen.load(ptr %t80, { ptr, i64, i64 } { ptr @.str.4023, i64 17, i64 0 }, { ptr, i64, i64 } %t81) + %t82 = call { ptr, i64, i64 } @finch.gen.load(ptr %t80, { ptr, i64, i64 } { ptr @.str.4151, i64 17, i64 0 }, { ptr, i64, i64 } %t81) %t83 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t82, 0 - %t84 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4024, i64 3, i64 0 }) + %t84 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4152, i64 3, i64 0 }) %t85 = insertvalue %S.gen.Val %t83, %S.ast.Type %t84, 1 %t86 = insertvalue %S.gen.Val %t85, i1 true, 2 call void @finch_str_drop(ptr %a35) call void @finch.drop.S_gen_Val(ptr %a10) call void @finch.drop.S_gen_Val(ptr %a6) ret %S.gen.Val %t86 -endif6255: +endif6498: %t87 = load ptr, ptr %a1 %t88 = call i1 @finch.gen.unify(ptr %t87, ptr %a6, ptr %a10) %t89 = xor i1 %t88, true - br i1 %t89, label %then6256, label %endif6258 -then6256: + br i1 %t89, label %then6499, label %endif6501 +then6499: %t90 = load ptr, ptr %a1 %t91 = load { ptr, i64, i64 }, ptr %a2 %t92 = load %S.gen.Val, ptr %a6 %t93 = load %S.gen.Val, ptr %a10 %t94 = load %S.ast.Node, ptr %a11 call void @finch.gen.badOperands(ptr %t90, { ptr, i64, i64 } %t91, %S.gen.Val %t92, %S.gen.Val %t93, %S.ast.Node %t94) - br label %endif6258 -endif6258: + br label %endif6501 +endif6501: %t95 = getelementptr inbounds %S.gen.Val, ptr %a6, i32 0, i32 1 %t96 = load %S.ast.Type, ptr %t95 %t97 = call i1 @finch.gen.isInt(%S.ast.Type %t96) - br i1 %t97, label %then6259, label %endif6261 -then6259: + br i1 %t97, label %then6502, label %endif6504 +then6502: %t98 = mul i64 10, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t99 = call ptr @finch_alloc(i64 %t98) %t100 = getelementptr inbounds { ptr, i64, i64 }, ptr %t99, i64 0 - store { ptr, i64, i64 } { ptr @.str.4025, i64 1, i64 0 }, ptr %t100 + store { ptr, i64, i64 } { ptr @.str.4153, i64 1, i64 0 }, ptr %t100 %t101 = getelementptr inbounds { ptr, i64, i64 }, ptr %t99, i64 1 - store { ptr, i64, i64 } { ptr @.str.4026, i64 1, i64 0 }, ptr %t101 + store { ptr, i64, i64 } { ptr @.str.4154, i64 1, i64 0 }, ptr %t101 %t102 = getelementptr inbounds { ptr, i64, i64 }, ptr %t99, i64 2 - store { ptr, i64, i64 } { ptr @.str.4027, i64 1, i64 0 }, ptr %t102 + store { ptr, i64, i64 } { ptr @.str.4155, i64 1, i64 0 }, ptr %t102 %t103 = getelementptr inbounds { ptr, i64, i64 }, ptr %t99, i64 3 - store { ptr, i64, i64 } { ptr @.str.4028, i64 1, i64 0 }, ptr %t103 + store { ptr, i64, i64 } { ptr @.str.4156, i64 1, i64 0 }, ptr %t103 %t104 = getelementptr inbounds { ptr, i64, i64 }, ptr %t99, i64 4 - store { ptr, i64, i64 } { ptr @.str.4029, i64 1, i64 0 }, ptr %t104 + store { ptr, i64, i64 } { ptr @.str.4157, i64 1, i64 0 }, ptr %t104 %t105 = getelementptr inbounds { ptr, i64, i64 }, ptr %t99, i64 5 - store { ptr, i64, i64 } { ptr @.str.4030, i64 1, i64 0 }, ptr %t105 + store { ptr, i64, i64 } { ptr @.str.4158, i64 1, i64 0 }, ptr %t105 %t106 = getelementptr inbounds { ptr, i64, i64 }, ptr %t99, i64 6 - store { ptr, i64, i64 } { ptr @.str.4031, i64 1, i64 0 }, ptr %t106 + store { ptr, i64, i64 } { ptr @.str.4159, i64 1, i64 0 }, ptr %t106 %t107 = getelementptr inbounds { ptr, i64, i64 }, ptr %t99, i64 7 - store { ptr, i64, i64 } { ptr @.str.4032, i64 1, i64 0 }, ptr %t107 + store { ptr, i64, i64 } { ptr @.str.4160, i64 1, i64 0 }, ptr %t107 %t108 = getelementptr inbounds { ptr, i64, i64 }, ptr %t99, i64 8 - store { ptr, i64, i64 } { ptr @.str.4033, i64 2, i64 0 }, ptr %t108 + store { ptr, i64, i64 } { ptr @.str.4161, i64 2, i64 0 }, ptr %t108 %t109 = getelementptr inbounds { ptr, i64, i64 }, ptr %t99, i64 9 - store { ptr, i64, i64 } { ptr @.str.4034, i64 2, i64 0 }, ptr %t109 + store { ptr, i64, i64 } { ptr @.str.4162, i64 2, i64 0 }, ptr %t109 %t110 = insertvalue { ptr, i64, i64 } undef, ptr %t99, 0 %t111 = insertvalue { ptr, i64, i64 } %t110, i64 10, 1 %t112 = insertvalue { ptr, i64, i64 } %t111, i64 10, 2 @@ -62630,25 +65081,25 @@ then6259: %t114 = mul i64 10, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t115 = call ptr @finch_alloc(i64 %t114) %t116 = getelementptr inbounds { ptr, i64, i64 }, ptr %t115, i64 0 - store { ptr, i64, i64 } { ptr @.str.4035, i64 3, i64 0 }, ptr %t116 + store { ptr, i64, i64 } { ptr @.str.4163, i64 3, i64 0 }, ptr %t116 %t117 = getelementptr inbounds { ptr, i64, i64 }, ptr %t115, i64 1 - store { ptr, i64, i64 } { ptr @.str.4036, i64 3, i64 0 }, ptr %t117 + store { ptr, i64, i64 } { ptr @.str.4164, i64 3, i64 0 }, ptr %t117 %t118 = getelementptr inbounds { ptr, i64, i64 }, ptr %t115, i64 2 - store { ptr, i64, i64 } { ptr @.str.4037, i64 3, i64 0 }, ptr %t118 + store { ptr, i64, i64 } { ptr @.str.4165, i64 3, i64 0 }, ptr %t118 %t119 = getelementptr inbounds { ptr, i64, i64 }, ptr %t115, i64 3 - store { ptr, i64, i64 } { ptr @.str.4038, i64 4, i64 0 }, ptr %t119 + store { ptr, i64, i64 } { ptr @.str.4166, i64 4, i64 0 }, ptr %t119 %t120 = getelementptr inbounds { ptr, i64, i64 }, ptr %t115, i64 4 - store { ptr, i64, i64 } { ptr @.str.4039, i64 4, i64 0 }, ptr %t120 + store { ptr, i64, i64 } { ptr @.str.4167, i64 4, i64 0 }, ptr %t120 %t121 = getelementptr inbounds { ptr, i64, i64 }, ptr %t115, i64 5 - store { ptr, i64, i64 } { ptr @.str.4040, i64 3, i64 0 }, ptr %t121 + store { ptr, i64, i64 } { ptr @.str.4168, i64 3, i64 0 }, ptr %t121 %t122 = getelementptr inbounds { ptr, i64, i64 }, ptr %t115, i64 6 - store { ptr, i64, i64 } { ptr @.str.4041, i64 2, i64 0 }, ptr %t122 + store { ptr, i64, i64 } { ptr @.str.4169, i64 2, i64 0 }, ptr %t122 %t123 = getelementptr inbounds { ptr, i64, i64 }, ptr %t115, i64 7 - store { ptr, i64, i64 } { ptr @.str.4042, i64 3, i64 0 }, ptr %t123 + store { ptr, i64, i64 } { ptr @.str.4170, i64 3, i64 0 }, ptr %t123 %t124 = getelementptr inbounds { ptr, i64, i64 }, ptr %t115, i64 8 - store { ptr, i64, i64 } { ptr @.str.4043, i64 3, i64 0 }, ptr %t124 + store { ptr, i64, i64 } { ptr @.str.4171, i64 3, i64 0 }, ptr %t124 %t125 = getelementptr inbounds { ptr, i64, i64 }, ptr %t115, i64 9 - store { ptr, i64, i64 } { ptr @.str.4044, i64 4, i64 0 }, ptr %t125 + store { ptr, i64, i64 } { ptr @.str.4172, i64 4, i64 0 }, ptr %t125 %t126 = insertvalue { ptr, i64, i64 } undef, ptr %t115, 0 %t127 = insertvalue { ptr, i64, i64 } %t126, i64 10, 1 %t128 = insertvalue { ptr, i64, i64 } %t127, i64 10, 2 @@ -62656,30 +65107,30 @@ then6259: %t130 = getelementptr inbounds %S.gen.Val, ptr %a6, i32 0, i32 1 %t131 = load %S.ast.Type, ptr %t130 %t132 = call i1 @finch.gen.isUnsigned(%S.ast.Type %t131) - br i1 %t132, label %then6262, label %endif6264 -then6262: + br i1 %t132, label %then6505, label %endif6507 +then6505: %t133 = mul i64 10, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t134 = call ptr @finch_alloc(i64 %t133) %t135 = getelementptr inbounds { ptr, i64, i64 }, ptr %t134, i64 0 - store { ptr, i64, i64 } { ptr @.str.4045, i64 3, i64 0 }, ptr %t135 + store { ptr, i64, i64 } { ptr @.str.4173, i64 3, i64 0 }, ptr %t135 %t136 = getelementptr inbounds { ptr, i64, i64 }, ptr %t134, i64 1 - store { ptr, i64, i64 } { ptr @.str.4046, i64 3, i64 0 }, ptr %t136 + store { ptr, i64, i64 } { ptr @.str.4174, i64 3, i64 0 }, ptr %t136 %t137 = getelementptr inbounds { ptr, i64, i64 }, ptr %t134, i64 2 - store { ptr, i64, i64 } { ptr @.str.4047, i64 3, i64 0 }, ptr %t137 + store { ptr, i64, i64 } { ptr @.str.4175, i64 3, i64 0 }, ptr %t137 %t138 = getelementptr inbounds { ptr, i64, i64 }, ptr %t134, i64 3 - store { ptr, i64, i64 } { ptr @.str.4048, i64 4, i64 0 }, ptr %t138 + store { ptr, i64, i64 } { ptr @.str.4176, i64 4, i64 0 }, ptr %t138 %t139 = getelementptr inbounds { ptr, i64, i64 }, ptr %t134, i64 4 - store { ptr, i64, i64 } { ptr @.str.4049, i64 4, i64 0 }, ptr %t139 + store { ptr, i64, i64 } { ptr @.str.4177, i64 4, i64 0 }, ptr %t139 %t140 = getelementptr inbounds { ptr, i64, i64 }, ptr %t134, i64 5 - store { ptr, i64, i64 } { ptr @.str.4050, i64 3, i64 0 }, ptr %t140 + store { ptr, i64, i64 } { ptr @.str.4178, i64 3, i64 0 }, ptr %t140 %t141 = getelementptr inbounds { ptr, i64, i64 }, ptr %t134, i64 6 - store { ptr, i64, i64 } { ptr @.str.4051, i64 2, i64 0 }, ptr %t141 + store { ptr, i64, i64 } { ptr @.str.4179, i64 2, i64 0 }, ptr %t141 %t142 = getelementptr inbounds { ptr, i64, i64 }, ptr %t134, i64 7 - store { ptr, i64, i64 } { ptr @.str.4052, i64 3, i64 0 }, ptr %t142 + store { ptr, i64, i64 } { ptr @.str.4180, i64 3, i64 0 }, ptr %t142 %t143 = getelementptr inbounds { ptr, i64, i64 }, ptr %t134, i64 8 - store { ptr, i64, i64 } { ptr @.str.4053, i64 3, i64 0 }, ptr %t143 + store { ptr, i64, i64 } { ptr @.str.4181, i64 3, i64 0 }, ptr %t143 %t144 = getelementptr inbounds { ptr, i64, i64 }, ptr %t134, i64 9 - store { ptr, i64, i64 } { ptr @.str.4054, i64 4, i64 0 }, ptr %t144 + store { ptr, i64, i64 } { ptr @.str.4182, i64 4, i64 0 }, ptr %t144 %t145 = insertvalue { ptr, i64, i64 } undef, ptr %t134, 0 %t146 = insertvalue { ptr, i64, i64 } %t145, i64 10, 1 %t147 = insertvalue { ptr, i64, i64 } %t146, i64 10, 2 @@ -62687,49 +65138,49 @@ then6262: store { ptr, i64, i64 } %t147, ptr %a129 store { ptr, i64, i64 } %t148, ptr %a149 call void @finch.drop.arr_str(ptr %a149) - br label %endif6264 -endif6264: + br label %endif6507 +endif6507: %t150 = getelementptr inbounds { ptr, i64, i64 }, ptr %a113, i32 0, i32 1 %t151 = load { ptr, i64, i64 }, ptr %a2 store i64 -1, ptr %a152 %t153 = load i64, ptr %t150 %t154 = load ptr, ptr %a113 store i64 0, ptr %a155 - br label %find.cond6265 -find.cond6265: + br label %find.cond6508 +find.cond6508: %t156 = load i64, ptr %a155 %t157 = icmp slt i64 %t156, %t153 - br i1 %t157, label %find.body6266, label %find.end6269 -find.body6266: + br i1 %t157, label %find.body6509, label %find.end6512 +find.body6509: %t158 = getelementptr inbounds { ptr, i64, i64 }, ptr %t154, i64 %t156 %t159 = load { ptr, i64, i64 }, ptr %t158 store { ptr, i64, i64 } %t159, ptr %a160 store { ptr, i64, i64 } %t151, ptr %a161 %t162 = call i32 @finch_str_eq(ptr %a160, ptr %a161) %t163 = icmp ne i32 %t162, 0 - br i1 %t163, label %find.hit6267, label %find.next6268 -find.hit6267: + br i1 %t163, label %find.hit6510, label %find.next6511 +find.hit6510: store i64 %t156, ptr %a152 - br label %find.end6269 -find.next6268: + br label %find.end6512 +find.next6511: %t164 = add i64 %t156, 1 store i64 %t164, ptr %a155 - br label %find.cond6265 -find.end6269: + br label %find.cond6508 +find.end6512: %t165 = load i64, ptr %a152 store i64 %t165, ptr %a166 %t167 = load i64, ptr %a166 %t168 = icmp slt i64 %t167, 0 - br i1 %t168, label %then6270, label %endif6272 -then6270: + br i1 %t168, label %then6513, label %endif6515 +then6513: %t169 = load ptr, ptr %a1 %t170 = load { ptr, i64, i64 }, ptr %a2 %t171 = load %S.gen.Val, ptr %a6 %t172 = load %S.gen.Val, ptr %a10 %t173 = load %S.ast.Node, ptr %a11 call void @finch.gen.badOperands(ptr %t169, { ptr, i64, i64 } %t170, %S.gen.Val %t171, %S.gen.Val %t172, %S.ast.Node %t173) - br label %endif6272 -endif6272: + br label %endif6515 +endif6515: %t174 = load ptr, ptr %a1 %t175 = getelementptr inbounds %S.gen.Val, ptr %a6, i32 0, i32 1 %t176 = load %S.ast.Type, ptr %t175 @@ -62737,63 +65188,63 @@ endif6272: store { ptr, i64, i64 } %t177, ptr %a178 %t179 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t179, ptr %a180 - store { ptr, i64, i64 } { ptr @.str.4055, i64 1, i64 0 }, ptr %a181 + store { ptr, i64, i64 } { ptr @.str.4183, i64 1, i64 0 }, ptr %a181 %t182 = call i32 @finch_str_eq(ptr %a180, ptr %a181) %t183 = icmp ne i32 %t182, 0 - br label %logic.from6273 -logic.from6273: - br i1 %t183, label %logic.end6275, label %logic.rhs6274 -logic.rhs6274: + br label %logic.from6516 +logic.from6516: + br i1 %t183, label %logic.end6518, label %logic.rhs6517 +logic.rhs6517: %t184 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t184, ptr %a185 - store { ptr, i64, i64 } { ptr @.str.4056, i64 1, i64 0 }, ptr %a186 + store { ptr, i64, i64 } { ptr @.str.4184, i64 1, i64 0 }, ptr %a186 %t187 = call i32 @finch_str_eq(ptr %a185, ptr %a186) %t188 = icmp ne i32 %t187, 0 - br label %logic.rend6276 -logic.rend6276: - br label %logic.end6275 -logic.end6275: - %t189 = phi i1 [ true, %logic.from6273 ], [ %t188, %logic.rend6276 ] - br i1 %t189, label %then6277, label %endif6279 -then6277: + br label %logic.rend6519 +logic.rend6519: + br label %logic.end6518 +logic.end6518: + %t189 = phi i1 [ true, %logic.from6516 ], [ %t188, %logic.rend6519 ] + br i1 %t189, label %then6520, label %endif6522 +then6520: %t190 = getelementptr inbounds %S.gen.Val, ptr %a10, i32 0, i32 3 %t191 = load i1, ptr %t190 - br label %logic.from6280 -logic.from6280: - br i1 %t191, label %logic.rhs6281, label %logic.end6282 -logic.rhs6281: + br label %logic.from6523 +logic.from6523: + br i1 %t191, label %logic.rhs6524, label %logic.end6525 +logic.rhs6524: %t192 = getelementptr inbounds %S.gen.Val, ptr %a10, i32 0, i32 0 %t193 = load { ptr, i64, i64 }, ptr %t192 store { ptr, i64, i64 } %t193, ptr %a194 - store { ptr, i64, i64 } { ptr @.str.4057, i64 1, i64 0 }, ptr %a195 + store { ptr, i64, i64 } { ptr @.str.4185, i64 1, i64 0 }, ptr %a195 %t196 = call i32 @finch_str_eq(ptr %a194, ptr %a195) %t197 = icmp ne i32 %t196, 0 - br label %logic.rend6283 -logic.rend6283: - br label %logic.end6282 -logic.end6282: - %t198 = phi i1 [ false, %logic.from6280 ], [ %t197, %logic.rend6283 ] - br i1 %t198, label %then6284, label %endif6286 -then6284: + br label %logic.rend6526 +logic.rend6526: + br label %logic.end6525 +logic.end6525: + %t198 = phi i1 [ false, %logic.from6523 ], [ %t197, %logic.rend6526 ] + br i1 %t198, label %then6527, label %endif6529 +then6527: %t199 = load ptr, ptr %a1 %t200 = load %S.ast.Node, ptr %a11 - call void @finch.gen.fail(ptr %t199, %S.ast.Node %t200, { ptr, i64, i64 } { ptr @.str.4058, i64 16, i64 0 }) - br label %endif6286 -endif6286: + call void @finch.gen.fail(ptr %t199, %S.ast.Node %t200, { ptr, i64, i64 } { ptr @.str.4186, i64 16, i64 0 }) + br label %endif6529 +endif6529: %t201 = getelementptr inbounds %S.gen.Val, ptr %a10, i32 0, i32 3 %t202 = load i1, ptr %t201 %t203 = xor i1 %t202, true - br i1 %t203, label %then6287, label %endif6289 -then6287: + br i1 %t203, label %then6530, label %endif6532 +then6530: %t204 = load ptr, ptr %a1 %t205 = load ptr, ptr %a1 %t206 = load { ptr, i64, i64 }, ptr %a178 - store { ptr, i64, i64 } { ptr @.str.4059, i64 8, i64 0 }, ptr %a208 + store { ptr, i64, i64 } { ptr @.str.4187, i64 8, i64 0 }, ptr %a208 store { ptr, i64, i64 } %t206, ptr %a209 call void @finch_str_concat(ptr %a207, ptr %a208, ptr %a209) %t210 = load { ptr, i64, i64 }, ptr %a207 store { ptr, i64, i64 } %t210, ptr %a212 - store { ptr, i64, i64 } { ptr @.str.4060, i64 1, i64 0 }, ptr %a213 + store { ptr, i64, i64 } { ptr @.str.4188, i64 1, i64 0 }, ptr %a213 call void @finch_str_concat(ptr %a211, ptr %a212, ptr %a213) store { ptr, i64, i64 } %t210, ptr %a214 call void @finch_str_drop(ptr %a214) @@ -62807,7 +65258,7 @@ then6287: call void @finch_str_drop(ptr %a221) %t222 = load { ptr, i64, i64 }, ptr %a218 store { ptr, i64, i64 } %t222, ptr %a224 - store { ptr, i64, i64 } { ptr @.str.4061, i64 3, i64 0 }, ptr %a225 + store { ptr, i64, i64 } { ptr @.str.4189, i64 3, i64 0 }, ptr %a225 call void @finch_str_concat(ptr %a223, ptr %a224, ptr %a225) store { ptr, i64, i64 } %t222, ptr %a226 call void @finch_str_drop(ptr %a226) @@ -62816,28 +65267,28 @@ then6287: store { ptr, i64, i64 } %t227, ptr %a229 call void @finch_str_drop(ptr %a229) %t230 = load %S.ast.Node, ptr %a11 - call void @finch.gen.panicIf(ptr %t204, { ptr, i64, i64 } %t228, { ptr, i64, i64 } { ptr @.str.4062, i64 16, i64 0 }, %S.ast.Node %t230) + call void @finch.gen.panicIf(ptr %t204, { ptr, i64, i64 } %t228, { ptr, i64, i64 } { ptr @.str.4190, i64 16, i64 0 }, %S.ast.Node %t230) store { ptr, i64, i64 } %t228, ptr %a231 call void @finch_str_drop(ptr %a231) - br label %endif6289 -endif6289: - br label %endif6279 -endif6279: + br label %endif6532 +endif6532: + br label %endif6522 +endif6522: %t232 = load ptr, ptr %a1 %t233 = load i64, ptr %a166 %t234 = load { ptr, i64, i64 }, ptr %a129 %t235 = extractvalue { ptr, i64, i64 } %t234, 1 %t236 = icmp uge i64 %t233, %t235 - br i1 %t236, label %range6290, label %inrange6291 -range6290: - call void @finch_panic_index(ptr @.str.4063, i64 3402, i64 %t233, i64 %t235) + br i1 %t236, label %range6533, label %inrange6534 +range6533: + call void @finch_panic_index(ptr @.str.4191, i64 3540, i64 %t233, i64 %t235) unreachable -inrange6291: +inrange6534: %t237 = extractvalue { ptr, i64, i64 } %t234, 0 %t238 = getelementptr inbounds { ptr, i64, i64 }, ptr %t237, i64 %t233 %t239 = load { ptr, i64, i64 }, ptr %t238 store { ptr, i64, i64 } %t239, ptr %a241 - store { ptr, i64, i64 } { ptr @.str.4064, i64 1, i64 0 }, ptr %a242 + store { ptr, i64, i64 } { ptr @.str.4192, i64 1, i64 0 }, ptr %a242 call void @finch_str_concat(ptr %a240, ptr %a241, ptr %a242) %t243 = load { ptr, i64, i64 }, ptr %a240 %t244 = load { ptr, i64, i64 }, ptr %a178 @@ -62848,7 +65299,7 @@ inrange6291: call void @finch_str_drop(ptr %a248) %t249 = load { ptr, i64, i64 }, ptr %a245 store { ptr, i64, i64 } %t249, ptr %a251 - store { ptr, i64, i64 } { ptr @.str.4065, i64 1, i64 0 }, ptr %a252 + store { ptr, i64, i64 } { ptr @.str.4193, i64 1, i64 0 }, ptr %a252 call void @finch_str_concat(ptr %a250, ptr %a251, ptr %a252) store { ptr, i64, i64 } %t249, ptr %a253 call void @finch_str_drop(ptr %a253) @@ -62862,7 +65313,7 @@ inrange6291: call void @finch_str_drop(ptr %a260) %t261 = load { ptr, i64, i64 }, ptr %a257 store { ptr, i64, i64 } %t261, ptr %a263 - store { ptr, i64, i64 } { ptr @.str.4066, i64 2, i64 0 }, ptr %a264 + store { ptr, i64, i64 } { ptr @.str.4194, i64 2, i64 0 }, ptr %a264 call void @finch_str_concat(ptr %a262, ptr %a263, ptr %a264) store { ptr, i64, i64 } %t261, ptr %a265 call void @finch_str_drop(ptr %a265) @@ -62891,24 +65342,24 @@ inrange6291: call void @finch.drop.S_gen_Val(ptr %a10) call void @finch.drop.S_gen_Val(ptr %a6) ret %S.gen.Val %t282 -endif6261: +endif6504: %t283 = getelementptr inbounds %S.gen.Val, ptr %a6, i32 0, i32 1 %t284 = load %S.ast.Type, ptr %t283 %t285 = call i1 @finch.gen.isFloat(%S.ast.Type %t284) - br i1 %t285, label %then6292, label %endif6294 -then6292: + br i1 %t285, label %then6535, label %endif6537 +then6535: %t286 = mul i64 5, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t287 = call ptr @finch_alloc(i64 %t286) %t288 = getelementptr inbounds { ptr, i64, i64 }, ptr %t287, i64 0 - store { ptr, i64, i64 } { ptr @.str.4067, i64 1, i64 0 }, ptr %t288 + store { ptr, i64, i64 } { ptr @.str.4195, i64 1, i64 0 }, ptr %t288 %t289 = getelementptr inbounds { ptr, i64, i64 }, ptr %t287, i64 1 - store { ptr, i64, i64 } { ptr @.str.4068, i64 1, i64 0 }, ptr %t289 + store { ptr, i64, i64 } { ptr @.str.4196, i64 1, i64 0 }, ptr %t289 %t290 = getelementptr inbounds { ptr, i64, i64 }, ptr %t287, i64 2 - store { ptr, i64, i64 } { ptr @.str.4069, i64 1, i64 0 }, ptr %t290 + store { ptr, i64, i64 } { ptr @.str.4197, i64 1, i64 0 }, ptr %t290 %t291 = getelementptr inbounds { ptr, i64, i64 }, ptr %t287, i64 3 - store { ptr, i64, i64 } { ptr @.str.4070, i64 1, i64 0 }, ptr %t291 + store { ptr, i64, i64 } { ptr @.str.4198, i64 1, i64 0 }, ptr %t291 %t292 = getelementptr inbounds { ptr, i64, i64 }, ptr %t287, i64 4 - store { ptr, i64, i64 } { ptr @.str.4071, i64 1, i64 0 }, ptr %t292 + store { ptr, i64, i64 } { ptr @.str.4199, i64 1, i64 0 }, ptr %t292 %t293 = insertvalue { ptr, i64, i64 } undef, ptr %t287, 0 %t294 = insertvalue { ptr, i64, i64 } %t293, i64 5, 1 %t295 = insertvalue { ptr, i64, i64 } %t294, i64 5, 2 @@ -62916,15 +65367,15 @@ then6292: %t297 = mul i64 5, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t298 = call ptr @finch_alloc(i64 %t297) %t299 = getelementptr inbounds { ptr, i64, i64 }, ptr %t298, i64 0 - store { ptr, i64, i64 } { ptr @.str.4072, i64 4, i64 0 }, ptr %t299 + store { ptr, i64, i64 } { ptr @.str.4200, i64 4, i64 0 }, ptr %t299 %t300 = getelementptr inbounds { ptr, i64, i64 }, ptr %t298, i64 1 - store { ptr, i64, i64 } { ptr @.str.4073, i64 4, i64 0 }, ptr %t300 + store { ptr, i64, i64 } { ptr @.str.4201, i64 4, i64 0 }, ptr %t300 %t301 = getelementptr inbounds { ptr, i64, i64 }, ptr %t298, i64 2 - store { ptr, i64, i64 } { ptr @.str.4074, i64 4, i64 0 }, ptr %t301 + store { ptr, i64, i64 } { ptr @.str.4202, i64 4, i64 0 }, ptr %t301 %t302 = getelementptr inbounds { ptr, i64, i64 }, ptr %t298, i64 3 - store { ptr, i64, i64 } { ptr @.str.4075, i64 4, i64 0 }, ptr %t302 + store { ptr, i64, i64 } { ptr @.str.4203, i64 4, i64 0 }, ptr %t302 %t303 = getelementptr inbounds { ptr, i64, i64 }, ptr %t298, i64 4 - store { ptr, i64, i64 } { ptr @.str.4076, i64 4, i64 0 }, ptr %t303 + store { ptr, i64, i64 } { ptr @.str.4204, i64 4, i64 0 }, ptr %t303 %t304 = insertvalue { ptr, i64, i64 } undef, ptr %t298, 0 %t305 = insertvalue { ptr, i64, i64 } %t304, i64 5, 1 %t306 = insertvalue { ptr, i64, i64 } %t305, i64 5, 2 @@ -62935,56 +65386,56 @@ then6292: %t311 = load i64, ptr %t308 %t312 = load ptr, ptr %a296 store i64 0, ptr %a313 - br label %find.cond6295 -find.cond6295: + br label %find.cond6538 +find.cond6538: %t314 = load i64, ptr %a313 %t315 = icmp slt i64 %t314, %t311 - br i1 %t315, label %find.body6296, label %find.end6299 -find.body6296: + br i1 %t315, label %find.body6539, label %find.end6542 +find.body6539: %t316 = getelementptr inbounds { ptr, i64, i64 }, ptr %t312, i64 %t314 %t317 = load { ptr, i64, i64 }, ptr %t316 store { ptr, i64, i64 } %t317, ptr %a318 store { ptr, i64, i64 } %t309, ptr %a319 %t320 = call i32 @finch_str_eq(ptr %a318, ptr %a319) %t321 = icmp ne i32 %t320, 0 - br i1 %t321, label %find.hit6297, label %find.next6298 -find.hit6297: + br i1 %t321, label %find.hit6540, label %find.next6541 +find.hit6540: store i64 %t314, ptr %a310 - br label %find.end6299 -find.next6298: + br label %find.end6542 +find.next6541: %t322 = add i64 %t314, 1 store i64 %t322, ptr %a313 - br label %find.cond6295 -find.end6299: + br label %find.cond6538 +find.end6542: %t323 = load i64, ptr %a310 store i64 %t323, ptr %a324 %t325 = load i64, ptr %a324 %t326 = icmp slt i64 %t325, 0 - br i1 %t326, label %then6300, label %endif6302 -then6300: + br i1 %t326, label %then6543, label %endif6545 +then6543: %t327 = load ptr, ptr %a1 %t328 = load { ptr, i64, i64 }, ptr %a2 %t329 = load %S.gen.Val, ptr %a6 %t330 = load %S.gen.Val, ptr %a10 %t331 = load %S.ast.Node, ptr %a11 call void @finch.gen.badOperands(ptr %t327, { ptr, i64, i64 } %t328, %S.gen.Val %t329, %S.gen.Val %t330, %S.ast.Node %t331) - br label %endif6302 -endif6302: + br label %endif6545 +endif6545: %t332 = load ptr, ptr %a1 %t333 = load i64, ptr %a324 %t334 = load { ptr, i64, i64 }, ptr %a307 %t335 = extractvalue { ptr, i64, i64 } %t334, 1 %t336 = icmp uge i64 %t333, %t335 - br i1 %t336, label %range6303, label %inrange6304 -range6303: - call void @finch_panic_index(ptr @.str.4077, i64 3411, i64 %t333, i64 %t335) + br i1 %t336, label %range6546, label %inrange6547 +range6546: + call void @finch_panic_index(ptr @.str.4205, i64 3549, i64 %t333, i64 %t335) unreachable -inrange6304: +inrange6547: %t337 = extractvalue { ptr, i64, i64 } %t334, 0 %t338 = getelementptr inbounds { ptr, i64, i64 }, ptr %t337, i64 %t333 %t339 = load { ptr, i64, i64 }, ptr %t338 store { ptr, i64, i64 } %t339, ptr %a341 - store { ptr, i64, i64 } { ptr @.str.4078, i64 1, i64 0 }, ptr %a342 + store { ptr, i64, i64 } { ptr @.str.4206, i64 1, i64 0 }, ptr %a342 call void @finch_str_concat(ptr %a340, ptr %a341, ptr %a342) %t343 = load { ptr, i64, i64 }, ptr %a340 %t344 = load ptr, ptr %a1 @@ -63000,7 +65451,7 @@ inrange6304: call void @finch_str_drop(ptr %a352) %t353 = load { ptr, i64, i64 }, ptr %a348 store { ptr, i64, i64 } %t353, ptr %a355 - store { ptr, i64, i64 } { ptr @.str.4079, i64 1, i64 0 }, ptr %a356 + store { ptr, i64, i64 } { ptr @.str.4207, i64 1, i64 0 }, ptr %a356 call void @finch_str_concat(ptr %a354, ptr %a355, ptr %a356) store { ptr, i64, i64 } %t353, ptr %a357 call void @finch_str_drop(ptr %a357) @@ -63014,7 +65465,7 @@ inrange6304: call void @finch_str_drop(ptr %a364) %t365 = load { ptr, i64, i64 }, ptr %a361 store { ptr, i64, i64 } %t365, ptr %a367 - store { ptr, i64, i64 } { ptr @.str.4080, i64 2, i64 0 }, ptr %a368 + store { ptr, i64, i64 } { ptr @.str.4208, i64 2, i64 0 }, ptr %a368 call void @finch_str_concat(ptr %a366, ptr %a367, ptr %a368) store { ptr, i64, i64 } %t365, ptr %a369 call void @finch_str_drop(ptr %a369) @@ -63042,7 +65493,7 @@ inrange6304: call void @finch.drop.S_gen_Val(ptr %a10) call void @finch.drop.S_gen_Val(ptr %a6) ret %S.gen.Val %t386 -endif6294: +endif6537: %t387 = load ptr, ptr %a1 %t388 = load { ptr, i64, i64 }, ptr %a2 %t389 = load %S.gen.Val, ptr %a6 @@ -63304,145 +65755,145 @@ entry: store %S.ast.Node %p4, ptr %a11 %t12 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t12, ptr %a13 - store { ptr, i64, i64 } { ptr @.str.4081, i64 2, i64 0 }, ptr %a14 + store { ptr, i64, i64 } { ptr @.str.4209, i64 2, i64 0 }, ptr %a14 %t15 = call i32 @finch_str_eq(ptr %a13, ptr %a14) %t16 = icmp ne i32 %t15, 0 - br label %logic.from6305 -logic.from6305: - br i1 %t16, label %logic.end6307, label %logic.rhs6306 -logic.rhs6306: + br label %logic.from6548 +logic.from6548: + br i1 %t16, label %logic.end6550, label %logic.rhs6549 +logic.rhs6549: %t17 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t17, ptr %a18 - store { ptr, i64, i64 } { ptr @.str.4082, i64 2, i64 0 }, ptr %a19 + store { ptr, i64, i64 } { ptr @.str.4210, i64 2, i64 0 }, ptr %a19 %t20 = call i32 @finch_str_eq(ptr %a18, ptr %a19) %t21 = icmp ne i32 %t20, 0 - br label %logic.rend6308 -logic.rend6308: - br label %logic.end6307 -logic.end6307: - %t22 = phi i1 [ true, %logic.from6305 ], [ %t21, %logic.rend6308 ] + br label %logic.rend6551 +logic.rend6551: + br label %logic.end6550 +logic.end6550: + %t22 = phi i1 [ true, %logic.from6548 ], [ %t21, %logic.rend6551 ] store i1 %t22, ptr %a23 %t24 = getelementptr inbounds %S.gen.Val, ptr %a6, i32 0, i32 1 %t25 = getelementptr inbounds %S.ast.Type, ptr %t24, i32 0, i32 0 %t26 = load { ptr, i64, i64 }, ptr %t25 store { ptr, i64, i64 } %t26, ptr %a27 - store { ptr, i64, i64 } { ptr @.str.4083, i64 3, i64 0 }, ptr %a28 + store { ptr, i64, i64 } { ptr @.str.4211, i64 3, i64 0 }, ptr %a28 %t29 = call i32 @finch_str_eq(ptr %a27, ptr %a28) %t30 = icmp ne i32 %t29, 0 - br label %logic.from6309 -logic.from6309: - br i1 %t30, label %logic.end6311, label %logic.rhs6310 -logic.rhs6310: + br label %logic.from6552 +logic.from6552: + br i1 %t30, label %logic.end6554, label %logic.rhs6553 +logic.rhs6553: %t31 = getelementptr inbounds %S.gen.Val, ptr %a10, i32 0, i32 1 %t32 = getelementptr inbounds %S.ast.Type, ptr %t31, i32 0, i32 0 %t33 = load { ptr, i64, i64 }, ptr %t32 store { ptr, i64, i64 } %t33, ptr %a34 - store { ptr, i64, i64 } { ptr @.str.4084, i64 3, i64 0 }, ptr %a35 + store { ptr, i64, i64 } { ptr @.str.4212, i64 3, i64 0 }, ptr %a35 %t36 = call i32 @finch_str_eq(ptr %a34, ptr %a35) %t37 = icmp ne i32 %t36, 0 - br label %logic.rend6312 -logic.rend6312: - br label %logic.end6311 -logic.end6311: - %t38 = phi i1 [ true, %logic.from6309 ], [ %t37, %logic.rend6312 ] - br label %logic.from6313 -logic.from6313: - br i1 %t38, label %logic.end6315, label %logic.rhs6314 -logic.rhs6314: + br label %logic.rend6555 +logic.rend6555: + br label %logic.end6554 +logic.end6554: + %t38 = phi i1 [ true, %logic.from6552 ], [ %t37, %logic.rend6555 ] + br label %logic.from6556 +logic.from6556: + br i1 %t38, label %logic.end6558, label %logic.rhs6557 +logic.rhs6557: %t39 = getelementptr inbounds %S.gen.Val, ptr %a6, i32 0, i32 1 %t40 = getelementptr inbounds %S.ast.Type, ptr %t39, i32 0, i32 0 %t41 = load { ptr, i64, i64 }, ptr %t40 store { ptr, i64, i64 } %t41, ptr %a42 - store { ptr, i64, i64 } { ptr @.str.4085, i64 4, i64 0 }, ptr %a43 + store { ptr, i64, i64 } { ptr @.str.4213, i64 4, i64 0 }, ptr %a43 %t44 = call i32 @finch_str_eq(ptr %a42, ptr %a43) %t45 = icmp ne i32 %t44, 0 - br label %logic.rend6316 -logic.rend6316: - br label %logic.end6315 -logic.end6315: - %t46 = phi i1 [ true, %logic.from6313 ], [ %t45, %logic.rend6316 ] - br label %logic.from6317 -logic.from6317: - br i1 %t46, label %logic.end6319, label %logic.rhs6318 -logic.rhs6318: + br label %logic.rend6559 +logic.rend6559: + br label %logic.end6558 +logic.end6558: + %t46 = phi i1 [ true, %logic.from6556 ], [ %t45, %logic.rend6559 ] + br label %logic.from6560 +logic.from6560: + br i1 %t46, label %logic.end6562, label %logic.rhs6561 +logic.rhs6561: %t47 = getelementptr inbounds %S.gen.Val, ptr %a10, i32 0, i32 1 %t48 = getelementptr inbounds %S.ast.Type, ptr %t47, i32 0, i32 0 %t49 = load { ptr, i64, i64 }, ptr %t48 store { ptr, i64, i64 } %t49, ptr %a50 - store { ptr, i64, i64 } { ptr @.str.4086, i64 4, i64 0 }, ptr %a51 + store { ptr, i64, i64 } { ptr @.str.4214, i64 4, i64 0 }, ptr %a51 %t52 = call i32 @finch_str_eq(ptr %a50, ptr %a51) %t53 = icmp ne i32 %t52, 0 - br label %logic.rend6320 -logic.rend6320: - br label %logic.end6319 -logic.end6319: - %t54 = phi i1 [ true, %logic.from6317 ], [ %t53, %logic.rend6320 ] - br i1 %t54, label %then6321, label %endif6323 -then6321: + br label %logic.rend6563 +logic.rend6563: + br label %logic.end6562 +logic.end6562: + %t54 = phi i1 [ true, %logic.from6560 ], [ %t53, %logic.rend6563 ] + br i1 %t54, label %then6564, label %endif6566 +then6564: %t55 = getelementptr inbounds %S.gen.Val, ptr %a6, i32 0, i32 1 %t56 = getelementptr inbounds %S.ast.Type, ptr %t55, i32 0, i32 0 %t57 = load { ptr, i64, i64 }, ptr %t56 store { ptr, i64, i64 } %t57, ptr %a58 - store { ptr, i64, i64 } { ptr @.str.4087, i64 3, i64 0 }, ptr %a59 + store { ptr, i64, i64 } { ptr @.str.4215, i64 3, i64 0 }, ptr %a59 %t60 = call i32 @finch_str_eq(ptr %a58, ptr %a59) %t61 = icmp ne i32 %t60, 0 - br label %logic.from6324 -logic.from6324: - br i1 %t61, label %logic.end6326, label %logic.rhs6325 -logic.rhs6325: + br label %logic.from6567 +logic.from6567: + br i1 %t61, label %logic.end6569, label %logic.rhs6568 +logic.rhs6568: %t62 = getelementptr inbounds %S.gen.Val, ptr %a10, i32 0, i32 1 %t63 = getelementptr inbounds %S.ast.Type, ptr %t62, i32 0, i32 0 %t64 = load { ptr, i64, i64 }, ptr %t63 store { ptr, i64, i64 } %t64, ptr %a65 - store { ptr, i64, i64 } { ptr @.str.4088, i64 3, i64 0 }, ptr %a66 + store { ptr, i64, i64 } { ptr @.str.4216, i64 3, i64 0 }, ptr %a66 %t67 = call i32 @finch_str_eq(ptr %a65, ptr %a66) %t68 = icmp ne i32 %t67, 0 - br label %logic.rend6327 -logic.rend6327: - br label %logic.end6326 -logic.end6326: - %t69 = phi i1 [ true, %logic.from6324 ], [ %t68, %logic.rend6327 ] - br i1 %t69, label %then6328, label %endif6330 -then6328: + br label %logic.rend6570 +logic.rend6570: + br label %logic.end6569 +logic.end6569: + %t69 = phi i1 [ true, %logic.from6567 ], [ %t68, %logic.rend6570 ] + br i1 %t69, label %then6571, label %endif6573 +then6571: %t70 = load ptr, ptr %a1 %t71 = load %S.ast.Node, ptr %a11 - call void @finch.gen.fail(ptr %t70, %S.ast.Node %t71, { ptr, i64, i64 } { ptr @.str.4089, i64 59, i64 0 }) - br label %endif6330 -endif6330: + call void @finch.gen.fail(ptr %t70, %S.ast.Node %t71, { ptr, i64, i64 } { ptr @.str.4217, i64 59, i64 0 }) + br label %endif6573 +endif6573: %t72 = load i1, ptr %a23 %t73 = xor i1 %t72, true - br i1 %t73, label %then6331, label %endif6333 -then6331: + br i1 %t73, label %then6574, label %endif6576 +then6574: %t74 = load ptr, ptr %a1 %t75 = load { ptr, i64, i64 }, ptr %a2 %t76 = load %S.gen.Val, ptr %a6 %t77 = load %S.gen.Val, ptr %a10 %t78 = load %S.ast.Node, ptr %a11 call void @finch.gen.badOperands(ptr %t74, { ptr, i64, i64 } %t75, %S.gen.Val %t76, %S.gen.Val %t77, %S.ast.Node %t78) - br label %endif6333 -endif6333: - store { ptr, i64, i64 } { ptr @.str.4090, i64 2, i64 0 }, ptr %a79 + br label %endif6576 +endif6576: + store { ptr, i64, i64 } { ptr @.str.4218, i64 2, i64 0 }, ptr %a79 %t80 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t80, ptr %a81 - store { ptr, i64, i64 } { ptr @.str.4091, i64 2, i64 0 }, ptr %a82 + store { ptr, i64, i64 } { ptr @.str.4219, i64 2, i64 0 }, ptr %a82 %t83 = call i32 @finch_str_eq(ptr %a81, ptr %a82) %t84 = icmp ne i32 %t83, 0 - br i1 %t84, label %then6334, label %endif6336 -then6334: + br i1 %t84, label %then6577, label %endif6579 +then6577: %t85 = load { ptr, i64, i64 }, ptr %a79 - store { ptr, i64, i64 } { ptr @.str.4092, i64 2, i64 0 }, ptr %a79 + store { ptr, i64, i64 } { ptr @.str.4220, i64 2, i64 0 }, ptr %a79 store { ptr, i64, i64 } %t85, ptr %a86 call void @finch_str_drop(ptr %a86) - br label %endif6336 -endif6336: + br label %endif6579 +endif6579: %t87 = load ptr, ptr %a1 %t88 = load { ptr, i64, i64 }, ptr %a79 - store { ptr, i64, i64 } { ptr @.str.4093, i64 5, i64 0 }, ptr %a90 + store { ptr, i64, i64 } { ptr @.str.4221, i64 5, i64 0 }, ptr %a90 store { ptr, i64, i64 } %t88, ptr %a91 call void @finch_str_concat(ptr %a89, ptr %a90, ptr %a91) %t92 = load { ptr, i64, i64 }, ptr %a89 store { ptr, i64, i64 } %t92, ptr %a94 - store { ptr, i64, i64 } { ptr @.str.4094, i64 5, i64 0 }, ptr %a95 + store { ptr, i64, i64 } { ptr @.str.4222, i64 5, i64 0 }, ptr %a95 call void @finch_str_concat(ptr %a93, ptr %a94, ptr %a95) store { ptr, i64, i64 } %t92, ptr %a96 call void @finch_str_drop(ptr %a96) @@ -63456,7 +65907,7 @@ endif6336: call void @finch_str_drop(ptr %a103) %t104 = load { ptr, i64, i64 }, ptr %a100 store { ptr, i64, i64 } %t104, ptr %a106 - store { ptr, i64, i64 } { ptr @.str.4095, i64 2, i64 0 }, ptr %a107 + store { ptr, i64, i64 } { ptr @.str.4223, i64 2, i64 0 }, ptr %a107 call void @finch_str_concat(ptr %a105, ptr %a106, ptr %a107) store { ptr, i64, i64 } %t104, ptr %a108 call void @finch_str_drop(ptr %a108) @@ -63473,53 +65924,53 @@ endif6336: store { ptr, i64, i64 } %t116, ptr %a118 call void @finch_str_drop(ptr %a118) %t119 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t117, 0 - %t120 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4096, i64 4, i64 0 }) + %t120 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4224, i64 4, i64 0 }) %t121 = insertvalue %S.gen.Val %t119, %S.ast.Type %t120, 1 call void @finch_str_drop(ptr %a79) call void @finch.drop.S_gen_Val(ptr %a10) call void @finch.drop.S_gen_Val(ptr %a6) ret %S.gen.Val %t121 -endif6323: +endif6566: %t122 = getelementptr inbounds %S.gen.Val, ptr %a6, i32 0, i32 1 %t123 = getelementptr inbounds %S.ast.Type, ptr %t122, i32 0, i32 0 %t124 = load { ptr, i64, i64 }, ptr %t123 store { ptr, i64, i64 } %t124, ptr %a125 - store { ptr, i64, i64 } { ptr @.str.4097, i64 3, i64 0 }, ptr %a126 + store { ptr, i64, i64 } { ptr @.str.4225, i64 3, i64 0 }, ptr %a126 %t127 = call i32 @finch_str_eq(ptr %a125, ptr %a126) %t128 = icmp ne i32 %t127, 0 - br label %logic.from6337 -logic.from6337: - br i1 %t128, label %logic.rhs6338, label %logic.end6339 -logic.rhs6338: + br label %logic.from6580 +logic.from6580: + br i1 %t128, label %logic.rhs6581, label %logic.end6582 +logic.rhs6581: %t129 = getelementptr inbounds %S.gen.Val, ptr %a10, i32 0, i32 1 %t130 = getelementptr inbounds %S.ast.Type, ptr %t129, i32 0, i32 0 %t131 = load { ptr, i64, i64 }, ptr %t130 store { ptr, i64, i64 } %t131, ptr %a132 - store { ptr, i64, i64 } { ptr @.str.4098, i64 3, i64 0 }, ptr %a133 + store { ptr, i64, i64 } { ptr @.str.4226, i64 3, i64 0 }, ptr %a133 %t134 = call i32 @finch_str_eq(ptr %a132, ptr %a133) %t135 = icmp ne i32 %t134, 0 - br label %logic.rend6340 -logic.rend6340: - br label %logic.end6339 -logic.end6339: - %t136 = phi i1 [ false, %logic.from6337 ], [ %t135, %logic.rend6340 ] - br i1 %t136, label %then6341, label %endif6343 -then6341: + br label %logic.rend6583 +logic.rend6583: + br label %logic.end6582 +logic.end6582: + %t136 = phi i1 [ false, %logic.from6580 ], [ %t135, %logic.rend6583 ] + br i1 %t136, label %then6584, label %endif6586 +then6584: %t137 = load i1, ptr %a23 - br i1 %t137, label %then6344, label %endif6346 -then6344: + br i1 %t137, label %then6587, label %endif6589 +then6587: %t138 = load ptr, ptr %a1 %t139 = load ptr, ptr %a1 %t140 = load %S.gen.Val, ptr %a6 %t141 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t139, %S.gen.Val %t140) - store { ptr, i64, i64 } { ptr @.str.4099, i64 27, i64 0 }, ptr %a143 + store { ptr, i64, i64 } { ptr @.str.4227, i64 27, i64 0 }, ptr %a143 store { ptr, i64, i64 } %t141, ptr %a144 call void @finch_str_concat(ptr %a142, ptr %a143, ptr %a144) store { ptr, i64, i64 } %t141, ptr %a145 call void @finch_str_drop(ptr %a145) %t146 = load { ptr, i64, i64 }, ptr %a142 store { ptr, i64, i64 } %t146, ptr %a148 - store { ptr, i64, i64 } { ptr @.str.4100, i64 6, i64 0 }, ptr %a149 + store { ptr, i64, i64 } { ptr @.str.4228, i64 6, i64 0 }, ptr %a149 call void @finch_str_concat(ptr %a147, ptr %a148, ptr %a149) store { ptr, i64, i64 } %t146, ptr %a150 call void @finch_str_drop(ptr %a150) @@ -63536,7 +65987,7 @@ then6344: call void @finch_str_drop(ptr %a159) %t160 = load { ptr, i64, i64 }, ptr %a155 store { ptr, i64, i64 } %t160, ptr %a162 - store { ptr, i64, i64 } { ptr @.str.4101, i64 1, i64 0 }, ptr %a163 + store { ptr, i64, i64 } { ptr @.str.4229, i64 1, i64 0 }, ptr %a163 call void @finch_str_concat(ptr %a161, ptr %a162, ptr %a163) store { ptr, i64, i64 } %t160, ptr %a164 call void @finch_str_drop(ptr %a164) @@ -63545,28 +65996,28 @@ then6344: store { ptr, i64, i64 } %t165, ptr %a167 call void @finch_str_drop(ptr %a167) store { ptr, i64, i64 } %t166, ptr %a168 - store { ptr, i64, i64 } { ptr @.str.4102, i64 2, i64 0 }, ptr %a169 + store { ptr, i64, i64 } { ptr @.str.4230, i64 2, i64 0 }, ptr %a169 %t170 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t170, ptr %a171 - store { ptr, i64, i64 } { ptr @.str.4103, i64 2, i64 0 }, ptr %a172 + store { ptr, i64, i64 } { ptr @.str.4231, i64 2, i64 0 }, ptr %a172 %t173 = call i32 @finch_str_eq(ptr %a171, ptr %a172) %t174 = icmp ne i32 %t173, 0 - br i1 %t174, label %then6347, label %endif6349 -then6347: + br i1 %t174, label %then6590, label %endif6592 +then6590: %t175 = load { ptr, i64, i64 }, ptr %a169 - store { ptr, i64, i64 } { ptr @.str.4104, i64 2, i64 0 }, ptr %a169 + store { ptr, i64, i64 } { ptr @.str.4232, i64 2, i64 0 }, ptr %a169 store { ptr, i64, i64 } %t175, ptr %a176 call void @finch_str_drop(ptr %a176) - br label %endif6349 -endif6349: + br label %endif6592 +endif6592: %t177 = load ptr, ptr %a1 %t178 = load { ptr, i64, i64 }, ptr %a169 - store { ptr, i64, i64 } { ptr @.str.4105, i64 5, i64 0 }, ptr %a180 + store { ptr, i64, i64 } { ptr @.str.4233, i64 5, i64 0 }, ptr %a180 store { ptr, i64, i64 } %t178, ptr %a181 call void @finch_str_concat(ptr %a179, ptr %a180, ptr %a181) %t182 = load { ptr, i64, i64 }, ptr %a179 store { ptr, i64, i64 } %t182, ptr %a184 - store { ptr, i64, i64 } { ptr @.str.4106, i64 5, i64 0 }, ptr %a185 + store { ptr, i64, i64 } { ptr @.str.4234, i64 5, i64 0 }, ptr %a185 call void @finch_str_concat(ptr %a183, ptr %a184, ptr %a185) store { ptr, i64, i64 } %t182, ptr %a186 call void @finch_str_drop(ptr %a186) @@ -63579,7 +66030,7 @@ endif6349: call void @finch_str_drop(ptr %a192) %t193 = load { ptr, i64, i64 }, ptr %a189 store { ptr, i64, i64 } %t193, ptr %a195 - store { ptr, i64, i64 } { ptr @.str.4107, i64 3, i64 0 }, ptr %a196 + store { ptr, i64, i64 } { ptr @.str.4235, i64 3, i64 0 }, ptr %a196 call void @finch_str_concat(ptr %a194, ptr %a195, ptr %a196) store { ptr, i64, i64 } %t193, ptr %a197 call void @finch_str_drop(ptr %a197) @@ -63599,7 +66050,7 @@ endif6349: call void @finch_str_copy(ptr %a208, ptr %a207) %t209 = load { ptr, i64, i64 }, ptr %a208 %t210 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t209, 0 - %t211 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4108, i64 4, i64 0 }) + %t211 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4236, i64 4, i64 0 }) %t212 = insertvalue %S.gen.Val %t210, %S.ast.Type %t211, 1 call void @finch_str_drop(ptr %a201) call void @finch_str_drop(ptr %a169) @@ -63607,19 +66058,19 @@ endif6349: call void @finch.drop.S_gen_Val(ptr %a10) call void @finch.drop.S_gen_Val(ptr %a6) ret %S.gen.Val %t212 -endif6346: +endif6589: %t213 = load ptr, ptr %a1 %t214 = load ptr, ptr %a1 %t215 = load %S.gen.Val, ptr %a6 %t216 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t214, %S.gen.Val %t215) - store { ptr, i64, i64 } { ptr @.str.4109, i64 28, i64 0 }, ptr %a218 + store { ptr, i64, i64 } { ptr @.str.4237, i64 28, i64 0 }, ptr %a218 store { ptr, i64, i64 } %t216, ptr %a219 call void @finch_str_concat(ptr %a217, ptr %a218, ptr %a219) store { ptr, i64, i64 } %t216, ptr %a220 call void @finch_str_drop(ptr %a220) %t221 = load { ptr, i64, i64 }, ptr %a217 store { ptr, i64, i64 } %t221, ptr %a223 - store { ptr, i64, i64 } { ptr @.str.4110, i64 6, i64 0 }, ptr %a224 + store { ptr, i64, i64 } { ptr @.str.4238, i64 6, i64 0 }, ptr %a224 call void @finch_str_concat(ptr %a222, ptr %a223, ptr %a224) store { ptr, i64, i64 } %t221, ptr %a225 call void @finch_str_drop(ptr %a225) @@ -63636,7 +66087,7 @@ endif6346: call void @finch_str_drop(ptr %a234) %t235 = load { ptr, i64, i64 }, ptr %a230 store { ptr, i64, i64 } %t235, ptr %a237 - store { ptr, i64, i64 } { ptr @.str.4111, i64 1, i64 0 }, ptr %a238 + store { ptr, i64, i64 } { ptr @.str.4239, i64 1, i64 0 }, ptr %a238 call void @finch_str_concat(ptr %a236, ptr %a237, ptr %a238) store { ptr, i64, i64 } %t235, ptr %a239 call void @finch_str_drop(ptr %a239) @@ -63648,14 +66099,14 @@ endif6346: %t244 = load ptr, ptr %a1 %t245 = load { ptr, i64, i64 }, ptr %a2 %t246 = call { ptr, i64, i64 } @finch.gen.intPred({ ptr, i64, i64 } %t245, i1 true) - store { ptr, i64, i64 } { ptr @.str.4112, i64 5, i64 0 }, ptr %a248 + store { ptr, i64, i64 } { ptr @.str.4240, i64 5, i64 0 }, ptr %a248 store { ptr, i64, i64 } %t246, ptr %a249 call void @finch_str_concat(ptr %a247, ptr %a248, ptr %a249) store { ptr, i64, i64 } %t246, ptr %a250 call void @finch_str_drop(ptr %a250) %t251 = load { ptr, i64, i64 }, ptr %a247 store { ptr, i64, i64 } %t251, ptr %a253 - store { ptr, i64, i64 } { ptr @.str.4113, i64 5, i64 0 }, ptr %a254 + store { ptr, i64, i64 } { ptr @.str.4241, i64 5, i64 0 }, ptr %a254 call void @finch_str_concat(ptr %a252, ptr %a253, ptr %a254) store { ptr, i64, i64 } %t251, ptr %a255 call void @finch_str_drop(ptr %a255) @@ -63668,7 +66119,7 @@ endif6346: call void @finch_str_drop(ptr %a261) %t262 = load { ptr, i64, i64 }, ptr %a258 store { ptr, i64, i64 } %t262, ptr %a264 - store { ptr, i64, i64 } { ptr @.str.4114, i64 3, i64 0 }, ptr %a265 + store { ptr, i64, i64 } { ptr @.str.4242, i64 3, i64 0 }, ptr %a265 call void @finch_str_concat(ptr %a263, ptr %a264, ptr %a265) store { ptr, i64, i64 } %t262, ptr %a266 call void @finch_str_drop(ptr %a266) @@ -63688,27 +66139,27 @@ endif6346: call void @finch_str_copy(ptr %a277, ptr %a276) %t278 = load { ptr, i64, i64 }, ptr %a277 %t279 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t278, 0 - %t280 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4115, i64 4, i64 0 }) + %t280 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4243, i64 4, i64 0 }) %t281 = insertvalue %S.gen.Val %t279, %S.ast.Type %t280, 1 call void @finch_str_drop(ptr %a270) call void @finch_str_drop(ptr %a243) call void @finch.drop.S_gen_Val(ptr %a10) call void @finch.drop.S_gen_Val(ptr %a6) ret %S.gen.Val %t281 -endif6343: +endif6586: %t282 = load ptr, ptr %a1 %t283 = call i1 @finch.gen.unify(ptr %t282, ptr %a6, ptr %a10) %t284 = xor i1 %t283, true - br i1 %t284, label %then6350, label %endif6352 -then6350: + br i1 %t284, label %then6593, label %endif6595 +then6593: %t285 = load ptr, ptr %a1 %t286 = load { ptr, i64, i64 }, ptr %a2 %t287 = load %S.gen.Val, ptr %a6 %t288 = load %S.gen.Val, ptr %a10 %t289 = load %S.ast.Node, ptr %a11 call void @finch.gen.badOperands(ptr %t285, { ptr, i64, i64 } %t286, %S.gen.Val %t287, %S.gen.Val %t288, %S.ast.Node %t289) - br label %endif6352 -endif6352: + br label %endif6595 +endif6595: %t290 = getelementptr inbounds %S.gen.Val, ptr %a6, i32 0, i32 1 %t291 = getelementptr inbounds %S.ast.Type, ptr %t290, i32 0, i32 0 %t292 = load { ptr, i64, i64 }, ptr %t291 @@ -63719,22 +66170,22 @@ endif6352: %t297 = getelementptr inbounds %S.gen.Val, ptr %a6, i32 0, i32 1 %t298 = load %S.ast.Type, ptr %t297 %t299 = call i1 @finch.gen.isFloat(%S.ast.Type %t298) - br i1 %t299, label %then6353, label %endif6355 -then6353: + br i1 %t299, label %then6596, label %endif6598 +then6596: %t300 = mul i64 6, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t301 = call ptr @finch_alloc(i64 %t300) %t302 = getelementptr inbounds { ptr, i64, i64 }, ptr %t301, i64 0 - store { ptr, i64, i64 } { ptr @.str.4116, i64 2, i64 0 }, ptr %t302 + store { ptr, i64, i64 } { ptr @.str.4244, i64 2, i64 0 }, ptr %t302 %t303 = getelementptr inbounds { ptr, i64, i64 }, ptr %t301, i64 1 - store { ptr, i64, i64 } { ptr @.str.4117, i64 2, i64 0 }, ptr %t303 + store { ptr, i64, i64 } { ptr @.str.4245, i64 2, i64 0 }, ptr %t303 %t304 = getelementptr inbounds { ptr, i64, i64 }, ptr %t301, i64 2 - store { ptr, i64, i64 } { ptr @.str.4118, i64 1, i64 0 }, ptr %t304 + store { ptr, i64, i64 } { ptr @.str.4246, i64 1, i64 0 }, ptr %t304 %t305 = getelementptr inbounds { ptr, i64, i64 }, ptr %t301, i64 3 - store { ptr, i64, i64 } { ptr @.str.4119, i64 2, i64 0 }, ptr %t305 + store { ptr, i64, i64 } { ptr @.str.4247, i64 2, i64 0 }, ptr %t305 %t306 = getelementptr inbounds { ptr, i64, i64 }, ptr %t301, i64 4 - store { ptr, i64, i64 } { ptr @.str.4120, i64 1, i64 0 }, ptr %t306 + store { ptr, i64, i64 } { ptr @.str.4248, i64 1, i64 0 }, ptr %t306 %t307 = getelementptr inbounds { ptr, i64, i64 }, ptr %t301, i64 5 - store { ptr, i64, i64 } { ptr @.str.4121, i64 2, i64 0 }, ptr %t307 + store { ptr, i64, i64 } { ptr @.str.4249, i64 2, i64 0 }, ptr %t307 %t308 = insertvalue { ptr, i64, i64 } undef, ptr %t301, 0 %t309 = insertvalue { ptr, i64, i64 } %t308, i64 6, 1 %t310 = insertvalue { ptr, i64, i64 } %t309, i64 6, 2 @@ -63742,17 +66193,17 @@ then6353: %t312 = mul i64 6, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t313 = call ptr @finch_alloc(i64 %t312) %t314 = getelementptr inbounds { ptr, i64, i64 }, ptr %t313, i64 0 - store { ptr, i64, i64 } { ptr @.str.4122, i64 3, i64 0 }, ptr %t314 + store { ptr, i64, i64 } { ptr @.str.4250, i64 3, i64 0 }, ptr %t314 %t315 = getelementptr inbounds { ptr, i64, i64 }, ptr %t313, i64 1 - store { ptr, i64, i64 } { ptr @.str.4123, i64 3, i64 0 }, ptr %t315 + store { ptr, i64, i64 } { ptr @.str.4251, i64 3, i64 0 }, ptr %t315 %t316 = getelementptr inbounds { ptr, i64, i64 }, ptr %t313, i64 2 - store { ptr, i64, i64 } { ptr @.str.4124, i64 3, i64 0 }, ptr %t316 + store { ptr, i64, i64 } { ptr @.str.4252, i64 3, i64 0 }, ptr %t316 %t317 = getelementptr inbounds { ptr, i64, i64 }, ptr %t313, i64 3 - store { ptr, i64, i64 } { ptr @.str.4125, i64 3, i64 0 }, ptr %t317 + store { ptr, i64, i64 } { ptr @.str.4253, i64 3, i64 0 }, ptr %t317 %t318 = getelementptr inbounds { ptr, i64, i64 }, ptr %t313, i64 4 - store { ptr, i64, i64 } { ptr @.str.4126, i64 3, i64 0 }, ptr %t318 + store { ptr, i64, i64 } { ptr @.str.4254, i64 3, i64 0 }, ptr %t318 %t319 = getelementptr inbounds { ptr, i64, i64 }, ptr %t313, i64 5 - store { ptr, i64, i64 } { ptr @.str.4127, i64 3, i64 0 }, ptr %t319 + store { ptr, i64, i64 } { ptr @.str.4255, i64 3, i64 0 }, ptr %t319 %t320 = insertvalue { ptr, i64, i64 } undef, ptr %t313, 0 %t321 = insertvalue { ptr, i64, i64 } %t320, i64 6, 1 %t322 = insertvalue { ptr, i64, i64 } %t321, i64 6, 2 @@ -63764,45 +66215,45 @@ then6353: %t328 = load i64, ptr %t325 %t329 = load ptr, ptr %a311 store i64 0, ptr %a330 - br label %find.cond6356 -find.cond6356: + br label %find.cond6599 +find.cond6599: %t331 = load i64, ptr %a330 %t332 = icmp slt i64 %t331, %t328 - br i1 %t332, label %find.body6357, label %find.end6360 -find.body6357: + br i1 %t332, label %find.body6600, label %find.end6603 +find.body6600: %t333 = getelementptr inbounds { ptr, i64, i64 }, ptr %t329, i64 %t331 %t334 = load { ptr, i64, i64 }, ptr %t333 store { ptr, i64, i64 } %t334, ptr %a335 store { ptr, i64, i64 } %t326, ptr %a336 %t337 = call i32 @finch_str_eq(ptr %a335, ptr %a336) %t338 = icmp ne i32 %t337, 0 - br i1 %t338, label %find.hit6358, label %find.next6359 -find.hit6358: + br i1 %t338, label %find.hit6601, label %find.next6602 +find.hit6601: store i64 %t331, ptr %a327 - br label %find.end6360 -find.next6359: + br label %find.end6603 +find.next6602: %t339 = add i64 %t331, 1 store i64 %t339, ptr %a330 - br label %find.cond6356 -find.end6360: + br label %find.cond6599 +find.end6603: %t340 = load i64, ptr %a327 %t341 = load { ptr, i64, i64 }, ptr %a323 %t342 = extractvalue { ptr, i64, i64 } %t341, 1 %t343 = icmp uge i64 %t340, %t342 - br i1 %t343, label %range6361, label %inrange6362 -range6361: - call void @finch_panic_index(ptr @.str.4129, i64 3457, i64 %t340, i64 %t342) + br i1 %t343, label %range6604, label %inrange6605 +range6604: + call void @finch_panic_index(ptr @.str.4257, i64 3595, i64 %t340, i64 %t342) unreachable -inrange6362: +inrange6605: %t344 = extractvalue { ptr, i64, i64 } %t341, 0 %t345 = getelementptr inbounds { ptr, i64, i64 }, ptr %t344, i64 %t340 %t346 = load { ptr, i64, i64 }, ptr %t345 - store { ptr, i64, i64 } { ptr @.str.4128, i64 5, i64 0 }, ptr %a348 + store { ptr, i64, i64 } { ptr @.str.4256, i64 5, i64 0 }, ptr %a348 store { ptr, i64, i64 } %t346, ptr %a349 call void @finch_str_concat(ptr %a347, ptr %a348, ptr %a349) %t350 = load { ptr, i64, i64 }, ptr %a347 store { ptr, i64, i64 } %t350, ptr %a352 - store { ptr, i64, i64 } { ptr @.str.4130, i64 1, i64 0 }, ptr %a353 + store { ptr, i64, i64 } { ptr @.str.4258, i64 1, i64 0 }, ptr %a353 call void @finch_str_concat(ptr %a351, ptr %a352, ptr %a353) store { ptr, i64, i64 } %t350, ptr %a354 call void @finch_str_drop(ptr %a354) @@ -63820,7 +66271,7 @@ inrange6362: call void @finch_str_drop(ptr %a364) %t365 = load { ptr, i64, i64 }, ptr %a360 store { ptr, i64, i64 } %t365, ptr %a367 - store { ptr, i64, i64 } { ptr @.str.4131, i64 1, i64 0 }, ptr %a368 + store { ptr, i64, i64 } { ptr @.str.4259, i64 1, i64 0 }, ptr %a368 call void @finch_str_concat(ptr %a366, ptr %a367, ptr %a368) store { ptr, i64, i64 } %t365, ptr %a369 call void @finch_str_drop(ptr %a369) @@ -63834,7 +66285,7 @@ inrange6362: call void @finch_str_drop(ptr %a376) %t377 = load { ptr, i64, i64 }, ptr %a373 store { ptr, i64, i64 } %t377, ptr %a379 - store { ptr, i64, i64 } { ptr @.str.4132, i64 2, i64 0 }, ptr %a380 + store { ptr, i64, i64 } { ptr @.str.4260, i64 2, i64 0 }, ptr %a380 call void @finch_str_concat(ptr %a378, ptr %a379, ptr %a380) store { ptr, i64, i64 } %t377, ptr %a381 call void @finch_str_drop(ptr %a381) @@ -63851,7 +66302,7 @@ inrange6362: store { ptr, i64, i64 } %t389, ptr %a391 call void @finch_str_drop(ptr %a391) %t392 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t390, 0 - %t393 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4133, i64 4, i64 0 }) + %t393 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4261, i64 4, i64 0 }) %t394 = insertvalue %S.gen.Val %t392, %S.ast.Type %t393, 1 call void @finch.drop.arr_str(ptr %a323) call void @finch.drop.arr_str(ptr %a311) @@ -63859,45 +66310,45 @@ inrange6362: call void @finch.drop.S_gen_Val(ptr %a10) call void @finch.drop.S_gen_Val(ptr %a6) ret %S.gen.Val %t394 -endif6355: +endif6598: %t395 = load { ptr, i64, i64 }, ptr %a296 store { ptr, i64, i64 } %t395, ptr %a396 - store { ptr, i64, i64 } { ptr @.str.4134, i64 4, i64 0 }, ptr %a397 + store { ptr, i64, i64 } { ptr @.str.4262, i64 4, i64 0 }, ptr %a397 %t398 = call i32 @finch_str_eq(ptr %a396, ptr %a397) %t399 = icmp ne i32 %t398, 0 - br i1 %t399, label %then6363, label %endif6365 -then6363: + br i1 %t399, label %then6606, label %endif6608 +then6606: %t400 = load i1, ptr %a23 %t401 = xor i1 %t400, true - br i1 %t401, label %then6366, label %endif6368 -then6366: + br i1 %t401, label %then6609, label %endif6611 +then6609: %t402 = load ptr, ptr %a1 %t403 = load %S.ast.Node, ptr %a11 - call void @finch.gen.fail(ptr %t402, %S.ast.Node %t403, { ptr, i64, i64 } { ptr @.str.4135, i64 115, i64 0 }) - br label %endif6368 -endif6368: - store { ptr, i64, i64 } { ptr @.str.4136, i64 2, i64 0 }, ptr %a404 + call void @finch.gen.fail(ptr %t402, %S.ast.Node %t403, { ptr, i64, i64 } { ptr @.str.4263, i64 115, i64 0 }) + br label %endif6611 +endif6611: + store { ptr, i64, i64 } { ptr @.str.4264, i64 2, i64 0 }, ptr %a404 %t405 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t405, ptr %a406 - store { ptr, i64, i64 } { ptr @.str.4137, i64 2, i64 0 }, ptr %a407 + store { ptr, i64, i64 } { ptr @.str.4265, i64 2, i64 0 }, ptr %a407 %t408 = call i32 @finch_str_eq(ptr %a406, ptr %a407) %t409 = icmp ne i32 %t408, 0 - br i1 %t409, label %then6369, label %endif6371 -then6369: + br i1 %t409, label %then6612, label %endif6614 +then6612: %t410 = load { ptr, i64, i64 }, ptr %a404 - store { ptr, i64, i64 } { ptr @.str.4138, i64 2, i64 0 }, ptr %a404 + store { ptr, i64, i64 } { ptr @.str.4266, i64 2, i64 0 }, ptr %a404 store { ptr, i64, i64 } %t410, ptr %a411 call void @finch_str_drop(ptr %a411) - br label %endif6371 -endif6371: + br label %endif6614 +endif6614: %t412 = load ptr, ptr %a1 %t413 = load { ptr, i64, i64 }, ptr %a404 - store { ptr, i64, i64 } { ptr @.str.4139, i64 5, i64 0 }, ptr %a415 + store { ptr, i64, i64 } { ptr @.str.4267, i64 5, i64 0 }, ptr %a415 store { ptr, i64, i64 } %t413, ptr %a416 call void @finch_str_concat(ptr %a414, ptr %a415, ptr %a416) %t417 = load { ptr, i64, i64 }, ptr %a414 store { ptr, i64, i64 } %t417, ptr %a419 - store { ptr, i64, i64 } { ptr @.str.4140, i64 5, i64 0 }, ptr %a420 + store { ptr, i64, i64 } { ptr @.str.4268, i64 5, i64 0 }, ptr %a420 call void @finch_str_concat(ptr %a418, ptr %a419, ptr %a420) store { ptr, i64, i64 } %t417, ptr %a421 call void @finch_str_drop(ptr %a421) @@ -63911,7 +66362,7 @@ endif6371: call void @finch_str_drop(ptr %a428) %t429 = load { ptr, i64, i64 }, ptr %a425 store { ptr, i64, i64 } %t429, ptr %a431 - store { ptr, i64, i64 } { ptr @.str.4141, i64 2, i64 0 }, ptr %a432 + store { ptr, i64, i64 } { ptr @.str.4269, i64 2, i64 0 }, ptr %a432 call void @finch_str_concat(ptr %a430, ptr %a431, ptr %a432) store { ptr, i64, i64 } %t429, ptr %a433 call void @finch_str_drop(ptr %a433) @@ -63928,96 +66379,96 @@ endif6371: store { ptr, i64, i64 } %t441, ptr %a443 call void @finch_str_drop(ptr %a443) %t444 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t442, 0 - %t445 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4142, i64 4, i64 0 }) + %t445 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4270, i64 4, i64 0 }) %t446 = insertvalue %S.gen.Val %t444, %S.ast.Type %t445, 1 call void @finch_str_drop(ptr %a404) call void @finch_str_drop(ptr %a296) call void @finch.drop.S_gen_Val(ptr %a10) call void @finch.drop.S_gen_Val(ptr %a6) ret %S.gen.Val %t446 -endif6365: +endif6608: %t447 = load { ptr, i64, i64 }, ptr %a296 store { ptr, i64, i64 } %t447, ptr %a448 - store { ptr, i64, i64 } { ptr @.str.4143, i64 4, i64 0 }, ptr %a449 + store { ptr, i64, i64 } { ptr @.str.4271, i64 4, i64 0 }, ptr %a449 %t450 = call i32 @finch_str_eq(ptr %a448, ptr %a449) %t451 = icmp ne i32 %t450, 0 - br label %logic.from6372 -logic.from6372: - br i1 %t451, label %logic.rhs6373, label %logic.end6374 -logic.rhs6373: + br label %logic.from6615 +logic.from6615: + br i1 %t451, label %logic.rhs6616, label %logic.end6617 +logic.rhs6616: %t452 = load i1, ptr %a23 %t453 = xor i1 %t452, true - br label %logic.rend6375 -logic.rend6375: - br label %logic.end6374 -logic.end6374: - %t454 = phi i1 [ false, %logic.from6372 ], [ %t453, %logic.rend6375 ] - br i1 %t454, label %then6376, label %endif6378 -then6376: + br label %logic.rend6618 +logic.rend6618: + br label %logic.end6617 +logic.end6617: + %t454 = phi i1 [ false, %logic.from6615 ], [ %t453, %logic.rend6618 ] + br i1 %t454, label %then6619, label %endif6621 +then6619: %t455 = load ptr, ptr %a1 %t456 = load { ptr, i64, i64 }, ptr %a2 %t457 = load %S.gen.Val, ptr %a6 %t458 = load %S.gen.Val, ptr %a10 %t459 = load %S.ast.Node, ptr %a11 call void @finch.gen.badOperands(ptr %t455, { ptr, i64, i64 } %t456, %S.gen.Val %t457, %S.gen.Val %t458, %S.ast.Node %t459) - br label %endif6378 -endif6378: + br label %endif6621 +endif6621: %t460 = getelementptr inbounds %S.gen.Val, ptr %a6, i32 0, i32 1 %t461 = load %S.ast.Type, ptr %t460 %t462 = call i1 @finch.gen.isInt(%S.ast.Type %t461) %t463 = xor i1 %t462, true - br label %logic.from6379 -logic.from6379: - br i1 %t463, label %logic.rhs6380, label %logic.end6381 -logic.rhs6380: + br label %logic.from6622 +logic.from6622: + br i1 %t463, label %logic.rhs6623, label %logic.end6624 +logic.rhs6623: %t464 = load { ptr, i64, i64 }, ptr %a296 store { ptr, i64, i64 } %t464, ptr %a465 - store { ptr, i64, i64 } { ptr @.str.4144, i64 4, i64 0 }, ptr %a466 + store { ptr, i64, i64 } { ptr @.str.4272, i64 4, i64 0 }, ptr %a466 %t467 = call i32 @finch_str_eq(ptr %a465, ptr %a466) %t468 = icmp eq i32 %t467, 0 - br label %logic.rend6382 -logic.rend6382: - br label %logic.end6381 -logic.end6381: - %t469 = phi i1 [ false, %logic.from6379 ], [ %t468, %logic.rend6382 ] - br label %logic.from6383 -logic.from6383: - br i1 %t469, label %logic.rhs6384, label %logic.end6385 -logic.rhs6384: + br label %logic.rend6625 +logic.rend6625: + br label %logic.end6624 +logic.end6624: + %t469 = phi i1 [ false, %logic.from6622 ], [ %t468, %logic.rend6625 ] + br label %logic.from6626 +logic.from6626: + br i1 %t469, label %logic.rhs6627, label %logic.end6628 +logic.rhs6627: %t470 = load { ptr, i64, i64 }, ptr %a296 store { ptr, i64, i64 } %t470, ptr %a471 - store { ptr, i64, i64 } { ptr @.str.4145, i64 4, i64 0 }, ptr %a472 + store { ptr, i64, i64 } { ptr @.str.4273, i64 4, i64 0 }, ptr %a472 %t473 = call i32 @finch_str_eq(ptr %a471, ptr %a472) %t474 = icmp eq i32 %t473, 0 - br label %logic.rend6386 -logic.rend6386: - br label %logic.end6385 -logic.end6385: - %t475 = phi i1 [ false, %logic.from6383 ], [ %t474, %logic.rend6386 ] - br i1 %t475, label %then6387, label %endif6389 -then6387: + br label %logic.rend6629 +logic.rend6629: + br label %logic.end6628 +logic.end6628: + %t475 = phi i1 [ false, %logic.from6626 ], [ %t474, %logic.rend6629 ] + br i1 %t475, label %then6630, label %endif6632 +then6630: %t476 = load ptr, ptr %a1 %t477 = load { ptr, i64, i64 }, ptr %a2 %t478 = load %S.gen.Val, ptr %a6 %t479 = load %S.gen.Val, ptr %a10 %t480 = load %S.ast.Node, ptr %a11 call void @finch.gen.badOperands(ptr %t476, { ptr, i64, i64 } %t477, %S.gen.Val %t478, %S.gen.Val %t479, %S.ast.Node %t480) - br label %endif6389 -endif6389: + br label %endif6632 +endif6632: %t481 = load ptr, ptr %a1 %t482 = load { ptr, i64, i64 }, ptr %a2 %t483 = getelementptr inbounds %S.gen.Val, ptr %a6, i32 0, i32 1 %t484 = load %S.ast.Type, ptr %t483 %t485 = call i1 @finch.gen.isSigned(%S.ast.Type %t484) %t486 = call { ptr, i64, i64 } @finch.gen.intPred({ ptr, i64, i64 } %t482, i1 %t485) - store { ptr, i64, i64 } { ptr @.str.4146, i64 5, i64 0 }, ptr %a488 + store { ptr, i64, i64 } { ptr @.str.4274, i64 5, i64 0 }, ptr %a488 store { ptr, i64, i64 } %t486, ptr %a489 call void @finch_str_concat(ptr %a487, ptr %a488, ptr %a489) store { ptr, i64, i64 } %t486, ptr %a490 call void @finch_str_drop(ptr %a490) %t491 = load { ptr, i64, i64 }, ptr %a487 store { ptr, i64, i64 } %t491, ptr %a493 - store { ptr, i64, i64 } { ptr @.str.4147, i64 1, i64 0 }, ptr %a494 + store { ptr, i64, i64 } { ptr @.str.4275, i64 1, i64 0 }, ptr %a494 call void @finch_str_concat(ptr %a492, ptr %a493, ptr %a494) store { ptr, i64, i64 } %t491, ptr %a495 call void @finch_str_drop(ptr %a495) @@ -64035,7 +66486,7 @@ endif6389: call void @finch_str_drop(ptr %a505) %t506 = load { ptr, i64, i64 }, ptr %a501 store { ptr, i64, i64 } %t506, ptr %a508 - store { ptr, i64, i64 } { ptr @.str.4148, i64 1, i64 0 }, ptr %a509 + store { ptr, i64, i64 } { ptr @.str.4276, i64 1, i64 0 }, ptr %a509 call void @finch_str_concat(ptr %a507, ptr %a508, ptr %a509) store { ptr, i64, i64 } %t506, ptr %a510 call void @finch_str_drop(ptr %a510) @@ -64049,7 +66500,7 @@ endif6389: call void @finch_str_drop(ptr %a517) %t518 = load { ptr, i64, i64 }, ptr %a514 store { ptr, i64, i64 } %t518, ptr %a520 - store { ptr, i64, i64 } { ptr @.str.4149, i64 2, i64 0 }, ptr %a521 + store { ptr, i64, i64 } { ptr @.str.4277, i64 2, i64 0 }, ptr %a521 call void @finch_str_concat(ptr %a519, ptr %a520, ptr %a521) store { ptr, i64, i64 } %t518, ptr %a522 call void @finch_str_drop(ptr %a522) @@ -64066,7 +66517,7 @@ endif6389: store { ptr, i64, i64 } %t530, ptr %a532 call void @finch_str_drop(ptr %a532) %t533 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t531, 0 - %t534 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4150, i64 4, i64 0 }) + %t534 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4278, i64 4, i64 0 }) %t535 = insertvalue %S.gen.Val %t533, %S.ast.Type %t534, 1 call void @finch_str_drop(ptr %a296) call void @finch.drop.S_gen_Val(ptr %a10) @@ -64092,17 +66543,17 @@ entry: %t3 = mul i64 6, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t4 = call ptr @finch_alloc(i64 %t3) %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %t4, i64 0 - store { ptr, i64, i64 } { ptr @.str.4151, i64 2, i64 0 }, ptr %t5 + store { ptr, i64, i64 } { ptr @.str.4279, i64 2, i64 0 }, ptr %t5 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t4, i64 1 - store { ptr, i64, i64 } { ptr @.str.4152, i64 2, i64 0 }, ptr %t6 + store { ptr, i64, i64 } { ptr @.str.4280, i64 2, i64 0 }, ptr %t6 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t4, i64 2 - store { ptr, i64, i64 } { ptr @.str.4153, i64 1, i64 0 }, ptr %t7 + store { ptr, i64, i64 } { ptr @.str.4281, i64 1, i64 0 }, ptr %t7 %t8 = getelementptr inbounds { ptr, i64, i64 }, ptr %t4, i64 3 - store { ptr, i64, i64 } { ptr @.str.4154, i64 2, i64 0 }, ptr %t8 + store { ptr, i64, i64 } { ptr @.str.4282, i64 2, i64 0 }, ptr %t8 %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %t4, i64 4 - store { ptr, i64, i64 } { ptr @.str.4155, i64 1, i64 0 }, ptr %t9 + store { ptr, i64, i64 } { ptr @.str.4283, i64 1, i64 0 }, ptr %t9 %t10 = getelementptr inbounds { ptr, i64, i64 }, ptr %t4, i64 5 - store { ptr, i64, i64 } { ptr @.str.4156, i64 2, i64 0 }, ptr %t10 + store { ptr, i64, i64 } { ptr @.str.4284, i64 2, i64 0 }, ptr %t10 %t11 = insertvalue { ptr, i64, i64 } undef, ptr %t4, 0 %t12 = insertvalue { ptr, i64, i64 } %t11, i64 6, 1 %t13 = insertvalue { ptr, i64, i64 } %t12, i64 6, 2 @@ -64110,38 +66561,38 @@ entry: %t15 = mul i64 6, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t16 = call ptr @finch_alloc(i64 %t15) %t17 = getelementptr inbounds { ptr, i64, i64 }, ptr %t16, i64 0 - store { ptr, i64, i64 } { ptr @.str.4157, i64 2, i64 0 }, ptr %t17 + store { ptr, i64, i64 } { ptr @.str.4285, i64 2, i64 0 }, ptr %t17 %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %t16, i64 1 - store { ptr, i64, i64 } { ptr @.str.4158, i64 2, i64 0 }, ptr %t18 + store { ptr, i64, i64 } { ptr @.str.4286, i64 2, i64 0 }, ptr %t18 %t19 = getelementptr inbounds { ptr, i64, i64 }, ptr %t16, i64 2 - store { ptr, i64, i64 } { ptr @.str.4159, i64 3, i64 0 }, ptr %t19 + store { ptr, i64, i64 } { ptr @.str.4287, i64 3, i64 0 }, ptr %t19 %t20 = getelementptr inbounds { ptr, i64, i64 }, ptr %t16, i64 3 - store { ptr, i64, i64 } { ptr @.str.4160, i64 3, i64 0 }, ptr %t20 + store { ptr, i64, i64 } { ptr @.str.4288, i64 3, i64 0 }, ptr %t20 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t16, i64 4 - store { ptr, i64, i64 } { ptr @.str.4161, i64 3, i64 0 }, ptr %t21 + store { ptr, i64, i64 } { ptr @.str.4289, i64 3, i64 0 }, ptr %t21 %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %t16, i64 5 - store { ptr, i64, i64 } { ptr @.str.4162, i64 3, i64 0 }, ptr %t22 + store { ptr, i64, i64 } { ptr @.str.4290, i64 3, i64 0 }, ptr %t22 %t23 = insertvalue { ptr, i64, i64 } undef, ptr %t16, 0 %t24 = insertvalue { ptr, i64, i64 } %t23, i64 6, 1 %t25 = insertvalue { ptr, i64, i64 } %t24, i64 6, 2 store { ptr, i64, i64 } %t25, ptr %a26 %t27 = load i1, ptr %a2 - br i1 %t27, label %then6390, label %endif6392 -then6390: + br i1 %t27, label %then6633, label %endif6635 +then6633: %t28 = mul i64 6, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t29 = call ptr @finch_alloc(i64 %t28) %t30 = getelementptr inbounds { ptr, i64, i64 }, ptr %t29, i64 0 - store { ptr, i64, i64 } { ptr @.str.4163, i64 2, i64 0 }, ptr %t30 + store { ptr, i64, i64 } { ptr @.str.4291, i64 2, i64 0 }, ptr %t30 %t31 = getelementptr inbounds { ptr, i64, i64 }, ptr %t29, i64 1 - store { ptr, i64, i64 } { ptr @.str.4164, i64 2, i64 0 }, ptr %t31 + store { ptr, i64, i64 } { ptr @.str.4292, i64 2, i64 0 }, ptr %t31 %t32 = getelementptr inbounds { ptr, i64, i64 }, ptr %t29, i64 2 - store { ptr, i64, i64 } { ptr @.str.4165, i64 3, i64 0 }, ptr %t32 + store { ptr, i64, i64 } { ptr @.str.4293, i64 3, i64 0 }, ptr %t32 %t33 = getelementptr inbounds { ptr, i64, i64 }, ptr %t29, i64 3 - store { ptr, i64, i64 } { ptr @.str.4166, i64 3, i64 0 }, ptr %t33 + store { ptr, i64, i64 } { ptr @.str.4294, i64 3, i64 0 }, ptr %t33 %t34 = getelementptr inbounds { ptr, i64, i64 }, ptr %t29, i64 4 - store { ptr, i64, i64 } { ptr @.str.4167, i64 3, i64 0 }, ptr %t34 + store { ptr, i64, i64 } { ptr @.str.4295, i64 3, i64 0 }, ptr %t34 %t35 = getelementptr inbounds { ptr, i64, i64 }, ptr %t29, i64 5 - store { ptr, i64, i64 } { ptr @.str.4168, i64 3, i64 0 }, ptr %t35 + store { ptr, i64, i64 } { ptr @.str.4296, i64 3, i64 0 }, ptr %t35 %t36 = insertvalue { ptr, i64, i64 } undef, ptr %t29, 0 %t37 = insertvalue { ptr, i64, i64 } %t36, i64 6, 1 %t38 = insertvalue { ptr, i64, i64 } %t37, i64 6, 2 @@ -64149,44 +66600,44 @@ then6390: store { ptr, i64, i64 } %t38, ptr %a26 store { ptr, i64, i64 } %t39, ptr %a40 call void @finch.drop.arr_str(ptr %a40) - br label %endif6392 -endif6392: + br label %endif6635 +endif6635: %t41 = getelementptr inbounds { ptr, i64, i64 }, ptr %a14, i32 0, i32 1 %t42 = load { ptr, i64, i64 }, ptr %a1 store i64 -1, ptr %a43 %t44 = load i64, ptr %t41 %t45 = load ptr, ptr %a14 store i64 0, ptr %a46 - br label %find.cond6393 -find.cond6393: + br label %find.cond6636 +find.cond6636: %t47 = load i64, ptr %a46 %t48 = icmp slt i64 %t47, %t44 - br i1 %t48, label %find.body6394, label %find.end6397 -find.body6394: + br i1 %t48, label %find.body6637, label %find.end6640 +find.body6637: %t49 = getelementptr inbounds { ptr, i64, i64 }, ptr %t45, i64 %t47 %t50 = load { ptr, i64, i64 }, ptr %t49 store { ptr, i64, i64 } %t50, ptr %a51 store { ptr, i64, i64 } %t42, ptr %a52 %t53 = call i32 @finch_str_eq(ptr %a51, ptr %a52) %t54 = icmp ne i32 %t53, 0 - br i1 %t54, label %find.hit6395, label %find.next6396 -find.hit6395: + br i1 %t54, label %find.hit6638, label %find.next6639 +find.hit6638: store i64 %t47, ptr %a43 - br label %find.end6397 -find.next6396: + br label %find.end6640 +find.next6639: %t55 = add i64 %t47, 1 store i64 %t55, ptr %a46 - br label %find.cond6393 -find.end6397: + br label %find.cond6636 +find.end6640: %t56 = load i64, ptr %a43 %t57 = load { ptr, i64, i64 }, ptr %a26 %t58 = extractvalue { ptr, i64, i64 } %t57, 1 %t59 = icmp uge i64 %t56, %t58 - br i1 %t59, label %range6398, label %inrange6399 -range6398: - call void @finch_panic_index(ptr @.str.4169, i64 3484, i64 %t56, i64 %t58) + br i1 %t59, label %range6641, label %inrange6642 +range6641: + call void @finch_panic_index(ptr @.str.4297, i64 3622, i64 %t56, i64 %t58) unreachable -inrange6399: +inrange6642: %t60 = extractvalue { ptr, i64, i64 } %t57, 0 %t61 = getelementptr inbounds { ptr, i64, i64 }, ptr %t60, i64 %t56 %t62 = load { ptr, i64, i64 }, ptr %t61 @@ -64278,48 +66729,48 @@ entry: store { ptr, i64, i64 } %t7, ptr %a8 %t9 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t9, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.4170, i64 2, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.4298, i64 2, i64 0 }, ptr %a11 %t12 = call i32 @finch_str_eq(ptr %a10, ptr %a11) %t13 = icmp ne i32 %t12, 0 - br label %logic.from6400 -logic.from6400: - br i1 %t13, label %logic.end6402, label %logic.rhs6401 -logic.rhs6401: + br label %logic.from6643 +logic.from6643: + br i1 %t13, label %logic.end6645, label %logic.rhs6644 +logic.rhs6644: %t14 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t14, ptr %a15 - store { ptr, i64, i64 } { ptr @.str.4171, i64 2, i64 0 }, ptr %a16 + store { ptr, i64, i64 } { ptr @.str.4299, i64 2, i64 0 }, ptr %a16 %t17 = call i32 @finch_str_eq(ptr %a15, ptr %a16) %t18 = icmp ne i32 %t17, 0 - br label %logic.rend6403 -logic.rend6403: - br label %logic.end6402 -logic.end6402: - %t19 = phi i1 [ true, %logic.from6400 ], [ %t18, %logic.rend6403 ] - br i1 %t19, label %then6404, label %endif6406 -then6404: + br label %logic.rend6646 +logic.rend6646: + br label %logic.end6645 +logic.end6645: + %t19 = phi i1 [ true, %logic.from6643 ], [ %t18, %logic.rend6646 ] + br i1 %t19, label %then6647, label %endif6649 +then6647: %t20 = load ptr, ptr %a1 %t21 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t22 = load { ptr, i64, i64 }, ptr %t21 %t23 = extractvalue { ptr, i64, i64 } %t22, 1 %t24 = icmp uge i64 0, %t23 - br i1 %t24, label %range6407, label %inrange6408 -range6407: - call void @finch_panic_index(ptr @.str.4172, i64 3490, i64 0, i64 %t23) + br i1 %t24, label %range6650, label %inrange6651 +range6650: + call void @finch_panic_index(ptr @.str.4300, i64 3628, i64 0, i64 %t23) unreachable -inrange6408: +inrange6651: %t25 = extractvalue { ptr, i64, i64 } %t22, 0 %t26 = getelementptr inbounds %S.ast.Node, ptr %t25, i64 0 %t27 = load %S.ast.Node, ptr %t26 %t28 = call { ptr, i64, i64 } @finch.gen.condition(ptr %t20, %S.ast.Node %t27) store { ptr, i64, i64 } %t28, ptr %a29 %t30 = load ptr, ptr %a1 - %t31 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t30, { ptr, i64, i64 } { ptr @.str.4173, i64 10, i64 0 }) + %t31 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t30, { ptr, i64, i64 } { ptr @.str.4301, i64 10, i64 0 }) store { ptr, i64, i64 } %t31, ptr %a32 %t33 = load ptr, ptr %a1 - %t34 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t33, { ptr, i64, i64 } { ptr @.str.4174, i64 9, i64 0 }) + %t34 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t33, { ptr, i64, i64 } { ptr @.str.4302, i64 9, i64 0 }) store { ptr, i64, i64 } %t34, ptr %a35 %t36 = load ptr, ptr %a1 - %t37 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t36, { ptr, i64, i64 } { ptr @.str.4175, i64 9, i64 0 }) + %t37 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t36, { ptr, i64, i64 } { ptr @.str.4303, i64 9, i64 0 }) store { ptr, i64, i64 } %t37, ptr %a38 %t39 = load ptr, ptr %a1 %t40 = load { ptr, i64, i64 }, ptr %a32 @@ -64329,25 +66780,25 @@ inrange6408: call void @finch.gen.label(ptr %t41, { ptr, i64, i64 } %t42) %t43 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t43, ptr %a44 - store { ptr, i64, i64 } { ptr @.str.4176, i64 2, i64 0 }, ptr %a45 + store { ptr, i64, i64 } { ptr @.str.4304, i64 2, i64 0 }, ptr %a45 %t46 = call i32 @finch_str_eq(ptr %a44, ptr %a45) %t47 = icmp ne i32 %t46, 0 - br i1 %t47, label %then6409, label %else6410 -then6409: + br i1 %t47, label %then6652, label %else6653 +then6652: %t48 = load ptr, ptr %a1 %t49 = load { ptr, i64, i64 }, ptr %a29 %t50 = load { ptr, i64, i64 }, ptr %a35 %t51 = load { ptr, i64, i64 }, ptr %a38 call void @finch.gen.condBr(ptr %t48, { ptr, i64, i64 } %t49, { ptr, i64, i64 } %t50, { ptr, i64, i64 } %t51) - br label %endif6411 -else6410: + br label %endif6654 +else6653: %t52 = load ptr, ptr %a1 %t53 = load { ptr, i64, i64 }, ptr %a29 %t54 = load { ptr, i64, i64 }, ptr %a38 %t55 = load { ptr, i64, i64 }, ptr %a35 call void @finch.gen.condBr(ptr %t52, { ptr, i64, i64 } %t53, { ptr, i64, i64 } %t54, { ptr, i64, i64 } %t55) - br label %endif6411 -endif6411: + br label %endif6654 +endif6654: %t56 = load ptr, ptr %a1 %t57 = load { ptr, i64, i64 }, ptr %a35 call void @finch.gen.label(ptr %t56, { ptr, i64, i64 } %t57) @@ -64356,18 +66807,18 @@ endif6411: %t60 = load { ptr, i64, i64 }, ptr %t59 %t61 = extractvalue { ptr, i64, i64 } %t60, 1 %t62 = icmp uge i64 1, %t61 - br i1 %t62, label %range6412, label %inrange6413 -range6412: - call void @finch_panic_index(ptr @.str.4177, i64 3502, i64 1, i64 %t61) + br i1 %t62, label %range6655, label %inrange6656 +range6655: + call void @finch_panic_index(ptr @.str.4305, i64 3640, i64 1, i64 %t61) unreachable -inrange6413: +inrange6656: %t63 = extractvalue { ptr, i64, i64 } %t60, 0 %t64 = getelementptr inbounds %S.ast.Node, ptr %t63, i64 1 %t65 = load %S.ast.Node, ptr %t64 %t66 = call { ptr, i64, i64 } @finch.gen.condition(ptr %t58, %S.ast.Node %t65) store { ptr, i64, i64 } %t66, ptr %a67 %t68 = load ptr, ptr %a1 - %t69 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t68, { ptr, i64, i64 } { ptr @.str.4178, i64 10, i64 0 }) + %t69 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t68, { ptr, i64, i64 } { ptr @.str.4306, i64 10, i64 0 }) store { ptr, i64, i64 } %t69, ptr %a70 %t71 = load ptr, ptr %a1 %t72 = load { ptr, i64, i64 }, ptr %a70 @@ -64381,28 +66832,28 @@ inrange6413: %t77 = load ptr, ptr %a1 %t78 = load { ptr, i64, i64 }, ptr %a38 call void @finch.gen.label(ptr %t77, { ptr, i64, i64 } %t78) - store { ptr, i64, i64 } { ptr @.str.4179, i64 4, i64 0 }, ptr %a79 + store { ptr, i64, i64 } { ptr @.str.4307, i64 4, i64 0 }, ptr %a79 %t80 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t80, ptr %a81 - store { ptr, i64, i64 } { ptr @.str.4180, i64 2, i64 0 }, ptr %a82 + store { ptr, i64, i64 } { ptr @.str.4308, i64 2, i64 0 }, ptr %a82 %t83 = call i32 @finch_str_eq(ptr %a81, ptr %a82) %t84 = icmp ne i32 %t83, 0 - br i1 %t84, label %then6414, label %endif6416 -then6414: + br i1 %t84, label %then6657, label %endif6659 +then6657: %t85 = load { ptr, i64, i64 }, ptr %a79 - store { ptr, i64, i64 } { ptr @.str.4181, i64 5, i64 0 }, ptr %a79 + store { ptr, i64, i64 } { ptr @.str.4309, i64 5, i64 0 }, ptr %a79 store { ptr, i64, i64 } %t85, ptr %a86 call void @finch_str_drop(ptr %a86) - br label %endif6416 -endif6416: + br label %endif6659 +endif6659: %t87 = load ptr, ptr %a1 %t88 = load { ptr, i64, i64 }, ptr %a79 - store { ptr, i64, i64 } { ptr @.str.4182, i64 9, i64 0 }, ptr %a90 + store { ptr, i64, i64 } { ptr @.str.4310, i64 9, i64 0 }, ptr %a90 store { ptr, i64, i64 } %t88, ptr %a91 call void @finch_str_concat(ptr %a89, ptr %a90, ptr %a91) %t92 = load { ptr, i64, i64 }, ptr %a89 store { ptr, i64, i64 } %t92, ptr %a94 - store { ptr, i64, i64 } { ptr @.str.4183, i64 3, i64 0 }, ptr %a95 + store { ptr, i64, i64 } { ptr @.str.4311, i64 3, i64 0 }, ptr %a95 call void @finch_str_concat(ptr %a93, ptr %a94, ptr %a95) store { ptr, i64, i64 } %t92, ptr %a96 call void @finch_str_drop(ptr %a96) @@ -64415,7 +66866,7 @@ endif6416: call void @finch_str_drop(ptr %a102) %t103 = load { ptr, i64, i64 }, ptr %a99 store { ptr, i64, i64 } %t103, ptr %a105 - store { ptr, i64, i64 } { ptr @.str.4184, i64 6, i64 0 }, ptr %a106 + store { ptr, i64, i64 } { ptr @.str.4312, i64 6, i64 0 }, ptr %a106 call void @finch_str_concat(ptr %a104, ptr %a105, ptr %a106) store { ptr, i64, i64 } %t103, ptr %a107 call void @finch_str_drop(ptr %a107) @@ -64428,7 +66879,7 @@ endif6416: call void @finch_str_drop(ptr %a113) %t114 = load { ptr, i64, i64 }, ptr %a110 store { ptr, i64, i64 } %t114, ptr %a116 - store { ptr, i64, i64 } { ptr @.str.4185, i64 3, i64 0 }, ptr %a117 + store { ptr, i64, i64 } { ptr @.str.4313, i64 3, i64 0 }, ptr %a117 call void @finch_str_concat(ptr %a115, ptr %a116, ptr %a117) store { ptr, i64, i64 } %t114, ptr %a118 call void @finch_str_drop(ptr %a118) @@ -64441,7 +66892,7 @@ endif6416: call void @finch_str_drop(ptr %a124) %t125 = load { ptr, i64, i64 }, ptr %a121 store { ptr, i64, i64 } %t125, ptr %a127 - store { ptr, i64, i64 } { ptr @.str.4186, i64 2, i64 0 }, ptr %a128 + store { ptr, i64, i64 } { ptr @.str.4314, i64 2, i64 0 }, ptr %a128 call void @finch_str_concat(ptr %a126, ptr %a127, ptr %a128) store { ptr, i64, i64 } %t125, ptr %a129 call void @finch_str_drop(ptr %a129) @@ -64450,7 +66901,7 @@ endif6416: store { ptr, i64, i64 } %t130, ptr %a132 call void @finch_str_drop(ptr %a132) %t133 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t131, 0 - %t134 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4187, i64 4, i64 0 }) + %t134 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4315, i64 4, i64 0 }) %t135 = insertvalue %S.gen.Val %t133, %S.ast.Type %t134, 1 call void @finch_str_drop(ptr %a79) call void @finch_str_drop(ptr %a70) @@ -64461,17 +66912,17 @@ endif6416: call void @finch_str_drop(ptr %a29) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t135 -endif6406: +endif6649: %t136 = load ptr, ptr %a1 %t137 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t138 = load { ptr, i64, i64 }, ptr %t137 %t139 = extractvalue { ptr, i64, i64 } %t138, 1 %t140 = icmp uge i64 0, %t139 - br i1 %t140, label %range6417, label %inrange6418 -range6417: - call void @finch_panic_index(ptr @.str.4188, i64 3514, i64 0, i64 %t139) + br i1 %t140, label %range6660, label %inrange6661 +range6660: + call void @finch_panic_index(ptr @.str.4316, i64 3652, i64 0, i64 %t139) unreachable -inrange6418: +inrange6661: %t141 = extractvalue { ptr, i64, i64 } %t138, 0 %t142 = getelementptr inbounds %S.ast.Node, ptr %t141, i64 0 %t143 = load %S.ast.Node, ptr %t142 @@ -64479,11 +66930,11 @@ inrange6418: store %S.gen.Val %t144, ptr %a145 %t146 = load ptr, ptr %a1 %t147 = icmp eq ptr %t146, null - br i1 %t147, label %panic6419, label %ok6420 -panic6419: - call void @finch_panic(ptr @.str.4189, i64 3515, ptr @.str.4190) + br i1 %t147, label %panic6662, label %ok6663 +panic6662: + call void @finch_panic(ptr @.str.4317, i64 3653, ptr @.str.4318) unreachable -ok6420: +ok6663: %t148 = getelementptr inbounds %S.gen.Gen, ptr %t146, i32 0, i32 11 %t149 = getelementptr inbounds { ptr, i64, i64 }, ptr %t148, i32 0, i32 1 %t150 = load i64, ptr %t149 @@ -64496,11 +66947,11 @@ ok6420: %t156 = load { ptr, i64, i64 }, ptr %t155 %t157 = extractvalue { ptr, i64, i64 } %t156, 1 %t158 = icmp uge i64 1, %t157 - br i1 %t158, label %range6421, label %inrange6422 -range6421: - call void @finch_panic_index(ptr @.str.4191, i64 3517, i64 1, i64 %t157) + br i1 %t158, label %range6664, label %inrange6665 +range6664: + call void @finch_panic_index(ptr @.str.4319, i64 3655, i64 1, i64 %t157) unreachable -inrange6422: +inrange6665: %t159 = extractvalue { ptr, i64, i64 } %t156, 0 %t160 = getelementptr inbounds %S.ast.Node, ptr %t159, i64 1 %t161 = load %S.ast.Node, ptr %t160 @@ -64511,81 +66962,81 @@ inrange6422: call void @finch.gen.heldEnd(ptr %t164, i64 %t165) %t166 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t166, ptr %a167 - store { ptr, i64, i64 } { ptr @.str.4192, i64 2, i64 0 }, ptr %a168 + store { ptr, i64, i64 } { ptr @.str.4320, i64 2, i64 0 }, ptr %a168 %t169 = call i32 @finch_str_eq(ptr %a167, ptr %a168) %t170 = icmp ne i32 %t169, 0 - br label %logic.from6423 -logic.from6423: - br i1 %t170, label %logic.end6425, label %logic.rhs6424 -logic.rhs6424: + br label %logic.from6666 +logic.from6666: + br i1 %t170, label %logic.end6668, label %logic.rhs6667 +logic.rhs6667: %t171 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t171, ptr %a172 - store { ptr, i64, i64 } { ptr @.str.4193, i64 2, i64 0 }, ptr %a173 + store { ptr, i64, i64 } { ptr @.str.4321, i64 2, i64 0 }, ptr %a173 %t174 = call i32 @finch_str_eq(ptr %a172, ptr %a173) %t175 = icmp ne i32 %t174, 0 - br label %logic.rend6426 -logic.rend6426: - br label %logic.end6425 -logic.end6425: - %t176 = phi i1 [ true, %logic.from6423 ], [ %t175, %logic.rend6426 ] - br label %logic.from6427 -logic.from6427: - br i1 %t176, label %logic.end6429, label %logic.rhs6428 -logic.rhs6428: + br label %logic.rend6669 +logic.rend6669: + br label %logic.end6668 +logic.end6668: + %t176 = phi i1 [ true, %logic.from6666 ], [ %t175, %logic.rend6669 ] + br label %logic.from6670 +logic.from6670: + br i1 %t176, label %logic.end6672, label %logic.rhs6671 +logic.rhs6671: %t177 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t177, ptr %a178 - store { ptr, i64, i64 } { ptr @.str.4194, i64 1, i64 0 }, ptr %a179 + store { ptr, i64, i64 } { ptr @.str.4322, i64 1, i64 0 }, ptr %a179 %t180 = call i32 @finch_str_eq(ptr %a178, ptr %a179) %t181 = icmp ne i32 %t180, 0 - br label %logic.rend6430 -logic.rend6430: - br label %logic.end6429 -logic.end6429: - %t182 = phi i1 [ true, %logic.from6427 ], [ %t181, %logic.rend6430 ] - br label %logic.from6431 -logic.from6431: - br i1 %t182, label %logic.end6433, label %logic.rhs6432 -logic.rhs6432: + br label %logic.rend6673 +logic.rend6673: + br label %logic.end6672 +logic.end6672: + %t182 = phi i1 [ true, %logic.from6670 ], [ %t181, %logic.rend6673 ] + br label %logic.from6674 +logic.from6674: + br i1 %t182, label %logic.end6676, label %logic.rhs6675 +logic.rhs6675: %t183 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t183, ptr %a184 - store { ptr, i64, i64 } { ptr @.str.4195, i64 2, i64 0 }, ptr %a185 + store { ptr, i64, i64 } { ptr @.str.4323, i64 2, i64 0 }, ptr %a185 %t186 = call i32 @finch_str_eq(ptr %a184, ptr %a185) %t187 = icmp ne i32 %t186, 0 - br label %logic.rend6434 -logic.rend6434: - br label %logic.end6433 -logic.end6433: - %t188 = phi i1 [ true, %logic.from6431 ], [ %t187, %logic.rend6434 ] - br label %logic.from6435 -logic.from6435: - br i1 %t188, label %logic.end6437, label %logic.rhs6436 -logic.rhs6436: + br label %logic.rend6677 +logic.rend6677: + br label %logic.end6676 +logic.end6676: + %t188 = phi i1 [ true, %logic.from6674 ], [ %t187, %logic.rend6677 ] + br label %logic.from6678 +logic.from6678: + br i1 %t188, label %logic.end6680, label %logic.rhs6679 +logic.rhs6679: %t189 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t189, ptr %a190 - store { ptr, i64, i64 } { ptr @.str.4196, i64 1, i64 0 }, ptr %a191 + store { ptr, i64, i64 } { ptr @.str.4324, i64 1, i64 0 }, ptr %a191 %t192 = call i32 @finch_str_eq(ptr %a190, ptr %a191) %t193 = icmp ne i32 %t192, 0 - br label %logic.rend6438 -logic.rend6438: - br label %logic.end6437 -logic.end6437: - %t194 = phi i1 [ true, %logic.from6435 ], [ %t193, %logic.rend6438 ] - br label %logic.from6439 -logic.from6439: - br i1 %t194, label %logic.end6441, label %logic.rhs6440 -logic.rhs6440: + br label %logic.rend6681 +logic.rend6681: + br label %logic.end6680 +logic.end6680: + %t194 = phi i1 [ true, %logic.from6678 ], [ %t193, %logic.rend6681 ] + br label %logic.from6682 +logic.from6682: + br i1 %t194, label %logic.end6684, label %logic.rhs6683 +logic.rhs6683: %t195 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t195, ptr %a196 - store { ptr, i64, i64 } { ptr @.str.4197, i64 2, i64 0 }, ptr %a197 + store { ptr, i64, i64 } { ptr @.str.4325, i64 2, i64 0 }, ptr %a197 %t198 = call i32 @finch_str_eq(ptr %a196, ptr %a197) %t199 = icmp ne i32 %t198, 0 - br label %logic.rend6442 -logic.rend6442: - br label %logic.end6441 -logic.end6441: - %t200 = phi i1 [ true, %logic.from6439 ], [ %t199, %logic.rend6442 ] - br i1 %t200, label %then6443, label %endif6445 -then6443: + br label %logic.rend6685 +logic.rend6685: + br label %logic.end6684 +logic.end6684: + %t200 = phi i1 [ true, %logic.from6682 ], [ %t199, %logic.rend6685 ] + br i1 %t200, label %then6686, label %endif6688 +then6686: %t201 = load ptr, ptr %a1 %t202 = load { ptr, i64, i64 }, ptr %a8 %t203 = load %S.gen.Val, ptr %a145 @@ -64596,7 +67047,7 @@ then6443: call void @finch.drop.S_gen_Val(ptr %a145) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t206 -endif6445: +endif6688: %t207 = load ptr, ptr %a1 %t208 = load { ptr, i64, i64 }, ptr %a8 %t209 = load %S.gen.Val, ptr %a145 @@ -64741,25 +67192,25 @@ entry: store ptr %p0, ptr %a1 store %S.ast.Node %p1, ptr %a2 store %S.ast.Type %p2, ptr %a3 - %t4 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4198, i64 4, i64 0 }) + %t4 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4326, i64 4, i64 0 }) store %S.ast.Type %t4, ptr %a5 %t6 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t7 = load { ptr, i64, i64 }, ptr %t6 store { ptr, i64, i64 } %t7, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.4199, i64 5, i64 0 }, ptr %a9 + store { ptr, i64, i64 } { ptr @.str.4327, i64 5, i64 0 }, ptr %a9 %t10 = call i32 @finch_str_eq(ptr %a8, ptr %a9) %t11 = icmp ne i32 %t10, 0 - br i1 %t11, label %then6446, label %else6447 -then6446: + br i1 %t11, label %then6689, label %else6690 +then6689: %t12 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 1 %t13 = load { ptr, i64, i64 }, ptr %t12 %t14 = extractvalue { ptr, i64, i64 } %t13, 1 %t15 = icmp uge i64 0, %t14 - br i1 %t15, label %range6449, label %inrange6450 -range6449: - call void @finch_panic_index(ptr @.str.4200, i64 3528, i64 0, i64 %t14) + br i1 %t15, label %range6692, label %inrange6693 +range6692: + call void @finch_panic_index(ptr @.str.4328, i64 3666, i64 0, i64 %t14) unreachable -inrange6450: +inrange6693: %t16 = extractvalue { ptr, i64, i64 } %t13, 0 %t17 = getelementptr inbounds %S.ast.Type, ptr %t16, i64 0 %t18 = load %S.ast.Type, ptr %t17 @@ -64770,43 +67221,43 @@ inrange6450: store %S.ast.Type %t21, ptr %a5 store %S.ast.Type %t22, ptr %a23 call void @finch.drop.S_ast_Type(ptr %a23) - br label %endif6448 -else6447: + br label %endif6691 +else6690: %t24 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t25 = getelementptr inbounds { ptr, i64, i64 }, ptr %t24, i32 0, i32 1 %t26 = load i64, ptr %t25 %t27 = icmp eq i64 %t26, 0 - br i1 %t27, label %then6451, label %endif6453 -then6451: + br i1 %t27, label %then6694, label %endif6696 +then6694: %t28 = load ptr, ptr %a1 %t29 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t28, %S.ast.Node %t29, { ptr, i64, i64 } { ptr @.str.4201, i64 47, i64 0 }) - br label %endif6453 -endif6453: - br label %endif6448 -endif6448: + call void @finch.gen.fail(ptr %t28, %S.ast.Node %t29, { ptr, i64, i64 } { ptr @.str.4329, i64 47, i64 0 }) + br label %endif6696 +endif6696: + br label %endif6691 +endif6691: store { ptr, i64, i64 } zeroinitializer, ptr %a30 %t31 = load ptr, ptr %a1 %t32 = icmp eq ptr %t31, null - br i1 %t32, label %panic6454, label %ok6455 -panic6454: - call void @finch_panic(ptr @.str.4202, i64 3533, ptr @.str.4203) + br i1 %t32, label %panic6697, label %ok6698 +panic6697: + call void @finch_panic(ptr @.str.4330, i64 3671, ptr @.str.4331) unreachable -ok6455: +ok6698: %t33 = getelementptr inbounds %S.gen.Gen, ptr %t31, i32 0, i32 11 %t34 = getelementptr inbounds { ptr, i64, i64 }, ptr %t33, i32 0, i32 1 %t35 = load i64, ptr %t34 store i64 %t35, ptr %a36 %t37 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 store i64 0, ptr %a38 - br label %each.cond6456 -each.cond6456: + br label %each.cond6699 +each.cond6699: %t39 = getelementptr inbounds { ptr, i64, i64 }, ptr %t37, i32 0, i32 1 %t40 = load i64, ptr %t39 %t41 = load i64, ptr %a38 %t42 = icmp slt i64 %t41, %t40 - br i1 %t42, label %each.body6457, label %each.end6459 -each.body6457: + br i1 %t42, label %each.body6700, label %each.end6702 +each.body6700: %t43 = load ptr, ptr %t37 %t44 = getelementptr inbounds %S.ast.Node, ptr %t43, i64 %t41 %t45 = load %S.ast.Node, ptr %t44 @@ -64815,11 +67266,11 @@ each.body6457: %t48 = getelementptr inbounds %S.ast.Type, ptr %a5, i32 0, i32 0 %t49 = load { ptr, i64, i64 }, ptr %t48 store { ptr, i64, i64 } %t49, ptr %a50 - store { ptr, i64, i64 } { ptr @.str.4204, i64 4, i64 0 }, ptr %a51 + store { ptr, i64, i64 } { ptr @.str.4332, i64 4, i64 0 }, ptr %a51 %t52 = call i32 @finch_str_eq(ptr %a50, ptr %a51) %t53 = icmp ne i32 %t52, 0 - br i1 %t53, label %then6460, label %else6461 -then6460: + br i1 %t53, label %then6703, label %else6704 +then6703: %t54 = load ptr, ptr %a1 %t55 = load %S.ast.Node, ptr %a46 %t56 = call %S.gen.Val @finch.gen.expr(ptr %t54, %S.ast.Node %t55) @@ -64836,8 +67287,8 @@ then6460: store %S.ast.Type %t63, ptr %a5 store %S.ast.Type %t64, ptr %a65 call void @finch.drop.S_ast_Type(ptr %a65) - br label %endif6462 -else6461: + br label %endif6705 +else6704: %t66 = load ptr, ptr %a1 %t67 = load %S.ast.Node, ptr %a46 %t68 = load %S.ast.Type, ptr %a5 @@ -64846,13 +67297,13 @@ else6461: store %S.gen.Val %t69, ptr %a47 store %S.gen.Val %t70, ptr %a71 call void @finch.drop.S_gen_Val(ptr %a71) - br label %endif6462 -endif6462: + br label %endif6705 +endif6705: %t72 = load ptr, ptr %a1 %t73 = load %S.gen.Val, ptr %a47 %t74 = load %S.ast.Type, ptr %a5 %t75 = load %S.ast.Node, ptr %a46 - %t76 = call %S.gen.Val @finch.gen.coerce(ptr %t72, %S.gen.Val %t73, %S.ast.Type %t74, %S.ast.Node %t75, { ptr, i64, i64 } { ptr @.str.4205, i64 27, i64 0 }) + %t76 = call %S.gen.Val @finch.gen.coerce(ptr %t72, %S.gen.Val %t73, %S.ast.Type %t74, %S.ast.Node %t75, { ptr, i64, i64 } { ptr @.str.4333, i64 27, i64 0 }) %t77 = load %S.gen.Val, ptr %a47 store %S.gen.Val %t76, ptr %a47 store %S.gen.Val %t77, ptr %a78 @@ -64875,11 +67326,11 @@ endif6462: %t91 = load { ptr, i64, i64 }, ptr %a30 %t92 = extractvalue { ptr, i64, i64 } %t91, 1 %t93 = icmp uge i64 %t90, %t92 - br i1 %t93, label %range6463, label %inrange6464 -range6463: - call void @finch_panic_index(ptr @.str.4206, i64 3544, i64 %t90, i64 %t92) + br i1 %t93, label %range6706, label %inrange6707 +range6706: + call void @finch_panic_index(ptr @.str.4334, i64 3682, i64 %t90, i64 %t92) unreachable -inrange6464: +inrange6707: %t94 = extractvalue { ptr, i64, i64 } %t91, 0 %t95 = getelementptr inbounds { ptr, i64, i64 }, ptr %t94, i64 %t90 %t96 = load { ptr, i64, i64 }, ptr %t95 @@ -64897,13 +67348,13 @@ inrange6464: store %S.gen.Val %t106, ptr %a107 call void @finch.drop.S_gen_Val(ptr %a107) call void @finch.drop.S_gen_Val(ptr %a47) - br label %each.step6458 -each.step6458: + br label %each.step6701 +each.step6701: %t108 = load i64, ptr %a38 %t109 = add i64 %t108, 1 store i64 %t109, ptr %a38 - br label %each.cond6456 -each.end6459: + br label %each.cond6699 +each.end6702: %t110 = load ptr, ptr %a1 %t111 = load i64, ptr %a36 call void @finch.gen.heldEnd(ptr %t110, i64 %t111) @@ -64915,20 +67366,20 @@ each.end6459: call void @finch_str_from_int(ptr %a117, i64 %t116) %t118 = load { ptr, i64, i64 }, ptr %a117 store { ptr, i64, i64 } %t118, ptr %a119 - store { ptr, i64, i64 } { ptr @.str.4207, i64 4, i64 0 }, ptr %a120 + store { ptr, i64, i64 } { ptr @.str.4335, i64 4, i64 0 }, ptr %a120 %t121 = getelementptr inbounds { ptr, i64, i64 }, ptr %a30, i32 0, i32 1 %t122 = load i64, ptr %t121 %t123 = icmp sgt i64 %t122, 0 - br i1 %t123, label %then6465, label %endif6467 -then6465: + br i1 %t123, label %then6708, label %endif6710 +then6708: %t124 = load ptr, ptr %a1 %t125 = load { ptr, i64, i64 }, ptr %a119 - store { ptr, i64, i64 } { ptr @.str.4208, i64 8, i64 0 }, ptr %a127 + store { ptr, i64, i64 } { ptr @.str.4336, i64 8, i64 0 }, ptr %a127 store { ptr, i64, i64 } %t125, ptr %a128 call void @finch_str_concat(ptr %a126, ptr %a127, ptr %a128) %t129 = load { ptr, i64, i64 }, ptr %a126 store { ptr, i64, i64 } %t129, ptr %a131 - store { ptr, i64, i64 } { ptr @.str.4209, i64 2, i64 0 }, ptr %a132 + store { ptr, i64, i64 } { ptr @.str.4337, i64 2, i64 0 }, ptr %a132 call void @finch_str_concat(ptr %a130, ptr %a131, ptr %a132) store { ptr, i64, i64 } %t129, ptr %a133 call void @finch_str_drop(ptr %a133) @@ -64950,12 +67401,12 @@ then6465: store { ptr, i64, i64 } %t144, ptr %a146 %t147 = load ptr, ptr %a1 %t148 = load { ptr, i64, i64 }, ptr %a146 - store { ptr, i64, i64 } { ptr @.str.4210, i64 26, i64 0 }, ptr %a150 + store { ptr, i64, i64 } { ptr @.str.4338, i64 26, i64 0 }, ptr %a150 store { ptr, i64, i64 } %t148, ptr %a151 call void @finch_str_concat(ptr %a149, ptr %a150, ptr %a151) %t152 = load { ptr, i64, i64 }, ptr %a149 store { ptr, i64, i64 } %t152, ptr %a154 - store { ptr, i64, i64 } { ptr @.str.4211, i64 1, i64 0 }, ptr %a155 + store { ptr, i64, i64 } { ptr @.str.4339, i64 1, i64 0 }, ptr %a155 call void @finch_str_concat(ptr %a153, ptr %a154, ptr %a155) store { ptr, i64, i64 } %t152, ptr %a156 call void @finch_str_drop(ptr %a156) @@ -64968,29 +67419,29 @@ then6465: store { ptr, i64, i64 } %t160, ptr %a161 call void @finch_str_drop(ptr %a161) call void @finch_str_drop(ptr %a146) - br label %endif6467 -endif6467: + br label %endif6710 +endif6710: %t162 = getelementptr inbounds { ptr, i64, i64 }, ptr %a30, i32 0, i32 1 %t163 = load i64, ptr %t162 store i64 0, ptr %a164 - br label %for.cond6468 -for.cond6468: + br label %for.cond6711 +for.cond6711: %t165 = load i64, ptr %a164 %t166 = icmp slt i64 %t165, %t163 - br i1 %t166, label %for.body6469, label %for.end6471 -for.body6469: + br i1 %t166, label %for.body6712, label %for.end6714 +for.body6712: %t167 = load ptr, ptr %a1 %t168 = load ptr, ptr %a1 %t169 = load %S.ast.Type, ptr %a5 %t170 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t168, %S.ast.Type %t169) - store { ptr, i64, i64 } { ptr @.str.4212, i64 23, i64 0 }, ptr %a172 + store { ptr, i64, i64 } { ptr @.str.4340, i64 23, i64 0 }, ptr %a172 store { ptr, i64, i64 } %t170, ptr %a173 call void @finch_str_concat(ptr %a171, ptr %a172, ptr %a173) store { ptr, i64, i64 } %t170, ptr %a174 call void @finch_str_drop(ptr %a174) %t175 = load { ptr, i64, i64 }, ptr %a171 store { ptr, i64, i64 } %t175, ptr %a177 - store { ptr, i64, i64 } { ptr @.str.4213, i64 6, i64 0 }, ptr %a178 + store { ptr, i64, i64 } { ptr @.str.4341, i64 6, i64 0 }, ptr %a178 call void @finch_str_concat(ptr %a176, ptr %a177, ptr %a178) store { ptr, i64, i64 } %t175, ptr %a179 call void @finch_str_drop(ptr %a179) @@ -65003,7 +67454,7 @@ for.body6469: call void @finch_str_drop(ptr %a185) %t186 = load { ptr, i64, i64 }, ptr %a182 store { ptr, i64, i64 } %t186, ptr %a188 - store { ptr, i64, i64 } { ptr @.str.4214, i64 6, i64 0 }, ptr %a189 + store { ptr, i64, i64 } { ptr @.str.4342, i64 6, i64 0 }, ptr %a189 call void @finch_str_concat(ptr %a187, ptr %a188, ptr %a189) store { ptr, i64, i64 } %t186, ptr %a190 call void @finch_str_drop(ptr %a190) @@ -65031,11 +67482,11 @@ for.body6469: %t209 = load { ptr, i64, i64 }, ptr %a30 %t210 = extractvalue { ptr, i64, i64 } %t209, 1 %t211 = icmp uge i64 %t208, %t210 - br i1 %t211, label %range6472, label %inrange6473 -range6472: - call void @finch_panic_index(ptr @.str.4215, i64 3556, i64 %t208, i64 %t210) + br i1 %t211, label %range6715, label %inrange6716 +range6715: + call void @finch_panic_index(ptr @.str.4343, i64 3694, i64 %t208, i64 %t210) unreachable -inrange6473: +inrange6716: %t212 = extractvalue { ptr, i64, i64 } %t209, 0 %t213 = getelementptr inbounds { ptr, i64, i64 }, ptr %t212, i64 %t208 %t214 = load { ptr, i64, i64 }, ptr %t213 @@ -65044,21 +67495,21 @@ inrange6473: store { ptr, i64, i64 } %t207, ptr %a216 call void @finch_str_drop(ptr %a216) call void @finch_str_drop(ptr %a203) - br label %for.step6470 -for.step6470: + br label %for.step6713 +for.step6713: %t217 = load i64, ptr %a164 %t218 = add i64 %t217, 1 store i64 %t218, ptr %a164 - br label %for.cond6468 -for.end6471: + br label %for.cond6711 +for.end6714: %t219 = load ptr, ptr %a1 %t220 = load { ptr, i64, i64 }, ptr %a120 - store { ptr, i64, i64 } { ptr @.str.4216, i64 41, i64 0 }, ptr %a222 + store { ptr, i64, i64 } { ptr @.str.4344, i64 41, i64 0 }, ptr %a222 store { ptr, i64, i64 } %t220, ptr %a223 call void @finch_str_concat(ptr %a221, ptr %a222, ptr %a223) %t224 = load { ptr, i64, i64 }, ptr %a221 store { ptr, i64, i64 } %t224, ptr %a226 - store { ptr, i64, i64 } { ptr @.str.4217, i64 3, i64 0 }, ptr %a227 + store { ptr, i64, i64 } { ptr @.str.4345, i64 3, i64 0 }, ptr %a227 call void @finch_str_concat(ptr %a225, ptr %a226, ptr %a227) store { ptr, i64, i64 } %t224, ptr %a228 call void @finch_str_drop(ptr %a228) @@ -65069,12 +67520,12 @@ for.end6471: store { ptr, i64, i64 } %t230, ptr %a232 %t233 = load ptr, ptr %a1 %t234 = load { ptr, i64, i64 }, ptr %a232 - store { ptr, i64, i64 } { ptr @.str.4218, i64 30, i64 0 }, ptr %a236 + store { ptr, i64, i64 } { ptr @.str.4346, i64 30, i64 0 }, ptr %a236 store { ptr, i64, i64 } %t234, ptr %a237 call void @finch_str_concat(ptr %a235, ptr %a236, ptr %a237) %t238 = load { ptr, i64, i64 }, ptr %a235 store { ptr, i64, i64 } %t238, ptr %a240 - store { ptr, i64, i64 } { ptr @.str.4219, i64 6, i64 0 }, ptr %a241 + store { ptr, i64, i64 } { ptr @.str.4347, i64 6, i64 0 }, ptr %a241 call void @finch_str_concat(ptr %a239, ptr %a240, ptr %a241) store { ptr, i64, i64 } %t238, ptr %a242 call void @finch_str_drop(ptr %a242) @@ -65087,7 +67538,7 @@ for.end6471: call void @finch_str_drop(ptr %a248) %t249 = load { ptr, i64, i64 }, ptr %a245 store { ptr, i64, i64 } %t249, ptr %a251 - store { ptr, i64, i64 } { ptr @.str.4220, i64 3, i64 0 }, ptr %a252 + store { ptr, i64, i64 } { ptr @.str.4348, i64 3, i64 0 }, ptr %a252 call void @finch_str_concat(ptr %a250, ptr %a251, ptr %a252) store { ptr, i64, i64 } %t249, ptr %a253 call void @finch_str_drop(ptr %a253) @@ -65098,12 +67549,12 @@ for.end6471: store { ptr, i64, i64 } %t255, ptr %a257 %t258 = load ptr, ptr %a1 %t259 = load { ptr, i64, i64 }, ptr %a257 - store { ptr, i64, i64 } { ptr @.str.4221, i64 30, i64 0 }, ptr %a261 + store { ptr, i64, i64 } { ptr @.str.4349, i64 30, i64 0 }, ptr %a261 store { ptr, i64, i64 } %t259, ptr %a262 call void @finch_str_concat(ptr %a260, ptr %a261, ptr %a262) %t263 = load { ptr, i64, i64 }, ptr %a260 store { ptr, i64, i64 } %t263, ptr %a265 - store { ptr, i64, i64 } { ptr @.str.4222, i64 6, i64 0 }, ptr %a266 + store { ptr, i64, i64 } { ptr @.str.4350, i64 6, i64 0 }, ptr %a266 call void @finch_str_concat(ptr %a264, ptr %a265, ptr %a266) store { ptr, i64, i64 } %t263, ptr %a267 call void @finch_str_drop(ptr %a267) @@ -65116,7 +67567,7 @@ for.end6471: call void @finch_str_drop(ptr %a273) %t274 = load { ptr, i64, i64 }, ptr %a270 store { ptr, i64, i64 } %t274, ptr %a276 - store { ptr, i64, i64 } { ptr @.str.4223, i64 3, i64 0 }, ptr %a277 + store { ptr, i64, i64 } { ptr @.str.4351, i64 3, i64 0 }, ptr %a277 call void @finch_str_concat(ptr %a275, ptr %a276, ptr %a277) store { ptr, i64, i64 } %t274, ptr %a278 call void @finch_str_drop(ptr %a278) @@ -65185,35 +67636,35 @@ entry: %t4 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 %t5 = load { ptr, i64, i64 }, ptr %t4 store { ptr, i64, i64 } %t5, ptr %a6 - store { ptr, i64, i64 } { ptr @.str.4224, i64 3, i64 0 }, ptr %a7 + store { ptr, i64, i64 } { ptr @.str.4352, i64 3, i64 0 }, ptr %a7 %t8 = call i32 @finch_str_eq(ptr %a6, ptr %a7) %t9 = icmp ne i32 %t8, 0 - br label %logic.from6474 -logic.from6474: - br i1 %t9, label %logic.rhs6475, label %logic.end6476 -logic.rhs6475: + br label %logic.from6717 +logic.from6717: + br i1 %t9, label %logic.rhs6718, label %logic.end6719 +logic.rhs6718: %t10 = load ptr, ptr %a1 %t11 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t12 = load { ptr, i64, i64 }, ptr %t11 %t13 = call i64 @finch.gen.lookup(ptr %t10, { ptr, i64, i64 } %t12) %t14 = icmp slt i64 %t13, 0 - br label %logic.rend6477 -logic.rend6477: - br label %logic.end6476 -logic.end6476: - %t15 = phi i1 [ false, %logic.from6474 ], [ %t14, %logic.rend6477 ] - br i1 %t15, label %then6478, label %endif6480 -then6478: + br label %logic.rend6720 +logic.rend6720: + br label %logic.end6719 +logic.end6719: + %t15 = phi i1 [ false, %logic.from6717 ], [ %t14, %logic.rend6720 ] + br i1 %t15, label %then6721, label %endif6723 +then6721: %t16 = load ptr, ptr %a1 %t17 = load %S.ast.Node, ptr %a2 %t18 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t19 = load { ptr, i64, i64 }, ptr %t18 - store { ptr, i64, i64 } { ptr @.str.4225, i64 28, i64 0 }, ptr %a21 + store { ptr, i64, i64 } { ptr @.str.4353, i64 28, i64 0 }, ptr %a21 store { ptr, i64, i64 } %t19, ptr %a22 call void @finch_str_concat(ptr %a20, ptr %a21, ptr %a22) %t23 = load { ptr, i64, i64 }, ptr %a20 store { ptr, i64, i64 } %t23, ptr %a25 - store { ptr, i64, i64 } { ptr @.str.4226, i64 1, i64 0 }, ptr %a26 + store { ptr, i64, i64 } { ptr @.str.4354, i64 1, i64 0 }, ptr %a26 call void @finch_str_concat(ptr %a24, ptr %a25, ptr %a26) store { ptr, i64, i64 } %t23, ptr %a27 call void @finch_str_drop(ptr %a27) @@ -65221,8 +67672,8 @@ then6478: call void @finch.gen.fail(ptr %t16, %S.ast.Node %t17, { ptr, i64, i64 } %t28) store { ptr, i64, i64 } %t28, ptr %a29 call void @finch_str_drop(ptr %a29) - br label %endif6480 -endif6480: + br label %endif6723 +endif6723: %t30 = load ptr, ptr %a1 %t31 = load %S.ast.Node, ptr %a2 %t32 = load i1, ptr %a3 @@ -65231,13 +67682,13 @@ endif6480: %t35 = getelementptr inbounds %S.gen.Ref, ptr %a34, i32 0, i32 0 %t36 = load i1, ptr %t35 %t37 = xor i1 %t36, true - br i1 %t37, label %then6481, label %endif6483 -then6481: + br i1 %t37, label %then6724, label %endif6726 +then6724: %t38 = load ptr, ptr %a1 %t39 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t38, %S.ast.Node %t39, { ptr, i64, i64 } { ptr @.str.4227, i64 60, i64 0 }) - br label %endif6483 -endif6483: + call void @finch.gen.fail(ptr %t38, %S.ast.Node %t39, { ptr, i64, i64 } { ptr @.str.4355, i64 60, i64 0 }) + br label %endif6726 +endif6726: %t40 = getelementptr inbounds %S.gen.Ref, ptr %a34, i32 0, i32 1 %t41 = load %S.gen.Place, ptr %t40 store %S.gen.Place %t41, ptr %a42 @@ -65386,11 +67837,11 @@ entry: %t4 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 %t5 = load { ptr, i64, i64 }, ptr %t4 store { ptr, i64, i64 } %t5, ptr %a6 - store { ptr, i64, i64 } { ptr @.str.4228, i64 3, i64 0 }, ptr %a7 + store { ptr, i64, i64 } { ptr @.str.4356, i64 3, i64 0 }, ptr %a7 %t8 = call i32 @finch_str_eq(ptr %a6, ptr %a7) %t9 = icmp ne i32 %t8, 0 - br i1 %t9, label %then6484, label %endif6486 -then6484: + br i1 %t9, label %then6727, label %endif6729 +then6727: %t10 = load ptr, ptr %a1 %t11 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t12 = load { ptr, i64, i64 }, ptr %t11 @@ -65398,53 +67849,53 @@ then6484: store i64 %t13, ptr %a14 %t15 = load i64, ptr %a14 %t16 = icmp slt i64 %t15, 0 - br label %logic.from6487 -logic.from6487: - br i1 %t16, label %logic.rhs6488, label %logic.end6489 -logic.rhs6488: + br label %logic.from6730 +logic.from6730: + br i1 %t16, label %logic.rhs6731, label %logic.end6732 +logic.rhs6731: %t17 = load ptr, ptr %a1 %t18 = icmp eq ptr %t17, null - br i1 %t18, label %panic6490, label %ok6491 -panic6490: - call void @finch_panic(ptr @.str.4229, i64 3580, ptr @.str.4230) + br i1 %t18, label %panic6733, label %ok6734 +panic6733: + call void @finch_panic(ptr @.str.4357, i64 3718, ptr @.str.4358) unreachable -ok6491: - %t19 = getelementptr inbounds %S.gen.Gen, ptr %t17, i32 0, i32 25 +ok6734: + %t19 = getelementptr inbounds %S.gen.Gen, ptr %t17, i32 0, i32 26 %t20 = getelementptr inbounds %S.cimport.CImports, ptr %t19, i32 0, i32 1 %t21 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t22 = load { ptr, i64, i64 }, ptr %t21 store { ptr, i64, i64 } %t22, ptr %a23 %t24 = call i64 @finch_map_find(ptr %t20, ptr %a23, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t25 = icmp sge i64 %t24, 0 - br label %logic.rend6492 -logic.rend6492: - br label %logic.end6489 -logic.end6489: - %t26 = phi i1 [ false, %logic.from6487 ], [ %t25, %logic.rend6492 ] - br i1 %t26, label %then6493, label %endif6495 -then6493: + br label %logic.rend6735 +logic.rend6735: + br label %logic.end6732 +logic.end6732: + %t26 = phi i1 [ false, %logic.from6730 ], [ %t25, %logic.rend6735 ] + br i1 %t26, label %then6736, label %endif6738 +then6736: %t27 = load ptr, ptr %a1 %t28 = icmp eq ptr %t27, null - br i1 %t28, label %panic6496, label %ok6497 -panic6496: - call void @finch_panic(ptr @.str.4231, i64 3581, ptr @.str.4232) + br i1 %t28, label %panic6739, label %ok6740 +panic6739: + call void @finch_panic(ptr @.str.4359, i64 3719, ptr @.str.4360) unreachable -ok6497: - %t29 = getelementptr inbounds %S.gen.Gen, ptr %t27, i32 0, i32 25 +ok6740: + %t29 = getelementptr inbounds %S.gen.Gen, ptr %t27, i32 0, i32 26 %t30 = getelementptr inbounds %S.cimport.CImports, ptr %t29, i32 0, i32 1 %t31 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t32 = load { ptr, i64, i64 }, ptr %t31 store { ptr, i64, i64 } %t32, ptr %a33 %t34 = call i64 @finch_map_find(ptr %t30, ptr %a33, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t35 = icmp slt i64 %t34, 0 - br i1 %t35, label %map.missing6498, label %map.found6499 -map.missing6498: + br i1 %t35, label %map.missing6741, label %map.found6742 +map.missing6741: store { ptr, i64, i64 } zeroinitializer, ptr %a36 store { ptr, i64, i64 } %t32, ptr %a37 call void @finch_buf_str(ptr %a36, ptr %a37, i32 1) - call void @finch_map_missing(ptr @.str.4233, i64 3581, ptr %a36) + call void @finch_map_missing(ptr @.str.4361, i64 3719, ptr %a36) unreachable -map.found6499: +map.found6742: %t38 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t30, i32 0, i32 0 %t39 = load ptr, ptr %t38 %t40 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t39, i64 %t34 @@ -65456,47 +67907,47 @@ map.found6499: store %S.cimport.CConst %t45, ptr %a46 %t47 = getelementptr inbounds %S.cimport.CConst, ptr %a46, i32 0, i32 0 %t48 = load i1, ptr %t47 - br i1 %t48, label %then6500, label %endif6502 -then6500: + br i1 %t48, label %then6743, label %endif6745 +then6743: %t49 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 %t50 = getelementptr inbounds %S.cimport.CConst, ptr %a46, i32 0, i32 3 %t51 = load { ptr, i64, i64 }, ptr %t50 %t52 = call { ptr, i64, i64 } @finch.gen.llFloat({ ptr, i64, i64 } %t51) %t53 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t52, 0 - %t54 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4234, i64 5, i64 0 }) + %t54 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4362, i64 5, i64 0 }) %t55 = insertvalue %S.gen.Val %t53, %S.ast.Type %t54, 1 %t56 = insertvalue %S.gen.Val %t55, i1 true, 3 %t57 = insertvalue %S.gen.Ref %t49, %S.gen.Val %t56, 2 call void @finch.drop.S_cimport_CConst(ptr %a46) ret %S.gen.Ref %t57 -endif6502: +endif6745: %t58 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 %t59 = getelementptr inbounds %S.cimport.CConst, ptr %a46, i32 0, i32 1 %t60 = load i64, ptr %t59 call void @finch_str_from_int(ptr %a61, i64 %t60) %t62 = load { ptr, i64, i64 }, ptr %a61 %t63 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t62, 0 - %t64 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4235, i64 3, i64 0 }) + %t64 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4363, i64 3, i64 0 }) %t65 = insertvalue %S.gen.Val %t63, %S.ast.Type %t64, 1 %t66 = insertvalue %S.gen.Val %t65, i1 true, 3 %t67 = insertvalue %S.gen.Ref %t58, %S.gen.Val %t66, 2 call void @finch.drop.S_cimport_CConst(ptr %a46) ret %S.gen.Ref %t67 -endif6495: +endif6738: %t68 = load i64, ptr %a14 %t69 = icmp slt i64 %t68, 0 - br label %logic.from6503 -logic.from6503: - br i1 %t69, label %logic.rhs6504, label %logic.end6505 -logic.rhs6504: + br label %logic.from6746 +logic.from6746: + br i1 %t69, label %logic.rhs6747, label %logic.end6748 +logic.rhs6747: %t70 = load ptr, ptr %a1 %t71 = icmp eq ptr %t70, null - br i1 %t71, label %panic6506, label %ok6507 -panic6506: - call void @finch_panic(ptr @.str.4236, i64 3588, ptr @.str.4237) + br i1 %t71, label %panic6749, label %ok6750 +panic6749: + call void @finch_panic(ptr @.str.4364, i64 3726, ptr @.str.4365) unreachable -ok6507: - %t72 = getelementptr inbounds %S.gen.Gen, ptr %t70, i32 0, i32 25 +ok6750: + %t72 = getelementptr inbounds %S.gen.Gen, ptr %t70, i32 0, i32 26 %t73 = getelementptr inbounds %S.cimport.CImports, ptr %t72, i32 0, i32 2 %t74 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t75 = load { ptr, i64, i64 }, ptr %t74 @@ -65504,119 +67955,119 @@ ok6507: %t77 = call i64 @finch_map_find(ptr %t73, ptr %a76, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.ast.Type }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t78 = icmp sge i64 %t77, 0 %t79 = xor i1 %t78, true - br label %logic.rend6508 -logic.rend6508: - br label %logic.end6505 -logic.end6505: - %t80 = phi i1 [ false, %logic.from6503 ], [ %t79, %logic.rend6508 ] - br label %logic.from6509 -logic.from6509: - br i1 %t80, label %logic.rhs6510, label %logic.end6511 -logic.rhs6510: + br label %logic.rend6751 +logic.rend6751: + br label %logic.end6748 +logic.end6748: + %t80 = phi i1 [ false, %logic.from6746 ], [ %t79, %logic.rend6751 ] + br label %logic.from6752 +logic.from6752: + br i1 %t80, label %logic.rhs6753, label %logic.end6754 +logic.rhs6753: %t81 = load ptr, ptr %a1 %t82 = icmp eq ptr %t81, null - br i1 %t82, label %panic6512, label %ok6513 -panic6512: - call void @finch_panic(ptr @.str.4238, i64 3588, ptr @.str.4239) + br i1 %t82, label %panic6755, label %ok6756 +panic6755: + call void @finch_panic(ptr @.str.4366, i64 3726, ptr @.str.4367) unreachable -ok6513: - %t83 = getelementptr inbounds %S.gen.Gen, ptr %t81, i32 0, i32 25 +ok6756: + %t83 = getelementptr inbounds %S.gen.Gen, ptr %t81, i32 0, i32 26 %t84 = getelementptr inbounds %S.cimport.CImports, ptr %t83, i32 0, i32 0 - store { ptr, i64, i64 } { ptr @.str.4240, i64 7, i64 0 }, ptr %a85 + store { ptr, i64, i64 } { ptr @.str.4368, i64 7, i64 0 }, ptr %a85 %t86 = call i64 @finch_map_find(ptr %t84, ptr %a85, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t87 = icmp sge i64 %t86, 0 - br label %logic.rend6514 -logic.rend6514: - br label %logic.end6511 -logic.end6511: - %t88 = phi i1 [ false, %logic.from6509 ], [ %t87, %logic.rend6514 ] - br label %logic.from6515 -logic.from6515: - br i1 %t88, label %logic.rhs6516, label %logic.end6517 -logic.rhs6516: + br label %logic.rend6757 +logic.rend6757: + br label %logic.end6754 +logic.end6754: + %t88 = phi i1 [ false, %logic.from6752 ], [ %t87, %logic.rend6757 ] + br label %logic.from6758 +logic.from6758: + br i1 %t88, label %logic.rhs6759, label %logic.end6760 +logic.rhs6759: %t89 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t90 = load { ptr, i64, i64 }, ptr %t89 store { ptr, i64, i64 } %t90, ptr %a91 - store { ptr, i64, i64 } { ptr @.str.4241, i64 5, i64 0 }, ptr %a92 + store { ptr, i64, i64 } { ptr @.str.4369, i64 5, i64 0 }, ptr %a92 %t93 = call i32 @finch_str_eq(ptr %a91, ptr %a92) %t94 = icmp ne i32 %t93, 0 - br label %logic.from6518 -logic.from6518: - br i1 %t94, label %logic.end6520, label %logic.rhs6519 -logic.rhs6519: + br label %logic.from6761 +logic.from6761: + br i1 %t94, label %logic.end6763, label %logic.rhs6762 +logic.rhs6762: %t95 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t96 = load { ptr, i64, i64 }, ptr %t95 store { ptr, i64, i64 } %t96, ptr %a97 - store { ptr, i64, i64 } { ptr @.str.4242, i64 6, i64 0 }, ptr %a98 + store { ptr, i64, i64 } { ptr @.str.4370, i64 6, i64 0 }, ptr %a98 %t99 = call i32 @finch_str_eq(ptr %a97, ptr %a98) %t100 = icmp ne i32 %t99, 0 - br label %logic.rend6521 -logic.rend6521: - br label %logic.end6520 -logic.end6520: - %t101 = phi i1 [ true, %logic.from6518 ], [ %t100, %logic.rend6521 ] - br label %logic.from6522 -logic.from6522: - br i1 %t101, label %logic.end6524, label %logic.rhs6523 -logic.rhs6523: + br label %logic.rend6764 +logic.rend6764: + br label %logic.end6763 +logic.end6763: + %t101 = phi i1 [ true, %logic.from6761 ], [ %t100, %logic.rend6764 ] + br label %logic.from6765 +logic.from6765: + br i1 %t101, label %logic.end6767, label %logic.rhs6766 +logic.rhs6766: %t102 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t103 = load { ptr, i64, i64 }, ptr %t102 store { ptr, i64, i64 } %t103, ptr %a104 - store { ptr, i64, i64 } { ptr @.str.4243, i64 6, i64 0 }, ptr %a105 + store { ptr, i64, i64 } { ptr @.str.4371, i64 6, i64 0 }, ptr %a105 %t106 = call i32 @finch_str_eq(ptr %a104, ptr %a105) %t107 = icmp ne i32 %t106, 0 - br label %logic.rend6525 -logic.rend6525: - br label %logic.end6524 -logic.end6524: - %t108 = phi i1 [ true, %logic.from6522 ], [ %t107, %logic.rend6525 ] - br label %logic.rend6526 -logic.rend6526: - br label %logic.end6517 -logic.end6517: - %t109 = phi i1 [ false, %logic.from6515 ], [ %t108, %logic.rend6526 ] - br i1 %t109, label %then6527, label %endif6529 -then6527: - store { ptr, i64, i64 } { ptr @.str.4244, i64 1, i64 0 }, ptr %a110 + br label %logic.rend6768 +logic.rend6768: + br label %logic.end6767 +logic.end6767: + %t108 = phi i1 [ true, %logic.from6765 ], [ %t107, %logic.rend6768 ] + br label %logic.rend6769 +logic.rend6769: + br label %logic.end6760 +logic.end6760: + %t109 = phi i1 [ false, %logic.from6758 ], [ %t108, %logic.rend6769 ] + br i1 %t109, label %then6770, label %endif6772 +then6770: + store { ptr, i64, i64 } { ptr @.str.4372, i64 1, i64 0 }, ptr %a110 %t111 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t112 = load { ptr, i64, i64 }, ptr %t111 store { ptr, i64, i64 } %t112, ptr %a113 - store { ptr, i64, i64 } { ptr @.str.4245, i64 5, i64 0 }, ptr %a114 + store { ptr, i64, i64 } { ptr @.str.4373, i64 5, i64 0 }, ptr %a114 %t115 = call i32 @finch_str_eq(ptr %a113, ptr %a114) %t116 = icmp ne i32 %t115, 0 - br i1 %t116, label %then6530, label %else6531 -then6530: + br i1 %t116, label %then6773, label %else6774 +then6773: %t117 = load { ptr, i64, i64 }, ptr %a110 - store { ptr, i64, i64 } { ptr @.str.4246, i64 1, i64 0 }, ptr %a110 + store { ptr, i64, i64 } { ptr @.str.4374, i64 1, i64 0 }, ptr %a110 store { ptr, i64, i64 } %t117, ptr %a118 call void @finch_str_drop(ptr %a118) - br label %endif6532 -else6531: + br label %endif6775 +else6774: %t119 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t120 = load { ptr, i64, i64 }, ptr %t119 store { ptr, i64, i64 } %t120, ptr %a121 - store { ptr, i64, i64 } { ptr @.str.4247, i64 6, i64 0 }, ptr %a122 + store { ptr, i64, i64 } { ptr @.str.4375, i64 6, i64 0 }, ptr %a122 %t123 = call i32 @finch_str_eq(ptr %a121, ptr %a122) %t124 = icmp ne i32 %t123, 0 - br i1 %t124, label %then6533, label %endif6535 -then6533: + br i1 %t124, label %then6776, label %endif6778 +then6776: %t125 = load { ptr, i64, i64 }, ptr %a110 - store { ptr, i64, i64 } { ptr @.str.4248, i64 1, i64 0 }, ptr %a110 + store { ptr, i64, i64 } { ptr @.str.4376, i64 1, i64 0 }, ptr %a110 store { ptr, i64, i64 } %t125, ptr %a126 call void @finch_str_drop(ptr %a126) - br label %endif6535 -endif6535: - br label %endif6532 -endif6532: + br label %endif6778 +endif6778: + br label %endif6775 +endif6775: %t127 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 %t128 = load ptr, ptr %a1 %t129 = load { ptr, i64, i64 }, ptr %a110 - store { ptr, i64, i64 } { ptr @.str.4249, i64 31, i64 0 }, ptr %a131 + store { ptr, i64, i64 } { ptr @.str.4377, i64 31, i64 0 }, ptr %a131 store { ptr, i64, i64 } %t129, ptr %a132 call void @finch_str_concat(ptr %a130, ptr %a131, ptr %a132) %t133 = load { ptr, i64, i64 }, ptr %a130 store { ptr, i64, i64 } %t133, ptr %a135 - store { ptr, i64, i64 } { ptr @.str.4250, i64 1, i64 0 }, ptr %a136 + store { ptr, i64, i64 } { ptr @.str.4378, i64 1, i64 0 }, ptr %a136 call void @finch_str_concat(ptr %a134, ptr %a135, ptr %a136) store { ptr, i64, i64 } %t133, ptr %a137 call void @finch_str_drop(ptr %a137) @@ -65625,62 +68076,62 @@ endif6532: store { ptr, i64, i64 } %t138, ptr %a140 call void @finch_str_drop(ptr %a140) %t141 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t139, 0 - %t142 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4251, i64 3, i64 0 }) + %t142 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4379, i64 3, i64 0 }) %t143 = insertvalue %S.gen.Val %t141, %S.ast.Type %t142, 1 %t144 = insertvalue %S.gen.Ref %t127, %S.gen.Val %t143, 2 call void @finch_str_drop(ptr %a110) ret %S.gen.Ref %t144 -endif6529: +endif6772: %t145 = load i64, ptr %a14 %t146 = icmp slt i64 %t145, 0 - br label %logic.from6536 -logic.from6536: - br i1 %t146, label %logic.rhs6537, label %logic.end6538 -logic.rhs6537: + br label %logic.from6779 +logic.from6779: + br i1 %t146, label %logic.rhs6780, label %logic.end6781 +logic.rhs6780: %t147 = load ptr, ptr %a1 %t148 = icmp eq ptr %t147, null - br i1 %t148, label %panic6539, label %ok6540 -panic6539: - call void @finch_panic(ptr @.str.4252, i64 3597, ptr @.str.4253) + br i1 %t148, label %panic6782, label %ok6783 +panic6782: + call void @finch_panic(ptr @.str.4380, i64 3735, ptr @.str.4381) unreachable -ok6540: - %t149 = getelementptr inbounds %S.gen.Gen, ptr %t147, i32 0, i32 25 +ok6783: + %t149 = getelementptr inbounds %S.gen.Gen, ptr %t147, i32 0, i32 26 %t150 = getelementptr inbounds %S.cimport.CImports, ptr %t149, i32 0, i32 2 %t151 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t152 = load { ptr, i64, i64 }, ptr %t151 store { ptr, i64, i64 } %t152, ptr %a153 %t154 = call i64 @finch_map_find(ptr %t150, ptr %a153, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.ast.Type }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t155 = icmp sge i64 %t154, 0 - br label %logic.rend6541 -logic.rend6541: - br label %logic.end6538 -logic.end6538: - %t156 = phi i1 [ false, %logic.from6536 ], [ %t155, %logic.rend6541 ] - br i1 %t156, label %then6542, label %endif6544 -then6542: + br label %logic.rend6784 +logic.rend6784: + br label %logic.end6781 +logic.end6781: + %t156 = phi i1 [ false, %logic.from6779 ], [ %t155, %logic.rend6784 ] + br i1 %t156, label %then6785, label %endif6787 +then6785: %t157 = load ptr, ptr %a1 %t158 = load ptr, ptr %a1 %t159 = icmp eq ptr %t158, null - br i1 %t159, label %panic6545, label %ok6546 -panic6545: - call void @finch_panic(ptr @.str.4254, i64 3598, ptr @.str.4255) + br i1 %t159, label %panic6788, label %ok6789 +panic6788: + call void @finch_panic(ptr @.str.4382, i64 3736, ptr @.str.4383) unreachable -ok6546: - %t160 = getelementptr inbounds %S.gen.Gen, ptr %t158, i32 0, i32 25 +ok6789: + %t160 = getelementptr inbounds %S.gen.Gen, ptr %t158, i32 0, i32 26 %t161 = getelementptr inbounds %S.cimport.CImports, ptr %t160, i32 0, i32 2 %t162 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t163 = load { ptr, i64, i64 }, ptr %t162 store { ptr, i64, i64 } %t163, ptr %a164 %t165 = call i64 @finch_map_find(ptr %t161, ptr %a164, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.ast.Type }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t166 = icmp slt i64 %t165, 0 - br i1 %t166, label %map.missing6547, label %map.found6548 -map.missing6547: + br i1 %t166, label %map.missing6790, label %map.found6791 +map.missing6790: store { ptr, i64, i64 } zeroinitializer, ptr %a167 store { ptr, i64, i64 } %t163, ptr %a168 call void @finch_buf_str(ptr %a167, ptr %a168, i32 1) - call void @finch_map_missing(ptr @.str.4256, i64 3598, ptr %a167) + call void @finch_map_missing(ptr @.str.4384, i64 3736, ptr %a167) unreachable -map.found6548: +map.found6791: %t169 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t161, i32 0, i32 0 %t170 = load ptr, ptr %t169 %t171 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.ast.Type }, ptr %t170, i64 %t165 @@ -65691,16 +68142,16 @@ map.found6548: store %S.ast.Type %t175, ptr %a176 %t177 = load ptr, ptr %a1 %t178 = icmp eq ptr %t177, null - br i1 %t178, label %panic6549, label %ok6550 -panic6549: - call void @finch_panic(ptr @.str.4257, i64 3599, ptr @.str.4258) + br i1 %t178, label %panic6792, label %ok6793 +panic6792: + call void @finch_panic(ptr @.str.4385, i64 3737, ptr @.str.4386) unreachable -ok6550: - %t179 = getelementptr inbounds %S.gen.Gen, ptr %t177, i32 0, i32 39 +ok6793: + %t179 = getelementptr inbounds %S.gen.Gen, ptr %t177, i32 0, i32 40 %t180 = getelementptr inbounds { ptr, i64, i64 }, ptr %t179, i32 0, i32 1 %t181 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t182 = load { ptr, i64, i64 }, ptr %t181 - store { ptr, i64, i64 } { ptr @.str.4259, i64 2, i64 0 }, ptr %a184 + store { ptr, i64, i64 } { ptr @.str.4387, i64 2, i64 0 }, ptr %a184 store { ptr, i64, i64 } %t182, ptr %a185 call void @finch_str_concat(ptr %a183, ptr %a184, ptr %a185) %t186 = load { ptr, i64, i64 }, ptr %a183 @@ -65708,46 +68159,46 @@ ok6550: %t188 = load i64, ptr %t180 %t189 = load ptr, ptr %t179 store i64 0, ptr %a190 - br label %find.cond6551 -find.cond6551: + br label %find.cond6794 +find.cond6794: %t191 = load i64, ptr %a190 %t192 = icmp slt i64 %t191, %t188 - br i1 %t192, label %find.body6552, label %find.end6555 -find.body6552: + br i1 %t192, label %find.body6795, label %find.end6798 +find.body6795: %t193 = getelementptr inbounds { ptr, i64, i64 }, ptr %t189, i64 %t191 %t194 = load { ptr, i64, i64 }, ptr %t193 store { ptr, i64, i64 } %t194, ptr %a195 store { ptr, i64, i64 } %t186, ptr %a196 %t197 = call i32 @finch_str_eq(ptr %a195, ptr %a196) %t198 = icmp ne i32 %t197, 0 - br i1 %t198, label %find.hit6553, label %find.next6554 -find.hit6553: + br i1 %t198, label %find.hit6796, label %find.next6797 +find.hit6796: store i64 %t191, ptr %a187 - br label %find.end6555 -find.next6554: + br label %find.end6798 +find.next6797: %t199 = add i64 %t191, 1 store i64 %t199, ptr %a190 - br label %find.cond6551 -find.end6555: + br label %find.cond6794 +find.end6798: store { ptr, i64, i64 } %t186, ptr %a200 call void @finch_str_drop(ptr %a200) %t201 = load i64, ptr %a187 %t202 = icmp sge i64 %t201, 0 %t203 = xor i1 %t202, true - br i1 %t203, label %then6556, label %endif6558 -then6556: + br i1 %t203, label %then6799, label %endif6801 +then6799: %t204 = load ptr, ptr %a1 %t205 = icmp eq ptr %t204, null - br i1 %t205, label %panic6559, label %ok6560 -panic6559: - call void @finch_panic(ptr @.str.4260, i64 3600, ptr @.str.4261) + br i1 %t205, label %panic6802, label %ok6803 +panic6802: + call void @finch_panic(ptr @.str.4388, i64 3738, ptr @.str.4389) unreachable -ok6560: - %t206 = getelementptr inbounds %S.gen.Gen, ptr %t204, i32 0, i32 39 +ok6803: + %t206 = getelementptr inbounds %S.gen.Gen, ptr %t204, i32 0, i32 40 %t207 = getelementptr inbounds { ptr, i64, i64 }, ptr %t206, i32 0, i32 1 %t208 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t209 = load { ptr, i64, i64 }, ptr %t208 - store { ptr, i64, i64 } { ptr @.str.4262, i64 2, i64 0 }, ptr %a211 + store { ptr, i64, i64 } { ptr @.str.4390, i64 2, i64 0 }, ptr %a211 store { ptr, i64, i64 } %t209, ptr %a212 call void @finch_str_concat(ptr %a210, ptr %a211, ptr %a212) %t213 = load { ptr, i64, i64 }, ptr %a210 @@ -65760,21 +68211,21 @@ ok6560: store i64 %t215, ptr %t207 %t218 = load ptr, ptr %a1 %t219 = icmp eq ptr %t218, null - br i1 %t219, label %panic6561, label %ok6562 -panic6561: - call void @finch_panic(ptr @.str.4263, i64 3601, ptr @.str.4264) + br i1 %t219, label %panic6804, label %ok6805 +panic6804: + call void @finch_panic(ptr @.str.4391, i64 3739, ptr @.str.4392) unreachable -ok6562: +ok6805: %t220 = getelementptr inbounds %S.gen.Gen, ptr %t218, i32 0, i32 2 %t221 = getelementptr inbounds { ptr, i64, i64 }, ptr %t220, i32 0, i32 1 %t222 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t223 = load { ptr, i64, i64 }, ptr %t222 - store { ptr, i64, i64 } { ptr @.str.4265, i64 1, i64 0 }, ptr %a225 + store { ptr, i64, i64 } { ptr @.str.4393, i64 1, i64 0 }, ptr %a225 store { ptr, i64, i64 } %t223, ptr %a226 call void @finch_str_concat(ptr %a224, ptr %a225, ptr %a226) %t227 = load { ptr, i64, i64 }, ptr %a224 store { ptr, i64, i64 } %t227, ptr %a229 - store { ptr, i64, i64 } { ptr @.str.4266, i64 19, i64 0 }, ptr %a230 + store { ptr, i64, i64 } { ptr @.str.4394, i64 19, i64 0 }, ptr %a230 call void @finch_str_concat(ptr %a228, ptr %a229, ptr %a230) store { ptr, i64, i64 } %t227, ptr %a231 call void @finch_str_drop(ptr %a231) @@ -65797,12 +68248,12 @@ ok6562: %t245 = getelementptr inbounds { ptr, i64, i64 }, ptr %t244, i64 %t242 store { ptr, i64, i64 } %t241, ptr %t245 store i64 %t243, ptr %t221 - br label %endif6558 -endif6558: + br label %endif6801 +endif6801: %t246 = insertvalue %S.gen.Ref zeroinitializer, i1 true, 0 %t247 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t248 = load { ptr, i64, i64 }, ptr %t247 - store { ptr, i64, i64 } { ptr @.str.4267, i64 1, i64 0 }, ptr %a250 + store { ptr, i64, i64 } { ptr @.str.4395, i64 1, i64 0 }, ptr %a250 store { ptr, i64, i64 } %t248, ptr %a251 call void @finch_str_concat(ptr %a249, ptr %a250, ptr %a251) %t252 = load { ptr, i64, i64 }, ptr %a249 @@ -65815,27 +68266,27 @@ endif6558: %t259 = insertvalue %S.gen.Ref %t246, %S.gen.Place %t258, 1 call void @finch.drop.S_ast_Type(ptr %a176) ret %S.gen.Ref %t259 -endif6544: +endif6787: %t260 = load i64, ptr %a14 %t261 = icmp slt i64 %t260, 0 - br i1 %t261, label %then6563, label %endif6565 -then6563: + br i1 %t261, label %then6806, label %endif6808 +then6806: %t262 = load ptr, ptr %a1 %t263 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t264 = load { ptr, i64, i64 }, ptr %t263 %t265 = call i1 @finch.gen.imports(ptr %t262, { ptr, i64, i64 } %t264) - br i1 %t265, label %then6566, label %endif6568 -then6566: + br i1 %t265, label %then6809, label %endif6811 +then6809: %t266 = load ptr, ptr %a1 %t267 = load %S.ast.Node, ptr %a2 %t268 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t269 = load { ptr, i64, i64 }, ptr %t268 - store { ptr, i64, i64 } { ptr @.str.4268, i64 1, i64 0 }, ptr %a271 + store { ptr, i64, i64 } { ptr @.str.4396, i64 1, i64 0 }, ptr %a271 store { ptr, i64, i64 } %t269, ptr %a272 call void @finch_str_concat(ptr %a270, ptr %a271, ptr %a272) %t273 = load { ptr, i64, i64 }, ptr %a270 store { ptr, i64, i64 } %t273, ptr %a275 - store { ptr, i64, i64 } { ptr @.str.4269, i64 43, i64 0 }, ptr %a276 + store { ptr, i64, i64 } { ptr @.str.4397, i64 43, i64 0 }, ptr %a276 call void @finch_str_concat(ptr %a274, ptr %a275, ptr %a276) store { ptr, i64, i64 } %t273, ptr %a277 call void @finch_str_drop(ptr %a277) @@ -65849,7 +68300,7 @@ then6566: call void @finch_str_drop(ptr %a284) %t285 = load { ptr, i64, i64 }, ptr %a281 store { ptr, i64, i64 } %t285, ptr %a287 - store { ptr, i64, i64 } { ptr @.str.4270, i64 10, i64 0 }, ptr %a288 + store { ptr, i64, i64 } { ptr @.str.4398, i64 10, i64 0 }, ptr %a288 call void @finch_str_concat(ptr %a286, ptr %a287, ptr %a288) store { ptr, i64, i64 } %t285, ptr %a289 call void @finch_str_drop(ptr %a289) @@ -65857,18 +68308,18 @@ then6566: call void @finch.gen.fail(ptr %t266, %S.ast.Node %t267, { ptr, i64, i64 } %t290) store { ptr, i64, i64 } %t290, ptr %a291 call void @finch_str_drop(ptr %a291) - br label %endif6568 -endif6568: + br label %endif6811 +endif6811: %t292 = load ptr, ptr %a1 %t293 = load %S.ast.Node, ptr %a2 %t294 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t295 = load { ptr, i64, i64 }, ptr %t294 - store { ptr, i64, i64 } { ptr @.str.4271, i64 28, i64 0 }, ptr %a297 + store { ptr, i64, i64 } { ptr @.str.4399, i64 28, i64 0 }, ptr %a297 store { ptr, i64, i64 } %t295, ptr %a298 call void @finch_str_concat(ptr %a296, ptr %a297, ptr %a298) %t299 = load { ptr, i64, i64 }, ptr %a296 store { ptr, i64, i64 } %t299, ptr %a301 - store { ptr, i64, i64 } { ptr @.str.4272, i64 1, i64 0 }, ptr %a302 + store { ptr, i64, i64 } { ptr @.str.4400, i64 1, i64 0 }, ptr %a302 call void @finch_str_concat(ptr %a300, ptr %a301, ptr %a302) store { ptr, i64, i64 } %t299, ptr %a303 call void @finch_str_drop(ptr %a303) @@ -65876,8 +68327,8 @@ endif6568: call void @finch.gen.fail(ptr %t292, %S.ast.Node %t293, { ptr, i64, i64 } %t304) store { ptr, i64, i64 } %t304, ptr %a305 call void @finch_str_drop(ptr %a305) - br label %endif6565 -endif6565: + br label %endif6808 +endif6808: %t306 = load ptr, ptr %a1 %t307 = load i64, ptr %a14 %t308 = call %S.gen.Var @finch.gen.varAt(ptr %t306, i64 %t307) @@ -65892,14 +68343,14 @@ endif6565: %t317 = getelementptr inbounds %S.gen.Var, ptr %a309, i32 0, i32 1 %t318 = load %S.ast.Type, ptr %t317 %t319 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t318) - store { ptr, i64, i64 } { ptr @.str.4273, i64 9, i64 0 }, ptr %a321 + store { ptr, i64, i64 } { ptr @.str.4401, i64 9, i64 0 }, ptr %a321 store { ptr, i64, i64 } %t319, ptr %a322 call void @finch_str_concat(ptr %a320, ptr %a321, ptr %a322) store { ptr, i64, i64 } %t319, ptr %a323 call void @finch_str_drop(ptr %a323) %t324 = load { ptr, i64, i64 }, ptr %a320 store { ptr, i64, i64 } %t324, ptr %a326 - store { ptr, i64, i64 } { ptr @.str.4274, i64 1, i64 0 }, ptr %a327 + store { ptr, i64, i64 } { ptr @.str.4402, i64 1, i64 0 }, ptr %a327 call void @finch_str_concat(ptr %a325, ptr %a326, ptr %a327) store { ptr, i64, i64 } %t324, ptr %a328 call void @finch_str_drop(ptr %a328) @@ -65913,7 +68364,7 @@ endif6565: call void @finch_str_drop(ptr %a335) %t336 = load { ptr, i64, i64 }, ptr %a332 store { ptr, i64, i64 } %t336, ptr %a338 - store { ptr, i64, i64 } { ptr @.str.4275, i64 4, i64 0 }, ptr %a339 + store { ptr, i64, i64 } { ptr @.str.4403, i64 4, i64 0 }, ptr %a339 call void @finch_str_concat(ptr %a337, ptr %a338, ptr %a339) store { ptr, i64, i64 } %t336, ptr %a340 call void @finch_str_drop(ptr %a340) @@ -65943,35 +68394,35 @@ endif6565: %t362 = insertvalue %S.gen.Ref %t349, %S.gen.Place %t361, 1 call void @finch.drop.S_gen_Var(ptr %a309) ret %S.gen.Ref %t362 -endif6486: +endif6729: %t363 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 %t364 = load { ptr, i64, i64 }, ptr %t363 store { ptr, i64, i64 } %t364, ptr %a365 - store { ptr, i64, i64 } { ptr @.str.4276, i64 6, i64 0 }, ptr %a366 + store { ptr, i64, i64 } { ptr @.str.4404, i64 6, i64 0 }, ptr %a366 %t367 = call i32 @finch_str_eq(ptr %a365, ptr %a366) %t368 = icmp ne i32 %t367, 0 - br i1 %t368, label %then6569, label %endif6571 -then6569: + br i1 %t368, label %then6812, label %endif6814 +then6812: %t369 = load ptr, ptr %a1 %t370 = load %S.ast.Node, ptr %a2 %t371 = load i1, ptr %a3 %t372 = call %S.gen.Ref @finch.gen.member(ptr %t369, %S.ast.Node %t370, i1 %t371) ret %S.gen.Ref %t372 -endif6571: +endif6814: %t373 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 %t374 = load { ptr, i64, i64 }, ptr %t373 store { ptr, i64, i64 } %t374, ptr %a375 - store { ptr, i64, i64 } { ptr @.str.4277, i64 5, i64 0 }, ptr %a376 + store { ptr, i64, i64 } { ptr @.str.4405, i64 5, i64 0 }, ptr %a376 %t377 = call i32 @finch_str_eq(ptr %a375, ptr %a376) %t378 = icmp ne i32 %t377, 0 - br i1 %t378, label %then6572, label %endif6574 -then6572: + br i1 %t378, label %then6815, label %endif6817 +then6815: %t379 = load ptr, ptr %a1 %t380 = load %S.ast.Node, ptr %a2 %t381 = load i1, ptr %a3 %t382 = call %S.gen.Ref @finch.gen.index(ptr %t379, %S.ast.Node %t380, i1 %t381) ret %S.gen.Ref %t382 -endif6574: +endif6817: %t383 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 %t384 = load ptr, ptr %a1 %t385 = load %S.ast.Node, ptr %a2 @@ -66027,13 +68478,13 @@ entry: store { ptr, i64, i64 } %t5, ptr %a6 %t7 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t7, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.4279, i64 1, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.4407, i64 1, i64 0 }, ptr %a10 %t11 = call i32 @finch_str_starts(ptr %a8, ptr %a10) %t12 = icmp ne i32 %t11, 0 - br i1 %t12, label %then6575, label %endif6577 -then6575: + br i1 %t12, label %then6818, label %endif6820 +then6818: %t13 = load { ptr, i64, i64 }, ptr %a6 - store { ptr, i64, i64 } { ptr @.str.4280, i64 1, i64 0 }, ptr %a15 + store { ptr, i64, i64 } { ptr @.str.4408, i64 1, i64 0 }, ptr %a15 store { ptr, i64, i64 } %t13, ptr %a16 call void @finch_str_concat(ptr %a14, ptr %a15, ptr %a16) %t17 = load { ptr, i64, i64 }, ptr %a14 @@ -66041,51 +68492,51 @@ then6575: store { ptr, i64, i64 } %t17, ptr %a6 store { ptr, i64, i64 } %t18, ptr %a19 call void @finch_str_drop(ptr %a19) - br label %endif6577 -endif6577: + br label %endif6820 +endif6820: %t20 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t20, ptr %a21 - store { ptr, i64, i64 } { ptr @.str.4282, i64 1, i64 0 }, ptr %a23 + store { ptr, i64, i64 } { ptr @.str.4410, i64 1, i64 0 }, ptr %a23 %t24 = call i64 @finch_str_find(ptr %a21, ptr %a23) %t25 = icmp sge i64 %t24, 0 %t26 = xor i1 %t25, true - br i1 %t26, label %then6578, label %endif6580 -then6578: + br i1 %t26, label %then6821, label %endif6823 +then6821: %t27 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t27, ptr %a28 - store { ptr, i64, i64 } { ptr @.str.4284, i64 1, i64 0 }, ptr %a30 + store { ptr, i64, i64 } { ptr @.str.4412, i64 1, i64 0 }, ptr %a30 %t31 = call i64 @finch_str_find(ptr %a28, ptr %a30) store i64 %t31, ptr %a32 %t33 = load i64, ptr %a32 %t34 = icmp slt i64 %t33, 0 - br i1 %t34, label %then6581, label %endif6583 -then6581: + br i1 %t34, label %then6824, label %endif6826 +then6824: %t35 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t35, ptr %a36 - store { ptr, i64, i64 } { ptr @.str.4286, i64 1, i64 0 }, ptr %a38 + store { ptr, i64, i64 } { ptr @.str.4414, i64 1, i64 0 }, ptr %a38 %t39 = call i64 @finch_str_find(ptr %a36, ptr %a38) store i64 %t39, ptr %a32 - br label %endif6583 -endif6583: + br label %endif6826 +endif6826: %t40 = load i64, ptr %a32 %t41 = icmp slt i64 %t40, 0 - br i1 %t41, label %then6584, label %endif6586 -then6584: + br i1 %t41, label %then6827, label %endif6829 +then6827: %t42 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t42, ptr %a44 - store { ptr, i64, i64 } { ptr @.str.4287, i64 2, i64 0 }, ptr %a45 + store { ptr, i64, i64 } { ptr @.str.4415, i64 2, i64 0 }, ptr %a45 call void @finch_str_concat(ptr %a43, ptr %a44, ptr %a45) %t46 = load { ptr, i64, i64 }, ptr %a43 call void @finch_str_drop(ptr %a6) ret { ptr, i64, i64 } %t46 -endif6586: +endif6829: %t47 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t47, ptr %a48 %t50 = load i64, ptr %a32 - call void @finch_str_sub(ptr %a49, ptr %a48, i64 0, i64 %t50, ptr @.str.4288, i64 3638) + call void @finch_str_sub(ptr %a49, ptr %a48, i64 0, i64 %t50, ptr @.str.4416, i64 3776) %t51 = load { ptr, i64, i64 }, ptr %a49 store { ptr, i64, i64 } %t51, ptr %a53 - store { ptr, i64, i64 } { ptr @.str.4289, i64 2, i64 0 }, ptr %a54 + store { ptr, i64, i64 } { ptr @.str.4417, i64 2, i64 0 }, ptr %a54 call void @finch_str_concat(ptr %a52, ptr %a53, ptr %a54) store { ptr, i64, i64 } %t51, ptr %a55 call void @finch_str_drop(ptr %a55) @@ -66095,7 +68546,7 @@ endif6586: %t60 = load i64, ptr %a32 %t61 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t62 = load i64, ptr %t61 - call void @finch_str_sub(ptr %a59, ptr %a58, i64 %t60, i64 %t62, ptr @.str.4290, i64 3638) + call void @finch_str_sub(ptr %a59, ptr %a58, i64 %t60, i64 %t62, ptr @.str.4418, i64 3776) %t63 = load { ptr, i64, i64 }, ptr %a59 store { ptr, i64, i64 } %t56, ptr %a65 store { ptr, i64, i64 } %t63, ptr %a66 @@ -66107,7 +68558,7 @@ endif6586: %t69 = load { ptr, i64, i64 }, ptr %a64 call void @finch_str_drop(ptr %a6) ret { ptr, i64, i64 } %t69 -endif6580: +endif6823: %t70 = load { ptr, i64, i64 }, ptr %a6 ret { ptr, i64, i64 } %t70 } @@ -66127,133 +68578,133 @@ entry: %t3 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 %t4 = load { ptr, i64, i64 }, ptr %t3 store { ptr, i64, i64 } %t4, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.4291, i64 3, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.4419, i64 3, i64 0 }, ptr %a6 %t7 = call i32 @finch_str_eq(ptr %a5, ptr %a6) %t8 = icmp ne i32 %t7, 0 - br label %logic.from6587 -logic.from6587: - br i1 %t8, label %logic.rhs6588, label %logic.end6589 -logic.rhs6588: + br label %logic.from6830 +logic.from6830: + br i1 %t8, label %logic.rhs6831, label %logic.end6832 +logic.rhs6831: %t9 = load ptr, ptr %a1 %t10 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t11 = load { ptr, i64, i64 }, ptr %t10 %t12 = call i64 @finch.gen.lookup(ptr %t9, { ptr, i64, i64 } %t11) %t13 = icmp slt i64 %t12, 0 - br label %logic.rend6590 -logic.rend6590: - br label %logic.end6589 -logic.end6589: - %t14 = phi i1 [ false, %logic.from6587 ], [ %t13, %logic.rend6590 ] - br i1 %t14, label %then6591, label %endif6593 -then6591: + br label %logic.rend6833 +logic.rend6833: + br label %logic.end6832 +logic.end6832: + %t14 = phi i1 [ false, %logic.from6830 ], [ %t13, %logic.rend6833 ] + br i1 %t14, label %then6834, label %endif6836 +then6834: %t15 = load ptr, ptr %a1 %t16 = load ptr, ptr %a1 %t17 = icmp eq ptr %t16, null - br i1 %t17, label %panic6594, label %ok6595 -panic6594: - call void @finch_panic(ptr @.str.4292, i64 3646, ptr @.str.4293) + br i1 %t17, label %panic6837, label %ok6838 +panic6837: + call void @finch_panic(ptr @.str.4420, i64 3784, ptr @.str.4421) unreachable -ok6595: +ok6838: %t18 = getelementptr inbounds %S.gen.Gen, ptr %t16, i32 0, i32 14 %t19 = load { ptr, i64, i64 }, ptr %t18 %t20 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t21 = load { ptr, i64, i64 }, ptr %t20 %t22 = call i64 @finch.gen.findEnum(ptr %t15, { ptr, i64, i64 } %t19, { ptr, i64, i64 } %t21) ret i64 %t22 -endif6593: +endif6836: %t23 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 %t24 = load { ptr, i64, i64 }, ptr %t23 store { ptr, i64, i64 } %t24, ptr %a25 - store { ptr, i64, i64 } { ptr @.str.4294, i64 6, i64 0 }, ptr %a26 + store { ptr, i64, i64 } { ptr @.str.4422, i64 6, i64 0 }, ptr %a26 %t27 = call i32 @finch_str_eq(ptr %a25, ptr %a26) %t28 = icmp ne i32 %t27, 0 - br label %logic.from6596 -logic.from6596: - br i1 %t28, label %logic.rhs6597, label %logic.end6598 -logic.rhs6597: + br label %logic.from6839 +logic.from6839: + br i1 %t28, label %logic.rhs6840, label %logic.end6841 +logic.rhs6840: %t29 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t30 = load { ptr, i64, i64 }, ptr %t29 %t31 = extractvalue { ptr, i64, i64 } %t30, 1 %t32 = icmp uge i64 0, %t31 - br i1 %t32, label %range6599, label %inrange6600 -range6599: - call void @finch_panic_index(ptr @.str.4295, i64 3648, i64 0, i64 %t31) + br i1 %t32, label %range6842, label %inrange6843 +range6842: + call void @finch_panic_index(ptr @.str.4423, i64 3786, i64 0, i64 %t31) unreachable -inrange6600: +inrange6843: %t33 = extractvalue { ptr, i64, i64 } %t30, 0 %t34 = getelementptr inbounds %S.ast.Node, ptr %t33, i64 0 %t35 = getelementptr inbounds %S.ast.Node, ptr %t34, i32 0, i32 0 %t36 = load { ptr, i64, i64 }, ptr %t35 store { ptr, i64, i64 } %t36, ptr %a37 - store { ptr, i64, i64 } { ptr @.str.4296, i64 3, i64 0 }, ptr %a38 + store { ptr, i64, i64 } { ptr @.str.4424, i64 3, i64 0 }, ptr %a38 %t39 = call i32 @finch_str_eq(ptr %a37, ptr %a38) %t40 = icmp ne i32 %t39, 0 - br label %logic.rend6601 -logic.rend6601: - br label %logic.end6598 -logic.end6598: - %t41 = phi i1 [ false, %logic.from6596 ], [ %t40, %logic.rend6601 ] - br label %logic.from6602 -logic.from6602: - br i1 %t41, label %logic.rhs6603, label %logic.end6604 -logic.rhs6603: + br label %logic.rend6844 +logic.rend6844: + br label %logic.end6841 +logic.end6841: + %t41 = phi i1 [ false, %logic.from6839 ], [ %t40, %logic.rend6844 ] + br label %logic.from6845 +logic.from6845: + br i1 %t41, label %logic.rhs6846, label %logic.end6847 +logic.rhs6846: %t42 = load ptr, ptr %a1 %t43 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t44 = load { ptr, i64, i64 }, ptr %t43 %t45 = extractvalue { ptr, i64, i64 } %t44, 1 %t46 = icmp uge i64 0, %t45 - br i1 %t46, label %range6605, label %inrange6606 -range6605: - call void @finch_panic_index(ptr @.str.4297, i64 3648, i64 0, i64 %t45) + br i1 %t46, label %range6848, label %inrange6849 +range6848: + call void @finch_panic_index(ptr @.str.4425, i64 3786, i64 0, i64 %t45) unreachable -inrange6606: +inrange6849: %t47 = extractvalue { ptr, i64, i64 } %t44, 0 %t48 = getelementptr inbounds %S.ast.Node, ptr %t47, i64 0 %t49 = getelementptr inbounds %S.ast.Node, ptr %t48, i32 0, i32 1 %t50 = load { ptr, i64, i64 }, ptr %t49 %t51 = call i64 @finch.gen.lookup(ptr %t42, { ptr, i64, i64 } %t50) %t52 = icmp slt i64 %t51, 0 - br label %logic.rend6607 -logic.rend6607: - br label %logic.end6604 -logic.end6604: - %t53 = phi i1 [ false, %logic.from6602 ], [ %t52, %logic.rend6607 ] - br label %logic.from6608 -logic.from6608: - br i1 %t53, label %logic.rhs6609, label %logic.end6610 -logic.rhs6609: + br label %logic.rend6850 +logic.rend6850: + br label %logic.end6847 +logic.end6847: + %t53 = phi i1 [ false, %logic.from6845 ], [ %t52, %logic.rend6850 ] + br label %logic.from6851 +logic.from6851: + br i1 %t53, label %logic.rhs6852, label %logic.end6853 +logic.rhs6852: %t54 = load ptr, ptr %a1 %t55 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t56 = load { ptr, i64, i64 }, ptr %t55 %t57 = extractvalue { ptr, i64, i64 } %t56, 1 %t58 = icmp uge i64 0, %t57 - br i1 %t58, label %range6611, label %inrange6612 -range6611: - call void @finch_panic_index(ptr @.str.4298, i64 3648, i64 0, i64 %t57) + br i1 %t58, label %range6854, label %inrange6855 +range6854: + call void @finch_panic_index(ptr @.str.4426, i64 3786, i64 0, i64 %t57) unreachable -inrange6612: +inrange6855: %t59 = extractvalue { ptr, i64, i64 } %t56, 0 %t60 = getelementptr inbounds %S.ast.Node, ptr %t59, i64 0 %t61 = getelementptr inbounds %S.ast.Node, ptr %t60, i32 0, i32 1 %t62 = load { ptr, i64, i64 }, ptr %t61 %t63 = call i1 @finch.gen.imports(ptr %t54, { ptr, i64, i64 } %t62) - br label %logic.rend6613 -logic.rend6613: - br label %logic.end6610 -logic.end6610: - %t64 = phi i1 [ false, %logic.from6608 ], [ %t63, %logic.rend6613 ] - br i1 %t64, label %then6614, label %endif6616 -then6614: + br label %logic.rend6856 +logic.rend6856: + br label %logic.end6853 +logic.end6853: + %t64 = phi i1 [ false, %logic.from6851 ], [ %t63, %logic.rend6856 ] + br i1 %t64, label %then6857, label %endif6859 +then6857: %t65 = load ptr, ptr %a1 %t66 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t67 = load { ptr, i64, i64 }, ptr %t66 %t68 = extractvalue { ptr, i64, i64 } %t67, 1 %t69 = icmp uge i64 0, %t68 - br i1 %t69, label %range6617, label %inrange6618 -range6617: - call void @finch_panic_index(ptr @.str.4299, i64 3649, i64 0, i64 %t68) + br i1 %t69, label %range6860, label %inrange6861 +range6860: + call void @finch_panic_index(ptr @.str.4427, i64 3787, i64 0, i64 %t68) unreachable -inrange6618: +inrange6861: %t70 = extractvalue { ptr, i64, i64 } %t67, 0 %t71 = getelementptr inbounds %S.ast.Node, ptr %t70, i64 0 %t72 = getelementptr inbounds %S.ast.Node, ptr %t71, i32 0, i32 1 @@ -66262,10 +68713,1269 @@ inrange6618: %t75 = load { ptr, i64, i64 }, ptr %t74 %t76 = call i64 @finch.gen.findEnum(ptr %t65, { ptr, i64, i64 } %t73, { ptr, i64, i64 } %t75) ret i64 %t76 -endif6616: +endif6859: ret i64 -1 } +define internal i64 @finch.gen.sumNamed(ptr %p0, %S.ast.Node %p1) { +entry: + %a1 = alloca ptr, align 16 + %a2 = alloca %S.ast.Node, align 16 + %a5 = alloca { ptr, i64, i64 }, align 16 + %a6 = alloca { ptr, i64, i64 }, align 16 + %a25 = alloca { ptr, i64, i64 }, align 16 + %a26 = alloca { ptr, i64, i64 }, align 16 + %a37 = alloca { ptr, i64, i64 }, align 16 + %a38 = alloca { ptr, i64, i64 }, align 16 + store ptr %p0, ptr %a1 + store %S.ast.Node %p1, ptr %a2 + %t3 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 + %t4 = load { ptr, i64, i64 }, ptr %t3 + store { ptr, i64, i64 } %t4, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.4428, i64 3, i64 0 }, ptr %a6 + %t7 = call i32 @finch_str_eq(ptr %a5, ptr %a6) + %t8 = icmp ne i32 %t7, 0 + br label %logic.from6862 +logic.from6862: + br i1 %t8, label %logic.rhs6863, label %logic.end6864 +logic.rhs6863: + %t9 = load ptr, ptr %a1 + %t10 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t11 = load { ptr, i64, i64 }, ptr %t10 + %t12 = call i64 @finch.gen.lookup(ptr %t9, { ptr, i64, i64 } %t11) + %t13 = icmp slt i64 %t12, 0 + br label %logic.rend6865 +logic.rend6865: + br label %logic.end6864 +logic.end6864: + %t14 = phi i1 [ false, %logic.from6862 ], [ %t13, %logic.rend6865 ] + br i1 %t14, label %then6866, label %endif6868 +then6866: + %t15 = load ptr, ptr %a1 + %t16 = load ptr, ptr %a1 + %t17 = icmp eq ptr %t16, null + br i1 %t17, label %panic6869, label %ok6870 +panic6869: + call void @finch_panic(ptr @.str.4429, i64 3795, ptr @.str.4430) + unreachable +ok6870: + %t18 = getelementptr inbounds %S.gen.Gen, ptr %t16, i32 0, i32 14 + %t19 = load { ptr, i64, i64 }, ptr %t18 + %t20 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t21 = load { ptr, i64, i64 }, ptr %t20 + %t22 = call i64 @finch.gen.findSum(ptr %t15, { ptr, i64, i64 } %t19, { ptr, i64, i64 } %t21) + ret i64 %t22 +endif6868: + %t23 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 + %t24 = load { ptr, i64, i64 }, ptr %t23 + store { ptr, i64, i64 } %t24, ptr %a25 + store { ptr, i64, i64 } { ptr @.str.4431, i64 6, i64 0 }, ptr %a26 + %t27 = call i32 @finch_str_eq(ptr %a25, ptr %a26) + %t28 = icmp ne i32 %t27, 0 + br label %logic.from6871 +logic.from6871: + br i1 %t28, label %logic.rhs6872, label %logic.end6873 +logic.rhs6872: + %t29 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t30 = load { ptr, i64, i64 }, ptr %t29 + %t31 = extractvalue { ptr, i64, i64 } %t30, 1 + %t32 = icmp uge i64 0, %t31 + br i1 %t32, label %range6874, label %inrange6875 +range6874: + call void @finch_panic_index(ptr @.str.4432, i64 3797, i64 0, i64 %t31) + unreachable +inrange6875: + %t33 = extractvalue { ptr, i64, i64 } %t30, 0 + %t34 = getelementptr inbounds %S.ast.Node, ptr %t33, i64 0 + %t35 = getelementptr inbounds %S.ast.Node, ptr %t34, i32 0, i32 0 + %t36 = load { ptr, i64, i64 }, ptr %t35 + store { ptr, i64, i64 } %t36, ptr %a37 + store { ptr, i64, i64 } { ptr @.str.4433, i64 3, i64 0 }, ptr %a38 + %t39 = call i32 @finch_str_eq(ptr %a37, ptr %a38) + %t40 = icmp ne i32 %t39, 0 + br label %logic.rend6876 +logic.rend6876: + br label %logic.end6873 +logic.end6873: + %t41 = phi i1 [ false, %logic.from6871 ], [ %t40, %logic.rend6876 ] + br label %logic.from6877 +logic.from6877: + br i1 %t41, label %logic.rhs6878, label %logic.end6879 +logic.rhs6878: + %t42 = load ptr, ptr %a1 + %t43 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t44 = load { ptr, i64, i64 }, ptr %t43 + %t45 = extractvalue { ptr, i64, i64 } %t44, 1 + %t46 = icmp uge i64 0, %t45 + br i1 %t46, label %range6880, label %inrange6881 +range6880: + call void @finch_panic_index(ptr @.str.4434, i64 3797, i64 0, i64 %t45) + unreachable +inrange6881: + %t47 = extractvalue { ptr, i64, i64 } %t44, 0 + %t48 = getelementptr inbounds %S.ast.Node, ptr %t47, i64 0 + %t49 = getelementptr inbounds %S.ast.Node, ptr %t48, i32 0, i32 1 + %t50 = load { ptr, i64, i64 }, ptr %t49 + %t51 = call i64 @finch.gen.lookup(ptr %t42, { ptr, i64, i64 } %t50) + %t52 = icmp slt i64 %t51, 0 + br label %logic.rend6882 +logic.rend6882: + br label %logic.end6879 +logic.end6879: + %t53 = phi i1 [ false, %logic.from6877 ], [ %t52, %logic.rend6882 ] + br label %logic.from6883 +logic.from6883: + br i1 %t53, label %logic.rhs6884, label %logic.end6885 +logic.rhs6884: + %t54 = load ptr, ptr %a1 + %t55 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t56 = load { ptr, i64, i64 }, ptr %t55 + %t57 = extractvalue { ptr, i64, i64 } %t56, 1 + %t58 = icmp uge i64 0, %t57 + br i1 %t58, label %range6886, label %inrange6887 +range6886: + call void @finch_panic_index(ptr @.str.4435, i64 3797, i64 0, i64 %t57) + unreachable +inrange6887: + %t59 = extractvalue { ptr, i64, i64 } %t56, 0 + %t60 = getelementptr inbounds %S.ast.Node, ptr %t59, i64 0 + %t61 = getelementptr inbounds %S.ast.Node, ptr %t60, i32 0, i32 1 + %t62 = load { ptr, i64, i64 }, ptr %t61 + %t63 = call i1 @finch.gen.imports(ptr %t54, { ptr, i64, i64 } %t62) + br label %logic.rend6888 +logic.rend6888: + br label %logic.end6885 +logic.end6885: + %t64 = phi i1 [ false, %logic.from6883 ], [ %t63, %logic.rend6888 ] + br i1 %t64, label %then6889, label %endif6891 +then6889: + %t65 = load ptr, ptr %a1 + %t66 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t67 = load { ptr, i64, i64 }, ptr %t66 + %t68 = extractvalue { ptr, i64, i64 } %t67, 1 + %t69 = icmp uge i64 0, %t68 + br i1 %t69, label %range6892, label %inrange6893 +range6892: + call void @finch_panic_index(ptr @.str.4436, i64 3798, i64 0, i64 %t68) + unreachable +inrange6893: + %t70 = extractvalue { ptr, i64, i64 } %t67, 0 + %t71 = getelementptr inbounds %S.ast.Node, ptr %t70, i64 0 + %t72 = getelementptr inbounds %S.ast.Node, ptr %t71, i32 0, i32 1 + %t73 = load { ptr, i64, i64 }, ptr %t72 + %t74 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t75 = load { ptr, i64, i64 }, ptr %t74 + %t76 = call i64 @finch.gen.findSum(ptr %t65, { ptr, i64, i64 } %t73, { ptr, i64, i64 } %t75) + ret i64 %t76 +endif6891: + ret i64 -1 +} + +define internal i64 @finch.gen.sumVariant(ptr %p0, i64 %p1, { ptr, i64, i64 } %p2, %S.ast.Node %p3) { +entry: + %a1 = alloca ptr, align 16 + %a2 = alloca i64, align 16 + %a3 = alloca { ptr, i64, i64 }, align 16 + %a4 = alloca %S.ast.Node, align 16 + %a15 = alloca %S.gen.SumDef, align 16 + %a16 = alloca %S.gen.SumDef, align 16 + %a18 = alloca %S.gen.SumDef, align 16 + %a22 = alloca i64, align 16 + %a25 = alloca i64, align 16 + %a30 = alloca { ptr, i64, i64 }, align 16 + %a31 = alloca { ptr, i64, i64 }, align 16 + %a36 = alloca i64, align 16 + %a43 = alloca { ptr, i64, i64 }, align 16 + %a44 = alloca { ptr, i64, i64 }, align 16 + %a45 = alloca { ptr, i64, i64 }, align 16 + %a47 = alloca { ptr, i64, i64 }, align 16 + %a48 = alloca { ptr, i64, i64 }, align 16 + %a49 = alloca { ptr, i64, i64 }, align 16 + %a50 = alloca { ptr, i64, i64 }, align 16 + %a53 = alloca { ptr, i64, i64 }, align 16 + %a54 = alloca { ptr, i64, i64 }, align 16 + %a55 = alloca { ptr, i64, i64 }, align 16 + %a56 = alloca { ptr, i64, i64 }, align 16 + %a58 = alloca { ptr, i64, i64 }, align 16 + %a59 = alloca { ptr, i64, i64 }, align 16 + %a60 = alloca { ptr, i64, i64 }, align 16 + %a61 = alloca { ptr, i64, i64 }, align 16 + %a65 = alloca { ptr, i64, i64 }, align 16 + %a66 = alloca { ptr, i64, i64 }, align 16 + %a68 = alloca { ptr, i64, i64 }, align 16 + %a69 = alloca { ptr, i64, i64 }, align 16 + %a70 = alloca { ptr, i64, i64 }, align 16 + %a71 = alloca { ptr, i64, i64 }, align 16 + %a72 = alloca { ptr, i64, i64 }, align 16 + %a74 = alloca { ptr, i64, i64 }, align 16 + %a75 = alloca { ptr, i64, i64 }, align 16 + %a76 = alloca { ptr, i64, i64 }, align 16 + %a77 = alloca { ptr, i64, i64 }, align 16 + %a79 = alloca { ptr, i64, i64 }, align 16 + store ptr %p0, ptr %a1 + store i64 %p1, ptr %a2 + store { ptr, i64, i64 } %p2, ptr %a3 + store %S.ast.Node %p3, ptr %a4 + %t5 = load ptr, ptr %a1 + %t6 = icmp eq ptr %t5, null + br i1 %t6, label %panic6894, label %ok6895 +panic6894: + call void @finch_panic(ptr @.str.4437, i64 3804, ptr @.str.4438) + unreachable +ok6895: + %t7 = getelementptr inbounds %S.gen.Gen, ptr %t5, i32 0, i32 22 + %t8 = load i64, ptr %a2 + %t9 = load { ptr, i64, i64 }, ptr %t7 + %t10 = extractvalue { ptr, i64, i64 } %t9, 1 + %t11 = icmp uge i64 %t8, %t10 + br i1 %t11, label %range6896, label %inrange6897 +range6896: + call void @finch_panic_index(ptr @.str.4439, i64 3804, i64 %t8, i64 %t10) + unreachable +inrange6897: + %t12 = extractvalue { ptr, i64, i64 } %t9, 0 + %t13 = getelementptr inbounds %S.gen.SumDef, ptr %t12, i64 %t8 + %t14 = load %S.gen.SumDef, ptr %t13 + store %S.gen.SumDef %t14, ptr %a15 + call void @finch.copy.S_gen_SumDef(ptr %a16, ptr %a15) + %t17 = load %S.gen.SumDef, ptr %a16 + store %S.gen.SumDef %t17, ptr %a18 + %t19 = getelementptr inbounds %S.gen.SumDef, ptr %a18, i32 0, i32 2 + %t20 = getelementptr inbounds { ptr, i64, i64 }, ptr %t19, i32 0, i32 1 + %t21 = load { ptr, i64, i64 }, ptr %a3 + store i64 -1, ptr %a22 + %t23 = load i64, ptr %t20 + %t24 = load ptr, ptr %t19 + store i64 0, ptr %a25 + br label %find.cond6898 +find.cond6898: + %t26 = load i64, ptr %a25 + %t27 = icmp slt i64 %t26, %t23 + br i1 %t27, label %find.body6899, label %find.end6902 +find.body6899: + %t28 = getelementptr inbounds { ptr, i64, i64 }, ptr %t24, i64 %t26 + %t29 = load { ptr, i64, i64 }, ptr %t28 + store { ptr, i64, i64 } %t29, ptr %a30 + store { ptr, i64, i64 } %t21, ptr %a31 + %t32 = call i32 @finch_str_eq(ptr %a30, ptr %a31) + %t33 = icmp ne i32 %t32, 0 + br i1 %t33, label %find.hit6900, label %find.next6901 +find.hit6900: + store i64 %t26, ptr %a22 + br label %find.end6902 +find.next6901: + %t34 = add i64 %t26, 1 + store i64 %t34, ptr %a25 + br label %find.cond6898 +find.end6902: + %t35 = load i64, ptr %a22 + store i64 %t35, ptr %a36 + %t37 = load i64, ptr %a36 + %t38 = icmp slt i64 %t37, 0 + br i1 %t38, label %then6903, label %endif6905 +then6903: + %t39 = load ptr, ptr %a1 + %t40 = load %S.ast.Node, ptr %a4 + %t41 = getelementptr inbounds %S.gen.SumDef, ptr %a18, i32 0, i32 1 + %t42 = load { ptr, i64, i64 }, ptr %t41 + store { ptr, i64, i64 } { ptr @.str.4440, i64 9, i64 0 }, ptr %a44 + store { ptr, i64, i64 } %t42, ptr %a45 + call void @finch_str_concat(ptr %a43, ptr %a44, ptr %a45) + %t46 = load { ptr, i64, i64 }, ptr %a43 + store { ptr, i64, i64 } %t46, ptr %a48 + store { ptr, i64, i64 } { ptr @.str.4441, i64 17, i64 0 }, ptr %a49 + call void @finch_str_concat(ptr %a47, ptr %a48, ptr %a49) + store { ptr, i64, i64 } %t46, ptr %a50 + call void @finch_str_drop(ptr %a50) + %t51 = load { ptr, i64, i64 }, ptr %a47 + %t52 = load { ptr, i64, i64 }, ptr %a3 + store { ptr, i64, i64 } %t51, ptr %a54 + store { ptr, i64, i64 } %t52, ptr %a55 + call void @finch_str_concat(ptr %a53, ptr %a54, ptr %a55) + store { ptr, i64, i64 } %t51, ptr %a56 + call void @finch_str_drop(ptr %a56) + %t57 = load { ptr, i64, i64 }, ptr %a53 + store { ptr, i64, i64 } %t57, ptr %a59 + store { ptr, i64, i64 } { ptr @.str.4442, i64 11, i64 0 }, ptr %a60 + call void @finch_str_concat(ptr %a58, ptr %a59, ptr %a60) + store { ptr, i64, i64 } %t57, ptr %a61 + call void @finch_str_drop(ptr %a61) + %t62 = load { ptr, i64, i64 }, ptr %a58 + %t63 = getelementptr inbounds %S.gen.SumDef, ptr %a18, i32 0, i32 2 + %t64 = getelementptr inbounds { ptr, i64, i64 }, ptr %t63, i32 0, i32 1 + store { ptr, i64, i64 } { ptr @.str.4443, i64 2, i64 0 }, ptr %a65 + call void @finch_str_join(ptr %a66, ptr %t63, ptr %a65) + %t67 = load { ptr, i64, i64 }, ptr %a66 + store { ptr, i64, i64 } %t62, ptr %a69 + store { ptr, i64, i64 } %t67, ptr %a70 + call void @finch_str_concat(ptr %a68, ptr %a69, ptr %a70) + store { ptr, i64, i64 } %t62, ptr %a71 + call void @finch_str_drop(ptr %a71) + store { ptr, i64, i64 } %t67, ptr %a72 + call void @finch_str_drop(ptr %a72) + %t73 = load { ptr, i64, i64 }, ptr %a68 + store { ptr, i64, i64 } %t73, ptr %a75 + store { ptr, i64, i64 } { ptr @.str.4444, i64 1, i64 0 }, ptr %a76 + call void @finch_str_concat(ptr %a74, ptr %a75, ptr %a76) + store { ptr, i64, i64 } %t73, ptr %a77 + call void @finch_str_drop(ptr %a77) + %t78 = load { ptr, i64, i64 }, ptr %a74 + call void @finch.gen.fail(ptr %t39, %S.ast.Node %t40, { ptr, i64, i64 } %t78) + store { ptr, i64, i64 } %t78, ptr %a79 + call void @finch_str_drop(ptr %a79) + br label %endif6905 +endif6905: + %t80 = load i64, ptr %a36 + call void @finch.drop.S_gen_SumDef(ptr %a18) + ret i64 %t80 +} + +define internal %S.gen.Val @finch.gen.sumMake(ptr %p0, i64 %p1, { ptr, i64, i64 } %p2, { ptr, i64, i64 } %p3, %S.ast.Node %p4) { +entry: + %a1 = alloca ptr, align 16 + %a2 = alloca i64, align 16 + %a3 = alloca { ptr, i64, i64 }, align 16 + %a4 = alloca { ptr, i64, i64 }, align 16 + %a5 = alloca %S.ast.Node, align 16 + %a16 = alloca %S.gen.SumDef, align 16 + %a17 = alloca %S.gen.SumDef, align 16 + %a19 = alloca %S.gen.SumDef, align 16 + %a25 = alloca i64, align 16 + %a49 = alloca { ptr, i64, i64 }, align 16 + %a50 = alloca { ptr, i64, i64 }, align 16 + %a51 = alloca { ptr, i64, i64 }, align 16 + %a55 = alloca { ptr, i64, i64 }, align 16 + %a56 = alloca { ptr, i64, i64 }, align 16 + %a57 = alloca { ptr, i64, i64 }, align 16 + %a58 = alloca { ptr, i64, i64 }, align 16 + %a60 = alloca { ptr, i64, i64 }, align 16 + %a61 = alloca { ptr, i64, i64 }, align 16 + %a62 = alloca { ptr, i64, i64 }, align 16 + %a63 = alloca { ptr, i64, i64 }, align 16 + %a66 = alloca { ptr, i64, i64 }, align 16 + %a67 = alloca { ptr, i64, i64 }, align 16 + %a68 = alloca { ptr, i64, i64 }, align 16 + %a69 = alloca { ptr, i64, i64 }, align 16 + %a71 = alloca { ptr, i64, i64 }, align 16 + %a75 = alloca { ptr, i64, i64 }, align 16 + %a76 = alloca { ptr, i64, i64 }, align 16 + %a77 = alloca { ptr, i64, i64 }, align 16 + %a87 = alloca { ptr, i64, i64 }, align 16 + %a89 = alloca { ptr, i64, i64 }, align 16 + %a90 = alloca { ptr, i64, i64 }, align 16 + %a91 = alloca { ptr, i64, i64 }, align 16 + %a92 = alloca { ptr, i64, i64 }, align 16 + %a93 = alloca { ptr, i64, i64 }, align 16 + %a95 = alloca { ptr, i64, i64 }, align 16 + %a96 = alloca { ptr, i64, i64 }, align 16 + %a97 = alloca { ptr, i64, i64 }, align 16 + %a98 = alloca { ptr, i64, i64 }, align 16 + %a102 = alloca { ptr, i64, i64 }, align 16 + %a104 = alloca { ptr, i64, i64 }, align 16 + %a105 = alloca { ptr, i64, i64 }, align 16 + %a106 = alloca { ptr, i64, i64 }, align 16 + %a107 = alloca { ptr, i64, i64 }, align 16 + %a108 = alloca { ptr, i64, i64 }, align 16 + %a110 = alloca { ptr, i64, i64 }, align 16 + %a111 = alloca { ptr, i64, i64 }, align 16 + %a112 = alloca { ptr, i64, i64 }, align 16 + %a113 = alloca { ptr, i64, i64 }, align 16 + %a117 = alloca { ptr, i64, i64 }, align 16 + %a118 = alloca { ptr, i64, i64 }, align 16 + %a119 = alloca { ptr, i64, i64 }, align 16 + %a120 = alloca { ptr, i64, i64 }, align 16 + %a122 = alloca { ptr, i64, i64 }, align 16 + %a123 = alloca { ptr, i64, i64 }, align 16 + %a124 = alloca { ptr, i64, i64 }, align 16 + %a125 = alloca { ptr, i64, i64 }, align 16 + %a128 = alloca { ptr, i64, i64 }, align 16 + %a129 = alloca { ptr, i64, i64 }, align 16 + %a130 = alloca { ptr, i64, i64 }, align 16 + %a131 = alloca { ptr, i64, i64 }, align 16 + %a133 = alloca { ptr, i64, i64 }, align 16 + %a134 = alloca { ptr, i64, i64 }, align 16 + %a135 = alloca { ptr, i64, i64 }, align 16 + %a136 = alloca { ptr, i64, i64 }, align 16 + %a138 = alloca { ptr, i64, i64 }, align 16 + %a139 = alloca { ptr, i64, i64 }, align 16 + %a140 = alloca { ptr, i64, i64 }, align 16 + %a144 = alloca { ptr, i64, i64 }, align 16 + %a167 = alloca i64, align 16 + %a178 = alloca %S.ast.Node, align 16 + %a179 = alloca %S.ast.Node, align 16 + %a187 = alloca { ptr, i64, i64 }, align 16 + %a188 = alloca { ptr, i64, i64 }, align 16 + %a189 = alloca { ptr, i64, i64 }, align 16 + %a192 = alloca { ptr, i64, i64 }, align 16 + %a194 = alloca { ptr, i64, i64 }, align 16 + %a195 = alloca { ptr, i64, i64 }, align 16 + %a196 = alloca { ptr, i64, i64 }, align 16 + %a197 = alloca { ptr, i64, i64 }, align 16 + %a198 = alloca { ptr, i64, i64 }, align 16 + %a214 = alloca { ptr, i64, i64 }, align 16 + %a215 = alloca { ptr, i64, i64 }, align 16 + %a216 = alloca { ptr, i64, i64 }, align 16 + %a218 = alloca { ptr, i64, i64 }, align 16 + %a219 = alloca { ptr, i64, i64 }, align 16 + %a220 = alloca { ptr, i64, i64 }, align 16 + %a221 = alloca { ptr, i64, i64 }, align 16 + %a224 = alloca { ptr, i64, i64 }, align 16 + %a225 = alloca { ptr, i64, i64 }, align 16 + %a226 = alloca { ptr, i64, i64 }, align 16 + %a227 = alloca { ptr, i64, i64 }, align 16 + %a229 = alloca { ptr, i64, i64 }, align 16 + %a230 = alloca { ptr, i64, i64 }, align 16 + %a231 = alloca { ptr, i64, i64 }, align 16 + %a232 = alloca { ptr, i64, i64 }, align 16 + %a234 = alloca { ptr, i64, i64 }, align 16 + store ptr %p0, ptr %a1 + store i64 %p1, ptr %a2 + store { ptr, i64, i64 } %p2, ptr %a3 + store { ptr, i64, i64 } %p3, ptr %a4 + store %S.ast.Node %p4, ptr %a5 + %t6 = load ptr, ptr %a1 + %t7 = icmp eq ptr %t6, null + br i1 %t7, label %panic6906, label %ok6907 +panic6906: + call void @finch_panic(ptr @.str.4445, i64 3814, ptr @.str.4446) + unreachable +ok6907: + %t8 = getelementptr inbounds %S.gen.Gen, ptr %t6, i32 0, i32 22 + %t9 = load i64, ptr %a2 + %t10 = load { ptr, i64, i64 }, ptr %t8 + %t11 = extractvalue { ptr, i64, i64 } %t10, 1 + %t12 = icmp uge i64 %t9, %t11 + br i1 %t12, label %range6908, label %inrange6909 +range6908: + call void @finch_panic_index(ptr @.str.4447, i64 3814, i64 %t9, i64 %t11) + unreachable +inrange6909: + %t13 = extractvalue { ptr, i64, i64 } %t10, 0 + %t14 = getelementptr inbounds %S.gen.SumDef, ptr %t13, i64 %t9 + %t15 = load %S.gen.SumDef, ptr %t14 + store %S.gen.SumDef %t15, ptr %a16 + call void @finch.copy.S_gen_SumDef(ptr %a17, ptr %a16) + %t18 = load %S.gen.SumDef, ptr %a17 + store %S.gen.SumDef %t18, ptr %a19 + %t20 = load ptr, ptr %a1 + %t21 = load i64, ptr %a2 + %t22 = load { ptr, i64, i64 }, ptr %a3 + %t23 = load %S.ast.Node, ptr %a5 + %t24 = call i64 @finch.gen.sumVariant(ptr %t20, i64 %t21, { ptr, i64, i64 } %t22, %S.ast.Node %t23) + store i64 %t24, ptr %a25 + %t26 = getelementptr inbounds { ptr, i64, i64 }, ptr %a4, i32 0, i32 1 + %t27 = load i64, ptr %t26 + %t28 = getelementptr inbounds %S.gen.SumDef, ptr %a19, i32 0, i32 3 + %t29 = load i64, ptr %a25 + %t30 = load { ptr, i64, i64 }, ptr %t28 + %t31 = extractvalue { ptr, i64, i64 } %t30, 1 + %t32 = icmp uge i64 %t29, %t31 + br i1 %t32, label %range6910, label %inrange6911 +range6910: + call void @finch_panic_index(ptr @.str.4448, i64 3816, i64 %t29, i64 %t31) + unreachable +inrange6911: + %t33 = extractvalue { ptr, i64, i64 } %t30, 0 + %t34 = getelementptr inbounds i64, ptr %t33, i64 %t29 + %t35 = load i64, ptr %t34 + %t36 = icmp ne i64 %t27, %t35 + br i1 %t36, label %then6912, label %endif6914 +then6912: + %t37 = getelementptr inbounds %S.gen.SumDef, ptr %a19, i32 0, i32 3 + %t38 = load i64, ptr %a25 + %t39 = load { ptr, i64, i64 }, ptr %t37 + %t40 = extractvalue { ptr, i64, i64 } %t39, 1 + %t41 = icmp uge i64 %t38, %t40 + br i1 %t41, label %range6915, label %inrange6916 +range6915: + call void @finch_panic_index(ptr @.str.4449, i64 3817, i64 %t38, i64 %t40) + unreachable +inrange6916: + %t42 = extractvalue { ptr, i64, i64 } %t39, 0 + %t43 = getelementptr inbounds i64, ptr %t42, i64 %t38 + %t44 = load i64, ptr %t43 + %t45 = icmp eq i64 %t44, 0 + br i1 %t45, label %then6917, label %endif6919 +then6917: + %t46 = load ptr, ptr %a1 + %t47 = load %S.ast.Node, ptr %a5 + %t48 = load { ptr, i64, i64 }, ptr %a3 + store { ptr, i64, i64 } %t48, ptr %a50 + store { ptr, i64, i64 } { ptr @.str.4450, i64 22, i64 0 }, ptr %a51 + call void @finch_str_concat(ptr %a49, ptr %a50, ptr %a51) + %t52 = load { ptr, i64, i64 }, ptr %a49 + %t53 = getelementptr inbounds %S.gen.SumDef, ptr %a19, i32 0, i32 1 + %t54 = load { ptr, i64, i64 }, ptr %t53 + store { ptr, i64, i64 } %t52, ptr %a56 + store { ptr, i64, i64 } %t54, ptr %a57 + call void @finch_str_concat(ptr %a55, ptr %a56, ptr %a57) + store { ptr, i64, i64 } %t52, ptr %a58 + call void @finch_str_drop(ptr %a58) + %t59 = load { ptr, i64, i64 }, ptr %a55 + store { ptr, i64, i64 } %t59, ptr %a61 + store { ptr, i64, i64 } { ptr @.str.4451, i64 1, i64 0 }, ptr %a62 + call void @finch_str_concat(ptr %a60, ptr %a61, ptr %a62) + store { ptr, i64, i64 } %t59, ptr %a63 + call void @finch_str_drop(ptr %a63) + %t64 = load { ptr, i64, i64 }, ptr %a60 + %t65 = load { ptr, i64, i64 }, ptr %a3 + store { ptr, i64, i64 } %t64, ptr %a67 + store { ptr, i64, i64 } %t65, ptr %a68 + call void @finch_str_concat(ptr %a66, ptr %a67, ptr %a68) + store { ptr, i64, i64 } %t64, ptr %a69 + call void @finch_str_drop(ptr %a69) + %t70 = load { ptr, i64, i64 }, ptr %a66 + call void @finch.gen.fail(ptr %t46, %S.ast.Node %t47, { ptr, i64, i64 } %t70) + store { ptr, i64, i64 } %t70, ptr %a71 + call void @finch_str_drop(ptr %a71) + br label %endif6919 +endif6919: + %t72 = load ptr, ptr %a1 + %t73 = load %S.ast.Node, ptr %a5 + %t74 = load { ptr, i64, i64 }, ptr %a3 + store { ptr, i64, i64 } %t74, ptr %a76 + store { ptr, i64, i64 } { ptr @.str.4452, i64 7, i64 0 }, ptr %a77 + call void @finch_str_concat(ptr %a75, ptr %a76, ptr %a77) + %t78 = load { ptr, i64, i64 }, ptr %a75 + %t79 = getelementptr inbounds %S.gen.SumDef, ptr %a19, i32 0, i32 3 + %t80 = load i64, ptr %a25 + %t81 = load { ptr, i64, i64 }, ptr %t79 + %t82 = extractvalue { ptr, i64, i64 } %t81, 1 + %t83 = icmp uge i64 %t80, %t82 + br i1 %t83, label %range6920, label %inrange6921 +range6920: + call void @finch_panic_index(ptr @.str.4453, i64 3820, i64 %t80, i64 %t82) + unreachable +inrange6921: + %t84 = extractvalue { ptr, i64, i64 } %t81, 0 + %t85 = getelementptr inbounds i64, ptr %t84, i64 %t80 + %t86 = load i64, ptr %t85 + call void @finch_str_from_int(ptr %a87, i64 %t86) + %t88 = load { ptr, i64, i64 }, ptr %a87 + store { ptr, i64, i64 } %t78, ptr %a90 + store { ptr, i64, i64 } %t88, ptr %a91 + call void @finch_str_concat(ptr %a89, ptr %a90, ptr %a91) + store { ptr, i64, i64 } %t78, ptr %a92 + call void @finch_str_drop(ptr %a92) + store { ptr, i64, i64 } %t88, ptr %a93 + call void @finch_str_drop(ptr %a93) + %t94 = load { ptr, i64, i64 }, ptr %a89 + store { ptr, i64, i64 } %t94, ptr %a96 + store { ptr, i64, i64 } { ptr @.str.4454, i64 19, i64 0 }, ptr %a97 + call void @finch_str_concat(ptr %a95, ptr %a96, ptr %a97) + store { ptr, i64, i64 } %t94, ptr %a98 + call void @finch_str_drop(ptr %a98) + %t99 = load { ptr, i64, i64 }, ptr %a95 + %t100 = getelementptr inbounds { ptr, i64, i64 }, ptr %a4, i32 0, i32 1 + %t101 = load i64, ptr %t100 + call void @finch_str_from_int(ptr %a102, i64 %t101) + %t103 = load { ptr, i64, i64 }, ptr %a102 + store { ptr, i64, i64 } %t99, ptr %a105 + store { ptr, i64, i64 } %t103, ptr %a106 + call void @finch_str_concat(ptr %a104, ptr %a105, ptr %a106) + store { ptr, i64, i64 } %t99, ptr %a107 + call void @finch_str_drop(ptr %a107) + store { ptr, i64, i64 } %t103, ptr %a108 + call void @finch_str_drop(ptr %a108) + %t109 = load { ptr, i64, i64 }, ptr %a104 + store { ptr, i64, i64 } %t109, ptr %a111 + store { ptr, i64, i64 } { ptr @.str.4455, i64 2, i64 0 }, ptr %a112 + call void @finch_str_concat(ptr %a110, ptr %a111, ptr %a112) + store { ptr, i64, i64 } %t109, ptr %a113 + call void @finch_str_drop(ptr %a113) + %t114 = load { ptr, i64, i64 }, ptr %a110 + %t115 = getelementptr inbounds %S.gen.SumDef, ptr %a19, i32 0, i32 1 + %t116 = load { ptr, i64, i64 }, ptr %t115 + store { ptr, i64, i64 } %t114, ptr %a118 + store { ptr, i64, i64 } %t116, ptr %a119 + call void @finch_str_concat(ptr %a117, ptr %a118, ptr %a119) + store { ptr, i64, i64 } %t114, ptr %a120 + call void @finch_str_drop(ptr %a120) + %t121 = load { ptr, i64, i64 }, ptr %a117 + store { ptr, i64, i64 } %t121, ptr %a123 + store { ptr, i64, i64 } { ptr @.str.4456, i64 1, i64 0 }, ptr %a124 + call void @finch_str_concat(ptr %a122, ptr %a123, ptr %a124) + store { ptr, i64, i64 } %t121, ptr %a125 + call void @finch_str_drop(ptr %a125) + %t126 = load { ptr, i64, i64 }, ptr %a122 + %t127 = load { ptr, i64, i64 }, ptr %a3 + store { ptr, i64, i64 } %t126, ptr %a129 + store { ptr, i64, i64 } %t127, ptr %a130 + call void @finch_str_concat(ptr %a128, ptr %a129, ptr %a130) + store { ptr, i64, i64 } %t126, ptr %a131 + call void @finch_str_drop(ptr %a131) + %t132 = load { ptr, i64, i64 }, ptr %a128 + store { ptr, i64, i64 } %t132, ptr %a134 + store { ptr, i64, i64 } { ptr @.str.4457, i64 5, i64 0 }, ptr %a135 + call void @finch_str_concat(ptr %a133, ptr %a134, ptr %a135) + store { ptr, i64, i64 } %t132, ptr %a136 + call void @finch_str_drop(ptr %a136) + %t137 = load { ptr, i64, i64 }, ptr %a133 + call void @finch.gen.fail(ptr %t72, %S.ast.Node %t73, { ptr, i64, i64 } %t137) + store { ptr, i64, i64 } %t137, ptr %a138 + call void @finch_str_drop(ptr %a138) + br label %endif6914 +endif6914: + store { ptr, i64, i64 } zeroinitializer, ptr %a139 + store { ptr, i64, i64 } zeroinitializer, ptr %a140 + %t141 = getelementptr inbounds { ptr, i64, i64 }, ptr %a139, i32 0, i32 1 + %t142 = insertvalue %S.ast.Node zeroinitializer, { ptr, i64, i64 } { ptr @.str.4458, i64 3, i64 0 }, 0 + %t143 = load i64, ptr %a25 + call void @finch_str_from_int(ptr %a144, i64 %t143) + %t145 = load { ptr, i64, i64 }, ptr %a144 + %t146 = insertvalue %S.ast.Node %t142, { ptr, i64, i64 } %t145, 4 + %t147 = getelementptr inbounds %S.ast.Node, ptr %a5, i32 0, i32 11 + %t148 = load i64, ptr %t147 + %t149 = insertvalue %S.ast.Node %t146, i64 %t148, 11 + %t150 = getelementptr inbounds %S.ast.Node, ptr %a5, i32 0, i32 12 + %t151 = load i64, ptr %t150 + %t152 = insertvalue %S.ast.Node %t149, i64 %t151, 12 + %t153 = getelementptr inbounds %S.ast.Node, ptr %a5, i32 0, i32 13 + %t154 = load i64, ptr %t153 + %t155 = insertvalue %S.ast.Node %t152, i64 %t154, 13 + %t156 = load i64, ptr %t141 + %t157 = add i64 %t156, 1 + call void @finch_arr_reserve(ptr %a139, i64 %t157, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) + %t158 = load ptr, ptr %a139 + %t159 = getelementptr inbounds %S.ast.Node, ptr %t158, i64 %t156 + store %S.ast.Node %t155, ptr %t159 + store i64 %t157, ptr %t141 + %t160 = getelementptr inbounds { ptr, i64, i64 }, ptr %a140, i32 0, i32 1 + %t161 = load i64, ptr %t160 + %t162 = add i64 %t161, 1 + call void @finch_arr_reserve(ptr %a140, i64 %t162, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t163 = load ptr, ptr %a140 + %t164 = getelementptr inbounds { ptr, i64, i64 }, ptr %t163, i64 %t161 + store { ptr, i64, i64 } { ptr @.str.4459, i64 3, i64 0 }, ptr %t164 + store i64 %t162, ptr %t160 + %t165 = getelementptr inbounds { ptr, i64, i64 }, ptr %a4, i32 0, i32 1 + %t166 = load i64, ptr %t165 + store i64 0, ptr %a167 + br label %for.cond6922 +for.cond6922: + %t168 = load i64, ptr %a167 + %t169 = icmp slt i64 %t168, %t166 + br i1 %t169, label %for.body6923, label %for.end6925 +for.body6923: + %t170 = getelementptr inbounds { ptr, i64, i64 }, ptr %a139, i32 0, i32 1 + %t171 = load i64, ptr %a167 + %t172 = load { ptr, i64, i64 }, ptr %a4 + %t173 = extractvalue { ptr, i64, i64 } %t172, 1 + %t174 = icmp uge i64 %t171, %t173 + br i1 %t174, label %range6926, label %inrange6927 +range6926: + call void @finch_panic_index(ptr @.str.4460, i64 3827, i64 %t171, i64 %t173) + unreachable +inrange6927: + %t175 = extractvalue { ptr, i64, i64 } %t172, 0 + %t176 = getelementptr inbounds %S.ast.Node, ptr %t175, i64 %t171 + %t177 = load %S.ast.Node, ptr %t176 + store %S.ast.Node %t177, ptr %a178 + call void @finch.copy.S_ast_Node(ptr %a179, ptr %a178) + %t180 = load %S.ast.Node, ptr %a179 + %t181 = load i64, ptr %t170 + %t182 = add i64 %t181, 1 + call void @finch_arr_reserve(ptr %a139, i64 %t182, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) + %t183 = load ptr, ptr %a139 + %t184 = getelementptr inbounds %S.ast.Node, ptr %t183, i64 %t181 + store %S.ast.Node %t180, ptr %t184 + store i64 %t182, ptr %t170 + %t185 = getelementptr inbounds { ptr, i64, i64 }, ptr %a140, i32 0, i32 1 + %t186 = load { ptr, i64, i64 }, ptr %a3 + store { ptr, i64, i64 } %t186, ptr %a188 + store { ptr, i64, i64 } { ptr @.str.4461, i64 1, i64 0 }, ptr %a189 + call void @finch_str_concat(ptr %a187, ptr %a188, ptr %a189) + %t190 = load { ptr, i64, i64 }, ptr %a187 + %t191 = load i64, ptr %a167 + call void @finch_str_from_int(ptr %a192, i64 %t191) + %t193 = load { ptr, i64, i64 }, ptr %a192 + store { ptr, i64, i64 } %t190, ptr %a195 + store { ptr, i64, i64 } %t193, ptr %a196 + call void @finch_str_concat(ptr %a194, ptr %a195, ptr %a196) + store { ptr, i64, i64 } %t190, ptr %a197 + call void @finch_str_drop(ptr %a197) + store { ptr, i64, i64 } %t193, ptr %a198 + call void @finch_str_drop(ptr %a198) + %t199 = load { ptr, i64, i64 }, ptr %a194 + %t200 = load i64, ptr %t185 + %t201 = add i64 %t200, 1 + call void @finch_arr_reserve(ptr %a140, i64 %t201, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t202 = load ptr, ptr %a140 + %t203 = getelementptr inbounds { ptr, i64, i64 }, ptr %t202, i64 %t200 + store { ptr, i64, i64 } %t199, ptr %t203 + store i64 %t201, ptr %t185 + br label %for.step6924 +for.step6924: + %t204 = load i64, ptr %a167 + %t205 = add i64 %t204, 1 + store i64 %t205, ptr %a167 + br label %for.cond6922 +for.end6925: + %t206 = load ptr, ptr %a1 + %t207 = load %S.ast.Node, ptr %a5 + %t208 = getelementptr inbounds %S.ast.Node, ptr %a5, i32 0, i32 12 + %t209 = load i64, ptr %t208 + %t210 = getelementptr inbounds { ptr, i64, i64 }, ptr %a3, i32 0, i32 1 + %t211 = load i64, ptr %t210 + %t212 = getelementptr inbounds %S.gen.SumDef, ptr %a19, i32 0, i32 1 + %t213 = load { ptr, i64, i64 }, ptr %t212 + store { ptr, i64, i64 } { ptr @.str.4462, i64 9, i64 0 }, ptr %a215 + store { ptr, i64, i64 } %t213, ptr %a216 + call void @finch_str_concat(ptr %a214, ptr %a215, ptr %a216) + %t217 = load { ptr, i64, i64 }, ptr %a214 + store { ptr, i64, i64 } %t217, ptr %a219 + store { ptr, i64, i64 } { ptr @.str.4463, i64 1, i64 0 }, ptr %a220 + call void @finch_str_concat(ptr %a218, ptr %a219, ptr %a220) + store { ptr, i64, i64 } %t217, ptr %a221 + call void @finch_str_drop(ptr %a221) + %t222 = load { ptr, i64, i64 }, ptr %a218 + %t223 = load { ptr, i64, i64 }, ptr %a3 + store { ptr, i64, i64 } %t222, ptr %a225 + store { ptr, i64, i64 } %t223, ptr %a226 + call void @finch_str_concat(ptr %a224, ptr %a225, ptr %a226) + store { ptr, i64, i64 } %t222, ptr %a227 + call void @finch_str_drop(ptr %a227) + %t228 = load { ptr, i64, i64 }, ptr %a224 + store { ptr, i64, i64 } %t228, ptr %a230 + store { ptr, i64, i64 } { ptr @.str.4464, i64 4, i64 0 }, ptr %a231 + call void @finch_str_concat(ptr %a229, ptr %a230, ptr %a231) + store { ptr, i64, i64 } %t228, ptr %a232 + call void @finch_str_drop(ptr %a232) + %t233 = load { ptr, i64, i64 }, ptr %a229 + call void @finch.gen.noteRef(ptr %t206, %S.ast.Node %t207, i64 %t209, i64 %t211, { ptr, i64, i64 } %t233, { ptr, i64, i64 } { ptr @.str.4465, i64 0, i64 0 }, i64 0, i64 0) + store { ptr, i64, i64 } %t233, ptr %a234 + call void @finch_str_drop(ptr %a234) + %t235 = load ptr, ptr %a1 + %t236 = load ptr, ptr %a1 + %t237 = getelementptr inbounds %S.gen.SumDef, ptr %a19, i32 0, i32 0 + %t238 = load { ptr, i64, i64 }, ptr %t237 + %t239 = getelementptr inbounds %S.gen.SumDef, ptr %a19, i32 0, i32 1 + %t240 = load { ptr, i64, i64 }, ptr %t239 + %t241 = call i64 @finch.gen.findStruct(ptr %t236, { ptr, i64, i64 } %t238, { ptr, i64, i64 } %t240) + %t242 = load { ptr, i64, i64 }, ptr %a139 + %t243 = load { ptr, i64, i64 }, ptr %a140 + %t244 = load %S.ast.Node, ptr %a5 + %t245 = call %S.gen.Val @finch.gen.construct(ptr %t235, i64 %t241, { ptr, i64, i64 } %t242, { ptr, i64, i64 } %t243, %S.ast.Node %t244) + call void @finch.drop.arr_str(ptr %a140) + call void @finch.drop.arr_S_ast_Node(ptr %a139) + call void @finch.drop.S_gen_SumDef(ptr %a19) + ret %S.gen.Val %t245 +} + +define internal %S.gen.SumPat @finch.gen.sumPattern(ptr %p0, %S.ast.Node %p1, i64 %p2) { +entry: + %a1 = alloca ptr, align 16 + %a2 = alloca %S.ast.Node, align 16 + %a3 = alloca i64, align 16 + %a14 = alloca %S.gen.SumDef, align 16 + %a15 = alloca %S.gen.SumDef, align 16 + %a17 = alloca %S.gen.SumDef, align 16 + %a18 = alloca { ptr, i64, i64 }, align 16 + %a19 = alloca { ptr, i64, i64 }, align 16 + %a22 = alloca { ptr, i64, i64 }, align 16 + %a23 = alloca { ptr, i64, i64 }, align 16 + %a34 = alloca { ptr, i64, i64 }, align 16 + %a35 = alloca { ptr, i64, i64 }, align 16 + %a38 = alloca { ptr, i64, i64 }, align 16 + %a41 = alloca { ptr, i64, i64 }, align 16 + %a42 = alloca { ptr, i64, i64 }, align 16 + %a47 = alloca { ptr, i64, i64 }, align 16 + %a48 = alloca { ptr, i64, i64 }, align 16 + %a51 = alloca { ptr, i64, i64 }, align 16 + %a54 = alloca { ptr, i64, i64 }, align 16 + %a55 = alloca { ptr, i64, i64 }, align 16 + %a58 = alloca { ptr, i64, i64 }, align 16 + %a61 = alloca { ptr, i64, i64 }, align 16 + %a62 = alloca { ptr, i64, i64 }, align 16 + %a79 = alloca { ptr, i64, i64 }, align 16 + %a80 = alloca { ptr, i64, i64 }, align 16 + %a83 = alloca { ptr, i64, i64 }, align 16 + %a86 = alloca { ptr, i64, i64 }, align 16 + %a87 = alloca { ptr, i64, i64 }, align 16 + %a104 = alloca { ptr, i64, i64 }, align 16 + %a105 = alloca { ptr, i64, i64 }, align 16 + %a108 = alloca { ptr, i64, i64 }, align 16 + %a112 = alloca i64, align 16 + %a124 = alloca %S.ast.Node, align 16 + %a125 = alloca %S.ast.Node, align 16 + %a137 = alloca { ptr, i64, i64 }, align 16 + %a138 = alloca { ptr, i64, i64 }, align 16 + %a139 = alloca { ptr, i64, i64 }, align 16 + %a141 = alloca { ptr, i64, i64 }, align 16 + %a142 = alloca { ptr, i64, i64 }, align 16 + %a143 = alloca { ptr, i64, i64 }, align 16 + %a144 = alloca { ptr, i64, i64 }, align 16 + %a148 = alloca { ptr, i64, i64 }, align 16 + %a149 = alloca { ptr, i64, i64 }, align 16 + %a151 = alloca { ptr, i64, i64 }, align 16 + %a152 = alloca { ptr, i64, i64 }, align 16 + %a153 = alloca { ptr, i64, i64 }, align 16 + %a154 = alloca { ptr, i64, i64 }, align 16 + %a155 = alloca { ptr, i64, i64 }, align 16 + %a157 = alloca { ptr, i64, i64 }, align 16 + %a158 = alloca { ptr, i64, i64 }, align 16 + %a159 = alloca { ptr, i64, i64 }, align 16 + %a160 = alloca { ptr, i64, i64 }, align 16 + %a162 = alloca { ptr, i64, i64 }, align 16 + %a168 = alloca i64, align 16 + %a192 = alloca { ptr, i64, i64 }, align 16 + %a193 = alloca { ptr, i64, i64 }, align 16 + %a194 = alloca { ptr, i64, i64 }, align 16 + %a197 = alloca { ptr, i64, i64 }, align 16 + %a198 = alloca { ptr, i64, i64 }, align 16 + %a199 = alloca { ptr, i64, i64 }, align 16 + %a200 = alloca { ptr, i64, i64 }, align 16 + %a202 = alloca { ptr, i64, i64 }, align 16 + %a206 = alloca { ptr, i64, i64 }, align 16 + %a207 = alloca { ptr, i64, i64 }, align 16 + %a208 = alloca { ptr, i64, i64 }, align 16 + %a218 = alloca { ptr, i64, i64 }, align 16 + %a220 = alloca { ptr, i64, i64 }, align 16 + %a221 = alloca { ptr, i64, i64 }, align 16 + %a222 = alloca { ptr, i64, i64 }, align 16 + %a223 = alloca { ptr, i64, i64 }, align 16 + %a224 = alloca { ptr, i64, i64 }, align 16 + %a226 = alloca { ptr, i64, i64 }, align 16 + %a227 = alloca { ptr, i64, i64 }, align 16 + %a228 = alloca { ptr, i64, i64 }, align 16 + %a229 = alloca { ptr, i64, i64 }, align 16 + %a232 = alloca { ptr, i64, i64 }, align 16 + %a233 = alloca { ptr, i64, i64 }, align 16 + %a234 = alloca { ptr, i64, i64 }, align 16 + %a235 = alloca { ptr, i64, i64 }, align 16 + %a237 = alloca { ptr, i64, i64 }, align 16 + %a238 = alloca { ptr, i64, i64 }, align 16 + %a239 = alloca { ptr, i64, i64 }, align 16 + %a240 = alloca { ptr, i64, i64 }, align 16 + %a242 = alloca { ptr, i64, i64 }, align 16 + %a243 = alloca i64, align 16 + %a251 = alloca %S.ast.Node, align 16 + %a254 = alloca { ptr, i64, i64 }, align 16 + %a255 = alloca { ptr, i64, i64 }, align 16 + %a265 = alloca { ptr, i64, i64 }, align 16 + %a266 = alloca { ptr, i64, i64 }, align 16 + store ptr %p0, ptr %a1 + store %S.ast.Node %p1, ptr %a2 + store i64 %p2, ptr %a3 + %t4 = load ptr, ptr %a1 + %t5 = icmp eq ptr %t4, null + br i1 %t5, label %panic6928, label %ok6929 +panic6928: + call void @finch_panic(ptr @.str.4466, i64 3836, ptr @.str.4467) + unreachable +ok6929: + %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 22 + %t7 = load i64, ptr %a3 + %t8 = load { ptr, i64, i64 }, ptr %t6 + %t9 = extractvalue { ptr, i64, i64 } %t8, 1 + %t10 = icmp uge i64 %t7, %t9 + br i1 %t10, label %range6930, label %inrange6931 +range6930: + call void @finch_panic_index(ptr @.str.4468, i64 3836, i64 %t7, i64 %t9) + unreachable +inrange6931: + %t11 = extractvalue { ptr, i64, i64 } %t8, 0 + %t12 = getelementptr inbounds %S.gen.SumDef, ptr %t11, i64 %t7 + %t13 = load %S.gen.SumDef, ptr %t12 + store %S.gen.SumDef %t13, ptr %a14 + call void @finch.copy.S_gen_SumDef(ptr %a15, ptr %a14) + %t16 = load %S.gen.SumDef, ptr %a15 + store %S.gen.SumDef %t16, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.4469, i64 0, i64 0 }, ptr %a18 + store { ptr, i64, i64 } zeroinitializer, ptr %a19 + %t20 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 + %t21 = load { ptr, i64, i64 }, ptr %t20 + store { ptr, i64, i64 } %t21, ptr %a22 + store { ptr, i64, i64 } { ptr @.str.4470, i64 3, i64 0 }, ptr %a23 + %t24 = call i32 @finch_str_eq(ptr %a22, ptr %a23) + %t25 = icmp ne i32 %t24, 0 + br label %logic.from6932 +logic.from6932: + br i1 %t25, label %logic.rhs6933, label %logic.end6934 +logic.rhs6933: + %t26 = load ptr, ptr %a1 + %t27 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t28 = load { ptr, i64, i64 }, ptr %t27 + %t29 = call i64 @finch.gen.lookup(ptr %t26, { ptr, i64, i64 } %t28) + %t30 = icmp slt i64 %t29, 0 + br label %logic.rend6935 +logic.rend6935: + br label %logic.end6934 +logic.end6934: + %t31 = phi i1 [ false, %logic.from6932 ], [ %t30, %logic.rend6935 ] + br i1 %t31, label %then6936, label %else6937 +then6936: + %t32 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t33 = load { ptr, i64, i64 }, ptr %t32 + store { ptr, i64, i64 } %t33, ptr %a34 + call void @finch_str_copy(ptr %a35, ptr %a34) + %t36 = load { ptr, i64, i64 }, ptr %a35 + %t37 = load { ptr, i64, i64 }, ptr %a18 + store { ptr, i64, i64 } %t36, ptr %a18 + store { ptr, i64, i64 } %t37, ptr %a38 + call void @finch_str_drop(ptr %a38) + br label %endif6938 +else6937: + %t39 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 + %t40 = load { ptr, i64, i64 }, ptr %t39 + store { ptr, i64, i64 } %t40, ptr %a41 + store { ptr, i64, i64 } { ptr @.str.4471, i64 4, i64 0 }, ptr %a42 + %t43 = call i32 @finch_str_eq(ptr %a41, ptr %a42) + %t44 = icmp ne i32 %t43, 0 + br i1 %t44, label %then6939, label %else6940 +then6939: + %t45 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t46 = load { ptr, i64, i64 }, ptr %t45 + store { ptr, i64, i64 } %t46, ptr %a47 + call void @finch_str_copy(ptr %a48, ptr %a47) + %t49 = load { ptr, i64, i64 }, ptr %a48 + %t50 = load { ptr, i64, i64 }, ptr %a18 + store { ptr, i64, i64 } %t49, ptr %a18 + store { ptr, i64, i64 } %t50, ptr %a51 + call void @finch_str_drop(ptr %a51) + %t52 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t53 = load { ptr, i64, i64 }, ptr %t52 + store { ptr, i64, i64 } %t53, ptr %a54 + call void @finch.copy.arr_S_ast_Node(ptr %a55, ptr %a54) + %t56 = load { ptr, i64, i64 }, ptr %a55 + %t57 = load { ptr, i64, i64 }, ptr %a19 + store { ptr, i64, i64 } %t56, ptr %a19 + store { ptr, i64, i64 } %t57, ptr %a58 + call void @finch.drop.arr_S_ast_Node(ptr %a58) + br label %endif6941 +else6940: + %t59 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 + %t60 = load { ptr, i64, i64 }, ptr %t59 + store { ptr, i64, i64 } %t60, ptr %a61 + store { ptr, i64, i64 } { ptr @.str.4472, i64 6, i64 0 }, ptr %a62 + %t63 = call i32 @finch_str_eq(ptr %a61, ptr %a62) + %t64 = icmp ne i32 %t63, 0 + br label %logic.from6942 +logic.from6942: + br i1 %t64, label %logic.rhs6943, label %logic.end6944 +logic.rhs6943: + %t65 = load ptr, ptr %a1 + %t66 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t67 = load { ptr, i64, i64 }, ptr %t66 + %t68 = extractvalue { ptr, i64, i64 } %t67, 1 + %t69 = icmp uge i64 0, %t68 + br i1 %t69, label %range6945, label %inrange6946 +range6945: + call void @finch_panic_index(ptr @.str.4473, i64 3844, i64 0, i64 %t68) + unreachable +inrange6946: + %t70 = extractvalue { ptr, i64, i64 } %t67, 0 + %t71 = getelementptr inbounds %S.ast.Node, ptr %t70, i64 0 + %t72 = load %S.ast.Node, ptr %t71 + %t73 = call i64 @finch.gen.sumNamed(ptr %t65, %S.ast.Node %t72) + %t74 = load i64, ptr %a3 + %t75 = icmp eq i64 %t73, %t74 + br label %logic.rend6947 +logic.rend6947: + br label %logic.end6944 +logic.end6944: + %t76 = phi i1 [ false, %logic.from6942 ], [ %t75, %logic.rend6947 ] + br i1 %t76, label %then6948, label %else6949 +then6948: + %t77 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t78 = load { ptr, i64, i64 }, ptr %t77 + store { ptr, i64, i64 } %t78, ptr %a79 + call void @finch_str_copy(ptr %a80, ptr %a79) + %t81 = load { ptr, i64, i64 }, ptr %a80 + %t82 = load { ptr, i64, i64 }, ptr %a18 + store { ptr, i64, i64 } %t81, ptr %a18 + store { ptr, i64, i64 } %t82, ptr %a83 + call void @finch_str_drop(ptr %a83) + br label %endif6950 +else6949: + %t84 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 + %t85 = load { ptr, i64, i64 }, ptr %t84 + store { ptr, i64, i64 } %t85, ptr %a86 + store { ptr, i64, i64 } { ptr @.str.4474, i64 6, i64 0 }, ptr %a87 + %t88 = call i32 @finch_str_eq(ptr %a86, ptr %a87) + %t89 = icmp ne i32 %t88, 0 + br label %logic.from6951 +logic.from6951: + br i1 %t89, label %logic.rhs6952, label %logic.end6953 +logic.rhs6952: + %t90 = load ptr, ptr %a1 + %t91 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t92 = load { ptr, i64, i64 }, ptr %t91 + %t93 = extractvalue { ptr, i64, i64 } %t92, 1 + %t94 = icmp uge i64 0, %t93 + br i1 %t94, label %range6954, label %inrange6955 +range6954: + call void @finch_panic_index(ptr @.str.4475, i64 3846, i64 0, i64 %t93) + unreachable +inrange6955: + %t95 = extractvalue { ptr, i64, i64 } %t92, 0 + %t96 = getelementptr inbounds %S.ast.Node, ptr %t95, i64 0 + %t97 = load %S.ast.Node, ptr %t96 + %t98 = call i64 @finch.gen.sumNamed(ptr %t90, %S.ast.Node %t97) + %t99 = load i64, ptr %a3 + %t100 = icmp eq i64 %t98, %t99 + br label %logic.rend6956 +logic.rend6956: + br label %logic.end6953 +logic.end6953: + %t101 = phi i1 [ false, %logic.from6951 ], [ %t100, %logic.rend6956 ] + br i1 %t101, label %then6957, label %else6958 +then6957: + %t102 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t103 = load { ptr, i64, i64 }, ptr %t102 + store { ptr, i64, i64 } %t103, ptr %a104 + call void @finch_str_copy(ptr %a105, ptr %a104) + %t106 = load { ptr, i64, i64 }, ptr %a105 + %t107 = load { ptr, i64, i64 }, ptr %a18 + store { ptr, i64, i64 } %t106, ptr %a18 + store { ptr, i64, i64 } %t107, ptr %a108 + call void @finch_str_drop(ptr %a108) + %t109 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t110 = getelementptr inbounds { ptr, i64, i64 }, ptr %t109, i32 0, i32 1 + %t111 = load i64, ptr %t110 + store i64 1, ptr %a112 + br label %for.cond6960 +for.cond6960: + %t113 = load i64, ptr %a112 + %t114 = icmp slt i64 %t113, %t111 + br i1 %t114, label %for.body6961, label %for.end6963 +for.body6961: + %t115 = getelementptr inbounds { ptr, i64, i64 }, ptr %a19, i32 0, i32 1 + %t116 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t117 = load i64, ptr %a112 + %t118 = load { ptr, i64, i64 }, ptr %t116 + %t119 = extractvalue { ptr, i64, i64 } %t118, 1 + %t120 = icmp uge i64 %t117, %t119 + br i1 %t120, label %range6964, label %inrange6965 +range6964: + call void @finch_panic_index(ptr @.str.4476, i64 3849, i64 %t117, i64 %t119) + unreachable +inrange6965: + %t121 = extractvalue { ptr, i64, i64 } %t118, 0 + %t122 = getelementptr inbounds %S.ast.Node, ptr %t121, i64 %t117 + %t123 = load %S.ast.Node, ptr %t122 + store %S.ast.Node %t123, ptr %a124 + call void @finch.copy.S_ast_Node(ptr %a125, ptr %a124) + %t126 = load %S.ast.Node, ptr %a125 + %t127 = load i64, ptr %t115 + %t128 = add i64 %t127, 1 + call void @finch_arr_reserve(ptr %a19, i64 %t128, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) + %t129 = load ptr, ptr %a19 + %t130 = getelementptr inbounds %S.ast.Node, ptr %t129, i64 %t127 + store %S.ast.Node %t126, ptr %t130 + store i64 %t128, ptr %t115 + br label %for.step6962 +for.step6962: + %t131 = load i64, ptr %a112 + %t132 = add i64 %t131, 1 + store i64 %t132, ptr %a112 + br label %for.cond6960 +for.end6963: + br label %endif6959 +else6958: + %t133 = load ptr, ptr %a1 + %t134 = load %S.ast.Node, ptr %a2 + %t135 = getelementptr inbounds %S.gen.SumDef, ptr %a17, i32 0, i32 1 + %t136 = load { ptr, i64, i64 }, ptr %t135 + store { ptr, i64, i64 } { ptr @.str.4477, i64 33, i64 0 }, ptr %a138 + store { ptr, i64, i64 } %t136, ptr %a139 + call void @finch_str_concat(ptr %a137, ptr %a138, ptr %a139) + %t140 = load { ptr, i64, i64 }, ptr %a137 + store { ptr, i64, i64 } %t140, ptr %a142 + store { ptr, i64, i64 } { ptr @.str.4478, i64 10, i64 0 }, ptr %a143 + call void @finch_str_concat(ptr %a141, ptr %a142, ptr %a143) + store { ptr, i64, i64 } %t140, ptr %a144 + call void @finch_str_drop(ptr %a144) + %t145 = load { ptr, i64, i64 }, ptr %a141 + %t146 = getelementptr inbounds %S.gen.SumDef, ptr %a17, i32 0, i32 2 + %t147 = getelementptr inbounds { ptr, i64, i64 }, ptr %t146, i32 0, i32 1 + store { ptr, i64, i64 } { ptr @.str.4479, i64 2, i64 0 }, ptr %a148 + call void @finch_str_join(ptr %a149, ptr %t146, ptr %a148) + %t150 = load { ptr, i64, i64 }, ptr %a149 + store { ptr, i64, i64 } %t145, ptr %a152 + store { ptr, i64, i64 } %t150, ptr %a153 + call void @finch_str_concat(ptr %a151, ptr %a152, ptr %a153) + store { ptr, i64, i64 } %t145, ptr %a154 + call void @finch_str_drop(ptr %a154) + store { ptr, i64, i64 } %t150, ptr %a155 + call void @finch_str_drop(ptr %a155) + %t156 = load { ptr, i64, i64 }, ptr %a151 + store { ptr, i64, i64 } %t156, ptr %a158 + store { ptr, i64, i64 } { ptr @.str.4480, i64 1, i64 0 }, ptr %a159 + call void @finch_str_concat(ptr %a157, ptr %a158, ptr %a159) + store { ptr, i64, i64 } %t156, ptr %a160 + call void @finch_str_drop(ptr %a160) + %t161 = load { ptr, i64, i64 }, ptr %a157 + call void @finch.gen.fail(ptr %t133, %S.ast.Node %t134, { ptr, i64, i64 } %t161) + store { ptr, i64, i64 } %t161, ptr %a162 + call void @finch_str_drop(ptr %a162) + br label %endif6959 +endif6959: + br label %endif6950 +endif6950: + br label %endif6941 +endif6941: + br label %endif6938 +endif6938: + %t163 = load ptr, ptr %a1 + %t164 = load i64, ptr %a3 + %t165 = load { ptr, i64, i64 }, ptr %a18 + %t166 = load %S.ast.Node, ptr %a2 + %t167 = call i64 @finch.gen.sumVariant(ptr %t163, i64 %t164, { ptr, i64, i64 } %t165, %S.ast.Node %t166) + store i64 %t167, ptr %a168 + %t169 = getelementptr inbounds { ptr, i64, i64 }, ptr %a19, i32 0, i32 1 + %t170 = load i64, ptr %t169 + %t171 = getelementptr inbounds %S.gen.SumDef, ptr %a17, i32 0, i32 3 + %t172 = load i64, ptr %a168 + %t173 = load { ptr, i64, i64 }, ptr %t171 + %t174 = extractvalue { ptr, i64, i64 } %t173, 1 + %t175 = icmp uge i64 %t172, %t174 + br i1 %t175, label %range6966, label %inrange6967 +range6966: + call void @finch_panic_index(ptr @.str.4481, i64 3855, i64 %t172, i64 %t174) + unreachable +inrange6967: + %t176 = extractvalue { ptr, i64, i64 } %t173, 0 + %t177 = getelementptr inbounds i64, ptr %t176, i64 %t172 + %t178 = load i64, ptr %t177 + %t179 = icmp ne i64 %t170, %t178 + br i1 %t179, label %then6968, label %endif6970 +then6968: + %t180 = getelementptr inbounds %S.gen.SumDef, ptr %a17, i32 0, i32 3 + %t181 = load i64, ptr %a168 + %t182 = load { ptr, i64, i64 }, ptr %t180 + %t183 = extractvalue { ptr, i64, i64 } %t182, 1 + %t184 = icmp uge i64 %t181, %t183 + br i1 %t184, label %range6971, label %inrange6972 +range6971: + call void @finch_panic_index(ptr @.str.4482, i64 3856, i64 %t181, i64 %t183) + unreachable +inrange6972: + %t185 = extractvalue { ptr, i64, i64 } %t182, 0 + %t186 = getelementptr inbounds i64, ptr %t185, i64 %t181 + %t187 = load i64, ptr %t186 + %t188 = icmp eq i64 %t187, 0 + br i1 %t188, label %then6973, label %endif6975 +then6973: + %t189 = load ptr, ptr %a1 + %t190 = load %S.ast.Node, ptr %a2 + %t191 = load { ptr, i64, i64 }, ptr %a18 + store { ptr, i64, i64 } %t191, ptr %a193 + store { ptr, i64, i64 } { ptr @.str.4483, i64 27, i64 0 }, ptr %a194 + call void @finch_str_concat(ptr %a192, ptr %a193, ptr %a194) + %t195 = load { ptr, i64, i64 }, ptr %a192 + %t196 = load { ptr, i64, i64 }, ptr %a18 + store { ptr, i64, i64 } %t195, ptr %a198 + store { ptr, i64, i64 } %t196, ptr %a199 + call void @finch_str_concat(ptr %a197, ptr %a198, ptr %a199) + store { ptr, i64, i64 } %t195, ptr %a200 + call void @finch_str_drop(ptr %a200) + %t201 = load { ptr, i64, i64 }, ptr %a197 + call void @finch.gen.fail(ptr %t189, %S.ast.Node %t190, { ptr, i64, i64 } %t201) + store { ptr, i64, i64 } %t201, ptr %a202 + call void @finch_str_drop(ptr %a202) + br label %endif6975 +endif6975: + %t203 = load ptr, ptr %a1 + %t204 = load %S.ast.Node, ptr %a2 + %t205 = load { ptr, i64, i64 }, ptr %a18 + store { ptr, i64, i64 } %t205, ptr %a207 + store { ptr, i64, i64 } { ptr @.str.4484, i64 7, i64 0 }, ptr %a208 + call void @finch_str_concat(ptr %a206, ptr %a207, ptr %a208) + %t209 = load { ptr, i64, i64 }, ptr %a206 + %t210 = getelementptr inbounds %S.gen.SumDef, ptr %a17, i32 0, i32 3 + %t211 = load i64, ptr %a168 + %t212 = load { ptr, i64, i64 }, ptr %t210 + %t213 = extractvalue { ptr, i64, i64 } %t212, 1 + %t214 = icmp uge i64 %t211, %t213 + br i1 %t214, label %range6976, label %inrange6977 +range6976: + call void @finch_panic_index(ptr @.str.4485, i64 3859, i64 %t211, i64 %t213) + unreachable +inrange6977: + %t215 = extractvalue { ptr, i64, i64 } %t212, 0 + %t216 = getelementptr inbounds i64, ptr %t215, i64 %t211 + %t217 = load i64, ptr %t216 + call void @finch_str_from_int(ptr %a218, i64 %t217) + %t219 = load { ptr, i64, i64 }, ptr %a218 + store { ptr, i64, i64 } %t209, ptr %a221 + store { ptr, i64, i64 } %t219, ptr %a222 + call void @finch_str_concat(ptr %a220, ptr %a221, ptr %a222) + store { ptr, i64, i64 } %t209, ptr %a223 + call void @finch_str_drop(ptr %a223) + store { ptr, i64, i64 } %t219, ptr %a224 + call void @finch_str_drop(ptr %a224) + %t225 = load { ptr, i64, i64 }, ptr %a220 + store { ptr, i64, i64 } %t225, ptr %a227 + store { ptr, i64, i64 } { ptr @.str.4486, i64 27, i64 0 }, ptr %a228 + call void @finch_str_concat(ptr %a226, ptr %a227, ptr %a228) + store { ptr, i64, i64 } %t225, ptr %a229 + call void @finch_str_drop(ptr %a229) + %t230 = load { ptr, i64, i64 }, ptr %a226 + %t231 = load { ptr, i64, i64 }, ptr %a18 + store { ptr, i64, i64 } %t230, ptr %a233 + store { ptr, i64, i64 } %t231, ptr %a234 + call void @finch_str_concat(ptr %a232, ptr %a233, ptr %a234) + store { ptr, i64, i64 } %t230, ptr %a235 + call void @finch_str_drop(ptr %a235) + %t236 = load { ptr, i64, i64 }, ptr %a232 + store { ptr, i64, i64 } %t236, ptr %a238 + store { ptr, i64, i64 } { ptr @.str.4487, i64 27, i64 0 }, ptr %a239 + call void @finch_str_concat(ptr %a237, ptr %a238, ptr %a239) + store { ptr, i64, i64 } %t236, ptr %a240 + call void @finch_str_drop(ptr %a240) + %t241 = load { ptr, i64, i64 }, ptr %a237 + call void @finch.gen.fail(ptr %t203, %S.ast.Node %t204, { ptr, i64, i64 } %t241) + store { ptr, i64, i64 } %t241, ptr %a242 + call void @finch_str_drop(ptr %a242) + br label %endif6970 +endif6970: + store i64 0, ptr %a243 + br label %each.cond6978 +each.cond6978: + %t244 = getelementptr inbounds { ptr, i64, i64 }, ptr %a19, i32 0, i32 1 + %t245 = load i64, ptr %t244 + %t246 = load i64, ptr %a243 + %t247 = icmp slt i64 %t246, %t245 + br i1 %t247, label %each.body6979, label %each.end6981 +each.body6979: + %t248 = load ptr, ptr %a19 + %t249 = getelementptr inbounds %S.ast.Node, ptr %t248, i64 %t246 + %t250 = load %S.ast.Node, ptr %t249 + store %S.ast.Node %t250, ptr %a251 + %t252 = getelementptr inbounds %S.ast.Node, ptr %a251, i32 0, i32 0 + %t253 = load { ptr, i64, i64 }, ptr %t252 + store { ptr, i64, i64 } %t253, ptr %a254 + store { ptr, i64, i64 } { ptr @.str.4488, i64 3, i64 0 }, ptr %a255 + %t256 = call i32 @finch_str_eq(ptr %a254, ptr %a255) + %t257 = icmp eq i32 %t256, 0 + br i1 %t257, label %then6982, label %endif6984 +then6982: + %t258 = load ptr, ptr %a1 + %t259 = load %S.ast.Node, ptr %a251 + call void @finch.gen.fail(ptr %t258, %S.ast.Node %t259, { ptr, i64, i64 } { ptr @.str.4489, i64 50, i64 0 }) + br label %endif6984 +endif6984: + br label %each.step6980 +each.step6980: + %t260 = load i64, ptr %a243 + %t261 = add i64 %t260, 1 + store i64 %t261, ptr %a243 + br label %each.cond6978 +each.end6981: + %t262 = load i64, ptr %a168 + %t263 = insertvalue %S.gen.SumPat zeroinitializer, i64 %t262, 0 + %t264 = load { ptr, i64, i64 }, ptr %a19 + store { ptr, i64, i64 } %t264, ptr %a265 + call void @finch.copy.arr_S_ast_Node(ptr %a266, ptr %a265) + %t267 = load { ptr, i64, i64 }, ptr %a266 + %t268 = insertvalue %S.gen.SumPat %t263, { ptr, i64, i64 } %t267, 1 + call void @finch.drop.arr_S_ast_Node(ptr %a19) + call void @finch_str_drop(ptr %a18) + call void @finch.drop.S_gen_SumDef(ptr %a17) + ret %S.gen.SumPat %t268 +} + define internal %S.gen.Val @finch.gen.enumValue(ptr %p0, %S.ast.Node %p1, i64 %p2) { entry: %a1 = alloca ptr, align 16 @@ -66342,21 +70052,21 @@ entry: store i64 %p2, ptr %a3 %t4 = load ptr, ptr %a1 %t5 = icmp eq ptr %t4, null - br i1 %t5, label %panic6619, label %ok6620 -panic6619: - call void @finch_panic(ptr @.str.4300, i64 3656, ptr @.str.4301) + br i1 %t5, label %panic6985, label %ok6986 +panic6985: + call void @finch_panic(ptr @.str.4490, i64 3871, ptr @.str.4491) unreachable -ok6620: +ok6986: %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 21 %t7 = load i64, ptr %a3 %t8 = load { ptr, i64, i64 }, ptr %t6 %t9 = extractvalue { ptr, i64, i64 } %t8, 1 %t10 = icmp uge i64 %t7, %t9 - br i1 %t10, label %range6621, label %inrange6622 -range6621: - call void @finch_panic_index(ptr @.str.4302, i64 3656, i64 %t7, i64 %t9) + br i1 %t10, label %range6987, label %inrange6988 +range6987: + call void @finch_panic_index(ptr @.str.4492, i64 3871, i64 %t7, i64 %t9) unreachable -inrange6622: +inrange6988: %t11 = extractvalue { ptr, i64, i64 } %t8, 0 %t12 = getelementptr inbounds %S.gen.EnumDef, ptr %t11, i64 %t7 %t13 = load %S.gen.EnumDef, ptr %t12 @@ -66372,43 +70082,43 @@ inrange6622: %t23 = load i64, ptr %t19 %t24 = load ptr, ptr %t18 store i64 0, ptr %a25 - br label %find.cond6623 -find.cond6623: + br label %find.cond6989 +find.cond6989: %t26 = load i64, ptr %a25 %t27 = icmp slt i64 %t26, %t23 - br i1 %t27, label %find.body6624, label %find.end6627 -find.body6624: + br i1 %t27, label %find.body6990, label %find.end6993 +find.body6990: %t28 = getelementptr inbounds { ptr, i64, i64 }, ptr %t24, i64 %t26 %t29 = load { ptr, i64, i64 }, ptr %t28 store { ptr, i64, i64 } %t29, ptr %a30 store { ptr, i64, i64 } %t21, ptr %a31 %t32 = call i32 @finch_str_eq(ptr %a30, ptr %a31) %t33 = icmp ne i32 %t32, 0 - br i1 %t33, label %find.hit6625, label %find.next6626 -find.hit6625: + br i1 %t33, label %find.hit6991, label %find.next6992 +find.hit6991: store i64 %t26, ptr %a22 - br label %find.end6627 -find.next6626: + br label %find.end6993 +find.next6992: %t34 = add i64 %t26, 1 store i64 %t34, ptr %a25 - br label %find.cond6623 -find.end6627: + br label %find.cond6989 +find.end6993: %t35 = load i64, ptr %a22 store i64 %t35, ptr %a36 %t37 = load i64, ptr %a36 %t38 = icmp slt i64 %t37, 0 - br i1 %t38, label %then6628, label %endif6630 -then6628: + br i1 %t38, label %then6994, label %endif6996 +then6994: %t39 = load ptr, ptr %a1 %t40 = load %S.ast.Node, ptr %a2 %t41 = getelementptr inbounds %S.gen.EnumDef, ptr %a17, i32 0, i32 1 %t42 = load { ptr, i64, i64 }, ptr %t41 - store { ptr, i64, i64 } { ptr @.str.4303, i64 9, i64 0 }, ptr %a44 + store { ptr, i64, i64 } { ptr @.str.4493, i64 9, i64 0 }, ptr %a44 store { ptr, i64, i64 } %t42, ptr %a45 call void @finch_str_concat(ptr %a43, ptr %a44, ptr %a45) %t46 = load { ptr, i64, i64 }, ptr %a43 store { ptr, i64, i64 } %t46, ptr %a48 - store { ptr, i64, i64 } { ptr @.str.4304, i64 17, i64 0 }, ptr %a49 + store { ptr, i64, i64 } { ptr @.str.4494, i64 17, i64 0 }, ptr %a49 call void @finch_str_concat(ptr %a47, ptr %a48, ptr %a49) store { ptr, i64, i64 } %t46, ptr %a50 call void @finch_str_drop(ptr %a50) @@ -66422,14 +70132,14 @@ then6628: call void @finch_str_drop(ptr %a57) %t58 = load { ptr, i64, i64 }, ptr %a54 store { ptr, i64, i64 } %t58, ptr %a60 - store { ptr, i64, i64 } { ptr @.str.4305, i64 11, i64 0 }, ptr %a61 + store { ptr, i64, i64 } { ptr @.str.4495, i64 11, i64 0 }, ptr %a61 call void @finch_str_concat(ptr %a59, ptr %a60, ptr %a61) store { ptr, i64, i64 } %t58, ptr %a62 call void @finch_str_drop(ptr %a62) %t63 = load { ptr, i64, i64 }, ptr %a59 %t64 = getelementptr inbounds %S.gen.EnumDef, ptr %a17, i32 0, i32 2 %t65 = getelementptr inbounds { ptr, i64, i64 }, ptr %t64, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.4306, i64 2, i64 0 }, ptr %a66 + store { ptr, i64, i64 } { ptr @.str.4496, i64 2, i64 0 }, ptr %a66 call void @finch_str_join(ptr %a67, ptr %t64, ptr %a66) %t68 = load { ptr, i64, i64 }, ptr %a67 store { ptr, i64, i64 } %t63, ptr %a70 @@ -66441,7 +70151,7 @@ then6628: call void @finch_str_drop(ptr %a73) %t74 = load { ptr, i64, i64 }, ptr %a69 store { ptr, i64, i64 } %t74, ptr %a76 - store { ptr, i64, i64 } { ptr @.str.4307, i64 1, i64 0 }, ptr %a77 + store { ptr, i64, i64 } { ptr @.str.4497, i64 1, i64 0 }, ptr %a77 call void @finch_str_concat(ptr %a75, ptr %a76, ptr %a77) store { ptr, i64, i64 } %t74, ptr %a78 call void @finch_str_drop(ptr %a78) @@ -66449,8 +70159,8 @@ then6628: call void @finch.gen.fail(ptr %t39, %S.ast.Node %t40, { ptr, i64, i64 } %t79) store { ptr, i64, i64 } %t79, ptr %a80 call void @finch_str_drop(ptr %a80) - br label %endif6630 -endif6630: + br label %endif6996 +endif6996: %t81 = load ptr, ptr %a1 %t82 = load %S.ast.Node, ptr %a2 %t83 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 12 @@ -66461,12 +70171,12 @@ endif6630: %t88 = load i64, ptr %t87 %t89 = getelementptr inbounds %S.gen.EnumDef, ptr %a17, i32 0, i32 1 %t90 = load { ptr, i64, i64 }, ptr %t89 - store { ptr, i64, i64 } { ptr @.str.4308, i64 9, i64 0 }, ptr %a92 + store { ptr, i64, i64 } { ptr @.str.4498, i64 9, i64 0 }, ptr %a92 store { ptr, i64, i64 } %t90, ptr %a93 call void @finch_str_concat(ptr %a91, ptr %a92, ptr %a93) %t94 = load { ptr, i64, i64 }, ptr %a91 store { ptr, i64, i64 } %t94, ptr %a96 - store { ptr, i64, i64 } { ptr @.str.4309, i64 1, i64 0 }, ptr %a97 + store { ptr, i64, i64 } { ptr @.str.4499, i64 1, i64 0 }, ptr %a97 call void @finch_str_concat(ptr %a95, ptr %a96, ptr %a97) store { ptr, i64, i64 } %t94, ptr %a98 call void @finch_str_drop(ptr %a98) @@ -66480,7 +70190,7 @@ endif6630: call void @finch_str_drop(ptr %a105) %t106 = load { ptr, i64, i64 }, ptr %a102 store { ptr, i64, i64 } %t106, ptr %a108 - store { ptr, i64, i64 } { ptr @.str.4310, i64 3, i64 0 }, ptr %a109 + store { ptr, i64, i64 } { ptr @.str.4500, i64 3, i64 0 }, ptr %a109 call void @finch_str_concat(ptr %a107, ptr %a108, ptr %a109) store { ptr, i64, i64 } %t106, ptr %a110 call void @finch_str_drop(ptr %a110) @@ -66490,11 +70200,11 @@ endif6630: %t114 = load { ptr, i64, i64 }, ptr %t112 %t115 = extractvalue { ptr, i64, i64 } %t114, 1 %t116 = icmp uge i64 %t113, %t115 - br i1 %t116, label %range6631, label %inrange6632 -range6631: - call void @finch_panic_index(ptr @.str.4311, i64 3661, i64 %t113, i64 %t115) + br i1 %t116, label %range6997, label %inrange6998 +range6997: + call void @finch_panic_index(ptr @.str.4501, i64 3876, i64 %t113, i64 %t115) unreachable -inrange6632: +inrange6998: %t117 = extractvalue { ptr, i64, i64 } %t114, 0 %t118 = getelementptr inbounds i64, ptr %t117, i64 %t113 %t119 = load i64, ptr %t118 @@ -66509,12 +70219,12 @@ inrange6632: call void @finch_str_drop(ptr %a126) %t127 = load { ptr, i64, i64 }, ptr %a122 store { ptr, i64, i64 } %t127, ptr %a129 - store { ptr, i64, i64 } { ptr @.str.4312, i64 4, i64 0 }, ptr %a130 + store { ptr, i64, i64 } { ptr @.str.4502, i64 4, i64 0 }, ptr %a130 call void @finch_str_concat(ptr %a128, ptr %a129, ptr %a130) store { ptr, i64, i64 } %t127, ptr %a131 call void @finch_str_drop(ptr %a131) %t132 = load { ptr, i64, i64 }, ptr %a128 - call void @finch.gen.noteRef(ptr %t81, %S.ast.Node %t82, i64 %t85, i64 %t88, { ptr, i64, i64 } %t132, { ptr, i64, i64 } { ptr @.str.4313, i64 0, i64 0 }, i64 0, i64 0) + call void @finch.gen.noteRef(ptr %t81, %S.ast.Node %t82, i64 %t85, i64 %t88, { ptr, i64, i64 } %t132, { ptr, i64, i64 } { ptr @.str.4503, i64 0, i64 0 }, i64 0, i64 0) store { ptr, i64, i64 } %t132, ptr %a133 call void @finch_str_drop(ptr %a133) %t134 = getelementptr inbounds %S.gen.EnumDef, ptr %a17, i32 0, i32 3 @@ -66522,18 +70232,18 @@ inrange6632: %t136 = load { ptr, i64, i64 }, ptr %t134 %t137 = extractvalue { ptr, i64, i64 } %t136, 1 %t138 = icmp uge i64 %t135, %t137 - br i1 %t138, label %range6633, label %inrange6634 -range6633: - call void @finch_panic_index(ptr @.str.4314, i64 3662, i64 %t135, i64 %t137) + br i1 %t138, label %range6999, label %inrange7000 +range6999: + call void @finch_panic_index(ptr @.str.4504, i64 3877, i64 %t135, i64 %t137) unreachable -inrange6634: +inrange7000: %t139 = extractvalue { ptr, i64, i64 } %t136, 0 %t140 = getelementptr inbounds i64, ptr %t139, i64 %t135 %t141 = load i64, ptr %t140 call void @finch_str_from_int(ptr %a142, i64 %t141) %t143 = load { ptr, i64, i64 }, ptr %a142 %t144 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t143, 0 - %t145 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.4315, i64 4, i64 0 }, 0 + %t145 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.4505, i64 4, i64 0 }, 0 %t146 = getelementptr inbounds %S.gen.EnumDef, ptr %a17, i32 0, i32 1 %t147 = load { ptr, i64, i64 }, ptr %t146 store { ptr, i64, i64 } %t147, ptr %a148 @@ -66557,206 +70267,188 @@ entry: %a2 = alloca %S.ast.Node, align 16 %a3 = alloca i1, align 16 %a13 = alloca i64, align 16 - %a35 = alloca %S.gen.Ref, align 16 - %a39 = alloca %S.ast.Type, align 16 - %a40 = alloca %S.ast.Type, align 16 - %a42 = alloca %S.ast.Type, align 16 - %a48 = alloca %S.ast.Type, align 16 - %a49 = alloca %S.ast.Type, align 16 - %a52 = alloca %S.ast.Type, align 16 - %a55 = alloca { ptr, i64, i64 }, align 16 - %a56 = alloca { ptr, i64, i64 }, align 16 - %a62 = alloca { ptr, i64, i64 }, align 16 - %a63 = alloca { ptr, i64, i64 }, align 16 - %a65 = alloca { ptr, i64, i64 }, align 16 + %a25 = alloca i64, align 16 + %a48 = alloca { ptr, i64, i64 }, align 16 + %a49 = alloca { ptr, i64, i64 }, align 16 + %a50 = alloca { ptr, i64, i64 }, align 16 + %a69 = alloca { ptr, i64, i64 }, align 16 + %a71 = alloca { ptr, i64, i64 }, align 16 + %a72 = alloca { ptr, i64, i64 }, align 16 + %a73 = alloca { ptr, i64, i64 }, align 16 %a74 = alloca { ptr, i64, i64 }, align 16 - %a84 = alloca { ptr, i64, i64 }, align 16 - %a85 = alloca { ptr, i64, i64 }, align 16 - %a86 = alloca { ptr, i64, i64 }, align 16 - %a88 = alloca { ptr, i64, i64 }, align 16 - %a89 = alloca { ptr, i64, i64 }, align 16 - %a90 = alloca { ptr, i64, i64 }, align 16 - %a91 = alloca { ptr, i64, i64 }, align 16 + %a75 = alloca { ptr, i64, i64 }, align 16 + %a77 = alloca { ptr, i64, i64 }, align 16 + %a78 = alloca { ptr, i64, i64 }, align 16 + %a79 = alloca { ptr, i64, i64 }, align 16 + %a80 = alloca { ptr, i64, i64 }, align 16 + %a93 = alloca { ptr, i64, i64 }, align 16 %a94 = alloca { ptr, i64, i64 }, align 16 - %a97 = alloca { ptr, i64, i64 }, align 16 + %a95 = alloca { ptr, i64, i64 }, align 16 + %a96 = alloca { ptr, i64, i64 }, align 16 %a98 = alloca { ptr, i64, i64 }, align 16 %a99 = alloca { ptr, i64, i64 }, align 16 + %a100 = alloca { ptr, i64, i64 }, align 16 %a101 = alloca { ptr, i64, i64 }, align 16 - %a102 = alloca { ptr, i64, i64 }, align 16 - %a103 = alloca { ptr, i64, i64 }, align 16 - %a104 = alloca { ptr, i64, i64 }, align 16 + %a105 = alloca { ptr, i64, i64 }, align 16 + %a106 = alloca { ptr, i64, i64 }, align 16 %a107 = alloca { ptr, i64, i64 }, align 16 %a108 = alloca { ptr, i64, i64 }, align 16 - %a116 = alloca %S.ast.Type, align 16 - %a117 = alloca %S.ast.Type, align 16 - %a119 = alloca %S.ast.Type, align 16 - %a120 = alloca i1, align 16 - %a123 = alloca { ptr, i64, i64 }, align 16 - %a124 = alloca { ptr, i64, i64 }, align 16 - %a143 = alloca i64, align 16 - %a146 = alloca i64, align 16 - %a151 = alloca { ptr, i64, i64 }, align 16 - %a152 = alloca { ptr, i64, i64 }, align 16 - %a160 = alloca { ptr, i64, i64 }, align 16 - %a161 = alloca { ptr, i64, i64 }, align 16 - %a169 = alloca { ptr, i64, i64 }, align 16 - %a170 = alloca { ptr, i64, i64 }, align 16 + %a110 = alloca { ptr, i64, i64 }, align 16 + %a111 = alloca { ptr, i64, i64 }, align 16 + %a112 = alloca { ptr, i64, i64 }, align 16 + %a113 = alloca { ptr, i64, i64 }, align 16 + %a115 = alloca { ptr, i64, i64 }, align 16 + %a116 = alloca { ptr, i64, i64 }, align 16 + %a135 = alloca i64, align 16 + %a157 = alloca %S.gen.Ref, align 16 + %a161 = alloca %S.ast.Type, align 16 + %a162 = alloca %S.ast.Type, align 16 + %a164 = alloca %S.ast.Type, align 16 + %a170 = alloca %S.ast.Type, align 16 + %a171 = alloca %S.ast.Type, align 16 %a174 = alloca %S.ast.Type, align 16 - %a175 = alloca %S.ast.Type, align 16 - %a181 = alloca { ptr, i64, i64 }, align 16 - %a182 = alloca { ptr, i64, i64 }, align 16 - %a189 = alloca { ptr, i64, i64 }, align 16 - %a190 = alloca { ptr, i64, i64 }, align 16 - %a191 = alloca { ptr, i64, i64 }, align 16 - %a192 = alloca { ptr, i64, i64 }, align 16 - %a194 = alloca { ptr, i64, i64 }, align 16 - %a195 = alloca { ptr, i64, i64 }, align 16 + %a177 = alloca { ptr, i64, i64 }, align 16 + %a178 = alloca { ptr, i64, i64 }, align 16 + %a184 = alloca { ptr, i64, i64 }, align 16 + %a185 = alloca { ptr, i64, i64 }, align 16 + %a187 = alloca { ptr, i64, i64 }, align 16 %a196 = alloca { ptr, i64, i64 }, align 16 - %a197 = alloca { ptr, i64, i64 }, align 16 - %a199 = alloca { ptr, i64, i64 }, align 16 - %a202 = alloca { ptr, i64, i64 }, align 16 - %a203 = alloca { ptr, i64, i64 }, align 16 - %a207 = alloca %S.ast.Type, align 16 - %a208 = alloca %S.ast.Type, align 16 - %a213 = alloca %S.gen.Ref, align 16 - %a215 = alloca %S.ast.Type, align 16 - %a216 = alloca %S.ast.Type, align 16 - %a219 = alloca %S.ast.Type, align 16 - %a222 = alloca { ptr, i64, i64 }, align 16 + %a206 = alloca { ptr, i64, i64 }, align 16 + %a207 = alloca { ptr, i64, i64 }, align 16 + %a208 = alloca { ptr, i64, i64 }, align 16 + %a210 = alloca { ptr, i64, i64 }, align 16 + %a211 = alloca { ptr, i64, i64 }, align 16 + %a212 = alloca { ptr, i64, i64 }, align 16 + %a213 = alloca { ptr, i64, i64 }, align 16 + %a216 = alloca { ptr, i64, i64 }, align 16 + %a219 = alloca { ptr, i64, i64 }, align 16 + %a220 = alloca { ptr, i64, i64 }, align 16 + %a221 = alloca { ptr, i64, i64 }, align 16 %a223 = alloca { ptr, i64, i64 }, align 16 - %a231 = alloca { ptr, i64, i64 }, align 16 - %a232 = alloca { ptr, i64, i64 }, align 16 - %a233 = alloca { ptr, i64, i64 }, align 16 - %a235 = alloca { ptr, i64, i64 }, align 16 - %a236 = alloca { ptr, i64, i64 }, align 16 - %a237 = alloca { ptr, i64, i64 }, align 16 - %a238 = alloca { ptr, i64, i64 }, align 16 - %a240 = alloca { ptr, i64, i64 }, align 16 - %a243 = alloca { ptr, i64, i64 }, align 16 - %a244 = alloca { ptr, i64, i64 }, align 16 - %a250 = alloca { ptr, i64, i64 }, align 16 - %a259 = alloca { ptr, i64, i64 }, align 16 - %a260 = alloca { ptr, i64, i64 }, align 16 - %a267 = alloca { ptr, i64, i64 }, align 16 - %a268 = alloca { ptr, i64, i64 }, align 16 - %a269 = alloca { ptr, i64, i64 }, align 16 - %a271 = alloca { ptr, i64, i64 }, align 16 - %a272 = alloca { ptr, i64, i64 }, align 16 + %a224 = alloca { ptr, i64, i64 }, align 16 + %a225 = alloca { ptr, i64, i64 }, align 16 + %a226 = alloca { ptr, i64, i64 }, align 16 + %a229 = alloca { ptr, i64, i64 }, align 16 + %a230 = alloca { ptr, i64, i64 }, align 16 + %a238 = alloca %S.ast.Type, align 16 + %a239 = alloca %S.ast.Type, align 16 + %a241 = alloca %S.ast.Type, align 16 + %a242 = alloca i1, align 16 + %a245 = alloca { ptr, i64, i64 }, align 16 + %a246 = alloca { ptr, i64, i64 }, align 16 + %a265 = alloca i64, align 16 + %a268 = alloca i64, align 16 %a273 = alloca { ptr, i64, i64 }, align 16 %a274 = alloca { ptr, i64, i64 }, align 16 - %a276 = alloca { ptr, i64, i64 }, align 16 - %a286 = alloca { ptr, i64, i64 }, align 16 - %a287 = alloca { ptr, i64, i64 }, align 16 - %a302 = alloca { ptr, i64, i64 }, align 16 + %a282 = alloca { ptr, i64, i64 }, align 16 + %a283 = alloca { ptr, i64, i64 }, align 16 + %a291 = alloca { ptr, i64, i64 }, align 16 + %a292 = alloca { ptr, i64, i64 }, align 16 + %a296 = alloca %S.ast.Type, align 16 + %a297 = alloca %S.ast.Type, align 16 %a303 = alloca { ptr, i64, i64 }, align 16 - %a308 = alloca { ptr, i64, i64 }, align 16 - %a309 = alloca { ptr, i64, i64 }, align 16 - %a315 = alloca { ptr, i64, i64 }, align 16 + %a304 = alloca { ptr, i64, i64 }, align 16 + %a311 = alloca { ptr, i64, i64 }, align 16 + %a312 = alloca { ptr, i64, i64 }, align 16 + %a313 = alloca { ptr, i64, i64 }, align 16 + %a314 = alloca { ptr, i64, i64 }, align 16 %a316 = alloca { ptr, i64, i64 }, align 16 - %a333 = alloca { ptr, i64, i64 }, align 16 - %a334 = alloca { ptr, i64, i64 }, align 16 - %a335 = alloca { ptr, i64, i64 }, align 16 + %a317 = alloca { ptr, i64, i64 }, align 16 + %a318 = alloca { ptr, i64, i64 }, align 16 + %a319 = alloca { ptr, i64, i64 }, align 16 + %a321 = alloca { ptr, i64, i64 }, align 16 + %a324 = alloca { ptr, i64, i64 }, align 16 + %a325 = alloca { ptr, i64, i64 }, align 16 + %a329 = alloca %S.ast.Type, align 16 + %a330 = alloca %S.ast.Type, align 16 + %a335 = alloca %S.gen.Ref, align 16 + %a337 = alloca %S.ast.Type, align 16 + %a338 = alloca %S.ast.Type, align 16 + %a341 = alloca %S.ast.Type, align 16 %a344 = alloca { ptr, i64, i64 }, align 16 %a345 = alloca { ptr, i64, i64 }, align 16 - %a347 = alloca { ptr, i64, i64 }, align 16 + %a353 = alloca { ptr, i64, i64 }, align 16 + %a354 = alloca { ptr, i64, i64 }, align 16 + %a355 = alloca { ptr, i64, i64 }, align 16 + %a357 = alloca { ptr, i64, i64 }, align 16 %a358 = alloca { ptr, i64, i64 }, align 16 + %a359 = alloca { ptr, i64, i64 }, align 16 %a360 = alloca { ptr, i64, i64 }, align 16 - %a363 = alloca { ptr, i64, i64 }, align 16 - %a364 = alloca { ptr, i64, i64 }, align 16 - %a374 = alloca %S.ast.Type, align 16 - %a380 = alloca { ptr, i64, i64 }, align 16 + %a362 = alloca { ptr, i64, i64 }, align 16 + %a365 = alloca { ptr, i64, i64 }, align 16 + %a366 = alloca { ptr, i64, i64 }, align 16 + %a372 = alloca { ptr, i64, i64 }, align 16 %a381 = alloca { ptr, i64, i64 }, align 16 %a382 = alloca { ptr, i64, i64 }, align 16 - %a384 = alloca { ptr, i64, i64 }, align 16 - %a385 = alloca { ptr, i64, i64 }, align 16 - %a386 = alloca { ptr, i64, i64 }, align 16 - %a387 = alloca { ptr, i64, i64 }, align 16 + %a389 = alloca { ptr, i64, i64 }, align 16 %a390 = alloca { ptr, i64, i64 }, align 16 - %a404 = alloca { ptr, i64, i64 }, align 16 - %a405 = alloca { ptr, i64, i64 }, align 16 - %a410 = alloca { ptr, i64, i64 }, align 16 - %a411 = alloca { ptr, i64, i64 }, align 16 - %a417 = alloca { ptr, i64, i64 }, align 16 - %a418 = alloca { ptr, i64, i64 }, align 16 + %a391 = alloca { ptr, i64, i64 }, align 16 + %a393 = alloca { ptr, i64, i64 }, align 16 + %a394 = alloca { ptr, i64, i64 }, align 16 + %a395 = alloca { ptr, i64, i64 }, align 16 + %a396 = alloca { ptr, i64, i64 }, align 16 + %a398 = alloca { ptr, i64, i64 }, align 16 + %a408 = alloca { ptr, i64, i64 }, align 16 + %a409 = alloca { ptr, i64, i64 }, align 16 %a424 = alloca { ptr, i64, i64 }, align 16 %a425 = alloca { ptr, i64, i64 }, align 16 - %a432 = alloca { ptr, i64, i64 }, align 16 - %a433 = alloca { ptr, i64, i64 }, align 16 - %a434 = alloca { ptr, i64, i64 }, align 16 - %a436 = alloca { ptr, i64, i64 }, align 16 + %a430 = alloca { ptr, i64, i64 }, align 16 + %a431 = alloca { ptr, i64, i64 }, align 16 %a437 = alloca { ptr, i64, i64 }, align 16 %a438 = alloca { ptr, i64, i64 }, align 16 - %a439 = alloca { ptr, i64, i64 }, align 16 - %a441 = alloca { ptr, i64, i64 }, align 16 - %a451 = alloca { ptr, i64, i64 }, align 16 - %a452 = alloca { ptr, i64, i64 }, align 16 - %a453 = alloca { ptr, i64, i64 }, align 16 - %a454 = alloca { ptr, i64, i64 }, align 16 + %a455 = alloca { ptr, i64, i64 }, align 16 %a456 = alloca { ptr, i64, i64 }, align 16 %a457 = alloca { ptr, i64, i64 }, align 16 - %a458 = alloca { ptr, i64, i64 }, align 16 - %a459 = alloca { ptr, i64, i64 }, align 16 - %a464 = alloca { ptr, i64, i64 }, align 16 - %a465 = alloca { ptr, i64, i64 }, align 16 %a466 = alloca { ptr, i64, i64 }, align 16 %a467 = alloca { ptr, i64, i64 }, align 16 %a469 = alloca { ptr, i64, i64 }, align 16 - %a470 = alloca { ptr, i64, i64 }, align 16 - %a471 = alloca { ptr, i64, i64 }, align 16 - %a472 = alloca { ptr, i64, i64 }, align 16 - %a475 = alloca { ptr, i64, i64 }, align 16 - %a476 = alloca { ptr, i64, i64 }, align 16 - %a489 = alloca { ptr, i64, i64 }, align 16 - %a490 = alloca { ptr, i64, i64 }, align 16 - %a491 = alloca { ptr, i64, i64 }, align 16 - %a492 = alloca { ptr, i64, i64 }, align 16 - %a494 = alloca { ptr, i64, i64 }, align 16 - %a495 = alloca { ptr, i64, i64 }, align 16 - %a496 = alloca { ptr, i64, i64 }, align 16 - %a497 = alloca { ptr, i64, i64 }, align 16 + %a480 = alloca { ptr, i64, i64 }, align 16 + %a482 = alloca { ptr, i64, i64 }, align 16 + %a485 = alloca { ptr, i64, i64 }, align 16 + %a486 = alloca { ptr, i64, i64 }, align 16 + %a496 = alloca %S.ast.Type, align 16 %a502 = alloca { ptr, i64, i64 }, align 16 %a503 = alloca { ptr, i64, i64 }, align 16 %a504 = alloca { ptr, i64, i64 }, align 16 - %a505 = alloca { ptr, i64, i64 }, align 16 + %a506 = alloca { ptr, i64, i64 }, align 16 %a507 = alloca { ptr, i64, i64 }, align 16 %a508 = alloca { ptr, i64, i64 }, align 16 %a509 = alloca { ptr, i64, i64 }, align 16 - %a510 = alloca { ptr, i64, i64 }, align 16 - %a513 = alloca { ptr, i64, i64 }, align 16 - %a514 = alloca { ptr, i64, i64 }, align 16 - %a520 = alloca { ptr, i64, i64 }, align 16 - %a521 = alloca { ptr, i64, i64 }, align 16 - %a529 = alloca { ptr, i64, i64 }, align 16 - %a530 = alloca { ptr, i64, i64 }, align 16 - %a537 = alloca { ptr, i64, i64 }, align 16 - %a538 = alloca { ptr, i64, i64 }, align 16 + %a512 = alloca { ptr, i64, i64 }, align 16 + %a526 = alloca { ptr, i64, i64 }, align 16 + %a527 = alloca { ptr, i64, i64 }, align 16 + %a532 = alloca { ptr, i64, i64 }, align 16 + %a533 = alloca { ptr, i64, i64 }, align 16 %a539 = alloca { ptr, i64, i64 }, align 16 %a540 = alloca { ptr, i64, i64 }, align 16 - %a544 = alloca { ptr, i64, i64 }, align 16 - %a545 = alloca { ptr, i64, i64 }, align 16 %a546 = alloca { ptr, i64, i64 }, align 16 %a547 = alloca { ptr, i64, i64 }, align 16 - %a549 = alloca { ptr, i64, i64 }, align 16 - %a550 = alloca { ptr, i64, i64 }, align 16 - %a551 = alloca { ptr, i64, i64 }, align 16 - %a552 = alloca { ptr, i64, i64 }, align 16 %a554 = alloca { ptr, i64, i64 }, align 16 - %a570 = alloca %S.gen.StructDef, align 16 - %a571 = alloca %S.gen.StructDef, align 16 - %a573 = alloca %S.gen.StructDef, align 16 - %a578 = alloca i64, align 16 - %a581 = alloca i64, align 16 + %a555 = alloca { ptr, i64, i64 }, align 16 + %a556 = alloca { ptr, i64, i64 }, align 16 + %a558 = alloca { ptr, i64, i64 }, align 16 + %a559 = alloca { ptr, i64, i64 }, align 16 + %a560 = alloca { ptr, i64, i64 }, align 16 + %a561 = alloca { ptr, i64, i64 }, align 16 + %a563 = alloca { ptr, i64, i64 }, align 16 + %a573 = alloca { ptr, i64, i64 }, align 16 + %a574 = alloca { ptr, i64, i64 }, align 16 + %a575 = alloca { ptr, i64, i64 }, align 16 + %a576 = alloca { ptr, i64, i64 }, align 16 + %a578 = alloca { ptr, i64, i64 }, align 16 + %a579 = alloca { ptr, i64, i64 }, align 16 + %a580 = alloca { ptr, i64, i64 }, align 16 + %a581 = alloca { ptr, i64, i64 }, align 16 %a586 = alloca { ptr, i64, i64 }, align 16 %a587 = alloca { ptr, i64, i64 }, align 16 - %a592 = alloca i64, align 16 - %a599 = alloca { ptr, i64, i64 }, align 16 - %a600 = alloca { ptr, i64, i64 }, align 16 - %a601 = alloca { ptr, i64, i64 }, align 16 - %a602 = alloca { ptr, i64, i64 }, align 16 - %a604 = alloca { ptr, i64, i64 }, align 16 - %a605 = alloca { ptr, i64, i64 }, align 16 - %a606 = alloca { ptr, i64, i64 }, align 16 - %a607 = alloca { ptr, i64, i64 }, align 16 + %a588 = alloca { ptr, i64, i64 }, align 16 + %a589 = alloca { ptr, i64, i64 }, align 16 + %a591 = alloca { ptr, i64, i64 }, align 16 + %a592 = alloca { ptr, i64, i64 }, align 16 + %a593 = alloca { ptr, i64, i64 }, align 16 + %a594 = alloca { ptr, i64, i64 }, align 16 + %a597 = alloca { ptr, i64, i64 }, align 16 + %a598 = alloca { ptr, i64, i64 }, align 16 %a611 = alloca { ptr, i64, i64 }, align 16 %a612 = alloca { ptr, i64, i64 }, align 16 %a613 = alloca { ptr, i64, i64 }, align 16 @@ -66765,100 +70457,151 @@ entry: %a617 = alloca { ptr, i64, i64 }, align 16 %a618 = alloca { ptr, i64, i64 }, align 16 %a619 = alloca { ptr, i64, i64 }, align 16 - %a623 = alloca { ptr, i64, i64 }, align 16 %a624 = alloca { ptr, i64, i64 }, align 16 + %a625 = alloca { ptr, i64, i64 }, align 16 %a626 = alloca { ptr, i64, i64 }, align 16 %a627 = alloca { ptr, i64, i64 }, align 16 - %a628 = alloca { ptr, i64, i64 }, align 16 %a629 = alloca { ptr, i64, i64 }, align 16 %a630 = alloca { ptr, i64, i64 }, align 16 + %a631 = alloca { ptr, i64, i64 }, align 16 %a632 = alloca { ptr, i64, i64 }, align 16 - %a633 = alloca { ptr, i64, i64 }, align 16 - %a634 = alloca { ptr, i64, i64 }, align 16 %a635 = alloca { ptr, i64, i64 }, align 16 - %a637 = alloca { ptr, i64, i64 }, align 16 - %a646 = alloca %S.ast.Type, align 16 - %a647 = alloca %S.ast.Type, align 16 - %a649 = alloca %S.ast.Type, align 16 + %a636 = alloca { ptr, i64, i64 }, align 16 + %a642 = alloca { ptr, i64, i64 }, align 16 + %a643 = alloca { ptr, i64, i64 }, align 16 + %a651 = alloca { ptr, i64, i64 }, align 16 + %a652 = alloca { ptr, i64, i64 }, align 16 + %a659 = alloca { ptr, i64, i64 }, align 16 %a660 = alloca { ptr, i64, i64 }, align 16 %a661 = alloca { ptr, i64, i64 }, align 16 %a662 = alloca { ptr, i64, i64 }, align 16 - %a663 = alloca { ptr, i64, i64 }, align 16 - %a665 = alloca { ptr, i64, i64 }, align 16 %a666 = alloca { ptr, i64, i64 }, align 16 %a667 = alloca { ptr, i64, i64 }, align 16 %a668 = alloca { ptr, i64, i64 }, align 16 + %a669 = alloca { ptr, i64, i64 }, align 16 + %a671 = alloca { ptr, i64, i64 }, align 16 %a672 = alloca { ptr, i64, i64 }, align 16 %a673 = alloca { ptr, i64, i64 }, align 16 %a674 = alloca { ptr, i64, i64 }, align 16 - %a675 = alloca { ptr, i64, i64 }, align 16 - %a677 = alloca { ptr, i64, i64 }, align 16 - %a678 = alloca { ptr, i64, i64 }, align 16 - %a679 = alloca { ptr, i64, i64 }, align 16 - %a680 = alloca { ptr, i64, i64 }, align 16 - %a682 = alloca { ptr, i64, i64 }, align 16 - %a689 = alloca { ptr, i64, i64 }, align 16 - %a690 = alloca { ptr, i64, i64 }, align 16 - %a691 = alloca { ptr, i64, i64 }, align 16 - %a692 = alloca { ptr, i64, i64 }, align 16 - %a694 = alloca { ptr, i64, i64 }, align 16 - %a695 = alloca { ptr, i64, i64 }, align 16 - %a696 = alloca { ptr, i64, i64 }, align 16 - %a697 = alloca { ptr, i64, i64 }, align 16 - %a702 = alloca { ptr, i64, i64 }, align 16 - %a703 = alloca { ptr, i64, i64 }, align 16 - %a704 = alloca { ptr, i64, i64 }, align 16 - %a705 = alloca { ptr, i64, i64 }, align 16 - %a707 = alloca { ptr, i64, i64 }, align 16 + %a676 = alloca { ptr, i64, i64 }, align 16 + %a692 = alloca %S.gen.StructDef, align 16 + %a693 = alloca %S.gen.StructDef, align 16 + %a695 = alloca %S.gen.StructDef, align 16 + %a700 = alloca i64, align 16 + %a703 = alloca i64, align 16 %a708 = alloca { ptr, i64, i64 }, align 16 %a709 = alloca { ptr, i64, i64 }, align 16 - %a710 = alloca { ptr, i64, i64 }, align 16 - %a720 = alloca { ptr, i64, i64 }, align 16 + %a714 = alloca i64, align 16 + %a721 = alloca { ptr, i64, i64 }, align 16 %a722 = alloca { ptr, i64, i64 }, align 16 %a723 = alloca { ptr, i64, i64 }, align 16 %a724 = alloca { ptr, i64, i64 }, align 16 - %a725 = alloca { ptr, i64, i64 }, align 16 %a726 = alloca { ptr, i64, i64 }, align 16 + %a727 = alloca { ptr, i64, i64 }, align 16 + %a728 = alloca { ptr, i64, i64 }, align 16 %a729 = alloca { ptr, i64, i64 }, align 16 - %a730 = alloca { ptr, i64, i64 }, align 16 %a733 = alloca { ptr, i64, i64 }, align 16 %a734 = alloca { ptr, i64, i64 }, align 16 - %a738 = alloca %S.ast.Type, align 16 - %a739 = alloca %S.ast.Type, align 16 - %a747 = alloca { ptr, i64, i64 }, align 16 + %a735 = alloca { ptr, i64, i64 }, align 16 + %a736 = alloca { ptr, i64, i64 }, align 16 + %a738 = alloca { ptr, i64, i64 }, align 16 + %a739 = alloca { ptr, i64, i64 }, align 16 + %a740 = alloca { ptr, i64, i64 }, align 16 + %a741 = alloca { ptr, i64, i64 }, align 16 + %a745 = alloca { ptr, i64, i64 }, align 16 + %a746 = alloca { ptr, i64, i64 }, align 16 %a748 = alloca { ptr, i64, i64 }, align 16 %a749 = alloca { ptr, i64, i64 }, align 16 %a750 = alloca { ptr, i64, i64 }, align 16 + %a751 = alloca { ptr, i64, i64 }, align 16 %a752 = alloca { ptr, i64, i64 }, align 16 - %a753 = alloca { ptr, i64, i64 }, align 16 %a754 = alloca { ptr, i64, i64 }, align 16 %a755 = alloca { ptr, i64, i64 }, align 16 - %a760 = alloca { ptr, i64, i64 }, align 16 - %a761 = alloca { ptr, i64, i64 }, align 16 - %a762 = alloca { ptr, i64, i64 }, align 16 - %a763 = alloca { ptr, i64, i64 }, align 16 - %a765 = alloca { ptr, i64, i64 }, align 16 - %a766 = alloca { ptr, i64, i64 }, align 16 - %a767 = alloca { ptr, i64, i64 }, align 16 - %a768 = alloca { ptr, i64, i64 }, align 16 - %a778 = alloca { ptr, i64, i64 }, align 16 - %a780 = alloca { ptr, i64, i64 }, align 16 - %a781 = alloca { ptr, i64, i64 }, align 16 + %a756 = alloca { ptr, i64, i64 }, align 16 + %a757 = alloca { ptr, i64, i64 }, align 16 + %a759 = alloca { ptr, i64, i64 }, align 16 + %a768 = alloca %S.ast.Type, align 16 + %a769 = alloca %S.ast.Type, align 16 + %a771 = alloca %S.ast.Type, align 16 %a782 = alloca { ptr, i64, i64 }, align 16 %a783 = alloca { ptr, i64, i64 }, align 16 %a784 = alloca { ptr, i64, i64 }, align 16 + %a785 = alloca { ptr, i64, i64 }, align 16 %a787 = alloca { ptr, i64, i64 }, align 16 %a788 = alloca { ptr, i64, i64 }, align 16 + %a789 = alloca { ptr, i64, i64 }, align 16 %a790 = alloca { ptr, i64, i64 }, align 16 - %a791 = alloca { ptr, i64, i64 }, align 16 - %a795 = alloca %S.ast.Type, align 16 - %a796 = alloca %S.ast.Type, align 16 - %a799 = alloca %S.gen.Val, align 16 - %a813 = alloca %S.ast.Type, align 16 - %a814 = alloca %S.ast.Type, align 16 - %a819 = alloca %S.gen.Val, align 16 - %a825 = alloca %S.gen.Val, align 16 - %a826 = alloca %S.gen.Val, align 16 + %a794 = alloca { ptr, i64, i64 }, align 16 + %a795 = alloca { ptr, i64, i64 }, align 16 + %a796 = alloca { ptr, i64, i64 }, align 16 + %a797 = alloca { ptr, i64, i64 }, align 16 + %a799 = alloca { ptr, i64, i64 }, align 16 + %a800 = alloca { ptr, i64, i64 }, align 16 + %a801 = alloca { ptr, i64, i64 }, align 16 + %a802 = alloca { ptr, i64, i64 }, align 16 + %a804 = alloca { ptr, i64, i64 }, align 16 + %a811 = alloca { ptr, i64, i64 }, align 16 + %a812 = alloca { ptr, i64, i64 }, align 16 + %a813 = alloca { ptr, i64, i64 }, align 16 + %a814 = alloca { ptr, i64, i64 }, align 16 + %a816 = alloca { ptr, i64, i64 }, align 16 + %a817 = alloca { ptr, i64, i64 }, align 16 + %a818 = alloca { ptr, i64, i64 }, align 16 + %a819 = alloca { ptr, i64, i64 }, align 16 + %a824 = alloca { ptr, i64, i64 }, align 16 + %a825 = alloca { ptr, i64, i64 }, align 16 + %a826 = alloca { ptr, i64, i64 }, align 16 + %a827 = alloca { ptr, i64, i64 }, align 16 + %a829 = alloca { ptr, i64, i64 }, align 16 + %a830 = alloca { ptr, i64, i64 }, align 16 + %a831 = alloca { ptr, i64, i64 }, align 16 + %a832 = alloca { ptr, i64, i64 }, align 16 + %a842 = alloca { ptr, i64, i64 }, align 16 + %a844 = alloca { ptr, i64, i64 }, align 16 + %a845 = alloca { ptr, i64, i64 }, align 16 + %a846 = alloca { ptr, i64, i64 }, align 16 + %a847 = alloca { ptr, i64, i64 }, align 16 + %a848 = alloca { ptr, i64, i64 }, align 16 + %a851 = alloca { ptr, i64, i64 }, align 16 + %a852 = alloca { ptr, i64, i64 }, align 16 + %a855 = alloca { ptr, i64, i64 }, align 16 + %a856 = alloca { ptr, i64, i64 }, align 16 + %a860 = alloca %S.ast.Type, align 16 + %a861 = alloca %S.ast.Type, align 16 + %a869 = alloca { ptr, i64, i64 }, align 16 + %a870 = alloca { ptr, i64, i64 }, align 16 + %a871 = alloca { ptr, i64, i64 }, align 16 + %a872 = alloca { ptr, i64, i64 }, align 16 + %a874 = alloca { ptr, i64, i64 }, align 16 + %a875 = alloca { ptr, i64, i64 }, align 16 + %a876 = alloca { ptr, i64, i64 }, align 16 + %a877 = alloca { ptr, i64, i64 }, align 16 + %a882 = alloca { ptr, i64, i64 }, align 16 + %a883 = alloca { ptr, i64, i64 }, align 16 + %a884 = alloca { ptr, i64, i64 }, align 16 + %a885 = alloca { ptr, i64, i64 }, align 16 + %a887 = alloca { ptr, i64, i64 }, align 16 + %a888 = alloca { ptr, i64, i64 }, align 16 + %a889 = alloca { ptr, i64, i64 }, align 16 + %a890 = alloca { ptr, i64, i64 }, align 16 + %a900 = alloca { ptr, i64, i64 }, align 16 + %a902 = alloca { ptr, i64, i64 }, align 16 + %a903 = alloca { ptr, i64, i64 }, align 16 + %a904 = alloca { ptr, i64, i64 }, align 16 + %a905 = alloca { ptr, i64, i64 }, align 16 + %a906 = alloca { ptr, i64, i64 }, align 16 + %a909 = alloca { ptr, i64, i64 }, align 16 + %a910 = alloca { ptr, i64, i64 }, align 16 + %a912 = alloca { ptr, i64, i64 }, align 16 + %a913 = alloca { ptr, i64, i64 }, align 16 + %a917 = alloca %S.ast.Type, align 16 + %a918 = alloca %S.ast.Type, align 16 + %a921 = alloca %S.gen.Val, align 16 + %a935 = alloca %S.ast.Type, align 16 + %a936 = alloca %S.ast.Type, align 16 + %a941 = alloca %S.gen.Val, align 16 + %a947 = alloca %S.gen.Val, align 16 + %a948 = alloca %S.gen.Val, align 16 store ptr %p0, ptr %a1 store %S.ast.Node %p1, ptr %a2 store i1 %p2, ptr %a3 @@ -66867,1203 +70610,1393 @@ entry: %t6 = load { ptr, i64, i64 }, ptr %t5 %t7 = extractvalue { ptr, i64, i64 } %t6, 1 %t8 = icmp uge i64 0, %t7 - br i1 %t8, label %range6635, label %inrange6636 -range6635: - call void @finch_panic_index(ptr @.str.4316, i64 3666, i64 0, i64 %t7) + br i1 %t8, label %range7001, label %inrange7002 +range7001: + call void @finch_panic_index(ptr @.str.4506, i64 3881, i64 0, i64 %t7) unreachable -inrange6636: +inrange7002: %t9 = extractvalue { ptr, i64, i64 } %t6, 0 %t10 = getelementptr inbounds %S.ast.Node, ptr %t9, i64 0 %t11 = load %S.ast.Node, ptr %t10 - %t12 = call i64 @finch.gen.enumNamed(ptr %t4, %S.ast.Node %t11) + %t12 = call i64 @finch.gen.sumNamed(ptr %t4, %S.ast.Node %t11) store i64 %t12, ptr %a13 %t14 = load i64, ptr %a13 %t15 = icmp sge i64 %t14, 0 - br i1 %t15, label %then6637, label %endif6639 -then6637: + br i1 %t15, label %then7003, label %endif7005 +then7003: %t16 = load i1, ptr %a3 - br i1 %t16, label %then6640, label %endif6642 -then6640: + br i1 %t16, label %then7006, label %endif7008 +then7006: %t17 = load ptr, ptr %a1 %t18 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t17, %S.ast.Node %t18, { ptr, i64, i64 } { ptr @.str.4317, i64 37, i64 0 }) - br label %endif6642 -endif6642: - %t19 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 - %t20 = load ptr, ptr %a1 - %t21 = load %S.ast.Node, ptr %a2 - %t22 = load i64, ptr %a13 - %t23 = call %S.gen.Val @finch.gen.enumValue(ptr %t20, %S.ast.Node %t21, i64 %t22) - %t24 = insertvalue %S.gen.Ref %t19, %S.gen.Val %t23, 2 - ret %S.gen.Ref %t24 -endif6639: - %t25 = load ptr, ptr %a1 - %t26 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 - %t27 = load { ptr, i64, i64 }, ptr %t26 - %t28 = extractvalue { ptr, i64, i64 } %t27, 1 - %t29 = icmp uge i64 0, %t28 - br i1 %t29, label %range6643, label %inrange6644 -range6643: - call void @finch_panic_index(ptr @.str.4318, i64 3673, i64 0, i64 %t28) + call void @finch.gen.fail(ptr %t17, %S.ast.Node %t18, { ptr, i64, i64 } { ptr @.str.4507, i64 37, i64 0 }) + br label %endif7008 +endif7008: + %t19 = load ptr, ptr %a1 + %t20 = load i64, ptr %a13 + %t21 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t22 = load { ptr, i64, i64 }, ptr %t21 + %t23 = load %S.ast.Node, ptr %a2 + %t24 = call i64 @finch.gen.sumVariant(ptr %t19, i64 %t20, { ptr, i64, i64 } %t22, %S.ast.Node %t23) + store i64 %t24, ptr %a25 + %t26 = load ptr, ptr %a1 + %t27 = icmp eq ptr %t26, null + br i1 %t27, label %panic7009, label %ok7010 +panic7009: + call void @finch_panic(ptr @.str.4508, i64 3887, ptr @.str.4509) unreachable -inrange6644: - %t30 = extractvalue { ptr, i64, i64 } %t27, 0 - %t31 = getelementptr inbounds %S.ast.Node, ptr %t30, i64 0 - %t32 = load %S.ast.Node, ptr %t31 - %t33 = load i1, ptr %a3 - %t34 = call %S.gen.Ref @finch.gen.ref(ptr %t25, %S.ast.Node %t32, i1 %t33) - store %S.gen.Ref %t34, ptr %a35 - %t36 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 2 - %t37 = getelementptr inbounds %S.gen.Val, ptr %t36, i32 0, i32 1 - %t38 = load %S.ast.Type, ptr %t37 - store %S.ast.Type %t38, ptr %a39 - call void @finch.copy.S_ast_Type(ptr %a40, ptr %a39) - %t41 = load %S.ast.Type, ptr %a40 - store %S.ast.Type %t41, ptr %a42 - %t43 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 0 - %t44 = load i1, ptr %t43 - br i1 %t44, label %then6645, label %endif6647 -then6645: - %t45 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 1 - %t46 = getelementptr inbounds %S.gen.Place, ptr %t45, i32 0, i32 1 - %t47 = load %S.ast.Type, ptr %t46 - store %S.ast.Type %t47, ptr %a48 - call void @finch.copy.S_ast_Type(ptr %a49, ptr %a48) - %t50 = load %S.ast.Type, ptr %a49 - %t51 = load %S.ast.Type, ptr %a42 - store %S.ast.Type %t50, ptr %a42 - store %S.ast.Type %t51, ptr %a52 - call void @finch.drop.S_ast_Type(ptr %a52) - br label %endif6647 -endif6647: - %t53 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 0 - %t54 = load { ptr, i64, i64 }, ptr %t53 - store { ptr, i64, i64 } %t54, ptr %a55 - store { ptr, i64, i64 } { ptr @.str.4319, i64 3, i64 0 }, ptr %a56 - %t57 = call i32 @finch_str_eq(ptr %a55, ptr %a56) - %t58 = icmp ne i32 %t57, 0 - br i1 %t58, label %then6648, label %endif6650 -then6648: - %t59 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 2 - %t60 = getelementptr inbounds %S.gen.Val, ptr %t59, i32 0, i32 0 - %t61 = load { ptr, i64, i64 }, ptr %t60 - store { ptr, i64, i64 } %t61, ptr %a62 - call void @finch_str_copy(ptr %a63, ptr %a62) - %t64 = load { ptr, i64, i64 }, ptr %a63 - store { ptr, i64, i64 } %t64, ptr %a65 - %t66 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 0 - %t67 = load i1, ptr %t66 - br i1 %t67, label %then6651, label %endif6653 -then6651: - %t68 = load ptr, ptr %a1 - %t69 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 1 - %t70 = getelementptr inbounds %S.gen.Place, ptr %t69, i32 0, i32 0 - %t71 = load { ptr, i64, i64 }, ptr %t70 - %t72 = call { ptr, i64, i64 } @finch.gen.load(ptr %t68, { ptr, i64, i64 } { ptr @.str.4320, i64 3, i64 0 }, { ptr, i64, i64 } %t71) - %t73 = load { ptr, i64, i64 }, ptr %a65 - store { ptr, i64, i64 } %t72, ptr %a65 - store { ptr, i64, i64 } %t73, ptr %a74 +ok7010: + %t28 = getelementptr inbounds %S.gen.Gen, ptr %t26, i32 0, i32 22 + %t29 = load i64, ptr %a13 + %t30 = load { ptr, i64, i64 }, ptr %t28 + %t31 = extractvalue { ptr, i64, i64 } %t30, 1 + %t32 = icmp uge i64 %t29, %t31 + br i1 %t32, label %range7011, label %inrange7012 +range7011: + call void @finch_panic_index(ptr @.str.4510, i64 3887, i64 %t29, i64 %t31) + unreachable +inrange7012: + %t33 = extractvalue { ptr, i64, i64 } %t30, 0 + %t34 = getelementptr inbounds %S.gen.SumDef, ptr %t33, i64 %t29 + %t35 = getelementptr inbounds %S.gen.SumDef, ptr %t34, i32 0, i32 3 + %t36 = load i64, ptr %a25 + %t37 = load { ptr, i64, i64 }, ptr %t35 + %t38 = extractvalue { ptr, i64, i64 } %t37, 1 + %t39 = icmp uge i64 %t36, %t38 + br i1 %t39, label %range7013, label %inrange7014 +range7013: + call void @finch_panic_index(ptr @.str.4511, i64 3887, i64 %t36, i64 %t38) + unreachable +inrange7014: + %t40 = extractvalue { ptr, i64, i64 } %t37, 0 + %t41 = getelementptr inbounds i64, ptr %t40, i64 %t36 + %t42 = load i64, ptr %t41 + %t43 = icmp sgt i64 %t42, 0 + br i1 %t43, label %then7015, label %endif7017 +then7015: + %t44 = load ptr, ptr %a1 + %t45 = load %S.ast.Node, ptr %a2 + %t46 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t47 = load { ptr, i64, i64 }, ptr %t46 + store { ptr, i64, i64 } %t47, ptr %a49 + store { ptr, i64, i64 } { ptr @.str.4512, i64 7, i64 0 }, ptr %a50 + call void @finch_str_concat(ptr %a48, ptr %a49, ptr %a50) + %t51 = load { ptr, i64, i64 }, ptr %a48 + %t52 = load ptr, ptr %a1 + %t53 = icmp eq ptr %t52, null + br i1 %t53, label %panic7018, label %ok7019 +panic7018: + call void @finch_panic(ptr @.str.4513, i64 3888, ptr @.str.4514) + unreachable +ok7019: + %t54 = getelementptr inbounds %S.gen.Gen, ptr %t52, i32 0, i32 22 + %t55 = load i64, ptr %a13 + %t56 = load { ptr, i64, i64 }, ptr %t54 + %t57 = extractvalue { ptr, i64, i64 } %t56, 1 + %t58 = icmp uge i64 %t55, %t57 + br i1 %t58, label %range7020, label %inrange7021 +range7020: + call void @finch_panic_index(ptr @.str.4515, i64 3888, i64 %t55, i64 %t57) + unreachable +inrange7021: + %t59 = extractvalue { ptr, i64, i64 } %t56, 0 + %t60 = getelementptr inbounds %S.gen.SumDef, ptr %t59, i64 %t55 + %t61 = getelementptr inbounds %S.gen.SumDef, ptr %t60, i32 0, i32 3 + %t62 = load i64, ptr %a25 + %t63 = load { ptr, i64, i64 }, ptr %t61 + %t64 = extractvalue { ptr, i64, i64 } %t63, 1 + %t65 = icmp uge i64 %t62, %t64 + br i1 %t65, label %range7022, label %inrange7023 +range7022: + call void @finch_panic_index(ptr @.str.4516, i64 3888, i64 %t62, i64 %t64) + unreachable +inrange7023: + %t66 = extractvalue { ptr, i64, i64 } %t63, 0 + %t67 = getelementptr inbounds i64, ptr %t66, i64 %t62 + %t68 = load i64, ptr %t67 + call void @finch_str_from_int(ptr %a69, i64 %t68) + %t70 = load { ptr, i64, i64 }, ptr %a69 + store { ptr, i64, i64 } %t51, ptr %a72 + store { ptr, i64, i64 } %t70, ptr %a73 + call void @finch_str_concat(ptr %a71, ptr %a72, ptr %a73) + store { ptr, i64, i64 } %t51, ptr %a74 call void @finch_str_drop(ptr %a74) - br label %endif6653 -endif6653: - %t75 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 1 - %t76 = getelementptr inbounds { ptr, i64, i64 }, ptr %t75, i32 0, i32 1 - %t77 = load i64, ptr %t76 - %t78 = icmp eq i64 %t77, 0 - br i1 %t78, label %then6654, label %endif6656 -then6654: - %t79 = load ptr, ptr %a1 - %t80 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t79, %S.ast.Node %t80, { ptr, i64, i64 } { ptr @.str.4321, i64 57, i64 0 }) - br label %endif6656 -endif6656: - %t81 = load ptr, ptr %a1 + store { ptr, i64, i64 } %t70, ptr %a75 + call void @finch_str_drop(ptr %a75) + %t76 = load { ptr, i64, i64 }, ptr %a71 + store { ptr, i64, i64 } %t76, ptr %a78 + store { ptr, i64, i64 } { ptr @.str.4517, i64 11, i64 0 }, ptr %a79 + call void @finch_str_concat(ptr %a77, ptr %a78, ptr %a79) + store { ptr, i64, i64 } %t76, ptr %a80 + call void @finch_str_drop(ptr %a80) + %t81 = load { ptr, i64, i64 }, ptr %a77 %t82 = load ptr, ptr %a1 - %t83 = load { ptr, i64, i64 }, ptr %a65 - store { ptr, i64, i64 } { ptr @.str.4322, i64 12, i64 0 }, ptr %a85 - store { ptr, i64, i64 } %t83, ptr %a86 - call void @finch_str_concat(ptr %a84, ptr %a85, ptr %a86) - %t87 = load { ptr, i64, i64 }, ptr %a84 - store { ptr, i64, i64 } %t87, ptr %a89 - store { ptr, i64, i64 } { ptr @.str.4323, i64 6, i64 0 }, ptr %a90 - call void @finch_str_concat(ptr %a88, ptr %a89, ptr %a90) - store { ptr, i64, i64 } %t87, ptr %a91 - call void @finch_str_drop(ptr %a91) - %t92 = load { ptr, i64, i64 }, ptr %a88 - %t93 = call { ptr, i64, i64 } @finch.gen.op(ptr %t82, { ptr, i64, i64 } %t92) - store { ptr, i64, i64 } %t92, ptr %a94 - call void @finch_str_drop(ptr %a94) - %t95 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t96 = load { ptr, i64, i64 }, ptr %t95 - store { ptr, i64, i64 } { ptr @.str.4324, i64 6, i64 0 }, ptr %a98 - store { ptr, i64, i64 } %t96, ptr %a99 - call void @finch_str_concat(ptr %a97, ptr %a98, ptr %a99) - %t100 = load { ptr, i64, i64 }, ptr %a97 - store { ptr, i64, i64 } %t100, ptr %a102 - store { ptr, i64, i64 } { ptr @.str.4325, i64 18, i64 0 }, ptr %a103 - call void @finch_str_concat(ptr %a101, ptr %a102, ptr %a103) - store { ptr, i64, i64 } %t100, ptr %a104 - call void @finch_str_drop(ptr %a104) - %t105 = load { ptr, i64, i64 }, ptr %a101 - %t106 = load %S.ast.Node, ptr %a2 - call void @finch.gen.panicIf(ptr %t81, { ptr, i64, i64 } %t93, { ptr, i64, i64 } %t105, %S.ast.Node %t106) - store { ptr, i64, i64 } %t93, ptr %a107 - call void @finch_str_drop(ptr %a107) - store { ptr, i64, i64 } %t105, ptr %a108 + %t83 = icmp eq ptr %t82, null + br i1 %t83, label %panic7024, label %ok7025 +panic7024: + call void @finch_panic(ptr @.str.4518, i64 3888, ptr @.str.4519) + unreachable +ok7025: + %t84 = getelementptr inbounds %S.gen.Gen, ptr %t82, i32 0, i32 22 + %t85 = load i64, ptr %a13 + %t86 = load { ptr, i64, i64 }, ptr %t84 + %t87 = extractvalue { ptr, i64, i64 } %t86, 1 + %t88 = icmp uge i64 %t85, %t87 + br i1 %t88, label %range7026, label %inrange7027 +range7026: + call void @finch_panic_index(ptr @.str.4520, i64 3888, i64 %t85, i64 %t87) + unreachable +inrange7027: + %t89 = extractvalue { ptr, i64, i64 } %t86, 0 + %t90 = getelementptr inbounds %S.gen.SumDef, ptr %t89, i64 %t85 + %t91 = getelementptr inbounds %S.gen.SumDef, ptr %t90, i32 0, i32 1 + %t92 = load { ptr, i64, i64 }, ptr %t91 + store { ptr, i64, i64 } %t81, ptr %a94 + store { ptr, i64, i64 } %t92, ptr %a95 + call void @finch_str_concat(ptr %a93, ptr %a94, ptr %a95) + store { ptr, i64, i64 } %t81, ptr %a96 + call void @finch_str_drop(ptr %a96) + %t97 = load { ptr, i64, i64 }, ptr %a93 + store { ptr, i64, i64 } %t97, ptr %a99 + store { ptr, i64, i64 } { ptr @.str.4521, i64 1, i64 0 }, ptr %a100 + call void @finch_str_concat(ptr %a98, ptr %a99, ptr %a100) + store { ptr, i64, i64 } %t97, ptr %a101 + call void @finch_str_drop(ptr %a101) + %t102 = load { ptr, i64, i64 }, ptr %a98 + %t103 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t104 = load { ptr, i64, i64 }, ptr %t103 + store { ptr, i64, i64 } %t102, ptr %a106 + store { ptr, i64, i64 } %t104, ptr %a107 + call void @finch_str_concat(ptr %a105, ptr %a106, ptr %a107) + store { ptr, i64, i64 } %t102, ptr %a108 call void @finch_str_drop(ptr %a108) - %t109 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 1 - %t110 = load { ptr, i64, i64 }, ptr %t109 - %t111 = extractvalue { ptr, i64, i64 } %t110, 1 - %t112 = icmp uge i64 0, %t111 - br i1 %t112, label %range6657, label %inrange6658 -range6657: - call void @finch_panic_index(ptr @.str.4326, i64 3687, i64 0, i64 %t111) + %t109 = load { ptr, i64, i64 }, ptr %a105 + store { ptr, i64, i64 } %t109, ptr %a111 + store { ptr, i64, i64 } { ptr @.str.4522, i64 5, i64 0 }, ptr %a112 + call void @finch_str_concat(ptr %a110, ptr %a111, ptr %a112) + store { ptr, i64, i64 } %t109, ptr %a113 + call void @finch_str_drop(ptr %a113) + %t114 = load { ptr, i64, i64 }, ptr %a110 + call void @finch.gen.fail(ptr %t44, %S.ast.Node %t45, { ptr, i64, i64 } %t114) + store { ptr, i64, i64 } %t114, ptr %a115 + call void @finch_str_drop(ptr %a115) + br label %endif7017 +endif7017: + store { ptr, i64, i64 } zeroinitializer, ptr %a116 + %t117 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 + %t118 = load ptr, ptr %a1 + %t119 = load i64, ptr %a13 + %t120 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t121 = load { ptr, i64, i64 }, ptr %t120 + %t122 = load { ptr, i64, i64 }, ptr %a116 + %t123 = load %S.ast.Node, ptr %a2 + %t124 = call %S.gen.Val @finch.gen.sumMake(ptr %t118, i64 %t119, { ptr, i64, i64 } %t121, { ptr, i64, i64 } %t122, %S.ast.Node %t123) + %t125 = insertvalue %S.gen.Ref %t117, %S.gen.Val %t124, 2 + call void @finch.drop.arr_S_ast_Node(ptr %a116) + ret %S.gen.Ref %t125 +endif7005: + %t126 = load ptr, ptr %a1 + %t127 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t128 = load { ptr, i64, i64 }, ptr %t127 + %t129 = extractvalue { ptr, i64, i64 } %t128, 1 + %t130 = icmp uge i64 0, %t129 + br i1 %t130, label %range7028, label %inrange7029 +range7028: + call void @finch_panic_index(ptr @.str.4523, i64 3893, i64 0, i64 %t129) unreachable -inrange6658: - %t113 = extractvalue { ptr, i64, i64 } %t110, 0 - %t114 = getelementptr inbounds %S.ast.Type, ptr %t113, i64 0 - %t115 = load %S.ast.Type, ptr %t114 - store %S.ast.Type %t115, ptr %a116 - call void @finch.copy.S_ast_Type(ptr %a117, ptr %a116) - %t118 = load %S.ast.Type, ptr %a117 - store %S.ast.Type %t118, ptr %a119 - store i1 false, ptr %a120 - %t121 = getelementptr inbounds %S.ast.Type, ptr %a119, i32 0, i32 0 - %t122 = load { ptr, i64, i64 }, ptr %t121 - store { ptr, i64, i64 } %t122, ptr %a123 - store { ptr, i64, i64 } { ptr @.str.4327, i64 6, i64 0 }, ptr %a124 - %t125 = call i32 @finch_str_eq(ptr %a123, ptr %a124) - %t126 = icmp ne i32 %t125, 0 - br i1 %t126, label %then6659, label %endif6661 -then6659: - %t127 = load ptr, ptr %a1 - %t128 = icmp eq ptr %t127, null - br i1 %t128, label %panic6662, label %ok6663 -panic6662: - call void @finch_panic(ptr @.str.4328, i64 3690, ptr @.str.4329) +inrange7029: + %t131 = extractvalue { ptr, i64, i64 } %t128, 0 + %t132 = getelementptr inbounds %S.ast.Node, ptr %t131, i64 0 + %t133 = load %S.ast.Node, ptr %t132 + %t134 = call i64 @finch.gen.enumNamed(ptr %t126, %S.ast.Node %t133) + store i64 %t134, ptr %a135 + %t136 = load i64, ptr %a135 + %t137 = icmp sge i64 %t136, 0 + br i1 %t137, label %then7030, label %endif7032 +then7030: + %t138 = load i1, ptr %a3 + br i1 %t138, label %then7033, label %endif7035 +then7033: + %t139 = load ptr, ptr %a1 + %t140 = load %S.ast.Node, ptr %a2 + call void @finch.gen.fail(ptr %t139, %S.ast.Node %t140, { ptr, i64, i64 } { ptr @.str.4524, i64 37, i64 0 }) + br label %endif7035 +endif7035: + %t141 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 + %t142 = load ptr, ptr %a1 + %t143 = load %S.ast.Node, ptr %a2 + %t144 = load i64, ptr %a135 + %t145 = call %S.gen.Val @finch.gen.enumValue(ptr %t142, %S.ast.Node %t143, i64 %t144) + %t146 = insertvalue %S.gen.Ref %t141, %S.gen.Val %t145, 2 + ret %S.gen.Ref %t146 +endif7032: + %t147 = load ptr, ptr %a1 + %t148 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t149 = load { ptr, i64, i64 }, ptr %t148 + %t150 = extractvalue { ptr, i64, i64 } %t149, 1 + %t151 = icmp uge i64 0, %t150 + br i1 %t151, label %range7036, label %inrange7037 +range7036: + call void @finch_panic_index(ptr @.str.4525, i64 3900, i64 0, i64 %t150) unreachable -ok6663: - %t129 = getelementptr inbounds %S.gen.Gen, ptr %t127, i32 0, i32 16 - %t130 = load ptr, ptr %a1 - %t131 = getelementptr inbounds %S.ast.Type, ptr %a119, i32 0, i32 3 - %t132 = load { ptr, i64, i64 }, ptr %t131 - %t133 = getelementptr inbounds %S.ast.Type, ptr %a119, i32 0, i32 2 - %t134 = load { ptr, i64, i64 }, ptr %t133 - %t135 = call i64 @finch.gen.findStruct(ptr %t130, { ptr, i64, i64 } %t132, { ptr, i64, i64 } %t134) - %t136 = load { ptr, i64, i64 }, ptr %t129 - %t137 = extractvalue { ptr, i64, i64 } %t136, 1 - %t138 = icmp uge i64 %t135, %t137 - br i1 %t138, label %range6664, label %inrange6665 -range6664: - call void @finch_panic_index(ptr @.str.4330, i64 3690, i64 %t135, i64 %t137) - unreachable -inrange6665: - %t139 = extractvalue { ptr, i64, i64 } %t136, 0 - %t140 = getelementptr inbounds %S.gen.StructDef, ptr %t139, i64 %t135 - %t141 = getelementptr inbounds %S.gen.StructDef, ptr %t140, i32 0, i32 11 - %t142 = getelementptr inbounds { ptr, i64, i64 }, ptr %t141, i32 0, i32 1 - store i64 -1, ptr %a143 - %t144 = load i64, ptr %t142 - %t145 = load ptr, ptr %t141 - store i64 0, ptr %a146 - br label %find.cond6666 -find.cond6666: - %t147 = load i64, ptr %a146 - %t148 = icmp slt i64 %t147, %t144 - br i1 %t148, label %find.body6667, label %find.end6670 -find.body6667: - %t149 = getelementptr inbounds { ptr, i64, i64 }, ptr %t145, i64 %t147 - %t150 = load { ptr, i64, i64 }, ptr %t149 - store { ptr, i64, i64 } %t150, ptr %a151 - store { ptr, i64, i64 } { ptr @.str.4331, i64 5, i64 0 }, ptr %a152 - %t153 = call i32 @finch_str_eq(ptr %a151, ptr %a152) - %t154 = icmp ne i32 %t153, 0 - br i1 %t154, label %find.hit6668, label %find.next6669 -find.hit6668: - store i64 %t147, ptr %a143 - br label %find.end6670 -find.next6669: - %t155 = add i64 %t147, 1 - store i64 %t155, ptr %a146 - br label %find.cond6666 -find.end6670: - %t156 = load i64, ptr %a143 - %t157 = icmp sge i64 %t156, 0 - store i1 %t157, ptr %a120 - br label %endif6661 -endif6661: - %t158 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t159 = load { ptr, i64, i64 }, ptr %t158 - store { ptr, i64, i64 } %t159, ptr %a160 - store { ptr, i64, i64 } { ptr @.str.4332, i64 5, i64 0 }, ptr %a161 - %t162 = call i32 @finch_str_eq(ptr %a160, ptr %a161) - %t163 = icmp ne i32 %t162, 0 - br label %logic.from6671 -logic.from6671: - br i1 %t163, label %logic.rhs6672, label %logic.end6673 -logic.rhs6672: - %t164 = load i1, ptr %a120 - %t165 = xor i1 %t164, true - br label %logic.rend6674 -logic.rend6674: - br label %logic.end6673 -logic.end6673: - %t166 = phi i1 [ false, %logic.from6671 ], [ %t165, %logic.rend6674 ] - br i1 %t166, label %then6675, label %endif6677 -then6675: - %t167 = insertvalue %S.gen.Ref zeroinitializer, i1 true, 0 - %t168 = load { ptr, i64, i64 }, ptr %a65 - store { ptr, i64, i64 } %t168, ptr %a169 - call void @finch_str_copy(ptr %a170, ptr %a169) - %t171 = load { ptr, i64, i64 }, ptr %a170 - %t172 = insertvalue %S.gen.Place zeroinitializer, { ptr, i64, i64 } %t171, 0 - %t173 = load %S.ast.Type, ptr %a119 +inrange7037: + %t152 = extractvalue { ptr, i64, i64 } %t149, 0 + %t153 = getelementptr inbounds %S.ast.Node, ptr %t152, i64 0 + %t154 = load %S.ast.Node, ptr %t153 + %t155 = load i1, ptr %a3 + %t156 = call %S.gen.Ref @finch.gen.ref(ptr %t147, %S.ast.Node %t154, i1 %t155) + store %S.gen.Ref %t156, ptr %a157 + %t158 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 2 + %t159 = getelementptr inbounds %S.gen.Val, ptr %t158, i32 0, i32 1 + %t160 = load %S.ast.Type, ptr %t159 + store %S.ast.Type %t160, ptr %a161 + call void @finch.copy.S_ast_Type(ptr %a162, ptr %a161) + %t163 = load %S.ast.Type, ptr %a162 + store %S.ast.Type %t163, ptr %a164 + %t165 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 0 + %t166 = load i1, ptr %t165 + br i1 %t166, label %then7038, label %endif7040 +then7038: + %t167 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 1 + %t168 = getelementptr inbounds %S.gen.Place, ptr %t167, i32 0, i32 1 + %t169 = load %S.ast.Type, ptr %t168 + store %S.ast.Type %t169, ptr %a170 + call void @finch.copy.S_ast_Type(ptr %a171, ptr %a170) + %t172 = load %S.ast.Type, ptr %a171 + %t173 = load %S.ast.Type, ptr %a164 + store %S.ast.Type %t172, ptr %a164 store %S.ast.Type %t173, ptr %a174 - call void @finch.copy.S_ast_Type(ptr %a175, ptr %a174) - %t176 = load %S.ast.Type, ptr %a175 - %t177 = insertvalue %S.gen.Place %t172, %S.ast.Type %t176, 1 - %t178 = insertvalue %S.gen.Ref %t167, %S.gen.Place %t177, 1 - call void @finch.drop.S_ast_Type(ptr %a119) - call void @finch_str_drop(ptr %a65) - call void @finch.drop.S_ast_Type(ptr %a42) - call void @finch.drop.S_gen_Ref(ptr %a35) - ret %S.gen.Ref %t178 -endif6677: - %t179 = getelementptr inbounds %S.ast.Type, ptr %a119, i32 0, i32 0 - %t180 = load { ptr, i64, i64 }, ptr %t179 - store { ptr, i64, i64 } %t180, ptr %a181 - store { ptr, i64, i64 } { ptr @.str.4333, i64 6, i64 0 }, ptr %a182 - %t183 = call i32 @finch_str_eq(ptr %a181, ptr %a182) - %t184 = icmp eq i32 %t183, 0 - br i1 %t184, label %then6678, label %endif6680 -then6678: - %t185 = load ptr, ptr %a1 - %t186 = load %S.ast.Node, ptr %a2 - %t187 = load %S.ast.Type, ptr %a42 - %t188 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t187) - store { ptr, i64, i64 } { ptr @.str.4334, i64 2, i64 0 }, ptr %a190 - store { ptr, i64, i64 } %t188, ptr %a191 - call void @finch_str_concat(ptr %a189, ptr %a190, ptr %a191) - store { ptr, i64, i64 } %t188, ptr %a192 - call void @finch_str_drop(ptr %a192) - %t193 = load { ptr, i64, i64 }, ptr %a189 - store { ptr, i64, i64 } %t193, ptr %a195 - store { ptr, i64, i64 } { ptr @.str.4335, i64 43, i64 0 }, ptr %a196 - call void @finch_str_concat(ptr %a194, ptr %a195, ptr %a196) - store { ptr, i64, i64 } %t193, ptr %a197 - call void @finch_str_drop(ptr %a197) - %t198 = load { ptr, i64, i64 }, ptr %a194 - call void @finch.gen.fail(ptr %t185, %S.ast.Node %t186, { ptr, i64, i64 } %t198) - store { ptr, i64, i64 } %t198, ptr %a199 - call void @finch_str_drop(ptr %a199) - br label %endif6680 -endif6680: - %t200 = insertvalue %S.gen.Ref zeroinitializer, i1 true, 0 - %t201 = load { ptr, i64, i64 }, ptr %a65 - store { ptr, i64, i64 } %t201, ptr %a202 - call void @finch_str_copy(ptr %a203, ptr %a202) - %t204 = load { ptr, i64, i64 }, ptr %a203 - %t205 = insertvalue %S.gen.Place zeroinitializer, { ptr, i64, i64 } %t204, 0 - %t206 = load %S.ast.Type, ptr %a119 - store %S.ast.Type %t206, ptr %a207 - call void @finch.copy.S_ast_Type(ptr %a208, ptr %a207) - %t209 = load %S.ast.Type, ptr %a208 - %t210 = insertvalue %S.gen.Place %t205, %S.ast.Type %t209, 1 - %t211 = insertvalue %S.gen.Ref %t200, %S.gen.Place %t210, 1 - %t212 = load %S.gen.Ref, ptr %a35 - store %S.gen.Ref %t211, ptr %a35 - store %S.gen.Ref %t212, ptr %a213 - call void @finch.drop.S_gen_Ref(ptr %a213) - %t214 = load %S.ast.Type, ptr %a119 - store %S.ast.Type %t214, ptr %a215 - call void @finch.copy.S_ast_Type(ptr %a216, ptr %a215) - %t217 = load %S.ast.Type, ptr %a216 - %t218 = load %S.ast.Type, ptr %a42 - store %S.ast.Type %t217, ptr %a42 - store %S.ast.Type %t218, ptr %a219 - call void @finch.drop.S_ast_Type(ptr %a219) - call void @finch.drop.S_ast_Type(ptr %a119) - call void @finch_str_drop(ptr %a65) - br label %endif6650 -endif6650: - %t220 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 0 - %t221 = load { ptr, i64, i64 }, ptr %t220 - store { ptr, i64, i64 } %t221, ptr %a222 - store { ptr, i64, i64 } { ptr @.str.4336, i64 5, i64 0 }, ptr %a223 - %t224 = call i32 @finch_str_eq(ptr %a222, ptr %a223) - %t225 = icmp ne i32 %t224, 0 - br i1 %t225, label %then6681, label %endif6683 -then6681: - %t226 = load i1, ptr %a3 - br i1 %t226, label %then6684, label %endif6686 -then6684: - %t227 = load ptr, ptr %a1 + call void @finch.drop.S_ast_Type(ptr %a174) + br label %endif7040 +endif7040: + %t175 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 0 + %t176 = load { ptr, i64, i64 }, ptr %t175 + store { ptr, i64, i64 } %t176, ptr %a177 + store { ptr, i64, i64 } { ptr @.str.4526, i64 3, i64 0 }, ptr %a178 + %t179 = call i32 @finch_str_eq(ptr %a177, ptr %a178) + %t180 = icmp ne i32 %t179, 0 + br i1 %t180, label %then7041, label %endif7043 +then7041: + %t181 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 2 + %t182 = getelementptr inbounds %S.gen.Val, ptr %t181, i32 0, i32 0 + %t183 = load { ptr, i64, i64 }, ptr %t182 + store { ptr, i64, i64 } %t183, ptr %a184 + call void @finch_str_copy(ptr %a185, ptr %a184) + %t186 = load { ptr, i64, i64 }, ptr %a185 + store { ptr, i64, i64 } %t186, ptr %a187 + %t188 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 0 + %t189 = load i1, ptr %t188 + br i1 %t189, label %then7044, label %endif7046 +then7044: + %t190 = load ptr, ptr %a1 + %t191 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 1 + %t192 = getelementptr inbounds %S.gen.Place, ptr %t191, i32 0, i32 0 + %t193 = load { ptr, i64, i64 }, ptr %t192 + %t194 = call { ptr, i64, i64 } @finch.gen.load(ptr %t190, { ptr, i64, i64 } { ptr @.str.4527, i64 3, i64 0 }, { ptr, i64, i64 } %t193) + %t195 = load { ptr, i64, i64 }, ptr %a187 + store { ptr, i64, i64 } %t194, ptr %a187 + store { ptr, i64, i64 } %t195, ptr %a196 + call void @finch_str_drop(ptr %a196) + br label %endif7046 +endif7046: + %t197 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 1 + %t198 = getelementptr inbounds { ptr, i64, i64 }, ptr %t197, i32 0, i32 1 + %t199 = load i64, ptr %t198 + %t200 = icmp eq i64 %t199, 0 + br i1 %t200, label %then7047, label %endif7049 +then7047: + %t201 = load ptr, ptr %a1 + %t202 = load %S.ast.Node, ptr %a2 + call void @finch.gen.fail(ptr %t201, %S.ast.Node %t202, { ptr, i64, i64 } { ptr @.str.4528, i64 57, i64 0 }) + br label %endif7049 +endif7049: + %t203 = load ptr, ptr %a1 + %t204 = load ptr, ptr %a1 + %t205 = load { ptr, i64, i64 }, ptr %a187 + store { ptr, i64, i64 } { ptr @.str.4529, i64 12, i64 0 }, ptr %a207 + store { ptr, i64, i64 } %t205, ptr %a208 + call void @finch_str_concat(ptr %a206, ptr %a207, ptr %a208) + %t209 = load { ptr, i64, i64 }, ptr %a206 + store { ptr, i64, i64 } %t209, ptr %a211 + store { ptr, i64, i64 } { ptr @.str.4530, i64 6, i64 0 }, ptr %a212 + call void @finch_str_concat(ptr %a210, ptr %a211, ptr %a212) + store { ptr, i64, i64 } %t209, ptr %a213 + call void @finch_str_drop(ptr %a213) + %t214 = load { ptr, i64, i64 }, ptr %a210 + %t215 = call { ptr, i64, i64 } @finch.gen.op(ptr %t204, { ptr, i64, i64 } %t214) + store { ptr, i64, i64 } %t214, ptr %a216 + call void @finch_str_drop(ptr %a216) + %t217 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t218 = load { ptr, i64, i64 }, ptr %t217 + store { ptr, i64, i64 } { ptr @.str.4531, i64 6, i64 0 }, ptr %a220 + store { ptr, i64, i64 } %t218, ptr %a221 + call void @finch_str_concat(ptr %a219, ptr %a220, ptr %a221) + %t222 = load { ptr, i64, i64 }, ptr %a219 + store { ptr, i64, i64 } %t222, ptr %a224 + store { ptr, i64, i64 } { ptr @.str.4532, i64 18, i64 0 }, ptr %a225 + call void @finch_str_concat(ptr %a223, ptr %a224, ptr %a225) + store { ptr, i64, i64 } %t222, ptr %a226 + call void @finch_str_drop(ptr %a226) + %t227 = load { ptr, i64, i64 }, ptr %a223 %t228 = load %S.ast.Node, ptr %a2 - %t229 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t230 = load { ptr, i64, i64 }, ptr %t229 - store { ptr, i64, i64 } { ptr @.str.4337, i64 1, i64 0 }, ptr %a232 - store { ptr, i64, i64 } %t230, ptr %a233 - call void @finch_str_concat(ptr %a231, ptr %a232, ptr %a233) - %t234 = load { ptr, i64, i64 }, ptr %a231 - store { ptr, i64, i64 } %t234, ptr %a236 - store { ptr, i64, i64 } { ptr @.str.4338, i64 26, i64 0 }, ptr %a237 - call void @finch_str_concat(ptr %a235, ptr %a236, ptr %a237) - store { ptr, i64, i64 } %t234, ptr %a238 - call void @finch_str_drop(ptr %a238) - %t239 = load { ptr, i64, i64 }, ptr %a235 - call void @finch.gen.fail(ptr %t227, %S.ast.Node %t228, { ptr, i64, i64 } %t239) - store { ptr, i64, i64 } %t239, ptr %a240 - call void @finch_str_drop(ptr %a240) - br label %endif6686 -endif6686: - %t241 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t242 = load { ptr, i64, i64 }, ptr %t241 - store { ptr, i64, i64 } %t242, ptr %a243 - store { ptr, i64, i64 } { ptr @.str.4339, i64 3, i64 0 }, ptr %a244 - %t245 = call i32 @finch_str_eq(ptr %a243, ptr %a244) - %t246 = icmp ne i32 %t245, 0 - br i1 %t246, label %then6687, label %endif6689 -then6687: - %t247 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 - %t248 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 4 - %t249 = load i64, ptr %t248 - call void @finch_str_from_int(ptr %a250, i64 %t249) - %t251 = load { ptr, i64, i64 }, ptr %a250 - %t252 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t251, 0 - %t253 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4340, i64 3, i64 0 }) - %t254 = insertvalue %S.gen.Val %t252, %S.ast.Type %t253, 1 - %t255 = insertvalue %S.gen.Val %t254, i1 true, 3 - %t256 = insertvalue %S.gen.Ref %t247, %S.gen.Val %t255, 2 - call void @finch.drop.S_ast_Type(ptr %a42) - call void @finch.drop.S_gen_Ref(ptr %a35) - ret %S.gen.Ref %t256 -endif6689: - %t257 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t258 = load { ptr, i64, i64 }, ptr %t257 - store { ptr, i64, i64 } %t258, ptr %a259 - store { ptr, i64, i64 } { ptr @.str.4341, i64 3, i64 0 }, ptr %a260 - %t261 = call i32 @finch_str_eq(ptr %a259, ptr %a260) - %t262 = icmp eq i32 %t261, 0 - br i1 %t262, label %then6690, label %endif6692 -then6690: - %t263 = load ptr, ptr %a1 - %t264 = load %S.ast.Node, ptr %a2 - %t265 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t266 = load { ptr, i64, i64 }, ptr %t265 - store { ptr, i64, i64 } { ptr @.str.4342, i64 34, i64 0 }, ptr %a268 - store { ptr, i64, i64 } %t266, ptr %a269 - call void @finch_str_concat(ptr %a267, ptr %a268, ptr %a269) - %t270 = load { ptr, i64, i64 }, ptr %a267 - store { ptr, i64, i64 } %t270, ptr %a272 - store { ptr, i64, i64 } { ptr @.str.4343, i64 1, i64 0 }, ptr %a273 - call void @finch_str_concat(ptr %a271, ptr %a272, ptr %a273) - store { ptr, i64, i64 } %t270, ptr %a274 - call void @finch_str_drop(ptr %a274) - %t275 = load { ptr, i64, i64 }, ptr %a271 - call void @finch.gen.fail(ptr %t263, %S.ast.Node %t264, { ptr, i64, i64 } %t275) - store { ptr, i64, i64 } %t275, ptr %a276 - call void @finch_str_drop(ptr %a276) - br label %endif6692 -endif6692: - %t277 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 0 - %t278 = load i1, ptr %t277 - %t279 = xor i1 %t278, true - br i1 %t279, label %then6693, label %endif6695 -then6693: - %t280 = load ptr, ptr %a1 - %t281 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t280, %S.ast.Node %t281, { ptr, i64, i64 } { ptr @.str.4344, i64 48, i64 0 }) - br label %endif6695 -endif6695: - %t282 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 - %t283 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 1 - %t284 = getelementptr inbounds %S.gen.Place, ptr %t283, i32 0, i32 0 - %t285 = load { ptr, i64, i64 }, ptr %t284 - store { ptr, i64, i64 } %t285, ptr %a286 - call void @finch_str_copy(ptr %a287, ptr %a286) - %t288 = load { ptr, i64, i64 }, ptr %a287 - %t289 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t288, 0 - %t290 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 1 - %t291 = load { ptr, i64, i64 }, ptr %t290 - %t292 = extractvalue { ptr, i64, i64 } %t291, 1 - %t293 = icmp uge i64 0, %t292 - br i1 %t293, label %range6696, label %inrange6697 -range6696: - call void @finch_panic_index(ptr @.str.4345, i64 3714, i64 0, i64 %t292) + call void @finch.gen.panicIf(ptr %t203, { ptr, i64, i64 } %t215, { ptr, i64, i64 } %t227, %S.ast.Node %t228) + store { ptr, i64, i64 } %t215, ptr %a229 + call void @finch_str_drop(ptr %a229) + store { ptr, i64, i64 } %t227, ptr %a230 + call void @finch_str_drop(ptr %a230) + %t231 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 1 + %t232 = load { ptr, i64, i64 }, ptr %t231 + %t233 = extractvalue { ptr, i64, i64 } %t232, 1 + %t234 = icmp uge i64 0, %t233 + br i1 %t234, label %range7050, label %inrange7051 +range7050: + call void @finch_panic_index(ptr @.str.4533, i64 3914, i64 0, i64 %t233) unreachable -inrange6697: - %t294 = extractvalue { ptr, i64, i64 } %t291, 0 - %t295 = getelementptr inbounds %S.ast.Type, ptr %t294, i64 0 - %t296 = load %S.ast.Type, ptr %t295 - %t297 = call %S.ast.Type @finch.ast.ptrTo(%S.ast.Type %t296) - %t298 = insertvalue %S.gen.Val %t289, %S.ast.Type %t297, 1 - %t299 = insertvalue %S.gen.Ref %t282, %S.gen.Val %t298, 2 - call void @finch.drop.S_ast_Type(ptr %a42) - call void @finch.drop.S_gen_Ref(ptr %a35) - ret %S.gen.Ref %t299 -endif6683: - %t300 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 0 - %t301 = load { ptr, i64, i64 }, ptr %t300 - store { ptr, i64, i64 } %t301, ptr %a302 - store { ptr, i64, i64 } { ptr @.str.4346, i64 5, i64 0 }, ptr %a303 - %t304 = call i32 @finch_str_eq(ptr %a302, ptr %a303) - %t305 = icmp ne i32 %t304, 0 - br label %logic.from6698 -logic.from6698: - br i1 %t305, label %logic.end6700, label %logic.rhs6699 -logic.rhs6699: - %t306 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 0 - %t307 = load { ptr, i64, i64 }, ptr %t306 - store { ptr, i64, i64 } %t307, ptr %a308 - store { ptr, i64, i64 } { ptr @.str.4347, i64 3, i64 0 }, ptr %a309 - %t310 = call i32 @finch_str_eq(ptr %a308, ptr %a309) - %t311 = icmp ne i32 %t310, 0 - br label %logic.rend6701 -logic.rend6701: - br label %logic.end6700 -logic.end6700: - %t312 = phi i1 [ true, %logic.from6698 ], [ %t311, %logic.rend6701 ] - br label %logic.from6702 -logic.from6702: - br i1 %t312, label %logic.rhs6703, label %logic.end6704 -logic.rhs6703: - %t313 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t314 = load { ptr, i64, i64 }, ptr %t313 - store { ptr, i64, i64 } %t314, ptr %a315 - store { ptr, i64, i64 } { ptr @.str.4348, i64 3, i64 0 }, ptr %a316 - %t317 = call i32 @finch_str_eq(ptr %a315, ptr %a316) - %t318 = icmp ne i32 %t317, 0 - br label %logic.rend6705 -logic.rend6705: - br label %logic.end6704 -logic.end6704: - %t319 = phi i1 [ false, %logic.from6702 ], [ %t318, %logic.rend6705 ] - br i1 %t319, label %then6706, label %endif6708 -then6706: - %t320 = load i1, ptr %a3 - br i1 %t320, label %then6709, label %endif6711 -then6709: - %t321 = load ptr, ptr %a1 - %t322 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t321, %S.ast.Node %t322, { ptr, i64, i64 } { ptr @.str.4349, i64 30, i64 0 }) - br label %endif6711 -endif6711: - %t323 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 0 - %t324 = load i1, ptr %t323 - %t325 = xor i1 %t324, true - br label %logic.from6712 -logic.from6712: - br i1 %t325, label %logic.rhs6713, label %logic.end6714 -logic.rhs6713: - %t326 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 2 - %t327 = getelementptr inbounds %S.gen.Val, ptr %t326, i32 0, i32 2 - %t328 = load i1, ptr %t327 - br label %logic.rend6715 -logic.rend6715: - br label %logic.end6714 -logic.end6714: - %t329 = phi i1 [ false, %logic.from6712 ], [ %t328, %logic.rend6715 ] - br label %logic.from6716 -logic.from6716: - br i1 %t329, label %logic.rhs6717, label %logic.end6718 -logic.rhs6717: - %t330 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 2 - %t331 = getelementptr inbounds %S.gen.Val, ptr %t330, i32 0, i32 0 - %t332 = load { ptr, i64, i64 }, ptr %t331 - store { ptr, i64, i64 } %t332, ptr %a333 - store { ptr, i64, i64 } { ptr @.str.4351, i64 1, i64 0 }, ptr %a335 - %t336 = call i32 @finch_str_starts(ptr %a333, ptr %a335) - %t337 = icmp ne i32 %t336, 0 - br label %logic.rend6719 -logic.rend6719: - br label %logic.end6718 -logic.end6718: - %t338 = phi i1 [ false, %logic.from6716 ], [ %t337, %logic.rend6719 ] - br i1 %t338, label %then6720, label %endif6722 -then6720: - %t339 = load ptr, ptr %a1 - %t340 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t339, %S.ast.Node %t340, { ptr, i64, i64 } { ptr @.str.4352, i64 53, i64 0 }) - br label %endif6722 -endif6722: - %t341 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 2 - %t342 = getelementptr inbounds %S.gen.Val, ptr %t341, i32 0, i32 0 +inrange7051: + %t235 = extractvalue { ptr, i64, i64 } %t232, 0 + %t236 = getelementptr inbounds %S.ast.Type, ptr %t235, i64 0 + %t237 = load %S.ast.Type, ptr %t236 + store %S.ast.Type %t237, ptr %a238 + call void @finch.copy.S_ast_Type(ptr %a239, ptr %a238) + %t240 = load %S.ast.Type, ptr %a239 + store %S.ast.Type %t240, ptr %a241 + store i1 false, ptr %a242 + %t243 = getelementptr inbounds %S.ast.Type, ptr %a241, i32 0, i32 0 + %t244 = load { ptr, i64, i64 }, ptr %t243 + store { ptr, i64, i64 } %t244, ptr %a245 + store { ptr, i64, i64 } { ptr @.str.4534, i64 6, i64 0 }, ptr %a246 + %t247 = call i32 @finch_str_eq(ptr %a245, ptr %a246) + %t248 = icmp ne i32 %t247, 0 + br i1 %t248, label %then7052, label %endif7054 +then7052: + %t249 = load ptr, ptr %a1 + %t250 = icmp eq ptr %t249, null + br i1 %t250, label %panic7055, label %ok7056 +panic7055: + call void @finch_panic(ptr @.str.4535, i64 3917, ptr @.str.4536) + unreachable +ok7056: + %t251 = getelementptr inbounds %S.gen.Gen, ptr %t249, i32 0, i32 16 + %t252 = load ptr, ptr %a1 + %t253 = getelementptr inbounds %S.ast.Type, ptr %a241, i32 0, i32 3 + %t254 = load { ptr, i64, i64 }, ptr %t253 + %t255 = getelementptr inbounds %S.ast.Type, ptr %a241, i32 0, i32 2 + %t256 = load { ptr, i64, i64 }, ptr %t255 + %t257 = call i64 @finch.gen.findStruct(ptr %t252, { ptr, i64, i64 } %t254, { ptr, i64, i64 } %t256) + %t258 = load { ptr, i64, i64 }, ptr %t251 + %t259 = extractvalue { ptr, i64, i64 } %t258, 1 + %t260 = icmp uge i64 %t257, %t259 + br i1 %t260, label %range7057, label %inrange7058 +range7057: + call void @finch_panic_index(ptr @.str.4537, i64 3917, i64 %t257, i64 %t259) + unreachable +inrange7058: + %t261 = extractvalue { ptr, i64, i64 } %t258, 0 + %t262 = getelementptr inbounds %S.gen.StructDef, ptr %t261, i64 %t257 + %t263 = getelementptr inbounds %S.gen.StructDef, ptr %t262, i32 0, i32 11 + %t264 = getelementptr inbounds { ptr, i64, i64 }, ptr %t263, i32 0, i32 1 + store i64 -1, ptr %a265 + %t266 = load i64, ptr %t264 + %t267 = load ptr, ptr %t263 + store i64 0, ptr %a268 + br label %find.cond7059 +find.cond7059: + %t269 = load i64, ptr %a268 + %t270 = icmp slt i64 %t269, %t266 + br i1 %t270, label %find.body7060, label %find.end7063 +find.body7060: + %t271 = getelementptr inbounds { ptr, i64, i64 }, ptr %t267, i64 %t269 + %t272 = load { ptr, i64, i64 }, ptr %t271 + store { ptr, i64, i64 } %t272, ptr %a273 + store { ptr, i64, i64 } { ptr @.str.4538, i64 5, i64 0 }, ptr %a274 + %t275 = call i32 @finch_str_eq(ptr %a273, ptr %a274) + %t276 = icmp ne i32 %t275, 0 + br i1 %t276, label %find.hit7061, label %find.next7062 +find.hit7061: + store i64 %t269, ptr %a265 + br label %find.end7063 +find.next7062: + %t277 = add i64 %t269, 1 + store i64 %t277, ptr %a268 + br label %find.cond7059 +find.end7063: + %t278 = load i64, ptr %a265 + %t279 = icmp sge i64 %t278, 0 + store i1 %t279, ptr %a242 + br label %endif7054 +endif7054: + %t280 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t281 = load { ptr, i64, i64 }, ptr %t280 + store { ptr, i64, i64 } %t281, ptr %a282 + store { ptr, i64, i64 } { ptr @.str.4539, i64 5, i64 0 }, ptr %a283 + %t284 = call i32 @finch_str_eq(ptr %a282, ptr %a283) + %t285 = icmp ne i32 %t284, 0 + br label %logic.from7064 +logic.from7064: + br i1 %t285, label %logic.rhs7065, label %logic.end7066 +logic.rhs7065: + %t286 = load i1, ptr %a242 + %t287 = xor i1 %t286, true + br label %logic.rend7067 +logic.rend7067: + br label %logic.end7066 +logic.end7066: + %t288 = phi i1 [ false, %logic.from7064 ], [ %t287, %logic.rend7067 ] + br i1 %t288, label %then7068, label %endif7070 +then7068: + %t289 = insertvalue %S.gen.Ref zeroinitializer, i1 true, 0 + %t290 = load { ptr, i64, i64 }, ptr %a187 + store { ptr, i64, i64 } %t290, ptr %a291 + call void @finch_str_copy(ptr %a292, ptr %a291) + %t293 = load { ptr, i64, i64 }, ptr %a292 + %t294 = insertvalue %S.gen.Place zeroinitializer, { ptr, i64, i64 } %t293, 0 + %t295 = load %S.ast.Type, ptr %a241 + store %S.ast.Type %t295, ptr %a296 + call void @finch.copy.S_ast_Type(ptr %a297, ptr %a296) + %t298 = load %S.ast.Type, ptr %a297 + %t299 = insertvalue %S.gen.Place %t294, %S.ast.Type %t298, 1 + %t300 = insertvalue %S.gen.Ref %t289, %S.gen.Place %t299, 1 + call void @finch.drop.S_ast_Type(ptr %a241) + call void @finch_str_drop(ptr %a187) + call void @finch.drop.S_ast_Type(ptr %a164) + call void @finch.drop.S_gen_Ref(ptr %a157) + ret %S.gen.Ref %t300 +endif7070: + %t301 = getelementptr inbounds %S.ast.Type, ptr %a241, i32 0, i32 0 + %t302 = load { ptr, i64, i64 }, ptr %t301 + store { ptr, i64, i64 } %t302, ptr %a303 + store { ptr, i64, i64 } { ptr @.str.4540, i64 6, i64 0 }, ptr %a304 + %t305 = call i32 @finch_str_eq(ptr %a303, ptr %a304) + %t306 = icmp eq i32 %t305, 0 + br i1 %t306, label %then7071, label %endif7073 +then7071: + %t307 = load ptr, ptr %a1 + %t308 = load %S.ast.Node, ptr %a2 + %t309 = load %S.ast.Type, ptr %a164 + %t310 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t309) + store { ptr, i64, i64 } { ptr @.str.4541, i64 2, i64 0 }, ptr %a312 + store { ptr, i64, i64 } %t310, ptr %a313 + call void @finch_str_concat(ptr %a311, ptr %a312, ptr %a313) + store { ptr, i64, i64 } %t310, ptr %a314 + call void @finch_str_drop(ptr %a314) + %t315 = load { ptr, i64, i64 }, ptr %a311 + store { ptr, i64, i64 } %t315, ptr %a317 + store { ptr, i64, i64 } { ptr @.str.4542, i64 43, i64 0 }, ptr %a318 + call void @finch_str_concat(ptr %a316, ptr %a317, ptr %a318) + store { ptr, i64, i64 } %t315, ptr %a319 + call void @finch_str_drop(ptr %a319) + %t320 = load { ptr, i64, i64 }, ptr %a316 + call void @finch.gen.fail(ptr %t307, %S.ast.Node %t308, { ptr, i64, i64 } %t320) + store { ptr, i64, i64 } %t320, ptr %a321 + call void @finch_str_drop(ptr %a321) + br label %endif7073 +endif7073: + %t322 = insertvalue %S.gen.Ref zeroinitializer, i1 true, 0 + %t323 = load { ptr, i64, i64 }, ptr %a187 + store { ptr, i64, i64 } %t323, ptr %a324 + call void @finch_str_copy(ptr %a325, ptr %a324) + %t326 = load { ptr, i64, i64 }, ptr %a325 + %t327 = insertvalue %S.gen.Place zeroinitializer, { ptr, i64, i64 } %t326, 0 + %t328 = load %S.ast.Type, ptr %a241 + store %S.ast.Type %t328, ptr %a329 + call void @finch.copy.S_ast_Type(ptr %a330, ptr %a329) + %t331 = load %S.ast.Type, ptr %a330 + %t332 = insertvalue %S.gen.Place %t327, %S.ast.Type %t331, 1 + %t333 = insertvalue %S.gen.Ref %t322, %S.gen.Place %t332, 1 + %t334 = load %S.gen.Ref, ptr %a157 + store %S.gen.Ref %t333, ptr %a157 + store %S.gen.Ref %t334, ptr %a335 + call void @finch.drop.S_gen_Ref(ptr %a335) + %t336 = load %S.ast.Type, ptr %a241 + store %S.ast.Type %t336, ptr %a337 + call void @finch.copy.S_ast_Type(ptr %a338, ptr %a337) + %t339 = load %S.ast.Type, ptr %a338 + %t340 = load %S.ast.Type, ptr %a164 + store %S.ast.Type %t339, ptr %a164 + store %S.ast.Type %t340, ptr %a341 + call void @finch.drop.S_ast_Type(ptr %a341) + call void @finch.drop.S_ast_Type(ptr %a241) + call void @finch_str_drop(ptr %a187) + br label %endif7043 +endif7043: + %t342 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 0 %t343 = load { ptr, i64, i64 }, ptr %t342 store { ptr, i64, i64 } %t343, ptr %a344 - call void @finch_str_copy(ptr %a345, ptr %a344) - %t346 = load { ptr, i64, i64 }, ptr %a345 - store { ptr, i64, i64 } %t346, ptr %a347 - %t348 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 0 - %t349 = load i1, ptr %t348 - br i1 %t349, label %then6723, label %endif6725 -then6723: - %t350 = load ptr, ptr %a1 - %t351 = load ptr, ptr %a1 - %t352 = load %S.ast.Type, ptr %a42 - %t353 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t351, %S.ast.Type %t352) - %t354 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 1 - %t355 = getelementptr inbounds %S.gen.Place, ptr %t354, i32 0, i32 0 - %t356 = load { ptr, i64, i64 }, ptr %t355 - %t357 = call { ptr, i64, i64 } @finch.gen.load(ptr %t350, { ptr, i64, i64 } %t353, { ptr, i64, i64 } %t356) - store { ptr, i64, i64 } %t353, ptr %a358 - call void @finch_str_drop(ptr %a358) - %t359 = load { ptr, i64, i64 }, ptr %a347 - store { ptr, i64, i64 } %t357, ptr %a347 - store { ptr, i64, i64 } %t359, ptr %a360 + store { ptr, i64, i64 } { ptr @.str.4543, i64 5, i64 0 }, ptr %a345 + %t346 = call i32 @finch_str_eq(ptr %a344, ptr %a345) + %t347 = icmp ne i32 %t346, 0 + br i1 %t347, label %then7074, label %endif7076 +then7074: + %t348 = load i1, ptr %a3 + br i1 %t348, label %then7077, label %endif7079 +then7077: + %t349 = load ptr, ptr %a1 + %t350 = load %S.ast.Node, ptr %a2 + %t351 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t352 = load { ptr, i64, i64 }, ptr %t351 + store { ptr, i64, i64 } { ptr @.str.4544, i64 1, i64 0 }, ptr %a354 + store { ptr, i64, i64 } %t352, ptr %a355 + call void @finch_str_concat(ptr %a353, ptr %a354, ptr %a355) + %t356 = load { ptr, i64, i64 }, ptr %a353 + store { ptr, i64, i64 } %t356, ptr %a358 + store { ptr, i64, i64 } { ptr @.str.4545, i64 26, i64 0 }, ptr %a359 + call void @finch_str_concat(ptr %a357, ptr %a358, ptr %a359) + store { ptr, i64, i64 } %t356, ptr %a360 call void @finch_str_drop(ptr %a360) - br label %endif6725 -endif6725: - %t361 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 0 - %t362 = load { ptr, i64, i64 }, ptr %t361 - store { ptr, i64, i64 } %t362, ptr %a363 - store { ptr, i64, i64 } { ptr @.str.4353, i64 3, i64 0 }, ptr %a364 - %t365 = call i32 @finch_str_eq(ptr %a363, ptr %a364) - %t366 = icmp ne i32 %t365, 0 - br i1 %t366, label %then6726, label %endif6728 -then6726: - %t367 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 - %t368 = load ptr, ptr %a1 - %t369 = load { ptr, i64, i64 }, ptr %a347 - %t370 = call { ptr, i64, i64 } @finch.gen.cstr(ptr %t368, { ptr, i64, i64 } %t369) - %t371 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t370, 0 - %t372 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4354, i64 4, i64 0 }) - %t373 = call %S.ast.Type @finch.ast.ptrTo(%S.ast.Type %t372) - store %S.ast.Type %t372, ptr %a374 - call void @finch.drop.S_ast_Type(ptr %a374) - %t375 = insertvalue %S.gen.Val %t371, %S.ast.Type %t373, 1 - %t376 = insertvalue %S.gen.Ref %t367, %S.gen.Val %t375, 2 - call void @finch_str_drop(ptr %a347) - call void @finch.drop.S_ast_Type(ptr %a42) - call void @finch.drop.S_gen_Ref(ptr %a35) - ret %S.gen.Ref %t376 -endif6728: - %t377 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 - %t378 = load ptr, ptr %a1 - %t379 = load { ptr, i64, i64 }, ptr %a347 - store { ptr, i64, i64 } { ptr @.str.4355, i64 31, i64 0 }, ptr %a381 - store { ptr, i64, i64 } %t379, ptr %a382 - call void @finch_str_concat(ptr %a380, ptr %a381, ptr %a382) - %t383 = load { ptr, i64, i64 }, ptr %a380 - store { ptr, i64, i64 } %t383, ptr %a385 - store { ptr, i64, i64 } { ptr @.str.4356, i64 3, i64 0 }, ptr %a386 - call void @finch_str_concat(ptr %a384, ptr %a385, ptr %a386) - store { ptr, i64, i64 } %t383, ptr %a387 - call void @finch_str_drop(ptr %a387) - %t388 = load { ptr, i64, i64 }, ptr %a384 - %t389 = call { ptr, i64, i64 } @finch.gen.op(ptr %t378, { ptr, i64, i64 } %t388) - store { ptr, i64, i64 } %t388, ptr %a390 - call void @finch_str_drop(ptr %a390) - %t391 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t389, 0 - %t392 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 1 - %t393 = load { ptr, i64, i64 }, ptr %t392 - %t394 = extractvalue { ptr, i64, i64 } %t393, 1 - %t395 = icmp uge i64 0, %t394 - br i1 %t395, label %range6729, label %inrange6730 -range6729: - call void @finch_panic_index(ptr @.str.4357, i64 3732, i64 0, i64 %t394) + %t361 = load { ptr, i64, i64 }, ptr %a357 + call void @finch.gen.fail(ptr %t349, %S.ast.Node %t350, { ptr, i64, i64 } %t361) + store { ptr, i64, i64 } %t361, ptr %a362 + call void @finch_str_drop(ptr %a362) + br label %endif7079 +endif7079: + %t363 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t364 = load { ptr, i64, i64 }, ptr %t363 + store { ptr, i64, i64 } %t364, ptr %a365 + store { ptr, i64, i64 } { ptr @.str.4546, i64 3, i64 0 }, ptr %a366 + %t367 = call i32 @finch_str_eq(ptr %a365, ptr %a366) + %t368 = icmp ne i32 %t367, 0 + br i1 %t368, label %then7080, label %endif7082 +then7080: + %t369 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 + %t370 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 4 + %t371 = load i64, ptr %t370 + call void @finch_str_from_int(ptr %a372, i64 %t371) + %t373 = load { ptr, i64, i64 }, ptr %a372 + %t374 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t373, 0 + %t375 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4547, i64 3, i64 0 }) + %t376 = insertvalue %S.gen.Val %t374, %S.ast.Type %t375, 1 + %t377 = insertvalue %S.gen.Val %t376, i1 true, 3 + %t378 = insertvalue %S.gen.Ref %t369, %S.gen.Val %t377, 2 + call void @finch.drop.S_ast_Type(ptr %a164) + call void @finch.drop.S_gen_Ref(ptr %a157) + ret %S.gen.Ref %t378 +endif7082: + %t379 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t380 = load { ptr, i64, i64 }, ptr %t379 + store { ptr, i64, i64 } %t380, ptr %a381 + store { ptr, i64, i64 } { ptr @.str.4548, i64 3, i64 0 }, ptr %a382 + %t383 = call i32 @finch_str_eq(ptr %a381, ptr %a382) + %t384 = icmp eq i32 %t383, 0 + br i1 %t384, label %then7083, label %endif7085 +then7083: + %t385 = load ptr, ptr %a1 + %t386 = load %S.ast.Node, ptr %a2 + %t387 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t388 = load { ptr, i64, i64 }, ptr %t387 + store { ptr, i64, i64 } { ptr @.str.4549, i64 34, i64 0 }, ptr %a390 + store { ptr, i64, i64 } %t388, ptr %a391 + call void @finch_str_concat(ptr %a389, ptr %a390, ptr %a391) + %t392 = load { ptr, i64, i64 }, ptr %a389 + store { ptr, i64, i64 } %t392, ptr %a394 + store { ptr, i64, i64 } { ptr @.str.4550, i64 1, i64 0 }, ptr %a395 + call void @finch_str_concat(ptr %a393, ptr %a394, ptr %a395) + store { ptr, i64, i64 } %t392, ptr %a396 + call void @finch_str_drop(ptr %a396) + %t397 = load { ptr, i64, i64 }, ptr %a393 + call void @finch.gen.fail(ptr %t385, %S.ast.Node %t386, { ptr, i64, i64 } %t397) + store { ptr, i64, i64 } %t397, ptr %a398 + call void @finch_str_drop(ptr %a398) + br label %endif7085 +endif7085: + %t399 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 0 + %t400 = load i1, ptr %t399 + %t401 = xor i1 %t400, true + br i1 %t401, label %then7086, label %endif7088 +then7086: + %t402 = load ptr, ptr %a1 + %t403 = load %S.ast.Node, ptr %a2 + call void @finch.gen.fail(ptr %t402, %S.ast.Node %t403, { ptr, i64, i64 } { ptr @.str.4551, i64 48, i64 0 }) + br label %endif7088 +endif7088: + %t404 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 + %t405 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 1 + %t406 = getelementptr inbounds %S.gen.Place, ptr %t405, i32 0, i32 0 + %t407 = load { ptr, i64, i64 }, ptr %t406 + store { ptr, i64, i64 } %t407, ptr %a408 + call void @finch_str_copy(ptr %a409, ptr %a408) + %t410 = load { ptr, i64, i64 }, ptr %a409 + %t411 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t410, 0 + %t412 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 1 + %t413 = load { ptr, i64, i64 }, ptr %t412 + %t414 = extractvalue { ptr, i64, i64 } %t413, 1 + %t415 = icmp uge i64 0, %t414 + br i1 %t415, label %range7089, label %inrange7090 +range7089: + call void @finch_panic_index(ptr @.str.4552, i64 3941, i64 0, i64 %t414) unreachable -inrange6730: - %t396 = extractvalue { ptr, i64, i64 } %t393, 0 - %t397 = getelementptr inbounds %S.ast.Type, ptr %t396, i64 0 - %t398 = load %S.ast.Type, ptr %t397 - %t399 = call %S.ast.Type @finch.ast.ptrTo(%S.ast.Type %t398) - %t400 = insertvalue %S.gen.Val %t391, %S.ast.Type %t399, 1 - %t401 = insertvalue %S.gen.Ref %t377, %S.gen.Val %t400, 2 - call void @finch_str_drop(ptr %a347) - call void @finch.drop.S_ast_Type(ptr %a42) - call void @finch.drop.S_gen_Ref(ptr %a35) - ret %S.gen.Ref %t401 -endif6708: - %t402 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 0 - %t403 = load { ptr, i64, i64 }, ptr %t402 - store { ptr, i64, i64 } %t403, ptr %a404 - store { ptr, i64, i64 } { ptr @.str.4358, i64 5, i64 0 }, ptr %a405 - %t406 = call i32 @finch_str_eq(ptr %a404, ptr %a405) - %t407 = icmp ne i32 %t406, 0 - br label %logic.from6731 -logic.from6731: - br i1 %t407, label %logic.end6733, label %logic.rhs6732 -logic.rhs6732: - %t408 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 0 - %t409 = load { ptr, i64, i64 }, ptr %t408 - store { ptr, i64, i64 } %t409, ptr %a410 - store { ptr, i64, i64 } { ptr @.str.4359, i64 3, i64 0 }, ptr %a411 - %t412 = call i32 @finch_str_eq(ptr %a410, ptr %a411) - %t413 = icmp ne i32 %t412, 0 - br label %logic.rend6734 -logic.rend6734: - br label %logic.end6733 -logic.end6733: - %t414 = phi i1 [ true, %logic.from6731 ], [ %t413, %logic.rend6734 ] - br label %logic.from6735 -logic.from6735: - br i1 %t414, label %logic.end6737, label %logic.rhs6736 -logic.rhs6736: - %t415 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 0 - %t416 = load { ptr, i64, i64 }, ptr %t415 - store { ptr, i64, i64 } %t416, ptr %a417 - store { ptr, i64, i64 } { ptr @.str.4360, i64 3, i64 0 }, ptr %a418 - %t419 = call i32 @finch_str_eq(ptr %a417, ptr %a418) - %t420 = icmp ne i32 %t419, 0 - br label %logic.rend6738 -logic.rend6738: - br label %logic.end6737 -logic.end6737: - %t421 = phi i1 [ true, %logic.from6735 ], [ %t420, %logic.rend6738 ] - br i1 %t421, label %then6739, label %endif6741 -then6739: - %t422 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 +inrange7090: + %t416 = extractvalue { ptr, i64, i64 } %t413, 0 + %t417 = getelementptr inbounds %S.ast.Type, ptr %t416, i64 0 + %t418 = load %S.ast.Type, ptr %t417 + %t419 = call %S.ast.Type @finch.ast.ptrTo(%S.ast.Type %t418) + %t420 = insertvalue %S.gen.Val %t411, %S.ast.Type %t419, 1 + %t421 = insertvalue %S.gen.Ref %t404, %S.gen.Val %t420, 2 + call void @finch.drop.S_ast_Type(ptr %a164) + call void @finch.drop.S_gen_Ref(ptr %a157) + ret %S.gen.Ref %t421 +endif7076: + %t422 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 0 %t423 = load { ptr, i64, i64 }, ptr %t422 store { ptr, i64, i64 } %t423, ptr %a424 - store { ptr, i64, i64 } { ptr @.str.4361, i64 3, i64 0 }, ptr %a425 + store { ptr, i64, i64 } { ptr @.str.4553, i64 5, i64 0 }, ptr %a425 %t426 = call i32 @finch_str_eq(ptr %a424, ptr %a425) - %t427 = icmp eq i32 %t426, 0 - br i1 %t427, label %then6742, label %endif6744 -then6742: - %t428 = load ptr, ptr %a1 - %t429 = load %S.ast.Node, ptr %a2 - %t430 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t431 = load { ptr, i64, i64 }, ptr %t430 - store { ptr, i64, i64 } { ptr @.str.4362, i64 37, i64 0 }, ptr %a433 - store { ptr, i64, i64 } %t431, ptr %a434 - call void @finch_str_concat(ptr %a432, ptr %a433, ptr %a434) - %t435 = load { ptr, i64, i64 }, ptr %a432 - store { ptr, i64, i64 } %t435, ptr %a437 - store { ptr, i64, i64 } { ptr @.str.4363, i64 1, i64 0 }, ptr %a438 - call void @finch_str_concat(ptr %a436, ptr %a437, ptr %a438) - store { ptr, i64, i64 } %t435, ptr %a439 - call void @finch_str_drop(ptr %a439) - %t440 = load { ptr, i64, i64 }, ptr %a436 - call void @finch.gen.fail(ptr %t428, %S.ast.Node %t429, { ptr, i64, i64 } %t440) - store { ptr, i64, i64 } %t440, ptr %a441 - call void @finch_str_drop(ptr %a441) - br label %endif6744 -endif6744: + %t427 = icmp ne i32 %t426, 0 + br label %logic.from7091 +logic.from7091: + br i1 %t427, label %logic.end7093, label %logic.rhs7092 +logic.rhs7092: + %t428 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 0 + %t429 = load { ptr, i64, i64 }, ptr %t428 + store { ptr, i64, i64 } %t429, ptr %a430 + store { ptr, i64, i64 } { ptr @.str.4554, i64 3, i64 0 }, ptr %a431 + %t432 = call i32 @finch_str_eq(ptr %a430, ptr %a431) + %t433 = icmp ne i32 %t432, 0 + br label %logic.rend7094 +logic.rend7094: + br label %logic.end7093 +logic.end7093: + %t434 = phi i1 [ true, %logic.from7091 ], [ %t433, %logic.rend7094 ] + br label %logic.from7095 +logic.from7095: + br i1 %t434, label %logic.rhs7096, label %logic.end7097 +logic.rhs7096: + %t435 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t436 = load { ptr, i64, i64 }, ptr %t435 + store { ptr, i64, i64 } %t436, ptr %a437 + store { ptr, i64, i64 } { ptr @.str.4555, i64 3, i64 0 }, ptr %a438 + %t439 = call i32 @finch_str_eq(ptr %a437, ptr %a438) + %t440 = icmp ne i32 %t439, 0 + br label %logic.rend7098 +logic.rend7098: + br label %logic.end7097 +logic.end7097: + %t441 = phi i1 [ false, %logic.from7095 ], [ %t440, %logic.rend7098 ] + br i1 %t441, label %then7099, label %endif7101 +then7099: %t442 = load i1, ptr %a3 - br i1 %t442, label %then6745, label %endif6747 -then6745: + br i1 %t442, label %then7102, label %endif7104 +then7102: %t443 = load ptr, ptr %a1 %t444 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t443, %S.ast.Node %t444, { ptr, i64, i64 } { ptr @.str.4364, i64 48, i64 0 }) - br label %endif6747 -endif6747: - %t445 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 0 + call void @finch.gen.fail(ptr %t443, %S.ast.Node %t444, { ptr, i64, i64 } { ptr @.str.4556, i64 30, i64 0 }) + br label %endif7104 +endif7104: + %t445 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 0 %t446 = load i1, ptr %t445 - br i1 %t446, label %then6748, label %endif6750 -then6748: - %t447 = load ptr, ptr %a1 - %t448 = load ptr, ptr %a1 - %t449 = load %S.ast.Type, ptr %a42 - %t450 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t448, %S.ast.Type %t449) - store { ptr, i64, i64 } { ptr @.str.4365, i64 23, i64 0 }, ptr %a452 - store { ptr, i64, i64 } %t450, ptr %a453 - call void @finch_str_concat(ptr %a451, ptr %a452, ptr %a453) - store { ptr, i64, i64 } %t450, ptr %a454 - call void @finch_str_drop(ptr %a454) - %t455 = load { ptr, i64, i64 }, ptr %a451 - store { ptr, i64, i64 } %t455, ptr %a457 - store { ptr, i64, i64 } { ptr @.str.4366, i64 6, i64 0 }, ptr %a458 - call void @finch_str_concat(ptr %a456, ptr %a457, ptr %a458) - store { ptr, i64, i64 } %t455, ptr %a459 - call void @finch_str_drop(ptr %a459) - %t460 = load { ptr, i64, i64 }, ptr %a456 - %t461 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 1 - %t462 = getelementptr inbounds %S.gen.Place, ptr %t461, i32 0, i32 0 - %t463 = load { ptr, i64, i64 }, ptr %t462 - store { ptr, i64, i64 } %t460, ptr %a465 - store { ptr, i64, i64 } %t463, ptr %a466 - call void @finch_str_concat(ptr %a464, ptr %a465, ptr %a466) - store { ptr, i64, i64 } %t460, ptr %a467 - call void @finch_str_drop(ptr %a467) - %t468 = load { ptr, i64, i64 }, ptr %a464 - store { ptr, i64, i64 } %t468, ptr %a470 - store { ptr, i64, i64 } { ptr @.str.4367, i64 14, i64 0 }, ptr %a471 - call void @finch_str_concat(ptr %a469, ptr %a470, ptr %a471) - store { ptr, i64, i64 } %t468, ptr %a472 - call void @finch_str_drop(ptr %a472) - %t473 = load { ptr, i64, i64 }, ptr %a469 - %t474 = call { ptr, i64, i64 } @finch.gen.op(ptr %t447, { ptr, i64, i64 } %t473) - store { ptr, i64, i64 } %t473, ptr %a475 - call void @finch_str_drop(ptr %a475) - store { ptr, i64, i64 } %t474, ptr %a476 - %t477 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 - %t478 = load ptr, ptr %a1 - %t479 = load { ptr, i64, i64 }, ptr %a476 - %t480 = call { ptr, i64, i64 } @finch.gen.load(ptr %t478, { ptr, i64, i64 } { ptr @.str.4368, i64 3, i64 0 }, { ptr, i64, i64 } %t479) - %t481 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t480, 0 - %t482 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4369, i64 3, i64 0 }) - %t483 = insertvalue %S.gen.Val %t481, %S.ast.Type %t482, 1 - %t484 = insertvalue %S.gen.Ref %t477, %S.gen.Val %t483, 2 - call void @finch_str_drop(ptr %a476) - call void @finch.drop.S_ast_Type(ptr %a42) - call void @finch.drop.S_gen_Ref(ptr %a35) - ret %S.gen.Ref %t484 -endif6750: - %t485 = load ptr, ptr %a1 - %t486 = load ptr, ptr %a1 - %t487 = load %S.ast.Type, ptr %a42 - %t488 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t486, %S.ast.Type %t487) - store { ptr, i64, i64 } { ptr @.str.4370, i64 13, i64 0 }, ptr %a490 - store { ptr, i64, i64 } %t488, ptr %a491 - call void @finch_str_concat(ptr %a489, ptr %a490, ptr %a491) - store { ptr, i64, i64 } %t488, ptr %a492 - call void @finch_str_drop(ptr %a492) - %t493 = load { ptr, i64, i64 }, ptr %a489 - store { ptr, i64, i64 } %t493, ptr %a495 - store { ptr, i64, i64 } { ptr @.str.4371, i64 1, i64 0 }, ptr %a496 - call void @finch_str_concat(ptr %a494, ptr %a495, ptr %a496) - store { ptr, i64, i64 } %t493, ptr %a497 - call void @finch_str_drop(ptr %a497) - %t498 = load { ptr, i64, i64 }, ptr %a494 - %t499 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 2 - %t500 = getelementptr inbounds %S.gen.Val, ptr %t499, i32 0, i32 0 - %t501 = load { ptr, i64, i64 }, ptr %t500 - store { ptr, i64, i64 } %t498, ptr %a503 + %t447 = xor i1 %t446, true + br label %logic.from7105 +logic.from7105: + br i1 %t447, label %logic.rhs7106, label %logic.end7107 +logic.rhs7106: + %t448 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 2 + %t449 = getelementptr inbounds %S.gen.Val, ptr %t448, i32 0, i32 2 + %t450 = load i1, ptr %t449 + br label %logic.rend7108 +logic.rend7108: + br label %logic.end7107 +logic.end7107: + %t451 = phi i1 [ false, %logic.from7105 ], [ %t450, %logic.rend7108 ] + br label %logic.from7109 +logic.from7109: + br i1 %t451, label %logic.rhs7110, label %logic.end7111 +logic.rhs7110: + %t452 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 2 + %t453 = getelementptr inbounds %S.gen.Val, ptr %t452, i32 0, i32 0 + %t454 = load { ptr, i64, i64 }, ptr %t453 + store { ptr, i64, i64 } %t454, ptr %a455 + store { ptr, i64, i64 } { ptr @.str.4558, i64 1, i64 0 }, ptr %a457 + %t458 = call i32 @finch_str_starts(ptr %a455, ptr %a457) + %t459 = icmp ne i32 %t458, 0 + br label %logic.rend7112 +logic.rend7112: + br label %logic.end7111 +logic.end7111: + %t460 = phi i1 [ false, %logic.from7109 ], [ %t459, %logic.rend7112 ] + br i1 %t460, label %then7113, label %endif7115 +then7113: + %t461 = load ptr, ptr %a1 + %t462 = load %S.ast.Node, ptr %a2 + call void @finch.gen.fail(ptr %t461, %S.ast.Node %t462, { ptr, i64, i64 } { ptr @.str.4559, i64 53, i64 0 }) + br label %endif7115 +endif7115: + %t463 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 2 + %t464 = getelementptr inbounds %S.gen.Val, ptr %t463, i32 0, i32 0 + %t465 = load { ptr, i64, i64 }, ptr %t464 + store { ptr, i64, i64 } %t465, ptr %a466 + call void @finch_str_copy(ptr %a467, ptr %a466) + %t468 = load { ptr, i64, i64 }, ptr %a467 + store { ptr, i64, i64 } %t468, ptr %a469 + %t470 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 0 + %t471 = load i1, ptr %t470 + br i1 %t471, label %then7116, label %endif7118 +then7116: + %t472 = load ptr, ptr %a1 + %t473 = load ptr, ptr %a1 + %t474 = load %S.ast.Type, ptr %a164 + %t475 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t473, %S.ast.Type %t474) + %t476 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 1 + %t477 = getelementptr inbounds %S.gen.Place, ptr %t476, i32 0, i32 0 + %t478 = load { ptr, i64, i64 }, ptr %t477 + %t479 = call { ptr, i64, i64 } @finch.gen.load(ptr %t472, { ptr, i64, i64 } %t475, { ptr, i64, i64 } %t478) + store { ptr, i64, i64 } %t475, ptr %a480 + call void @finch_str_drop(ptr %a480) + %t481 = load { ptr, i64, i64 }, ptr %a469 + store { ptr, i64, i64 } %t479, ptr %a469 + store { ptr, i64, i64 } %t481, ptr %a482 + call void @finch_str_drop(ptr %a482) + br label %endif7118 +endif7118: + %t483 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 0 + %t484 = load { ptr, i64, i64 }, ptr %t483 + store { ptr, i64, i64 } %t484, ptr %a485 + store { ptr, i64, i64 } { ptr @.str.4560, i64 3, i64 0 }, ptr %a486 + %t487 = call i32 @finch_str_eq(ptr %a485, ptr %a486) + %t488 = icmp ne i32 %t487, 0 + br i1 %t488, label %then7119, label %endif7121 +then7119: + %t489 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 + %t490 = load ptr, ptr %a1 + %t491 = load { ptr, i64, i64 }, ptr %a469 + %t492 = call { ptr, i64, i64 } @finch.gen.cstr(ptr %t490, { ptr, i64, i64 } %t491) + %t493 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t492, 0 + %t494 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4561, i64 4, i64 0 }) + %t495 = call %S.ast.Type @finch.ast.ptrTo(%S.ast.Type %t494) + store %S.ast.Type %t494, ptr %a496 + call void @finch.drop.S_ast_Type(ptr %a496) + %t497 = insertvalue %S.gen.Val %t493, %S.ast.Type %t495, 1 + %t498 = insertvalue %S.gen.Ref %t489, %S.gen.Val %t497, 2 + call void @finch_str_drop(ptr %a469) + call void @finch.drop.S_ast_Type(ptr %a164) + call void @finch.drop.S_gen_Ref(ptr %a157) + ret %S.gen.Ref %t498 +endif7121: + %t499 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 + %t500 = load ptr, ptr %a1 + %t501 = load { ptr, i64, i64 }, ptr %a469 + store { ptr, i64, i64 } { ptr @.str.4562, i64 31, i64 0 }, ptr %a503 store { ptr, i64, i64 } %t501, ptr %a504 call void @finch_str_concat(ptr %a502, ptr %a503, ptr %a504) - store { ptr, i64, i64 } %t498, ptr %a505 - call void @finch_str_drop(ptr %a505) - %t506 = load { ptr, i64, i64 }, ptr %a502 - store { ptr, i64, i64 } %t506, ptr %a508 - store { ptr, i64, i64 } { ptr @.str.4372, i64 3, i64 0 }, ptr %a509 - call void @finch_str_concat(ptr %a507, ptr %a508, ptr %a509) - store { ptr, i64, i64 } %t506, ptr %a510 - call void @finch_str_drop(ptr %a510) - %t511 = load { ptr, i64, i64 }, ptr %a507 - %t512 = call { ptr, i64, i64 } @finch.gen.op(ptr %t485, { ptr, i64, i64 } %t511) - store { ptr, i64, i64 } %t511, ptr %a513 - call void @finch_str_drop(ptr %a513) - store { ptr, i64, i64 } %t512, ptr %a514 - %t515 = load ptr, ptr %a1 - %t516 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 2 - %t517 = load %S.gen.Val, ptr %t516 - call void @finch.gen.release(ptr %t515, %S.gen.Val %t517) - %t518 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 - %t519 = load { ptr, i64, i64 }, ptr %a514 - store { ptr, i64, i64 } %t519, ptr %a520 - call void @finch_str_copy(ptr %a521, ptr %a520) - %t522 = load { ptr, i64, i64 }, ptr %a521 - %t523 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t522, 0 - %t524 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4373, i64 3, i64 0 }) - %t525 = insertvalue %S.gen.Val %t523, %S.ast.Type %t524, 1 - %t526 = insertvalue %S.gen.Ref %t518, %S.gen.Val %t525, 2 - call void @finch_str_drop(ptr %a514) - call void @finch.drop.S_ast_Type(ptr %a42) - call void @finch.drop.S_gen_Ref(ptr %a35) - ret %S.gen.Ref %t526 -endif6741: - %t527 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 0 - %t528 = load { ptr, i64, i64 }, ptr %t527 - store { ptr, i64, i64 } %t528, ptr %a529 - store { ptr, i64, i64 } { ptr @.str.4374, i64 6, i64 0 }, ptr %a530 - %t531 = call i32 @finch_str_eq(ptr %a529, ptr %a530) - %t532 = icmp eq i32 %t531, 0 - br i1 %t532, label %then6751, label %endif6753 -then6751: - %t533 = load ptr, ptr %a1 - %t534 = load %S.ast.Node, ptr %a2 - %t535 = load %S.ast.Type, ptr %a42 - %t536 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t535) - store { ptr, i64, i64 } %t536, ptr %a538 - store { ptr, i64, i64 } { ptr @.str.4375, i64 21, i64 0 }, ptr %a539 - call void @finch_str_concat(ptr %a537, ptr %a538, ptr %a539) - store { ptr, i64, i64 } %t536, ptr %a540 - call void @finch_str_drop(ptr %a540) - %t541 = load { ptr, i64, i64 }, ptr %a537 - %t542 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t543 = load { ptr, i64, i64 }, ptr %t542 - store { ptr, i64, i64 } %t541, ptr %a545 - store { ptr, i64, i64 } %t543, ptr %a546 - call void @finch_str_concat(ptr %a544, ptr %a545, ptr %a546) - store { ptr, i64, i64 } %t541, ptr %a547 - call void @finch_str_drop(ptr %a547) - %t548 = load { ptr, i64, i64 }, ptr %a544 - store { ptr, i64, i64 } %t548, ptr %a550 - store { ptr, i64, i64 } { ptr @.str.4376, i64 2, i64 0 }, ptr %a551 - call void @finch_str_concat(ptr %a549, ptr %a550, ptr %a551) - store { ptr, i64, i64 } %t548, ptr %a552 - call void @finch_str_drop(ptr %a552) - %t553 = load { ptr, i64, i64 }, ptr %a549 - call void @finch.gen.fail(ptr %t533, %S.ast.Node %t534, { ptr, i64, i64 } %t553) - store { ptr, i64, i64 } %t553, ptr %a554 - call void @finch_str_drop(ptr %a554) - br label %endif6753 -endif6753: - %t555 = load ptr, ptr %a1 - %t556 = icmp eq ptr %t555, null - br i1 %t556, label %panic6754, label %ok6755 -panic6754: - call void @finch_panic(ptr @.str.4377, i64 3752, ptr @.str.4378) + %t505 = load { ptr, i64, i64 }, ptr %a502 + store { ptr, i64, i64 } %t505, ptr %a507 + store { ptr, i64, i64 } { ptr @.str.4563, i64 3, i64 0 }, ptr %a508 + call void @finch_str_concat(ptr %a506, ptr %a507, ptr %a508) + store { ptr, i64, i64 } %t505, ptr %a509 + call void @finch_str_drop(ptr %a509) + %t510 = load { ptr, i64, i64 }, ptr %a506 + %t511 = call { ptr, i64, i64 } @finch.gen.op(ptr %t500, { ptr, i64, i64 } %t510) + store { ptr, i64, i64 } %t510, ptr %a512 + call void @finch_str_drop(ptr %a512) + %t513 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t511, 0 + %t514 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 1 + %t515 = load { ptr, i64, i64 }, ptr %t514 + %t516 = extractvalue { ptr, i64, i64 } %t515, 1 + %t517 = icmp uge i64 0, %t516 + br i1 %t517, label %range7122, label %inrange7123 +range7122: + call void @finch_panic_index(ptr @.str.4564, i64 3959, i64 0, i64 %t516) unreachable -ok6755: - %t557 = getelementptr inbounds %S.gen.Gen, ptr %t555, i32 0, i32 16 - %t558 = load ptr, ptr %a1 - %t559 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 3 - %t560 = load { ptr, i64, i64 }, ptr %t559 - %t561 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 2 - %t562 = load { ptr, i64, i64 }, ptr %t561 - %t563 = call i64 @finch.gen.findStruct(ptr %t558, { ptr, i64, i64 } %t560, { ptr, i64, i64 } %t562) - %t564 = load { ptr, i64, i64 }, ptr %t557 - %t565 = extractvalue { ptr, i64, i64 } %t564, 1 - %t566 = icmp uge i64 %t563, %t565 - br i1 %t566, label %range6756, label %inrange6757 -range6756: - call void @finch_panic_index(ptr @.str.4379, i64 3752, i64 %t563, i64 %t565) - unreachable -inrange6757: - %t567 = extractvalue { ptr, i64, i64 } %t564, 0 - %t568 = getelementptr inbounds %S.gen.StructDef, ptr %t567, i64 %t563 - %t569 = load %S.gen.StructDef, ptr %t568 - store %S.gen.StructDef %t569, ptr %a570 - call void @finch.copy.S_gen_StructDef(ptr %a571, ptr %a570) - %t572 = load %S.gen.StructDef, ptr %a571 - store %S.gen.StructDef %t572, ptr %a573 - %t574 = getelementptr inbounds %S.gen.StructDef, ptr %a573, i32 0, i32 11 - %t575 = getelementptr inbounds { ptr, i64, i64 }, ptr %t574, i32 0, i32 1 - %t576 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t577 = load { ptr, i64, i64 }, ptr %t576 - store i64 -1, ptr %a578 - %t579 = load i64, ptr %t575 - %t580 = load ptr, ptr %t574 - store i64 0, ptr %a581 - br label %find.cond6758 -find.cond6758: - %t582 = load i64, ptr %a581 - %t583 = icmp slt i64 %t582, %t579 - br i1 %t583, label %find.body6759, label %find.end6762 -find.body6759: - %t584 = getelementptr inbounds { ptr, i64, i64 }, ptr %t580, i64 %t582 +inrange7123: + %t518 = extractvalue { ptr, i64, i64 } %t515, 0 + %t519 = getelementptr inbounds %S.ast.Type, ptr %t518, i64 0 + %t520 = load %S.ast.Type, ptr %t519 + %t521 = call %S.ast.Type @finch.ast.ptrTo(%S.ast.Type %t520) + %t522 = insertvalue %S.gen.Val %t513, %S.ast.Type %t521, 1 + %t523 = insertvalue %S.gen.Ref %t499, %S.gen.Val %t522, 2 + call void @finch_str_drop(ptr %a469) + call void @finch.drop.S_ast_Type(ptr %a164) + call void @finch.drop.S_gen_Ref(ptr %a157) + ret %S.gen.Ref %t523 +endif7101: + %t524 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 0 + %t525 = load { ptr, i64, i64 }, ptr %t524 + store { ptr, i64, i64 } %t525, ptr %a526 + store { ptr, i64, i64 } { ptr @.str.4565, i64 5, i64 0 }, ptr %a527 + %t528 = call i32 @finch_str_eq(ptr %a526, ptr %a527) + %t529 = icmp ne i32 %t528, 0 + br label %logic.from7124 +logic.from7124: + br i1 %t529, label %logic.end7126, label %logic.rhs7125 +logic.rhs7125: + %t530 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 0 + %t531 = load { ptr, i64, i64 }, ptr %t530 + store { ptr, i64, i64 } %t531, ptr %a532 + store { ptr, i64, i64 } { ptr @.str.4566, i64 3, i64 0 }, ptr %a533 + %t534 = call i32 @finch_str_eq(ptr %a532, ptr %a533) + %t535 = icmp ne i32 %t534, 0 + br label %logic.rend7127 +logic.rend7127: + br label %logic.end7126 +logic.end7126: + %t536 = phi i1 [ true, %logic.from7124 ], [ %t535, %logic.rend7127 ] + br label %logic.from7128 +logic.from7128: + br i1 %t536, label %logic.end7130, label %logic.rhs7129 +logic.rhs7129: + %t537 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 0 + %t538 = load { ptr, i64, i64 }, ptr %t537 + store { ptr, i64, i64 } %t538, ptr %a539 + store { ptr, i64, i64 } { ptr @.str.4567, i64 3, i64 0 }, ptr %a540 + %t541 = call i32 @finch_str_eq(ptr %a539, ptr %a540) + %t542 = icmp ne i32 %t541, 0 + br label %logic.rend7131 +logic.rend7131: + br label %logic.end7130 +logic.end7130: + %t543 = phi i1 [ true, %logic.from7128 ], [ %t542, %logic.rend7131 ] + br i1 %t543, label %then7132, label %endif7134 +then7132: + %t544 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t545 = load { ptr, i64, i64 }, ptr %t544 + store { ptr, i64, i64 } %t545, ptr %a546 + store { ptr, i64, i64 } { ptr @.str.4568, i64 3, i64 0 }, ptr %a547 + %t548 = call i32 @finch_str_eq(ptr %a546, ptr %a547) + %t549 = icmp eq i32 %t548, 0 + br i1 %t549, label %then7135, label %endif7137 +then7135: + %t550 = load ptr, ptr %a1 + %t551 = load %S.ast.Node, ptr %a2 + %t552 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t553 = load { ptr, i64, i64 }, ptr %t552 + store { ptr, i64, i64 } { ptr @.str.4569, i64 37, i64 0 }, ptr %a555 + store { ptr, i64, i64 } %t553, ptr %a556 + call void @finch_str_concat(ptr %a554, ptr %a555, ptr %a556) + %t557 = load { ptr, i64, i64 }, ptr %a554 + store { ptr, i64, i64 } %t557, ptr %a559 + store { ptr, i64, i64 } { ptr @.str.4570, i64 1, i64 0 }, ptr %a560 + call void @finch_str_concat(ptr %a558, ptr %a559, ptr %a560) + store { ptr, i64, i64 } %t557, ptr %a561 + call void @finch_str_drop(ptr %a561) + %t562 = load { ptr, i64, i64 }, ptr %a558 + call void @finch.gen.fail(ptr %t550, %S.ast.Node %t551, { ptr, i64, i64 } %t562) + store { ptr, i64, i64 } %t562, ptr %a563 + call void @finch_str_drop(ptr %a563) + br label %endif7137 +endif7137: + %t564 = load i1, ptr %a3 + br i1 %t564, label %then7138, label %endif7140 +then7138: + %t565 = load ptr, ptr %a1 + %t566 = load %S.ast.Node, ptr %a2 + call void @finch.gen.fail(ptr %t565, %S.ast.Node %t566, { ptr, i64, i64 } { ptr @.str.4571, i64 48, i64 0 }) + br label %endif7140 +endif7140: + %t567 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 0 + %t568 = load i1, ptr %t567 + br i1 %t568, label %then7141, label %endif7143 +then7141: + %t569 = load ptr, ptr %a1 + %t570 = load ptr, ptr %a1 + %t571 = load %S.ast.Type, ptr %a164 + %t572 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t570, %S.ast.Type %t571) + store { ptr, i64, i64 } { ptr @.str.4572, i64 23, i64 0 }, ptr %a574 + store { ptr, i64, i64 } %t572, ptr %a575 + call void @finch_str_concat(ptr %a573, ptr %a574, ptr %a575) + store { ptr, i64, i64 } %t572, ptr %a576 + call void @finch_str_drop(ptr %a576) + %t577 = load { ptr, i64, i64 }, ptr %a573 + store { ptr, i64, i64 } %t577, ptr %a579 + store { ptr, i64, i64 } { ptr @.str.4573, i64 6, i64 0 }, ptr %a580 + call void @finch_str_concat(ptr %a578, ptr %a579, ptr %a580) + store { ptr, i64, i64 } %t577, ptr %a581 + call void @finch_str_drop(ptr %a581) + %t582 = load { ptr, i64, i64 }, ptr %a578 + %t583 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 1 + %t584 = getelementptr inbounds %S.gen.Place, ptr %t583, i32 0, i32 0 %t585 = load { ptr, i64, i64 }, ptr %t584 - store { ptr, i64, i64 } %t585, ptr %a586 - store { ptr, i64, i64 } %t577, ptr %a587 - %t588 = call i32 @finch_str_eq(ptr %a586, ptr %a587) - %t589 = icmp ne i32 %t588, 0 - br i1 %t589, label %find.hit6760, label %find.next6761 -find.hit6760: - store i64 %t582, ptr %a578 - br label %find.end6762 -find.next6761: - %t590 = add i64 %t582, 1 - store i64 %t590, ptr %a581 - br label %find.cond6758 -find.end6762: - %t591 = load i64, ptr %a578 - store i64 %t591, ptr %a592 - %t593 = load i64, ptr %a592 - %t594 = icmp slt i64 %t593, 0 - br i1 %t594, label %then6763, label %endif6765 -then6763: - %t595 = load ptr, ptr %a1 - %t596 = load %S.ast.Node, ptr %a2 - %t597 = load %S.ast.Type, ptr %a42 - %t598 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t597) - store { ptr, i64, i64 } { ptr @.str.4380, i64 11, i64 0 }, ptr %a600 - store { ptr, i64, i64 } %t598, ptr %a601 - call void @finch_str_concat(ptr %a599, ptr %a600, ptr %a601) - store { ptr, i64, i64 } %t598, ptr %a602 - call void @finch_str_drop(ptr %a602) - %t603 = load { ptr, i64, i64 }, ptr %a599 - store { ptr, i64, i64 } %t603, ptr %a605 - store { ptr, i64, i64 } { ptr @.str.4381, i64 15, i64 0 }, ptr %a606 - call void @finch_str_concat(ptr %a604, ptr %a605, ptr %a606) - store { ptr, i64, i64 } %t603, ptr %a607 - call void @finch_str_drop(ptr %a607) - %t608 = load { ptr, i64, i64 }, ptr %a604 - %t609 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t610 = load { ptr, i64, i64 }, ptr %t609 - store { ptr, i64, i64 } %t608, ptr %a612 + store { ptr, i64, i64 } %t582, ptr %a587 + store { ptr, i64, i64 } %t585, ptr %a588 + call void @finch_str_concat(ptr %a586, ptr %a587, ptr %a588) + store { ptr, i64, i64 } %t582, ptr %a589 + call void @finch_str_drop(ptr %a589) + %t590 = load { ptr, i64, i64 }, ptr %a586 + store { ptr, i64, i64 } %t590, ptr %a592 + store { ptr, i64, i64 } { ptr @.str.4574, i64 14, i64 0 }, ptr %a593 + call void @finch_str_concat(ptr %a591, ptr %a592, ptr %a593) + store { ptr, i64, i64 } %t590, ptr %a594 + call void @finch_str_drop(ptr %a594) + %t595 = load { ptr, i64, i64 }, ptr %a591 + %t596 = call { ptr, i64, i64 } @finch.gen.op(ptr %t569, { ptr, i64, i64 } %t595) + store { ptr, i64, i64 } %t595, ptr %a597 + call void @finch_str_drop(ptr %a597) + store { ptr, i64, i64 } %t596, ptr %a598 + %t599 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 + %t600 = load ptr, ptr %a1 + %t601 = load { ptr, i64, i64 }, ptr %a598 + %t602 = call { ptr, i64, i64 } @finch.gen.load(ptr %t600, { ptr, i64, i64 } { ptr @.str.4575, i64 3, i64 0 }, { ptr, i64, i64 } %t601) + %t603 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t602, 0 + %t604 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4576, i64 3, i64 0 }) + %t605 = insertvalue %S.gen.Val %t603, %S.ast.Type %t604, 1 + %t606 = insertvalue %S.gen.Ref %t599, %S.gen.Val %t605, 2 + call void @finch_str_drop(ptr %a598) + call void @finch.drop.S_ast_Type(ptr %a164) + call void @finch.drop.S_gen_Ref(ptr %a157) + ret %S.gen.Ref %t606 +endif7143: + %t607 = load ptr, ptr %a1 + %t608 = load ptr, ptr %a1 + %t609 = load %S.ast.Type, ptr %a164 + %t610 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t608, %S.ast.Type %t609) + store { ptr, i64, i64 } { ptr @.str.4577, i64 13, i64 0 }, ptr %a612 store { ptr, i64, i64 } %t610, ptr %a613 call void @finch_str_concat(ptr %a611, ptr %a612, ptr %a613) - store { ptr, i64, i64 } %t608, ptr %a614 + store { ptr, i64, i64 } %t610, ptr %a614 call void @finch_str_drop(ptr %a614) %t615 = load { ptr, i64, i64 }, ptr %a611 store { ptr, i64, i64 } %t615, ptr %a617 - store { ptr, i64, i64 } { ptr @.str.4382, i64 11, i64 0 }, ptr %a618 + store { ptr, i64, i64 } { ptr @.str.4578, i64 1, i64 0 }, ptr %a618 call void @finch_str_concat(ptr %a616, ptr %a617, ptr %a618) store { ptr, i64, i64 } %t615, ptr %a619 call void @finch_str_drop(ptr %a619) %t620 = load { ptr, i64, i64 }, ptr %a616 - %t621 = getelementptr inbounds %S.gen.StructDef, ptr %a573, i32 0, i32 11 - %t622 = getelementptr inbounds { ptr, i64, i64 }, ptr %t621, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.4383, i64 2, i64 0 }, ptr %a623 - call void @finch_str_join(ptr %a624, ptr %t621, ptr %a623) - %t625 = load { ptr, i64, i64 }, ptr %a624 + %t621 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 2 + %t622 = getelementptr inbounds %S.gen.Val, ptr %t621, i32 0, i32 0 + %t623 = load { ptr, i64, i64 }, ptr %t622 + store { ptr, i64, i64 } %t620, ptr %a625 + store { ptr, i64, i64 } %t623, ptr %a626 + call void @finch_str_concat(ptr %a624, ptr %a625, ptr %a626) store { ptr, i64, i64 } %t620, ptr %a627 - store { ptr, i64, i64 } %t625, ptr %a628 - call void @finch_str_concat(ptr %a626, ptr %a627, ptr %a628) - store { ptr, i64, i64 } %t620, ptr %a629 - call void @finch_str_drop(ptr %a629) - store { ptr, i64, i64 } %t625, ptr %a630 - call void @finch_str_drop(ptr %a630) - %t631 = load { ptr, i64, i64 }, ptr %a626 - store { ptr, i64, i64 } %t631, ptr %a633 - store { ptr, i64, i64 } { ptr @.str.4384, i64 1, i64 0 }, ptr %a634 - call void @finch_str_concat(ptr %a632, ptr %a633, ptr %a634) - store { ptr, i64, i64 } %t631, ptr %a635 + call void @finch_str_drop(ptr %a627) + %t628 = load { ptr, i64, i64 }, ptr %a624 + store { ptr, i64, i64 } %t628, ptr %a630 + store { ptr, i64, i64 } { ptr @.str.4579, i64 3, i64 0 }, ptr %a631 + call void @finch_str_concat(ptr %a629, ptr %a630, ptr %a631) + store { ptr, i64, i64 } %t628, ptr %a632 + call void @finch_str_drop(ptr %a632) + %t633 = load { ptr, i64, i64 }, ptr %a629 + %t634 = call { ptr, i64, i64 } @finch.gen.op(ptr %t607, { ptr, i64, i64 } %t633) + store { ptr, i64, i64 } %t633, ptr %a635 call void @finch_str_drop(ptr %a635) - %t636 = load { ptr, i64, i64 }, ptr %a632 - call void @finch.gen.fail(ptr %t595, %S.ast.Node %t596, { ptr, i64, i64 } %t636) - store { ptr, i64, i64 } %t636, ptr %a637 - call void @finch_str_drop(ptr %a637) - br label %endif6765 -endif6765: - %t638 = getelementptr inbounds %S.gen.StructDef, ptr %a573, i32 0, i32 12 - %t639 = load i64, ptr %a592 - %t640 = load { ptr, i64, i64 }, ptr %t638 - %t641 = extractvalue { ptr, i64, i64 } %t640, 1 - %t642 = icmp uge i64 %t639, %t641 - br i1 %t642, label %range6766, label %inrange6767 -range6766: - call void @finch_panic_index(ptr @.str.4385, i64 3757, i64 %t639, i64 %t641) + store { ptr, i64, i64 } %t634, ptr %a636 + %t637 = load ptr, ptr %a1 + %t638 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 2 + %t639 = load %S.gen.Val, ptr %t638 + call void @finch.gen.release(ptr %t637, %S.gen.Val %t639) + %t640 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 + %t641 = load { ptr, i64, i64 }, ptr %a636 + store { ptr, i64, i64 } %t641, ptr %a642 + call void @finch_str_copy(ptr %a643, ptr %a642) + %t644 = load { ptr, i64, i64 }, ptr %a643 + %t645 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t644, 0 + %t646 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4580, i64 3, i64 0 }) + %t647 = insertvalue %S.gen.Val %t645, %S.ast.Type %t646, 1 + %t648 = insertvalue %S.gen.Ref %t640, %S.gen.Val %t647, 2 + call void @finch_str_drop(ptr %a636) + call void @finch.drop.S_ast_Type(ptr %a164) + call void @finch.drop.S_gen_Ref(ptr %a157) + ret %S.gen.Ref %t648 +endif7134: + %t649 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 0 + %t650 = load { ptr, i64, i64 }, ptr %t649 + store { ptr, i64, i64 } %t650, ptr %a651 + store { ptr, i64, i64 } { ptr @.str.4581, i64 6, i64 0 }, ptr %a652 + %t653 = call i32 @finch_str_eq(ptr %a651, ptr %a652) + %t654 = icmp eq i32 %t653, 0 + br i1 %t654, label %then7144, label %endif7146 +then7144: + %t655 = load ptr, ptr %a1 + %t656 = load %S.ast.Node, ptr %a2 + %t657 = load %S.ast.Type, ptr %a164 + %t658 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t657) + store { ptr, i64, i64 } %t658, ptr %a660 + store { ptr, i64, i64 } { ptr @.str.4582, i64 21, i64 0 }, ptr %a661 + call void @finch_str_concat(ptr %a659, ptr %a660, ptr %a661) + store { ptr, i64, i64 } %t658, ptr %a662 + call void @finch_str_drop(ptr %a662) + %t663 = load { ptr, i64, i64 }, ptr %a659 + %t664 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t665 = load { ptr, i64, i64 }, ptr %t664 + store { ptr, i64, i64 } %t663, ptr %a667 + store { ptr, i64, i64 } %t665, ptr %a668 + call void @finch_str_concat(ptr %a666, ptr %a667, ptr %a668) + store { ptr, i64, i64 } %t663, ptr %a669 + call void @finch_str_drop(ptr %a669) + %t670 = load { ptr, i64, i64 }, ptr %a666 + store { ptr, i64, i64 } %t670, ptr %a672 + store { ptr, i64, i64 } { ptr @.str.4583, i64 2, i64 0 }, ptr %a673 + call void @finch_str_concat(ptr %a671, ptr %a672, ptr %a673) + store { ptr, i64, i64 } %t670, ptr %a674 + call void @finch_str_drop(ptr %a674) + %t675 = load { ptr, i64, i64 }, ptr %a671 + call void @finch.gen.fail(ptr %t655, %S.ast.Node %t656, { ptr, i64, i64 } %t675) + store { ptr, i64, i64 } %t675, ptr %a676 + call void @finch_str_drop(ptr %a676) + br label %endif7146 +endif7146: + %t677 = load ptr, ptr %a1 + %t678 = icmp eq ptr %t677, null + br i1 %t678, label %panic7147, label %ok7148 +panic7147: + call void @finch_panic(ptr @.str.4584, i64 3979, ptr @.str.4585) unreachable -inrange6767: - %t643 = extractvalue { ptr, i64, i64 } %t640, 0 - %t644 = getelementptr inbounds %S.ast.Type, ptr %t643, i64 %t639 - %t645 = load %S.ast.Type, ptr %t644 - store %S.ast.Type %t645, ptr %a646 - call void @finch.copy.S_ast_Type(ptr %a647, ptr %a646) - %t648 = load %S.ast.Type, ptr %a647 - store %S.ast.Type %t648, ptr %a649 - %t650 = load ptr, ptr %a1 - %t651 = load %S.ast.Node, ptr %a2 - %t652 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 12 - %t653 = load i64, ptr %t652 - %t654 = add i64 %t653, 1 - %t655 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t656 = getelementptr inbounds { ptr, i64, i64 }, ptr %t655, i32 0, i32 1 - %t657 = load i64, ptr %t656 - %t658 = load %S.ast.Type, ptr %a649 - %t659 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t658) - store { ptr, i64, i64 } { ptr @.str.4386, i64 9, i64 0 }, ptr %a661 - store { ptr, i64, i64 } %t659, ptr %a662 - call void @finch_str_concat(ptr %a660, ptr %a661, ptr %a662) - store { ptr, i64, i64 } %t659, ptr %a663 - call void @finch_str_drop(ptr %a663) - %t664 = load { ptr, i64, i64 }, ptr %a660 - store { ptr, i64, i64 } %t664, ptr %a666 - store { ptr, i64, i64 } { ptr @.str.4387, i64 1, i64 0 }, ptr %a667 - call void @finch_str_concat(ptr %a665, ptr %a666, ptr %a667) - store { ptr, i64, i64 } %t664, ptr %a668 - call void @finch_str_drop(ptr %a668) - %t669 = load { ptr, i64, i64 }, ptr %a665 - %t670 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t671 = load { ptr, i64, i64 }, ptr %t670 - store { ptr, i64, i64 } %t669, ptr %a673 - store { ptr, i64, i64 } %t671, ptr %a674 - call void @finch_str_concat(ptr %a672, ptr %a673, ptr %a674) - store { ptr, i64, i64 } %t669, ptr %a675 - call void @finch_str_drop(ptr %a675) - %t676 = load { ptr, i64, i64 }, ptr %a672 - store { ptr, i64, i64 } %t676, ptr %a678 - store { ptr, i64, i64 } { ptr @.str.4388, i64 4, i64 0 }, ptr %a679 - call void @finch_str_concat(ptr %a677, ptr %a678, ptr %a679) - store { ptr, i64, i64 } %t676, ptr %a680 - call void @finch_str_drop(ptr %a680) - %t681 = load { ptr, i64, i64 }, ptr %a677 - call void @finch.gen.noteRef(ptr %t650, %S.ast.Node %t651, i64 %t654, i64 %t657, { ptr, i64, i64 } %t681, { ptr, i64, i64 } { ptr @.str.4389, i64 0, i64 0 }, i64 0, i64 0) - store { ptr, i64, i64 } %t681, ptr %a682 - call void @finch_str_drop(ptr %a682) - %t683 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 0 - %t684 = load i1, ptr %t683 - br i1 %t684, label %then6768, label %endif6770 -then6768: - %t685 = load ptr, ptr %a1 - %t686 = load ptr, ptr %a1 - %t687 = load %S.ast.Type, ptr %a42 - %t688 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t686, %S.ast.Type %t687) - store { ptr, i64, i64 } { ptr @.str.4390, i64 23, i64 0 }, ptr %a690 - store { ptr, i64, i64 } %t688, ptr %a691 - call void @finch_str_concat(ptr %a689, ptr %a690, ptr %a691) - store { ptr, i64, i64 } %t688, ptr %a692 - call void @finch_str_drop(ptr %a692) - %t693 = load { ptr, i64, i64 }, ptr %a689 - store { ptr, i64, i64 } %t693, ptr %a695 - store { ptr, i64, i64 } { ptr @.str.4391, i64 6, i64 0 }, ptr %a696 - call void @finch_str_concat(ptr %a694, ptr %a695, ptr %a696) - store { ptr, i64, i64 } %t693, ptr %a697 - call void @finch_str_drop(ptr %a697) - %t698 = load { ptr, i64, i64 }, ptr %a694 - %t699 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 1 - %t700 = getelementptr inbounds %S.gen.Place, ptr %t699, i32 0, i32 0 - %t701 = load { ptr, i64, i64 }, ptr %t700 - store { ptr, i64, i64 } %t698, ptr %a703 - store { ptr, i64, i64 } %t701, ptr %a704 - call void @finch_str_concat(ptr %a702, ptr %a703, ptr %a704) - store { ptr, i64, i64 } %t698, ptr %a705 - call void @finch_str_drop(ptr %a705) - %t706 = load { ptr, i64, i64 }, ptr %a702 - store { ptr, i64, i64 } %t706, ptr %a708 - store { ptr, i64, i64 } { ptr @.str.4392, i64 13, i64 0 }, ptr %a709 - call void @finch_str_concat(ptr %a707, ptr %a708, ptr %a709) - store { ptr, i64, i64 } %t706, ptr %a710 - call void @finch_str_drop(ptr %a710) - %t711 = load { ptr, i64, i64 }, ptr %a707 - %t712 = getelementptr inbounds %S.gen.StructDef, ptr %a573, i32 0, i32 3 - %t713 = load i64, ptr %a592 - %t714 = load { ptr, i64, i64 }, ptr %t712 - %t715 = extractvalue { ptr, i64, i64 } %t714, 1 - %t716 = icmp uge i64 %t713, %t715 - br i1 %t716, label %range6771, label %inrange6772 -range6771: - call void @finch_panic_index(ptr @.str.4393, i64 3760, i64 %t713, i64 %t715) +ok7148: + %t679 = getelementptr inbounds %S.gen.Gen, ptr %t677, i32 0, i32 16 + %t680 = load ptr, ptr %a1 + %t681 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 3 + %t682 = load { ptr, i64, i64 }, ptr %t681 + %t683 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 2 + %t684 = load { ptr, i64, i64 }, ptr %t683 + %t685 = call i64 @finch.gen.findStruct(ptr %t680, { ptr, i64, i64 } %t682, { ptr, i64, i64 } %t684) + %t686 = load { ptr, i64, i64 }, ptr %t679 + %t687 = extractvalue { ptr, i64, i64 } %t686, 1 + %t688 = icmp uge i64 %t685, %t687 + br i1 %t688, label %range7149, label %inrange7150 +range7149: + call void @finch_panic_index(ptr @.str.4586, i64 3979, i64 %t685, i64 %t687) unreachable -inrange6772: - %t717 = extractvalue { ptr, i64, i64 } %t714, 0 - %t718 = getelementptr inbounds i64, ptr %t717, i64 %t713 - %t719 = load i64, ptr %t718 - call void @finch_str_from_int(ptr %a720, i64 %t719) - %t721 = load { ptr, i64, i64 }, ptr %a720 - store { ptr, i64, i64 } %t711, ptr %a723 - store { ptr, i64, i64 } %t721, ptr %a724 - call void @finch_str_concat(ptr %a722, ptr %a723, ptr %a724) - store { ptr, i64, i64 } %t711, ptr %a725 - call void @finch_str_drop(ptr %a725) - store { ptr, i64, i64 } %t721, ptr %a726 - call void @finch_str_drop(ptr %a726) - %t727 = load { ptr, i64, i64 }, ptr %a722 - %t728 = call { ptr, i64, i64 } @finch.gen.op(ptr %t685, { ptr, i64, i64 } %t727) - store { ptr, i64, i64 } %t727, ptr %a729 +inrange7150: + %t689 = extractvalue { ptr, i64, i64 } %t686, 0 + %t690 = getelementptr inbounds %S.gen.StructDef, ptr %t689, i64 %t685 + %t691 = load %S.gen.StructDef, ptr %t690 + store %S.gen.StructDef %t691, ptr %a692 + call void @finch.copy.S_gen_StructDef(ptr %a693, ptr %a692) + %t694 = load %S.gen.StructDef, ptr %a693 + store %S.gen.StructDef %t694, ptr %a695 + %t696 = getelementptr inbounds %S.gen.StructDef, ptr %a695, i32 0, i32 11 + %t697 = getelementptr inbounds { ptr, i64, i64 }, ptr %t696, i32 0, i32 1 + %t698 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t699 = load { ptr, i64, i64 }, ptr %t698 + store i64 -1, ptr %a700 + %t701 = load i64, ptr %t697 + %t702 = load ptr, ptr %t696 + store i64 0, ptr %a703 + br label %find.cond7151 +find.cond7151: + %t704 = load i64, ptr %a703 + %t705 = icmp slt i64 %t704, %t701 + br i1 %t705, label %find.body7152, label %find.end7155 +find.body7152: + %t706 = getelementptr inbounds { ptr, i64, i64 }, ptr %t702, i64 %t704 + %t707 = load { ptr, i64, i64 }, ptr %t706 + store { ptr, i64, i64 } %t707, ptr %a708 + store { ptr, i64, i64 } %t699, ptr %a709 + %t710 = call i32 @finch_str_eq(ptr %a708, ptr %a709) + %t711 = icmp ne i32 %t710, 0 + br i1 %t711, label %find.hit7153, label %find.next7154 +find.hit7153: + store i64 %t704, ptr %a700 + br label %find.end7155 +find.next7154: + %t712 = add i64 %t704, 1 + store i64 %t712, ptr %a703 + br label %find.cond7151 +find.end7155: + %t713 = load i64, ptr %a700 + store i64 %t713, ptr %a714 + %t715 = load i64, ptr %a714 + %t716 = icmp slt i64 %t715, 0 + br i1 %t716, label %then7156, label %endif7158 +then7156: + %t717 = load ptr, ptr %a1 + %t718 = load %S.ast.Node, ptr %a2 + %t719 = load %S.ast.Type, ptr %a164 + %t720 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t719) + store { ptr, i64, i64 } { ptr @.str.4587, i64 11, i64 0 }, ptr %a722 + store { ptr, i64, i64 } %t720, ptr %a723 + call void @finch_str_concat(ptr %a721, ptr %a722, ptr %a723) + store { ptr, i64, i64 } %t720, ptr %a724 + call void @finch_str_drop(ptr %a724) + %t725 = load { ptr, i64, i64 }, ptr %a721 + store { ptr, i64, i64 } %t725, ptr %a727 + store { ptr, i64, i64 } { ptr @.str.4588, i64 15, i64 0 }, ptr %a728 + call void @finch_str_concat(ptr %a726, ptr %a727, ptr %a728) + store { ptr, i64, i64 } %t725, ptr %a729 call void @finch_str_drop(ptr %a729) - store { ptr, i64, i64 } %t728, ptr %a730 - %t731 = insertvalue %S.gen.Ref zeroinitializer, i1 true, 0 - %t732 = load { ptr, i64, i64 }, ptr %a730 - store { ptr, i64, i64 } %t732, ptr %a733 - call void @finch_str_copy(ptr %a734, ptr %a733) - %t735 = load { ptr, i64, i64 }, ptr %a734 - %t736 = insertvalue %S.gen.Place zeroinitializer, { ptr, i64, i64 } %t735, 0 - %t737 = load %S.ast.Type, ptr %a649 - store %S.ast.Type %t737, ptr %a738 - call void @finch.copy.S_ast_Type(ptr %a739, ptr %a738) - %t740 = load %S.ast.Type, ptr %a739 - %t741 = insertvalue %S.gen.Place %t736, %S.ast.Type %t740, 1 - %t742 = insertvalue %S.gen.Ref %t731, %S.gen.Place %t741, 1 - call void @finch_str_drop(ptr %a730) - call void @finch.drop.S_ast_Type(ptr %a649) - call void @finch.drop.S_gen_StructDef(ptr %a573) - call void @finch.drop.S_ast_Type(ptr %a42) - call void @finch.drop.S_gen_Ref(ptr %a35) - ret %S.gen.Ref %t742 -endif6770: - %t743 = load ptr, ptr %a1 - %t744 = load ptr, ptr %a1 - %t745 = load %S.ast.Type, ptr %a42 - %t746 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t744, %S.ast.Type %t745) - store { ptr, i64, i64 } { ptr @.str.4394, i64 13, i64 0 }, ptr %a748 - store { ptr, i64, i64 } %t746, ptr %a749 - call void @finch_str_concat(ptr %a747, ptr %a748, ptr %a749) - store { ptr, i64, i64 } %t746, ptr %a750 - call void @finch_str_drop(ptr %a750) - %t751 = load { ptr, i64, i64 }, ptr %a747 - store { ptr, i64, i64 } %t751, ptr %a753 - store { ptr, i64, i64 } { ptr @.str.4395, i64 1, i64 0 }, ptr %a754 - call void @finch_str_concat(ptr %a752, ptr %a753, ptr %a754) - store { ptr, i64, i64 } %t751, ptr %a755 - call void @finch_str_drop(ptr %a755) - %t756 = load { ptr, i64, i64 }, ptr %a752 - %t757 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 2 - %t758 = getelementptr inbounds %S.gen.Val, ptr %t757, i32 0, i32 0 - %t759 = load { ptr, i64, i64 }, ptr %t758 - store { ptr, i64, i64 } %t756, ptr %a761 - store { ptr, i64, i64 } %t759, ptr %a762 - call void @finch_str_concat(ptr %a760, ptr %a761, ptr %a762) - store { ptr, i64, i64 } %t756, ptr %a763 - call void @finch_str_drop(ptr %a763) - %t764 = load { ptr, i64, i64 }, ptr %a760 - store { ptr, i64, i64 } %t764, ptr %a766 - store { ptr, i64, i64 } { ptr @.str.4396, i64 2, i64 0 }, ptr %a767 - call void @finch_str_concat(ptr %a765, ptr %a766, ptr %a767) - store { ptr, i64, i64 } %t764, ptr %a768 - call void @finch_str_drop(ptr %a768) - %t769 = load { ptr, i64, i64 }, ptr %a765 - %t770 = getelementptr inbounds %S.gen.StructDef, ptr %a573, i32 0, i32 3 - %t771 = load i64, ptr %a592 - %t772 = load { ptr, i64, i64 }, ptr %t770 - %t773 = extractvalue { ptr, i64, i64 } %t772, 1 - %t774 = icmp uge i64 %t771, %t773 - br i1 %t774, label %range6773, label %inrange6774 -range6773: - call void @finch_panic_index(ptr @.str.4397, i64 3763, i64 %t771, i64 %t773) + %t730 = load { ptr, i64, i64 }, ptr %a726 + %t731 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t732 = load { ptr, i64, i64 }, ptr %t731 + store { ptr, i64, i64 } %t730, ptr %a734 + store { ptr, i64, i64 } %t732, ptr %a735 + call void @finch_str_concat(ptr %a733, ptr %a734, ptr %a735) + store { ptr, i64, i64 } %t730, ptr %a736 + call void @finch_str_drop(ptr %a736) + %t737 = load { ptr, i64, i64 }, ptr %a733 + store { ptr, i64, i64 } %t737, ptr %a739 + store { ptr, i64, i64 } { ptr @.str.4589, i64 11, i64 0 }, ptr %a740 + call void @finch_str_concat(ptr %a738, ptr %a739, ptr %a740) + store { ptr, i64, i64 } %t737, ptr %a741 + call void @finch_str_drop(ptr %a741) + %t742 = load { ptr, i64, i64 }, ptr %a738 + %t743 = getelementptr inbounds %S.gen.StructDef, ptr %a695, i32 0, i32 11 + %t744 = getelementptr inbounds { ptr, i64, i64 }, ptr %t743, i32 0, i32 1 + store { ptr, i64, i64 } { ptr @.str.4590, i64 2, i64 0 }, ptr %a745 + call void @finch_str_join(ptr %a746, ptr %t743, ptr %a745) + %t747 = load { ptr, i64, i64 }, ptr %a746 + store { ptr, i64, i64 } %t742, ptr %a749 + store { ptr, i64, i64 } %t747, ptr %a750 + call void @finch_str_concat(ptr %a748, ptr %a749, ptr %a750) + store { ptr, i64, i64 } %t742, ptr %a751 + call void @finch_str_drop(ptr %a751) + store { ptr, i64, i64 } %t747, ptr %a752 + call void @finch_str_drop(ptr %a752) + %t753 = load { ptr, i64, i64 }, ptr %a748 + store { ptr, i64, i64 } %t753, ptr %a755 + store { ptr, i64, i64 } { ptr @.str.4591, i64 1, i64 0 }, ptr %a756 + call void @finch_str_concat(ptr %a754, ptr %a755, ptr %a756) + store { ptr, i64, i64 } %t753, ptr %a757 + call void @finch_str_drop(ptr %a757) + %t758 = load { ptr, i64, i64 }, ptr %a754 + call void @finch.gen.fail(ptr %t717, %S.ast.Node %t718, { ptr, i64, i64 } %t758) + store { ptr, i64, i64 } %t758, ptr %a759 + call void @finch_str_drop(ptr %a759) + br label %endif7158 +endif7158: + %t760 = getelementptr inbounds %S.gen.StructDef, ptr %a695, i32 0, i32 12 + %t761 = load i64, ptr %a714 + %t762 = load { ptr, i64, i64 }, ptr %t760 + %t763 = extractvalue { ptr, i64, i64 } %t762, 1 + %t764 = icmp uge i64 %t761, %t763 + br i1 %t764, label %range7159, label %inrange7160 +range7159: + call void @finch_panic_index(ptr @.str.4592, i64 3984, i64 %t761, i64 %t763) unreachable -inrange6774: - %t775 = extractvalue { ptr, i64, i64 } %t772, 0 - %t776 = getelementptr inbounds i64, ptr %t775, i64 %t771 - %t777 = load i64, ptr %t776 - call void @finch_str_from_int(ptr %a778, i64 %t777) - %t779 = load { ptr, i64, i64 }, ptr %a778 - store { ptr, i64, i64 } %t769, ptr %a781 - store { ptr, i64, i64 } %t779, ptr %a782 - call void @finch_str_concat(ptr %a780, ptr %a781, ptr %a782) - store { ptr, i64, i64 } %t769, ptr %a783 - call void @finch_str_drop(ptr %a783) - store { ptr, i64, i64 } %t779, ptr %a784 - call void @finch_str_drop(ptr %a784) - %t785 = load { ptr, i64, i64 }, ptr %a780 - %t786 = call { ptr, i64, i64 } @finch.gen.op(ptr %t743, { ptr, i64, i64 } %t785) - store { ptr, i64, i64 } %t785, ptr %a787 - call void @finch_str_drop(ptr %a787) +inrange7160: + %t765 = extractvalue { ptr, i64, i64 } %t762, 0 + %t766 = getelementptr inbounds %S.ast.Type, ptr %t765, i64 %t761 + %t767 = load %S.ast.Type, ptr %t766 + store %S.ast.Type %t767, ptr %a768 + call void @finch.copy.S_ast_Type(ptr %a769, ptr %a768) + %t770 = load %S.ast.Type, ptr %a769 + store %S.ast.Type %t770, ptr %a771 + %t772 = load ptr, ptr %a1 + %t773 = load %S.ast.Node, ptr %a2 + %t774 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 12 + %t775 = load i64, ptr %t774 + %t776 = add i64 %t775, 1 + %t777 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t778 = getelementptr inbounds { ptr, i64, i64 }, ptr %t777, i32 0, i32 1 + %t779 = load i64, ptr %t778 + %t780 = load %S.ast.Type, ptr %a771 + %t781 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t780) + store { ptr, i64, i64 } { ptr @.str.4593, i64 9, i64 0 }, ptr %a783 + store { ptr, i64, i64 } %t781, ptr %a784 + call void @finch_str_concat(ptr %a782, ptr %a783, ptr %a784) + store { ptr, i64, i64 } %t781, ptr %a785 + call void @finch_str_drop(ptr %a785) + %t786 = load { ptr, i64, i64 }, ptr %a782 store { ptr, i64, i64 } %t786, ptr %a788 - %t789 = load { ptr, i64, i64 }, ptr %a788 - store { ptr, i64, i64 } %t789, ptr %a790 - call void @finch_str_copy(ptr %a791, ptr %a790) - %t792 = load { ptr, i64, i64 }, ptr %a791 - %t793 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t792, 0 - %t794 = load %S.ast.Type, ptr %a649 - store %S.ast.Type %t794, ptr %a795 - call void @finch.copy.S_ast_Type(ptr %a796, ptr %a795) - %t797 = load %S.ast.Type, ptr %a796 - %t798 = insertvalue %S.gen.Val %t793, %S.ast.Type %t797, 1 - store %S.gen.Val %t798, ptr %a799 - %t800 = load ptr, ptr %a1 - %t801 = load %S.ast.Type, ptr %a649 - %t802 = call i1 @finch.gen.owning(ptr %t800, %S.ast.Type %t801) - br label %logic.from6775 -logic.from6775: - br i1 %t802, label %logic.rhs6776, label %logic.end6777 -logic.rhs6776: - %t803 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 2 - %t804 = getelementptr inbounds %S.gen.Val, ptr %t803, i32 0, i32 2 - %t805 = load i1, ptr %t804 - br label %logic.rend6778 -logic.rend6778: - br label %logic.end6777 -logic.end6777: - %t806 = phi i1 [ false, %logic.from6775 ], [ %t805, %logic.rend6778 ] - br i1 %t806, label %then6779, label %endif6781 -then6779: + store { ptr, i64, i64 } { ptr @.str.4594, i64 1, i64 0 }, ptr %a789 + call void @finch_str_concat(ptr %a787, ptr %a788, ptr %a789) + store { ptr, i64, i64 } %t786, ptr %a790 + call void @finch_str_drop(ptr %a790) + %t791 = load { ptr, i64, i64 }, ptr %a787 + %t792 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t793 = load { ptr, i64, i64 }, ptr %t792 + store { ptr, i64, i64 } %t791, ptr %a795 + store { ptr, i64, i64 } %t793, ptr %a796 + call void @finch_str_concat(ptr %a794, ptr %a795, ptr %a796) + store { ptr, i64, i64 } %t791, ptr %a797 + call void @finch_str_drop(ptr %a797) + %t798 = load { ptr, i64, i64 }, ptr %a794 + store { ptr, i64, i64 } %t798, ptr %a800 + store { ptr, i64, i64 } { ptr @.str.4595, i64 4, i64 0 }, ptr %a801 + call void @finch_str_concat(ptr %a799, ptr %a800, ptr %a801) + store { ptr, i64, i64 } %t798, ptr %a802 + call void @finch_str_drop(ptr %a802) + %t803 = load { ptr, i64, i64 }, ptr %a799 + call void @finch.gen.noteRef(ptr %t772, %S.ast.Node %t773, i64 %t776, i64 %t779, { ptr, i64, i64 } %t803, { ptr, i64, i64 } { ptr @.str.4596, i64 0, i64 0 }, i64 0, i64 0) + store { ptr, i64, i64 } %t803, ptr %a804 + call void @finch_str_drop(ptr %a804) + %t805 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 0 + %t806 = load i1, ptr %t805 + br i1 %t806, label %then7161, label %endif7163 +then7161: %t807 = load ptr, ptr %a1 - %t808 = load { ptr, i64, i64 }, ptr %a788 - %t809 = load %S.ast.Type, ptr %a649 - %t810 = call { ptr, i64, i64 } @finch.gen.copyValue(ptr %t807, { ptr, i64, i64 } %t808, %S.ast.Type %t809) - %t811 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t810, 0 - %t812 = load %S.ast.Type, ptr %a649 - store %S.ast.Type %t812, ptr %a813 - call void @finch.copy.S_ast_Type(ptr %a814, ptr %a813) - %t815 = load %S.ast.Type, ptr %a814 - %t816 = insertvalue %S.gen.Val %t811, %S.ast.Type %t815, 1 - %t817 = insertvalue %S.gen.Val %t816, i1 true, 2 - %t818 = load %S.gen.Val, ptr %a799 - store %S.gen.Val %t817, ptr %a799 - store %S.gen.Val %t818, ptr %a819 - call void @finch.drop.S_gen_Val(ptr %a819) - br label %endif6781 -endif6781: - %t820 = load ptr, ptr %a1 - %t821 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 2 - %t822 = load %S.gen.Val, ptr %t821 - call void @finch.gen.release(ptr %t820, %S.gen.Val %t822) - %t823 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 - %t824 = load %S.gen.Val, ptr %a799 - store %S.gen.Val %t824, ptr %a825 - call void @finch.copy.S_gen_Val(ptr %a826, ptr %a825) - %t827 = load %S.gen.Val, ptr %a826 - %t828 = insertvalue %S.gen.Ref %t823, %S.gen.Val %t827, 2 - call void @finch.drop.S_gen_Val(ptr %a799) - call void @finch_str_drop(ptr %a788) - call void @finch.drop.S_ast_Type(ptr %a649) - call void @finch.drop.S_gen_StructDef(ptr %a573) - call void @finch.drop.S_ast_Type(ptr %a42) - call void @finch.drop.S_gen_Ref(ptr %a35) - ret %S.gen.Ref %t828 + %t808 = load ptr, ptr %a1 + %t809 = load %S.ast.Type, ptr %a164 + %t810 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t808, %S.ast.Type %t809) + store { ptr, i64, i64 } { ptr @.str.4597, i64 23, i64 0 }, ptr %a812 + store { ptr, i64, i64 } %t810, ptr %a813 + call void @finch_str_concat(ptr %a811, ptr %a812, ptr %a813) + store { ptr, i64, i64 } %t810, ptr %a814 + call void @finch_str_drop(ptr %a814) + %t815 = load { ptr, i64, i64 }, ptr %a811 + store { ptr, i64, i64 } %t815, ptr %a817 + store { ptr, i64, i64 } { ptr @.str.4598, i64 6, i64 0 }, ptr %a818 + call void @finch_str_concat(ptr %a816, ptr %a817, ptr %a818) + store { ptr, i64, i64 } %t815, ptr %a819 + call void @finch_str_drop(ptr %a819) + %t820 = load { ptr, i64, i64 }, ptr %a816 + %t821 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 1 + %t822 = getelementptr inbounds %S.gen.Place, ptr %t821, i32 0, i32 0 + %t823 = load { ptr, i64, i64 }, ptr %t822 + store { ptr, i64, i64 } %t820, ptr %a825 + store { ptr, i64, i64 } %t823, ptr %a826 + call void @finch_str_concat(ptr %a824, ptr %a825, ptr %a826) + store { ptr, i64, i64 } %t820, ptr %a827 + call void @finch_str_drop(ptr %a827) + %t828 = load { ptr, i64, i64 }, ptr %a824 + store { ptr, i64, i64 } %t828, ptr %a830 + store { ptr, i64, i64 } { ptr @.str.4599, i64 13, i64 0 }, ptr %a831 + call void @finch_str_concat(ptr %a829, ptr %a830, ptr %a831) + store { ptr, i64, i64 } %t828, ptr %a832 + call void @finch_str_drop(ptr %a832) + %t833 = load { ptr, i64, i64 }, ptr %a829 + %t834 = getelementptr inbounds %S.gen.StructDef, ptr %a695, i32 0, i32 3 + %t835 = load i64, ptr %a714 + %t836 = load { ptr, i64, i64 }, ptr %t834 + %t837 = extractvalue { ptr, i64, i64 } %t836, 1 + %t838 = icmp uge i64 %t835, %t837 + br i1 %t838, label %range7164, label %inrange7165 +range7164: + call void @finch_panic_index(ptr @.str.4600, i64 3987, i64 %t835, i64 %t837) + unreachable +inrange7165: + %t839 = extractvalue { ptr, i64, i64 } %t836, 0 + %t840 = getelementptr inbounds i64, ptr %t839, i64 %t835 + %t841 = load i64, ptr %t840 + call void @finch_str_from_int(ptr %a842, i64 %t841) + %t843 = load { ptr, i64, i64 }, ptr %a842 + store { ptr, i64, i64 } %t833, ptr %a845 + store { ptr, i64, i64 } %t843, ptr %a846 + call void @finch_str_concat(ptr %a844, ptr %a845, ptr %a846) + store { ptr, i64, i64 } %t833, ptr %a847 + call void @finch_str_drop(ptr %a847) + store { ptr, i64, i64 } %t843, ptr %a848 + call void @finch_str_drop(ptr %a848) + %t849 = load { ptr, i64, i64 }, ptr %a844 + %t850 = call { ptr, i64, i64 } @finch.gen.op(ptr %t807, { ptr, i64, i64 } %t849) + store { ptr, i64, i64 } %t849, ptr %a851 + call void @finch_str_drop(ptr %a851) + store { ptr, i64, i64 } %t850, ptr %a852 + %t853 = insertvalue %S.gen.Ref zeroinitializer, i1 true, 0 + %t854 = load { ptr, i64, i64 }, ptr %a852 + store { ptr, i64, i64 } %t854, ptr %a855 + call void @finch_str_copy(ptr %a856, ptr %a855) + %t857 = load { ptr, i64, i64 }, ptr %a856 + %t858 = insertvalue %S.gen.Place zeroinitializer, { ptr, i64, i64 } %t857, 0 + %t859 = load %S.ast.Type, ptr %a771 + store %S.ast.Type %t859, ptr %a860 + call void @finch.copy.S_ast_Type(ptr %a861, ptr %a860) + %t862 = load %S.ast.Type, ptr %a861 + %t863 = insertvalue %S.gen.Place %t858, %S.ast.Type %t862, 1 + %t864 = insertvalue %S.gen.Ref %t853, %S.gen.Place %t863, 1 + call void @finch_str_drop(ptr %a852) + call void @finch.drop.S_ast_Type(ptr %a771) + call void @finch.drop.S_gen_StructDef(ptr %a695) + call void @finch.drop.S_ast_Type(ptr %a164) + call void @finch.drop.S_gen_Ref(ptr %a157) + ret %S.gen.Ref %t864 +endif7163: + %t865 = load ptr, ptr %a1 + %t866 = load ptr, ptr %a1 + %t867 = load %S.ast.Type, ptr %a164 + %t868 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t866, %S.ast.Type %t867) + store { ptr, i64, i64 } { ptr @.str.4601, i64 13, i64 0 }, ptr %a870 + store { ptr, i64, i64 } %t868, ptr %a871 + call void @finch_str_concat(ptr %a869, ptr %a870, ptr %a871) + store { ptr, i64, i64 } %t868, ptr %a872 + call void @finch_str_drop(ptr %a872) + %t873 = load { ptr, i64, i64 }, ptr %a869 + store { ptr, i64, i64 } %t873, ptr %a875 + store { ptr, i64, i64 } { ptr @.str.4602, i64 1, i64 0 }, ptr %a876 + call void @finch_str_concat(ptr %a874, ptr %a875, ptr %a876) + store { ptr, i64, i64 } %t873, ptr %a877 + call void @finch_str_drop(ptr %a877) + %t878 = load { ptr, i64, i64 }, ptr %a874 + %t879 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 2 + %t880 = getelementptr inbounds %S.gen.Val, ptr %t879, i32 0, i32 0 + %t881 = load { ptr, i64, i64 }, ptr %t880 + store { ptr, i64, i64 } %t878, ptr %a883 + store { ptr, i64, i64 } %t881, ptr %a884 + call void @finch_str_concat(ptr %a882, ptr %a883, ptr %a884) + store { ptr, i64, i64 } %t878, ptr %a885 + call void @finch_str_drop(ptr %a885) + %t886 = load { ptr, i64, i64 }, ptr %a882 + store { ptr, i64, i64 } %t886, ptr %a888 + store { ptr, i64, i64 } { ptr @.str.4603, i64 2, i64 0 }, ptr %a889 + call void @finch_str_concat(ptr %a887, ptr %a888, ptr %a889) + store { ptr, i64, i64 } %t886, ptr %a890 + call void @finch_str_drop(ptr %a890) + %t891 = load { ptr, i64, i64 }, ptr %a887 + %t892 = getelementptr inbounds %S.gen.StructDef, ptr %a695, i32 0, i32 3 + %t893 = load i64, ptr %a714 + %t894 = load { ptr, i64, i64 }, ptr %t892 + %t895 = extractvalue { ptr, i64, i64 } %t894, 1 + %t896 = icmp uge i64 %t893, %t895 + br i1 %t896, label %range7166, label %inrange7167 +range7166: + call void @finch_panic_index(ptr @.str.4604, i64 3990, i64 %t893, i64 %t895) + unreachable +inrange7167: + %t897 = extractvalue { ptr, i64, i64 } %t894, 0 + %t898 = getelementptr inbounds i64, ptr %t897, i64 %t893 + %t899 = load i64, ptr %t898 + call void @finch_str_from_int(ptr %a900, i64 %t899) + %t901 = load { ptr, i64, i64 }, ptr %a900 + store { ptr, i64, i64 } %t891, ptr %a903 + store { ptr, i64, i64 } %t901, ptr %a904 + call void @finch_str_concat(ptr %a902, ptr %a903, ptr %a904) + store { ptr, i64, i64 } %t891, ptr %a905 + call void @finch_str_drop(ptr %a905) + store { ptr, i64, i64 } %t901, ptr %a906 + call void @finch_str_drop(ptr %a906) + %t907 = load { ptr, i64, i64 }, ptr %a902 + %t908 = call { ptr, i64, i64 } @finch.gen.op(ptr %t865, { ptr, i64, i64 } %t907) + store { ptr, i64, i64 } %t907, ptr %a909 + call void @finch_str_drop(ptr %a909) + store { ptr, i64, i64 } %t908, ptr %a910 + %t911 = load { ptr, i64, i64 }, ptr %a910 + store { ptr, i64, i64 } %t911, ptr %a912 + call void @finch_str_copy(ptr %a913, ptr %a912) + %t914 = load { ptr, i64, i64 }, ptr %a913 + %t915 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t914, 0 + %t916 = load %S.ast.Type, ptr %a771 + store %S.ast.Type %t916, ptr %a917 + call void @finch.copy.S_ast_Type(ptr %a918, ptr %a917) + %t919 = load %S.ast.Type, ptr %a918 + %t920 = insertvalue %S.gen.Val %t915, %S.ast.Type %t919, 1 + store %S.gen.Val %t920, ptr %a921 + %t922 = load ptr, ptr %a1 + %t923 = load %S.ast.Type, ptr %a771 + %t924 = call i1 @finch.gen.owning(ptr %t922, %S.ast.Type %t923) + br label %logic.from7168 +logic.from7168: + br i1 %t924, label %logic.rhs7169, label %logic.end7170 +logic.rhs7169: + %t925 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 2 + %t926 = getelementptr inbounds %S.gen.Val, ptr %t925, i32 0, i32 2 + %t927 = load i1, ptr %t926 + br label %logic.rend7171 +logic.rend7171: + br label %logic.end7170 +logic.end7170: + %t928 = phi i1 [ false, %logic.from7168 ], [ %t927, %logic.rend7171 ] + br i1 %t928, label %then7172, label %endif7174 +then7172: + %t929 = load ptr, ptr %a1 + %t930 = load { ptr, i64, i64 }, ptr %a910 + %t931 = load %S.ast.Type, ptr %a771 + %t932 = call { ptr, i64, i64 } @finch.gen.copyValue(ptr %t929, { ptr, i64, i64 } %t930, %S.ast.Type %t931) + %t933 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t932, 0 + %t934 = load %S.ast.Type, ptr %a771 + store %S.ast.Type %t934, ptr %a935 + call void @finch.copy.S_ast_Type(ptr %a936, ptr %a935) + %t937 = load %S.ast.Type, ptr %a936 + %t938 = insertvalue %S.gen.Val %t933, %S.ast.Type %t937, 1 + %t939 = insertvalue %S.gen.Val %t938, i1 true, 2 + %t940 = load %S.gen.Val, ptr %a921 + store %S.gen.Val %t939, ptr %a921 + store %S.gen.Val %t940, ptr %a941 + call void @finch.drop.S_gen_Val(ptr %a941) + br label %endif7174 +endif7174: + %t942 = load ptr, ptr %a1 + %t943 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 2 + %t944 = load %S.gen.Val, ptr %t943 + call void @finch.gen.release(ptr %t942, %S.gen.Val %t944) + %t945 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 + %t946 = load %S.gen.Val, ptr %a921 + store %S.gen.Val %t946, ptr %a947 + call void @finch.copy.S_gen_Val(ptr %a948, ptr %a947) + %t949 = load %S.gen.Val, ptr %a948 + %t950 = insertvalue %S.gen.Ref %t945, %S.gen.Val %t949, 2 + call void @finch.drop.S_gen_Val(ptr %a921) + call void @finch_str_drop(ptr %a910) + call void @finch.drop.S_ast_Type(ptr %a771) + call void @finch.drop.S_gen_StructDef(ptr %a695) + call void @finch.drop.S_ast_Type(ptr %a164) + call void @finch.drop.S_gen_Ref(ptr %a157) + ret %S.gen.Ref %t950 } define internal %S.gen.Ref @finch.gen.index(ptr %p0, %S.ast.Node %p1, i1 %p2) { @@ -68082,11 +72015,11 @@ entry: %t6 = load { ptr, i64, i64 }, ptr %t5 %t7 = extractvalue { ptr, i64, i64 } %t6, 1 %t8 = icmp uge i64 0, %t7 - br i1 %t8, label %range6782, label %inrange6783 -range6782: - call void @finch_panic_index(ptr @.str.4398, i64 3773, i64 0, i64 %t7) + br i1 %t8, label %range7175, label %inrange7176 +range7175: + call void @finch_panic_index(ptr @.str.4605, i64 4000, i64 0, i64 %t7) unreachable -inrange6783: +inrange7176: %t9 = extractvalue { ptr, i64, i64 } %t6, 0 %t10 = getelementptr inbounds %S.ast.Node, ptr %t9, i64 0 %t11 = load %S.ast.Node, ptr %t10 @@ -68095,11 +72028,11 @@ inrange6783: store %S.gen.Ref %t13, ptr %a14 %t15 = load ptr, ptr %a1 %t16 = icmp eq ptr %t15, null - br i1 %t16, label %panic6784, label %ok6785 -panic6784: - call void @finch_panic(ptr @.str.4399, i64 3774, ptr @.str.4400) + br i1 %t16, label %panic7177, label %ok7178 +panic7177: + call void @finch_panic(ptr @.str.4606, i64 4001, ptr @.str.4607) unreachable -ok6785: +ok7178: %t17 = getelementptr inbounds %S.gen.Gen, ptr %t15, i32 0, i32 11 %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %t17, i32 0, i32 1 %t19 = load i64, ptr %t18 @@ -68107,14 +72040,14 @@ ok6785: %t21 = getelementptr inbounds %S.gen.Ref, ptr %a14, i32 0, i32 0 %t22 = load i1, ptr %t21 %t23 = xor i1 %t22, true - br i1 %t23, label %then6786, label %endif6788 -then6786: + br i1 %t23, label %then7179, label %endif7181 +then7179: %t24 = load ptr, ptr %a1 %t25 = getelementptr inbounds %S.gen.Ref, ptr %a14, i32 0, i32 2 %t26 = load %S.gen.Val, ptr %t25 call void @finch.gen.hold(ptr %t24, %S.gen.Val %t26) - br label %endif6788 -endif6788: + br label %endif7181 +endif7181: %t27 = load ptr, ptr %a1 %t28 = load %S.ast.Node, ptr %a2 %t29 = load %S.gen.Ref, ptr %a14 @@ -68314,8 +72247,8 @@ entry: store %S.ast.Type %t10, ptr %a11 %t12 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 0 %t13 = load i1, ptr %t12 - br i1 %t13, label %then6789, label %endif6791 -then6789: + br i1 %t13, label %then7182, label %endif7184 +then7182: %t14 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 1 %t15 = getelementptr inbounds %S.gen.Place, ptr %t14, i32 0, i32 1 %t16 = load %S.ast.Type, ptr %t15 @@ -68326,16 +72259,16 @@ then6789: store %S.ast.Type %t19, ptr %a11 store %S.ast.Type %t20, ptr %a21 call void @finch.drop.S_ast_Type(ptr %a21) - br label %endif6791 -endif6791: + br label %endif7184 +endif7184: %t22 = getelementptr inbounds %S.ast.Type, ptr %a11, i32 0, i32 0 %t23 = load { ptr, i64, i64 }, ptr %t22 store { ptr, i64, i64 } %t23, ptr %a24 - store { ptr, i64, i64 } { ptr @.str.4401, i64 3, i64 0 }, ptr %a25 + store { ptr, i64, i64 } { ptr @.str.4608, i64 3, i64 0 }, ptr %a25 %t26 = call i32 @finch_str_eq(ptr %a24, ptr %a25) %t27 = icmp ne i32 %t26, 0 - br i1 %t27, label %then6792, label %endif6794 -then6792: + br i1 %t27, label %then7185, label %endif7187 +then7185: %t28 = load ptr, ptr %a1 %t29 = load %S.ast.Node, ptr %a2 %t30 = load %S.gen.Ref, ptr %a3 @@ -68344,36 +72277,36 @@ then6792: %t33 = call %S.gen.Ref @finch.gen.mapIndex(ptr %t28, %S.ast.Node %t29, %S.gen.Ref %t30, %S.ast.Type %t31, i1 %t32) call void @finch.drop.S_ast_Type(ptr %a11) ret %S.gen.Ref %t33 -endif6794: +endif7187: %t34 = load ptr, ptr %a1 %t35 = load ptr, ptr %a1 %t36 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t37 = load { ptr, i64, i64 }, ptr %t36 %t38 = extractvalue { ptr, i64, i64 } %t37, 1 %t39 = icmp uge i64 1, %t38 - br i1 %t39, label %range6795, label %inrange6796 -range6795: - call void @finch_panic_index(ptr @.str.4402, i64 3791, i64 1, i64 %t38) + br i1 %t39, label %range7188, label %inrange7189 +range7188: + call void @finch_panic_index(ptr @.str.4609, i64 4018, i64 1, i64 %t38) unreachable -inrange6796: +inrange7189: %t40 = extractvalue { ptr, i64, i64 } %t37, 0 %t41 = getelementptr inbounds %S.ast.Node, ptr %t40, i64 1 %t42 = load %S.ast.Node, ptr %t41 %t43 = call %S.gen.Val @finch.gen.expr(ptr %t35, %S.ast.Node %t42) - %t44 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4403, i64 3, i64 0 }) + %t44 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4610, i64 3, i64 0 }) %t45 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t46 = load { ptr, i64, i64 }, ptr %t45 %t47 = extractvalue { ptr, i64, i64 } %t46, 1 %t48 = icmp uge i64 1, %t47 - br i1 %t48, label %range6797, label %inrange6798 -range6797: - call void @finch_panic_index(ptr @.str.4404, i64 3791, i64 1, i64 %t47) + br i1 %t48, label %range7190, label %inrange7191 +range7190: + call void @finch_panic_index(ptr @.str.4611, i64 4018, i64 1, i64 %t47) unreachable -inrange6798: +inrange7191: %t49 = extractvalue { ptr, i64, i64 } %t46, 0 %t50 = getelementptr inbounds %S.ast.Node, ptr %t49, i64 1 %t51 = load %S.ast.Node, ptr %t50 - %t52 = call %S.gen.Val @finch.gen.coerce(ptr %t34, %S.gen.Val %t43, %S.ast.Type %t44, %S.ast.Node %t51, { ptr, i64, i64 } { ptr @.str.4405, i64 8, i64 0 }) + %t52 = call %S.gen.Val @finch.gen.coerce(ptr %t34, %S.gen.Val %t43, %S.ast.Type %t44, %S.ast.Node %t51, { ptr, i64, i64 } { ptr @.str.4612, i64 8, i64 0 }) store %S.gen.Val %t43, ptr %a53 call void @finch.drop.S_gen_Val(ptr %a53) store %S.ast.Type %t44, ptr %a54 @@ -68388,16 +72321,16 @@ inrange6798: %t61 = getelementptr inbounds %S.ast.Type, ptr %a11, i32 0, i32 0 %t62 = load { ptr, i64, i64 }, ptr %t61 store { ptr, i64, i64 } %t62, ptr %a63 - store { ptr, i64, i64 } { ptr @.str.4406, i64 5, i64 0 }, ptr %a64 + store { ptr, i64, i64 } { ptr @.str.4613, i64 5, i64 0 }, ptr %a64 %t65 = call i32 @finch_str_eq(ptr %a63, ptr %a64) %t66 = icmp ne i32 %t65, 0 - br i1 %t66, label %then6799, label %endif6801 -then6799: - store { ptr, i64, i64 } { ptr @.str.4407, i64 0, i64 0 }, ptr %a67 + br i1 %t66, label %then7192, label %endif7194 +then7192: + store { ptr, i64, i64 } { ptr @.str.4614, i64 0, i64 0 }, ptr %a67 %t68 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 0 %t69 = load i1, ptr %t68 - br i1 %t69, label %then6802, label %else6803 -then6802: + br i1 %t69, label %then7195, label %else7196 +then7195: %t70 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 1 %t71 = getelementptr inbounds %S.gen.Place, ptr %t70, i32 0, i32 0 %t72 = load { ptr, i64, i64 }, ptr %t71 @@ -68408,8 +72341,8 @@ then6802: store { ptr, i64, i64 } %t75, ptr %a67 store { ptr, i64, i64 } %t76, ptr %a77 call void @finch_str_drop(ptr %a77) - br label %endif6804 -else6803: + br label %endif7197 +else7196: %t78 = load ptr, ptr %a1 %t79 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 2 %t80 = load %S.gen.Val, ptr %t79 @@ -68418,8 +72351,8 @@ else6803: store { ptr, i64, i64 } %t81, ptr %a67 store { ptr, i64, i64 } %t82, ptr %a83 call void @finch_str_drop(ptr %a83) - br label %endif6804 -endif6804: + br label %endif7197 +endif7197: %t84 = load ptr, ptr %a1 %t85 = load { ptr, i64, i64 }, ptr %a60 %t86 = getelementptr inbounds %S.ast.Type, ptr %a11, i32 0, i32 4 @@ -68434,14 +72367,14 @@ endif6804: %t93 = load ptr, ptr %a1 %t94 = load %S.ast.Type, ptr %a11 %t95 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t93, %S.ast.Type %t94) - store { ptr, i64, i64 } { ptr @.str.4408, i64 23, i64 0 }, ptr %a97 + store { ptr, i64, i64 } { ptr @.str.4615, i64 23, i64 0 }, ptr %a97 store { ptr, i64, i64 } %t95, ptr %a98 call void @finch_str_concat(ptr %a96, ptr %a97, ptr %a98) store { ptr, i64, i64 } %t95, ptr %a99 call void @finch_str_drop(ptr %a99) %t100 = load { ptr, i64, i64 }, ptr %a96 store { ptr, i64, i64 } %t100, ptr %a102 - store { ptr, i64, i64 } { ptr @.str.4409, i64 6, i64 0 }, ptr %a103 + store { ptr, i64, i64 } { ptr @.str.4616, i64 6, i64 0 }, ptr %a103 call void @finch_str_concat(ptr %a101, ptr %a102, ptr %a103) store { ptr, i64, i64 } %t100, ptr %a104 call void @finch_str_drop(ptr %a104) @@ -68454,7 +72387,7 @@ endif6804: call void @finch_str_drop(ptr %a110) %t111 = load { ptr, i64, i64 }, ptr %a107 store { ptr, i64, i64 } %t111, ptr %a113 - store { ptr, i64, i64 } { ptr @.str.4410, i64 13, i64 0 }, ptr %a114 + store { ptr, i64, i64 } { ptr @.str.4617, i64 13, i64 0 }, ptr %a114 call void @finch_str_concat(ptr %a112, ptr %a113, ptr %a114) store { ptr, i64, i64 } %t111, ptr %a115 call void @finch_str_drop(ptr %a115) @@ -68480,11 +72413,11 @@ endif6804: %t133 = load { ptr, i64, i64 }, ptr %t132 %t134 = extractvalue { ptr, i64, i64 } %t133, 1 %t135 = icmp uge i64 0, %t134 - br i1 %t135, label %range6805, label %inrange6806 -range6805: - call void @finch_panic_index(ptr @.str.4411, i64 3801, i64 0, i64 %t134) + br i1 %t135, label %range7198, label %inrange7199 +range7198: + call void @finch_panic_index(ptr @.str.4618, i64 4028, i64 0, i64 %t134) unreachable -inrange6806: +inrange7199: %t136 = extractvalue { ptr, i64, i64 } %t133, 0 %t137 = getelementptr inbounds %S.ast.Type, ptr %t136, i64 0 %t138 = load %S.ast.Type, ptr %t137 @@ -68498,26 +72431,26 @@ inrange6806: call void @finch_str_drop(ptr %a60) call void @finch.drop.S_ast_Type(ptr %a11) ret %S.gen.Ref %t143 -endif6801: +endif7194: %t144 = getelementptr inbounds %S.ast.Type, ptr %a11, i32 0, i32 0 %t145 = load { ptr, i64, i64 }, ptr %t144 store { ptr, i64, i64 } %t145, ptr %a146 - store { ptr, i64, i64 } { ptr @.str.4412, i64 3, i64 0 }, ptr %a147 + store { ptr, i64, i64 } { ptr @.str.4619, i64 3, i64 0 }, ptr %a147 %t148 = call i32 @finch_str_eq(ptr %a146, ptr %a147) %t149 = icmp ne i32 %t148, 0 - br i1 %t149, label %then6807, label %endif6809 -then6807: + br i1 %t149, label %then7200, label %endif7202 +then7200: %t150 = getelementptr inbounds %S.ast.Type, ptr %a11, i32 0, i32 1 %t151 = getelementptr inbounds { ptr, i64, i64 }, ptr %t150, i32 0, i32 1 %t152 = load i64, ptr %t151 %t153 = icmp eq i64 %t152, 0 - br i1 %t153, label %then6810, label %endif6812 -then6810: + br i1 %t153, label %then7203, label %endif7205 +then7203: %t154 = load ptr, ptr %a1 %t155 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t154, %S.ast.Node %t155, { ptr, i64, i64 } { ptr @.str.4413, i64 57, i64 0 }) - br label %endif6812 -endif6812: + call void @finch.gen.fail(ptr %t154, %S.ast.Node %t155, { ptr, i64, i64 } { ptr @.str.4620, i64 57, i64 0 }) + br label %endif7205 +endif7205: %t156 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 2 %t157 = getelementptr inbounds %S.gen.Val, ptr %t156, i32 0, i32 0 %t158 = load { ptr, i64, i64 }, ptr %t157 @@ -68527,28 +72460,28 @@ endif6812: store { ptr, i64, i64 } %t161, ptr %a162 %t163 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 0 %t164 = load i1, ptr %t163 - br i1 %t164, label %then6813, label %endif6815 -then6813: + br i1 %t164, label %then7206, label %endif7208 +then7206: %t165 = load ptr, ptr %a1 %t166 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 1 %t167 = getelementptr inbounds %S.gen.Place, ptr %t166, i32 0, i32 0 %t168 = load { ptr, i64, i64 }, ptr %t167 - %t169 = call { ptr, i64, i64 } @finch.gen.load(ptr %t165, { ptr, i64, i64 } { ptr @.str.4414, i64 3, i64 0 }, { ptr, i64, i64 } %t168) + %t169 = call { ptr, i64, i64 } @finch.gen.load(ptr %t165, { ptr, i64, i64 } { ptr @.str.4621, i64 3, i64 0 }, { ptr, i64, i64 } %t168) %t170 = load { ptr, i64, i64 }, ptr %a162 store { ptr, i64, i64 } %t169, ptr %a162 store { ptr, i64, i64 } %t170, ptr %a171 call void @finch_str_drop(ptr %a171) - br label %endif6815 -endif6815: + br label %endif7208 +endif7208: %t172 = getelementptr inbounds %S.ast.Type, ptr %a11, i32 0, i32 1 %t173 = load { ptr, i64, i64 }, ptr %t172 %t174 = extractvalue { ptr, i64, i64 } %t173, 1 %t175 = icmp uge i64 0, %t174 - br i1 %t175, label %range6816, label %inrange6817 -range6816: - call void @finch_panic_index(ptr @.str.4415, i64 3811, i64 0, i64 %t174) + br i1 %t175, label %range7209, label %inrange7210 +range7209: + call void @finch_panic_index(ptr @.str.4622, i64 4038, i64 0, i64 %t174) unreachable -inrange6817: +inrange7210: %t176 = extractvalue { ptr, i64, i64 } %t173, 0 %t177 = getelementptr inbounds %S.ast.Type, ptr %t176, i64 0 %t178 = load %S.ast.Type, ptr %t177 @@ -68561,14 +72494,14 @@ inrange6817: %t185 = load ptr, ptr %a1 %t186 = load %S.ast.Type, ptr %a182 %t187 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t185, %S.ast.Type %t186) - store { ptr, i64, i64 } { ptr @.str.4416, i64 23, i64 0 }, ptr %a189 + store { ptr, i64, i64 } { ptr @.str.4623, i64 23, i64 0 }, ptr %a189 store { ptr, i64, i64 } %t187, ptr %a190 call void @finch_str_concat(ptr %a188, ptr %a189, ptr %a190) store { ptr, i64, i64 } %t187, ptr %a191 call void @finch_str_drop(ptr %a191) %t192 = load { ptr, i64, i64 }, ptr %a188 store { ptr, i64, i64 } %t192, ptr %a194 - store { ptr, i64, i64 } { ptr @.str.4417, i64 6, i64 0 }, ptr %a195 + store { ptr, i64, i64 } { ptr @.str.4624, i64 6, i64 0 }, ptr %a195 call void @finch_str_concat(ptr %a193, ptr %a194, ptr %a195) store { ptr, i64, i64 } %t192, ptr %a196 call void @finch_str_drop(ptr %a196) @@ -68581,7 +72514,7 @@ inrange6817: call void @finch_str_drop(ptr %a202) %t203 = load { ptr, i64, i64 }, ptr %a199 store { ptr, i64, i64 } %t203, ptr %a205 - store { ptr, i64, i64 } { ptr @.str.4418, i64 6, i64 0 }, ptr %a206 + store { ptr, i64, i64 } { ptr @.str.4625, i64 6, i64 0 }, ptr %a206 call void @finch_str_concat(ptr %a204, ptr %a205, ptr %a206) store { ptr, i64, i64 } %t203, ptr %a207 call void @finch_str_drop(ptr %a207) @@ -68608,35 +72541,35 @@ inrange6817: call void @finch_str_drop(ptr %a60) call void @finch.drop.S_ast_Type(ptr %a11) ret %S.gen.Ref %t223 -endif6809: +endif7202: %t224 = getelementptr inbounds %S.ast.Type, ptr %a11, i32 0, i32 0 %t225 = load { ptr, i64, i64 }, ptr %t224 store { ptr, i64, i64 } %t225, ptr %a226 - store { ptr, i64, i64 } { ptr @.str.4419, i64 5, i64 0 }, ptr %a227 + store { ptr, i64, i64 } { ptr @.str.4626, i64 5, i64 0 }, ptr %a227 %t228 = call i32 @finch_str_eq(ptr %a226, ptr %a227) %t229 = icmp eq i32 %t228, 0 - br label %logic.from6818 -logic.from6818: - br i1 %t229, label %logic.rhs6819, label %logic.end6820 -logic.rhs6819: + br label %logic.from7211 +logic.from7211: + br i1 %t229, label %logic.rhs7212, label %logic.end7213 +logic.rhs7212: %t230 = getelementptr inbounds %S.ast.Type, ptr %a11, i32 0, i32 0 %t231 = load { ptr, i64, i64 }, ptr %t230 store { ptr, i64, i64 } %t231, ptr %a232 - store { ptr, i64, i64 } { ptr @.str.4420, i64 3, i64 0 }, ptr %a233 + store { ptr, i64, i64 } { ptr @.str.4627, i64 3, i64 0 }, ptr %a233 %t234 = call i32 @finch_str_eq(ptr %a232, ptr %a233) %t235 = icmp eq i32 %t234, 0 - br label %logic.rend6821 -logic.rend6821: - br label %logic.end6820 -logic.end6820: - %t236 = phi i1 [ false, %logic.from6818 ], [ %t235, %logic.rend6821 ] - br i1 %t236, label %then6822, label %endif6824 -then6822: + br label %logic.rend7214 +logic.rend7214: + br label %logic.end7213 +logic.end7213: + %t236 = phi i1 [ false, %logic.from7211 ], [ %t235, %logic.rend7214 ] + br i1 %t236, label %then7215, label %endif7217 +then7215: %t237 = load ptr, ptr %a1 %t238 = load %S.ast.Node, ptr %a2 %t239 = load %S.ast.Type, ptr %a11 %t240 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t239) - store { ptr, i64, i64 } { ptr @.str.4421, i64 46, i64 0 }, ptr %a242 + store { ptr, i64, i64 } { ptr @.str.4628, i64 46, i64 0 }, ptr %a242 store { ptr, i64, i64 } %t240, ptr %a243 call void @finch_str_concat(ptr %a241, ptr %a242, ptr %a243) store { ptr, i64, i64 } %t240, ptr %a244 @@ -68645,27 +72578,27 @@ then6822: call void @finch.gen.fail(ptr %t237, %S.ast.Node %t238, { ptr, i64, i64 } %t245) store { ptr, i64, i64 } %t245, ptr %a246 call void @finch_str_drop(ptr %a246) - br label %endif6824 -endif6824: - %t247 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4422, i64 4, i64 0 }) + br label %endif7217 +endif7217: + %t247 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4629, i64 4, i64 0 }) store %S.ast.Type %t247, ptr %a248 %t249 = getelementptr inbounds %S.ast.Type, ptr %a11, i32 0, i32 0 %t250 = load { ptr, i64, i64 }, ptr %t249 store { ptr, i64, i64 } %t250, ptr %a251 - store { ptr, i64, i64 } { ptr @.str.4423, i64 5, i64 0 }, ptr %a252 + store { ptr, i64, i64 } { ptr @.str.4630, i64 5, i64 0 }, ptr %a252 %t253 = call i32 @finch_str_eq(ptr %a251, ptr %a252) %t254 = icmp ne i32 %t253, 0 - br i1 %t254, label %then6825, label %endif6827 -then6825: + br i1 %t254, label %then7218, label %endif7220 +then7218: %t255 = getelementptr inbounds %S.ast.Type, ptr %a11, i32 0, i32 1 %t256 = load { ptr, i64, i64 }, ptr %t255 %t257 = extractvalue { ptr, i64, i64 } %t256, 1 %t258 = icmp uge i64 0, %t257 - br i1 %t258, label %range6828, label %inrange6829 -range6828: - call void @finch_panic_index(ptr @.str.4424, i64 3819, i64 0, i64 %t257) + br i1 %t258, label %range7221, label %inrange7222 +range7221: + call void @finch_panic_index(ptr @.str.4631, i64 4046, i64 0, i64 %t257) unreachable -inrange6829: +inrange7222: %t259 = extractvalue { ptr, i64, i64 } %t256, 0 %t260 = getelementptr inbounds %S.ast.Type, ptr %t259, i64 0 %t261 = load %S.ast.Type, ptr %t260 @@ -68676,46 +72609,46 @@ inrange6829: store %S.ast.Type %t264, ptr %a248 store %S.ast.Type %t265, ptr %a266 call void @finch.drop.S_ast_Type(ptr %a266) - br label %endif6827 -endif6827: + br label %endif7220 +endif7220: %t267 = getelementptr inbounds %S.ast.Type, ptr %a11, i32 0, i32 0 %t268 = load { ptr, i64, i64 }, ptr %t267 store { ptr, i64, i64 } %t268, ptr %a269 - store { ptr, i64, i64 } { ptr @.str.4425, i64 3, i64 0 }, ptr %a270 + store { ptr, i64, i64 } { ptr @.str.4632, i64 3, i64 0 }, ptr %a270 %t271 = call i32 @finch_str_eq(ptr %a269, ptr %a270) %t272 = icmp ne i32 %t271, 0 - br label %logic.from6830 -logic.from6830: - br i1 %t272, label %logic.rhs6831, label %logic.end6832 -logic.rhs6831: + br label %logic.from7223 +logic.from7223: + br i1 %t272, label %logic.rhs7224, label %logic.end7225 +logic.rhs7224: %t273 = load i1, ptr %a4 - br label %logic.rend6833 -logic.rend6833: - br label %logic.end6832 -logic.end6832: - %t274 = phi i1 [ false, %logic.from6830 ], [ %t273, %logic.rend6833 ] - br i1 %t274, label %then6834, label %endif6836 -then6834: + br label %logic.rend7226 +logic.rend7226: + br label %logic.end7225 +logic.end7225: + %t274 = phi i1 [ false, %logic.from7223 ], [ %t273, %logic.rend7226 ] + br i1 %t274, label %then7227, label %endif7229 +then7227: %t275 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 0 %t276 = load i1, ptr %t275 %t277 = xor i1 %t276, true - br i1 %t277, label %then6837, label %endif6839 -then6837: + br i1 %t277, label %then7230, label %endif7232 +then7230: %t278 = load ptr, ptr %a1 %t279 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t278, %S.ast.Node %t279, { ptr, i64, i64 } { ptr @.str.4426, i64 44, i64 0 }) - br label %endif6839 -endif6839: + call void @finch.gen.fail(ptr %t278, %S.ast.Node %t279, { ptr, i64, i64 } { ptr @.str.4633, i64 44, i64 0 }) + br label %endif7232 +endif7232: %t280 = load ptr, ptr %a1 %t281 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 1 %t282 = getelementptr inbounds %S.gen.Place, ptr %t281, i32 0, i32 0 %t283 = load { ptr, i64, i64 }, ptr %t282 - store { ptr, i64, i64 } { ptr @.str.4427, i64 29, i64 0 }, ptr %a285 + store { ptr, i64, i64 } { ptr @.str.4634, i64 29, i64 0 }, ptr %a285 store { ptr, i64, i64 } %t283, ptr %a286 call void @finch_str_concat(ptr %a284, ptr %a285, ptr %a286) %t287 = load { ptr, i64, i64 }, ptr %a284 store { ptr, i64, i64 } %t287, ptr %a289 - store { ptr, i64, i64 } { ptr @.str.4428, i64 1, i64 0 }, ptr %a290 + store { ptr, i64, i64 } { ptr @.str.4635, i64 1, i64 0 }, ptr %a290 call void @finch_str_concat(ptr %a288, ptr %a289, ptr %a290) store { ptr, i64, i64 } %t287, ptr %a291 call void @finch_str_drop(ptr %a291) @@ -68723,8 +72656,8 @@ endif6839: call void @finch.gen.emit(ptr %t280, { ptr, i64, i64 } %t292) store { ptr, i64, i64 } %t292, ptr %a293 call void @finch_str_drop(ptr %a293) - br label %endif6836 -endif6836: + br label %endif7229 +endif7229: %t294 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 2 %t295 = getelementptr inbounds %S.gen.Val, ptr %t294, i32 0, i32 0 %t296 = load { ptr, i64, i64 }, ptr %t295 @@ -68734,27 +72667,27 @@ endif6836: store { ptr, i64, i64 } %t299, ptr %a300 %t301 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 0 %t302 = load i1, ptr %t301 - br i1 %t302, label %then6840, label %endif6842 -then6840: + br i1 %t302, label %then7233, label %endif7235 +then7233: %t303 = load ptr, ptr %a1 %t304 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 1 %t305 = getelementptr inbounds %S.gen.Place, ptr %t304, i32 0, i32 0 %t306 = load { ptr, i64, i64 }, ptr %t305 - %t307 = call { ptr, i64, i64 } @finch.gen.load(ptr %t303, { ptr, i64, i64 } { ptr @.str.4429, i64 17, i64 0 }, { ptr, i64, i64 } %t306) + %t307 = call { ptr, i64, i64 } @finch.gen.load(ptr %t303, { ptr, i64, i64 } { ptr @.str.4636, i64 17, i64 0 }, { ptr, i64, i64 } %t306) %t308 = load { ptr, i64, i64 }, ptr %a300 store { ptr, i64, i64 } %t307, ptr %a300 store { ptr, i64, i64 } %t308, ptr %a309 call void @finch_str_drop(ptr %a309) - br label %endif6842 -endif6842: + br label %endif7235 +endif7235: %t310 = load ptr, ptr %a1 %t311 = load { ptr, i64, i64 }, ptr %a300 - store { ptr, i64, i64 } { ptr @.str.4430, i64 31, i64 0 }, ptr %a313 + store { ptr, i64, i64 } { ptr @.str.4637, i64 31, i64 0 }, ptr %a313 store { ptr, i64, i64 } %t311, ptr %a314 call void @finch_str_concat(ptr %a312, ptr %a313, ptr %a314) %t315 = load { ptr, i64, i64 }, ptr %a312 store { ptr, i64, i64 } %t315, ptr %a317 - store { ptr, i64, i64 } { ptr @.str.4431, i64 3, i64 0 }, ptr %a318 + store { ptr, i64, i64 } { ptr @.str.4638, i64 3, i64 0 }, ptr %a318 call void @finch_str_concat(ptr %a316, ptr %a317, ptr %a318) store { ptr, i64, i64 } %t315, ptr %a319 call void @finch_str_drop(ptr %a319) @@ -68770,12 +72703,12 @@ endif6842: call void @finch.gen.boundsCheck(ptr %t324, { ptr, i64, i64 } %t325, { ptr, i64, i64 } %t326, %S.ast.Node %t327) %t328 = load ptr, ptr %a1 %t329 = load { ptr, i64, i64 }, ptr %a300 - store { ptr, i64, i64 } { ptr @.str.4432, i64 31, i64 0 }, ptr %a331 + store { ptr, i64, i64 } { ptr @.str.4639, i64 31, i64 0 }, ptr %a331 store { ptr, i64, i64 } %t329, ptr %a332 call void @finch_str_concat(ptr %a330, ptr %a331, ptr %a332) %t333 = load { ptr, i64, i64 }, ptr %a330 store { ptr, i64, i64 } %t333, ptr %a335 - store { ptr, i64, i64 } { ptr @.str.4433, i64 3, i64 0 }, ptr %a336 + store { ptr, i64, i64 } { ptr @.str.4640, i64 3, i64 0 }, ptr %a336 call void @finch_str_concat(ptr %a334, ptr %a335, ptr %a336) store { ptr, i64, i64 } %t333, ptr %a337 call void @finch_str_drop(ptr %a337) @@ -68788,14 +72721,14 @@ endif6842: %t343 = load ptr, ptr %a1 %t344 = load %S.ast.Type, ptr %a248 %t345 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t343, %S.ast.Type %t344) - store { ptr, i64, i64 } { ptr @.str.4434, i64 23, i64 0 }, ptr %a347 + store { ptr, i64, i64 } { ptr @.str.4641, i64 23, i64 0 }, ptr %a347 store { ptr, i64, i64 } %t345, ptr %a348 call void @finch_str_concat(ptr %a346, ptr %a347, ptr %a348) store { ptr, i64, i64 } %t345, ptr %a349 call void @finch_str_drop(ptr %a349) %t350 = load { ptr, i64, i64 }, ptr %a346 store { ptr, i64, i64 } %t350, ptr %a352 - store { ptr, i64, i64 } { ptr @.str.4435, i64 6, i64 0 }, ptr %a353 + store { ptr, i64, i64 } { ptr @.str.4642, i64 6, i64 0 }, ptr %a353 call void @finch_str_concat(ptr %a351, ptr %a352, ptr %a353) store { ptr, i64, i64 } %t350, ptr %a354 call void @finch_str_drop(ptr %a354) @@ -68808,7 +72741,7 @@ endif6842: call void @finch_str_drop(ptr %a360) %t361 = load { ptr, i64, i64 }, ptr %a357 store { ptr, i64, i64 } %t361, ptr %a363 - store { ptr, i64, i64 } { ptr @.str.4436, i64 6, i64 0 }, ptr %a364 + store { ptr, i64, i64 } { ptr @.str.4643, i64 6, i64 0 }, ptr %a364 call void @finch_str_concat(ptr %a362, ptr %a363, ptr %a364) store { ptr, i64, i64 } %t361, ptr %a365 call void @finch_str_drop(ptr %a365) @@ -68826,8 +72759,8 @@ endif6842: store { ptr, i64, i64 } %t373, ptr %a375 %t376 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 0 %t377 = load i1, ptr %t376 - br i1 %t377, label %then6843, label %endif6845 -then6843: + br i1 %t377, label %then7236, label %endif7238 +then7236: %t378 = insertvalue %S.gen.Ref zeroinitializer, i1 true, 0 %t379 = load { ptr, i64, i64 }, ptr %a375 store { ptr, i64, i64 } %t379, ptr %a380 @@ -68848,7 +72781,7 @@ then6843: call void @finch_str_drop(ptr %a60) call void @finch.drop.S_ast_Type(ptr %a11) ret %S.gen.Ref %t389 -endif6845: +endif7238: %t390 = load ptr, ptr %a1 %t391 = load ptr, ptr %a1 %t392 = load %S.ast.Type, ptr %a248 @@ -68872,20 +72805,20 @@ endif6845: %t409 = load ptr, ptr %a1 %t410 = load %S.ast.Type, ptr %a248 %t411 = call i1 @finch.gen.owning(ptr %t409, %S.ast.Type %t410) - br label %logic.from6846 -logic.from6846: - br i1 %t411, label %logic.rhs6847, label %logic.end6848 -logic.rhs6847: + br label %logic.from7239 +logic.from7239: + br i1 %t411, label %logic.rhs7240, label %logic.end7241 +logic.rhs7240: %t412 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 2 %t413 = getelementptr inbounds %S.gen.Val, ptr %t412, i32 0, i32 2 %t414 = load i1, ptr %t413 - br label %logic.rend6849 -logic.rend6849: - br label %logic.end6848 -logic.end6848: - %t415 = phi i1 [ false, %logic.from6846 ], [ %t414, %logic.rend6849 ] - br i1 %t415, label %then6850, label %endif6852 -then6850: + br label %logic.rend7242 +logic.rend7242: + br label %logic.end7241 +logic.end7241: + %t415 = phi i1 [ false, %logic.from7239 ], [ %t414, %logic.rend7242 ] + br i1 %t415, label %then7243, label %endif7245 +then7243: %t416 = load ptr, ptr %a1 %t417 = load { ptr, i64, i64 }, ptr %a397 %t418 = load %S.ast.Type, ptr %a248 @@ -68901,8 +72834,8 @@ then6850: store %S.gen.Val %t426, ptr %a408 store %S.gen.Val %t427, ptr %a428 call void @finch.drop.S_gen_Val(ptr %a428) - br label %endif6852 -endif6852: + br label %endif7245 +endif7245: %t429 = load ptr, ptr %a1 %t430 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 2 %t431 = load %S.gen.Val, ptr %t430 @@ -68980,14 +72913,14 @@ entry: store i64 %t10, ptr %a11 %t12 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 10 store i64 0, ptr %a13 - br label %each.cond6853 -each.cond6853: + br label %each.cond7246 +each.cond7246: %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %t12, i32 0, i32 1 %t15 = load i64, ptr %t14 %t16 = load i64, ptr %a13 %t17 = icmp slt i64 %t16, %t15 - br i1 %t17, label %each.body6854, label %each.end6856 -each.body6854: + br i1 %t17, label %each.body7247, label %each.end7249 +each.body7247: %t18 = load ptr, ptr %t12 %t19 = getelementptr inbounds { ptr, i64, i64 }, ptr %t18, i64 %t16 %t20 = load { ptr, i64, i64 }, ptr %t19 @@ -68995,17 +72928,17 @@ each.body6854: %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %a21, i32 0, i32 1 %t23 = load i64, ptr %t22 %t24 = icmp sgt i64 %t23, 0 - br i1 %t24, label %then6857, label %endif6859 -then6857: + br i1 %t24, label %then7250, label %endif7252 +then7250: %t25 = load ptr, ptr %a1 %t26 = load %S.ast.Node, ptr %a2 %t27 = load { ptr, i64, i64 }, ptr %a21 - store { ptr, i64, i64 } { ptr @.str.4437, i64 17, i64 0 }, ptr %a29 + store { ptr, i64, i64 } { ptr @.str.4644, i64 17, i64 0 }, ptr %a29 store { ptr, i64, i64 } %t27, ptr %a30 call void @finch_str_concat(ptr %a28, ptr %a29, ptr %a30) %t31 = load { ptr, i64, i64 }, ptr %a28 store { ptr, i64, i64 } %t31, ptr %a33 - store { ptr, i64, i64 } { ptr @.str.4438, i64 36, i64 0 }, ptr %a34 + store { ptr, i64, i64 } { ptr @.str.4645, i64 36, i64 0 }, ptr %a34 call void @finch_str_concat(ptr %a32, ptr %a33, ptr %a34) store { ptr, i64, i64 } %t31, ptr %a35 call void @finch_str_drop(ptr %a35) @@ -69013,29 +72946,29 @@ then6857: call void @finch.gen.fail(ptr %t25, %S.ast.Node %t26, { ptr, i64, i64 } %t36) store { ptr, i64, i64 } %t36, ptr %a37 call void @finch_str_drop(ptr %a37) - br label %endif6859 -endif6859: - br label %each.step6855 -each.step6855: + br label %endif7252 +endif7252: + br label %each.step7248 +each.step7248: %t38 = load i64, ptr %a13 %t39 = add i64 %t38, 1 store i64 %t39, ptr %a13 - br label %each.cond6853 -each.end6856: + br label %each.cond7246 +each.end7249: %t40 = load i64, ptr %a11 %t41 = load i64, ptr %a4 %t42 = icmp ne i64 %t40, %t41 - br i1 %t42, label %then6860, label %endif6862 -then6860: + br i1 %t42, label %then7253, label %endif7255 +then7253: %t43 = load ptr, ptr %a1 %t44 = load %S.ast.Node, ptr %a2 %t45 = load { ptr, i64, i64 }, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.4439, i64 1, i64 0 }, ptr %a47 + store { ptr, i64, i64 } { ptr @.str.4646, i64 1, i64 0 }, ptr %a47 store { ptr, i64, i64 } %t45, ptr %a48 call void @finch_str_concat(ptr %a46, ptr %a47, ptr %a48) %t49 = load { ptr, i64, i64 }, ptr %a46 store { ptr, i64, i64 } %t49, ptr %a51 - store { ptr, i64, i64 } { ptr @.str.4440, i64 8, i64 0 }, ptr %a52 + store { ptr, i64, i64 } { ptr @.str.4647, i64 8, i64 0 }, ptr %a52 call void @finch_str_concat(ptr %a50, ptr %a51, ptr %a52) store { ptr, i64, i64 } %t49, ptr %a53 call void @finch_str_drop(ptr %a53) @@ -69052,7 +72985,7 @@ then6860: call void @finch_str_drop(ptr %a62) %t63 = load { ptr, i64, i64 }, ptr %a58 store { ptr, i64, i64 } %t63, ptr %a65 - store { ptr, i64, i64 } { ptr @.str.4441, i64 22, i64 0 }, ptr %a66 + store { ptr, i64, i64 } { ptr @.str.4648, i64 22, i64 0 }, ptr %a66 call void @finch_str_concat(ptr %a64, ptr %a65, ptr %a66) store { ptr, i64, i64 } %t63, ptr %a67 call void @finch_str_drop(ptr %a67) @@ -69071,8 +73004,8 @@ then6860: call void @finch.gen.fail(ptr %t43, %S.ast.Node %t44, { ptr, i64, i64 } %t77) store { ptr, i64, i64 } %t77, ptr %a78 call void @finch_str_drop(ptr %a78) - br label %endif6862 -endif6862: + br label %endif7255 +endif7255: ret void } @@ -69090,7 +73023,7 @@ entry: %t5 = load ptr, ptr %a1 %t6 = load %S.ast.Node, ptr %a2 %t7 = call %S.gen.Val @finch.gen.expr(ptr %t5, %S.ast.Node %t6) - %t8 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4442, i64 3, i64 0 }) + %t8 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4649, i64 3, i64 0 }) %t9 = load %S.ast.Node, ptr %a2 %t10 = load { ptr, i64, i64 }, ptr %a3 %t11 = call %S.gen.Val @finch.gen.coerce(ptr %t4, %S.gen.Val %t7, %S.ast.Type %t8, %S.ast.Node %t9, { ptr, i64, i64 } %t10) @@ -69106,7 +73039,7 @@ entry: %a1 = alloca ptr, align 16 store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 - %t3 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t2, { ptr, i64, i64 } { ptr @.str.4443, i64 17, i64 0 }) + %t3 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t2, { ptr, i64, i64 } { ptr @.str.4650, i64 17, i64 0 }) ret { ptr, i64, i64 } %t3 } @@ -69127,50 +73060,50 @@ entry: store { ptr, i64, i64 } %p0, ptr %a1 %t2 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t2, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.4444, i64 3, i64 0 }, ptr %a4 + store { ptr, i64, i64 } { ptr @.str.4651, i64 3, i64 0 }, ptr %a4 %t5 = call i32 @finch_str_eq(ptr %a3, ptr %a4) %t6 = icmp ne i32 %t5, 0 - br i1 %t6, label %then6863, label %endif6865 -then6863: - ret { ptr, i64, i64 } { ptr @.str.4445, i64 3, i64 0 } -endif6865: + br i1 %t6, label %then7256, label %endif7258 +then7256: + ret { ptr, i64, i64 } { ptr @.str.4652, i64 3, i64 0 } +endif7258: %t7 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t7, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.4446, i64 3, i64 0 }, ptr %a9 + store { ptr, i64, i64 } { ptr @.str.4653, i64 3, i64 0 }, ptr %a9 %t10 = call i32 @finch_str_eq(ptr %a8, ptr %a9) %t11 = icmp ne i32 %t10, 0 - br i1 %t11, label %then6866, label %endif6868 -then6866: - ret { ptr, i64, i64 } { ptr @.str.4447, i64 5, i64 0 } -endif6868: + br i1 %t11, label %then7259, label %endif7261 +then7259: + ret { ptr, i64, i64 } { ptr @.str.4654, i64 5, i64 0 } +endif7261: %t12 = mul i64 13, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t13 = call ptr @finch_alloc(i64 %t12) %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %t13, i64 0 - store { ptr, i64, i64 } { ptr @.str.4448, i64 3, i64 0 }, ptr %t14 + store { ptr, i64, i64 } { ptr @.str.4655, i64 3, i64 0 }, ptr %t14 %t15 = getelementptr inbounds { ptr, i64, i64 }, ptr %t13, i64 1 - store { ptr, i64, i64 } { ptr @.str.4449, i64 5, i64 0 }, ptr %t15 + store { ptr, i64, i64 } { ptr @.str.4656, i64 5, i64 0 }, ptr %t15 %t16 = getelementptr inbounds { ptr, i64, i64 }, ptr %t13, i64 2 - store { ptr, i64, i64 } { ptr @.str.4450, i64 4, i64 0 }, ptr %t16 + store { ptr, i64, i64 } { ptr @.str.4657, i64 4, i64 0 }, ptr %t16 %t17 = getelementptr inbounds { ptr, i64, i64 }, ptr %t13, i64 3 - store { ptr, i64, i64 } { ptr @.str.4451, i64 4, i64 0 }, ptr %t17 + store { ptr, i64, i64 } { ptr @.str.4658, i64 4, i64 0 }, ptr %t17 %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %t13, i64 4 - store { ptr, i64, i64 } { ptr @.str.4452, i64 2, i64 0 }, ptr %t18 + store { ptr, i64, i64 } { ptr @.str.4659, i64 2, i64 0 }, ptr %t18 %t19 = getelementptr inbounds { ptr, i64, i64 }, ptr %t13, i64 5 - store { ptr, i64, i64 } { ptr @.str.4453, i64 3, i64 0 }, ptr %t19 + store { ptr, i64, i64 } { ptr @.str.4660, i64 3, i64 0 }, ptr %t19 %t20 = getelementptr inbounds { ptr, i64, i64 }, ptr %t13, i64 6 - store { ptr, i64, i64 } { ptr @.str.4454, i64 3, i64 0 }, ptr %t20 + store { ptr, i64, i64 } { ptr @.str.4661, i64 3, i64 0 }, ptr %t20 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t13, i64 7 - store { ptr, i64, i64 } { ptr @.str.4455, i64 2, i64 0 }, ptr %t21 + store { ptr, i64, i64 } { ptr @.str.4662, i64 2, i64 0 }, ptr %t21 %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %t13, i64 8 - store { ptr, i64, i64 } { ptr @.str.4456, i64 3, i64 0 }, ptr %t22 + store { ptr, i64, i64 } { ptr @.str.4663, i64 3, i64 0 }, ptr %t22 %t23 = getelementptr inbounds { ptr, i64, i64 }, ptr %t13, i64 9 - store { ptr, i64, i64 } { ptr @.str.4457, i64 3, i64 0 }, ptr %t23 + store { ptr, i64, i64 } { ptr @.str.4664, i64 3, i64 0 }, ptr %t23 %t24 = getelementptr inbounds { ptr, i64, i64 }, ptr %t13, i64 10 - store { ptr, i64, i64 } { ptr @.str.4458, i64 3, i64 0 }, ptr %t24 + store { ptr, i64, i64 } { ptr @.str.4665, i64 3, i64 0 }, ptr %t24 %t25 = getelementptr inbounds { ptr, i64, i64 }, ptr %t13, i64 11 - store { ptr, i64, i64 } { ptr @.str.4459, i64 3, i64 0 }, ptr %t25 + store { ptr, i64, i64 } { ptr @.str.4666, i64 3, i64 0 }, ptr %t25 %t26 = getelementptr inbounds { ptr, i64, i64 }, ptr %t13, i64 12 - store { ptr, i64, i64 } { ptr @.str.4460, i64 3, i64 0 }, ptr %t26 + store { ptr, i64, i64 } { ptr @.str.4667, i64 3, i64 0 }, ptr %t26 %t27 = insertvalue { ptr, i64, i64 } undef, ptr %t13, 0 %t28 = insertvalue { ptr, i64, i64 } %t27, i64 13, 1 %t29 = insertvalue { ptr, i64, i64 } %t28, i64 13, 2 @@ -69181,40 +73114,40 @@ endif6868: %t34 = load i64, ptr %t31 %t35 = load ptr, ptr %a30 store i64 0, ptr %a36 - br label %find.cond6869 -find.cond6869: + br label %find.cond7262 +find.cond7262: %t37 = load i64, ptr %a36 %t38 = icmp slt i64 %t37, %t34 - br i1 %t38, label %find.body6870, label %find.end6873 -find.body6870: + br i1 %t38, label %find.body7263, label %find.end7266 +find.body7263: %t39 = getelementptr inbounds { ptr, i64, i64 }, ptr %t35, i64 %t37 %t40 = load { ptr, i64, i64 }, ptr %t39 store { ptr, i64, i64 } %t40, ptr %a41 store { ptr, i64, i64 } %t32, ptr %a42 %t43 = call i32 @finch_str_eq(ptr %a41, ptr %a42) %t44 = icmp ne i32 %t43, 0 - br i1 %t44, label %find.hit6871, label %find.next6872 -find.hit6871: + br i1 %t44, label %find.hit7264, label %find.next7265 +find.hit7264: store i64 %t37, ptr %a33 - br label %find.end6873 -find.next6872: + br label %find.end7266 +find.next7265: %t45 = add i64 %t37, 1 store i64 %t45, ptr %a36 - br label %find.cond6869 -find.end6873: + br label %find.cond7262 +find.end7266: %t46 = load i64, ptr %a33 %t47 = icmp sge i64 %t46, 0 - br i1 %t47, label %then6874, label %endif6876 -then6874: + br i1 %t47, label %then7267, label %endif7269 +then7267: %t48 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t48, ptr %a49 call void @finch_str_copy(ptr %a50, ptr %a49) %t51 = load { ptr, i64, i64 }, ptr %a50 call void @finch.drop.arr_str(ptr %a30) ret { ptr, i64, i64 } %t51 -endif6876: +endif7269: call void @finch.drop.arr_str(ptr %a30) - ret { ptr, i64, i64 } { ptr @.str.4461, i64 0, i64 0 } + ret { ptr, i64, i64 } { ptr @.str.4668, i64 0, i64 0 } } define internal %S.gen.Val @finch.gen.convert(ptr %p0, %S.ast.Node %p1, %S.ast.Type %p2) { @@ -69533,11 +73466,11 @@ entry: %t10 = load { ptr, i64, i64 }, ptr %t9 %t11 = extractvalue { ptr, i64, i64 } %t10, 1 %t12 = icmp uge i64 0, %t11 - br i1 %t12, label %range6877, label %inrange6878 -range6877: - call void @finch_panic_index(ptr @.str.4462, i64 3889, i64 0, i64 %t11) + br i1 %t12, label %range7270, label %inrange7271 +range7270: + call void @finch_panic_index(ptr @.str.4669, i64 4116, i64 0, i64 %t11) unreachable -inrange6878: +inrange7271: %t13 = extractvalue { ptr, i64, i64 } %t10, 0 %t14 = getelementptr inbounds %S.ast.Node, ptr %t13, i64 0 %t15 = load %S.ast.Node, ptr %t14 @@ -69552,41 +73485,41 @@ inrange6878: %t24 = load %S.ast.Type, ptr %a23 %t25 = load %S.ast.Type, ptr %a3 %t26 = call i1 @finch.ast.same(%S.ast.Type %t24, %S.ast.Type %t25) - br i1 %t26, label %then6879, label %endif6881 -then6879: + br i1 %t26, label %then7272, label %endif7274 +then7272: %t27 = load %S.gen.Val, ptr %a17 call void @finch.drop.S_ast_Type(ptr %a23) ret %S.gen.Val %t27 -endif6881: +endif7274: %t28 = getelementptr inbounds %S.ast.Type, ptr %a23, i32 0, i32 0 %t29 = load { ptr, i64, i64 }, ptr %t28 store { ptr, i64, i64 } %t29, ptr %a30 - store { ptr, i64, i64 } { ptr @.str.4463, i64 3, i64 0 }, ptr %a31 + store { ptr, i64, i64 } { ptr @.str.4670, i64 3, i64 0 }, ptr %a31 %t32 = call i32 @finch_str_eq(ptr %a30, ptr %a31) %t33 = icmp ne i32 %t32, 0 - br label %logic.from6882 -logic.from6882: - br i1 %t33, label %logic.rhs6883, label %logic.end6884 -logic.rhs6883: + br label %logic.from7275 +logic.from7275: + br i1 %t33, label %logic.rhs7276, label %logic.end7277 +logic.rhs7276: %t34 = load %S.ast.Type, ptr %a3 %t35 = call i1 @finch.gen.isNumber(%S.ast.Type %t34) - br label %logic.rend6885 -logic.rend6885: - br label %logic.end6884 -logic.end6884: - %t36 = phi i1 [ false, %logic.from6882 ], [ %t35, %logic.rend6885 ] - br label %logic.from6886 -logic.from6886: - br i1 %t36, label %logic.rhs6887, label %logic.end6888 -logic.rhs6887: + br label %logic.rend7278 +logic.rend7278: + br label %logic.end7277 +logic.end7277: + %t36 = phi i1 [ false, %logic.from7275 ], [ %t35, %logic.rend7278 ] + br label %logic.from7279 +logic.from7279: + br i1 %t36, label %logic.rhs7280, label %logic.end7281 +logic.rhs7280: %t37 = load ptr, ptr %a1 %t38 = icmp eq ptr %t37, null - br i1 %t38, label %panic6889, label %ok6890 -panic6889: - call void @finch_panic(ptr @.str.4464, i64 3894, ptr @.str.4465) + br i1 %t38, label %panic7282, label %ok7283 +panic7282: + call void @finch_panic(ptr @.str.4671, i64 4121, ptr @.str.4672) unreachable -ok6890: - %t39 = getelementptr inbounds %S.gen.Gen, ptr %t37, i32 0, i32 40 +ok7283: + %t39 = getelementptr inbounds %S.gen.Gen, ptr %t37, i32 0, i32 41 %t40 = load { ptr, i64, i64 }, ptr %t39 %t41 = load %S.ast.Node, ptr %a2 %t42 = call { ptr, i64, i64 } @finch.gen.nodeKey(%S.ast.Node %t41) @@ -69596,41 +73529,41 @@ ok6890: %t46 = icmp ne i32 %t45, 0 store { ptr, i64, i64 } %t42, ptr %a47 call void @finch_str_drop(ptr %a47) - br label %logic.rend6891 -logic.rend6891: - br label %logic.end6888 -logic.end6888: - %t48 = phi i1 [ false, %logic.from6886 ], [ %t46, %logic.rend6891 ] - br i1 %t48, label %then6892, label %endif6894 -then6892: + br label %logic.rend7284 +logic.rend7284: + br label %logic.end7281 +logic.end7281: + %t48 = phi i1 [ false, %logic.from7279 ], [ %t46, %logic.rend7284 ] + br i1 %t48, label %then7285, label %endif7287 +then7285: %t49 = load ptr, ptr %a1 - %t50 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t49, { ptr, i64, i64 } { ptr @.str.4466, i64 17, i64 0 }) + %t50 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t49, { ptr, i64, i64 } { ptr @.str.4673, i64 17, i64 0 }) store { ptr, i64, i64 } %t50, ptr %a51 %t52 = load ptr, ptr %a1 %t53 = load { ptr, i64, i64 }, ptr %a51 - call void @finch.gen.store(ptr %t52, { ptr, i64, i64 } { ptr @.str.4467, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.4468, i64 15, i64 0 }, { ptr, i64, i64 } %t53) + call void @finch.gen.store(ptr %t52, { ptr, i64, i64 } { ptr @.str.4674, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.4675, i64 15, i64 0 }, { ptr, i64, i64 } %t53) %t54 = load %S.ast.Type, ptr %a3 %t55 = call i1 @finch.gen.isInt(%S.ast.Type %t54) - br i1 %t55, label %then6895, label %endif6897 -then6895: + br i1 %t55, label %then7288, label %endif7290 +then7288: %t56 = load ptr, ptr %a1 - %t57 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t56, { ptr, i64, i64 } { ptr @.str.4469, i64 3, i64 0 }) + %t57 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t56, { ptr, i64, i64 } { ptr @.str.4676, i64 3, i64 0 }) store { ptr, i64, i64 } %t57, ptr %a58 %t59 = load ptr, ptr %a1 %t60 = load { ptr, i64, i64 }, ptr %a58 - call void @finch.gen.store(ptr %t59, { ptr, i64, i64 } { ptr @.str.4470, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.4471, i64 1, i64 0 }, { ptr, i64, i64 } %t60) + call void @finch.gen.store(ptr %t59, { ptr, i64, i64 } { ptr @.str.4677, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.4678, i64 1, i64 0 }, { ptr, i64, i64 } %t60) %t61 = load ptr, ptr %a1 %t62 = load ptr, ptr %a1 %t63 = load %S.gen.Val, ptr %a17 %t64 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t62, %S.gen.Val %t63) - store { ptr, i64, i64 } { ptr @.str.4472, i64 32, i64 0 }, ptr %a66 + store { ptr, i64, i64 } { ptr @.str.4679, i64 32, i64 0 }, ptr %a66 store { ptr, i64, i64 } %t64, ptr %a67 call void @finch_str_concat(ptr %a65, ptr %a66, ptr %a67) store { ptr, i64, i64 } %t64, ptr %a68 call void @finch_str_drop(ptr %a68) %t69 = load { ptr, i64, i64 }, ptr %a65 store { ptr, i64, i64 } %t69, ptr %a71 - store { ptr, i64, i64 } { ptr @.str.4473, i64 6, i64 0 }, ptr %a72 + store { ptr, i64, i64 } { ptr @.str.4680, i64 6, i64 0 }, ptr %a72 call void @finch_str_concat(ptr %a70, ptr %a71, ptr %a72) store { ptr, i64, i64 } %t69, ptr %a73 call void @finch_str_drop(ptr %a73) @@ -69643,7 +73576,7 @@ then6895: call void @finch_str_drop(ptr %a79) %t80 = load { ptr, i64, i64 }, ptr %a76 store { ptr, i64, i64 } %t80, ptr %a82 - store { ptr, i64, i64 } { ptr @.str.4474, i64 6, i64 0 }, ptr %a83 + store { ptr, i64, i64 } { ptr @.str.4681, i64 6, i64 0 }, ptr %a83 call void @finch_str_concat(ptr %a81, ptr %a82, ptr %a83) store { ptr, i64, i64 } %t80, ptr %a84 call void @finch_str_drop(ptr %a84) @@ -69656,7 +73589,7 @@ then6895: call void @finch_str_drop(ptr %a90) %t91 = load { ptr, i64, i64 }, ptr %a87 store { ptr, i64, i64 } %t91, ptr %a93 - store { ptr, i64, i64 } { ptr @.str.4475, i64 1, i64 0 }, ptr %a94 + store { ptr, i64, i64 } { ptr @.str.4682, i64 1, i64 0 }, ptr %a94 call void @finch_str_concat(ptr %a92, ptr %a93, ptr %a94) store { ptr, i64, i64 } %t91, ptr %a95 call void @finch_str_drop(ptr %a95) @@ -69667,12 +73600,12 @@ then6895: store { ptr, i64, i64 } %t97, ptr %a99 %t100 = load ptr, ptr %a1 %t101 = load { ptr, i64, i64 }, ptr %a99 - store { ptr, i64, i64 } { ptr @.str.4476, i64 12, i64 0 }, ptr %a103 + store { ptr, i64, i64 } { ptr @.str.4683, i64 12, i64 0 }, ptr %a103 store { ptr, i64, i64 } %t101, ptr %a104 call void @finch_str_concat(ptr %a102, ptr %a103, ptr %a104) %t105 = load { ptr, i64, i64 }, ptr %a102 store { ptr, i64, i64 } %t105, ptr %a107 - store { ptr, i64, i64 } { ptr @.str.4477, i64 3, i64 0 }, ptr %a108 + store { ptr, i64, i64 } { ptr @.str.4684, i64 3, i64 0 }, ptr %a108 call void @finch_str_concat(ptr %a106, ptr %a107, ptr %a108) store { ptr, i64, i64 } %t105, ptr %a109 call void @finch_str_drop(ptr %a109) @@ -69682,27 +73615,27 @@ then6895: call void @finch_str_drop(ptr %a112) %t113 = load ptr, ptr %a1 %t114 = icmp eq ptr %t113, null - br i1 %t114, label %panic6898, label %ok6899 -panic6898: - call void @finch_panic(ptr @.str.4478, i64 3902, ptr @.str.4479) + br i1 %t114, label %panic7291, label %ok7292 +panic7291: + call void @finch_panic(ptr @.str.4685, i64 4129, ptr @.str.4686) unreachable -ok6899: - %t115 = getelementptr inbounds %S.gen.Gen, ptr %t113, i32 0, i32 41 +ok7292: + %t115 = getelementptr inbounds %S.gen.Gen, ptr %t113, i32 0, i32 42 %t116 = load { ptr, i64, i64 }, ptr %t115 store { ptr, i64, i64 } %t111, ptr %t115 store { ptr, i64, i64 } %t116, ptr %a117 call void @finch_str_drop(ptr %a117) %t118 = load ptr, ptr %a1 %t119 = load { ptr, i64, i64 }, ptr %a51 - %t120 = call { ptr, i64, i64 } @finch.gen.load(ptr %t118, { ptr, i64, i64 } { ptr @.str.4480, i64 17, i64 0 }, { ptr, i64, i64 } %t119) + %t120 = call { ptr, i64, i64 } @finch.gen.load(ptr %t118, { ptr, i64, i64 } { ptr @.str.4687, i64 17, i64 0 }, { ptr, i64, i64 } %t119) %t121 = load ptr, ptr %a1 %t122 = icmp eq ptr %t121, null - br i1 %t122, label %panic6900, label %ok6901 -panic6900: - call void @finch_panic(ptr @.str.4481, i64 3903, ptr @.str.4482) + br i1 %t122, label %panic7293, label %ok7294 +panic7293: + call void @finch_panic(ptr @.str.4688, i64 4130, ptr @.str.4689) unreachable -ok6901: - %t123 = getelementptr inbounds %S.gen.Gen, ptr %t121, i32 0, i32 42 +ok7294: + %t123 = getelementptr inbounds %S.gen.Gen, ptr %t121, i32 0, i32 43 %t124 = load { ptr, i64, i64 }, ptr %t123 store { ptr, i64, i64 } %t120, ptr %t123 store { ptr, i64, i64 } %t124, ptr %a125 @@ -69713,8 +73646,8 @@ ok6901: %t128 = load ptr, ptr %a1 %t129 = load ptr, ptr %a1 %t130 = load { ptr, i64, i64 }, ptr %a58 - %t131 = call { ptr, i64, i64 } @finch.gen.load(ptr %t129, { ptr, i64, i64 } { ptr @.str.4483, i64 3, i64 0 }, { ptr, i64, i64 } %t130) - %t132 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4484, i64 3, i64 0 }) + %t131 = call { ptr, i64, i64 } @finch.gen.load(ptr %t129, { ptr, i64, i64 } { ptr @.str.4690, i64 3, i64 0 }, { ptr, i64, i64 } %t130) + %t132 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4691, i64 3, i64 0 }) %t133 = load %S.ast.Type, ptr %a3 %t134 = call { ptr, i64, i64 } @finch.gen.intCast(ptr %t128, { ptr, i64, i64 } %t131, %S.ast.Type %t132, %S.ast.Type %t133) store { ptr, i64, i64 } %t131, ptr %a135 @@ -69733,25 +73666,25 @@ ok6901: call void @finch.drop.S_ast_Type(ptr %a23) call void @finch.drop.S_gen_Val(ptr %a17) ret %S.gen.Val %t142 -endif6897: +endif7290: %t143 = load ptr, ptr %a1 - %t144 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t143, { ptr, i64, i64 } { ptr @.str.4485, i64 6, i64 0 }) + %t144 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t143, { ptr, i64, i64 } { ptr @.str.4692, i64 6, i64 0 }) store { ptr, i64, i64 } %t144, ptr %a145 %t146 = load ptr, ptr %a1 %t147 = load { ptr, i64, i64 }, ptr %a145 - call void @finch.gen.store(ptr %t146, { ptr, i64, i64 } { ptr @.str.4486, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.4487, i64 3, i64 0 }, { ptr, i64, i64 } %t147) + call void @finch.gen.store(ptr %t146, { ptr, i64, i64 } { ptr @.str.4693, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.4694, i64 3, i64 0 }, { ptr, i64, i64 } %t147) %t148 = load ptr, ptr %a1 %t149 = load ptr, ptr %a1 %t150 = load %S.gen.Val, ptr %a17 %t151 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t149, %S.gen.Val %t150) - store { ptr, i64, i64 } { ptr @.str.4488, i64 34, i64 0 }, ptr %a153 + store { ptr, i64, i64 } { ptr @.str.4695, i64 34, i64 0 }, ptr %a153 store { ptr, i64, i64 } %t151, ptr %a154 call void @finch_str_concat(ptr %a152, ptr %a153, ptr %a154) store { ptr, i64, i64 } %t151, ptr %a155 call void @finch_str_drop(ptr %a155) %t156 = load { ptr, i64, i64 }, ptr %a152 store { ptr, i64, i64 } %t156, ptr %a158 - store { ptr, i64, i64 } { ptr @.str.4489, i64 6, i64 0 }, ptr %a159 + store { ptr, i64, i64 } { ptr @.str.4696, i64 6, i64 0 }, ptr %a159 call void @finch_str_concat(ptr %a157, ptr %a158, ptr %a159) store { ptr, i64, i64 } %t156, ptr %a160 call void @finch_str_drop(ptr %a160) @@ -69764,7 +73697,7 @@ endif6897: call void @finch_str_drop(ptr %a166) %t167 = load { ptr, i64, i64 }, ptr %a163 store { ptr, i64, i64 } %t167, ptr %a169 - store { ptr, i64, i64 } { ptr @.str.4490, i64 6, i64 0 }, ptr %a170 + store { ptr, i64, i64 } { ptr @.str.4697, i64 6, i64 0 }, ptr %a170 call void @finch_str_concat(ptr %a168, ptr %a169, ptr %a170) store { ptr, i64, i64 } %t167, ptr %a171 call void @finch_str_drop(ptr %a171) @@ -69777,7 +73710,7 @@ endif6897: call void @finch_str_drop(ptr %a177) %t178 = load { ptr, i64, i64 }, ptr %a174 store { ptr, i64, i64 } %t178, ptr %a180 - store { ptr, i64, i64 } { ptr @.str.4491, i64 1, i64 0 }, ptr %a181 + store { ptr, i64, i64 } { ptr @.str.4698, i64 1, i64 0 }, ptr %a181 call void @finch_str_concat(ptr %a179, ptr %a180, ptr %a181) store { ptr, i64, i64 } %t178, ptr %a182 call void @finch_str_drop(ptr %a182) @@ -69788,12 +73721,12 @@ endif6897: store { ptr, i64, i64 } %t184, ptr %a186 %t187 = load ptr, ptr %a1 %t188 = load { ptr, i64, i64 }, ptr %a186 - store { ptr, i64, i64 } { ptr @.str.4492, i64 12, i64 0 }, ptr %a190 + store { ptr, i64, i64 } { ptr @.str.4699, i64 12, i64 0 }, ptr %a190 store { ptr, i64, i64 } %t188, ptr %a191 call void @finch_str_concat(ptr %a189, ptr %a190, ptr %a191) %t192 = load { ptr, i64, i64 }, ptr %a189 store { ptr, i64, i64 } %t192, ptr %a194 - store { ptr, i64, i64 } { ptr @.str.4493, i64 3, i64 0 }, ptr %a195 + store { ptr, i64, i64 } { ptr @.str.4700, i64 3, i64 0 }, ptr %a195 call void @finch_str_concat(ptr %a193, ptr %a194, ptr %a195) store { ptr, i64, i64 } %t192, ptr %a196 call void @finch_str_drop(ptr %a196) @@ -69803,27 +73736,27 @@ endif6897: call void @finch_str_drop(ptr %a199) %t200 = load ptr, ptr %a1 %t201 = icmp eq ptr %t200, null - br i1 %t201, label %panic6902, label %ok6903 -panic6902: - call void @finch_panic(ptr @.str.4494, i64 3910, ptr @.str.4495) + br i1 %t201, label %panic7295, label %ok7296 +panic7295: + call void @finch_panic(ptr @.str.4701, i64 4137, ptr @.str.4702) unreachable -ok6903: - %t202 = getelementptr inbounds %S.gen.Gen, ptr %t200, i32 0, i32 41 +ok7296: + %t202 = getelementptr inbounds %S.gen.Gen, ptr %t200, i32 0, i32 42 %t203 = load { ptr, i64, i64 }, ptr %t202 store { ptr, i64, i64 } %t198, ptr %t202 store { ptr, i64, i64 } %t203, ptr %a204 call void @finch_str_drop(ptr %a204) %t205 = load ptr, ptr %a1 %t206 = load { ptr, i64, i64 }, ptr %a51 - %t207 = call { ptr, i64, i64 } @finch.gen.load(ptr %t205, { ptr, i64, i64 } { ptr @.str.4496, i64 17, i64 0 }, { ptr, i64, i64 } %t206) + %t207 = call { ptr, i64, i64 } @finch.gen.load(ptr %t205, { ptr, i64, i64 } { ptr @.str.4703, i64 17, i64 0 }, { ptr, i64, i64 } %t206) %t208 = load ptr, ptr %a1 %t209 = icmp eq ptr %t208, null - br i1 %t209, label %panic6904, label %ok6905 -panic6904: - call void @finch_panic(ptr @.str.4497, i64 3911, ptr @.str.4498) + br i1 %t209, label %panic7297, label %ok7298 +panic7297: + call void @finch_panic(ptr @.str.4704, i64 4138, ptr @.str.4705) unreachable -ok6905: - %t210 = getelementptr inbounds %S.gen.Gen, ptr %t208, i32 0, i32 42 +ok7298: + %t210 = getelementptr inbounds %S.gen.Gen, ptr %t208, i32 0, i32 43 %t211 = load { ptr, i64, i64 }, ptr %t210 store { ptr, i64, i64 } %t207, ptr %t210 store { ptr, i64, i64 } %t211, ptr %a212 @@ -69834,8 +73767,8 @@ ok6905: %t215 = load ptr, ptr %a1 %t216 = load ptr, ptr %a1 %t217 = load { ptr, i64, i64 }, ptr %a145 - %t218 = call { ptr, i64, i64 } @finch.gen.load(ptr %t216, { ptr, i64, i64 } { ptr @.str.4499, i64 6, i64 0 }, { ptr, i64, i64 } %t217) - %t219 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4500, i64 5, i64 0 }) + %t218 = call { ptr, i64, i64 } @finch.gen.load(ptr %t216, { ptr, i64, i64 } { ptr @.str.4706, i64 6, i64 0 }, { ptr, i64, i64 } %t217) + %t219 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4707, i64 5, i64 0 }) %t220 = load %S.ast.Type, ptr %a3 %t221 = call { ptr, i64, i64 } @finch.gen.floatCast(ptr %t215, { ptr, i64, i64 } %t218, %S.ast.Type %t219, %S.ast.Type %t220) store { ptr, i64, i64 } %t218, ptr %a222 @@ -69854,45 +73787,45 @@ ok6905: call void @finch.drop.S_ast_Type(ptr %a23) call void @finch.drop.S_gen_Val(ptr %a17) ret %S.gen.Val %t229 -endif6894: +endif7287: %t230 = getelementptr inbounds %S.ast.Type, ptr %a23, i32 0, i32 0 %t231 = load { ptr, i64, i64 }, ptr %t230 store { ptr, i64, i64 } %t231, ptr %a232 - store { ptr, i64, i64 } { ptr @.str.4501, i64 3, i64 0 }, ptr %a233 + store { ptr, i64, i64 } { ptr @.str.4708, i64 3, i64 0 }, ptr %a233 %t234 = call i32 @finch_str_eq(ptr %a232, ptr %a233) %t235 = icmp ne i32 %t234, 0 - br label %logic.from6906 -logic.from6906: - br i1 %t235, label %logic.rhs6907, label %logic.end6908 -logic.rhs6907: + br label %logic.from7299 +logic.from7299: + br i1 %t235, label %logic.rhs7300, label %logic.end7301 +logic.rhs7300: %t236 = load %S.ast.Type, ptr %a3 %t237 = call i1 @finch.gen.isNumber(%S.ast.Type %t236) - br label %logic.rend6909 -logic.rend6909: - br label %logic.end6908 -logic.end6908: - %t238 = phi i1 [ false, %logic.from6906 ], [ %t237, %logic.rend6909 ] - br i1 %t238, label %then6910, label %endif6912 -then6910: + br label %logic.rend7302 +logic.rend7302: + br label %logic.end7301 +logic.end7301: + %t238 = phi i1 [ false, %logic.from7299 ], [ %t237, %logic.rend7302 ] + br i1 %t238, label %then7303, label %endif7305 +then7303: %t239 = load ptr, ptr %a1 %t240 = load ptr, ptr %a1 %t241 = icmp eq ptr %t240, null - br i1 %t241, label %panic6913, label %ok6914 -panic6913: - call void @finch_panic(ptr @.str.4502, i64 3916, ptr @.str.4503) + br i1 %t241, label %panic7306, label %ok7307 +panic7306: + call void @finch_panic(ptr @.str.4709, i64 4143, ptr @.str.4710) unreachable -ok6914: +ok7307: %t242 = getelementptr inbounds %S.gen.Gen, ptr %t240, i32 0, i32 1 %t243 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 13 %t244 = load i64, ptr %t243 %t245 = load { ptr, i64, i64 }, ptr %t242 %t246 = extractvalue { ptr, i64, i64 } %t245, 1 %t247 = icmp uge i64 %t244, %t246 - br i1 %t247, label %range6915, label %inrange6916 -range6915: - call void @finch_panic_index(ptr @.str.4504, i64 3916, i64 %t244, i64 %t246) + br i1 %t247, label %range7308, label %inrange7309 +range7308: + call void @finch_panic_index(ptr @.str.4711, i64 4143, i64 %t244, i64 %t246) unreachable -inrange6916: +inrange7309: %t248 = extractvalue { ptr, i64, i64 } %t245, 0 %t249 = getelementptr inbounds { ptr, i64, i64 }, ptr %t248, i64 %t244 %t250 = load { ptr, i64, i64 }, ptr %t249 @@ -69900,20 +73833,20 @@ inrange6916: store { ptr, i64, i64 } %t251, ptr %a252 %t253 = load %S.ast.Type, ptr %a3 %t254 = call i1 @finch.gen.isInt(%S.ast.Type %t253) - br i1 %t254, label %then6917, label %endif6919 -then6917: + br i1 %t254, label %then7310, label %endif7312 +then7310: %t255 = load ptr, ptr %a1 %t256 = load ptr, ptr %a1 %t257 = load %S.gen.Val, ptr %a17 %t258 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t256, %S.gen.Val %t257) - store { ptr, i64, i64 } { ptr @.str.4505, i64 31, i64 0 }, ptr %a260 + store { ptr, i64, i64 } { ptr @.str.4712, i64 31, i64 0 }, ptr %a260 store { ptr, i64, i64 } %t258, ptr %a261 call void @finch_str_concat(ptr %a259, ptr %a260, ptr %a261) store { ptr, i64, i64 } %t258, ptr %a262 call void @finch_str_drop(ptr %a262) %t263 = load { ptr, i64, i64 }, ptr %a259 store { ptr, i64, i64 } %t263, ptr %a265 - store { ptr, i64, i64 } { ptr @.str.4506, i64 6, i64 0 }, ptr %a266 + store { ptr, i64, i64 } { ptr @.str.4713, i64 6, i64 0 }, ptr %a266 call void @finch_str_concat(ptr %a264, ptr %a265, ptr %a266) store { ptr, i64, i64 } %t263, ptr %a267 call void @finch_str_drop(ptr %a267) @@ -69926,7 +73859,7 @@ then6917: call void @finch_str_drop(ptr %a273) %t274 = load { ptr, i64, i64 }, ptr %a270 store { ptr, i64, i64 } %t274, ptr %a276 - store { ptr, i64, i64 } { ptr @.str.4507, i64 6, i64 0 }, ptr %a277 + store { ptr, i64, i64 } { ptr @.str.4714, i64 6, i64 0 }, ptr %a277 call void @finch_str_concat(ptr %a275, ptr %a276, ptr %a277) store { ptr, i64, i64 } %t274, ptr %a278 call void @finch_str_drop(ptr %a278) @@ -69944,7 +73877,7 @@ then6917: call void @finch_str_drop(ptr %a288) %t289 = load { ptr, i64, i64 }, ptr %a284 store { ptr, i64, i64 } %t289, ptr %a291 - store { ptr, i64, i64 } { ptr @.str.4508, i64 1, i64 0 }, ptr %a292 + store { ptr, i64, i64 } { ptr @.str.4715, i64 1, i64 0 }, ptr %a292 call void @finch_str_concat(ptr %a290, ptr %a291, ptr %a292) store { ptr, i64, i64 } %t289, ptr %a293 call void @finch_str_drop(ptr %a293) @@ -69958,7 +73891,7 @@ then6917: call void @finch.gen.release(ptr %t298, %S.gen.Val %t299) %t300 = load ptr, ptr %a1 %t301 = load { ptr, i64, i64 }, ptr %a297 - %t302 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4509, i64 3, i64 0 }) + %t302 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4716, i64 3, i64 0 }) %t303 = load %S.ast.Type, ptr %a3 %t304 = call { ptr, i64, i64 } @finch.gen.intCast(ptr %t300, { ptr, i64, i64 } %t301, %S.ast.Type %t302, %S.ast.Type %t303) store %S.ast.Type %t302, ptr %a305 @@ -69974,19 +73907,19 @@ then6917: call void @finch.drop.S_ast_Type(ptr %a23) call void @finch.drop.S_gen_Val(ptr %a17) ret %S.gen.Val %t311 -endif6919: +endif7312: %t312 = load ptr, ptr %a1 %t313 = load ptr, ptr %a1 %t314 = load %S.gen.Val, ptr %a17 %t315 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t313, %S.gen.Val %t314) - store { ptr, i64, i64 } { ptr @.str.4510, i64 36, i64 0 }, ptr %a317 + store { ptr, i64, i64 } { ptr @.str.4717, i64 36, i64 0 }, ptr %a317 store { ptr, i64, i64 } %t315, ptr %a318 call void @finch_str_concat(ptr %a316, ptr %a317, ptr %a318) store { ptr, i64, i64 } %t315, ptr %a319 call void @finch_str_drop(ptr %a319) %t320 = load { ptr, i64, i64 }, ptr %a316 store { ptr, i64, i64 } %t320, ptr %a322 - store { ptr, i64, i64 } { ptr @.str.4511, i64 6, i64 0 }, ptr %a323 + store { ptr, i64, i64 } { ptr @.str.4718, i64 6, i64 0 }, ptr %a323 call void @finch_str_concat(ptr %a321, ptr %a322, ptr %a323) store { ptr, i64, i64 } %t320, ptr %a324 call void @finch_str_drop(ptr %a324) @@ -69999,7 +73932,7 @@ endif6919: call void @finch_str_drop(ptr %a330) %t331 = load { ptr, i64, i64 }, ptr %a327 store { ptr, i64, i64 } %t331, ptr %a333 - store { ptr, i64, i64 } { ptr @.str.4512, i64 6, i64 0 }, ptr %a334 + store { ptr, i64, i64 } { ptr @.str.4719, i64 6, i64 0 }, ptr %a334 call void @finch_str_concat(ptr %a332, ptr %a333, ptr %a334) store { ptr, i64, i64 } %t331, ptr %a335 call void @finch_str_drop(ptr %a335) @@ -70017,7 +73950,7 @@ endif6919: call void @finch_str_drop(ptr %a345) %t346 = load { ptr, i64, i64 }, ptr %a341 store { ptr, i64, i64 } %t346, ptr %a348 - store { ptr, i64, i64 } { ptr @.str.4513, i64 1, i64 0 }, ptr %a349 + store { ptr, i64, i64 } { ptr @.str.4720, i64 1, i64 0 }, ptr %a349 call void @finch_str_concat(ptr %a347, ptr %a348, ptr %a349) store { ptr, i64, i64 } %t346, ptr %a350 call void @finch_str_drop(ptr %a350) @@ -70031,7 +73964,7 @@ endif6919: call void @finch.gen.release(ptr %t355, %S.gen.Val %t356) %t357 = load ptr, ptr %a1 %t358 = load { ptr, i64, i64 }, ptr %a354 - %t359 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4514, i64 5, i64 0 }) + %t359 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4721, i64 5, i64 0 }) %t360 = load %S.ast.Type, ptr %a3 %t361 = call { ptr, i64, i64 } @finch.gen.floatCast(ptr %t357, { ptr, i64, i64 } %t358, %S.ast.Type %t359, %S.ast.Type %t360) store %S.ast.Type %t359, ptr %a362 @@ -70047,30 +73980,30 @@ endif6919: call void @finch.drop.S_ast_Type(ptr %a23) call void @finch.drop.S_gen_Val(ptr %a17) ret %S.gen.Val %t368 -endif6912: +endif7305: %t369 = load %S.ast.Type, ptr %a3 %t370 = call i1 @finch.gen.isInt(%S.ast.Type %t369) - br label %logic.from6920 -logic.from6920: - br i1 %t370, label %logic.rhs6921, label %logic.end6922 -logic.rhs6921: + br label %logic.from7313 +logic.from7313: + br i1 %t370, label %logic.rhs7314, label %logic.end7315 +logic.rhs7314: %t371 = getelementptr inbounds %S.ast.Type, ptr %a23, i32 0, i32 0 %t372 = load { ptr, i64, i64 }, ptr %t371 store { ptr, i64, i64 } %t372, ptr %a373 - store { ptr, i64, i64 } { ptr @.str.4515, i64 4, i64 0 }, ptr %a374 + store { ptr, i64, i64 } { ptr @.str.4722, i64 4, i64 0 }, ptr %a374 %t375 = call i32 @finch_str_eq(ptr %a373, ptr %a374) %t376 = icmp ne i32 %t375, 0 - br label %logic.rend6923 -logic.rend6923: - br label %logic.end6922 -logic.end6922: - %t377 = phi i1 [ false, %logic.from6920 ], [ %t376, %logic.rend6923 ] - br i1 %t377, label %then6924, label %endif6926 -then6924: + br label %logic.rend7316 +logic.rend7316: + br label %logic.end7315 +logic.end7315: + %t377 = phi i1 [ false, %logic.from7313 ], [ %t376, %logic.rend7316 ] + br i1 %t377, label %then7317, label %endif7319 +then7317: %t378 = load ptr, ptr %a1 %t379 = getelementptr inbounds %S.gen.Val, ptr %a17, i32 0, i32 0 %t380 = load { ptr, i64, i64 }, ptr %t379 - %t381 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4516, i64 3, i64 0 }) + %t381 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4723, i64 3, i64 0 }) %t382 = load %S.ast.Type, ptr %a3 %t383 = call { ptr, i64, i64 } @finch.gen.intCast(ptr %t378, { ptr, i64, i64 } %t380, %S.ast.Type %t381, %S.ast.Type %t382) store %S.ast.Type %t381, ptr %a384 @@ -70084,45 +74017,45 @@ then6924: call void @finch.drop.S_ast_Type(ptr %a23) call void @finch.drop.S_gen_Val(ptr %a17) ret %S.gen.Val %t390 -endif6926: +endif7319: %t391 = load %S.ast.Type, ptr %a3 %t392 = call i1 @finch.gen.isInt(%S.ast.Type %t391) - br label %logic.from6927 -logic.from6927: - br i1 %t392, label %logic.end6929, label %logic.rhs6928 -logic.rhs6928: + br label %logic.from7320 +logic.from7320: + br i1 %t392, label %logic.end7322, label %logic.rhs7321 +logic.rhs7321: %t393 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t394 = load { ptr, i64, i64 }, ptr %t393 store { ptr, i64, i64 } %t394, ptr %a395 - store { ptr, i64, i64 } { ptr @.str.4517, i64 4, i64 0 }, ptr %a396 + store { ptr, i64, i64 } { ptr @.str.4724, i64 4, i64 0 }, ptr %a396 %t397 = call i32 @finch_str_eq(ptr %a395, ptr %a396) %t398 = icmp ne i32 %t397, 0 - br label %logic.rend6930 -logic.rend6930: - br label %logic.end6929 -logic.end6929: - %t399 = phi i1 [ true, %logic.from6927 ], [ %t398, %logic.rend6930 ] - br i1 %t399, label %then6931, label %endif6933 -then6931: + br label %logic.rend7323 +logic.rend7323: + br label %logic.end7322 +logic.end7322: + %t399 = phi i1 [ true, %logic.from7320 ], [ %t398, %logic.rend7323 ] + br i1 %t399, label %then7324, label %endif7326 +then7324: %t400 = load %S.ast.Type, ptr %a23 %t401 = call i1 @finch.gen.isInt(%S.ast.Type %t400) - br label %logic.from6934 -logic.from6934: - br i1 %t401, label %logic.end6936, label %logic.rhs6935 -logic.rhs6935: + br label %logic.from7327 +logic.from7327: + br i1 %t401, label %logic.end7329, label %logic.rhs7328 +logic.rhs7328: %t402 = getelementptr inbounds %S.ast.Type, ptr %a23, i32 0, i32 0 %t403 = load { ptr, i64, i64 }, ptr %t402 store { ptr, i64, i64 } %t403, ptr %a404 - store { ptr, i64, i64 } { ptr @.str.4518, i64 4, i64 0 }, ptr %a405 + store { ptr, i64, i64 } { ptr @.str.4725, i64 4, i64 0 }, ptr %a405 %t406 = call i32 @finch_str_eq(ptr %a404, ptr %a405) %t407 = icmp ne i32 %t406, 0 - br label %logic.rend6937 -logic.rend6937: - br label %logic.end6936 -logic.end6936: - %t408 = phi i1 [ true, %logic.from6934 ], [ %t407, %logic.rend6937 ] - br i1 %t408, label %then6938, label %endif6940 -then6938: + br label %logic.rend7330 +logic.rend7330: + br label %logic.end7329 +logic.end7329: + %t408 = phi i1 [ true, %logic.from7327 ], [ %t407, %logic.rend7330 ] + br i1 %t408, label %then7331, label %endif7333 +then7331: %t409 = load ptr, ptr %a1 %t410 = getelementptr inbounds %S.gen.Val, ptr %a17, i32 0, i32 0 %t411 = load { ptr, i64, i64 }, ptr %t410 @@ -70138,24 +74071,24 @@ then6938: call void @finch.drop.S_ast_Type(ptr %a23) call void @finch.drop.S_gen_Val(ptr %a17) ret %S.gen.Val %t420 -endif6940: +endif7333: %t421 = getelementptr inbounds %S.ast.Type, ptr %a23, i32 0, i32 0 %t422 = load { ptr, i64, i64 }, ptr %t421 store { ptr, i64, i64 } %t422, ptr %a423 - store { ptr, i64, i64 } { ptr @.str.4519, i64 4, i64 0 }, ptr %a424 + store { ptr, i64, i64 } { ptr @.str.4726, i64 4, i64 0 }, ptr %a424 %t425 = call i32 @finch_str_eq(ptr %a423, ptr %a424) %t426 = icmp ne i32 %t425, 0 - br i1 %t426, label %then6941, label %endif6943 -then6941: + br i1 %t426, label %then7334, label %endif7336 +then7334: %t427 = load ptr, ptr %a1 %t428 = getelementptr inbounds %S.gen.Val, ptr %a17, i32 0, i32 0 %t429 = load { ptr, i64, i64 }, ptr %t428 - store { ptr, i64, i64 } { ptr @.str.4520, i64 8, i64 0 }, ptr %a431 + store { ptr, i64, i64 } { ptr @.str.4727, i64 8, i64 0 }, ptr %a431 store { ptr, i64, i64 } %t429, ptr %a432 call void @finch_str_concat(ptr %a430, ptr %a431, ptr %a432) %t433 = load { ptr, i64, i64 }, ptr %a430 store { ptr, i64, i64 } %t433, ptr %a435 - store { ptr, i64, i64 } { ptr @.str.4521, i64 4, i64 0 }, ptr %a436 + store { ptr, i64, i64 } { ptr @.str.4728, i64 4, i64 0 }, ptr %a436 call void @finch_str_concat(ptr %a434, ptr %a435, ptr %a436) store { ptr, i64, i64 } %t433, ptr %a437 call void @finch_str_drop(ptr %a437) @@ -70183,37 +74116,37 @@ then6941: call void @finch.drop.S_ast_Type(ptr %a23) call void @finch.drop.S_gen_Val(ptr %a17) ret %S.gen.Val %t455 -endif6943: +endif7336: %t456 = load %S.ast.Type, ptr %a23 %t457 = call i1 @finch.gen.isFloat(%S.ast.Type %t456) - br label %logic.from6944 -logic.from6944: - br i1 %t457, label %logic.rhs6945, label %logic.end6946 -logic.rhs6945: + br label %logic.from7337 +logic.from7337: + br i1 %t457, label %logic.rhs7338, label %logic.end7339 +logic.rhs7338: %t458 = load %S.ast.Type, ptr %a3 %t459 = call i1 @finch.gen.isInt(%S.ast.Type %t458) - br label %logic.rend6947 -logic.rend6947: - br label %logic.end6946 -logic.end6946: - %t460 = phi i1 [ false, %logic.from6944 ], [ %t459, %logic.rend6947 ] - br i1 %t460, label %then6948, label %endif6950 -then6948: - store { ptr, i64, i64 } { ptr @.str.4522, i64 6, i64 0 }, ptr %a461 + br label %logic.rend7340 +logic.rend7340: + br label %logic.end7339 +logic.end7339: + %t460 = phi i1 [ false, %logic.from7337 ], [ %t459, %logic.rend7340 ] + br i1 %t460, label %then7341, label %endif7343 +then7341: + store { ptr, i64, i64 } { ptr @.str.4729, i64 6, i64 0 }, ptr %a461 %t462 = load %S.ast.Type, ptr %a3 %t463 = call i1 @finch.gen.isSigned(%S.ast.Type %t462) - br i1 %t463, label %then6951, label %endif6953 -then6951: + br i1 %t463, label %then7344, label %endif7346 +then7344: %t464 = load { ptr, i64, i64 }, ptr %a461 - store { ptr, i64, i64 } { ptr @.str.4523, i64 6, i64 0 }, ptr %a461 + store { ptr, i64, i64 } { ptr @.str.4730, i64 6, i64 0 }, ptr %a461 store { ptr, i64, i64 } %t464, ptr %a465 call void @finch_str_drop(ptr %a465) - br label %endif6953 -endif6953: + br label %endif7346 +endif7346: %t466 = load ptr, ptr %a1 %t467 = load { ptr, i64, i64 }, ptr %a461 store { ptr, i64, i64 } %t467, ptr %a469 - store { ptr, i64, i64 } { ptr @.str.4524, i64 1, i64 0 }, ptr %a470 + store { ptr, i64, i64 } { ptr @.str.4731, i64 1, i64 0 }, ptr %a470 call void @finch_str_concat(ptr %a468, ptr %a469, ptr %a470) %t471 = load { ptr, i64, i64 }, ptr %a468 %t472 = load ptr, ptr %a1 @@ -70228,7 +74161,7 @@ endif6953: call void @finch_str_drop(ptr %a479) %t480 = load { ptr, i64, i64 }, ptr %a475 store { ptr, i64, i64 } %t480, ptr %a482 - store { ptr, i64, i64 } { ptr @.str.4525, i64 1, i64 0 }, ptr %a483 + store { ptr, i64, i64 } { ptr @.str.4732, i64 1, i64 0 }, ptr %a483 call void @finch_str_concat(ptr %a481, ptr %a482, ptr %a483) store { ptr, i64, i64 } %t480, ptr %a484 call void @finch_str_drop(ptr %a484) @@ -70242,7 +74175,7 @@ endif6953: call void @finch_str_drop(ptr %a491) %t492 = load { ptr, i64, i64 }, ptr %a488 store { ptr, i64, i64 } %t492, ptr %a494 - store { ptr, i64, i64 } { ptr @.str.4526, i64 4, i64 0 }, ptr %a495 + store { ptr, i64, i64 } { ptr @.str.4733, i64 4, i64 0 }, ptr %a495 call void @finch_str_concat(ptr %a493, ptr %a494, ptr %a495) store { ptr, i64, i64 } %t492, ptr %a496 call void @finch_str_drop(ptr %a496) @@ -70271,17 +74204,17 @@ endif6953: call void @finch.drop.S_ast_Type(ptr %a23) call void @finch.drop.S_gen_Val(ptr %a17) ret %S.gen.Val %t514 -endif6950: - br label %endif6933 -endif6933: +endif7343: + br label %endif7326 +endif7326: %t515 = load %S.ast.Type, ptr %a3 %t516 = call i1 @finch.gen.isFloat(%S.ast.Type %t515) - br i1 %t516, label %then6954, label %endif6956 -then6954: + br i1 %t516, label %then7347, label %endif7349 +then7347: %t517 = load %S.ast.Type, ptr %a23 %t518 = call i1 @finch.gen.isInt(%S.ast.Type %t517) - br i1 %t518, label %then6957, label %endif6959 -then6957: + br i1 %t518, label %then7350, label %endif7352 +then7350: %t519 = load ptr, ptr %a1 %t520 = getelementptr inbounds %S.gen.Val, ptr %a17, i32 0, i32 0 %t521 = load { ptr, i64, i64 }, ptr %t520 @@ -70297,11 +74230,11 @@ then6957: call void @finch.drop.S_ast_Type(ptr %a23) call void @finch.drop.S_gen_Val(ptr %a17) ret %S.gen.Val %t530 -endif6959: +endif7352: %t531 = load %S.ast.Type, ptr %a23 %t532 = call i1 @finch.gen.isFloat(%S.ast.Type %t531) - br i1 %t532, label %then6960, label %endif6962 -then6960: + br i1 %t532, label %then7353, label %endif7355 +then7353: %t533 = load ptr, ptr %a1 %t534 = getelementptr inbounds %S.gen.Val, ptr %a17, i32 0, i32 0 %t535 = load { ptr, i64, i64 }, ptr %t534 @@ -70317,40 +74250,40 @@ then6960: call void @finch.drop.S_ast_Type(ptr %a23) call void @finch.drop.S_gen_Val(ptr %a17) ret %S.gen.Val %t544 -endif6962: - br label %endif6956 -endif6956: +endif7355: + br label %endif7349 +endif7349: %t545 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t546 = load { ptr, i64, i64 }, ptr %t545 store { ptr, i64, i64 } %t546, ptr %a547 - store { ptr, i64, i64 } { ptr @.str.4527, i64 4, i64 0 }, ptr %a548 + store { ptr, i64, i64 } { ptr @.str.4734, i64 4, i64 0 }, ptr %a548 %t549 = call i32 @finch_str_eq(ptr %a547, ptr %a548) %t550 = icmp ne i32 %t549, 0 - br label %logic.from6963 -logic.from6963: - br i1 %t550, label %logic.rhs6964, label %logic.end6965 -logic.rhs6964: + br label %logic.from7356 +logic.from7356: + br i1 %t550, label %logic.rhs7357, label %logic.end7358 +logic.rhs7357: %t551 = load %S.ast.Type, ptr %a23 %t552 = call i1 @finch.gen.isInt(%S.ast.Type %t551) - br label %logic.rend6966 -logic.rend6966: - br label %logic.end6965 -logic.end6965: - %t553 = phi i1 [ false, %logic.from6963 ], [ %t552, %logic.rend6966 ] - br i1 %t553, label %then6967, label %endif6969 -then6967: + br label %logic.rend7359 +logic.rend7359: + br label %logic.end7358 +logic.end7358: + %t553 = phi i1 [ false, %logic.from7356 ], [ %t552, %logic.rend7359 ] + br i1 %t553, label %then7360, label %endif7362 +then7360: %t554 = load ptr, ptr %a1 %t555 = load ptr, ptr %a1 %t556 = load %S.ast.Type, ptr %a23 %t557 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t555, %S.ast.Type %t556) - store { ptr, i64, i64 } { ptr @.str.4528, i64 8, i64 0 }, ptr %a559 + store { ptr, i64, i64 } { ptr @.str.4735, i64 8, i64 0 }, ptr %a559 store { ptr, i64, i64 } %t557, ptr %a560 call void @finch_str_concat(ptr %a558, ptr %a559, ptr %a560) store { ptr, i64, i64 } %t557, ptr %a561 call void @finch_str_drop(ptr %a561) %t562 = load { ptr, i64, i64 }, ptr %a558 store { ptr, i64, i64 } %t562, ptr %a564 - store { ptr, i64, i64 } { ptr @.str.4529, i64 1, i64 0 }, ptr %a565 + store { ptr, i64, i64 } { ptr @.str.4736, i64 1, i64 0 }, ptr %a565 call void @finch_str_concat(ptr %a563, ptr %a564, ptr %a565) store { ptr, i64, i64 } %t562, ptr %a566 call void @finch_str_drop(ptr %a566) @@ -70364,7 +74297,7 @@ then6967: call void @finch_str_drop(ptr %a573) %t574 = load { ptr, i64, i64 }, ptr %a570 store { ptr, i64, i64 } %t574, ptr %a576 - store { ptr, i64, i64 } { ptr @.str.4530, i64 3, i64 0 }, ptr %a577 + store { ptr, i64, i64 } { ptr @.str.4737, i64 3, i64 0 }, ptr %a577 call void @finch_str_concat(ptr %a575, ptr %a576, ptr %a577) store { ptr, i64, i64 } %t574, ptr %a578 call void @finch_str_drop(ptr %a578) @@ -70381,45 +74314,45 @@ then6967: call void @finch.drop.S_ast_Type(ptr %a23) call void @finch.drop.S_gen_Val(ptr %a17) ret %S.gen.Val %t587 -endif6969: +endif7362: %t588 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t589 = load { ptr, i64, i64 }, ptr %t588 store { ptr, i64, i64 } %t589, ptr %a590 - store { ptr, i64, i64 } { ptr @.str.4531, i64 3, i64 0 }, ptr %a591 + store { ptr, i64, i64 } { ptr @.str.4738, i64 3, i64 0 }, ptr %a591 %t592 = call i32 @finch_str_eq(ptr %a590, ptr %a591) %t593 = icmp ne i32 %t592, 0 - br label %logic.from6970 -logic.from6970: - br i1 %t593, label %logic.rhs6971, label %logic.end6972 -logic.rhs6971: + br label %logic.from7363 +logic.from7363: + br i1 %t593, label %logic.rhs7364, label %logic.end7365 +logic.rhs7364: %t594 = getelementptr inbounds %S.ast.Type, ptr %a23, i32 0, i32 0 %t595 = load { ptr, i64, i64 }, ptr %t594 store { ptr, i64, i64 } %t595, ptr %a596 - store { ptr, i64, i64 } { ptr @.str.4532, i64 3, i64 0 }, ptr %a597 + store { ptr, i64, i64 } { ptr @.str.4739, i64 3, i64 0 }, ptr %a597 %t598 = call i32 @finch_str_eq(ptr %a596, ptr %a597) %t599 = icmp ne i32 %t598, 0 - br label %logic.from6973 -logic.from6973: - br i1 %t599, label %logic.end6975, label %logic.rhs6974 -logic.rhs6974: + br label %logic.from7366 +logic.from7366: + br i1 %t599, label %logic.end7368, label %logic.rhs7367 +logic.rhs7367: %t600 = getelementptr inbounds %S.ast.Type, ptr %a23, i32 0, i32 0 %t601 = load { ptr, i64, i64 }, ptr %t600 store { ptr, i64, i64 } %t601, ptr %a602 - store { ptr, i64, i64 } { ptr @.str.4533, i64 4, i64 0 }, ptr %a603 + store { ptr, i64, i64 } { ptr @.str.4740, i64 4, i64 0 }, ptr %a603 %t604 = call i32 @finch_str_eq(ptr %a602, ptr %a603) %t605 = icmp ne i32 %t604, 0 - br label %logic.rend6976 -logic.rend6976: - br label %logic.end6975 -logic.end6975: - %t606 = phi i1 [ true, %logic.from6973 ], [ %t605, %logic.rend6976 ] - br label %logic.rend6977 -logic.rend6977: - br label %logic.end6972 -logic.end6972: - %t607 = phi i1 [ false, %logic.from6970 ], [ %t606, %logic.rend6977 ] - br i1 %t607, label %then6978, label %endif6980 -then6978: + br label %logic.rend7369 +logic.rend7369: + br label %logic.end7368 +logic.end7368: + %t606 = phi i1 [ true, %logic.from7366 ], [ %t605, %logic.rend7369 ] + br label %logic.rend7370 +logic.rend7370: + br label %logic.end7365 +logic.end7365: + %t607 = phi i1 [ false, %logic.from7363 ], [ %t606, %logic.rend7370 ] + br i1 %t607, label %then7371, label %endif7373 +then7371: %t608 = getelementptr inbounds %S.gen.Val, ptr %a17, i32 0, i32 0 %t609 = load { ptr, i64, i64 }, ptr %t608 store { ptr, i64, i64 } %t609, ptr %a610 @@ -70434,43 +74367,43 @@ then6978: call void @finch.drop.S_ast_Type(ptr %a23) call void @finch.drop.S_gen_Val(ptr %a17) ret %S.gen.Val %t618 -endif6980: +endif7373: %t619 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t620 = load { ptr, i64, i64 }, ptr %t619 store { ptr, i64, i64 } %t620, ptr %a621 - store { ptr, i64, i64 } { ptr @.str.4534, i64 3, i64 0 }, ptr %a622 + store { ptr, i64, i64 } { ptr @.str.4741, i64 3, i64 0 }, ptr %a622 %t623 = call i32 @finch_str_eq(ptr %a621, ptr %a622) %t624 = icmp ne i32 %t623, 0 - br label %logic.from6981 -logic.from6981: - br i1 %t624, label %logic.rhs6982, label %logic.end6983 -logic.rhs6982: + br label %logic.from7374 +logic.from7374: + br i1 %t624, label %logic.rhs7375, label %logic.end7376 +logic.rhs7375: %t625 = load %S.ast.Type, ptr %a23 %t626 = call i1 @finch.gen.isInt(%S.ast.Type %t625) - br label %logic.rend6984 -logic.rend6984: - br label %logic.end6983 -logic.end6983: - %t627 = phi i1 [ false, %logic.from6981 ], [ %t626, %logic.rend6984 ] - br i1 %t627, label %then6985, label %endif6987 -then6985: + br label %logic.rend7377 +logic.rend7377: + br label %logic.end7376 +logic.end7376: + %t627 = phi i1 [ false, %logic.from7374 ], [ %t626, %logic.rend7377 ] + br i1 %t627, label %then7378, label %endif7380 +then7378: %t628 = load ptr, ptr %a1 %t629 = load ptr, ptr %a1 %t630 = getelementptr inbounds %S.gen.Val, ptr %a17, i32 0, i32 0 %t631 = load { ptr, i64, i64 }, ptr %t630 %t632 = load %S.ast.Type, ptr %a23 - %t633 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4536, i64 3, i64 0 }) + %t633 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4743, i64 3, i64 0 }) %t634 = call { ptr, i64, i64 } @finch.gen.intCast(ptr %t629, { ptr, i64, i64 } %t631, %S.ast.Type %t632, %S.ast.Type %t633) store %S.ast.Type %t633, ptr %a635 call void @finch.drop.S_ast_Type(ptr %a635) - store { ptr, i64, i64 } { ptr @.str.4535, i64 13, i64 0 }, ptr %a637 + store { ptr, i64, i64 } { ptr @.str.4742, i64 13, i64 0 }, ptr %a637 store { ptr, i64, i64 } %t634, ptr %a638 call void @finch_str_concat(ptr %a636, ptr %a637, ptr %a638) store { ptr, i64, i64 } %t634, ptr %a639 call void @finch_str_drop(ptr %a639) %t640 = load { ptr, i64, i64 }, ptr %a636 store { ptr, i64, i64 } %t640, ptr %a642 - store { ptr, i64, i64 } { ptr @.str.4537, i64 7, i64 0 }, ptr %a643 + store { ptr, i64, i64 } { ptr @.str.4744, i64 7, i64 0 }, ptr %a643 call void @finch_str_concat(ptr %a641, ptr %a642, ptr %a643) store { ptr, i64, i64 } %t640, ptr %a644 call void @finch_str_drop(ptr %a644) @@ -70487,35 +74420,35 @@ then6985: call void @finch.drop.S_ast_Type(ptr %a23) call void @finch.drop.S_gen_Val(ptr %a17) ret %S.gen.Val %t653 -endif6987: +endif7380: %t654 = load %S.ast.Type, ptr %a3 %t655 = call i1 @finch.gen.isInt(%S.ast.Type %t654) - br label %logic.from6988 -logic.from6988: - br i1 %t655, label %logic.rhs6989, label %logic.end6990 -logic.rhs6989: + br label %logic.from7381 +logic.from7381: + br i1 %t655, label %logic.rhs7382, label %logic.end7383 +logic.rhs7382: %t656 = getelementptr inbounds %S.ast.Type, ptr %a23, i32 0, i32 0 %t657 = load { ptr, i64, i64 }, ptr %t656 store { ptr, i64, i64 } %t657, ptr %a658 - store { ptr, i64, i64 } { ptr @.str.4538, i64 3, i64 0 }, ptr %a659 + store { ptr, i64, i64 } { ptr @.str.4745, i64 3, i64 0 }, ptr %a659 %t660 = call i32 @finch_str_eq(ptr %a658, ptr %a659) %t661 = icmp ne i32 %t660, 0 - br label %logic.rend6991 -logic.rend6991: - br label %logic.end6990 -logic.end6990: - %t662 = phi i1 [ false, %logic.from6988 ], [ %t661, %logic.rend6991 ] - br i1 %t662, label %then6992, label %endif6994 -then6992: + br label %logic.rend7384 +logic.rend7384: + br label %logic.end7383 +logic.end7383: + %t662 = phi i1 [ false, %logic.from7381 ], [ %t661, %logic.rend7384 ] + br i1 %t662, label %then7385, label %endif7387 +then7385: %t663 = load ptr, ptr %a1 %t664 = getelementptr inbounds %S.gen.Val, ptr %a17, i32 0, i32 0 %t665 = load { ptr, i64, i64 }, ptr %t664 - store { ptr, i64, i64 } { ptr @.str.4539, i64 13, i64 0 }, ptr %a667 + store { ptr, i64, i64 } { ptr @.str.4746, i64 13, i64 0 }, ptr %a667 store { ptr, i64, i64 } %t665, ptr %a668 call void @finch_str_concat(ptr %a666, ptr %a667, ptr %a668) %t669 = load { ptr, i64, i64 }, ptr %a666 store { ptr, i64, i64 } %t669, ptr %a671 - store { ptr, i64, i64 } { ptr @.str.4540, i64 4, i64 0 }, ptr %a672 + store { ptr, i64, i64 } { ptr @.str.4747, i64 4, i64 0 }, ptr %a672 call void @finch_str_concat(ptr %a670, ptr %a671, ptr %a672) store { ptr, i64, i64 } %t669, ptr %a673 call void @finch_str_drop(ptr %a673) @@ -70543,69 +74476,69 @@ then6992: call void @finch.drop.S_ast_Type(ptr %a23) call void @finch.drop.S_gen_Val(ptr %a17) ret %S.gen.Val %t691 -endif6994: +endif7387: %t692 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t693 = load { ptr, i64, i64 }, ptr %t692 store { ptr, i64, i64 } %t693, ptr %a694 - store { ptr, i64, i64 } { ptr @.str.4541, i64 3, i64 0 }, ptr %a695 + store { ptr, i64, i64 } { ptr @.str.4748, i64 3, i64 0 }, ptr %a695 %t696 = call i32 @finch_str_eq(ptr %a694, ptr %a695) %t697 = icmp ne i32 %t696, 0 - br label %logic.from6995 -logic.from6995: - br i1 %t697, label %logic.rhs6996, label %logic.end6997 -logic.rhs6996: + br label %logic.from7388 +logic.from7388: + br i1 %t697, label %logic.rhs7389, label %logic.end7390 +logic.rhs7389: %t698 = getelementptr inbounds %S.ast.Type, ptr %a23, i32 0, i32 0 %t699 = load { ptr, i64, i64 }, ptr %t698 store { ptr, i64, i64 } %t699, ptr %a700 - store { ptr, i64, i64 } { ptr @.str.4542, i64 3, i64 0 }, ptr %a701 + store { ptr, i64, i64 } { ptr @.str.4749, i64 3, i64 0 }, ptr %a701 %t702 = call i32 @finch_str_eq(ptr %a700, ptr %a701) %t703 = icmp ne i32 %t702, 0 - br label %logic.rend6998 -logic.rend6998: - br label %logic.end6997 -logic.end6997: - %t704 = phi i1 [ false, %logic.from6995 ], [ %t703, %logic.rend6998 ] - br i1 %t704, label %then6999, label %endif7001 -then6999: + br label %logic.rend7391 +logic.rend7391: + br label %logic.end7390 +logic.end7390: + %t704 = phi i1 [ false, %logic.from7388 ], [ %t703, %logic.rend7391 ] + br i1 %t704, label %then7392, label %endif7394 +then7392: %t705 = load ptr, ptr %a1 %t706 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t707 = load { ptr, i64, i64 }, ptr %t706 %t708 = extractvalue { ptr, i64, i64 } %t707, 1 %t709 = icmp uge i64 0, %t708 - br i1 %t709, label %range7002, label %inrange7003 -range7002: - call void @finch_panic_index(ptr @.str.4543, i64 3965, i64 0, i64 %t708) + br i1 %t709, label %range7395, label %inrange7396 +range7395: + call void @finch_panic_index(ptr @.str.4750, i64 4192, i64 0, i64 %t708) unreachable -inrange7003: +inrange7396: %t710 = extractvalue { ptr, i64, i64 } %t707, 0 %t711 = getelementptr inbounds %S.ast.Node, ptr %t710, i64 0 %t712 = load %S.ast.Node, ptr %t711 - call void @finch.gen.fail(ptr %t705, %S.ast.Node %t712, { ptr, i64, i64 } { ptr @.str.4544, i64 70, i64 0 }) - br label %endif7001 -endif7001: + call void @finch.gen.fail(ptr %t705, %S.ast.Node %t712, { ptr, i64, i64 } { ptr @.str.4751, i64 70, i64 0 }) + br label %endif7394 +endif7394: %t713 = load ptr, ptr %a1 %t714 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t715 = load { ptr, i64, i64 }, ptr %t714 %t716 = extractvalue { ptr, i64, i64 } %t715, 1 %t717 = icmp uge i64 0, %t716 - br i1 %t717, label %range7004, label %inrange7005 -range7004: - call void @finch_panic_index(ptr @.str.4545, i64 3967, i64 0, i64 %t716) + br i1 %t717, label %range7397, label %inrange7398 +range7397: + call void @finch_panic_index(ptr @.str.4752, i64 4194, i64 0, i64 %t716) unreachable -inrange7005: +inrange7398: %t718 = extractvalue { ptr, i64, i64 } %t715, 0 %t719 = getelementptr inbounds %S.ast.Node, ptr %t718, i64 0 %t720 = load %S.ast.Node, ptr %t719 %t721 = load %S.ast.Type, ptr %a23 %t722 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t721) - store { ptr, i64, i64 } { ptr @.str.4546, i64 11, i64 0 }, ptr %a724 + store { ptr, i64, i64 } { ptr @.str.4753, i64 11, i64 0 }, ptr %a724 store { ptr, i64, i64 } %t722, ptr %a725 call void @finch_str_concat(ptr %a723, ptr %a724, ptr %a725) store { ptr, i64, i64 } %t722, ptr %a726 call void @finch_str_drop(ptr %a726) %t727 = load { ptr, i64, i64 }, ptr %a723 store { ptr, i64, i64 } %t727, ptr %a729 - store { ptr, i64, i64 } { ptr @.str.4547, i64 6, i64 0 }, ptr %a730 + store { ptr, i64, i64 } { ptr @.str.4754, i64 6, i64 0 }, ptr %a730 call void @finch_str_concat(ptr %a728, ptr %a729, ptr %a730) store { ptr, i64, i64 } %t727, ptr %a731 call void @finch_str_drop(ptr %a731) @@ -70649,18 +74582,18 @@ entry: %t3 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t4 = load { ptr, i64, i64 }, ptr %t3 store { ptr, i64, i64 } %t4, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.4548, i64 6, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.4755, i64 6, i64 0 }, ptr %a6 %t7 = call i32 @finch_str_eq(ptr %a5, ptr %a6) %t8 = icmp ne i32 %t7, 0 - br i1 %t8, label %then7006, label %endif7008 -then7006: + br i1 %t8, label %then7399, label %endif7401 +then7399: %t9 = load ptr, ptr %a1 %t10 = icmp eq ptr %t9, null - br i1 %t10, label %panic7009, label %ok7010 -panic7009: - call void @finch_panic(ptr @.str.4549, i64 4000, ptr @.str.4550) + br i1 %t10, label %panic7402, label %ok7403 +panic7402: + call void @finch_panic(ptr @.str.4756, i64 4227, ptr @.str.4757) unreachable -ok7010: +ok7403: %t11 = getelementptr inbounds %S.gen.Gen, ptr %t9, i32 0, i32 16 %t12 = load ptr, ptr %a1 %t13 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 @@ -70671,25 +74604,25 @@ ok7010: %t18 = load { ptr, i64, i64 }, ptr %t11 %t19 = extractvalue { ptr, i64, i64 } %t18, 1 %t20 = icmp uge i64 %t17, %t19 - br i1 %t20, label %range7011, label %inrange7012 -range7011: - call void @finch_panic_index(ptr @.str.4551, i64 4000, i64 %t17, i64 %t19) + br i1 %t20, label %range7404, label %inrange7405 +range7404: + call void @finch_panic_index(ptr @.str.4758, i64 4227, i64 %t17, i64 %t19) unreachable -inrange7012: +inrange7405: %t21 = extractvalue { ptr, i64, i64 } %t18, 0 %t22 = getelementptr inbounds %S.gen.StructDef, ptr %t21, i64 %t17 %t23 = getelementptr inbounds %S.gen.StructDef, ptr %t22, i32 0, i32 9 %t24 = load i64, ptr %t23 ret i64 %t24 -endif7008: +endif7401: %t25 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t26 = load { ptr, i64, i64 }, ptr %t25 store { ptr, i64, i64 } %t26, ptr %a27 - store { ptr, i64, i64 } { ptr @.str.4552, i64 5, i64 0 }, ptr %a28 + store { ptr, i64, i64 } { ptr @.str.4759, i64 5, i64 0 }, ptr %a28 %t29 = call i32 @finch_str_eq(ptr %a27, ptr %a28) %t30 = icmp ne i32 %t29, 0 - br i1 %t30, label %then7013, label %endif7015 -then7013: + br i1 %t30, label %then7406, label %endif7408 +then7406: %t31 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 4 %t32 = load i64, ptr %t31 %t33 = load ptr, ptr %a1 @@ -70697,73 +74630,73 @@ then7013: %t35 = load { ptr, i64, i64 }, ptr %t34 %t36 = extractvalue { ptr, i64, i64 } %t35, 1 %t37 = icmp uge i64 0, %t36 - br i1 %t37, label %range7016, label %inrange7017 -range7016: - call void @finch_panic_index(ptr @.str.4553, i64 4003, i64 0, i64 %t36) + br i1 %t37, label %range7409, label %inrange7410 +range7409: + call void @finch_panic_index(ptr @.str.4760, i64 4230, i64 0, i64 %t36) unreachable -inrange7017: +inrange7410: %t38 = extractvalue { ptr, i64, i64 } %t35, 0 %t39 = getelementptr inbounds %S.ast.Type, ptr %t38, i64 0 %t40 = load %S.ast.Type, ptr %t39 %t41 = call i64 @finch.gen.sizeBytes(ptr %t33, %S.ast.Type %t40) %t42 = mul i64 %t32, %t41 ret i64 %t42 -endif7015: +endif7408: %t43 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t44 = load { ptr, i64, i64 }, ptr %t43 store { ptr, i64, i64 } %t44, ptr %a45 - store { ptr, i64, i64 } { ptr @.str.4554, i64 3, i64 0 }, ptr %a46 + store { ptr, i64, i64 } { ptr @.str.4761, i64 3, i64 0 }, ptr %a46 %t47 = call i32 @finch_str_eq(ptr %a45, ptr %a46) %t48 = icmp ne i32 %t47, 0 - br label %logic.from7018 -logic.from7018: - br i1 %t48, label %logic.end7020, label %logic.rhs7019 -logic.rhs7019: + br label %logic.from7411 +logic.from7411: + br i1 %t48, label %logic.end7413, label %logic.rhs7412 +logic.rhs7412: %t49 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t50 = load { ptr, i64, i64 }, ptr %t49 store { ptr, i64, i64 } %t50, ptr %a51 - store { ptr, i64, i64 } { ptr @.str.4555, i64 3, i64 0 }, ptr %a52 + store { ptr, i64, i64 } { ptr @.str.4762, i64 3, i64 0 }, ptr %a52 %t53 = call i32 @finch_str_eq(ptr %a51, ptr %a52) %t54 = icmp ne i32 %t53, 0 - br label %logic.rend7021 -logic.rend7021: - br label %logic.end7020 -logic.end7020: - %t55 = phi i1 [ true, %logic.from7018 ], [ %t54, %logic.rend7021 ] - br i1 %t55, label %then7022, label %endif7024 -then7022: + br label %logic.rend7414 +logic.rend7414: + br label %logic.end7413 +logic.end7413: + %t55 = phi i1 [ true, %logic.from7411 ], [ %t54, %logic.rend7414 ] + br i1 %t55, label %then7415, label %endif7417 +then7415: ret i64 8 -endif7024: +endif7417: %t56 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t57 = load { ptr, i64, i64 }, ptr %t56 store { ptr, i64, i64 } %t57, ptr %a58 - store { ptr, i64, i64 } { ptr @.str.4556, i64 5, i64 0 }, ptr %a59 + store { ptr, i64, i64 } { ptr @.str.4763, i64 5, i64 0 }, ptr %a59 %t60 = call i32 @finch_str_eq(ptr %a58, ptr %a59) %t61 = icmp ne i32 %t60, 0 - br i1 %t61, label %then7025, label %endif7027 -then7025: + br i1 %t61, label %then7418, label %endif7420 +then7418: ret i64 8 -endif7027: +endif7420: %t62 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t63 = load { ptr, i64, i64 }, ptr %t62 store { ptr, i64, i64 } %t63, ptr %a64 - store { ptr, i64, i64 } { ptr @.str.4557, i64 3, i64 0 }, ptr %a65 + store { ptr, i64, i64 } { ptr @.str.4764, i64 3, i64 0 }, ptr %a65 %t66 = call i32 @finch_str_eq(ptr %a64, ptr %a65) %t67 = icmp ne i32 %t66, 0 - br i1 %t67, label %then7028, label %endif7030 -then7028: + br i1 %t67, label %then7421, label %endif7423 +then7421: ret i64 4 -endif7030: +endif7423: %t68 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t69 = load { ptr, i64, i64 }, ptr %t68 store { ptr, i64, i64 } %t69, ptr %a70 - store { ptr, i64, i64 } { ptr @.str.4558, i64 4, i64 0 }, ptr %a71 + store { ptr, i64, i64 } { ptr @.str.4765, i64 4, i64 0 }, ptr %a71 %t72 = call i32 @finch_str_eq(ptr %a70, ptr %a71) %t73 = icmp ne i32 %t72, 0 - br i1 %t73, label %then7031, label %endif7033 -then7031: + br i1 %t73, label %then7424, label %endif7426 +then7424: ret i64 1 -endif7033: +endif7426: %t74 = load %S.ast.Type, ptr %a2 %t75 = call i64 @finch.gen.bitsOf(%S.ast.Type %t74) %t76 = sdiv i64 %t75, 8 @@ -70808,18 +74741,18 @@ entry: %t5 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t6 = load { ptr, i64, i64 }, ptr %t5 store { ptr, i64, i64 } %t6, ptr %a7 - store { ptr, i64, i64 } { ptr @.str.4559, i64 6, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.4766, i64 6, i64 0 }, ptr %a8 %t9 = call i32 @finch_str_eq(ptr %a7, ptr %a8) %t10 = icmp ne i32 %t9, 0 - br i1 %t10, label %then7034, label %else7035 -then7034: + br i1 %t10, label %then7427, label %else7428 +then7427: %t11 = load ptr, ptr %a1 %t12 = icmp eq ptr %t11, null - br i1 %t12, label %panic7037, label %ok7038 -panic7037: - call void @finch_panic(ptr @.str.4560, i64 4024, ptr @.str.4561) + br i1 %t12, label %panic7430, label %ok7431 +panic7430: + call void @finch_panic(ptr @.str.4767, i64 4251, ptr @.str.4768) unreachable -ok7038: +ok7431: %t13 = getelementptr inbounds %S.gen.Gen, ptr %t11, i32 0, i32 16 %t14 = load ptr, ptr %a1 %t15 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 @@ -70830,11 +74763,11 @@ ok7038: %t20 = load { ptr, i64, i64 }, ptr %t13 %t21 = extractvalue { ptr, i64, i64 } %t20, 1 %t22 = icmp uge i64 %t19, %t21 - br i1 %t22, label %range7039, label %inrange7040 -range7039: - call void @finch_panic_index(ptr @.str.4562, i64 4024, i64 %t19, i64 %t21) + br i1 %t22, label %range7432, label %inrange7433 +range7432: + call void @finch_panic_index(ptr @.str.4769, i64 4251, i64 %t19, i64 %t21) unreachable -inrange7040: +inrange7433: %t23 = extractvalue { ptr, i64, i64 } %t20, 0 %t24 = getelementptr inbounds %S.gen.StructDef, ptr %t23, i64 %t19 %t25 = load %S.gen.StructDef, ptr %t24 @@ -70846,23 +74779,23 @@ inrange7040: %t31 = getelementptr inbounds { ptr, i64, i64 }, ptr %t30, i32 0, i32 1 %t32 = load i64, ptr %t31 store i64 0, ptr %a33 - br label %for.cond7041 -for.cond7041: + br label %for.cond7434 +for.cond7434: %t34 = load i64, ptr %a33 %t35 = icmp slt i64 %t34, %t32 - br i1 %t35, label %for.body7042, label %for.end7044 -for.body7042: + br i1 %t35, label %for.body7435, label %for.end7437 +for.body7435: %t36 = load ptr, ptr %a1 %t37 = getelementptr inbounds %S.gen.StructDef, ptr %a29, i32 0, i32 12 %t38 = load i64, ptr %a33 %t39 = load { ptr, i64, i64 }, ptr %t37 %t40 = extractvalue { ptr, i64, i64 } %t39, 1 %t41 = icmp uge i64 %t38, %t40 - br i1 %t41, label %range7045, label %inrange7046 -range7045: - call void @finch_panic_index(ptr @.str.4563, i64 4026, i64 %t38, i64 %t40) + br i1 %t41, label %range7438, label %inrange7439 +range7438: + call void @finch_panic_index(ptr @.str.4770, i64 4253, i64 %t38, i64 %t40) unreachable -inrange7046: +inrange7439: %t42 = extractvalue { ptr, i64, i64 } %t39, 0 %t43 = getelementptr inbounds %S.ast.Type, ptr %t42, i64 %t38 %t44 = load %S.ast.Type, ptr %t43 @@ -70872,11 +74805,11 @@ inrange7046: %t48 = load { ptr, i64, i64 }, ptr %t46 %t49 = extractvalue { ptr, i64, i64 } %t48, 1 %t50 = icmp uge i64 %t47, %t49 - br i1 %t50, label %range7047, label %inrange7048 -range7047: - call void @finch_panic_index(ptr @.str.4564, i64 4026, i64 %t47, i64 %t49) + br i1 %t50, label %range7440, label %inrange7441 +range7440: + call void @finch_panic_index(ptr @.str.4771, i64 4253, i64 %t47, i64 %t49) unreachable -inrange7048: +inrange7441: %t51 = extractvalue { ptr, i64, i64 } %t48, 0 %t52 = getelementptr inbounds i64, ptr %t51, i64 %t47 %t53 = load i64, ptr %t52 @@ -70884,14 +74817,14 @@ inrange7048: %t55 = call { ptr, i64, i64 } @finch.gen.leavesOf(ptr %t36, %S.ast.Type %t44, i64 %t54) store { ptr, i64, i64 } %t55, ptr %a56 store i64 0, ptr %a57 - br label %each.cond7049 -each.cond7049: + br label %each.cond7442 +each.cond7442: %t58 = getelementptr inbounds { ptr, i64, i64 }, ptr %a56, i32 0, i32 1 %t59 = load i64, ptr %t58 %t60 = load i64, ptr %a57 %t61 = icmp slt i64 %t60, %t59 - br i1 %t61, label %each.body7050, label %each.end7052 -each.body7050: + br i1 %t61, label %each.body7443, label %each.end7445 +each.body7443: %t62 = load ptr, ptr %a56 %t63 = getelementptr inbounds %S.gen.Leaf, ptr %t62, i64 %t60 %t64 = load %S.gen.Leaf, ptr %t63 @@ -70905,42 +74838,42 @@ each.body7050: %t71 = getelementptr inbounds %S.gen.Leaf, ptr %t70, i64 %t68 store %S.gen.Leaf %t67, ptr %t71 store i64 %t69, ptr %t66 - br label %each.step7051 -each.step7051: + br label %each.step7444 +each.step7444: %t72 = load i64, ptr %a57 %t73 = add i64 %t72, 1 store i64 %t73, ptr %a57 - br label %each.cond7049 -each.end7052: + br label %each.cond7442 +each.end7445: call void @finch.drop.arr_S_gen_Leaf(ptr %a56) - br label %for.step7043 -for.step7043: + br label %for.step7436 +for.step7436: %t74 = load i64, ptr %a33 %t75 = add i64 %t74, 1 store i64 %t75, ptr %a33 - br label %for.cond7041 -for.end7044: + br label %for.cond7434 +for.end7437: call void @finch.drop.S_gen_StructDef(ptr %a29) - br label %endif7036 -else7035: + br label %endif7429 +else7428: %t76 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t77 = load { ptr, i64, i64 }, ptr %t76 store { ptr, i64, i64 } %t77, ptr %a78 - store { ptr, i64, i64 } { ptr @.str.4565, i64 5, i64 0 }, ptr %a79 + store { ptr, i64, i64 } { ptr @.str.4772, i64 5, i64 0 }, ptr %a79 %t80 = call i32 @finch_str_eq(ptr %a78, ptr %a79) %t81 = icmp ne i32 %t80, 0 - br i1 %t81, label %then7053, label %else7054 -then7053: + br i1 %t81, label %then7446, label %else7447 +then7446: %t82 = load ptr, ptr %a1 %t83 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t84 = load { ptr, i64, i64 }, ptr %t83 %t85 = extractvalue { ptr, i64, i64 } %t84, 1 %t86 = icmp uge i64 0, %t85 - br i1 %t86, label %range7056, label %inrange7057 -range7056: - call void @finch_panic_index(ptr @.str.4566, i64 4031, i64 0, i64 %t85) + br i1 %t86, label %range7449, label %inrange7450 +range7449: + call void @finch_panic_index(ptr @.str.4773, i64 4258, i64 0, i64 %t85) unreachable -inrange7057: +inrange7450: %t87 = extractvalue { ptr, i64, i64 } %t84, 0 %t88 = getelementptr inbounds %S.ast.Type, ptr %t87, i64 0 %t89 = load %S.ast.Type, ptr %t88 @@ -70949,22 +74882,22 @@ inrange7057: %t92 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 4 %t93 = load i64, ptr %t92 store i64 0, ptr %a94 - br label %for.cond7058 -for.cond7058: + br label %for.cond7451 +for.cond7451: %t95 = load i64, ptr %a94 %t96 = icmp slt i64 %t95, %t93 - br i1 %t96, label %for.body7059, label %for.end7061 -for.body7059: + br i1 %t96, label %for.body7452, label %for.end7454 +for.body7452: %t97 = load ptr, ptr %a1 %t98 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t99 = load { ptr, i64, i64 }, ptr %t98 %t100 = extractvalue { ptr, i64, i64 } %t99, 1 %t101 = icmp uge i64 0, %t100 - br i1 %t101, label %range7062, label %inrange7063 -range7062: - call void @finch_panic_index(ptr @.str.4567, i64 4033, i64 0, i64 %t100) + br i1 %t101, label %range7455, label %inrange7456 +range7455: + call void @finch_panic_index(ptr @.str.4774, i64 4260, i64 0, i64 %t100) unreachable -inrange7063: +inrange7456: %t102 = extractvalue { ptr, i64, i64 } %t99, 0 %t103 = getelementptr inbounds %S.ast.Type, ptr %t102, i64 0 %t104 = load %S.ast.Type, ptr %t103 @@ -70976,14 +74909,14 @@ inrange7063: %t110 = call { ptr, i64, i64 } @finch.gen.leavesOf(ptr %t97, %S.ast.Type %t104, i64 %t109) store { ptr, i64, i64 } %t110, ptr %a111 store i64 0, ptr %a112 - br label %each.cond7064 -each.cond7064: + br label %each.cond7457 +each.cond7457: %t113 = getelementptr inbounds { ptr, i64, i64 }, ptr %a111, i32 0, i32 1 %t114 = load i64, ptr %t113 %t115 = load i64, ptr %a112 %t116 = icmp slt i64 %t115, %t114 - br i1 %t116, label %each.body7065, label %each.end7067 -each.body7065: + br i1 %t116, label %each.body7458, label %each.end7460 +each.body7458: %t117 = load ptr, ptr %a111 %t118 = getelementptr inbounds %S.gen.Leaf, ptr %t117, i64 %t115 %t119 = load %S.gen.Leaf, ptr %t118 @@ -70997,23 +74930,23 @@ each.body7065: %t126 = getelementptr inbounds %S.gen.Leaf, ptr %t125, i64 %t123 store %S.gen.Leaf %t122, ptr %t126 store i64 %t124, ptr %t121 - br label %each.step7066 -each.step7066: + br label %each.step7459 +each.step7459: %t127 = load i64, ptr %a112 %t128 = add i64 %t127, 1 store i64 %t128, ptr %a112 - br label %each.cond7064 -each.end7067: + br label %each.cond7457 +each.end7460: call void @finch.drop.arr_S_gen_Leaf(ptr %a111) - br label %for.step7060 -for.step7060: + br label %for.step7453 +for.step7453: %t129 = load i64, ptr %a94 %t130 = add i64 %t129, 1 store i64 %t130, ptr %a94 - br label %for.cond7058 -for.end7061: - br label %endif7055 -else7054: + br label %for.cond7451 +for.end7454: + br label %endif7448 +else7447: %t131 = getelementptr inbounds { ptr, i64, i64 }, ptr %a4, i32 0, i32 1 %t132 = load i64, ptr %a3 %t133 = insertvalue %S.gen.Leaf zeroinitializer, i64 %t132, 0 @@ -71027,7 +74960,7 @@ else7054: %t141 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t142 = load { ptr, i64, i64 }, ptr %t141 store { ptr, i64, i64 } %t142, ptr %a143 - store { ptr, i64, i64 } { ptr @.str.4568, i64 5, i64 0 }, ptr %a144 + store { ptr, i64, i64 } { ptr @.str.4775, i64 5, i64 0 }, ptr %a144 %t145 = call i32 @finch_str_eq(ptr %a143, ptr %a144) %t146 = icmp ne i32 %t145, 0 %t147 = insertvalue %S.gen.Leaf %t140, i1 %t146, 3 @@ -71038,10 +74971,10 @@ else7054: %t151 = getelementptr inbounds %S.gen.Leaf, ptr %t150, i64 %t148 store %S.gen.Leaf %t147, ptr %t151 store i64 %t149, ptr %t131 - br label %endif7055 -endif7055: - br label %endif7036 -endif7036: + br label %endif7448 +endif7448: + br label %endif7429 +endif7429: %t152 = load { ptr, i64, i64 }, ptr %a4 ret { ptr, i64, i64 } %t152 } @@ -71140,28 +75073,28 @@ entry: %t15 = getelementptr inbounds { ptr, i64, i64 }, ptr %a14, i32 0, i32 1 %t16 = load i64, ptr %t15 %t17 = icmp sgt i64 %t16, 0 - br label %logic.from7068 -logic.from7068: - br i1 %t17, label %logic.rhs7069, label %logic.end7070 -logic.rhs7069: + br label %logic.from7461 +logic.from7461: + br i1 %t17, label %logic.rhs7462, label %logic.end7463 +logic.rhs7462: %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %a14, i32 0, i32 1 %t19 = load i64, ptr %t18 %t20 = icmp sle i64 %t19, 4 - br label %logic.rend7071 -logic.rend7071: - br label %logic.end7070 -logic.end7070: - %t21 = phi i1 [ false, %logic.from7068 ], [ %t20, %logic.rend7071 ] + br label %logic.rend7464 +logic.rend7464: + br label %logic.end7463 +logic.end7463: + %t21 = phi i1 [ false, %logic.from7461 ], [ %t20, %logic.rend7464 ] store i1 %t21, ptr %a22 store i64 0, ptr %a23 - br label %each.cond7072 -each.cond7072: + br label %each.cond7465 +each.cond7465: %t24 = getelementptr inbounds { ptr, i64, i64 }, ptr %a14, i32 0, i32 1 %t25 = load i64, ptr %t24 %t26 = load i64, ptr %a23 %t27 = icmp slt i64 %t26, %t25 - br i1 %t27, label %each.body7073, label %each.end7075 -each.body7073: + br i1 %t27, label %each.body7466, label %each.end7468 +each.body7466: %t28 = load ptr, ptr %a14 %t29 = getelementptr inbounds %S.gen.Leaf, ptr %t28, i64 %t26 %t30 = load %S.gen.Leaf, ptr %t29 @@ -71169,69 +75102,69 @@ each.body7073: %t32 = getelementptr inbounds %S.gen.Leaf, ptr %a31, i32 0, i32 2 %t33 = load i1, ptr %t32 %t34 = xor i1 %t33, true - br label %logic.from7076 -logic.from7076: - br i1 %t34, label %logic.end7078, label %logic.rhs7077 -logic.rhs7077: + br label %logic.from7469 +logic.from7469: + br i1 %t34, label %logic.end7471, label %logic.rhs7470 +logic.rhs7470: %t35 = getelementptr inbounds %S.gen.Leaf, ptr %a31, i32 0, i32 3 %t36 = load i1, ptr %t35 %t37 = load { ptr, i64, i64 }, ptr %a14 %t38 = extractvalue { ptr, i64, i64 } %t37, 1 %t39 = icmp uge i64 0, %t38 - br i1 %t39, label %range7079, label %inrange7080 -range7079: - call void @finch_panic_index(ptr @.str.4569, i64 4050, i64 0, i64 %t38) + br i1 %t39, label %range7472, label %inrange7473 +range7472: + call void @finch_panic_index(ptr @.str.4776, i64 4277, i64 0, i64 %t38) unreachable -inrange7080: +inrange7473: %t40 = extractvalue { ptr, i64, i64 } %t37, 0 %t41 = getelementptr inbounds %S.gen.Leaf, ptr %t40, i64 0 %t42 = getelementptr inbounds %S.gen.Leaf, ptr %t41, i32 0, i32 3 %t43 = load i1, ptr %t42 %t44 = icmp ne i1 %t36, %t43 - br label %logic.rend7081 -logic.rend7081: - br label %logic.end7078 -logic.end7078: - %t45 = phi i1 [ true, %logic.from7076 ], [ %t44, %logic.rend7081 ] - br i1 %t45, label %then7082, label %endif7084 -then7082: + br label %logic.rend7474 +logic.rend7474: + br label %logic.end7471 +logic.end7471: + %t45 = phi i1 [ true, %logic.from7469 ], [ %t44, %logic.rend7474 ] + br i1 %t45, label %then7475, label %endif7477 +then7475: store i1 false, ptr %a22 - br label %endif7084 -endif7084: - br label %each.step7074 -each.step7074: + br label %endif7477 +endif7477: + br label %each.step7467 +each.step7467: %t46 = load i64, ptr %a23 %t47 = add i64 %t46, 1 store i64 %t47, ptr %a23 - br label %each.cond7072 -each.end7075: + br label %each.cond7465 +each.end7468: %t48 = load i1, ptr %a22 - br i1 %t48, label %then7085, label %endif7087 -then7085: - store { ptr, i64, i64 } { ptr @.str.4570, i64 5, i64 0 }, ptr %a49 + br i1 %t48, label %then7478, label %endif7480 +then7478: + store { ptr, i64, i64 } { ptr @.str.4777, i64 5, i64 0 }, ptr %a49 %t50 = load { ptr, i64, i64 }, ptr %a14 %t51 = extractvalue { ptr, i64, i64 } %t50, 1 %t52 = icmp uge i64 0, %t51 - br i1 %t52, label %range7088, label %inrange7089 -range7088: - call void @finch_panic_index(ptr @.str.4571, i64 4056, i64 0, i64 %t51) + br i1 %t52, label %range7481, label %inrange7482 +range7481: + call void @finch_panic_index(ptr @.str.4778, i64 4283, i64 0, i64 %t51) unreachable -inrange7089: +inrange7482: %t53 = extractvalue { ptr, i64, i64 } %t50, 0 %t54 = getelementptr inbounds %S.gen.Leaf, ptr %t53, i64 0 %t55 = getelementptr inbounds %S.gen.Leaf, ptr %t54, i32 0, i32 3 %t56 = load i1, ptr %t55 - br i1 %t56, label %then7090, label %endif7092 -then7090: + br i1 %t56, label %then7483, label %endif7485 +then7483: %t57 = load { ptr, i64, i64 }, ptr %a49 - store { ptr, i64, i64 } { ptr @.str.4572, i64 6, i64 0 }, ptr %a49 + store { ptr, i64, i64 } { ptr @.str.4779, i64 6, i64 0 }, ptr %a49 store { ptr, i64, i64 } %t57, ptr %a58 call void @finch_str_drop(ptr %a58) - br label %endif7092 -endif7092: + br label %endif7485 +endif7485: %t59 = getelementptr inbounds %S.gen.Abi, ptr %a10, i32 0, i32 0 %t60 = load { ptr, i64, i64 }, ptr %t59 - store { ptr, i64, i64 } { ptr @.str.4573, i64 6, i64 0 }, ptr %t59 + store { ptr, i64, i64 } { ptr @.str.4780, i64 6, i64 0 }, ptr %t59 store { ptr, i64, i64 } %t60, ptr %a61 call void @finch_str_drop(ptr %a61) %t62 = getelementptr inbounds %S.gen.Abi, ptr %a10, i32 0, i32 1 @@ -71240,14 +75173,14 @@ endif7092: %t65 = load i64, ptr %t64 call void @finch_str_from_int(ptr %a66, i64 %t65) %t67 = load { ptr, i64, i64 }, ptr %a66 - store { ptr, i64, i64 } { ptr @.str.4574, i64 1, i64 0 }, ptr %a69 + store { ptr, i64, i64 } { ptr @.str.4781, i64 1, i64 0 }, ptr %a69 store { ptr, i64, i64 } %t67, ptr %a70 call void @finch_str_concat(ptr %a68, ptr %a69, ptr %a70) store { ptr, i64, i64 } %t67, ptr %a71 call void @finch_str_drop(ptr %a71) %t72 = load { ptr, i64, i64 }, ptr %a68 store { ptr, i64, i64 } %t72, ptr %a74 - store { ptr, i64, i64 } { ptr @.str.4575, i64 3, i64 0 }, ptr %a75 + store { ptr, i64, i64 } { ptr @.str.4782, i64 3, i64 0 }, ptr %a75 call void @finch_str_concat(ptr %a73, ptr %a74, ptr %a75) store { ptr, i64, i64 } %t72, ptr %a76 call void @finch_str_drop(ptr %a76) @@ -71260,7 +75193,7 @@ endif7092: call void @finch_str_drop(ptr %a82) %t83 = load { ptr, i64, i64 }, ptr %a79 store { ptr, i64, i64 } %t83, ptr %a85 - store { ptr, i64, i64 } { ptr @.str.4576, i64 1, i64 0 }, ptr %a86 + store { ptr, i64, i64 } { ptr @.str.4783, i64 1, i64 0 }, ptr %a86 call void @finch_str_concat(ptr %a84, ptr %a85, ptr %a86) store { ptr, i64, i64 } %t83, ptr %a87 call void @finch_str_drop(ptr %a87) @@ -71274,14 +75207,14 @@ endif7092: store i64 %t90, ptr %t63 store { ptr, i64, i64 } zeroinitializer, ptr %a93 store i64 0, ptr %a94 - br label %each.cond7093 -each.cond7093: + br label %each.cond7486 +each.cond7486: %t95 = getelementptr inbounds { ptr, i64, i64 }, ptr %a14, i32 0, i32 1 %t96 = load i64, ptr %t95 %t97 = load i64, ptr %a94 %t98 = icmp slt i64 %t97, %t96 - br i1 %t98, label %each.body7094, label %each.end7096 -each.body7094: + br i1 %t98, label %each.body7487, label %each.end7489 +each.body7487: %t99 = load ptr, ptr %a14 %t100 = getelementptr inbounds %S.gen.Leaf, ptr %t99, i64 %t97 %t101 = load %S.gen.Leaf, ptr %t100 @@ -71298,25 +75231,25 @@ each.body7094: %t111 = getelementptr inbounds { ptr, i64, i64 }, ptr %t110, i64 %t108 store { ptr, i64, i64 } %t107, ptr %t111 store i64 %t109, ptr %t103 - br label %each.step7095 -each.step7095: + br label %each.step7488 +each.step7488: %t112 = load i64, ptr %a94 %t113 = add i64 %t112, 1 store i64 %t113, ptr %a94 - br label %each.cond7093 -each.end7096: + br label %each.cond7486 +each.end7489: %t114 = getelementptr inbounds { ptr, i64, i64 }, ptr %a93, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.4578, i64 2, i64 0 }, ptr %a115 + store { ptr, i64, i64 } { ptr @.str.4785, i64 2, i64 0 }, ptr %a115 call void @finch_str_join(ptr %a116, ptr %a93, ptr %a115) %t117 = load { ptr, i64, i64 }, ptr %a116 - store { ptr, i64, i64 } { ptr @.str.4577, i64 2, i64 0 }, ptr %a119 + store { ptr, i64, i64 } { ptr @.str.4784, i64 2, i64 0 }, ptr %a119 store { ptr, i64, i64 } %t117, ptr %a120 call void @finch_str_concat(ptr %a118, ptr %a119, ptr %a120) store { ptr, i64, i64 } %t117, ptr %a121 call void @finch_str_drop(ptr %a121) %t122 = load { ptr, i64, i64 }, ptr %a118 store { ptr, i64, i64 } %t122, ptr %a124 - store { ptr, i64, i64 } { ptr @.str.4579, i64 2, i64 0 }, ptr %a125 + store { ptr, i64, i64 } { ptr @.str.4786, i64 2, i64 0 }, ptr %a125 call void @finch_str_concat(ptr %a123, ptr %a124, ptr %a125) store { ptr, i64, i64 } %t122, ptr %a126 call void @finch_str_drop(ptr %a126) @@ -71331,29 +75264,29 @@ each.end7096: call void @finch_str_drop(ptr %a49) call void @finch.drop.arr_S_gen_Leaf(ptr %a14) ret %S.gen.Abi %t131 -endif7087: +endif7480: %t132 = load i64, ptr %a4 %t133 = icmp sgt i64 %t132, 16 - br i1 %t133, label %then7097, label %endif7099 -then7097: + br i1 %t133, label %then7490, label %endif7492 +then7490: %t134 = getelementptr inbounds %S.gen.Abi, ptr %a10, i32 0, i32 0 %t135 = load { ptr, i64, i64 }, ptr %t134 - store { ptr, i64, i64 } { ptr @.str.4580, i64 8, i64 0 }, ptr %t134 + store { ptr, i64, i64 } { ptr @.str.4787, i64 8, i64 0 }, ptr %t134 store { ptr, i64, i64 } %t135, ptr %a136 call void @finch_str_drop(ptr %a136) %t137 = load %S.gen.Abi, ptr %a10 call void @finch.drop.arr_S_gen_Leaf(ptr %a14) ret %S.gen.Abi %t137 -endif7099: +endif7492: %t138 = getelementptr inbounds %S.gen.Abi, ptr %a10, i32 0, i32 0 %t139 = load { ptr, i64, i64 }, ptr %t138 - store { ptr, i64, i64 } { ptr @.str.4581, i64 6, i64 0 }, ptr %t138 + store { ptr, i64, i64 } { ptr @.str.4788, i64 6, i64 0 }, ptr %t138 store { ptr, i64, i64 } %t139, ptr %a140 call void @finch_str_drop(ptr %a140) %t141 = load i64, ptr %a5 %t142 = icmp sge i64 %t141, 16 - br i1 %t142, label %then7100, label %else7101 -then7100: + br i1 %t142, label %then7493, label %else7494 +then7493: %t143 = getelementptr inbounds %S.gen.Abi, ptr %a10, i32 0, i32 1 %t144 = getelementptr inbounds { ptr, i64, i64 }, ptr %t143, i32 0, i32 1 %t145 = load i64, ptr %t144 @@ -71361,19 +75294,19 @@ then7100: call void @finch_arr_reserve(ptr %t143, i64 %t146, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t147 = load ptr, ptr %t143 %t148 = getelementptr inbounds { ptr, i64, i64 }, ptr %t147, i64 %t145 - store { ptr, i64, i64 } { ptr @.str.4582, i64 4, i64 0 }, ptr %t148 + store { ptr, i64, i64 } { ptr @.str.4789, i64 4, i64 0 }, ptr %t148 store i64 %t146, ptr %t144 %t149 = getelementptr inbounds %S.gen.Abi, ptr %a10, i32 0, i32 2 %t150 = load { ptr, i64, i64 }, ptr %t149 - store { ptr, i64, i64 } { ptr @.str.4583, i64 4, i64 0 }, ptr %t149 + store { ptr, i64, i64 } { ptr @.str.4790, i64 4, i64 0 }, ptr %t149 store { ptr, i64, i64 } %t150, ptr %a151 call void @finch_str_drop(ptr %a151) - br label %endif7102 -else7101: + br label %endif7495 +else7494: %t152 = load i64, ptr %a4 %t153 = icmp sle i64 %t152, 8 - br i1 %t153, label %then7103, label %else7104 -then7103: + br i1 %t153, label %then7496, label %else7497 +then7496: %t154 = getelementptr inbounds %S.gen.Abi, ptr %a10, i32 0, i32 1 %t155 = getelementptr inbounds { ptr, i64, i64 }, ptr %t154, i32 0, i32 1 %t156 = load i64, ptr %t155 @@ -71381,13 +75314,13 @@ then7103: call void @finch_arr_reserve(ptr %t154, i64 %t157, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t158 = load ptr, ptr %t154 %t159 = getelementptr inbounds { ptr, i64, i64 }, ptr %t158, i64 %t156 - store { ptr, i64, i64 } { ptr @.str.4584, i64 3, i64 0 }, ptr %t159 + store { ptr, i64, i64 } { ptr @.str.4791, i64 3, i64 0 }, ptr %t159 store i64 %t157, ptr %t155 %t160 = load i64, ptr %a4 %t161 = mul i64 %t160, 8 call void @finch_str_from_int(ptr %a162, i64 %t161) %t163 = load { ptr, i64, i64 }, ptr %a162 - store { ptr, i64, i64 } { ptr @.str.4585, i64 1, i64 0 }, ptr %a165 + store { ptr, i64, i64 } { ptr @.str.4792, i64 1, i64 0 }, ptr %a165 store { ptr, i64, i64 } %t163, ptr %a166 call void @finch_str_concat(ptr %a164, ptr %a165, ptr %a166) store { ptr, i64, i64 } %t163, ptr %a167 @@ -71398,8 +75331,8 @@ then7103: store { ptr, i64, i64 } %t168, ptr %t169 store { ptr, i64, i64 } %t170, ptr %a171 call void @finch_str_drop(ptr %a171) - br label %endif7105 -else7104: + br label %endif7498 +else7497: %t172 = getelementptr inbounds %S.gen.Abi, ptr %a10, i32 0, i32 1 %t173 = getelementptr inbounds { ptr, i64, i64 }, ptr %t172, i32 0, i32 1 %t174 = load i64, ptr %t173 @@ -71407,17 +75340,17 @@ else7104: call void @finch_arr_reserve(ptr %t172, i64 %t175, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t176 = load ptr, ptr %t172 %t177 = getelementptr inbounds { ptr, i64, i64 }, ptr %t176, i64 %t174 - store { ptr, i64, i64 } { ptr @.str.4586, i64 9, i64 0 }, ptr %t177 + store { ptr, i64, i64 } { ptr @.str.4793, i64 9, i64 0 }, ptr %t177 store i64 %t175, ptr %t173 %t178 = getelementptr inbounds %S.gen.Abi, ptr %a10, i32 0, i32 2 %t179 = load { ptr, i64, i64 }, ptr %t178 - store { ptr, i64, i64 } { ptr @.str.4587, i64 9, i64 0 }, ptr %t178 + store { ptr, i64, i64 } { ptr @.str.4794, i64 9, i64 0 }, ptr %t178 store { ptr, i64, i64 } %t179, ptr %a180 call void @finch_str_drop(ptr %a180) - br label %endif7105 -endif7105: - br label %endif7102 -endif7102: + br label %endif7498 +endif7498: + br label %endif7495 +endif7495: %t181 = load %S.gen.Abi, ptr %a10 call void @finch.drop.arr_S_gen_Leaf(ptr %a14) ret %S.gen.Abi %t181 @@ -71490,26 +75423,26 @@ entry: %a299 = alloca { ptr, i64, i64 }, align 16 store ptr %p0, ptr %a1 store %S.ast.Type %p1, ptr %a2 - %t3 = insertvalue %S.gen.Abi zeroinitializer, { ptr, i64, i64 } { ptr @.str.4588, i64 6, i64 0 }, 0 + %t3 = insertvalue %S.gen.Abi zeroinitializer, { ptr, i64, i64 } { ptr @.str.4795, i64 6, i64 0 }, 0 store %S.gen.Abi %t3, ptr %a4 %t5 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t6 = load { ptr, i64, i64 }, ptr %t5 store { ptr, i64, i64 } %t6, ptr %a7 - store { ptr, i64, i64 } { ptr @.str.4589, i64 6, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.4796, i64 6, i64 0 }, ptr %a8 %t9 = call i32 @finch_str_eq(ptr %a7, ptr %a8) %t10 = icmp eq i32 %t9, 0 - br i1 %t10, label %then7106, label %endif7108 -then7106: + br i1 %t10, label %then7499, label %endif7501 +then7499: %t11 = load %S.gen.Abi, ptr %a4 ret %S.gen.Abi %t11 -endif7108: +endif7501: %t12 = load ptr, ptr %a1 %t13 = icmp eq ptr %t12, null - br i1 %t13, label %panic7109, label %ok7110 -panic7109: - call void @finch_panic(ptr @.str.4590, i64 4091, ptr @.str.4591) + br i1 %t13, label %panic7502, label %ok7503 +panic7502: + call void @finch_panic(ptr @.str.4797, i64 4318, ptr @.str.4798) unreachable -ok7110: +ok7503: %t14 = getelementptr inbounds %S.gen.Gen, ptr %t12, i32 0, i32 16 %t15 = load ptr, ptr %a1 %t16 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 @@ -71520,11 +75453,11 @@ ok7110: %t21 = load { ptr, i64, i64 }, ptr %t14 %t22 = extractvalue { ptr, i64, i64 } %t21, 1 %t23 = icmp uge i64 %t20, %t22 - br i1 %t23, label %range7111, label %inrange7112 -range7111: - call void @finch_panic_index(ptr @.str.4592, i64 4091, i64 %t20, i64 %t22) + br i1 %t23, label %range7504, label %inrange7505 +range7504: + call void @finch_panic_index(ptr @.str.4799, i64 4318, i64 %t20, i64 %t22) unreachable -inrange7112: +inrange7505: %t24 = extractvalue { ptr, i64, i64 } %t21, 0 %t25 = getelementptr inbounds %S.gen.StructDef, ptr %t24, i64 %t20 %t26 = load %S.gen.StructDef, ptr %t25 @@ -71540,26 +75473,26 @@ inrange7112: %t35 = getelementptr inbounds %S.gen.StructDef, ptr %a30, i32 0, i32 10 %t36 = load i64, ptr %t35 %t37 = icmp sgt i64 %t36, 8 - br i1 %t37, label %then7113, label %endif7115 -then7113: + br i1 %t37, label %then7506, label %endif7508 +then7506: %t38 = getelementptr inbounds %S.gen.StructDef, ptr %a30, i32 0, i32 10 %t39 = load i64, ptr %t38 %t40 = getelementptr inbounds %S.gen.Abi, ptr %a4, i32 0, i32 3 store i64 %t39, ptr %t40 - br label %endif7115 -endif7115: + br label %endif7508 +endif7508: %t41 = load ptr, ptr %a1 %t42 = icmp eq ptr %t41, null - br i1 %t42, label %panic7116, label %ok7117 -panic7116: - call void @finch_panic(ptr @.str.4593, i64 4097, ptr @.str.4594) + br i1 %t42, label %panic7509, label %ok7510 +panic7509: + call void @finch_panic(ptr @.str.4800, i64 4324, ptr @.str.4801) unreachable -ok7117: - %t43 = getelementptr inbounds %S.gen.Gen, ptr %t41, i32 0, i32 30 +ok7510: + %t43 = getelementptr inbounds %S.gen.Gen, ptr %t41, i32 0, i32 31 %t44 = getelementptr inbounds %S.platform.Target, ptr %t43, i32 0, i32 4 %t45 = load i1, ptr %t44 - br i1 %t45, label %then7118, label %endif7120 -then7118: + br i1 %t45, label %then7511, label %endif7513 +then7511: %t46 = load ptr, ptr %a1 %t47 = load %S.ast.Type, ptr %a2 %t48 = load %S.gen.Abi, ptr %a4 @@ -71570,59 +75503,59 @@ then7118: call void @finch.drop.S_gen_StructDef(ptr %a30) call void @finch.drop.S_gen_Abi(ptr %a4) ret %S.gen.Abi %t52 -endif7120: +endif7513: %t53 = load ptr, ptr %a1 %t54 = icmp eq ptr %t53, null - br i1 %t54, label %panic7121, label %ok7122 -panic7121: - call void @finch_panic(ptr @.str.4595, i64 4100, ptr @.str.4596) + br i1 %t54, label %panic7514, label %ok7515 +panic7514: + call void @finch_panic(ptr @.str.4802, i64 4327, ptr @.str.4803) unreachable -ok7122: - %t55 = getelementptr inbounds %S.gen.Gen, ptr %t53, i32 0, i32 30 +ok7515: + %t55 = getelementptr inbounds %S.gen.Gen, ptr %t53, i32 0, i32 31 %t56 = getelementptr inbounds %S.platform.Target, ptr %t55, i32 0, i32 1 %t57 = load i1, ptr %t56 - br i1 %t57, label %then7123, label %endif7125 -then7123: + br i1 %t57, label %then7516, label %endif7518 +then7516: %t58 = load i64, ptr %a33 %t59 = icmp eq i64 %t58, 1 - br label %logic.from7126 -logic.from7126: - br i1 %t59, label %logic.end7128, label %logic.rhs7127 -logic.rhs7127: + br label %logic.from7519 +logic.from7519: + br i1 %t59, label %logic.end7521, label %logic.rhs7520 +logic.rhs7520: %t60 = load i64, ptr %a33 %t61 = icmp eq i64 %t60, 2 - br label %logic.rend7129 -logic.rend7129: - br label %logic.end7128 -logic.end7128: - %t62 = phi i1 [ true, %logic.from7126 ], [ %t61, %logic.rend7129 ] - br label %logic.from7130 -logic.from7130: - br i1 %t62, label %logic.end7132, label %logic.rhs7131 -logic.rhs7131: + br label %logic.rend7522 +logic.rend7522: + br label %logic.end7521 +logic.end7521: + %t62 = phi i1 [ true, %logic.from7519 ], [ %t61, %logic.rend7522 ] + br label %logic.from7523 +logic.from7523: + br i1 %t62, label %logic.end7525, label %logic.rhs7524 +logic.rhs7524: %t63 = load i64, ptr %a33 %t64 = icmp eq i64 %t63, 4 - br label %logic.rend7133 -logic.rend7133: - br label %logic.end7132 -logic.end7132: - %t65 = phi i1 [ true, %logic.from7130 ], [ %t64, %logic.rend7133 ] - br label %logic.from7134 -logic.from7134: - br i1 %t65, label %logic.end7136, label %logic.rhs7135 -logic.rhs7135: + br label %logic.rend7526 +logic.rend7526: + br label %logic.end7525 +logic.end7525: + %t65 = phi i1 [ true, %logic.from7523 ], [ %t64, %logic.rend7526 ] + br label %logic.from7527 +logic.from7527: + br i1 %t65, label %logic.end7529, label %logic.rhs7528 +logic.rhs7528: %t66 = load i64, ptr %a33 %t67 = icmp eq i64 %t66, 8 - br label %logic.rend7137 -logic.rend7137: - br label %logic.end7136 -logic.end7136: - %t68 = phi i1 [ true, %logic.from7134 ], [ %t67, %logic.rend7137 ] - br i1 %t68, label %then7138, label %else7139 -then7138: + br label %logic.rend7530 +logic.rend7530: + br label %logic.end7529 +logic.end7529: + %t68 = phi i1 [ true, %logic.from7527 ], [ %t67, %logic.rend7530 ] + br i1 %t68, label %then7531, label %else7532 +then7531: %t69 = getelementptr inbounds %S.gen.Abi, ptr %a4, i32 0, i32 0 %t70 = load { ptr, i64, i64 }, ptr %t69 - store { ptr, i64, i64 } { ptr @.str.4597, i64 6, i64 0 }, ptr %t69 + store { ptr, i64, i64 } { ptr @.str.4804, i64 6, i64 0 }, ptr %t69 store { ptr, i64, i64 } %t70, ptr %a71 call void @finch_str_drop(ptr %a71) %t72 = getelementptr inbounds %S.gen.Abi, ptr %a4, i32 0, i32 1 @@ -71631,7 +75564,7 @@ then7138: %t75 = mul i64 %t74, 8 call void @finch_str_from_int(ptr %a76, i64 %t75) %t77 = load { ptr, i64, i64 }, ptr %a76 - store { ptr, i64, i64 } { ptr @.str.4598, i64 1, i64 0 }, ptr %a79 + store { ptr, i64, i64 } { ptr @.str.4805, i64 1, i64 0 }, ptr %a79 store { ptr, i64, i64 } %t77, ptr %a80 call void @finch_str_concat(ptr %a78, ptr %a79, ptr %a80) store { ptr, i64, i64 } %t77, ptr %a81 @@ -71648,11 +75581,11 @@ then7138: %t88 = load { ptr, i64, i64 }, ptr %t87 %t89 = extractvalue { ptr, i64, i64 } %t88, 1 %t90 = icmp uge i64 0, %t89 - br i1 %t90, label %range7141, label %inrange7142 -range7141: - call void @finch_panic_index(ptr @.str.4599, i64 4106, i64 0, i64 %t89) + br i1 %t90, label %range7534, label %inrange7535 +range7534: + call void @finch_panic_index(ptr @.str.4806, i64 4333, i64 0, i64 %t89) unreachable -inrange7142: +inrange7535: %t91 = extractvalue { ptr, i64, i64 } %t88, 0 %t92 = getelementptr inbounds { ptr, i64, i64 }, ptr %t91, i64 0 %t93 = load { ptr, i64, i64 }, ptr %t92 @@ -71664,43 +75597,43 @@ inrange7142: store { ptr, i64, i64 } %t97, ptr %t94 store { ptr, i64, i64 } %t98, ptr %a99 call void @finch_str_drop(ptr %a99) - br label %endif7140 -else7139: + br label %endif7533 +else7532: %t100 = getelementptr inbounds %S.gen.Abi, ptr %a4, i32 0, i32 0 %t101 = load { ptr, i64, i64 }, ptr %t100 - store { ptr, i64, i64 } { ptr @.str.4600, i64 8, i64 0 }, ptr %t100 + store { ptr, i64, i64 } { ptr @.str.4807, i64 8, i64 0 }, ptr %t100 store { ptr, i64, i64 } %t101, ptr %a102 call void @finch_str_drop(ptr %a102) - br label %endif7140 -endif7140: + br label %endif7533 +endif7533: %t103 = load %S.gen.Abi, ptr %a4 call void @finch.drop.S_gen_StructDef(ptr %a30) ret %S.gen.Abi %t103 -endif7125: +endif7518: %t104 = load i64, ptr %a33 %t105 = icmp sgt i64 %t104, 16 - br label %logic.from7143 -logic.from7143: - br i1 %t105, label %logic.end7145, label %logic.rhs7144 -logic.rhs7144: + br label %logic.from7536 +logic.from7536: + br i1 %t105, label %logic.end7538, label %logic.rhs7537 +logic.rhs7537: %t106 = load i64, ptr %a33 %t107 = icmp eq i64 %t106, 0 - br label %logic.rend7146 -logic.rend7146: - br label %logic.end7145 -logic.end7145: - %t108 = phi i1 [ true, %logic.from7143 ], [ %t107, %logic.rend7146 ] - br i1 %t108, label %then7147, label %endif7149 -then7147: + br label %logic.rend7539 +logic.rend7539: + br label %logic.end7538 +logic.end7538: + %t108 = phi i1 [ true, %logic.from7536 ], [ %t107, %logic.rend7539 ] + br i1 %t108, label %then7540, label %endif7542 +then7540: %t109 = getelementptr inbounds %S.gen.Abi, ptr %a4, i32 0, i32 0 %t110 = load { ptr, i64, i64 }, ptr %t109 - store { ptr, i64, i64 } { ptr @.str.4601, i64 6, i64 0 }, ptr %t109 + store { ptr, i64, i64 } { ptr @.str.4808, i64 6, i64 0 }, ptr %t109 store { ptr, i64, i64 } %t110, ptr %a111 call void @finch_str_drop(ptr %a111) %t112 = load %S.gen.Abi, ptr %a4 call void @finch.drop.S_gen_StructDef(ptr %a30) ret %S.gen.Abi %t112 -endif7149: +endif7542: %t113 = load ptr, ptr %a1 %t114 = load %S.ast.Type, ptr %a2 %t115 = call { ptr, i64, i64 } @finch.gen.leavesOf(ptr %t113, %S.ast.Type %t114, i64 0) @@ -71730,14 +75663,14 @@ endif7149: %t135 = insertvalue { ptr, i64, i64 } %t134, i64 2, 2 store { ptr, i64, i64 } %t135, ptr %a136 store i64 0, ptr %a137 - br label %each.cond7150 -each.cond7150: + br label %each.cond7543 +each.cond7543: %t138 = getelementptr inbounds { ptr, i64, i64 }, ptr %a116, i32 0, i32 1 %t139 = load i64, ptr %t138 %t140 = load i64, ptr %a137 %t141 = icmp slt i64 %t140, %t139 - br i1 %t141, label %each.body7151, label %each.end7153 -each.body7151: + br i1 %t141, label %each.body7544, label %each.end7546 +each.body7544: %t142 = load ptr, ptr %a116 %t143 = getelementptr inbounds %S.gen.Leaf, ptr %t142, i64 %t140 %t144 = load %S.gen.Leaf, ptr %t143 @@ -71747,27 +75680,27 @@ each.body7151: store i64 %t147, ptr %a148 %t149 = load i64, ptr %a148 %t150 = icmp sgt i64 %t149, 8 - br i1 %t150, label %then7154, label %endif7156 -then7154: + br i1 %t150, label %then7547, label %endif7549 +then7547: store i64 8, ptr %a148 - br label %endif7156 -endif7156: + br label %endif7549 +endif7549: %t151 = getelementptr inbounds %S.gen.Leaf, ptr %a145, i32 0, i32 0 %t152 = load i64, ptr %t151 %t153 = load i64, ptr %a148 %t154 = icmp eq i64 %t153, 0 - br i1 %t154, label %panic7157, label %ok7158 -panic7157: - call void @finch_panic(ptr @.str.4602, i64 4125, ptr @.str.4603) + br i1 %t154, label %panic7550, label %ok7551 +panic7550: + call void @finch_panic(ptr @.str.4809, i64 4352, ptr @.str.4810) unreachable -ok7158: +ok7551: %t155 = srem i64 %t152, %t153 %t156 = icmp ne i64 %t155, 0 - br i1 %t156, label %then7159, label %endif7161 -then7159: + br i1 %t156, label %then7552, label %endif7554 +then7552: %t157 = getelementptr inbounds %S.gen.Abi, ptr %a4, i32 0, i32 0 %t158 = load { ptr, i64, i64 }, ptr %t157 - store { ptr, i64, i64 } { ptr @.str.4604, i64 6, i64 0 }, ptr %t157 + store { ptr, i64, i64 } { ptr @.str.4811, i64 6, i64 0 }, ptr %t157 store { ptr, i64, i64 } %t158, ptr %a159 call void @finch_str_drop(ptr %a159) %t160 = load %S.gen.Abi, ptr %a4 @@ -71776,7 +75709,7 @@ then7159: call void @finch.drop.arr_S_gen_Leaf(ptr %a116) call void @finch.drop.S_gen_StructDef(ptr %a30) ret %S.gen.Abi %t160 -endif7161: +endif7554: %t161 = getelementptr inbounds %S.gen.Leaf, ptr %a145, i32 0, i32 0 %t162 = load i64, ptr %t161 %t163 = sdiv i64 %t162, 8 @@ -71785,95 +75718,95 @@ endif7161: %t166 = load { ptr, i64, i64 }, ptr %a128 %t167 = extractvalue { ptr, i64, i64 } %t166, 1 %t168 = icmp uge i64 %t165, %t167 - br i1 %t168, label %range7162, label %inrange7163 -range7162: - call void @finch_panic_index(ptr @.str.4605, i64 4130, i64 %t165, i64 %t167) + br i1 %t168, label %range7555, label %inrange7556 +range7555: + call void @finch_panic_index(ptr @.str.4812, i64 4357, i64 %t165, i64 %t167) unreachable -inrange7163: +inrange7556: %t169 = extractvalue { ptr, i64, i64 } %t166, 0 %t170 = getelementptr inbounds i64, ptr %t169, i64 %t165 %t171 = load i64, ptr %t170 %t172 = icmp eq i64 %t171, 1 - br label %logic.from7164 -logic.from7164: - br i1 %t172, label %logic.end7166, label %logic.rhs7165 -logic.rhs7165: + br label %logic.from7557 +logic.from7557: + br i1 %t172, label %logic.end7559, label %logic.rhs7558 +logic.rhs7558: %t173 = getelementptr inbounds %S.gen.Leaf, ptr %a145, i32 0, i32 2 %t174 = load i1, ptr %t173 %t175 = xor i1 %t174, true - br label %logic.rend7167 -logic.rend7167: - br label %logic.end7166 -logic.end7166: - %t176 = phi i1 [ true, %logic.from7164 ], [ %t175, %logic.rend7167 ] - br i1 %t176, label %then7168, label %else7169 -then7168: + br label %logic.rend7560 +logic.rend7560: + br label %logic.end7559 +logic.end7559: + %t176 = phi i1 [ true, %logic.from7557 ], [ %t175, %logic.rend7560 ] + br i1 %t176, label %then7561, label %else7562 +then7561: %t177 = load i64, ptr %a164 %t178 = load { ptr, i64, i64 }, ptr %a128 %t179 = extractvalue { ptr, i64, i64 } %t178, 1 %t180 = icmp uge i64 %t177, %t179 - br i1 %t180, label %range7171, label %inrange7172 -range7171: - call void @finch_panic_index(ptr @.str.4606, i64 4131, i64 %t177, i64 %t179) + br i1 %t180, label %range7564, label %inrange7565 +range7564: + call void @finch_panic_index(ptr @.str.4813, i64 4358, i64 %t177, i64 %t179) unreachable -inrange7172: +inrange7565: %t181 = extractvalue { ptr, i64, i64 } %t178, 0 %t182 = getelementptr inbounds i64, ptr %t181, i64 %t177 store i64 1, ptr %t182 - br label %endif7170 -else7169: + br label %endif7563 +else7562: %t183 = load i64, ptr %a164 %t184 = load { ptr, i64, i64 }, ptr %a128 %t185 = extractvalue { ptr, i64, i64 } %t184, 1 %t186 = icmp uge i64 %t183, %t185 - br i1 %t186, label %range7173, label %inrange7174 -range7173: - call void @finch_panic_index(ptr @.str.4607, i64 4133, i64 %t183, i64 %t185) + br i1 %t186, label %range7566, label %inrange7567 +range7566: + call void @finch_panic_index(ptr @.str.4814, i64 4360, i64 %t183, i64 %t185) unreachable -inrange7174: +inrange7567: %t187 = extractvalue { ptr, i64, i64 } %t184, 0 %t188 = getelementptr inbounds i64, ptr %t187, i64 %t183 store i64 2, ptr %t188 - br label %endif7170 -endif7170: + br label %endif7563 +endif7563: %t189 = getelementptr inbounds %S.gen.Leaf, ptr %a145, i32 0, i32 3 %t190 = load i1, ptr %t189 - br i1 %t190, label %then7175, label %endif7177 -then7175: + br i1 %t190, label %then7568, label %endif7570 +then7568: %t191 = load i64, ptr %a164 %t192 = load { ptr, i64, i64 }, ptr %a136 %t193 = extractvalue { ptr, i64, i64 } %t192, 1 %t194 = icmp uge i64 %t191, %t193 - br i1 %t194, label %range7178, label %inrange7179 -range7178: - call void @finch_panic_index(ptr @.str.4608, i64 4136, i64 %t191, i64 %t193) + br i1 %t194, label %range7571, label %inrange7572 +range7571: + call void @finch_panic_index(ptr @.str.4815, i64 4363, i64 %t191, i64 %t193) unreachable -inrange7179: +inrange7572: %t195 = extractvalue { ptr, i64, i64 } %t192, 0 %t196 = getelementptr inbounds i1, ptr %t195, i64 %t191 store i1 true, ptr %t196 - br label %endif7177 -endif7177: - br label %each.step7152 -each.step7152: + br label %endif7570 +endif7570: + br label %each.step7545 +each.step7545: %t197 = load i64, ptr %a137 %t198 = add i64 %t197, 1 store i64 %t198, ptr %a137 - br label %each.cond7150 -each.end7153: + br label %each.cond7543 +each.end7546: %t199 = getelementptr inbounds %S.gen.Abi, ptr %a4, i32 0, i32 0 %t200 = load { ptr, i64, i64 }, ptr %t199 - store { ptr, i64, i64 } { ptr @.str.4609, i64 6, i64 0 }, ptr %t199 + store { ptr, i64, i64 } { ptr @.str.4816, i64 6, i64 0 }, ptr %t199 store { ptr, i64, i64 } %t200, ptr %a201 call void @finch_str_drop(ptr %a201) %t202 = load i64, ptr %a120 store i64 0, ptr %a203 - br label %for.cond7180 -for.cond7180: + br label %for.cond7573 +for.cond7573: %t204 = load i64, ptr %a203 %t205 = icmp slt i64 %t204, %t202 - br i1 %t205, label %for.body7181, label %for.end7183 -for.body7181: + br i1 %t205, label %for.body7574, label %for.end7576 +for.body7574: %t206 = load i64, ptr %a33 %t207 = load i64, ptr %a203 %t208 = mul i64 8, %t207 @@ -71881,40 +75814,40 @@ for.body7181: store i64 %t209, ptr %a210 %t211 = load i64, ptr %a210 %t212 = icmp sgt i64 %t211, 8 - br i1 %t212, label %then7184, label %endif7186 -then7184: + br i1 %t212, label %then7577, label %endif7579 +then7577: store i64 8, ptr %a210 - br label %endif7186 -endif7186: + br label %endif7579 +endif7579: %t213 = load i64, ptr %a203 %t214 = load { ptr, i64, i64 }, ptr %a128 %t215 = extractvalue { ptr, i64, i64 } %t214, 1 %t216 = icmp uge i64 %t213, %t215 - br i1 %t216, label %range7187, label %inrange7188 -range7187: - call void @finch_panic_index(ptr @.str.4610, i64 4145, i64 %t213, i64 %t215) + br i1 %t216, label %range7580, label %inrange7581 +range7580: + call void @finch_panic_index(ptr @.str.4817, i64 4372, i64 %t213, i64 %t215) unreachable -inrange7188: +inrange7581: %t217 = extractvalue { ptr, i64, i64 } %t214, 0 %t218 = getelementptr inbounds i64, ptr %t217, i64 %t213 %t219 = load i64, ptr %t218 %t220 = icmp eq i64 %t219, 2 - br i1 %t220, label %then7189, label %else7190 -then7189: + br i1 %t220, label %then7582, label %else7583 +then7582: %t221 = load i64, ptr %a203 %t222 = load { ptr, i64, i64 }, ptr %a136 %t223 = extractvalue { ptr, i64, i64 } %t222, 1 %t224 = icmp uge i64 %t221, %t223 - br i1 %t224, label %range7192, label %inrange7193 -range7192: - call void @finch_panic_index(ptr @.str.4611, i64 4146, i64 %t221, i64 %t223) + br i1 %t224, label %range7585, label %inrange7586 +range7585: + call void @finch_panic_index(ptr @.str.4818, i64 4373, i64 %t221, i64 %t223) unreachable -inrange7193: +inrange7586: %t225 = extractvalue { ptr, i64, i64 } %t222, 0 %t226 = getelementptr inbounds i1, ptr %t225, i64 %t221 %t227 = load i1, ptr %t226 - br i1 %t227, label %then7194, label %else7195 -then7194: + br i1 %t227, label %then7587, label %else7588 +then7587: %t228 = getelementptr inbounds %S.gen.Abi, ptr %a4, i32 0, i32 1 %t229 = getelementptr inbounds { ptr, i64, i64 }, ptr %t228, i32 0, i32 1 %t230 = load i64, ptr %t229 @@ -71922,14 +75855,14 @@ then7194: call void @finch_arr_reserve(ptr %t228, i64 %t231, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t232 = load ptr, ptr %t228 %t233 = getelementptr inbounds { ptr, i64, i64 }, ptr %t232, i64 %t230 - store { ptr, i64, i64 } { ptr @.str.4612, i64 6, i64 0 }, ptr %t233 + store { ptr, i64, i64 } { ptr @.str.4819, i64 6, i64 0 }, ptr %t233 store i64 %t231, ptr %t229 - br label %endif7196 -else7195: + br label %endif7589 +else7588: %t234 = load i64, ptr %a210 %t235 = icmp sgt i64 %t234, 4 - br i1 %t235, label %then7197, label %else7198 -then7197: + br i1 %t235, label %then7590, label %else7591 +then7590: %t236 = getelementptr inbounds %S.gen.Abi, ptr %a4, i32 0, i32 1 %t237 = getelementptr inbounds { ptr, i64, i64 }, ptr %t236, i32 0, i32 1 %t238 = load i64, ptr %t237 @@ -71937,10 +75870,10 @@ then7197: call void @finch_arr_reserve(ptr %t236, i64 %t239, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t240 = load ptr, ptr %t236 %t241 = getelementptr inbounds { ptr, i64, i64 }, ptr %t240, i64 %t238 - store { ptr, i64, i64 } { ptr @.str.4613, i64 11, i64 0 }, ptr %t241 + store { ptr, i64, i64 } { ptr @.str.4820, i64 11, i64 0 }, ptr %t241 store i64 %t239, ptr %t237 - br label %endif7199 -else7198: + br label %endif7592 +else7591: %t242 = getelementptr inbounds %S.gen.Abi, ptr %a4, i32 0, i32 1 %t243 = getelementptr inbounds { ptr, i64, i64 }, ptr %t242, i32 0, i32 1 %t244 = load i64, ptr %t243 @@ -71948,21 +75881,21 @@ else7198: call void @finch_arr_reserve(ptr %t242, i64 %t245, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t246 = load ptr, ptr %t242 %t247 = getelementptr inbounds { ptr, i64, i64 }, ptr %t246, i64 %t244 - store { ptr, i64, i64 } { ptr @.str.4614, i64 5, i64 0 }, ptr %t247 + store { ptr, i64, i64 } { ptr @.str.4821, i64 5, i64 0 }, ptr %t247 store i64 %t245, ptr %t243 - br label %endif7199 -endif7199: - br label %endif7196 -endif7196: - br label %endif7191 -else7190: + br label %endif7592 +endif7592: + br label %endif7589 +endif7589: + br label %endif7584 +else7583: %t248 = getelementptr inbounds %S.gen.Abi, ptr %a4, i32 0, i32 1 %t249 = getelementptr inbounds { ptr, i64, i64 }, ptr %t248, i32 0, i32 1 %t250 = load i64, ptr %a210 %t251 = mul i64 %t250, 8 call void @finch_str_from_int(ptr %a252, i64 %t251) %t253 = load { ptr, i64, i64 }, ptr %a252 - store { ptr, i64, i64 } { ptr @.str.4615, i64 1, i64 0 }, ptr %a255 + store { ptr, i64, i64 } { ptr @.str.4822, i64 1, i64 0 }, ptr %a255 store { ptr, i64, i64 } %t253, ptr %a256 call void @finch_str_concat(ptr %a254, ptr %a255, ptr %a256) store { ptr, i64, i64 } %t253, ptr %a257 @@ -71975,30 +75908,30 @@ else7190: %t262 = getelementptr inbounds { ptr, i64, i64 }, ptr %t261, i64 %t259 store { ptr, i64, i64 } %t258, ptr %t262 store i64 %t260, ptr %t249 - br label %endif7191 -endif7191: - br label %for.step7182 -for.step7182: + br label %endif7584 +endif7584: + br label %for.step7575 +for.step7575: %t263 = load i64, ptr %a203 %t264 = add i64 %t263, 1 store i64 %t264, ptr %a203 - br label %for.cond7180 -for.end7183: + br label %for.cond7573 +for.end7576: %t265 = getelementptr inbounds %S.gen.Abi, ptr %a4, i32 0, i32 1 %t266 = getelementptr inbounds { ptr, i64, i64 }, ptr %t265, i32 0, i32 1 %t267 = load i64, ptr %t266 %t268 = icmp eq i64 %t267, 1 - br i1 %t268, label %then7200, label %else7201 -then7200: + br i1 %t268, label %then7593, label %else7594 +then7593: %t269 = getelementptr inbounds %S.gen.Abi, ptr %a4, i32 0, i32 1 %t270 = load { ptr, i64, i64 }, ptr %t269 %t271 = extractvalue { ptr, i64, i64 } %t270, 1 %t272 = icmp uge i64 0, %t271 - br i1 %t272, label %range7203, label %inrange7204 -range7203: - call void @finch_panic_index(ptr @.str.4616, i64 4158, i64 0, i64 %t271) + br i1 %t272, label %range7596, label %inrange7597 +range7596: + call void @finch_panic_index(ptr @.str.4823, i64 4385, i64 0, i64 %t271) unreachable -inrange7204: +inrange7597: %t273 = extractvalue { ptr, i64, i64 } %t270, 0 %t274 = getelementptr inbounds { ptr, i64, i64 }, ptr %t273, i64 0 %t275 = load { ptr, i64, i64 }, ptr %t274 @@ -72010,21 +75943,21 @@ inrange7204: store { ptr, i64, i64 } %t279, ptr %t276 store { ptr, i64, i64 } %t280, ptr %a281 call void @finch_str_drop(ptr %a281) - br label %endif7202 -else7201: + br label %endif7595 +else7594: %t282 = getelementptr inbounds %S.gen.Abi, ptr %a4, i32 0, i32 1 %t283 = getelementptr inbounds { ptr, i64, i64 }, ptr %t282, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.4618, i64 2, i64 0 }, ptr %a284 + store { ptr, i64, i64 } { ptr @.str.4825, i64 2, i64 0 }, ptr %a284 call void @finch_str_join(ptr %a285, ptr %t282, ptr %a284) %t286 = load { ptr, i64, i64 }, ptr %a285 - store { ptr, i64, i64 } { ptr @.str.4617, i64 2, i64 0 }, ptr %a288 + store { ptr, i64, i64 } { ptr @.str.4824, i64 2, i64 0 }, ptr %a288 store { ptr, i64, i64 } %t286, ptr %a289 call void @finch_str_concat(ptr %a287, ptr %a288, ptr %a289) store { ptr, i64, i64 } %t286, ptr %a290 call void @finch_str_drop(ptr %a290) %t291 = load { ptr, i64, i64 }, ptr %a287 store { ptr, i64, i64 } %t291, ptr %a293 - store { ptr, i64, i64 } { ptr @.str.4619, i64 2, i64 0 }, ptr %a294 + store { ptr, i64, i64 } { ptr @.str.4826, i64 2, i64 0 }, ptr %a294 call void @finch_str_concat(ptr %a292, ptr %a293, ptr %a294) store { ptr, i64, i64 } %t291, ptr %a295 call void @finch_str_drop(ptr %a295) @@ -72034,8 +75967,8 @@ else7201: store { ptr, i64, i64 } %t296, ptr %t297 store { ptr, i64, i64 } %t298, ptr %a299 call void @finch_str_drop(ptr %a299) - br label %endif7202 -endif7202: + br label %endif7595 +endif7595: %t300 = load %S.gen.Abi, ptr %a4 call void @finch.drop.arr_bool(ptr %a136) call void @finch.drop.arr_int(ptr %a128) @@ -72101,17 +76034,17 @@ entry: call void @finch.drop.S_gen_Abi(ptr %a12) %t13 = getelementptr inbounds %S.gen.Plan, ptr %a4, i32 0, i32 2 %t14 = load { ptr, i64, i64 }, ptr %t13 - store { ptr, i64, i64 } { ptr @.str.4620, i64 4, i64 0 }, ptr %t13 + store { ptr, i64, i64 } { ptr @.str.4827, i64 4, i64 0 }, ptr %t13 store { ptr, i64, i64 } %t14, ptr %a15 call void @finch_str_drop(ptr %a15) %t16 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t17 = load { ptr, i64, i64 }, ptr %t16 store { ptr, i64, i64 } %t17, ptr %a18 - store { ptr, i64, i64 } { ptr @.str.4621, i64 4, i64 0 }, ptr %a19 + store { ptr, i64, i64 } { ptr @.str.4828, i64 4, i64 0 }, ptr %a19 %t20 = call i32 @finch_str_eq(ptr %a18, ptr %a19) %t21 = icmp eq i32 %t20, 0 - br i1 %t21, label %then7205, label %endif7207 -then7205: + br i1 %t21, label %then7598, label %endif7600 +then7598: %t22 = load ptr, ptr %a1 %t23 = load %S.ast.Type, ptr %a2 %t24 = call { ptr, i64, i64 } @finch.gen.cLL(ptr %t22, %S.ast.Type %t23) @@ -72120,55 +76053,55 @@ then7205: store { ptr, i64, i64 } %t24, ptr %t25 store { ptr, i64, i64 } %t26, ptr %a27 call void @finch_str_drop(ptr %a27) - br label %endif7207 -endif7207: + br label %endif7600 +endif7600: %t28 = getelementptr inbounds %S.gen.Plan, ptr %a4, i32 0, i32 0 %t29 = getelementptr inbounds %S.gen.Abi, ptr %t28, i32 0, i32 0 %t30 = load { ptr, i64, i64 }, ptr %t29 store { ptr, i64, i64 } %t30, ptr %a31 - store { ptr, i64, i64 } { ptr @.str.4622, i64 8, i64 0 }, ptr %a32 + store { ptr, i64, i64 } { ptr @.str.4829, i64 8, i64 0 }, ptr %a32 %t33 = call i32 @finch_str_eq(ptr %a31, ptr %a32) %t34 = icmp ne i32 %t33, 0 - br i1 %t34, label %then7208, label %endif7210 -then7208: + br i1 %t34, label %then7601, label %endif7603 +then7601: %t35 = getelementptr inbounds %S.gen.Plan, ptr %a4, i32 0, i32 0 %t36 = getelementptr inbounds %S.gen.Abi, ptr %t35, i32 0, i32 0 %t37 = load { ptr, i64, i64 }, ptr %t36 - store { ptr, i64, i64 } { ptr @.str.4623, i64 6, i64 0 }, ptr %t36 + store { ptr, i64, i64 } { ptr @.str.4830, i64 6, i64 0 }, ptr %t36 store { ptr, i64, i64 } %t37, ptr %a38 call void @finch_str_drop(ptr %a38) - br label %endif7210 -endif7210: + br label %endif7603 +endif7603: %t39 = getelementptr inbounds %S.gen.Plan, ptr %a4, i32 0, i32 0 %t40 = getelementptr inbounds %S.gen.Abi, ptr %t39, i32 0, i32 0 %t41 = load { ptr, i64, i64 }, ptr %t40 store { ptr, i64, i64 } %t41, ptr %a42 - store { ptr, i64, i64 } { ptr @.str.4624, i64 6, i64 0 }, ptr %a43 + store { ptr, i64, i64 } { ptr @.str.4831, i64 6, i64 0 }, ptr %a43 %t44 = call i32 @finch_str_eq(ptr %a42, ptr %a43) %t45 = icmp ne i32 %t44, 0 - br i1 %t45, label %then7211, label %else7212 -then7211: + br i1 %t45, label %then7604, label %else7605 +then7604: %t46 = getelementptr inbounds %S.gen.Plan, ptr %a4, i32 0, i32 3 store i1 true, ptr %t46 %t47 = getelementptr inbounds %S.gen.Plan, ptr %a4, i32 0, i32 2 %t48 = load { ptr, i64, i64 }, ptr %t47 - store { ptr, i64, i64 } { ptr @.str.4625, i64 4, i64 0 }, ptr %t47 + store { ptr, i64, i64 } { ptr @.str.4832, i64 4, i64 0 }, ptr %t47 store { ptr, i64, i64 } %t48, ptr %a49 call void @finch_str_drop(ptr %a49) %t50 = load i64, ptr %a5 %t51 = sub i64 %t50, 1 store i64 %t51, ptr %a5 - br label %endif7213 -else7212: + br label %endif7606 +else7605: %t52 = getelementptr inbounds %S.gen.Plan, ptr %a4, i32 0, i32 0 %t53 = getelementptr inbounds %S.gen.Abi, ptr %t52, i32 0, i32 0 %t54 = load { ptr, i64, i64 }, ptr %t53 store { ptr, i64, i64 } %t54, ptr %a55 - store { ptr, i64, i64 } { ptr @.str.4626, i64 6, i64 0 }, ptr %a56 + store { ptr, i64, i64 } { ptr @.str.4833, i64 6, i64 0 }, ptr %a56 %t57 = call i32 @finch_str_eq(ptr %a55, ptr %a56) %t58 = icmp ne i32 %t57, 0 - br i1 %t58, label %then7214, label %endif7216 -then7214: + br i1 %t58, label %then7607, label %endif7609 +then7607: %t59 = getelementptr inbounds %S.gen.Plan, ptr %a4, i32 0, i32 0 %t60 = getelementptr inbounds %S.gen.Abi, ptr %t59, i32 0, i32 2 %t61 = load { ptr, i64, i64 }, ptr %t60 @@ -72180,19 +76113,19 @@ then7214: store { ptr, i64, i64 } %t65, ptr %t62 store { ptr, i64, i64 } %t66, ptr %a67 call void @finch_str_drop(ptr %a67) - br label %endif7216 -endif7216: - br label %endif7213 -endif7213: + br label %endif7609 +endif7609: + br label %endif7606 +endif7606: store i64 0, ptr %a68 - br label %each.cond7217 -each.cond7217: + br label %each.cond7610 +each.cond7610: %t69 = getelementptr inbounds { ptr, i64, i64 }, ptr %a3, i32 0, i32 1 %t70 = load i64, ptr %t69 %t71 = load i64, ptr %a68 %t72 = icmp slt i64 %t71, %t70 - br i1 %t72, label %each.body7218, label %each.end7220 -each.body7218: + br i1 %t72, label %each.body7611, label %each.end7613 +each.body7611: %t73 = load ptr, ptr %a3 %t74 = getelementptr inbounds %S.ast.Type, ptr %t73, i64 %t71 %t75 = load %S.ast.Type, ptr %t74 @@ -72204,106 +76137,106 @@ each.body7218: %t81 = getelementptr inbounds %S.gen.Abi, ptr %a80, i32 0, i32 0 %t82 = load { ptr, i64, i64 }, ptr %t81 store { ptr, i64, i64 } %t82, ptr %a83 - store { ptr, i64, i64 } { ptr @.str.4627, i64 6, i64 0 }, ptr %a84 + store { ptr, i64, i64 } { ptr @.str.4834, i64 6, i64 0 }, ptr %a84 %t85 = call i32 @finch_str_eq(ptr %a83, ptr %a84) %t86 = icmp ne i32 %t85, 0 - br i1 %t86, label %then7221, label %else7222 -then7221: + br i1 %t86, label %then7614, label %else7615 +then7614: store i64 0, ptr %a87 store i64 0, ptr %a88 %t89 = getelementptr inbounds %S.gen.Abi, ptr %a80, i32 0, i32 1 store i64 0, ptr %a90 - br label %each.cond7224 -each.cond7224: + br label %each.cond7617 +each.cond7617: %t91 = getelementptr inbounds { ptr, i64, i64 }, ptr %t89, i32 0, i32 1 %t92 = load i64, ptr %t91 %t93 = load i64, ptr %a90 %t94 = icmp slt i64 %t93, %t92 - br i1 %t94, label %each.body7225, label %each.end7227 -each.body7225: + br i1 %t94, label %each.body7618, label %each.end7620 +each.body7618: %t95 = load ptr, ptr %t89 %t96 = getelementptr inbounds { ptr, i64, i64 }, ptr %t95, i64 %t93 %t97 = load { ptr, i64, i64 }, ptr %t96 store { ptr, i64, i64 } %t97, ptr %a98 %t99 = load { ptr, i64, i64 }, ptr %a98 store { ptr, i64, i64 } %t99, ptr %a100 - store { ptr, i64, i64 } { ptr @.str.4629, i64 1, i64 0 }, ptr %a102 + store { ptr, i64, i64 } { ptr @.str.4836, i64 1, i64 0 }, ptr %a102 %t103 = call i32 @finch_str_starts(ptr %a100, ptr %a102) %t104 = icmp ne i32 %t103, 0 - br i1 %t104, label %then7228, label %else7229 -then7228: + br i1 %t104, label %then7621, label %else7622 +then7621: %t105 = load i64, ptr %a87 %t106 = add i64 %t105, 1 store i64 %t106, ptr %a87 - br label %endif7230 -else7229: + br label %endif7623 +else7622: %t107 = load i64, ptr %a88 %t108 = add i64 %t107, 1 store i64 %t108, ptr %a88 - br label %endif7230 -endif7230: - br label %each.step7226 -each.step7226: + br label %endif7623 +endif7623: + br label %each.step7619 +each.step7619: %t109 = load i64, ptr %a90 %t110 = add i64 %t109, 1 store i64 %t110, ptr %a90 - br label %each.cond7224 -each.end7227: + br label %each.cond7617 +each.end7620: %t111 = load ptr, ptr %a1 %t112 = icmp eq ptr %t111, null - br i1 %t112, label %panic7231, label %ok7232 -panic7231: - call void @finch_panic(ptr @.str.4630, i64 4198, ptr @.str.4631) + br i1 %t112, label %panic7624, label %ok7625 +panic7624: + call void @finch_panic(ptr @.str.4837, i64 4425, ptr @.str.4838) unreachable -ok7232: - %t113 = getelementptr inbounds %S.gen.Gen, ptr %t111, i32 0, i32 30 +ok7625: + %t113 = getelementptr inbounds %S.gen.Gen, ptr %t111, i32 0, i32 31 %t114 = getelementptr inbounds %S.platform.Target, ptr %t113, i32 0, i32 1 %t115 = load i1, ptr %t114 - br label %logic.from7233 -logic.from7233: - br i1 %t115, label %logic.end7235, label %logic.rhs7234 -logic.rhs7234: + br label %logic.from7626 +logic.from7626: + br i1 %t115, label %logic.end7628, label %logic.rhs7627 +logic.rhs7627: %t116 = load ptr, ptr %a1 %t117 = icmp eq ptr %t116, null - br i1 %t117, label %panic7236, label %ok7237 -panic7236: - call void @finch_panic(ptr @.str.4632, i64 4198, ptr @.str.4633) + br i1 %t117, label %panic7629, label %ok7630 +panic7629: + call void @finch_panic(ptr @.str.4839, i64 4425, ptr @.str.4840) unreachable -ok7237: - %t118 = getelementptr inbounds %S.gen.Gen, ptr %t116, i32 0, i32 30 +ok7630: + %t118 = getelementptr inbounds %S.gen.Gen, ptr %t116, i32 0, i32 31 %t119 = getelementptr inbounds %S.platform.Target, ptr %t118, i32 0, i32 4 %t120 = load i1, ptr %t119 - br label %logic.rend7238 -logic.rend7238: - br label %logic.end7235 -logic.end7235: - %t121 = phi i1 [ true, %logic.from7233 ], [ %t120, %logic.rend7238 ] - br label %logic.from7239 -logic.from7239: - br i1 %t121, label %logic.end7241, label %logic.rhs7240 -logic.rhs7240: + br label %logic.rend7631 +logic.rend7631: + br label %logic.end7628 +logic.end7628: + %t121 = phi i1 [ true, %logic.from7626 ], [ %t120, %logic.rend7631 ] + br label %logic.from7632 +logic.from7632: + br i1 %t121, label %logic.end7634, label %logic.rhs7633 +logic.rhs7633: %t122 = load i64, ptr %a87 %t123 = load i64, ptr %a5 %t124 = icmp sle i64 %t122, %t123 - br label %logic.from7242 -logic.from7242: - br i1 %t124, label %logic.rhs7243, label %logic.end7244 -logic.rhs7243: + br label %logic.from7635 +logic.from7635: + br i1 %t124, label %logic.rhs7636, label %logic.end7637 +logic.rhs7636: %t125 = load i64, ptr %a88 %t126 = load i64, ptr %a6 %t127 = icmp sle i64 %t125, %t126 - br label %logic.rend7245 -logic.rend7245: - br label %logic.end7244 -logic.end7244: - %t128 = phi i1 [ false, %logic.from7242 ], [ %t127, %logic.rend7245 ] - br label %logic.rend7246 -logic.rend7246: - br label %logic.end7241 -logic.end7241: - %t129 = phi i1 [ true, %logic.from7239 ], [ %t128, %logic.rend7246 ] - br i1 %t129, label %then7247, label %else7248 -then7247: + br label %logic.rend7638 +logic.rend7638: + br label %logic.end7637 +logic.end7637: + %t128 = phi i1 [ false, %logic.from7635 ], [ %t127, %logic.rend7638 ] + br label %logic.rend7639 +logic.rend7639: + br label %logic.end7634 +logic.end7634: + %t129 = phi i1 [ true, %logic.from7632 ], [ %t128, %logic.rend7639 ] + br i1 %t129, label %then7640, label %else7641 +then7640: %t130 = load i64, ptr %a87 %t131 = load i64, ptr %a5 %t132 = sub i64 %t131, %t130 @@ -72312,43 +76245,43 @@ then7247: %t134 = load i64, ptr %a6 %t135 = sub i64 %t134, %t133 store i64 %t135, ptr %a6 - br label %endif7249 -else7248: + br label %endif7642 +else7641: %t136 = getelementptr inbounds %S.gen.Abi, ptr %a80, i32 0, i32 0 %t137 = load { ptr, i64, i64 }, ptr %t136 - store { ptr, i64, i64 } { ptr @.str.4634, i64 6, i64 0 }, ptr %t136 + store { ptr, i64, i64 } { ptr @.str.4841, i64 6, i64 0 }, ptr %t136 store { ptr, i64, i64 } %t137, ptr %a138 call void @finch_str_drop(ptr %a138) - br label %endif7249 -endif7249: - br label %endif7223 -else7222: + br label %endif7642 +endif7642: + br label %endif7616 +else7615: %t139 = getelementptr inbounds %S.gen.Abi, ptr %a80, i32 0, i32 0 %t140 = load { ptr, i64, i64 }, ptr %t139 store { ptr, i64, i64 } %t140, ptr %a141 - store { ptr, i64, i64 } { ptr @.str.4635, i64 6, i64 0 }, ptr %a142 + store { ptr, i64, i64 } { ptr @.str.4842, i64 6, i64 0 }, ptr %a142 %t143 = call i32 @finch_str_eq(ptr %a141, ptr %a142) %t144 = icmp ne i32 %t143, 0 - br i1 %t144, label %then7250, label %endif7252 -then7250: + br i1 %t144, label %then7643, label %endif7645 +then7643: %t145 = load %S.ast.Type, ptr %a76 %t146 = call i1 @finch.gen.isFloat(%S.ast.Type %t145) - br i1 %t146, label %then7253, label %else7254 -then7253: + br i1 %t146, label %then7646, label %else7647 +then7646: %t147 = load i64, ptr %a6 %t148 = sub i64 %t147, 1 store i64 %t148, ptr %a6 - br label %endif7255 -else7254: + br label %endif7648 +else7647: %t149 = load i64, ptr %a5 %t150 = sub i64 %t149, 1 store i64 %t150, ptr %a5 - br label %endif7255 -endif7255: - br label %endif7252 -endif7252: - br label %endif7223 -endif7223: + br label %endif7648 +endif7648: + br label %endif7645 +endif7645: + br label %endif7616 +endif7616: %t151 = getelementptr inbounds %S.gen.Plan, ptr %a4, i32 0, i32 1 %t152 = getelementptr inbounds { ptr, i64, i64 }, ptr %t151, i32 0, i32 1 %t153 = load %S.gen.Abi, ptr %a80 @@ -72363,13 +76296,13 @@ endif7223: store %S.gen.Abi %t156, ptr %t160 store i64 %t158, ptr %t152 call void @finch.drop.S_gen_Abi(ptr %a80) - br label %each.step7219 -each.step7219: + br label %each.step7612 +each.step7612: %t161 = load i64, ptr %a68 %t162 = add i64 %t161, 1 store i64 %t162, ptr %a68 - br label %each.cond7217 -each.end7220: + br label %each.cond7610 +each.end7613: %t163 = load %S.gen.Plan, ptr %a4 ret %S.gen.Plan %t163 } @@ -72448,20 +76381,20 @@ entry: %t6 = getelementptr inbounds %S.ast.Type, ptr %a4, i32 0, i32 0 %t7 = load { ptr, i64, i64 }, ptr %t6 store { ptr, i64, i64 } %t7, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.4636, i64 6, i64 0 }, ptr %a9 + store { ptr, i64, i64 } { ptr @.str.4843, i64 6, i64 0 }, ptr %a9 %t10 = call i32 @finch_str_eq(ptr %a8, ptr %a9) %t11 = icmp eq i32 %t10, 0 - br i1 %t11, label %then7256, label %endif7258 -then7256: + br i1 %t11, label %then7649, label %endif7651 +then7649: ret void -endif7258: +endif7651: %t12 = load ptr, ptr %a1 %t13 = icmp eq ptr %t12, null - br i1 %t13, label %panic7259, label %ok7260 -panic7259: - call void @finch_panic(ptr @.str.4637, i64 4220, ptr @.str.4638) + br i1 %t13, label %panic7652, label %ok7653 +panic7652: + call void @finch_panic(ptr @.str.4844, i64 4447, ptr @.str.4845) unreachable -ok7260: +ok7653: %t14 = getelementptr inbounds %S.gen.Gen, ptr %t12, i32 0, i32 16 %t15 = load ptr, ptr %a1 %t16 = getelementptr inbounds %S.ast.Type, ptr %a4, i32 0, i32 3 @@ -72472,11 +76405,11 @@ ok7260: %t21 = load { ptr, i64, i64 }, ptr %t14 %t22 = extractvalue { ptr, i64, i64 } %t21, 1 %t23 = icmp uge i64 %t20, %t22 - br i1 %t23, label %range7261, label %inrange7262 -range7261: - call void @finch_panic_index(ptr @.str.4639, i64 4220, i64 %t20, i64 %t22) + br i1 %t23, label %range7654, label %inrange7655 +range7654: + call void @finch_panic_index(ptr @.str.4846, i64 4447, i64 %t20, i64 %t22) unreachable -inrange7262: +inrange7655: %t24 = extractvalue { ptr, i64, i64 } %t21, 0 %t25 = getelementptr inbounds %S.gen.StructDef, ptr %t24, i64 %t20 %t26 = load %S.gen.StructDef, ptr %t25 @@ -72487,17 +76420,17 @@ inrange7262: %t31 = getelementptr inbounds %S.gen.StructDef, ptr %a30, i32 0, i32 2 %t32 = load i1, ptr %t31 %t33 = xor i1 %t32, true - br i1 %t33, label %then7263, label %endif7265 -then7263: + br i1 %t33, label %then7656, label %endif7658 +then7656: %t34 = load ptr, ptr %a1 %t35 = load %S.ast.Node, ptr %a2 %t36 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.4640, i64 16, i64 0 }, ptr %a38 + store { ptr, i64, i64 } { ptr @.str.4847, i64 16, i64 0 }, ptr %a38 store { ptr, i64, i64 } %t36, ptr %a39 call void @finch_str_concat(ptr %a37, ptr %a38, ptr %a39) %t40 = load { ptr, i64, i64 }, ptr %a37 store { ptr, i64, i64 } %t40, ptr %a42 - store { ptr, i64, i64 } { ptr @.str.4641, i64 2, i64 0 }, ptr %a43 + store { ptr, i64, i64 } { ptr @.str.4848, i64 2, i64 0 }, ptr %a43 call void @finch_str_concat(ptr %a41, ptr %a42, ptr %a43) store { ptr, i64, i64 } %t40, ptr %a44 call void @finch_str_drop(ptr %a44) @@ -72510,7 +76443,7 @@ then7263: call void @finch_str_drop(ptr %a50) %t51 = load { ptr, i64, i64 }, ptr %a47 store { ptr, i64, i64 } %t51, ptr %a53 - store { ptr, i64, i64 } { ptr @.str.4642, i64 18, i64 0 }, ptr %a54 + store { ptr, i64, i64 } { ptr @.str.4849, i64 18, i64 0 }, ptr %a54 call void @finch_str_concat(ptr %a52, ptr %a53, ptr %a54) store { ptr, i64, i64 } %t51, ptr %a55 call void @finch_str_drop(ptr %a55) @@ -72526,7 +76459,7 @@ then7263: call void @finch_str_drop(ptr %a63) %t64 = load { ptr, i64, i64 }, ptr %a59 store { ptr, i64, i64 } %t64, ptr %a66 - store { ptr, i64, i64 } { ptr @.str.4643, i64 20, i64 0 }, ptr %a67 + store { ptr, i64, i64 } { ptr @.str.4850, i64 20, i64 0 }, ptr %a67 call void @finch_str_concat(ptr %a65, ptr %a66, ptr %a67) store { ptr, i64, i64 } %t64, ptr %a68 call void @finch_str_drop(ptr %a68) @@ -72534,23 +76467,23 @@ then7263: call void @finch.gen.fail(ptr %t34, %S.ast.Node %t35, { ptr, i64, i64 } %t69) store { ptr, i64, i64 } %t69, ptr %a70 call void @finch_str_drop(ptr %a70) - br label %endif7265 -endif7265: + br label %endif7658 +endif7658: %t71 = getelementptr inbounds %S.gen.StructDef, ptr %a30, i32 0, i32 8 %t72 = getelementptr inbounds { ptr, i64, i64 }, ptr %t71, i32 0, i32 1 %t73 = load i64, ptr %t72 %t74 = icmp sgt i64 %t73, 0 - br i1 %t74, label %then7266, label %endif7268 -then7266: + br i1 %t74, label %then7659, label %endif7661 +then7659: %t75 = load ptr, ptr %a1 %t76 = load %S.ast.Node, ptr %a2 %t77 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.4644, i64 16, i64 0 }, ptr %a79 + store { ptr, i64, i64 } { ptr @.str.4851, i64 16, i64 0 }, ptr %a79 store { ptr, i64, i64 } %t77, ptr %a80 call void @finch_str_concat(ptr %a78, ptr %a79, ptr %a80) %t81 = load { ptr, i64, i64 }, ptr %a78 store { ptr, i64, i64 } %t81, ptr %a83 - store { ptr, i64, i64 } { ptr @.str.4645, i64 2, i64 0 }, ptr %a84 + store { ptr, i64, i64 } { ptr @.str.4852, i64 2, i64 0 }, ptr %a84 call void @finch_str_concat(ptr %a82, ptr %a83, ptr %a84) store { ptr, i64, i64 } %t81, ptr %a85 call void @finch_str_drop(ptr %a85) @@ -72563,7 +76496,7 @@ then7266: call void @finch_str_drop(ptr %a91) %t92 = load { ptr, i64, i64 }, ptr %a88 store { ptr, i64, i64 } %t92, ptr %a94 - store { ptr, i64, i64 } { ptr @.str.4646, i64 12, i64 0 }, ptr %a95 + store { ptr, i64, i64 } { ptr @.str.4853, i64 12, i64 0 }, ptr %a95 call void @finch_str_concat(ptr %a93, ptr %a94, ptr %a95) store { ptr, i64, i64 } %t92, ptr %a96 call void @finch_str_drop(ptr %a96) @@ -72579,7 +76512,7 @@ then7266: call void @finch_str_drop(ptr %a104) %t105 = load { ptr, i64, i64 }, ptr %a100 store { ptr, i64, i64 } %t105, ptr %a107 - store { ptr, i64, i64 } { ptr @.str.4647, i64 40, i64 0 }, ptr %a108 + store { ptr, i64, i64 } { ptr @.str.4854, i64 40, i64 0 }, ptr %a108 call void @finch_str_concat(ptr %a106, ptr %a107, ptr %a108) store { ptr, i64, i64 } %t105, ptr %a109 call void @finch_str_drop(ptr %a109) @@ -72595,8 +76528,8 @@ then7266: call void @finch.gen.fail(ptr %t75, %S.ast.Node %t76, { ptr, i64, i64 } %t117) store { ptr, i64, i64 } %t117, ptr %a118 call void @finch_str_drop(ptr %a118) - br label %endif7268 -endif7268: + br label %endif7661 +endif7661: call void @finch.drop.S_gen_StructDef(ptr %a30) ret void } @@ -72613,51 +76546,51 @@ entry: store %S.ast.Type %p0, ptr %a1 %t2 = load %S.ast.Type, ptr %a1 %t3 = call i1 @finch.gen.isNumber(%S.ast.Type %t2) - br label %logic.from7269 -logic.from7269: - br i1 %t3, label %logic.end7271, label %logic.rhs7270 -logic.rhs7270: + br label %logic.from7662 +logic.from7662: + br i1 %t3, label %logic.end7664, label %logic.rhs7663 +logic.rhs7663: %t4 = getelementptr inbounds %S.ast.Type, ptr %a1, i32 0, i32 0 %t5 = load { ptr, i64, i64 }, ptr %t4 store { ptr, i64, i64 } %t5, ptr %a6 - store { ptr, i64, i64 } { ptr @.str.4648, i64 4, i64 0 }, ptr %a7 + store { ptr, i64, i64 } { ptr @.str.4855, i64 4, i64 0 }, ptr %a7 %t8 = call i32 @finch_str_eq(ptr %a6, ptr %a7) %t9 = icmp ne i32 %t8, 0 - br label %logic.rend7272 -logic.rend7272: - br label %logic.end7271 -logic.end7271: - %t10 = phi i1 [ true, %logic.from7269 ], [ %t9, %logic.rend7272 ] - br label %logic.from7273 -logic.from7273: - br i1 %t10, label %logic.end7275, label %logic.rhs7274 -logic.rhs7274: + br label %logic.rend7665 +logic.rend7665: + br label %logic.end7664 +logic.end7664: + %t10 = phi i1 [ true, %logic.from7662 ], [ %t9, %logic.rend7665 ] + br label %logic.from7666 +logic.from7666: + br i1 %t10, label %logic.end7668, label %logic.rhs7667 +logic.rhs7667: %t11 = getelementptr inbounds %S.ast.Type, ptr %a1, i32 0, i32 0 %t12 = load { ptr, i64, i64 }, ptr %t11 store { ptr, i64, i64 } %t12, ptr %a13 - store { ptr, i64, i64 } { ptr @.str.4649, i64 4, i64 0 }, ptr %a14 + store { ptr, i64, i64 } { ptr @.str.4856, i64 4, i64 0 }, ptr %a14 %t15 = call i32 @finch_str_eq(ptr %a13, ptr %a14) %t16 = icmp ne i32 %t15, 0 - br label %logic.rend7276 -logic.rend7276: - br label %logic.end7275 -logic.end7275: - %t17 = phi i1 [ true, %logic.from7273 ], [ %t16, %logic.rend7276 ] - br label %logic.from7277 -logic.from7277: - br i1 %t17, label %logic.end7279, label %logic.rhs7278 -logic.rhs7278: + br label %logic.rend7669 +logic.rend7669: + br label %logic.end7668 +logic.end7668: + %t17 = phi i1 [ true, %logic.from7666 ], [ %t16, %logic.rend7669 ] + br label %logic.from7670 +logic.from7670: + br i1 %t17, label %logic.end7672, label %logic.rhs7671 +logic.rhs7671: %t18 = getelementptr inbounds %S.ast.Type, ptr %a1, i32 0, i32 0 %t19 = load { ptr, i64, i64 }, ptr %t18 store { ptr, i64, i64 } %t19, ptr %a20 - store { ptr, i64, i64 } { ptr @.str.4650, i64 3, i64 0 }, ptr %a21 + store { ptr, i64, i64 } { ptr @.str.4857, i64 3, i64 0 }, ptr %a21 %t22 = call i32 @finch_str_eq(ptr %a20, ptr %a21) %t23 = icmp ne i32 %t22, 0 - br label %logic.rend7280 -logic.rend7280: - br label %logic.end7279 -logic.end7279: - %t24 = phi i1 [ true, %logic.from7277 ], [ %t23, %logic.rend7280 ] + br label %logic.rend7673 +logic.rend7673: + br label %logic.end7672 +logic.end7672: + %t24 = phi i1 [ true, %logic.from7670 ], [ %t23, %logic.rend7673 ] ret i1 %t24 } @@ -72706,71 +76639,71 @@ entry: %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %t4, i32 0, i32 1 %t6 = load i64, ptr %t5 %t7 = icmp sgt i64 %t6, 0 - br i1 %t7, label %then7281, label %endif7283 -then7281: + br i1 %t7, label %then7674, label %endif7676 +then7674: %t8 = load ptr, ptr %a1 %t9 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t8, %S.ast.Node %t9, { ptr, i64, i64 } { ptr @.str.4651, i64 59, i64 0 }) - br label %endif7283 -endif7283: + call void @finch.gen.fail(ptr %t8, %S.ast.Node %t9, { ptr, i64, i64 } { ptr @.str.4858, i64 59, i64 0 }) + br label %endif7676 +endif7676: %t10 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 7 %t11 = load i1, ptr %t10 - br i1 %t11, label %then7284, label %endif7286 -then7284: + br i1 %t11, label %then7677, label %endif7679 +then7677: %t12 = load ptr, ptr %a1 %t13 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t12, %S.ast.Node %t13, { ptr, i64, i64 } { ptr @.str.4652, i64 74, i64 0 }) - br label %endif7286 -endif7286: + call void @finch.gen.fail(ptr %t12, %S.ast.Node %t13, { ptr, i64, i64 } { ptr @.str.4859, i64 74, i64 0 }) + br label %endif7679 +endif7679: %t14 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 3 %t15 = getelementptr inbounds { ptr, i64, i64 }, ptr %t14, i32 0, i32 1 %t16 = load i64, ptr %t15 %t17 = icmp sgt i64 %t16, 0 - br i1 %t17, label %then7287, label %endif7289 -then7287: + br i1 %t17, label %then7680, label %endif7682 +then7680: %t18 = load ptr, ptr %a1 %t19 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t18, %S.ast.Node %t19, { ptr, i64, i64 } { ptr @.str.4653, i64 29, i64 0 }) - br label %endif7289 -endif7289: + call void @finch.gen.fail(ptr %t18, %S.ast.Node %t19, { ptr, i64, i64 } { ptr @.str.4860, i64 29, i64 0 }) + br label %endif7682 +endif7682: %t20 = getelementptr inbounds %S.gen.FnSig, ptr %a3, i32 0, i32 13 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t20, i32 0, i32 1 %t22 = load i64, ptr %t21 store i64 0, ptr %a23 - br label %for.cond7290 -for.cond7290: + br label %for.cond7683 +for.cond7683: %t24 = load i64, ptr %a23 %t25 = icmp slt i64 %t24, %t22 - br i1 %t25, label %for.body7291, label %for.end7293 -for.body7291: + br i1 %t25, label %for.body7684, label %for.end7686 +for.body7684: %t26 = getelementptr inbounds %S.gen.FnSig, ptr %a3, i32 0, i32 13 %t27 = load i64, ptr %a23 %t28 = load { ptr, i64, i64 }, ptr %t26 %t29 = extractvalue { ptr, i64, i64 } %t28, 1 %t30 = icmp uge i64 %t27, %t29 - br i1 %t30, label %range7294, label %inrange7295 -range7294: - call void @finch_panic_index(ptr @.str.4654, i64 4245, i64 %t27, i64 %t29) + br i1 %t30, label %range7687, label %inrange7688 +range7687: + call void @finch_panic_index(ptr @.str.4861, i64 4472, i64 %t27, i64 %t29) unreachable -inrange7295: +inrange7688: %t31 = extractvalue { ptr, i64, i64 } %t28, 0 %t32 = getelementptr inbounds %S.ast.Type, ptr %t31, i64 %t27 %t33 = load %S.ast.Type, ptr %t32 %t34 = call i1 @finch.gen.cPlain(%S.ast.Type %t33) %t35 = xor i1 %t34, true - br i1 %t35, label %then7296, label %endif7298 -then7296: + br i1 %t35, label %then7689, label %endif7691 +then7689: %t36 = load ptr, ptr %a1 %t37 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t38 = load i64, ptr %a23 %t39 = load { ptr, i64, i64 }, ptr %t37 %t40 = extractvalue { ptr, i64, i64 } %t39, 1 %t41 = icmp uge i64 %t38, %t40 - br i1 %t41, label %range7299, label %inrange7300 -range7299: - call void @finch_panic_index(ptr @.str.4655, i64 4246, i64 %t38, i64 %t40) + br i1 %t41, label %range7692, label %inrange7693 +range7692: + call void @finch_panic_index(ptr @.str.4862, i64 4473, i64 %t38, i64 %t40) unreachable -inrange7300: +inrange7693: %t42 = extractvalue { ptr, i64, i64 } %t39, 0 %t43 = getelementptr inbounds %S.ast.Node, ptr %t42, i64 %t38 %t44 = load %S.ast.Node, ptr %t43 @@ -72779,23 +76712,23 @@ inrange7300: %t47 = load { ptr, i64, i64 }, ptr %t45 %t48 = extractvalue { ptr, i64, i64 } %t47, 1 %t49 = icmp uge i64 %t46, %t48 - br i1 %t49, label %range7301, label %inrange7302 -range7301: - call void @finch_panic_index(ptr @.str.4657, i64 4246, i64 %t46, i64 %t48) + br i1 %t49, label %range7694, label %inrange7695 +range7694: + call void @finch_panic_index(ptr @.str.4864, i64 4473, i64 %t46, i64 %t48) unreachable -inrange7302: +inrange7695: %t50 = extractvalue { ptr, i64, i64 } %t47, 0 %t51 = getelementptr inbounds %S.ast.Type, ptr %t50, i64 %t46 %t52 = load %S.ast.Type, ptr %t51 %t53 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t52) - store { ptr, i64, i64 } { ptr @.str.4656, i64 66, i64 0 }, ptr %a55 + store { ptr, i64, i64 } { ptr @.str.4863, i64 66, i64 0 }, ptr %a55 store { ptr, i64, i64 } %t53, ptr %a56 call void @finch_str_concat(ptr %a54, ptr %a55, ptr %a56) store { ptr, i64, i64 } %t53, ptr %a57 call void @finch_str_drop(ptr %a57) %t58 = load { ptr, i64, i64 }, ptr %a54 store { ptr, i64, i64 } %t58, ptr %a60 - store { ptr, i64, i64 } { ptr @.str.4658, i64 50, i64 0 }, ptr %a61 + store { ptr, i64, i64 } { ptr @.str.4865, i64 50, i64 0 }, ptr %a61 call void @finch_str_concat(ptr %a59, ptr %a60, ptr %a61) store { ptr, i64, i64 } %t58, ptr %a62 call void @finch_str_drop(ptr %a62) @@ -72803,50 +76736,50 @@ inrange7302: call void @finch.gen.fail(ptr %t36, %S.ast.Node %t44, { ptr, i64, i64 } %t63) store { ptr, i64, i64 } %t63, ptr %a64 call void @finch_str_drop(ptr %a64) - br label %endif7298 -endif7298: - br label %for.step7292 -for.step7292: + br label %endif7691 +endif7691: + br label %for.step7685 +for.step7685: %t65 = load i64, ptr %a23 %t66 = add i64 %t65, 1 store i64 %t66, ptr %a23 - br label %for.cond7290 -for.end7293: + br label %for.cond7683 +for.end7686: %t67 = getelementptr inbounds %S.gen.FnSig, ptr %a3, i32 0, i32 12 %t68 = getelementptr inbounds %S.ast.Type, ptr %t67, i32 0, i32 0 %t69 = load { ptr, i64, i64 }, ptr %t68 store { ptr, i64, i64 } %t69, ptr %a70 - store { ptr, i64, i64 } { ptr @.str.4659, i64 4, i64 0 }, ptr %a71 + store { ptr, i64, i64 } { ptr @.str.4866, i64 4, i64 0 }, ptr %a71 %t72 = call i32 @finch_str_eq(ptr %a70, ptr %a71) %t73 = icmp eq i32 %t72, 0 - br label %logic.from7303 -logic.from7303: - br i1 %t73, label %logic.rhs7304, label %logic.end7305 -logic.rhs7304: + br label %logic.from7696 +logic.from7696: + br i1 %t73, label %logic.rhs7697, label %logic.end7698 +logic.rhs7697: %t74 = getelementptr inbounds %S.gen.FnSig, ptr %a3, i32 0, i32 12 %t75 = load %S.ast.Type, ptr %t74 %t76 = call i1 @finch.gen.cPlain(%S.ast.Type %t75) %t77 = xor i1 %t76, true - br label %logic.rend7306 -logic.rend7306: - br label %logic.end7305 -logic.end7305: - %t78 = phi i1 [ false, %logic.from7303 ], [ %t77, %logic.rend7306 ] - br i1 %t78, label %then7307, label %endif7309 -then7307: + br label %logic.rend7699 +logic.rend7699: + br label %logic.end7698 +logic.end7698: + %t78 = phi i1 [ false, %logic.from7696 ], [ %t77, %logic.rend7699 ] + br i1 %t78, label %then7700, label %endif7702 +then7700: %t79 = load ptr, ptr %a1 %t80 = load %S.ast.Node, ptr %a2 %t81 = getelementptr inbounds %S.gen.FnSig, ptr %a3, i32 0, i32 12 %t82 = load %S.ast.Type, ptr %t81 %t83 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t82) - store { ptr, i64, i64 } { ptr @.str.4660, i64 69, i64 0 }, ptr %a85 + store { ptr, i64, i64 } { ptr @.str.4867, i64 69, i64 0 }, ptr %a85 store { ptr, i64, i64 } %t83, ptr %a86 call void @finch_str_concat(ptr %a84, ptr %a85, ptr %a86) store { ptr, i64, i64 } %t83, ptr %a87 call void @finch_str_drop(ptr %a87) %t88 = load { ptr, i64, i64 }, ptr %a84 store { ptr, i64, i64 } %t88, ptr %a90 - store { ptr, i64, i64 } { ptr @.str.4661, i64 1, i64 0 }, ptr %a91 + store { ptr, i64, i64 } { ptr @.str.4868, i64 1, i64 0 }, ptr %a91 call void @finch_str_concat(ptr %a89, ptr %a90, ptr %a91) store { ptr, i64, i64 } %t88, ptr %a92 call void @finch_str_drop(ptr %a92) @@ -72854,35 +76787,35 @@ then7307: call void @finch.gen.fail(ptr %t79, %S.ast.Node %t80, { ptr, i64, i64 } %t93) store { ptr, i64, i64 } %t93, ptr %a94 call void @finch_str_drop(ptr %a94) - br label %endif7309 -endif7309: + br label %endif7702 +endif7702: %t95 = load ptr, ptr %a1 %t96 = icmp eq ptr %t95, null - br i1 %t96, label %panic7310, label %ok7311 -panic7310: - call void @finch_panic(ptr @.str.4662, i64 4252, ptr @.str.4663) + br i1 %t96, label %panic7703, label %ok7704 +panic7703: + call void @finch_panic(ptr @.str.4869, i64 4479, ptr @.str.4870) unreachable -ok7311: +ok7704: %t97 = getelementptr inbounds %S.gen.Gen, ptr %t95, i32 0, i32 15 store i64 0, ptr %a98 - br label %each.cond7312 -each.cond7312: + br label %each.cond7705 +each.cond7705: %t99 = getelementptr inbounds { ptr, i64, i64 }, ptr %t97, i32 0, i32 1 %t100 = load i64, ptr %t99 %t101 = load i64, ptr %a98 %t102 = icmp slt i64 %t101, %t100 - br i1 %t102, label %each.body7313, label %each.end7315 -each.body7313: + br i1 %t102, label %each.body7706, label %each.end7708 +each.body7706: %t103 = load ptr, ptr %t97 %t104 = getelementptr inbounds %S.gen.FnSig, ptr %t103, i64 %t101 %t105 = load %S.gen.FnSig, ptr %t104 store %S.gen.FnSig %t105, ptr %a106 %t107 = getelementptr inbounds %S.gen.FnSig, ptr %a106, i32 0, i32 5 %t108 = load i1, ptr %t107 - br label %logic.from7316 -logic.from7316: - br i1 %t108, label %logic.rhs7317, label %logic.end7318 -logic.rhs7317: + br label %logic.from7709 +logic.from7709: + br i1 %t108, label %logic.rhs7710, label %logic.end7711 +logic.rhs7710: %t109 = getelementptr inbounds %S.gen.FnSig, ptr %a106, i32 0, i32 1 %t110 = load { ptr, i64, i64 }, ptr %t109 %t111 = getelementptr inbounds %S.gen.FnSig, ptr %a3, i32 0, i32 1 @@ -72891,23 +76824,23 @@ logic.rhs7317: store { ptr, i64, i64 } %t112, ptr %a114 %t115 = call i32 @finch_str_eq(ptr %a113, ptr %a114) %t116 = icmp ne i32 %t115, 0 - br label %logic.rend7319 -logic.rend7319: - br label %logic.end7318 -logic.end7318: - %t117 = phi i1 [ false, %logic.from7316 ], [ %t116, %logic.rend7319 ] - br i1 %t117, label %then7320, label %endif7322 -then7320: + br label %logic.rend7712 +logic.rend7712: + br label %logic.end7711 +logic.end7711: + %t117 = phi i1 [ false, %logic.from7709 ], [ %t116, %logic.rend7712 ] + br i1 %t117, label %then7713, label %endif7715 +then7713: %t118 = load ptr, ptr %a1 %t119 = load %S.ast.Node, ptr %a2 %t120 = getelementptr inbounds %S.gen.FnSig, ptr %a3, i32 0, i32 1 %t121 = load { ptr, i64, i64 }, ptr %t120 - store { ptr, i64, i64 } { ptr @.str.4664, i64 1, i64 0 }, ptr %a123 + store { ptr, i64, i64 } { ptr @.str.4871, i64 1, i64 0 }, ptr %a123 store { ptr, i64, i64 } %t121, ptr %a124 call void @finch_str_concat(ptr %a122, ptr %a123, ptr %a124) %t125 = load { ptr, i64, i64 }, ptr %a122 store { ptr, i64, i64 } %t125, ptr %a127 - store { ptr, i64, i64 } { ptr @.str.4665, i64 38, i64 0 }, ptr %a128 + store { ptr, i64, i64 } { ptr @.str.4872, i64 38, i64 0 }, ptr %a128 call void @finch_str_concat(ptr %a126, ptr %a127, ptr %a128) store { ptr, i64, i64 } %t125, ptr %a129 call void @finch_str_drop(ptr %a129) @@ -72915,15 +76848,15 @@ then7320: call void @finch.gen.fail(ptr %t118, %S.ast.Node %t119, { ptr, i64, i64 } %t130) store { ptr, i64, i64 } %t130, ptr %a131 call void @finch_str_drop(ptr %a131) - br label %endif7322 -endif7322: - br label %each.step7314 -each.step7314: + br label %endif7715 +endif7715: + br label %each.step7707 +each.step7707: %t132 = load i64, ptr %a98 %t133 = add i64 %t132, 1 store i64 %t133, ptr %a98 - br label %each.cond7312 -each.end7315: + br label %each.cond7705 +each.end7708: ret void } @@ -73103,22 +77036,22 @@ entry: %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %t8, i32 0, i32 1 %t10 = load i64, ptr %t9 store i64 0, ptr %a11 - br label %for.cond7323 -for.cond7323: + br label %for.cond7716 +for.cond7716: %t12 = load i64, ptr %a11 %t13 = icmp slt i64 %t12, %t10 - br i1 %t13, label %for.body7324, label %for.end7326 -for.body7324: + br i1 %t13, label %for.body7717, label %for.end7719 +for.body7717: %t14 = getelementptr inbounds %S.gen.FnSig, ptr %a2, i32 0, i32 13 %t15 = load i64, ptr %a11 %t16 = load { ptr, i64, i64 }, ptr %t14 %t17 = extractvalue { ptr, i64, i64 } %t16, 1 %t18 = icmp uge i64 %t15, %t17 - br i1 %t18, label %range7327, label %inrange7328 -range7327: - call void @finch_panic_index(ptr @.str.4666, i64 4265, i64 %t15, i64 %t17) + br i1 %t18, label %range7720, label %inrange7721 +range7720: + call void @finch_panic_index(ptr @.str.4873, i64 4492, i64 %t15, i64 %t17) unreachable -inrange7328: +inrange7721: %t19 = extractvalue { ptr, i64, i64 } %t16, 0 %t20 = getelementptr inbounds %S.ast.Type, ptr %t19, i64 %t15 %t21 = load %S.ast.Type, ptr %t20 @@ -73129,16 +77062,16 @@ inrange7328: %t26 = getelementptr inbounds %S.ast.Type, ptr %a25, i32 0, i32 0 %t27 = load { ptr, i64, i64 }, ptr %t26 store { ptr, i64, i64 } %t27, ptr %a28 - store { ptr, i64, i64 } { ptr @.str.4667, i64 4, i64 0 }, ptr %a29 + store { ptr, i64, i64 } { ptr @.str.4874, i64 4, i64 0 }, ptr %a29 %t30 = call i32 @finch_str_eq(ptr %a28, ptr %a29) %t31 = icmp ne i32 %t30, 0 - br i1 %t31, label %then7329, label %else7330 -then7329: + br i1 %t31, label %then7722, label %else7723 +then7722: %t32 = getelementptr inbounds { ptr, i64, i64 }, ptr %a3, i32 0, i32 1 %t33 = load i64, ptr %a11 call void @finch_str_from_int(ptr %a34, i64 %t33) %t35 = load { ptr, i64, i64 }, ptr %a34 - store { ptr, i64, i64 } { ptr @.str.4668, i64 13, i64 0 }, ptr %a37 + store { ptr, i64, i64 } { ptr @.str.4875, i64 13, i64 0 }, ptr %a37 store { ptr, i64, i64 } %t35, ptr %a38 call void @finch_str_concat(ptr %a36, ptr %a37, ptr %a38) store { ptr, i64, i64 } %t35, ptr %a39 @@ -73156,14 +77089,14 @@ then7329: %t47 = load i64, ptr %a11 call void @finch_str_from_int(ptr %a48, i64 %t47) %t49 = load { ptr, i64, i64 }, ptr %a48 - store { ptr, i64, i64 } { ptr @.str.4670, i64 13, i64 0 }, ptr %a51 + store { ptr, i64, i64 } { ptr @.str.4877, i64 13, i64 0 }, ptr %a51 store { ptr, i64, i64 } %t49, ptr %a52 call void @finch_str_concat(ptr %a50, ptr %a51, ptr %a52) store { ptr, i64, i64 } %t49, ptr %a53 call void @finch_str_drop(ptr %a53) %t54 = load { ptr, i64, i64 }, ptr %a50 store { ptr, i64, i64 } %t54, ptr %a56 - store { ptr, i64, i64 } { ptr @.str.4671, i64 3, i64 0 }, ptr %a57 + store { ptr, i64, i64 } { ptr @.str.4878, i64 3, i64 0 }, ptr %a57 call void @finch_str_concat(ptr %a55, ptr %a56, ptr %a57) store { ptr, i64, i64 } %t54, ptr %a58 call void @finch_str_drop(ptr %a58) @@ -73171,7 +77104,7 @@ then7329: %t60 = call { ptr, i64, i64 } @finch.gen.op(ptr %t46, { ptr, i64, i64 } %t59) store { ptr, i64, i64 } %t59, ptr %a61 call void @finch_str_drop(ptr %a61) - store { ptr, i64, i64 } { ptr @.str.4669, i64 3, i64 0 }, ptr %a63 + store { ptr, i64, i64 } { ptr @.str.4876, i64 3, i64 0 }, ptr %a63 store { ptr, i64, i64 } %t60, ptr %a64 call void @finch_str_concat(ptr %a62, ptr %a63, ptr %a64) store { ptr, i64, i64 } %t60, ptr %a65 @@ -73184,8 +77117,8 @@ then7329: %t70 = getelementptr inbounds { ptr, i64, i64 }, ptr %t69, i64 %t67 store { ptr, i64, i64 } %t66, ptr %t70 store i64 %t68, ptr %t45 - br label %endif7331 -else7330: + br label %endif7724 +else7723: %t71 = getelementptr inbounds { ptr, i64, i64 }, ptr %a3, i32 0, i32 1 %t72 = load ptr, ptr %a1 %t73 = load %S.ast.Type, ptr %a25 @@ -73202,7 +77135,7 @@ else7330: call void @finch_str_drop(ptr %a82) %t83 = load { ptr, i64, i64 }, ptr %a78 store { ptr, i64, i64 } %t83, ptr %a85 - store { ptr, i64, i64 } { ptr @.str.4672, i64 3, i64 0 }, ptr %a86 + store { ptr, i64, i64 } { ptr @.str.4879, i64 3, i64 0 }, ptr %a86 call void @finch_str_concat(ptr %a84, ptr %a85, ptr %a86) store { ptr, i64, i64 } %t83, ptr %a87 call void @finch_str_drop(ptr %a87) @@ -73230,7 +77163,7 @@ else7330: %t104 = load %S.ast.Type, ptr %a25 %t105 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t103, %S.ast.Type %t104) store { ptr, i64, i64 } %t105, ptr %a107 - store { ptr, i64, i64 } { ptr @.str.4673, i64 3, i64 0 }, ptr %a108 + store { ptr, i64, i64 } { ptr @.str.4880, i64 3, i64 0 }, ptr %a108 call void @finch_str_concat(ptr %a106, ptr %a107, ptr %a108) store { ptr, i64, i64 } %t105, ptr %a109 call void @finch_str_drop(ptr %a109) @@ -73253,28 +77186,28 @@ else7330: %t123 = getelementptr inbounds { ptr, i64, i64 }, ptr %t122, i64 %t120 store { ptr, i64, i64 } %t119, ptr %t123 store i64 %t121, ptr %t102 - br label %endif7331 -endif7331: + br label %endif7724 +endif7724: call void @finch.drop.S_ast_Type(ptr %a25) - br label %for.step7325 -for.step7325: + br label %for.step7718 +for.step7718: %t124 = load i64, ptr %a11 %t125 = add i64 %t124, 1 store i64 %t125, ptr %a11 - br label %for.cond7323 -for.end7326: + br label %for.cond7716 +for.end7719: %t126 = load ptr, ptr %a1 %t127 = getelementptr inbounds %S.gen.FnSig, ptr %a2, i32 0, i32 12 %t128 = load %S.ast.Type, ptr %t127 %t129 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t126, %S.ast.Type %t128) - store { ptr, i64, i64 } { ptr @.str.4674, i64 5, i64 0 }, ptr %a131 + store { ptr, i64, i64 } { ptr @.str.4881, i64 5, i64 0 }, ptr %a131 store { ptr, i64, i64 } %t129, ptr %a132 call void @finch_str_concat(ptr %a130, ptr %a131, ptr %a132) store { ptr, i64, i64 } %t129, ptr %a133 call void @finch_str_drop(ptr %a133) %t134 = load { ptr, i64, i64 }, ptr %a130 store { ptr, i64, i64 } %t134, ptr %a136 - store { ptr, i64, i64 } { ptr @.str.4675, i64 1, i64 0 }, ptr %a137 + store { ptr, i64, i64 } { ptr @.str.4882, i64 1, i64 0 }, ptr %a137 call void @finch_str_concat(ptr %a135, ptr %a136, ptr %a137) store { ptr, i64, i64 } %t134, ptr %a138 call void @finch_str_drop(ptr %a138) @@ -73288,13 +77221,13 @@ for.end7326: call void @finch_str_drop(ptr %a145) %t146 = load { ptr, i64, i64 }, ptr %a142 store { ptr, i64, i64 } %t146, ptr %a148 - store { ptr, i64, i64 } { ptr @.str.4676, i64 1, i64 0 }, ptr %a149 + store { ptr, i64, i64 } { ptr @.str.4883, i64 1, i64 0 }, ptr %a149 call void @finch_str_concat(ptr %a147, ptr %a148, ptr %a149) store { ptr, i64, i64 } %t146, ptr %a150 call void @finch_str_drop(ptr %a150) %t151 = load { ptr, i64, i64 }, ptr %a147 %t152 = getelementptr inbounds { ptr, i64, i64 }, ptr %a4, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.4677, i64 2, i64 0 }, ptr %a153 + store { ptr, i64, i64 } { ptr @.str.4884, i64 2, i64 0 }, ptr %a153 call void @finch_str_join(ptr %a154, ptr %a4, ptr %a153) %t155 = load { ptr, i64, i64 }, ptr %a154 store { ptr, i64, i64 } %t151, ptr %a157 @@ -73306,45 +77239,45 @@ for.end7326: call void @finch_str_drop(ptr %a160) %t161 = load { ptr, i64, i64 }, ptr %a156 store { ptr, i64, i64 } %t161, ptr %a163 - store { ptr, i64, i64 } { ptr @.str.4678, i64 1, i64 0 }, ptr %a164 + store { ptr, i64, i64 } { ptr @.str.4885, i64 1, i64 0 }, ptr %a164 call void @finch_str_concat(ptr %a162, ptr %a163, ptr %a164) store { ptr, i64, i64 } %t161, ptr %a165 call void @finch_str_drop(ptr %a165) %t166 = load { ptr, i64, i64 }, ptr %a162 store { ptr, i64, i64 } %t166, ptr %a167 - store { ptr, i64, i64 } { ptr @.str.4679, i64 4, i64 0 }, ptr %a168 - store { ptr, i64, i64 } { ptr @.str.4680, i64 0, i64 0 }, ptr %a169 + store { ptr, i64, i64 } { ptr @.str.4886, i64 4, i64 0 }, ptr %a168 + store { ptr, i64, i64 } { ptr @.str.4887, i64 0, i64 0 }, ptr %a169 %t170 = getelementptr inbounds %S.gen.FnSig, ptr %a2, i32 0, i32 12 %t171 = getelementptr inbounds %S.ast.Type, ptr %t170, i32 0, i32 0 %t172 = load { ptr, i64, i64 }, ptr %t171 store { ptr, i64, i64 } %t172, ptr %a173 - store { ptr, i64, i64 } { ptr @.str.4681, i64 4, i64 0 }, ptr %a174 + store { ptr, i64, i64 } { ptr @.str.4888, i64 4, i64 0 }, ptr %a174 %t175 = call i32 @finch_str_eq(ptr %a173, ptr %a174) %t176 = icmp ne i32 %t175, 0 - br i1 %t176, label %then7332, label %else7333 -then7332: + br i1 %t176, label %then7725, label %else7726 +then7725: %t177 = load ptr, ptr %a1 %t178 = load { ptr, i64, i64 }, ptr %a167 call void @finch.gen.emit(ptr %t177, { ptr, i64, i64 } %t178) %t179 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t179, { ptr, i64, i64 } { ptr @.str.4682, i64 8, i64 0 }) - br label %endif7334 -else7333: + call void @finch.gen.emit(ptr %t179, { ptr, i64, i64 } { ptr @.str.4889, i64 8, i64 0 }) + br label %endif7727 +else7726: %t180 = getelementptr inbounds %S.gen.FnSig, ptr %a2, i32 0, i32 12 %t181 = getelementptr inbounds %S.ast.Type, ptr %t180, i32 0, i32 0 %t182 = load { ptr, i64, i64 }, ptr %t181 store { ptr, i64, i64 } %t182, ptr %a183 - store { ptr, i64, i64 } { ptr @.str.4683, i64 4, i64 0 }, ptr %a184 + store { ptr, i64, i64 } { ptr @.str.4890, i64 4, i64 0 }, ptr %a184 %t185 = call i32 @finch_str_eq(ptr %a183, ptr %a184) %t186 = icmp ne i32 %t185, 0 - br i1 %t186, label %then7335, label %else7336 -then7335: + br i1 %t186, label %then7728, label %else7729 +then7728: %t187 = load { ptr, i64, i64 }, ptr %a168 - store { ptr, i64, i64 } { ptr @.str.4684, i64 2, i64 0 }, ptr %a168 + store { ptr, i64, i64 } { ptr @.str.4891, i64 2, i64 0 }, ptr %a168 store { ptr, i64, i64 } %t187, ptr %a188 call void @finch_str_drop(ptr %a188) %t189 = load { ptr, i64, i64 }, ptr %a169 - store { ptr, i64, i64 } { ptr @.str.4685, i64 8, i64 0 }, ptr %a169 + store { ptr, i64, i64 } { ptr @.str.4892, i64 8, i64 0 }, ptr %a169 store { ptr, i64, i64 } %t189, ptr %a190 call void @finch_str_drop(ptr %a190) %t191 = load ptr, ptr %a1 @@ -73352,14 +77285,14 @@ then7335: %t193 = load ptr, ptr %a1 %t194 = load { ptr, i64, i64 }, ptr %a167 %t195 = call { ptr, i64, i64 } @finch.gen.op(ptr %t193, { ptr, i64, i64 } %t194) - store { ptr, i64, i64 } { ptr @.str.4687, i64 8, i64 0 }, ptr %a197 + store { ptr, i64, i64 } { ptr @.str.4894, i64 8, i64 0 }, ptr %a197 store { ptr, i64, i64 } %t195, ptr %a198 call void @finch_str_concat(ptr %a196, ptr %a197, ptr %a198) store { ptr, i64, i64 } %t195, ptr %a199 call void @finch_str_drop(ptr %a199) %t200 = load { ptr, i64, i64 }, ptr %a196 store { ptr, i64, i64 } %t200, ptr %a202 - store { ptr, i64, i64 } { ptr @.str.4688, i64 6, i64 0 }, ptr %a203 + store { ptr, i64, i64 } { ptr @.str.4895, i64 6, i64 0 }, ptr %a203 call void @finch_str_concat(ptr %a201, ptr %a202, ptr %a203) store { ptr, i64, i64 } %t200, ptr %a204 call void @finch_str_drop(ptr %a204) @@ -73367,7 +77300,7 @@ then7335: %t206 = call { ptr, i64, i64 } @finch.gen.op(ptr %t192, { ptr, i64, i64 } %t205) store { ptr, i64, i64 } %t205, ptr %a207 call void @finch_str_drop(ptr %a207) - store { ptr, i64, i64 } { ptr @.str.4686, i64 7, i64 0 }, ptr %a209 + store { ptr, i64, i64 } { ptr @.str.4893, i64 7, i64 0 }, ptr %a209 store { ptr, i64, i64 } %t206, ptr %a210 call void @finch_str_concat(ptr %a208, ptr %a209, ptr %a210) store { ptr, i64, i64 } %t206, ptr %a211 @@ -73376,8 +77309,8 @@ then7335: call void @finch.gen.emit(ptr %t191, { ptr, i64, i64 } %t212) store { ptr, i64, i64 } %t212, ptr %a213 call void @finch_str_drop(ptr %a213) - br label %endif7337 -else7336: + br label %endif7730 +else7729: %t214 = load ptr, ptr %a1 %t215 = getelementptr inbounds %S.gen.FnSig, ptr %a2, i32 0, i32 12 %t216 = load %S.ast.Type, ptr %t215 @@ -73396,12 +77329,12 @@ else7336: call void @finch_str_drop(ptr %a225) %t226 = load ptr, ptr %a1 %t227 = load { ptr, i64, i64 }, ptr %a168 - store { ptr, i64, i64 } { ptr @.str.4689, i64 4, i64 0 }, ptr %a229 + store { ptr, i64, i64 } { ptr @.str.4896, i64 4, i64 0 }, ptr %a229 store { ptr, i64, i64 } %t227, ptr %a230 call void @finch_str_concat(ptr %a228, ptr %a229, ptr %a230) %t231 = load { ptr, i64, i64 }, ptr %a228 store { ptr, i64, i64 } %t231, ptr %a233 - store { ptr, i64, i64 } { ptr @.str.4690, i64 1, i64 0 }, ptr %a234 + store { ptr, i64, i64 } { ptr @.str.4897, i64 1, i64 0 }, ptr %a234 call void @finch_str_concat(ptr %a232, ptr %a233, ptr %a234) store { ptr, i64, i64 } %t231, ptr %a235 call void @finch_str_drop(ptr %a235) @@ -73420,33 +77353,33 @@ else7336: call void @finch.gen.emit(ptr %t226, { ptr, i64, i64 } %t245) store { ptr, i64, i64 } %t245, ptr %a246 call void @finch_str_drop(ptr %a246) - br label %endif7337 -endif7337: - br label %endif7334 -endif7334: - store { ptr, i64, i64 } { ptr @.str.4691, i64 0, i64 0 }, ptr %a247 + br label %endif7730 +endif7730: + br label %endif7727 +endif7727: + store { ptr, i64, i64 } { ptr @.str.4898, i64 0, i64 0 }, ptr %a247 %t248 = load ptr, ptr %a1 %t249 = icmp eq ptr %t248, null - br i1 %t249, label %panic7338, label %ok7339 -panic7338: - call void @finch_panic(ptr @.str.4692, i64 4290, ptr @.str.4693) + br i1 %t249, label %panic7731, label %ok7732 +panic7731: + call void @finch_panic(ptr @.str.4899, i64 4517, ptr @.str.4900) unreachable -ok7339: - %t250 = getelementptr inbounds %S.gen.Gen, ptr %t248, i32 0, i32 30 +ok7732: + %t250 = getelementptr inbounds %S.gen.Gen, ptr %t248, i32 0, i32 31 %t251 = getelementptr inbounds %S.platform.Target, ptr %t250, i32 0, i32 1 %t252 = load i1, ptr %t251 - br i1 %t252, label %then7340, label %endif7342 -then7340: + br i1 %t252, label %then7733, label %endif7735 +then7733: %t253 = load { ptr, i64, i64 }, ptr %a247 - store { ptr, i64, i64 } { ptr @.str.4694, i64 10, i64 0 }, ptr %a247 + store { ptr, i64, i64 } { ptr @.str.4901, i64 10, i64 0 }, ptr %a247 store { ptr, i64, i64 } %t253, ptr %a254 call void @finch_str_drop(ptr %a254) - br label %endif7342 -endif7342: + br label %endif7735 +endif7735: %t255 = load ptr, ptr %a1 %t256 = load %S.gen.Saved, ptr %a7 %t257 = load { ptr, i64, i64 }, ptr %a247 - store { ptr, i64, i64 } { ptr @.str.4695, i64 6, i64 0 }, ptr %a259 + store { ptr, i64, i64 } { ptr @.str.4902, i64 6, i64 0 }, ptr %a259 store { ptr, i64, i64 } %t257, ptr %a260 call void @finch_str_concat(ptr %a258, ptr %a259, ptr %a260) %t261 = load { ptr, i64, i64 }, ptr %a258 @@ -73458,7 +77391,7 @@ endif7342: call void @finch_str_drop(ptr %a266) %t267 = load { ptr, i64, i64 }, ptr %a263 store { ptr, i64, i64 } %t267, ptr %a269 - store { ptr, i64, i64 } { ptr @.str.4696, i64 1, i64 0 }, ptr %a270 + store { ptr, i64, i64 } { ptr @.str.4903, i64 1, i64 0 }, ptr %a270 call void @finch_str_concat(ptr %a268, ptr %a269, ptr %a270) store { ptr, i64, i64 } %t267, ptr %a271 call void @finch_str_drop(ptr %a271) @@ -73471,7 +77404,7 @@ endif7342: call void @finch_str_drop(ptr %a277) %t278 = load { ptr, i64, i64 }, ptr %a274 store { ptr, i64, i64 } %t278, ptr %a280 - store { ptr, i64, i64 } { ptr @.str.4697, i64 2, i64 0 }, ptr %a281 + store { ptr, i64, i64 } { ptr @.str.4904, i64 2, i64 0 }, ptr %a281 call void @finch_str_concat(ptr %a279, ptr %a280, ptr %a281) store { ptr, i64, i64 } %t278, ptr %a282 call void @finch_str_drop(ptr %a282) @@ -73485,13 +77418,13 @@ endif7342: call void @finch_str_drop(ptr %a289) %t290 = load { ptr, i64, i64 }, ptr %a286 store { ptr, i64, i64 } %t290, ptr %a292 - store { ptr, i64, i64 } { ptr @.str.4698, i64 1, i64 0 }, ptr %a293 + store { ptr, i64, i64 } { ptr @.str.4905, i64 1, i64 0 }, ptr %a293 call void @finch_str_concat(ptr %a291, ptr %a292, ptr %a293) store { ptr, i64, i64 } %t290, ptr %a294 call void @finch_str_drop(ptr %a294) %t295 = load { ptr, i64, i64 }, ptr %a291 %t296 = getelementptr inbounds { ptr, i64, i64 }, ptr %a3, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.4699, i64 2, i64 0 }, ptr %a297 + store { ptr, i64, i64 } { ptr @.str.4906, i64 2, i64 0 }, ptr %a297 call void @finch_str_join(ptr %a298, ptr %a3, ptr %a297) %t299 = load { ptr, i64, i64 }, ptr %a298 store { ptr, i64, i64 } %t295, ptr %a301 @@ -73503,7 +77436,7 @@ endif7342: call void @finch_str_drop(ptr %a304) %t305 = load { ptr, i64, i64 }, ptr %a300 store { ptr, i64, i64 } %t305, ptr %a307 - store { ptr, i64, i64 } { ptr @.str.4700, i64 1, i64 0 }, ptr %a308 + store { ptr, i64, i64 } { ptr @.str.4907, i64 1, i64 0 }, ptr %a308 call void @finch_str_concat(ptr %a306, ptr %a307, ptr %a308) store { ptr, i64, i64 } %t305, ptr %a309 call void @finch_str_drop(ptr %a309) @@ -73533,19 +77466,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond7465 -n.cond7465: + br label %n.cond7858 +n.cond7858: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body7466, label %n.end7467 -n.body7466: + br i1 %t6, label %n.body7859, label %n.end7860 +n.body7859: %t7 = getelementptr inbounds %S.gen.Abi, ptr %t1, i64 %t5 call void @finch.drop.S_gen_Abi(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond7465 -n.end7467: + br label %n.cond7858 +n.end7860: call void @finch_arr_free(ptr %a) ret void } @@ -73910,21 +77843,21 @@ entry: store %S.ast.Node %p2, ptr %a3 %t4 = load ptr, ptr %a1 %t5 = icmp eq ptr %t4, null - br i1 %t5, label %panic7343, label %ok7344 -panic7343: - call void @finch_panic(ptr @.str.4701, i64 4299, ptr @.str.4702) + br i1 %t5, label %panic7736, label %ok7737 +panic7736: + call void @finch_panic(ptr @.str.4908, i64 4526, ptr @.str.4909) unreachable -ok7344: +ok7737: %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 15 %t7 = load i64, ptr %a2 %t8 = load { ptr, i64, i64 }, ptr %t6 %t9 = extractvalue { ptr, i64, i64 } %t8, 1 %t10 = icmp uge i64 %t7, %t9 - br i1 %t10, label %range7345, label %inrange7346 -range7345: - call void @finch_panic_index(ptr @.str.4703, i64 4299, i64 %t7, i64 %t9) + br i1 %t10, label %range7738, label %inrange7739 +range7738: + call void @finch_panic_index(ptr @.str.4910, i64 4526, i64 %t7, i64 %t9) unreachable -inrange7346: +inrange7739: %t11 = extractvalue { ptr, i64, i64 } %t8, 0 %t12 = getelementptr inbounds %S.gen.FnSig, ptr %t11, i64 %t7 %t13 = load %S.gen.FnSig, ptr %t12 @@ -73935,14 +77868,14 @@ inrange7346: %t18 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 0 %t19 = load { ptr, i64, i64 }, ptr %t18 %t20 = call { ptr, i64, i64 } @finch.gen.modName({ ptr, i64, i64 } %t19) - store { ptr, i64, i64 } { ptr @.str.4704, i64 9, i64 0 }, ptr %a22 + store { ptr, i64, i64 } { ptr @.str.4911, i64 9, i64 0 }, ptr %a22 store { ptr, i64, i64 } %t20, ptr %a23 call void @finch_str_concat(ptr %a21, ptr %a22, ptr %a23) store { ptr, i64, i64 } %t20, ptr %a24 call void @finch_str_drop(ptr %a24) %t25 = load { ptr, i64, i64 }, ptr %a21 store { ptr, i64, i64 } %t25, ptr %a27 - store { ptr, i64, i64 } { ptr @.str.4705, i64 1, i64 0 }, ptr %a28 + store { ptr, i64, i64 } { ptr @.str.4912, i64 1, i64 0 }, ptr %a28 call void @finch_str_concat(ptr %a26, ptr %a27, ptr %a28) store { ptr, i64, i64 } %t25, ptr %a29 call void @finch_str_drop(ptr %a29) @@ -73958,15 +77891,15 @@ inrange7346: store { ptr, i64, i64 } %t37, ptr %a38 %t39 = load ptr, ptr %a1 %t40 = icmp eq ptr %t39, null - br i1 %t40, label %panic7347, label %ok7348 -panic7347: - call void @finch_panic(ptr @.str.4706, i64 4301, ptr @.str.4707) + br i1 %t40, label %panic7740, label %ok7741 +panic7740: + call void @finch_panic(ptr @.str.4913, i64 4528, ptr @.str.4914) unreachable -ok7348: - %t41 = getelementptr inbounds %S.gen.Gen, ptr %t39, i32 0, i32 39 +ok7741: + %t41 = getelementptr inbounds %S.gen.Gen, ptr %t39, i32 0, i32 40 %t42 = getelementptr inbounds { ptr, i64, i64 }, ptr %t41, i32 0, i32 1 %t43 = load { ptr, i64, i64 }, ptr %a38 - store { ptr, i64, i64 } { ptr @.str.4708, i64 2, i64 0 }, ptr %a45 + store { ptr, i64, i64 } { ptr @.str.4915, i64 2, i64 0 }, ptr %a45 store { ptr, i64, i64 } %t43, ptr %a46 call void @finch_str_concat(ptr %a44, ptr %a45, ptr %a46) %t47 = load { ptr, i64, i64 }, ptr %a44 @@ -73974,48 +77907,48 @@ ok7348: %t49 = load i64, ptr %t42 %t50 = load ptr, ptr %t41 store i64 0, ptr %a51 - br label %find.cond7349 -find.cond7349: + br label %find.cond7742 +find.cond7742: %t52 = load i64, ptr %a51 %t53 = icmp slt i64 %t52, %t49 - br i1 %t53, label %find.body7350, label %find.end7353 -find.body7350: + br i1 %t53, label %find.body7743, label %find.end7746 +find.body7743: %t54 = getelementptr inbounds { ptr, i64, i64 }, ptr %t50, i64 %t52 %t55 = load { ptr, i64, i64 }, ptr %t54 store { ptr, i64, i64 } %t55, ptr %a56 store { ptr, i64, i64 } %t47, ptr %a57 %t58 = call i32 @finch_str_eq(ptr %a56, ptr %a57) %t59 = icmp ne i32 %t58, 0 - br i1 %t59, label %find.hit7351, label %find.next7352 -find.hit7351: + br i1 %t59, label %find.hit7744, label %find.next7745 +find.hit7744: store i64 %t52, ptr %a48 - br label %find.end7353 -find.next7352: + br label %find.end7746 +find.next7745: %t60 = add i64 %t52, 1 store i64 %t60, ptr %a51 - br label %find.cond7349 -find.end7353: + br label %find.cond7742 +find.end7746: store { ptr, i64, i64 } %t47, ptr %a61 call void @finch_str_drop(ptr %a61) %t62 = load i64, ptr %a48 %t63 = icmp sge i64 %t62, 0 - br i1 %t63, label %then7354, label %endif7356 -then7354: + br i1 %t63, label %then7747, label %endif7749 +then7747: %t64 = load { ptr, i64, i64 }, ptr %a38 call void @finch.drop.S_gen_FnSig(ptr %a17) ret { ptr, i64, i64 } %t64 -endif7356: +endif7749: %t65 = load ptr, ptr %a1 %t66 = icmp eq ptr %t65, null - br i1 %t66, label %panic7357, label %ok7358 -panic7357: - call void @finch_panic(ptr @.str.4709, i64 4304, ptr @.str.4710) + br i1 %t66, label %panic7750, label %ok7751 +panic7750: + call void @finch_panic(ptr @.str.4916, i64 4531, ptr @.str.4917) unreachable -ok7358: - %t67 = getelementptr inbounds %S.gen.Gen, ptr %t65, i32 0, i32 39 +ok7751: + %t67 = getelementptr inbounds %S.gen.Gen, ptr %t65, i32 0, i32 40 %t68 = getelementptr inbounds { ptr, i64, i64 }, ptr %t67, i32 0, i32 1 %t69 = load { ptr, i64, i64 }, ptr %a38 - store { ptr, i64, i64 } { ptr @.str.4711, i64 2, i64 0 }, ptr %a71 + store { ptr, i64, i64 } { ptr @.str.4918, i64 2, i64 0 }, ptr %a71 store { ptr, i64, i64 } %t69, ptr %a72 call void @finch_str_concat(ptr %a70, ptr %a71, ptr %a72) %t73 = load { ptr, i64, i64 }, ptr %a70 @@ -74030,29 +77963,29 @@ ok7358: %t79 = getelementptr inbounds { ptr, i64, i64 }, ptr %t78, i32 0, i32 1 %t80 = load i64, ptr %t79 %t81 = icmp sgt i64 %t80, 0 - br label %logic.from7359 -logic.from7359: - br i1 %t81, label %logic.end7361, label %logic.rhs7360 -logic.rhs7360: + br label %logic.from7752 +logic.from7752: + br i1 %t81, label %logic.end7754, label %logic.rhs7753 +logic.rhs7753: %t82 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 9 %t83 = load i1, ptr %t82 - br label %logic.rend7362 -logic.rend7362: - br label %logic.end7361 -logic.end7361: - %t84 = phi i1 [ true, %logic.from7359 ], [ %t83, %logic.rend7362 ] - br i1 %t84, label %then7363, label %endif7365 -then7363: + br label %logic.rend7755 +logic.rend7755: + br label %logic.end7754 +logic.end7754: + %t84 = phi i1 [ true, %logic.from7752 ], [ %t83, %logic.rend7755 ] + br i1 %t84, label %then7756, label %endif7758 +then7756: %t85 = load ptr, ptr %a1 %t86 = load %S.ast.Node, ptr %a3 %t87 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 1 %t88 = load { ptr, i64, i64 }, ptr %t87 - store { ptr, i64, i64 } { ptr @.str.4712, i64 5, i64 0 }, ptr %a90 + store { ptr, i64, i64 } { ptr @.str.4919, i64 5, i64 0 }, ptr %a90 store { ptr, i64, i64 } %t88, ptr %a91 call void @finch_str_concat(ptr %a89, ptr %a90, ptr %a91) %t92 = load { ptr, i64, i64 }, ptr %a89 store { ptr, i64, i64 } %t92, ptr %a94 - store { ptr, i64, i64 } { ptr @.str.4713, i64 81, i64 0 }, ptr %a95 + store { ptr, i64, i64 } { ptr @.str.4920, i64 81, i64 0 }, ptr %a95 call void @finch_str_concat(ptr %a93, ptr %a94, ptr %a95) store { ptr, i64, i64 } %t92, ptr %a96 call void @finch_str_drop(ptr %a96) @@ -74060,90 +77993,90 @@ then7363: call void @finch.gen.fail(ptr %t85, %S.ast.Node %t86, { ptr, i64, i64 } %t97) store { ptr, i64, i64 } %t97, ptr %a98 call void @finch_str_drop(ptr %a98) - br label %endif7365 -endif7365: + br label %endif7758 +endif7758: %t99 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 13 store i64 0, ptr %a100 - br label %each.cond7366 -each.cond7366: + br label %each.cond7759 +each.cond7759: %t101 = getelementptr inbounds { ptr, i64, i64 }, ptr %t99, i32 0, i32 1 %t102 = load i64, ptr %t101 %t103 = load i64, ptr %a100 %t104 = icmp slt i64 %t103, %t102 - br i1 %t104, label %each.body7367, label %each.end7369 -each.body7367: + br i1 %t104, label %each.body7760, label %each.end7762 +each.body7760: %t105 = load ptr, ptr %t99 %t106 = getelementptr inbounds %S.ast.Type, ptr %t105, i64 %t103 %t107 = load %S.ast.Type, ptr %t106 store %S.ast.Type %t107, ptr %a108 %t109 = load %S.ast.Type, ptr %a108 %t110 = call i1 @finch.gen.isNumber(%S.ast.Type %t109) - br label %logic.from7370 -logic.from7370: - br i1 %t110, label %logic.end7372, label %logic.rhs7371 -logic.rhs7371: + br label %logic.from7763 +logic.from7763: + br i1 %t110, label %logic.end7765, label %logic.rhs7764 +logic.rhs7764: %t111 = getelementptr inbounds %S.ast.Type, ptr %a108, i32 0, i32 0 %t112 = load { ptr, i64, i64 }, ptr %t111 store { ptr, i64, i64 } %t112, ptr %a113 - store { ptr, i64, i64 } { ptr @.str.4714, i64 4, i64 0 }, ptr %a114 + store { ptr, i64, i64 } { ptr @.str.4921, i64 4, i64 0 }, ptr %a114 %t115 = call i32 @finch_str_eq(ptr %a113, ptr %a114) %t116 = icmp ne i32 %t115, 0 - br label %logic.rend7373 -logic.rend7373: - br label %logic.end7372 -logic.end7372: - %t117 = phi i1 [ true, %logic.from7370 ], [ %t116, %logic.rend7373 ] - br label %logic.from7374 -logic.from7374: - br i1 %t117, label %logic.end7376, label %logic.rhs7375 -logic.rhs7375: + br label %logic.rend7766 +logic.rend7766: + br label %logic.end7765 +logic.end7765: + %t117 = phi i1 [ true, %logic.from7763 ], [ %t116, %logic.rend7766 ] + br label %logic.from7767 +logic.from7767: + br i1 %t117, label %logic.end7769, label %logic.rhs7768 +logic.rhs7768: %t118 = getelementptr inbounds %S.ast.Type, ptr %a108, i32 0, i32 0 %t119 = load { ptr, i64, i64 }, ptr %t118 store { ptr, i64, i64 } %t119, ptr %a120 - store { ptr, i64, i64 } { ptr @.str.4715, i64 4, i64 0 }, ptr %a121 + store { ptr, i64, i64 } { ptr @.str.4922, i64 4, i64 0 }, ptr %a121 %t122 = call i32 @finch_str_eq(ptr %a120, ptr %a121) %t123 = icmp ne i32 %t122, 0 - br label %logic.rend7377 -logic.rend7377: - br label %logic.end7376 -logic.end7376: - %t124 = phi i1 [ true, %logic.from7374 ], [ %t123, %logic.rend7377 ] - br label %logic.from7378 -logic.from7378: - br i1 %t124, label %logic.end7380, label %logic.rhs7379 -logic.rhs7379: + br label %logic.rend7770 +logic.rend7770: + br label %logic.end7769 +logic.end7769: + %t124 = phi i1 [ true, %logic.from7767 ], [ %t123, %logic.rend7770 ] + br label %logic.from7771 +logic.from7771: + br i1 %t124, label %logic.end7773, label %logic.rhs7772 +logic.rhs7772: %t125 = getelementptr inbounds %S.ast.Type, ptr %a108, i32 0, i32 0 %t126 = load { ptr, i64, i64 }, ptr %t125 store { ptr, i64, i64 } %t126, ptr %a127 - store { ptr, i64, i64 } { ptr @.str.4716, i64 3, i64 0 }, ptr %a128 + store { ptr, i64, i64 } { ptr @.str.4923, i64 3, i64 0 }, ptr %a128 %t129 = call i32 @finch_str_eq(ptr %a127, ptr %a128) %t130 = icmp ne i32 %t129, 0 - br label %logic.rend7381 -logic.rend7381: - br label %logic.end7380 -logic.end7380: - %t131 = phi i1 [ true, %logic.from7378 ], [ %t130, %logic.rend7381 ] - br label %logic.from7382 -logic.from7382: - br i1 %t131, label %logic.end7384, label %logic.rhs7383 -logic.rhs7383: + br label %logic.rend7774 +logic.rend7774: + br label %logic.end7773 +logic.end7773: + %t131 = phi i1 [ true, %logic.from7771 ], [ %t130, %logic.rend7774 ] + br label %logic.from7775 +logic.from7775: + br i1 %t131, label %logic.end7777, label %logic.rhs7776 +logic.rhs7776: %t132 = getelementptr inbounds %S.ast.Type, ptr %a108, i32 0, i32 0 %t133 = load { ptr, i64, i64 }, ptr %t132 store { ptr, i64, i64 } %t133, ptr %a134 - store { ptr, i64, i64 } { ptr @.str.4717, i64 6, i64 0 }, ptr %a135 + store { ptr, i64, i64 } { ptr @.str.4924, i64 6, i64 0 }, ptr %a135 %t136 = call i32 @finch_str_eq(ptr %a134, ptr %a135) %t137 = icmp ne i32 %t136, 0 - br label %logic.from7385 -logic.from7385: - br i1 %t137, label %logic.rhs7386, label %logic.end7387 -logic.rhs7386: + br label %logic.from7778 +logic.from7778: + br i1 %t137, label %logic.rhs7779, label %logic.end7780 +logic.rhs7779: %t138 = load ptr, ptr %a1 %t139 = icmp eq ptr %t138, null - br i1 %t139, label %panic7388, label %ok7389 -panic7388: - call void @finch_panic(ptr @.str.4718, i64 4309, ptr @.str.4719) + br i1 %t139, label %panic7781, label %ok7782 +panic7781: + call void @finch_panic(ptr @.str.4925, i64 4536, ptr @.str.4926) unreachable -ok7389: +ok7782: %t140 = getelementptr inbounds %S.gen.Gen, ptr %t138, i32 0, i32 16 %t141 = load ptr, ptr %a1 %t142 = getelementptr inbounds %S.ast.Type, ptr %a108, i32 0, i32 3 @@ -74154,38 +78087,38 @@ ok7389: %t147 = load { ptr, i64, i64 }, ptr %t140 %t148 = extractvalue { ptr, i64, i64 } %t147, 1 %t149 = icmp uge i64 %t146, %t148 - br i1 %t149, label %range7390, label %inrange7391 -range7390: - call void @finch_panic_index(ptr @.str.4720, i64 4309, i64 %t146, i64 %t148) + br i1 %t149, label %range7783, label %inrange7784 +range7783: + call void @finch_panic_index(ptr @.str.4927, i64 4536, i64 %t146, i64 %t148) unreachable -inrange7391: +inrange7784: %t150 = extractvalue { ptr, i64, i64 } %t147, 0 %t151 = getelementptr inbounds %S.gen.StructDef, ptr %t150, i64 %t146 %t152 = getelementptr inbounds %S.gen.StructDef, ptr %t151, i32 0, i32 2 %t153 = load i1, ptr %t152 - br label %logic.rend7392 -logic.rend7392: - br label %logic.end7387 -logic.end7387: - %t154 = phi i1 [ false, %logic.from7385 ], [ %t153, %logic.rend7392 ] - br label %logic.rend7393 -logic.rend7393: - br label %logic.end7384 -logic.end7384: - %t155 = phi i1 [ true, %logic.from7382 ], [ %t154, %logic.rend7393 ] + br label %logic.rend7785 +logic.rend7785: + br label %logic.end7780 +logic.end7780: + %t154 = phi i1 [ false, %logic.from7778 ], [ %t153, %logic.rend7785 ] + br label %logic.rend7786 +logic.rend7786: + br label %logic.end7777 +logic.end7777: + %t155 = phi i1 [ true, %logic.from7775 ], [ %t154, %logic.rend7786 ] %t156 = xor i1 %t155, true - br i1 %t156, label %then7394, label %endif7396 -then7394: + br i1 %t156, label %then7787, label %endif7789 +then7787: %t157 = load ptr, ptr %a1 %t158 = load %S.ast.Node, ptr %a3 %t159 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 1 %t160 = load { ptr, i64, i64 }, ptr %t159 - store { ptr, i64, i64 } { ptr @.str.4721, i64 5, i64 0 }, ptr %a162 + store { ptr, i64, i64 } { ptr @.str.4928, i64 5, i64 0 }, ptr %a162 store { ptr, i64, i64 } %t160, ptr %a163 call void @finch_str_concat(ptr %a161, ptr %a162, ptr %a163) %t164 = load { ptr, i64, i64 }, ptr %a161 store { ptr, i64, i64 } %t164, ptr %a166 - store { ptr, i64, i64 } { ptr @.str.4722, i64 95, i64 0 }, ptr %a167 + store { ptr, i64, i64 } { ptr @.str.4929, i64 95, i64 0 }, ptr %a167 call void @finch_str_concat(ptr %a165, ptr %a166, ptr %a167) store { ptr, i64, i64 } %t164, ptr %a168 call void @finch_str_drop(ptr %a168) @@ -74203,104 +78136,104 @@ then7394: call void @finch.gen.fail(ptr %t157, %S.ast.Node %t158, { ptr, i64, i64 } %t177) store { ptr, i64, i64 } %t177, ptr %a178 call void @finch_str_drop(ptr %a178) - br label %endif7396 -endif7396: - br label %each.step7368 -each.step7368: + br label %endif7789 +endif7789: + br label %each.step7761 +each.step7761: %t179 = load i64, ptr %a100 %t180 = add i64 %t179, 1 store i64 %t180, ptr %a100 - br label %each.cond7366 -each.end7369: + br label %each.cond7759 +each.end7762: %t181 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 12 %t182 = load %S.ast.Type, ptr %t181 %t183 = call i1 @finch.gen.isNumber(%S.ast.Type %t182) - br label %logic.from7397 -logic.from7397: - br i1 %t183, label %logic.end7399, label %logic.rhs7398 -logic.rhs7398: + br label %logic.from7790 +logic.from7790: + br i1 %t183, label %logic.end7792, label %logic.rhs7791 +logic.rhs7791: %t184 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 12 %t185 = getelementptr inbounds %S.ast.Type, ptr %t184, i32 0, i32 0 %t186 = load { ptr, i64, i64 }, ptr %t185 store { ptr, i64, i64 } %t186, ptr %a187 - store { ptr, i64, i64 } { ptr @.str.4723, i64 4, i64 0 }, ptr %a188 + store { ptr, i64, i64 } { ptr @.str.4930, i64 4, i64 0 }, ptr %a188 %t189 = call i32 @finch_str_eq(ptr %a187, ptr %a188) %t190 = icmp ne i32 %t189, 0 - br label %logic.rend7400 -logic.rend7400: - br label %logic.end7399 -logic.end7399: - %t191 = phi i1 [ true, %logic.from7397 ], [ %t190, %logic.rend7400 ] - br label %logic.from7401 -logic.from7401: - br i1 %t191, label %logic.end7403, label %logic.rhs7402 -logic.rhs7402: + br label %logic.rend7793 +logic.rend7793: + br label %logic.end7792 +logic.end7792: + %t191 = phi i1 [ true, %logic.from7790 ], [ %t190, %logic.rend7793 ] + br label %logic.from7794 +logic.from7794: + br i1 %t191, label %logic.end7796, label %logic.rhs7795 +logic.rhs7795: %t192 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 12 %t193 = getelementptr inbounds %S.ast.Type, ptr %t192, i32 0, i32 0 %t194 = load { ptr, i64, i64 }, ptr %t193 store { ptr, i64, i64 } %t194, ptr %a195 - store { ptr, i64, i64 } { ptr @.str.4724, i64 4, i64 0 }, ptr %a196 + store { ptr, i64, i64 } { ptr @.str.4931, i64 4, i64 0 }, ptr %a196 %t197 = call i32 @finch_str_eq(ptr %a195, ptr %a196) %t198 = icmp ne i32 %t197, 0 - br label %logic.rend7404 -logic.rend7404: - br label %logic.end7403 -logic.end7403: - %t199 = phi i1 [ true, %logic.from7401 ], [ %t198, %logic.rend7404 ] - br label %logic.from7405 -logic.from7405: - br i1 %t199, label %logic.end7407, label %logic.rhs7406 -logic.rhs7406: + br label %logic.rend7797 +logic.rend7797: + br label %logic.end7796 +logic.end7796: + %t199 = phi i1 [ true, %logic.from7794 ], [ %t198, %logic.rend7797 ] + br label %logic.from7798 +logic.from7798: + br i1 %t199, label %logic.end7800, label %logic.rhs7799 +logic.rhs7799: %t200 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 12 %t201 = getelementptr inbounds %S.ast.Type, ptr %t200, i32 0, i32 0 %t202 = load { ptr, i64, i64 }, ptr %t201 store { ptr, i64, i64 } %t202, ptr %a203 - store { ptr, i64, i64 } { ptr @.str.4725, i64 3, i64 0 }, ptr %a204 + store { ptr, i64, i64 } { ptr @.str.4932, i64 3, i64 0 }, ptr %a204 %t205 = call i32 @finch_str_eq(ptr %a203, ptr %a204) %t206 = icmp ne i32 %t205, 0 - br label %logic.rend7408 -logic.rend7408: - br label %logic.end7407 -logic.end7407: - %t207 = phi i1 [ true, %logic.from7405 ], [ %t206, %logic.rend7408 ] - br label %logic.from7409 -logic.from7409: - br i1 %t207, label %logic.end7411, label %logic.rhs7410 -logic.rhs7410: + br label %logic.rend7801 +logic.rend7801: + br label %logic.end7800 +logic.end7800: + %t207 = phi i1 [ true, %logic.from7798 ], [ %t206, %logic.rend7801 ] + br label %logic.from7802 +logic.from7802: + br i1 %t207, label %logic.end7804, label %logic.rhs7803 +logic.rhs7803: %t208 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 12 %t209 = getelementptr inbounds %S.ast.Type, ptr %t208, i32 0, i32 0 %t210 = load { ptr, i64, i64 }, ptr %t209 store { ptr, i64, i64 } %t210, ptr %a211 - store { ptr, i64, i64 } { ptr @.str.4726, i64 4, i64 0 }, ptr %a212 + store { ptr, i64, i64 } { ptr @.str.4933, i64 4, i64 0 }, ptr %a212 %t213 = call i32 @finch_str_eq(ptr %a211, ptr %a212) %t214 = icmp ne i32 %t213, 0 - br label %logic.rend7412 -logic.rend7412: - br label %logic.end7411 -logic.end7411: - %t215 = phi i1 [ true, %logic.from7409 ], [ %t214, %logic.rend7412 ] - br label %logic.from7413 -logic.from7413: - br i1 %t215, label %logic.end7415, label %logic.rhs7414 -logic.rhs7414: + br label %logic.rend7805 +logic.rend7805: + br label %logic.end7804 +logic.end7804: + %t215 = phi i1 [ true, %logic.from7802 ], [ %t214, %logic.rend7805 ] + br label %logic.from7806 +logic.from7806: + br i1 %t215, label %logic.end7808, label %logic.rhs7807 +logic.rhs7807: %t216 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 12 %t217 = getelementptr inbounds %S.ast.Type, ptr %t216, i32 0, i32 0 %t218 = load { ptr, i64, i64 }, ptr %t217 store { ptr, i64, i64 } %t218, ptr %a219 - store { ptr, i64, i64 } { ptr @.str.4727, i64 6, i64 0 }, ptr %a220 + store { ptr, i64, i64 } { ptr @.str.4934, i64 6, i64 0 }, ptr %a220 %t221 = call i32 @finch_str_eq(ptr %a219, ptr %a220) %t222 = icmp ne i32 %t221, 0 - br label %logic.from7416 -logic.from7416: - br i1 %t222, label %logic.rhs7417, label %logic.end7418 -logic.rhs7417: + br label %logic.from7809 +logic.from7809: + br i1 %t222, label %logic.rhs7810, label %logic.end7811 +logic.rhs7810: %t223 = load ptr, ptr %a1 %t224 = icmp eq ptr %t223, null - br i1 %t224, label %panic7419, label %ok7420 -panic7419: - call void @finch_panic(ptr @.str.4728, i64 4313, ptr @.str.4729) + br i1 %t224, label %panic7812, label %ok7813 +panic7812: + call void @finch_panic(ptr @.str.4935, i64 4540, ptr @.str.4936) unreachable -ok7420: +ok7813: %t225 = getelementptr inbounds %S.gen.Gen, ptr %t223, i32 0, i32 16 %t226 = load ptr, ptr %a1 %t227 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 12 @@ -74313,38 +78246,38 @@ ok7420: %t234 = load { ptr, i64, i64 }, ptr %t225 %t235 = extractvalue { ptr, i64, i64 } %t234, 1 %t236 = icmp uge i64 %t233, %t235 - br i1 %t236, label %range7421, label %inrange7422 -range7421: - call void @finch_panic_index(ptr @.str.4730, i64 4313, i64 %t233, i64 %t235) + br i1 %t236, label %range7814, label %inrange7815 +range7814: + call void @finch_panic_index(ptr @.str.4937, i64 4540, i64 %t233, i64 %t235) unreachable -inrange7422: +inrange7815: %t237 = extractvalue { ptr, i64, i64 } %t234, 0 %t238 = getelementptr inbounds %S.gen.StructDef, ptr %t237, i64 %t233 %t239 = getelementptr inbounds %S.gen.StructDef, ptr %t238, i32 0, i32 2 %t240 = load i1, ptr %t239 - br label %logic.rend7423 -logic.rend7423: - br label %logic.end7418 -logic.end7418: - %t241 = phi i1 [ false, %logic.from7416 ], [ %t240, %logic.rend7423 ] - br label %logic.rend7424 -logic.rend7424: - br label %logic.end7415 -logic.end7415: - %t242 = phi i1 [ true, %logic.from7413 ], [ %t241, %logic.rend7424 ] + br label %logic.rend7816 +logic.rend7816: + br label %logic.end7811 +logic.end7811: + %t241 = phi i1 [ false, %logic.from7809 ], [ %t240, %logic.rend7816 ] + br label %logic.rend7817 +logic.rend7817: + br label %logic.end7808 +logic.end7808: + %t242 = phi i1 [ true, %logic.from7806 ], [ %t241, %logic.rend7817 ] %t243 = xor i1 %t242, true - br i1 %t243, label %then7425, label %endif7427 -then7425: + br i1 %t243, label %then7818, label %endif7820 +then7818: %t244 = load ptr, ptr %a1 %t245 = load %S.ast.Node, ptr %a3 %t246 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 1 %t247 = load { ptr, i64, i64 }, ptr %t246 - store { ptr, i64, i64 } { ptr @.str.4731, i64 5, i64 0 }, ptr %a249 + store { ptr, i64, i64 } { ptr @.str.4938, i64 5, i64 0 }, ptr %a249 store { ptr, i64, i64 } %t247, ptr %a250 call void @finch_str_concat(ptr %a248, ptr %a249, ptr %a250) %t251 = load { ptr, i64, i64 }, ptr %a248 store { ptr, i64, i64 } %t251, ptr %a253 - store { ptr, i64, i64 } { ptr @.str.4732, i64 38, i64 0 }, ptr %a254 + store { ptr, i64, i64 } { ptr @.str.4939, i64 38, i64 0 }, ptr %a254 call void @finch_str_concat(ptr %a252, ptr %a253, ptr %a254) store { ptr, i64, i64 } %t251, ptr %a255 call void @finch_str_drop(ptr %a255) @@ -74363,8 +78296,8 @@ then7425: call void @finch.gen.fail(ptr %t244, %S.ast.Node %t245, { ptr, i64, i64 } %t265) store { ptr, i64, i64 } %t265, ptr %a266 call void @finch_str_drop(ptr %a266) - br label %endif7427 -endif7427: + br label %endif7820 +endif7820: %t267 = load ptr, ptr %a1 %t268 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 12 %t269 = load %S.ast.Type, ptr %t268 @@ -74377,24 +78310,24 @@ endif7427: store %S.gen.Saved %t275, ptr %a276 store { ptr, i64, i64 } zeroinitializer, ptr %a277 store i64 0, ptr %a278 - store { ptr, i64, i64 } { ptr @.str.4733, i64 0, i64 0 }, ptr %a279 + store { ptr, i64, i64 } { ptr @.str.4940, i64 0, i64 0 }, ptr %a279 %t280 = getelementptr inbounds %S.gen.Plan, ptr %a273, i32 0, i32 3 %t281 = load i1, ptr %t280 - br i1 %t281, label %then7428, label %endif7430 -then7428: + br i1 %t281, label %then7821, label %endif7823 +then7821: %t282 = getelementptr inbounds { ptr, i64, i64 }, ptr %a277, i32 0, i32 1 %t283 = load ptr, ptr %a1 %t284 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 12 %t285 = load %S.ast.Type, ptr %t284 %t286 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t283, %S.ast.Type %t285) - store { ptr, i64, i64 } { ptr @.str.4734, i64 9, i64 0 }, ptr %a288 + store { ptr, i64, i64 } { ptr @.str.4941, i64 9, i64 0 }, ptr %a288 store { ptr, i64, i64 } %t286, ptr %a289 call void @finch_str_concat(ptr %a287, ptr %a288, ptr %a289) store { ptr, i64, i64 } %t286, ptr %a290 call void @finch_str_drop(ptr %a290) %t291 = load { ptr, i64, i64 }, ptr %a287 store { ptr, i64, i64 } %t291, ptr %a293 - store { ptr, i64, i64 } { ptr @.str.4735, i64 14, i64 0 }, ptr %a294 + store { ptr, i64, i64 } { ptr @.str.4942, i64 14, i64 0 }, ptr %a294 call void @finch_str_concat(ptr %a292, ptr %a293, ptr %a294) store { ptr, i64, i64 } %t291, ptr %a295 call void @finch_str_drop(ptr %a295) @@ -74407,33 +78340,33 @@ then7428: store { ptr, i64, i64 } %t296, ptr %t300 store i64 %t298, ptr %t282 %t301 = load { ptr, i64, i64 }, ptr %a279 - store { ptr, i64, i64 } { ptr @.str.4736, i64 3, i64 0 }, ptr %a279 + store { ptr, i64, i64 } { ptr @.str.4943, i64 3, i64 0 }, ptr %a279 store { ptr, i64, i64 } %t301, ptr %a302 call void @finch_str_drop(ptr %a302) store i64 1, ptr %a278 - br label %endif7430 -endif7430: + br label %endif7823 +endif7823: store { ptr, i64, i64 } zeroinitializer, ptr %a303 %t304 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 13 %t305 = getelementptr inbounds { ptr, i64, i64 }, ptr %t304, i32 0, i32 1 %t306 = load i64, ptr %t305 store i64 0, ptr %a307 - br label %for.cond7431 -for.cond7431: + br label %for.cond7824 +for.cond7824: %t308 = load i64, ptr %a307 %t309 = icmp slt i64 %t308, %t306 - br i1 %t309, label %for.body7432, label %for.end7434 -for.body7432: + br i1 %t309, label %for.body7825, label %for.end7827 +for.body7825: %t310 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 13 %t311 = load i64, ptr %a307 %t312 = load { ptr, i64, i64 }, ptr %t310 %t313 = extractvalue { ptr, i64, i64 } %t312, 1 %t314 = icmp uge i64 %t311, %t313 - br i1 %t314, label %range7435, label %inrange7436 -range7435: - call void @finch_panic_index(ptr @.str.4737, i64 4328, i64 %t311, i64 %t313) + br i1 %t314, label %range7828, label %inrange7829 +range7828: + call void @finch_panic_index(ptr @.str.4944, i64 4555, i64 %t311, i64 %t313) unreachable -inrange7436: +inrange7829: %t315 = extractvalue { ptr, i64, i64 } %t312, 0 %t316 = getelementptr inbounds %S.ast.Type, ptr %t315, i64 %t311 %t317 = load %S.ast.Type, ptr %t316 @@ -74446,11 +78379,11 @@ inrange7436: %t324 = load { ptr, i64, i64 }, ptr %t322 %t325 = extractvalue { ptr, i64, i64 } %t324, 1 %t326 = icmp uge i64 %t323, %t325 - br i1 %t326, label %range7437, label %inrange7438 -range7437: - call void @finch_panic_index(ptr @.str.4738, i64 4329, i64 %t323, i64 %t325) + br i1 %t326, label %range7830, label %inrange7831 +range7830: + call void @finch_panic_index(ptr @.str.4945, i64 4556, i64 %t323, i64 %t325) unreachable -inrange7438: +inrange7831: %t327 = extractvalue { ptr, i64, i64 } %t324, 0 %t328 = getelementptr inbounds %S.gen.Abi, ptr %t327, i64 %t323 %t329 = load %S.gen.Abi, ptr %t328 @@ -74461,23 +78394,23 @@ inrange7438: %t334 = getelementptr inbounds %S.gen.Abi, ptr %a333, i32 0, i32 0 %t335 = load { ptr, i64, i64 }, ptr %t334 store { ptr, i64, i64 } %t335, ptr %a336 - store { ptr, i64, i64 } { ptr @.str.4739, i64 6, i64 0 }, ptr %a337 + store { ptr, i64, i64 } { ptr @.str.4946, i64 6, i64 0 }, ptr %a337 %t338 = call i32 @finch_str_eq(ptr %a336, ptr %a337) %t339 = icmp ne i32 %t338, 0 - br i1 %t339, label %then7439, label %else7440 -then7439: + br i1 %t339, label %then7832, label %else7833 +then7832: %t340 = getelementptr inbounds { ptr, i64, i64 }, ptr %a277, i32 0, i32 1 %t341 = load ptr, ptr %a1 %t342 = load %S.ast.Type, ptr %a321 %t343 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t341, %S.ast.Type %t342) - store { ptr, i64, i64 } { ptr @.str.4740, i64 10, i64 0 }, ptr %a345 + store { ptr, i64, i64 } { ptr @.str.4947, i64 10, i64 0 }, ptr %a345 store { ptr, i64, i64 } %t343, ptr %a346 call void @finch_str_concat(ptr %a344, ptr %a345, ptr %a346) store { ptr, i64, i64 } %t343, ptr %a347 call void @finch_str_drop(ptr %a347) %t348 = load { ptr, i64, i64 }, ptr %a344 store { ptr, i64, i64 } %t348, ptr %a350 - store { ptr, i64, i64 } { ptr @.str.4741, i64 8, i64 0 }, ptr %a351 + store { ptr, i64, i64 } { ptr @.str.4948, i64 8, i64 0 }, ptr %a351 call void @finch_str_concat(ptr %a349, ptr %a350, ptr %a351) store { ptr, i64, i64 } %t348, ptr %a352 call void @finch_str_drop(ptr %a352) @@ -74495,7 +78428,7 @@ then7439: call void @finch_str_drop(ptr %a362) %t363 = load { ptr, i64, i64 }, ptr %a358 store { ptr, i64, i64 } %t363, ptr %a365 - store { ptr, i64, i64 } { ptr @.str.4742, i64 3, i64 0 }, ptr %a366 + store { ptr, i64, i64 } { ptr @.str.4949, i64 3, i64 0 }, ptr %a366 call void @finch_str_concat(ptr %a364, ptr %a365, ptr %a366) store { ptr, i64, i64 } %t363, ptr %a367 call void @finch_str_drop(ptr %a367) @@ -74523,7 +78456,7 @@ then7439: %t384 = load %S.ast.Type, ptr %a321 %t385 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t383, %S.ast.Type %t384) store { ptr, i64, i64 } %t385, ptr %a387 - store { ptr, i64, i64 } { ptr @.str.4743, i64 1, i64 0 }, ptr %a388 + store { ptr, i64, i64 } { ptr @.str.4950, i64 1, i64 0 }, ptr %a388 call void @finch_str_concat(ptr %a386, ptr %a387, ptr %a388) store { ptr, i64, i64 } %t385, ptr %a389 call void @finch_str_drop(ptr %a389) @@ -74535,7 +78468,7 @@ then7439: %t395 = load i64, ptr %a278 call void @finch_str_from_int(ptr %a396, i64 %t395) %t397 = load { ptr, i64, i64 }, ptr %a396 - store { ptr, i64, i64 } { ptr @.str.4744, i64 2, i64 0 }, ptr %a399 + store { ptr, i64, i64 } { ptr @.str.4951, i64 2, i64 0 }, ptr %a399 store { ptr, i64, i64 } %t397, ptr %a400 call void @finch_str_concat(ptr %a398, ptr %a399, ptr %a400) store { ptr, i64, i64 } %t397, ptr %a401 @@ -74564,21 +78497,21 @@ then7439: %t416 = load i64, ptr %a278 %t417 = add i64 %t416, 1 store i64 %t417, ptr %a278 - br label %endif7441 -else7440: + br label %endif7834 +else7833: %t418 = getelementptr inbounds %S.gen.Abi, ptr %a333, i32 0, i32 0 %t419 = load { ptr, i64, i64 }, ptr %t418 store { ptr, i64, i64 } %t419, ptr %a420 - store { ptr, i64, i64 } { ptr @.str.4745, i64 8, i64 0 }, ptr %a421 + store { ptr, i64, i64 } { ptr @.str.4952, i64 8, i64 0 }, ptr %a421 %t422 = call i32 @finch_str_eq(ptr %a420, ptr %a421) %t423 = icmp ne i32 %t422, 0 - br i1 %t423, label %then7442, label %else7443 -then7442: + br i1 %t423, label %then7835, label %else7836 +then7835: %t424 = getelementptr inbounds { ptr, i64, i64 }, ptr %a277, i32 0, i32 1 %t425 = load i64, ptr %a278 call void @finch_str_from_int(ptr %a426, i64 %t425) %t427 = load { ptr, i64, i64 }, ptr %a426 - store { ptr, i64, i64 } { ptr @.str.4746, i64 6, i64 0 }, ptr %a429 + store { ptr, i64, i64 } { ptr @.str.4953, i64 6, i64 0 }, ptr %a429 store { ptr, i64, i64 } %t427, ptr %a430 call void @finch_str_concat(ptr %a428, ptr %a429, ptr %a430) store { ptr, i64, i64 } %t427, ptr %a431 @@ -74596,7 +78529,7 @@ then7442: %t439 = load %S.ast.Type, ptr %a321 %t440 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t438, %S.ast.Type %t439) store { ptr, i64, i64 } %t440, ptr %a442 - store { ptr, i64, i64 } { ptr @.str.4747, i64 1, i64 0 }, ptr %a443 + store { ptr, i64, i64 } { ptr @.str.4954, i64 1, i64 0 }, ptr %a443 call void @finch_str_concat(ptr %a441, ptr %a442, ptr %a443) store { ptr, i64, i64 } %t440, ptr %a444 call void @finch_str_drop(ptr %a444) @@ -74608,7 +78541,7 @@ then7442: %t450 = load i64, ptr %a278 call void @finch_str_from_int(ptr %a451, i64 %t450) %t452 = load { ptr, i64, i64 }, ptr %a451 - store { ptr, i64, i64 } { ptr @.str.4748, i64 2, i64 0 }, ptr %a454 + store { ptr, i64, i64 } { ptr @.str.4955, i64 2, i64 0 }, ptr %a454 store { ptr, i64, i64 } %t452, ptr %a455 call void @finch_str_concat(ptr %a453, ptr %a454, ptr %a455) store { ptr, i64, i64 } %t452, ptr %a456 @@ -74637,45 +78570,45 @@ then7442: %t471 = load i64, ptr %a278 %t472 = add i64 %t471, 1 store i64 %t472, ptr %a278 - br label %endif7444 -else7443: + br label %endif7837 +else7836: %t473 = getelementptr inbounds %S.gen.Abi, ptr %a333, i32 0, i32 0 %t474 = load { ptr, i64, i64 }, ptr %t473 store { ptr, i64, i64 } %t474, ptr %a475 - store { ptr, i64, i64 } { ptr @.str.4749, i64 6, i64 0 }, ptr %a476 + store { ptr, i64, i64 } { ptr @.str.4956, i64 6, i64 0 }, ptr %a476 %t477 = call i32 @finch_str_eq(ptr %a475, ptr %a476) %t478 = icmp ne i32 %t477, 0 - br i1 %t478, label %then7445, label %else7446 -then7445: + br i1 %t478, label %then7838, label %else7839 +then7838: %t479 = load ptr, ptr %a1 - %t480 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t479, { ptr, i64, i64 } { ptr @.str.4750, i64 9, i64 0 }) + %t480 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t479, { ptr, i64, i64 } { ptr @.str.4957, i64 9, i64 0 }) store { ptr, i64, i64 } %t480, ptr %a481 %t482 = getelementptr inbounds %S.gen.Abi, ptr %a333, i32 0, i32 1 %t483 = getelementptr inbounds { ptr, i64, i64 }, ptr %t482, i32 0, i32 1 %t484 = load i64, ptr %t483 store i64 0, ptr %a485 - br label %for.cond7448 -for.cond7448: + br label %for.cond7841 +for.cond7841: %t486 = load i64, ptr %a485 %t487 = icmp slt i64 %t486, %t484 - br i1 %t487, label %for.body7449, label %for.end7451 -for.body7449: + br i1 %t487, label %for.body7842, label %for.end7844 +for.body7842: %t488 = getelementptr inbounds { ptr, i64, i64 }, ptr %a277, i32 0, i32 1 %t489 = getelementptr inbounds %S.gen.Abi, ptr %a333, i32 0, i32 1 %t490 = load i64, ptr %a485 %t491 = load { ptr, i64, i64 }, ptr %t489 %t492 = extractvalue { ptr, i64, i64 } %t491, 1 %t493 = icmp uge i64 %t490, %t492 - br i1 %t493, label %range7452, label %inrange7453 -range7452: - call void @finch_panic_index(ptr @.str.4751, i64 4341, i64 %t490, i64 %t492) + br i1 %t493, label %range7845, label %inrange7846 +range7845: + call void @finch_panic_index(ptr @.str.4958, i64 4568, i64 %t490, i64 %t492) unreachable -inrange7453: +inrange7846: %t494 = extractvalue { ptr, i64, i64 } %t491, 0 %t495 = getelementptr inbounds { ptr, i64, i64 }, ptr %t494, i64 %t490 %t496 = load { ptr, i64, i64 }, ptr %t495 store { ptr, i64, i64 } %t496, ptr %a498 - store { ptr, i64, i64 } { ptr @.str.4752, i64 3, i64 0 }, ptr %a499 + store { ptr, i64, i64 } { ptr @.str.4959, i64 3, i64 0 }, ptr %a499 call void @finch_str_concat(ptr %a497, ptr %a498, ptr %a499) %t500 = load { ptr, i64, i64 }, ptr %a497 %t501 = load i64, ptr %a278 @@ -74702,18 +78635,18 @@ inrange7453: %t517 = load { ptr, i64, i64 }, ptr %t515 %t518 = extractvalue { ptr, i64, i64 } %t517, 1 %t519 = icmp uge i64 %t516, %t518 - br i1 %t519, label %range7454, label %inrange7455 -range7454: - call void @finch_panic_index(ptr @.str.4753, i64 4342, i64 %t516, i64 %t518) + br i1 %t519, label %range7847, label %inrange7848 +range7847: + call void @finch_panic_index(ptr @.str.4960, i64 4569, i64 %t516, i64 %t518) unreachable -inrange7455: +inrange7848: %t520 = extractvalue { ptr, i64, i64 } %t517, 0 %t521 = getelementptr inbounds { ptr, i64, i64 }, ptr %t520, i64 %t516 %t522 = load { ptr, i64, i64 }, ptr %t521 %t523 = load i64, ptr %a278 call void @finch_str_from_int(ptr %a524, i64 %t523) %t525 = load { ptr, i64, i64 }, ptr %a524 - store { ptr, i64, i64 } { ptr @.str.4754, i64 2, i64 0 }, ptr %a527 + store { ptr, i64, i64 } { ptr @.str.4961, i64 2, i64 0 }, ptr %a527 store { ptr, i64, i64 } %t525, ptr %a528 call void @finch_str_concat(ptr %a526, ptr %a527, ptr %a528) store { ptr, i64, i64 } %t525, ptr %a529 @@ -74721,12 +78654,12 @@ inrange7455: %t530 = load { ptr, i64, i64 }, ptr %a526 %t531 = load ptr, ptr %a1 %t532 = load { ptr, i64, i64 }, ptr %a481 - store { ptr, i64, i64 } { ptr @.str.4755, i64 31, i64 0 }, ptr %a534 + store { ptr, i64, i64 } { ptr @.str.4962, i64 31, i64 0 }, ptr %a534 store { ptr, i64, i64 } %t532, ptr %a535 call void @finch_str_concat(ptr %a533, ptr %a534, ptr %a535) %t536 = load { ptr, i64, i64 }, ptr %a533 store { ptr, i64, i64 } %t536, ptr %a538 - store { ptr, i64, i64 } { ptr @.str.4756, i64 6, i64 0 }, ptr %a539 + store { ptr, i64, i64 } { ptr @.str.4963, i64 6, i64 0 }, ptr %a539 call void @finch_str_concat(ptr %a537, ptr %a538, ptr %a539) store { ptr, i64, i64 } %t536, ptr %a540 call void @finch_str_drop(ptr %a540) @@ -74754,19 +78687,19 @@ inrange7455: %t556 = load i64, ptr %a278 %t557 = add i64 %t556, 1 store i64 %t557, ptr %a278 - br label %for.step7450 -for.step7450: + br label %for.step7843 +for.step7843: %t558 = load i64, ptr %a485 %t559 = add i64 %t558, 1 store i64 %t559, ptr %a485 - br label %for.cond7448 -for.end7451: + br label %for.cond7841 +for.end7844: %t560 = getelementptr inbounds { ptr, i64, i64 }, ptr %a303, i32 0, i32 1 %t561 = load ptr, ptr %a1 %t562 = load %S.ast.Type, ptr %a321 %t563 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t561, %S.ast.Type %t562) store { ptr, i64, i64 } %t563, ptr %a565 - store { ptr, i64, i64 } { ptr @.str.4757, i64 1, i64 0 }, ptr %a566 + store { ptr, i64, i64 } { ptr @.str.4964, i64 1, i64 0 }, ptr %a566 call void @finch_str_concat(ptr %a564, ptr %a565, ptr %a566) store { ptr, i64, i64 } %t563, ptr %a567 call void @finch_str_drop(ptr %a567) @@ -74795,8 +78728,8 @@ for.end7451: store { ptr, i64, i64 } %t581, ptr %t585 store i64 %t583, ptr %t560 call void @finch_str_drop(ptr %a481) - br label %endif7447 -else7446: + br label %endif7840 +else7839: %t586 = getelementptr inbounds { ptr, i64, i64 }, ptr %a277, i32 0, i32 1 %t587 = load ptr, ptr %a1 %t588 = load %S.ast.Type, ptr %a321 @@ -74813,7 +78746,7 @@ else7446: call void @finch_str_drop(ptr %a597) %t598 = load { ptr, i64, i64 }, ptr %a593 store { ptr, i64, i64 } %t598, ptr %a600 - store { ptr, i64, i64 } { ptr @.str.4758, i64 3, i64 0 }, ptr %a601 + store { ptr, i64, i64 } { ptr @.str.4965, i64 3, i64 0 }, ptr %a601 call void @finch_str_concat(ptr %a599, ptr %a600, ptr %a601) store { ptr, i64, i64 } %t598, ptr %a602 call void @finch_str_drop(ptr %a602) @@ -74841,7 +78774,7 @@ else7446: %t619 = load %S.ast.Type, ptr %a321 %t620 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t618, %S.ast.Type %t619) store { ptr, i64, i64 } %t620, ptr %a622 - store { ptr, i64, i64 } { ptr @.str.4759, i64 3, i64 0 }, ptr %a623 + store { ptr, i64, i64 } { ptr @.str.4966, i64 3, i64 0 }, ptr %a623 call void @finch_str_concat(ptr %a621, ptr %a622, ptr %a623) store { ptr, i64, i64 } %t620, ptr %a624 call void @finch_str_drop(ptr %a624) @@ -74867,33 +78800,33 @@ else7446: %t639 = load i64, ptr %a278 %t640 = add i64 %t639, 1 store i64 %t640, ptr %a278 - br label %endif7447 -endif7447: - br label %endif7444 -endif7444: - br label %endif7441 -endif7441: + br label %endif7840 +endif7840: + br label %endif7837 +endif7837: + br label %endif7834 +endif7834: call void @finch.drop.S_gen_Abi(ptr %a333) call void @finch.drop.S_ast_Type(ptr %a321) - br label %for.step7433 -for.step7433: + br label %for.step7826 +for.step7826: %t641 = load i64, ptr %a307 %t642 = add i64 %t641, 1 store i64 %t642, ptr %a307 - br label %for.cond7431 -for.end7434: + br label %for.cond7824 +for.end7827: %t643 = load ptr, ptr %a1 %t644 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 12 %t645 = load %S.ast.Type, ptr %t644 %t646 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t643, %S.ast.Type %t645) - store { ptr, i64, i64 } { ptr @.str.4760, i64 5, i64 0 }, ptr %a648 + store { ptr, i64, i64 } { ptr @.str.4967, i64 5, i64 0 }, ptr %a648 store { ptr, i64, i64 } %t646, ptr %a649 call void @finch_str_concat(ptr %a647, ptr %a648, ptr %a649) store { ptr, i64, i64 } %t646, ptr %a650 call void @finch_str_drop(ptr %a650) %t651 = load { ptr, i64, i64 }, ptr %a647 store { ptr, i64, i64 } %t651, ptr %a653 - store { ptr, i64, i64 } { ptr @.str.4761, i64 1, i64 0 }, ptr %a654 + store { ptr, i64, i64 } { ptr @.str.4968, i64 1, i64 0 }, ptr %a654 call void @finch_str_concat(ptr %a652, ptr %a653, ptr %a654) store { ptr, i64, i64 } %t651, ptr %a655 call void @finch_str_drop(ptr %a655) @@ -74907,13 +78840,13 @@ for.end7434: call void @finch_str_drop(ptr %a662) %t663 = load { ptr, i64, i64 }, ptr %a659 store { ptr, i64, i64 } %t663, ptr %a665 - store { ptr, i64, i64 } { ptr @.str.4762, i64 1, i64 0 }, ptr %a666 + store { ptr, i64, i64 } { ptr @.str.4969, i64 1, i64 0 }, ptr %a666 call void @finch_str_concat(ptr %a664, ptr %a665, ptr %a666) store { ptr, i64, i64 } %t663, ptr %a667 call void @finch_str_drop(ptr %a667) %t668 = load { ptr, i64, i64 }, ptr %a664 %t669 = getelementptr inbounds { ptr, i64, i64 }, ptr %a303, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.4763, i64 2, i64 0 }, ptr %a670 + store { ptr, i64, i64 } { ptr @.str.4970, i64 2, i64 0 }, ptr %a670 call void @finch_str_join(ptr %a671, ptr %a303, ptr %a670) %t672 = load { ptr, i64, i64 }, ptr %a671 store { ptr, i64, i64 } %t668, ptr %a674 @@ -74925,33 +78858,33 @@ for.end7434: call void @finch_str_drop(ptr %a677) %t678 = load { ptr, i64, i64 }, ptr %a673 store { ptr, i64, i64 } %t678, ptr %a680 - store { ptr, i64, i64 } { ptr @.str.4764, i64 1, i64 0 }, ptr %a681 + store { ptr, i64, i64 } { ptr @.str.4971, i64 1, i64 0 }, ptr %a681 call void @finch_str_concat(ptr %a679, ptr %a680, ptr %a681) store { ptr, i64, i64 } %t678, ptr %a682 call void @finch_str_drop(ptr %a682) %t683 = load { ptr, i64, i64 }, ptr %a679 store { ptr, i64, i64 } %t683, ptr %a684 - store { ptr, i64, i64 } { ptr @.str.4765, i64 0, i64 0 }, ptr %a685 + store { ptr, i64, i64 } { ptr @.str.4972, i64 0, i64 0 }, ptr %a685 %t686 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 12 %t687 = getelementptr inbounds %S.ast.Type, ptr %t686, i32 0, i32 0 %t688 = load { ptr, i64, i64 }, ptr %t687 store { ptr, i64, i64 } %t688, ptr %a689 - store { ptr, i64, i64 } { ptr @.str.4766, i64 4, i64 0 }, ptr %a690 + store { ptr, i64, i64 } { ptr @.str.4973, i64 4, i64 0 }, ptr %a690 %t691 = call i32 @finch_str_eq(ptr %a689, ptr %a690) %t692 = icmp ne i32 %t691, 0 - br i1 %t692, label %then7456, label %else7457 -then7456: + br i1 %t692, label %then7849, label %else7850 +then7849: %t693 = load ptr, ptr %a1 %t694 = load { ptr, i64, i64 }, ptr %a684 call void @finch.gen.emit(ptr %t693, { ptr, i64, i64 } %t694) %t695 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t695, { ptr, i64, i64 } { ptr @.str.4767, i64 8, i64 0 }) - br label %endif7458 -else7457: + call void @finch.gen.emit(ptr %t695, { ptr, i64, i64 } { ptr @.str.4974, i64 8, i64 0 }) + br label %endif7851 +else7850: %t696 = getelementptr inbounds %S.gen.Plan, ptr %a273, i32 0, i32 3 %t697 = load i1, ptr %t696 - br i1 %t697, label %then7459, label %else7460 -then7459: + br i1 %t697, label %then7852, label %else7853 +then7852: %t698 = load ptr, ptr %a1 %t699 = load ptr, ptr %a1 %t700 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 12 @@ -74967,20 +78900,20 @@ then7459: store { ptr, i64, i64 } %t705, ptr %a708 call void @finch_str_drop(ptr %a708) %t709 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t709, { ptr, i64, i64 } { ptr @.str.4768, i64 8, i64 0 }) - br label %endif7461 -else7460: + call void @finch.gen.emit(ptr %t709, { ptr, i64, i64 } { ptr @.str.4975, i64 8, i64 0 }) + br label %endif7854 +else7853: %t710 = getelementptr inbounds %S.gen.Plan, ptr %a273, i32 0, i32 0 %t711 = getelementptr inbounds %S.gen.Abi, ptr %t710, i32 0, i32 0 %t712 = load { ptr, i64, i64 }, ptr %t711 store { ptr, i64, i64 } %t712, ptr %a713 - store { ptr, i64, i64 } { ptr @.str.4769, i64 6, i64 0 }, ptr %a714 + store { ptr, i64, i64 } { ptr @.str.4976, i64 6, i64 0 }, ptr %a714 %t715 = call i32 @finch_str_eq(ptr %a713, ptr %a714) %t716 = icmp ne i32 %t715, 0 - br i1 %t716, label %then7462, label %else7463 -then7462: + br i1 %t716, label %then7855, label %else7856 +then7855: %t717 = load ptr, ptr %a1 - %t718 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t717, { ptr, i64, i64 } { ptr @.str.4770, i64 9, i64 0 }) + %t718 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t717, { ptr, i64, i64 } { ptr @.str.4977, i64 9, i64 0 }) store { ptr, i64, i64 } %t718, ptr %a719 %t720 = load ptr, ptr %a1 %t721 = load ptr, ptr %a1 @@ -75000,12 +78933,12 @@ then7462: %t732 = getelementptr inbounds %S.gen.Plan, ptr %a273, i32 0, i32 0 %t733 = getelementptr inbounds %S.gen.Abi, ptr %t732, i32 0, i32 2 %t734 = load { ptr, i64, i64 }, ptr %t733 - store { ptr, i64, i64 } { ptr @.str.4771, i64 4, i64 0 }, ptr %a736 + store { ptr, i64, i64 } { ptr @.str.4978, i64 4, i64 0 }, ptr %a736 store { ptr, i64, i64 } %t734, ptr %a737 call void @finch_str_concat(ptr %a735, ptr %a736, ptr %a737) %t738 = load { ptr, i64, i64 }, ptr %a735 store { ptr, i64, i64 } %t738, ptr %a740 - store { ptr, i64, i64 } { ptr @.str.4772, i64 1, i64 0 }, ptr %a741 + store { ptr, i64, i64 } { ptr @.str.4979, i64 1, i64 0 }, ptr %a741 call void @finch_str_concat(ptr %a739, ptr %a740, ptr %a741) store { ptr, i64, i64 } %t738, ptr %a742 call void @finch_str_drop(ptr %a742) @@ -75028,8 +78961,8 @@ then7462: store { ptr, i64, i64 } %t755, ptr %a756 call void @finch_str_drop(ptr %a756) call void @finch_str_drop(ptr %a719) - br label %endif7464 -else7463: + br label %endif7857 +else7856: %t757 = load ptr, ptr %a1 %t758 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 12 %t759 = load %S.ast.Type, ptr %t758 @@ -75043,14 +78976,14 @@ else7463: %t765 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 12 %t766 = load %S.ast.Type, ptr %t765 %t767 = call { ptr, i64, i64 } @finch.gen.cLL(ptr %t764, %S.ast.Type %t766) - store { ptr, i64, i64 } { ptr @.str.4773, i64 4, i64 0 }, ptr %a769 + store { ptr, i64, i64 } { ptr @.str.4980, i64 4, i64 0 }, ptr %a769 store { ptr, i64, i64 } %t767, ptr %a770 call void @finch_str_concat(ptr %a768, ptr %a769, ptr %a770) store { ptr, i64, i64 } %t767, ptr %a771 call void @finch_str_drop(ptr %a771) %t772 = load { ptr, i64, i64 }, ptr %a768 store { ptr, i64, i64 } %t772, ptr %a774 - store { ptr, i64, i64 } { ptr @.str.4774, i64 1, i64 0 }, ptr %a775 + store { ptr, i64, i64 } { ptr @.str.4981, i64 1, i64 0 }, ptr %a775 call void @finch_str_concat(ptr %a773, ptr %a774, ptr %a775) store { ptr, i64, i64 } %t772, ptr %a776 call void @finch_str_drop(ptr %a776) @@ -75069,21 +79002,21 @@ else7463: call void @finch.gen.emit(ptr %t763, { ptr, i64, i64 } %t786) store { ptr, i64, i64 } %t786, ptr %a787 call void @finch_str_drop(ptr %a787) - br label %endif7464 -endif7464: - br label %endif7461 -endif7461: - br label %endif7458 -endif7458: + br label %endif7857 +endif7857: + br label %endif7854 +endif7854: + br label %endif7851 +endif7851: %t788 = load ptr, ptr %a1 %t789 = load %S.gen.Saved, ptr %a276 %t790 = load { ptr, i64, i64 }, ptr %a685 - store { ptr, i64, i64 } { ptr @.str.4775, i64 15, i64 0 }, ptr %a792 + store { ptr, i64, i64 } { ptr @.str.4982, i64 15, i64 0 }, ptr %a792 store { ptr, i64, i64 } %t790, ptr %a793 call void @finch_str_concat(ptr %a791, ptr %a792, ptr %a793) %t794 = load { ptr, i64, i64 }, ptr %a791 store { ptr, i64, i64 } %t794, ptr %a796 - store { ptr, i64, i64 } { ptr @.str.4776, i64 1, i64 0 }, ptr %a797 + store { ptr, i64, i64 } { ptr @.str.4983, i64 1, i64 0 }, ptr %a797 call void @finch_str_concat(ptr %a795, ptr %a796, ptr %a797) store { ptr, i64, i64 } %t794, ptr %a798 call void @finch_str_drop(ptr %a798) @@ -75097,7 +79030,7 @@ endif7458: call void @finch_str_drop(ptr %a805) %t806 = load { ptr, i64, i64 }, ptr %a802 store { ptr, i64, i64 } %t806, ptr %a808 - store { ptr, i64, i64 } { ptr @.str.4777, i64 1, i64 0 }, ptr %a809 + store { ptr, i64, i64 } { ptr @.str.4984, i64 1, i64 0 }, ptr %a809 call void @finch_str_concat(ptr %a807, ptr %a808, ptr %a809) store { ptr, i64, i64 } %t806, ptr %a810 call void @finch_str_drop(ptr %a810) @@ -75110,13 +79043,13 @@ endif7458: call void @finch_str_drop(ptr %a816) %t817 = load { ptr, i64, i64 }, ptr %a813 store { ptr, i64, i64 } %t817, ptr %a819 - store { ptr, i64, i64 } { ptr @.str.4778, i64 1, i64 0 }, ptr %a820 + store { ptr, i64, i64 } { ptr @.str.4985, i64 1, i64 0 }, ptr %a820 call void @finch_str_concat(ptr %a818, ptr %a819, ptr %a820) store { ptr, i64, i64 } %t817, ptr %a821 call void @finch_str_drop(ptr %a821) %t822 = load { ptr, i64, i64 }, ptr %a818 %t823 = getelementptr inbounds { ptr, i64, i64 }, ptr %a277, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.4779, i64 2, i64 0 }, ptr %a824 + store { ptr, i64, i64 } { ptr @.str.4986, i64 2, i64 0 }, ptr %a824 call void @finch_str_join(ptr %a825, ptr %a277, ptr %a824) %t826 = load { ptr, i64, i64 }, ptr %a825 store { ptr, i64, i64 } %t822, ptr %a828 @@ -75128,7 +79061,7 @@ endif7458: call void @finch_str_drop(ptr %a831) %t832 = load { ptr, i64, i64 }, ptr %a827 store { ptr, i64, i64 } %t832, ptr %a834 - store { ptr, i64, i64 } { ptr @.str.4780, i64 1, i64 0 }, ptr %a835 + store { ptr, i64, i64 } { ptr @.str.4987, i64 1, i64 0 }, ptr %a835 call void @finch_str_concat(ptr %a833, ptr %a834, ptr %a835) store { ptr, i64, i64 } %t832, ptr %a836 call void @finch_str_drop(ptr %a836) @@ -75249,21 +79182,21 @@ entry: store i64 %p2, ptr %a3 %t4 = load ptr, ptr %a1 %t5 = icmp eq ptr %t4, null - br i1 %t5, label %panic7468, label %ok7469 -panic7468: - call void @finch_panic(ptr @.str.4781, i64 4374, ptr @.str.4782) + br i1 %t5, label %panic7861, label %ok7862 +panic7861: + call void @finch_panic(ptr @.str.4988, i64 4601, ptr @.str.4989) unreachable -ok7469: +ok7862: %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 21 %t7 = load i64, ptr %a3 %t8 = load { ptr, i64, i64 }, ptr %t6 %t9 = extractvalue { ptr, i64, i64 } %t8, 1 %t10 = icmp uge i64 %t7, %t9 - br i1 %t10, label %range7470, label %inrange7471 -range7470: - call void @finch_panic_index(ptr @.str.4783, i64 4374, i64 %t7, i64 %t9) + br i1 %t10, label %range7863, label %inrange7864 +range7863: + call void @finch_panic_index(ptr @.str.4990, i64 4601, i64 %t7, i64 %t9) unreachable -inrange7471: +inrange7864: %t11 = extractvalue { ptr, i64, i64 } %t8, 0 %t12 = getelementptr inbounds %S.gen.EnumDef, ptr %t11, i64 %t7 %t13 = load %S.gen.EnumDef, ptr %t12 @@ -75281,11 +79214,11 @@ inrange7471: %t24 = load { ptr, i64, i64 }, ptr %t23 %t25 = extractvalue { ptr, i64, i64 } %t24, 1 %t26 = icmp uge i64 0, %t25 - br i1 %t26, label %range7472, label %inrange7473 -range7472: - call void @finch_panic_index(ptr @.str.4784, i64 4376, i64 0, i64 %t25) + br i1 %t26, label %range7865, label %inrange7866 +range7865: + call void @finch_panic_index(ptr @.str.4991, i64 4603, i64 0, i64 %t25) unreachable -inrange7473: +inrange7866: %t27 = extractvalue { ptr, i64, i64 } %t24, 0 %t28 = getelementptr inbounds %S.ast.Node, ptr %t27, i64 0 %t29 = load %S.ast.Node, ptr %t28 @@ -75295,25 +79228,25 @@ inrange7473: %t33 = load %S.ast.Type, ptr %t32 %t34 = call i1 @finch.gen.isInt(%S.ast.Type %t33) %t35 = xor i1 %t34, true - br i1 %t35, label %then7474, label %endif7476 -then7474: + br i1 %t35, label %then7867, label %endif7869 +then7867: %t36 = load ptr, ptr %a1 %t37 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t38 = load { ptr, i64, i64 }, ptr %t37 %t39 = extractvalue { ptr, i64, i64 } %t38, 1 %t40 = icmp uge i64 0, %t39 - br i1 %t40, label %range7477, label %inrange7478 -range7477: - call void @finch_panic_index(ptr @.str.4785, i64 4378, i64 0, i64 %t39) + br i1 %t40, label %range7870, label %inrange7871 +range7870: + call void @finch_panic_index(ptr @.str.4992, i64 4605, i64 0, i64 %t39) unreachable -inrange7478: +inrange7871: %t41 = extractvalue { ptr, i64, i64 } %t38, 0 %t42 = getelementptr inbounds %S.ast.Node, ptr %t41, i64 0 %t43 = load %S.ast.Node, ptr %t42 %t44 = getelementptr inbounds %S.gen.EnumDef, ptr %a17, i32 0, i32 1 %t45 = load { ptr, i64, i64 }, ptr %t44 store { ptr, i64, i64 } %t45, ptr %a47 - store { ptr, i64, i64 } { ptr @.str.4786, i64 54, i64 0 }, ptr %a48 + store { ptr, i64, i64 } { ptr @.str.4993, i64 54, i64 0 }, ptr %a48 call void @finch_str_concat(ptr %a46, ptr %a47, ptr %a48) %t49 = load { ptr, i64, i64 }, ptr %a46 %t50 = getelementptr inbounds %S.gen.Val, ptr %a31, i32 0, i32 1 @@ -75330,9 +79263,9 @@ inrange7478: call void @finch.gen.fail(ptr %t36, %S.ast.Node %t43, { ptr, i64, i64 } %t58) store { ptr, i64, i64 } %t58, ptr %a59 call void @finch_str_drop(ptr %a59) - br label %endif7476 -endif7476: - %t60 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.4787, i64 4, i64 0 }, 0 + br label %endif7869 +endif7869: + %t60 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.4994, i64 4, i64 0 }, 0 %t61 = getelementptr inbounds %S.gen.EnumDef, ptr %a17, i32 0, i32 1 %t62 = load { ptr, i64, i64 }, ptr %t61 store { ptr, i64, i64 } %t62, ptr %a63 @@ -75348,58 +79281,58 @@ endif7476: store %S.ast.Type %t72, ptr %a73 %t74 = getelementptr inbounds %S.gen.Val, ptr %a31, i32 0, i32 3 %t75 = load i1, ptr %t74 - br i1 %t75, label %then7479, label %endif7481 -then7479: + br i1 %t75, label %then7872, label %endif7874 +then7872: %t76 = getelementptr inbounds %S.gen.EnumDef, ptr %a17, i32 0, i32 3 %t77 = getelementptr inbounds { ptr, i64, i64 }, ptr %t76, i32 0, i32 1 %t78 = getelementptr inbounds %S.gen.Val, ptr %a31, i32 0, i32 0 %t79 = load { ptr, i64, i64 }, ptr %t78 store { ptr, i64, i64 } %t79, ptr %a80 - %t81 = call i64 @finch_str_to_int(ptr %a80, ptr @.str.4788, i64 4382) + %t81 = call i64 @finch_str_to_int(ptr %a80, ptr @.str.4995, i64 4609) store i64 -1, ptr %a82 %t83 = load i64, ptr %t77 %t84 = load ptr, ptr %t76 store i64 0, ptr %a85 - br label %find.cond7482 -find.cond7482: + br label %find.cond7875 +find.cond7875: %t86 = load i64, ptr %a85 %t87 = icmp slt i64 %t86, %t83 - br i1 %t87, label %find.body7483, label %find.end7486 -find.body7483: + br i1 %t87, label %find.body7876, label %find.end7879 +find.body7876: %t88 = getelementptr inbounds i64, ptr %t84, i64 %t86 %t89 = load i64, ptr %t88 %t90 = icmp eq i64 %t89, %t81 - br i1 %t90, label %find.hit7484, label %find.next7485 -find.hit7484: + br i1 %t90, label %find.hit7877, label %find.next7878 +find.hit7877: store i64 %t86, ptr %a82 - br label %find.end7486 -find.next7485: + br label %find.end7879 +find.next7878: %t91 = add i64 %t86, 1 store i64 %t91, ptr %a85 - br label %find.cond7482 -find.end7486: + br label %find.cond7875 +find.end7879: %t92 = load i64, ptr %a82 %t93 = icmp sge i64 %t92, 0 %t94 = xor i1 %t93, true - br i1 %t94, label %then7487, label %endif7489 -then7487: + br i1 %t94, label %then7880, label %endif7882 +then7880: %t95 = load ptr, ptr %a1 %t96 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t97 = load { ptr, i64, i64 }, ptr %t96 %t98 = extractvalue { ptr, i64, i64 } %t97, 1 %t99 = icmp uge i64 0, %t98 - br i1 %t99, label %range7490, label %inrange7491 -range7490: - call void @finch_panic_index(ptr @.str.4789, i64 4383, i64 0, i64 %t98) + br i1 %t99, label %range7883, label %inrange7884 +range7883: + call void @finch_panic_index(ptr @.str.4996, i64 4610, i64 0, i64 %t98) unreachable -inrange7491: +inrange7884: %t100 = extractvalue { ptr, i64, i64 } %t97, 0 %t101 = getelementptr inbounds %S.ast.Node, ptr %t100, i64 0 %t102 = load %S.ast.Node, ptr %t101 %t103 = getelementptr inbounds %S.gen.Val, ptr %a31, i32 0, i32 0 %t104 = load { ptr, i64, i64 }, ptr %t103 store { ptr, i64, i64 } %t104, ptr %a106 - store { ptr, i64, i64 } { ptr @.str.4790, i64 37, i64 0 }, ptr %a107 + store { ptr, i64, i64 } { ptr @.str.4997, i64 37, i64 0 }, ptr %a107 call void @finch_str_concat(ptr %a105, ptr %a106, ptr %a107) %t108 = load { ptr, i64, i64 }, ptr %a105 %t109 = getelementptr inbounds %S.gen.EnumDef, ptr %a17, i32 0, i32 1 @@ -75413,8 +79346,8 @@ inrange7491: call void @finch.gen.fail(ptr %t95, %S.ast.Node %t102, { ptr, i64, i64 } %t115) store { ptr, i64, i64 } %t115, ptr %a116 call void @finch_str_drop(ptr %a116) - br label %endif7489 -endif7489: + br label %endif7882 +endif7882: %t117 = getelementptr inbounds %S.gen.Val, ptr %a31, i32 0, i32 0 %t118 = load { ptr, i64, i64 }, ptr %t117 store { ptr, i64, i64 } %t118, ptr %a119 @@ -75430,36 +79363,36 @@ endif7489: call void @finch.drop.S_gen_Val(ptr %a31) call void @finch.drop.S_gen_EnumDef(ptr %a17) ret %S.gen.Val %t127 -endif7481: +endif7874: %t128 = load ptr, ptr %a1 %t129 = getelementptr inbounds %S.gen.Val, ptr %a31, i32 0, i32 0 %t130 = load { ptr, i64, i64 }, ptr %t129 %t131 = getelementptr inbounds %S.gen.Val, ptr %a31, i32 0, i32 1 %t132 = load %S.ast.Type, ptr %t131 - %t133 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4791, i64 3, i64 0 }) + %t133 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4998, i64 3, i64 0 }) %t134 = call { ptr, i64, i64 } @finch.gen.intCast(ptr %t128, { ptr, i64, i64 } %t130, %S.ast.Type %t132, %S.ast.Type %t133) store %S.ast.Type %t133, ptr %a135 call void @finch.drop.S_ast_Type(ptr %a135) store { ptr, i64, i64 } %t134, ptr %a136 - store { ptr, i64, i64 } { ptr @.str.4792, i64 0, i64 0 }, ptr %a137 + store { ptr, i64, i64 } { ptr @.str.4999, i64 0, i64 0 }, ptr %a137 %t138 = getelementptr inbounds %S.gen.EnumDef, ptr %a17, i32 0, i32 3 %t139 = getelementptr inbounds { ptr, i64, i64 }, ptr %t138, i32 0, i32 1 %t140 = load i64, ptr %t139 store i64 0, ptr %a141 - br label %for.cond7492 -for.cond7492: + br label %for.cond7885 +for.cond7885: %t142 = load i64, ptr %a141 %t143 = icmp slt i64 %t142, %t140 - br i1 %t143, label %for.body7493, label %for.end7495 -for.body7493: + br i1 %t143, label %for.body7886, label %for.end7888 +for.body7886: %t144 = load ptr, ptr %a1 %t145 = load { ptr, i64, i64 }, ptr %a136 - store { ptr, i64, i64 } { ptr @.str.4793, i64 12, i64 0 }, ptr %a147 + store { ptr, i64, i64 } { ptr @.str.5000, i64 12, i64 0 }, ptr %a147 store { ptr, i64, i64 } %t145, ptr %a148 call void @finch_str_concat(ptr %a146, ptr %a147, ptr %a148) %t149 = load { ptr, i64, i64 }, ptr %a146 store { ptr, i64, i64 } %t149, ptr %a151 - store { ptr, i64, i64 } { ptr @.str.4794, i64 2, i64 0 }, ptr %a152 + store { ptr, i64, i64 } { ptr @.str.5001, i64 2, i64 0 }, ptr %a152 call void @finch_str_concat(ptr %a150, ptr %a151, ptr %a152) store { ptr, i64, i64 } %t149, ptr %a153 call void @finch_str_drop(ptr %a153) @@ -75469,11 +79402,11 @@ for.body7493: %t157 = load { ptr, i64, i64 }, ptr %t155 %t158 = extractvalue { ptr, i64, i64 } %t157, 1 %t159 = icmp uge i64 %t156, %t158 - br i1 %t159, label %range7496, label %inrange7497 -range7496: - call void @finch_panic_index(ptr @.str.4795, i64 4390, i64 %t156, i64 %t158) + br i1 %t159, label %range7889, label %inrange7890 +range7889: + call void @finch_panic_index(ptr @.str.5002, i64 4617, i64 %t156, i64 %t158) unreachable -inrange7497: +inrange7890: %t160 = extractvalue { ptr, i64, i64 } %t157, 0 %t161 = getelementptr inbounds i64, ptr %t160, i64 %t156 %t162 = load i64, ptr %t161 @@ -75493,8 +79426,8 @@ inrange7497: store { ptr, i64, i64 } %t171, ptr %a173 %t174 = load i64, ptr %a141 %t175 = icmp eq i64 %t174, 0 - br i1 %t175, label %then7498, label %else7499 -then7498: + br i1 %t175, label %then7891, label %else7892 +then7891: %t176 = load { ptr, i64, i64 }, ptr %a173 store { ptr, i64, i64 } %t176, ptr %a177 call void @finch_str_copy(ptr %a178, ptr %a177) @@ -75503,16 +79436,16 @@ then7498: store { ptr, i64, i64 } %t179, ptr %a137 store { ptr, i64, i64 } %t180, ptr %a181 call void @finch_str_drop(ptr %a181) - br label %endif7500 -else7499: + br label %endif7893 +else7892: %t182 = load ptr, ptr %a1 %t183 = load { ptr, i64, i64 }, ptr %a137 - store { ptr, i64, i64 } { ptr @.str.4796, i64 6, i64 0 }, ptr %a185 + store { ptr, i64, i64 } { ptr @.str.5003, i64 6, i64 0 }, ptr %a185 store { ptr, i64, i64 } %t183, ptr %a186 call void @finch_str_concat(ptr %a184, ptr %a185, ptr %a186) %t187 = load { ptr, i64, i64 }, ptr %a184 store { ptr, i64, i64 } %t187, ptr %a189 - store { ptr, i64, i64 } { ptr @.str.4797, i64 2, i64 0 }, ptr %a190 + store { ptr, i64, i64 } { ptr @.str.5004, i64 2, i64 0 }, ptr %a190 call void @finch_str_concat(ptr %a188, ptr %a189, ptr %a190) store { ptr, i64, i64 } %t187, ptr %a191 call void @finch_str_drop(ptr %a191) @@ -75531,25 +79464,25 @@ else7499: store { ptr, i64, i64 } %t199, ptr %a137 store { ptr, i64, i64 } %t201, ptr %a202 call void @finch_str_drop(ptr %a202) - br label %endif7500 -endif7500: + br label %endif7893 +endif7893: call void @finch_str_drop(ptr %a173) - br label %for.step7494 -for.step7494: + br label %for.step7887 +for.step7887: %t203 = load i64, ptr %a141 %t204 = add i64 %t203, 1 store i64 %t204, ptr %a141 - br label %for.cond7492 -for.end7495: + br label %for.cond7885 +for.end7888: %t205 = load ptr, ptr %a1 %t206 = load ptr, ptr %a1 %t207 = load { ptr, i64, i64 }, ptr %a137 - store { ptr, i64, i64 } { ptr @.str.4798, i64 7, i64 0 }, ptr %a209 + store { ptr, i64, i64 } { ptr @.str.5005, i64 7, i64 0 }, ptr %a209 store { ptr, i64, i64 } %t207, ptr %a210 call void @finch_str_concat(ptr %a208, ptr %a209, ptr %a210) %t211 = load { ptr, i64, i64 }, ptr %a208 store { ptr, i64, i64 } %t211, ptr %a213 - store { ptr, i64, i64 } { ptr @.str.4799, i64 6, i64 0 }, ptr %a214 + store { ptr, i64, i64 } { ptr @.str.5006, i64 6, i64 0 }, ptr %a214 call void @finch_str_concat(ptr %a212, ptr %a213, ptr %a214) store { ptr, i64, i64 } %t211, ptr %a215 call void @finch_str_drop(ptr %a215) @@ -75559,7 +79492,7 @@ for.end7495: call void @finch_str_drop(ptr %a218) %t219 = getelementptr inbounds %S.gen.EnumDef, ptr %a17, i32 0, i32 1 %t220 = load { ptr, i64, i64 }, ptr %t219 - store { ptr, i64, i64 } { ptr @.str.4800, i64 32, i64 0 }, ptr %a222 + store { ptr, i64, i64 } { ptr @.str.5007, i64 32, i64 0 }, ptr %a222 store { ptr, i64, i64 } %t220, ptr %a223 call void @finch_str_concat(ptr %a221, ptr %a222, ptr %a223) %t224 = load { ptr, i64, i64 }, ptr %a221 @@ -75571,12 +79504,12 @@ for.end7495: call void @finch_str_drop(ptr %a227) %t228 = load ptr, ptr %a1 %t229 = load { ptr, i64, i64 }, ptr %a136 - store { ptr, i64, i64 } { ptr @.str.4801, i64 10, i64 0 }, ptr %a231 + store { ptr, i64, i64 } { ptr @.str.5008, i64 10, i64 0 }, ptr %a231 store { ptr, i64, i64 } %t229, ptr %a232 call void @finch_str_concat(ptr %a230, ptr %a231, ptr %a232) %t233 = load { ptr, i64, i64 }, ptr %a230 store { ptr, i64, i64 } %t233, ptr %a235 - store { ptr, i64, i64 } { ptr @.str.4802, i64 7, i64 0 }, ptr %a236 + store { ptr, i64, i64 } { ptr @.str.5009, i64 7, i64 0 }, ptr %a236 call void @finch_str_concat(ptr %a234, ptr %a235, ptr %a236) store { ptr, i64, i64 } %t233, ptr %a237 call void @finch_str_drop(ptr %a237) @@ -75613,106 +79546,106 @@ entry: %t3 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t4 = load { ptr, i64, i64 }, ptr %t3 store { ptr, i64, i64 } %t4, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.4803, i64 4, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.5010, i64 4, i64 0 }, ptr %a6 %t7 = call i32 @finch_str_eq(ptr %a5, ptr %a6) %t8 = icmp ne i32 %t7, 0 - br label %logic.from7501 -logic.from7501: - br i1 %t8, label %logic.end7503, label %logic.rhs7502 -logic.rhs7502: + br label %logic.from7894 +logic.from7894: + br i1 %t8, label %logic.end7896, label %logic.rhs7895 +logic.rhs7895: %t9 = load %S.ast.Type, ptr %a2 %t10 = call i1 @finch.gen.isUnsigned(%S.ast.Type %t9) - br label %logic.rend7504 -logic.rend7504: - br label %logic.end7503 -logic.end7503: - %t11 = phi i1 [ true, %logic.from7501 ], [ %t10, %logic.rend7504 ] - br i1 %t11, label %then7505, label %endif7507 -then7505: + br label %logic.rend7897 +logic.rend7897: + br label %logic.end7896 +logic.end7896: + %t11 = phi i1 [ true, %logic.from7894 ], [ %t10, %logic.rend7897 ] + br i1 %t11, label %then7898, label %endif7900 +then7898: %t12 = load %S.ast.Type, ptr %a2 %t13 = call i64 @finch.gen.bitsOf(%S.ast.Type %t12) %t14 = icmp slt i64 %t13, 32 - br i1 %t14, label %then7508, label %endif7510 -then7508: - ret { ptr, i64, i64 } { ptr @.str.4804, i64 8, i64 0 } -endif7510: - br label %endif7507 -endif7507: + br i1 %t14, label %then7901, label %endif7903 +then7901: + ret { ptr, i64, i64 } { ptr @.str.5011, i64 8, i64 0 } +endif7903: + br label %endif7900 +endif7900: %t15 = load %S.ast.Type, ptr %a2 %t16 = call i1 @finch.gen.isSigned(%S.ast.Type %t15) - br label %logic.from7511 -logic.from7511: - br i1 %t16, label %logic.end7513, label %logic.rhs7512 -logic.rhs7512: + br label %logic.from7904 +logic.from7904: + br i1 %t16, label %logic.end7906, label %logic.rhs7905 +logic.rhs7905: %t17 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t18 = load { ptr, i64, i64 }, ptr %t17 store { ptr, i64, i64 } %t18, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.4805, i64 4, i64 0 }, ptr %a20 + store { ptr, i64, i64 } { ptr @.str.5012, i64 4, i64 0 }, ptr %a20 %t21 = call i32 @finch_str_eq(ptr %a19, ptr %a20) %t22 = icmp ne i32 %t21, 0 - br label %logic.from7514 -logic.from7514: - br i1 %t22, label %logic.rhs7515, label %logic.end7516 -logic.rhs7515: + br label %logic.from7907 +logic.from7907: + br i1 %t22, label %logic.rhs7908, label %logic.end7909 +logic.rhs7908: %t23 = load ptr, ptr %a1 %t24 = icmp eq ptr %t23, null - br i1 %t24, label %panic7517, label %ok7518 -panic7517: - call void @finch_panic(ptr @.str.4806, i64 4410, ptr @.str.4807) + br i1 %t24, label %panic7910, label %ok7911 +panic7910: + call void @finch_panic(ptr @.str.5013, i64 4637, ptr @.str.5014) unreachable -ok7518: - %t25 = getelementptr inbounds %S.gen.Gen, ptr %t23, i32 0, i32 30 +ok7911: + %t25 = getelementptr inbounds %S.gen.Gen, ptr %t23, i32 0, i32 31 %t26 = load %S.platform.Target, ptr %t25 %t27 = call i1 @finch.platform.charIsSigned(%S.platform.Target %t26) - br label %logic.rend7519 -logic.rend7519: - br label %logic.end7516 -logic.end7516: - %t28 = phi i1 [ false, %logic.from7514 ], [ %t27, %logic.rend7519 ] - br label %logic.rend7520 -logic.rend7520: - br label %logic.end7513 -logic.end7513: - %t29 = phi i1 [ true, %logic.from7511 ], [ %t28, %logic.rend7520 ] - br label %logic.from7521 -logic.from7521: - br i1 %t29, label %logic.rhs7522, label %logic.end7523 -logic.rhs7522: + br label %logic.rend7912 +logic.rend7912: + br label %logic.end7909 +logic.end7909: + %t28 = phi i1 [ false, %logic.from7907 ], [ %t27, %logic.rend7912 ] + br label %logic.rend7913 +logic.rend7913: + br label %logic.end7906 +logic.end7906: + %t29 = phi i1 [ true, %logic.from7904 ], [ %t28, %logic.rend7913 ] + br label %logic.from7914 +logic.from7914: + br i1 %t29, label %logic.rhs7915, label %logic.end7916 +logic.rhs7915: %t30 = load %S.ast.Type, ptr %a2 %t31 = call i64 @finch.gen.bitsOf(%S.ast.Type %t30) %t32 = icmp slt i64 %t31, 32 - br label %logic.rend7524 -logic.rend7524: - br label %logic.end7523 -logic.end7523: - %t33 = phi i1 [ false, %logic.from7521 ], [ %t32, %logic.rend7524 ] - br i1 %t33, label %then7525, label %endif7527 -then7525: - ret { ptr, i64, i64 } { ptr @.str.4808, i64 8, i64 0 } -endif7527: + br label %logic.rend7917 +logic.rend7917: + br label %logic.end7916 +logic.end7916: + %t33 = phi i1 [ false, %logic.from7914 ], [ %t32, %logic.rend7917 ] + br i1 %t33, label %then7918, label %endif7920 +then7918: + ret { ptr, i64, i64 } { ptr @.str.5015, i64 8, i64 0 } +endif7920: %t34 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t35 = load { ptr, i64, i64 }, ptr %t34 store { ptr, i64, i64 } %t35, ptr %a36 - store { ptr, i64, i64 } { ptr @.str.4809, i64 4, i64 0 }, ptr %a37 + store { ptr, i64, i64 } { ptr @.str.5016, i64 4, i64 0 }, ptr %a37 %t38 = call i32 @finch_str_eq(ptr %a36, ptr %a37) %t39 = icmp ne i32 %t38, 0 - br label %logic.from7528 -logic.from7528: - br i1 %t39, label %logic.rhs7529, label %logic.end7530 -logic.rhs7529: + br label %logic.from7921 +logic.from7921: + br i1 %t39, label %logic.rhs7922, label %logic.end7923 +logic.rhs7922: %t40 = load %S.ast.Type, ptr %a2 %t41 = call i64 @finch.gen.bitsOf(%S.ast.Type %t40) %t42 = icmp slt i64 %t41, 32 - br label %logic.rend7531 -logic.rend7531: - br label %logic.end7530 -logic.end7530: - %t43 = phi i1 [ false, %logic.from7528 ], [ %t42, %logic.rend7531 ] - br i1 %t43, label %then7532, label %endif7534 -then7532: - ret { ptr, i64, i64 } { ptr @.str.4810, i64 8, i64 0 } -endif7534: - ret { ptr, i64, i64 } { ptr @.str.4811, i64 0, i64 0 } + br label %logic.rend7924 +logic.rend7924: + br label %logic.end7923 +logic.end7923: + %t43 = phi i1 [ false, %logic.from7921 ], [ %t42, %logic.rend7924 ] + br i1 %t43, label %then7925, label %endif7927 +then7925: + ret { ptr, i64, i64 } { ptr @.str.5017, i64 8, i64 0 } +endif7927: + ret { ptr, i64, i64 } { ptr @.str.5018, i64 0, i64 0 } } define internal { ptr, i64, i64 } @finch.gen.cLL(ptr %p0, %S.ast.Type %p1) { @@ -75726,13 +79659,13 @@ entry: %t3 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t4 = load { ptr, i64, i64 }, ptr %t3 store { ptr, i64, i64 } %t4, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.4812, i64 3, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.5019, i64 3, i64 0 }, ptr %a6 %t7 = call i32 @finch_str_eq(ptr %a5, ptr %a6) %t8 = icmp ne i32 %t7, 0 - br i1 %t8, label %then7535, label %endif7537 -then7535: - ret { ptr, i64, i64 } { ptr @.str.4813, i64 3, i64 0 } -endif7537: + br i1 %t8, label %then7928, label %endif7930 +then7928: + ret { ptr, i64, i64 } { ptr @.str.5020, i64 3, i64 0 } +endif7930: %t9 = load ptr, ptr %a1 %t10 = load %S.ast.Type, ptr %a2 %t11 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t9, %S.ast.Type %t10) @@ -76202,26 +80135,26 @@ entry: store %S.cimport.CFunc %p2, ptr %a3 %t4 = load ptr, ptr %a1 %t5 = icmp eq ptr %t4, null - br i1 %t5, label %panic7538, label %ok7539 -panic7538: - call void @finch_panic(ptr @.str.4814, i64 4427, ptr @.str.4815) + br i1 %t5, label %panic7931, label %ok7932 +panic7931: + call void @finch_panic(ptr @.str.5021, i64 4654, ptr @.str.5022) unreachable -ok7539: - %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 27 +ok7932: + %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 28 %t7 = load i1, ptr %t6 - br i1 %t7, label %then7540, label %endif7542 -then7540: + br i1 %t7, label %then7933, label %endif7935 +then7933: store { ptr, i64, i64 } zeroinitializer, ptr %a8 %t9 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 3 store i64 0, ptr %a10 - br label %each.cond7543 -each.cond7543: + br label %each.cond7936 +each.cond7936: %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %t9, i32 0, i32 1 %t12 = load i64, ptr %t11 %t13 = load i64, ptr %a10 %t14 = icmp slt i64 %t13, %t12 - br i1 %t14, label %each.body7544, label %each.end7546 -each.body7544: + br i1 %t14, label %each.body7937, label %each.end7939 +each.body7937: %t15 = load ptr, ptr %t9 %t16 = getelementptr inbounds %S.ast.Type, ptr %t15, i64 %t13 %t17 = load %S.ast.Type, ptr %t16 @@ -76236,27 +80169,27 @@ each.body7544: %t25 = getelementptr inbounds { ptr, i64, i64 }, ptr %t24, i64 %t22 store { ptr, i64, i64 } %t21, ptr %t25 store i64 %t23, ptr %t19 - br label %each.step7545 -each.step7545: + br label %each.step7938 +each.step7938: %t26 = load i64, ptr %a10 %t27 = add i64 %t26, 1 store i64 %t27, ptr %a10 - br label %each.cond7543 -each.end7546: + br label %each.cond7936 +each.end7939: %t28 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 4 %t29 = load i1, ptr %t28 - br i1 %t29, label %then7547, label %endif7549 -then7547: + br i1 %t29, label %then7940, label %endif7942 +then7940: %t30 = getelementptr inbounds { ptr, i64, i64 }, ptr %a8, i32 0, i32 1 %t31 = load i64, ptr %t30 %t32 = add i64 %t31, 1 call void @finch_arr_reserve(ptr %a8, i64 %t32, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t33 = load ptr, ptr %a8 %t34 = getelementptr inbounds { ptr, i64, i64 }, ptr %t33, i64 %t31 - store { ptr, i64, i64 } { ptr @.str.4816, i64 3, i64 0 }, ptr %t34 + store { ptr, i64, i64 } { ptr @.str.5023, i64 3, i64 0 }, ptr %t34 store i64 %t32, ptr %t30 - br label %endif7549 -endif7549: + br label %endif7942 +endif7942: %t35 = load ptr, ptr %a1 %t36 = load %S.ast.Node, ptr %a2 %t37 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 12 @@ -76266,12 +80199,12 @@ endif7549: %t41 = load i64, ptr %t40 %t42 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 1 %t43 = load { ptr, i64, i64 }, ptr %t42 - store { ptr, i64, i64 } { ptr @.str.4817, i64 17, i64 0 }, ptr %a45 + store { ptr, i64, i64 } { ptr @.str.5024, i64 17, i64 0 }, ptr %a45 store { ptr, i64, i64 } %t43, ptr %a46 call void @finch_str_concat(ptr %a44, ptr %a45, ptr %a46) %t47 = load { ptr, i64, i64 }, ptr %a44 store { ptr, i64, i64 } %t47, ptr %a49 - store { ptr, i64, i64 } { ptr @.str.4818, i64 7, i64 0 }, ptr %a50 + store { ptr, i64, i64 } { ptr @.str.5025, i64 7, i64 0 }, ptr %a50 call void @finch_str_concat(ptr %a48, ptr %a49, ptr %a50) store { ptr, i64, i64 } %t47, ptr %a51 call void @finch_str_drop(ptr %a51) @@ -76288,7 +80221,7 @@ endif7549: call void @finch_str_drop(ptr %a60) %t61 = load { ptr, i64, i64 }, ptr %a56 store { ptr, i64, i64 } %t61, ptr %a63 - store { ptr, i64, i64 } { ptr @.str.4819, i64 1, i64 0 }, ptr %a64 + store { ptr, i64, i64 } { ptr @.str.5026, i64 1, i64 0 }, ptr %a64 call void @finch_str_concat(ptr %a62, ptr %a63, ptr %a64) store { ptr, i64, i64 } %t61, ptr %a65 call void @finch_str_drop(ptr %a65) @@ -76302,13 +80235,13 @@ endif7549: call void @finch_str_drop(ptr %a72) %t73 = load { ptr, i64, i64 }, ptr %a69 store { ptr, i64, i64 } %t73, ptr %a75 - store { ptr, i64, i64 } { ptr @.str.4820, i64 1, i64 0 }, ptr %a76 + store { ptr, i64, i64 } { ptr @.str.5027, i64 1, i64 0 }, ptr %a76 call void @finch_str_concat(ptr %a74, ptr %a75, ptr %a76) store { ptr, i64, i64 } %t73, ptr %a77 call void @finch_str_drop(ptr %a77) %t78 = load { ptr, i64, i64 }, ptr %a74 %t79 = getelementptr inbounds { ptr, i64, i64 }, ptr %a8, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.4821, i64 2, i64 0 }, ptr %a80 + store { ptr, i64, i64 } { ptr @.str.5028, i64 2, i64 0 }, ptr %a80 call void @finch_str_join(ptr %a81, ptr %a8, ptr %a80) %t82 = load { ptr, i64, i64 }, ptr %a81 store { ptr, i64, i64 } %t78, ptr %a84 @@ -76320,33 +80253,33 @@ endif7549: call void @finch_str_drop(ptr %a87) %t88 = load { ptr, i64, i64 }, ptr %a83 store { ptr, i64, i64 } %t88, ptr %a90 - store { ptr, i64, i64 } { ptr @.str.4822, i64 5, i64 0 }, ptr %a91 + store { ptr, i64, i64 } { ptr @.str.5029, i64 5, i64 0 }, ptr %a91 call void @finch_str_concat(ptr %a89, ptr %a90, ptr %a91) store { ptr, i64, i64 } %t88, ptr %a92 call void @finch_str_drop(ptr %a92) %t93 = load { ptr, i64, i64 }, ptr %a89 - call void @finch.gen.noteRef(ptr %t35, %S.ast.Node %t36, i64 %t38, i64 %t41, { ptr, i64, i64 } %t93, { ptr, i64, i64 } { ptr @.str.4823, i64 0, i64 0 }, i64 0, i64 0) + call void @finch.gen.noteRef(ptr %t35, %S.ast.Node %t36, i64 %t38, i64 %t41, { ptr, i64, i64 } %t93, { ptr, i64, i64 } { ptr @.str.5030, i64 0, i64 0 }, i64 0, i64 0) store { ptr, i64, i64 } %t93, ptr %a94 call void @finch_str_drop(ptr %a94) call void @finch.drop.arr_str(ptr %a8) - br label %endif7542 -endif7542: + br label %endif7935 +endif7935: %t95 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 5 %t96 = getelementptr inbounds { ptr, i64, i64 }, ptr %t95, i32 0, i32 1 %t97 = load i64, ptr %t96 %t98 = icmp sgt i64 %t97, 0 - br i1 %t98, label %then7550, label %endif7552 -then7550: + br i1 %t98, label %then7943, label %endif7945 +then7943: %t99 = load ptr, ptr %a1 %t100 = load %S.ast.Node, ptr %a2 %t101 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 0 %t102 = load { ptr, i64, i64 }, ptr %t101 - store { ptr, i64, i64 } { ptr @.str.4824, i64 16, i64 0 }, ptr %a104 + store { ptr, i64, i64 } { ptr @.str.5031, i64 16, i64 0 }, ptr %a104 store { ptr, i64, i64 } %t102, ptr %a105 call void @finch_str_concat(ptr %a103, ptr %a104, ptr %a105) %t106 = load { ptr, i64, i64 }, ptr %a103 store { ptr, i64, i64 } %t106, ptr %a108 - store { ptr, i64, i64 } { ptr @.str.4825, i64 35, i64 0 }, ptr %a109 + store { ptr, i64, i64 } { ptr @.str.5032, i64 35, i64 0 }, ptr %a109 call void @finch_str_concat(ptr %a107, ptr %a108, ptr %a109) store { ptr, i64, i64 } %t106, ptr %a110 call void @finch_str_drop(ptr %a110) @@ -76362,33 +80295,33 @@ then7550: call void @finch.gen.fail(ptr %t99, %S.ast.Node %t100, { ptr, i64, i64 } %t118) store { ptr, i64, i64 } %t118, ptr %a119 call void @finch_str_drop(ptr %a119) - br label %endif7552 -endif7552: + br label %endif7945 +endif7945: %t120 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t121 = getelementptr inbounds { ptr, i64, i64 }, ptr %t120, i32 0, i32 1 %t122 = load i64, ptr %t121 store i64 %t122, ptr %a123 %t124 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 4 %t125 = load i1, ptr %t124 - br i1 %t125, label %then7553, label %else7554 -then7553: + br i1 %t125, label %then7946, label %else7947 +then7946: %t126 = load i64, ptr %a123 %t127 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 3 %t128 = getelementptr inbounds { ptr, i64, i64 }, ptr %t127, i32 0, i32 1 %t129 = load i64, ptr %t128 %t130 = icmp slt i64 %t126, %t129 - br i1 %t130, label %then7556, label %endif7558 -then7556: + br i1 %t130, label %then7949, label %endif7951 +then7949: %t131 = load ptr, ptr %a1 %t132 = load %S.ast.Node, ptr %a2 %t133 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 0 %t134 = load { ptr, i64, i64 }, ptr %t133 - store { ptr, i64, i64 } { ptr @.str.4826, i64 1, i64 0 }, ptr %a136 + store { ptr, i64, i64 } { ptr @.str.5033, i64 1, i64 0 }, ptr %a136 store { ptr, i64, i64 } %t134, ptr %a137 call void @finch_str_concat(ptr %a135, ptr %a136, ptr %a137) %t138 = load { ptr, i64, i64 }, ptr %a135 store { ptr, i64, i64 } %t138, ptr %a140 - store { ptr, i64, i64 } { ptr @.str.4827, i64 17, i64 0 }, ptr %a141 + store { ptr, i64, i64 } { ptr @.str.5034, i64 17, i64 0 }, ptr %a141 call void @finch_str_concat(ptr %a139, ptr %a140, ptr %a141) store { ptr, i64, i64 } %t138, ptr %a142 call void @finch_str_drop(ptr %a142) @@ -76407,7 +80340,7 @@ then7556: call void @finch_str_drop(ptr %a153) %t154 = load { ptr, i64, i64 }, ptr %a149 store { ptr, i64, i64 } %t154, ptr %a156 - store { ptr, i64, i64 } { ptr @.str.4828, i64 22, i64 0 }, ptr %a157 + store { ptr, i64, i64 } { ptr @.str.5035, i64 22, i64 0 }, ptr %a157 call void @finch_str_concat(ptr %a155, ptr %a156, ptr %a157) store { ptr, i64, i64 } %t154, ptr %a158 call void @finch_str_drop(ptr %a158) @@ -76426,27 +80359,27 @@ then7556: call void @finch.gen.fail(ptr %t131, %S.ast.Node %t132, { ptr, i64, i64 } %t168) store { ptr, i64, i64 } %t168, ptr %a169 call void @finch_str_drop(ptr %a169) - br label %endif7558 -endif7558: - br label %endif7555 -else7554: + br label %endif7951 +endif7951: + br label %endif7948 +else7947: %t170 = load i64, ptr %a123 %t171 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 3 %t172 = getelementptr inbounds { ptr, i64, i64 }, ptr %t171, i32 0, i32 1 %t173 = load i64, ptr %t172 %t174 = icmp ne i64 %t170, %t173 - br i1 %t174, label %then7559, label %endif7561 -then7559: + br i1 %t174, label %then7952, label %endif7954 +then7952: %t175 = load ptr, ptr %a1 %t176 = load %S.ast.Node, ptr %a2 %t177 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 0 %t178 = load { ptr, i64, i64 }, ptr %t177 - store { ptr, i64, i64 } { ptr @.str.4829, i64 1, i64 0 }, ptr %a180 + store { ptr, i64, i64 } { ptr @.str.5036, i64 1, i64 0 }, ptr %a180 store { ptr, i64, i64 } %t178, ptr %a181 call void @finch_str_concat(ptr %a179, ptr %a180, ptr %a181) %t182 = load { ptr, i64, i64 }, ptr %a179 store { ptr, i64, i64 } %t182, ptr %a184 - store { ptr, i64, i64 } { ptr @.str.4830, i64 8, i64 0 }, ptr %a185 + store { ptr, i64, i64 } { ptr @.str.5037, i64 8, i64 0 }, ptr %a185 call void @finch_str_concat(ptr %a183, ptr %a184, ptr %a185) store { ptr, i64, i64 } %t182, ptr %a186 call void @finch_str_drop(ptr %a186) @@ -76465,7 +80398,7 @@ then7559: call void @finch_str_drop(ptr %a197) %t198 = load { ptr, i64, i64 }, ptr %a193 store { ptr, i64, i64 } %t198, ptr %a200 - store { ptr, i64, i64 } { ptr @.str.4831, i64 22, i64 0 }, ptr %a201 + store { ptr, i64, i64 } { ptr @.str.5038, i64 22, i64 0 }, ptr %a201 call void @finch_str_concat(ptr %a199, ptr %a200, ptr %a201) store { ptr, i64, i64 } %t198, ptr %a202 call void @finch_str_drop(ptr %a202) @@ -76484,10 +80417,10 @@ then7559: call void @finch.gen.fail(ptr %t175, %S.ast.Node %t176, { ptr, i64, i64 } %t212) store { ptr, i64, i64 } %t212, ptr %a213 call void @finch_str_drop(ptr %a213) - br label %endif7561 -endif7561: - br label %endif7555 -endif7555: + br label %endif7954 +endif7954: + br label %endif7948 +endif7948: %t214 = load ptr, ptr %a1 %t215 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 2 %t216 = load %S.ast.Type, ptr %t215 @@ -76499,18 +80432,18 @@ endif7555: %t222 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 0 %t223 = load { ptr, i64, i64 }, ptr %t222 %t224 = load %S.ast.Type, ptr %a219 - call void @finch.gen.checkByValue(ptr %t220, %S.ast.Node %t221, { ptr, i64, i64 } %t223, %S.ast.Type %t224, { ptr, i64, i64 } { ptr @.str.4832, i64 7, i64 0 }) + call void @finch.gen.checkByValue(ptr %t220, %S.ast.Node %t221, { ptr, i64, i64 } %t223, %S.ast.Type %t224, { ptr, i64, i64 } { ptr @.str.5039, i64 7, i64 0 }) store { ptr, i64, i64 } zeroinitializer, ptr %a225 %t226 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 3 store i64 0, ptr %a227 - br label %each.cond7562 -each.cond7562: + br label %each.cond7955 +each.cond7955: %t228 = getelementptr inbounds { ptr, i64, i64 }, ptr %t226, i32 0, i32 1 %t229 = load i64, ptr %t228 %t230 = load i64, ptr %a227 %t231 = icmp slt i64 %t230, %t229 - br i1 %t231, label %each.body7563, label %each.end7565 -each.body7563: + br i1 %t231, label %each.body7956, label %each.end7958 +each.body7956: %t232 = load ptr, ptr %t226 %t233 = getelementptr inbounds %S.ast.Type, ptr %t232, i64 %t230 %t234 = load %S.ast.Type, ptr %t233 @@ -76525,7 +80458,7 @@ each.body7563: %t243 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 0 %t244 = load { ptr, i64, i64 }, ptr %t243 %t245 = load %S.ast.Type, ptr %a240 - call void @finch.gen.checkByValue(ptr %t241, %S.ast.Node %t242, { ptr, i64, i64 } %t244, %S.ast.Type %t245, { ptr, i64, i64 } { ptr @.str.4833, i64 5, i64 0 }) + call void @finch.gen.checkByValue(ptr %t241, %S.ast.Node %t242, { ptr, i64, i64 } %t244, %S.ast.Type %t245, { ptr, i64, i64 } { ptr @.str.5040, i64 5, i64 0 }) %t246 = getelementptr inbounds { ptr, i64, i64 }, ptr %a225, i32 0, i32 1 %t247 = load %S.ast.Type, ptr %a240 store %S.ast.Type %t247, ptr %a248 @@ -76539,13 +80472,13 @@ each.body7563: store %S.ast.Type %t250, ptr %t254 store i64 %t252, ptr %t246 call void @finch.drop.S_ast_Type(ptr %a240) - br label %each.step7564 -each.step7564: + br label %each.step7957 +each.step7957: %t255 = load i64, ptr %a227 %t256 = add i64 %t255, 1 store i64 %t256, ptr %a227 - br label %each.cond7562 -each.end7565: + br label %each.cond7955 +each.end7958: %t257 = load ptr, ptr %a1 %t258 = load %S.ast.Type, ptr %a219 %t259 = load { ptr, i64, i64 }, ptr %a225 @@ -76553,11 +80486,11 @@ each.end7565: store %S.gen.Plan %t260, ptr %a261 store { ptr, i64, i64 } zeroinitializer, ptr %a262 store { ptr, i64, i64 } zeroinitializer, ptr %a263 - store { ptr, i64, i64 } { ptr @.str.4834, i64 0, i64 0 }, ptr %a264 + store { ptr, i64, i64 } { ptr @.str.5041, i64 0, i64 0 }, ptr %a264 %t265 = getelementptr inbounds %S.gen.Plan, ptr %a261, i32 0, i32 3 %t266 = load i1, ptr %t265 - br i1 %t266, label %then7566, label %endif7568 -then7566: + br i1 %t266, label %then7959, label %endif7961 +then7959: %t267 = load ptr, ptr %a1 %t268 = load ptr, ptr %a1 %t269 = load %S.ast.Type, ptr %a219 @@ -76573,14 +80506,14 @@ then7566: %t276 = load ptr, ptr %a1 %t277 = load %S.ast.Type, ptr %a219 %t278 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t276, %S.ast.Type %t277) - store { ptr, i64, i64 } { ptr @.str.4835, i64 9, i64 0 }, ptr %a280 + store { ptr, i64, i64 } { ptr @.str.5042, i64 9, i64 0 }, ptr %a280 store { ptr, i64, i64 } %t278, ptr %a281 call void @finch_str_concat(ptr %a279, ptr %a280, ptr %a281) store { ptr, i64, i64 } %t278, ptr %a282 call void @finch_str_drop(ptr %a282) %t283 = load { ptr, i64, i64 }, ptr %a279 store { ptr, i64, i64 } %t283, ptr %a285 - store { ptr, i64, i64 } { ptr @.str.4836, i64 10, i64 0 }, ptr %a286 + store { ptr, i64, i64 } { ptr @.str.5043, i64 10, i64 0 }, ptr %a286 call void @finch_str_concat(ptr %a284, ptr %a285, ptr %a286) store { ptr, i64, i64 } %t283, ptr %a287 call void @finch_str_drop(ptr %a287) @@ -76596,14 +80529,14 @@ then7566: %t294 = load ptr, ptr %a1 %t295 = load %S.ast.Type, ptr %a219 %t296 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t294, %S.ast.Type %t295) - store { ptr, i64, i64 } { ptr @.str.4837, i64 9, i64 0 }, ptr %a298 + store { ptr, i64, i64 } { ptr @.str.5044, i64 9, i64 0 }, ptr %a298 store { ptr, i64, i64 } %t296, ptr %a299 call void @finch_str_concat(ptr %a297, ptr %a298, ptr %a299) store { ptr, i64, i64 } %t296, ptr %a300 call void @finch_str_drop(ptr %a300) %t301 = load { ptr, i64, i64 }, ptr %a297 store { ptr, i64, i64 } %t301, ptr %a303 - store { ptr, i64, i64 } { ptr @.str.4838, i64 11, i64 0 }, ptr %a304 + store { ptr, i64, i64 } { ptr @.str.5045, i64 11, i64 0 }, ptr %a304 call void @finch_str_concat(ptr %a302, ptr %a303, ptr %a304) store { ptr, i64, i64 } %t301, ptr %a305 call void @finch_str_drop(ptr %a305) @@ -76622,16 +80555,16 @@ then7566: %t316 = getelementptr inbounds { ptr, i64, i64 }, ptr %t315, i64 %t313 store { ptr, i64, i64 } %t312, ptr %t316 store i64 %t314, ptr %t293 - br label %endif7568 -endif7568: + br label %endif7961 +endif7961: store { ptr, i64, i64 } zeroinitializer, ptr %a317 %t318 = load ptr, ptr %a1 %t319 = icmp eq ptr %t318, null - br i1 %t319, label %panic7569, label %ok7570 -panic7569: - call void @finch_panic(ptr @.str.4839, i64 4466, ptr @.str.4840) + br i1 %t319, label %panic7962, label %ok7963 +panic7962: + call void @finch_panic(ptr @.str.5046, i64 4693, ptr @.str.5047) unreachable -ok7570: +ok7963: %t320 = getelementptr inbounds %S.gen.Gen, ptr %t318, i32 0, i32 11 %t321 = getelementptr inbounds { ptr, i64, i64 }, ptr %t320, i32 0, i32 1 %t322 = load i64, ptr %t321 @@ -76640,28 +80573,28 @@ ok7570: %t325 = getelementptr inbounds { ptr, i64, i64 }, ptr %t324, i32 0, i32 1 %t326 = load i64, ptr %t325 store i64 0, ptr %a327 - br label %for.cond7571 -for.cond7571: + br label %for.cond7964 +for.cond7964: %t328 = load i64, ptr %a327 %t329 = icmp slt i64 %t328, %t326 - br i1 %t329, label %for.body7572, label %for.end7574 -for.body7572: + br i1 %t329, label %for.body7965, label %for.end7967 +for.body7965: %t330 = load i64, ptr %a327 %t331 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 3 %t332 = getelementptr inbounds { ptr, i64, i64 }, ptr %t331, i32 0, i32 1 %t333 = load i64, ptr %t332 %t334 = icmp slt i64 %t330, %t333 - br i1 %t334, label %then7575, label %endif7577 -then7575: + br i1 %t334, label %then7968, label %endif7970 +then7968: %t335 = load i64, ptr %a327 %t336 = load { ptr, i64, i64 }, ptr %a225 %t337 = extractvalue { ptr, i64, i64 } %t336, 1 %t338 = icmp uge i64 %t335, %t337 - br i1 %t338, label %range7578, label %inrange7579 -range7578: - call void @finch_panic_index(ptr @.str.4841, i64 4469, i64 %t335, i64 %t337) + br i1 %t338, label %range7971, label %inrange7972 +range7971: + call void @finch_panic_index(ptr @.str.5048, i64 4696, i64 %t335, i64 %t337) unreachable -inrange7579: +inrange7972: %t339 = extractvalue { ptr, i64, i64 } %t336, 0 %t340 = getelementptr inbounds %S.ast.Type, ptr %t339, i64 %t335 %t341 = load %S.ast.Type, ptr %t340 @@ -76674,11 +80607,11 @@ inrange7579: %t348 = load { ptr, i64, i64 }, ptr %t346 %t349 = extractvalue { ptr, i64, i64 } %t348, 1 %t350 = icmp uge i64 %t347, %t349 - br i1 %t350, label %range7580, label %inrange7581 -range7580: - call void @finch_panic_index(ptr @.str.4842, i64 4470, i64 %t347, i64 %t349) + br i1 %t350, label %range7973, label %inrange7974 +range7973: + call void @finch_panic_index(ptr @.str.5049, i64 4697, i64 %t347, i64 %t349) unreachable -inrange7581: +inrange7974: %t351 = extractvalue { ptr, i64, i64 } %t348, 0 %t352 = getelementptr inbounds %S.gen.Abi, ptr %t351, i64 %t347 %t353 = load %S.gen.Abi, ptr %t352 @@ -76693,11 +80626,11 @@ inrange7581: %t362 = load { ptr, i64, i64 }, ptr %t360 %t363 = extractvalue { ptr, i64, i64 } %t362, 1 %t364 = icmp uge i64 %t361, %t363 - br i1 %t364, label %range7582, label %inrange7583 -range7582: - call void @finch_panic_index(ptr @.str.4843, i64 4471, i64 %t361, i64 %t363) + br i1 %t364, label %range7975, label %inrange7976 +range7975: + call void @finch_panic_index(ptr @.str.5050, i64 4698, i64 %t361, i64 %t363) unreachable -inrange7583: +inrange7976: %t365 = extractvalue { ptr, i64, i64 } %t362, 0 %t366 = getelementptr inbounds %S.ast.Node, ptr %t365, i64 %t361 %t367 = load %S.ast.Node, ptr %t366 @@ -76709,11 +80642,11 @@ inrange7583: %t373 = load { ptr, i64, i64 }, ptr %t371 %t374 = extractvalue { ptr, i64, i64 } %t373, 1 %t375 = icmp uge i64 %t372, %t374 - br i1 %t375, label %range7584, label %inrange7585 -range7584: - call void @finch_panic_index(ptr @.str.4844, i64 4471, i64 %t372, i64 %t374) + br i1 %t375, label %range7977, label %inrange7978 +range7977: + call void @finch_panic_index(ptr @.str.5051, i64 4698, i64 %t372, i64 %t374) unreachable -inrange7585: +inrange7978: %t376 = extractvalue { ptr, i64, i64 } %t373, 0 %t377 = getelementptr inbounds %S.ast.Node, ptr %t376, i64 %t372 %t378 = load %S.ast.Node, ptr %t377 @@ -76721,14 +80654,14 @@ inrange7585: %t380 = add i64 %t379, 1 call void @finch_str_from_int(ptr %a381, i64 %t380) %t382 = load { ptr, i64, i64 }, ptr %a381 - store { ptr, i64, i64 } { ptr @.str.4845, i64 9, i64 0 }, ptr %a384 + store { ptr, i64, i64 } { ptr @.str.5052, i64 9, i64 0 }, ptr %a384 store { ptr, i64, i64 } %t382, ptr %a385 call void @finch_str_concat(ptr %a383, ptr %a384, ptr %a385) store { ptr, i64, i64 } %t382, ptr %a386 call void @finch_str_drop(ptr %a386) %t387 = load { ptr, i64, i64 }, ptr %a383 store { ptr, i64, i64 } %t387, ptr %a389 - store { ptr, i64, i64 } { ptr @.str.4846, i64 4, i64 0 }, ptr %a390 + store { ptr, i64, i64 } { ptr @.str.5053, i64 4, i64 0 }, ptr %a390 call void @finch_str_concat(ptr %a388, ptr %a389, ptr %a390) store { ptr, i64, i64 } %t387, ptr %a391 call void @finch_str_drop(ptr %a391) @@ -76765,11 +80698,11 @@ inrange7585: %t415 = getelementptr inbounds %S.gen.Abi, ptr %a357, i32 0, i32 0 %t416 = load { ptr, i64, i64 }, ptr %t415 store { ptr, i64, i64 } %t416, ptr %a417 - store { ptr, i64, i64 } { ptr @.str.4847, i64 6, i64 0 }, ptr %a418 + store { ptr, i64, i64 } { ptr @.str.5054, i64 6, i64 0 }, ptr %a418 %t419 = call i32 @finch_str_eq(ptr %a417, ptr %a418) %t420 = icmp ne i32 %t419, 0 - br i1 %t420, label %then7586, label %else7587 -then7586: + br i1 %t420, label %then7979, label %else7980 +then7979: %t421 = load ptr, ptr %a1 %t422 = load ptr, ptr %a1 %t423 = load %S.ast.Type, ptr %a345 @@ -76791,14 +80724,14 @@ then7586: %t436 = load ptr, ptr %a1 %t437 = load %S.ast.Type, ptr %a345 %t438 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t436, %S.ast.Type %t437) - store { ptr, i64, i64 } { ptr @.str.4848, i64 10, i64 0 }, ptr %a440 + store { ptr, i64, i64 } { ptr @.str.5055, i64 10, i64 0 }, ptr %a440 store { ptr, i64, i64 } %t438, ptr %a441 call void @finch_str_concat(ptr %a439, ptr %a440, ptr %a441) store { ptr, i64, i64 } %t438, ptr %a442 call void @finch_str_drop(ptr %a442) %t443 = load { ptr, i64, i64 }, ptr %a439 store { ptr, i64, i64 } %t443, ptr %a445 - store { ptr, i64, i64 } { ptr @.str.4849, i64 8, i64 0 }, ptr %a446 + store { ptr, i64, i64 } { ptr @.str.5056, i64 8, i64 0 }, ptr %a446 call void @finch_str_concat(ptr %a444, ptr %a445, ptr %a446) store { ptr, i64, i64 } %t443, ptr %a447 call void @finch_str_drop(ptr %a447) @@ -76831,7 +80764,7 @@ then7586: %t469 = getelementptr inbounds { ptr, i64, i64 }, ptr %a263, i32 0, i32 1 %t470 = load { ptr, i64, i64 }, ptr %a459 store { ptr, i64, i64 } %t470, ptr %a472 - store { ptr, i64, i64 } { ptr @.str.4850, i64 1, i64 0 }, ptr %a473 + store { ptr, i64, i64 } { ptr @.str.5057, i64 1, i64 0 }, ptr %a473 call void @finch_str_concat(ptr %a471, ptr %a472, ptr %a473) %t474 = load { ptr, i64, i64 }, ptr %a471 %t475 = load { ptr, i64, i64 }, ptr %a427 @@ -76850,16 +80783,16 @@ then7586: store i64 %t482, ptr %t469 call void @finch_str_drop(ptr %a459) call void @finch_str_drop(ptr %a427) - br label %endif7588 -else7587: + br label %endif7981 +else7980: %t485 = getelementptr inbounds %S.gen.Abi, ptr %a357, i32 0, i32 0 %t486 = load { ptr, i64, i64 }, ptr %t485 store { ptr, i64, i64 } %t486, ptr %a487 - store { ptr, i64, i64 } { ptr @.str.4851, i64 8, i64 0 }, ptr %a488 + store { ptr, i64, i64 } { ptr @.str.5058, i64 8, i64 0 }, ptr %a488 %t489 = call i32 @finch_str_eq(ptr %a487, ptr %a488) %t490 = icmp ne i32 %t489, 0 - br i1 %t490, label %then7589, label %else7590 -then7589: + br i1 %t490, label %then7982, label %else7983 +then7982: %t491 = load ptr, ptr %a1 %t492 = load ptr, ptr %a1 %t493 = load %S.ast.Type, ptr %a345 @@ -76884,11 +80817,11 @@ then7589: call void @finch_arr_reserve(ptr %a262, i64 %t508, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t509 = load ptr, ptr %a262 %t510 = getelementptr inbounds { ptr, i64, i64 }, ptr %t509, i64 %t507 - store { ptr, i64, i64 } { ptr @.str.4852, i64 3, i64 0 }, ptr %t510 + store { ptr, i64, i64 } { ptr @.str.5059, i64 3, i64 0 }, ptr %t510 store i64 %t508, ptr %t506 %t511 = getelementptr inbounds { ptr, i64, i64 }, ptr %a263, i32 0, i32 1 %t512 = load { ptr, i64, i64 }, ptr %a497 - store { ptr, i64, i64 } { ptr @.str.4853, i64 4, i64 0 }, ptr %a514 + store { ptr, i64, i64 } { ptr @.str.5060, i64 4, i64 0 }, ptr %a514 store { ptr, i64, i64 } %t512, ptr %a515 call void @finch_str_concat(ptr %a513, ptr %a514, ptr %a515) %t516 = load { ptr, i64, i64 }, ptr %a513 @@ -76900,18 +80833,18 @@ then7589: store { ptr, i64, i64 } %t516, ptr %t520 store i64 %t518, ptr %t511 call void @finch_str_drop(ptr %a497) - br label %endif7591 -else7590: + br label %endif7984 +else7983: %t521 = getelementptr inbounds %S.gen.Abi, ptr %a357, i32 0, i32 0 %t522 = load { ptr, i64, i64 }, ptr %t521 store { ptr, i64, i64 } %t522, ptr %a523 - store { ptr, i64, i64 } { ptr @.str.4854, i64 6, i64 0 }, ptr %a524 + store { ptr, i64, i64 } { ptr @.str.5061, i64 6, i64 0 }, ptr %a524 %t525 = call i32 @finch_str_eq(ptr %a523, ptr %a524) %t526 = icmp ne i32 %t525, 0 - br i1 %t526, label %then7592, label %else7593 -then7592: + br i1 %t526, label %then7985, label %else7986 +then7985: %t527 = load ptr, ptr %a1 - %t528 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t527, { ptr, i64, i64 } { ptr @.str.4855, i64 9, i64 0 }) + %t528 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t527, { ptr, i64, i64 } { ptr @.str.5062, i64 9, i64 0 }) store { ptr, i64, i64 } %t528, ptr %a529 %t530 = load ptr, ptr %a1 %t531 = load ptr, ptr %a1 @@ -76927,34 +80860,34 @@ then7592: %t539 = getelementptr inbounds { ptr, i64, i64 }, ptr %t538, i32 0, i32 1 %t540 = load i64, ptr %t539 store i64 0, ptr %a541 - br label %for.cond7595 -for.cond7595: + br label %for.cond7988 +for.cond7988: %t542 = load i64, ptr %a541 %t543 = icmp slt i64 %t542, %t540 - br i1 %t543, label %for.body7596, label %for.end7598 -for.body7596: + br i1 %t543, label %for.body7989, label %for.end7991 +for.body7989: %t544 = load ptr, ptr %a1 %t545 = getelementptr inbounds %S.gen.Abi, ptr %a357, i32 0, i32 1 %t546 = load i64, ptr %a541 %t547 = load { ptr, i64, i64 }, ptr %t545 %t548 = extractvalue { ptr, i64, i64 } %t547, 1 %t549 = icmp uge i64 %t546, %t548 - br i1 %t549, label %range7599, label %inrange7600 -range7599: - call void @finch_panic_index(ptr @.str.4856, i64 4489, i64 %t546, i64 %t548) + br i1 %t549, label %range7992, label %inrange7993 +range7992: + call void @finch_panic_index(ptr @.str.5063, i64 4716, i64 %t546, i64 %t548) unreachable -inrange7600: +inrange7993: %t550 = extractvalue { ptr, i64, i64 } %t547, 0 %t551 = getelementptr inbounds { ptr, i64, i64 }, ptr %t550, i64 %t546 %t552 = load { ptr, i64, i64 }, ptr %t551 %t553 = load ptr, ptr %a1 %t554 = load { ptr, i64, i64 }, ptr %a529 - store { ptr, i64, i64 } { ptr @.str.4857, i64 31, i64 0 }, ptr %a556 + store { ptr, i64, i64 } { ptr @.str.5064, i64 31, i64 0 }, ptr %a556 store { ptr, i64, i64 } %t554, ptr %a557 call void @finch_str_concat(ptr %a555, ptr %a556, ptr %a557) %t558 = load { ptr, i64, i64 }, ptr %a555 store { ptr, i64, i64 } %t558, ptr %a560 - store { ptr, i64, i64 } { ptr @.str.4858, i64 6, i64 0 }, ptr %a561 + store { ptr, i64, i64 } { ptr @.str.5065, i64 6, i64 0 }, ptr %a561 call void @finch_str_concat(ptr %a559, ptr %a560, ptr %a561) store { ptr, i64, i64 } %t558, ptr %a562 call void @finch_str_drop(ptr %a562) @@ -76984,11 +80917,11 @@ inrange7600: %t582 = load { ptr, i64, i64 }, ptr %t580 %t583 = extractvalue { ptr, i64, i64 } %t582, 1 %t584 = icmp uge i64 %t581, %t583 - br i1 %t584, label %range7601, label %inrange7602 -range7601: - call void @finch_panic_index(ptr @.str.4859, i64 4490, i64 %t581, i64 %t583) + br i1 %t584, label %range7994, label %inrange7995 +range7994: + call void @finch_panic_index(ptr @.str.5066, i64 4717, i64 %t581, i64 %t583) unreachable -inrange7602: +inrange7995: %t585 = extractvalue { ptr, i64, i64 } %t582, 0 %t586 = getelementptr inbounds { ptr, i64, i64 }, ptr %t585, i64 %t581 %t587 = load { ptr, i64, i64 }, ptr %t586 @@ -77008,16 +80941,16 @@ inrange7602: %t598 = load { ptr, i64, i64 }, ptr %t596 %t599 = extractvalue { ptr, i64, i64 } %t598, 1 %t600 = icmp uge i64 %t597, %t599 - br i1 %t600, label %range7603, label %inrange7604 -range7603: - call void @finch_panic_index(ptr @.str.4860, i64 4491, i64 %t597, i64 %t599) + br i1 %t600, label %range7996, label %inrange7997 +range7996: + call void @finch_panic_index(ptr @.str.5067, i64 4718, i64 %t597, i64 %t599) unreachable -inrange7604: +inrange7997: %t601 = extractvalue { ptr, i64, i64 } %t598, 0 %t602 = getelementptr inbounds { ptr, i64, i64 }, ptr %t601, i64 %t597 %t603 = load { ptr, i64, i64 }, ptr %t602 store { ptr, i64, i64 } %t603, ptr %a605 - store { ptr, i64, i64 } { ptr @.str.4861, i64 1, i64 0 }, ptr %a606 + store { ptr, i64, i64 } { ptr @.str.5068, i64 1, i64 0 }, ptr %a606 call void @finch_str_concat(ptr %a604, ptr %a605, ptr %a606) %t607 = load { ptr, i64, i64 }, ptr %a604 %t608 = load { ptr, i64, i64 }, ptr %a578 @@ -77035,16 +80968,16 @@ inrange7604: store { ptr, i64, i64 } %t613, ptr %t617 store i64 %t615, ptr %t595 call void @finch_str_drop(ptr %a578) - br label %for.step7597 -for.step7597: + br label %for.step7990 +for.step7990: %t618 = load i64, ptr %a541 %t619 = add i64 %t618, 1 store i64 %t619, ptr %a541 - br label %for.cond7595 -for.end7598: + br label %for.cond7988 +for.end7991: call void @finch_str_drop(ptr %a529) - br label %endif7594 -else7593: + br label %endif7987 +else7986: %t620 = getelementptr inbounds { ptr, i64, i64 }, ptr %a262, i32 0, i32 1 %t621 = load ptr, ptr %a1 %t622 = load %S.ast.Type, ptr %a345 @@ -77070,17 +81003,17 @@ else7593: %t637 = getelementptr inbounds %S.ast.Type, ptr %a345, i32 0, i32 0 %t638 = load { ptr, i64, i64 }, ptr %t637 store { ptr, i64, i64 } %t638, ptr %a639 - store { ptr, i64, i64 } { ptr @.str.4862, i64 3, i64 0 }, ptr %a640 + store { ptr, i64, i64 } { ptr @.str.5069, i64 3, i64 0 }, ptr %a640 %t641 = call i32 @finch_str_eq(ptr %a639, ptr %a640) %t642 = icmp ne i32 %t641, 0 - br i1 %t642, label %then7605, label %else7606 -then7605: + br i1 %t642, label %then7998, label %else7999 +then7998: %t643 = getelementptr inbounds { ptr, i64, i64 }, ptr %a263, i32 0, i32 1 %t644 = load ptr, ptr %a1 %t645 = getelementptr inbounds %S.gen.Val, ptr %a403, i32 0, i32 0 %t646 = load { ptr, i64, i64 }, ptr %t645 %t647 = call { ptr, i64, i64 } @finch.gen.cstr(ptr %t644, { ptr, i64, i64 } %t646) - store { ptr, i64, i64 } { ptr @.str.4863, i64 4, i64 0 }, ptr %a649 + store { ptr, i64, i64 } { ptr @.str.5070, i64 4, i64 0 }, ptr %a649 store { ptr, i64, i64 } %t647, ptr %a650 call void @finch_str_concat(ptr %a648, ptr %a649, ptr %a650) store { ptr, i64, i64 } %t647, ptr %a651 @@ -77093,8 +81026,8 @@ then7605: %t656 = getelementptr inbounds { ptr, i64, i64 }, ptr %t655, i64 %t653 store { ptr, i64, i64 } %t652, ptr %t656 store i64 %t654, ptr %t643 - br label %endif7607 -else7606: + br label %endif8000 +else7999: %t657 = getelementptr inbounds { ptr, i64, i64 }, ptr %a263, i32 0, i32 1 %t658 = load ptr, ptr %a1 %t659 = load %S.ast.Type, ptr %a345 @@ -77111,7 +81044,7 @@ else7606: call void @finch_str_drop(ptr %a668) %t669 = load { ptr, i64, i64 }, ptr %a664 store { ptr, i64, i64 } %t669, ptr %a671 - store { ptr, i64, i64 } { ptr @.str.4864, i64 1, i64 0 }, ptr %a672 + store { ptr, i64, i64 } { ptr @.str.5071, i64 1, i64 0 }, ptr %a672 call void @finch_str_concat(ptr %a670, ptr %a671, ptr %a672) store { ptr, i64, i64 } %t669, ptr %a673 call void @finch_str_drop(ptr %a673) @@ -77131,30 +81064,30 @@ else7606: %t685 = getelementptr inbounds { ptr, i64, i64 }, ptr %t684, i64 %t682 store { ptr, i64, i64 } %t681, ptr %t685 store i64 %t683, ptr %t657 - br label %endif7607 -endif7607: - br label %endif7594 -endif7594: - br label %endif7591 -endif7591: - br label %endif7588 -endif7588: + br label %endif8000 +endif8000: + br label %endif7987 +endif7987: + br label %endif7984 +endif7984: + br label %endif7981 +endif7981: call void @finch.drop.S_gen_Val(ptr %a403) call void @finch.drop.S_gen_Abi(ptr %a357) call void @finch.drop.S_ast_Type(ptr %a345) - br label %for.step7573 -endif7577: + br label %for.step7966 +endif7970: %t686 = load ptr, ptr %a1 %t687 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t688 = load i64, ptr %a327 %t689 = load { ptr, i64, i64 }, ptr %t687 %t690 = extractvalue { ptr, i64, i64 } %t689, 1 %t691 = icmp uge i64 %t688, %t690 - br i1 %t691, label %range7608, label %inrange7609 -range7608: - call void @finch_panic_index(ptr @.str.4865, i64 4504, i64 %t688, i64 %t690) + br i1 %t691, label %range8001, label %inrange8002 +range8001: + call void @finch_panic_index(ptr @.str.5072, i64 4731, i64 %t688, i64 %t690) unreachable -inrange7609: +inrange8002: %t692 = extractvalue { ptr, i64, i64 } %t689, 0 %t693 = getelementptr inbounds %S.ast.Node, ptr %t692, i64 %t688 %t694 = load %S.ast.Node, ptr %t693 @@ -77169,28 +81102,28 @@ inrange7609: %t703 = getelementptr inbounds %S.ast.Type, ptr %a702, i32 0, i32 0 %t704 = load { ptr, i64, i64 }, ptr %t703 store { ptr, i64, i64 } %t704, ptr %a705 - store { ptr, i64, i64 } { ptr @.str.4866, i64 4, i64 0 }, ptr %a706 + store { ptr, i64, i64 } { ptr @.str.5073, i64 4, i64 0 }, ptr %a706 %t707 = call i32 @finch_str_eq(ptr %a705, ptr %a706) %t708 = icmp ne i32 %t707, 0 - br i1 %t708, label %then7610, label %endif7612 -then7610: + br i1 %t708, label %then8003, label %endif8005 +then8003: %t709 = load ptr, ptr %a1 %t710 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t711 = load i64, ptr %a327 %t712 = load { ptr, i64, i64 }, ptr %t710 %t713 = extractvalue { ptr, i64, i64 } %t712, 1 %t714 = icmp uge i64 %t711, %t713 - br i1 %t714, label %range7613, label %inrange7614 -range7613: - call void @finch_panic_index(ptr @.str.4867, i64 4507, i64 %t711, i64 %t713) + br i1 %t714, label %range8006, label %inrange8007 +range8006: + call void @finch_panic_index(ptr @.str.5074, i64 4734, i64 %t711, i64 %t713) unreachable -inrange7614: +inrange8007: %t715 = extractvalue { ptr, i64, i64 } %t712, 0 %t716 = getelementptr inbounds %S.ast.Node, ptr %t715, i64 %t711 %t717 = load %S.ast.Node, ptr %t716 - call void @finch.gen.fail(ptr %t709, %S.ast.Node %t717, { ptr, i64, i64 } { ptr @.str.4868, i64 23, i64 0 }) - br label %endif7612 -endif7612: + call void @finch.gen.fail(ptr %t709, %S.ast.Node %t717, { ptr, i64, i64 } { ptr @.str.5075, i64 23, i64 0 }) + br label %endif8005 +endif8005: %t718 = getelementptr inbounds { ptr, i64, i64 }, ptr %a317, i32 0, i32 1 %t719 = load %S.gen.Val, ptr %a696 store %S.gen.Val %t719, ptr %a720 @@ -77209,43 +81142,43 @@ endif7612: %t729 = getelementptr inbounds %S.ast.Type, ptr %a702, i32 0, i32 0 %t730 = load { ptr, i64, i64 }, ptr %t729 store { ptr, i64, i64 } %t730, ptr %a731 - store { ptr, i64, i64 } { ptr @.str.4869, i64 6, i64 0 }, ptr %a732 + store { ptr, i64, i64 } { ptr @.str.5076, i64 6, i64 0 }, ptr %a732 %t733 = call i32 @finch_str_eq(ptr %a731, ptr %a732) %t734 = icmp ne i32 %t733, 0 - br label %logic.from7615 -logic.from7615: - br i1 %t734, label %logic.end7617, label %logic.rhs7616 -logic.rhs7616: + br label %logic.from8008 +logic.from8008: + br i1 %t734, label %logic.end8010, label %logic.rhs8009 +logic.rhs8009: %t735 = getelementptr inbounds %S.ast.Type, ptr %a702, i32 0, i32 0 %t736 = load { ptr, i64, i64 }, ptr %t735 store { ptr, i64, i64 } %t736, ptr %a737 - store { ptr, i64, i64 } { ptr @.str.4870, i64 5, i64 0 }, ptr %a738 + store { ptr, i64, i64 } { ptr @.str.5077, i64 5, i64 0 }, ptr %a738 %t739 = call i32 @finch_str_eq(ptr %a737, ptr %a738) %t740 = icmp ne i32 %t739, 0 - br label %logic.rend7618 -logic.rend7618: - br label %logic.end7617 -logic.end7617: - %t741 = phi i1 [ true, %logic.from7615 ], [ %t740, %logic.rend7618 ] - br i1 %t741, label %then7619, label %endif7621 -then7619: + br label %logic.rend8011 +logic.rend8011: + br label %logic.end8010 +logic.end8010: + %t741 = phi i1 [ true, %logic.from8008 ], [ %t740, %logic.rend8011 ] + br i1 %t741, label %then8012, label %endif8014 +then8012: %t742 = load ptr, ptr %a1 %t743 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t744 = load i64, ptr %a327 %t745 = load { ptr, i64, i64 }, ptr %t743 %t746 = extractvalue { ptr, i64, i64 } %t745, 1 %t747 = icmp uge i64 %t744, %t746 - br i1 %t747, label %range7622, label %inrange7623 -range7622: - call void @finch_panic_index(ptr @.str.4871, i64 4512, i64 %t744, i64 %t746) + br i1 %t747, label %range8015, label %inrange8016 +range8015: + call void @finch_panic_index(ptr @.str.5078, i64 4739, i64 %t744, i64 %t746) unreachable -inrange7623: +inrange8016: %t748 = extractvalue { ptr, i64, i64 } %t745, 0 %t749 = getelementptr inbounds %S.ast.Node, ptr %t748, i64 %t744 %t750 = load %S.ast.Node, ptr %t749 - call void @finch.gen.fail(ptr %t742, %S.ast.Node %t750, { ptr, i64, i64 } { ptr @.str.4872, i64 68, i64 0 }) - br label %endif7621 -endif7621: + call void @finch.gen.fail(ptr %t742, %S.ast.Node %t750, { ptr, i64, i64 } { ptr @.str.5079, i64 68, i64 0 }) + br label %endif8014 +endif8014: %t751 = getelementptr inbounds %S.gen.Val, ptr %a696, i32 0, i32 0 %t752 = load { ptr, i64, i64 }, ptr %t751 store { ptr, i64, i64 } %t752, ptr %a753 @@ -77255,15 +81188,15 @@ endif7621: %t757 = getelementptr inbounds %S.ast.Type, ptr %a702, i32 0, i32 0 %t758 = load { ptr, i64, i64 }, ptr %t757 store { ptr, i64, i64 } %t758, ptr %a759 - store { ptr, i64, i64 } { ptr @.str.4873, i64 3, i64 0 }, ptr %a760 + store { ptr, i64, i64 } { ptr @.str.5080, i64 3, i64 0 }, ptr %a760 %t761 = call i32 @finch_str_eq(ptr %a759, ptr %a760) %t762 = icmp ne i32 %t761, 0 - br i1 %t762, label %then7624, label %else7625 -then7624: + br i1 %t762, label %then8017, label %else8018 +then8017: %t763 = load ptr, ptr %a1 %t764 = load { ptr, i64, i64 }, ptr %a756 %t765 = load %S.ast.Type, ptr %a702 - %t766 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4874, i64 5, i64 0 }) + %t766 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5081, i64 5, i64 0 }) %t767 = call { ptr, i64, i64 } @finch.gen.floatCast(ptr %t763, { ptr, i64, i64 } %t764, %S.ast.Type %t765, %S.ast.Type %t766) store %S.ast.Type %t766, ptr %a768 call void @finch.drop.S_ast_Type(ptr %a768) @@ -77271,21 +81204,21 @@ then7624: store { ptr, i64, i64 } %t767, ptr %a756 store { ptr, i64, i64 } %t769, ptr %a770 call void @finch_str_drop(ptr %a770) - %t771 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4875, i64 5, i64 0 }) + %t771 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5082, i64 5, i64 0 }) %t772 = load %S.ast.Type, ptr %a702 store %S.ast.Type %t771, ptr %a702 store %S.ast.Type %t772, ptr %a773 call void @finch.drop.S_ast_Type(ptr %a773) - br label %endif7626 -else7625: + br label %endif8019 +else8018: %t774 = getelementptr inbounds %S.ast.Type, ptr %a702, i32 0, i32 0 %t775 = load { ptr, i64, i64 }, ptr %t774 store { ptr, i64, i64 } %t775, ptr %a776 - store { ptr, i64, i64 } { ptr @.str.4876, i64 3, i64 0 }, ptr %a777 + store { ptr, i64, i64 } { ptr @.str.5083, i64 3, i64 0 }, ptr %a777 %t778 = call i32 @finch_str_eq(ptr %a776, ptr %a777) %t779 = icmp ne i32 %t778, 0 - br i1 %t779, label %then7627, label %else7628 -then7627: + br i1 %t779, label %then8020, label %else8021 +then8020: %t780 = load ptr, ptr %a1 %t781 = load { ptr, i64, i64 }, ptr %a756 %t782 = call { ptr, i64, i64 } @finch.gen.cstr(ptr %t780, { ptr, i64, i64 } %t781) @@ -77293,30 +81226,30 @@ then7627: store { ptr, i64, i64 } %t782, ptr %a756 store { ptr, i64, i64 } %t783, ptr %a784 call void @finch_str_drop(ptr %a784) - %t785 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4877, i64 3, i64 0 }) + %t785 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5084, i64 3, i64 0 }) %t786 = load %S.ast.Type, ptr %a702 store %S.ast.Type %t785, ptr %a702 store %S.ast.Type %t786, ptr %a787 call void @finch.drop.S_ast_Type(ptr %a787) - br label %endif7629 -else7628: + br label %endif8022 +else8021: %t788 = getelementptr inbounds %S.ast.Type, ptr %a702, i32 0, i32 0 %t789 = load { ptr, i64, i64 }, ptr %t788 store { ptr, i64, i64 } %t789, ptr %a790 - store { ptr, i64, i64 } { ptr @.str.4878, i64 4, i64 0 }, ptr %a791 + store { ptr, i64, i64 } { ptr @.str.5085, i64 4, i64 0 }, ptr %a791 %t792 = call i32 @finch_str_eq(ptr %a790, ptr %a791) %t793 = icmp ne i32 %t792, 0 - br i1 %t793, label %then7630, label %else7631 -then7630: + br i1 %t793, label %then8023, label %else8024 +then8023: %t794 = load ptr, ptr %a1 %t795 = getelementptr inbounds %S.gen.Val, ptr %a696, i32 0, i32 0 %t796 = load { ptr, i64, i64 }, ptr %t795 - store { ptr, i64, i64 } { ptr @.str.4879, i64 8, i64 0 }, ptr %a798 + store { ptr, i64, i64 } { ptr @.str.5086, i64 8, i64 0 }, ptr %a798 store { ptr, i64, i64 } %t796, ptr %a799 call void @finch_str_concat(ptr %a797, ptr %a798, ptr %a799) %t800 = load { ptr, i64, i64 }, ptr %a797 store { ptr, i64, i64 } %t800, ptr %a802 - store { ptr, i64, i64 } { ptr @.str.4880, i64 7, i64 0 }, ptr %a803 + store { ptr, i64, i64 } { ptr @.str.5087, i64 7, i64 0 }, ptr %a803 call void @finch_str_concat(ptr %a801, ptr %a802, ptr %a803) store { ptr, i64, i64 } %t800, ptr %a804 call void @finch_str_drop(ptr %a804) @@ -77328,48 +81261,48 @@ then7630: store { ptr, i64, i64 } %t806, ptr %a756 store { ptr, i64, i64 } %t808, ptr %a809 call void @finch_str_drop(ptr %a809) - %t810 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4881, i64 3, i64 0 }) + %t810 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5088, i64 3, i64 0 }) %t811 = load %S.ast.Type, ptr %a702 store %S.ast.Type %t810, ptr %a702 store %S.ast.Type %t811, ptr %a812 call void @finch.drop.S_ast_Type(ptr %a812) - br label %endif7632 -else7631: + br label %endif8025 +else8024: %t813 = load %S.ast.Type, ptr %a702 %t814 = call i1 @finch.gen.isInt(%S.ast.Type %t813) - br label %logic.from7633 -logic.from7633: - br i1 %t814, label %logic.end7635, label %logic.rhs7634 -logic.rhs7634: + br label %logic.from8026 +logic.from8026: + br i1 %t814, label %logic.end8028, label %logic.rhs8027 +logic.rhs8027: %t815 = getelementptr inbounds %S.ast.Type, ptr %a702, i32 0, i32 0 %t816 = load { ptr, i64, i64 }, ptr %t815 store { ptr, i64, i64 } %t816, ptr %a817 - store { ptr, i64, i64 } { ptr @.str.4882, i64 4, i64 0 }, ptr %a818 + store { ptr, i64, i64 } { ptr @.str.5089, i64 4, i64 0 }, ptr %a818 %t819 = call i32 @finch_str_eq(ptr %a817, ptr %a818) %t820 = icmp ne i32 %t819, 0 - br label %logic.rend7636 -logic.rend7636: - br label %logic.end7635 -logic.end7635: - %t821 = phi i1 [ true, %logic.from7633 ], [ %t820, %logic.rend7636 ] - br label %logic.from7637 -logic.from7637: - br i1 %t821, label %logic.rhs7638, label %logic.end7639 -logic.rhs7638: + br label %logic.rend8029 +logic.rend8029: + br label %logic.end8028 +logic.end8028: + %t821 = phi i1 [ true, %logic.from8026 ], [ %t820, %logic.rend8029 ] + br label %logic.from8030 +logic.from8030: + br i1 %t821, label %logic.rhs8031, label %logic.end8032 +logic.rhs8031: %t822 = load %S.ast.Type, ptr %a702 %t823 = call i64 @finch.gen.bitsOf(%S.ast.Type %t822) %t824 = icmp slt i64 %t823, 32 - br label %logic.rend7640 -logic.rend7640: - br label %logic.end7639 -logic.end7639: - %t825 = phi i1 [ false, %logic.from7637 ], [ %t824, %logic.rend7640 ] - br i1 %t825, label %then7641, label %endif7643 -then7641: + br label %logic.rend8033 +logic.rend8033: + br label %logic.end8032 +logic.end8032: + %t825 = phi i1 [ false, %logic.from8030 ], [ %t824, %logic.rend8033 ] + br i1 %t825, label %then8034, label %endif8036 +then8034: %t826 = load ptr, ptr %a1 %t827 = load { ptr, i64, i64 }, ptr %a756 %t828 = load %S.ast.Type, ptr %a702 - %t829 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4883, i64 3, i64 0 }) + %t829 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5090, i64 3, i64 0 }) %t830 = call { ptr, i64, i64 } @finch.gen.intCast(ptr %t826, { ptr, i64, i64 } %t827, %S.ast.Type %t828, %S.ast.Type %t829) store %S.ast.Type %t829, ptr %a831 call void @finch.drop.S_ast_Type(ptr %a831) @@ -77377,25 +81310,25 @@ then7641: store { ptr, i64, i64 } %t830, ptr %a756 store { ptr, i64, i64 } %t832, ptr %a833 call void @finch_str_drop(ptr %a833) - %t834 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4884, i64 3, i64 0 }) + %t834 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5091, i64 3, i64 0 }) %t835 = load %S.ast.Type, ptr %a702 store %S.ast.Type %t834, ptr %a702 store %S.ast.Type %t835, ptr %a836 call void @finch.drop.S_ast_Type(ptr %a836) - br label %endif7643 -endif7643: - br label %endif7632 -endif7632: - br label %endif7629 -endif7629: - br label %endif7626 -endif7626: + br label %endif8036 +endif8036: + br label %endif8025 +endif8025: + br label %endif8022 +endif8022: + br label %endif8019 +endif8019: %t837 = getelementptr inbounds { ptr, i64, i64 }, ptr %a263, i32 0, i32 1 %t838 = load ptr, ptr %a1 %t839 = load %S.ast.Type, ptr %a702 %t840 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t838, %S.ast.Type %t839) store { ptr, i64, i64 } %t840, ptr %a842 - store { ptr, i64, i64 } { ptr @.str.4885, i64 1, i64 0 }, ptr %a843 + store { ptr, i64, i64 } { ptr @.str.5092, i64 1, i64 0 }, ptr %a843 call void @finch_str_concat(ptr %a841, ptr %a842, ptr %a843) store { ptr, i64, i64 } %t840, ptr %a844 call void @finch_str_drop(ptr %a844) @@ -77417,29 +81350,29 @@ endif7626: call void @finch_str_drop(ptr %a756) call void @finch.drop.S_ast_Type(ptr %a702) call void @finch.drop.S_gen_Val(ptr %a696) - br label %for.step7573 -for.step7573: + br label %for.step7966 +for.step7966: %t856 = load i64, ptr %a327 %t857 = add i64 %t856, 1 store i64 %t857, ptr %a327 - br label %for.cond7571 -for.end7574: + br label %for.cond7964 +for.end7967: %t858 = getelementptr inbounds %S.gen.Plan, ptr %a261, i32 0, i32 2 %t859 = load { ptr, i64, i64 }, ptr %t858 store { ptr, i64, i64 } %t859, ptr %a860 call void @finch_str_copy(ptr %a861, ptr %a860) %t862 = load { ptr, i64, i64 }, ptr %a861 store { ptr, i64, i64 } %t862, ptr %a863 - store { ptr, i64, i64 } { ptr @.str.4886, i64 0, i64 0 }, ptr %a864 + store { ptr, i64, i64 } { ptr @.str.5093, i64 0, i64 0 }, ptr %a864 %t865 = getelementptr inbounds %S.gen.Plan, ptr %a261, i32 0, i32 0 %t866 = getelementptr inbounds %S.gen.Abi, ptr %t865, i32 0, i32 0 %t867 = load { ptr, i64, i64 }, ptr %t866 store { ptr, i64, i64 } %t867, ptr %a868 - store { ptr, i64, i64 } { ptr @.str.4887, i64 6, i64 0 }, ptr %a869 + store { ptr, i64, i64 } { ptr @.str.5094, i64 6, i64 0 }, ptr %a869 %t870 = call i32 @finch_str_eq(ptr %a868, ptr %a869) %t871 = icmp ne i32 %t870, 0 - br i1 %t871, label %then7644, label %endif7646 -then7644: + br i1 %t871, label %then8037, label %endif8039 +then8037: %t872 = load ptr, ptr %a1 %t873 = load %S.ast.Type, ptr %a219 %t874 = call { ptr, i64, i64 } @finch.gen.cExt(ptr %t872, %S.ast.Type %t873) @@ -77447,42 +81380,42 @@ then7644: store { ptr, i64, i64 } %t874, ptr %a864 store { ptr, i64, i64 } %t875, ptr %a876 call void @finch_str_drop(ptr %a876) - br label %endif7646 -endif7646: - store { ptr, i64, i64 } { ptr @.str.4888, i64 0, i64 0 }, ptr %a877 + br label %endif8039 +endif8039: + store { ptr, i64, i64 } { ptr @.str.5095, i64 0, i64 0 }, ptr %a877 %t878 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 4 %t879 = load i1, ptr %t878 - br i1 %t879, label %then7647, label %endif7649 -then7647: + br i1 %t879, label %then8040, label %endif8042 +then8040: %t880 = load { ptr, i64, i64 }, ptr %a877 - store { ptr, i64, i64 } { ptr @.str.4889, i64 5, i64 0 }, ptr %a877 + store { ptr, i64, i64 } { ptr @.str.5096, i64 5, i64 0 }, ptr %a877 store { ptr, i64, i64 } %t880, ptr %a881 call void @finch_str_drop(ptr %a881) %t882 = getelementptr inbounds { ptr, i64, i64 }, ptr %a262, i32 0, i32 1 %t883 = load i64, ptr %t882 %t884 = icmp eq i64 %t883, 0 - br i1 %t884, label %then7650, label %endif7652 -then7650: + br i1 %t884, label %then8043, label %endif8045 +then8043: %t885 = load { ptr, i64, i64 }, ptr %a877 - store { ptr, i64, i64 } { ptr @.str.4890, i64 3, i64 0 }, ptr %a877 + store { ptr, i64, i64 } { ptr @.str.5097, i64 3, i64 0 }, ptr %a877 store { ptr, i64, i64 } %t885, ptr %a886 call void @finch_str_drop(ptr %a886) - br label %endif7652 -endif7652: - br label %endif7649 -endif7649: + br label %endif8045 +endif8045: + br label %endif8042 +endif8042: %t887 = load ptr, ptr %a1 %t888 = icmp eq ptr %t887, null - br i1 %t888, label %panic7653, label %ok7654 -panic7653: - call void @finch_panic(ptr @.str.4891, i64 4543, ptr @.str.4892) + br i1 %t888, label %panic8046, label %ok8047 +panic8046: + call void @finch_panic(ptr @.str.5098, i64 4770, ptr @.str.5099) unreachable -ok7654: - %t889 = getelementptr inbounds %S.gen.Gen, ptr %t887, i32 0, i32 39 +ok8047: + %t889 = getelementptr inbounds %S.gen.Gen, ptr %t887, i32 0, i32 40 %t890 = getelementptr inbounds { ptr, i64, i64 }, ptr %t889, i32 0, i32 1 %t891 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 0 %t892 = load { ptr, i64, i64 }, ptr %t891 - store { ptr, i64, i64 } { ptr @.str.4893, i64 2, i64 0 }, ptr %a894 + store { ptr, i64, i64 } { ptr @.str.5100, i64 2, i64 0 }, ptr %a894 store { ptr, i64, i64 } %t892, ptr %a895 call void @finch_str_concat(ptr %a893, ptr %a894, ptr %a895) %t896 = load { ptr, i64, i64 }, ptr %a893 @@ -77490,46 +81423,46 @@ ok7654: %t898 = load i64, ptr %t890 %t899 = load ptr, ptr %t889 store i64 0, ptr %a900 - br label %find.cond7655 -find.cond7655: + br label %find.cond8048 +find.cond8048: %t901 = load i64, ptr %a900 %t902 = icmp slt i64 %t901, %t898 - br i1 %t902, label %find.body7656, label %find.end7659 -find.body7656: + br i1 %t902, label %find.body8049, label %find.end8052 +find.body8049: %t903 = getelementptr inbounds { ptr, i64, i64 }, ptr %t899, i64 %t901 %t904 = load { ptr, i64, i64 }, ptr %t903 store { ptr, i64, i64 } %t904, ptr %a905 store { ptr, i64, i64 } %t896, ptr %a906 %t907 = call i32 @finch_str_eq(ptr %a905, ptr %a906) %t908 = icmp ne i32 %t907, 0 - br i1 %t908, label %find.hit7657, label %find.next7658 -find.hit7657: + br i1 %t908, label %find.hit8050, label %find.next8051 +find.hit8050: store i64 %t901, ptr %a897 - br label %find.end7659 -find.next7658: + br label %find.end8052 +find.next8051: %t909 = add i64 %t901, 1 store i64 %t909, ptr %a900 - br label %find.cond7655 -find.end7659: + br label %find.cond8048 +find.end8052: store { ptr, i64, i64 } %t896, ptr %a910 call void @finch_str_drop(ptr %a910) %t911 = load i64, ptr %a897 %t912 = icmp sge i64 %t911, 0 %t913 = xor i1 %t912, true - br i1 %t913, label %then7660, label %endif7662 -then7660: + br i1 %t913, label %then8053, label %endif8055 +then8053: %t914 = load ptr, ptr %a1 %t915 = icmp eq ptr %t914, null - br i1 %t915, label %panic7663, label %ok7664 -panic7663: - call void @finch_panic(ptr @.str.4894, i64 4544, ptr @.str.4895) + br i1 %t915, label %panic8056, label %ok8057 +panic8056: + call void @finch_panic(ptr @.str.5101, i64 4771, ptr @.str.5102) unreachable -ok7664: - %t916 = getelementptr inbounds %S.gen.Gen, ptr %t914, i32 0, i32 39 +ok8057: + %t916 = getelementptr inbounds %S.gen.Gen, ptr %t914, i32 0, i32 40 %t917 = getelementptr inbounds { ptr, i64, i64 }, ptr %t916, i32 0, i32 1 %t918 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 0 %t919 = load { ptr, i64, i64 }, ptr %t918 - store { ptr, i64, i64 } { ptr @.str.4896, i64 2, i64 0 }, ptr %a921 + store { ptr, i64, i64 } { ptr @.str.5103, i64 2, i64 0 }, ptr %a921 store { ptr, i64, i64 } %t919, ptr %a922 call void @finch_str_concat(ptr %a920, ptr %a921, ptr %a922) %t923 = load { ptr, i64, i64 }, ptr %a920 @@ -77544,24 +81477,24 @@ ok7664: %t929 = load { ptr, i64, i64 }, ptr %t928 %t930 = call i1 @finch.gen.runtimeDeclares({ ptr, i64, i64 } %t929) %t931 = xor i1 %t930, true - br i1 %t931, label %then7665, label %endif7667 -then7665: + br i1 %t931, label %then8058, label %endif8060 +then8058: %t932 = load ptr, ptr %a1 %t933 = icmp eq ptr %t932, null - br i1 %t933, label %panic7668, label %ok7669 -panic7668: - call void @finch_panic(ptr @.str.4897, i64 4546, ptr @.str.4898) + br i1 %t933, label %panic8061, label %ok8062 +panic8061: + call void @finch_panic(ptr @.str.5104, i64 4773, ptr @.str.5105) unreachable -ok7669: +ok8062: %t934 = getelementptr inbounds %S.gen.Gen, ptr %t932, i32 0, i32 2 %t935 = getelementptr inbounds { ptr, i64, i64 }, ptr %t934, i32 0, i32 1 %t936 = load { ptr, i64, i64 }, ptr %a864 - store { ptr, i64, i64 } { ptr @.str.4899, i64 7, i64 0 }, ptr %a938 + store { ptr, i64, i64 } { ptr @.str.5106, i64 7, i64 0 }, ptr %a938 store { ptr, i64, i64 } %t936, ptr %a939 call void @finch_str_concat(ptr %a937, ptr %a938, ptr %a939) %t940 = load { ptr, i64, i64 }, ptr %a937 store { ptr, i64, i64 } %t940, ptr %a942 - store { ptr, i64, i64 } { ptr @.str.4900, i64 1, i64 0 }, ptr %a943 + store { ptr, i64, i64 } { ptr @.str.5107, i64 1, i64 0 }, ptr %a943 call void @finch_str_concat(ptr %a941, ptr %a942, ptr %a943) store { ptr, i64, i64 } %t940, ptr %a944 call void @finch_str_drop(ptr %a944) @@ -77574,7 +81507,7 @@ ok7669: call void @finch_str_drop(ptr %a950) %t951 = load { ptr, i64, i64 }, ptr %a947 store { ptr, i64, i64 } %t951, ptr %a953 - store { ptr, i64, i64 } { ptr @.str.4901, i64 2, i64 0 }, ptr %a954 + store { ptr, i64, i64 } { ptr @.str.5108, i64 2, i64 0 }, ptr %a954 call void @finch_str_concat(ptr %a952, ptr %a953, ptr %a954) store { ptr, i64, i64 } %t951, ptr %a955 call void @finch_str_drop(ptr %a955) @@ -77588,13 +81521,13 @@ ok7669: call void @finch_str_drop(ptr %a962) %t963 = load { ptr, i64, i64 }, ptr %a959 store { ptr, i64, i64 } %t963, ptr %a965 - store { ptr, i64, i64 } { ptr @.str.4902, i64 1, i64 0 }, ptr %a966 + store { ptr, i64, i64 } { ptr @.str.5109, i64 1, i64 0 }, ptr %a966 call void @finch_str_concat(ptr %a964, ptr %a965, ptr %a966) store { ptr, i64, i64 } %t963, ptr %a967 call void @finch_str_drop(ptr %a967) %t968 = load { ptr, i64, i64 }, ptr %a964 %t969 = getelementptr inbounds { ptr, i64, i64 }, ptr %a262, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.4903, i64 2, i64 0 }, ptr %a970 + store { ptr, i64, i64 } { ptr @.str.5110, i64 2, i64 0 }, ptr %a970 call void @finch_str_join(ptr %a971, ptr %a262, ptr %a970) %t972 = load { ptr, i64, i64 }, ptr %a971 store { ptr, i64, i64 } %t968, ptr %a974 @@ -77613,7 +81546,7 @@ ok7669: call void @finch_str_drop(ptr %a983) %t984 = load { ptr, i64, i64 }, ptr %a980 store { ptr, i64, i64 } %t984, ptr %a986 - store { ptr, i64, i64 } { ptr @.str.4904, i64 1, i64 0 }, ptr %a987 + store { ptr, i64, i64 } { ptr @.str.5111, i64 1, i64 0 }, ptr %a987 call void @finch_str_concat(ptr %a985, ptr %a986, ptr %a987) store { ptr, i64, i64 } %t984, ptr %a988 call void @finch_str_drop(ptr %a988) @@ -77625,20 +81558,20 @@ ok7669: %t993 = getelementptr inbounds { ptr, i64, i64 }, ptr %t992, i64 %t990 store { ptr, i64, i64 } %t989, ptr %t993 store i64 %t991, ptr %t935 - br label %endif7667 -endif7667: - br label %endif7662 -endif7662: - store { ptr, i64, i64 } { ptr @.str.4905, i64 0, i64 0 }, ptr %a994 + br label %endif8060 +endif8060: + br label %endif8055 +endif8055: + store { ptr, i64, i64 } { ptr @.str.5112, i64 0, i64 0 }, ptr %a994 %t995 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 4 %t996 = load i1, ptr %t995 - br i1 %t996, label %then7670, label %endif7672 -then7670: + br i1 %t996, label %then8063, label %endif8065 +then8063: %t997 = getelementptr inbounds { ptr, i64, i64 }, ptr %a262, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.4907, i64 2, i64 0 }, ptr %a998 + store { ptr, i64, i64 } { ptr @.str.5114, i64 2, i64 0 }, ptr %a998 call void @finch_str_join(ptr %a999, ptr %a262, ptr %a998) %t1000 = load { ptr, i64, i64 }, ptr %a999 - store { ptr, i64, i64 } { ptr @.str.4906, i64 2, i64 0 }, ptr %a1002 + store { ptr, i64, i64 } { ptr @.str.5113, i64 2, i64 0 }, ptr %a1002 store { ptr, i64, i64 } %t1000, ptr %a1003 call void @finch_str_concat(ptr %a1001, ptr %a1002, ptr %a1003) store { ptr, i64, i64 } %t1000, ptr %a1004 @@ -77652,7 +81585,7 @@ then7670: call void @finch_str_drop(ptr %a1010) %t1011 = load { ptr, i64, i64 }, ptr %a1007 store { ptr, i64, i64 } %t1011, ptr %a1013 - store { ptr, i64, i64 } { ptr @.str.4908, i64 1, i64 0 }, ptr %a1014 + store { ptr, i64, i64 } { ptr @.str.5115, i64 1, i64 0 }, ptr %a1014 call void @finch_str_concat(ptr %a1012, ptr %a1013, ptr %a1014) store { ptr, i64, i64 } %t1011, ptr %a1015 call void @finch_str_drop(ptr %a1015) @@ -77661,15 +81594,15 @@ then7670: store { ptr, i64, i64 } %t1016, ptr %a994 store { ptr, i64, i64 } %t1017, ptr %a1018 call void @finch_str_drop(ptr %a1018) - br label %endif7672 -endif7672: + br label %endif8065 +endif8065: %t1019 = load { ptr, i64, i64 }, ptr %a864 - store { ptr, i64, i64 } { ptr @.str.4909, i64 4, i64 0 }, ptr %a1021 + store { ptr, i64, i64 } { ptr @.str.5116, i64 4, i64 0 }, ptr %a1021 store { ptr, i64, i64 } %t1019, ptr %a1022 call void @finch_str_concat(ptr %a1020, ptr %a1021, ptr %a1022) %t1023 = load { ptr, i64, i64 }, ptr %a1020 store { ptr, i64, i64 } %t1023, ptr %a1025 - store { ptr, i64, i64 } { ptr @.str.4910, i64 1, i64 0 }, ptr %a1026 + store { ptr, i64, i64 } { ptr @.str.5117, i64 1, i64 0 }, ptr %a1026 call void @finch_str_concat(ptr %a1024, ptr %a1025, ptr %a1026) store { ptr, i64, i64 } %t1023, ptr %a1027 call void @finch_str_drop(ptr %a1027) @@ -77689,7 +81622,7 @@ endif7672: call void @finch_str_drop(ptr %a1039) %t1040 = load { ptr, i64, i64 }, ptr %a1036 store { ptr, i64, i64 } %t1040, ptr %a1042 - store { ptr, i64, i64 } { ptr @.str.4911, i64 2, i64 0 }, ptr %a1043 + store { ptr, i64, i64 } { ptr @.str.5118, i64 2, i64 0 }, ptr %a1043 call void @finch_str_concat(ptr %a1041, ptr %a1042, ptr %a1043) store { ptr, i64, i64 } %t1040, ptr %a1044 call void @finch_str_drop(ptr %a1044) @@ -77703,13 +81636,13 @@ endif7672: call void @finch_str_drop(ptr %a1051) %t1052 = load { ptr, i64, i64 }, ptr %a1048 store { ptr, i64, i64 } %t1052, ptr %a1054 - store { ptr, i64, i64 } { ptr @.str.4912, i64 1, i64 0 }, ptr %a1055 + store { ptr, i64, i64 } { ptr @.str.5119, i64 1, i64 0 }, ptr %a1055 call void @finch_str_concat(ptr %a1053, ptr %a1054, ptr %a1055) store { ptr, i64, i64 } %t1052, ptr %a1056 call void @finch_str_drop(ptr %a1056) %t1057 = load { ptr, i64, i64 }, ptr %a1053 %t1058 = getelementptr inbounds { ptr, i64, i64 }, ptr %a263, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.4913, i64 2, i64 0 }, ptr %a1059 + store { ptr, i64, i64 } { ptr @.str.5120, i64 2, i64 0 }, ptr %a1059 call void @finch_str_join(ptr %a1060, ptr %a263, ptr %a1059) %t1061 = load { ptr, i64, i64 }, ptr %a1060 store { ptr, i64, i64 } %t1057, ptr %a1063 @@ -77721,7 +81654,7 @@ endif7672: call void @finch_str_drop(ptr %a1066) %t1067 = load { ptr, i64, i64 }, ptr %a1062 store { ptr, i64, i64 } %t1067, ptr %a1069 - store { ptr, i64, i64 } { ptr @.str.4914, i64 1, i64 0 }, ptr %a1070 + store { ptr, i64, i64 } { ptr @.str.5121, i64 1, i64 0 }, ptr %a1070 call void @finch_str_concat(ptr %a1068, ptr %a1069, ptr %a1070) store { ptr, i64, i64 } %t1067, ptr %a1071 call void @finch_str_drop(ptr %a1071) @@ -77730,11 +81663,11 @@ endif7672: %t1074 = getelementptr inbounds %S.ast.Type, ptr %a219, i32 0, i32 0 %t1075 = load { ptr, i64, i64 }, ptr %t1074 store { ptr, i64, i64 } %t1075, ptr %a1076 - store { ptr, i64, i64 } { ptr @.str.4915, i64 4, i64 0 }, ptr %a1077 + store { ptr, i64, i64 } { ptr @.str.5122, i64 4, i64 0 }, ptr %a1077 %t1078 = call i32 @finch_str_eq(ptr %a1076, ptr %a1077) %t1079 = icmp ne i32 %t1078, 0 - br i1 %t1079, label %then7673, label %endif7675 -then7673: + br i1 %t1079, label %then8066, label %endif8068 +then8066: %t1080 = load ptr, ptr %a1 %t1081 = load { ptr, i64, i64 }, ptr %a1073 call void @finch.gen.emit(ptr %t1080, { ptr, i64, i64 } %t1081) @@ -77760,11 +81693,11 @@ then7673: call void @finch.drop.arr_S_ast_Type(ptr %a225) call void @finch.drop.S_ast_Type(ptr %a219) ret %S.gen.Val %t1089 -endif7675: +endif8068: %t1090 = getelementptr inbounds %S.gen.Plan, ptr %a261, i32 0, i32 3 %t1091 = load i1, ptr %t1090 - br i1 %t1091, label %then7676, label %endif7678 -then7676: + br i1 %t1091, label %then8069, label %endif8071 +then8069: %t1092 = load ptr, ptr %a1 %t1093 = load { ptr, i64, i64 }, ptr %a1073 call void @finch.gen.emit(ptr %t1092, { ptr, i64, i64 } %t1093) @@ -77799,7 +81732,7 @@ then7676: call void @finch.drop.arr_S_ast_Type(ptr %a225) call void @finch.drop.S_ast_Type(ptr %a219) ret %S.gen.Val %t1109 -endif7678: +endif8071: %t1110 = load ptr, ptr %a1 %t1111 = load { ptr, i64, i64 }, ptr %a1073 %t1112 = call { ptr, i64, i64 } @finch.gen.op(ptr %t1110, { ptr, i64, i64 } %t1111) @@ -77812,13 +81745,13 @@ endif7678: %t1118 = getelementptr inbounds %S.gen.Abi, ptr %t1117, i32 0, i32 0 %t1119 = load { ptr, i64, i64 }, ptr %t1118 store { ptr, i64, i64 } %t1119, ptr %a1120 - store { ptr, i64, i64 } { ptr @.str.4916, i64 6, i64 0 }, ptr %a1121 + store { ptr, i64, i64 } { ptr @.str.5123, i64 6, i64 0 }, ptr %a1121 %t1122 = call i32 @finch_str_eq(ptr %a1120, ptr %a1121) %t1123 = icmp ne i32 %t1122, 0 - br i1 %t1123, label %then7679, label %endif7681 -then7679: + br i1 %t1123, label %then8072, label %endif8074 +then8072: %t1124 = load ptr, ptr %a1 - %t1125 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t1124, { ptr, i64, i64 } { ptr @.str.4917, i64 9, i64 0 }) + %t1125 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t1124, { ptr, i64, i64 } { ptr @.str.5124, i64 9, i64 0 }) store { ptr, i64, i64 } %t1125, ptr %a1126 %t1127 = load ptr, ptr %a1 %t1128 = getelementptr inbounds %S.gen.Plan, ptr %a261, i32 0, i32 0 @@ -77856,29 +81789,29 @@ then7679: call void @finch.drop.arr_S_ast_Type(ptr %a225) call void @finch.drop.S_ast_Type(ptr %a219) ret %S.gen.Val %t1145 -endif7681: +endif8074: %t1146 = getelementptr inbounds %S.ast.Type, ptr %a219, i32 0, i32 0 %t1147 = load { ptr, i64, i64 }, ptr %t1146 store { ptr, i64, i64 } %t1147, ptr %a1148 - store { ptr, i64, i64 } { ptr @.str.4918, i64 3, i64 0 }, ptr %a1149 + store { ptr, i64, i64 } { ptr @.str.5125, i64 3, i64 0 }, ptr %a1149 %t1150 = call i32 @finch_str_eq(ptr %a1148, ptr %a1149) %t1151 = icmp ne i32 %t1150, 0 - br i1 %t1151, label %then7682, label %endif7684 -then7682: + br i1 %t1151, label %then8075, label %endif8077 +then8075: %t1152 = load ptr, ptr %a1 %t1153 = call { ptr, i64, i64 } @finch.gen.strOut(ptr %t1152) store { ptr, i64, i64 } %t1153, ptr %a1154 %t1155 = load ptr, ptr %a1 %t1156 = load { ptr, i64, i64 }, ptr %a1154 - call void @finch.gen.store(ptr %t1155, { ptr, i64, i64 } { ptr @.str.4919, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.4920, i64 15, i64 0 }, { ptr, i64, i64 } %t1156) + call void @finch.gen.store(ptr %t1155, { ptr, i64, i64 } { ptr @.str.5126, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5127, i64 15, i64 0 }, { ptr, i64, i64 } %t1156) %t1157 = load ptr, ptr %a1 %t1158 = load { ptr, i64, i64 }, ptr %a1154 - store { ptr, i64, i64 } { ptr @.str.4921, i64 32, i64 0 }, ptr %a1160 + store { ptr, i64, i64 } { ptr @.str.5128, i64 32, i64 0 }, ptr %a1160 store { ptr, i64, i64 } %t1158, ptr %a1161 call void @finch_str_concat(ptr %a1159, ptr %a1160, ptr %a1161) %t1162 = load { ptr, i64, i64 }, ptr %a1159 store { ptr, i64, i64 } %t1162, ptr %a1164 - store { ptr, i64, i64 } { ptr @.str.4922, i64 6, i64 0 }, ptr %a1165 + store { ptr, i64, i64 } { ptr @.str.5129, i64 6, i64 0 }, ptr %a1165 call void @finch_str_concat(ptr %a1163, ptr %a1164, ptr %a1165) store { ptr, i64, i64 } %t1162, ptr %a1166 call void @finch_str_drop(ptr %a1166) @@ -77891,7 +81824,7 @@ then7682: call void @finch_str_drop(ptr %a1172) %t1173 = load { ptr, i64, i64 }, ptr %a1169 store { ptr, i64, i64 } %t1173, ptr %a1175 - store { ptr, i64, i64 } { ptr @.str.4923, i64 1, i64 0 }, ptr %a1176 + store { ptr, i64, i64 } { ptr @.str.5130, i64 1, i64 0 }, ptr %a1176 call void @finch_str_concat(ptr %a1174, ptr %a1175, ptr %a1176) store { ptr, i64, i64 } %t1173, ptr %a1177 call void @finch_str_drop(ptr %a1177) @@ -77901,7 +81834,7 @@ then7682: call void @finch_str_drop(ptr %a1179) %t1180 = load ptr, ptr %a1 %t1181 = load { ptr, i64, i64 }, ptr %a1154 - %t1182 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1180, { ptr, i64, i64 } { ptr @.str.4924, i64 17, i64 0 }, { ptr, i64, i64 } %t1181) + %t1182 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1180, { ptr, i64, i64 } { ptr @.str.5131, i64 17, i64 0 }, { ptr, i64, i64 } %t1181) %t1183 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t1182, 0 %t1184 = load %S.ast.Type, ptr %a219 store %S.ast.Type %t1184, ptr %a1185 @@ -77923,7 +81856,7 @@ then7682: call void @finch.drop.arr_S_ast_Type(ptr %a225) call void @finch.drop.S_ast_Type(ptr %a219) ret %S.gen.Val %t1188 -endif7684: +endif8077: %t1189 = load { ptr, i64, i64 }, ptr %a1113 store { ptr, i64, i64 } %t1189, ptr %a1190 call void @finch_str_copy(ptr %a1191, ptr %a1190) @@ -77961,14 +81894,14 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 store i64 %p2, ptr %a3 store i64 0, ptr %a4 - br label %each.cond7685 -each.cond7685: + br label %each.cond8078 +each.cond8078: %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t6 = load i64, ptr %t5 %t7 = load i64, ptr %a4 %t8 = icmp slt i64 %t7, %t6 - br i1 %t8, label %each.body7686, label %each.end7688 -each.body7686: + br i1 %t8, label %each.body8079, label %each.end8081 +each.body8079: %t9 = load ptr, ptr %a2 %t10 = getelementptr inbounds %S.gen.Val, ptr %t9, i64 %t7 %t11 = load %S.gen.Val, ptr %t10 @@ -77976,13 +81909,13 @@ each.body7686: %t13 = load ptr, ptr %a1 %t14 = load %S.gen.Val, ptr %a12 call void @finch.gen.release(ptr %t13, %S.gen.Val %t14) - br label %each.step7687 -each.step7687: + br label %each.step8080 +each.step8080: %t15 = load i64, ptr %a4 %t16 = add i64 %t15, 1 store i64 %t16, ptr %a4 - br label %each.cond7685 -each.end7688: + br label %each.cond8078 +each.end8081: %t17 = load ptr, ptr %a1 %t18 = load i64, ptr %a3 call void @finch.gen.heldEnd(ptr %t17, i64 %t18) @@ -78001,15 +81934,15 @@ entry: %t2 = mul i64 5, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t3 = call ptr @finch_alloc(i64 %t2) %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 0 - store { ptr, i64, i64 } { ptr @.str.4925, i64 6, i64 0 }, ptr %t4 + store { ptr, i64, i64 } { ptr @.str.5132, i64 6, i64 0 }, ptr %t4 %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 1 - store { ptr, i64, i64 } { ptr @.str.4926, i64 6, i64 0 }, ptr %t5 + store { ptr, i64, i64 } { ptr @.str.5133, i64 6, i64 0 }, ptr %t5 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 2 - store { ptr, i64, i64 } { ptr @.str.4927, i64 4, i64 0 }, ptr %t6 + store { ptr, i64, i64 } { ptr @.str.5134, i64 4, i64 0 }, ptr %t6 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 3 - store { ptr, i64, i64 } { ptr @.str.4928, i64 4, i64 0 }, ptr %t7 + store { ptr, i64, i64 } { ptr @.str.5135, i64 4, i64 0 }, ptr %t7 %t8 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 4 - store { ptr, i64, i64 } { ptr @.str.4929, i64 5, i64 0 }, ptr %t8 + store { ptr, i64, i64 } { ptr @.str.5136, i64 5, i64 0 }, ptr %t8 %t9 = insertvalue { ptr, i64, i64 } undef, ptr %t3, 0 %t10 = insertvalue { ptr, i64, i64 } %t9, i64 5, 1 %t11 = insertvalue { ptr, i64, i64 } %t10, i64 5, 2 @@ -78020,27 +81953,27 @@ entry: %t16 = load i64, ptr %t13 %t17 = load ptr, ptr %a12 store i64 0, ptr %a18 - br label %find.cond7689 -find.cond7689: + br label %find.cond8082 +find.cond8082: %t19 = load i64, ptr %a18 %t20 = icmp slt i64 %t19, %t16 - br i1 %t20, label %find.body7690, label %find.end7693 -find.body7690: + br i1 %t20, label %find.body8083, label %find.end8086 +find.body8083: %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t17, i64 %t19 %t22 = load { ptr, i64, i64 }, ptr %t21 store { ptr, i64, i64 } %t22, ptr %a23 store { ptr, i64, i64 } %t14, ptr %a24 %t25 = call i32 @finch_str_eq(ptr %a23, ptr %a24) %t26 = icmp ne i32 %t25, 0 - br i1 %t26, label %find.hit7691, label %find.next7692 -find.hit7691: + br i1 %t26, label %find.hit8084, label %find.next8085 +find.hit8084: store i64 %t19, ptr %a15 - br label %find.end7693 -find.next7692: + br label %find.end8086 +find.next8085: %t27 = add i64 %t19, 1 store i64 %t27, ptr %a18 - br label %find.cond7689 -find.end7693: + br label %find.cond8082 +find.end8086: %t28 = load i64, ptr %a15 %t29 = icmp sge i64 %t28, 0 call void @finch.drop.arr_str(ptr %a12) @@ -78068,51 +82001,51 @@ entry: %t2 = mul i64 23, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t3 = call ptr @finch_alloc(i64 %t2) %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 0 - store { ptr, i64, i64 } { ptr @.str.4930, i64 6, i64 0 }, ptr %t4 + store { ptr, i64, i64 } { ptr @.str.5137, i64 6, i64 0 }, ptr %t4 %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 1 - store { ptr, i64, i64 } { ptr @.str.4931, i64 4, i64 0 }, ptr %t5 + store { ptr, i64, i64 } { ptr @.str.5138, i64 4, i64 0 }, ptr %t5 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 2 - store { ptr, i64, i64 } { ptr @.str.4932, i64 7, i64 0 }, ptr %t6 + store { ptr, i64, i64 } { ptr @.str.5139, i64 7, i64 0 }, ptr %t6 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 3 - store { ptr, i64, i64 } { ptr @.str.4933, i64 5, i64 0 }, ptr %t7 + store { ptr, i64, i64 } { ptr @.str.5140, i64 5, i64 0 }, ptr %t7 %t8 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 4 - store { ptr, i64, i64 } { ptr @.str.4934, i64 5, i64 0 }, ptr %t8 + store { ptr, i64, i64 } { ptr @.str.5141, i64 5, i64 0 }, ptr %t8 %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 5 - store { ptr, i64, i64 } { ptr @.str.4935, i64 7, i64 0 }, ptr %t9 + store { ptr, i64, i64 } { ptr @.str.5142, i64 7, i64 0 }, ptr %t9 %t10 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 6 - store { ptr, i64, i64 } { ptr @.str.4936, i64 4, i64 0 }, ptr %t10 + store { ptr, i64, i64 } { ptr @.str.5143, i64 4, i64 0 }, ptr %t10 %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 7 - store { ptr, i64, i64 } { ptr @.str.4937, i64 3, i64 0 }, ptr %t11 + store { ptr, i64, i64 } { ptr @.str.5144, i64 3, i64 0 }, ptr %t11 %t12 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 8 - store { ptr, i64, i64 } { ptr @.str.4938, i64 3, i64 0 }, ptr %t12 + store { ptr, i64, i64 } { ptr @.str.5145, i64 3, i64 0 }, ptr %t12 %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 9 - store { ptr, i64, i64 } { ptr @.str.4939, i64 3, i64 0 }, ptr %t13 + store { ptr, i64, i64 } { ptr @.str.5146, i64 3, i64 0 }, ptr %t13 %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 10 - store { ptr, i64, i64 } { ptr @.str.4940, i64 5, i64 0 }, ptr %t14 + store { ptr, i64, i64 } { ptr @.str.5147, i64 5, i64 0 }, ptr %t14 %t15 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 11 - store { ptr, i64, i64 } { ptr @.str.4941, i64 4, i64 0 }, ptr %t15 + store { ptr, i64, i64 } { ptr @.str.5148, i64 4, i64 0 }, ptr %t15 %t16 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 12 - store { ptr, i64, i64 } { ptr @.str.4942, i64 6, i64 0 }, ptr %t16 + store { ptr, i64, i64 } { ptr @.str.5149, i64 6, i64 0 }, ptr %t16 %t17 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 13 - store { ptr, i64, i64 } { ptr @.str.4943, i64 4, i64 0 }, ptr %t17 + store { ptr, i64, i64 } { ptr @.str.5150, i64 4, i64 0 }, ptr %t17 %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 14 - store { ptr, i64, i64 } { ptr @.str.4944, i64 5, i64 0 }, ptr %t18 + store { ptr, i64, i64 } { ptr @.str.5151, i64 5, i64 0 }, ptr %t18 %t19 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 15 - store { ptr, i64, i64 } { ptr @.str.4945, i64 3, i64 0 }, ptr %t19 + store { ptr, i64, i64 } { ptr @.str.5152, i64 3, i64 0 }, ptr %t19 %t20 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 16 - store { ptr, i64, i64 } { ptr @.str.4946, i64 4, i64 0 }, ptr %t20 + store { ptr, i64, i64 } { ptr @.str.5153, i64 4, i64 0 }, ptr %t20 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 17 - store { ptr, i64, i64 } { ptr @.str.4947, i64 6, i64 0 }, ptr %t21 + store { ptr, i64, i64 } { ptr @.str.5154, i64 6, i64 0 }, ptr %t21 %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 18 - store { ptr, i64, i64 } { ptr @.str.4948, i64 6, i64 0 }, ptr %t22 + store { ptr, i64, i64 } { ptr @.str.5155, i64 6, i64 0 }, ptr %t22 %t23 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 19 - store { ptr, i64, i64 } { ptr @.str.4949, i64 6, i64 0 }, ptr %t23 + store { ptr, i64, i64 } { ptr @.str.5156, i64 6, i64 0 }, ptr %t23 %t24 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 20 - store { ptr, i64, i64 } { ptr @.str.4950, i64 4, i64 0 }, ptr %t24 + store { ptr, i64, i64 } { ptr @.str.5157, i64 4, i64 0 }, ptr %t24 %t25 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 21 - store { ptr, i64, i64 } { ptr @.str.4951, i64 5, i64 0 }, ptr %t25 + store { ptr, i64, i64 } { ptr @.str.5158, i64 5, i64 0 }, ptr %t25 %t26 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 22 - store { ptr, i64, i64 } { ptr @.str.4952, i64 6, i64 0 }, ptr %t26 + store { ptr, i64, i64 } { ptr @.str.5159, i64 6, i64 0 }, ptr %t26 %t27 = insertvalue { ptr, i64, i64 } undef, ptr %t3, 0 %t28 = insertvalue { ptr, i64, i64 } %t27, i64 23, 1 %t29 = insertvalue { ptr, i64, i64 } %t28, i64 23, 2 @@ -78120,51 +82053,51 @@ entry: %t31 = mul i64 23, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t32 = call ptr @finch_alloc(i64 %t31) %t33 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 0 - store { ptr, i64, i64 } { ptr @.str.4953, i64 7, i64 0 }, ptr %t33 + store { ptr, i64, i64 } { ptr @.str.5160, i64 7, i64 0 }, ptr %t33 %t34 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 1 - store { ptr, i64, i64 } { ptr @.str.4954, i64 7, i64 0 }, ptr %t34 + store { ptr, i64, i64 } { ptr @.str.5161, i64 7, i64 0 }, ptr %t34 %t35 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 2 - store { ptr, i64, i64 } { ptr @.str.4955, i64 7, i64 0 }, ptr %t35 + store { ptr, i64, i64 } { ptr @.str.5162, i64 7, i64 0 }, ptr %t35 %t36 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 3 - store { ptr, i64, i64 } { ptr @.str.4956, i64 7, i64 0 }, ptr %t36 + store { ptr, i64, i64 } { ptr @.str.5163, i64 7, i64 0 }, ptr %t36 %t37 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 4 - store { ptr, i64, i64 } { ptr @.str.4957, i64 7, i64 0 }, ptr %t37 + store { ptr, i64, i64 } { ptr @.str.5164, i64 7, i64 0 }, ptr %t37 %t38 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 5 - store { ptr, i64, i64 } { ptr @.str.4958, i64 7, i64 0 }, ptr %t38 + store { ptr, i64, i64 } { ptr @.str.5165, i64 7, i64 0 }, ptr %t38 %t39 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 6 - store { ptr, i64, i64 } { ptr @.str.4959, i64 6, i64 0 }, ptr %t39 + store { ptr, i64, i64 } { ptr @.str.5166, i64 6, i64 0 }, ptr %t39 %t40 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 7 - store { ptr, i64, i64 } { ptr @.str.4960, i64 6, i64 0 }, ptr %t40 + store { ptr, i64, i64 } { ptr @.str.5167, i64 6, i64 0 }, ptr %t40 %t41 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 8 - store { ptr, i64, i64 } { ptr @.str.4961, i64 6, i64 0 }, ptr %t41 + store { ptr, i64, i64 } { ptr @.str.5168, i64 6, i64 0 }, ptr %t41 %t42 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 9 - store { ptr, i64, i64 } { ptr @.str.4962, i64 6, i64 0 }, ptr %t42 + store { ptr, i64, i64 } { ptr @.str.5169, i64 6, i64 0 }, ptr %t42 %t43 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 10 - store { ptr, i64, i64 } { ptr @.str.4963, i64 6, i64 0 }, ptr %t43 + store { ptr, i64, i64 } { ptr @.str.5170, i64 6, i64 0 }, ptr %t43 %t44 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 11 - store { ptr, i64, i64 } { ptr @.str.4964, i64 6, i64 0 }, ptr %t44 + store { ptr, i64, i64 } { ptr @.str.5171, i64 6, i64 0 }, ptr %t44 %t45 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 12 - store { ptr, i64, i64 } { ptr @.str.4965, i64 8, i64 0 }, ptr %t45 + store { ptr, i64, i64 } { ptr @.str.5172, i64 8, i64 0 }, ptr %t45 %t46 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 13 - store { ptr, i64, i64 } { ptr @.str.4966, i64 8, i64 0 }, ptr %t46 + store { ptr, i64, i64 } { ptr @.str.5173, i64 8, i64 0 }, ptr %t46 %t47 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 14 - store { ptr, i64, i64 } { ptr @.str.4967, i64 8, i64 0 }, ptr %t47 + store { ptr, i64, i64 } { ptr @.str.5174, i64 8, i64 0 }, ptr %t47 %t48 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 15 - store { ptr, i64, i64 } { ptr @.str.4968, i64 8, i64 0 }, ptr %t48 + store { ptr, i64, i64 } { ptr @.str.5175, i64 8, i64 0 }, ptr %t48 %t49 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 16 - store { ptr, i64, i64 } { ptr @.str.4969, i64 8, i64 0 }, ptr %t49 + store { ptr, i64, i64 } { ptr @.str.5176, i64 8, i64 0 }, ptr %t49 %t50 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 17 - store { ptr, i64, i64 } { ptr @.str.4970, i64 8, i64 0 }, ptr %t50 + store { ptr, i64, i64 } { ptr @.str.5177, i64 8, i64 0 }, ptr %t50 %t51 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 18 - store { ptr, i64, i64 } { ptr @.str.4971, i64 8, i64 0 }, ptr %t51 + store { ptr, i64, i64 } { ptr @.str.5178, i64 8, i64 0 }, ptr %t51 %t52 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 19 - store { ptr, i64, i64 } { ptr @.str.4972, i64 8, i64 0 }, ptr %t52 + store { ptr, i64, i64 } { ptr @.str.5179, i64 8, i64 0 }, ptr %t52 %t53 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 20 - store { ptr, i64, i64 } { ptr @.str.4973, i64 6, i64 0 }, ptr %t53 + store { ptr, i64, i64 } { ptr @.str.5180, i64 6, i64 0 }, ptr %t53 %t54 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 21 - store { ptr, i64, i64 } { ptr @.str.4974, i64 8, i64 0 }, ptr %t54 + store { ptr, i64, i64 } { ptr @.str.5181, i64 8, i64 0 }, ptr %t54 %t55 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 22 - store { ptr, i64, i64 } { ptr @.str.4975, i64 8, i64 0 }, ptr %t55 + store { ptr, i64, i64 } { ptr @.str.5182, i64 8, i64 0 }, ptr %t55 %t56 = insertvalue { ptr, i64, i64 } undef, ptr %t32, 0 %t57 = insertvalue { ptr, i64, i64 } %t56, i64 23, 1 %t58 = insertvalue { ptr, i64, i64 } %t57, i64 23, 2 @@ -78175,55 +82108,55 @@ entry: %t63 = load i64, ptr %t60 %t64 = load ptr, ptr %a30 store i64 0, ptr %a65 - br label %find.cond7694 -find.cond7694: + br label %find.cond8087 +find.cond8087: %t66 = load i64, ptr %a65 %t67 = icmp slt i64 %t66, %t63 - br i1 %t67, label %find.body7695, label %find.end7698 -find.body7695: + br i1 %t67, label %find.body8088, label %find.end8091 +find.body8088: %t68 = getelementptr inbounds { ptr, i64, i64 }, ptr %t64, i64 %t66 %t69 = load { ptr, i64, i64 }, ptr %t68 store { ptr, i64, i64 } %t69, ptr %a70 store { ptr, i64, i64 } %t61, ptr %a71 %t72 = call i32 @finch_str_eq(ptr %a70, ptr %a71) %t73 = icmp ne i32 %t72, 0 - br i1 %t73, label %find.hit7696, label %find.next7697 -find.hit7696: + br i1 %t73, label %find.hit8089, label %find.next8090 +find.hit8089: store i64 %t66, ptr %a62 - br label %find.end7698 -find.next7697: + br label %find.end8091 +find.next8090: %t74 = add i64 %t66, 1 store i64 %t74, ptr %a65 - br label %find.cond7694 -find.end7698: + br label %find.cond8087 +find.end8091: %t75 = load i64, ptr %a62 store i64 %t75, ptr %a76 %t77 = load i64, ptr %a76 %t78 = icmp slt i64 %t77, 0 - br i1 %t78, label %then7699, label %endif7701 -then7699: + br i1 %t78, label %then8092, label %endif8094 +then8092: call void @finch.drop.arr_str(ptr %a59) call void @finch.drop.arr_str(ptr %a30) - ret { ptr, i64, i64 } { ptr @.str.4976, i64 0, i64 0 } -endif7701: + ret { ptr, i64, i64 } { ptr @.str.5183, i64 0, i64 0 } +endif8094: %t79 = load i64, ptr %a76 %t80 = load { ptr, i64, i64 }, ptr %a59 %t81 = extractvalue { ptr, i64, i64 } %t80, 1 %t82 = icmp uge i64 %t79, %t81 - br i1 %t82, label %range7702, label %inrange7703 -range7702: - call void @finch_panic_index(ptr @.str.4978, i64 4603, i64 %t79, i64 %t81) + br i1 %t82, label %range8095, label %inrange8096 +range8095: + call void @finch_panic_index(ptr @.str.5185, i64 4830, i64 %t79, i64 %t81) unreachable -inrange7703: +inrange8096: %t83 = extractvalue { ptr, i64, i64 } %t80, 0 %t84 = getelementptr inbounds { ptr, i64, i64 }, ptr %t83, i64 %t79 %t85 = load { ptr, i64, i64 }, ptr %t84 - store { ptr, i64, i64 } { ptr @.str.4977, i64 28, i64 0 }, ptr %a87 + store { ptr, i64, i64 } { ptr @.str.5184, i64 28, i64 0 }, ptr %a87 store { ptr, i64, i64 } %t85, ptr %a88 call void @finch_str_concat(ptr %a86, ptr %a87, ptr %a88) %t89 = load { ptr, i64, i64 }, ptr %a86 store { ptr, i64, i64 } %t89, ptr %a91 - store { ptr, i64, i64 } { ptr @.str.4979, i64 14, i64 0 }, ptr %a92 + store { ptr, i64, i64 } { ptr @.str.5186, i64 14, i64 0 }, ptr %a92 call void @finch_str_concat(ptr %a90, ptr %a91, ptr %a92) store { ptr, i64, i64 } %t89, ptr %a93 call void @finch_str_drop(ptr %a93) @@ -78252,19 +82185,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond7713 -n.cond7713: + br label %n.cond8106 +n.cond8106: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body7714, label %n.end7715 -n.body7714: + br i1 %t6, label %n.body8107, label %n.end8108 +n.body8107: %t7 = getelementptr inbounds %S.docs.Doc, ptr %t1, i64 %t5 call void @finch.drop.S_docs_Doc(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond7713 -n.end7715: + br label %n.cond8106 +n.end8108: call void @finch_arr_free(ptr %a) ret void } @@ -78932,26 +82865,26 @@ entry: store { ptr, i64, i64 } %t7, ptr %a8 %t9 = load ptr, ptr %a1 %t10 = icmp eq ptr %t9, null - br i1 %t10, label %panic7704, label %ok7705 -panic7704: - call void @finch_panic(ptr @.str.4980, i64 4608, ptr @.str.4981) + br i1 %t10, label %panic8097, label %ok8098 +panic8097: + call void @finch_panic(ptr @.str.5187, i64 4835, ptr @.str.5188) unreachable -ok7705: - %t11 = getelementptr inbounds %S.gen.Gen, ptr %t9, i32 0, i32 27 +ok8098: + %t11 = getelementptr inbounds %S.gen.Gen, ptr %t9, i32 0, i32 28 %t12 = load i1, ptr %t11 - br label %logic.from7706 -logic.from7706: - br i1 %t12, label %logic.rhs7707, label %logic.end7708 -logic.rhs7707: + br label %logic.from8099 +logic.from8099: + br i1 %t12, label %logic.rhs8100, label %logic.end8101 +logic.rhs8100: %t13 = load { ptr, i64, i64 }, ptr %a8 %t14 = call i1 @finch.gen.isBuiltin({ ptr, i64, i64 } %t13) - br label %logic.rend7709 -logic.rend7709: - br label %logic.end7708 -logic.end7708: - %t15 = phi i1 [ false, %logic.from7706 ], [ %t14, %logic.rend7709 ] - br i1 %t15, label %then7710, label %endif7712 -then7710: + br label %logic.rend8102 +logic.rend8102: + br label %logic.end8101 +logic.end8101: + %t15 = phi i1 [ false, %logic.from8099 ], [ %t14, %logic.rend8102 ] + br i1 %t15, label %then8103, label %endif8105 +then8103: %t16 = call { ptr, i64, i64 } @finch.docs.builtins() %t17 = load { ptr, i64, i64 }, ptr %a8 %t18 = call %S.docs.Doc @finch.docs.find({ ptr, i64, i64 } %t16, { ptr, i64, i64 } %t17) @@ -78962,8 +82895,8 @@ then7710: %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %t21, i32 0, i32 1 %t23 = load i64, ptr %t22 %t24 = icmp sgt i64 %t23, 0 - br i1 %t24, label %then7716, label %endif7718 -then7716: + br i1 %t24, label %then8109, label %endif8111 +then8109: %t25 = load ptr, ptr %a1 %t26 = load %S.ast.Node, ptr %a2 %t27 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 12 @@ -78972,54 +82905,54 @@ then7716: %t30 = load i64, ptr %t29 %t31 = load %S.docs.Doc, ptr %a20 %t32 = call { ptr, i64, i64 } @finch.docs.hover(%S.docs.Doc %t31) - call void @finch.gen.noteRef(ptr %t25, %S.ast.Node %t26, i64 %t28, i64 %t30, { ptr, i64, i64 } %t32, { ptr, i64, i64 } { ptr @.str.4982, i64 0, i64 0 }, i64 0, i64 0) + call void @finch.gen.noteRef(ptr %t25, %S.ast.Node %t26, i64 %t28, i64 %t30, { ptr, i64, i64 } %t32, { ptr, i64, i64 } { ptr @.str.5189, i64 0, i64 0 }, i64 0, i64 0) store { ptr, i64, i64 } %t32, ptr %a33 call void @finch_str_drop(ptr %a33) - br label %endif7718 -endif7718: + br label %endif8111 +endif8111: call void @finch.drop.S_docs_Doc(ptr %a20) - br label %endif7712 -endif7712: + br label %endif8105 +endif8105: %t34 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t34, ptr %a35 - store { ptr, i64, i64 } { ptr @.str.4983, i64 5, i64 0 }, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.5190, i64 5, i64 0 }, ptr %a36 %t37 = call i32 @finch_str_eq(ptr %a35, ptr %a36) %t38 = icmp ne i32 %t37, 0 - br i1 %t38, label %then7719, label %endif7721 -then7719: + br i1 %t38, label %then8112, label %endif8114 +then8112: %t39 = load ptr, ptr %a1 %t40 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t39, %S.ast.Node %t40, { ptr, i64, i64 } { ptr @.str.4984, i64 86, i64 0 }) - br label %endif7721 -endif7721: + call void @finch.gen.fail(ptr %t39, %S.ast.Node %t40, { ptr, i64, i64 } { ptr @.str.5191, i64 86, i64 0 }) + br label %endif8114 +endif8114: %t41 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t41, ptr %a42 - store { ptr, i64, i64 } { ptr @.str.4985, i64 5, i64 0 }, ptr %a43 + store { ptr, i64, i64 } { ptr @.str.5192, i64 5, i64 0 }, ptr %a43 %t44 = call i32 @finch_str_eq(ptr %a42, ptr %a43) %t45 = icmp ne i32 %t44, 0 - br i1 %t45, label %then7722, label %endif7724 -then7722: + br i1 %t45, label %then8115, label %endif8117 +then8115: %t46 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t47 = getelementptr inbounds { ptr, i64, i64 }, ptr %t46, i32 0, i32 1 %t48 = load i64, ptr %t47 store i64 0, ptr %a49 - br label %for.cond7725 -for.cond7725: + br label %for.cond8118 +for.cond8118: %t50 = load i64, ptr %a49 %t51 = icmp slt i64 %t50, %t48 - br i1 %t51, label %for.body7726, label %for.end7728 -for.body7726: + br i1 %t51, label %for.body8119, label %for.end8121 +for.body8119: %t52 = load ptr, ptr %a1 %t53 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t54 = load i64, ptr %a49 %t55 = load { ptr, i64, i64 }, ptr %t53 %t56 = extractvalue { ptr, i64, i64 } %t55, 1 %t57 = icmp uge i64 %t54, %t56 - br i1 %t57, label %range7729, label %inrange7730 -range7729: - call void @finch_panic_index(ptr @.str.4986, i64 4619, i64 %t54, i64 %t56) + br i1 %t57, label %range8122, label %inrange8123 +range8122: + call void @finch_panic_index(ptr @.str.5193, i64 4846, i64 %t54, i64 %t56) unreachable -inrange7730: +inrange8123: %t58 = extractvalue { ptr, i64, i64 } %t55, 0 %t59 = getelementptr inbounds %S.ast.Node, ptr %t58, i64 %t54 %t60 = load %S.ast.Node, ptr %t59 @@ -79029,36 +82962,36 @@ inrange7730: %t64 = getelementptr inbounds %S.ast.Type, ptr %t63, i32 0, i32 0 %t65 = load { ptr, i64, i64 }, ptr %t64 store { ptr, i64, i64 } %t65, ptr %a66 - store { ptr, i64, i64 } { ptr @.str.4987, i64 4, i64 0 }, ptr %a67 + store { ptr, i64, i64 } { ptr @.str.5194, i64 4, i64 0 }, ptr %a67 %t68 = call i32 @finch_str_eq(ptr %a66, ptr %a67) %t69 = icmp ne i32 %t68, 0 - br i1 %t69, label %then7731, label %endif7733 -then7731: + br i1 %t69, label %then8124, label %endif8126 +then8124: %t70 = load ptr, ptr %a1 %t71 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t72 = load i64, ptr %a49 %t73 = load { ptr, i64, i64 }, ptr %t71 %t74 = extractvalue { ptr, i64, i64 } %t73, 1 %t75 = icmp uge i64 %t72, %t74 - br i1 %t75, label %range7734, label %inrange7735 -range7734: - call void @finch_panic_index(ptr @.str.4988, i64 4621, i64 %t72, i64 %t74) + br i1 %t75, label %range8127, label %inrange8128 +range8127: + call void @finch_panic_index(ptr @.str.5195, i64 4848, i64 %t72, i64 %t74) unreachable -inrange7735: +inrange8128: %t76 = extractvalue { ptr, i64, i64 } %t73, 0 %t77 = getelementptr inbounds %S.ast.Node, ptr %t76, i64 %t72 %t78 = load %S.ast.Node, ptr %t77 - call void @finch.gen.fail(ptr %t70, %S.ast.Node %t78, { ptr, i64, i64 } { ptr @.str.4989, i64 53, i64 0 }) - br label %endif7733 -endif7733: + call void @finch.gen.fail(ptr %t70, %S.ast.Node %t78, { ptr, i64, i64 } { ptr @.str.5196, i64 53, i64 0 }) + br label %endif8126 +endif8126: %t79 = load i64, ptr %a49 %t80 = icmp sgt i64 %t79, 0 - br i1 %t80, label %then7736, label %endif7738 -then7736: + br i1 %t80, label %then8129, label %endif8131 +then8129: %t81 = load ptr, ptr %a1 - call void @finch.gen.printf(ptr %t81, { ptr, i64, i64 } { ptr @.str.4990, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.4991, i64 0, i64 0 }) - br label %endif7738 -endif7738: + call void @finch.gen.printf(ptr %t81, { ptr, i64, i64 } { ptr @.str.5197, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.5198, i64 0, i64 0 }) + br label %endif8131 +endif8131: %t82 = load ptr, ptr %a1 %t83 = getelementptr inbounds %S.gen.Val, ptr %a62, i32 0, i32 0 %t84 = load { ptr, i64, i64 }, ptr %t83 @@ -79069,27 +83002,27 @@ endif7738: %t88 = load %S.gen.Val, ptr %a62 call void @finch.gen.release(ptr %t87, %S.gen.Val %t88) call void @finch.drop.S_gen_Val(ptr %a62) - br label %for.step7727 -for.step7727: + br label %for.step8120 +for.step8120: %t89 = load i64, ptr %a49 %t90 = add i64 %t89, 1 store i64 %t90, ptr %a49 - br label %for.cond7725 -for.end7728: + br label %for.cond8118 +for.end8121: %t91 = load ptr, ptr %a1 - call void @finch.gen.printf(ptr %t91, { ptr, i64, i64 } { ptr @.str.4992, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.4993, i64 0, i64 0 }) - %t92 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4994, i64 4, i64 0 }) + call void @finch.gen.printf(ptr %t91, { ptr, i64, i64 } { ptr @.str.5199, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.5200, i64 0, i64 0 }) + %t92 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5201, i64 4, i64 0 }) %t93 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t92, 1 call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t93 -endif7724: +endif8117: %t94 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t94, ptr %a95 - store { ptr, i64, i64 } { ptr @.str.4995, i64 4, i64 0 }, ptr %a96 + store { ptr, i64, i64 } { ptr @.str.5202, i64 4, i64 0 }, ptr %a96 %t97 = call i32 @finch_str_eq(ptr %a95, ptr %a96) %t98 = icmp ne i32 %t97, 0 - br i1 %t98, label %then7739, label %endif7741 -then7739: + br i1 %t98, label %then8132, label %endif8134 +then8132: %t99 = load ptr, ptr %a1 %t100 = load %S.ast.Node, ptr %a2 %t101 = load { ptr, i64, i64 }, ptr %a8 @@ -79098,11 +83031,11 @@ then7739: %t103 = load { ptr, i64, i64 }, ptr %t102 %t104 = extractvalue { ptr, i64, i64 } %t103, 1 %t105 = icmp uge i64 0, %t104 - br i1 %t105, label %range7742, label %inrange7743 -range7742: - call void @finch_panic_index(ptr @.str.4996, i64 4634, i64 0, i64 %t104) + br i1 %t105, label %range8135, label %inrange8136 +range8135: + call void @finch_panic_index(ptr @.str.5203, i64 4861, i64 0, i64 %t104) unreachable -inrange7743: +inrange8136: %t106 = extractvalue { ptr, i64, i64 } %t103, 0 %t107 = getelementptr inbounds %S.ast.Node, ptr %t106, i64 0 %t108 = load %S.ast.Node, ptr %t107 @@ -79113,33 +83046,33 @@ inrange7743: %t113 = getelementptr inbounds %S.ast.Node, ptr %a112, i32 0, i32 0 %t114 = load { ptr, i64, i64 }, ptr %t113 store { ptr, i64, i64 } %t114, ptr %a115 - store { ptr, i64, i64 } { ptr @.str.4997, i64 3, i64 0 }, ptr %a116 + store { ptr, i64, i64 } { ptr @.str.5204, i64 3, i64 0 }, ptr %a116 %t117 = call i32 @finch_str_eq(ptr %a115, ptr %a116) %t118 = icmp ne i32 %t117, 0 - br label %logic.from7744 -logic.from7744: - br i1 %t118, label %logic.rhs7745, label %logic.end7746 -logic.rhs7745: + br label %logic.from8137 +logic.from8137: + br i1 %t118, label %logic.rhs8138, label %logic.end8139 +logic.rhs8138: %t119 = load ptr, ptr %a1 %t120 = getelementptr inbounds %S.ast.Node, ptr %a112, i32 0, i32 1 %t121 = load { ptr, i64, i64 }, ptr %t120 %t122 = call i64 @finch.gen.lookup(ptr %t119, { ptr, i64, i64 } %t121) %t123 = icmp slt i64 %t122, 0 - br label %logic.rend7747 -logic.rend7747: - br label %logic.end7746 -logic.end7746: - %t124 = phi i1 [ false, %logic.from7744 ], [ %t123, %logic.rend7747 ] - br i1 %t124, label %then7748, label %endif7750 -then7748: + br label %logic.rend8140 +logic.rend8140: + br label %logic.end8139 +logic.end8139: + %t124 = phi i1 [ false, %logic.from8137 ], [ %t123, %logic.rend8140 ] + br i1 %t124, label %then8141, label %endif8143 +then8141: %t125 = load ptr, ptr %a1 %t126 = load ptr, ptr %a1 %t127 = icmp eq ptr %t126, null - br i1 %t127, label %panic7751, label %ok7752 -panic7751: - call void @finch_panic(ptr @.str.4998, i64 4636, ptr @.str.4999) + br i1 %t127, label %panic8144, label %ok8145 +panic8144: + call void @finch_panic(ptr @.str.5205, i64 4863, ptr @.str.5206) unreachable -ok7752: +ok8145: %t128 = getelementptr inbounds %S.gen.Gen, ptr %t126, i32 0, i32 14 %t129 = load { ptr, i64, i64 }, ptr %t128 %t130 = getelementptr inbounds %S.ast.Node, ptr %a112, i32 0, i32 1 @@ -79148,64 +83081,64 @@ ok7752: store i64 %t132, ptr %a133 %t134 = load i64, ptr %a133 %t135 = icmp sge i64 %t134, 0 - br i1 %t135, label %then7753, label %endif7755 -then7753: + br i1 %t135, label %then8146, label %endif8148 +then8146: %t136 = load ptr, ptr %a1 %t137 = load i64, ptr %a133 %t138 = load %S.ast.Node, ptr %a112 %t139 = call { ptr, i64, i64 } @finch.gen.cThunk(ptr %t136, i64 %t137, %S.ast.Node %t138) %t140 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t139, 0 - %t141 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5000, i64 3, i64 0 }) + %t141 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5207, i64 3, i64 0 }) %t142 = insertvalue %S.gen.Val %t140, %S.ast.Type %t141, 1 call void @finch.drop.S_ast_Node(ptr %a112) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t142 -endif7755: - br label %endif7750 -endif7750: +endif8148: + br label %endif8143 +endif8143: %t143 = getelementptr inbounds %S.ast.Node, ptr %a112, i32 0, i32 0 %t144 = load { ptr, i64, i64 }, ptr %t143 store { ptr, i64, i64 } %t144, ptr %a145 - store { ptr, i64, i64 } { ptr @.str.5001, i64 3, i64 0 }, ptr %a146 + store { ptr, i64, i64 } { ptr @.str.5208, i64 3, i64 0 }, ptr %a146 %t147 = call i32 @finch_str_eq(ptr %a145, ptr %a146) %t148 = icmp eq i32 %t147, 0 - br label %logic.from7756 -logic.from7756: - br i1 %t148, label %logic.rhs7757, label %logic.end7758 -logic.rhs7757: + br label %logic.from8149 +logic.from8149: + br i1 %t148, label %logic.rhs8150, label %logic.end8151 +logic.rhs8150: %t149 = getelementptr inbounds %S.ast.Node, ptr %a112, i32 0, i32 0 %t150 = load { ptr, i64, i64 }, ptr %t149 store { ptr, i64, i64 } %t150, ptr %a151 - store { ptr, i64, i64 } { ptr @.str.5002, i64 6, i64 0 }, ptr %a152 + store { ptr, i64, i64 } { ptr @.str.5209, i64 6, i64 0 }, ptr %a152 %t153 = call i32 @finch_str_eq(ptr %a151, ptr %a152) %t154 = icmp eq i32 %t153, 0 - br label %logic.rend7759 -logic.rend7759: - br label %logic.end7758 -logic.end7758: - %t155 = phi i1 [ false, %logic.from7756 ], [ %t154, %logic.rend7759 ] - br label %logic.from7760 -logic.from7760: - br i1 %t155, label %logic.rhs7761, label %logic.end7762 -logic.rhs7761: + br label %logic.rend8152 +logic.rend8152: + br label %logic.end8151 +logic.end8151: + %t155 = phi i1 [ false, %logic.from8149 ], [ %t154, %logic.rend8152 ] + br label %logic.from8153 +logic.from8153: + br i1 %t155, label %logic.rhs8154, label %logic.end8155 +logic.rhs8154: %t156 = getelementptr inbounds %S.ast.Node, ptr %a112, i32 0, i32 0 %t157 = load { ptr, i64, i64 }, ptr %t156 store { ptr, i64, i64 } %t157, ptr %a158 - store { ptr, i64, i64 } { ptr @.str.5003, i64 5, i64 0 }, ptr %a159 + store { ptr, i64, i64 } { ptr @.str.5210, i64 5, i64 0 }, ptr %a159 %t160 = call i32 @finch_str_eq(ptr %a158, ptr %a159) %t161 = icmp eq i32 %t160, 0 - br label %logic.rend7763 -logic.rend7763: - br label %logic.end7762 -logic.end7762: - %t162 = phi i1 [ false, %logic.from7760 ], [ %t161, %logic.rend7763 ] - br i1 %t162, label %then7764, label %endif7766 -then7764: + br label %logic.rend8156 +logic.rend8156: + br label %logic.end8155 +logic.end8155: + %t162 = phi i1 [ false, %logic.from8153 ], [ %t161, %logic.rend8156 ] + br i1 %t162, label %then8157, label %endif8159 +then8157: %t163 = load ptr, ptr %a1 %t164 = load %S.ast.Node, ptr %a112 - call void @finch.gen.fail(ptr %t163, %S.ast.Node %t164, { ptr, i64, i64 } { ptr @.str.5004, i64 63, i64 0 }) - br label %endif7766 -endif7766: + call void @finch.gen.fail(ptr %t163, %S.ast.Node %t164, { ptr, i64, i64 } { ptr @.str.5211, i64 63, i64 0 }) + br label %endif8159 +endif8159: %t165 = load ptr, ptr %a1 %t166 = load %S.ast.Node, ptr %a112 %t167 = call %S.gen.Place @finch.gen.place(ptr %t165, %S.ast.Node %t166, i1 true) @@ -79224,14 +83157,14 @@ endif7766: call void @finch.drop.S_ast_Node(ptr %a112) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t178 -endif7741: +endif8134: %t179 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t179, ptr %a180 - store { ptr, i64, i64 } { ptr @.str.5005, i64 3, i64 0 }, ptr %a181 + store { ptr, i64, i64 } { ptr @.str.5212, i64 3, i64 0 }, ptr %a181 %t182 = call i32 @finch_str_eq(ptr %a180, ptr %a181) %t183 = icmp ne i32 %t182, 0 - br i1 %t183, label %then7767, label %endif7769 -then7767: + br i1 %t183, label %then8160, label %endif8162 +then8160: %t184 = load ptr, ptr %a1 %t185 = load %S.ast.Node, ptr %a2 %t186 = load { ptr, i64, i64 }, ptr %a8 @@ -79241,11 +83174,11 @@ then7767: %t189 = load { ptr, i64, i64 }, ptr %t188 %t190 = extractvalue { ptr, i64, i64 } %t189, 1 %t191 = icmp uge i64 0, %t190 - br i1 %t191, label %range7770, label %inrange7771 -range7770: - call void @finch_panic_index(ptr @.str.5006, i64 4649, i64 0, i64 %t190) + br i1 %t191, label %range8163, label %inrange8164 +range8163: + call void @finch_panic_index(ptr @.str.5213, i64 4876, i64 0, i64 %t190) unreachable -inrange7771: +inrange8164: %t192 = extractvalue { ptr, i64, i64 } %t189, 0 %t193 = getelementptr inbounds %S.ast.Node, ptr %t192, i64 0 %t194 = load %S.ast.Node, ptr %t193 @@ -79264,11 +83197,11 @@ inrange7771: store i1 false, ptr %a207 %t208 = load { ptr, i64, i64 }, ptr %a206 store { ptr, i64, i64 } %t208, ptr %a209 - store { ptr, i64, i64 } { ptr @.str.5007, i64 3, i64 0 }, ptr %a210 + store { ptr, i64, i64 } { ptr @.str.5214, i64 3, i64 0 }, ptr %a210 %t211 = call i32 @finch_str_eq(ptr %a209, ptr %a210) %t212 = icmp ne i32 %t211, 0 - br i1 %t212, label %then7772, label %else7773 -then7772: + br i1 %t212, label %then8165, label %else8166 +then8165: %t213 = load ptr, ptr %a1 %t214 = load %S.gen.Val, ptr %a196 %t215 = call { ptr, i64, i64 } @finch.gen.own(ptr %t213, %S.gen.Val %t214) @@ -79285,20 +83218,20 @@ then7772: call void @finch.drop.S_gen_Val(ptr %a196) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t223 -else7773: +else8166: %t224 = getelementptr inbounds %S.gen.Val, ptr %a196, i32 0, i32 1 %t225 = load %S.ast.Type, ptr %t224 %t226 = call i1 @finch.gen.isSigned(%S.ast.Type %t225) - br i1 %t226, label %then7775, label %else7776 -then7775: + br i1 %t226, label %then8168, label %else8169 +then8168: %t227 = load ptr, ptr %a1 %t228 = load { ptr, i64, i64 }, ptr %a199 - store { ptr, i64, i64 } { ptr @.str.5008, i64 34, i64 0 }, ptr %a230 + store { ptr, i64, i64 } { ptr @.str.5215, i64 34, i64 0 }, ptr %a230 store { ptr, i64, i64 } %t228, ptr %a231 call void @finch_str_concat(ptr %a229, ptr %a230, ptr %a231) %t232 = load { ptr, i64, i64 }, ptr %a229 store { ptr, i64, i64 } %t232, ptr %a234 - store { ptr, i64, i64 } { ptr @.str.5009, i64 6, i64 0 }, ptr %a235 + store { ptr, i64, i64 } { ptr @.str.5216, i64 6, i64 0 }, ptr %a235 call void @finch_str_concat(ptr %a233, ptr %a234, ptr %a235) store { ptr, i64, i64 } %t232, ptr %a236 call void @finch_str_drop(ptr %a236) @@ -79308,7 +83241,7 @@ then7775: %t240 = load { ptr, i64, i64 }, ptr %t239 %t241 = getelementptr inbounds %S.gen.Val, ptr %a196, i32 0, i32 1 %t242 = load %S.ast.Type, ptr %t241 - %t243 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5010, i64 3, i64 0 }) + %t243 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5217, i64 3, i64 0 }) %t244 = call { ptr, i64, i64 } @finch.gen.intCast(ptr %t238, { ptr, i64, i64 } %t240, %S.ast.Type %t242, %S.ast.Type %t243) store %S.ast.Type %t243, ptr %a245 call void @finch.drop.S_ast_Type(ptr %a245) @@ -79321,7 +83254,7 @@ then7775: call void @finch_str_drop(ptr %a250) %t251 = load { ptr, i64, i64 }, ptr %a246 store { ptr, i64, i64 } %t251, ptr %a253 - store { ptr, i64, i64 } { ptr @.str.5011, i64 1, i64 0 }, ptr %a254 + store { ptr, i64, i64 } { ptr @.str.5218, i64 1, i64 0 }, ptr %a254 call void @finch_str_concat(ptr %a252, ptr %a253, ptr %a254) store { ptr, i64, i64 } %t251, ptr %a255 call void @finch_str_drop(ptr %a255) @@ -79329,21 +83262,21 @@ then7775: call void @finch.gen.emit(ptr %t227, { ptr, i64, i64 } %t256) store { ptr, i64, i64 } %t256, ptr %a257 call void @finch_str_drop(ptr %a257) - br label %endif7777 -else7776: + br label %endif8170 +else8169: %t258 = getelementptr inbounds %S.gen.Val, ptr %a196, i32 0, i32 1 %t259 = load %S.ast.Type, ptr %t258 %t260 = call i1 @finch.gen.isUnsigned(%S.ast.Type %t259) - br i1 %t260, label %then7778, label %else7779 -then7778: + br i1 %t260, label %then8171, label %else8172 +then8171: %t261 = load ptr, ptr %a1 %t262 = load { ptr, i64, i64 }, ptr %a199 - store { ptr, i64, i64 } { ptr @.str.5012, i64 35, i64 0 }, ptr %a264 + store { ptr, i64, i64 } { ptr @.str.5219, i64 35, i64 0 }, ptr %a264 store { ptr, i64, i64 } %t262, ptr %a265 call void @finch_str_concat(ptr %a263, ptr %a264, ptr %a265) %t266 = load { ptr, i64, i64 }, ptr %a263 store { ptr, i64, i64 } %t266, ptr %a268 - store { ptr, i64, i64 } { ptr @.str.5013, i64 6, i64 0 }, ptr %a269 + store { ptr, i64, i64 } { ptr @.str.5220, i64 6, i64 0 }, ptr %a269 call void @finch_str_concat(ptr %a267, ptr %a268, ptr %a269) store { ptr, i64, i64 } %t266, ptr %a270 call void @finch_str_drop(ptr %a270) @@ -79353,7 +83286,7 @@ then7778: %t274 = load { ptr, i64, i64 }, ptr %t273 %t275 = getelementptr inbounds %S.gen.Val, ptr %a196, i32 0, i32 1 %t276 = load %S.ast.Type, ptr %t275 - %t277 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5014, i64 3, i64 0 }) + %t277 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5221, i64 3, i64 0 }) %t278 = call { ptr, i64, i64 } @finch.gen.intCast(ptr %t272, { ptr, i64, i64 } %t274, %S.ast.Type %t276, %S.ast.Type %t277) store %S.ast.Type %t277, ptr %a279 call void @finch.drop.S_ast_Type(ptr %a279) @@ -79366,7 +83299,7 @@ then7778: call void @finch_str_drop(ptr %a284) %t285 = load { ptr, i64, i64 }, ptr %a280 store { ptr, i64, i64 } %t285, ptr %a287 - store { ptr, i64, i64 } { ptr @.str.5015, i64 1, i64 0 }, ptr %a288 + store { ptr, i64, i64 } { ptr @.str.5222, i64 1, i64 0 }, ptr %a288 call void @finch_str_concat(ptr %a286, ptr %a287, ptr %a288) store { ptr, i64, i64 } %t285, ptr %a289 call void @finch_str_drop(ptr %a289) @@ -79374,21 +83307,21 @@ then7778: call void @finch.gen.emit(ptr %t261, { ptr, i64, i64 } %t290) store { ptr, i64, i64 } %t290, ptr %a291 call void @finch_str_drop(ptr %a291) - br label %endif7780 -else7779: + br label %endif8173 +else8172: %t292 = getelementptr inbounds %S.gen.Val, ptr %a196, i32 0, i32 1 %t293 = load %S.ast.Type, ptr %t292 %t294 = call i1 @finch.gen.isFloat(%S.ast.Type %t293) - br i1 %t294, label %then7781, label %else7782 -then7781: + br i1 %t294, label %then8174, label %else8175 +then8174: %t295 = load ptr, ptr %a1 %t296 = load { ptr, i64, i64 }, ptr %a199 - store { ptr, i64, i64 } { ptr @.str.5016, i64 36, i64 0 }, ptr %a298 + store { ptr, i64, i64 } { ptr @.str.5223, i64 36, i64 0 }, ptr %a298 store { ptr, i64, i64 } %t296, ptr %a299 call void @finch_str_concat(ptr %a297, ptr %a298, ptr %a299) %t300 = load { ptr, i64, i64 }, ptr %a297 store { ptr, i64, i64 } %t300, ptr %a302 - store { ptr, i64, i64 } { ptr @.str.5017, i64 9, i64 0 }, ptr %a303 + store { ptr, i64, i64 } { ptr @.str.5224, i64 9, i64 0 }, ptr %a303 call void @finch_str_concat(ptr %a301, ptr %a302, ptr %a303) store { ptr, i64, i64 } %t300, ptr %a304 call void @finch_str_drop(ptr %a304) @@ -79398,7 +83331,7 @@ then7781: %t308 = load { ptr, i64, i64 }, ptr %t307 %t309 = getelementptr inbounds %S.gen.Val, ptr %a196, i32 0, i32 1 %t310 = load %S.ast.Type, ptr %t309 - %t311 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5018, i64 5, i64 0 }) + %t311 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5225, i64 5, i64 0 }) %t312 = call { ptr, i64, i64 } @finch.gen.floatCast(ptr %t306, { ptr, i64, i64 } %t308, %S.ast.Type %t310, %S.ast.Type %t311) store %S.ast.Type %t311, ptr %a313 call void @finch.drop.S_ast_Type(ptr %a313) @@ -79411,7 +83344,7 @@ then7781: call void @finch_str_drop(ptr %a318) %t319 = load { ptr, i64, i64 }, ptr %a314 store { ptr, i64, i64 } %t319, ptr %a321 - store { ptr, i64, i64 } { ptr @.str.5019, i64 1, i64 0 }, ptr %a322 + store { ptr, i64, i64 } { ptr @.str.5226, i64 1, i64 0 }, ptr %a322 call void @finch_str_concat(ptr %a320, ptr %a321, ptr %a322) store { ptr, i64, i64 } %t319, ptr %a323 call void @finch_str_drop(ptr %a323) @@ -79419,23 +83352,23 @@ then7781: call void @finch.gen.emit(ptr %t295, { ptr, i64, i64 } %t324) store { ptr, i64, i64 } %t324, ptr %a325 call void @finch_str_drop(ptr %a325) - br label %endif7783 -else7782: + br label %endif8176 +else8175: %t326 = load { ptr, i64, i64 }, ptr %a206 store { ptr, i64, i64 } %t326, ptr %a327 - store { ptr, i64, i64 } { ptr @.str.5020, i64 4, i64 0 }, ptr %a328 + store { ptr, i64, i64 } { ptr @.str.5227, i64 4, i64 0 }, ptr %a328 %t329 = call i32 @finch_str_eq(ptr %a327, ptr %a328) %t330 = icmp ne i32 %t329, 0 - br i1 %t330, label %then7784, label %else7785 -then7784: + br i1 %t330, label %then8177, label %else8178 +then8177: %t331 = load ptr, ptr %a1 %t332 = load { ptr, i64, i64 }, ptr %a199 - store { ptr, i64, i64 } { ptr @.str.5021, i64 35, i64 0 }, ptr %a334 + store { ptr, i64, i64 } { ptr @.str.5228, i64 35, i64 0 }, ptr %a334 store { ptr, i64, i64 } %t332, ptr %a335 call void @finch_str_concat(ptr %a333, ptr %a334, ptr %a335) %t336 = load { ptr, i64, i64 }, ptr %a333 store { ptr, i64, i64 } %t336, ptr %a338 - store { ptr, i64, i64 } { ptr @.str.5022, i64 13, i64 0 }, ptr %a339 + store { ptr, i64, i64 } { ptr @.str.5229, i64 13, i64 0 }, ptr %a339 call void @finch_str_concat(ptr %a337, ptr %a338, ptr %a339) store { ptr, i64, i64 } %t336, ptr %a340 call void @finch_str_drop(ptr %a340) @@ -79449,7 +83382,7 @@ then7784: call void @finch_str_drop(ptr %a347) %t348 = load { ptr, i64, i64 }, ptr %a344 store { ptr, i64, i64 } %t348, ptr %a350 - store { ptr, i64, i64 } { ptr @.str.5023, i64 1, i64 0 }, ptr %a351 + store { ptr, i64, i64 } { ptr @.str.5230, i64 1, i64 0 }, ptr %a351 call void @finch_str_concat(ptr %a349, ptr %a350, ptr %a351) store { ptr, i64, i64 } %t348, ptr %a352 call void @finch_str_drop(ptr %a352) @@ -79457,24 +83390,24 @@ then7784: call void @finch.gen.emit(ptr %t331, { ptr, i64, i64 } %t353) store { ptr, i64, i64 } %t353, ptr %a354 call void @finch_str_drop(ptr %a354) - br label %endif7786 -else7785: + br label %endif8179 +else8178: %t355 = load { ptr, i64, i64 }, ptr %a206 store { ptr, i64, i64 } %t355, ptr %a356 - store { ptr, i64, i64 } { ptr @.str.5024, i64 4, i64 0 }, ptr %a357 + store { ptr, i64, i64 } { ptr @.str.5231, i64 4, i64 0 }, ptr %a357 %t358 = call i32 @finch_str_eq(ptr %a356, ptr %a357) %t359 = icmp ne i32 %t358, 0 - br i1 %t359, label %then7787, label %else7788 -then7787: + br i1 %t359, label %then8180, label %else8181 +then8180: %t360 = load ptr, ptr %a1 %t361 = getelementptr inbounds %S.gen.Val, ptr %a196, i32 0, i32 0 %t362 = load { ptr, i64, i64 }, ptr %t361 - store { ptr, i64, i64 } { ptr @.str.5025, i64 8, i64 0 }, ptr %a364 + store { ptr, i64, i64 } { ptr @.str.5232, i64 8, i64 0 }, ptr %a364 store { ptr, i64, i64 } %t362, ptr %a365 call void @finch_str_concat(ptr %a363, ptr %a364, ptr %a365) %t366 = load { ptr, i64, i64 }, ptr %a363 store { ptr, i64, i64 } %t366, ptr %a368 - store { ptr, i64, i64 } { ptr @.str.5026, i64 7, i64 0 }, ptr %a369 + store { ptr, i64, i64 } { ptr @.str.5233, i64 7, i64 0 }, ptr %a369 call void @finch_str_concat(ptr %a367, ptr %a368, ptr %a369) store { ptr, i64, i64 } %t366, ptr %a370 call void @finch_str_drop(ptr %a370) @@ -79485,12 +83418,12 @@ then7787: store { ptr, i64, i64 } %t372, ptr %a374 %t375 = load ptr, ptr %a1 %t376 = load { ptr, i64, i64 }, ptr %a199 - store { ptr, i64, i64 } { ptr @.str.5027, i64 35, i64 0 }, ptr %a378 + store { ptr, i64, i64 } { ptr @.str.5234, i64 35, i64 0 }, ptr %a378 store { ptr, i64, i64 } %t376, ptr %a379 call void @finch_str_concat(ptr %a377, ptr %a378, ptr %a379) %t380 = load { ptr, i64, i64 }, ptr %a377 store { ptr, i64, i64 } %t380, ptr %a382 - store { ptr, i64, i64 } { ptr @.str.5028, i64 6, i64 0 }, ptr %a383 + store { ptr, i64, i64 } { ptr @.str.5235, i64 6, i64 0 }, ptr %a383 call void @finch_str_concat(ptr %a381, ptr %a382, ptr %a383) store { ptr, i64, i64 } %t380, ptr %a384 call void @finch_str_drop(ptr %a384) @@ -79503,7 +83436,7 @@ then7787: call void @finch_str_drop(ptr %a390) %t391 = load { ptr, i64, i64 }, ptr %a387 store { ptr, i64, i64 } %t391, ptr %a393 - store { ptr, i64, i64 } { ptr @.str.5029, i64 1, i64 0 }, ptr %a394 + store { ptr, i64, i64 } { ptr @.str.5236, i64 1, i64 0 }, ptr %a394 call void @finch_str_concat(ptr %a392, ptr %a393, ptr %a394) store { ptr, i64, i64 } %t391, ptr %a395 call void @finch_str_drop(ptr %a395) @@ -79512,26 +83445,26 @@ then7787: store { ptr, i64, i64 } %t396, ptr %a397 call void @finch_str_drop(ptr %a397) call void @finch_str_drop(ptr %a374) - br label %endif7789 -else7788: + br label %endif8182 +else8181: %t398 = load { ptr, i64, i64 }, ptr %a206 store { ptr, i64, i64 } %t398, ptr %a399 - store { ptr, i64, i64 } { ptr @.str.5030, i64 3, i64 0 }, ptr %a400 + store { ptr, i64, i64 } { ptr @.str.5237, i64 3, i64 0 }, ptr %a400 %t401 = call i32 @finch_str_eq(ptr %a399, ptr %a400) %t402 = icmp ne i32 %t401, 0 - br i1 %t402, label %then7790, label %else7791 -then7790: + br i1 %t402, label %then8183, label %else8184 +then8183: %t403 = load ptr, ptr %a1 %t404 = load { ptr, i64, i64 }, ptr %a199 - call void @finch.gen.store(ptr %t403, { ptr, i64, i64 } { ptr @.str.5031, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5032, i64 15, i64 0 }, { ptr, i64, i64 } %t404) + call void @finch.gen.store(ptr %t403, { ptr, i64, i64 } { ptr @.str.5238, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5239, i64 15, i64 0 }, { ptr, i64, i64 } %t404) %t405 = load ptr, ptr %a1 %t406 = load { ptr, i64, i64 }, ptr %a199 - store { ptr, i64, i64 } { ptr @.str.5033, i64 32, i64 0 }, ptr %a408 + store { ptr, i64, i64 } { ptr @.str.5240, i64 32, i64 0 }, ptr %a408 store { ptr, i64, i64 } %t406, ptr %a409 call void @finch_str_concat(ptr %a407, ptr %a408, ptr %a409) %t410 = load { ptr, i64, i64 }, ptr %a407 store { ptr, i64, i64 } %t410, ptr %a412 - store { ptr, i64, i64 } { ptr @.str.5034, i64 6, i64 0 }, ptr %a413 + store { ptr, i64, i64 } { ptr @.str.5241, i64 6, i64 0 }, ptr %a413 call void @finch_str_concat(ptr %a411, ptr %a412, ptr %a413) store { ptr, i64, i64 } %t410, ptr %a414 call void @finch_str_drop(ptr %a414) @@ -79545,7 +83478,7 @@ then7790: call void @finch_str_drop(ptr %a421) %t422 = load { ptr, i64, i64 }, ptr %a418 store { ptr, i64, i64 } %t422, ptr %a424 - store { ptr, i64, i64 } { ptr @.str.5035, i64 1, i64 0 }, ptr %a425 + store { ptr, i64, i64 } { ptr @.str.5242, i64 1, i64 0 }, ptr %a425 call void @finch_str_concat(ptr %a423, ptr %a424, ptr %a425) store { ptr, i64, i64 } %t422, ptr %a426 call void @finch_str_drop(ptr %a426) @@ -79554,80 +83487,80 @@ then7790: store { ptr, i64, i64 } %t427, ptr %a428 call void @finch_str_drop(ptr %a428) store i1 true, ptr %a207 - br label %endif7792 -else7791: + br label %endif8185 +else8184: %t429 = load { ptr, i64, i64 }, ptr %a206 store { ptr, i64, i64 } %t429, ptr %a430 - store { ptr, i64, i64 } { ptr @.str.5036, i64 5, i64 0 }, ptr %a431 + store { ptr, i64, i64 } { ptr @.str.5243, i64 5, i64 0 }, ptr %a431 %t432 = call i32 @finch_str_eq(ptr %a430, ptr %a431) %t433 = icmp ne i32 %t432, 0 - br label %logic.from7793 -logic.from7793: - br i1 %t433, label %logic.rhs7794, label %logic.end7795 -logic.rhs7794: + br label %logic.from8186 +logic.from8186: + br i1 %t433, label %logic.rhs8187, label %logic.end8188 +logic.rhs8187: %t434 = getelementptr inbounds %S.gen.Val, ptr %a196, i32 0, i32 1 %t435 = getelementptr inbounds %S.ast.Type, ptr %t434, i32 0, i32 1 %t436 = load { ptr, i64, i64 }, ptr %t435 %t437 = extractvalue { ptr, i64, i64 } %t436, 1 %t438 = icmp uge i64 0, %t437 - br i1 %t438, label %range7796, label %inrange7797 -range7796: - call void @finch_panic_index(ptr @.str.5037, i64 4671, i64 0, i64 %t437) + br i1 %t438, label %range8189, label %inrange8190 +range8189: + call void @finch_panic_index(ptr @.str.5244, i64 4898, i64 0, i64 %t437) unreachable -inrange7797: +inrange8190: %t439 = extractvalue { ptr, i64, i64 } %t436, 0 %t440 = getelementptr inbounds %S.ast.Type, ptr %t439, i64 0 %t441 = getelementptr inbounds %S.ast.Type, ptr %t440, i32 0, i32 0 %t442 = load { ptr, i64, i64 }, ptr %t441 store { ptr, i64, i64 } %t442, ptr %a443 - store { ptr, i64, i64 } { ptr @.str.5038, i64 2, i64 0 }, ptr %a444 + store { ptr, i64, i64 } { ptr @.str.5245, i64 2, i64 0 }, ptr %a444 %t445 = call i32 @finch_str_eq(ptr %a443, ptr %a444) %t446 = icmp ne i32 %t445, 0 - br label %logic.from7798 -logic.from7798: - br i1 %t446, label %logic.end7800, label %logic.rhs7799 -logic.rhs7799: + br label %logic.from8191 +logic.from8191: + br i1 %t446, label %logic.end8193, label %logic.rhs8192 +logic.rhs8192: %t447 = getelementptr inbounds %S.gen.Val, ptr %a196, i32 0, i32 1 %t448 = getelementptr inbounds %S.ast.Type, ptr %t447, i32 0, i32 1 %t449 = load { ptr, i64, i64 }, ptr %t448 %t450 = extractvalue { ptr, i64, i64 } %t449, 1 %t451 = icmp uge i64 0, %t450 - br i1 %t451, label %range7801, label %inrange7802 -range7801: - call void @finch_panic_index(ptr @.str.5039, i64 4671, i64 0, i64 %t450) + br i1 %t451, label %range8194, label %inrange8195 +range8194: + call void @finch_panic_index(ptr @.str.5246, i64 4898, i64 0, i64 %t450) unreachable -inrange7802: +inrange8195: %t452 = extractvalue { ptr, i64, i64 } %t449, 0 %t453 = getelementptr inbounds %S.ast.Type, ptr %t452, i64 0 %t454 = getelementptr inbounds %S.ast.Type, ptr %t453, i32 0, i32 0 %t455 = load { ptr, i64, i64 }, ptr %t454 store { ptr, i64, i64 } %t455, ptr %a456 - store { ptr, i64, i64 } { ptr @.str.5040, i64 4, i64 0 }, ptr %a457 + store { ptr, i64, i64 } { ptr @.str.5247, i64 4, i64 0 }, ptr %a457 %t458 = call i32 @finch_str_eq(ptr %a456, ptr %a457) %t459 = icmp ne i32 %t458, 0 - br label %logic.rend7803 -logic.rend7803: - br label %logic.end7800 -logic.end7800: - %t460 = phi i1 [ true, %logic.from7798 ], [ %t459, %logic.rend7803 ] - br label %logic.rend7804 -logic.rend7804: - br label %logic.end7795 -logic.end7795: - %t461 = phi i1 [ false, %logic.from7793 ], [ %t460, %logic.rend7804 ] - br i1 %t461, label %then7805, label %else7806 -then7805: + br label %logic.rend8196 +logic.rend8196: + br label %logic.end8193 +logic.end8193: + %t460 = phi i1 [ true, %logic.from8191 ], [ %t459, %logic.rend8196 ] + br label %logic.rend8197 +logic.rend8197: + br label %logic.end8188 +logic.end8188: + %t461 = phi i1 [ false, %logic.from8186 ], [ %t460, %logic.rend8197 ] + br i1 %t461, label %then8198, label %else8199 +then8198: %t462 = load ptr, ptr %a1 %t463 = load { ptr, i64, i64 }, ptr %a199 - call void @finch.gen.store(ptr %t462, { ptr, i64, i64 } { ptr @.str.5041, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5042, i64 15, i64 0 }, { ptr, i64, i64 } %t463) + call void @finch.gen.store(ptr %t462, { ptr, i64, i64 } { ptr @.str.5248, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5249, i64 15, i64 0 }, { ptr, i64, i64 } %t463) %t464 = load ptr, ptr %a1 %t465 = load { ptr, i64, i64 }, ptr %a199 - store { ptr, i64, i64 } { ptr @.str.5043, i64 36, i64 0 }, ptr %a467 + store { ptr, i64, i64 } { ptr @.str.5250, i64 36, i64 0 }, ptr %a467 store { ptr, i64, i64 } %t465, ptr %a468 call void @finch_str_concat(ptr %a466, ptr %a467, ptr %a468) %t469 = load { ptr, i64, i64 }, ptr %a466 store { ptr, i64, i64 } %t469, ptr %a471 - store { ptr, i64, i64 } { ptr @.str.5044, i64 6, i64 0 }, ptr %a472 + store { ptr, i64, i64 } { ptr @.str.5251, i64 6, i64 0 }, ptr %a472 call void @finch_str_concat(ptr %a470, ptr %a471, ptr %a472) store { ptr, i64, i64 } %t469, ptr %a473 call void @finch_str_drop(ptr %a473) @@ -79644,7 +83577,7 @@ then7805: call void @finch_str_drop(ptr %a482) %t483 = load { ptr, i64, i64 }, ptr %a478 store { ptr, i64, i64 } %t483, ptr %a485 - store { ptr, i64, i64 } { ptr @.str.5045, i64 1, i64 0 }, ptr %a486 + store { ptr, i64, i64 } { ptr @.str.5252, i64 1, i64 0 }, ptr %a486 call void @finch_str_concat(ptr %a484, ptr %a485, ptr %a486) store { ptr, i64, i64 } %t483, ptr %a487 call void @finch_str_drop(ptr %a487) @@ -79655,88 +83588,88 @@ then7805: %t490 = load ptr, ptr %a1 %t491 = load %S.gen.Val, ptr %a196 call void @finch.gen.release(ptr %t490, %S.gen.Val %t491) - br label %endif7807 -else7806: + br label %endif8200 +else8199: %t492 = load { ptr, i64, i64 }, ptr %a206 store { ptr, i64, i64 } %t492, ptr %a493 - store { ptr, i64, i64 } { ptr @.str.5046, i64 4, i64 0 }, ptr %a494 + store { ptr, i64, i64 } { ptr @.str.5253, i64 4, i64 0 }, ptr %a494 %t495 = call i32 @finch_str_eq(ptr %a493, ptr %a494) %t496 = icmp ne i32 %t495, 0 - br label %logic.from7808 -logic.from7808: - br i1 %t496, label %logic.end7810, label %logic.rhs7809 -logic.rhs7809: + br label %logic.from8201 +logic.from8201: + br i1 %t496, label %logic.end8203, label %logic.rhs8202 +logic.rhs8202: %t497 = load { ptr, i64, i64 }, ptr %a206 store { ptr, i64, i64 } %t497, ptr %a498 - store { ptr, i64, i64 } { ptr @.str.5047, i64 4, i64 0 }, ptr %a499 + store { ptr, i64, i64 } { ptr @.str.5254, i64 4, i64 0 }, ptr %a499 %t500 = call i32 @finch_str_eq(ptr %a498, ptr %a499) %t501 = icmp ne i32 %t500, 0 - br label %logic.rend7811 -logic.rend7811: - br label %logic.end7810 -logic.end7810: - %t502 = phi i1 [ true, %logic.from7808 ], [ %t501, %logic.rend7811 ] - br label %logic.from7812 -logic.from7812: - br i1 %t502, label %logic.end7814, label %logic.rhs7813 -logic.rhs7813: + br label %logic.rend8204 +logic.rend8204: + br label %logic.end8203 +logic.end8203: + %t502 = phi i1 [ true, %logic.from8201 ], [ %t501, %logic.rend8204 ] + br label %logic.from8205 +logic.from8205: + br i1 %t502, label %logic.end8207, label %logic.rhs8206 +logic.rhs8206: %t503 = load { ptr, i64, i64 }, ptr %a206 store { ptr, i64, i64 } %t503, ptr %a504 - store { ptr, i64, i64 } { ptr @.str.5048, i64 5, i64 0 }, ptr %a505 + store { ptr, i64, i64 } { ptr @.str.5255, i64 5, i64 0 }, ptr %a505 %t506 = call i32 @finch_str_eq(ptr %a504, ptr %a505) %t507 = icmp ne i32 %t506, 0 - br label %logic.rend7815 -logic.rend7815: - br label %logic.end7814 -logic.end7814: - %t508 = phi i1 [ true, %logic.from7812 ], [ %t507, %logic.rend7815 ] - br label %logic.from7816 -logic.from7816: - br i1 %t508, label %logic.end7818, label %logic.rhs7817 -logic.rhs7817: + br label %logic.rend8208 +logic.rend8208: + br label %logic.end8207 +logic.end8207: + %t508 = phi i1 [ true, %logic.from8205 ], [ %t507, %logic.rend8208 ] + br label %logic.from8209 +logic.from8209: + br i1 %t508, label %logic.end8211, label %logic.rhs8210 +logic.rhs8210: %t509 = load { ptr, i64, i64 }, ptr %a206 store { ptr, i64, i64 } %t509, ptr %a510 - store { ptr, i64, i64 } { ptr @.str.5049, i64 3, i64 0 }, ptr %a511 + store { ptr, i64, i64 } { ptr @.str.5256, i64 3, i64 0 }, ptr %a511 %t512 = call i32 @finch_str_eq(ptr %a510, ptr %a511) %t513 = icmp ne i32 %t512, 0 - br label %logic.rend7819 -logic.rend7819: - br label %logic.end7818 -logic.end7818: - %t514 = phi i1 [ true, %logic.from7816 ], [ %t513, %logic.rend7819 ] - br label %logic.from7820 -logic.from7820: - br i1 %t514, label %logic.end7822, label %logic.rhs7821 -logic.rhs7821: + br label %logic.rend8212 +logic.rend8212: + br label %logic.end8211 +logic.end8211: + %t514 = phi i1 [ true, %logic.from8209 ], [ %t513, %logic.rend8212 ] + br label %logic.from8213 +logic.from8213: + br i1 %t514, label %logic.end8215, label %logic.rhs8214 +logic.rhs8214: %t515 = load { ptr, i64, i64 }, ptr %a206 store { ptr, i64, i64 } %t515, ptr %a516 - store { ptr, i64, i64 } { ptr @.str.5050, i64 6, i64 0 }, ptr %a517 + store { ptr, i64, i64 } { ptr @.str.5257, i64 6, i64 0 }, ptr %a517 %t518 = call i32 @finch_str_eq(ptr %a516, ptr %a517) %t519 = icmp ne i32 %t518, 0 - br label %logic.rend7823 -logic.rend7823: - br label %logic.end7822 -logic.end7822: - %t520 = phi i1 [ true, %logic.from7820 ], [ %t519, %logic.rend7823 ] - br label %logic.from7824 -logic.from7824: - br i1 %t520, label %logic.end7826, label %logic.rhs7825 -logic.rhs7825: + br label %logic.rend8216 +logic.rend8216: + br label %logic.end8215 +logic.end8215: + %t520 = phi i1 [ true, %logic.from8213 ], [ %t519, %logic.rend8216 ] + br label %logic.from8217 +logic.from8217: + br i1 %t520, label %logic.end8219, label %logic.rhs8218 +logic.rhs8218: %t521 = load { ptr, i64, i64 }, ptr %a206 store { ptr, i64, i64 } %t521, ptr %a522 - store { ptr, i64, i64 } { ptr @.str.5051, i64 4, i64 0 }, ptr %a523 + store { ptr, i64, i64 } { ptr @.str.5258, i64 4, i64 0 }, ptr %a523 %t524 = call i32 @finch_str_eq(ptr %a522, ptr %a523) %t525 = icmp ne i32 %t524, 0 - br label %logic.rend7827 -logic.rend7827: - br label %logic.end7826 -logic.end7826: - %t526 = phi i1 [ true, %logic.from7824 ], [ %t525, %logic.rend7827 ] - br i1 %t526, label %then7828, label %else7829 -then7828: + br label %logic.rend8220 +logic.rend8220: + br label %logic.end8219 +logic.end8219: + %t526 = phi i1 [ true, %logic.from8217 ], [ %t525, %logic.rend8220 ] + br i1 %t526, label %then8221, label %else8222 +then8221: %t527 = load ptr, ptr %a1 %t528 = load { ptr, i64, i64 }, ptr %a199 - call void @finch.gen.store(ptr %t527, { ptr, i64, i64 } { ptr @.str.5052, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5053, i64 15, i64 0 }, { ptr, i64, i64 } %t528) + call void @finch.gen.store(ptr %t527, { ptr, i64, i64 } { ptr @.str.5259, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5260, i64 15, i64 0 }, { ptr, i64, i64 } %t528) %t529 = load ptr, ptr %a1 %t530 = load { ptr, i64, i64 }, ptr %a199 %t531 = getelementptr inbounds %S.gen.Val, ptr %a196, i32 0, i32 0 @@ -79747,32 +83680,32 @@ then7828: %t535 = load ptr, ptr %a1 %t536 = load %S.gen.Val, ptr %a196 call void @finch.gen.release(ptr %t535, %S.gen.Val %t536) - br label %endif7830 -else7829: + br label %endif8223 +else8222: %t537 = load ptr, ptr %a1 %t538 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t539 = load { ptr, i64, i64 }, ptr %t538 %t540 = extractvalue { ptr, i64, i64 } %t539, 1 %t541 = icmp uge i64 0, %t540 - br i1 %t541, label %range7831, label %inrange7832 -range7831: - call void @finch_panic_index(ptr @.str.5054, i64 4681, i64 0, i64 %t540) + br i1 %t541, label %range8224, label %inrange8225 +range8224: + call void @finch_panic_index(ptr @.str.5261, i64 4908, i64 0, i64 %t540) unreachable -inrange7832: +inrange8225: %t542 = extractvalue { ptr, i64, i64 } %t539, 0 %t543 = getelementptr inbounds %S.ast.Node, ptr %t542, i64 0 %t544 = load %S.ast.Node, ptr %t543 %t545 = getelementptr inbounds %S.gen.Val, ptr %a196, i32 0, i32 1 %t546 = load %S.ast.Type, ptr %t545 %t547 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t546) - store { ptr, i64, i64 } { ptr @.str.5055, i64 11, i64 0 }, ptr %a549 + store { ptr, i64, i64 } { ptr @.str.5262, i64 11, i64 0 }, ptr %a549 store { ptr, i64, i64 } %t547, ptr %a550 call void @finch_str_concat(ptr %a548, ptr %a549, ptr %a550) store { ptr, i64, i64 } %t547, ptr %a551 call void @finch_str_drop(ptr %a551) %t552 = load { ptr, i64, i64 }, ptr %a548 store { ptr, i64, i64 } %t552, ptr %a554 - store { ptr, i64, i64 } { ptr @.str.5056, i64 9, i64 0 }, ptr %a555 + store { ptr, i64, i64 } { ptr @.str.5263, i64 9, i64 0 }, ptr %a555 call void @finch_str_concat(ptr %a553, ptr %a554, ptr %a555) store { ptr, i64, i64 } %t552, ptr %a556 call void @finch_str_drop(ptr %a556) @@ -79780,29 +83713,29 @@ inrange7832: call void @finch.gen.fail(ptr %t537, %S.ast.Node %t544, { ptr, i64, i64 } %t557) store { ptr, i64, i64 } %t557, ptr %a558 call void @finch_str_drop(ptr %a558) - br label %endif7830 -endif7830: - br label %endif7807 -endif7807: - br label %endif7792 -endif7792: - br label %endif7789 -endif7789: - br label %endif7786 -endif7786: - br label %endif7783 -endif7783: - br label %endif7780 -endif7780: - br label %endif7777 -endif7777: - br label %endif7774 -endif7774: + br label %endif8223 +endif8223: + br label %endif8200 +endif8200: + br label %endif8185 +endif8185: + br label %endif8182 +endif8182: + br label %endif8179 +endif8179: + br label %endif8176 +endif8176: + br label %endif8173 +endif8173: + br label %endif8170 +endif8170: + br label %endif8167 +endif8167: %t559 = load ptr, ptr %a1 %t560 = load { ptr, i64, i64 }, ptr %a199 - %t561 = call { ptr, i64, i64 } @finch.gen.load(ptr %t559, { ptr, i64, i64 } { ptr @.str.5057, i64 17, i64 0 }, { ptr, i64, i64 } %t560) + %t561 = call { ptr, i64, i64 } @finch.gen.load(ptr %t559, { ptr, i64, i64 } { ptr @.str.5264, i64 17, i64 0 }, { ptr, i64, i64 } %t560) %t562 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t561, 0 - %t563 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5058, i64 3, i64 0 }) + %t563 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5265, i64 3, i64 0 }) %t564 = insertvalue %S.gen.Val %t562, %S.ast.Type %t563, 1 %t565 = load i1, ptr %a207 %t566 = xor i1 %t565, true @@ -79812,15 +83745,15 @@ endif7774: call void @finch.drop.S_gen_Val(ptr %a196) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t567 -endif7769: +endif8162: %t568 = load { ptr, i64, i64 }, ptr %a8 %t569 = call { ptr, i64, i64 } @finch.gen.numType({ ptr, i64, i64 } %t568) store { ptr, i64, i64 } %t569, ptr %a570 %t571 = getelementptr inbounds { ptr, i64, i64 }, ptr %a570, i32 0, i32 1 %t572 = load i64, ptr %t571 %t573 = icmp sgt i64 %t572, 0 - br i1 %t573, label %then7833, label %endif7835 -then7833: + br i1 %t573, label %then8226, label %endif8228 +then8226: %t574 = load ptr, ptr %a1 %t575 = load %S.ast.Node, ptr %a2 %t576 = load { ptr, i64, i64 }, ptr %a570 @@ -79831,28 +83764,28 @@ then7833: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t578 -endif7835: +endif8228: %t580 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t580, ptr %a581 - store { ptr, i64, i64 } { ptr @.str.5059, i64 9, i64 0 }, ptr %a582 + store { ptr, i64, i64 } { ptr @.str.5266, i64 9, i64 0 }, ptr %a582 %t583 = call i32 @finch_str_eq(ptr %a581, ptr %a582) %t584 = icmp ne i32 %t583, 0 - br label %logic.from7836 -logic.from7836: - br i1 %t584, label %logic.end7838, label %logic.rhs7837 -logic.rhs7837: + br label %logic.from8229 +logic.from8229: + br i1 %t584, label %logic.end8231, label %logic.rhs8230 +logic.rhs8230: %t585 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t585, ptr %a586 - store { ptr, i64, i64 } { ptr @.str.5060, i64 11, i64 0 }, ptr %a587 + store { ptr, i64, i64 } { ptr @.str.5267, i64 11, i64 0 }, ptr %a587 %t588 = call i32 @finch_str_eq(ptr %a586, ptr %a587) %t589 = icmp ne i32 %t588, 0 - br label %logic.rend7839 -logic.rend7839: - br label %logic.end7838 -logic.end7838: - %t590 = phi i1 [ true, %logic.from7836 ], [ %t589, %logic.rend7839 ] - br i1 %t590, label %then7840, label %endif7842 -then7840: + br label %logic.rend8232 +logic.rend8232: + br label %logic.end8231 +logic.end8231: + %t590 = phi i1 [ true, %logic.from8229 ], [ %t589, %logic.rend8232 ] + br i1 %t590, label %then8233, label %endif8235 +then8233: %t591 = load ptr, ptr %a1 %t592 = load %S.ast.Node, ptr %a2 %t593 = load { ptr, i64, i64 }, ptr %a8 @@ -79862,15 +83795,15 @@ then7840: %t596 = load { ptr, i64, i64 }, ptr %t595 %t597 = extractvalue { ptr, i64, i64 } %t596, 1 %t598 = icmp uge i64 0, %t597 - br i1 %t598, label %range7843, label %inrange7844 -range7843: - call void @finch_panic_index(ptr @.str.5061, i64 4691, i64 0, i64 %t597) + br i1 %t598, label %range8236, label %inrange8237 +range8236: + call void @finch_panic_index(ptr @.str.5268, i64 4918, i64 0, i64 %t597) unreachable -inrange7844: +inrange8237: %t599 = extractvalue { ptr, i64, i64 } %t596, 0 %t600 = getelementptr inbounds %S.ast.Node, ptr %t599, i64 0 %t601 = load %S.ast.Node, ptr %t600 - %t602 = call %S.gen.Val @finch.gen.strArg(ptr %t594, %S.ast.Node %t601, { ptr, i64, i64 } { ptr @.str.5062, i64 13, i64 0 }) + %t602 = call %S.gen.Val @finch.gen.strArg(ptr %t594, %S.ast.Node %t601, { ptr, i64, i64 } { ptr @.str.5269, i64 13, i64 0 }) store %S.gen.Val %t602, ptr %a603 %t604 = load ptr, ptr %a1 %t605 = load %S.gen.Val, ptr %a603 @@ -79878,19 +83811,19 @@ inrange7844: store { ptr, i64, i64 } %t606, ptr %a607 %t608 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t608, ptr %a609 - store { ptr, i64, i64 } { ptr @.str.5063, i64 11, i64 0 }, ptr %a610 + store { ptr, i64, i64 } { ptr @.str.5270, i64 11, i64 0 }, ptr %a610 %t611 = call i32 @finch_str_eq(ptr %a609, ptr %a610) %t612 = icmp ne i32 %t611, 0 - br i1 %t612, label %then7845, label %endif7847 -then7845: + br i1 %t612, label %then8238, label %endif8240 +then8238: %t613 = load ptr, ptr %a1 %t614 = load { ptr, i64, i64 }, ptr %a607 - store { ptr, i64, i64 } { ptr @.str.5064, i64 32, i64 0 }, ptr %a616 + store { ptr, i64, i64 } { ptr @.str.5271, i64 32, i64 0 }, ptr %a616 store { ptr, i64, i64 } %t614, ptr %a617 call void @finch_str_concat(ptr %a615, ptr %a616, ptr %a617) %t618 = load { ptr, i64, i64 }, ptr %a615 store { ptr, i64, i64 } %t618, ptr %a620 - store { ptr, i64, i64 } { ptr @.str.5065, i64 1, i64 0 }, ptr %a621 + store { ptr, i64, i64 } { ptr @.str.5272, i64 1, i64 0 }, ptr %a621 call void @finch_str_concat(ptr %a619, ptr %a620, ptr %a621) store { ptr, i64, i64 } %t618, ptr %a622 call void @finch_str_drop(ptr %a622) @@ -79904,12 +83837,12 @@ then7845: call void @finch.gen.release(ptr %t627, %S.gen.Val %t628) %t629 = load ptr, ptr %a1 %t630 = load { ptr, i64, i64 }, ptr %a626 - store { ptr, i64, i64 } { ptr @.str.5066, i64 12, i64 0 }, ptr %a632 + store { ptr, i64, i64 } { ptr @.str.5273, i64 12, i64 0 }, ptr %a632 store { ptr, i64, i64 } %t630, ptr %a633 call void @finch_str_concat(ptr %a631, ptr %a632, ptr %a633) %t634 = load { ptr, i64, i64 }, ptr %a631 store { ptr, i64, i64 } %t634, ptr %a636 - store { ptr, i64, i64 } { ptr @.str.5067, i64 3, i64 0 }, ptr %a637 + store { ptr, i64, i64 } { ptr @.str.5274, i64 3, i64 0 }, ptr %a637 call void @finch_str_concat(ptr %a635, ptr %a636, ptr %a637) store { ptr, i64, i64 } %t634, ptr %a638 call void @finch_str_drop(ptr %a638) @@ -79918,7 +83851,7 @@ then7845: store { ptr, i64, i64 } %t639, ptr %a641 call void @finch_str_drop(ptr %a641) %t642 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t640, 0 - %t643 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5068, i64 4, i64 0 }) + %t643 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5275, i64 4, i64 0 }) %t644 = insertvalue %S.gen.Val %t642, %S.ast.Type %t643, 1 call void @finch_str_drop(ptr %a626) call void @finch_str_drop(ptr %a607) @@ -79926,18 +83859,18 @@ then7845: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t644 -endif7847: +endif8240: %t645 = load ptr, ptr %a1 %t646 = call { ptr, i64, i64 } @finch.gen.strOut(ptr %t645) store { ptr, i64, i64 } %t646, ptr %a647 %t648 = load ptr, ptr %a1 %t649 = icmp eq ptr %t648, null - br i1 %t649, label %panic7848, label %ok7849 -panic7848: - call void @finch_panic(ptr @.str.5069, i64 4699, ptr @.str.5070) + br i1 %t649, label %panic8241, label %ok8242 +panic8241: + call void @finch_panic(ptr @.str.5276, i64 4926, ptr @.str.5277) unreachable -ok7849: - %t650 = getelementptr inbounds %S.gen.Gen, ptr %t648, i32 0, i32 40 +ok8242: + %t650 = getelementptr inbounds %S.gen.Gen, ptr %t648, i32 0, i32 41 %t651 = load { ptr, i64, i64 }, ptr %t650 %t652 = load %S.ast.Node, ptr %a2 %t653 = call { ptr, i64, i64 } @finch.gen.nodeKey(%S.ast.Node %t652) @@ -79947,25 +83880,25 @@ ok7849: %t657 = icmp ne i32 %t656, 0 store { ptr, i64, i64 } %t653, ptr %a658 call void @finch_str_drop(ptr %a658) - br i1 %t657, label %then7850, label %endif7852 -then7850: + br i1 %t657, label %then8243, label %endif8245 +then8243: %t659 = load ptr, ptr %a1 - %t660 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t659, { ptr, i64, i64 } { ptr @.str.5071, i64 17, i64 0 }) + %t660 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t659, { ptr, i64, i64 } { ptr @.str.5278, i64 17, i64 0 }) store { ptr, i64, i64 } %t660, ptr %a661 %t662 = load ptr, ptr %a1 %t663 = load { ptr, i64, i64 }, ptr %a647 - call void @finch.gen.store(ptr %t662, { ptr, i64, i64 } { ptr @.str.5072, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5073, i64 15, i64 0 }, { ptr, i64, i64 } %t663) + call void @finch.gen.store(ptr %t662, { ptr, i64, i64 } { ptr @.str.5279, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5280, i64 15, i64 0 }, { ptr, i64, i64 } %t663) %t664 = load ptr, ptr %a1 %t665 = load { ptr, i64, i64 }, ptr %a661 - call void @finch.gen.store(ptr %t664, { ptr, i64, i64 } { ptr @.str.5074, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5075, i64 15, i64 0 }, { ptr, i64, i64 } %t665) + call void @finch.gen.store(ptr %t664, { ptr, i64, i64 } { ptr @.str.5281, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5282, i64 15, i64 0 }, { ptr, i64, i64 } %t665) %t666 = load ptr, ptr %a1 %t667 = load { ptr, i64, i64 }, ptr %a647 - store { ptr, i64, i64 } { ptr @.str.5076, i64 34, i64 0 }, ptr %a669 + store { ptr, i64, i64 } { ptr @.str.5283, i64 34, i64 0 }, ptr %a669 store { ptr, i64, i64 } %t667, ptr %a670 call void @finch_str_concat(ptr %a668, ptr %a669, ptr %a670) %t671 = load { ptr, i64, i64 }, ptr %a668 store { ptr, i64, i64 } %t671, ptr %a673 - store { ptr, i64, i64 } { ptr @.str.5077, i64 6, i64 0 }, ptr %a674 + store { ptr, i64, i64 } { ptr @.str.5284, i64 6, i64 0 }, ptr %a674 call void @finch_str_concat(ptr %a672, ptr %a673, ptr %a674) store { ptr, i64, i64 } %t671, ptr %a675 call void @finch_str_drop(ptr %a675) @@ -79978,7 +83911,7 @@ then7850: call void @finch_str_drop(ptr %a681) %t682 = load { ptr, i64, i64 }, ptr %a678 store { ptr, i64, i64 } %t682, ptr %a684 - store { ptr, i64, i64 } { ptr @.str.5078, i64 6, i64 0 }, ptr %a685 + store { ptr, i64, i64 } { ptr @.str.5285, i64 6, i64 0 }, ptr %a685 call void @finch_str_concat(ptr %a683, ptr %a684, ptr %a685) store { ptr, i64, i64 } %t682, ptr %a686 call void @finch_str_drop(ptr %a686) @@ -79991,7 +83924,7 @@ then7850: call void @finch_str_drop(ptr %a692) %t693 = load { ptr, i64, i64 }, ptr %a689 store { ptr, i64, i64 } %t693, ptr %a695 - store { ptr, i64, i64 } { ptr @.str.5079, i64 1, i64 0 }, ptr %a696 + store { ptr, i64, i64 } { ptr @.str.5286, i64 1, i64 0 }, ptr %a696 call void @finch_str_concat(ptr %a694, ptr %a695, ptr %a696) store { ptr, i64, i64 } %t693, ptr %a697 call void @finch_str_drop(ptr %a697) @@ -80002,12 +83935,12 @@ then7850: store { ptr, i64, i64 } %t699, ptr %a701 %t702 = load ptr, ptr %a1 %t703 = load { ptr, i64, i64 }, ptr %a701 - store { ptr, i64, i64 } { ptr @.str.5080, i64 12, i64 0 }, ptr %a705 + store { ptr, i64, i64 } { ptr @.str.5287, i64 12, i64 0 }, ptr %a705 store { ptr, i64, i64 } %t703, ptr %a706 call void @finch_str_concat(ptr %a704, ptr %a705, ptr %a706) %t707 = load { ptr, i64, i64 }, ptr %a704 store { ptr, i64, i64 } %t707, ptr %a709 - store { ptr, i64, i64 } { ptr @.str.5081, i64 3, i64 0 }, ptr %a710 + store { ptr, i64, i64 } { ptr @.str.5288, i64 3, i64 0 }, ptr %a710 call void @finch_str_concat(ptr %a708, ptr %a709, ptr %a710) store { ptr, i64, i64 } %t707, ptr %a711 call void @finch_str_drop(ptr %a711) @@ -80017,27 +83950,27 @@ then7850: call void @finch_str_drop(ptr %a714) %t715 = load ptr, ptr %a1 %t716 = icmp eq ptr %t715, null - br i1 %t716, label %panic7853, label %ok7854 -panic7853: - call void @finch_panic(ptr @.str.5082, i64 4704, ptr @.str.5083) + br i1 %t716, label %panic8246, label %ok8247 +panic8246: + call void @finch_panic(ptr @.str.5289, i64 4931, ptr @.str.5290) unreachable -ok7854: - %t717 = getelementptr inbounds %S.gen.Gen, ptr %t715, i32 0, i32 41 +ok8247: + %t717 = getelementptr inbounds %S.gen.Gen, ptr %t715, i32 0, i32 42 %t718 = load { ptr, i64, i64 }, ptr %t717 store { ptr, i64, i64 } %t713, ptr %t717 store { ptr, i64, i64 } %t718, ptr %a719 call void @finch_str_drop(ptr %a719) %t720 = load ptr, ptr %a1 %t721 = load { ptr, i64, i64 }, ptr %a661 - %t722 = call { ptr, i64, i64 } @finch.gen.load(ptr %t720, { ptr, i64, i64 } { ptr @.str.5084, i64 17, i64 0 }, { ptr, i64, i64 } %t721) + %t722 = call { ptr, i64, i64 } @finch.gen.load(ptr %t720, { ptr, i64, i64 } { ptr @.str.5291, i64 17, i64 0 }, { ptr, i64, i64 } %t721) %t723 = load ptr, ptr %a1 %t724 = icmp eq ptr %t723, null - br i1 %t724, label %panic7855, label %ok7856 -panic7855: - call void @finch_panic(ptr @.str.5085, i64 4705, ptr @.str.5086) + br i1 %t724, label %panic8248, label %ok8249 +panic8248: + call void @finch_panic(ptr @.str.5292, i64 4932, ptr @.str.5293) unreachable -ok7856: - %t725 = getelementptr inbounds %S.gen.Gen, ptr %t723, i32 0, i32 42 +ok8249: + %t725 = getelementptr inbounds %S.gen.Gen, ptr %t723, i32 0, i32 43 %t726 = load { ptr, i64, i64 }, ptr %t725 store { ptr, i64, i64 } %t722, ptr %t725 store { ptr, i64, i64 } %t726, ptr %a727 @@ -80047,9 +83980,9 @@ ok7856: call void @finch.gen.release(ptr %t728, %S.gen.Val %t729) %t730 = load ptr, ptr %a1 %t731 = load { ptr, i64, i64 }, ptr %a647 - %t732 = call { ptr, i64, i64 } @finch.gen.load(ptr %t730, { ptr, i64, i64 } { ptr @.str.5087, i64 17, i64 0 }, { ptr, i64, i64 } %t731) + %t732 = call { ptr, i64, i64 } @finch.gen.load(ptr %t730, { ptr, i64, i64 } { ptr @.str.5294, i64 17, i64 0 }, { ptr, i64, i64 } %t731) %t733 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t732, 0 - %t734 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5088, i64 3, i64 0 }) + %t734 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5295, i64 3, i64 0 }) %t735 = insertvalue %S.gen.Val %t733, %S.ast.Type %t734, 1 %t736 = insertvalue %S.gen.Val %t735, i1 true, 2 call void @finch_str_drop(ptr %a701) @@ -80060,26 +83993,26 @@ ok7856: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t736 -endif7852: +endif8245: %t737 = load ptr, ptr %a1 %t738 = load ptr, ptr %a1 %t739 = icmp eq ptr %t738, null - br i1 %t739, label %panic7857, label %ok7858 -panic7857: - call void @finch_panic(ptr @.str.5089, i64 4709, ptr @.str.5090) + br i1 %t739, label %panic8250, label %ok8251 +panic8250: + call void @finch_panic(ptr @.str.5296, i64 4936, ptr @.str.5297) unreachable -ok7858: +ok8251: %t740 = getelementptr inbounds %S.gen.Gen, ptr %t738, i32 0, i32 1 %t741 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 13 %t742 = load i64, ptr %t741 %t743 = load { ptr, i64, i64 }, ptr %t740 %t744 = extractvalue { ptr, i64, i64 } %t743, 1 %t745 = icmp uge i64 %t742, %t744 - br i1 %t745, label %range7859, label %inrange7860 -range7859: - call void @finch_panic_index(ptr @.str.5091, i64 4709, i64 %t742, i64 %t744) + br i1 %t745, label %range8252, label %inrange8253 +range8252: + call void @finch_panic_index(ptr @.str.5298, i64 4936, i64 %t742, i64 %t744) unreachable -inrange7860: +inrange8253: %t746 = extractvalue { ptr, i64, i64 } %t743, 0 %t747 = getelementptr inbounds { ptr, i64, i64 }, ptr %t746, i64 %t742 %t748 = load { ptr, i64, i64 }, ptr %t747 @@ -80087,12 +84020,12 @@ inrange7860: store { ptr, i64, i64 } %t749, ptr %a750 %t751 = load ptr, ptr %a1 %t752 = load { ptr, i64, i64 }, ptr %a647 - store { ptr, i64, i64 } { ptr @.str.5092, i64 31, i64 0 }, ptr %a754 + store { ptr, i64, i64 } { ptr @.str.5299, i64 31, i64 0 }, ptr %a754 store { ptr, i64, i64 } %t752, ptr %a755 call void @finch_str_concat(ptr %a753, ptr %a754, ptr %a755) %t756 = load { ptr, i64, i64 }, ptr %a753 store { ptr, i64, i64 } %t756, ptr %a758 - store { ptr, i64, i64 } { ptr @.str.5093, i64 6, i64 0 }, ptr %a759 + store { ptr, i64, i64 } { ptr @.str.5300, i64 6, i64 0 }, ptr %a759 call void @finch_str_concat(ptr %a757, ptr %a758, ptr %a759) store { ptr, i64, i64 } %t756, ptr %a760 call void @finch_str_drop(ptr %a760) @@ -80105,7 +84038,7 @@ inrange7860: call void @finch_str_drop(ptr %a766) %t767 = load { ptr, i64, i64 }, ptr %a763 store { ptr, i64, i64 } %t767, ptr %a769 - store { ptr, i64, i64 } { ptr @.str.5094, i64 6, i64 0 }, ptr %a770 + store { ptr, i64, i64 } { ptr @.str.5301, i64 6, i64 0 }, ptr %a770 call void @finch_str_concat(ptr %a768, ptr %a769, ptr %a770) store { ptr, i64, i64 } %t767, ptr %a771 call void @finch_str_drop(ptr %a771) @@ -80118,7 +84051,7 @@ inrange7860: call void @finch_str_drop(ptr %a777) %t778 = load { ptr, i64, i64 }, ptr %a774 store { ptr, i64, i64 } %t778, ptr %a780 - store { ptr, i64, i64 } { ptr @.str.5095, i64 6, i64 0 }, ptr %a781 + store { ptr, i64, i64 } { ptr @.str.5302, i64 6, i64 0 }, ptr %a781 call void @finch_str_concat(ptr %a779, ptr %a780, ptr %a781) store { ptr, i64, i64 } %t778, ptr %a782 call void @finch_str_drop(ptr %a782) @@ -80136,7 +84069,7 @@ inrange7860: call void @finch_str_drop(ptr %a792) %t793 = load { ptr, i64, i64 }, ptr %a788 store { ptr, i64, i64 } %t793, ptr %a795 - store { ptr, i64, i64 } { ptr @.str.5096, i64 1, i64 0 }, ptr %a796 + store { ptr, i64, i64 } { ptr @.str.5303, i64 1, i64 0 }, ptr %a796 call void @finch_str_concat(ptr %a794, ptr %a795, ptr %a796) store { ptr, i64, i64 } %t793, ptr %a797 call void @finch_str_drop(ptr %a797) @@ -80149,9 +84082,9 @@ inrange7860: call void @finch.gen.release(ptr %t800, %S.gen.Val %t801) %t802 = load ptr, ptr %a1 %t803 = load { ptr, i64, i64 }, ptr %a647 - %t804 = call { ptr, i64, i64 } @finch.gen.load(ptr %t802, { ptr, i64, i64 } { ptr @.str.5097, i64 17, i64 0 }, { ptr, i64, i64 } %t803) + %t804 = call { ptr, i64, i64 } @finch.gen.load(ptr %t802, { ptr, i64, i64 } { ptr @.str.5304, i64 17, i64 0 }, { ptr, i64, i64 } %t803) %t805 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t804, 0 - %t806 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5098, i64 3, i64 0 }) + %t806 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5305, i64 3, i64 0 }) %t807 = insertvalue %S.gen.Val %t805, %S.ast.Type %t806, 1 %t808 = insertvalue %S.gen.Val %t807, i1 true, 2 call void @finch_str_drop(ptr %a750) @@ -80161,14 +84094,14 @@ inrange7860: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t808 -endif7842: +endif8235: %t809 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t809, ptr %a810 - store { ptr, i64, i64 } { ptr @.str.5099, i64 10, i64 0 }, ptr %a811 + store { ptr, i64, i64 } { ptr @.str.5306, i64 10, i64 0 }, ptr %a811 %t812 = call i32 @finch_str_eq(ptr %a810, ptr %a811) %t813 = icmp ne i32 %t812, 0 - br i1 %t813, label %then7861, label %endif7863 -then7861: + br i1 %t813, label %then8254, label %endif8256 +then8254: %t814 = load ptr, ptr %a1 %t815 = load %S.ast.Node, ptr %a2 %t816 = load { ptr, i64, i64 }, ptr %a8 @@ -80178,23 +84111,23 @@ then7861: %t819 = load { ptr, i64, i64 }, ptr %t818 %t820 = extractvalue { ptr, i64, i64 } %t819, 1 %t821 = icmp uge i64 0, %t820 - br i1 %t821, label %range7864, label %inrange7865 -range7864: - call void @finch_panic_index(ptr @.str.5100, i64 4716, i64 0, i64 %t820) + br i1 %t821, label %range8257, label %inrange8258 +range8257: + call void @finch_panic_index(ptr @.str.5307, i64 4943, i64 0, i64 %t820) unreachable -inrange7865: +inrange8258: %t822 = extractvalue { ptr, i64, i64 } %t819, 0 %t823 = getelementptr inbounds %S.ast.Node, ptr %t822, i64 0 %t824 = load %S.ast.Node, ptr %t823 - %t825 = call %S.gen.Val @finch.gen.strArg(ptr %t817, %S.ast.Node %t824, { ptr, i64, i64 } { ptr @.str.5101, i64 13, i64 0 }) + %t825 = call %S.gen.Val @finch.gen.strArg(ptr %t817, %S.ast.Node %t824, { ptr, i64, i64 } { ptr @.str.5308, i64 13, i64 0 }) store %S.gen.Val %t825, ptr %a826 %t827 = load ptr, ptr %a1 %t828 = icmp eq ptr %t827, null - br i1 %t828, label %panic7866, label %ok7867 -panic7866: - call void @finch_panic(ptr @.str.5102, i64 4717, ptr @.str.5103) + br i1 %t828, label %panic8259, label %ok8260 +panic8259: + call void @finch_panic(ptr @.str.5309, i64 4944, ptr @.str.5310) unreachable -ok7867: +ok8260: %t829 = getelementptr inbounds %S.gen.Gen, ptr %t827, i32 0, i32 11 %t830 = getelementptr inbounds { ptr, i64, i64 }, ptr %t829, i32 0, i32 1 %t831 = load i64, ptr %t830 @@ -80207,15 +84140,15 @@ ok7867: %t837 = load { ptr, i64, i64 }, ptr %t836 %t838 = extractvalue { ptr, i64, i64 } %t837, 1 %t839 = icmp uge i64 1, %t838 - br i1 %t839, label %range7868, label %inrange7869 -range7868: - call void @finch_panic_index(ptr @.str.5104, i64 4719, i64 1, i64 %t838) + br i1 %t839, label %range8261, label %inrange8262 +range8261: + call void @finch_panic_index(ptr @.str.5311, i64 4946, i64 1, i64 %t838) unreachable -inrange7869: +inrange8262: %t840 = extractvalue { ptr, i64, i64 } %t837, 0 %t841 = getelementptr inbounds %S.ast.Node, ptr %t840, i64 1 %t842 = load %S.ast.Node, ptr %t841 - %t843 = call %S.gen.Val @finch.gen.strArg(ptr %t835, %S.ast.Node %t842, { ptr, i64, i64 } { ptr @.str.5105, i64 8, i64 0 }) + %t843 = call %S.gen.Val @finch.gen.strArg(ptr %t835, %S.ast.Node %t842, { ptr, i64, i64 } { ptr @.str.5312, i64 8, i64 0 }) store %S.gen.Val %t843, ptr %a844 %t845 = load ptr, ptr %a1 %t846 = load i64, ptr %a832 @@ -80230,12 +84163,12 @@ inrange7869: store { ptr, i64, i64 } %t853, ptr %a854 %t855 = load ptr, ptr %a1 %t856 = icmp eq ptr %t855, null - br i1 %t856, label %panic7870, label %ok7871 -panic7870: - call void @finch_panic(ptr @.str.5106, i64 4723, ptr @.str.5107) + br i1 %t856, label %panic8263, label %ok8264 +panic8263: + call void @finch_panic(ptr @.str.5313, i64 4950, ptr @.str.5314) unreachable -ok7871: - %t857 = getelementptr inbounds %S.gen.Gen, ptr %t855, i32 0, i32 40 +ok8264: + %t857 = getelementptr inbounds %S.gen.Gen, ptr %t855, i32 0, i32 41 %t858 = load { ptr, i64, i64 }, ptr %t857 %t859 = load %S.ast.Node, ptr %a2 %t860 = call { ptr, i64, i64 } @finch.gen.nodeKey(%S.ast.Node %t859) @@ -80245,22 +84178,22 @@ ok7871: %t864 = icmp ne i32 %t863, 0 store { ptr, i64, i64 } %t860, ptr %a865 call void @finch_str_drop(ptr %a865) - br i1 %t864, label %then7872, label %endif7874 -then7872: + br i1 %t864, label %then8265, label %endif8267 +then8265: %t866 = load ptr, ptr %a1 - %t867 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t866, { ptr, i64, i64 } { ptr @.str.5108, i64 17, i64 0 }) + %t867 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t866, { ptr, i64, i64 } { ptr @.str.5315, i64 17, i64 0 }) store { ptr, i64, i64 } %t867, ptr %a868 %t869 = load ptr, ptr %a1 %t870 = load { ptr, i64, i64 }, ptr %a868 - call void @finch.gen.store(ptr %t869, { ptr, i64, i64 } { ptr @.str.5109, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5110, i64 15, i64 0 }, { ptr, i64, i64 } %t870) + call void @finch.gen.store(ptr %t869, { ptr, i64, i64 } { ptr @.str.5316, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5317, i64 15, i64 0 }, { ptr, i64, i64 } %t870) %t871 = load ptr, ptr %a1 %t872 = load { ptr, i64, i64 }, ptr %a850 - store { ptr, i64, i64 } { ptr @.str.5111, i64 35, i64 0 }, ptr %a874 + store { ptr, i64, i64 } { ptr @.str.5318, i64 35, i64 0 }, ptr %a874 store { ptr, i64, i64 } %t872, ptr %a875 call void @finch_str_concat(ptr %a873, ptr %a874, ptr %a875) %t876 = load { ptr, i64, i64 }, ptr %a873 store { ptr, i64, i64 } %t876, ptr %a878 - store { ptr, i64, i64 } { ptr @.str.5112, i64 6, i64 0 }, ptr %a879 + store { ptr, i64, i64 } { ptr @.str.5319, i64 6, i64 0 }, ptr %a879 call void @finch_str_concat(ptr %a877, ptr %a878, ptr %a879) store { ptr, i64, i64 } %t876, ptr %a880 call void @finch_str_drop(ptr %a880) @@ -80273,7 +84206,7 @@ then7872: call void @finch_str_drop(ptr %a886) %t887 = load { ptr, i64, i64 }, ptr %a883 store { ptr, i64, i64 } %t887, ptr %a889 - store { ptr, i64, i64 } { ptr @.str.5113, i64 6, i64 0 }, ptr %a890 + store { ptr, i64, i64 } { ptr @.str.5320, i64 6, i64 0 }, ptr %a890 call void @finch_str_concat(ptr %a888, ptr %a889, ptr %a890) store { ptr, i64, i64 } %t887, ptr %a891 call void @finch_str_drop(ptr %a891) @@ -80286,7 +84219,7 @@ then7872: call void @finch_str_drop(ptr %a897) %t898 = load { ptr, i64, i64 }, ptr %a894 store { ptr, i64, i64 } %t898, ptr %a900 - store { ptr, i64, i64 } { ptr @.str.5114, i64 1, i64 0 }, ptr %a901 + store { ptr, i64, i64 } { ptr @.str.5321, i64 1, i64 0 }, ptr %a901 call void @finch_str_concat(ptr %a899, ptr %a900, ptr %a901) store { ptr, i64, i64 } %t898, ptr %a902 call void @finch_str_drop(ptr %a902) @@ -80297,12 +84230,12 @@ then7872: store { ptr, i64, i64 } %t904, ptr %a906 %t907 = load ptr, ptr %a1 %t908 = load { ptr, i64, i64 }, ptr %a906 - store { ptr, i64, i64 } { ptr @.str.5115, i64 12, i64 0 }, ptr %a910 + store { ptr, i64, i64 } { ptr @.str.5322, i64 12, i64 0 }, ptr %a910 store { ptr, i64, i64 } %t908, ptr %a911 call void @finch_str_concat(ptr %a909, ptr %a910, ptr %a911) %t912 = load { ptr, i64, i64 }, ptr %a909 store { ptr, i64, i64 } %t912, ptr %a914 - store { ptr, i64, i64 } { ptr @.str.5116, i64 3, i64 0 }, ptr %a915 + store { ptr, i64, i64 } { ptr @.str.5323, i64 3, i64 0 }, ptr %a915 call void @finch_str_concat(ptr %a913, ptr %a914, ptr %a915) store { ptr, i64, i64 } %t912, ptr %a916 call void @finch_str_drop(ptr %a916) @@ -80312,27 +84245,27 @@ then7872: call void @finch_str_drop(ptr %a919) %t920 = load ptr, ptr %a1 %t921 = icmp eq ptr %t920, null - br i1 %t921, label %panic7875, label %ok7876 -panic7875: - call void @finch_panic(ptr @.str.5117, i64 4727, ptr @.str.5118) + br i1 %t921, label %panic8268, label %ok8269 +panic8268: + call void @finch_panic(ptr @.str.5324, i64 4954, ptr @.str.5325) unreachable -ok7876: - %t922 = getelementptr inbounds %S.gen.Gen, ptr %t920, i32 0, i32 41 +ok8269: + %t922 = getelementptr inbounds %S.gen.Gen, ptr %t920, i32 0, i32 42 %t923 = load { ptr, i64, i64 }, ptr %t922 store { ptr, i64, i64 } %t918, ptr %t922 store { ptr, i64, i64 } %t923, ptr %a924 call void @finch_str_drop(ptr %a924) %t925 = load ptr, ptr %a1 %t926 = load { ptr, i64, i64 }, ptr %a868 - %t927 = call { ptr, i64, i64 } @finch.gen.load(ptr %t925, { ptr, i64, i64 } { ptr @.str.5119, i64 17, i64 0 }, { ptr, i64, i64 } %t926) + %t927 = call { ptr, i64, i64 } @finch.gen.load(ptr %t925, { ptr, i64, i64 } { ptr @.str.5326, i64 17, i64 0 }, { ptr, i64, i64 } %t926) %t928 = load ptr, ptr %a1 %t929 = icmp eq ptr %t928, null - br i1 %t929, label %panic7877, label %ok7878 -panic7877: - call void @finch_panic(ptr @.str.5120, i64 4728, ptr @.str.5121) + br i1 %t929, label %panic8270, label %ok8271 +panic8270: + call void @finch_panic(ptr @.str.5327, i64 4955, ptr @.str.5328) unreachable -ok7878: - %t930 = getelementptr inbounds %S.gen.Gen, ptr %t928, i32 0, i32 42 +ok8271: + %t930 = getelementptr inbounds %S.gen.Gen, ptr %t928, i32 0, i32 43 %t931 = load { ptr, i64, i64 }, ptr %t930 store { ptr, i64, i64 } %t927, ptr %t930 store { ptr, i64, i64 } %t931, ptr %a932 @@ -80343,7 +84276,7 @@ ok7878: %t935 = load ptr, ptr %a1 %t936 = load %S.gen.Val, ptr %a844 call void @finch.gen.release(ptr %t935, %S.gen.Val %t936) - %t937 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5122, i64 4, i64 0 }) + %t937 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5329, i64 4, i64 0 }) %t938 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t937, 1 call void @finch_str_drop(ptr %a906) call void @finch_str_drop(ptr %a868) @@ -80354,15 +84287,15 @@ ok7878: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t938 -endif7874: +endif8267: %t939 = load ptr, ptr %a1 %t940 = load { ptr, i64, i64 }, ptr %a850 - store { ptr, i64, i64 } { ptr @.str.5123, i64 31, i64 0 }, ptr %a942 + store { ptr, i64, i64 } { ptr @.str.5330, i64 31, i64 0 }, ptr %a942 store { ptr, i64, i64 } %t940, ptr %a943 call void @finch_str_concat(ptr %a941, ptr %a942, ptr %a943) %t944 = load { ptr, i64, i64 }, ptr %a941 store { ptr, i64, i64 } %t944, ptr %a946 - store { ptr, i64, i64 } { ptr @.str.5124, i64 6, i64 0 }, ptr %a947 + store { ptr, i64, i64 } { ptr @.str.5331, i64 6, i64 0 }, ptr %a947 call void @finch_str_concat(ptr %a945, ptr %a946, ptr %a947) store { ptr, i64, i64 } %t944, ptr %a948 call void @finch_str_drop(ptr %a948) @@ -80375,7 +84308,7 @@ endif7874: call void @finch_str_drop(ptr %a954) %t955 = load { ptr, i64, i64 }, ptr %a951 store { ptr, i64, i64 } %t955, ptr %a957 - store { ptr, i64, i64 } { ptr @.str.5125, i64 1, i64 0 }, ptr %a958 + store { ptr, i64, i64 } { ptr @.str.5332, i64 1, i64 0 }, ptr %a958 call void @finch_str_concat(ptr %a956, ptr %a957, ptr %a958) store { ptr, i64, i64 } %t955, ptr %a959 call void @finch_str_drop(ptr %a959) @@ -80392,12 +84325,12 @@ endif7874: call void @finch.gen.release(ptr %t966, %S.gen.Val %t967) %t968 = load ptr, ptr %a1 %t969 = load { ptr, i64, i64 }, ptr %a963 - store { ptr, i64, i64 } { ptr @.str.5126, i64 12, i64 0 }, ptr %a971 + store { ptr, i64, i64 } { ptr @.str.5333, i64 12, i64 0 }, ptr %a971 store { ptr, i64, i64 } %t969, ptr %a972 call void @finch_str_concat(ptr %a970, ptr %a971, ptr %a972) %t973 = load { ptr, i64, i64 }, ptr %a970 store { ptr, i64, i64 } %t973, ptr %a975 - store { ptr, i64, i64 } { ptr @.str.5127, i64 3, i64 0 }, ptr %a976 + store { ptr, i64, i64 } { ptr @.str.5334, i64 3, i64 0 }, ptr %a976 call void @finch_str_concat(ptr %a974, ptr %a975, ptr %a976) store { ptr, i64, i64 } %t973, ptr %a977 call void @finch_str_drop(ptr %a977) @@ -80406,7 +84339,7 @@ endif7874: store { ptr, i64, i64 } %t978, ptr %a980 call void @finch_str_drop(ptr %a980) %t981 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t979, 0 - %t982 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5128, i64 4, i64 0 }) + %t982 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5335, i64 4, i64 0 }) %t983 = insertvalue %S.gen.Val %t981, %S.ast.Type %t982, 1 call void @finch_str_drop(ptr %a963) call void @finch_str_drop(ptr %a854) @@ -80416,14 +84349,14 @@ endif7874: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t983 -endif7863: +endif8256: %t984 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t984, ptr %a985 - store { ptr, i64, i64 } { ptr @.str.5129, i64 11, i64 0 }, ptr %a986 + store { ptr, i64, i64 } { ptr @.str.5336, i64 11, i64 0 }, ptr %a986 %t987 = call i32 @finch_str_eq(ptr %a985, ptr %a986) %t988 = icmp ne i32 %t987, 0 - br i1 %t988, label %then7879, label %endif7881 -then7879: + br i1 %t988, label %then8272, label %endif8274 +then8272: %t989 = load ptr, ptr %a1 %t990 = load %S.ast.Node, ptr %a2 %t991 = load { ptr, i64, i64 }, ptr %a8 @@ -80433,27 +84366,27 @@ then7879: %t994 = load { ptr, i64, i64 }, ptr %t993 %t995 = extractvalue { ptr, i64, i64 } %t994, 1 %t996 = icmp uge i64 0, %t995 - br i1 %t996, label %range7882, label %inrange7883 -range7882: - call void @finch_panic_index(ptr @.str.5130, i64 4740, i64 0, i64 %t995) + br i1 %t996, label %range8275, label %inrange8276 +range8275: + call void @finch_panic_index(ptr @.str.5337, i64 4967, i64 0, i64 %t995) unreachable -inrange7883: +inrange8276: %t997 = extractvalue { ptr, i64, i64 } %t994, 0 %t998 = getelementptr inbounds %S.ast.Node, ptr %t997, i64 0 %t999 = load %S.ast.Node, ptr %t998 - %t1000 = call %S.gen.Val @finch.gen.strArg(ptr %t992, %S.ast.Node %t999, { ptr, i64, i64 } { ptr @.str.5131, i64 13, i64 0 }) + %t1000 = call %S.gen.Val @finch.gen.strArg(ptr %t992, %S.ast.Node %t999, { ptr, i64, i64 } { ptr @.str.5338, i64 13, i64 0 }) store %S.gen.Val %t1000, ptr %a1001 %t1002 = load ptr, ptr %a1 %t1003 = call { ptr, i64, i64 } @finch.gen.strOut(ptr %t1002) store { ptr, i64, i64 } %t1003, ptr %a1004 %t1005 = load ptr, ptr %a1 %t1006 = load { ptr, i64, i64 }, ptr %a1004 - store { ptr, i64, i64 } { ptr @.str.5132, i64 30, i64 0 }, ptr %a1008 + store { ptr, i64, i64 } { ptr @.str.5339, i64 30, i64 0 }, ptr %a1008 store { ptr, i64, i64 } %t1006, ptr %a1009 call void @finch_str_concat(ptr %a1007, ptr %a1008, ptr %a1009) %t1010 = load { ptr, i64, i64 }, ptr %a1007 store { ptr, i64, i64 } %t1010, ptr %a1012 - store { ptr, i64, i64 } { ptr @.str.5133, i64 6, i64 0 }, ptr %a1013 + store { ptr, i64, i64 } { ptr @.str.5340, i64 6, i64 0 }, ptr %a1013 call void @finch_str_concat(ptr %a1011, ptr %a1012, ptr %a1013) store { ptr, i64, i64 } %t1010, ptr %a1014 call void @finch_str_drop(ptr %a1014) @@ -80470,7 +84403,7 @@ inrange7883: call void @finch_str_drop(ptr %a1023) %t1024 = load { ptr, i64, i64 }, ptr %a1019 store { ptr, i64, i64 } %t1024, ptr %a1026 - store { ptr, i64, i64 } { ptr @.str.5134, i64 1, i64 0 }, ptr %a1027 + store { ptr, i64, i64 } { ptr @.str.5341, i64 1, i64 0 }, ptr %a1027 call void @finch_str_concat(ptr %a1025, ptr %a1026, ptr %a1027) store { ptr, i64, i64 } %t1024, ptr %a1028 call void @finch_str_drop(ptr %a1028) @@ -80480,12 +84413,12 @@ inrange7883: call void @finch_str_drop(ptr %a1030) %t1031 = load ptr, ptr %a1 %t1032 = icmp eq ptr %t1031, null - br i1 %t1032, label %panic7884, label %ok7885 -panic7884: - call void @finch_panic(ptr @.str.5135, i64 4743, ptr @.str.5136) + br i1 %t1032, label %panic8277, label %ok8278 +panic8277: + call void @finch_panic(ptr @.str.5342, i64 4970, ptr @.str.5343) unreachable -ok7885: - %t1033 = getelementptr inbounds %S.gen.Gen, ptr %t1031, i32 0, i32 40 +ok8278: + %t1033 = getelementptr inbounds %S.gen.Gen, ptr %t1031, i32 0, i32 41 %t1034 = load { ptr, i64, i64 }, ptr %t1033 %t1035 = load %S.ast.Node, ptr %a2 %t1036 = call { ptr, i64, i64 } @finch.gen.nodeKey(%S.ast.Node %t1035) @@ -80495,22 +84428,22 @@ ok7885: %t1040 = icmp ne i32 %t1039, 0 store { ptr, i64, i64 } %t1036, ptr %a1041 call void @finch_str_drop(ptr %a1041) - br i1 %t1040, label %then7886, label %endif7888 -then7886: + br i1 %t1040, label %then8279, label %endif8281 +then8279: %t1042 = load ptr, ptr %a1 - %t1043 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t1042, { ptr, i64, i64 } { ptr @.str.5137, i64 17, i64 0 }) + %t1043 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t1042, { ptr, i64, i64 } { ptr @.str.5344, i64 17, i64 0 }) store { ptr, i64, i64 } %t1043, ptr %a1044 %t1045 = load ptr, ptr %a1 %t1046 = load { ptr, i64, i64 }, ptr %a1044 - call void @finch.gen.store(ptr %t1045, { ptr, i64, i64 } { ptr @.str.5138, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5139, i64 15, i64 0 }, { ptr, i64, i64 } %t1046) + call void @finch.gen.store(ptr %t1045, { ptr, i64, i64 } { ptr @.str.5345, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5346, i64 15, i64 0 }, { ptr, i64, i64 } %t1046) %t1047 = load ptr, ptr %a1 %t1048 = load { ptr, i64, i64 }, ptr %a1004 - store { ptr, i64, i64 } { ptr @.str.5140, i64 36, i64 0 }, ptr %a1050 + store { ptr, i64, i64 } { ptr @.str.5347, i64 36, i64 0 }, ptr %a1050 store { ptr, i64, i64 } %t1048, ptr %a1051 call void @finch_str_concat(ptr %a1049, ptr %a1050, ptr %a1051) %t1052 = load { ptr, i64, i64 }, ptr %a1049 store { ptr, i64, i64 } %t1052, ptr %a1054 - store { ptr, i64, i64 } { ptr @.str.5141, i64 6, i64 0 }, ptr %a1055 + store { ptr, i64, i64 } { ptr @.str.5348, i64 6, i64 0 }, ptr %a1055 call void @finch_str_concat(ptr %a1053, ptr %a1054, ptr %a1055) store { ptr, i64, i64 } %t1052, ptr %a1056 call void @finch_str_drop(ptr %a1056) @@ -80523,7 +84456,7 @@ then7886: call void @finch_str_drop(ptr %a1062) %t1063 = load { ptr, i64, i64 }, ptr %a1059 store { ptr, i64, i64 } %t1063, ptr %a1065 - store { ptr, i64, i64 } { ptr @.str.5142, i64 1, i64 0 }, ptr %a1066 + store { ptr, i64, i64 } { ptr @.str.5349, i64 1, i64 0 }, ptr %a1066 call void @finch_str_concat(ptr %a1064, ptr %a1065, ptr %a1066) store { ptr, i64, i64 } %t1063, ptr %a1067 call void @finch_str_drop(ptr %a1067) @@ -80534,12 +84467,12 @@ then7886: store { ptr, i64, i64 } %t1069, ptr %a1071 %t1072 = load ptr, ptr %a1 %t1073 = load { ptr, i64, i64 }, ptr %a1071 - store { ptr, i64, i64 } { ptr @.str.5143, i64 12, i64 0 }, ptr %a1075 + store { ptr, i64, i64 } { ptr @.str.5350, i64 12, i64 0 }, ptr %a1075 store { ptr, i64, i64 } %t1073, ptr %a1076 call void @finch_str_concat(ptr %a1074, ptr %a1075, ptr %a1076) %t1077 = load { ptr, i64, i64 }, ptr %a1074 store { ptr, i64, i64 } %t1077, ptr %a1079 - store { ptr, i64, i64 } { ptr @.str.5144, i64 3, i64 0 }, ptr %a1080 + store { ptr, i64, i64 } { ptr @.str.5351, i64 3, i64 0 }, ptr %a1080 call void @finch_str_concat(ptr %a1078, ptr %a1079, ptr %a1080) store { ptr, i64, i64 } %t1077, ptr %a1081 call void @finch_str_drop(ptr %a1081) @@ -80549,41 +84482,41 @@ then7886: call void @finch_str_drop(ptr %a1084) %t1085 = load ptr, ptr %a1 %t1086 = icmp eq ptr %t1085, null - br i1 %t1086, label %panic7889, label %ok7890 -panic7889: - call void @finch_panic(ptr @.str.5145, i64 4747, ptr @.str.5146) + br i1 %t1086, label %panic8282, label %ok8283 +panic8282: + call void @finch_panic(ptr @.str.5352, i64 4974, ptr @.str.5353) unreachable -ok7890: - %t1087 = getelementptr inbounds %S.gen.Gen, ptr %t1085, i32 0, i32 41 +ok8283: + %t1087 = getelementptr inbounds %S.gen.Gen, ptr %t1085, i32 0, i32 42 %t1088 = load { ptr, i64, i64 }, ptr %t1087 store { ptr, i64, i64 } %t1083, ptr %t1087 store { ptr, i64, i64 } %t1088, ptr %a1089 call void @finch_str_drop(ptr %a1089) %t1090 = load ptr, ptr %a1 %t1091 = load { ptr, i64, i64 }, ptr %a1044 - %t1092 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1090, { ptr, i64, i64 } { ptr @.str.5147, i64 17, i64 0 }, { ptr, i64, i64 } %t1091) + %t1092 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1090, { ptr, i64, i64 } { ptr @.str.5354, i64 17, i64 0 }, { ptr, i64, i64 } %t1091) %t1093 = load ptr, ptr %a1 %t1094 = icmp eq ptr %t1093, null - br i1 %t1094, label %panic7891, label %ok7892 -panic7891: - call void @finch_panic(ptr @.str.5148, i64 4748, ptr @.str.5149) + br i1 %t1094, label %panic8284, label %ok8285 +panic8284: + call void @finch_panic(ptr @.str.5355, i64 4975, ptr @.str.5356) unreachable -ok7892: - %t1095 = getelementptr inbounds %S.gen.Gen, ptr %t1093, i32 0, i32 42 +ok8285: + %t1095 = getelementptr inbounds %S.gen.Gen, ptr %t1093, i32 0, i32 43 %t1096 = load { ptr, i64, i64 }, ptr %t1095 store { ptr, i64, i64 } %t1092, ptr %t1095 store { ptr, i64, i64 } %t1096, ptr %a1097 call void @finch_str_drop(ptr %a1097) %t1098 = load ptr, ptr %a1 %t1099 = load { ptr, i64, i64 }, ptr %a1004 - %t1100 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5150, i64 3, i64 0 }) + %t1100 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5357, i64 3, i64 0 }) call void @finch.gen.dropAt(ptr %t1098, { ptr, i64, i64 } %t1099, %S.ast.Type %t1100) store %S.ast.Type %t1100, ptr %a1101 call void @finch.drop.S_ast_Type(ptr %a1101) %t1102 = load ptr, ptr %a1 %t1103 = load %S.gen.Val, ptr %a1001 call void @finch.gen.release(ptr %t1102, %S.gen.Val %t1103) - %t1104 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5151, i64 4, i64 0 }) + %t1104 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5358, i64 4, i64 0 }) %t1105 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t1104, 1 call void @finch_str_drop(ptr %a1071) call void @finch_str_drop(ptr %a1044) @@ -80592,15 +84525,15 @@ ok7892: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t1105 -endif7888: +endif8281: %t1106 = load ptr, ptr %a1 %t1107 = load { ptr, i64, i64 }, ptr %a1004 - store { ptr, i64, i64 } { ptr @.str.5152, i64 32, i64 0 }, ptr %a1109 + store { ptr, i64, i64 } { ptr @.str.5359, i64 32, i64 0 }, ptr %a1109 store { ptr, i64, i64 } %t1107, ptr %a1110 call void @finch_str_concat(ptr %a1108, ptr %a1109, ptr %a1110) %t1111 = load { ptr, i64, i64 }, ptr %a1108 store { ptr, i64, i64 } %t1111, ptr %a1113 - store { ptr, i64, i64 } { ptr @.str.5153, i64 1, i64 0 }, ptr %a1114 + store { ptr, i64, i64 } { ptr @.str.5360, i64 1, i64 0 }, ptr %a1114 call void @finch_str_concat(ptr %a1112, ptr %a1113, ptr %a1114) store { ptr, i64, i64 } %t1111, ptr %a1115 call void @finch_str_drop(ptr %a1115) @@ -80611,7 +84544,7 @@ endif7888: store { ptr, i64, i64 } %t1117, ptr %a1119 %t1120 = load ptr, ptr %a1 %t1121 = load { ptr, i64, i64 }, ptr %a1004 - %t1122 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5154, i64 3, i64 0 }) + %t1122 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5361, i64 3, i64 0 }) call void @finch.gen.dropAt(ptr %t1120, { ptr, i64, i64 } %t1121, %S.ast.Type %t1122) store %S.ast.Type %t1122, ptr %a1123 call void @finch.drop.S_ast_Type(ptr %a1123) @@ -80620,12 +84553,12 @@ endif7888: call void @finch.gen.release(ptr %t1124, %S.gen.Val %t1125) %t1126 = load ptr, ptr %a1 %t1127 = load { ptr, i64, i64 }, ptr %a1119 - store { ptr, i64, i64 } { ptr @.str.5155, i64 12, i64 0 }, ptr %a1129 + store { ptr, i64, i64 } { ptr @.str.5362, i64 12, i64 0 }, ptr %a1129 store { ptr, i64, i64 } %t1127, ptr %a1130 call void @finch_str_concat(ptr %a1128, ptr %a1129, ptr %a1130) %t1131 = load { ptr, i64, i64 }, ptr %a1128 store { ptr, i64, i64 } %t1131, ptr %a1133 - store { ptr, i64, i64 } { ptr @.str.5156, i64 3, i64 0 }, ptr %a1134 + store { ptr, i64, i64 } { ptr @.str.5363, i64 3, i64 0 }, ptr %a1134 call void @finch_str_concat(ptr %a1132, ptr %a1133, ptr %a1134) store { ptr, i64, i64 } %t1131, ptr %a1135 call void @finch_str_drop(ptr %a1135) @@ -80634,7 +84567,7 @@ endif7888: store { ptr, i64, i64 } %t1136, ptr %a1138 call void @finch_str_drop(ptr %a1138) %t1139 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t1137, 0 - %t1140 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5157, i64 4, i64 0 }) + %t1140 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5364, i64 4, i64 0 }) %t1141 = insertvalue %S.gen.Val %t1139, %S.ast.Type %t1140, 1 call void @finch_str_drop(ptr %a1119) call void @finch_str_drop(ptr %a1004) @@ -80642,14 +84575,14 @@ endif7888: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t1141 -endif7881: +endif8274: %t1142 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t1142, ptr %a1143 - store { ptr, i64, i64 } { ptr @.str.5158, i64 5, i64 0 }, ptr %a1144 + store { ptr, i64, i64 } { ptr @.str.5365, i64 5, i64 0 }, ptr %a1144 %t1145 = call i32 @finch_str_eq(ptr %a1143, ptr %a1144) %t1146 = icmp ne i32 %t1145, 0 - br i1 %t1146, label %then7893, label %endif7895 -then7893: + br i1 %t1146, label %then8286, label %endif8288 +then8286: %t1147 = load ptr, ptr %a1 %t1148 = load %S.ast.Node, ptr %a2 %t1149 = load { ptr, i64, i64 }, ptr %a8 @@ -80659,27 +84592,27 @@ then7893: %t1152 = load { ptr, i64, i64 }, ptr %t1151 %t1153 = extractvalue { ptr, i64, i64 } %t1152, 1 %t1154 = icmp uge i64 0, %t1153 - br i1 %t1154, label %range7896, label %inrange7897 -range7896: - call void @finch_panic_index(ptr @.str.5159, i64 4760, i64 0, i64 %t1153) + br i1 %t1154, label %range8289, label %inrange8290 +range8289: + call void @finch_panic_index(ptr @.str.5366, i64 4987, i64 0, i64 %t1153) unreachable -inrange7897: +inrange8290: %t1155 = extractvalue { ptr, i64, i64 } %t1152, 0 %t1156 = getelementptr inbounds %S.ast.Node, ptr %t1155, i64 0 %t1157 = load %S.ast.Node, ptr %t1156 - %t1158 = call %S.gen.Val @finch.gen.strArg(ptr %t1150, %S.ast.Node %t1157, { ptr, i64, i64 } { ptr @.str.5160, i64 11, i64 0 }) + %t1158 = call %S.gen.Val @finch.gen.strArg(ptr %t1150, %S.ast.Node %t1157, { ptr, i64, i64 } { ptr @.str.5367, i64 11, i64 0 }) store %S.gen.Val %t1158, ptr %a1159 %t1160 = load ptr, ptr %a1 %t1161 = call { ptr, i64, i64 } @finch.gen.strOut(ptr %t1160) store { ptr, i64, i64 } %t1161, ptr %a1162 %t1163 = load ptr, ptr %a1 %t1164 = load { ptr, i64, i64 }, ptr %a1162 - store { ptr, i64, i64 } { ptr @.str.5161, i64 30, i64 0 }, ptr %a1166 + store { ptr, i64, i64 } { ptr @.str.5368, i64 30, i64 0 }, ptr %a1166 store { ptr, i64, i64 } %t1164, ptr %a1167 call void @finch_str_concat(ptr %a1165, ptr %a1166, ptr %a1167) %t1168 = load { ptr, i64, i64 }, ptr %a1165 store { ptr, i64, i64 } %t1168, ptr %a1170 - store { ptr, i64, i64 } { ptr @.str.5162, i64 6, i64 0 }, ptr %a1171 + store { ptr, i64, i64 } { ptr @.str.5369, i64 6, i64 0 }, ptr %a1171 call void @finch_str_concat(ptr %a1169, ptr %a1170, ptr %a1171) store { ptr, i64, i64 } %t1168, ptr %a1172 call void @finch_str_drop(ptr %a1172) @@ -80696,7 +84629,7 @@ inrange7897: call void @finch_str_drop(ptr %a1181) %t1182 = load { ptr, i64, i64 }, ptr %a1177 store { ptr, i64, i64 } %t1182, ptr %a1184 - store { ptr, i64, i64 } { ptr @.str.5163, i64 1, i64 0 }, ptr %a1185 + store { ptr, i64, i64 } { ptr @.str.5370, i64 1, i64 0 }, ptr %a1185 call void @finch_str_concat(ptr %a1183, ptr %a1184, ptr %a1185) store { ptr, i64, i64 } %t1182, ptr %a1186 call void @finch_str_drop(ptr %a1186) @@ -80706,12 +84639,12 @@ inrange7897: call void @finch_str_drop(ptr %a1188) %t1189 = load ptr, ptr %a1 %t1190 = load { ptr, i64, i64 }, ptr %a1162 - store { ptr, i64, i64 } { ptr @.str.5164, i64 26, i64 0 }, ptr %a1192 + store { ptr, i64, i64 } { ptr @.str.5371, i64 26, i64 0 }, ptr %a1192 store { ptr, i64, i64 } %t1190, ptr %a1193 call void @finch_str_concat(ptr %a1191, ptr %a1192, ptr %a1193) %t1194 = load { ptr, i64, i64 }, ptr %a1191 store { ptr, i64, i64 } %t1194, ptr %a1196 - store { ptr, i64, i64 } { ptr @.str.5165, i64 1, i64 0 }, ptr %a1197 + store { ptr, i64, i64 } { ptr @.str.5372, i64 1, i64 0 }, ptr %a1197 call void @finch_str_concat(ptr %a1195, ptr %a1196, ptr %a1197) store { ptr, i64, i64 } %t1194, ptr %a1198 call void @finch_str_drop(ptr %a1198) @@ -80722,7 +84655,7 @@ inrange7897: store { ptr, i64, i64 } %t1200, ptr %a1202 %t1203 = load ptr, ptr %a1 %t1204 = load { ptr, i64, i64 }, ptr %a1162 - %t1205 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5166, i64 3, i64 0 }) + %t1205 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5373, i64 3, i64 0 }) call void @finch.gen.dropAt(ptr %t1203, { ptr, i64, i64 } %t1204, %S.ast.Type %t1205) store %S.ast.Type %t1205, ptr %a1206 call void @finch.drop.S_ast_Type(ptr %a1206) @@ -80734,7 +84667,7 @@ inrange7897: call void @finch_str_copy(ptr %a1211, ptr %a1210) %t1212 = load { ptr, i64, i64 }, ptr %a1211 %t1213 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t1212, 0 - %t1214 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5167, i64 3, i64 0 }) + %t1214 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5374, i64 3, i64 0 }) %t1215 = insertvalue %S.gen.Val %t1213, %S.ast.Type %t1214, 1 call void @finch_str_drop(ptr %a1202) call void @finch_str_drop(ptr %a1162) @@ -80742,14 +84675,14 @@ inrange7897: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t1215 -endif7895: +endif8288: %t1216 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t1216, ptr %a1217 - store { ptr, i64, i64 } { ptr @.str.5168, i64 4, i64 0 }, ptr %a1218 + store { ptr, i64, i64 } { ptr @.str.5375, i64 4, i64 0 }, ptr %a1218 %t1219 = call i32 @finch_str_eq(ptr %a1217, ptr %a1218) %t1220 = icmp ne i32 %t1219, 0 - br i1 %t1220, label %then7898, label %endif7900 -then7898: + br i1 %t1220, label %then8291, label %endif8293 +then8291: %t1221 = load ptr, ptr %a1 %t1222 = load %S.ast.Node, ptr %a2 %t1223 = load { ptr, i64, i64 }, ptr %a8 @@ -80760,29 +84693,29 @@ then7898: %t1227 = load { ptr, i64, i64 }, ptr %t1226 %t1228 = extractvalue { ptr, i64, i64 } %t1227, 1 %t1229 = icmp uge i64 0, %t1228 - br i1 %t1229, label %range7901, label %inrange7902 -range7901: - call void @finch_panic_index(ptr @.str.5169, i64 4770, i64 0, i64 %t1228) + br i1 %t1229, label %range8294, label %inrange8295 +range8294: + call void @finch_panic_index(ptr @.str.5376, i64 4997, i64 0, i64 %t1228) unreachable -inrange7902: +inrange8295: %t1230 = extractvalue { ptr, i64, i64 } %t1227, 0 %t1231 = getelementptr inbounds %S.ast.Node, ptr %t1230, i64 0 %t1232 = load %S.ast.Node, ptr %t1231 %t1233 = call %S.gen.Val @finch.gen.expr(ptr %t1225, %S.ast.Node %t1232) - %t1234 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5170, i64 3, i64 0 }) + %t1234 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5377, i64 3, i64 0 }) %t1235 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t1236 = load { ptr, i64, i64 }, ptr %t1235 %t1237 = extractvalue { ptr, i64, i64 } %t1236, 1 %t1238 = icmp uge i64 0, %t1237 - br i1 %t1238, label %range7903, label %inrange7904 -range7903: - call void @finch_panic_index(ptr @.str.5171, i64 4770, i64 0, i64 %t1237) + br i1 %t1238, label %range8296, label %inrange8297 +range8296: + call void @finch_panic_index(ptr @.str.5378, i64 4997, i64 0, i64 %t1237) unreachable -inrange7904: +inrange8297: %t1239 = extractvalue { ptr, i64, i64 } %t1236, 0 %t1240 = getelementptr inbounds %S.ast.Node, ptr %t1239, i64 0 %t1241 = load %S.ast.Node, ptr %t1240 - %t1242 = call %S.gen.Val @finch.gen.coerce(ptr %t1224, %S.gen.Val %t1233, %S.ast.Type %t1234, %S.ast.Node %t1241, { ptr, i64, i64 } { ptr @.str.5172, i64 13, i64 0 }) + %t1242 = call %S.gen.Val @finch.gen.coerce(ptr %t1224, %S.gen.Val %t1233, %S.ast.Type %t1234, %S.ast.Node %t1241, { ptr, i64, i64 } { ptr @.str.5379, i64 13, i64 0 }) store %S.gen.Val %t1233, ptr %a1243 call void @finch.drop.S_gen_Val(ptr %a1243) store %S.ast.Type %t1234, ptr %a1244 @@ -80791,12 +84724,12 @@ inrange7904: %t1246 = load ptr, ptr %a1 %t1247 = getelementptr inbounds %S.gen.Val, ptr %a1245, i32 0, i32 0 %t1248 = load { ptr, i64, i64 }, ptr %t1247 - store { ptr, i64, i64 } { ptr @.str.5173, i64 10, i64 0 }, ptr %a1250 + store { ptr, i64, i64 } { ptr @.str.5380, i64 10, i64 0 }, ptr %a1250 store { ptr, i64, i64 } %t1248, ptr %a1251 call void @finch_str_concat(ptr %a1249, ptr %a1250, ptr %a1251) %t1252 = load { ptr, i64, i64 }, ptr %a1249 store { ptr, i64, i64 } %t1252, ptr %a1254 - store { ptr, i64, i64 } { ptr @.str.5174, i64 7, i64 0 }, ptr %a1255 + store { ptr, i64, i64 } { ptr @.str.5381, i64 7, i64 0 }, ptr %a1255 call void @finch_str_concat(ptr %a1253, ptr %a1254, ptr %a1255) store { ptr, i64, i64 } %t1252, ptr %a1256 call void @finch_str_drop(ptr %a1256) @@ -80806,16 +84739,16 @@ inrange7904: call void @finch_str_drop(ptr %a1259) store { ptr, i64, i64 } %t1258, ptr %a1260 %t1261 = load ptr, ptr %a1 - %t1262 = call { ptr, i64, i64 } @finch.gen.op(ptr %t1261, { ptr, i64, i64 } { ptr @.str.5175, i64 26, i64 0 }) + %t1262 = call { ptr, i64, i64 } @finch.gen.op(ptr %t1261, { ptr, i64, i64 } { ptr @.str.5382, i64 26, i64 0 }) store { ptr, i64, i64 } %t1262, ptr %a1263 %t1264 = load ptr, ptr %a1 %t1265 = load { ptr, i64, i64 }, ptr %a1260 - store { ptr, i64, i64 } { ptr @.str.5176, i64 20, i64 0 }, ptr %a1267 + store { ptr, i64, i64 } { ptr @.str.5383, i64 20, i64 0 }, ptr %a1267 store { ptr, i64, i64 } %t1265, ptr %a1268 call void @finch_str_concat(ptr %a1266, ptr %a1267, ptr %a1268) %t1269 = load { ptr, i64, i64 }, ptr %a1266 store { ptr, i64, i64 } %t1269, ptr %a1271 - store { ptr, i64, i64 } { ptr @.str.5177, i64 1, i64 0 }, ptr %a1272 + store { ptr, i64, i64 } { ptr @.str.5384, i64 1, i64 0 }, ptr %a1272 call void @finch_str_concat(ptr %a1270, ptr %a1271, ptr %a1272) store { ptr, i64, i64 } %t1269, ptr %a1273 call void @finch_str_drop(ptr %a1273) @@ -80823,7 +84756,7 @@ inrange7904: call void @finch.gen.emit(ptr %t1264, { ptr, i64, i64 } %t1274) store { ptr, i64, i64 } %t1274, ptr %a1275 call void @finch_str_drop(ptr %a1275) - %t1276 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5178, i64 4, i64 0 }) + %t1276 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5385, i64 4, i64 0 }) %t1277 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t1276, 1 call void @finch_str_drop(ptr %a1263) call void @finch_str_drop(ptr %a1260) @@ -80831,23 +84764,23 @@ inrange7904: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t1277 -endif7900: +endif8293: %t1278 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t1278, ptr %a1279 - store { ptr, i64, i64 } { ptr @.str.5179, i64 5, i64 0 }, ptr %a1280 + store { ptr, i64, i64 } { ptr @.str.5386, i64 5, i64 0 }, ptr %a1280 %t1281 = call i32 @finch_str_eq(ptr %a1279, ptr %a1280) %t1282 = icmp ne i32 %t1281, 0 - br i1 %t1282, label %then7905, label %endif7907 -then7905: + br i1 %t1282, label %then8298, label %endif8300 +then8298: %t1283 = load ptr, ptr %a1 - %t1284 = call %S.gen.Val @finch.gen.strConst(ptr %t1283, { ptr, i64, i64 } { ptr @.str.5180, i64 0, i64 0 }) + %t1284 = call %S.gen.Val @finch.gen.strConst(ptr %t1283, { ptr, i64, i64 } { ptr @.str.5387, i64 0, i64 0 }) store %S.gen.Val %t1284, ptr %a1285 %t1286 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t1287 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1286, i32 0, i32 1 %t1288 = load i64, ptr %t1287 %t1289 = icmp sgt i64 %t1288, 0 - br i1 %t1289, label %then7908, label %endif7910 -then7908: + br i1 %t1289, label %then8301, label %endif8303 +then8301: %t1290 = load ptr, ptr %a1 %t1291 = load %S.ast.Node, ptr %a2 %t1292 = load { ptr, i64, i64 }, ptr %a8 @@ -80857,32 +84790,32 @@ then7908: %t1295 = load { ptr, i64, i64 }, ptr %t1294 %t1296 = extractvalue { ptr, i64, i64 } %t1295, 1 %t1297 = icmp uge i64 0, %t1296 - br i1 %t1297, label %range7911, label %inrange7912 -range7911: - call void @finch_panic_index(ptr @.str.5181, i64 4780, i64 0, i64 %t1296) + br i1 %t1297, label %range8304, label %inrange8305 +range8304: + call void @finch_panic_index(ptr @.str.5388, i64 5007, i64 0, i64 %t1296) unreachable -inrange7912: +inrange8305: %t1298 = extractvalue { ptr, i64, i64 } %t1295, 0 %t1299 = getelementptr inbounds %S.ast.Node, ptr %t1298, i64 0 %t1300 = load %S.ast.Node, ptr %t1299 - %t1301 = call %S.gen.Val @finch.gen.strArg(ptr %t1293, %S.ast.Node %t1300, { ptr, i64, i64 } { ptr @.str.5182, i64 12, i64 0 }) + %t1301 = call %S.gen.Val @finch.gen.strArg(ptr %t1293, %S.ast.Node %t1300, { ptr, i64, i64 } { ptr @.str.5389, i64 12, i64 0 }) %t1302 = load %S.gen.Val, ptr %a1285 store %S.gen.Val %t1301, ptr %a1285 store %S.gen.Val %t1302, ptr %a1303 call void @finch.drop.S_gen_Val(ptr %a1303) - br label %endif7910 -endif7910: + br label %endif8303 +endif8303: %t1304 = load ptr, ptr %a1 %t1305 = call { ptr, i64, i64 } @finch.gen.strOut(ptr %t1304) store { ptr, i64, i64 } %t1305, ptr %a1306 %t1307 = load ptr, ptr %a1 %t1308 = load { ptr, i64, i64 }, ptr %a1306 - store { ptr, i64, i64 } { ptr @.str.5183, i64 27, i64 0 }, ptr %a1310 + store { ptr, i64, i64 } { ptr @.str.5390, i64 27, i64 0 }, ptr %a1310 store { ptr, i64, i64 } %t1308, ptr %a1311 call void @finch_str_concat(ptr %a1309, ptr %a1310, ptr %a1311) %t1312 = load { ptr, i64, i64 }, ptr %a1309 store { ptr, i64, i64 } %t1312, ptr %a1314 - store { ptr, i64, i64 } { ptr @.str.5184, i64 6, i64 0 }, ptr %a1315 + store { ptr, i64, i64 } { ptr @.str.5391, i64 6, i64 0 }, ptr %a1315 call void @finch_str_concat(ptr %a1313, ptr %a1314, ptr %a1315) store { ptr, i64, i64 } %t1312, ptr %a1316 call void @finch_str_drop(ptr %a1316) @@ -80899,7 +84832,7 @@ endif7910: call void @finch_str_drop(ptr %a1325) %t1326 = load { ptr, i64, i64 }, ptr %a1321 store { ptr, i64, i64 } %t1326, ptr %a1328 - store { ptr, i64, i64 } { ptr @.str.5185, i64 1, i64 0 }, ptr %a1329 + store { ptr, i64, i64 } { ptr @.str.5392, i64 1, i64 0 }, ptr %a1329 call void @finch_str_concat(ptr %a1327, ptr %a1328, ptr %a1329) store { ptr, i64, i64 } %t1326, ptr %a1330 call void @finch_str_drop(ptr %a1330) @@ -80912,9 +84845,9 @@ endif7910: call void @finch.gen.release(ptr %t1333, %S.gen.Val %t1334) %t1335 = load ptr, ptr %a1 %t1336 = load { ptr, i64, i64 }, ptr %a1306 - %t1337 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1335, { ptr, i64, i64 } { ptr @.str.5186, i64 17, i64 0 }, { ptr, i64, i64 } %t1336) + %t1337 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1335, { ptr, i64, i64 } { ptr @.str.5393, i64 17, i64 0 }, { ptr, i64, i64 } %t1336) %t1338 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t1337, 0 - %t1339 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5187, i64 3, i64 0 }) + %t1339 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5394, i64 3, i64 0 }) %t1340 = insertvalue %S.gen.Val %t1338, %S.ast.Type %t1339, 1 %t1341 = insertvalue %S.gen.Val %t1340, i1 true, 2 call void @finch_str_drop(ptr %a1306) @@ -80922,14 +84855,14 @@ endif7910: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t1341 -endif7907: +endif8300: %t1342 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t1342, ptr %a1343 - store { ptr, i64, i64 } { ptr @.str.5188, i64 3, i64 0 }, ptr %a1344 + store { ptr, i64, i64 } { ptr @.str.5395, i64 3, i64 0 }, ptr %a1344 %t1345 = call i32 @finch_str_eq(ptr %a1343, ptr %a1344) %t1346 = icmp ne i32 %t1345, 0 - br i1 %t1346, label %then7913, label %endif7915 -then7913: + br i1 %t1346, label %then8306, label %endif8308 +then8306: %t1347 = load ptr, ptr %a1 %t1348 = load %S.ast.Node, ptr %a2 %t1349 = load { ptr, i64, i64 }, ptr %a8 @@ -80939,11 +84872,11 @@ then7913: %t1352 = load { ptr, i64, i64 }, ptr %t1351 %t1353 = extractvalue { ptr, i64, i64 } %t1352, 1 %t1354 = icmp uge i64 0, %t1353 - br i1 %t1354, label %range7916, label %inrange7917 -range7916: - call void @finch_panic_index(ptr @.str.5189, i64 4789, i64 0, i64 %t1353) + br i1 %t1354, label %range8309, label %inrange8310 +range8309: + call void @finch_panic_index(ptr @.str.5396, i64 5016, i64 0, i64 %t1353) unreachable -inrange7917: +inrange8310: %t1355 = extractvalue { ptr, i64, i64 } %t1352, 0 %t1356 = getelementptr inbounds %S.ast.Node, ptr %t1355, i64 0 %t1357 = load %S.ast.Node, ptr %t1356 @@ -80954,14 +84887,14 @@ inrange7917: %t1362 = getelementptr inbounds %S.gen.Val, ptr %a1359, i32 0, i32 1 %t1363 = load %S.ast.Type, ptr %t1362 %t1364 = call { ptr, i64, i64 } @finch.gen.sizeOf(ptr %t1361, %S.ast.Type %t1363) - store { ptr, i64, i64 } { ptr @.str.5190, i64 26, i64 0 }, ptr %a1366 + store { ptr, i64, i64 } { ptr @.str.5397, i64 26, i64 0 }, ptr %a1366 store { ptr, i64, i64 } %t1364, ptr %a1367 call void @finch_str_concat(ptr %a1365, ptr %a1366, ptr %a1367) store { ptr, i64, i64 } %t1364, ptr %a1368 call void @finch_str_drop(ptr %a1368) %t1369 = load { ptr, i64, i64 }, ptr %a1365 store { ptr, i64, i64 } %t1369, ptr %a1371 - store { ptr, i64, i64 } { ptr @.str.5191, i64 1, i64 0 }, ptr %a1372 + store { ptr, i64, i64 } { ptr @.str.5398, i64 1, i64 0 }, ptr %a1372 call void @finch_str_concat(ptr %a1370, ptr %a1371, ptr %a1372) store { ptr, i64, i64 } %t1369, ptr %a1373 call void @finch_str_drop(ptr %a1373) @@ -80998,14 +84931,14 @@ inrange7917: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t1397 -endif7915: +endif8308: %t1398 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t1398, ptr %a1399 - store { ptr, i64, i64 } { ptr @.str.5192, i64 4, i64 0 }, ptr %a1400 + store { ptr, i64, i64 } { ptr @.str.5399, i64 4, i64 0 }, ptr %a1400 %t1401 = call i32 @finch_str_eq(ptr %a1399, ptr %a1400) %t1402 = icmp ne i32 %t1401, 0 - br i1 %t1402, label %then7918, label %endif7920 -then7918: + br i1 %t1402, label %then8311, label %endif8313 +then8311: %t1403 = load ptr, ptr %a1 %t1404 = load %S.ast.Node, ptr %a2 %t1405 = load { ptr, i64, i64 }, ptr %a8 @@ -81015,11 +84948,11 @@ then7918: %t1408 = load { ptr, i64, i64 }, ptr %t1407 %t1409 = extractvalue { ptr, i64, i64 } %t1408, 1 %t1410 = icmp uge i64 0, %t1409 - br i1 %t1410, label %range7921, label %inrange7922 -range7921: - call void @finch_panic_index(ptr @.str.5193, i64 4796, i64 0, i64 %t1409) + br i1 %t1410, label %range8314, label %inrange8315 +range8314: + call void @finch_panic_index(ptr @.str.5400, i64 5023, i64 0, i64 %t1409) unreachable -inrange7922: +inrange8315: %t1411 = extractvalue { ptr, i64, i64 } %t1408, 0 %t1412 = getelementptr inbounds %S.ast.Node, ptr %t1411, i64 0 %t1413 = load %S.ast.Node, ptr %t1412 @@ -81029,74 +84962,74 @@ inrange7922: %t1417 = getelementptr inbounds %S.ast.Type, ptr %t1416, i32 0, i32 0 %t1418 = load { ptr, i64, i64 }, ptr %t1417 store { ptr, i64, i64 } %t1418, ptr %a1419 - store { ptr, i64, i64 } { ptr @.str.5194, i64 3, i64 0 }, ptr %a1420 + store { ptr, i64, i64 } { ptr @.str.5401, i64 3, i64 0 }, ptr %a1420 %t1421 = call i32 @finch_str_eq(ptr %a1419, ptr %a1420) %t1422 = icmp eq i32 %t1421, 0 - br i1 %t1422, label %then7923, label %endif7925 -then7923: + br i1 %t1422, label %then8316, label %endif8318 +then8316: %t1423 = load ptr, ptr %a1 %t1424 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t1425 = load { ptr, i64, i64 }, ptr %t1424 %t1426 = extractvalue { ptr, i64, i64 } %t1425, 1 %t1427 = icmp uge i64 0, %t1426 - br i1 %t1427, label %range7926, label %inrange7927 -range7926: - call void @finch_panic_index(ptr @.str.5195, i64 4798, i64 0, i64 %t1426) + br i1 %t1427, label %range8319, label %inrange8320 +range8319: + call void @finch_panic_index(ptr @.str.5402, i64 5025, i64 0, i64 %t1426) unreachable -inrange7927: +inrange8320: %t1428 = extractvalue { ptr, i64, i64 } %t1425, 0 %t1429 = getelementptr inbounds %S.ast.Node, ptr %t1428, i64 0 %t1430 = load %S.ast.Node, ptr %t1429 - call void @finch.gen.fail(ptr %t1423, %S.ast.Node %t1430, { ptr, i64, i64 } { ptr @.str.5196, i64 119, i64 0 }) - br label %endif7925 -endif7925: + call void @finch.gen.fail(ptr %t1423, %S.ast.Node %t1430, { ptr, i64, i64 } { ptr @.str.5403, i64 119, i64 0 }) + br label %endif8318 +endif8318: %t1431 = getelementptr inbounds %S.gen.Val, ptr %a1415, i32 0, i32 1 %t1432 = getelementptr inbounds %S.ast.Type, ptr %t1431, i32 0, i32 1 %t1433 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1432, i32 0, i32 1 %t1434 = load i64, ptr %t1433 %t1435 = icmp sgt i64 %t1434, 0 - br label %logic.from7928 -logic.from7928: - br i1 %t1435, label %logic.rhs7929, label %logic.end7930 -logic.rhs7929: + br label %logic.from8321 +logic.from8321: + br i1 %t1435, label %logic.rhs8322, label %logic.end8323 +logic.rhs8322: %t1436 = load ptr, ptr %a1 %t1437 = getelementptr inbounds %S.gen.Val, ptr %a1415, i32 0, i32 1 %t1438 = getelementptr inbounds %S.ast.Type, ptr %t1437, i32 0, i32 1 %t1439 = load { ptr, i64, i64 }, ptr %t1438 %t1440 = extractvalue { ptr, i64, i64 } %t1439, 1 %t1441 = icmp uge i64 0, %t1440 - br i1 %t1441, label %range7931, label %inrange7932 -range7931: - call void @finch_panic_index(ptr @.str.5197, i64 4800, i64 0, i64 %t1440) + br i1 %t1441, label %range8324, label %inrange8325 +range8324: + call void @finch_panic_index(ptr @.str.5404, i64 5027, i64 0, i64 %t1440) unreachable -inrange7932: +inrange8325: %t1442 = extractvalue { ptr, i64, i64 } %t1439, 0 %t1443 = getelementptr inbounds %S.ast.Type, ptr %t1442, i64 0 %t1444 = load %S.ast.Type, ptr %t1443 %t1445 = call i1 @finch.gen.owning(ptr %t1436, %S.ast.Type %t1444) - br label %logic.rend7933 -logic.rend7933: - br label %logic.end7930 -logic.end7930: - %t1446 = phi i1 [ false, %logic.from7928 ], [ %t1445, %logic.rend7933 ] - br i1 %t1446, label %then7934, label %endif7936 -then7934: + br label %logic.rend8326 +logic.rend8326: + br label %logic.end8323 +logic.end8323: + %t1446 = phi i1 [ false, %logic.from8321 ], [ %t1445, %logic.rend8326 ] + br i1 %t1446, label %then8327, label %endif8329 +then8327: %t1447 = load ptr, ptr %a1 - %t1448 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t1447, { ptr, i64, i64 } { ptr @.str.5198, i64 9, i64 0 }) + %t1448 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t1447, { ptr, i64, i64 } { ptr @.str.5405, i64 9, i64 0 }) store { ptr, i64, i64 } %t1448, ptr %a1449 %t1450 = load ptr, ptr %a1 - %t1451 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t1450, { ptr, i64, i64 } { ptr @.str.5199, i64 9, i64 0 }) + %t1451 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t1450, { ptr, i64, i64 } { ptr @.str.5406, i64 9, i64 0 }) store { ptr, i64, i64 } %t1451, ptr %a1452 %t1453 = load ptr, ptr %a1 %t1454 = load ptr, ptr %a1 %t1455 = getelementptr inbounds %S.gen.Val, ptr %a1415, i32 0, i32 0 %t1456 = load { ptr, i64, i64 }, ptr %t1455 - store { ptr, i64, i64 } { ptr @.str.5200, i64 12, i64 0 }, ptr %a1458 + store { ptr, i64, i64 } { ptr @.str.5407, i64 12, i64 0 }, ptr %a1458 store { ptr, i64, i64 } %t1456, ptr %a1459 call void @finch_str_concat(ptr %a1457, ptr %a1458, ptr %a1459) %t1460 = load { ptr, i64, i64 }, ptr %a1457 store { ptr, i64, i64 } %t1460, ptr %a1462 - store { ptr, i64, i64 } { ptr @.str.5201, i64 6, i64 0 }, ptr %a1463 + store { ptr, i64, i64 } { ptr @.str.5408, i64 6, i64 0 }, ptr %a1463 call void @finch_str_concat(ptr %a1461, ptr %a1462, ptr %a1463) store { ptr, i64, i64 } %t1460, ptr %a1464 call void @finch_str_drop(ptr %a1464) @@ -81120,11 +85053,11 @@ then7934: %t1478 = load { ptr, i64, i64 }, ptr %t1477 %t1479 = extractvalue { ptr, i64, i64 } %t1478, 1 %t1480 = icmp uge i64 0, %t1479 - br i1 %t1480, label %range7937, label %inrange7938 -range7937: - call void @finch_panic_index(ptr @.str.5202, i64 4805, i64 0, i64 %t1479) + br i1 %t1480, label %range8330, label %inrange8331 +range8330: + call void @finch_panic_index(ptr @.str.5409, i64 5032, i64 0, i64 %t1479) unreachable -inrange7938: +inrange8331: %t1481 = extractvalue { ptr, i64, i64 } %t1478, 0 %t1482 = getelementptr inbounds %S.ast.Type, ptr %t1481, i64 0 %t1483 = load %S.ast.Type, ptr %t1482 @@ -81137,17 +85070,17 @@ inrange7938: call void @finch.gen.label(ptr %t1486, { ptr, i64, i64 } %t1487) call void @finch_str_drop(ptr %a1452) call void @finch_str_drop(ptr %a1449) - br label %endif7936 -endif7936: + br label %endif8329 +endif8329: %t1488 = load ptr, ptr %a1 %t1489 = getelementptr inbounds %S.gen.Val, ptr %a1415, i32 0, i32 0 %t1490 = load { ptr, i64, i64 }, ptr %t1489 - store { ptr, i64, i64 } { ptr @.str.5203, i64 20, i64 0 }, ptr %a1492 + store { ptr, i64, i64 } { ptr @.str.5410, i64 20, i64 0 }, ptr %a1492 store { ptr, i64, i64 } %t1490, ptr %a1493 call void @finch_str_concat(ptr %a1491, ptr %a1492, ptr %a1493) %t1494 = load { ptr, i64, i64 }, ptr %a1491 store { ptr, i64, i64 } %t1494, ptr %a1496 - store { ptr, i64, i64 } { ptr @.str.5204, i64 1, i64 0 }, ptr %a1497 + store { ptr, i64, i64 } { ptr @.str.5411, i64 1, i64 0 }, ptr %a1497 call void @finch_str_concat(ptr %a1495, ptr %a1496, ptr %a1497) store { ptr, i64, i64 } %t1494, ptr %a1498 call void @finch_str_drop(ptr %a1498) @@ -81155,21 +85088,21 @@ endif7936: call void @finch.gen.emit(ptr %t1488, { ptr, i64, i64 } %t1499) store { ptr, i64, i64 } %t1499, ptr %a1500 call void @finch_str_drop(ptr %a1500) - %t1501 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5205, i64 4, i64 0 }) + %t1501 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5412, i64 4, i64 0 }) %t1502 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t1501, 1 call void @finch.drop.S_gen_Val(ptr %a1415) call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t1502 -endif7920: +endif8313: %t1503 = load ptr, ptr %a1 %t1504 = load ptr, ptr %a1 %t1505 = icmp eq ptr %t1504, null - br i1 %t1505, label %panic7939, label %ok7940 -panic7939: - call void @finch_panic(ptr @.str.5206, i64 4812, ptr @.str.5207) + br i1 %t1505, label %panic8332, label %ok8333 +panic8332: + call void @finch_panic(ptr @.str.5413, i64 5039, ptr @.str.5414) unreachable -ok7940: +ok8333: %t1506 = getelementptr inbounds %S.gen.Gen, ptr %t1504, i32 0, i32 14 %t1507 = load { ptr, i64, i64 }, ptr %t1506 %t1508 = load { ptr, i64, i64 }, ptr %a8 @@ -81177,24 +85110,24 @@ ok7940: store i64 %t1509, ptr %a1510 %t1511 = load i64, ptr %a1510 %t1512 = icmp sge i64 %t1511, 0 - br i1 %t1512, label %then7941, label %endif7943 -then7941: + br i1 %t1512, label %then8334, label %endif8336 +then8334: %t1513 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 5 %t1514 = getelementptr inbounds %S.ast.Type, ptr %t1513, i32 0, i32 1 %t1515 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1514, i32 0, i32 1 %t1516 = load i64, ptr %t1515 %t1517 = icmp sgt i64 %t1516, 0 - br i1 %t1517, label %then7944, label %endif7946 -then7944: + br i1 %t1517, label %then8337, label %endif8339 +then8337: %t1518 = load ptr, ptr %a1 %t1519 = load %S.ast.Node, ptr %a2 %t1520 = load { ptr, i64, i64 }, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.5208, i64 1, i64 0 }, ptr %a1522 + store { ptr, i64, i64 } { ptr @.str.5415, i64 1, i64 0 }, ptr %a1522 store { ptr, i64, i64 } %t1520, ptr %a1523 call void @finch_str_concat(ptr %a1521, ptr %a1522, ptr %a1523) %t1524 = load { ptr, i64, i64 }, ptr %a1521 store { ptr, i64, i64 } %t1524, ptr %a1526 - store { ptr, i64, i64 } { ptr @.str.5209, i64 47, i64 0 }, ptr %a1527 + store { ptr, i64, i64 } { ptr @.str.5416, i64 47, i64 0 }, ptr %a1527 call void @finch_str_concat(ptr %a1525, ptr %a1526, ptr %a1527) store { ptr, i64, i64 } %t1524, ptr %a1528 call void @finch_str_drop(ptr %a1528) @@ -81202,34 +85135,34 @@ then7944: call void @finch.gen.fail(ptr %t1518, %S.ast.Node %t1519, { ptr, i64, i64 } %t1529) store { ptr, i64, i64 } %t1529, ptr %a1530 call void @finch_str_drop(ptr %a1530) - br label %endif7946 -endif7946: + br label %endif8339 +endif8339: %t1531 = load ptr, ptr %a1 %t1532 = load i64, ptr %a1510 %t1533 = load %S.ast.Node, ptr %a2 %t1534 = load { ptr, i64, i64 }, ptr %a8 - %t1535 = call %S.gen.Val @finch.gen.callFn(ptr %t1531, i64 %t1532, %S.ast.Node %t1533, i64 0, { ptr, i64, i64 } %t1534, { ptr, i64, i64 } { ptr @.str.5210, i64 0, i64 0 }, { ptr, i64, i64 } { ptr @.str.5211, i64 0, i64 0 }) + %t1535 = call %S.gen.Val @finch.gen.callFn(ptr %t1531, i64 %t1532, %S.ast.Node %t1533, i64 0, { ptr, i64, i64 } %t1534, { ptr, i64, i64 } { ptr @.str.5417, i64 0, i64 0 }, { ptr, i64, i64 } { ptr @.str.5418, i64 0, i64 0 }) call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t1535 -endif7943: +endif8336: %t1536 = load ptr, ptr %a1 %t1537 = load ptr, ptr %a1 %t1538 = icmp eq ptr %t1537, null - br i1 %t1538, label %panic7947, label %ok7948 -panic7947: - call void @finch_panic(ptr @.str.5212, i64 4819, ptr @.str.5213) + br i1 %t1538, label %panic8340, label %ok8341 +panic8340: + call void @finch_panic(ptr @.str.5419, i64 5046, ptr @.str.5420) unreachable -ok7948: +ok8341: %t1539 = getelementptr inbounds %S.gen.Gen, ptr %t1537, i32 0, i32 14 %t1540 = load { ptr, i64, i64 }, ptr %t1539 %t1541 = load { ptr, i64, i64 }, ptr %a8 - %t1542 = call i64 @finch.gen.findTemplate(ptr %t1536, { ptr, i64, i64 } %t1540, { ptr, i64, i64 } %t1541, { ptr, i64, i64 } { ptr @.str.5214, i64 0, i64 0 }, i1 false) + %t1542 = call i64 @finch.gen.findTemplate(ptr %t1536, { ptr, i64, i64 } %t1540, { ptr, i64, i64 } %t1541, { ptr, i64, i64 } { ptr @.str.5421, i64 0, i64 0 }, i1 false) store i64 %t1542, ptr %a1543 %t1544 = load i64, ptr %a1543 %t1545 = icmp sge i64 %t1544, 0 - br i1 %t1545, label %then7949, label %endif7951 -then7949: + br i1 %t1545, label %then8342, label %endif8344 +then8342: %t1546 = load ptr, ptr %a1 %t1547 = load %S.ast.Node, ptr %a2 %t1548 = load i64, ptr %a1543 @@ -81238,38 +85171,38 @@ then7949: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t1550 -endif7951: +endif8344: %t1551 = load ptr, ptr %a1 %t1552 = load ptr, ptr %a1 %t1553 = icmp eq ptr %t1552, null - br i1 %t1553, label %panic7952, label %ok7953 -panic7952: - call void @finch_panic(ptr @.str.5215, i64 4823, ptr @.str.5216) + br i1 %t1553, label %panic8345, label %ok8346 +panic8345: + call void @finch_panic(ptr @.str.5422, i64 5050, ptr @.str.5423) unreachable -ok7953: +ok8346: %t1554 = getelementptr inbounds %S.gen.Gen, ptr %t1552, i32 0, i32 14 %t1555 = load { ptr, i64, i64 }, ptr %t1554 %t1556 = load { ptr, i64, i64 }, ptr %a8 - %t1557 = call i64 @finch.gen.findTemplate(ptr %t1551, { ptr, i64, i64 } %t1555, { ptr, i64, i64 } %t1556, { ptr, i64, i64 } { ptr @.str.5217, i64 0, i64 0 }, i1 true) + %t1557 = call i64 @finch.gen.findTemplate(ptr %t1551, { ptr, i64, i64 } %t1555, { ptr, i64, i64 } %t1556, { ptr, i64, i64 } { ptr @.str.5424, i64 0, i64 0 }, i1 true) %t1558 = icmp sge i64 %t1557, 0 - br i1 %t1558, label %then7954, label %endif7956 -then7954: + br i1 %t1558, label %then8347, label %endif8349 +then8347: %t1559 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 5 %t1560 = getelementptr inbounds %S.ast.Type, ptr %t1559, i32 0, i32 1 %t1561 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1560, i32 0, i32 1 %t1562 = load i64, ptr %t1561 %t1563 = icmp eq i64 %t1562, 0 - br i1 %t1563, label %then7957, label %endif7959 -then7957: + br i1 %t1563, label %then8350, label %endif8352 +then8350: %t1564 = load ptr, ptr %a1 %t1565 = load %S.ast.Node, ptr %a2 %t1566 = load { ptr, i64, i64 }, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.5218, i64 1, i64 0 }, ptr %a1568 + store { ptr, i64, i64 } { ptr @.str.5425, i64 1, i64 0 }, ptr %a1568 store { ptr, i64, i64 } %t1566, ptr %a1569 call void @finch_str_concat(ptr %a1567, ptr %a1568, ptr %a1569) %t1570 = load { ptr, i64, i64 }, ptr %a1567 store { ptr, i64, i64 } %t1570, ptr %a1572 - store { ptr, i64, i64 } { ptr @.str.5219, i64 42, i64 0 }, ptr %a1573 + store { ptr, i64, i64 } { ptr @.str.5426, i64 42, i64 0 }, ptr %a1573 call void @finch_str_concat(ptr %a1571, ptr %a1572, ptr %a1573) store { ptr, i64, i64 } %t1570, ptr %a1574 call void @finch_str_drop(ptr %a1574) @@ -81282,7 +85215,7 @@ then7957: call void @finch_str_drop(ptr %a1580) %t1581 = load { ptr, i64, i64 }, ptr %a1577 store { ptr, i64, i64 } %t1581, ptr %a1583 - store { ptr, i64, i64 } { ptr @.str.5220, i64 10, i64 0 }, ptr %a1584 + store { ptr, i64, i64 } { ptr @.str.5427, i64 10, i64 0 }, ptr %a1584 call void @finch_str_concat(ptr %a1582, ptr %a1583, ptr %a1584) store { ptr, i64, i64 } %t1581, ptr %a1585 call void @finch_str_drop(ptr %a1585) @@ -81290,20 +85223,20 @@ then7957: call void @finch.gen.fail(ptr %t1564, %S.ast.Node %t1565, { ptr, i64, i64 } %t1586) store { ptr, i64, i64 } %t1586, ptr %a1587 call void @finch_str_drop(ptr %a1587) - br label %endif7959 -endif7959: + br label %endif8352 +endif8352: store { ptr, i64, i64 } zeroinitializer, ptr %a1588 %t1589 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 5 %t1590 = getelementptr inbounds %S.ast.Type, ptr %t1589, i32 0, i32 1 store i64 0, ptr %a1591 - br label %each.cond7960 -each.cond7960: + br label %each.cond8353 +each.cond8353: %t1592 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1590, i32 0, i32 1 %t1593 = load i64, ptr %t1592 %t1594 = load i64, ptr %a1591 %t1595 = icmp slt i64 %t1594, %t1593 - br i1 %t1595, label %each.body7961, label %each.end7963 -each.body7961: + br i1 %t1595, label %each.body8354, label %each.end8356 +each.body8354: %t1596 = load ptr, ptr %t1590 %t1597 = getelementptr inbounds %S.ast.Type, ptr %t1596, i64 %t1594 %t1598 = load %S.ast.Type, ptr %t1597 @@ -81320,21 +85253,21 @@ each.body7961: %t1608 = getelementptr inbounds %S.ast.Type, ptr %t1607, i64 %t1605 store %S.ast.Type %t1604, ptr %t1608 store i64 %t1606, ptr %t1600 - br label %each.step7962 -each.step7962: + br label %each.step8355 +each.step8355: %t1609 = load i64, ptr %a1591 %t1610 = add i64 %t1609, 1 store i64 %t1610, ptr %a1591 - br label %each.cond7960 -each.end7963: + br label %each.cond8353 +each.end8356: %t1611 = load ptr, ptr %a1 %t1612 = load ptr, ptr %a1 %t1613 = icmp eq ptr %t1612, null - br i1 %t1613, label %panic7964, label %ok7965 -panic7964: - call void @finch_panic(ptr @.str.5221, i64 4832, ptr @.str.5222) + br i1 %t1613, label %panic8357, label %ok8358 +panic8357: + call void @finch_panic(ptr @.str.5428, i64 5059, ptr @.str.5429) unreachable -ok7965: +ok8358: %t1614 = getelementptr inbounds %S.gen.Gen, ptr %t1612, i32 0, i32 14 %t1615 = load { ptr, i64, i64 }, ptr %t1614 %t1616 = load { ptr, i64, i64 }, ptr %a8 @@ -81360,15 +85293,15 @@ ok7965: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t1633 -endif7956: +endif8349: %t1634 = load ptr, ptr %a1 %t1635 = load ptr, ptr %a1 %t1636 = icmp eq ptr %t1635, null - br i1 %t1636, label %panic7966, label %ok7967 -panic7966: - call void @finch_panic(ptr @.str.5223, i64 4835, ptr @.str.5224) + br i1 %t1636, label %panic8359, label %ok8360 +panic8359: + call void @finch_panic(ptr @.str.5430, i64 5062, ptr @.str.5431) unreachable -ok7967: +ok8360: %t1637 = getelementptr inbounds %S.gen.Gen, ptr %t1635, i32 0, i32 14 %t1638 = load { ptr, i64, i64 }, ptr %t1637 %t1639 = load { ptr, i64, i64 }, ptr %a8 @@ -81376,25 +85309,25 @@ ok7967: store i64 %t1640, ptr %a1641 %t1642 = load i64, ptr %a1641 %t1643 = icmp sge i64 %t1642, 0 - br i1 %t1643, label %then7968, label %endif7970 -then7968: + br i1 %t1643, label %then8361, label %endif8363 +then8361: %t1644 = load ptr, ptr %a1 %t1645 = icmp eq ptr %t1644, null - br i1 %t1645, label %panic7971, label %ok7972 -panic7971: - call void @finch_panic(ptr @.str.5225, i64 4837, ptr @.str.5226) + br i1 %t1645, label %panic8364, label %ok8365 +panic8364: + call void @finch_panic(ptr @.str.5432, i64 5064, ptr @.str.5433) unreachable -ok7972: +ok8365: %t1646 = getelementptr inbounds %S.gen.Gen, ptr %t1644, i32 0, i32 16 %t1647 = load i64, ptr %a1641 %t1648 = load { ptr, i64, i64 }, ptr %t1646 %t1649 = extractvalue { ptr, i64, i64 } %t1648, 1 %t1650 = icmp uge i64 %t1647, %t1649 - br i1 %t1650, label %range7973, label %inrange7974 -range7973: - call void @finch_panic_index(ptr @.str.5227, i64 4837, i64 %t1647, i64 %t1649) + br i1 %t1650, label %range8366, label %inrange8367 +range8366: + call void @finch_panic_index(ptr @.str.5434, i64 5064, i64 %t1647, i64 %t1649) unreachable -inrange7974: +inrange8367: %t1651 = extractvalue { ptr, i64, i64 } %t1648, 0 %t1652 = getelementptr inbounds %S.gen.StructDef, ptr %t1651, i64 %t1647 %t1653 = load %S.gen.StructDef, ptr %t1652 @@ -81404,45 +85337,45 @@ inrange7974: store %S.gen.StructDef %t1656, ptr %a1657 %t1658 = load ptr, ptr %a1 %t1659 = icmp eq ptr %t1658, null - br i1 %t1659, label %panic7975, label %ok7976 -panic7975: - call void @finch_panic(ptr @.str.5228, i64 4838, ptr @.str.5229) + br i1 %t1659, label %panic8368, label %ok8369 +panic8368: + call void @finch_panic(ptr @.str.5435, i64 5065, ptr @.str.5436) unreachable -ok7976: - %t1660 = getelementptr inbounds %S.gen.Gen, ptr %t1658, i32 0, i32 27 +ok8369: + %t1660 = getelementptr inbounds %S.gen.Gen, ptr %t1658, i32 0, i32 28 %t1661 = load i1, ptr %t1660 - br label %logic.from7977 -logic.from7977: - br i1 %t1661, label %logic.rhs7978, label %logic.end7979 -logic.rhs7978: + br label %logic.from8370 +logic.from8370: + br i1 %t1661, label %logic.rhs8371, label %logic.end8372 +logic.rhs8371: %t1662 = getelementptr inbounds %S.gen.StructDef, ptr %a1657, i32 0, i32 2 %t1663 = load i1, ptr %t1662 %t1664 = xor i1 %t1663, true - br label %logic.rend7980 -logic.rend7980: - br label %logic.end7979 -logic.end7979: - %t1665 = phi i1 [ false, %logic.from7977 ], [ %t1664, %logic.rend7980 ] - br i1 %t1665, label %then7981, label %endif7983 -then7981: + br label %logic.rend8373 +logic.rend8373: + br label %logic.end8372 +logic.end8372: + %t1665 = phi i1 [ false, %logic.from8370 ], [ %t1664, %logic.rend8373 ] + br i1 %t1665, label %then8374, label %endif8376 +then8374: %t1666 = load ptr, ptr %a1 %t1667 = icmp eq ptr %t1666, null - br i1 %t1667, label %panic7984, label %ok7985 -panic7984: - call void @finch_panic(ptr @.str.5230, i64 4839, ptr @.str.5231) + br i1 %t1667, label %panic8377, label %ok8378 +panic8377: + call void @finch_panic(ptr @.str.5437, i64 5066, ptr @.str.5438) unreachable -ok7985: +ok8378: %t1668 = getelementptr inbounds %S.gen.Gen, ptr %t1666, i32 0, i32 0 %t1669 = getelementptr inbounds %S.gen.StructDef, ptr %a1657, i32 0, i32 13 %t1670 = load i64, ptr %t1669 %t1671 = load { ptr, i64, i64 }, ptr %t1668 %t1672 = extractvalue { ptr, i64, i64 } %t1671, 1 %t1673 = icmp uge i64 %t1670, %t1672 - br i1 %t1673, label %range7986, label %inrange7987 -range7986: - call void @finch_panic_index(ptr @.str.5232, i64 4839, i64 %t1670, i64 %t1672) + br i1 %t1673, label %range8379, label %inrange8380 +range8379: + call void @finch_panic_index(ptr @.str.5439, i64 5066, i64 %t1670, i64 %t1672) unreachable -inrange7987: +inrange8380: %t1674 = extractvalue { ptr, i64, i64 } %t1671, 0 %t1675 = getelementptr inbounds %S.ast.Program, ptr %t1674, i64 %t1670 %t1676 = getelementptr inbounds %S.ast.Program, ptr %t1675, i32 0, i32 6 @@ -81451,11 +85384,11 @@ inrange7987: %t1679 = load { ptr, i64, i64 }, ptr %t1676 %t1680 = extractvalue { ptr, i64, i64 } %t1679, 1 %t1681 = icmp uge i64 %t1678, %t1680 - br i1 %t1681, label %range7988, label %inrange7989 -range7988: - call void @finch_panic_index(ptr @.str.5233, i64 4839, i64 %t1678, i64 %t1680) + br i1 %t1681, label %range8381, label %inrange8382 +range8381: + call void @finch_panic_index(ptr @.str.5440, i64 5066, i64 %t1678, i64 %t1680) unreachable -inrange7989: +inrange8382: %t1682 = extractvalue { ptr, i64, i64 } %t1679, 0 %t1683 = getelementptr inbounds %S.ast.Node, ptr %t1682, i64 %t1678 %t1684 = load %S.ast.Node, ptr %t1683 @@ -81471,19 +85404,19 @@ inrange7989: %t1694 = load i64, ptr %t1693 %t1695 = getelementptr inbounds %S.gen.StructDef, ptr %a1657, i32 0, i32 1 %t1696 = load { ptr, i64, i64 }, ptr %t1695 - store { ptr, i64, i64 } { ptr @.str.5234, i64 16, i64 0 }, ptr %a1698 + store { ptr, i64, i64 } { ptr @.str.5441, i64 16, i64 0 }, ptr %a1698 store { ptr, i64, i64 } %t1696, ptr %a1699 call void @finch_str_concat(ptr %a1697, ptr %a1698, ptr %a1699) %t1700 = load { ptr, i64, i64 }, ptr %a1697 store { ptr, i64, i64 } %t1700, ptr %a1702 - store { ptr, i64, i64 } { ptr @.str.5235, i64 3, i64 0 }, ptr %a1703 + store { ptr, i64, i64 } { ptr @.str.5442, i64 3, i64 0 }, ptr %a1703 call void @finch_str_concat(ptr %a1701, ptr %a1702, ptr %a1703) store { ptr, i64, i64 } %t1700, ptr %a1704 call void @finch_str_drop(ptr %a1704) %t1705 = load { ptr, i64, i64 }, ptr %a1701 %t1706 = getelementptr inbounds %S.gen.StructDef, ptr %a1657, i32 0, i32 11 %t1707 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1706, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.5236, i64 2, i64 0 }, ptr %a1708 + store { ptr, i64, i64 } { ptr @.str.5443, i64 2, i64 0 }, ptr %a1708 call void @finch_str_join(ptr %a1709, ptr %t1706, ptr %a1708) %t1710 = load { ptr, i64, i64 }, ptr %a1709 store { ptr, i64, i64 } %t1705, ptr %a1712 @@ -81495,29 +85428,29 @@ inrange7989: call void @finch_str_drop(ptr %a1715) %t1716 = load { ptr, i64, i64 }, ptr %a1711 store { ptr, i64, i64 } %t1716, ptr %a1718 - store { ptr, i64, i64 } { ptr @.str.5237, i64 6, i64 0 }, ptr %a1719 + store { ptr, i64, i64 } { ptr @.str.5444, i64 6, i64 0 }, ptr %a1719 call void @finch_str_concat(ptr %a1717, ptr %a1718, ptr %a1719) store { ptr, i64, i64 } %t1716, ptr %a1720 call void @finch_str_drop(ptr %a1720) %t1721 = load { ptr, i64, i64 }, ptr %a1717 %t1722 = load ptr, ptr %a1 %t1723 = icmp eq ptr %t1722, null - br i1 %t1723, label %panic7990, label %ok7991 -panic7990: - call void @finch_panic(ptr @.str.5238, i64 4840, ptr @.str.5239) + br i1 %t1723, label %panic8383, label %ok8384 +panic8383: + call void @finch_panic(ptr @.str.5445, i64 5067, ptr @.str.5446) unreachable -ok7991: +ok8384: %t1724 = getelementptr inbounds %S.gen.Gen, ptr %t1722, i32 0, i32 1 %t1725 = getelementptr inbounds %S.ast.Node, ptr %a1688, i32 0, i32 13 %t1726 = load i64, ptr %t1725 %t1727 = load { ptr, i64, i64 }, ptr %t1724 %t1728 = extractvalue { ptr, i64, i64 } %t1727, 1 %t1729 = icmp uge i64 %t1726, %t1728 - br i1 %t1729, label %range7992, label %inrange7993 -range7992: - call void @finch_panic_index(ptr @.str.5240, i64 4840, i64 %t1726, i64 %t1728) + br i1 %t1729, label %range8385, label %inrange8386 +range8385: + call void @finch_panic_index(ptr @.str.5447, i64 5067, i64 %t1726, i64 %t1728) unreachable -inrange7993: +inrange8386: %t1730 = extractvalue { ptr, i64, i64 } %t1727, 0 %t1731 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1730, i64 %t1726 %t1732 = load { ptr, i64, i64 }, ptr %t1731 @@ -81529,8 +85462,8 @@ inrange7993: store { ptr, i64, i64 } %t1721, ptr %a1737 call void @finch_str_drop(ptr %a1737) call void @finch.drop.S_ast_Node(ptr %a1688) - br label %endif7983 -endif7983: + br label %endif8376 +endif8376: %t1738 = load ptr, ptr %a1 %t1739 = load i64, ptr %a1641 %t1740 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 @@ -81543,15 +85476,15 @@ endif7983: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t1745 -endif7970: +endif8363: %t1746 = load ptr, ptr %a1 %t1747 = load ptr, ptr %a1 %t1748 = icmp eq ptr %t1747, null - br i1 %t1748, label %panic7994, label %ok7995 -panic7994: - call void @finch_panic(ptr @.str.5241, i64 4844, ptr @.str.5242) + br i1 %t1748, label %panic8387, label %ok8388 +panic8387: + call void @finch_panic(ptr @.str.5448, i64 5071, ptr @.str.5449) unreachable -ok7995: +ok8388: %t1749 = getelementptr inbounds %S.gen.Gen, ptr %t1747, i32 0, i32 14 %t1750 = load { ptr, i64, i64 }, ptr %t1749 %t1751 = load { ptr, i64, i64 }, ptr %a8 @@ -81559,8 +85492,8 @@ ok7995: store i64 %t1752, ptr %a1753 %t1754 = load i64, ptr %a1753 %t1755 = icmp sge i64 %t1754, 0 - br i1 %t1755, label %then7996, label %endif7998 -then7996: + br i1 %t1755, label %then8389, label %endif8391 +then8389: %t1756 = load ptr, ptr %a1 %t1757 = load %S.ast.Node, ptr %a2 %t1758 = load i64, ptr %a1753 @@ -81568,45 +85501,45 @@ then7996: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t1759 -endif7998: +endif8391: %t1760 = load ptr, ptr %a1 %t1761 = icmp eq ptr %t1760, null - br i1 %t1761, label %panic7999, label %ok8000 -panic7999: - call void @finch_panic(ptr @.str.5243, i64 4848, ptr @.str.5244) + br i1 %t1761, label %panic8392, label %ok8393 +panic8392: + call void @finch_panic(ptr @.str.5450, i64 5075, ptr @.str.5451) unreachable -ok8000: - %t1762 = getelementptr inbounds %S.gen.Gen, ptr %t1760, i32 0, i32 25 +ok8393: + %t1762 = getelementptr inbounds %S.gen.Gen, ptr %t1760, i32 0, i32 26 %t1763 = getelementptr inbounds %S.cimport.CImports, ptr %t1762, i32 0, i32 0 %t1764 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t1764, ptr %a1765 %t1766 = call i64 @finch_map_find(ptr %t1763, ptr %a1765, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t1767 = icmp sge i64 %t1766, 0 - br i1 %t1767, label %then8001, label %endif8003 -then8001: + br i1 %t1767, label %then8394, label %endif8396 +then8394: %t1768 = load ptr, ptr %a1 %t1769 = load %S.ast.Node, ptr %a2 %t1770 = load ptr, ptr %a1 %t1771 = icmp eq ptr %t1770, null - br i1 %t1771, label %panic8004, label %ok8005 -panic8004: - call void @finch_panic(ptr @.str.5245, i64 4849, ptr @.str.5246) + br i1 %t1771, label %panic8397, label %ok8398 +panic8397: + call void @finch_panic(ptr @.str.5452, i64 5076, ptr @.str.5453) unreachable -ok8005: - %t1772 = getelementptr inbounds %S.gen.Gen, ptr %t1770, i32 0, i32 25 +ok8398: + %t1772 = getelementptr inbounds %S.gen.Gen, ptr %t1770, i32 0, i32 26 %t1773 = getelementptr inbounds %S.cimport.CImports, ptr %t1772, i32 0, i32 0 %t1774 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t1774, ptr %a1775 %t1776 = call i64 @finch_map_find(ptr %t1773, ptr %a1775, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t1777 = icmp slt i64 %t1776, 0 - br i1 %t1777, label %map.missing8006, label %map.found8007 -map.missing8006: + br i1 %t1777, label %map.missing8399, label %map.found8400 +map.missing8399: store { ptr, i64, i64 } zeroinitializer, ptr %a1778 store { ptr, i64, i64 } %t1774, ptr %a1779 call void @finch_buf_str(ptr %a1778, ptr %a1779, i32 1) - call void @finch_map_missing(ptr @.str.5247, i64 4849, ptr %a1778) + call void @finch_map_missing(ptr @.str.5454, i64 5076, ptr %a1778) unreachable -map.found8007: +map.found8400: %t1780 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t1773, i32 0, i32 0 %t1781 = load ptr, ptr %t1780 %t1782 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t1781, i64 %t1776 @@ -81616,15 +85549,15 @@ map.found8007: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t1785 -endif8003: +endif8396: %t1786 = load ptr, ptr %a1 %t1787 = load { ptr, i64, i64 }, ptr %a8 - %t1788 = call i64 @finch.gen.findStruct(ptr %t1786, { ptr, i64, i64 } { ptr @.str.5248, i64 1, i64 0 }, { ptr, i64, i64 } %t1787) + %t1788 = call i64 @finch.gen.findStruct(ptr %t1786, { ptr, i64, i64 } { ptr @.str.5455, i64 1, i64 0 }, { ptr, i64, i64 } %t1787) store i64 %t1788, ptr %a1641 %t1789 = load i64, ptr %a1641 %t1790 = icmp sge i64 %t1789, 0 - br i1 %t1790, label %then8008, label %endif8010 -then8008: + br i1 %t1790, label %then8401, label %endif8403 +then8401: %t1791 = load ptr, ptr %a1 %t1792 = load i64, ptr %a1641 %t1793 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 @@ -81636,22 +85569,22 @@ then8008: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t1798 -endif8010: +endif8403: %t1799 = load ptr, ptr %a1 %t1800 = load { ptr, i64, i64 }, ptr %a8 %t1801 = call i64 @finch.gen.lookup(ptr %t1799, { ptr, i64, i64 } %t1800) %t1802 = icmp sge i64 %t1801, 0 - br i1 %t1802, label %then8011, label %endif8013 -then8011: + br i1 %t1802, label %then8404, label %endif8406 +then8404: %t1803 = load ptr, ptr %a1 %t1804 = load %S.ast.Node, ptr %a2 %t1805 = load { ptr, i64, i64 }, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.5249, i64 1, i64 0 }, ptr %a1807 + store { ptr, i64, i64 } { ptr @.str.5456, i64 1, i64 0 }, ptr %a1807 store { ptr, i64, i64 } %t1805, ptr %a1808 call void @finch_str_concat(ptr %a1806, ptr %a1807, ptr %a1808) %t1809 = load { ptr, i64, i64 }, ptr %a1806 store { ptr, i64, i64 } %t1809, ptr %a1811 - store { ptr, i64, i64 } { ptr @.str.5250, i64 31, i64 0 }, ptr %a1812 + store { ptr, i64, i64 } { ptr @.str.5457, i64 31, i64 0 }, ptr %a1812 call void @finch_str_concat(ptr %a1810, ptr %a1811, ptr %a1812) store { ptr, i64, i64 } %t1809, ptr %a1813 call void @finch_str_drop(ptr %a1813) @@ -81659,17 +85592,17 @@ then8011: call void @finch.gen.fail(ptr %t1803, %S.ast.Node %t1804, { ptr, i64, i64 } %t1814) store { ptr, i64, i64 } %t1814, ptr %a1815 call void @finch_str_drop(ptr %a1815) - br label %endif8013 -endif8013: + br label %endif8406 +endif8406: %t1816 = load ptr, ptr %a1 %t1817 = load %S.ast.Node, ptr %a2 %t1818 = load { ptr, i64, i64 }, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.5251, i64 28, i64 0 }, ptr %a1820 + store { ptr, i64, i64 } { ptr @.str.5458, i64 28, i64 0 }, ptr %a1820 store { ptr, i64, i64 } %t1818, ptr %a1821 call void @finch_str_concat(ptr %a1819, ptr %a1820, ptr %a1821) %t1822 = load { ptr, i64, i64 }, ptr %a1819 store { ptr, i64, i64 } %t1822, ptr %a1824 - store { ptr, i64, i64 } { ptr @.str.5252, i64 1, i64 0 }, ptr %a1825 + store { ptr, i64, i64 } { ptr @.str.5459, i64 1, i64 0 }, ptr %a1825 call void @finch_str_concat(ptr %a1823, ptr %a1824, ptr %a1825) store { ptr, i64, i64 } %t1822, ptr %a1826 call void @finch_str_drop(ptr %a1826) @@ -81754,21 +85687,21 @@ entry: store { ptr, i64, i64 } %p6, ptr %a7 %t8 = load ptr, ptr %a1 %t9 = icmp eq ptr %t8, null - br i1 %t9, label %panic8014, label %ok8015 -panic8014: - call void @finch_panic(ptr @.str.5253, i64 4863, ptr @.str.5254) + br i1 %t9, label %panic8407, label %ok8408 +panic8407: + call void @finch_panic(ptr @.str.5460, i64 5090, ptr @.str.5461) unreachable -ok8015: +ok8408: %t10 = getelementptr inbounds %S.gen.Gen, ptr %t8, i32 0, i32 15 %t11 = load i64, ptr %a2 %t12 = load { ptr, i64, i64 }, ptr %t10 %t13 = extractvalue { ptr, i64, i64 } %t12, 1 %t14 = icmp uge i64 %t11, %t13 - br i1 %t14, label %range8016, label %inrange8017 -range8016: - call void @finch_panic_index(ptr @.str.5255, i64 4863, i64 %t11, i64 %t13) + br i1 %t14, label %range8409, label %inrange8410 +range8409: + call void @finch_panic_index(ptr @.str.5462, i64 5090, i64 %t11, i64 %t13) unreachable -inrange8017: +inrange8410: %t15 = extractvalue { ptr, i64, i64 } %t12, 0 %t16 = getelementptr inbounds %S.gen.FnSig, ptr %t15, i64 %t11 %t17 = load %S.gen.FnSig, ptr %t16 @@ -81780,28 +85713,28 @@ inrange8017: %t23 = getelementptr inbounds { ptr, i64, i64 }, ptr %t22, i32 0, i32 1 %t24 = load i64, ptr %t23 %t25 = icmp eq i64 %t24, 0 - br label %logic.from8018 -logic.from8018: - br i1 %t25, label %logic.rhs8019, label %logic.end8020 -logic.rhs8019: + br label %logic.from8411 +logic.from8411: + br i1 %t25, label %logic.rhs8412, label %logic.end8413 +logic.rhs8412: %t26 = getelementptr inbounds %S.gen.FnSig, ptr %a21, i32 0, i32 1 %t27 = load { ptr, i64, i64 }, ptr %t26 store { ptr, i64, i64 } %t27, ptr %a28 - store { ptr, i64, i64 } { ptr @.str.5256, i64 4, i64 0 }, ptr %a29 + store { ptr, i64, i64 } { ptr @.str.5463, i64 4, i64 0 }, ptr %a29 %t30 = call i32 @finch_str_eq(ptr %a28, ptr %a29) %t31 = icmp ne i32 %t30, 0 - br label %logic.rend8021 -logic.rend8021: - br label %logic.end8020 -logic.end8020: - %t32 = phi i1 [ false, %logic.from8018 ], [ %t31, %logic.rend8021 ] - br i1 %t32, label %then8022, label %endif8024 -then8022: + br label %logic.rend8414 +logic.rend8414: + br label %logic.end8413 +logic.end8413: + %t32 = phi i1 [ false, %logic.from8411 ], [ %t31, %logic.rend8414 ] + br i1 %t32, label %then8415, label %endif8417 +then8415: %t33 = load ptr, ptr %a1 %t34 = load %S.ast.Node, ptr %a3 - call void @finch.gen.fail(ptr %t33, %S.ast.Node %t34, { ptr, i64, i64 } { ptr @.str.5257, i64 52, i64 0 }) - br label %endif8024 -endif8024: + call void @finch.gen.fail(ptr %t33, %S.ast.Node %t34, { ptr, i64, i64 } { ptr @.str.5464, i64 52, i64 0 }) + br label %endif8417 +endif8417: %t35 = load ptr, ptr %a1 %t36 = load %S.ast.Node, ptr %a3 %t37 = load %S.gen.FnSig, ptr %a21 @@ -81819,11 +85752,11 @@ endif8024: %t47 = getelementptr inbounds { ptr, i64, i64 }, ptr %t46, i32 0, i32 1 %t48 = load i64, ptr %t47 %t49 = icmp sgt i64 %t48, 0 - br i1 %t49, label %then8025, label %endif8027 -then8025: + br i1 %t49, label %then8418, label %endif8420 +then8418: %t50 = getelementptr inbounds { ptr, i64, i64 }, ptr %a45, i32 0, i32 1 %t51 = load { ptr, i64, i64 }, ptr %a6 - store { ptr, i64, i64 } { ptr @.str.5258, i64 4, i64 0 }, ptr %a53 + store { ptr, i64, i64 } { ptr @.str.5465, i64 4, i64 0 }, ptr %a53 store { ptr, i64, i64 } %t51, ptr %a54 call void @finch_str_concat(ptr %a52, ptr %a53, ptr %a54) %t55 = load { ptr, i64, i64 }, ptr %a52 @@ -81834,16 +85767,16 @@ then8025: %t59 = getelementptr inbounds { ptr, i64, i64 }, ptr %t58, i64 %t56 store { ptr, i64, i64 } %t55, ptr %t59 store i64 %t57, ptr %t50 - br label %endif8027 -endif8027: + br label %endif8420 +endif8420: store { ptr, i64, i64 } zeroinitializer, ptr %a60 %t61 = load ptr, ptr %a1 %t62 = icmp eq ptr %t61, null - br i1 %t62, label %panic8028, label %ok8029 -panic8028: - call void @finch_panic(ptr @.str.5259, i64 4874, ptr @.str.5260) + br i1 %t62, label %panic8421, label %ok8422 +panic8421: + call void @finch_panic(ptr @.str.5466, i64 5101, ptr @.str.5467) unreachable -ok8029: +ok8422: %t63 = getelementptr inbounds %S.gen.Gen, ptr %t61, i32 0, i32 11 %t64 = getelementptr inbounds { ptr, i64, i64 }, ptr %t63, i32 0, i32 1 %t65 = load i64, ptr %t64 @@ -81852,12 +85785,12 @@ ok8029: %t68 = getelementptr inbounds { ptr, i64, i64 }, ptr %t67, i32 0, i32 1 %t69 = load i64, ptr %t68 store i64 0, ptr %a70 - br label %for.cond8030 -for.cond8030: + br label %for.cond8423 +for.cond8423: %t71 = load i64, ptr %a70 %t72 = icmp slt i64 %t71, %t69 - br i1 %t72, label %for.body8031, label %for.end8033 -for.body8031: + br i1 %t72, label %for.body8424, label %for.end8426 +for.body8424: %t73 = getelementptr inbounds %S.ast.Node, ptr %a3, i32 0, i32 9 %t74 = load i64, ptr %a4 %t75 = load i64, ptr %a70 @@ -81865,11 +85798,11 @@ for.body8031: %t77 = load { ptr, i64, i64 }, ptr %t73 %t78 = extractvalue { ptr, i64, i64 } %t77, 1 %t79 = icmp uge i64 %t76, %t78 - br i1 %t79, label %range8034, label %inrange8035 -range8034: - call void @finch_panic_index(ptr @.str.5261, i64 4876, i64 %t76, i64 %t78) + br i1 %t79, label %range8427, label %inrange8428 +range8427: + call void @finch_panic_index(ptr @.str.5468, i64 5103, i64 %t76, i64 %t78) unreachable -inrange8035: +inrange8428: %t80 = extractvalue { ptr, i64, i64 } %t77, 0 %t81 = getelementptr inbounds %S.ast.Node, ptr %t80, i64 %t76 %t82 = load %S.ast.Node, ptr %t81 @@ -81885,11 +85818,11 @@ inrange8035: %t92 = load { ptr, i64, i64 }, ptr %t90 %t93 = extractvalue { ptr, i64, i64 } %t92, 1 %t94 = icmp uge i64 %t91, %t93 - br i1 %t94, label %range8036, label %inrange8037 -range8036: - call void @finch_panic_index(ptr @.str.5262, i64 4877, i64 %t91, i64 %t93) + br i1 %t94, label %range8429, label %inrange8430 +range8429: + call void @finch_panic_index(ptr @.str.5469, i64 5104, i64 %t91, i64 %t93) unreachable -inrange8037: +inrange8430: %t95 = extractvalue { ptr, i64, i64 } %t92, 0 %t96 = getelementptr inbounds %S.ast.Type, ptr %t95, i64 %t91 %t97 = load %S.ast.Type, ptr %t96 @@ -81899,11 +85832,11 @@ inrange8037: %t101 = load { ptr, i64, i64 }, ptr %t99 %t102 = extractvalue { ptr, i64, i64 } %t101, 1 %t103 = icmp uge i64 %t100, %t102 - br i1 %t103, label %range8038, label %inrange8039 -range8038: - call void @finch_panic_index(ptr @.str.5263, i64 4877, i64 %t100, i64 %t102) + br i1 %t103, label %range8431, label %inrange8432 +range8431: + call void @finch_panic_index(ptr @.str.5470, i64 5104, i64 %t100, i64 %t102) unreachable -inrange8039: +inrange8432: %t104 = extractvalue { ptr, i64, i64 } %t101, 0 %t105 = getelementptr inbounds %S.ast.Type, ptr %t104, i64 %t100 %t106 = load %S.ast.Type, ptr %t105 @@ -81913,20 +85846,20 @@ inrange8039: %t110 = load { ptr, i64, i64 }, ptr %t108 %t111 = extractvalue { ptr, i64, i64 } %t110, 1 %t112 = icmp uge i64 %t109, %t111 - br i1 %t112, label %range8040, label %inrange8041 -range8040: - call void @finch_panic_index(ptr @.str.5265, i64 4877, i64 %t109, i64 %t111) + br i1 %t112, label %range8433, label %inrange8434 +range8433: + call void @finch_panic_index(ptr @.str.5472, i64 5104, i64 %t109, i64 %t111) unreachable -inrange8041: +inrange8434: %t113 = extractvalue { ptr, i64, i64 } %t110, 0 %t114 = getelementptr inbounds { ptr, i64, i64 }, ptr %t113, i64 %t109 %t115 = load { ptr, i64, i64 }, ptr %t114 - store { ptr, i64, i64 } { ptr @.str.5264, i64 10, i64 0 }, ptr %a117 + store { ptr, i64, i64 } { ptr @.str.5471, i64 10, i64 0 }, ptr %a117 store { ptr, i64, i64 } %t115, ptr %a118 call void @finch_str_concat(ptr %a116, ptr %a117, ptr %a118) %t119 = load { ptr, i64, i64 }, ptr %a116 store { ptr, i64, i64 } %t119, ptr %a121 - store { ptr, i64, i64 } { ptr @.str.5266, i64 1, i64 0 }, ptr %a122 + store { ptr, i64, i64 } { ptr @.str.5473, i64 1, i64 0 }, ptr %a122 call void @finch_str_concat(ptr %a120, ptr %a121, ptr %a122) store { ptr, i64, i64 } %t119, ptr %a123 call void @finch_str_drop(ptr %a123) @@ -81943,43 +85876,43 @@ inrange8041: %t132 = load { ptr, i64, i64 }, ptr %t130 %t133 = extractvalue { ptr, i64, i64 } %t132, 1 %t134 = icmp uge i64 %t131, %t133 - br i1 %t134, label %range8042, label %inrange8043 -range8042: - call void @finch_panic_index(ptr @.str.5267, i64 4879, i64 %t131, i64 %t133) + br i1 %t134, label %range8435, label %inrange8436 +range8435: + call void @finch_panic_index(ptr @.str.5474, i64 5106, i64 %t131, i64 %t133) unreachable -inrange8043: +inrange8436: %t135 = extractvalue { ptr, i64, i64 } %t132, 0 %t136 = getelementptr inbounds %S.ast.Type, ptr %t135, i64 %t131 %t137 = load %S.ast.Type, ptr %t136 %t138 = call i1 @finch.gen.owning(ptr %t129, %S.ast.Type %t137) - br label %logic.from8044 -logic.from8044: - br i1 %t138, label %logic.rhs8045, label %logic.end8046 -logic.rhs8045: + br label %logic.from8437 +logic.from8437: + br i1 %t138, label %logic.rhs8438, label %logic.end8439 +logic.rhs8438: %t139 = getelementptr inbounds %S.gen.Val, ptr %a128, i32 0, i32 2 %t140 = load i1, ptr %t139 %t141 = xor i1 %t140, true - br label %logic.rend8047 -logic.rend8047: - br label %logic.end8046 -logic.end8046: - %t142 = phi i1 [ false, %logic.from8044 ], [ %t141, %logic.rend8047 ] - br label %logic.from8048 -logic.from8048: - br i1 %t142, label %logic.rhs8049, label %logic.end8050 -logic.rhs8049: + br label %logic.rend8440 +logic.rend8440: + br label %logic.end8439 +logic.end8439: + %t142 = phi i1 [ false, %logic.from8437 ], [ %t141, %logic.rend8440 ] + br label %logic.from8441 +logic.from8441: + br i1 %t142, label %logic.rhs8442, label %logic.end8443 +logic.rhs8442: %t143 = getelementptr inbounds { ptr, i64, i64 }, ptr %a7, i32 0, i32 1 %t144 = load i64, ptr %t143 %t145 = icmp sgt i64 %t144, 0 - br label %logic.rend8051 -logic.rend8051: - br label %logic.end8050 -logic.end8050: - %t146 = phi i1 [ false, %logic.from8048 ], [ %t145, %logic.rend8051 ] - br label %logic.from8052 -logic.from8052: - br i1 %t146, label %logic.rhs8053, label %logic.end8054 -logic.rhs8053: + br label %logic.rend8444 +logic.rend8444: + br label %logic.end8443 +logic.end8443: + %t146 = phi i1 [ false, %logic.from8441 ], [ %t145, %logic.rend8444 ] + br label %logic.from8445 +logic.from8445: + br i1 %t146, label %logic.rhs8446, label %logic.end8447 +logic.rhs8446: %t147 = load %S.ast.Node, ptr %a86 %t148 = call { ptr, i64, i64 } @finch.gen.rootVar(%S.ast.Node %t147) %t149 = load { ptr, i64, i64 }, ptr %a7 @@ -81989,13 +85922,13 @@ logic.rhs8053: %t153 = icmp ne i32 %t152, 0 store { ptr, i64, i64 } %t148, ptr %a154 call void @finch_str_drop(ptr %a154) - br label %logic.rend8055 -logic.rend8055: - br label %logic.end8054 -logic.end8054: - %t155 = phi i1 [ false, %logic.from8052 ], [ %t153, %logic.rend8055 ] - br i1 %t155, label %then8056, label %endif8058 -then8056: + br label %logic.rend8448 +logic.rend8448: + br label %logic.end8447 +logic.end8447: + %t155 = phi i1 [ false, %logic.from8445 ], [ %t153, %logic.rend8448 ] + br i1 %t155, label %then8449, label %endif8451 +then8449: %t156 = load ptr, ptr %a1 %t157 = getelementptr inbounds %S.gen.Val, ptr %a128, i32 0, i32 0 %t158 = load { ptr, i64, i64 }, ptr %t157 @@ -82014,8 +85947,8 @@ then8056: store %S.gen.Val %t169, ptr %a128 store %S.gen.Val %t170, ptr %a171 call void @finch.drop.S_gen_Val(ptr %a171) - br label %endif8058 -endif8058: + br label %endif8451 +endif8451: %t172 = getelementptr inbounds { ptr, i64, i64 }, ptr %a45, i32 0, i32 1 %t173 = load ptr, ptr %a1 %t174 = getelementptr inbounds %S.gen.FnSig, ptr %a21, i32 0, i32 13 @@ -82023,17 +85956,17 @@ endif8058: %t176 = load { ptr, i64, i64 }, ptr %t174 %t177 = extractvalue { ptr, i64, i64 } %t176, 1 %t178 = icmp uge i64 %t175, %t177 - br i1 %t178, label %range8059, label %inrange8060 -range8059: - call void @finch_panic_index(ptr @.str.5268, i64 4882, i64 %t175, i64 %t177) + br i1 %t178, label %range8452, label %inrange8453 +range8452: + call void @finch_panic_index(ptr @.str.5475, i64 5109, i64 %t175, i64 %t177) unreachable -inrange8060: +inrange8453: %t179 = extractvalue { ptr, i64, i64 } %t176, 0 %t180 = getelementptr inbounds %S.ast.Type, ptr %t179, i64 %t175 %t181 = load %S.ast.Type, ptr %t180 %t182 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t173, %S.ast.Type %t181) store { ptr, i64, i64 } %t182, ptr %a184 - store { ptr, i64, i64 } { ptr @.str.5269, i64 1, i64 0 }, ptr %a185 + store { ptr, i64, i64 } { ptr @.str.5476, i64 1, i64 0 }, ptr %a185 call void @finch_str_concat(ptr %a183, ptr %a184, ptr %a185) store { ptr, i64, i64 } %t182, ptr %a186 call void @finch_str_drop(ptr %a186) @@ -82055,8 +85988,8 @@ inrange8060: store i64 %t196, ptr %t172 %t199 = getelementptr inbounds %S.gen.Val, ptr %a128, i32 0, i32 2 %t200 = load i1, ptr %t199 - br i1 %t200, label %then8061, label %endif8063 -then8061: + br i1 %t200, label %then8454, label %endif8456 +then8454: %t201 = getelementptr inbounds { ptr, i64, i64 }, ptr %a60, i32 0, i32 1 %t202 = load %S.gen.Val, ptr %a128 store %S.gen.Val %t202, ptr %a203 @@ -82069,20 +86002,20 @@ then8061: %t209 = getelementptr inbounds %S.gen.Val, ptr %t208, i64 %t206 store %S.gen.Val %t205, ptr %t209 store i64 %t207, ptr %t201 - br label %endif8063 -endif8063: + br label %endif8456 +endif8456: %t210 = load ptr, ptr %a1 %t211 = load %S.gen.Val, ptr %a128 call void @finch.gen.hold(ptr %t210, %S.gen.Val %t211) call void @finch.drop.S_gen_Val(ptr %a128) call void @finch.drop.S_ast_Node(ptr %a86) - br label %for.step8032 -for.step8032: + br label %for.step8425 +for.step8425: %t212 = load i64, ptr %a70 %t213 = add i64 %t212, 1 store i64 %t213, ptr %a70 - br label %for.cond8030 -for.end8033: + br label %for.cond8423 +for.end8426: %t214 = load ptr, ptr %a1 %t215 = load %S.gen.FnSig, ptr %a21 %t216 = load %S.ast.Node, ptr %a3 @@ -82091,14 +86024,14 @@ for.end8033: %t219 = call %S.gen.Val @finch.gen.emitCall(ptr %t214, %S.gen.FnSig %t215, %S.ast.Node %t216, { ptr, i64, i64 } %t217, { ptr, i64, i64 } %t218) store %S.gen.Val %t219, ptr %a220 store i64 0, ptr %a221 - br label %each.cond8064 -each.cond8064: + br label %each.cond8457 +each.cond8457: %t222 = getelementptr inbounds { ptr, i64, i64 }, ptr %a60, i32 0, i32 1 %t223 = load i64, ptr %t222 %t224 = load i64, ptr %a221 %t225 = icmp slt i64 %t224, %t223 - br i1 %t225, label %each.body8065, label %each.end8067 -each.body8065: + br i1 %t225, label %each.body8458, label %each.end8460 +each.body8458: %t226 = load ptr, ptr %a60 %t227 = getelementptr inbounds %S.gen.Val, ptr %t226, i64 %t224 %t228 = load %S.gen.Val, ptr %t227 @@ -82106,13 +86039,13 @@ each.body8065: %t230 = load ptr, ptr %a1 %t231 = load %S.gen.Val, ptr %a229 call void @finch.gen.release(ptr %t230, %S.gen.Val %t231) - br label %each.step8066 -each.step8066: + br label %each.step8459 +each.step8459: %t232 = load i64, ptr %a221 %t233 = add i64 %t232, 1 store i64 %t233, ptr %a221 - br label %each.cond8064 -each.end8067: + br label %each.cond8457 +each.end8460: %t234 = load ptr, ptr %a1 %t235 = load i64, ptr %a66 call void @finch.gen.heldEnd(ptr %t234, i64 %t235) @@ -82275,18 +86208,18 @@ entry: store { ptr, i64, i64 } %p4, ptr %a5 %t6 = getelementptr inbounds %S.gen.FnSig, ptr %a2, i32 0, i32 9 %t7 = load i1, ptr %t6 - br label %logic.from8068 -logic.from8068: - br i1 %t7, label %logic.rhs8069, label %logic.end8070 -logic.rhs8069: + br label %logic.from8461 +logic.from8461: + br i1 %t7, label %logic.rhs8462, label %logic.end8463 +logic.rhs8462: %t8 = load ptr, ptr %a1 %t9 = icmp eq ptr %t8, null - br i1 %t9, label %panic8071, label %ok8072 -panic8071: - call void @finch_panic(ptr @.str.5270, i64 4898, ptr @.str.5271) + br i1 %t9, label %panic8464, label %ok8465 +panic8464: + call void @finch_panic(ptr @.str.5477, i64 5125, ptr @.str.5478) unreachable -ok8072: - %t10 = getelementptr inbounds %S.gen.Gen, ptr %t8, i32 0, i32 40 +ok8465: + %t10 = getelementptr inbounds %S.gen.Gen, ptr %t8, i32 0, i32 41 %t11 = load { ptr, i64, i64 }, ptr %t10 %t12 = load %S.ast.Node, ptr %a3 %t13 = call { ptr, i64, i64 } @finch.gen.nodeKey(%S.ast.Node %t12) @@ -82296,22 +86229,22 @@ ok8072: %t17 = icmp eq i32 %t16, 0 store { ptr, i64, i64 } %t13, ptr %a18 call void @finch_str_drop(ptr %a18) - br label %logic.rend8073 -logic.rend8073: - br label %logic.end8070 -logic.end8070: - %t19 = phi i1 [ false, %logic.from8068 ], [ %t17, %logic.rend8073 ] - br i1 %t19, label %then8074, label %endif8076 -then8074: + br label %logic.rend8466 +logic.rend8466: + br label %logic.end8463 +logic.end8463: + %t19 = phi i1 [ false, %logic.from8461 ], [ %t17, %logic.rend8466 ] + br i1 %t19, label %then8467, label %endif8469 +then8467: %t20 = load ptr, ptr %a1 %t21 = load %S.ast.Node, ptr %a3 %t22 = load { ptr, i64, i64 }, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.5272, i64 1, i64 0 }, ptr %a24 + store { ptr, i64, i64 } { ptr @.str.5479, i64 1, i64 0 }, ptr %a24 store { ptr, i64, i64 } %t22, ptr %a25 call void @finch_str_concat(ptr %a23, ptr %a24, ptr %a25) %t26 = load { ptr, i64, i64 }, ptr %a23 store { ptr, i64, i64 } %t26, ptr %a28 - store { ptr, i64, i64 } { ptr @.str.5273, i64 39, i64 0 }, ptr %a29 + store { ptr, i64, i64 } { ptr @.str.5480, i64 39, i64 0 }, ptr %a29 call void @finch_str_concat(ptr %a27, ptr %a28, ptr %a29) store { ptr, i64, i64 } %t26, ptr %a30 call void @finch_str_drop(ptr %a30) @@ -82324,7 +86257,7 @@ then8074: call void @finch_str_drop(ptr %a36) %t37 = load { ptr, i64, i64 }, ptr %a33 store { ptr, i64, i64 } %t37, ptr %a39 - store { ptr, i64, i64 } { ptr @.str.5274, i64 19, i64 0 }, ptr %a40 + store { ptr, i64, i64 } { ptr @.str.5481, i64 19, i64 0 }, ptr %a40 call void @finch_str_concat(ptr %a38, ptr %a39, ptr %a40) store { ptr, i64, i64 } %t37, ptr %a41 call void @finch_str_drop(ptr %a41) @@ -82337,7 +86270,7 @@ then8074: call void @finch_str_drop(ptr %a47) %t48 = load { ptr, i64, i64 }, ptr %a44 store { ptr, i64, i64 } %t48, ptr %a50 - store { ptr, i64, i64 } { ptr @.str.5275, i64 27, i64 0 }, ptr %a51 + store { ptr, i64, i64 } { ptr @.str.5482, i64 27, i64 0 }, ptr %a51 call void @finch_str_concat(ptr %a49, ptr %a50, ptr %a51) store { ptr, i64, i64 } %t48, ptr %a52 call void @finch_str_drop(ptr %a52) @@ -82350,7 +86283,7 @@ then8074: call void @finch_str_drop(ptr %a58) %t59 = load { ptr, i64, i64 }, ptr %a55 store { ptr, i64, i64 } %t59, ptr %a61 - store { ptr, i64, i64 } { ptr @.str.5276, i64 5, i64 0 }, ptr %a62 + store { ptr, i64, i64 } { ptr @.str.5483, i64 5, i64 0 }, ptr %a62 call void @finch_str_concat(ptr %a60, ptr %a61, ptr %a62) store { ptr, i64, i64 } %t59, ptr %a63 call void @finch_str_drop(ptr %a63) @@ -82358,19 +86291,19 @@ then8074: call void @finch.gen.fail(ptr %t20, %S.ast.Node %t21, { ptr, i64, i64 } %t64) store { ptr, i64, i64 } %t64, ptr %a65 call void @finch_str_drop(ptr %a65) - br label %endif8076 -endif8076: + br label %endif8469 +endif8469: %t66 = load ptr, ptr %a1 %t67 = load %S.gen.FnSig, ptr %a2 %t68 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t66, %S.gen.FnSig %t67) - store { ptr, i64, i64 } { ptr @.str.5277, i64 5, i64 0 }, ptr %a70 + store { ptr, i64, i64 } { ptr @.str.5484, i64 5, i64 0 }, ptr %a70 store { ptr, i64, i64 } %t68, ptr %a71 call void @finch_str_concat(ptr %a69, ptr %a70, ptr %a71) store { ptr, i64, i64 } %t68, ptr %a72 call void @finch_str_drop(ptr %a72) %t73 = load { ptr, i64, i64 }, ptr %a69 store { ptr, i64, i64 } %t73, ptr %a75 - store { ptr, i64, i64 } { ptr @.str.5278, i64 1, i64 0 }, ptr %a76 + store { ptr, i64, i64 } { ptr @.str.5485, i64 1, i64 0 }, ptr %a76 call void @finch_str_concat(ptr %a74, ptr %a75, ptr %a76) store { ptr, i64, i64 } %t73, ptr %a77 call void @finch_str_drop(ptr %a77) @@ -82384,13 +86317,13 @@ endif8076: call void @finch_str_drop(ptr %a84) %t85 = load { ptr, i64, i64 }, ptr %a81 store { ptr, i64, i64 } %t85, ptr %a87 - store { ptr, i64, i64 } { ptr @.str.5279, i64 1, i64 0 }, ptr %a88 + store { ptr, i64, i64 } { ptr @.str.5486, i64 1, i64 0 }, ptr %a88 call void @finch_str_concat(ptr %a86, ptr %a87, ptr %a88) store { ptr, i64, i64 } %t85, ptr %a89 call void @finch_str_drop(ptr %a89) %t90 = load { ptr, i64, i64 }, ptr %a86 %t91 = getelementptr inbounds { ptr, i64, i64 }, ptr %a4, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.5280, i64 2, i64 0 }, ptr %a92 + store { ptr, i64, i64 } { ptr @.str.5487, i64 2, i64 0 }, ptr %a92 call void @finch_str_join(ptr %a93, ptr %a4, ptr %a92) %t94 = load { ptr, i64, i64 }, ptr %a93 store { ptr, i64, i64 } %t90, ptr %a96 @@ -82402,7 +86335,7 @@ endif8076: call void @finch_str_drop(ptr %a99) %t100 = load { ptr, i64, i64 }, ptr %a95 store { ptr, i64, i64 } %t100, ptr %a102 - store { ptr, i64, i64 } { ptr @.str.5281, i64 1, i64 0 }, ptr %a103 + store { ptr, i64, i64 } { ptr @.str.5488, i64 1, i64 0 }, ptr %a103 call void @finch_str_concat(ptr %a101, ptr %a102, ptr %a103) store { ptr, i64, i64 } %t100, ptr %a104 call void @finch_str_drop(ptr %a104) @@ -82410,8 +86343,8 @@ endif8076: store { ptr, i64, i64 } %t105, ptr %a106 %t107 = getelementptr inbounds %S.gen.FnSig, ptr %a2, i32 0, i32 9 %t108 = load i1, ptr %t107 - br i1 %t108, label %then8077, label %endif8079 -then8077: + br i1 %t108, label %then8470, label %endif8472 +then8470: %t109 = load ptr, ptr %a1 %t110 = load { ptr, i64, i64 }, ptr %a106 %t111 = call { ptr, i64, i64 } @finch.gen.op(ptr %t109, { ptr, i64, i64 } %t110) @@ -82420,14 +86353,14 @@ then8077: %t114 = load ptr, ptr %a1 %t115 = load %S.gen.FnSig, ptr %a2 %t116 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t114, %S.gen.FnSig %t115) - store { ptr, i64, i64 } { ptr @.str.5282, i64 13, i64 0 }, ptr %a118 + store { ptr, i64, i64 } { ptr @.str.5489, i64 13, i64 0 }, ptr %a118 store { ptr, i64, i64 } %t116, ptr %a119 call void @finch_str_concat(ptr %a117, ptr %a118, ptr %a119) store { ptr, i64, i64 } %t116, ptr %a120 call void @finch_str_drop(ptr %a120) %t121 = load { ptr, i64, i64 }, ptr %a117 store { ptr, i64, i64 } %t121, ptr %a123 - store { ptr, i64, i64 } { ptr @.str.5283, i64 1, i64 0 }, ptr %a124 + store { ptr, i64, i64 } { ptr @.str.5490, i64 1, i64 0 }, ptr %a124 call void @finch_str_concat(ptr %a122, ptr %a123, ptr %a124) store { ptr, i64, i64 } %t121, ptr %a125 call void @finch_str_drop(ptr %a125) @@ -82440,7 +86373,7 @@ then8077: call void @finch_str_drop(ptr %a131) %t132 = load { ptr, i64, i64 }, ptr %a128 store { ptr, i64, i64 } %t132, ptr %a134 - store { ptr, i64, i64 } { ptr @.str.5284, i64 3, i64 0 }, ptr %a135 + store { ptr, i64, i64 } { ptr @.str.5491, i64 3, i64 0 }, ptr %a135 call void @finch_str_concat(ptr %a133, ptr %a134, ptr %a135) store { ptr, i64, i64 } %t132, ptr %a136 call void @finch_str_drop(ptr %a136) @@ -82451,12 +86384,12 @@ then8077: store { ptr, i64, i64 } %t138, ptr %a140 %t141 = load ptr, ptr %a1 %t142 = load { ptr, i64, i64 }, ptr %a140 - store { ptr, i64, i64 } { ptr @.str.5285, i64 7, i64 0 }, ptr %a144 + store { ptr, i64, i64 } { ptr @.str.5492, i64 7, i64 0 }, ptr %a144 store { ptr, i64, i64 } %t142, ptr %a145 call void @finch_str_concat(ptr %a143, ptr %a144, ptr %a145) %t146 = load { ptr, i64, i64 }, ptr %a143 store { ptr, i64, i64 } %t146, ptr %a148 - store { ptr, i64, i64 } { ptr @.str.5286, i64 6, i64 0 }, ptr %a149 + store { ptr, i64, i64 } { ptr @.str.5493, i64 6, i64 0 }, ptr %a149 call void @finch_str_concat(ptr %a147, ptr %a148, ptr %a149) store { ptr, i64, i64 } %t146, ptr %a150 call void @finch_str_drop(ptr %a150) @@ -82466,12 +86399,12 @@ then8077: call void @finch_str_drop(ptr %a153) %t154 = load ptr, ptr %a1 %t155 = icmp eq ptr %t154, null - br i1 %t155, label %panic8080, label %ok8081 -panic8080: - call void @finch_panic(ptr @.str.5287, i64 4905, ptr @.str.5288) + br i1 %t155, label %panic8473, label %ok8474 +panic8473: + call void @finch_panic(ptr @.str.5494, i64 5132, ptr @.str.5495) unreachable -ok8081: - %t156 = getelementptr inbounds %S.gen.Gen, ptr %t154, i32 0, i32 41 +ok8474: + %t156 = getelementptr inbounds %S.gen.Gen, ptr %t154, i32 0, i32 42 %t157 = load { ptr, i64, i64 }, ptr %t156 store { ptr, i64, i64 } %t152, ptr %t156 store { ptr, i64, i64 } %t157, ptr %a158 @@ -82480,14 +86413,14 @@ ok8081: %t160 = load ptr, ptr %a1 %t161 = load %S.gen.FnSig, ptr %a2 %t162 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t160, %S.gen.FnSig %t161) - store { ptr, i64, i64 } { ptr @.str.5289, i64 13, i64 0 }, ptr %a164 + store { ptr, i64, i64 } { ptr @.str.5496, i64 13, i64 0 }, ptr %a164 store { ptr, i64, i64 } %t162, ptr %a165 call void @finch_str_concat(ptr %a163, ptr %a164, ptr %a165) store { ptr, i64, i64 } %t162, ptr %a166 call void @finch_str_drop(ptr %a166) %t167 = load { ptr, i64, i64 }, ptr %a163 store { ptr, i64, i64 } %t167, ptr %a169 - store { ptr, i64, i64 } { ptr @.str.5290, i64 1, i64 0 }, ptr %a170 + store { ptr, i64, i64 } { ptr @.str.5497, i64 1, i64 0 }, ptr %a170 call void @finch_str_concat(ptr %a168, ptr %a169, ptr %a170) store { ptr, i64, i64 } %t167, ptr %a171 call void @finch_str_drop(ptr %a171) @@ -82500,7 +86433,7 @@ ok8081: call void @finch_str_drop(ptr %a177) %t178 = load { ptr, i64, i64 }, ptr %a174 store { ptr, i64, i64 } %t178, ptr %a180 - store { ptr, i64, i64 } { ptr @.str.5291, i64 3, i64 0 }, ptr %a181 + store { ptr, i64, i64 } { ptr @.str.5498, i64 3, i64 0 }, ptr %a181 call void @finch_str_concat(ptr %a179, ptr %a180, ptr %a181) store { ptr, i64, i64 } %t178, ptr %a182 call void @finch_str_drop(ptr %a182) @@ -82510,12 +86443,12 @@ ok8081: call void @finch_str_drop(ptr %a185) %t186 = load ptr, ptr %a1 %t187 = icmp eq ptr %t186, null - br i1 %t187, label %panic8082, label %ok8083 -panic8082: - call void @finch_panic(ptr @.str.5292, i64 4906, ptr @.str.5293) + br i1 %t187, label %panic8475, label %ok8476 +panic8475: + call void @finch_panic(ptr @.str.5499, i64 5133, ptr @.str.5500) unreachable -ok8083: - %t188 = getelementptr inbounds %S.gen.Gen, ptr %t186, i32 0, i32 42 +ok8476: + %t188 = getelementptr inbounds %S.gen.Gen, ptr %t186, i32 0, i32 43 %t189 = load { ptr, i64, i64 }, ptr %t188 store { ptr, i64, i64 } %t184, ptr %t188 store { ptr, i64, i64 } %t189, ptr %a190 @@ -82524,11 +86457,11 @@ ok8083: %t192 = getelementptr inbounds %S.ast.Type, ptr %t191, i32 0, i32 0 %t193 = load { ptr, i64, i64 }, ptr %t192 store { ptr, i64, i64 } %t193, ptr %a194 - store { ptr, i64, i64 } { ptr @.str.5294, i64 4, i64 0 }, ptr %a195 + store { ptr, i64, i64 } { ptr @.str.5501, i64 4, i64 0 }, ptr %a195 %t196 = call i32 @finch_str_eq(ptr %a194, ptr %a195) %t197 = icmp ne i32 %t196, 0 - br i1 %t197, label %then8084, label %endif8086 -then8084: + br i1 %t197, label %then8477, label %endif8479 +then8477: %t198 = getelementptr inbounds %S.gen.FnSig, ptr %a2, i32 0, i32 12 %t199 = load %S.ast.Type, ptr %t198 store %S.ast.Type %t199, ptr %a200 @@ -82539,19 +86472,19 @@ then8084: call void @finch_str_drop(ptr %a112) call void @finch_str_drop(ptr %a106) ret %S.gen.Val %t203 -endif8086: +endif8479: %t204 = load ptr, ptr %a1 %t205 = load ptr, ptr %a1 %t206 = load %S.gen.FnSig, ptr %a2 %t207 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t205, %S.gen.FnSig %t206) - store { ptr, i64, i64 } { ptr @.str.5295, i64 13, i64 0 }, ptr %a209 + store { ptr, i64, i64 } { ptr @.str.5502, i64 13, i64 0 }, ptr %a209 store { ptr, i64, i64 } %t207, ptr %a210 call void @finch_str_concat(ptr %a208, ptr %a209, ptr %a210) store { ptr, i64, i64 } %t207, ptr %a211 call void @finch_str_drop(ptr %a211) %t212 = load { ptr, i64, i64 }, ptr %a208 store { ptr, i64, i64 } %t212, ptr %a214 - store { ptr, i64, i64 } { ptr @.str.5296, i64 1, i64 0 }, ptr %a215 + store { ptr, i64, i64 } { ptr @.str.5503, i64 1, i64 0 }, ptr %a215 call void @finch_str_concat(ptr %a213, ptr %a214, ptr %a215) store { ptr, i64, i64 } %t212, ptr %a216 call void @finch_str_drop(ptr %a216) @@ -82564,7 +86497,7 @@ endif8086: call void @finch_str_drop(ptr %a222) %t223 = load { ptr, i64, i64 }, ptr %a219 store { ptr, i64, i64 } %t223, ptr %a225 - store { ptr, i64, i64 } { ptr @.str.5297, i64 3, i64 0 }, ptr %a226 + store { ptr, i64, i64 } { ptr @.str.5504, i64 3, i64 0 }, ptr %a226 call void @finch_str_concat(ptr %a224, ptr %a225, ptr %a226) store { ptr, i64, i64 } %t223, ptr %a227 call void @finch_str_drop(ptr %a227) @@ -82588,16 +86521,16 @@ endif8086: call void @finch_str_drop(ptr %a112) call void @finch_str_drop(ptr %a106) ret %S.gen.Val %t242 -endif8079: +endif8472: %t243 = getelementptr inbounds %S.gen.FnSig, ptr %a2, i32 0, i32 12 %t244 = getelementptr inbounds %S.ast.Type, ptr %t243, i32 0, i32 0 %t245 = load { ptr, i64, i64 }, ptr %t244 store { ptr, i64, i64 } %t245, ptr %a246 - store { ptr, i64, i64 } { ptr @.str.5298, i64 4, i64 0 }, ptr %a247 + store { ptr, i64, i64 } { ptr @.str.5505, i64 4, i64 0 }, ptr %a247 %t248 = call i32 @finch_str_eq(ptr %a246, ptr %a247) %t249 = icmp ne i32 %t248, 0 - br i1 %t249, label %then8087, label %endif8089 -then8087: + br i1 %t249, label %then8480, label %endif8482 +then8480: %t250 = load ptr, ptr %a1 %t251 = load { ptr, i64, i64 }, ptr %a106 call void @finch.gen.emit(ptr %t250, { ptr, i64, i64 } %t251) @@ -82609,7 +86542,7 @@ then8087: %t257 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t256, 1 call void @finch_str_drop(ptr %a106) ret %S.gen.Val %t257 -endif8089: +endif8482: %t258 = load ptr, ptr %a1 %t259 = load { ptr, i64, i64 }, ptr %a106 %t260 = call { ptr, i64, i64 } @finch.gen.op(ptr %t258, { ptr, i64, i64 } %t259) @@ -82831,21 +86764,21 @@ entry: store %S.ast.Node %p4, ptr %a5 %t6 = load ptr, ptr %a1 %t7 = icmp eq ptr %t6, null - br i1 %t7, label %panic8090, label %ok8091 -panic8090: - call void @finch_panic(ptr @.str.5299, i64 4920, ptr @.str.5300) + br i1 %t7, label %panic8483, label %ok8484 +panic8483: + call void @finch_panic(ptr @.str.5506, i64 5147, ptr @.str.5507) unreachable -ok8091: +ok8484: %t8 = getelementptr inbounds %S.gen.Gen, ptr %t6, i32 0, i32 16 %t9 = load i64, ptr %a2 %t10 = load { ptr, i64, i64 }, ptr %t8 %t11 = extractvalue { ptr, i64, i64 } %t10, 1 %t12 = icmp uge i64 %t9, %t11 - br i1 %t12, label %range8092, label %inrange8093 -range8092: - call void @finch_panic_index(ptr @.str.5301, i64 4920, i64 %t9, i64 %t11) + br i1 %t12, label %range8485, label %inrange8486 +range8485: + call void @finch_panic_index(ptr @.str.5508, i64 5147, i64 %t9, i64 %t11) unreachable -inrange8093: +inrange8486: %t13 = extractvalue { ptr, i64, i64 } %t10, 0 %t14 = getelementptr inbounds %S.gen.StructDef, ptr %t13, i64 %t9 %t15 = load %S.gen.StructDef, ptr %t14 @@ -82857,26 +86790,26 @@ inrange8093: %t21 = getelementptr inbounds %S.gen.StructDef, ptr %a19, i32 0, i32 2 %t22 = load i1, ptr %t21 %t23 = xor i1 %t22, true - br i1 %t23, label %then8094, label %endif8096 -then8094: + br i1 %t23, label %then8487, label %endif8489 +then8487: %t24 = load ptr, ptr %a1 %t25 = icmp eq ptr %t24, null - br i1 %t25, label %panic8097, label %ok8098 -panic8097: - call void @finch_panic(ptr @.str.5302, i64 4923, ptr @.str.5303) + br i1 %t25, label %panic8490, label %ok8491 +panic8490: + call void @finch_panic(ptr @.str.5509, i64 5150, ptr @.str.5510) unreachable -ok8098: +ok8491: %t26 = getelementptr inbounds %S.gen.Gen, ptr %t24, i32 0, i32 0 %t27 = getelementptr inbounds %S.gen.StructDef, ptr %a19, i32 0, i32 13 %t28 = load i64, ptr %t27 %t29 = load { ptr, i64, i64 }, ptr %t26 %t30 = extractvalue { ptr, i64, i64 } %t29, 1 %t31 = icmp uge i64 %t28, %t30 - br i1 %t31, label %range8099, label %inrange8100 -range8099: - call void @finch_panic_index(ptr @.str.5304, i64 4923, i64 %t28, i64 %t30) + br i1 %t31, label %range8492, label %inrange8493 +range8492: + call void @finch_panic_index(ptr @.str.5511, i64 5150, i64 %t28, i64 %t30) unreachable -inrange8100: +inrange8493: %t32 = extractvalue { ptr, i64, i64 } %t29, 0 %t33 = getelementptr inbounds %S.ast.Program, ptr %t32, i64 %t28 %t34 = getelementptr inbounds %S.ast.Program, ptr %t33, i32 0, i32 6 @@ -82885,11 +86818,11 @@ inrange8100: %t37 = load { ptr, i64, i64 }, ptr %t34 %t38 = extractvalue { ptr, i64, i64 } %t37, 1 %t39 = icmp uge i64 %t36, %t38 - br i1 %t39, label %range8101, label %inrange8102 -range8101: - call void @finch_panic_index(ptr @.str.5305, i64 4923, i64 %t36, i64 %t38) + br i1 %t39, label %range8494, label %inrange8495 +range8494: + call void @finch_panic_index(ptr @.str.5512, i64 5150, i64 %t36, i64 %t38) unreachable -inrange8102: +inrange8495: %t40 = extractvalue { ptr, i64, i64 } %t37, 0 %t41 = getelementptr inbounds %S.ast.Node, ptr %t40, i64 %t36 %t42 = load %S.ast.Node, ptr %t41 @@ -82900,9 +86833,9 @@ inrange8102: store %S.ast.Node %t45, ptr %a20 store %S.ast.Node %t46, ptr %a47 call void @finch.drop.S_ast_Node(ptr %a47) - br label %endif8096 -endif8096: - %t48 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.5306, i64 6, i64 0 }, 0 + br label %endif8489 +endif8489: + %t48 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.5513, i64 6, i64 0 }, 0 %t49 = getelementptr inbounds %S.gen.StructDef, ptr %a19, i32 0, i32 1 %t50 = load { ptr, i64, i64 }, ptr %t49 store { ptr, i64, i64 } %t50, ptr %a51 @@ -82923,40 +86856,40 @@ endif8096: %t66 = getelementptr inbounds { ptr, i64, i64 }, ptr %a4, i32 0, i32 1 %t67 = load i64, ptr %t66 %t68 = icmp sgt i64 %t67, 0 - br label %logic.from8103 -logic.from8103: - br i1 %t68, label %logic.rhs8104, label %logic.end8105 -logic.rhs8104: + br label %logic.from8496 +logic.from8496: + br i1 %t68, label %logic.rhs8497, label %logic.end8498 +logic.rhs8497: %t69 = load { ptr, i64, i64 }, ptr %a4 %t70 = extractvalue { ptr, i64, i64 } %t69, 1 %t71 = icmp uge i64 0, %t70 - br i1 %t71, label %range8106, label %inrange8107 -range8106: - call void @finch_panic_index(ptr @.str.5307, i64 4927, i64 0, i64 %t70) + br i1 %t71, label %range8499, label %inrange8500 +range8499: + call void @finch_panic_index(ptr @.str.5514, i64 5154, i64 0, i64 %t70) unreachable -inrange8107: +inrange8500: %t72 = extractvalue { ptr, i64, i64 } %t69, 0 %t73 = getelementptr inbounds { ptr, i64, i64 }, ptr %t72, i64 0 %t74 = getelementptr inbounds { ptr, i64, i64 }, ptr %t73, i32 0, i32 1 %t75 = load i64, ptr %t74 %t76 = icmp sgt i64 %t75, 0 - br label %logic.rend8108 -logic.rend8108: - br label %logic.end8105 -logic.end8105: - %t77 = phi i1 [ false, %logic.from8103 ], [ %t76, %logic.rend8108 ] + br label %logic.rend8501 +logic.rend8501: + br label %logic.end8498 +logic.end8498: + %t77 = phi i1 [ false, %logic.from8496 ], [ %t76, %logic.rend8501 ] store i1 %t77, ptr %a78 store { ptr, i64, i64 } zeroinitializer, ptr %a79 %t80 = getelementptr inbounds %S.gen.StructDef, ptr %a19, i32 0, i32 11 %t81 = getelementptr inbounds { ptr, i64, i64 }, ptr %t80, i32 0, i32 1 %t82 = load i64, ptr %t81 store i64 0, ptr %a83 - br label %for.cond8109 -for.cond8109: + br label %for.cond8502 +for.cond8502: %t84 = load i64, ptr %a83 %t85 = icmp slt i64 %t84, %t82 - br i1 %t85, label %for.body8110, label %for.end8112 -for.body8110: + br i1 %t85, label %for.body8503, label %for.end8505 +for.body8503: %t86 = getelementptr inbounds { ptr, i64, i64 }, ptr %a79, i32 0, i32 1 %t87 = load i64, ptr %t86 %t88 = add i64 %t87, 1 @@ -82965,31 +86898,31 @@ for.body8110: %t90 = getelementptr inbounds i64, ptr %t89, i64 %t87 store i64 -1, ptr %t90 store i64 %t88, ptr %t86 - br label %for.step8111 -for.step8111: + br label %for.step8504 +for.step8504: %t91 = load i64, ptr %a83 %t92 = add i64 %t91, 1 store i64 %t92, ptr %a83 - br label %for.cond8109 -for.end8112: + br label %for.cond8502 +for.end8505: %t93 = getelementptr inbounds { ptr, i64, i64 }, ptr %a3, i32 0, i32 1 %t94 = load i64, ptr %t93 store i64 0, ptr %a95 - br label %for.cond8113 -for.cond8113: + br label %for.cond8506 +for.cond8506: %t96 = load i64, ptr %a95 %t97 = icmp slt i64 %t96, %t94 - br i1 %t97, label %for.body8114, label %for.end8116 -for.body8114: + br i1 %t97, label %for.body8507, label %for.end8509 +for.body8507: %t98 = load i64, ptr %a95 %t99 = load { ptr, i64, i64 }, ptr %a4 %t100 = extractvalue { ptr, i64, i64 } %t99, 1 %t101 = icmp uge i64 %t98, %t100 - br i1 %t101, label %range8117, label %inrange8118 -range8117: - call void @finch_panic_index(ptr @.str.5308, i64 4933, i64 %t98, i64 %t100) + br i1 %t101, label %range8510, label %inrange8511 +range8510: + call void @finch_panic_index(ptr @.str.5515, i64 5160, i64 %t98, i64 %t100) unreachable -inrange8118: +inrange8511: %t102 = extractvalue { ptr, i64, i64 } %t99, 0 %t103 = getelementptr inbounds { ptr, i64, i64 }, ptr %t102, i64 %t98 %t104 = getelementptr inbounds { ptr, i64, i64 }, ptr %t103, i32 0, i32 1 @@ -82997,42 +86930,42 @@ inrange8118: %t106 = icmp sgt i64 %t105, 0 %t107 = load i1, ptr %a78 %t108 = icmp ne i1 %t106, %t107 - br i1 %t108, label %then8119, label %endif8121 -then8119: + br i1 %t108, label %then8512, label %endif8514 +then8512: %t109 = load ptr, ptr %a1 %t110 = load i64, ptr %a95 %t111 = load { ptr, i64, i64 }, ptr %a3 %t112 = extractvalue { ptr, i64, i64 } %t111, 1 %t113 = icmp uge i64 %t110, %t112 - br i1 %t113, label %range8122, label %inrange8123 -range8122: - call void @finch_panic_index(ptr @.str.5309, i64 4934, i64 %t110, i64 %t112) + br i1 %t113, label %range8515, label %inrange8516 +range8515: + call void @finch_panic_index(ptr @.str.5516, i64 5161, i64 %t110, i64 %t112) unreachable -inrange8123: +inrange8516: %t114 = extractvalue { ptr, i64, i64 } %t111, 0 %t115 = getelementptr inbounds %S.ast.Node, ptr %t114, i64 %t110 %t116 = load %S.ast.Node, ptr %t115 - call void @finch.gen.fail(ptr %t109, %S.ast.Node %t116, { ptr, i64, i64 } { ptr @.str.5310, i64 69, i64 0 }) - br label %endif8121 -endif8121: + call void @finch.gen.fail(ptr %t109, %S.ast.Node %t116, { ptr, i64, i64 } { ptr @.str.5517, i64 69, i64 0 }) + br label %endif8514 +endif8514: %t117 = load i1, ptr %a78 %t118 = xor i1 %t117, true - br i1 %t118, label %then8124, label %endif8126 -then8124: + br i1 %t118, label %then8517, label %endif8519 +then8517: %t119 = getelementptr inbounds { ptr, i64, i64 }, ptr %a3, i32 0, i32 1 %t120 = load i64, ptr %t119 %t121 = getelementptr inbounds %S.gen.StructDef, ptr %a19, i32 0, i32 11 %t122 = getelementptr inbounds { ptr, i64, i64 }, ptr %t121, i32 0, i32 1 %t123 = load i64, ptr %t122 %t124 = icmp ne i64 %t120, %t123 - br i1 %t124, label %then8127, label %endif8129 -then8127: + br i1 %t124, label %then8520, label %endif8522 +then8520: %t125 = load ptr, ptr %a1 %t126 = load %S.ast.Node, ptr %a5 %t127 = getelementptr inbounds %S.gen.StructDef, ptr %a19, i32 0, i32 1 %t128 = load { ptr, i64, i64 }, ptr %t127 store { ptr, i64, i64 } %t128, ptr %a130 - store { ptr, i64, i64 } { ptr @.str.5311, i64 5, i64 0 }, ptr %a131 + store { ptr, i64, i64 } { ptr @.str.5518, i64 5, i64 0 }, ptr %a131 call void @finch_str_concat(ptr %a129, ptr %a130, ptr %a131) %t132 = load { ptr, i64, i64 }, ptr %a129 %t133 = getelementptr inbounds %S.gen.StructDef, ptr %a19, i32 0, i32 11 @@ -83049,7 +86982,7 @@ then8127: call void @finch_str_drop(ptr %a142) %t143 = load { ptr, i64, i64 }, ptr %a138 store { ptr, i64, i64 } %t143, ptr %a145 - store { ptr, i64, i64 } { ptr @.str.5312, i64 17, i64 0 }, ptr %a146 + store { ptr, i64, i64 } { ptr @.str.5519, i64 17, i64 0 }, ptr %a146 call void @finch_str_concat(ptr %a144, ptr %a145, ptr %a146) store { ptr, i64, i64 } %t143, ptr %a147 call void @finch_str_drop(ptr %a147) @@ -83067,7 +87000,7 @@ then8127: call void @finch_str_drop(ptr %a157) %t158 = load { ptr, i64, i64 }, ptr %a153 store { ptr, i64, i64 } %t158, ptr %a160 - store { ptr, i64, i64 } { ptr @.str.5313, i64 23, i64 0 }, ptr %a161 + store { ptr, i64, i64 } { ptr @.str.5520, i64 23, i64 0 }, ptr %a161 call void @finch_str_concat(ptr %a159, ptr %a160, ptr %a161) store { ptr, i64, i64 } %t158, ptr %a162 call void @finch_str_drop(ptr %a162) @@ -83081,7 +87014,7 @@ then8127: call void @finch_str_drop(ptr %a169) %t170 = load { ptr, i64, i64 }, ptr %a166 store { ptr, i64, i64 } %t170, ptr %a172 - store { ptr, i64, i64 } { ptr @.str.5314, i64 15, i64 0 }, ptr %a173 + store { ptr, i64, i64 } { ptr @.str.5521, i64 15, i64 0 }, ptr %a173 call void @finch_str_concat(ptr %a171, ptr %a172, ptr %a173) store { ptr, i64, i64 } %t170, ptr %a174 call void @finch_str_drop(ptr %a174) @@ -83089,34 +87022,34 @@ then8127: call void @finch.gen.fail(ptr %t125, %S.ast.Node %t126, { ptr, i64, i64 } %t175) store { ptr, i64, i64 } %t175, ptr %a176 call void @finch_str_drop(ptr %a176) - br label %endif8129 -endif8129: + br label %endif8522 +endif8522: %t177 = load i64, ptr %a95 %t178 = load i64, ptr %a95 %t179 = load { ptr, i64, i64 }, ptr %a79 %t180 = extractvalue { ptr, i64, i64 } %t179, 1 %t181 = icmp uge i64 %t178, %t180 - br i1 %t181, label %range8130, label %inrange8131 -range8130: - call void @finch_panic_index(ptr @.str.5315, i64 4940, i64 %t178, i64 %t180) + br i1 %t181, label %range8523, label %inrange8524 +range8523: + call void @finch_panic_index(ptr @.str.5522, i64 5167, i64 %t178, i64 %t180) unreachable -inrange8131: +inrange8524: %t182 = extractvalue { ptr, i64, i64 } %t179, 0 %t183 = getelementptr inbounds i64, ptr %t182, i64 %t178 store i64 %t177, ptr %t183 - br label %for.step8115 -endif8126: + br label %for.step8508 +endif8519: %t184 = getelementptr inbounds %S.gen.StructDef, ptr %a19, i32 0, i32 11 %t185 = getelementptr inbounds { ptr, i64, i64 }, ptr %t184, i32 0, i32 1 %t186 = load i64, ptr %a95 %t187 = load { ptr, i64, i64 }, ptr %a4 %t188 = extractvalue { ptr, i64, i64 } %t187, 1 %t189 = icmp uge i64 %t186, %t188 - br i1 %t189, label %range8132, label %inrange8133 -range8132: - call void @finch_panic_index(ptr @.str.5316, i64 4943, i64 %t186, i64 %t188) + br i1 %t189, label %range8525, label %inrange8526 +range8525: + call void @finch_panic_index(ptr @.str.5523, i64 5170, i64 %t186, i64 %t188) unreachable -inrange8133: +inrange8526: %t190 = extractvalue { ptr, i64, i64 } %t187, 0 %t191 = getelementptr inbounds { ptr, i64, i64 }, ptr %t190, i64 %t186 %t192 = load { ptr, i64, i64 }, ptr %t191 @@ -83124,61 +87057,61 @@ inrange8133: %t194 = load i64, ptr %t185 %t195 = load ptr, ptr %t184 store i64 0, ptr %a196 - br label %find.cond8134 -find.cond8134: + br label %find.cond8527 +find.cond8527: %t197 = load i64, ptr %a196 %t198 = icmp slt i64 %t197, %t194 - br i1 %t198, label %find.body8135, label %find.end8138 -find.body8135: + br i1 %t198, label %find.body8528, label %find.end8531 +find.body8528: %t199 = getelementptr inbounds { ptr, i64, i64 }, ptr %t195, i64 %t197 %t200 = load { ptr, i64, i64 }, ptr %t199 store { ptr, i64, i64 } %t200, ptr %a201 store { ptr, i64, i64 } %t192, ptr %a202 %t203 = call i32 @finch_str_eq(ptr %a201, ptr %a202) %t204 = icmp ne i32 %t203, 0 - br i1 %t204, label %find.hit8136, label %find.next8137 -find.hit8136: + br i1 %t204, label %find.hit8529, label %find.next8530 +find.hit8529: store i64 %t197, ptr %a193 - br label %find.end8138 -find.next8137: + br label %find.end8531 +find.next8530: %t205 = add i64 %t197, 1 store i64 %t205, ptr %a196 - br label %find.cond8134 -find.end8138: + br label %find.cond8527 +find.end8531: %t206 = load i64, ptr %a193 store i64 %t206, ptr %a207 %t208 = load i64, ptr %a207 %t209 = icmp slt i64 %t208, 0 - br i1 %t209, label %then8139, label %endif8141 -then8139: + br i1 %t209, label %then8532, label %endif8534 +then8532: %t210 = load ptr, ptr %a1 %t211 = load i64, ptr %a95 %t212 = load { ptr, i64, i64 }, ptr %a3 %t213 = extractvalue { ptr, i64, i64 } %t212, 1 %t214 = icmp uge i64 %t211, %t213 - br i1 %t214, label %range8142, label %inrange8143 -range8142: - call void @finch_panic_index(ptr @.str.5317, i64 4945, i64 %t211, i64 %t213) + br i1 %t214, label %range8535, label %inrange8536 +range8535: + call void @finch_panic_index(ptr @.str.5524, i64 5172, i64 %t211, i64 %t213) unreachable -inrange8143: +inrange8536: %t215 = extractvalue { ptr, i64, i64 } %t212, 0 %t216 = getelementptr inbounds %S.ast.Node, ptr %t215, i64 %t211 %t217 = load %S.ast.Node, ptr %t216 %t218 = getelementptr inbounds %S.gen.StructDef, ptr %a19, i32 0, i32 1 %t219 = load { ptr, i64, i64 }, ptr %t218 store { ptr, i64, i64 } %t219, ptr %a221 - store { ptr, i64, i64 } { ptr @.str.5318, i64 15, i64 0 }, ptr %a222 + store { ptr, i64, i64 } { ptr @.str.5525, i64 15, i64 0 }, ptr %a222 call void @finch_str_concat(ptr %a220, ptr %a221, ptr %a222) %t223 = load { ptr, i64, i64 }, ptr %a220 %t224 = load i64, ptr %a95 %t225 = load { ptr, i64, i64 }, ptr %a4 %t226 = extractvalue { ptr, i64, i64 } %t225, 1 %t227 = icmp uge i64 %t224, %t226 - br i1 %t227, label %range8144, label %inrange8145 -range8144: - call void @finch_panic_index(ptr @.str.5319, i64 4945, i64 %t224, i64 %t226) + br i1 %t227, label %range8537, label %inrange8538 +range8537: + call void @finch_panic_index(ptr @.str.5526, i64 5172, i64 %t224, i64 %t226) unreachable -inrange8145: +inrange8538: %t228 = extractvalue { ptr, i64, i64 } %t225, 0 %t229 = getelementptr inbounds { ptr, i64, i64 }, ptr %t228, i64 %t224 %t230 = load { ptr, i64, i64 }, ptr %t229 @@ -83189,7 +87122,7 @@ inrange8145: call void @finch_str_drop(ptr %a234) %t235 = load { ptr, i64, i64 }, ptr %a231 store { ptr, i64, i64 } %t235, ptr %a237 - store { ptr, i64, i64 } { ptr @.str.5320, i64 1, i64 0 }, ptr %a238 + store { ptr, i64, i64 } { ptr @.str.5527, i64 1, i64 0 }, ptr %a238 call void @finch_str_concat(ptr %a236, ptr %a237, ptr %a238) store { ptr, i64, i64 } %t235, ptr %a239 call void @finch_str_drop(ptr %a239) @@ -83197,33 +87130,33 @@ inrange8145: call void @finch.gen.fail(ptr %t210, %S.ast.Node %t217, { ptr, i64, i64 } %t240) store { ptr, i64, i64 } %t240, ptr %a241 call void @finch_str_drop(ptr %a241) - br label %endif8141 -endif8141: + br label %endif8534 +endif8534: %t242 = load i64, ptr %a207 %t243 = load { ptr, i64, i64 }, ptr %a79 %t244 = extractvalue { ptr, i64, i64 } %t243, 1 %t245 = icmp uge i64 %t242, %t244 - br i1 %t245, label %range8146, label %inrange8147 -range8146: - call void @finch_panic_index(ptr @.str.5321, i64 4947, i64 %t242, i64 %t244) + br i1 %t245, label %range8539, label %inrange8540 +range8539: + call void @finch_panic_index(ptr @.str.5528, i64 5174, i64 %t242, i64 %t244) unreachable -inrange8147: +inrange8540: %t246 = extractvalue { ptr, i64, i64 } %t243, 0 %t247 = getelementptr inbounds i64, ptr %t246, i64 %t242 %t248 = load i64, ptr %t247 %t249 = icmp sge i64 %t248, 0 - br i1 %t249, label %then8148, label %endif8150 -then8148: + br i1 %t249, label %then8541, label %endif8543 +then8541: %t250 = load ptr, ptr %a1 %t251 = load i64, ptr %a95 %t252 = load { ptr, i64, i64 }, ptr %a3 %t253 = extractvalue { ptr, i64, i64 } %t252, 1 %t254 = icmp uge i64 %t251, %t253 - br i1 %t254, label %range8151, label %inrange8152 -range8151: - call void @finch_panic_index(ptr @.str.5322, i64 4948, i64 %t251, i64 %t253) + br i1 %t254, label %range8544, label %inrange8545 +range8544: + call void @finch_panic_index(ptr @.str.5529, i64 5175, i64 %t251, i64 %t253) unreachable -inrange8152: +inrange8545: %t255 = extractvalue { ptr, i64, i64 } %t252, 0 %t256 = getelementptr inbounds %S.ast.Node, ptr %t255, i64 %t251 %t257 = load %S.ast.Node, ptr %t256 @@ -83231,20 +87164,20 @@ inrange8152: %t259 = load { ptr, i64, i64 }, ptr %a4 %t260 = extractvalue { ptr, i64, i64 } %t259, 1 %t261 = icmp uge i64 %t258, %t260 - br i1 %t261, label %range8153, label %inrange8154 -range8153: - call void @finch_panic_index(ptr @.str.5324, i64 4948, i64 %t258, i64 %t260) + br i1 %t261, label %range8546, label %inrange8547 +range8546: + call void @finch_panic_index(ptr @.str.5531, i64 5175, i64 %t258, i64 %t260) unreachable -inrange8154: +inrange8547: %t262 = extractvalue { ptr, i64, i64 } %t259, 0 %t263 = getelementptr inbounds { ptr, i64, i64 }, ptr %t262, i64 %t258 %t264 = load { ptr, i64, i64 }, ptr %t263 - store { ptr, i64, i64 } { ptr @.str.5323, i64 11, i64 0 }, ptr %a266 + store { ptr, i64, i64 } { ptr @.str.5530, i64 11, i64 0 }, ptr %a266 store { ptr, i64, i64 } %t264, ptr %a267 call void @finch_str_concat(ptr %a265, ptr %a266, ptr %a267) %t268 = load { ptr, i64, i64 }, ptr %a265 store { ptr, i64, i64 } %t268, ptr %a270 - store { ptr, i64, i64 } { ptr @.str.5325, i64 16, i64 0 }, ptr %a271 + store { ptr, i64, i64 } { ptr @.str.5532, i64 16, i64 0 }, ptr %a271 call void @finch_str_concat(ptr %a269, ptr %a270, ptr %a271) store { ptr, i64, i64 } %t268, ptr %a272 call void @finch_str_drop(ptr %a272) @@ -83252,36 +87185,36 @@ inrange8154: call void @finch.gen.fail(ptr %t250, %S.ast.Node %t257, { ptr, i64, i64 } %t273) store { ptr, i64, i64 } %t273, ptr %a274 call void @finch_str_drop(ptr %a274) - br label %endif8150 -endif8150: + br label %endif8543 +endif8543: %t275 = load i64, ptr %a95 %t276 = load i64, ptr %a207 %t277 = load { ptr, i64, i64 }, ptr %a79 %t278 = extractvalue { ptr, i64, i64 } %t277, 1 %t279 = icmp uge i64 %t276, %t278 - br i1 %t279, label %range8155, label %inrange8156 -range8155: - call void @finch_panic_index(ptr @.str.5326, i64 4950, i64 %t276, i64 %t278) + br i1 %t279, label %range8548, label %inrange8549 +range8548: + call void @finch_panic_index(ptr @.str.5533, i64 5177, i64 %t276, i64 %t278) unreachable -inrange8156: +inrange8549: %t280 = extractvalue { ptr, i64, i64 } %t277, 0 %t281 = getelementptr inbounds i64, ptr %t280, i64 %t276 store i64 %t275, ptr %t281 - br label %for.step8115 -for.step8115: + br label %for.step8508 +for.step8508: %t282 = load i64, ptr %a95 %t283 = add i64 %t282, 1 store i64 %t283, ptr %a95 - br label %for.cond8113 -for.end8116: - store { ptr, i64, i64 } { ptr @.str.5327, i64 15, i64 0 }, ptr %a284 + br label %for.cond8506 +for.end8509: + store { ptr, i64, i64 } { ptr @.str.5534, i64 15, i64 0 }, ptr %a284 %t285 = load ptr, ptr %a1 %t286 = icmp eq ptr %t285, null - br i1 %t286, label %panic8157, label %ok8158 -panic8157: - call void @finch_panic(ptr @.str.5328, i64 4953, ptr @.str.5329) + br i1 %t286, label %panic8550, label %ok8551 +panic8550: + call void @finch_panic(ptr @.str.5535, i64 5180, ptr @.str.5536) unreachable -ok8158: +ok8551: %t287 = getelementptr inbounds %S.gen.Gen, ptr %t285, i32 0, i32 11 %t288 = getelementptr inbounds { ptr, i64, i64 }, ptr %t287, i32 0, i32 1 %t289 = load i64, ptr %t288 @@ -83290,22 +87223,22 @@ ok8158: %t292 = getelementptr inbounds { ptr, i64, i64 }, ptr %t291, i32 0, i32 1 %t293 = load i64, ptr %t292 store i64 0, ptr %a294 - br label %for.cond8159 -for.cond8159: + br label %for.cond8552 +for.cond8552: %t295 = load i64, ptr %a294 %t296 = icmp slt i64 %t295, %t293 - br i1 %t296, label %for.body8160, label %for.end8162 -for.body8160: + br i1 %t296, label %for.body8553, label %for.end8555 +for.body8553: %t297 = getelementptr inbounds %S.gen.StructDef, ptr %a19, i32 0, i32 12 %t298 = load i64, ptr %a294 %t299 = load { ptr, i64, i64 }, ptr %t297 %t300 = extractvalue { ptr, i64, i64 } %t299, 1 %t301 = icmp uge i64 %t298, %t300 - br i1 %t301, label %range8163, label %inrange8164 -range8163: - call void @finch_panic_index(ptr @.str.5330, i64 4955, i64 %t298, i64 %t300) + br i1 %t301, label %range8556, label %inrange8557 +range8556: + call void @finch_panic_index(ptr @.str.5537, i64 5182, i64 %t298, i64 %t300) unreachable -inrange8164: +inrange8557: %t302 = extractvalue { ptr, i64, i64 } %t299, 0 %t303 = getelementptr inbounds %S.ast.Type, ptr %t302, i64 %t298 %t304 = load %S.ast.Type, ptr %t303 @@ -83318,39 +87251,39 @@ inrange8164: %t311 = load { ptr, i64, i64 }, ptr %a79 %t312 = extractvalue { ptr, i64, i64 } %t311, 1 %t313 = icmp uge i64 %t310, %t312 - br i1 %t313, label %range8165, label %inrange8166 -range8165: - call void @finch_panic_index(ptr @.str.5331, i64 4957, i64 %t310, i64 %t312) + br i1 %t313, label %range8558, label %inrange8559 +range8558: + call void @finch_panic_index(ptr @.str.5538, i64 5184, i64 %t310, i64 %t312) unreachable -inrange8166: +inrange8559: %t314 = extractvalue { ptr, i64, i64 } %t311, 0 %t315 = getelementptr inbounds i64, ptr %t314, i64 %t310 %t316 = load i64, ptr %t315 %t317 = icmp sge i64 %t316, 0 - br i1 %t317, label %then8167, label %else8168 -then8167: + br i1 %t317, label %then8560, label %else8561 +then8560: %t318 = load ptr, ptr %a1 %t319 = load ptr, ptr %a1 %t320 = load i64, ptr %a294 %t321 = load { ptr, i64, i64 }, ptr %a79 %t322 = extractvalue { ptr, i64, i64 } %t321, 1 %t323 = icmp uge i64 %t320, %t322 - br i1 %t323, label %range8170, label %inrange8171 -range8170: - call void @finch_panic_index(ptr @.str.5332, i64 4958, i64 %t320, i64 %t322) + br i1 %t323, label %range8563, label %inrange8564 +range8563: + call void @finch_panic_index(ptr @.str.5539, i64 5185, i64 %t320, i64 %t322) unreachable -inrange8171: +inrange8564: %t324 = extractvalue { ptr, i64, i64 } %t321, 0 %t325 = getelementptr inbounds i64, ptr %t324, i64 %t320 %t326 = load i64, ptr %t325 %t327 = load { ptr, i64, i64 }, ptr %a3 %t328 = extractvalue { ptr, i64, i64 } %t327, 1 %t329 = icmp uge i64 %t326, %t328 - br i1 %t329, label %range8172, label %inrange8173 -range8172: - call void @finch_panic_index(ptr @.str.5333, i64 4958, i64 %t326, i64 %t328) + br i1 %t329, label %range8565, label %inrange8566 +range8565: + call void @finch_panic_index(ptr @.str.5540, i64 5185, i64 %t326, i64 %t328) unreachable -inrange8173: +inrange8566: %t330 = extractvalue { ptr, i64, i64 } %t327, 0 %t331 = getelementptr inbounds %S.ast.Node, ptr %t330, i64 %t326 %t332 = load %S.ast.Node, ptr %t331 @@ -83361,22 +87294,22 @@ inrange8173: %t337 = load { ptr, i64, i64 }, ptr %a79 %t338 = extractvalue { ptr, i64, i64 } %t337, 1 %t339 = icmp uge i64 %t336, %t338 - br i1 %t339, label %range8174, label %inrange8175 -range8174: - call void @finch_panic_index(ptr @.str.5334, i64 4958, i64 %t336, i64 %t338) + br i1 %t339, label %range8567, label %inrange8568 +range8567: + call void @finch_panic_index(ptr @.str.5541, i64 5185, i64 %t336, i64 %t338) unreachable -inrange8175: +inrange8568: %t340 = extractvalue { ptr, i64, i64 } %t337, 0 %t341 = getelementptr inbounds i64, ptr %t340, i64 %t336 %t342 = load i64, ptr %t341 %t343 = load { ptr, i64, i64 }, ptr %a3 %t344 = extractvalue { ptr, i64, i64 } %t343, 1 %t345 = icmp uge i64 %t342, %t344 - br i1 %t345, label %range8176, label %inrange8177 -range8176: - call void @finch_panic_index(ptr @.str.5335, i64 4958, i64 %t342, i64 %t344) + br i1 %t345, label %range8569, label %inrange8570 +range8569: + call void @finch_panic_index(ptr @.str.5542, i64 5185, i64 %t342, i64 %t344) unreachable -inrange8177: +inrange8570: %t346 = extractvalue { ptr, i64, i64 } %t343, 0 %t347 = getelementptr inbounds %S.ast.Node, ptr %t346, i64 %t342 %t348 = load %S.ast.Node, ptr %t347 @@ -83385,20 +87318,20 @@ inrange8177: %t351 = load { ptr, i64, i64 }, ptr %t349 %t352 = extractvalue { ptr, i64, i64 } %t351, 1 %t353 = icmp uge i64 %t350, %t352 - br i1 %t353, label %range8178, label %inrange8179 -range8178: - call void @finch_panic_index(ptr @.str.5337, i64 4958, i64 %t350, i64 %t352) + br i1 %t353, label %range8571, label %inrange8572 +range8571: + call void @finch_panic_index(ptr @.str.5544, i64 5185, i64 %t350, i64 %t352) unreachable -inrange8179: +inrange8572: %t354 = extractvalue { ptr, i64, i64 } %t351, 0 %t355 = getelementptr inbounds { ptr, i64, i64 }, ptr %t354, i64 %t350 %t356 = load { ptr, i64, i64 }, ptr %t355 - store { ptr, i64, i64 } { ptr @.str.5336, i64 11, i64 0 }, ptr %a358 + store { ptr, i64, i64 } { ptr @.str.5543, i64 11, i64 0 }, ptr %a358 store { ptr, i64, i64 } %t356, ptr %a359 call void @finch_str_concat(ptr %a357, ptr %a358, ptr %a359) %t360 = load { ptr, i64, i64 }, ptr %a357 store { ptr, i64, i64 } %t360, ptr %a362 - store { ptr, i64, i64 } { ptr @.str.5338, i64 1, i64 0 }, ptr %a363 + store { ptr, i64, i64 } { ptr @.str.5545, i64 1, i64 0 }, ptr %a363 call void @finch_str_concat(ptr %a361, ptr %a362, ptr %a363) store { ptr, i64, i64 } %t360, ptr %a364 call void @finch_str_drop(ptr %a364) @@ -83412,45 +87345,45 @@ inrange8179: store %S.gen.Val %t366, ptr %a309 store %S.gen.Val %t369, ptr %a370 call void @finch.drop.S_gen_Val(ptr %a370) - br label %endif8169 -else8168: + br label %endif8562 +else8561: %t371 = getelementptr inbounds %S.gen.StructDef, ptr %a19, i32 0, i32 2 %t372 = load i1, ptr %t371 %t373 = xor i1 %t372, true - br label %logic.from8180 -logic.from8180: - br i1 %t373, label %logic.rhs8181, label %logic.end8182 -logic.rhs8181: + br label %logic.from8573 +logic.from8573: + br i1 %t373, label %logic.rhs8574, label %logic.end8575 +logic.rhs8574: %t374 = getelementptr inbounds %S.ast.Node, ptr %a20, i32 0, i32 9 %t375 = load i64, ptr %a294 %t376 = load { ptr, i64, i64 }, ptr %t374 %t377 = extractvalue { ptr, i64, i64 } %t376, 1 %t378 = icmp uge i64 %t375, %t377 - br i1 %t378, label %range8183, label %inrange8184 -range8183: - call void @finch_panic_index(ptr @.str.5339, i64 4959, i64 %t375, i64 %t377) + br i1 %t378, label %range8576, label %inrange8577 +range8576: + call void @finch_panic_index(ptr @.str.5546, i64 5186, i64 %t375, i64 %t377) unreachable -inrange8184: +inrange8577: %t379 = extractvalue { ptr, i64, i64 } %t376, 0 %t380 = getelementptr inbounds %S.ast.Node, ptr %t379, i64 %t375 %t381 = getelementptr inbounds %S.ast.Node, ptr %t380, i32 0, i32 9 %t382 = getelementptr inbounds { ptr, i64, i64 }, ptr %t381, i32 0, i32 1 %t383 = load i64, ptr %t382 %t384 = icmp sgt i64 %t383, 0 - br label %logic.rend8185 -logic.rend8185: - br label %logic.end8182 -logic.end8182: - %t385 = phi i1 [ false, %logic.from8180 ], [ %t384, %logic.rend8185 ] - br i1 %t385, label %then8186, label %else8187 -then8186: + br label %logic.rend8578 +logic.rend8578: + br label %logic.end8575 +logic.end8575: + %t385 = phi i1 [ false, %logic.from8573 ], [ %t384, %logic.rend8578 ] + br i1 %t385, label %then8579, label %else8580 +then8579: %t386 = load ptr, ptr %a1 %t387 = icmp eq ptr %t386, null - br i1 %t387, label %panic8189, label %ok8190 -panic8189: - call void @finch_panic(ptr @.str.5340, i64 4961, ptr @.str.5341) + br i1 %t387, label %panic8582, label %ok8583 +panic8582: + call void @finch_panic(ptr @.str.5547, i64 5188, ptr @.str.5548) unreachable -ok8190: +ok8583: %t388 = getelementptr inbounds %S.gen.Gen, ptr %t386, i32 0, i32 10 %t389 = load { ptr, i64, i64 }, ptr %t388 store { ptr, i64, i64 } %t389, ptr %a390 @@ -83459,11 +87392,11 @@ ok8190: store { ptr, i64, i64 } %t392, ptr %a393 %t394 = load ptr, ptr %a1 %t395 = icmp eq ptr %t394, null - br i1 %t395, label %panic8191, label %ok8192 -panic8191: - call void @finch_panic(ptr @.str.5342, i64 4962, ptr @.str.5343) + br i1 %t395, label %panic8584, label %ok8585 +panic8584: + call void @finch_panic(ptr @.str.5549, i64 5189, ptr @.str.5550) unreachable -ok8192: +ok8585: %t396 = getelementptr inbounds %S.gen.Gen, ptr %t394, i32 0, i32 14 %t397 = load { ptr, i64, i64 }, ptr %t396 store { ptr, i64, i64 } %t397, ptr %a398 @@ -83472,11 +87405,11 @@ ok8192: store { ptr, i64, i64 } %t400, ptr %a401 %t402 = load ptr, ptr %a1 %t403 = icmp eq ptr %t402, null - br i1 %t403, label %panic8193, label %ok8194 -panic8193: - call void @finch_panic(ptr @.str.5344, i64 4963, ptr @.str.5345) + br i1 %t403, label %panic8586, label %ok8587 +panic8586: + call void @finch_panic(ptr @.str.5551, i64 5190, ptr @.str.5552) unreachable -ok8194: +ok8587: %t404 = getelementptr inbounds %S.gen.Gen, ptr %t402, i32 0, i32 18 %t405 = load { ptr, i64, i64 }, ptr %t404 store { ptr, i64, i64 } %t405, ptr %a406 @@ -83485,11 +87418,11 @@ ok8194: store { ptr, i64, i64 } %t408, ptr %a409 %t410 = load ptr, ptr %a1 %t411 = icmp eq ptr %t410, null - br i1 %t411, label %panic8195, label %ok8196 -panic8195: - call void @finch_panic(ptr @.str.5346, i64 4964, ptr @.str.5347) + br i1 %t411, label %panic8588, label %ok8589 +panic8588: + call void @finch_panic(ptr @.str.5553, i64 5191, ptr @.str.5554) unreachable -ok8196: +ok8589: %t412 = getelementptr inbounds %S.gen.Gen, ptr %t410, i32 0, i32 19 %t413 = load { ptr, i64, i64 }, ptr %t412 store { ptr, i64, i64 } %t413, ptr %a414 @@ -83500,11 +87433,11 @@ ok8196: %t419 = load { ptr, i64, i64 }, ptr %t418 %t420 = load ptr, ptr %a1 %t421 = icmp eq ptr %t420, null - br i1 %t421, label %panic8197, label %ok8198 -panic8197: - call void @finch_panic(ptr @.str.5348, i64 4965, ptr @.str.5349) + br i1 %t421, label %panic8590, label %ok8591 +panic8590: + call void @finch_panic(ptr @.str.5555, i64 5192, ptr @.str.5556) unreachable -ok8198: +ok8591: %t422 = getelementptr inbounds %S.gen.Gen, ptr %t420, i32 0, i32 18 store { ptr, i64, i64 } %t419, ptr %a423 call void @finch.copy.arr_str(ptr %a424, ptr %a423) @@ -83517,11 +87450,11 @@ ok8198: %t429 = load { ptr, i64, i64 }, ptr %t428 %t430 = load ptr, ptr %a1 %t431 = icmp eq ptr %t430, null - br i1 %t431, label %panic8199, label %ok8200 -panic8199: - call void @finch_panic(ptr @.str.5350, i64 4966, ptr @.str.5351) + br i1 %t431, label %panic8592, label %ok8593 +panic8592: + call void @finch_panic(ptr @.str.5557, i64 5193, ptr @.str.5558) unreachable -ok8200: +ok8593: %t432 = getelementptr inbounds %S.gen.Gen, ptr %t430, i32 0, i32 19 store { ptr, i64, i64 } %t429, ptr %a433 call void @finch.copy.arr_S_ast_Type(ptr %a434, ptr %a433) @@ -83534,11 +87467,11 @@ ok8200: %t439 = load { ptr, i64, i64 }, ptr %a438 %t440 = load ptr, ptr %a1 %t441 = icmp eq ptr %t440, null - br i1 %t441, label %panic8201, label %ok8202 -panic8201: - call void @finch_panic(ptr @.str.5352, i64 4968, ptr @.str.5353) + br i1 %t441, label %panic8594, label %ok8595 +panic8594: + call void @finch_panic(ptr @.str.5559, i64 5195, ptr @.str.5560) unreachable -ok8202: +ok8595: %t442 = getelementptr inbounds %S.gen.Gen, ptr %t440, i32 0, i32 10 store { ptr, i64, i64 } %t439, ptr %a443 call void @finch.copy.arr_S_gen_Scope(ptr %a444, ptr %a443) @@ -83553,11 +87486,11 @@ ok8202: %t450 = load { ptr, i64, i64 }, ptr %t449 %t451 = load ptr, ptr %a1 %t452 = icmp eq ptr %t451, null - br i1 %t452, label %panic8203, label %ok8204 -panic8203: - call void @finch_panic(ptr @.str.5354, i64 4970, ptr @.str.5355) + br i1 %t452, label %panic8596, label %ok8597 +panic8596: + call void @finch_panic(ptr @.str.5561, i64 5197, ptr @.str.5562) unreachable -ok8204: +ok8597: %t453 = getelementptr inbounds %S.gen.Gen, ptr %t451, i32 0, i32 14 store { ptr, i64, i64 } %t450, ptr %a454 call void @finch_str_copy(ptr %a455, ptr %a454) @@ -83573,22 +87506,22 @@ ok8204: %t463 = load { ptr, i64, i64 }, ptr %t461 %t464 = extractvalue { ptr, i64, i64 } %t463, 1 %t465 = icmp uge i64 %t462, %t464 - br i1 %t465, label %range8205, label %inrange8206 -range8205: - call void @finch_panic_index(ptr @.str.5356, i64 4971, i64 %t462, i64 %t464) + br i1 %t465, label %range8598, label %inrange8599 +range8598: + call void @finch_panic_index(ptr @.str.5563, i64 5198, i64 %t462, i64 %t464) unreachable -inrange8206: +inrange8599: %t466 = extractvalue { ptr, i64, i64 } %t463, 0 %t467 = getelementptr inbounds %S.ast.Node, ptr %t466, i64 %t462 %t468 = getelementptr inbounds %S.ast.Node, ptr %t467, i32 0, i32 9 %t469 = load { ptr, i64, i64 }, ptr %t468 %t470 = extractvalue { ptr, i64, i64 } %t469, 1 %t471 = icmp uge i64 0, %t470 - br i1 %t471, label %range8207, label %inrange8208 -range8207: - call void @finch_panic_index(ptr @.str.5357, i64 4971, i64 0, i64 %t470) + br i1 %t471, label %range8600, label %inrange8601 +range8600: + call void @finch_panic_index(ptr @.str.5564, i64 5198, i64 0, i64 %t470) unreachable -inrange8208: +inrange8601: %t472 = extractvalue { ptr, i64, i64 } %t469, 0 %t473 = getelementptr inbounds %S.ast.Node, ptr %t472, i64 0 %t474 = load %S.ast.Node, ptr %t473 @@ -83600,22 +87533,22 @@ inrange8208: %t480 = load { ptr, i64, i64 }, ptr %t478 %t481 = extractvalue { ptr, i64, i64 } %t480, 1 %t482 = icmp uge i64 %t479, %t481 - br i1 %t482, label %range8209, label %inrange8210 -range8209: - call void @finch_panic_index(ptr @.str.5358, i64 4971, i64 %t479, i64 %t481) + br i1 %t482, label %range8602, label %inrange8603 +range8602: + call void @finch_panic_index(ptr @.str.5565, i64 5198, i64 %t479, i64 %t481) unreachable -inrange8210: +inrange8603: %t483 = extractvalue { ptr, i64, i64 } %t480, 0 %t484 = getelementptr inbounds %S.ast.Node, ptr %t483, i64 %t479 %t485 = getelementptr inbounds %S.ast.Node, ptr %t484, i32 0, i32 9 %t486 = load { ptr, i64, i64 }, ptr %t485 %t487 = extractvalue { ptr, i64, i64 } %t486, 1 %t488 = icmp uge i64 0, %t487 - br i1 %t488, label %range8211, label %inrange8212 -range8211: - call void @finch_panic_index(ptr @.str.5359, i64 4971, i64 0, i64 %t487) + br i1 %t488, label %range8604, label %inrange8605 +range8604: + call void @finch_panic_index(ptr @.str.5566, i64 5198, i64 0, i64 %t487) unreachable -inrange8212: +inrange8605: %t489 = extractvalue { ptr, i64, i64 } %t486, 0 %t490 = getelementptr inbounds %S.ast.Node, ptr %t489, i64 0 %t491 = load %S.ast.Node, ptr %t490 @@ -83624,20 +87557,20 @@ inrange8212: %t494 = load { ptr, i64, i64 }, ptr %t492 %t495 = extractvalue { ptr, i64, i64 } %t494, 1 %t496 = icmp uge i64 %t493, %t495 - br i1 %t496, label %range8213, label %inrange8214 -range8213: - call void @finch_panic_index(ptr @.str.5361, i64 4971, i64 %t493, i64 %t495) + br i1 %t496, label %range8606, label %inrange8607 +range8606: + call void @finch_panic_index(ptr @.str.5568, i64 5198, i64 %t493, i64 %t495) unreachable -inrange8214: +inrange8607: %t497 = extractvalue { ptr, i64, i64 } %t494, 0 %t498 = getelementptr inbounds { ptr, i64, i64 }, ptr %t497, i64 %t493 %t499 = load { ptr, i64, i64 }, ptr %t498 - store { ptr, i64, i64 } { ptr @.str.5360, i64 16, i64 0 }, ptr %a501 + store { ptr, i64, i64 } { ptr @.str.5567, i64 16, i64 0 }, ptr %a501 store { ptr, i64, i64 } %t499, ptr %a502 call void @finch_str_concat(ptr %a500, ptr %a501, ptr %a502) %t503 = load { ptr, i64, i64 }, ptr %a500 store { ptr, i64, i64 } %t503, ptr %a505 - store { ptr, i64, i64 } { ptr @.str.5362, i64 1, i64 0 }, ptr %a506 + store { ptr, i64, i64 } { ptr @.str.5569, i64 1, i64 0 }, ptr %a506 call void @finch_str_concat(ptr %a504, ptr %a505, ptr %a506) store { ptr, i64, i64 } %t503, ptr %a507 call void @finch_str_drop(ptr %a507) @@ -83654,11 +87587,11 @@ inrange8214: %t514 = load { ptr, i64, i64 }, ptr %a401 %t515 = load ptr, ptr %a1 %t516 = icmp eq ptr %t515, null - br i1 %t516, label %panic8215, label %ok8216 -panic8215: - call void @finch_panic(ptr @.str.5363, i64 4972, ptr @.str.5364) + br i1 %t516, label %panic8608, label %ok8609 +panic8608: + call void @finch_panic(ptr @.str.5570, i64 5199, ptr @.str.5571) unreachable -ok8216: +ok8609: %t517 = getelementptr inbounds %S.gen.Gen, ptr %t515, i32 0, i32 14 store { ptr, i64, i64 } %t514, ptr %a518 call void @finch_str_copy(ptr %a519, ptr %a518) @@ -83670,11 +87603,11 @@ ok8216: %t523 = load { ptr, i64, i64 }, ptr %a409 %t524 = load ptr, ptr %a1 %t525 = icmp eq ptr %t524, null - br i1 %t525, label %panic8217, label %ok8218 -panic8217: - call void @finch_panic(ptr @.str.5365, i64 4973, ptr @.str.5366) + br i1 %t525, label %panic8610, label %ok8611 +panic8610: + call void @finch_panic(ptr @.str.5572, i64 5200, ptr @.str.5573) unreachable -ok8218: +ok8611: %t526 = getelementptr inbounds %S.gen.Gen, ptr %t524, i32 0, i32 18 store { ptr, i64, i64 } %t523, ptr %a527 call void @finch.copy.arr_str(ptr %a528, ptr %a527) @@ -83686,11 +87619,11 @@ ok8218: %t532 = load { ptr, i64, i64 }, ptr %a417 %t533 = load ptr, ptr %a1 %t534 = icmp eq ptr %t533, null - br i1 %t534, label %panic8219, label %ok8220 -panic8219: - call void @finch_panic(ptr @.str.5367, i64 4974, ptr @.str.5368) + br i1 %t534, label %panic8612, label %ok8613 +panic8612: + call void @finch_panic(ptr @.str.5574, i64 5201, ptr @.str.5575) unreachable -ok8220: +ok8613: %t535 = getelementptr inbounds %S.gen.Gen, ptr %t533, i32 0, i32 19 store { ptr, i64, i64 } %t532, ptr %a536 call void @finch.copy.arr_S_ast_Type(ptr %a537, ptr %a536) @@ -83702,11 +87635,11 @@ ok8220: %t541 = load { ptr, i64, i64 }, ptr %a393 %t542 = load ptr, ptr %a1 %t543 = icmp eq ptr %t542, null - br i1 %t543, label %panic8221, label %ok8222 -panic8221: - call void @finch_panic(ptr @.str.5369, i64 4975, ptr @.str.5370) + br i1 %t543, label %panic8614, label %ok8615 +panic8614: + call void @finch_panic(ptr @.str.5576, i64 5202, ptr @.str.5577) unreachable -ok8222: +ok8615: %t544 = getelementptr inbounds %S.gen.Gen, ptr %t542, i32 0, i32 10 store { ptr, i64, i64 } %t541, ptr %a545 call void @finch.copy.arr_S_gen_Scope(ptr %a546, ptr %a545) @@ -83720,14 +87653,14 @@ ok8222: call void @finch.drop.arr_str(ptr %a409) call void @finch_str_drop(ptr %a401) call void @finch.drop.arr_S_gen_Scope(ptr %a393) - br label %endif8188 -else8187: + br label %endif8581 +else8580: call void @finch.drop.S_gen_Val(ptr %a309) call void @finch.drop.S_ast_Type(ptr %a308) - br label %for.step8161 -endif8188: - br label %endif8169 -endif8169: + br label %for.step8554 +endif8581: + br label %endif8562 +endif8562: %t550 = load ptr, ptr %a1 %t551 = load %S.gen.Val, ptr %a309 %t552 = call { ptr, i64, i64 } @finch.gen.own(ptr %t550, %S.gen.Val %t551) @@ -83749,12 +87682,12 @@ endif8169: call void @finch.drop.S_gen_Val(ptr %a566) %t567 = load ptr, ptr %a1 %t568 = load { ptr, i64, i64 }, ptr %a65 - store { ptr, i64, i64 } { ptr @.str.5371, i64 12, i64 0 }, ptr %a570 + store { ptr, i64, i64 } { ptr @.str.5578, i64 12, i64 0 }, ptr %a570 store { ptr, i64, i64 } %t568, ptr %a571 call void @finch_str_concat(ptr %a569, ptr %a570, ptr %a571) %t572 = load { ptr, i64, i64 }, ptr %a569 store { ptr, i64, i64 } %t572, ptr %a574 - store { ptr, i64, i64 } { ptr @.str.5372, i64 1, i64 0 }, ptr %a575 + store { ptr, i64, i64 } { ptr @.str.5579, i64 1, i64 0 }, ptr %a575 call void @finch_str_concat(ptr %a573, ptr %a574, ptr %a575) store { ptr, i64, i64 } %t572, ptr %a576 call void @finch_str_drop(ptr %a576) @@ -83767,7 +87700,7 @@ endif8169: call void @finch_str_drop(ptr %a582) %t583 = load { ptr, i64, i64 }, ptr %a579 store { ptr, i64, i64 } %t583, ptr %a585 - store { ptr, i64, i64 } { ptr @.str.5373, i64 2, i64 0 }, ptr %a586 + store { ptr, i64, i64 } { ptr @.str.5580, i64 2, i64 0 }, ptr %a586 call void @finch_str_concat(ptr %a584, ptr %a585, ptr %a586) store { ptr, i64, i64 } %t583, ptr %a587 call void @finch_str_drop(ptr %a587) @@ -83784,7 +87717,7 @@ endif8169: call void @finch_str_drop(ptr %a596) %t597 = load { ptr, i64, i64 }, ptr %a592 store { ptr, i64, i64 } %t597, ptr %a599 - store { ptr, i64, i64 } { ptr @.str.5374, i64 1, i64 0 }, ptr %a600 + store { ptr, i64, i64 } { ptr @.str.5581, i64 1, i64 0 }, ptr %a600 call void @finch_str_concat(ptr %a598, ptr %a599, ptr %a600) store { ptr, i64, i64 } %t597, ptr %a601 call void @finch_str_drop(ptr %a601) @@ -83797,7 +87730,7 @@ endif8169: call void @finch_str_drop(ptr %a607) %t608 = load { ptr, i64, i64 }, ptr %a604 store { ptr, i64, i64 } %t608, ptr %a610 - store { ptr, i64, i64 } { ptr @.str.5375, i64 2, i64 0 }, ptr %a611 + store { ptr, i64, i64 } { ptr @.str.5582, i64 2, i64 0 }, ptr %a611 call void @finch_str_concat(ptr %a609, ptr %a610, ptr %a611) store { ptr, i64, i64 } %t608, ptr %a612 call void @finch_str_drop(ptr %a612) @@ -83807,11 +87740,11 @@ endif8169: %t616 = load { ptr, i64, i64 }, ptr %t614 %t617 = extractvalue { ptr, i64, i64 } %t616, 1 %t618 = icmp uge i64 %t615, %t617 - br i1 %t618, label %range8223, label %inrange8224 -range8223: - call void @finch_panic_index(ptr @.str.5376, i64 4981, i64 %t615, i64 %t617) + br i1 %t618, label %range8616, label %inrange8617 +range8616: + call void @finch_panic_index(ptr @.str.5583, i64 5208, i64 %t615, i64 %t617) unreachable -inrange8224: +inrange8617: %t619 = extractvalue { ptr, i64, i64 } %t616, 0 %t620 = getelementptr inbounds i64, ptr %t619, i64 %t615 %t621 = load i64, ptr %t620 @@ -83835,13 +87768,13 @@ inrange8224: call void @finch_str_drop(ptr %a553) call void @finch.drop.S_gen_Val(ptr %a309) call void @finch.drop.S_ast_Type(ptr %a308) - br label %for.step8161 -for.step8161: + br label %for.step8554 +for.step8554: %t634 = load i64, ptr %a294 %t635 = add i64 %t634, 1 store i64 %t635, ptr %a294 - br label %for.cond8159 -for.end8162: + br label %for.cond8552 +for.end8555: %t636 = load ptr, ptr %a1 %t637 = load i64, ptr %a290 call void @finch.gen.heldEnd(ptr %t636, i64 %t637) @@ -83880,18 +87813,18 @@ entry: store { ptr, i64, i64 } %p2, ptr %a3 %t4 = load ptr, ptr %a1 %t5 = icmp eq ptr %t4, null - br i1 %t5, label %panic8225, label %ok8226 -panic8225: - call void @finch_panic(ptr @.str.5377, i64 4991, ptr @.str.5378) + br i1 %t5, label %panic8618, label %ok8619 +panic8618: + call void @finch_panic(ptr @.str.5584, i64 5218, ptr @.str.5585) unreachable -ok8226: - %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 27 +ok8619: + %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 28 %t7 = load i1, ptr %t6 %t8 = xor i1 %t7, true - br i1 %t8, label %then8227, label %endif8229 -then8227: + br i1 %t8, label %then8620, label %endif8622 +then8620: ret void -endif8229: +endif8622: %t9 = load { ptr, i64, i64 }, ptr %a3 %t10 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t11 = load { ptr, i64, i64 }, ptr %t10 @@ -83901,8 +87834,8 @@ endif8229: %t15 = getelementptr inbounds { ptr, i64, i64 }, ptr %t14, i32 0, i32 1 %t16 = load i64, ptr %t15 %t17 = icmp sgt i64 %t16, 0 - br i1 %t17, label %then8230, label %endif8232 -then8230: + br i1 %t17, label %then8623, label %endif8625 +then8623: %t18 = load ptr, ptr %a1 %t19 = load %S.ast.Node, ptr %a2 %t20 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 12 @@ -83913,11 +87846,11 @@ then8230: %t25 = load i64, ptr %t24 %t26 = load %S.docs.Doc, ptr %a13 %t27 = call { ptr, i64, i64 } @finch.docs.hover(%S.docs.Doc %t26) - call void @finch.gen.noteRef(ptr %t18, %S.ast.Node %t19, i64 %t22, i64 %t25, { ptr, i64, i64 } %t27, { ptr, i64, i64 } { ptr @.str.5379, i64 0, i64 0 }, i64 0, i64 0) + call void @finch.gen.noteRef(ptr %t18, %S.ast.Node %t19, i64 %t22, i64 %t25, { ptr, i64, i64 } %t27, { ptr, i64, i64 } { ptr @.str.5586, i64 0, i64 0 }, i64 0, i64 0) store { ptr, i64, i64 } %t27, ptr %a28 call void @finch_str_drop(ptr %a28) - br label %endif8232 -endif8232: + br label %endif8625 +endif8625: call void @finch.drop.S_docs_Doc(ptr %a13) ret void } @@ -83929,220 +87862,201 @@ entry: %a10 = alloca %S.ast.Node, align 16 %a11 = alloca %S.ast.Node, align 16 %a13 = alloca %S.ast.Node, align 16 - %a16 = alloca { ptr, i64, i64 }, align 16 - %a17 = alloca { ptr, i64, i64 }, align 16 - %a28 = alloca { ptr, i64, i64 }, align 16 - %a29 = alloca { ptr, i64, i64 }, align 16 - %a31 = alloca { ptr, i64, i64 }, align 16 - %a39 = alloca { ptr, i64, i64 }, align 16 - %a40 = alloca { ptr, i64, i64 }, align 16 - %a41 = alloca { ptr, i64, i64 }, align 16 - %a43 = alloca { ptr, i64, i64 }, align 16 - %a44 = alloca { ptr, i64, i64 }, align 16 - %a45 = alloca { ptr, i64, i64 }, align 16 - %a46 = alloca { ptr, i64, i64 }, align 16 - %a49 = alloca { ptr, i64, i64 }, align 16 - %a50 = alloca { ptr, i64, i64 }, align 16 - %a51 = alloca { ptr, i64, i64 }, align 16 - %a52 = alloca { ptr, i64, i64 }, align 16 + %a17 = alloca i64, align 16 + %a20 = alloca { ptr, i64, i64 }, align 16 + %a24 = alloca i64, align 16 + %a36 = alloca %S.ast.Node, align 16 + %a37 = alloca %S.ast.Node, align 16 %a54 = alloca { ptr, i64, i64 }, align 16 %a55 = alloca { ptr, i64, i64 }, align 16 - %a56 = alloca { ptr, i64, i64 }, align 16 - %a57 = alloca { ptr, i64, i64 }, align 16 - %a59 = alloca { ptr, i64, i64 }, align 16 - %a65 = alloca i64, align 16 - %a72 = alloca { ptr, i64, i64 }, align 16 - %a73 = alloca { ptr, i64, i64 }, align 16 - %a74 = alloca { ptr, i64, i64 }, align 16 + %a66 = alloca { ptr, i64, i64 }, align 16 + %a67 = alloca { ptr, i64, i64 }, align 16 + %a69 = alloca { ptr, i64, i64 }, align 16 + %a77 = alloca { ptr, i64, i64 }, align 16 %a78 = alloca { ptr, i64, i64 }, align 16 %a79 = alloca { ptr, i64, i64 }, align 16 - %a80 = alloca { ptr, i64, i64 }, align 16 %a81 = alloca { ptr, i64, i64 }, align 16 + %a82 = alloca { ptr, i64, i64 }, align 16 + %a83 = alloca { ptr, i64, i64 }, align 16 %a84 = alloca { ptr, i64, i64 }, align 16 - %a90 = alloca i64, align 16 + %a87 = alloca { ptr, i64, i64 }, align 16 + %a88 = alloca { ptr, i64, i64 }, align 16 + %a89 = alloca { ptr, i64, i64 }, align 16 + %a90 = alloca { ptr, i64, i64 }, align 16 + %a92 = alloca { ptr, i64, i64 }, align 16 + %a93 = alloca { ptr, i64, i64 }, align 16 + %a94 = alloca { ptr, i64, i64 }, align 16 + %a95 = alloca { ptr, i64, i64 }, align 16 %a97 = alloca { ptr, i64, i64 }, align 16 - %a98 = alloca { ptr, i64, i64 }, align 16 - %a99 = alloca { ptr, i64, i64 }, align 16 - %a103 = alloca { ptr, i64, i64 }, align 16 - %a104 = alloca { ptr, i64, i64 }, align 16 - %a105 = alloca { ptr, i64, i64 }, align 16 - %a106 = alloca { ptr, i64, i64 }, align 16 - %a109 = alloca { ptr, i64, i64 }, align 16 - %a115 = alloca i64, align 16 - %a127 = alloca i64, align 16 - %a130 = alloca { ptr, i64, i64 }, align 16 - %a134 = alloca i64, align 16 - %a146 = alloca %S.ast.Node, align 16 - %a147 = alloca %S.ast.Node, align 16 - %a165 = alloca { ptr, i64, i64 }, align 16 - %a166 = alloca { ptr, i64, i64 }, align 16 - %a167 = alloca { ptr, i64, i64 }, align 16 - %a169 = alloca { ptr, i64, i64 }, align 16 - %a170 = alloca { ptr, i64, i64 }, align 16 - %a171 = alloca { ptr, i64, i64 }, align 16 - %a172 = alloca { ptr, i64, i64 }, align 16 - %a176 = alloca { ptr, i64, i64 }, align 16 - %a177 = alloca { ptr, i64, i64 }, align 16 - %a178 = alloca { ptr, i64, i64 }, align 16 - %a179 = alloca { ptr, i64, i64 }, align 16 - %a181 = alloca { ptr, i64, i64 }, align 16 - %a182 = alloca { ptr, i64, i64 }, align 16 - %a183 = alloca { ptr, i64, i64 }, align 16 - %a184 = alloca { ptr, i64, i64 }, align 16 - %a186 = alloca { ptr, i64, i64 }, align 16 - %a200 = alloca { ptr, i64, i64 }, align 16 - %a206 = alloca i64, align 16 - %a209 = alloca i64, align 16 + %a103 = alloca i64, align 16 + %a110 = alloca { ptr, i64, i64 }, align 16 + %a111 = alloca { ptr, i64, i64 }, align 16 + %a112 = alloca { ptr, i64, i64 }, align 16 + %a116 = alloca { ptr, i64, i64 }, align 16 + %a117 = alloca { ptr, i64, i64 }, align 16 + %a118 = alloca { ptr, i64, i64 }, align 16 + %a119 = alloca { ptr, i64, i64 }, align 16 + %a122 = alloca { ptr, i64, i64 }, align 16 + %a128 = alloca i64, align 16 + %a135 = alloca { ptr, i64, i64 }, align 16 + %a136 = alloca { ptr, i64, i64 }, align 16 + %a137 = alloca { ptr, i64, i64 }, align 16 + %a141 = alloca { ptr, i64, i64 }, align 16 + %a142 = alloca { ptr, i64, i64 }, align 16 + %a143 = alloca { ptr, i64, i64 }, align 16 + %a144 = alloca { ptr, i64, i64 }, align 16 + %a147 = alloca { ptr, i64, i64 }, align 16 + %a153 = alloca i64, align 16 + %a165 = alloca i64, align 16 + %a168 = alloca { ptr, i64, i64 }, align 16 + %a172 = alloca i64, align 16 + %a184 = alloca %S.ast.Node, align 16 + %a185 = alloca %S.ast.Node, align 16 + %a203 = alloca { ptr, i64, i64 }, align 16 + %a204 = alloca { ptr, i64, i64 }, align 16 + %a205 = alloca { ptr, i64, i64 }, align 16 + %a207 = alloca { ptr, i64, i64 }, align 16 + %a208 = alloca { ptr, i64, i64 }, align 16 + %a209 = alloca { ptr, i64, i64 }, align 16 + %a210 = alloca { ptr, i64, i64 }, align 16 %a214 = alloca { ptr, i64, i64 }, align 16 %a215 = alloca { ptr, i64, i64 }, align 16 - %a222 = alloca %S.gen.Ref, align 16 - %a228 = alloca i64, align 16 - %a232 = alloca %S.ast.Type, align 16 - %a233 = alloca %S.ast.Type, align 16 - %a235 = alloca %S.ast.Type, align 16 - %a241 = alloca %S.ast.Type, align 16 - %a242 = alloca %S.ast.Type, align 16 - %a245 = alloca %S.ast.Type, align 16 - %a248 = alloca { ptr, i64, i64 }, align 16 - %a249 = alloca { ptr, i64, i64 }, align 16 + %a216 = alloca { ptr, i64, i64 }, align 16 + %a217 = alloca { ptr, i64, i64 }, align 16 + %a219 = alloca { ptr, i64, i64 }, align 16 + %a220 = alloca { ptr, i64, i64 }, align 16 + %a221 = alloca { ptr, i64, i64 }, align 16 + %a222 = alloca { ptr, i64, i64 }, align 16 + %a224 = alloca { ptr, i64, i64 }, align 16 + %a238 = alloca { ptr, i64, i64 }, align 16 + %a244 = alloca i64, align 16 + %a247 = alloca i64, align 16 %a252 = alloca { ptr, i64, i64 }, align 16 - %a258 = alloca { ptr, i64, i64 }, align 16 - %a259 = alloca { ptr, i64, i64 }, align 16 - %a262 = alloca { ptr, i64, i64 }, align 16 + %a253 = alloca { ptr, i64, i64 }, align 16 + %a260 = alloca %S.gen.Ref, align 16 %a266 = alloca i64, align 16 - %a269 = alloca i64, align 16 - %a274 = alloca { ptr, i64, i64 }, align 16 - %a275 = alloca { ptr, i64, i64 }, align 16 - %a285 = alloca { ptr, i64, i64 }, align 16 + %a270 = alloca %S.ast.Type, align 16 + %a271 = alloca %S.ast.Type, align 16 + %a273 = alloca %S.ast.Type, align 16 + %a279 = alloca %S.ast.Type, align 16 + %a280 = alloca %S.ast.Type, align 16 + %a283 = alloca %S.ast.Type, align 16 %a286 = alloca { ptr, i64, i64 }, align 16 %a287 = alloca { ptr, i64, i64 }, align 16 - %a289 = alloca { ptr, i64, i64 }, align 16 - %a295 = alloca { ptr, i64, i64 }, align 16 - %a305 = alloca { ptr, i64, i64 }, align 16 - %a311 = alloca %S.gen.Val, align 16 + %a290 = alloca { ptr, i64, i64 }, align 16 + %a296 = alloca { ptr, i64, i64 }, align 16 + %a297 = alloca { ptr, i64, i64 }, align 16 + %a300 = alloca { ptr, i64, i64 }, align 16 + %a304 = alloca i64, align 16 + %a307 = alloca i64, align 16 + %a312 = alloca { ptr, i64, i64 }, align 16 + %a313 = alloca { ptr, i64, i64 }, align 16 + %a323 = alloca { ptr, i64, i64 }, align 16 + %a324 = alloca { ptr, i64, i64 }, align 16 + %a325 = alloca { ptr, i64, i64 }, align 16 %a327 = alloca { ptr, i64, i64 }, align 16 - %a328 = alloca { ptr, i64, i64 }, align 16 - %a333 = alloca %S.gen.Val, align 16 - %a334 = alloca %S.gen.Val, align 16 - %a336 = alloca %S.gen.Val, align 16 - %a346 = alloca %S.ast.Type, align 16 - %a347 = alloca %S.ast.Type, align 16 - %a351 = alloca %S.gen.Val, align 16 - %a355 = alloca { ptr, i64, i64 }, align 16 - %a367 = alloca { ptr, i64, i64 }, align 16 - %a368 = alloca %S.gen.Val, align 16 - %a379 = alloca { ptr, i64, i64 }, align 16 - %a380 = alloca { ptr, i64, i64 }, align 16 - %a383 = alloca { ptr, i64, i64 }, align 16 - %a389 = alloca { ptr, i64, i64 }, align 16 - %a390 = alloca { ptr, i64, i64 }, align 16 + %a333 = alloca { ptr, i64, i64 }, align 16 + %a343 = alloca { ptr, i64, i64 }, align 16 + %a349 = alloca %S.gen.Val, align 16 + %a365 = alloca { ptr, i64, i64 }, align 16 + %a366 = alloca { ptr, i64, i64 }, align 16 + %a371 = alloca %S.gen.Val, align 16 + %a372 = alloca %S.gen.Val, align 16 + %a374 = alloca %S.gen.Val, align 16 + %a384 = alloca %S.ast.Type, align 16 + %a385 = alloca %S.ast.Type, align 16 + %a389 = alloca %S.gen.Val, align 16 %a393 = alloca { ptr, i64, i64 }, align 16 - %a397 = alloca i64, align 16 - %a400 = alloca i64, align 16 %a405 = alloca { ptr, i64, i64 }, align 16 - %a406 = alloca { ptr, i64, i64 }, align 16 - %a416 = alloca { ptr, i64, i64 }, align 16 + %a406 = alloca %S.gen.Val, align 16 %a417 = alloca { ptr, i64, i64 }, align 16 %a418 = alloca { ptr, i64, i64 }, align 16 - %a420 = alloca { ptr, i64, i64 }, align 16 - %a426 = alloca { ptr, i64, i64 }, align 16 - %a436 = alloca { ptr, i64, i64 }, align 16 - %a442 = alloca %S.gen.Val, align 16 - %a459 = alloca %S.ast.Type, align 16 - %a460 = alloca %S.ast.Type, align 16 - %a462 = alloca %S.ast.Type, align 16 - %a463 = alloca { ptr, i64, i64 }, align 16 - %a464 = alloca i1, align 16 - %a467 = alloca { ptr, i64, i64 }, align 16 - %a468 = alloca { ptr, i64, i64 }, align 16 - %a484 = alloca { ptr, i64, i64 }, align 16 - %a485 = alloca { ptr, i64, i64 }, align 16 - %a492 = alloca { ptr, i64, i64 }, align 16 - %a493 = alloca { ptr, i64, i64 }, align 16 - %a495 = alloca { ptr, i64, i64 }, align 16 - %a504 = alloca { ptr, i64, i64 }, align 16 - %a508 = alloca { ptr, i64, i64 }, align 16 - %a509 = alloca { ptr, i64, i64 }, align 16 - %a510 = alloca { ptr, i64, i64 }, align 16 - %a512 = alloca { ptr, i64, i64 }, align 16 - %a513 = alloca { ptr, i64, i64 }, align 16 - %a514 = alloca { ptr, i64, i64 }, align 16 - %a515 = alloca { ptr, i64, i64 }, align 16 - %a518 = alloca { ptr, i64, i64 }, align 16 - %a521 = alloca { ptr, i64, i64 }, align 16 + %a421 = alloca { ptr, i64, i64 }, align 16 + %a427 = alloca { ptr, i64, i64 }, align 16 + %a428 = alloca { ptr, i64, i64 }, align 16 + %a431 = alloca { ptr, i64, i64 }, align 16 + %a435 = alloca i64, align 16 + %a438 = alloca i64, align 16 + %a443 = alloca { ptr, i64, i64 }, align 16 + %a444 = alloca { ptr, i64, i64 }, align 16 + %a454 = alloca { ptr, i64, i64 }, align 16 + %a455 = alloca { ptr, i64, i64 }, align 16 + %a456 = alloca { ptr, i64, i64 }, align 16 + %a458 = alloca { ptr, i64, i64 }, align 16 + %a464 = alloca { ptr, i64, i64 }, align 16 + %a474 = alloca { ptr, i64, i64 }, align 16 + %a480 = alloca %S.gen.Val, align 16 + %a497 = alloca %S.ast.Type, align 16 + %a498 = alloca %S.ast.Type, align 16 + %a500 = alloca %S.ast.Type, align 16 + %a501 = alloca { ptr, i64, i64 }, align 16 + %a502 = alloca i1, align 16 + %a505 = alloca { ptr, i64, i64 }, align 16 + %a506 = alloca { ptr, i64, i64 }, align 16 %a522 = alloca { ptr, i64, i64 }, align 16 %a523 = alloca { ptr, i64, i64 }, align 16 - %a525 = alloca { ptr, i64, i64 }, align 16 - %a526 = alloca { ptr, i64, i64 }, align 16 - %a527 = alloca { ptr, i64, i64 }, align 16 - %a528 = alloca { ptr, i64, i64 }, align 16 + %a530 = alloca { ptr, i64, i64 }, align 16 %a531 = alloca { ptr, i64, i64 }, align 16 - %a532 = alloca { ptr, i64, i64 }, align 16 - %a540 = alloca %S.ast.Type, align 16 - %a541 = alloca %S.ast.Type, align 16 - %a544 = alloca %S.ast.Type, align 16 + %a533 = alloca { ptr, i64, i64 }, align 16 + %a542 = alloca { ptr, i64, i64 }, align 16 %a546 = alloca { ptr, i64, i64 }, align 16 %a547 = alloca { ptr, i64, i64 }, align 16 + %a548 = alloca { ptr, i64, i64 }, align 16 %a550 = alloca { ptr, i64, i64 }, align 16 + %a551 = alloca { ptr, i64, i64 }, align 16 + %a552 = alloca { ptr, i64, i64 }, align 16 %a553 = alloca { ptr, i64, i64 }, align 16 - %a554 = alloca { ptr, i64, i64 }, align 16 + %a556 = alloca { ptr, i64, i64 }, align 16 %a559 = alloca { ptr, i64, i64 }, align 16 %a560 = alloca { ptr, i64, i64 }, align 16 + %a561 = alloca { ptr, i64, i64 }, align 16 + %a563 = alloca { ptr, i64, i64 }, align 16 + %a564 = alloca { ptr, i64, i64 }, align 16 + %a565 = alloca { ptr, i64, i64 }, align 16 + %a566 = alloca { ptr, i64, i64 }, align 16 %a569 = alloca { ptr, i64, i64 }, align 16 %a570 = alloca { ptr, i64, i64 }, align 16 - %a573 = alloca { ptr, i64, i64 }, align 16 - %a579 = alloca { ptr, i64, i64 }, align 16 - %a582 = alloca { ptr, i64, i64 }, align 16 - %a583 = alloca { ptr, i64, i64 }, align 16 + %a578 = alloca %S.ast.Type, align 16 + %a579 = alloca %S.ast.Type, align 16 + %a582 = alloca %S.ast.Type, align 16 + %a584 = alloca { ptr, i64, i64 }, align 16 + %a585 = alloca { ptr, i64, i64 }, align 16 %a588 = alloca { ptr, i64, i64 }, align 16 - %a589 = alloca { ptr, i64, i64 }, align 16 - %a601 = alloca i64, align 16 - %a606 = alloca { ptr, i64, i64 }, align 16 + %a591 = alloca { ptr, i64, i64 }, align 16 + %a592 = alloca { ptr, i64, i64 }, align 16 + %a597 = alloca { ptr, i64, i64 }, align 16 + %a598 = alloca { ptr, i64, i64 }, align 16 %a607 = alloca { ptr, i64, i64 }, align 16 - %a617 = alloca i64, align 16 - %a648 = alloca i64, align 16 - %a669 = alloca { ptr, i64, i64 }, align 16 - %a673 = alloca i64, align 16 - %a681 = alloca %S.gen.FnSig, align 16 - %a686 = alloca { ptr, i64, i64 }, align 16 - %a687 = alloca { ptr, i64, i64 }, align 16 - %a694 = alloca { ptr, i64, i64 }, align 16 - %a695 = alloca { ptr, i64, i64 }, align 16 - %a702 = alloca { ptr, i64, i64 }, align 16 - %a703 = alloca { ptr, i64, i64 }, align 16 - %a718 = alloca { ptr, i64, i64 }, align 16 - %a719 = alloca { ptr, i64, i64 }, align 16 - %a720 = alloca { ptr, i64, i64 }, align 16 - %a722 = alloca { ptr, i64, i64 }, align 16 - %a723 = alloca { ptr, i64, i64 }, align 16 + %a608 = alloca { ptr, i64, i64 }, align 16 + %a611 = alloca { ptr, i64, i64 }, align 16 + %a617 = alloca { ptr, i64, i64 }, align 16 + %a620 = alloca { ptr, i64, i64 }, align 16 + %a621 = alloca { ptr, i64, i64 }, align 16 + %a626 = alloca { ptr, i64, i64 }, align 16 + %a627 = alloca { ptr, i64, i64 }, align 16 + %a639 = alloca i64, align 16 + %a644 = alloca { ptr, i64, i64 }, align 16 + %a645 = alloca { ptr, i64, i64 }, align 16 + %a655 = alloca i64, align 16 + %a686 = alloca i64, align 16 + %a707 = alloca { ptr, i64, i64 }, align 16 + %a711 = alloca i64, align 16 + %a719 = alloca %S.gen.FnSig, align 16 %a724 = alloca { ptr, i64, i64 }, align 16 %a725 = alloca { ptr, i64, i64 }, align 16 - %a729 = alloca { ptr, i64, i64 }, align 16 - %a730 = alloca { ptr, i64, i64 }, align 16 - %a731 = alloca { ptr, i64, i64 }, align 16 %a732 = alloca { ptr, i64, i64 }, align 16 %a733 = alloca { ptr, i64, i64 }, align 16 - %a735 = alloca { ptr, i64, i64 }, align 16 - %a736 = alloca { ptr, i64, i64 }, align 16 - %a737 = alloca { ptr, i64, i64 }, align 16 - %a738 = alloca { ptr, i64, i64 }, align 16 - %a742 = alloca { ptr, i64, i64 }, align 16 - %a743 = alloca { ptr, i64, i64 }, align 16 - %a744 = alloca { ptr, i64, i64 }, align 16 - %a745 = alloca { ptr, i64, i64 }, align 16 - %a747 = alloca { ptr, i64, i64 }, align 16 - %a748 = alloca { ptr, i64, i64 }, align 16 - %a749 = alloca { ptr, i64, i64 }, align 16 - %a750 = alloca { ptr, i64, i64 }, align 16 - %a754 = alloca { ptr, i64, i64 }, align 16 - %a755 = alloca { ptr, i64, i64 }, align 16 + %a740 = alloca { ptr, i64, i64 }, align 16 + %a741 = alloca { ptr, i64, i64 }, align 16 %a756 = alloca { ptr, i64, i64 }, align 16 %a757 = alloca { ptr, i64, i64 }, align 16 - %a759 = alloca { ptr, i64, i64 }, align 16 + %a758 = alloca { ptr, i64, i64 }, align 16 %a760 = alloca { ptr, i64, i64 }, align 16 %a761 = alloca { ptr, i64, i64 }, align 16 %a762 = alloca { ptr, i64, i64 }, align 16 - %a764 = alloca { ptr, i64, i64 }, align 16 + %a763 = alloca { ptr, i64, i64 }, align 16 + %a767 = alloca { ptr, i64, i64 }, align 16 + %a768 = alloca { ptr, i64, i64 }, align 16 %a769 = alloca { ptr, i64, i64 }, align 16 %a770 = alloca { ptr, i64, i64 }, align 16 %a771 = alloca { ptr, i64, i64 }, align 16 @@ -84154,86 +88068,110 @@ entry: %a781 = alloca { ptr, i64, i64 }, align 16 %a782 = alloca { ptr, i64, i64 }, align 16 %a783 = alloca { ptr, i64, i64 }, align 16 - %a784 = alloca { ptr, i64, i64 }, align 16 + %a785 = alloca { ptr, i64, i64 }, align 16 %a786 = alloca { ptr, i64, i64 }, align 16 %a787 = alloca { ptr, i64, i64 }, align 16 %a788 = alloca { ptr, i64, i64 }, align 16 - %a789 = alloca { ptr, i64, i64 }, align 16 + %a792 = alloca { ptr, i64, i64 }, align 16 %a793 = alloca { ptr, i64, i64 }, align 16 %a794 = alloca { ptr, i64, i64 }, align 16 %a795 = alloca { ptr, i64, i64 }, align 16 - %a796 = alloca { ptr, i64, i64 }, align 16 + %a797 = alloca { ptr, i64, i64 }, align 16 %a798 = alloca { ptr, i64, i64 }, align 16 %a799 = alloca { ptr, i64, i64 }, align 16 %a800 = alloca { ptr, i64, i64 }, align 16 - %a801 = alloca { ptr, i64, i64 }, align 16 - %a804 = alloca { ptr, i64, i64 }, align 16 - %a805 = alloca { ptr, i64, i64 }, align 16 + %a802 = alloca { ptr, i64, i64 }, align 16 %a807 = alloca { ptr, i64, i64 }, align 16 %a808 = alloca { ptr, i64, i64 }, align 16 %a809 = alloca { ptr, i64, i64 }, align 16 - %a810 = alloca { ptr, i64, i64 }, align 16 %a811 = alloca { ptr, i64, i64 }, align 16 + %a812 = alloca { ptr, i64, i64 }, align 16 %a813 = alloca { ptr, i64, i64 }, align 16 %a814 = alloca { ptr, i64, i64 }, align 16 - %a815 = alloca { ptr, i64, i64 }, align 16 - %a816 = alloca { ptr, i64, i64 }, align 16 %a818 = alloca { ptr, i64, i64 }, align 16 + %a819 = alloca { ptr, i64, i64 }, align 16 + %a820 = alloca { ptr, i64, i64 }, align 16 + %a821 = alloca { ptr, i64, i64 }, align 16 + %a822 = alloca { ptr, i64, i64 }, align 16 + %a824 = alloca { ptr, i64, i64 }, align 16 + %a825 = alloca { ptr, i64, i64 }, align 16 + %a826 = alloca { ptr, i64, i64 }, align 16 + %a827 = alloca { ptr, i64, i64 }, align 16 + %a831 = alloca { ptr, i64, i64 }, align 16 %a832 = alloca { ptr, i64, i64 }, align 16 %a833 = alloca { ptr, i64, i64 }, align 16 + %a834 = alloca { ptr, i64, i64 }, align 16 + %a836 = alloca { ptr, i64, i64 }, align 16 + %a837 = alloca { ptr, i64, i64 }, align 16 %a838 = alloca { ptr, i64, i64 }, align 16 %a839 = alloca { ptr, i64, i64 }, align 16 + %a842 = alloca { ptr, i64, i64 }, align 16 + %a843 = alloca { ptr, i64, i64 }, align 16 + %a845 = alloca { ptr, i64, i64 }, align 16 + %a846 = alloca { ptr, i64, i64 }, align 16 + %a847 = alloca { ptr, i64, i64 }, align 16 + %a848 = alloca { ptr, i64, i64 }, align 16 + %a849 = alloca { ptr, i64, i64 }, align 16 %a851 = alloca { ptr, i64, i64 }, align 16 %a852 = alloca { ptr, i64, i64 }, align 16 %a853 = alloca { ptr, i64, i64 }, align 16 - %a857 = alloca { ptr, i64, i64 }, align 16 - %a858 = alloca { ptr, i64, i64 }, align 16 - %a859 = alloca { ptr, i64, i64 }, align 16 - %a860 = alloca { ptr, i64, i64 }, align 16 - %a861 = alloca { ptr, i64, i64 }, align 16 - %a863 = alloca { ptr, i64, i64 }, align 16 - %a864 = alloca { ptr, i64, i64 }, align 16 - %a865 = alloca { ptr, i64, i64 }, align 16 - %a866 = alloca { ptr, i64, i64 }, align 16 - %a868 = alloca { ptr, i64, i64 }, align 16 + %a854 = alloca { ptr, i64, i64 }, align 16 + %a856 = alloca { ptr, i64, i64 }, align 16 + %a870 = alloca { ptr, i64, i64 }, align 16 %a871 = alloca { ptr, i64, i64 }, align 16 - %a878 = alloca i64, align 16 - %a885 = alloca %S.gen.Var, align 16 + %a876 = alloca { ptr, i64, i64 }, align 16 + %a877 = alloca { ptr, i64, i64 }, align 16 + %a889 = alloca { ptr, i64, i64 }, align 16 %a890 = alloca { ptr, i64, i64 }, align 16 %a891 = alloca { ptr, i64, i64 }, align 16 - %a892 = alloca { ptr, i64, i64 }, align 16 - %a894 = alloca { ptr, i64, i64 }, align 16 %a895 = alloca { ptr, i64, i64 }, align 16 %a896 = alloca { ptr, i64, i64 }, align 16 %a897 = alloca { ptr, i64, i64 }, align 16 + %a898 = alloca { ptr, i64, i64 }, align 16 %a899 = alloca { ptr, i64, i64 }, align 16 - %a913 = alloca { ptr, i64, i64 }, align 16 - %a914 = alloca { ptr, i64, i64 }, align 16 - %a915 = alloca { ptr, i64, i64 }, align 16 - %a916 = alloca { ptr, i64, i64 }, align 16 - %a920 = alloca { ptr, i64, i64 }, align 16 - %a921 = alloca { ptr, i64, i64 }, align 16 - %a922 = alloca { ptr, i64, i64 }, align 16 - %a923 = alloca { ptr, i64, i64 }, align 16 + %a901 = alloca { ptr, i64, i64 }, align 16 + %a902 = alloca { ptr, i64, i64 }, align 16 + %a903 = alloca { ptr, i64, i64 }, align 16 + %a904 = alloca { ptr, i64, i64 }, align 16 + %a906 = alloca { ptr, i64, i64 }, align 16 + %a909 = alloca { ptr, i64, i64 }, align 16 + %a916 = alloca i64, align 16 + %a923 = alloca %S.gen.Var, align 16 + %a928 = alloca { ptr, i64, i64 }, align 16 %a929 = alloca { ptr, i64, i64 }, align 16 %a930 = alloca { ptr, i64, i64 }, align 16 - %a931 = alloca %S.gen.Val, align 16 + %a932 = alloca { ptr, i64, i64 }, align 16 + %a933 = alloca { ptr, i64, i64 }, align 16 + %a934 = alloca { ptr, i64, i64 }, align 16 + %a935 = alloca { ptr, i64, i64 }, align 16 + %a937 = alloca { ptr, i64, i64 }, align 16 %a951 = alloca { ptr, i64, i64 }, align 16 %a952 = alloca { ptr, i64, i64 }, align 16 %a953 = alloca { ptr, i64, i64 }, align 16 %a954 = alloca { ptr, i64, i64 }, align 16 - %a956 = alloca { ptr, i64, i64 }, align 16 + %a958 = alloca { ptr, i64, i64 }, align 16 + %a959 = alloca { ptr, i64, i64 }, align 16 + %a960 = alloca { ptr, i64, i64 }, align 16 + %a961 = alloca { ptr, i64, i64 }, align 16 + %a967 = alloca { ptr, i64, i64 }, align 16 + %a968 = alloca { ptr, i64, i64 }, align 16 + %a969 = alloca %S.gen.Val, align 16 + %a989 = alloca { ptr, i64, i64 }, align 16 + %a990 = alloca { ptr, i64, i64 }, align 16 + %a991 = alloca { ptr, i64, i64 }, align 16 + %a992 = alloca { ptr, i64, i64 }, align 16 + %a994 = alloca { ptr, i64, i64 }, align 16 store ptr %p0, ptr %a1 store %S.ast.Node %p1, ptr %a2 %t3 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t4 = load { ptr, i64, i64 }, ptr %t3 %t5 = extractvalue { ptr, i64, i64 } %t4, 1 %t6 = icmp uge i64 0, %t5 - br i1 %t6, label %range8233, label %inrange8234 -range8233: - call void @finch_panic_index(ptr @.str.5380, i64 5001, i64 0, i64 %t5) + br i1 %t6, label %range8626, label %inrange8627 +range8626: + call void @finch_panic_index(ptr @.str.5587, i64 5228, i64 0, i64 %t5) unreachable -inrange8234: +inrange8627: %t7 = extractvalue { ptr, i64, i64 } %t4, 0 %t8 = getelementptr inbounds %S.ast.Node, ptr %t7, i64 0 %t9 = load %S.ast.Node, ptr %t8 @@ -84241,1506 +88179,1567 @@ inrange8234: call void @finch.copy.S_ast_Node(ptr %a11, ptr %a10) %t12 = load %S.ast.Node, ptr %a11 store %S.ast.Node %t12, ptr %a13 - %t14 = getelementptr inbounds %S.ast.Node, ptr %a13, i32 0, i32 0 - %t15 = load { ptr, i64, i64 }, ptr %t14 - store { ptr, i64, i64 } %t15, ptr %a16 - store { ptr, i64, i64 } { ptr @.str.5381, i64 3, i64 0 }, ptr %a17 - %t18 = call i32 @finch_str_eq(ptr %a16, ptr %a17) - %t19 = icmp ne i32 %t18, 0 - br label %logic.from8235 -logic.from8235: - br i1 %t19, label %logic.rhs8236, label %logic.end8237 -logic.rhs8236: - %t20 = load ptr, ptr %a1 - %t21 = getelementptr inbounds %S.ast.Node, ptr %a13, i32 0, i32 1 - %t22 = load { ptr, i64, i64 }, ptr %t21 - %t23 = call i64 @finch.gen.lookup(ptr %t20, { ptr, i64, i64 } %t22) - %t24 = icmp slt i64 %t23, 0 - br label %logic.rend8238 -logic.rend8238: - br label %logic.end8237 -logic.end8237: - %t25 = phi i1 [ false, %logic.from8235 ], [ %t24, %logic.rend8238 ] - br i1 %t25, label %then8239, label %endif8241 -then8239: - %t26 = getelementptr inbounds %S.ast.Node, ptr %a13, i32 0, i32 1 - %t27 = load { ptr, i64, i64 }, ptr %t26 - store { ptr, i64, i64 } %t27, ptr %a28 - call void @finch_str_copy(ptr %a29, ptr %a28) - %t30 = load { ptr, i64, i64 }, ptr %a29 - store { ptr, i64, i64 } %t30, ptr %a31 - %t32 = load ptr, ptr %a1 - %t33 = load { ptr, i64, i64 }, ptr %a31 - %t34 = call i1 @finch.gen.imports(ptr %t32, { ptr, i64, i64 } %t33) - %t35 = xor i1 %t34, true - br i1 %t35, label %then8242, label %endif8244 -then8242: - %t36 = load ptr, ptr %a1 - %t37 = load %S.ast.Node, ptr %a13 - %t38 = load { ptr, i64, i64 }, ptr %a31 - store { ptr, i64, i64 } { ptr @.str.5382, i64 38, i64 0 }, ptr %a40 - store { ptr, i64, i64 } %t38, ptr %a41 - call void @finch_str_concat(ptr %a39, ptr %a40, ptr %a41) - %t42 = load { ptr, i64, i64 }, ptr %a39 - store { ptr, i64, i64 } %t42, ptr %a44 - store { ptr, i64, i64 } { ptr @.str.5383, i64 32, i64 0 }, ptr %a45 - call void @finch_str_concat(ptr %a43, ptr %a44, ptr %a45) - store { ptr, i64, i64 } %t42, ptr %a46 - call void @finch_str_drop(ptr %a46) - %t47 = load { ptr, i64, i64 }, ptr %a43 - %t48 = load { ptr, i64, i64 }, ptr %a31 - store { ptr, i64, i64 } %t47, ptr %a50 - store { ptr, i64, i64 } %t48, ptr %a51 - call void @finch_str_concat(ptr %a49, ptr %a50, ptr %a51) - store { ptr, i64, i64 } %t47, ptr %a52 - call void @finch_str_drop(ptr %a52) - %t53 = load { ptr, i64, i64 }, ptr %a49 - store { ptr, i64, i64 } %t53, ptr %a55 - store { ptr, i64, i64 } { ptr @.str.5384, i64 13, i64 0 }, ptr %a56 - call void @finch_str_concat(ptr %a54, ptr %a55, ptr %a56) - store { ptr, i64, i64 } %t53, ptr %a57 - call void @finch_str_drop(ptr %a57) - %t58 = load { ptr, i64, i64 }, ptr %a54 - call void @finch.gen.fail(ptr %t36, %S.ast.Node %t37, { ptr, i64, i64 } %t58) - store { ptr, i64, i64 } %t58, ptr %a59 - call void @finch_str_drop(ptr %a59) - br label %endif8244 -endif8244: - %t60 = load ptr, ptr %a1 - %t61 = load { ptr, i64, i64 }, ptr %a31 - %t62 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t63 = load { ptr, i64, i64 }, ptr %t62 - %t64 = call i64 @finch.gen.findFn(ptr %t60, { ptr, i64, i64 } %t61, { ptr, i64, i64 } %t63) - store i64 %t64, ptr %a65 - %t66 = load i64, ptr %a65 - %t67 = icmp sge i64 %t66, 0 - br i1 %t67, label %then8245, label %endif8247 -then8245: - %t68 = load ptr, ptr %a1 - %t69 = load i64, ptr %a65 - %t70 = load %S.ast.Node, ptr %a2 - %t71 = load { ptr, i64, i64 }, ptr %a31 - store { ptr, i64, i64 } %t71, ptr %a73 - store { ptr, i64, i64 } { ptr @.str.5385, i64 1, i64 0 }, ptr %a74 - call void @finch_str_concat(ptr %a72, ptr %a73, ptr %a74) - %t75 = load { ptr, i64, i64 }, ptr %a72 - %t76 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t77 = load { ptr, i64, i64 }, ptr %t76 - store { ptr, i64, i64 } %t75, ptr %a79 - store { ptr, i64, i64 } %t77, ptr %a80 - call void @finch_str_concat(ptr %a78, ptr %a79, ptr %a80) - store { ptr, i64, i64 } %t75, ptr %a81 - call void @finch_str_drop(ptr %a81) - %t82 = load { ptr, i64, i64 }, ptr %a78 - %t83 = call %S.gen.Val @finch.gen.callFn(ptr %t68, i64 %t69, %S.ast.Node %t70, i64 1, { ptr, i64, i64 } %t82, { ptr, i64, i64 } { ptr @.str.5386, i64 0, i64 0 }, { ptr, i64, i64 } { ptr @.str.5387, i64 0, i64 0 }) - store { ptr, i64, i64 } %t82, ptr %a84 + %t14 = load ptr, ptr %a1 + %t15 = load %S.ast.Node, ptr %a13 + %t16 = call i64 @finch.gen.sumNamed(ptr %t14, %S.ast.Node %t15) + store i64 %t16, ptr %a17 + %t18 = load i64, ptr %a17 + %t19 = icmp sge i64 %t18, 0 + br i1 %t19, label %then8628, label %endif8630 +then8628: + store { ptr, i64, i64 } zeroinitializer, ptr %a20 + %t21 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %t21, i32 0, i32 1 + %t23 = load i64, ptr %t22 + store i64 1, ptr %a24 + br label %for.cond8631 +for.cond8631: + %t25 = load i64, ptr %a24 + %t26 = icmp slt i64 %t25, %t23 + br i1 %t26, label %for.body8632, label %for.end8634 +for.body8632: + %t27 = getelementptr inbounds { ptr, i64, i64 }, ptr %a20, i32 0, i32 1 + %t28 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t29 = load i64, ptr %a24 + %t30 = load { ptr, i64, i64 }, ptr %t28 + %t31 = extractvalue { ptr, i64, i64 } %t30, 1 + %t32 = icmp uge i64 %t29, %t31 + br i1 %t32, label %range8635, label %inrange8636 +range8635: + call void @finch_panic_index(ptr @.str.5588, i64 5233, i64 %t29, i64 %t31) + unreachable +inrange8636: + %t33 = extractvalue { ptr, i64, i64 } %t30, 0 + %t34 = getelementptr inbounds %S.ast.Node, ptr %t33, i64 %t29 + %t35 = load %S.ast.Node, ptr %t34 + store %S.ast.Node %t35, ptr %a36 + call void @finch.copy.S_ast_Node(ptr %a37, ptr %a36) + %t38 = load %S.ast.Node, ptr %a37 + %t39 = load i64, ptr %t27 + %t40 = add i64 %t39, 1 + call void @finch_arr_reserve(ptr %a20, i64 %t40, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) + %t41 = load ptr, ptr %a20 + %t42 = getelementptr inbounds %S.ast.Node, ptr %t41, i64 %t39 + store %S.ast.Node %t38, ptr %t42 + store i64 %t40, ptr %t27 + br label %for.step8633 +for.step8633: + %t43 = load i64, ptr %a24 + %t44 = add i64 %t43, 1 + store i64 %t44, ptr %a24 + br label %for.cond8631 +for.end8634: + %t45 = load ptr, ptr %a1 + %t46 = load i64, ptr %a17 + %t47 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t48 = load { ptr, i64, i64 }, ptr %t47 + %t49 = load { ptr, i64, i64 }, ptr %a20 + %t50 = load %S.ast.Node, ptr %a2 + %t51 = call %S.gen.Val @finch.gen.sumMake(ptr %t45, i64 %t46, { ptr, i64, i64 } %t48, { ptr, i64, i64 } %t49, %S.ast.Node %t50) + call void @finch.drop.arr_S_ast_Node(ptr %a20) + call void @finch.drop.S_ast_Node(ptr %a13) + ret %S.gen.Val %t51 +endif8630: + %t52 = getelementptr inbounds %S.ast.Node, ptr %a13, i32 0, i32 0 + %t53 = load { ptr, i64, i64 }, ptr %t52 + store { ptr, i64, i64 } %t53, ptr %a54 + store { ptr, i64, i64 } { ptr @.str.5589, i64 3, i64 0 }, ptr %a55 + %t56 = call i32 @finch_str_eq(ptr %a54, ptr %a55) + %t57 = icmp ne i32 %t56, 0 + br label %logic.from8637 +logic.from8637: + br i1 %t57, label %logic.rhs8638, label %logic.end8639 +logic.rhs8638: + %t58 = load ptr, ptr %a1 + %t59 = getelementptr inbounds %S.ast.Node, ptr %a13, i32 0, i32 1 + %t60 = load { ptr, i64, i64 }, ptr %t59 + %t61 = call i64 @finch.gen.lookup(ptr %t58, { ptr, i64, i64 } %t60) + %t62 = icmp slt i64 %t61, 0 + br label %logic.rend8640 +logic.rend8640: + br label %logic.end8639 +logic.end8639: + %t63 = phi i1 [ false, %logic.from8637 ], [ %t62, %logic.rend8640 ] + br i1 %t63, label %then8641, label %endif8643 +then8641: + %t64 = getelementptr inbounds %S.ast.Node, ptr %a13, i32 0, i32 1 + %t65 = load { ptr, i64, i64 }, ptr %t64 + store { ptr, i64, i64 } %t65, ptr %a66 + call void @finch_str_copy(ptr %a67, ptr %a66) + %t68 = load { ptr, i64, i64 }, ptr %a67 + store { ptr, i64, i64 } %t68, ptr %a69 + %t70 = load ptr, ptr %a1 + %t71 = load { ptr, i64, i64 }, ptr %a69 + %t72 = call i1 @finch.gen.imports(ptr %t70, { ptr, i64, i64 } %t71) + %t73 = xor i1 %t72, true + br i1 %t73, label %then8644, label %endif8646 +then8644: + %t74 = load ptr, ptr %a1 + %t75 = load %S.ast.Node, ptr %a13 + %t76 = load { ptr, i64, i64 }, ptr %a69 + store { ptr, i64, i64 } { ptr @.str.5590, i64 38, i64 0 }, ptr %a78 + store { ptr, i64, i64 } %t76, ptr %a79 + call void @finch_str_concat(ptr %a77, ptr %a78, ptr %a79) + %t80 = load { ptr, i64, i64 }, ptr %a77 + store { ptr, i64, i64 } %t80, ptr %a82 + store { ptr, i64, i64 } { ptr @.str.5591, i64 32, i64 0 }, ptr %a83 + call void @finch_str_concat(ptr %a81, ptr %a82, ptr %a83) + store { ptr, i64, i64 } %t80, ptr %a84 call void @finch_str_drop(ptr %a84) - call void @finch_str_drop(ptr %a31) - call void @finch.drop.S_ast_Node(ptr %a13) - ret %S.gen.Val %t83 -endif8247: - %t85 = load ptr, ptr %a1 - %t86 = load { ptr, i64, i64 }, ptr %a31 - %t87 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t88 = load { ptr, i64, i64 }, ptr %t87 - %t89 = call i64 @finch.gen.findTemplate(ptr %t85, { ptr, i64, i64 } %t86, { ptr, i64, i64 } %t88, { ptr, i64, i64 } { ptr @.str.5388, i64 0, i64 0 }, i1 false) - store i64 %t89, ptr %a90 - %t91 = load i64, ptr %a90 - %t92 = icmp sge i64 %t91, 0 - br i1 %t92, label %then8248, label %endif8250 -then8248: - %t93 = load ptr, ptr %a1 - %t94 = load %S.ast.Node, ptr %a2 - %t95 = load i64, ptr %a90 - %t96 = load { ptr, i64, i64 }, ptr %a31 - store { ptr, i64, i64 } %t96, ptr %a98 - store { ptr, i64, i64 } { ptr @.str.5389, i64 1, i64 0 }, ptr %a99 - call void @finch_str_concat(ptr %a97, ptr %a98, ptr %a99) - %t100 = load { ptr, i64, i64 }, ptr %a97 - %t101 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t102 = load { ptr, i64, i64 }, ptr %t101 - store { ptr, i64, i64 } %t100, ptr %a104 - store { ptr, i64, i64 } %t102, ptr %a105 - call void @finch_str_concat(ptr %a103, ptr %a104, ptr %a105) - store { ptr, i64, i64 } %t100, ptr %a106 - call void @finch_str_drop(ptr %a106) - %t107 = load { ptr, i64, i64 }, ptr %a103 - %t108 = call %S.gen.Val @finch.gen.genericCall(ptr %t93, %S.ast.Node %t94, i64 %t95, i64 1, { ptr, i64, i64 } %t107) - store { ptr, i64, i64 } %t107, ptr %a109 - call void @finch_str_drop(ptr %a109) - call void @finch_str_drop(ptr %a31) - call void @finch.drop.S_ast_Node(ptr %a13) - ret %S.gen.Val %t108 -endif8250: - %t110 = load ptr, ptr %a1 - %t111 = load { ptr, i64, i64 }, ptr %a31 - %t112 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t113 = load { ptr, i64, i64 }, ptr %t112 - %t114 = call i64 @finch.gen.findEnum(ptr %t110, { ptr, i64, i64 } %t111, { ptr, i64, i64 } %t113) - store i64 %t114, ptr %a115 - %t116 = load i64, ptr %a115 - %t117 = icmp sge i64 %t116, 0 - br i1 %t117, label %then8251, label %endif8253 -then8251: - %t118 = load ptr, ptr %a1 - %t119 = load %S.ast.Node, ptr %a2 - %t120 = load i64, ptr %a115 - %t121 = call %S.gen.Val @finch.gen.enumFrom(ptr %t118, %S.ast.Node %t119, i64 %t120) - call void @finch_str_drop(ptr %a31) + %t85 = load { ptr, i64, i64 }, ptr %a81 + %t86 = load { ptr, i64, i64 }, ptr %a69 + store { ptr, i64, i64 } %t85, ptr %a88 + store { ptr, i64, i64 } %t86, ptr %a89 + call void @finch_str_concat(ptr %a87, ptr %a88, ptr %a89) + store { ptr, i64, i64 } %t85, ptr %a90 + call void @finch_str_drop(ptr %a90) + %t91 = load { ptr, i64, i64 }, ptr %a87 + store { ptr, i64, i64 } %t91, ptr %a93 + store { ptr, i64, i64 } { ptr @.str.5592, i64 13, i64 0 }, ptr %a94 + call void @finch_str_concat(ptr %a92, ptr %a93, ptr %a94) + store { ptr, i64, i64 } %t91, ptr %a95 + call void @finch_str_drop(ptr %a95) + %t96 = load { ptr, i64, i64 }, ptr %a92 + call void @finch.gen.fail(ptr %t74, %S.ast.Node %t75, { ptr, i64, i64 } %t96) + store { ptr, i64, i64 } %t96, ptr %a97 + call void @finch_str_drop(ptr %a97) + br label %endif8646 +endif8646: + %t98 = load ptr, ptr %a1 + %t99 = load { ptr, i64, i64 }, ptr %a69 + %t100 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t101 = load { ptr, i64, i64 }, ptr %t100 + %t102 = call i64 @finch.gen.findFn(ptr %t98, { ptr, i64, i64 } %t99, { ptr, i64, i64 } %t101) + store i64 %t102, ptr %a103 + %t104 = load i64, ptr %a103 + %t105 = icmp sge i64 %t104, 0 + br i1 %t105, label %then8647, label %endif8649 +then8647: + %t106 = load ptr, ptr %a1 + %t107 = load i64, ptr %a103 + %t108 = load %S.ast.Node, ptr %a2 + %t109 = load { ptr, i64, i64 }, ptr %a69 + store { ptr, i64, i64 } %t109, ptr %a111 + store { ptr, i64, i64 } { ptr @.str.5593, i64 1, i64 0 }, ptr %a112 + call void @finch_str_concat(ptr %a110, ptr %a111, ptr %a112) + %t113 = load { ptr, i64, i64 }, ptr %a110 + %t114 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t115 = load { ptr, i64, i64 }, ptr %t114 + store { ptr, i64, i64 } %t113, ptr %a117 + store { ptr, i64, i64 } %t115, ptr %a118 + call void @finch_str_concat(ptr %a116, ptr %a117, ptr %a118) + store { ptr, i64, i64 } %t113, ptr %a119 + call void @finch_str_drop(ptr %a119) + %t120 = load { ptr, i64, i64 }, ptr %a116 + %t121 = call %S.gen.Val @finch.gen.callFn(ptr %t106, i64 %t107, %S.ast.Node %t108, i64 1, { ptr, i64, i64 } %t120, { ptr, i64, i64 } { ptr @.str.5594, i64 0, i64 0 }, { ptr, i64, i64 } { ptr @.str.5595, i64 0, i64 0 }) + store { ptr, i64, i64 } %t120, ptr %a122 + call void @finch_str_drop(ptr %a122) + call void @finch_str_drop(ptr %a69) call void @finch.drop.S_ast_Node(ptr %a13) ret %S.gen.Val %t121 -endif8253: - %t122 = load ptr, ptr %a1 - %t123 = load { ptr, i64, i64 }, ptr %a31 - %t124 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t125 = load { ptr, i64, i64 }, ptr %t124 - %t126 = call i64 @finch.gen.findStruct(ptr %t122, { ptr, i64, i64 } %t123, { ptr, i64, i64 } %t125) - store i64 %t126, ptr %a127 - %t128 = load i64, ptr %a127 - %t129 = icmp sge i64 %t128, 0 - br i1 %t129, label %then8254, label %endif8256 -then8254: - store { ptr, i64, i64 } zeroinitializer, ptr %a130 - %t131 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 - %t132 = getelementptr inbounds { ptr, i64, i64 }, ptr %t131, i32 0, i32 1 - %t133 = load i64, ptr %t132 - store i64 1, ptr %a134 - br label %for.cond8257 -for.cond8257: - %t135 = load i64, ptr %a134 - %t136 = icmp slt i64 %t135, %t133 - br i1 %t136, label %for.body8258, label %for.end8260 -for.body8258: - %t137 = getelementptr inbounds { ptr, i64, i64 }, ptr %a130, i32 0, i32 1 - %t138 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 - %t139 = load i64, ptr %a134 - %t140 = load { ptr, i64, i64 }, ptr %t138 - %t141 = extractvalue { ptr, i64, i64 } %t140, 1 - %t142 = icmp uge i64 %t139, %t141 - br i1 %t142, label %range8261, label %inrange8262 -range8261: - call void @finch_panic_index(ptr @.str.5390, i64 5023, i64 %t139, i64 %t141) - unreachable -inrange8262: - %t143 = extractvalue { ptr, i64, i64 } %t140, 0 - %t144 = getelementptr inbounds %S.ast.Node, ptr %t143, i64 %t139 - %t145 = load %S.ast.Node, ptr %t144 - store %S.ast.Node %t145, ptr %a146 - call void @finch.copy.S_ast_Node(ptr %a147, ptr %a146) - %t148 = load %S.ast.Node, ptr %a147 - %t149 = load i64, ptr %t137 - %t150 = add i64 %t149, 1 - call void @finch_arr_reserve(ptr %a130, i64 %t150, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) - %t151 = load ptr, ptr %a130 - %t152 = getelementptr inbounds %S.ast.Node, ptr %t151, i64 %t149 - store %S.ast.Node %t148, ptr %t152 - store i64 %t150, ptr %t137 - br label %for.step8259 -for.step8259: - %t153 = load i64, ptr %a134 - %t154 = add i64 %t153, 1 - store i64 %t154, ptr %a134 - br label %for.cond8257 -for.end8260: - %t155 = load ptr, ptr %a1 - %t156 = load i64, ptr %a127 - %t157 = load { ptr, i64, i64 }, ptr %a130 - %t158 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 10 - %t159 = load { ptr, i64, i64 }, ptr %t158 - %t160 = load %S.ast.Node, ptr %a2 - %t161 = call %S.gen.Val @finch.gen.construct(ptr %t155, i64 %t156, { ptr, i64, i64 } %t157, { ptr, i64, i64 } %t159, %S.ast.Node %t160) - call void @finch.drop.arr_S_ast_Node(ptr %a130) - call void @finch_str_drop(ptr %a31) +endif8649: + %t123 = load ptr, ptr %a1 + %t124 = load { ptr, i64, i64 }, ptr %a69 + %t125 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t126 = load { ptr, i64, i64 }, ptr %t125 + %t127 = call i64 @finch.gen.findTemplate(ptr %t123, { ptr, i64, i64 } %t124, { ptr, i64, i64 } %t126, { ptr, i64, i64 } { ptr @.str.5596, i64 0, i64 0 }, i1 false) + store i64 %t127, ptr %a128 + %t129 = load i64, ptr %a128 + %t130 = icmp sge i64 %t129, 0 + br i1 %t130, label %then8650, label %endif8652 +then8650: + %t131 = load ptr, ptr %a1 + %t132 = load %S.ast.Node, ptr %a2 + %t133 = load i64, ptr %a128 + %t134 = load { ptr, i64, i64 }, ptr %a69 + store { ptr, i64, i64 } %t134, ptr %a136 + store { ptr, i64, i64 } { ptr @.str.5597, i64 1, i64 0 }, ptr %a137 + call void @finch_str_concat(ptr %a135, ptr %a136, ptr %a137) + %t138 = load { ptr, i64, i64 }, ptr %a135 + %t139 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t140 = load { ptr, i64, i64 }, ptr %t139 + store { ptr, i64, i64 } %t138, ptr %a142 + store { ptr, i64, i64 } %t140, ptr %a143 + call void @finch_str_concat(ptr %a141, ptr %a142, ptr %a143) + store { ptr, i64, i64 } %t138, ptr %a144 + call void @finch_str_drop(ptr %a144) + %t145 = load { ptr, i64, i64 }, ptr %a141 + %t146 = call %S.gen.Val @finch.gen.genericCall(ptr %t131, %S.ast.Node %t132, i64 %t133, i64 1, { ptr, i64, i64 } %t145) + store { ptr, i64, i64 } %t145, ptr %a147 + call void @finch_str_drop(ptr %a147) + call void @finch_str_drop(ptr %a69) call void @finch.drop.S_ast_Node(ptr %a13) - ret %S.gen.Val %t161 -endif8256: - %t162 = load ptr, ptr %a1 - %t163 = load %S.ast.Node, ptr %a2 - %t164 = load { ptr, i64, i64 }, ptr %a31 - store { ptr, i64, i64 } { ptr @.str.5391, i64 12, i64 0 }, ptr %a166 - store { ptr, i64, i64 } %t164, ptr %a167 - call void @finch_str_concat(ptr %a165, ptr %a166, ptr %a167) - %t168 = load { ptr, i64, i64 }, ptr %a165 - store { ptr, i64, i64 } %t168, ptr %a170 - store { ptr, i64, i64 } { ptr @.str.5392, i64 35, i64 0 }, ptr %a171 - call void @finch_str_concat(ptr %a169, ptr %a170, ptr %a171) - store { ptr, i64, i64 } %t168, ptr %a172 - call void @finch_str_drop(ptr %a172) - %t173 = load { ptr, i64, i64 }, ptr %a169 - %t174 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t175 = load { ptr, i64, i64 }, ptr %t174 - store { ptr, i64, i64 } %t173, ptr %a177 - store { ptr, i64, i64 } %t175, ptr %a178 - call void @finch_str_concat(ptr %a176, ptr %a177, ptr %a178) - store { ptr, i64, i64 } %t173, ptr %a179 - call void @finch_str_drop(ptr %a179) - %t180 = load { ptr, i64, i64 }, ptr %a176 - store { ptr, i64, i64 } %t180, ptr %a182 - store { ptr, i64, i64 } { ptr @.str.5393, i64 1, i64 0 }, ptr %a183 - call void @finch_str_concat(ptr %a181, ptr %a182, ptr %a183) - store { ptr, i64, i64 } %t180, ptr %a184 - call void @finch_str_drop(ptr %a184) - %t185 = load { ptr, i64, i64 }, ptr %a181 - call void @finch.gen.fail(ptr %t162, %S.ast.Node %t163, { ptr, i64, i64 } %t185) - store { ptr, i64, i64 } %t185, ptr %a186 - call void @finch_str_drop(ptr %a186) - call void @finch_str_drop(ptr %a31) - br label %endif8241 -endif8241: - %t187 = mul i64 8, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) - %t188 = call ptr @finch_alloc(i64 %t187) - %t189 = getelementptr inbounds { ptr, i64, i64 }, ptr %t188, i64 0 - store { ptr, i64, i64 } { ptr @.str.5394, i64 4, i64 0 }, ptr %t189 - %t190 = getelementptr inbounds { ptr, i64, i64 }, ptr %t188, i64 1 - store { ptr, i64, i64 } { ptr @.str.5395, i64 3, i64 0 }, ptr %t190 - %t191 = getelementptr inbounds { ptr, i64, i64 }, ptr %t188, i64 2 - store { ptr, i64, i64 } { ptr @.str.5396, i64 6, i64 0 }, ptr %t191 - %t192 = getelementptr inbounds { ptr, i64, i64 }, ptr %t188, i64 3 - store { ptr, i64, i64 } { ptr @.str.5397, i64 6, i64 0 }, ptr %t192 - %t193 = getelementptr inbounds { ptr, i64, i64 }, ptr %t188, i64 4 - store { ptr, i64, i64 } { ptr @.str.5398, i64 5, i64 0 }, ptr %t193 - %t194 = getelementptr inbounds { ptr, i64, i64 }, ptr %t188, i64 5 - store { ptr, i64, i64 } { ptr @.str.5399, i64 6, i64 0 }, ptr %t194 - %t195 = getelementptr inbounds { ptr, i64, i64 }, ptr %t188, i64 6 - store { ptr, i64, i64 } { ptr @.str.5400, i64 4, i64 0 }, ptr %t195 - %t196 = getelementptr inbounds { ptr, i64, i64 }, ptr %t188, i64 7 - store { ptr, i64, i64 } { ptr @.str.5401, i64 7, i64 0 }, ptr %t196 - %t197 = insertvalue { ptr, i64, i64 } undef, ptr %t188, 0 - %t198 = insertvalue { ptr, i64, i64 } %t197, i64 8, 1 - %t199 = insertvalue { ptr, i64, i64 } %t198, i64 8, 2 - store { ptr, i64, i64 } %t199, ptr %a200 - %t201 = load ptr, ptr %a1 - %t202 = load %S.ast.Node, ptr %a13 - %t203 = getelementptr inbounds { ptr, i64, i64 }, ptr %a200, i32 0, i32 1 - %t204 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t205 = load { ptr, i64, i64 }, ptr %t204 - store i64 -1, ptr %a206 - %t207 = load i64, ptr %t203 - %t208 = load ptr, ptr %a200 - store i64 0, ptr %a209 - br label %find.cond8263 -find.cond8263: - %t210 = load i64, ptr %a209 - %t211 = icmp slt i64 %t210, %t207 - br i1 %t211, label %find.body8264, label %find.end8267 -find.body8264: - %t212 = getelementptr inbounds { ptr, i64, i64 }, ptr %t208, i64 %t210 + ret %S.gen.Val %t146 +endif8652: + %t148 = load ptr, ptr %a1 + %t149 = load { ptr, i64, i64 }, ptr %a69 + %t150 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t151 = load { ptr, i64, i64 }, ptr %t150 + %t152 = call i64 @finch.gen.findEnum(ptr %t148, { ptr, i64, i64 } %t149, { ptr, i64, i64 } %t151) + store i64 %t152, ptr %a153 + %t154 = load i64, ptr %a153 + %t155 = icmp sge i64 %t154, 0 + br i1 %t155, label %then8653, label %endif8655 +then8653: + %t156 = load ptr, ptr %a1 + %t157 = load %S.ast.Node, ptr %a2 + %t158 = load i64, ptr %a153 + %t159 = call %S.gen.Val @finch.gen.enumFrom(ptr %t156, %S.ast.Node %t157, i64 %t158) + call void @finch_str_drop(ptr %a69) + call void @finch.drop.S_ast_Node(ptr %a13) + ret %S.gen.Val %t159 +endif8655: + %t160 = load ptr, ptr %a1 + %t161 = load { ptr, i64, i64 }, ptr %a69 + %t162 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t163 = load { ptr, i64, i64 }, ptr %t162 + %t164 = call i64 @finch.gen.findStruct(ptr %t160, { ptr, i64, i64 } %t161, { ptr, i64, i64 } %t163) + store i64 %t164, ptr %a165 + %t166 = load i64, ptr %a165 + %t167 = icmp sge i64 %t166, 0 + br i1 %t167, label %then8656, label %endif8658 +then8656: + store { ptr, i64, i64 } zeroinitializer, ptr %a168 + %t169 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t170 = getelementptr inbounds { ptr, i64, i64 }, ptr %t169, i32 0, i32 1 + %t171 = load i64, ptr %t170 + store i64 1, ptr %a172 + br label %for.cond8659 +for.cond8659: + %t173 = load i64, ptr %a172 + %t174 = icmp slt i64 %t173, %t171 + br i1 %t174, label %for.body8660, label %for.end8662 +for.body8660: + %t175 = getelementptr inbounds { ptr, i64, i64 }, ptr %a168, i32 0, i32 1 + %t176 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t177 = load i64, ptr %a172 + %t178 = load { ptr, i64, i64 }, ptr %t176 + %t179 = extractvalue { ptr, i64, i64 } %t178, 1 + %t180 = icmp uge i64 %t177, %t179 + br i1 %t180, label %range8663, label %inrange8664 +range8663: + call void @finch_panic_index(ptr @.str.5598, i64 5258, i64 %t177, i64 %t179) + unreachable +inrange8664: + %t181 = extractvalue { ptr, i64, i64 } %t178, 0 + %t182 = getelementptr inbounds %S.ast.Node, ptr %t181, i64 %t177 + %t183 = load %S.ast.Node, ptr %t182 + store %S.ast.Node %t183, ptr %a184 + call void @finch.copy.S_ast_Node(ptr %a185, ptr %a184) + %t186 = load %S.ast.Node, ptr %a185 + %t187 = load i64, ptr %t175 + %t188 = add i64 %t187, 1 + call void @finch_arr_reserve(ptr %a168, i64 %t188, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) + %t189 = load ptr, ptr %a168 + %t190 = getelementptr inbounds %S.ast.Node, ptr %t189, i64 %t187 + store %S.ast.Node %t186, ptr %t190 + store i64 %t188, ptr %t175 + br label %for.step8661 +for.step8661: + %t191 = load i64, ptr %a172 + %t192 = add i64 %t191, 1 + store i64 %t192, ptr %a172 + br label %for.cond8659 +for.end8662: + %t193 = load ptr, ptr %a1 + %t194 = load i64, ptr %a165 + %t195 = load { ptr, i64, i64 }, ptr %a168 + %t196 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 10 + %t197 = load { ptr, i64, i64 }, ptr %t196 + %t198 = load %S.ast.Node, ptr %a2 + %t199 = call %S.gen.Val @finch.gen.construct(ptr %t193, i64 %t194, { ptr, i64, i64 } %t195, { ptr, i64, i64 } %t197, %S.ast.Node %t198) + call void @finch.drop.arr_S_ast_Node(ptr %a168) + call void @finch_str_drop(ptr %a69) + call void @finch.drop.S_ast_Node(ptr %a13) + ret %S.gen.Val %t199 +endif8658: + %t200 = load ptr, ptr %a1 + %t201 = load %S.ast.Node, ptr %a2 + %t202 = load { ptr, i64, i64 }, ptr %a69 + store { ptr, i64, i64 } { ptr @.str.5599, i64 12, i64 0 }, ptr %a204 + store { ptr, i64, i64 } %t202, ptr %a205 + call void @finch_str_concat(ptr %a203, ptr %a204, ptr %a205) + %t206 = load { ptr, i64, i64 }, ptr %a203 + store { ptr, i64, i64 } %t206, ptr %a208 + store { ptr, i64, i64 } { ptr @.str.5600, i64 35, i64 0 }, ptr %a209 + call void @finch_str_concat(ptr %a207, ptr %a208, ptr %a209) + store { ptr, i64, i64 } %t206, ptr %a210 + call void @finch_str_drop(ptr %a210) + %t211 = load { ptr, i64, i64 }, ptr %a207 + %t212 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t213 = load { ptr, i64, i64 }, ptr %t212 - store { ptr, i64, i64 } %t213, ptr %a214 - store { ptr, i64, i64 } %t205, ptr %a215 - %t216 = call i32 @finch_str_eq(ptr %a214, ptr %a215) - %t217 = icmp ne i32 %t216, 0 - br i1 %t217, label %find.hit8265, label %find.next8266 -find.hit8265: - store i64 %t210, ptr %a206 - br label %find.end8267 -find.next8266: - %t218 = add i64 %t210, 1 - store i64 %t218, ptr %a209 - br label %find.cond8263 -find.end8267: - %t219 = load i64, ptr %a206 - %t220 = icmp sge i64 %t219, 0 - %t221 = call %S.gen.Ref @finch.gen.ref(ptr %t201, %S.ast.Node %t202, i1 %t220) - store %S.gen.Ref %t221, ptr %a222 - %t223 = load ptr, ptr %a1 - %t224 = icmp eq ptr %t223, null - br i1 %t224, label %panic8268, label %ok8269 -panic8268: - call void @finch_panic(ptr @.str.5402, i64 5031, ptr @.str.5403) + store { ptr, i64, i64 } %t211, ptr %a215 + store { ptr, i64, i64 } %t213, ptr %a216 + call void @finch_str_concat(ptr %a214, ptr %a215, ptr %a216) + store { ptr, i64, i64 } %t211, ptr %a217 + call void @finch_str_drop(ptr %a217) + %t218 = load { ptr, i64, i64 }, ptr %a214 + store { ptr, i64, i64 } %t218, ptr %a220 + store { ptr, i64, i64 } { ptr @.str.5601, i64 1, i64 0 }, ptr %a221 + call void @finch_str_concat(ptr %a219, ptr %a220, ptr %a221) + store { ptr, i64, i64 } %t218, ptr %a222 + call void @finch_str_drop(ptr %a222) + %t223 = load { ptr, i64, i64 }, ptr %a219 + call void @finch.gen.fail(ptr %t200, %S.ast.Node %t201, { ptr, i64, i64 } %t223) + store { ptr, i64, i64 } %t223, ptr %a224 + call void @finch_str_drop(ptr %a224) + call void @finch_str_drop(ptr %a69) + br label %endif8643 +endif8643: + %t225 = mul i64 8, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) + %t226 = call ptr @finch_alloc(i64 %t225) + %t227 = getelementptr inbounds { ptr, i64, i64 }, ptr %t226, i64 0 + store { ptr, i64, i64 } { ptr @.str.5602, i64 4, i64 0 }, ptr %t227 + %t228 = getelementptr inbounds { ptr, i64, i64 }, ptr %t226, i64 1 + store { ptr, i64, i64 } { ptr @.str.5603, i64 3, i64 0 }, ptr %t228 + %t229 = getelementptr inbounds { ptr, i64, i64 }, ptr %t226, i64 2 + store { ptr, i64, i64 } { ptr @.str.5604, i64 6, i64 0 }, ptr %t229 + %t230 = getelementptr inbounds { ptr, i64, i64 }, ptr %t226, i64 3 + store { ptr, i64, i64 } { ptr @.str.5605, i64 6, i64 0 }, ptr %t230 + %t231 = getelementptr inbounds { ptr, i64, i64 }, ptr %t226, i64 4 + store { ptr, i64, i64 } { ptr @.str.5606, i64 5, i64 0 }, ptr %t231 + %t232 = getelementptr inbounds { ptr, i64, i64 }, ptr %t226, i64 5 + store { ptr, i64, i64 } { ptr @.str.5607, i64 6, i64 0 }, ptr %t232 + %t233 = getelementptr inbounds { ptr, i64, i64 }, ptr %t226, i64 6 + store { ptr, i64, i64 } { ptr @.str.5608, i64 4, i64 0 }, ptr %t233 + %t234 = getelementptr inbounds { ptr, i64, i64 }, ptr %t226, i64 7 + store { ptr, i64, i64 } { ptr @.str.5609, i64 7, i64 0 }, ptr %t234 + %t235 = insertvalue { ptr, i64, i64 } undef, ptr %t226, 0 + %t236 = insertvalue { ptr, i64, i64 } %t235, i64 8, 1 + %t237 = insertvalue { ptr, i64, i64 } %t236, i64 8, 2 + store { ptr, i64, i64 } %t237, ptr %a238 + %t239 = load ptr, ptr %a1 + %t240 = load %S.ast.Node, ptr %a13 + %t241 = getelementptr inbounds { ptr, i64, i64 }, ptr %a238, i32 0, i32 1 + %t242 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t243 = load { ptr, i64, i64 }, ptr %t242 + store i64 -1, ptr %a244 + %t245 = load i64, ptr %t241 + %t246 = load ptr, ptr %a238 + store i64 0, ptr %a247 + br label %find.cond8665 +find.cond8665: + %t248 = load i64, ptr %a247 + %t249 = icmp slt i64 %t248, %t245 + br i1 %t249, label %find.body8666, label %find.end8669 +find.body8666: + %t250 = getelementptr inbounds { ptr, i64, i64 }, ptr %t246, i64 %t248 + %t251 = load { ptr, i64, i64 }, ptr %t250 + store { ptr, i64, i64 } %t251, ptr %a252 + store { ptr, i64, i64 } %t243, ptr %a253 + %t254 = call i32 @finch_str_eq(ptr %a252, ptr %a253) + %t255 = icmp ne i32 %t254, 0 + br i1 %t255, label %find.hit8667, label %find.next8668 +find.hit8667: + store i64 %t248, ptr %a244 + br label %find.end8669 +find.next8668: + %t256 = add i64 %t248, 1 + store i64 %t256, ptr %a247 + br label %find.cond8665 +find.end8669: + %t257 = load i64, ptr %a244 + %t258 = icmp sge i64 %t257, 0 + %t259 = call %S.gen.Ref @finch.gen.ref(ptr %t239, %S.ast.Node %t240, i1 %t258) + store %S.gen.Ref %t259, ptr %a260 + %t261 = load ptr, ptr %a1 + %t262 = icmp eq ptr %t261, null + br i1 %t262, label %panic8670, label %ok8671 +panic8670: + call void @finch_panic(ptr @.str.5610, i64 5266, ptr @.str.5611) unreachable -ok8269: - %t225 = getelementptr inbounds %S.gen.Gen, ptr %t223, i32 0, i32 11 - %t226 = getelementptr inbounds { ptr, i64, i64 }, ptr %t225, i32 0, i32 1 - %t227 = load i64, ptr %t226 - store i64 %t227, ptr %a228 - %t229 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 2 - %t230 = getelementptr inbounds %S.gen.Val, ptr %t229, i32 0, i32 1 - %t231 = load %S.ast.Type, ptr %t230 - store %S.ast.Type %t231, ptr %a232 - call void @finch.copy.S_ast_Type(ptr %a233, ptr %a232) - %t234 = load %S.ast.Type, ptr %a233 - store %S.ast.Type %t234, ptr %a235 - %t236 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 0 - %t237 = load i1, ptr %t236 - br i1 %t237, label %then8270, label %endif8272 -then8270: - %t238 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 1 - %t239 = getelementptr inbounds %S.gen.Place, ptr %t238, i32 0, i32 1 - %t240 = load %S.ast.Type, ptr %t239 - store %S.ast.Type %t240, ptr %a241 - call void @finch.copy.S_ast_Type(ptr %a242, ptr %a241) - %t243 = load %S.ast.Type, ptr %a242 - %t244 = load %S.ast.Type, ptr %a235 - store %S.ast.Type %t243, ptr %a235 - store %S.ast.Type %t244, ptr %a245 - call void @finch.drop.S_ast_Type(ptr %a245) - br label %endif8272 -endif8272: - %t246 = getelementptr inbounds %S.ast.Type, ptr %a235, i32 0, i32 0 - %t247 = load { ptr, i64, i64 }, ptr %t246 - store { ptr, i64, i64 } %t247, ptr %a248 - store { ptr, i64, i64 } { ptr @.str.5404, i64 5, i64 0 }, ptr %a249 - %t250 = call i32 @finch_str_eq(ptr %a248, ptr %a249) - %t251 = icmp ne i32 %t250, 0 - br i1 %t251, label %then8273, label %endif8275 -then8273: - store { ptr, i64, i64 } { ptr @.str.5405, i64 0, i64 0 }, ptr %a252 - %t253 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 0 - %t254 = load i1, ptr %t253 - br i1 %t254, label %then8276, label %else8277 -then8276: - %t255 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 1 - %t256 = getelementptr inbounds %S.gen.Place, ptr %t255, i32 0, i32 0 - %t257 = load { ptr, i64, i64 }, ptr %t256 - store { ptr, i64, i64 } %t257, ptr %a258 - call void @finch_str_copy(ptr %a259, ptr %a258) - %t260 = load { ptr, i64, i64 }, ptr %a259 - %t261 = load { ptr, i64, i64 }, ptr %a252 - store { ptr, i64, i64 } %t260, ptr %a252 - store { ptr, i64, i64 } %t261, ptr %a262 - call void @finch_str_drop(ptr %a262) - br label %endif8278 -else8277: - %t263 = getelementptr inbounds { ptr, i64, i64 }, ptr %a200, i32 0, i32 1 - %t264 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t265 = load { ptr, i64, i64 }, ptr %t264 - store i64 -1, ptr %a266 - %t267 = load i64, ptr %t263 - %t268 = load ptr, ptr %a200 - store i64 0, ptr %a269 - br label %find.cond8279 -find.cond8279: - %t270 = load i64, ptr %a269 - %t271 = icmp slt i64 %t270, %t267 - br i1 %t271, label %find.body8280, label %find.end8283 -find.body8280: - %t272 = getelementptr inbounds { ptr, i64, i64 }, ptr %t268, i64 %t270 - %t273 = load { ptr, i64, i64 }, ptr %t272 - store { ptr, i64, i64 } %t273, ptr %a274 - store { ptr, i64, i64 } %t265, ptr %a275 - %t276 = call i32 @finch_str_eq(ptr %a274, ptr %a275) - %t277 = icmp ne i32 %t276, 0 - br i1 %t277, label %find.hit8281, label %find.next8282 -find.hit8281: - store i64 %t270, ptr %a266 - br label %find.end8283 -find.next8282: - %t278 = add i64 %t270, 1 - store i64 %t278, ptr %a269 - br label %find.cond8279 -find.end8283: - %t279 = load i64, ptr %a266 - %t280 = icmp sge i64 %t279, 0 - br i1 %t280, label %then8284, label %endif8286 -then8284: - %t281 = load ptr, ptr %a1 - %t282 = load %S.ast.Node, ptr %a2 - %t283 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t284 = load { ptr, i64, i64 }, ptr %t283 - store { ptr, i64, i64 } %t284, ptr %a286 - store { ptr, i64, i64 } { ptr @.str.5406, i64 63, i64 0 }, ptr %a287 - call void @finch_str_concat(ptr %a285, ptr %a286, ptr %a287) - %t288 = load { ptr, i64, i64 }, ptr %a285 - call void @finch.gen.fail(ptr %t281, %S.ast.Node %t282, { ptr, i64, i64 } %t288) - store { ptr, i64, i64 } %t288, ptr %a289 - call void @finch_str_drop(ptr %a289) - br label %endif8286 -endif8286: - %t290 = load ptr, ptr %a1 - %t291 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 2 - %t292 = load %S.gen.Val, ptr %t291 - %t293 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t290, %S.gen.Val %t292) - %t294 = load { ptr, i64, i64 }, ptr %a252 - store { ptr, i64, i64 } %t293, ptr %a252 - store { ptr, i64, i64 } %t294, ptr %a295 - call void @finch_str_drop(ptr %a295) - %t296 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 2 - %t297 = getelementptr inbounds %S.gen.Val, ptr %t296, i32 0, i32 2 - %t298 = load i1, ptr %t297 - br i1 %t298, label %then8287, label %endif8289 -then8287: - %t299 = load ptr, ptr %a1 - %t300 = load { ptr, i64, i64 }, ptr %a252 - %t301 = load %S.ast.Type, ptr %a235 - call void @finch.gen.holdAddr(ptr %t299, { ptr, i64, i64 } %t300, %S.ast.Type %t301) - br label %endif8289 -endif8289: - br label %endif8278 -endif8278: - %t302 = load ptr, ptr %a1 - %t303 = load %S.ast.Node, ptr %a2 - %t304 = call { ptr, i64, i64 } @finch.docs.arrayMethods() - call void @finch.gen.noteMethod(ptr %t302, %S.ast.Node %t303, { ptr, i64, i64 } %t304) - store { ptr, i64, i64 } %t304, ptr %a305 - call void @finch.drop.arr_S_docs_Doc(ptr %a305) - %t306 = load ptr, ptr %a1 - %t307 = load %S.ast.Node, ptr %a2 - %t308 = load { ptr, i64, i64 }, ptr %a252 - %t309 = load %S.ast.Type, ptr %a235 - %t310 = call %S.gen.Val @finch.gen.arrayMethod(ptr %t306, %S.ast.Node %t307, { ptr, i64, i64 } %t308, %S.ast.Type %t309) - store %S.gen.Val %t310, ptr %a311 - %t312 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 0 - %t313 = load i1, ptr %t312 - %t314 = xor i1 %t313, true - br label %logic.from8290 -logic.from8290: - br i1 %t314, label %logic.rhs8291, label %logic.end8292 -logic.rhs8291: - %t315 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 2 - %t316 = getelementptr inbounds %S.gen.Val, ptr %t315, i32 0, i32 2 - %t317 = load i1, ptr %t316 - br label %logic.rend8293 -logic.rend8293: - br label %logic.end8292 -logic.end8292: - %t318 = phi i1 [ false, %logic.from8290 ], [ %t317, %logic.rend8293 ] - br i1 %t318, label %then8294, label %endif8296 -then8294: +ok8671: + %t263 = getelementptr inbounds %S.gen.Gen, ptr %t261, i32 0, i32 11 + %t264 = getelementptr inbounds { ptr, i64, i64 }, ptr %t263, i32 0, i32 1 + %t265 = load i64, ptr %t264 + store i64 %t265, ptr %a266 + %t267 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 2 + %t268 = getelementptr inbounds %S.gen.Val, ptr %t267, i32 0, i32 1 + %t269 = load %S.ast.Type, ptr %t268 + store %S.ast.Type %t269, ptr %a270 + call void @finch.copy.S_ast_Type(ptr %a271, ptr %a270) + %t272 = load %S.ast.Type, ptr %a271 + store %S.ast.Type %t272, ptr %a273 + %t274 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 0 + %t275 = load i1, ptr %t274 + br i1 %t275, label %then8672, label %endif8674 +then8672: + %t276 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 1 + %t277 = getelementptr inbounds %S.gen.Place, ptr %t276, i32 0, i32 1 + %t278 = load %S.ast.Type, ptr %t277 + store %S.ast.Type %t278, ptr %a279 + call void @finch.copy.S_ast_Type(ptr %a280, ptr %a279) + %t281 = load %S.ast.Type, ptr %a280 + %t282 = load %S.ast.Type, ptr %a273 + store %S.ast.Type %t281, ptr %a273 + store %S.ast.Type %t282, ptr %a283 + call void @finch.drop.S_ast_Type(ptr %a283) + br label %endif8674 +endif8674: + %t284 = getelementptr inbounds %S.ast.Type, ptr %a273, i32 0, i32 0 + %t285 = load { ptr, i64, i64 }, ptr %t284 + store { ptr, i64, i64 } %t285, ptr %a286 + store { ptr, i64, i64 } { ptr @.str.5612, i64 5, i64 0 }, ptr %a287 + %t288 = call i32 @finch_str_eq(ptr %a286, ptr %a287) + %t289 = icmp ne i32 %t288, 0 + br i1 %t289, label %then8675, label %endif8677 +then8675: + store { ptr, i64, i64 } { ptr @.str.5613, i64 0, i64 0 }, ptr %a290 + %t291 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 0 + %t292 = load i1, ptr %t291 + br i1 %t292, label %then8678, label %else8679 +then8678: + %t293 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 1 + %t294 = getelementptr inbounds %S.gen.Place, ptr %t293, i32 0, i32 0 + %t295 = load { ptr, i64, i64 }, ptr %t294 + store { ptr, i64, i64 } %t295, ptr %a296 + call void @finch_str_copy(ptr %a297, ptr %a296) + %t298 = load { ptr, i64, i64 }, ptr %a297 + %t299 = load { ptr, i64, i64 }, ptr %a290 + store { ptr, i64, i64 } %t298, ptr %a290 + store { ptr, i64, i64 } %t299, ptr %a300 + call void @finch_str_drop(ptr %a300) + br label %endif8680 +else8679: + %t301 = getelementptr inbounds { ptr, i64, i64 }, ptr %a238, i32 0, i32 1 + %t302 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t303 = load { ptr, i64, i64 }, ptr %t302 + store i64 -1, ptr %a304 + %t305 = load i64, ptr %t301 + %t306 = load ptr, ptr %a238 + store i64 0, ptr %a307 + br label %find.cond8681 +find.cond8681: + %t308 = load i64, ptr %a307 + %t309 = icmp slt i64 %t308, %t305 + br i1 %t309, label %find.body8682, label %find.end8685 +find.body8682: + %t310 = getelementptr inbounds { ptr, i64, i64 }, ptr %t306, i64 %t308 + %t311 = load { ptr, i64, i64 }, ptr %t310 + store { ptr, i64, i64 } %t311, ptr %a312 + store { ptr, i64, i64 } %t303, ptr %a313 + %t314 = call i32 @finch_str_eq(ptr %a312, ptr %a313) + %t315 = icmp ne i32 %t314, 0 + br i1 %t315, label %find.hit8683, label %find.next8684 +find.hit8683: + store i64 %t308, ptr %a304 + br label %find.end8685 +find.next8684: + %t316 = add i64 %t308, 1 + store i64 %t316, ptr %a307 + br label %find.cond8681 +find.end8685: + %t317 = load i64, ptr %a304 + %t318 = icmp sge i64 %t317, 0 + br i1 %t318, label %then8686, label %endif8688 +then8686: %t319 = load ptr, ptr %a1 - %t320 = load { ptr, i64, i64 }, ptr %a252 - %t321 = load %S.ast.Type, ptr %a235 - call void @finch.gen.dropAt(ptr %t319, { ptr, i64, i64 } %t320, %S.ast.Type %t321) - br label %endif8296 -endif8296: - %t322 = load ptr, ptr %a1 - %t323 = load i64, ptr %a228 - call void @finch.gen.heldEnd(ptr %t322, i64 %t323) - %t324 = load %S.gen.Val, ptr %a311 - call void @finch_str_drop(ptr %a252) - call void @finch.drop.S_ast_Type(ptr %a235) - call void @finch.drop.S_gen_Ref(ptr %a222) - call void @finch.drop.arr_str(ptr %a200) - call void @finch.drop.S_ast_Node(ptr %a13) - ret %S.gen.Val %t324 -endif8275: - %t325 = getelementptr inbounds %S.ast.Type, ptr %a235, i32 0, i32 0 - %t326 = load { ptr, i64, i64 }, ptr %t325 + %t320 = load %S.ast.Node, ptr %a2 + %t321 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t322 = load { ptr, i64, i64 }, ptr %t321 + store { ptr, i64, i64 } %t322, ptr %a324 + store { ptr, i64, i64 } { ptr @.str.5614, i64 63, i64 0 }, ptr %a325 + call void @finch_str_concat(ptr %a323, ptr %a324, ptr %a325) + %t326 = load { ptr, i64, i64 }, ptr %a323 + call void @finch.gen.fail(ptr %t319, %S.ast.Node %t320, { ptr, i64, i64 } %t326) store { ptr, i64, i64 } %t326, ptr %a327 - store { ptr, i64, i64 } { ptr @.str.5407, i64 3, i64 0 }, ptr %a328 - %t329 = call i32 @finch_str_eq(ptr %a327, ptr %a328) - %t330 = icmp ne i32 %t329, 0 - br i1 %t330, label %then8297, label %endif8299 -then8297: - %t331 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 2 - %t332 = load %S.gen.Val, ptr %t331 - store %S.gen.Val %t332, ptr %a333 - call void @finch.copy.S_gen_Val(ptr %a334, ptr %a333) - %t335 = load %S.gen.Val, ptr %a334 - store %S.gen.Val %t335, ptr %a336 - %t337 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 0 - %t338 = load i1, ptr %t337 - br i1 %t338, label %then8300, label %endif8302 -then8300: - %t339 = load ptr, ptr %a1 - %t340 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 1 - %t341 = getelementptr inbounds %S.gen.Place, ptr %t340, i32 0, i32 0 - %t342 = load { ptr, i64, i64 }, ptr %t341 - %t343 = call { ptr, i64, i64 } @finch.gen.load(ptr %t339, { ptr, i64, i64 } { ptr @.str.5408, i64 17, i64 0 }, { ptr, i64, i64 } %t342) - %t344 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t343, 0 - %t345 = load %S.ast.Type, ptr %a235 - store %S.ast.Type %t345, ptr %a346 - call void @finch.copy.S_ast_Type(ptr %a347, ptr %a346) - %t348 = load %S.ast.Type, ptr %a347 - %t349 = insertvalue %S.gen.Val %t344, %S.ast.Type %t348, 1 - %t350 = load %S.gen.Val, ptr %a336 - store %S.gen.Val %t349, ptr %a336 - store %S.gen.Val %t350, ptr %a351 - call void @finch.drop.S_gen_Val(ptr %a351) - br label %endif8302 -endif8302: - %t352 = load ptr, ptr %a1 - %t353 = load %S.ast.Node, ptr %a2 - %t354 = call { ptr, i64, i64 } @finch.docs.strMethods() - call void @finch.gen.noteMethod(ptr %t352, %S.ast.Node %t353, { ptr, i64, i64 } %t354) - store { ptr, i64, i64 } %t354, ptr %a355 - call void @finch.drop.arr_S_docs_Doc(ptr %a355) - %t356 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 0 - %t357 = load i1, ptr %t356 - %t358 = xor i1 %t357, true - br i1 %t358, label %then8303, label %endif8305 -then8303: - %t359 = load ptr, ptr %a1 - %t360 = load %S.gen.Val, ptr %a336 - call void @finch.gen.hold(ptr %t359, %S.gen.Val %t360) - br label %endif8305 -endif8305: - %t361 = load ptr, ptr %a1 - %t362 = load %S.ast.Node, ptr %a2 - %t363 = load ptr, ptr %a1 - %t364 = load %S.gen.Val, ptr %a336 - %t365 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t363, %S.gen.Val %t364) - %t366 = call %S.gen.Val @finch.gen.strMethod(ptr %t361, %S.ast.Node %t362, { ptr, i64, i64 } %t365) - store { ptr, i64, i64 } %t365, ptr %a367 - call void @finch_str_drop(ptr %a367) - store %S.gen.Val %t366, ptr %a368 - %t369 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 0 - %t370 = load i1, ptr %t369 - %t371 = xor i1 %t370, true - br i1 %t371, label %then8306, label %endif8308 -then8306: - %t372 = load ptr, ptr %a1 - %t373 = load %S.gen.Val, ptr %a336 - call void @finch.gen.release(ptr %t372, %S.gen.Val %t373) - br label %endif8308 -endif8308: - %t374 = load ptr, ptr %a1 - %t375 = load i64, ptr %a228 - call void @finch.gen.heldEnd(ptr %t374, i64 %t375) - %t376 = load %S.gen.Val, ptr %a368 - call void @finch.drop.S_gen_Val(ptr %a336) - call void @finch.drop.S_ast_Type(ptr %a235) - call void @finch.drop.S_gen_Ref(ptr %a222) - call void @finch.drop.arr_str(ptr %a200) + call void @finch_str_drop(ptr %a327) + br label %endif8688 +endif8688: + %t328 = load ptr, ptr %a1 + %t329 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 2 + %t330 = load %S.gen.Val, ptr %t329 + %t331 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t328, %S.gen.Val %t330) + %t332 = load { ptr, i64, i64 }, ptr %a290 + store { ptr, i64, i64 } %t331, ptr %a290 + store { ptr, i64, i64 } %t332, ptr %a333 + call void @finch_str_drop(ptr %a333) + %t334 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 2 + %t335 = getelementptr inbounds %S.gen.Val, ptr %t334, i32 0, i32 2 + %t336 = load i1, ptr %t335 + br i1 %t336, label %then8689, label %endif8691 +then8689: + %t337 = load ptr, ptr %a1 + %t338 = load { ptr, i64, i64 }, ptr %a290 + %t339 = load %S.ast.Type, ptr %a273 + call void @finch.gen.holdAddr(ptr %t337, { ptr, i64, i64 } %t338, %S.ast.Type %t339) + br label %endif8691 +endif8691: + br label %endif8680 +endif8680: + %t340 = load ptr, ptr %a1 + %t341 = load %S.ast.Node, ptr %a2 + %t342 = call { ptr, i64, i64 } @finch.docs.arrayMethods() + call void @finch.gen.noteMethod(ptr %t340, %S.ast.Node %t341, { ptr, i64, i64 } %t342) + store { ptr, i64, i64 } %t342, ptr %a343 + call void @finch.drop.arr_S_docs_Doc(ptr %a343) + %t344 = load ptr, ptr %a1 + %t345 = load %S.ast.Node, ptr %a2 + %t346 = load { ptr, i64, i64 }, ptr %a290 + %t347 = load %S.ast.Type, ptr %a273 + %t348 = call %S.gen.Val @finch.gen.arrayMethod(ptr %t344, %S.ast.Node %t345, { ptr, i64, i64 } %t346, %S.ast.Type %t347) + store %S.gen.Val %t348, ptr %a349 + %t350 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 0 + %t351 = load i1, ptr %t350 + %t352 = xor i1 %t351, true + br label %logic.from8692 +logic.from8692: + br i1 %t352, label %logic.rhs8693, label %logic.end8694 +logic.rhs8693: + %t353 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 2 + %t354 = getelementptr inbounds %S.gen.Val, ptr %t353, i32 0, i32 2 + %t355 = load i1, ptr %t354 + br label %logic.rend8695 +logic.rend8695: + br label %logic.end8694 +logic.end8694: + %t356 = phi i1 [ false, %logic.from8692 ], [ %t355, %logic.rend8695 ] + br i1 %t356, label %then8696, label %endif8698 +then8696: + %t357 = load ptr, ptr %a1 + %t358 = load { ptr, i64, i64 }, ptr %a290 + %t359 = load %S.ast.Type, ptr %a273 + call void @finch.gen.dropAt(ptr %t357, { ptr, i64, i64 } %t358, %S.ast.Type %t359) + br label %endif8698 +endif8698: + %t360 = load ptr, ptr %a1 + %t361 = load i64, ptr %a266 + call void @finch.gen.heldEnd(ptr %t360, i64 %t361) + %t362 = load %S.gen.Val, ptr %a349 + call void @finch_str_drop(ptr %a290) + call void @finch.drop.S_ast_Type(ptr %a273) + call void @finch.drop.S_gen_Ref(ptr %a260) + call void @finch.drop.arr_str(ptr %a238) call void @finch.drop.S_ast_Node(ptr %a13) - ret %S.gen.Val %t376 -endif8299: - %t377 = getelementptr inbounds %S.ast.Type, ptr %a235, i32 0, i32 0 - %t378 = load { ptr, i64, i64 }, ptr %t377 - store { ptr, i64, i64 } %t378, ptr %a379 - store { ptr, i64, i64 } { ptr @.str.5409, i64 3, i64 0 }, ptr %a380 - %t381 = call i32 @finch_str_eq(ptr %a379, ptr %a380) - %t382 = icmp ne i32 %t381, 0 - br i1 %t382, label %then8309, label %endif8311 -then8309: - store { ptr, i64, i64 } { ptr @.str.5410, i64 0, i64 0 }, ptr %a383 - %t384 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 0 - %t385 = load i1, ptr %t384 - br i1 %t385, label %then8312, label %else8313 -then8312: - %t386 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 1 - %t387 = getelementptr inbounds %S.gen.Place, ptr %t386, i32 0, i32 0 - %t388 = load { ptr, i64, i64 }, ptr %t387 - store { ptr, i64, i64 } %t388, ptr %a389 - call void @finch_str_copy(ptr %a390, ptr %a389) - %t391 = load { ptr, i64, i64 }, ptr %a390 - %t392 = load { ptr, i64, i64 }, ptr %a383 - store { ptr, i64, i64 } %t391, ptr %a383 + ret %S.gen.Val %t362 +endif8677: + %t363 = getelementptr inbounds %S.ast.Type, ptr %a273, i32 0, i32 0 + %t364 = load { ptr, i64, i64 }, ptr %t363 + store { ptr, i64, i64 } %t364, ptr %a365 + store { ptr, i64, i64 } { ptr @.str.5615, i64 3, i64 0 }, ptr %a366 + %t367 = call i32 @finch_str_eq(ptr %a365, ptr %a366) + %t368 = icmp ne i32 %t367, 0 + br i1 %t368, label %then8699, label %endif8701 +then8699: + %t369 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 2 + %t370 = load %S.gen.Val, ptr %t369 + store %S.gen.Val %t370, ptr %a371 + call void @finch.copy.S_gen_Val(ptr %a372, ptr %a371) + %t373 = load %S.gen.Val, ptr %a372 + store %S.gen.Val %t373, ptr %a374 + %t375 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 0 + %t376 = load i1, ptr %t375 + br i1 %t376, label %then8702, label %endif8704 +then8702: + %t377 = load ptr, ptr %a1 + %t378 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 1 + %t379 = getelementptr inbounds %S.gen.Place, ptr %t378, i32 0, i32 0 + %t380 = load { ptr, i64, i64 }, ptr %t379 + %t381 = call { ptr, i64, i64 } @finch.gen.load(ptr %t377, { ptr, i64, i64 } { ptr @.str.5616, i64 17, i64 0 }, { ptr, i64, i64 } %t380) + %t382 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t381, 0 + %t383 = load %S.ast.Type, ptr %a273 + store %S.ast.Type %t383, ptr %a384 + call void @finch.copy.S_ast_Type(ptr %a385, ptr %a384) + %t386 = load %S.ast.Type, ptr %a385 + %t387 = insertvalue %S.gen.Val %t382, %S.ast.Type %t386, 1 + %t388 = load %S.gen.Val, ptr %a374 + store %S.gen.Val %t387, ptr %a374 + store %S.gen.Val %t388, ptr %a389 + call void @finch.drop.S_gen_Val(ptr %a389) + br label %endif8704 +endif8704: + %t390 = load ptr, ptr %a1 + %t391 = load %S.ast.Node, ptr %a2 + %t392 = call { ptr, i64, i64 } @finch.docs.strMethods() + call void @finch.gen.noteMethod(ptr %t390, %S.ast.Node %t391, { ptr, i64, i64 } %t392) store { ptr, i64, i64 } %t392, ptr %a393 - call void @finch_str_drop(ptr %a393) - br label %endif8314 -else8313: - %t394 = getelementptr inbounds { ptr, i64, i64 }, ptr %a200, i32 0, i32 1 - %t395 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t396 = load { ptr, i64, i64 }, ptr %t395 - store i64 -1, ptr %a397 - %t398 = load i64, ptr %t394 - %t399 = load ptr, ptr %a200 - store i64 0, ptr %a400 - br label %find.cond8315 -find.cond8315: - %t401 = load i64, ptr %a400 - %t402 = icmp slt i64 %t401, %t398 - br i1 %t402, label %find.body8316, label %find.end8319 -find.body8316: - %t403 = getelementptr inbounds { ptr, i64, i64 }, ptr %t399, i64 %t401 - %t404 = load { ptr, i64, i64 }, ptr %t403 - store { ptr, i64, i64 } %t404, ptr %a405 - store { ptr, i64, i64 } %t396, ptr %a406 - %t407 = call i32 @finch_str_eq(ptr %a405, ptr %a406) - %t408 = icmp ne i32 %t407, 0 - br i1 %t408, label %find.hit8317, label %find.next8318 -find.hit8317: - store i64 %t401, ptr %a397 - br label %find.end8319 -find.next8318: - %t409 = add i64 %t401, 1 - store i64 %t409, ptr %a400 - br label %find.cond8315 -find.end8319: - %t410 = load i64, ptr %a397 - %t411 = icmp sge i64 %t410, 0 - br i1 %t411, label %then8320, label %endif8322 -then8320: + call void @finch.drop.arr_S_docs_Doc(ptr %a393) + %t394 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 0 + %t395 = load i1, ptr %t394 + %t396 = xor i1 %t395, true + br i1 %t396, label %then8705, label %endif8707 +then8705: + %t397 = load ptr, ptr %a1 + %t398 = load %S.gen.Val, ptr %a374 + call void @finch.gen.hold(ptr %t397, %S.gen.Val %t398) + br label %endif8707 +endif8707: + %t399 = load ptr, ptr %a1 + %t400 = load %S.ast.Node, ptr %a2 + %t401 = load ptr, ptr %a1 + %t402 = load %S.gen.Val, ptr %a374 + %t403 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t401, %S.gen.Val %t402) + %t404 = call %S.gen.Val @finch.gen.strMethod(ptr %t399, %S.ast.Node %t400, { ptr, i64, i64 } %t403) + store { ptr, i64, i64 } %t403, ptr %a405 + call void @finch_str_drop(ptr %a405) + store %S.gen.Val %t404, ptr %a406 + %t407 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 0 + %t408 = load i1, ptr %t407 + %t409 = xor i1 %t408, true + br i1 %t409, label %then8708, label %endif8710 +then8708: + %t410 = load ptr, ptr %a1 + %t411 = load %S.gen.Val, ptr %a374 + call void @finch.gen.release(ptr %t410, %S.gen.Val %t411) + br label %endif8710 +endif8710: %t412 = load ptr, ptr %a1 - %t413 = load %S.ast.Node, ptr %a2 - %t414 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t415 = load { ptr, i64, i64 }, ptr %t414 - store { ptr, i64, i64 } %t415, ptr %a417 - store { ptr, i64, i64 } { ptr @.str.5411, i64 61, i64 0 }, ptr %a418 - call void @finch_str_concat(ptr %a416, ptr %a417, ptr %a418) - %t419 = load { ptr, i64, i64 }, ptr %a416 - call void @finch.gen.fail(ptr %t412, %S.ast.Node %t413, { ptr, i64, i64 } %t419) - store { ptr, i64, i64 } %t419, ptr %a420 - call void @finch_str_drop(ptr %a420) - br label %endif8322 -endif8322: - %t421 = load ptr, ptr %a1 - %t422 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 2 - %t423 = load %S.gen.Val, ptr %t422 - %t424 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t421, %S.gen.Val %t423) - %t425 = load { ptr, i64, i64 }, ptr %a383 - store { ptr, i64, i64 } %t424, ptr %a383 - store { ptr, i64, i64 } %t425, ptr %a426 - call void @finch_str_drop(ptr %a426) - %t427 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 2 - %t428 = getelementptr inbounds %S.gen.Val, ptr %t427, i32 0, i32 2 - %t429 = load i1, ptr %t428 - br i1 %t429, label %then8323, label %endif8325 -then8323: - %t430 = load ptr, ptr %a1 - %t431 = load { ptr, i64, i64 }, ptr %a383 - %t432 = load %S.ast.Type, ptr %a235 - call void @finch.gen.holdAddr(ptr %t430, { ptr, i64, i64 } %t431, %S.ast.Type %t432) - br label %endif8325 -endif8325: - br label %endif8314 -endif8314: - %t433 = load ptr, ptr %a1 - %t434 = load %S.ast.Node, ptr %a2 - %t435 = call { ptr, i64, i64 } @finch.docs.mapMethods() - call void @finch.gen.noteMethod(ptr %t433, %S.ast.Node %t434, { ptr, i64, i64 } %t435) - store { ptr, i64, i64 } %t435, ptr %a436 - call void @finch.drop.arr_S_docs_Doc(ptr %a436) - %t437 = load ptr, ptr %a1 - %t438 = load %S.ast.Node, ptr %a2 - %t439 = load { ptr, i64, i64 }, ptr %a383 - %t440 = load %S.ast.Type, ptr %a235 - %t441 = call %S.gen.Val @finch.gen.mapMethod(ptr %t437, %S.ast.Node %t438, { ptr, i64, i64 } %t439, %S.ast.Type %t440) - store %S.gen.Val %t441, ptr %a442 - %t443 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 0 - %t444 = load i1, ptr %t443 - %t445 = xor i1 %t444, true - br label %logic.from8326 -logic.from8326: - br i1 %t445, label %logic.rhs8327, label %logic.end8328 -logic.rhs8327: - %t446 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 2 - %t447 = getelementptr inbounds %S.gen.Val, ptr %t446, i32 0, i32 2 - %t448 = load i1, ptr %t447 - br label %logic.rend8329 -logic.rend8329: - br label %logic.end8328 -logic.end8328: - %t449 = phi i1 [ false, %logic.from8326 ], [ %t448, %logic.rend8329 ] - br i1 %t449, label %then8330, label %endif8332 -then8330: - %t450 = load ptr, ptr %a1 - %t451 = load { ptr, i64, i64 }, ptr %a383 - %t452 = load %S.ast.Type, ptr %a235 - call void @finch.gen.dropAt(ptr %t450, { ptr, i64, i64 } %t451, %S.ast.Type %t452) - br label %endif8332 -endif8332: - %t453 = load ptr, ptr %a1 - %t454 = load i64, ptr %a228 - call void @finch.gen.heldEnd(ptr %t453, i64 %t454) - %t455 = load %S.gen.Val, ptr %a442 - call void @finch_str_drop(ptr %a383) - call void @finch.drop.S_ast_Type(ptr %a235) - call void @finch.drop.S_gen_Ref(ptr %a222) - call void @finch.drop.arr_str(ptr %a200) + %t413 = load i64, ptr %a266 + call void @finch.gen.heldEnd(ptr %t412, i64 %t413) + %t414 = load %S.gen.Val, ptr %a406 + call void @finch.drop.S_gen_Val(ptr %a374) + call void @finch.drop.S_ast_Type(ptr %a273) + call void @finch.drop.S_gen_Ref(ptr %a260) + call void @finch.drop.arr_str(ptr %a238) call void @finch.drop.S_ast_Node(ptr %a13) - ret %S.gen.Val %t455 -endif8311: - %t456 = load ptr, ptr %a1 - %t457 = load i64, ptr %a228 - call void @finch.gen.heldEnd(ptr %t456, i64 %t457) - %t458 = load %S.ast.Type, ptr %a235 - store %S.ast.Type %t458, ptr %a459 - call void @finch.copy.S_ast_Type(ptr %a460, ptr %a459) - %t461 = load %S.ast.Type, ptr %a460 - store %S.ast.Type %t461, ptr %a462 - store { ptr, i64, i64 } { ptr @.str.5412, i64 0, i64 0 }, ptr %a463 - store i1 false, ptr %a464 - %t465 = getelementptr inbounds %S.ast.Type, ptr %a235, i32 0, i32 0 - %t466 = load { ptr, i64, i64 }, ptr %t465 - store { ptr, i64, i64 } %t466, ptr %a467 - store { ptr, i64, i64 } { ptr @.str.5413, i64 3, i64 0 }, ptr %a468 - %t469 = call i32 @finch_str_eq(ptr %a467, ptr %a468) - %t470 = icmp ne i32 %t469, 0 - br label %logic.from8333 -logic.from8333: - br i1 %t470, label %logic.rhs8334, label %logic.end8335 -logic.rhs8334: - %t471 = getelementptr inbounds %S.ast.Type, ptr %a235, i32 0, i32 1 - %t472 = getelementptr inbounds { ptr, i64, i64 }, ptr %t471, i32 0, i32 1 - %t473 = load i64, ptr %t472 - %t474 = icmp sgt i64 %t473, 0 - br label %logic.rend8336 -logic.rend8336: - br label %logic.end8335 -logic.end8335: - %t475 = phi i1 [ false, %logic.from8333 ], [ %t474, %logic.rend8336 ] - br label %logic.from8337 -logic.from8337: - br i1 %t475, label %logic.rhs8338, label %logic.end8339 -logic.rhs8338: - %t476 = getelementptr inbounds %S.ast.Type, ptr %a235, i32 0, i32 1 - %t477 = load { ptr, i64, i64 }, ptr %t476 - %t478 = extractvalue { ptr, i64, i64 } %t477, 1 - %t479 = icmp uge i64 0, %t478 - br i1 %t479, label %range8340, label %inrange8341 -range8340: - call void @finch_panic_index(ptr @.str.5414, i64 5098, i64 0, i64 %t478) + ret %S.gen.Val %t414 +endif8701: + %t415 = getelementptr inbounds %S.ast.Type, ptr %a273, i32 0, i32 0 + %t416 = load { ptr, i64, i64 }, ptr %t415 + store { ptr, i64, i64 } %t416, ptr %a417 + store { ptr, i64, i64 } { ptr @.str.5617, i64 3, i64 0 }, ptr %a418 + %t419 = call i32 @finch_str_eq(ptr %a417, ptr %a418) + %t420 = icmp ne i32 %t419, 0 + br i1 %t420, label %then8711, label %endif8713 +then8711: + store { ptr, i64, i64 } { ptr @.str.5618, i64 0, i64 0 }, ptr %a421 + %t422 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 0 + %t423 = load i1, ptr %t422 + br i1 %t423, label %then8714, label %else8715 +then8714: + %t424 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 1 + %t425 = getelementptr inbounds %S.gen.Place, ptr %t424, i32 0, i32 0 + %t426 = load { ptr, i64, i64 }, ptr %t425 + store { ptr, i64, i64 } %t426, ptr %a427 + call void @finch_str_copy(ptr %a428, ptr %a427) + %t429 = load { ptr, i64, i64 }, ptr %a428 + %t430 = load { ptr, i64, i64 }, ptr %a421 + store { ptr, i64, i64 } %t429, ptr %a421 + store { ptr, i64, i64 } %t430, ptr %a431 + call void @finch_str_drop(ptr %a431) + br label %endif8716 +else8715: + %t432 = getelementptr inbounds { ptr, i64, i64 }, ptr %a238, i32 0, i32 1 + %t433 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t434 = load { ptr, i64, i64 }, ptr %t433 + store i64 -1, ptr %a435 + %t436 = load i64, ptr %t432 + %t437 = load ptr, ptr %a238 + store i64 0, ptr %a438 + br label %find.cond8717 +find.cond8717: + %t439 = load i64, ptr %a438 + %t440 = icmp slt i64 %t439, %t436 + br i1 %t440, label %find.body8718, label %find.end8721 +find.body8718: + %t441 = getelementptr inbounds { ptr, i64, i64 }, ptr %t437, i64 %t439 + %t442 = load { ptr, i64, i64 }, ptr %t441 + store { ptr, i64, i64 } %t442, ptr %a443 + store { ptr, i64, i64 } %t434, ptr %a444 + %t445 = call i32 @finch_str_eq(ptr %a443, ptr %a444) + %t446 = icmp ne i32 %t445, 0 + br i1 %t446, label %find.hit8719, label %find.next8720 +find.hit8719: + store i64 %t439, ptr %a435 + br label %find.end8721 +find.next8720: + %t447 = add i64 %t439, 1 + store i64 %t447, ptr %a438 + br label %find.cond8717 +find.end8721: + %t448 = load i64, ptr %a435 + %t449 = icmp sge i64 %t448, 0 + br i1 %t449, label %then8722, label %endif8724 +then8722: + %t450 = load ptr, ptr %a1 + %t451 = load %S.ast.Node, ptr %a2 + %t452 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t453 = load { ptr, i64, i64 }, ptr %t452 + store { ptr, i64, i64 } %t453, ptr %a455 + store { ptr, i64, i64 } { ptr @.str.5619, i64 61, i64 0 }, ptr %a456 + call void @finch_str_concat(ptr %a454, ptr %a455, ptr %a456) + %t457 = load { ptr, i64, i64 }, ptr %a454 + call void @finch.gen.fail(ptr %t450, %S.ast.Node %t451, { ptr, i64, i64 } %t457) + store { ptr, i64, i64 } %t457, ptr %a458 + call void @finch_str_drop(ptr %a458) + br label %endif8724 +endif8724: + %t459 = load ptr, ptr %a1 + %t460 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 2 + %t461 = load %S.gen.Val, ptr %t460 + %t462 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t459, %S.gen.Val %t461) + %t463 = load { ptr, i64, i64 }, ptr %a421 + store { ptr, i64, i64 } %t462, ptr %a421 + store { ptr, i64, i64 } %t463, ptr %a464 + call void @finch_str_drop(ptr %a464) + %t465 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 2 + %t466 = getelementptr inbounds %S.gen.Val, ptr %t465, i32 0, i32 2 + %t467 = load i1, ptr %t466 + br i1 %t467, label %then8725, label %endif8727 +then8725: + %t468 = load ptr, ptr %a1 + %t469 = load { ptr, i64, i64 }, ptr %a421 + %t470 = load %S.ast.Type, ptr %a273 + call void @finch.gen.holdAddr(ptr %t468, { ptr, i64, i64 } %t469, %S.ast.Type %t470) + br label %endif8727 +endif8727: + br label %endif8716 +endif8716: + %t471 = load ptr, ptr %a1 + %t472 = load %S.ast.Node, ptr %a2 + %t473 = call { ptr, i64, i64 } @finch.docs.mapMethods() + call void @finch.gen.noteMethod(ptr %t471, %S.ast.Node %t472, { ptr, i64, i64 } %t473) + store { ptr, i64, i64 } %t473, ptr %a474 + call void @finch.drop.arr_S_docs_Doc(ptr %a474) + %t475 = load ptr, ptr %a1 + %t476 = load %S.ast.Node, ptr %a2 + %t477 = load { ptr, i64, i64 }, ptr %a421 + %t478 = load %S.ast.Type, ptr %a273 + %t479 = call %S.gen.Val @finch.gen.mapMethod(ptr %t475, %S.ast.Node %t476, { ptr, i64, i64 } %t477, %S.ast.Type %t478) + store %S.gen.Val %t479, ptr %a480 + %t481 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 0 + %t482 = load i1, ptr %t481 + %t483 = xor i1 %t482, true + br label %logic.from8728 +logic.from8728: + br i1 %t483, label %logic.rhs8729, label %logic.end8730 +logic.rhs8729: + %t484 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 2 + %t485 = getelementptr inbounds %S.gen.Val, ptr %t484, i32 0, i32 2 + %t486 = load i1, ptr %t485 + br label %logic.rend8731 +logic.rend8731: + br label %logic.end8730 +logic.end8730: + %t487 = phi i1 [ false, %logic.from8728 ], [ %t486, %logic.rend8731 ] + br i1 %t487, label %then8732, label %endif8734 +then8732: + %t488 = load ptr, ptr %a1 + %t489 = load { ptr, i64, i64 }, ptr %a421 + %t490 = load %S.ast.Type, ptr %a273 + call void @finch.gen.dropAt(ptr %t488, { ptr, i64, i64 } %t489, %S.ast.Type %t490) + br label %endif8734 +endif8734: + %t491 = load ptr, ptr %a1 + %t492 = load i64, ptr %a266 + call void @finch.gen.heldEnd(ptr %t491, i64 %t492) + %t493 = load %S.gen.Val, ptr %a480 + call void @finch_str_drop(ptr %a421) + call void @finch.drop.S_ast_Type(ptr %a273) + call void @finch.drop.S_gen_Ref(ptr %a260) + call void @finch.drop.arr_str(ptr %a238) + call void @finch.drop.S_ast_Node(ptr %a13) + ret %S.gen.Val %t493 +endif8713: + %t494 = load ptr, ptr %a1 + %t495 = load i64, ptr %a266 + call void @finch.gen.heldEnd(ptr %t494, i64 %t495) + %t496 = load %S.ast.Type, ptr %a273 + store %S.ast.Type %t496, ptr %a497 + call void @finch.copy.S_ast_Type(ptr %a498, ptr %a497) + %t499 = load %S.ast.Type, ptr %a498 + store %S.ast.Type %t499, ptr %a500 + store { ptr, i64, i64 } { ptr @.str.5620, i64 0, i64 0 }, ptr %a501 + store i1 false, ptr %a502 + %t503 = getelementptr inbounds %S.ast.Type, ptr %a273, i32 0, i32 0 + %t504 = load { ptr, i64, i64 }, ptr %t503 + store { ptr, i64, i64 } %t504, ptr %a505 + store { ptr, i64, i64 } { ptr @.str.5621, i64 3, i64 0 }, ptr %a506 + %t507 = call i32 @finch_str_eq(ptr %a505, ptr %a506) + %t508 = icmp ne i32 %t507, 0 + br label %logic.from8735 +logic.from8735: + br i1 %t508, label %logic.rhs8736, label %logic.end8737 +logic.rhs8736: + %t509 = getelementptr inbounds %S.ast.Type, ptr %a273, i32 0, i32 1 + %t510 = getelementptr inbounds { ptr, i64, i64 }, ptr %t509, i32 0, i32 1 + %t511 = load i64, ptr %t510 + %t512 = icmp sgt i64 %t511, 0 + br label %logic.rend8738 +logic.rend8738: + br label %logic.end8737 +logic.end8737: + %t513 = phi i1 [ false, %logic.from8735 ], [ %t512, %logic.rend8738 ] + br label %logic.from8739 +logic.from8739: + br i1 %t513, label %logic.rhs8740, label %logic.end8741 +logic.rhs8740: + %t514 = getelementptr inbounds %S.ast.Type, ptr %a273, i32 0, i32 1 + %t515 = load { ptr, i64, i64 }, ptr %t514 + %t516 = extractvalue { ptr, i64, i64 } %t515, 1 + %t517 = icmp uge i64 0, %t516 + br i1 %t517, label %range8742, label %inrange8743 +range8742: + call void @finch_panic_index(ptr @.str.5622, i64 5333, i64 0, i64 %t516) unreachable -inrange8341: - %t480 = extractvalue { ptr, i64, i64 } %t477, 0 - %t481 = getelementptr inbounds %S.ast.Type, ptr %t480, i64 0 - %t482 = getelementptr inbounds %S.ast.Type, ptr %t481, i32 0, i32 0 - %t483 = load { ptr, i64, i64 }, ptr %t482 - store { ptr, i64, i64 } %t483, ptr %a484 - store { ptr, i64, i64 } { ptr @.str.5415, i64 6, i64 0 }, ptr %a485 - %t486 = call i32 @finch_str_eq(ptr %a484, ptr %a485) - %t487 = icmp ne i32 %t486, 0 - br label %logic.rend8342 -logic.rend8342: - br label %logic.end8339 -logic.end8339: - %t488 = phi i1 [ false, %logic.from8337 ], [ %t487, %logic.rend8342 ] - br i1 %t488, label %then8343, label %else8344 -then8343: - %t489 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 2 - %t490 = getelementptr inbounds %S.gen.Val, ptr %t489, i32 0, i32 0 - %t491 = load { ptr, i64, i64 }, ptr %t490 - store { ptr, i64, i64 } %t491, ptr %a492 - call void @finch_str_copy(ptr %a493, ptr %a492) - %t494 = load { ptr, i64, i64 }, ptr %a493 - store { ptr, i64, i64 } %t494, ptr %a495 - %t496 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 0 - %t497 = load i1, ptr %t496 - br i1 %t497, label %then8346, label %endif8348 -then8346: - %t498 = load ptr, ptr %a1 - %t499 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 1 - %t500 = getelementptr inbounds %S.gen.Place, ptr %t499, i32 0, i32 0 - %t501 = load { ptr, i64, i64 }, ptr %t500 - %t502 = call { ptr, i64, i64 } @finch.gen.load(ptr %t498, { ptr, i64, i64 } { ptr @.str.5416, i64 3, i64 0 }, { ptr, i64, i64 } %t501) - %t503 = load { ptr, i64, i64 }, ptr %a495 - store { ptr, i64, i64 } %t502, ptr %a495 - store { ptr, i64, i64 } %t503, ptr %a504 - call void @finch_str_drop(ptr %a504) - br label %endif8348 -endif8348: - %t505 = load ptr, ptr %a1 - %t506 = load ptr, ptr %a1 - %t507 = load { ptr, i64, i64 }, ptr %a495 - store { ptr, i64, i64 } { ptr @.str.5417, i64 12, i64 0 }, ptr %a509 - store { ptr, i64, i64 } %t507, ptr %a510 - call void @finch_str_concat(ptr %a508, ptr %a509, ptr %a510) - %t511 = load { ptr, i64, i64 }, ptr %a508 - store { ptr, i64, i64 } %t511, ptr %a513 - store { ptr, i64, i64 } { ptr @.str.5418, i64 6, i64 0 }, ptr %a514 - call void @finch_str_concat(ptr %a512, ptr %a513, ptr %a514) - store { ptr, i64, i64 } %t511, ptr %a515 - call void @finch_str_drop(ptr %a515) - %t516 = load { ptr, i64, i64 }, ptr %a512 - %t517 = call { ptr, i64, i64 } @finch.gen.op(ptr %t506, { ptr, i64, i64 } %t516) - store { ptr, i64, i64 } %t516, ptr %a518 - call void @finch_str_drop(ptr %a518) - %t519 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t520 = load { ptr, i64, i64 }, ptr %t519 - store { ptr, i64, i64 } { ptr @.str.5419, i64 8, i64 0 }, ptr %a522 - store { ptr, i64, i64 } %t520, ptr %a523 - call void @finch_str_concat(ptr %a521, ptr %a522, ptr %a523) - %t524 = load { ptr, i64, i64 }, ptr %a521 - store { ptr, i64, i64 } %t524, ptr %a526 - store { ptr, i64, i64 } { ptr @.str.5420, i64 20, i64 0 }, ptr %a527 - call void @finch_str_concat(ptr %a525, ptr %a526, ptr %a527) - store { ptr, i64, i64 } %t524, ptr %a528 - call void @finch_str_drop(ptr %a528) - %t529 = load { ptr, i64, i64 }, ptr %a525 - %t530 = load %S.ast.Node, ptr %a2 - call void @finch.gen.panicIf(ptr %t505, { ptr, i64, i64 } %t517, { ptr, i64, i64 } %t529, %S.ast.Node %t530) - store { ptr, i64, i64 } %t517, ptr %a531 - call void @finch_str_drop(ptr %a531) - store { ptr, i64, i64 } %t529, ptr %a532 - call void @finch_str_drop(ptr %a532) - %t533 = getelementptr inbounds %S.ast.Type, ptr %a235, i32 0, i32 1 - %t534 = load { ptr, i64, i64 }, ptr %t533 - %t535 = extractvalue { ptr, i64, i64 } %t534, 1 - %t536 = icmp uge i64 0, %t535 - br i1 %t536, label %range8349, label %inrange8350 -range8349: - call void @finch_panic_index(ptr @.str.5421, i64 5104, i64 0, i64 %t535) - unreachable -inrange8350: - %t537 = extractvalue { ptr, i64, i64 } %t534, 0 - %t538 = getelementptr inbounds %S.ast.Type, ptr %t537, i64 0 - %t539 = load %S.ast.Type, ptr %t538 - store %S.ast.Type %t539, ptr %a540 - call void @finch.copy.S_ast_Type(ptr %a541, ptr %a540) - %t542 = load %S.ast.Type, ptr %a541 - %t543 = load %S.ast.Type, ptr %a462 - store %S.ast.Type %t542, ptr %a462 - store %S.ast.Type %t543, ptr %a544 - call void @finch.drop.S_ast_Type(ptr %a544) - %t545 = load { ptr, i64, i64 }, ptr %a495 - store { ptr, i64, i64 } %t545, ptr %a546 - call void @finch_str_copy(ptr %a547, ptr %a546) - %t548 = load { ptr, i64, i64 }, ptr %a547 - %t549 = load { ptr, i64, i64 }, ptr %a463 - store { ptr, i64, i64 } %t548, ptr %a463 - store { ptr, i64, i64 } %t549, ptr %a550 - call void @finch_str_drop(ptr %a550) - call void @finch_str_drop(ptr %a495) - br label %endif8345 -else8344: - %t551 = getelementptr inbounds %S.ast.Type, ptr %a235, i32 0, i32 0 - %t552 = load { ptr, i64, i64 }, ptr %t551 - store { ptr, i64, i64 } %t552, ptr %a553 - store { ptr, i64, i64 } { ptr @.str.5422, i64 6, i64 0 }, ptr %a554 - %t555 = call i32 @finch_str_eq(ptr %a553, ptr %a554) - %t556 = icmp ne i32 %t555, 0 - br label %logic.from8351 -logic.from8351: - br i1 %t556, label %logic.end8353, label %logic.rhs8352 -logic.rhs8352: - %t557 = getelementptr inbounds %S.ast.Type, ptr %a235, i32 0, i32 0 +inrange8743: + %t518 = extractvalue { ptr, i64, i64 } %t515, 0 + %t519 = getelementptr inbounds %S.ast.Type, ptr %t518, i64 0 + %t520 = getelementptr inbounds %S.ast.Type, ptr %t519, i32 0, i32 0 + %t521 = load { ptr, i64, i64 }, ptr %t520 + store { ptr, i64, i64 } %t521, ptr %a522 + store { ptr, i64, i64 } { ptr @.str.5623, i64 6, i64 0 }, ptr %a523 + %t524 = call i32 @finch_str_eq(ptr %a522, ptr %a523) + %t525 = icmp ne i32 %t524, 0 + br label %logic.rend8744 +logic.rend8744: + br label %logic.end8741 +logic.end8741: + %t526 = phi i1 [ false, %logic.from8739 ], [ %t525, %logic.rend8744 ] + br i1 %t526, label %then8745, label %else8746 +then8745: + %t527 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 2 + %t528 = getelementptr inbounds %S.gen.Val, ptr %t527, i32 0, i32 0 + %t529 = load { ptr, i64, i64 }, ptr %t528 + store { ptr, i64, i64 } %t529, ptr %a530 + call void @finch_str_copy(ptr %a531, ptr %a530) + %t532 = load { ptr, i64, i64 }, ptr %a531 + store { ptr, i64, i64 } %t532, ptr %a533 + %t534 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 0 + %t535 = load i1, ptr %t534 + br i1 %t535, label %then8748, label %endif8750 +then8748: + %t536 = load ptr, ptr %a1 + %t537 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 1 + %t538 = getelementptr inbounds %S.gen.Place, ptr %t537, i32 0, i32 0 + %t539 = load { ptr, i64, i64 }, ptr %t538 + %t540 = call { ptr, i64, i64 } @finch.gen.load(ptr %t536, { ptr, i64, i64 } { ptr @.str.5624, i64 3, i64 0 }, { ptr, i64, i64 } %t539) + %t541 = load { ptr, i64, i64 }, ptr %a533 + store { ptr, i64, i64 } %t540, ptr %a533 + store { ptr, i64, i64 } %t541, ptr %a542 + call void @finch_str_drop(ptr %a542) + br label %endif8750 +endif8750: + %t543 = load ptr, ptr %a1 + %t544 = load ptr, ptr %a1 + %t545 = load { ptr, i64, i64 }, ptr %a533 + store { ptr, i64, i64 } { ptr @.str.5625, i64 12, i64 0 }, ptr %a547 + store { ptr, i64, i64 } %t545, ptr %a548 + call void @finch_str_concat(ptr %a546, ptr %a547, ptr %a548) + %t549 = load { ptr, i64, i64 }, ptr %a546 + store { ptr, i64, i64 } %t549, ptr %a551 + store { ptr, i64, i64 } { ptr @.str.5626, i64 6, i64 0 }, ptr %a552 + call void @finch_str_concat(ptr %a550, ptr %a551, ptr %a552) + store { ptr, i64, i64 } %t549, ptr %a553 + call void @finch_str_drop(ptr %a553) + %t554 = load { ptr, i64, i64 }, ptr %a550 + %t555 = call { ptr, i64, i64 } @finch.gen.op(ptr %t544, { ptr, i64, i64 } %t554) + store { ptr, i64, i64 } %t554, ptr %a556 + call void @finch_str_drop(ptr %a556) + %t557 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t558 = load { ptr, i64, i64 }, ptr %t557 - store { ptr, i64, i64 } %t558, ptr %a559 - store { ptr, i64, i64 } { ptr @.str.5423, i64 4, i64 0 }, ptr %a560 - %t561 = call i32 @finch_str_eq(ptr %a559, ptr %a560) - %t562 = icmp ne i32 %t561, 0 - br label %logic.rend8354 -logic.rend8354: - br label %logic.end8353 -logic.end8353: - %t563 = phi i1 [ true, %logic.from8351 ], [ %t562, %logic.rend8354 ] - br i1 %t563, label %then8355, label %endif8357 -then8355: - %t564 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 0 - %t565 = load i1, ptr %t564 - br i1 %t565, label %then8358, label %else8359 -then8358: - %t566 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 1 - %t567 = getelementptr inbounds %S.gen.Place, ptr %t566, i32 0, i32 0 - %t568 = load { ptr, i64, i64 }, ptr %t567 - store { ptr, i64, i64 } %t568, ptr %a569 - call void @finch_str_copy(ptr %a570, ptr %a569) - %t571 = load { ptr, i64, i64 }, ptr %a570 - %t572 = load { ptr, i64, i64 }, ptr %a463 - store { ptr, i64, i64 } %t571, ptr %a463 - store { ptr, i64, i64 } %t572, ptr %a573 - call void @finch_str_drop(ptr %a573) - br label %endif8360 -else8359: - %t574 = load ptr, ptr %a1 - %t575 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 2 - %t576 = load %S.gen.Val, ptr %t575 - %t577 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t574, %S.gen.Val %t576) - %t578 = load { ptr, i64, i64 }, ptr %a463 - store { ptr, i64, i64 } %t577, ptr %a463 - store { ptr, i64, i64 } %t578, ptr %a579 - call void @finch_str_drop(ptr %a579) - store i1 true, ptr %a464 - br label %endif8360 -endif8360: - br label %endif8357 -endif8357: - br label %endif8345 -endif8345: - %t580 = getelementptr inbounds %S.ast.Type, ptr %a462, i32 0, i32 0 - %t581 = load { ptr, i64, i64 }, ptr %t580 - store { ptr, i64, i64 } %t581, ptr %a582 - store { ptr, i64, i64 } { ptr @.str.5424, i64 6, i64 0 }, ptr %a583 - %t584 = call i32 @finch_str_eq(ptr %a582, ptr %a583) - %t585 = icmp ne i32 %t584, 0 - br label %logic.from8361 -logic.from8361: - br i1 %t585, label %logic.end8363, label %logic.rhs8362 -logic.rhs8362: - %t586 = getelementptr inbounds %S.ast.Type, ptr %a462, i32 0, i32 0 - %t587 = load { ptr, i64, i64 }, ptr %t586 + store { ptr, i64, i64 } { ptr @.str.5627, i64 8, i64 0 }, ptr %a560 + store { ptr, i64, i64 } %t558, ptr %a561 + call void @finch_str_concat(ptr %a559, ptr %a560, ptr %a561) + %t562 = load { ptr, i64, i64 }, ptr %a559 + store { ptr, i64, i64 } %t562, ptr %a564 + store { ptr, i64, i64 } { ptr @.str.5628, i64 20, i64 0 }, ptr %a565 + call void @finch_str_concat(ptr %a563, ptr %a564, ptr %a565) + store { ptr, i64, i64 } %t562, ptr %a566 + call void @finch_str_drop(ptr %a566) + %t567 = load { ptr, i64, i64 }, ptr %a563 + %t568 = load %S.ast.Node, ptr %a2 + call void @finch.gen.panicIf(ptr %t543, { ptr, i64, i64 } %t555, { ptr, i64, i64 } %t567, %S.ast.Node %t568) + store { ptr, i64, i64 } %t555, ptr %a569 + call void @finch_str_drop(ptr %a569) + store { ptr, i64, i64 } %t567, ptr %a570 + call void @finch_str_drop(ptr %a570) + %t571 = getelementptr inbounds %S.ast.Type, ptr %a273, i32 0, i32 1 + %t572 = load { ptr, i64, i64 }, ptr %t571 + %t573 = extractvalue { ptr, i64, i64 } %t572, 1 + %t574 = icmp uge i64 0, %t573 + br i1 %t574, label %range8751, label %inrange8752 +range8751: + call void @finch_panic_index(ptr @.str.5629, i64 5339, i64 0, i64 %t573) + unreachable +inrange8752: + %t575 = extractvalue { ptr, i64, i64 } %t572, 0 + %t576 = getelementptr inbounds %S.ast.Type, ptr %t575, i64 0 + %t577 = load %S.ast.Type, ptr %t576 + store %S.ast.Type %t577, ptr %a578 + call void @finch.copy.S_ast_Type(ptr %a579, ptr %a578) + %t580 = load %S.ast.Type, ptr %a579 + %t581 = load %S.ast.Type, ptr %a500 + store %S.ast.Type %t580, ptr %a500 + store %S.ast.Type %t581, ptr %a582 + call void @finch.drop.S_ast_Type(ptr %a582) + %t583 = load { ptr, i64, i64 }, ptr %a533 + store { ptr, i64, i64 } %t583, ptr %a584 + call void @finch_str_copy(ptr %a585, ptr %a584) + %t586 = load { ptr, i64, i64 }, ptr %a585 + %t587 = load { ptr, i64, i64 }, ptr %a501 + store { ptr, i64, i64 } %t586, ptr %a501 store { ptr, i64, i64 } %t587, ptr %a588 - store { ptr, i64, i64 } { ptr @.str.5425, i64 4, i64 0 }, ptr %a589 - %t590 = call i32 @finch_str_eq(ptr %a588, ptr %a589) - %t591 = icmp ne i32 %t590, 0 - br label %logic.rend8364 -logic.rend8364: - br label %logic.end8363 -logic.end8363: - %t592 = phi i1 [ true, %logic.from8361 ], [ %t591, %logic.rend8364 ] - br i1 %t592, label %then8365, label %endif8367 -then8365: - %t593 = load ptr, ptr %a1 - %t594 = getelementptr inbounds %S.ast.Type, ptr %a462, i32 0, i32 3 - %t595 = load { ptr, i64, i64 }, ptr %t594 - %t596 = getelementptr inbounds %S.ast.Type, ptr %a462, i32 0, i32 2 - %t597 = load { ptr, i64, i64 }, ptr %t596 - %t598 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t599 = load { ptr, i64, i64 }, ptr %t598 - %t600 = call i64 @finch.gen.findMethod(ptr %t593, { ptr, i64, i64 } %t595, { ptr, i64, i64 } %t597, { ptr, i64, i64 } %t599) - store i64 %t600, ptr %a601 - %t602 = load i64, ptr %a601 - %t603 = icmp slt i64 %t602, 0 - br label %logic.from8368 -logic.from8368: - br i1 %t603, label %logic.rhs8369, label %logic.end8370 -logic.rhs8369: - %t604 = getelementptr inbounds %S.ast.Type, ptr %a462, i32 0, i32 0 - %t605 = load { ptr, i64, i64 }, ptr %t604 - store { ptr, i64, i64 } %t605, ptr %a606 - store { ptr, i64, i64 } { ptr @.str.5426, i64 6, i64 0 }, ptr %a607 - %t608 = call i32 @finch_str_eq(ptr %a606, ptr %a607) - %t609 = icmp ne i32 %t608, 0 - br label %logic.rend8371 -logic.rend8371: - br label %logic.end8370 -logic.end8370: - %t610 = phi i1 [ false, %logic.from8368 ], [ %t609, %logic.rend8371 ] - br i1 %t610, label %then8372, label %endif8374 -then8372: - %t611 = load ptr, ptr %a1 - %t612 = getelementptr inbounds %S.ast.Type, ptr %a462, i32 0, i32 3 - %t613 = load { ptr, i64, i64 }, ptr %t612 - %t614 = getelementptr inbounds %S.ast.Type, ptr %a462, i32 0, i32 2 - %t615 = load { ptr, i64, i64 }, ptr %t614 - %t616 = call i64 @finch.gen.findStruct(ptr %t611, { ptr, i64, i64 } %t613, { ptr, i64, i64 } %t615) - store i64 %t616, ptr %a617 - %t618 = load ptr, ptr %a1 - %t619 = icmp eq ptr %t618, null - br i1 %t619, label %panic8375, label %ok8376 -panic8375: - call void @finch_panic(ptr @.str.5427, i64 5118, ptr @.str.5428) - unreachable -ok8376: - %t620 = getelementptr inbounds %S.gen.Gen, ptr %t618, i32 0, i32 16 - %t621 = load i64, ptr %a617 - %t622 = load { ptr, i64, i64 }, ptr %t620 - %t623 = extractvalue { ptr, i64, i64 } %t622, 1 - %t624 = icmp uge i64 %t621, %t623 - br i1 %t624, label %range8377, label %inrange8378 -range8377: - call void @finch_panic_index(ptr @.str.5429, i64 5118, i64 %t621, i64 %t623) - unreachable -inrange8378: - %t625 = extractvalue { ptr, i64, i64 } %t622, 0 - %t626 = getelementptr inbounds %S.gen.StructDef, ptr %t625, i64 %t621 - %t627 = getelementptr inbounds %S.gen.StructDef, ptr %t626, i32 0, i32 5 - %t628 = getelementptr inbounds { ptr, i64, i64 }, ptr %t627, i32 0, i32 1 - %t629 = load i64, ptr %t628 - %t630 = icmp sgt i64 %t629, 0 - br i1 %t630, label %then8379, label %endif8381 -then8379: + call void @finch_str_drop(ptr %a588) + call void @finch_str_drop(ptr %a533) + br label %endif8747 +else8746: + %t589 = getelementptr inbounds %S.ast.Type, ptr %a273, i32 0, i32 0 + %t590 = load { ptr, i64, i64 }, ptr %t589 + store { ptr, i64, i64 } %t590, ptr %a591 + store { ptr, i64, i64 } { ptr @.str.5630, i64 6, i64 0 }, ptr %a592 + %t593 = call i32 @finch_str_eq(ptr %a591, ptr %a592) + %t594 = icmp ne i32 %t593, 0 + br label %logic.from8753 +logic.from8753: + br i1 %t594, label %logic.end8755, label %logic.rhs8754 +logic.rhs8754: + %t595 = getelementptr inbounds %S.ast.Type, ptr %a273, i32 0, i32 0 + %t596 = load { ptr, i64, i64 }, ptr %t595 + store { ptr, i64, i64 } %t596, ptr %a597 + store { ptr, i64, i64 } { ptr @.str.5631, i64 4, i64 0 }, ptr %a598 + %t599 = call i32 @finch_str_eq(ptr %a597, ptr %a598) + %t600 = icmp ne i32 %t599, 0 + br label %logic.rend8756 +logic.rend8756: + br label %logic.end8755 +logic.end8755: + %t601 = phi i1 [ true, %logic.from8753 ], [ %t600, %logic.rend8756 ] + br i1 %t601, label %then8757, label %endif8759 +then8757: + %t602 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 0 + %t603 = load i1, ptr %t602 + br i1 %t603, label %then8760, label %else8761 +then8760: + %t604 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 1 + %t605 = getelementptr inbounds %S.gen.Place, ptr %t604, i32 0, i32 0 + %t606 = load { ptr, i64, i64 }, ptr %t605 + store { ptr, i64, i64 } %t606, ptr %a607 + call void @finch_str_copy(ptr %a608, ptr %a607) + %t609 = load { ptr, i64, i64 }, ptr %a608 + %t610 = load { ptr, i64, i64 }, ptr %a501 + store { ptr, i64, i64 } %t609, ptr %a501 + store { ptr, i64, i64 } %t610, ptr %a611 + call void @finch_str_drop(ptr %a611) + br label %endif8762 +else8761: + %t612 = load ptr, ptr %a1 + %t613 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 2 + %t614 = load %S.gen.Val, ptr %t613 + %t615 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t612, %S.gen.Val %t614) + %t616 = load { ptr, i64, i64 }, ptr %a501 + store { ptr, i64, i64 } %t615, ptr %a501 + store { ptr, i64, i64 } %t616, ptr %a617 + call void @finch_str_drop(ptr %a617) + store i1 true, ptr %a502 + br label %endif8762 +endif8762: + br label %endif8759 +endif8759: + br label %endif8747 +endif8747: + %t618 = getelementptr inbounds %S.ast.Type, ptr %a500, i32 0, i32 0 + %t619 = load { ptr, i64, i64 }, ptr %t618 + store { ptr, i64, i64 } %t619, ptr %a620 + store { ptr, i64, i64 } { ptr @.str.5632, i64 6, i64 0 }, ptr %a621 + %t622 = call i32 @finch_str_eq(ptr %a620, ptr %a621) + %t623 = icmp ne i32 %t622, 0 + br label %logic.from8763 +logic.from8763: + br i1 %t623, label %logic.end8765, label %logic.rhs8764 +logic.rhs8764: + %t624 = getelementptr inbounds %S.ast.Type, ptr %a500, i32 0, i32 0 + %t625 = load { ptr, i64, i64 }, ptr %t624 + store { ptr, i64, i64 } %t625, ptr %a626 + store { ptr, i64, i64 } { ptr @.str.5633, i64 4, i64 0 }, ptr %a627 + %t628 = call i32 @finch_str_eq(ptr %a626, ptr %a627) + %t629 = icmp ne i32 %t628, 0 + br label %logic.rend8766 +logic.rend8766: + br label %logic.end8765 +logic.end8765: + %t630 = phi i1 [ true, %logic.from8763 ], [ %t629, %logic.rend8766 ] + br i1 %t630, label %then8767, label %endif8769 +then8767: %t631 = load ptr, ptr %a1 - %t632 = getelementptr inbounds %S.ast.Type, ptr %a462, i32 0, i32 3 + %t632 = getelementptr inbounds %S.ast.Type, ptr %a500, i32 0, i32 3 %t633 = load { ptr, i64, i64 }, ptr %t632 - %t634 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t634 = getelementptr inbounds %S.ast.Type, ptr %a500, i32 0, i32 2 %t635 = load { ptr, i64, i64 }, ptr %t634 - %t636 = load ptr, ptr %a1 - %t637 = icmp eq ptr %t636, null - br i1 %t637, label %panic8382, label %ok8383 -panic8382: - call void @finch_panic(ptr @.str.5430, i64 5119, ptr @.str.5431) + %t636 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t637 = load { ptr, i64, i64 }, ptr %t636 + %t638 = call i64 @finch.gen.findMethod(ptr %t631, { ptr, i64, i64 } %t633, { ptr, i64, i64 } %t635, { ptr, i64, i64 } %t637) + store i64 %t638, ptr %a639 + %t640 = load i64, ptr %a639 + %t641 = icmp slt i64 %t640, 0 + br label %logic.from8770 +logic.from8770: + br i1 %t641, label %logic.rhs8771, label %logic.end8772 +logic.rhs8771: + %t642 = getelementptr inbounds %S.ast.Type, ptr %a500, i32 0, i32 0 + %t643 = load { ptr, i64, i64 }, ptr %t642 + store { ptr, i64, i64 } %t643, ptr %a644 + store { ptr, i64, i64 } { ptr @.str.5634, i64 6, i64 0 }, ptr %a645 + %t646 = call i32 @finch_str_eq(ptr %a644, ptr %a645) + %t647 = icmp ne i32 %t646, 0 + br label %logic.rend8773 +logic.rend8773: + br label %logic.end8772 +logic.end8772: + %t648 = phi i1 [ false, %logic.from8770 ], [ %t647, %logic.rend8773 ] + br i1 %t648, label %then8774, label %endif8776 +then8774: + %t649 = load ptr, ptr %a1 + %t650 = getelementptr inbounds %S.ast.Type, ptr %a500, i32 0, i32 3 + %t651 = load { ptr, i64, i64 }, ptr %t650 + %t652 = getelementptr inbounds %S.ast.Type, ptr %a500, i32 0, i32 2 + %t653 = load { ptr, i64, i64 }, ptr %t652 + %t654 = call i64 @finch.gen.findStruct(ptr %t649, { ptr, i64, i64 } %t651, { ptr, i64, i64 } %t653) + store i64 %t654, ptr %a655 + %t656 = load ptr, ptr %a1 + %t657 = icmp eq ptr %t656, null + br i1 %t657, label %panic8777, label %ok8778 +panic8777: + call void @finch_panic(ptr @.str.5635, i64 5353, ptr @.str.5636) unreachable -ok8383: - %t638 = getelementptr inbounds %S.gen.Gen, ptr %t636, i32 0, i32 16 - %t639 = load i64, ptr %a617 - %t640 = load { ptr, i64, i64 }, ptr %t638 - %t641 = extractvalue { ptr, i64, i64 } %t640, 1 - %t642 = icmp uge i64 %t639, %t641 - br i1 %t642, label %range8384, label %inrange8385 -range8384: - call void @finch_panic_index(ptr @.str.5432, i64 5119, i64 %t639, i64 %t641) +ok8778: + %t658 = getelementptr inbounds %S.gen.Gen, ptr %t656, i32 0, i32 16 + %t659 = load i64, ptr %a655 + %t660 = load { ptr, i64, i64 }, ptr %t658 + %t661 = extractvalue { ptr, i64, i64 } %t660, 1 + %t662 = icmp uge i64 %t659, %t661 + br i1 %t662, label %range8779, label %inrange8780 +range8779: + call void @finch_panic_index(ptr @.str.5637, i64 5353, i64 %t659, i64 %t661) unreachable -inrange8385: - %t643 = extractvalue { ptr, i64, i64 } %t640, 0 - %t644 = getelementptr inbounds %S.gen.StructDef, ptr %t643, i64 %t639 - %t645 = getelementptr inbounds %S.gen.StructDef, ptr %t644, i32 0, i32 5 - %t646 = load { ptr, i64, i64 }, ptr %t645 - %t647 = call i64 @finch.gen.findTemplate(ptr %t631, { ptr, i64, i64 } %t633, { ptr, i64, i64 } %t635, { ptr, i64, i64 } %t646, i1 false) - store i64 %t647, ptr %a648 - %t649 = load i64, ptr %a648 - %t650 = icmp sge i64 %t649, 0 - br i1 %t650, label %then8386, label %endif8388 -then8386: - %t651 = load ptr, ptr %a1 - %t652 = load i64, ptr %a648 - %t653 = load ptr, ptr %a1 - %t654 = icmp eq ptr %t653, null - br i1 %t654, label %panic8389, label %ok8390 -panic8389: - call void @finch_panic(ptr @.str.5433, i64 5121, ptr @.str.5434) +inrange8780: + %t663 = extractvalue { ptr, i64, i64 } %t660, 0 + %t664 = getelementptr inbounds %S.gen.StructDef, ptr %t663, i64 %t659 + %t665 = getelementptr inbounds %S.gen.StructDef, ptr %t664, i32 0, i32 5 + %t666 = getelementptr inbounds { ptr, i64, i64 }, ptr %t665, i32 0, i32 1 + %t667 = load i64, ptr %t666 + %t668 = icmp sgt i64 %t667, 0 + br i1 %t668, label %then8781, label %endif8783 +then8781: + %t669 = load ptr, ptr %a1 + %t670 = getelementptr inbounds %S.ast.Type, ptr %a500, i32 0, i32 3 + %t671 = load { ptr, i64, i64 }, ptr %t670 + %t672 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t673 = load { ptr, i64, i64 }, ptr %t672 + %t674 = load ptr, ptr %a1 + %t675 = icmp eq ptr %t674, null + br i1 %t675, label %panic8784, label %ok8785 +panic8784: + call void @finch_panic(ptr @.str.5638, i64 5354, ptr @.str.5639) unreachable -ok8390: - %t655 = getelementptr inbounds %S.gen.Gen, ptr %t653, i32 0, i32 16 - %t656 = load i64, ptr %a617 - %t657 = load { ptr, i64, i64 }, ptr %t655 - %t658 = extractvalue { ptr, i64, i64 } %t657, 1 - %t659 = icmp uge i64 %t656, %t658 - br i1 %t659, label %range8391, label %inrange8392 -range8391: - call void @finch_panic_index(ptr @.str.5435, i64 5121, i64 %t656, i64 %t658) +ok8785: + %t676 = getelementptr inbounds %S.gen.Gen, ptr %t674, i32 0, i32 16 + %t677 = load i64, ptr %a655 + %t678 = load { ptr, i64, i64 }, ptr %t676 + %t679 = extractvalue { ptr, i64, i64 } %t678, 1 + %t680 = icmp uge i64 %t677, %t679 + br i1 %t680, label %range8786, label %inrange8787 +range8786: + call void @finch_panic_index(ptr @.str.5640, i64 5354, i64 %t677, i64 %t679) unreachable -inrange8392: - %t660 = extractvalue { ptr, i64, i64 } %t657, 0 - %t661 = getelementptr inbounds %S.gen.StructDef, ptr %t660, i64 %t656 - %t662 = getelementptr inbounds %S.gen.StructDef, ptr %t661, i32 0, i32 7 - %t663 = load { ptr, i64, i64 }, ptr %t662 - %t664 = load %S.ast.Type, ptr %a462 - %t665 = load %S.ast.Node, ptr %a2 - %t666 = call i64 @finch.gen.instFn(ptr %t651, i64 %t652, { ptr, i64, i64 } %t663, %S.ast.Type %t664, %S.ast.Node %t665) - store i64 %t666, ptr %a601 - br label %endif8388 -endif8388: - br label %endif8381 -endif8381: - br label %endif8374 -endif8374: - %t667 = load i64, ptr %a601 - %t668 = icmp slt i64 %t667, 0 - br i1 %t668, label %then8393, label %endif8395 -then8393: - store { ptr, i64, i64 } zeroinitializer, ptr %a669 - %t670 = load ptr, ptr %a1 - %t671 = icmp eq ptr %t670, null - br i1 %t671, label %panic8396, label %ok8397 -panic8396: - call void @finch_panic(ptr @.str.5436, i64 5127, ptr @.str.5437) +inrange8787: + %t681 = extractvalue { ptr, i64, i64 } %t678, 0 + %t682 = getelementptr inbounds %S.gen.StructDef, ptr %t681, i64 %t677 + %t683 = getelementptr inbounds %S.gen.StructDef, ptr %t682, i32 0, i32 5 + %t684 = load { ptr, i64, i64 }, ptr %t683 + %t685 = call i64 @finch.gen.findTemplate(ptr %t669, { ptr, i64, i64 } %t671, { ptr, i64, i64 } %t673, { ptr, i64, i64 } %t684, i1 false) + store i64 %t685, ptr %a686 + %t687 = load i64, ptr %a686 + %t688 = icmp sge i64 %t687, 0 + br i1 %t688, label %then8788, label %endif8790 +then8788: + %t689 = load ptr, ptr %a1 + %t690 = load i64, ptr %a686 + %t691 = load ptr, ptr %a1 + %t692 = icmp eq ptr %t691, null + br i1 %t692, label %panic8791, label %ok8792 +panic8791: + call void @finch_panic(ptr @.str.5641, i64 5356, ptr @.str.5642) unreachable -ok8397: - %t672 = getelementptr inbounds %S.gen.Gen, ptr %t670, i32 0, i32 15 - store i64 0, ptr %a673 - br label %each.cond8398 -each.cond8398: - %t674 = getelementptr inbounds { ptr, i64, i64 }, ptr %t672, i32 0, i32 1 - %t675 = load i64, ptr %t674 - %t676 = load i64, ptr %a673 - %t677 = icmp slt i64 %t676, %t675 - br i1 %t677, label %each.body8399, label %each.end8401 -each.body8399: - %t678 = load ptr, ptr %t672 - %t679 = getelementptr inbounds %S.gen.FnSig, ptr %t678, i64 %t676 - %t680 = load %S.gen.FnSig, ptr %t679 - store %S.gen.FnSig %t680, ptr %a681 - %t682 = getelementptr inbounds %S.gen.FnSig, ptr %a681, i32 0, i32 2 - %t683 = load { ptr, i64, i64 }, ptr %t682 - %t684 = getelementptr inbounds %S.ast.Type, ptr %a462, i32 0, i32 2 - %t685 = load { ptr, i64, i64 }, ptr %t684 - store { ptr, i64, i64 } %t683, ptr %a686 - store { ptr, i64, i64 } %t685, ptr %a687 - %t688 = call i32 @finch_str_eq(ptr %a686, ptr %a687) - %t689 = icmp ne i32 %t688, 0 - br label %logic.from8402 -logic.from8402: - br i1 %t689, label %logic.rhs8403, label %logic.end8404 -logic.rhs8403: - %t690 = getelementptr inbounds %S.gen.FnSig, ptr %a681, i32 0, i32 3 - %t691 = load { ptr, i64, i64 }, ptr %t690 - %t692 = getelementptr inbounds %S.ast.Type, ptr %a462, i32 0, i32 3 - %t693 = load { ptr, i64, i64 }, ptr %t692 - store { ptr, i64, i64 } %t691, ptr %a694 - store { ptr, i64, i64 } %t693, ptr %a695 - %t696 = call i32 @finch_str_eq(ptr %a694, ptr %a695) - %t697 = icmp ne i32 %t696, 0 - br label %logic.rend8405 -logic.rend8405: - br label %logic.end8404 -logic.end8404: - %t698 = phi i1 [ false, %logic.from8402 ], [ %t697, %logic.rend8405 ] - br i1 %t698, label %then8406, label %endif8408 -then8406: - %t699 = getelementptr inbounds { ptr, i64, i64 }, ptr %a669, i32 0, i32 1 - %t700 = getelementptr inbounds %S.gen.FnSig, ptr %a681, i32 0, i32 1 +ok8792: + %t693 = getelementptr inbounds %S.gen.Gen, ptr %t691, i32 0, i32 16 + %t694 = load i64, ptr %a655 + %t695 = load { ptr, i64, i64 }, ptr %t693 + %t696 = extractvalue { ptr, i64, i64 } %t695, 1 + %t697 = icmp uge i64 %t694, %t696 + br i1 %t697, label %range8793, label %inrange8794 +range8793: + call void @finch_panic_index(ptr @.str.5643, i64 5356, i64 %t694, i64 %t696) + unreachable +inrange8794: + %t698 = extractvalue { ptr, i64, i64 } %t695, 0 + %t699 = getelementptr inbounds %S.gen.StructDef, ptr %t698, i64 %t694 + %t700 = getelementptr inbounds %S.gen.StructDef, ptr %t699, i32 0, i32 7 %t701 = load { ptr, i64, i64 }, ptr %t700 - store { ptr, i64, i64 } %t701, ptr %a702 - call void @finch_str_copy(ptr %a703, ptr %a702) - %t704 = load { ptr, i64, i64 }, ptr %a703 - %t705 = load i64, ptr %t699 - %t706 = add i64 %t705, 1 - call void @finch_arr_reserve(ptr %a669, i64 %t706, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) - %t707 = load ptr, ptr %a669 - %t708 = getelementptr inbounds { ptr, i64, i64 }, ptr %t707, i64 %t705 - store { ptr, i64, i64 } %t704, ptr %t708 - store i64 %t706, ptr %t699 - br label %endif8408 -endif8408: - br label %each.step8400 -each.step8400: - %t709 = load i64, ptr %a673 - %t710 = add i64 %t709, 1 - store i64 %t710, ptr %a673 - br label %each.cond8398 -each.end8401: - %t711 = getelementptr inbounds { ptr, i64, i64 }, ptr %a669, i32 0, i32 1 - %t712 = load i64, ptr %t711 - %t713 = icmp eq i64 %t712, 0 - br i1 %t713, label %then8409, label %endif8411 -then8409: - %t714 = load ptr, ptr %a1 - %t715 = load %S.ast.Node, ptr %a2 - %t716 = getelementptr inbounds %S.ast.Type, ptr %a462, i32 0, i32 0 - %t717 = load { ptr, i64, i64 }, ptr %t716 - store { ptr, i64, i64 } { ptr @.str.5438, i64 4, i64 0 }, ptr %a719 - store { ptr, i64, i64 } %t717, ptr %a720 - call void @finch_str_concat(ptr %a718, ptr %a719, ptr %a720) - %t721 = load { ptr, i64, i64 }, ptr %a718 - store { ptr, i64, i64 } %t721, ptr %a723 - store { ptr, i64, i64 } { ptr @.str.5439, i64 1, i64 0 }, ptr %a724 - call void @finch_str_concat(ptr %a722, ptr %a723, ptr %a724) - store { ptr, i64, i64 } %t721, ptr %a725 - call void @finch_str_drop(ptr %a725) - %t726 = load { ptr, i64, i64 }, ptr %a722 - %t727 = load %S.ast.Type, ptr %a462 - %t728 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t727) - store { ptr, i64, i64 } %t726, ptr %a730 - store { ptr, i64, i64 } %t728, ptr %a731 - call void @finch_str_concat(ptr %a729, ptr %a730, ptr %a731) - store { ptr, i64, i64 } %t726, ptr %a732 - call void @finch_str_drop(ptr %a732) - store { ptr, i64, i64 } %t728, ptr %a733 - call void @finch_str_drop(ptr %a733) - %t734 = load { ptr, i64, i64 }, ptr %a729 - store { ptr, i64, i64 } %t734, ptr %a736 - store { ptr, i64, i64 } { ptr @.str.5440, i64 34, i64 0 }, ptr %a737 - call void @finch_str_concat(ptr %a735, ptr %a736, ptr %a737) - store { ptr, i64, i64 } %t734, ptr %a738 - call void @finch_str_drop(ptr %a738) - %t739 = load { ptr, i64, i64 }, ptr %a735 - %t740 = getelementptr inbounds %S.ast.Type, ptr %a462, i32 0, i32 2 - %t741 = load { ptr, i64, i64 }, ptr %t740 - store { ptr, i64, i64 } %t739, ptr %a743 - store { ptr, i64, i64 } %t741, ptr %a744 - call void @finch_str_concat(ptr %a742, ptr %a743, ptr %a744) - store { ptr, i64, i64 } %t739, ptr %a745 - call void @finch_str_drop(ptr %a745) - %t746 = load { ptr, i64, i64 }, ptr %a742 - store { ptr, i64, i64 } %t746, ptr %a748 - store { ptr, i64, i64 } { ptr @.str.5441, i64 1, i64 0 }, ptr %a749 - call void @finch_str_concat(ptr %a747, ptr %a748, ptr %a749) - store { ptr, i64, i64 } %t746, ptr %a750 - call void @finch_str_drop(ptr %a750) - %t751 = load { ptr, i64, i64 }, ptr %a747 - %t752 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t753 = load { ptr, i64, i64 }, ptr %t752 - store { ptr, i64, i64 } %t751, ptr %a755 - store { ptr, i64, i64 } %t753, ptr %a756 - call void @finch_str_concat(ptr %a754, ptr %a755, ptr %a756) - store { ptr, i64, i64 } %t751, ptr %a757 - call void @finch_str_drop(ptr %a757) - %t758 = load { ptr, i64, i64 }, ptr %a754 - store { ptr, i64, i64 } %t758, ptr %a760 - store { ptr, i64, i64 } { ptr @.str.5442, i64 13, i64 0 }, ptr %a761 - call void @finch_str_concat(ptr %a759, ptr %a760, ptr %a761) - store { ptr, i64, i64 } %t758, ptr %a762 - call void @finch_str_drop(ptr %a762) - %t763 = load { ptr, i64, i64 }, ptr %a759 - call void @finch.gen.fail(ptr %t714, %S.ast.Node %t715, { ptr, i64, i64 } %t763) - store { ptr, i64, i64 } %t763, ptr %a764 - call void @finch_str_drop(ptr %a764) - br label %endif8411 -endif8411: - %t765 = load ptr, ptr %a1 - %t766 = load %S.ast.Node, ptr %a2 - %t767 = getelementptr inbounds %S.ast.Type, ptr %a462, i32 0, i32 0 - %t768 = load { ptr, i64, i64 }, ptr %t767 - store { ptr, i64, i64 } { ptr @.str.5443, i64 4, i64 0 }, ptr %a770 - store { ptr, i64, i64 } %t768, ptr %a771 - call void @finch_str_concat(ptr %a769, ptr %a770, ptr %a771) - %t772 = load { ptr, i64, i64 }, ptr %a769 + %t702 = load %S.ast.Type, ptr %a500 + %t703 = load %S.ast.Node, ptr %a2 + %t704 = call i64 @finch.gen.instFn(ptr %t689, i64 %t690, { ptr, i64, i64 } %t701, %S.ast.Type %t702, %S.ast.Node %t703) + store i64 %t704, ptr %a639 + br label %endif8790 +endif8790: + br label %endif8783 +endif8783: + br label %endif8776 +endif8776: + %t705 = load i64, ptr %a639 + %t706 = icmp slt i64 %t705, 0 + br i1 %t706, label %then8795, label %endif8797 +then8795: + store { ptr, i64, i64 } zeroinitializer, ptr %a707 + %t708 = load ptr, ptr %a1 + %t709 = icmp eq ptr %t708, null + br i1 %t709, label %panic8798, label %ok8799 +panic8798: + call void @finch_panic(ptr @.str.5644, i64 5362, ptr @.str.5645) + unreachable +ok8799: + %t710 = getelementptr inbounds %S.gen.Gen, ptr %t708, i32 0, i32 15 + store i64 0, ptr %a711 + br label %each.cond8800 +each.cond8800: + %t712 = getelementptr inbounds { ptr, i64, i64 }, ptr %t710, i32 0, i32 1 + %t713 = load i64, ptr %t712 + %t714 = load i64, ptr %a711 + %t715 = icmp slt i64 %t714, %t713 + br i1 %t715, label %each.body8801, label %each.end8803 +each.body8801: + %t716 = load ptr, ptr %t710 + %t717 = getelementptr inbounds %S.gen.FnSig, ptr %t716, i64 %t714 + %t718 = load %S.gen.FnSig, ptr %t717 + store %S.gen.FnSig %t718, ptr %a719 + %t720 = getelementptr inbounds %S.gen.FnSig, ptr %a719, i32 0, i32 2 + %t721 = load { ptr, i64, i64 }, ptr %t720 + %t722 = getelementptr inbounds %S.ast.Type, ptr %a500, i32 0, i32 2 + %t723 = load { ptr, i64, i64 }, ptr %t722 + store { ptr, i64, i64 } %t721, ptr %a724 + store { ptr, i64, i64 } %t723, ptr %a725 + %t726 = call i32 @finch_str_eq(ptr %a724, ptr %a725) + %t727 = icmp ne i32 %t726, 0 + br label %logic.from8804 +logic.from8804: + br i1 %t727, label %logic.rhs8805, label %logic.end8806 +logic.rhs8805: + %t728 = getelementptr inbounds %S.gen.FnSig, ptr %a719, i32 0, i32 3 + %t729 = load { ptr, i64, i64 }, ptr %t728 + %t730 = getelementptr inbounds %S.ast.Type, ptr %a500, i32 0, i32 3 + %t731 = load { ptr, i64, i64 }, ptr %t730 + store { ptr, i64, i64 } %t729, ptr %a732 + store { ptr, i64, i64 } %t731, ptr %a733 + %t734 = call i32 @finch_str_eq(ptr %a732, ptr %a733) + %t735 = icmp ne i32 %t734, 0 + br label %logic.rend8807 +logic.rend8807: + br label %logic.end8806 +logic.end8806: + %t736 = phi i1 [ false, %logic.from8804 ], [ %t735, %logic.rend8807 ] + br i1 %t736, label %then8808, label %endif8810 +then8808: + %t737 = getelementptr inbounds { ptr, i64, i64 }, ptr %a707, i32 0, i32 1 + %t738 = getelementptr inbounds %S.gen.FnSig, ptr %a719, i32 0, i32 1 + %t739 = load { ptr, i64, i64 }, ptr %t738 + store { ptr, i64, i64 } %t739, ptr %a740 + call void @finch_str_copy(ptr %a741, ptr %a740) + %t742 = load { ptr, i64, i64 }, ptr %a741 + %t743 = load i64, ptr %t737 + %t744 = add i64 %t743, 1 + call void @finch_arr_reserve(ptr %a707, i64 %t744, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t745 = load ptr, ptr %a707 + %t746 = getelementptr inbounds { ptr, i64, i64 }, ptr %t745, i64 %t743 + store { ptr, i64, i64 } %t742, ptr %t746 + store i64 %t744, ptr %t737 + br label %endif8810 +endif8810: + br label %each.step8802 +each.step8802: + %t747 = load i64, ptr %a711 + %t748 = add i64 %t747, 1 + store i64 %t748, ptr %a711 + br label %each.cond8800 +each.end8803: + %t749 = getelementptr inbounds { ptr, i64, i64 }, ptr %a707, i32 0, i32 1 + %t750 = load i64, ptr %t749 + %t751 = icmp eq i64 %t750, 0 + br i1 %t751, label %then8811, label %endif8813 +then8811: + %t752 = load ptr, ptr %a1 + %t753 = load %S.ast.Node, ptr %a2 + %t754 = getelementptr inbounds %S.ast.Type, ptr %a500, i32 0, i32 0 + %t755 = load { ptr, i64, i64 }, ptr %t754 + store { ptr, i64, i64 } { ptr @.str.5646, i64 4, i64 0 }, ptr %a757 + store { ptr, i64, i64 } %t755, ptr %a758 + call void @finch_str_concat(ptr %a756, ptr %a757, ptr %a758) + %t759 = load { ptr, i64, i64 }, ptr %a756 + store { ptr, i64, i64 } %t759, ptr %a761 + store { ptr, i64, i64 } { ptr @.str.5647, i64 1, i64 0 }, ptr %a762 + call void @finch_str_concat(ptr %a760, ptr %a761, ptr %a762) + store { ptr, i64, i64 } %t759, ptr %a763 + call void @finch_str_drop(ptr %a763) + %t764 = load { ptr, i64, i64 }, ptr %a760 + %t765 = load %S.ast.Type, ptr %a500 + %t766 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t765) + store { ptr, i64, i64 } %t764, ptr %a768 + store { ptr, i64, i64 } %t766, ptr %a769 + call void @finch_str_concat(ptr %a767, ptr %a768, ptr %a769) + store { ptr, i64, i64 } %t764, ptr %a770 + call void @finch_str_drop(ptr %a770) + store { ptr, i64, i64 } %t766, ptr %a771 + call void @finch_str_drop(ptr %a771) + %t772 = load { ptr, i64, i64 }, ptr %a767 store { ptr, i64, i64 } %t772, ptr %a774 - store { ptr, i64, i64 } { ptr @.str.5444, i64 1, i64 0 }, ptr %a775 + store { ptr, i64, i64 } { ptr @.str.5648, i64 34, i64 0 }, ptr %a775 call void @finch_str_concat(ptr %a773, ptr %a774, ptr %a775) store { ptr, i64, i64 } %t772, ptr %a776 call void @finch_str_drop(ptr %a776) %t777 = load { ptr, i64, i64 }, ptr %a773 - %t778 = load %S.ast.Type, ptr %a462 - %t779 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t778) + %t778 = getelementptr inbounds %S.ast.Type, ptr %a500, i32 0, i32 2 + %t779 = load { ptr, i64, i64 }, ptr %t778 store { ptr, i64, i64 } %t777, ptr %a781 store { ptr, i64, i64 } %t779, ptr %a782 call void @finch_str_concat(ptr %a780, ptr %a781, ptr %a782) store { ptr, i64, i64 } %t777, ptr %a783 call void @finch_str_drop(ptr %a783) - store { ptr, i64, i64 } %t779, ptr %a784 - call void @finch_str_drop(ptr %a784) - %t785 = load { ptr, i64, i64 }, ptr %a780 - store { ptr, i64, i64 } %t785, ptr %a787 - store { ptr, i64, i64 } { ptr @.str.5445, i64 16, i64 0 }, ptr %a788 - call void @finch_str_concat(ptr %a786, ptr %a787, ptr %a788) - store { ptr, i64, i64 } %t785, ptr %a789 - call void @finch_str_drop(ptr %a789) - %t790 = load { ptr, i64, i64 }, ptr %a786 - %t791 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t792 = load { ptr, i64, i64 }, ptr %t791 - store { ptr, i64, i64 } %t790, ptr %a794 - store { ptr, i64, i64 } %t792, ptr %a795 - call void @finch_str_concat(ptr %a793, ptr %a794, ptr %a795) - store { ptr, i64, i64 } %t790, ptr %a796 - call void @finch_str_drop(ptr %a796) - %t797 = load { ptr, i64, i64 }, ptr %a793 - store { ptr, i64, i64 } %t797, ptr %a799 - store { ptr, i64, i64 } { ptr @.str.5446, i64 11, i64 0 }, ptr %a800 - call void @finch_str_concat(ptr %a798, ptr %a799, ptr %a800) - store { ptr, i64, i64 } %t797, ptr %a801 - call void @finch_str_drop(ptr %a801) - %t802 = load { ptr, i64, i64 }, ptr %a798 - %t803 = getelementptr inbounds { ptr, i64, i64 }, ptr %a669, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.5447, i64 2, i64 0 }, ptr %a804 - call void @finch_str_join(ptr %a805, ptr %a669, ptr %a804) - %t806 = load { ptr, i64, i64 }, ptr %a805 - store { ptr, i64, i64 } %t802, ptr %a808 + %t784 = load { ptr, i64, i64 }, ptr %a780 + store { ptr, i64, i64 } %t784, ptr %a786 + store { ptr, i64, i64 } { ptr @.str.5649, i64 1, i64 0 }, ptr %a787 + call void @finch_str_concat(ptr %a785, ptr %a786, ptr %a787) + store { ptr, i64, i64 } %t784, ptr %a788 + call void @finch_str_drop(ptr %a788) + %t789 = load { ptr, i64, i64 }, ptr %a785 + %t790 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t791 = load { ptr, i64, i64 }, ptr %t790 + store { ptr, i64, i64 } %t789, ptr %a793 + store { ptr, i64, i64 } %t791, ptr %a794 + call void @finch_str_concat(ptr %a792, ptr %a793, ptr %a794) + store { ptr, i64, i64 } %t789, ptr %a795 + call void @finch_str_drop(ptr %a795) + %t796 = load { ptr, i64, i64 }, ptr %a792 + store { ptr, i64, i64 } %t796, ptr %a798 + store { ptr, i64, i64 } { ptr @.str.5650, i64 13, i64 0 }, ptr %a799 + call void @finch_str_concat(ptr %a797, ptr %a798, ptr %a799) + store { ptr, i64, i64 } %t796, ptr %a800 + call void @finch_str_drop(ptr %a800) + %t801 = load { ptr, i64, i64 }, ptr %a797 + call void @finch.gen.fail(ptr %t752, %S.ast.Node %t753, { ptr, i64, i64 } %t801) + store { ptr, i64, i64 } %t801, ptr %a802 + call void @finch_str_drop(ptr %a802) + br label %endif8813 +endif8813: + %t803 = load ptr, ptr %a1 + %t804 = load %S.ast.Node, ptr %a2 + %t805 = getelementptr inbounds %S.ast.Type, ptr %a500, i32 0, i32 0 + %t806 = load { ptr, i64, i64 }, ptr %t805 + store { ptr, i64, i64 } { ptr @.str.5651, i64 4, i64 0 }, ptr %a808 store { ptr, i64, i64 } %t806, ptr %a809 call void @finch_str_concat(ptr %a807, ptr %a808, ptr %a809) - store { ptr, i64, i64 } %t802, ptr %a810 - call void @finch_str_drop(ptr %a810) - store { ptr, i64, i64 } %t806, ptr %a811 - call void @finch_str_drop(ptr %a811) - %t812 = load { ptr, i64, i64 }, ptr %a807 - store { ptr, i64, i64 } %t812, ptr %a814 - store { ptr, i64, i64 } { ptr @.str.5448, i64 1, i64 0 }, ptr %a815 - call void @finch_str_concat(ptr %a813, ptr %a814, ptr %a815) - store { ptr, i64, i64 } %t812, ptr %a816 - call void @finch_str_drop(ptr %a816) - %t817 = load { ptr, i64, i64 }, ptr %a813 - call void @finch.gen.fail(ptr %t765, %S.ast.Node %t766, { ptr, i64, i64 } %t817) - store { ptr, i64, i64 } %t817, ptr %a818 - call void @finch_str_drop(ptr %a818) - call void @finch.drop.arr_str(ptr %a669) - br label %endif8395 -endif8395: - %t819 = load ptr, ptr %a1 - %t820 = icmp eq ptr %t819, null - br i1 %t820, label %panic8412, label %ok8413 -panic8412: - call void @finch_panic(ptr @.str.5449, i64 5138, ptr @.str.5450) - unreachable -ok8413: - %t821 = getelementptr inbounds %S.gen.Gen, ptr %t819, i32 0, i32 15 - %t822 = load i64, ptr %a601 - %t823 = load { ptr, i64, i64 }, ptr %t821 - %t824 = extractvalue { ptr, i64, i64 } %t823, 1 - %t825 = icmp uge i64 %t822, %t824 - br i1 %t825, label %range8414, label %inrange8415 -range8414: - call void @finch_panic_index(ptr @.str.5451, i64 5138, i64 %t822, i64 %t824) - unreachable -inrange8415: - %t826 = extractvalue { ptr, i64, i64 } %t823, 0 - %t827 = getelementptr inbounds %S.gen.FnSig, ptr %t826, i64 %t822 - %t828 = getelementptr inbounds %S.gen.FnSig, ptr %t827, i32 0, i32 10 - %t829 = load i1, ptr %t828 - br label %logic.from8416 -logic.from8416: - br i1 %t829, label %logic.rhs8417, label %logic.end8418 -logic.rhs8417: - %t830 = getelementptr inbounds %S.ast.Type, ptr %a235, i32 0, i32 0 - %t831 = load { ptr, i64, i64 }, ptr %t830 - store { ptr, i64, i64 } %t831, ptr %a832 - store { ptr, i64, i64 } { ptr @.str.5452, i64 6, i64 0 }, ptr %a833 - %t834 = call i32 @finch_str_eq(ptr %a832, ptr %a833) - %t835 = icmp ne i32 %t834, 0 - br label %logic.from8419 -logic.from8419: - br i1 %t835, label %logic.end8421, label %logic.rhs8420 -logic.rhs8420: - %t836 = getelementptr inbounds %S.ast.Type, ptr %a235, i32 0, i32 0 - %t837 = load { ptr, i64, i64 }, ptr %t836 - store { ptr, i64, i64 } %t837, ptr %a838 - store { ptr, i64, i64 } { ptr @.str.5453, i64 4, i64 0 }, ptr %a839 - %t840 = call i32 @finch_str_eq(ptr %a838, ptr %a839) - %t841 = icmp ne i32 %t840, 0 - br label %logic.rend8422 -logic.rend8422: - br label %logic.end8421 -logic.end8421: - %t842 = phi i1 [ true, %logic.from8419 ], [ %t841, %logic.rend8422 ] - br label %logic.rend8423 -logic.rend8423: - br label %logic.end8418 -logic.end8418: - %t843 = phi i1 [ false, %logic.from8416 ], [ %t842, %logic.rend8423 ] - br i1 %t843, label %then8424, label %endif8426 -then8424: - %t844 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 0 - %t845 = load i1, ptr %t844 - %t846 = xor i1 %t845, true - br i1 %t846, label %then8427, label %endif8429 -then8427: - %t847 = load ptr, ptr %a1 - %t848 = load %S.ast.Node, ptr %a2 - %t849 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t850 = load { ptr, i64, i64 }, ptr %t849 + %t810 = load { ptr, i64, i64 }, ptr %a807 + store { ptr, i64, i64 } %t810, ptr %a812 + store { ptr, i64, i64 } { ptr @.str.5652, i64 1, i64 0 }, ptr %a813 + call void @finch_str_concat(ptr %a811, ptr %a812, ptr %a813) + store { ptr, i64, i64 } %t810, ptr %a814 + call void @finch_str_drop(ptr %a814) + %t815 = load { ptr, i64, i64 }, ptr %a811 + %t816 = load %S.ast.Type, ptr %a500 + %t817 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t816) + store { ptr, i64, i64 } %t815, ptr %a819 + store { ptr, i64, i64 } %t817, ptr %a820 + call void @finch_str_concat(ptr %a818, ptr %a819, ptr %a820) + store { ptr, i64, i64 } %t815, ptr %a821 + call void @finch_str_drop(ptr %a821) + store { ptr, i64, i64 } %t817, ptr %a822 + call void @finch_str_drop(ptr %a822) + %t823 = load { ptr, i64, i64 }, ptr %a818 + store { ptr, i64, i64 } %t823, ptr %a825 + store { ptr, i64, i64 } { ptr @.str.5653, i64 16, i64 0 }, ptr %a826 + call void @finch_str_concat(ptr %a824, ptr %a825, ptr %a826) + store { ptr, i64, i64 } %t823, ptr %a827 + call void @finch_str_drop(ptr %a827) + %t828 = load { ptr, i64, i64 }, ptr %a824 + %t829 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t830 = load { ptr, i64, i64 }, ptr %t829 + store { ptr, i64, i64 } %t828, ptr %a832 + store { ptr, i64, i64 } %t830, ptr %a833 + call void @finch_str_concat(ptr %a831, ptr %a832, ptr %a833) + store { ptr, i64, i64 } %t828, ptr %a834 + call void @finch_str_drop(ptr %a834) + %t835 = load { ptr, i64, i64 }, ptr %a831 + store { ptr, i64, i64 } %t835, ptr %a837 + store { ptr, i64, i64 } { ptr @.str.5654, i64 11, i64 0 }, ptr %a838 + call void @finch_str_concat(ptr %a836, ptr %a837, ptr %a838) + store { ptr, i64, i64 } %t835, ptr %a839 + call void @finch_str_drop(ptr %a839) + %t840 = load { ptr, i64, i64 }, ptr %a836 + %t841 = getelementptr inbounds { ptr, i64, i64 }, ptr %a707, i32 0, i32 1 + store { ptr, i64, i64 } { ptr @.str.5655, i64 2, i64 0 }, ptr %a842 + call void @finch_str_join(ptr %a843, ptr %a707, ptr %a842) + %t844 = load { ptr, i64, i64 }, ptr %a843 + store { ptr, i64, i64 } %t840, ptr %a846 + store { ptr, i64, i64 } %t844, ptr %a847 + call void @finch_str_concat(ptr %a845, ptr %a846, ptr %a847) + store { ptr, i64, i64 } %t840, ptr %a848 + call void @finch_str_drop(ptr %a848) + store { ptr, i64, i64 } %t844, ptr %a849 + call void @finch_str_drop(ptr %a849) + %t850 = load { ptr, i64, i64 }, ptr %a845 store { ptr, i64, i64 } %t850, ptr %a852 - store { ptr, i64, i64 } { ptr @.str.5454, i64 28, i64 0 }, ptr %a853 + store { ptr, i64, i64 } { ptr @.str.5656, i64 1, i64 0 }, ptr %a853 call void @finch_str_concat(ptr %a851, ptr %a852, ptr %a853) - %t854 = load { ptr, i64, i64 }, ptr %a851 - %t855 = load %S.ast.Type, ptr %a462 - %t856 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t855) - store { ptr, i64, i64 } %t854, ptr %a858 - store { ptr, i64, i64 } %t856, ptr %a859 - call void @finch_str_concat(ptr %a857, ptr %a858, ptr %a859) - store { ptr, i64, i64 } %t854, ptr %a860 - call void @finch_str_drop(ptr %a860) - store { ptr, i64, i64 } %t856, ptr %a861 - call void @finch_str_drop(ptr %a861) - %t862 = load { ptr, i64, i64 }, ptr %a857 - store { ptr, i64, i64 } %t862, ptr %a864 - store { ptr, i64, i64 } { ptr @.str.5455, i64 30, i64 0 }, ptr %a865 - call void @finch_str_concat(ptr %a863, ptr %a864, ptr %a865) - store { ptr, i64, i64 } %t862, ptr %a866 - call void @finch_str_drop(ptr %a866) - %t867 = load { ptr, i64, i64 }, ptr %a863 - call void @finch.gen.fail(ptr %t847, %S.ast.Node %t848, { ptr, i64, i64 } %t867) - store { ptr, i64, i64 } %t867, ptr %a868 - call void @finch_str_drop(ptr %a868) - br label %endif8429 -endif8429: - %t869 = load %S.ast.Node, ptr %a13 - %t870 = call { ptr, i64, i64 } @finch.gen.rootVar(%S.ast.Node %t869) - store { ptr, i64, i64 } %t870, ptr %a871 - %t872 = getelementptr inbounds { ptr, i64, i64 }, ptr %a871, i32 0, i32 1 - %t873 = load i64, ptr %t872 - %t874 = icmp sgt i64 %t873, 0 - br i1 %t874, label %then8430, label %endif8432 -then8430: - %t875 = load ptr, ptr %a1 - %t876 = load { ptr, i64, i64 }, ptr %a871 - %t877 = call i64 @finch.gen.lookup(ptr %t875, { ptr, i64, i64 } %t876) - store i64 %t877, ptr %a878 - %t879 = load i64, ptr %a878 - %t880 = icmp sge i64 %t879, 0 - br label %logic.from8433 -logic.from8433: - br i1 %t880, label %logic.rhs8434, label %logic.end8435 -logic.rhs8434: - %t881 = load ptr, ptr %a1 - %t882 = load i64, ptr %a878 - %t883 = call %S.gen.Var @finch.gen.varAt(ptr %t881, i64 %t882) - %t884 = extractvalue %S.gen.Var %t883, 3 - store %S.gen.Var %t883, ptr %a885 - call void @finch.drop.S_gen_Var(ptr %a885) - br label %logic.rend8436 -logic.rend8436: - br label %logic.end8435 -logic.end8435: - %t886 = phi i1 [ false, %logic.from8433 ], [ %t884, %logic.rend8436 ] - br i1 %t886, label %then8437, label %endif8439 -then8437: - %t887 = load ptr, ptr %a1 - %t888 = load %S.ast.Node, ptr %a2 - %t889 = load { ptr, i64, i64 }, ptr %a871 - store { ptr, i64, i64 } { ptr @.str.5456, i64 19, i64 0 }, ptr %a891 - store { ptr, i64, i64 } %t889, ptr %a892 - call void @finch_str_concat(ptr %a890, ptr %a891, ptr %a892) - %t893 = load { ptr, i64, i64 }, ptr %a890 - store { ptr, i64, i64 } %t893, ptr %a895 - store { ptr, i64, i64 } { ptr @.str.5457, i64 18, i64 0 }, ptr %a896 - call void @finch_str_concat(ptr %a894, ptr %a895, ptr %a896) - store { ptr, i64, i64 } %t893, ptr %a897 - call void @finch_str_drop(ptr %a897) - %t898 = load { ptr, i64, i64 }, ptr %a894 - call void @finch.gen.fail(ptr %t887, %S.ast.Node %t888, { ptr, i64, i64 } %t898) - store { ptr, i64, i64 } %t898, ptr %a899 + store { ptr, i64, i64 } %t850, ptr %a854 + call void @finch_str_drop(ptr %a854) + %t855 = load { ptr, i64, i64 }, ptr %a851 + call void @finch.gen.fail(ptr %t803, %S.ast.Node %t804, { ptr, i64, i64 } %t855) + store { ptr, i64, i64 } %t855, ptr %a856 + call void @finch_str_drop(ptr %a856) + call void @finch.drop.arr_str(ptr %a707) + br label %endif8797 +endif8797: + %t857 = load ptr, ptr %a1 + %t858 = icmp eq ptr %t857, null + br i1 %t858, label %panic8814, label %ok8815 +panic8814: + call void @finch_panic(ptr @.str.5657, i64 5373, ptr @.str.5658) + unreachable +ok8815: + %t859 = getelementptr inbounds %S.gen.Gen, ptr %t857, i32 0, i32 15 + %t860 = load i64, ptr %a639 + %t861 = load { ptr, i64, i64 }, ptr %t859 + %t862 = extractvalue { ptr, i64, i64 } %t861, 1 + %t863 = icmp uge i64 %t860, %t862 + br i1 %t863, label %range8816, label %inrange8817 +range8816: + call void @finch_panic_index(ptr @.str.5659, i64 5373, i64 %t860, i64 %t862) + unreachable +inrange8817: + %t864 = extractvalue { ptr, i64, i64 } %t861, 0 + %t865 = getelementptr inbounds %S.gen.FnSig, ptr %t864, i64 %t860 + %t866 = getelementptr inbounds %S.gen.FnSig, ptr %t865, i32 0, i32 10 + %t867 = load i1, ptr %t866 + br label %logic.from8818 +logic.from8818: + br i1 %t867, label %logic.rhs8819, label %logic.end8820 +logic.rhs8819: + %t868 = getelementptr inbounds %S.ast.Type, ptr %a273, i32 0, i32 0 + %t869 = load { ptr, i64, i64 }, ptr %t868 + store { ptr, i64, i64 } %t869, ptr %a870 + store { ptr, i64, i64 } { ptr @.str.5660, i64 6, i64 0 }, ptr %a871 + %t872 = call i32 @finch_str_eq(ptr %a870, ptr %a871) + %t873 = icmp ne i32 %t872, 0 + br label %logic.from8821 +logic.from8821: + br i1 %t873, label %logic.end8823, label %logic.rhs8822 +logic.rhs8822: + %t874 = getelementptr inbounds %S.ast.Type, ptr %a273, i32 0, i32 0 + %t875 = load { ptr, i64, i64 }, ptr %t874 + store { ptr, i64, i64 } %t875, ptr %a876 + store { ptr, i64, i64 } { ptr @.str.5661, i64 4, i64 0 }, ptr %a877 + %t878 = call i32 @finch_str_eq(ptr %a876, ptr %a877) + %t879 = icmp ne i32 %t878, 0 + br label %logic.rend8824 +logic.rend8824: + br label %logic.end8823 +logic.end8823: + %t880 = phi i1 [ true, %logic.from8821 ], [ %t879, %logic.rend8824 ] + br label %logic.rend8825 +logic.rend8825: + br label %logic.end8820 +logic.end8820: + %t881 = phi i1 [ false, %logic.from8818 ], [ %t880, %logic.rend8825 ] + br i1 %t881, label %then8826, label %endif8828 +then8826: + %t882 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 0 + %t883 = load i1, ptr %t882 + %t884 = xor i1 %t883, true + br i1 %t884, label %then8829, label %endif8831 +then8829: + %t885 = load ptr, ptr %a1 + %t886 = load %S.ast.Node, ptr %a2 + %t887 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t888 = load { ptr, i64, i64 }, ptr %t887 + store { ptr, i64, i64 } %t888, ptr %a890 + store { ptr, i64, i64 } { ptr @.str.5662, i64 28, i64 0 }, ptr %a891 + call void @finch_str_concat(ptr %a889, ptr %a890, ptr %a891) + %t892 = load { ptr, i64, i64 }, ptr %a889 + %t893 = load %S.ast.Type, ptr %a500 + %t894 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t893) + store { ptr, i64, i64 } %t892, ptr %a896 + store { ptr, i64, i64 } %t894, ptr %a897 + call void @finch_str_concat(ptr %a895, ptr %a896, ptr %a897) + store { ptr, i64, i64 } %t892, ptr %a898 + call void @finch_str_drop(ptr %a898) + store { ptr, i64, i64 } %t894, ptr %a899 call void @finch_str_drop(ptr %a899) - br label %endif8439 -endif8439: - br label %endif8432 -endif8432: - call void @finch_str_drop(ptr %a871) - br label %endif8426 -endif8426: - %t900 = load i1, ptr %a464 - br label %logic.from8440 -logic.from8440: - br i1 %t900, label %logic.rhs8441, label %logic.end8442 -logic.rhs8441: - %t901 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 2 - %t902 = getelementptr inbounds %S.gen.Val, ptr %t901, i32 0, i32 2 - %t903 = load i1, ptr %t902 - br label %logic.rend8443 -logic.rend8443: - br label %logic.end8442 -logic.end8442: - %t904 = phi i1 [ false, %logic.from8440 ], [ %t903, %logic.rend8443 ] - br i1 %t904, label %then8444, label %endif8446 -then8444: - %t905 = load ptr, ptr %a1 - %t906 = load { ptr, i64, i64 }, ptr %a463 - %t907 = load %S.ast.Type, ptr %a462 - call void @finch.gen.holdAddr(ptr %t905, { ptr, i64, i64 } %t906, %S.ast.Type %t907) - br label %endif8446 -endif8446: - %t908 = load ptr, ptr %a1 - %t909 = load i64, ptr %a601 - %t910 = load %S.ast.Node, ptr %a2 - %t911 = load %S.ast.Type, ptr %a462 - %t912 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t911) - store { ptr, i64, i64 } %t912, ptr %a914 - store { ptr, i64, i64 } { ptr @.str.5458, i64 1, i64 0 }, ptr %a915 - call void @finch_str_concat(ptr %a913, ptr %a914, ptr %a915) - store { ptr, i64, i64 } %t912, ptr %a916 - call void @finch_str_drop(ptr %a916) - %t917 = load { ptr, i64, i64 }, ptr %a913 - %t918 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t919 = load { ptr, i64, i64 }, ptr %t918 - store { ptr, i64, i64 } %t917, ptr %a921 - store { ptr, i64, i64 } %t919, ptr %a922 - call void @finch_str_concat(ptr %a920, ptr %a921, ptr %a922) - store { ptr, i64, i64 } %t917, ptr %a923 - call void @finch_str_drop(ptr %a923) - %t924 = load { ptr, i64, i64 }, ptr %a920 - %t925 = load { ptr, i64, i64 }, ptr %a463 - %t926 = load %S.ast.Node, ptr %a13 - %t927 = call { ptr, i64, i64 } @finch.gen.rootVar(%S.ast.Node %t926) - %t928 = call %S.gen.Val @finch.gen.callFn(ptr %t908, i64 %t909, %S.ast.Node %t910, i64 1, { ptr, i64, i64 } %t924, { ptr, i64, i64 } %t925, { ptr, i64, i64 } %t927) - store { ptr, i64, i64 } %t924, ptr %a929 - call void @finch_str_drop(ptr %a929) + %t900 = load { ptr, i64, i64 }, ptr %a895 + store { ptr, i64, i64 } %t900, ptr %a902 + store { ptr, i64, i64 } { ptr @.str.5663, i64 30, i64 0 }, ptr %a903 + call void @finch_str_concat(ptr %a901, ptr %a902, ptr %a903) + store { ptr, i64, i64 } %t900, ptr %a904 + call void @finch_str_drop(ptr %a904) + %t905 = load { ptr, i64, i64 }, ptr %a901 + call void @finch.gen.fail(ptr %t885, %S.ast.Node %t886, { ptr, i64, i64 } %t905) + store { ptr, i64, i64 } %t905, ptr %a906 + call void @finch_str_drop(ptr %a906) + br label %endif8831 +endif8831: + %t907 = load %S.ast.Node, ptr %a13 + %t908 = call { ptr, i64, i64 } @finch.gen.rootVar(%S.ast.Node %t907) + store { ptr, i64, i64 } %t908, ptr %a909 + %t910 = getelementptr inbounds { ptr, i64, i64 }, ptr %a909, i32 0, i32 1 + %t911 = load i64, ptr %t910 + %t912 = icmp sgt i64 %t911, 0 + br i1 %t912, label %then8832, label %endif8834 +then8832: + %t913 = load ptr, ptr %a1 + %t914 = load { ptr, i64, i64 }, ptr %a909 + %t915 = call i64 @finch.gen.lookup(ptr %t913, { ptr, i64, i64 } %t914) + store i64 %t915, ptr %a916 + %t917 = load i64, ptr %a916 + %t918 = icmp sge i64 %t917, 0 + br label %logic.from8835 +logic.from8835: + br i1 %t918, label %logic.rhs8836, label %logic.end8837 +logic.rhs8836: + %t919 = load ptr, ptr %a1 + %t920 = load i64, ptr %a916 + %t921 = call %S.gen.Var @finch.gen.varAt(ptr %t919, i64 %t920) + %t922 = extractvalue %S.gen.Var %t921, 3 + store %S.gen.Var %t921, ptr %a923 + call void @finch.drop.S_gen_Var(ptr %a923) + br label %logic.rend8838 +logic.rend8838: + br label %logic.end8837 +logic.end8837: + %t924 = phi i1 [ false, %logic.from8835 ], [ %t922, %logic.rend8838 ] + br i1 %t924, label %then8839, label %endif8841 +then8839: + %t925 = load ptr, ptr %a1 + %t926 = load %S.ast.Node, ptr %a2 + %t927 = load { ptr, i64, i64 }, ptr %a909 + store { ptr, i64, i64 } { ptr @.str.5664, i64 19, i64 0 }, ptr %a929 store { ptr, i64, i64 } %t927, ptr %a930 - call void @finch_str_drop(ptr %a930) - store %S.gen.Val %t928, ptr %a931 - %t932 = load i1, ptr %a464 - br label %logic.from8447 -logic.from8447: - br i1 %t932, label %logic.rhs8448, label %logic.end8449 -logic.rhs8448: - %t933 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 2 - %t934 = getelementptr inbounds %S.gen.Val, ptr %t933, i32 0, i32 2 - %t935 = load i1, ptr %t934 - br label %logic.rend8450 -logic.rend8450: - br label %logic.end8449 -logic.end8449: - %t936 = phi i1 [ false, %logic.from8447 ], [ %t935, %logic.rend8450 ] - br label %logic.from8451 -logic.from8451: - br i1 %t936, label %logic.rhs8452, label %logic.end8453 -logic.rhs8452: - %t937 = load ptr, ptr %a1 - %t938 = load %S.ast.Type, ptr %a462 - %t939 = call i1 @finch.gen.owning(ptr %t937, %S.ast.Type %t938) - br label %logic.rend8454 -logic.rend8454: - br label %logic.end8453 -logic.end8453: - %t940 = phi i1 [ false, %logic.from8451 ], [ %t939, %logic.rend8454 ] - br i1 %t940, label %then8455, label %endif8457 -then8455: - %t941 = load ptr, ptr %a1 - %t942 = load { ptr, i64, i64 }, ptr %a463 - %t943 = load %S.ast.Type, ptr %a462 - call void @finch.gen.dropAt(ptr %t941, { ptr, i64, i64 } %t942, %S.ast.Type %t943) - br label %endif8457 -endif8457: - %t944 = load ptr, ptr %a1 - %t945 = load i64, ptr %a228 - call void @finch.gen.heldEnd(ptr %t944, i64 %t945) - %t946 = load %S.gen.Val, ptr %a931 - call void @finch_str_drop(ptr %a463) - call void @finch.drop.S_ast_Type(ptr %a462) - call void @finch.drop.S_ast_Type(ptr %a235) - call void @finch.drop.S_gen_Ref(ptr %a222) - call void @finch.drop.arr_str(ptr %a200) - call void @finch.drop.S_ast_Node(ptr %a13) - ret %S.gen.Val %t946 -endif8367: - %t947 = load ptr, ptr %a1 + call void @finch_str_concat(ptr %a928, ptr %a929, ptr %a930) + %t931 = load { ptr, i64, i64 }, ptr %a928 + store { ptr, i64, i64 } %t931, ptr %a933 + store { ptr, i64, i64 } { ptr @.str.5665, i64 18, i64 0 }, ptr %a934 + call void @finch_str_concat(ptr %a932, ptr %a933, ptr %a934) + store { ptr, i64, i64 } %t931, ptr %a935 + call void @finch_str_drop(ptr %a935) + %t936 = load { ptr, i64, i64 }, ptr %a932 + call void @finch.gen.fail(ptr %t925, %S.ast.Node %t926, { ptr, i64, i64 } %t936) + store { ptr, i64, i64 } %t936, ptr %a937 + call void @finch_str_drop(ptr %a937) + br label %endif8841 +endif8841: + br label %endif8834 +endif8834: + call void @finch_str_drop(ptr %a909) + br label %endif8828 +endif8828: + %t938 = load i1, ptr %a502 + br label %logic.from8842 +logic.from8842: + br i1 %t938, label %logic.rhs8843, label %logic.end8844 +logic.rhs8843: + %t939 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 2 + %t940 = getelementptr inbounds %S.gen.Val, ptr %t939, i32 0, i32 2 + %t941 = load i1, ptr %t940 + br label %logic.rend8845 +logic.rend8845: + br label %logic.end8844 +logic.end8844: + %t942 = phi i1 [ false, %logic.from8842 ], [ %t941, %logic.rend8845 ] + br i1 %t942, label %then8846, label %endif8848 +then8846: + %t943 = load ptr, ptr %a1 + %t944 = load { ptr, i64, i64 }, ptr %a501 + %t945 = load %S.ast.Type, ptr %a500 + call void @finch.gen.holdAddr(ptr %t943, { ptr, i64, i64 } %t944, %S.ast.Type %t945) + br label %endif8848 +endif8848: + %t946 = load ptr, ptr %a1 + %t947 = load i64, ptr %a639 %t948 = load %S.ast.Node, ptr %a2 - %t949 = load %S.ast.Type, ptr %a235 + %t949 = load %S.ast.Type, ptr %a500 %t950 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t949) store { ptr, i64, i64 } %t950, ptr %a952 - store { ptr, i64, i64 } { ptr @.str.5459, i64 15, i64 0 }, ptr %a953 + store { ptr, i64, i64 } { ptr @.str.5666, i64 1, i64 0 }, ptr %a953 call void @finch_str_concat(ptr %a951, ptr %a952, ptr %a953) store { ptr, i64, i64 } %t950, ptr %a954 call void @finch_str_drop(ptr %a954) %t955 = load { ptr, i64, i64 }, ptr %a951 - call void @finch.gen.fail(ptr %t947, %S.ast.Node %t948, { ptr, i64, i64 } %t955) - store { ptr, i64, i64 } %t955, ptr %a956 - call void @finch_str_drop(ptr %a956) - call void @finch_str_drop(ptr %a463) - call void @finch.drop.S_ast_Type(ptr %a462) - call void @finch.drop.S_ast_Type(ptr %a235) - call void @finch.drop.S_gen_Ref(ptr %a222) - call void @finch.drop.arr_str(ptr %a200) + %t956 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t957 = load { ptr, i64, i64 }, ptr %t956 + store { ptr, i64, i64 } %t955, ptr %a959 + store { ptr, i64, i64 } %t957, ptr %a960 + call void @finch_str_concat(ptr %a958, ptr %a959, ptr %a960) + store { ptr, i64, i64 } %t955, ptr %a961 + call void @finch_str_drop(ptr %a961) + %t962 = load { ptr, i64, i64 }, ptr %a958 + %t963 = load { ptr, i64, i64 }, ptr %a501 + %t964 = load %S.ast.Node, ptr %a13 + %t965 = call { ptr, i64, i64 } @finch.gen.rootVar(%S.ast.Node %t964) + %t966 = call %S.gen.Val @finch.gen.callFn(ptr %t946, i64 %t947, %S.ast.Node %t948, i64 1, { ptr, i64, i64 } %t962, { ptr, i64, i64 } %t963, { ptr, i64, i64 } %t965) + store { ptr, i64, i64 } %t962, ptr %a967 + call void @finch_str_drop(ptr %a967) + store { ptr, i64, i64 } %t965, ptr %a968 + call void @finch_str_drop(ptr %a968) + store %S.gen.Val %t966, ptr %a969 + %t970 = load i1, ptr %a502 + br label %logic.from8849 +logic.from8849: + br i1 %t970, label %logic.rhs8850, label %logic.end8851 +logic.rhs8850: + %t971 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 2 + %t972 = getelementptr inbounds %S.gen.Val, ptr %t971, i32 0, i32 2 + %t973 = load i1, ptr %t972 + br label %logic.rend8852 +logic.rend8852: + br label %logic.end8851 +logic.end8851: + %t974 = phi i1 [ false, %logic.from8849 ], [ %t973, %logic.rend8852 ] + br label %logic.from8853 +logic.from8853: + br i1 %t974, label %logic.rhs8854, label %logic.end8855 +logic.rhs8854: + %t975 = load ptr, ptr %a1 + %t976 = load %S.ast.Type, ptr %a500 + %t977 = call i1 @finch.gen.owning(ptr %t975, %S.ast.Type %t976) + br label %logic.rend8856 +logic.rend8856: + br label %logic.end8855 +logic.end8855: + %t978 = phi i1 [ false, %logic.from8853 ], [ %t977, %logic.rend8856 ] + br i1 %t978, label %then8857, label %endif8859 +then8857: + %t979 = load ptr, ptr %a1 + %t980 = load { ptr, i64, i64 }, ptr %a501 + %t981 = load %S.ast.Type, ptr %a500 + call void @finch.gen.dropAt(ptr %t979, { ptr, i64, i64 } %t980, %S.ast.Type %t981) + br label %endif8859 +endif8859: + %t982 = load ptr, ptr %a1 + %t983 = load i64, ptr %a266 + call void @finch.gen.heldEnd(ptr %t982, i64 %t983) + %t984 = load %S.gen.Val, ptr %a969 + call void @finch_str_drop(ptr %a501) + call void @finch.drop.S_ast_Type(ptr %a500) + call void @finch.drop.S_ast_Type(ptr %a273) + call void @finch.drop.S_gen_Ref(ptr %a260) + call void @finch.drop.arr_str(ptr %a238) + call void @finch.drop.S_ast_Node(ptr %a13) + ret %S.gen.Val %t984 +endif8769: + %t985 = load ptr, ptr %a1 + %t986 = load %S.ast.Node, ptr %a2 + %t987 = load %S.ast.Type, ptr %a273 + %t988 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t987) + store { ptr, i64, i64 } %t988, ptr %a990 + store { ptr, i64, i64 } { ptr @.str.5667, i64 15, i64 0 }, ptr %a991 + call void @finch_str_concat(ptr %a989, ptr %a990, ptr %a991) + store { ptr, i64, i64 } %t988, ptr %a992 + call void @finch_str_drop(ptr %a992) + %t993 = load { ptr, i64, i64 }, ptr %a989 + call void @finch.gen.fail(ptr %t985, %S.ast.Node %t986, { ptr, i64, i64 } %t993) + store { ptr, i64, i64 } %t993, ptr %a994 + call void @finch_str_drop(ptr %a994) + call void @finch_str_drop(ptr %a501) + call void @finch.drop.S_ast_Type(ptr %a500) + call void @finch.drop.S_ast_Type(ptr %a273) + call void @finch.drop.S_gen_Ref(ptr %a260) + call void @finch.drop.arr_str(ptr %a238) call void @finch.drop.S_ast_Node(ptr %a13) ret %S.gen.Val zeroinitializer } @@ -86498,11 +90497,11 @@ entry: %t6 = load { ptr, i64, i64 }, ptr %t5 %t7 = extractvalue { ptr, i64, i64 } %t6, 1 %t8 = icmp uge i64 0, %t7 - br i1 %t8, label %range8458, label %inrange8459 -range8458: - call void @finch_panic_index(ptr @.str.5460, i64 5169, i64 0, i64 %t7) + br i1 %t8, label %range8860, label %inrange8861 +range8860: + call void @finch_panic_index(ptr @.str.5668, i64 5404, i64 0, i64 %t7) unreachable -inrange8459: +inrange8861: %t9 = extractvalue { ptr, i64, i64 } %t6, 0 %t10 = getelementptr inbounds %S.ast.Type, ptr %t9, i64 0 %t11 = load %S.ast.Type, ptr %t10 @@ -86522,12 +90521,12 @@ inrange8459: store { ptr, i64, i64 } %t24, ptr %a25 %t26 = load ptr, ptr %a1 %t27 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.5461, i64 46, i64 0 }, ptr %a29 + store { ptr, i64, i64 } { ptr @.str.5669, i64 46, i64 0 }, ptr %a29 store { ptr, i64, i64 } %t27, ptr %a30 call void @finch_str_concat(ptr %a28, ptr %a29, ptr %a30) %t31 = load { ptr, i64, i64 }, ptr %a28 store { ptr, i64, i64 } %t31, ptr %a33 - store { ptr, i64, i64 } { ptr @.str.5462, i64 14, i64 0 }, ptr %a34 + store { ptr, i64, i64 } { ptr @.str.5670, i64 14, i64 0 }, ptr %a34 call void @finch_str_concat(ptr %a32, ptr %a33, ptr %a34) store { ptr, i64, i64 } %t31, ptr %a35 call void @finch_str_drop(ptr %a35) @@ -86538,11 +90537,11 @@ inrange8459: store { ptr, i64, i64 } %t37, ptr %a39 %t40 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t40, ptr %a41 - store { ptr, i64, i64 } { ptr @.str.5463, i64 4, i64 0 }, ptr %a42 + store { ptr, i64, i64 } { ptr @.str.5671, i64 4, i64 0 }, ptr %a42 %t43 = call i32 @finch_str_eq(ptr %a41, ptr %a42) %t44 = icmp ne i32 %t43, 0 - br i1 %t44, label %then8460, label %endif8462 -then8460: + br i1 %t44, label %then8862, label %endif8864 +then8862: %t45 = load ptr, ptr %a1 %t46 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t45, %S.ast.Node %t46, i64 1) @@ -86553,11 +90552,11 @@ then8460: %t51 = load { ptr, i64, i64 }, ptr %t50 %t52 = extractvalue { ptr, i64, i64 } %t51, 1 %t53 = icmp uge i64 1, %t52 - br i1 %t53, label %range8463, label %inrange8464 -range8463: - call void @finch_panic_index(ptr @.str.5464, i64 5175, i64 1, i64 %t52) + br i1 %t53, label %range8865, label %inrange8866 +range8865: + call void @finch_panic_index(ptr @.str.5672, i64 5410, i64 1, i64 %t52) unreachable -inrange8464: +inrange8866: %t54 = extractvalue { ptr, i64, i64 } %t51, 0 %t55 = getelementptr inbounds %S.ast.Node, ptr %t54, i64 1 %t56 = load %S.ast.Node, ptr %t55 @@ -86568,15 +90567,15 @@ inrange8464: %t61 = load { ptr, i64, i64 }, ptr %t60 %t62 = extractvalue { ptr, i64, i64 } %t61, 1 %t63 = icmp uge i64 1, %t62 - br i1 %t63, label %range8465, label %inrange8466 -range8465: - call void @finch_panic_index(ptr @.str.5465, i64 5175, i64 1, i64 %t62) + br i1 %t63, label %range8867, label %inrange8868 +range8867: + call void @finch_panic_index(ptr @.str.5673, i64 5410, i64 1, i64 %t62) unreachable -inrange8466: +inrange8868: %t64 = extractvalue { ptr, i64, i64 } %t61, 0 %t65 = getelementptr inbounds %S.ast.Node, ptr %t64, i64 1 %t66 = load %S.ast.Node, ptr %t65 - %t67 = call %S.gen.Val @finch.gen.coerce(ptr %t48, %S.gen.Val %t58, %S.ast.Type %t59, %S.ast.Node %t66, { ptr, i64, i64 } { ptr @.str.5466, i64 11, i64 0 }) + %t67 = call %S.gen.Val @finch.gen.coerce(ptr %t48, %S.gen.Val %t58, %S.ast.Type %t59, %S.ast.Node %t66, { ptr, i64, i64 } { ptr @.str.5674, i64 11, i64 0 }) store %S.gen.Val %t58, ptr %a68 call void @finch.drop.S_gen_Val(ptr %a68) %t69 = call { ptr, i64, i64 } @finch.gen.own(ptr %t47, %S.gen.Val %t67) @@ -86585,16 +90584,16 @@ inrange8466: store { ptr, i64, i64 } %t69, ptr %a71 %t72 = load ptr, ptr %a1 %t73 = load { ptr, i64, i64 }, ptr %a39 - %t74 = call { ptr, i64, i64 } @finch.gen.load(ptr %t72, { ptr, i64, i64 } { ptr @.str.5467, i64 3, i64 0 }, { ptr, i64, i64 } %t73) + %t74 = call { ptr, i64, i64 } @finch.gen.load(ptr %t72, { ptr, i64, i64 } { ptr @.str.5675, i64 3, i64 0 }, { ptr, i64, i64 } %t73) store { ptr, i64, i64 } %t74, ptr %a75 %t76 = load ptr, ptr %a1 %t77 = load { ptr, i64, i64 }, ptr %a75 - store { ptr, i64, i64 } { ptr @.str.5468, i64 8, i64 0 }, ptr %a79 + store { ptr, i64, i64 } { ptr @.str.5676, i64 8, i64 0 }, ptr %a79 store { ptr, i64, i64 } %t77, ptr %a80 call void @finch_str_concat(ptr %a78, ptr %a79, ptr %a80) %t81 = load { ptr, i64, i64 }, ptr %a78 store { ptr, i64, i64 } %t81, ptr %a83 - store { ptr, i64, i64 } { ptr @.str.5469, i64 3, i64 0 }, ptr %a84 + store { ptr, i64, i64 } { ptr @.str.5677, i64 3, i64 0 }, ptr %a84 call void @finch_str_concat(ptr %a82, ptr %a83, ptr %a84) store { ptr, i64, i64 } %t81, ptr %a85 call void @finch_str_drop(ptr %a85) @@ -86605,12 +90604,12 @@ inrange8466: store { ptr, i64, i64 } %t87, ptr %a89 %t90 = load ptr, ptr %a1 %t91 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.5470, i64 33, i64 0 }, ptr %a93 + store { ptr, i64, i64 } { ptr @.str.5678, i64 33, i64 0 }, ptr %a93 store { ptr, i64, i64 } %t91, ptr %a94 call void @finch_str_concat(ptr %a92, ptr %a93, ptr %a94) %t95 = load { ptr, i64, i64 }, ptr %a92 store { ptr, i64, i64 } %t95, ptr %a97 - store { ptr, i64, i64 } { ptr @.str.5471, i64 6, i64 0 }, ptr %a98 + store { ptr, i64, i64 } { ptr @.str.5679, i64 6, i64 0 }, ptr %a98 call void @finch_str_concat(ptr %a96, ptr %a97, ptr %a98) store { ptr, i64, i64 } %t95, ptr %a99 call void @finch_str_drop(ptr %a99) @@ -86623,7 +90622,7 @@ inrange8466: call void @finch_str_drop(ptr %a105) %t106 = load { ptr, i64, i64 }, ptr %a102 store { ptr, i64, i64 } %t106, ptr %a108 - store { ptr, i64, i64 } { ptr @.str.5472, i64 6, i64 0 }, ptr %a109 + store { ptr, i64, i64 } { ptr @.str.5680, i64 6, i64 0 }, ptr %a109 call void @finch_str_concat(ptr %a107, ptr %a108, ptr %a109) store { ptr, i64, i64 } %t106, ptr %a110 call void @finch_str_drop(ptr %a110) @@ -86640,7 +90639,7 @@ inrange8466: call void @finch_str_drop(ptr %a119) %t120 = load { ptr, i64, i64 }, ptr %a115 store { ptr, i64, i64 } %t120, ptr %a122 - store { ptr, i64, i64 } { ptr @.str.5473, i64 1, i64 0 }, ptr %a123 + store { ptr, i64, i64 } { ptr @.str.5681, i64 1, i64 0 }, ptr %a123 call void @finch_str_concat(ptr %a121, ptr %a122, ptr %a123) store { ptr, i64, i64 } %t120, ptr %a124 call void @finch_str_drop(ptr %a124) @@ -86650,19 +90649,19 @@ inrange8466: call void @finch_str_drop(ptr %a126) %t127 = load ptr, ptr %a1 %t128 = load { ptr, i64, i64 }, ptr %a3 - %t129 = call { ptr, i64, i64 } @finch.gen.load(ptr %t127, { ptr, i64, i64 } { ptr @.str.5474, i64 3, i64 0 }, { ptr, i64, i64 } %t128) + %t129 = call { ptr, i64, i64 } @finch.gen.load(ptr %t127, { ptr, i64, i64 } { ptr @.str.5682, i64 3, i64 0 }, { ptr, i64, i64 } %t128) store { ptr, i64, i64 } %t129, ptr %a130 %t131 = load ptr, ptr %a1 %t132 = load { ptr, i64, i64 }, ptr %a19 %t133 = load { ptr, i64, i64 }, ptr %a71 %t134 = load ptr, ptr %a1 %t135 = load { ptr, i64, i64 }, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.5475, i64 23, i64 0 }, ptr %a137 + store { ptr, i64, i64 } { ptr @.str.5683, i64 23, i64 0 }, ptr %a137 store { ptr, i64, i64 } %t135, ptr %a138 call void @finch_str_concat(ptr %a136, ptr %a137, ptr %a138) %t139 = load { ptr, i64, i64 }, ptr %a136 store { ptr, i64, i64 } %t139, ptr %a141 - store { ptr, i64, i64 } { ptr @.str.5476, i64 6, i64 0 }, ptr %a142 + store { ptr, i64, i64 } { ptr @.str.5684, i64 6, i64 0 }, ptr %a142 call void @finch_str_concat(ptr %a140, ptr %a141, ptr %a142) store { ptr, i64, i64 } %t139, ptr %a143 call void @finch_str_drop(ptr %a143) @@ -86675,7 +90674,7 @@ inrange8466: call void @finch_str_drop(ptr %a149) %t150 = load { ptr, i64, i64 }, ptr %a146 store { ptr, i64, i64 } %t150, ptr %a152 - store { ptr, i64, i64 } { ptr @.str.5477, i64 6, i64 0 }, ptr %a153 + store { ptr, i64, i64 } { ptr @.str.5685, i64 6, i64 0 }, ptr %a153 call void @finch_str_concat(ptr %a151, ptr %a152, ptr %a153) store { ptr, i64, i64 } %t150, ptr %a154 call void @finch_str_drop(ptr %a154) @@ -86696,8 +90695,8 @@ inrange8466: %t165 = load ptr, ptr %a1 %t166 = load { ptr, i64, i64 }, ptr %a89 %t167 = load { ptr, i64, i64 }, ptr %a39 - call void @finch.gen.store(ptr %t165, { ptr, i64, i64 } { ptr @.str.5478, i64 3, i64 0 }, { ptr, i64, i64 } %t166, { ptr, i64, i64 } %t167) - %t168 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5479, i64 4, i64 0 }) + call void @finch.gen.store(ptr %t165, { ptr, i64, i64 } { ptr @.str.5686, i64 3, i64 0 }, { ptr, i64, i64 } %t166, { ptr, i64, i64 } %t167) + %t168 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5687, i64 4, i64 0 }) %t169 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t168, 1 call void @finch_str_drop(ptr %a130) call void @finch_str_drop(ptr %a89) @@ -86708,30 +90707,30 @@ inrange8466: call void @finch_str_drop(ptr %a19) call void @finch.drop.S_ast_Type(ptr %a15) ret %S.gen.Val %t169 -endif8462: +endif8864: %t170 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t170, ptr %a171 - store { ptr, i64, i64 } { ptr @.str.5480, i64 3, i64 0 }, ptr %a172 + store { ptr, i64, i64 } { ptr @.str.5688, i64 3, i64 0 }, ptr %a172 %t173 = call i32 @finch_str_eq(ptr %a171, ptr %a172) %t174 = icmp ne i32 %t173, 0 - br i1 %t174, label %then8467, label %endif8469 -then8467: + br i1 %t174, label %then8869, label %endif8871 +then8869: %t175 = load ptr, ptr %a1 %t176 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t175, %S.ast.Node %t176, i64 0) %t177 = load ptr, ptr %a1 %t178 = load { ptr, i64, i64 }, ptr %a39 - %t179 = call { ptr, i64, i64 } @finch.gen.load(ptr %t177, { ptr, i64, i64 } { ptr @.str.5481, i64 3, i64 0 }, { ptr, i64, i64 } %t178) + %t179 = call { ptr, i64, i64 } @finch.gen.load(ptr %t177, { ptr, i64, i64 } { ptr @.str.5689, i64 3, i64 0 }, { ptr, i64, i64 } %t178) store { ptr, i64, i64 } %t179, ptr %a180 %t181 = load ptr, ptr %a1 %t182 = load ptr, ptr %a1 %t183 = load { ptr, i64, i64 }, ptr %a180 - store { ptr, i64, i64 } { ptr @.str.5482, i64 12, i64 0 }, ptr %a185 + store { ptr, i64, i64 } { ptr @.str.5690, i64 12, i64 0 }, ptr %a185 store { ptr, i64, i64 } %t183, ptr %a186 call void @finch_str_concat(ptr %a184, ptr %a185, ptr %a186) %t187 = load { ptr, i64, i64 }, ptr %a184 store { ptr, i64, i64 } %t187, ptr %a189 - store { ptr, i64, i64 } { ptr @.str.5483, i64 3, i64 0 }, ptr %a190 + store { ptr, i64, i64 } { ptr @.str.5691, i64 3, i64 0 }, ptr %a190 call void @finch_str_concat(ptr %a188, ptr %a189, ptr %a190) store { ptr, i64, i64 } %t187, ptr %a191 call void @finch_str_drop(ptr %a191) @@ -86740,17 +90739,17 @@ then8467: store { ptr, i64, i64 } %t192, ptr %a194 call void @finch_str_drop(ptr %a194) %t195 = load %S.ast.Node, ptr %a2 - call void @finch.gen.panicIf(ptr %t181, { ptr, i64, i64 } %t193, { ptr, i64, i64 } { ptr @.str.5484, i64 23, i64 0 }, %S.ast.Node %t195) + call void @finch.gen.panicIf(ptr %t181, { ptr, i64, i64 } %t193, { ptr, i64, i64 } { ptr @.str.5692, i64 23, i64 0 }, %S.ast.Node %t195) store { ptr, i64, i64 } %t193, ptr %a196 call void @finch_str_drop(ptr %a196) %t197 = load ptr, ptr %a1 %t198 = load { ptr, i64, i64 }, ptr %a180 - store { ptr, i64, i64 } { ptr @.str.5485, i64 8, i64 0 }, ptr %a200 + store { ptr, i64, i64 } { ptr @.str.5693, i64 8, i64 0 }, ptr %a200 store { ptr, i64, i64 } %t198, ptr %a201 call void @finch_str_concat(ptr %a199, ptr %a200, ptr %a201) %t202 = load { ptr, i64, i64 }, ptr %a199 store { ptr, i64, i64 } %t202, ptr %a204 - store { ptr, i64, i64 } { ptr @.str.5486, i64 3, i64 0 }, ptr %a205 + store { ptr, i64, i64 } { ptr @.str.5694, i64 3, i64 0 }, ptr %a205 call void @finch_str_concat(ptr %a203, ptr %a204, ptr %a205) store { ptr, i64, i64 } %t202, ptr %a206 call void @finch_str_drop(ptr %a206) @@ -86761,18 +90760,18 @@ then8467: store { ptr, i64, i64 } %t208, ptr %a210 %t211 = load ptr, ptr %a1 %t212 = load { ptr, i64, i64 }, ptr %a3 - %t213 = call { ptr, i64, i64 } @finch.gen.load(ptr %t211, { ptr, i64, i64 } { ptr @.str.5487, i64 3, i64 0 }, { ptr, i64, i64 } %t212) + %t213 = call { ptr, i64, i64 } @finch.gen.load(ptr %t211, { ptr, i64, i64 } { ptr @.str.5695, i64 3, i64 0 }, { ptr, i64, i64 } %t212) store { ptr, i64, i64 } %t213, ptr %a214 %t215 = load ptr, ptr %a1 %t216 = load { ptr, i64, i64 }, ptr %a19 %t217 = load ptr, ptr %a1 %t218 = load { ptr, i64, i64 }, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.5488, i64 23, i64 0 }, ptr %a220 + store { ptr, i64, i64 } { ptr @.str.5696, i64 23, i64 0 }, ptr %a220 store { ptr, i64, i64 } %t218, ptr %a221 call void @finch_str_concat(ptr %a219, ptr %a220, ptr %a221) %t222 = load { ptr, i64, i64 }, ptr %a219 store { ptr, i64, i64 } %t222, ptr %a224 - store { ptr, i64, i64 } { ptr @.str.5489, i64 6, i64 0 }, ptr %a225 + store { ptr, i64, i64 } { ptr @.str.5697, i64 6, i64 0 }, ptr %a225 call void @finch_str_concat(ptr %a223, ptr %a224, ptr %a225) store { ptr, i64, i64 } %t222, ptr %a226 call void @finch_str_drop(ptr %a226) @@ -86785,7 +90784,7 @@ then8467: call void @finch_str_drop(ptr %a232) %t233 = load { ptr, i64, i64 }, ptr %a229 store { ptr, i64, i64 } %t233, ptr %a235 - store { ptr, i64, i64 } { ptr @.str.5490, i64 6, i64 0 }, ptr %a236 + store { ptr, i64, i64 } { ptr @.str.5698, i64 6, i64 0 }, ptr %a236 call void @finch_str_concat(ptr %a234, ptr %a235, ptr %a236) store { ptr, i64, i64 } %t233, ptr %a237 call void @finch_str_drop(ptr %a237) @@ -86807,7 +90806,7 @@ then8467: %t250 = load ptr, ptr %a1 %t251 = load { ptr, i64, i64 }, ptr %a210 %t252 = load { ptr, i64, i64 }, ptr %a39 - call void @finch.gen.store(ptr %t250, { ptr, i64, i64 } { ptr @.str.5491, i64 3, i64 0 }, { ptr, i64, i64 } %t251, { ptr, i64, i64 } %t252) + call void @finch.gen.store(ptr %t250, { ptr, i64, i64 } { ptr @.str.5699, i64 3, i64 0 }, { ptr, i64, i64 } %t251, { ptr, i64, i64 } %t252) %t253 = load { ptr, i64, i64 }, ptr %a249 store { ptr, i64, i64 } %t253, ptr %a254 call void @finch_str_copy(ptr %a255, ptr %a254) @@ -86831,53 +90830,53 @@ then8467: call void @finch_str_drop(ptr %a19) call void @finch.drop.S_ast_Type(ptr %a15) ret %S.gen.Val %t266 -endif8469: +endif8871: %t267 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t267, ptr %a268 - store { ptr, i64, i64 } { ptr @.str.5492, i64 5, i64 0 }, ptr %a269 + store { ptr, i64, i64 } { ptr @.str.5700, i64 5, i64 0 }, ptr %a269 %t270 = call i32 @finch_str_eq(ptr %a268, ptr %a269) %t271 = icmp ne i32 %t270, 0 - br i1 %t271, label %then8470, label %endif8472 -then8470: + br i1 %t271, label %then8872, label %endif8874 +then8872: %t272 = load ptr, ptr %a1 %t273 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t272, %S.ast.Node %t273, i64 0) %t274 = load ptr, ptr %a1 %t275 = load { ptr, i64, i64 }, ptr %a3 %t276 = load %S.ast.Type, ptr %a4 - call void @finch.gen.dropFrom(ptr %t274, { ptr, i64, i64 } %t275, %S.ast.Type %t276, { ptr, i64, i64 } { ptr @.str.5493, i64 1, i64 0 }) + call void @finch.gen.dropFrom(ptr %t274, { ptr, i64, i64 } %t275, %S.ast.Type %t276, { ptr, i64, i64 } { ptr @.str.5701, i64 1, i64 0 }) %t277 = load ptr, ptr %a1 %t278 = load { ptr, i64, i64 }, ptr %a39 - call void @finch.gen.store(ptr %t277, { ptr, i64, i64 } { ptr @.str.5494, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.5495, i64 1, i64 0 }, { ptr, i64, i64 } %t278) - %t279 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5496, i64 4, i64 0 }) + call void @finch.gen.store(ptr %t277, { ptr, i64, i64 } { ptr @.str.5702, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.5703, i64 1, i64 0 }, { ptr, i64, i64 } %t278) + %t279 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5704, i64 4, i64 0 }) %t280 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t279, 1 call void @finch_str_drop(ptr %a39) call void @finch_str_drop(ptr %a25) call void @finch_str_drop(ptr %a19) call void @finch.drop.S_ast_Type(ptr %a15) ret %S.gen.Val %t280 -endif8472: +endif8874: %t281 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t281, ptr %a282 - store { ptr, i64, i64 } { ptr @.str.5497, i64 4, i64 0 }, ptr %a283 + store { ptr, i64, i64 } { ptr @.str.5705, i64 4, i64 0 }, ptr %a283 %t284 = call i32 @finch_str_eq(ptr %a282, ptr %a283) %t285 = icmp ne i32 %t284, 0 - br label %logic.from8473 -logic.from8473: - br i1 %t285, label %logic.end8475, label %logic.rhs8474 -logic.rhs8474: + br label %logic.from8875 +logic.from8875: + br i1 %t285, label %logic.end8877, label %logic.rhs8876 +logic.rhs8876: %t286 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t286, ptr %a287 - store { ptr, i64, i64 } { ptr @.str.5498, i64 8, i64 0 }, ptr %a288 + store { ptr, i64, i64 } { ptr @.str.5706, i64 8, i64 0 }, ptr %a288 %t289 = call i32 @finch_str_eq(ptr %a287, ptr %a288) %t290 = icmp ne i32 %t289, 0 - br label %logic.rend8476 -logic.rend8476: - br label %logic.end8475 -logic.end8475: - %t291 = phi i1 [ true, %logic.from8473 ], [ %t290, %logic.rend8476 ] - br i1 %t291, label %then8477, label %endif8479 -then8477: + br label %logic.rend8878 +logic.rend8878: + br label %logic.end8877 +logic.end8877: + %t291 = phi i1 [ true, %logic.from8875 ], [ %t290, %logic.rend8878 ] + br i1 %t291, label %then8879, label %endif8881 +then8879: %t292 = load ptr, ptr %a1 %t293 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t292, %S.ast.Node %t293, i64 1) @@ -86887,11 +90886,11 @@ then8477: %t297 = load { ptr, i64, i64 }, ptr %t296 %t298 = extractvalue { ptr, i64, i64 } %t297, 1 %t299 = icmp uge i64 1, %t298 - br i1 %t299, label %range8480, label %inrange8481 -range8480: - call void @finch_panic_index(ptr @.str.5499, i64 5202, i64 1, i64 %t298) + br i1 %t299, label %range8882, label %inrange8883 +range8882: + call void @finch_panic_index(ptr @.str.5707, i64 5437, i64 1, i64 %t298) unreachable -inrange8481: +inrange8883: %t300 = extractvalue { ptr, i64, i64 } %t297, 0 %t301 = getelementptr inbounds %S.ast.Node, ptr %t300, i64 1 %t302 = load %S.ast.Node, ptr %t301 @@ -86902,52 +90901,52 @@ inrange8481: %t307 = load { ptr, i64, i64 }, ptr %t306 %t308 = extractvalue { ptr, i64, i64 } %t307, 1 %t309 = icmp uge i64 1, %t308 - br i1 %t309, label %range8482, label %inrange8483 -range8482: - call void @finch_panic_index(ptr @.str.5500, i64 5202, i64 1, i64 %t308) + br i1 %t309, label %range8884, label %inrange8885 +range8884: + call void @finch_panic_index(ptr @.str.5708, i64 5437, i64 1, i64 %t308) unreachable -inrange8483: +inrange8885: %t310 = extractvalue { ptr, i64, i64 } %t307, 0 %t311 = getelementptr inbounds %S.ast.Node, ptr %t310, i64 1 %t312 = load %S.ast.Node, ptr %t311 - %t313 = call %S.gen.Val @finch.gen.coerce(ptr %t294, %S.gen.Val %t304, %S.ast.Type %t305, %S.ast.Node %t312, { ptr, i64, i64 } { ptr @.str.5501, i64 21, i64 0 }) + %t313 = call %S.gen.Val @finch.gen.coerce(ptr %t294, %S.gen.Val %t304, %S.ast.Type %t305, %S.ast.Node %t312, { ptr, i64, i64 } { ptr @.str.5709, i64 21, i64 0 }) store %S.gen.Val %t304, ptr %a314 call void @finch.drop.S_gen_Val(ptr %a314) store %S.gen.Val %t313, ptr %a315 %t316 = load ptr, ptr %a1 - %t317 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t316, { ptr, i64, i64 } { ptr @.str.5502, i64 3, i64 0 }) + %t317 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t316, { ptr, i64, i64 } { ptr @.str.5710, i64 3, i64 0 }) store { ptr, i64, i64 } %t317, ptr %a318 %t319 = load ptr, ptr %a1 %t320 = load { ptr, i64, i64 }, ptr %a318 - call void @finch.gen.store(ptr %t319, { ptr, i64, i64 } { ptr @.str.5503, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.5504, i64 2, i64 0 }, { ptr, i64, i64 } %t320) + call void @finch.gen.store(ptr %t319, { ptr, i64, i64 } { ptr @.str.5711, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.5712, i64 2, i64 0 }, { ptr, i64, i64 } %t320) %t321 = load ptr, ptr %a1 %t322 = load { ptr, i64, i64 }, ptr %a39 - %t323 = call { ptr, i64, i64 } @finch.gen.load(ptr %t321, { ptr, i64, i64 } { ptr @.str.5505, i64 3, i64 0 }, { ptr, i64, i64 } %t322) + %t323 = call { ptr, i64, i64 } @finch.gen.load(ptr %t321, { ptr, i64, i64 } { ptr @.str.5713, i64 3, i64 0 }, { ptr, i64, i64 } %t322) store { ptr, i64, i64 } %t323, ptr %a324 %t325 = load ptr, ptr %a1 %t326 = load { ptr, i64, i64 }, ptr %a3 - %t327 = call { ptr, i64, i64 } @finch.gen.load(ptr %t325, { ptr, i64, i64 } { ptr @.str.5506, i64 3, i64 0 }, { ptr, i64, i64 } %t326) + %t327 = call { ptr, i64, i64 } @finch.gen.load(ptr %t325, { ptr, i64, i64 } { ptr @.str.5714, i64 3, i64 0 }, { ptr, i64, i64 } %t326) store { ptr, i64, i64 } %t327, ptr %a328 %t329 = load ptr, ptr %a1 - %t330 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t329, { ptr, i64, i64 } { ptr @.str.5507, i64 3, i64 0 }) + %t330 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t329, { ptr, i64, i64 } { ptr @.str.5715, i64 3, i64 0 }) store { ptr, i64, i64 } %t330, ptr %a331 %t332 = load ptr, ptr %a1 %t333 = load { ptr, i64, i64 }, ptr %a331 - call void @finch.gen.store(ptr %t332, { ptr, i64, i64 } { ptr @.str.5508, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.5509, i64 1, i64 0 }, { ptr, i64, i64 } %t333) + call void @finch.gen.store(ptr %t332, { ptr, i64, i64 } { ptr @.str.5716, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.5717, i64 1, i64 0 }, { ptr, i64, i64 } %t333) %t334 = load ptr, ptr %a1 - %t335 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t334, { ptr, i64, i64 } { ptr @.str.5510, i64 9, i64 0 }) + %t335 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t334, { ptr, i64, i64 } { ptr @.str.5718, i64 9, i64 0 }) store { ptr, i64, i64 } %t335, ptr %a336 %t337 = load ptr, ptr %a1 - %t338 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t337, { ptr, i64, i64 } { ptr @.str.5511, i64 9, i64 0 }) + %t338 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t337, { ptr, i64, i64 } { ptr @.str.5719, i64 9, i64 0 }) store { ptr, i64, i64 } %t338, ptr %a339 %t340 = load ptr, ptr %a1 - %t341 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t340, { ptr, i64, i64 } { ptr @.str.5512, i64 8, i64 0 }) + %t341 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t340, { ptr, i64, i64 } { ptr @.str.5720, i64 8, i64 0 }) store { ptr, i64, i64 } %t341, ptr %a342 %t343 = load ptr, ptr %a1 - %t344 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t343, { ptr, i64, i64 } { ptr @.str.5513, i64 9, i64 0 }) + %t344 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t343, { ptr, i64, i64 } { ptr @.str.5721, i64 9, i64 0 }) store { ptr, i64, i64 } %t344, ptr %a345 %t346 = load ptr, ptr %a1 - %t347 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t346, { ptr, i64, i64 } { ptr @.str.5514, i64 8, i64 0 }) + %t347 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t346, { ptr, i64, i64 } { ptr @.str.5722, i64 8, i64 0 }) store { ptr, i64, i64 } %t347, ptr %a348 %t349 = load ptr, ptr %a1 %t350 = load { ptr, i64, i64 }, ptr %a336 @@ -86957,16 +90956,16 @@ inrange8483: call void @finch.gen.label(ptr %t351, { ptr, i64, i64 } %t352) %t353 = load ptr, ptr %a1 %t354 = load { ptr, i64, i64 }, ptr %a331 - %t355 = call { ptr, i64, i64 } @finch.gen.load(ptr %t353, { ptr, i64, i64 } { ptr @.str.5515, i64 3, i64 0 }, { ptr, i64, i64 } %t354) + %t355 = call { ptr, i64, i64 } @finch.gen.load(ptr %t353, { ptr, i64, i64 } { ptr @.str.5723, i64 3, i64 0 }, { ptr, i64, i64 } %t354) store { ptr, i64, i64 } %t355, ptr %a356 %t357 = load ptr, ptr %a1 %t358 = load { ptr, i64, i64 }, ptr %a356 - store { ptr, i64, i64 } { ptr @.str.5516, i64 13, i64 0 }, ptr %a360 + store { ptr, i64, i64 } { ptr @.str.5724, i64 13, i64 0 }, ptr %a360 store { ptr, i64, i64 } %t358, ptr %a361 call void @finch_str_concat(ptr %a359, ptr %a360, ptr %a361) %t362 = load { ptr, i64, i64 }, ptr %a359 store { ptr, i64, i64 } %t362, ptr %a364 - store { ptr, i64, i64 } { ptr @.str.5517, i64 2, i64 0 }, ptr %a365 + store { ptr, i64, i64 } { ptr @.str.5725, i64 2, i64 0 }, ptr %a365 call void @finch_str_concat(ptr %a363, ptr %a364, ptr %a365) store { ptr, i64, i64 } %t362, ptr %a366 call void @finch_str_drop(ptr %a366) @@ -86994,12 +90993,12 @@ inrange8483: %t384 = load { ptr, i64, i64 }, ptr %a19 %t385 = load ptr, ptr %a1 %t386 = load { ptr, i64, i64 }, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.5518, i64 23, i64 0 }, ptr %a388 + store { ptr, i64, i64 } { ptr @.str.5726, i64 23, i64 0 }, ptr %a388 store { ptr, i64, i64 } %t386, ptr %a389 call void @finch_str_concat(ptr %a387, ptr %a388, ptr %a389) %t390 = load { ptr, i64, i64 }, ptr %a387 store { ptr, i64, i64 } %t390, ptr %a392 - store { ptr, i64, i64 } { ptr @.str.5519, i64 6, i64 0 }, ptr %a393 + store { ptr, i64, i64 } { ptr @.str.5727, i64 6, i64 0 }, ptr %a393 call void @finch_str_concat(ptr %a391, ptr %a392, ptr %a393) store { ptr, i64, i64 } %t390, ptr %a394 call void @finch_str_drop(ptr %a394) @@ -87012,7 +91011,7 @@ inrange8483: call void @finch_str_drop(ptr %a400) %t401 = load { ptr, i64, i64 }, ptr %a397 store { ptr, i64, i64 } %t401, ptr %a403 - store { ptr, i64, i64 } { ptr @.str.5520, i64 6, i64 0 }, ptr %a404 + store { ptr, i64, i64 } { ptr @.str.5728, i64 6, i64 0 }, ptr %a404 call void @finch_str_concat(ptr %a402, ptr %a403, ptr %a404) store { ptr, i64, i64 } %t401, ptr %a405 call void @finch_str_drop(ptr %a405) @@ -87052,7 +91051,7 @@ inrange8483: %t436 = load %S.ast.Type, ptr %a435 %t437 = insertvalue %S.gen.Val %t431, %S.ast.Type %t436, 1 %t438 = load %S.ast.Node, ptr %a2 - %t439 = call %S.gen.Val @finch.gen.compare(ptr %t424, { ptr, i64, i64 } { ptr @.str.5521, i64 2, i64 0 }, %S.gen.Val %t425, %S.gen.Val %t437, %S.ast.Node %t438) + %t439 = call %S.gen.Val @finch.gen.compare(ptr %t424, { ptr, i64, i64 } { ptr @.str.5729, i64 2, i64 0 }, %S.gen.Val %t425, %S.gen.Val %t437, %S.ast.Node %t438) store %S.gen.Val %t437, ptr %a440 call void @finch.drop.S_gen_Val(ptr %a440) %t441 = extractvalue %S.gen.Val %t439, 0 @@ -87073,7 +91072,7 @@ inrange8483: %t453 = load ptr, ptr %a1 %t454 = load { ptr, i64, i64 }, ptr %a356 %t455 = load { ptr, i64, i64 }, ptr %a318 - call void @finch.gen.store(ptr %t453, { ptr, i64, i64 } { ptr @.str.5522, i64 3, i64 0 }, { ptr, i64, i64 } %t454, { ptr, i64, i64 } %t455) + call void @finch.gen.store(ptr %t453, { ptr, i64, i64 } { ptr @.str.5730, i64 3, i64 0 }, { ptr, i64, i64 } %t454, { ptr, i64, i64 } %t455) %t456 = load ptr, ptr %a1 %t457 = load { ptr, i64, i64 }, ptr %a348 call void @finch.gen.br(ptr %t456, { ptr, i64, i64 } %t457) @@ -87083,12 +91082,12 @@ inrange8483: %t460 = load ptr, ptr %a1 %t461 = load ptr, ptr %a1 %t462 = load { ptr, i64, i64 }, ptr %a356 - store { ptr, i64, i64 } { ptr @.str.5524, i64 8, i64 0 }, ptr %a464 + store { ptr, i64, i64 } { ptr @.str.5732, i64 8, i64 0 }, ptr %a464 store { ptr, i64, i64 } %t462, ptr %a465 call void @finch_str_concat(ptr %a463, ptr %a464, ptr %a465) %t466 = load { ptr, i64, i64 }, ptr %a463 store { ptr, i64, i64 } %t466, ptr %a468 - store { ptr, i64, i64 } { ptr @.str.5525, i64 3, i64 0 }, ptr %a469 + store { ptr, i64, i64 } { ptr @.str.5733, i64 3, i64 0 }, ptr %a469 call void @finch_str_concat(ptr %a467, ptr %a468, ptr %a469) store { ptr, i64, i64 } %t466, ptr %a470 call void @finch_str_drop(ptr %a470) @@ -87097,7 +91096,7 @@ inrange8483: store { ptr, i64, i64 } %t471, ptr %a473 call void @finch_str_drop(ptr %a473) %t474 = load { ptr, i64, i64 }, ptr %a331 - call void @finch.gen.store(ptr %t460, { ptr, i64, i64 } { ptr @.str.5523, i64 3, i64 0 }, { ptr, i64, i64 } %t472, { ptr, i64, i64 } %t474) + call void @finch.gen.store(ptr %t460, { ptr, i64, i64 } { ptr @.str.5731, i64 3, i64 0 }, { ptr, i64, i64 } %t472, { ptr, i64, i64 } %t474) store { ptr, i64, i64 } %t472, ptr %a475 call void @finch_str_drop(ptr %a475) %t476 = load ptr, ptr %a1 @@ -87111,21 +91110,21 @@ inrange8483: call void @finch.gen.release(ptr %t480, %S.gen.Val %t481) %t482 = load ptr, ptr %a1 %t483 = load { ptr, i64, i64 }, ptr %a318 - %t484 = call { ptr, i64, i64 } @finch.gen.load(ptr %t482, { ptr, i64, i64 } { ptr @.str.5526, i64 3, i64 0 }, { ptr, i64, i64 } %t483) + %t484 = call { ptr, i64, i64 } @finch.gen.load(ptr %t482, { ptr, i64, i64 } { ptr @.str.5734, i64 3, i64 0 }, { ptr, i64, i64 } %t483) store { ptr, i64, i64 } %t484, ptr %a485 %t486 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t486, ptr %a487 - store { ptr, i64, i64 } { ptr @.str.5527, i64 4, i64 0 }, ptr %a488 + store { ptr, i64, i64 } { ptr @.str.5735, i64 4, i64 0 }, ptr %a488 %t489 = call i32 @finch_str_eq(ptr %a487, ptr %a488) %t490 = icmp ne i32 %t489, 0 - br i1 %t490, label %then8484, label %endif8486 -then8484: + br i1 %t490, label %then8886, label %endif8888 +then8886: %t491 = load { ptr, i64, i64 }, ptr %a485 store { ptr, i64, i64 } %t491, ptr %a492 call void @finch_str_copy(ptr %a493, ptr %a492) %t494 = load { ptr, i64, i64 }, ptr %a493 %t495 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t494, 0 - %t496 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5528, i64 3, i64 0 }) + %t496 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5736, i64 3, i64 0 }) %t497 = insertvalue %S.gen.Val %t495, %S.ast.Type %t496, 1 call void @finch_str_drop(ptr %a485) call void @finch_str_drop(ptr %a446) @@ -87147,15 +91146,15 @@ then8484: call void @finch_str_drop(ptr %a19) call void @finch.drop.S_ast_Type(ptr %a15) ret %S.gen.Val %t497 -endif8486: +endif8888: %t498 = load ptr, ptr %a1 %t499 = load { ptr, i64, i64 }, ptr %a485 - store { ptr, i64, i64 } { ptr @.str.5529, i64 13, i64 0 }, ptr %a501 + store { ptr, i64, i64 } { ptr @.str.5737, i64 13, i64 0 }, ptr %a501 store { ptr, i64, i64 } %t499, ptr %a502 call void @finch_str_concat(ptr %a500, ptr %a501, ptr %a502) %t503 = load { ptr, i64, i64 }, ptr %a500 store { ptr, i64, i64 } %t503, ptr %a505 - store { ptr, i64, i64 } { ptr @.str.5530, i64 3, i64 0 }, ptr %a506 + store { ptr, i64, i64 } { ptr @.str.5738, i64 3, i64 0 }, ptr %a506 call void @finch_str_concat(ptr %a504, ptr %a505, ptr %a506) store { ptr, i64, i64 } %t503, ptr %a507 call void @finch_str_drop(ptr %a507) @@ -87164,7 +91163,7 @@ endif8486: store { ptr, i64, i64 } %t508, ptr %a510 call void @finch_str_drop(ptr %a510) %t511 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t509, 0 - %t512 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5531, i64 4, i64 0 }) + %t512 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5739, i64 4, i64 0 }) %t513 = insertvalue %S.gen.Val %t511, %S.ast.Type %t512, 1 call void @finch_str_drop(ptr %a485) call void @finch_str_drop(ptr %a446) @@ -87186,44 +91185,44 @@ endif8486: call void @finch_str_drop(ptr %a19) call void @finch.drop.S_ast_Type(ptr %a15) ret %S.gen.Val %t513 -endif8479: +endif8881: %t514 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t514, ptr %a515 - store { ptr, i64, i64 } { ptr @.str.5532, i64 4, i64 0 }, ptr %a516 + store { ptr, i64, i64 } { ptr @.str.5740, i64 4, i64 0 }, ptr %a516 %t517 = call i32 @finch_str_eq(ptr %a515, ptr %a516) %t518 = icmp ne i32 %t517, 0 - br i1 %t518, label %then8487, label %endif8489 -then8487: + br i1 %t518, label %then8889, label %endif8891 +then8889: %t519 = load ptr, ptr %a1 %t520 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t519, %S.ast.Node %t520, i64 1) %t521 = getelementptr inbounds %S.ast.Type, ptr %a15, i32 0, i32 0 %t522 = load { ptr, i64, i64 }, ptr %t521 store { ptr, i64, i64 } %t522, ptr %a523 - store { ptr, i64, i64 } { ptr @.str.5533, i64 3, i64 0 }, ptr %a524 + store { ptr, i64, i64 } { ptr @.str.5741, i64 3, i64 0 }, ptr %a524 %t525 = call i32 @finch_str_eq(ptr %a523, ptr %a524) %t526 = icmp eq i32 %t525, 0 - br i1 %t526, label %then8490, label %endif8492 -then8490: + br i1 %t526, label %then8892, label %endif8894 +then8892: %t527 = load ptr, ptr %a1 %t528 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t527, %S.ast.Node %t528, { ptr, i64, i64 } { ptr @.str.5534, i64 31, i64 0 }) - br label %endif8492 -endif8492: + call void @finch.gen.fail(ptr %t527, %S.ast.Node %t528, { ptr, i64, i64 } { ptr @.str.5742, i64 31, i64 0 }) + br label %endif8894 +endif8894: %t529 = load ptr, ptr %a1 %t530 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t531 = load { ptr, i64, i64 }, ptr %t530 %t532 = extractvalue { ptr, i64, i64 } %t531, 1 %t533 = icmp uge i64 1, %t532 - br i1 %t533, label %range8493, label %inrange8494 -range8493: - call void @finch_panic_index(ptr @.str.5535, i64 5242, i64 1, i64 %t532) + br i1 %t533, label %range8895, label %inrange8896 +range8895: + call void @finch_panic_index(ptr @.str.5743, i64 5477, i64 1, i64 %t532) unreachable -inrange8494: +inrange8896: %t534 = extractvalue { ptr, i64, i64 } %t531, 0 %t535 = getelementptr inbounds %S.ast.Node, ptr %t534, i64 1 %t536 = load %S.ast.Node, ptr %t535 - %t537 = call %S.gen.Val @finch.gen.strArg(ptr %t529, %S.ast.Node %t536, { ptr, i64, i64 } { ptr @.str.5536, i64 13, i64 0 }) + %t537 = call %S.gen.Val @finch.gen.strArg(ptr %t529, %S.ast.Node %t536, { ptr, i64, i64 } { ptr @.str.5744, i64 13, i64 0 }) store %S.gen.Val %t537, ptr %a538 %t539 = load ptr, ptr %a1 %t540 = load %S.gen.Val, ptr %a538 @@ -87234,12 +91233,12 @@ inrange8494: store { ptr, i64, i64 } %t544, ptr %a545 %t546 = load ptr, ptr %a1 %t547 = load { ptr, i64, i64 }, ptr %a545 - store { ptr, i64, i64 } { ptr @.str.5537, i64 30, i64 0 }, ptr %a549 + store { ptr, i64, i64 } { ptr @.str.5745, i64 30, i64 0 }, ptr %a549 store { ptr, i64, i64 } %t547, ptr %a550 call void @finch_str_concat(ptr %a548, ptr %a549, ptr %a550) %t551 = load { ptr, i64, i64 }, ptr %a548 store { ptr, i64, i64 } %t551, ptr %a553 - store { ptr, i64, i64 } { ptr @.str.5538, i64 6, i64 0 }, ptr %a554 + store { ptr, i64, i64 } { ptr @.str.5746, i64 6, i64 0 }, ptr %a554 call void @finch_str_concat(ptr %a552, ptr %a553, ptr %a554) store { ptr, i64, i64 } %t551, ptr %a555 call void @finch_str_drop(ptr %a555) @@ -87252,7 +91251,7 @@ inrange8494: call void @finch_str_drop(ptr %a561) %t562 = load { ptr, i64, i64 }, ptr %a558 store { ptr, i64, i64 } %t562, ptr %a564 - store { ptr, i64, i64 } { ptr @.str.5539, i64 6, i64 0 }, ptr %a565 + store { ptr, i64, i64 } { ptr @.str.5747, i64 6, i64 0 }, ptr %a565 call void @finch_str_concat(ptr %a563, ptr %a564, ptr %a565) store { ptr, i64, i64 } %t562, ptr %a566 call void @finch_str_drop(ptr %a566) @@ -87265,7 +91264,7 @@ inrange8494: call void @finch_str_drop(ptr %a572) %t573 = load { ptr, i64, i64 }, ptr %a569 store { ptr, i64, i64 } %t573, ptr %a575 - store { ptr, i64, i64 } { ptr @.str.5540, i64 1, i64 0 }, ptr %a576 + store { ptr, i64, i64 } { ptr @.str.5748, i64 1, i64 0 }, ptr %a576 call void @finch_str_concat(ptr %a574, ptr %a575, ptr %a576) store { ptr, i64, i64 } %t573, ptr %a577 call void @finch_str_drop(ptr %a577) @@ -87278,9 +91277,9 @@ inrange8494: call void @finch.gen.release(ptr %t580, %S.gen.Val %t581) %t582 = load ptr, ptr %a1 %t583 = load { ptr, i64, i64 }, ptr %a545 - %t584 = call { ptr, i64, i64 } @finch.gen.load(ptr %t582, { ptr, i64, i64 } { ptr @.str.5541, i64 17, i64 0 }, { ptr, i64, i64 } %t583) + %t584 = call { ptr, i64, i64 } @finch.gen.load(ptr %t582, { ptr, i64, i64 } { ptr @.str.5749, i64 17, i64 0 }, { ptr, i64, i64 } %t583) %t585 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t584, 0 - %t586 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5542, i64 3, i64 0 }) + %t586 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5750, i64 3, i64 0 }) %t587 = insertvalue %S.gen.Val %t585, %S.ast.Type %t586, 1 %t588 = insertvalue %S.gen.Val %t587, i1 true, 2 call void @finch_str_drop(ptr %a545) @@ -87291,14 +91290,14 @@ inrange8494: call void @finch_str_drop(ptr %a19) call void @finch.drop.S_ast_Type(ptr %a15) ret %S.gen.Val %t588 -endif8489: +endif8891: %t589 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t589, ptr %a590 - store { ptr, i64, i64 } { ptr @.str.5543, i64 6, i64 0 }, ptr %a591 + store { ptr, i64, i64 } { ptr @.str.5751, i64 6, i64 0 }, ptr %a591 %t592 = call i32 @finch_str_eq(ptr %a590, ptr %a591) %t593 = icmp ne i32 %t592, 0 - br i1 %t593, label %then8495, label %endif8497 -then8495: + br i1 %t593, label %then8897, label %endif8899 +then8897: %t594 = load ptr, ptr %a1 %t595 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t594, %S.ast.Node %t595, i64 2) @@ -87308,29 +91307,29 @@ then8495: %t599 = load { ptr, i64, i64 }, ptr %t598 %t600 = extractvalue { ptr, i64, i64 } %t599, 1 %t601 = icmp uge i64 1, %t600 - br i1 %t601, label %range8498, label %inrange8499 -range8498: - call void @finch_panic_index(ptr @.str.5544, i64 5251, i64 1, i64 %t600) + br i1 %t601, label %range8900, label %inrange8901 +range8900: + call void @finch_panic_index(ptr @.str.5752, i64 5486, i64 1, i64 %t600) unreachable -inrange8499: +inrange8901: %t602 = extractvalue { ptr, i64, i64 } %t599, 0 %t603 = getelementptr inbounds %S.ast.Node, ptr %t602, i64 1 %t604 = load %S.ast.Node, ptr %t603 %t605 = call %S.gen.Val @finch.gen.expr(ptr %t597, %S.ast.Node %t604) - %t606 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5545, i64 3, i64 0 }) + %t606 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5753, i64 3, i64 0 }) %t607 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t608 = load { ptr, i64, i64 }, ptr %t607 %t609 = extractvalue { ptr, i64, i64 } %t608, 1 %t610 = icmp uge i64 1, %t609 - br i1 %t610, label %range8500, label %inrange8501 -range8500: - call void @finch_panic_index(ptr @.str.5546, i64 5251, i64 1, i64 %t609) + br i1 %t610, label %range8902, label %inrange8903 +range8902: + call void @finch_panic_index(ptr @.str.5754, i64 5486, i64 1, i64 %t609) unreachable -inrange8501: +inrange8903: %t611 = extractvalue { ptr, i64, i64 } %t608, 0 %t612 = getelementptr inbounds %S.ast.Node, ptr %t611, i64 1 %t613 = load %S.ast.Node, ptr %t612 - %t614 = call %S.gen.Val @finch.gen.coerce(ptr %t596, %S.gen.Val %t605, %S.ast.Type %t606, %S.ast.Node %t613, { ptr, i64, i64 } { ptr @.str.5547, i64 12, i64 0 }) + %t614 = call %S.gen.Val @finch.gen.coerce(ptr %t596, %S.gen.Val %t605, %S.ast.Type %t606, %S.ast.Node %t613, { ptr, i64, i64 } { ptr @.str.5755, i64 12, i64 0 }) store %S.gen.Val %t605, ptr %a615 call void @finch.drop.S_gen_Val(ptr %a615) store %S.ast.Type %t606, ptr %a616 @@ -87349,11 +91348,11 @@ inrange8501: %t627 = load { ptr, i64, i64 }, ptr %t626 %t628 = extractvalue { ptr, i64, i64 } %t627, 1 %t629 = icmp uge i64 2, %t628 - br i1 %t629, label %range8502, label %inrange8503 -range8502: - call void @finch_panic_index(ptr @.str.5548, i64 5252, i64 2, i64 %t628) + br i1 %t629, label %range8904, label %inrange8905 +range8904: + call void @finch_panic_index(ptr @.str.5756, i64 5487, i64 2, i64 %t628) unreachable -inrange8503: +inrange8905: %t630 = extractvalue { ptr, i64, i64 } %t627, 0 %t631 = getelementptr inbounds %S.ast.Node, ptr %t630, i64 2 %t632 = load %S.ast.Node, ptr %t631 @@ -87364,15 +91363,15 @@ inrange8503: %t637 = load { ptr, i64, i64 }, ptr %t636 %t638 = extractvalue { ptr, i64, i64 } %t637, 1 %t639 = icmp uge i64 2, %t638 - br i1 %t639, label %range8504, label %inrange8505 -range8504: - call void @finch_panic_index(ptr @.str.5549, i64 5252, i64 2, i64 %t638) + br i1 %t639, label %range8906, label %inrange8907 +range8906: + call void @finch_panic_index(ptr @.str.5757, i64 5487, i64 2, i64 %t638) unreachable -inrange8505: +inrange8907: %t640 = extractvalue { ptr, i64, i64 } %t637, 0 %t641 = getelementptr inbounds %S.ast.Node, ptr %t640, i64 2 %t642 = load %S.ast.Node, ptr %t641 - %t643 = call %S.gen.Val @finch.gen.coerce(ptr %t624, %S.gen.Val %t634, %S.ast.Type %t635, %S.ast.Node %t642, { ptr, i64, i64 } { ptr @.str.5550, i64 11, i64 0 }) + %t643 = call %S.gen.Val @finch.gen.coerce(ptr %t624, %S.gen.Val %t634, %S.ast.Type %t635, %S.ast.Node %t642, { ptr, i64, i64 } { ptr @.str.5758, i64 11, i64 0 }) store %S.gen.Val %t634, ptr %a644 call void @finch.drop.S_gen_Val(ptr %a644) %t645 = call { ptr, i64, i64 } @finch.gen.own(ptr %t623, %S.gen.Val %t643) @@ -87382,22 +91381,22 @@ inrange8505: %t648 = load ptr, ptr %a1 %t649 = load ptr, ptr %a1 %t650 = icmp eq ptr %t649, null - br i1 %t650, label %panic8506, label %ok8507 -panic8506: - call void @finch_panic(ptr @.str.5551, i64 5253, ptr @.str.5552) + br i1 %t650, label %panic8908, label %ok8909 +panic8908: + call void @finch_panic(ptr @.str.5759, i64 5488, ptr @.str.5760) unreachable -ok8507: +ok8909: %t651 = getelementptr inbounds %S.gen.Gen, ptr %t649, i32 0, i32 1 %t652 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 13 %t653 = load i64, ptr %t652 %t654 = load { ptr, i64, i64 }, ptr %t651 %t655 = extractvalue { ptr, i64, i64 } %t654, 1 %t656 = icmp uge i64 %t653, %t655 - br i1 %t656, label %range8508, label %inrange8509 -range8508: - call void @finch_panic_index(ptr @.str.5553, i64 5253, i64 %t653, i64 %t655) + br i1 %t656, label %range8910, label %inrange8911 +range8910: + call void @finch_panic_index(ptr @.str.5761, i64 5488, i64 %t653, i64 %t655) unreachable -inrange8509: +inrange8911: %t657 = extractvalue { ptr, i64, i64 } %t654, 0 %t658 = getelementptr inbounds { ptr, i64, i64 }, ptr %t657, i64 %t653 %t659 = load { ptr, i64, i64 }, ptr %t658 @@ -87405,12 +91404,12 @@ inrange8509: store { ptr, i64, i64 } %t660, ptr %a661 %t662 = load ptr, ptr %a1 %t663 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.5554, i64 36, i64 0 }, ptr %a665 + store { ptr, i64, i64 } { ptr @.str.5762, i64 36, i64 0 }, ptr %a665 store { ptr, i64, i64 } %t663, ptr %a666 call void @finch_str_concat(ptr %a664, ptr %a665, ptr %a666) %t667 = load { ptr, i64, i64 }, ptr %a664 store { ptr, i64, i64 } %t667, ptr %a669 - store { ptr, i64, i64 } { ptr @.str.5555, i64 6, i64 0 }, ptr %a670 + store { ptr, i64, i64 } { ptr @.str.5763, i64 6, i64 0 }, ptr %a670 call void @finch_str_concat(ptr %a668, ptr %a669, ptr %a670) store { ptr, i64, i64 } %t667, ptr %a671 call void @finch_str_drop(ptr %a671) @@ -87423,7 +91422,7 @@ inrange8509: call void @finch_str_drop(ptr %a677) %t678 = load { ptr, i64, i64 }, ptr %a674 store { ptr, i64, i64 } %t678, ptr %a680 - store { ptr, i64, i64 } { ptr @.str.5556, i64 6, i64 0 }, ptr %a681 + store { ptr, i64, i64 } { ptr @.str.5764, i64 6, i64 0 }, ptr %a681 call void @finch_str_concat(ptr %a679, ptr %a680, ptr %a681) store { ptr, i64, i64 } %t678, ptr %a682 call void @finch_str_drop(ptr %a682) @@ -87440,7 +91439,7 @@ inrange8509: call void @finch_str_drop(ptr %a691) %t692 = load { ptr, i64, i64 }, ptr %a687 store { ptr, i64, i64 } %t692, ptr %a694 - store { ptr, i64, i64 } { ptr @.str.5557, i64 6, i64 0 }, ptr %a695 + store { ptr, i64, i64 } { ptr @.str.5765, i64 6, i64 0 }, ptr %a695 call void @finch_str_concat(ptr %a693, ptr %a694, ptr %a695) store { ptr, i64, i64 } %t692, ptr %a696 call void @finch_str_drop(ptr %a696) @@ -87453,7 +91452,7 @@ inrange8509: call void @finch_str_drop(ptr %a702) %t703 = load { ptr, i64, i64 }, ptr %a699 store { ptr, i64, i64 } %t703, ptr %a705 - store { ptr, i64, i64 } { ptr @.str.5558, i64 6, i64 0 }, ptr %a706 + store { ptr, i64, i64 } { ptr @.str.5766, i64 6, i64 0 }, ptr %a706 call void @finch_str_concat(ptr %a704, ptr %a705, ptr %a706) store { ptr, i64, i64 } %t703, ptr %a707 call void @finch_str_drop(ptr %a707) @@ -87471,7 +91470,7 @@ inrange8509: call void @finch_str_drop(ptr %a717) %t718 = load { ptr, i64, i64 }, ptr %a713 store { ptr, i64, i64 } %t718, ptr %a720 - store { ptr, i64, i64 } { ptr @.str.5559, i64 1, i64 0 }, ptr %a721 + store { ptr, i64, i64 } { ptr @.str.5767, i64 1, i64 0 }, ptr %a721 call void @finch_str_concat(ptr %a719, ptr %a720, ptr %a721) store { ptr, i64, i64 } %t718, ptr %a722 call void @finch_str_drop(ptr %a722) @@ -87481,19 +91480,19 @@ inrange8509: call void @finch_str_drop(ptr %a724) %t725 = load ptr, ptr %a1 %t726 = load { ptr, i64, i64 }, ptr %a3 - %t727 = call { ptr, i64, i64 } @finch.gen.load(ptr %t725, { ptr, i64, i64 } { ptr @.str.5560, i64 3, i64 0 }, { ptr, i64, i64 } %t726) + %t727 = call { ptr, i64, i64 } @finch.gen.load(ptr %t725, { ptr, i64, i64 } { ptr @.str.5768, i64 3, i64 0 }, { ptr, i64, i64 } %t726) store { ptr, i64, i64 } %t727, ptr %a728 %t729 = load ptr, ptr %a1 %t730 = load { ptr, i64, i64 }, ptr %a19 %t731 = load { ptr, i64, i64 }, ptr %a647 %t732 = load ptr, ptr %a1 %t733 = load { ptr, i64, i64 }, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.5561, i64 23, i64 0 }, ptr %a735 + store { ptr, i64, i64 } { ptr @.str.5769, i64 23, i64 0 }, ptr %a735 store { ptr, i64, i64 } %t733, ptr %a736 call void @finch_str_concat(ptr %a734, ptr %a735, ptr %a736) %t737 = load { ptr, i64, i64 }, ptr %a734 store { ptr, i64, i64 } %t737, ptr %a739 - store { ptr, i64, i64 } { ptr @.str.5562, i64 6, i64 0 }, ptr %a740 + store { ptr, i64, i64 } { ptr @.str.5770, i64 6, i64 0 }, ptr %a740 call void @finch_str_concat(ptr %a738, ptr %a739, ptr %a740) store { ptr, i64, i64 } %t737, ptr %a741 call void @finch_str_drop(ptr %a741) @@ -87506,7 +91505,7 @@ inrange8509: call void @finch_str_drop(ptr %a747) %t748 = load { ptr, i64, i64 }, ptr %a744 store { ptr, i64, i64 } %t748, ptr %a750 - store { ptr, i64, i64 } { ptr @.str.5563, i64 6, i64 0 }, ptr %a751 + store { ptr, i64, i64 } { ptr @.str.5771, i64 6, i64 0 }, ptr %a751 call void @finch_str_concat(ptr %a749, ptr %a750, ptr %a751) store { ptr, i64, i64 } %t748, ptr %a752 call void @finch_str_drop(ptr %a752) @@ -87524,7 +91523,7 @@ inrange8509: call void @finch.gen.store(ptr %t729, { ptr, i64, i64 } %t730, { ptr, i64, i64 } %t731, { ptr, i64, i64 } %t760) store { ptr, i64, i64 } %t760, ptr %a762 call void @finch_str_drop(ptr %a762) - %t763 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5564, i64 4, i64 0 }) + %t763 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5772, i64 4, i64 0 }) %t764 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t763, 1 call void @finch_str_drop(ptr %a728) call void @finch_str_drop(ptr %a661) @@ -87535,14 +91534,14 @@ inrange8509: call void @finch_str_drop(ptr %a19) call void @finch.drop.S_ast_Type(ptr %a15) ret %S.gen.Val %t764 -endif8497: +endif8899: %t765 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t765, ptr %a766 - store { ptr, i64, i64 } { ptr @.str.5565, i64 6, i64 0 }, ptr %a767 + store { ptr, i64, i64 } { ptr @.str.5773, i64 6, i64 0 }, ptr %a767 %t768 = call i32 @finch_str_eq(ptr %a766, ptr %a767) %t769 = icmp ne i32 %t768, 0 - br i1 %t769, label %then8510, label %endif8512 -then8510: + br i1 %t769, label %then8912, label %endif8914 +then8912: %t770 = load ptr, ptr %a1 %t771 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t770, %S.ast.Node %t771, i64 1) @@ -87552,29 +91551,29 @@ then8510: %t775 = load { ptr, i64, i64 }, ptr %t774 %t776 = extractvalue { ptr, i64, i64 } %t775, 1 %t777 = icmp uge i64 1, %t776 - br i1 %t777, label %range8513, label %inrange8514 -range8513: - call void @finch_panic_index(ptr @.str.5566, i64 5261, i64 1, i64 %t776) + br i1 %t777, label %range8915, label %inrange8916 +range8915: + call void @finch_panic_index(ptr @.str.5774, i64 5496, i64 1, i64 %t776) unreachable -inrange8514: +inrange8916: %t778 = extractvalue { ptr, i64, i64 } %t775, 0 %t779 = getelementptr inbounds %S.ast.Node, ptr %t778, i64 1 %t780 = load %S.ast.Node, ptr %t779 %t781 = call %S.gen.Val @finch.gen.expr(ptr %t773, %S.ast.Node %t780) - %t782 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5567, i64 3, i64 0 }) + %t782 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5775, i64 3, i64 0 }) %t783 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t784 = load { ptr, i64, i64 }, ptr %t783 %t785 = extractvalue { ptr, i64, i64 } %t784, 1 %t786 = icmp uge i64 1, %t785 - br i1 %t786, label %range8515, label %inrange8516 -range8515: - call void @finch_panic_index(ptr @.str.5568, i64 5261, i64 1, i64 %t785) + br i1 %t786, label %range8917, label %inrange8918 +range8917: + call void @finch_panic_index(ptr @.str.5776, i64 5496, i64 1, i64 %t785) unreachable -inrange8516: +inrange8918: %t787 = extractvalue { ptr, i64, i64 } %t784, 0 %t788 = getelementptr inbounds %S.ast.Node, ptr %t787, i64 1 %t789 = load %S.ast.Node, ptr %t788 - %t790 = call %S.gen.Val @finch.gen.coerce(ptr %t772, %S.gen.Val %t781, %S.ast.Type %t782, %S.ast.Node %t789, { ptr, i64, i64 } { ptr @.str.5569, i64 12, i64 0 }) + %t790 = call %S.gen.Val @finch.gen.coerce(ptr %t772, %S.gen.Val %t781, %S.ast.Type %t782, %S.ast.Node %t789, { ptr, i64, i64 } { ptr @.str.5777, i64 12, i64 0 }) store %S.gen.Val %t781, ptr %a791 call void @finch.drop.S_gen_Val(ptr %a791) store %S.ast.Type %t782, ptr %a792 @@ -87590,25 +91589,25 @@ inrange8516: %t800 = load { ptr, i64, i64 }, ptr %a798 %t801 = load ptr, ptr %a1 %t802 = load { ptr, i64, i64 }, ptr %a39 - %t803 = call { ptr, i64, i64 } @finch.gen.load(ptr %t801, { ptr, i64, i64 } { ptr @.str.5570, i64 3, i64 0 }, { ptr, i64, i64 } %t802) + %t803 = call { ptr, i64, i64 } @finch.gen.load(ptr %t801, { ptr, i64, i64 } { ptr @.str.5778, i64 3, i64 0 }, { ptr, i64, i64 } %t802) %t804 = load %S.ast.Node, ptr %a2 call void @finch.gen.boundsCheck(ptr %t799, { ptr, i64, i64 } %t800, { ptr, i64, i64 } %t803, %S.ast.Node %t804) store { ptr, i64, i64 } %t803, ptr %a805 call void @finch_str_drop(ptr %a805) %t806 = load ptr, ptr %a1 %t807 = load { ptr, i64, i64 }, ptr %a3 - %t808 = call { ptr, i64, i64 } @finch.gen.load(ptr %t806, { ptr, i64, i64 } { ptr @.str.5571, i64 3, i64 0 }, { ptr, i64, i64 } %t807) + %t808 = call { ptr, i64, i64 } @finch.gen.load(ptr %t806, { ptr, i64, i64 } { ptr @.str.5779, i64 3, i64 0 }, { ptr, i64, i64 } %t807) store { ptr, i64, i64 } %t808, ptr %a809 %t810 = load ptr, ptr %a1 %t811 = load { ptr, i64, i64 }, ptr %a19 %t812 = load ptr, ptr %a1 %t813 = load { ptr, i64, i64 }, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.5572, i64 23, i64 0 }, ptr %a815 + store { ptr, i64, i64 } { ptr @.str.5780, i64 23, i64 0 }, ptr %a815 store { ptr, i64, i64 } %t813, ptr %a816 call void @finch_str_concat(ptr %a814, ptr %a815, ptr %a816) %t817 = load { ptr, i64, i64 }, ptr %a814 store { ptr, i64, i64 } %t817, ptr %a819 - store { ptr, i64, i64 } { ptr @.str.5573, i64 6, i64 0 }, ptr %a820 + store { ptr, i64, i64 } { ptr @.str.5781, i64 6, i64 0 }, ptr %a820 call void @finch_str_concat(ptr %a818, ptr %a819, ptr %a820) store { ptr, i64, i64 } %t817, ptr %a821 call void @finch_str_drop(ptr %a821) @@ -87621,7 +91620,7 @@ inrange8516: call void @finch_str_drop(ptr %a827) %t828 = load { ptr, i64, i64 }, ptr %a824 store { ptr, i64, i64 } %t828, ptr %a830 - store { ptr, i64, i64 } { ptr @.str.5574, i64 6, i64 0 }, ptr %a831 + store { ptr, i64, i64 } { ptr @.str.5782, i64 6, i64 0 }, ptr %a831 call void @finch_str_concat(ptr %a829, ptr %a830, ptr %a831) store { ptr, i64, i64 } %t828, ptr %a832 call void @finch_str_drop(ptr %a832) @@ -87642,12 +91641,12 @@ inrange8516: store { ptr, i64, i64 } %t842, ptr %a844 %t845 = load ptr, ptr %a1 %t846 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.5575, i64 36, i64 0 }, ptr %a848 + store { ptr, i64, i64 } { ptr @.str.5783, i64 36, i64 0 }, ptr %a848 store { ptr, i64, i64 } %t846, ptr %a849 call void @finch_str_concat(ptr %a847, ptr %a848, ptr %a849) %t850 = load { ptr, i64, i64 }, ptr %a847 store { ptr, i64, i64 } %t850, ptr %a852 - store { ptr, i64, i64 } { ptr @.str.5576, i64 6, i64 0 }, ptr %a853 + store { ptr, i64, i64 } { ptr @.str.5784, i64 6, i64 0 }, ptr %a853 call void @finch_str_concat(ptr %a851, ptr %a852, ptr %a853) store { ptr, i64, i64 } %t850, ptr %a854 call void @finch_str_drop(ptr %a854) @@ -87660,7 +91659,7 @@ inrange8516: call void @finch_str_drop(ptr %a860) %t861 = load { ptr, i64, i64 }, ptr %a857 store { ptr, i64, i64 } %t861, ptr %a863 - store { ptr, i64, i64 } { ptr @.str.5577, i64 6, i64 0 }, ptr %a864 + store { ptr, i64, i64 } { ptr @.str.5785, i64 6, i64 0 }, ptr %a864 call void @finch_str_concat(ptr %a862, ptr %a863, ptr %a864) store { ptr, i64, i64 } %t861, ptr %a865 call void @finch_str_drop(ptr %a865) @@ -87677,7 +91676,7 @@ inrange8516: call void @finch_str_drop(ptr %a874) %t875 = load { ptr, i64, i64 }, ptr %a870 store { ptr, i64, i64 } %t875, ptr %a877 - store { ptr, i64, i64 } { ptr @.str.5578, i64 1, i64 0 }, ptr %a878 + store { ptr, i64, i64 } { ptr @.str.5786, i64 1, i64 0 }, ptr %a878 call void @finch_str_concat(ptr %a876, ptr %a877, ptr %a878) store { ptr, i64, i64 } %t875, ptr %a879 call void @finch_str_drop(ptr %a879) @@ -87707,14 +91706,14 @@ inrange8516: call void @finch_str_drop(ptr %a19) call void @finch.drop.S_ast_Type(ptr %a15) ret %S.gen.Val %t895 -endif8512: +endif8914: %t896 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t896, ptr %a897 - store { ptr, i64, i64 } { ptr @.str.5579, i64 6, i64 0 }, ptr %a898 + store { ptr, i64, i64 } { ptr @.str.5787, i64 6, i64 0 }, ptr %a898 %t899 = call i32 @finch_str_eq(ptr %a897, ptr %a898) %t900 = icmp ne i32 %t899, 0 - br i1 %t900, label %then8517, label %endif8519 -then8517: + br i1 %t900, label %then8919, label %endif8921 +then8919: %t901 = load ptr, ptr %a1 %t902 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t901, %S.ast.Node %t902, i64 1) @@ -87724,29 +91723,29 @@ then8517: %t906 = load { ptr, i64, i64 }, ptr %t905 %t907 = extractvalue { ptr, i64, i64 } %t906, 1 %t908 = icmp uge i64 1, %t907 - br i1 %t908, label %range8520, label %inrange8521 -range8520: - call void @finch_panic_index(ptr @.str.5580, i64 5270, i64 1, i64 %t907) + br i1 %t908, label %range8922, label %inrange8923 +range8922: + call void @finch_panic_index(ptr @.str.5788, i64 5505, i64 1, i64 %t907) unreachable -inrange8521: +inrange8923: %t909 = extractvalue { ptr, i64, i64 } %t906, 0 %t910 = getelementptr inbounds %S.ast.Node, ptr %t909, i64 1 %t911 = load %S.ast.Node, ptr %t910 %t912 = call %S.gen.Val @finch.gen.expr(ptr %t904, %S.ast.Node %t911) - %t913 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5581, i64 3, i64 0 }) + %t913 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5789, i64 3, i64 0 }) %t914 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t915 = load { ptr, i64, i64 }, ptr %t914 %t916 = extractvalue { ptr, i64, i64 } %t915, 1 %t917 = icmp uge i64 1, %t916 - br i1 %t917, label %range8522, label %inrange8523 -range8522: - call void @finch_panic_index(ptr @.str.5582, i64 5270, i64 1, i64 %t916) + br i1 %t917, label %range8924, label %inrange8925 +range8924: + call void @finch_panic_index(ptr @.str.5790, i64 5505, i64 1, i64 %t916) unreachable -inrange8523: +inrange8925: %t918 = extractvalue { ptr, i64, i64 } %t915, 0 %t919 = getelementptr inbounds %S.ast.Node, ptr %t918, i64 1 %t920 = load %S.ast.Node, ptr %t919 - %t921 = call %S.gen.Val @finch.gen.coerce(ptr %t903, %S.gen.Val %t912, %S.ast.Type %t913, %S.ast.Node %t920, { ptr, i64, i64 } { ptr @.str.5583, i64 14, i64 0 }) + %t921 = call %S.gen.Val @finch.gen.coerce(ptr %t903, %S.gen.Val %t912, %S.ast.Type %t913, %S.ast.Node %t920, { ptr, i64, i64 } { ptr @.str.5791, i64 14, i64 0 }) store %S.gen.Val %t912, ptr %a922 call void @finch.drop.S_gen_Val(ptr %a922) store %S.ast.Type %t913, ptr %a923 @@ -87765,12 +91764,12 @@ inrange8523: call void @finch.gen.dropFrom(ptr %t930, { ptr, i64, i64 } %t931, %S.ast.Type %t932, { ptr, i64, i64 } %t933) %t934 = load ptr, ptr %a1 %t935 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.5584, i64 32, i64 0 }, ptr %a937 + store { ptr, i64, i64 } { ptr @.str.5792, i64 32, i64 0 }, ptr %a937 store { ptr, i64, i64 } %t935, ptr %a938 call void @finch_str_concat(ptr %a936, ptr %a937, ptr %a938) %t939 = load { ptr, i64, i64 }, ptr %a936 store { ptr, i64, i64 } %t939, ptr %a941 - store { ptr, i64, i64 } { ptr @.str.5585, i64 6, i64 0 }, ptr %a942 + store { ptr, i64, i64 } { ptr @.str.5793, i64 6, i64 0 }, ptr %a942 call void @finch_str_concat(ptr %a940, ptr %a941, ptr %a942) store { ptr, i64, i64 } %t939, ptr %a943 call void @finch_str_drop(ptr %a943) @@ -87783,7 +91782,7 @@ inrange8523: call void @finch_str_drop(ptr %a949) %t950 = load { ptr, i64, i64 }, ptr %a946 store { ptr, i64, i64 } %t950, ptr %a952 - store { ptr, i64, i64 } { ptr @.str.5586, i64 6, i64 0 }, ptr %a953 + store { ptr, i64, i64 } { ptr @.str.5794, i64 6, i64 0 }, ptr %a953 call void @finch_str_concat(ptr %a951, ptr %a952, ptr %a953) store { ptr, i64, i64 } %t950, ptr %a954 call void @finch_str_drop(ptr %a954) @@ -87800,7 +91799,7 @@ inrange8523: call void @finch_str_drop(ptr %a963) %t964 = load { ptr, i64, i64 }, ptr %a959 store { ptr, i64, i64 } %t964, ptr %a966 - store { ptr, i64, i64 } { ptr @.str.5587, i64 1, i64 0 }, ptr %a967 + store { ptr, i64, i64 } { ptr @.str.5795, i64 1, i64 0 }, ptr %a967 call void @finch_str_concat(ptr %a965, ptr %a966, ptr %a967) store { ptr, i64, i64 } %t964, ptr %a968 call void @finch_str_drop(ptr %a968) @@ -87808,7 +91807,7 @@ inrange8523: call void @finch.gen.emit(ptr %t934, { ptr, i64, i64 } %t969) store { ptr, i64, i64 } %t969, ptr %a970 call void @finch_str_drop(ptr %a970) - %t971 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5588, i64 4, i64 0 }) + %t971 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5796, i64 4, i64 0 }) %t972 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t971, 1 call void @finch_str_drop(ptr %a929) call void @finch_str_drop(ptr %a39) @@ -87816,33 +91815,33 @@ inrange8523: call void @finch_str_drop(ptr %a19) call void @finch.drop.S_ast_Type(ptr %a15) ret %S.gen.Val %t972 -endif8519: +endif8921: %t973 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t973, ptr %a974 - store { ptr, i64, i64 } { ptr @.str.5589, i64 7, i64 0 }, ptr %a975 + store { ptr, i64, i64 } { ptr @.str.5797, i64 7, i64 0 }, ptr %a975 %t976 = call i32 @finch_str_eq(ptr %a974, ptr %a975) %t977 = icmp ne i32 %t976, 0 - br i1 %t977, label %then8524, label %endif8526 -then8524: + br i1 %t977, label %then8926, label %endif8928 +then8926: %t978 = load ptr, ptr %a1 %t979 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t978, %S.ast.Node %t979, i64 0) %t980 = load ptr, ptr %a1 %t981 = load { ptr, i64, i64 }, ptr %a39 - %t982 = call { ptr, i64, i64 } @finch.gen.load(ptr %t980, { ptr, i64, i64 } { ptr @.str.5590, i64 3, i64 0 }, { ptr, i64, i64 } %t981) + %t982 = call { ptr, i64, i64 } @finch.gen.load(ptr %t980, { ptr, i64, i64 } { ptr @.str.5798, i64 3, i64 0 }, { ptr, i64, i64 } %t981) store { ptr, i64, i64 } %t982, ptr %a983 %t984 = load ptr, ptr %a1 %t985 = load { ptr, i64, i64 }, ptr %a3 - %t986 = call { ptr, i64, i64 } @finch.gen.load(ptr %t984, { ptr, i64, i64 } { ptr @.str.5591, i64 3, i64 0 }, { ptr, i64, i64 } %t985) + %t986 = call { ptr, i64, i64 } @finch.gen.load(ptr %t984, { ptr, i64, i64 } { ptr @.str.5799, i64 3, i64 0 }, { ptr, i64, i64 } %t985) store { ptr, i64, i64 } %t986, ptr %a987 %t988 = load ptr, ptr %a1 %t989 = load { ptr, i64, i64 }, ptr %a983 - store { ptr, i64, i64 } { ptr @.str.5592, i64 9, i64 0 }, ptr %a991 + store { ptr, i64, i64 } { ptr @.str.5800, i64 9, i64 0 }, ptr %a991 store { ptr, i64, i64 } %t989, ptr %a992 call void @finch_str_concat(ptr %a990, ptr %a991, ptr %a992) %t993 = load { ptr, i64, i64 }, ptr %a990 store { ptr, i64, i64 } %t993, ptr %a995 - store { ptr, i64, i64 } { ptr @.str.5593, i64 3, i64 0 }, ptr %a996 + store { ptr, i64, i64 } { ptr @.str.5801, i64 3, i64 0 }, ptr %a996 call void @finch_str_concat(ptr %a994, ptr %a995, ptr %a996) store { ptr, i64, i64 } %t993, ptr %a997 call void @finch_str_drop(ptr %a997) @@ -87857,12 +91856,12 @@ then8524: store { ptr, i64, i64 } %t1004, ptr %a1005 %t1006 = load ptr, ptr %a1 %t1007 = load { ptr, i64, i64 }, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.5594, i64 23, i64 0 }, ptr %a1009 + store { ptr, i64, i64 } { ptr @.str.5802, i64 23, i64 0 }, ptr %a1009 store { ptr, i64, i64 } %t1007, ptr %a1010 call void @finch_str_concat(ptr %a1008, ptr %a1009, ptr %a1010) %t1011 = load { ptr, i64, i64 }, ptr %a1008 store { ptr, i64, i64 } %t1011, ptr %a1013 - store { ptr, i64, i64 } { ptr @.str.5595, i64 6, i64 0 }, ptr %a1014 + store { ptr, i64, i64 } { ptr @.str.5803, i64 6, i64 0 }, ptr %a1014 call void @finch_str_concat(ptr %a1012, ptr %a1013, ptr %a1014) store { ptr, i64, i64 } %t1011, ptr %a1015 call void @finch_str_drop(ptr %a1015) @@ -87875,7 +91874,7 @@ then8524: call void @finch_str_drop(ptr %a1021) %t1022 = load { ptr, i64, i64 }, ptr %a1018 store { ptr, i64, i64 } %t1022, ptr %a1024 - store { ptr, i64, i64 } { ptr @.str.5596, i64 6, i64 0 }, ptr %a1025 + store { ptr, i64, i64 } { ptr @.str.5804, i64 6, i64 0 }, ptr %a1025 call void @finch_str_concat(ptr %a1023, ptr %a1024, ptr %a1025) store { ptr, i64, i64 } %t1022, ptr %a1026 call void @finch_str_drop(ptr %a1026) @@ -87883,11 +91882,11 @@ then8524: %t1028 = load { ptr, i64, i64 }, ptr %a1005 %t1029 = extractvalue { ptr, i64, i64 } %t1028, 1 %t1030 = icmp uge i64 3, %t1029 - br i1 %t1030, label %range8527, label %inrange8528 -range8527: - call void @finch_panic_index(ptr @.str.5597, i64 5281, i64 3, i64 %t1029) + br i1 %t1030, label %range8929, label %inrange8930 +range8929: + call void @finch_panic_index(ptr @.str.5805, i64 5516, i64 3, i64 %t1029) unreachable -inrange8528: +inrange8930: %t1031 = extractvalue { ptr, i64, i64 } %t1028, 0 %t1032 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1031, i64 3 %t1033 = load { ptr, i64, i64 }, ptr %t1032 @@ -87904,12 +91903,12 @@ inrange8528: %t1042 = load ptr, ptr %a1 %t1043 = load ptr, ptr %a1 %t1044 = load { ptr, i64, i64 }, ptr %a983 - store { ptr, i64, i64 } { ptr @.str.5599, i64 8, i64 0 }, ptr %a1046 + store { ptr, i64, i64 } { ptr @.str.5807, i64 8, i64 0 }, ptr %a1046 store { ptr, i64, i64 } %t1044, ptr %a1047 call void @finch_str_concat(ptr %a1045, ptr %a1046, ptr %a1047) %t1048 = load { ptr, i64, i64 }, ptr %a1045 store { ptr, i64, i64 } %t1048, ptr %a1050 - store { ptr, i64, i64 } { ptr @.str.5600, i64 3, i64 0 }, ptr %a1051 + store { ptr, i64, i64 } { ptr @.str.5808, i64 3, i64 0 }, ptr %a1051 call void @finch_str_concat(ptr %a1049, ptr %a1050, ptr %a1051) store { ptr, i64, i64 } %t1048, ptr %a1052 call void @finch_str_drop(ptr %a1052) @@ -87917,14 +91916,14 @@ inrange8528: %t1054 = call { ptr, i64, i64 } @finch.gen.op(ptr %t1043, { ptr, i64, i64 } %t1053) store { ptr, i64, i64 } %t1053, ptr %a1055 call void @finch_str_drop(ptr %a1055) - store { ptr, i64, i64 } { ptr @.str.5598, i64 8, i64 0 }, ptr %a1057 + store { ptr, i64, i64 } { ptr @.str.5806, i64 8, i64 0 }, ptr %a1057 store { ptr, i64, i64 } %t1054, ptr %a1058 call void @finch_str_concat(ptr %a1056, ptr %a1057, ptr %a1058) store { ptr, i64, i64 } %t1054, ptr %a1059 call void @finch_str_drop(ptr %a1059) %t1060 = load { ptr, i64, i64 }, ptr %a1056 store { ptr, i64, i64 } %t1060, ptr %a1062 - store { ptr, i64, i64 } { ptr @.str.5601, i64 2, i64 0 }, ptr %a1063 + store { ptr, i64, i64 } { ptr @.str.5809, i64 2, i64 0 }, ptr %a1063 call void @finch_str_concat(ptr %a1061, ptr %a1062, ptr %a1063) store { ptr, i64, i64 } %t1060, ptr %a1064 call void @finch_str_drop(ptr %a1064) @@ -87932,11 +91931,11 @@ inrange8528: %t1066 = load { ptr, i64, i64 }, ptr %a1005 %t1067 = extractvalue { ptr, i64, i64 } %t1066, 1 %t1068 = icmp uge i64 3, %t1067 - br i1 %t1068, label %range8529, label %inrange8530 -range8529: - call void @finch_panic_index(ptr @.str.5602, i64 5282, i64 3, i64 %t1067) + br i1 %t1068, label %range8931, label %inrange8932 +range8931: + call void @finch_panic_index(ptr @.str.5810, i64 5517, i64 3, i64 %t1067) unreachable -inrange8530: +inrange8932: %t1069 = extractvalue { ptr, i64, i64 } %t1066, 0 %t1070 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1069, i64 3 %t1071 = load { ptr, i64, i64 }, ptr %t1070 @@ -87952,12 +91951,12 @@ inrange8530: store { ptr, i64, i64 } %t1077, ptr %a1079 %t1080 = load ptr, ptr %a1 %t1081 = load { ptr, i64, i64 }, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.5603, i64 23, i64 0 }, ptr %a1083 + store { ptr, i64, i64 } { ptr @.str.5811, i64 23, i64 0 }, ptr %a1083 store { ptr, i64, i64 } %t1081, ptr %a1084 call void @finch_str_concat(ptr %a1082, ptr %a1083, ptr %a1084) %t1085 = load { ptr, i64, i64 }, ptr %a1082 store { ptr, i64, i64 } %t1085, ptr %a1087 - store { ptr, i64, i64 } { ptr @.str.5604, i64 6, i64 0 }, ptr %a1088 + store { ptr, i64, i64 } { ptr @.str.5812, i64 6, i64 0 }, ptr %a1088 call void @finch_str_concat(ptr %a1086, ptr %a1087, ptr %a1088) store { ptr, i64, i64 } %t1085, ptr %a1089 call void @finch_str_drop(ptr %a1089) @@ -87970,7 +91969,7 @@ inrange8530: call void @finch_str_drop(ptr %a1095) %t1096 = load { ptr, i64, i64 }, ptr %a1092 store { ptr, i64, i64 } %t1096, ptr %a1098 - store { ptr, i64, i64 } { ptr @.str.5605, i64 6, i64 0 }, ptr %a1099 + store { ptr, i64, i64 } { ptr @.str.5813, i64 6, i64 0 }, ptr %a1099 call void @finch_str_concat(ptr %a1097, ptr %a1098, ptr %a1099) store { ptr, i64, i64 } %t1096, ptr %a1100 call void @finch_str_drop(ptr %a1100) @@ -88009,7 +92008,7 @@ inrange8530: %t1129 = load ptr, ptr %a1 %t1130 = load { ptr, i64, i64 }, ptr %a1005 call void @finch.gen.loopEnd(ptr %t1129, { ptr, i64, i64 } %t1130) - %t1131 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5606, i64 4, i64 0 }) + %t1131 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5814, i64 4, i64 0 }) %t1132 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t1131, 1 call void @finch_str_drop(ptr %a1120) call void @finch_str_drop(ptr %a1115) @@ -88025,14 +92024,14 @@ inrange8530: call void @finch_str_drop(ptr %a19) call void @finch.drop.S_ast_Type(ptr %a15) ret %S.gen.Val %t1132 -endif8526: +endif8928: %t1133 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t1133, ptr %a1134 - store { ptr, i64, i64 } { ptr @.str.5607, i64 5, i64 0 }, ptr %a1135 + store { ptr, i64, i64 } { ptr @.str.5815, i64 5, i64 0 }, ptr %a1135 %t1136 = call i32 @finch_str_eq(ptr %a1134, ptr %a1135) %t1137 = icmp ne i32 %t1136, 0 - br i1 %t1137, label %then8531, label %endif8533 -then8531: + br i1 %t1137, label %then8933, label %endif8935 +then8933: %t1138 = load ptr, ptr %a1 %t1139 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t1138, %S.ast.Node %t1139, i64 2) @@ -88042,29 +92041,29 @@ then8531: %t1143 = load { ptr, i64, i64 }, ptr %t1142 %t1144 = extractvalue { ptr, i64, i64 } %t1143, 1 %t1145 = icmp uge i64 1, %t1144 - br i1 %t1145, label %range8534, label %inrange8535 -range8534: - call void @finch_panic_index(ptr @.str.5608, i64 5293, i64 1, i64 %t1144) + br i1 %t1145, label %range8936, label %inrange8937 +range8936: + call void @finch_panic_index(ptr @.str.5816, i64 5528, i64 1, i64 %t1144) unreachable -inrange8535: +inrange8937: %t1146 = extractvalue { ptr, i64, i64 } %t1143, 0 %t1147 = getelementptr inbounds %S.ast.Node, ptr %t1146, i64 1 %t1148 = load %S.ast.Node, ptr %t1147 %t1149 = call %S.gen.Val @finch.gen.expr(ptr %t1141, %S.ast.Node %t1148) - %t1150 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5609, i64 3, i64 0 }) + %t1150 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5817, i64 3, i64 0 }) %t1151 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t1152 = load { ptr, i64, i64 }, ptr %t1151 %t1153 = extractvalue { ptr, i64, i64 } %t1152, 1 %t1154 = icmp uge i64 1, %t1153 - br i1 %t1154, label %range8536, label %inrange8537 -range8536: - call void @finch_panic_index(ptr @.str.5610, i64 5293, i64 1, i64 %t1153) + br i1 %t1154, label %range8938, label %inrange8939 +range8938: + call void @finch_panic_index(ptr @.str.5818, i64 5528, i64 1, i64 %t1153) unreachable -inrange8537: +inrange8939: %t1155 = extractvalue { ptr, i64, i64 } %t1152, 0 %t1156 = getelementptr inbounds %S.ast.Node, ptr %t1155, i64 1 %t1157 = load %S.ast.Node, ptr %t1156 - %t1158 = call %S.gen.Val @finch.gen.coerce(ptr %t1140, %S.gen.Val %t1149, %S.ast.Type %t1150, %S.ast.Node %t1157, { ptr, i64, i64 } { ptr @.str.5611, i64 9, i64 0 }) + %t1158 = call %S.gen.Val @finch.gen.coerce(ptr %t1140, %S.gen.Val %t1149, %S.ast.Type %t1150, %S.ast.Node %t1157, { ptr, i64, i64 } { ptr @.str.5819, i64 9, i64 0 }) store %S.gen.Val %t1149, ptr %a1159 call void @finch.drop.S_gen_Val(ptr %a1159) store %S.ast.Type %t1150, ptr %a1160 @@ -88082,29 +92081,29 @@ inrange8537: %t1170 = load { ptr, i64, i64 }, ptr %t1169 %t1171 = extractvalue { ptr, i64, i64 } %t1170, 1 %t1172 = icmp uge i64 2, %t1171 - br i1 %t1172, label %range8538, label %inrange8539 -range8538: - call void @finch_panic_index(ptr @.str.5612, i64 5294, i64 2, i64 %t1171) + br i1 %t1172, label %range8940, label %inrange8941 +range8940: + call void @finch_panic_index(ptr @.str.5820, i64 5529, i64 2, i64 %t1171) unreachable -inrange8539: +inrange8941: %t1173 = extractvalue { ptr, i64, i64 } %t1170, 0 %t1174 = getelementptr inbounds %S.ast.Node, ptr %t1173, i64 2 %t1175 = load %S.ast.Node, ptr %t1174 %t1176 = call %S.gen.Val @finch.gen.expr(ptr %t1168, %S.ast.Node %t1175) - %t1177 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5613, i64 3, i64 0 }) + %t1177 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5821, i64 3, i64 0 }) %t1178 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t1179 = load { ptr, i64, i64 }, ptr %t1178 %t1180 = extractvalue { ptr, i64, i64 } %t1179, 1 %t1181 = icmp uge i64 2, %t1180 - br i1 %t1181, label %range8540, label %inrange8541 -range8540: - call void @finch_panic_index(ptr @.str.5614, i64 5294, i64 2, i64 %t1180) + br i1 %t1181, label %range8942, label %inrange8943 +range8942: + call void @finch_panic_index(ptr @.str.5822, i64 5529, i64 2, i64 %t1180) unreachable -inrange8541: +inrange8943: %t1182 = extractvalue { ptr, i64, i64 } %t1179, 0 %t1183 = getelementptr inbounds %S.ast.Node, ptr %t1182, i64 2 %t1184 = load %S.ast.Node, ptr %t1183 - %t1185 = call %S.gen.Val @finch.gen.coerce(ptr %t1167, %S.gen.Val %t1176, %S.ast.Type %t1177, %S.ast.Node %t1184, { ptr, i64, i64 } { ptr @.str.5615, i64 7, i64 0 }) + %t1185 = call %S.gen.Val @finch.gen.coerce(ptr %t1167, %S.gen.Val %t1176, %S.ast.Type %t1177, %S.ast.Node %t1184, { ptr, i64, i64 } { ptr @.str.5823, i64 7, i64 0 }) store %S.gen.Val %t1176, ptr %a1186 call void @finch.drop.S_gen_Val(ptr %a1186) store %S.ast.Type %t1177, ptr %a1187 @@ -88118,16 +92117,16 @@ inrange8541: store { ptr, i64, i64 } %t1191, ptr %a1193 %t1194 = load ptr, ptr %a1 %t1195 = load { ptr, i64, i64 }, ptr %a39 - %t1196 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1194, { ptr, i64, i64 } { ptr @.str.5616, i64 3, i64 0 }, { ptr, i64, i64 } %t1195) + %t1196 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1194, { ptr, i64, i64 } { ptr @.str.5824, i64 3, i64 0 }, { ptr, i64, i64 } %t1195) store { ptr, i64, i64 } %t1196, ptr %a1197 %t1198 = load ptr, ptr %a1 %t1199 = load { ptr, i64, i64 }, ptr %a1166 - store { ptr, i64, i64 } { ptr @.str.5617, i64 13, i64 0 }, ptr %a1201 + store { ptr, i64, i64 } { ptr @.str.5825, i64 13, i64 0 }, ptr %a1201 store { ptr, i64, i64 } %t1199, ptr %a1202 call void @finch_str_concat(ptr %a1200, ptr %a1201, ptr %a1202) %t1203 = load { ptr, i64, i64 }, ptr %a1200 store { ptr, i64, i64 } %t1203, ptr %a1205 - store { ptr, i64, i64 } { ptr @.str.5618, i64 3, i64 0 }, ptr %a1206 + store { ptr, i64, i64 } { ptr @.str.5826, i64 3, i64 0 }, ptr %a1206 call void @finch_str_concat(ptr %a1204, ptr %a1205, ptr %a1206) store { ptr, i64, i64 } %t1203, ptr %a1207 call void @finch_str_drop(ptr %a1207) @@ -88138,12 +92137,12 @@ inrange8541: store { ptr, i64, i64 } %t1209, ptr %a1211 %t1212 = load ptr, ptr %a1 %t1213 = load { ptr, i64, i64 }, ptr %a1193 - store { ptr, i64, i64 } { ptr @.str.5619, i64 13, i64 0 }, ptr %a1215 + store { ptr, i64, i64 } { ptr @.str.5827, i64 13, i64 0 }, ptr %a1215 store { ptr, i64, i64 } %t1213, ptr %a1216 call void @finch_str_concat(ptr %a1214, ptr %a1215, ptr %a1216) %t1217 = load { ptr, i64, i64 }, ptr %a1214 store { ptr, i64, i64 } %t1217, ptr %a1219 - store { ptr, i64, i64 } { ptr @.str.5620, i64 2, i64 0 }, ptr %a1220 + store { ptr, i64, i64 } { ptr @.str.5828, i64 2, i64 0 }, ptr %a1220 call void @finch_str_concat(ptr %a1218, ptr %a1219, ptr %a1220) store { ptr, i64, i64 } %t1217, ptr %a1221 call void @finch_str_drop(ptr %a1221) @@ -88161,12 +92160,12 @@ inrange8541: store { ptr, i64, i64 } %t1229, ptr %a1231 %t1232 = load ptr, ptr %a1 %t1233 = load { ptr, i64, i64 }, ptr %a1166 - store { ptr, i64, i64 } { ptr @.str.5621, i64 13, i64 0 }, ptr %a1235 + store { ptr, i64, i64 } { ptr @.str.5829, i64 13, i64 0 }, ptr %a1235 store { ptr, i64, i64 } %t1233, ptr %a1236 call void @finch_str_concat(ptr %a1234, ptr %a1235, ptr %a1236) %t1237 = load { ptr, i64, i64 }, ptr %a1234 store { ptr, i64, i64 } %t1237, ptr %a1239 - store { ptr, i64, i64 } { ptr @.str.5622, i64 2, i64 0 }, ptr %a1240 + store { ptr, i64, i64 } { ptr @.str.5830, i64 2, i64 0 }, ptr %a1240 call void @finch_str_concat(ptr %a1238, ptr %a1239, ptr %a1240) store { ptr, i64, i64 } %t1237, ptr %a1241 call void @finch_str_drop(ptr %a1241) @@ -88186,12 +92185,12 @@ inrange8541: %t1253 = load ptr, ptr %a1 %t1254 = load ptr, ptr %a1 %t1255 = load { ptr, i64, i64 }, ptr %a1211 - store { ptr, i64, i64 } { ptr @.str.5624, i64 6, i64 0 }, ptr %a1257 + store { ptr, i64, i64 } { ptr @.str.5832, i64 6, i64 0 }, ptr %a1257 store { ptr, i64, i64 } %t1255, ptr %a1258 call void @finch_str_concat(ptr %a1256, ptr %a1257, ptr %a1258) %t1259 = load { ptr, i64, i64 }, ptr %a1256 store { ptr, i64, i64 } %t1259, ptr %a1261 - store { ptr, i64, i64 } { ptr @.str.5625, i64 2, i64 0 }, ptr %a1262 + store { ptr, i64, i64 } { ptr @.str.5833, i64 2, i64 0 }, ptr %a1262 call void @finch_str_concat(ptr %a1260, ptr %a1261, ptr %a1262) store { ptr, i64, i64 } %t1259, ptr %a1263 call void @finch_str_drop(ptr %a1263) @@ -88206,14 +92205,14 @@ inrange8541: %t1271 = call { ptr, i64, i64 } @finch.gen.op(ptr %t1254, { ptr, i64, i64 } %t1270) store { ptr, i64, i64 } %t1270, ptr %a1272 call void @finch_str_drop(ptr %a1272) - store { ptr, i64, i64 } { ptr @.str.5623, i64 6, i64 0 }, ptr %a1274 + store { ptr, i64, i64 } { ptr @.str.5831, i64 6, i64 0 }, ptr %a1274 store { ptr, i64, i64 } %t1271, ptr %a1275 call void @finch_str_concat(ptr %a1273, ptr %a1274, ptr %a1275) store { ptr, i64, i64 } %t1271, ptr %a1276 call void @finch_str_drop(ptr %a1276) %t1277 = load { ptr, i64, i64 }, ptr %a1273 store { ptr, i64, i64 } %t1277, ptr %a1279 - store { ptr, i64, i64 } { ptr @.str.5626, i64 2, i64 0 }, ptr %a1280 + store { ptr, i64, i64 } { ptr @.str.5834, i64 2, i64 0 }, ptr %a1280 call void @finch_str_concat(ptr %a1278, ptr %a1279, ptr %a1280) store { ptr, i64, i64 } %t1277, ptr %a1281 call void @finch_str_drop(ptr %a1281) @@ -88229,17 +92228,17 @@ inrange8541: store { ptr, i64, i64 } %t1288, ptr %a1290 call void @finch_str_drop(ptr %a1290) %t1291 = load %S.ast.Node, ptr %a2 - call void @finch.gen.panicIf(ptr %t1252, { ptr, i64, i64 } %t1289, { ptr, i64, i64 } { ptr @.str.5627, i64 33, i64 0 }, %S.ast.Node %t1291) + call void @finch.gen.panicIf(ptr %t1252, { ptr, i64, i64 } %t1289, { ptr, i64, i64 } { ptr @.str.5835, i64 33, i64 0 }, %S.ast.Node %t1291) store { ptr, i64, i64 } %t1289, ptr %a1292 call void @finch_str_drop(ptr %a1292) %t1293 = load ptr, ptr %a1 %t1294 = load { ptr, i64, i64 }, ptr %a1193 - store { ptr, i64, i64 } { ptr @.str.5628, i64 8, i64 0 }, ptr %a1296 + store { ptr, i64, i64 } { ptr @.str.5836, i64 8, i64 0 }, ptr %a1296 store { ptr, i64, i64 } %t1294, ptr %a1297 call void @finch_str_concat(ptr %a1295, ptr %a1296, ptr %a1297) %t1298 = load { ptr, i64, i64 }, ptr %a1295 store { ptr, i64, i64 } %t1298, ptr %a1300 - store { ptr, i64, i64 } { ptr @.str.5629, i64 2, i64 0 }, ptr %a1301 + store { ptr, i64, i64 } { ptr @.str.5837, i64 2, i64 0 }, ptr %a1301 call void @finch_str_concat(ptr %a1299, ptr %a1300, ptr %a1301) store { ptr, i64, i64 } %t1298, ptr %a1302 call void @finch_str_drop(ptr %a1302) @@ -88256,16 +92255,16 @@ inrange8541: call void @finch_str_drop(ptr %a1311) store { ptr, i64, i64 } %t1310, ptr %a1312 %t1313 = load ptr, ptr %a1 - %t1314 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t1313, { ptr, i64, i64 } { ptr @.str.5630, i64 17, i64 0 }) + %t1314 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t1313, { ptr, i64, i64 } { ptr @.str.5838, i64 17, i64 0 }) store { ptr, i64, i64 } %t1314, ptr %a1315 %t1316 = load ptr, ptr %a1 %t1317 = load { ptr, i64, i64 }, ptr %a1315 - store { ptr, i64, i64 } { ptr @.str.5631, i64 30, i64 0 }, ptr %a1319 + store { ptr, i64, i64 } { ptr @.str.5839, i64 30, i64 0 }, ptr %a1319 store { ptr, i64, i64 } %t1317, ptr %a1320 call void @finch_str_concat(ptr %a1318, ptr %a1319, ptr %a1320) %t1321 = load { ptr, i64, i64 }, ptr %a1318 store { ptr, i64, i64 } %t1321, ptr %a1323 - store { ptr, i64, i64 } { ptr @.str.5632, i64 6, i64 0 }, ptr %a1324 + store { ptr, i64, i64 } { ptr @.str.5840, i64 6, i64 0 }, ptr %a1324 call void @finch_str_concat(ptr %a1322, ptr %a1323, ptr %a1324) store { ptr, i64, i64 } %t1321, ptr %a1325 call void @finch_str_drop(ptr %a1325) @@ -88278,7 +92277,7 @@ inrange8541: call void @finch_str_drop(ptr %a1331) %t1332 = load { ptr, i64, i64 }, ptr %a1328 store { ptr, i64, i64 } %t1332, ptr %a1334 - store { ptr, i64, i64 } { ptr @.str.5633, i64 6, i64 0 }, ptr %a1335 + store { ptr, i64, i64 } { ptr @.str.5841, i64 6, i64 0 }, ptr %a1335 call void @finch_str_concat(ptr %a1333, ptr %a1334, ptr %a1335) store { ptr, i64, i64 } %t1332, ptr %a1336 call void @finch_str_drop(ptr %a1336) @@ -88295,7 +92294,7 @@ inrange8541: call void @finch_str_drop(ptr %a1345) %t1346 = load { ptr, i64, i64 }, ptr %a1341 store { ptr, i64, i64 } %t1346, ptr %a1348 - store { ptr, i64, i64 } { ptr @.str.5634, i64 1, i64 0 }, ptr %a1349 + store { ptr, i64, i64 } { ptr @.str.5842, i64 1, i64 0 }, ptr %a1349 call void @finch_str_concat(ptr %a1347, ptr %a1348, ptr %a1349) store { ptr, i64, i64 } %t1346, ptr %a1350 call void @finch_str_drop(ptr %a1350) @@ -88305,11 +92304,11 @@ inrange8541: call void @finch_str_drop(ptr %a1352) %t1353 = load ptr, ptr %a1 %t1354 = load { ptr, i64, i64 }, ptr %a3 - %t1355 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1353, { ptr, i64, i64 } { ptr @.str.5635, i64 3, i64 0 }, { ptr, i64, i64 } %t1354) + %t1355 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1353, { ptr, i64, i64 } { ptr @.str.5843, i64 3, i64 0 }, { ptr, i64, i64 } %t1354) store { ptr, i64, i64 } %t1355, ptr %a1356 %t1357 = load ptr, ptr %a1 %t1358 = load { ptr, i64, i64 }, ptr %a1315 - %t1359 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1357, { ptr, i64, i64 } { ptr @.str.5636, i64 3, i64 0 }, { ptr, i64, i64 } %t1358) + %t1359 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1357, { ptr, i64, i64 } { ptr @.str.5844, i64 3, i64 0 }, { ptr, i64, i64 } %t1358) store { ptr, i64, i64 } %t1359, ptr %a1360 %t1361 = load ptr, ptr %a1 %t1362 = load { ptr, i64, i64 }, ptr %a1312 @@ -88317,12 +92316,12 @@ inrange8541: store { ptr, i64, i64 } %t1363, ptr %a1364 %t1365 = load ptr, ptr %a1 %t1366 = load { ptr, i64, i64 }, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.5637, i64 23, i64 0 }, ptr %a1368 + store { ptr, i64, i64 } { ptr @.str.5845, i64 23, i64 0 }, ptr %a1368 store { ptr, i64, i64 } %t1366, ptr %a1369 call void @finch_str_concat(ptr %a1367, ptr %a1368, ptr %a1369) %t1370 = load { ptr, i64, i64 }, ptr %a1367 store { ptr, i64, i64 } %t1370, ptr %a1372 - store { ptr, i64, i64 } { ptr @.str.5638, i64 6, i64 0 }, ptr %a1373 + store { ptr, i64, i64 } { ptr @.str.5846, i64 6, i64 0 }, ptr %a1373 call void @finch_str_concat(ptr %a1371, ptr %a1372, ptr %a1373) store { ptr, i64, i64 } %t1370, ptr %a1374 call void @finch_str_drop(ptr %a1374) @@ -88335,7 +92334,7 @@ inrange8541: call void @finch_str_drop(ptr %a1380) %t1381 = load { ptr, i64, i64 }, ptr %a1377 store { ptr, i64, i64 } %t1381, ptr %a1383 - store { ptr, i64, i64 } { ptr @.str.5639, i64 6, i64 0 }, ptr %a1384 + store { ptr, i64, i64 } { ptr @.str.5847, i64 6, i64 0 }, ptr %a1384 call void @finch_str_concat(ptr %a1382, ptr %a1383, ptr %a1384) store { ptr, i64, i64 } %t1381, ptr %a1385 call void @finch_str_drop(ptr %a1385) @@ -88343,11 +92342,11 @@ inrange8541: %t1387 = load { ptr, i64, i64 }, ptr %a1364 %t1388 = extractvalue { ptr, i64, i64 } %t1387, 1 %t1389 = icmp uge i64 3, %t1388 - br i1 %t1389, label %range8542, label %inrange8543 -range8542: - call void @finch_panic_index(ptr @.str.5640, i64 5306, i64 3, i64 %t1388) + br i1 %t1389, label %range8944, label %inrange8945 +range8944: + call void @finch_panic_index(ptr @.str.5848, i64 5541, i64 3, i64 %t1388) unreachable -inrange8543: +inrange8945: %t1390 = extractvalue { ptr, i64, i64 } %t1387, 0 %t1391 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1390, i64 3 %t1392 = load { ptr, i64, i64 }, ptr %t1391 @@ -88363,12 +92362,12 @@ inrange8543: store { ptr, i64, i64 } %t1398, ptr %a1400 %t1401 = load ptr, ptr %a1 %t1402 = load { ptr, i64, i64 }, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.5641, i64 23, i64 0 }, ptr %a1404 + store { ptr, i64, i64 } { ptr @.str.5849, i64 23, i64 0 }, ptr %a1404 store { ptr, i64, i64 } %t1402, ptr %a1405 call void @finch_str_concat(ptr %a1403, ptr %a1404, ptr %a1405) %t1406 = load { ptr, i64, i64 }, ptr %a1403 store { ptr, i64, i64 } %t1406, ptr %a1408 - store { ptr, i64, i64 } { ptr @.str.5642, i64 6, i64 0 }, ptr %a1409 + store { ptr, i64, i64 } { ptr @.str.5850, i64 6, i64 0 }, ptr %a1409 call void @finch_str_concat(ptr %a1407, ptr %a1408, ptr %a1409) store { ptr, i64, i64 } %t1406, ptr %a1410 call void @finch_str_drop(ptr %a1410) @@ -88381,19 +92380,19 @@ inrange8543: call void @finch_str_drop(ptr %a1416) %t1417 = load { ptr, i64, i64 }, ptr %a1413 store { ptr, i64, i64 } %t1417, ptr %a1419 - store { ptr, i64, i64 } { ptr @.str.5643, i64 6, i64 0 }, ptr %a1420 + store { ptr, i64, i64 } { ptr @.str.5851, i64 6, i64 0 }, ptr %a1420 call void @finch_str_concat(ptr %a1418, ptr %a1419, ptr %a1420) store { ptr, i64, i64 } %t1417, ptr %a1421 call void @finch_str_drop(ptr %a1421) %t1422 = load { ptr, i64, i64 }, ptr %a1418 %t1423 = load ptr, ptr %a1 %t1424 = load { ptr, i64, i64 }, ptr %a1166 - store { ptr, i64, i64 } { ptr @.str.5644, i64 8, i64 0 }, ptr %a1426 + store { ptr, i64, i64 } { ptr @.str.5852, i64 8, i64 0 }, ptr %a1426 store { ptr, i64, i64 } %t1424, ptr %a1427 call void @finch_str_concat(ptr %a1425, ptr %a1426, ptr %a1427) %t1428 = load { ptr, i64, i64 }, ptr %a1425 store { ptr, i64, i64 } %t1428, ptr %a1430 - store { ptr, i64, i64 } { ptr @.str.5645, i64 2, i64 0 }, ptr %a1431 + store { ptr, i64, i64 } { ptr @.str.5853, i64 2, i64 0 }, ptr %a1431 call void @finch_str_concat(ptr %a1429, ptr %a1430, ptr %a1431) store { ptr, i64, i64 } %t1428, ptr %a1432 call void @finch_str_drop(ptr %a1432) @@ -88401,11 +92400,11 @@ inrange8543: %t1434 = load { ptr, i64, i64 }, ptr %a1364 %t1435 = extractvalue { ptr, i64, i64 } %t1434, 1 %t1436 = icmp uge i64 3, %t1435 - br i1 %t1436, label %range8544, label %inrange8545 -range8544: - call void @finch_panic_index(ptr @.str.5646, i64 5307, i64 3, i64 %t1435) + br i1 %t1436, label %range8946, label %inrange8947 +range8946: + call void @finch_panic_index(ptr @.str.5854, i64 5542, i64 3, i64 %t1435) unreachable -inrange8545: +inrange8947: %t1437 = extractvalue { ptr, i64, i64 } %t1434, 0 %t1438 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1437, i64 3 %t1439 = load { ptr, i64, i64 }, ptr %t1438 @@ -88440,7 +92439,7 @@ inrange8545: call void @finch.gen.loopEnd(ptr %t1460, { ptr, i64, i64 } %t1461) %t1462 = load ptr, ptr %a1 %t1463 = load { ptr, i64, i64 }, ptr %a1315 - %t1464 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1462, { ptr, i64, i64 } { ptr @.str.5647, i64 17, i64 0 }, { ptr, i64, i64 } %t1463) + %t1464 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1462, { ptr, i64, i64 } { ptr @.str.5855, i64 17, i64 0 }, { ptr, i64, i64 } %t1463) %t1465 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t1464, 0 %t1466 = load %S.ast.Type, ptr %a4 store %S.ast.Type %t1466, ptr %a1467 @@ -88466,14 +92465,14 @@ inrange8545: call void @finch_str_drop(ptr %a19) call void @finch.drop.S_ast_Type(ptr %a15) ret %S.gen.Val %t1471 -endif8533: +endif8935: %t1472 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t1472, ptr %a1473 - store { ptr, i64, i64 } { ptr @.str.5648, i64 4, i64 0 }, ptr %a1474 + store { ptr, i64, i64 } { ptr @.str.5856, i64 4, i64 0 }, ptr %a1474 %t1475 = call i32 @finch_str_eq(ptr %a1473, ptr %a1474) %t1476 = icmp ne i32 %t1475, 0 - br i1 %t1476, label %then8546, label %endif8548 -then8546: + br i1 %t1476, label %then8948, label %endif8950 +then8948: %t1477 = load ptr, ptr %a1 %t1478 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t1477, %S.ast.Node %t1478, i64 0) @@ -88486,61 +92485,61 @@ then8546: %t1485 = load %S.ast.Type, ptr %a15 %t1486 = call i1 @finch.gen.isNumber(%S.ast.Type %t1485) %t1487 = xor i1 %t1486, true - br label %logic.from8549 -logic.from8549: - br i1 %t1487, label %logic.rhs8550, label %logic.end8551 -logic.rhs8550: + br label %logic.from8951 +logic.from8951: + br i1 %t1487, label %logic.rhs8952, label %logic.end8953 +logic.rhs8952: %t1488 = load { ptr, i64, i64 }, ptr %a1484 store { ptr, i64, i64 } %t1488, ptr %a1489 - store { ptr, i64, i64 } { ptr @.str.5649, i64 4, i64 0 }, ptr %a1490 + store { ptr, i64, i64 } { ptr @.str.5857, i64 4, i64 0 }, ptr %a1490 %t1491 = call i32 @finch_str_eq(ptr %a1489, ptr %a1490) %t1492 = icmp eq i32 %t1491, 0 - br label %logic.rend8552 -logic.rend8552: - br label %logic.end8551 -logic.end8551: - %t1493 = phi i1 [ false, %logic.from8549 ], [ %t1492, %logic.rend8552 ] - br label %logic.from8553 -logic.from8553: - br i1 %t1493, label %logic.rhs8554, label %logic.end8555 -logic.rhs8554: + br label %logic.rend8954 +logic.rend8954: + br label %logic.end8953 +logic.end8953: + %t1493 = phi i1 [ false, %logic.from8951 ], [ %t1492, %logic.rend8954 ] + br label %logic.from8955 +logic.from8955: + br i1 %t1493, label %logic.rhs8956, label %logic.end8957 +logic.rhs8956: %t1494 = load { ptr, i64, i64 }, ptr %a1484 store { ptr, i64, i64 } %t1494, ptr %a1495 - store { ptr, i64, i64 } { ptr @.str.5650, i64 3, i64 0 }, ptr %a1496 + store { ptr, i64, i64 } { ptr @.str.5858, i64 3, i64 0 }, ptr %a1496 %t1497 = call i32 @finch_str_eq(ptr %a1495, ptr %a1496) %t1498 = icmp eq i32 %t1497, 0 - br label %logic.rend8556 -logic.rend8556: - br label %logic.end8555 -logic.end8555: - %t1499 = phi i1 [ false, %logic.from8553 ], [ %t1498, %logic.rend8556 ] - br i1 %t1499, label %then8557, label %endif8559 -then8557: + br label %logic.rend8958 +logic.rend8958: + br label %logic.end8957 +logic.end8957: + %t1499 = phi i1 [ false, %logic.from8955 ], [ %t1498, %logic.rend8958 ] + br i1 %t1499, label %then8959, label %endif8961 +then8959: %t1500 = load ptr, ptr %a1 %t1501 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t1500, %S.ast.Node %t1501, { ptr, i64, i64 } { ptr @.str.5651, i64 47, i64 0 }) - br label %endif8559 -endif8559: + call void @finch.gen.fail(ptr %t1500, %S.ast.Node %t1501, { ptr, i64, i64 } { ptr @.str.5859, i64 47, i64 0 }) + br label %endif8961 +endif8961: %t1502 = load ptr, ptr %a1 %t1503 = load %S.ast.Type, ptr %a15 %t1504 = call { ptr, i64, i64 } @finch.gen.cmpFn(ptr %t1502, %S.ast.Type %t1503) store { ptr, i64, i64 } %t1504, ptr %a1505 %t1506 = load ptr, ptr %a1 %t1507 = load { ptr, i64, i64 }, ptr %a39 - %t1508 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1506, { ptr, i64, i64 } { ptr @.str.5652, i64 3, i64 0 }, { ptr, i64, i64 } %t1507) + %t1508 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1506, { ptr, i64, i64 } { ptr @.str.5860, i64 3, i64 0 }, { ptr, i64, i64 } %t1507) store { ptr, i64, i64 } %t1508, ptr %a1509 %t1510 = load ptr, ptr %a1 %t1511 = load { ptr, i64, i64 }, ptr %a3 - %t1512 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1510, { ptr, i64, i64 } { ptr @.str.5653, i64 3, i64 0 }, { ptr, i64, i64 } %t1511) + %t1512 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1510, { ptr, i64, i64 } { ptr @.str.5861, i64 3, i64 0 }, { ptr, i64, i64 } %t1511) store { ptr, i64, i64 } %t1512, ptr %a1513 %t1514 = load ptr, ptr %a1 %t1515 = load { ptr, i64, i64 }, ptr %a1513 - store { ptr, i64, i64 } { ptr @.str.5654, i64 21, i64 0 }, ptr %a1517 + store { ptr, i64, i64 } { ptr @.str.5862, i64 21, i64 0 }, ptr %a1517 store { ptr, i64, i64 } %t1515, ptr %a1518 call void @finch_str_concat(ptr %a1516, ptr %a1517, ptr %a1518) %t1519 = load { ptr, i64, i64 }, ptr %a1516 store { ptr, i64, i64 } %t1519, ptr %a1521 - store { ptr, i64, i64 } { ptr @.str.5655, i64 6, i64 0 }, ptr %a1522 + store { ptr, i64, i64 } { ptr @.str.5863, i64 6, i64 0 }, ptr %a1522 call void @finch_str_concat(ptr %a1520, ptr %a1521, ptr %a1522) store { ptr, i64, i64 } %t1519, ptr %a1523 call void @finch_str_drop(ptr %a1523) @@ -88553,7 +92552,7 @@ endif8559: call void @finch_str_drop(ptr %a1529) %t1530 = load { ptr, i64, i64 }, ptr %a1526 store { ptr, i64, i64 } %t1530, ptr %a1532 - store { ptr, i64, i64 } { ptr @.str.5656, i64 6, i64 0 }, ptr %a1533 + store { ptr, i64, i64 } { ptr @.str.5864, i64 6, i64 0 }, ptr %a1533 call void @finch_str_concat(ptr %a1531, ptr %a1532, ptr %a1533) store { ptr, i64, i64 } %t1530, ptr %a1534 call void @finch_str_drop(ptr %a1534) @@ -88570,7 +92569,7 @@ endif8559: call void @finch_str_drop(ptr %a1543) %t1544 = load { ptr, i64, i64 }, ptr %a1539 store { ptr, i64, i64 } %t1544, ptr %a1546 - store { ptr, i64, i64 } { ptr @.str.5657, i64 6, i64 0 }, ptr %a1547 + store { ptr, i64, i64 } { ptr @.str.5865, i64 6, i64 0 }, ptr %a1547 call void @finch_str_concat(ptr %a1545, ptr %a1546, ptr %a1547) store { ptr, i64, i64 } %t1544, ptr %a1548 call void @finch_str_drop(ptr %a1548) @@ -88583,7 +92582,7 @@ endif8559: call void @finch_str_drop(ptr %a1554) %t1555 = load { ptr, i64, i64 }, ptr %a1551 store { ptr, i64, i64 } %t1555, ptr %a1557 - store { ptr, i64, i64 } { ptr @.str.5658, i64 1, i64 0 }, ptr %a1558 + store { ptr, i64, i64 } { ptr @.str.5866, i64 1, i64 0 }, ptr %a1558 call void @finch_str_concat(ptr %a1556, ptr %a1557, ptr %a1558) store { ptr, i64, i64 } %t1555, ptr %a1559 call void @finch_str_drop(ptr %a1559) @@ -88591,7 +92590,7 @@ endif8559: call void @finch.gen.emit(ptr %t1514, { ptr, i64, i64 } %t1560) store { ptr, i64, i64 } %t1560, ptr %a1561 call void @finch_str_drop(ptr %a1561) - %t1562 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5659, i64 4, i64 0 }) + %t1562 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5867, i64 4, i64 0 }) %t1563 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t1562, 1 call void @finch_str_drop(ptr %a1513) call void @finch_str_drop(ptr %a1509) @@ -88602,16 +92601,16 @@ endif8559: call void @finch_str_drop(ptr %a19) call void @finch.drop.S_ast_Type(ptr %a15) ret %S.gen.Val %t1563 -endif8548: +endif8950: %t1564 = load ptr, ptr %a1 %t1565 = load %S.ast.Node, ptr %a2 %t1566 = load { ptr, i64, i64 }, ptr %a25 - store { ptr, i64, i64 } { ptr @.str.5660, i64 24, i64 0 }, ptr %a1568 + store { ptr, i64, i64 } { ptr @.str.5868, i64 24, i64 0 }, ptr %a1568 store { ptr, i64, i64 } %t1566, ptr %a1569 call void @finch_str_concat(ptr %a1567, ptr %a1568, ptr %a1569) %t1570 = load { ptr, i64, i64 }, ptr %a1567 store { ptr, i64, i64 } %t1570, ptr %a1572 - store { ptr, i64, i64 } { ptr @.str.5661, i64 96, i64 0 }, ptr %a1573 + store { ptr, i64, i64 } { ptr @.str.5869, i64 96, i64 0 }, ptr %a1573 call void @finch_str_concat(ptr %a1571, ptr %a1572, ptr %a1573) store { ptr, i64, i64 } %t1570, ptr %a1574 call void @finch_str_drop(ptr %a1574) @@ -88759,11 +92758,11 @@ entry: %t6 = load { ptr, i64, i64 }, ptr %t5 %t7 = extractvalue { ptr, i64, i64 } %t6, 1 %t8 = icmp uge i64 0, %t7 - br i1 %t8, label %range8560, label %inrange8561 -range8560: - call void @finch_panic_index(ptr @.str.5662, i64 5330, i64 0, i64 %t7) + br i1 %t8, label %range8962, label %inrange8963 +range8962: + call void @finch_panic_index(ptr @.str.5870, i64 5565, i64 0, i64 %t7) unreachable -inrange8561: +inrange8963: %t9 = extractvalue { ptr, i64, i64 } %t6, 0 %t10 = getelementptr inbounds %S.ast.Type, ptr %t9, i64 0 %t11 = load %S.ast.Type, ptr %t10 @@ -88775,11 +92774,11 @@ inrange8561: %t17 = load %S.ast.Type, ptr %a15 %t18 = call i1 @finch.gen.owning(ptr %t16, %S.ast.Type %t17) %t19 = xor i1 %t18, true - br i1 %t19, label %then8562, label %endif8564 -then8562: + br i1 %t19, label %then8964, label %endif8966 +then8964: call void @finch.drop.S_ast_Type(ptr %a15) ret void -endif8564: +endif8966: %t20 = load ptr, ptr %a1 %t21 = load %S.ast.Type, ptr %a15 %t22 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t20, %S.ast.Type %t21) @@ -88787,12 +92786,12 @@ endif8564: %t24 = load ptr, ptr %a1 %t25 = load ptr, ptr %a1 %t26 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.5664, i64 46, i64 0 }, ptr %a28 + store { ptr, i64, i64 } { ptr @.str.5872, i64 46, i64 0 }, ptr %a28 store { ptr, i64, i64 } %t26, ptr %a29 call void @finch_str_concat(ptr %a27, ptr %a28, ptr %a29) %t30 = load { ptr, i64, i64 }, ptr %a27 store { ptr, i64, i64 } %t30, ptr %a32 - store { ptr, i64, i64 } { ptr @.str.5665, i64 14, i64 0 }, ptr %a33 + store { ptr, i64, i64 } { ptr @.str.5873, i64 14, i64 0 }, ptr %a33 call void @finch_str_concat(ptr %a31, ptr %a32, ptr %a33) store { ptr, i64, i64 } %t30, ptr %a34 call void @finch_str_drop(ptr %a34) @@ -88800,22 +92799,22 @@ endif8564: %t36 = call { ptr, i64, i64 } @finch.gen.op(ptr %t25, { ptr, i64, i64 } %t35) store { ptr, i64, i64 } %t35, ptr %a37 call void @finch_str_drop(ptr %a37) - %t38 = call { ptr, i64, i64 } @finch.gen.load(ptr %t24, { ptr, i64, i64 } { ptr @.str.5663, i64 3, i64 0 }, { ptr, i64, i64 } %t36) + %t38 = call { ptr, i64, i64 } @finch.gen.load(ptr %t24, { ptr, i64, i64 } { ptr @.str.5871, i64 3, i64 0 }, { ptr, i64, i64 } %t36) store { ptr, i64, i64 } %t36, ptr %a39 call void @finch_str_drop(ptr %a39) store { ptr, i64, i64 } %t38, ptr %a40 %t41 = load ptr, ptr %a1 %t42 = load { ptr, i64, i64 }, ptr %a2 - %t43 = call { ptr, i64, i64 } @finch.gen.load(ptr %t41, { ptr, i64, i64 } { ptr @.str.5666, i64 3, i64 0 }, { ptr, i64, i64 } %t42) + %t43 = call { ptr, i64, i64 } @finch.gen.load(ptr %t41, { ptr, i64, i64 } { ptr @.str.5874, i64 3, i64 0 }, { ptr, i64, i64 } %t42) store { ptr, i64, i64 } %t43, ptr %a44 %t45 = load ptr, ptr %a1 %t46 = load { ptr, i64, i64 }, ptr %a4 - store { ptr, i64, i64 } { ptr @.str.5667, i64 13, i64 0 }, ptr %a48 + store { ptr, i64, i64 } { ptr @.str.5875, i64 13, i64 0 }, ptr %a48 store { ptr, i64, i64 } %t46, ptr %a49 call void @finch_str_concat(ptr %a47, ptr %a48, ptr %a49) %t50 = load { ptr, i64, i64 }, ptr %a47 store { ptr, i64, i64 } %t50, ptr %a52 - store { ptr, i64, i64 } { ptr @.str.5668, i64 2, i64 0 }, ptr %a53 + store { ptr, i64, i64 } { ptr @.str.5876, i64 2, i64 0 }, ptr %a53 call void @finch_str_concat(ptr %a51, ptr %a52, ptr %a53) store { ptr, i64, i64 } %t50, ptr %a54 call void @finch_str_drop(ptr %a54) @@ -88833,12 +92832,12 @@ endif8564: store { ptr, i64, i64 } %t62, ptr %a64 %t65 = load ptr, ptr %a1 %t66 = load { ptr, i64, i64 }, ptr %a4 - store { ptr, i64, i64 } { ptr @.str.5669, i64 13, i64 0 }, ptr %a68 + store { ptr, i64, i64 } { ptr @.str.5877, i64 13, i64 0 }, ptr %a68 store { ptr, i64, i64 } %t66, ptr %a69 call void @finch_str_concat(ptr %a67, ptr %a68, ptr %a69) %t70 = load { ptr, i64, i64 }, ptr %a67 store { ptr, i64, i64 } %t70, ptr %a72 - store { ptr, i64, i64 } { ptr @.str.5670, i64 3, i64 0 }, ptr %a73 + store { ptr, i64, i64 } { ptr @.str.5878, i64 3, i64 0 }, ptr %a73 call void @finch_str_concat(ptr %a71, ptr %a72, ptr %a73) store { ptr, i64, i64 } %t70, ptr %a74 call void @finch_str_drop(ptr %a74) @@ -88849,24 +92848,24 @@ endif8564: store { ptr, i64, i64 } %t76, ptr %a78 %t79 = load ptr, ptr %a1 %t80 = load { ptr, i64, i64 }, ptr %a64 - store { ptr, i64, i64 } { ptr @.str.5671, i64 10, i64 0 }, ptr %a82 + store { ptr, i64, i64 } { ptr @.str.5879, i64 10, i64 0 }, ptr %a82 store { ptr, i64, i64 } %t80, ptr %a83 call void @finch_str_concat(ptr %a81, ptr %a82, ptr %a83) %t84 = load { ptr, i64, i64 }, ptr %a81 store { ptr, i64, i64 } %t84, ptr %a86 - store { ptr, i64, i64 } { ptr @.str.5672, i64 6, i64 0 }, ptr %a87 + store { ptr, i64, i64 } { ptr @.str.5880, i64 6, i64 0 }, ptr %a87 call void @finch_str_concat(ptr %a85, ptr %a86, ptr %a87) store { ptr, i64, i64 } %t84, ptr %a88 call void @finch_str_drop(ptr %a88) %t89 = load { ptr, i64, i64 }, ptr %a85 %t90 = load ptr, ptr %a1 %t91 = load { ptr, i64, i64 }, ptr %a78 - store { ptr, i64, i64 } { ptr @.str.5673, i64 10, i64 0 }, ptr %a93 + store { ptr, i64, i64 } { ptr @.str.5881, i64 10, i64 0 }, ptr %a93 store { ptr, i64, i64 } %t91, ptr %a94 call void @finch_str_concat(ptr %a92, ptr %a93, ptr %a94) %t95 = load { ptr, i64, i64 }, ptr %a92 store { ptr, i64, i64 } %t95, ptr %a97 - store { ptr, i64, i64 } { ptr @.str.5674, i64 13, i64 0 }, ptr %a98 + store { ptr, i64, i64 } { ptr @.str.5882, i64 13, i64 0 }, ptr %a98 call void @finch_str_concat(ptr %a96, ptr %a97, ptr %a98) store { ptr, i64, i64 } %t95, ptr %a99 call void @finch_str_drop(ptr %a99) @@ -88890,7 +92889,7 @@ endif8564: call void @finch_str_drop(ptr %a113) %t114 = load { ptr, i64, i64 }, ptr %a109 store { ptr, i64, i64 } %t114, ptr %a116 - store { ptr, i64, i64 } { ptr @.str.5675, i64 6, i64 0 }, ptr %a117 + store { ptr, i64, i64 } { ptr @.str.5883, i64 6, i64 0 }, ptr %a117 call void @finch_str_concat(ptr %a115, ptr %a116, ptr %a117) store { ptr, i64, i64 } %t114, ptr %a118 call void @finch_str_drop(ptr %a118) @@ -88909,12 +92908,12 @@ endif8564: %t129 = load ptr, ptr %a1 %t130 = load ptr, ptr %a1 %t131 = load { ptr, i64, i64 }, ptr %a40 - store { ptr, i64, i64 } { ptr @.str.5676, i64 8, i64 0 }, ptr %a133 + store { ptr, i64, i64 } { ptr @.str.5884, i64 8, i64 0 }, ptr %a133 store { ptr, i64, i64 } %t131, ptr %a134 call void @finch_str_concat(ptr %a132, ptr %a133, ptr %a134) %t135 = load { ptr, i64, i64 }, ptr %a132 store { ptr, i64, i64 } %t135, ptr %a137 - store { ptr, i64, i64 } { ptr @.str.5677, i64 2, i64 0 }, ptr %a138 + store { ptr, i64, i64 } { ptr @.str.5885, i64 2, i64 0 }, ptr %a138 call void @finch_str_concat(ptr %a136, ptr %a137, ptr %a138) store { ptr, i64, i64 } %t135, ptr %a139 call void @finch_str_drop(ptr %a139) @@ -88935,12 +92934,12 @@ endif8564: store { ptr, i64, i64 } %t149, ptr %a151 %t152 = load ptr, ptr %a1 %t153 = load { ptr, i64, i64 }, ptr %a23 - store { ptr, i64, i64 } { ptr @.str.5678, i64 23, i64 0 }, ptr %a155 + store { ptr, i64, i64 } { ptr @.str.5886, i64 23, i64 0 }, ptr %a155 store { ptr, i64, i64 } %t153, ptr %a156 call void @finch_str_concat(ptr %a154, ptr %a155, ptr %a156) %t157 = load { ptr, i64, i64 }, ptr %a154 store { ptr, i64, i64 } %t157, ptr %a159 - store { ptr, i64, i64 } { ptr @.str.5679, i64 6, i64 0 }, ptr %a160 + store { ptr, i64, i64 } { ptr @.str.5887, i64 6, i64 0 }, ptr %a160 call void @finch_str_concat(ptr %a158, ptr %a159, ptr %a160) store { ptr, i64, i64 } %t157, ptr %a161 call void @finch_str_drop(ptr %a161) @@ -88953,19 +92952,19 @@ endif8564: call void @finch_str_drop(ptr %a167) %t168 = load { ptr, i64, i64 }, ptr %a164 store { ptr, i64, i64 } %t168, ptr %a170 - store { ptr, i64, i64 } { ptr @.str.5680, i64 6, i64 0 }, ptr %a171 + store { ptr, i64, i64 } { ptr @.str.5888, i64 6, i64 0 }, ptr %a171 call void @finch_str_concat(ptr %a169, ptr %a170, ptr %a171) store { ptr, i64, i64 } %t168, ptr %a172 call void @finch_str_drop(ptr %a172) %t173 = load { ptr, i64, i64 }, ptr %a169 %t174 = load ptr, ptr %a1 %t175 = load { ptr, i64, i64 }, ptr %a128 - store { ptr, i64, i64 } { ptr @.str.5681, i64 8, i64 0 }, ptr %a177 + store { ptr, i64, i64 } { ptr @.str.5889, i64 8, i64 0 }, ptr %a177 store { ptr, i64, i64 } %t175, ptr %a178 call void @finch_str_concat(ptr %a176, ptr %a177, ptr %a178) %t179 = load { ptr, i64, i64 }, ptr %a176 store { ptr, i64, i64 } %t179, ptr %a181 - store { ptr, i64, i64 } { ptr @.str.5682, i64 2, i64 0 }, ptr %a182 + store { ptr, i64, i64 } { ptr @.str.5890, i64 2, i64 0 }, ptr %a182 call void @finch_str_concat(ptr %a180, ptr %a181, ptr %a182) store { ptr, i64, i64 } %t179, ptr %a183 call void @finch_str_drop(ptr %a183) @@ -88973,11 +92972,11 @@ endif8564: %t185 = load { ptr, i64, i64 }, ptr %a151 %t186 = extractvalue { ptr, i64, i64 } %t185, 1 %t187 = icmp uge i64 3, %t186 - br i1 %t187, label %range8565, label %inrange8566 -range8565: - call void @finch_panic_index(ptr @.str.5683, i64 5341, i64 3, i64 %t186) + br i1 %t187, label %range8967, label %inrange8968 +range8967: + call void @finch_panic_index(ptr @.str.5891, i64 5576, i64 3, i64 %t186) unreachable -inrange8566: +inrange8968: %t188 = extractvalue { ptr, i64, i64 } %t185, 0 %t189 = getelementptr inbounds { ptr, i64, i64 }, ptr %t188, i64 3 %t190 = load { ptr, i64, i64 }, ptr %t189 @@ -89200,7 +93199,7 @@ entry: store %S.ast.Type %p1, ptr %a2 %t3 = load %S.ast.Type, ptr %a2 %t4 = call { ptr, i64, i64 } @finch.gen.typeKey(%S.ast.Type %t3) - store { ptr, i64, i64 } { ptr @.str.5684, i64 11, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.5892, i64 11, i64 0 }, ptr %a6 store { ptr, i64, i64 } %t4, ptr %a7 call void @finch_str_concat(ptr %a5, ptr %a6, ptr %a7) store { ptr, i64, i64 } %t4, ptr %a8 @@ -89209,28 +93208,28 @@ entry: store { ptr, i64, i64 } %t9, ptr %a10 %t11 = load ptr, ptr %a1 %t12 = icmp eq ptr %t11, null - br i1 %t12, label %panic8567, label %ok8568 -panic8567: - call void @finch_panic(ptr @.str.5685, i64 5349, ptr @.str.5686) + br i1 %t12, label %panic8969, label %ok8970 +panic8969: + call void @finch_panic(ptr @.str.5893, i64 5584, ptr @.str.5894) unreachable -ok8568: - %t13 = getelementptr inbounds %S.gen.Gen, ptr %t11, i32 0, i32 22 +ok8970: + %t13 = getelementptr inbounds %S.gen.Gen, ptr %t11, i32 0, i32 23 %t14 = load { ptr, i64, i64 }, ptr %t13 %t15 = load { ptr, i64, i64 }, ptr %a10 %t16 = call i1 @finch.gen.has({ ptr, i64, i64 } %t14, { ptr, i64, i64 } %t15) - br i1 %t16, label %then8569, label %endif8571 -then8569: + br i1 %t16, label %then8971, label %endif8973 +then8971: %t17 = load { ptr, i64, i64 }, ptr %a10 ret { ptr, i64, i64 } %t17 -endif8571: +endif8973: %t18 = load ptr, ptr %a1 %t19 = icmp eq ptr %t18, null - br i1 %t19, label %panic8572, label %ok8573 -panic8572: - call void @finch_panic(ptr @.str.5687, i64 5352, ptr @.str.5688) + br i1 %t19, label %panic8974, label %ok8975 +panic8974: + call void @finch_panic(ptr @.str.5895, i64 5587, ptr @.str.5896) unreachable -ok8573: - %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 22 +ok8975: + %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 23 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t20, i32 0, i32 1 %t22 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t22, ptr %a23 @@ -89246,26 +93245,26 @@ ok8573: %t30 = load ptr, ptr %a1 %t31 = call %S.gen.Saved @finch.gen.beginHelper(ptr %t30) store %S.gen.Saved %t31, ptr %a32 - store { ptr, i64, i64 } { ptr @.str.5689, i64 0, i64 0 }, ptr %a33 + store { ptr, i64, i64 } { ptr @.str.5897, i64 0, i64 0 }, ptr %a33 %t34 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t35 = load { ptr, i64, i64 }, ptr %t34 store { ptr, i64, i64 } %t35, ptr %a36 - store { ptr, i64, i64 } { ptr @.str.5690, i64 3, i64 0 }, ptr %a37 + store { ptr, i64, i64 } { ptr @.str.5898, i64 3, i64 0 }, ptr %a37 %t38 = call i32 @finch_str_eq(ptr %a36, ptr %a37) %t39 = icmp ne i32 %t38, 0 - br i1 %t39, label %then8574, label %else8575 -then8574: + br i1 %t39, label %then8976, label %else8977 +then8976: %t40 = load ptr, ptr %a1 - %t41 = call { ptr, i64, i64 } @finch.gen.op(ptr %t40, { ptr, i64, i64 } { ptr @.str.5691, i64 39, i64 0 }) + %t41 = call { ptr, i64, i64 } @finch.gen.op(ptr %t40, { ptr, i64, i64 } { ptr @.str.5899, i64 39, i64 0 }) store { ptr, i64, i64 } %t41, ptr %a42 %t43 = load ptr, ptr %a1 %t44 = load { ptr, i64, i64 }, ptr %a42 - store { ptr, i64, i64 } { ptr @.str.5692, i64 10, i64 0 }, ptr %a46 + store { ptr, i64, i64 } { ptr @.str.5900, i64 10, i64 0 }, ptr %a46 store { ptr, i64, i64 } %t44, ptr %a47 call void @finch_str_concat(ptr %a45, ptr %a46, ptr %a47) %t48 = load { ptr, i64, i64 }, ptr %a45 store { ptr, i64, i64 } %t48, ptr %a50 - store { ptr, i64, i64 } { ptr @.str.5693, i64 7, i64 0 }, ptr %a51 + store { ptr, i64, i64 } { ptr @.str.5901, i64 7, i64 0 }, ptr %a51 call void @finch_str_concat(ptr %a49, ptr %a50, ptr %a51) store { ptr, i64, i64 } %t48, ptr %a52 call void @finch_str_drop(ptr %a52) @@ -89278,34 +93277,34 @@ then8574: store { ptr, i64, i64 } %t56, ptr %a57 call void @finch_str_drop(ptr %a57) call void @finch_str_drop(ptr %a42) - br label %endif8576 -else8575: + br label %endif8978 +else8977: %t58 = load ptr, ptr %a1 %t59 = load %S.ast.Type, ptr %a2 %t60 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t58, %S.ast.Type %t59) store { ptr, i64, i64 } %t60, ptr %a61 %t62 = load ptr, ptr %a1 %t63 = load { ptr, i64, i64 }, ptr %a61 - %t64 = call { ptr, i64, i64 } @finch.gen.load(ptr %t62, { ptr, i64, i64 } %t63, { ptr, i64, i64 } { ptr @.str.5694, i64 2, i64 0 }) + %t64 = call { ptr, i64, i64 } @finch.gen.load(ptr %t62, { ptr, i64, i64 } %t63, { ptr, i64, i64 } { ptr @.str.5902, i64 2, i64 0 }) store { ptr, i64, i64 } %t64, ptr %a65 %t66 = load ptr, ptr %a1 %t67 = load { ptr, i64, i64 }, ptr %a61 - %t68 = call { ptr, i64, i64 } @finch.gen.load(ptr %t66, { ptr, i64, i64 } %t67, { ptr, i64, i64 } { ptr @.str.5695, i64 2, i64 0 }) + %t68 = call { ptr, i64, i64 } @finch.gen.load(ptr %t66, { ptr, i64, i64 } %t67, { ptr, i64, i64 } { ptr @.str.5903, i64 2, i64 0 }) store { ptr, i64, i64 } %t68, ptr %a69 - store { ptr, i64, i64 } { ptr @.str.5696, i64 0, i64 0 }, ptr %a70 - store { ptr, i64, i64 } { ptr @.str.5697, i64 0, i64 0 }, ptr %a71 + store { ptr, i64, i64 } { ptr @.str.5904, i64 0, i64 0 }, ptr %a70 + store { ptr, i64, i64 } { ptr @.str.5905, i64 0, i64 0 }, ptr %a71 %t72 = load %S.ast.Type, ptr %a2 %t73 = call i1 @finch.gen.isFloat(%S.ast.Type %t72) - br i1 %t73, label %then8577, label %else8578 -then8577: + br i1 %t73, label %then8979, label %else8980 +then8979: %t74 = load ptr, ptr %a1 %t75 = load { ptr, i64, i64 }, ptr %a61 - store { ptr, i64, i64 } { ptr @.str.5698, i64 9, i64 0 }, ptr %a77 + store { ptr, i64, i64 } { ptr @.str.5906, i64 9, i64 0 }, ptr %a77 store { ptr, i64, i64 } %t75, ptr %a78 call void @finch_str_concat(ptr %a76, ptr %a77, ptr %a78) %t79 = load { ptr, i64, i64 }, ptr %a76 store { ptr, i64, i64 } %t79, ptr %a81 - store { ptr, i64, i64 } { ptr @.str.5699, i64 1, i64 0 }, ptr %a82 + store { ptr, i64, i64 } { ptr @.str.5907, i64 1, i64 0 }, ptr %a82 call void @finch_str_concat(ptr %a80, ptr %a81, ptr %a82) store { ptr, i64, i64 } %t79, ptr %a83 call void @finch_str_drop(ptr %a83) @@ -89318,7 +93317,7 @@ then8577: call void @finch_str_drop(ptr %a89) %t90 = load { ptr, i64, i64 }, ptr %a86 store { ptr, i64, i64 } %t90, ptr %a92 - store { ptr, i64, i64 } { ptr @.str.5700, i64 2, i64 0 }, ptr %a93 + store { ptr, i64, i64 } { ptr @.str.5908, i64 2, i64 0 }, ptr %a93 call void @finch_str_concat(ptr %a91, ptr %a92, ptr %a93) store { ptr, i64, i64 } %t90, ptr %a94 call void @finch_str_drop(ptr %a94) @@ -89339,12 +93338,12 @@ then8577: call void @finch_str_drop(ptr %a105) %t106 = load ptr, ptr %a1 %t107 = load { ptr, i64, i64 }, ptr %a61 - store { ptr, i64, i64 } { ptr @.str.5701, i64 9, i64 0 }, ptr %a109 + store { ptr, i64, i64 } { ptr @.str.5909, i64 9, i64 0 }, ptr %a109 store { ptr, i64, i64 } %t107, ptr %a110 call void @finch_str_concat(ptr %a108, ptr %a109, ptr %a110) %t111 = load { ptr, i64, i64 }, ptr %a108 store { ptr, i64, i64 } %t111, ptr %a113 - store { ptr, i64, i64 } { ptr @.str.5702, i64 1, i64 0 }, ptr %a114 + store { ptr, i64, i64 } { ptr @.str.5910, i64 1, i64 0 }, ptr %a114 call void @finch_str_concat(ptr %a112, ptr %a113, ptr %a114) store { ptr, i64, i64 } %t111, ptr %a115 call void @finch_str_drop(ptr %a115) @@ -89357,7 +93356,7 @@ then8577: call void @finch_str_drop(ptr %a121) %t122 = load { ptr, i64, i64 }, ptr %a118 store { ptr, i64, i64 } %t122, ptr %a124 - store { ptr, i64, i64 } { ptr @.str.5703, i64 2, i64 0 }, ptr %a125 + store { ptr, i64, i64 } { ptr @.str.5911, i64 2, i64 0 }, ptr %a125 call void @finch_str_concat(ptr %a123, ptr %a124, ptr %a125) store { ptr, i64, i64 } %t122, ptr %a126 call void @finch_str_drop(ptr %a126) @@ -89376,20 +93375,20 @@ then8577: store { ptr, i64, i64 } %t134, ptr %a71 store { ptr, i64, i64 } %t136, ptr %a137 call void @finch_str_drop(ptr %a137) - br label %endif8579 -else8578: + br label %endif8981 +else8980: %t138 = load ptr, ptr %a1 %t139 = load %S.ast.Type, ptr %a2 %t140 = call i1 @finch.gen.isSigned(%S.ast.Type %t139) - %t141 = call { ptr, i64, i64 } @finch.gen.intPred({ ptr, i64, i64 } { ptr @.str.5705, i64 1, i64 0 }, i1 %t140) - store { ptr, i64, i64 } { ptr @.str.5704, i64 5, i64 0 }, ptr %a143 + %t141 = call { ptr, i64, i64 } @finch.gen.intPred({ ptr, i64, i64 } { ptr @.str.5913, i64 1, i64 0 }, i1 %t140) + store { ptr, i64, i64 } { ptr @.str.5912, i64 5, i64 0 }, ptr %a143 store { ptr, i64, i64 } %t141, ptr %a144 call void @finch_str_concat(ptr %a142, ptr %a143, ptr %a144) store { ptr, i64, i64 } %t141, ptr %a145 call void @finch_str_drop(ptr %a145) %t146 = load { ptr, i64, i64 }, ptr %a142 store { ptr, i64, i64 } %t146, ptr %a148 - store { ptr, i64, i64 } { ptr @.str.5706, i64 1, i64 0 }, ptr %a149 + store { ptr, i64, i64 } { ptr @.str.5914, i64 1, i64 0 }, ptr %a149 call void @finch_str_concat(ptr %a147, ptr %a148, ptr %a149) store { ptr, i64, i64 } %t146, ptr %a150 call void @finch_str_drop(ptr %a150) @@ -89402,7 +93401,7 @@ else8578: call void @finch_str_drop(ptr %a156) %t157 = load { ptr, i64, i64 }, ptr %a153 store { ptr, i64, i64 } %t157, ptr %a159 - store { ptr, i64, i64 } { ptr @.str.5707, i64 1, i64 0 }, ptr %a160 + store { ptr, i64, i64 } { ptr @.str.5915, i64 1, i64 0 }, ptr %a160 call void @finch_str_concat(ptr %a158, ptr %a159, ptr %a160) store { ptr, i64, i64 } %t157, ptr %a161 call void @finch_str_drop(ptr %a161) @@ -89415,7 +93414,7 @@ else8578: call void @finch_str_drop(ptr %a167) %t168 = load { ptr, i64, i64 }, ptr %a164 store { ptr, i64, i64 } %t168, ptr %a170 - store { ptr, i64, i64 } { ptr @.str.5708, i64 2, i64 0 }, ptr %a171 + store { ptr, i64, i64 } { ptr @.str.5916, i64 2, i64 0 }, ptr %a171 call void @finch_str_concat(ptr %a169, ptr %a170, ptr %a171) store { ptr, i64, i64 } %t168, ptr %a172 call void @finch_str_drop(ptr %a172) @@ -89437,15 +93436,15 @@ else8578: %t184 = load ptr, ptr %a1 %t185 = load %S.ast.Type, ptr %a2 %t186 = call i1 @finch.gen.isSigned(%S.ast.Type %t185) - %t187 = call { ptr, i64, i64 } @finch.gen.intPred({ ptr, i64, i64 } { ptr @.str.5710, i64 1, i64 0 }, i1 %t186) - store { ptr, i64, i64 } { ptr @.str.5709, i64 5, i64 0 }, ptr %a189 + %t187 = call { ptr, i64, i64 } @finch.gen.intPred({ ptr, i64, i64 } { ptr @.str.5918, i64 1, i64 0 }, i1 %t186) + store { ptr, i64, i64 } { ptr @.str.5917, i64 5, i64 0 }, ptr %a189 store { ptr, i64, i64 } %t187, ptr %a190 call void @finch_str_concat(ptr %a188, ptr %a189, ptr %a190) store { ptr, i64, i64 } %t187, ptr %a191 call void @finch_str_drop(ptr %a191) %t192 = load { ptr, i64, i64 }, ptr %a188 store { ptr, i64, i64 } %t192, ptr %a194 - store { ptr, i64, i64 } { ptr @.str.5711, i64 1, i64 0 }, ptr %a195 + store { ptr, i64, i64 } { ptr @.str.5919, i64 1, i64 0 }, ptr %a195 call void @finch_str_concat(ptr %a193, ptr %a194, ptr %a195) store { ptr, i64, i64 } %t192, ptr %a196 call void @finch_str_drop(ptr %a196) @@ -89458,7 +93457,7 @@ else8578: call void @finch_str_drop(ptr %a202) %t203 = load { ptr, i64, i64 }, ptr %a199 store { ptr, i64, i64 } %t203, ptr %a205 - store { ptr, i64, i64 } { ptr @.str.5712, i64 1, i64 0 }, ptr %a206 + store { ptr, i64, i64 } { ptr @.str.5920, i64 1, i64 0 }, ptr %a206 call void @finch_str_concat(ptr %a204, ptr %a205, ptr %a206) store { ptr, i64, i64 } %t203, ptr %a207 call void @finch_str_drop(ptr %a207) @@ -89471,7 +93470,7 @@ else8578: call void @finch_str_drop(ptr %a213) %t214 = load { ptr, i64, i64 }, ptr %a210 store { ptr, i64, i64 } %t214, ptr %a216 - store { ptr, i64, i64 } { ptr @.str.5713, i64 2, i64 0 }, ptr %a217 + store { ptr, i64, i64 } { ptr @.str.5921, i64 2, i64 0 }, ptr %a217 call void @finch_str_concat(ptr %a215, ptr %a216, ptr %a217) store { ptr, i64, i64 } %t214, ptr %a218 call void @finch_str_drop(ptr %a218) @@ -89490,17 +93489,17 @@ else8578: store { ptr, i64, i64 } %t226, ptr %a71 store { ptr, i64, i64 } %t228, ptr %a229 call void @finch_str_drop(ptr %a229) - br label %endif8579 -endif8579: + br label %endif8981 +endif8981: %t230 = load ptr, ptr %a1 %t231 = load ptr, ptr %a1 %t232 = load { ptr, i64, i64 }, ptr %a71 - store { ptr, i64, i64 } { ptr @.str.5715, i64 8, i64 0 }, ptr %a234 + store { ptr, i64, i64 } { ptr @.str.5923, i64 8, i64 0 }, ptr %a234 store { ptr, i64, i64 } %t232, ptr %a235 call void @finch_str_concat(ptr %a233, ptr %a234, ptr %a235) %t236 = load { ptr, i64, i64 }, ptr %a233 store { ptr, i64, i64 } %t236, ptr %a238 - store { ptr, i64, i64 } { ptr @.str.5716, i64 7, i64 0 }, ptr %a239 + store { ptr, i64, i64 } { ptr @.str.5924, i64 7, i64 0 }, ptr %a239 call void @finch_str_concat(ptr %a237, ptr %a238, ptr %a239) store { ptr, i64, i64 } %t236, ptr %a240 call void @finch_str_drop(ptr %a240) @@ -89508,26 +93507,26 @@ endif8579: %t242 = call { ptr, i64, i64 } @finch.gen.op(ptr %t231, { ptr, i64, i64 } %t241) store { ptr, i64, i64 } %t241, ptr %a243 call void @finch_str_drop(ptr %a243) - store { ptr, i64, i64 } { ptr @.str.5714, i64 8, i64 0 }, ptr %a245 + store { ptr, i64, i64 } { ptr @.str.5922, i64 8, i64 0 }, ptr %a245 store { ptr, i64, i64 } %t242, ptr %a246 call void @finch_str_concat(ptr %a244, ptr %a245, ptr %a246) store { ptr, i64, i64 } %t242, ptr %a247 call void @finch_str_drop(ptr %a247) %t248 = load { ptr, i64, i64 }, ptr %a244 store { ptr, i64, i64 } %t248, ptr %a250 - store { ptr, i64, i64 } { ptr @.str.5717, i64 2, i64 0 }, ptr %a251 + store { ptr, i64, i64 } { ptr @.str.5925, i64 2, i64 0 }, ptr %a251 call void @finch_str_concat(ptr %a249, ptr %a250, ptr %a251) store { ptr, i64, i64 } %t248, ptr %a252 call void @finch_str_drop(ptr %a252) %t253 = load { ptr, i64, i64 }, ptr %a249 %t254 = load ptr, ptr %a1 %t255 = load { ptr, i64, i64 }, ptr %a70 - store { ptr, i64, i64 } { ptr @.str.5718, i64 8, i64 0 }, ptr %a257 + store { ptr, i64, i64 } { ptr @.str.5926, i64 8, i64 0 }, ptr %a257 store { ptr, i64, i64 } %t255, ptr %a258 call void @finch_str_concat(ptr %a256, ptr %a257, ptr %a258) %t259 = load { ptr, i64, i64 }, ptr %a256 store { ptr, i64, i64 } %t259, ptr %a261 - store { ptr, i64, i64 } { ptr @.str.5719, i64 7, i64 0 }, ptr %a262 + store { ptr, i64, i64 } { ptr @.str.5927, i64 7, i64 0 }, ptr %a262 call void @finch_str_concat(ptr %a260, ptr %a261, ptr %a262) store { ptr, i64, i64 } %t259, ptr %a263 call void @finch_str_drop(ptr %a263) @@ -89555,11 +93554,11 @@ endif8579: call void @finch_str_drop(ptr %a69) call void @finch_str_drop(ptr %a65) call void @finch_str_drop(ptr %a61) - br label %endif8576 -endif8576: + br label %endif8978 +endif8978: %t277 = load ptr, ptr %a1 %t278 = load { ptr, i64, i64 }, ptr %a33 - store { ptr, i64, i64 } { ptr @.str.5720, i64 8, i64 0 }, ptr %a280 + store { ptr, i64, i64 } { ptr @.str.5928, i64 8, i64 0 }, ptr %a280 store { ptr, i64, i64 } %t278, ptr %a281 call void @finch_str_concat(ptr %a279, ptr %a280, ptr %a281) %t282 = load { ptr, i64, i64 }, ptr %a279 @@ -89569,12 +93568,12 @@ endif8576: %t284 = load ptr, ptr %a1 %t285 = load %S.gen.Saved, ptr %a32 %t286 = load { ptr, i64, i64 }, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.5721, i64 20, i64 0 }, ptr %a288 + store { ptr, i64, i64 } { ptr @.str.5929, i64 20, i64 0 }, ptr %a288 store { ptr, i64, i64 } %t286, ptr %a289 call void @finch_str_concat(ptr %a287, ptr %a288, ptr %a289) %t290 = load { ptr, i64, i64 }, ptr %a287 store { ptr, i64, i64 } %t290, ptr %a292 - store { ptr, i64, i64 } { ptr @.str.5722, i64 16, i64 0 }, ptr %a293 + store { ptr, i64, i64 } { ptr @.str.5930, i64 16, i64 0 }, ptr %a293 call void @finch_str_concat(ptr %a291, ptr %a292, ptr %a293) store { ptr, i64, i64 } %t290, ptr %a294 call void @finch_str_drop(ptr %a294) @@ -89937,22 +93936,22 @@ entry: %t13 = load ptr, ptr %a1 %t14 = load ptr, ptr %a1 %t15 = icmp eq ptr %t14, null - br i1 %t15, label %panic8580, label %ok8581 -panic8580: - call void @finch_panic(ptr @.str.5723, i64 5381, ptr @.str.5724) + br i1 %t15, label %panic8982, label %ok8983 +panic8982: + call void @finch_panic(ptr @.str.5931, i64 5616, ptr @.str.5932) unreachable -ok8581: +ok8983: %t16 = getelementptr inbounds %S.gen.Gen, ptr %t14, i32 0, i32 1 %t17 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 13 %t18 = load i64, ptr %t17 %t19 = load { ptr, i64, i64 }, ptr %t16 %t20 = extractvalue { ptr, i64, i64 } %t19, 1 %t21 = icmp uge i64 %t18, %t20 - br i1 %t21, label %range8582, label %inrange8583 -range8582: - call void @finch_panic_index(ptr @.str.5725, i64 5381, i64 %t18, i64 %t20) + br i1 %t21, label %range8984, label %inrange8985 +range8984: + call void @finch_panic_index(ptr @.str.5933, i64 5616, i64 %t18, i64 %t20) unreachable -inrange8583: +inrange8985: %t22 = extractvalue { ptr, i64, i64 } %t19, 0 %t23 = getelementptr inbounds { ptr, i64, i64 }, ptr %t22, i64 %t18 %t24 = load { ptr, i64, i64 }, ptr %t23 @@ -89960,11 +93959,11 @@ inrange8583: store { ptr, i64, i64 } %t25, ptr %a26 %t27 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t27, ptr %a28 - store { ptr, i64, i64 } { ptr @.str.5726, i64 3, i64 0 }, ptr %a29 + store { ptr, i64, i64 } { ptr @.str.5934, i64 3, i64 0 }, ptr %a29 %t30 = call i32 @finch_str_eq(ptr %a28, ptr %a29) %t31 = icmp ne i32 %t30, 0 - br i1 %t31, label %then8584, label %endif8586 -then8584: + br i1 %t31, label %then8986, label %endif8988 +then8986: %t32 = load ptr, ptr %a1 %t33 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t32, %S.ast.Node %t33, i64 2) @@ -89974,29 +93973,29 @@ then8584: %t37 = load { ptr, i64, i64 }, ptr %t36 %t38 = extractvalue { ptr, i64, i64 } %t37, 1 %t39 = icmp uge i64 1, %t38 - br i1 %t39, label %range8587, label %inrange8588 -range8587: - call void @finch_panic_index(ptr @.str.5727, i64 5384, i64 1, i64 %t38) + br i1 %t39, label %range8989, label %inrange8990 +range8989: + call void @finch_panic_index(ptr @.str.5935, i64 5619, i64 1, i64 %t38) unreachable -inrange8588: +inrange8990: %t40 = extractvalue { ptr, i64, i64 } %t37, 0 %t41 = getelementptr inbounds %S.ast.Node, ptr %t40, i64 1 %t42 = load %S.ast.Node, ptr %t41 %t43 = call %S.gen.Val @finch.gen.expr(ptr %t35, %S.ast.Node %t42) - %t44 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5728, i64 3, i64 0 }) + %t44 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5936, i64 3, i64 0 }) %t45 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t46 = load { ptr, i64, i64 }, ptr %t45 %t47 = extractvalue { ptr, i64, i64 } %t46, 1 %t48 = icmp uge i64 1, %t47 - br i1 %t48, label %range8589, label %inrange8590 -range8589: - call void @finch_panic_index(ptr @.str.5729, i64 5384, i64 1, i64 %t47) + br i1 %t48, label %range8991, label %inrange8992 +range8991: + call void @finch_panic_index(ptr @.str.5937, i64 5619, i64 1, i64 %t47) unreachable -inrange8590: +inrange8992: %t49 = extractvalue { ptr, i64, i64 } %t46, 0 %t50 = getelementptr inbounds %S.ast.Node, ptr %t49, i64 1 %t51 = load %S.ast.Node, ptr %t50 - %t52 = call %S.gen.Val @finch.gen.coerce(ptr %t34, %S.gen.Val %t43, %S.ast.Type %t44, %S.ast.Node %t51, { ptr, i64, i64 } { ptr @.str.5730, i64 9, i64 0 }) + %t52 = call %S.gen.Val @finch.gen.coerce(ptr %t34, %S.gen.Val %t43, %S.ast.Type %t44, %S.ast.Node %t51, { ptr, i64, i64 } { ptr @.str.5938, i64 9, i64 0 }) store %S.gen.Val %t43, ptr %a53 call void @finch.drop.S_gen_Val(ptr %a53) store %S.ast.Type %t44, ptr %a54 @@ -90014,29 +94013,29 @@ inrange8590: %t64 = load { ptr, i64, i64 }, ptr %t63 %t65 = extractvalue { ptr, i64, i64 } %t64, 1 %t66 = icmp uge i64 2, %t65 - br i1 %t66, label %range8591, label %inrange8592 -range8591: - call void @finch_panic_index(ptr @.str.5731, i64 5385, i64 2, i64 %t65) + br i1 %t66, label %range8993, label %inrange8994 +range8993: + call void @finch_panic_index(ptr @.str.5939, i64 5620, i64 2, i64 %t65) unreachable -inrange8592: +inrange8994: %t67 = extractvalue { ptr, i64, i64 } %t64, 0 %t68 = getelementptr inbounds %S.ast.Node, ptr %t67, i64 2 %t69 = load %S.ast.Node, ptr %t68 %t70 = call %S.gen.Val @finch.gen.expr(ptr %t62, %S.ast.Node %t69) - %t71 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5732, i64 3, i64 0 }) + %t71 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5940, i64 3, i64 0 }) %t72 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t73 = load { ptr, i64, i64 }, ptr %t72 %t74 = extractvalue { ptr, i64, i64 } %t73, 1 %t75 = icmp uge i64 2, %t74 - br i1 %t75, label %range8593, label %inrange8594 -range8593: - call void @finch_panic_index(ptr @.str.5733, i64 5385, i64 2, i64 %t74) + br i1 %t75, label %range8995, label %inrange8996 +range8995: + call void @finch_panic_index(ptr @.str.5941, i64 5620, i64 2, i64 %t74) unreachable -inrange8594: +inrange8996: %t76 = extractvalue { ptr, i64, i64 } %t73, 0 %t77 = getelementptr inbounds %S.ast.Node, ptr %t76, i64 2 %t78 = load %S.ast.Node, ptr %t77 - %t79 = call %S.gen.Val @finch.gen.coerce(ptr %t61, %S.gen.Val %t70, %S.ast.Type %t71, %S.ast.Node %t78, { ptr, i64, i64 } { ptr @.str.5734, i64 7, i64 0 }) + %t79 = call %S.gen.Val @finch.gen.coerce(ptr %t61, %S.gen.Val %t70, %S.ast.Type %t71, %S.ast.Node %t78, { ptr, i64, i64 } { ptr @.str.5942, i64 7, i64 0 }) store %S.gen.Val %t70, ptr %a80 call void @finch.drop.S_gen_Val(ptr %a80) store %S.ast.Type %t71, ptr %a81 @@ -90050,12 +94049,12 @@ inrange8594: store { ptr, i64, i64 } %t85, ptr %a87 %t88 = load ptr, ptr %a1 %t89 = load { ptr, i64, i64 }, ptr %a12 - store { ptr, i64, i64 } { ptr @.str.5735, i64 29, i64 0 }, ptr %a91 + store { ptr, i64, i64 } { ptr @.str.5943, i64 29, i64 0 }, ptr %a91 store { ptr, i64, i64 } %t89, ptr %a92 call void @finch_str_concat(ptr %a90, ptr %a91, ptr %a92) %t93 = load { ptr, i64, i64 }, ptr %a90 store { ptr, i64, i64 } %t93, ptr %a95 - store { ptr, i64, i64 } { ptr @.str.5736, i64 6, i64 0 }, ptr %a96 + store { ptr, i64, i64 } { ptr @.str.5944, i64 6, i64 0 }, ptr %a96 call void @finch_str_concat(ptr %a94, ptr %a95, ptr %a96) store { ptr, i64, i64 } %t93, ptr %a97 call void @finch_str_drop(ptr %a97) @@ -90068,7 +94067,7 @@ inrange8594: call void @finch_str_drop(ptr %a103) %t104 = load { ptr, i64, i64 }, ptr %a100 store { ptr, i64, i64 } %t104, ptr %a106 - store { ptr, i64, i64 } { ptr @.str.5737, i64 6, i64 0 }, ptr %a107 + store { ptr, i64, i64 } { ptr @.str.5945, i64 6, i64 0 }, ptr %a107 call void @finch_str_concat(ptr %a105, ptr %a106, ptr %a107) store { ptr, i64, i64 } %t104, ptr %a108 call void @finch_str_drop(ptr %a108) @@ -90081,7 +94080,7 @@ inrange8594: call void @finch_str_drop(ptr %a114) %t115 = load { ptr, i64, i64 }, ptr %a111 store { ptr, i64, i64 } %t115, ptr %a117 - store { ptr, i64, i64 } { ptr @.str.5738, i64 6, i64 0 }, ptr %a118 + store { ptr, i64, i64 } { ptr @.str.5946, i64 6, i64 0 }, ptr %a118 call void @finch_str_concat(ptr %a116, ptr %a117, ptr %a118) store { ptr, i64, i64 } %t115, ptr %a119 call void @finch_str_drop(ptr %a119) @@ -90094,7 +94093,7 @@ inrange8594: call void @finch_str_drop(ptr %a125) %t126 = load { ptr, i64, i64 }, ptr %a122 store { ptr, i64, i64 } %t126, ptr %a128 - store { ptr, i64, i64 } { ptr @.str.5739, i64 6, i64 0 }, ptr %a129 + store { ptr, i64, i64 } { ptr @.str.5947, i64 6, i64 0 }, ptr %a129 call void @finch_str_concat(ptr %a127, ptr %a128, ptr %a129) store { ptr, i64, i64 } %t126, ptr %a130 call void @finch_str_drop(ptr %a130) @@ -90107,7 +94106,7 @@ inrange8594: call void @finch_str_drop(ptr %a136) %t137 = load { ptr, i64, i64 }, ptr %a133 store { ptr, i64, i64 } %t137, ptr %a139 - store { ptr, i64, i64 } { ptr @.str.5740, i64 6, i64 0 }, ptr %a140 + store { ptr, i64, i64 } { ptr @.str.5948, i64 6, i64 0 }, ptr %a140 call void @finch_str_concat(ptr %a138, ptr %a139, ptr %a140) store { ptr, i64, i64 } %t137, ptr %a141 call void @finch_str_drop(ptr %a141) @@ -90125,7 +94124,7 @@ inrange8594: call void @finch_str_drop(ptr %a151) %t152 = load { ptr, i64, i64 }, ptr %a147 store { ptr, i64, i64 } %t152, ptr %a154 - store { ptr, i64, i64 } { ptr @.str.5741, i64 1, i64 0 }, ptr %a155 + store { ptr, i64, i64 } { ptr @.str.5949, i64 1, i64 0 }, ptr %a155 call void @finch_str_concat(ptr %a153, ptr %a154, ptr %a155) store { ptr, i64, i64 } %t152, ptr %a156 call void @finch_str_drop(ptr %a156) @@ -90135,9 +94134,9 @@ inrange8594: call void @finch_str_drop(ptr %a158) %t159 = load ptr, ptr %a1 %t160 = load { ptr, i64, i64 }, ptr %a12 - %t161 = call { ptr, i64, i64 } @finch.gen.load(ptr %t159, { ptr, i64, i64 } { ptr @.str.5742, i64 17, i64 0 }, { ptr, i64, i64 } %t160) + %t161 = call { ptr, i64, i64 } @finch.gen.load(ptr %t159, { ptr, i64, i64 } { ptr @.str.5950, i64 17, i64 0 }, { ptr, i64, i64 } %t160) %t162 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t161, 0 - %t163 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5743, i64 3, i64 0 }) + %t163 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5951, i64 3, i64 0 }) %t164 = insertvalue %S.gen.Val %t162, %S.ast.Type %t163, 1 %t165 = insertvalue %S.gen.Val %t164, i1 true, 2 call void @finch_str_drop(ptr %a87) @@ -90146,56 +94145,56 @@ inrange8594: call void @finch_str_drop(ptr %a12) call void @finch_str_drop(ptr %a9) ret %S.gen.Val %t165 -endif8586: +endif8988: %t166 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t166, ptr %a167 - store { ptr, i64, i64 } { ptr @.str.5744, i64 4, i64 0 }, ptr %a168 + store { ptr, i64, i64 } { ptr @.str.5952, i64 4, i64 0 }, ptr %a168 %t169 = call i32 @finch_str_eq(ptr %a167, ptr %a168) %t170 = icmp ne i32 %t169, 0 - br label %logic.from8595 -logic.from8595: - br i1 %t170, label %logic.end8597, label %logic.rhs8596 -logic.rhs8596: + br label %logic.from8997 +logic.from8997: + br i1 %t170, label %logic.end8999, label %logic.rhs8998 +logic.rhs8998: %t171 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t171, ptr %a172 - store { ptr, i64, i64 } { ptr @.str.5745, i64 8, i64 0 }, ptr %a173 + store { ptr, i64, i64 } { ptr @.str.5953, i64 8, i64 0 }, ptr %a173 %t174 = call i32 @finch_str_eq(ptr %a172, ptr %a173) %t175 = icmp ne i32 %t174, 0 - br label %logic.rend8598 -logic.rend8598: - br label %logic.end8597 -logic.end8597: - %t176 = phi i1 [ true, %logic.from8595 ], [ %t175, %logic.rend8598 ] - br label %logic.from8599 -logic.from8599: - br i1 %t176, label %logic.end8601, label %logic.rhs8600 -logic.rhs8600: + br label %logic.rend9000 +logic.rend9000: + br label %logic.end8999 +logic.end8999: + %t176 = phi i1 [ true, %logic.from8997 ], [ %t175, %logic.rend9000 ] + br label %logic.from9001 +logic.from9001: + br i1 %t176, label %logic.end9003, label %logic.rhs9002 +logic.rhs9002: %t177 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t177, ptr %a178 - store { ptr, i64, i64 } { ptr @.str.5746, i64 11, i64 0 }, ptr %a179 + store { ptr, i64, i64 } { ptr @.str.5954, i64 11, i64 0 }, ptr %a179 %t180 = call i32 @finch_str_eq(ptr %a178, ptr %a179) %t181 = icmp ne i32 %t180, 0 - br label %logic.rend8602 -logic.rend8602: - br label %logic.end8601 -logic.end8601: - %t182 = phi i1 [ true, %logic.from8599 ], [ %t181, %logic.rend8602 ] - br label %logic.from8603 -logic.from8603: - br i1 %t182, label %logic.end8605, label %logic.rhs8604 -logic.rhs8604: + br label %logic.rend9004 +logic.rend9004: + br label %logic.end9003 +logic.end9003: + %t182 = phi i1 [ true, %logic.from9001 ], [ %t181, %logic.rend9004 ] + br label %logic.from9005 +logic.from9005: + br i1 %t182, label %logic.end9007, label %logic.rhs9006 +logic.rhs9006: %t183 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t183, ptr %a184 - store { ptr, i64, i64 } { ptr @.str.5747, i64 9, i64 0 }, ptr %a185 + store { ptr, i64, i64 } { ptr @.str.5955, i64 9, i64 0 }, ptr %a185 %t186 = call i32 @finch_str_eq(ptr %a184, ptr %a185) %t187 = icmp ne i32 %t186, 0 - br label %logic.rend8606 -logic.rend8606: - br label %logic.end8605 -logic.end8605: - %t188 = phi i1 [ true, %logic.from8603 ], [ %t187, %logic.rend8606 ] - br i1 %t188, label %then8607, label %endif8609 -then8607: + br label %logic.rend9008 +logic.rend9008: + br label %logic.end9007 +logic.end9007: + %t188 = phi i1 [ true, %logic.from9005 ], [ %t187, %logic.rend9008 ] + br i1 %t188, label %then9009, label %endif9011 +then9009: %t189 = load ptr, ptr %a1 %t190 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t189, %S.ast.Node %t190, i64 1) @@ -90204,15 +94203,15 @@ then8607: %t193 = load { ptr, i64, i64 }, ptr %t192 %t194 = extractvalue { ptr, i64, i64 } %t193, 1 %t195 = icmp uge i64 1, %t194 - br i1 %t195, label %range8610, label %inrange8611 -range8610: - call void @finch_panic_index(ptr @.str.5748, i64 5391, i64 1, i64 %t194) + br i1 %t195, label %range9012, label %inrange9013 +range9012: + call void @finch_panic_index(ptr @.str.5956, i64 5626, i64 1, i64 %t194) unreachable -inrange8611: +inrange9013: %t196 = extractvalue { ptr, i64, i64 } %t193, 0 %t197 = getelementptr inbounds %S.ast.Node, ptr %t196, i64 1 %t198 = load %S.ast.Node, ptr %t197 - %t199 = call %S.gen.Val @finch.gen.strArg(ptr %t191, %S.ast.Node %t198, { ptr, i64, i64 } { ptr @.str.5749, i64 20, i64 0 }) + %t199 = call %S.gen.Val @finch.gen.strArg(ptr %t191, %S.ast.Node %t198, { ptr, i64, i64 } { ptr @.str.5957, i64 20, i64 0 }) store %S.gen.Val %t199, ptr %a200 %t201 = load ptr, ptr %a1 %t202 = load %S.gen.Val, ptr %a200 @@ -90220,19 +94219,19 @@ inrange8611: store { ptr, i64, i64 } %t203, ptr %a204 %t205 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t205, ptr %a206 - store { ptr, i64, i64 } { ptr @.str.5750, i64 4, i64 0 }, ptr %a207 + store { ptr, i64, i64 } { ptr @.str.5958, i64 4, i64 0 }, ptr %a207 %t208 = call i32 @finch_str_eq(ptr %a206, ptr %a207) %t209 = icmp ne i32 %t208, 0 - br i1 %t209, label %then8612, label %endif8614 -then8612: + br i1 %t209, label %then9014, label %endif9016 +then9014: %t210 = load ptr, ptr %a1 %t211 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.5751, i64 29, i64 0 }, ptr %a213 + store { ptr, i64, i64 } { ptr @.str.5959, i64 29, i64 0 }, ptr %a213 store { ptr, i64, i64 } %t211, ptr %a214 call void @finch_str_concat(ptr %a212, ptr %a213, ptr %a214) %t215 = load { ptr, i64, i64 }, ptr %a212 store { ptr, i64, i64 } %t215, ptr %a217 - store { ptr, i64, i64 } { ptr @.str.5752, i64 6, i64 0 }, ptr %a218 + store { ptr, i64, i64 } { ptr @.str.5960, i64 6, i64 0 }, ptr %a218 call void @finch_str_concat(ptr %a216, ptr %a217, ptr %a218) store { ptr, i64, i64 } %t215, ptr %a219 call void @finch_str_drop(ptr %a219) @@ -90245,7 +94244,7 @@ then8612: call void @finch_str_drop(ptr %a225) %t226 = load { ptr, i64, i64 }, ptr %a222 store { ptr, i64, i64 } %t226, ptr %a228 - store { ptr, i64, i64 } { ptr @.str.5753, i64 1, i64 0 }, ptr %a229 + store { ptr, i64, i64 } { ptr @.str.5961, i64 1, i64 0 }, ptr %a229 call void @finch_str_concat(ptr %a227, ptr %a228, ptr %a229) store { ptr, i64, i64 } %t226, ptr %a230 call void @finch_str_drop(ptr %a230) @@ -90262,7 +94261,7 @@ then8612: call void @finch_str_copy(ptr %a239, ptr %a238) %t240 = load { ptr, i64, i64 }, ptr %a239 %t241 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t240, 0 - %t242 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5754, i64 3, i64 0 }) + %t242 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5962, i64 3, i64 0 }) %t243 = insertvalue %S.gen.Val %t241, %S.ast.Type %t242, 1 call void @finch_str_drop(ptr %a234) call void @finch_str_drop(ptr %a204) @@ -90271,22 +94270,22 @@ then8612: call void @finch_str_drop(ptr %a12) call void @finch_str_drop(ptr %a9) ret %S.gen.Val %t243 -endif8614: +endif9016: %t244 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t244, ptr %a245 - store { ptr, i64, i64 } { ptr @.str.5755, i64 8, i64 0 }, ptr %a246 + store { ptr, i64, i64 } { ptr @.str.5963, i64 8, i64 0 }, ptr %a246 %t247 = call i32 @finch_str_eq(ptr %a245, ptr %a246) %t248 = icmp ne i32 %t247, 0 - br i1 %t248, label %then8615, label %endif8617 -then8615: + br i1 %t248, label %then9017, label %endif9019 +then9017: %t249 = load ptr, ptr %a1 %t250 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.5756, i64 29, i64 0 }, ptr %a252 + store { ptr, i64, i64 } { ptr @.str.5964, i64 29, i64 0 }, ptr %a252 store { ptr, i64, i64 } %t250, ptr %a253 call void @finch_str_concat(ptr %a251, ptr %a252, ptr %a253) %t254 = load { ptr, i64, i64 }, ptr %a251 store { ptr, i64, i64 } %t254, ptr %a256 - store { ptr, i64, i64 } { ptr @.str.5757, i64 6, i64 0 }, ptr %a257 + store { ptr, i64, i64 } { ptr @.str.5965, i64 6, i64 0 }, ptr %a257 call void @finch_str_concat(ptr %a255, ptr %a256, ptr %a257) store { ptr, i64, i64 } %t254, ptr %a258 call void @finch_str_drop(ptr %a258) @@ -90299,7 +94298,7 @@ then8615: call void @finch_str_drop(ptr %a264) %t265 = load { ptr, i64, i64 }, ptr %a261 store { ptr, i64, i64 } %t265, ptr %a267 - store { ptr, i64, i64 } { ptr @.str.5758, i64 1, i64 0 }, ptr %a268 + store { ptr, i64, i64 } { ptr @.str.5966, i64 1, i64 0 }, ptr %a268 call void @finch_str_concat(ptr %a266, ptr %a267, ptr %a268) store { ptr, i64, i64 } %t265, ptr %a269 call void @finch_str_drop(ptr %a269) @@ -90310,12 +94309,12 @@ then8615: store { ptr, i64, i64 } %t271, ptr %a273 %t274 = load ptr, ptr %a1 %t275 = load { ptr, i64, i64 }, ptr %a273 - store { ptr, i64, i64 } { ptr @.str.5759, i64 13, i64 0 }, ptr %a277 + store { ptr, i64, i64 } { ptr @.str.5967, i64 13, i64 0 }, ptr %a277 store { ptr, i64, i64 } %t275, ptr %a278 call void @finch_str_concat(ptr %a276, ptr %a277, ptr %a278) %t279 = load { ptr, i64, i64 }, ptr %a276 store { ptr, i64, i64 } %t279, ptr %a281 - store { ptr, i64, i64 } { ptr @.str.5760, i64 3, i64 0 }, ptr %a282 + store { ptr, i64, i64 } { ptr @.str.5968, i64 3, i64 0 }, ptr %a282 call void @finch_str_concat(ptr %a280, ptr %a281, ptr %a282) store { ptr, i64, i64 } %t279, ptr %a283 call void @finch_str_drop(ptr %a283) @@ -90332,7 +94331,7 @@ then8615: call void @finch_str_copy(ptr %a292, ptr %a291) %t293 = load { ptr, i64, i64 }, ptr %a292 %t294 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t293, 0 - %t295 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5761, i64 4, i64 0 }) + %t295 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5969, i64 4, i64 0 }) %t296 = insertvalue %S.gen.Val %t294, %S.ast.Type %t295, 1 call void @finch_str_drop(ptr %a287) call void @finch_str_drop(ptr %a273) @@ -90342,29 +94341,29 @@ then8615: call void @finch_str_drop(ptr %a12) call void @finch_str_drop(ptr %a9) ret %S.gen.Val %t296 -endif8617: - store { ptr, i64, i64 } { ptr @.str.5762, i64 17, i64 0 }, ptr %a297 +endif9019: + store { ptr, i64, i64 } { ptr @.str.5970, i64 17, i64 0 }, ptr %a297 %t298 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t298, ptr %a299 - store { ptr, i64, i64 } { ptr @.str.5763, i64 9, i64 0 }, ptr %a300 + store { ptr, i64, i64 } { ptr @.str.5971, i64 9, i64 0 }, ptr %a300 %t301 = call i32 @finch_str_eq(ptr %a299, ptr %a300) %t302 = icmp ne i32 %t301, 0 - br i1 %t302, label %then8618, label %endif8620 -then8618: + br i1 %t302, label %then9020, label %endif9022 +then9020: %t303 = load { ptr, i64, i64 }, ptr %a297 - store { ptr, i64, i64 } { ptr @.str.5764, i64 15, i64 0 }, ptr %a297 + store { ptr, i64, i64 } { ptr @.str.5972, i64 15, i64 0 }, ptr %a297 store { ptr, i64, i64 } %t303, ptr %a304 call void @finch_str_drop(ptr %a304) - br label %endif8620 -endif8620: + br label %endif9022 +endif9022: %t305 = load ptr, ptr %a1 %t306 = load { ptr, i64, i64 }, ptr %a297 - store { ptr, i64, i64 } { ptr @.str.5765, i64 9, i64 0 }, ptr %a308 + store { ptr, i64, i64 } { ptr @.str.5973, i64 9, i64 0 }, ptr %a308 store { ptr, i64, i64 } %t306, ptr %a309 call void @finch_str_concat(ptr %a307, ptr %a308, ptr %a309) %t310 = load { ptr, i64, i64 }, ptr %a307 store { ptr, i64, i64 } %t310, ptr %a312 - store { ptr, i64, i64 } { ptr @.str.5766, i64 5, i64 0 }, ptr %a313 + store { ptr, i64, i64 } { ptr @.str.5974, i64 5, i64 0 }, ptr %a313 call void @finch_str_concat(ptr %a311, ptr %a312, ptr %a313) store { ptr, i64, i64 } %t310, ptr %a314 call void @finch_str_drop(ptr %a314) @@ -90377,7 +94376,7 @@ endif8620: call void @finch_str_drop(ptr %a320) %t321 = load { ptr, i64, i64 }, ptr %a317 store { ptr, i64, i64 } %t321, ptr %a323 - store { ptr, i64, i64 } { ptr @.str.5767, i64 6, i64 0 }, ptr %a324 + store { ptr, i64, i64 } { ptr @.str.5975, i64 6, i64 0 }, ptr %a324 call void @finch_str_concat(ptr %a322, ptr %a323, ptr %a324) store { ptr, i64, i64 } %t321, ptr %a325 call void @finch_str_drop(ptr %a325) @@ -90390,7 +94389,7 @@ endif8620: call void @finch_str_drop(ptr %a331) %t332 = load { ptr, i64, i64 }, ptr %a328 store { ptr, i64, i64 } %t332, ptr %a334 - store { ptr, i64, i64 } { ptr @.str.5768, i64 1, i64 0 }, ptr %a335 + store { ptr, i64, i64 } { ptr @.str.5976, i64 1, i64 0 }, ptr %a335 call void @finch_str_concat(ptr %a333, ptr %a334, ptr %a335) store { ptr, i64, i64 } %t332, ptr %a336 call void @finch_str_drop(ptr %a336) @@ -90401,12 +94400,12 @@ endif8620: store { ptr, i64, i64 } %t338, ptr %a340 %t341 = load ptr, ptr %a1 %t342 = load { ptr, i64, i64 }, ptr %a340 - store { ptr, i64, i64 } { ptr @.str.5769, i64 12, i64 0 }, ptr %a344 + store { ptr, i64, i64 } { ptr @.str.5977, i64 12, i64 0 }, ptr %a344 store { ptr, i64, i64 } %t342, ptr %a345 call void @finch_str_concat(ptr %a343, ptr %a344, ptr %a345) %t346 = load { ptr, i64, i64 }, ptr %a343 store { ptr, i64, i64 } %t346, ptr %a348 - store { ptr, i64, i64 } { ptr @.str.5770, i64 3, i64 0 }, ptr %a349 + store { ptr, i64, i64 } { ptr @.str.5978, i64 3, i64 0 }, ptr %a349 call void @finch_str_concat(ptr %a347, ptr %a348, ptr %a349) store { ptr, i64, i64 } %t346, ptr %a350 call void @finch_str_drop(ptr %a350) @@ -90423,7 +94422,7 @@ endif8620: call void @finch_str_copy(ptr %a359, ptr %a358) %t360 = load { ptr, i64, i64 }, ptr %a359 %t361 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t360, 0 - %t362 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5771, i64 4, i64 0 }) + %t362 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5979, i64 4, i64 0 }) %t363 = insertvalue %S.gen.Val %t361, %S.ast.Type %t362, 1 call void @finch_str_drop(ptr %a354) call void @finch_str_drop(ptr %a340) @@ -90434,53 +94433,53 @@ endif8620: call void @finch_str_drop(ptr %a12) call void @finch_str_drop(ptr %a9) ret %S.gen.Val %t363 -endif8609: +endif9011: %t364 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t364, ptr %a365 - store { ptr, i64, i64 } { ptr @.str.5772, i64 4, i64 0 }, ptr %a366 + store { ptr, i64, i64 } { ptr @.str.5980, i64 4, i64 0 }, ptr %a366 %t367 = call i32 @finch_str_eq(ptr %a365, ptr %a366) %t368 = icmp ne i32 %t367, 0 - br label %logic.from8621 -logic.from8621: - br i1 %t368, label %logic.end8623, label %logic.rhs8622 -logic.rhs8622: + br label %logic.from9023 +logic.from9023: + br i1 %t368, label %logic.end9025, label %logic.rhs9024 +logic.rhs9024: %t369 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t369, ptr %a370 - store { ptr, i64, i64 } { ptr @.str.5773, i64 5, i64 0 }, ptr %a371 + store { ptr, i64, i64 } { ptr @.str.5981, i64 5, i64 0 }, ptr %a371 %t372 = call i32 @finch_str_eq(ptr %a370, ptr %a371) %t373 = icmp ne i32 %t372, 0 - br label %logic.rend8624 -logic.rend8624: - br label %logic.end8623 -logic.end8623: - %t374 = phi i1 [ true, %logic.from8621 ], [ %t373, %logic.rend8624 ] - br label %logic.from8625 -logic.from8625: - br i1 %t374, label %logic.end8627, label %logic.rhs8626 -logic.rhs8626: + br label %logic.rend9026 +logic.rend9026: + br label %logic.end9025 +logic.end9025: + %t374 = phi i1 [ true, %logic.from9023 ], [ %t373, %logic.rend9026 ] + br label %logic.from9027 +logic.from9027: + br i1 %t374, label %logic.end9029, label %logic.rhs9028 +logic.rhs9028: %t375 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t375, ptr %a376 - store { ptr, i64, i64 } { ptr @.str.5774, i64 5, i64 0 }, ptr %a377 + store { ptr, i64, i64 } { ptr @.str.5982, i64 5, i64 0 }, ptr %a377 %t378 = call i32 @finch_str_eq(ptr %a376, ptr %a377) %t379 = icmp ne i32 %t378, 0 - br label %logic.rend8628 -logic.rend8628: - br label %logic.end8627 -logic.end8627: - %t380 = phi i1 [ true, %logic.from8625 ], [ %t379, %logic.rend8628 ] - br i1 %t380, label %then8629, label %endif8631 -then8629: + br label %logic.rend9030 +logic.rend9030: + br label %logic.end9029 +logic.end9029: + %t380 = phi i1 [ true, %logic.from9027 ], [ %t379, %logic.rend9030 ] + br i1 %t380, label %then9031, label %endif9033 +then9031: %t381 = load ptr, ptr %a1 %t382 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t381, %S.ast.Node %t382, i64 0) %t383 = load ptr, ptr %a1 %t384 = load { ptr, i64, i64 }, ptr %a9 - store { ptr, i64, i64 } { ptr @.str.5775, i64 21, i64 0 }, ptr %a386 + store { ptr, i64, i64 } { ptr @.str.5983, i64 21, i64 0 }, ptr %a386 store { ptr, i64, i64 } %t384, ptr %a387 call void @finch_str_concat(ptr %a385, ptr %a386, ptr %a387) %t388 = load { ptr, i64, i64 }, ptr %a385 store { ptr, i64, i64 } %t388, ptr %a390 - store { ptr, i64, i64 } { ptr @.str.5776, i64 5, i64 0 }, ptr %a391 + store { ptr, i64, i64 } { ptr @.str.5984, i64 5, i64 0 }, ptr %a391 call void @finch_str_concat(ptr %a389, ptr %a390, ptr %a391) store { ptr, i64, i64 } %t388, ptr %a392 call void @finch_str_drop(ptr %a392) @@ -90493,7 +94492,7 @@ then8629: call void @finch_str_drop(ptr %a398) %t399 = load { ptr, i64, i64 }, ptr %a395 store { ptr, i64, i64 } %t399, ptr %a401 - store { ptr, i64, i64 } { ptr @.str.5777, i64 6, i64 0 }, ptr %a402 + store { ptr, i64, i64 } { ptr @.str.5985, i64 6, i64 0 }, ptr %a402 call void @finch_str_concat(ptr %a400, ptr %a401, ptr %a402) store { ptr, i64, i64 } %t399, ptr %a403 call void @finch_str_drop(ptr %a403) @@ -90506,7 +94505,7 @@ then8629: call void @finch_str_drop(ptr %a409) %t410 = load { ptr, i64, i64 }, ptr %a406 store { ptr, i64, i64 } %t410, ptr %a412 - store { ptr, i64, i64 } { ptr @.str.5778, i64 1, i64 0 }, ptr %a413 + store { ptr, i64, i64 } { ptr @.str.5986, i64 1, i64 0 }, ptr %a413 call void @finch_str_concat(ptr %a411, ptr %a412, ptr %a413) store { ptr, i64, i64 } %t410, ptr %a414 call void @finch_str_drop(ptr %a414) @@ -90516,23 +94515,23 @@ then8629: call void @finch_str_drop(ptr %a416) %t417 = load ptr, ptr %a1 %t418 = load { ptr, i64, i64 }, ptr %a12 - %t419 = call { ptr, i64, i64 } @finch.gen.load(ptr %t417, { ptr, i64, i64 } { ptr @.str.5779, i64 17, i64 0 }, { ptr, i64, i64 } %t418) + %t419 = call { ptr, i64, i64 } @finch.gen.load(ptr %t417, { ptr, i64, i64 } { ptr @.str.5987, i64 17, i64 0 }, { ptr, i64, i64 } %t418) %t420 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t419, 0 - %t421 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5780, i64 3, i64 0 }) + %t421 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5988, i64 3, i64 0 }) %t422 = insertvalue %S.gen.Val %t420, %S.ast.Type %t421, 1 %t423 = insertvalue %S.gen.Val %t422, i1 true, 2 call void @finch_str_drop(ptr %a26) call void @finch_str_drop(ptr %a12) call void @finch_str_drop(ptr %a9) ret %S.gen.Val %t423 -endif8631: +endif9033: %t424 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t424, ptr %a425 - store { ptr, i64, i64 } { ptr @.str.5781, i64 7, i64 0 }, ptr %a426 + store { ptr, i64, i64 } { ptr @.str.5989, i64 7, i64 0 }, ptr %a426 %t427 = call i32 @finch_str_eq(ptr %a425, ptr %a426) %t428 = icmp ne i32 %t427, 0 - br i1 %t428, label %then8632, label %endif8634 -then8632: + br i1 %t428, label %then9034, label %endif9036 +then9034: %t429 = load ptr, ptr %a1 %t430 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t429, %S.ast.Node %t430, i64 2) @@ -90541,23 +94540,23 @@ then8632: %t433 = load { ptr, i64, i64 }, ptr %t432 %t434 = extractvalue { ptr, i64, i64 } %t433, 1 %t435 = icmp uge i64 1, %t434 - br i1 %t435, label %range8635, label %inrange8636 -range8635: - call void @finch_panic_index(ptr @.str.5782, i64 5420, i64 1, i64 %t434) + br i1 %t435, label %range9037, label %inrange9038 +range9037: + call void @finch_panic_index(ptr @.str.5990, i64 5655, i64 1, i64 %t434) unreachable -inrange8636: +inrange9038: %t436 = extractvalue { ptr, i64, i64 } %t433, 0 %t437 = getelementptr inbounds %S.ast.Node, ptr %t436, i64 1 %t438 = load %S.ast.Node, ptr %t437 - %t439 = call %S.gen.Val @finch.gen.strArg(ptr %t431, %S.ast.Node %t438, { ptr, i64, i64 } { ptr @.str.5783, i64 19, i64 0 }) + %t439 = call %S.gen.Val @finch.gen.strArg(ptr %t431, %S.ast.Node %t438, { ptr, i64, i64 } { ptr @.str.5991, i64 19, i64 0 }) store %S.gen.Val %t439, ptr %a440 %t441 = load ptr, ptr %a1 %t442 = icmp eq ptr %t441, null - br i1 %t442, label %panic8637, label %ok8638 -panic8637: - call void @finch_panic(ptr @.str.5784, i64 5421, ptr @.str.5785) + br i1 %t442, label %panic9039, label %ok9040 +panic9039: + call void @finch_panic(ptr @.str.5992, i64 5656, ptr @.str.5993) unreachable -ok8638: +ok9040: %t443 = getelementptr inbounds %S.gen.Gen, ptr %t441, i32 0, i32 11 %t444 = getelementptr inbounds { ptr, i64, i64 }, ptr %t443, i32 0, i32 1 %t445 = load i64, ptr %t444 @@ -90570,15 +94569,15 @@ ok8638: %t451 = load { ptr, i64, i64 }, ptr %t450 %t452 = extractvalue { ptr, i64, i64 } %t451, 1 %t453 = icmp uge i64 2, %t452 - br i1 %t453, label %range8639, label %inrange8640 -range8639: - call void @finch_panic_index(ptr @.str.5786, i64 5423, i64 2, i64 %t452) + br i1 %t453, label %range9041, label %inrange9042 +range9041: + call void @finch_panic_index(ptr @.str.5994, i64 5658, i64 2, i64 %t452) unreachable -inrange8640: +inrange9042: %t454 = extractvalue { ptr, i64, i64 } %t451, 0 %t455 = getelementptr inbounds %S.ast.Node, ptr %t454, i64 2 %t456 = load %S.ast.Node, ptr %t455 - %t457 = call %S.gen.Val @finch.gen.strArg(ptr %t449, %S.ast.Node %t456, { ptr, i64, i64 } { ptr @.str.5787, i64 12, i64 0 }) + %t457 = call %S.gen.Val @finch.gen.strArg(ptr %t449, %S.ast.Node %t456, { ptr, i64, i64 } { ptr @.str.5995, i64 12, i64 0 }) store %S.gen.Val %t457, ptr %a458 %t459 = load ptr, ptr %a1 %t460 = load i64, ptr %a446 @@ -90593,12 +94592,12 @@ inrange8640: store { ptr, i64, i64 } %t467, ptr %a468 %t469 = load ptr, ptr %a1 %t470 = load { ptr, i64, i64 }, ptr %a12 - store { ptr, i64, i64 } { ptr @.str.5788, i64 33, i64 0 }, ptr %a472 + store { ptr, i64, i64 } { ptr @.str.5996, i64 33, i64 0 }, ptr %a472 store { ptr, i64, i64 } %t470, ptr %a473 call void @finch_str_concat(ptr %a471, ptr %a472, ptr %a473) %t474 = load { ptr, i64, i64 }, ptr %a471 store { ptr, i64, i64 } %t474, ptr %a476 - store { ptr, i64, i64 } { ptr @.str.5789, i64 6, i64 0 }, ptr %a477 + store { ptr, i64, i64 } { ptr @.str.5997, i64 6, i64 0 }, ptr %a477 call void @finch_str_concat(ptr %a475, ptr %a476, ptr %a477) store { ptr, i64, i64 } %t474, ptr %a478 call void @finch_str_drop(ptr %a478) @@ -90611,7 +94610,7 @@ inrange8640: call void @finch_str_drop(ptr %a484) %t485 = load { ptr, i64, i64 }, ptr %a481 store { ptr, i64, i64 } %t485, ptr %a487 - store { ptr, i64, i64 } { ptr @.str.5790, i64 6, i64 0 }, ptr %a488 + store { ptr, i64, i64 } { ptr @.str.5998, i64 6, i64 0 }, ptr %a488 call void @finch_str_concat(ptr %a486, ptr %a487, ptr %a488) store { ptr, i64, i64 } %t485, ptr %a489 call void @finch_str_drop(ptr %a489) @@ -90624,7 +94623,7 @@ inrange8640: call void @finch_str_drop(ptr %a495) %t496 = load { ptr, i64, i64 }, ptr %a492 store { ptr, i64, i64 } %t496, ptr %a498 - store { ptr, i64, i64 } { ptr @.str.5791, i64 6, i64 0 }, ptr %a499 + store { ptr, i64, i64 } { ptr @.str.5999, i64 6, i64 0 }, ptr %a499 call void @finch_str_concat(ptr %a497, ptr %a498, ptr %a499) store { ptr, i64, i64 } %t496, ptr %a500 call void @finch_str_drop(ptr %a500) @@ -90637,7 +94636,7 @@ inrange8640: call void @finch_str_drop(ptr %a506) %t507 = load { ptr, i64, i64 }, ptr %a503 store { ptr, i64, i64 } %t507, ptr %a509 - store { ptr, i64, i64 } { ptr @.str.5792, i64 1, i64 0 }, ptr %a510 + store { ptr, i64, i64 } { ptr @.str.6000, i64 1, i64 0 }, ptr %a510 call void @finch_str_concat(ptr %a508, ptr %a509, ptr %a510) store { ptr, i64, i64 } %t507, ptr %a511 call void @finch_str_drop(ptr %a511) @@ -90653,9 +94652,9 @@ inrange8640: call void @finch.gen.release(ptr %t516, %S.gen.Val %t517) %t518 = load ptr, ptr %a1 %t519 = load { ptr, i64, i64 }, ptr %a12 - %t520 = call { ptr, i64, i64 } @finch.gen.load(ptr %t518, { ptr, i64, i64 } { ptr @.str.5793, i64 17, i64 0 }, { ptr, i64, i64 } %t519) + %t520 = call { ptr, i64, i64 } @finch.gen.load(ptr %t518, { ptr, i64, i64 } { ptr @.str.6001, i64 17, i64 0 }, { ptr, i64, i64 } %t519) %t521 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t520, 0 - %t522 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5794, i64 3, i64 0 }) + %t522 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.6002, i64 3, i64 0 }) %t523 = insertvalue %S.gen.Val %t521, %S.ast.Type %t522, 1 %t524 = insertvalue %S.gen.Val %t523, i1 true, 2 call void @finch_str_drop(ptr %a468) @@ -90666,14 +94665,14 @@ inrange8640: call void @finch_str_drop(ptr %a12) call void @finch_str_drop(ptr %a9) ret %S.gen.Val %t524 -endif8634: +endif9036: %t525 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t525, ptr %a526 - store { ptr, i64, i64 } { ptr @.str.5795, i64 5, i64 0 }, ptr %a527 + store { ptr, i64, i64 } { ptr @.str.6003, i64 5, i64 0 }, ptr %a527 %t528 = call i32 @finch_str_eq(ptr %a526, ptr %a527) %t529 = icmp ne i32 %t528, 0 - br i1 %t529, label %then8641, label %endif8643 -then8641: + br i1 %t529, label %then9043, label %endif9045 +then9043: %t530 = load ptr, ptr %a1 %t531 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t530, %S.ast.Node %t531, i64 1) @@ -90682,15 +94681,15 @@ then8641: %t534 = load { ptr, i64, i64 }, ptr %t533 %t535 = extractvalue { ptr, i64, i64 } %t534, 1 %t536 = icmp uge i64 1, %t535 - br i1 %t536, label %range8644, label %inrange8645 -range8644: - call void @finch_panic_index(ptr @.str.5796, i64 5434, i64 1, i64 %t535) + br i1 %t536, label %range9046, label %inrange9047 +range9046: + call void @finch_panic_index(ptr @.str.6004, i64 5669, i64 1, i64 %t535) unreachable -inrange8645: +inrange9047: %t537 = extractvalue { ptr, i64, i64 } %t534, 0 %t538 = getelementptr inbounds %S.ast.Node, ptr %t537, i64 1 %t539 = load %S.ast.Node, ptr %t538 - %t540 = call %S.gen.Val @finch.gen.strArg(ptr %t532, %S.ast.Node %t539, { ptr, i64, i64 } { ptr @.str.5797, i64 13, i64 0 }) + %t540 = call %S.gen.Val @finch.gen.strArg(ptr %t532, %S.ast.Node %t539, { ptr, i64, i64 } { ptr @.str.6005, i64 13, i64 0 }) store %S.gen.Val %t540, ptr %a541 %t542 = load ptr, ptr %a1 %t543 = load %S.gen.Val, ptr %a541 @@ -90701,12 +94700,12 @@ inrange8645: store { ptr, i64, i64 } %t547, ptr %a548 %t549 = load ptr, ptr %a1 %t550 = load { ptr, i64, i64 }, ptr %a548 - store { ptr, i64, i64 } { ptr @.str.5798, i64 31, i64 0 }, ptr %a552 + store { ptr, i64, i64 } { ptr @.str.6006, i64 31, i64 0 }, ptr %a552 store { ptr, i64, i64 } %t550, ptr %a553 call void @finch_str_concat(ptr %a551, ptr %a552, ptr %a553) %t554 = load { ptr, i64, i64 }, ptr %a551 store { ptr, i64, i64 } %t554, ptr %a556 - store { ptr, i64, i64 } { ptr @.str.5799, i64 6, i64 0 }, ptr %a557 + store { ptr, i64, i64 } { ptr @.str.6007, i64 6, i64 0 }, ptr %a557 call void @finch_str_concat(ptr %a555, ptr %a556, ptr %a557) store { ptr, i64, i64 } %t554, ptr %a558 call void @finch_str_drop(ptr %a558) @@ -90719,7 +94718,7 @@ inrange8645: call void @finch_str_drop(ptr %a564) %t565 = load { ptr, i64, i64 }, ptr %a561 store { ptr, i64, i64 } %t565, ptr %a567 - store { ptr, i64, i64 } { ptr @.str.5800, i64 6, i64 0 }, ptr %a568 + store { ptr, i64, i64 } { ptr @.str.6008, i64 6, i64 0 }, ptr %a568 call void @finch_str_concat(ptr %a566, ptr %a567, ptr %a568) store { ptr, i64, i64 } %t565, ptr %a569 call void @finch_str_drop(ptr %a569) @@ -90732,7 +94731,7 @@ inrange8645: call void @finch_str_drop(ptr %a575) %t576 = load { ptr, i64, i64 }, ptr %a572 store { ptr, i64, i64 } %t576, ptr %a578 - store { ptr, i64, i64 } { ptr @.str.5801, i64 1, i64 0 }, ptr %a579 + store { ptr, i64, i64 } { ptr @.str.6009, i64 1, i64 0 }, ptr %a579 call void @finch_str_concat(ptr %a577, ptr %a578, ptr %a579) store { ptr, i64, i64 } %t576, ptr %a580 call void @finch_str_drop(ptr %a580) @@ -90745,9 +94744,9 @@ inrange8645: call void @finch.gen.release(ptr %t583, %S.gen.Val %t584) %t585 = load ptr, ptr %a1 %t586 = load { ptr, i64, i64 }, ptr %a548 - %t587 = call { ptr, i64, i64 } @finch.gen.load(ptr %t585, { ptr, i64, i64 } { ptr @.str.5802, i64 17, i64 0 }, { ptr, i64, i64 } %t586) + %t587 = call { ptr, i64, i64 } @finch.gen.load(ptr %t585, { ptr, i64, i64 } { ptr @.str.6010, i64 17, i64 0 }, { ptr, i64, i64 } %t586) %t588 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t587, 0 - %t589 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5803, i64 3, i64 0 }) + %t589 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.6011, i64 3, i64 0 }) %t590 = call %S.ast.Type @finch.ast.arrayOf(%S.ast.Type %t589) store %S.ast.Type %t589, ptr %a591 call void @finch.drop.S_ast_Type(ptr %a591) @@ -90760,14 +94759,14 @@ inrange8645: call void @finch_str_drop(ptr %a12) call void @finch_str_drop(ptr %a9) ret %S.gen.Val %t593 -endif8643: +endif9045: %t594 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t594, ptr %a595 - store { ptr, i64, i64 } { ptr @.str.5804, i64 6, i64 0 }, ptr %a596 + store { ptr, i64, i64 } { ptr @.str.6012, i64 6, i64 0 }, ptr %a596 %t597 = call i32 @finch_str_eq(ptr %a595, ptr %a596) %t598 = icmp ne i32 %t597, 0 - br i1 %t598, label %then8646, label %endif8648 -then8646: + br i1 %t598, label %then9048, label %endif9050 +then9048: %t599 = load ptr, ptr %a1 %t600 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t599, %S.ast.Node %t600, i64 1) @@ -90777,29 +94776,29 @@ then8646: %t604 = load { ptr, i64, i64 }, ptr %t603 %t605 = extractvalue { ptr, i64, i64 } %t604, 1 %t606 = icmp uge i64 1, %t605 - br i1 %t606, label %range8649, label %inrange8650 -range8649: - call void @finch_panic_index(ptr @.str.5805, i64 5443, i64 1, i64 %t605) + br i1 %t606, label %range9051, label %inrange9052 +range9051: + call void @finch_panic_index(ptr @.str.6013, i64 5678, i64 1, i64 %t605) unreachable -inrange8650: +inrange9052: %t607 = extractvalue { ptr, i64, i64 } %t604, 0 %t608 = getelementptr inbounds %S.ast.Node, ptr %t607, i64 1 %t609 = load %S.ast.Node, ptr %t608 %t610 = call %S.gen.Val @finch.gen.expr(ptr %t602, %S.ast.Node %t609) - %t611 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5806, i64 3, i64 0 }) + %t611 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.6014, i64 3, i64 0 }) %t612 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t613 = load { ptr, i64, i64 }, ptr %t612 %t614 = extractvalue { ptr, i64, i64 } %t613, 1 %t615 = icmp uge i64 1, %t614 - br i1 %t615, label %range8651, label %inrange8652 -range8651: - call void @finch_panic_index(ptr @.str.5807, i64 5443, i64 1, i64 %t614) + br i1 %t615, label %range9053, label %inrange9054 +range9053: + call void @finch_panic_index(ptr @.str.6015, i64 5678, i64 1, i64 %t614) unreachable -inrange8652: +inrange9054: %t616 = extractvalue { ptr, i64, i64 } %t613, 0 %t617 = getelementptr inbounds %S.ast.Node, ptr %t616, i64 1 %t618 = load %S.ast.Node, ptr %t617 - %t619 = call %S.gen.Val @finch.gen.coerce(ptr %t601, %S.gen.Val %t610, %S.ast.Type %t611, %S.ast.Node %t618, { ptr, i64, i64 } { ptr @.str.5808, i64 9, i64 0 }) + %t619 = call %S.gen.Val @finch.gen.coerce(ptr %t601, %S.gen.Val %t610, %S.ast.Type %t611, %S.ast.Node %t618, { ptr, i64, i64 } { ptr @.str.6016, i64 9, i64 0 }) store %S.gen.Val %t610, ptr %a620 call void @finch.drop.S_gen_Val(ptr %a620) store %S.ast.Type %t611, ptr %a621 @@ -90813,12 +94812,12 @@ inrange8652: store { ptr, i64, i64 } %t625, ptr %a627 %t628 = load ptr, ptr %a1 %t629 = load { ptr, i64, i64 }, ptr %a12 - store { ptr, i64, i64 } { ptr @.str.5809, i64 32, i64 0 }, ptr %a631 + store { ptr, i64, i64 } { ptr @.str.6017, i64 32, i64 0 }, ptr %a631 store { ptr, i64, i64 } %t629, ptr %a632 call void @finch_str_concat(ptr %a630, ptr %a631, ptr %a632) %t633 = load { ptr, i64, i64 }, ptr %a630 store { ptr, i64, i64 } %t633, ptr %a635 - store { ptr, i64, i64 } { ptr @.str.5810, i64 6, i64 0 }, ptr %a636 + store { ptr, i64, i64 } { ptr @.str.6018, i64 6, i64 0 }, ptr %a636 call void @finch_str_concat(ptr %a634, ptr %a635, ptr %a636) store { ptr, i64, i64 } %t633, ptr %a637 call void @finch_str_drop(ptr %a637) @@ -90831,7 +94830,7 @@ inrange8652: call void @finch_str_drop(ptr %a643) %t644 = load { ptr, i64, i64 }, ptr %a640 store { ptr, i64, i64 } %t644, ptr %a646 - store { ptr, i64, i64 } { ptr @.str.5811, i64 6, i64 0 }, ptr %a647 + store { ptr, i64, i64 } { ptr @.str.6019, i64 6, i64 0 }, ptr %a647 call void @finch_str_concat(ptr %a645, ptr %a646, ptr %a647) store { ptr, i64, i64 } %t644, ptr %a648 call void @finch_str_drop(ptr %a648) @@ -90844,7 +94843,7 @@ inrange8652: call void @finch_str_drop(ptr %a654) %t655 = load { ptr, i64, i64 }, ptr %a651 store { ptr, i64, i64 } %t655, ptr %a657 - store { ptr, i64, i64 } { ptr @.str.5812, i64 1, i64 0 }, ptr %a658 + store { ptr, i64, i64 } { ptr @.str.6020, i64 1, i64 0 }, ptr %a658 call void @finch_str_concat(ptr %a656, ptr %a657, ptr %a658) store { ptr, i64, i64 } %t655, ptr %a659 call void @finch_str_drop(ptr %a659) @@ -90854,9 +94853,9 @@ inrange8652: call void @finch_str_drop(ptr %a661) %t662 = load ptr, ptr %a1 %t663 = load { ptr, i64, i64 }, ptr %a12 - %t664 = call { ptr, i64, i64 } @finch.gen.load(ptr %t662, { ptr, i64, i64 } { ptr @.str.5813, i64 17, i64 0 }, { ptr, i64, i64 } %t663) + %t664 = call { ptr, i64, i64 } @finch.gen.load(ptr %t662, { ptr, i64, i64 } { ptr @.str.6021, i64 17, i64 0 }, { ptr, i64, i64 } %t663) %t665 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t664, 0 - %t666 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5814, i64 3, i64 0 }) + %t666 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.6022, i64 3, i64 0 }) %t667 = insertvalue %S.gen.Val %t665, %S.ast.Type %t666, 1 %t668 = insertvalue %S.gen.Val %t667, i1 true, 2 call void @finch_str_drop(ptr %a627) @@ -90864,14 +94863,14 @@ inrange8652: call void @finch_str_drop(ptr %a12) call void @finch_str_drop(ptr %a9) ret %S.gen.Val %t668 -endif8648: +endif9050: %t669 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t669, ptr %a670 - store { ptr, i64, i64 } { ptr @.str.5815, i64 5, i64 0 }, ptr %a671 + store { ptr, i64, i64 } { ptr @.str.6023, i64 5, i64 0 }, ptr %a671 %t672 = call i32 @finch_str_eq(ptr %a670, ptr %a671) %t673 = icmp ne i32 %t672, 0 - br i1 %t673, label %then8653, label %endif8655 -then8653: + br i1 %t673, label %then9055, label %endif9057 +then9055: %t674 = load ptr, ptr %a1 %t675 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t674, %S.ast.Node %t675, i64 0) @@ -90880,12 +94879,12 @@ then8653: store { ptr, i64, i64 } %t677, ptr %a678 %t679 = load ptr, ptr %a1 %t680 = load { ptr, i64, i64 }, ptr %a678 - store { ptr, i64, i64 } { ptr @.str.5816, i64 36, i64 0 }, ptr %a682 + store { ptr, i64, i64 } { ptr @.str.6024, i64 36, i64 0 }, ptr %a682 store { ptr, i64, i64 } %t680, ptr %a683 call void @finch_str_concat(ptr %a681, ptr %a682, ptr %a683) %t684 = load { ptr, i64, i64 }, ptr %a681 store { ptr, i64, i64 } %t684, ptr %a686 - store { ptr, i64, i64 } { ptr @.str.5817, i64 6, i64 0 }, ptr %a687 + store { ptr, i64, i64 } { ptr @.str.6025, i64 6, i64 0 }, ptr %a687 call void @finch_str_concat(ptr %a685, ptr %a686, ptr %a687) store { ptr, i64, i64 } %t684, ptr %a688 call void @finch_str_drop(ptr %a688) @@ -90898,7 +94897,7 @@ then8653: call void @finch_str_drop(ptr %a694) %t695 = load { ptr, i64, i64 }, ptr %a691 store { ptr, i64, i64 } %t695, ptr %a697 - store { ptr, i64, i64 } { ptr @.str.5818, i64 1, i64 0 }, ptr %a698 + store { ptr, i64, i64 } { ptr @.str.6026, i64 1, i64 0 }, ptr %a698 call void @finch_str_concat(ptr %a696, ptr %a697, ptr %a698) store { ptr, i64, i64 } %t695, ptr %a699 call void @finch_str_drop(ptr %a699) @@ -90908,9 +94907,9 @@ then8653: call void @finch_str_drop(ptr %a701) %t702 = load ptr, ptr %a1 %t703 = load { ptr, i64, i64 }, ptr %a678 - %t704 = call { ptr, i64, i64 } @finch.gen.load(ptr %t702, { ptr, i64, i64 } { ptr @.str.5819, i64 17, i64 0 }, { ptr, i64, i64 } %t703) + %t704 = call { ptr, i64, i64 } @finch.gen.load(ptr %t702, { ptr, i64, i64 } { ptr @.str.6027, i64 17, i64 0 }, { ptr, i64, i64 } %t703) %t705 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t704, 0 - %t706 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5820, i64 2, i64 0 }) + %t706 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.6028, i64 2, i64 0 }) %t707 = call %S.ast.Type @finch.ast.arrayOf(%S.ast.Type %t706) store %S.ast.Type %t706, ptr %a708 call void @finch.drop.S_ast_Type(ptr %a708) @@ -90921,16 +94920,16 @@ then8653: call void @finch_str_drop(ptr %a12) call void @finch_str_drop(ptr %a9) ret %S.gen.Val %t710 -endif8655: +endif9057: %t711 = load ptr, ptr %a1 %t712 = load %S.ast.Node, ptr %a2 %t713 = load { ptr, i64, i64 }, ptr %a9 - store { ptr, i64, i64 } { ptr @.str.5821, i64 21, i64 0 }, ptr %a715 + store { ptr, i64, i64 } { ptr @.str.6029, i64 21, i64 0 }, ptr %a715 store { ptr, i64, i64 } %t713, ptr %a716 call void @finch_str_concat(ptr %a714, ptr %a715, ptr %a716) %t717 = load { ptr, i64, i64 }, ptr %a714 store { ptr, i64, i64 } %t717, ptr %a719 - store { ptr, i64, i64 } { ptr @.str.5822, i64 106, i64 0 }, ptr %a720 + store { ptr, i64, i64 } { ptr @.str.6030, i64 106, i64 0 }, ptr %a720 call void @finch_str_concat(ptr %a718, ptr %a719, ptr %a720) store { ptr, i64, i64 } %t717, ptr %a721 call void @finch_str_drop(ptr %a721) @@ -90956,163 +94955,163 @@ entry: %t1 = mul i64 74, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t2 = call ptr @finch_alloc(i64 %t1) %t3 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 0 - store { ptr, i64, i64 } { ptr @.str.5823, i64 54, i64 0 }, ptr %t3 + store { ptr, i64, i64 } { ptr @.str.6031, i64 54, i64 0 }, ptr %t3 %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 1 - store { ptr, i64, i64 } { ptr @.str.5824, i64 65, i64 0 }, ptr %t4 + store { ptr, i64, i64 } { ptr @.str.6032, i64 65, i64 0 }, ptr %t4 %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 2 - store { ptr, i64, i64 } { ptr @.str.5825, i64 29, i64 0 }, ptr %t5 + store { ptr, i64, i64 } { ptr @.str.6033, i64 29, i64 0 }, ptr %t5 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 3 - store { ptr, i64, i64 } { ptr @.str.5826, i64 38, i64 0 }, ptr %t6 + store { ptr, i64, i64 } { ptr @.str.6034, i64 38, i64 0 }, ptr %t6 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 4 - store { ptr, i64, i64 } { ptr @.str.5827, i64 33, i64 0 }, ptr %t7 + store { ptr, i64, i64 } { ptr @.str.6035, i64 33, i64 0 }, ptr %t7 %t8 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 5 - store { ptr, i64, i64 } { ptr @.str.5828, i64 33, i64 0 }, ptr %t8 + store { ptr, i64, i64 } { ptr @.str.6036, i64 33, i64 0 }, ptr %t8 %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 6 - store { ptr, i64, i64 } { ptr @.str.5829, i64 33, i64 0 }, ptr %t9 + store { ptr, i64, i64 } { ptr @.str.6037, i64 33, i64 0 }, ptr %t9 %t10 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 7 - store { ptr, i64, i64 } { ptr @.str.5830, i64 32, i64 0 }, ptr %t10 + store { ptr, i64, i64 } { ptr @.str.6038, i64 32, i64 0 }, ptr %t10 %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 8 - store { ptr, i64, i64 } { ptr @.str.5831, i64 45, i64 0 }, ptr %t11 + store { ptr, i64, i64 } { ptr @.str.6039, i64 45, i64 0 }, ptr %t11 %t12 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 9 - store { ptr, i64, i64 } { ptr @.str.5832, i64 35, i64 0 }, ptr %t12 + store { ptr, i64, i64 } { ptr @.str.6040, i64 35, i64 0 }, ptr %t12 %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 10 - store { ptr, i64, i64 } { ptr @.str.5833, i64 36, i64 0 }, ptr %t13 + store { ptr, i64, i64 } { ptr @.str.6041, i64 36, i64 0 }, ptr %t13 %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 11 - store { ptr, i64, i64 } { ptr @.str.5834, i64 42, i64 0 }, ptr %t14 + store { ptr, i64, i64 } { ptr @.str.6042, i64 42, i64 0 }, ptr %t14 %t15 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 12 - store { ptr, i64, i64 } { ptr @.str.5835, i64 37, i64 0 }, ptr %t15 + store { ptr, i64, i64 } { ptr @.str.6043, i64 37, i64 0 }, ptr %t15 %t16 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 13 - store { ptr, i64, i64 } { ptr @.str.5836, i64 38, i64 0 }, ptr %t16 + store { ptr, i64, i64 } { ptr @.str.6044, i64 38, i64 0 }, ptr %t16 %t17 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 14 - store { ptr, i64, i64 } { ptr @.str.5837, i64 42, i64 0 }, ptr %t17 + store { ptr, i64, i64 } { ptr @.str.6045, i64 42, i64 0 }, ptr %t17 %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 15 - store { ptr, i64, i64 } { ptr @.str.5838, i64 38, i64 0 }, ptr %t18 + store { ptr, i64, i64 } { ptr @.str.6046, i64 38, i64 0 }, ptr %t18 %t19 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 16 - store { ptr, i64, i64 } { ptr @.str.5839, i64 37, i64 0 }, ptr %t19 + store { ptr, i64, i64 } { ptr @.str.6047, i64 37, i64 0 }, ptr %t19 %t20 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 17 - store { ptr, i64, i64 } { ptr @.str.5840, i64 42, i64 0 }, ptr %t20 + store { ptr, i64, i64 } { ptr @.str.6048, i64 42, i64 0 }, ptr %t20 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 18 - store { ptr, i64, i64 } { ptr @.str.5841, i64 42, i64 0 }, ptr %t21 + store { ptr, i64, i64 } { ptr @.str.6049, i64 42, i64 0 }, ptr %t21 %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 19 - store { ptr, i64, i64 } { ptr @.str.5842, i64 34, i64 0 }, ptr %t22 + store { ptr, i64, i64 } { ptr @.str.6050, i64 34, i64 0 }, ptr %t22 %t23 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 20 - store { ptr, i64, i64 } { ptr @.str.5843, i64 42, i64 0 }, ptr %t23 + store { ptr, i64, i64 } { ptr @.str.6051, i64 42, i64 0 }, ptr %t23 %t24 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 21 - store { ptr, i64, i64 } { ptr @.str.5844, i64 43, i64 0 }, ptr %t24 + store { ptr, i64, i64 } { ptr @.str.6052, i64 43, i64 0 }, ptr %t24 %t25 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 22 - store { ptr, i64, i64 } { ptr @.str.5845, i64 47, i64 0 }, ptr %t25 + store { ptr, i64, i64 } { ptr @.str.6053, i64 47, i64 0 }, ptr %t25 %t26 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 23 - store { ptr, i64, i64 } { ptr @.str.5846, i64 50, i64 0 }, ptr %t26 + store { ptr, i64, i64 } { ptr @.str.6054, i64 50, i64 0 }, ptr %t26 %t27 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 24 - store { ptr, i64, i64 } { ptr @.str.5847, i64 43, i64 0 }, ptr %t27 + store { ptr, i64, i64 } { ptr @.str.6055, i64 43, i64 0 }, ptr %t27 %t28 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 25 - store { ptr, i64, i64 } { ptr @.str.5848, i64 44, i64 0 }, ptr %t28 + store { ptr, i64, i64 } { ptr @.str.6056, i64 44, i64 0 }, ptr %t28 %t29 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 26 - store { ptr, i64, i64 } { ptr @.str.5849, i64 49, i64 0 }, ptr %t29 + store { ptr, i64, i64 } { ptr @.str.6057, i64 49, i64 0 }, ptr %t29 %t30 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 27 - store { ptr, i64, i64 } { ptr @.str.5850, i64 57, i64 0 }, ptr %t30 + store { ptr, i64, i64 } { ptr @.str.6058, i64 57, i64 0 }, ptr %t30 %t31 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 28 - store { ptr, i64, i64 } { ptr @.str.5851, i64 37, i64 0 }, ptr %t31 + store { ptr, i64, i64 } { ptr @.str.6059, i64 37, i64 0 }, ptr %t31 %t32 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 29 - store { ptr, i64, i64 } { ptr @.str.5852, i64 39, i64 0 }, ptr %t32 + store { ptr, i64, i64 } { ptr @.str.6060, i64 39, i64 0 }, ptr %t32 %t33 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 30 - store { ptr, i64, i64 } { ptr @.str.5853, i64 37, i64 0 }, ptr %t33 + store { ptr, i64, i64 } { ptr @.str.6061, i64 37, i64 0 }, ptr %t33 %t34 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 31 - store { ptr, i64, i64 } { ptr @.str.5854, i64 38, i64 0 }, ptr %t34 + store { ptr, i64, i64 } { ptr @.str.6062, i64 38, i64 0 }, ptr %t34 %t35 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 32 - store { ptr, i64, i64 } { ptr @.str.5855, i64 39, i64 0 }, ptr %t35 + store { ptr, i64, i64 } { ptr @.str.6063, i64 39, i64 0 }, ptr %t35 %t36 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 33 - store { ptr, i64, i64 } { ptr @.str.5856, i64 39, i64 0 }, ptr %t36 + store { ptr, i64, i64 } { ptr @.str.6064, i64 39, i64 0 }, ptr %t36 %t37 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 34 - store { ptr, i64, i64 } { ptr @.str.5857, i64 51, i64 0 }, ptr %t37 + store { ptr, i64, i64 } { ptr @.str.6065, i64 51, i64 0 }, ptr %t37 %t38 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 35 - store { ptr, i64, i64 } { ptr @.str.5858, i64 44, i64 0 }, ptr %t38 + store { ptr, i64, i64 } { ptr @.str.6066, i64 44, i64 0 }, ptr %t38 %t39 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 36 - store { ptr, i64, i64 } { ptr @.str.5859, i64 43, i64 0 }, ptr %t39 + store { ptr, i64, i64 } { ptr @.str.6067, i64 43, i64 0 }, ptr %t39 %t40 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 37 - store { ptr, i64, i64 } { ptr @.str.5860, i64 45, i64 0 }, ptr %t40 + store { ptr, i64, i64 } { ptr @.str.6068, i64 45, i64 0 }, ptr %t40 %t41 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 38 - store { ptr, i64, i64 } { ptr @.str.5861, i64 44, i64 0 }, ptr %t41 + store { ptr, i64, i64 } { ptr @.str.6069, i64 44, i64 0 }, ptr %t41 %t42 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 39 - store { ptr, i64, i64 } { ptr @.str.5862, i64 52, i64 0 }, ptr %t42 + store { ptr, i64, i64 } { ptr @.str.6070, i64 52, i64 0 }, ptr %t42 %t43 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 40 - store { ptr, i64, i64 } { ptr @.str.5863, i64 57, i64 0 }, ptr %t43 + store { ptr, i64, i64 } { ptr @.str.6071, i64 57, i64 0 }, ptr %t43 %t44 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 41 - store { ptr, i64, i64 } { ptr @.str.5864, i64 48, i64 0 }, ptr %t44 + store { ptr, i64, i64 } { ptr @.str.6072, i64 48, i64 0 }, ptr %t44 %t45 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 42 - store { ptr, i64, i64 } { ptr @.str.5865, i64 34, i64 0 }, ptr %t45 + store { ptr, i64, i64 } { ptr @.str.6073, i64 34, i64 0 }, ptr %t45 %t46 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 43 - store { ptr, i64, i64 } { ptr @.str.5866, i64 48, i64 0 }, ptr %t46 + store { ptr, i64, i64 } { ptr @.str.6074, i64 48, i64 0 }, ptr %t46 %t47 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 44 - store { ptr, i64, i64 } { ptr @.str.5867, i64 60, i64 0 }, ptr %t47 + store { ptr, i64, i64 } { ptr @.str.6075, i64 60, i64 0 }, ptr %t47 %t48 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 45 - store { ptr, i64, i64 } { ptr @.str.5868, i64 55, i64 0 }, ptr %t48 + store { ptr, i64, i64 } { ptr @.str.6076, i64 55, i64 0 }, ptr %t48 %t49 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 46 - store { ptr, i64, i64 } { ptr @.str.5869, i64 46, i64 0 }, ptr %t49 + store { ptr, i64, i64 } { ptr @.str.6077, i64 46, i64 0 }, ptr %t49 %t50 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 47 - store { ptr, i64, i64 } { ptr @.str.5870, i64 48, i64 0 }, ptr %t50 + store { ptr, i64, i64 } { ptr @.str.6078, i64 48, i64 0 }, ptr %t50 %t51 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 48 - store { ptr, i64, i64 } { ptr @.str.5871, i64 43, i64 0 }, ptr %t51 + store { ptr, i64, i64 } { ptr @.str.6079, i64 43, i64 0 }, ptr %t51 %t52 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 49 - store { ptr, i64, i64 } { ptr @.str.5872, i64 45, i64 0 }, ptr %t52 + store { ptr, i64, i64 } { ptr @.str.6080, i64 45, i64 0 }, ptr %t52 %t53 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 50 - store { ptr, i64, i64 } { ptr @.str.5873, i64 59, i64 0 }, ptr %t53 + store { ptr, i64, i64 } { ptr @.str.6081, i64 59, i64 0 }, ptr %t53 %t54 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 51 - store { ptr, i64, i64 } { ptr @.str.5874, i64 49, i64 0 }, ptr %t54 + store { ptr, i64, i64 } { ptr @.str.6082, i64 49, i64 0 }, ptr %t54 %t55 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 52 - store { ptr, i64, i64 } { ptr @.str.5875, i64 39, i64 0 }, ptr %t55 + store { ptr, i64, i64 } { ptr @.str.6083, i64 39, i64 0 }, ptr %t55 %t56 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 53 - store { ptr, i64, i64 } { ptr @.str.5876, i64 39, i64 0 }, ptr %t56 + store { ptr, i64, i64 } { ptr @.str.6084, i64 39, i64 0 }, ptr %t56 %t57 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 54 - store { ptr, i64, i64 } { ptr @.str.5877, i64 35, i64 0 }, ptr %t57 + store { ptr, i64, i64 } { ptr @.str.6085, i64 35, i64 0 }, ptr %t57 %t58 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 55 - store { ptr, i64, i64 } { ptr @.str.5878, i64 35, i64 0 }, ptr %t58 + store { ptr, i64, i64 } { ptr @.str.6086, i64 35, i64 0 }, ptr %t58 %t59 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 56 - store { ptr, i64, i64 } { ptr @.str.5879, i64 45, i64 0 }, ptr %t59 + store { ptr, i64, i64 } { ptr @.str.6087, i64 45, i64 0 }, ptr %t59 %t60 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 57 - store { ptr, i64, i64 } { ptr @.str.5880, i64 47, i64 0 }, ptr %t60 + store { ptr, i64, i64 } { ptr @.str.6088, i64 47, i64 0 }, ptr %t60 %t61 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 58 - store { ptr, i64, i64 } { ptr @.str.5881, i64 47, i64 0 }, ptr %t61 + store { ptr, i64, i64 } { ptr @.str.6089, i64 47, i64 0 }, ptr %t61 %t62 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 59 - store { ptr, i64, i64 } { ptr @.str.5882, i64 48, i64 0 }, ptr %t62 + store { ptr, i64, i64 } { ptr @.str.6090, i64 48, i64 0 }, ptr %t62 %t63 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 60 - store { ptr, i64, i64 } { ptr @.str.5883, i64 44, i64 0 }, ptr %t63 + store { ptr, i64, i64 } { ptr @.str.6091, i64 44, i64 0 }, ptr %t63 %t64 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 61 - store { ptr, i64, i64 } { ptr @.str.5884, i64 37, i64 0 }, ptr %t64 + store { ptr, i64, i64 } { ptr @.str.6092, i64 37, i64 0 }, ptr %t64 %t65 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 62 - store { ptr, i64, i64 } { ptr @.str.5885, i64 49, i64 0 }, ptr %t65 + store { ptr, i64, i64 } { ptr @.str.6093, i64 49, i64 0 }, ptr %t65 %t66 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 63 - store { ptr, i64, i64 } { ptr @.str.5886, i64 39, i64 0 }, ptr %t66 + store { ptr, i64, i64 } { ptr @.str.6094, i64 39, i64 0 }, ptr %t66 %t67 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 64 - store { ptr, i64, i64 } { ptr @.str.5887, i64 29, i64 0 }, ptr %t67 + store { ptr, i64, i64 } { ptr @.str.6095, i64 29, i64 0 }, ptr %t67 %t68 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 65 - store { ptr, i64, i64 } { ptr @.str.5888, i64 35, i64 0 }, ptr %t68 + store { ptr, i64, i64 } { ptr @.str.6096, i64 35, i64 0 }, ptr %t68 %t69 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 66 - store { ptr, i64, i64 } { ptr @.str.5889, i64 29, i64 0 }, ptr %t69 + store { ptr, i64, i64 } { ptr @.str.6097, i64 29, i64 0 }, ptr %t69 %t70 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 67 - store { ptr, i64, i64 } { ptr @.str.5890, i64 24, i64 0 }, ptr %t70 + store { ptr, i64, i64 } { ptr @.str.6098, i64 24, i64 0 }, ptr %t70 %t71 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 68 - store { ptr, i64, i64 } { ptr @.str.5891, i64 40, i64 0 }, ptr %t71 + store { ptr, i64, i64 } { ptr @.str.6099, i64 40, i64 0 }, ptr %t71 %t72 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 69 - store { ptr, i64, i64 } { ptr @.str.5892, i64 33, i64 0 }, ptr %t72 + store { ptr, i64, i64 } { ptr @.str.6100, i64 33, i64 0 }, ptr %t72 %t73 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 70 - store { ptr, i64, i64 } { ptr @.str.5893, i64 34, i64 0 }, ptr %t73 + store { ptr, i64, i64 } { ptr @.str.6101, i64 34, i64 0 }, ptr %t73 %t74 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 71 - store { ptr, i64, i64 } { ptr @.str.5894, i64 44, i64 0 }, ptr %t74 + store { ptr, i64, i64 } { ptr @.str.6102, i64 44, i64 0 }, ptr %t74 %t75 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 72 - store { ptr, i64, i64 } { ptr @.str.5895, i64 32, i64 0 }, ptr %t75 + store { ptr, i64, i64 } { ptr @.str.6103, i64 32, i64 0 }, ptr %t75 %t76 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 73 - store { ptr, i64, i64 } { ptr @.str.5896, i64 23, i64 0 }, ptr %t76 + store { ptr, i64, i64 } { ptr @.str.6104, i64 23, i64 0 }, ptr %t76 %t77 = insertvalue { ptr, i64, i64 } undef, ptr %t2, 0 %t78 = insertvalue { ptr, i64, i64 } %t77, i64 74, 1 %t79 = insertvalue { ptr, i64, i64 } %t78, i64 74, 2 store { ptr, i64, i64 } %t79, ptr %a80 %t81 = getelementptr inbounds { ptr, i64, i64 }, ptr %a80, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.5897, i64 1, i64 0 }, ptr %a82 + store { ptr, i64, i64 } { ptr @.str.6105, i64 1, i64 0 }, ptr %a82 call void @finch_str_join(ptr %a83, ptr %a80, ptr %a82) %t84 = load { ptr, i64, i64 }, ptr %a83 store { ptr, i64, i64 } %t84, ptr %a86 - store { ptr, i64, i64 } { ptr @.str.5898, i64 1, i64 0 }, ptr %a87 + store { ptr, i64, i64 } { ptr @.str.6106, i64 1, i64 0 }, ptr %a87 call void @finch_str_concat(ptr %a85, ptr %a86, ptr %a87) store { ptr, i64, i64 } %t84, ptr %a88 call void @finch_str_drop(ptr %a88) @@ -91178,32 +95177,32 @@ entry: %a103 = alloca { ptr, i64, i64 }, align 16 %a106 = alloca { ptr, i64, i64 }, align 16 store ptr %p0, ptr %a1 - store { ptr, i64, i64 } { ptr @.str.5899, i64 52, i64 0 }, ptr %a2 + store { ptr, i64, i64 } { ptr @.str.6107, i64 52, i64 0 }, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic8656, label %ok8657 -panic8656: - call void @finch_panic(ptr @.str.5900, i64 5541, ptr @.str.5901) + br i1 %t4, label %panic9058, label %ok9059 +panic9058: + call void @finch_panic(ptr @.str.6108, i64 5776, ptr @.str.6109) unreachable -ok8657: - %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 30 +ok9059: + %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 31 %t6 = getelementptr inbounds %S.platform.Target, ptr %t5, i32 0, i32 5 %t7 = load i1, ptr %t6 - br i1 %t7, label %then8658, label %endif8660 -then8658: + br i1 %t7, label %then9060, label %endif9062 +then9060: %t8 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t8, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.5902, i64 17, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.6110, i64 17, i64 0 }, ptr %a11 call void @finch_str_concat(ptr %a9, ptr %a10, ptr %a11) %t12 = load { ptr, i64, i64 }, ptr %a9 %t13 = load ptr, ptr %a1 %t14 = icmp eq ptr %t13, null - br i1 %t14, label %panic8661, label %ok8662 -panic8661: - call void @finch_panic(ptr @.str.5903, i64 5542, ptr @.str.5904) + br i1 %t14, label %panic9063, label %ok9064 +panic9063: + call void @finch_panic(ptr @.str.6111, i64 5777, ptr @.str.6112) unreachable -ok8662: - %t15 = getelementptr inbounds %S.gen.Gen, ptr %t13, i32 0, i32 30 +ok9064: + %t15 = getelementptr inbounds %S.gen.Gen, ptr %t13, i32 0, i32 31 %t16 = getelementptr inbounds %S.platform.Target, ptr %t15, i32 0, i32 0 %t17 = load { ptr, i64, i64 }, ptr %t16 store { ptr, i64, i64 } %t12, ptr %a19 @@ -91213,7 +95212,7 @@ ok8662: call void @finch_str_drop(ptr %a21) %t22 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t22, ptr %a24 - store { ptr, i64, i64 } { ptr @.str.5905, i64 3, i64 0 }, ptr %a25 + store { ptr, i64, i64 } { ptr @.str.6113, i64 3, i64 0 }, ptr %a25 call void @finch_str_concat(ptr %a23, ptr %a24, ptr %a25) store { ptr, i64, i64 } %t22, ptr %a26 call void @finch_str_drop(ptr %a26) @@ -91222,19 +95221,19 @@ ok8662: store { ptr, i64, i64 } %t27, ptr %a2 store { ptr, i64, i64 } %t28, ptr %a29 call void @finch_str_drop(ptr %a29) - br label %endif8660 -endif8660: + br label %endif9062 +endif9062: %t30 = load { ptr, i64, i64 }, ptr %a2 %t31 = load ptr, ptr %a1 %t32 = icmp eq ptr %t31, null - br i1 %t32, label %panic8663, label %ok8664 -panic8663: - call void @finch_panic(ptr @.str.5906, i64 5544, ptr @.str.5907) + br i1 %t32, label %panic9065, label %ok9066 +panic9065: + call void @finch_panic(ptr @.str.6114, i64 5779, ptr @.str.6115) unreachable -ok8664: +ok9066: %t33 = getelementptr inbounds %S.gen.Gen, ptr %t31, i32 0, i32 2 %t34 = getelementptr inbounds { ptr, i64, i64 }, ptr %t33, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.5908, i64 1, i64 0 }, ptr %a35 + store { ptr, i64, i64 } { ptr @.str.6116, i64 1, i64 0 }, ptr %a35 call void @finch_str_join(ptr %a36, ptr %t33, ptr %a35) %t37 = load { ptr, i64, i64 }, ptr %a36 store { ptr, i64, i64 } %t30, ptr %a39 @@ -91244,7 +95243,7 @@ ok8664: call void @finch_str_drop(ptr %a41) %t42 = load { ptr, i64, i64 }, ptr %a38 store { ptr, i64, i64 } %t42, ptr %a44 - store { ptr, i64, i64 } { ptr @.str.5909, i64 2, i64 0 }, ptr %a45 + store { ptr, i64, i64 } { ptr @.str.6117, i64 2, i64 0 }, ptr %a45 call void @finch_str_concat(ptr %a43, ptr %a44, ptr %a45) store { ptr, i64, i64 } %t42, ptr %a46 call void @finch_str_drop(ptr %a46) @@ -91259,7 +95258,7 @@ ok8664: call void @finch_str_drop(ptr %a53) %t54 = load { ptr, i64, i64 }, ptr %a49 store { ptr, i64, i64 } %t54, ptr %a56 - store { ptr, i64, i64 } { ptr @.str.5910, i64 1, i64 0 }, ptr %a57 + store { ptr, i64, i64 } { ptr @.str.6118, i64 1, i64 0 }, ptr %a57 call void @finch_str_concat(ptr %a55, ptr %a56, ptr %a57) store { ptr, i64, i64 } %t54, ptr %a58 call void @finch_str_drop(ptr %a58) @@ -91270,37 +95269,37 @@ ok8664: call void @finch_str_drop(ptr %a61) %t62 = load ptr, ptr %a1 %t63 = icmp eq ptr %t62, null - br i1 %t63, label %panic8665, label %ok8666 -panic8665: - call void @finch_panic(ptr @.str.5911, i64 5545, ptr @.str.5912) + br i1 %t63, label %panic9067, label %ok9068 +panic9067: + call void @finch_panic(ptr @.str.6119, i64 5780, ptr @.str.6120) unreachable -ok8666: - %t64 = getelementptr inbounds %S.gen.Gen, ptr %t62, i32 0, i32 29 +ok9068: + %t64 = getelementptr inbounds %S.gen.Gen, ptr %t62, i32 0, i32 30 %t65 = load i1, ptr %t64 - br i1 %t65, label %then8667, label %endif8669 -then8667: + br i1 %t65, label %then9069, label %endif9071 +then9069: %t66 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t66, ptr %a68 - store { ptr, i64, i64 } { ptr @.str.5913, i64 62, i64 0 }, ptr %a69 + store { ptr, i64, i64 } { ptr @.str.6121, i64 62, i64 0 }, ptr %a69 call void @finch_str_concat(ptr %a67, ptr %a68, ptr %a69) %t70 = load { ptr, i64, i64 }, ptr %a67 %t71 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t70, ptr %a2 store { ptr, i64, i64 } %t71, ptr %a72 call void @finch_str_drop(ptr %a72) - br label %endif8669 -endif8669: + br label %endif9071 +endif9071: %t73 = load { ptr, i64, i64 }, ptr %a2 %t74 = load ptr, ptr %a1 %t75 = icmp eq ptr %t74, null - br i1 %t75, label %panic8670, label %ok8671 -panic8670: - call void @finch_panic(ptr @.str.5914, i64 5548, ptr @.str.5915) + br i1 %t75, label %panic9072, label %ok9073 +panic9072: + call void @finch_panic(ptr @.str.6122, i64 5783, ptr @.str.6123) unreachable -ok8671: +ok9073: %t76 = getelementptr inbounds %S.gen.Gen, ptr %t74, i32 0, i32 3 %t77 = getelementptr inbounds { ptr, i64, i64 }, ptr %t76, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.5916, i64 1, i64 0 }, ptr %a78 + store { ptr, i64, i64 } { ptr @.str.6124, i64 1, i64 0 }, ptr %a78 call void @finch_str_join(ptr %a79, ptr %t76, ptr %a78) %t80 = load { ptr, i64, i64 }, ptr %a79 store { ptr, i64, i64 } %t73, ptr %a82 @@ -91315,18 +95314,18 @@ ok8671: call void @finch_str_drop(ptr %a87) %t88 = load ptr, ptr %a1 %t89 = icmp eq ptr %t88, null - br i1 %t89, label %panic8672, label %ok8673 -panic8672: - call void @finch_panic(ptr @.str.5917, i64 5549, ptr @.str.5918) + br i1 %t89, label %panic9074, label %ok9075 +panic9074: + call void @finch_panic(ptr @.str.6125, i64 5784, ptr @.str.6126) unreachable -ok8673: - %t90 = getelementptr inbounds %S.gen.Gen, ptr %t88, i32 0, i32 29 +ok9075: + %t90 = getelementptr inbounds %S.gen.Gen, ptr %t88, i32 0, i32 30 %t91 = load i1, ptr %t90 - br i1 %t91, label %then8674, label %endif8676 -then8674: + br i1 %t91, label %then9076, label %endif9078 +then9076: %t92 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t92, ptr %a94 - store { ptr, i64, i64 } { ptr @.str.5919, i64 1, i64 0 }, ptr %a95 + store { ptr, i64, i64 } { ptr @.str.6127, i64 1, i64 0 }, ptr %a95 call void @finch_str_concat(ptr %a93, ptr %a94, ptr %a95) %t96 = load { ptr, i64, i64 }, ptr %a93 %t97 = load ptr, ptr %a1 @@ -91343,8 +95342,8 @@ then8674: store { ptr, i64, i64 } %t104, ptr %a2 store { ptr, i64, i64 } %t105, ptr %a106 call void @finch_str_drop(ptr %a106) - br label %endif8676 -endif8676: + br label %endif9078 +endif9078: %t107 = load { ptr, i64, i64 }, ptr %a2 ret { ptr, i64, i64 } %t107 } @@ -91358,20 +95357,20 @@ entry: %t3 = getelementptr inbounds { ptr, i64, i64 }, ptr %src, i32 0, i32 1 %t4 = load i64, ptr %t3 store i64 0, ptr %a5 - br label %n.cond8677 -n.cond8677: + br label %n.cond9079 +n.cond9079: %t6 = load i64, ptr %a5 %t7 = icmp slt i64 %t6, %t4 - br i1 %t7, label %n.body8678, label %n.end8679 -n.body8678: + br i1 %t7, label %n.body9080, label %n.end9081 +n.body9080: %t8 = getelementptr inbounds %S.ast.Program, ptr %t1, i64 %t6 %t9 = getelementptr inbounds %S.ast.Program, ptr %t2, i64 %t6 call void @finch.copy.S_ast_Program(ptr %t8, ptr %t9) %t10 = load i64, ptr %a5 %t11 = add i64 %t10, 1 store i64 %t11, ptr %a5 - br label %n.cond8677 -n.end8679: + br label %n.cond9079 +n.end9081: ret void } @@ -91405,12 +95404,12 @@ entry: %t1 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %src, i32 0, i32 2 %t2 = load i64, ptr %t1 store i64 0, ptr %a3 - br label %n.cond8680 -n.cond8680: + br label %n.cond9082 +n.cond9082: %t4 = load i64, ptr %a3 %t5 = icmp slt i64 %t4, %t2 - br i1 %t5, label %n.body8681, label %n.end8682 -n.body8681: + br i1 %t5, label %n.body9083, label %n.end9084 +n.body9083: %t6 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %src, i32 0, i32 0 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t7, i64 %t4 @@ -91420,21 +95419,21 @@ n.body8681: %t12 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t8, i32 0, i32 0 %t13 = load i64, ptr %t12 %t14 = icmp ne i64 %t13, 0 - br i1 %t14, label %entry.live8683, label %entry.next8684 -entry.live8683: + br i1 %t14, label %entry.live9085, label %entry.next9086 +entry.live9085: %t15 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t11, i32 0, i32 1 %t16 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t8, i32 0, i32 1 call void @finch_str_copy(ptr %t15, ptr %t16) %t17 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t11, i32 0, i32 2 %t18 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t8, i32 0, i32 2 call void @finch.copy.S_cimport_CFunc(ptr %t17, ptr %t18) - br label %entry.next8684 -entry.next8684: + br label %entry.next9086 +entry.next9086: %t19 = load i64, ptr %a3 %t20 = add i64 %t19, 1 store i64 %t20, ptr %a3 - br label %n.cond8680 -n.end8682: + br label %n.cond9082 +n.end9084: ret void } @@ -91445,12 +95444,12 @@ entry: %t1 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %src, i32 0, i32 2 %t2 = load i64, ptr %t1 store i64 0, ptr %a3 - br label %n.cond8685 -n.cond8685: + br label %n.cond9087 +n.cond9087: %t4 = load i64, ptr %a3 %t5 = icmp slt i64 %t4, %t2 - br i1 %t5, label %n.body8686, label %n.end8687 -n.body8686: + br i1 %t5, label %n.body9088, label %n.end9089 +n.body9088: %t6 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %src, i32 0, i32 0 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t7, i64 %t4 @@ -91460,21 +95459,21 @@ n.body8686: %t12 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t8, i32 0, i32 0 %t13 = load i64, ptr %t12 %t14 = icmp ne i64 %t13, 0 - br i1 %t14, label %entry.live8688, label %entry.next8689 -entry.live8688: + br i1 %t14, label %entry.live9090, label %entry.next9091 +entry.live9090: %t15 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t11, i32 0, i32 1 %t16 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t8, i32 0, i32 1 call void @finch_str_copy(ptr %t15, ptr %t16) %t17 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t11, i32 0, i32 2 %t18 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t8, i32 0, i32 2 call void @finch.copy.S_cimport_CConst(ptr %t17, ptr %t18) - br label %entry.next8689 -entry.next8689: + br label %entry.next9091 +entry.next9091: %t19 = load i64, ptr %a3 %t20 = add i64 %t19, 1 store i64 %t20, ptr %a3 - br label %n.cond8685 -n.end8687: + br label %n.cond9087 +n.end9089: ret void } @@ -91485,12 +95484,12 @@ entry: %t1 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %src, i32 0, i32 2 %t2 = load i64, ptr %t1 store i64 0, ptr %a3 - br label %n.cond8690 -n.cond8690: + br label %n.cond9092 +n.cond9092: %t4 = load i64, ptr %a3 %t5 = icmp slt i64 %t4, %t2 - br i1 %t5, label %n.body8691, label %n.end8692 -n.body8691: + br i1 %t5, label %n.body9093, label %n.end9094 +n.body9093: %t6 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %src, i32 0, i32 0 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.ast.Type }, ptr %t7, i64 %t4 @@ -91500,21 +95499,21 @@ n.body8691: %t12 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.ast.Type }, ptr %t8, i32 0, i32 0 %t13 = load i64, ptr %t12 %t14 = icmp ne i64 %t13, 0 - br i1 %t14, label %entry.live8693, label %entry.next8694 -entry.live8693: + br i1 %t14, label %entry.live9095, label %entry.next9096 +entry.live9095: %t15 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.ast.Type }, ptr %t11, i32 0, i32 1 %t16 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.ast.Type }, ptr %t8, i32 0, i32 1 call void @finch_str_copy(ptr %t15, ptr %t16) %t17 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.ast.Type }, ptr %t11, i32 0, i32 2 %t18 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.ast.Type }, ptr %t8, i32 0, i32 2 call void @finch.copy.S_ast_Type(ptr %t17, ptr %t18) - br label %entry.next8694 -entry.next8694: + br label %entry.next9096 +entry.next9096: %t19 = load i64, ptr %a3 %t20 = add i64 %t19, 1 store i64 %t20, ptr %a3 - br label %n.cond8690 -n.end8692: + br label %n.cond9092 +n.end9094: ret void } @@ -91525,12 +95524,12 @@ entry: %t1 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %src, i32 0, i32 2 %t2 = load i64, ptr %t1 store i64 0, ptr %a3 - br label %n.cond8695 -n.cond8695: + br label %n.cond9097 +n.cond9097: %t4 = load i64, ptr %a3 %t5 = icmp slt i64 %t4, %t2 - br i1 %t5, label %n.body8696, label %n.end8697 -n.body8696: + br i1 %t5, label %n.body9098, label %n.end9099 +n.body9098: %t6 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %src, i32 0, i32 0 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr %t7, i64 %t4 @@ -91540,21 +95539,21 @@ n.body8696: %t12 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr %t8, i32 0, i32 0 %t13 = load i64, ptr %t12 %t14 = icmp ne i64 %t13, 0 - br i1 %t14, label %entry.live8698, label %entry.next8699 -entry.live8698: + br i1 %t14, label %entry.live9100, label %entry.next9101 +entry.live9100: %t15 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr %t11, i32 0, i32 1 %t16 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr %t8, i32 0, i32 1 call void @finch_str_copy(ptr %t15, ptr %t16) %t17 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr %t11, i32 0, i32 2 %t18 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr %t8, i32 0, i32 2 call void @finch.copy.S_cimport_CStruct(ptr %t17, ptr %t18) - br label %entry.next8699 -entry.next8699: + br label %entry.next9101 +entry.next9101: %t19 = load i64, ptr %a3 %t20 = add i64 %t19, 1 store i64 %t20, ptr %a3 - br label %n.cond8695 -n.end8697: + br label %n.cond9097 +n.end9099: ret void } @@ -91588,19 +95587,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond8768 -n.cond8768: + br label %n.cond9170 +n.cond9170: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body8769, label %n.end8770 -n.body8769: + br i1 %t6, label %n.body9171, label %n.end9172 +n.body9171: %t7 = getelementptr inbounds %S.gen.Pending, ptr %t1, i64 %t5 call void @finch.drop.S_gen_Pending(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond8768 -n.end8770: + br label %n.cond9170 +n.end9172: call void @finch_arr_free(ptr %a) ret void } @@ -91612,19 +95611,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond8771 -n.cond8771: + br label %n.cond9173 +n.cond9173: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body8772, label %n.end8773 -n.body8772: + br i1 %t6, label %n.body9174, label %n.end9175 +n.body9174: %t7 = getelementptr inbounds %S.gen.Loop, ptr %t1, i64 %t5 call void @finch.drop.S_gen_Loop(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond8771 -n.end8773: + br label %n.cond9173 +n.end9175: call void @finch_arr_free(ptr %a) ret void } @@ -91636,19 +95635,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond8774 -n.cond8774: + br label %n.cond9176 +n.cond9176: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body8775, label %n.end8776 -n.body8775: + br i1 %t6, label %n.body9177, label %n.end9178 +n.body9177: %t7 = getelementptr inbounds %S.gen.FnSig, ptr %t1, i64 %t5 call void @finch.drop.S_gen_FnSig(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond8774 -n.end8776: + br label %n.cond9176 +n.end9178: call void @finch_arr_free(ptr %a) ret void } @@ -91660,19 +95659,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond8777 -n.cond8777: + br label %n.cond9179 +n.cond9179: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body8778, label %n.end8779 -n.body8778: + br i1 %t6, label %n.body9180, label %n.end9181 +n.body9180: %t7 = getelementptr inbounds %S.gen.StructDef, ptr %t1, i64 %t5 call void @finch.drop.S_gen_StructDef(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond8777 -n.end8779: + br label %n.cond9179 +n.end9181: call void @finch_arr_free(ptr %a) ret void } @@ -91684,19 +95683,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond8780 -n.cond8780: + br label %n.cond9182 +n.cond9182: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body8781, label %n.end8782 -n.body8781: + br i1 %t6, label %n.body9183, label %n.end9184 +n.body9183: %t7 = getelementptr inbounds %S.gen.Template, ptr %t1, i64 %t5 call void @finch.drop.S_gen_Template(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond8780 -n.end8782: + br label %n.cond9182 +n.end9184: call void @finch_arr_free(ptr %a) ret void } @@ -91708,19 +95707,43 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond8783 -n.cond8783: + br label %n.cond9185 +n.cond9185: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body8784, label %n.end8785 -n.body8784: + br i1 %t6, label %n.body9186, label %n.end9187 +n.body9186: %t7 = getelementptr inbounds %S.gen.EnumDef, ptr %t1, i64 %t5 call void @finch.drop.S_gen_EnumDef(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond8783 -n.end8785: + br label %n.cond9185 +n.end9187: + call void @finch_arr_free(ptr %a) + ret void +} + +define internal void @finch.drop.arr_S_gen_SumDef(ptr %a) { +entry: + %a4 = alloca i64, align 16 + %t1 = load ptr, ptr %a + %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 + %t3 = load i64, ptr %t2 + store i64 0, ptr %a4 + br label %n.cond9188 +n.cond9188: + %t5 = load i64, ptr %a4 + %t6 = icmp slt i64 %t5, %t3 + br i1 %t6, label %n.body9189, label %n.end9190 +n.body9189: + %t7 = getelementptr inbounds %S.gen.SumDef, ptr %t1, i64 %t5 + call void @finch.drop.S_gen_SumDef(ptr %t7) + %t8 = load i64, ptr %a4 + %t9 = add i64 %t8, 1 + store i64 %t9, ptr %a4 + br label %n.cond9188 +n.end9190: call void @finch_arr_free(ptr %a) ret void } @@ -91731,30 +95754,30 @@ entry: %t1 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %a, i32 0, i32 2 %t2 = load i64, ptr %t1 store i64 0, ptr %a3 - br label %n.cond8786 -n.cond8786: + br label %n.cond9191 +n.cond9191: %t4 = load i64, ptr %a3 %t5 = icmp slt i64 %t4, %t2 - br i1 %t5, label %n.body8787, label %n.end8788 -n.body8787: + br i1 %t5, label %n.body9192, label %n.end9193 +n.body9192: %t6 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %a, i32 0, i32 0 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t7, i64 %t4 %t9 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t8, i32 0, i32 0 %t10 = load i64, ptr %t9 %t11 = icmp ne i64 %t10, 0 - br i1 %t11, label %entry.live8789, label %entry.next8790 -entry.live8789: + br i1 %t11, label %entry.live9194, label %entry.next9195 +entry.live9194: %t12 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t8, i32 0, i32 1 call void @finch_str_drop(ptr %t12) %t13 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t8, i32 0, i32 2 - br label %entry.next8790 -entry.next8790: + br label %entry.next9195 +entry.next9195: %t14 = load i64, ptr %a3 %t15 = add i64 %t14, 1 store i64 %t15, ptr %a3 - br label %n.cond8786 -n.end8788: + br label %n.cond9191 +n.end9193: call void @finch_map_free(ptr %a) ret void } @@ -91799,31 +95822,33 @@ entry: %t18 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 21 call void @finch.drop.arr_S_gen_EnumDef(ptr %t18) %t19 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 22 - call void @finch.drop.arr_str(ptr %t19) + call void @finch.drop.arr_S_gen_SumDef(ptr %t19) %t20 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 23 call void @finch.drop.arr_str(ptr %t20) - %t21 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 25 - call void @finch.drop.S_cimport_CImports(ptr %t21) - %t22 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 28 - call void @finch.drop.arr_str(ptr %t22) - %t23 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 30 - call void @finch.drop.S_platform_Target(ptr %t23) + %t21 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 24 + call void @finch.drop.arr_str(ptr %t21) + %t22 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 26 + call void @finch.drop.S_cimport_CImports(ptr %t22) + %t23 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 29 + call void @finch.drop.arr_str(ptr %t23) %t24 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 31 - call void @finch_str_drop(ptr %t24) + call void @finch.drop.S_platform_Target(ptr %t24) %t25 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 32 - call void @finch.drop.arr_str(ptr %t25) + call void @finch_str_drop(ptr %t25) %t26 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 33 - call void @finch.drop.map_str_int(ptr %t26) + call void @finch.drop.arr_str(ptr %t26) %t27 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 34 - call void @finch.drop.arr_int(ptr %t27) - %t28 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 39 - call void @finch.drop.arr_str(ptr %t28) + call void @finch.drop.map_str_int(ptr %t27) + %t28 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 35 + call void @finch.drop.arr_int(ptr %t28) %t29 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 40 - call void @finch_str_drop(ptr %t29) + call void @finch.drop.arr_str(ptr %t29) %t30 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 41 call void @finch_str_drop(ptr %t30) %t31 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 42 call void @finch_str_drop(ptr %t31) + %t32 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 43 + call void @finch_str_drop(ptr %t32) ret void } @@ -92035,132 +96060,132 @@ entry: store %S.cimport.CImports %t18, ptr %a19 call void @finch.copy.S_cimport_CImports(ptr %a20, ptr %a19) %t21 = load %S.cimport.CImports, ptr %a20 - %t22 = insertvalue %S.gen.Gen %t17, %S.cimport.CImports %t21, 25 + %t22 = insertvalue %S.gen.Gen %t17, %S.cimport.CImports %t21, 26 %t23 = getelementptr inbounds %S.gen.Options, ptr %a4, i32 0, i32 0 %t24 = load i1, ptr %t23 - %t25 = insertvalue %S.gen.Gen %t22, i1 %t24, 26 + %t25 = insertvalue %S.gen.Gen %t22, i1 %t24, 27 %t26 = getelementptr inbounds %S.gen.Options, ptr %a4, i32 0, i32 1 %t27 = load i1, ptr %t26 - %t28 = insertvalue %S.gen.Gen %t25, i1 %t27, 27 + %t28 = insertvalue %S.gen.Gen %t25, i1 %t27, 28 %t29 = getelementptr inbounds %S.gen.Options, ptr %a4, i32 0, i32 2 %t30 = load i1, ptr %t29 - %t31 = insertvalue %S.gen.Gen %t28, i1 %t30, 29 + %t31 = insertvalue %S.gen.Gen %t28, i1 %t30, 30 %t32 = getelementptr inbounds %S.gen.Options, ptr %a4, i32 0, i32 4 %t33 = load %S.platform.Target, ptr %t32 store %S.platform.Target %t33, ptr %a34 call void @finch.copy.S_platform_Target(ptr %a35, ptr %a34) %t36 = load %S.platform.Target, ptr %a35 - %t37 = insertvalue %S.gen.Gen %t31, %S.platform.Target %t36, 30 + %t37 = insertvalue %S.gen.Gen %t31, %S.platform.Target %t36, 31 %t38 = getelementptr inbounds %S.gen.Options, ptr %a4, i32 0, i32 3 %t39 = load { ptr, i64, i64 }, ptr %t38 store { ptr, i64, i64 } %t39, ptr %a40 call void @finch_str_copy(ptr %a41, ptr %a40) %t42 = load { ptr, i64, i64 }, ptr %a41 - %t43 = insertvalue %S.gen.Gen %t37, { ptr, i64, i64 } %t42, 31 - %t44 = insertvalue %S.gen.Gen %t43, i64 -1, 35 + %t43 = insertvalue %S.gen.Gen %t37, { ptr, i64, i64 } %t42, 32 + %t44 = insertvalue %S.gen.Gen %t43, i64 -1, 36 store %S.gen.Gen %t44, ptr %a45 store ptr %a45, ptr %a46 %t47 = load ptr, ptr %a46 %t48 = icmp eq ptr %t47, null - br i1 %t48, label %panic8700, label %ok8701 -panic8700: - call void @finch_panic(ptr @.str.5920, i64 5559, ptr @.str.5921) + br i1 %t48, label %panic9102, label %ok9103 +panic9102: + call void @finch_panic(ptr @.str.6128, i64 5794, ptr @.str.6129) unreachable -ok8701: - %t49 = getelementptr inbounds %S.gen.Gen, ptr %t47, i32 0, i32 29 +ok9103: + %t49 = getelementptr inbounds %S.gen.Gen, ptr %t47, i32 0, i32 30 %t50 = load i1, ptr %t49 - br i1 %t50, label %then8702, label %endif8704 -then8702: + br i1 %t50, label %then9104, label %endif9106 +then9104: %t51 = load ptr, ptr %a46 %t52 = icmp eq ptr %t51, null - br i1 %t52, label %panic8705, label %ok8706 -panic8705: - call void @finch_panic(ptr @.str.5922, i64 5561, ptr @.str.5923) + br i1 %t52, label %panic9107, label %ok9108 +panic9107: + call void @finch_panic(ptr @.str.6130, i64 5796, ptr @.str.6131) unreachable -ok8706: - %t53 = getelementptr inbounds %S.gen.Gen, ptr %t51, i32 0, i32 32 +ok9108: + %t53 = getelementptr inbounds %S.gen.Gen, ptr %t51, i32 0, i32 33 %t54 = getelementptr inbounds { ptr, i64, i64 }, ptr %t53, i32 0, i32 1 %t55 = load i64, ptr %t54 %t56 = add i64 %t55, 1 call void @finch_arr_reserve(ptr %t53, i64 %t56, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t57 = load ptr, ptr %t53 %t58 = getelementptr inbounds { ptr, i64, i64 }, ptr %t57, i64 %t55 - store { ptr, i64, i64 } { ptr @.str.5924, i64 0, i64 0 }, ptr %t58 + store { ptr, i64, i64 } { ptr @.str.6132, i64 0, i64 0 }, ptr %t58 store i64 %t56, ptr %t54 %t59 = load ptr, ptr %a46 %t60 = icmp eq ptr %t59, null - br i1 %t60, label %panic8707, label %ok8708 -panic8707: - call void @finch_panic(ptr @.str.5925, i64 5562, ptr @.str.5926) + br i1 %t60, label %panic9109, label %ok9110 +panic9109: + call void @finch_panic(ptr @.str.6133, i64 5797, ptr @.str.6134) unreachable -ok8708: - %t61 = getelementptr inbounds %S.gen.Gen, ptr %t59, i32 0, i32 32 +ok9110: + %t61 = getelementptr inbounds %S.gen.Gen, ptr %t59, i32 0, i32 33 %t62 = getelementptr inbounds { ptr, i64, i64 }, ptr %t61, i32 0, i32 1 %t63 = load i64, ptr %t62 %t64 = add i64 %t63, 1 call void @finch_arr_reserve(ptr %t61, i64 %t64, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t65 = load ptr, ptr %t61 %t66 = getelementptr inbounds { ptr, i64, i64 }, ptr %t65, i64 %t63 - store { ptr, i64, i64 } { ptr @.str.5927, i64 33, i64 0 }, ptr %t66 + store { ptr, i64, i64 } { ptr @.str.6135, i64 33, i64 0 }, ptr %t66 store i64 %t64, ptr %t62 %t67 = load ptr, ptr %a46 %t68 = icmp eq ptr %t67, null - br i1 %t68, label %panic8709, label %ok8710 -panic8709: - call void @finch_panic(ptr @.str.5928, i64 5563, ptr @.str.5929) + br i1 %t68, label %panic9111, label %ok9112 +panic9111: + call void @finch_panic(ptr @.str.6136, i64 5798, ptr @.str.6137) unreachable -ok8710: - %t69 = getelementptr inbounds %S.gen.Gen, ptr %t67, i32 0, i32 32 +ok9112: + %t69 = getelementptr inbounds %S.gen.Gen, ptr %t67, i32 0, i32 33 %t70 = getelementptr inbounds { ptr, i64, i64 }, ptr %t69, i32 0, i32 1 %t71 = load i64, ptr %t70 %t72 = add i64 %t71, 1 call void @finch_arr_reserve(ptr %t69, i64 %t72, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t73 = load ptr, ptr %t69 %t74 = getelementptr inbounds { ptr, i64, i64 }, ptr %t73, i64 %t71 - store { ptr, i64, i64 } { ptr @.str.5930, i64 38, i64 0 }, ptr %t74 + store { ptr, i64, i64 } { ptr @.str.6138, i64 38, i64 0 }, ptr %t74 store i64 %t72, ptr %t70 store i64 0, ptr %a75 - br label %each.cond8711 -each.cond8711: + br label %each.cond9113 +each.cond9113: %t76 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t77 = load i64, ptr %t76 %t78 = load i64, ptr %a75 %t79 = icmp slt i64 %t78, %t77 - br i1 %t79, label %each.body8712, label %each.end8714 -each.body8712: + br i1 %t79, label %each.body9114, label %each.end9116 +each.body9114: %t80 = load ptr, ptr %a2 %t81 = getelementptr inbounds { ptr, i64, i64 }, ptr %t80, i64 %t78 %t82 = load { ptr, i64, i64 }, ptr %t81 store { ptr, i64, i64 } %t82, ptr %a83 %t84 = load ptr, ptr %a46 %t85 = icmp eq ptr %t84, null - br i1 %t85, label %panic8715, label %ok8716 -panic8715: - call void @finch_panic(ptr @.str.5931, i64 5565, ptr @.str.5932) + br i1 %t85, label %panic9117, label %ok9118 +panic9117: + call void @finch_panic(ptr @.str.6139, i64 5800, ptr @.str.6140) unreachable -ok8716: - %t86 = getelementptr inbounds %S.gen.Gen, ptr %t84, i32 0, i32 34 +ok9118: + %t86 = getelementptr inbounds %S.gen.Gen, ptr %t84, i32 0, i32 35 %t87 = getelementptr inbounds { ptr, i64, i64 }, ptr %t86, i32 0, i32 1 %t88 = load ptr, ptr %a46 %t89 = load { ptr, i64, i64 }, ptr %a83 - store { ptr, i64, i64 } { ptr @.str.5933, i64 19, i64 0 }, ptr %a91 + store { ptr, i64, i64 } { ptr @.str.6141, i64 19, i64 0 }, ptr %a91 store { ptr, i64, i64 } %t89, ptr %a92 call void @finch_str_concat(ptr %a90, ptr %a91, ptr %a92) %t93 = load { ptr, i64, i64 }, ptr %a90 store { ptr, i64, i64 } %t93, ptr %a95 - store { ptr, i64, i64 } { ptr @.str.5934, i64 15, i64 0 }, ptr %a96 + store { ptr, i64, i64 } { ptr @.str.6142, i64 15, i64 0 }, ptr %a96 call void @finch_str_concat(ptr %a94, ptr %a95, ptr %a96) store { ptr, i64, i64 } %t93, ptr %a97 call void @finch_str_drop(ptr %a97) %t98 = load { ptr, i64, i64 }, ptr %a94 %t99 = load ptr, ptr %a46 %t100 = icmp eq ptr %t99, null - br i1 %t100, label %panic8717, label %ok8718 -panic8717: - call void @finch_panic(ptr @.str.5935, i64 5565, ptr @.str.5936) + br i1 %t100, label %panic9119, label %ok9120 +panic9119: + call void @finch_panic(ptr @.str.6143, i64 5800, ptr @.str.6144) unreachable -ok8718: - %t101 = getelementptr inbounds %S.gen.Gen, ptr %t99, i32 0, i32 31 +ok9120: + %t101 = getelementptr inbounds %S.gen.Gen, ptr %t99, i32 0, i32 32 %t102 = load { ptr, i64, i64 }, ptr %t101 store { ptr, i64, i64 } %t98, ptr %a104 store { ptr, i64, i64 } %t102, ptr %a105 @@ -92169,7 +96194,7 @@ ok8718: call void @finch_str_drop(ptr %a106) %t107 = load { ptr, i64, i64 }, ptr %a103 store { ptr, i64, i64 } %t107, ptr %a109 - store { ptr, i64, i64 } { ptr @.str.5937, i64 2, i64 0 }, ptr %a110 + store { ptr, i64, i64 } { ptr @.str.6145, i64 2, i64 0 }, ptr %a110 call void @finch_str_concat(ptr %a108, ptr %a109, ptr %a110) store { ptr, i64, i64 } %t107, ptr %a111 call void @finch_str_drop(ptr %a111) @@ -92184,108 +96209,108 @@ ok8718: %t118 = getelementptr inbounds i64, ptr %t117, i64 %t115 store i64 %t113, ptr %t118 store i64 %t116, ptr %t87 - br label %each.step8713 -each.step8713: + br label %each.step9115 +each.step9115: %t119 = load i64, ptr %a75 %t120 = add i64 %t119, 1 store i64 %t120, ptr %a75 - br label %each.cond8711 -each.end8714: + br label %each.cond9113 +each.end9116: %t121 = load ptr, ptr %a46 %t122 = icmp eq ptr %t121, null - br i1 %t122, label %panic8719, label %ok8720 -panic8719: - call void @finch_panic(ptr @.str.5939, i64 5567, ptr @.str.5940) + br i1 %t122, label %panic9121, label %ok9122 +panic9121: + call void @finch_panic(ptr @.str.6147, i64 5802, ptr @.str.6148) unreachable -ok8720: - %t123 = getelementptr inbounds %S.gen.Gen, ptr %t121, i32 0, i32 34 +ok9122: + %t123 = getelementptr inbounds %S.gen.Gen, ptr %t121, i32 0, i32 35 %t124 = load { ptr, i64, i64 }, ptr %t123 %t125 = extractvalue { ptr, i64, i64 } %t124, 1 %t126 = icmp uge i64 0, %t125 - br i1 %t126, label %range8721, label %inrange8722 -range8721: - call void @finch_panic_index(ptr @.str.5941, i64 5567, i64 0, i64 %t125) + br i1 %t126, label %range9123, label %inrange9124 +range9123: + call void @finch_panic_index(ptr @.str.6149, i64 5802, i64 0, i64 %t125) unreachable -inrange8722: +inrange9124: %t127 = extractvalue { ptr, i64, i64 } %t124, 0 %t128 = getelementptr inbounds i64, ptr %t127, i64 0 %t129 = load i64, ptr %t128 call void @finch_str_from_int(ptr %a130, i64 %t129) %t131 = load { ptr, i64, i64 }, ptr %a130 - store { ptr, i64, i64 } { ptr @.str.5938, i64 52, i64 0 }, ptr %a133 + store { ptr, i64, i64 } { ptr @.str.6146, i64 52, i64 0 }, ptr %a133 store { ptr, i64, i64 } %t131, ptr %a134 call void @finch_str_concat(ptr %a132, ptr %a133, ptr %a134) store { ptr, i64, i64 } %t131, ptr %a135 call void @finch_str_drop(ptr %a135) %t136 = load { ptr, i64, i64 }, ptr %a132 store { ptr, i64, i64 } %t136, ptr %a138 - store { ptr, i64, i64 } { ptr @.str.5942, i64 84, i64 0 }, ptr %a139 + store { ptr, i64, i64 } { ptr @.str.6150, i64 84, i64 0 }, ptr %a139 call void @finch_str_concat(ptr %a137, ptr %a138, ptr %a139) store { ptr, i64, i64 } %t136, ptr %a140 call void @finch_str_drop(ptr %a140) %t141 = load { ptr, i64, i64 }, ptr %a137 %t142 = load ptr, ptr %a46 %t143 = icmp eq ptr %t142, null - br i1 %t143, label %panic8723, label %ok8724 -panic8723: - call void @finch_panic(ptr @.str.5943, i64 5567, ptr @.str.5944) + br i1 %t143, label %panic9125, label %ok9126 +panic9125: + call void @finch_panic(ptr @.str.6151, i64 5802, ptr @.str.6152) unreachable -ok8724: - %t144 = getelementptr inbounds %S.gen.Gen, ptr %t142, i32 0, i32 32 +ok9126: + %t144 = getelementptr inbounds %S.gen.Gen, ptr %t142, i32 0, i32 33 %t145 = load { ptr, i64, i64 }, ptr %t144 %t146 = extractvalue { ptr, i64, i64 } %t145, 1 %t147 = icmp uge i64 0, %t146 - br i1 %t147, label %range8725, label %inrange8726 -range8725: - call void @finch_panic_index(ptr @.str.5945, i64 5567, i64 0, i64 %t146) + br i1 %t147, label %range9127, label %inrange9128 +range9127: + call void @finch_panic_index(ptr @.str.6153, i64 5802, i64 0, i64 %t146) unreachable -inrange8726: +inrange9128: %t148 = extractvalue { ptr, i64, i64 } %t145, 0 %t149 = getelementptr inbounds { ptr, i64, i64 }, ptr %t148, i64 0 %t150 = load { ptr, i64, i64 }, ptr %t149 store { ptr, i64, i64 } %t141, ptr %t149 store { ptr, i64, i64 } %t150, ptr %a151 call void @finch_str_drop(ptr %a151) - br label %endif8704 -endif8704: + br label %endif9106 +endif9106: %t152 = load ptr, ptr %a46 call void @finch.gen.declare(ptr %t152) %t153 = load ptr, ptr %a46 - %t154 = call i64 @finch.gen.findFn(ptr %t153, { ptr, i64, i64 } { ptr @.str.5946, i64 0, i64 0 }, { ptr, i64, i64 } { ptr @.str.5947, i64 4, i64 0 }) + %t154 = call i64 @finch.gen.findFn(ptr %t153, { ptr, i64, i64 } { ptr @.str.6154, i64 0, i64 0 }, { ptr, i64, i64 } { ptr @.str.6155, i64 4, i64 0 }) store i64 %t154, ptr %a155 %t156 = load i1, ptr %a7 - br i1 %t156, label %then8727, label %else8728 -then8727: + br i1 %t156, label %then9129, label %else9130 +then9129: %t157 = load i64, ptr %a155 %t158 = icmp sge i64 %t157, 0 - br i1 %t158, label %then8730, label %endif8732 -then8730: + br i1 %t158, label %then9132, label %endif9134 +then9132: %t159 = load ptr, ptr %a46 %t160 = load ptr, ptr %a46 %t161 = icmp eq ptr %t160, null - br i1 %t161, label %panic8733, label %ok8734 -panic8733: - call void @finch_panic(ptr @.str.5948, i64 5573, ptr @.str.5949) + br i1 %t161, label %panic9135, label %ok9136 +panic9135: + call void @finch_panic(ptr @.str.6156, i64 5808, ptr @.str.6157) unreachable -ok8734: +ok9136: %t162 = getelementptr inbounds %S.gen.Gen, ptr %t160, i32 0, i32 0 %t163 = load ptr, ptr %a46 %t164 = icmp eq ptr %t163, null - br i1 %t164, label %panic8735, label %ok8736 -panic8735: - call void @finch_panic(ptr @.str.5950, i64 5573, ptr @.str.5951) + br i1 %t164, label %panic9137, label %ok9138 +panic9137: + call void @finch_panic(ptr @.str.6158, i64 5808, ptr @.str.6159) unreachable -ok8736: +ok9138: %t165 = getelementptr inbounds %S.gen.Gen, ptr %t163, i32 0, i32 15 %t166 = load i64, ptr %a155 %t167 = load { ptr, i64, i64 }, ptr %t165 %t168 = extractvalue { ptr, i64, i64 } %t167, 1 %t169 = icmp uge i64 %t166, %t168 - br i1 %t169, label %range8737, label %inrange8738 -range8737: - call void @finch_panic_index(ptr @.str.5952, i64 5573, i64 %t166, i64 %t168) + br i1 %t169, label %range9139, label %inrange9140 +range9139: + call void @finch_panic_index(ptr @.str.6160, i64 5808, i64 %t166, i64 %t168) unreachable -inrange8738: +inrange9140: %t170 = extractvalue { ptr, i64, i64 } %t167, 0 %t171 = getelementptr inbounds %S.gen.FnSig, ptr %t170, i64 %t166 %t172 = getelementptr inbounds %S.gen.FnSig, ptr %t171, i32 0, i32 16 @@ -92293,31 +96318,31 @@ inrange8738: %t174 = load { ptr, i64, i64 }, ptr %t162 %t175 = extractvalue { ptr, i64, i64 } %t174, 1 %t176 = icmp uge i64 %t173, %t175 - br i1 %t176, label %range8739, label %inrange8740 -range8739: - call void @finch_panic_index(ptr @.str.5953, i64 5573, i64 %t173, i64 %t175) + br i1 %t176, label %range9141, label %inrange9142 +range9141: + call void @finch_panic_index(ptr @.str.6161, i64 5808, i64 %t173, i64 %t175) unreachable -inrange8740: +inrange9142: %t177 = extractvalue { ptr, i64, i64 } %t174, 0 %t178 = getelementptr inbounds %S.ast.Program, ptr %t177, i64 %t173 %t179 = getelementptr inbounds %S.ast.Program, ptr %t178, i32 0, i32 8 %t180 = load ptr, ptr %a46 %t181 = icmp eq ptr %t180, null - br i1 %t181, label %panic8741, label %ok8742 -panic8741: - call void @finch_panic(ptr @.str.5954, i64 5573, ptr @.str.5955) + br i1 %t181, label %panic9143, label %ok9144 +panic9143: + call void @finch_panic(ptr @.str.6162, i64 5808, ptr @.str.6163) unreachable -ok8742: +ok9144: %t182 = getelementptr inbounds %S.gen.Gen, ptr %t180, i32 0, i32 15 %t183 = load i64, ptr %a155 %t184 = load { ptr, i64, i64 }, ptr %t182 %t185 = extractvalue { ptr, i64, i64 } %t184, 1 %t186 = icmp uge i64 %t183, %t185 - br i1 %t186, label %range8743, label %inrange8744 -range8743: - call void @finch_panic_index(ptr @.str.5956, i64 5573, i64 %t183, i64 %t185) + br i1 %t186, label %range9145, label %inrange9146 +range9145: + call void @finch_panic_index(ptr @.str.6164, i64 5808, i64 %t183, i64 %t185) unreachable -inrange8744: +inrange9146: %t187 = extractvalue { ptr, i64, i64 } %t184, 0 %t188 = getelementptr inbounds %S.gen.FnSig, ptr %t187, i64 %t183 %t189 = getelementptr inbounds %S.gen.FnSig, ptr %t188, i32 0, i32 17 @@ -92325,106 +96350,106 @@ inrange8744: %t191 = load { ptr, i64, i64 }, ptr %t179 %t192 = extractvalue { ptr, i64, i64 } %t191, 1 %t193 = icmp uge i64 %t190, %t192 - br i1 %t193, label %range8745, label %inrange8746 -range8745: - call void @finch_panic_index(ptr @.str.5957, i64 5573, i64 %t190, i64 %t192) + br i1 %t193, label %range9147, label %inrange9148 +range9147: + call void @finch_panic_index(ptr @.str.6165, i64 5808, i64 %t190, i64 %t192) unreachable -inrange8746: +inrange9148: %t194 = extractvalue { ptr, i64, i64 } %t191, 0 %t195 = getelementptr inbounds %S.ast.Node, ptr %t194, i64 %t190 %t196 = load %S.ast.Node, ptr %t195 - call void @finch.gen.fail(ptr %t159, %S.ast.Node %t196, { ptr, i64, i64 } { ptr @.str.5958, i64 82, i64 0 }) - br label %endif8732 -endif8732: - br label %endif8729 -else8728: + call void @finch.gen.fail(ptr %t159, %S.ast.Node %t196, { ptr, i64, i64 } { ptr @.str.6166, i64 82, i64 0 }) + br label %endif9134 +endif9134: + br label %endif9131 +else9130: %t197 = load i64, ptr %a155 %t198 = icmp slt i64 %t197, 0 - br i1 %t198, label %then8747, label %endif8749 -then8747: + br i1 %t198, label %then9149, label %endif9151 +then9149: %t199 = load { ptr, i64, i64 }, ptr %a2 %t200 = extractvalue { ptr, i64, i64 } %t199, 1 %t201 = icmp uge i64 0, %t200 - br i1 %t201, label %range8750, label %inrange8751 -range8750: - call void @finch_panic_index(ptr @.str.5959, i64 5576, i64 0, i64 %t200) + br i1 %t201, label %range9152, label %inrange9153 +range9152: + call void @finch_panic_index(ptr @.str.6167, i64 5811, i64 0, i64 %t200) unreachable -inrange8751: +inrange9153: %t202 = extractvalue { ptr, i64, i64 } %t199, 0 %t203 = getelementptr inbounds { ptr, i64, i64 }, ptr %t202, i64 0 %t204 = load { ptr, i64, i64 }, ptr %t203 store { ptr, i64, i64 } %t204, ptr %a206 - store { ptr, i64, i64 } { ptr @.str.5960, i64 64, i64 0 }, ptr %a207 + store { ptr, i64, i64 } { ptr @.str.6168, i64 64, i64 0 }, ptr %a207 call void @finch_str_concat(ptr %a205, ptr %a206, ptr %a207) %t208 = load { ptr, i64, i64 }, ptr %a205 %t209 = extractvalue { ptr, i64, i64 } %t208, 1 %t210 = trunc i64 %t209 to i32 %t211 = extractvalue { ptr, i64, i64 } %t208, 0 %t212 = icmp eq ptr %t211, null - %t213 = select i1 %t212, ptr @.str.5961, ptr %t211 - %t214 = call i32 (ptr, ...) @printf(ptr @.str.5962, i32 %t210, ptr %t213) + %t213 = select i1 %t212, ptr @.str.6169, ptr %t211 + %t214 = call i32 (ptr, ...) @printf(ptr @.str.6170, i32 %t210, ptr %t213) store { ptr, i64, i64 } %t208, ptr %a215 call void @finch_str_drop(ptr %a215) - %t216 = call i32 (ptr, ...) @printf(ptr @.str.5963) + %t216 = call i32 (ptr, ...) @printf(ptr @.str.6171) %t217 = trunc i64 1 to i32 %t218 = call i32 @fflush(ptr null) call void @exit(i32 %t217) - br label %endif8749 -endif8749: - br label %endif8729 -endif8729: + br label %endif9151 +endif9151: + br label %endif9131 +endif9131: store i64 0, ptr %a219 - br label %while.cond8752 -while.cond8752: + br label %while.cond9154 +while.cond9154: %t220 = load i64, ptr %a219 %t221 = load ptr, ptr %a46 %t222 = icmp eq ptr %t221, null - br i1 %t222, label %panic8755, label %ok8756 -panic8755: - call void @finch_panic(ptr @.str.5964, i64 5581, ptr @.str.5965) + br i1 %t222, label %panic9157, label %ok9158 +panic9157: + call void @finch_panic(ptr @.str.6172, i64 5816, ptr @.str.6173) unreachable -ok8756: +ok9158: %t223 = getelementptr inbounds %S.gen.Gen, ptr %t221, i32 0, i32 15 %t224 = getelementptr inbounds { ptr, i64, i64 }, ptr %t223, i32 0, i32 1 %t225 = load i64, ptr %t224 %t226 = icmp slt i64 %t220, %t225 - br i1 %t226, label %while.body8753, label %while.end8754 -while.body8753: + br i1 %t226, label %while.body9155, label %while.end9156 +while.body9155: %t227 = load ptr, ptr %a46 %t228 = load i64, ptr %a219 call void @finch.gen.define(ptr %t227, i64 %t228) %t229 = load i64, ptr %a219 %t230 = add i64 %t229, 1 store i64 %t230, ptr %a219 - br label %while.cond8752 -while.end8754: + br label %while.cond9154 +while.end9156: %t231 = load ptr, ptr %a46 %t232 = icmp eq ptr %t231, null - br i1 %t232, label %panic8757, label %ok8758 -panic8757: - call void @finch_panic(ptr @.str.5966, i64 5585, ptr @.str.5967) + br i1 %t232, label %panic9159, label %ok9160 +panic9159: + call void @finch_panic(ptr @.str.6174, i64 5820, ptr @.str.6175) unreachable -ok8758: - %t233 = getelementptr inbounds %S.gen.Gen, ptr %t231, i32 0, i32 27 +ok9160: + %t233 = getelementptr inbounds %S.gen.Gen, ptr %t231, i32 0, i32 28 %t234 = load i1, ptr %t233 - br i1 %t234, label %then8759, label %endif8761 -then8759: + br i1 %t234, label %then9161, label %endif9163 +then9161: %t235 = load ptr, ptr %a46 %t236 = icmp eq ptr %t235, null - br i1 %t236, label %panic8762, label %ok8763 -panic8762: - call void @finch_panic(ptr @.str.5968, i64 5586, ptr @.str.5969) + br i1 %t236, label %panic9164, label %ok9165 +panic9164: + call void @finch_panic(ptr @.str.6176, i64 5821, ptr @.str.6177) unreachable -ok8763: +ok9165: %t237 = getelementptr inbounds %S.gen.Gen, ptr %t235, i32 0, i32 0 %t238 = load { ptr, i64, i64 }, ptr %t237 %t239 = extractvalue { ptr, i64, i64 } %t238, 1 %t240 = icmp uge i64 0, %t239 - br i1 %t240, label %range8764, label %inrange8765 -range8764: - call void @finch_panic_index(ptr @.str.5970, i64 5586, i64 0, i64 %t239) + br i1 %t240, label %range9166, label %inrange9167 +range9166: + call void @finch_panic_index(ptr @.str.6178, i64 5821, i64 0, i64 %t239) unreachable -inrange8765: +inrange9167: %t241 = extractvalue { ptr, i64, i64 } %t238, 0 %t242 = getelementptr inbounds %S.ast.Program, ptr %t241, i64 0 %t243 = getelementptr inbounds %S.ast.Program, ptr %t242, i32 0, i32 2 @@ -92438,97 +96463,97 @@ inrange8765: call void @finch.gen.indexAll(ptr %t249, { ptr, i64, i64 } %t250) %t251 = load ptr, ptr %a46 %t252 = icmp eq ptr %t251, null - br i1 %t252, label %panic8766, label %ok8767 -panic8766: - call void @finch_panic(ptr @.str.5971, i64 5588, ptr @.str.5972) + br i1 %t252, label %panic9168, label %ok9169 +panic9168: + call void @finch_panic(ptr @.str.6179, i64 5823, ptr @.str.6180) unreachable -ok8767: - %t253 = getelementptr inbounds %S.gen.Gen, ptr %t251, i32 0, i32 28 +ok9169: + %t253 = getelementptr inbounds %S.gen.Gen, ptr %t251, i32 0, i32 29 %t254 = getelementptr inbounds { ptr, i64, i64 }, ptr %t253, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.5973, i64 1, i64 0 }, ptr %a255 + store { ptr, i64, i64 } { ptr @.str.6181, i64 1, i64 0 }, ptr %a255 call void @finch_str_join(ptr %a256, ptr %t253, ptr %a255) %t257 = load { ptr, i64, i64 }, ptr %a256 call void @finch.drop.arr_str(ptr %a248) call void @finch.drop.S_gen_Gen(ptr %a45) ret { ptr, i64, i64 } %t257 -endif8761: +endif9163: %t258 = load ptr, ptr %a46 %t259 = icmp eq ptr %t258, null - br i1 %t259, label %panic8791, label %ok8792 -panic8791: - call void @finch_panic(ptr @.str.5974, i64 5590, ptr @.str.5975) + br i1 %t259, label %panic9196, label %ok9197 +panic9196: + call void @finch_panic(ptr @.str.6182, i64 5825, ptr @.str.6183) unreachable -ok8792: +ok9197: %t260 = getelementptr inbounds %S.gen.Gen, ptr %t258, i32 0, i32 15 store i64 0, ptr %a261 - br label %each.cond8793 -each.cond8793: + br label %each.cond9198 +each.cond9198: %t262 = getelementptr inbounds { ptr, i64, i64 }, ptr %t260, i32 0, i32 1 %t263 = load i64, ptr %t262 %t264 = load i64, ptr %a261 %t265 = icmp slt i64 %t264, %t263 - br i1 %t265, label %each.body8794, label %each.end8796 -each.body8794: + br i1 %t265, label %each.body9199, label %each.end9201 +each.body9199: %t266 = load ptr, ptr %t260 %t267 = getelementptr inbounds %S.gen.FnSig, ptr %t266, i64 %t264 %t268 = load %S.gen.FnSig, ptr %t267 store %S.gen.FnSig %t268, ptr %a269 %t270 = getelementptr inbounds %S.gen.FnSig, ptr %a269, i32 0, i32 5 %t271 = load i1, ptr %t270 - br i1 %t271, label %then8797, label %endif8799 -then8797: + br i1 %t271, label %then9202, label %endif9204 +then9202: %t272 = load ptr, ptr %a46 %t273 = load %S.gen.FnSig, ptr %a269 %t274 = call { ptr, i64, i64 } @finch.gen.exportWrapper(ptr %t272, %S.gen.FnSig %t273) store { ptr, i64, i64 } %t274, ptr %a275 call void @finch_str_drop(ptr %a275) - br label %endif8799 -endif8799: - br label %each.step8795 -each.step8795: + br label %endif9204 +endif9204: + br label %each.step9200 +each.step9200: %t276 = load i64, ptr %a261 %t277 = add i64 %t276, 1 store i64 %t277, ptr %a261 - br label %each.cond8793 -each.end8796: + br label %each.cond9198 +each.end9201: %t278 = load i1, ptr %a7 - br i1 %t278, label %then8800, label %endif8802 -then8800: - store { ptr, i64, i64 } { ptr @.str.5976, i64 0, i64 0 }, ptr %a279 + br i1 %t278, label %then9205, label %endif9207 +then9205: + store { ptr, i64, i64 } { ptr @.str.6184, i64 0, i64 0 }, ptr %a279 %t280 = load ptr, ptr %a46 %t281 = icmp eq ptr %t280, null - br i1 %t281, label %panic8803, label %ok8804 -panic8803: - call void @finch_panic(ptr @.str.5977, i64 5598, ptr @.str.5978) + br i1 %t281, label %panic9208, label %ok9209 +panic9208: + call void @finch_panic(ptr @.str.6185, i64 5833, ptr @.str.6186) unreachable -ok8804: - %t282 = getelementptr inbounds %S.gen.Gen, ptr %t280, i32 0, i32 30 +ok9209: + %t282 = getelementptr inbounds %S.gen.Gen, ptr %t280, i32 0, i32 31 %t283 = getelementptr inbounds %S.platform.Target, ptr %t282, i32 0, i32 1 %t284 = load i1, ptr %t283 - br i1 %t284, label %then8805, label %endif8807 -then8805: + br i1 %t284, label %then9210, label %endif9212 +then9210: %t285 = load { ptr, i64, i64 }, ptr %a279 - store { ptr, i64, i64 } { ptr @.str.5979, i64 10, i64 0 }, ptr %a279 + store { ptr, i64, i64 } { ptr @.str.6187, i64 10, i64 0 }, ptr %a279 store { ptr, i64, i64 } %t285, ptr %a286 call void @finch_str_drop(ptr %a286) - br label %endif8807 -endif8807: + br label %endif9212 +endif9212: %t287 = load ptr, ptr %a46 %t288 = icmp eq ptr %t287, null - br i1 %t288, label %panic8808, label %ok8809 -panic8808: - call void @finch_panic(ptr @.str.5980, i64 5601, ptr @.str.5981) + br i1 %t288, label %panic9213, label %ok9214 +panic9213: + call void @finch_panic(ptr @.str.6188, i64 5836, ptr @.str.6189) unreachable -ok8809: +ok9214: %t289 = getelementptr inbounds %S.gen.Gen, ptr %t287, i32 0, i32 3 %t290 = getelementptr inbounds { ptr, i64, i64 }, ptr %t289, i32 0, i32 1 %t291 = load { ptr, i64, i64 }, ptr %a279 - store { ptr, i64, i64 } { ptr @.str.5982, i64 6, i64 0 }, ptr %a293 + store { ptr, i64, i64 } { ptr @.str.6190, i64 6, i64 0 }, ptr %a293 store { ptr, i64, i64 } %t291, ptr %a294 call void @finch_str_concat(ptr %a292, ptr %a293, ptr %a294) %t295 = load { ptr, i64, i64 }, ptr %a292 store { ptr, i64, i64 } %t295, ptr %a297 - store { ptr, i64, i64 } { ptr @.str.5983, i64 107, i64 0 }, ptr %a298 + store { ptr, i64, i64 } { ptr @.str.6191, i64 107, i64 0 }, ptr %a298 call void @finch_str_concat(ptr %a296, ptr %a297, ptr %a298) store { ptr, i64, i64 } %t295, ptr %a299 call void @finch_str_drop(ptr %a299) @@ -92545,24 +96570,24 @@ ok8809: call void @finch_str_drop(ptr %a279) call void @finch.drop.S_gen_Gen(ptr %a45) ret { ptr, i64, i64 } %t306 -endif8802: +endif9207: %t307 = load ptr, ptr %a46 %t308 = icmp eq ptr %t307, null - br i1 %t308, label %panic8810, label %ok8811 -panic8810: - call void @finch_panic(ptr @.str.5984, i64 5605, ptr @.str.5985) + br i1 %t308, label %panic9215, label %ok9216 +panic9215: + call void @finch_panic(ptr @.str.6192, i64 5840, ptr @.str.6193) unreachable -ok8811: +ok9216: %t309 = getelementptr inbounds %S.gen.Gen, ptr %t307, i32 0, i32 15 %t310 = load i64, ptr %a155 %t311 = load { ptr, i64, i64 }, ptr %t309 %t312 = extractvalue { ptr, i64, i64 } %t311, 1 %t313 = icmp uge i64 %t310, %t312 - br i1 %t313, label %range8812, label %inrange8813 -range8812: - call void @finch_panic_index(ptr @.str.5986, i64 5605, i64 %t310, i64 %t312) + br i1 %t313, label %range9217, label %inrange9218 +range9217: + call void @finch_panic_index(ptr @.str.6194, i64 5840, i64 %t310, i64 %t312) unreachable -inrange8813: +inrange9218: %t314 = extractvalue { ptr, i64, i64 } %t311, 0 %t315 = getelementptr inbounds %S.gen.FnSig, ptr %t314, i64 %t310 %t316 = load %S.gen.FnSig, ptr %t315 @@ -92573,14 +96598,14 @@ inrange8813: %t321 = load ptr, ptr %a46 %t322 = load %S.gen.FnSig, ptr %a320 %t323 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t321, %S.gen.FnSig %t322) - store { ptr, i64, i64 } { ptr @.str.5987, i64 5, i64 0 }, ptr %a325 + store { ptr, i64, i64 } { ptr @.str.6195, i64 5, i64 0 }, ptr %a325 store { ptr, i64, i64 } %t323, ptr %a326 call void @finch_str_concat(ptr %a324, ptr %a325, ptr %a326) store { ptr, i64, i64 } %t323, ptr %a327 call void @finch_str_drop(ptr %a327) %t328 = load { ptr, i64, i64 }, ptr %a324 store { ptr, i64, i64 } %t328, ptr %a330 - store { ptr, i64, i64 } { ptr @.str.5988, i64 1, i64 0 }, ptr %a331 + store { ptr, i64, i64 } { ptr @.str.6196, i64 1, i64 0 }, ptr %a331 call void @finch_str_concat(ptr %a329, ptr %a330, ptr %a331) store { ptr, i64, i64 } %t328, ptr %a332 call void @finch_str_drop(ptr %a332) @@ -92594,50 +96619,50 @@ inrange8813: call void @finch_str_drop(ptr %a339) %t340 = load { ptr, i64, i64 }, ptr %a336 store { ptr, i64, i64 } %t340, ptr %a342 - store { ptr, i64, i64 } { ptr @.str.5989, i64 1, i64 0 }, ptr %a343 + store { ptr, i64, i64 } { ptr @.str.6197, i64 1, i64 0 }, ptr %a343 call void @finch_str_concat(ptr %a341, ptr %a342, ptr %a343) store { ptr, i64, i64 } %t340, ptr %a344 call void @finch_str_drop(ptr %a344) %t345 = load { ptr, i64, i64 }, ptr %a341 store { ptr, i64, i64 } %t345, ptr %a346 - store { ptr, i64, i64 } { ptr @.str.5990, i64 0, i64 0 }, ptr %a347 + store { ptr, i64, i64 } { ptr @.str.6198, i64 0, i64 0 }, ptr %a347 %t348 = getelementptr inbounds %S.gen.FnSig, ptr %a320, i32 0, i32 13 %t349 = getelementptr inbounds { ptr, i64, i64 }, ptr %t348, i32 0, i32 1 %t350 = load i64, ptr %t349 %t351 = icmp eq i64 %t350, 1 - br i1 %t351, label %then8814, label %endif8816 -then8814: + br i1 %t351, label %then9219, label %endif9221 +then9219: %t352 = load { ptr, i64, i64 }, ptr %a347 - store { ptr, i64, i64 } { ptr @.str.5991, i64 133, i64 0 }, ptr %a347 + store { ptr, i64, i64 } { ptr @.str.6199, i64 133, i64 0 }, ptr %a347 store { ptr, i64, i64 } %t352, ptr %a353 call void @finch_str_drop(ptr %a353) %t354 = load { ptr, i64, i64 }, ptr %a346 store { ptr, i64, i64 } %t354, ptr %a356 - store { ptr, i64, i64 } { ptr @.str.5992, i64 20, i64 0 }, ptr %a357 + store { ptr, i64, i64 } { ptr @.str.6200, i64 20, i64 0 }, ptr %a357 call void @finch_str_concat(ptr %a355, ptr %a356, ptr %a357) %t358 = load { ptr, i64, i64 }, ptr %a355 %t359 = load { ptr, i64, i64 }, ptr %a346 store { ptr, i64, i64 } %t358, ptr %a346 store { ptr, i64, i64 } %t359, ptr %a360 call void @finch_str_drop(ptr %a360) - br label %endif8816 -endif8816: + br label %endif9221 +endif9221: %t361 = load { ptr, i64, i64 }, ptr %a346 store { ptr, i64, i64 } %t361, ptr %a363 - store { ptr, i64, i64 } { ptr @.str.5993, i64 1, i64 0 }, ptr %a364 + store { ptr, i64, i64 } { ptr @.str.6201, i64 1, i64 0 }, ptr %a364 call void @finch_str_concat(ptr %a362, ptr %a363, ptr %a364) %t365 = load { ptr, i64, i64 }, ptr %a362 %t366 = load { ptr, i64, i64 }, ptr %a346 store { ptr, i64, i64 } %t365, ptr %a346 store { ptr, i64, i64 } %t366, ptr %a367 call void @finch_str_drop(ptr %a367) - store { ptr, i64, i64 } { ptr @.str.5994, i64 12, i64 0 }, ptr %a368 + store { ptr, i64, i64 } { ptr @.str.6202, i64 12, i64 0 }, ptr %a368 %t369 = getelementptr inbounds %S.gen.FnSig, ptr %a320, i32 0, i32 9 %t370 = load i1, ptr %t369 - br i1 %t370, label %then8817, label %else8818 -then8817: + br i1 %t370, label %then9222, label %else9223 +then9222: %t371 = load { ptr, i64, i64 }, ptr %a346 - store { ptr, i64, i64 } { ptr @.str.5995, i64 5, i64 0 }, ptr %a373 + store { ptr, i64, i64 } { ptr @.str.6203, i64 5, i64 0 }, ptr %a373 store { ptr, i64, i64 } %t371, ptr %a374 call void @finch_str_concat(ptr %a372, ptr %a373, ptr %a374) %t375 = load { ptr, i64, i64 }, ptr %a372 @@ -92647,7 +96672,7 @@ then8817: call void @finch_str_drop(ptr %a377) %t378 = load { ptr, i64, i64 }, ptr %a347 store { ptr, i64, i64 } %t378, ptr %a380 - store { ptr, i64, i64 } { ptr @.str.5996, i64 2, i64 0 }, ptr %a381 + store { ptr, i64, i64 } { ptr @.str.6204, i64 2, i64 0 }, ptr %a381 call void @finch_str_concat(ptr %a379, ptr %a380, ptr %a381) %t382 = load { ptr, i64, i64 }, ptr %a379 %t383 = load { ptr, i64, i64 }, ptr %a346 @@ -92658,7 +96683,7 @@ then8817: call void @finch_str_drop(ptr %a387) %t388 = load { ptr, i64, i64 }, ptr %a384 store { ptr, i64, i64 } %t388, ptr %a390 - store { ptr, i64, i64 } { ptr @.str.5997, i64 1, i64 0 }, ptr %a391 + store { ptr, i64, i64 } { ptr @.str.6205, i64 1, i64 0 }, ptr %a391 call void @finch_str_concat(ptr %a389, ptr %a390, ptr %a391) store { ptr, i64, i64 } %t388, ptr %a392 call void @finch_str_drop(ptr %a392) @@ -92668,7 +96693,7 @@ then8817: store { ptr, i64, i64 } %t394, ptr %a395 call void @finch_str_drop(ptr %a395) %t396 = load { ptr, i64, i64 }, ptr %a346 - store { ptr, i64, i64 } { ptr @.str.5998, i64 0, i64 0 }, ptr %a346 + store { ptr, i64, i64 } { ptr @.str.6206, i64 0, i64 0 }, ptr %a346 store { ptr, i64, i64 } %t396, ptr %a397 call void @finch_str_drop(ptr %a397) %t398 = load ptr, ptr %a46 @@ -92677,7 +96702,7 @@ then8817: store { ptr, i64, i64 } %t400, ptr %a401 %t402 = load { ptr, i64, i64 }, ptr %a347 store { ptr, i64, i64 } %t402, ptr %a404 - store { ptr, i64, i64 } { ptr @.str.5999, i64 21, i64 0 }, ptr %a405 + store { ptr, i64, i64 } { ptr @.str.6207, i64 21, i64 0 }, ptr %a405 call void @finch_str_concat(ptr %a403, ptr %a404, ptr %a405) %t406 = load { ptr, i64, i64 }, ptr %a403 %t407 = load { ptr, i64, i64 }, ptr %a401 @@ -92688,7 +96713,7 @@ then8817: call void @finch_str_drop(ptr %a411) %t412 = load { ptr, i64, i64 }, ptr %a408 store { ptr, i64, i64 } %t412, ptr %a414 - store { ptr, i64, i64 } { ptr @.str.6000, i64 62, i64 0 }, ptr %a415 + store { ptr, i64, i64 } { ptr @.str.6208, i64 62, i64 0 }, ptr %a415 call void @finch_str_concat(ptr %a413, ptr %a414, ptr %a415) store { ptr, i64, i64 } %t412, ptr %a416 call void @finch_str_drop(ptr %a416) @@ -92699,7 +96724,7 @@ then8817: call void @finch_str_drop(ptr %a419) %t420 = load { ptr, i64, i64 }, ptr %a347 store { ptr, i64, i64 } %t420, ptr %a422 - store { ptr, i64, i64 } { ptr @.str.6001, i64 20, i64 0 }, ptr %a423 + store { ptr, i64, i64 } { ptr @.str.6209, i64 20, i64 0 }, ptr %a423 call void @finch_str_concat(ptr %a421, ptr %a422, ptr %a423) %t424 = load { ptr, i64, i64 }, ptr %a421 %t425 = load { ptr, i64, i64 }, ptr %a401 @@ -92710,7 +96735,7 @@ then8817: call void @finch_str_drop(ptr %a429) %t430 = load { ptr, i64, i64 }, ptr %a426 store { ptr, i64, i64 } %t430, ptr %a432 - store { ptr, i64, i64 } { ptr @.str.6002, i64 78, i64 0 }, ptr %a433 + store { ptr, i64, i64 } { ptr @.str.6210, i64 78, i64 0 }, ptr %a433 call void @finch_str_concat(ptr %a431, ptr %a432, ptr %a433) store { ptr, i64, i64 } %t430, ptr %a434 call void @finch_str_drop(ptr %a434) @@ -92721,7 +96746,7 @@ then8817: call void @finch_str_drop(ptr %a437) %t438 = load { ptr, i64, i64 }, ptr %a347 store { ptr, i64, i64 } %t438, ptr %a440 - store { ptr, i64, i64 } { ptr @.str.6003, i64 62, i64 0 }, ptr %a441 + store { ptr, i64, i64 } { ptr @.str.6211, i64 62, i64 0 }, ptr %a441 call void @finch_str_concat(ptr %a439, ptr %a440, ptr %a441) %t442 = load { ptr, i64, i64 }, ptr %a439 %t443 = load { ptr, i64, i64 }, ptr %a347 @@ -92732,18 +96757,18 @@ then8817: %t446 = getelementptr inbounds %S.ast.Type, ptr %t445, i32 0, i32 0 %t447 = load { ptr, i64, i64 }, ptr %t446 store { ptr, i64, i64 } %t447, ptr %a448 - store { ptr, i64, i64 } { ptr @.str.6004, i64 3, i64 0 }, ptr %a449 + store { ptr, i64, i64 } { ptr @.str.6212, i64 3, i64 0 }, ptr %a449 %t450 = call i32 @finch_str_eq(ptr %a448, ptr %a449) %t451 = icmp ne i32 %t450, 0 - br i1 %t451, label %then8820, label %endif8822 -then8820: + br i1 %t451, label %then9225, label %endif9227 +then9225: %t452 = load { ptr, i64, i64 }, ptr %a401 - store { ptr, i64, i64 } { ptr @.str.6005, i64 20, i64 0 }, ptr %a454 + store { ptr, i64, i64 } { ptr @.str.6213, i64 20, i64 0 }, ptr %a454 store { ptr, i64, i64 } %t452, ptr %a455 call void @finch_str_concat(ptr %a453, ptr %a454, ptr %a455) %t456 = load { ptr, i64, i64 }, ptr %a453 store { ptr, i64, i64 } %t456, ptr %a458 - store { ptr, i64, i64 } { ptr @.str.6006, i64 53, i64 0 }, ptr %a459 + store { ptr, i64, i64 } { ptr @.str.6214, i64 53, i64 0 }, ptr %a459 call void @finch_str_concat(ptr %a457, ptr %a458, ptr %a459) store { ptr, i64, i64 } %t456, ptr %a460 call void @finch_str_drop(ptr %a460) @@ -92752,22 +96777,22 @@ then8820: store { ptr, i64, i64 } %t461, ptr %a368 store { ptr, i64, i64 } %t462, ptr %a463 call void @finch_str_drop(ptr %a463) - br label %endif8822 -endif8822: + br label %endif9227 +endif9227: call void @finch_str_drop(ptr %a401) - br label %endif8819 -else8818: + br label %endif9224 +else9223: %t464 = getelementptr inbounds %S.gen.FnSig, ptr %a320, i32 0, i32 12 %t465 = getelementptr inbounds %S.ast.Type, ptr %t464, i32 0, i32 0 %t466 = load { ptr, i64, i64 }, ptr %t465 store { ptr, i64, i64 } %t466, ptr %a467 - store { ptr, i64, i64 } { ptr @.str.6007, i64 3, i64 0 }, ptr %a468 + store { ptr, i64, i64 } { ptr @.str.6215, i64 3, i64 0 }, ptr %a468 %t469 = call i32 @finch_str_eq(ptr %a467, ptr %a468) %t470 = icmp ne i32 %t469, 0 - br i1 %t470, label %then8823, label %endif8825 -then8823: + br i1 %t470, label %then9228, label %endif9230 +then9228: %t471 = load { ptr, i64, i64 }, ptr %a346 - store { ptr, i64, i64 } { ptr @.str.6008, i64 5, i64 0 }, ptr %a473 + store { ptr, i64, i64 } { ptr @.str.6216, i64 5, i64 0 }, ptr %a473 store { ptr, i64, i64 } %t471, ptr %a474 call void @finch_str_concat(ptr %a472, ptr %a473, ptr %a474) %t475 = load { ptr, i64, i64 }, ptr %a472 @@ -92776,29 +96801,29 @@ then8823: store { ptr, i64, i64 } %t476, ptr %a477 call void @finch_str_drop(ptr %a477) %t478 = load { ptr, i64, i64 }, ptr %a368 - store { ptr, i64, i64 } { ptr @.str.6009, i64 46, i64 0 }, ptr %a368 + store { ptr, i64, i64 } { ptr @.str.6217, i64 46, i64 0 }, ptr %a368 store { ptr, i64, i64 } %t478, ptr %a479 call void @finch_str_drop(ptr %a479) - br label %endif8825 -endif8825: - br label %endif8819 -endif8819: + br label %endif9230 +endif9230: + br label %endif9224 +endif9224: %t480 = load ptr, ptr %a46 %t481 = icmp eq ptr %t480, null - br i1 %t481, label %panic8826, label %ok8827 -panic8826: - call void @finch_panic(ptr @.str.6010, i64 5630, ptr @.str.6011) + br i1 %t481, label %panic9231, label %ok9232 +panic9231: + call void @finch_panic(ptr @.str.6218, i64 5865, ptr @.str.6219) unreachable -ok8827: +ok9232: %t482 = getelementptr inbounds %S.gen.Gen, ptr %t480, i32 0, i32 3 %t483 = getelementptr inbounds { ptr, i64, i64 }, ptr %t482, i32 0, i32 1 %t484 = load { ptr, i64, i64 }, ptr %a347 - store { ptr, i64, i64 } { ptr @.str.6012, i64 48, i64 0 }, ptr %a486 + store { ptr, i64, i64 } { ptr @.str.6220, i64 48, i64 0 }, ptr %a486 store { ptr, i64, i64 } %t484, ptr %a487 call void @finch_str_concat(ptr %a485, ptr %a486, ptr %a487) %t488 = load { ptr, i64, i64 }, ptr %a485 store { ptr, i64, i64 } %t488, ptr %a490 - store { ptr, i64, i64 } { ptr @.str.6013, i64 2, i64 0 }, ptr %a491 + store { ptr, i64, i64 } { ptr @.str.6221, i64 2, i64 0 }, ptr %a491 call void @finch_str_concat(ptr %a489, ptr %a490, ptr %a491) store { ptr, i64, i64 } %t488, ptr %a492 call void @finch_str_drop(ptr %a492) @@ -92811,7 +96836,7 @@ ok8827: call void @finch_str_drop(ptr %a498) %t499 = load { ptr, i64, i64 }, ptr %a495 store { ptr, i64, i64 } %t499, ptr %a501 - store { ptr, i64, i64 } { ptr @.str.6014, i64 1, i64 0 }, ptr %a502 + store { ptr, i64, i64 } { ptr @.str.6222, i64 1, i64 0 }, ptr %a502 call void @finch_str_concat(ptr %a500, ptr %a501, ptr %a502) store { ptr, i64, i64 } %t499, ptr %a503 call void @finch_str_drop(ptr %a503) @@ -92824,7 +96849,7 @@ ok8827: call void @finch_str_drop(ptr %a509) %t510 = load { ptr, i64, i64 }, ptr %a506 store { ptr, i64, i64 } %t510, ptr %a512 - store { ptr, i64, i64 } { ptr @.str.6015, i64 2, i64 0 }, ptr %a513 + store { ptr, i64, i64 } { ptr @.str.6223, i64 2, i64 0 }, ptr %a513 call void @finch_str_concat(ptr %a511, ptr %a512, ptr %a513) store { ptr, i64, i64 } %t510, ptr %a514 call void @finch_str_drop(ptr %a514) @@ -92881,24 +96906,24 @@ entry: define internal { ptr, i64, i64 } @finch.docs.builtins() { entry: - %t1 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6016, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6017, i64 16, i64 0 }, { ptr, i64, i64 } { ptr @.str.6018, i64 78, i64 0 }) - %t2 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6019, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6020, i64 31, i64 0 }, { ptr, i64, i64 } { ptr @.str.6021, i64 77, i64 0 }) - %t3 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6022, i64 9, i64 0 }, { ptr, i64, i64 } { ptr @.str.6023, i64 26, i64 0 }, { ptr, i64, i64 } { ptr @.str.6024, i64 121, i64 0 }) - %t4 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6025, i64 10, i64 0 }, { ptr, i64, i64 } { ptr @.str.6026, i64 38, i64 0 }, { ptr, i64, i64 } { ptr @.str.6027, i64 83, i64 0 }) - %t5 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6028, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6029, i64 29, i64 0 }, { ptr, i64, i64 } { ptr @.str.6030, i64 29, i64 0 }) - %t6 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6031, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6032, i64 29, i64 0 }, { ptr, i64, i64 } { ptr @.str.6033, i64 73, i64 0 }) - %t7 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6034, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6035, i64 18, i64 0 }, { ptr, i64, i64 } { ptr @.str.6036, i64 98, i64 0 }) - %t8 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6037, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6038, i64 25, i64 0 }, { ptr, i64, i64 } { ptr @.str.6039, i64 66, i64 0 }) - %t9 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6040, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6041, i64 14, i64 0 }, { ptr, i64, i64 } { ptr @.str.6042, i64 48, i64 0 }) - %t10 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6043, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6044, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.6045, i64 77, i64 0 }) - %t11 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6046, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6047, i64 20, i64 0 }, { ptr, i64, i64 } { ptr @.str.6048, i64 66, i64 0 }) - %t12 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6049, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6050, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6051, i64 73, i64 0 }) - %t13 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6052, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6053, i64 13, i64 0 }, { ptr, i64, i64 } { ptr @.str.6054, i64 61, i64 0 }) - %t14 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6055, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6056, i64 13, i64 0 }, { ptr, i64, i64 } { ptr @.str.6057, i64 130, i64 0 }) - %t15 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6058, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6059, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.6060, i64 75, i64 0 }) - %t16 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6061, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6062, i64 19, i64 0 }, { ptr, i64, i64 } { ptr @.str.6063, i64 29, i64 0 }) - %t17 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6064, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6065, i64 19, i64 0 }, { ptr, i64, i64 } { ptr @.str.6066, i64 26, i64 0 }) - %t18 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6067, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6068, i64 13, i64 0 }, { ptr, i64, i64 } { ptr @.str.6069, i64 88, i64 0 }) + %t1 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6224, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6225, i64 16, i64 0 }, { ptr, i64, i64 } { ptr @.str.6226, i64 78, i64 0 }) + %t2 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6227, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6228, i64 31, i64 0 }, { ptr, i64, i64 } { ptr @.str.6229, i64 77, i64 0 }) + %t3 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6230, i64 9, i64 0 }, { ptr, i64, i64 } { ptr @.str.6231, i64 26, i64 0 }, { ptr, i64, i64 } { ptr @.str.6232, i64 121, i64 0 }) + %t4 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6233, i64 10, i64 0 }, { ptr, i64, i64 } { ptr @.str.6234, i64 38, i64 0 }, { ptr, i64, i64 } { ptr @.str.6235, i64 83, i64 0 }) + %t5 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6236, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6237, i64 29, i64 0 }, { ptr, i64, i64 } { ptr @.str.6238, i64 29, i64 0 }) + %t6 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6239, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6240, i64 29, i64 0 }, { ptr, i64, i64 } { ptr @.str.6241, i64 73, i64 0 }) + %t7 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6242, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6243, i64 18, i64 0 }, { ptr, i64, i64 } { ptr @.str.6244, i64 98, i64 0 }) + %t8 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6245, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6246, i64 25, i64 0 }, { ptr, i64, i64 } { ptr @.str.6247, i64 66, i64 0 }) + %t9 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6248, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6249, i64 14, i64 0 }, { ptr, i64, i64 } { ptr @.str.6250, i64 48, i64 0 }) + %t10 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6251, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6252, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.6253, i64 77, i64 0 }) + %t11 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6254, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6255, i64 20, i64 0 }, { ptr, i64, i64 } { ptr @.str.6256, i64 66, i64 0 }) + %t12 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6257, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6258, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6259, i64 73, i64 0 }) + %t13 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6260, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6261, i64 13, i64 0 }, { ptr, i64, i64 } { ptr @.str.6262, i64 61, i64 0 }) + %t14 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6263, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6264, i64 13, i64 0 }, { ptr, i64, i64 } { ptr @.str.6265, i64 130, i64 0 }) + %t15 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6266, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6267, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.6268, i64 75, i64 0 }) + %t16 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6269, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6270, i64 19, i64 0 }, { ptr, i64, i64 } { ptr @.str.6271, i64 29, i64 0 }) + %t17 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6272, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6273, i64 19, i64 0 }, { ptr, i64, i64 } { ptr @.str.6274, i64 26, i64 0 }) + %t18 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6275, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6276, i64 13, i64 0 }, { ptr, i64, i64 } { ptr @.str.6277, i64 88, i64 0 }) %t19 = mul i64 18, ptrtoint (ptr getelementptr (%S.docs.Doc, ptr null, i32 1) to i64) %t20 = call ptr @finch_alloc(i64 %t19) %t21 = getelementptr inbounds %S.docs.Doc, ptr %t20, i64 0 @@ -92946,20 +96971,20 @@ entry: define internal { ptr, i64, i64 } @finch.docs.arrayMethods() { entry: - %t1 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6070, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6071, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6072, i64 23, i64 0 }) - %t2 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6073, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6074, i64 14, i64 0 }, { ptr, i64, i64 } { ptr @.str.6075, i64 40, i64 0 }) - %t3 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6076, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6077, i64 9, i64 0 }, { ptr, i64, i64 } { ptr @.str.6078, i64 18, i64 0 }) - %t4 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6079, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6080, i64 10, i64 0 }, { ptr, i64, i64 } { ptr @.str.6081, i64 43, i64 0 }) - %t5 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6082, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6083, i64 18, i64 0 }, { ptr, i64, i64 } { ptr @.str.6084, i64 38, i64 0 }) - %t6 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6085, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6086, i64 18, i64 0 }, { ptr, i64, i64 } { ptr @.str.6087, i64 37, i64 0 }) - %t7 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6088, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6089, i64 7, i64 0 }, { ptr, i64, i64 } { ptr @.str.6090, i64 19, i64 0 }) - %t8 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6091, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6092, i64 13, i64 0 }, { ptr, i64, i64 } { ptr @.str.6093, i64 46, i64 0 }) - %t9 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6094, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6095, i64 16, i64 0 }, { ptr, i64, i64 } { ptr @.str.6096, i64 22, i64 0 }) - %t10 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6097, i64 8, i64 0 }, { ptr, i64, i64 } { ptr @.str.6098, i64 21, i64 0 }, { ptr, i64, i64 } { ptr @.str.6099, i64 18, i64 0 }) - %t11 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6100, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6101, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6102, i64 37, i64 0 }) - %t12 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6103, i64 7, i64 0 }, { ptr, i64, i64 } { ptr @.str.6104, i64 9, i64 0 }, { ptr, i64, i64 } { ptr @.str.6105, i64 18, i64 0 }) - %t13 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6106, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6107, i64 32, i64 0 }, { ptr, i64, i64 } { ptr @.str.6108, i64 45, i64 0 }) - %t14 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6109, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6110, i64 20, i64 0 }, { ptr, i64, i64 } { ptr @.str.6111, i64 47, i64 0 }) + %t1 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6278, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6279, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6280, i64 23, i64 0 }) + %t2 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6281, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6282, i64 14, i64 0 }, { ptr, i64, i64 } { ptr @.str.6283, i64 40, i64 0 }) + %t3 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6284, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6285, i64 9, i64 0 }, { ptr, i64, i64 } { ptr @.str.6286, i64 18, i64 0 }) + %t4 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6287, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6288, i64 10, i64 0 }, { ptr, i64, i64 } { ptr @.str.6289, i64 43, i64 0 }) + %t5 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6290, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6291, i64 18, i64 0 }, { ptr, i64, i64 } { ptr @.str.6292, i64 38, i64 0 }) + %t6 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6293, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6294, i64 18, i64 0 }, { ptr, i64, i64 } { ptr @.str.6295, i64 37, i64 0 }) + %t7 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6296, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6297, i64 7, i64 0 }, { ptr, i64, i64 } { ptr @.str.6298, i64 19, i64 0 }) + %t8 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6299, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6300, i64 13, i64 0 }, { ptr, i64, i64 } { ptr @.str.6301, i64 46, i64 0 }) + %t9 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6302, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6303, i64 16, i64 0 }, { ptr, i64, i64 } { ptr @.str.6304, i64 22, i64 0 }) + %t10 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6305, i64 8, i64 0 }, { ptr, i64, i64 } { ptr @.str.6306, i64 21, i64 0 }, { ptr, i64, i64 } { ptr @.str.6307, i64 18, i64 0 }) + %t11 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6308, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6309, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6310, i64 37, i64 0 }) + %t12 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6311, i64 7, i64 0 }, { ptr, i64, i64 } { ptr @.str.6312, i64 9, i64 0 }, { ptr, i64, i64 } { ptr @.str.6313, i64 18, i64 0 }) + %t13 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6314, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6315, i64 32, i64 0 }, { ptr, i64, i64 } { ptr @.str.6316, i64 45, i64 0 }) + %t14 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6317, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6318, i64 20, i64 0 }, { ptr, i64, i64 } { ptr @.str.6319, i64 47, i64 0 }) %t15 = mul i64 14, ptrtoint (ptr getelementptr (%S.docs.Doc, ptr null, i32 1) to i64) %t16 = call ptr @finch_alloc(i64 %t15) %t17 = getelementptr inbounds %S.docs.Doc, ptr %t16, i64 0 @@ -92999,20 +97024,20 @@ entry: define internal { ptr, i64, i64 } @finch.docs.strMethods() { entry: - %t1 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6112, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6113, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6114, i64 20, i64 0 }) - %t2 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6115, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6116, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.6117, i64 59, i64 0 }) - %t3 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6118, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6119, i64 30, i64 0 }, { ptr, i64, i64 } { ptr @.str.6120, i64 29, i64 0 }) - %t4 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6121, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6122, i64 18, i64 0 }, { ptr, i64, i64 } { ptr @.str.6123, i64 22, i64 0 }) - %t5 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6124, i64 8, i64 0 }, { ptr, i64, i64 } { ptr @.str.6125, i64 23, i64 0 }, { ptr, i64, i64 } { ptr @.str.6126, i64 24, i64 0 }) - %t6 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6127, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6128, i64 26, i64 0 }, { ptr, i64, i64 } { ptr @.str.6129, i64 27, i64 0 }) - %t7 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6130, i64 9, i64 0 }, { ptr, i64, i64 } { ptr @.str.6131, i64 24, i64 0 }, { ptr, i64, i64 } { ptr @.str.6132, i64 25, i64 0 }) - %t8 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6133, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6134, i64 23, i64 0 }, { ptr, i64, i64 } { ptr @.str.6135, i64 62, i64 0 }) - %t9 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6136, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6137, i64 13, i64 0 }, { ptr, i64, i64 } { ptr @.str.6138, i64 41, i64 0 }) - %t10 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6139, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6140, i64 14, i64 0 }, { ptr, i64, i64 } { ptr @.str.6141, i64 24, i64 0 }) - %t11 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6142, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6143, i64 14, i64 0 }, { ptr, i64, i64 } { ptr @.str.6144, i64 24, i64 0 }) - %t12 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6145, i64 7, i64 0 }, { ptr, i64, i64 } { ptr @.str.6146, i64 32, i64 0 }, { ptr, i64, i64 } { ptr @.str.6147, i64 26, i64 0 }) - %t13 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6148, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6149, i64 20, i64 0 }, { ptr, i64, i64 } { ptr @.str.6150, i64 17, i64 0 }) - %t14 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6151, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6152, i64 15, i64 0 }, { ptr, i64, i64 } { ptr @.str.6153, i64 22, i64 0 }) + %t1 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6320, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6321, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6322, i64 20, i64 0 }) + %t2 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6323, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6324, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.6325, i64 59, i64 0 }) + %t3 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6326, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6327, i64 30, i64 0 }, { ptr, i64, i64 } { ptr @.str.6328, i64 29, i64 0 }) + %t4 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6329, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6330, i64 18, i64 0 }, { ptr, i64, i64 } { ptr @.str.6331, i64 22, i64 0 }) + %t5 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6332, i64 8, i64 0 }, { ptr, i64, i64 } { ptr @.str.6333, i64 23, i64 0 }, { ptr, i64, i64 } { ptr @.str.6334, i64 24, i64 0 }) + %t6 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6335, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6336, i64 26, i64 0 }, { ptr, i64, i64 } { ptr @.str.6337, i64 27, i64 0 }) + %t7 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6338, i64 9, i64 0 }, { ptr, i64, i64 } { ptr @.str.6339, i64 24, i64 0 }, { ptr, i64, i64 } { ptr @.str.6340, i64 25, i64 0 }) + %t8 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6341, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6342, i64 23, i64 0 }, { ptr, i64, i64 } { ptr @.str.6343, i64 62, i64 0 }) + %t9 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6344, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6345, i64 13, i64 0 }, { ptr, i64, i64 } { ptr @.str.6346, i64 41, i64 0 }) + %t10 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6347, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6348, i64 14, i64 0 }, { ptr, i64, i64 } { ptr @.str.6349, i64 24, i64 0 }) + %t11 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6350, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6351, i64 14, i64 0 }, { ptr, i64, i64 } { ptr @.str.6352, i64 24, i64 0 }) + %t12 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6353, i64 7, i64 0 }, { ptr, i64, i64 } { ptr @.str.6354, i64 32, i64 0 }, { ptr, i64, i64 } { ptr @.str.6355, i64 26, i64 0 }) + %t13 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6356, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6357, i64 20, i64 0 }, { ptr, i64, i64 } { ptr @.str.6358, i64 17, i64 0 }) + %t14 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6359, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6360, i64 15, i64 0 }, { ptr, i64, i64 } { ptr @.str.6361, i64 22, i64 0 }) %t15 = mul i64 14, ptrtoint (ptr getelementptr (%S.docs.Doc, ptr null, i32 1) to i64) %t16 = call ptr @finch_alloc(i64 %t15) %t17 = getelementptr inbounds %S.docs.Doc, ptr %t16, i64 0 @@ -93052,13 +97077,13 @@ entry: define internal { ptr, i64, i64 } @finch.docs.mapMethods() { entry: - %t1 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6154, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6155, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6156, i64 19, i64 0 }) - %t2 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6157, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6158, i64 18, i64 0 }, { ptr, i64, i64 } { ptr @.str.6159, i64 22, i64 0 }) - %t3 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6160, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6161, i64 26, i64 0 }, { ptr, i64, i64 } { ptr @.str.6162, i64 53, i64 0 }) - %t4 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6163, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6164, i64 21, i64 0 }, { ptr, i64, i64 } { ptr @.str.6165, i64 52, i64 0 }) - %t5 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6166, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6167, i64 7, i64 0 }, { ptr, i64, i64 } { ptr @.str.6168, i64 19, i64 0 }) - %t6 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6169, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6170, i64 13, i64 0 }, { ptr, i64, i64 } { ptr @.str.6171, i64 39, i64 0 }) - %t7 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6172, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6173, i64 15, i64 0 }, { ptr, i64, i64 } { ptr @.str.6174, i64 47, i64 0 }) + %t1 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6362, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6363, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6364, i64 19, i64 0 }) + %t2 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6365, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6366, i64 18, i64 0 }, { ptr, i64, i64 } { ptr @.str.6367, i64 22, i64 0 }) + %t3 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6368, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6369, i64 26, i64 0 }, { ptr, i64, i64 } { ptr @.str.6370, i64 53, i64 0 }) + %t4 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6371, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6372, i64 21, i64 0 }, { ptr, i64, i64 } { ptr @.str.6373, i64 52, i64 0 }) + %t5 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6374, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6375, i64 7, i64 0 }, { ptr, i64, i64 } { ptr @.str.6376, i64 19, i64 0 }) + %t6 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6377, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6378, i64 13, i64 0 }, { ptr, i64, i64 } { ptr @.str.6379, i64 39, i64 0 }) + %t7 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6380, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6381, i64 15, i64 0 }, { ptr, i64, i64 } { ptr @.str.6382, i64 47, i64 0 }) %t8 = mul i64 7, ptrtoint (ptr getelementptr (%S.docs.Doc, ptr null, i32 1) to i64) %t9 = call ptr @finch_alloc(i64 %t8) %t10 = getelementptr inbounds %S.docs.Doc, ptr %t9, i64 0 @@ -93087,49 +97112,49 @@ entry: %t1 = mul i64 22, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t2 = call ptr @finch_alloc(i64 %t1) %t3 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 0 - store { ptr, i64, i64 } { ptr @.str.6175, i64 2, i64 0 }, ptr %t3 + store { ptr, i64, i64 } { ptr @.str.6383, i64 2, i64 0 }, ptr %t3 %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 1 - store { ptr, i64, i64 } { ptr @.str.6176, i64 6, i64 0 }, ptr %t4 + store { ptr, i64, i64 } { ptr @.str.6384, i64 6, i64 0 }, ptr %t4 %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 2 - store { ptr, i64, i64 } { ptr @.str.6177, i64 2, i64 0 }, ptr %t5 + store { ptr, i64, i64 } { ptr @.str.6385, i64 2, i64 0 }, ptr %t5 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 3 - store { ptr, i64, i64 } { ptr @.str.6178, i64 4, i64 0 }, ptr %t6 + store { ptr, i64, i64 } { ptr @.str.6386, i64 4, i64 0 }, ptr %t6 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 4 - store { ptr, i64, i64 } { ptr @.str.6179, i64 5, i64 0 }, ptr %t7 + store { ptr, i64, i64 } { ptr @.str.6387, i64 5, i64 0 }, ptr %t7 %t8 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 5 - store { ptr, i64, i64 } { ptr @.str.6180, i64 3, i64 0 }, ptr %t8 + store { ptr, i64, i64 } { ptr @.str.6388, i64 3, i64 0 }, ptr %t8 %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 6 - store { ptr, i64, i64 } { ptr @.str.6181, i64 2, i64 0 }, ptr %t9 + store { ptr, i64, i64 } { ptr @.str.6389, i64 2, i64 0 }, ptr %t9 %t10 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 7 - store { ptr, i64, i64 } { ptr @.str.6182, i64 5, i64 0 }, ptr %t10 + store { ptr, i64, i64 } { ptr @.str.6390, i64 5, i64 0 }, ptr %t10 %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 8 - store { ptr, i64, i64 } { ptr @.str.6183, i64 8, i64 0 }, ptr %t11 + store { ptr, i64, i64 } { ptr @.str.6391, i64 8, i64 0 }, ptr %t11 %t12 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 9 - store { ptr, i64, i64 } { ptr @.str.6184, i64 4, i64 0 }, ptr %t12 + store { ptr, i64, i64 } { ptr @.str.6392, i64 4, i64 0 }, ptr %t12 %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 10 - store { ptr, i64, i64 } { ptr @.str.6185, i64 5, i64 0 }, ptr %t13 + store { ptr, i64, i64 } { ptr @.str.6393, i64 5, i64 0 }, ptr %t13 %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 11 - store { ptr, i64, i64 } { ptr @.str.6186, i64 4, i64 0 }, ptr %t14 + store { ptr, i64, i64 } { ptr @.str.6394, i64 4, i64 0 }, ptr %t14 %t15 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 12 - store { ptr, i64, i64 } { ptr @.str.6187, i64 6, i64 0 }, ptr %t15 + store { ptr, i64, i64 } { ptr @.str.6395, i64 6, i64 0 }, ptr %t15 %t16 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 13 - store { ptr, i64, i64 } { ptr @.str.6188, i64 4, i64 0 }, ptr %t16 + store { ptr, i64, i64 } { ptr @.str.6396, i64 4, i64 0 }, ptr %t16 %t17 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 14 - store { ptr, i64, i64 } { ptr @.str.6189, i64 6, i64 0 }, ptr %t17 + store { ptr, i64, i64 } { ptr @.str.6397, i64 6, i64 0 }, ptr %t17 %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 15 - store { ptr, i64, i64 } { ptr @.str.6190, i64 4, i64 0 }, ptr %t18 + store { ptr, i64, i64 } { ptr @.str.6398, i64 4, i64 0 }, ptr %t18 %t19 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 16 - store { ptr, i64, i64 } { ptr @.str.6191, i64 5, i64 0 }, ptr %t19 + store { ptr, i64, i64 } { ptr @.str.6399, i64 5, i64 0 }, ptr %t19 %t20 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 17 - store { ptr, i64, i64 } { ptr @.str.6192, i64 6, i64 0 }, ptr %t20 + store { ptr, i64, i64 } { ptr @.str.6400, i64 6, i64 0 }, ptr %t20 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 18 - store { ptr, i64, i64 } { ptr @.str.6193, i64 5, i64 0 }, ptr %t21 + store { ptr, i64, i64 } { ptr @.str.6401, i64 5, i64 0 }, ptr %t21 %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 19 - store { ptr, i64, i64 } { ptr @.str.6194, i64 2, i64 0 }, ptr %t22 + store { ptr, i64, i64 } { ptr @.str.6402, i64 2, i64 0 }, ptr %t22 %t23 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 20 - store { ptr, i64, i64 } { ptr @.str.6195, i64 3, i64 0 }, ptr %t23 + store { ptr, i64, i64 } { ptr @.str.6403, i64 3, i64 0 }, ptr %t23 %t24 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 21 - store { ptr, i64, i64 } { ptr @.str.6196, i64 4, i64 0 }, ptr %t24 + store { ptr, i64, i64 } { ptr @.str.6404, i64 4, i64 0 }, ptr %t24 %t25 = insertvalue { ptr, i64, i64 } undef, ptr %t2, 0 %t26 = insertvalue { ptr, i64, i64 } %t25, i64 22, 1 %t27 = insertvalue { ptr, i64, i64 } %t26, i64 22, 2 @@ -93142,39 +97167,39 @@ entry: %t1 = mul i64 17, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t2 = call ptr @finch_alloc(i64 %t1) %t3 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 0 - store { ptr, i64, i64 } { ptr @.str.6197, i64 3, i64 0 }, ptr %t3 + store { ptr, i64, i64 } { ptr @.str.6405, i64 3, i64 0 }, ptr %t3 %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 1 - store { ptr, i64, i64 } { ptr @.str.6198, i64 5, i64 0 }, ptr %t4 + store { ptr, i64, i64 } { ptr @.str.6406, i64 5, i64 0 }, ptr %t4 %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 2 - store { ptr, i64, i64 } { ptr @.str.6199, i64 4, i64 0 }, ptr %t5 + store { ptr, i64, i64 } { ptr @.str.6407, i64 4, i64 0 }, ptr %t5 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 3 - store { ptr, i64, i64 } { ptr @.str.6200, i64 4, i64 0 }, ptr %t6 + store { ptr, i64, i64 } { ptr @.str.6408, i64 4, i64 0 }, ptr %t6 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 4 - store { ptr, i64, i64 } { ptr @.str.6201, i64 3, i64 0 }, ptr %t7 + store { ptr, i64, i64 } { ptr @.str.6409, i64 3, i64 0 }, ptr %t7 %t8 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 5 - store { ptr, i64, i64 } { ptr @.str.6202, i64 3, i64 0 }, ptr %t8 + store { ptr, i64, i64 } { ptr @.str.6410, i64 3, i64 0 }, ptr %t8 %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 6 - store { ptr, i64, i64 } { ptr @.str.6203, i64 3, i64 0 }, ptr %t9 + store { ptr, i64, i64 } { ptr @.str.6411, i64 3, i64 0 }, ptr %t9 %t10 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 7 - store { ptr, i64, i64 } { ptr @.str.6204, i64 2, i64 0 }, ptr %t10 + store { ptr, i64, i64 } { ptr @.str.6412, i64 2, i64 0 }, ptr %t10 %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 8 - store { ptr, i64, i64 } { ptr @.str.6205, i64 3, i64 0 }, ptr %t11 + store { ptr, i64, i64 } { ptr @.str.6413, i64 3, i64 0 }, ptr %t11 %t12 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 9 - store { ptr, i64, i64 } { ptr @.str.6206, i64 3, i64 0 }, ptr %t12 + store { ptr, i64, i64 } { ptr @.str.6414, i64 3, i64 0 }, ptr %t12 %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 10 - store { ptr, i64, i64 } { ptr @.str.6207, i64 3, i64 0 }, ptr %t13 + store { ptr, i64, i64 } { ptr @.str.6415, i64 3, i64 0 }, ptr %t13 %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 11 - store { ptr, i64, i64 } { ptr @.str.6208, i64 2, i64 0 }, ptr %t14 + store { ptr, i64, i64 } { ptr @.str.6416, i64 2, i64 0 }, ptr %t14 %t15 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 12 - store { ptr, i64, i64 } { ptr @.str.6209, i64 3, i64 0 }, ptr %t15 + store { ptr, i64, i64 } { ptr @.str.6417, i64 3, i64 0 }, ptr %t15 %t16 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 13 - store { ptr, i64, i64 } { ptr @.str.6210, i64 3, i64 0 }, ptr %t16 + store { ptr, i64, i64 } { ptr @.str.6418, i64 3, i64 0 }, ptr %t16 %t17 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 14 - store { ptr, i64, i64 } { ptr @.str.6211, i64 3, i64 0 }, ptr %t17 + store { ptr, i64, i64 } { ptr @.str.6419, i64 3, i64 0 }, ptr %t17 %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 15 - store { ptr, i64, i64 } { ptr @.str.6212, i64 3, i64 0 }, ptr %t18 + store { ptr, i64, i64 } { ptr @.str.6420, i64 3, i64 0 }, ptr %t18 %t19 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 16 - store { ptr, i64, i64 } { ptr @.str.6213, i64 3, i64 0 }, ptr %t19 + store { ptr, i64, i64 } { ptr @.str.6421, i64 3, i64 0 }, ptr %t19 %t20 = insertvalue { ptr, i64, i64 } undef, ptr %t2, 0 %t21 = insertvalue { ptr, i64, i64 } %t20, i64 17, 1 %t22 = insertvalue { ptr, i64, i64 } %t21, i64 17, 2 @@ -93211,14 +97236,14 @@ entry: store { ptr, i64, i64 } %p0, ptr %a1 store { ptr, i64, i64 } %p1, ptr %a2 store i64 0, ptr %a3 - br label %each.cond8828 -each.cond8828: + br label %each.cond9233 +each.cond9233: %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t5 = load i64, ptr %t4 %t6 = load i64, ptr %a3 %t7 = icmp slt i64 %t6, %t5 - br i1 %t7, label %each.body8829, label %each.end8831 -each.body8829: + br i1 %t7, label %each.body9234, label %each.end9236 +each.body9234: %t8 = load ptr, ptr %a1 %t9 = getelementptr inbounds %S.docs.Doc, ptr %t8, i64 %t6 %t10 = load %S.docs.Doc, ptr %t9 @@ -93230,21 +97255,21 @@ each.body8829: store { ptr, i64, i64 } %t14, ptr %a16 %t17 = call i32 @finch_str_eq(ptr %a15, ptr %a16) %t18 = icmp ne i32 %t17, 0 - br i1 %t18, label %then8832, label %endif8834 -then8832: + br i1 %t18, label %then9237, label %endif9239 +then9237: %t19 = load %S.docs.Doc, ptr %a11 store %S.docs.Doc %t19, ptr %a20 call void @finch.copy.S_docs_Doc(ptr %a21, ptr %a20) %t22 = load %S.docs.Doc, ptr %a21 ret %S.docs.Doc %t22 -endif8834: - br label %each.step8830 -each.step8830: +endif9239: + br label %each.step9235 +each.step9235: %t23 = load i64, ptr %a3 %t24 = add i64 %t23, 1 store i64 %t24, ptr %a3 - br label %each.cond8828 -each.end8831: + br label %each.cond9233 +each.end9236: ret %S.docs.Doc zeroinitializer } @@ -93265,12 +97290,12 @@ entry: store %S.docs.Doc %p0, ptr %a1 %t2 = getelementptr inbounds %S.docs.Doc, ptr %a1, i32 0, i32 1 %t3 = load { ptr, i64, i64 }, ptr %t2 - store { ptr, i64, i64 } { ptr @.str.6214, i64 9, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.6422, i64 9, i64 0 }, ptr %a5 store { ptr, i64, i64 } %t3, ptr %a6 call void @finch_str_concat(ptr %a4, ptr %a5, ptr %a6) %t7 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t7, ptr %a9 - store { ptr, i64, i64 } { ptr @.str.6215, i64 5, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.6423, i64 5, i64 0 }, ptr %a10 call void @finch_str_concat(ptr %a8, ptr %a9, ptr %a10) store { ptr, i64, i64 } %t7, ptr %a11 call void @finch_str_drop(ptr %a11) @@ -93356,7 +97381,7 @@ entry: %a11 = alloca %S.ast.Type, align 16 store %S.ast.Type %p0, ptr %a1 store i64 %p1, ptr %a2 - %t3 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.6216, i64 5, i64 0 }, 0 + %t3 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.6424, i64 5, i64 0 }, 0 %t4 = load i64, ptr %a2 %t5 = insertvalue %S.ast.Type %t3, i64 %t4, 4 store %S.ast.Type %t5, ptr %a6 @@ -93477,7 +97502,7 @@ entry: store { ptr, i64, i64 } zeroinitializer, ptr %a2 %t3 = call { ptr, i64, i64 } @finch.host.tempDir() store { ptr, i64, i64 } %t3, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.6217, i64 15, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.6425, i64 15, i64 0 }, ptr %a6 call void @finch_str_concat(ptr %a4, ptr %a5, ptr %a6) store { ptr, i64, i64 } %t3, ptr %a7 call void @finch_str_drop(ptr %a7) @@ -93494,7 +97519,7 @@ entry: call void @finch_str_drop(ptr %a16) %t17 = load { ptr, i64, i64 }, ptr %a12 store { ptr, i64, i64 } %t17, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.6218, i64 4, i64 0 }, ptr %a20 + store { ptr, i64, i64 } { ptr @.str.6426, i64 4, i64 0 }, ptr %a20 call void @finch_str_concat(ptr %a18, ptr %a19, ptr %a20) store { ptr, i64, i64 } %t17, ptr %a21 call void @finch_str_drop(ptr %a21) @@ -93502,7 +97527,7 @@ entry: store { ptr, i64, i64 } %t22, ptr %a23 %t24 = call { ptr, i64, i64 } @finch.host.tempDir() store { ptr, i64, i64 } %t24, ptr %a26 - store { ptr, i64, i64 } { ptr @.str.6219, i64 13, i64 0 }, ptr %a27 + store { ptr, i64, i64 } { ptr @.str.6427, i64 13, i64 0 }, ptr %a27 call void @finch_str_concat(ptr %a25, ptr %a26, ptr %a27) store { ptr, i64, i64 } %t24, ptr %a28 call void @finch_str_drop(ptr %a28) @@ -93519,7 +97544,7 @@ entry: call void @finch_str_drop(ptr %a37) %t38 = load { ptr, i64, i64 }, ptr %a33 store { ptr, i64, i64 } %t38, ptr %a40 - store { ptr, i64, i64 } { ptr @.str.6220, i64 2, i64 0 }, ptr %a41 + store { ptr, i64, i64 } { ptr @.str.6428, i64 2, i64 0 }, ptr %a41 call void @finch_str_concat(ptr %a39, ptr %a40, ptr %a41) store { ptr, i64, i64 } %t38, ptr %a42 call void @finch_str_drop(ptr %a42) @@ -93527,12 +97552,12 @@ entry: store { ptr, i64, i64 } %t43, ptr %a44 %t45 = load { ptr, i64, i64 }, ptr %a44 store { ptr, i64, i64 } %t45, ptr %a46 - store { ptr, i64, i64 } { ptr @.str.6221, i64 0, i64 0 }, ptr %a47 + store { ptr, i64, i64 } { ptr @.str.6429, i64 0, i64 0 }, ptr %a47 %t48 = call i32 @finch_write_file(ptr %a46, ptr %a47) %t49 = icmp ne i32 %t48, 0 %t50 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t50, ptr %a52 - store { ptr, i64, i64 } { ptr @.str.6222, i64 12, i64 0 }, ptr %a53 + store { ptr, i64, i64 } { ptr @.str.6430, i64 12, i64 0 }, ptr %a53 call void @finch_str_concat(ptr %a51, ptr %a52, ptr %a53) %t54 = load { ptr, i64, i64 }, ptr %a51 %t55 = load { ptr, i64, i64 }, ptr %a44 @@ -93546,7 +97571,7 @@ entry: call void @finch_str_drop(ptr %a61) %t62 = load { ptr, i64, i64 }, ptr %a57 store { ptr, i64, i64 } %t62, ptr %a64 - store { ptr, i64, i64 } { ptr @.str.6223, i64 4, i64 0 }, ptr %a65 + store { ptr, i64, i64 } { ptr @.str.6431, i64 4, i64 0 }, ptr %a65 call void @finch_str_concat(ptr %a63, ptr %a64, ptr %a65) store { ptr, i64, i64 } %t62, ptr %a66 call void @finch_str_drop(ptr %a66) @@ -93562,7 +97587,7 @@ entry: call void @finch_str_drop(ptr %a74) %t75 = load { ptr, i64, i64 }, ptr %a70 store { ptr, i64, i64 } %t75, ptr %a77 - store { ptr, i64, i64 } { ptr @.str.6224, i64 3, i64 0 }, ptr %a78 + store { ptr, i64, i64 } { ptr @.str.6432, i64 3, i64 0 }, ptr %a78 call void @finch_str_concat(ptr %a76, ptr %a77, ptr %a78) store { ptr, i64, i64 } %t75, ptr %a79 call void @finch_str_drop(ptr %a79) @@ -93586,34 +97611,34 @@ entry: %t93 = call i32 @finch_file_exists(ptr %a92) %t94 = icmp ne i32 %t93, 0 %t95 = xor i1 %t94, true - br i1 %t95, label %then8835, label %endif8837 -then8835: + br i1 %t95, label %then9240, label %endif9242 +then9240: %t96 = load { ptr, i64, i64 }, ptr %a2 call void @finch_str_drop(ptr %a44) call void @finch_str_drop(ptr %a23) ret { ptr, i64, i64 } %t96 -endif8837: +endif9242: store i1 false, ptr %a97 %t98 = load { ptr, i64, i64 }, ptr %a23 store { ptr, i64, i64 } %t98, ptr %a99 - call void @finch_read_file(ptr %a100, ptr %a99, ptr @.str.6225, i64 114) + call void @finch_read_file(ptr %a100, ptr %a99, ptr @.str.6433, i64 114) %t101 = load { ptr, i64, i64 }, ptr %a100 store { ptr, i64, i64 } %t101, ptr %a102 - store { ptr, i64, i64 } { ptr @.str.6227, i64 1, i64 0 }, ptr %a104 + store { ptr, i64, i64 } { ptr @.str.6435, i64 1, i64 0 }, ptr %a104 call void @finch_str_split(ptr %a105, ptr %a102, ptr %a104) %t106 = load { ptr, i64, i64 }, ptr %a105 store { ptr, i64, i64 } %t101, ptr %a107 call void @finch_str_drop(ptr %a107) store { ptr, i64, i64 } %t106, ptr %a108 store i64 0, ptr %a109 - br label %each.cond8838 -each.cond8838: + br label %each.cond9243 +each.cond9243: %t110 = getelementptr inbounds { ptr, i64, i64 }, ptr %a108, i32 0, i32 1 %t111 = load i64, ptr %t110 %t112 = load i64, ptr %a109 %t113 = icmp slt i64 %t112, %t111 - br i1 %t113, label %each.body8839, label %each.end8841 -each.body8839: + br i1 %t113, label %each.body9244, label %each.end9246 +each.body9244: %t114 = load ptr, ptr %a108 %t115 = getelementptr inbounds { ptr, i64, i64 }, ptr %t114, i64 %t112 %t116 = load { ptr, i64, i64 }, ptr %t115 @@ -93625,60 +97650,60 @@ each.body8839: store { ptr, i64, i64 } %t121, ptr %a122 %t123 = load { ptr, i64, i64 }, ptr %a122 store { ptr, i64, i64 } %t123, ptr %a124 - store { ptr, i64, i64 } { ptr @.str.6230, i64 34, i64 0 }, ptr %a126 + store { ptr, i64, i64 } { ptr @.str.6438, i64 34, i64 0 }, ptr %a126 %t127 = call i32 @finch_str_starts(ptr %a124, ptr %a126) %t128 = icmp ne i32 %t127, 0 - br i1 %t128, label %then8842, label %endif8844 -then8842: + br i1 %t128, label %then9247, label %endif9249 +then9247: store i1 true, ptr %a97 call void @finch_str_drop(ptr %a122) - br label %each.step8840 -endif8844: + br label %each.step9245 +endif9249: %t129 = load { ptr, i64, i64 }, ptr %a122 store { ptr, i64, i64 } %t129, ptr %a130 - store { ptr, i64, i64 } { ptr @.str.6232, i64 19, i64 0 }, ptr %a132 + store { ptr, i64, i64 } { ptr @.str.6440, i64 19, i64 0 }, ptr %a132 %t133 = call i32 @finch_str_starts(ptr %a130, ptr %a132) %t134 = icmp ne i32 %t133, 0 - br i1 %t134, label %then8845, label %endif8847 -then8845: + br i1 %t134, label %then9250, label %endif9252 +then9250: call void @finch_str_drop(ptr %a122) - br label %each.end8841 -endif8847: + br label %each.end9246 +endif9252: %t135 = load i1, ptr %a97 %t136 = xor i1 %t135, true - br label %logic.from8848 -logic.from8848: - br i1 %t136, label %logic.end8850, label %logic.rhs8849 -logic.rhs8849: + br label %logic.from9253 +logic.from9253: + br i1 %t136, label %logic.end9255, label %logic.rhs9254 +logic.rhs9254: %t137 = getelementptr inbounds { ptr, i64, i64 }, ptr %a122, i32 0, i32 1 %t138 = load i64, ptr %t137 %t139 = icmp eq i64 %t138, 0 - br label %logic.rend8851 -logic.rend8851: - br label %logic.end8850 -logic.end8850: - %t140 = phi i1 [ true, %logic.from8848 ], [ %t139, %logic.rend8851 ] - br i1 %t140, label %then8852, label %endif8854 -then8852: + br label %logic.rend9256 +logic.rend9256: + br label %logic.end9255 +logic.end9255: + %t140 = phi i1 [ true, %logic.from9253 ], [ %t139, %logic.rend9256 ] + br i1 %t140, label %then9257, label %endif9259 +then9257: call void @finch_str_drop(ptr %a122) - br label %each.step8840 -endif8854: + br label %each.step9245 +endif9259: %t141 = load { ptr, i64, i64 }, ptr %a122 store { ptr, i64, i64 } %t141, ptr %a142 - store { ptr, i64, i64 } { ptr @.str.6234, i64 22, i64 0 }, ptr %a144 + store { ptr, i64, i64 } { ptr @.str.6442, i64 22, i64 0 }, ptr %a144 %t145 = call i32 @finch_str_ends(ptr %a142, ptr %a144) %t146 = icmp ne i32 %t145, 0 - br i1 %t146, label %then8855, label %else8856 -then8855: + br i1 %t146, label %then9260, label %else9261 +then9260: %t147 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t148 = load { ptr, i64, i64 }, ptr %a122 store { ptr, i64, i64 } %t148, ptr %a149 %t151 = getelementptr inbounds { ptr, i64, i64 }, ptr %a122, i32 0, i32 1 %t152 = load i64, ptr %t151 %t153 = sub i64 %t152, 22 - call void @finch_str_sub(ptr %a150, ptr %a149, i64 0, i64 %t153, ptr @.str.6236, i64 128) + call void @finch_str_sub(ptr %a150, ptr %a149, i64 0, i64 %t153, ptr @.str.6444, i64 128) %t154 = load { ptr, i64, i64 }, ptr %a150 - store { ptr, i64, i64 } { ptr @.str.6235, i64 11, i64 0 }, ptr %a156 + store { ptr, i64, i64 } { ptr @.str.6443, i64 11, i64 0 }, ptr %a156 store { ptr, i64, i64 } %t154, ptr %a157 call void @finch_str_concat(ptr %a155, ptr %a156, ptr %a157) store { ptr, i64, i64 } %t154, ptr %a158 @@ -93691,11 +97716,11 @@ then8855: %t163 = getelementptr inbounds { ptr, i64, i64 }, ptr %t162, i64 %t160 store { ptr, i64, i64 } %t159, ptr %t163 store i64 %t161, ptr %t147 - br label %endif8857 -else8856: + br label %endif9262 +else9261: %t164 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t165 = load { ptr, i64, i64 }, ptr %a122 - store { ptr, i64, i64 } { ptr @.str.6237, i64 8, i64 0 }, ptr %a167 + store { ptr, i64, i64 } { ptr @.str.6445, i64 8, i64 0 }, ptr %a167 store { ptr, i64, i64 } %t165, ptr %a168 call void @finch_str_concat(ptr %a166, ptr %a167, ptr %a168) %t169 = load { ptr, i64, i64 }, ptr %a166 @@ -93706,16 +97731,16 @@ else8856: %t173 = getelementptr inbounds { ptr, i64, i64 }, ptr %t172, i64 %t170 store { ptr, i64, i64 } %t169, ptr %t173 store i64 %t171, ptr %t164 - br label %endif8857 -endif8857: + br label %endif9262 +endif9262: call void @finch_str_drop(ptr %a122) - br label %each.step8840 -each.step8840: + br label %each.step9245 +each.step9245: %t174 = load i64, ptr %a109 %t175 = add i64 %t174, 1 store i64 %t175, ptr %a109 - br label %each.cond8838 -each.end8841: + br label %each.cond9243 +each.end9246: call void @finch.drop.arr_str(ptr %a108) %t176 = load { ptr, i64, i64 }, ptr %a23 call void @finch.host.remove({ ptr, i64, i64 } %t176) @@ -93774,38 +97799,38 @@ entry: store { ptr, i64, i64 } %t13, ptr %a14 %t15 = load ptr, ptr %a1 %t16 = icmp eq ptr %t15, null - br i1 %t16, label %panic8858, label %ok8859 -panic8858: - call void @finch_panic(ptr @.str.6238, i64 143, ptr @.str.6239) + br i1 %t16, label %panic9263, label %ok9264 +panic9263: + call void @finch_panic(ptr @.str.6446, i64 143, ptr @.str.6447) unreachable -ok8859: +ok9264: %t17 = getelementptr inbounds %S.cimport.Importer, ptr %t15, i32 0, i32 3 %t18 = load { ptr, i64, i64 }, ptr %a14 store { ptr, i64, i64 } %t18, ptr %a19 %t20 = call i64 @finch_map_find(ptr %t17, ptr %a19, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t21 = icmp sge i64 %t20, 0 - br i1 %t21, label %then8860, label %endif8862 -then8860: + br i1 %t21, label %then9265, label %endif9267 +then9265: %t22 = load ptr, ptr %a1 %t23 = icmp eq ptr %t22, null - br i1 %t23, label %panic8863, label %ok8864 -panic8863: - call void @finch_panic(ptr @.str.6240, i64 144, ptr @.str.6241) + br i1 %t23, label %panic9268, label %ok9269 +panic9268: + call void @finch_panic(ptr @.str.6448, i64 144, ptr @.str.6449) unreachable -ok8864: +ok9269: %t24 = getelementptr inbounds %S.cimport.Importer, ptr %t22, i32 0, i32 3 %t25 = load { ptr, i64, i64 }, ptr %a14 store { ptr, i64, i64 } %t25, ptr %a26 %t27 = call i64 @finch_map_find(ptr %t24, ptr %a26, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t28 = icmp slt i64 %t27, 0 - br i1 %t28, label %map.missing8865, label %map.found8866 -map.missing8865: + br i1 %t28, label %map.missing9270, label %map.found9271 +map.missing9270: store { ptr, i64, i64 } zeroinitializer, ptr %a29 store { ptr, i64, i64 } %t25, ptr %a30 call void @finch_buf_str(ptr %a29, ptr %a30, i32 1) - call void @finch_map_missing(ptr @.str.6242, i64 144, ptr %a29) + call void @finch_map_missing(ptr @.str.6450, i64 144, ptr %a29) unreachable -map.found8866: +map.found9271: %t31 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t24, i32 0, i32 0 %t32 = load ptr, ptr %t31 %t33 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t32, i64 %t27 @@ -93816,7 +97841,7 @@ map.found8866: %t38 = load { ptr, i64, i64 }, ptr %a37 call void @finch_str_drop(ptr %a14) ret { ptr, i64, i64 } %t38 -endif8862: +endif9267: %t39 = load %S.C.CXCursor, ptr %a7 store %S.C.CXCursor %t39, ptr %a40 %t41 = call [2 x i64] @clang_getCursorSpelling(ptr %a40) @@ -93827,45 +97852,45 @@ endif8862: %t46 = getelementptr inbounds { ptr, i64, i64 }, ptr %a45, i32 0, i32 1 %t47 = load i64, ptr %t46 %t48 = icmp eq i64 %t47, 0 - br label %logic.from8867 -logic.from8867: - br i1 %t48, label %logic.end8869, label %logic.rhs8868 -logic.rhs8868: + br label %logic.from9272 +logic.from9272: + br i1 %t48, label %logic.end9274, label %logic.rhs9273 +logic.rhs9273: %t49 = load { ptr, i64, i64 }, ptr %a45 store { ptr, i64, i64 } %t49, ptr %a50 - store { ptr, i64, i64 } { ptr @.str.6244, i64 1, i64 0 }, ptr %a52 + store { ptr, i64, i64 } { ptr @.str.6452, i64 1, i64 0 }, ptr %a52 %t53 = call i64 @finch_str_find(ptr %a50, ptr %a52) %t54 = icmp sge i64 %t53, 0 - br label %logic.rend8870 -logic.rend8870: - br label %logic.end8869 -logic.end8869: - %t55 = phi i1 [ true, %logic.from8867 ], [ %t54, %logic.rend8870 ] - br i1 %t55, label %then8871, label %endif8873 -then8871: + br label %logic.rend9275 +logic.rend9275: + br label %logic.end9274 +logic.end9274: + %t55 = phi i1 [ true, %logic.from9272 ], [ %t54, %logic.rend9275 ] + br i1 %t55, label %then9276, label %endif9278 +then9276: %t56 = load ptr, ptr %a1 %t57 = icmp eq ptr %t56, null - br i1 %t57, label %panic8874, label %ok8875 -panic8874: - call void @finch_panic(ptr @.str.6245, i64 148, ptr @.str.6246) + br i1 %t57, label %panic9279, label %ok9280 +panic9279: + call void @finch_panic(ptr @.str.6453, i64 148, ptr @.str.6454) unreachable -ok8875: +ok9280: %t58 = getelementptr inbounds %S.cimport.Importer, ptr %t56, i32 0, i32 5 %t59 = load i64, ptr %t58 %t60 = add i64 %t59, 1 store i64 %t60, ptr %t58 %t61 = load ptr, ptr %a1 %t62 = icmp eq ptr %t61, null - br i1 %t62, label %panic8876, label %ok8877 -panic8876: - call void @finch_panic(ptr @.str.6248, i64 149, ptr @.str.6249) + br i1 %t62, label %panic9281, label %ok9282 +panic9281: + call void @finch_panic(ptr @.str.6456, i64 149, ptr @.str.6457) unreachable -ok8877: +ok9282: %t63 = getelementptr inbounds %S.cimport.Importer, ptr %t61, i32 0, i32 5 %t64 = load i64, ptr %t63 call void @finch_str_from_int(ptr %a65, i64 %t64) %t66 = load { ptr, i64, i64 }, ptr %a65 - store { ptr, i64, i64 } { ptr @.str.6247, i64 12, i64 0 }, ptr %a68 + store { ptr, i64, i64 } { ptr @.str.6455, i64 12, i64 0 }, ptr %a68 store { ptr, i64, i64 } %t66, ptr %a69 call void @finch_str_concat(ptr %a67, ptr %a68, ptr %a69) store { ptr, i64, i64 } %t66, ptr %a70 @@ -93875,16 +97900,16 @@ ok8877: store { ptr, i64, i64 } %t71, ptr %a45 store { ptr, i64, i64 } %t72, ptr %a73 call void @finch_str_drop(ptr %a73) - br label %endif8873 -endif8873: + br label %endif9278 +endif9278: %t74 = load { ptr, i64, i64 }, ptr %a45 %t75 = load ptr, ptr %a1 %t76 = icmp eq ptr %t75, null - br i1 %t76, label %panic8878, label %ok8879 -panic8878: - call void @finch_panic(ptr @.str.6250, i64 151, ptr @.str.6251) + br i1 %t76, label %panic9283, label %ok9284 +panic9283: + call void @finch_panic(ptr @.str.6458, i64 151, ptr @.str.6459) unreachable -ok8879: +ok9284: %t77 = getelementptr inbounds %S.cimport.Importer, ptr %t75, i32 0, i32 3 %t78 = load { ptr, i64, i64 }, ptr %a14 store { ptr, i64, i64 } %t78, ptr %a79 @@ -93895,14 +97920,14 @@ ok8879: %t84 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t83, i64 %t81 %t85 = load i32, ptr %a80 %t86 = icmp ne i32 %t85, 0 - br i1 %t86, label %map.new8880, label %map.have8881 -map.new8880: + br i1 %t86, label %map.new9285, label %map.have9286 +map.new9285: %t87 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t84, i32 0, i32 1 call void @finch_str_copy(ptr %t87, ptr %a79) %t88 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t84, i32 0, i32 2 store { ptr, i64, i64 } zeroinitializer, ptr %t88 - br label %map.have8881 -map.have8881: + br label %map.have9286 +map.have9286: %t89 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t84, i32 0, i32 2 store { ptr, i64, i64 } %t74, ptr %a90 call void @finch_str_copy(ptr %a91, ptr %a90) @@ -93985,63 +98010,63 @@ entry: store { ptr, i64, i64 } %t22, ptr %a23 %t24 = load ptr, ptr %a1 %t25 = icmp eq ptr %t24, null - br i1 %t25, label %panic8882, label %ok8883 -panic8882: - call void @finch_panic(ptr @.str.6252, i64 161, ptr @.str.6253) + br i1 %t25, label %panic9287, label %ok9288 +panic9287: + call void @finch_panic(ptr @.str.6460, i64 161, ptr @.str.6461) unreachable -ok8883: +ok9288: %t26 = getelementptr inbounds %S.cimport.Importer, ptr %t24, i32 0, i32 0 %t27 = getelementptr inbounds %S.cimport.CImports, ptr %t26, i32 0, i32 3 %t28 = load { ptr, i64, i64 }, ptr %a23 store { ptr, i64, i64 } %t28, ptr %a29 %t30 = call i64 @finch_map_find(ptr %t27, ptr %a29, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t31 = icmp sge i64 %t30, 0 - br label %logic.from8884 -logic.from8884: - br i1 %t31, label %logic.end8886, label %logic.rhs8885 -logic.rhs8885: + br label %logic.from9289 +logic.from9289: + br i1 %t31, label %logic.end9291, label %logic.rhs9290 +logic.rhs9290: %t32 = load ptr, ptr %a1 %t33 = icmp eq ptr %t32, null - br i1 %t33, label %panic8887, label %ok8888 -panic8887: - call void @finch_panic(ptr @.str.6254, i64 161, ptr @.str.6255) + br i1 %t33, label %panic9292, label %ok9293 +panic9292: + call void @finch_panic(ptr @.str.6462, i64 161, ptr @.str.6463) unreachable -ok8888: +ok9293: %t34 = getelementptr inbounds %S.cimport.Importer, ptr %t32, i32 0, i32 4 %t35 = load { ptr, i64, i64 }, ptr %a19 store { ptr, i64, i64 } %t35, ptr %a36 %t37 = call i64 @finch_map_find(ptr %t34, ptr %a36, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, i1 }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t38 = icmp sge i64 %t37, 0 - br label %logic.rend8889 -logic.rend8889: - br label %logic.end8886 -logic.end8886: - %t39 = phi i1 [ true, %logic.from8884 ], [ %t38, %logic.rend8889 ] - br i1 %t39, label %then8890, label %endif8892 -then8890: + br label %logic.rend9294 +logic.rend9294: + br label %logic.end9291 +logic.end9291: + %t39 = phi i1 [ true, %logic.from9289 ], [ %t38, %logic.rend9294 ] + br i1 %t39, label %then9295, label %endif9297 +then9295: %t40 = load { ptr, i64, i64 }, ptr %a23 call void @finch_str_drop(ptr %a19) ret { ptr, i64, i64 } %t40 -endif8892: +endif9297: %t41 = load %S.C.CXType, ptr %a7 store %S.C.CXType %t41, ptr %a42 %t43 = call i64 @clang_Type_getSizeOf(ptr %a42) store i64 %t43, ptr %a44 %t45 = load i64, ptr %a44 %t46 = icmp slt i64 %t45, 0 - br i1 %t46, label %then8893, label %endif8895 -then8893: + br i1 %t46, label %then9298, label %endif9300 +then9298: call void @finch_str_drop(ptr %a23) call void @finch_str_drop(ptr %a19) - ret { ptr, i64, i64 } { ptr @.str.6256, i64 0, i64 0 } -endif8895: + ret { ptr, i64, i64 } { ptr @.str.6464, i64 0, i64 0 } +endif9300: %t47 = load ptr, ptr %a1 %t48 = icmp eq ptr %t47, null - br i1 %t48, label %panic8896, label %ok8897 -panic8896: - call void @finch_panic(ptr @.str.6257, i64 168, ptr @.str.6258) + br i1 %t48, label %panic9301, label %ok9302 +panic9301: + call void @finch_panic(ptr @.str.6465, i64 168, ptr @.str.6466) unreachable -ok8897: +ok9302: %t49 = getelementptr inbounds %S.cimport.Importer, ptr %t47, i32 0, i32 4 %t50 = load { ptr, i64, i64 }, ptr %a19 store { ptr, i64, i64 } %t50, ptr %a51 @@ -94052,14 +98077,14 @@ ok8897: %t56 = getelementptr inbounds { i64, { ptr, i64, i64 }, i1 }, ptr %t55, i64 %t53 %t57 = load i32, ptr %a52 %t58 = icmp ne i32 %t57, 0 - br i1 %t58, label %map.new8898, label %map.have8899 -map.new8898: + br i1 %t58, label %map.new9303, label %map.have9304 +map.new9303: %t59 = getelementptr inbounds { i64, { ptr, i64, i64 }, i1 }, ptr %t56, i32 0, i32 1 call void @finch_str_copy(ptr %t59, ptr %a51) %t60 = getelementptr inbounds { i64, { ptr, i64, i64 }, i1 }, ptr %t56, i32 0, i32 2 store i1 false, ptr %t60 - br label %map.have8899 -map.have8899: + br label %map.have9304 +map.have9304: %t61 = getelementptr inbounds { i64, { ptr, i64, i64 }, i1 }, ptr %t56, i32 0, i32 2 store i1 true, ptr %t61 %t62 = load { ptr, i64, i64 }, ptr %a23 @@ -94078,15 +98103,15 @@ map.have8899: store %S.C.CXCursor %t74, ptr %a75 %t76 = call i32 @clang_getCursorKind(ptr %a75) %t77 = icmp eq i32 %t76, 3 - br i1 %t77, label %then8900, label %endif8902 -then8900: + br i1 %t77, label %then9305, label %endif9307 +then9305: %t78 = getelementptr inbounds %S.cimport.CStruct, ptr %a73, i32 0, i32 4 %t79 = load { ptr, i64, i64 }, ptr %t78 - store { ptr, i64, i64 } { ptr @.str.6259, i64 12, i64 0 }, ptr %t78 + store { ptr, i64, i64 } { ptr @.str.6467, i64 12, i64 0 }, ptr %t78 store { ptr, i64, i64 } %t79, ptr %a80 call void @finch_str_drop(ptr %a80) - br label %endif8902 -endif8902: + br label %endif9307 +endif9307: %t81 = load ptr, ptr %a1 %t82 = insertvalue %S.cimport.FieldCtx zeroinitializer, ptr %t81, 0 %t83 = insertvalue %S.cimport.FieldCtx %t82, ptr %a73, 1 @@ -94096,18 +98121,18 @@ endif8902: %t87 = call i32 @clang_Type_visitFields(ptr %a86, ptr @finch.c.cimport.visitField, ptr %a84) %t88 = load ptr, ptr %a1 %t89 = icmp eq ptr %t88, null - br i1 %t89, label %panic8903, label %ok8904 -panic8903: - call void @finch_panic(ptr @.str.6260, i64 176, ptr @.str.6261) + br i1 %t89, label %panic9308, label %ok9309 +panic9308: + call void @finch_panic(ptr @.str.6468, i64 176, ptr @.str.6469) unreachable -ok8904: +ok9309: %t90 = getelementptr inbounds %S.cimport.Importer, ptr %t88, i32 0, i32 4 %t91 = load { ptr, i64, i64 }, ptr %a19 store { ptr, i64, i64 } %t91, ptr %a92 %t93 = call i64 @finch_map_find(ptr %t90, ptr %a92, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, i1 }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t94 = icmp sge i64 %t93, 0 - br i1 %t94, label %remove.hit8905, label %remove.end8906 -remove.hit8905: + br i1 %t94, label %remove.hit9310, label %remove.end9311 +remove.hit9310: %t95 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t90, i32 0, i32 0 %t96 = load ptr, ptr %t95 %t97 = getelementptr inbounds { i64, { ptr, i64, i64 }, i1 }, ptr %t96, i64 %t93 @@ -94115,16 +98140,16 @@ remove.hit8905: call void @finch_str_drop(ptr %t98) %t99 = getelementptr inbounds { i64, { ptr, i64, i64 }, i1 }, ptr %t97, i32 0, i32 2 call void @finch_map_remove_at(ptr %t90, i64 %t93, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, i1 }, ptr null, i32 1) to i64)) - br label %remove.end8906 -remove.end8906: + br label %remove.end9311 +remove.end9311: %t100 = load %S.cimport.CStruct, ptr %a73 %t101 = load ptr, ptr %a1 %t102 = icmp eq ptr %t101, null - br i1 %t102, label %panic8907, label %ok8908 -panic8907: - call void @finch_panic(ptr @.str.6262, i64 177, ptr @.str.6263) + br i1 %t102, label %panic9312, label %ok9313 +panic9312: + call void @finch_panic(ptr @.str.6470, i64 177, ptr @.str.6471) unreachable -ok8908: +ok9313: %t103 = getelementptr inbounds %S.cimport.Importer, ptr %t101, i32 0, i32 0 %t104 = getelementptr inbounds %S.cimport.CImports, ptr %t103, i32 0, i32 3 %t105 = load { ptr, i64, i64 }, ptr %a23 @@ -94136,14 +98161,14 @@ ok8908: %t111 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr %t110, i64 %t108 %t112 = load i32, ptr %a107 %t113 = icmp ne i32 %t112, 0 - br i1 %t113, label %map.new8909, label %map.have8910 -map.new8909: + br i1 %t113, label %map.new9314, label %map.have9315 +map.new9314: %t114 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr %t111, i32 0, i32 1 call void @finch_str_copy(ptr %t114, ptr %a106) %t115 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr %t111, i32 0, i32 2 store %S.cimport.CStruct zeroinitializer, ptr %t115 - br label %map.have8910 -map.have8910: + br label %map.have9315 +map.have9315: %t116 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr %t111, i32 0, i32 2 store %S.cimport.CStruct %t100, ptr %a117 call void @finch.copy.S_cimport_CStruct(ptr %a118, ptr %a117) @@ -94154,11 +98179,11 @@ map.have8910: call void @finch.drop.S_cimport_CStruct(ptr %a121) %t122 = load ptr, ptr %a1 %t123 = icmp eq ptr %t122, null - br i1 %t123, label %panic8911, label %ok8912 -panic8911: - call void @finch_panic(ptr @.str.6264, i64 178, ptr @.str.6265) + br i1 %t123, label %panic9316, label %ok9317 +panic9316: + call void @finch_panic(ptr @.str.6472, i64 178, ptr @.str.6473) unreachable -ok8912: +ok9317: %t124 = getelementptr inbounds %S.cimport.Importer, ptr %t122, i32 0, i32 0 %t125 = getelementptr inbounds %S.cimport.CImports, ptr %t124, i32 0, i32 4 %t126 = getelementptr inbounds { ptr, i64, i64 }, ptr %t125, i32 0, i32 1 @@ -94256,39 +98281,39 @@ entry: store %S.C.CXCursor %t34, ptr %a35 %t36 = call i32 @clang_Cursor_isBitField(ptr %a35) %t37 = icmp ne i32 %t36, 0 - br i1 %t37, label %then8913, label %else8914 -then8913: + br i1 %t37, label %then9318, label %else9319 +then9318: %t38 = load ptr, ptr %a4 %t39 = icmp eq ptr %t38, null - br i1 %t39, label %panic8916, label %ok8917 -panic8916: - call void @finch_panic(ptr @.str.6267, i64 195, ptr @.str.6268) + br i1 %t39, label %panic9321, label %ok9322 +panic9321: + call void @finch_panic(ptr @.str.6475, i64 195, ptr @.str.6476) unreachable -ok8917: +ok9322: %t40 = getelementptr inbounds %S.cimport.FieldCtx, ptr %t38, i32 0, i32 1 %t41 = load ptr, ptr %t40 %t42 = icmp eq ptr %t41, null - br i1 %t42, label %panic8918, label %ok8919 -panic8918: - call void @finch_panic(ptr @.str.6269, i64 195, ptr @.str.6270) + br i1 %t42, label %panic9323, label %ok9324 +panic9323: + call void @finch_panic(ptr @.str.6477, i64 195, ptr @.str.6478) unreachable -ok8919: +ok9324: %t43 = getelementptr inbounds %S.cimport.CStruct, ptr %t41, i32 0, i32 4 %t44 = load { ptr, i64, i64 }, ptr %t43 - store { ptr, i64, i64 } { ptr @.str.6266, i64 14, i64 0 }, ptr %t43 + store { ptr, i64, i64 } { ptr @.str.6474, i64 14, i64 0 }, ptr %t43 store { ptr, i64, i64 } %t44, ptr %a45 call void @finch_str_drop(ptr %a45) %t46 = getelementptr inbounds %S.cimport.CField, ptr %a12, i32 0, i32 5 store i1 true, ptr %t46 - br label %endif8915 -else8914: + br label %endif9320 +else9319: %t47 = getelementptr inbounds %S.C.CXType, ptr %a20, i32 0, i32 0 %t48 = load i32, ptr %t47 %t49 = icmp eq i32 %t48, 105 - br label %logic.from8920 -logic.from8920: - br i1 %t49, label %logic.rhs8921, label %logic.end8922 -logic.rhs8921: + br label %logic.from9325 +logic.from9325: + br i1 %t49, label %logic.rhs9326, label %logic.end9327 +logic.rhs9326: %t51 = load %S.C.CXType, ptr %a20 store %S.C.CXType %t51, ptr %a52 call void @clang_getTypeDeclaration(ptr sret(%S.C.CXCursor) align 16 %a50, ptr %a52) @@ -94296,24 +98321,24 @@ logic.rhs8921: store %S.C.CXCursor %t53, ptr %a54 %t55 = call i32 @clang_getCursorKind(ptr %a54) %t56 = icmp eq i32 %t55, 3 - br label %logic.rend8923 -logic.rend8923: - br label %logic.end8922 -logic.end8922: - %t57 = phi i1 [ false, %logic.from8920 ], [ %t56, %logic.rend8923 ] - br i1 %t57, label %then8924, label %else8925 -then8924: + br label %logic.rend9328 +logic.rend9328: + br label %logic.end9327 +logic.end9327: + %t57 = phi i1 [ false, %logic.from9325 ], [ %t56, %logic.rend9328 ] + br i1 %t57, label %then9329, label %else9330 +then9329: %t58 = getelementptr inbounds %S.cimport.CField, ptr %a12, i32 0, i32 5 store i1 true, ptr %t58 - br label %endif8926 -else8925: + br label %endif9331 +else9330: %t59 = load ptr, ptr %a4 %t60 = icmp eq ptr %t59, null - br i1 %t60, label %panic8927, label %ok8928 -panic8927: - call void @finch_panic(ptr @.str.6271, i64 200, ptr @.str.6272) + br i1 %t60, label %panic9332, label %ok9333 +panic9332: + call void @finch_panic(ptr @.str.6479, i64 200, ptr @.str.6480) unreachable -ok8928: +ok9333: %t61 = getelementptr inbounds %S.cimport.FieldCtx, ptr %t59, i32 0, i32 0 %t62 = load ptr, ptr %t61 %t63 = load %S.C.CXType, ptr %a20 @@ -94321,8 +98346,8 @@ ok8928: store %S.cimport.Mapped %t64, ptr %a65 %t66 = getelementptr inbounds %S.cimport.Mapped, ptr %a65, i32 0, i32 2 %t67 = load i1, ptr %t66 - br i1 %t67, label %then8929, label %else8930 -then8929: + br i1 %t67, label %then9334, label %else9335 +then9334: %t68 = getelementptr inbounds %S.cimport.Mapped, ptr %a65, i32 0, i32 0 %t69 = load %S.ast.Type, ptr %t68 %t70 = getelementptr inbounds %S.cimport.CField, ptr %a12, i32 0, i32 1 @@ -94333,65 +98358,65 @@ then8929: store %S.ast.Type %t73, ptr %t70 store %S.ast.Type %t74, ptr %a75 call void @finch.drop.S_ast_Type(ptr %a75) - br label %endif8931 -else8930: + br label %endif9336 +else9335: %t76 = getelementptr inbounds %S.cimport.CField, ptr %a12, i32 0, i32 5 store i1 true, ptr %t76 - br label %endif8931 -endif8931: + br label %endif9336 +endif9336: call void @finch.drop.S_cimport_Mapped(ptr %a65) - br label %endif8926 -endif8926: - br label %endif8915 -endif8915: + br label %endif9331 +endif9331: + br label %endif9320 +endif9320: %t77 = getelementptr inbounds %S.cimport.CField, ptr %a12, i32 0, i32 5 %t78 = load i1, ptr %t77 - br i1 %t78, label %then8932, label %endif8934 -then8932: + br i1 %t78, label %then9337, label %endif9339 +then9337: %t79 = load ptr, ptr %a4 %t80 = icmp eq ptr %t79, null - br i1 %t80, label %panic8935, label %ok8936 -panic8935: - call void @finch_panic(ptr @.str.6273, i64 208, ptr @.str.6274) + br i1 %t80, label %panic9340, label %ok9341 +panic9340: + call void @finch_panic(ptr @.str.6481, i64 208, ptr @.str.6482) unreachable -ok8936: +ok9341: %t81 = getelementptr inbounds %S.cimport.FieldCtx, ptr %t79, i32 0, i32 1 %t82 = load ptr, ptr %t81 %t83 = icmp eq ptr %t82, null - br i1 %t83, label %panic8937, label %ok8938 -panic8937: - call void @finch_panic(ptr @.str.6275, i64 208, ptr @.str.6276) + br i1 %t83, label %panic9342, label %ok9343 +panic9342: + call void @finch_panic(ptr @.str.6483, i64 208, ptr @.str.6484) unreachable -ok8938: +ok9343: %t84 = getelementptr inbounds %S.cimport.CStruct, ptr %t82, i32 0, i32 5 store i1 true, ptr %t84 - br label %endif8934 -endif8934: + br label %endif9339 +endif9339: %t85 = getelementptr inbounds %S.cimport.CField, ptr %a12, i32 0, i32 0 %t86 = getelementptr inbounds { ptr, i64, i64 }, ptr %t85, i32 0, i32 1 %t87 = load i64, ptr %t86 %t88 = icmp eq i64 %t87, 0 - br i1 %t88, label %then8939, label %endif8941 -then8939: + br i1 %t88, label %then9344, label %endif9346 +then9344: %t89 = getelementptr inbounds %S.cimport.CField, ptr %a12, i32 0, i32 5 store i1 true, ptr %t89 - br label %endif8941 -endif8941: + br label %endif9346 +endif9346: %t90 = load ptr, ptr %a4 %t91 = icmp eq ptr %t90, null - br i1 %t91, label %panic8942, label %ok8943 -panic8942: - call void @finch_panic(ptr @.str.6277, i64 213, ptr @.str.6278) + br i1 %t91, label %panic9347, label %ok9348 +panic9347: + call void @finch_panic(ptr @.str.6485, i64 213, ptr @.str.6486) unreachable -ok8943: +ok9348: %t92 = getelementptr inbounds %S.cimport.FieldCtx, ptr %t90, i32 0, i32 1 %t93 = load ptr, ptr %t92 %t94 = icmp eq ptr %t93, null - br i1 %t94, label %panic8944, label %ok8945 -panic8944: - call void @finch_panic(ptr @.str.6279, i64 213, ptr @.str.6280) + br i1 %t94, label %panic9349, label %ok9350 +panic9349: + call void @finch_panic(ptr @.str.6487, i64 213, ptr @.str.6488) unreachable -ok8945: +ok9350: %t95 = getelementptr inbounds %S.cimport.CStruct, ptr %t93, i32 0, i32 1 %t96 = getelementptr inbounds { ptr, i64, i64 }, ptr %t95, i32 0, i32 1 %t97 = load %S.cimport.CField, ptr %a12 @@ -94435,92 +98460,92 @@ entry: store i1 %p1, ptr %a2 %t3 = load i64, ptr %a1 %t4 = icmp eq i64 %t3, 1 - br i1 %t4, label %then8946, label %endif8948 -then8946: + br i1 %t4, label %then9351, label %endif9353 +then9351: %t5 = load i1, ptr %a2 - br i1 %t5, label %then8949, label %endif8951 -then8949: - %t6 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6281, i64 2, i64 0 }) + br i1 %t5, label %then9354, label %endif9356 +then9354: + %t6 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6489, i64 2, i64 0 }) %t7 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t6) store %S.ast.Type %t6, ptr %a8 call void @finch.drop.S_ast_Type(ptr %a8) ret %S.cimport.Mapped %t7 -endif8951: - %t9 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6282, i64 2, i64 0 }) +endif9356: + %t9 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6490, i64 2, i64 0 }) %t10 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t9) store %S.ast.Type %t9, ptr %a11 call void @finch.drop.S_ast_Type(ptr %a11) ret %S.cimport.Mapped %t10 -endif8948: +endif9353: %t12 = load i64, ptr %a1 %t13 = icmp eq i64 %t12, 2 - br i1 %t13, label %then8952, label %endif8954 -then8952: + br i1 %t13, label %then9357, label %endif9359 +then9357: %t14 = load i1, ptr %a2 - br i1 %t14, label %then8955, label %endif8957 -then8955: - %t15 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6283, i64 3, i64 0 }) + br i1 %t14, label %then9360, label %endif9362 +then9360: + %t15 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6491, i64 3, i64 0 }) %t16 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t15) store %S.ast.Type %t15, ptr %a17 call void @finch.drop.S_ast_Type(ptr %a17) ret %S.cimport.Mapped %t16 -endif8957: - %t18 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6284, i64 3, i64 0 }) +endif9362: + %t18 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6492, i64 3, i64 0 }) %t19 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t18) store %S.ast.Type %t18, ptr %a20 call void @finch.drop.S_ast_Type(ptr %a20) ret %S.cimport.Mapped %t19 -endif8954: +endif9359: %t21 = load i64, ptr %a1 %t22 = icmp eq i64 %t21, 4 - br i1 %t22, label %then8958, label %endif8960 -then8958: + br i1 %t22, label %then9363, label %endif9365 +then9363: %t23 = load i1, ptr %a2 - br i1 %t23, label %then8961, label %endif8963 -then8961: - %t24 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6285, i64 3, i64 0 }) + br i1 %t23, label %then9366, label %endif9368 +then9366: + %t24 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6493, i64 3, i64 0 }) %t25 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t24) store %S.ast.Type %t24, ptr %a26 call void @finch.drop.S_ast_Type(ptr %a26) ret %S.cimport.Mapped %t25 -endif8963: - %t27 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6286, i64 3, i64 0 }) +endif9368: + %t27 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6494, i64 3, i64 0 }) %t28 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t27) store %S.ast.Type %t27, ptr %a29 call void @finch.drop.S_ast_Type(ptr %a29) ret %S.cimport.Mapped %t28 -endif8960: +endif9365: %t30 = load i64, ptr %a1 %t31 = icmp eq i64 %t30, 8 - br i1 %t31, label %then8964, label %endif8966 -then8964: + br i1 %t31, label %then9369, label %endif9371 +then9369: %t32 = load i1, ptr %a2 - br i1 %t32, label %then8967, label %endif8969 -then8967: - %t33 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6287, i64 3, i64 0 }) + br i1 %t32, label %then9372, label %endif9374 +then9372: + %t33 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6495, i64 3, i64 0 }) %t34 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t33) store %S.ast.Type %t33, ptr %a35 call void @finch.drop.S_ast_Type(ptr %a35) ret %S.cimport.Mapped %t34 -endif8969: - %t36 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6288, i64 3, i64 0 }) +endif9374: + %t36 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6496, i64 3, i64 0 }) %t37 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t36) store %S.ast.Type %t36, ptr %a38 call void @finch.drop.S_ast_Type(ptr %a38) ret %S.cimport.Mapped %t37 -endif8966: +endif9371: %t39 = load i64, ptr %a1 %t40 = mul i64 %t39, 8 call void @finch_str_from_int(ptr %a41, i64 %t40) %t42 = load { ptr, i64, i64 }, ptr %a41 - store { ptr, i64, i64 } { ptr @.str.6289, i64 7, i64 0 }, ptr %a44 + store { ptr, i64, i64 } { ptr @.str.6497, i64 7, i64 0 }, ptr %a44 store { ptr, i64, i64 } %t42, ptr %a45 call void @finch_str_concat(ptr %a43, ptr %a44, ptr %a45) store { ptr, i64, i64 } %t42, ptr %a46 call void @finch_str_drop(ptr %a46) %t47 = load { ptr, i64, i64 }, ptr %a43 store { ptr, i64, i64 } %t47, ptr %a49 - store { ptr, i64, i64 } { ptr @.str.6290, i64 11, i64 0 }, ptr %a50 + store { ptr, i64, i64 } { ptr @.str.6498, i64 11, i64 0 }, ptr %a50 call void @finch_str_concat(ptr %a48, ptr %a49, ptr %a50) store { ptr, i64, i64 } %t47, ptr %a51 call void @finch_str_drop(ptr %a51) @@ -94604,181 +98629,181 @@ entry: store i32 %t15, ptr %a16 %t17 = load i32, ptr %a16 %t18 = icmp eq i32 %t17, 2 - br i1 %t18, label %then8970, label %endif8972 -then8970: - %t19 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6291, i64 4, i64 0 }) + br i1 %t18, label %then9375, label %endif9377 +then9375: + %t19 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6499, i64 4, i64 0 }) %t20 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t19) store %S.ast.Type %t19, ptr %a21 call void @finch.drop.S_ast_Type(ptr %a21) ret %S.cimport.Mapped %t20 -endif8972: +endif9377: %t22 = load i32, ptr %a16 %t23 = icmp eq i32 %t22, 3 - br i1 %t23, label %then8973, label %endif8975 -then8973: - %t24 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6292, i64 4, i64 0 }) + br i1 %t23, label %then9378, label %endif9380 +then9378: + %t24 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6500, i64 4, i64 0 }) %t25 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t24) store %S.ast.Type %t24, ptr %a26 call void @finch.drop.S_ast_Type(ptr %a26) ret %S.cimport.Mapped %t25 -endif8975: +endif9380: %t27 = load i32, ptr %a16 %t28 = icmp eq i32 %t27, 13 - br label %logic.from8976 -logic.from8976: - br i1 %t28, label %logic.end8978, label %logic.rhs8977 -logic.rhs8977: + br label %logic.from9381 +logic.from9381: + br i1 %t28, label %logic.end9383, label %logic.rhs9382 +logic.rhs9382: %t29 = load i32, ptr %a16 %t30 = icmp eq i32 %t29, 4 - br label %logic.rend8979 -logic.rend8979: - br label %logic.end8978 -logic.end8978: - %t31 = phi i1 [ true, %logic.from8976 ], [ %t30, %logic.rend8979 ] - br i1 %t31, label %then8980, label %endif8982 -then8980: - %t32 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6293, i64 4, i64 0 }) + br label %logic.rend9384 +logic.rend9384: + br label %logic.end9383 +logic.end9383: + %t31 = phi i1 [ true, %logic.from9381 ], [ %t30, %logic.rend9384 ] + br i1 %t31, label %then9385, label %endif9387 +then9385: + %t32 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6501, i64 4, i64 0 }) %t33 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t32) store %S.ast.Type %t32, ptr %a34 call void @finch.drop.S_ast_Type(ptr %a34) ret %S.cimport.Mapped %t33 -endif8982: +endif9387: %t35 = load i32, ptr %a16 %t36 = icmp eq i32 %t35, 14 - br label %logic.from8983 -logic.from8983: - br i1 %t36, label %logic.end8985, label %logic.rhs8984 -logic.rhs8984: + br label %logic.from9388 +logic.from9388: + br i1 %t36, label %logic.end9390, label %logic.rhs9389 +logic.rhs9389: %t37 = load i32, ptr %a16 %t38 = icmp eq i32 %t37, 16 - br label %logic.rend8986 -logic.rend8986: - br label %logic.end8985 -logic.end8985: - %t39 = phi i1 [ true, %logic.from8983 ], [ %t38, %logic.rend8986 ] - br label %logic.from8987 -logic.from8987: - br i1 %t39, label %logic.end8989, label %logic.rhs8988 -logic.rhs8988: + br label %logic.rend9391 +logic.rend9391: + br label %logic.end9390 +logic.end9390: + %t39 = phi i1 [ true, %logic.from9388 ], [ %t38, %logic.rend9391 ] + br label %logic.from9392 +logic.from9392: + br i1 %t39, label %logic.end9394, label %logic.rhs9393 +logic.rhs9393: %t40 = load i32, ptr %a16 %t41 = icmp eq i32 %t40, 17 - br label %logic.rend8990 -logic.rend8990: - br label %logic.end8989 -logic.end8989: - %t42 = phi i1 [ true, %logic.from8987 ], [ %t41, %logic.rend8990 ] - br label %logic.from8991 -logic.from8991: - br i1 %t42, label %logic.end8993, label %logic.rhs8992 -logic.rhs8992: + br label %logic.rend9395 +logic.rend9395: + br label %logic.end9394 +logic.end9394: + %t42 = phi i1 [ true, %logic.from9392 ], [ %t41, %logic.rend9395 ] + br label %logic.from9396 +logic.from9396: + br i1 %t42, label %logic.end9398, label %logic.rhs9397 +logic.rhs9397: %t43 = load i32, ptr %a16 %t44 = icmp eq i32 %t43, 18 - br label %logic.rend8994 -logic.rend8994: - br label %logic.end8993 -logic.end8993: - %t45 = phi i1 [ true, %logic.from8991 ], [ %t44, %logic.rend8994 ] - br label %logic.from8995 -logic.from8995: - br i1 %t45, label %logic.end8997, label %logic.rhs8996 -logic.rhs8996: + br label %logic.rend9399 +logic.rend9399: + br label %logic.end9398 +logic.end9398: + %t45 = phi i1 [ true, %logic.from9396 ], [ %t44, %logic.rend9399 ] + br label %logic.from9400 +logic.from9400: + br i1 %t45, label %logic.end9402, label %logic.rhs9401 +logic.rhs9401: %t46 = load i32, ptr %a16 %t47 = icmp eq i32 %t46, 19 - br label %logic.rend8998 -logic.rend8998: - br label %logic.end8997 -logic.end8997: - %t48 = phi i1 [ true, %logic.from8995 ], [ %t47, %logic.rend8998 ] - br i1 %t48, label %then8999, label %endif9001 -then8999: + br label %logic.rend9403 +logic.rend9403: + br label %logic.end9402 +logic.end9402: + %t48 = phi i1 [ true, %logic.from9400 ], [ %t47, %logic.rend9403 ] + br i1 %t48, label %then9404, label %endif9406 +then9404: %t49 = load i64, ptr %a13 %t50 = call %S.cimport.Mapped @finch.cimport.sized(i64 %t49, i1 true) ret %S.cimport.Mapped %t50 -endif9001: +endif9406: %t51 = load i32, ptr %a16 %t52 = icmp eq i32 %t51, 5 - br label %logic.from9002 -logic.from9002: - br i1 %t52, label %logic.end9004, label %logic.rhs9003 -logic.rhs9003: + br label %logic.from9407 +logic.from9407: + br i1 %t52, label %logic.end9409, label %logic.rhs9408 +logic.rhs9408: %t53 = load i32, ptr %a16 %t54 = icmp eq i32 %t53, 8 - br label %logic.rend9005 -logic.rend9005: - br label %logic.end9004 -logic.end9004: - %t55 = phi i1 [ true, %logic.from9002 ], [ %t54, %logic.rend9005 ] - br label %logic.from9006 -logic.from9006: - br i1 %t55, label %logic.end9008, label %logic.rhs9007 -logic.rhs9007: + br label %logic.rend9410 +logic.rend9410: + br label %logic.end9409 +logic.end9409: + %t55 = phi i1 [ true, %logic.from9407 ], [ %t54, %logic.rend9410 ] + br label %logic.from9411 +logic.from9411: + br i1 %t55, label %logic.end9413, label %logic.rhs9412 +logic.rhs9412: %t56 = load i32, ptr %a16 %t57 = icmp eq i32 %t56, 9 - br label %logic.rend9009 -logic.rend9009: - br label %logic.end9008 -logic.end9008: - %t58 = phi i1 [ true, %logic.from9006 ], [ %t57, %logic.rend9009 ] - br label %logic.from9010 -logic.from9010: - br i1 %t58, label %logic.end9012, label %logic.rhs9011 -logic.rhs9011: + br label %logic.rend9414 +logic.rend9414: + br label %logic.end9413 +logic.end9413: + %t58 = phi i1 [ true, %logic.from9411 ], [ %t57, %logic.rend9414 ] + br label %logic.from9415 +logic.from9415: + br i1 %t58, label %logic.end9417, label %logic.rhs9416 +logic.rhs9416: %t59 = load i32, ptr %a16 %t60 = icmp eq i32 %t59, 10 - br label %logic.rend9013 -logic.rend9013: - br label %logic.end9012 -logic.end9012: - %t61 = phi i1 [ true, %logic.from9010 ], [ %t60, %logic.rend9013 ] - br label %logic.from9014 -logic.from9014: - br i1 %t61, label %logic.end9016, label %logic.rhs9015 -logic.rhs9015: + br label %logic.rend9418 +logic.rend9418: + br label %logic.end9417 +logic.end9417: + %t61 = phi i1 [ true, %logic.from9415 ], [ %t60, %logic.rend9418 ] + br label %logic.from9419 +logic.from9419: + br i1 %t61, label %logic.end9421, label %logic.rhs9420 +logic.rhs9420: %t62 = load i32, ptr %a16 %t63 = icmp eq i32 %t62, 11 - br label %logic.rend9017 -logic.rend9017: - br label %logic.end9016 -logic.end9016: - %t64 = phi i1 [ true, %logic.from9014 ], [ %t63, %logic.rend9017 ] - br i1 %t64, label %then9018, label %endif9020 -then9018: + br label %logic.rend9422 +logic.rend9422: + br label %logic.end9421 +logic.end9421: + %t64 = phi i1 [ true, %logic.from9419 ], [ %t63, %logic.rend9422 ] + br i1 %t64, label %then9423, label %endif9425 +then9423: %t65 = load i64, ptr %a13 %t66 = call %S.cimport.Mapped @finch.cimport.sized(i64 %t65, i1 false) ret %S.cimport.Mapped %t66 -endif9020: +endif9425: %t67 = load i32, ptr %a16 %t68 = icmp eq i32 %t67, 106 - br i1 %t68, label %then9021, label %endif9023 -then9021: + br i1 %t68, label %then9426, label %endif9428 +then9426: %t69 = load i64, ptr %a13 %t70 = call %S.cimport.Mapped @finch.cimport.sized(i64 %t69, i1 true) ret %S.cimport.Mapped %t70 -endif9023: +endif9428: %t71 = load i32, ptr %a16 %t72 = icmp eq i32 %t71, 21 - br i1 %t72, label %then9024, label %endif9026 -then9024: - %t73 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6294, i64 3, i64 0 }) + br i1 %t72, label %then9429, label %endif9431 +then9429: + %t73 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6502, i64 3, i64 0 }) %t74 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t73) store %S.ast.Type %t73, ptr %a75 call void @finch.drop.S_ast_Type(ptr %a75) ret %S.cimport.Mapped %t74 -endif9026: +endif9431: %t76 = load i32, ptr %a16 %t77 = icmp eq i32 %t76, 22 - br i1 %t77, label %then9027, label %endif9029 -then9027: - %t78 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6295, i64 5, i64 0 }) + br i1 %t77, label %then9432, label %endif9434 +then9432: + %t78 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6503, i64 5, i64 0 }) %t79 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t78) store %S.ast.Type %t78, ptr %a80 call void @finch.drop.S_ast_Type(ptr %a80) ret %S.cimport.Mapped %t79 -endif9029: +endif9434: %t81 = load i32, ptr %a16 %t82 = icmp eq i32 %t81, 101 - br i1 %t82, label %then9030, label %endif9032 -then9030: + br i1 %t82, label %then9435, label %endif9437 +then9435: %t85 = load %S.C.CXType, ptr %a9 store %S.C.CXType %t85, ptr %a86 call void @clang_getPointeeType(ptr sret(%S.C.CXType) align 16 %a84, ptr %a86) @@ -94790,90 +98815,90 @@ then9030: %t91 = getelementptr inbounds %S.C.CXType, ptr %a90, i32 0, i32 0 %t92 = load i32, ptr %t91 %t93 = icmp eq i32 %t92, 13 - br label %logic.from9033 -logic.from9033: - br i1 %t93, label %logic.end9035, label %logic.rhs9034 -logic.rhs9034: + br label %logic.from9438 +logic.from9438: + br i1 %t93, label %logic.end9440, label %logic.rhs9439 +logic.rhs9439: %t94 = getelementptr inbounds %S.C.CXType, ptr %a90, i32 0, i32 0 %t95 = load i32, ptr %t94 %t96 = icmp eq i32 %t95, 4 - br label %logic.rend9036 -logic.rend9036: - br label %logic.end9035 -logic.end9035: - %t97 = phi i1 [ true, %logic.from9033 ], [ %t96, %logic.rend9036 ] - br label %logic.from9037 -logic.from9037: - br i1 %t97, label %logic.rhs9038, label %logic.end9039 -logic.rhs9038: + br label %logic.rend9441 +logic.rend9441: + br label %logic.end9440 +logic.end9440: + %t97 = phi i1 [ true, %logic.from9438 ], [ %t96, %logic.rend9441 ] + br label %logic.from9442 +logic.from9442: + br i1 %t97, label %logic.rhs9443, label %logic.end9444 +logic.rhs9443: %t98 = load i1, ptr %a3 - br label %logic.rend9040 -logic.rend9040: - br label %logic.end9039 -logic.end9039: - %t99 = phi i1 [ false, %logic.from9037 ], [ %t98, %logic.rend9040 ] - br i1 %t99, label %then9041, label %endif9043 -then9041: + br label %logic.rend9445 +logic.rend9445: + br label %logic.end9444 +logic.end9444: + %t99 = phi i1 [ false, %logic.from9442 ], [ %t98, %logic.rend9445 ] + br i1 %t99, label %then9446, label %endif9448 +then9446: %t100 = load i1, ptr %a4 %t101 = xor i1 %t100, true - br label %logic.from9044 -logic.from9044: - br i1 %t101, label %logic.end9046, label %logic.rhs9045 -logic.rhs9045: + br label %logic.from9449 +logic.from9449: + br i1 %t101, label %logic.end9451, label %logic.rhs9450 +logic.rhs9450: %t102 = load %S.C.CXType, ptr %a90 store %S.C.CXType %t102, ptr %a103 %t104 = call i32 @clang_isConstQualifiedType(ptr %a103) %t105 = icmp ne i32 %t104, 0 - br label %logic.rend9047 -logic.rend9047: - br label %logic.end9046 -logic.end9046: - %t106 = phi i1 [ true, %logic.from9044 ], [ %t105, %logic.rend9047 ] - br i1 %t106, label %then9048, label %endif9050 -then9048: - %t107 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6296, i64 3, i64 0 }) + br label %logic.rend9452 +logic.rend9452: + br label %logic.end9451 +logic.end9451: + %t106 = phi i1 [ true, %logic.from9449 ], [ %t105, %logic.rend9452 ] + br i1 %t106, label %then9453, label %endif9455 +then9453: + %t107 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6504, i64 3, i64 0 }) %t108 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t107) store %S.ast.Type %t107, ptr %a109 call void @finch.drop.S_ast_Type(ptr %a109) ret %S.cimport.Mapped %t108 -endif9050: - br label %endif9043 -endif9043: +endif9455: + br label %endif9448 +endif9448: %t110 = getelementptr inbounds %S.C.CXType, ptr %a90, i32 0, i32 0 %t111 = load i32, ptr %t110 %t112 = icmp eq i32 %t111, 2 - br label %logic.from9051 -logic.from9051: - br i1 %t112, label %logic.end9053, label %logic.rhs9052 -logic.rhs9052: + br label %logic.from9456 +logic.from9456: + br i1 %t112, label %logic.end9458, label %logic.rhs9457 +logic.rhs9457: %t113 = getelementptr inbounds %S.C.CXType, ptr %a90, i32 0, i32 0 %t114 = load i32, ptr %t113 %t115 = icmp eq i32 %t114, 111 - br label %logic.rend9054 -logic.rend9054: - br label %logic.end9053 -logic.end9053: - %t116 = phi i1 [ true, %logic.from9051 ], [ %t115, %logic.rend9054 ] - br label %logic.from9055 -logic.from9055: - br i1 %t116, label %logic.end9057, label %logic.rhs9056 -logic.rhs9056: + br label %logic.rend9459 +logic.rend9459: + br label %logic.end9458 +logic.end9458: + %t116 = phi i1 [ true, %logic.from9456 ], [ %t115, %logic.rend9459 ] + br label %logic.from9460 +logic.from9460: + br i1 %t116, label %logic.end9462, label %logic.rhs9461 +logic.rhs9461: %t117 = getelementptr inbounds %S.C.CXType, ptr %a90, i32 0, i32 0 %t118 = load i32, ptr %t117 %t119 = icmp eq i32 %t118, 110 - br label %logic.rend9058 -logic.rend9058: - br label %logic.end9057 -logic.end9057: - %t120 = phi i1 [ true, %logic.from9055 ], [ %t119, %logic.rend9058 ] - br i1 %t120, label %then9059, label %endif9061 -then9059: - %t121 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6297, i64 3, i64 0 }) + br label %logic.rend9463 +logic.rend9463: + br label %logic.end9462 +logic.end9462: + %t120 = phi i1 [ true, %logic.from9460 ], [ %t119, %logic.rend9463 ] + br i1 %t120, label %then9464, label %endif9466 +then9464: + %t121 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6505, i64 3, i64 0 }) %t122 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t121) store %S.ast.Type %t121, ptr %a123 call void @finch.drop.S_ast_Type(ptr %a123) ret %S.cimport.Mapped %t122 -endif9061: +endif9466: %t124 = load ptr, ptr %a1 %t125 = load %S.C.CXType, ptr %a90 %t126 = call %S.cimport.Mapped @finch.cimport.mapType(ptr %t124, %S.C.CXType %t125, i1 false, i1 false) @@ -94881,47 +98906,47 @@ endif9061: %t128 = getelementptr inbounds %S.cimport.Mapped, ptr %a127, i32 0, i32 2 %t129 = load i1, ptr %t128 %t130 = xor i1 %t129, true - br label %logic.from9062 -logic.from9062: - br i1 %t130, label %logic.end9064, label %logic.rhs9063 -logic.rhs9063: + br label %logic.from9467 +logic.from9467: + br i1 %t130, label %logic.end9469, label %logic.rhs9468 +logic.rhs9468: %t131 = getelementptr inbounds %S.cimport.Mapped, ptr %a127, i32 0, i32 0 %t132 = getelementptr inbounds %S.ast.Type, ptr %t131, i32 0, i32 0 %t133 = load { ptr, i64, i64 }, ptr %t132 store { ptr, i64, i64 } %t133, ptr %a134 - store { ptr, i64, i64 } { ptr @.str.6298, i64 4, i64 0 }, ptr %a135 + store { ptr, i64, i64 } { ptr @.str.6506, i64 4, i64 0 }, ptr %a135 %t136 = call i32 @finch_str_eq(ptr %a134, ptr %a135) %t137 = icmp ne i32 %t136, 0 - br label %logic.rend9065 -logic.rend9065: - br label %logic.end9064 -logic.end9064: - %t138 = phi i1 [ true, %logic.from9062 ], [ %t137, %logic.rend9065 ] - br label %logic.from9066 -logic.from9066: - br i1 %t138, label %logic.end9068, label %logic.rhs9067 -logic.rhs9067: + br label %logic.rend9470 +logic.rend9470: + br label %logic.end9469 +logic.end9469: + %t138 = phi i1 [ true, %logic.from9467 ], [ %t137, %logic.rend9470 ] + br label %logic.from9471 +logic.from9471: + br i1 %t138, label %logic.end9473, label %logic.rhs9472 +logic.rhs9472: %t139 = getelementptr inbounds %S.cimport.Mapped, ptr %a127, i32 0, i32 0 %t140 = getelementptr inbounds %S.ast.Type, ptr %t139, i32 0, i32 0 %t141 = load { ptr, i64, i64 }, ptr %t140 store { ptr, i64, i64 } %t141, ptr %a142 - store { ptr, i64, i64 } { ptr @.str.6299, i64 5, i64 0 }, ptr %a143 + store { ptr, i64, i64 } { ptr @.str.6507, i64 5, i64 0 }, ptr %a143 %t144 = call i32 @finch_str_eq(ptr %a142, ptr %a143) %t145 = icmp ne i32 %t144, 0 - br label %logic.rend9069 -logic.rend9069: - br label %logic.end9068 -logic.end9068: - %t146 = phi i1 [ true, %logic.from9066 ], [ %t145, %logic.rend9069 ] - br i1 %t146, label %then9070, label %endif9072 -then9070: - %t147 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6300, i64 3, i64 0 }) + br label %logic.rend9474 +logic.rend9474: + br label %logic.end9473 +logic.end9473: + %t146 = phi i1 [ true, %logic.from9471 ], [ %t145, %logic.rend9474 ] + br i1 %t146, label %then9475, label %endif9477 +then9475: + %t147 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6508, i64 3, i64 0 }) %t148 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t147) store %S.ast.Type %t147, ptr %a149 call void @finch.drop.S_ast_Type(ptr %a149) call void @finch.drop.S_cimport_Mapped(ptr %a127) ret %S.cimport.Mapped %t148 -endif9072: +endif9477: %t150 = getelementptr inbounds %S.cimport.Mapped, ptr %a127, i32 0, i32 0 %t151 = load %S.ast.Type, ptr %t150 %t152 = call %S.ast.Type @finch.ast.ptrTo(%S.ast.Type %t151) @@ -94930,11 +98955,11 @@ endif9072: call void @finch.drop.S_ast_Type(ptr %a154) call void @finch.drop.S_cimport_Mapped(ptr %a127) ret %S.cimport.Mapped %t153 -endif9032: +endif9437: %t155 = load i32, ptr %a16 %t156 = icmp eq i32 %t155, 105 - br i1 %t156, label %then9073, label %endif9075 -then9073: + br i1 %t156, label %then9478, label %endif9480 +then9478: %t158 = load %S.C.CXType, ptr %a9 store %S.C.CXType %t158, ptr %a159 call void @clang_getTypeDeclaration(ptr sret(%S.C.CXCursor) align 16 %a157, ptr %a159) @@ -94942,11 +98967,11 @@ then9073: store %S.C.CXCursor %t160, ptr %a161 %t162 = call i32 @clang_getCursorKind(ptr %a161) %t163 = icmp eq i32 %t162, 3 - br i1 %t163, label %then9076, label %endif9078 -then9076: - %t164 = call %S.cimport.Mapped @finch.cimport.no({ ptr, i64, i64 } { ptr @.str.6301, i64 23, i64 0 }) + br i1 %t163, label %then9481, label %endif9483 +then9481: + %t164 = call %S.cimport.Mapped @finch.cimport.no({ ptr, i64, i64 } { ptr @.str.6509, i64 23, i64 0 }) ret %S.cimport.Mapped %t164 -endif9078: +endif9483: %t165 = load ptr, ptr %a1 %t166 = load %S.C.CXType, ptr %a9 %t167 = call { ptr, i64, i64 } @finch.cimport.defineRecord(ptr %t165, %S.C.CXType %t166) @@ -94954,29 +98979,29 @@ endif9078: %t169 = getelementptr inbounds { ptr, i64, i64 }, ptr %a168, i32 0, i32 1 %t170 = load i64, ptr %t169 %t171 = icmp eq i64 %t170, 0 - br i1 %t171, label %then9079, label %endif9081 -then9079: - %t172 = call %S.cimport.Mapped @finch.cimport.no({ ptr, i64, i64 } { ptr @.str.6302, i64 36, i64 0 }) + br i1 %t171, label %then9484, label %endif9486 +then9484: + %t172 = call %S.cimport.Mapped @finch.cimport.no({ ptr, i64, i64 } { ptr @.str.6510, i64 36, i64 0 }) call void @finch_str_drop(ptr %a168) ret %S.cimport.Mapped %t172 -endif9081: - %t173 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.6303, i64 5, i64 0 }, 0 +endif9486: + %t173 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.6511, i64 5, i64 0 }, 0 %t174 = load { ptr, i64, i64 }, ptr %a168 store { ptr, i64, i64 } %t174, ptr %a175 call void @finch_str_copy(ptr %a176, ptr %a175) %t177 = load { ptr, i64, i64 }, ptr %a176 %t178 = insertvalue %S.ast.Type %t173, { ptr, i64, i64 } %t177, 2 - %t179 = insertvalue %S.ast.Type %t178, { ptr, i64, i64 } { ptr @.str.6304, i64 1, i64 0 }, 3 + %t179 = insertvalue %S.ast.Type %t178, { ptr, i64, i64 } { ptr @.str.6512, i64 1, i64 0 }, 3 %t180 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t179) store %S.ast.Type %t179, ptr %a181 call void @finch.drop.S_ast_Type(ptr %a181) call void @finch_str_drop(ptr %a168) ret %S.cimport.Mapped %t180 -endif9075: +endif9480: %t182 = load i32, ptr %a16 %t183 = icmp eq i32 %t182, 112 - br i1 %t183, label %then9082, label %endif9084 -then9082: + br i1 %t183, label %then9487, label %endif9489 +then9487: %t184 = load ptr, ptr %a1 %t186 = load %S.C.CXType, ptr %a9 store %S.C.CXType %t186, ptr %a187 @@ -94987,11 +99012,11 @@ then9082: %t191 = getelementptr inbounds %S.cimport.Mapped, ptr %a190, i32 0, i32 2 %t192 = load i1, ptr %t191 %t193 = xor i1 %t192, true - br i1 %t193, label %then9085, label %endif9087 -then9085: + br i1 %t193, label %then9490, label %endif9492 +then9490: %t194 = load %S.cimport.Mapped, ptr %a190 ret %S.cimport.Mapped %t194 -endif9087: +endif9492: %t195 = getelementptr inbounds %S.cimport.Mapped, ptr %a190, i32 0, i32 0 %t196 = load %S.ast.Type, ptr %t195 %t197 = load %S.C.CXType, ptr %a9 @@ -95003,28 +99028,28 @@ endif9087: call void @finch.drop.S_ast_Type(ptr %a202) call void @finch.drop.S_cimport_Mapped(ptr %a190) ret %S.cimport.Mapped %t201 -endif9084: +endif9489: %t203 = load i32, ptr %a16 %t204 = icmp eq i32 %t203, 23 - br i1 %t204, label %then9088, label %endif9090 -then9088: - %t205 = call %S.cimport.Mapped @finch.cimport.no({ ptr, i64, i64 } { ptr @.str.6305, i64 16, i64 0 }) + br i1 %t204, label %then9493, label %endif9495 +then9493: + %t205 = call %S.cimport.Mapped @finch.cimport.no({ ptr, i64, i64 } { ptr @.str.6513, i64 16, i64 0 }) ret %S.cimport.Mapped %t205 -endif9090: +endif9495: %t206 = load %S.C.CXType, ptr %a9 store %S.C.CXType %t206, ptr %a207 %t208 = call [2 x i64] @clang_getTypeSpelling(ptr %a207) store [2 x i64] %t208, ptr %a209 %t210 = load %S.C.CXString, ptr %a209 %t211 = call { ptr, i64, i64 } @finch.cimport.text(%S.C.CXString %t210) - store { ptr, i64, i64 } { ptr @.str.6306, i64 17, i64 0 }, ptr %a213 + store { ptr, i64, i64 } { ptr @.str.6514, i64 17, i64 0 }, ptr %a213 store { ptr, i64, i64 } %t211, ptr %a214 call void @finch_str_concat(ptr %a212, ptr %a213, ptr %a214) store { ptr, i64, i64 } %t211, ptr %a215 call void @finch_str_drop(ptr %a215) %t216 = load { ptr, i64, i64 }, ptr %a212 store { ptr, i64, i64 } %t216, ptr %a218 - store { ptr, i64, i64 } { ptr @.str.6307, i64 1, i64 0 }, ptr %a219 + store { ptr, i64, i64 } { ptr @.str.6515, i64 1, i64 0 }, ptr %a219 call void @finch_str_concat(ptr %a217, ptr %a218, ptr %a219) store { ptr, i64, i64 } %t216, ptr %a220 call void @finch_str_drop(ptr %a220) @@ -95073,99 +99098,99 @@ entry: store i64 10, ptr %a7 %t8 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t8, ptr %a9 - store { ptr, i64, i64 } { ptr @.str.6309, i64 2, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.6517, i64 2, i64 0 }, ptr %a11 %t12 = call i32 @finch_str_starts(ptr %a9, ptr %a11) %t13 = icmp ne i32 %t12, 0 - br label %logic.from9091 -logic.from9091: - br i1 %t13, label %logic.end9093, label %logic.rhs9092 -logic.rhs9092: + br label %logic.from9496 +logic.from9496: + br i1 %t13, label %logic.end9498, label %logic.rhs9497 +logic.rhs9497: %t14 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t14, ptr %a15 - store { ptr, i64, i64 } { ptr @.str.6311, i64 2, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.6519, i64 2, i64 0 }, ptr %a17 %t18 = call i32 @finch_str_starts(ptr %a15, ptr %a17) %t19 = icmp ne i32 %t18, 0 - br label %logic.rend9094 -logic.rend9094: - br label %logic.end9093 -logic.end9093: - %t20 = phi i1 [ true, %logic.from9091 ], [ %t19, %logic.rend9094 ] - br i1 %t20, label %then9095, label %else9096 -then9095: + br label %logic.rend9499 +logic.rend9499: + br label %logic.end9498 +logic.end9498: + %t20 = phi i1 [ true, %logic.from9496 ], [ %t19, %logic.rend9499 ] + br i1 %t20, label %then9500, label %else9501 +then9500: store i64 16, ptr %a7 %t21 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t21, ptr %a22 %t24 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t25 = load i64, ptr %t24 - call void @finch_str_sub(ptr %a23, ptr %a22, i64 2, i64 %t25, ptr @.str.6312, i64 331) + call void @finch_str_sub(ptr %a23, ptr %a22, i64 2, i64 %t25, ptr @.str.6520, i64 331) %t26 = load { ptr, i64, i64 }, ptr %a23 %t27 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t26, ptr %a6 store { ptr, i64, i64 } %t27, ptr %a28 call void @finch_str_drop(ptr %a28) - br label %endif9097 -else9096: + br label %endif9502 +else9501: %t29 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t30 = load i64, ptr %t29 %t31 = icmp sgt i64 %t30, 1 - br label %logic.from9098 -logic.from9098: - br i1 %t31, label %logic.rhs9099, label %logic.end9100 -logic.rhs9099: + br label %logic.from9503 +logic.from9503: + br i1 %t31, label %logic.rhs9504, label %logic.end9505 +logic.rhs9504: %t32 = load { ptr, i64, i64 }, ptr %a6 %t33 = extractvalue { ptr, i64, i64 } %t32, 1 %t34 = icmp uge i64 0, %t33 - br i1 %t34, label %range9101, label %inrange9102 -range9101: - call void @finch_panic_index(ptr @.str.6313, i64 332, i64 0, i64 %t33) + br i1 %t34, label %range9506, label %inrange9507 +range9506: + call void @finch_panic_index(ptr @.str.6521, i64 332, i64 0, i64 %t33) unreachable -inrange9102: +inrange9507: %t35 = extractvalue { ptr, i64, i64 } %t32, 0 %t36 = getelementptr inbounds i8, ptr %t35, i64 0 %t37 = load i8, ptr %t36 %t38 = icmp eq i8 %t37, 48 - br label %logic.rend9103 -logic.rend9103: - br label %logic.end9100 -logic.end9100: - %t39 = phi i1 [ false, %logic.from9098 ], [ %t38, %logic.rend9103 ] - br i1 %t39, label %then9104, label %endif9106 -then9104: + br label %logic.rend9508 +logic.rend9508: + br label %logic.end9505 +logic.end9505: + %t39 = phi i1 [ false, %logic.from9503 ], [ %t38, %logic.rend9508 ] + br i1 %t39, label %then9509, label %endif9511 +then9509: store i64 8, ptr %a7 %t40 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t40, ptr %a41 %t43 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t44 = load i64, ptr %t43 - call void @finch_str_sub(ptr %a42, ptr %a41, i64 1, i64 %t44, ptr @.str.6314, i64 334) + call void @finch_str_sub(ptr %a42, ptr %a41, i64 1, i64 %t44, ptr @.str.6522, i64 334) %t45 = load { ptr, i64, i64 }, ptr %a42 %t46 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t45, ptr %a6 store { ptr, i64, i64 } %t46, ptr %a47 call void @finch_str_drop(ptr %a47) - br label %endif9106 -endif9106: - br label %endif9097 -endif9097: + br label %endif9511 +endif9511: + br label %endif9502 +endif9502: store i64 0, ptr %a48 store i1 false, ptr %a49 store i64 0, ptr %a50 - br label %while.cond9107 -while.cond9107: + br label %while.cond9512 +while.cond9512: %t51 = load i64, ptr %a50 %t52 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t53 = load i64, ptr %t52 %t54 = icmp slt i64 %t51, %t53 - br i1 %t54, label %while.body9108, label %while.end9109 -while.body9108: + br i1 %t54, label %while.body9513, label %while.end9514 +while.body9513: %t55 = load i64, ptr %a50 %t56 = load { ptr, i64, i64 }, ptr %a6 %t57 = extractvalue { ptr, i64, i64 } %t56, 1 %t58 = icmp uge i64 %t55, %t57 - br i1 %t58, label %range9110, label %inrange9111 -range9110: - call void @finch_panic_index(ptr @.str.6315, i64 340, i64 %t55, i64 %t57) + br i1 %t58, label %range9515, label %inrange9516 +range9515: + call void @finch_panic_index(ptr @.str.6523, i64 340, i64 %t55, i64 %t57) unreachable -inrange9111: +inrange9516: %t59 = extractvalue { ptr, i64, i64 } %t56, 0 %t60 = getelementptr inbounds i8, ptr %t59, i64 %t55 %t61 = load i8, ptr %t60 @@ -95173,83 +99198,83 @@ inrange9111: store i64 99, ptr %a63 %t64 = load i8, ptr %a62 %t65 = icmp uge i8 %t64, 48 - br label %logic.from9112 -logic.from9112: - br i1 %t65, label %logic.rhs9113, label %logic.end9114 -logic.rhs9113: + br label %logic.from9517 +logic.from9517: + br i1 %t65, label %logic.rhs9518, label %logic.end9519 +logic.rhs9518: %t66 = load i8, ptr %a62 %t67 = icmp ule i8 %t66, 57 - br label %logic.rend9115 -logic.rend9115: - br label %logic.end9114 -logic.end9114: - %t68 = phi i1 [ false, %logic.from9112 ], [ %t67, %logic.rend9115 ] - br i1 %t68, label %then9116, label %else9117 -then9116: + br label %logic.rend9520 +logic.rend9520: + br label %logic.end9519 +logic.end9519: + %t68 = phi i1 [ false, %logic.from9517 ], [ %t67, %logic.rend9520 ] + br i1 %t68, label %then9521, label %else9522 +then9521: %t69 = load i8, ptr %a62 %t70 = zext i8 %t69 to i64 %t71 = zext i8 48 to i64 %t72 = sub i64 %t70, %t71 store i64 %t72, ptr %a63 - br label %endif9118 -else9117: + br label %endif9523 +else9522: %t73 = load i8, ptr %a62 %t74 = icmp uge i8 %t73, 97 - br label %logic.from9119 -logic.from9119: - br i1 %t74, label %logic.rhs9120, label %logic.end9121 -logic.rhs9120: + br label %logic.from9524 +logic.from9524: + br i1 %t74, label %logic.rhs9525, label %logic.end9526 +logic.rhs9525: %t75 = load i8, ptr %a62 %t76 = icmp ule i8 %t75, 102 - br label %logic.rend9122 -logic.rend9122: - br label %logic.end9121 -logic.end9121: - %t77 = phi i1 [ false, %logic.from9119 ], [ %t76, %logic.rend9122 ] - br i1 %t77, label %then9123, label %else9124 -then9123: + br label %logic.rend9527 +logic.rend9527: + br label %logic.end9526 +logic.end9526: + %t77 = phi i1 [ false, %logic.from9524 ], [ %t76, %logic.rend9527 ] + br i1 %t77, label %then9528, label %else9529 +then9528: %t78 = load i8, ptr %a62 %t79 = zext i8 %t78 to i64 %t80 = zext i8 97 to i64 %t81 = sub i64 %t79, %t80 %t82 = add i64 %t81, 10 store i64 %t82, ptr %a63 - br label %endif9125 -else9124: + br label %endif9530 +else9529: %t83 = load i8, ptr %a62 %t84 = icmp uge i8 %t83, 65 - br label %logic.from9126 -logic.from9126: - br i1 %t84, label %logic.rhs9127, label %logic.end9128 -logic.rhs9127: + br label %logic.from9531 +logic.from9531: + br i1 %t84, label %logic.rhs9532, label %logic.end9533 +logic.rhs9532: %t85 = load i8, ptr %a62 %t86 = icmp ule i8 %t85, 70 - br label %logic.rend9129 -logic.rend9129: - br label %logic.end9128 -logic.end9128: - %t87 = phi i1 [ false, %logic.from9126 ], [ %t86, %logic.rend9129 ] - br i1 %t87, label %then9130, label %endif9132 -then9130: + br label %logic.rend9534 +logic.rend9534: + br label %logic.end9533 +logic.end9533: + %t87 = phi i1 [ false, %logic.from9531 ], [ %t86, %logic.rend9534 ] + br i1 %t87, label %then9535, label %endif9537 +then9535: %t88 = load i8, ptr %a62 %t89 = zext i8 %t88 to i64 %t90 = zext i8 65 to i64 %t91 = sub i64 %t89, %t90 %t92 = add i64 %t91, 10 store i64 %t92, ptr %a63 - br label %endif9132 -endif9132: - br label %endif9125 -endif9125: - br label %endif9118 -endif9118: + br label %endif9537 +endif9537: + br label %endif9530 +endif9530: + br label %endif9523 +endif9523: %t93 = load i64, ptr %a63 %t94 = load i64, ptr %a7 %t95 = icmp sge i64 %t93, %t94 - br i1 %t95, label %then9133, label %endif9135 -then9133: - br label %while.end9109 -endif9135: + br i1 %t95, label %then9538, label %endif9540 +then9538: + br label %while.end9514 +endif9540: %t96 = load i64, ptr %a48 %t97 = load i64, ptr %a7 %t98 = mul i64 %t96, %t97 @@ -95260,26 +99285,26 @@ endif9135: %t101 = load i64, ptr %a50 %t102 = add i64 %t101, 1 store i64 %t102, ptr %a50 - br label %while.cond9107 -while.end9109: - br label %while.cond9136 -while.cond9136: + br label %while.cond9512 +while.end9514: + br label %while.cond9541 +while.cond9541: %t103 = load i64, ptr %a50 %t104 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t105 = load i64, ptr %t104 %t106 = icmp slt i64 %t103, %t105 - br i1 %t106, label %while.body9137, label %while.end9138 -while.body9137: - store { ptr, i64, i64 } { ptr @.str.6316, i64 4, i64 0 }, ptr %a107 + br i1 %t106, label %while.body9542, label %while.end9543 +while.body9542: + store { ptr, i64, i64 } { ptr @.str.6524, i64 4, i64 0 }, ptr %a107 %t109 = load i64, ptr %a50 %t110 = load { ptr, i64, i64 }, ptr %a6 %t111 = extractvalue { ptr, i64, i64 } %t110, 1 %t112 = icmp uge i64 %t109, %t111 - br i1 %t112, label %range9139, label %inrange9140 -range9139: - call void @finch_panic_index(ptr @.str.6318, i64 358, i64 %t109, i64 %t111) + br i1 %t112, label %range9544, label %inrange9545 +range9544: + call void @finch_panic_index(ptr @.str.6526, i64 358, i64 %t109, i64 %t111) unreachable -inrange9140: +inrange9545: %t113 = extractvalue { ptr, i64, i64 } %t110, 0 %t114 = getelementptr inbounds i8, ptr %t113, i64 %t109 %t115 = load i8, ptr %t114 @@ -95291,34 +99316,34 @@ inrange9140: store { ptr, i64, i64 } %t117, ptr %a121 call void @finch_str_drop(ptr %a121) %t122 = xor i1 %t120, true - br i1 %t122, label %then9141, label %endif9143 -then9141: + br i1 %t122, label %then9546, label %endif9548 +then9546: call void @finch_str_drop(ptr %a6) ret %S.cimport.Number zeroinitializer -endif9143: +endif9548: %t123 = load i64, ptr %a50 %t124 = add i64 %t123, 1 store i64 %t124, ptr %a50 - br label %while.cond9136 -while.end9138: + br label %while.cond9541 +while.end9543: %t125 = load i1, ptr %a49 %t126 = xor i1 %t125, true - br label %logic.from9144 -logic.from9144: - br i1 %t126, label %logic.rhs9145, label %logic.end9146 -logic.rhs9145: + br label %logic.from9549 +logic.from9549: + br i1 %t126, label %logic.rhs9550, label %logic.end9551 +logic.rhs9550: %t127 = load i64, ptr %a7 %t128 = icmp ne i64 %t127, 8 - br label %logic.rend9147 -logic.rend9147: - br label %logic.end9146 -logic.end9146: - %t129 = phi i1 [ false, %logic.from9144 ], [ %t128, %logic.rend9147 ] - br i1 %t129, label %then9148, label %endif9150 -then9148: + br label %logic.rend9552 +logic.rend9552: + br label %logic.end9551 +logic.end9551: + %t129 = phi i1 [ false, %logic.from9549 ], [ %t128, %logic.rend9552 ] + br i1 %t129, label %then9553, label %endif9555 +then9553: call void @finch_str_drop(ptr %a6) ret %S.cimport.Number zeroinitializer -endif9150: +endif9555: %t130 = load i64, ptr %a48 %t131 = insertvalue %S.cimport.CConst zeroinitializer, i64 %t130, 1 %t132 = insertvalue %S.cimport.Number zeroinitializer, %S.cimport.CConst %t131, 0 @@ -95392,11 +99417,11 @@ entry: store i32 0, ptr %a4 %t5 = load ptr, ptr %a1 %t6 = icmp eq ptr %t5, null - br i1 %t6, label %panic9151, label %ok9152 -panic9151: - call void @finch_panic(ptr @.str.6319, i64 373, ptr @.str.6320) + br i1 %t6, label %panic9556, label %ok9557 +panic9556: + call void @finch_panic(ptr @.str.6527, i64 373, ptr @.str.6528) unreachable -ok9152: +ok9557: %t7 = getelementptr inbounds %S.cimport.Importer, ptr %t5, i32 0, i32 1 %t8 = load ptr, ptr %t7 %t10 = load %S.C.CXCursor, ptr %a2 @@ -95409,12 +99434,12 @@ ok9152: %t15 = load i32, ptr %a4 %t16 = zext i32 %t15 to i64 store i64 1, ptr %a17 - br label %for.cond9153 -for.cond9153: + br label %for.cond9558 +for.cond9558: %t18 = load i64, ptr %a17 %t19 = icmp slt i64 %t18, %t16 - br i1 %t19, label %for.body9154, label %for.end9156 -for.body9154: + br i1 %t19, label %for.body9559, label %for.end9561 +for.body9559: %t20 = load i64, ptr %a17 %t21 = load ptr, ptr %a3 %t22 = getelementptr inbounds %S.C.CXToken, ptr %t21, i64 %t20 @@ -95422,18 +99447,18 @@ for.body9154: store %S.C.CXToken %t23, ptr %a24 %t25 = call i32 @clang_getTokenKind(ptr %a24) %t26 = icmp eq i32 %t25, 4 - br i1 %t26, label %then9157, label %endif9159 -then9157: - br label %for.step9155 -endif9159: + br i1 %t26, label %then9562, label %endif9564 +then9562: + br label %for.step9560 +endif9564: %t27 = getelementptr inbounds { ptr, i64, i64 }, ptr %a14, i32 0, i32 1 %t28 = load ptr, ptr %a1 %t29 = icmp eq ptr %t28, null - br i1 %t29, label %panic9160, label %ok9161 -panic9160: - call void @finch_panic(ptr @.str.6321, i64 379, ptr @.str.6322) + br i1 %t29, label %panic9565, label %ok9566 +panic9565: + call void @finch_panic(ptr @.str.6529, i64 379, ptr @.str.6530) unreachable -ok9161: +ok9566: %t30 = getelementptr inbounds %S.cimport.Importer, ptr %t28, i32 0, i32 1 %t31 = load ptr, ptr %t30 %t32 = load i64, ptr %a17 @@ -95452,91 +99477,91 @@ ok9161: %t44 = getelementptr inbounds { ptr, i64, i64 }, ptr %t43, i64 %t41 store { ptr, i64, i64 } %t40, ptr %t44 store i64 %t42, ptr %t27 - br label %for.step9155 -for.step9155: + br label %for.step9560 +for.step9560: %t45 = load i64, ptr %a17 %t46 = add i64 %t45, 1 store i64 %t46, ptr %a17 - br label %for.cond9153 -for.end9156: + br label %for.cond9558 +for.end9561: %t47 = load ptr, ptr %a1 %t48 = icmp eq ptr %t47, null - br i1 %t48, label %panic9162, label %ok9163 -panic9162: - call void @finch_panic(ptr @.str.6323, i64 381, ptr @.str.6324) + br i1 %t48, label %panic9567, label %ok9568 +panic9567: + call void @finch_panic(ptr @.str.6531, i64 381, ptr @.str.6532) unreachable -ok9163: +ok9568: %t49 = getelementptr inbounds %S.cimport.Importer, ptr %t47, i32 0, i32 1 %t50 = load ptr, ptr %t49 %t51 = load ptr, ptr %a3 %t52 = load i32, ptr %a4 call void @clang_disposeTokens(ptr %t50, ptr %t51, i32 %t52) - br label %while.cond9164 -while.cond9164: + br label %while.cond9569 +while.cond9569: %t53 = getelementptr inbounds { ptr, i64, i64 }, ptr %a14, i32 0, i32 1 %t54 = load i64, ptr %t53 %t55 = icmp sge i64 %t54, 2 - br label %logic.from9167 -logic.from9167: - br i1 %t55, label %logic.rhs9168, label %logic.end9169 -logic.rhs9168: + br label %logic.from9572 +logic.from9572: + br i1 %t55, label %logic.rhs9573, label %logic.end9574 +logic.rhs9573: %t56 = load { ptr, i64, i64 }, ptr %a14 %t57 = extractvalue { ptr, i64, i64 } %t56, 1 %t58 = icmp uge i64 0, %t57 - br i1 %t58, label %range9170, label %inrange9171 -range9170: - call void @finch_panic_index(ptr @.str.6325, i64 383, i64 0, i64 %t57) + br i1 %t58, label %range9575, label %inrange9576 +range9575: + call void @finch_panic_index(ptr @.str.6533, i64 383, i64 0, i64 %t57) unreachable -inrange9171: +inrange9576: %t59 = extractvalue { ptr, i64, i64 } %t56, 0 %t60 = getelementptr inbounds { ptr, i64, i64 }, ptr %t59, i64 0 %t61 = load { ptr, i64, i64 }, ptr %t60 store { ptr, i64, i64 } %t61, ptr %a62 - store { ptr, i64, i64 } { ptr @.str.6326, i64 1, i64 0 }, ptr %a63 + store { ptr, i64, i64 } { ptr @.str.6534, i64 1, i64 0 }, ptr %a63 %t64 = call i32 @finch_str_eq(ptr %a62, ptr %a63) %t65 = icmp ne i32 %t64, 0 - br label %logic.rend9172 -logic.rend9172: - br label %logic.end9169 -logic.end9169: - %t66 = phi i1 [ false, %logic.from9167 ], [ %t65, %logic.rend9172 ] - br label %logic.from9173 -logic.from9173: - br i1 %t66, label %logic.rhs9174, label %logic.end9175 -logic.rhs9174: + br label %logic.rend9577 +logic.rend9577: + br label %logic.end9574 +logic.end9574: + %t66 = phi i1 [ false, %logic.from9572 ], [ %t65, %logic.rend9577 ] + br label %logic.from9578 +logic.from9578: + br i1 %t66, label %logic.rhs9579, label %logic.end9580 +logic.rhs9579: %t67 = getelementptr inbounds { ptr, i64, i64 }, ptr %a14, i32 0, i32 1 %t68 = load i64, ptr %t67 %t69 = sub i64 %t68, 1 %t70 = load { ptr, i64, i64 }, ptr %a14 %t71 = extractvalue { ptr, i64, i64 } %t70, 1 %t72 = icmp uge i64 %t69, %t71 - br i1 %t72, label %range9176, label %inrange9177 -range9176: - call void @finch_panic_index(ptr @.str.6327, i64 383, i64 %t69, i64 %t71) + br i1 %t72, label %range9581, label %inrange9582 +range9581: + call void @finch_panic_index(ptr @.str.6535, i64 383, i64 %t69, i64 %t71) unreachable -inrange9177: +inrange9582: %t73 = extractvalue { ptr, i64, i64 } %t70, 0 %t74 = getelementptr inbounds { ptr, i64, i64 }, ptr %t73, i64 %t69 %t75 = load { ptr, i64, i64 }, ptr %t74 store { ptr, i64, i64 } %t75, ptr %a76 - store { ptr, i64, i64 } { ptr @.str.6328, i64 1, i64 0 }, ptr %a77 + store { ptr, i64, i64 } { ptr @.str.6536, i64 1, i64 0 }, ptr %a77 %t78 = call i32 @finch_str_eq(ptr %a76, ptr %a77) %t79 = icmp ne i32 %t78, 0 - br label %logic.rend9178 -logic.rend9178: - br label %logic.end9175 -logic.end9175: - %t80 = phi i1 [ false, %logic.from9173 ], [ %t79, %logic.rend9178 ] - br i1 %t80, label %while.body9165, label %while.end9166 -while.body9165: + br label %logic.rend9583 +logic.rend9583: + br label %logic.end9580 +logic.end9580: + %t80 = phi i1 [ false, %logic.from9578 ], [ %t79, %logic.rend9583 ] + br i1 %t80, label %while.body9570, label %while.end9571 +while.body9570: %t81 = getelementptr inbounds { ptr, i64, i64 }, ptr %a14, i32 0, i32 1 %t82 = load i64, ptr %t81 %t83 = icmp uge i64 0, %t82 - br i1 %t83, label %range9179, label %inrange9180 -range9179: - call void @finch_panic_index(ptr @.str.6329, i64 384, i64 0, i64 %t82) + br i1 %t83, label %range9584, label %inrange9585 +range9584: + call void @finch_panic_index(ptr @.str.6537, i64 384, i64 0, i64 %t82) unreachable -inrange9180: +inrange9585: %t84 = load ptr, ptr %a14 %t85 = getelementptr inbounds { ptr, i64, i64 }, ptr %t84, i64 0 %t86 = load { ptr, i64, i64 }, ptr %t85 @@ -95546,11 +99571,11 @@ inrange9180: %t88 = getelementptr inbounds { ptr, i64, i64 }, ptr %a14, i32 0, i32 1 %t89 = load i64, ptr %t88 %t90 = icmp eq i64 %t89, 0 - br i1 %t90, label %panic9181, label %ok9182 -panic9181: - call void @finch_panic(ptr @.str.6330, i64 385, ptr @.str.6331) + br i1 %t90, label %panic9586, label %ok9587 +panic9586: + call void @finch_panic(ptr @.str.6538, i64 385, ptr @.str.6539) unreachable -ok9182: +ok9587: %t91 = sub i64 %t89, 1 %t92 = load ptr, ptr %a14 %t93 = getelementptr inbounds { ptr, i64, i64 }, ptr %t92, i64 %t91 @@ -95558,71 +99583,71 @@ ok9182: store i64 %t91, ptr %t88 store { ptr, i64, i64 } %t94, ptr %a95 call void @finch_str_drop(ptr %a95) - br label %while.cond9164 -while.end9166: + br label %while.cond9569 +while.end9571: store i1 false, ptr %a96 %t97 = getelementptr inbounds { ptr, i64, i64 }, ptr %a14, i32 0, i32 1 %t98 = load i64, ptr %t97 %t99 = icmp eq i64 %t98, 2 - br label %logic.from9183 -logic.from9183: - br i1 %t99, label %logic.rhs9184, label %logic.end9185 -logic.rhs9184: + br label %logic.from9588 +logic.from9588: + br i1 %t99, label %logic.rhs9589, label %logic.end9590 +logic.rhs9589: %t100 = load { ptr, i64, i64 }, ptr %a14 %t101 = extractvalue { ptr, i64, i64 } %t100, 1 %t102 = icmp uge i64 0, %t101 - br i1 %t102, label %range9186, label %inrange9187 -range9186: - call void @finch_panic_index(ptr @.str.6332, i64 388, i64 0, i64 %t101) + br i1 %t102, label %range9591, label %inrange9592 +range9591: + call void @finch_panic_index(ptr @.str.6540, i64 388, i64 0, i64 %t101) unreachable -inrange9187: +inrange9592: %t103 = extractvalue { ptr, i64, i64 } %t100, 0 %t104 = getelementptr inbounds { ptr, i64, i64 }, ptr %t103, i64 0 %t105 = load { ptr, i64, i64 }, ptr %t104 store { ptr, i64, i64 } %t105, ptr %a106 - store { ptr, i64, i64 } { ptr @.str.6333, i64 1, i64 0 }, ptr %a107 + store { ptr, i64, i64 } { ptr @.str.6541, i64 1, i64 0 }, ptr %a107 %t108 = call i32 @finch_str_eq(ptr %a106, ptr %a107) %t109 = icmp ne i32 %t108, 0 - br label %logic.rend9188 -logic.rend9188: - br label %logic.end9185 -logic.end9185: - %t110 = phi i1 [ false, %logic.from9183 ], [ %t109, %logic.rend9188 ] - br i1 %t110, label %then9189, label %endif9191 -then9189: + br label %logic.rend9593 +logic.rend9593: + br label %logic.end9590 +logic.end9590: + %t110 = phi i1 [ false, %logic.from9588 ], [ %t109, %logic.rend9593 ] + br i1 %t110, label %then9594, label %endif9596 +then9594: store i1 true, ptr %a96 %t111 = getelementptr inbounds { ptr, i64, i64 }, ptr %a14, i32 0, i32 1 %t112 = load i64, ptr %t111 %t113 = icmp uge i64 0, %t112 - br i1 %t113, label %range9192, label %inrange9193 -range9192: - call void @finch_panic_index(ptr @.str.6334, i64 390, i64 0, i64 %t112) + br i1 %t113, label %range9597, label %inrange9598 +range9597: + call void @finch_panic_index(ptr @.str.6542, i64 390, i64 0, i64 %t112) unreachable -inrange9193: +inrange9598: %t114 = load ptr, ptr %a14 %t115 = getelementptr inbounds { ptr, i64, i64 }, ptr %t114, i64 0 %t116 = load { ptr, i64, i64 }, ptr %t115 call void @finch_arr_remove_gap(ptr %a14, i64 0, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) store { ptr, i64, i64 } %t116, ptr %a117 call void @finch_str_drop(ptr %a117) - br label %endif9191 -endif9191: + br label %endif9596 +endif9596: %t118 = getelementptr inbounds { ptr, i64, i64 }, ptr %a14, i32 0, i32 1 %t119 = load i64, ptr %t118 %t120 = icmp ne i64 %t119, 1 - br i1 %t120, label %then9194, label %endif9196 -then9194: + br i1 %t120, label %then9599, label %endif9601 +then9599: call void @finch.drop.arr_str(ptr %a14) ret %S.cimport.Number zeroinitializer -endif9196: +endif9601: %t121 = load { ptr, i64, i64 }, ptr %a14 %t122 = extractvalue { ptr, i64, i64 } %t121, 1 %t123 = icmp uge i64 0, %t122 - br i1 %t123, label %range9197, label %inrange9198 -range9197: - call void @finch_panic_index(ptr @.str.6335, i64 395, i64 0, i64 %t122) + br i1 %t123, label %range9602, label %inrange9603 +range9602: + call void @finch_panic_index(ptr @.str.6543, i64 395, i64 0, i64 %t122) unreachable -inrange9198: +inrange9603: %t124 = extractvalue { ptr, i64, i64 } %t121, 0 %t125 = getelementptr inbounds { ptr, i64, i64 }, ptr %t124, i64 0 %t126 = load { ptr, i64, i64 }, ptr %t125 @@ -95633,154 +99658,154 @@ inrange9198: %t131 = getelementptr inbounds { ptr, i64, i64 }, ptr %a130, i32 0, i32 1 %t132 = load i64, ptr %t131 %t133 = icmp eq i64 %t132, 0 - br label %logic.from9199 -logic.from9199: - br i1 %t133, label %logic.end9201, label %logic.rhs9200 -logic.rhs9200: + br label %logic.from9604 +logic.from9604: + br i1 %t133, label %logic.end9606, label %logic.rhs9605 +logic.rhs9605: %t134 = load { ptr, i64, i64 }, ptr %a130 %t135 = extractvalue { ptr, i64, i64 } %t134, 1 %t136 = icmp uge i64 0, %t135 - br i1 %t136, label %range9202, label %inrange9203 -range9202: - call void @finch_panic_index(ptr @.str.6336, i64 396, i64 0, i64 %t135) + br i1 %t136, label %range9607, label %inrange9608 +range9607: + call void @finch_panic_index(ptr @.str.6544, i64 396, i64 0, i64 %t135) unreachable -inrange9203: +inrange9608: %t137 = extractvalue { ptr, i64, i64 } %t134, 0 %t138 = getelementptr inbounds i8, ptr %t137, i64 0 %t139 = load i8, ptr %t138 %t140 = icmp uge i8 %t139, 48 - br label %logic.from9204 -logic.from9204: - br i1 %t140, label %logic.rhs9205, label %logic.end9206 -logic.rhs9205: + br label %logic.from9609 +logic.from9609: + br i1 %t140, label %logic.rhs9610, label %logic.end9611 +logic.rhs9610: %t141 = load { ptr, i64, i64 }, ptr %a130 %t142 = extractvalue { ptr, i64, i64 } %t141, 1 %t143 = icmp uge i64 0, %t142 - br i1 %t143, label %range9207, label %inrange9208 -range9207: - call void @finch_panic_index(ptr @.str.6337, i64 396, i64 0, i64 %t142) + br i1 %t143, label %range9612, label %inrange9613 +range9612: + call void @finch_panic_index(ptr @.str.6545, i64 396, i64 0, i64 %t142) unreachable -inrange9208: +inrange9613: %t144 = extractvalue { ptr, i64, i64 } %t141, 0 %t145 = getelementptr inbounds i8, ptr %t144, i64 0 %t146 = load i8, ptr %t145 %t147 = icmp ule i8 %t146, 57 - br label %logic.rend9209 -logic.rend9209: - br label %logic.end9206 -logic.end9206: - %t148 = phi i1 [ false, %logic.from9204 ], [ %t147, %logic.rend9209 ] - br label %logic.from9210 -logic.from9210: - br i1 %t148, label %logic.end9212, label %logic.rhs9211 -logic.rhs9211: + br label %logic.rend9614 +logic.rend9614: + br label %logic.end9611 +logic.end9611: + %t148 = phi i1 [ false, %logic.from9609 ], [ %t147, %logic.rend9614 ] + br label %logic.from9615 +logic.from9615: + br i1 %t148, label %logic.end9617, label %logic.rhs9616 +logic.rhs9616: %t149 = load { ptr, i64, i64 }, ptr %a130 %t150 = extractvalue { ptr, i64, i64 } %t149, 1 %t151 = icmp uge i64 0, %t150 - br i1 %t151, label %range9213, label %inrange9214 -range9213: - call void @finch_panic_index(ptr @.str.6338, i64 396, i64 0, i64 %t150) + br i1 %t151, label %range9618, label %inrange9619 +range9618: + call void @finch_panic_index(ptr @.str.6546, i64 396, i64 0, i64 %t150) unreachable -inrange9214: +inrange9619: %t152 = extractvalue { ptr, i64, i64 } %t149, 0 %t153 = getelementptr inbounds i8, ptr %t152, i64 0 %t154 = load i8, ptr %t153 %t155 = icmp eq i8 %t154, 46 - br label %logic.rend9215 -logic.rend9215: - br label %logic.end9212 -logic.end9212: - %t156 = phi i1 [ true, %logic.from9210 ], [ %t155, %logic.rend9215 ] + br label %logic.rend9620 +logic.rend9620: + br label %logic.end9617 +logic.end9617: + %t156 = phi i1 [ true, %logic.from9615 ], [ %t155, %logic.rend9620 ] %t157 = xor i1 %t156, true - br label %logic.rend9216 -logic.rend9216: - br label %logic.end9201 -logic.end9201: - %t158 = phi i1 [ true, %logic.from9199 ], [ %t157, %logic.rend9216 ] - br i1 %t158, label %then9217, label %endif9219 -then9217: + br label %logic.rend9621 +logic.rend9621: + br label %logic.end9606 +logic.end9606: + %t158 = phi i1 [ true, %logic.from9604 ], [ %t157, %logic.rend9621 ] + br i1 %t158, label %then9622, label %endif9624 +then9622: call void @finch_str_drop(ptr %a130) call void @finch.drop.arr_str(ptr %a14) ret %S.cimport.Number zeroinitializer -endif9219: +endif9624: %t159 = load { ptr, i64, i64 }, ptr %a130 store { ptr, i64, i64 } %t159, ptr %a160 - store { ptr, i64, i64 } { ptr @.str.6340, i64 1, i64 0 }, ptr %a162 + store { ptr, i64, i64 } { ptr @.str.6548, i64 1, i64 0 }, ptr %a162 %t163 = call i64 @finch_str_find(ptr %a160, ptr %a162) %t164 = icmp sge i64 %t163, 0 - br label %logic.from9220 -logic.from9220: - br i1 %t164, label %logic.end9222, label %logic.rhs9221 -logic.rhs9221: + br label %logic.from9625 +logic.from9625: + br i1 %t164, label %logic.end9627, label %logic.rhs9626 +logic.rhs9626: %t165 = load { ptr, i64, i64 }, ptr %a130 store { ptr, i64, i64 } %t165, ptr %a166 - store { ptr, i64, i64 } { ptr @.str.6342, i64 1, i64 0 }, ptr %a168 + store { ptr, i64, i64 } { ptr @.str.6550, i64 1, i64 0 }, ptr %a168 %t169 = call i64 @finch_str_find(ptr %a166, ptr %a168) %t170 = icmp sge i64 %t169, 0 - br label %logic.rend9223 -logic.rend9223: - br label %logic.end9222 -logic.end9222: - %t171 = phi i1 [ true, %logic.from9220 ], [ %t170, %logic.rend9223 ] - br label %logic.from9224 -logic.from9224: - br i1 %t171, label %logic.end9226, label %logic.rhs9225 -logic.rhs9225: + br label %logic.rend9628 +logic.rend9628: + br label %logic.end9627 +logic.end9627: + %t171 = phi i1 [ true, %logic.from9625 ], [ %t170, %logic.rend9628 ] + br label %logic.from9629 +logic.from9629: + br i1 %t171, label %logic.end9631, label %logic.rhs9630 +logic.rhs9630: %t172 = load { ptr, i64, i64 }, ptr %a130 store { ptr, i64, i64 } %t172, ptr %a173 - store { ptr, i64, i64 } { ptr @.str.6344, i64 1, i64 0 }, ptr %a175 + store { ptr, i64, i64 } { ptr @.str.6552, i64 1, i64 0 }, ptr %a175 %t176 = call i64 @finch_str_find(ptr %a173, ptr %a175) %t177 = icmp sge i64 %t176, 0 - br label %logic.rend9227 -logic.rend9227: - br label %logic.end9226 -logic.end9226: - %t178 = phi i1 [ true, %logic.from9224 ], [ %t177, %logic.rend9227 ] - br label %logic.from9228 -logic.from9228: - br i1 %t178, label %logic.rhs9229, label %logic.end9230 -logic.rhs9229: + br label %logic.rend9632 +logic.rend9632: + br label %logic.end9631 +logic.end9631: + %t178 = phi i1 [ true, %logic.from9629 ], [ %t177, %logic.rend9632 ] + br label %logic.from9633 +logic.from9633: + br i1 %t178, label %logic.rhs9634, label %logic.end9635 +logic.rhs9634: %t179 = load { ptr, i64, i64 }, ptr %a130 store { ptr, i64, i64 } %t179, ptr %a180 - store { ptr, i64, i64 } { ptr @.str.6346, i64 2, i64 0 }, ptr %a182 + store { ptr, i64, i64 } { ptr @.str.6554, i64 2, i64 0 }, ptr %a182 %t183 = call i32 @finch_str_starts(ptr %a180, ptr %a182) %t184 = icmp ne i32 %t183, 0 %t185 = xor i1 %t184, true - br label %logic.rend9231 -logic.rend9231: - br label %logic.end9230 -logic.end9230: - %t186 = phi i1 [ false, %logic.from9228 ], [ %t185, %logic.rend9231 ] + br label %logic.rend9636 +logic.rend9636: + br label %logic.end9635 +logic.end9635: + %t186 = phi i1 [ false, %logic.from9633 ], [ %t185, %logic.rend9636 ] store i1 %t186, ptr %a187 %t188 = load i1, ptr %a187 - br i1 %t188, label %then9232, label %endif9234 -then9232: + br i1 %t188, label %then9637, label %endif9639 +then9637: %t189 = load { ptr, i64, i64 }, ptr %a130 store { ptr, i64, i64 } %t189, ptr %a190 call void @finch_str_copy(ptr %a191, ptr %a190) %t192 = load { ptr, i64, i64 }, ptr %a191 store { ptr, i64, i64 } %t192, ptr %a193 - br label %while.cond9235 -while.cond9235: + br label %while.cond9640 +while.cond9640: %t194 = getelementptr inbounds { ptr, i64, i64 }, ptr %a193, i32 0, i32 1 %t195 = load i64, ptr %t194 %t196 = icmp sgt i64 %t195, 0 - br label %logic.from9238 -logic.from9238: - br i1 %t196, label %logic.rhs9239, label %logic.end9240 -logic.rhs9239: - store { ptr, i64, i64 } { ptr @.str.6347, i64 4, i64 0 }, ptr %a197 + br label %logic.from9643 +logic.from9643: + br i1 %t196, label %logic.rhs9644, label %logic.end9645 +logic.rhs9644: + store { ptr, i64, i64 } { ptr @.str.6555, i64 4, i64 0 }, ptr %a197 %t199 = getelementptr inbounds { ptr, i64, i64 }, ptr %a193, i32 0, i32 1 %t200 = load i64, ptr %t199 %t201 = sub i64 %t200, 1 %t202 = load { ptr, i64, i64 }, ptr %a193 %t203 = extractvalue { ptr, i64, i64 } %t202, 1 %t204 = icmp uge i64 %t201, %t203 - br i1 %t204, label %range9241, label %inrange9242 -range9241: - call void @finch_panic_index(ptr @.str.6349, i64 402, i64 %t201, i64 %t203) + br i1 %t204, label %range9646, label %inrange9647 +range9646: + call void @finch_panic_index(ptr @.str.6557, i64 402, i64 %t201, i64 %t203) unreachable -inrange9242: +inrange9647: %t205 = extractvalue { ptr, i64, i64 } %t202, 0 %t206 = getelementptr inbounds i8, ptr %t205, i64 %t201 %t207 = load i8, ptr %t206 @@ -95791,26 +99816,26 @@ inrange9242: %t212 = icmp sge i64 %t211, 0 store { ptr, i64, i64 } %t209, ptr %a213 call void @finch_str_drop(ptr %a213) - br label %logic.rend9243 -logic.rend9243: - br label %logic.end9240 -logic.end9240: - %t214 = phi i1 [ false, %logic.from9238 ], [ %t212, %logic.rend9243 ] - br i1 %t214, label %while.body9236, label %while.end9237 -while.body9236: + br label %logic.rend9648 +logic.rend9648: + br label %logic.end9645 +logic.end9645: + %t214 = phi i1 [ false, %logic.from9643 ], [ %t212, %logic.rend9648 ] + br i1 %t214, label %while.body9641, label %while.end9642 +while.body9641: %t215 = load { ptr, i64, i64 }, ptr %a193 store { ptr, i64, i64 } %t215, ptr %a216 %t218 = getelementptr inbounds { ptr, i64, i64 }, ptr %a193, i32 0, i32 1 %t219 = load i64, ptr %t218 %t220 = sub i64 %t219, 1 - call void @finch_str_sub(ptr %a217, ptr %a216, i64 0, i64 %t220, ptr @.str.6350, i64 403) + call void @finch_str_sub(ptr %a217, ptr %a216, i64 0, i64 %t220, ptr @.str.6558, i64 403) %t221 = load { ptr, i64, i64 }, ptr %a217 %t222 = load { ptr, i64, i64 }, ptr %a193 store { ptr, i64, i64 } %t221, ptr %a193 store { ptr, i64, i64 } %t222, ptr %a223 call void @finch_str_drop(ptr %a223) - br label %while.cond9235 -while.end9237: + br label %while.cond9640 +while.end9642: %t224 = load { ptr, i64, i64 }, ptr %a193 store { ptr, i64, i64 } zeroinitializer, ptr %a225 store double 0.0, ptr %a226 @@ -95819,24 +99844,24 @@ while.end9237: %t229 = icmp eq i32 %t228, 0 %t230 = load { ptr, i64, i64 }, ptr %a225 %t231 = load double, ptr %a226 - br i1 %t229, label %or.failed9244, label %or.ok9245 -or.failed9244: + br i1 %t229, label %or.failed9649, label %or.ok9650 +or.failed9649: store { ptr, i64, i64 } %t230, ptr %a232 call void @finch_str_drop(ptr %a232) call void @finch_str_drop(ptr %a193) call void @finch_str_drop(ptr %a130) call void @finch.drop.arr_str(ptr %a14) ret %S.cimport.Number zeroinitializer -or.ok9245: +or.ok9650: store double %t231, ptr %a233 %t234 = load i1, ptr %a96 - br i1 %t234, label %then9246, label %endif9248 -then9246: + br i1 %t234, label %then9651, label %endif9653 +then9651: %t235 = load double, ptr %a233 %t236 = fsub double 0.0, %t235 store double %t236, ptr %a233 - br label %endif9248 -endif9248: + br label %endif9653 +endif9653: %t237 = insertvalue %S.cimport.CConst zeroinitializer, i1 true, 0 %t238 = load double, ptr %a233 %t239 = insertvalue %S.cimport.CConst %t237, double %t238, 2 @@ -95851,24 +99876,24 @@ endif9248: call void @finch_str_drop(ptr %a130) call void @finch.drop.arr_str(ptr %a14) ret %S.cimport.Number %t246 -endif9234: +endif9639: %t247 = load { ptr, i64, i64 }, ptr %a130 %t248 = call %S.cimport.Number @finch.cimport.parseInt({ ptr, i64, i64 } %t247) store %S.cimport.Number %t248, ptr %a249 %t250 = getelementptr inbounds %S.cimport.Number, ptr %a249, i32 0, i32 1 %t251 = load i1, ptr %t250 - br label %logic.from9249 -logic.from9249: - br i1 %t251, label %logic.rhs9250, label %logic.end9251 -logic.rhs9250: + br label %logic.from9654 +logic.from9654: + br i1 %t251, label %logic.rhs9655, label %logic.end9656 +logic.rhs9655: %t252 = load i1, ptr %a96 - br label %logic.rend9252 -logic.rend9252: - br label %logic.end9251 -logic.end9251: - %t253 = phi i1 [ false, %logic.from9249 ], [ %t252, %logic.rend9252 ] - br i1 %t253, label %then9253, label %endif9255 -then9253: + br label %logic.rend9657 +logic.rend9657: + br label %logic.end9656 +logic.end9656: + %t253 = phi i1 [ false, %logic.from9654 ], [ %t252, %logic.rend9657 ] + br i1 %t253, label %then9658, label %endif9660 +then9658: %t254 = getelementptr inbounds %S.cimport.Number, ptr %a249, i32 0, i32 0 %t255 = getelementptr inbounds %S.cimport.CConst, ptr %t254, i32 0, i32 1 %t256 = load i64, ptr %t255 @@ -95876,8 +99901,8 @@ then9253: %t258 = getelementptr inbounds %S.cimport.Number, ptr %a249, i32 0, i32 0 %t259 = getelementptr inbounds %S.cimport.CConst, ptr %t258, i32 0, i32 1 store i64 %t257, ptr %t259 - br label %endif9255 -endif9255: + br label %endif9660 +endif9660: %t260 = load %S.cimport.Number, ptr %a249 call void @finch_str_drop(ptr %a130) call void @finch.drop.arr_str(ptr %a14) @@ -96052,8 +100077,8 @@ entry: store i32 %t12, ptr %a13 %t14 = load i32, ptr %a13 %t15 = icmp eq i32 %t14, 20 - br i1 %t15, label %then9256, label %else9257 -then9256: + br i1 %t15, label %then9661, label %else9662 +then9661: %t18 = load %S.C.CXCursor, ptr %a2 store %S.C.CXCursor %t18, ptr %a19 call void @clang_getTypedefDeclUnderlyingType(ptr sret(%S.C.CXType) align 16 %a17, ptr %a19) @@ -96065,8 +100090,8 @@ then9256: %t24 = getelementptr inbounds %S.C.CXType, ptr %a23, i32 0, i32 0 %t25 = load i32, ptr %t24 %t26 = icmp eq i32 %t25, 105 - br i1 %t26, label %then9259, label %endif9261 -then9259: + br i1 %t26, label %then9664, label %endif9666 +then9664: %t28 = load %S.C.CXType, ptr %a23 store %S.C.CXType %t28, ptr %a29 call void @clang_getTypeDeclaration(ptr sret(%S.C.CXCursor) align 16 %a27, ptr %a29) @@ -96079,49 +100104,49 @@ then9259: store { ptr, i64, i64 } %t35, ptr %a36 %t37 = load ptr, ptr %a1 %t38 = icmp eq ptr %t37, null - br i1 %t38, label %panic9262, label %ok9263 -panic9262: - call void @finch_panic(ptr @.str.6351, i64 437, ptr @.str.6352) + br i1 %t38, label %panic9667, label %ok9668 +panic9667: + call void @finch_panic(ptr @.str.6559, i64 437, ptr @.str.6560) unreachable -ok9263: +ok9668: %t39 = getelementptr inbounds %S.cimport.Importer, ptr %t37, i32 0, i32 3 %t40 = load { ptr, i64, i64 }, ptr %a36 store { ptr, i64, i64 } %t40, ptr %a41 %t42 = call i64 @finch_map_find(ptr %t39, ptr %a41, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t43 = icmp sge i64 %t42, 0 - br label %logic.from9264 -logic.from9264: - br i1 %t43, label %logic.rhs9265, label %logic.end9266 -logic.rhs9265: + br label %logic.from9669 +logic.from9669: + br i1 %t43, label %logic.rhs9670, label %logic.end9671 +logic.rhs9670: %t44 = load ptr, ptr %a1 %t45 = icmp eq ptr %t44, null - br i1 %t45, label %panic9267, label %ok9268 -panic9267: - call void @finch_panic(ptr @.str.6353, i64 437, ptr @.str.6354) + br i1 %t45, label %panic9672, label %ok9673 +panic9672: + call void @finch_panic(ptr @.str.6561, i64 437, ptr @.str.6562) unreachable -ok9268: +ok9673: %t46 = getelementptr inbounds %S.cimport.Importer, ptr %t44, i32 0, i32 0 %t47 = getelementptr inbounds %S.cimport.CImports, ptr %t46, i32 0, i32 3 %t48 = load ptr, ptr %a1 %t49 = icmp eq ptr %t48, null - br i1 %t49, label %panic9269, label %ok9270 -panic9269: - call void @finch_panic(ptr @.str.6355, i64 437, ptr @.str.6356) + br i1 %t49, label %panic9674, label %ok9675 +panic9674: + call void @finch_panic(ptr @.str.6563, i64 437, ptr @.str.6564) unreachable -ok9270: +ok9675: %t50 = getelementptr inbounds %S.cimport.Importer, ptr %t48, i32 0, i32 3 %t51 = load { ptr, i64, i64 }, ptr %a36 store { ptr, i64, i64 } %t51, ptr %a52 %t53 = call i64 @finch_map_find(ptr %t50, ptr %a52, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t54 = icmp slt i64 %t53, 0 - br i1 %t54, label %map.missing9271, label %map.found9272 -map.missing9271: + br i1 %t54, label %map.missing9676, label %map.found9677 +map.missing9676: store { ptr, i64, i64 } zeroinitializer, ptr %a55 store { ptr, i64, i64 } %t51, ptr %a56 call void @finch_buf_str(ptr %a55, ptr %a56, i32 1) - call void @finch_map_missing(ptr @.str.6357, i64 437, ptr %a55) + call void @finch_map_missing(ptr @.str.6565, i64 437, ptr %a55) unreachable -map.found9272: +map.found9677: %t57 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t50, i32 0, i32 0 %t58 = load ptr, ptr %t57 %t59 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t58, i64 %t53 @@ -96130,25 +100155,25 @@ map.found9272: store { ptr, i64, i64 } %t61, ptr %a62 %t63 = call i64 @finch_map_find(ptr %t47, ptr %a62, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t64 = icmp sge i64 %t63, 0 - br label %logic.rend9273 -logic.rend9273: - br label %logic.end9266 -logic.end9266: - %t65 = phi i1 [ false, %logic.from9264 ], [ %t64, %logic.rend9273 ] + br label %logic.rend9678 +logic.rend9678: + br label %logic.end9671 +logic.end9671: + %t65 = phi i1 [ false, %logic.from9669 ], [ %t64, %logic.rend9678 ] store i1 %t65, ptr %a66 %t67 = load i1, ptr %a66 %t68 = xor i1 %t67, true - br label %logic.from9274 -logic.from9274: - br i1 %t68, label %logic.rhs9275, label %logic.end9276 -logic.rhs9275: + br label %logic.from9679 +logic.from9679: + br i1 %t68, label %logic.rhs9680, label %logic.end9681 +logic.rhs9680: %t69 = load ptr, ptr %a1 %t70 = icmp eq ptr %t69, null - br i1 %t70, label %panic9277, label %ok9278 -panic9277: - call void @finch_panic(ptr @.str.6358, i64 438, ptr @.str.6359) + br i1 %t70, label %panic9682, label %ok9683 +panic9682: + call void @finch_panic(ptr @.str.6566, i64 438, ptr @.str.6567) unreachable -ok9278: +ok9683: %t71 = getelementptr inbounds %S.cimport.Importer, ptr %t69, i32 0, i32 0 %t72 = getelementptr inbounds %S.cimport.CImports, ptr %t71, i32 0, i32 3 %t73 = load { ptr, i64, i64 }, ptr %a9 @@ -96156,21 +100181,21 @@ ok9278: %t75 = call i64 @finch_map_find(ptr %t72, ptr %a74, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t76 = icmp sge i64 %t75, 0 %t77 = xor i1 %t76, true - br label %logic.rend9279 -logic.rend9279: - br label %logic.end9276 -logic.end9276: - %t78 = phi i1 [ false, %logic.from9274 ], [ %t77, %logic.rend9279 ] - br i1 %t78, label %then9280, label %endif9282 -then9280: + br label %logic.rend9684 +logic.rend9684: + br label %logic.end9681 +logic.end9681: + %t78 = phi i1 [ false, %logic.from9679 ], [ %t77, %logic.rend9684 ] + br i1 %t78, label %then9685, label %endif9687 +then9685: %t79 = load { ptr, i64, i64 }, ptr %a9 %t80 = load ptr, ptr %a1 %t81 = icmp eq ptr %t80, null - br i1 %t81, label %panic9283, label %ok9284 -panic9283: - call void @finch_panic(ptr @.str.6360, i64 439, ptr @.str.6361) + br i1 %t81, label %panic9688, label %ok9689 +panic9688: + call void @finch_panic(ptr @.str.6568, i64 439, ptr @.str.6569) unreachable -ok9284: +ok9689: %t82 = getelementptr inbounds %S.cimport.Importer, ptr %t80, i32 0, i32 3 %t83 = load { ptr, i64, i64 }, ptr %a36 store { ptr, i64, i64 } %t83, ptr %a84 @@ -96181,14 +100206,14 @@ ok9284: %t89 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t88, i64 %t86 %t90 = load i32, ptr %a85 %t91 = icmp ne i32 %t90, 0 - br i1 %t91, label %map.new9285, label %map.have9286 -map.new9285: + br i1 %t91, label %map.new9690, label %map.have9691 +map.new9690: %t92 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t89, i32 0, i32 1 call void @finch_str_copy(ptr %t92, ptr %a84) %t93 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t89, i32 0, i32 2 store { ptr, i64, i64 } zeroinitializer, ptr %t93 - br label %map.have9286 -map.have9286: + br label %map.have9691 +map.have9691: %t94 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t89, i32 0, i32 2 store { ptr, i64, i64 } %t79, ptr %a95 call void @finch_str_copy(ptr %a96, ptr %a95) @@ -96197,35 +100222,35 @@ map.have9286: store { ptr, i64, i64 } %t97, ptr %t94 store { ptr, i64, i64 } %t98, ptr %a99 call void @finch_str_drop(ptr %a99) - br label %endif9282 -endif9282: + br label %endif9687 +endif9687: call void @finch_str_drop(ptr %a36) - br label %endif9261 -endif9261: - br label %endif9258 -else9257: + br label %endif9666 +endif9666: + br label %endif9663 +else9662: %t100 = load i32, ptr %a13 %t101 = icmp eq i32 %t100, 8 - br i1 %t101, label %then9287, label %else9288 -then9287: + br i1 %t101, label %then9692, label %else9693 +then9692: %t102 = load ptr, ptr %a1 %t103 = icmp eq ptr %t102, null - br i1 %t103, label %panic9290, label %ok9291 -panic9290: - call void @finch_panic(ptr @.str.6362, i64 443, ptr @.str.6363) + br i1 %t103, label %panic9695, label %ok9696 +panic9695: + call void @finch_panic(ptr @.str.6570, i64 443, ptr @.str.6571) unreachable -ok9291: +ok9696: %t104 = getelementptr inbounds %S.cimport.Importer, ptr %t102, i32 0, i32 0 %t105 = getelementptr inbounds %S.cimport.CImports, ptr %t104, i32 0, i32 0 %t106 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t106, ptr %a107 %t108 = call i64 @finch_map_find(ptr %t105, ptr %a107, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t109 = icmp sge i64 %t108, 0 - br i1 %t109, label %then9292, label %endif9294 -then9292: + br i1 %t109, label %then9697, label %endif9699 +then9697: call void @finch_str_drop(ptr %a9) ret void -endif9294: +endif9699: %t110 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t110, ptr %a111 call void @finch_str_copy(ptr %a112, ptr %a111) @@ -96233,11 +100258,11 @@ endif9294: %t114 = insertvalue %S.cimport.CFunc zeroinitializer, { ptr, i64, i64 } %t113, 0 %t115 = load ptr, ptr %a1 %t116 = icmp eq ptr %t115, null - br i1 %t116, label %panic9295, label %ok9296 -panic9295: - call void @finch_panic(ptr @.str.6364, i64 446, ptr @.str.6365) + br i1 %t116, label %panic9700, label %ok9701 +panic9700: + call void @finch_panic(ptr @.str.6572, i64 446, ptr @.str.6573) unreachable -ok9296: +ok9701: %t117 = getelementptr inbounds %S.cimport.Importer, ptr %t115, i32 0, i32 2 %t118 = load { ptr, i64, i64 }, ptr %t117 store { ptr, i64, i64 } %t118, ptr %a119 @@ -96249,21 +100274,21 @@ ok9296: store %S.C.CXCursor %t124, ptr %a125 %t126 = call i32 @clang_Cursor_getStorageClass(ptr %a125) %t127 = icmp eq i32 %t126, 3 - br i1 %t127, label %then9297, label %endif9299 -then9297: + br i1 %t127, label %then9702, label %endif9704 +then9702: %t128 = getelementptr inbounds %S.cimport.CFunc, ptr %a123, i32 0, i32 5 %t129 = load { ptr, i64, i64 }, ptr %t128 - store { ptr, i64, i64 } { ptr @.str.6366, i64 62, i64 0 }, ptr %t128 + store { ptr, i64, i64 } { ptr @.str.6574, i64 62, i64 0 }, ptr %t128 store { ptr, i64, i64 } %t129, ptr %a130 call void @finch_str_drop(ptr %a130) %t131 = load %S.cimport.CFunc, ptr %a123 %t132 = load ptr, ptr %a1 %t133 = icmp eq ptr %t132, null - br i1 %t133, label %panic9300, label %ok9301 -panic9300: - call void @finch_panic(ptr @.str.6367, i64 449, ptr @.str.6368) + br i1 %t133, label %panic9705, label %ok9706 +panic9705: + call void @finch_panic(ptr @.str.6575, i64 449, ptr @.str.6576) unreachable -ok9301: +ok9706: %t134 = getelementptr inbounds %S.cimport.Importer, ptr %t132, i32 0, i32 0 %t135 = getelementptr inbounds %S.cimport.CImports, ptr %t134, i32 0, i32 0 %t136 = load { ptr, i64, i64 }, ptr %a9 @@ -96275,14 +100300,14 @@ ok9301: %t142 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t141, i64 %t139 %t143 = load i32, ptr %a138 %t144 = icmp ne i32 %t143, 0 - br i1 %t144, label %map.new9302, label %map.have9303 -map.new9302: + br i1 %t144, label %map.new9707, label %map.have9708 +map.new9707: %t145 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t142, i32 0, i32 1 call void @finch_str_copy(ptr %t145, ptr %a137) %t146 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t142, i32 0, i32 2 store %S.cimport.CFunc zeroinitializer, ptr %t146 - br label %map.have9303 -map.have9303: + br label %map.have9708 +map.have9708: %t147 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t142, i32 0, i32 2 store %S.cimport.CFunc %t131, ptr %a148 call void @finch.copy.S_cimport_CFunc(ptr %a149, ptr %a148) @@ -96294,7 +100319,7 @@ map.have9303: call void @finch.drop.S_cimport_CFunc(ptr %a123) call void @finch_str_drop(ptr %a9) ret void -endif9299: +endif9704: %t155 = load %S.C.CXCursor, ptr %a2 store %S.C.CXCursor %t155, ptr %a156 call void @clang_getCursorType(ptr sret(%S.C.CXType) align 16 %a154, ptr %a156) @@ -96306,21 +100331,21 @@ endif9299: %t161 = getelementptr inbounds %S.C.CXType, ptr %a160, i32 0, i32 0 %t162 = load i32, ptr %t161 %t163 = icmp eq i32 %t162, 110 - br i1 %t163, label %then9304, label %endif9306 -then9304: + br i1 %t163, label %then9709, label %endif9711 +then9709: %t164 = getelementptr inbounds %S.cimport.CFunc, ptr %a123, i32 0, i32 5 %t165 = load { ptr, i64, i64 }, ptr %t164 - store { ptr, i64, i64 } { ptr @.str.6369, i64 42, i64 0 }, ptr %t164 + store { ptr, i64, i64 } { ptr @.str.6577, i64 42, i64 0 }, ptr %t164 store { ptr, i64, i64 } %t165, ptr %a166 call void @finch_str_drop(ptr %a166) %t167 = load %S.cimport.CFunc, ptr %a123 %t168 = load ptr, ptr %a1 %t169 = icmp eq ptr %t168, null - br i1 %t169, label %panic9307, label %ok9308 -panic9307: - call void @finch_panic(ptr @.str.6370, i64 455, ptr @.str.6371) + br i1 %t169, label %panic9712, label %ok9713 +panic9712: + call void @finch_panic(ptr @.str.6578, i64 455, ptr @.str.6579) unreachable -ok9308: +ok9713: %t170 = getelementptr inbounds %S.cimport.Importer, ptr %t168, i32 0, i32 0 %t171 = getelementptr inbounds %S.cimport.CImports, ptr %t170, i32 0, i32 0 %t172 = load { ptr, i64, i64 }, ptr %a9 @@ -96332,14 +100357,14 @@ ok9308: %t178 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t177, i64 %t175 %t179 = load i32, ptr %a174 %t180 = icmp ne i32 %t179, 0 - br i1 %t180, label %map.new9309, label %map.have9310 -map.new9309: + br i1 %t180, label %map.new9714, label %map.have9715 +map.new9714: %t181 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t178, i32 0, i32 1 call void @finch_str_copy(ptr %t181, ptr %a173) %t182 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t178, i32 0, i32 2 store %S.cimport.CFunc zeroinitializer, ptr %t182 - br label %map.have9310 -map.have9310: + br label %map.have9715 +map.have9715: %t183 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t178, i32 0, i32 2 store %S.cimport.CFunc %t167, ptr %a184 call void @finch.copy.S_cimport_CFunc(ptr %a185, ptr %a184) @@ -96351,7 +100376,7 @@ map.have9310: call void @finch.drop.S_cimport_CFunc(ptr %a123) call void @finch_str_drop(ptr %a9) ret void -endif9306: +endif9711: %t189 = load ptr, ptr %a1 %t191 = load %S.C.CXType, ptr %a160 store %S.C.CXType %t191, ptr %a192 @@ -96361,8 +100386,8 @@ endif9306: store %S.cimport.Mapped %t194, ptr %a195 %t196 = getelementptr inbounds %S.cimport.Mapped, ptr %a195, i32 0, i32 2 %t197 = load i1, ptr %t196 - br i1 %t197, label %then9311, label %else9312 -then9311: + br i1 %t197, label %then9716, label %else9717 +then9716: %t198 = getelementptr inbounds %S.cimport.Mapped, ptr %a195, i32 0, i32 0 %t199 = load %S.ast.Type, ptr %t198 %t200 = getelementptr inbounds %S.cimport.CFunc, ptr %a123, i32 0, i32 2 @@ -96373,8 +100398,8 @@ then9311: store %S.ast.Type %t203, ptr %t200 store %S.ast.Type %t204, ptr %a205 call void @finch.drop.S_ast_Type(ptr %a205) - br label %endif9313 -else9312: + br label %endif9718 +else9717: %t206 = getelementptr inbounds %S.cimport.Mapped, ptr %a195, i32 0, i32 1 %t207 = load { ptr, i64, i64 }, ptr %t206 %t208 = getelementptr inbounds %S.cimport.CFunc, ptr %a123, i32 0, i32 5 @@ -96385,8 +100410,8 @@ else9312: store { ptr, i64, i64 } %t211, ptr %t208 store { ptr, i64, i64 } %t212, ptr %a213 call void @finch_str_drop(ptr %a213) - br label %endif9313 -endif9313: + br label %endif9718 +endif9718: %t214 = load %S.C.CXType, ptr %a160 store %S.C.CXType %t214, ptr %a215 %t216 = call i32 @clang_getNumArgTypes(ptr %a215) @@ -96394,20 +100419,20 @@ endif9313: store i64 %t217, ptr %a218 %t219 = load i64, ptr %a218 store i64 0, ptr %a220 - br label %for.cond9314 -for.cond9314: + br label %for.cond9719 +for.cond9719: %t221 = load i64, ptr %a220 %t222 = icmp slt i64 %t221, %t219 - br i1 %t222, label %for.body9315, label %for.end9317 -for.body9315: + br i1 %t222, label %for.body9720, label %for.end9722 +for.body9720: %t223 = getelementptr inbounds %S.cimport.CFunc, ptr %a123, i32 0, i32 5 %t224 = getelementptr inbounds { ptr, i64, i64 }, ptr %t223, i32 0, i32 1 %t225 = load i64, ptr %t224 %t226 = icmp sgt i64 %t225, 0 - br i1 %t226, label %then9318, label %endif9320 -then9318: - br label %for.end9317 -endif9320: + br i1 %t226, label %then9723, label %endif9725 +then9723: + br label %for.end9722 +endif9725: %t227 = load ptr, ptr %a1 %t229 = load %S.C.CXType, ptr %a160 store %S.C.CXType %t229, ptr %a230 @@ -96419,8 +100444,8 @@ endif9320: store %S.cimport.Mapped %t234, ptr %a235 %t236 = getelementptr inbounds %S.cimport.Mapped, ptr %a235, i32 0, i32 2 %t237 = load i1, ptr %t236 - br i1 %t237, label %then9321, label %else9322 -then9321: + br i1 %t237, label %then9726, label %else9727 +then9726: %t238 = getelementptr inbounds %S.cimport.CFunc, ptr %a123, i32 0, i32 3 %t239 = getelementptr inbounds { ptr, i64, i64 }, ptr %t238, i32 0, i32 1 %t240 = getelementptr inbounds %S.cimport.Mapped, ptr %a235, i32 0, i32 0 @@ -96435,8 +100460,8 @@ then9321: %t248 = getelementptr inbounds %S.ast.Type, ptr %t247, i64 %t245 store %S.ast.Type %t244, ptr %t248 store i64 %t246, ptr %t239 - br label %endif9323 -else9322: + br label %endif9728 +else9727: %t249 = getelementptr inbounds %S.cimport.Mapped, ptr %a235, i32 0, i32 1 %t250 = load { ptr, i64, i64 }, ptr %t249 %t251 = getelementptr inbounds %S.cimport.CFunc, ptr %a123, i32 0, i32 5 @@ -96447,16 +100472,16 @@ else9322: store { ptr, i64, i64 } %t254, ptr %t251 store { ptr, i64, i64 } %t255, ptr %a256 call void @finch_str_drop(ptr %a256) - br label %endif9323 -endif9323: + br label %endif9728 +endif9728: call void @finch.drop.S_cimport_Mapped(ptr %a235) - br label %for.step9316 -for.step9316: + br label %for.step9721 +for.step9721: %t257 = load i64, ptr %a220 %t258 = add i64 %t257, 1 store i64 %t258, ptr %a220 - br label %for.cond9314 -for.end9317: + br label %for.cond9719 +for.end9722: %t259 = load %S.C.CXType, ptr %a160 store %S.C.CXType %t259, ptr %a260 %t261 = call i32 @clang_isFunctionTypeVariadic(ptr %a260) @@ -96466,11 +100491,11 @@ for.end9317: %t264 = load %S.cimport.CFunc, ptr %a123 %t265 = load ptr, ptr %a1 %t266 = icmp eq ptr %t265, null - br i1 %t266, label %panic9324, label %ok9325 -panic9324: - call void @finch_panic(ptr @.str.6372, i64 477, ptr @.str.6373) + br i1 %t266, label %panic9729, label %ok9730 +panic9729: + call void @finch_panic(ptr @.str.6580, i64 477, ptr @.str.6581) unreachable -ok9325: +ok9730: %t267 = getelementptr inbounds %S.cimport.Importer, ptr %t265, i32 0, i32 0 %t268 = getelementptr inbounds %S.cimport.CImports, ptr %t267, i32 0, i32 0 %t269 = load { ptr, i64, i64 }, ptr %a9 @@ -96482,14 +100507,14 @@ ok9325: %t275 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t274, i64 %t272 %t276 = load i32, ptr %a271 %t277 = icmp ne i32 %t276, 0 - br i1 %t277, label %map.new9326, label %map.have9327 -map.new9326: + br i1 %t277, label %map.new9731, label %map.have9732 +map.new9731: %t278 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t275, i32 0, i32 1 call void @finch_str_copy(ptr %t278, ptr %a270) %t279 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t275, i32 0, i32 2 store %S.cimport.CFunc zeroinitializer, ptr %t279 - br label %map.have9327 -map.have9327: + br label %map.have9732 +map.have9732: %t280 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t275, i32 0, i32 2 store %S.cimport.CFunc %t264, ptr %a281 call void @finch.copy.S_cimport_CFunc(ptr %a282, ptr %a281) @@ -96500,43 +100525,43 @@ map.have9327: call void @finch.drop.S_cimport_CFunc(ptr %a285) call void @finch.drop.S_cimport_Mapped(ptr %a195) call void @finch.drop.S_cimport_CFunc(ptr %a123) - br label %endif9289 -else9288: + br label %endif9694 +else9693: %t286 = load i32, ptr %a13 %t287 = icmp eq i32 %t286, 9 - br i1 %t287, label %then9328, label %else9329 -then9328: + br i1 %t287, label %then9733, label %else9734 +then9733: %t288 = load %S.C.CXCursor, ptr %a2 store %S.C.CXCursor %t288, ptr %a289 %t290 = call i32 @clang_Cursor_getStorageClass(ptr %a289) %t291 = icmp ne i32 %t290, 2 - br label %logic.from9331 -logic.from9331: - br i1 %t291, label %logic.end9333, label %logic.rhs9332 -logic.rhs9332: + br label %logic.from9736 +logic.from9736: + br i1 %t291, label %logic.end9738, label %logic.rhs9737 +logic.rhs9737: %t292 = load ptr, ptr %a1 %t293 = icmp eq ptr %t292, null - br i1 %t293, label %panic9334, label %ok9335 -panic9334: - call void @finch_panic(ptr @.str.6374, i64 479, ptr @.str.6375) + br i1 %t293, label %panic9739, label %ok9740 +panic9739: + call void @finch_panic(ptr @.str.6582, i64 479, ptr @.str.6583) unreachable -ok9335: +ok9740: %t294 = getelementptr inbounds %S.cimport.Importer, ptr %t292, i32 0, i32 0 %t295 = getelementptr inbounds %S.cimport.CImports, ptr %t294, i32 0, i32 2 %t296 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t296, ptr %a297 %t298 = call i64 @finch_map_find(ptr %t295, ptr %a297, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.ast.Type }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t299 = icmp sge i64 %t298, 0 - br label %logic.rend9336 -logic.rend9336: - br label %logic.end9333 -logic.end9333: - %t300 = phi i1 [ true, %logic.from9331 ], [ %t299, %logic.rend9336 ] - br i1 %t300, label %then9337, label %endif9339 -then9337: + br label %logic.rend9741 +logic.rend9741: + br label %logic.end9738 +logic.end9738: + %t300 = phi i1 [ true, %logic.from9736 ], [ %t299, %logic.rend9741 ] + br i1 %t300, label %then9742, label %endif9744 +then9742: call void @finch_str_drop(ptr %a9) ret void -endif9339: +endif9744: %t301 = load ptr, ptr %a1 %t303 = load %S.C.CXCursor, ptr %a2 store %S.C.CXCursor %t303, ptr %a304 @@ -96546,17 +100571,17 @@ endif9339: store %S.cimport.Mapped %t306, ptr %a307 %t308 = getelementptr inbounds %S.cimport.Mapped, ptr %a307, i32 0, i32 2 %t309 = load i1, ptr %t308 - br i1 %t309, label %then9340, label %endif9342 -then9340: + br i1 %t309, label %then9745, label %endif9747 +then9745: %t310 = getelementptr inbounds %S.cimport.Mapped, ptr %a307, i32 0, i32 0 %t311 = load %S.ast.Type, ptr %t310 %t312 = load ptr, ptr %a1 %t313 = icmp eq ptr %t312, null - br i1 %t313, label %panic9343, label %ok9344 -panic9343: - call void @finch_panic(ptr @.str.6376, i64 484, ptr @.str.6377) + br i1 %t313, label %panic9748, label %ok9749 +panic9748: + call void @finch_panic(ptr @.str.6584, i64 484, ptr @.str.6585) unreachable -ok9344: +ok9749: %t314 = getelementptr inbounds %S.cimport.Importer, ptr %t312, i32 0, i32 0 %t315 = getelementptr inbounds %S.cimport.CImports, ptr %t314, i32 0, i32 2 %t316 = load { ptr, i64, i64 }, ptr %a9 @@ -96568,14 +100593,14 @@ ok9344: %t322 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.ast.Type }, ptr %t321, i64 %t319 %t323 = load i32, ptr %a318 %t324 = icmp ne i32 %t323, 0 - br i1 %t324, label %map.new9345, label %map.have9346 -map.new9345: + br i1 %t324, label %map.new9750, label %map.have9751 +map.new9750: %t325 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.ast.Type }, ptr %t322, i32 0, i32 1 call void @finch_str_copy(ptr %t325, ptr %a317) %t326 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.ast.Type }, ptr %t322, i32 0, i32 2 store %S.ast.Type zeroinitializer, ptr %t326 - br label %map.have9346 -map.have9346: + br label %map.have9751 +map.have9751: %t327 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.ast.Type }, ptr %t322, i32 0, i32 2 store %S.ast.Type %t311, ptr %a328 call void @finch.copy.S_ast_Type(ptr %a329, ptr %a328) @@ -96584,48 +100609,48 @@ map.have9346: store %S.ast.Type %t330, ptr %t327 store %S.ast.Type %t331, ptr %a332 call void @finch.drop.S_ast_Type(ptr %a332) - br label %endif9342 -endif9342: + br label %endif9747 +endif9747: call void @finch.drop.S_cimport_Mapped(ptr %a307) - br label %endif9330 -else9329: + br label %endif9735 +else9734: %t333 = load i32, ptr %a13 %t334 = icmp eq i32 %t333, 2 - br i1 %t334, label %then9347, label %else9348 -then9347: + br i1 %t334, label %then9752, label %else9753 +then9752: %t335 = load %S.C.CXCursor, ptr %a2 store %S.C.CXCursor %t335, ptr %a336 %t337 = call i32 @clang_isCursorDefinition(ptr %a336) %t338 = icmp ne i32 %t337, 0 - br label %logic.from9350 -logic.from9350: - br i1 %t338, label %logic.rhs9351, label %logic.end9352 -logic.rhs9351: + br label %logic.from9755 +logic.from9755: + br i1 %t338, label %logic.rhs9756, label %logic.end9757 +logic.rhs9756: %t339 = getelementptr inbounds { ptr, i64, i64 }, ptr %a9, i32 0, i32 1 %t340 = load i64, ptr %t339 %t341 = icmp sgt i64 %t340, 0 - br label %logic.rend9353 -logic.rend9353: - br label %logic.end9352 -logic.end9352: - %t342 = phi i1 [ false, %logic.from9350 ], [ %t341, %logic.rend9353 ] - br label %logic.from9354 -logic.from9354: - br i1 %t342, label %logic.rhs9355, label %logic.end9356 -logic.rhs9355: + br label %logic.rend9758 +logic.rend9758: + br label %logic.end9757 +logic.end9757: + %t342 = phi i1 [ false, %logic.from9755 ], [ %t341, %logic.rend9758 ] + br label %logic.from9759 +logic.from9759: + br i1 %t342, label %logic.rhs9760, label %logic.end9761 +logic.rhs9760: %t343 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t343, ptr %a344 - store { ptr, i64, i64 } { ptr @.str.6379, i64 1, i64 0 }, ptr %a346 + store { ptr, i64, i64 } { ptr @.str.6587, i64 1, i64 0 }, ptr %a346 %t347 = call i64 @finch_str_find(ptr %a344, ptr %a346) %t348 = icmp sge i64 %t347, 0 %t349 = xor i1 %t348, true - br label %logic.rend9357 -logic.rend9357: - br label %logic.end9356 -logic.end9356: - %t350 = phi i1 [ false, %logic.from9354 ], [ %t349, %logic.rend9357 ] - br i1 %t350, label %then9358, label %endif9360 -then9358: + br label %logic.rend9762 +logic.rend9762: + br label %logic.end9761 +logic.end9761: + %t350 = phi i1 [ false, %logic.from9759 ], [ %t349, %logic.rend9762 ] + br i1 %t350, label %then9763, label %endif9765 +then9763: %t351 = load %S.C.CXCursor, ptr %a2 store %S.C.CXCursor %t351, ptr %a352 %t353 = call [2 x i64] @clang_getCursorUSR(ptr %a352) @@ -96635,27 +100660,27 @@ then9358: store { ptr, i64, i64 } %t356, ptr %a357 %t358 = load ptr, ptr %a1 %t359 = icmp eq ptr %t358, null - br i1 %t359, label %panic9361, label %ok9362 -panic9361: - call void @finch_panic(ptr @.str.6380, i64 489, ptr @.str.6381) + br i1 %t359, label %panic9766, label %ok9767 +panic9766: + call void @finch_panic(ptr @.str.6588, i64 489, ptr @.str.6589) unreachable -ok9362: +ok9767: %t360 = getelementptr inbounds %S.cimport.Importer, ptr %t358, i32 0, i32 3 %t361 = load { ptr, i64, i64 }, ptr %a357 store { ptr, i64, i64 } %t361, ptr %a362 %t363 = call i64 @finch_map_find(ptr %t360, ptr %a362, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t364 = icmp sge i64 %t363, 0 %t365 = xor i1 %t364, true - br i1 %t365, label %then9363, label %endif9365 -then9363: + br i1 %t365, label %then9768, label %endif9770 +then9768: %t366 = load { ptr, i64, i64 }, ptr %a9 %t367 = load ptr, ptr %a1 %t368 = icmp eq ptr %t367, null - br i1 %t368, label %panic9366, label %ok9367 -panic9366: - call void @finch_panic(ptr @.str.6382, i64 490, ptr @.str.6383) + br i1 %t368, label %panic9771, label %ok9772 +panic9771: + call void @finch_panic(ptr @.str.6590, i64 490, ptr @.str.6591) unreachable -ok9367: +ok9772: %t369 = getelementptr inbounds %S.cimport.Importer, ptr %t367, i32 0, i32 3 %t370 = load { ptr, i64, i64 }, ptr %a357 store { ptr, i64, i64 } %t370, ptr %a371 @@ -96666,14 +100691,14 @@ ok9367: %t376 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t375, i64 %t373 %t377 = load i32, ptr %a372 %t378 = icmp ne i32 %t377, 0 - br i1 %t378, label %map.new9368, label %map.have9369 -map.new9368: + br i1 %t378, label %map.new9773, label %map.have9774 +map.new9773: %t379 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t376, i32 0, i32 1 call void @finch_str_copy(ptr %t379, ptr %a371) %t380 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t376, i32 0, i32 2 store { ptr, i64, i64 } zeroinitializer, ptr %t380 - br label %map.have9369 -map.have9369: + br label %map.have9774 +map.have9774: %t381 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t376, i32 0, i32 2 store { ptr, i64, i64 } %t366, ptr %a382 call void @finch_str_copy(ptr %a383, ptr %a382) @@ -96682,34 +100707,34 @@ map.have9369: store { ptr, i64, i64 } %t384, ptr %t381 store { ptr, i64, i64 } %t385, ptr %a386 call void @finch_str_drop(ptr %a386) - br label %endif9365 -endif9365: + br label %endif9770 +endif9770: call void @finch_str_drop(ptr %a357) - br label %endif9360 -endif9360: - br label %endif9349 -else9348: + br label %endif9765 +endif9765: + br label %endif9754 +else9753: %t387 = load i32, ptr %a13 %t388 = icmp eq i32 %t387, 5 - br i1 %t388, label %then9370, label %else9371 -then9370: + br i1 %t388, label %then9775, label %else9776 +then9775: %t389 = load %S.C.CXCursor, ptr %a2 store %S.C.CXCursor %t389, ptr %a390 %t391 = load ptr, ptr %a1 %t392 = call i32 @clang_visitChildren(ptr %a390, ptr @finch.c.cimport.visitTop, ptr %t391) - br label %endif9372 -else9371: + br label %endif9777 +else9776: %t393 = load i32, ptr %a13 %t394 = icmp eq i32 %t393, 7 - br i1 %t394, label %then9373, label %else9374 -then9373: + br i1 %t394, label %then9778, label %else9779 +then9778: %t395 = load ptr, ptr %a1 %t396 = icmp eq ptr %t395, null - br i1 %t396, label %panic9376, label %ok9377 -panic9376: - call void @finch_panic(ptr @.str.6384, i64 496, ptr @.str.6385) + br i1 %t396, label %panic9781, label %ok9782 +panic9781: + call void @finch_panic(ptr @.str.6592, i64 496, ptr @.str.6593) unreachable -ok9377: +ok9782: %t397 = getelementptr inbounds %S.cimport.Importer, ptr %t395, i32 0, i32 0 %t398 = getelementptr inbounds %S.cimport.CImports, ptr %t397, i32 0, i32 1 %t399 = load { ptr, i64, i64 }, ptr %a9 @@ -96717,19 +100742,19 @@ ok9377: %t401 = call i64 @finch_map_find(ptr %t398, ptr %a400, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t402 = icmp sge i64 %t401, 0 %t403 = xor i1 %t402, true - br i1 %t403, label %then9378, label %endif9380 -then9378: + br i1 %t403, label %then9783, label %endif9785 +then9783: %t404 = load %S.C.CXCursor, ptr %a2 store %S.C.CXCursor %t404, ptr %a405 %t406 = call i64 @clang_getEnumConstantDeclValue(ptr %a405) %t407 = insertvalue %S.cimport.CConst zeroinitializer, i64 %t406, 1 %t408 = load ptr, ptr %a1 %t409 = icmp eq ptr %t408, null - br i1 %t409, label %panic9381, label %ok9382 -panic9381: - call void @finch_panic(ptr @.str.6386, i64 497, ptr @.str.6387) + br i1 %t409, label %panic9786, label %ok9787 +panic9786: + call void @finch_panic(ptr @.str.6594, i64 497, ptr @.str.6595) unreachable -ok9382: +ok9787: %t410 = getelementptr inbounds %S.cimport.Importer, ptr %t408, i32 0, i32 0 %t411 = getelementptr inbounds %S.cimport.CImports, ptr %t410, i32 0, i32 1 %t412 = load { ptr, i64, i64 }, ptr %a9 @@ -96741,66 +100766,66 @@ ok9382: %t418 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t417, i64 %t415 %t419 = load i32, ptr %a414 %t420 = icmp ne i32 %t419, 0 - br i1 %t420, label %map.new9383, label %map.have9384 -map.new9383: + br i1 %t420, label %map.new9788, label %map.have9789 +map.new9788: %t421 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t418, i32 0, i32 1 call void @finch_str_copy(ptr %t421, ptr %a413) %t422 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t418, i32 0, i32 2 store %S.cimport.CConst zeroinitializer, ptr %t422 - br label %map.have9384 -map.have9384: + br label %map.have9789 +map.have9789: %t423 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t418, i32 0, i32 2 %t424 = load %S.cimport.CConst, ptr %t423 store %S.cimport.CConst %t407, ptr %t423 store %S.cimport.CConst %t424, ptr %a425 call void @finch.drop.S_cimport_CConst(ptr %a425) - br label %endif9380 -endif9380: - br label %endif9375 -else9374: + br label %endif9785 +endif9785: + br label %endif9780 +else9779: %t426 = load i32, ptr %a13 %t427 = icmp eq i32 %t426, 501 - br i1 %t427, label %then9385, label %endif9387 -then9385: + br i1 %t427, label %then9790, label %endif9792 +then9790: %t428 = load %S.C.CXCursor, ptr %a2 store %S.C.CXCursor %t428, ptr %a429 %t430 = call i32 @clang_Cursor_isMacroBuiltin(ptr %a429) %t431 = icmp ne i32 %t430, 0 - br label %logic.from9388 -logic.from9388: - br i1 %t431, label %logic.end9390, label %logic.rhs9389 -logic.rhs9389: + br label %logic.from9793 +logic.from9793: + br i1 %t431, label %logic.end9795, label %logic.rhs9794 +logic.rhs9794: %t432 = load %S.C.CXCursor, ptr %a2 store %S.C.CXCursor %t432, ptr %a433 %t434 = call i32 @clang_Cursor_isMacroFunctionLike(ptr %a433) %t435 = icmp ne i32 %t434, 0 - br label %logic.rend9391 -logic.rend9391: - br label %logic.end9390 -logic.end9390: - %t436 = phi i1 [ true, %logic.from9388 ], [ %t435, %logic.rend9391 ] - br i1 %t436, label %then9392, label %endif9394 -then9392: + br label %logic.rend9796 +logic.rend9796: + br label %logic.end9795 +logic.end9795: + %t436 = phi i1 [ true, %logic.from9793 ], [ %t435, %logic.rend9796 ] + br i1 %t436, label %then9797, label %endif9799 +then9797: call void @finch_str_drop(ptr %a9) ret void -endif9394: +endif9799: %t437 = load ptr, ptr %a1 %t438 = load %S.C.CXCursor, ptr %a2 %t439 = call %S.cimport.Number @finch.cimport.macroValue(ptr %t437, %S.C.CXCursor %t438) store %S.cimport.Number %t439, ptr %a440 %t441 = getelementptr inbounds %S.cimport.Number, ptr %a440, i32 0, i32 1 %t442 = load i1, ptr %t441 - br label %logic.from9395 -logic.from9395: - br i1 %t442, label %logic.rhs9396, label %logic.end9397 -logic.rhs9396: + br label %logic.from9800 +logic.from9800: + br i1 %t442, label %logic.rhs9801, label %logic.end9802 +logic.rhs9801: %t443 = load ptr, ptr %a1 %t444 = icmp eq ptr %t443, null - br i1 %t444, label %panic9398, label %ok9399 -panic9398: - call void @finch_panic(ptr @.str.6388, i64 504, ptr @.str.6389) + br i1 %t444, label %panic9803, label %ok9804 +panic9803: + call void @finch_panic(ptr @.str.6596, i64 504, ptr @.str.6597) unreachable -ok9399: +ok9804: %t445 = getelementptr inbounds %S.cimport.Importer, ptr %t443, i32 0, i32 0 %t446 = getelementptr inbounds %S.cimport.CImports, ptr %t445, i32 0, i32 1 %t447 = load { ptr, i64, i64 }, ptr %a9 @@ -96808,22 +100833,22 @@ ok9399: %t449 = call i64 @finch_map_find(ptr %t446, ptr %a448, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t450 = icmp sge i64 %t449, 0 %t451 = xor i1 %t450, true - br label %logic.rend9400 -logic.rend9400: - br label %logic.end9397 -logic.end9397: - %t452 = phi i1 [ false, %logic.from9395 ], [ %t451, %logic.rend9400 ] - br i1 %t452, label %then9401, label %endif9403 -then9401: + br label %logic.rend9805 +logic.rend9805: + br label %logic.end9802 +logic.end9802: + %t452 = phi i1 [ false, %logic.from9800 ], [ %t451, %logic.rend9805 ] + br i1 %t452, label %then9806, label %endif9808 +then9806: %t453 = getelementptr inbounds %S.cimport.Number, ptr %a440, i32 0, i32 0 %t454 = load %S.cimport.CConst, ptr %t453 %t455 = load ptr, ptr %a1 %t456 = icmp eq ptr %t455, null - br i1 %t456, label %panic9404, label %ok9405 -panic9404: - call void @finch_panic(ptr @.str.6390, i64 505, ptr @.str.6391) + br i1 %t456, label %panic9809, label %ok9810 +panic9809: + call void @finch_panic(ptr @.str.6598, i64 505, ptr @.str.6599) unreachable -ok9405: +ok9810: %t457 = getelementptr inbounds %S.cimport.Importer, ptr %t455, i32 0, i32 0 %t458 = getelementptr inbounds %S.cimport.CImports, ptr %t457, i32 0, i32 1 %t459 = load { ptr, i64, i64 }, ptr %a9 @@ -96835,14 +100860,14 @@ ok9405: %t465 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t464, i64 %t462 %t466 = load i32, ptr %a461 %t467 = icmp ne i32 %t466, 0 - br i1 %t467, label %map.new9406, label %map.have9407 -map.new9406: + br i1 %t467, label %map.new9811, label %map.have9812 +map.new9811: %t468 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t465, i32 0, i32 1 call void @finch_str_copy(ptr %t468, ptr %a460) %t469 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t465, i32 0, i32 2 store %S.cimport.CConst zeroinitializer, ptr %t469 - br label %map.have9407 -map.have9407: + br label %map.have9812 +map.have9812: %t470 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t465, i32 0, i32 2 store %S.cimport.CConst %t454, ptr %a471 call void @finch.copy.S_cimport_CConst(ptr %a472, ptr %a471) @@ -96851,23 +100876,23 @@ map.have9407: store %S.cimport.CConst %t473, ptr %t470 store %S.cimport.CConst %t474, ptr %a475 call void @finch.drop.S_cimport_CConst(ptr %a475) - br label %endif9403 -endif9403: + br label %endif9808 +endif9808: call void @finch.drop.S_cimport_Number(ptr %a440) - br label %endif9387 -endif9387: - br label %endif9375 -endif9375: - br label %endif9372 -endif9372: - br label %endif9349 -endif9349: - br label %endif9330 -endif9330: - br label %endif9289 -endif9289: - br label %endif9258 -endif9258: + br label %endif9792 +endif9792: + br label %endif9780 +endif9780: + br label %endif9777 +endif9777: + br label %endif9754 +endif9754: + br label %endif9735 +endif9735: + br label %endif9694 +endif9694: + br label %endif9663 +endif9663: call void @finch_str_drop(ptr %a9) ret void } @@ -96878,31 +100903,31 @@ entry: %t1 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %a, i32 0, i32 2 %t2 = load i64, ptr %t1 store i64 0, ptr %a3 - br label %n.cond9411 -n.cond9411: + br label %n.cond9816 +n.cond9816: %t4 = load i64, ptr %a3 %t5 = icmp slt i64 %t4, %t2 - br i1 %t5, label %n.body9412, label %n.end9413 -n.body9412: + br i1 %t5, label %n.body9817, label %n.end9818 +n.body9817: %t6 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %a, i32 0, i32 0 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t7, i64 %t4 %t9 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t8, i32 0, i32 0 %t10 = load i64, ptr %t9 %t11 = icmp ne i64 %t10, 0 - br i1 %t11, label %entry.live9414, label %entry.next9415 -entry.live9414: + br i1 %t11, label %entry.live9819, label %entry.next9820 +entry.live9819: %t12 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t8, i32 0, i32 1 call void @finch_str_drop(ptr %t12) %t13 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t8, i32 0, i32 2 call void @finch_str_drop(ptr %t13) - br label %entry.next9415 -entry.next9415: + br label %entry.next9820 +entry.next9820: %t14 = load i64, ptr %a3 %t15 = add i64 %t14, 1 store i64 %t15, ptr %a3 - br label %n.cond9411 -n.end9413: + br label %n.cond9816 +n.end9818: call void @finch_map_free(ptr %a) ret void } @@ -96913,30 +100938,30 @@ entry: %t1 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %a, i32 0, i32 2 %t2 = load i64, ptr %t1 store i64 0, ptr %a3 - br label %n.cond9416 -n.cond9416: + br label %n.cond9821 +n.cond9821: %t4 = load i64, ptr %a3 %t5 = icmp slt i64 %t4, %t2 - br i1 %t5, label %n.body9417, label %n.end9418 -n.body9417: + br i1 %t5, label %n.body9822, label %n.end9823 +n.body9822: %t6 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %a, i32 0, i32 0 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds { i64, { ptr, i64, i64 }, i1 }, ptr %t7, i64 %t4 %t9 = getelementptr inbounds { i64, { ptr, i64, i64 }, i1 }, ptr %t8, i32 0, i32 0 %t10 = load i64, ptr %t9 %t11 = icmp ne i64 %t10, 0 - br i1 %t11, label %entry.live9419, label %entry.next9420 -entry.live9419: + br i1 %t11, label %entry.live9824, label %entry.next9825 +entry.live9824: %t12 = getelementptr inbounds { i64, { ptr, i64, i64 }, i1 }, ptr %t8, i32 0, i32 1 call void @finch_str_drop(ptr %t12) %t13 = getelementptr inbounds { i64, { ptr, i64, i64 }, i1 }, ptr %t8, i32 0, i32 2 - br label %entry.next9420 -entry.next9420: + br label %entry.next9825 +entry.next9825: %t14 = load i64, ptr %a3 %t15 = add i64 %t14, 1 store i64 %t15, ptr %a3 - br label %n.cond9416 -n.end9418: + br label %n.cond9821 +n.end9823: call void @finch_map_free(ptr %a) ret void } @@ -97094,8 +101119,8 @@ entry: %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t8 = load i64, ptr %t7 %t9 = icmp eq i64 %t8, 0 - br i1 %t9, label %then9408, label %endif9410 -then9408: + br i1 %t9, label %then9813, label %endif9815 +then9813: %t10 = getelementptr inbounds %S.cimport.Importer, ptr %a6, i32 0, i32 0 %t11 = load %S.cimport.CImports, ptr %t10 store %S.cimport.CImports %t11, ptr %a12 @@ -97105,15 +101130,15 @@ then9408: %t15 = insertvalue { i1, %S.cimport.CImports, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 %t16 = insertvalue { i1, %S.cimport.CImports, { ptr, i64, i64 } } %t15, %S.cimport.CImports %t14, 1 ret { i1, %S.cimport.CImports, { ptr, i64, i64 } } %t16 -endif9410: +endif9815: %t17 = mul i64 3, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t18 = call ptr @finch_alloc(i64 %t17) %t19 = getelementptr inbounds { ptr, i64, i64 }, ptr %t18, i64 0 - store { ptr, i64, i64 } { ptr @.str.6392, i64 2, i64 0 }, ptr %t19 + store { ptr, i64, i64 } { ptr @.str.6600, i64 2, i64 0 }, ptr %t19 %t20 = getelementptr inbounds { ptr, i64, i64 }, ptr %t18, i64 1 - store { ptr, i64, i64 } { ptr @.str.6393, i64 1, i64 0 }, ptr %t20 + store { ptr, i64, i64 } { ptr @.str.6601, i64 1, i64 0 }, ptr %t20 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t18, i64 2 - store { ptr, i64, i64 } { ptr @.str.6394, i64 10, i64 0 }, ptr %t21 + store { ptr, i64, i64 } { ptr @.str.6602, i64 10, i64 0 }, ptr %t21 %t22 = insertvalue { ptr, i64, i64 } undef, ptr %t18, 0 %t23 = insertvalue { ptr, i64, i64 } %t22, i64 3, 1 %t24 = insertvalue { ptr, i64, i64 } %t23, i64 3, 2 @@ -97121,11 +101146,11 @@ endif9410: %t26 = getelementptr inbounds { ptr, i64, i64 }, ptr %a3, i32 0, i32 1 %t27 = load i64, ptr %t26 %t28 = icmp sgt i64 %t27, 0 - br i1 %t28, label %then9421, label %endif9423 -then9421: + br i1 %t28, label %then9826, label %endif9828 +then9826: %t29 = getelementptr inbounds { ptr, i64, i64 }, ptr %a25, i32 0, i32 1 %t30 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.6395, i64 9, i64 0 }, ptr %a32 + store { ptr, i64, i64 } { ptr @.str.6603, i64 9, i64 0 }, ptr %a32 store { ptr, i64, i64 } %t30, ptr %a33 call void @finch_str_concat(ptr %a31, ptr %a32, ptr %a33) %t34 = load { ptr, i64, i64 }, ptr %a31 @@ -97136,37 +101161,37 @@ then9421: %t38 = getelementptr inbounds { ptr, i64, i64 }, ptr %t37, i64 %t35 store { ptr, i64, i64 } %t34, ptr %t38 store i64 %t36, ptr %t29 - br label %endif9423 -endif9423: + br label %endif9828 +endif9828: %t39 = load i1, ptr %a4 - br i1 %t39, label %then9424, label %endif9426 -then9424: + br i1 %t39, label %then9829, label %endif9831 +then9829: %t40 = getelementptr inbounds { ptr, i64, i64 }, ptr %a25, i32 0, i32 1 %t41 = load i64, ptr %t40 %t42 = add i64 %t41, 1 call void @finch_arr_reserve(ptr %a25, i64 %t42, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t43 = load ptr, ptr %a25 %t44 = getelementptr inbounds { ptr, i64, i64 }, ptr %t43, i64 %t41 - store { ptr, i64, i64 } { ptr @.str.6396, i64 19, i64 0 }, ptr %t44 + store { ptr, i64, i64 } { ptr @.str.6604, i64 19, i64 0 }, ptr %t44 store i64 %t42, ptr %t40 - br label %endif9426 -endif9426: + br label %endif9831 +endif9831: store i64 0, ptr %a45 - br label %each.cond9427 -each.cond9427: + br label %each.cond9832 +each.cond9832: %t46 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t47 = load i64, ptr %t46 %t48 = load i64, ptr %a45 %t49 = icmp slt i64 %t48, %t47 - br i1 %t49, label %each.body9428, label %each.end9430 -each.body9428: + br i1 %t49, label %each.body9833, label %each.end9835 +each.body9833: %t50 = load ptr, ptr %a2 %t51 = getelementptr inbounds { ptr, i64, i64 }, ptr %t50, i64 %t48 %t52 = load { ptr, i64, i64 }, ptr %t51 store { ptr, i64, i64 } %t52, ptr %a53 %t54 = getelementptr inbounds { ptr, i64, i64 }, ptr %a25, i32 0, i32 1 %t55 = load { ptr, i64, i64 }, ptr %a53 - store { ptr, i64, i64 } { ptr @.str.6397, i64 2, i64 0 }, ptr %a57 + store { ptr, i64, i64 } { ptr @.str.6605, i64 2, i64 0 }, ptr %a57 store { ptr, i64, i64 } %t55, ptr %a58 call void @finch_str_concat(ptr %a56, ptr %a57, ptr %a58) %t59 = load { ptr, i64, i64 }, ptr %a56 @@ -97177,25 +101202,25 @@ each.body9428: %t63 = getelementptr inbounds { ptr, i64, i64 }, ptr %t62, i64 %t60 store { ptr, i64, i64 } %t59, ptr %t63 store i64 %t61, ptr %t54 - br label %each.step9429 -each.step9429: + br label %each.step9834 +each.step9834: %t64 = load i64, ptr %a45 %t65 = add i64 %t64, 1 store i64 %t65, ptr %a45 - br label %each.cond9427 -each.end9430: + br label %each.cond9832 +each.end9835: %t66 = load { ptr, i64, i64 }, ptr %a5 %t67 = call { ptr, i64, i64 } @finch.cimport.systemIncludeArgs({ ptr, i64, i64 } %t66) store { ptr, i64, i64 } %t67, ptr %a68 store i64 0, ptr %a69 - br label %each.cond9431 -each.cond9431: + br label %each.cond9836 +each.cond9836: %t70 = getelementptr inbounds { ptr, i64, i64 }, ptr %a68, i32 0, i32 1 %t71 = load i64, ptr %t70 %t72 = load i64, ptr %a69 %t73 = icmp slt i64 %t72, %t71 - br i1 %t73, label %each.body9432, label %each.end9434 -each.body9432: + br i1 %t73, label %each.body9837, label %each.end9839 +each.body9837: %t74 = load ptr, ptr %a68 %t75 = getelementptr inbounds { ptr, i64, i64 }, ptr %t74, i64 %t72 %t76 = load { ptr, i64, i64 }, ptr %t75 @@ -97212,40 +101237,40 @@ each.body9432: %t86 = getelementptr inbounds { ptr, i64, i64 }, ptr %t85, i64 %t83 store { ptr, i64, i64 } %t82, ptr %t86 store i64 %t84, ptr %t78 - br label %each.step9433 -each.step9433: + br label %each.step9838 +each.step9838: %t87 = load i64, ptr %a69 %t88 = add i64 %t87, 1 store i64 %t88, ptr %a69 - br label %each.cond9431 -each.end9434: + br label %each.cond9836 +each.end9839: call void @finch.drop.arr_str(ptr %a68) store { ptr, i64, i64 } zeroinitializer, ptr %a89 %t90 = getelementptr inbounds { ptr, i64, i64 }, ptr %a25, i32 0, i32 1 %t91 = load i64, ptr %t90 store i64 0, ptr %a92 - br label %for.cond9435 -for.cond9435: + br label %for.cond9840 +for.cond9840: %t93 = load i64, ptr %a92 %t94 = icmp slt i64 %t93, %t91 - br i1 %t94, label %for.body9436, label %for.end9438 -for.body9436: + br i1 %t94, label %for.body9841, label %for.end9843 +for.body9841: %t95 = getelementptr inbounds { ptr, i64, i64 }, ptr %a89, i32 0, i32 1 %t96 = load i64, ptr %a92 %t97 = load { ptr, i64, i64 }, ptr %a25 %t98 = extractvalue { ptr, i64, i64 } %t97, 1 %t99 = icmp uge i64 %t96, %t98 - br i1 %t99, label %range9439, label %inrange9440 -range9439: - call void @finch_panic_index(ptr @.str.6398, i64 532, i64 %t96, i64 %t98) + br i1 %t99, label %range9844, label %inrange9845 +range9844: + call void @finch_panic_index(ptr @.str.6606, i64 532, i64 %t96, i64 %t98) unreachable -inrange9440: +inrange9845: %t100 = extractvalue { ptr, i64, i64 } %t97, 0 %t101 = getelementptr inbounds { ptr, i64, i64 }, ptr %t100, i64 %t96 %t102 = load { ptr, i64, i64 }, ptr %t101 %t103 = extractvalue { ptr, i64, i64 } %t102, 0 %t104 = icmp eq ptr %t103, null - %t105 = select i1 %t104, ptr @.str.6399, ptr %t103 + %t105 = select i1 %t104, ptr @.str.6607, ptr %t103 %t106 = load i64, ptr %t95 %t107 = add i64 %t106, 1 call void @finch_arr_reserve(ptr %a89, i64 %t107, i64 ptrtoint (ptr getelementptr (ptr, ptr null, i32 1) to i64)) @@ -97253,49 +101278,49 @@ inrange9440: %t109 = getelementptr inbounds ptr, ptr %t108, i64 %t106 store ptr %t105, ptr %t109 store i64 %t107, ptr %t95 - br label %for.step9437 -for.step9437: + br label %for.step9842 +for.step9842: %t110 = load i64, ptr %a92 %t111 = add i64 %t110, 1 store i64 %t111, ptr %a92 - br label %for.cond9435 -for.end9438: + br label %for.cond9840 +for.end9843: %t112 = call ptr @clang_createIndex(i32 0, i32 0) store ptr %t112, ptr %a113 store i64 0, ptr %a114 - br label %each.cond9441 -each.cond9441: + br label %each.cond9846 +each.cond9846: %t115 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t116 = load i64, ptr %t115 %t117 = load i64, ptr %a114 %t118 = icmp slt i64 %t117, %t116 - br i1 %t118, label %each.body9442, label %each.end9444 -each.body9442: + br i1 %t118, label %each.body9847, label %each.end9849 +each.body9847: %t119 = load ptr, ptr %a1 %t120 = getelementptr inbounds %S.cimport.Header, ptr %t119, i64 %t117 %t121 = load %S.cimport.Header, ptr %t120 store %S.cimport.Header %t121, ptr %a122 %t123 = getelementptr inbounds %S.cimport.Header, ptr %a122, i32 0, i32 0 %t124 = load { ptr, i64, i64 }, ptr %t123 - store { ptr, i64, i64 } { ptr @.str.6400, i64 10, i64 0 }, ptr %a126 + store { ptr, i64, i64 } { ptr @.str.6608, i64 10, i64 0 }, ptr %a126 store { ptr, i64, i64 } %t124, ptr %a127 call void @finch_str_concat(ptr %a125, ptr %a126, ptr %a127) %t128 = load { ptr, i64, i64 }, ptr %a125 store { ptr, i64, i64 } %t128, ptr %a130 - store { ptr, i64, i64 } { ptr @.str.6401, i64 2, i64 0 }, ptr %a131 + store { ptr, i64, i64 } { ptr @.str.6609, i64 2, i64 0 }, ptr %a131 call void @finch_str_concat(ptr %a129, ptr %a130, ptr %a131) store { ptr, i64, i64 } %t128, ptr %a132 call void @finch_str_drop(ptr %a132) %t133 = load { ptr, i64, i64 }, ptr %a129 store { ptr, i64, i64 } %t133, ptr %a134 - %t135 = extractvalue { ptr, i64, i64 } { ptr @.str.6402, i64 14, i64 0 }, 0 + %t135 = extractvalue { ptr, i64, i64 } { ptr @.str.6610, i64 14, i64 0 }, 0 %t136 = icmp eq ptr %t135, null - %t137 = select i1 %t136, ptr @.str.6403, ptr %t135 + %t137 = select i1 %t136, ptr @.str.6611, ptr %t135 %t138 = insertvalue %S.C.CXUnsavedFile zeroinitializer, ptr %t137, 0 %t139 = load { ptr, i64, i64 }, ptr %a134 %t140 = extractvalue { ptr, i64, i64 } %t139, 0 %t141 = icmp eq ptr %t140, null - %t142 = select i1 %t141, ptr @.str.6404, ptr %t140 + %t142 = select i1 %t141, ptr @.str.6612, ptr %t140 %t143 = insertvalue %S.C.CXUnsavedFile %t138, ptr %t142, 1 %t144 = getelementptr inbounds { ptr, i64, i64 }, ptr %a134, i32 0, i32 1 %t145 = load i64, ptr %t144 @@ -97305,9 +101330,9 @@ each.body9442: %t149 = or i64 1, 64 store i64 %t149, ptr %a150 %t151 = load ptr, ptr %a113 - %t152 = extractvalue { ptr, i64, i64 } { ptr @.str.6405, i64 14, i64 0 }, 0 + %t152 = extractvalue { ptr, i64, i64 } { ptr @.str.6613, i64 14, i64 0 }, 0 %t153 = icmp eq ptr %t152, null - %t154 = select i1 %t153, ptr @.str.6406, ptr %t152 + %t154 = select i1 %t153, ptr @.str.6614, ptr %t152 %t155 = load { ptr, i64, i64 }, ptr %a89 %t156 = extractvalue { ptr, i64, i64 } %t155, 0 %t157 = getelementptr inbounds { ptr, i64, i64 }, ptr %a89, i32 0, i32 1 @@ -97319,23 +101344,23 @@ each.body9442: store i32 %t162, ptr %a163 %t164 = load i32, ptr %a163 %t165 = icmp ne i32 %t164, 0 - br label %logic.from9445 -logic.from9445: - br i1 %t165, label %logic.end9447, label %logic.rhs9446 -logic.rhs9446: + br label %logic.from9850 +logic.from9850: + br i1 %t165, label %logic.end9852, label %logic.rhs9851 +logic.rhs9851: %t166 = load ptr, ptr %a148 %t167 = icmp eq ptr %t166, null - br label %logic.rend9448 -logic.rend9448: - br label %logic.end9447 -logic.end9447: - %t168 = phi i1 [ true, %logic.from9445 ], [ %t167, %logic.rend9448 ] - br i1 %t168, label %then9449, label %endif9451 -then9449: + br label %logic.rend9853 +logic.rend9853: + br label %logic.end9852 +logic.end9852: + %t168 = phi i1 [ true, %logic.from9850 ], [ %t167, %logic.rend9853 ] + br i1 %t168, label %then9854, label %endif9856 +then9854: %t169 = getelementptr inbounds %S.cimport.Header, ptr %a122, i32 0, i32 1 %t170 = load { ptr, i64, i64 }, ptr %t169 store { ptr, i64, i64 } %t170, ptr %a172 - store { ptr, i64, i64 } { ptr @.str.6407, i64 33, i64 0 }, ptr %a173 + store { ptr, i64, i64 } { ptr @.str.6615, i64 33, i64 0 }, ptr %a173 call void @finch_str_concat(ptr %a171, ptr %a172, ptr %a173) %t174 = load { ptr, i64, i64 }, ptr %a171 %t175 = getelementptr inbounds %S.cimport.Header, ptr %a122, i32 0, i32 0 @@ -97347,7 +101372,7 @@ then9449: call void @finch_str_drop(ptr %a180) %t181 = load { ptr, i64, i64 }, ptr %a177 store { ptr, i64, i64 } %t181, ptr %a183 - store { ptr, i64, i64 } { ptr @.str.6408, i64 1, i64 0 }, ptr %a184 + store { ptr, i64, i64 } { ptr @.str.6616, i64 1, i64 0 }, ptr %a184 call void @finch_str_concat(ptr %a182, ptr %a183, ptr %a184) store { ptr, i64, i64 } %t181, ptr %a185 call void @finch_str_drop(ptr %a185) @@ -97358,19 +101383,19 @@ then9449: call void @finch.drop.S_cimport_Importer(ptr %a6) %t187 = insertvalue { i1, %S.cimport.CImports, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t186, 2 ret { i1, %S.cimport.CImports, { ptr, i64, i64 } } %t187 -endif9451: +endif9856: %t188 = load ptr, ptr %a148 %t189 = call i32 @clang_getNumDiagnostics(ptr %t188) %t190 = zext i32 %t189 to i64 store i64 %t190, ptr %a191 %t192 = load i64, ptr %a191 store i64 0, ptr %a193 - br label %for.cond9452 -for.cond9452: + br label %for.cond9857 +for.cond9857: %t194 = load i64, ptr %a193 %t195 = icmp slt i64 %t194, %t192 - br i1 %t195, label %for.body9453, label %for.end9455 -for.body9453: + br i1 %t195, label %for.body9858, label %for.end9860 +for.body9858: %t196 = load ptr, ptr %a148 %t197 = load i64, ptr %a193 %t198 = trunc i64 %t197 to i32 @@ -97379,8 +101404,8 @@ for.body9453: %t201 = load ptr, ptr %a200 %t202 = call i32 @clang_getDiagnosticSeverity(ptr %t201) %t203 = icmp sge i32 %t202, 3 - br i1 %t203, label %then9456, label %endif9458 -then9456: + br i1 %t203, label %then9861, label %endif9863 +then9861: %t204 = load ptr, ptr %a200 %t205 = call [2 x i64] @clang_getDiagnosticSpelling(ptr %t204) store [2 x i64] %t205, ptr %a206 @@ -97391,26 +101416,26 @@ then9456: call void @clang_disposeDiagnostic(ptr %t210) %t211 = load { ptr, i64, i64 }, ptr %a209 store { ptr, i64, i64 } %t211, ptr %a212 - store { ptr, i64, i64 } { ptr @.str.6410, i64 14, i64 0 }, ptr %a214 + store { ptr, i64, i64 } { ptr @.str.6618, i64 14, i64 0 }, ptr %a214 %t215 = call i64 @finch_str_find(ptr %a212, ptr %a214) %t216 = icmp sge i64 %t215, 0 - br i1 %t216, label %then9459, label %endif9461 -then9459: + br i1 %t216, label %then9864, label %endif9866 +then9864: %t217 = load { ptr, i64, i64 }, ptr %a209 store { ptr, i64, i64 } %t217, ptr %a218 %t220 = load { ptr, i64, i64 }, ptr %a209 store { ptr, i64, i64 } %t220, ptr %a221 %t223 = getelementptr inbounds { ptr, i64, i64 }, ptr %a209, i32 0, i32 1 %t224 = load i64, ptr %t223 - call void @finch_str_sub(ptr %a222, ptr %a221, i64 1, i64 %t224, ptr @.str.6412, i64 552) + call void @finch_str_sub(ptr %a222, ptr %a221, i64 1, i64 %t224, ptr @.str.6620, i64 552) %t225 = load { ptr, i64, i64 }, ptr %a222 store { ptr, i64, i64 } %t225, ptr %a226 - store { ptr, i64, i64 } { ptr @.str.6414, i64 1, i64 0 }, ptr %a228 + store { ptr, i64, i64 } { ptr @.str.6622, i64 1, i64 0 }, ptr %a228 %t229 = call i64 @finch_str_find(ptr %a226, ptr %a228) store { ptr, i64, i64 } %t225, ptr %a230 call void @finch_str_drop(ptr %a230) %t231 = add i64 %t229, 1 - call void @finch_str_sub(ptr %a219, ptr %a218, i64 1, i64 %t231, ptr @.str.6411, i64 552) + call void @finch_str_sub(ptr %a219, ptr %a218, i64 1, i64 %t231, ptr @.str.6619, i64 552) %t232 = load { ptr, i64, i64 }, ptr %a219 store { ptr, i64, i64 } %t232, ptr %a233 %t234 = load { ptr, i64, i64 }, ptr %a233 @@ -97420,12 +101445,12 @@ then9459: store { ptr, i64, i64 } %t236, ptr %a238 %t239 = call i32 @finch_str_eq(ptr %a237, ptr %a238) %t240 = icmp ne i32 %t239, 0 - br i1 %t240, label %then9462, label %endif9464 -then9462: + br i1 %t240, label %then9867, label %endif9869 +then9867: %t241 = getelementptr inbounds %S.cimport.Header, ptr %a122, i32 0, i32 1 %t242 = load { ptr, i64, i64 }, ptr %t241 store { ptr, i64, i64 } %t242, ptr %a244 - store { ptr, i64, i64 } { ptr @.str.6415, i64 34, i64 0 }, ptr %a245 + store { ptr, i64, i64 } { ptr @.str.6623, i64 34, i64 0 }, ptr %a245 call void @finch_str_concat(ptr %a243, ptr %a244, ptr %a245) %t246 = load { ptr, i64, i64 }, ptr %a243 %t247 = getelementptr inbounds %S.cimport.Header, ptr %a122, i32 0, i32 0 @@ -97437,7 +101462,7 @@ then9462: call void @finch_str_drop(ptr %a252) %t253 = load { ptr, i64, i64 }, ptr %a249 store { ptr, i64, i64 } %t253, ptr %a255 - store { ptr, i64, i64 } { ptr @.str.6416, i64 1, i64 0 }, ptr %a256 + store { ptr, i64, i64 } { ptr @.str.6624, i64 1, i64 0 }, ptr %a256 call void @finch_str_concat(ptr %a254, ptr %a255, ptr %a256) store { ptr, i64, i64 } %t253, ptr %a257 call void @finch_str_drop(ptr %a257) @@ -97450,11 +101475,11 @@ then9462: call void @finch.drop.S_cimport_Importer(ptr %a6) %t259 = insertvalue { i1, %S.cimport.CImports, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t258, 2 ret { i1, %S.cimport.CImports, { ptr, i64, i64 } } %t259 -endif9464: +endif9869: %t260 = getelementptr inbounds %S.cimport.Header, ptr %a122, i32 0, i32 1 %t261 = load { ptr, i64, i64 }, ptr %t260 store { ptr, i64, i64 } %t261, ptr %a263 - store { ptr, i64, i64 } { ptr @.str.6417, i64 34, i64 0 }, ptr %a264 + store { ptr, i64, i64 } { ptr @.str.6625, i64 34, i64 0 }, ptr %a264 call void @finch_str_concat(ptr %a262, ptr %a263, ptr %a264) %t265 = load { ptr, i64, i64 }, ptr %a262 %t266 = load { ptr, i64, i64 }, ptr %a233 @@ -97465,7 +101490,7 @@ endif9464: call void @finch_str_drop(ptr %a270) %t271 = load { ptr, i64, i64 }, ptr %a267 store { ptr, i64, i64 } %t271, ptr %a273 - store { ptr, i64, i64 } { ptr @.str.6418, i64 10, i64 0 }, ptr %a274 + store { ptr, i64, i64 } { ptr @.str.6626, i64 10, i64 0 }, ptr %a274 call void @finch_str_concat(ptr %a272, ptr %a273, ptr %a274) store { ptr, i64, i64 } %t271, ptr %a275 call void @finch_str_drop(ptr %a275) @@ -97479,7 +101504,7 @@ endif9464: call void @finch_str_drop(ptr %a282) %t283 = load { ptr, i64, i64 }, ptr %a279 store { ptr, i64, i64 } %t283, ptr %a285 - store { ptr, i64, i64 } { ptr @.str.6419, i64 60, i64 0 }, ptr %a286 + store { ptr, i64, i64 } { ptr @.str.6627, i64 60, i64 0 }, ptr %a286 call void @finch_str_concat(ptr %a284, ptr %a285, ptr %a286) store { ptr, i64, i64 } %t283, ptr %a287 call void @finch_str_drop(ptr %a287) @@ -97492,11 +101517,11 @@ endif9464: call void @finch.drop.S_cimport_Importer(ptr %a6) %t289 = insertvalue { i1, %S.cimport.CImports, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t288, 2 ret { i1, %S.cimport.CImports, { ptr, i64, i64 } } %t289 -endif9461: +endif9866: %t290 = getelementptr inbounds %S.cimport.Header, ptr %a122, i32 0, i32 1 %t291 = load { ptr, i64, i64 }, ptr %t290 store { ptr, i64, i64 } %t291, ptr %a293 - store { ptr, i64, i64 } { ptr @.str.6420, i64 19, i64 0 }, ptr %a294 + store { ptr, i64, i64 } { ptr @.str.6628, i64 19, i64 0 }, ptr %a294 call void @finch_str_concat(ptr %a292, ptr %a293, ptr %a294) %t295 = load { ptr, i64, i64 }, ptr %a292 %t296 = getelementptr inbounds %S.cimport.Header, ptr %a122, i32 0, i32 0 @@ -97508,7 +101533,7 @@ endif9461: call void @finch_str_drop(ptr %a301) %t302 = load { ptr, i64, i64 }, ptr %a298 store { ptr, i64, i64 } %t302, ptr %a304 - store { ptr, i64, i64 } { ptr @.str.6421, i64 16, i64 0 }, ptr %a305 + store { ptr, i64, i64 } { ptr @.str.6629, i64 16, i64 0 }, ptr %a305 call void @finch_str_concat(ptr %a303, ptr %a304, ptr %a305) store { ptr, i64, i64 } %t302, ptr %a306 call void @finch_str_drop(ptr %a306) @@ -97527,16 +101552,16 @@ endif9461: call void @finch.drop.S_cimport_Importer(ptr %a6) %t314 = insertvalue { i1, %S.cimport.CImports, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t313, 2 ret { i1, %S.cimport.CImports, { ptr, i64, i64 } } %t314 -endif9458: +endif9863: %t315 = load ptr, ptr %a200 call void @clang_disposeDiagnostic(ptr %t315) - br label %for.step9454 -for.step9454: + br label %for.step9859 +for.step9859: %t316 = load i64, ptr %a193 %t317 = add i64 %t316, 1 store i64 %t317, ptr %a193 - br label %for.cond9452 -for.end9455: + br label %for.cond9857 +for.end9860: %t318 = load ptr, ptr %a148 %t319 = getelementptr inbounds %S.cimport.Importer, ptr %a6, i32 0, i32 1 store ptr %t318, ptr %t319 @@ -97558,13 +101583,13 @@ for.end9455: %t333 = load ptr, ptr %a148 call void @clang_disposeTranslationUnit(ptr %t333) call void @finch_str_drop(ptr %a134) - br label %each.step9443 -each.step9443: + br label %each.step9848 +each.step9848: %t334 = load i64, ptr %a114 %t335 = add i64 %t334, 1 store i64 %t335, ptr %a114 - br label %each.cond9441 -each.end9444: + br label %each.cond9846 +each.end9849: %t336 = load ptr, ptr %a113 call void @clang_disposeIndex(ptr %t336) %t337 = getelementptr inbounds %S.cimport.Importer, ptr %a6, i32 0, i32 0 @@ -97598,18 +101623,18 @@ entry: store { ptr, i64, i64 } %p0, ptr %a1 %t2 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t2, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.6424, i64 1, i64 0 }, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.6425, i64 4, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.6632, i64 1, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.6633, i64 4, i64 0 }, ptr %a6 call void @finch_str_replace(ptr %a4, ptr %a3, ptr %a5, ptr %a6) %t7 = load { ptr, i64, i64 }, ptr %a4 - store { ptr, i64, i64 } { ptr @.str.6422, i64 1, i64 0 }, ptr %a9 + store { ptr, i64, i64 } { ptr @.str.6630, i64 1, i64 0 }, ptr %a9 store { ptr, i64, i64 } %t7, ptr %a10 call void @finch_str_concat(ptr %a8, ptr %a9, ptr %a10) store { ptr, i64, i64 } %t7, ptr %a11 call void @finch_str_drop(ptr %a11) %t12 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t12, ptr %a14 - store { ptr, i64, i64 } { ptr @.str.6426, i64 1, i64 0 }, ptr %a15 + store { ptr, i64, i64 } { ptr @.str.6634, i64 1, i64 0 }, ptr %a15 call void @finch_str_concat(ptr %a13, ptr %a14, ptr %a15) store { ptr, i64, i64 } %t12, ptr %a16 call void @finch_str_drop(ptr %a16) @@ -97634,7 +101659,7 @@ entry: define internal { ptr, i64, i64 } @finch.host.nullDevice() { entry: - ret { ptr, i64, i64 } { ptr @.str.6427, i64 9, i64 0 } + ret { ptr, i64, i64 } { ptr @.str.6635, i64 9, i64 0 } } define internal { ptr, i64, i64 } @finch.host.tempDir() { @@ -97648,9 +101673,9 @@ entry: %a17 = alloca { ptr, i64, i64 }, align 16 %a21 = alloca { ptr, i64, i64 }, align 16 %a22 = alloca { ptr, i64, i64 }, align 16 - %t1 = extractvalue { ptr, i64, i64 } { ptr @.str.6428, i64 6, i64 0 }, 0 + %t1 = extractvalue { ptr, i64, i64 } { ptr @.str.6636, i64 6, i64 0 }, 0 %t2 = icmp eq ptr %t1, null - %t3 = select i1 %t2, ptr @.str.6429, ptr %t1 + %t3 = select i1 %t2, ptr @.str.6637, ptr %t1 %t4 = call ptr @getenv(ptr %t3) store { ptr, i64, i64 } zeroinitializer, ptr %a5 call void @finch_str_from_c(ptr %a5, ptr %t4) @@ -97662,36 +101687,36 @@ entry: %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %a10, i32 0, i32 1 %t12 = load i64, ptr %t11 %t13 = icmp sgt i64 %t12, 0 - br i1 %t13, label %then9465, label %endif9467 -then9465: + br i1 %t13, label %then9870, label %endif9872 +then9870: %t14 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t14, ptr %a15 - store { ptr, i64, i64 } { ptr @.str.6431, i64 1, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.6639, i64 1, i64 0 }, ptr %a17 %t18 = call i32 @finch_str_ends(ptr %a15, ptr %a17) %t19 = icmp ne i32 %t18, 0 - br i1 %t19, label %then9468, label %endif9470 -then9468: + br i1 %t19, label %then9873, label %endif9875 +then9873: %t20 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t20, ptr %a21 %t23 = getelementptr inbounds { ptr, i64, i64 }, ptr %a10, i32 0, i32 1 %t24 = load i64, ptr %t23 %t25 = sub i64 %t24, 1 - call void @finch_str_sub(ptr %a22, ptr %a21, i64 0, i64 %t25, ptr @.str.6432, i64 25) + call void @finch_str_sub(ptr %a22, ptr %a21, i64 0, i64 %t25, ptr @.str.6640, i64 25) %t26 = load { ptr, i64, i64 }, ptr %a22 call void @finch_str_drop(ptr %a10) ret { ptr, i64, i64 } %t26 -endif9470: +endif9875: %t27 = load { ptr, i64, i64 }, ptr %a10 ret { ptr, i64, i64 } %t27 -endif9467: +endif9872: call void @finch_str_drop(ptr %a10) - ret { ptr, i64, i64 } { ptr @.str.6433, i64 4, i64 0 } + ret { ptr, i64, i64 } { ptr @.str.6641, i64 4, i64 0 } } define internal { ptr, i64, i64 } @finch.host.pathSeparator() { entry: - ret { ptr, i64, i64 } { ptr @.str.6434, i64 1, i64 0 } + ret { ptr, i64, i64 } { ptr @.str.6642, i64 1, i64 0 } } define internal i64 @finch.host.pid() { @@ -97707,9 +101732,9 @@ entry: %a5 = alloca { ptr, i64, i64 }, align 16 %a7 = alloca { ptr, i64, i64 }, align 16 %a8 = alloca { ptr, i64, i64 }, align 16 - %t1 = extractvalue { ptr, i64, i64 } { ptr @.str.6435, i64 3, i64 0 }, 0 + %t1 = extractvalue { ptr, i64, i64 } { ptr @.str.6643, i64 3, i64 0 }, 0 %t2 = icmp eq ptr %t1, null - %t3 = select i1 %t2, ptr @.str.6436, ptr %t1 + %t3 = select i1 %t2, ptr @.str.6644, ptr %t1 %t4 = call ptr @getenv(ptr %t3) store { ptr, i64, i64 } zeroinitializer, ptr %a5 call void @finch_str_from_c(ptr %a5, ptr %t4) @@ -97740,9 +101765,9 @@ entry: %a39 = alloca { ptr, i64, i64 }, align 16 %a40 = alloca { ptr, i64, i64 }, align 16 %a41 = alloca { ptr, i64, i64 }, align 16 - %t1 = extractvalue { ptr, i64, i64 } { ptr @.str.6437, i64 14, i64 0 }, 0 + %t1 = extractvalue { ptr, i64, i64 } { ptr @.str.6645, i64 14, i64 0 }, 0 %t2 = icmp eq ptr %t1, null - %t3 = select i1 %t2, ptr @.str.6438, ptr %t1 + %t3 = select i1 %t2, ptr @.str.6646, ptr %t1 %t4 = call ptr @getenv(ptr %t3) store { ptr, i64, i64 } zeroinitializer, ptr %a5 call void @finch_str_from_c(ptr %a5, ptr %t4) @@ -97754,19 +101779,19 @@ entry: %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %a10, i32 0, i32 1 %t12 = load i64, ptr %t11 %t13 = icmp sgt i64 %t12, 0 - br i1 %t13, label %then9471, label %endif9473 -then9471: + br i1 %t13, label %then9876, label %endif9878 +then9876: %t14 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t14, ptr %a16 - store { ptr, i64, i64 } { ptr @.str.6439, i64 6, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.6647, i64 6, i64 0 }, ptr %a17 call void @finch_str_concat(ptr %a15, ptr %a16, ptr %a17) %t18 = load { ptr, i64, i64 }, ptr %a15 call void @finch_str_drop(ptr %a10) ret { ptr, i64, i64 } %t18 -endif9473: - %t19 = extractvalue { ptr, i64, i64 } { ptr @.str.6440, i64 4, i64 0 }, 0 +endif9878: + %t19 = extractvalue { ptr, i64, i64 } { ptr @.str.6648, i64 4, i64 0 }, 0 %t20 = icmp eq ptr %t19, null - %t21 = select i1 %t20, ptr @.str.6441, ptr %t19 + %t21 = select i1 %t20, ptr @.str.6649, ptr %t19 %t22 = call ptr @getenv(ptr %t21) store { ptr, i64, i64 } zeroinitializer, ptr %a23 call void @finch_str_from_c(ptr %a23, ptr %t22) @@ -97778,20 +101803,20 @@ endif9473: %t29 = getelementptr inbounds { ptr, i64, i64 }, ptr %a28, i32 0, i32 1 %t30 = load i64, ptr %t29 %t31 = icmp sgt i64 %t30, 0 - br i1 %t31, label %then9474, label %endif9476 -then9474: + br i1 %t31, label %then9879, label %endif9881 +then9879: %t32 = load { ptr, i64, i64 }, ptr %a28 store { ptr, i64, i64 } %t32, ptr %a34 - store { ptr, i64, i64 } { ptr @.str.6442, i64 13, i64 0 }, ptr %a35 + store { ptr, i64, i64 } { ptr @.str.6650, i64 13, i64 0 }, ptr %a35 call void @finch_str_concat(ptr %a33, ptr %a34, ptr %a35) %t36 = load { ptr, i64, i64 }, ptr %a33 call void @finch_str_drop(ptr %a28) call void @finch_str_drop(ptr %a10) ret { ptr, i64, i64 } %t36 -endif9476: +endif9881: %t37 = call { ptr, i64, i64 } @finch.host.tempDir() store { ptr, i64, i64 } %t37, ptr %a39 - store { ptr, i64, i64 } { ptr @.str.6443, i64 12, i64 0 }, ptr %a40 + store { ptr, i64, i64 } { ptr @.str.6651, i64 12, i64 0 }, ptr %a40 call void @finch_str_concat(ptr %a38, ptr %a39, ptr %a40) store { ptr, i64, i64 } %t37, ptr %a41 call void @finch_str_drop(ptr %a41) @@ -97820,7 +101845,7 @@ entry: store { ptr, i64, i64 } %p0, ptr %a1 %t2 = load { ptr, i64, i64 }, ptr %a1 %t3 = call { ptr, i64, i64 } @finch.host.quote({ ptr, i64, i64 } %t2) - store { ptr, i64, i64 } { ptr @.str.6444, i64 9, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.6652, i64 9, i64 0 }, ptr %a5 store { ptr, i64, i64 } %t3, ptr %a6 call void @finch_str_concat(ptr %a4, ptr %a5, ptr %a6) store { ptr, i64, i64 } %t3, ptr %a7 @@ -97863,7 +101888,7 @@ entry: store { ptr, i64, i64 } %p0, ptr %a1 %t2 = load { ptr, i64, i64 }, ptr %a1 %t3 = call { ptr, i64, i64 } @finch.host.quote({ ptr, i64, i64 } %t2) - store { ptr, i64, i64 } { ptr @.str.6445, i64 7, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.6653, i64 7, i64 0 }, ptr %a5 store { ptr, i64, i64 } %t3, ptr %a6 call void @finch_str_concat(ptr %a4, ptr %a5, ptr %a6) store { ptr, i64, i64 } %t3, ptr %a7 @@ -97902,14 +101927,14 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load { ptr, i64, i64 }, ptr %a1 %t4 = call { ptr, i64, i64 } @finch.host.quote({ ptr, i64, i64 } %t3) - store { ptr, i64, i64 } { ptr @.str.6446, i64 3, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.6654, i64 3, i64 0 }, ptr %a6 store { ptr, i64, i64 } %t4, ptr %a7 call void @finch_str_concat(ptr %a5, ptr %a6, ptr %a7) store { ptr, i64, i64 } %t4, ptr %a8 call void @finch_str_drop(ptr %a8) %t9 = load { ptr, i64, i64 }, ptr %a5 store { ptr, i64, i64 } %t9, ptr %a11 - store { ptr, i64, i64 } { ptr @.str.6447, i64 1, i64 0 }, ptr %a12 + store { ptr, i64, i64 } { ptr @.str.6655, i64 1, i64 0 }, ptr %a12 call void @finch_str_concat(ptr %a10, ptr %a11, ptr %a12) store { ptr, i64, i64 } %t9, ptr %a13 call void @finch_str_drop(ptr %a13) @@ -97952,7 +101977,7 @@ entry: call void @finch_str_trim(ptr %a4, ptr %a3) %t5 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t5, ptr %a6 - store { ptr, i64, i64 } { ptr @.str.6450, i64 1, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.6658, i64 1, i64 0 }, ptr %a8 call void @finch_str_split(ptr %a9, ptr %a6, ptr %a8) %t10 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t5, ptr %a11 @@ -97961,11 +101986,11 @@ entry: %t13 = load { ptr, i64, i64 }, ptr %a12 %t14 = extractvalue { ptr, i64, i64 } %t13, 1 %t15 = icmp uge i64 0, %t14 - br i1 %t15, label %range9477, label %inrange9478 -range9477: - call void @finch_panic_index(ptr @.str.6451, i64 21, i64 0, i64 %t14) + br i1 %t15, label %range9882, label %inrange9883 +range9882: + call void @finch_panic_index(ptr @.str.6659, i64 21, i64 0, i64 %t14) unreachable -inrange9478: +inrange9883: %t16 = extractvalue { ptr, i64, i64 } %t13, 0 %t17 = getelementptr inbounds { ptr, i64, i64 }, ptr %t16, i64 0 %t18 = load { ptr, i64, i64 }, ptr %t17 @@ -98017,7 +102042,7 @@ entry: %a60 = alloca { ptr, i64, i64 }, align 16 %t1 = call { ptr, i64, i64 } @finch.host.tempDir() store { ptr, i64, i64 } %t1, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.6453, i64 14, i64 0 }, ptr %a4 + store { ptr, i64, i64 } { ptr @.str.6661, i64 14, i64 0 }, ptr %a4 call void @finch_str_concat(ptr %a2, ptr %a3, ptr %a4) store { ptr, i64, i64 } %t1, ptr %a5 call void @finch_str_drop(ptr %a5) @@ -98034,7 +102059,7 @@ entry: call void @finch_str_drop(ptr %a14) %t15 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t15, ptr %a17 - store { ptr, i64, i64 } { ptr @.str.6454, i64 4, i64 0 }, ptr %a18 + store { ptr, i64, i64 } { ptr @.str.6662, i64 4, i64 0 }, ptr %a18 call void @finch_str_concat(ptr %a16, ptr %a17, ptr %a18) store { ptr, i64, i64 } %t15, ptr %a19 call void @finch_str_drop(ptr %a19) @@ -98042,14 +102067,14 @@ entry: store { ptr, i64, i64 } %t20, ptr %a21 %t22 = load { ptr, i64, i64 }, ptr %a21 %t23 = call { ptr, i64, i64 } @finch.host.quote({ ptr, i64, i64 } %t22) - store { ptr, i64, i64 } { ptr @.str.6455, i64 21, i64 0 }, ptr %a25 + store { ptr, i64, i64 } { ptr @.str.6663, i64 21, i64 0 }, ptr %a25 store { ptr, i64, i64 } %t23, ptr %a26 call void @finch_str_concat(ptr %a24, ptr %a25, ptr %a26) store { ptr, i64, i64 } %t23, ptr %a27 call void @finch_str_drop(ptr %a27) %t28 = load { ptr, i64, i64 }, ptr %a24 store { ptr, i64, i64 } %t28, ptr %a30 - store { ptr, i64, i64 } { ptr @.str.6456, i64 4, i64 0 }, ptr %a31 + store { ptr, i64, i64 } { ptr @.str.6664, i64 4, i64 0 }, ptr %a31 call void @finch_str_concat(ptr %a29, ptr %a30, ptr %a31) store { ptr, i64, i64 } %t28, ptr %a32 call void @finch_str_drop(ptr %a32) @@ -98074,17 +102099,17 @@ entry: %t48 = icmp eq i32 %t47, 0 %t49 = load { ptr, i64, i64 }, ptr %a46 %t50 = load { ptr, i64, i64 }, ptr %a45 - br i1 %t48, label %or.failed9479, label %or.ok9480 -or.failed9479: + br i1 %t48, label %or.failed9884, label %or.ok9885 +or.failed9884: store { ptr, i64, i64 } %t49, ptr %a51 call void @finch_str_drop(ptr %a51) - br label %or.bend9481 -or.bend9481: - br label %or.end9482 -or.ok9480: - br label %or.end9482 -or.end9482: - %t52 = phi { ptr, i64, i64 } [ { ptr @.str.6457, i64 0, i64 0 }, %or.bend9481 ], [ %t50, %or.ok9480 ] + br label %or.bend9886 +or.bend9886: + br label %or.end9887 +or.ok9885: + br label %or.end9887 +or.end9887: + %t52 = phi { ptr, i64, i64 } [ { ptr @.str.6665, i64 0, i64 0 }, %or.bend9886 ], [ %t50, %or.ok9885 ] store { ptr, i64, i64 } %t52, ptr %a53 %t54 = load { ptr, i64, i64 }, ptr %a21 call void @finch.host.remove({ ptr, i64, i64 } %t54) @@ -98096,12 +102121,12 @@ or.end9482: store { ptr, i64, i64 } %t58, ptr %a60 call void @finch_str_drop(ptr %a60) %t61 = icmp eq i64 %t59, 0 - br i1 %t61, label %then9483, label %endif9485 -then9483: + br i1 %t61, label %then9888, label %endif9890 +then9888: call void @finch_str_drop(ptr %a53) call void @finch_str_drop(ptr %a21) - ret { ptr, i64, i64 } { ptr @.str.6459, i64 24, i64 0 } -endif9485: + ret { ptr, i64, i64 } { ptr @.str.6667, i64 24, i64 0 } +endif9890: %t62 = load { ptr, i64, i64 }, ptr %a53 %t63 = call { ptr, i64, i64 } @finch.platform.firstLine({ ptr, i64, i64 } %t62) call void @finch_str_drop(ptr %a53) @@ -98222,8 +102247,8 @@ entry: %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t10 = load i64, ptr %t9 %t11 = icmp eq i64 %t10, 0 - br i1 %t11, label %then9486, label %else9487 -then9486: + br i1 %t11, label %then9891, label %else9892 +then9891: %t12 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t12, ptr %a13 call void @finch_str_copy(ptr %a14, ptr %a13) @@ -98232,125 +102257,125 @@ then9486: store { ptr, i64, i64 } %t15, ptr %a8 store { ptr, i64, i64 } %t16, ptr %a17 call void @finch_str_drop(ptr %a17) - br label %endif9488 -else9487: + br label %endif9893 +else9892: %t18 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t18, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.6460, i64 7, i64 0 }, ptr %a20 + store { ptr, i64, i64 } { ptr @.str.6668, i64 7, i64 0 }, ptr %a20 %t21 = call i32 @finch_str_eq(ptr %a19, ptr %a20) %t22 = icmp ne i32 %t21, 0 - br i1 %t22, label %then9489, label %else9490 -then9489: + br i1 %t22, label %then9894, label %else9895 +then9894: %t23 = load { ptr, i64, i64 }, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.6461, i64 18, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.6669, i64 18, i64 0 }, ptr %a8 store { ptr, i64, i64 } %t23, ptr %a24 call void @finch_str_drop(ptr %a24) - br label %endif9491 -else9490: + br label %endif9896 +else9895: %t25 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t25, ptr %a26 - store { ptr, i64, i64 } { ptr @.str.6462, i64 5, i64 0 }, ptr %a27 + store { ptr, i64, i64 } { ptr @.str.6670, i64 5, i64 0 }, ptr %a27 %t28 = call i32 @finch_str_eq(ptr %a26, ptr %a27) %t29 = icmp ne i32 %t28, 0 - br i1 %t29, label %then9492, label %else9493 -then9492: + br i1 %t29, label %then9897, label %else9898 +then9897: %t30 = load { ptr, i64, i64 }, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.6463, i64 24, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.6671, i64 24, i64 0 }, ptr %a8 store { ptr, i64, i64 } %t30, ptr %a31 call void @finch_str_drop(ptr %a31) - br label %endif9494 -else9493: + br label %endif9899 +else9898: %t32 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t32, ptr %a33 - store { ptr, i64, i64 } { ptr @.str.6464, i64 5, i64 0 }, ptr %a34 + store { ptr, i64, i64 } { ptr @.str.6672, i64 5, i64 0 }, ptr %a34 %t35 = call i32 @finch_str_eq(ptr %a33, ptr %a34) %t36 = icmp ne i32 %t35, 0 - br label %logic.from9495 -logic.from9495: - br i1 %t36, label %logic.end9497, label %logic.rhs9496 -logic.rhs9496: + br label %logic.from9900 +logic.from9900: + br i1 %t36, label %logic.end9902, label %logic.rhs9901 +logic.rhs9901: %t37 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t37, ptr %a38 - store { ptr, i64, i64 } { ptr @.str.6465, i64 7, i64 0 }, ptr %a39 + store { ptr, i64, i64 } { ptr @.str.6673, i64 7, i64 0 }, ptr %a39 %t40 = call i32 @finch_str_eq(ptr %a38, ptr %a39) %t41 = icmp ne i32 %t40, 0 - br label %logic.rend9498 -logic.rend9498: - br label %logic.end9497 -logic.end9497: - %t42 = phi i1 [ true, %logic.from9495 ], [ %t41, %logic.rend9498 ] - br label %logic.from9499 -logic.from9499: - br i1 %t42, label %logic.end9501, label %logic.rhs9500 -logic.rhs9500: + br label %logic.rend9903 +logic.rend9903: + br label %logic.end9902 +logic.end9902: + %t42 = phi i1 [ true, %logic.from9900 ], [ %t41, %logic.rend9903 ] + br label %logic.from9904 +logic.from9904: + br i1 %t42, label %logic.end9906, label %logic.rhs9905 +logic.rhs9905: %t43 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t43, ptr %a44 - store { ptr, i64, i64 } { ptr @.str.6466, i64 11, i64 0 }, ptr %a45 + store { ptr, i64, i64 } { ptr @.str.6674, i64 11, i64 0 }, ptr %a45 %t46 = call i32 @finch_str_eq(ptr %a44, ptr %a45) %t47 = icmp ne i32 %t46, 0 - br label %logic.rend9502 -logic.rend9502: - br label %logic.end9501 -logic.end9501: - %t48 = phi i1 [ true, %logic.from9499 ], [ %t47, %logic.rend9502 ] - br i1 %t48, label %then9503, label %else9504 -then9503: + br label %logic.rend9907 +logic.rend9907: + br label %logic.end9906 +logic.end9906: + %t48 = phi i1 [ true, %logic.from9904 ], [ %t47, %logic.rend9907 ] + br i1 %t48, label %then9908, label %else9909 +then9908: %t49 = load { ptr, i64, i64 }, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.6467, i64 25, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.6675, i64 25, i64 0 }, ptr %a8 store { ptr, i64, i64 } %t49, ptr %a50 call void @finch_str_drop(ptr %a50) - br label %endif9505 -else9504: + br label %endif9910 +else9909: %t51 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t51, ptr %a52 - store { ptr, i64, i64 } { ptr @.str.6468, i64 5, i64 0 }, ptr %a53 + store { ptr, i64, i64 } { ptr @.str.6676, i64 5, i64 0 }, ptr %a53 %t54 = call i32 @finch_str_eq(ptr %a52, ptr %a53) %t55 = icmp ne i32 %t54, 0 - br i1 %t55, label %then9506, label %endif9508 -then9506: + br i1 %t55, label %then9911, label %endif9913 +then9911: %t56 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t56, ptr %a57 - store { ptr, i64, i64 } { ptr @.str.6470, i64 7, i64 0 }, ptr %a59 + store { ptr, i64, i64 } { ptr @.str.6678, i64 7, i64 0 }, ptr %a59 %t60 = call i32 @finch_str_starts(ptr %a57, ptr %a59) %t61 = icmp ne i32 %t60, 0 - br label %logic.from9509 -logic.from9509: - br i1 %t61, label %logic.end9511, label %logic.rhs9510 -logic.rhs9510: + br label %logic.from9914 +logic.from9914: + br i1 %t61, label %logic.end9916, label %logic.rhs9915 +logic.rhs9915: %t62 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t62, ptr %a63 - store { ptr, i64, i64 } { ptr @.str.6472, i64 5, i64 0 }, ptr %a65 + store { ptr, i64, i64 } { ptr @.str.6680, i64 5, i64 0 }, ptr %a65 %t66 = call i32 @finch_str_starts(ptr %a63, ptr %a65) %t67 = icmp ne i32 %t66, 0 - br label %logic.rend9512 -logic.rend9512: - br label %logic.end9511 -logic.end9511: - %t68 = phi i1 [ true, %logic.from9509 ], [ %t67, %logic.rend9512 ] - br i1 %t68, label %then9513, label %else9514 -then9513: + br label %logic.rend9917 +logic.rend9917: + br label %logic.end9916 +logic.end9916: + %t68 = phi i1 [ true, %logic.from9914 ], [ %t67, %logic.rend9917 ] + br i1 %t68, label %then9918, label %else9919 +then9918: %t69 = load { ptr, i64, i64 }, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.6473, i64 24, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.6681, i64 24, i64 0 }, ptr %a8 store { ptr, i64, i64 } %t69, ptr %a70 call void @finch_str_drop(ptr %a70) - br label %endif9515 -else9514: + br label %endif9920 +else9919: %t71 = load { ptr, i64, i64 }, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.6474, i64 25, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.6682, i64 25, i64 0 }, ptr %a8 store { ptr, i64, i64 } %t71, ptr %a72 call void @finch_str_drop(ptr %a72) - br label %endif9515 -endif9515: - br label %endif9508 -endif9508: - br label %endif9505 -endif9505: - br label %endif9494 -endif9494: - br label %endif9491 -endif9491: - br label %endif9488 -endif9488: + br label %endif9920 +endif9920: + br label %endif9913 +endif9913: + br label %endif9910 +endif9910: + br label %endif9899 +endif9899: + br label %endif9896 +endif9896: + br label %endif9893 +endif9893: %t73 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t73, ptr %a74 call void @finch_str_copy(ptr %a75, ptr %a74) @@ -98359,205 +102384,205 @@ endif9488: store %S.platform.Target %t77, ptr %a78 %t79 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t79, ptr %a80 - store { ptr, i64, i64 } { ptr @.str.6476, i64 7, i64 0 }, ptr %a82 + store { ptr, i64, i64 } { ptr @.str.6684, i64 7, i64 0 }, ptr %a82 %t83 = call i64 @finch_str_find(ptr %a80, ptr %a82) %t84 = icmp sge i64 %t83, 0 - br label %logic.from9516 -logic.from9516: - br i1 %t84, label %logic.end9518, label %logic.rhs9517 -logic.rhs9517: + br label %logic.from9921 +logic.from9921: + br i1 %t84, label %logic.end9923, label %logic.rhs9922 +logic.rhs9922: %t85 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t85, ptr %a86 - store { ptr, i64, i64 } { ptr @.str.6478, i64 5, i64 0 }, ptr %a88 + store { ptr, i64, i64 } { ptr @.str.6686, i64 5, i64 0 }, ptr %a88 %t89 = call i64 @finch_str_find(ptr %a86, ptr %a88) %t90 = icmp sge i64 %t89, 0 - br label %logic.rend9519 -logic.rend9519: - br label %logic.end9518 -logic.end9518: - %t91 = phi i1 [ true, %logic.from9516 ], [ %t90, %logic.rend9519 ] - br label %logic.from9520 -logic.from9520: - br i1 %t91, label %logic.end9522, label %logic.rhs9521 -logic.rhs9521: + br label %logic.rend9924 +logic.rend9924: + br label %logic.end9923 +logic.end9923: + %t91 = phi i1 [ true, %logic.from9921 ], [ %t90, %logic.rend9924 ] + br label %logic.from9925 +logic.from9925: + br i1 %t91, label %logic.end9927, label %logic.rhs9926 +logic.rhs9926: %t92 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t92, ptr %a93 - store { ptr, i64, i64 } { ptr @.str.6480, i64 4, i64 0 }, ptr %a95 + store { ptr, i64, i64 } { ptr @.str.6688, i64 4, i64 0 }, ptr %a95 %t96 = call i64 @finch_str_find(ptr %a93, ptr %a95) %t97 = icmp sge i64 %t96, 0 - br label %logic.rend9523 -logic.rend9523: - br label %logic.end9522 -logic.end9522: - %t98 = phi i1 [ true, %logic.from9520 ], [ %t97, %logic.rend9523 ] - br label %logic.from9524 -logic.from9524: - br i1 %t98, label %logic.end9526, label %logic.rhs9525 -logic.rhs9525: + br label %logic.rend9928 +logic.rend9928: + br label %logic.end9927 +logic.end9927: + %t98 = phi i1 [ true, %logic.from9925 ], [ %t97, %logic.rend9928 ] + br label %logic.from9929 +logic.from9929: + br i1 %t98, label %logic.end9931, label %logic.rhs9930 +logic.rhs9930: %t99 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t99, ptr %a100 - store { ptr, i64, i64 } { ptr @.str.6482, i64 5, i64 0 }, ptr %a102 + store { ptr, i64, i64 } { ptr @.str.6690, i64 5, i64 0 }, ptr %a102 %t103 = call i64 @finch_str_find(ptr %a100, ptr %a102) %t104 = icmp sge i64 %t103, 0 - br label %logic.rend9527 -logic.rend9527: - br label %logic.end9526 -logic.end9526: - %t105 = phi i1 [ true, %logic.from9524 ], [ %t104, %logic.rend9527 ] + br label %logic.rend9932 +logic.rend9932: + br label %logic.end9931 +logic.end9931: + %t105 = phi i1 [ true, %logic.from9929 ], [ %t104, %logic.rend9932 ] %t106 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 1 store i1 %t105, ptr %t106 %t107 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t107, ptr %a108 - store { ptr, i64, i64 } { ptr @.str.6484, i64 4, i64 0 }, ptr %a110 + store { ptr, i64, i64 } { ptr @.str.6692, i64 4, i64 0 }, ptr %a110 %t111 = call i64 @finch_str_find(ptr %a108, ptr %a110) %t112 = icmp sge i64 %t111, 0 %t113 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 2 store i1 %t112, ptr %t113 %t114 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t114, ptr %a115 - store { ptr, i64, i64 } { ptr @.str.6486, i64 5, i64 0 }, ptr %a117 + store { ptr, i64, i64 } { ptr @.str.6694, i64 5, i64 0 }, ptr %a117 %t118 = call i64 @finch_str_find(ptr %a115, ptr %a117) %t119 = icmp sge i64 %t118, 0 - br label %logic.from9528 -logic.from9528: - br i1 %t119, label %logic.end9530, label %logic.rhs9529 -logic.rhs9529: + br label %logic.from9933 +logic.from9933: + br i1 %t119, label %logic.end9935, label %logic.rhs9934 +logic.rhs9934: %t120 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t120, ptr %a121 - store { ptr, i64, i64 } { ptr @.str.6488, i64 6, i64 0 }, ptr %a123 + store { ptr, i64, i64 } { ptr @.str.6696, i64 6, i64 0 }, ptr %a123 %t124 = call i64 @finch_str_find(ptr %a121, ptr %a123) %t125 = icmp sge i64 %t124, 0 - br label %logic.rend9531 -logic.rend9531: - br label %logic.end9530 -logic.end9530: - %t126 = phi i1 [ true, %logic.from9528 ], [ %t125, %logic.rend9531 ] - br label %logic.from9532 -logic.from9532: - br i1 %t126, label %logic.end9534, label %logic.rhs9533 -logic.rhs9533: + br label %logic.rend9936 +logic.rend9936: + br label %logic.end9935 +logic.end9935: + %t126 = phi i1 [ true, %logic.from9933 ], [ %t125, %logic.rend9936 ] + br label %logic.from9937 +logic.from9937: + br i1 %t126, label %logic.end9939, label %logic.rhs9938 +logic.rhs9938: %t127 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t127, ptr %a128 - store { ptr, i64, i64 } { ptr @.str.6490, i64 5, i64 0 }, ptr %a130 + store { ptr, i64, i64 } { ptr @.str.6698, i64 5, i64 0 }, ptr %a130 %t131 = call i64 @finch_str_find(ptr %a128, ptr %a130) %t132 = icmp sge i64 %t131, 0 - br label %logic.rend9535 -logic.rend9535: - br label %logic.end9534 -logic.end9534: - %t133 = phi i1 [ true, %logic.from9532 ], [ %t132, %logic.rend9535 ] + br label %logic.rend9940 +logic.rend9940: + br label %logic.end9939 +logic.end9939: + %t133 = phi i1 [ true, %logic.from9937 ], [ %t132, %logic.rend9940 ] %t134 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 3 store i1 %t133, ptr %t134 %t135 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t135, ptr %a136 - store { ptr, i64, i64 } { ptr @.str.6492, i64 7, i64 0 }, ptr %a138 + store { ptr, i64, i64 } { ptr @.str.6700, i64 7, i64 0 }, ptr %a138 %t139 = call i32 @finch_str_starts(ptr %a136, ptr %a138) %t140 = icmp ne i32 %t139, 0 - br label %logic.from9536 -logic.from9536: - br i1 %t140, label %logic.end9538, label %logic.rhs9537 -logic.rhs9537: + br label %logic.from9941 +logic.from9941: + br i1 %t140, label %logic.end9943, label %logic.rhs9942 +logic.rhs9942: %t141 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t141, ptr %a142 - store { ptr, i64, i64 } { ptr @.str.6494, i64 5, i64 0 }, ptr %a144 + store { ptr, i64, i64 } { ptr @.str.6702, i64 5, i64 0 }, ptr %a144 %t145 = call i32 @finch_str_starts(ptr %a142, ptr %a144) %t146 = icmp ne i32 %t145, 0 - br label %logic.rend9539 -logic.rend9539: - br label %logic.end9538 -logic.end9538: - %t147 = phi i1 [ true, %logic.from9536 ], [ %t146, %logic.rend9539 ] + br label %logic.rend9944 +logic.rend9944: + br label %logic.end9943 +logic.end9943: + %t147 = phi i1 [ true, %logic.from9941 ], [ %t146, %logic.rend9944 ] %t148 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 4 store i1 %t147, ptr %t148 %t149 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t149, ptr %a150 - store { ptr, i64, i64 } { ptr @.str.6496, i64 7, i64 0 }, ptr %a152 + store { ptr, i64, i64 } { ptr @.str.6704, i64 7, i64 0 }, ptr %a152 %t153 = call i32 @finch_str_starts(ptr %a150, ptr %a152) %t154 = icmp ne i32 %t153, 0 - br label %logic.from9540 -logic.from9540: - br i1 %t154, label %logic.end9542, label %logic.rhs9541 -logic.rhs9541: + br label %logic.from9945 +logic.from9945: + br i1 %t154, label %logic.end9947, label %logic.rhs9946 +logic.rhs9946: %t155 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t155, ptr %a156 - store { ptr, i64, i64 } { ptr @.str.6498, i64 5, i64 0 }, ptr %a158 + store { ptr, i64, i64 } { ptr @.str.6706, i64 5, i64 0 }, ptr %a158 %t159 = call i32 @finch_str_starts(ptr %a156, ptr %a158) %t160 = icmp ne i32 %t159, 0 - br label %logic.rend9543 -logic.rend9543: - br label %logic.end9542 -logic.end9542: - %t161 = phi i1 [ true, %logic.from9540 ], [ %t160, %logic.rend9543 ] + br label %logic.rend9948 +logic.rend9948: + br label %logic.end9947 +logic.end9947: + %t161 = phi i1 [ true, %logic.from9945 ], [ %t160, %logic.rend9948 ] store i1 %t161, ptr %a162 %t163 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t163, ptr %a164 - store { ptr, i64, i64 } { ptr @.str.6500, i64 5, i64 0 }, ptr %a166 + store { ptr, i64, i64 } { ptr @.str.6708, i64 5, i64 0 }, ptr %a166 %t167 = call i64 @finch_str_find(ptr %a164, ptr %a166) %t168 = icmp sge i64 %t167, 0 - br label %logic.from9544 -logic.from9544: - br i1 %t168, label %logic.end9546, label %logic.rhs9545 -logic.rhs9545: + br label %logic.from9949 +logic.from9949: + br i1 %t168, label %logic.end9951, label %logic.rhs9950 +logic.rhs9950: %t169 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t169, ptr %a170 - store { ptr, i64, i64 } { ptr @.str.6502, i64 6, i64 0 }, ptr %a172 + store { ptr, i64, i64 } { ptr @.str.6710, i64 6, i64 0 }, ptr %a172 %t173 = call i64 @finch_str_find(ptr %a170, ptr %a172) %t174 = icmp sge i64 %t173, 0 - br label %logic.rend9547 -logic.rend9547: - br label %logic.end9546 -logic.end9546: - %t175 = phi i1 [ true, %logic.from9544 ], [ %t174, %logic.rend9547 ] + br label %logic.rend9952 +logic.rend9952: + br label %logic.end9951 +logic.end9951: + %t175 = phi i1 [ true, %logic.from9949 ], [ %t174, %logic.rend9952 ] store i1 %t175, ptr %a176 %t177 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 1 %t178 = load i1, ptr %t177 - br label %logic.from9548 -logic.from9548: - br i1 %t178, label %logic.end9550, label %logic.rhs9549 -logic.rhs9549: + br label %logic.from9953 +logic.from9953: + br i1 %t178, label %logic.end9955, label %logic.rhs9954 +logic.rhs9954: %t179 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 3 %t180 = load i1, ptr %t179 %t181 = load i1, ptr %a176 %t182 = icmp ne i1 %t180, %t181 - br label %logic.rend9551 -logic.rend9551: - br label %logic.end9550 -logic.end9550: - %t183 = phi i1 [ true, %logic.from9548 ], [ %t182, %logic.rend9551 ] - br label %logic.from9552 -logic.from9552: - br i1 %t183, label %logic.end9554, label %logic.rhs9553 -logic.rhs9553: + br label %logic.rend9956 +logic.rend9956: + br label %logic.end9955 +logic.end9955: + %t183 = phi i1 [ true, %logic.from9953 ], [ %t182, %logic.rend9956 ] + br label %logic.from9957 +logic.from9957: + br i1 %t183, label %logic.end9959, label %logic.rhs9958 +logic.rhs9958: %t184 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 4 %t185 = load i1, ptr %t184 %t186 = load i1, ptr %a162 %t187 = icmp ne i1 %t185, %t186 - br label %logic.rend9555 -logic.rend9555: - br label %logic.end9554 -logic.end9554: - %t188 = phi i1 [ true, %logic.from9552 ], [ %t187, %logic.rend9555 ] + br label %logic.rend9960 +logic.rend9960: + br label %logic.end9959 +logic.end9959: + %t188 = phi i1 [ true, %logic.from9957 ], [ %t187, %logic.rend9960 ] %t189 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 5 store i1 %t188, ptr %t189 %t190 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 6 %t191 = load { ptr, i64, i64 }, ptr %t190 - store { ptr, i64, i64 } { ptr @.str.6503, i64 0, i64 0 }, ptr %t190 + store { ptr, i64, i64 } { ptr @.str.6711, i64 0, i64 0 }, ptr %t190 store { ptr, i64, i64 } %t191, ptr %a192 call void @finch_str_drop(ptr %a192) %t193 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 1 %t194 = load i1, ptr %t193 - br i1 %t194, label %then9556, label %endif9558 -then9556: + br i1 %t194, label %then9961, label %endif9963 +then9961: %t195 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 6 %t196 = load { ptr, i64, i64 }, ptr %t195 - store { ptr, i64, i64 } { ptr @.str.6504, i64 4, i64 0 }, ptr %t195 + store { ptr, i64, i64 } { ptr @.str.6712, i64 4, i64 0 }, ptr %t195 store { ptr, i64, i64 } %t196, ptr %a197 call void @finch_str_drop(ptr %a197) - br label %endif9558 -endif9558: - %t198 = extractvalue { ptr, i64, i64 } { ptr @.str.6505, i64 8, i64 0 }, 0 + br label %endif9963 +endif9963: + %t198 = extractvalue { ptr, i64, i64 } { ptr @.str.6713, i64 8, i64 0 }, 0 %t199 = icmp eq ptr %t198, null - %t200 = select i1 %t199, ptr @.str.6506, ptr %t198 + %t200 = select i1 %t199, ptr @.str.6714, ptr %t198 %t201 = call ptr @getenv(ptr %t200) store { ptr, i64, i64 } zeroinitializer, ptr %a202 call void @finch_str_from_c(ptr %a202, ptr %t201) @@ -98569,8 +102594,8 @@ endif9558: %t208 = getelementptr inbounds { ptr, i64, i64 }, ptr %a207, i32 0, i32 1 %t209 = load i64, ptr %t208 %t210 = icmp sgt i64 %t209, 0 - br i1 %t210, label %then9559, label %else9560 -then9559: + br i1 %t210, label %then9964, label %else9965 +then9964: %t211 = load { ptr, i64, i64 }, ptr %a207 %t212 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 7 store { ptr, i64, i64 } %t211, ptr %a213 @@ -98580,70 +102605,70 @@ then9559: store { ptr, i64, i64 } %t215, ptr %t212 store { ptr, i64, i64 } %t216, ptr %a217 call void @finch_str_drop(ptr %a217) - br label %endif9561 -else9560: + br label %endif9966 +else9965: %t218 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 5 %t219 = load i1, ptr %t218 - br label %logic.from9562 -logic.from9562: - br i1 %t219, label %logic.rhs9563, label %logic.end9564 -logic.rhs9563: + br label %logic.from9967 +logic.from9967: + br i1 %t219, label %logic.rhs9968, label %logic.end9969 +logic.rhs9968: %t220 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 1 %t221 = load i1, ptr %t220 - br label %logic.rend9565 -logic.rend9565: - br label %logic.end9564 -logic.end9564: - %t222 = phi i1 [ false, %logic.from9562 ], [ %t221, %logic.rend9565 ] - br i1 %t222, label %then9566, label %else9567 -then9566: + br label %logic.rend9970 +logic.rend9970: + br label %logic.end9969 +logic.end9969: + %t222 = phi i1 [ false, %logic.from9967 ], [ %t221, %logic.rend9970 ] + br i1 %t222, label %then9971, label %else9972 +then9971: %t223 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 7 %t224 = load { ptr, i64, i64 }, ptr %t223 - store { ptr, i64, i64 } { ptr @.str.6507, i64 22, i64 0 }, ptr %t223 + store { ptr, i64, i64 } { ptr @.str.6715, i64 22, i64 0 }, ptr %t223 store { ptr, i64, i64 } %t224, ptr %a225 call void @finch_str_drop(ptr %a225) - br label %endif9568 -else9567: + br label %endif9973 +else9972: %t226 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 5 %t227 = load i1, ptr %t226 - br label %logic.from9569 -logic.from9569: - br i1 %t227, label %logic.rhs9570, label %logic.end9571 -logic.rhs9570: + br label %logic.from9974 +logic.from9974: + br i1 %t227, label %logic.rhs9975, label %logic.end9976 +logic.rhs9975: %t228 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 4 %t229 = load i1, ptr %t228 - br label %logic.rend9572 -logic.rend9572: - br label %logic.end9571 -logic.end9571: - %t230 = phi i1 [ false, %logic.from9569 ], [ %t229, %logic.rend9572 ] - br label %logic.from9573 -logic.from9573: - br i1 %t230, label %logic.rhs9574, label %logic.end9575 -logic.rhs9574: + br label %logic.rend9977 +logic.rend9977: + br label %logic.end9976 +logic.end9976: + %t230 = phi i1 [ false, %logic.from9974 ], [ %t229, %logic.rend9977 ] + br label %logic.from9978 +logic.from9978: + br i1 %t230, label %logic.rhs9979, label %logic.end9980 +logic.rhs9979: %t231 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 3 %t232 = load i1, ptr %t231 %t233 = xor i1 %t232, true - br label %logic.rend9576 -logic.rend9576: - br label %logic.end9575 -logic.end9575: - %t234 = phi i1 [ false, %logic.from9573 ], [ %t233, %logic.rend9576 ] - br i1 %t234, label %then9577, label %else9578 -then9577: + br label %logic.rend9981 +logic.rend9981: + br label %logic.end9980 +logic.end9980: + %t234 = phi i1 [ false, %logic.from9978 ], [ %t233, %logic.rend9981 ] + br i1 %t234, label %then9982, label %else9983 +then9982: %t235 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 7 %t236 = load { ptr, i64, i64 }, ptr %t235 - store { ptr, i64, i64 } { ptr @.str.6508, i64 21, i64 0 }, ptr %t235 + store { ptr, i64, i64 } { ptr @.str.6716, i64 21, i64 0 }, ptr %t235 store { ptr, i64, i64 } %t236, ptr %a237 call void @finch_str_drop(ptr %a237) - br label %endif9579 -else9578: + br label %endif9984 +else9983: %t238 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 5 %t239 = load i1, ptr %t238 - br i1 %t239, label %then9580, label %else9581 -then9580: + br i1 %t239, label %then9985, label %else9986 +then9985: %t240 = load { ptr, i64, i64 }, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.6509, i64 15, i64 0 }, ptr %a242 + store { ptr, i64, i64 } { ptr @.str.6717, i64 15, i64 0 }, ptr %a242 store { ptr, i64, i64 } %t240, ptr %a243 call void @finch_str_concat(ptr %a241, ptr %a242, ptr %a243) %t244 = load { ptr, i64, i64 }, ptr %a241 @@ -98652,97 +102677,97 @@ then9580: store { ptr, i64, i64 } %t244, ptr %t245 store { ptr, i64, i64 } %t246, ptr %a247 call void @finch_str_drop(ptr %a247) - br label %endif9582 -else9581: + br label %endif9987 +else9986: %t248 = call { ptr, i64, i64 } @finch.host.pathSeparator() store { ptr, i64, i64 } %t248, ptr %a249 - store { ptr, i64, i64 } { ptr @.str.6510, i64 1, i64 0 }, ptr %a250 + store { ptr, i64, i64 } { ptr @.str.6718, i64 1, i64 0 }, ptr %a250 %t251 = call i32 @finch_str_eq(ptr %a249, ptr %a250) %t252 = icmp ne i32 %t251, 0 store { ptr, i64, i64 } %t248, ptr %a253 call void @finch_str_drop(ptr %a253) - br i1 %t252, label %then9583, label %else9584 -then9583: + br i1 %t252, label %then9988, label %else9989 +then9988: %t254 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 7 %t255 = load { ptr, i64, i64 }, ptr %t254 - store { ptr, i64, i64 } { ptr @.str.6511, i64 5, i64 0 }, ptr %t254 + store { ptr, i64, i64 } { ptr @.str.6719, i64 5, i64 0 }, ptr %t254 store { ptr, i64, i64 } %t255, ptr %a256 call void @finch_str_drop(ptr %a256) - br label %endif9585 -else9584: + br label %endif9990 +else9989: %t257 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 7 %t258 = load { ptr, i64, i64 }, ptr %t257 - store { ptr, i64, i64 } { ptr @.str.6512, i64 2, i64 0 }, ptr %t257 + store { ptr, i64, i64 } { ptr @.str.6720, i64 2, i64 0 }, ptr %t257 store { ptr, i64, i64 } %t258, ptr %a259 call void @finch_str_drop(ptr %a259) - br label %endif9585 -endif9585: - br label %endif9582 -endif9582: - br label %endif9579 -endif9579: - br label %endif9568 -endif9568: - br label %endif9561 -endif9561: + br label %endif9990 +endif9990: + br label %endif9987 +endif9987: + br label %endif9984 +endif9984: + br label %endif9973 +endif9973: + br label %endif9966 +endif9966: %t260 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 5 %t261 = load i1, ptr %t260 - br label %logic.from9586 -logic.from9586: - br i1 %t261, label %logic.rhs9587, label %logic.end9588 -logic.rhs9587: + br label %logic.from9991 +logic.from9991: + br i1 %t261, label %logic.rhs9992, label %logic.end9993 +logic.rhs9992: %t262 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 1 %t263 = load i1, ptr %t262 - br label %logic.rend9589 -logic.rend9589: - br label %logic.end9588 -logic.end9588: - %t264 = phi i1 [ false, %logic.from9586 ], [ %t263, %logic.rend9589 ] - br i1 %t264, label %then9590, label %else9591 -then9590: + br label %logic.rend9994 +logic.rend9994: + br label %logic.end9993 +logic.end9993: + %t264 = phi i1 [ false, %logic.from9991 ], [ %t263, %logic.rend9994 ] + br i1 %t264, label %then9995, label %else9996 +then9995: %t265 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 8 %t266 = load { ptr, i64, i64 }, ptr %t265 - store { ptr, i64, i64 } { ptr @.str.6513, i64 5, i64 0 }, ptr %t265 + store { ptr, i64, i64 } { ptr @.str.6721, i64 5, i64 0 }, ptr %t265 store { ptr, i64, i64 } %t266, ptr %a267 call void @finch_str_drop(ptr %a267) - br label %endif9592 -else9591: + br label %endif9997 +else9996: %t268 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 5 %t269 = load i1, ptr %t268 - br label %logic.from9593 -logic.from9593: - br i1 %t269, label %logic.rhs9594, label %logic.end9595 -logic.rhs9594: + br label %logic.from9998 +logic.from9998: + br i1 %t269, label %logic.rhs9999, label %logic.end10000 +logic.rhs9999: %t270 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 4 %t271 = load i1, ptr %t270 - br label %logic.rend9596 -logic.rend9596: - br label %logic.end9595 -logic.end9595: - %t272 = phi i1 [ false, %logic.from9593 ], [ %t271, %logic.rend9596 ] - br label %logic.from9597 -logic.from9597: - br i1 %t272, label %logic.rhs9598, label %logic.end9599 -logic.rhs9598: + br label %logic.rend10001 +logic.rend10001: + br label %logic.end10000 +logic.end10000: + %t272 = phi i1 [ false, %logic.from9998 ], [ %t271, %logic.rend10001 ] + br label %logic.from10002 +logic.from10002: + br i1 %t272, label %logic.rhs10003, label %logic.end10004 +logic.rhs10003: %t273 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 3 %t274 = load i1, ptr %t273 %t275 = xor i1 %t274, true - br label %logic.rend9600 -logic.rend9600: - br label %logic.end9599 -logic.end9599: - %t276 = phi i1 [ false, %logic.from9597 ], [ %t275, %logic.rend9600 ] - br i1 %t276, label %then9601, label %endif9603 -then9601: + br label %logic.rend10005 +logic.rend10005: + br label %logic.end10004 +logic.end10004: + %t276 = phi i1 [ false, %logic.from10002 ], [ %t275, %logic.rend10005 ] + br i1 %t276, label %then10006, label %endif10008 +then10006: %t277 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 8 %t278 = load { ptr, i64, i64 }, ptr %t277 - store { ptr, i64, i64 } { ptr @.str.6514, i64 13, i64 0 }, ptr %t277 + store { ptr, i64, i64 } { ptr @.str.6722, i64 13, i64 0 }, ptr %t277 store { ptr, i64, i64 } %t278, ptr %a279 call void @finch_str_drop(ptr %a279) - br label %endif9603 -endif9603: - br label %endif9592 -endif9592: + br label %endif10008 +endif10008: + br label %endif9997 +endif9997: %t280 = load %S.platform.Target, ptr %a78 call void @finch_str_drop(ptr %a207) call void @finch_str_drop(ptr %a8) @@ -98757,28 +102782,28 @@ entry: %t2 = getelementptr inbounds %S.platform.Target, ptr %a1, i32 0, i32 4 %t3 = load i1, ptr %t2 %t4 = xor i1 %t3, true - br label %logic.from9604 -logic.from9604: - br i1 %t4, label %logic.end9606, label %logic.rhs9605 -logic.rhs9605: + br label %logic.from10009 +logic.from10009: + br i1 %t4, label %logic.end10011, label %logic.rhs10010 +logic.rhs10010: %t5 = getelementptr inbounds %S.platform.Target, ptr %a1, i32 0, i32 3 %t6 = load i1, ptr %t5 - br label %logic.rend9607 -logic.rend9607: - br label %logic.end9606 -logic.end9606: - %t7 = phi i1 [ true, %logic.from9604 ], [ %t6, %logic.rend9607 ] - br label %logic.from9608 -logic.from9608: - br i1 %t7, label %logic.end9610, label %logic.rhs9609 -logic.rhs9609: + br label %logic.rend10012 +logic.rend10012: + br label %logic.end10011 +logic.end10011: + %t7 = phi i1 [ true, %logic.from10009 ], [ %t6, %logic.rend10012 ] + br label %logic.from10013 +logic.from10013: + br i1 %t7, label %logic.end10015, label %logic.rhs10014 +logic.rhs10014: %t8 = getelementptr inbounds %S.platform.Target, ptr %a1, i32 0, i32 1 %t9 = load i1, ptr %t8 - br label %logic.rend9611 -logic.rend9611: - br label %logic.end9610 -logic.end9610: - %t10 = phi i1 [ true, %logic.from9608 ], [ %t9, %logic.rend9611 ] + br label %logic.rend10016 +logic.rend10016: + br label %logic.end10015 +logic.end10015: + %t10 = phi i1 [ true, %logic.from10013 ], [ %t9, %logic.rend10016 ] ret i1 %t10 } @@ -98797,14 +102822,14 @@ entry: store { ptr, i64, i64 } %p0, ptr %a1 store i32 2166136261, ptr %a2 store i64 0, ptr %a3 - br label %each.cond9612 -each.cond9612: + br label %each.cond10017 +each.cond10017: %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t5 = load i64, ptr %t4 %t6 = load i64, ptr %a3 %t7 = icmp slt i64 %t6, %t5 - br i1 %t7, label %each.body9613, label %each.end9615 -each.body9613: + br i1 %t7, label %each.body10018, label %each.end10020 +each.body10018: %t8 = load ptr, ptr %a1 %t9 = getelementptr inbounds i8, ptr %t8, i64 %t6 %t10 = load i8, ptr %t9 @@ -98815,22 +102840,22 @@ each.body9613: %t15 = xor i32 %t12, %t14 %t16 = mul i32 %t15, 16777619 store i32 %t16, ptr %a2 - br label %each.step9614 -each.step9614: + br label %each.step10019 +each.step10019: %t17 = load i64, ptr %a3 %t18 = add i64 %t17, 1 store i64 %t18, ptr %a3 - br label %each.cond9612 -each.end9615: - store { ptr, i64, i64 } { ptr @.str.6515, i64 16, i64 0 }, ptr %a19 + br label %each.cond10017 +each.end10020: + store { ptr, i64, i64 } { ptr @.str.6723, i64 16, i64 0 }, ptr %a19 store { ptr, i64, i64 } zeroinitializer, ptr %a20 store i64 0, ptr %a21 - br label %for.cond9616 -for.cond9616: + br label %for.cond10021 +for.cond10021: %t22 = load i64, ptr %a21 %t23 = icmp slt i64 %t22, 8 - br i1 %t23, label %for.body9617, label %for.end9619 -for.body9617: + br i1 %t23, label %for.body10022, label %for.end10024 +for.body10022: %t24 = getelementptr inbounds { ptr, i64, i64 }, ptr %a20, i32 0, i32 1 %t25 = load i32, ptr %a2 %t26 = load i64, ptr %a21 @@ -98843,11 +102868,11 @@ for.body9617: %t33 = load { ptr, i64, i64 }, ptr %a19 %t34 = extractvalue { ptr, i64, i64 } %t33, 1 %t35 = icmp uge i64 %t32, %t34 - br i1 %t35, label %range9620, label %inrange9621 -range9620: - call void @finch_panic_index(ptr @.str.6516, i64 16, i64 %t32, i64 %t34) + br i1 %t35, label %range10025, label %inrange10026 +range10025: + call void @finch_panic_index(ptr @.str.6724, i64 16, i64 %t32, i64 %t34) unreachable -inrange9621: +inrange10026: %t36 = extractvalue { ptr, i64, i64 } %t33, 0 %t37 = getelementptr inbounds i8, ptr %t36, i64 %t32 %t38 = load i8, ptr %t37 @@ -98860,15 +102885,15 @@ inrange9621: %t44 = getelementptr inbounds { ptr, i64, i64 }, ptr %t43, i64 %t41 store { ptr, i64, i64 } %t40, ptr %t44 store i64 %t42, ptr %t24 - br label %for.step9618 -for.step9618: + br label %for.step10023 +for.step10023: %t45 = load i64, ptr %a21 %t46 = add i64 %t45, 1 store i64 %t46, ptr %a21 - br label %for.cond9616 -for.end9619: + br label %for.cond10021 +for.end10024: %t47 = getelementptr inbounds { ptr, i64, i64 }, ptr %a20, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.6517, i64 0, i64 0 }, ptr %a48 + store { ptr, i64, i64 } { ptr @.str.6725, i64 0, i64 0 }, ptr %a48 call void @finch_str_join(ptr %a49, ptr %a20, ptr %a48) %t50 = load { ptr, i64, i64 }, ptr %a49 call void @finch.drop.arr_str(ptr %a20) @@ -98955,37 +102980,37 @@ entry: store %S.platform.Target %p1, ptr %a2 %t3 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t3, ptr %a4 - store { ptr, i64, i64 } { ptr @.str.6519, i64 10, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.6727, i64 10, i64 0 }, ptr %a6 %t7 = call i32 @finch_str_ends(ptr %a4, ptr %a6) %t8 = icmp ne i32 %t7, 0 - br i1 %t8, label %then9622, label %endif9624 -then9622: + br i1 %t8, label %then10027, label %endif10029 +then10027: %t9 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t9, ptr %a10 %t12 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t13 = load i64, ptr %t12 %t14 = sub i64 %t13, 10 - call void @finch_str_sub(ptr %a11, ptr %a10, i64 0, i64 %t14, ptr @.str.6521, i64 28) + call void @finch_str_sub(ptr %a11, ptr %a10, i64 0, i64 %t14, ptr @.str.6729, i64 28) %t15 = load { ptr, i64, i64 }, ptr %a11 %t16 = call { ptr, i64, i64 } @finch.linker.quote({ ptr, i64, i64 } %t15) store { ptr, i64, i64 } %t15, ptr %a17 call void @finch_str_drop(ptr %a17) - store { ptr, i64, i64 } { ptr @.str.6520, i64 11, i64 0 }, ptr %a19 + store { ptr, i64, i64 } { ptr @.str.6728, i64 11, i64 0 }, ptr %a19 store { ptr, i64, i64 } %t16, ptr %a20 call void @finch_str_concat(ptr %a18, ptr %a19, ptr %a20) store { ptr, i64, i64 } %t16, ptr %a21 call void @finch_str_drop(ptr %a21) %t22 = load { ptr, i64, i64 }, ptr %a18 ret { ptr, i64, i64 } %t22 -endif9624: +endif10029: %t23 = getelementptr inbounds %S.platform.Target, ptr %a2, i32 0, i32 5 %t24 = load i1, ptr %t23 %t25 = xor i1 %t24, true - br i1 %t25, label %then9625, label %endif9627 -then9625: + br i1 %t25, label %then10030, label %endif10032 +then10030: %t26 = call { ptr, i64, i64 } @finch.host.tempDir() store { ptr, i64, i64 } %t26, ptr %a28 - store { ptr, i64, i64 } { ptr @.str.6522, i64 17, i64 0 }, ptr %a29 + store { ptr, i64, i64 } { ptr @.str.6730, i64 17, i64 0 }, ptr %a29 call void @finch_str_concat(ptr %a27, ptr %a28, ptr %a29) store { ptr, i64, i64 } %t26, ptr %a30 call void @finch_str_drop(ptr %a30) @@ -99002,7 +103027,7 @@ then9625: call void @finch_str_drop(ptr %a39) %t40 = load { ptr, i64, i64 }, ptr %a35 store { ptr, i64, i64 } %t40, ptr %a42 - store { ptr, i64, i64 } { ptr @.str.6523, i64 4, i64 0 }, ptr %a43 + store { ptr, i64, i64 } { ptr @.str.6731, i64 4, i64 0 }, ptr %a43 call void @finch_str_concat(ptr %a41, ptr %a42, ptr %a43) store { ptr, i64, i64 } %t40, ptr %a44 call void @finch_str_drop(ptr %a44) @@ -99010,14 +103035,14 @@ then9625: store { ptr, i64, i64 } %t45, ptr %a46 %t47 = load { ptr, i64, i64 }, ptr %a1 %t48 = call { ptr, i64, i64 } @finch.linker.quote({ ptr, i64, i64 } %t47) - store { ptr, i64, i64 } { ptr @.str.6524, i64 18, i64 0 }, ptr %a50 + store { ptr, i64, i64 } { ptr @.str.6732, i64 18, i64 0 }, ptr %a50 store { ptr, i64, i64 } %t48, ptr %a51 call void @finch_str_concat(ptr %a49, ptr %a50, ptr %a51) store { ptr, i64, i64 } %t48, ptr %a52 call void @finch_str_drop(ptr %a52) %t53 = load { ptr, i64, i64 }, ptr %a49 store { ptr, i64, i64 } %t53, ptr %a55 - store { ptr, i64, i64 } { ptr @.str.6525, i64 3, i64 0 }, ptr %a56 + store { ptr, i64, i64 } { ptr @.str.6733, i64 3, i64 0 }, ptr %a56 call void @finch_str_concat(ptr %a54, ptr %a55, ptr %a56) store { ptr, i64, i64 } %t53, ptr %a57 call void @finch_str_drop(ptr %a57) @@ -99033,7 +103058,7 @@ then9625: call void @finch_str_drop(ptr %a65) %t66 = load { ptr, i64, i64 }, ptr %a61 store { ptr, i64, i64 } %t66, ptr %a68 - store { ptr, i64, i64 } { ptr @.str.6526, i64 4, i64 0 }, ptr %a69 + store { ptr, i64, i64 } { ptr @.str.6734, i64 4, i64 0 }, ptr %a69 call void @finch_str_concat(ptr %a67, ptr %a68, ptr %a69) store { ptr, i64, i64 } %t66, ptr %a70 call void @finch_str_drop(ptr %a70) @@ -99053,21 +103078,21 @@ then9625: store i64 %t79, ptr %a81 %t82 = load i64, ptr %a81 %t83 = icmp eq i64 %t82, 0 - br label %logic.from9628 -logic.from9628: - br i1 %t83, label %logic.rhs9629, label %logic.end9630 -logic.rhs9629: + br label %logic.from10033 +logic.from10033: + br i1 %t83, label %logic.rhs10034, label %logic.end10035 +logic.rhs10034: %t84 = load { ptr, i64, i64 }, ptr %a46 store { ptr, i64, i64 } %t84, ptr %a85 %t86 = call i32 @finch_file_exists(ptr %a85) %t87 = icmp ne i32 %t86, 0 - br label %logic.rend9631 -logic.rend9631: - br label %logic.end9630 -logic.end9630: - %t88 = phi i1 [ false, %logic.from9628 ], [ %t87, %logic.rend9631 ] - br i1 %t88, label %then9632, label %endif9634 -then9632: + br label %logic.rend10036 +logic.rend10036: + br label %logic.end10035 +logic.end10035: + %t88 = phi i1 [ false, %logic.from10033 ], [ %t87, %logic.rend10036 ] + br i1 %t88, label %then10037, label %endif10039 +then10037: %t89 = load { ptr, i64, i64 }, ptr %a46 store { ptr, i64, i64 } %t89, ptr %a90 store { ptr, i64, i64 } zeroinitializer, ptr %a91 @@ -99076,17 +103101,17 @@ then9632: %t94 = icmp eq i32 %t93, 0 %t95 = load { ptr, i64, i64 }, ptr %a92 %t96 = load { ptr, i64, i64 }, ptr %a91 - br i1 %t94, label %or.failed9635, label %or.ok9636 -or.failed9635: + br i1 %t94, label %or.failed10040, label %or.ok10041 +or.failed10040: store { ptr, i64, i64 } %t95, ptr %a97 call void @finch_str_drop(ptr %a97) - br label %or.bend9637 -or.bend9637: - br label %or.end9638 -or.ok9636: - br label %or.end9638 -or.end9638: - %t98 = phi { ptr, i64, i64 } [ { ptr @.str.6527, i64 0, i64 0 }, %or.bend9637 ], [ %t96, %or.ok9636 ] + br label %or.bend10042 +or.bend10042: + br label %or.end10043 +or.ok10041: + br label %or.end10043 +or.end10043: + %t98 = phi { ptr, i64, i64 } [ { ptr @.str.6735, i64 0, i64 0 }, %or.bend10042 ], [ %t96, %or.ok10041 ] store { ptr, i64, i64 } %t98, ptr %a99 call void @finch_str_trim(ptr %a100, ptr %a99) %t101 = load { ptr, i64, i64 }, ptr %a100 @@ -99098,20 +103123,20 @@ or.end9638: %t105 = getelementptr inbounds { ptr, i64, i64 }, ptr %a103, i32 0, i32 1 %t106 = load i64, ptr %t105 %t107 = icmp sgt i64 %t106, 0 - br i1 %t107, label %then9639, label %endif9641 -then9639: + br i1 %t107, label %then10044, label %endif10046 +then10044: %t108 = load { ptr, i64, i64 }, ptr %a103 call void @finch_str_drop(ptr %a46) ret { ptr, i64, i64 } %t108 -endif9641: +endif10046: call void @finch_str_drop(ptr %a103) - br label %endif9634 -endif9634: + br label %endif10039 +endif10039: call void @finch_str_drop(ptr %a46) - br label %endif9627 -endif9627: + br label %endif10032 +endif10032: %t109 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } { ptr @.str.6529, i64 2, i64 0 }, ptr %a111 + store { ptr, i64, i64 } { ptr @.str.6737, i64 2, i64 0 }, ptr %a111 store { ptr, i64, i64 } %t109, ptr %a112 call void @finch_str_concat(ptr %a110, ptr %a111, ptr %a112) %t113 = load { ptr, i64, i64 }, ptr %a110 @@ -99155,22 +103180,22 @@ entry: store { ptr, i64, i64 } %t5, ptr %a6 %t7 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t7, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.6531, i64 1, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.6739, i64 1, i64 0 }, ptr %a10 %t11 = call i64 @finch_str_find(ptr %a8, ptr %a10) store i64 %t11, ptr %a12 - br label %while.cond9642 -while.cond9642: + br label %while.cond10047 +while.cond10047: %t13 = load i64, ptr %a12 %t14 = icmp sge i64 %t13, 0 - br i1 %t14, label %while.body9643, label %while.end9644 -while.body9643: + br i1 %t14, label %while.body10048, label %while.end10049 +while.body10048: %t15 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t15, ptr %a16 %t18 = load i64, ptr %a12 %t19 = add i64 %t18, 1 %t20 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t21 = load i64, ptr %t20 - call void @finch_str_sub(ptr %a17, ptr %a16, i64 %t19, i64 %t21, ptr @.str.6532, i64 49) + call void @finch_str_sub(ptr %a17, ptr %a16, i64 %t19, i64 %t21, ptr @.str.6740, i64 49) %t22 = load { ptr, i64, i64 }, ptr %a17 %t23 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t22, ptr %a6 @@ -99178,126 +103203,126 @@ while.body9643: call void @finch_str_drop(ptr %a24) %t25 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t25, ptr %a26 - store { ptr, i64, i64 } { ptr @.str.6534, i64 1, i64 0 }, ptr %a28 + store { ptr, i64, i64 } { ptr @.str.6742, i64 1, i64 0 }, ptr %a28 %t29 = call i64 @finch_str_find(ptr %a26, ptr %a28) store i64 %t29, ptr %a12 - br label %while.cond9642 -while.end9644: + br label %while.cond10047 +while.end10049: %t30 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t31 = load i64, ptr %t30 store i64 %t31, ptr %a32 %t33 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t34 = load i64, ptr %t33 store i64 0, ptr %a35 - br label %for.cond9645 -for.cond9645: + br label %for.cond10050 +for.cond10050: %t36 = load i64, ptr %a35 %t37 = icmp slt i64 %t36, %t34 - br i1 %t37, label %for.body9646, label %for.end9648 -for.body9646: + br i1 %t37, label %for.body10051, label %for.end10053 +for.body10051: %t38 = load i64, ptr %a35 %t39 = load { ptr, i64, i64 }, ptr %a6 %t40 = extractvalue { ptr, i64, i64 } %t39, 1 %t41 = icmp uge i64 %t38, %t40 - br i1 %t41, label %range9649, label %inrange9650 -range9649: - call void @finch_panic_index(ptr @.str.6535, i64 54, i64 %t38, i64 %t40) + br i1 %t41, label %range10054, label %inrange10055 +range10054: + call void @finch_panic_index(ptr @.str.6743, i64 54, i64 %t38, i64 %t40) unreachable -inrange9650: +inrange10055: %t42 = extractvalue { ptr, i64, i64 } %t39, 0 %t43 = getelementptr inbounds i8, ptr %t42, i64 %t38 %t44 = load i8, ptr %t43 %t45 = icmp eq i8 %t44, 46 - br i1 %t45, label %then9651, label %endif9653 -then9651: + br i1 %t45, label %then10056, label %endif10058 +then10056: %t46 = load i64, ptr %a35 store i64 %t46, ptr %a32 - br label %endif9653 -endif9653: - br label %for.step9647 -for.step9647: + br label %endif10058 +endif10058: + br label %for.step10052 +for.step10052: %t47 = load i64, ptr %a35 %t48 = add i64 %t47, 1 store i64 %t48, ptr %a35 - br label %for.cond9645 -for.end9648: + br label %for.cond10050 +for.end10053: %t49 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t49, ptr %a50 %t52 = load i64, ptr %a32 - call void @finch_str_sub(ptr %a51, ptr %a50, i64 0, i64 %t52, ptr @.str.6536, i64 58) + call void @finch_str_sub(ptr %a51, ptr %a50, i64 0, i64 %t52, ptr @.str.6744, i64 58) %t53 = load { ptr, i64, i64 }, ptr %a51 %t54 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t53, ptr %a6 store { ptr, i64, i64 } %t54, ptr %a55 call void @finch_str_drop(ptr %a55) - br label %while.cond9654 -while.cond9654: + br label %while.cond10059 +while.cond10059: %t56 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t57 = load i64, ptr %t56 %t58 = icmp sgt i64 %t57, 0 - br label %logic.from9657 -logic.from9657: - br i1 %t58, label %logic.rhs9658, label %logic.end9659 -logic.rhs9658: + br label %logic.from10062 +logic.from10062: + br i1 %t58, label %logic.rhs10063, label %logic.end10064 +logic.rhs10063: %t59 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t60 = load i64, ptr %t59 %t61 = sub i64 %t60, 1 %t62 = load { ptr, i64, i64 }, ptr %a6 %t63 = extractvalue { ptr, i64, i64 } %t62, 1 %t64 = icmp uge i64 %t61, %t63 - br i1 %t64, label %range9660, label %inrange9661 -range9660: - call void @finch_panic_index(ptr @.str.6537, i64 59, i64 %t61, i64 %t63) + br i1 %t64, label %range10065, label %inrange10066 +range10065: + call void @finch_panic_index(ptr @.str.6745, i64 59, i64 %t61, i64 %t63) unreachable -inrange9661: +inrange10066: %t65 = extractvalue { ptr, i64, i64 } %t62, 0 %t66 = getelementptr inbounds i8, ptr %t65, i64 %t61 %t67 = load i8, ptr %t66 %t68 = icmp uge i8 %t67, 48 - br label %logic.rend9662 -logic.rend9662: - br label %logic.end9659 -logic.end9659: - %t69 = phi i1 [ false, %logic.from9657 ], [ %t68, %logic.rend9662 ] - br label %logic.from9663 -logic.from9663: - br i1 %t69, label %logic.rhs9664, label %logic.end9665 -logic.rhs9664: + br label %logic.rend10067 +logic.rend10067: + br label %logic.end10064 +logic.end10064: + %t69 = phi i1 [ false, %logic.from10062 ], [ %t68, %logic.rend10067 ] + br label %logic.from10068 +logic.from10068: + br i1 %t69, label %logic.rhs10069, label %logic.end10070 +logic.rhs10069: %t70 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t71 = load i64, ptr %t70 %t72 = sub i64 %t71, 1 %t73 = load { ptr, i64, i64 }, ptr %a6 %t74 = extractvalue { ptr, i64, i64 } %t73, 1 %t75 = icmp uge i64 %t72, %t74 - br i1 %t75, label %range9666, label %inrange9667 -range9666: - call void @finch_panic_index(ptr @.str.6538, i64 59, i64 %t72, i64 %t74) + br i1 %t75, label %range10071, label %inrange10072 +range10071: + call void @finch_panic_index(ptr @.str.6746, i64 59, i64 %t72, i64 %t74) unreachable -inrange9667: +inrange10072: %t76 = extractvalue { ptr, i64, i64 } %t73, 0 %t77 = getelementptr inbounds i8, ptr %t76, i64 %t72 %t78 = load i8, ptr %t77 %t79 = icmp ule i8 %t78, 57 - br label %logic.rend9668 -logic.rend9668: - br label %logic.end9665 -logic.end9665: - %t80 = phi i1 [ false, %logic.from9663 ], [ %t79, %logic.rend9668 ] - br i1 %t80, label %while.body9655, label %while.end9656 -while.body9655: + br label %logic.rend10073 +logic.rend10073: + br label %logic.end10070 +logic.end10070: + %t80 = phi i1 [ false, %logic.from10068 ], [ %t79, %logic.rend10073 ] + br i1 %t80, label %while.body10060, label %while.end10061 +while.body10060: %t81 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t81, ptr %a82 %t84 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t85 = load i64, ptr %t84 %t86 = sub i64 %t85, 1 - call void @finch_str_sub(ptr %a83, ptr %a82, i64 0, i64 %t86, ptr @.str.6539, i64 60) + call void @finch_str_sub(ptr %a83, ptr %a82, i64 0, i64 %t86, ptr @.str.6747, i64 60) %t87 = load { ptr, i64, i64 }, ptr %a83 %t88 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t87, ptr %a6 store { ptr, i64, i64 } %t88, ptr %a89 call void @finch_str_drop(ptr %a89) - br label %while.cond9654 -while.end9656: + br label %while.cond10059 +while.end10061: %t90 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t90, ptr %a91 call void @finch_str_lower(ptr %a92, ptr %a91) @@ -99319,10 +103344,10 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t3 = load i64, ptr %t2 %t4 = icmp sgt i64 %t3, 0 - br label %logic.from9669 -logic.from9669: - br i1 %t4, label %logic.rhs9670, label %logic.end9671 -logic.rhs9670: + br label %logic.from10074 +logic.from10074: + br i1 %t4, label %logic.rhs10075, label %logic.end10076 +logic.rhs10075: %t5 = getelementptr inbounds %S.linker.Names, ptr %self, i32 0, i32 0 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t7 = load { ptr, i64, i64 }, ptr %a1 @@ -99330,37 +103355,37 @@ logic.rhs9670: %t9 = load i64, ptr %t6 %t10 = load ptr, ptr %t5 store i64 0, ptr %a11 - br label %find.cond9672 -find.cond9672: + br label %find.cond10077 +find.cond10077: %t12 = load i64, ptr %a11 %t13 = icmp slt i64 %t12, %t9 - br i1 %t13, label %find.body9673, label %find.end9676 -find.body9673: + br i1 %t13, label %find.body10078, label %find.end10081 +find.body10078: %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %t10, i64 %t12 %t15 = load { ptr, i64, i64 }, ptr %t14 store { ptr, i64, i64 } %t15, ptr %a16 store { ptr, i64, i64 } %t7, ptr %a17 %t18 = call i32 @finch_str_eq(ptr %a16, ptr %a17) %t19 = icmp ne i32 %t18, 0 - br i1 %t19, label %find.hit9674, label %find.next9675 -find.hit9674: + br i1 %t19, label %find.hit10079, label %find.next10080 +find.hit10079: store i64 %t12, ptr %a8 - br label %find.end9676 -find.next9675: + br label %find.end10081 +find.next10080: %t20 = add i64 %t12, 1 store i64 %t20, ptr %a11 - br label %find.cond9672 -find.end9676: + br label %find.cond10077 +find.end10081: %t21 = load i64, ptr %a8 %t22 = icmp sge i64 %t21, 0 %t23 = xor i1 %t22, true - br label %logic.rend9677 -logic.rend9677: - br label %logic.end9671 -logic.end9671: - %t24 = phi i1 [ false, %logic.from9669 ], [ %t23, %logic.rend9677 ] - br i1 %t24, label %then9678, label %endif9680 -then9678: + br label %logic.rend10082 +logic.rend10082: + br label %logic.end10076 +logic.end10076: + %t24 = phi i1 [ false, %logic.from10074 ], [ %t23, %logic.rend10082 ] + br i1 %t24, label %then10083, label %endif10085 +then10083: %t25 = getelementptr inbounds %S.linker.Names, ptr %self, i32 0, i32 0 %t26 = getelementptr inbounds { ptr, i64, i64 }, ptr %t25, i32 0, i32 1 %t27 = load { ptr, i64, i64 }, ptr %a1 @@ -99374,8 +103399,8 @@ then9678: %t34 = getelementptr inbounds { ptr, i64, i64 }, ptr %t33, i64 %t31 store { ptr, i64, i64 } %t30, ptr %t34 store i64 %t32, ptr %t26 - br label %endif9680 -endif9680: + br label %endif10085 +endif10085: ret void } @@ -99410,10 +103435,10 @@ entry: store i64 %t9, ptr %a10 %t11 = load i64, ptr %a10 %t12 = icmp slt i64 %t11, 0 - br i1 %t12, label %then9681, label %endif9683 -then9681: - ret { ptr, i64, i64 } { ptr @.str.6542, i64 0, i64 0 } -endif9683: + br i1 %t12, label %then10086, label %endif10088 +then10086: + ret { ptr, i64, i64 } { ptr @.str.6750, i64 0, i64 0 } +endif10088: %t13 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t13, ptr %a14 %t16 = load i64, ptr %a10 @@ -99422,31 +103447,31 @@ endif9683: %t19 = add i64 %t16, %t18 %t20 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t21 = load i64, ptr %t20 - call void @finch_str_sub(ptr %a15, ptr %a14, i64 %t19, i64 %t21, ptr @.str.6543, i64 81) + call void @finch_str_sub(ptr %a15, ptr %a14, i64 %t19, i64 %t21, ptr @.str.6751, i64 81) %t22 = load { ptr, i64, i64 }, ptr %a15 store { ptr, i64, i64 } %t22, ptr %a23 store i64 0, ptr %a24 - br label %while.cond9684 -while.cond9684: + br label %while.cond10089 +while.cond10089: %t25 = load i64, ptr %a24 %t26 = getelementptr inbounds { ptr, i64, i64 }, ptr %a23, i32 0, i32 1 %t27 = load i64, ptr %t26 %t28 = icmp slt i64 %t25, %t27 - br label %logic.from9687 -logic.from9687: - br i1 %t28, label %logic.rhs9688, label %logic.end9689 -logic.rhs9688: + br label %logic.from10092 +logic.from10092: + br i1 %t28, label %logic.rhs10093, label %logic.end10094 +logic.rhs10093: %t29 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t29, ptr %a30 %t32 = load i64, ptr %a24 %t33 = load { ptr, i64, i64 }, ptr %a23 %t34 = extractvalue { ptr, i64, i64 } %t33, 1 %t35 = icmp uge i64 %t32, %t34 - br i1 %t35, label %range9690, label %inrange9691 -range9690: - call void @finch_panic_index(ptr @.str.6545, i64 83, i64 %t32, i64 %t34) + br i1 %t35, label %range10095, label %inrange10096 +range10095: + call void @finch_panic_index(ptr @.str.6753, i64 83, i64 %t32, i64 %t34) unreachable -inrange9691: +inrange10096: %t36 = extractvalue { ptr, i64, i64 } %t33, 0 %t37 = getelementptr inbounds i8, ptr %t36, i64 %t32 %t38 = load i8, ptr %t37 @@ -99458,22 +103483,22 @@ inrange9691: store { ptr, i64, i64 } %t40, ptr %a44 call void @finch_str_drop(ptr %a44) %t45 = xor i1 %t43, true - br label %logic.rend9692 -logic.rend9692: - br label %logic.end9689 -logic.end9689: - %t46 = phi i1 [ false, %logic.from9687 ], [ %t45, %logic.rend9692 ] - br i1 %t46, label %while.body9685, label %while.end9686 -while.body9685: + br label %logic.rend10097 +logic.rend10097: + br label %logic.end10094 +logic.end10094: + %t46 = phi i1 [ false, %logic.from10092 ], [ %t45, %logic.rend10097 ] + br i1 %t46, label %while.body10090, label %while.end10091 +while.body10090: %t47 = load i64, ptr %a24 %t48 = add i64 %t47, 1 store i64 %t48, ptr %a24 - br label %while.cond9684 -while.end9686: + br label %while.cond10089 +while.end10091: %t49 = load { ptr, i64, i64 }, ptr %a23 store { ptr, i64, i64 } %t49, ptr %a50 %t52 = load i64, ptr %a24 - call void @finch_str_sub(ptr %a51, ptr %a50, i64 0, i64 %t52, ptr @.str.6546, i64 86) + call void @finch_str_sub(ptr %a51, ptr %a50, i64 0, i64 %t52, ptr @.str.6754, i64 86) %t53 = load { ptr, i64, i64 }, ptr %a51 call void @finch_str_drop(ptr %a23) ret { ptr, i64, i64 } %t53 @@ -99494,19 +103519,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond9796 -n.cond9796: + br label %n.cond10201 +n.cond10201: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body9797, label %n.end9798 -n.body9797: + br i1 %t6, label %n.body10202, label %n.end10203 +n.body10202: %t7 = getelementptr inbounds %S.linker.Names, ptr %t1, i64 %t5 call void @finch.drop.S_linker_Names(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond9796 -n.end9798: + br label %n.cond10201 +n.end10203: call void @finch_arr_free(ptr %a) ret void } @@ -99685,19 +103710,19 @@ entry: store %S.linker.Names zeroinitializer, ptr %a5 %t6 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t6, ptr %a7 - store { ptr, i64, i64 } { ptr @.str.6548, i64 1, i64 0 }, ptr %a9 + store { ptr, i64, i64 } { ptr @.str.6756, i64 1, i64 0 }, ptr %a9 call void @finch_str_split(ptr %a10, ptr %a7, ptr %a9) %t11 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t11, ptr %a12 store i64 0, ptr %a13 - br label %each.cond9693 -each.cond9693: + br label %each.cond10098 +each.cond10098: %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %a12, i32 0, i32 1 %t15 = load i64, ptr %t14 %t16 = load i64, ptr %a13 %t17 = icmp slt i64 %t16, %t15 - br i1 %t17, label %each.body9694, label %each.end9696 -each.body9694: + br i1 %t17, label %each.body10099, label %each.end10101 +each.body10099: %t18 = load ptr, ptr %a12 %t19 = getelementptr inbounds { ptr, i64, i64 }, ptr %t18, i64 %t16 %t20 = load { ptr, i64, i64 }, ptr %t19 @@ -99709,113 +103734,113 @@ each.body9694: store { ptr, i64, i64 } %t25, ptr %a26 %t27 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t27, ptr %a28 - store { ptr, i64, i64 } { ptr @.str.6551, i64 24, i64 0 }, ptr %a30 + store { ptr, i64, i64 } { ptr @.str.6759, i64 24, i64 0 }, ptr %a30 %t31 = call i64 @finch_str_find(ptr %a28, ptr %a30) %t32 = icmp sge i64 %t31, 0 - br i1 %t32, label %then9697, label %else9698 -then9697: + br i1 %t32, label %then10102, label %else10103 +then10102: %t33 = load { ptr, i64, i64 }, ptr %a26 - %t34 = call { ptr, i64, i64 } @finch.linker.between({ ptr, i64, i64 } %t33, { ptr, i64, i64 } { ptr @.str.6552, i64 24, i64 0 }, { ptr, i64, i64 } { ptr @.str.6553, i64 1, i64 0 }) + %t34 = call { ptr, i64, i64 } @finch.linker.between({ ptr, i64, i64 } %t33, { ptr, i64, i64 } { ptr @.str.6760, i64 24, i64 0 }, { ptr, i64, i64 } { ptr @.str.6761, i64 1, i64 0 }) call void @finch.linker.Names.add(ptr %a4, { ptr, i64, i64 } %t34) store { ptr, i64, i64 } %t34, ptr %a35 call void @finch_str_drop(ptr %a35) - br label %endif9699 -else9698: + br label %endif10104 +else10103: %t36 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t36, ptr %a37 - store { ptr, i64, i64 } { ptr @.str.6555, i64 18, i64 0 }, ptr %a39 + store { ptr, i64, i64 } { ptr @.str.6763, i64 18, i64 0 }, ptr %a39 %t40 = call i64 @finch_str_find(ptr %a37, ptr %a39) %t41 = icmp sge i64 %t40, 0 - br i1 %t41, label %then9700, label %else9701 -then9700: + br i1 %t41, label %then10105, label %else10106 +then10105: %t42 = load { ptr, i64, i64 }, ptr %a26 - %t43 = call { ptr, i64, i64 } @finch.linker.between({ ptr, i64, i64 } %t42, { ptr, i64, i64 } { ptr @.str.6556, i64 18, i64 0 }, { ptr, i64, i64 } { ptr @.str.6557, i64 2, i64 0 }) + %t43 = call { ptr, i64, i64 } @finch.linker.between({ ptr, i64, i64 } %t42, { ptr, i64, i64 } { ptr @.str.6764, i64 18, i64 0 }, { ptr, i64, i64 } { ptr @.str.6765, i64 2, i64 0 }) call void @finch.linker.Names.add(ptr %a4, { ptr, i64, i64 } %t43) store { ptr, i64, i64 } %t43, ptr %a44 call void @finch_str_drop(ptr %a44) - br label %endif9702 -else9701: + br label %endif10107 +else10106: %t45 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t45, ptr %a46 - store { ptr, i64, i64 } { ptr @.str.6559, i64 27, i64 0 }, ptr %a48 + store { ptr, i64, i64 } { ptr @.str.6767, i64 27, i64 0 }, ptr %a48 %t49 = call i64 @finch_str_find(ptr %a46, ptr %a48) %t50 = icmp sge i64 %t49, 0 - br i1 %t50, label %then9703, label %else9704 -then9703: + br i1 %t50, label %then10108, label %else10109 +then10108: %t51 = load { ptr, i64, i64 }, ptr %a26 - %t52 = call { ptr, i64, i64 } @finch.linker.between({ ptr, i64, i64 } %t51, { ptr, i64, i64 } { ptr @.str.6560, i64 27, i64 0 }, { ptr, i64, i64 } { ptr @.str.6561, i64 3, i64 0 }) + %t52 = call { ptr, i64, i64 } @finch.linker.between({ ptr, i64, i64 } %t51, { ptr, i64, i64 } { ptr @.str.6768, i64 27, i64 0 }, { ptr, i64, i64 } { ptr @.str.6769, i64 3, i64 0 }) call void @finch.linker.Names.add(ptr %a4, { ptr, i64, i64 } %t52) store { ptr, i64, i64 } %t52, ptr %a53 call void @finch_str_drop(ptr %a53) - br label %endif9705 -else9704: + br label %endif10110 +else10109: %t54 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t54, ptr %a55 - store { ptr, i64, i64 } { ptr @.str.6563, i64 14, i64 0 }, ptr %a57 + store { ptr, i64, i64 } { ptr @.str.6771, i64 14, i64 0 }, ptr %a57 %t58 = call i64 @finch_str_find(ptr %a55, ptr %a57) %t59 = icmp sge i64 %t58, 0 - br i1 %t59, label %then9706, label %else9707 -then9706: + br i1 %t59, label %then10111, label %else10112 +then10111: %t60 = load { ptr, i64, i64 }, ptr %a26 - %t61 = call { ptr, i64, i64 } @finch.linker.between({ ptr, i64, i64 } %t60, { ptr, i64, i64 } { ptr @.str.6564, i64 14, i64 0 }, { ptr, i64, i64 } { ptr @.str.6565, i64 4, i64 0 }) + %t61 = call { ptr, i64, i64 } @finch.linker.between({ ptr, i64, i64 } %t60, { ptr, i64, i64 } { ptr @.str.6772, i64 14, i64 0 }, { ptr, i64, i64 } { ptr @.str.6773, i64 4, i64 0 }) call void @finch.linker.Names.add(ptr %a5, { ptr, i64, i64 } %t61) store { ptr, i64, i64 } %t61, ptr %a62 call void @finch_str_drop(ptr %a62) - br label %endif9708 -else9707: + br label %endif10113 +else10112: %t63 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t63, ptr %a64 - store { ptr, i64, i64 } { ptr @.str.6567, i64 24, i64 0 }, ptr %a66 + store { ptr, i64, i64 } { ptr @.str.6775, i64 24, i64 0 }, ptr %a66 %t67 = call i64 @finch_str_find(ptr %a64, ptr %a66) %t68 = icmp sge i64 %t67, 0 - br i1 %t68, label %then9709, label %else9710 -then9709: + br i1 %t68, label %then10114, label %else10115 +then10114: %t69 = load { ptr, i64, i64 }, ptr %a26 - %t70 = call { ptr, i64, i64 } @finch.linker.between({ ptr, i64, i64 } %t69, { ptr, i64, i64 } { ptr @.str.6568, i64 24, i64 0 }, { ptr, i64, i64 } { ptr @.str.6569, i64 4, i64 0 }) + %t70 = call { ptr, i64, i64 } @finch.linker.between({ ptr, i64, i64 } %t69, { ptr, i64, i64 } { ptr @.str.6776, i64 24, i64 0 }, { ptr, i64, i64 } { ptr @.str.6777, i64 4, i64 0 }) call void @finch.linker.Names.add(ptr %a5, { ptr, i64, i64 } %t70) store { ptr, i64, i64 } %t70, ptr %a71 call void @finch_str_drop(ptr %a71) - br label %endif9711 -else9710: + br label %endif10116 +else10115: %t72 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t72, ptr %a73 - store { ptr, i64, i64 } { ptr @.str.6571, i64 13, i64 0 }, ptr %a75 + store { ptr, i64, i64 } { ptr @.str.6779, i64 13, i64 0 }, ptr %a75 %t76 = call i64 @finch_str_find(ptr %a73, ptr %a75) %t77 = icmp sge i64 %t76, 0 - br i1 %t77, label %then9712, label %else9713 -then9712: + br i1 %t77, label %then10117, label %else10118 +then10117: %t78 = load { ptr, i64, i64 }, ptr %a26 - %t79 = call { ptr, i64, i64 } @finch.linker.between({ ptr, i64, i64 } %t78, { ptr, i64, i64 } { ptr @.str.6572, i64 13, i64 0 }, { ptr, i64, i64 } { ptr @.str.6573, i64 1, i64 0 }) + %t79 = call { ptr, i64, i64 } @finch.linker.between({ ptr, i64, i64 } %t78, { ptr, i64, i64 } { ptr @.str.6780, i64 13, i64 0 }, { ptr, i64, i64 } { ptr @.str.6781, i64 1, i64 0 }) call void @finch.linker.Names.add(ptr %a5, { ptr, i64, i64 } %t79) store { ptr, i64, i64 } %t79, ptr %a80 call void @finch_str_drop(ptr %a80) - br label %endif9714 -else9713: + br label %endif10119 +else10118: %t81 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t81, ptr %a82 - store { ptr, i64, i64 } { ptr @.str.6575, i64 11, i64 0 }, ptr %a84 + store { ptr, i64, i64 } { ptr @.str.6783, i64 11, i64 0 }, ptr %a84 %t85 = call i64 @finch_str_find(ptr %a82, ptr %a84) %t86 = icmp sge i64 %t85, 0 - br label %logic.from9715 -logic.from9715: - br i1 %t86, label %logic.rhs9716, label %logic.end9717 -logic.rhs9716: + br label %logic.from10120 +logic.from10120: + br i1 %t86, label %logic.rhs10121, label %logic.end10122 +logic.rhs10121: %t87 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t87, ptr %a88 - store { ptr, i64, i64 } { ptr @.str.6577, i64 9, i64 0 }, ptr %a90 + store { ptr, i64, i64 } { ptr @.str.6785, i64 9, i64 0 }, ptr %a90 %t91 = call i64 @finch_str_find(ptr %a88, ptr %a90) %t92 = icmp sge i64 %t91, 0 - br label %logic.rend9718 -logic.rend9718: - br label %logic.end9717 -logic.end9717: - %t93 = phi i1 [ false, %logic.from9715 ], [ %t92, %logic.rend9718 ] - br i1 %t93, label %then9719, label %else9720 -then9719: + br label %logic.rend10123 +logic.rend10123: + br label %logic.end10122 +logic.end10122: + %t93 = phi i1 [ false, %logic.from10120 ], [ %t92, %logic.rend10123 ] + br i1 %t93, label %then10124, label %else10125 +then10124: %t94 = load { ptr, i64, i64 }, ptr %a26 - %t95 = call { ptr, i64, i64 } @finch.linker.between({ ptr, i64, i64 } %t94, { ptr, i64, i64 } { ptr @.str.6578, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6579, i64 1, i64 0 }) + %t95 = call { ptr, i64, i64 } @finch.linker.between({ ptr, i64, i64 } %t94, { ptr, i64, i64 } { ptr @.str.6786, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6787, i64 1, i64 0 }) store { ptr, i64, i64 } %t95, ptr %a97 - store { ptr, i64, i64 } { ptr @.str.6580, i64 10, i64 0 }, ptr %a98 + store { ptr, i64, i64 } { ptr @.str.6788, i64 10, i64 0 }, ptr %a98 call void @finch_str_concat(ptr %a96, ptr %a97, ptr %a98) store { ptr, i64, i64 } %t95, ptr %a99 call void @finch_str_drop(ptr %a99) @@ -99823,154 +103848,154 @@ then9719: call void @finch.linker.Names.add(ptr %a5, { ptr, i64, i64 } %t100) store { ptr, i64, i64 } %t100, ptr %a101 call void @finch_str_drop(ptr %a101) - br label %endif9721 -else9720: + br label %endif10126 +else10125: %t102 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t102, ptr %a103 - store { ptr, i64, i64 } { ptr @.str.6582, i64 1, i64 0 }, ptr %a105 + store { ptr, i64, i64 } { ptr @.str.6790, i64 1, i64 0 }, ptr %a105 %t106 = call i32 @finch_str_starts(ptr %a103, ptr %a105) %t107 = icmp ne i32 %t106, 0 - br label %logic.from9722 -logic.from9722: - br i1 %t107, label %logic.rhs9723, label %logic.end9724 -logic.rhs9723: + br label %logic.from10127 +logic.from10127: + br i1 %t107, label %logic.rhs10128, label %logic.end10129 +logic.rhs10128: %t108 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t108, ptr %a109 - store { ptr, i64, i64 } { ptr @.str.6584, i64 19, i64 0 }, ptr %a111 + store { ptr, i64, i64 } { ptr @.str.6792, i64 19, i64 0 }, ptr %a111 %t112 = call i64 @finch_str_find(ptr %a109, ptr %a111) %t113 = icmp sge i64 %t112, 0 - br label %logic.rend9725 -logic.rend9725: - br label %logic.end9724 -logic.end9724: - %t114 = phi i1 [ false, %logic.from9722 ], [ %t113, %logic.rend9725 ] - br i1 %t114, label %then9726, label %endif9728 -then9726: + br label %logic.rend10130 +logic.rend10130: + br label %logic.end10129 +logic.end10129: + %t114 = phi i1 [ false, %logic.from10127 ], [ %t113, %logic.rend10130 ] + br i1 %t114, label %then10131, label %endif10133 +then10131: %t115 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t115, ptr %a116 %t118 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t118, ptr %a119 - store { ptr, i64, i64 } { ptr @.str.6587, i64 19, i64 0 }, ptr %a121 + store { ptr, i64, i64 } { ptr @.str.6795, i64 19, i64 0 }, ptr %a121 %t122 = call i64 @finch_str_find(ptr %a119, ptr %a121) - call void @finch_str_sub(ptr %a117, ptr %a116, i64 1, i64 %t122, ptr @.str.6585, i64 111) + call void @finch_str_sub(ptr %a117, ptr %a116, i64 1, i64 %t122, ptr @.str.6793, i64 111) %t123 = load { ptr, i64, i64 }, ptr %a117 store { ptr, i64, i64 } %t123, ptr %a124 %t125 = getelementptr inbounds %S.platform.Target, ptr %a3, i32 0, i32 3 %t126 = load i1, ptr %t125 - br label %logic.from9729 -logic.from9729: - br i1 %t126, label %logic.rhs9730, label %logic.end9731 -logic.rhs9730: + br label %logic.from10134 +logic.from10134: + br i1 %t126, label %logic.rhs10135, label %logic.end10136 +logic.rhs10135: %t127 = load { ptr, i64, i64 }, ptr %a124 store { ptr, i64, i64 } %t127, ptr %a128 - store { ptr, i64, i64 } { ptr @.str.6589, i64 1, i64 0 }, ptr %a130 + store { ptr, i64, i64 } { ptr @.str.6797, i64 1, i64 0 }, ptr %a130 %t131 = call i32 @finch_str_starts(ptr %a128, ptr %a130) %t132 = icmp ne i32 %t131, 0 - br label %logic.rend9732 -logic.rend9732: - br label %logic.end9731 -logic.end9731: - %t133 = phi i1 [ false, %logic.from9729 ], [ %t132, %logic.rend9732 ] - br i1 %t133, label %then9733, label %endif9735 -then9733: + br label %logic.rend10137 +logic.rend10137: + br label %logic.end10136 +logic.end10136: + %t133 = phi i1 [ false, %logic.from10134 ], [ %t132, %logic.rend10137 ] + br i1 %t133, label %then10138, label %endif10140 +then10138: %t134 = load { ptr, i64, i64 }, ptr %a124 store { ptr, i64, i64 } %t134, ptr %a135 %t137 = getelementptr inbounds { ptr, i64, i64 }, ptr %a124, i32 0, i32 1 %t138 = load i64, ptr %t137 - call void @finch_str_sub(ptr %a136, ptr %a135, i64 1, i64 %t138, ptr @.str.6590, i64 113) + call void @finch_str_sub(ptr %a136, ptr %a135, i64 1, i64 %t138, ptr @.str.6798, i64 113) %t139 = load { ptr, i64, i64 }, ptr %a136 %t140 = load { ptr, i64, i64 }, ptr %a124 store { ptr, i64, i64 } %t139, ptr %a124 store { ptr, i64, i64 } %t140, ptr %a141 call void @finch_str_drop(ptr %a141) - br label %endif9735 -endif9735: + br label %endif10140 +endif10140: %t142 = load { ptr, i64, i64 }, ptr %a124 call void @finch.linker.Names.add(ptr %a4, { ptr, i64, i64 } %t142) call void @finch_str_drop(ptr %a124) - br label %endif9728 -endif9728: - br label %endif9721 -endif9721: - br label %endif9714 -endif9714: - br label %endif9711 -endif9711: - br label %endif9708 -endif9708: - br label %endif9705 -endif9705: - br label %endif9702 -endif9702: - br label %endif9699 -endif9699: + br label %endif10133 +endif10133: + br label %endif10126 +endif10126: + br label %endif10119 +endif10119: + br label %endif10116 +endif10116: + br label %endif10113 +endif10113: + br label %endif10110 +endif10110: + br label %endif10107 +endif10107: + br label %endif10104 +endif10104: call void @finch_str_drop(ptr %a26) - br label %each.step9695 -each.step9695: + br label %each.step10100 +each.step10100: %t143 = load i64, ptr %a13 %t144 = add i64 %t143, 1 store i64 %t144, ptr %a13 - br label %each.cond9693 -each.end9696: + br label %each.cond10098 +each.end10101: call void @finch.drop.arr_str(ptr %a12) %t145 = getelementptr inbounds %S.linker.Names, ptr %a4, i32 0, i32 0 %t146 = getelementptr inbounds { ptr, i64, i64 }, ptr %t145, i32 0, i32 1 %t147 = load i64, ptr %t146 %t148 = icmp eq i64 %t147, 0 - br label %logic.from9736 -logic.from9736: - br i1 %t148, label %logic.rhs9737, label %logic.end9738 -logic.rhs9737: + br label %logic.from10141 +logic.from10141: + br i1 %t148, label %logic.rhs10142, label %logic.end10143 +logic.rhs10142: %t149 = getelementptr inbounds %S.linker.Names, ptr %a5, i32 0, i32 0 %t150 = getelementptr inbounds { ptr, i64, i64 }, ptr %t149, i32 0, i32 1 %t151 = load i64, ptr %t150 %t152 = icmp eq i64 %t151, 0 - br label %logic.rend9739 -logic.rend9739: - br label %logic.end9738 -logic.end9738: - %t153 = phi i1 [ false, %logic.from9736 ], [ %t152, %logic.rend9739 ] - br i1 %t153, label %then9740, label %endif9742 -then9740: + br label %logic.rend10144 +logic.rend10144: + br label %logic.end10143 +logic.end10143: + %t153 = phi i1 [ false, %logic.from10141 ], [ %t152, %logic.rend10144 ] + br i1 %t153, label %then10145, label %endif10147 +then10145: %t154 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t154, ptr %a156 - store { ptr, i64, i64 } { ptr @.str.6591, i64 21, i64 0 }, ptr %a157 + store { ptr, i64, i64 } { ptr @.str.6799, i64 21, i64 0 }, ptr %a157 call void @finch_str_concat(ptr %a155, ptr %a156, ptr %a157) %t158 = load { ptr, i64, i64 }, ptr %a155 %t159 = extractvalue { ptr, i64, i64 } %t158, 1 %t160 = trunc i64 %t159 to i32 %t161 = extractvalue { ptr, i64, i64 } %t158, 0 %t162 = icmp eq ptr %t161, null - %t163 = select i1 %t162, ptr @.str.6592, ptr %t161 - %t164 = call i32 (ptr, ...) @printf(ptr @.str.6593, i32 %t160, ptr %t163) + %t163 = select i1 %t162, ptr @.str.6800, ptr %t161 + %t164 = call i32 (ptr, ...) @printf(ptr @.str.6801, i32 %t160, ptr %t163) store { ptr, i64, i64 } %t158, ptr %a165 call void @finch_str_drop(ptr %a165) - %t166 = call i32 (ptr, ...) @printf(ptr @.str.6594) + %t166 = call i32 (ptr, ...) @printf(ptr @.str.6802) call void @finch.drop.S_linker_Names(ptr %a5) call void @finch.drop.S_linker_Names(ptr %a4) ret i64 1 -endif9742: +endif10147: %t167 = getelementptr inbounds %S.linker.Names, ptr %a5, i32 0, i32 0 store i64 0, ptr %a168 - br label %each.cond9743 -each.cond9743: + br label %each.cond10148 +each.cond10148: %t169 = getelementptr inbounds { ptr, i64, i64 }, ptr %t167, i32 0, i32 1 %t170 = load i64, ptr %t169 %t171 = load i64, ptr %a168 %t172 = icmp slt i64 %t171, %t170 - br i1 %t172, label %each.body9744, label %each.end9746 -each.body9744: + br i1 %t172, label %each.body10149, label %each.end10151 +each.body10149: %t173 = load ptr, ptr %t167 %t174 = getelementptr inbounds { ptr, i64, i64 }, ptr %t173, i64 %t171 %t175 = load { ptr, i64, i64 }, ptr %t174 store { ptr, i64, i64 } %t175, ptr %a176 %t177 = load { ptr, i64, i64 }, ptr %a176 - store { ptr, i64, i64 } { ptr @.str.6595, i64 20, i64 0 }, ptr %a179 + store { ptr, i64, i64 } { ptr @.str.6803, i64 20, i64 0 }, ptr %a179 store { ptr, i64, i64 } %t177, ptr %a180 call void @finch_str_concat(ptr %a178, ptr %a179, ptr %a180) %t181 = load { ptr, i64, i64 }, ptr %a178 store { ptr, i64, i64 } %t181, ptr %a183 - store { ptr, i64, i64 } { ptr @.str.6596, i64 62, i64 0 }, ptr %a184 + store { ptr, i64, i64 } { ptr @.str.6804, i64 62, i64 0 }, ptr %a184 call void @finch_str_concat(ptr %a182, ptr %a183, ptr %a184) store { ptr, i64, i64 } %t181, ptr %a185 call void @finch_str_drop(ptr %a185) @@ -99979,55 +104004,55 @@ each.body9744: %t188 = trunc i64 %t187 to i32 %t189 = extractvalue { ptr, i64, i64 } %t186, 0 %t190 = icmp eq ptr %t189, null - %t191 = select i1 %t190, ptr @.str.6597, ptr %t189 - %t192 = call i32 (ptr, ...) @printf(ptr @.str.6598, i32 %t188, ptr %t191) + %t191 = select i1 %t190, ptr @.str.6805, ptr %t189 + %t192 = call i32 (ptr, ...) @printf(ptr @.str.6806, i32 %t188, ptr %t191) store { ptr, i64, i64 } %t186, ptr %a193 call void @finch_str_drop(ptr %a193) - %t194 = call i32 (ptr, ...) @printf(ptr @.str.6599) - br label %each.step9745 -each.step9745: + %t194 = call i32 (ptr, ...) @printf(ptr @.str.6807) + br label %each.step10150 +each.step10150: %t195 = load i64, ptr %a168 %t196 = add i64 %t195, 1 store i64 %t196, ptr %a168 - br label %each.cond9743 -each.end9746: + br label %each.cond10148 +each.end10151: store { ptr, i64, i64 } zeroinitializer, ptr %a197 store { ptr, i64, i64 } zeroinitializer, ptr %a198 %t199 = getelementptr inbounds %S.linker.Names, ptr %a4, i32 0, i32 0 store i64 0, ptr %a200 - br label %each.cond9747 -each.cond9747: + br label %each.cond10152 +each.cond10152: %t201 = getelementptr inbounds { ptr, i64, i64 }, ptr %t199, i32 0, i32 1 %t202 = load i64, ptr %t201 %t203 = load i64, ptr %a200 %t204 = icmp slt i64 %t203, %t202 - br i1 %t204, label %each.body9748, label %each.end9750 -each.body9748: + br i1 %t204, label %each.body10153, label %each.end10155 +each.body10153: %t205 = load ptr, ptr %t199 %t206 = getelementptr inbounds { ptr, i64, i64 }, ptr %t205, i64 %t203 %t207 = load { ptr, i64, i64 }, ptr %t206 store { ptr, i64, i64 } %t207, ptr %a208 - store { ptr, i64, i64 } { ptr @.str.6600, i64 0, i64 0 }, ptr %a209 + store { ptr, i64, i64 } { ptr @.str.6808, i64 0, i64 0 }, ptr %a209 %t210 = getelementptr inbounds %S.cimport.CImports, ptr %a2, i32 0, i32 0 %t211 = load { ptr, i64, i64 }, ptr %a208 store { ptr, i64, i64 } %t211, ptr %a212 %t213 = call i64 @finch_map_find(ptr %t210, ptr %a212, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t214 = icmp sge i64 %t213, 0 - br i1 %t214, label %then9751, label %endif9753 -then9751: + br i1 %t214, label %then10156, label %endif10158 +then10156: %t215 = getelementptr inbounds %S.cimport.CImports, ptr %a2, i32 0, i32 0 %t216 = load { ptr, i64, i64 }, ptr %a208 store { ptr, i64, i64 } %t216, ptr %a217 %t218 = call i64 @finch_map_find(ptr %t215, ptr %a217, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t219 = icmp slt i64 %t218, 0 - br i1 %t219, label %map.missing9754, label %map.found9755 -map.missing9754: + br i1 %t219, label %map.missing10159, label %map.found10160 +map.missing10159: store { ptr, i64, i64 } zeroinitializer, ptr %a220 store { ptr, i64, i64 } %t216, ptr %a221 call void @finch_buf_str(ptr %a220, ptr %a221, i32 1) - call void @finch_map_missing(ptr @.str.6601, i64 131, ptr %a220) + call void @finch_map_missing(ptr @.str.6809, i64 131, ptr %a220) unreachable -map.found9755: +map.found10160: %t222 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t215, i32 0, i32 0 %t223 = load ptr, ptr %t222 %t224 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t223, i64 %t218 @@ -100041,41 +104066,41 @@ map.found9755: store { ptr, i64, i64 } %t230, ptr %a209 store { ptr, i64, i64 } %t231, ptr %a232 call void @finch_str_drop(ptr %a232) - br label %endif9753 -endif9753: + br label %endif10158 +endif10158: %t233 = getelementptr inbounds { ptr, i64, i64 }, ptr %a197, i32 0, i32 1 %t234 = load { ptr, i64, i64 }, ptr %a209 store i64 -1, ptr %a235 %t236 = load i64, ptr %t233 %t237 = load ptr, ptr %a197 store i64 0, ptr %a238 - br label %find.cond9756 -find.cond9756: + br label %find.cond10161 +find.cond10161: %t239 = load i64, ptr %a238 %t240 = icmp slt i64 %t239, %t236 - br i1 %t240, label %find.body9757, label %find.end9760 -find.body9757: + br i1 %t240, label %find.body10162, label %find.end10165 +find.body10162: %t241 = getelementptr inbounds { ptr, i64, i64 }, ptr %t237, i64 %t239 %t242 = load { ptr, i64, i64 }, ptr %t241 store { ptr, i64, i64 } %t242, ptr %a243 store { ptr, i64, i64 } %t234, ptr %a244 %t245 = call i32 @finch_str_eq(ptr %a243, ptr %a244) %t246 = icmp ne i32 %t245, 0 - br i1 %t246, label %find.hit9758, label %find.next9759 -find.hit9758: + br i1 %t246, label %find.hit10163, label %find.next10164 +find.hit10163: store i64 %t239, ptr %a235 - br label %find.end9760 -find.next9759: + br label %find.end10165 +find.next10164: %t247 = add i64 %t239, 1 store i64 %t247, ptr %a238 - br label %find.cond9756 -find.end9760: + br label %find.cond10161 +find.end10165: %t248 = load i64, ptr %a235 store i64 %t248, ptr %a249 %t250 = load i64, ptr %a249 %t251 = icmp slt i64 %t250, 0 - br i1 %t251, label %then9761, label %endif9763 -then9761: + br i1 %t251, label %then10166, label %endif10168 +then10166: %t252 = getelementptr inbounds { ptr, i64, i64 }, ptr %a197, i32 0, i32 1 %t253 = load { ptr, i64, i64 }, ptr %a209 store { ptr, i64, i64 } %t253, ptr %a254 @@ -100100,47 +104125,47 @@ then9761: %t267 = load i64, ptr %t266 %t268 = sub i64 %t267, 1 store i64 %t268, ptr %a249 - br label %endif9763 -endif9763: + br label %endif10168 +endif10168: %t269 = load i64, ptr %a249 %t270 = load { ptr, i64, i64 }, ptr %a198 %t271 = extractvalue { ptr, i64, i64 } %t270, 1 %t272 = icmp uge i64 %t269, %t271 - br i1 %t272, label %range9764, label %inrange9765 -range9764: - call void @finch_panic_index(ptr @.str.6602, i64 139, i64 %t269, i64 %t271) + br i1 %t272, label %range10169, label %inrange10170 +range10169: + call void @finch_panic_index(ptr @.str.6810, i64 139, i64 %t269, i64 %t271) unreachable -inrange9765: +inrange10170: %t273 = extractvalue { ptr, i64, i64 } %t270, 0 %t274 = getelementptr inbounds %S.linker.Names, ptr %t273, i64 %t269 %t275 = load { ptr, i64, i64 }, ptr %a208 call void @finch.linker.Names.add(ptr %t274, { ptr, i64, i64 } %t275) call void @finch_str_drop(ptr %a209) - br label %each.step9749 -each.step9749: + br label %each.step10154 +each.step10154: %t276 = load i64, ptr %a200 %t277 = add i64 %t276, 1 store i64 %t277, ptr %a200 - br label %each.cond9747 -each.end9750: + br label %each.cond10152 +each.end10155: %t278 = getelementptr inbounds { ptr, i64, i64 }, ptr %a197, i32 0, i32 1 %t279 = load i64, ptr %t278 store i64 0, ptr %a280 - br label %for.cond9766 -for.cond9766: + br label %for.cond10171 +for.cond10171: %t281 = load i64, ptr %a280 %t282 = icmp slt i64 %t281, %t279 - br i1 %t282, label %for.body9767, label %for.end9769 -for.body9767: + br i1 %t282, label %for.body10172, label %for.end10174 +for.body10172: %t283 = load i64, ptr %a280 %t284 = load { ptr, i64, i64 }, ptr %a198 %t285 = extractvalue { ptr, i64, i64 } %t284, 1 %t286 = icmp uge i64 %t283, %t285 - br i1 %t286, label %range9770, label %inrange9771 -range9770: - call void @finch_panic_index(ptr @.str.6603, i64 142, i64 %t283, i64 %t285) + br i1 %t286, label %range10175, label %inrange10176 +range10175: + call void @finch_panic_index(ptr @.str.6811, i64 142, i64 %t283, i64 %t285) unreachable -inrange9771: +inrange10176: %t287 = extractvalue { ptr, i64, i64 } %t284, 0 %t288 = getelementptr inbounds %S.linker.Names, ptr %t287, i64 %t283 %t289 = getelementptr inbounds %S.linker.Names, ptr %t288, i32 0, i32 0 @@ -100153,26 +104178,26 @@ inrange9771: %t296 = getelementptr inbounds { ptr, i64, i64 }, ptr %a294, i32 0, i32 1 %t297 = load i64, ptr %t296 store i64 0, ptr %a298 - br label %for.cond9772 -for.cond9772: + br label %for.cond10177 +for.cond10177: %t299 = load i64, ptr %a298 %t300 = icmp slt i64 %t299, %t297 - br i1 %t300, label %for.body9773, label %for.end9775 -for.body9773: + br i1 %t300, label %for.body10178, label %for.end10180 +for.body10178: %t301 = load i64, ptr %a298 %t302 = icmp slt i64 %t301, 3 - br i1 %t302, label %then9776, label %endif9778 -then9776: + br i1 %t302, label %then10181, label %endif10183 +then10181: %t303 = getelementptr inbounds { ptr, i64, i64 }, ptr %a295, i32 0, i32 1 %t304 = load i64, ptr %a298 %t305 = load { ptr, i64, i64 }, ptr %a294 %t306 = extractvalue { ptr, i64, i64 } %t305, 1 %t307 = icmp uge i64 %t304, %t306 - br i1 %t307, label %range9779, label %inrange9780 -range9779: - call void @finch_panic_index(ptr @.str.6604, i64 146, i64 %t304, i64 %t306) + br i1 %t307, label %range10184, label %inrange10185 +range10184: + call void @finch_panic_index(ptr @.str.6812, i64 146, i64 %t304, i64 %t306) unreachable -inrange9780: +inrange10185: %t308 = extractvalue { ptr, i64, i64 } %t305, 0 %t309 = getelementptr inbounds { ptr, i64, i64 }, ptr %t308, i64 %t304 %t310 = load { ptr, i64, i64 }, ptr %t309 @@ -100186,28 +104211,28 @@ inrange9780: %t317 = getelementptr inbounds { ptr, i64, i64 }, ptr %t316, i64 %t314 store { ptr, i64, i64 } %t313, ptr %t317 store i64 %t315, ptr %t303 - br label %endif9778 -endif9778: - br label %for.step9774 -for.step9774: + br label %endif10183 +endif10183: + br label %for.step10179 +for.step10179: %t318 = load i64, ptr %a298 %t319 = add i64 %t318, 1 store i64 %t319, ptr %a298 - br label %for.cond9772 -for.end9775: + br label %for.cond10177 +for.end10180: %t320 = getelementptr inbounds { ptr, i64, i64 }, ptr %a295, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.6605, i64 2, i64 0 }, ptr %a321 + store { ptr, i64, i64 } { ptr @.str.6813, i64 2, i64 0 }, ptr %a321 call void @finch_str_join(ptr %a322, ptr %a295, ptr %a321) %t323 = load { ptr, i64, i64 }, ptr %a322 store { ptr, i64, i64 } %t323, ptr %a324 %t325 = getelementptr inbounds { ptr, i64, i64 }, ptr %a294, i32 0, i32 1 %t326 = load i64, ptr %t325 %t327 = icmp sgt i64 %t326, 3 - br i1 %t327, label %then9781, label %endif9783 -then9781: + br i1 %t327, label %then10186, label %endif10188 +then10186: %t328 = load { ptr, i64, i64 }, ptr %a324 store { ptr, i64, i64 } %t328, ptr %a330 - store { ptr, i64, i64 } { ptr @.str.6606, i64 5, i64 0 }, ptr %a331 + store { ptr, i64, i64 } { ptr @.str.6814, i64 5, i64 0 }, ptr %a331 call void @finch_str_concat(ptr %a329, ptr %a330, ptr %a331) %t332 = load { ptr, i64, i64 }, ptr %a329 %t333 = getelementptr inbounds { ptr, i64, i64 }, ptr %a294, i32 0, i32 1 @@ -100224,7 +104249,7 @@ then9781: call void @finch_str_drop(ptr %a342) %t343 = load { ptr, i64, i64 }, ptr %a338 store { ptr, i64, i64 } %t343, ptr %a345 - store { ptr, i64, i64 } { ptr @.str.6607, i64 5, i64 0 }, ptr %a346 + store { ptr, i64, i64 } { ptr @.str.6815, i64 5, i64 0 }, ptr %a346 call void @finch_str_concat(ptr %a344, ptr %a345, ptr %a346) store { ptr, i64, i64 } %t343, ptr %a347 call void @finch_str_drop(ptr %a347) @@ -100233,26 +104258,26 @@ then9781: store { ptr, i64, i64 } %t348, ptr %a324 store { ptr, i64, i64 } %t349, ptr %a350 call void @finch_str_drop(ptr %a350) - br label %endif9783 -endif9783: + br label %endif10188 +endif10188: %t351 = load i64, ptr %a280 %t352 = load { ptr, i64, i64 }, ptr %a197 %t353 = extractvalue { ptr, i64, i64 } %t352, 1 %t354 = icmp uge i64 %t351, %t353 - br i1 %t354, label %range9784, label %inrange9785 -range9784: - call void @finch_panic_index(ptr @.str.6608, i64 153, i64 %t351, i64 %t353) + br i1 %t354, label %range10189, label %inrange10190 +range10189: + call void @finch_panic_index(ptr @.str.6816, i64 153, i64 %t351, i64 %t353) unreachable -inrange9785: +inrange10190: %t355 = extractvalue { ptr, i64, i64 } %t352, 0 %t356 = getelementptr inbounds { ptr, i64, i64 }, ptr %t355, i64 %t351 %t357 = getelementptr inbounds { ptr, i64, i64 }, ptr %t356, i32 0, i32 1 %t358 = load i64, ptr %t357 %t359 = icmp eq i64 %t358, 0 - br i1 %t359, label %then9786, label %endif9788 -then9786: + br i1 %t359, label %then10191, label %endif10193 +then10191: %t360 = load { ptr, i64, i64 }, ptr %a324 - store { ptr, i64, i64 } { ptr @.str.6609, i64 25, i64 0 }, ptr %a362 + store { ptr, i64, i64 } { ptr @.str.6817, i64 25, i64 0 }, ptr %a362 store { ptr, i64, i64 } %t360, ptr %a363 call void @finch_str_concat(ptr %a361, ptr %a362, ptr %a363) %t364 = load { ptr, i64, i64 }, ptr %a361 @@ -100260,35 +104285,35 @@ then9786: %t366 = trunc i64 %t365 to i32 %t367 = extractvalue { ptr, i64, i64 } %t364, 0 %t368 = icmp eq ptr %t367, null - %t369 = select i1 %t368, ptr @.str.6610, ptr %t367 - %t370 = call i32 (ptr, ...) @printf(ptr @.str.6611, i32 %t366, ptr %t369) + %t369 = select i1 %t368, ptr @.str.6818, ptr %t367 + %t370 = call i32 (ptr, ...) @printf(ptr @.str.6819, i32 %t366, ptr %t369) store { ptr, i64, i64 } %t364, ptr %a371 call void @finch_str_drop(ptr %a371) - %t372 = call i32 (ptr, ...) @printf(ptr @.str.6612) + %t372 = call i32 (ptr, ...) @printf(ptr @.str.6820) call void @finch_str_drop(ptr %a324) call void @finch.drop.arr_str(ptr %a295) call void @finch.drop.arr_str(ptr %a294) - br label %for.step9768 -endif9788: - store { ptr, i64, i64 } { ptr @.str.6613, i64 4, i64 0 }, ptr %a373 + br label %for.step10173 +endif10193: + store { ptr, i64, i64 } { ptr @.str.6821, i64 4, i64 0 }, ptr %a373 %t374 = getelementptr inbounds { ptr, i64, i64 }, ptr %a294, i32 0, i32 1 %t375 = load i64, ptr %t374 %t376 = icmp eq i64 %t375, 1 - br i1 %t376, label %then9789, label %endif9791 -then9789: + br i1 %t376, label %then10194, label %endif10196 +then10194: %t377 = load { ptr, i64, i64 }, ptr %a373 - store { ptr, i64, i64 } { ptr @.str.6614, i64 5, i64 0 }, ptr %a373 + store { ptr, i64, i64 } { ptr @.str.6822, i64 5, i64 0 }, ptr %a373 store { ptr, i64, i64 } %t377, ptr %a378 call void @finch_str_drop(ptr %a378) - br label %endif9791 -endif9791: + br label %endif10196 +endif10196: %t379 = load { ptr, i64, i64 }, ptr %a324 - store { ptr, i64, i64 } { ptr @.str.6615, i64 7, i64 0 }, ptr %a381 + store { ptr, i64, i64 } { ptr @.str.6823, i64 7, i64 0 }, ptr %a381 store { ptr, i64, i64 } %t379, ptr %a382 call void @finch_str_concat(ptr %a380, ptr %a381, ptr %a382) %t383 = load { ptr, i64, i64 }, ptr %a380 store { ptr, i64, i64 } %t383, ptr %a385 - store { ptr, i64, i64 } { ptr @.str.6616, i64 1, i64 0 }, ptr %a386 + store { ptr, i64, i64 } { ptr @.str.6824, i64 1, i64 0 }, ptr %a386 call void @finch_str_concat(ptr %a384, ptr %a385, ptr %a386) store { ptr, i64, i64 } %t383, ptr %a387 call void @finch_str_drop(ptr %a387) @@ -100301,7 +104326,7 @@ endif9791: call void @finch_str_drop(ptr %a393) %t394 = load { ptr, i64, i64 }, ptr %a390 store { ptr, i64, i64 } %t394, ptr %a396 - store { ptr, i64, i64 } { ptr @.str.6617, i64 7, i64 0 }, ptr %a397 + store { ptr, i64, i64 } { ptr @.str.6825, i64 7, i64 0 }, ptr %a397 call void @finch_str_concat(ptr %a395, ptr %a396, ptr %a397) store { ptr, i64, i64 } %t394, ptr %a398 call void @finch_str_drop(ptr %a398) @@ -100310,11 +104335,11 @@ endif9791: %t401 = load { ptr, i64, i64 }, ptr %a197 %t402 = extractvalue { ptr, i64, i64 } %t401, 1 %t403 = icmp uge i64 %t400, %t402 - br i1 %t403, label %range9792, label %inrange9793 -range9792: - call void @finch_panic_index(ptr @.str.6618, i64 161, i64 %t400, i64 %t402) + br i1 %t403, label %range10197, label %inrange10198 +range10197: + call void @finch_panic_index(ptr @.str.6826, i64 161, i64 %t400, i64 %t402) unreachable -inrange9793: +inrange10198: %t404 = extractvalue { ptr, i64, i64 } %t401, 0 %t405 = getelementptr inbounds { ptr, i64, i64 }, ptr %t404, i64 %t400 %t406 = load { ptr, i64, i64 }, ptr %t405 @@ -100325,7 +104350,7 @@ inrange9793: call void @finch_str_drop(ptr %a410) %t411 = load { ptr, i64, i64 }, ptr %a407 store { ptr, i64, i64 } %t411, ptr %a413 - store { ptr, i64, i64 } { ptr @.str.6619, i64 31, i64 0 }, ptr %a414 + store { ptr, i64, i64 } { ptr @.str.6827, i64 31, i64 0 }, ptr %a414 call void @finch_str_concat(ptr %a412, ptr %a413, ptr %a414) store { ptr, i64, i64 } %t411, ptr %a415 call void @finch_str_drop(ptr %a415) @@ -100334,53 +104359,53 @@ inrange9793: %t418 = trunc i64 %t417 to i32 %t419 = extractvalue { ptr, i64, i64 } %t416, 0 %t420 = icmp eq ptr %t419, null - %t421 = select i1 %t420, ptr @.str.6620, ptr %t419 - %t422 = call i32 (ptr, ...) @printf(ptr @.str.6621, i32 %t418, ptr %t421) + %t421 = select i1 %t420, ptr @.str.6828, ptr %t419 + %t422 = call i32 (ptr, ...) @printf(ptr @.str.6829, i32 %t418, ptr %t421) store { ptr, i64, i64 } %t416, ptr %a423 call void @finch_str_drop(ptr %a423) - %t424 = call i32 (ptr, ...) @printf(ptr @.str.6622) - %t425 = extractvalue { ptr, i64, i64 } { ptr @.str.6623, i64 74, i64 0 }, 1 + %t424 = call i32 (ptr, ...) @printf(ptr @.str.6830) + %t425 = extractvalue { ptr, i64, i64 } { ptr @.str.6831, i64 74, i64 0 }, 1 %t426 = trunc i64 %t425 to i32 - %t427 = extractvalue { ptr, i64, i64 } { ptr @.str.6623, i64 74, i64 0 }, 0 + %t427 = extractvalue { ptr, i64, i64 } { ptr @.str.6831, i64 74, i64 0 }, 0 %t428 = icmp eq ptr %t427, null - %t429 = select i1 %t428, ptr @.str.6624, ptr %t427 - %t430 = call i32 (ptr, ...) @printf(ptr @.str.6625, i32 %t426, ptr %t429) - %t431 = call i32 (ptr, ...) @printf(ptr @.str.6626) - %t432 = extractvalue { ptr, i64, i64 } { ptr @.str.6627, i64 66, i64 0 }, 1 + %t429 = select i1 %t428, ptr @.str.6832, ptr %t427 + %t430 = call i32 (ptr, ...) @printf(ptr @.str.6833, i32 %t426, ptr %t429) + %t431 = call i32 (ptr, ...) @printf(ptr @.str.6834) + %t432 = extractvalue { ptr, i64, i64 } { ptr @.str.6835, i64 66, i64 0 }, 1 %t433 = trunc i64 %t432 to i32 - %t434 = extractvalue { ptr, i64, i64 } { ptr @.str.6627, i64 66, i64 0 }, 0 + %t434 = extractvalue { ptr, i64, i64 } { ptr @.str.6835, i64 66, i64 0 }, 0 %t435 = icmp eq ptr %t434, null - %t436 = select i1 %t435, ptr @.str.6628, ptr %t434 - %t437 = call i32 (ptr, ...) @printf(ptr @.str.6629, i32 %t433, ptr %t436) - %t438 = call i32 (ptr, ...) @printf(ptr @.str.6630) - %t439 = extractvalue { ptr, i64, i64 } { ptr @.str.6631, i64 0, i64 0 }, 1 + %t436 = select i1 %t435, ptr @.str.6836, ptr %t434 + %t437 = call i32 (ptr, ...) @printf(ptr @.str.6837, i32 %t433, ptr %t436) + %t438 = call i32 (ptr, ...) @printf(ptr @.str.6838) + %t439 = extractvalue { ptr, i64, i64 } { ptr @.str.6839, i64 0, i64 0 }, 1 %t440 = trunc i64 %t439 to i32 - %t441 = extractvalue { ptr, i64, i64 } { ptr @.str.6631, i64 0, i64 0 }, 0 + %t441 = extractvalue { ptr, i64, i64 } { ptr @.str.6839, i64 0, i64 0 }, 0 %t442 = icmp eq ptr %t441, null - %t443 = select i1 %t442, ptr @.str.6632, ptr %t441 - %t444 = call i32 (ptr, ...) @printf(ptr @.str.6633, i32 %t440, ptr %t443) - %t445 = call i32 (ptr, ...) @printf(ptr @.str.6634) + %t443 = select i1 %t442, ptr @.str.6840, ptr %t441 + %t444 = call i32 (ptr, ...) @printf(ptr @.str.6841, i32 %t440, ptr %t443) + %t445 = call i32 (ptr, ...) @printf(ptr @.str.6842) %t446 = load i64, ptr %a280 %t447 = load { ptr, i64, i64 }, ptr %a197 %t448 = extractvalue { ptr, i64, i64 } %t447, 1 %t449 = icmp uge i64 %t446, %t448 - br i1 %t449, label %range9794, label %inrange9795 -range9794: - call void @finch_panic_index(ptr @.str.6636, i64 165, i64 %t446, i64 %t448) + br i1 %t449, label %range10199, label %inrange10200 +range10199: + call void @finch_panic_index(ptr @.str.6844, i64 165, i64 %t446, i64 %t448) unreachable -inrange9795: +inrange10200: %t450 = extractvalue { ptr, i64, i64 } %t447, 0 %t451 = getelementptr inbounds { ptr, i64, i64 }, ptr %t450, i64 %t446 %t452 = load { ptr, i64, i64 }, ptr %t451 %t453 = call { ptr, i64, i64 } @finch.linker.guessLib({ ptr, i64, i64 } %t452) - store { ptr, i64, i64 } { ptr @.str.6635, i64 12, i64 0 }, ptr %a455 + store { ptr, i64, i64 } { ptr @.str.6843, i64 12, i64 0 }, ptr %a455 store { ptr, i64, i64 } %t453, ptr %a456 call void @finch_str_concat(ptr %a454, ptr %a455, ptr %a456) store { ptr, i64, i64 } %t453, ptr %a457 call void @finch_str_drop(ptr %a457) %t458 = load { ptr, i64, i64 }, ptr %a454 store { ptr, i64, i64 } %t458, ptr %a460 - store { ptr, i64, i64 } { ptr @.str.6637, i64 1, i64 0 }, ptr %a461 + store { ptr, i64, i64 } { ptr @.str.6845, i64 1, i64 0 }, ptr %a461 call void @finch_str_concat(ptr %a459, ptr %a460, ptr %a461) store { ptr, i64, i64 } %t458, ptr %a462 call void @finch_str_drop(ptr %a462) @@ -100389,29 +104414,29 @@ inrange9795: %t465 = trunc i64 %t464 to i32 %t466 = extractvalue { ptr, i64, i64 } %t463, 0 %t467 = icmp eq ptr %t466, null - %t468 = select i1 %t467, ptr @.str.6638, ptr %t466 - %t469 = call i32 (ptr, ...) @printf(ptr @.str.6639, i32 %t465, ptr %t468) + %t468 = select i1 %t467, ptr @.str.6846, ptr %t466 + %t469 = call i32 (ptr, ...) @printf(ptr @.str.6847, i32 %t465, ptr %t468) store { ptr, i64, i64 } %t463, ptr %a470 call void @finch_str_drop(ptr %a470) - %t471 = call i32 (ptr, ...) @printf(ptr @.str.6640) - %t472 = extractvalue { ptr, i64, i64 } { ptr @.str.6641, i64 0, i64 0 }, 1 + %t471 = call i32 (ptr, ...) @printf(ptr @.str.6848) + %t472 = extractvalue { ptr, i64, i64 } { ptr @.str.6849, i64 0, i64 0 }, 1 %t473 = trunc i64 %t472 to i32 - %t474 = extractvalue { ptr, i64, i64 } { ptr @.str.6641, i64 0, i64 0 }, 0 + %t474 = extractvalue { ptr, i64, i64 } { ptr @.str.6849, i64 0, i64 0 }, 0 %t475 = icmp eq ptr %t474, null - %t476 = select i1 %t475, ptr @.str.6642, ptr %t474 - %t477 = call i32 (ptr, ...) @printf(ptr @.str.6643, i32 %t473, ptr %t476) - %t478 = call i32 (ptr, ...) @printf(ptr @.str.6644) + %t476 = select i1 %t475, ptr @.str.6850, ptr %t474 + %t477 = call i32 (ptr, ...) @printf(ptr @.str.6851, i32 %t473, ptr %t476) + %t478 = call i32 (ptr, ...) @printf(ptr @.str.6852) call void @finch_str_drop(ptr %a373) call void @finch_str_drop(ptr %a324) call void @finch.drop.arr_str(ptr %a295) call void @finch.drop.arr_str(ptr %a294) - br label %for.step9768 -for.step9768: + br label %for.step10173 +for.step10173: %t479 = load i64, ptr %a280 %t480 = add i64 %t479, 1 store i64 %t480, ptr %a280 - br label %for.cond9766 -for.end9769: + br label %for.cond10171 +for.end10174: call void @finch.drop.arr_S_linker_Names(ptr %a198) call void @finch.drop.arr_str(ptr %a197) call void @finch.drop.S_linker_Names(ptr %a5) @@ -100538,17 +104563,17 @@ entry: %t9 = icmp eq i32 %t8, 0 %t10 = load { ptr, i64, i64 }, ptr %a7 %t11 = load { ptr, i64, i64 }, ptr %a6 - br i1 %t9, label %try.failed9799, label %try.ok9800 -try.failed9799: + br i1 %t9, label %try.failed10204, label %try.ok10205 +try.failed10204: %t12 = insertvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t10, 2 ret { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t12 -try.ok9800: +try.ok10205: store { ptr, i64, i64 } %t11, ptr %a13 %t14 = call { ptr, i64, i64 } @finch.host.cacheDir() store { ptr, i64, i64 } %t14, ptr %a15 %t16 = load { ptr, i64, i64 }, ptr %a15 store { ptr, i64, i64 } %t16, ptr %a18 - store { ptr, i64, i64 } { ptr @.str.6645, i64 4, i64 0 }, ptr %a19 + store { ptr, i64, i64 } { ptr @.str.6853, i64 4, i64 0 }, ptr %a19 call void @finch_str_concat(ptr %a17, ptr %a18, ptr %a19) %t20 = load { ptr, i64, i64 }, ptr %a17 %t21 = load { ptr, i64, i64 }, ptr %a13 @@ -100566,7 +104591,7 @@ try.ok9800: call void @finch_str_drop(ptr %a32) %t33 = load { ptr, i64, i64 }, ptr %a29 store { ptr, i64, i64 } %t33, ptr %a35 - store { ptr, i64, i64 } { ptr @.str.6646, i64 3, i64 0 }, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.6854, i64 3, i64 0 }, ptr %a36 call void @finch_str_concat(ptr %a34, ptr %a35, ptr %a36) store { ptr, i64, i64 } %t33, ptr %a37 call void @finch_str_drop(ptr %a37) @@ -100583,7 +104608,7 @@ try.ok9800: call void @finch_str_drop(ptr %a45) %t46 = load { ptr, i64, i64 }, ptr %a41 store { ptr, i64, i64 } %t46, ptr %a48 - store { ptr, i64, i64 } { ptr @.str.6647, i64 2, i64 0 }, ptr %a49 + store { ptr, i64, i64 } { ptr @.str.6855, i64 2, i64 0 }, ptr %a49 call void @finch_str_concat(ptr %a47, ptr %a48, ptr %a49) store { ptr, i64, i64 } %t46, ptr %a50 call void @finch_str_drop(ptr %a50) @@ -100593,20 +104618,20 @@ try.ok9800: store { ptr, i64, i64 } %t53, ptr %a54 %t55 = call i32 @finch_file_exists(ptr %a54) %t56 = icmp ne i32 %t55, 0 - br i1 %t56, label %then9801, label %endif9803 -then9801: + br i1 %t56, label %then10206, label %endif10208 +then10206: %t57 = load { ptr, i64, i64 }, ptr %a52 call void @finch_str_drop(ptr %a15) call void @finch_str_drop(ptr %a13) %t58 = insertvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 %t59 = insertvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t58, { ptr, i64, i64 } %t57, 1 ret { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t59 -endif9803: +endif10208: %t60 = load { ptr, i64, i64 }, ptr %a15 call void @finch.host.makeDirs({ ptr, i64, i64 } %t60) %t61 = load { ptr, i64, i64 }, ptr %a52 store { ptr, i64, i64 } %t61, ptr %a63 - store { ptr, i64, i64 } { ptr @.str.6648, i64 5, i64 0 }, ptr %a64 + store { ptr, i64, i64 } { ptr @.str.6856, i64 5, i64 0 }, ptr %a64 call void @finch_str_concat(ptr %a62, ptr %a63, ptr %a64) %t65 = load { ptr, i64, i64 }, ptr %a62 %t66 = call i64 @finch.host.pid() @@ -100621,26 +104646,26 @@ endif9803: call void @finch_str_drop(ptr %a73) %t74 = load { ptr, i64, i64 }, ptr %a69 store { ptr, i64, i64 } %t74, ptr %a75 - store { ptr, i64, i64 } { ptr @.str.6649, i64 6, i64 0 }, ptr %a76 + store { ptr, i64, i64 } { ptr @.str.6857, i64 6, i64 0 }, ptr %a76 %t77 = getelementptr inbounds %S.platform.Target, ptr %a2, i32 0, i32 1 %t78 = load i1, ptr %t77 - br i1 %t78, label %then9804, label %endif9806 -then9804: + br i1 %t78, label %then10209, label %endif10211 +then10209: %t79 = load { ptr, i64, i64 }, ptr %a76 - store { ptr, i64, i64 } { ptr @.str.6650, i64 0, i64 0 }, ptr %a76 + store { ptr, i64, i64 } { ptr @.str.6858, i64 0, i64 0 }, ptr %a76 store { ptr, i64, i64 } %t79, ptr %a80 call void @finch_str_drop(ptr %a80) - br label %endif9806 -endif9806: + br label %endif10211 +endif10211: %t81 = load { ptr, i64, i64 }, ptr %a75 store { ptr, i64, i64 } %t81, ptr %a83 - store { ptr, i64, i64 } { ptr @.str.6651, i64 4, i64 0 }, ptr %a84 + store { ptr, i64, i64 } { ptr @.str.6859, i64 4, i64 0 }, ptr %a84 call void @finch_str_concat(ptr %a82, ptr %a83, ptr %a84) %t85 = load { ptr, i64, i64 }, ptr %a82 store { ptr, i64, i64 } %t85, ptr %a86 %t87 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t87, ptr %a89 - store { ptr, i64, i64 } { ptr @.str.6652, i64 4, i64 0 }, ptr %a90 + store { ptr, i64, i64 } { ptr @.str.6860, i64 4, i64 0 }, ptr %a90 call void @finch_str_concat(ptr %a88, ptr %a89, ptr %a90) %t91 = load { ptr, i64, i64 }, ptr %a88 %t92 = load { ptr, i64, i64 }, ptr %a76 @@ -100651,7 +104676,7 @@ endif9806: call void @finch_str_drop(ptr %a96) %t97 = load { ptr, i64, i64 }, ptr %a93 store { ptr, i64, i64 } %t97, ptr %a99 - store { ptr, i64, i64 } { ptr @.str.6653, i64 4, i64 0 }, ptr %a100 + store { ptr, i64, i64 } { ptr @.str.6861, i64 4, i64 0 }, ptr %a100 call void @finch_str_concat(ptr %a98, ptr %a99, ptr %a100) store { ptr, i64, i64 } %t97, ptr %a101 call void @finch_str_drop(ptr %a101) @@ -100667,7 +104692,7 @@ endif9806: call void @finch_str_drop(ptr %a109) %t110 = load { ptr, i64, i64 }, ptr %a105 store { ptr, i64, i64 } %t110, ptr %a112 - store { ptr, i64, i64 } { ptr @.str.6654, i64 4, i64 0 }, ptr %a113 + store { ptr, i64, i64 } { ptr @.str.6862, i64 4, i64 0 }, ptr %a113 call void @finch_str_concat(ptr %a111, ptr %a112, ptr %a113) store { ptr, i64, i64 } %t110, ptr %a114 call void @finch_str_drop(ptr %a114) @@ -100683,7 +104708,7 @@ endif9806: call void @finch_str_drop(ptr %a122) %t123 = load { ptr, i64, i64 }, ptr %a118 store { ptr, i64, i64 } %t123, ptr %a125 - store { ptr, i64, i64 } { ptr @.str.6655, i64 3, i64 0 }, ptr %a126 + store { ptr, i64, i64 } { ptr @.str.6863, i64 3, i64 0 }, ptr %a126 call void @finch_str_concat(ptr %a124, ptr %a125, ptr %a126) store { ptr, i64, i64 } %t123, ptr %a127 call void @finch_str_drop(ptr %a127) @@ -100699,7 +104724,7 @@ endif9806: call void @finch_str_drop(ptr %a135) %t136 = load { ptr, i64, i64 }, ptr %a131 store { ptr, i64, i64 } %t136, ptr %a138 - store { ptr, i64, i64 } { ptr @.str.6656, i64 5, i64 0 }, ptr %a139 + store { ptr, i64, i64 } { ptr @.str.6864, i64 5, i64 0 }, ptr %a139 call void @finch_str_concat(ptr %a137, ptr %a138, ptr %a139) store { ptr, i64, i64 } %t136, ptr %a140 call void @finch_str_drop(ptr %a140) @@ -100710,8 +104735,8 @@ endif9806: store i64 %t142, ptr %a144 %t145 = load i64, ptr %a144 %t146 = icmp ne i64 %t145, 0 - br i1 %t146, label %then9807, label %endif9809 -then9807: + br i1 %t146, label %then10212, label %endif10214 +then10212: %t147 = load { ptr, i64, i64 }, ptr %a86 store { ptr, i64, i64 } %t147, ptr %a148 store { ptr, i64, i64 } zeroinitializer, ptr %a149 @@ -100720,17 +104745,17 @@ then9807: %t152 = icmp eq i32 %t151, 0 %t153 = load { ptr, i64, i64 }, ptr %a150 %t154 = load { ptr, i64, i64 }, ptr %a149 - br i1 %t152, label %or.failed9810, label %or.ok9811 -or.failed9810: + br i1 %t152, label %or.failed10215, label %or.ok10216 +or.failed10215: store { ptr, i64, i64 } %t153, ptr %a155 call void @finch_str_drop(ptr %a155) - br label %or.bend9812 -or.bend9812: - br label %or.end9813 -or.ok9811: - br label %or.end9813 -or.end9813: - %t156 = phi { ptr, i64, i64 } [ { ptr @.str.6657, i64 0, i64 0 }, %or.bend9812 ], [ %t154, %or.ok9811 ] + br label %or.bend10217 +or.bend10217: + br label %or.end10218 +or.ok10216: + br label %or.end10218 +or.end10218: + %t156 = phi { ptr, i64, i64 } [ { ptr @.str.6865, i64 0, i64 0 }, %or.bend10217 ], [ %t154, %or.ok10216 ] store { ptr, i64, i64 } %t156, ptr %a157 %t158 = load { ptr, i64, i64 }, ptr %a75 call void @finch.host.remove({ ptr, i64, i64 } %t158) @@ -100738,7 +104763,7 @@ or.end9813: call void @finch.host.remove({ ptr, i64, i64 } %t159) %t160 = load { ptr, i64, i64 }, ptr %a157 store { ptr, i64, i64 } %t160, ptr %a162 - store { ptr, i64, i64 } { ptr @.str.6658, i64 46, i64 0 }, ptr %a163 + store { ptr, i64, i64 } { ptr @.str.6866, i64 46, i64 0 }, ptr %a163 call void @finch_str_concat(ptr %a161, ptr %a162, ptr %a163) %t164 = load { ptr, i64, i64 }, ptr %a161 %t165 = load { ptr, i64, i64 }, ptr %a3 @@ -100749,7 +104774,7 @@ or.end9813: call void @finch_str_drop(ptr %a169) %t170 = load { ptr, i64, i64 }, ptr %a166 store { ptr, i64, i64 } %t170, ptr %a172 - store { ptr, i64, i64 } { ptr @.str.6659, i64 30, i64 0 }, ptr %a173 + store { ptr, i64, i64 } { ptr @.str.6867, i64 30, i64 0 }, ptr %a173 call void @finch_str_concat(ptr %a171, ptr %a172, ptr %a173) store { ptr, i64, i64 } %t170, ptr %a174 call void @finch_str_drop(ptr %a174) @@ -100763,7 +104788,7 @@ or.end9813: call void @finch_str_drop(ptr %a13) %t176 = insertvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t175, 2 ret { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t176 -endif9809: +endif10214: %t177 = load { ptr, i64, i64 }, ptr %a86 call void @finch.host.remove({ ptr, i64, i64 } %t177) %t178 = load { ptr, i64, i64 }, ptr %a75 @@ -101056,9 +105081,9 @@ entry: store %S.linker.Build %p0, ptr %a1 store %S.platform.Target %p1, ptr %a2 store %S.cimport.CImports %p2, ptr %a3 - %t4 = extractvalue { ptr, i64, i64 } { ptr @.str.6660, i64 11, i64 0 }, 0 + %t4 = extractvalue { ptr, i64, i64 } { ptr @.str.6868, i64 11, i64 0 }, 0 %t5 = icmp eq ptr %t4, null - %t6 = select i1 %t5, ptr @.str.6661, ptr %t4 + %t6 = select i1 %t5, ptr @.str.6869, ptr %t4 %t7 = call ptr @getenv(ptr %t6) store { ptr, i64, i64 } zeroinitializer, ptr %a8 call void @finch_str_from_c(ptr %a8, ptr %t7) @@ -101070,14 +105095,14 @@ entry: %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %a13, i32 0, i32 1 %t15 = load i64, ptr %t14 %t16 = icmp eq i64 %t15, 0 - br i1 %t16, label %then9814, label %endif9816 -then9814: + br i1 %t16, label %then10219, label %endif10221 +then10219: %t17 = load { ptr, i64, i64 }, ptr %a13 - store { ptr, i64, i64 } { ptr @.str.6662, i64 5, i64 0 }, ptr %a13 + store { ptr, i64, i64 } { ptr @.str.6870, i64 5, i64 0 }, ptr %a13 store { ptr, i64, i64 } %t17, ptr %a18 call void @finch_str_drop(ptr %a18) - br label %endif9816 -endif9816: + br label %endif10221 +endif10221: %t19 = load { ptr, i64, i64 }, ptr %a13 store { ptr, i64, i64 } %t19, ptr %a20 call void @finch_str_copy(ptr %a21, ptr %a20) @@ -101085,8 +105110,8 @@ endif9816: store { ptr, i64, i64 } %t22, ptr %a23 %t24 = getelementptr inbounds %S.platform.Target, ptr %a2, i32 0, i32 5 %t25 = load i1, ptr %t24 - br i1 %t25, label %then9817, label %else9818 -then9817: + br i1 %t25, label %then10222, label %else10223 +then10222: %t26 = getelementptr inbounds %S.platform.Target, ptr %a2, i32 0, i32 7 %t27 = load { ptr, i64, i64 }, ptr %t26 store { ptr, i64, i64 } %t27, ptr %a28 @@ -101096,22 +105121,22 @@ then9817: store { ptr, i64, i64 } %t30, ptr %a23 store { ptr, i64, i64 } %t31, ptr %a32 call void @finch_str_drop(ptr %a32) - br label %endif9819 -else9818: - %t33 = extractvalue { ptr, i64, i64 } { ptr @.str.6663, i64 8, i64 0 }, 0 + br label %endif10224 +else10223: + %t33 = extractvalue { ptr, i64, i64 } { ptr @.str.6871, i64 8, i64 0 }, 0 %t34 = icmp eq ptr %t33, null - %t35 = select i1 %t34, ptr @.str.6664, ptr %t33 + %t35 = select i1 %t34, ptr @.str.6872, ptr %t33 %t36 = call ptr @getenv(ptr %t35) store { ptr, i64, i64 } zeroinitializer, ptr %a37 call void @finch_str_from_c(ptr %a37, ptr %t36) %t38 = load { ptr, i64, i64 }, ptr %a37 %t39 = extractvalue { ptr, i64, i64 } %t38, 1 %t40 = icmp sgt i64 %t39, 0 - br i1 %t40, label %then9820, label %endif9822 -then9820: - %t41 = extractvalue { ptr, i64, i64 } { ptr @.str.6665, i64 8, i64 0 }, 0 + br i1 %t40, label %then10225, label %endif10227 +then10225: + %t41 = extractvalue { ptr, i64, i64 } { ptr @.str.6873, i64 8, i64 0 }, 0 %t42 = icmp eq ptr %t41, null - %t43 = select i1 %t42, ptr @.str.6666, ptr %t41 + %t43 = select i1 %t42, ptr @.str.6874, ptr %t41 %t44 = call ptr @getenv(ptr %t43) store { ptr, i64, i64 } zeroinitializer, ptr %a45 call void @finch_str_from_c(ptr %a45, ptr %t44) @@ -101123,10 +105148,10 @@ then9820: store { ptr, i64, i64 } %t49, ptr %a23 store { ptr, i64, i64 } %t50, ptr %a51 call void @finch_str_drop(ptr %a51) - br label %endif9822 -endif9822: - br label %endif9819 -endif9819: + br label %endif10227 +endif10227: + br label %endif10224 +endif10224: %t52 = getelementptr inbounds %S.linker.Build, ptr %a1, i32 0, i32 2 %t53 = load { ptr, i64, i64 }, ptr %t52 %t54 = load %S.platform.Target, ptr %a2 @@ -101136,34 +105161,34 @@ endif9819: %t58 = xor i1 %t57, true %t59 = extractvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t56, 2 %t60 = extractvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t56, 1 - br i1 %t58, label %or.failed9823, label %or.ok9824 -or.failed9823: + br i1 %t58, label %or.failed10228, label %or.ok10229 +or.failed10228: store { ptr, i64, i64 } %t59, ptr %a61 %t62 = load { ptr, i64, i64 }, ptr %a61 %t63 = extractvalue { ptr, i64, i64 } %t62, 1 %t64 = trunc i64 %t63 to i32 %t65 = extractvalue { ptr, i64, i64 } %t62, 0 %t66 = icmp eq ptr %t65, null - %t67 = select i1 %t66, ptr @.str.6667, ptr %t65 - %t68 = call i32 (ptr, ...) @printf(ptr @.str.6668, i32 %t64, ptr %t67) - %t69 = call i32 (ptr, ...) @printf(ptr @.str.6669) + %t67 = select i1 %t66, ptr @.str.6875, ptr %t65 + %t68 = call i32 (ptr, ...) @printf(ptr @.str.6876, i32 %t64, ptr %t67) + %t69 = call i32 (ptr, ...) @printf(ptr @.str.6877) call void @finch_str_drop(ptr %a61) call void @finch_str_drop(ptr %a23) call void @finch_str_drop(ptr %a13) ret i64 1 -or.ok9824: +or.ok10229: store { ptr, i64, i64 } %t60, ptr %a70 %t71 = getelementptr inbounds %S.linker.Build, ptr %a1, i32 0, i32 0 %t72 = load { ptr, i64, i64 }, ptr %t71 store { ptr, i64, i64 } %t72, ptr %a74 - store { ptr, i64, i64 } { ptr @.str.6670, i64 3, i64 0 }, ptr %a75 + store { ptr, i64, i64 } { ptr @.str.6878, i64 3, i64 0 }, ptr %a75 call void @finch_str_concat(ptr %a73, ptr %a74, ptr %a75) %t76 = load { ptr, i64, i64 }, ptr %a73 store { ptr, i64, i64 } %t76, ptr %a77 %t78 = getelementptr inbounds %S.linker.Build, ptr %a1, i32 0, i32 0 %t79 = load { ptr, i64, i64 }, ptr %t78 store { ptr, i64, i64 } %t79, ptr %a81 - store { ptr, i64, i64 } { ptr @.str.6671, i64 2, i64 0 }, ptr %a82 + store { ptr, i64, i64 } { ptr @.str.6879, i64 2, i64 0 }, ptr %a82 call void @finch_str_concat(ptr %a80, ptr %a81, ptr %a82) %t83 = load { ptr, i64, i64 }, ptr %a80 store { ptr, i64, i64 } %t83, ptr %a84 @@ -101174,14 +105199,14 @@ or.ok9824: store { ptr, i64, i64 } %t87, ptr %a89 %t90 = call i32 @finch_write_file(ptr %a88, ptr %a89) %t91 = icmp ne i32 %t90, 0 - store { ptr, i64, i64 } { ptr @.str.6672, i64 0, i64 0 }, ptr %a92 + store { ptr, i64, i64 } { ptr @.str.6880, i64 0, i64 0 }, ptr %a92 %t93 = getelementptr inbounds %S.platform.Target, ptr %a2, i32 0, i32 5 %t94 = load i1, ptr %t93 - br i1 %t94, label %then9825, label %endif9827 -then9825: + br i1 %t94, label %then10230, label %endif10232 +then10230: %t95 = getelementptr inbounds %S.platform.Target, ptr %a2, i32 0, i32 0 %t96 = load { ptr, i64, i64 }, ptr %t95 - store { ptr, i64, i64 } { ptr @.str.6673, i64 10, i64 0 }, ptr %a98 + store { ptr, i64, i64 } { ptr @.str.6881, i64 10, i64 0 }, ptr %a98 store { ptr, i64, i64 } %t96, ptr %a99 call void @finch_str_concat(ptr %a97, ptr %a98, ptr %a99) %t100 = load { ptr, i64, i64 }, ptr %a97 @@ -101189,12 +105214,12 @@ then9825: store { ptr, i64, i64 } %t100, ptr %a92 store { ptr, i64, i64 } %t101, ptr %a102 call void @finch_str_drop(ptr %a102) - br label %endif9827 -endif9827: + br label %endif10232 +endif10232: %t103 = getelementptr inbounds %S.linker.Build, ptr %a1, i32 0, i32 0 %t104 = load { ptr, i64, i64 }, ptr %t103 store { ptr, i64, i64 } %t104, ptr %a106 - store { ptr, i64, i64 } { ptr @.str.6674, i64 4, i64 0 }, ptr %a107 + store { ptr, i64, i64 } { ptr @.str.6882, i64 4, i64 0 }, ptr %a107 call void @finch_str_concat(ptr %a105, ptr %a106, ptr %a107) %t108 = load { ptr, i64, i64 }, ptr %a105 store { ptr, i64, i64 } %t108, ptr %a109 @@ -101205,7 +105230,7 @@ endif9827: call void @finch_str_concat(ptr %a112, ptr %a113, ptr %a114) %t115 = load { ptr, i64, i64 }, ptr %a112 store { ptr, i64, i64 } %t115, ptr %a117 - store { ptr, i64, i64 } { ptr @.str.6675, i64 1, i64 0 }, ptr %a118 + store { ptr, i64, i64 } { ptr @.str.6883, i64 1, i64 0 }, ptr %a118 call void @finch_str_concat(ptr %a116, ptr %a117, ptr %a118) store { ptr, i64, i64 } %t115, ptr %a119 call void @finch_str_drop(ptr %a119) @@ -101227,7 +105252,7 @@ endif9827: call void @finch_str_drop(ptr %a133) %t134 = load { ptr, i64, i64 }, ptr %a130 store { ptr, i64, i64 } %t134, ptr %a136 - store { ptr, i64, i64 } { ptr @.str.6676, i64 7, i64 0 }, ptr %a137 + store { ptr, i64, i64 } { ptr @.str.6884, i64 7, i64 0 }, ptr %a137 call void @finch_str_concat(ptr %a135, ptr %a136, ptr %a137) store { ptr, i64, i64 } %t134, ptr %a138 call void @finch_str_drop(ptr %a138) @@ -101243,7 +105268,7 @@ endif9827: call void @finch_str_drop(ptr %a146) %t147 = load { ptr, i64, i64 }, ptr %a142 store { ptr, i64, i64 } %t147, ptr %a149 - store { ptr, i64, i64 } { ptr @.str.6677, i64 4, i64 0 }, ptr %a150 + store { ptr, i64, i64 } { ptr @.str.6885, i64 4, i64 0 }, ptr %a150 call void @finch_str_concat(ptr %a148, ptr %a149, ptr %a150) store { ptr, i64, i64 } %t147, ptr %a151 call void @finch_str_drop(ptr %a151) @@ -101259,7 +105284,7 @@ endif9827: call void @finch_str_drop(ptr %a159) %t160 = load { ptr, i64, i64 }, ptr %a155 store { ptr, i64, i64 } %t160, ptr %a162 - store { ptr, i64, i64 } { ptr @.str.6678, i64 3, i64 0 }, ptr %a163 + store { ptr, i64, i64 } { ptr @.str.6886, i64 3, i64 0 }, ptr %a163 call void @finch_str_concat(ptr %a161, ptr %a162, ptr %a163) store { ptr, i64, i64 } %t160, ptr %a164 call void @finch_str_drop(ptr %a164) @@ -101275,7 +105300,7 @@ endif9827: call void @finch_str_drop(ptr %a172) %t173 = load { ptr, i64, i64 }, ptr %a168 store { ptr, i64, i64 } %t173, ptr %a175 - store { ptr, i64, i64 } { ptr @.str.6679, i64 5, i64 0 }, ptr %a176 + store { ptr, i64, i64 } { ptr @.str.6887, i64 5, i64 0 }, ptr %a176 call void @finch_str_concat(ptr %a174, ptr %a175, ptr %a176) store { ptr, i64, i64 } %t173, ptr %a177 call void @finch_str_drop(ptr %a177) @@ -101288,8 +105313,8 @@ endif9827: call void @finch.host.remove({ ptr, i64, i64 } %t182) %t183 = load i64, ptr %a181 %t184 = icmp ne i64 %t183, 0 - br i1 %t184, label %then9828, label %endif9830 -then9828: + br i1 %t184, label %then10233, label %endif10235 +then10233: %t185 = load { ptr, i64, i64 }, ptr %a109 store { ptr, i64, i64 } %t185, ptr %a186 store { ptr, i64, i64 } zeroinitializer, ptr %a187 @@ -101298,33 +105323,33 @@ then9828: %t190 = icmp eq i32 %t189, 0 %t191 = load { ptr, i64, i64 }, ptr %a188 %t192 = load { ptr, i64, i64 }, ptr %a187 - br i1 %t190, label %or.failed9831, label %or.ok9832 -or.failed9831: + br i1 %t190, label %or.failed10236, label %or.ok10237 +or.failed10236: store { ptr, i64, i64 } %t191, ptr %a193 call void @finch_str_drop(ptr %a193) - br label %or.bend9833 -or.bend9833: - br label %or.end9834 -or.ok9832: - br label %or.end9834 -or.end9834: - %t194 = phi { ptr, i64, i64 } [ { ptr @.str.6680, i64 0, i64 0 }, %or.bend9833 ], [ %t192, %or.ok9832 ] + br label %or.bend10238 +or.bend10238: + br label %or.end10239 +or.ok10237: + br label %or.end10239 +or.end10239: + %t194 = phi { ptr, i64, i64 } [ { ptr @.str.6888, i64 0, i64 0 }, %or.bend10238 ], [ %t192, %or.ok10237 ] %t195 = extractvalue { ptr, i64, i64 } %t194, 1 %t196 = trunc i64 %t195 to i32 %t197 = extractvalue { ptr, i64, i64 } %t194, 0 %t198 = icmp eq ptr %t197, null - %t199 = select i1 %t198, ptr @.str.6681, ptr %t197 - %t200 = call i32 (ptr, ...) @printf(ptr @.str.6682, i32 %t196, ptr %t199) + %t199 = select i1 %t198, ptr @.str.6889, ptr %t197 + %t200 = call i32 (ptr, ...) @printf(ptr @.str.6890, i32 %t196, ptr %t199) store { ptr, i64, i64 } %t194, ptr %a201 call void @finch_str_drop(ptr %a201) - %t202 = call i32 (ptr, ...) @printf(ptr @.str.6683) - %t203 = extractvalue { ptr, i64, i64 } { ptr @.str.6684, i64 46, i64 0 }, 1 + %t202 = call i32 (ptr, ...) @printf(ptr @.str.6891) + %t203 = extractvalue { ptr, i64, i64 } { ptr @.str.6892, i64 46, i64 0 }, 1 %t204 = trunc i64 %t203 to i32 - %t205 = extractvalue { ptr, i64, i64 } { ptr @.str.6684, i64 46, i64 0 }, 0 + %t205 = extractvalue { ptr, i64, i64 } { ptr @.str.6892, i64 46, i64 0 }, 0 %t206 = icmp eq ptr %t205, null - %t207 = select i1 %t206, ptr @.str.6685, ptr %t205 - %t208 = call i32 (ptr, ...) @printf(ptr @.str.6686, i32 %t204, ptr %t207) - %t209 = call i32 (ptr, ...) @printf(ptr @.str.6687) + %t207 = select i1 %t206, ptr @.str.6893, ptr %t205 + %t208 = call i32 (ptr, ...) @printf(ptr @.str.6894, i32 %t204, ptr %t207) + %t209 = call i32 (ptr, ...) @printf(ptr @.str.6895) %t210 = load { ptr, i64, i64 }, ptr %a84 call void @finch.host.remove({ ptr, i64, i64 } %t210) %t211 = load { ptr, i64, i64 }, ptr %a109 @@ -101337,10 +105362,10 @@ or.end9834: call void @finch_str_drop(ptr %a23) call void @finch_str_drop(ptr %a13) ret i64 1 -endif9830: +endif10235: %t212 = load { ptr, i64, i64 }, ptr %a23 store { ptr, i64, i64 } %t212, ptr %a214 - store { ptr, i64, i64 } { ptr @.str.6688, i64 1, i64 0 }, ptr %a215 + store { ptr, i64, i64 } { ptr @.str.6896, i64 1, i64 0 }, ptr %a215 call void @finch_str_concat(ptr %a213, ptr %a214, ptr %a215) %t216 = load { ptr, i64, i64 }, ptr %a213 %t217 = load { ptr, i64, i64 }, ptr %a84 @@ -101354,7 +105379,7 @@ endif9830: call void @finch_str_drop(ptr %a223) %t224 = load { ptr, i64, i64 }, ptr %a219 store { ptr, i64, i64 } %t224, ptr %a226 - store { ptr, i64, i64 } { ptr @.str.6689, i64 1, i64 0 }, ptr %a227 + store { ptr, i64, i64 } { ptr @.str.6897, i64 1, i64 0 }, ptr %a227 call void @finch_str_concat(ptr %a225, ptr %a226, ptr %a227) store { ptr, i64, i64 } %t224, ptr %a228 call void @finch_str_drop(ptr %a228) @@ -101370,7 +105395,7 @@ endif9830: call void @finch_str_drop(ptr %a236) %t237 = load { ptr, i64, i64 }, ptr %a232 store { ptr, i64, i64 } %t237, ptr %a239 - store { ptr, i64, i64 } { ptr @.str.6690, i64 4, i64 0 }, ptr %a240 + store { ptr, i64, i64 } { ptr @.str.6898, i64 4, i64 0 }, ptr %a240 call void @finch_str_concat(ptr %a238, ptr %a239, ptr %a240) store { ptr, i64, i64 } %t237, ptr %a241 call void @finch_str_drop(ptr %a241) @@ -101390,77 +105415,77 @@ endif9830: %t253 = getelementptr inbounds %S.platform.Target, ptr %a2, i32 0, i32 2 %t254 = load i1, ptr %t253 %t255 = xor i1 %t254, true - br i1 %t255, label %then9835, label %endif9837 -then9835: + br i1 %t255, label %then10240, label %endif10242 +then10240: %t256 = load { ptr, i64, i64 }, ptr %a252 store { ptr, i64, i64 } %t256, ptr %a258 - store { ptr, i64, i64 } { ptr @.str.6691, i64 4, i64 0 }, ptr %a259 + store { ptr, i64, i64 } { ptr @.str.6899, i64 4, i64 0 }, ptr %a259 call void @finch_str_concat(ptr %a257, ptr %a258, ptr %a259) %t260 = load { ptr, i64, i64 }, ptr %a257 %t261 = load { ptr, i64, i64 }, ptr %a252 store { ptr, i64, i64 } %t260, ptr %a252 store { ptr, i64, i64 } %t261, ptr %a262 call void @finch_str_drop(ptr %a262) - br label %endif9837 -endif9837: + br label %endif10242 +endif10242: %t263 = getelementptr inbounds %S.linker.Build, ptr %a1, i32 0, i32 5 %t264 = load i1, ptr %t263 - br i1 %t264, label %then9838, label %endif9840 -then9838: + br i1 %t264, label %then10243, label %endif10245 +then10243: %t265 = getelementptr inbounds %S.platform.Target, ptr %a2, i32 0, i32 3 %t266 = load i1, ptr %t265 - br i1 %t266, label %then9841, label %else9842 -then9841: + br i1 %t266, label %then10246, label %else10247 +then10246: %t267 = load { ptr, i64, i64 }, ptr %a252 store { ptr, i64, i64 } %t267, ptr %a269 - store { ptr, i64, i64 } { ptr @.str.6692, i64 12, i64 0 }, ptr %a270 + store { ptr, i64, i64 } { ptr @.str.6900, i64 12, i64 0 }, ptr %a270 call void @finch_str_concat(ptr %a268, ptr %a269, ptr %a270) %t271 = load { ptr, i64, i64 }, ptr %a268 %t272 = load { ptr, i64, i64 }, ptr %a252 store { ptr, i64, i64 } %t271, ptr %a252 store { ptr, i64, i64 } %t272, ptr %a273 call void @finch_str_drop(ptr %a273) - br label %endif9843 -else9842: + br label %endif10248 +else10247: %t274 = load { ptr, i64, i64 }, ptr %a252 store { ptr, i64, i64 } %t274, ptr %a276 - store { ptr, i64, i64 } { ptr @.str.6693, i64 8, i64 0 }, ptr %a277 + store { ptr, i64, i64 } { ptr @.str.6901, i64 8, i64 0 }, ptr %a277 call void @finch_str_concat(ptr %a275, ptr %a276, ptr %a277) %t278 = load { ptr, i64, i64 }, ptr %a275 %t279 = load { ptr, i64, i64 }, ptr %a252 store { ptr, i64, i64 } %t278, ptr %a252 store { ptr, i64, i64 } %t279, ptr %a280 call void @finch_str_drop(ptr %a280) - br label %endif9843 -endif9843: - br label %endif9840 -endif9840: + br label %endif10248 +endif10248: + br label %endif10245 +endif10245: store { ptr, i64, i64 } zeroinitializer, ptr %a281 %t282 = getelementptr inbounds %S.linker.Build, ptr %a1, i32 0, i32 6 store i64 0, ptr %a283 - br label %each.cond9844 -each.cond9844: + br label %each.cond10249 +each.cond10249: %t284 = getelementptr inbounds { ptr, i64, i64 }, ptr %t282, i32 0, i32 1 %t285 = load i64, ptr %t284 %t286 = load i64, ptr %a283 %t287 = icmp slt i64 %t286, %t285 - br i1 %t287, label %each.body9845, label %each.end9847 -each.body9845: + br i1 %t287, label %each.body10250, label %each.end10252 +each.body10250: %t288 = load ptr, ptr %t282 %t289 = getelementptr inbounds { ptr, i64, i64 }, ptr %t288, i64 %t286 %t290 = load { ptr, i64, i64 }, ptr %t289 store { ptr, i64, i64 } %t290, ptr %a291 %t292 = load { ptr, i64, i64 }, ptr %a291 store { ptr, i64, i64 } %t292, ptr %a293 - store { ptr, i64, i64 } { ptr @.str.6695, i64 2, i64 0 }, ptr %a295 + store { ptr, i64, i64 } { ptr @.str.6903, i64 2, i64 0 }, ptr %a295 %t296 = call i32 @finch_str_ends(ptr %a293, ptr %a295) %t297 = icmp ne i32 %t296, 0 - br i1 %t297, label %then9848, label %else9849 -then9848: + br i1 %t297, label %then10253, label %else10254 +then10253: %t298 = getelementptr inbounds %S.linker.Build, ptr %a1, i32 0, i32 0 %t299 = load { ptr, i64, i64 }, ptr %t298 store { ptr, i64, i64 } %t299, ptr %a301 - store { ptr, i64, i64 } { ptr @.str.6696, i64 1, i64 0 }, ptr %a302 + store { ptr, i64, i64 } { ptr @.str.6904, i64 1, i64 0 }, ptr %a302 call void @finch_str_concat(ptr %a300, ptr %a301, ptr %a302) %t303 = load { ptr, i64, i64 }, ptr %a300 %t304 = getelementptr inbounds { ptr, i64, i64 }, ptr %a281, i32 0, i32 1 @@ -101476,26 +105501,26 @@ then9848: call void @finch_str_drop(ptr %a312) %t313 = load { ptr, i64, i64 }, ptr %a308 store { ptr, i64, i64 } %t313, ptr %a315 - store { ptr, i64, i64 } { ptr @.str.6697, i64 2, i64 0 }, ptr %a316 + store { ptr, i64, i64 } { ptr @.str.6905, i64 2, i64 0 }, ptr %a316 call void @finch_str_concat(ptr %a314, ptr %a315, ptr %a316) store { ptr, i64, i64 } %t313, ptr %a317 call void @finch_str_drop(ptr %a317) %t318 = load { ptr, i64, i64 }, ptr %a314 store { ptr, i64, i64 } %t318, ptr %a319 - store { ptr, i64, i64 } { ptr @.str.6698, i64 6, i64 0 }, ptr %a320 + store { ptr, i64, i64 } { ptr @.str.6906, i64 6, i64 0 }, ptr %a320 %t321 = getelementptr inbounds %S.platform.Target, ptr %a2, i32 0, i32 1 %t322 = load i1, ptr %t321 - br i1 %t322, label %then9851, label %endif9853 -then9851: + br i1 %t322, label %then10256, label %endif10258 +then10256: %t323 = load { ptr, i64, i64 }, ptr %a320 - store { ptr, i64, i64 } { ptr @.str.6699, i64 0, i64 0 }, ptr %a320 + store { ptr, i64, i64 } { ptr @.str.6907, i64 0, i64 0 }, ptr %a320 store { ptr, i64, i64 } %t323, ptr %a324 call void @finch_str_drop(ptr %a324) - br label %endif9853 -endif9853: + br label %endif10258 +endif10258: %t325 = load { ptr, i64, i64 }, ptr %a23 store { ptr, i64, i64 } %t325, ptr %a327 - store { ptr, i64, i64 } { ptr @.str.6700, i64 4, i64 0 }, ptr %a328 + store { ptr, i64, i64 } { ptr @.str.6908, i64 4, i64 0 }, ptr %a328 call void @finch_str_concat(ptr %a326, ptr %a327, ptr %a328) %t329 = load { ptr, i64, i64 }, ptr %a326 %t330 = load { ptr, i64, i64 }, ptr %a320 @@ -101506,7 +105531,7 @@ endif9853: call void @finch_str_drop(ptr %a334) %t335 = load { ptr, i64, i64 }, ptr %a331 store { ptr, i64, i64 } %t335, ptr %a337 - store { ptr, i64, i64 } { ptr @.str.6701, i64 4, i64 0 }, ptr %a338 + store { ptr, i64, i64 } { ptr @.str.6909, i64 4, i64 0 }, ptr %a338 call void @finch_str_concat(ptr %a336, ptr %a337, ptr %a338) store { ptr, i64, i64 } %t335, ptr %a339 call void @finch_str_drop(ptr %a339) @@ -101522,7 +105547,7 @@ endif9853: call void @finch_str_drop(ptr %a347) %t348 = load { ptr, i64, i64 }, ptr %a343 store { ptr, i64, i64 } %t348, ptr %a350 - store { ptr, i64, i64 } { ptr @.str.6702, i64 4, i64 0 }, ptr %a351 + store { ptr, i64, i64 } { ptr @.str.6910, i64 4, i64 0 }, ptr %a351 call void @finch_str_concat(ptr %a349, ptr %a350, ptr %a351) store { ptr, i64, i64 } %t348, ptr %a352 call void @finch_str_drop(ptr %a352) @@ -101538,7 +105563,7 @@ endif9853: call void @finch_str_drop(ptr %a360) %t361 = load { ptr, i64, i64 }, ptr %a356 store { ptr, i64, i64 } %t361, ptr %a363 - store { ptr, i64, i64 } { ptr @.str.6703, i64 3, i64 0 }, ptr %a364 + store { ptr, i64, i64 } { ptr @.str.6911, i64 3, i64 0 }, ptr %a364 call void @finch_str_concat(ptr %a362, ptr %a363, ptr %a364) store { ptr, i64, i64 } %t361, ptr %a365 call void @finch_str_drop(ptr %a365) @@ -101554,7 +105579,7 @@ endif9853: call void @finch_str_drop(ptr %a373) %t374 = load { ptr, i64, i64 }, ptr %a369 store { ptr, i64, i64 } %t374, ptr %a376 - store { ptr, i64, i64 } { ptr @.str.6704, i64 5, i64 0 }, ptr %a377 + store { ptr, i64, i64 } { ptr @.str.6912, i64 5, i64 0 }, ptr %a377 call void @finch_str_concat(ptr %a375, ptr %a376, ptr %a377) store { ptr, i64, i64 } %t374, ptr %a378 call void @finch_str_drop(ptr %a378) @@ -101565,8 +105590,8 @@ endif9853: store i64 %t380, ptr %a382 %t383 = load i64, ptr %a382 %t384 = icmp ne i64 %t383, 0 - br i1 %t384, label %then9854, label %endif9856 -then9854: + br i1 %t384, label %then10259, label %endif10261 +then10259: %t385 = load { ptr, i64, i64 }, ptr %a109 store { ptr, i64, i64 } %t385, ptr %a386 store { ptr, i64, i64 } zeroinitializer, ptr %a387 @@ -101575,19 +105600,19 @@ then9854: %t390 = icmp eq i32 %t389, 0 %t391 = load { ptr, i64, i64 }, ptr %a388 %t392 = load { ptr, i64, i64 }, ptr %a387 - br i1 %t390, label %or.failed9857, label %or.ok9858 -or.failed9857: + br i1 %t390, label %or.failed10262, label %or.ok10263 +or.failed10262: store { ptr, i64, i64 } %t391, ptr %a393 call void @finch_str_drop(ptr %a393) - br label %or.bend9859 -or.bend9859: - br label %or.end9860 -or.ok9858: - br label %or.end9860 -or.end9860: - %t394 = phi { ptr, i64, i64 } [ { ptr @.str.6705, i64 0, i64 0 }, %or.bend9859 ], [ %t392, %or.ok9858 ] + br label %or.bend10264 +or.bend10264: + br label %or.end10265 +or.ok10263: + br label %or.end10265 +or.end10265: + %t394 = phi { ptr, i64, i64 } [ { ptr @.str.6913, i64 0, i64 0 }, %or.bend10264 ], [ %t392, %or.ok10263 ] store { ptr, i64, i64 } %t394, ptr %a396 - store { ptr, i64, i64 } { ptr @.str.6706, i64 24, i64 0 }, ptr %a397 + store { ptr, i64, i64 } { ptr @.str.6914, i64 24, i64 0 }, ptr %a397 call void @finch_str_concat(ptr %a395, ptr %a396, ptr %a397) store { ptr, i64, i64 } %t394, ptr %a398 call void @finch_str_drop(ptr %a398) @@ -101603,11 +105628,11 @@ or.end9860: %t407 = trunc i64 %t406 to i32 %t408 = extractvalue { ptr, i64, i64 } %t405, 0 %t409 = icmp eq ptr %t408, null - %t410 = select i1 %t409, ptr @.str.6707, ptr %t408 - %t411 = call i32 (ptr, ...) @printf(ptr @.str.6708, i32 %t407, ptr %t410) + %t410 = select i1 %t409, ptr @.str.6915, ptr %t408 + %t411 = call i32 (ptr, ...) @printf(ptr @.str.6916, i32 %t407, ptr %t410) store { ptr, i64, i64 } %t405, ptr %a412 call void @finch_str_drop(ptr %a412) - %t413 = call i32 (ptr, ...) @printf(ptr @.str.6709) + %t413 = call i32 (ptr, ...) @printf(ptr @.str.6917) %t414 = load { ptr, i64, i64 }, ptr %a84 call void @finch.host.remove({ ptr, i64, i64 } %t414) %t415 = load { ptr, i64, i64 }, ptr %a109 @@ -101626,7 +105651,7 @@ or.end9860: call void @finch_str_drop(ptr %a23) call void @finch_str_drop(ptr %a13) ret i64 1 -endif9856: +endif10261: %t417 = getelementptr inbounds { ptr, i64, i64 }, ptr %a281, i32 0, i32 1 %t418 = load { ptr, i64, i64 }, ptr %a319 store { ptr, i64, i64 } %t418, ptr %a419 @@ -101641,7 +105666,7 @@ endif9856: store i64 %t423, ptr %t417 %t426 = load { ptr, i64, i64 }, ptr %a252 store { ptr, i64, i64 } %t426, ptr %a428 - store { ptr, i64, i64 } { ptr @.str.6710, i64 1, i64 0 }, ptr %a429 + store { ptr, i64, i64 } { ptr @.str.6918, i64 1, i64 0 }, ptr %a429 call void @finch_str_concat(ptr %a427, ptr %a428, ptr %a429) %t430 = load { ptr, i64, i64 }, ptr %a427 %t431 = load { ptr, i64, i64 }, ptr %a319 @@ -101660,32 +105685,32 @@ endif9856: call void @finch_str_drop(ptr %a440) call void @finch_str_drop(ptr %a320) call void @finch_str_drop(ptr %a319) - br label %endif9850 -else9849: + br label %endif10255 +else10254: %t441 = load { ptr, i64, i64 }, ptr %a291 store { ptr, i64, i64 } %t441, ptr %a442 - store { ptr, i64, i64 } { ptr @.str.6712, i64 2, i64 0 }, ptr %a444 + store { ptr, i64, i64 } { ptr @.str.6920, i64 2, i64 0 }, ptr %a444 %t445 = call i32 @finch_str_ends(ptr %a442, ptr %a444) %t446 = icmp ne i32 %t445, 0 - br label %logic.from9861 -logic.from9861: - br i1 %t446, label %logic.end9863, label %logic.rhs9862 -logic.rhs9862: + br label %logic.from10266 +logic.from10266: + br i1 %t446, label %logic.end10268, label %logic.rhs10267 +logic.rhs10267: %t447 = load { ptr, i64, i64 }, ptr %a291 store { ptr, i64, i64 } %t447, ptr %a448 - store { ptr, i64, i64 } { ptr @.str.6714, i64 2, i64 0 }, ptr %a450 + store { ptr, i64, i64 } { ptr @.str.6922, i64 2, i64 0 }, ptr %a450 %t451 = call i32 @finch_str_ends(ptr %a448, ptr %a450) %t452 = icmp ne i32 %t451, 0 - br label %logic.rend9864 -logic.rend9864: - br label %logic.end9863 -logic.end9863: - %t453 = phi i1 [ true, %logic.from9861 ], [ %t452, %logic.rend9864 ] - br i1 %t453, label %then9865, label %else9866 -then9865: + br label %logic.rend10269 +logic.rend10269: + br label %logic.end10268 +logic.end10268: + %t453 = phi i1 [ true, %logic.from10266 ], [ %t452, %logic.rend10269 ] + br i1 %t453, label %then10270, label %else10271 +then10270: %t454 = load { ptr, i64, i64 }, ptr %a252 store { ptr, i64, i64 } %t454, ptr %a456 - store { ptr, i64, i64 } { ptr @.str.6715, i64 1, i64 0 }, ptr %a457 + store { ptr, i64, i64 } { ptr @.str.6923, i64 1, i64 0 }, ptr %a457 call void @finch_str_concat(ptr %a455, ptr %a456, ptr %a457) %t458 = load { ptr, i64, i64 }, ptr %a455 %t459 = load { ptr, i64, i64 }, ptr %a291 @@ -101702,11 +105727,11 @@ then9865: store { ptr, i64, i64 } %t466, ptr %a252 store { ptr, i64, i64 } %t467, ptr %a468 call void @finch_str_drop(ptr %a468) - br label %endif9867 -else9866: + br label %endif10272 +else10271: %t469 = load { ptr, i64, i64 }, ptr %a252 store { ptr, i64, i64 } %t469, ptr %a471 - store { ptr, i64, i64 } { ptr @.str.6716, i64 1, i64 0 }, ptr %a472 + store { ptr, i64, i64 } { ptr @.str.6924, i64 1, i64 0 }, ptr %a472 call void @finch_str_concat(ptr %a470, ptr %a471, ptr %a472) %t473 = load { ptr, i64, i64 }, ptr %a470 %t474 = load { ptr, i64, i64 }, ptr %a291 @@ -101724,20 +105749,20 @@ else9866: store { ptr, i64, i64 } %t482, ptr %a252 store { ptr, i64, i64 } %t483, ptr %a484 call void @finch_str_drop(ptr %a484) - br label %endif9867 -endif9867: - br label %endif9850 -endif9850: - br label %each.step9846 -each.step9846: + br label %endif10272 +endif10272: + br label %endif10255 +endif10255: + br label %each.step10251 +each.step10251: %t485 = load i64, ptr %a283 %t486 = add i64 %t485, 1 store i64 %t486, ptr %a283 - br label %each.cond9844 -each.end9847: + br label %each.cond10249 +each.end10252: %t487 = load { ptr, i64, i64 }, ptr %a252 store { ptr, i64, i64 } %t487, ptr %a489 - store { ptr, i64, i64 } { ptr @.str.6717, i64 3, i64 0 }, ptr %a490 + store { ptr, i64, i64 } { ptr @.str.6925, i64 3, i64 0 }, ptr %a490 call void @finch_str_concat(ptr %a488, ptr %a489, ptr %a490) %t491 = load { ptr, i64, i64 }, ptr %a488 %t492 = load { ptr, i64, i64 }, ptr %a109 @@ -101751,7 +105776,7 @@ each.end9847: call void @finch_str_drop(ptr %a498) %t499 = load { ptr, i64, i64 }, ptr %a494 store { ptr, i64, i64 } %t499, ptr %a501 - store { ptr, i64, i64 } { ptr @.str.6718, i64 5, i64 0 }, ptr %a502 + store { ptr, i64, i64 } { ptr @.str.6926, i64 5, i64 0 }, ptr %a502 call void @finch_str_concat(ptr %a500, ptr %a501, ptr %a502) store { ptr, i64, i64 } %t499, ptr %a503 call void @finch_str_drop(ptr %a503) @@ -101768,55 +105793,55 @@ each.end9847: %t513 = icmp eq i32 %t512, 0 %t514 = load { ptr, i64, i64 }, ptr %a511 %t515 = load { ptr, i64, i64 }, ptr %a510 - br i1 %t513, label %or.failed9868, label %or.ok9869 -or.failed9868: + br i1 %t513, label %or.failed10273, label %or.ok10274 +or.failed10273: store { ptr, i64, i64 } %t514, ptr %a516 call void @finch_str_drop(ptr %a516) - br label %or.bend9870 -or.bend9870: - br label %or.end9871 -or.ok9869: - br label %or.end9871 -or.end9871: - %t517 = phi { ptr, i64, i64 } [ { ptr @.str.6719, i64 0, i64 0 }, %or.bend9870 ], [ %t515, %or.ok9869 ] + br label %or.bend10275 +or.bend10275: + br label %or.end10276 +or.ok10274: + br label %or.end10276 +or.end10276: + %t517 = phi { ptr, i64, i64 } [ { ptr @.str.6927, i64 0, i64 0 }, %or.bend10275 ], [ %t515, %or.ok10274 ] store { ptr, i64, i64 } %t517, ptr %a518 %t519 = load { ptr, i64, i64 }, ptr %a84 call void @finch.host.remove({ ptr, i64, i64 } %t519) %t520 = load { ptr, i64, i64 }, ptr %a109 call void @finch.host.remove({ ptr, i64, i64 } %t520) store i64 0, ptr %a521 - br label %each.cond9872 -each.cond9872: + br label %each.cond10277 +each.cond10277: %t522 = getelementptr inbounds { ptr, i64, i64 }, ptr %a281, i32 0, i32 1 %t523 = load i64, ptr %t522 %t524 = load i64, ptr %a521 %t525 = icmp slt i64 %t524, %t523 - br i1 %t525, label %each.body9873, label %each.end9875 -each.body9873: + br i1 %t525, label %each.body10278, label %each.end10280 +each.body10278: %t526 = load ptr, ptr %a281 %t527 = getelementptr inbounds { ptr, i64, i64 }, ptr %t526, i64 %t524 %t528 = load { ptr, i64, i64 }, ptr %t527 store { ptr, i64, i64 } %t528, ptr %a529 %t530 = load { ptr, i64, i64 }, ptr %a529 call void @finch.host.remove({ ptr, i64, i64 } %t530) - br label %each.step9874 -each.step9874: + br label %each.step10279 +each.step10279: %t531 = load i64, ptr %a521 %t532 = add i64 %t531, 1 store i64 %t532, ptr %a521 - br label %each.cond9872 -each.end9875: + br label %each.cond10277 +each.end10280: %t533 = load i64, ptr %a507 %t534 = icmp eq i64 %t533, 127 - br i1 %t534, label %then9876, label %endif9878 -then9876: + br i1 %t534, label %then10281, label %endif10283 +then10281: %t535 = load { ptr, i64, i64 }, ptr %a23 - store { ptr, i64, i64 } { ptr @.str.6720, i64 42, i64 0 }, ptr %a537 + store { ptr, i64, i64 } { ptr @.str.6928, i64 42, i64 0 }, ptr %a537 store { ptr, i64, i64 } %t535, ptr %a538 call void @finch_str_concat(ptr %a536, ptr %a537, ptr %a538) %t539 = load { ptr, i64, i64 }, ptr %a536 store { ptr, i64, i64 } %t539, ptr %a541 - store { ptr, i64, i64 } { ptr @.str.6721, i64 32, i64 0 }, ptr %a542 + store { ptr, i64, i64 } { ptr @.str.6929, i64 32, i64 0 }, ptr %a542 call void @finch_str_concat(ptr %a540, ptr %a541, ptr %a542) store { ptr, i64, i64 } %t539, ptr %a543 call void @finch_str_drop(ptr %a543) @@ -101825,11 +105850,11 @@ then9876: %t546 = trunc i64 %t545 to i32 %t547 = extractvalue { ptr, i64, i64 } %t544, 0 %t548 = icmp eq ptr %t547, null - %t549 = select i1 %t548, ptr @.str.6722, ptr %t547 - %t550 = call i32 (ptr, ...) @printf(ptr @.str.6723, i32 %t546, ptr %t549) + %t549 = select i1 %t548, ptr @.str.6930, ptr %t547 + %t550 = call i32 (ptr, ...) @printf(ptr @.str.6931, i32 %t546, ptr %t549) store { ptr, i64, i64 } %t544, ptr %a551 call void @finch_str_drop(ptr %a551) - %t552 = call i32 (ptr, ...) @printf(ptr @.str.6724) + %t552 = call i32 (ptr, ...) @printf(ptr @.str.6932) call void @finch_str_drop(ptr %a518) call void @finch.drop.arr_str(ptr %a281) call void @finch_str_drop(ptr %a252) @@ -101841,11 +105866,11 @@ then9876: call void @finch_str_drop(ptr %a23) call void @finch_str_drop(ptr %a13) ret i64 1 -endif9878: +endif10283: %t553 = load i64, ptr %a507 %t554 = icmp ne i64 %t553, 0 - br i1 %t554, label %then9879, label %endif9881 -then9879: + br i1 %t554, label %then10284, label %endif10286 +then10284: %t555 = load { ptr, i64, i64 }, ptr %a518 %t556 = load %S.cimport.CImports, ptr %a3 %t557 = load %S.platform.Target, ptr %a2 @@ -101861,22 +105886,22 @@ then9879: call void @finch_str_drop(ptr %a23) call void @finch_str_drop(ptr %a13) ret i64 %t558 -endif9881: +endif10286: %t559 = getelementptr inbounds { ptr, i64, i64 }, ptr %a518, i32 0, i32 1 %t560 = load i64, ptr %t559 %t561 = icmp sgt i64 %t560, 0 - br i1 %t561, label %then9882, label %endif9884 -then9882: + br i1 %t561, label %then10287, label %endif10289 +then10287: %t562 = load { ptr, i64, i64 }, ptr %a518 %t563 = extractvalue { ptr, i64, i64 } %t562, 1 %t564 = trunc i64 %t563 to i32 %t565 = extractvalue { ptr, i64, i64 } %t562, 0 %t566 = icmp eq ptr %t565, null - %t567 = select i1 %t566, ptr @.str.6725, ptr %t565 - %t568 = call i32 (ptr, ...) @printf(ptr @.str.6726, i32 %t564, ptr %t567) - %t569 = call i32 (ptr, ...) @printf(ptr @.str.6727) - br label %endif9884 -endif9884: + %t567 = select i1 %t566, ptr @.str.6933, ptr %t565 + %t568 = call i32 (ptr, ...) @printf(ptr @.str.6934, i32 %t564, ptr %t567) + %t569 = call i32 (ptr, ...) @printf(ptr @.str.6935) + br label %endif10289 +endif10289: call void @finch_str_drop(ptr %a518) call void @finch.drop.arr_str(ptr %a281) call void @finch_str_drop(ptr %a252) @@ -101896,69 +105921,69 @@ entry: store i8 %p0, ptr %a1 %t2 = load i8, ptr %a1 %t3 = icmp uge i8 %t2, 48 - br label %logic.from9885 -logic.from9885: - br i1 %t3, label %logic.rhs9886, label %logic.end9887 -logic.rhs9886: + br label %logic.from10290 +logic.from10290: + br i1 %t3, label %logic.rhs10291, label %logic.end10292 +logic.rhs10291: %t4 = load i8, ptr %a1 %t5 = icmp ule i8 %t4, 57 - br label %logic.rend9888 -logic.rend9888: - br label %logic.end9887 -logic.end9887: - %t6 = phi i1 [ false, %logic.from9885 ], [ %t5, %logic.rend9888 ] - br i1 %t6, label %then9889, label %endif9891 -then9889: + br label %logic.rend10293 +logic.rend10293: + br label %logic.end10292 +logic.end10292: + %t6 = phi i1 [ false, %logic.from10290 ], [ %t5, %logic.rend10293 ] + br i1 %t6, label %then10294, label %endif10296 +then10294: %t7 = load i8, ptr %a1 %t8 = zext i8 %t7 to i64 %t9 = zext i8 48 to i64 %t10 = sub i64 %t8, %t9 ret i64 %t10 -endif9891: +endif10296: %t11 = load i8, ptr %a1 %t12 = icmp uge i8 %t11, 97 - br label %logic.from9892 -logic.from9892: - br i1 %t12, label %logic.rhs9893, label %logic.end9894 -logic.rhs9893: + br label %logic.from10297 +logic.from10297: + br i1 %t12, label %logic.rhs10298, label %logic.end10299 +logic.rhs10298: %t13 = load i8, ptr %a1 %t14 = icmp ule i8 %t13, 102 - br label %logic.rend9895 -logic.rend9895: - br label %logic.end9894 -logic.end9894: - %t15 = phi i1 [ false, %logic.from9892 ], [ %t14, %logic.rend9895 ] - br i1 %t15, label %then9896, label %endif9898 -then9896: + br label %logic.rend10300 +logic.rend10300: + br label %logic.end10299 +logic.end10299: + %t15 = phi i1 [ false, %logic.from10297 ], [ %t14, %logic.rend10300 ] + br i1 %t15, label %then10301, label %endif10303 +then10301: %t16 = load i8, ptr %a1 %t17 = zext i8 %t16 to i64 %t18 = zext i8 97 to i64 %t19 = sub i64 %t17, %t18 %t20 = add i64 %t19, 10 ret i64 %t20 -endif9898: +endif10303: %t21 = load i8, ptr %a1 %t22 = icmp uge i8 %t21, 65 - br label %logic.from9899 -logic.from9899: - br i1 %t22, label %logic.rhs9900, label %logic.end9901 -logic.rhs9900: + br label %logic.from10304 +logic.from10304: + br i1 %t22, label %logic.rhs10305, label %logic.end10306 +logic.rhs10305: %t23 = load i8, ptr %a1 %t24 = icmp ule i8 %t23, 70 - br label %logic.rend9902 -logic.rend9902: - br label %logic.end9901 -logic.end9901: - %t25 = phi i1 [ false, %logic.from9899 ], [ %t24, %logic.rend9902 ] - br i1 %t25, label %then9903, label %endif9905 -then9903: + br label %logic.rend10307 +logic.rend10307: + br label %logic.end10306 +logic.end10306: + %t25 = phi i1 [ false, %logic.from10304 ], [ %t24, %logic.rend10307 ] + br i1 %t25, label %then10308, label %endif10310 +then10308: %t26 = load i8, ptr %a1 %t27 = zext i8 %t26 to i64 %t28 = zext i8 65 to i64 %t29 = sub i64 %t27, %t28 %t30 = add i64 %t29, 10 ret i64 %t30 -endif9905: +endif10310: ret i64 -1 } @@ -101993,122 +106018,122 @@ entry: store { ptr, i64, i64 } %t5, ptr %a6 %t7 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t7, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.6729, i64 7, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.6937, i64 7, i64 0 }, ptr %a10 %t11 = call i32 @finch_str_starts(ptr %a8, ptr %a10) %t12 = icmp ne i32 %t11, 0 - br i1 %t12, label %then9906, label %endif9908 -then9906: + br i1 %t12, label %then10311, label %endif10313 +then10311: %t13 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t13, ptr %a14 %t16 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t17 = load i64, ptr %t16 - call void @finch_str_sub(ptr %a15, ptr %a14, i64 7, i64 %t17, ptr @.str.6730, i64 114) + call void @finch_str_sub(ptr %a15, ptr %a14, i64 7, i64 %t17, ptr @.str.6938, i64 114) %t18 = load { ptr, i64, i64 }, ptr %a15 %t19 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t18, ptr %a6 store { ptr, i64, i64 } %t19, ptr %a20 call void @finch_str_drop(ptr %a20) - br label %endif9908 -endif9908: + br label %endif10313 +endif10313: store { ptr, i64, i64 } zeroinitializer, ptr %a21 store i64 0, ptr %a22 - br label %while.cond9909 -while.cond9909: + br label %while.cond10314 +while.cond10314: %t23 = load i64, ptr %a22 %t24 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t25 = load i64, ptr %t24 %t26 = icmp slt i64 %t23, %t25 - br i1 %t26, label %while.body9910, label %while.end9911 -while.body9910: + br i1 %t26, label %while.body10315, label %while.end10316 +while.body10315: %t27 = load i64, ptr %a22 %t28 = load { ptr, i64, i64 }, ptr %a6 %t29 = extractvalue { ptr, i64, i64 } %t28, 1 %t30 = icmp uge i64 %t27, %t29 - br i1 %t30, label %range9912, label %inrange9913 -range9912: - call void @finch_panic_index(ptr @.str.6731, i64 119, i64 %t27, i64 %t29) + br i1 %t30, label %range10317, label %inrange10318 +range10317: + call void @finch_panic_index(ptr @.str.6939, i64 119, i64 %t27, i64 %t29) unreachable -inrange9913: +inrange10318: %t31 = extractvalue { ptr, i64, i64 } %t28, 0 %t32 = getelementptr inbounds i8, ptr %t31, i64 %t27 %t33 = load i8, ptr %t32 %t34 = icmp eq i8 %t33, 37 - br label %logic.from9914 -logic.from9914: - br i1 %t34, label %logic.rhs9915, label %logic.end9916 -logic.rhs9915: + br label %logic.from10319 +logic.from10319: + br i1 %t34, label %logic.rhs10320, label %logic.end10321 +logic.rhs10320: %t35 = load i64, ptr %a22 %t36 = add i64 %t35, 2 %t37 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t38 = load i64, ptr %t37 %t39 = add i64 %t38, 0 %t40 = icmp slt i64 %t36, %t39 - br label %logic.rend9917 -logic.rend9917: - br label %logic.end9916 -logic.end9916: - %t41 = phi i1 [ false, %logic.from9914 ], [ %t40, %logic.rend9917 ] - br label %logic.from9918 -logic.from9918: - br i1 %t41, label %logic.rhs9919, label %logic.end9920 -logic.rhs9919: + br label %logic.rend10322 +logic.rend10322: + br label %logic.end10321 +logic.end10321: + %t41 = phi i1 [ false, %logic.from10319 ], [ %t40, %logic.rend10322 ] + br label %logic.from10323 +logic.from10323: + br i1 %t41, label %logic.rhs10324, label %logic.end10325 +logic.rhs10324: %t42 = load i64, ptr %a22 %t43 = add i64 %t42, 1 %t44 = load { ptr, i64, i64 }, ptr %a6 %t45 = extractvalue { ptr, i64, i64 } %t44, 1 %t46 = icmp uge i64 %t43, %t45 - br i1 %t46, label %range9921, label %inrange9922 -range9921: - call void @finch_panic_index(ptr @.str.6732, i64 119, i64 %t43, i64 %t45) + br i1 %t46, label %range10326, label %inrange10327 +range10326: + call void @finch_panic_index(ptr @.str.6940, i64 119, i64 %t43, i64 %t45) unreachable -inrange9922: +inrange10327: %t47 = extractvalue { ptr, i64, i64 } %t44, 0 %t48 = getelementptr inbounds i8, ptr %t47, i64 %t43 %t49 = load i8, ptr %t48 %t50 = call i64 @finch.lsp.hexval(i8 %t49) %t51 = icmp sge i64 %t50, 0 - br label %logic.rend9923 -logic.rend9923: - br label %logic.end9920 -logic.end9920: - %t52 = phi i1 [ false, %logic.from9918 ], [ %t51, %logic.rend9923 ] - br label %logic.from9924 -logic.from9924: - br i1 %t52, label %logic.rhs9925, label %logic.end9926 -logic.rhs9925: + br label %logic.rend10328 +logic.rend10328: + br label %logic.end10325 +logic.end10325: + %t52 = phi i1 [ false, %logic.from10323 ], [ %t51, %logic.rend10328 ] + br label %logic.from10329 +logic.from10329: + br i1 %t52, label %logic.rhs10330, label %logic.end10331 +logic.rhs10330: %t53 = load i64, ptr %a22 %t54 = add i64 %t53, 2 %t55 = load { ptr, i64, i64 }, ptr %a6 %t56 = extractvalue { ptr, i64, i64 } %t55, 1 %t57 = icmp uge i64 %t54, %t56 - br i1 %t57, label %range9927, label %inrange9928 -range9927: - call void @finch_panic_index(ptr @.str.6733, i64 119, i64 %t54, i64 %t56) + br i1 %t57, label %range10332, label %inrange10333 +range10332: + call void @finch_panic_index(ptr @.str.6941, i64 119, i64 %t54, i64 %t56) unreachable -inrange9928: +inrange10333: %t58 = extractvalue { ptr, i64, i64 } %t55, 0 %t59 = getelementptr inbounds i8, ptr %t58, i64 %t54 %t60 = load i8, ptr %t59 %t61 = call i64 @finch.lsp.hexval(i8 %t60) %t62 = icmp sge i64 %t61, 0 - br label %logic.rend9929 -logic.rend9929: - br label %logic.end9926 -logic.end9926: - %t63 = phi i1 [ false, %logic.from9924 ], [ %t62, %logic.rend9929 ] - br i1 %t63, label %then9930, label %else9931 -then9930: + br label %logic.rend10334 +logic.rend10334: + br label %logic.end10331 +logic.end10331: + %t63 = phi i1 [ false, %logic.from10329 ], [ %t62, %logic.rend10334 ] + br i1 %t63, label %then10335, label %else10336 +then10335: %t64 = getelementptr inbounds { ptr, i64, i64 }, ptr %a21, i32 0, i32 1 %t65 = load i64, ptr %a22 %t66 = add i64 %t65, 1 %t67 = load { ptr, i64, i64 }, ptr %a6 %t68 = extractvalue { ptr, i64, i64 } %t67, 1 %t69 = icmp uge i64 %t66, %t68 - br i1 %t69, label %range9933, label %inrange9934 -range9933: - call void @finch_panic_index(ptr @.str.6734, i64 120, i64 %t66, i64 %t68) + br i1 %t69, label %range10338, label %inrange10339 +range10338: + call void @finch_panic_index(ptr @.str.6942, i64 120, i64 %t66, i64 %t68) unreachable -inrange9934: +inrange10339: %t70 = extractvalue { ptr, i64, i64 } %t67, 0 %t71 = getelementptr inbounds i8, ptr %t70, i64 %t66 %t72 = load i8, ptr %t71 @@ -102119,11 +106144,11 @@ inrange9934: %t77 = load { ptr, i64, i64 }, ptr %a6 %t78 = extractvalue { ptr, i64, i64 } %t77, 1 %t79 = icmp uge i64 %t76, %t78 - br i1 %t79, label %range9935, label %inrange9936 -range9935: - call void @finch_panic_index(ptr @.str.6735, i64 120, i64 %t76, i64 %t78) + br i1 %t79, label %range10340, label %inrange10341 +range10340: + call void @finch_panic_index(ptr @.str.6943, i64 120, i64 %t76, i64 %t78) unreachable -inrange9936: +inrange10341: %t80 = extractvalue { ptr, i64, i64 } %t77, 0 %t81 = getelementptr inbounds i8, ptr %t80, i64 %t76 %t82 = load i8, ptr %t81 @@ -102140,18 +106165,18 @@ inrange9936: %t90 = load i64, ptr %a22 %t91 = add i64 %t90, 3 store i64 %t91, ptr %a22 - br label %endif9932 -else9931: + br label %endif10337 +else10336: %t92 = getelementptr inbounds { ptr, i64, i64 }, ptr %a21, i32 0, i32 1 %t93 = load i64, ptr %a22 %t94 = load { ptr, i64, i64 }, ptr %a6 %t95 = extractvalue { ptr, i64, i64 } %t94, 1 %t96 = icmp uge i64 %t93, %t95 - br i1 %t96, label %range9937, label %inrange9938 -range9937: - call void @finch_panic_index(ptr @.str.6736, i64 123, i64 %t93, i64 %t95) + br i1 %t96, label %range10342, label %inrange10343 +range10342: + call void @finch_panic_index(ptr @.str.6944, i64 123, i64 %t93, i64 %t95) unreachable -inrange9938: +inrange10343: %t97 = extractvalue { ptr, i64, i64 } %t94, 0 %t98 = getelementptr inbounds i8, ptr %t97, i64 %t93 %t99 = load i8, ptr %t98 @@ -102165,10 +106190,10 @@ inrange9938: %t104 = load i64, ptr %a22 %t105 = add i64 %t104, 1 store i64 %t105, ptr %a22 - br label %endif9932 -endif9932: - br label %while.cond9909 -while.end9911: + br label %endif10337 +endif10337: + br label %while.cond10314 +while.end10316: %t106 = load { ptr, i64, i64 }, ptr %a21 store { ptr, i64, i64 } zeroinitializer, ptr %a107 store { ptr, i64, i64 } %t106, ptr %a108 @@ -102207,24 +106232,24 @@ entry: %a97 = alloca { ptr, i64, i64 }, align 16 %a98 = alloca { ptr, i64, i64 }, align 16 store { ptr, i64, i64 } %p0, ptr %a1 - store { ptr, i64, i64 } { ptr @.str.6737, i64 16, i64 0 }, ptr %a2 + store { ptr, i64, i64 } { ptr @.str.6945, i64 16, i64 0 }, ptr %a2 %t3 = mul i64 1, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t4 = call ptr @finch_alloc(i64 %t3) %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %t4, i64 0 - store { ptr, i64, i64 } { ptr @.str.6738, i64 7, i64 0 }, ptr %t5 + store { ptr, i64, i64 } { ptr @.str.6946, i64 7, i64 0 }, ptr %t5 %t6 = insertvalue { ptr, i64, i64 } undef, ptr %t4, 0 %t7 = insertvalue { ptr, i64, i64 } %t6, i64 1, 1 %t8 = insertvalue { ptr, i64, i64 } %t7, i64 1, 2 store { ptr, i64, i64 } %t8, ptr %a9 store i64 0, ptr %a10 - br label %each.cond9939 -each.cond9939: + br label %each.cond10344 +each.cond10344: %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t12 = load i64, ptr %t11 %t13 = load i64, ptr %a10 %t14 = icmp slt i64 %t13, %t12 - br i1 %t14, label %each.body9940, label %each.end9942 -each.body9940: + br i1 %t14, label %each.body10345, label %each.end10347 +each.body10345: %t15 = load ptr, ptr %a1 %t16 = getelementptr inbounds i8, ptr %t15, i64 %t13 %t17 = load i8, ptr %t16 @@ -102234,66 +106259,66 @@ each.body9940: store i64 %t20, ptr %a21 %t22 = load i8, ptr %a18 %t23 = icmp uge i8 %t22, 97 - br label %logic.from9943 -logic.from9943: - br i1 %t23, label %logic.rhs9944, label %logic.end9945 -logic.rhs9944: + br label %logic.from10348 +logic.from10348: + br i1 %t23, label %logic.rhs10349, label %logic.end10350 +logic.rhs10349: %t24 = load i8, ptr %a18 %t25 = icmp ule i8 %t24, 122 - br label %logic.rend9946 -logic.rend9946: - br label %logic.end9945 -logic.end9945: - %t26 = phi i1 [ false, %logic.from9943 ], [ %t25, %logic.rend9946 ] - br label %logic.from9947 -logic.from9947: - br i1 %t26, label %logic.end9949, label %logic.rhs9948 -logic.rhs9948: + br label %logic.rend10351 +logic.rend10351: + br label %logic.end10350 +logic.end10350: + %t26 = phi i1 [ false, %logic.from10348 ], [ %t25, %logic.rend10351 ] + br label %logic.from10352 +logic.from10352: + br i1 %t26, label %logic.end10354, label %logic.rhs10353 +logic.rhs10353: %t27 = load i8, ptr %a18 %t28 = icmp uge i8 %t27, 65 - br label %logic.from9950 -logic.from9950: - br i1 %t28, label %logic.rhs9951, label %logic.end9952 -logic.rhs9951: + br label %logic.from10355 +logic.from10355: + br i1 %t28, label %logic.rhs10356, label %logic.end10357 +logic.rhs10356: %t29 = load i8, ptr %a18 %t30 = icmp ule i8 %t29, 90 - br label %logic.rend9953 -logic.rend9953: - br label %logic.end9952 -logic.end9952: - %t31 = phi i1 [ false, %logic.from9950 ], [ %t30, %logic.rend9953 ] - br label %logic.rend9954 -logic.rend9954: - br label %logic.end9949 -logic.end9949: - %t32 = phi i1 [ true, %logic.from9947 ], [ %t31, %logic.rend9954 ] - br label %logic.from9955 -logic.from9955: - br i1 %t32, label %logic.end9957, label %logic.rhs9956 -logic.rhs9956: + br label %logic.rend10358 +logic.rend10358: + br label %logic.end10357 +logic.end10357: + %t31 = phi i1 [ false, %logic.from10355 ], [ %t30, %logic.rend10358 ] + br label %logic.rend10359 +logic.rend10359: + br label %logic.end10354 +logic.end10354: + %t32 = phi i1 [ true, %logic.from10352 ], [ %t31, %logic.rend10359 ] + br label %logic.from10360 +logic.from10360: + br i1 %t32, label %logic.end10362, label %logic.rhs10361 +logic.rhs10361: %t33 = load i8, ptr %a18 %t34 = icmp uge i8 %t33, 48 - br label %logic.from9958 -logic.from9958: - br i1 %t34, label %logic.rhs9959, label %logic.end9960 -logic.rhs9959: + br label %logic.from10363 +logic.from10363: + br i1 %t34, label %logic.rhs10364, label %logic.end10365 +logic.rhs10364: %t35 = load i8, ptr %a18 %t36 = icmp ule i8 %t35, 57 - br label %logic.rend9961 -logic.rend9961: - br label %logic.end9960 -logic.end9960: - %t37 = phi i1 [ false, %logic.from9958 ], [ %t36, %logic.rend9961 ] - br label %logic.rend9962 -logic.rend9962: - br label %logic.end9957 -logic.end9957: - %t38 = phi i1 [ true, %logic.from9955 ], [ %t37, %logic.rend9962 ] - br label %logic.from9963 -logic.from9963: - br i1 %t38, label %logic.end9965, label %logic.rhs9964 -logic.rhs9964: - store { ptr, i64, i64 } { ptr @.str.6739, i64 5, i64 0 }, ptr %a39 + br label %logic.rend10366 +logic.rend10366: + br label %logic.end10365 +logic.end10365: + %t37 = phi i1 [ false, %logic.from10363 ], [ %t36, %logic.rend10366 ] + br label %logic.rend10367 +logic.rend10367: + br label %logic.end10362 +logic.end10362: + %t38 = phi i1 [ true, %logic.from10360 ], [ %t37, %logic.rend10367 ] + br label %logic.from10368 +logic.from10368: + br i1 %t38, label %logic.end10370, label %logic.rhs10369 +logic.rhs10369: + store { ptr, i64, i64 } { ptr @.str.6947, i64 5, i64 0 }, ptr %a39 %t41 = load i8, ptr %a18 call void @finch_str_from_char(ptr %a42, i8 signext %t41) %t43 = load { ptr, i64, i64 }, ptr %a42 @@ -102302,13 +106327,13 @@ logic.rhs9964: %t46 = icmp sge i64 %t45, 0 store { ptr, i64, i64 } %t43, ptr %a47 call void @finch_str_drop(ptr %a47) - br label %logic.rend9966 -logic.rend9966: - br label %logic.end9965 -logic.end9965: - %t48 = phi i1 [ true, %logic.from9963 ], [ %t46, %logic.rend9966 ] - br i1 %t48, label %then9967, label %else9968 -then9967: + br label %logic.rend10371 +logic.rend10371: + br label %logic.end10370 +logic.end10370: + %t48 = phi i1 [ true, %logic.from10368 ], [ %t46, %logic.rend10371 ] + br i1 %t48, label %then10372, label %else10373 +then10372: %t49 = getelementptr inbounds { ptr, i64, i64 }, ptr %a9, i32 0, i32 1 %t50 = load i8, ptr %a18 call void @finch_str_from_char(ptr %a51, i8 signext %t50) @@ -102320,8 +106345,8 @@ then9967: %t56 = getelementptr inbounds { ptr, i64, i64 }, ptr %t55, i64 %t53 store { ptr, i64, i64 } %t52, ptr %t56 store i64 %t54, ptr %t49 - br label %endif9969 -else9968: + br label %endif10374 +else10373: %t57 = getelementptr inbounds { ptr, i64, i64 }, ptr %a9, i32 0, i32 1 %t58 = load i64, ptr %a21 %t59 = sdiv i64 %t58, 16 @@ -102329,17 +106354,17 @@ else9968: %t61 = load { ptr, i64, i64 }, ptr %a2 %t62 = extractvalue { ptr, i64, i64 } %t61, 1 %t63 = icmp uge i64 %t60, %t62 - br i1 %t63, label %range9970, label %inrange9971 -range9970: - call void @finch_panic_index(ptr @.str.6742, i64 138, i64 %t60, i64 %t62) + br i1 %t63, label %range10375, label %inrange10376 +range10375: + call void @finch_panic_index(ptr @.str.6950, i64 138, i64 %t60, i64 %t62) unreachable -inrange9971: +inrange10376: %t64 = extractvalue { ptr, i64, i64 } %t61, 0 %t65 = getelementptr inbounds i8, ptr %t64, i64 %t60 %t66 = load i8, ptr %t65 call void @finch_str_from_char(ptr %a67, i8 signext %t66) %t68 = load { ptr, i64, i64 }, ptr %a67 - store { ptr, i64, i64 } { ptr @.str.6741, i64 1, i64 0 }, ptr %a70 + store { ptr, i64, i64 } { ptr @.str.6949, i64 1, i64 0 }, ptr %a70 store { ptr, i64, i64 } %t68, ptr %a71 call void @finch_str_concat(ptr %a69, ptr %a70, ptr %a71) store { ptr, i64, i64 } %t68, ptr %a72 @@ -102350,11 +106375,11 @@ inrange9971: %t76 = load { ptr, i64, i64 }, ptr %a2 %t77 = extractvalue { ptr, i64, i64 } %t76, 1 %t78 = icmp uge i64 %t75, %t77 - br i1 %t78, label %range9972, label %inrange9973 -range9972: - call void @finch_panic_index(ptr @.str.6743, i64 138, i64 %t75, i64 %t77) + br i1 %t78, label %range10377, label %inrange10378 +range10377: + call void @finch_panic_index(ptr @.str.6951, i64 138, i64 %t75, i64 %t77) unreachable -inrange9973: +inrange10378: %t79 = extractvalue { ptr, i64, i64 } %t76, 0 %t80 = getelementptr inbounds i8, ptr %t79, i64 %t75 %t81 = load i8, ptr %t80 @@ -102375,17 +106400,17 @@ inrange9973: %t93 = getelementptr inbounds { ptr, i64, i64 }, ptr %t92, i64 %t90 store { ptr, i64, i64 } %t89, ptr %t93 store i64 %t91, ptr %t57 - br label %endif9969 -endif9969: - br label %each.step9941 -each.step9941: + br label %endif10374 +endif10374: + br label %each.step10346 +each.step10346: %t94 = load i64, ptr %a10 %t95 = add i64 %t94, 1 store i64 %t95, ptr %a10 - br label %each.cond9939 -each.end9942: + br label %each.cond10344 +each.end10347: %t96 = getelementptr inbounds { ptr, i64, i64 }, ptr %a9, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.6744, i64 0, i64 0 }, ptr %a97 + store { ptr, i64, i64 } { ptr @.str.6952, i64 0, i64 0 }, ptr %a97 call void @finch_str_join(ptr %a98, ptr %a9, ptr %a97) %t99 = load { ptr, i64, i64 }, ptr %a98 call void @finch.drop.arr_str(ptr %a9) @@ -102405,80 +106430,80 @@ entry: store { ptr, i64, i64 } %p0, ptr %a1 store { ptr, i64, i64 } zeroinitializer, ptr %a2 store i64 0, ptr %a3 - br label %while.cond9974 -while.cond9974: + br label %while.cond10379 +while.cond10379: %t4 = load i64, ptr %a3 %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t6 = load i64, ptr %t5 %t7 = icmp slt i64 %t4, %t6 - br i1 %t7, label %while.body9975, label %while.end9976 -while.body9975: + br i1 %t7, label %while.body10380, label %while.end10381 +while.body10380: %t8 = load i64, ptr %a3 %t9 = load { ptr, i64, i64 }, ptr %a1 %t10 = extractvalue { ptr, i64, i64 } %t9, 1 %t11 = icmp uge i64 %t8, %t10 - br i1 %t11, label %range9977, label %inrange9978 -range9977: - call void @finch_panic_index(ptr @.str.6745, i64 149, i64 %t8, i64 %t10) + br i1 %t11, label %range10382, label %inrange10383 +range10382: + call void @finch_panic_index(ptr @.str.6953, i64 149, i64 %t8, i64 %t10) unreachable -inrange9978: +inrange10383: %t12 = extractvalue { ptr, i64, i64 } %t9, 0 %t13 = getelementptr inbounds i8, ptr %t12, i64 %t8 %t14 = load i8, ptr %t13 %t15 = icmp eq i8 %t14, 92 - br label %logic.from9979 -logic.from9979: - br i1 %t15, label %logic.rhs9980, label %logic.end9981 -logic.rhs9980: + br label %logic.from10384 +logic.from10384: + br i1 %t15, label %logic.rhs10385, label %logic.end10386 +logic.rhs10385: %t16 = load i64, ptr %a3 %t17 = add i64 %t16, 1 %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t19 = load i64, ptr %t18 %t20 = icmp slt i64 %t17, %t19 - br label %logic.rend9982 -logic.rend9982: - br label %logic.end9981 -logic.end9981: - %t21 = phi i1 [ false, %logic.from9979 ], [ %t20, %logic.rend9982 ] - br i1 %t21, label %then9983, label %else9984 -then9983: + br label %logic.rend10387 +logic.rend10387: + br label %logic.end10386 +logic.end10386: + %t21 = phi i1 [ false, %logic.from10384 ], [ %t20, %logic.rend10387 ] + br i1 %t21, label %then10388, label %else10389 +then10388: %t22 = load i64, ptr %a3 %t23 = add i64 %t22, 1 %t24 = load { ptr, i64, i64 }, ptr %a1 %t25 = extractvalue { ptr, i64, i64 } %t24, 1 %t26 = icmp uge i64 %t23, %t25 - br i1 %t26, label %range9986, label %inrange9987 -range9986: - call void @finch_panic_index(ptr @.str.6746, i64 150, i64 %t23, i64 %t25) + br i1 %t26, label %range10391, label %inrange10392 +range10391: + call void @finch_panic_index(ptr @.str.6954, i64 150, i64 %t23, i64 %t25) unreachable -inrange9987: +inrange10392: %t27 = extractvalue { ptr, i64, i64 } %t24, 0 %t28 = getelementptr inbounds i8, ptr %t27, i64 %t23 %t29 = load i8, ptr %t28 %t30 = icmp eq i8 %t29, 110 - br i1 %t30, label %then9988, label %else9989 -then9988: + br i1 %t30, label %then10393, label %else10394 +then10393: %t31 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t32 = load i64, ptr %t31 %t33 = add i64 %t32, 1 call void @finch_arr_reserve(ptr %a2, i64 %t33, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t34 = load ptr, ptr %a2 %t35 = getelementptr inbounds { ptr, i64, i64 }, ptr %t34, i64 %t32 - store { ptr, i64, i64 } { ptr @.str.6747, i64 1, i64 0 }, ptr %t35 + store { ptr, i64, i64 } { ptr @.str.6955, i64 1, i64 0 }, ptr %t35 store i64 %t33, ptr %t31 - br label %endif9990 -else9989: + br label %endif10395 +else10394: %t36 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t37 = load i64, ptr %a3 %t38 = add i64 %t37, 1 %t39 = load { ptr, i64, i64 }, ptr %a1 %t40 = extractvalue { ptr, i64, i64 } %t39, 1 %t41 = icmp uge i64 %t38, %t40 - br i1 %t41, label %range9991, label %inrange9992 -range9991: - call void @finch_panic_index(ptr @.str.6748, i64 153, i64 %t38, i64 %t40) + br i1 %t41, label %range10396, label %inrange10397 +range10396: + call void @finch_panic_index(ptr @.str.6956, i64 153, i64 %t38, i64 %t40) unreachable -inrange9992: +inrange10397: %t42 = extractvalue { ptr, i64, i64 } %t39, 0 %t43 = getelementptr inbounds i8, ptr %t42, i64 %t38 %t44 = load i8, ptr %t43 @@ -102491,23 +106516,23 @@ inrange9992: %t50 = getelementptr inbounds { ptr, i64, i64 }, ptr %t49, i64 %t47 store { ptr, i64, i64 } %t46, ptr %t50 store i64 %t48, ptr %t36 - br label %endif9990 -endif9990: + br label %endif10395 +endif10395: %t51 = load i64, ptr %a3 %t52 = add i64 %t51, 2 store i64 %t52, ptr %a3 - br label %endif9985 -else9984: + br label %endif10390 +else10389: %t53 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t54 = load i64, ptr %a3 %t55 = load { ptr, i64, i64 }, ptr %a1 %t56 = extractvalue { ptr, i64, i64 } %t55, 1 %t57 = icmp uge i64 %t54, %t56 - br i1 %t57, label %range9993, label %inrange9994 -range9993: - call void @finch_panic_index(ptr @.str.6749, i64 157, i64 %t54, i64 %t56) + br i1 %t57, label %range10398, label %inrange10399 +range10398: + call void @finch_panic_index(ptr @.str.6957, i64 157, i64 %t54, i64 %t56) unreachable -inrange9994: +inrange10399: %t58 = extractvalue { ptr, i64, i64 } %t55, 0 %t59 = getelementptr inbounds i8, ptr %t58, i64 %t54 %t60 = load i8, ptr %t59 @@ -102523,12 +106548,12 @@ inrange9994: %t67 = load i64, ptr %a3 %t68 = add i64 %t67, 1 store i64 %t68, ptr %a3 - br label %endif9985 -endif9985: - br label %while.cond9974 -while.end9976: + br label %endif10390 +endif10390: + br label %while.cond10379 +while.end10381: %t69 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.6750, i64 0, i64 0 }, ptr %a70 + store { ptr, i64, i64 } { ptr @.str.6958, i64 0, i64 0 }, ptr %a70 call void @finch_str_join(ptr %a71, ptr %a2, ptr %a70) %t72 = load { ptr, i64, i64 }, ptr %a71 call void @finch.drop.arr_str(ptr %a2) @@ -102550,37 +106575,37 @@ entry: store i64 %p1, ptr %a2 %t3 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t3, ptr %a4 - store { ptr, i64, i64 } { ptr @.str.6752, i64 1, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.6960, i64 1, i64 0 }, ptr %a6 call void @finch_str_split(ptr %a7, ptr %a4, ptr %a6) %t8 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t8, ptr %a9 %t10 = load i64, ptr %a2 %t11 = icmp sge i64 %t10, 1 - br label %logic.from9995 -logic.from9995: - br i1 %t11, label %logic.rhs9996, label %logic.end9997 -logic.rhs9996: + br label %logic.from10400 +logic.from10400: + br i1 %t11, label %logic.rhs10401, label %logic.end10402 +logic.rhs10401: %t12 = load i64, ptr %a2 %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %a9, i32 0, i32 1 %t14 = load i64, ptr %t13 %t15 = icmp sle i64 %t12, %t14 - br label %logic.rend9998 -logic.rend9998: - br label %logic.end9997 -logic.end9997: - %t16 = phi i1 [ false, %logic.from9995 ], [ %t15, %logic.rend9998 ] - br i1 %t16, label %then9999, label %endif10001 -then9999: + br label %logic.rend10403 +logic.rend10403: + br label %logic.end10402 +logic.end10402: + %t16 = phi i1 [ false, %logic.from10400 ], [ %t15, %logic.rend10403 ] + br i1 %t16, label %then10404, label %endif10406 +then10404: %t17 = load i64, ptr %a2 %t18 = sub i64 %t17, 1 %t19 = load { ptr, i64, i64 }, ptr %a9 %t20 = extractvalue { ptr, i64, i64 } %t19, 1 %t21 = icmp uge i64 %t18, %t20 - br i1 %t21, label %range10002, label %inrange10003 -range10002: - call void @finch_panic_index(ptr @.str.6753, i64 167, i64 %t18, i64 %t20) + br i1 %t21, label %range10407, label %inrange10408 +range10407: + call void @finch_panic_index(ptr @.str.6961, i64 167, i64 %t18, i64 %t20) unreachable -inrange10003: +inrange10408: %t22 = extractvalue { ptr, i64, i64 } %t19, 0 %t23 = getelementptr inbounds { ptr, i64, i64 }, ptr %t22, i64 %t18 %t24 = load { ptr, i64, i64 }, ptr %t23 @@ -102589,9 +106614,9 @@ inrange10003: %t27 = load { ptr, i64, i64 }, ptr %a26 call void @finch.drop.arr_str(ptr %a9) ret { ptr, i64, i64 } %t27 -endif10001: +endif10406: call void @finch.drop.arr_str(ptr %a9) - ret { ptr, i64, i64 } { ptr @.str.6754, i64 0, i64 0 } + ret { ptr, i64, i64 } { ptr @.str.6962, i64 0, i64 0 } } define internal { ptr, i64, i64 } @finch.lsp.readLine() { @@ -102608,25 +106633,25 @@ entry: %a28 = alloca { ptr, i64, i64 }, align 16 %a34 = alloca { ptr, i64, i64 }, align 16 store { ptr, i64, i64 } zeroinitializer, ptr %a1 - br label %while.cond10004 -while.cond10004: - br label %while.body10005 -while.body10005: + br label %while.cond10409 +while.cond10409: + br label %while.body10410 +while.body10410: %t2 = call i32 @getchar() store i32 %t2, ptr %a3 %t4 = load i32, ptr %a3 %t5 = icmp slt i32 %t4, 0 - br i1 %t5, label %then10007, label %endif10009 -then10007: + br i1 %t5, label %then10412, label %endif10414 +then10412: call void @finch.drop.arr_u8(ptr %a1) - ret { ptr, i64, i64 } { ptr @.str.6755, i64 0, i64 0 } -endif10009: + ret { ptr, i64, i64 } { ptr @.str.6963, i64 0, i64 0 } +endif10414: %t6 = load i32, ptr %a3 %t7 = icmp eq i32 %t6, 10 - br i1 %t7, label %then10010, label %endif10012 -then10010: - br label %while.end10006 -endif10012: + br i1 %t7, label %then10415, label %endif10417 +then10415: + br label %while.end10411 +endif10417: %t8 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t9 = load i32, ptr %a3 %t10 = trunc i32 %t9 to i8 @@ -102637,8 +106662,8 @@ endif10012: %t14 = getelementptr inbounds i8, ptr %t13, i64 %t11 store i8 %t10, ptr %t14 store i64 %t12, ptr %t8 - br label %while.cond10004 -while.end10006: + br label %while.cond10409 +while.end10411: %t15 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } zeroinitializer, ptr %a16 store { ptr, i64, i64 } %t15, ptr %a17 @@ -102647,24 +106672,24 @@ while.end10006: store { ptr, i64, i64 } %t18, ptr %a19 %t20 = load { ptr, i64, i64 }, ptr %a19 store { ptr, i64, i64 } %t20, ptr %a21 - store { ptr, i64, i64 } { ptr @.str.6757, i64 1, i64 0 }, ptr %a23 + store { ptr, i64, i64 } { ptr @.str.6965, i64 1, i64 0 }, ptr %a23 %t24 = call i32 @finch_str_ends(ptr %a21, ptr %a23) %t25 = icmp ne i32 %t24, 0 - br i1 %t25, label %then10013, label %endif10015 -then10013: + br i1 %t25, label %then10418, label %endif10420 +then10418: %t26 = load { ptr, i64, i64 }, ptr %a19 store { ptr, i64, i64 } %t26, ptr %a27 %t29 = getelementptr inbounds { ptr, i64, i64 }, ptr %a19, i32 0, i32 1 %t30 = load i64, ptr %t29 %t31 = sub i64 %t30, 1 - call void @finch_str_sub(ptr %a28, ptr %a27, i64 0, i64 %t31, ptr @.str.6758, i64 188) + call void @finch_str_sub(ptr %a28, ptr %a27, i64 0, i64 %t31, ptr @.str.6966, i64 188) %t32 = load { ptr, i64, i64 }, ptr %a28 %t33 = load { ptr, i64, i64 }, ptr %a19 store { ptr, i64, i64 } %t32, ptr %a19 store { ptr, i64, i64 } %t33, ptr %a34 call void @finch_str_drop(ptr %a34) - br label %endif10015 -endif10015: + br label %endif10420 +endif10420: %t35 = load { ptr, i64, i64 }, ptr %a19 call void @finch.drop.arr_u8(ptr %a1) ret { ptr, i64, i64 } %t35 @@ -102694,48 +106719,48 @@ entry: %a60 = alloca { ptr, i64, i64 }, align 16 %a67 = alloca { ptr, i64, i64 }, align 16 store i64 0, ptr %a1 - br label %while.cond10016 -while.cond10016: - br label %while.body10017 -while.body10017: + br label %while.cond10421 +while.cond10421: + br label %while.body10422 +while.body10422: %t2 = call { ptr, i64, i64 } @finch.lsp.readLine() store { ptr, i64, i64 } %t2, ptr %a3 %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %a3, i32 0, i32 1 %t5 = load i64, ptr %t4 %t6 = icmp eq i64 %t5, 0 - br i1 %t6, label %then10019, label %endif10021 -then10019: + br i1 %t6, label %then10424, label %endif10426 +then10424: %t7 = load i64, ptr %a1 %t8 = icmp sgt i64 %t7, 0 - br i1 %t8, label %then10022, label %endif10024 -then10022: + br i1 %t8, label %then10427, label %endif10429 +then10427: call void @finch_str_drop(ptr %a3) - br label %while.end10018 -endif10024: + br label %while.end10423 +endif10429: %t9 = load ptr, ptr @stdin %t10 = call i32 @feof(ptr %t9) %t11 = icmp ne i32 %t10, 0 - br i1 %t11, label %then10025, label %endif10027 -then10025: + br i1 %t11, label %then10430, label %endif10432 +then10430: call void @finch_str_drop(ptr %a3) - %t12 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } { ptr @.str.6759, i64 32, i64 0 }, 2 + %t12 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } { ptr @.str.6967, i64 32, i64 0 }, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t12 -endif10027: +endif10432: call void @finch_str_drop(ptr %a3) - br label %while.cond10016 -endif10021: + br label %while.cond10421 +endif10426: %t13 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t13, ptr %a14 - store { ptr, i64, i64 } { ptr @.str.6761, i64 15, i64 0 }, ptr %a16 + store { ptr, i64, i64 } { ptr @.str.6969, i64 15, i64 0 }, ptr %a16 %t17 = call i32 @finch_str_starts(ptr %a14, ptr %a16) %t18 = icmp ne i32 %t17, 0 - br i1 %t18, label %then10028, label %endif10030 -then10028: + br i1 %t18, label %then10433, label %endif10435 +then10433: %t19 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t19, ptr %a20 %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %a3, i32 0, i32 1 %t23 = load i64, ptr %t22 - call void @finch_str_sub(ptr %a21, ptr %a20, i64 15, i64 %t23, ptr @.str.6762, i64 208) + call void @finch_str_sub(ptr %a21, ptr %a20, i64 15, i64 %t23, ptr @.str.6970, i64 208) %t24 = load { ptr, i64, i64 }, ptr %a21 store { ptr, i64, i64 } %t24, ptr %a25 call void @finch_str_trim(ptr %a26, ptr %a25) @@ -102751,42 +106776,42 @@ then10028: store { ptr, i64, i64 } %t27, ptr %a35 call void @finch_str_drop(ptr %a35) %t36 = load i64, ptr %a30 - br i1 %t33, label %or.failed10031, label %or.ok10032 -or.failed10031: + br i1 %t33, label %or.failed10436, label %or.ok10437 +or.failed10436: store { ptr, i64, i64 } %t34, ptr %a37 call void @finch_str_drop(ptr %a37) - br label %or.bend10033 -or.bend10033: - br label %or.end10034 -or.ok10032: - br label %or.end10034 -or.end10034: - %t38 = phi i64 [ 0, %or.bend10033 ], [ %t36, %or.ok10032 ] + br label %or.bend10438 +or.bend10438: + br label %or.end10439 +or.ok10437: + br label %or.end10439 +or.end10439: + %t38 = phi i64 [ 0, %or.bend10438 ], [ %t36, %or.ok10437 ] store i64 %t38, ptr %a1 - br label %endif10030 -endif10030: + br label %endif10435 +endif10435: call void @finch_str_drop(ptr %a3) - br label %while.cond10016 -while.end10018: + br label %while.cond10421 +while.end10423: store { ptr, i64, i64 } zeroinitializer, ptr %a39 %t40 = load i64, ptr %a1 store i64 0, ptr %a41 - br label %for.cond10035 -for.cond10035: + br label %for.cond10440 +for.cond10440: %t42 = load i64, ptr %a41 %t43 = icmp slt i64 %t42, %t40 - br i1 %t43, label %for.body10036, label %for.end10038 -for.body10036: + br i1 %t43, label %for.body10441, label %for.end10443 +for.body10441: %t44 = call i32 @getchar() store i32 %t44, ptr %a45 %t46 = load i32, ptr %a45 %t47 = icmp slt i32 %t46, 0 - br i1 %t47, label %then10039, label %endif10041 -then10039: + br i1 %t47, label %then10444, label %endif10446 +then10444: call void @finch.drop.arr_u8(ptr %a39) - %t48 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } { ptr @.str.6764, i64 25, i64 0 }, 2 + %t48 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } { ptr @.str.6972, i64 25, i64 0 }, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t48 -endif10041: +endif10446: %t49 = getelementptr inbounds { ptr, i64, i64 }, ptr %a39, i32 0, i32 1 %t50 = load i32, ptr %a45 %t51 = trunc i32 %t50 to i8 @@ -102797,13 +106822,13 @@ endif10041: %t55 = getelementptr inbounds i8, ptr %t54, i64 %t52 store i8 %t51, ptr %t55 store i64 %t53, ptr %t49 - br label %for.step10037 -for.step10037: + br label %for.step10442 +for.step10442: %t56 = load i64, ptr %a41 %t57 = add i64 %t56, 1 store i64 %t57, ptr %a41 - br label %for.cond10035 -for.end10038: + br label %for.cond10440 +for.end10443: %t58 = load { ptr, i64, i64 }, ptr %a39 store { ptr, i64, i64 } zeroinitializer, ptr %a59 store { ptr, i64, i64 } %t58, ptr %a60 @@ -102816,12 +106841,12 @@ for.end10038: %t66 = extractvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t62, 1 store { ptr, i64, i64 } %t61, ptr %a67 call void @finch_str_drop(ptr %a67) - br i1 %t64, label %try.failed10042, label %try.ok10043 -try.failed10042: + br i1 %t64, label %try.failed10447, label %try.ok10448 +try.failed10447: call void @finch.drop.arr_u8(ptr %a39) %t68 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t65, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t68 -try.ok10043: +try.ok10448: call void @finch.drop.arr_u8(ptr %a39) %t69 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 %t70 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t69, %S.json.Json %t66, 1 @@ -102854,14 +106879,14 @@ entry: %t6 = load i64, ptr %t5 call void @finch_str_from_int(ptr %a7, i64 %t6) %t8 = load { ptr, i64, i64 }, ptr %a7 - store { ptr, i64, i64 } { ptr @.str.6765, i64 16, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.6973, i64 16, i64 0 }, ptr %a10 store { ptr, i64, i64 } %t8, ptr %a11 call void @finch_str_concat(ptr %a9, ptr %a10, ptr %a11) store { ptr, i64, i64 } %t8, ptr %a12 call void @finch_str_drop(ptr %a12) %t13 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t13, ptr %a15 - store { ptr, i64, i64 } { ptr @.str.6766, i64 4, i64 0 }, ptr %a16 + store { ptr, i64, i64 } { ptr @.str.6974, i64 4, i64 0 }, ptr %a16 call void @finch_str_concat(ptr %a14, ptr %a15, ptr %a16) store { ptr, i64, i64 } %t13, ptr %a17 call void @finch_str_drop(ptr %a17) @@ -102877,7 +106902,7 @@ entry: %t27 = load { ptr, i64, i64 }, ptr %a26 %t28 = extractvalue { ptr, i64, i64 } %t27, 0 %t29 = icmp eq ptr %t28, null - %t30 = select i1 %t29, ptr @.str.6767, ptr %t28 + %t30 = select i1 %t29, ptr @.str.6975, ptr %t28 %t31 = getelementptr inbounds { ptr, i64, i64 }, ptr %a26, i32 0, i32 1 %t32 = load i64, ptr %t31 %t33 = load ptr, ptr @stdout @@ -102897,19 +106922,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond10044 -n.cond10044: + br label %n.cond10449 +n.cond10449: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body10045, label %n.end10046 -n.body10045: + br i1 %t6, label %n.body10450, label %n.end10451 +n.body10450: %t7 = getelementptr inbounds %S.json.Json, ptr %t1, i64 %t5 call void @finch.drop.S_json_Json(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond10044 -n.end10046: + br label %n.cond10449 +n.end10451: call void @finch_arr_free(ptr %a) ret void } @@ -102936,14 +106961,14 @@ entry: store %S.json.Json %p1, ptr %a2 %t3 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t3, ptr %a4 - %t5 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.6769, i64 3, i64 0 }) - call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6768, i64 7, i64 0 }, %S.json.Json %t5) + %t5 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.6977, i64 3, i64 0 }) + call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6976, i64 7, i64 0 }, %S.json.Json %t5) store %S.json.Json %t5, ptr %a6 call void @finch.drop.S_json_Json(ptr %a6) %t7 = load %S.json.Json, ptr %a1 - call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6770, i64 2, i64 0 }, %S.json.Json %t7) + call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6978, i64 2, i64 0 }, %S.json.Json %t7) %t8 = load %S.json.Json, ptr %a2 - call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6771, i64 6, i64 0 }, %S.json.Json %t8) + call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6979, i64 6, i64 0 }, %S.json.Json %t8) %t9 = load %S.json.Json, ptr %a4 call void @finch.lsp.send(%S.json.Json %t9) call void @finch.drop.S_json_Json(ptr %a4) @@ -102961,17 +106986,17 @@ entry: store %S.json.Json %p1, ptr %a2 %t3 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t3, ptr %a4 - %t5 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.6773, i64 3, i64 0 }) - call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6772, i64 7, i64 0 }, %S.json.Json %t5) + %t5 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.6981, i64 3, i64 0 }) + call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6980, i64 7, i64 0 }, %S.json.Json %t5) store %S.json.Json %t5, ptr %a6 call void @finch.drop.S_json_Json(ptr %a6) %t7 = load { ptr, i64, i64 }, ptr %a1 %t8 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t7) - call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6774, i64 6, i64 0 }, %S.json.Json %t8) + call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6982, i64 6, i64 0 }, %S.json.Json %t8) store %S.json.Json %t8, ptr %a9 call void @finch.drop.S_json_Json(ptr %a9) %t10 = load %S.json.Json, ptr %a2 - call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6775, i64 6, i64 0 }, %S.json.Json %t10) + call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6983, i64 6, i64 0 }, %S.json.Json %t10) %t11 = load %S.json.Json, ptr %a4 call void @finch.lsp.send(%S.json.Json %t11) call void @finch.drop.S_json_Json(ptr %a4) @@ -103001,12 +107026,12 @@ entry: store %S.json.Json %t3, ptr %a4 %t5 = load i64, ptr %a1 %t6 = call %S.json.Json @finch.lsp.num(i64 %t5) - call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6776, i64 4, i64 0 }, %S.json.Json %t6) + call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6984, i64 4, i64 0 }, %S.json.Json %t6) store %S.json.Json %t6, ptr %a7 call void @finch.drop.S_json_Json(ptr %a7) %t8 = load i64, ptr %a2 %t9 = call %S.json.Json @finch.lsp.num(i64 %t8) - call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6777, i64 9, i64 0 }, %S.json.Json %t9) + call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6985, i64 9, i64 0 }, %S.json.Json %t9) store %S.json.Json %t9, ptr %a10 call void @finch.drop.S_json_Json(ptr %a10) %t11 = load %S.json.Json, ptr %a4 @@ -103029,13 +107054,13 @@ entry: %t6 = load i64, ptr %a1 %t7 = load i64, ptr %a2 %t8 = call %S.json.Json @finch.lsp.position(i64 %t6, i64 %t7) - call void @finch.json.Json.set(ptr %a5, { ptr, i64, i64 } { ptr @.str.6778, i64 5, i64 0 }, %S.json.Json %t8) + call void @finch.json.Json.set(ptr %a5, { ptr, i64, i64 } { ptr @.str.6986, i64 5, i64 0 }, %S.json.Json %t8) store %S.json.Json %t8, ptr %a9 call void @finch.drop.S_json_Json(ptr %a9) %t10 = load i64, ptr %a1 %t11 = load i64, ptr %a3 %t12 = call %S.json.Json @finch.lsp.position(i64 %t10, i64 %t11) - call void @finch.json.Json.set(ptr %a5, { ptr, i64, i64 } { ptr @.str.6779, i64 3, i64 0 }, %S.json.Json %t12) + call void @finch.json.Json.set(ptr %a5, { ptr, i64, i64 } { ptr @.str.6987, i64 3, i64 0 }, %S.json.Json %t12) store %S.json.Json %t12, ptr %a13 call void @finch.drop.S_json_Json(ptr %a13) %t14 = load %S.json.Json, ptr %a5 @@ -103052,7 +107077,7 @@ entry: store { ptr, i64, i64 } %p0, ptr %a1 %t2 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t2, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.6781, i64 1, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.6989, i64 1, i64 0 }, ptr %a5 call void @finch_str_split(ptr %a6, ptr %a3, ptr %a5) %t7 = load { ptr, i64, i64 }, ptr %a6 ret { ptr, i64, i64 } %t7 @@ -103074,17 +107099,17 @@ entry: %t7 = icmp eq i32 %t6, 0 %t8 = load { ptr, i64, i64 }, ptr %a3 %t9 = load i64, ptr %a4 - br i1 %t7, label %or.failed10047, label %or.ok10048 -or.failed10047: + br i1 %t7, label %or.failed10452, label %or.ok10453 +or.failed10452: store { ptr, i64, i64 } %t8, ptr %a10 call void @finch_str_drop(ptr %a10) - br label %or.bend10049 -or.bend10049: - br label %or.end10050 -or.ok10048: - br label %or.end10050 -or.end10050: - %t11 = phi i64 [ 0, %or.bend10049 ], [ %t9, %or.ok10048 ] + br label %or.bend10454 +or.bend10454: + br label %or.end10455 +or.ok10453: + br label %or.end10455 +or.end10455: + %t11 = phi i64 [ 0, %or.bend10454 ], [ %t9, %or.ok10453 ] ret i64 %t11 } @@ -103119,19 +107144,19 @@ entry: store { ptr, i64, i64 } %p0, ptr %a1 %t2 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t2, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.6783, i64 9, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.6991, i64 9, i64 0 }, ptr %a5 %t6 = call i64 @finch_str_find(ptr %a3, ptr %a5) store i64 %t6, ptr %a7 %t8 = load i64, ptr %a7 %t9 = icmp slt i64 %t8, 0 - br i1 %t9, label %then10051, label %endif10053 -then10051: + br i1 %t9, label %then10456, label %endif10458 +then10456: ret %S.lsp.Diag zeroinitializer -endif10053: +endif10458: %t10 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t10, ptr %a11 %t13 = load i64, ptr %a7 - call void @finch_str_sub(ptr %a12, ptr %a11, i64 0, i64 %t13, ptr @.str.6784, i64 280) + call void @finch_str_sub(ptr %a12, ptr %a11, i64 0, i64 %t13, ptr @.str.6992, i64 280) %t14 = load { ptr, i64, i64 }, ptr %a12 store { ptr, i64, i64 } %t14, ptr %a15 %t16 = load { ptr, i64, i64 }, ptr %a1 @@ -103140,36 +107165,36 @@ endif10053: %t20 = add i64 %t19, 9 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t22 = load i64, ptr %t21 - call void @finch_str_sub(ptr %a18, ptr %a17, i64 %t20, i64 %t22, ptr @.str.6785, i64 281) + call void @finch_str_sub(ptr %a18, ptr %a17, i64 %t20, i64 %t22, ptr @.str.6993, i64 281) %t23 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t23, ptr %a24 %t25 = load { ptr, i64, i64 }, ptr %a15 store { ptr, i64, i64 } %t25, ptr %a26 - store { ptr, i64, i64 } { ptr @.str.6787, i64 1, i64 0 }, ptr %a28 + store { ptr, i64, i64 } { ptr @.str.6995, i64 1, i64 0 }, ptr %a28 call void @finch_str_split(ptr %a29, ptr %a26, ptr %a28) %t30 = load { ptr, i64, i64 }, ptr %a29 store { ptr, i64, i64 } %t30, ptr %a31 %t32 = getelementptr inbounds { ptr, i64, i64 }, ptr %a31, i32 0, i32 1 %t33 = load i64, ptr %t32 %t34 = icmp slt i64 %t33, 3 - br i1 %t34, label %then10054, label %endif10056 -then10054: + br i1 %t34, label %then10459, label %endif10461 +then10459: call void @finch.drop.arr_str(ptr %a31) call void @finch_str_drop(ptr %a24) call void @finch_str_drop(ptr %a15) ret %S.lsp.Diag zeroinitializer -endif10056: +endif10461: %t35 = getelementptr inbounds { ptr, i64, i64 }, ptr %a31, i32 0, i32 1 %t36 = load i64, ptr %t35 %t37 = sub i64 %t36, 1 %t38 = load { ptr, i64, i64 }, ptr %a31 %t39 = extractvalue { ptr, i64, i64 } %t38, 1 %t40 = icmp uge i64 %t37, %t39 - br i1 %t40, label %range10057, label %inrange10058 -range10057: - call void @finch_panic_index(ptr @.str.6788, i64 287, i64 %t37, i64 %t39) + br i1 %t40, label %range10462, label %inrange10463 +range10462: + call void @finch_panic_index(ptr @.str.6996, i64 287, i64 %t37, i64 %t39) unreachable -inrange10058: +inrange10463: %t41 = extractvalue { ptr, i64, i64 } %t38, 0 %t42 = getelementptr inbounds { ptr, i64, i64 }, ptr %t41, i64 %t37 %t43 = load { ptr, i64, i64 }, ptr %t42 @@ -103181,11 +107206,11 @@ inrange10058: %t49 = load { ptr, i64, i64 }, ptr %a31 %t50 = extractvalue { ptr, i64, i64 } %t49, 1 %t51 = icmp uge i64 %t48, %t50 - br i1 %t51, label %range10059, label %inrange10060 -range10059: - call void @finch_panic_index(ptr @.str.6789, i64 288, i64 %t48, i64 %t50) + br i1 %t51, label %range10464, label %inrange10465 +range10464: + call void @finch_panic_index(ptr @.str.6997, i64 288, i64 %t48, i64 %t50) unreachable -inrange10060: +inrange10465: %t52 = extractvalue { ptr, i64, i64 } %t49, 0 %t53 = getelementptr inbounds { ptr, i64, i64 }, ptr %t52, i64 %t48 %t54 = load { ptr, i64, i64 }, ptr %t53 @@ -103196,22 +107221,22 @@ inrange10060: %t59 = load i64, ptr %t58 %t60 = sub i64 %t59, 2 store i64 0, ptr %a61 - br label %for.cond10061 -for.cond10061: + br label %for.cond10466 +for.cond10466: %t62 = load i64, ptr %a61 %t63 = icmp slt i64 %t62, %t60 - br i1 %t63, label %for.body10062, label %for.end10064 -for.body10062: + br i1 %t63, label %for.body10467, label %for.end10469 +for.body10467: %t64 = getelementptr inbounds { ptr, i64, i64 }, ptr %a57, i32 0, i32 1 %t65 = load i64, ptr %a61 %t66 = load { ptr, i64, i64 }, ptr %a31 %t67 = extractvalue { ptr, i64, i64 } %t66, 1 %t68 = icmp uge i64 %t65, %t67 - br i1 %t68, label %range10065, label %inrange10066 -range10065: - call void @finch_panic_index(ptr @.str.6790, i64 291, i64 %t65, i64 %t67) + br i1 %t68, label %range10470, label %inrange10471 +range10470: + call void @finch_panic_index(ptr @.str.6998, i64 291, i64 %t65, i64 %t67) unreachable -inrange10066: +inrange10471: %t69 = extractvalue { ptr, i64, i64 } %t66, 0 %t70 = getelementptr inbounds { ptr, i64, i64 }, ptr %t69, i64 %t65 %t71 = load { ptr, i64, i64 }, ptr %t70 @@ -103225,16 +107250,16 @@ inrange10066: %t78 = getelementptr inbounds { ptr, i64, i64 }, ptr %t77, i64 %t75 store { ptr, i64, i64 } %t74, ptr %t78 store i64 %t76, ptr %t64 - br label %for.step10063 -for.step10063: + br label %for.step10468 +for.step10468: %t79 = load i64, ptr %a61 %t80 = add i64 %t79, 1 store i64 %t80, ptr %a61 - br label %for.cond10061 -for.end10064: + br label %for.cond10466 +for.end10469: %t81 = insertvalue %S.lsp.Diag zeroinitializer, i1 true, 0 %t82 = getelementptr inbounds { ptr, i64, i64 }, ptr %a57, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.6791, i64 1, i64 0 }, ptr %a83 + store { ptr, i64, i64 } { ptr @.str.6999, i64 1, i64 0 }, ptr %a83 call void @finch_str_join(ptr %a84, ptr %a57, ptr %a83) %t85 = load { ptr, i64, i64 }, ptr %a84 %t86 = insertvalue %S.lsp.Diag %t81, { ptr, i64, i64 } %t85, 1 @@ -103348,41 +107373,41 @@ entry: store %S.lsp.Analysis zeroinitializer, ptr %a2 %t3 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t3, ptr %a4 - store { ptr, i64, i64 } { ptr @.str.6793, i64 1, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.7001, i64 1, i64 0 }, ptr %a6 call void @finch_str_split(ptr %a7, ptr %a4, ptr %a6) %t8 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t8, ptr %a9 store i64 0, ptr %a10 - br label %each.cond10067 -each.cond10067: + br label %each.cond10472 +each.cond10472: %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %a9, i32 0, i32 1 %t12 = load i64, ptr %t11 %t13 = load i64, ptr %a10 %t14 = icmp slt i64 %t13, %t12 - br i1 %t14, label %each.body10068, label %each.end10070 -each.body10068: + br i1 %t14, label %each.body10473, label %each.end10475 +each.body10473: %t15 = load ptr, ptr %a9 %t16 = getelementptr inbounds { ptr, i64, i64 }, ptr %t15, i64 %t13 %t17 = load { ptr, i64, i64 }, ptr %t16 store { ptr, i64, i64 } %t17, ptr %a18 %t19 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t19, ptr %a20 - store { ptr, i64, i64 } { ptr @.str.6795, i64 1, i64 0 }, ptr %a22 + store { ptr, i64, i64 } { ptr @.str.7003, i64 1, i64 0 }, ptr %a22 %t23 = call i32 @finch_str_starts(ptr %a20, ptr %a22) %t24 = icmp ne i32 %t23, 0 - br i1 %t24, label %then10071, label %else10072 -then10071: + br i1 %t24, label %then10476, label %else10477 +then10476: %t25 = load { ptr, i64, i64 }, ptr %a18 %t26 = call { ptr, i64, i64 } @finch.lsp.splitTabs({ ptr, i64, i64 } %t25) store { ptr, i64, i64 } %t26, ptr %a27 %t28 = load { ptr, i64, i64 }, ptr %a27 %t29 = extractvalue { ptr, i64, i64 } %t28, 1 %t30 = icmp uge i64 0, %t29 - br i1 %t30, label %range10074, label %inrange10075 -range10074: - call void @finch_panic_index(ptr @.str.6796, i64 301, i64 0, i64 %t29) + br i1 %t30, label %range10479, label %inrange10480 +range10479: + call void @finch_panic_index(ptr @.str.7004, i64 301, i64 0, i64 %t29) unreachable -inrange10075: +inrange10480: %t31 = extractvalue { ptr, i64, i64 } %t28, 0 %t32 = getelementptr inbounds { ptr, i64, i64 }, ptr %t31, i64 0 %t33 = load { ptr, i64, i64 }, ptr %t32 @@ -103392,33 +107417,33 @@ inrange10075: store { ptr, i64, i64 } %t36, ptr %a37 %t38 = load { ptr, i64, i64 }, ptr %a37 store { ptr, i64, i64 } %t38, ptr %a39 - store { ptr, i64, i64 } { ptr @.str.6797, i64 2, i64 0 }, ptr %a40 + store { ptr, i64, i64 } { ptr @.str.7005, i64 2, i64 0 }, ptr %a40 %t41 = call i32 @finch_str_eq(ptr %a39, ptr %a40) %t42 = icmp ne i32 %t41, 0 - br label %logic.from10076 -logic.from10076: - br i1 %t42, label %logic.rhs10077, label %logic.end10078 -logic.rhs10077: + br label %logic.from10481 +logic.from10481: + br i1 %t42, label %logic.rhs10482, label %logic.end10483 +logic.rhs10482: %t43 = getelementptr inbounds { ptr, i64, i64 }, ptr %a27, i32 0, i32 1 %t44 = load i64, ptr %t43 %t45 = icmp sge i64 %t44, 9 - br label %logic.rend10079 -logic.rend10079: - br label %logic.end10078 -logic.end10078: - %t46 = phi i1 [ false, %logic.from10076 ], [ %t45, %logic.rend10079 ] - br i1 %t46, label %then10080, label %else10081 -then10080: + br label %logic.rend10484 +logic.rend10484: + br label %logic.end10483 +logic.end10483: + %t46 = phi i1 [ false, %logic.from10481 ], [ %t45, %logic.rend10484 ] + br i1 %t46, label %then10485, label %else10486 +then10485: %t47 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 0 %t48 = getelementptr inbounds { ptr, i64, i64 }, ptr %t47, i32 0, i32 1 %t49 = load { ptr, i64, i64 }, ptr %a27 %t50 = extractvalue { ptr, i64, i64 } %t49, 1 %t51 = icmp uge i64 1, %t50 - br i1 %t51, label %range10083, label %inrange10084 -range10083: - call void @finch_panic_index(ptr @.str.6798, i64 303, i64 1, i64 %t50) + br i1 %t51, label %range10488, label %inrange10489 +range10488: + call void @finch_panic_index(ptr @.str.7006, i64 303, i64 1, i64 %t50) unreachable -inrange10084: +inrange10489: %t52 = extractvalue { ptr, i64, i64 } %t49, 0 %t53 = getelementptr inbounds { ptr, i64, i64 }, ptr %t52, i64 1 %t54 = load { ptr, i64, i64 }, ptr %t53 @@ -103429,11 +107454,11 @@ inrange10084: %t59 = load { ptr, i64, i64 }, ptr %a27 %t60 = extractvalue { ptr, i64, i64 } %t59, 1 %t61 = icmp uge i64 2, %t60 - br i1 %t61, label %range10085, label %inrange10086 -range10085: - call void @finch_panic_index(ptr @.str.6799, i64 303, i64 2, i64 %t60) + br i1 %t61, label %range10490, label %inrange10491 +range10490: + call void @finch_panic_index(ptr @.str.7007, i64 303, i64 2, i64 %t60) unreachable -inrange10086: +inrange10491: %t62 = extractvalue { ptr, i64, i64 } %t59, 0 %t63 = getelementptr inbounds { ptr, i64, i64 }, ptr %t62, i64 2 %t64 = load { ptr, i64, i64 }, ptr %t63 @@ -103442,11 +107467,11 @@ inrange10086: %t67 = load { ptr, i64, i64 }, ptr %a27 %t68 = extractvalue { ptr, i64, i64 } %t67, 1 %t69 = icmp uge i64 3, %t68 - br i1 %t69, label %range10087, label %inrange10088 -range10087: - call void @finch_panic_index(ptr @.str.6800, i64 303, i64 3, i64 %t68) + br i1 %t69, label %range10492, label %inrange10493 +range10492: + call void @finch_panic_index(ptr @.str.7008, i64 303, i64 3, i64 %t68) unreachable -inrange10088: +inrange10493: %t70 = extractvalue { ptr, i64, i64 } %t67, 0 %t71 = getelementptr inbounds { ptr, i64, i64 }, ptr %t70, i64 3 %t72 = load { ptr, i64, i64 }, ptr %t71 @@ -103455,11 +107480,11 @@ inrange10088: %t75 = load { ptr, i64, i64 }, ptr %a27 %t76 = extractvalue { ptr, i64, i64 } %t75, 1 %t77 = icmp uge i64 4, %t76 - br i1 %t77, label %range10089, label %inrange10090 -range10089: - call void @finch_panic_index(ptr @.str.6801, i64 303, i64 4, i64 %t76) + br i1 %t77, label %range10494, label %inrange10495 +range10494: + call void @finch_panic_index(ptr @.str.7009, i64 303, i64 4, i64 %t76) unreachable -inrange10090: +inrange10495: %t78 = extractvalue { ptr, i64, i64 } %t75, 0 %t79 = getelementptr inbounds { ptr, i64, i64 }, ptr %t78, i64 4 %t80 = load { ptr, i64, i64 }, ptr %t79 @@ -103468,11 +107493,11 @@ inrange10090: %t83 = load { ptr, i64, i64 }, ptr %a27 %t84 = extractvalue { ptr, i64, i64 } %t83, 1 %t85 = icmp uge i64 5, %t84 - br i1 %t85, label %range10091, label %inrange10092 -range10091: - call void @finch_panic_index(ptr @.str.6802, i64 303, i64 5, i64 %t84) + br i1 %t85, label %range10496, label %inrange10497 +range10496: + call void @finch_panic_index(ptr @.str.7010, i64 303, i64 5, i64 %t84) unreachable -inrange10092: +inrange10497: %t86 = extractvalue { ptr, i64, i64 } %t83, 0 %t87 = getelementptr inbounds { ptr, i64, i64 }, ptr %t86, i64 5 %t88 = load { ptr, i64, i64 }, ptr %t87 @@ -103483,11 +107508,11 @@ inrange10092: %t93 = load { ptr, i64, i64 }, ptr %a27 %t94 = extractvalue { ptr, i64, i64 } %t93, 1 %t95 = icmp uge i64 6, %t94 - br i1 %t95, label %range10093, label %inrange10094 -range10093: - call void @finch_panic_index(ptr @.str.6803, i64 303, i64 6, i64 %t94) + br i1 %t95, label %range10498, label %inrange10499 +range10498: + call void @finch_panic_index(ptr @.str.7011, i64 303, i64 6, i64 %t94) unreachable -inrange10094: +inrange10499: %t96 = extractvalue { ptr, i64, i64 } %t93, 0 %t97 = getelementptr inbounds { ptr, i64, i64 }, ptr %t96, i64 6 %t98 = load { ptr, i64, i64 }, ptr %t97 @@ -103496,11 +107521,11 @@ inrange10094: %t101 = load { ptr, i64, i64 }, ptr %a27 %t102 = extractvalue { ptr, i64, i64 } %t101, 1 %t103 = icmp uge i64 7, %t102 - br i1 %t103, label %range10095, label %inrange10096 -range10095: - call void @finch_panic_index(ptr @.str.6804, i64 303, i64 7, i64 %t102) + br i1 %t103, label %range10500, label %inrange10501 +range10500: + call void @finch_panic_index(ptr @.str.7012, i64 303, i64 7, i64 %t102) unreachable -inrange10096: +inrange10501: %t104 = extractvalue { ptr, i64, i64 } %t101, 0 %t105 = getelementptr inbounds { ptr, i64, i64 }, ptr %t104, i64 7 %t106 = load { ptr, i64, i64 }, ptr %t105 @@ -103509,11 +107534,11 @@ inrange10096: %t109 = load { ptr, i64, i64 }, ptr %a27 %t110 = extractvalue { ptr, i64, i64 } %t109, 1 %t111 = icmp uge i64 8, %t110 - br i1 %t111, label %range10097, label %inrange10098 -range10097: - call void @finch_panic_index(ptr @.str.6805, i64 303, i64 8, i64 %t110) + br i1 %t111, label %range10502, label %inrange10503 +range10502: + call void @finch_panic_index(ptr @.str.7013, i64 303, i64 8, i64 %t110) unreachable -inrange10098: +inrange10503: %t112 = extractvalue { ptr, i64, i64 } %t109, 0 %t113 = getelementptr inbounds { ptr, i64, i64 }, ptr %t112, i64 8 %t114 = load { ptr, i64, i64 }, ptr %t113 @@ -103526,37 +107551,37 @@ inrange10098: %t120 = getelementptr inbounds %S.lsp.Ref, ptr %t119, i64 %t117 store %S.lsp.Ref %t116, ptr %t120 store i64 %t118, ptr %t48 - br label %endif10082 -else10081: + br label %endif10487 +else10486: %t121 = load { ptr, i64, i64 }, ptr %a37 store { ptr, i64, i64 } %t121, ptr %a122 - store { ptr, i64, i64 } { ptr @.str.6806, i64 2, i64 0 }, ptr %a123 + store { ptr, i64, i64 } { ptr @.str.7014, i64 2, i64 0 }, ptr %a123 %t124 = call i32 @finch_str_eq(ptr %a122, ptr %a123) %t125 = icmp ne i32 %t124, 0 - br label %logic.from10099 -logic.from10099: - br i1 %t125, label %logic.rhs10100, label %logic.end10101 -logic.rhs10100: + br label %logic.from10504 +logic.from10504: + br i1 %t125, label %logic.rhs10505, label %logic.end10506 +logic.rhs10505: %t126 = getelementptr inbounds { ptr, i64, i64 }, ptr %a27, i32 0, i32 1 %t127 = load i64, ptr %t126 %t128 = icmp sge i64 %t127, 9 - br label %logic.rend10102 -logic.rend10102: - br label %logic.end10101 -logic.end10101: - %t129 = phi i1 [ false, %logic.from10099 ], [ %t128, %logic.rend10102 ] - br i1 %t129, label %then10103, label %else10104 -then10103: + br label %logic.rend10507 +logic.rend10507: + br label %logic.end10506 +logic.end10506: + %t129 = phi i1 [ false, %logic.from10504 ], [ %t128, %logic.rend10507 ] + br i1 %t129, label %then10508, label %else10509 +then10508: %t130 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 1 %t131 = getelementptr inbounds { ptr, i64, i64 }, ptr %t130, i32 0, i32 1 %t132 = load { ptr, i64, i64 }, ptr %a27 %t133 = extractvalue { ptr, i64, i64 } %t132, 1 %t134 = icmp uge i64 1, %t133 - br i1 %t134, label %range10106, label %inrange10107 -range10106: - call void @finch_panic_index(ptr @.str.6807, i64 305, i64 1, i64 %t133) + br i1 %t134, label %range10511, label %inrange10512 +range10511: + call void @finch_panic_index(ptr @.str.7015, i64 305, i64 1, i64 %t133) unreachable -inrange10107: +inrange10512: %t135 = extractvalue { ptr, i64, i64 } %t132, 0 %t136 = getelementptr inbounds { ptr, i64, i64 }, ptr %t135, i64 1 %t137 = load { ptr, i64, i64 }, ptr %t136 @@ -103567,11 +107592,11 @@ inrange10107: %t142 = load { ptr, i64, i64 }, ptr %a27 %t143 = extractvalue { ptr, i64, i64 } %t142, 1 %t144 = icmp uge i64 2, %t143 - br i1 %t144, label %range10108, label %inrange10109 -range10108: - call void @finch_panic_index(ptr @.str.6808, i64 305, i64 2, i64 %t143) + br i1 %t144, label %range10513, label %inrange10514 +range10513: + call void @finch_panic_index(ptr @.str.7016, i64 305, i64 2, i64 %t143) unreachable -inrange10109: +inrange10514: %t145 = extractvalue { ptr, i64, i64 } %t142, 0 %t146 = getelementptr inbounds { ptr, i64, i64 }, ptr %t145, i64 2 %t147 = load { ptr, i64, i64 }, ptr %t146 @@ -103582,11 +107607,11 @@ inrange10109: %t152 = load { ptr, i64, i64 }, ptr %a27 %t153 = extractvalue { ptr, i64, i64 } %t152, 1 %t154 = icmp uge i64 3, %t153 - br i1 %t154, label %range10110, label %inrange10111 -range10110: - call void @finch_panic_index(ptr @.str.6809, i64 305, i64 3, i64 %t153) + br i1 %t154, label %range10515, label %inrange10516 +range10515: + call void @finch_panic_index(ptr @.str.7017, i64 305, i64 3, i64 %t153) unreachable -inrange10111: +inrange10516: %t155 = extractvalue { ptr, i64, i64 } %t152, 0 %t156 = getelementptr inbounds { ptr, i64, i64 }, ptr %t155, i64 3 %t157 = load { ptr, i64, i64 }, ptr %t156 @@ -103597,11 +107622,11 @@ inrange10111: %t162 = load { ptr, i64, i64 }, ptr %a27 %t163 = extractvalue { ptr, i64, i64 } %t162, 1 %t164 = icmp uge i64 4, %t163 - br i1 %t164, label %range10112, label %inrange10113 -range10112: - call void @finch_panic_index(ptr @.str.6810, i64 305, i64 4, i64 %t163) + br i1 %t164, label %range10517, label %inrange10518 +range10517: + call void @finch_panic_index(ptr @.str.7018, i64 305, i64 4, i64 %t163) unreachable -inrange10113: +inrange10518: %t165 = extractvalue { ptr, i64, i64 } %t162, 0 %t166 = getelementptr inbounds { ptr, i64, i64 }, ptr %t165, i64 4 %t167 = load { ptr, i64, i64 }, ptr %t166 @@ -103610,11 +107635,11 @@ inrange10113: %t170 = load { ptr, i64, i64 }, ptr %a27 %t171 = extractvalue { ptr, i64, i64 } %t170, 1 %t172 = icmp uge i64 5, %t171 - br i1 %t172, label %range10114, label %inrange10115 -range10114: - call void @finch_panic_index(ptr @.str.6811, i64 305, i64 5, i64 %t171) + br i1 %t172, label %range10519, label %inrange10520 +range10519: + call void @finch_panic_index(ptr @.str.7019, i64 305, i64 5, i64 %t171) unreachable -inrange10115: +inrange10520: %t173 = extractvalue { ptr, i64, i64 } %t170, 0 %t174 = getelementptr inbounds { ptr, i64, i64 }, ptr %t173, i64 5 %t175 = load { ptr, i64, i64 }, ptr %t174 @@ -103623,11 +107648,11 @@ inrange10115: %t178 = load { ptr, i64, i64 }, ptr %a27 %t179 = extractvalue { ptr, i64, i64 } %t178, 1 %t180 = icmp uge i64 6, %t179 - br i1 %t180, label %range10116, label %inrange10117 -range10116: - call void @finch_panic_index(ptr @.str.6812, i64 305, i64 6, i64 %t179) + br i1 %t180, label %range10521, label %inrange10522 +range10521: + call void @finch_panic_index(ptr @.str.7020, i64 305, i64 6, i64 %t179) unreachable -inrange10117: +inrange10522: %t181 = extractvalue { ptr, i64, i64 } %t178, 0 %t182 = getelementptr inbounds { ptr, i64, i64 }, ptr %t181, i64 6 %t183 = load { ptr, i64, i64 }, ptr %t182 @@ -103638,11 +107663,11 @@ inrange10117: %t188 = load { ptr, i64, i64 }, ptr %a27 %t189 = extractvalue { ptr, i64, i64 } %t188, 1 %t190 = icmp uge i64 7, %t189 - br i1 %t190, label %range10118, label %inrange10119 -range10118: - call void @finch_panic_index(ptr @.str.6813, i64 305, i64 7, i64 %t189) + br i1 %t190, label %range10523, label %inrange10524 +range10523: + call void @finch_panic_index(ptr @.str.7021, i64 305, i64 7, i64 %t189) unreachable -inrange10119: +inrange10524: %t191 = extractvalue { ptr, i64, i64 } %t188, 0 %t192 = getelementptr inbounds { ptr, i64, i64 }, ptr %t191, i64 7 %t193 = load { ptr, i64, i64 }, ptr %t192 @@ -103651,11 +107676,11 @@ inrange10119: %t196 = load { ptr, i64, i64 }, ptr %a27 %t197 = extractvalue { ptr, i64, i64 } %t196, 1 %t198 = icmp uge i64 8, %t197 - br i1 %t198, label %range10120, label %inrange10121 -range10120: - call void @finch_panic_index(ptr @.str.6814, i64 305, i64 8, i64 %t197) + br i1 %t198, label %range10525, label %inrange10526 +range10525: + call void @finch_panic_index(ptr @.str.7022, i64 305, i64 8, i64 %t197) unreachable -inrange10121: +inrange10526: %t199 = extractvalue { ptr, i64, i64 } %t196, 0 %t200 = getelementptr inbounds { ptr, i64, i64 }, ptr %t199, i64 8 %t201 = load { ptr, i64, i64 }, ptr %t200 @@ -103668,37 +107693,37 @@ inrange10121: %t207 = getelementptr inbounds %S.lsp.VarRec, ptr %t206, i64 %t204 store %S.lsp.VarRec %t203, ptr %t207 store i64 %t205, ptr %t131 - br label %endif10105 -else10104: + br label %endif10510 +else10509: %t208 = load { ptr, i64, i64 }, ptr %a37 store { ptr, i64, i64 } %t208, ptr %a209 - store { ptr, i64, i64 } { ptr @.str.6815, i64 2, i64 0 }, ptr %a210 + store { ptr, i64, i64 } { ptr @.str.7023, i64 2, i64 0 }, ptr %a210 %t211 = call i32 @finch_str_eq(ptr %a209, ptr %a210) %t212 = icmp ne i32 %t211, 0 - br label %logic.from10122 -logic.from10122: - br i1 %t212, label %logic.rhs10123, label %logic.end10124 -logic.rhs10123: + br label %logic.from10527 +logic.from10527: + br i1 %t212, label %logic.rhs10528, label %logic.end10529 +logic.rhs10528: %t213 = getelementptr inbounds { ptr, i64, i64 }, ptr %a27, i32 0, i32 1 %t214 = load i64, ptr %t213 %t215 = icmp sge i64 %t214, 10 - br label %logic.rend10125 -logic.rend10125: - br label %logic.end10124 -logic.end10124: - %t216 = phi i1 [ false, %logic.from10122 ], [ %t215, %logic.rend10125 ] - br i1 %t216, label %then10126, label %else10127 -then10126: + br label %logic.rend10530 +logic.rend10530: + br label %logic.end10529 +logic.end10529: + %t216 = phi i1 [ false, %logic.from10527 ], [ %t215, %logic.rend10530 ] + br i1 %t216, label %then10531, label %else10532 +then10531: %t217 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 2 %t218 = getelementptr inbounds { ptr, i64, i64 }, ptr %t217, i32 0, i32 1 %t219 = load { ptr, i64, i64 }, ptr %a27 %t220 = extractvalue { ptr, i64, i64 } %t219, 1 %t221 = icmp uge i64 1, %t220 - br i1 %t221, label %range10129, label %inrange10130 -range10129: - call void @finch_panic_index(ptr @.str.6816, i64 307, i64 1, i64 %t220) + br i1 %t221, label %range10534, label %inrange10535 +range10534: + call void @finch_panic_index(ptr @.str.7024, i64 307, i64 1, i64 %t220) unreachable -inrange10130: +inrange10535: %t222 = extractvalue { ptr, i64, i64 } %t219, 0 %t223 = getelementptr inbounds { ptr, i64, i64 }, ptr %t222, i64 1 %t224 = load { ptr, i64, i64 }, ptr %t223 @@ -103709,11 +107734,11 @@ inrange10130: %t229 = load { ptr, i64, i64 }, ptr %a27 %t230 = extractvalue { ptr, i64, i64 } %t229, 1 %t231 = icmp uge i64 2, %t230 - br i1 %t231, label %range10131, label %inrange10132 -range10131: - call void @finch_panic_index(ptr @.str.6817, i64 307, i64 2, i64 %t230) + br i1 %t231, label %range10536, label %inrange10537 +range10536: + call void @finch_panic_index(ptr @.str.7025, i64 307, i64 2, i64 %t230) unreachable -inrange10132: +inrange10537: %t232 = extractvalue { ptr, i64, i64 } %t229, 0 %t233 = getelementptr inbounds { ptr, i64, i64 }, ptr %t232, i64 2 %t234 = load { ptr, i64, i64 }, ptr %t233 @@ -103724,11 +107749,11 @@ inrange10132: %t239 = load { ptr, i64, i64 }, ptr %a27 %t240 = extractvalue { ptr, i64, i64 } %t239, 1 %t241 = icmp uge i64 3, %t240 - br i1 %t241, label %range10133, label %inrange10134 -range10133: - call void @finch_panic_index(ptr @.str.6818, i64 307, i64 3, i64 %t240) + br i1 %t241, label %range10538, label %inrange10539 +range10538: + call void @finch_panic_index(ptr @.str.7026, i64 307, i64 3, i64 %t240) unreachable -inrange10134: +inrange10539: %t242 = extractvalue { ptr, i64, i64 } %t239, 0 %t243 = getelementptr inbounds { ptr, i64, i64 }, ptr %t242, i64 3 %t244 = load { ptr, i64, i64 }, ptr %t243 @@ -103739,11 +107764,11 @@ inrange10134: %t249 = load { ptr, i64, i64 }, ptr %a27 %t250 = extractvalue { ptr, i64, i64 } %t249, 1 %t251 = icmp uge i64 4, %t250 - br i1 %t251, label %range10135, label %inrange10136 -range10135: - call void @finch_panic_index(ptr @.str.6819, i64 307, i64 4, i64 %t250) + br i1 %t251, label %range10540, label %inrange10541 +range10540: + call void @finch_panic_index(ptr @.str.7027, i64 307, i64 4, i64 %t250) unreachable -inrange10136: +inrange10541: %t252 = extractvalue { ptr, i64, i64 } %t249, 0 %t253 = getelementptr inbounds { ptr, i64, i64 }, ptr %t252, i64 4 %t254 = load { ptr, i64, i64 }, ptr %t253 @@ -103754,11 +107779,11 @@ inrange10136: %t259 = load { ptr, i64, i64 }, ptr %a27 %t260 = extractvalue { ptr, i64, i64 } %t259, 1 %t261 = icmp uge i64 5, %t260 - br i1 %t261, label %range10137, label %inrange10138 -range10137: - call void @finch_panic_index(ptr @.str.6820, i64 307, i64 5, i64 %t260) + br i1 %t261, label %range10542, label %inrange10543 +range10542: + call void @finch_panic_index(ptr @.str.7028, i64 307, i64 5, i64 %t260) unreachable -inrange10138: +inrange10543: %t262 = extractvalue { ptr, i64, i64 } %t259, 0 %t263 = getelementptr inbounds { ptr, i64, i64 }, ptr %t262, i64 5 %t264 = load { ptr, i64, i64 }, ptr %t263 @@ -103767,11 +107792,11 @@ inrange10138: %t267 = load { ptr, i64, i64 }, ptr %a27 %t268 = extractvalue { ptr, i64, i64 } %t267, 1 %t269 = icmp uge i64 6, %t268 - br i1 %t269, label %range10139, label %inrange10140 -range10139: - call void @finch_panic_index(ptr @.str.6821, i64 307, i64 6, i64 %t268) + br i1 %t269, label %range10544, label %inrange10545 +range10544: + call void @finch_panic_index(ptr @.str.7029, i64 307, i64 6, i64 %t268) unreachable -inrange10140: +inrange10545: %t270 = extractvalue { ptr, i64, i64 } %t267, 0 %t271 = getelementptr inbounds { ptr, i64, i64 }, ptr %t270, i64 6 %t272 = load { ptr, i64, i64 }, ptr %t271 @@ -103780,11 +107805,11 @@ inrange10140: %t275 = load { ptr, i64, i64 }, ptr %a27 %t276 = extractvalue { ptr, i64, i64 } %t275, 1 %t277 = icmp uge i64 7, %t276 - br i1 %t277, label %range10141, label %inrange10142 -range10141: - call void @finch_panic_index(ptr @.str.6822, i64 307, i64 7, i64 %t276) + br i1 %t277, label %range10546, label %inrange10547 +range10546: + call void @finch_panic_index(ptr @.str.7030, i64 307, i64 7, i64 %t276) unreachable -inrange10142: +inrange10547: %t278 = extractvalue { ptr, i64, i64 } %t275, 0 %t279 = getelementptr inbounds { ptr, i64, i64 }, ptr %t278, i64 7 %t280 = load { ptr, i64, i64 }, ptr %t279 @@ -103793,11 +107818,11 @@ inrange10142: %t283 = load { ptr, i64, i64 }, ptr %a27 %t284 = extractvalue { ptr, i64, i64 } %t283, 1 %t285 = icmp uge i64 8, %t284 - br i1 %t285, label %range10143, label %inrange10144 -range10143: - call void @finch_panic_index(ptr @.str.6823, i64 307, i64 8, i64 %t284) + br i1 %t285, label %range10548, label %inrange10549 +range10548: + call void @finch_panic_index(ptr @.str.7031, i64 307, i64 8, i64 %t284) unreachable -inrange10144: +inrange10549: %t286 = extractvalue { ptr, i64, i64 } %t283, 0 %t287 = getelementptr inbounds { ptr, i64, i64 }, ptr %t286, i64 8 %t288 = load { ptr, i64, i64 }, ptr %t287 @@ -103806,16 +107831,16 @@ inrange10144: %t291 = load { ptr, i64, i64 }, ptr %a27 %t292 = extractvalue { ptr, i64, i64 } %t291, 1 %t293 = icmp uge i64 9, %t292 - br i1 %t293, label %range10145, label %inrange10146 -range10145: - call void @finch_panic_index(ptr @.str.6824, i64 307, i64 9, i64 %t292) + br i1 %t293, label %range10550, label %inrange10551 +range10550: + call void @finch_panic_index(ptr @.str.7032, i64 307, i64 9, i64 %t292) unreachable -inrange10146: +inrange10551: %t294 = extractvalue { ptr, i64, i64 } %t291, 0 %t295 = getelementptr inbounds { ptr, i64, i64 }, ptr %t294, i64 9 %t296 = load { ptr, i64, i64 }, ptr %t295 store { ptr, i64, i64 } %t296, ptr %a297 - store { ptr, i64, i64 } { ptr @.str.6826, i64 1, i64 0 }, ptr %a299 + store { ptr, i64, i64 } { ptr @.str.7034, i64 1, i64 0 }, ptr %a299 call void @finch_str_split(ptr %a300, ptr %a297, ptr %a299) %t301 = load { ptr, i64, i64 }, ptr %a300 %t302 = insertvalue %S.lsp.FnRec %t290, { ptr, i64, i64 } %t301, 8 @@ -103826,37 +107851,37 @@ inrange10146: %t306 = getelementptr inbounds %S.lsp.FnRec, ptr %t305, i64 %t303 store %S.lsp.FnRec %t302, ptr %t306 store i64 %t304, ptr %t218 - br label %endif10128 -else10127: + br label %endif10533 +else10532: %t307 = load { ptr, i64, i64 }, ptr %a37 store { ptr, i64, i64 } %t307, ptr %a308 - store { ptr, i64, i64 } { ptr @.str.6827, i64 2, i64 0 }, ptr %a309 + store { ptr, i64, i64 } { ptr @.str.7035, i64 2, i64 0 }, ptr %a309 %t310 = call i32 @finch_str_eq(ptr %a308, ptr %a309) %t311 = icmp ne i32 %t310, 0 - br label %logic.from10147 -logic.from10147: - br i1 %t311, label %logic.rhs10148, label %logic.end10149 -logic.rhs10148: + br label %logic.from10552 +logic.from10552: + br i1 %t311, label %logic.rhs10553, label %logic.end10554 +logic.rhs10553: %t312 = getelementptr inbounds { ptr, i64, i64 }, ptr %a27, i32 0, i32 1 %t313 = load i64, ptr %t312 %t314 = icmp sge i64 %t313, 6 - br label %logic.rend10150 -logic.rend10150: - br label %logic.end10149 -logic.end10149: - %t315 = phi i1 [ false, %logic.from10147 ], [ %t314, %logic.rend10150 ] - br i1 %t315, label %then10151, label %else10152 -then10151: + br label %logic.rend10555 +logic.rend10555: + br label %logic.end10554 +logic.end10554: + %t315 = phi i1 [ false, %logic.from10552 ], [ %t314, %logic.rend10555 ] + br i1 %t315, label %then10556, label %else10557 +then10556: %t316 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 3 %t317 = getelementptr inbounds { ptr, i64, i64 }, ptr %t316, i32 0, i32 1 %t318 = load { ptr, i64, i64 }, ptr %a27 %t319 = extractvalue { ptr, i64, i64 } %t318, 1 %t320 = icmp uge i64 1, %t319 - br i1 %t320, label %range10154, label %inrange10155 -range10154: - call void @finch_panic_index(ptr @.str.6828, i64 309, i64 1, i64 %t319) + br i1 %t320, label %range10559, label %inrange10560 +range10559: + call void @finch_panic_index(ptr @.str.7036, i64 309, i64 1, i64 %t319) unreachable -inrange10155: +inrange10560: %t321 = extractvalue { ptr, i64, i64 } %t318, 0 %t322 = getelementptr inbounds { ptr, i64, i64 }, ptr %t321, i64 1 %t323 = load { ptr, i64, i64 }, ptr %t322 @@ -103867,11 +107892,11 @@ inrange10155: %t328 = load { ptr, i64, i64 }, ptr %a27 %t329 = extractvalue { ptr, i64, i64 } %t328, 1 %t330 = icmp uge i64 2, %t329 - br i1 %t330, label %range10156, label %inrange10157 -range10156: - call void @finch_panic_index(ptr @.str.6829, i64 309, i64 2, i64 %t329) + br i1 %t330, label %range10561, label %inrange10562 +range10561: + call void @finch_panic_index(ptr @.str.7037, i64 309, i64 2, i64 %t329) unreachable -inrange10157: +inrange10562: %t331 = extractvalue { ptr, i64, i64 } %t328, 0 %t332 = getelementptr inbounds { ptr, i64, i64 }, ptr %t331, i64 2 %t333 = load { ptr, i64, i64 }, ptr %t332 @@ -103882,11 +107907,11 @@ inrange10157: %t338 = load { ptr, i64, i64 }, ptr %a27 %t339 = extractvalue { ptr, i64, i64 } %t338, 1 %t340 = icmp uge i64 3, %t339 - br i1 %t340, label %range10158, label %inrange10159 -range10158: - call void @finch_panic_index(ptr @.str.6830, i64 309, i64 3, i64 %t339) + br i1 %t340, label %range10563, label %inrange10564 +range10563: + call void @finch_panic_index(ptr @.str.7038, i64 309, i64 3, i64 %t339) unreachable -inrange10159: +inrange10564: %t341 = extractvalue { ptr, i64, i64 } %t338, 0 %t342 = getelementptr inbounds { ptr, i64, i64 }, ptr %t341, i64 3 %t343 = load { ptr, i64, i64 }, ptr %t342 @@ -103897,11 +107922,11 @@ inrange10159: %t348 = load { ptr, i64, i64 }, ptr %a27 %t349 = extractvalue { ptr, i64, i64 } %t348, 1 %t350 = icmp uge i64 4, %t349 - br i1 %t350, label %range10160, label %inrange10161 -range10160: - call void @finch_panic_index(ptr @.str.6831, i64 309, i64 4, i64 %t349) + br i1 %t350, label %range10565, label %inrange10566 +range10565: + call void @finch_panic_index(ptr @.str.7039, i64 309, i64 4, i64 %t349) unreachable -inrange10161: +inrange10566: %t351 = extractvalue { ptr, i64, i64 } %t348, 0 %t352 = getelementptr inbounds { ptr, i64, i64 }, ptr %t351, i64 4 %t353 = load { ptr, i64, i64 }, ptr %t352 @@ -103910,11 +107935,11 @@ inrange10161: %t356 = load { ptr, i64, i64 }, ptr %a27 %t357 = extractvalue { ptr, i64, i64 } %t356, 1 %t358 = icmp uge i64 5, %t357 - br i1 %t358, label %range10162, label %inrange10163 -range10162: - call void @finch_panic_index(ptr @.str.6832, i64 309, i64 5, i64 %t357) + br i1 %t358, label %range10567, label %inrange10568 +range10567: + call void @finch_panic_index(ptr @.str.7040, i64 309, i64 5, i64 %t357) unreachable -inrange10163: +inrange10568: %t359 = extractvalue { ptr, i64, i64 } %t356, 0 %t360 = getelementptr inbounds { ptr, i64, i64 }, ptr %t359, i64 5 %t361 = load { ptr, i64, i64 }, ptr %t360 @@ -103927,40 +107952,40 @@ inrange10163: %t367 = getelementptr inbounds %S.lsp.StructRec, ptr %t366, i64 %t364 store %S.lsp.StructRec %t363, ptr %t367 store i64 %t365, ptr %t317 - br label %endif10153 -else10152: + br label %endif10558 +else10557: %t368 = load { ptr, i64, i64 }, ptr %a37 store { ptr, i64, i64 } %t368, ptr %a369 - store { ptr, i64, i64 } { ptr @.str.6833, i64 3, i64 0 }, ptr %a370 + store { ptr, i64, i64 } { ptr @.str.7041, i64 3, i64 0 }, ptr %a370 %t371 = call i32 @finch_str_eq(ptr %a369, ptr %a370) %t372 = icmp ne i32 %t371, 0 - br label %logic.from10164 -logic.from10164: - br i1 %t372, label %logic.rhs10165, label %logic.end10166 -logic.rhs10165: + br label %logic.from10569 +logic.from10569: + br i1 %t372, label %logic.rhs10570, label %logic.end10571 +logic.rhs10570: %t373 = getelementptr inbounds { ptr, i64, i64 }, ptr %a27, i32 0, i32 1 %t374 = load i64, ptr %t373 %t375 = icmp sge i64 %t374, 5 - br label %logic.rend10167 -logic.rend10167: - br label %logic.end10166 -logic.end10166: - %t376 = phi i1 [ false, %logic.from10164 ], [ %t375, %logic.rend10167 ] - br label %logic.from10168 -logic.from10168: - br i1 %t376, label %logic.rhs10169, label %logic.end10170 -logic.rhs10169: + br label %logic.rend10572 +logic.rend10572: + br label %logic.end10571 +logic.end10571: + %t376 = phi i1 [ false, %logic.from10569 ], [ %t375, %logic.rend10572 ] + br label %logic.from10573 +logic.from10573: + br i1 %t376, label %logic.rhs10574, label %logic.end10575 +logic.rhs10574: %t377 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 3 %t378 = getelementptr inbounds { ptr, i64, i64 }, ptr %t377, i32 0, i32 1 %t379 = load i64, ptr %t378 %t380 = icmp sgt i64 %t379, 0 - br label %logic.rend10171 -logic.rend10171: - br label %logic.end10170 -logic.end10170: - %t381 = phi i1 [ false, %logic.from10168 ], [ %t380, %logic.rend10171 ] - br i1 %t381, label %then10172, label %else10173 -then10172: + br label %logic.rend10576 +logic.rend10576: + br label %logic.end10575 +logic.end10575: + %t381 = phi i1 [ false, %logic.from10573 ], [ %t380, %logic.rend10576 ] + br i1 %t381, label %then10577, label %else10578 +then10577: %t382 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 3 %t383 = getelementptr inbounds { ptr, i64, i64 }, ptr %t382, i32 0, i32 1 %t384 = load i64, ptr %t383 @@ -103971,11 +107996,11 @@ then10172: %t389 = load { ptr, i64, i64 }, ptr %t387 %t390 = extractvalue { ptr, i64, i64 } %t389, 1 %t391 = icmp uge i64 %t388, %t390 - br i1 %t391, label %range10175, label %inrange10176 -range10175: - call void @finch_panic_index(ptr @.str.6834, i64 312, i64 %t388, i64 %t390) + br i1 %t391, label %range10580, label %inrange10581 +range10580: + call void @finch_panic_index(ptr @.str.7042, i64 312, i64 %t388, i64 %t390) unreachable -inrange10176: +inrange10581: %t392 = extractvalue { ptr, i64, i64 } %t389, 0 %t393 = getelementptr inbounds %S.lsp.StructRec, ptr %t392, i64 %t388 %t394 = getelementptr inbounds %S.lsp.StructRec, ptr %t393, i32 0, i32 5 @@ -103983,11 +108008,11 @@ inrange10176: %t396 = load { ptr, i64, i64 }, ptr %a27 %t397 = extractvalue { ptr, i64, i64 } %t396, 1 %t398 = icmp uge i64 3, %t397 - br i1 %t398, label %range10177, label %inrange10178 -range10177: - call void @finch_panic_index(ptr @.str.6835, i64 312, i64 3, i64 %t397) + br i1 %t398, label %range10582, label %inrange10583 +range10582: + call void @finch_panic_index(ptr @.str.7043, i64 312, i64 3, i64 %t397) unreachable -inrange10178: +inrange10583: %t399 = extractvalue { ptr, i64, i64 } %t396, 0 %t400 = getelementptr inbounds { ptr, i64, i64 }, ptr %t399, i64 3 %t401 = load { ptr, i64, i64 }, ptr %t400 @@ -104006,11 +108031,11 @@ inrange10178: %t411 = load { ptr, i64, i64 }, ptr %t409 %t412 = extractvalue { ptr, i64, i64 } %t411, 1 %t413 = icmp uge i64 %t410, %t412 - br i1 %t413, label %range10179, label %inrange10180 -range10179: - call void @finch_panic_index(ptr @.str.6836, i64 313, i64 %t410, i64 %t412) + br i1 %t413, label %range10584, label %inrange10585 +range10584: + call void @finch_panic_index(ptr @.str.7044, i64 313, i64 %t410, i64 %t412) unreachable -inrange10180: +inrange10585: %t414 = extractvalue { ptr, i64, i64 } %t411, 0 %t415 = getelementptr inbounds %S.lsp.StructRec, ptr %t414, i64 %t410 %t416 = getelementptr inbounds %S.lsp.StructRec, ptr %t415, i32 0, i32 6 @@ -104018,11 +108043,11 @@ inrange10180: %t418 = load { ptr, i64, i64 }, ptr %a27 %t419 = extractvalue { ptr, i64, i64 } %t418, 1 %t420 = icmp uge i64 4, %t419 - br i1 %t420, label %range10181, label %inrange10182 -range10181: - call void @finch_panic_index(ptr @.str.6837, i64 313, i64 4, i64 %t419) + br i1 %t420, label %range10586, label %inrange10587 +range10586: + call void @finch_panic_index(ptr @.str.7045, i64 313, i64 4, i64 %t419) unreachable -inrange10182: +inrange10587: %t421 = extractvalue { ptr, i64, i64 } %t418, 0 %t422 = getelementptr inbounds { ptr, i64, i64 }, ptr %t421, i64 4 %t423 = load { ptr, i64, i64 }, ptr %t422 @@ -104036,37 +108061,37 @@ inrange10182: %t430 = getelementptr inbounds { ptr, i64, i64 }, ptr %t429, i64 %t427 store { ptr, i64, i64 } %t426, ptr %t430 store i64 %t428, ptr %t417 - br label %endif10174 -else10173: + br label %endif10579 +else10578: %t431 = load { ptr, i64, i64 }, ptr %a37 store { ptr, i64, i64 } %t431, ptr %a432 - store { ptr, i64, i64 } { ptr @.str.6838, i64 2, i64 0 }, ptr %a433 + store { ptr, i64, i64 } { ptr @.str.7046, i64 2, i64 0 }, ptr %a433 %t434 = call i32 @finch_str_eq(ptr %a432, ptr %a433) %t435 = icmp ne i32 %t434, 0 - br label %logic.from10183 -logic.from10183: - br i1 %t435, label %logic.rhs10184, label %logic.end10185 -logic.rhs10184: + br label %logic.from10588 +logic.from10588: + br i1 %t435, label %logic.rhs10589, label %logic.end10590 +logic.rhs10589: %t436 = getelementptr inbounds { ptr, i64, i64 }, ptr %a27, i32 0, i32 1 %t437 = load i64, ptr %t436 %t438 = icmp sge i64 %t437, 7 - br label %logic.rend10186 -logic.rend10186: - br label %logic.end10185 -logic.end10185: - %t439 = phi i1 [ false, %logic.from10183 ], [ %t438, %logic.rend10186 ] - br i1 %t439, label %then10187, label %else10188 -then10187: + br label %logic.rend10591 +logic.rend10591: + br label %logic.end10590 +logic.end10590: + %t439 = phi i1 [ false, %logic.from10588 ], [ %t438, %logic.rend10591 ] + br i1 %t439, label %then10592, label %else10593 +then10592: %t440 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 4 %t441 = getelementptr inbounds { ptr, i64, i64 }, ptr %t440, i32 0, i32 1 %t442 = load { ptr, i64, i64 }, ptr %a27 %t443 = extractvalue { ptr, i64, i64 } %t442, 1 %t444 = icmp uge i64 1, %t443 - br i1 %t444, label %range10190, label %inrange10191 -range10190: - call void @finch_panic_index(ptr @.str.6839, i64 315, i64 1, i64 %t443) + br i1 %t444, label %range10595, label %inrange10596 +range10595: + call void @finch_panic_index(ptr @.str.7047, i64 315, i64 1, i64 %t443) unreachable -inrange10191: +inrange10596: %t445 = extractvalue { ptr, i64, i64 } %t442, 0 %t446 = getelementptr inbounds { ptr, i64, i64 }, ptr %t445, i64 1 %t447 = load { ptr, i64, i64 }, ptr %t446 @@ -104077,11 +108102,11 @@ inrange10191: %t452 = load { ptr, i64, i64 }, ptr %a27 %t453 = extractvalue { ptr, i64, i64 } %t452, 1 %t454 = icmp uge i64 2, %t453 - br i1 %t454, label %range10192, label %inrange10193 -range10192: - call void @finch_panic_index(ptr @.str.6840, i64 315, i64 2, i64 %t453) + br i1 %t454, label %range10597, label %inrange10598 +range10597: + call void @finch_panic_index(ptr @.str.7048, i64 315, i64 2, i64 %t453) unreachable -inrange10193: +inrange10598: %t455 = extractvalue { ptr, i64, i64 } %t452, 0 %t456 = getelementptr inbounds { ptr, i64, i64 }, ptr %t455, i64 2 %t457 = load { ptr, i64, i64 }, ptr %t456 @@ -104092,11 +108117,11 @@ inrange10193: %t462 = load { ptr, i64, i64 }, ptr %a27 %t463 = extractvalue { ptr, i64, i64 } %t462, 1 %t464 = icmp uge i64 3, %t463 - br i1 %t464, label %range10194, label %inrange10195 -range10194: - call void @finch_panic_index(ptr @.str.6841, i64 315, i64 3, i64 %t463) + br i1 %t464, label %range10599, label %inrange10600 +range10599: + call void @finch_panic_index(ptr @.str.7049, i64 315, i64 3, i64 %t463) unreachable -inrange10195: +inrange10600: %t465 = extractvalue { ptr, i64, i64 } %t462, 0 %t466 = getelementptr inbounds { ptr, i64, i64 }, ptr %t465, i64 3 %t467 = load { ptr, i64, i64 }, ptr %t466 @@ -104107,11 +108132,11 @@ inrange10195: %t472 = load { ptr, i64, i64 }, ptr %a27 %t473 = extractvalue { ptr, i64, i64 } %t472, 1 %t474 = icmp uge i64 4, %t473 - br i1 %t474, label %range10196, label %inrange10197 -range10196: - call void @finch_panic_index(ptr @.str.6842, i64 315, i64 4, i64 %t473) + br i1 %t474, label %range10601, label %inrange10602 +range10601: + call void @finch_panic_index(ptr @.str.7050, i64 315, i64 4, i64 %t473) unreachable -inrange10197: +inrange10602: %t475 = extractvalue { ptr, i64, i64 } %t472, 0 %t476 = getelementptr inbounds { ptr, i64, i64 }, ptr %t475, i64 4 %t477 = load { ptr, i64, i64 }, ptr %t476 @@ -104120,11 +108145,11 @@ inrange10197: %t480 = load { ptr, i64, i64 }, ptr %a27 %t481 = extractvalue { ptr, i64, i64 } %t480, 1 %t482 = icmp uge i64 5, %t481 - br i1 %t482, label %range10198, label %inrange10199 -range10198: - call void @finch_panic_index(ptr @.str.6843, i64 315, i64 5, i64 %t481) + br i1 %t482, label %range10603, label %inrange10604 +range10603: + call void @finch_panic_index(ptr @.str.7051, i64 315, i64 5, i64 %t481) unreachable -inrange10199: +inrange10604: %t483 = extractvalue { ptr, i64, i64 } %t480, 0 %t484 = getelementptr inbounds { ptr, i64, i64 }, ptr %t483, i64 5 %t485 = load { ptr, i64, i64 }, ptr %t484 @@ -104133,16 +108158,16 @@ inrange10199: %t488 = load { ptr, i64, i64 }, ptr %a27 %t489 = extractvalue { ptr, i64, i64 } %t488, 1 %t490 = icmp uge i64 6, %t489 - br i1 %t490, label %range10200, label %inrange10201 -range10200: - call void @finch_panic_index(ptr @.str.6844, i64 315, i64 6, i64 %t489) + br i1 %t490, label %range10605, label %inrange10606 +range10605: + call void @finch_panic_index(ptr @.str.7052, i64 315, i64 6, i64 %t489) unreachable -inrange10201: +inrange10606: %t491 = extractvalue { ptr, i64, i64 } %t488, 0 %t492 = getelementptr inbounds { ptr, i64, i64 }, ptr %t491, i64 6 %t493 = load { ptr, i64, i64 }, ptr %t492 store { ptr, i64, i64 } %t493, ptr %a494 - store { ptr, i64, i64 } { ptr @.str.6846, i64 1, i64 0 }, ptr %a496 + store { ptr, i64, i64 } { ptr @.str.7054, i64 1, i64 0 }, ptr %a496 call void @finch_str_split(ptr %a497, ptr %a494, ptr %a496) %t498 = load { ptr, i64, i64 }, ptr %a497 %t499 = insertvalue %S.lsp.EnumRec %t487, { ptr, i64, i64 } %t498, 5 @@ -104153,37 +108178,37 @@ inrange10201: %t503 = getelementptr inbounds %S.lsp.EnumRec, ptr %t502, i64 %t500 store %S.lsp.EnumRec %t499, ptr %t503 store i64 %t501, ptr %t441 - br label %endif10189 -else10188: + br label %endif10594 +else10593: %t504 = load { ptr, i64, i64 }, ptr %a37 store { ptr, i64, i64 } %t504, ptr %a505 - store { ptr, i64, i64 } { ptr @.str.6847, i64 2, i64 0 }, ptr %a506 + store { ptr, i64, i64 } { ptr @.str.7055, i64 2, i64 0 }, ptr %a506 %t507 = call i32 @finch_str_eq(ptr %a505, ptr %a506) %t508 = icmp ne i32 %t507, 0 - br label %logic.from10202 -logic.from10202: - br i1 %t508, label %logic.rhs10203, label %logic.end10204 -logic.rhs10203: + br label %logic.from10607 +logic.from10607: + br i1 %t508, label %logic.rhs10608, label %logic.end10609 +logic.rhs10608: %t509 = getelementptr inbounds { ptr, i64, i64 }, ptr %a27, i32 0, i32 1 %t510 = load i64, ptr %t509 %t511 = icmp sge i64 %t510, 2 - br label %logic.rend10205 -logic.rend10205: - br label %logic.end10204 -logic.end10204: - %t512 = phi i1 [ false, %logic.from10202 ], [ %t511, %logic.rend10205 ] - br i1 %t512, label %then10206, label %endif10208 -then10206: + br label %logic.rend10610 +logic.rend10610: + br label %logic.end10609 +logic.end10609: + %t512 = phi i1 [ false, %logic.from10607 ], [ %t511, %logic.rend10610 ] + br i1 %t512, label %then10611, label %endif10613 +then10611: %t513 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 5 %t514 = getelementptr inbounds { ptr, i64, i64 }, ptr %t513, i32 0, i32 1 %t515 = load { ptr, i64, i64 }, ptr %a27 %t516 = extractvalue { ptr, i64, i64 } %t515, 1 %t517 = icmp uge i64 1, %t516 - br i1 %t517, label %range10209, label %inrange10210 -range10209: - call void @finch_panic_index(ptr @.str.6848, i64 317, i64 1, i64 %t516) + br i1 %t517, label %range10614, label %inrange10615 +range10614: + call void @finch_panic_index(ptr @.str.7056, i64 317, i64 1, i64 %t516) unreachable -inrange10210: +inrange10615: %t518 = extractvalue { ptr, i64, i64 } %t515, 0 %t519 = getelementptr inbounds { ptr, i64, i64 }, ptr %t518, i64 1 %t520 = load { ptr, i64, i64 }, ptr %t519 @@ -104197,30 +108222,30 @@ inrange10210: %t527 = getelementptr inbounds { ptr, i64, i64 }, ptr %t526, i64 %t524 store { ptr, i64, i64 } %t523, ptr %t527 store i64 %t525, ptr %t514 - br label %endif10208 -endif10208: - br label %endif10189 -endif10189: - br label %endif10174 -endif10174: - br label %endif10153 -endif10153: - br label %endif10128 -endif10128: - br label %endif10105 -endif10105: - br label %endif10082 -endif10082: + br label %endif10613 +endif10613: + br label %endif10594 +endif10594: + br label %endif10579 +endif10579: + br label %endif10558 +endif10558: + br label %endif10533 +endif10533: + br label %endif10510 +endif10510: + br label %endif10487 +endif10487: call void @finch_str_drop(ptr %a37) call void @finch.drop.arr_str(ptr %a27) - br label %endif10073 -else10072: + br label %endif10478 +else10477: %t528 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 6 %t529 = getelementptr inbounds %S.lsp.Diag, ptr %t528, i32 0, i32 0 %t530 = load i1, ptr %t529 %t531 = xor i1 %t530, true - br i1 %t531, label %then10211, label %endif10213 -then10211: + br i1 %t531, label %then10616, label %endif10618 +then10616: %t532 = load { ptr, i64, i64 }, ptr %a18 %t533 = call %S.lsp.Diag @finch.lsp.parseDiag({ ptr, i64, i64 } %t532) %t534 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 6 @@ -104228,17 +108253,17 @@ then10211: store %S.lsp.Diag %t533, ptr %t534 store %S.lsp.Diag %t535, ptr %a536 call void @finch.drop.S_lsp_Diag(ptr %a536) - br label %endif10213 -endif10213: - br label %endif10073 -endif10073: - br label %each.step10069 -each.step10069: + br label %endif10618 +endif10618: + br label %endif10478 +endif10478: + br label %each.step10474 +each.step10474: %t537 = load i64, ptr %a10 %t538 = add i64 %t537, 1 store i64 %t538, ptr %a10 - br label %each.cond10067 -each.end10070: + br label %each.cond10472 +each.end10475: call void @finch.drop.arr_str(ptr %a9) %t539 = load %S.lsp.Analysis, ptr %a2 ret %S.lsp.Analysis %t539 @@ -104270,20 +108295,20 @@ entry: %t3 = getelementptr inbounds { ptr, i64, i64 }, ptr %src, i32 0, i32 1 %t4 = load i64, ptr %t3 store i64 0, ptr %a5 - br label %n.cond10234 -n.cond10234: + br label %n.cond10639 +n.cond10639: %t6 = load i64, ptr %a5 %t7 = icmp slt i64 %t6, %t4 - br i1 %t7, label %n.body10235, label %n.end10236 -n.body10235: + br i1 %t7, label %n.body10640, label %n.end10641 +n.body10640: %t8 = getelementptr inbounds %S.lsp.Ref, ptr %t1, i64 %t6 %t9 = getelementptr inbounds %S.lsp.Ref, ptr %t2, i64 %t6 call void @finch.copy.S_lsp_Ref(ptr %t8, ptr %t9) %t10 = load i64, ptr %a5 %t11 = add i64 %t10, 1 store i64 %t11, ptr %a5 - br label %n.cond10234 -n.end10236: + br label %n.cond10639 +n.end10641: ret void } @@ -104316,20 +108341,20 @@ entry: %t3 = getelementptr inbounds { ptr, i64, i64 }, ptr %src, i32 0, i32 1 %t4 = load i64, ptr %t3 store i64 0, ptr %a5 - br label %n.cond10237 -n.cond10237: + br label %n.cond10642 +n.cond10642: %t6 = load i64, ptr %a5 %t7 = icmp slt i64 %t6, %t4 - br i1 %t7, label %n.body10238, label %n.end10239 -n.body10238: + br i1 %t7, label %n.body10643, label %n.end10644 +n.body10643: %t8 = getelementptr inbounds %S.lsp.VarRec, ptr %t1, i64 %t6 %t9 = getelementptr inbounds %S.lsp.VarRec, ptr %t2, i64 %t6 call void @finch.copy.S_lsp_VarRec(ptr %t8, ptr %t9) %t10 = load i64, ptr %a5 %t11 = add i64 %t10, 1 store i64 %t11, ptr %a5 - br label %n.cond10237 -n.end10239: + br label %n.cond10642 +n.end10644: ret void } @@ -104368,20 +108393,20 @@ entry: %t3 = getelementptr inbounds { ptr, i64, i64 }, ptr %src, i32 0, i32 1 %t4 = load i64, ptr %t3 store i64 0, ptr %a5 - br label %n.cond10240 -n.cond10240: + br label %n.cond10645 +n.cond10645: %t6 = load i64, ptr %a5 %t7 = icmp slt i64 %t6, %t4 - br i1 %t7, label %n.body10241, label %n.end10242 -n.body10241: + br i1 %t7, label %n.body10646, label %n.end10647 +n.body10646: %t8 = getelementptr inbounds %S.lsp.FnRec, ptr %t1, i64 %t6 %t9 = getelementptr inbounds %S.lsp.FnRec, ptr %t2, i64 %t6 call void @finch.copy.S_lsp_FnRec(ptr %t8, ptr %t9) %t10 = load i64, ptr %a5 %t11 = add i64 %t10, 1 store i64 %t11, ptr %a5 - br label %n.cond10240 -n.end10242: + br label %n.cond10645 +n.end10647: ret void } @@ -104417,20 +108442,20 @@ entry: %t3 = getelementptr inbounds { ptr, i64, i64 }, ptr %src, i32 0, i32 1 %t4 = load i64, ptr %t3 store i64 0, ptr %a5 - br label %n.cond10243 -n.cond10243: + br label %n.cond10648 +n.cond10648: %t6 = load i64, ptr %a5 %t7 = icmp slt i64 %t6, %t4 - br i1 %t7, label %n.body10244, label %n.end10245 -n.body10244: + br i1 %t7, label %n.body10649, label %n.end10650 +n.body10649: %t8 = getelementptr inbounds %S.lsp.StructRec, ptr %t1, i64 %t6 %t9 = getelementptr inbounds %S.lsp.StructRec, ptr %t2, i64 %t6 call void @finch.copy.S_lsp_StructRec(ptr %t8, ptr %t9) %t10 = load i64, ptr %a5 %t11 = add i64 %t10, 1 store i64 %t11, ptr %a5 - br label %n.cond10243 -n.end10245: + br label %n.cond10648 +n.end10650: ret void } @@ -104463,20 +108488,20 @@ entry: %t3 = getelementptr inbounds { ptr, i64, i64 }, ptr %src, i32 0, i32 1 %t4 = load i64, ptr %t3 store i64 0, ptr %a5 - br label %n.cond10246 -n.cond10246: + br label %n.cond10651 +n.cond10651: %t6 = load i64, ptr %a5 %t7 = icmp slt i64 %t6, %t4 - br i1 %t7, label %n.body10247, label %n.end10248 -n.body10247: + br i1 %t7, label %n.body10652, label %n.end10653 +n.body10652: %t8 = getelementptr inbounds %S.lsp.EnumRec, ptr %t1, i64 %t6 %t9 = getelementptr inbounds %S.lsp.EnumRec, ptr %t2, i64 %t6 call void @finch.copy.S_lsp_EnumRec(ptr %t8, ptr %t9) %t10 = load i64, ptr %a5 %t11 = add i64 %t10, 1 store i64 %t11, ptr %a5 - br label %n.cond10246 -n.end10248: + br label %n.cond10651 +n.end10653: ret void } @@ -104542,19 +108567,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond10249 -n.cond10249: + br label %n.cond10654 +n.cond10654: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body10250, label %n.end10251 -n.body10250: + br i1 %t6, label %n.body10655, label %n.end10656 +n.body10655: %t7 = getelementptr inbounds %S.lsp.Ref, ptr %t1, i64 %t5 call void @finch.drop.S_lsp_Ref(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond10249 -n.end10251: + br label %n.cond10654 +n.end10656: call void @finch_arr_free(ptr %a) ret void } @@ -104580,19 +108605,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond10252 -n.cond10252: + br label %n.cond10657 +n.cond10657: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body10253, label %n.end10254 -n.body10253: + br i1 %t6, label %n.body10658, label %n.end10659 +n.body10658: %t7 = getelementptr inbounds %S.lsp.VarRec, ptr %t1, i64 %t5 call void @finch.drop.S_lsp_VarRec(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond10252 -n.end10254: + br label %n.cond10657 +n.end10659: call void @finch_arr_free(ptr %a) ret void } @@ -104622,19 +108647,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond10255 -n.cond10255: + br label %n.cond10660 +n.cond10660: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body10256, label %n.end10257 -n.body10256: + br i1 %t6, label %n.body10661, label %n.end10662 +n.body10661: %t7 = getelementptr inbounds %S.lsp.FnRec, ptr %t1, i64 %t5 call void @finch.drop.S_lsp_FnRec(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond10255 -n.end10257: + br label %n.cond10660 +n.end10662: call void @finch_arr_free(ptr %a) ret void } @@ -104662,19 +108687,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond10258 -n.cond10258: + br label %n.cond10663 +n.cond10663: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body10259, label %n.end10260 -n.body10259: + br i1 %t6, label %n.body10664, label %n.end10665 +n.body10664: %t7 = getelementptr inbounds %S.lsp.StructRec, ptr %t1, i64 %t5 call void @finch.drop.S_lsp_StructRec(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond10258 -n.end10260: + br label %n.cond10663 +n.end10665: call void @finch_arr_free(ptr %a) ret void } @@ -104700,19 +108725,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond10261 -n.cond10261: + br label %n.cond10666 +n.cond10666: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body10262, label %n.end10263 -n.body10262: + br i1 %t6, label %n.body10667, label %n.end10668 +n.body10667: %t7 = getelementptr inbounds %S.lsp.EnumRec, ptr %t1, i64 %t5 call void @finch.drop.S_lsp_EnumRec(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond10261 -n.end10263: + br label %n.cond10666 +n.end10668: call void @finch_arr_free(ptr %a) ret void } @@ -104857,7 +108882,7 @@ entry: %t2 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 1 %t3 = load { ptr, i64, i64 }, ptr %t2 call void @finch.host.makeDirs({ ptr, i64, i64 } %t3) - store { ptr, i64, i64 } { ptr @.str.6849, i64 0, i64 0 }, ptr %a4 + store { ptr, i64, i64 } { ptr @.str.7057, i64 0, i64 0 }, ptr %a4 store i64 0, ptr %a5 %t6 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 2 store { ptr, i64, i64 } zeroinitializer, ptr %a7 @@ -104869,44 +108894,44 @@ entry: %t12 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t6, i32 0, i32 2 %t13 = load i64, ptr %t12 store i64 0, ptr %a14 - br label %n.cond10214 -n.cond10214: + br label %n.cond10619 +n.cond10619: %t15 = load i64, ptr %a14 %t16 = icmp slt i64 %t15, %t13 - br i1 %t16, label %n.body10215, label %n.end10216 -n.body10215: + br i1 %t16, label %n.body10620, label %n.end10621 +n.body10620: %t17 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t6, i32 0, i32 0 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t18, i64 %t15 %t20 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t19, i32 0, i32 0 %t21 = load i64, ptr %t20 %t22 = icmp ne i64 %t21, 0 - br i1 %t22, label %entry.live10217, label %entry.next10218 -entry.live10217: + br i1 %t22, label %entry.live10622, label %entry.next10623 +entry.live10622: %t23 = load i64, ptr %a11 %t24 = getelementptr inbounds { ptr, i64, i64 }, ptr %t10, i64 %t23 %t25 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t19, i32 0, i32 1 call void @finch_str_copy(ptr %t24, ptr %t25) %t26 = add i64 %t23, 1 store i64 %t26, ptr %a11 - br label %entry.next10218 -entry.next10218: + br label %entry.next10623 +entry.next10623: %t27 = load i64, ptr %a14 %t28 = add i64 %t27, 1 store i64 %t28, ptr %a14 - br label %n.cond10214 -n.end10216: + br label %n.cond10619 +n.end10621: %t29 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t29, ptr %a30 store i64 0, ptr %a31 - br label %each.cond10219 -each.cond10219: + br label %each.cond10624 +each.cond10624: %t32 = getelementptr inbounds { ptr, i64, i64 }, ptr %a30, i32 0, i32 1 %t33 = load i64, ptr %t32 %t34 = load i64, ptr %a31 %t35 = icmp slt i64 %t34, %t33 - br i1 %t35, label %each.body10220, label %each.end10222 -each.body10220: + br i1 %t35, label %each.body10625, label %each.end10627 +each.body10625: %t36 = load ptr, ptr %a30 %t37 = getelementptr inbounds { ptr, i64, i64 }, ptr %t36, i64 %t34 %t38 = load { ptr, i64, i64 }, ptr %t37 @@ -104914,7 +108939,7 @@ each.body10220: %t40 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 1 %t41 = load { ptr, i64, i64 }, ptr %t40 store { ptr, i64, i64 } %t41, ptr %a43 - store { ptr, i64, i64 } { ptr @.str.6850, i64 4, i64 0 }, ptr %a44 + store { ptr, i64, i64 } { ptr @.str.7058, i64 4, i64 0 }, ptr %a44 call void @finch_str_concat(ptr %a42, ptr %a43, ptr %a44) %t45 = load { ptr, i64, i64 }, ptr %a42 %t46 = load i64, ptr %a5 @@ -104929,7 +108954,7 @@ each.body10220: call void @finch_str_drop(ptr %a53) %t54 = load { ptr, i64, i64 }, ptr %a49 store { ptr, i64, i64 } %t54, ptr %a56 - store { ptr, i64, i64 } { ptr @.str.6851, i64 4, i64 0 }, ptr %a57 + store { ptr, i64, i64 } { ptr @.str.7059, i64 4, i64 0 }, ptr %a57 call void @finch_str_concat(ptr %a55, ptr %a56, ptr %a57) store { ptr, i64, i64 } %t54, ptr %a58 call void @finch_str_drop(ptr %a58) @@ -104941,14 +108966,14 @@ each.body10220: store { ptr, i64, i64 } %t63, ptr %a64 %t65 = call i64 @finch_map_find(ptr %t62, ptr %a64, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t66 = icmp slt i64 %t65, 0 - br i1 %t66, label %map.missing10223, label %map.found10224 -map.missing10223: + br i1 %t66, label %map.missing10628, label %map.found10629 +map.missing10628: store { ptr, i64, i64 } zeroinitializer, ptr %a67 store { ptr, i64, i64 } %t63, ptr %a68 call void @finch_buf_str(ptr %a67, ptr %a68, i32 1) - call void @finch_map_missing(ptr @.str.6852, i64 333, ptr %a67) + call void @finch_map_missing(ptr @.str.7060, i64 333, ptr %a67) unreachable -map.found10224: +map.found10629: %t69 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t62, i32 0, i32 0 %t70 = load ptr, ptr %t69 %t71 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t70, i64 %t65 @@ -104960,12 +108985,12 @@ map.found10224: %t77 = icmp ne i32 %t76, 0 %t78 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t78, ptr %a80 - store { ptr, i64, i64 } { ptr @.str.6853, i64 11, i64 0 }, ptr %a81 + store { ptr, i64, i64 } { ptr @.str.7061, i64 11, i64 0 }, ptr %a81 call void @finch_str_concat(ptr %a79, ptr %a80, ptr %a81) %t82 = load { ptr, i64, i64 }, ptr %a79 %t83 = load { ptr, i64, i64 }, ptr %a39 store { ptr, i64, i64 } %t83, ptr %a85 - store { ptr, i64, i64 } { ptr @.str.6854, i64 1, i64 0 }, ptr %a86 + store { ptr, i64, i64 } { ptr @.str.7062, i64 1, i64 0 }, ptr %a86 call void @finch_str_concat(ptr %a84, ptr %a85, ptr %a86) %t87 = load { ptr, i64, i64 }, ptr %a84 %t88 = load { ptr, i64, i64 }, ptr %a60 @@ -104994,18 +109019,18 @@ map.found10224: %t105 = add i64 %t104, 1 store i64 %t105, ptr %a5 call void @finch_str_drop(ptr %a60) - br label %each.step10221 -each.step10221: + br label %each.step10626 +each.step10626: %t106 = load i64, ptr %a31 %t107 = add i64 %t106, 1 store i64 %t107, ptr %a31 - br label %each.cond10219 -each.end10222: + br label %each.cond10624 +each.end10627: call void @finch.drop.arr_str(ptr %a30) %t108 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 1 %t109 = load { ptr, i64, i64 }, ptr %t108 store { ptr, i64, i64 } %t109, ptr %a111 - store { ptr, i64, i64 } { ptr @.str.6855, i64 8, i64 0 }, ptr %a112 + store { ptr, i64, i64 } { ptr @.str.7063, i64 8, i64 0 }, ptr %a112 call void @finch_str_concat(ptr %a110, ptr %a111, ptr %a112) %t113 = load { ptr, i64, i64 }, ptr %a110 store { ptr, i64, i64 } %t113, ptr %a114 @@ -105013,7 +109038,7 @@ each.end10222: %t116 = load { ptr, i64, i64 }, ptr %t115 %t117 = call { ptr, i64, i64 } @finch.host.quote({ ptr, i64, i64 } %t116) store { ptr, i64, i64 } %t117, ptr %a119 - store { ptr, i64, i64 } { ptr @.str.6856, i64 7, i64 0 }, ptr %a120 + store { ptr, i64, i64 } { ptr @.str.7064, i64 7, i64 0 }, ptr %a120 call void @finch_str_concat(ptr %a118, ptr %a119, ptr %a120) store { ptr, i64, i64 } %t117, ptr %a121 call void @finch_str_drop(ptr %a121) @@ -105036,7 +109061,7 @@ each.end10222: call void @finch_str_drop(ptr %a135) %t136 = load { ptr, i64, i64 }, ptr %a132 store { ptr, i64, i64 } %t136, ptr %a138 - store { ptr, i64, i64 } { ptr @.str.6857, i64 3, i64 0 }, ptr %a139 + store { ptr, i64, i64 } { ptr @.str.7065, i64 3, i64 0 }, ptr %a139 call void @finch_str_concat(ptr %a137, ptr %a138, ptr %a139) store { ptr, i64, i64 } %t136, ptr %a140 call void @finch_str_drop(ptr %a140) @@ -105052,7 +109077,7 @@ each.end10222: call void @finch_str_drop(ptr %a148) %t149 = load { ptr, i64, i64 }, ptr %a144 store { ptr, i64, i64 } %t149, ptr %a151 - store { ptr, i64, i64 } { ptr @.str.6858, i64 5, i64 0 }, ptr %a152 + store { ptr, i64, i64 } { ptr @.str.7066, i64 5, i64 0 }, ptr %a152 call void @finch_str_concat(ptr %a150, ptr %a151, ptr %a152) store { ptr, i64, i64 } %t149, ptr %a153 call void @finch_str_drop(ptr %a153) @@ -105068,17 +109093,17 @@ each.end10222: %t162 = icmp eq i32 %t161, 0 %t163 = load { ptr, i64, i64 }, ptr %a160 %t164 = load { ptr, i64, i64 }, ptr %a159 - br i1 %t162, label %or.failed10225, label %or.ok10226 -or.failed10225: + br i1 %t162, label %or.failed10630, label %or.ok10631 +or.failed10630: store { ptr, i64, i64 } %t163, ptr %a165 call void @finch_str_drop(ptr %a165) - br label %or.bend10227 -or.bend10227: - br label %or.end10228 -or.ok10226: - br label %or.end10228 -or.end10228: - %t166 = phi { ptr, i64, i64 } [ { ptr @.str.6859, i64 0, i64 0 }, %or.bend10227 ], [ %t164, %or.ok10226 ] + br label %or.bend10632 +or.bend10632: + br label %or.end10633 +or.ok10631: + br label %or.end10633 +or.end10633: + %t166 = phi { ptr, i64, i64 } [ { ptr @.str.7067, i64 0, i64 0 }, %or.bend10632 ], [ %t164, %or.ok10631 ] %t167 = call %S.lsp.Analysis @finch.lsp.parseOutput({ ptr, i64, i64 } %t166) store { ptr, i64, i64 } %t166, ptr %a168 call void @finch_str_drop(ptr %a168) @@ -105087,8 +109112,8 @@ or.end10228: %t171 = getelementptr inbounds %S.lsp.Diag, ptr %t170, i32 0, i32 0 %t172 = load i1, ptr %t171 %t173 = xor i1 %t172, true - br i1 %t173, label %then10229, label %else10230 -then10229: + br i1 %t173, label %then10634, label %else10635 +then10634: %t174 = load %S.lsp.Analysis, ptr %a169 %t175 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 4 %t176 = load { ptr, i64, i64 }, ptr %a1 @@ -105100,14 +109125,14 @@ then10229: %t182 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t181, i64 %t179 %t183 = load i32, ptr %a178 %t184 = icmp ne i32 %t183, 0 - br i1 %t184, label %map.new10232, label %map.have10233 -map.new10232: + br i1 %t184, label %map.new10637, label %map.have10638 +map.new10637: %t185 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t182, i32 0, i32 1 call void @finch_str_copy(ptr %t185, ptr %a177) %t186 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t182, i32 0, i32 2 store %S.lsp.Analysis zeroinitializer, ptr %t186 - br label %map.have10233 -map.have10233: + br label %map.have10638 +map.have10638: %t187 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t182, i32 0, i32 2 store %S.lsp.Analysis %t174, ptr %a188 call void @finch.copy.S_lsp_Analysis(ptr %a189, ptr %a188) @@ -105116,28 +109141,28 @@ map.have10233: store %S.lsp.Analysis %t190, ptr %t187 store %S.lsp.Analysis %t191, ptr %a192 call void @finch.drop.S_lsp_Analysis(ptr %a192) - br label %endif10231 -else10230: + br label %endif10636 +else10635: %t193 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 4 %t194 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t194, ptr %a195 %t196 = call i64 @finch_map_find(ptr %t193, ptr %a195, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t197 = icmp sge i64 %t196, 0 - br i1 %t197, label %then10264, label %endif10266 -then10264: + br i1 %t197, label %then10669, label %endif10671 +then10669: %t198 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 4 %t199 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t199, ptr %a200 %t201 = call i64 @finch_map_find(ptr %t198, ptr %a200, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t202 = icmp slt i64 %t201, 0 - br i1 %t202, label %map.missing10267, label %map.found10268 -map.missing10267: + br i1 %t202, label %map.missing10672, label %map.found10673 +map.missing10672: store { ptr, i64, i64 } zeroinitializer, ptr %a203 store { ptr, i64, i64 } %t199, ptr %a204 call void @finch_buf_str(ptr %a203, ptr %a204, i32 1) - call void @finch_map_missing(ptr @.str.6860, i64 344, ptr %a203) + call void @finch_map_missing(ptr @.str.7068, i64 344, ptr %a203) unreachable -map.found10268: +map.found10673: %t205 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t198, i32 0, i32 0 %t206 = load ptr, ptr %t205 %t207 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t206, i64 %t201 @@ -105191,8 +109216,8 @@ map.found10268: %t247 = getelementptr inbounds { ptr, i64, i64 }, ptr %t246, i32 0, i32 1 %t248 = load i64, ptr %t247 %t249 = icmp eq i64 %t248, 0 - br i1 %t249, label %then10269, label %endif10271 -then10269: + br i1 %t249, label %then10674, label %endif10676 +then10674: %t250 = getelementptr inbounds %S.lsp.Analysis, ptr %a213, i32 0, i32 5 %t251 = load { ptr, i64, i64 }, ptr %t250 %t252 = getelementptr inbounds %S.lsp.Analysis, ptr %a169, i32 0, i32 5 @@ -105203,13 +109228,13 @@ then10269: store { ptr, i64, i64 } %t255, ptr %t252 store { ptr, i64, i64 } %t256, ptr %a257 call void @finch.drop.arr_str(ptr %a257) - br label %endif10271 -endif10271: + br label %endif10676 +endif10676: call void @finch.drop.S_lsp_Analysis(ptr %a213) - br label %endif10266 -endif10266: - br label %endif10231 -endif10231: + br label %endif10671 +endif10671: + br label %endif10636 +endif10636: %t258 = load %S.lsp.Analysis, ptr %a169 %t259 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 3 %t260 = load { ptr, i64, i64 }, ptr %a1 @@ -105221,14 +109246,14 @@ endif10231: %t266 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t265, i64 %t263 %t267 = load i32, ptr %a262 %t268 = icmp ne i32 %t267, 0 - br i1 %t268, label %map.new10272, label %map.have10273 -map.new10272: + br i1 %t268, label %map.new10677, label %map.have10678 +map.new10677: %t269 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t266, i32 0, i32 1 call void @finch_str_copy(ptr %t269, ptr %a261) %t270 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t266, i32 0, i32 2 store %S.lsp.Analysis zeroinitializer, ptr %t270 - br label %map.have10273 -map.have10273: + br label %map.have10678 +map.have10678: %t271 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t266, i32 0, i32 2 store %S.lsp.Analysis %t258, ptr %a272 call void @finch.copy.S_lsp_Analysis(ptr %a273, ptr %a272) @@ -105298,14 +109323,14 @@ entry: store { ptr, i64, i64 } %t12, ptr %a13 %t14 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 5 store i64 0, ptr %a15 - br label %each.cond10274 -each.cond10274: + br label %each.cond10679 +each.cond10679: %t16 = getelementptr inbounds { ptr, i64, i64 }, ptr %t14, i32 0, i32 1 %t17 = load i64, ptr %t16 %t18 = load i64, ptr %a15 %t19 = icmp slt i64 %t18, %t17 - br i1 %t19, label %each.body10275, label %each.end10277 -each.body10275: + br i1 %t19, label %each.body10680, label %each.end10682 +each.body10680: %t20 = load ptr, ptr %t14 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t20, i64 %t18 %t22 = load { ptr, i64, i64 }, ptr %t21 @@ -105316,32 +109341,32 @@ each.body10275: %t27 = load i64, ptr %t24 %t28 = load ptr, ptr %a13 store i64 0, ptr %a29 - br label %find.cond10278 -find.cond10278: + br label %find.cond10683 +find.cond10683: %t30 = load i64, ptr %a29 %t31 = icmp slt i64 %t30, %t27 - br i1 %t31, label %find.body10279, label %find.end10282 -find.body10279: + br i1 %t31, label %find.body10684, label %find.end10687 +find.body10684: %t32 = getelementptr inbounds { ptr, i64, i64 }, ptr %t28, i64 %t30 %t33 = load { ptr, i64, i64 }, ptr %t32 store { ptr, i64, i64 } %t33, ptr %a34 store { ptr, i64, i64 } %t25, ptr %a35 %t36 = call i32 @finch_str_eq(ptr %a34, ptr %a35) %t37 = icmp ne i32 %t36, 0 - br i1 %t37, label %find.hit10280, label %find.next10281 -find.hit10280: + br i1 %t37, label %find.hit10685, label %find.next10686 +find.hit10685: store i64 %t30, ptr %a26 - br label %find.end10282 -find.next10281: + br label %find.end10687 +find.next10686: %t38 = add i64 %t30, 1 store i64 %t38, ptr %a29 - br label %find.cond10278 -find.end10282: + br label %find.cond10683 +find.end10687: %t39 = load i64, ptr %a26 %t40 = icmp sge i64 %t39, 0 %t41 = xor i1 %t40, true - br i1 %t41, label %then10283, label %endif10285 -then10283: + br i1 %t41, label %then10688, label %endif10690 +then10688: %t42 = getelementptr inbounds { ptr, i64, i64 }, ptr %a13, i32 0, i32 1 %t43 = load { ptr, i64, i64 }, ptr %a23 store { ptr, i64, i64 } %t43, ptr %a44 @@ -105354,25 +109379,25 @@ then10283: %t50 = getelementptr inbounds { ptr, i64, i64 }, ptr %t49, i64 %t47 store { ptr, i64, i64 } %t46, ptr %t50 store i64 %t48, ptr %t42 - br label %endif10285 -endif10285: - br label %each.step10276 -each.step10276: + br label %endif10690 +endif10690: + br label %each.step10681 +each.step10681: %t51 = load i64, ptr %a15 %t52 = add i64 %t51, 1 store i64 %t52, ptr %a15 - br label %each.cond10274 -each.end10277: + br label %each.cond10679 +each.end10682: store { ptr, i64, i64 } zeroinitializer, ptr %a53 store i64 0, ptr %a54 - br label %each.cond10286 -each.cond10286: + br label %each.cond10691 +each.cond10691: %t55 = getelementptr inbounds { ptr, i64, i64 }, ptr %a13, i32 0, i32 1 %t56 = load i64, ptr %t55 %t57 = load i64, ptr %a54 %t58 = icmp slt i64 %t57, %t56 - br i1 %t58, label %each.body10287, label %each.end10289 -each.body10287: + br i1 %t58, label %each.body10692, label %each.end10694 +each.body10692: %t59 = load ptr, ptr %a13 %t60 = getelementptr inbounds { ptr, i64, i64 }, ptr %t59, i64 %t57 %t61 = load { ptr, i64, i64 }, ptr %t60 @@ -105382,10 +109407,10 @@ each.body10287: %t65 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 6 %t66 = getelementptr inbounds %S.lsp.Diag, ptr %t65, i32 0, i32 0 %t67 = load i1, ptr %t66 - br label %logic.from10290 -logic.from10290: - br i1 %t67, label %logic.rhs10291, label %logic.end10292 -logic.rhs10291: + br label %logic.from10695 +logic.from10695: + br i1 %t67, label %logic.rhs10696, label %logic.end10697 +logic.rhs10696: %t68 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 6 %t69 = getelementptr inbounds %S.lsp.Diag, ptr %t68, i32 0, i32 1 %t70 = load { ptr, i64, i64 }, ptr %t69 @@ -105394,13 +109419,13 @@ logic.rhs10291: store { ptr, i64, i64 } %t71, ptr %a73 %t74 = call i32 @finch_str_eq(ptr %a72, ptr %a73) %t75 = icmp ne i32 %t74, 0 - br label %logic.rend10293 -logic.rend10293: - br label %logic.end10292 -logic.end10292: - %t76 = phi i1 [ false, %logic.from10290 ], [ %t75, %logic.rend10293 ] - br i1 %t76, label %then10294, label %endif10296 -then10294: + br label %logic.rend10698 +logic.rend10698: + br label %logic.end10697 +logic.end10697: + %t76 = phi i1 [ false, %logic.from10695 ], [ %t75, %logic.rend10698 ] + br i1 %t76, label %then10699, label %endif10701 +then10699: %t77 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 6 %t78 = getelementptr inbounds %S.lsp.Diag, ptr %t77, i32 0, i32 2 %t79 = load i64, ptr %t78 @@ -105408,11 +109433,11 @@ then10294: store i64 %t80, ptr %a81 %t82 = load i64, ptr %a81 %t83 = icmp slt i64 %t82, 0 - br i1 %t83, label %then10297, label %endif10299 -then10297: + br i1 %t83, label %then10702, label %endif10704 +then10702: store i64 0, ptr %a81 - br label %endif10299 -endif10299: + br label %endif10704 +endif10704: %t84 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 6 %t85 = getelementptr inbounds %S.lsp.Diag, ptr %t84, i32 0, i32 3 %t86 = load i64, ptr %t85 @@ -105420,11 +109445,11 @@ endif10299: store i64 %t87, ptr %a88 %t89 = load i64, ptr %a88 %t90 = icmp slt i64 %t89, 0 - br i1 %t90, label %then10300, label %endif10302 -then10300: + br i1 %t90, label %then10705, label %endif10707 +then10705: store i64 0, ptr %a88 - br label %endif10302 -endif10302: + br label %endif10707 +endif10707: %t91 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t91, ptr %a92 %t93 = load i64, ptr %a81 @@ -105432,22 +109457,22 @@ endif10302: %t95 = load i64, ptr %a88 %t96 = add i64 %t95, 1 %t97 = call %S.json.Json @finch.lsp.range(i64 %t93, i64 %t94, i64 %t96) - call void @finch.json.Json.set(ptr %a92, { ptr, i64, i64 } { ptr @.str.6861, i64 5, i64 0 }, %S.json.Json %t97) + call void @finch.json.Json.set(ptr %a92, { ptr, i64, i64 } { ptr @.str.7069, i64 5, i64 0 }, %S.json.Json %t97) store %S.json.Json %t97, ptr %a98 call void @finch.drop.S_json_Json(ptr %a98) %t99 = call %S.json.Json @finch.lsp.num(i64 1) - call void @finch.json.Json.set(ptr %a92, { ptr, i64, i64 } { ptr @.str.6862, i64 8, i64 0 }, %S.json.Json %t99) + call void @finch.json.Json.set(ptr %a92, { ptr, i64, i64 } { ptr @.str.7070, i64 8, i64 0 }, %S.json.Json %t99) store %S.json.Json %t99, ptr %a100 call void @finch.drop.S_json_Json(ptr %a100) - %t101 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.6864, i64 5, i64 0 }) - call void @finch.json.Json.set(ptr %a92, { ptr, i64, i64 } { ptr @.str.6863, i64 6, i64 0 }, %S.json.Json %t101) + %t101 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.7072, i64 5, i64 0 }) + call void @finch.json.Json.set(ptr %a92, { ptr, i64, i64 } { ptr @.str.7071, i64 6, i64 0 }, %S.json.Json %t101) store %S.json.Json %t101, ptr %a102 call void @finch.drop.S_json_Json(ptr %a102) %t103 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 6 %t104 = getelementptr inbounds %S.lsp.Diag, ptr %t103, i32 0, i32 4 %t105 = load { ptr, i64, i64 }, ptr %t104 %t106 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t105) - call void @finch.json.Json.set(ptr %a92, { ptr, i64, i64 } { ptr @.str.6865, i64 7, i64 0 }, %S.json.Json %t106) + call void @finch.json.Json.set(ptr %a92, { ptr, i64, i64 } { ptr @.str.7073, i64 7, i64 0 }, %S.json.Json %t106) store %S.json.Json %t106, ptr %a107 call void @finch.drop.S_json_Json(ptr %a107) %t108 = load %S.json.Json, ptr %a92 @@ -105465,8 +109490,8 @@ endif10302: store { ptr, i64, i64 } %t113, ptr %t117 store i64 %t115, ptr %t109 call void @finch.drop.S_json_Json(ptr %a92) - br label %endif10296 -endif10296: + br label %endif10701 +endif10701: %t118 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t118, ptr %a119 %t120 = load { ptr, i64, i64 }, ptr %a62 @@ -105474,22 +109499,22 @@ endif10296: %t122 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t121) store { ptr, i64, i64 } %t121, ptr %a123 call void @finch_str_drop(ptr %a123) - call void @finch.json.Json.set(ptr %a119, { ptr, i64, i64 } { ptr @.str.6866, i64 3, i64 0 }, %S.json.Json %t122) + call void @finch.json.Json.set(ptr %a119, { ptr, i64, i64 } { ptr @.str.7074, i64 3, i64 0 }, %S.json.Json %t122) store %S.json.Json %t122, ptr %a124 call void @finch.drop.S_json_Json(ptr %a124) %t125 = load %S.json.Json, ptr %a64 - call void @finch.json.Json.set(ptr %a119, { ptr, i64, i64 } { ptr @.str.6867, i64 11, i64 0 }, %S.json.Json %t125) + call void @finch.json.Json.set(ptr %a119, { ptr, i64, i64 } { ptr @.str.7075, i64 11, i64 0 }, %S.json.Json %t125) %t126 = load %S.json.Json, ptr %a119 - call void @finch.lsp.notify({ ptr, i64, i64 } { ptr @.str.6868, i64 31, i64 0 }, %S.json.Json %t126) + call void @finch.lsp.notify({ ptr, i64, i64 } { ptr @.str.7076, i64 31, i64 0 }, %S.json.Json %t126) call void @finch.drop.S_json_Json(ptr %a119) call void @finch.drop.S_json_Json(ptr %a64) - br label %each.step10288 -each.step10288: + br label %each.step10693 +each.step10693: %t127 = load i64, ptr %a54 %t128 = add i64 %t127, 1 store i64 %t128, ptr %a54 - br label %each.cond10286 -each.end10289: + br label %each.cond10691 +each.end10694: %t129 = load { ptr, i64, i64 }, ptr %a53 %t130 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 5 store { ptr, i64, i64 } %t129, ptr %a131 @@ -105524,22 +109549,22 @@ entry: %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t7 = load i64, ptr %t6 store i64 0, ptr %a8 - br label %for.cond10303 -for.cond10303: + br label %for.cond10708 +for.cond10708: %t9 = load i64, ptr %a8 %t10 = icmp slt i64 %t9, %t7 - br i1 %t10, label %for.body10304, label %for.end10306 -for.body10304: + br i1 %t10, label %for.body10709, label %for.end10711 +for.body10709: %t11 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 0 %t12 = load i64, ptr %a8 %t13 = load { ptr, i64, i64 }, ptr %t11 %t14 = extractvalue { ptr, i64, i64 } %t13, 1 %t15 = icmp uge i64 %t12, %t14 - br i1 %t15, label %range10307, label %inrange10308 -range10307: - call void @finch_panic_index(ptr @.str.6869, i64 397, i64 %t12, i64 %t14) + br i1 %t15, label %range10712, label %inrange10713 +range10712: + call void @finch_panic_index(ptr @.str.7077, i64 397, i64 %t12, i64 %t14) unreachable -inrange10308: +inrange10713: %t16 = extractvalue { ptr, i64, i64 } %t13, 0 %t17 = getelementptr inbounds %S.lsp.Ref, ptr %t16, i64 %t12 %t18 = load %S.lsp.Ref, ptr %t17 @@ -105551,23 +109576,23 @@ inrange10308: %t24 = load i64, ptr %t23 %t25 = load i64, ptr %a3 %t26 = icmp eq i64 %t24, %t25 - br label %logic.from10309 -logic.from10309: - br i1 %t26, label %logic.rhs10310, label %logic.end10311 -logic.rhs10310: + br label %logic.from10714 +logic.from10714: + br i1 %t26, label %logic.rhs10715, label %logic.end10716 +logic.rhs10715: %t27 = load i64, ptr %a4 %t28 = getelementptr inbounds %S.lsp.Ref, ptr %a22, i32 0, i32 2 %t29 = load i64, ptr %t28 %t30 = icmp sge i64 %t27, %t29 - br label %logic.rend10312 -logic.rend10312: - br label %logic.end10311 -logic.end10311: - %t31 = phi i1 [ false, %logic.from10309 ], [ %t30, %logic.rend10312 ] - br label %logic.from10313 -logic.from10313: - br i1 %t31, label %logic.rhs10314, label %logic.end10315 -logic.rhs10314: + br label %logic.rend10717 +logic.rend10717: + br label %logic.end10716 +logic.end10716: + %t31 = phi i1 [ false, %logic.from10714 ], [ %t30, %logic.rend10717 ] + br label %logic.from10718 +logic.from10718: + br i1 %t31, label %logic.rhs10719, label %logic.end10720 +logic.rhs10719: %t32 = load i64, ptr %a4 %t33 = getelementptr inbounds %S.lsp.Ref, ptr %a22, i32 0, i32 2 %t34 = load i64, ptr %t33 @@ -105575,15 +109600,15 @@ logic.rhs10314: %t36 = load i64, ptr %t35 %t37 = add i64 %t34, %t36 %t38 = icmp sle i64 %t32, %t37 - br label %logic.rend10316 -logic.rend10316: - br label %logic.end10315 -logic.end10315: - %t39 = phi i1 [ false, %logic.from10313 ], [ %t38, %logic.rend10316 ] - br label %logic.from10317 -logic.from10317: - br i1 %t39, label %logic.rhs10318, label %logic.end10319 -logic.rhs10318: + br label %logic.rend10721 +logic.rend10721: + br label %logic.end10720 +logic.end10720: + %t39 = phi i1 [ false, %logic.from10718 ], [ %t38, %logic.rend10721 ] + br label %logic.from10722 +logic.from10722: + br i1 %t39, label %logic.rhs10723, label %logic.end10724 +logic.rhs10723: %t40 = getelementptr inbounds %S.lsp.Ref, ptr %a22, i32 0, i32 0 %t41 = load { ptr, i64, i64 }, ptr %t40 %t42 = load { ptr, i64, i64 }, ptr %a2 @@ -105591,25 +109616,25 @@ logic.rhs10318: store { ptr, i64, i64 } %t42, ptr %a44 %t45 = call i32 @finch_str_eq(ptr %a43, ptr %a44) %t46 = icmp ne i32 %t45, 0 - br label %logic.rend10320 -logic.rend10320: - br label %logic.end10319 -logic.end10319: - %t47 = phi i1 [ false, %logic.from10317 ], [ %t46, %logic.rend10320 ] - br i1 %t47, label %then10321, label %endif10323 -then10321: + br label %logic.rend10725 +logic.rend10725: + br label %logic.end10724 +logic.end10724: + %t47 = phi i1 [ false, %logic.from10722 ], [ %t46, %logic.rend10725 ] + br i1 %t47, label %then10726, label %endif10728 +then10726: %t48 = load i64, ptr %a8 call void @finch.drop.S_lsp_Ref(ptr %a22) ret i64 %t48 -endif10323: +endif10728: call void @finch.drop.S_lsp_Ref(ptr %a22) - br label %for.step10305 -for.step10305: + br label %for.step10710 +for.step10710: %t49 = load i64, ptr %a8 %t50 = add i64 %t49, 1 store i64 %t50, ptr %a8 - br label %for.cond10303 -for.end10306: + br label %for.cond10708 +for.end10711: ret i64 -1 } @@ -105636,15 +109661,15 @@ entry: store i64 %t9, ptr %a10 %t11 = load i64, ptr %a10 %t12 = icmp slt i64 %t11, 0 - br i1 %t12, label %then10324, label %endif10326 -then10324: + br i1 %t12, label %then10729, label %endif10731 +then10729: %t13 = call %S.json.Json @finch.json.new_null() ret %S.json.Json %t13 -endif10326: +endif10731: %t14 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t14, ptr %a15 - %t16 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.6871, i64 8, i64 0 }) - call void @finch.json.Json.set(ptr %a15, { ptr, i64, i64 } { ptr @.str.6870, i64 4, i64 0 }, %S.json.Json %t16) + %t16 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.7079, i64 8, i64 0 }) + call void @finch.json.Json.set(ptr %a15, { ptr, i64, i64 } { ptr @.str.7078, i64 4, i64 0 }, %S.json.Json %t16) store %S.json.Json %t16, ptr %a17 call void @finch.drop.S_json_Json(ptr %a17) %t18 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 0 @@ -105652,23 +109677,23 @@ endif10326: %t20 = load { ptr, i64, i64 }, ptr %t18 %t21 = extractvalue { ptr, i64, i64 } %t20, 1 %t22 = icmp uge i64 %t19, %t21 - br i1 %t22, label %range10327, label %inrange10328 -range10327: - call void @finch_panic_index(ptr @.str.6873, i64 412, i64 %t19, i64 %t21) + br i1 %t22, label %range10732, label %inrange10733 +range10732: + call void @finch_panic_index(ptr @.str.7081, i64 412, i64 %t19, i64 %t21) unreachable -inrange10328: +inrange10733: %t23 = extractvalue { ptr, i64, i64 } %t20, 0 %t24 = getelementptr inbounds %S.lsp.Ref, ptr %t23, i64 %t19 %t25 = getelementptr inbounds %S.lsp.Ref, ptr %t24, i32 0, i32 7 %t26 = load { ptr, i64, i64 }, ptr %t25 %t27 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t26) - call void @finch.json.Json.set(ptr %a15, { ptr, i64, i64 } { ptr @.str.6872, i64 5, i64 0 }, %S.json.Json %t27) + call void @finch.json.Json.set(ptr %a15, { ptr, i64, i64 } { ptr @.str.7080, i64 5, i64 0 }, %S.json.Json %t27) store %S.json.Json %t27, ptr %a28 call void @finch.drop.S_json_Json(ptr %a28) %t29 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t29, ptr %a30 %t31 = load %S.json.Json, ptr %a15 - call void @finch.json.Json.set(ptr %a30, { ptr, i64, i64 } { ptr @.str.6874, i64 8, i64 0 }, %S.json.Json %t31) + call void @finch.json.Json.set(ptr %a30, { ptr, i64, i64 } { ptr @.str.7082, i64 8, i64 0 }, %S.json.Json %t31) %t32 = load %S.json.Json, ptr %a30 call void @finch.drop.S_json_Json(ptr %a15) ret %S.json.Json %t32 @@ -105700,46 +109725,46 @@ entry: store i64 %t9, ptr %a10 %t11 = load i64, ptr %a10 %t12 = icmp slt i64 %t11, 0 - br label %logic.from10329 -logic.from10329: - br i1 %t12, label %logic.end10331, label %logic.rhs10330 -logic.rhs10330: + br label %logic.from10734 +logic.from10734: + br i1 %t12, label %logic.end10736, label %logic.rhs10735 +logic.rhs10735: %t13 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 0 %t14 = load i64, ptr %a10 %t15 = load { ptr, i64, i64 }, ptr %t13 %t16 = extractvalue { ptr, i64, i64 } %t15, 1 %t17 = icmp uge i64 %t14, %t16 - br i1 %t17, label %range10332, label %inrange10333 -range10332: - call void @finch_panic_index(ptr @.str.6875, i64 420, i64 %t14, i64 %t16) + br i1 %t17, label %range10737, label %inrange10738 +range10737: + call void @finch_panic_index(ptr @.str.7083, i64 420, i64 %t14, i64 %t16) unreachable -inrange10333: +inrange10738: %t18 = extractvalue { ptr, i64, i64 } %t15, 0 %t19 = getelementptr inbounds %S.lsp.Ref, ptr %t18, i64 %t14 %t20 = getelementptr inbounds %S.lsp.Ref, ptr %t19, i32 0, i32 4 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t20, i32 0, i32 1 %t22 = load i64, ptr %t21 %t23 = icmp eq i64 %t22, 0 - br label %logic.rend10334 -logic.rend10334: - br label %logic.end10331 -logic.end10331: - %t24 = phi i1 [ true, %logic.from10329 ], [ %t23, %logic.rend10334 ] - br i1 %t24, label %then10335, label %endif10337 -then10335: + br label %logic.rend10739 +logic.rend10739: + br label %logic.end10736 +logic.end10736: + %t24 = phi i1 [ true, %logic.from10734 ], [ %t23, %logic.rend10739 ] + br i1 %t24, label %then10740, label %endif10742 +then10740: %t25 = call %S.json.Json @finch.json.new_null() ret %S.json.Json %t25 -endif10337: +endif10742: %t26 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 0 %t27 = load i64, ptr %a10 %t28 = load { ptr, i64, i64 }, ptr %t26 %t29 = extractvalue { ptr, i64, i64 } %t28, 1 %t30 = icmp uge i64 %t27, %t29 - br i1 %t30, label %range10338, label %inrange10339 -range10338: - call void @finch_panic_index(ptr @.str.6876, i64 423, i64 %t27, i64 %t29) + br i1 %t30, label %range10743, label %inrange10744 +range10743: + call void @finch_panic_index(ptr @.str.7084, i64 423, i64 %t27, i64 %t29) unreachable -inrange10339: +inrange10744: %t31 = extractvalue { ptr, i64, i64 } %t28, 0 %t32 = getelementptr inbounds %S.lsp.Ref, ptr %t31, i64 %t27 %t33 = load %S.lsp.Ref, ptr %t32 @@ -105755,7 +109780,7 @@ inrange10339: %t43 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t42) store { ptr, i64, i64 } %t42, ptr %a44 call void @finch_str_drop(ptr %a44) - call void @finch.json.Json.set(ptr %a39, { ptr, i64, i64 } { ptr @.str.6877, i64 3, i64 0 }, %S.json.Json %t43) + call void @finch.json.Json.set(ptr %a39, { ptr, i64, i64 } { ptr @.str.7085, i64 3, i64 0 }, %S.json.Json %t43) store %S.json.Json %t43, ptr %a45 call void @finch.drop.S_json_Json(ptr %a45) %t46 = getelementptr inbounds %S.lsp.Ref, ptr %a37, i32 0, i32 5 @@ -105768,7 +109793,7 @@ inrange10339: %t53 = load i64, ptr %t52 %t54 = sub i64 %t53, 1 %t55 = call %S.json.Json @finch.lsp.range(i64 %t48, i64 %t51, i64 %t54) - call void @finch.json.Json.set(ptr %a39, { ptr, i64, i64 } { ptr @.str.6878, i64 5, i64 0 }, %S.json.Json %t55) + call void @finch.json.Json.set(ptr %a39, { ptr, i64, i64 } { ptr @.str.7086, i64 5, i64 0 }, %S.json.Json %t55) store %S.json.Json %t55, ptr %a56 call void @finch.drop.S_json_Json(ptr %a56) %t57 = load %S.json.Json, ptr %a39 @@ -105814,14 +109839,14 @@ entry: store %S.json.Json %t3, ptr %a4 %t5 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 2 store i64 0, ptr %a6 - br label %each.cond10340 -each.cond10340: + br label %each.cond10745 +each.cond10745: %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t8 = load i64, ptr %t7 %t9 = load i64, ptr %a6 %t10 = icmp slt i64 %t9, %t8 - br i1 %t10, label %each.body10341, label %each.end10343 -each.body10341: + br i1 %t10, label %each.body10746, label %each.end10748 +each.body10746: %t11 = load ptr, ptr %t5 %t12 = getelementptr inbounds %S.lsp.FnRec, ptr %t11, i64 %t9 %t13 = load %S.lsp.FnRec, ptr %t12 @@ -105833,10 +109858,10 @@ each.body10341: store { ptr, i64, i64 } %t17, ptr %a19 %t20 = call i32 @finch_str_eq(ptr %a18, ptr %a19) %t21 = icmp eq i32 %t20, 0 - br i1 %t21, label %then10344, label %endif10346 -then10344: - br label %each.step10342 -endif10346: + br i1 %t21, label %then10749, label %endif10751 +then10749: + br label %each.step10747 +endif10751: store i64 12, ptr %a22 %t23 = getelementptr inbounds %S.lsp.FnRec, ptr %a14, i32 0, i32 1 %t24 = load { ptr, i64, i64 }, ptr %t23 @@ -105848,13 +109873,13 @@ endif10346: %t30 = getelementptr inbounds { ptr, i64, i64 }, ptr %t29, i32 0, i32 1 %t31 = load i64, ptr %t30 %t32 = icmp sgt i64 %t31, 0 - br i1 %t32, label %then10347, label %endif10349 -then10347: + br i1 %t32, label %then10752, label %endif10754 +then10752: store i64 6, ptr %a22 %t33 = getelementptr inbounds %S.lsp.FnRec, ptr %a14, i32 0, i32 2 %t34 = load { ptr, i64, i64 }, ptr %t33 store { ptr, i64, i64 } %t34, ptr %a36 - store { ptr, i64, i64 } { ptr @.str.6879, i64 1, i64 0 }, ptr %a37 + store { ptr, i64, i64 } { ptr @.str.7087, i64 1, i64 0 }, ptr %a37 call void @finch_str_concat(ptr %a35, ptr %a36, ptr %a37) %t38 = load { ptr, i64, i64 }, ptr %a35 %t39 = getelementptr inbounds %S.lsp.FnRec, ptr %a14, i32 0, i32 1 @@ -105869,8 +109894,8 @@ then10347: store { ptr, i64, i64 } %t45, ptr %a28 store { ptr, i64, i64 } %t46, ptr %a47 call void @finch_str_drop(ptr %a47) - br label %endif10349 -endif10349: + br label %endif10754 +endif10754: %t48 = load { ptr, i64, i64 }, ptr %a28 %t49 = load i64, ptr %a22 %t50 = getelementptr inbounds %S.lsp.FnRec, ptr %a14, i32 0, i32 4 @@ -105884,23 +109909,23 @@ endif10349: store %S.json.Json %t56, ptr %a57 call void @finch.drop.S_json_Json(ptr %a57) call void @finch_str_drop(ptr %a28) - br label %each.step10342 -each.step10342: + br label %each.step10747 +each.step10747: %t58 = load i64, ptr %a6 %t59 = add i64 %t58, 1 store i64 %t59, ptr %a6 - br label %each.cond10340 -each.end10343: + br label %each.cond10745 +each.end10748: %t60 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 3 store i64 0, ptr %a61 - br label %each.cond10350 -each.cond10350: + br label %each.cond10755 +each.cond10755: %t62 = getelementptr inbounds { ptr, i64, i64 }, ptr %t60, i32 0, i32 1 %t63 = load i64, ptr %t62 %t64 = load i64, ptr %a61 %t65 = icmp slt i64 %t64, %t63 - br i1 %t65, label %each.body10351, label %each.end10353 -each.body10351: + br i1 %t65, label %each.body10756, label %each.end10758 +each.body10756: %t66 = load ptr, ptr %t60 %t67 = getelementptr inbounds %S.lsp.StructRec, ptr %t66, i64 %t64 %t68 = load %S.lsp.StructRec, ptr %t67 @@ -105912,8 +109937,8 @@ each.body10351: store { ptr, i64, i64 } %t72, ptr %a74 %t75 = call i32 @finch_str_eq(ptr %a73, ptr %a74) %t76 = icmp ne i32 %t75, 0 - br i1 %t76, label %then10354, label %endif10356 -then10354: + br i1 %t76, label %then10759, label %endif10761 +then10759: %t77 = getelementptr inbounds %S.lsp.StructRec, ptr %a69, i32 0, i32 1 %t78 = load { ptr, i64, i64 }, ptr %t77 %t79 = getelementptr inbounds %S.lsp.StructRec, ptr %a69, i32 0, i32 3 @@ -105931,25 +109956,25 @@ then10354: call void @finch.json.Json.push(ptr %a4, %S.json.Json %t90) store %S.json.Json %t90, ptr %a91 call void @finch.drop.S_json_Json(ptr %a91) - br label %endif10356 -endif10356: - br label %each.step10352 -each.step10352: + br label %endif10761 +endif10761: + br label %each.step10757 +each.step10757: %t92 = load i64, ptr %a61 %t93 = add i64 %t92, 1 store i64 %t93, ptr %a61 - br label %each.cond10350 -each.end10353: + br label %each.cond10755 +each.end10758: %t94 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 4 store i64 0, ptr %a95 - br label %each.cond10357 -each.cond10357: + br label %each.cond10762 +each.cond10762: %t96 = getelementptr inbounds { ptr, i64, i64 }, ptr %t94, i32 0, i32 1 %t97 = load i64, ptr %t96 %t98 = load i64, ptr %a95 %t99 = icmp slt i64 %t98, %t97 - br i1 %t99, label %each.body10358, label %each.end10360 -each.body10358: + br i1 %t99, label %each.body10763, label %each.end10765 +each.body10763: %t100 = load ptr, ptr %t94 %t101 = getelementptr inbounds %S.lsp.EnumRec, ptr %t100, i64 %t98 %t102 = load %S.lsp.EnumRec, ptr %t101 @@ -105961,8 +109986,8 @@ each.body10358: store { ptr, i64, i64 } %t106, ptr %a108 %t109 = call i32 @finch_str_eq(ptr %a107, ptr %a108) %t110 = icmp ne i32 %t109, 0 - br i1 %t110, label %then10361, label %endif10363 -then10361: + br i1 %t110, label %then10766, label %endif10768 +then10766: %t111 = getelementptr inbounds %S.lsp.EnumRec, ptr %a103, i32 0, i32 1 %t112 = load { ptr, i64, i64 }, ptr %t111 %t113 = getelementptr inbounds %S.lsp.EnumRec, ptr %a103, i32 0, i32 3 @@ -105980,15 +110005,15 @@ then10361: call void @finch.json.Json.push(ptr %a4, %S.json.Json %t124) store %S.json.Json %t124, ptr %a125 call void @finch.drop.S_json_Json(ptr %a125) - br label %endif10363 -endif10363: - br label %each.step10359 -each.step10359: + br label %endif10768 +endif10768: + br label %each.step10764 +each.step10764: %t126 = load i64, ptr %a95 %t127 = add i64 %t126, 1 store i64 %t127, ptr %a95 - br label %each.cond10357 -each.end10360: + br label %each.cond10762 +each.end10765: %t128 = load %S.json.Json, ptr %a4 ret %S.json.Json %t128 } @@ -106016,12 +110041,12 @@ entry: store %S.json.Json %t6, ptr %a7 %t8 = load { ptr, i64, i64 }, ptr %a1 %t9 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t8) - call void @finch.json.Json.set(ptr %a7, { ptr, i64, i64 } { ptr @.str.6880, i64 4, i64 0 }, %S.json.Json %t9) + call void @finch.json.Json.set(ptr %a7, { ptr, i64, i64 } { ptr @.str.7088, i64 4, i64 0 }, %S.json.Json %t9) store %S.json.Json %t9, ptr %a10 call void @finch.drop.S_json_Json(ptr %a10) %t11 = load i64, ptr %a2 %t12 = call %S.json.Json @finch.lsp.num(i64 %t11) - call void @finch.json.Json.set(ptr %a7, { ptr, i64, i64 } { ptr @.str.6881, i64 4, i64 0 }, %S.json.Json %t12) + call void @finch.json.Json.set(ptr %a7, { ptr, i64, i64 } { ptr @.str.7089, i64 4, i64 0 }, %S.json.Json %t12) store %S.json.Json %t12, ptr %a13 call void @finch.drop.S_json_Json(ptr %a13) %t14 = call %S.json.Json @finch.json.new_object() @@ -106029,16 +110054,16 @@ entry: %t16 = load i64, ptr %a3 %t17 = sub i64 %t16, 1 %t18 = call %S.json.Json @finch.lsp.position(i64 %t17, i64 0) - call void @finch.json.Json.set(ptr %a15, { ptr, i64, i64 } { ptr @.str.6882, i64 5, i64 0 }, %S.json.Json %t18) + call void @finch.json.Json.set(ptr %a15, { ptr, i64, i64 } { ptr @.str.7090, i64 5, i64 0 }, %S.json.Json %t18) store %S.json.Json %t18, ptr %a19 call void @finch.drop.S_json_Json(ptr %a19) %t20 = load i64, ptr %a5 %t21 = call %S.json.Json @finch.lsp.position(i64 %t20, i64 0) - call void @finch.json.Json.set(ptr %a15, { ptr, i64, i64 } { ptr @.str.6883, i64 3, i64 0 }, %S.json.Json %t21) + call void @finch.json.Json.set(ptr %a15, { ptr, i64, i64 } { ptr @.str.7091, i64 3, i64 0 }, %S.json.Json %t21) store %S.json.Json %t21, ptr %a22 call void @finch.drop.S_json_Json(ptr %a22) %t23 = load %S.json.Json, ptr %a15 - call void @finch.json.Json.set(ptr %a7, { ptr, i64, i64 } { ptr @.str.6884, i64 5, i64 0 }, %S.json.Json %t23) + call void @finch.json.Json.set(ptr %a7, { ptr, i64, i64 } { ptr @.str.7092, i64 5, i64 0 }, %S.json.Json %t23) %t24 = load i64, ptr %a3 %t25 = sub i64 %t24, 1 %t26 = load i64, ptr %a4 @@ -106046,7 +110071,7 @@ entry: %t28 = load i64, ptr %a4 %t29 = sub i64 %t28, 1 %t30 = call %S.json.Json @finch.lsp.range(i64 %t25, i64 %t27, i64 %t29) - call void @finch.json.Json.set(ptr %a7, { ptr, i64, i64 } { ptr @.str.6885, i64 14, i64 0 }, %S.json.Json %t30) + call void @finch.json.Json.set(ptr %a7, { ptr, i64, i64 } { ptr @.str.7093, i64 14, i64 0 }, %S.json.Json %t30) store %S.json.Json %t30, ptr %a31 call void @finch.drop.S_json_Json(ptr %a31) %t32 = load %S.json.Json, ptr %a7 @@ -106075,47 +110100,47 @@ entry: store %S.json.Json %t5, ptr %a6 %t7 = load { ptr, i64, i64 }, ptr %a1 %t8 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t7) - call void @finch.json.Json.set(ptr %a6, { ptr, i64, i64 } { ptr @.str.6886, i64 5, i64 0 }, %S.json.Json %t8) + call void @finch.json.Json.set(ptr %a6, { ptr, i64, i64 } { ptr @.str.7094, i64 5, i64 0 }, %S.json.Json %t8) store %S.json.Json %t8, ptr %a9 call void @finch.drop.S_json_Json(ptr %a9) %t10 = load i64, ptr %a2 %t11 = call %S.json.Json @finch.lsp.num(i64 %t10) - call void @finch.json.Json.set(ptr %a6, { ptr, i64, i64 } { ptr @.str.6887, i64 4, i64 0 }, %S.json.Json %t11) + call void @finch.json.Json.set(ptr %a6, { ptr, i64, i64 } { ptr @.str.7095, i64 4, i64 0 }, %S.json.Json %t11) store %S.json.Json %t11, ptr %a12 call void @finch.drop.S_json_Json(ptr %a12) %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %a3, i32 0, i32 1 %t14 = load i64, ptr %t13 %t15 = icmp sgt i64 %t14, 0 - br i1 %t15, label %then10364, label %endif10366 -then10364: + br i1 %t15, label %then10769, label %endif10771 +then10769: %t16 = load { ptr, i64, i64 }, ptr %a3 %t17 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t16) - call void @finch.json.Json.set(ptr %a6, { ptr, i64, i64 } { ptr @.str.6888, i64 6, i64 0 }, %S.json.Json %t17) + call void @finch.json.Json.set(ptr %a6, { ptr, i64, i64 } { ptr @.str.7096, i64 6, i64 0 }, %S.json.Json %t17) store %S.json.Json %t17, ptr %a18 call void @finch.drop.S_json_Json(ptr %a18) - br label %endif10366 -endif10366: + br label %endif10771 +endif10771: %t19 = getelementptr inbounds { ptr, i64, i64 }, ptr %a4, i32 0, i32 1 %t20 = load i64, ptr %t19 %t21 = icmp sgt i64 %t20, 0 - br i1 %t21, label %then10367, label %endif10369 -then10367: + br i1 %t21, label %then10772, label %endif10774 +then10772: %t22 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t22, ptr %a23 - %t24 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.6890, i64 8, i64 0 }) - call void @finch.json.Json.set(ptr %a23, { ptr, i64, i64 } { ptr @.str.6889, i64 4, i64 0 }, %S.json.Json %t24) + %t24 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.7098, i64 8, i64 0 }) + call void @finch.json.Json.set(ptr %a23, { ptr, i64, i64 } { ptr @.str.7097, i64 4, i64 0 }, %S.json.Json %t24) store %S.json.Json %t24, ptr %a25 call void @finch.drop.S_json_Json(ptr %a25) %t26 = load { ptr, i64, i64 }, ptr %a4 %t27 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t26) - call void @finch.json.Json.set(ptr %a23, { ptr, i64, i64 } { ptr @.str.6891, i64 5, i64 0 }, %S.json.Json %t27) + call void @finch.json.Json.set(ptr %a23, { ptr, i64, i64 } { ptr @.str.7099, i64 5, i64 0 }, %S.json.Json %t27) store %S.json.Json %t27, ptr %a28 call void @finch.drop.S_json_Json(ptr %a28) %t29 = load %S.json.Json, ptr %a23 - call void @finch.json.Json.set(ptr %a6, { ptr, i64, i64 } { ptr @.str.6892, i64 13, i64 0 }, %S.json.Json %t29) + call void @finch.json.Json.set(ptr %a6, { ptr, i64, i64 } { ptr @.str.7100, i64 13, i64 0 }, %S.json.Json %t29) call void @finch.drop.S_json_Json(ptr %a23) - br label %endif10369 -endif10369: + br label %endif10774 +endif10774: %t30 = load %S.json.Json, ptr %a6 ret %S.json.Json %t30 } @@ -106126,72 +110151,72 @@ entry: store i8 %p0, ptr %a1 %t2 = load i8, ptr %a1 %t3 = icmp uge i8 %t2, 97 - br label %logic.from10370 -logic.from10370: - br i1 %t3, label %logic.rhs10371, label %logic.end10372 -logic.rhs10371: + br label %logic.from10775 +logic.from10775: + br i1 %t3, label %logic.rhs10776, label %logic.end10777 +logic.rhs10776: %t4 = load i8, ptr %a1 %t5 = icmp ule i8 %t4, 122 - br label %logic.rend10373 -logic.rend10373: - br label %logic.end10372 -logic.end10372: - %t6 = phi i1 [ false, %logic.from10370 ], [ %t5, %logic.rend10373 ] - br label %logic.from10374 -logic.from10374: - br i1 %t6, label %logic.end10376, label %logic.rhs10375 -logic.rhs10375: + br label %logic.rend10778 +logic.rend10778: + br label %logic.end10777 +logic.end10777: + %t6 = phi i1 [ false, %logic.from10775 ], [ %t5, %logic.rend10778 ] + br label %logic.from10779 +logic.from10779: + br i1 %t6, label %logic.end10781, label %logic.rhs10780 +logic.rhs10780: %t7 = load i8, ptr %a1 %t8 = icmp uge i8 %t7, 65 - br label %logic.from10377 -logic.from10377: - br i1 %t8, label %logic.rhs10378, label %logic.end10379 -logic.rhs10378: + br label %logic.from10782 +logic.from10782: + br i1 %t8, label %logic.rhs10783, label %logic.end10784 +logic.rhs10783: %t9 = load i8, ptr %a1 %t10 = icmp ule i8 %t9, 90 - br label %logic.rend10380 -logic.rend10380: - br label %logic.end10379 -logic.end10379: - %t11 = phi i1 [ false, %logic.from10377 ], [ %t10, %logic.rend10380 ] - br label %logic.rend10381 -logic.rend10381: - br label %logic.end10376 -logic.end10376: - %t12 = phi i1 [ true, %logic.from10374 ], [ %t11, %logic.rend10381 ] - br label %logic.from10382 -logic.from10382: - br i1 %t12, label %logic.end10384, label %logic.rhs10383 -logic.rhs10383: + br label %logic.rend10785 +logic.rend10785: + br label %logic.end10784 +logic.end10784: + %t11 = phi i1 [ false, %logic.from10782 ], [ %t10, %logic.rend10785 ] + br label %logic.rend10786 +logic.rend10786: + br label %logic.end10781 +logic.end10781: + %t12 = phi i1 [ true, %logic.from10779 ], [ %t11, %logic.rend10786 ] + br label %logic.from10787 +logic.from10787: + br i1 %t12, label %logic.end10789, label %logic.rhs10788 +logic.rhs10788: %t13 = load i8, ptr %a1 %t14 = icmp uge i8 %t13, 48 - br label %logic.from10385 -logic.from10385: - br i1 %t14, label %logic.rhs10386, label %logic.end10387 -logic.rhs10386: + br label %logic.from10790 +logic.from10790: + br i1 %t14, label %logic.rhs10791, label %logic.end10792 +logic.rhs10791: %t15 = load i8, ptr %a1 %t16 = icmp ule i8 %t15, 57 - br label %logic.rend10388 -logic.rend10388: - br label %logic.end10387 -logic.end10387: - %t17 = phi i1 [ false, %logic.from10385 ], [ %t16, %logic.rend10388 ] - br label %logic.rend10389 -logic.rend10389: - br label %logic.end10384 -logic.end10384: - %t18 = phi i1 [ true, %logic.from10382 ], [ %t17, %logic.rend10389 ] - br label %logic.from10390 -logic.from10390: - br i1 %t18, label %logic.end10392, label %logic.rhs10391 -logic.rhs10391: + br label %logic.rend10793 +logic.rend10793: + br label %logic.end10792 +logic.end10792: + %t17 = phi i1 [ false, %logic.from10790 ], [ %t16, %logic.rend10793 ] + br label %logic.rend10794 +logic.rend10794: + br label %logic.end10789 +logic.end10789: + %t18 = phi i1 [ true, %logic.from10787 ], [ %t17, %logic.rend10794 ] + br label %logic.from10795 +logic.from10795: + br i1 %t18, label %logic.end10797, label %logic.rhs10796 +logic.rhs10796: %t19 = load i8, ptr %a1 %t20 = icmp eq i8 %t19, 95 - br label %logic.rend10393 -logic.rend10393: - br label %logic.end10392 -logic.end10392: - %t21 = phi i1 [ true, %logic.from10390 ], [ %t20, %logic.rend10393 ] + br label %logic.rend10798 +logic.rend10798: + br label %logic.end10797 +logic.end10797: + %t21 = phi i1 [ true, %logic.from10795 ], [ %t20, %logic.rend10798 ] ret i1 %t21 } @@ -106209,14 +110234,14 @@ entry: store ptr %p0, ptr %a1 store { ptr, i64, i64 } %p1, ptr %a2 store i64 0, ptr %a3 - br label %each.cond10394 -each.cond10394: + br label %each.cond10799 +each.cond10799: %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t5 = load i64, ptr %t4 %t6 = load i64, ptr %a3 %t7 = icmp slt i64 %t6, %t5 - br i1 %t7, label %each.body10395, label %each.end10397 -each.body10395: + br i1 %t7, label %each.body10800, label %each.end10802 +each.body10800: %t8 = load ptr, ptr %a2 %t9 = getelementptr inbounds %S.docs.Doc, ptr %t8, i64 %t6 %t10 = load %S.docs.Doc, ptr %t9 @@ -106225,21 +110250,21 @@ each.body10395: %t13 = getelementptr inbounds %S.docs.Doc, ptr %a11, i32 0, i32 1 %t14 = load { ptr, i64, i64 }, ptr %t13 store { ptr, i64, i64 } %t14, ptr %a15 - store { ptr, i64, i64 } { ptr @.str.6894, i64 1, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.7102, i64 1, i64 0 }, ptr %a17 %t18 = call i32 @finch_str_starts(ptr %a15, ptr %a17) %t19 = icmp ne i32 %t18, 0 - br i1 %t19, label %then10398, label %endif10400 -then10398: + br i1 %t19, label %then10803, label %endif10805 +then10803: store i64 5, ptr %a12 - br label %endif10400 -endif10400: + br label %endif10805 +endif10805: %t20 = load ptr, ptr %a1 %t21 = icmp eq ptr %t20, null - br i1 %t21, label %panic10401, label %ok10402 -panic10401: - call void @finch_panic(ptr @.str.6895, i64 497, ptr @.str.6896) + br i1 %t21, label %panic10806, label %ok10807 +panic10806: + call void @finch_panic(ptr @.str.7103, i64 497, ptr @.str.7104) unreachable -ok10402: +ok10807: %t22 = getelementptr inbounds %S.docs.Doc, ptr %a11, i32 0, i32 0 %t23 = load { ptr, i64, i64 }, ptr %t22 %t24 = load i64, ptr %a12 @@ -106251,13 +110276,13 @@ ok10402: call void @finch.json.Json.push(ptr %t20, %S.json.Json %t29) store %S.json.Json %t29, ptr %a30 call void @finch.drop.S_json_Json(ptr %a30) - br label %each.step10396 -each.step10396: + br label %each.step10801 +each.step10801: %t31 = load i64, ptr %a3 %t32 = add i64 %t31, 1 store i64 %t32, ptr %a3 - br label %each.cond10394 -each.end10397: + br label %each.cond10799 +each.end10802: ret void } @@ -106284,14 +110309,14 @@ entry: store %S.lsp.VarRec zeroinitializer, ptr %a5 %t6 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 1 store i64 0, ptr %a7 - br label %each.cond10403 -each.cond10403: + br label %each.cond10808 +each.cond10808: %t8 = getelementptr inbounds { ptr, i64, i64 }, ptr %t6, i32 0, i32 1 %t9 = load i64, ptr %t8 %t10 = load i64, ptr %a7 %t11 = icmp slt i64 %t10, %t9 - br i1 %t11, label %each.body10404, label %each.end10406 -each.body10404: + br i1 %t11, label %each.body10809, label %each.end10811 +each.body10809: %t12 = load ptr, ptr %t6 %t13 = getelementptr inbounds %S.lsp.VarRec, ptr %t12, i64 %t10 %t14 = load %S.lsp.VarRec, ptr %t13 @@ -106303,37 +110328,37 @@ each.body10404: store { ptr, i64, i64 } %t18, ptr %a20 %t21 = call i32 @finch_str_eq(ptr %a19, ptr %a20) %t22 = icmp ne i32 %t21, 0 - br label %logic.from10407 -logic.from10407: - br i1 %t22, label %logic.rhs10408, label %logic.end10409 -logic.rhs10408: + br label %logic.from10812 +logic.from10812: + br i1 %t22, label %logic.rhs10813, label %logic.end10814 +logic.rhs10813: %t23 = getelementptr inbounds %S.lsp.VarRec, ptr %a15, i32 0, i32 3 %t24 = load i64, ptr %t23 %t25 = load i64, ptr %a4 %t26 = icmp sle i64 %t24, %t25 - br label %logic.rend10410 -logic.rend10410: - br label %logic.end10409 -logic.end10409: - %t27 = phi i1 [ false, %logic.from10407 ], [ %t26, %logic.rend10410 ] - br label %logic.from10411 -logic.from10411: - br i1 %t27, label %logic.rhs10412, label %logic.end10413 -logic.rhs10412: + br label %logic.rend10815 +logic.rend10815: + br label %logic.end10814 +logic.end10814: + %t27 = phi i1 [ false, %logic.from10812 ], [ %t26, %logic.rend10815 ] + br label %logic.from10816 +logic.from10816: + br i1 %t27, label %logic.rhs10817, label %logic.end10818 +logic.rhs10817: %t28 = load i64, ptr %a4 %t29 = getelementptr inbounds %S.lsp.VarRec, ptr %a15, i32 0, i32 7 %t30 = load i64, ptr %t29 %t31 = add i64 %t30, 1 %t32 = icmp sle i64 %t28, %t31 - br label %logic.rend10414 -logic.rend10414: - br label %logic.end10413 -logic.end10413: - %t33 = phi i1 [ false, %logic.from10411 ], [ %t32, %logic.rend10414 ] - br label %logic.from10415 -logic.from10415: - br i1 %t33, label %logic.rhs10416, label %logic.end10417 -logic.rhs10416: + br label %logic.rend10819 +logic.rend10819: + br label %logic.end10818 +logic.end10818: + %t33 = phi i1 [ false, %logic.from10816 ], [ %t32, %logic.rend10819 ] + br label %logic.from10820 +logic.from10820: + br i1 %t33, label %logic.rhs10821, label %logic.end10822 +logic.rhs10821: %t34 = getelementptr inbounds %S.lsp.VarRec, ptr %a15, i32 0, i32 5 %t35 = load { ptr, i64, i64 }, ptr %t34 %t36 = load { ptr, i64, i64 }, ptr %a2 @@ -106341,13 +110366,13 @@ logic.rhs10416: store { ptr, i64, i64 } %t36, ptr %a38 %t39 = call i32 @finch_str_eq(ptr %a37, ptr %a38) %t40 = icmp ne i32 %t39, 0 - br label %logic.rend10418 -logic.rend10418: - br label %logic.end10417 -logic.end10417: - %t41 = phi i1 [ false, %logic.from10415 ], [ %t40, %logic.rend10418 ] - br i1 %t41, label %then10419, label %endif10421 -then10419: + br label %logic.rend10823 +logic.rend10823: + br label %logic.end10822 +logic.end10822: + %t41 = phi i1 [ false, %logic.from10820 ], [ %t40, %logic.rend10823 ] + br i1 %t41, label %then10824, label %endif10826 +then10824: %t42 = load %S.lsp.VarRec, ptr %a15 store %S.lsp.VarRec %t42, ptr %a43 call void @finch.copy.S_lsp_VarRec(ptr %a44, ptr %a43) @@ -106356,15 +110381,15 @@ then10419: store %S.lsp.VarRec %t45, ptr %a5 store %S.lsp.VarRec %t46, ptr %a47 call void @finch.drop.S_lsp_VarRec(ptr %a47) - br label %endif10421 -endif10421: - br label %each.step10405 -each.step10405: + br label %endif10826 +endif10826: + br label %each.step10810 +each.step10810: %t48 = load i64, ptr %a7 %t49 = add i64 %t48, 1 store i64 %t49, ptr %a7 - br label %each.cond10403 -each.end10406: + br label %each.cond10808 +each.end10811: %t50 = load %S.lsp.VarRec, ptr %a5 ret %S.lsp.VarRec %t50 } @@ -106559,198 +110584,198 @@ entry: %t16 = getelementptr inbounds { ptr, i64, i64 }, ptr %a11, i32 0, i32 1 %t17 = load i64, ptr %t16 %t18 = icmp sgt i64 %t15, %t17 - br i1 %t18, label %then10422, label %endif10424 -then10422: + br i1 %t18, label %then10827, label %endif10829 +then10827: %t19 = getelementptr inbounds { ptr, i64, i64 }, ptr %a11, i32 0, i32 1 %t20 = load i64, ptr %t19 store i64 %t20, ptr %a14 - br label %endif10424 -endif10424: + br label %endif10829 +endif10829: %t21 = load { ptr, i64, i64 }, ptr %a11 store { ptr, i64, i64 } %t21, ptr %a22 %t24 = load i64, ptr %a14 - call void @finch_str_sub(ptr %a23, ptr %a22, i64 0, i64 %t24, ptr @.str.6897, i64 519) + call void @finch_str_sub(ptr %a23, ptr %a22, i64 0, i64 %t24, ptr @.str.7105, i64 519) %t25 = load { ptr, i64, i64 }, ptr %a23 store { ptr, i64, i64 } %t25, ptr %a26 %t27 = getelementptr inbounds { ptr, i64, i64 }, ptr %a26, i32 0, i32 1 %t28 = load i64, ptr %t27 store i64 %t28, ptr %a29 - br label %while.cond10425 -while.cond10425: + br label %while.cond10830 +while.cond10830: %t30 = load i64, ptr %a29 %t31 = icmp sgt i64 %t30, 0 - br label %logic.from10428 -logic.from10428: - br i1 %t31, label %logic.rhs10429, label %logic.end10430 -logic.rhs10429: + br label %logic.from10833 +logic.from10833: + br i1 %t31, label %logic.rhs10834, label %logic.end10835 +logic.rhs10834: %t32 = load i64, ptr %a29 %t33 = sub i64 %t32, 1 %t34 = load { ptr, i64, i64 }, ptr %a26 %t35 = extractvalue { ptr, i64, i64 } %t34, 1 %t36 = icmp uge i64 %t33, %t35 - br i1 %t36, label %range10431, label %inrange10432 -range10431: - call void @finch_panic_index(ptr @.str.6898, i64 522, i64 %t33, i64 %t35) + br i1 %t36, label %range10836, label %inrange10837 +range10836: + call void @finch_panic_index(ptr @.str.7106, i64 522, i64 %t33, i64 %t35) unreachable -inrange10432: +inrange10837: %t37 = extractvalue { ptr, i64, i64 } %t34, 0 %t38 = getelementptr inbounds i8, ptr %t37, i64 %t33 %t39 = load i8, ptr %t38 %t40 = call i1 @finch.lsp.isWordChar(i8 %t39) - br label %logic.rend10433 -logic.rend10433: - br label %logic.end10430 -logic.end10430: - %t41 = phi i1 [ false, %logic.from10428 ], [ %t40, %logic.rend10433 ] - br i1 %t41, label %while.body10426, label %while.end10427 -while.body10426: + br label %logic.rend10838 +logic.rend10838: + br label %logic.end10835 +logic.end10835: + %t41 = phi i1 [ false, %logic.from10833 ], [ %t40, %logic.rend10838 ] + br i1 %t41, label %while.body10831, label %while.end10832 +while.body10831: %t42 = load i64, ptr %a29 %t43 = sub i64 %t42, 1 store i64 %t43, ptr %a29 - br label %while.cond10425 -while.end10427: + br label %while.cond10830 +while.end10832: %t44 = load i64, ptr %a29 %t45 = icmp sgt i64 %t44, 0 - br label %logic.from10434 -logic.from10434: - br i1 %t45, label %logic.rhs10435, label %logic.end10436 -logic.rhs10435: + br label %logic.from10839 +logic.from10839: + br i1 %t45, label %logic.rhs10840, label %logic.end10841 +logic.rhs10840: %t46 = load i64, ptr %a29 %t47 = sub i64 %t46, 1 %t48 = load { ptr, i64, i64 }, ptr %a26 %t49 = extractvalue { ptr, i64, i64 } %t48, 1 %t50 = icmp uge i64 %t47, %t49 - br i1 %t50, label %range10437, label %inrange10438 -range10437: - call void @finch_panic_index(ptr @.str.6899, i64 525, i64 %t47, i64 %t49) + br i1 %t50, label %range10842, label %inrange10843 +range10842: + call void @finch_panic_index(ptr @.str.7107, i64 525, i64 %t47, i64 %t49) unreachable -inrange10438: +inrange10843: %t51 = extractvalue { ptr, i64, i64 } %t48, 0 %t52 = getelementptr inbounds i8, ptr %t51, i64 %t47 %t53 = load i8, ptr %t52 %t54 = icmp eq i8 %t53, 46 - br label %logic.rend10439 -logic.rend10439: - br label %logic.end10436 -logic.end10436: - %t55 = phi i1 [ false, %logic.from10434 ], [ %t54, %logic.rend10439 ] + br label %logic.rend10844 +logic.rend10844: + br label %logic.end10841 +logic.end10841: + %t55 = phi i1 [ false, %logic.from10839 ], [ %t54, %logic.rend10844 ] store i1 %t55, ptr %a56 %t57 = load i1, ptr %a56 - br i1 %t57, label %then10440, label %endif10442 -then10440: + br i1 %t57, label %then10845, label %endif10847 +then10845: %t58 = load i64, ptr %a29 %t59 = sub i64 %t58, 1 store i64 %t59, ptr %a60 - br label %while.cond10443 -while.cond10443: + br label %while.cond10848 +while.cond10848: %t61 = load i64, ptr %a60 %t62 = icmp sgt i64 %t61, 0 - br label %logic.from10446 -logic.from10446: - br i1 %t62, label %logic.rhs10447, label %logic.end10448 -logic.rhs10447: + br label %logic.from10851 +logic.from10851: + br i1 %t62, label %logic.rhs10852, label %logic.end10853 +logic.rhs10852: %t63 = load i64, ptr %a60 %t64 = sub i64 %t63, 1 %t65 = load { ptr, i64, i64 }, ptr %a26 %t66 = extractvalue { ptr, i64, i64 } %t65, 1 %t67 = icmp uge i64 %t64, %t66 - br i1 %t67, label %range10449, label %inrange10450 -range10449: - call void @finch_panic_index(ptr @.str.6900, i64 528, i64 %t64, i64 %t66) + br i1 %t67, label %range10854, label %inrange10855 +range10854: + call void @finch_panic_index(ptr @.str.7108, i64 528, i64 %t64, i64 %t66) unreachable -inrange10450: +inrange10855: %t68 = extractvalue { ptr, i64, i64 } %t65, 0 %t69 = getelementptr inbounds i8, ptr %t68, i64 %t64 %t70 = load i8, ptr %t69 %t71 = call i1 @finch.lsp.isWordChar(i8 %t70) - br label %logic.from10451 -logic.from10451: - br i1 %t71, label %logic.end10453, label %logic.rhs10452 -logic.rhs10452: + br label %logic.from10856 +logic.from10856: + br i1 %t71, label %logic.end10858, label %logic.rhs10857 +logic.rhs10857: %t72 = load i64, ptr %a60 %t73 = sub i64 %t72, 1 %t74 = load { ptr, i64, i64 }, ptr %a26 %t75 = extractvalue { ptr, i64, i64 } %t74, 1 %t76 = icmp uge i64 %t73, %t75 - br i1 %t76, label %range10454, label %inrange10455 -range10454: - call void @finch_panic_index(ptr @.str.6901, i64 528, i64 %t73, i64 %t75) + br i1 %t76, label %range10859, label %inrange10860 +range10859: + call void @finch_panic_index(ptr @.str.7109, i64 528, i64 %t73, i64 %t75) unreachable -inrange10455: +inrange10860: %t77 = extractvalue { ptr, i64, i64 } %t74, 0 %t78 = getelementptr inbounds i8, ptr %t77, i64 %t73 %t79 = load i8, ptr %t78 %t80 = icmp eq i8 %t79, 91 - br label %logic.rend10456 -logic.rend10456: - br label %logic.end10453 -logic.end10453: - %t81 = phi i1 [ true, %logic.from10451 ], [ %t80, %logic.rend10456 ] - br label %logic.from10457 -logic.from10457: - br i1 %t81, label %logic.end10459, label %logic.rhs10458 -logic.rhs10458: + br label %logic.rend10861 +logic.rend10861: + br label %logic.end10858 +logic.end10858: + %t81 = phi i1 [ true, %logic.from10856 ], [ %t80, %logic.rend10861 ] + br label %logic.from10862 +logic.from10862: + br i1 %t81, label %logic.end10864, label %logic.rhs10863 +logic.rhs10863: %t82 = load i64, ptr %a60 %t83 = sub i64 %t82, 1 %t84 = load { ptr, i64, i64 }, ptr %a26 %t85 = extractvalue { ptr, i64, i64 } %t84, 1 %t86 = icmp uge i64 %t83, %t85 - br i1 %t86, label %range10460, label %inrange10461 -range10460: - call void @finch_panic_index(ptr @.str.6902, i64 528, i64 %t83, i64 %t85) + br i1 %t86, label %range10865, label %inrange10866 +range10865: + call void @finch_panic_index(ptr @.str.7110, i64 528, i64 %t83, i64 %t85) unreachable -inrange10461: +inrange10866: %t87 = extractvalue { ptr, i64, i64 } %t84, 0 %t88 = getelementptr inbounds i8, ptr %t87, i64 %t83 %t89 = load i8, ptr %t88 %t90 = icmp eq i8 %t89, 93 - br label %logic.rend10462 -logic.rend10462: - br label %logic.end10459 -logic.end10459: - %t91 = phi i1 [ true, %logic.from10457 ], [ %t90, %logic.rend10462 ] - br label %logic.rend10463 -logic.rend10463: - br label %logic.end10448 -logic.end10448: - %t92 = phi i1 [ false, %logic.from10446 ], [ %t91, %logic.rend10463 ] - br i1 %t92, label %while.body10444, label %while.end10445 -while.body10444: + br label %logic.rend10867 +logic.rend10867: + br label %logic.end10864 +logic.end10864: + %t91 = phi i1 [ true, %logic.from10862 ], [ %t90, %logic.rend10867 ] + br label %logic.rend10868 +logic.rend10868: + br label %logic.end10853 +logic.end10853: + %t92 = phi i1 [ false, %logic.from10851 ], [ %t91, %logic.rend10868 ] + br i1 %t92, label %while.body10849, label %while.end10850 +while.body10849: %t93 = load i64, ptr %a60 %t94 = sub i64 %t93, 1 store i64 %t94, ptr %a60 - br label %while.cond10443 -while.end10445: + br label %while.cond10848 +while.end10850: %t95 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t95, ptr %a96 %t98 = load i64, ptr %a60 %t99 = load i64, ptr %a29 %t100 = sub i64 %t99, 1 - call void @finch_str_sub(ptr %a97, ptr %a96, i64 %t98, i64 %t100, ptr @.str.6903, i64 531) + call void @finch_str_sub(ptr %a97, ptr %a96, i64 %t98, i64 %t100, ptr @.str.7111, i64 531) %t101 = load { ptr, i64, i64 }, ptr %a97 store { ptr, i64, i64 } %t101, ptr %a102 store i1 false, ptr %a103 %t104 = load { ptr, i64, i64 }, ptr %a102 store { ptr, i64, i64 } %t104, ptr %a105 - store { ptr, i64, i64 } { ptr @.str.6905, i64 1, i64 0 }, ptr %a107 + store { ptr, i64, i64 } { ptr @.str.7113, i64 1, i64 0 }, ptr %a107 %t108 = call i64 @finch_str_find(ptr %a105, ptr %a107) store i64 %t108, ptr %a109 %t110 = load i64, ptr %a109 %t111 = icmp sge i64 %t110, 0 - br i1 %t111, label %then10464, label %endif10466 -then10464: + br i1 %t111, label %then10869, label %endif10871 +then10869: %t112 = load { ptr, i64, i64 }, ptr %a102 store { ptr, i64, i64 } %t112, ptr %a113 %t115 = load i64, ptr %a109 - call void @finch_str_sub(ptr %a114, ptr %a113, i64 0, i64 %t115, ptr @.str.6906, i64 535) + call void @finch_str_sub(ptr %a114, ptr %a113, i64 0, i64 %t115, ptr @.str.7114, i64 535) %t116 = load { ptr, i64, i64 }, ptr %a114 %t117 = load { ptr, i64, i64 }, ptr %a102 store { ptr, i64, i64 } %t116, ptr %a102 store { ptr, i64, i64 } %t117, ptr %a118 call void @finch_str_drop(ptr %a118) store i1 true, ptr %a103 - br label %endif10466 -endif10466: + br label %endif10871 +endif10871: %t119 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 5 %t120 = getelementptr inbounds { ptr, i64, i64 }, ptr %t119, i32 0, i32 1 %t121 = load { ptr, i64, i64 }, ptr %a102 @@ -106758,41 +110783,41 @@ endif10466: %t123 = load i64, ptr %t120 %t124 = load ptr, ptr %t119 store i64 0, ptr %a125 - br label %find.cond10467 -find.cond10467: + br label %find.cond10872 +find.cond10872: %t126 = load i64, ptr %a125 %t127 = icmp slt i64 %t126, %t123 - br i1 %t127, label %find.body10468, label %find.end10471 -find.body10468: + br i1 %t127, label %find.body10873, label %find.end10876 +find.body10873: %t128 = getelementptr inbounds { ptr, i64, i64 }, ptr %t124, i64 %t126 %t129 = load { ptr, i64, i64 }, ptr %t128 store { ptr, i64, i64 } %t129, ptr %a130 store { ptr, i64, i64 } %t121, ptr %a131 %t132 = call i32 @finch_str_eq(ptr %a130, ptr %a131) %t133 = icmp ne i32 %t132, 0 - br i1 %t133, label %find.hit10469, label %find.next10470 -find.hit10469: + br i1 %t133, label %find.hit10874, label %find.next10875 +find.hit10874: store i64 %t126, ptr %a122 - br label %find.end10471 -find.next10470: + br label %find.end10876 +find.next10875: %t134 = add i64 %t126, 1 store i64 %t134, ptr %a125 - br label %find.cond10467 -find.end10471: + br label %find.cond10872 +find.end10876: %t135 = load i64, ptr %a122 %t136 = icmp sge i64 %t135, 0 - br i1 %t136, label %then10472, label %endif10474 -then10472: + br i1 %t136, label %then10877, label %endif10879 +then10877: %t137 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 2 store i64 0, ptr %a138 - br label %each.cond10475 -each.cond10475: + br label %each.cond10880 +each.cond10880: %t139 = getelementptr inbounds { ptr, i64, i64 }, ptr %t137, i32 0, i32 1 %t140 = load i64, ptr %t139 %t141 = load i64, ptr %a138 %t142 = icmp slt i64 %t141, %t140 - br i1 %t142, label %each.body10476, label %each.end10478 -each.body10476: + br i1 %t142, label %each.body10881, label %each.end10883 +each.body10881: %t143 = load ptr, ptr %t137 %t144 = getelementptr inbounds %S.lsp.FnRec, ptr %t143, i64 %t141 %t145 = load %S.lsp.FnRec, ptr %t144 @@ -106804,48 +110829,48 @@ each.body10476: store { ptr, i64, i64 } %t149, ptr %a151 %t152 = call i32 @finch_str_eq(ptr %a150, ptr %a151) %t153 = icmp ne i32 %t152, 0 - br label %logic.from10479 -logic.from10479: - br i1 %t153, label %logic.rhs10480, label %logic.end10481 -logic.rhs10480: + br label %logic.from10884 +logic.from10884: + br i1 %t153, label %logic.rhs10885, label %logic.end10886 +logic.rhs10885: %t154 = getelementptr inbounds %S.lsp.FnRec, ptr %a146, i32 0, i32 2 %t155 = getelementptr inbounds { ptr, i64, i64 }, ptr %t154, i32 0, i32 1 %t156 = load i64, ptr %t155 %t157 = icmp eq i64 %t156, 0 - br label %logic.rend10482 -logic.rend10482: - br label %logic.end10481 -logic.end10481: - %t158 = phi i1 [ false, %logic.from10479 ], [ %t157, %logic.rend10482 ] - br i1 %t158, label %then10483, label %endif10485 -then10483: + br label %logic.rend10887 +logic.rend10887: + br label %logic.end10886 +logic.end10886: + %t158 = phi i1 [ false, %logic.from10884 ], [ %t157, %logic.rend10887 ] + br i1 %t158, label %then10888, label %endif10890 +then10888: %t159 = getelementptr inbounds %S.lsp.FnRec, ptr %a146, i32 0, i32 1 %t160 = load { ptr, i64, i64 }, ptr %t159 %t161 = getelementptr inbounds %S.lsp.FnRec, ptr %a146, i32 0, i32 7 %t162 = load { ptr, i64, i64 }, ptr %t161 - %t163 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t160, i64 3, { ptr, i64, i64 } %t162, { ptr, i64, i64 } { ptr @.str.6907, i64 0, i64 0 }) + %t163 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t160, i64 3, { ptr, i64, i64 } %t162, { ptr, i64, i64 } { ptr @.str.7115, i64 0, i64 0 }) call void @finch.json.Json.push(ptr %a7, %S.json.Json %t163) store %S.json.Json %t163, ptr %a164 call void @finch.drop.S_json_Json(ptr %a164) - br label %endif10485 -endif10485: - br label %each.step10477 -each.step10477: + br label %endif10890 +endif10890: + br label %each.step10882 +each.step10882: %t165 = load i64, ptr %a138 %t166 = add i64 %t165, 1 store i64 %t166, ptr %a138 - br label %each.cond10475 -each.end10478: + br label %each.cond10880 +each.end10883: %t167 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 3 store i64 0, ptr %a168 - br label %each.cond10486 -each.cond10486: + br label %each.cond10891 +each.cond10891: %t169 = getelementptr inbounds { ptr, i64, i64 }, ptr %t167, i32 0, i32 1 %t170 = load i64, ptr %t169 %t171 = load i64, ptr %a168 %t172 = icmp slt i64 %t171, %t170 - br i1 %t172, label %each.body10487, label %each.end10489 -each.body10487: + br i1 %t172, label %each.body10892, label %each.end10894 +each.body10892: %t173 = load ptr, ptr %t167 %t174 = getelementptr inbounds %S.lsp.StructRec, ptr %t173, i64 %t171 %t175 = load %S.lsp.StructRec, ptr %t174 @@ -106857,41 +110882,41 @@ each.body10487: store { ptr, i64, i64 } %t179, ptr %a181 %t182 = call i32 @finch_str_eq(ptr %a180, ptr %a181) %t183 = icmp ne i32 %t182, 0 - br i1 %t183, label %then10490, label %endif10492 -then10490: + br i1 %t183, label %then10895, label %endif10897 +then10895: %t184 = getelementptr inbounds %S.lsp.StructRec, ptr %a176, i32 0, i32 1 %t185 = load { ptr, i64, i64 }, ptr %t184 %t186 = getelementptr inbounds %S.lsp.StructRec, ptr %a176, i32 0, i32 1 %t187 = load { ptr, i64, i64 }, ptr %t186 - store { ptr, i64, i64 } { ptr @.str.6908, i64 7, i64 0 }, ptr %a189 + store { ptr, i64, i64 } { ptr @.str.7116, i64 7, i64 0 }, ptr %a189 store { ptr, i64, i64 } %t187, ptr %a190 call void @finch_str_concat(ptr %a188, ptr %a189, ptr %a190) %t191 = load { ptr, i64, i64 }, ptr %a188 - %t192 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t185, i64 22, { ptr, i64, i64 } %t191, { ptr, i64, i64 } { ptr @.str.6909, i64 0, i64 0 }) + %t192 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t185, i64 22, { ptr, i64, i64 } %t191, { ptr, i64, i64 } { ptr @.str.7117, i64 0, i64 0 }) store { ptr, i64, i64 } %t191, ptr %a193 call void @finch_str_drop(ptr %a193) call void @finch.json.Json.push(ptr %a7, %S.json.Json %t192) store %S.json.Json %t192, ptr %a194 call void @finch.drop.S_json_Json(ptr %a194) - br label %endif10492 -endif10492: - br label %each.step10488 -each.step10488: + br label %endif10897 +endif10897: + br label %each.step10893 +each.step10893: %t195 = load i64, ptr %a168 %t196 = add i64 %t195, 1 store i64 %t196, ptr %a168 - br label %each.cond10486 -each.end10489: + br label %each.cond10891 +each.end10894: %t197 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 4 store i64 0, ptr %a198 - br label %each.cond10493 -each.cond10493: + br label %each.cond10898 +each.cond10898: %t199 = getelementptr inbounds { ptr, i64, i64 }, ptr %t197, i32 0, i32 1 %t200 = load i64, ptr %t199 %t201 = load i64, ptr %a198 %t202 = icmp slt i64 %t201, %t200 - br i1 %t202, label %each.body10494, label %each.end10496 -each.body10494: + br i1 %t202, label %each.body10899, label %each.end10901 +each.body10899: %t203 = load ptr, ptr %t197 %t204 = getelementptr inbounds %S.lsp.EnumRec, ptr %t203, i64 %t201 %t205 = load %S.lsp.EnumRec, ptr %t204 @@ -106903,31 +110928,31 @@ each.body10494: store { ptr, i64, i64 } %t209, ptr %a211 %t212 = call i32 @finch_str_eq(ptr %a210, ptr %a211) %t213 = icmp ne i32 %t212, 0 - br i1 %t213, label %then10497, label %endif10499 -then10497: + br i1 %t213, label %then10902, label %endif10904 +then10902: %t214 = getelementptr inbounds %S.lsp.EnumRec, ptr %a206, i32 0, i32 1 %t215 = load { ptr, i64, i64 }, ptr %t214 %t216 = getelementptr inbounds %S.lsp.EnumRec, ptr %a206, i32 0, i32 1 %t217 = load { ptr, i64, i64 }, ptr %t216 - store { ptr, i64, i64 } { ptr @.str.6910, i64 5, i64 0 }, ptr %a219 + store { ptr, i64, i64 } { ptr @.str.7118, i64 5, i64 0 }, ptr %a219 store { ptr, i64, i64 } %t217, ptr %a220 call void @finch_str_concat(ptr %a218, ptr %a219, ptr %a220) %t221 = load { ptr, i64, i64 }, ptr %a218 - %t222 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t215, i64 13, { ptr, i64, i64 } %t221, { ptr, i64, i64 } { ptr @.str.6911, i64 0, i64 0 }) + %t222 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t215, i64 13, { ptr, i64, i64 } %t221, { ptr, i64, i64 } { ptr @.str.7119, i64 0, i64 0 }) store { ptr, i64, i64 } %t221, ptr %a223 call void @finch_str_drop(ptr %a223) call void @finch.json.Json.push(ptr %a7, %S.json.Json %t222) store %S.json.Json %t222, ptr %a224 call void @finch.drop.S_json_Json(ptr %a224) - br label %endif10499 -endif10499: - br label %each.step10495 -each.step10495: + br label %endif10904 +endif10904: + br label %each.step10900 +each.step10900: %t225 = load i64, ptr %a198 %t226 = add i64 %t225, 1 store i64 %t226, ptr %a198 - br label %each.cond10493 -each.end10496: + br label %each.cond10898 +each.end10901: %t227 = load %S.json.Json, ptr %a7 %t228 = call %S.json.Json @finch.lsp.completionList(%S.json.Json %t227) call void @finch_str_drop(ptr %a102) @@ -106935,17 +110960,17 @@ each.end10496: call void @finch_str_drop(ptr %a11) call void @finch.drop.S_json_Json(ptr %a7) ret %S.json.Json %t228 -endif10474: +endif10879: %t229 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 4 store i64 0, ptr %a230 - br label %each.cond10500 -each.cond10500: + br label %each.cond10905 +each.cond10905: %t231 = getelementptr inbounds { ptr, i64, i64 }, ptr %t229, i32 0, i32 1 %t232 = load i64, ptr %t231 %t233 = load i64, ptr %a230 %t234 = icmp slt i64 %t233, %t232 - br i1 %t234, label %each.body10501, label %each.end10503 -each.body10501: + br i1 %t234, label %each.body10906, label %each.end10908 +each.body10906: %t235 = load ptr, ptr %t229 %t236 = getelementptr inbounds %S.lsp.EnumRec, ptr %t235, i64 %t233 %t237 = load %S.lsp.EnumRec, ptr %t236 @@ -106957,10 +110982,10 @@ each.body10501: store { ptr, i64, i64 } %t241, ptr %a243 %t244 = call i32 @finch_str_eq(ptr %a242, ptr %a243) %t245 = icmp ne i32 %t244, 0 - br label %logic.from10504 -logic.from10504: - br i1 %t245, label %logic.rhs10505, label %logic.end10506 -logic.rhs10505: + br label %logic.from10909 +logic.from10909: + br i1 %t245, label %logic.rhs10910, label %logic.end10911 +logic.rhs10910: %t246 = load %S.lsp.Analysis, ptr %a1 %t247 = load { ptr, i64, i64 }, ptr %a3 %t248 = load { ptr, i64, i64 }, ptr %a102 @@ -106976,23 +111001,23 @@ logic.rhs10505: store { ptr, i64, i64 } %t254, ptr %a257 call void @finch_str_drop(ptr %a257) %t258 = icmp eq i64 %t256, 0 - br label %logic.rend10507 -logic.rend10507: - br label %logic.end10506 -logic.end10506: - %t259 = phi i1 [ false, %logic.from10504 ], [ %t258, %logic.rend10507 ] - br i1 %t259, label %then10508, label %endif10510 -then10508: + br label %logic.rend10912 +logic.rend10912: + br label %logic.end10911 +logic.end10911: + %t259 = phi i1 [ false, %logic.from10909 ], [ %t258, %logic.rend10912 ] + br i1 %t259, label %then10913, label %endif10915 +then10913: %t260 = getelementptr inbounds %S.lsp.EnumRec, ptr %a238, i32 0, i32 5 store i64 0, ptr %a261 - br label %each.cond10511 -each.cond10511: + br label %each.cond10916 +each.cond10916: %t262 = getelementptr inbounds { ptr, i64, i64 }, ptr %t260, i32 0, i32 1 %t263 = load i64, ptr %t262 %t264 = load i64, ptr %a261 %t265 = icmp slt i64 %t264, %t263 - br i1 %t265, label %each.body10512, label %each.end10514 -each.body10512: + br i1 %t265, label %each.body10917, label %each.end10919 +each.body10917: %t266 = load ptr, ptr %t260 %t267 = getelementptr inbounds { ptr, i64, i64 }, ptr %t266, i64 %t264 %t268 = load { ptr, i64, i64 }, ptr %t267 @@ -107001,7 +111026,7 @@ each.body10512: %t271 = getelementptr inbounds %S.lsp.EnumRec, ptr %a238, i32 0, i32 1 %t272 = load { ptr, i64, i64 }, ptr %t271 store { ptr, i64, i64 } %t272, ptr %a274 - store { ptr, i64, i64 } { ptr @.str.6912, i64 1, i64 0 }, ptr %a275 + store { ptr, i64, i64 } { ptr @.str.7120, i64 1, i64 0 }, ptr %a275 call void @finch_str_concat(ptr %a273, ptr %a274, ptr %a275) %t276 = load { ptr, i64, i64 }, ptr %a273 %t277 = load { ptr, i64, i64 }, ptr %a269 @@ -107011,19 +111036,19 @@ each.body10512: store { ptr, i64, i64 } %t276, ptr %a281 call void @finch_str_drop(ptr %a281) %t282 = load { ptr, i64, i64 }, ptr %a278 - %t283 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t270, i64 20, { ptr, i64, i64 } %t282, { ptr, i64, i64 } { ptr @.str.6913, i64 0, i64 0 }) + %t283 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t270, i64 20, { ptr, i64, i64 } %t282, { ptr, i64, i64 } { ptr @.str.7121, i64 0, i64 0 }) store { ptr, i64, i64 } %t282, ptr %a284 call void @finch_str_drop(ptr %a284) call void @finch.json.Json.push(ptr %a7, %S.json.Json %t283) store %S.json.Json %t283, ptr %a285 call void @finch.drop.S_json_Json(ptr %a285) - br label %each.step10513 -each.step10513: + br label %each.step10918 +each.step10918: %t286 = load i64, ptr %a261 %t287 = add i64 %t286, 1 store i64 %t287, ptr %a261 - br label %each.cond10511 -each.end10514: + br label %each.cond10916 +each.end10919: %t288 = load %S.json.Json, ptr %a7 %t289 = call %S.json.Json @finch.lsp.completionList(%S.json.Json %t288) call void @finch_str_drop(ptr %a102) @@ -107031,14 +111056,14 @@ each.end10514: call void @finch_str_drop(ptr %a11) call void @finch.drop.S_json_Json(ptr %a7) ret %S.json.Json %t289 -endif10510: - br label %each.step10502 -each.step10502: +endif10915: + br label %each.step10907 +each.step10907: %t290 = load i64, ptr %a230 %t291 = add i64 %t290, 1 store i64 %t291, ptr %a230 - br label %each.cond10500 -each.end10503: + br label %each.cond10905 +each.end10908: %t292 = load %S.lsp.Analysis, ptr %a1 %t293 = load { ptr, i64, i64 }, ptr %a3 %t294 = load { ptr, i64, i64 }, ptr %a102 @@ -107052,132 +111077,132 @@ each.end10503: call void @finch.drop.S_lsp_VarRec(ptr %a301) store { ptr, i64, i64 } %t300, ptr %a302 %t303 = load i1, ptr %a103 - br label %logic.from10515 -logic.from10515: - br i1 %t303, label %logic.rhs10516, label %logic.end10517 -logic.rhs10516: + br label %logic.from10920 +logic.from10920: + br i1 %t303, label %logic.rhs10921, label %logic.end10922 +logic.rhs10921: %t304 = load { ptr, i64, i64 }, ptr %a302 store { ptr, i64, i64 } %t304, ptr %a305 - store { ptr, i64, i64 } { ptr @.str.6915, i64 2, i64 0 }, ptr %a307 + store { ptr, i64, i64 } { ptr @.str.7123, i64 2, i64 0 }, ptr %a307 %t308 = call i32 @finch_str_starts(ptr %a305, ptr %a307) %t309 = icmp ne i32 %t308, 0 - br label %logic.rend10518 -logic.rend10518: - br label %logic.end10517 -logic.end10517: - %t310 = phi i1 [ false, %logic.from10515 ], [ %t309, %logic.rend10518 ] - br i1 %t310, label %then10519, label %else10520 -then10519: + br label %logic.rend10923 +logic.rend10923: + br label %logic.end10922 +logic.end10922: + %t310 = phi i1 [ false, %logic.from10920 ], [ %t309, %logic.rend10923 ] + br i1 %t310, label %then10924, label %else10925 +then10924: %t311 = load { ptr, i64, i64 }, ptr %a302 store { ptr, i64, i64 } %t311, ptr %a312 %t314 = getelementptr inbounds { ptr, i64, i64 }, ptr %a302, i32 0, i32 1 %t315 = load i64, ptr %t314 - call void @finch_str_sub(ptr %a313, ptr %a312, i64 2, i64 %t315, ptr @.str.6916, i64 569) + call void @finch_str_sub(ptr %a313, ptr %a312, i64 2, i64 %t315, ptr @.str.7124, i64 569) %t316 = load { ptr, i64, i64 }, ptr %a313 %t317 = load { ptr, i64, i64 }, ptr %a302 store { ptr, i64, i64 } %t316, ptr %a302 store { ptr, i64, i64 } %t317, ptr %a318 call void @finch_str_drop(ptr %a318) - br label %endif10521 -else10520: + br label %endif10926 +else10925: %t319 = load i1, ptr %a103 - br label %logic.from10522 -logic.from10522: - br i1 %t319, label %logic.rhs10523, label %logic.end10524 -logic.rhs10523: + br label %logic.from10927 +logic.from10927: + br i1 %t319, label %logic.rhs10928, label %logic.end10929 +logic.rhs10928: %t320 = load { ptr, i64, i64 }, ptr %a302 store { ptr, i64, i64 } %t320, ptr %a321 - store { ptr, i64, i64 } { ptr @.str.6917, i64 3, i64 0 }, ptr %a322 + store { ptr, i64, i64 } { ptr @.str.7125, i64 3, i64 0 }, ptr %a322 %t323 = call i32 @finch_str_eq(ptr %a321, ptr %a322) %t324 = icmp ne i32 %t323, 0 - br label %logic.rend10525 -logic.rend10525: - br label %logic.end10524 -logic.end10524: - %t325 = phi i1 [ false, %logic.from10522 ], [ %t324, %logic.rend10525 ] - br i1 %t325, label %then10526, label %endif10528 -then10526: + br label %logic.rend10930 +logic.rend10930: + br label %logic.end10929 +logic.end10929: + %t325 = phi i1 [ false, %logic.from10927 ], [ %t324, %logic.rend10930 ] + br i1 %t325, label %then10931, label %endif10933 +then10931: %t326 = load { ptr, i64, i64 }, ptr %a302 - store { ptr, i64, i64 } { ptr @.str.6918, i64 4, i64 0 }, ptr %a302 + store { ptr, i64, i64 } { ptr @.str.7126, i64 4, i64 0 }, ptr %a302 store { ptr, i64, i64 } %t326, ptr %a327 call void @finch_str_drop(ptr %a327) - br label %endif10528 -endif10528: - br label %endif10521 -endif10521: + br label %endif10933 +endif10933: + br label %endif10926 +endif10926: %t328 = load { ptr, i64, i64 }, ptr %a302 store { ptr, i64, i64 } %t328, ptr %a329 - store { ptr, i64, i64 } { ptr @.str.6920, i64 4, i64 0 }, ptr %a331 + store { ptr, i64, i64 } { ptr @.str.7128, i64 4, i64 0 }, ptr %a331 %t332 = call i32 @finch_str_starts(ptr %a329, ptr %a331) %t333 = icmp ne i32 %t332, 0 - br label %logic.from10529 -logic.from10529: - br i1 %t333, label %logic.rhs10530, label %logic.end10531 -logic.rhs10530: + br label %logic.from10934 +logic.from10934: + br i1 %t333, label %logic.rhs10935, label %logic.end10936 +logic.rhs10935: %t334 = load { ptr, i64, i64 }, ptr %a302 store { ptr, i64, i64 } %t334, ptr %a335 - store { ptr, i64, i64 } { ptr @.str.6922, i64 1, i64 0 }, ptr %a337 + store { ptr, i64, i64 } { ptr @.str.7130, i64 1, i64 0 }, ptr %a337 %t338 = call i32 @finch_str_ends(ptr %a335, ptr %a337) %t339 = icmp ne i32 %t338, 0 - br label %logic.rend10532 -logic.rend10532: - br label %logic.end10531 -logic.end10531: - %t340 = phi i1 [ false, %logic.from10529 ], [ %t339, %logic.rend10532 ] - br i1 %t340, label %then10533, label %endif10535 -then10533: + br label %logic.rend10937 +logic.rend10937: + br label %logic.end10936 +logic.end10936: + %t340 = phi i1 [ false, %logic.from10934 ], [ %t339, %logic.rend10937 ] + br i1 %t340, label %then10938, label %endif10940 +then10938: %t341 = load { ptr, i64, i64 }, ptr %a302 store { ptr, i64, i64 } %t341, ptr %a342 %t344 = getelementptr inbounds { ptr, i64, i64 }, ptr %a302, i32 0, i32 1 %t345 = load i64, ptr %t344 %t346 = sub i64 %t345, 1 - call void @finch_str_sub(ptr %a343, ptr %a342, i64 4, i64 %t346, ptr @.str.6923, i64 574) + call void @finch_str_sub(ptr %a343, ptr %a342, i64 4, i64 %t346, ptr @.str.7131, i64 574) %t347 = load { ptr, i64, i64 }, ptr %a343 %t348 = load { ptr, i64, i64 }, ptr %a302 store { ptr, i64, i64 } %t347, ptr %a302 store { ptr, i64, i64 } %t348, ptr %a349 call void @finch_str_drop(ptr %a349) - br label %endif10535 -endif10535: + br label %endif10940 +endif10940: %t350 = load { ptr, i64, i64 }, ptr %a302 store { ptr, i64, i64 } %t350, ptr %a351 - store { ptr, i64, i64 } { ptr @.str.6925, i64 2, i64 0 }, ptr %a353 + store { ptr, i64, i64 } { ptr @.str.7133, i64 2, i64 0 }, ptr %a353 %t354 = call i32 @finch_str_starts(ptr %a351, ptr %a353) %t355 = icmp ne i32 %t354, 0 - br i1 %t355, label %then10536, label %else10537 -then10536: + br i1 %t355, label %then10941, label %else10942 +then10941: %t356 = call { ptr, i64, i64 } @finch.docs.arrayMethods() call void @finch.lsp.methodItems(ptr %a7, { ptr, i64, i64 } %t356) store { ptr, i64, i64 } %t356, ptr %a357 call void @finch.drop.arr_S_docs_Doc(ptr %a357) - br label %endif10538 -else10537: + br label %endif10943 +else10942: %t358 = load { ptr, i64, i64 }, ptr %a302 store { ptr, i64, i64 } %t358, ptr %a359 - store { ptr, i64, i64 } { ptr @.str.6926, i64 3, i64 0 }, ptr %a360 + store { ptr, i64, i64 } { ptr @.str.7134, i64 3, i64 0 }, ptr %a360 %t361 = call i32 @finch_str_eq(ptr %a359, ptr %a360) %t362 = icmp ne i32 %t361, 0 - br i1 %t362, label %then10539, label %else10540 -then10539: + br i1 %t362, label %then10944, label %else10945 +then10944: %t363 = call { ptr, i64, i64 } @finch.docs.strMethods() call void @finch.lsp.methodItems(ptr %a7, { ptr, i64, i64 } %t363) store { ptr, i64, i64 } %t363, ptr %a364 call void @finch.drop.arr_S_docs_Doc(ptr %a364) - br label %endif10541 -else10540: + br label %endif10946 +else10945: %t365 = load { ptr, i64, i64 }, ptr %a302 store { ptr, i64, i64 } %t365, ptr %a366 - store { ptr, i64, i64 } { ptr @.str.6928, i64 4, i64 0 }, ptr %a368 + store { ptr, i64, i64 } { ptr @.str.7136, i64 4, i64 0 }, ptr %a368 %t369 = call i32 @finch_str_starts(ptr %a366, ptr %a368) %t370 = icmp ne i32 %t369, 0 - br i1 %t370, label %then10542, label %else10543 -then10542: + br i1 %t370, label %then10947, label %else10948 +then10947: %t371 = call { ptr, i64, i64 } @finch.docs.mapMethods() call void @finch.lsp.methodItems(ptr %a7, { ptr, i64, i64 } %t371) store { ptr, i64, i64 } %t371, ptr %a372 call void @finch.drop.arr_S_docs_Doc(ptr %a372) - br label %endif10544 -else10543: + br label %endif10949 +else10948: %t373 = load { ptr, i64, i64 }, ptr %a302 store { ptr, i64, i64 } %t373, ptr %a374 call void @finch_str_copy(ptr %a375, ptr %a374) @@ -107185,14 +111210,14 @@ else10543: store { ptr, i64, i64 } %t376, ptr %a377 %t378 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 3 store i64 0, ptr %a379 - br label %each.cond10545 -each.cond10545: + br label %each.cond10950 +each.cond10950: %t380 = getelementptr inbounds { ptr, i64, i64 }, ptr %t378, i32 0, i32 1 %t381 = load i64, ptr %t380 %t382 = load i64, ptr %a379 %t383 = icmp slt i64 %t382, %t381 - br i1 %t383, label %each.body10546, label %each.end10548 -each.body10546: + br i1 %t383, label %each.body10951, label %each.end10953 +each.body10951: %t384 = load ptr, ptr %t378 %t385 = getelementptr inbounds %S.lsp.StructRec, ptr %t384, i64 %t382 %t386 = load %S.lsp.StructRec, ptr %t385 @@ -107204,28 +111229,28 @@ each.body10546: store { ptr, i64, i64 } %t390, ptr %a392 %t393 = call i32 @finch_str_eq(ptr %a391, ptr %a392) %t394 = icmp ne i32 %t393, 0 - br i1 %t394, label %then10549, label %endif10551 -then10549: + br i1 %t394, label %then10954, label %endif10956 +then10954: %t395 = getelementptr inbounds %S.lsp.StructRec, ptr %a387, i32 0, i32 5 %t396 = getelementptr inbounds { ptr, i64, i64 }, ptr %t395, i32 0, i32 1 %t397 = load i64, ptr %t396 store i64 0, ptr %a398 - br label %for.cond10552 -for.cond10552: + br label %for.cond10957 +for.cond10957: %t399 = load i64, ptr %a398 %t400 = icmp slt i64 %t399, %t397 - br i1 %t400, label %for.body10553, label %for.end10555 -for.body10553: + br i1 %t400, label %for.body10958, label %for.end10960 +for.body10958: %t401 = getelementptr inbounds %S.lsp.StructRec, ptr %a387, i32 0, i32 5 %t402 = load i64, ptr %a398 %t403 = load { ptr, i64, i64 }, ptr %t401 %t404 = extractvalue { ptr, i64, i64 } %t403, 1 %t405 = icmp uge i64 %t402, %t404 - br i1 %t405, label %range10556, label %inrange10557 -range10556: - call void @finch_panic_index(ptr @.str.6929, i64 587, i64 %t402, i64 %t404) + br i1 %t405, label %range10961, label %inrange10962 +range10961: + call void @finch_panic_index(ptr @.str.7137, i64 587, i64 %t402, i64 %t404) unreachable -inrange10557: +inrange10962: %t406 = extractvalue { ptr, i64, i64 } %t403, 0 %t407 = getelementptr inbounds { ptr, i64, i64 }, ptr %t406, i64 %t402 %t408 = load { ptr, i64, i64 }, ptr %t407 @@ -107234,44 +111259,44 @@ inrange10557: %t411 = load { ptr, i64, i64 }, ptr %t409 %t412 = extractvalue { ptr, i64, i64 } %t411, 1 %t413 = icmp uge i64 %t410, %t412 - br i1 %t413, label %range10558, label %inrange10559 -range10558: - call void @finch_panic_index(ptr @.str.6930, i64 587, i64 %t410, i64 %t412) + br i1 %t413, label %range10963, label %inrange10964 +range10963: + call void @finch_panic_index(ptr @.str.7138, i64 587, i64 %t410, i64 %t412) unreachable -inrange10559: +inrange10964: %t414 = extractvalue { ptr, i64, i64 } %t411, 0 %t415 = getelementptr inbounds { ptr, i64, i64 }, ptr %t414, i64 %t410 %t416 = load { ptr, i64, i64 }, ptr %t415 - %t417 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t408, i64 5, { ptr, i64, i64 } %t416, { ptr, i64, i64 } { ptr @.str.6931, i64 0, i64 0 }) + %t417 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t408, i64 5, { ptr, i64, i64 } %t416, { ptr, i64, i64 } { ptr @.str.7139, i64 0, i64 0 }) call void @finch.json.Json.push(ptr %a7, %S.json.Json %t417) store %S.json.Json %t417, ptr %a418 call void @finch.drop.S_json_Json(ptr %a418) - br label %for.step10554 -for.step10554: + br label %for.step10959 +for.step10959: %t419 = load i64, ptr %a398 %t420 = add i64 %t419, 1 store i64 %t420, ptr %a398 - br label %for.cond10552 -for.end10555: - br label %endif10551 -endif10551: - br label %each.step10547 -each.step10547: + br label %for.cond10957 +for.end10960: + br label %endif10956 +endif10956: + br label %each.step10952 +each.step10952: %t421 = load i64, ptr %a379 %t422 = add i64 %t421, 1 store i64 %t422, ptr %a379 - br label %each.cond10545 -each.end10548: + br label %each.cond10950 +each.end10953: %t423 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 2 store i64 0, ptr %a424 - br label %each.cond10560 -each.cond10560: + br label %each.cond10965 +each.cond10965: %t425 = getelementptr inbounds { ptr, i64, i64 }, ptr %t423, i32 0, i32 1 %t426 = load i64, ptr %t425 %t427 = load i64, ptr %a424 %t428 = icmp slt i64 %t427, %t426 - br i1 %t428, label %each.body10561, label %each.end10563 -each.body10561: + br i1 %t428, label %each.body10966, label %each.end10968 +each.body10966: %t429 = load ptr, ptr %t423 %t430 = getelementptr inbounds %S.lsp.FnRec, ptr %t429, i64 %t427 %t431 = load %S.lsp.FnRec, ptr %t430 @@ -107283,32 +111308,32 @@ each.body10561: store { ptr, i64, i64 } %t435, ptr %a437 %t438 = call i32 @finch_str_eq(ptr %a436, ptr %a437) %t439 = icmp ne i32 %t438, 0 - br i1 %t439, label %then10564, label %endif10566 -then10564: + br i1 %t439, label %then10969, label %endif10971 +then10969: %t440 = getelementptr inbounds %S.lsp.FnRec, ptr %a432, i32 0, i32 1 %t441 = load { ptr, i64, i64 }, ptr %t440 %t442 = getelementptr inbounds %S.lsp.FnRec, ptr %a432, i32 0, i32 7 %t443 = load { ptr, i64, i64 }, ptr %t442 - %t444 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t441, i64 2, { ptr, i64, i64 } %t443, { ptr, i64, i64 } { ptr @.str.6932, i64 0, i64 0 }) + %t444 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t441, i64 2, { ptr, i64, i64 } %t443, { ptr, i64, i64 } { ptr @.str.7140, i64 0, i64 0 }) call void @finch.json.Json.push(ptr %a7, %S.json.Json %t444) store %S.json.Json %t444, ptr %a445 call void @finch.drop.S_json_Json(ptr %a445) - br label %endif10566 -endif10566: - br label %each.step10562 -each.step10562: + br label %endif10971 +endif10971: + br label %each.step10967 +each.step10967: %t446 = load i64, ptr %a424 %t447 = add i64 %t446, 1 store i64 %t447, ptr %a424 - br label %each.cond10560 -each.end10563: + br label %each.cond10965 +each.end10968: call void @finch_str_drop(ptr %a377) - br label %endif10544 -endif10544: - br label %endif10541 -endif10541: - br label %endif10538 -endif10538: + br label %endif10949 +endif10949: + br label %endif10946 +endif10946: + br label %endif10943 +endif10943: %t448 = load %S.json.Json, ptr %a7 %t449 = call %S.json.Json @finch.lsp.completionList(%S.json.Json %t448) call void @finch_str_drop(ptr %a302) @@ -107317,18 +111342,18 @@ endif10538: call void @finch_str_drop(ptr %a11) call void @finch.drop.S_json_Json(ptr %a7) ret %S.json.Json %t449 -endif10442: +endif10847: store %S.lsp.Names zeroinitializer, ptr %a450 %t451 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 1 store i64 0, ptr %a452 - br label %each.cond10567 -each.cond10567: + br label %each.cond10972 +each.cond10972: %t453 = getelementptr inbounds { ptr, i64, i64 }, ptr %t451, i32 0, i32 1 %t454 = load i64, ptr %t453 %t455 = load i64, ptr %a452 %t456 = icmp slt i64 %t455, %t454 - br i1 %t456, label %each.body10568, label %each.end10570 -each.body10568: + br i1 %t456, label %each.body10973, label %each.end10975 +each.body10973: %t457 = load ptr, ptr %t451 %t458 = getelementptr inbounds %S.lsp.VarRec, ptr %t457, i64 %t455 %t459 = load %S.lsp.VarRec, ptr %t458 @@ -107337,24 +111362,24 @@ each.body10568: %t462 = load i64, ptr %t461 %t463 = load i64, ptr %a4 %t464 = icmp sle i64 %t462, %t463 - br label %logic.from10571 -logic.from10571: - br i1 %t464, label %logic.rhs10572, label %logic.end10573 -logic.rhs10572: + br label %logic.from10976 +logic.from10976: + br i1 %t464, label %logic.rhs10977, label %logic.end10978 +logic.rhs10977: %t465 = load i64, ptr %a4 %t466 = getelementptr inbounds %S.lsp.VarRec, ptr %a460, i32 0, i32 7 %t467 = load i64, ptr %t466 %t468 = add i64 %t467, 1 %t469 = icmp sle i64 %t465, %t468 - br label %logic.rend10574 -logic.rend10574: - br label %logic.end10573 -logic.end10573: - %t470 = phi i1 [ false, %logic.from10571 ], [ %t469, %logic.rend10574 ] - br label %logic.from10575 -logic.from10575: - br i1 %t470, label %logic.rhs10576, label %logic.end10577 -logic.rhs10576: + br label %logic.rend10979 +logic.rend10979: + br label %logic.end10978 +logic.end10978: + %t470 = phi i1 [ false, %logic.from10976 ], [ %t469, %logic.rend10979 ] + br label %logic.from10980 +logic.from10980: + br i1 %t470, label %logic.rhs10981, label %logic.end10982 +logic.rhs10981: %t471 = getelementptr inbounds %S.lsp.VarRec, ptr %a460, i32 0, i32 5 %t472 = load { ptr, i64, i64 }, ptr %t471 %t473 = load { ptr, i64, i64 }, ptr %a3 @@ -107362,52 +111387,52 @@ logic.rhs10576: store { ptr, i64, i64 } %t473, ptr %a475 %t476 = call i32 @finch_str_eq(ptr %a474, ptr %a475) %t477 = icmp ne i32 %t476, 0 - br label %logic.rend10578 -logic.rend10578: - br label %logic.end10577 -logic.end10577: - %t478 = phi i1 [ false, %logic.from10575 ], [ %t477, %logic.rend10578 ] - br label %logic.from10579 -logic.from10579: - br i1 %t478, label %logic.rhs10580, label %logic.end10581 -logic.rhs10580: + br label %logic.rend10983 +logic.rend10983: + br label %logic.end10982 +logic.end10982: + %t478 = phi i1 [ false, %logic.from10980 ], [ %t477, %logic.rend10983 ] + br label %logic.from10984 +logic.from10984: + br i1 %t478, label %logic.rhs10985, label %logic.end10986 +logic.rhs10985: %t479 = getelementptr inbounds %S.lsp.VarRec, ptr %a460, i32 0, i32 0 %t480 = load { ptr, i64, i64 }, ptr %t479 %t481 = call i1 @finch.lsp.Names.add(ptr %a450, { ptr, i64, i64 } %t480) - br label %logic.rend10582 -logic.rend10582: - br label %logic.end10581 -logic.end10581: - %t482 = phi i1 [ false, %logic.from10579 ], [ %t481, %logic.rend10582 ] - br i1 %t482, label %then10583, label %endif10585 -then10583: + br label %logic.rend10987 +logic.rend10987: + br label %logic.end10986 +logic.end10986: + %t482 = phi i1 [ false, %logic.from10984 ], [ %t481, %logic.rend10987 ] + br i1 %t482, label %then10988, label %endif10990 +then10988: %t483 = getelementptr inbounds %S.lsp.VarRec, ptr %a460, i32 0, i32 0 %t484 = load { ptr, i64, i64 }, ptr %t483 %t485 = getelementptr inbounds %S.lsp.VarRec, ptr %a460, i32 0, i32 1 %t486 = load { ptr, i64, i64 }, ptr %t485 - %t487 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t484, i64 6, { ptr, i64, i64 } %t486, { ptr, i64, i64 } { ptr @.str.6933, i64 0, i64 0 }) + %t487 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t484, i64 6, { ptr, i64, i64 } %t486, { ptr, i64, i64 } { ptr @.str.7141, i64 0, i64 0 }) call void @finch.json.Json.push(ptr %a7, %S.json.Json %t487) store %S.json.Json %t487, ptr %a488 call void @finch.drop.S_json_Json(ptr %a488) - br label %endif10585 -endif10585: - br label %each.step10569 -each.step10569: + br label %endif10990 +endif10990: + br label %each.step10974 +each.step10974: %t489 = load i64, ptr %a452 %t490 = add i64 %t489, 1 store i64 %t490, ptr %a452 - br label %each.cond10567 -each.end10570: + br label %each.cond10972 +each.end10975: %t491 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 2 store i64 0, ptr %a492 - br label %each.cond10586 -each.cond10586: + br label %each.cond10991 +each.cond10991: %t493 = getelementptr inbounds { ptr, i64, i64 }, ptr %t491, i32 0, i32 1 %t494 = load i64, ptr %t493 %t495 = load i64, ptr %a492 %t496 = icmp slt i64 %t495, %t494 - br i1 %t496, label %each.body10587, label %each.end10589 -each.body10587: + br i1 %t496, label %each.body10992, label %each.end10994 +each.body10992: %t497 = load ptr, ptr %t491 %t498 = getelementptr inbounds %S.lsp.FnRec, ptr %t497, i64 %t495 %t499 = load %S.lsp.FnRec, ptr %t498 @@ -107416,62 +111441,62 @@ each.body10587: %t502 = getelementptr inbounds { ptr, i64, i64 }, ptr %t501, i32 0, i32 1 %t503 = load i64, ptr %t502 %t504 = icmp eq i64 %t503, 0 - br label %logic.from10590 -logic.from10590: - br i1 %t504, label %logic.rhs10591, label %logic.end10592 -logic.rhs10591: + br label %logic.from10995 +logic.from10995: + br i1 %t504, label %logic.rhs10996, label %logic.end10997 +logic.rhs10996: %t505 = getelementptr inbounds %S.lsp.FnRec, ptr %a500, i32 0, i32 0 %t506 = load { ptr, i64, i64 }, ptr %t505 store { ptr, i64, i64 } %t506, ptr %a507 - store { ptr, i64, i64 } { ptr @.str.6934, i64 0, i64 0 }, ptr %a508 + store { ptr, i64, i64 } { ptr @.str.7142, i64 0, i64 0 }, ptr %a508 %t509 = call i32 @finch_str_eq(ptr %a507, ptr %a508) %t510 = icmp ne i32 %t509, 0 - br label %logic.rend10593 -logic.rend10593: - br label %logic.end10592 -logic.end10592: - %t511 = phi i1 [ false, %logic.from10590 ], [ %t510, %logic.rend10593 ] - br label %logic.from10594 -logic.from10594: - br i1 %t511, label %logic.rhs10595, label %logic.end10596 -logic.rhs10595: + br label %logic.rend10998 +logic.rend10998: + br label %logic.end10997 +logic.end10997: + %t511 = phi i1 [ false, %logic.from10995 ], [ %t510, %logic.rend10998 ] + br label %logic.from10999 +logic.from10999: + br i1 %t511, label %logic.rhs11000, label %logic.end11001 +logic.rhs11000: %t512 = getelementptr inbounds %S.lsp.FnRec, ptr %a500, i32 0, i32 1 %t513 = load { ptr, i64, i64 }, ptr %t512 %t514 = call i1 @finch.lsp.Names.add(ptr %a450, { ptr, i64, i64 } %t513) - br label %logic.rend10597 -logic.rend10597: - br label %logic.end10596 -logic.end10596: - %t515 = phi i1 [ false, %logic.from10594 ], [ %t514, %logic.rend10597 ] - br i1 %t515, label %then10598, label %endif10600 -then10598: + br label %logic.rend11002 +logic.rend11002: + br label %logic.end11001 +logic.end11001: + %t515 = phi i1 [ false, %logic.from10999 ], [ %t514, %logic.rend11002 ] + br i1 %t515, label %then11003, label %endif11005 +then11003: %t516 = getelementptr inbounds %S.lsp.FnRec, ptr %a500, i32 0, i32 1 %t517 = load { ptr, i64, i64 }, ptr %t516 %t518 = getelementptr inbounds %S.lsp.FnRec, ptr %a500, i32 0, i32 7 %t519 = load { ptr, i64, i64 }, ptr %t518 - %t520 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t517, i64 3, { ptr, i64, i64 } %t519, { ptr, i64, i64 } { ptr @.str.6935, i64 0, i64 0 }) + %t520 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t517, i64 3, { ptr, i64, i64 } %t519, { ptr, i64, i64 } { ptr @.str.7143, i64 0, i64 0 }) call void @finch.json.Json.push(ptr %a7, %S.json.Json %t520) store %S.json.Json %t520, ptr %a521 call void @finch.drop.S_json_Json(ptr %a521) - br label %endif10600 -endif10600: - br label %each.step10588 -each.step10588: + br label %endif11005 +endif11005: + br label %each.step10993 +each.step10993: %t522 = load i64, ptr %a492 %t523 = add i64 %t522, 1 store i64 %t523, ptr %a492 - br label %each.cond10586 -each.end10589: + br label %each.cond10991 +each.end10994: %t524 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 3 store i64 0, ptr %a525 - br label %each.cond10601 -each.cond10601: + br label %each.cond11006 +each.cond11006: %t526 = getelementptr inbounds { ptr, i64, i64 }, ptr %t524, i32 0, i32 1 %t527 = load i64, ptr %t526 %t528 = load i64, ptr %a525 %t529 = icmp slt i64 %t528, %t527 - br i1 %t529, label %each.body10602, label %each.end10604 -each.body10602: + br i1 %t529, label %each.body11007, label %each.end11009 +each.body11007: %t530 = load ptr, ptr %t524 %t531 = getelementptr inbounds %S.lsp.StructRec, ptr %t530, i64 %t528 %t532 = load %S.lsp.StructRec, ptr %t531 @@ -107479,56 +111504,56 @@ each.body10602: %t534 = getelementptr inbounds %S.lsp.StructRec, ptr %a533, i32 0, i32 0 %t535 = load { ptr, i64, i64 }, ptr %t534 store { ptr, i64, i64 } %t535, ptr %a536 - store { ptr, i64, i64 } { ptr @.str.6936, i64 0, i64 0 }, ptr %a537 + store { ptr, i64, i64 } { ptr @.str.7144, i64 0, i64 0 }, ptr %a537 %t538 = call i32 @finch_str_eq(ptr %a536, ptr %a537) %t539 = icmp ne i32 %t538, 0 - br label %logic.from10605 -logic.from10605: - br i1 %t539, label %logic.rhs10606, label %logic.end10607 -logic.rhs10606: + br label %logic.from11010 +logic.from11010: + br i1 %t539, label %logic.rhs11011, label %logic.end11012 +logic.rhs11011: %t540 = getelementptr inbounds %S.lsp.StructRec, ptr %a533, i32 0, i32 1 %t541 = load { ptr, i64, i64 }, ptr %t540 %t542 = call i1 @finch.lsp.Names.add(ptr %a450, { ptr, i64, i64 } %t541) - br label %logic.rend10608 -logic.rend10608: - br label %logic.end10607 -logic.end10607: - %t543 = phi i1 [ false, %logic.from10605 ], [ %t542, %logic.rend10608 ] - br i1 %t543, label %then10609, label %endif10611 -then10609: + br label %logic.rend11013 +logic.rend11013: + br label %logic.end11012 +logic.end11012: + %t543 = phi i1 [ false, %logic.from11010 ], [ %t542, %logic.rend11013 ] + br i1 %t543, label %then11014, label %endif11016 +then11014: %t544 = getelementptr inbounds %S.lsp.StructRec, ptr %a533, i32 0, i32 1 %t545 = load { ptr, i64, i64 }, ptr %t544 %t546 = getelementptr inbounds %S.lsp.StructRec, ptr %a533, i32 0, i32 1 %t547 = load { ptr, i64, i64 }, ptr %t546 - store { ptr, i64, i64 } { ptr @.str.6937, i64 7, i64 0 }, ptr %a549 + store { ptr, i64, i64 } { ptr @.str.7145, i64 7, i64 0 }, ptr %a549 store { ptr, i64, i64 } %t547, ptr %a550 call void @finch_str_concat(ptr %a548, ptr %a549, ptr %a550) %t551 = load { ptr, i64, i64 }, ptr %a548 - %t552 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t545, i64 22, { ptr, i64, i64 } %t551, { ptr, i64, i64 } { ptr @.str.6938, i64 0, i64 0 }) + %t552 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t545, i64 22, { ptr, i64, i64 } %t551, { ptr, i64, i64 } { ptr @.str.7146, i64 0, i64 0 }) store { ptr, i64, i64 } %t551, ptr %a553 call void @finch_str_drop(ptr %a553) call void @finch.json.Json.push(ptr %a7, %S.json.Json %t552) store %S.json.Json %t552, ptr %a554 call void @finch.drop.S_json_Json(ptr %a554) - br label %endif10611 -endif10611: - br label %each.step10603 -each.step10603: + br label %endif11016 +endif11016: + br label %each.step11008 +each.step11008: %t555 = load i64, ptr %a525 %t556 = add i64 %t555, 1 store i64 %t556, ptr %a525 - br label %each.cond10601 -each.end10604: + br label %each.cond11006 +each.end11009: %t557 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 4 store i64 0, ptr %a558 - br label %each.cond10612 -each.cond10612: + br label %each.cond11017 +each.cond11017: %t559 = getelementptr inbounds { ptr, i64, i64 }, ptr %t557, i32 0, i32 1 %t560 = load i64, ptr %t559 %t561 = load i64, ptr %a558 %t562 = icmp slt i64 %t561, %t560 - br i1 %t562, label %each.body10613, label %each.end10615 -each.body10613: + br i1 %t562, label %each.body11018, label %each.end11020 +each.body11018: %t563 = load ptr, ptr %t557 %t564 = getelementptr inbounds %S.lsp.EnumRec, ptr %t563, i64 %t561 %t565 = load %S.lsp.EnumRec, ptr %t564 @@ -107536,89 +111561,89 @@ each.body10613: %t567 = getelementptr inbounds %S.lsp.EnumRec, ptr %a566, i32 0, i32 0 %t568 = load { ptr, i64, i64 }, ptr %t567 store { ptr, i64, i64 } %t568, ptr %a569 - store { ptr, i64, i64 } { ptr @.str.6939, i64 0, i64 0 }, ptr %a570 + store { ptr, i64, i64 } { ptr @.str.7147, i64 0, i64 0 }, ptr %a570 %t571 = call i32 @finch_str_eq(ptr %a569, ptr %a570) %t572 = icmp ne i32 %t571, 0 - br label %logic.from10616 -logic.from10616: - br i1 %t572, label %logic.rhs10617, label %logic.end10618 -logic.rhs10617: + br label %logic.from11021 +logic.from11021: + br i1 %t572, label %logic.rhs11022, label %logic.end11023 +logic.rhs11022: %t573 = getelementptr inbounds %S.lsp.EnumRec, ptr %a566, i32 0, i32 1 %t574 = load { ptr, i64, i64 }, ptr %t573 %t575 = call i1 @finch.lsp.Names.add(ptr %a450, { ptr, i64, i64 } %t574) - br label %logic.rend10619 -logic.rend10619: - br label %logic.end10618 -logic.end10618: - %t576 = phi i1 [ false, %logic.from10616 ], [ %t575, %logic.rend10619 ] - br i1 %t576, label %then10620, label %endif10622 -then10620: + br label %logic.rend11024 +logic.rend11024: + br label %logic.end11023 +logic.end11023: + %t576 = phi i1 [ false, %logic.from11021 ], [ %t575, %logic.rend11024 ] + br i1 %t576, label %then11025, label %endif11027 +then11025: %t577 = getelementptr inbounds %S.lsp.EnumRec, ptr %a566, i32 0, i32 1 %t578 = load { ptr, i64, i64 }, ptr %t577 %t579 = getelementptr inbounds %S.lsp.EnumRec, ptr %a566, i32 0, i32 1 %t580 = load { ptr, i64, i64 }, ptr %t579 - store { ptr, i64, i64 } { ptr @.str.6940, i64 5, i64 0 }, ptr %a582 + store { ptr, i64, i64 } { ptr @.str.7148, i64 5, i64 0 }, ptr %a582 store { ptr, i64, i64 } %t580, ptr %a583 call void @finch_str_concat(ptr %a581, ptr %a582, ptr %a583) %t584 = load { ptr, i64, i64 }, ptr %a581 - %t585 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t578, i64 13, { ptr, i64, i64 } %t584, { ptr, i64, i64 } { ptr @.str.6941, i64 0, i64 0 }) + %t585 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t578, i64 13, { ptr, i64, i64 } %t584, { ptr, i64, i64 } { ptr @.str.7149, i64 0, i64 0 }) store { ptr, i64, i64 } %t584, ptr %a586 call void @finch_str_drop(ptr %a586) call void @finch.json.Json.push(ptr %a7, %S.json.Json %t585) store %S.json.Json %t585, ptr %a587 call void @finch.drop.S_json_Json(ptr %a587) - br label %endif10622 -endif10622: - br label %each.step10614 -each.step10614: + br label %endif11027 +endif11027: + br label %each.step11019 +each.step11019: %t588 = load i64, ptr %a558 %t589 = add i64 %t588, 1 store i64 %t589, ptr %a558 - br label %each.cond10612 -each.end10615: + br label %each.cond11017 +each.end11020: %t590 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 5 store i64 0, ptr %a591 - br label %each.cond10623 -each.cond10623: + br label %each.cond11028 +each.cond11028: %t592 = getelementptr inbounds { ptr, i64, i64 }, ptr %t590, i32 0, i32 1 %t593 = load i64, ptr %t592 %t594 = load i64, ptr %a591 %t595 = icmp slt i64 %t594, %t593 - br i1 %t595, label %each.body10624, label %each.end10626 -each.body10624: + br i1 %t595, label %each.body11029, label %each.end11031 +each.body11029: %t596 = load ptr, ptr %t590 %t597 = getelementptr inbounds { ptr, i64, i64 }, ptr %t596, i64 %t594 %t598 = load { ptr, i64, i64 }, ptr %t597 store { ptr, i64, i64 } %t598, ptr %a599 %t600 = load { ptr, i64, i64 }, ptr %a599 %t601 = call i1 @finch.lsp.Names.add(ptr %a450, { ptr, i64, i64 } %t600) - br i1 %t601, label %then10627, label %endif10629 -then10627: + br i1 %t601, label %then11032, label %endif11034 +then11032: %t602 = load { ptr, i64, i64 }, ptr %a599 - %t603 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t602, i64 9, { ptr, i64, i64 } { ptr @.str.6942, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6943, i64 0, i64 0 }) + %t603 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t602, i64 9, { ptr, i64, i64 } { ptr @.str.7150, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.7151, i64 0, i64 0 }) call void @finch.json.Json.push(ptr %a7, %S.json.Json %t603) store %S.json.Json %t603, ptr %a604 call void @finch.drop.S_json_Json(ptr %a604) - br label %endif10629 -endif10629: - br label %each.step10625 -each.step10625: + br label %endif11034 +endif11034: + br label %each.step11030 +each.step11030: %t605 = load i64, ptr %a591 %t606 = add i64 %t605, 1 store i64 %t606, ptr %a591 - br label %each.cond10623 -each.end10626: + br label %each.cond11028 +each.end11031: %t607 = call { ptr, i64, i64 } @finch.docs.builtins() store { ptr, i64, i64 } %t607, ptr %a608 store i64 0, ptr %a609 - br label %each.cond10630 -each.cond10630: + br label %each.cond11035 +each.cond11035: %t610 = getelementptr inbounds { ptr, i64, i64 }, ptr %a608, i32 0, i32 1 %t611 = load i64, ptr %t610 %t612 = load i64, ptr %a609 %t613 = icmp slt i64 %t612, %t611 - br i1 %t613, label %each.body10631, label %each.end10633 -each.body10631: + br i1 %t613, label %each.body11036, label %each.end11038 +each.body11036: %t614 = load ptr, ptr %a608 %t615 = getelementptr inbounds %S.docs.Doc, ptr %t614, i64 %t612 %t616 = load %S.docs.Doc, ptr %t615 @@ -107626,8 +111651,8 @@ each.body10631: %t618 = getelementptr inbounds %S.docs.Doc, ptr %a617, i32 0, i32 0 %t619 = load { ptr, i64, i64 }, ptr %t618 %t620 = call i1 @finch.lsp.Names.add(ptr %a450, { ptr, i64, i64 } %t619) - br i1 %t620, label %then10634, label %endif10636 -then10634: + br i1 %t620, label %then11039, label %endif11041 +then11039: %t621 = getelementptr inbounds %S.docs.Doc, ptr %a617, i32 0, i32 0 %t622 = load { ptr, i64, i64 }, ptr %t621 %t623 = getelementptr inbounds %S.docs.Doc, ptr %a617, i32 0, i32 1 @@ -107638,83 +111663,83 @@ then10634: call void @finch.json.Json.push(ptr %a7, %S.json.Json %t627) store %S.json.Json %t627, ptr %a628 call void @finch.drop.S_json_Json(ptr %a628) - br label %endif10636 -endif10636: - br label %each.step10632 -each.step10632: + br label %endif11041 +endif11041: + br label %each.step11037 +each.step11037: %t629 = load i64, ptr %a609 %t630 = add i64 %t629, 1 store i64 %t630, ptr %a609 - br label %each.cond10630 -each.end10633: + br label %each.cond11035 +each.end11038: call void @finch.drop.arr_S_docs_Doc(ptr %a608) %t631 = call { ptr, i64, i64 } @finch.docs.keywords() store { ptr, i64, i64 } %t631, ptr %a632 store i64 0, ptr %a633 - br label %each.cond10637 -each.cond10637: + br label %each.cond11042 +each.cond11042: %t634 = getelementptr inbounds { ptr, i64, i64 }, ptr %a632, i32 0, i32 1 %t635 = load i64, ptr %t634 %t636 = load i64, ptr %a633 %t637 = icmp slt i64 %t636, %t635 - br i1 %t637, label %each.body10638, label %each.end10640 -each.body10638: + br i1 %t637, label %each.body11043, label %each.end11045 +each.body11043: %t638 = load ptr, ptr %a632 %t639 = getelementptr inbounds { ptr, i64, i64 }, ptr %t638, i64 %t636 %t640 = load { ptr, i64, i64 }, ptr %t639 store { ptr, i64, i64 } %t640, ptr %a641 %t642 = load { ptr, i64, i64 }, ptr %a641 %t643 = call i1 @finch.lsp.Names.add(ptr %a450, { ptr, i64, i64 } %t642) - br i1 %t643, label %then10641, label %endif10643 -then10641: + br i1 %t643, label %then11046, label %endif11048 +then11046: %t644 = load { ptr, i64, i64 }, ptr %a641 - %t645 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t644, i64 14, { ptr, i64, i64 } { ptr @.str.6944, i64 0, i64 0 }, { ptr, i64, i64 } { ptr @.str.6945, i64 0, i64 0 }) + %t645 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t644, i64 14, { ptr, i64, i64 } { ptr @.str.7152, i64 0, i64 0 }, { ptr, i64, i64 } { ptr @.str.7153, i64 0, i64 0 }) call void @finch.json.Json.push(ptr %a7, %S.json.Json %t645) store %S.json.Json %t645, ptr %a646 call void @finch.drop.S_json_Json(ptr %a646) - br label %endif10643 -endif10643: - br label %each.step10639 -each.step10639: + br label %endif11048 +endif11048: + br label %each.step11044 +each.step11044: %t647 = load i64, ptr %a633 %t648 = add i64 %t647, 1 store i64 %t648, ptr %a633 - br label %each.cond10637 -each.end10640: + br label %each.cond11042 +each.end11045: call void @finch.drop.arr_str(ptr %a632) %t649 = call { ptr, i64, i64 } @finch.docs.typeNames() store { ptr, i64, i64 } %t649, ptr %a650 store i64 0, ptr %a651 - br label %each.cond10644 -each.cond10644: + br label %each.cond11049 +each.cond11049: %t652 = getelementptr inbounds { ptr, i64, i64 }, ptr %a650, i32 0, i32 1 %t653 = load i64, ptr %t652 %t654 = load i64, ptr %a651 %t655 = icmp slt i64 %t654, %t653 - br i1 %t655, label %each.body10645, label %each.end10647 -each.body10645: + br i1 %t655, label %each.body11050, label %each.end11052 +each.body11050: %t656 = load ptr, ptr %a650 %t657 = getelementptr inbounds { ptr, i64, i64 }, ptr %t656, i64 %t654 %t658 = load { ptr, i64, i64 }, ptr %t657 store { ptr, i64, i64 } %t658, ptr %a659 %t660 = load { ptr, i64, i64 }, ptr %a659 %t661 = call i1 @finch.lsp.Names.add(ptr %a450, { ptr, i64, i64 } %t660) - br i1 %t661, label %then10648, label %endif10650 -then10648: + br i1 %t661, label %then11053, label %endif11055 +then11053: %t662 = load { ptr, i64, i64 }, ptr %a659 - %t663 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t662, i64 25, { ptr, i64, i64 } { ptr @.str.6946, i64 0, i64 0 }, { ptr, i64, i64 } { ptr @.str.6947, i64 0, i64 0 }) + %t663 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t662, i64 25, { ptr, i64, i64 } { ptr @.str.7154, i64 0, i64 0 }, { ptr, i64, i64 } { ptr @.str.7155, i64 0, i64 0 }) call void @finch.json.Json.push(ptr %a7, %S.json.Json %t663) store %S.json.Json %t663, ptr %a664 call void @finch.drop.S_json_Json(ptr %a664) - br label %endif10650 -endif10650: - br label %each.step10646 -each.step10646: + br label %endif11055 +endif11055: + br label %each.step11051 +each.step11051: %t665 = load i64, ptr %a651 %t666 = add i64 %t665, 1 store i64 %t666, ptr %a651 - br label %each.cond10644 -each.end10647: + br label %each.cond11049 +each.end11052: call void @finch.drop.arr_str(ptr %a650) %t667 = load %S.json.Json, ptr %a7 %t668 = call %S.json.Json @finch.lsp.completionList(%S.json.Json %t667) @@ -107742,33 +111767,33 @@ entry: %t6 = load i64, ptr %t3 %t7 = load ptr, ptr %t2 store i64 0, ptr %a8 - br label %find.cond10651 -find.cond10651: + br label %find.cond11056 +find.cond11056: %t9 = load i64, ptr %a8 %t10 = icmp slt i64 %t9, %t6 - br i1 %t10, label %find.body10652, label %find.end10655 -find.body10652: + br i1 %t10, label %find.body11057, label %find.end11060 +find.body11057: %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %t7, i64 %t9 %t12 = load { ptr, i64, i64 }, ptr %t11 store { ptr, i64, i64 } %t12, ptr %a13 store { ptr, i64, i64 } %t4, ptr %a14 %t15 = call i32 @finch_str_eq(ptr %a13, ptr %a14) %t16 = icmp ne i32 %t15, 0 - br i1 %t16, label %find.hit10653, label %find.next10654 -find.hit10653: + br i1 %t16, label %find.hit11058, label %find.next11059 +find.hit11058: store i64 %t9, ptr %a5 - br label %find.end10655 -find.next10654: + br label %find.end11060 +find.next11059: %t17 = add i64 %t9, 1 store i64 %t17, ptr %a8 - br label %find.cond10651 -find.end10655: + br label %find.cond11056 +find.end11060: %t18 = load i64, ptr %a5 %t19 = icmp sge i64 %t18, 0 - br i1 %t19, label %then10656, label %endif10658 -then10656: + br i1 %t19, label %then11061, label %endif11063 +then11061: ret i1 false -endif10658: +endif11063: %t20 = getelementptr inbounds %S.lsp.Names, ptr %self, i32 0, i32 0 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t20, i32 0, i32 1 %t22 = load { ptr, i64, i64 }, ptr %a1 @@ -107794,11 +111819,11 @@ entry: %t2 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t2, ptr %a3 %t4 = call %S.json.Json @finch.json.new_bool(i1 false) - call void @finch.json.Json.set(ptr %a3, { ptr, i64, i64 } { ptr @.str.6948, i64 12, i64 0 }, %S.json.Json %t4) + call void @finch.json.Json.set(ptr %a3, { ptr, i64, i64 } { ptr @.str.7156, i64 12, i64 0 }, %S.json.Json %t4) store %S.json.Json %t4, ptr %a5 call void @finch.drop.S_json_Json(ptr %a5) %t6 = load %S.json.Json, ptr %a1 - call void @finch.json.Json.set(ptr %a3, { ptr, i64, i64 } { ptr @.str.6949, i64 5, i64 0 }, %S.json.Json %t6) + call void @finch.json.Json.set(ptr %a3, { ptr, i64, i64 } { ptr @.str.7157, i64 5, i64 0 }, %S.json.Json %t6) %t7 = load %S.json.Json, ptr %a3 ret %S.json.Json %t7 } @@ -107888,17 +111913,17 @@ entry: %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %a9, i32 0, i32 1 %t15 = load i64, ptr %t14 %t16 = icmp sgt i64 %t13, %t15 - br i1 %t16, label %then10659, label %endif10661 -then10659: + br i1 %t16, label %then11064, label %endif11066 +then11064: %t17 = getelementptr inbounds { ptr, i64, i64 }, ptr %a9, i32 0, i32 1 %t18 = load i64, ptr %t17 store i64 %t18, ptr %a12 - br label %endif10661 -endif10661: + br label %endif11066 +endif11066: %t19 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t19, ptr %a20 %t22 = load i64, ptr %a12 - call void @finch_str_sub(ptr %a21, ptr %a20, i64 0, i64 %t22, ptr @.str.6950, i64 671) + call void @finch_str_sub(ptr %a21, ptr %a20, i64 0, i64 %t22, ptr @.str.7158, i64 671) %t23 = load { ptr, i64, i64 }, ptr %a21 store { ptr, i64, i64 } %t23, ptr %a24 store i64 0, ptr %a25 @@ -107908,246 +111933,246 @@ endif10661: %t29 = load i64, ptr %t28 %t30 = sub i64 %t29, 1 store i64 %t30, ptr %a31 - br label %while.cond10662 -while.cond10662: + br label %while.cond11067 +while.cond11067: %t32 = load i64, ptr %a31 %t33 = icmp sge i64 %t32, 0 - br i1 %t33, label %while.body10663, label %while.end10664 -while.body10663: + br i1 %t33, label %while.body11068, label %while.end11069 +while.body11068: %t34 = load i64, ptr %a31 %t35 = load { ptr, i64, i64 }, ptr %a24 %t36 = extractvalue { ptr, i64, i64 } %t35, 1 %t37 = icmp uge i64 %t34, %t36 - br i1 %t37, label %range10665, label %inrange10666 -range10665: - call void @finch_panic_index(ptr @.str.6951, i64 678, i64 %t34, i64 %t36) + br i1 %t37, label %range11070, label %inrange11071 +range11070: + call void @finch_panic_index(ptr @.str.7159, i64 678, i64 %t34, i64 %t36) unreachable -inrange10666: +inrange11071: %t38 = extractvalue { ptr, i64, i64 } %t35, 0 %t39 = getelementptr inbounds i8, ptr %t38, i64 %t34 %t40 = load i8, ptr %t39 store i8 %t40, ptr %a41 %t42 = load i8, ptr %a41 %t43 = icmp eq i8 %t42, 41 - br label %logic.from10667 -logic.from10667: - br i1 %t43, label %logic.end10669, label %logic.rhs10668 -logic.rhs10668: + br label %logic.from11072 +logic.from11072: + br i1 %t43, label %logic.end11074, label %logic.rhs11073 +logic.rhs11073: %t44 = load i8, ptr %a41 %t45 = icmp eq i8 %t44, 93 - br label %logic.rend10670 -logic.rend10670: - br label %logic.end10669 -logic.end10669: - %t46 = phi i1 [ true, %logic.from10667 ], [ %t45, %logic.rend10670 ] - br i1 %t46, label %then10671, label %else10672 -then10671: + br label %logic.rend11075 +logic.rend11075: + br label %logic.end11074 +logic.end11074: + %t46 = phi i1 [ true, %logic.from11072 ], [ %t45, %logic.rend11075 ] + br i1 %t46, label %then11076, label %else11077 +then11076: %t47 = load i64, ptr %a25 %t48 = add i64 %t47, 1 store i64 %t48, ptr %a25 - br label %endif10673 -else10672: + br label %endif11078 +else11077: %t49 = load i8, ptr %a41 %t50 = icmp eq i8 %t49, 40 - br label %logic.from10674 -logic.from10674: - br i1 %t50, label %logic.end10676, label %logic.rhs10675 -logic.rhs10675: + br label %logic.from11079 +logic.from11079: + br i1 %t50, label %logic.end11081, label %logic.rhs11080 +logic.rhs11080: %t51 = load i8, ptr %a41 %t52 = icmp eq i8 %t51, 91 - br label %logic.rend10677 -logic.rend10677: - br label %logic.end10676 -logic.end10676: - %t53 = phi i1 [ true, %logic.from10674 ], [ %t52, %logic.rend10677 ] - br i1 %t53, label %then10678, label %else10679 -then10678: + br label %logic.rend11082 +logic.rend11082: + br label %logic.end11081 +logic.end11081: + %t53 = phi i1 [ true, %logic.from11079 ], [ %t52, %logic.rend11082 ] + br i1 %t53, label %then11083, label %else11084 +then11083: %t54 = load i64, ptr %a25 %t55 = icmp eq i64 %t54, 0 - br i1 %t55, label %then10681, label %else10682 -then10681: + br i1 %t55, label %then11086, label %else11087 +then11086: %t56 = load i8, ptr %a41 %t57 = icmp eq i8 %t56, 40 - br i1 %t57, label %then10684, label %endif10686 -then10684: + br i1 %t57, label %then11089, label %endif11091 +then11089: %t58 = load i64, ptr %a31 store i64 %t58, ptr %a27 - br label %while.end10664 -endif10686: - br label %endif10683 -else10682: + br label %while.end11069 +endif11091: + br label %endif11088 +else11087: %t59 = load i64, ptr %a25 %t60 = sub i64 %t59, 1 store i64 %t60, ptr %a25 - br label %endif10683 -endif10683: - br label %endif10680 -else10679: + br label %endif11088 +endif11088: + br label %endif11085 +else11084: %t61 = load i8, ptr %a41 %t62 = icmp eq i8 %t61, 44 - br label %logic.from10687 -logic.from10687: - br i1 %t62, label %logic.rhs10688, label %logic.end10689 -logic.rhs10688: + br label %logic.from11092 +logic.from11092: + br i1 %t62, label %logic.rhs11093, label %logic.end11094 +logic.rhs11093: %t63 = load i64, ptr %a25 %t64 = icmp eq i64 %t63, 0 - br label %logic.rend10690 -logic.rend10690: - br label %logic.end10689 -logic.end10689: - %t65 = phi i1 [ false, %logic.from10687 ], [ %t64, %logic.rend10690 ] - br i1 %t65, label %then10691, label %endif10693 -then10691: + br label %logic.rend11095 +logic.rend11095: + br label %logic.end11094 +logic.end11094: + %t65 = phi i1 [ false, %logic.from11092 ], [ %t64, %logic.rend11095 ] + br i1 %t65, label %then11096, label %endif11098 +then11096: %t66 = load i64, ptr %a26 %t67 = add i64 %t66, 1 store i64 %t67, ptr %a26 - br label %endif10693 -endif10693: - br label %endif10680 -endif10680: - br label %endif10673 -endif10673: + br label %endif11098 +endif11098: + br label %endif11085 +endif11085: + br label %endif11078 +endif11078: %t68 = load i64, ptr %a31 %t69 = sub i64 %t68, 1 store i64 %t69, ptr %a31 - br label %while.cond10662 -while.end10664: + br label %while.cond11067 +while.end11069: %t70 = load i64, ptr %a27 %t71 = icmp slt i64 %t70, 0 - br i1 %t71, label %then10694, label %endif10696 -then10694: + br i1 %t71, label %then11099, label %endif11101 +then11099: %t72 = call %S.json.Json @finch.json.new_null() call void @finch_str_drop(ptr %a24) call void @finch_str_drop(ptr %a9) ret %S.json.Json %t72 -endif10696: +endif11101: %t73 = load i64, ptr %a27 store i64 %t73, ptr %a74 %t75 = load i64, ptr %a74 store i64 %t75, ptr %a76 - br label %while.cond10697 -while.cond10697: + br label %while.cond11102 +while.cond11102: %t77 = load i64, ptr %a76 %t78 = icmp sgt i64 %t77, 0 - br label %logic.from10700 -logic.from10700: - br i1 %t78, label %logic.rhs10701, label %logic.end10702 -logic.rhs10701: + br label %logic.from11105 +logic.from11105: + br i1 %t78, label %logic.rhs11106, label %logic.end11107 +logic.rhs11106: %t79 = load i64, ptr %a76 %t80 = sub i64 %t79, 1 %t81 = load { ptr, i64, i64 }, ptr %a24 %t82 = extractvalue { ptr, i64, i64 } %t81, 1 %t83 = icmp uge i64 %t80, %t82 - br i1 %t83, label %range10703, label %inrange10704 -range10703: - call void @finch_panic_index(ptr @.str.6952, i64 700, i64 %t80, i64 %t82) + br i1 %t83, label %range11108, label %inrange11109 +range11108: + call void @finch_panic_index(ptr @.str.7160, i64 700, i64 %t80, i64 %t82) unreachable -inrange10704: +inrange11109: %t84 = extractvalue { ptr, i64, i64 } %t81, 0 %t85 = getelementptr inbounds i8, ptr %t84, i64 %t80 %t86 = load i8, ptr %t85 %t87 = call i1 @finch.lsp.isWordChar(i8 %t86) - br label %logic.rend10705 -logic.rend10705: - br label %logic.end10702 -logic.end10702: - %t88 = phi i1 [ false, %logic.from10700 ], [ %t87, %logic.rend10705 ] - br i1 %t88, label %while.body10698, label %while.end10699 -while.body10698: + br label %logic.rend11110 +logic.rend11110: + br label %logic.end11107 +logic.end11107: + %t88 = phi i1 [ false, %logic.from11105 ], [ %t87, %logic.rend11110 ] + br i1 %t88, label %while.body11103, label %while.end11104 +while.body11103: %t89 = load i64, ptr %a76 %t90 = sub i64 %t89, 1 store i64 %t90, ptr %a76 - br label %while.cond10697 -while.end10699: + br label %while.cond11102 +while.end11104: %t91 = load { ptr, i64, i64 }, ptr %a24 store { ptr, i64, i64 } %t91, ptr %a92 %t94 = load i64, ptr %a76 %t95 = load i64, ptr %a74 - call void @finch_str_sub(ptr %a93, ptr %a92, i64 %t94, i64 %t95, ptr @.str.6953, i64 703) + call void @finch_str_sub(ptr %a93, ptr %a92, i64 %t94, i64 %t95, ptr @.str.7161, i64 703) %t96 = load { ptr, i64, i64 }, ptr %a93 store { ptr, i64, i64 } %t96, ptr %a97 %t98 = getelementptr inbounds { ptr, i64, i64 }, ptr %a97, i32 0, i32 1 %t99 = load i64, ptr %t98 %t100 = icmp eq i64 %t99, 0 - br i1 %t100, label %then10706, label %endif10708 -then10706: + br i1 %t100, label %then11111, label %endif11113 +then11111: %t101 = call %S.json.Json @finch.json.new_null() call void @finch_str_drop(ptr %a97) call void @finch_str_drop(ptr %a24) call void @finch_str_drop(ptr %a9) ret %S.json.Json %t101 -endif10708: - store { ptr, i64, i64 } { ptr @.str.6954, i64 0, i64 0 }, ptr %a102 +endif11113: + store { ptr, i64, i64 } { ptr @.str.7162, i64 0, i64 0 }, ptr %a102 %t103 = load i64, ptr %a76 %t104 = icmp sgt i64 %t103, 0 - br label %logic.from10709 -logic.from10709: - br i1 %t104, label %logic.rhs10710, label %logic.end10711 -logic.rhs10710: + br label %logic.from11114 +logic.from11114: + br i1 %t104, label %logic.rhs11115, label %logic.end11116 +logic.rhs11115: %t105 = load i64, ptr %a76 %t106 = sub i64 %t105, 1 %t107 = load { ptr, i64, i64 }, ptr %a24 %t108 = extractvalue { ptr, i64, i64 } %t107, 1 %t109 = icmp uge i64 %t106, %t108 - br i1 %t109, label %range10712, label %inrange10713 -range10712: - call void @finch_panic_index(ptr @.str.6955, i64 708, i64 %t106, i64 %t108) + br i1 %t109, label %range11117, label %inrange11118 +range11117: + call void @finch_panic_index(ptr @.str.7163, i64 708, i64 %t106, i64 %t108) unreachable -inrange10713: +inrange11118: %t110 = extractvalue { ptr, i64, i64 } %t107, 0 %t111 = getelementptr inbounds i8, ptr %t110, i64 %t106 %t112 = load i8, ptr %t111 %t113 = icmp eq i8 %t112, 46 - br label %logic.rend10714 -logic.rend10714: - br label %logic.end10711 -logic.end10711: - %t114 = phi i1 [ false, %logic.from10709 ], [ %t113, %logic.rend10714 ] - br i1 %t114, label %then10715, label %endif10717 -then10715: + br label %logic.rend11119 +logic.rend11119: + br label %logic.end11116 +logic.end11116: + %t114 = phi i1 [ false, %logic.from11114 ], [ %t113, %logic.rend11119 ] + br i1 %t114, label %then11120, label %endif11122 +then11120: %t115 = load i64, ptr %a76 %t116 = sub i64 %t115, 1 store i64 %t116, ptr %a117 - br label %while.cond10718 -while.cond10718: + br label %while.cond11123 +while.cond11123: %t118 = load i64, ptr %a117 %t119 = icmp sgt i64 %t118, 0 - br label %logic.from10721 -logic.from10721: - br i1 %t119, label %logic.rhs10722, label %logic.end10723 -logic.rhs10722: + br label %logic.from11126 +logic.from11126: + br i1 %t119, label %logic.rhs11127, label %logic.end11128 +logic.rhs11127: %t120 = load i64, ptr %a117 %t121 = sub i64 %t120, 1 %t122 = load { ptr, i64, i64 }, ptr %a24 %t123 = extractvalue { ptr, i64, i64 } %t122, 1 %t124 = icmp uge i64 %t121, %t123 - br i1 %t124, label %range10724, label %inrange10725 -range10724: - call void @finch_panic_index(ptr @.str.6956, i64 711, i64 %t121, i64 %t123) + br i1 %t124, label %range11129, label %inrange11130 +range11129: + call void @finch_panic_index(ptr @.str.7164, i64 711, i64 %t121, i64 %t123) unreachable -inrange10725: +inrange11130: %t125 = extractvalue { ptr, i64, i64 } %t122, 0 %t126 = getelementptr inbounds i8, ptr %t125, i64 %t121 %t127 = load i8, ptr %t126 %t128 = call i1 @finch.lsp.isWordChar(i8 %t127) - br label %logic.rend10726 -logic.rend10726: - br label %logic.end10723 -logic.end10723: - %t129 = phi i1 [ false, %logic.from10721 ], [ %t128, %logic.rend10726 ] - br i1 %t129, label %while.body10719, label %while.end10720 -while.body10719: + br label %logic.rend11131 +logic.rend11131: + br label %logic.end11128 +logic.end11128: + %t129 = phi i1 [ false, %logic.from11126 ], [ %t128, %logic.rend11131 ] + br i1 %t129, label %while.body11124, label %while.end11125 +while.body11124: %t130 = load i64, ptr %a117 %t131 = sub i64 %t130, 1 store i64 %t131, ptr %a117 - br label %while.cond10718 -while.end10720: + br label %while.cond11123 +while.end11125: %t132 = load { ptr, i64, i64 }, ptr %a24 store { ptr, i64, i64 } %t132, ptr %a133 %t135 = load i64, ptr %a117 %t136 = load i64, ptr %a76 %t137 = sub i64 %t136, 1 - call void @finch_str_sub(ptr %a134, ptr %a133, i64 %t135, i64 %t137, ptr @.str.6957, i64 714) + call void @finch_str_sub(ptr %a134, ptr %a133, i64 %t135, i64 %t137, ptr @.str.7165, i64 714) %t138 = load { ptr, i64, i64 }, ptr %a134 store { ptr, i64, i64 } %t138, ptr %a139 %t140 = load %S.lsp.Analysis, ptr %a1 @@ -108164,38 +112189,38 @@ while.end10720: store { ptr, i64, i64 } %t148, ptr %a150 %t151 = load { ptr, i64, i64 }, ptr %a150 store { ptr, i64, i64 } %t151, ptr %a152 - store { ptr, i64, i64 } { ptr @.str.6959, i64 4, i64 0 }, ptr %a154 + store { ptr, i64, i64 } { ptr @.str.7167, i64 4, i64 0 }, ptr %a154 %t155 = call i32 @finch_str_starts(ptr %a152, ptr %a154) %t156 = icmp ne i32 %t155, 0 - br label %logic.from10727 -logic.from10727: - br i1 %t156, label %logic.rhs10728, label %logic.end10729 -logic.rhs10728: + br label %logic.from11132 +logic.from11132: + br i1 %t156, label %logic.rhs11133, label %logic.end11134 +logic.rhs11133: %t157 = load { ptr, i64, i64 }, ptr %a150 store { ptr, i64, i64 } %t157, ptr %a158 - store { ptr, i64, i64 } { ptr @.str.6961, i64 1, i64 0 }, ptr %a160 + store { ptr, i64, i64 } { ptr @.str.7169, i64 1, i64 0 }, ptr %a160 %t161 = call i32 @finch_str_ends(ptr %a158, ptr %a160) %t162 = icmp ne i32 %t161, 0 - br label %logic.rend10730 -logic.rend10730: - br label %logic.end10729 -logic.end10729: - %t163 = phi i1 [ false, %logic.from10727 ], [ %t162, %logic.rend10730 ] - br i1 %t163, label %then10731, label %endif10733 -then10731: + br label %logic.rend11135 +logic.rend11135: + br label %logic.end11134 +logic.end11134: + %t163 = phi i1 [ false, %logic.from11132 ], [ %t162, %logic.rend11135 ] + br i1 %t163, label %then11136, label %endif11138 +then11136: %t164 = load { ptr, i64, i64 }, ptr %a150 store { ptr, i64, i64 } %t164, ptr %a165 %t167 = getelementptr inbounds { ptr, i64, i64 }, ptr %a150, i32 0, i32 1 %t168 = load i64, ptr %t167 %t169 = sub i64 %t168, 1 - call void @finch_str_sub(ptr %a166, ptr %a165, i64 4, i64 %t169, ptr @.str.6962, i64 717) + call void @finch_str_sub(ptr %a166, ptr %a165, i64 4, i64 %t169, ptr @.str.7170, i64 717) %t170 = load { ptr, i64, i64 }, ptr %a166 %t171 = load { ptr, i64, i64 }, ptr %a150 store { ptr, i64, i64 } %t170, ptr %a150 store { ptr, i64, i64 } %t171, ptr %a172 call void @finch_str_drop(ptr %a172) - br label %endif10733 -endif10733: + br label %endif11138 +endif11138: %t173 = load { ptr, i64, i64 }, ptr %a150 store { ptr, i64, i64 } %t173, ptr %a174 call void @finch_str_copy(ptr %a175, ptr %a174) @@ -108206,18 +112231,18 @@ endif10733: call void @finch_str_drop(ptr %a178) call void @finch_str_drop(ptr %a150) call void @finch_str_drop(ptr %a139) - br label %endif10717 -endif10717: + br label %endif11122 +endif11122: %t179 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 2 store i64 0, ptr %a180 - br label %each.cond10734 -each.cond10734: + br label %each.cond11139 +each.cond11139: %t181 = getelementptr inbounds { ptr, i64, i64 }, ptr %t179, i32 0, i32 1 %t182 = load i64, ptr %t181 %t183 = load i64, ptr %a180 %t184 = icmp slt i64 %t183, %t182 - br i1 %t184, label %each.body10735, label %each.end10737 -each.body10735: + br i1 %t184, label %each.body11140, label %each.end11142 +each.body11140: %t185 = load ptr, ptr %t179 %t186 = getelementptr inbounds %S.lsp.FnRec, ptr %t185, i64 %t183 %t187 = load %S.lsp.FnRec, ptr %t186 @@ -108229,10 +112254,10 @@ each.body10735: store { ptr, i64, i64 } %t191, ptr %a193 %t194 = call i32 @finch_str_eq(ptr %a192, ptr %a193) %t195 = icmp ne i32 %t194, 0 - br label %logic.from10738 -logic.from10738: - br i1 %t195, label %logic.rhs10739, label %logic.end10740 -logic.rhs10739: + br label %logic.from11143 +logic.from11143: + br i1 %t195, label %logic.rhs11144, label %logic.end11145 +logic.rhs11144: %t196 = getelementptr inbounds %S.lsp.FnRec, ptr %a188, i32 0, i32 2 %t197 = load { ptr, i64, i64 }, ptr %t196 %t198 = load { ptr, i64, i64 }, ptr %a102 @@ -108240,33 +112265,33 @@ logic.rhs10739: store { ptr, i64, i64 } %t198, ptr %a200 %t201 = call i32 @finch_str_eq(ptr %a199, ptr %a200) %t202 = icmp ne i32 %t201, 0 - br label %logic.rend10741 -logic.rend10741: - br label %logic.end10740 -logic.end10740: - %t203 = phi i1 [ false, %logic.from10738 ], [ %t202, %logic.rend10741 ] - br i1 %t203, label %then10742, label %endif10744 -then10742: + br label %logic.rend11146 +logic.rend11146: + br label %logic.end11145 +logic.end11145: + %t203 = phi i1 [ false, %logic.from11143 ], [ %t202, %logic.rend11146 ] + br i1 %t203, label %then11147, label %endif11149 +then11147: %t204 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t204, ptr %a205 %t206 = getelementptr inbounds %S.lsp.FnRec, ptr %a188, i32 0, i32 7 %t207 = load { ptr, i64, i64 }, ptr %t206 %t208 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t207) - call void @finch.json.Json.set(ptr %a205, { ptr, i64, i64 } { ptr @.str.6963, i64 5, i64 0 }, %S.json.Json %t208) + call void @finch.json.Json.set(ptr %a205, { ptr, i64, i64 } { ptr @.str.7171, i64 5, i64 0 }, %S.json.Json %t208) store %S.json.Json %t208, ptr %a209 call void @finch.drop.S_json_Json(ptr %a209) %t210 = call %S.json.Json @finch.json.new_list() store %S.json.Json %t210, ptr %a211 %t212 = getelementptr inbounds %S.lsp.FnRec, ptr %a188, i32 0, i32 8 store i64 0, ptr %a213 - br label %each.cond10745 -each.cond10745: + br label %each.cond11150 +each.cond11150: %t214 = getelementptr inbounds { ptr, i64, i64 }, ptr %t212, i32 0, i32 1 %t215 = load i64, ptr %t214 %t216 = load i64, ptr %a213 %t217 = icmp slt i64 %t216, %t215 - br i1 %t217, label %each.body10746, label %each.end10748 -each.body10746: + br i1 %t217, label %each.body11151, label %each.end11153 +each.body11151: %t218 = load ptr, ptr %t212 %t219 = getelementptr inbounds { ptr, i64, i64 }, ptr %t218, i64 %t216 %t220 = load { ptr, i64, i64 }, ptr %t219 @@ -108274,29 +112299,29 @@ each.body10746: %t222 = getelementptr inbounds { ptr, i64, i64 }, ptr %a221, i32 0, i32 1 %t223 = load i64, ptr %t222 %t224 = icmp sgt i64 %t223, 0 - br i1 %t224, label %then10749, label %endif10751 -then10749: + br i1 %t224, label %then11154, label %endif11156 +then11154: %t225 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t225, ptr %a226 %t227 = load { ptr, i64, i64 }, ptr %a221 %t228 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t227) - call void @finch.json.Json.set(ptr %a226, { ptr, i64, i64 } { ptr @.str.6964, i64 5, i64 0 }, %S.json.Json %t228) + call void @finch.json.Json.set(ptr %a226, { ptr, i64, i64 } { ptr @.str.7172, i64 5, i64 0 }, %S.json.Json %t228) store %S.json.Json %t228, ptr %a229 call void @finch.drop.S_json_Json(ptr %a229) %t230 = load %S.json.Json, ptr %a226 call void @finch.json.Json.push(ptr %a211, %S.json.Json %t230) call void @finch.drop.S_json_Json(ptr %a226) - br label %endif10751 -endif10751: - br label %each.step10747 -each.step10747: + br label %endif11156 +endif11156: + br label %each.step11152 +each.step11152: %t231 = load i64, ptr %a213 %t232 = add i64 %t231, 1 store i64 %t232, ptr %a213 - br label %each.cond10745 -each.end10748: + br label %each.cond11150 +each.end11153: %t233 = load %S.json.Json, ptr %a211 - call void @finch.json.Json.set(ptr %a205, { ptr, i64, i64 } { ptr @.str.6965, i64 10, i64 0 }, %S.json.Json %t233) + call void @finch.json.Json.set(ptr %a205, { ptr, i64, i64 } { ptr @.str.7173, i64 10, i64 0 }, %S.json.Json %t233) %t234 = call %S.json.Json @finch.json.new_list() store %S.json.Json %t234, ptr %a235 %t236 = load %S.json.Json, ptr %a205 @@ -108304,14 +112329,14 @@ each.end10748: %t237 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t237, ptr %a238 %t239 = load %S.json.Json, ptr %a235 - call void @finch.json.Json.set(ptr %a238, { ptr, i64, i64 } { ptr @.str.6966, i64 10, i64 0 }, %S.json.Json %t239) + call void @finch.json.Json.set(ptr %a238, { ptr, i64, i64 } { ptr @.str.7174, i64 10, i64 0 }, %S.json.Json %t239) %t240 = call %S.json.Json @finch.lsp.num(i64 0) - call void @finch.json.Json.set(ptr %a238, { ptr, i64, i64 } { ptr @.str.6967, i64 15, i64 0 }, %S.json.Json %t240) + call void @finch.json.Json.set(ptr %a238, { ptr, i64, i64 } { ptr @.str.7175, i64 15, i64 0 }, %S.json.Json %t240) store %S.json.Json %t240, ptr %a241 call void @finch.drop.S_json_Json(ptr %a241) %t242 = load i64, ptr %a26 %t243 = call %S.json.Json @finch.lsp.num(i64 %t242) - call void @finch.json.Json.set(ptr %a238, { ptr, i64, i64 } { ptr @.str.6968, i64 15, i64 0 }, %S.json.Json %t243) + call void @finch.json.Json.set(ptr %a238, { ptr, i64, i64 } { ptr @.str.7176, i64 15, i64 0 }, %S.json.Json %t243) store %S.json.Json %t243, ptr %a244 call void @finch.drop.S_json_Json(ptr %a244) %t245 = load %S.json.Json, ptr %a238 @@ -108323,14 +112348,14 @@ each.end10748: call void @finch_str_drop(ptr %a24) call void @finch_str_drop(ptr %a9) ret %S.json.Json %t245 -endif10744: - br label %each.step10736 -each.step10736: +endif11149: + br label %each.step11141 +each.step11141: %t246 = load i64, ptr %a180 %t247 = add i64 %t246, 1 store i64 %t247, ptr %a180 - br label %each.cond10734 -each.end10737: + br label %each.cond11139 +each.end11142: %t248 = call { ptr, i64, i64 } @finch.docs.builtins() %t249 = load { ptr, i64, i64 }, ptr %a97 %t250 = call %S.docs.Doc @finch.docs.find({ ptr, i64, i64 } %t248, { ptr, i64, i64 } %t249) @@ -108341,20 +112366,20 @@ each.end10737: %t254 = getelementptr inbounds { ptr, i64, i64 }, ptr %t253, i32 0, i32 1 %t255 = load i64, ptr %t254 %t256 = icmp sgt i64 %t255, 0 - br i1 %t256, label %then10752, label %endif10754 -then10752: + br i1 %t256, label %then11157, label %endif11159 +then11157: %t257 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t257, ptr %a258 %t259 = getelementptr inbounds %S.docs.Doc, ptr %a252, i32 0, i32 1 %t260 = load { ptr, i64, i64 }, ptr %t259 %t261 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t260) - call void @finch.json.Json.set(ptr %a258, { ptr, i64, i64 } { ptr @.str.6969, i64 5, i64 0 }, %S.json.Json %t261) + call void @finch.json.Json.set(ptr %a258, { ptr, i64, i64 } { ptr @.str.7177, i64 5, i64 0 }, %S.json.Json %t261) store %S.json.Json %t261, ptr %a262 call void @finch.drop.S_json_Json(ptr %a262) %t263 = getelementptr inbounds %S.docs.Doc, ptr %a252, i32 0, i32 2 %t264 = load { ptr, i64, i64 }, ptr %t263 %t265 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t264) - call void @finch.json.Json.set(ptr %a258, { ptr, i64, i64 } { ptr @.str.6970, i64 13, i64 0 }, %S.json.Json %t265) + call void @finch.json.Json.set(ptr %a258, { ptr, i64, i64 } { ptr @.str.7178, i64 13, i64 0 }, %S.json.Json %t265) store %S.json.Json %t265, ptr %a266 call void @finch.drop.S_json_Json(ptr %a266) %t267 = call %S.json.Json @finch.json.new_list() @@ -108364,14 +112389,14 @@ then10752: %t270 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t270, ptr %a271 %t272 = load %S.json.Json, ptr %a268 - call void @finch.json.Json.set(ptr %a271, { ptr, i64, i64 } { ptr @.str.6971, i64 10, i64 0 }, %S.json.Json %t272) + call void @finch.json.Json.set(ptr %a271, { ptr, i64, i64 } { ptr @.str.7179, i64 10, i64 0 }, %S.json.Json %t272) %t273 = call %S.json.Json @finch.lsp.num(i64 0) - call void @finch.json.Json.set(ptr %a271, { ptr, i64, i64 } { ptr @.str.6972, i64 15, i64 0 }, %S.json.Json %t273) + call void @finch.json.Json.set(ptr %a271, { ptr, i64, i64 } { ptr @.str.7180, i64 15, i64 0 }, %S.json.Json %t273) store %S.json.Json %t273, ptr %a274 call void @finch.drop.S_json_Json(ptr %a274) %t275 = load i64, ptr %a26 %t276 = call %S.json.Json @finch.lsp.num(i64 %t275) - call void @finch.json.Json.set(ptr %a271, { ptr, i64, i64 } { ptr @.str.6973, i64 15, i64 0 }, %S.json.Json %t276) + call void @finch.json.Json.set(ptr %a271, { ptr, i64, i64 } { ptr @.str.7181, i64 15, i64 0 }, %S.json.Json %t276) store %S.json.Json %t276, ptr %a277 call void @finch.drop.S_json_Json(ptr %a277) %t278 = load %S.json.Json, ptr %a271 @@ -108383,7 +112408,7 @@ then10752: call void @finch_str_drop(ptr %a24) call void @finch_str_drop(ptr %a9) ret %S.json.Json %t278 -endif10754: +endif11159: %t279 = call %S.json.Json @finch.json.new_null() call void @finch.drop.S_docs_Doc(ptr %a252) call void @finch_str_drop(ptr %a102) @@ -108399,12 +112424,12 @@ entry: %a3 = alloca %S.json.Json, align 16 %a5 = alloca %S.json.Json, align 16 store %S.json.Json %p0, ptr %a1 - %t2 = call %S.json.Json @finch.json.Json.get(ptr %a1, { ptr, i64, i64 } { ptr @.str.6974, i64 12, i64 0 }) + %t2 = call %S.json.Json @finch.json.Json.get(ptr %a1, { ptr, i64, i64 } { ptr @.str.7182, i64 12, i64 0 }) store %S.json.Json %t2, ptr %a3 - %t4 = call %S.json.Json @finch.json.Json.get(ptr %a3, { ptr, i64, i64 } { ptr @.str.6975, i64 4, i64 0 }) + %t4 = call %S.json.Json @finch.json.Json.get(ptr %a3, { ptr, i64, i64 } { ptr @.str.7183, i64 4, i64 0 }) call void @finch.drop.S_json_Json(ptr %a3) store %S.json.Json %t4, ptr %a5 - %t6 = call { ptr, i64, i64 } @finch.json.Json.str_or(ptr %a5, { ptr, i64, i64 } { ptr @.str.6976, i64 0, i64 0 }) + %t6 = call { ptr, i64, i64 } @finch.json.Json.str_or(ptr %a5, { ptr, i64, i64 } { ptr @.str.7184, i64 0, i64 0 }) call void @finch.drop.S_json_Json(ptr %a5) ret { ptr, i64, i64 } %t6 } @@ -108416,12 +112441,12 @@ entry: %a5 = alloca %S.json.Json, align 16 %a8 = alloca { ptr, i64, i64 }, align 16 store %S.json.Json %p0, ptr %a1 - %t2 = call %S.json.Json @finch.json.Json.get(ptr %a1, { ptr, i64, i64 } { ptr @.str.6977, i64 12, i64 0 }) + %t2 = call %S.json.Json @finch.json.Json.get(ptr %a1, { ptr, i64, i64 } { ptr @.str.7185, i64 12, i64 0 }) store %S.json.Json %t2, ptr %a3 - %t4 = call %S.json.Json @finch.json.Json.get(ptr %a3, { ptr, i64, i64 } { ptr @.str.6978, i64 3, i64 0 }) + %t4 = call %S.json.Json @finch.json.Json.get(ptr %a3, { ptr, i64, i64 } { ptr @.str.7186, i64 3, i64 0 }) call void @finch.drop.S_json_Json(ptr %a3) store %S.json.Json %t4, ptr %a5 - %t6 = call { ptr, i64, i64 } @finch.json.Json.str_or(ptr %a5, { ptr, i64, i64 } { ptr @.str.6979, i64 0, i64 0 }) + %t6 = call { ptr, i64, i64 } @finch.json.Json.str_or(ptr %a5, { ptr, i64, i64 } { ptr @.str.7187, i64 0, i64 0 }) call void @finch.drop.S_json_Json(ptr %a5) %t7 = call { ptr, i64, i64 } @finch.lsp.uriToPath({ ptr, i64, i64 } %t6) store { ptr, i64, i64 } %t6, ptr %a8 @@ -108535,80 +112560,80 @@ entry: %a322 = alloca %S.json.Json, align 16 %a328 = alloca %S.json.Json, align 16 store %S.json.Json %p0, ptr %a1 - %t2 = call %S.json.Json @finch.json.Json.get(ptr %a1, { ptr, i64, i64 } { ptr @.str.6980, i64 6, i64 0 }) + %t2 = call %S.json.Json @finch.json.Json.get(ptr %a1, { ptr, i64, i64 } { ptr @.str.7188, i64 6, i64 0 }) store %S.json.Json %t2, ptr %a3 - %t4 = call { ptr, i64, i64 } @finch.json.Json.str_or(ptr %a3, { ptr, i64, i64 } { ptr @.str.6981, i64 0, i64 0 }) + %t4 = call { ptr, i64, i64 } @finch.json.Json.str_or(ptr %a3, { ptr, i64, i64 } { ptr @.str.7189, i64 0, i64 0 }) call void @finch.drop.S_json_Json(ptr %a3) store { ptr, i64, i64 } %t4, ptr %a5 - %t6 = call %S.json.Json @finch.json.Json.get(ptr %a1, { ptr, i64, i64 } { ptr @.str.6982, i64 6, i64 0 }) + %t6 = call %S.json.Json @finch.json.Json.get(ptr %a1, { ptr, i64, i64 } { ptr @.str.7190, i64 6, i64 0 }) store %S.json.Json %t6, ptr %a7 - %t8 = call %S.json.Json @finch.json.Json.get(ptr %a1, { ptr, i64, i64 } { ptr @.str.6983, i64 2, i64 0 }) + %t8 = call %S.json.Json @finch.json.Json.get(ptr %a1, { ptr, i64, i64 } { ptr @.str.7191, i64 2, i64 0 }) store %S.json.Json %t8, ptr %a9 %t10 = load { ptr, i64, i64 }, ptr %a5 store { ptr, i64, i64 } %t10, ptr %a11 - store { ptr, i64, i64 } { ptr @.str.6984, i64 10, i64 0 }, ptr %a12 + store { ptr, i64, i64 } { ptr @.str.7192, i64 10, i64 0 }, ptr %a12 %t13 = call i32 @finch_str_eq(ptr %a11, ptr %a12) %t14 = icmp ne i32 %t13, 0 - br i1 %t14, label %match.arm10756, label %match.next10757 -match.arm10756: + br i1 %t14, label %match.arm11161, label %match.next11162 +match.arm11161: %t15 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t15, ptr %a16 %t17 = call %S.json.Json @finch.lsp.num(i64 1) - call void @finch.json.Json.set(ptr %a16, { ptr, i64, i64 } { ptr @.str.6985, i64 16, i64 0 }, %S.json.Json %t17) + call void @finch.json.Json.set(ptr %a16, { ptr, i64, i64 } { ptr @.str.7193, i64 16, i64 0 }, %S.json.Json %t17) store %S.json.Json %t17, ptr %a18 call void @finch.drop.S_json_Json(ptr %a18) %t19 = call %S.json.Json @finch.json.new_bool(i1 true) - call void @finch.json.Json.set(ptr %a16, { ptr, i64, i64 } { ptr @.str.6986, i64 13, i64 0 }, %S.json.Json %t19) + call void @finch.json.Json.set(ptr %a16, { ptr, i64, i64 } { ptr @.str.7194, i64 13, i64 0 }, %S.json.Json %t19) store %S.json.Json %t19, ptr %a20 call void @finch.drop.S_json_Json(ptr %a20) %t21 = call %S.json.Json @finch.json.new_bool(i1 true) - call void @finch.json.Json.set(ptr %a16, { ptr, i64, i64 } { ptr @.str.6987, i64 18, i64 0 }, %S.json.Json %t21) + call void @finch.json.Json.set(ptr %a16, { ptr, i64, i64 } { ptr @.str.7195, i64 18, i64 0 }, %S.json.Json %t21) store %S.json.Json %t21, ptr %a22 call void @finch.drop.S_json_Json(ptr %a22) %t23 = call %S.json.Json @finch.json.new_bool(i1 true) - call void @finch.json.Json.set(ptr %a16, { ptr, i64, i64 } { ptr @.str.6988, i64 22, i64 0 }, %S.json.Json %t23) + call void @finch.json.Json.set(ptr %a16, { ptr, i64, i64 } { ptr @.str.7196, i64 22, i64 0 }, %S.json.Json %t23) store %S.json.Json %t23, ptr %a24 call void @finch.drop.S_json_Json(ptr %a24) %t25 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t25, ptr %a26 %t27 = call %S.json.Json @finch.json.new_list() store %S.json.Json %t27, ptr %a28 - %t29 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.6989, i64 1, i64 0 }) + %t29 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.7197, i64 1, i64 0 }) call void @finch.json.Json.push(ptr %a28, %S.json.Json %t29) store %S.json.Json %t29, ptr %a30 call void @finch.drop.S_json_Json(ptr %a30) %t31 = load %S.json.Json, ptr %a28 - call void @finch.json.Json.set(ptr %a26, { ptr, i64, i64 } { ptr @.str.6990, i64 17, i64 0 }, %S.json.Json %t31) + call void @finch.json.Json.set(ptr %a26, { ptr, i64, i64 } { ptr @.str.7198, i64 17, i64 0 }, %S.json.Json %t31) %t32 = load %S.json.Json, ptr %a26 - call void @finch.json.Json.set(ptr %a16, { ptr, i64, i64 } { ptr @.str.6991, i64 18, i64 0 }, %S.json.Json %t32) + call void @finch.json.Json.set(ptr %a16, { ptr, i64, i64 } { ptr @.str.7199, i64 18, i64 0 }, %S.json.Json %t32) %t33 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t33, ptr %a34 %t35 = call %S.json.Json @finch.json.new_list() store %S.json.Json %t35, ptr %a36 - %t37 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.6992, i64 1, i64 0 }) + %t37 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.7200, i64 1, i64 0 }) call void @finch.json.Json.push(ptr %a36, %S.json.Json %t37) store %S.json.Json %t37, ptr %a38 call void @finch.drop.S_json_Json(ptr %a38) - %t39 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.6993, i64 1, i64 0 }) + %t39 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.7201, i64 1, i64 0 }) call void @finch.json.Json.push(ptr %a36, %S.json.Json %t39) store %S.json.Json %t39, ptr %a40 call void @finch.drop.S_json_Json(ptr %a40) %t41 = load %S.json.Json, ptr %a36 - call void @finch.json.Json.set(ptr %a34, { ptr, i64, i64 } { ptr @.str.6994, i64 17, i64 0 }, %S.json.Json %t41) + call void @finch.json.Json.set(ptr %a34, { ptr, i64, i64 } { ptr @.str.7202, i64 17, i64 0 }, %S.json.Json %t41) %t42 = load %S.json.Json, ptr %a34 - call void @finch.json.Json.set(ptr %a16, { ptr, i64, i64 } { ptr @.str.6995, i64 21, i64 0 }, %S.json.Json %t42) + call void @finch.json.Json.set(ptr %a16, { ptr, i64, i64 } { ptr @.str.7203, i64 21, i64 0 }, %S.json.Json %t42) %t43 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t43, ptr %a44 %t45 = load %S.json.Json, ptr %a16 - call void @finch.json.Json.set(ptr %a44, { ptr, i64, i64 } { ptr @.str.6996, i64 12, i64 0 }, %S.json.Json %t45) + call void @finch.json.Json.set(ptr %a44, { ptr, i64, i64 } { ptr @.str.7204, i64 12, i64 0 }, %S.json.Json %t45) %t46 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t46, ptr %a47 - %t48 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.6998, i64 5, i64 0 }) - call void @finch.json.Json.set(ptr %a47, { ptr, i64, i64 } { ptr @.str.6997, i64 4, i64 0 }, %S.json.Json %t48) + %t48 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.7206, i64 5, i64 0 }) + call void @finch.json.Json.set(ptr %a47, { ptr, i64, i64 } { ptr @.str.7205, i64 4, i64 0 }, %S.json.Json %t48) store %S.json.Json %t48, ptr %a49 call void @finch.drop.S_json_Json(ptr %a49) %t50 = load %S.json.Json, ptr %a47 - call void @finch.json.Json.set(ptr %a44, { ptr, i64, i64 } { ptr @.str.6999, i64 10, i64 0 }, %S.json.Json %t50) + call void @finch.json.Json.set(ptr %a44, { ptr, i64, i64 } { ptr @.str.7207, i64 10, i64 0 }, %S.json.Json %t50) %t51 = load %S.json.Json, ptr %a9 %t52 = load %S.json.Json, ptr %a44 call void @finch.lsp.reply(%S.json.Json %t51, %S.json.Json %t52) @@ -108619,14 +112644,14 @@ match.arm10756: call void @finch.drop.S_json_Json(ptr %a28) call void @finch.drop.S_json_Json(ptr %a26) call void @finch.drop.S_json_Json(ptr %a16) - br label %match.end10755 -match.next10757: + br label %match.end11160 +match.next11162: store { ptr, i64, i64 } %t10, ptr %a53 - store { ptr, i64, i64 } { ptr @.str.7000, i64 8, i64 0 }, ptr %a54 + store { ptr, i64, i64 } { ptr @.str.7208, i64 8, i64 0 }, ptr %a54 %t55 = call i32 @finch_str_eq(ptr %a53, ptr %a54) %t56 = icmp ne i32 %t55, 0 - br i1 %t56, label %match.arm10758, label %match.next10759 -match.arm10758: + br i1 %t56, label %match.arm11163, label %match.next11164 +match.arm11163: %t57 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 6 store i1 true, ptr %t57 %t58 = load %S.json.Json, ptr %a9 @@ -108634,25 +112659,25 @@ match.arm10758: call void @finch.lsp.reply(%S.json.Json %t58, %S.json.Json %t59) store %S.json.Json %t59, ptr %a60 call void @finch.drop.S_json_Json(ptr %a60) - br label %match.end10755 -match.next10759: + br label %match.end11160 +match.next11164: store { ptr, i64, i64 } %t10, ptr %a61 - store { ptr, i64, i64 } { ptr @.str.7001, i64 4, i64 0 }, ptr %a62 + store { ptr, i64, i64 } { ptr @.str.7209, i64 4, i64 0 }, ptr %a62 %t63 = call i32 @finch_str_eq(ptr %a61, ptr %a62) %t64 = icmp ne i32 %t63, 0 - br i1 %t64, label %match.arm10760, label %match.next10761 -match.arm10760: + br i1 %t64, label %match.arm11165, label %match.next11166 +match.arm11165: %t65 = trunc i64 0 to i32 %t66 = call i32 @fflush(ptr null) call void @exit(i32 %t65) - br label %match.end10755 -match.next10761: + br label %match.end11160 +match.next11166: store { ptr, i64, i64 } %t10, ptr %a67 - store { ptr, i64, i64 } { ptr @.str.7002, i64 20, i64 0 }, ptr %a68 + store { ptr, i64, i64 } { ptr @.str.7210, i64 20, i64 0 }, ptr %a68 %t69 = call i32 @finch_str_eq(ptr %a67, ptr %a68) %t70 = icmp ne i32 %t69, 0 - br i1 %t70, label %match.arm10762, label %match.next10763 -match.arm10762: + br i1 %t70, label %match.arm11167, label %match.next11168 +match.arm11167: %t71 = load %S.json.Json, ptr %a7 %t72 = call { ptr, i64, i64 } @finch.lsp.pathOf(%S.json.Json %t71) store { ptr, i64, i64 } %t72, ptr %a73 @@ -108668,14 +112693,14 @@ match.arm10762: %t83 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t82, i64 %t80 %t84 = load i32, ptr %a79 %t85 = icmp ne i32 %t84, 0 - br i1 %t85, label %map.new10764, label %map.have10765 -map.new10764: + br i1 %t85, label %map.new11169, label %map.have11170 +map.new11169: %t86 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t83, i32 0, i32 1 call void @finch_str_copy(ptr %t86, ptr %a78) %t87 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t83, i32 0, i32 2 store { ptr, i64, i64 } zeroinitializer, ptr %t87 - br label %map.have10765 -map.have10765: + br label %map.have11170 +map.have11170: %t88 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t83, i32 0, i32 2 %t89 = load { ptr, i64, i64 }, ptr %t88 store { ptr, i64, i64 } %t75, ptr %t88 @@ -108684,31 +112709,31 @@ map.have10765: %t91 = load { ptr, i64, i64 }, ptr %a73 call void @finch.lsp.Server.analyse(ptr %self, { ptr, i64, i64 } %t91) call void @finch_str_drop(ptr %a73) - br label %match.end10755 -match.next10763: + br label %match.end11160 +match.next11168: store { ptr, i64, i64 } %t10, ptr %a92 - store { ptr, i64, i64 } { ptr @.str.7003, i64 22, i64 0 }, ptr %a93 + store { ptr, i64, i64 } { ptr @.str.7211, i64 22, i64 0 }, ptr %a93 %t94 = call i32 @finch_str_eq(ptr %a92, ptr %a93) %t95 = icmp ne i32 %t94, 0 - br i1 %t95, label %match.arm10766, label %match.next10767 -match.arm10766: + br i1 %t95, label %match.arm11171, label %match.next11172 +match.arm11171: %t96 = load %S.json.Json, ptr %a7 %t97 = call { ptr, i64, i64 } @finch.lsp.pathOf(%S.json.Json %t96) store { ptr, i64, i64 } %t97, ptr %a98 - %t99 = call %S.json.Json @finch.json.Json.get(ptr %a7, { ptr, i64, i64 } { ptr @.str.7004, i64 14, i64 0 }) + %t99 = call %S.json.Json @finch.json.Json.get(ptr %a7, { ptr, i64, i64 } { ptr @.str.7212, i64 14, i64 0 }) store %S.json.Json %t99, ptr %a100 %t101 = call i64 @finch.json.Json.len(ptr %a100) %t102 = icmp sgt i64 %t101, 0 - br i1 %t102, label %then10768, label %endif10770 -then10768: + br i1 %t102, label %then11173, label %endif11175 +then11173: %t103 = call i64 @finch.json.Json.len(ptr %a100) %t104 = sub i64 %t103, 1 %t105 = call %S.json.Json @finch.json.Json.at(ptr %a100, i64 %t104) store %S.json.Json %t105, ptr %a106 - %t107 = call %S.json.Json @finch.json.Json.get(ptr %a106, { ptr, i64, i64 } { ptr @.str.7005, i64 4, i64 0 }) + %t107 = call %S.json.Json @finch.json.Json.get(ptr %a106, { ptr, i64, i64 } { ptr @.str.7213, i64 4, i64 0 }) call void @finch.drop.S_json_Json(ptr %a106) store %S.json.Json %t107, ptr %a108 - %t109 = call { ptr, i64, i64 } @finch.json.Json.str_or(ptr %a108, { ptr, i64, i64 } { ptr @.str.7006, i64 0, i64 0 }) + %t109 = call { ptr, i64, i64 } @finch.json.Json.str_or(ptr %a108, { ptr, i64, i64 } { ptr @.str.7214, i64 0, i64 0 }) call void @finch.drop.S_json_Json(ptr %a108) %t110 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 2 %t111 = load { ptr, i64, i64 }, ptr %a98 @@ -108720,14 +112745,14 @@ then10768: %t117 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t116, i64 %t114 %t118 = load i32, ptr %a113 %t119 = icmp ne i32 %t118, 0 - br i1 %t119, label %map.new10771, label %map.have10772 -map.new10771: + br i1 %t119, label %map.new11176, label %map.have11177 +map.new11176: %t120 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t117, i32 0, i32 1 call void @finch_str_copy(ptr %t120, ptr %a112) %t121 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t117, i32 0, i32 2 store { ptr, i64, i64 } zeroinitializer, ptr %t121 - br label %map.have10772 -map.have10772: + br label %map.have11177 +map.have11177: %t122 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t117, i32 0, i32 2 %t123 = load { ptr, i64, i64 }, ptr %t122 store { ptr, i64, i64 } %t109, ptr %t122 @@ -108735,18 +112760,18 @@ map.have10772: call void @finch_str_drop(ptr %a124) %t125 = load { ptr, i64, i64 }, ptr %a98 call void @finch.lsp.Server.analyse(ptr %self, { ptr, i64, i64 } %t125) - br label %endif10770 -endif10770: + br label %endif11175 +endif11175: call void @finch.drop.S_json_Json(ptr %a100) call void @finch_str_drop(ptr %a98) - br label %match.end10755 -match.next10767: + br label %match.end11160 +match.next11172: store { ptr, i64, i64 } %t10, ptr %a126 - store { ptr, i64, i64 } { ptr @.str.7007, i64 20, i64 0 }, ptr %a127 + store { ptr, i64, i64 } { ptr @.str.7215, i64 20, i64 0 }, ptr %a127 %t128 = call i32 @finch_str_eq(ptr %a126, ptr %a127) %t129 = icmp ne i32 %t128, 0 - br i1 %t129, label %match.arm10773, label %match.next10774 -match.arm10773: + br i1 %t129, label %match.arm11178, label %match.next11179 +match.arm11178: %t130 = load %S.json.Json, ptr %a7 %t131 = call { ptr, i64, i64 } @finch.lsp.pathOf(%S.json.Json %t130) store { ptr, i64, i64 } %t131, ptr %a132 @@ -108755,21 +112780,21 @@ match.arm10773: store { ptr, i64, i64 } %t134, ptr %a135 %t136 = call i64 @finch_map_find(ptr %t133, ptr %a135, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t137 = icmp sge i64 %t136, 0 - br i1 %t137, label %then10775, label %endif10777 -then10775: + br i1 %t137, label %then11180, label %endif11182 +then11180: %t138 = load { ptr, i64, i64 }, ptr %a132 call void @finch.lsp.Server.analyse(ptr %self, { ptr, i64, i64 } %t138) - br label %endif10777 -endif10777: + br label %endif11182 +endif11182: call void @finch_str_drop(ptr %a132) - br label %match.end10755 -match.next10774: + br label %match.end11160 +match.next11179: store { ptr, i64, i64 } %t10, ptr %a139 - store { ptr, i64, i64 } { ptr @.str.7008, i64 21, i64 0 }, ptr %a140 + store { ptr, i64, i64 } { ptr @.str.7216, i64 21, i64 0 }, ptr %a140 %t141 = call i32 @finch_str_eq(ptr %a139, ptr %a140) %t142 = icmp ne i32 %t141, 0 - br i1 %t142, label %match.arm10778, label %match.next10779 -match.arm10778: + br i1 %t142, label %match.arm11183, label %match.next11184 +match.arm11183: %t143 = load %S.json.Json, ptr %a7 %t144 = call { ptr, i64, i64 } @finch.lsp.pathOf(%S.json.Json %t143) store { ptr, i64, i64 } %t144, ptr %a145 @@ -108778,8 +112803,8 @@ match.arm10778: store { ptr, i64, i64 } %t147, ptr %a148 %t149 = call i64 @finch_map_find(ptr %t146, ptr %a148, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t150 = icmp sge i64 %t149, 0 - br i1 %t150, label %remove.hit10780, label %remove.end10781 -remove.hit10780: + br i1 %t150, label %remove.hit11185, label %remove.end11186 +remove.hit11185: %t151 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t146, i32 0, i32 0 %t152 = load ptr, ptr %t151 %t153 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t152, i64 %t149 @@ -108788,15 +112813,15 @@ remove.hit10780: %t155 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t153, i32 0, i32 2 call void @finch_str_drop(ptr %t155) call void @finch_map_remove_at(ptr %t146, i64 %t149, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr null, i32 1) to i64)) - br label %remove.end10781 -remove.end10781: + br label %remove.end11186 +remove.end11186: %t156 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 3 %t157 = load { ptr, i64, i64 }, ptr %a145 store { ptr, i64, i64 } %t157, ptr %a158 %t159 = call i64 @finch_map_find(ptr %t156, ptr %a158, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t160 = icmp sge i64 %t159, 0 - br i1 %t160, label %remove.hit10782, label %remove.end10783 -remove.hit10782: + br i1 %t160, label %remove.hit11187, label %remove.end11188 +remove.hit11187: %t161 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t156, i32 0, i32 0 %t162 = load ptr, ptr %t161 %t163 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t162, i64 %t159 @@ -108805,15 +112830,15 @@ remove.hit10782: %t165 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t163, i32 0, i32 2 call void @finch.drop.S_lsp_Analysis(ptr %t165) call void @finch_map_remove_at(ptr %t156, i64 %t159, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr null, i32 1) to i64)) - br label %remove.end10783 -remove.end10783: + br label %remove.end11188 +remove.end11188: %t166 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 4 %t167 = load { ptr, i64, i64 }, ptr %a145 store { ptr, i64, i64 } %t167, ptr %a168 %t169 = call i64 @finch_map_find(ptr %t166, ptr %a168, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t170 = icmp sge i64 %t169, 0 - br i1 %t170, label %remove.hit10784, label %remove.end10785 -remove.hit10784: + br i1 %t170, label %remove.hit11189, label %remove.end11190 +remove.hit11189: %t171 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t166, i32 0, i32 0 %t172 = load ptr, ptr %t171 %t173 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t172, i64 %t169 @@ -108822,8 +112847,8 @@ remove.hit10784: %t175 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t173, i32 0, i32 2 call void @finch.drop.S_lsp_Analysis(ptr %t175) call void @finch_map_remove_at(ptr %t166, i64 %t169, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr null, i32 1) to i64)) - br label %remove.end10785 -remove.end10785: + br label %remove.end11190 +remove.end11190: %t176 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t176, ptr %a177 %t178 = load { ptr, i64, i64 }, ptr %a145 @@ -108831,64 +112856,64 @@ remove.end10785: %t180 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t179) store { ptr, i64, i64 } %t179, ptr %a181 call void @finch_str_drop(ptr %a181) - call void @finch.json.Json.set(ptr %a177, { ptr, i64, i64 } { ptr @.str.7009, i64 3, i64 0 }, %S.json.Json %t180) + call void @finch.json.Json.set(ptr %a177, { ptr, i64, i64 } { ptr @.str.7217, i64 3, i64 0 }, %S.json.Json %t180) store %S.json.Json %t180, ptr %a182 call void @finch.drop.S_json_Json(ptr %a182) %t183 = call %S.json.Json @finch.json.new_list() - call void @finch.json.Json.set(ptr %a177, { ptr, i64, i64 } { ptr @.str.7010, i64 11, i64 0 }, %S.json.Json %t183) + call void @finch.json.Json.set(ptr %a177, { ptr, i64, i64 } { ptr @.str.7218, i64 11, i64 0 }, %S.json.Json %t183) store %S.json.Json %t183, ptr %a184 call void @finch.drop.S_json_Json(ptr %a184) %t185 = load %S.json.Json, ptr %a177 - call void @finch.lsp.notify({ ptr, i64, i64 } { ptr @.str.7011, i64 31, i64 0 }, %S.json.Json %t185) + call void @finch.lsp.notify({ ptr, i64, i64 } { ptr @.str.7219, i64 31, i64 0 }, %S.json.Json %t185) call void @finch.drop.S_json_Json(ptr %a177) call void @finch_str_drop(ptr %a145) - br label %match.end10755 -match.next10779: + br label %match.end11160 +match.next11184: store { ptr, i64, i64 } %t10, ptr %a186 - store { ptr, i64, i64 } { ptr @.str.7012, i64 18, i64 0 }, ptr %a187 + store { ptr, i64, i64 } { ptr @.str.7220, i64 18, i64 0 }, ptr %a187 %t188 = call i32 @finch_str_eq(ptr %a186, ptr %a187) %t189 = icmp ne i32 %t188, 0 - br i1 %t189, label %match.arm10786, label %match.or10788 -match.or10788: + br i1 %t189, label %match.arm11191, label %match.or11193 +match.or11193: store { ptr, i64, i64 } %t10, ptr %a190 - store { ptr, i64, i64 } { ptr @.str.7013, i64 23, i64 0 }, ptr %a191 + store { ptr, i64, i64 } { ptr @.str.7221, i64 23, i64 0 }, ptr %a191 %t192 = call i32 @finch_str_eq(ptr %a190, ptr %a191) %t193 = icmp ne i32 %t192, 0 - br i1 %t193, label %match.arm10786, label %match.or10789 -match.or10789: + br i1 %t193, label %match.arm11191, label %match.or11194 +match.or11194: store { ptr, i64, i64 } %t10, ptr %a194 - store { ptr, i64, i64 } { ptr @.str.7014, i64 23, i64 0 }, ptr %a195 + store { ptr, i64, i64 } { ptr @.str.7222, i64 23, i64 0 }, ptr %a195 %t196 = call i32 @finch_str_eq(ptr %a194, ptr %a195) %t197 = icmp ne i32 %t196, 0 - br i1 %t197, label %match.arm10786, label %match.or10790 -match.or10790: + br i1 %t197, label %match.arm11191, label %match.or11195 +match.or11195: store { ptr, i64, i64 } %t10, ptr %a198 - store { ptr, i64, i64 } { ptr @.str.7015, i64 27, i64 0 }, ptr %a199 + store { ptr, i64, i64 } { ptr @.str.7223, i64 27, i64 0 }, ptr %a199 %t200 = call i32 @finch_str_eq(ptr %a198, ptr %a199) %t201 = icmp ne i32 %t200, 0 - br i1 %t201, label %match.arm10786, label %match.or10791 -match.or10791: + br i1 %t201, label %match.arm11191, label %match.or11196 +match.or11196: store { ptr, i64, i64 } %t10, ptr %a202 - store { ptr, i64, i64 } { ptr @.str.7016, i64 26, i64 0 }, ptr %a203 + store { ptr, i64, i64 } { ptr @.str.7224, i64 26, i64 0 }, ptr %a203 %t204 = call i32 @finch_str_eq(ptr %a202, ptr %a203) %t205 = icmp ne i32 %t204, 0 - br i1 %t205, label %match.arm10786, label %match.next10787 -match.arm10786: + br i1 %t205, label %match.arm11191, label %match.next11192 +match.arm11191: %t206 = load %S.json.Json, ptr %a7 %t207 = call { ptr, i64, i64 } @finch.lsp.pathOf(%S.json.Json %t206) store { ptr, i64, i64 } %t207, ptr %a208 - %t209 = call %S.json.Json @finch.json.Json.get(ptr %a7, { ptr, i64, i64 } { ptr @.str.7017, i64 8, i64 0 }) + %t209 = call %S.json.Json @finch.json.Json.get(ptr %a7, { ptr, i64, i64 } { ptr @.str.7225, i64 8, i64 0 }) store %S.json.Json %t209, ptr %a210 - %t211 = call %S.json.Json @finch.json.Json.get(ptr %a210, { ptr, i64, i64 } { ptr @.str.7018, i64 4, i64 0 }) + %t211 = call %S.json.Json @finch.json.Json.get(ptr %a210, { ptr, i64, i64 } { ptr @.str.7226, i64 4, i64 0 }) call void @finch.drop.S_json_Json(ptr %a210) store %S.json.Json %t211, ptr %a212 %t213 = call i64 @finch.json.Json.int_or(ptr %a212, i64 0) call void @finch.drop.S_json_Json(ptr %a212) %t214 = add i64 %t213, 1 store i64 %t214, ptr %a215 - %t216 = call %S.json.Json @finch.json.Json.get(ptr %a7, { ptr, i64, i64 } { ptr @.str.7019, i64 8, i64 0 }) + %t216 = call %S.json.Json @finch.json.Json.get(ptr %a7, { ptr, i64, i64 } { ptr @.str.7227, i64 8, i64 0 }) store %S.json.Json %t216, ptr %a217 - %t218 = call %S.json.Json @finch.json.Json.get(ptr %a217, { ptr, i64, i64 } { ptr @.str.7020, i64 9, i64 0 }) + %t218 = call %S.json.Json @finch.json.Json.get(ptr %a217, { ptr, i64, i64 } { ptr @.str.7228, i64 9, i64 0 }) call void @finch.drop.S_json_Json(ptr %a217) store %S.json.Json %t218, ptr %a219 %t220 = call i64 @finch.json.Json.int_or(ptr %a219, i64 0) @@ -108901,8 +112926,8 @@ match.arm10786: %t226 = call i64 @finch_map_find(ptr %t223, ptr %a225, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t227 = icmp sge i64 %t226, 0 %t228 = xor i1 %t227, true - br i1 %t228, label %then10792, label %endif10794 -then10792: + br i1 %t228, label %then11197, label %endif11199 +then11197: %t229 = load %S.json.Json, ptr %a9 %t230 = call %S.json.Json @finch.json.new_null() call void @finch.lsp.reply(%S.json.Json %t229, %S.json.Json %t230) @@ -108913,20 +112938,20 @@ then10792: call void @finch.drop.S_json_Json(ptr %a7) call void @finch_str_drop(ptr %a5) ret void -endif10794: +endif11199: %t232 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 3 %t233 = load { ptr, i64, i64 }, ptr %a208 store { ptr, i64, i64 } %t233, ptr %a234 %t235 = call i64 @finch_map_find(ptr %t232, ptr %a234, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t236 = icmp slt i64 %t235, 0 - br i1 %t236, label %map.missing10795, label %map.found10796 -map.missing10795: + br i1 %t236, label %map.missing11200, label %map.found11201 +map.missing11200: store { ptr, i64, i64 } zeroinitializer, ptr %a237 store { ptr, i64, i64 } %t233, ptr %a238 call void @finch_buf_str(ptr %a237, ptr %a238, i32 1) - call void @finch_map_missing(ptr @.str.7021, i64 842, ptr %a237) + call void @finch_map_missing(ptr @.str.7229, i64 842, ptr %a237) unreachable -map.found10796: +map.found11201: %t239 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t232, i32 0, i32 0 %t240 = load ptr, ptr %t239 %t241 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t240, i64 %t235 @@ -108936,27 +112961,27 @@ map.found10796: call void @finch.copy.S_lsp_Analysis(ptr %a245, ptr %a244) %t246 = load %S.lsp.Analysis, ptr %a245 store %S.lsp.Analysis %t246, ptr %a247 - store { ptr, i64, i64 } { ptr @.str.7022, i64 0, i64 0 }, ptr %a248 + store { ptr, i64, i64 } { ptr @.str.7230, i64 0, i64 0 }, ptr %a248 %t249 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 2 %t250 = load { ptr, i64, i64 }, ptr %a208 store { ptr, i64, i64 } %t250, ptr %a251 %t252 = call i64 @finch_map_find(ptr %t249, ptr %a251, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t253 = icmp sge i64 %t252, 0 - br i1 %t253, label %then10797, label %endif10799 -then10797: + br i1 %t253, label %then11202, label %endif11204 +then11202: %t254 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 2 %t255 = load { ptr, i64, i64 }, ptr %a208 store { ptr, i64, i64 } %t255, ptr %a256 %t257 = call i64 @finch_map_find(ptr %t254, ptr %a256, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t258 = icmp slt i64 %t257, 0 - br i1 %t258, label %map.missing10800, label %map.found10801 -map.missing10800: + br i1 %t258, label %map.missing11205, label %map.found11206 +map.missing11205: store { ptr, i64, i64 } zeroinitializer, ptr %a259 store { ptr, i64, i64 } %t255, ptr %a260 call void @finch_buf_str(ptr %a259, ptr %a260, i32 1) - call void @finch_map_missing(ptr @.str.7023, i64 845, ptr %a259) + call void @finch_map_missing(ptr @.str.7231, i64 845, ptr %a259) unreachable -map.found10801: +map.found11206: %t261 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t254, i32 0, i32 0 %t262 = load ptr, ptr %t261 %t263 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t262, i64 %t257 @@ -108969,15 +112994,15 @@ map.found10801: store { ptr, i64, i64 } %t268, ptr %a248 store { ptr, i64, i64 } %t269, ptr %a270 call void @finch_str_drop(ptr %a270) - br label %endif10799 -endif10799: + br label %endif11204 +endif11204: %t271 = load { ptr, i64, i64 }, ptr %a5 store { ptr, i64, i64 } %t271, ptr %a272 - store { ptr, i64, i64 } { ptr @.str.7024, i64 18, i64 0 }, ptr %a273 + store { ptr, i64, i64 } { ptr @.str.7232, i64 18, i64 0 }, ptr %a273 %t274 = call i32 @finch_str_eq(ptr %a272, ptr %a273) %t275 = icmp ne i32 %t274, 0 - br i1 %t275, label %match.arm10803, label %match.next10804 -match.arm10803: + br i1 %t275, label %match.arm11208, label %match.next11209 +match.arm11208: %t276 = load %S.json.Json, ptr %a9 %t277 = load %S.lsp.Analysis, ptr %a247 %t278 = load { ptr, i64, i64 }, ptr %a208 @@ -108987,14 +113012,14 @@ match.arm10803: call void @finch.lsp.reply(%S.json.Json %t276, %S.json.Json %t281) store %S.json.Json %t281, ptr %a282 call void @finch.drop.S_json_Json(ptr %a282) - br label %match.end10802 -match.next10804: + br label %match.end11207 +match.next11209: store { ptr, i64, i64 } %t271, ptr %a283 - store { ptr, i64, i64 } { ptr @.str.7025, i64 23, i64 0 }, ptr %a284 + store { ptr, i64, i64 } { ptr @.str.7233, i64 23, i64 0 }, ptr %a284 %t285 = call i32 @finch_str_eq(ptr %a283, ptr %a284) %t286 = icmp ne i32 %t285, 0 - br i1 %t286, label %match.arm10805, label %match.next10806 -match.arm10805: + br i1 %t286, label %match.arm11210, label %match.next11211 +match.arm11210: %t287 = load %S.json.Json, ptr %a9 %t288 = load %S.lsp.Analysis, ptr %a247 %t289 = load { ptr, i64, i64 }, ptr %a208 @@ -109004,14 +113029,14 @@ match.arm10805: call void @finch.lsp.reply(%S.json.Json %t287, %S.json.Json %t292) store %S.json.Json %t292, ptr %a293 call void @finch.drop.S_json_Json(ptr %a293) - br label %match.end10802 -match.next10806: + br label %match.end11207 +match.next11211: store { ptr, i64, i64 } %t271, ptr %a294 - store { ptr, i64, i64 } { ptr @.str.7026, i64 23, i64 0 }, ptr %a295 + store { ptr, i64, i64 } { ptr @.str.7234, i64 23, i64 0 }, ptr %a295 %t296 = call i32 @finch_str_eq(ptr %a294, ptr %a295) %t297 = icmp ne i32 %t296, 0 - br i1 %t297, label %match.arm10807, label %match.next10808 -match.arm10807: + br i1 %t297, label %match.arm11212, label %match.next11213 +match.arm11212: %t298 = load %S.json.Json, ptr %a9 %t299 = load %S.lsp.Analysis, ptr %a247 %t300 = load { ptr, i64, i64 }, ptr %a248 @@ -109022,14 +113047,14 @@ match.arm10807: call void @finch.lsp.reply(%S.json.Json %t298, %S.json.Json %t304) store %S.json.Json %t304, ptr %a305 call void @finch.drop.S_json_Json(ptr %a305) - br label %match.end10802 -match.next10808: + br label %match.end11207 +match.next11213: store { ptr, i64, i64 } %t271, ptr %a306 - store { ptr, i64, i64 } { ptr @.str.7027, i64 27, i64 0 }, ptr %a307 + store { ptr, i64, i64 } { ptr @.str.7235, i64 27, i64 0 }, ptr %a307 %t308 = call i32 @finch_str_eq(ptr %a306, ptr %a307) %t309 = icmp ne i32 %t308, 0 - br i1 %t309, label %match.arm10809, label %match.next10810 -match.arm10809: + br i1 %t309, label %match.arm11214, label %match.next11215 +match.arm11214: %t310 = load %S.json.Json, ptr %a9 %t311 = load %S.lsp.Analysis, ptr %a247 %t312 = load { ptr, i64, i64 }, ptr %a208 @@ -109037,10 +113062,10 @@ match.arm10809: call void @finch.lsp.reply(%S.json.Json %t310, %S.json.Json %t313) store %S.json.Json %t313, ptr %a314 call void @finch.drop.S_json_Json(ptr %a314) - br label %match.end10802 -match.next10810: - br label %match.arm10811 -match.arm10811: + br label %match.end11207 +match.next11215: + br label %match.arm11216 +match.arm11216: %t315 = load %S.json.Json, ptr %a9 %t316 = load %S.lsp.Analysis, ptr %a247 %t317 = load { ptr, i64, i64 }, ptr %a248 @@ -109051,29 +113076,29 @@ match.arm10811: call void @finch.lsp.reply(%S.json.Json %t315, %S.json.Json %t321) store %S.json.Json %t321, ptr %a322 call void @finch.drop.S_json_Json(ptr %a322) - br label %match.end10802 -match.end10802: + br label %match.end11207 +match.end11207: call void @finch_str_drop(ptr %a248) call void @finch.drop.S_lsp_Analysis(ptr %a247) call void @finch_str_drop(ptr %a208) - br label %match.end10755 -match.next10787: - br label %match.arm10813 -match.arm10813: + br label %match.end11160 +match.next11192: + br label %match.arm11218 +match.arm11218: %t323 = getelementptr inbounds %S.json.Json, ptr %a9, i32 0, i32 0 %t324 = load i32, ptr %t323 %t325 = icmp ne i32 %t324, 0 - br i1 %t325, label %then10815, label %endif10817 -then10815: + br i1 %t325, label %then11220, label %endif11222 +then11220: %t326 = load %S.json.Json, ptr %a9 %t327 = call %S.json.Json @finch.json.new_null() call void @finch.lsp.reply(%S.json.Json %t326, %S.json.Json %t327) store %S.json.Json %t327, ptr %a328 call void @finch.drop.S_json_Json(ptr %a328) - br label %endif10817 -endif10817: - br label %match.end10755 -match.end10755: + br label %endif11222 +endif11222: + br label %match.end11160 +match.end11160: call void @finch.drop.S_json_Json(ptr %a9) call void @finch.drop.S_json_Json(ptr %a7) call void @finch_str_drop(ptr %a5) @@ -109086,31 +113111,31 @@ entry: %t1 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %a, i32 0, i32 2 %t2 = load i64, ptr %t1 store i64 0, ptr %a3 - br label %n.cond10823 -n.cond10823: + br label %n.cond11228 +n.cond11228: %t4 = load i64, ptr %a3 %t5 = icmp slt i64 %t4, %t2 - br i1 %t5, label %n.body10824, label %n.end10825 -n.body10824: + br i1 %t5, label %n.body11229, label %n.end11230 +n.body11229: %t6 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %a, i32 0, i32 0 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t7, i64 %t4 %t9 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t8, i32 0, i32 0 %t10 = load i64, ptr %t9 %t11 = icmp ne i64 %t10, 0 - br i1 %t11, label %entry.live10826, label %entry.next10827 -entry.live10826: + br i1 %t11, label %entry.live11231, label %entry.next11232 +entry.live11231: %t12 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t8, i32 0, i32 1 call void @finch_str_drop(ptr %t12) %t13 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t8, i32 0, i32 2 call void @finch.drop.S_lsp_Analysis(ptr %t13) - br label %entry.next10827 -entry.next10827: + br label %entry.next11232 +entry.next11232: %t14 = load i64, ptr %a3 %t15 = add i64 %t14, 1 store i64 %t15, ptr %a3 - br label %n.cond10823 -n.end10825: + br label %n.cond11228 +n.end11230: call void @finch_map_free(ptr %a) ret void } @@ -109160,7 +113185,7 @@ entry: %t6 = insertvalue %S.lsp.Server zeroinitializer, { ptr, i64, i64 } %t5, 0 %t7 = call { ptr, i64, i64 } @finch.host.tempDir() store { ptr, i64, i64 } %t7, ptr %a9 - store { ptr, i64, i64 } { ptr @.str.7028, i64 11, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.7236, i64 11, i64 0 }, ptr %a10 call void @finch_str_concat(ptr %a8, ptr %a9, ptr %a10) store { ptr, i64, i64 } %t7, ptr %a11 call void @finch_str_drop(ptr %a11) @@ -109178,27 +113203,27 @@ entry: %t21 = load { ptr, i64, i64 }, ptr %a16 %t22 = insertvalue %S.lsp.Server %t6, { ptr, i64, i64 } %t21, 1 store %S.lsp.Server %t22, ptr %a23 - br label %while.cond10818 -while.cond10818: - br label %while.body10819 -while.body10819: + br label %while.cond11223 +while.cond11223: + br label %while.body11224 +while.body11224: %t24 = call { i1, %S.json.Json, { ptr, i64, i64 } } @finch.lsp.readMessage() %t25 = extractvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t24, 0 %t26 = xor i1 %t25, true %t27 = extractvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t24, 2 %t28 = extractvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t24, 1 - br i1 %t26, label %or.failed10821, label %or.ok10822 -or.failed10821: + br i1 %t26, label %or.failed11226, label %or.ok11227 +or.failed11226: store { ptr, i64, i64 } %t27, ptr %a29 call void @finch_str_drop(ptr %a29) - br label %while.end10820 -or.ok10822: + br label %while.end11225 +or.ok11227: store %S.json.Json %t28, ptr %a30 %t31 = load %S.json.Json, ptr %a30 call void @finch.lsp.Server.answer(ptr %a23, %S.json.Json %t31) call void @finch.drop.S_json_Json(ptr %a30) - br label %while.cond10818 -while.end10820: + br label %while.cond11223 +while.end11225: %t32 = getelementptr inbounds %S.lsp.Server, ptr %a23, i32 0, i32 1 %t33 = load { ptr, i64, i64 }, ptr %t32 call void @finch.host.removeTree({ ptr, i64, i64 } %t33) @@ -109277,35 +113302,35 @@ entry: %t1 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 0 %t2 = load i32, ptr %t1 %t3 = icmp eq i32 %t2, 4 - br i1 %t3, label %match.arm10829, label %match.or10831 -match.or10831: + br i1 %t3, label %match.arm11234, label %match.or11236 +match.or11236: %t4 = icmp eq i32 %t2, 5 - br i1 %t4, label %match.arm10829, label %match.next10830 -match.arm10829: + br i1 %t4, label %match.arm11234, label %match.next11235 +match.arm11234: %t5 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 4 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t7 = load i64, ptr %t6 - br label %match.from10832 -match.from10832: - br label %match.end10828 -match.next10830: + br label %match.from11237 +match.from11237: + br label %match.end11233 +match.next11235: %t8 = icmp eq i32 %t2, 3 - br i1 %t8, label %match.arm10833, label %match.next10834 -match.arm10833: + br i1 %t8, label %match.arm11238, label %match.next11239 +match.arm11238: %t9 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 3 %t10 = getelementptr inbounds { ptr, i64, i64 }, ptr %t9, i32 0, i32 1 %t11 = load i64, ptr %t10 - br label %match.from10835 -match.from10835: - br label %match.end10828 -match.next10834: - br label %match.arm10836 -match.arm10836: - br label %match.from10838 -match.from10838: - br label %match.end10828 -match.end10828: - %t12 = phi i64 [ %t7, %match.from10832 ], [ %t11, %match.from10835 ], [ 0, %match.from10838 ] + br label %match.from11240 +match.from11240: + br label %match.end11233 +match.next11239: + br label %match.arm11241 +match.arm11241: + br label %match.from11243 +match.from11243: + br label %match.end11233 +match.end11233: + %t12 = phi i64 [ %t7, %match.from11237 ], [ %t11, %match.from11240 ], [ 0, %match.from11243 ] ret i64 %t12 } @@ -109320,10 +113345,10 @@ entry: %t2 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 0 %t3 = load i32, ptr %t2 %t4 = icmp eq i32 %t3, 5 - br label %logic.from10839 -logic.from10839: - br i1 %t4, label %logic.rhs10840, label %logic.end10841 -logic.rhs10840: + br label %logic.from11244 +logic.from11244: + br i1 %t4, label %logic.rhs11245, label %logic.end11246 +logic.rhs11245: %t5 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 5 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t7 = load { ptr, i64, i64 }, ptr %a1 @@ -109331,34 +113356,34 @@ logic.rhs10840: %t9 = load i64, ptr %t6 %t10 = load ptr, ptr %t5 store i64 0, ptr %a11 - br label %find.cond10842 -find.cond10842: + br label %find.cond11247 +find.cond11247: %t12 = load i64, ptr %a11 %t13 = icmp slt i64 %t12, %t9 - br i1 %t13, label %find.body10843, label %find.end10846 -find.body10843: + br i1 %t13, label %find.body11248, label %find.end11251 +find.body11248: %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %t10, i64 %t12 %t15 = load { ptr, i64, i64 }, ptr %t14 store { ptr, i64, i64 } %t15, ptr %a16 store { ptr, i64, i64 } %t7, ptr %a17 %t18 = call i32 @finch_str_eq(ptr %a16, ptr %a17) %t19 = icmp ne i32 %t18, 0 - br i1 %t19, label %find.hit10844, label %find.next10845 -find.hit10844: + br i1 %t19, label %find.hit11249, label %find.next11250 +find.hit11249: store i64 %t12, ptr %a8 - br label %find.end10846 -find.next10845: + br label %find.end11251 +find.next11250: %t20 = add i64 %t12, 1 store i64 %t20, ptr %a11 - br label %find.cond10842 -find.end10846: + br label %find.cond11247 +find.end11251: %t21 = load i64, ptr %a8 %t22 = icmp sge i64 %t21, 0 - br label %logic.rend10847 -logic.rend10847: - br label %logic.end10841 -logic.end10841: - %t23 = phi i1 [ false, %logic.from10839 ], [ %t22, %logic.rend10847 ] + br label %logic.rend11252 +logic.rend11252: + br label %logic.end11246 +logic.end11246: + %t23 = phi i1 [ false, %logic.from11244 ], [ %t22, %logic.rend11252 ] ret i1 %t23 } @@ -109371,20 +113396,20 @@ entry: %t3 = getelementptr inbounds { ptr, i64, i64 }, ptr %src, i32 0, i32 1 %t4 = load i64, ptr %t3 store i64 0, ptr %a5 - br label %n.cond10861 -n.cond10861: + br label %n.cond11266 +n.cond11266: %t6 = load i64, ptr %a5 %t7 = icmp slt i64 %t6, %t4 - br i1 %t7, label %n.body10862, label %n.end10863 -n.body10862: + br i1 %t7, label %n.body11267, label %n.end11268 +n.body11267: %t8 = getelementptr inbounds %S.json.Json, ptr %t1, i64 %t6 %t9 = getelementptr inbounds %S.json.Json, ptr %t2, i64 %t6 call void @finch.copy.S_json_Json(ptr %t8, ptr %t9) %t10 = load i64, ptr %a5 %t11 = add i64 %t10, 1 store i64 %t11, ptr %a5 - br label %n.cond10861 -n.end10863: + br label %n.cond11266 +n.end11268: ret void } @@ -109419,11 +113444,11 @@ entry: %t2 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 0 %t3 = load i32, ptr %t2 %t4 = icmp ne i32 %t3, 5 - br i1 %t4, label %then10848, label %endif10850 -then10848: + br i1 %t4, label %then11253, label %endif11255 +then11253: %t5 = call %S.json.Json @finch.json.new_null() ret %S.json.Json %t5 -endif10850: +endif11255: %t6 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 5 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t6, i32 0, i32 1 %t8 = load { ptr, i64, i64 }, ptr %a1 @@ -109431,46 +113456,46 @@ endif10850: %t10 = load i64, ptr %t7 %t11 = load ptr, ptr %t6 store i64 0, ptr %a12 - br label %find.cond10851 -find.cond10851: + br label %find.cond11256 +find.cond11256: %t13 = load i64, ptr %a12 %t14 = icmp slt i64 %t13, %t10 - br i1 %t14, label %find.body10852, label %find.end10855 -find.body10852: + br i1 %t14, label %find.body11257, label %find.end11260 +find.body11257: %t15 = getelementptr inbounds { ptr, i64, i64 }, ptr %t11, i64 %t13 %t16 = load { ptr, i64, i64 }, ptr %t15 store { ptr, i64, i64 } %t16, ptr %a17 store { ptr, i64, i64 } %t8, ptr %a18 %t19 = call i32 @finch_str_eq(ptr %a17, ptr %a18) %t20 = icmp ne i32 %t19, 0 - br i1 %t20, label %find.hit10853, label %find.next10854 -find.hit10853: + br i1 %t20, label %find.hit11258, label %find.next11259 +find.hit11258: store i64 %t13, ptr %a9 - br label %find.end10855 -find.next10854: + br label %find.end11260 +find.next11259: %t21 = add i64 %t13, 1 store i64 %t21, ptr %a12 - br label %find.cond10851 -find.end10855: + br label %find.cond11256 +find.end11260: %t22 = load i64, ptr %a9 store i64 %t22, ptr %a23 %t24 = load i64, ptr %a23 %t25 = icmp slt i64 %t24, 0 - br i1 %t25, label %then10856, label %endif10858 -then10856: + br i1 %t25, label %then11261, label %endif11263 +then11261: %t26 = call %S.json.Json @finch.json.new_null() ret %S.json.Json %t26 -endif10858: +endif11263: %t27 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 4 %t28 = load i64, ptr %a23 %t29 = load { ptr, i64, i64 }, ptr %t27 %t30 = extractvalue { ptr, i64, i64 } %t29, 1 %t31 = icmp uge i64 %t28, %t30 - br i1 %t31, label %range10859, label %inrange10860 -range10859: - call void @finch_panic_index(ptr @.str.7029, i64 84, i64 %t28, i64 %t30) + br i1 %t31, label %range11264, label %inrange11265 +range11264: + call void @finch_panic_index(ptr @.str.7237, i64 84, i64 %t28, i64 %t30) unreachable -inrange10860: +inrange11265: %t32 = extractvalue { ptr, i64, i64 } %t29, 0 %t33 = getelementptr inbounds %S.json.Json, ptr %t32, i64 %t28 %t34 = load %S.json.Json, ptr %t33 @@ -109489,46 +113514,46 @@ entry: %t2 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 0 %t3 = load i32, ptr %t2 %t4 = icmp ne i32 %t3, 4 - br label %logic.from10864 -logic.from10864: - br i1 %t4, label %logic.end10866, label %logic.rhs10865 -logic.rhs10865: + br label %logic.from11269 +logic.from11269: + br i1 %t4, label %logic.end11271, label %logic.rhs11270 +logic.rhs11270: %t5 = load i64, ptr %a1 %t6 = icmp slt i64 %t5, 0 - br label %logic.rend10867 -logic.rend10867: - br label %logic.end10866 -logic.end10866: - %t7 = phi i1 [ true, %logic.from10864 ], [ %t6, %logic.rend10867 ] - br label %logic.from10868 -logic.from10868: - br i1 %t7, label %logic.end10870, label %logic.rhs10869 -logic.rhs10869: + br label %logic.rend11272 +logic.rend11272: + br label %logic.end11271 +logic.end11271: + %t7 = phi i1 [ true, %logic.from11269 ], [ %t6, %logic.rend11272 ] + br label %logic.from11273 +logic.from11273: + br i1 %t7, label %logic.end11275, label %logic.rhs11274 +logic.rhs11274: %t8 = load i64, ptr %a1 %t9 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 4 %t10 = getelementptr inbounds { ptr, i64, i64 }, ptr %t9, i32 0, i32 1 %t11 = load i64, ptr %t10 %t12 = icmp sge i64 %t8, %t11 - br label %logic.rend10871 -logic.rend10871: - br label %logic.end10870 -logic.end10870: - %t13 = phi i1 [ true, %logic.from10868 ], [ %t12, %logic.rend10871 ] - br i1 %t13, label %then10872, label %endif10874 -then10872: + br label %logic.rend11276 +logic.rend11276: + br label %logic.end11275 +logic.end11275: + %t13 = phi i1 [ true, %logic.from11273 ], [ %t12, %logic.rend11276 ] + br i1 %t13, label %then11277, label %endif11279 +then11277: %t14 = call %S.json.Json @finch.json.new_null() ret %S.json.Json %t14 -endif10874: +endif11279: %t15 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 4 %t16 = load i64, ptr %a1 %t17 = load { ptr, i64, i64 }, ptr %t15 %t18 = extractvalue { ptr, i64, i64 } %t17, 1 %t19 = icmp uge i64 %t16, %t18 - br i1 %t19, label %range10875, label %inrange10876 -range10875: - call void @finch_panic_index(ptr @.str.7030, i64 92, i64 %t16, i64 %t18) + br i1 %t19, label %range11280, label %inrange11281 +range11280: + call void @finch_panic_index(ptr @.str.7238, i64 92, i64 %t16, i64 %t18) unreachable -inrange10876: +inrange11281: %t20 = extractvalue { ptr, i64, i64 } %t17, 0 %t21 = getelementptr inbounds %S.json.Json, ptr %t20, i64 %t16 %t22 = load %S.json.Json, ptr %t21 @@ -109549,15 +113574,15 @@ entry: %t2 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 0 %t3 = load i32, ptr %t2 %t4 = icmp eq i32 %t3, 3 - br i1 %t4, label %then10877, label %endif10879 -then10877: + br i1 %t4, label %then11282, label %endif11284 +then11282: %t5 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 3 %t6 = load { ptr, i64, i64 }, ptr %t5 store { ptr, i64, i64 } %t6, ptr %a7 call void @finch_str_copy(ptr %a8, ptr %a7) %t9 = load { ptr, i64, i64 }, ptr %a8 ret { ptr, i64, i64 } %t9 -endif10879: +endif11284: %t10 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t10, ptr %a11 call void @finch_str_copy(ptr %a12, ptr %a11) @@ -109572,12 +113597,12 @@ entry: %t2 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 0 %t3 = load i32, ptr %t2 %t4 = icmp eq i32 %t3, 2 - br i1 %t4, label %then10880, label %endif10882 -then10880: + br i1 %t4, label %then11285, label %endif11287 +then11285: %t5 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 2 %t6 = load double, ptr %t5 ret double %t6 -endif10882: +endif11287: %t7 = load double, ptr %a1 ret double %t7 } @@ -109589,13 +113614,13 @@ entry: %t2 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 0 %t3 = load i32, ptr %t2 %t4 = icmp eq i32 %t3, 2 - br i1 %t4, label %then10883, label %endif10885 -then10883: + br i1 %t4, label %then11288, label %endif11290 +then11288: %t5 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 2 %t6 = load double, ptr %t5 %t7 = fptosi double %t6 to i64 ret i64 %t7 -endif10885: +endif11290: %t8 = load i64, ptr %a1 ret i64 %t8 } @@ -109607,12 +113632,12 @@ entry: %t2 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 0 %t3 = load i32, ptr %t2 %t4 = icmp eq i32 %t3, 1 - br i1 %t4, label %then10886, label %endif10888 -then10886: + br i1 %t4, label %then11291, label %endif11293 +then11291: %t5 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 1 %t6 = load i1, ptr %t5 ret i1 %t6 -endif10888: +endif11293: %t7 = load i1, ptr %a1 ret i1 %t7 } @@ -109676,44 +113701,44 @@ entry: %t7 = load i64, ptr %t4 %t8 = load ptr, ptr %t3 store i64 0, ptr %a9 - br label %find.cond10889 -find.cond10889: + br label %find.cond11294 +find.cond11294: %t10 = load i64, ptr %a9 %t11 = icmp slt i64 %t10, %t7 - br i1 %t11, label %find.body10890, label %find.end10893 -find.body10890: + br i1 %t11, label %find.body11295, label %find.end11298 +find.body11295: %t12 = getelementptr inbounds { ptr, i64, i64 }, ptr %t8, i64 %t10 %t13 = load { ptr, i64, i64 }, ptr %t12 store { ptr, i64, i64 } %t13, ptr %a14 store { ptr, i64, i64 } %t5, ptr %a15 %t16 = call i32 @finch_str_eq(ptr %a14, ptr %a15) %t17 = icmp ne i32 %t16, 0 - br i1 %t17, label %find.hit10891, label %find.next10892 -find.hit10891: + br i1 %t17, label %find.hit11296, label %find.next11297 +find.hit11296: store i64 %t10, ptr %a6 - br label %find.end10893 -find.next10892: + br label %find.end11298 +find.next11297: %t18 = add i64 %t10, 1 store i64 %t18, ptr %a9 - br label %find.cond10889 -find.end10893: + br label %find.cond11294 +find.end11298: %t19 = load i64, ptr %a6 store i64 %t19, ptr %a20 %t21 = load i64, ptr %a20 %t22 = icmp sge i64 %t21, 0 - br i1 %t22, label %then10894, label %endif10896 -then10894: + br i1 %t22, label %then11299, label %endif11301 +then11299: %t23 = load %S.json.Json, ptr %a2 %t24 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 4 %t25 = load i64, ptr %a20 %t26 = load { ptr, i64, i64 }, ptr %t24 %t27 = extractvalue { ptr, i64, i64 } %t26, 1 %t28 = icmp uge i64 %t25, %t27 - br i1 %t28, label %range10897, label %inrange10898 -range10897: - call void @finch_panic_index(ptr @.str.7031, i64 140, i64 %t25, i64 %t27) + br i1 %t28, label %range11302, label %inrange11303 +range11302: + call void @finch_panic_index(ptr @.str.7239, i64 140, i64 %t25, i64 %t27) unreachable -inrange10898: +inrange11303: %t29 = extractvalue { ptr, i64, i64 } %t26, 0 %t30 = getelementptr inbounds %S.json.Json, ptr %t29, i64 %t25 store %S.json.Json %t23, ptr %a31 @@ -109724,7 +113749,7 @@ inrange10898: store %S.json.Json %t34, ptr %a35 call void @finch.drop.S_json_Json(ptr %a35) ret void -endif10896: +endif11301: %t36 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 5 %t37 = getelementptr inbounds { ptr, i64, i64 }, ptr %t36, i32 0, i32 1 %t38 = load { ptr, i64, i64 }, ptr %a1 @@ -109777,20 +113802,20 @@ entry: %t2 = mul i64 1, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t3 = call ptr @finch_alloc(i64 %t2) %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 0 - store { ptr, i64, i64 } { ptr @.str.7032, i64 1, i64 0 }, ptr %t4 + store { ptr, i64, i64 } { ptr @.str.7240, i64 1, i64 0 }, ptr %t4 %t5 = insertvalue { ptr, i64, i64 } undef, ptr %t3, 0 %t6 = insertvalue { ptr, i64, i64 } %t5, i64 1, 1 %t7 = insertvalue { ptr, i64, i64 } %t6, i64 1, 2 store { ptr, i64, i64 } %t7, ptr %a8 store i64 0, ptr %a9 - br label %each.cond10899 -each.cond10899: + br label %each.cond11304 +each.cond11304: %t10 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t11 = load i64, ptr %t10 %t12 = load i64, ptr %a9 %t13 = icmp slt i64 %t12, %t11 - br i1 %t13, label %each.body10900, label %each.end10902 -each.body10900: + br i1 %t13, label %each.body11305, label %each.end11307 +each.body11305: %t14 = load ptr, ptr %a1 %t15 = getelementptr inbounds i8, ptr %t14, i64 %t12 %t16 = load i8, ptr %t15 @@ -109800,83 +113825,83 @@ each.body10900: store i64 %t19, ptr %a20 %t21 = load i8, ptr %a17 %t22 = icmp eq i8 %t21, 34 - br i1 %t22, label %then10903, label %else10904 -then10903: + br i1 %t22, label %then11308, label %else11309 +then11308: %t23 = getelementptr inbounds { ptr, i64, i64 }, ptr %a8, i32 0, i32 1 %t24 = load i64, ptr %t23 %t25 = add i64 %t24, 1 call void @finch_arr_reserve(ptr %a8, i64 %t25, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t26 = load ptr, ptr %a8 %t27 = getelementptr inbounds { ptr, i64, i64 }, ptr %t26, i64 %t24 - store { ptr, i64, i64 } { ptr @.str.7033, i64 2, i64 0 }, ptr %t27 + store { ptr, i64, i64 } { ptr @.str.7241, i64 2, i64 0 }, ptr %t27 store i64 %t25, ptr %t23 - br label %endif10905 -else10904: + br label %endif11310 +else11309: %t28 = load i8, ptr %a17 %t29 = icmp eq i8 %t28, 92 - br i1 %t29, label %then10906, label %else10907 -then10906: + br i1 %t29, label %then11311, label %else11312 +then11311: %t30 = getelementptr inbounds { ptr, i64, i64 }, ptr %a8, i32 0, i32 1 %t31 = load i64, ptr %t30 %t32 = add i64 %t31, 1 call void @finch_arr_reserve(ptr %a8, i64 %t32, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t33 = load ptr, ptr %a8 %t34 = getelementptr inbounds { ptr, i64, i64 }, ptr %t33, i64 %t31 - store { ptr, i64, i64 } { ptr @.str.7034, i64 2, i64 0 }, ptr %t34 + store { ptr, i64, i64 } { ptr @.str.7242, i64 2, i64 0 }, ptr %t34 store i64 %t32, ptr %t30 - br label %endif10908 -else10907: + br label %endif11313 +else11312: %t35 = load i8, ptr %a17 %t36 = icmp eq i8 %t35, 10 - br i1 %t36, label %then10909, label %else10910 -then10909: + br i1 %t36, label %then11314, label %else11315 +then11314: %t37 = getelementptr inbounds { ptr, i64, i64 }, ptr %a8, i32 0, i32 1 %t38 = load i64, ptr %t37 %t39 = add i64 %t38, 1 call void @finch_arr_reserve(ptr %a8, i64 %t39, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t40 = load ptr, ptr %a8 %t41 = getelementptr inbounds { ptr, i64, i64 }, ptr %t40, i64 %t38 - store { ptr, i64, i64 } { ptr @.str.7035, i64 2, i64 0 }, ptr %t41 + store { ptr, i64, i64 } { ptr @.str.7243, i64 2, i64 0 }, ptr %t41 store i64 %t39, ptr %t37 - br label %endif10911 -else10910: + br label %endif11316 +else11315: %t42 = load i8, ptr %a17 %t43 = icmp eq i8 %t42, 13 - br i1 %t43, label %then10912, label %else10913 -then10912: + br i1 %t43, label %then11317, label %else11318 +then11317: %t44 = getelementptr inbounds { ptr, i64, i64 }, ptr %a8, i32 0, i32 1 %t45 = load i64, ptr %t44 %t46 = add i64 %t45, 1 call void @finch_arr_reserve(ptr %a8, i64 %t46, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t47 = load ptr, ptr %a8 %t48 = getelementptr inbounds { ptr, i64, i64 }, ptr %t47, i64 %t45 - store { ptr, i64, i64 } { ptr @.str.7036, i64 2, i64 0 }, ptr %t48 + store { ptr, i64, i64 } { ptr @.str.7244, i64 2, i64 0 }, ptr %t48 store i64 %t46, ptr %t44 - br label %endif10914 -else10913: + br label %endif11319 +else11318: %t49 = load i8, ptr %a17 %t50 = icmp eq i8 %t49, 9 - br i1 %t50, label %then10915, label %else10916 -then10915: + br i1 %t50, label %then11320, label %else11321 +then11320: %t51 = getelementptr inbounds { ptr, i64, i64 }, ptr %a8, i32 0, i32 1 %t52 = load i64, ptr %t51 %t53 = add i64 %t52, 1 call void @finch_arr_reserve(ptr %a8, i64 %t53, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t54 = load ptr, ptr %a8 %t55 = getelementptr inbounds { ptr, i64, i64 }, ptr %t54, i64 %t52 - store { ptr, i64, i64 } { ptr @.str.7037, i64 2, i64 0 }, ptr %t55 + store { ptr, i64, i64 } { ptr @.str.7245, i64 2, i64 0 }, ptr %t55 store i64 %t53, ptr %t51 - br label %endif10917 -else10916: + br label %endif11322 +else11321: %t56 = load i64, ptr %a20 %t57 = icmp slt i64 %t56, 32 - br i1 %t57, label %then10918, label %else10919 -then10918: + br i1 %t57, label %then11323, label %else11324 +then11323: %t58 = getelementptr inbounds { ptr, i64, i64 }, ptr %a8, i32 0, i32 1 %t59 = load i64, ptr %a20 %t60 = sdiv i64 %t59, 16 %t61 = call { ptr, i64, i64 } @finch.json.hexdigit(i64 %t60) - store { ptr, i64, i64 } { ptr @.str.7038, i64 4, i64 0 }, ptr %a63 + store { ptr, i64, i64 } { ptr @.str.7246, i64 4, i64 0 }, ptr %a63 store { ptr, i64, i64 } %t61, ptr %a64 call void @finch_str_concat(ptr %a62, ptr %a63, ptr %a64) store { ptr, i64, i64 } %t61, ptr %a65 @@ -109900,8 +113925,8 @@ then10918: %t79 = getelementptr inbounds { ptr, i64, i64 }, ptr %t78, i64 %t76 store { ptr, i64, i64 } %t75, ptr %t79 store i64 %t77, ptr %t58 - br label %endif10920 -else10919: + br label %endif11325 +else11324: %t80 = getelementptr inbounds { ptr, i64, i64 }, ptr %a8, i32 0, i32 1 %t81 = load i8, ptr %a17 call void @finch_str_from_char(ptr %a82, i8 signext %t81) @@ -109913,35 +113938,35 @@ else10919: %t87 = getelementptr inbounds { ptr, i64, i64 }, ptr %t86, i64 %t84 store { ptr, i64, i64 } %t83, ptr %t87 store i64 %t85, ptr %t80 - br label %endif10920 -endif10920: - br label %endif10917 -endif10917: - br label %endif10914 -endif10914: - br label %endif10911 -endif10911: - br label %endif10908 -endif10908: - br label %endif10905 -endif10905: - br label %each.step10901 -each.step10901: + br label %endif11325 +endif11325: + br label %endif11322 +endif11322: + br label %endif11319 +endif11319: + br label %endif11316 +endif11316: + br label %endif11313 +endif11313: + br label %endif11310 +endif11310: + br label %each.step11306 +each.step11306: %t88 = load i64, ptr %a9 %t89 = add i64 %t88, 1 store i64 %t89, ptr %a9 - br label %each.cond10899 -each.end10902: + br label %each.cond11304 +each.end11307: %t90 = getelementptr inbounds { ptr, i64, i64 }, ptr %a8, i32 0, i32 1 %t91 = load i64, ptr %t90 %t92 = add i64 %t91, 1 call void @finch_arr_reserve(ptr %a8, i64 %t92, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t93 = load ptr, ptr %a8 %t94 = getelementptr inbounds { ptr, i64, i64 }, ptr %t93, i64 %t91 - store { ptr, i64, i64 } { ptr @.str.7039, i64 1, i64 0 }, ptr %t94 + store { ptr, i64, i64 } { ptr @.str.7247, i64 1, i64 0 }, ptr %t94 store i64 %t92, ptr %t90 %t95 = getelementptr inbounds { ptr, i64, i64 }, ptr %a8, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.7040, i64 0, i64 0 }, ptr %a96 + store { ptr, i64, i64 } { ptr @.str.7248, i64 0, i64 0 }, ptr %a96 call void @finch_str_join(ptr %a97, ptr %a8, ptr %a96) %t98 = load { ptr, i64, i64 }, ptr %a97 call void @finch.drop.arr_str(ptr %a8) @@ -109954,16 +113979,16 @@ entry: %a2 = alloca { ptr, i64, i64 }, align 16 %a10 = alloca { ptr, i64, i64 }, align 16 store i64 %p0, ptr %a1 - store { ptr, i64, i64 } { ptr @.str.7041, i64 16, i64 0 }, ptr %a2 + store { ptr, i64, i64 } { ptr @.str.7249, i64 16, i64 0 }, ptr %a2 %t3 = load i64, ptr %a1 %t4 = load { ptr, i64, i64 }, ptr %a2 %t5 = extractvalue { ptr, i64, i64 } %t4, 1 %t6 = icmp uge i64 %t3, %t5 - br i1 %t6, label %range10921, label %inrange10922 -range10921: - call void @finch_panic_index(ptr @.str.7042, i64 175, i64 %t3, i64 %t5) + br i1 %t6, label %range11326, label %inrange11327 +range11326: + call void @finch_panic_index(ptr @.str.7250, i64 175, i64 %t3, i64 %t5) unreachable -inrange10922: +inrange11327: %t7 = extractvalue { ptr, i64, i64 } %t4, 0 %t8 = getelementptr inbounds i8, ptr %t7, i64 %t3 %t9 = load i8, ptr %t8 @@ -109984,37 +114009,37 @@ entry: %t4 = fptosi double %t3 to i64 %t5 = sitofp i64 %t4 to double %t6 = fcmp oeq double %t2, %t5 - br label %logic.from10923 -logic.from10923: - br i1 %t6, label %logic.rhs10924, label %logic.end10925 -logic.rhs10924: + br label %logic.from11328 +logic.from11328: + br i1 %t6, label %logic.rhs11329, label %logic.end11330 +logic.rhs11329: %t7 = load double, ptr %a1 %t8 = fneg double 1000000000000000.0 %t9 = fcmp ogt double %t7, %t8 - br label %logic.rend10926 -logic.rend10926: - br label %logic.end10925 -logic.end10925: - %t10 = phi i1 [ false, %logic.from10923 ], [ %t9, %logic.rend10926 ] - br label %logic.from10927 -logic.from10927: - br i1 %t10, label %logic.rhs10928, label %logic.end10929 -logic.rhs10928: + br label %logic.rend11331 +logic.rend11331: + br label %logic.end11330 +logic.end11330: + %t10 = phi i1 [ false, %logic.from11328 ], [ %t9, %logic.rend11331 ] + br label %logic.from11332 +logic.from11332: + br i1 %t10, label %logic.rhs11333, label %logic.end11334 +logic.rhs11333: %t11 = load double, ptr %a1 %t12 = fcmp olt double %t11, 1000000000000000.0 - br label %logic.rend10930 -logic.rend10930: - br label %logic.end10929 -logic.end10929: - %t13 = phi i1 [ false, %logic.from10927 ], [ %t12, %logic.rend10930 ] - br i1 %t13, label %then10931, label %endif10933 -then10931: + br label %logic.rend11335 +logic.rend11335: + br label %logic.end11334 +logic.end11334: + %t13 = phi i1 [ false, %logic.from11332 ], [ %t12, %logic.rend11335 ] + br i1 %t13, label %then11336, label %endif11338 +then11336: %t14 = load double, ptr %a1 %t15 = fptosi double %t14 to i64 call void @finch_str_from_int(ptr %a16, i64 %t15) %t17 = load { ptr, i64, i64 }, ptr %a16 ret { ptr, i64, i64 } %t17 -endif10933: +endif11338: %t18 = load double, ptr %a1 call void @finch_str_from_float(ptr %a19, double %t18) %t20 = load { ptr, i64, i64 }, ptr %a19 @@ -110083,17 +114108,17 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 store { ptr, i64, i64 } %p2, ptr %a3 store ptr %p3, ptr %a4 - store { ptr, i64, i64 } { ptr @.str.7043, i64 0, i64 0 }, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.7044, i64 0, i64 0 }, ptr %a6 - store { ptr, i64, i64 } { ptr @.str.7045, i64 1, i64 0 }, ptr %a7 - store { ptr, i64, i64 } { ptr @.str.7046, i64 1, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.7251, i64 0, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.7252, i64 0, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.7253, i64 1, i64 0 }, ptr %a7 + store { ptr, i64, i64 } { ptr @.str.7254, i64 1, i64 0 }, ptr %a8 %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t10 = load i64, ptr %t9 %t11 = icmp sgt i64 %t10, 0 - br i1 %t11, label %then10934, label %endif10936 -then10934: + br i1 %t11, label %then11339, label %endif11341 +then11339: %t12 = load { ptr, i64, i64 }, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.7047, i64 1, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.7255, i64 1, i64 0 }, ptr %a5 store { ptr, i64, i64 } %t12, ptr %a13 call void @finch_str_drop(ptr %a13) %t14 = load { ptr, i64, i64 }, ptr %a3 @@ -110107,23 +114132,23 @@ then10934: store { ptr, i64, i64 } %t20, ptr %a21 call void @finch_str_drop(ptr %a21) %t22 = load { ptr, i64, i64 }, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.7048, i64 2, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.7256, i64 2, i64 0 }, ptr %a8 store { ptr, i64, i64 } %t22, ptr %a23 call void @finch_str_drop(ptr %a23) - br label %endif10936 -endif10936: + br label %endif11341 +endif11341: %t24 = getelementptr inbounds %S.json.Json, ptr %a1, i32 0, i32 0 %t25 = load i32, ptr %t24 %t26 = icmp eq i32 %t25, 0 - br i1 %t26, label %match.arm10938, label %match.next10939 -match.arm10938: + br i1 %t26, label %match.arm11343, label %match.next11344 +match.arm11343: %t27 = load ptr, ptr %a4 %t28 = icmp eq ptr %t27, null - br i1 %t28, label %panic10940, label %ok10941 -panic10940: - call void @finch_panic(ptr @.str.7049, i64 200, ptr @.str.7050) + br i1 %t28, label %panic11345, label %ok11346 +panic11345: + call void @finch_panic(ptr @.str.7257, i64 200, ptr @.str.7258) unreachable -ok10941: +ok11346: %t29 = getelementptr inbounds %S.json.Writer, ptr %t27, i32 0, i32 0 %t30 = getelementptr inbounds { ptr, i64, i64 }, ptr %t29, i32 0, i32 1 %t31 = load i64, ptr %t30 @@ -110131,24 +114156,24 @@ ok10941: call void @finch_arr_reserve(ptr %t29, i64 %t32, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t33 = load ptr, ptr %t29 %t34 = getelementptr inbounds { ptr, i64, i64 }, ptr %t33, i64 %t31 - store { ptr, i64, i64 } { ptr @.str.7051, i64 4, i64 0 }, ptr %t34 + store { ptr, i64, i64 } { ptr @.str.7259, i64 4, i64 0 }, ptr %t34 store i64 %t32, ptr %t30 - br label %match.end10937 -match.next10939: + br label %match.end11342 +match.next11344: %t35 = icmp eq i32 %t25, 1 - br i1 %t35, label %match.arm10942, label %match.next10943 -match.arm10942: + br i1 %t35, label %match.arm11347, label %match.next11348 +match.arm11347: %t36 = getelementptr inbounds %S.json.Json, ptr %a1, i32 0, i32 1 %t37 = load i1, ptr %t36 - br i1 %t37, label %then10944, label %else10945 -then10944: + br i1 %t37, label %then11349, label %else11350 +then11349: %t38 = load ptr, ptr %a4 %t39 = icmp eq ptr %t38, null - br i1 %t39, label %panic10947, label %ok10948 -panic10947: - call void @finch_panic(ptr @.str.7052, i64 203, ptr @.str.7053) + br i1 %t39, label %panic11352, label %ok11353 +panic11352: + call void @finch_panic(ptr @.str.7260, i64 203, ptr @.str.7261) unreachable -ok10948: +ok11353: %t40 = getelementptr inbounds %S.json.Writer, ptr %t38, i32 0, i32 0 %t41 = getelementptr inbounds { ptr, i64, i64 }, ptr %t40, i32 0, i32 1 %t42 = load i64, ptr %t41 @@ -110156,17 +114181,17 @@ ok10948: call void @finch_arr_reserve(ptr %t40, i64 %t43, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t44 = load ptr, ptr %t40 %t45 = getelementptr inbounds { ptr, i64, i64 }, ptr %t44, i64 %t42 - store { ptr, i64, i64 } { ptr @.str.7054, i64 4, i64 0 }, ptr %t45 + store { ptr, i64, i64 } { ptr @.str.7262, i64 4, i64 0 }, ptr %t45 store i64 %t43, ptr %t41 - br label %endif10946 -else10945: + br label %endif11351 +else11350: %t46 = load ptr, ptr %a4 %t47 = icmp eq ptr %t46, null - br i1 %t47, label %panic10949, label %ok10950 -panic10949: - call void @finch_panic(ptr @.str.7055, i64 205, ptr @.str.7056) + br i1 %t47, label %panic11354, label %ok11355 +panic11354: + call void @finch_panic(ptr @.str.7263, i64 205, ptr @.str.7264) unreachable -ok10950: +ok11355: %t48 = getelementptr inbounds %S.json.Writer, ptr %t46, i32 0, i32 0 %t49 = getelementptr inbounds { ptr, i64, i64 }, ptr %t48, i32 0, i32 1 %t50 = load i64, ptr %t49 @@ -110174,22 +114199,22 @@ ok10950: call void @finch_arr_reserve(ptr %t48, i64 %t51, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t52 = load ptr, ptr %t48 %t53 = getelementptr inbounds { ptr, i64, i64 }, ptr %t52, i64 %t50 - store { ptr, i64, i64 } { ptr @.str.7057, i64 5, i64 0 }, ptr %t53 + store { ptr, i64, i64 } { ptr @.str.7265, i64 5, i64 0 }, ptr %t53 store i64 %t51, ptr %t49 - br label %endif10946 -endif10946: - br label %match.end10937 -match.next10943: + br label %endif11351 +endif11351: + br label %match.end11342 +match.next11348: %t54 = icmp eq i32 %t25, 2 - br i1 %t54, label %match.arm10951, label %match.next10952 -match.arm10951: + br i1 %t54, label %match.arm11356, label %match.next11357 +match.arm11356: %t55 = load ptr, ptr %a4 %t56 = icmp eq ptr %t55, null - br i1 %t56, label %panic10953, label %ok10954 -panic10953: - call void @finch_panic(ptr @.str.7058, i64 208, ptr @.str.7059) + br i1 %t56, label %panic11358, label %ok11359 +panic11358: + call void @finch_panic(ptr @.str.7266, i64 208, ptr @.str.7267) unreachable -ok10954: +ok11359: %t57 = getelementptr inbounds %S.json.Writer, ptr %t55, i32 0, i32 0 %t58 = getelementptr inbounds { ptr, i64, i64 }, ptr %t57, i32 0, i32 1 %t59 = getelementptr inbounds %S.json.Json, ptr %a1, i32 0, i32 2 @@ -110202,18 +114227,18 @@ ok10954: %t65 = getelementptr inbounds { ptr, i64, i64 }, ptr %t64, i64 %t62 store { ptr, i64, i64 } %t61, ptr %t65 store i64 %t63, ptr %t58 - br label %match.end10937 -match.next10952: + br label %match.end11342 +match.next11357: %t66 = icmp eq i32 %t25, 3 - br i1 %t66, label %match.arm10955, label %match.next10956 -match.arm10955: + br i1 %t66, label %match.arm11360, label %match.next11361 +match.arm11360: %t67 = load ptr, ptr %a4 %t68 = icmp eq ptr %t67, null - br i1 %t68, label %panic10957, label %ok10958 -panic10957: - call void @finch_panic(ptr @.str.7060, i64 209, ptr @.str.7061) + br i1 %t68, label %panic11362, label %ok11363 +panic11362: + call void @finch_panic(ptr @.str.7268, i64 209, ptr @.str.7269) unreachable -ok10958: +ok11363: %t69 = getelementptr inbounds %S.json.Writer, ptr %t67, i32 0, i32 0 %t70 = getelementptr inbounds { ptr, i64, i64 }, ptr %t69, i32 0, i32 1 %t71 = getelementptr inbounds %S.json.Json, ptr %a1, i32 0, i32 3 @@ -110226,24 +114251,24 @@ ok10958: %t77 = getelementptr inbounds { ptr, i64, i64 }, ptr %t76, i64 %t74 store { ptr, i64, i64 } %t73, ptr %t77 store i64 %t75, ptr %t70 - br label %match.end10937 -match.next10956: + br label %match.end11342 +match.next11361: %t78 = icmp eq i32 %t25, 4 - br i1 %t78, label %match.arm10959, label %match.next10960 -match.arm10959: + br i1 %t78, label %match.arm11364, label %match.next11365 +match.arm11364: %t79 = getelementptr inbounds %S.json.Json, ptr %a1, i32 0, i32 4 %t80 = getelementptr inbounds { ptr, i64, i64 }, ptr %t79, i32 0, i32 1 %t81 = load i64, ptr %t80 %t82 = icmp eq i64 %t81, 0 - br i1 %t82, label %then10961, label %endif10963 -then10961: + br i1 %t82, label %then11366, label %endif11368 +then11366: %t83 = load ptr, ptr %a4 %t84 = icmp eq ptr %t83, null - br i1 %t84, label %panic10964, label %ok10965 -panic10964: - call void @finch_panic(ptr @.str.7062, i64 212, ptr @.str.7063) + br i1 %t84, label %panic11369, label %ok11370 +panic11369: + call void @finch_panic(ptr @.str.7270, i64 212, ptr @.str.7271) unreachable -ok10965: +ok11370: %t85 = getelementptr inbounds %S.json.Writer, ptr %t83, i32 0, i32 0 %t86 = getelementptr inbounds { ptr, i64, i64 }, ptr %t85, i32 0, i32 1 %t87 = load i64, ptr %t86 @@ -110251,25 +114276,25 @@ ok10965: call void @finch_arr_reserve(ptr %t85, i64 %t88, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t89 = load ptr, ptr %t85 %t90 = getelementptr inbounds { ptr, i64, i64 }, ptr %t89, i64 %t87 - store { ptr, i64, i64 } { ptr @.str.7064, i64 2, i64 0 }, ptr %t90 + store { ptr, i64, i64 } { ptr @.str.7272, i64 2, i64 0 }, ptr %t90 store i64 %t88, ptr %t86 call void @finch_str_drop(ptr %a8) call void @finch_str_drop(ptr %a7) call void @finch_str_drop(ptr %a6) call void @finch_str_drop(ptr %a5) ret void -endif10963: +endif11368: %t91 = load ptr, ptr %a4 %t92 = icmp eq ptr %t91, null - br i1 %t92, label %panic10966, label %ok10967 -panic10966: - call void @finch_panic(ptr @.str.7065, i64 215, ptr @.str.7066) + br i1 %t92, label %panic11371, label %ok11372 +panic11371: + call void @finch_panic(ptr @.str.7273, i64 215, ptr @.str.7274) unreachable -ok10967: +ok11372: %t93 = getelementptr inbounds %S.json.Writer, ptr %t91, i32 0, i32 0 %t94 = getelementptr inbounds { ptr, i64, i64 }, ptr %t93, i32 0, i32 1 %t95 = load { ptr, i64, i64 }, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.7067, i64 1, i64 0 }, ptr %a97 + store { ptr, i64, i64 } { ptr @.str.7275, i64 1, i64 0 }, ptr %a97 store { ptr, i64, i64 } %t95, ptr %a98 call void @finch_str_concat(ptr %a96, ptr %a97, ptr %a98) %t99 = load { ptr, i64, i64 }, ptr %a96 @@ -110282,14 +114307,14 @@ ok10967: store i64 %t101, ptr %t94 %t104 = getelementptr inbounds %S.json.Json, ptr %a1, i32 0, i32 4 store i64 0, ptr %a105 - br label %each.cond10968 -each.cond10968: + br label %each.cond11373 +each.cond11373: %t106 = getelementptr inbounds { ptr, i64, i64 }, ptr %t104, i32 0, i32 1 %t107 = load i64, ptr %t106 %t108 = load i64, ptr %a105 %t109 = icmp slt i64 %t108, %t107 - br i1 %t109, label %each.body10969, label %each.end10971 -each.body10969: + br i1 %t109, label %each.body11374, label %each.end11376 +each.body11374: %t110 = load ptr, ptr %t104 %t111 = getelementptr inbounds %S.json.Json, ptr %t110, i64 %t108 %t112 = load %S.json.Json, ptr %t111 @@ -110297,15 +114322,15 @@ each.body10969: store %S.json.Json %t112, ptr %a114 %t115 = load i64, ptr %a113 %t116 = icmp sgt i64 %t115, 0 - br i1 %t116, label %then10972, label %endif10974 -then10972: + br i1 %t116, label %then11377, label %endif11379 +then11377: %t117 = load ptr, ptr %a4 %t118 = icmp eq ptr %t117, null - br i1 %t118, label %panic10975, label %ok10976 -panic10975: - call void @finch_panic(ptr @.str.7068, i64 218, ptr @.str.7069) + br i1 %t118, label %panic11380, label %ok11381 +panic11380: + call void @finch_panic(ptr @.str.7276, i64 218, ptr @.str.7277) unreachable -ok10976: +ok11381: %t119 = getelementptr inbounds %S.json.Writer, ptr %t117, i32 0, i32 0 %t120 = getelementptr inbounds { ptr, i64, i64 }, ptr %t119, i32 0, i32 1 %t121 = load { ptr, i64, i64 }, ptr %a7 @@ -110321,15 +114346,15 @@ ok10976: %t130 = getelementptr inbounds { ptr, i64, i64 }, ptr %t129, i64 %t127 store { ptr, i64, i64 } %t126, ptr %t130 store i64 %t128, ptr %t120 - br label %endif10974 -endif10974: + br label %endif11379 +endif11379: %t131 = load ptr, ptr %a4 %t132 = icmp eq ptr %t131, null - br i1 %t132, label %panic10977, label %ok10978 -panic10977: - call void @finch_panic(ptr @.str.7070, i64 220, ptr @.str.7071) + br i1 %t132, label %panic11382, label %ok11383 +panic11382: + call void @finch_panic(ptr @.str.7278, i64 220, ptr @.str.7279) unreachable -ok10978: +ok11383: %t133 = getelementptr inbounds %S.json.Writer, ptr %t131, i32 0, i32 0 %t134 = getelementptr inbounds { ptr, i64, i64 }, ptr %t133, i32 0, i32 1 %t135 = load { ptr, i64, i64 }, ptr %a6 @@ -110348,20 +114373,20 @@ ok10978: %t145 = load { ptr, i64, i64 }, ptr %a6 %t146 = load ptr, ptr %a4 call void @finch.json.write(%S.json.Json %t143, { ptr, i64, i64 } %t144, { ptr, i64, i64 } %t145, ptr %t146) - br label %each.step10970 -each.step10970: + br label %each.step11375 +each.step11375: %t147 = load i64, ptr %a105 %t148 = add i64 %t147, 1 store i64 %t148, ptr %a105 - br label %each.cond10968 -each.end10971: + br label %each.cond11373 +each.end11376: %t149 = load ptr, ptr %a4 %t150 = icmp eq ptr %t149, null - br i1 %t150, label %panic10979, label %ok10980 -panic10979: - call void @finch_panic(ptr @.str.7072, i64 223, ptr @.str.7073) + br i1 %t150, label %panic11384, label %ok11385 +panic11384: + call void @finch_panic(ptr @.str.7280, i64 223, ptr @.str.7281) unreachable -ok10980: +ok11385: %t151 = getelementptr inbounds %S.json.Writer, ptr %t149, i32 0, i32 0 %t152 = getelementptr inbounds { ptr, i64, i64 }, ptr %t151, i32 0, i32 1 %t153 = load { ptr, i64, i64 }, ptr %a5 @@ -110371,7 +114396,7 @@ ok10980: call void @finch_str_concat(ptr %a155, ptr %a156, ptr %a157) %t158 = load { ptr, i64, i64 }, ptr %a155 store { ptr, i64, i64 } %t158, ptr %a160 - store { ptr, i64, i64 } { ptr @.str.7074, i64 1, i64 0 }, ptr %a161 + store { ptr, i64, i64 } { ptr @.str.7282, i64 1, i64 0 }, ptr %a161 call void @finch_str_concat(ptr %a159, ptr %a160, ptr %a161) store { ptr, i64, i64 } %t158, ptr %a162 call void @finch_str_drop(ptr %a162) @@ -110383,24 +114408,24 @@ ok10980: %t167 = getelementptr inbounds { ptr, i64, i64 }, ptr %t166, i64 %t164 store { ptr, i64, i64 } %t163, ptr %t167 store i64 %t165, ptr %t152 - br label %match.end10937 -match.next10960: + br label %match.end11342 +match.next11365: %t168 = icmp eq i32 %t25, 5 - br i1 %t168, label %match.arm10981, label %match.next10982 -match.arm10981: + br i1 %t168, label %match.arm11386, label %match.next11387 +match.arm11386: %t169 = getelementptr inbounds %S.json.Json, ptr %a1, i32 0, i32 4 %t170 = getelementptr inbounds { ptr, i64, i64 }, ptr %t169, i32 0, i32 1 %t171 = load i64, ptr %t170 %t172 = icmp eq i64 %t171, 0 - br i1 %t172, label %then10983, label %endif10985 -then10983: + br i1 %t172, label %then11388, label %endif11390 +then11388: %t173 = load ptr, ptr %a4 %t174 = icmp eq ptr %t173, null - br i1 %t174, label %panic10986, label %ok10987 -panic10986: - call void @finch_panic(ptr @.str.7075, i64 227, ptr @.str.7076) + br i1 %t174, label %panic11391, label %ok11392 +panic11391: + call void @finch_panic(ptr @.str.7283, i64 227, ptr @.str.7284) unreachable -ok10987: +ok11392: %t175 = getelementptr inbounds %S.json.Writer, ptr %t173, i32 0, i32 0 %t176 = getelementptr inbounds { ptr, i64, i64 }, ptr %t175, i32 0, i32 1 %t177 = load i64, ptr %t176 @@ -110408,25 +114433,25 @@ ok10987: call void @finch_arr_reserve(ptr %t175, i64 %t178, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t179 = load ptr, ptr %t175 %t180 = getelementptr inbounds { ptr, i64, i64 }, ptr %t179, i64 %t177 - store { ptr, i64, i64 } { ptr @.str.7077, i64 2, i64 0 }, ptr %t180 + store { ptr, i64, i64 } { ptr @.str.7285, i64 2, i64 0 }, ptr %t180 store i64 %t178, ptr %t176 call void @finch_str_drop(ptr %a8) call void @finch_str_drop(ptr %a7) call void @finch_str_drop(ptr %a6) call void @finch_str_drop(ptr %a5) ret void -endif10985: +endif11390: %t181 = load ptr, ptr %a4 %t182 = icmp eq ptr %t181, null - br i1 %t182, label %panic10988, label %ok10989 -panic10988: - call void @finch_panic(ptr @.str.7078, i64 230, ptr @.str.7079) + br i1 %t182, label %panic11393, label %ok11394 +panic11393: + call void @finch_panic(ptr @.str.7286, i64 230, ptr @.str.7287) unreachable -ok10989: +ok11394: %t183 = getelementptr inbounds %S.json.Writer, ptr %t181, i32 0, i32 0 %t184 = getelementptr inbounds { ptr, i64, i64 }, ptr %t183, i32 0, i32 1 %t185 = load { ptr, i64, i64 }, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.7080, i64 1, i64 0 }, ptr %a187 + store { ptr, i64, i64 } { ptr @.str.7288, i64 1, i64 0 }, ptr %a187 store { ptr, i64, i64 } %t185, ptr %a188 call void @finch_str_concat(ptr %a186, ptr %a187, ptr %a188) %t189 = load { ptr, i64, i64 }, ptr %a186 @@ -110439,14 +114464,14 @@ ok10989: store i64 %t191, ptr %t184 %t194 = getelementptr inbounds %S.json.Json, ptr %a1, i32 0, i32 4 store i64 0, ptr %a195 - br label %each.cond10990 -each.cond10990: + br label %each.cond11395 +each.cond11395: %t196 = getelementptr inbounds { ptr, i64, i64 }, ptr %t194, i32 0, i32 1 %t197 = load i64, ptr %t196 %t198 = load i64, ptr %a195 %t199 = icmp slt i64 %t198, %t197 - br i1 %t199, label %each.body10991, label %each.end10993 -each.body10991: + br i1 %t199, label %each.body11396, label %each.end11398 +each.body11396: %t200 = load ptr, ptr %t194 %t201 = getelementptr inbounds %S.json.Json, ptr %t200, i64 %t198 %t202 = load %S.json.Json, ptr %t201 @@ -110454,15 +114479,15 @@ each.body10991: store %S.json.Json %t202, ptr %a204 %t205 = load i64, ptr %a203 %t206 = icmp sgt i64 %t205, 0 - br i1 %t206, label %then10994, label %endif10996 -then10994: + br i1 %t206, label %then11399, label %endif11401 +then11399: %t207 = load ptr, ptr %a4 %t208 = icmp eq ptr %t207, null - br i1 %t208, label %panic10997, label %ok10998 -panic10997: - call void @finch_panic(ptr @.str.7081, i64 233, ptr @.str.7082) + br i1 %t208, label %panic11402, label %ok11403 +panic11402: + call void @finch_panic(ptr @.str.7289, i64 233, ptr @.str.7290) unreachable -ok10998: +ok11403: %t209 = getelementptr inbounds %S.json.Writer, ptr %t207, i32 0, i32 0 %t210 = getelementptr inbounds { ptr, i64, i64 }, ptr %t209, i32 0, i32 1 %t211 = load { ptr, i64, i64 }, ptr %a7 @@ -110478,15 +114503,15 @@ ok10998: %t220 = getelementptr inbounds { ptr, i64, i64 }, ptr %t219, i64 %t217 store { ptr, i64, i64 } %t216, ptr %t220 store i64 %t218, ptr %t210 - br label %endif10996 -endif10996: + br label %endif11401 +endif11401: %t221 = load ptr, ptr %a4 %t222 = icmp eq ptr %t221, null - br i1 %t222, label %panic10999, label %ok11000 -panic10999: - call void @finch_panic(ptr @.str.7083, i64 235, ptr @.str.7084) + br i1 %t222, label %panic11404, label %ok11405 +panic11404: + call void @finch_panic(ptr @.str.7291, i64 235, ptr @.str.7292) unreachable -ok11000: +ok11405: %t223 = getelementptr inbounds %S.json.Writer, ptr %t221, i32 0, i32 0 %t224 = getelementptr inbounds { ptr, i64, i64 }, ptr %t223, i32 0, i32 1 %t225 = load { ptr, i64, i64 }, ptr %a6 @@ -110495,11 +114520,11 @@ ok11000: %t228 = load { ptr, i64, i64 }, ptr %t226 %t229 = extractvalue { ptr, i64, i64 } %t228, 1 %t230 = icmp uge i64 %t227, %t229 - br i1 %t230, label %range11001, label %inrange11002 -range11001: - call void @finch_panic_index(ptr @.str.7085, i64 235, i64 %t227, i64 %t229) + br i1 %t230, label %range11406, label %inrange11407 +range11406: + call void @finch_panic_index(ptr @.str.7293, i64 235, i64 %t227, i64 %t229) unreachable -inrange11002: +inrange11407: %t231 = extractvalue { ptr, i64, i64 } %t228, 0 %t232 = getelementptr inbounds { ptr, i64, i64 }, ptr %t231, i64 %t227 %t233 = load { ptr, i64, i64 }, ptr %t232 @@ -110529,20 +114554,20 @@ inrange11002: %t252 = load { ptr, i64, i64 }, ptr %a6 %t253 = load ptr, ptr %a4 call void @finch.json.write(%S.json.Json %t250, { ptr, i64, i64 } %t251, { ptr, i64, i64 } %t252, ptr %t253) - br label %each.step10992 -each.step10992: + br label %each.step11397 +each.step11397: %t254 = load i64, ptr %a195 %t255 = add i64 %t254, 1 store i64 %t255, ptr %a195 - br label %each.cond10990 -each.end10993: + br label %each.cond11395 +each.end11398: %t256 = load ptr, ptr %a4 %t257 = icmp eq ptr %t256, null - br i1 %t257, label %panic11003, label %ok11004 -panic11003: - call void @finch_panic(ptr @.str.7086, i64 238, ptr @.str.7087) + br i1 %t257, label %panic11408, label %ok11409 +panic11408: + call void @finch_panic(ptr @.str.7294, i64 238, ptr @.str.7295) unreachable -ok11004: +ok11409: %t258 = getelementptr inbounds %S.json.Writer, ptr %t256, i32 0, i32 0 %t259 = getelementptr inbounds { ptr, i64, i64 }, ptr %t258, i32 0, i32 1 %t260 = load { ptr, i64, i64 }, ptr %a5 @@ -110552,7 +114577,7 @@ ok11004: call void @finch_str_concat(ptr %a262, ptr %a263, ptr %a264) %t265 = load { ptr, i64, i64 }, ptr %a262 store { ptr, i64, i64 } %t265, ptr %a267 - store { ptr, i64, i64 } { ptr @.str.7088, i64 1, i64 0 }, ptr %a268 + store { ptr, i64, i64 } { ptr @.str.7296, i64 1, i64 0 }, ptr %a268 call void @finch_str_concat(ptr %a266, ptr %a267, ptr %a268) store { ptr, i64, i64 } %t265, ptr %a269 call void @finch_str_drop(ptr %a269) @@ -110564,15 +114589,15 @@ ok11004: %t274 = getelementptr inbounds { ptr, i64, i64 }, ptr %t273, i64 %t271 store { ptr, i64, i64 } %t270, ptr %t274 store i64 %t272, ptr %t259 - br label %match.end10937 -match.next10982: - br i1 true, label %panic11005, label %ok11006 -panic11005: - call void @finch_panic(ptr @.str.7089, i64 199, ptr @.str.7090) + br label %match.end11342 +match.next11387: + br i1 true, label %panic11410, label %ok11411 +panic11410: + call void @finch_panic(ptr @.str.7297, i64 199, ptr @.str.7298) unreachable -ok11006: +ok11411: unreachable -match.end10937: +match.end11342: call void @finch_str_drop(ptr %a8) call void @finch_str_drop(ptr %a7) call void @finch_str_drop(ptr %a6) @@ -110597,10 +114622,10 @@ entry: store %S.json.Json %p0, ptr %a1 store %S.json.Writer zeroinitializer, ptr %a2 %t3 = load %S.json.Json, ptr %a1 - call void @finch.json.write(%S.json.Json %t3, { ptr, i64, i64 } { ptr @.str.7091, i64 0, i64 0 }, { ptr, i64, i64 } { ptr @.str.7092, i64 0, i64 0 }, ptr %a2) + call void @finch.json.write(%S.json.Json %t3, { ptr, i64, i64 } { ptr @.str.7299, i64 0, i64 0 }, { ptr, i64, i64 } { ptr @.str.7300, i64 0, i64 0 }, ptr %a2) %t4 = getelementptr inbounds %S.json.Writer, ptr %a2, i32 0, i32 0 %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %t4, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.7093, i64 0, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.7301, i64 0, i64 0 }, ptr %a6 call void @finch_str_join(ptr %a7, ptr %t4, ptr %a6) %t8 = load { ptr, i64, i64 }, ptr %a7 call void @finch.drop.S_json_Writer(ptr %a2) @@ -110616,10 +114641,10 @@ entry: store %S.json.Json %p0, ptr %a1 store %S.json.Writer zeroinitializer, ptr %a2 %t3 = load %S.json.Json, ptr %a1 - call void @finch.json.write(%S.json.Json %t3, { ptr, i64, i64 } { ptr @.str.7094, i64 2, i64 0 }, { ptr, i64, i64 } { ptr @.str.7095, i64 0, i64 0 }, ptr %a2) + call void @finch.json.write(%S.json.Json %t3, { ptr, i64, i64 } { ptr @.str.7302, i64 2, i64 0 }, { ptr, i64, i64 } { ptr @.str.7303, i64 0, i64 0 }, ptr %a2) %t4 = getelementptr inbounds %S.json.Writer, ptr %a2, i32 0, i32 0 %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %t4, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.7096, i64 0, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.7304, i64 0, i64 0 }, ptr %a6 call void @finch_str_join(ptr %a7, ptr %t4, ptr %a6) %t8 = load { ptr, i64, i64 }, ptr %a7 call void @finch.drop.S_json_Writer(ptr %a2) @@ -110652,93 +114677,93 @@ entry: store i64 1, ptr %a3 %t4 = load ptr, ptr %a1 %t5 = icmp eq ptr %t4, null - br i1 %t5, label %panic11007, label %ok11008 -panic11007: - call void @finch_panic(ptr @.str.7097, i64 268, ptr @.str.7098) + br i1 %t5, label %panic11412, label %ok11413 +panic11412: + call void @finch_panic(ptr @.str.7305, i64 268, ptr @.str.7306) unreachable -ok11008: +ok11413: %t6 = getelementptr inbounds %S.json.Reader, ptr %t4, i32 0, i32 1 %t7 = load i64, ptr %t6 store i64 0, ptr %a8 - br label %for.cond11009 -for.cond11009: + br label %for.cond11414 +for.cond11414: %t9 = load i64, ptr %a8 %t10 = icmp slt i64 %t9, %t7 - br i1 %t10, label %for.body11010, label %for.end11012 -for.body11010: + br i1 %t10, label %for.body11415, label %for.end11417 +for.body11415: %t11 = load i64, ptr %a8 %t12 = load ptr, ptr %a1 %t13 = icmp eq ptr %t12, null - br i1 %t13, label %panic11013, label %ok11014 -panic11013: - call void @finch_panic(ptr @.str.7099, i64 269, ptr @.str.7100) + br i1 %t13, label %panic11418, label %ok11419 +panic11418: + call void @finch_panic(ptr @.str.7307, i64 269, ptr @.str.7308) unreachable -ok11014: +ok11419: %t14 = getelementptr inbounds %S.json.Reader, ptr %t12, i32 0, i32 0 %t15 = getelementptr inbounds { ptr, i64, i64 }, ptr %t14, i32 0, i32 1 %t16 = load i64, ptr %t15 %t17 = icmp slt i64 %t11, %t16 - br label %logic.from11015 -logic.from11015: - br i1 %t17, label %logic.rhs11016, label %logic.end11017 -logic.rhs11016: + br label %logic.from11420 +logic.from11420: + br i1 %t17, label %logic.rhs11421, label %logic.end11422 +logic.rhs11421: %t18 = load ptr, ptr %a1 %t19 = icmp eq ptr %t18, null - br i1 %t19, label %panic11018, label %ok11019 -panic11018: - call void @finch_panic(ptr @.str.7101, i64 269, ptr @.str.7102) + br i1 %t19, label %panic11423, label %ok11424 +panic11423: + call void @finch_panic(ptr @.str.7309, i64 269, ptr @.str.7310) unreachable -ok11019: +ok11424: %t20 = getelementptr inbounds %S.json.Reader, ptr %t18, i32 0, i32 0 %t21 = load i64, ptr %a8 %t22 = load { ptr, i64, i64 }, ptr %t20 %t23 = extractvalue { ptr, i64, i64 } %t22, 1 %t24 = icmp uge i64 %t21, %t23 - br i1 %t24, label %range11020, label %inrange11021 -range11020: - call void @finch_panic_index(ptr @.str.7103, i64 269, i64 %t21, i64 %t23) + br i1 %t24, label %range11425, label %inrange11426 +range11425: + call void @finch_panic_index(ptr @.str.7311, i64 269, i64 %t21, i64 %t23) unreachable -inrange11021: +inrange11426: %t25 = extractvalue { ptr, i64, i64 } %t22, 0 %t26 = getelementptr inbounds i8, ptr %t25, i64 %t21 %t27 = load i8, ptr %t26 %t28 = icmp eq i8 %t27, 10 - br label %logic.rend11022 -logic.rend11022: - br label %logic.end11017 -logic.end11017: - %t29 = phi i1 [ false, %logic.from11015 ], [ %t28, %logic.rend11022 ] - br i1 %t29, label %then11023, label %else11024 -then11023: + br label %logic.rend11427 +logic.rend11427: + br label %logic.end11422 +logic.end11422: + %t29 = phi i1 [ false, %logic.from11420 ], [ %t28, %logic.rend11427 ] + br i1 %t29, label %then11428, label %else11429 +then11428: %t30 = load i64, ptr %a2 %t31 = add i64 %t30, 1 store i64 %t31, ptr %a2 store i64 1, ptr %a3 - br label %endif11025 -else11024: + br label %endif11430 +else11429: %t32 = load i64, ptr %a3 %t33 = add i64 %t32, 1 store i64 %t33, ptr %a3 - br label %endif11025 -endif11025: - br label %for.step11011 -for.step11011: + br label %endif11430 +endif11430: + br label %for.step11416 +for.step11416: %t34 = load i64, ptr %a8 %t35 = add i64 %t34, 1 store i64 %t35, ptr %a8 - br label %for.cond11009 -for.end11012: + br label %for.cond11414 +for.end11417: %t36 = load i64, ptr %a2 call void @finch_str_from_int(ptr %a37, i64 %t36) %t38 = load { ptr, i64, i64 }, ptr %a37 - store { ptr, i64, i64 } { ptr @.str.7104, i64 5, i64 0 }, ptr %a40 + store { ptr, i64, i64 } { ptr @.str.7312, i64 5, i64 0 }, ptr %a40 store { ptr, i64, i64 } %t38, ptr %a41 call void @finch_str_concat(ptr %a39, ptr %a40, ptr %a41) store { ptr, i64, i64 } %t38, ptr %a42 call void @finch_str_drop(ptr %a42) %t43 = load { ptr, i64, i64 }, ptr %a39 store { ptr, i64, i64 } %t43, ptr %a45 - store { ptr, i64, i64 } { ptr @.str.7105, i64 9, i64 0 }, ptr %a46 + store { ptr, i64, i64 } { ptr @.str.7313, i64 9, i64 0 }, ptr %a46 call void @finch_str_concat(ptr %a44, ptr %a45, ptr %a46) store { ptr, i64, i64 } %t43, ptr %a47 call void @finch_str_drop(ptr %a47) @@ -110763,56 +114788,56 @@ entry: store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 %t3 = icmp eq ptr %t2, null - br i1 %t3, label %panic11026, label %ok11027 -panic11026: - call void @finch_panic(ptr @.str.7106, i64 280, ptr @.str.7107) + br i1 %t3, label %panic11431, label %ok11432 +panic11431: + call void @finch_panic(ptr @.str.7314, i64 280, ptr @.str.7315) unreachable -ok11027: +ok11432: %t4 = getelementptr inbounds %S.json.Reader, ptr %t2, i32 0, i32 1 %t5 = load i64, ptr %t4 %t6 = load ptr, ptr %a1 %t7 = icmp eq ptr %t6, null - br i1 %t7, label %panic11028, label %ok11029 -panic11028: - call void @finch_panic(ptr @.str.7108, i64 280, ptr @.str.7109) + br i1 %t7, label %panic11433, label %ok11434 +panic11433: + call void @finch_panic(ptr @.str.7316, i64 280, ptr @.str.7317) unreachable -ok11029: +ok11434: %t8 = getelementptr inbounds %S.json.Reader, ptr %t6, i32 0, i32 0 %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %t8, i32 0, i32 1 %t10 = load i64, ptr %t9 %t11 = icmp slt i64 %t5, %t10 - br i1 %t11, label %then11030, label %endif11032 -then11030: + br i1 %t11, label %then11435, label %endif11437 +then11435: %t12 = load ptr, ptr %a1 %t13 = icmp eq ptr %t12, null - br i1 %t13, label %panic11033, label %ok11034 -panic11033: - call void @finch_panic(ptr @.str.7110, i64 281, ptr @.str.7111) + br i1 %t13, label %panic11438, label %ok11439 +panic11438: + call void @finch_panic(ptr @.str.7318, i64 281, ptr @.str.7319) unreachable -ok11034: +ok11439: %t14 = getelementptr inbounds %S.json.Reader, ptr %t12, i32 0, i32 0 %t15 = load ptr, ptr %a1 %t16 = icmp eq ptr %t15, null - br i1 %t16, label %panic11035, label %ok11036 -panic11035: - call void @finch_panic(ptr @.str.7112, i64 281, ptr @.str.7113) + br i1 %t16, label %panic11440, label %ok11441 +panic11440: + call void @finch_panic(ptr @.str.7320, i64 281, ptr @.str.7321) unreachable -ok11036: +ok11441: %t17 = getelementptr inbounds %S.json.Reader, ptr %t15, i32 0, i32 1 %t18 = load i64, ptr %t17 %t19 = load { ptr, i64, i64 }, ptr %t14 %t20 = extractvalue { ptr, i64, i64 } %t19, 1 %t21 = icmp uge i64 %t18, %t20 - br i1 %t21, label %range11037, label %inrange11038 -range11037: - call void @finch_panic_index(ptr @.str.7114, i64 281, i64 %t18, i64 %t20) + br i1 %t21, label %range11442, label %inrange11443 +range11442: + call void @finch_panic_index(ptr @.str.7322, i64 281, i64 %t18, i64 %t20) unreachable -inrange11038: +inrange11443: %t22 = extractvalue { ptr, i64, i64 } %t19, 0 %t23 = getelementptr inbounds i8, ptr %t22, i64 %t18 %t24 = load i8, ptr %t23 ret i8 %t24 -endif11032: +endif11437: %t25 = trunc i64 0 to i8 ret i8 %t25 } @@ -110821,195 +114846,195 @@ define internal void @finch.json.skip_space(ptr %p0) { entry: %a1 = alloca ptr, align 16 store ptr %p0, ptr %a1 - br label %while.cond11039 -while.cond11039: + br label %while.cond11444 +while.cond11444: %t2 = load ptr, ptr %a1 %t3 = icmp eq ptr %t2, null - br i1 %t3, label %panic11042, label %ok11043 -panic11042: - call void @finch_panic(ptr @.str.7115, i64 287, ptr @.str.7116) + br i1 %t3, label %panic11447, label %ok11448 +panic11447: + call void @finch_panic(ptr @.str.7323, i64 287, ptr @.str.7324) unreachable -ok11043: +ok11448: %t4 = getelementptr inbounds %S.json.Reader, ptr %t2, i32 0, i32 1 %t5 = load i64, ptr %t4 %t6 = load ptr, ptr %a1 %t7 = icmp eq ptr %t6, null - br i1 %t7, label %panic11044, label %ok11045 -panic11044: - call void @finch_panic(ptr @.str.7117, i64 287, ptr @.str.7118) + br i1 %t7, label %panic11449, label %ok11450 +panic11449: + call void @finch_panic(ptr @.str.7325, i64 287, ptr @.str.7326) unreachable -ok11045: +ok11450: %t8 = getelementptr inbounds %S.json.Reader, ptr %t6, i32 0, i32 0 %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %t8, i32 0, i32 1 %t10 = load i64, ptr %t9 %t11 = icmp slt i64 %t5, %t10 - br label %logic.from11046 -logic.from11046: - br i1 %t11, label %logic.rhs11047, label %logic.end11048 -logic.rhs11047: + br label %logic.from11451 +logic.from11451: + br i1 %t11, label %logic.rhs11452, label %logic.end11453 +logic.rhs11452: %t12 = load ptr, ptr %a1 %t13 = icmp eq ptr %t12, null - br i1 %t13, label %panic11049, label %ok11050 -panic11049: - call void @finch_panic(ptr @.str.7119, i64 287, ptr @.str.7120) + br i1 %t13, label %panic11454, label %ok11455 +panic11454: + call void @finch_panic(ptr @.str.7327, i64 287, ptr @.str.7328) unreachable -ok11050: +ok11455: %t14 = getelementptr inbounds %S.json.Reader, ptr %t12, i32 0, i32 0 %t15 = load ptr, ptr %a1 %t16 = icmp eq ptr %t15, null - br i1 %t16, label %panic11051, label %ok11052 -panic11051: - call void @finch_panic(ptr @.str.7121, i64 287, ptr @.str.7122) + br i1 %t16, label %panic11456, label %ok11457 +panic11456: + call void @finch_panic(ptr @.str.7329, i64 287, ptr @.str.7330) unreachable -ok11052: +ok11457: %t17 = getelementptr inbounds %S.json.Reader, ptr %t15, i32 0, i32 1 %t18 = load i64, ptr %t17 %t19 = load { ptr, i64, i64 }, ptr %t14 %t20 = extractvalue { ptr, i64, i64 } %t19, 1 %t21 = icmp uge i64 %t18, %t20 - br i1 %t21, label %range11053, label %inrange11054 -range11053: - call void @finch_panic_index(ptr @.str.7123, i64 287, i64 %t18, i64 %t20) + br i1 %t21, label %range11458, label %inrange11459 +range11458: + call void @finch_panic_index(ptr @.str.7331, i64 287, i64 %t18, i64 %t20) unreachable -inrange11054: +inrange11459: %t22 = extractvalue { ptr, i64, i64 } %t19, 0 %t23 = getelementptr inbounds i8, ptr %t22, i64 %t18 %t24 = load i8, ptr %t23 %t25 = icmp eq i8 %t24, 32 - br label %logic.from11055 -logic.from11055: - br i1 %t25, label %logic.end11057, label %logic.rhs11056 -logic.rhs11056: + br label %logic.from11460 +logic.from11460: + br i1 %t25, label %logic.end11462, label %logic.rhs11461 +logic.rhs11461: %t26 = load ptr, ptr %a1 %t27 = icmp eq ptr %t26, null - br i1 %t27, label %panic11058, label %ok11059 -panic11058: - call void @finch_panic(ptr @.str.7124, i64 287, ptr @.str.7125) + br i1 %t27, label %panic11463, label %ok11464 +panic11463: + call void @finch_panic(ptr @.str.7332, i64 287, ptr @.str.7333) unreachable -ok11059: +ok11464: %t28 = getelementptr inbounds %S.json.Reader, ptr %t26, i32 0, i32 0 %t29 = load ptr, ptr %a1 %t30 = icmp eq ptr %t29, null - br i1 %t30, label %panic11060, label %ok11061 -panic11060: - call void @finch_panic(ptr @.str.7126, i64 287, ptr @.str.7127) + br i1 %t30, label %panic11465, label %ok11466 +panic11465: + call void @finch_panic(ptr @.str.7334, i64 287, ptr @.str.7335) unreachable -ok11061: +ok11466: %t31 = getelementptr inbounds %S.json.Reader, ptr %t29, i32 0, i32 1 %t32 = load i64, ptr %t31 %t33 = load { ptr, i64, i64 }, ptr %t28 %t34 = extractvalue { ptr, i64, i64 } %t33, 1 %t35 = icmp uge i64 %t32, %t34 - br i1 %t35, label %range11062, label %inrange11063 -range11062: - call void @finch_panic_index(ptr @.str.7128, i64 287, i64 %t32, i64 %t34) + br i1 %t35, label %range11467, label %inrange11468 +range11467: + call void @finch_panic_index(ptr @.str.7336, i64 287, i64 %t32, i64 %t34) unreachable -inrange11063: +inrange11468: %t36 = extractvalue { ptr, i64, i64 } %t33, 0 %t37 = getelementptr inbounds i8, ptr %t36, i64 %t32 %t38 = load i8, ptr %t37 %t39 = icmp eq i8 %t38, 10 - br label %logic.rend11064 -logic.rend11064: - br label %logic.end11057 -logic.end11057: - %t40 = phi i1 [ true, %logic.from11055 ], [ %t39, %logic.rend11064 ] - br label %logic.from11065 -logic.from11065: - br i1 %t40, label %logic.end11067, label %logic.rhs11066 -logic.rhs11066: + br label %logic.rend11469 +logic.rend11469: + br label %logic.end11462 +logic.end11462: + %t40 = phi i1 [ true, %logic.from11460 ], [ %t39, %logic.rend11469 ] + br label %logic.from11470 +logic.from11470: + br i1 %t40, label %logic.end11472, label %logic.rhs11471 +logic.rhs11471: %t41 = load ptr, ptr %a1 %t42 = icmp eq ptr %t41, null - br i1 %t42, label %panic11068, label %ok11069 -panic11068: - call void @finch_panic(ptr @.str.7129, i64 287, ptr @.str.7130) + br i1 %t42, label %panic11473, label %ok11474 +panic11473: + call void @finch_panic(ptr @.str.7337, i64 287, ptr @.str.7338) unreachable -ok11069: +ok11474: %t43 = getelementptr inbounds %S.json.Reader, ptr %t41, i32 0, i32 0 %t44 = load ptr, ptr %a1 %t45 = icmp eq ptr %t44, null - br i1 %t45, label %panic11070, label %ok11071 -panic11070: - call void @finch_panic(ptr @.str.7131, i64 287, ptr @.str.7132) + br i1 %t45, label %panic11475, label %ok11476 +panic11475: + call void @finch_panic(ptr @.str.7339, i64 287, ptr @.str.7340) unreachable -ok11071: +ok11476: %t46 = getelementptr inbounds %S.json.Reader, ptr %t44, i32 0, i32 1 %t47 = load i64, ptr %t46 %t48 = load { ptr, i64, i64 }, ptr %t43 %t49 = extractvalue { ptr, i64, i64 } %t48, 1 %t50 = icmp uge i64 %t47, %t49 - br i1 %t50, label %range11072, label %inrange11073 -range11072: - call void @finch_panic_index(ptr @.str.7133, i64 287, i64 %t47, i64 %t49) + br i1 %t50, label %range11477, label %inrange11478 +range11477: + call void @finch_panic_index(ptr @.str.7341, i64 287, i64 %t47, i64 %t49) unreachable -inrange11073: +inrange11478: %t51 = extractvalue { ptr, i64, i64 } %t48, 0 %t52 = getelementptr inbounds i8, ptr %t51, i64 %t47 %t53 = load i8, ptr %t52 %t54 = icmp eq i8 %t53, 9 - br label %logic.rend11074 -logic.rend11074: - br label %logic.end11067 -logic.end11067: - %t55 = phi i1 [ true, %logic.from11065 ], [ %t54, %logic.rend11074 ] - br label %logic.from11075 -logic.from11075: - br i1 %t55, label %logic.end11077, label %logic.rhs11076 -logic.rhs11076: + br label %logic.rend11479 +logic.rend11479: + br label %logic.end11472 +logic.end11472: + %t55 = phi i1 [ true, %logic.from11470 ], [ %t54, %logic.rend11479 ] + br label %logic.from11480 +logic.from11480: + br i1 %t55, label %logic.end11482, label %logic.rhs11481 +logic.rhs11481: %t56 = load ptr, ptr %a1 %t57 = icmp eq ptr %t56, null - br i1 %t57, label %panic11078, label %ok11079 -panic11078: - call void @finch_panic(ptr @.str.7134, i64 287, ptr @.str.7135) + br i1 %t57, label %panic11483, label %ok11484 +panic11483: + call void @finch_panic(ptr @.str.7342, i64 287, ptr @.str.7343) unreachable -ok11079: +ok11484: %t58 = getelementptr inbounds %S.json.Reader, ptr %t56, i32 0, i32 0 %t59 = load ptr, ptr %a1 %t60 = icmp eq ptr %t59, null - br i1 %t60, label %panic11080, label %ok11081 -panic11080: - call void @finch_panic(ptr @.str.7136, i64 287, ptr @.str.7137) + br i1 %t60, label %panic11485, label %ok11486 +panic11485: + call void @finch_panic(ptr @.str.7344, i64 287, ptr @.str.7345) unreachable -ok11081: +ok11486: %t61 = getelementptr inbounds %S.json.Reader, ptr %t59, i32 0, i32 1 %t62 = load i64, ptr %t61 %t63 = load { ptr, i64, i64 }, ptr %t58 %t64 = extractvalue { ptr, i64, i64 } %t63, 1 %t65 = icmp uge i64 %t62, %t64 - br i1 %t65, label %range11082, label %inrange11083 -range11082: - call void @finch_panic_index(ptr @.str.7138, i64 287, i64 %t62, i64 %t64) + br i1 %t65, label %range11487, label %inrange11488 +range11487: + call void @finch_panic_index(ptr @.str.7346, i64 287, i64 %t62, i64 %t64) unreachable -inrange11083: +inrange11488: %t66 = extractvalue { ptr, i64, i64 } %t63, 0 %t67 = getelementptr inbounds i8, ptr %t66, i64 %t62 %t68 = load i8, ptr %t67 %t69 = icmp eq i8 %t68, 13 - br label %logic.rend11084 -logic.rend11084: - br label %logic.end11077 -logic.end11077: - %t70 = phi i1 [ true, %logic.from11075 ], [ %t69, %logic.rend11084 ] - br label %logic.rend11085 -logic.rend11085: - br label %logic.end11048 -logic.end11048: - %t71 = phi i1 [ false, %logic.from11046 ], [ %t70, %logic.rend11085 ] - br i1 %t71, label %while.body11040, label %while.end11041 -while.body11040: + br label %logic.rend11489 +logic.rend11489: + br label %logic.end11482 +logic.end11482: + %t70 = phi i1 [ true, %logic.from11480 ], [ %t69, %logic.rend11489 ] + br label %logic.rend11490 +logic.rend11490: + br label %logic.end11453 +logic.end11453: + %t71 = phi i1 [ false, %logic.from11451 ], [ %t70, %logic.rend11490 ] + br i1 %t71, label %while.body11445, label %while.end11446 +while.body11445: %t72 = load ptr, ptr %a1 %t73 = icmp eq ptr %t72, null - br i1 %t73, label %panic11086, label %ok11087 -panic11086: - call void @finch_panic(ptr @.str.7139, i64 288, ptr @.str.7140) + br i1 %t73, label %panic11491, label %ok11492 +panic11491: + call void @finch_panic(ptr @.str.7347, i64 288, ptr @.str.7348) unreachable -ok11087: +ok11492: %t74 = getelementptr inbounds %S.json.Reader, ptr %t72, i32 0, i32 1 %t75 = load i64, ptr %t74 %t76 = add i64 %t75, 1 store i64 %t76, ptr %t74 - br label %while.cond11039 -while.end11041: + br label %while.cond11444 +while.end11446: ret void } @@ -111063,33 +115088,33 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic11088, label %ok11089 -panic11088: - call void @finch_panic(ptr @.str.7141, i64 293, ptr @.str.7142) + br i1 %t4, label %panic11493, label %ok11494 +panic11493: + call void @finch_panic(ptr @.str.7349, i64 293, ptr @.str.7350) unreachable -ok11089: +ok11494: %t5 = getelementptr inbounds %S.json.Reader, ptr %t3, i32 0, i32 1 %t6 = load i64, ptr %t5 %t7 = load ptr, ptr %a1 %t8 = icmp eq ptr %t7, null - br i1 %t8, label %panic11090, label %ok11091 -panic11090: - call void @finch_panic(ptr @.str.7143, i64 293, ptr @.str.7144) + br i1 %t8, label %panic11495, label %ok11496 +panic11495: + call void @finch_panic(ptr @.str.7351, i64 293, ptr @.str.7352) unreachable -ok11091: +ok11496: %t9 = getelementptr inbounds %S.json.Reader, ptr %t7, i32 0, i32 0 %t10 = getelementptr inbounds { ptr, i64, i64 }, ptr %t9, i32 0, i32 1 %t11 = load i64, ptr %t10 %t12 = icmp sge i64 %t6, %t11 - br i1 %t12, label %then11092, label %endif11094 -then11092: + br i1 %t12, label %then11497, label %endif11499 +then11497: %t13 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.7145, i64 26, i64 0 }, ptr %a15 + store { ptr, i64, i64 } { ptr @.str.7353, i64 26, i64 0 }, ptr %a15 store { ptr, i64, i64 } %t13, ptr %a16 call void @finch_str_concat(ptr %a14, ptr %a15, ptr %a16) %t17 = load { ptr, i64, i64 }, ptr %a14 store { ptr, i64, i64 } %t17, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.7146, i64 12, i64 0 }, ptr %a20 + store { ptr, i64, i64 } { ptr @.str.7354, i64 12, i64 0 }, ptr %a20 call void @finch_str_concat(ptr %a18, ptr %a19, ptr %a20) store { ptr, i64, i64 } %t17, ptr %a21 call void @finch_str_drop(ptr %a21) @@ -111105,51 +115130,51 @@ then11092: call void @finch_str_drop(ptr %a29) %t30 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t30, ptr %a32 - store { ptr, i64, i64 } { ptr @.str.7147, i64 1, i64 0 }, ptr %a33 + store { ptr, i64, i64 } { ptr @.str.7355, i64 1, i64 0 }, ptr %a33 call void @finch_str_concat(ptr %a31, ptr %a32, ptr %a33) store { ptr, i64, i64 } %t30, ptr %a34 call void @finch_str_drop(ptr %a34) %t35 = load { ptr, i64, i64 }, ptr %a31 ret { ptr, i64, i64 } %t35 -endif11094: +endif11499: %t36 = load ptr, ptr %a1 %t37 = icmp eq ptr %t36, null - br i1 %t37, label %panic11095, label %ok11096 -panic11095: - call void @finch_panic(ptr @.str.7149, i64 296, ptr @.str.7150) + br i1 %t37, label %panic11500, label %ok11501 +panic11500: + call void @finch_panic(ptr @.str.7357, i64 296, ptr @.str.7358) unreachable -ok11096: +ok11501: %t38 = getelementptr inbounds %S.json.Reader, ptr %t36, i32 0, i32 0 %t39 = load ptr, ptr %a1 %t40 = icmp eq ptr %t39, null - br i1 %t40, label %panic11097, label %ok11098 -panic11097: - call void @finch_panic(ptr @.str.7151, i64 296, ptr @.str.7152) + br i1 %t40, label %panic11502, label %ok11503 +panic11502: + call void @finch_panic(ptr @.str.7359, i64 296, ptr @.str.7360) unreachable -ok11098: +ok11503: %t41 = getelementptr inbounds %S.json.Reader, ptr %t39, i32 0, i32 1 %t42 = load i64, ptr %t41 %t43 = load { ptr, i64, i64 }, ptr %t38 %t44 = extractvalue { ptr, i64, i64 } %t43, 1 %t45 = icmp uge i64 %t42, %t44 - br i1 %t45, label %range11099, label %inrange11100 -range11099: - call void @finch_panic_index(ptr @.str.7153, i64 296, i64 %t42, i64 %t44) + br i1 %t45, label %range11504, label %inrange11505 +range11504: + call void @finch_panic_index(ptr @.str.7361, i64 296, i64 %t42, i64 %t44) unreachable -inrange11100: +inrange11505: %t46 = extractvalue { ptr, i64, i64 } %t43, 0 %t47 = getelementptr inbounds i8, ptr %t46, i64 %t42 %t48 = load i8, ptr %t47 call void @finch_str_from_char(ptr %a49, i8 signext %t48) %t50 = load { ptr, i64, i64 }, ptr %a49 - store { ptr, i64, i64 } { ptr @.str.7148, i64 13, i64 0 }, ptr %a52 + store { ptr, i64, i64 } { ptr @.str.7356, i64 13, i64 0 }, ptr %a52 store { ptr, i64, i64 } %t50, ptr %a53 call void @finch_str_concat(ptr %a51, ptr %a52, ptr %a53) store { ptr, i64, i64 } %t50, ptr %a54 call void @finch_str_drop(ptr %a54) %t55 = load { ptr, i64, i64 }, ptr %a51 store { ptr, i64, i64 } %t55, ptr %a57 - store { ptr, i64, i64 } { ptr @.str.7154, i64 8, i64 0 }, ptr %a58 + store { ptr, i64, i64 } { ptr @.str.7362, i64 8, i64 0 }, ptr %a58 call void @finch_str_concat(ptr %a56, ptr %a57, ptr %a58) store { ptr, i64, i64 } %t55, ptr %a59 call void @finch_str_drop(ptr %a59) @@ -111162,7 +115187,7 @@ inrange11100: call void @finch_str_drop(ptr %a65) %t66 = load { ptr, i64, i64 }, ptr %a62 store { ptr, i64, i64 } %t66, ptr %a68 - store { ptr, i64, i64 } { ptr @.str.7155, i64 12, i64 0 }, ptr %a69 + store { ptr, i64, i64 } { ptr @.str.7363, i64 12, i64 0 }, ptr %a69 call void @finch_str_concat(ptr %a67, ptr %a68, ptr %a69) store { ptr, i64, i64 } %t66, ptr %a70 call void @finch_str_drop(ptr %a70) @@ -111178,7 +115203,7 @@ inrange11100: call void @finch_str_drop(ptr %a78) %t79 = load { ptr, i64, i64 }, ptr %a74 store { ptr, i64, i64 } %t79, ptr %a81 - store { ptr, i64, i64 } { ptr @.str.7156, i64 1, i64 0 }, ptr %a82 + store { ptr, i64, i64 } { ptr @.str.7364, i64 1, i64 0 }, ptr %a82 call void @finch_str_concat(ptr %a80, ptr %a81, ptr %a82) store { ptr, i64, i64 } %t79, ptr %a83 call void @finch_str_drop(ptr %a83) @@ -111199,63 +115224,63 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic11101, label %ok11102 -panic11101: - call void @finch_panic(ptr @.str.7157, i64 301, ptr @.str.7158) + br i1 %t4, label %panic11506, label %ok11507 +panic11506: + call void @finch_panic(ptr @.str.7365, i64 301, ptr @.str.7366) unreachable -ok11102: +ok11507: %t5 = getelementptr inbounds %S.json.Reader, ptr %t3, i32 0, i32 0 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t7 = load i64, ptr %t6 %t8 = load ptr, ptr %a1 %t9 = icmp eq ptr %t8, null - br i1 %t9, label %panic11103, label %ok11104 -panic11103: - call void @finch_panic(ptr @.str.7159, i64 301, ptr @.str.7160) + br i1 %t9, label %panic11508, label %ok11509 +panic11508: + call void @finch_panic(ptr @.str.7367, i64 301, ptr @.str.7368) unreachable -ok11104: +ok11509: %t10 = getelementptr inbounds %S.json.Reader, ptr %t8, i32 0, i32 1 %t11 = load i64, ptr %t10 %t12 = sub i64 %t7, %t11 %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t14 = load i64, ptr %t13 %t15 = icmp sge i64 %t12, %t14 - br label %logic.from11105 -logic.from11105: - br i1 %t15, label %logic.rhs11106, label %logic.end11107 -logic.rhs11106: + br label %logic.from11510 +logic.from11510: + br i1 %t15, label %logic.rhs11511, label %logic.end11512 +logic.rhs11511: %t16 = load ptr, ptr %a1 %t17 = icmp eq ptr %t16, null - br i1 %t17, label %panic11108, label %ok11109 -panic11108: - call void @finch_panic(ptr @.str.7161, i64 301, ptr @.str.7162) + br i1 %t17, label %panic11513, label %ok11514 +panic11513: + call void @finch_panic(ptr @.str.7369, i64 301, ptr @.str.7370) unreachable -ok11109: +ok11514: %t18 = getelementptr inbounds %S.json.Reader, ptr %t16, i32 0, i32 0 %t19 = load { ptr, i64, i64 }, ptr %t18 store { ptr, i64, i64 } %t19, ptr %a20 %t22 = load ptr, ptr %a1 %t23 = icmp eq ptr %t22, null - br i1 %t23, label %panic11110, label %ok11111 -panic11110: - call void @finch_panic(ptr @.str.7164, i64 301, ptr @.str.7165) + br i1 %t23, label %panic11515, label %ok11516 +panic11515: + call void @finch_panic(ptr @.str.7372, i64 301, ptr @.str.7373) unreachable -ok11111: +ok11516: %t24 = getelementptr inbounds %S.json.Reader, ptr %t22, i32 0, i32 1 %t25 = load i64, ptr %t24 %t26 = load ptr, ptr %a1 %t27 = icmp eq ptr %t26, null - br i1 %t27, label %panic11112, label %ok11113 -panic11112: - call void @finch_panic(ptr @.str.7166, i64 301, ptr @.str.7167) + br i1 %t27, label %panic11517, label %ok11518 +panic11517: + call void @finch_panic(ptr @.str.7374, i64 301, ptr @.str.7375) unreachable -ok11113: +ok11518: %t28 = getelementptr inbounds %S.json.Reader, ptr %t26, i32 0, i32 1 %t29 = load i64, ptr %t28 %t30 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t31 = load i64, ptr %t30 %t32 = add i64 %t29, %t31 - call void @finch_str_sub(ptr %a21, ptr %a20, i64 %t25, i64 %t32, ptr @.str.7163, i64 301) + call void @finch_str_sub(ptr %a21, ptr %a20, i64 %t25, i64 %t32, ptr @.str.7371, i64 301) %t33 = load { ptr, i64, i64 }, ptr %a21 %t34 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t33, ptr %a35 @@ -111264,11 +115289,11 @@ ok11113: %t38 = icmp ne i32 %t37, 0 store { ptr, i64, i64 } %t33, ptr %a39 call void @finch_str_drop(ptr %a39) - br label %logic.rend11114 -logic.rend11114: - br label %logic.end11107 -logic.end11107: - %t40 = phi i1 [ false, %logic.from11105 ], [ %t38, %logic.rend11114 ] + br label %logic.rend11519 +logic.rend11519: + br label %logic.end11512 +logic.end11512: + %t40 = phi i1 [ false, %logic.from11510 ], [ %t38, %logic.rend11519 ] ret i1 %t40 } @@ -111290,16 +115315,16 @@ entry: %t4 = load { ptr, i64, i64 }, ptr %a2 %t5 = call i1 @finch.json.comes(ptr %t3, { ptr, i64, i64 } %t4) %t6 = xor i1 %t5, true - br i1 %t6, label %then11115, label %endif11117 -then11115: + br i1 %t6, label %then11520, label %endif11522 +then11520: %t7 = load ptr, ptr %a1 %t8 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.7168, i64 1, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.7376, i64 1, i64 0 }, ptr %a10 store { ptr, i64, i64 } %t8, ptr %a11 call void @finch_str_concat(ptr %a9, ptr %a10, ptr %a11) %t12 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t12, ptr %a14 - store { ptr, i64, i64 } { ptr @.str.7169, i64 1, i64 0 }, ptr %a15 + store { ptr, i64, i64 } { ptr @.str.7377, i64 1, i64 0 }, ptr %a15 call void @finch_str_concat(ptr %a13, ptr %a14, ptr %a15) store { ptr, i64, i64 } %t12, ptr %a16 call void @finch_str_drop(ptr %a16) @@ -111309,16 +115334,16 @@ then11115: call void @finch_str_drop(ptr %a19) %t20 = insertvalue { i1, i8, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t18, 2 ret { i1, i8, { ptr, i64, i64 } } %t20 -endif11117: +endif11522: %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t22 = load i64, ptr %t21 %t23 = load ptr, ptr %a1 %t24 = icmp eq ptr %t23, null - br i1 %t24, label %panic11118, label %ok11119 -panic11118: - call void @finch_panic(ptr @.str.7170, i64 308, ptr @.str.7171) + br i1 %t24, label %panic11523, label %ok11524 +panic11523: + call void @finch_panic(ptr @.str.7378, i64 308, ptr @.str.7379) unreachable -ok11119: +ok11524: %t25 = getelementptr inbounds %S.json.Reader, ptr %t23, i32 0, i32 1 %t26 = load i64, ptr %t25 %t27 = add i64 %t26, %t22 @@ -111332,69 +115357,69 @@ entry: store i8 %p0, ptr %a1 %t2 = load i8, ptr %a1 %t3 = icmp uge i8 %t2, 48 - br label %logic.from11120 -logic.from11120: - br i1 %t3, label %logic.rhs11121, label %logic.end11122 -logic.rhs11121: + br label %logic.from11525 +logic.from11525: + br i1 %t3, label %logic.rhs11526, label %logic.end11527 +logic.rhs11526: %t4 = load i8, ptr %a1 %t5 = icmp ule i8 %t4, 57 - br label %logic.rend11123 -logic.rend11123: - br label %logic.end11122 -logic.end11122: - %t6 = phi i1 [ false, %logic.from11120 ], [ %t5, %logic.rend11123 ] - br i1 %t6, label %then11124, label %endif11126 -then11124: + br label %logic.rend11528 +logic.rend11528: + br label %logic.end11527 +logic.end11527: + %t6 = phi i1 [ false, %logic.from11525 ], [ %t5, %logic.rend11528 ] + br i1 %t6, label %then11529, label %endif11531 +then11529: %t7 = load i8, ptr %a1 %t8 = zext i8 %t7 to i64 %t9 = zext i8 48 to i64 %t10 = sub i64 %t8, %t9 ret i64 %t10 -endif11126: +endif11531: %t11 = load i8, ptr %a1 %t12 = icmp uge i8 %t11, 97 - br label %logic.from11127 -logic.from11127: - br i1 %t12, label %logic.rhs11128, label %logic.end11129 -logic.rhs11128: + br label %logic.from11532 +logic.from11532: + br i1 %t12, label %logic.rhs11533, label %logic.end11534 +logic.rhs11533: %t13 = load i8, ptr %a1 %t14 = icmp ule i8 %t13, 102 - br label %logic.rend11130 -logic.rend11130: - br label %logic.end11129 -logic.end11129: - %t15 = phi i1 [ false, %logic.from11127 ], [ %t14, %logic.rend11130 ] - br i1 %t15, label %then11131, label %endif11133 -then11131: + br label %logic.rend11535 +logic.rend11535: + br label %logic.end11534 +logic.end11534: + %t15 = phi i1 [ false, %logic.from11532 ], [ %t14, %logic.rend11535 ] + br i1 %t15, label %then11536, label %endif11538 +then11536: %t16 = load i8, ptr %a1 %t17 = zext i8 %t16 to i64 %t18 = zext i8 97 to i64 %t19 = sub i64 %t17, %t18 %t20 = add i64 %t19, 10 ret i64 %t20 -endif11133: +endif11538: %t21 = load i8, ptr %a1 %t22 = icmp uge i8 %t21, 65 - br label %logic.from11134 -logic.from11134: - br i1 %t22, label %logic.rhs11135, label %logic.end11136 -logic.rhs11135: + br label %logic.from11539 +logic.from11539: + br i1 %t22, label %logic.rhs11540, label %logic.end11541 +logic.rhs11540: %t23 = load i8, ptr %a1 %t24 = icmp ule i8 %t23, 70 - br label %logic.rend11137 -logic.rend11137: - br label %logic.end11136 -logic.end11136: - %t25 = phi i1 [ false, %logic.from11134 ], [ %t24, %logic.rend11137 ] - br i1 %t25, label %then11138, label %endif11140 -then11138: + br label %logic.rend11542 +logic.rend11542: + br label %logic.end11541 +logic.end11541: + %t25 = phi i1 [ false, %logic.from11539 ], [ %t24, %logic.rend11542 ] + br i1 %t25, label %then11543, label %endif11545 +then11543: %t26 = load i8, ptr %a1 %t27 = zext i8 %t26 to i64 %t28 = zext i8 65 to i64 %t29 = sub i64 %t27, %t28 %t30 = add i64 %t29, 10 ret i64 %t30 -endif11140: +endif11545: ret i64 -1 } @@ -111408,8 +115433,8 @@ entry: store { ptr, i64, i64 } zeroinitializer, ptr %a2 %t3 = load i64, ptr %a1 %t4 = icmp slt i64 %t3, 128 - br i1 %t4, label %then11141, label %else11142 -then11141: + br i1 %t4, label %then11546, label %else11547 +then11546: %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t6 = load i64, ptr %a1 %t7 = trunc i64 %t6 to i8 @@ -111420,12 +115445,12 @@ then11141: %t11 = getelementptr inbounds i8, ptr %t10, i64 %t8 store i8 %t7, ptr %t11 store i64 %t9, ptr %t5 - br label %endif11143 -else11142: + br label %endif11548 +else11547: %t12 = load i64, ptr %a1 %t13 = icmp slt i64 %t12, 2048 - br i1 %t13, label %then11144, label %else11145 -then11144: + br i1 %t13, label %then11549, label %else11550 +then11549: %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t15 = load i64, ptr %a1 %t16 = sdiv i64 %t15, 64 @@ -111450,12 +115475,12 @@ then11144: %t31 = getelementptr inbounds i8, ptr %t30, i64 %t28 store i8 %t27, ptr %t31 store i64 %t29, ptr %t23 - br label %endif11146 -else11145: + br label %endif11551 +else11550: %t32 = load i64, ptr %a1 %t33 = icmp slt i64 %t32, 65536 - br i1 %t33, label %then11147, label %else11148 -then11147: + br i1 %t33, label %then11552, label %else11553 +then11552: %t34 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t35 = load i64, ptr %a1 %t36 = sdiv i64 %t35, 4096 @@ -111493,8 +115518,8 @@ then11147: %t61 = getelementptr inbounds i8, ptr %t60, i64 %t58 store i8 %t57, ptr %t61 store i64 %t59, ptr %t53 - br label %endif11149 -else11148: + br label %endif11554 +else11553: %t62 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t63 = load i64, ptr %a1 %t64 = sdiv i64 %t63, 262144 @@ -111545,12 +115570,12 @@ else11148: %t99 = getelementptr inbounds i8, ptr %t98, i64 %t96 store i8 %t95, ptr %t99 store i64 %t97, ptr %t91 - br label %endif11149 -endif11149: - br label %endif11146 -endif11146: - br label %endif11143 -endif11143: + br label %endif11554 +endif11554: + br label %endif11551 +endif11551: + br label %endif11548 +endif11548: %t100 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } zeroinitializer, ptr %a101 store { ptr, i64, i64 } %t100, ptr %a102 @@ -111568,105 +115593,105 @@ entry: store ptr %p0, ptr %a1 store i64 0, ptr %a2 store i64 0, ptr %a3 - br label %for.cond11150 -for.cond11150: + br label %for.cond11555 +for.cond11555: %t4 = load i64, ptr %a3 %t5 = icmp slt i64 %t4, 4 - br i1 %t5, label %for.body11151, label %for.end11153 -for.body11151: + br i1 %t5, label %for.body11556, label %for.end11558 +for.body11556: %t6 = load ptr, ptr %a1 %t7 = icmp eq ptr %t6, null - br i1 %t7, label %panic11154, label %ok11155 -panic11154: - call void @finch_panic(ptr @.str.7172, i64 348, ptr @.str.7173) + br i1 %t7, label %panic11559, label %ok11560 +panic11559: + call void @finch_panic(ptr @.str.7380, i64 348, ptr @.str.7381) unreachable -ok11155: +ok11560: %t8 = getelementptr inbounds %S.json.Reader, ptr %t6, i32 0, i32 1 %t9 = load i64, ptr %t8 %t10 = load ptr, ptr %a1 %t11 = icmp eq ptr %t10, null - br i1 %t11, label %panic11156, label %ok11157 -panic11156: - call void @finch_panic(ptr @.str.7174, i64 348, ptr @.str.7175) + br i1 %t11, label %panic11561, label %ok11562 +panic11561: + call void @finch_panic(ptr @.str.7382, i64 348, ptr @.str.7383) unreachable -ok11157: +ok11562: %t12 = getelementptr inbounds %S.json.Reader, ptr %t10, i32 0, i32 0 %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %t12, i32 0, i32 1 %t14 = load i64, ptr %t13 %t15 = icmp sge i64 %t9, %t14 - br label %logic.from11158 -logic.from11158: - br i1 %t15, label %logic.end11160, label %logic.rhs11159 -logic.rhs11159: + br label %logic.from11563 +logic.from11563: + br i1 %t15, label %logic.end11565, label %logic.rhs11564 +logic.rhs11564: %t16 = load ptr, ptr %a1 %t17 = icmp eq ptr %t16, null - br i1 %t17, label %panic11161, label %ok11162 -panic11161: - call void @finch_panic(ptr @.str.7176, i64 348, ptr @.str.7177) + br i1 %t17, label %panic11566, label %ok11567 +panic11566: + call void @finch_panic(ptr @.str.7384, i64 348, ptr @.str.7385) unreachable -ok11162: +ok11567: %t18 = getelementptr inbounds %S.json.Reader, ptr %t16, i32 0, i32 0 %t19 = load ptr, ptr %a1 %t20 = icmp eq ptr %t19, null - br i1 %t20, label %panic11163, label %ok11164 -panic11163: - call void @finch_panic(ptr @.str.7178, i64 348, ptr @.str.7179) + br i1 %t20, label %panic11568, label %ok11569 +panic11568: + call void @finch_panic(ptr @.str.7386, i64 348, ptr @.str.7387) unreachable -ok11164: +ok11569: %t21 = getelementptr inbounds %S.json.Reader, ptr %t19, i32 0, i32 1 %t22 = load i64, ptr %t21 %t23 = load { ptr, i64, i64 }, ptr %t18 %t24 = extractvalue { ptr, i64, i64 } %t23, 1 %t25 = icmp uge i64 %t22, %t24 - br i1 %t25, label %range11165, label %inrange11166 -range11165: - call void @finch_panic_index(ptr @.str.7180, i64 348, i64 %t22, i64 %t24) + br i1 %t25, label %range11570, label %inrange11571 +range11570: + call void @finch_panic_index(ptr @.str.7388, i64 348, i64 %t22, i64 %t24) unreachable -inrange11166: +inrange11571: %t26 = extractvalue { ptr, i64, i64 } %t23, 0 %t27 = getelementptr inbounds i8, ptr %t26, i64 %t22 %t28 = load i8, ptr %t27 %t29 = call i64 @finch.json.hex_value(i8 %t28) %t30 = icmp slt i64 %t29, 0 - br label %logic.rend11167 -logic.rend11167: - br label %logic.end11160 -logic.end11160: - %t31 = phi i1 [ true, %logic.from11158 ], [ %t30, %logic.rend11167 ] - br i1 %t31, label %then11168, label %endif11170 -then11168: + br label %logic.rend11572 +logic.rend11572: + br label %logic.end11565 +logic.end11565: + %t31 = phi i1 [ true, %logic.from11563 ], [ %t30, %logic.rend11572 ] + br i1 %t31, label %then11573, label %endif11575 +then11573: %t32 = load ptr, ptr %a1 - %t33 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t32, { ptr, i64, i64 } { ptr @.str.7181, i64 19, i64 0 }) + %t33 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t32, { ptr, i64, i64 } { ptr @.str.7389, i64 19, i64 0 }) %t34 = insertvalue { i1, i64, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t33, 2 ret { i1, i64, { ptr, i64, i64 } } %t34 -endif11170: +endif11575: %t35 = load i64, ptr %a2 %t36 = mul i64 %t35, 16 %t37 = load ptr, ptr %a1 %t38 = icmp eq ptr %t37, null - br i1 %t38, label %panic11171, label %ok11172 -panic11171: - call void @finch_panic(ptr @.str.7182, i64 351, ptr @.str.7183) + br i1 %t38, label %panic11576, label %ok11577 +panic11576: + call void @finch_panic(ptr @.str.7390, i64 351, ptr @.str.7391) unreachable -ok11172: +ok11577: %t39 = getelementptr inbounds %S.json.Reader, ptr %t37, i32 0, i32 0 %t40 = load ptr, ptr %a1 %t41 = icmp eq ptr %t40, null - br i1 %t41, label %panic11173, label %ok11174 -panic11173: - call void @finch_panic(ptr @.str.7184, i64 351, ptr @.str.7185) + br i1 %t41, label %panic11578, label %ok11579 +panic11578: + call void @finch_panic(ptr @.str.7392, i64 351, ptr @.str.7393) unreachable -ok11174: +ok11579: %t42 = getelementptr inbounds %S.json.Reader, ptr %t40, i32 0, i32 1 %t43 = load i64, ptr %t42 %t44 = load { ptr, i64, i64 }, ptr %t39 %t45 = extractvalue { ptr, i64, i64 } %t44, 1 %t46 = icmp uge i64 %t43, %t45 - br i1 %t46, label %range11175, label %inrange11176 -range11175: - call void @finch_panic_index(ptr @.str.7186, i64 351, i64 %t43, i64 %t45) + br i1 %t46, label %range11580, label %inrange11581 +range11580: + call void @finch_panic_index(ptr @.str.7394, i64 351, i64 %t43, i64 %t45) unreachable -inrange11176: +inrange11581: %t47 = extractvalue { ptr, i64, i64 } %t44, 0 %t48 = getelementptr inbounds i8, ptr %t47, i64 %t43 %t49 = load i8, ptr %t48 @@ -111675,22 +115700,22 @@ inrange11176: store i64 %t51, ptr %a2 %t52 = load ptr, ptr %a1 %t53 = icmp eq ptr %t52, null - br i1 %t53, label %panic11177, label %ok11178 -panic11177: - call void @finch_panic(ptr @.str.7187, i64 352, ptr @.str.7188) + br i1 %t53, label %panic11582, label %ok11583 +panic11582: + call void @finch_panic(ptr @.str.7395, i64 352, ptr @.str.7396) unreachable -ok11178: +ok11583: %t54 = getelementptr inbounds %S.json.Reader, ptr %t52, i32 0, i32 1 %t55 = load i64, ptr %t54 %t56 = add i64 %t55, 1 store i64 %t56, ptr %t54 - br label %for.step11152 -for.step11152: + br label %for.step11557 +for.step11557: %t57 = load i64, ptr %a3 %t58 = add i64 %t57, 1 store i64 %t58, ptr %a3 - br label %for.cond11150 -for.end11153: + br label %for.cond11555 +for.end11558: %t59 = load i64, ptr %a2 %t60 = insertvalue { i1, i64, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 %t61 = insertvalue { i1, i64, { ptr, i64, i64 } } %t60, i64 %t59, 1 @@ -111750,11 +115775,11 @@ entry: store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 %t3 = icmp eq ptr %t2, null - br i1 %t3, label %panic11179, label %ok11180 -panic11179: - call void @finch_panic(ptr @.str.7189, i64 358, ptr @.str.7190) + br i1 %t3, label %panic11584, label %ok11585 +panic11584: + call void @finch_panic(ptr @.str.7397, i64 358, ptr @.str.7398) unreachable -ok11180: +ok11585: %t4 = getelementptr inbounds %S.json.Reader, ptr %t2, i32 0, i32 1 %t5 = load i64, ptr %t4 %t6 = add i64 %t5, 1 @@ -111762,50 +115787,50 @@ ok11180: store { ptr, i64, i64 } zeroinitializer, ptr %a7 %t8 = load ptr, ptr %a1 %t9 = icmp eq ptr %t8, null - br i1 %t9, label %panic11181, label %ok11182 -panic11181: - call void @finch_panic(ptr @.str.7191, i64 360, ptr @.str.7192) + br i1 %t9, label %panic11586, label %ok11587 +panic11586: + call void @finch_panic(ptr @.str.7399, i64 360, ptr @.str.7400) unreachable -ok11182: +ok11587: %t10 = getelementptr inbounds %S.json.Reader, ptr %t8, i32 0, i32 1 %t11 = load i64, ptr %t10 store i64 %t11, ptr %a12 - br label %while.cond11183 -while.cond11183: - br label %while.body11184 -while.body11184: + br label %while.cond11588 +while.cond11588: + br label %while.body11589 +while.body11589: %t13 = load ptr, ptr %a1 %t14 = icmp eq ptr %t13, null - br i1 %t14, label %panic11186, label %ok11187 -panic11186: - call void @finch_panic(ptr @.str.7193, i64 362, ptr @.str.7194) + br i1 %t14, label %panic11591, label %ok11592 +panic11591: + call void @finch_panic(ptr @.str.7401, i64 362, ptr @.str.7402) unreachable -ok11187: +ok11592: %t15 = getelementptr inbounds %S.json.Reader, ptr %t13, i32 0, i32 1 %t16 = load i64, ptr %t15 %t17 = load ptr, ptr %a1 %t18 = icmp eq ptr %t17, null - br i1 %t18, label %panic11188, label %ok11189 -panic11188: - call void @finch_panic(ptr @.str.7195, i64 362, ptr @.str.7196) + br i1 %t18, label %panic11593, label %ok11594 +panic11593: + call void @finch_panic(ptr @.str.7403, i64 362, ptr @.str.7404) unreachable -ok11189: +ok11594: %t19 = getelementptr inbounds %S.json.Reader, ptr %t17, i32 0, i32 0 %t20 = getelementptr inbounds { ptr, i64, i64 }, ptr %t19, i32 0, i32 1 %t21 = load i64, ptr %t20 %t22 = icmp sge i64 %t16, %t21 - br i1 %t22, label %then11190, label %endif11192 -then11190: + br i1 %t22, label %then11595, label %endif11597 +then11595: %t23 = load ptr, ptr %a1 %t24 = call { ptr, i64, i64 } @finch.json.where(ptr %t23) - store { ptr, i64, i64 } { ptr @.str.7197, i64 30, i64 0 }, ptr %a26 + store { ptr, i64, i64 } { ptr @.str.7405, i64 30, i64 0 }, ptr %a26 store { ptr, i64, i64 } %t24, ptr %a27 call void @finch_str_concat(ptr %a25, ptr %a26, ptr %a27) store { ptr, i64, i64 } %t24, ptr %a28 call void @finch_str_drop(ptr %a28) %t29 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t29, ptr %a31 - store { ptr, i64, i64 } { ptr @.str.7198, i64 1, i64 0 }, ptr %a32 + store { ptr, i64, i64 } { ptr @.str.7406, i64 1, i64 0 }, ptr %a32 call void @finch_str_concat(ptr %a30, ptr %a31, ptr %a32) store { ptr, i64, i64 } %t29, ptr %a33 call void @finch_str_drop(ptr %a33) @@ -111813,62 +115838,62 @@ then11190: call void @finch.drop.arr_str(ptr %a7) %t35 = insertvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t34, 2 ret { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t35 -endif11192: +endif11597: %t36 = load ptr, ptr %a1 %t37 = icmp eq ptr %t36, null - br i1 %t37, label %panic11193, label %ok11194 -panic11193: - call void @finch_panic(ptr @.str.7199, i64 365, ptr @.str.7200) + br i1 %t37, label %panic11598, label %ok11599 +panic11598: + call void @finch_panic(ptr @.str.7407, i64 365, ptr @.str.7408) unreachable -ok11194: +ok11599: %t38 = getelementptr inbounds %S.json.Reader, ptr %t36, i32 0, i32 0 %t39 = load ptr, ptr %a1 %t40 = icmp eq ptr %t39, null - br i1 %t40, label %panic11195, label %ok11196 -panic11195: - call void @finch_panic(ptr @.str.7201, i64 365, ptr @.str.7202) + br i1 %t40, label %panic11600, label %ok11601 +panic11600: + call void @finch_panic(ptr @.str.7409, i64 365, ptr @.str.7410) unreachable -ok11196: +ok11601: %t41 = getelementptr inbounds %S.json.Reader, ptr %t39, i32 0, i32 1 %t42 = load i64, ptr %t41 %t43 = load { ptr, i64, i64 }, ptr %t38 %t44 = extractvalue { ptr, i64, i64 } %t43, 1 %t45 = icmp uge i64 %t42, %t44 - br i1 %t45, label %range11197, label %inrange11198 -range11197: - call void @finch_panic_index(ptr @.str.7203, i64 365, i64 %t42, i64 %t44) + br i1 %t45, label %range11602, label %inrange11603 +range11602: + call void @finch_panic_index(ptr @.str.7411, i64 365, i64 %t42, i64 %t44) unreachable -inrange11198: +inrange11603: %t46 = extractvalue { ptr, i64, i64 } %t43, 0 %t47 = getelementptr inbounds i8, ptr %t46, i64 %t42 %t48 = load i8, ptr %t47 store i8 %t48, ptr %a49 %t50 = load i8, ptr %a49 %t51 = icmp eq i8 %t50, 34 - br i1 %t51, label %then11199, label %endif11201 -then11199: + br i1 %t51, label %then11604, label %endif11606 +then11604: %t52 = getelementptr inbounds { ptr, i64, i64 }, ptr %a7, i32 0, i32 1 %t53 = load ptr, ptr %a1 %t54 = icmp eq ptr %t53, null - br i1 %t54, label %panic11202, label %ok11203 -panic11202: - call void @finch_panic(ptr @.str.7204, i64 367, ptr @.str.7205) + br i1 %t54, label %panic11607, label %ok11608 +panic11607: + call void @finch_panic(ptr @.str.7412, i64 367, ptr @.str.7413) unreachable -ok11203: +ok11608: %t55 = getelementptr inbounds %S.json.Reader, ptr %t53, i32 0, i32 0 %t56 = load { ptr, i64, i64 }, ptr %t55 store { ptr, i64, i64 } %t56, ptr %a57 %t59 = load i64, ptr %a12 %t60 = load ptr, ptr %a1 %t61 = icmp eq ptr %t60, null - br i1 %t61, label %panic11204, label %ok11205 -panic11204: - call void @finch_panic(ptr @.str.7207, i64 367, ptr @.str.7208) + br i1 %t61, label %panic11609, label %ok11610 +panic11609: + call void @finch_panic(ptr @.str.7415, i64 367, ptr @.str.7416) unreachable -ok11205: +ok11610: %t62 = getelementptr inbounds %S.json.Reader, ptr %t60, i32 0, i32 1 %t63 = load i64, ptr %t62 - call void @finch_str_sub(ptr %a58, ptr %a57, i64 %t59, i64 %t63, ptr @.str.7206, i64 367) + call void @finch_str_sub(ptr %a58, ptr %a57, i64 %t59, i64 %t63, ptr @.str.7414, i64 367) %t64 = load { ptr, i64, i64 }, ptr %a58 %t65 = load i64, ptr %t52 %t66 = add i64 %t65, 1 @@ -111879,39 +115904,39 @@ ok11205: store i64 %t66, ptr %t52 %t69 = load ptr, ptr %a1 %t70 = icmp eq ptr %t69, null - br i1 %t70, label %panic11206, label %ok11207 -panic11206: - call void @finch_panic(ptr @.str.7209, i64 368, ptr @.str.7210) + br i1 %t70, label %panic11611, label %ok11612 +panic11611: + call void @finch_panic(ptr @.str.7417, i64 368, ptr @.str.7418) unreachable -ok11207: +ok11612: %t71 = getelementptr inbounds %S.json.Reader, ptr %t69, i32 0, i32 1 %t72 = load i64, ptr %t71 %t73 = add i64 %t72, 1 store i64 %t73, ptr %t71 %t74 = getelementptr inbounds { ptr, i64, i64 }, ptr %a7, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.7211, i64 0, i64 0 }, ptr %a75 + store { ptr, i64, i64 } { ptr @.str.7419, i64 0, i64 0 }, ptr %a75 call void @finch_str_join(ptr %a76, ptr %a7, ptr %a75) %t77 = load { ptr, i64, i64 }, ptr %a76 call void @finch.drop.arr_str(ptr %a7) %t78 = insertvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 %t79 = insertvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t78, { ptr, i64, i64 } %t77, 1 ret { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t79 -endif11201: +endif11606: %t80 = load i8, ptr %a49 %t81 = zext i8 %t80 to i64 %t82 = icmp slt i64 %t81, 32 - br i1 %t82, label %then11208, label %endif11210 -then11208: + br i1 %t82, label %then11613, label %endif11615 +then11613: %t83 = load ptr, ptr %a1 %t84 = call { ptr, i64, i64 } @finch.json.where(ptr %t83) - store { ptr, i64, i64 } { ptr @.str.7212, i64 55, i64 0 }, ptr %a86 + store { ptr, i64, i64 } { ptr @.str.7420, i64 55, i64 0 }, ptr %a86 store { ptr, i64, i64 } %t84, ptr %a87 call void @finch_str_concat(ptr %a85, ptr %a86, ptr %a87) store { ptr, i64, i64 } %t84, ptr %a88 call void @finch_str_drop(ptr %a88) %t89 = load { ptr, i64, i64 }, ptr %a85 store { ptr, i64, i64 } %t89, ptr %a91 - store { ptr, i64, i64 } { ptr @.str.7213, i64 1, i64 0 }, ptr %a92 + store { ptr, i64, i64 } { ptr @.str.7421, i64 1, i64 0 }, ptr %a92 call void @finch_str_concat(ptr %a90, ptr %a91, ptr %a92) store { ptr, i64, i64 } %t89, ptr %a93 call void @finch_str_drop(ptr %a93) @@ -111919,46 +115944,46 @@ then11208: call void @finch.drop.arr_str(ptr %a7) %t95 = insertvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t94, 2 ret { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t95 -endif11210: +endif11615: %t96 = load i8, ptr %a49 %t97 = icmp ne i8 %t96, 92 - br i1 %t97, label %then11211, label %endif11213 -then11211: + br i1 %t97, label %then11616, label %endif11618 +then11616: %t98 = load ptr, ptr %a1 %t99 = icmp eq ptr %t98, null - br i1 %t99, label %panic11214, label %ok11215 -panic11214: - call void @finch_panic(ptr @.str.7214, i64 375, ptr @.str.7215) + br i1 %t99, label %panic11619, label %ok11620 +panic11619: + call void @finch_panic(ptr @.str.7422, i64 375, ptr @.str.7423) unreachable -ok11215: +ok11620: %t100 = getelementptr inbounds %S.json.Reader, ptr %t98, i32 0, i32 1 %t101 = load i64, ptr %t100 %t102 = add i64 %t101, 1 store i64 %t102, ptr %t100 - br label %while.cond11183 -endif11213: + br label %while.cond11588 +endif11618: %t103 = getelementptr inbounds { ptr, i64, i64 }, ptr %a7, i32 0, i32 1 %t104 = load ptr, ptr %a1 %t105 = icmp eq ptr %t104, null - br i1 %t105, label %panic11216, label %ok11217 -panic11216: - call void @finch_panic(ptr @.str.7216, i64 378, ptr @.str.7217) + br i1 %t105, label %panic11621, label %ok11622 +panic11621: + call void @finch_panic(ptr @.str.7424, i64 378, ptr @.str.7425) unreachable -ok11217: +ok11622: %t106 = getelementptr inbounds %S.json.Reader, ptr %t104, i32 0, i32 0 %t107 = load { ptr, i64, i64 }, ptr %t106 store { ptr, i64, i64 } %t107, ptr %a108 %t110 = load i64, ptr %a12 %t111 = load ptr, ptr %a1 %t112 = icmp eq ptr %t111, null - br i1 %t112, label %panic11218, label %ok11219 -panic11218: - call void @finch_panic(ptr @.str.7219, i64 378, ptr @.str.7220) + br i1 %t112, label %panic11623, label %ok11624 +panic11623: + call void @finch_panic(ptr @.str.7427, i64 378, ptr @.str.7428) unreachable -ok11219: +ok11624: %t113 = getelementptr inbounds %S.json.Reader, ptr %t111, i32 0, i32 1 %t114 = load i64, ptr %t113 - call void @finch_str_sub(ptr %a109, ptr %a108, i64 %t110, i64 %t114, ptr @.str.7218, i64 378) + call void @finch_str_sub(ptr %a109, ptr %a108, i64 %t110, i64 %t114, ptr @.str.7426, i64 378) %t115 = load { ptr, i64, i64 }, ptr %a109 %t116 = load i64, ptr %t103 %t117 = add i64 %t116, 1 @@ -111969,11 +115994,11 @@ ok11219: store i64 %t117, ptr %t103 %t120 = load ptr, ptr %a1 %t121 = icmp eq ptr %t120, null - br i1 %t121, label %panic11220, label %ok11221 -panic11220: - call void @finch_panic(ptr @.str.7221, i64 379, ptr @.str.7222) + br i1 %t121, label %panic11625, label %ok11626 +panic11625: + call void @finch_panic(ptr @.str.7429, i64 379, ptr @.str.7430) unreachable -ok11221: +ok11626: %t122 = getelementptr inbounds %S.json.Reader, ptr %t120, i32 0, i32 1 %t123 = load i64, ptr %t122 %t124 = add i64 %t123, 1 @@ -111983,61 +116008,61 @@ ok11221: store i8 %t126, ptr %a127 %t128 = load ptr, ptr %a1 %t129 = icmp eq ptr %t128, null - br i1 %t129, label %panic11222, label %ok11223 -panic11222: - call void @finch_panic(ptr @.str.7223, i64 381, ptr @.str.7224) + br i1 %t129, label %panic11627, label %ok11628 +panic11627: + call void @finch_panic(ptr @.str.7431, i64 381, ptr @.str.7432) unreachable -ok11223: +ok11628: %t130 = getelementptr inbounds %S.json.Reader, ptr %t128, i32 0, i32 1 %t131 = load i64, ptr %t130 %t132 = add i64 %t131, 1 store i64 %t132, ptr %t130 %t133 = load i8, ptr %a127 %t134 = icmp eq i8 %t133, 110 - br i1 %t134, label %then11224, label %else11225 -then11224: + br i1 %t134, label %then11629, label %else11630 +then11629: %t135 = getelementptr inbounds { ptr, i64, i64 }, ptr %a7, i32 0, i32 1 %t136 = load i64, ptr %t135 %t137 = add i64 %t136, 1 call void @finch_arr_reserve(ptr %a7, i64 %t137, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t138 = load ptr, ptr %a7 %t139 = getelementptr inbounds { ptr, i64, i64 }, ptr %t138, i64 %t136 - store { ptr, i64, i64 } { ptr @.str.7225, i64 1, i64 0 }, ptr %t139 + store { ptr, i64, i64 } { ptr @.str.7433, i64 1, i64 0 }, ptr %t139 store i64 %t137, ptr %t135 - br label %endif11226 -else11225: + br label %endif11631 +else11630: %t140 = load i8, ptr %a127 %t141 = icmp eq i8 %t140, 116 - br i1 %t141, label %then11227, label %else11228 -then11227: + br i1 %t141, label %then11632, label %else11633 +then11632: %t142 = getelementptr inbounds { ptr, i64, i64 }, ptr %a7, i32 0, i32 1 %t143 = load i64, ptr %t142 %t144 = add i64 %t143, 1 call void @finch_arr_reserve(ptr %a7, i64 %t144, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t145 = load ptr, ptr %a7 %t146 = getelementptr inbounds { ptr, i64, i64 }, ptr %t145, i64 %t143 - store { ptr, i64, i64 } { ptr @.str.7226, i64 1, i64 0 }, ptr %t146 + store { ptr, i64, i64 } { ptr @.str.7434, i64 1, i64 0 }, ptr %t146 store i64 %t144, ptr %t142 - br label %endif11229 -else11228: + br label %endif11634 +else11633: %t147 = load i8, ptr %a127 %t148 = icmp eq i8 %t147, 114 - br i1 %t148, label %then11230, label %else11231 -then11230: + br i1 %t148, label %then11635, label %else11636 +then11635: %t149 = getelementptr inbounds { ptr, i64, i64 }, ptr %a7, i32 0, i32 1 %t150 = load i64, ptr %t149 %t151 = add i64 %t150, 1 call void @finch_arr_reserve(ptr %a7, i64 %t151, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t152 = load ptr, ptr %a7 %t153 = getelementptr inbounds { ptr, i64, i64 }, ptr %t152, i64 %t150 - store { ptr, i64, i64 } { ptr @.str.7227, i64 1, i64 0 }, ptr %t153 + store { ptr, i64, i64 } { ptr @.str.7435, i64 1, i64 0 }, ptr %t153 store i64 %t151, ptr %t149 - br label %endif11232 -else11231: + br label %endif11637 +else11636: %t154 = load i8, ptr %a127 %t155 = icmp eq i8 %t154, 98 - br i1 %t155, label %then11233, label %else11234 -then11233: + br i1 %t155, label %then11638, label %else11639 +then11638: %t156 = getelementptr inbounds { ptr, i64, i64 }, ptr %a7, i32 0, i32 1 %t157 = call { ptr, i64, i64 } @finch.json.utf8(i64 8) %t158 = load i64, ptr %t156 @@ -112047,12 +116072,12 @@ then11233: %t161 = getelementptr inbounds { ptr, i64, i64 }, ptr %t160, i64 %t158 store { ptr, i64, i64 } %t157, ptr %t161 store i64 %t159, ptr %t156 - br label %endif11235 -else11234: + br label %endif11640 +else11639: %t162 = load i8, ptr %a127 %t163 = icmp eq i8 %t162, 102 - br i1 %t163, label %then11236, label %else11237 -then11236: + br i1 %t163, label %then11641, label %else11642 +then11641: %t164 = getelementptr inbounds { ptr, i64, i64 }, ptr %a7, i32 0, i32 1 %t165 = call { ptr, i64, i64 } @finch.json.utf8(i64 12) %t166 = load i64, ptr %t164 @@ -112062,34 +116087,34 @@ then11236: %t169 = getelementptr inbounds { ptr, i64, i64 }, ptr %t168, i64 %t166 store { ptr, i64, i64 } %t165, ptr %t169 store i64 %t167, ptr %t164 - br label %endif11238 -else11237: + br label %endif11643 +else11642: %t170 = load i8, ptr %a127 %t171 = icmp eq i8 %t170, 34 - br label %logic.from11239 -logic.from11239: - br i1 %t171, label %logic.end11241, label %logic.rhs11240 -logic.rhs11240: + br label %logic.from11644 +logic.from11644: + br i1 %t171, label %logic.end11646, label %logic.rhs11645 +logic.rhs11645: %t172 = load i8, ptr %a127 %t173 = icmp eq i8 %t172, 92 - br label %logic.rend11242 -logic.rend11242: - br label %logic.end11241 -logic.end11241: - %t174 = phi i1 [ true, %logic.from11239 ], [ %t173, %logic.rend11242 ] - br label %logic.from11243 -logic.from11243: - br i1 %t174, label %logic.end11245, label %logic.rhs11244 -logic.rhs11244: + br label %logic.rend11647 +logic.rend11647: + br label %logic.end11646 +logic.end11646: + %t174 = phi i1 [ true, %logic.from11644 ], [ %t173, %logic.rend11647 ] + br label %logic.from11648 +logic.from11648: + br i1 %t174, label %logic.end11650, label %logic.rhs11649 +logic.rhs11649: %t175 = load i8, ptr %a127 %t176 = icmp eq i8 %t175, 47 - br label %logic.rend11246 -logic.rend11246: - br label %logic.end11245 -logic.end11245: - %t177 = phi i1 [ true, %logic.from11243 ], [ %t176, %logic.rend11246 ] - br i1 %t177, label %then11247, label %else11248 -then11247: + br label %logic.rend11651 +logic.rend11651: + br label %logic.end11650 +logic.end11650: + %t177 = phi i1 [ true, %logic.from11648 ], [ %t176, %logic.rend11651 ] + br i1 %t177, label %then11652, label %else11653 +then11652: %t178 = getelementptr inbounds { ptr, i64, i64 }, ptr %a7, i32 0, i32 1 %t179 = load i8, ptr %a127 call void @finch_str_from_char(ptr %a180, i8 signext %t179) @@ -112101,58 +116126,58 @@ then11247: %t185 = getelementptr inbounds { ptr, i64, i64 }, ptr %t184, i64 %t182 store { ptr, i64, i64 } %t181, ptr %t185 store i64 %t183, ptr %t178 - br label %endif11249 -else11248: + br label %endif11654 +else11653: %t186 = load i8, ptr %a127 %t187 = icmp eq i8 %t186, 117 - br i1 %t187, label %then11250, label %else11251 -then11250: + br i1 %t187, label %then11655, label %else11656 +then11655: %t188 = load ptr, ptr %a1 %t189 = call { i1, i64, { ptr, i64, i64 } } @finch.json.read_hex4(ptr %t188) %t190 = extractvalue { i1, i64, { ptr, i64, i64 } } %t189, 0 %t191 = xor i1 %t190, true %t192 = extractvalue { i1, i64, { ptr, i64, i64 } } %t189, 2 %t193 = extractvalue { i1, i64, { ptr, i64, i64 } } %t189, 1 - br i1 %t191, label %try.failed11253, label %try.ok11254 -try.failed11253: + br i1 %t191, label %try.failed11658, label %try.ok11659 +try.failed11658: call void @finch.drop.arr_str(ptr %a7) %t194 = insertvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t192, 2 ret { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t194 -try.ok11254: +try.ok11659: store i64 %t193, ptr %a195 %t196 = load i64, ptr %a195 %t197 = icmp sge i64 %t196, 55296 - br label %logic.from11255 -logic.from11255: - br i1 %t197, label %logic.rhs11256, label %logic.end11257 -logic.rhs11256: + br label %logic.from11660 +logic.from11660: + br i1 %t197, label %logic.rhs11661, label %logic.end11662 +logic.rhs11661: %t198 = load i64, ptr %a195 %t199 = icmp slt i64 %t198, 56320 - br label %logic.rend11258 -logic.rend11258: - br label %logic.end11257 -logic.end11257: - %t200 = phi i1 [ false, %logic.from11255 ], [ %t199, %logic.rend11258 ] - br label %logic.from11259 -logic.from11259: - br i1 %t200, label %logic.rhs11260, label %logic.end11261 -logic.rhs11260: + br label %logic.rend11663 +logic.rend11663: + br label %logic.end11662 +logic.end11662: + %t200 = phi i1 [ false, %logic.from11660 ], [ %t199, %logic.rend11663 ] + br label %logic.from11664 +logic.from11664: + br i1 %t200, label %logic.rhs11665, label %logic.end11666 +logic.rhs11665: %t201 = load ptr, ptr %a1 - %t202 = call i1 @finch.json.comes(ptr %t201, { ptr, i64, i64 } { ptr @.str.7228, i64 2, i64 0 }) - br label %logic.rend11262 -logic.rend11262: - br label %logic.end11261 -logic.end11261: - %t203 = phi i1 [ false, %logic.from11259 ], [ %t202, %logic.rend11262 ] - br i1 %t203, label %then11263, label %endif11265 -then11263: + %t202 = call i1 @finch.json.comes(ptr %t201, { ptr, i64, i64 } { ptr @.str.7436, i64 2, i64 0 }) + br label %logic.rend11667 +logic.rend11667: + br label %logic.end11666 +logic.end11666: + %t203 = phi i1 [ false, %logic.from11664 ], [ %t202, %logic.rend11667 ] + br i1 %t203, label %then11668, label %endif11670 +then11668: %t204 = load ptr, ptr %a1 %t205 = icmp eq ptr %t204, null - br i1 %t205, label %panic11266, label %ok11267 -panic11266: - call void @finch_panic(ptr @.str.7229, i64 398, ptr @.str.7230) + br i1 %t205, label %panic11671, label %ok11672 +panic11671: + call void @finch_panic(ptr @.str.7437, i64 398, ptr @.str.7438) unreachable -ok11267: +ok11672: %t206 = getelementptr inbounds %S.json.Reader, ptr %t204, i32 0, i32 1 %t207 = load i64, ptr %t206 %t208 = add i64 %t207, 2 @@ -112163,12 +116188,12 @@ ok11267: %t212 = xor i1 %t211, true %t213 = extractvalue { i1, i64, { ptr, i64, i64 } } %t210, 2 %t214 = extractvalue { i1, i64, { ptr, i64, i64 } } %t210, 1 - br i1 %t212, label %try.failed11268, label %try.ok11269 -try.failed11268: + br i1 %t212, label %try.failed11673, label %try.ok11674 +try.failed11673: call void @finch.drop.arr_str(ptr %a7) %t215 = insertvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t213, 2 ret { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t215 -try.ok11269: +try.ok11674: store i64 %t214, ptr %a216 %t217 = load i64, ptr %a195 %t218 = sub i64 %t217, 55296 @@ -112178,8 +116203,8 @@ try.ok11269: %t222 = sub i64 %t221, 56320 %t223 = add i64 %t220, %t222 store i64 %t223, ptr %a195 - br label %endif11265 -endif11265: + br label %endif11670 +endif11670: %t224 = getelementptr inbounds { ptr, i64, i64 }, ptr %a7, i32 0, i32 1 %t225 = load i64, ptr %a195 %t226 = call { ptr, i64, i64 } @finch.json.utf8(i64 %t225) @@ -112190,19 +116215,19 @@ endif11265: %t230 = getelementptr inbounds { ptr, i64, i64 }, ptr %t229, i64 %t227 store { ptr, i64, i64 } %t226, ptr %t230 store i64 %t228, ptr %t224 - br label %endif11252 -else11251: + br label %endif11657 +else11656: %t231 = load i8, ptr %a127 call void @finch_str_from_char(ptr %a232, i8 signext %t231) %t233 = load { ptr, i64, i64 }, ptr %a232 - store { ptr, i64, i64 } { ptr @.str.7231, i64 22, i64 0 }, ptr %a235 + store { ptr, i64, i64 } { ptr @.str.7439, i64 22, i64 0 }, ptr %a235 store { ptr, i64, i64 } %t233, ptr %a236 call void @finch_str_concat(ptr %a234, ptr %a235, ptr %a236) store { ptr, i64, i64 } %t233, ptr %a237 call void @finch_str_drop(ptr %a237) %t238 = load { ptr, i64, i64 }, ptr %a234 store { ptr, i64, i64 } %t238, ptr %a240 - store { ptr, i64, i64 } { ptr @.str.7232, i64 12, i64 0 }, ptr %a241 + store { ptr, i64, i64 } { ptr @.str.7440, i64 12, i64 0 }, ptr %a241 call void @finch_str_concat(ptr %a239, ptr %a240, ptr %a241) store { ptr, i64, i64 } %t238, ptr %a242 call void @finch_str_drop(ptr %a242) @@ -112218,7 +116243,7 @@ else11251: call void @finch_str_drop(ptr %a250) %t251 = load { ptr, i64, i64 }, ptr %a246 store { ptr, i64, i64 } %t251, ptr %a253 - store { ptr, i64, i64 } { ptr @.str.7233, i64 1, i64 0 }, ptr %a254 + store { ptr, i64, i64 } { ptr @.str.7441, i64 1, i64 0 }, ptr %a254 call void @finch_str_concat(ptr %a252, ptr %a253, ptr %a254) store { ptr, i64, i64 } %t251, ptr %a255 call void @finch_str_drop(ptr %a255) @@ -112226,30 +116251,30 @@ else11251: call void @finch.drop.arr_str(ptr %a7) %t257 = insertvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t256, 2 ret { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t257 -endif11252: - br label %endif11249 -endif11249: - br label %endif11238 -endif11238: - br label %endif11235 -endif11235: - br label %endif11232 -endif11232: - br label %endif11229 -endif11229: - br label %endif11226 -endif11226: +endif11657: + br label %endif11654 +endif11654: + br label %endif11643 +endif11643: + br label %endif11640 +endif11640: + br label %endif11637 +endif11637: + br label %endif11634 +endif11634: + br label %endif11631 +endif11631: %t258 = load ptr, ptr %a1 %t259 = icmp eq ptr %t258, null - br i1 %t259, label %panic11270, label %ok11271 -panic11270: - call void @finch_panic(ptr @.str.7234, i64 406, ptr @.str.7235) + br i1 %t259, label %panic11675, label %ok11676 +panic11675: + call void @finch_panic(ptr @.str.7442, i64 406, ptr @.str.7443) unreachable -ok11271: +ok11676: %t260 = getelementptr inbounds %S.json.Reader, ptr %t258, i32 0, i32 1 %t261 = load i64, ptr %t260 store i64 %t261, ptr %a12 - br label %while.cond11183 + br label %while.cond11588 } define internal { i1, %S.json.Json, { ptr, i64, i64 } } @finch.json.read_number(ptr %p0) { @@ -112267,356 +116292,356 @@ entry: store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 %t3 = icmp eq ptr %t2, null - br i1 %t3, label %panic11272, label %ok11273 -panic11272: - call void @finch_panic(ptr @.str.7236, i64 411, ptr @.str.7237) + br i1 %t3, label %panic11677, label %ok11678 +panic11677: + call void @finch_panic(ptr @.str.7444, i64 411, ptr @.str.7445) unreachable -ok11273: +ok11678: %t4 = getelementptr inbounds %S.json.Reader, ptr %t2, i32 0, i32 1 %t5 = load i64, ptr %t4 store i64 %t5, ptr %a6 %t7 = load ptr, ptr %a1 %t8 = call i8 @finch.json.peek(ptr %t7) %t9 = icmp eq i8 %t8, 45 - br i1 %t9, label %then11274, label %endif11276 -then11274: + br i1 %t9, label %then11679, label %endif11681 +then11679: %t10 = load ptr, ptr %a1 %t11 = icmp eq ptr %t10, null - br i1 %t11, label %panic11277, label %ok11278 -panic11277: - call void @finch_panic(ptr @.str.7238, i64 413, ptr @.str.7239) + br i1 %t11, label %panic11682, label %ok11683 +panic11682: + call void @finch_panic(ptr @.str.7446, i64 413, ptr @.str.7447) unreachable -ok11278: +ok11683: %t12 = getelementptr inbounds %S.json.Reader, ptr %t10, i32 0, i32 1 %t13 = load i64, ptr %t12 %t14 = add i64 %t13, 1 store i64 %t14, ptr %t12 - br label %endif11276 -endif11276: - br label %while.cond11279 -while.cond11279: + br label %endif11681 +endif11681: + br label %while.cond11684 +while.cond11684: %t15 = load ptr, ptr %a1 %t16 = icmp eq ptr %t15, null - br i1 %t16, label %panic11282, label %ok11283 -panic11282: - call void @finch_panic(ptr @.str.7240, i64 415, ptr @.str.7241) + br i1 %t16, label %panic11687, label %ok11688 +panic11687: + call void @finch_panic(ptr @.str.7448, i64 415, ptr @.str.7449) unreachable -ok11283: +ok11688: %t17 = getelementptr inbounds %S.json.Reader, ptr %t15, i32 0, i32 1 %t18 = load i64, ptr %t17 %t19 = load ptr, ptr %a1 %t20 = icmp eq ptr %t19, null - br i1 %t20, label %panic11284, label %ok11285 -panic11284: - call void @finch_panic(ptr @.str.7242, i64 415, ptr @.str.7243) + br i1 %t20, label %panic11689, label %ok11690 +panic11689: + call void @finch_panic(ptr @.str.7450, i64 415, ptr @.str.7451) unreachable -ok11285: +ok11690: %t21 = getelementptr inbounds %S.json.Reader, ptr %t19, i32 0, i32 0 %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %t21, i32 0, i32 1 %t23 = load i64, ptr %t22 %t24 = icmp slt i64 %t18, %t23 - br label %logic.from11286 -logic.from11286: - br i1 %t24, label %logic.rhs11287, label %logic.end11288 -logic.rhs11287: + br label %logic.from11691 +logic.from11691: + br i1 %t24, label %logic.rhs11692, label %logic.end11693 +logic.rhs11692: %t25 = load ptr, ptr %a1 %t26 = icmp eq ptr %t25, null - br i1 %t26, label %panic11289, label %ok11290 -panic11289: - call void @finch_panic(ptr @.str.7244, i64 415, ptr @.str.7245) + br i1 %t26, label %panic11694, label %ok11695 +panic11694: + call void @finch_panic(ptr @.str.7452, i64 415, ptr @.str.7453) unreachable -ok11290: +ok11695: %t27 = getelementptr inbounds %S.json.Reader, ptr %t25, i32 0, i32 0 %t28 = load ptr, ptr %a1 %t29 = icmp eq ptr %t28, null - br i1 %t29, label %panic11291, label %ok11292 -panic11291: - call void @finch_panic(ptr @.str.7246, i64 415, ptr @.str.7247) + br i1 %t29, label %panic11696, label %ok11697 +panic11696: + call void @finch_panic(ptr @.str.7454, i64 415, ptr @.str.7455) unreachable -ok11292: +ok11697: %t30 = getelementptr inbounds %S.json.Reader, ptr %t28, i32 0, i32 1 %t31 = load i64, ptr %t30 %t32 = load { ptr, i64, i64 }, ptr %t27 %t33 = extractvalue { ptr, i64, i64 } %t32, 1 %t34 = icmp uge i64 %t31, %t33 - br i1 %t34, label %range11293, label %inrange11294 -range11293: - call void @finch_panic_index(ptr @.str.7248, i64 415, i64 %t31, i64 %t33) + br i1 %t34, label %range11698, label %inrange11699 +range11698: + call void @finch_panic_index(ptr @.str.7456, i64 415, i64 %t31, i64 %t33) unreachable -inrange11294: +inrange11699: %t35 = extractvalue { ptr, i64, i64 } %t32, 0 %t36 = getelementptr inbounds i8, ptr %t35, i64 %t31 %t37 = load i8, ptr %t36 %t38 = icmp uge i8 %t37, 48 - br label %logic.from11295 -logic.from11295: - br i1 %t38, label %logic.rhs11296, label %logic.end11297 -logic.rhs11296: + br label %logic.from11700 +logic.from11700: + br i1 %t38, label %logic.rhs11701, label %logic.end11702 +logic.rhs11701: %t39 = load ptr, ptr %a1 %t40 = icmp eq ptr %t39, null - br i1 %t40, label %panic11298, label %ok11299 -panic11298: - call void @finch_panic(ptr @.str.7249, i64 415, ptr @.str.7250) + br i1 %t40, label %panic11703, label %ok11704 +panic11703: + call void @finch_panic(ptr @.str.7457, i64 415, ptr @.str.7458) unreachable -ok11299: +ok11704: %t41 = getelementptr inbounds %S.json.Reader, ptr %t39, i32 0, i32 0 %t42 = load ptr, ptr %a1 %t43 = icmp eq ptr %t42, null - br i1 %t43, label %panic11300, label %ok11301 -panic11300: - call void @finch_panic(ptr @.str.7251, i64 415, ptr @.str.7252) + br i1 %t43, label %panic11705, label %ok11706 +panic11705: + call void @finch_panic(ptr @.str.7459, i64 415, ptr @.str.7460) unreachable -ok11301: +ok11706: %t44 = getelementptr inbounds %S.json.Reader, ptr %t42, i32 0, i32 1 %t45 = load i64, ptr %t44 %t46 = load { ptr, i64, i64 }, ptr %t41 %t47 = extractvalue { ptr, i64, i64 } %t46, 1 %t48 = icmp uge i64 %t45, %t47 - br i1 %t48, label %range11302, label %inrange11303 -range11302: - call void @finch_panic_index(ptr @.str.7253, i64 415, i64 %t45, i64 %t47) + br i1 %t48, label %range11707, label %inrange11708 +range11707: + call void @finch_panic_index(ptr @.str.7461, i64 415, i64 %t45, i64 %t47) unreachable -inrange11303: +inrange11708: %t49 = extractvalue { ptr, i64, i64 } %t46, 0 %t50 = getelementptr inbounds i8, ptr %t49, i64 %t45 %t51 = load i8, ptr %t50 %t52 = icmp ule i8 %t51, 57 - br label %logic.rend11304 -logic.rend11304: - br label %logic.end11297 -logic.end11297: - %t53 = phi i1 [ false, %logic.from11295 ], [ %t52, %logic.rend11304 ] - br label %logic.from11305 -logic.from11305: - br i1 %t53, label %logic.end11307, label %logic.rhs11306 -logic.rhs11306: + br label %logic.rend11709 +logic.rend11709: + br label %logic.end11702 +logic.end11702: + %t53 = phi i1 [ false, %logic.from11700 ], [ %t52, %logic.rend11709 ] + br label %logic.from11710 +logic.from11710: + br i1 %t53, label %logic.end11712, label %logic.rhs11711 +logic.rhs11711: %t54 = load ptr, ptr %a1 %t55 = icmp eq ptr %t54, null - br i1 %t55, label %panic11308, label %ok11309 -panic11308: - call void @finch_panic(ptr @.str.7254, i64 415, ptr @.str.7255) + br i1 %t55, label %panic11713, label %ok11714 +panic11713: + call void @finch_panic(ptr @.str.7462, i64 415, ptr @.str.7463) unreachable -ok11309: +ok11714: %t56 = getelementptr inbounds %S.json.Reader, ptr %t54, i32 0, i32 0 %t57 = load ptr, ptr %a1 %t58 = icmp eq ptr %t57, null - br i1 %t58, label %panic11310, label %ok11311 -panic11310: - call void @finch_panic(ptr @.str.7256, i64 415, ptr @.str.7257) + br i1 %t58, label %panic11715, label %ok11716 +panic11715: + call void @finch_panic(ptr @.str.7464, i64 415, ptr @.str.7465) unreachable -ok11311: +ok11716: %t59 = getelementptr inbounds %S.json.Reader, ptr %t57, i32 0, i32 1 %t60 = load i64, ptr %t59 %t61 = load { ptr, i64, i64 }, ptr %t56 %t62 = extractvalue { ptr, i64, i64 } %t61, 1 %t63 = icmp uge i64 %t60, %t62 - br i1 %t63, label %range11312, label %inrange11313 -range11312: - call void @finch_panic_index(ptr @.str.7258, i64 415, i64 %t60, i64 %t62) + br i1 %t63, label %range11717, label %inrange11718 +range11717: + call void @finch_panic_index(ptr @.str.7466, i64 415, i64 %t60, i64 %t62) unreachable -inrange11313: +inrange11718: %t64 = extractvalue { ptr, i64, i64 } %t61, 0 %t65 = getelementptr inbounds i8, ptr %t64, i64 %t60 %t66 = load i8, ptr %t65 %t67 = icmp eq i8 %t66, 46 - br label %logic.rend11314 -logic.rend11314: - br label %logic.end11307 -logic.end11307: - %t68 = phi i1 [ true, %logic.from11305 ], [ %t67, %logic.rend11314 ] - br label %logic.from11315 -logic.from11315: - br i1 %t68, label %logic.end11317, label %logic.rhs11316 -logic.rhs11316: + br label %logic.rend11719 +logic.rend11719: + br label %logic.end11712 +logic.end11712: + %t68 = phi i1 [ true, %logic.from11710 ], [ %t67, %logic.rend11719 ] + br label %logic.from11720 +logic.from11720: + br i1 %t68, label %logic.end11722, label %logic.rhs11721 +logic.rhs11721: %t69 = load ptr, ptr %a1 %t70 = icmp eq ptr %t69, null - br i1 %t70, label %panic11318, label %ok11319 -panic11318: - call void @finch_panic(ptr @.str.7259, i64 415, ptr @.str.7260) + br i1 %t70, label %panic11723, label %ok11724 +panic11723: + call void @finch_panic(ptr @.str.7467, i64 415, ptr @.str.7468) unreachable -ok11319: +ok11724: %t71 = getelementptr inbounds %S.json.Reader, ptr %t69, i32 0, i32 0 %t72 = load ptr, ptr %a1 %t73 = icmp eq ptr %t72, null - br i1 %t73, label %panic11320, label %ok11321 -panic11320: - call void @finch_panic(ptr @.str.7261, i64 415, ptr @.str.7262) + br i1 %t73, label %panic11725, label %ok11726 +panic11725: + call void @finch_panic(ptr @.str.7469, i64 415, ptr @.str.7470) unreachable -ok11321: +ok11726: %t74 = getelementptr inbounds %S.json.Reader, ptr %t72, i32 0, i32 1 %t75 = load i64, ptr %t74 %t76 = load { ptr, i64, i64 }, ptr %t71 %t77 = extractvalue { ptr, i64, i64 } %t76, 1 %t78 = icmp uge i64 %t75, %t77 - br i1 %t78, label %range11322, label %inrange11323 -range11322: - call void @finch_panic_index(ptr @.str.7263, i64 415, i64 %t75, i64 %t77) + br i1 %t78, label %range11727, label %inrange11728 +range11727: + call void @finch_panic_index(ptr @.str.7471, i64 415, i64 %t75, i64 %t77) unreachable -inrange11323: +inrange11728: %t79 = extractvalue { ptr, i64, i64 } %t76, 0 %t80 = getelementptr inbounds i8, ptr %t79, i64 %t75 %t81 = load i8, ptr %t80 %t82 = icmp eq i8 %t81, 101 - br label %logic.rend11324 -logic.rend11324: - br label %logic.end11317 -logic.end11317: - %t83 = phi i1 [ true, %logic.from11315 ], [ %t82, %logic.rend11324 ] - br label %logic.from11325 -logic.from11325: - br i1 %t83, label %logic.end11327, label %logic.rhs11326 -logic.rhs11326: + br label %logic.rend11729 +logic.rend11729: + br label %logic.end11722 +logic.end11722: + %t83 = phi i1 [ true, %logic.from11720 ], [ %t82, %logic.rend11729 ] + br label %logic.from11730 +logic.from11730: + br i1 %t83, label %logic.end11732, label %logic.rhs11731 +logic.rhs11731: %t84 = load ptr, ptr %a1 %t85 = icmp eq ptr %t84, null - br i1 %t85, label %panic11328, label %ok11329 -panic11328: - call void @finch_panic(ptr @.str.7264, i64 415, ptr @.str.7265) + br i1 %t85, label %panic11733, label %ok11734 +panic11733: + call void @finch_panic(ptr @.str.7472, i64 415, ptr @.str.7473) unreachable -ok11329: +ok11734: %t86 = getelementptr inbounds %S.json.Reader, ptr %t84, i32 0, i32 0 %t87 = load ptr, ptr %a1 %t88 = icmp eq ptr %t87, null - br i1 %t88, label %panic11330, label %ok11331 -panic11330: - call void @finch_panic(ptr @.str.7266, i64 415, ptr @.str.7267) + br i1 %t88, label %panic11735, label %ok11736 +panic11735: + call void @finch_panic(ptr @.str.7474, i64 415, ptr @.str.7475) unreachable -ok11331: +ok11736: %t89 = getelementptr inbounds %S.json.Reader, ptr %t87, i32 0, i32 1 %t90 = load i64, ptr %t89 %t91 = load { ptr, i64, i64 }, ptr %t86 %t92 = extractvalue { ptr, i64, i64 } %t91, 1 %t93 = icmp uge i64 %t90, %t92 - br i1 %t93, label %range11332, label %inrange11333 -range11332: - call void @finch_panic_index(ptr @.str.7268, i64 415, i64 %t90, i64 %t92) + br i1 %t93, label %range11737, label %inrange11738 +range11737: + call void @finch_panic_index(ptr @.str.7476, i64 415, i64 %t90, i64 %t92) unreachable -inrange11333: +inrange11738: %t94 = extractvalue { ptr, i64, i64 } %t91, 0 %t95 = getelementptr inbounds i8, ptr %t94, i64 %t90 %t96 = load i8, ptr %t95 %t97 = icmp eq i8 %t96, 69 - br label %logic.rend11334 -logic.rend11334: - br label %logic.end11327 -logic.end11327: - %t98 = phi i1 [ true, %logic.from11325 ], [ %t97, %logic.rend11334 ] - br label %logic.from11335 -logic.from11335: - br i1 %t98, label %logic.end11337, label %logic.rhs11336 -logic.rhs11336: + br label %logic.rend11739 +logic.rend11739: + br label %logic.end11732 +logic.end11732: + %t98 = phi i1 [ true, %logic.from11730 ], [ %t97, %logic.rend11739 ] + br label %logic.from11740 +logic.from11740: + br i1 %t98, label %logic.end11742, label %logic.rhs11741 +logic.rhs11741: %t99 = load ptr, ptr %a1 %t100 = icmp eq ptr %t99, null - br i1 %t100, label %panic11338, label %ok11339 -panic11338: - call void @finch_panic(ptr @.str.7269, i64 415, ptr @.str.7270) + br i1 %t100, label %panic11743, label %ok11744 +panic11743: + call void @finch_panic(ptr @.str.7477, i64 415, ptr @.str.7478) unreachable -ok11339: +ok11744: %t101 = getelementptr inbounds %S.json.Reader, ptr %t99, i32 0, i32 0 %t102 = load ptr, ptr %a1 %t103 = icmp eq ptr %t102, null - br i1 %t103, label %panic11340, label %ok11341 -panic11340: - call void @finch_panic(ptr @.str.7271, i64 415, ptr @.str.7272) + br i1 %t103, label %panic11745, label %ok11746 +panic11745: + call void @finch_panic(ptr @.str.7479, i64 415, ptr @.str.7480) unreachable -ok11341: +ok11746: %t104 = getelementptr inbounds %S.json.Reader, ptr %t102, i32 0, i32 1 %t105 = load i64, ptr %t104 %t106 = load { ptr, i64, i64 }, ptr %t101 %t107 = extractvalue { ptr, i64, i64 } %t106, 1 %t108 = icmp uge i64 %t105, %t107 - br i1 %t108, label %range11342, label %inrange11343 -range11342: - call void @finch_panic_index(ptr @.str.7273, i64 415, i64 %t105, i64 %t107) + br i1 %t108, label %range11747, label %inrange11748 +range11747: + call void @finch_panic_index(ptr @.str.7481, i64 415, i64 %t105, i64 %t107) unreachable -inrange11343: +inrange11748: %t109 = extractvalue { ptr, i64, i64 } %t106, 0 %t110 = getelementptr inbounds i8, ptr %t109, i64 %t105 %t111 = load i8, ptr %t110 %t112 = icmp eq i8 %t111, 43 - br label %logic.rend11344 -logic.rend11344: - br label %logic.end11337 -logic.end11337: - %t113 = phi i1 [ true, %logic.from11335 ], [ %t112, %logic.rend11344 ] - br label %logic.from11345 -logic.from11345: - br i1 %t113, label %logic.end11347, label %logic.rhs11346 -logic.rhs11346: + br label %logic.rend11749 +logic.rend11749: + br label %logic.end11742 +logic.end11742: + %t113 = phi i1 [ true, %logic.from11740 ], [ %t112, %logic.rend11749 ] + br label %logic.from11750 +logic.from11750: + br i1 %t113, label %logic.end11752, label %logic.rhs11751 +logic.rhs11751: %t114 = load ptr, ptr %a1 %t115 = icmp eq ptr %t114, null - br i1 %t115, label %panic11348, label %ok11349 -panic11348: - call void @finch_panic(ptr @.str.7274, i64 415, ptr @.str.7275) + br i1 %t115, label %panic11753, label %ok11754 +panic11753: + call void @finch_panic(ptr @.str.7482, i64 415, ptr @.str.7483) unreachable -ok11349: +ok11754: %t116 = getelementptr inbounds %S.json.Reader, ptr %t114, i32 0, i32 0 %t117 = load ptr, ptr %a1 %t118 = icmp eq ptr %t117, null - br i1 %t118, label %panic11350, label %ok11351 -panic11350: - call void @finch_panic(ptr @.str.7276, i64 415, ptr @.str.7277) + br i1 %t118, label %panic11755, label %ok11756 +panic11755: + call void @finch_panic(ptr @.str.7484, i64 415, ptr @.str.7485) unreachable -ok11351: +ok11756: %t119 = getelementptr inbounds %S.json.Reader, ptr %t117, i32 0, i32 1 %t120 = load i64, ptr %t119 %t121 = load { ptr, i64, i64 }, ptr %t116 %t122 = extractvalue { ptr, i64, i64 } %t121, 1 %t123 = icmp uge i64 %t120, %t122 - br i1 %t123, label %range11352, label %inrange11353 -range11352: - call void @finch_panic_index(ptr @.str.7278, i64 415, i64 %t120, i64 %t122) + br i1 %t123, label %range11757, label %inrange11758 +range11757: + call void @finch_panic_index(ptr @.str.7486, i64 415, i64 %t120, i64 %t122) unreachable -inrange11353: +inrange11758: %t124 = extractvalue { ptr, i64, i64 } %t121, 0 %t125 = getelementptr inbounds i8, ptr %t124, i64 %t120 %t126 = load i8, ptr %t125 %t127 = icmp eq i8 %t126, 45 - br label %logic.rend11354 -logic.rend11354: - br label %logic.end11347 -logic.end11347: - %t128 = phi i1 [ true, %logic.from11345 ], [ %t127, %logic.rend11354 ] - br label %logic.rend11355 -logic.rend11355: - br label %logic.end11288 -logic.end11288: - %t129 = phi i1 [ false, %logic.from11286 ], [ %t128, %logic.rend11355 ] - br i1 %t129, label %while.body11280, label %while.end11281 -while.body11280: + br label %logic.rend11759 +logic.rend11759: + br label %logic.end11752 +logic.end11752: + %t128 = phi i1 [ true, %logic.from11750 ], [ %t127, %logic.rend11759 ] + br label %logic.rend11760 +logic.rend11760: + br label %logic.end11693 +logic.end11693: + %t129 = phi i1 [ false, %logic.from11691 ], [ %t128, %logic.rend11760 ] + br i1 %t129, label %while.body11685, label %while.end11686 +while.body11685: %t130 = load ptr, ptr %a1 %t131 = icmp eq ptr %t130, null - br i1 %t131, label %panic11356, label %ok11357 -panic11356: - call void @finch_panic(ptr @.str.7279, i64 416, ptr @.str.7280) + br i1 %t131, label %panic11761, label %ok11762 +panic11761: + call void @finch_panic(ptr @.str.7487, i64 416, ptr @.str.7488) unreachable -ok11357: +ok11762: %t132 = getelementptr inbounds %S.json.Reader, ptr %t130, i32 0, i32 1 %t133 = load i64, ptr %t132 %t134 = add i64 %t133, 1 store i64 %t134, ptr %t132 - br label %while.cond11279 -while.end11281: + br label %while.cond11684 +while.end11686: %t135 = load ptr, ptr %a1 %t136 = icmp eq ptr %t135, null - br i1 %t136, label %panic11358, label %ok11359 -panic11358: - call void @finch_panic(ptr @.str.7281, i64 418, ptr @.str.7282) + br i1 %t136, label %panic11763, label %ok11764 +panic11763: + call void @finch_panic(ptr @.str.7489, i64 418, ptr @.str.7490) unreachable -ok11359: +ok11764: %t137 = getelementptr inbounds %S.json.Reader, ptr %t135, i32 0, i32 0 %t138 = load { ptr, i64, i64 }, ptr %t137 store { ptr, i64, i64 } %t138, ptr %a139 %t141 = load i64, ptr %a6 %t142 = load ptr, ptr %a1 %t143 = icmp eq ptr %t142, null - br i1 %t143, label %panic11360, label %ok11361 -panic11360: - call void @finch_panic(ptr @.str.7284, i64 418, ptr @.str.7285) + br i1 %t143, label %panic11765, label %ok11766 +panic11765: + call void @finch_panic(ptr @.str.7492, i64 418, ptr @.str.7493) unreachable -ok11361: +ok11766: %t144 = getelementptr inbounds %S.json.Reader, ptr %t142, i32 0, i32 1 %t145 = load i64, ptr %t144 - call void @finch_str_sub(ptr %a140, ptr %a139, i64 %t141, i64 %t145, ptr @.str.7283, i64 418) + call void @finch_str_sub(ptr %a140, ptr %a139, i64 %t141, i64 %t145, ptr @.str.7491, i64 418) %t146 = load { ptr, i64, i64 }, ptr %a140 store { ptr, i64, i64 } zeroinitializer, ptr %a147 store double 0.0, ptr %a148 @@ -112627,25 +116652,25 @@ ok11361: store { ptr, i64, i64 } %t146, ptr %a153 call void @finch_str_drop(ptr %a153) %t154 = load double, ptr %a148 - br i1 %t151, label %or.failed11362, label %or.ok11363 -or.failed11362: + br i1 %t151, label %or.failed11767, label %or.ok11768 +or.failed11767: store { ptr, i64, i64 } %t152, ptr %a155 %t156 = load i64, ptr %a6 %t157 = load ptr, ptr %a1 %t158 = icmp eq ptr %t157, null - br i1 %t158, label %panic11364, label %ok11365 -panic11364: - call void @finch_panic(ptr @.str.7286, i64 419, ptr @.str.7287) + br i1 %t158, label %panic11769, label %ok11770 +panic11769: + call void @finch_panic(ptr @.str.7494, i64 419, ptr @.str.7495) unreachable -ok11365: +ok11770: %t159 = getelementptr inbounds %S.json.Reader, ptr %t157, i32 0, i32 1 store i64 %t156, ptr %t159 %t160 = load ptr, ptr %a1 - %t161 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t160, { ptr, i64, i64 } { ptr @.str.7288, i64 8, i64 0 }) + %t161 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t160, { ptr, i64, i64 } { ptr @.str.7496, i64 8, i64 0 }) call void @finch_str_drop(ptr %a155) %t162 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t161, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t162 -or.ok11363: +or.ok11768: store double %t154, ptr %a163 %t164 = load double, ptr %a163 %t165 = call %S.json.Json @finch.json.new_number(double %t164) @@ -112672,44 +116697,44 @@ entry: store i8 %t4, ptr %a5 %t6 = load ptr, ptr %a1 %t7 = icmp eq ptr %t6, null - br i1 %t7, label %panic11366, label %ok11367 -panic11366: - call void @finch_panic(ptr @.str.7289, i64 428, ptr @.str.7290) + br i1 %t7, label %panic11771, label %ok11772 +panic11771: + call void @finch_panic(ptr @.str.7497, i64 428, ptr @.str.7498) unreachable -ok11367: +ok11772: %t8 = getelementptr inbounds %S.json.Reader, ptr %t6, i32 0, i32 1 %t9 = load i64, ptr %t8 %t10 = load ptr, ptr %a1 %t11 = icmp eq ptr %t10, null - br i1 %t11, label %panic11368, label %ok11369 -panic11368: - call void @finch_panic(ptr @.str.7291, i64 428, ptr @.str.7292) + br i1 %t11, label %panic11773, label %ok11774 +panic11773: + call void @finch_panic(ptr @.str.7499, i64 428, ptr @.str.7500) unreachable -ok11369: +ok11774: %t12 = getelementptr inbounds %S.json.Reader, ptr %t10, i32 0, i32 0 %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %t12, i32 0, i32 1 %t14 = load i64, ptr %t13 %t15 = icmp sge i64 %t9, %t14 - br i1 %t15, label %then11370, label %endif11372 -then11370: + br i1 %t15, label %then11775, label %endif11777 +then11775: %t16 = load ptr, ptr %a1 - %t17 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t16, { ptr, i64, i64 } { ptr @.str.7293, i64 7, i64 0 }) + %t17 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t16, { ptr, i64, i64 } { ptr @.str.7501, i64 7, i64 0 }) %t18 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t17, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t18 -endif11372: +endif11777: %t19 = load i8, ptr %a5 %t20 = icmp eq i8 %t19, 123 - br i1 %t20, label %then11373, label %endif11375 -then11373: + br i1 %t20, label %then11778, label %endif11780 +then11778: %t21 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t21, ptr %a22 %t23 = load ptr, ptr %a1 %t24 = icmp eq ptr %t23, null - br i1 %t24, label %panic11376, label %ok11377 -panic11376: - call void @finch_panic(ptr @.str.7294, i64 433, ptr @.str.7295) + br i1 %t24, label %panic11781, label %ok11782 +panic11781: + call void @finch_panic(ptr @.str.7502, i64 433, ptr @.str.7503) unreachable -ok11377: +ok11782: %t25 = getelementptr inbounds %S.json.Reader, ptr %t23, i32 0, i32 1 %t26 = load i64, ptr %t25 %t27 = add i64 %t26, 1 @@ -112719,15 +116744,15 @@ ok11377: %t29 = load ptr, ptr %a1 %t30 = call i8 @finch.json.peek(ptr %t29) %t31 = icmp eq i8 %t30, 125 - br i1 %t31, label %then11378, label %endif11380 -then11378: + br i1 %t31, label %then11783, label %endif11785 +then11783: %t32 = load ptr, ptr %a1 %t33 = icmp eq ptr %t32, null - br i1 %t33, label %panic11381, label %ok11382 -panic11381: - call void @finch_panic(ptr @.str.7296, i64 436, ptr @.str.7297) + br i1 %t33, label %panic11786, label %ok11787 +panic11786: + call void @finch_panic(ptr @.str.7504, i64 436, ptr @.str.7505) unreachable -ok11382: +ok11787: %t34 = getelementptr inbounds %S.json.Reader, ptr %t32, i32 0, i32 1 %t35 = load i64, ptr %t34 %t36 = add i64 %t35, 1 @@ -112736,58 +116761,58 @@ ok11382: %t38 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 %t39 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t38, %S.json.Json %t37, 1 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t39 -endif11380: - br label %while.cond11383 -while.cond11383: - br label %while.body11384 -while.body11384: +endif11785: + br label %while.cond11788 +while.cond11788: + br label %while.body11789 +while.body11789: %t40 = load ptr, ptr %a1 call void @finch.json.skip_space(ptr %t40) %t41 = load ptr, ptr %a1 %t42 = call i8 @finch.json.peek(ptr %t41) %t43 = icmp ne i8 %t42, 34 - br i1 %t43, label %then11386, label %endif11388 -then11386: + br i1 %t43, label %then11791, label %endif11793 +then11791: %t44 = load ptr, ptr %a1 - %t45 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t44, { ptr, i64, i64 } { ptr @.str.7298, i64 15, i64 0 }) + %t45 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t44, { ptr, i64, i64 } { ptr @.str.7506, i64 15, i64 0 }) call void @finch.drop.S_json_Json(ptr %a22) %t46 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t45, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t46 -endif11388: +endif11793: %t47 = load ptr, ptr %a1 %t48 = call { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } @finch.json.read_string(ptr %t47) %t49 = extractvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t48, 0 %t50 = xor i1 %t49, true %t51 = extractvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t48, 2 %t52 = extractvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t48, 1 - br i1 %t50, label %try.failed11389, label %try.ok11390 -try.failed11389: + br i1 %t50, label %try.failed11794, label %try.ok11795 +try.failed11794: call void @finch.drop.S_json_Json(ptr %a22) %t53 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t51, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t53 -try.ok11390: +try.ok11795: store { ptr, i64, i64 } %t52, ptr %a54 %t55 = load ptr, ptr %a1 call void @finch.json.skip_space(ptr %t55) %t56 = load ptr, ptr %a1 %t57 = call i8 @finch.json.peek(ptr %t56) %t58 = icmp ne i8 %t57, 58 - br i1 %t58, label %then11391, label %endif11393 -then11391: + br i1 %t58, label %then11796, label %endif11798 +then11796: %t59 = load ptr, ptr %a1 - %t60 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t59, { ptr, i64, i64 } { ptr @.str.7299, i64 3, i64 0 }) + %t60 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t59, { ptr, i64, i64 } { ptr @.str.7507, i64 3, i64 0 }) call void @finch_str_drop(ptr %a54) call void @finch.drop.S_json_Json(ptr %a22) %t61 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t60, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t61 -endif11393: +endif11798: %t62 = load ptr, ptr %a1 %t63 = icmp eq ptr %t62, null - br i1 %t63, label %panic11394, label %ok11395 -panic11394: - call void @finch_panic(ptr @.str.7300, i64 449, ptr @.str.7301) + br i1 %t63, label %panic11799, label %ok11800 +panic11799: + call void @finch_panic(ptr @.str.7508, i64 449, ptr @.str.7509) unreachable -ok11395: +ok11800: %t64 = getelementptr inbounds %S.json.Reader, ptr %t62, i32 0, i32 1 %t65 = load i64, ptr %t64 %t66 = add i64 %t65, 1 @@ -112798,13 +116823,13 @@ ok11395: %t70 = xor i1 %t69, true %t71 = extractvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t68, 2 %t72 = extractvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t68, 1 - br i1 %t70, label %try.failed11396, label %try.ok11397 -try.failed11396: + br i1 %t70, label %try.failed11801, label %try.ok11802 +try.failed11801: call void @finch_str_drop(ptr %a54) call void @finch.drop.S_json_Json(ptr %a22) %t73 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t71, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t73 -try.ok11397: +try.ok11802: store %S.json.Json %t72, ptr %a74 %t75 = load { ptr, i64, i64 }, ptr %a54 %t76 = load %S.json.Json, ptr %a74 @@ -112814,35 +116839,35 @@ try.ok11397: %t78 = load ptr, ptr %a1 %t79 = call i8 @finch.json.peek(ptr %t78) %t80 = icmp eq i8 %t79, 44 - br i1 %t80, label %then11398, label %endif11400 -then11398: + br i1 %t80, label %then11803, label %endif11805 +then11803: %t81 = load ptr, ptr %a1 %t82 = icmp eq ptr %t81, null - br i1 %t82, label %panic11401, label %ok11402 -panic11401: - call void @finch_panic(ptr @.str.7302, i64 454, ptr @.str.7303) + br i1 %t82, label %panic11806, label %ok11807 +panic11806: + call void @finch_panic(ptr @.str.7510, i64 454, ptr @.str.7511) unreachable -ok11402: +ok11807: %t83 = getelementptr inbounds %S.json.Reader, ptr %t81, i32 0, i32 1 %t84 = load i64, ptr %t83 %t85 = add i64 %t84, 1 store i64 %t85, ptr %t83 call void @finch.drop.S_json_Json(ptr %a74) call void @finch_str_drop(ptr %a54) - br label %while.cond11383 -endif11400: + br label %while.cond11788 +endif11805: %t86 = load ptr, ptr %a1 %t87 = call i8 @finch.json.peek(ptr %t86) %t88 = icmp eq i8 %t87, 125 - br i1 %t88, label %then11403, label %endif11405 -then11403: + br i1 %t88, label %then11808, label %endif11810 +then11808: %t89 = load ptr, ptr %a1 %t90 = icmp eq ptr %t89, null - br i1 %t90, label %panic11406, label %ok11407 -panic11406: - call void @finch_panic(ptr @.str.7304, i64 458, ptr @.str.7305) + br i1 %t90, label %panic11811, label %ok11812 +panic11811: + call void @finch_panic(ptr @.str.7512, i64 458, ptr @.str.7513) unreachable -ok11407: +ok11812: %t91 = getelementptr inbounds %S.json.Reader, ptr %t89, i32 0, i32 1 %t92 = load i64, ptr %t91 %t93 = add i64 %t92, 1 @@ -112853,28 +116878,28 @@ ok11407: %t95 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 %t96 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t95, %S.json.Json %t94, 1 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t96 -endif11405: +endif11810: %t97 = load ptr, ptr %a1 - %t98 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t97, { ptr, i64, i64 } { ptr @.str.7306, i64 10, i64 0 }) + %t98 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t97, { ptr, i64, i64 } { ptr @.str.7514, i64 10, i64 0 }) call void @finch.drop.S_json_Json(ptr %a74) call void @finch_str_drop(ptr %a54) call void @finch.drop.S_json_Json(ptr %a22) %t99 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t98, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t99 -endif11375: +endif11780: %t100 = load i8, ptr %a5 %t101 = icmp eq i8 %t100, 91 - br i1 %t101, label %then11408, label %endif11410 -then11408: + br i1 %t101, label %then11813, label %endif11815 +then11813: %t102 = call %S.json.Json @finch.json.new_list() store %S.json.Json %t102, ptr %a103 %t104 = load ptr, ptr %a1 %t105 = icmp eq ptr %t104, null - br i1 %t105, label %panic11411, label %ok11412 -panic11411: - call void @finch_panic(ptr @.str.7307, i64 466, ptr @.str.7308) + br i1 %t105, label %panic11816, label %ok11817 +panic11816: + call void @finch_panic(ptr @.str.7515, i64 466, ptr @.str.7516) unreachable -ok11412: +ok11817: %t106 = getelementptr inbounds %S.json.Reader, ptr %t104, i32 0, i32 1 %t107 = load i64, ptr %t106 %t108 = add i64 %t107, 1 @@ -112884,15 +116909,15 @@ ok11412: %t110 = load ptr, ptr %a1 %t111 = call i8 @finch.json.peek(ptr %t110) %t112 = icmp eq i8 %t111, 93 - br i1 %t112, label %then11413, label %endif11415 -then11413: + br i1 %t112, label %then11818, label %endif11820 +then11818: %t113 = load ptr, ptr %a1 %t114 = icmp eq ptr %t113, null - br i1 %t114, label %panic11416, label %ok11417 -panic11416: - call void @finch_panic(ptr @.str.7309, i64 469, ptr @.str.7310) + br i1 %t114, label %panic11821, label %ok11822 +panic11821: + call void @finch_panic(ptr @.str.7517, i64 469, ptr @.str.7518) unreachable -ok11417: +ok11822: %t115 = getelementptr inbounds %S.json.Reader, ptr %t113, i32 0, i32 1 %t116 = load i64, ptr %t115 %t117 = add i64 %t116, 1 @@ -112901,23 +116926,23 @@ ok11417: %t119 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 %t120 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t119, %S.json.Json %t118, 1 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t120 -endif11415: - br label %while.cond11418 -while.cond11418: - br label %while.body11419 -while.body11419: +endif11820: + br label %while.cond11823 +while.cond11823: + br label %while.body11824 +while.body11824: %t121 = load ptr, ptr %a1 %t122 = call { i1, %S.json.Json, { ptr, i64, i64 } } @finch.json.read_value(ptr %t121) %t123 = extractvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t122, 0 %t124 = xor i1 %t123, true %t125 = extractvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t122, 2 %t126 = extractvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t122, 1 - br i1 %t124, label %try.failed11421, label %try.ok11422 -try.failed11421: + br i1 %t124, label %try.failed11826, label %try.ok11827 +try.failed11826: call void @finch.drop.S_json_Json(ptr %a103) %t127 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t125, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t127 -try.ok11422: +try.ok11827: store %S.json.Json %t126, ptr %a128 %t129 = load %S.json.Json, ptr %a128 call void @finch.json.Json.push(ptr %a103, %S.json.Json %t129) @@ -112926,34 +116951,34 @@ try.ok11422: %t131 = load ptr, ptr %a1 %t132 = call i8 @finch.json.peek(ptr %t131) %t133 = icmp eq i8 %t132, 44 - br i1 %t133, label %then11423, label %endif11425 -then11423: + br i1 %t133, label %then11828, label %endif11830 +then11828: %t134 = load ptr, ptr %a1 %t135 = icmp eq ptr %t134, null - br i1 %t135, label %panic11426, label %ok11427 -panic11426: - call void @finch_panic(ptr @.str.7311, i64 477, ptr @.str.7312) + br i1 %t135, label %panic11831, label %ok11832 +panic11831: + call void @finch_panic(ptr @.str.7519, i64 477, ptr @.str.7520) unreachable -ok11427: +ok11832: %t136 = getelementptr inbounds %S.json.Reader, ptr %t134, i32 0, i32 1 %t137 = load i64, ptr %t136 %t138 = add i64 %t137, 1 store i64 %t138, ptr %t136 call void @finch.drop.S_json_Json(ptr %a128) - br label %while.cond11418 -endif11425: + br label %while.cond11823 +endif11830: %t139 = load ptr, ptr %a1 %t140 = call i8 @finch.json.peek(ptr %t139) %t141 = icmp eq i8 %t140, 93 - br i1 %t141, label %then11428, label %endif11430 -then11428: + br i1 %t141, label %then11833, label %endif11835 +then11833: %t142 = load ptr, ptr %a1 %t143 = icmp eq ptr %t142, null - br i1 %t143, label %panic11431, label %ok11432 -panic11431: - call void @finch_panic(ptr @.str.7313, i64 481, ptr @.str.7314) + br i1 %t143, label %panic11836, label %ok11837 +panic11836: + call void @finch_panic(ptr @.str.7521, i64 481, ptr @.str.7522) unreachable -ok11432: +ok11837: %t144 = getelementptr inbounds %S.json.Reader, ptr %t142, i32 0, i32 1 %t145 = load i64, ptr %t144 %t146 = add i64 %t145, 1 @@ -112963,29 +116988,29 @@ ok11432: %t148 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 %t149 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t148, %S.json.Json %t147, 1 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t149 -endif11430: +endif11835: %t150 = load ptr, ptr %a1 - %t151 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t150, { ptr, i64, i64 } { ptr @.str.7315, i64 10, i64 0 }) + %t151 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t150, { ptr, i64, i64 } { ptr @.str.7523, i64 10, i64 0 }) call void @finch.drop.S_json_Json(ptr %a128) call void @finch.drop.S_json_Json(ptr %a103) %t152 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t151, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t152 -endif11410: +endif11815: %t153 = load i8, ptr %a5 %t154 = icmp eq i8 %t153, 34 - br i1 %t154, label %then11433, label %endif11435 -then11433: + br i1 %t154, label %then11838, label %endif11840 +then11838: %t155 = load ptr, ptr %a1 %t156 = call { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } @finch.json.read_string(ptr %t155) %t157 = extractvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t156, 0 %t158 = xor i1 %t157, true %t159 = extractvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t156, 2 %t160 = extractvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t156, 1 - br i1 %t158, label %try.failed11436, label %try.ok11437 -try.failed11436: + br i1 %t158, label %try.failed11841, label %try.ok11842 +try.failed11841: %t161 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t159, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t161 -try.ok11437: +try.ok11842: store { ptr, i64, i64 } %t160, ptr %a162 %t163 = load { ptr, i64, i64 }, ptr %a162 %t164 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t163) @@ -112993,107 +117018,107 @@ try.ok11437: %t165 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 %t166 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t165, %S.json.Json %t164, 1 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t166 -endif11435: +endif11840: %t167 = load i8, ptr %a5 %t168 = icmp eq i8 %t167, 116 - br i1 %t168, label %then11438, label %endif11440 -then11438: + br i1 %t168, label %then11843, label %endif11845 +then11843: %t169 = load ptr, ptr %a1 - %t170 = call { i1, i8, { ptr, i64, i64 } } @finch.json.expect_word(ptr %t169, { ptr, i64, i64 } { ptr @.str.7316, i64 4, i64 0 }) + %t170 = call { i1, i8, { ptr, i64, i64 } } @finch.json.expect_word(ptr %t169, { ptr, i64, i64 } { ptr @.str.7524, i64 4, i64 0 }) %t171 = extractvalue { i1, i8, { ptr, i64, i64 } } %t170, 0 %t172 = xor i1 %t171, true %t173 = extractvalue { i1, i8, { ptr, i64, i64 } } %t170, 2 - br i1 %t172, label %try.failed11441, label %try.ok11442 -try.failed11441: + br i1 %t172, label %try.failed11846, label %try.ok11847 +try.failed11846: %t174 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t173, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t174 -try.ok11442: +try.ok11847: %t175 = call %S.json.Json @finch.json.new_bool(i1 true) %t176 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 %t177 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t176, %S.json.Json %t175, 1 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t177 -endif11440: +endif11845: %t178 = load i8, ptr %a5 %t179 = icmp eq i8 %t178, 102 - br i1 %t179, label %then11443, label %endif11445 -then11443: + br i1 %t179, label %then11848, label %endif11850 +then11848: %t180 = load ptr, ptr %a1 - %t181 = call { i1, i8, { ptr, i64, i64 } } @finch.json.expect_word(ptr %t180, { ptr, i64, i64 } { ptr @.str.7317, i64 5, i64 0 }) + %t181 = call { i1, i8, { ptr, i64, i64 } } @finch.json.expect_word(ptr %t180, { ptr, i64, i64 } { ptr @.str.7525, i64 5, i64 0 }) %t182 = extractvalue { i1, i8, { ptr, i64, i64 } } %t181, 0 %t183 = xor i1 %t182, true %t184 = extractvalue { i1, i8, { ptr, i64, i64 } } %t181, 2 - br i1 %t183, label %try.failed11446, label %try.ok11447 -try.failed11446: + br i1 %t183, label %try.failed11851, label %try.ok11852 +try.failed11851: %t185 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t184, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t185 -try.ok11447: +try.ok11852: %t186 = call %S.json.Json @finch.json.new_bool(i1 false) %t187 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 %t188 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t187, %S.json.Json %t186, 1 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t188 -endif11445: +endif11850: %t189 = load i8, ptr %a5 %t190 = icmp eq i8 %t189, 110 - br i1 %t190, label %then11448, label %endif11450 -then11448: + br i1 %t190, label %then11853, label %endif11855 +then11853: %t191 = load ptr, ptr %a1 - %t192 = call { i1, i8, { ptr, i64, i64 } } @finch.json.expect_word(ptr %t191, { ptr, i64, i64 } { ptr @.str.7318, i64 4, i64 0 }) + %t192 = call { i1, i8, { ptr, i64, i64 } } @finch.json.expect_word(ptr %t191, { ptr, i64, i64 } { ptr @.str.7526, i64 4, i64 0 }) %t193 = extractvalue { i1, i8, { ptr, i64, i64 } } %t192, 0 %t194 = xor i1 %t193, true %t195 = extractvalue { i1, i8, { ptr, i64, i64 } } %t192, 2 - br i1 %t194, label %try.failed11451, label %try.ok11452 -try.failed11451: + br i1 %t194, label %try.failed11856, label %try.ok11857 +try.failed11856: %t196 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t195, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t196 -try.ok11452: +try.ok11857: %t197 = call %S.json.Json @finch.json.new_null() %t198 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 %t199 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t198, %S.json.Json %t197, 1 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t199 -endif11450: +endif11855: %t200 = load i8, ptr %a5 %t201 = icmp eq i8 %t200, 45 - br label %logic.from11453 -logic.from11453: - br i1 %t201, label %logic.end11455, label %logic.rhs11454 -logic.rhs11454: + br label %logic.from11858 +logic.from11858: + br i1 %t201, label %logic.end11860, label %logic.rhs11859 +logic.rhs11859: %t202 = load i8, ptr %a5 %t203 = icmp uge i8 %t202, 48 - br label %logic.from11456 -logic.from11456: - br i1 %t203, label %logic.rhs11457, label %logic.end11458 -logic.rhs11457: + br label %logic.from11861 +logic.from11861: + br i1 %t203, label %logic.rhs11862, label %logic.end11863 +logic.rhs11862: %t204 = load i8, ptr %a5 %t205 = icmp ule i8 %t204, 57 - br label %logic.rend11459 -logic.rend11459: - br label %logic.end11458 -logic.end11458: - %t206 = phi i1 [ false, %logic.from11456 ], [ %t205, %logic.rend11459 ] - br label %logic.rend11460 -logic.rend11460: - br label %logic.end11455 -logic.end11455: - %t207 = phi i1 [ true, %logic.from11453 ], [ %t206, %logic.rend11460 ] - br i1 %t207, label %then11461, label %endif11463 -then11461: + br label %logic.rend11864 +logic.rend11864: + br label %logic.end11863 +logic.end11863: + %t206 = phi i1 [ false, %logic.from11861 ], [ %t205, %logic.rend11864 ] + br label %logic.rend11865 +logic.rend11865: + br label %logic.end11860 +logic.end11860: + %t207 = phi i1 [ true, %logic.from11858 ], [ %t206, %logic.rend11865 ] + br i1 %t207, label %then11866, label %endif11868 +then11866: %t208 = load ptr, ptr %a1 %t209 = call { i1, %S.json.Json, { ptr, i64, i64 } } @finch.json.read_number(ptr %t208) %t210 = extractvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t209, 0 %t211 = xor i1 %t210, true %t212 = extractvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t209, 2 %t213 = extractvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t209, 1 - br i1 %t211, label %try.failed11464, label %try.ok11465 -try.failed11464: + br i1 %t211, label %try.failed11869, label %try.ok11870 +try.failed11869: %t214 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t212, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t214 -try.ok11465: +try.ok11870: %t215 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 %t216 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t215, %S.json.Json %t213, 1 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t216 -endif11463: +endif11868: %t217 = load ptr, ptr %a1 - %t218 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t217, { ptr, i64, i64 } { ptr @.str.7319, i64 7, i64 0 }) + %t218 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t217, { ptr, i64, i64 } { ptr @.str.7527, i64 7, i64 0 }) %t219 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t218, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t219 } @@ -113125,12 +117150,12 @@ entry: %t10 = xor i1 %t9, true %t11 = extractvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t8, 2 %t12 = extractvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t8, 1 - br i1 %t10, label %try.failed11466, label %try.ok11467 -try.failed11466: + br i1 %t10, label %try.failed11871, label %try.ok11872 +try.failed11871: call void @finch.drop.S_json_Reader(ptr %a7) %t13 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t11, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t13 -try.ok11467: +try.ok11872: store %S.json.Json %t12, ptr %a14 call void @finch.json.skip_space(ptr %a7) %t15 = getelementptr inbounds %S.json.Reader, ptr %a7, i32 0, i32 1 @@ -113139,14 +117164,14 @@ try.ok11467: %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %t17, i32 0, i32 1 %t19 = load i64, ptr %t18 %t20 = icmp slt i64 %t16, %t19 - br i1 %t20, label %then11468, label %endif11470 -then11468: - %t21 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %a7, { ptr, i64, i64 } { ptr @.str.7320, i64 19, i64 0 }) + br i1 %t20, label %then11873, label %endif11875 +then11873: + %t21 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %a7, { ptr, i64, i64 } { ptr @.str.7528, i64 19, i64 0 }) call void @finch.drop.S_json_Json(ptr %a14) call void @finch.drop.S_json_Reader(ptr %a7) %t22 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t21, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t22 -endif11470: +endif11875: %t23 = load %S.json.Json, ptr %a14 call void @finch.drop.S_json_Reader(ptr %a7) %t24 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 @@ -113164,7 +117189,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t4, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t5 = load ptr, ptr %a1 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i64 %t3 - store { ptr, i64, i64 } { ptr @.str.7321, i64 18, i64 0 }, ptr %t6 + store { ptr, i64, i64 } { ptr @.str.7529, i64 18, i64 0 }, ptr %t6 store i64 %t4, ptr %t2 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t8 = load i64, ptr %t7 @@ -113172,7 +117197,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t9, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t10 = load ptr, ptr %a1 %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %t10, i64 %t8 - store { ptr, i64, i64 } { ptr @.str.7322, i64 12, i64 0 }, ptr %t11 + store { ptr, i64, i64 } { ptr @.str.7530, i64 12, i64 0 }, ptr %t11 store i64 %t9, ptr %t7 %t12 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t13 = load i64, ptr %t12 @@ -113180,7 +117205,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t14, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t15 = load ptr, ptr %a1 %t16 = getelementptr inbounds { ptr, i64, i64 }, ptr %t15, i64 %t13 - store { ptr, i64, i64 } { ptr @.str.7323, i64 12, i64 0 }, ptr %t16 + store { ptr, i64, i64 } { ptr @.str.7531, i64 12, i64 0 }, ptr %t16 store i64 %t14, ptr %t12 %t17 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t18 = load i64, ptr %t17 @@ -113188,7 +117213,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t19, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t20 = load ptr, ptr %a1 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t20, i64 %t18 - store { ptr, i64, i64 } { ptr @.str.7324, i64 12, i64 0 }, ptr %t21 + store { ptr, i64, i64 } { ptr @.str.7532, i64 12, i64 0 }, ptr %t21 store i64 %t19, ptr %t17 %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t23 = load i64, ptr %t22 @@ -113196,7 +117221,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t24, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t25 = load ptr, ptr %a1 %t26 = getelementptr inbounds { ptr, i64, i64 }, ptr %t25, i64 %t23 - store { ptr, i64, i64 } { ptr @.str.7325, i64 20, i64 0 }, ptr %t26 + store { ptr, i64, i64 } { ptr @.str.7533, i64 20, i64 0 }, ptr %t26 store i64 %t24, ptr %t22 %t27 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t28 = load i64, ptr %t27 @@ -113204,7 +117229,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t29, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t30 = load ptr, ptr %a1 %t31 = getelementptr inbounds { ptr, i64, i64 }, ptr %t30, i64 %t28 - store { ptr, i64, i64 } { ptr @.str.7326, i64 12, i64 0 }, ptr %t31 + store { ptr, i64, i64 } { ptr @.str.7534, i64 12, i64 0 }, ptr %t31 store i64 %t29, ptr %t27 %t32 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t33 = load i64, ptr %t32 @@ -113212,7 +117237,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t34, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t35 = load ptr, ptr %a1 %t36 = getelementptr inbounds { ptr, i64, i64 }, ptr %t35, i64 %t33 - store { ptr, i64, i64 } { ptr @.str.7327, i64 20, i64 0 }, ptr %t36 + store { ptr, i64, i64 } { ptr @.str.7535, i64 20, i64 0 }, ptr %t36 store i64 %t34, ptr %t32 %t37 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t38 = load i64, ptr %t37 @@ -113220,7 +117245,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t39, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t40 = load ptr, ptr %a1 %t41 = getelementptr inbounds { ptr, i64, i64 }, ptr %t40, i64 %t38 - store { ptr, i64, i64 } { ptr @.str.7328, i64 15, i64 0 }, ptr %t41 + store { ptr, i64, i64 } { ptr @.str.7536, i64 15, i64 0 }, ptr %t41 store i64 %t39, ptr %t37 %t42 = load { ptr, i64, i64 }, ptr %a1 ret { ptr, i64, i64 } %t42 @@ -113236,7 +117261,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t4, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t5 = load ptr, ptr %a1 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i64 %t3 - store { ptr, i64, i64 } { ptr @.str.7329, i64 24981, i64 0 }, ptr %t6 + store { ptr, i64, i64 } { ptr @.str.7537, i64 24981, i64 0 }, ptr %t6 store i64 %t4, ptr %t2 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t8 = load i64, ptr %t7 @@ -113244,7 +117269,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t9, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t10 = load ptr, ptr %a1 %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %t10, i64 %t8 - store { ptr, i64, i64 } { ptr @.str.7330, i64 12884, i64 0 }, ptr %t11 + store { ptr, i64, i64 } { ptr @.str.7538, i64 12884, i64 0 }, ptr %t11 store i64 %t9, ptr %t7 %t12 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t13 = load i64, ptr %t12 @@ -113252,7 +117277,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t14, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t15 = load ptr, ptr %a1 %t16 = getelementptr inbounds { ptr, i64, i64 }, ptr %t15, i64 %t13 - store { ptr, i64, i64 } { ptr @.str.7331, i64 2846, i64 0 }, ptr %t16 + store { ptr, i64, i64 } { ptr @.str.7539, i64 2846, i64 0 }, ptr %t16 store i64 %t14, ptr %t12 %t17 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t18 = load i64, ptr %t17 @@ -113260,7 +117285,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t19, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t20 = load ptr, ptr %a1 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t20, i64 %t18 - store { ptr, i64, i64 } { ptr @.str.7332, i64 1406, i64 0 }, ptr %t21 + store { ptr, i64, i64 } { ptr @.str.7540, i64 1406, i64 0 }, ptr %t21 store i64 %t19, ptr %t17 %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t23 = load i64, ptr %t22 @@ -113268,7 +117293,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t24, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t25 = load ptr, ptr %a1 %t26 = getelementptr inbounds { ptr, i64, i64 }, ptr %t25, i64 %t23 - store { ptr, i64, i64 } { ptr @.str.7333, i64 995, i64 0 }, ptr %t26 + store { ptr, i64, i64 } { ptr @.str.7541, i64 995, i64 0 }, ptr %t26 store i64 %t24, ptr %t22 %t27 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t28 = load i64, ptr %t27 @@ -113276,7 +117301,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t29, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t30 = load ptr, ptr %a1 %t31 = getelementptr inbounds { ptr, i64, i64 }, ptr %t30, i64 %t28 - store { ptr, i64, i64 } { ptr @.str.7334, i64 2539, i64 0 }, ptr %t31 + store { ptr, i64, i64 } { ptr @.str.7542, i64 2539, i64 0 }, ptr %t31 store i64 %t29, ptr %t27 %t32 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t33 = load i64, ptr %t32 @@ -113284,7 +117309,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t34, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t35 = load ptr, ptr %a1 %t36 = getelementptr inbounds { ptr, i64, i64 }, ptr %t35, i64 %t33 - store { ptr, i64, i64 } { ptr @.str.7335, i64 1792, i64 0 }, ptr %t36 + store { ptr, i64, i64 } { ptr @.str.7543, i64 1792, i64 0 }, ptr %t36 store i64 %t34, ptr %t32 %t37 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t38 = load i64, ptr %t37 @@ -113292,7 +117317,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t39, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t40 = load ptr, ptr %a1 %t41 = getelementptr inbounds { ptr, i64, i64 }, ptr %t40, i64 %t38 - store { ptr, i64, i64 } { ptr @.str.7336, i64 365, i64 0 }, ptr %t41 + store { ptr, i64, i64 } { ptr @.str.7544, i64 365, i64 0 }, ptr %t41 store i64 %t39, ptr %t37 %t42 = load { ptr, i64, i64 }, ptr %a1 ret { ptr, i64, i64 } %t42 diff --git a/bootstrap/linux-x86_64.ll b/bootstrap/linux-x86_64.ll index d64e054..41ac288 100644 --- a/bootstrap/linux-x86_64.ll +++ b/bootstrap/linux-x86_64.ll @@ -14,6 +14,8 @@ %S.gen.Binds = type { { ptr, i64, i64 }, { ptr, i64, i64 } } %S.gen.EnumDef = type { { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 } } %S.gen.Cleanup = type { i1, i64 } +%S.gen.SumDef = type { { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 } } +%S.gen.SumPat = type { i64, { ptr, i64, i64 } } %S.gen.Scope = type { { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 } } %S.gen.Pending = type { { ptr, i64, i64 }, %S.ast.Type, i1 } %S.gen.Loop = type { { ptr, i64, i64 }, { ptr, i64, i64 }, i64, i64 } @@ -23,7 +25,7 @@ %S.gen.Place = type { { ptr, i64, i64 }, %S.ast.Type } %S.gen.Ref = type { i1, %S.gen.Place, %S.gen.Val } %S.cimport.CImports = type { { ptr, i64, i64, i64, ptr, i64, i64 }, { ptr, i64, i64, i64, ptr, i64, i64 }, { ptr, i64, i64, i64, ptr, i64, i64 }, { ptr, i64, i64, i64, ptr, i64, i64 }, { ptr, i64, i64 } } -%S.gen.Gen = type { { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, i64, i64, i64, i1, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, %S.gen.FnSig, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, i64, %S.cimport.CImports, i1, i1, { ptr, i64, i64 }, i1, %S.platform.Target, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64, i64, ptr, i64, i64 }, { ptr, i64, i64 }, i64, i64, i64, i64, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, i1, i64, i64 } +%S.gen.Gen = type { { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, i64, i64, i64, i1, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, %S.gen.FnSig, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, i64, %S.cimport.CImports, i1, i1, { ptr, i64, i64 }, i1, %S.platform.Target, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64, i64, ptr, i64, i64 }, { ptr, i64, i64 }, i64, i64, i64, i64, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, { ptr, i64, i64 }, i1, i64, i64 } %S.gen.Saved = type { { ptr, i64, i64 }, { ptr, i64, i64 }, i64, i1, i64 } %S.gen.SizeAlign = type { i64, i64 } %S.gen.Fallible = type { %S.gen.Val, { ptr, i64, i64 }, { ptr, i64, i64 } } @@ -875,6622 +877,6830 @@ declare ptr @getenv(ptr) @.str.768 = private unnamed_addr constant [8 x i8] c"variant\00" @.str.769 = private unnamed_addr constant [6 x i8] c"ident\00" @.str.770 = private unnamed_addr constant [25 x i8] c"a variant name, like Red\00" -@.str.771 = private unnamed_addr constant [2 x i8] c"=\00" -@.str.772 = private unnamed_addr constant [1 x i8] c"\00" -@.str.773 = private unnamed_addr constant [2 x i8] c"-\00" -@.str.774 = private unnamed_addr constant [2 x i8] c"-\00" -@.str.775 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.776 = private unnamed_addr constant [31 x i8] c"a whole number, like Ok = 200\00" -@.str.777 = private unnamed_addr constant [2 x i8] c",\00" -@.str.778 = private unnamed_addr constant [10 x i8] c"the enum \00" -@.str.779 = private unnamed_addr constant [17 x i8] c" has no variants\00" -@.str.780 = private unnamed_addr constant [6 x i8] c"match\00" -@.str.781 = private unnamed_addr constant [6 x i8] c"match\00" -@.str.782 = private unnamed_addr constant [8 x i8] c"'match'\00" -@.str.783 = private unnamed_addr constant [2 x i8] c"{\00" -@.str.784 = private unnamed_addr constant [4 x i8] c"'{'\00" -@.str.785 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.786 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.787 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.788 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.789 = private unnamed_addr constant [2 x i8] c"}\00" -@.str.790 = private unnamed_addr constant [4 x i8] c"eof\00" -@.str.791 = private unnamed_addr constant [38 x i8] c"a match is never closed (missing '}')\00" -@.str.792 = private unnamed_addr constant [4 x i8] c"arm\00" -@.str.793 = private unnamed_addr constant [9 x i8] c"patterns\00" -@.str.794 = private unnamed_addr constant [5 x i8] c"else\00" -@.str.795 = private unnamed_addr constant [2 x i8] c",\00" -@.str.796 = private unnamed_addr constant [3 x i8] c"->\00" -@.str.797 = private unnamed_addr constant [58 x i8] c"'->' after the value to match, like Red -> print(\22red\22)\00" -@.str.798 = private unnamed_addr constant [2 x i8] c"{\00" -@.str.799 = private unnamed_addr constant [2 x i8] c",\00" -@.str.800 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.801 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.802 = private unnamed_addr constant [31 x i8] c"a match needs at least one arm\00" -@.str.803 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.804 = private unnamed_addr constant [4 x i8] c"'['\00" -@.str.805 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.806 = private unnamed_addr constant [30 x i8] c"a type parameter name, like T\00" -@.str.807 = private unnamed_addr constant [2 x i8] c",\00" -@.str.808 = private unnamed_addr constant [2 x i8] c"]\00" -@.str.809 = private unnamed_addr constant [30 x i8] c"']' after the type parameters\00" -@.str.810 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.811 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.812 = private unnamed_addr constant [9 x i8] c"'struct'\00" -@.str.813 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.814 = private unnamed_addr constant [14 x i8] c"a struct name\00" -@.str.815 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.816 = private unnamed_addr constant [2 x i8] c"{\00" -@.str.817 = private unnamed_addr constant [4 x i8] c"'{'\00" -@.str.818 = private unnamed_addr constant [2 x i8] c"}\00" -@.str.819 = private unnamed_addr constant [4 x i8] c"eof\00" -@.str.820 = private unnamed_addr constant [39 x i8] c"a struct is never closed (missing '}')\00" -@.str.821 = private unnamed_addr constant [6 x i8] c"field\00" -@.str.822 = private unnamed_addr constant [12 x i8] c"unexpected \00" -@.str.823 = private unnamed_addr constant [29 x i8] c" (a field looks like: int x)\00" -@.str.824 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.825 = private unnamed_addr constant [13 x i8] c"a field name\00" -@.str.826 = private unnamed_addr constant [2 x i8] c"=\00" -@.str.827 = private unnamed_addr constant [3 x i8] c"fn\00" -@.str.828 = private unnamed_addr constant [7 x i8] c"export\00" -@.str.829 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.830 = private unnamed_addr constant [69 x i8] c"functions start with 'fn', like: fn add(int a, int b) -> int { ... }\00" -@.str.831 = private unnamed_addr constant [3 x i8] c"fn\00" -@.str.832 = private unnamed_addr constant [27 x i8] c"'fn', 'struct' or 'import'\00" +@.str.771 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.772 = private unnamed_addr constant [2 x i8] c")\00" +@.str.773 = private unnamed_addr constant [6 x i8] c"field\00" +@.str.774 = private unnamed_addr constant [2 x i8] c",\00" +@.str.775 = private unnamed_addr constant [2 x i8] c")\00" +@.str.776 = private unnamed_addr constant [36 x i8] c"')' after the values of the variant\00" +@.str.777 = private unnamed_addr constant [13 x i8] c"the variant \00" +@.str.778 = private unnamed_addr constant [28 x i8] c" has empty () : write just \00" +@.str.779 = private unnamed_addr constant [21 x i8] c" if it holds nothing\00" +@.str.780 = private unnamed_addr constant [2 x i8] c"=\00" +@.str.781 = private unnamed_addr constant [53 x i8] c"a variant can't have both values inside and a number\00" +@.str.782 = private unnamed_addr constant [1 x i8] c"\00" +@.str.783 = private unnamed_addr constant [2 x i8] c"-\00" +@.str.784 = private unnamed_addr constant [2 x i8] c"-\00" +@.str.785 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.786 = private unnamed_addr constant [31 x i8] c"a whole number, like Ok = 200\00" +@.str.787 = private unnamed_addr constant [2 x i8] c",\00" +@.str.788 = private unnamed_addr constant [10 x i8] c"the enum \00" +@.str.789 = private unnamed_addr constant [17 x i8] c" has no variants\00" +@.str.790 = private unnamed_addr constant [55 x i8] c"an enum whose variants hold values can't number them (\00" +@.str.791 = private unnamed_addr constant [4 x i8] c" = \00" +@.str.792 = private unnamed_addr constant [2 x i8] c")\00" +@.str.793 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.794 = private unnamed_addr constant [6 x i8] c"field\00" +@.str.795 = private unnamed_addr constant [4 x i8] c"tag\00" +@.str.796 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.797 = private unnamed_addr constant [6 x i8] c"field\00" +@.str.798 = private unnamed_addr constant [2 x i8] c"_\00" +@.str.799 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.800 = private unnamed_addr constant [6 x i8] c"match\00" +@.str.801 = private unnamed_addr constant [6 x i8] c"match\00" +@.str.802 = private unnamed_addr constant [8 x i8] c"'match'\00" +@.str.803 = private unnamed_addr constant [2 x i8] c"{\00" +@.str.804 = private unnamed_addr constant [4 x i8] c"'{'\00" +@.str.805 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.806 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.807 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.808 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.809 = private unnamed_addr constant [2 x i8] c"}\00" +@.str.810 = private unnamed_addr constant [4 x i8] c"eof\00" +@.str.811 = private unnamed_addr constant [38 x i8] c"a match is never closed (missing '}')\00" +@.str.812 = private unnamed_addr constant [4 x i8] c"arm\00" +@.str.813 = private unnamed_addr constant [9 x i8] c"patterns\00" +@.str.814 = private unnamed_addr constant [5 x i8] c"else\00" +@.str.815 = private unnamed_addr constant [2 x i8] c",\00" +@.str.816 = private unnamed_addr constant [3 x i8] c"->\00" +@.str.817 = private unnamed_addr constant [58 x i8] c"'->' after the value to match, like Red -> print(\22red\22)\00" +@.str.818 = private unnamed_addr constant [2 x i8] c"{\00" +@.str.819 = private unnamed_addr constant [2 x i8] c",\00" +@.str.820 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.821 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.822 = private unnamed_addr constant [31 x i8] c"a match needs at least one arm\00" +@.str.823 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.824 = private unnamed_addr constant [4 x i8] c"'['\00" +@.str.825 = private unnamed_addr constant [6 x i8] c"ident\00" +@.str.826 = private unnamed_addr constant [30 x i8] c"a type parameter name, like T\00" +@.str.827 = private unnamed_addr constant [2 x i8] c",\00" +@.str.828 = private unnamed_addr constant [2 x i8] c"]\00" +@.str.829 = private unnamed_addr constant [30 x i8] c"']' after the type parameters\00" +@.str.830 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.831 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.832 = private unnamed_addr constant [9 x i8] c"'struct'\00" @.str.833 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.834 = private unnamed_addr constant [16 x i8] c"a function name\00" +@.str.834 = private unnamed_addr constant [14 x i8] c"a struct name\00" @.str.835 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.836 = private unnamed_addr constant [2 x i8] c".\00" -@.str.837 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.838 = private unnamed_addr constant [14 x i8] c"a method name\00" -@.str.839 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.840 = private unnamed_addr constant [4 x i8] c"'('\00" -@.str.841 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.842 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.843 = private unnamed_addr constant [2 x i8] c")\00" -@.str.844 = private unnamed_addr constant [6 x i8] c"param\00" -@.str.845 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.846 = private unnamed_addr constant [17 x i8] c"a parameter name\00" -@.str.847 = private unnamed_addr constant [2 x i8] c",\00" -@.str.848 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.849 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.850 = private unnamed_addr constant [2 x i8] c")\00" -@.str.851 = private unnamed_addr constant [4 x i8] c"')'\00" -@.str.852 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.853 = private unnamed_addr constant [3 x i8] c"->\00" -@.str.854 = private unnamed_addr constant [2 x i8] c"!\00" -@.str.855 = private unnamed_addr constant [2 x i8] c"!\00" -@.str.856 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.857 = private unnamed_addr constant [12 x i8] c"unexpected \00" -@.str.858 = private unnamed_addr constant [62 x i8] c" (after '->' comes a type, or ! for a function that can fail)\00" -@.str.859 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.860 = private unnamed_addr constant [6 x i8] c"block\00" -@.str.861 = private unnamed_addr constant [2 x i8] c"{\00" -@.str.862 = private unnamed_addr constant [4 x i8] c"'{'\00" -@.str.863 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.864 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.865 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.866 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.867 = private unnamed_addr constant [2 x i8] c"}\00" -@.str.868 = private unnamed_addr constant [4 x i8] c"eof\00" -@.str.869 = private unnamed_addr constant [36 x i8] c"a '{' is never closed (missing '}')\00" -@.str.870 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.871 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.872 = private unnamed_addr constant [3 x i8] c"if\00" -@.str.873 = private unnamed_addr constant [6 x i8] c"while\00" -@.str.874 = private unnamed_addr constant [6 x i8] c"while\00" -@.str.875 = private unnamed_addr constant [4 x i8] c"for\00" -@.str.876 = private unnamed_addr constant [4 x i8] c"for\00" -@.str.877 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.878 = private unnamed_addr constant [21 x i8] c"a loop variable name\00" -@.str.879 = private unnamed_addr constant [2 x i8] c",\00" -@.str.880 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.881 = private unnamed_addr constant [28 x i8] c"a second loop variable name\00" -@.str.882 = private unnamed_addr constant [3 x i8] c"in\00" -@.str.883 = private unnamed_addr constant [5 x i8] c"'in'\00" -@.str.884 = private unnamed_addr constant [3 x i8] c"..\00" -@.str.885 = private unnamed_addr constant [56 x i8] c"a range of numbers has one loop variable: for i in 0..n\00" -@.str.886 = private unnamed_addr constant [5 x i8] c"each\00" -@.str.887 = private unnamed_addr constant [6 x i8] c"match\00" -@.str.888 = private unnamed_addr constant [7 x i8] c"return\00" -@.str.889 = private unnamed_addr constant [7 x i8] c"return\00" -@.str.890 = private unnamed_addr constant [2 x i8] c"}\00" -@.str.891 = private unnamed_addr constant [6 x i8] c"break\00" -@.str.892 = private unnamed_addr constant [9 x i8] c"continue\00" -@.str.893 = private unnamed_addr constant [2 x i8] c"{\00" -@.str.894 = private unnamed_addr constant [6 x i8] c"defer\00" -@.str.895 = private unnamed_addr constant [6 x i8] c"defer\00" -@.str.896 = private unnamed_addr constant [6 x i8] c"defer\00" -@.str.897 = private unnamed_addr constant [34 x i8] c"defer inside defer is not allowed\00" -@.str.898 = private unnamed_addr constant [3 x i8] c"fn\00" -@.str.899 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.900 = private unnamed_addr constant [7 x i8] c"import\00" -@.str.901 = private unnamed_addr constant [5 x i8] c"link\00" -@.str.902 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.903 = private unnamed_addr constant [49 x i8] c"' can't be used here in the self-hosted compiler\00" -@.str.904 = private unnamed_addr constant [5 x i8] c"decl\00" -@.str.905 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.906 = private unnamed_addr constant [16 x i8] c"a variable name\00" -@.str.907 = private unnamed_addr constant [2 x i8] c"=\00" -@.str.908 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.909 = private unnamed_addr constant [3 x i8] c":=\00" -@.str.910 = private unnamed_addr constant [5 x i8] c"decl\00" -@.str.911 = private unnamed_addr constant [2 x i8] c"=\00" -@.str.912 = private unnamed_addr constant [3 x i8] c"+=\00" -@.str.913 = private unnamed_addr constant [3 x i8] c"-=\00" -@.str.914 = private unnamed_addr constant [3 x i8] c"*=\00" -@.str.915 = private unnamed_addr constant [3 x i8] c"/=\00" -@.str.916 = private unnamed_addr constant [3 x i8] c"%=\00" -@.str.917 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.918 = private unnamed_addr constant [7 x i8] c"member\00" -@.str.919 = private unnamed_addr constant [6 x i8] c"index\00" -@.str.920 = private unnamed_addr constant [67 x i8] c"only a variable, a field, an element or p.value can be assigned to\00" -@.str.921 = private unnamed_addr constant [7 x i8] c"assign\00" -@.str.922 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.923 = private unnamed_addr constant [29 x i8] c"used .file on a null pointer\00" -@.str.924 = private unnamed_addr constant [5 x i8] c"call\00" -@.str.925 = private unnamed_addr constant [7 x i8] c"method\00" -@.str.926 = private unnamed_addr constant [4 x i8] c"try\00" -@.str.927 = private unnamed_addr constant [3 x i8] c"or\00" -@.str.928 = private unnamed_addr constant [38 x i8] c"this value is computed but never used\00" -@.str.929 = private unnamed_addr constant [5 x i8] c"expr\00" -@.str.930 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.931 = private unnamed_addr constant [29 x i8] c"used .file on a null pointer\00" -@.str.932 = private unnamed_addr constant [3 x i8] c"if\00" -@.str.933 = private unnamed_addr constant [3 x i8] c"if\00" -@.str.934 = private unnamed_addr constant [5 x i8] c"'if'\00" -@.str.935 = private unnamed_addr constant [5 x i8] c"else\00" -@.str.936 = private unnamed_addr constant [3 x i8] c"if\00" -@.str.937 = private unnamed_addr constant [3 x i8] c"||\00" -@.str.938 = private unnamed_addr constant [3 x i8] c"&&\00" -@.str.939 = private unnamed_addr constant [3 x i8] c"==\00" -@.str.940 = private unnamed_addr constant [3 x i8] c"!=\00" -@.str.941 = private unnamed_addr constant [2 x i8] c"<\00" -@.str.942 = private unnamed_addr constant [3 x i8] c"<=\00" -@.str.943 = private unnamed_addr constant [2 x i8] c">\00" -@.str.944 = private unnamed_addr constant [3 x i8] c">=\00" -@.str.945 = private unnamed_addr constant [2 x i8] c"+\00" -@.str.946 = private unnamed_addr constant [2 x i8] c"-\00" -@.str.947 = private unnamed_addr constant [2 x i8] c"|\00" -@.str.948 = private unnamed_addr constant [2 x i8] c"^\00" -@.str.949 = private unnamed_addr constant [2 x i8] c"*\00" -@.str.950 = private unnamed_addr constant [2 x i8] c"/\00" -@.str.951 = private unnamed_addr constant [2 x i8] c"%\00" -@.str.952 = private unnamed_addr constant [3 x i8] c"<<\00" -@.str.953 = private unnamed_addr constant [3 x i8] c">>\00" -@.str.954 = private unnamed_addr constant [2 x i8] c"&\00" -@.str.955 = private unnamed_addr constant [3 x i8] c"or\00" -@.str.956 = private unnamed_addr constant [3 x i8] c"or\00" -@.str.957 = private unnamed_addr constant [2 x i8] c"{\00" -@.str.958 = private unnamed_addr constant [7 x i8] c"binary\00" -@.str.959 = private unnamed_addr constant [4 x i8] c"try\00" -@.str.960 = private unnamed_addr constant [4 x i8] c"try\00" -@.str.961 = private unnamed_addr constant [2 x i8] c"-\00" -@.str.962 = private unnamed_addr constant [2 x i8] c"!\00" -@.str.963 = private unnamed_addr constant [2 x i8] c"~\00" -@.str.964 = private unnamed_addr constant [6 x i8] c"unary\00" -@.str.965 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.966 = private unnamed_addr constant [4 x i8] c"'('\00" -@.str.967 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.968 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.969 = private unnamed_addr constant [2 x i8] c")\00" -@.str.970 = private unnamed_addr constant [2 x i8] c")\00" -@.str.971 = private unnamed_addr constant [1 x i8] c"\00" -@.str.972 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.973 = private unnamed_addr constant [2 x i8] c":\00" -@.str.974 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.975 = private unnamed_addr constant [30 x i8] c"used .names on a null pointer\00" -@.str.976 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.977 = private unnamed_addr constant [29 x i8] c"used .kids on a null pointer\00" -@.str.978 = private unnamed_addr constant [2 x i8] c",\00" -@.str.979 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.980 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.981 = private unnamed_addr constant [2 x i8] c")\00" -@.str.982 = private unnamed_addr constant [4 x i8] c"')'\00" -@.str.983 = private unnamed_addr constant [2 x i8] c".\00" -@.str.984 = private unnamed_addr constant [7 x i8] c"member\00" -@.str.985 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.986 = private unnamed_addr constant [17 x i8] c"a name after '.'\00" -@.str.987 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.988 = private unnamed_addr constant [7 x i8] c"method\00" -@.str.989 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.990 = private unnamed_addr constant [6 x i8] c"index\00" -@.str.991 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.992 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.993 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.994 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.995 = private unnamed_addr constant [2 x i8] c"]\00" -@.str.996 = private unnamed_addr constant [4 x i8] c"']'\00" -@.str.997 = private unnamed_addr constant [1 x i8] c"\00" -@.str.998 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.999 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.1000 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.1001 = private unnamed_addr constant [7 x i8] c"string\00" -@.str.1002 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.1003 = private unnamed_addr constant [5 x i8] c"true\00" -@.str.1004 = private unnamed_addr constant [6 x i8] c"false\00" -@.str.1005 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.1006 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.1007 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.1008 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.1009 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.1010 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.836 = private unnamed_addr constant [2 x i8] c"{\00" +@.str.837 = private unnamed_addr constant [4 x i8] c"'{'\00" +@.str.838 = private unnamed_addr constant [2 x i8] c"}\00" +@.str.839 = private unnamed_addr constant [4 x i8] c"eof\00" +@.str.840 = private unnamed_addr constant [39 x i8] c"a struct is never closed (missing '}')\00" +@.str.841 = private unnamed_addr constant [6 x i8] c"field\00" +@.str.842 = private unnamed_addr constant [12 x i8] c"unexpected \00" +@.str.843 = private unnamed_addr constant [29 x i8] c" (a field looks like: int x)\00" +@.str.844 = private unnamed_addr constant [6 x i8] c"ident\00" +@.str.845 = private unnamed_addr constant [13 x i8] c"a field name\00" +@.str.846 = private unnamed_addr constant [2 x i8] c"=\00" +@.str.847 = private unnamed_addr constant [3 x i8] c"fn\00" +@.str.848 = private unnamed_addr constant [7 x i8] c"export\00" +@.str.849 = private unnamed_addr constant [6 x i8] c"ident\00" +@.str.850 = private unnamed_addr constant [69 x i8] c"functions start with 'fn', like: fn add(int a, int b) -> int { ... }\00" +@.str.851 = private unnamed_addr constant [3 x i8] c"fn\00" +@.str.852 = private unnamed_addr constant [27 x i8] c"'fn', 'struct' or 'import'\00" +@.str.853 = private unnamed_addr constant [6 x i8] c"ident\00" +@.str.854 = private unnamed_addr constant [16 x i8] c"a function name\00" +@.str.855 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.856 = private unnamed_addr constant [2 x i8] c".\00" +@.str.857 = private unnamed_addr constant [6 x i8] c"ident\00" +@.str.858 = private unnamed_addr constant [14 x i8] c"a method name\00" +@.str.859 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.860 = private unnamed_addr constant [4 x i8] c"'('\00" +@.str.861 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.862 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.863 = private unnamed_addr constant [2 x i8] c")\00" +@.str.864 = private unnamed_addr constant [6 x i8] c"param\00" +@.str.865 = private unnamed_addr constant [6 x i8] c"ident\00" +@.str.866 = private unnamed_addr constant [17 x i8] c"a parameter name\00" +@.str.867 = private unnamed_addr constant [2 x i8] c",\00" +@.str.868 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.869 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.870 = private unnamed_addr constant [2 x i8] c")\00" +@.str.871 = private unnamed_addr constant [4 x i8] c"')'\00" +@.str.872 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.873 = private unnamed_addr constant [3 x i8] c"->\00" +@.str.874 = private unnamed_addr constant [2 x i8] c"!\00" +@.str.875 = private unnamed_addr constant [2 x i8] c"!\00" +@.str.876 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.877 = private unnamed_addr constant [12 x i8] c"unexpected \00" +@.str.878 = private unnamed_addr constant [62 x i8] c" (after '->' comes a type, or ! for a function that can fail)\00" +@.str.879 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.880 = private unnamed_addr constant [6 x i8] c"block\00" +@.str.881 = private unnamed_addr constant [2 x i8] c"{\00" +@.str.882 = private unnamed_addr constant [4 x i8] c"'{'\00" +@.str.883 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.884 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.885 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.886 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.887 = private unnamed_addr constant [2 x i8] c"}\00" +@.str.888 = private unnamed_addr constant [4 x i8] c"eof\00" +@.str.889 = private unnamed_addr constant [36 x i8] c"a '{' is never closed (missing '}')\00" +@.str.890 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.891 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.892 = private unnamed_addr constant [3 x i8] c"if\00" +@.str.893 = private unnamed_addr constant [6 x i8] c"while\00" +@.str.894 = private unnamed_addr constant [6 x i8] c"while\00" +@.str.895 = private unnamed_addr constant [4 x i8] c"for\00" +@.str.896 = private unnamed_addr constant [4 x i8] c"for\00" +@.str.897 = private unnamed_addr constant [6 x i8] c"ident\00" +@.str.898 = private unnamed_addr constant [21 x i8] c"a loop variable name\00" +@.str.899 = private unnamed_addr constant [2 x i8] c",\00" +@.str.900 = private unnamed_addr constant [6 x i8] c"ident\00" +@.str.901 = private unnamed_addr constant [28 x i8] c"a second loop variable name\00" +@.str.902 = private unnamed_addr constant [3 x i8] c"in\00" +@.str.903 = private unnamed_addr constant [5 x i8] c"'in'\00" +@.str.904 = private unnamed_addr constant [3 x i8] c"..\00" +@.str.905 = private unnamed_addr constant [56 x i8] c"a range of numbers has one loop variable: for i in 0..n\00" +@.str.906 = private unnamed_addr constant [5 x i8] c"each\00" +@.str.907 = private unnamed_addr constant [6 x i8] c"match\00" +@.str.908 = private unnamed_addr constant [7 x i8] c"return\00" +@.str.909 = private unnamed_addr constant [7 x i8] c"return\00" +@.str.910 = private unnamed_addr constant [2 x i8] c"}\00" +@.str.911 = private unnamed_addr constant [6 x i8] c"break\00" +@.str.912 = private unnamed_addr constant [9 x i8] c"continue\00" +@.str.913 = private unnamed_addr constant [2 x i8] c"{\00" +@.str.914 = private unnamed_addr constant [6 x i8] c"defer\00" +@.str.915 = private unnamed_addr constant [6 x i8] c"defer\00" +@.str.916 = private unnamed_addr constant [6 x i8] c"defer\00" +@.str.917 = private unnamed_addr constant [34 x i8] c"defer inside defer is not allowed\00" +@.str.918 = private unnamed_addr constant [3 x i8] c"fn\00" +@.str.919 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.920 = private unnamed_addr constant [7 x i8] c"import\00" +@.str.921 = private unnamed_addr constant [5 x i8] c"link\00" +@.str.922 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.923 = private unnamed_addr constant [49 x i8] c"' can't be used here in the self-hosted compiler\00" +@.str.924 = private unnamed_addr constant [5 x i8] c"decl\00" +@.str.925 = private unnamed_addr constant [6 x i8] c"ident\00" +@.str.926 = private unnamed_addr constant [16 x i8] c"a variable name\00" +@.str.927 = private unnamed_addr constant [2 x i8] c"=\00" +@.str.928 = private unnamed_addr constant [6 x i8] c"ident\00" +@.str.929 = private unnamed_addr constant [3 x i8] c":=\00" +@.str.930 = private unnamed_addr constant [5 x i8] c"decl\00" +@.str.931 = private unnamed_addr constant [2 x i8] c"=\00" +@.str.932 = private unnamed_addr constant [3 x i8] c"+=\00" +@.str.933 = private unnamed_addr constant [3 x i8] c"-=\00" +@.str.934 = private unnamed_addr constant [3 x i8] c"*=\00" +@.str.935 = private unnamed_addr constant [3 x i8] c"/=\00" +@.str.936 = private unnamed_addr constant [3 x i8] c"%=\00" +@.str.937 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.938 = private unnamed_addr constant [7 x i8] c"member\00" +@.str.939 = private unnamed_addr constant [6 x i8] c"index\00" +@.str.940 = private unnamed_addr constant [67 x i8] c"only a variable, a field, an element or p.value can be assigned to\00" +@.str.941 = private unnamed_addr constant [7 x i8] c"assign\00" +@.str.942 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.943 = private unnamed_addr constant [29 x i8] c"used .file on a null pointer\00" +@.str.944 = private unnamed_addr constant [5 x i8] c"call\00" +@.str.945 = private unnamed_addr constant [7 x i8] c"method\00" +@.str.946 = private unnamed_addr constant [4 x i8] c"try\00" +@.str.947 = private unnamed_addr constant [3 x i8] c"or\00" +@.str.948 = private unnamed_addr constant [38 x i8] c"this value is computed but never used\00" +@.str.949 = private unnamed_addr constant [5 x i8] c"expr\00" +@.str.950 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.951 = private unnamed_addr constant [29 x i8] c"used .file on a null pointer\00" +@.str.952 = private unnamed_addr constant [3 x i8] c"if\00" +@.str.953 = private unnamed_addr constant [3 x i8] c"if\00" +@.str.954 = private unnamed_addr constant [5 x i8] c"'if'\00" +@.str.955 = private unnamed_addr constant [5 x i8] c"else\00" +@.str.956 = private unnamed_addr constant [3 x i8] c"if\00" +@.str.957 = private unnamed_addr constant [3 x i8] c"||\00" +@.str.958 = private unnamed_addr constant [3 x i8] c"&&\00" +@.str.959 = private unnamed_addr constant [3 x i8] c"==\00" +@.str.960 = private unnamed_addr constant [3 x i8] c"!=\00" +@.str.961 = private unnamed_addr constant [2 x i8] c"<\00" +@.str.962 = private unnamed_addr constant [3 x i8] c"<=\00" +@.str.963 = private unnamed_addr constant [2 x i8] c">\00" +@.str.964 = private unnamed_addr constant [3 x i8] c">=\00" +@.str.965 = private unnamed_addr constant [2 x i8] c"+\00" +@.str.966 = private unnamed_addr constant [2 x i8] c"-\00" +@.str.967 = private unnamed_addr constant [2 x i8] c"|\00" +@.str.968 = private unnamed_addr constant [2 x i8] c"^\00" +@.str.969 = private unnamed_addr constant [2 x i8] c"*\00" +@.str.970 = private unnamed_addr constant [2 x i8] c"/\00" +@.str.971 = private unnamed_addr constant [2 x i8] c"%\00" +@.str.972 = private unnamed_addr constant [3 x i8] c"<<\00" +@.str.973 = private unnamed_addr constant [3 x i8] c">>\00" +@.str.974 = private unnamed_addr constant [2 x i8] c"&\00" +@.str.975 = private unnamed_addr constant [3 x i8] c"or\00" +@.str.976 = private unnamed_addr constant [3 x i8] c"or\00" +@.str.977 = private unnamed_addr constant [2 x i8] c"{\00" +@.str.978 = private unnamed_addr constant [7 x i8] c"binary\00" +@.str.979 = private unnamed_addr constant [4 x i8] c"try\00" +@.str.980 = private unnamed_addr constant [4 x i8] c"try\00" +@.str.981 = private unnamed_addr constant [2 x i8] c"-\00" +@.str.982 = private unnamed_addr constant [2 x i8] c"!\00" +@.str.983 = private unnamed_addr constant [2 x i8] c"~\00" +@.str.984 = private unnamed_addr constant [6 x i8] c"unary\00" +@.str.985 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.986 = private unnamed_addr constant [4 x i8] c"'('\00" +@.str.987 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.988 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.989 = private unnamed_addr constant [2 x i8] c")\00" +@.str.990 = private unnamed_addr constant [2 x i8] c")\00" +@.str.991 = private unnamed_addr constant [1 x i8] c"\00" +@.str.992 = private unnamed_addr constant [6 x i8] c"ident\00" +@.str.993 = private unnamed_addr constant [2 x i8] c":\00" +@.str.994 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.995 = private unnamed_addr constant [30 x i8] c"used .names on a null pointer\00" +@.str.996 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.997 = private unnamed_addr constant [29 x i8] c"used .kids on a null pointer\00" +@.str.998 = private unnamed_addr constant [2 x i8] c",\00" +@.str.999 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.1000 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.1001 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1002 = private unnamed_addr constant [4 x i8] c"')'\00" +@.str.1003 = private unnamed_addr constant [2 x i8] c".\00" +@.str.1004 = private unnamed_addr constant [7 x i8] c"member\00" +@.str.1005 = private unnamed_addr constant [6 x i8] c"ident\00" +@.str.1006 = private unnamed_addr constant [17 x i8] c"a name after '.'\00" +@.str.1007 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.1008 = private unnamed_addr constant [7 x i8] c"method\00" +@.str.1009 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.1010 = private unnamed_addr constant [6 x i8] c"index\00" @.str.1011 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" @.str.1012 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.1013 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1014 = private unnamed_addr constant [4 x i8] c"')'\00" -@.str.1015 = private unnamed_addr constant [6 x i8] c"match\00" -@.str.1016 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.1017 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.1018 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.1019 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.1020 = private unnamed_addr constant [2 x i8] c":\00" -@.str.1021 = private unnamed_addr constant [2 x i8] c"]\00" -@.str.1022 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.1023 = private unnamed_addr constant [2 x i8] c"]\00" -@.str.1024 = private unnamed_addr constant [2 x i8] c":\00" -@.str.1025 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.1026 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.1027 = private unnamed_addr constant [2 x i8] c":\00" -@.str.1028 = private unnamed_addr constant [42 x i8] c"':' (a map entry looks like \22key\22: value)\00" -@.str.1029 = private unnamed_addr constant [2 x i8] c",\00" -@.str.1030 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.1031 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" -@.str.1032 = private unnamed_addr constant [2 x i8] c"]\00" -@.str.1033 = private unnamed_addr constant [4 x i8] c"']'\00" -@.str.1034 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.1035 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.1036 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.1037 = private unnamed_addr constant [29 x i8] c"used .toks on a null pointer\00" +@.str.1013 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.1014 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.1015 = private unnamed_addr constant [2 x i8] c"]\00" +@.str.1016 = private unnamed_addr constant [4 x i8] c"']'\00" +@.str.1017 = private unnamed_addr constant [1 x i8] c"\00" +@.str.1018 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.1019 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.1020 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.1021 = private unnamed_addr constant [7 x i8] c"string\00" +@.str.1022 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.1023 = private unnamed_addr constant [5 x i8] c"true\00" +@.str.1024 = private unnamed_addr constant [6 x i8] c"false\00" +@.str.1025 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.1026 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.1027 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.1028 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.1029 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.1030 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.1031 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.1032 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.1033 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1034 = private unnamed_addr constant [4 x i8] c"')'\00" +@.str.1035 = private unnamed_addr constant [6 x i8] c"match\00" +@.str.1036 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.1037 = private unnamed_addr constant [6 x i8] c"array\00" @.str.1038 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.1039 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.1040 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" -@.str.1041 = private unnamed_addr constant [6 x i8] c"ident\00" -@.str.1042 = private unnamed_addr constant [6 x i8] c"targs\00" -@.str.1043 = private unnamed_addr constant [2 x i8] c",\00" -@.str.1044 = private unnamed_addr constant [2 x i8] c"]\00" -@.str.1045 = private unnamed_addr constant [29 x i8] c"']' after the type arguments\00" -@.str.1046 = private unnamed_addr constant [5 x i8] c"call\00" -@.str.1047 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.1048 = private unnamed_addr constant [5 x i8] c"call\00" -@.str.1049 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.1050 = private unnamed_addr constant [12 x i8] c"unexpected \00" -@.str.1051 = private unnamed_addr constant [20 x i8] c" (expected a value)\00" -@.str.1052 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1053 = private unnamed_addr constant [2 x i8] c"\5C\00" -@.str.1054 = private unnamed_addr constant [3 x i8] c"\5C\5C\00" -@.str.1055 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1056 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.1057 = private unnamed_addr constant [3 x i8] c"\5Cn\00" -@.str.1058 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1059 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1060 = private unnamed_addr constant [2 x i8] c" \00" -@.str.1061 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1062 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" -@.str.1063 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1064 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" -@.str.1065 = private unnamed_addr constant [4 x i8] c"@R\09\00" -@.str.1066 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1067 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" -@.str.1068 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1069 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1070 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1071 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1072 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1073 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1074 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1075 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1076 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1077 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1039 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.1040 = private unnamed_addr constant [2 x i8] c":\00" +@.str.1041 = private unnamed_addr constant [2 x i8] c"]\00" +@.str.1042 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.1043 = private unnamed_addr constant [2 x i8] c"]\00" +@.str.1044 = private unnamed_addr constant [2 x i8] c":\00" +@.str.1045 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.1046 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.1047 = private unnamed_addr constant [2 x i8] c":\00" +@.str.1048 = private unnamed_addr constant [42 x i8] c"':' (a map entry looks like \22key\22: value)\00" +@.str.1049 = private unnamed_addr constant [2 x i8] c",\00" +@.str.1050 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.1051 = private unnamed_addr constant [30 x i8] c"used .depth on a null pointer\00" +@.str.1052 = private unnamed_addr constant [2 x i8] c"]\00" +@.str.1053 = private unnamed_addr constant [4 x i8] c"']'\00" +@.str.1054 = private unnamed_addr constant [6 x i8] c"ident\00" +@.str.1055 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.1056 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.1057 = private unnamed_addr constant [29 x i8] c"used .toks on a null pointer\00" +@.str.1058 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.1059 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.1060 = private unnamed_addr constant [15 x i8] c"src/parser.fch\00" +@.str.1061 = private unnamed_addr constant [6 x i8] c"ident\00" +@.str.1062 = private unnamed_addr constant [6 x i8] c"targs\00" +@.str.1063 = private unnamed_addr constant [2 x i8] c",\00" +@.str.1064 = private unnamed_addr constant [2 x i8] c"]\00" +@.str.1065 = private unnamed_addr constant [29 x i8] c"']' after the type arguments\00" +@.str.1066 = private unnamed_addr constant [5 x i8] c"call\00" +@.str.1067 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.1068 = private unnamed_addr constant [5 x i8] c"call\00" +@.str.1069 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.1070 = private unnamed_addr constant [12 x i8] c"unexpected \00" +@.str.1071 = private unnamed_addr constant [20 x i8] c" (expected a value)\00" +@.str.1072 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1073 = private unnamed_addr constant [2 x i8] c"\5C\00" +@.str.1074 = private unnamed_addr constant [3 x i8] c"\5C\5C\00" +@.str.1075 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1076 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.1077 = private unnamed_addr constant [3 x i8] c"\5Cn\00" @.str.1078 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1079 = private unnamed_addr constant [2 x i8] c".\00" -@.str.1080 = private unnamed_addr constant [4 x i8] c"fn \00" -@.str.1081 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.1082 = private unnamed_addr constant [3 x i8] c", \00" -@.str.1083 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1084 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.1085 = private unnamed_addr constant [6 x i8] c" -> !\00" -@.str.1086 = private unnamed_addr constant [5 x i8] c" -> \00" -@.str.1087 = private unnamed_addr constant [2 x i8] c"!\00" -@.str.1088 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.1089 = private unnamed_addr constant [5 x i8] c" -> \00" -@.str.1090 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1091 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" -@.str.1092 = private unnamed_addr constant [7 x i8] c"method\00" -@.str.1093 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1094 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.1095 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1079 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1080 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1081 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1082 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" +@.str.1083 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1084 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" +@.str.1085 = private unnamed_addr constant [4 x i8] c"@R\09\00" +@.str.1086 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1087 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.1088 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1089 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1090 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1091 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1092 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1093 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1094 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1095 = private unnamed_addr constant [2 x i8] c"\09\00" @.str.1096 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1097 = private unnamed_addr constant [10 x i8] c"```finch\0A\00" -@.str.1098 = private unnamed_addr constant [5 x i8] c"\0A```\00" -@.str.1099 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1100 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" -@.str.1101 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1102 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1103 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" -@.str.1104 = private unnamed_addr constant [4 x i8] c"@I\09\00" -@.str.1105 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1106 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.1107 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1108 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.1109 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1097 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1098 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1099 = private unnamed_addr constant [2 x i8] c".\00" +@.str.1100 = private unnamed_addr constant [4 x i8] c"fn \00" +@.str.1101 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.1102 = private unnamed_addr constant [3 x i8] c", \00" +@.str.1103 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1104 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.1105 = private unnamed_addr constant [6 x i8] c" -> !\00" +@.str.1106 = private unnamed_addr constant [5 x i8] c" -> \00" +@.str.1107 = private unnamed_addr constant [2 x i8] c"!\00" +@.str.1108 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.1109 = private unnamed_addr constant [5 x i8] c" -> \00" @.str.1110 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1111 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1112 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1111 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" +@.str.1112 = private unnamed_addr constant [7 x i8] c"method\00" @.str.1113 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1114 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1115 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" -@.str.1116 = private unnamed_addr constant [4 x i8] c"@F\09\00" -@.str.1117 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1118 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1119 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1120 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1121 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.1114 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.1115 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1116 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1117 = private unnamed_addr constant [10 x i8] c"```finch\0A\00" +@.str.1118 = private unnamed_addr constant [5 x i8] c"\0A```\00" +@.str.1119 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1120 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.1121 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.1122 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1123 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1124 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1125 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1126 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1127 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1128 = private unnamed_addr constant [2 x i8] c"|\00" +@.str.1123 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" +@.str.1124 = private unnamed_addr constant [4 x i8] c"@I\09\00" +@.str.1125 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1126 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.1127 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1128 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.1129 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1130 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" +@.str.1130 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.1131 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1132 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.1132 = private unnamed_addr constant [2 x i8] c" \00" @.str.1133 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.1134 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1135 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1136 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" -@.str.1137 = private unnamed_addr constant [4 x i8] c"@F\09\00" +@.str.1135 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" +@.str.1136 = private unnamed_addr constant [4 x i8] c"@F\09\00" +@.str.1137 = private unnamed_addr constant [2 x i8] c"\09\00" @.str.1138 = private unnamed_addr constant [2 x i8] c"\09\00" @.str.1139 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1140 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1141 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1142 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" -@.str.1143 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1140 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1141 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.1142 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1143 = private unnamed_addr constant [2 x i8] c"\09\00" @.str.1144 = private unnamed_addr constant [2 x i8] c"\09\00" @.str.1145 = private unnamed_addr constant [2 x i8] c"\09\00" @.str.1146 = private unnamed_addr constant [2 x i8] c"\09\00" @.str.1147 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1148 = private unnamed_addr constant [4 x i8] c"fn \00" -@.str.1149 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.1150 = private unnamed_addr constant [3 x i8] c", \00" -@.str.1151 = private unnamed_addr constant [7 x i8] c"](...)\00" -@.str.1152 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1148 = private unnamed_addr constant [2 x i8] c"|\00" +@.str.1149 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1150 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" +@.str.1151 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1152 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.1153 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1154 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.1154 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.1155 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1156 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.1157 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1158 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1159 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1160 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" -@.str.1161 = private unnamed_addr constant [4 x i8] c"@S\09\00" -@.str.1162 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1163 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1164 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1165 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" -@.str.1166 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1156 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" +@.str.1157 = private unnamed_addr constant [4 x i8] c"@F\09\00" +@.str.1158 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1159 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1160 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1161 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1162 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.1163 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1164 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1165 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1166 = private unnamed_addr constant [2 x i8] c"\09\00" @.str.1167 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1168 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1169 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1170 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" -@.str.1171 = private unnamed_addr constant [5 x i8] c"@SF\09\00" +@.str.1168 = private unnamed_addr constant [4 x i8] c"fn \00" +@.str.1169 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.1170 = private unnamed_addr constant [3 x i8] c", \00" +@.str.1171 = private unnamed_addr constant [7 x i8] c"](...)\00" @.str.1172 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1173 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1174 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1175 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1176 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1173 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1174 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.1175 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1176 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.1177 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1178 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.1178 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.1179 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1180 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.1181 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1182 = private unnamed_addr constant [1 x i8] c"\00" -@.str.1183 = private unnamed_addr constant [2 x i8] c",\00" +@.str.1180 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" +@.str.1181 = private unnamed_addr constant [4 x i8] c"@S\09\00" +@.str.1182 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1183 = private unnamed_addr constant [2 x i8] c"\09\00" @.str.1184 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1185 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" -@.str.1186 = private unnamed_addr constant [4 x i8] c"@E\09\00" -@.str.1187 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1188 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.1185 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.1186 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1187 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1188 = private unnamed_addr constant [2 x i8] c"\09\00" @.str.1189 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1190 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1191 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1192 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1193 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.1190 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" +@.str.1191 = private unnamed_addr constant [5 x i8] c"@SF\09\00" +@.str.1192 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1193 = private unnamed_addr constant [2 x i8] c"\09\00" @.str.1194 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.1195 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1196 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1197 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.1198 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1199 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" -@.str.1200 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1201 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" -@.str.1202 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1203 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" -@.str.1204 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.1205 = private unnamed_addr constant [1 x i8] c"\00" -@.str.1206 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.1207 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.1208 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1209 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" -@.str.1210 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1211 = private unnamed_addr constant [2 x i8] c":\00" -@.str.1212 = private unnamed_addr constant [2 x i8] c":\00" -@.str.1213 = private unnamed_addr constant [10 x i8] c": error: \00" +@.str.1196 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1197 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1198 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.1199 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1200 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.1201 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1202 = private unnamed_addr constant [1 x i8] c"\00" +@.str.1203 = private unnamed_addr constant [2 x i8] c",\00" +@.str.1204 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1205 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" +@.str.1206 = private unnamed_addr constant [4 x i8] c"@E\09\00" +@.str.1207 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1208 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.1209 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1210 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1211 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1212 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1213 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" @.str.1214 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1215 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" -@.str.1216 = private unnamed_addr constant [1 x i8] c"\00" -@.str.1217 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.1218 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.1219 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1220 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" -@.str.1221 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1222 = private unnamed_addr constant [6 x i8] c"call \00" -@.str.1223 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1224 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" -@.str.1225 = private unnamed_addr constant [3 x i8] c" \00" -@.str.1226 = private unnamed_addr constant [9 x i8] c", !dbg !\00" -@.str.1227 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1228 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" -@.str.1229 = private unnamed_addr constant [3 x i8] c" \00" +@.str.1215 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1216 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1217 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.1218 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1219 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" +@.str.1220 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1221 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" +@.str.1222 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1223 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" +@.str.1224 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.1225 = private unnamed_addr constant [1 x i8] c"\00" +@.str.1226 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.1227 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.1228 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1229 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" @.str.1230 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1231 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" -@.str.1232 = private unnamed_addr constant [3 x i8] c"%t\00" -@.str.1233 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1234 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" -@.str.1235 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1236 = private unnamed_addr constant [28 x i8] c"used .lbl on a null pointer\00" -@.str.1237 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1238 = private unnamed_addr constant [28 x i8] c"used .lbl on a null pointer\00" +@.str.1231 = private unnamed_addr constant [2 x i8] c":\00" +@.str.1232 = private unnamed_addr constant [2 x i8] c":\00" +@.str.1233 = private unnamed_addr constant [10 x i8] c": error: \00" +@.str.1234 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1235 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" +@.str.1236 = private unnamed_addr constant [1 x i8] c"\00" +@.str.1237 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.1238 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str.1239 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1240 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" -@.str.1241 = private unnamed_addr constant [2 x i8] c":\00" -@.str.1242 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1243 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.1244 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1245 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.1246 = private unnamed_addr constant [11 x i8] c"br label %\00" +@.str.1240 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" +@.str.1241 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1242 = private unnamed_addr constant [6 x i8] c"call \00" +@.str.1243 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1244 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" +@.str.1245 = private unnamed_addr constant [3 x i8] c" \00" +@.str.1246 = private unnamed_addr constant [9 x i8] c", !dbg !\00" @.str.1247 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1248 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.1249 = private unnamed_addr constant [7 x i8] c"br i1 \00" -@.str.1250 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str.1251 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str.1252 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1253 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.1254 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1255 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" -@.str.1256 = private unnamed_addr constant [3 x i8] c"%a\00" +@.str.1248 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" +@.str.1249 = private unnamed_addr constant [3 x i8] c" \00" +@.str.1250 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1251 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" +@.str.1252 = private unnamed_addr constant [3 x i8] c"%t\00" +@.str.1253 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1254 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" +@.str.1255 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1256 = private unnamed_addr constant [28 x i8] c"used .lbl on a null pointer\00" @.str.1257 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1258 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" +@.str.1258 = private unnamed_addr constant [28 x i8] c"used .lbl on a null pointer\00" @.str.1259 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1260 = private unnamed_addr constant [32 x i8] c"used .allocas on a null pointer\00" -@.str.1261 = private unnamed_addr constant [3 x i8] c" \00" -@.str.1262 = private unnamed_addr constant [11 x i8] c" = alloca \00" -@.str.1263 = private unnamed_addr constant [11 x i8] c", align 16\00" -@.str.1264 = private unnamed_addr constant [9 x i8] c" = load \00" -@.str.1265 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1266 = private unnamed_addr constant [7 x i8] c"store \00" -@.str.1267 = private unnamed_addr constant [2 x i8] c" \00" -@.str.1268 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1269 = private unnamed_addr constant [4 x i8] c" = \00" -@.str.1270 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.1271 = private unnamed_addr constant [3 x i8] c"i8\00" -@.str.1272 = private unnamed_addr constant [4 x i8] c"i16\00" -@.str.1273 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.1274 = private unnamed_addr constant [3 x i8] c"u8\00" -@.str.1275 = private unnamed_addr constant [4 x i8] c"u16\00" -@.str.1276 = private unnamed_addr constant [4 x i8] c"u32\00" -@.str.1277 = private unnamed_addr constant [4 x i8] c"u64\00" -@.str.1278 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.1279 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.1280 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.1281 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.1282 = private unnamed_addr constant [3 x i8] c"i8\00" -@.str.1283 = private unnamed_addr constant [3 x i8] c"u8\00" -@.str.1284 = private unnamed_addr constant [4 x i8] c"i16\00" -@.str.1285 = private unnamed_addr constant [4 x i8] c"u16\00" -@.str.1286 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.1287 = private unnamed_addr constant [4 x i8] c"u32\00" -@.str.1288 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.1289 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1290 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1291 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.1292 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1293 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.1294 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1295 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1296 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.1297 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1298 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1299 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" -@.str.1300 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1301 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" -@.str.1302 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1303 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1304 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" -@.str.1305 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1306 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1307 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.1308 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1309 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.1260 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" +@.str.1261 = private unnamed_addr constant [2 x i8] c":\00" +@.str.1262 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1263 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.1264 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1265 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.1266 = private unnamed_addr constant [11 x i8] c"br label %\00" +@.str.1267 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1268 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.1269 = private unnamed_addr constant [7 x i8] c"br i1 \00" +@.str.1270 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str.1271 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str.1272 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1273 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.1274 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1275 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" +@.str.1276 = private unnamed_addr constant [3 x i8] c"%a\00" +@.str.1277 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1278 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" +@.str.1279 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1280 = private unnamed_addr constant [32 x i8] c"used .allocas on a null pointer\00" +@.str.1281 = private unnamed_addr constant [3 x i8] c" \00" +@.str.1282 = private unnamed_addr constant [11 x i8] c" = alloca \00" +@.str.1283 = private unnamed_addr constant [11 x i8] c", align 16\00" +@.str.1284 = private unnamed_addr constant [9 x i8] c" = load \00" +@.str.1285 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1286 = private unnamed_addr constant [7 x i8] c"store \00" +@.str.1287 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1288 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1289 = private unnamed_addr constant [4 x i8] c" = \00" +@.str.1290 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.1291 = private unnamed_addr constant [3 x i8] c"i8\00" +@.str.1292 = private unnamed_addr constant [4 x i8] c"i16\00" +@.str.1293 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.1294 = private unnamed_addr constant [3 x i8] c"u8\00" +@.str.1295 = private unnamed_addr constant [4 x i8] c"u16\00" +@.str.1296 = private unnamed_addr constant [4 x i8] c"u32\00" +@.str.1297 = private unnamed_addr constant [4 x i8] c"u64\00" +@.str.1298 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.1299 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.1300 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.1301 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.1302 = private unnamed_addr constant [3 x i8] c"i8\00" +@.str.1303 = private unnamed_addr constant [3 x i8] c"u8\00" +@.str.1304 = private unnamed_addr constant [4 x i8] c"i16\00" +@.str.1305 = private unnamed_addr constant [4 x i8] c"u16\00" +@.str.1306 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.1307 = private unnamed_addr constant [4 x i8] c"u32\00" +@.str.1308 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.1309 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.1310 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1311 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1312 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.1313 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1314 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.1311 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.1312 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1313 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.1314 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.1315 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1316 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.1316 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.1317 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1318 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.1319 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1320 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.1321 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.1322 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.1323 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.1324 = private unnamed_addr constant [64 x i8] c"a map key must be a whole number, a char, a bool or a str, not \00" +@.str.1318 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1319 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" +@.str.1320 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1321 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" +@.str.1322 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1323 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1324 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" @.str.1325 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1326 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.1327 = private unnamed_addr constant [42 x i8] c"a map value can't have the type 'nothing'\00" -@.str.1328 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str.1329 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str.1326 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1327 = private unnamed_addr constant [29 x i8] c"used .sums on a null pointer\00" +@.str.1328 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1329 = private unnamed_addr constant [29 x i8] c"used .sums on a null pointer\00" @.str.1330 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1331 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.1332 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1333 = private unnamed_addr constant [6 x i8] c"named\00" +@.str.1331 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1332 = private unnamed_addr constant [29 x i8] c"used .sums on a null pointer\00" +@.str.1333 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.1334 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1335 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" +@.str.1335 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.1336 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1337 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" +@.str.1337 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.1338 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1339 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" -@.str.1340 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1339 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1340 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.1341 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.1342 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.1343 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.1344 = private unnamed_addr constant [37 x i8] c"' is not imported here (add: import \00" -@.str.1345 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1346 = private unnamed_addr constant [2 x i8] c"C\00" -@.str.1347 = private unnamed_addr constant [2 x i8] c"C\00" -@.str.1348 = private unnamed_addr constant [29 x i8] c"there is no C struct named '\00" -@.str.1349 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.1350 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.1351 = private unnamed_addr constant [2 x i8] c"C\00" -@.str.1352 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1353 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.1354 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.1355 = private unnamed_addr constant [37 x i8] c"' is not imported here (add: import \00" -@.str.1356 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1357 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.1358 = private unnamed_addr constant [2 x i8] c"C\00" -@.str.1359 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.1360 = private unnamed_addr constant [2 x i8] c"C\00" -@.str.1361 = private unnamed_addr constant [25 x i8] c"there is no type named '\00" -@.str.1362 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.1363 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.1343 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1344 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.1345 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1346 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.1347 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1348 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.1349 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.1350 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.1351 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.1352 = private unnamed_addr constant [64 x i8] c"a map key must be a whole number, a char, a bool or a str, not \00" +@.str.1353 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1354 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.1355 = private unnamed_addr constant [42 x i8] c"a map value can't have the type 'nothing'\00" +@.str.1356 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str.1357 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str.1358 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1359 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.1360 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1361 = private unnamed_addr constant [6 x i8] c"named\00" +@.str.1362 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1363 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" @.str.1364 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1365 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.1366 = private unnamed_addr constant [2 x i8] c".\00" -@.str.1367 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1368 = private unnamed_addr constant [2 x i8] c"]\00" -@.str.1369 = private unnamed_addr constant [1 x i8] c"\00" -@.str.1370 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1371 = private unnamed_addr constant [2 x i8] c",\00" -@.str.1372 = private unnamed_addr constant [2 x i8] c".\00" -@.str.1373 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1374 = private unnamed_addr constant [2 x i8] c" \00" -@.str.1375 = private unnamed_addr constant [1 x i8] c"\00" -@.str.1376 = private unnamed_addr constant [5 x i8] c"main\00" -@.str.1377 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.1378 = private unnamed_addr constant [3 x i8] c"i1\00" -@.str.1379 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.1380 = private unnamed_addr constant [2 x i8] c"i\00" -@.str.1381 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.1382 = private unnamed_addr constant [7 x i8] c"double\00" -@.str.1383 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.1384 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.1385 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.1386 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.1387 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.1388 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.1389 = private unnamed_addr constant [38 x i8] c"{ ptr, i64, i64, i64, ptr, i64, i64 }\00" -@.str.1390 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str.1391 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.1392 = private unnamed_addr constant [4 x i8] c" x \00" -@.str.1393 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1394 = private unnamed_addr constant [2 x i8] c"]\00" -@.str.1395 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.1396 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.1397 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.1398 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.1399 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.1400 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.1401 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.1402 = private unnamed_addr constant [4 x i8] c"%S.\00" -@.str.1403 = private unnamed_addr constant [2 x i8] c".\00" -@.str.1404 = private unnamed_addr constant [3 x i8] c"i8\00" -@.str.1405 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.1406 = private unnamed_addr constant [7 x i8] c"{ i1, \00" -@.str.1407 = private unnamed_addr constant [22 x i8] c", { ptr, i64, i64 } }\00" -@.str.1408 = private unnamed_addr constant [2 x i8] c":\00" -@.str.1409 = private unnamed_addr constant [2 x i8] c":\00" -@.str.1410 = private unnamed_addr constant [2 x i8] c":\00" -@.str.1411 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.1412 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.1413 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.1414 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.1415 = private unnamed_addr constant [6 x i8] c"false\00" -@.str.1416 = private unnamed_addr constant [4 x i8] c"0.0\00" -@.str.1417 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.1418 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.1419 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.1420 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.1421 = private unnamed_addr constant [30 x i8] c"ptrtoint (ptr getelementptr (\00" -@.str.1422 = private unnamed_addr constant [27 x i8] c", ptr null, i32 1) to i64)\00" -@.str.1423 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.1424 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.1425 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.1426 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.1427 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1428 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.1429 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1430 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.1431 = private unnamed_addr constant [5 x i8] c"arr_\00" -@.str.1432 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1433 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.1434 = private unnamed_addr constant [5 x i8] c"map_\00" -@.str.1435 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1436 = private unnamed_addr constant [2 x i8] c"_\00" -@.str.1437 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1438 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.1439 = private unnamed_addr constant [3 x i8] c"E_\00" -@.str.1440 = private unnamed_addr constant [2 x i8] c"_\00" -@.str.1441 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.1442 = private unnamed_addr constant [3 x i8] c"S_\00" -@.str.1443 = private unnamed_addr constant [2 x i8] c"_\00" -@.str.1444 = private unnamed_addr constant [17 x i8] c"0123456789ABCDEF\00" -@.str.1445 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1446 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1447 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1448 = private unnamed_addr constant [29 x i8] c"used .nstr on a null pointer\00" -@.str.1449 = private unnamed_addr constant [7 x i8] c"@.str.\00" -@.str.1450 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1451 = private unnamed_addr constant [29 x i8] c"used .nstr on a null pointer\00" -@.str.1452 = private unnamed_addr constant [2 x i8] c"\5C\00" -@.str.1453 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1454 = private unnamed_addr constant [29 x i8] c"used .head on a null pointer\00" -@.str.1455 = private unnamed_addr constant [35 x i8] c" = private unnamed_addr constant [\00" -@.str.1456 = private unnamed_addr constant [10 x i8] c" x i8] c\22\00" -@.str.1457 = private unnamed_addr constant [1 x i8] c"\00" -@.str.1458 = private unnamed_addr constant [5 x i8] c"\5C00\22\00" -@.str.1459 = private unnamed_addr constant [7 x i8] c"{ ptr \00" -@.str.1460 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.1461 = private unnamed_addr constant [10 x i8] c", i64 0 }\00" -@.str.1462 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.1463 = private unnamed_addr constant [6 x i8] c"panic\00" -@.str.1464 = private unnamed_addr constant [3 x i8] c"ok\00" +@.str.1365 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" +@.str.1366 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1367 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" +@.str.1368 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1369 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1370 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.1371 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.1372 = private unnamed_addr constant [37 x i8] c"' is not imported here (add: import \00" +@.str.1373 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1374 = private unnamed_addr constant [2 x i8] c"C\00" +@.str.1375 = private unnamed_addr constant [2 x i8] c"C\00" +@.str.1376 = private unnamed_addr constant [29 x i8] c"there is no C struct named '\00" +@.str.1377 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.1378 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.1379 = private unnamed_addr constant [2 x i8] c"C\00" +@.str.1380 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1381 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.1382 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.1383 = private unnamed_addr constant [37 x i8] c"' is not imported here (add: import \00" +@.str.1384 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1385 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.1386 = private unnamed_addr constant [2 x i8] c"C\00" +@.str.1387 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.1388 = private unnamed_addr constant [2 x i8] c"C\00" +@.str.1389 = private unnamed_addr constant [25 x i8] c"there is no type named '\00" +@.str.1390 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.1391 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.1392 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1393 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.1394 = private unnamed_addr constant [2 x i8] c".\00" +@.str.1395 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1396 = private unnamed_addr constant [2 x i8] c"]\00" +@.str.1397 = private unnamed_addr constant [1 x i8] c"\00" +@.str.1398 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1399 = private unnamed_addr constant [2 x i8] c",\00" +@.str.1400 = private unnamed_addr constant [2 x i8] c".\00" +@.str.1401 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1402 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1403 = private unnamed_addr constant [1 x i8] c"\00" +@.str.1404 = private unnamed_addr constant [5 x i8] c"main\00" +@.str.1405 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.1406 = private unnamed_addr constant [3 x i8] c"i1\00" +@.str.1407 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.1408 = private unnamed_addr constant [2 x i8] c"i\00" +@.str.1409 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.1410 = private unnamed_addr constant [7 x i8] c"double\00" +@.str.1411 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.1412 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.1413 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.1414 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.1415 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.1416 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.1417 = private unnamed_addr constant [38 x i8] c"{ ptr, i64, i64, i64, ptr, i64, i64 }\00" +@.str.1418 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str.1419 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.1420 = private unnamed_addr constant [4 x i8] c" x \00" +@.str.1421 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1422 = private unnamed_addr constant [2 x i8] c"]\00" +@.str.1423 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.1424 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.1425 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.1426 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.1427 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.1428 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.1429 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.1430 = private unnamed_addr constant [4 x i8] c"%S.\00" +@.str.1431 = private unnamed_addr constant [2 x i8] c".\00" +@.str.1432 = private unnamed_addr constant [3 x i8] c"i8\00" +@.str.1433 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.1434 = private unnamed_addr constant [7 x i8] c"{ i1, \00" +@.str.1435 = private unnamed_addr constant [22 x i8] c", { ptr, i64, i64 } }\00" +@.str.1436 = private unnamed_addr constant [2 x i8] c":\00" +@.str.1437 = private unnamed_addr constant [2 x i8] c":\00" +@.str.1438 = private unnamed_addr constant [2 x i8] c":\00" +@.str.1439 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.1440 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.1441 = private unnamed_addr constant [2 x i8] c"0\00" +@.str.1442 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.1443 = private unnamed_addr constant [6 x i8] c"false\00" +@.str.1444 = private unnamed_addr constant [4 x i8] c"0.0\00" +@.str.1445 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.1446 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.1447 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.1448 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" +@.str.1449 = private unnamed_addr constant [30 x i8] c"ptrtoint (ptr getelementptr (\00" +@.str.1450 = private unnamed_addr constant [27 x i8] c", ptr null, i32 1) to i64)\00" +@.str.1451 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.1452 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.1453 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.1454 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.1455 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1456 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.1457 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1458 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.1459 = private unnamed_addr constant [5 x i8] c"arr_\00" +@.str.1460 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1461 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.1462 = private unnamed_addr constant [5 x i8] c"map_\00" +@.str.1463 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1464 = private unnamed_addr constant [2 x i8] c"_\00" @.str.1465 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1466 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" -@.str.1467 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1468 = private unnamed_addr constant [28 x i8] c"call void @finch_panic(ptr \00" -@.str.1469 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.1470 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1471 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1472 = private unnamed_addr constant [12 x i8] c"unreachable\00" +@.str.1466 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.1467 = private unnamed_addr constant [3 x i8] c"E_\00" +@.str.1468 = private unnamed_addr constant [2 x i8] c"_\00" +@.str.1469 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.1470 = private unnamed_addr constant [3 x i8] c"S_\00" +@.str.1471 = private unnamed_addr constant [2 x i8] c"_\00" +@.str.1472 = private unnamed_addr constant [17 x i8] c"0123456789ABCDEF\00" @.str.1473 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1474 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.1475 = private unnamed_addr constant [6 x i8] c"range\00" -@.str.1476 = private unnamed_addr constant [8 x i8] c"inrange\00" -@.str.1477 = private unnamed_addr constant [14 x i8] c"icmp uge i64 \00" -@.str.1478 = private unnamed_addr constant [3 x i8] c", \00" -@.str.1479 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1480 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.1474 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1475 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1476 = private unnamed_addr constant [29 x i8] c"used .nstr on a null pointer\00" +@.str.1477 = private unnamed_addr constant [7 x i8] c"@.str.\00" +@.str.1478 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1479 = private unnamed_addr constant [29 x i8] c"used .nstr on a null pointer\00" +@.str.1480 = private unnamed_addr constant [2 x i8] c"\5C\00" @.str.1481 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1482 = private unnamed_addr constant [34 x i8] c"call void @finch_panic_index(ptr \00" -@.str.1483 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.1484 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.1485 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.1486 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1487 = private unnamed_addr constant [12 x i8] c"unreachable\00" -@.str.1488 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1489 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.1490 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1491 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" -@.str.1492 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1493 = private unnamed_addr constant [32 x i8] c"used .allocas on a null pointer\00" -@.str.1494 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1495 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" -@.str.1496 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1497 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.1498 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1499 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" -@.str.1500 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1501 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" -@.str.1502 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1503 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" -@.str.1504 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1505 = private unnamed_addr constant [32 x i8] c"used .allocas on a null pointer\00" -@.str.1506 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1507 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" -@.str.1508 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1509 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.1510 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1511 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.1512 = private unnamed_addr constant [11 x i8] c" {\0Aentry:\0A\00" -@.str.1513 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1514 = private unnamed_addr constant [32 x i8] c"used .allocas on a null pointer\00" -@.str.1515 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.1516 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.1517 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1518 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" -@.str.1519 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.1520 = private unnamed_addr constant [4 x i8] c"\0A}\0A\00" -@.str.1521 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1522 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" -@.str.1523 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1524 = private unnamed_addr constant [32 x i8] c"used .allocas on a null pointer\00" -@.str.1525 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1526 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" -@.str.1527 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1528 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.1529 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1530 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" -@.str.1531 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.1532 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.1533 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.1534 = private unnamed_addr constant [7 x i8] c"n.cond\00" -@.str.1535 = private unnamed_addr constant [7 x i8] c"n.body\00" -@.str.1536 = private unnamed_addr constant [6 x i8] c"n.end\00" -@.str.1537 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.1538 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" -@.str.1539 = private unnamed_addr constant [3 x i8] c", \00" -@.str.1540 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1482 = private unnamed_addr constant [29 x i8] c"used .head on a null pointer\00" +@.str.1483 = private unnamed_addr constant [35 x i8] c" = private unnamed_addr constant [\00" +@.str.1484 = private unnamed_addr constant [10 x i8] c" x i8] c\22\00" +@.str.1485 = private unnamed_addr constant [1 x i8] c"\00" +@.str.1486 = private unnamed_addr constant [5 x i8] c"\5C00\22\00" +@.str.1487 = private unnamed_addr constant [7 x i8] c"{ ptr \00" +@.str.1488 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.1489 = private unnamed_addr constant [10 x i8] c", i64 0 }\00" +@.str.1490 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.1491 = private unnamed_addr constant [6 x i8] c"panic\00" +@.str.1492 = private unnamed_addr constant [3 x i8] c"ok\00" +@.str.1493 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1494 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.1495 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1496 = private unnamed_addr constant [28 x i8] c"call void @finch_panic(ptr \00" +@.str.1497 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.1498 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1499 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1500 = private unnamed_addr constant [12 x i8] c"unreachable\00" +@.str.1501 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1502 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.1503 = private unnamed_addr constant [6 x i8] c"range\00" +@.str.1504 = private unnamed_addr constant [8 x i8] c"inrange\00" +@.str.1505 = private unnamed_addr constant [14 x i8] c"icmp uge i64 \00" +@.str.1506 = private unnamed_addr constant [3 x i8] c", \00" +@.str.1507 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1508 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.1509 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1510 = private unnamed_addr constant [34 x i8] c"call void @finch_panic_index(ptr \00" +@.str.1511 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.1512 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.1513 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.1514 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1515 = private unnamed_addr constant [12 x i8] c"unreachable\00" +@.str.1516 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1517 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.1518 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1519 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" +@.str.1520 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1521 = private unnamed_addr constant [32 x i8] c"used .allocas on a null pointer\00" +@.str.1522 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1523 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" +@.str.1524 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1525 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.1526 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1527 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" +@.str.1528 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1529 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" +@.str.1530 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1531 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" +@.str.1532 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1533 = private unnamed_addr constant [32 x i8] c"used .allocas on a null pointer\00" +@.str.1534 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1535 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" +@.str.1536 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1537 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.1538 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1539 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.1540 = private unnamed_addr constant [11 x i8] c" {\0Aentry:\0A\00" @.str.1541 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1542 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.1543 = private unnamed_addr constant [9 x i8] c"add i64 \00" -@.str.1544 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.1542 = private unnamed_addr constant [32 x i8] c"used .allocas on a null pointer\00" +@.str.1543 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.1544 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str.1545 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1546 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1547 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1548 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.1549 = private unnamed_addr constant [31 x i8] c"call void @finch_str_copy(ptr \00" -@.str.1550 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1551 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1552 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.1553 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.1554 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.1555 = private unnamed_addr constant [11 x i8] c"call void \00" -@.str.1556 = private unnamed_addr constant [6 x i8] c"(ptr \00" -@.str.1557 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1558 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1559 = private unnamed_addr constant [13 x i8] c"@finch.copy.\00" -@.str.1560 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1561 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" -@.str.1562 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1563 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" -@.str.1564 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.1565 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1566 = private unnamed_addr constant [56 x i8] c"call void @finch_arr_clone_raw(ptr %dst, ptr %src, i64 \00" -@.str.1567 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1568 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.1569 = private unnamed_addr constant [5 x i8] c"%dst\00" -@.str.1570 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.1571 = private unnamed_addr constant [5 x i8] c"%src\00" -@.str.1572 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.1573 = private unnamed_addr constant [65 x i8] c"getelementptr inbounds { ptr, i64, i64 }, ptr %src, i32 0, i32 1\00" -@.str.1574 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.1575 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1576 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.1577 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1578 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.1579 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1580 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.1581 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1582 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.1583 = private unnamed_addr constant [56 x i8] c"call void @finch_map_clone_raw(ptr %dst, ptr %src, i64 \00" -@.str.1584 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1585 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1586 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1587 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.1588 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.1589 = private unnamed_addr constant [25 x i8] c", ptr %src, i32 0, i32 2\00" -@.str.1590 = private unnamed_addr constant [5 x i8] c"%src\00" -@.str.1591 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1592 = private unnamed_addr constant [5 x i8] c"%dst\00" +@.str.1546 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" +@.str.1547 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.1548 = private unnamed_addr constant [4 x i8] c"\0A}\0A\00" +@.str.1549 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1550 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" +@.str.1551 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1552 = private unnamed_addr constant [32 x i8] c"used .allocas on a null pointer\00" +@.str.1553 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1554 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" +@.str.1555 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1556 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.1557 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1558 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" +@.str.1559 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1560 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1561 = private unnamed_addr constant [2 x i8] c"0\00" +@.str.1562 = private unnamed_addr constant [7 x i8] c"n.cond\00" +@.str.1563 = private unnamed_addr constant [7 x i8] c"n.body\00" +@.str.1564 = private unnamed_addr constant [6 x i8] c"n.end\00" +@.str.1565 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1566 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" +@.str.1567 = private unnamed_addr constant [3 x i8] c", \00" +@.str.1568 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1569 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1570 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1571 = private unnamed_addr constant [9 x i8] c"add i64 \00" +@.str.1572 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.1573 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1574 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1575 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1576 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.1577 = private unnamed_addr constant [31 x i8] c"call void @finch_str_copy(ptr \00" +@.str.1578 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1579 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1580 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.1581 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.1582 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.1583 = private unnamed_addr constant [11 x i8] c"call void \00" +@.str.1584 = private unnamed_addr constant [6 x i8] c"(ptr \00" +@.str.1585 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1586 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1587 = private unnamed_addr constant [13 x i8] c"@finch.copy.\00" +@.str.1588 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1589 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" +@.str.1590 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1591 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" +@.str.1592 = private unnamed_addr constant [6 x i8] c"array\00" @.str.1593 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1594 = private unnamed_addr constant [11 x i8] c"entry.live\00" -@.str.1595 = private unnamed_addr constant [11 x i8] c"entry.next\00" -@.str.1596 = private unnamed_addr constant [13 x i8] c"icmp ne i64 \00" -@.str.1597 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.1598 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.1599 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1600 = private unnamed_addr constant [15 x i8] c", i32 0, i32 0\00" -@.str.1601 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.1602 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1603 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1604 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1605 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.1606 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1607 = private unnamed_addr constant [5 x i8] c"%src\00" -@.str.1608 = private unnamed_addr constant [5 x i8] c"%dst\00" +@.str.1594 = private unnamed_addr constant [56 x i8] c"call void @finch_arr_clone_raw(ptr %dst, ptr %src, i64 \00" +@.str.1595 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1596 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.1597 = private unnamed_addr constant [5 x i8] c"%dst\00" +@.str.1598 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.1599 = private unnamed_addr constant [5 x i8] c"%src\00" +@.str.1600 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1601 = private unnamed_addr constant [65 x i8] c"getelementptr inbounds { ptr, i64, i64 }, ptr %src, i32 0, i32 1\00" +@.str.1602 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.1603 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1604 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.1605 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1606 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.1607 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1608 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str.1609 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1610 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.1611 = private unnamed_addr constant [24 x i8] c", ptr %dst, i32 0, i32 \00" -@.str.1612 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1613 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.1614 = private unnamed_addr constant [24 x i8] c", ptr %src, i32 0, i32 \00" -@.str.1615 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1616 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1617 = private unnamed_addr constant [9 x i8] c"ret void\00" -@.str.1618 = private unnamed_addr constant [22 x i8] c"define internal void \00" -@.str.1619 = private unnamed_addr constant [21 x i8] c"(ptr %dst, ptr %src)\00" -@.str.1620 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.1621 = private unnamed_addr constant [31 x i8] c"call void @finch_str_drop(ptr \00" -@.str.1622 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1623 = private unnamed_addr constant [11 x i8] c"call void \00" -@.str.1624 = private unnamed_addr constant [6 x i8] c"(ptr \00" -@.str.1625 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1626 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1627 = private unnamed_addr constant [2 x i8] c"%\00" -@.str.1628 = private unnamed_addr constant [13 x i8] c"@finch.drop.\00" -@.str.1629 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1630 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" +@.str.1610 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.1611 = private unnamed_addr constant [56 x i8] c"call void @finch_map_clone_raw(ptr %dst, ptr %src, i64 \00" +@.str.1612 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1613 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1614 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1615 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1616 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.1617 = private unnamed_addr constant [25 x i8] c", ptr %src, i32 0, i32 2\00" +@.str.1618 = private unnamed_addr constant [5 x i8] c"%src\00" +@.str.1619 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1620 = private unnamed_addr constant [5 x i8] c"%dst\00" +@.str.1621 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1622 = private unnamed_addr constant [11 x i8] c"entry.live\00" +@.str.1623 = private unnamed_addr constant [11 x i8] c"entry.next\00" +@.str.1624 = private unnamed_addr constant [13 x i8] c"icmp ne i64 \00" +@.str.1625 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1626 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.1627 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1628 = private unnamed_addr constant [15 x i8] c", i32 0, i32 0\00" +@.str.1629 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.1630 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.1631 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1632 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" -@.str.1633 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.1632 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1633 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.1634 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1635 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.1636 = private unnamed_addr constant [3 x i8] c"%a\00" -@.str.1637 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.1638 = private unnamed_addr constant [63 x i8] c"getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1\00" -@.str.1639 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.1640 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1641 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.1642 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1643 = private unnamed_addr constant [34 x i8] c"call void @finch_arr_free(ptr %a)\00" -@.str.1644 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.1645 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1646 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1647 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.1648 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.1649 = private unnamed_addr constant [23 x i8] c", ptr %a, i32 0, i32 2\00" -@.str.1650 = private unnamed_addr constant [3 x i8] c"%a\00" -@.str.1651 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1652 = private unnamed_addr constant [11 x i8] c"entry.live\00" -@.str.1653 = private unnamed_addr constant [11 x i8] c"entry.next\00" -@.str.1654 = private unnamed_addr constant [13 x i8] c"icmp ne i64 \00" -@.str.1655 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.1656 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.1657 = private unnamed_addr constant [34 x i8] c"call void @finch_map_free(ptr %a)\00" -@.str.1658 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1659 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.1660 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1661 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1662 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.1663 = private unnamed_addr constant [22 x i8] c", ptr %a, i32 0, i32 \00" -@.str.1664 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1665 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1666 = private unnamed_addr constant [9 x i8] c"ret void\00" -@.str.1667 = private unnamed_addr constant [22 x i8] c"define internal void \00" -@.str.1668 = private unnamed_addr constant [9 x i8] c"(ptr %a)\00" -@.str.1669 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1670 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.1671 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1672 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.1635 = private unnamed_addr constant [5 x i8] c"%src\00" +@.str.1636 = private unnamed_addr constant [5 x i8] c"%dst\00" +@.str.1637 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1638 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.1639 = private unnamed_addr constant [24 x i8] c", ptr %dst, i32 0, i32 \00" +@.str.1640 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1641 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.1642 = private unnamed_addr constant [24 x i8] c", ptr %src, i32 0, i32 \00" +@.str.1643 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1644 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1645 = private unnamed_addr constant [9 x i8] c"ret void\00" +@.str.1646 = private unnamed_addr constant [22 x i8] c"define internal void \00" +@.str.1647 = private unnamed_addr constant [21 x i8] c"(ptr %dst, ptr %src)\00" +@.str.1648 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.1649 = private unnamed_addr constant [31 x i8] c"call void @finch_str_drop(ptr \00" +@.str.1650 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1651 = private unnamed_addr constant [11 x i8] c"call void \00" +@.str.1652 = private unnamed_addr constant [6 x i8] c"(ptr \00" +@.str.1653 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1654 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1655 = private unnamed_addr constant [2 x i8] c"%\00" +@.str.1656 = private unnamed_addr constant [13 x i8] c"@finch.drop.\00" +@.str.1657 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1658 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" +@.str.1659 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1660 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" +@.str.1661 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.1662 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1663 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.1664 = private unnamed_addr constant [3 x i8] c"%a\00" +@.str.1665 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1666 = private unnamed_addr constant [63 x i8] c"getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1\00" +@.str.1667 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.1668 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1669 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.1670 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1671 = private unnamed_addr constant [34 x i8] c"call void @finch_arr_free(ptr %a)\00" +@.str.1672 = private unnamed_addr constant [4 x i8] c"map\00" @.str.1673 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1674 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.1675 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1676 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.1677 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1678 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1679 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.1680 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1681 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.1682 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1683 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" -@.str.1684 = private unnamed_addr constant [1 x i8] c"\00" -@.str.1685 = private unnamed_addr constant [3 x i8] c", \00" -@.str.1686 = private unnamed_addr constant [36 x i8] c" = call i32 (ptr, ...) @printf(ptr \00" -@.str.1687 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1688 = private unnamed_addr constant [32 x i8] c"extractvalue { ptr, i64, i64 } \00" -@.str.1689 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.1690 = private unnamed_addr constant [13 x i8] c"icmp eq ptr \00" -@.str.1691 = private unnamed_addr constant [7 x i8] c", null\00" -@.str.1692 = private unnamed_addr constant [1 x i8] c"\00" -@.str.1693 = private unnamed_addr constant [11 x i8] c"select i1 \00" -@.str.1694 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1695 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1696 = private unnamed_addr constant [5 x i8] c"%lld\00" -@.str.1697 = private unnamed_addr constant [5 x i8] c"i64 \00" -@.str.1698 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.1699 = private unnamed_addr constant [5 x i8] c"%llu\00" -@.str.1700 = private unnamed_addr constant [5 x i8] c"i64 \00" -@.str.1701 = private unnamed_addr constant [4 x i8] c"u64\00" -@.str.1702 = private unnamed_addr constant [3 x i8] c"%g\00" -@.str.1703 = private unnamed_addr constant [8 x i8] c"double \00" -@.str.1704 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.1705 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.1706 = private unnamed_addr constant [9 x i8] c"sext i8 \00" -@.str.1707 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str.1708 = private unnamed_addr constant [5 x i8] c"'%c'\00" -@.str.1709 = private unnamed_addr constant [5 x i8] c"i32 \00" -@.str.1710 = private unnamed_addr constant [3 x i8] c"%c\00" -@.str.1711 = private unnamed_addr constant [5 x i8] c"i32 \00" -@.str.1712 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.1713 = private unnamed_addr constant [5 x i8] c"true\00" -@.str.1714 = private unnamed_addr constant [6 x i8] c"false\00" -@.str.1715 = private unnamed_addr constant [11 x i8] c"select i1 \00" -@.str.1716 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1717 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1718 = private unnamed_addr constant [3 x i8] c"%s\00" -@.str.1719 = private unnamed_addr constant [5 x i8] c"ptr \00" -@.str.1720 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.1721 = private unnamed_addr constant [32 x i8] c"extractvalue { ptr, i64, i64 } \00" -@.str.1722 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str.1723 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" -@.str.1724 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str.1725 = private unnamed_addr constant [7 x i8] c"\22%.*s\22\00" -@.str.1726 = private unnamed_addr constant [5 x i8] c"i32 \00" -@.str.1727 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1728 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.1729 = private unnamed_addr constant [5 x i8] c"i32 \00" -@.str.1730 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1731 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.1732 = private unnamed_addr constant [13 x i8] c"icmp eq ptr \00" -@.str.1733 = private unnamed_addr constant [7 x i8] c", null\00" -@.str.1734 = private unnamed_addr constant [9 x i8] c"ptr.null\00" -@.str.1735 = private unnamed_addr constant [9 x i8] c"ptr.addr\00" -@.str.1736 = private unnamed_addr constant [9 x i8] c"ptr.done\00" -@.str.1737 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.1738 = private unnamed_addr constant [1 x i8] c"\00" -@.str.1739 = private unnamed_addr constant [7 x i8] c"0x%llx\00" -@.str.1740 = private unnamed_addr constant [5 x i8] c"i64 \00" -@.str.1741 = private unnamed_addr constant [14 x i8] c"ptrtoint ptr \00" -@.str.1742 = private unnamed_addr constant [8 x i8] c" to i64\00" -@.str.1743 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.1744 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.1745 = private unnamed_addr constant [1 x i8] c"\00" -@.str.1746 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.1747 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.1748 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.1749 = private unnamed_addr constant [32 x i8] c"call void @finch_buf_print(ptr \00" -@.str.1750 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1751 = private unnamed_addr constant [30 x i8] c"call void @finch_buf_add(ptr \00" -@.str.1752 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1753 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.1754 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1755 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.1756 = private unnamed_addr constant [2 x i8] c"1\00" -@.str.1757 = private unnamed_addr constant [30 x i8] c"call void @finch_buf_int(ptr \00" -@.str.1758 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.1759 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.1760 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1761 = private unnamed_addr constant [31 x i8] c"call void @finch_buf_uint(ptr \00" -@.str.1762 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.1763 = private unnamed_addr constant [4 x i8] c"u64\00" -@.str.1764 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1765 = private unnamed_addr constant [32 x i8] c"call void @finch_buf_float(ptr \00" -@.str.1766 = private unnamed_addr constant [10 x i8] c", double \00" -@.str.1767 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.1768 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1769 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.1770 = private unnamed_addr constant [31 x i8] c"call void @finch_buf_char(ptr \00" -@.str.1771 = private unnamed_addr constant [6 x i8] c", i8 \00" -@.str.1772 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str.1773 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1774 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.1775 = private unnamed_addr constant [31 x i8] c"call void @finch_buf_bool(ptr \00" -@.str.1776 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str.1777 = private unnamed_addr constant [9 x i8] c"zext i1 \00" -@.str.1778 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str.1779 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1780 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.1781 = private unnamed_addr constant [30 x i8] c"call void @finch_buf_str(ptr \00" -@.str.1782 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1783 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str.1784 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1785 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.1786 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.1787 = private unnamed_addr constant [30 x i8] c"call void @finch_buf_ptr(ptr \00" -@.str.1788 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1789 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1790 = private unnamed_addr constant [11 x i8] c"call void \00" -@.str.1791 = private unnamed_addr constant [6 x i8] c"(ptr \00" -@.str.1792 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1793 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1794 = private unnamed_addr constant [15 x i8] c"@finch.format.\00" -@.str.1795 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1796 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" -@.str.1797 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1798 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" -@.str.1799 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.1800 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1801 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.1802 = private unnamed_addr constant [3 x i8] c"%a\00" -@.str.1803 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.1804 = private unnamed_addr constant [63 x i8] c"getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1\00" -@.str.1805 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1806 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.1807 = private unnamed_addr constant [4 x i8] c"sep\00" -@.str.1808 = private unnamed_addr constant [5 x i8] c"item\00" -@.str.1809 = private unnamed_addr constant [14 x i8] c"icmp sgt i64 \00" -@.str.1810 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1811 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.1812 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1813 = private unnamed_addr constant [3 x i8] c", \00" -@.str.1814 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.1815 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.1816 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.1817 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1818 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1819 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1820 = private unnamed_addr constant [2 x i8] c"]\00" -@.str.1821 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.1822 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1823 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" -@.str.1824 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1825 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.1826 = private unnamed_addr constant [3 x i8] c"%a\00" -@.str.1827 = private unnamed_addr constant [11 x i8] c"enum.other\00" -@.str.1828 = private unnamed_addr constant [10 x i8] c"enum.done\00" -@.str.1829 = private unnamed_addr constant [7 x i8] c"enum.v\00" -@.str.1830 = private unnamed_addr constant [5 x i8] c"i32 \00" -@.str.1831 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1832 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str.1833 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1834 = private unnamed_addr constant [12 x i8] c"switch i32 \00" -@.str.1835 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str.1836 = private unnamed_addr constant [4 x i8] c" [ \00" -@.str.1837 = private unnamed_addr constant [2 x i8] c" \00" -@.str.1838 = private unnamed_addr constant [3 x i8] c" ]\00" -@.str.1839 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1840 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.1841 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1842 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1843 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1844 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1845 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.1846 = private unnamed_addr constant [40 x i8] c"call void @finch_buf_int(ptr %buf, i64 \00" -@.str.1847 = private unnamed_addr constant [10 x i8] c"sext i32 \00" -@.str.1848 = private unnamed_addr constant [8 x i8] c" to i64\00" -@.str.1849 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1850 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1851 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1852 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.1853 = private unnamed_addr constant [3 x i8] c"i1\00" -@.str.1854 = private unnamed_addr constant [3 x i8] c"i1\00" -@.str.1855 = private unnamed_addr constant [5 x i8] c"true\00" -@.str.1856 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1857 = private unnamed_addr constant [2 x i8] c"{\00" -@.str.1858 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.1859 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.1860 = private unnamed_addr constant [23 x i8] c", ptr %a, i32 0, i32 2\00" -@.str.1861 = private unnamed_addr constant [3 x i8] c"%a\00" -@.str.1862 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1863 = private unnamed_addr constant [11 x i8] c"entry.live\00" -@.str.1864 = private unnamed_addr constant [11 x i8] c"entry.next\00" -@.str.1865 = private unnamed_addr constant [13 x i8] c"icmp ne i64 \00" -@.str.1866 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.1867 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.1868 = private unnamed_addr constant [4 x i8] c"sep\00" -@.str.1869 = private unnamed_addr constant [5 x i8] c"item\00" -@.str.1870 = private unnamed_addr constant [3 x i8] c"i1\00" -@.str.1871 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1872 = private unnamed_addr constant [3 x i8] c", \00" -@.str.1873 = private unnamed_addr constant [3 x i8] c"i1\00" -@.str.1874 = private unnamed_addr constant [6 x i8] c"false\00" -@.str.1875 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1876 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1877 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1674 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1675 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1676 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.1677 = private unnamed_addr constant [23 x i8] c", ptr %a, i32 0, i32 2\00" +@.str.1678 = private unnamed_addr constant [3 x i8] c"%a\00" +@.str.1679 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1680 = private unnamed_addr constant [11 x i8] c"entry.live\00" +@.str.1681 = private unnamed_addr constant [11 x i8] c"entry.next\00" +@.str.1682 = private unnamed_addr constant [13 x i8] c"icmp ne i64 \00" +@.str.1683 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1684 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.1685 = private unnamed_addr constant [34 x i8] c"call void @finch_map_free(ptr %a)\00" +@.str.1686 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1687 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.1688 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1689 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1690 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.1691 = private unnamed_addr constant [22 x i8] c", ptr %a, i32 0, i32 \00" +@.str.1692 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1693 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1694 = private unnamed_addr constant [9 x i8] c"ret void\00" +@.str.1695 = private unnamed_addr constant [22 x i8] c"define internal void \00" +@.str.1696 = private unnamed_addr constant [9 x i8] c"(ptr %a)\00" +@.str.1697 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1698 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.1699 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1700 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.1701 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1702 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.1703 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1704 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.1705 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1706 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1707 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.1708 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1709 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.1710 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1711 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" +@.str.1712 = private unnamed_addr constant [1 x i8] c"\00" +@.str.1713 = private unnamed_addr constant [3 x i8] c", \00" +@.str.1714 = private unnamed_addr constant [36 x i8] c" = call i32 (ptr, ...) @printf(ptr \00" +@.str.1715 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1716 = private unnamed_addr constant [32 x i8] c"extractvalue { ptr, i64, i64 } \00" +@.str.1717 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.1718 = private unnamed_addr constant [13 x i8] c"icmp eq ptr \00" +@.str.1719 = private unnamed_addr constant [7 x i8] c", null\00" +@.str.1720 = private unnamed_addr constant [1 x i8] c"\00" +@.str.1721 = private unnamed_addr constant [11 x i8] c"select i1 \00" +@.str.1722 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1723 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1724 = private unnamed_addr constant [5 x i8] c"%lld\00" +@.str.1725 = private unnamed_addr constant [5 x i8] c"i64 \00" +@.str.1726 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.1727 = private unnamed_addr constant [5 x i8] c"%llu\00" +@.str.1728 = private unnamed_addr constant [5 x i8] c"i64 \00" +@.str.1729 = private unnamed_addr constant [4 x i8] c"u64\00" +@.str.1730 = private unnamed_addr constant [3 x i8] c"%g\00" +@.str.1731 = private unnamed_addr constant [8 x i8] c"double \00" +@.str.1732 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.1733 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.1734 = private unnamed_addr constant [9 x i8] c"sext i8 \00" +@.str.1735 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str.1736 = private unnamed_addr constant [5 x i8] c"'%c'\00" +@.str.1737 = private unnamed_addr constant [5 x i8] c"i32 \00" +@.str.1738 = private unnamed_addr constant [3 x i8] c"%c\00" +@.str.1739 = private unnamed_addr constant [5 x i8] c"i32 \00" +@.str.1740 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.1741 = private unnamed_addr constant [5 x i8] c"true\00" +@.str.1742 = private unnamed_addr constant [6 x i8] c"false\00" +@.str.1743 = private unnamed_addr constant [11 x i8] c"select i1 \00" +@.str.1744 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1745 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1746 = private unnamed_addr constant [3 x i8] c"%s\00" +@.str.1747 = private unnamed_addr constant [5 x i8] c"ptr \00" +@.str.1748 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.1749 = private unnamed_addr constant [32 x i8] c"extractvalue { ptr, i64, i64 } \00" +@.str.1750 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.1751 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" +@.str.1752 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str.1753 = private unnamed_addr constant [7 x i8] c"\22%.*s\22\00" +@.str.1754 = private unnamed_addr constant [5 x i8] c"i32 \00" +@.str.1755 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1756 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.1757 = private unnamed_addr constant [5 x i8] c"i32 \00" +@.str.1758 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1759 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.1760 = private unnamed_addr constant [13 x i8] c"icmp eq ptr \00" +@.str.1761 = private unnamed_addr constant [7 x i8] c", null\00" +@.str.1762 = private unnamed_addr constant [9 x i8] c"ptr.null\00" +@.str.1763 = private unnamed_addr constant [9 x i8] c"ptr.addr\00" +@.str.1764 = private unnamed_addr constant [9 x i8] c"ptr.done\00" +@.str.1765 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.1766 = private unnamed_addr constant [1 x i8] c"\00" +@.str.1767 = private unnamed_addr constant [7 x i8] c"0x%llx\00" +@.str.1768 = private unnamed_addr constant [5 x i8] c"i64 \00" +@.str.1769 = private unnamed_addr constant [14 x i8] c"ptrtoint ptr \00" +@.str.1770 = private unnamed_addr constant [8 x i8] c" to i64\00" +@.str.1771 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.1772 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.1773 = private unnamed_addr constant [1 x i8] c"\00" +@.str.1774 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.1775 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.1776 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" +@.str.1777 = private unnamed_addr constant [32 x i8] c"call void @finch_buf_print(ptr \00" +@.str.1778 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1779 = private unnamed_addr constant [30 x i8] c"call void @finch_buf_add(ptr \00" +@.str.1780 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1781 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.1782 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1783 = private unnamed_addr constant [2 x i8] c"0\00" +@.str.1784 = private unnamed_addr constant [2 x i8] c"1\00" +@.str.1785 = private unnamed_addr constant [30 x i8] c"call void @finch_buf_int(ptr \00" +@.str.1786 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.1787 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.1788 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1789 = private unnamed_addr constant [31 x i8] c"call void @finch_buf_uint(ptr \00" +@.str.1790 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.1791 = private unnamed_addr constant [4 x i8] c"u64\00" +@.str.1792 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1793 = private unnamed_addr constant [32 x i8] c"call void @finch_buf_float(ptr \00" +@.str.1794 = private unnamed_addr constant [10 x i8] c", double \00" +@.str.1795 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.1796 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1797 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.1798 = private unnamed_addr constant [31 x i8] c"call void @finch_buf_char(ptr \00" +@.str.1799 = private unnamed_addr constant [6 x i8] c", i8 \00" +@.str.1800 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str.1801 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1802 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.1803 = private unnamed_addr constant [31 x i8] c"call void @finch_buf_bool(ptr \00" +@.str.1804 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str.1805 = private unnamed_addr constant [9 x i8] c"zext i1 \00" +@.str.1806 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str.1807 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1808 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.1809 = private unnamed_addr constant [30 x i8] c"call void @finch_buf_str(ptr \00" +@.str.1810 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1811 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str.1812 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1813 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.1814 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.1815 = private unnamed_addr constant [30 x i8] c"call void @finch_buf_ptr(ptr \00" +@.str.1816 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1817 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1818 = private unnamed_addr constant [11 x i8] c"call void \00" +@.str.1819 = private unnamed_addr constant [6 x i8] c"(ptr \00" +@.str.1820 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1821 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1822 = private unnamed_addr constant [15 x i8] c"@finch.format.\00" +@.str.1823 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1824 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" +@.str.1825 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1826 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" +@.str.1827 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.1828 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1829 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.1830 = private unnamed_addr constant [3 x i8] c"%a\00" +@.str.1831 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1832 = private unnamed_addr constant [63 x i8] c"getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1\00" +@.str.1833 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1834 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.1835 = private unnamed_addr constant [4 x i8] c"sep\00" +@.str.1836 = private unnamed_addr constant [5 x i8] c"item\00" +@.str.1837 = private unnamed_addr constant [14 x i8] c"icmp sgt i64 \00" +@.str.1838 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1839 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.1840 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1841 = private unnamed_addr constant [3 x i8] c", \00" +@.str.1842 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.1843 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.1844 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.1845 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1846 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1847 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1848 = private unnamed_addr constant [2 x i8] c"]\00" +@.str.1849 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.1850 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1851 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" +@.str.1852 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1853 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.1854 = private unnamed_addr constant [3 x i8] c"%a\00" +@.str.1855 = private unnamed_addr constant [11 x i8] c"enum.other\00" +@.str.1856 = private unnamed_addr constant [10 x i8] c"enum.done\00" +@.str.1857 = private unnamed_addr constant [7 x i8] c"enum.v\00" +@.str.1858 = private unnamed_addr constant [5 x i8] c"i32 \00" +@.str.1859 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1860 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str.1861 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1862 = private unnamed_addr constant [12 x i8] c"switch i32 \00" +@.str.1863 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str.1864 = private unnamed_addr constant [4 x i8] c" [ \00" +@.str.1865 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1866 = private unnamed_addr constant [3 x i8] c" ]\00" +@.str.1867 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1868 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.1869 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1870 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1871 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1872 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1873 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.1874 = private unnamed_addr constant [40 x i8] c"call void @finch_buf_int(ptr %buf, i64 \00" +@.str.1875 = private unnamed_addr constant [10 x i8] c"sext i32 \00" +@.str.1876 = private unnamed_addr constant [8 x i8] c" to i64\00" +@.str.1877 = private unnamed_addr constant [2 x i8] c")\00" @.str.1878 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1879 = private unnamed_addr constant [3 x i8] c": \00" -@.str.1880 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1881 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1882 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1883 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1884 = private unnamed_addr constant [2 x i8] c"}\00" -@.str.1885 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1886 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.1887 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1888 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1889 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.1890 = private unnamed_addr constant [3 x i8] c", \00" -@.str.1891 = private unnamed_addr constant [1 x i8] c"\00" -@.str.1892 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1893 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1894 = private unnamed_addr constant [3 x i8] c": \00" -@.str.1895 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.1896 = private unnamed_addr constant [22 x i8] c", ptr %a, i32 0, i32 \00" -@.str.1897 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1898 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1899 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1900 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1901 = private unnamed_addr constant [5 x i8] c"%buf\00" -@.str.1902 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1903 = private unnamed_addr constant [9 x i8] c"ret void\00" -@.str.1904 = private unnamed_addr constant [22 x i8] c"define internal void \00" -@.str.1905 = private unnamed_addr constant [19 x i8] c"(ptr %buf, ptr %a)\00" -@.str.1906 = private unnamed_addr constant [7 x i8] c"trunc \00" -@.str.1907 = private unnamed_addr constant [2 x i8] c" \00" -@.str.1908 = private unnamed_addr constant [5 x i8] c" to \00" -@.str.1909 = private unnamed_addr constant [6 x i8] c"sext \00" -@.str.1910 = private unnamed_addr constant [2 x i8] c" \00" -@.str.1911 = private unnamed_addr constant [5 x i8] c" to \00" -@.str.1912 = private unnamed_addr constant [6 x i8] c"zext \00" -@.str.1913 = private unnamed_addr constant [2 x i8] c" \00" -@.str.1914 = private unnamed_addr constant [5 x i8] c" to \00" -@.str.1915 = private unnamed_addr constant [7 x i8] c"fpext \00" -@.str.1916 = private unnamed_addr constant [2 x i8] c" \00" -@.str.1917 = private unnamed_addr constant [5 x i8] c" to \00" -@.str.1918 = private unnamed_addr constant [9 x i8] c"fptrunc \00" -@.str.1919 = private unnamed_addr constant [2 x i8] c" \00" -@.str.1920 = private unnamed_addr constant [5 x i8] c" to \00" -@.str.1921 = private unnamed_addr constant [8 x i8] c"sitofp \00" -@.str.1922 = private unnamed_addr constant [2 x i8] c" \00" -@.str.1923 = private unnamed_addr constant [5 x i8] c" to \00" -@.str.1924 = private unnamed_addr constant [8 x i8] c"uitofp \00" -@.str.1925 = private unnamed_addr constant [2 x i8] c" \00" -@.str.1926 = private unnamed_addr constant [5 x i8] c" to \00" -@.str.1927 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.1928 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.1929 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.1930 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.1931 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.1932 = private unnamed_addr constant [12 x i8] c"the number \00" -@.str.1933 = private unnamed_addr constant [17 x i8] c" doesn't fit in \00" -@.str.1934 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.1935 = private unnamed_addr constant [3 x i8] c".0\00" -@.str.1936 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.1937 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.1938 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.1939 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.1940 = private unnamed_addr constant [10 x i8] c" must be \00" -@.str.1941 = private unnamed_addr constant [15 x i8] c", but this is \00" -@.str.1942 = private unnamed_addr constant [7 x i8] c" (use \00" -@.str.1943 = private unnamed_addr constant [17 x i8] c"(...) to convert\00" -@.str.1944 = private unnamed_addr constant [27 x i8] c", it cuts off the fraction\00" -@.str.1945 = private unnamed_addr constant [2 x i8] c")\00" -@.str.1946 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.1947 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.1948 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.1949 = private unnamed_addr constant [35 x i8] c" (turn it into text with str(...))\00" -@.str.1950 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1951 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.1879 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1880 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.1881 = private unnamed_addr constant [3 x i8] c"i1\00" +@.str.1882 = private unnamed_addr constant [3 x i8] c"i1\00" +@.str.1883 = private unnamed_addr constant [5 x i8] c"true\00" +@.str.1884 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1885 = private unnamed_addr constant [2 x i8] c"{\00" +@.str.1886 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1887 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.1888 = private unnamed_addr constant [23 x i8] c", ptr %a, i32 0, i32 2\00" +@.str.1889 = private unnamed_addr constant [3 x i8] c"%a\00" +@.str.1890 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1891 = private unnamed_addr constant [11 x i8] c"entry.live\00" +@.str.1892 = private unnamed_addr constant [11 x i8] c"entry.next\00" +@.str.1893 = private unnamed_addr constant [13 x i8] c"icmp ne i64 \00" +@.str.1894 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1895 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.1896 = private unnamed_addr constant [4 x i8] c"sep\00" +@.str.1897 = private unnamed_addr constant [5 x i8] c"item\00" +@.str.1898 = private unnamed_addr constant [3 x i8] c"i1\00" +@.str.1899 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1900 = private unnamed_addr constant [3 x i8] c", \00" +@.str.1901 = private unnamed_addr constant [3 x i8] c"i1\00" +@.str.1902 = private unnamed_addr constant [6 x i8] c"false\00" +@.str.1903 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1904 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1905 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1906 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1907 = private unnamed_addr constant [3 x i8] c": \00" +@.str.1908 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1909 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1910 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1911 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1912 = private unnamed_addr constant [2 x i8] c"}\00" +@.str.1913 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.1914 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1915 = private unnamed_addr constant [29 x i8] c"used .sums on a null pointer\00" +@.str.1916 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1917 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1918 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.1919 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1920 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.1921 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.1922 = private unnamed_addr constant [22 x i8] c", ptr %a, i32 0, i32 \00" +@.str.1923 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1924 = private unnamed_addr constant [10 x i8] c"sum.other\00" +@.str.1925 = private unnamed_addr constant [9 x i8] c"sum.done\00" +@.str.1926 = private unnamed_addr constant [6 x i8] c"sum.v\00" +@.str.1927 = private unnamed_addr constant [5 x i8] c"i64 \00" +@.str.1928 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str.1929 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1930 = private unnamed_addr constant [12 x i8] c"switch i64 \00" +@.str.1931 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str.1932 = private unnamed_addr constant [4 x i8] c" [ \00" +@.str.1933 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1934 = private unnamed_addr constant [3 x i8] c" ]\00" +@.str.1935 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1936 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.1937 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1938 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1939 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1940 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1941 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1942 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.1943 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1944 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1945 = private unnamed_addr constant [3 x i8] c", \00" +@.str.1946 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1947 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.1948 = private unnamed_addr constant [22 x i8] c", ptr %a, i32 0, i32 \00" +@.str.1949 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1950 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1951 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.1952 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1953 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.1954 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1955 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.1956 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.1953 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1954 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1955 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1956 = private unnamed_addr constant [4 x i8] c"(?)\00" @.str.1957 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1958 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.1958 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.1959 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1960 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1961 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1962 = private unnamed_addr constant [32 x i8] c"used .deferOn on a null pointer\00" -@.str.1963 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1964 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.1960 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1961 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.1962 = private unnamed_addr constant [3 x i8] c", \00" +@.str.1963 = private unnamed_addr constant [1 x i8] c"\00" +@.str.1964 = private unnamed_addr constant [5 x i8] c"%buf\00" @.str.1965 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1966 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1967 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1968 = private unnamed_addr constant [35 x i8] c"used .deferLimit on a null pointer\00" +@.str.1966 = private unnamed_addr constant [3 x i8] c": \00" +@.str.1967 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.1968 = private unnamed_addr constant [22 x i8] c", ptr %a, i32 0, i32 \00" @.str.1969 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1970 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.1970 = private unnamed_addr constant [5 x i8] c"%buf\00" @.str.1971 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.1972 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1973 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1974 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.1975 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1976 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.1977 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1978 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1979 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.1980 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1981 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1982 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.1983 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1984 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1985 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.1986 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1987 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.1988 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1989 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1990 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.1991 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1992 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1993 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.1994 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.1995 = private unnamed_addr constant [6 x i8] c"print\00" -@.str.1996 = private unnamed_addr constant [5 x i8] c"addr\00" -@.str.1997 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.1998 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.1999 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.2000 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.2001 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.2002 = private unnamed_addr constant [10 x i8] c"read_file\00" -@.str.2003 = private unnamed_addr constant [11 x i8] c"write_file\00" -@.str.2004 = private unnamed_addr constant [12 x i8] c"file_exists\00" -@.str.2005 = private unnamed_addr constant [6 x i8] c"shell\00" -@.str.2006 = private unnamed_addr constant [5 x i8] c"exit\00" -@.str.2007 = private unnamed_addr constant [6 x i8] c"input\00" -@.str.2008 = private unnamed_addr constant [4 x i8] c"new\00" -@.str.2009 = private unnamed_addr constant [5 x i8] c"free\00" -@.str.2010 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.2011 = private unnamed_addr constant [12 x i8] c"delete_file\00" -@.str.2012 = private unnamed_addr constant [3 x i8] c"i8\00" -@.str.2013 = private unnamed_addr constant [4 x i8] c"i16\00" -@.str.2014 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.2015 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.2016 = private unnamed_addr constant [3 x i8] c"u8\00" -@.str.2017 = private unnamed_addr constant [4 x i8] c"u16\00" -@.str.2018 = private unnamed_addr constant [4 x i8] c"u32\00" -@.str.2019 = private unnamed_addr constant [4 x i8] c"u64\00" -@.str.2020 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.2021 = private unnamed_addr constant [4 x i8] c"f64\00" -@.str.2022 = private unnamed_addr constant [6 x i8] c"error\00" -@.str.2023 = private unnamed_addr constant [4 x i8] c"err\00" -@.str.2024 = private unnamed_addr constant [19 x i8] c"a variable named '\00" -@.str.2025 = private unnamed_addr constant [22 x i8] c"' already exists here\00" +@.str.1973 = private unnamed_addr constant [5 x i8] c"%buf\00" +@.str.1974 = private unnamed_addr constant [2 x i8] c")\00" +@.str.1975 = private unnamed_addr constant [9 x i8] c"ret void\00" +@.str.1976 = private unnamed_addr constant [22 x i8] c"define internal void \00" +@.str.1977 = private unnamed_addr constant [19 x i8] c"(ptr %buf, ptr %a)\00" +@.str.1978 = private unnamed_addr constant [7 x i8] c"trunc \00" +@.str.1979 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1980 = private unnamed_addr constant [5 x i8] c" to \00" +@.str.1981 = private unnamed_addr constant [6 x i8] c"sext \00" +@.str.1982 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1983 = private unnamed_addr constant [5 x i8] c" to \00" +@.str.1984 = private unnamed_addr constant [6 x i8] c"zext \00" +@.str.1985 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1986 = private unnamed_addr constant [5 x i8] c" to \00" +@.str.1987 = private unnamed_addr constant [7 x i8] c"fpext \00" +@.str.1988 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1989 = private unnamed_addr constant [5 x i8] c" to \00" +@.str.1990 = private unnamed_addr constant [9 x i8] c"fptrunc \00" +@.str.1991 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1992 = private unnamed_addr constant [5 x i8] c" to \00" +@.str.1993 = private unnamed_addr constant [8 x i8] c"sitofp \00" +@.str.1994 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1995 = private unnamed_addr constant [5 x i8] c" to \00" +@.str.1996 = private unnamed_addr constant [8 x i8] c"uitofp \00" +@.str.1997 = private unnamed_addr constant [2 x i8] c" \00" +@.str.1998 = private unnamed_addr constant [5 x i8] c" to \00" +@.str.1999 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.2000 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.2001 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.2002 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.2003 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.2004 = private unnamed_addr constant [12 x i8] c"the number \00" +@.str.2005 = private unnamed_addr constant [17 x i8] c" doesn't fit in \00" +@.str.2006 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.2007 = private unnamed_addr constant [3 x i8] c".0\00" +@.str.2008 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.2009 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.2010 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.2011 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.2012 = private unnamed_addr constant [10 x i8] c" must be \00" +@.str.2013 = private unnamed_addr constant [15 x i8] c", but this is \00" +@.str.2014 = private unnamed_addr constant [7 x i8] c" (use \00" +@.str.2015 = private unnamed_addr constant [17 x i8] c"(...) to convert\00" +@.str.2016 = private unnamed_addr constant [27 x i8] c", it cuts off the fraction\00" +@.str.2017 = private unnamed_addr constant [2 x i8] c")\00" +@.str.2018 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.2019 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.2020 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.2021 = private unnamed_addr constant [35 x i8] c" (turn it into text with str(...))\00" +@.str.2022 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2023 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2024 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2025 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.2026 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2027 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2028 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.2029 = private unnamed_addr constant [36 x i8] c"' is already the name of a function\00" -@.str.2030 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.2031 = private unnamed_addr constant [39 x i8] c"' is a built-in name, pick another one\00" +@.str.2027 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2028 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2029 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2030 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2031 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2032 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2033 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.2034 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2035 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.2036 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2033 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2034 = private unnamed_addr constant [32 x i8] c"used .deferOn on a null pointer\00" +@.str.2035 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2036 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.2037 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2038 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2038 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2039 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2040 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2041 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.2042 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2040 = private unnamed_addr constant [35 x i8] c"used .deferLimit on a null pointer\00" +@.str.2041 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2042 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.2043 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2044 = private unnamed_addr constant [30 x i8] c"used .nvars on a null pointer\00" +@.str.2044 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2045 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2046 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.2046 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" @.str.2047 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2048 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2049 = private unnamed_addr constant [30 x i8] c"used .nvars on a null pointer\00" +@.str.2048 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2049 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2050 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2051 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" -@.str.2052 = private unnamed_addr constant [4 x i8] c"err\00" +@.str.2051 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2052 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2053 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2054 = private unnamed_addr constant [2 x i8] c"$\00" +@.str.2054 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" @.str.2055 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2056 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.2057 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2058 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.2059 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2056 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2057 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2058 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2059 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" @.str.2060 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2061 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.2062 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2061 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2062 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" @.str.2063 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2064 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" -@.str.2065 = private unnamed_addr constant [4 x i8] c"@V\09\00" -@.str.2066 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.2067 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.2068 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2069 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" -@.str.2070 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2071 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.2072 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.2073 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.2074 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2075 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" -@.str.2076 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2077 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.2078 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.2079 = private unnamed_addr constant [10 x i8] c"```finch\0A\00" -@.str.2080 = private unnamed_addr constant [2 x i8] c" \00" -@.str.2081 = private unnamed_addr constant [5 x i8] c"\0A```\00" -@.str.2082 = private unnamed_addr constant [1 x i8] c"\00" -@.str.2083 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2084 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.2085 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2086 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.2087 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2088 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.2089 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2090 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.2091 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2092 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" -@.str.2093 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2094 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.2095 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2096 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2097 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2064 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2065 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2066 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2067 = private unnamed_addr constant [6 x i8] c"print\00" +@.str.2068 = private unnamed_addr constant [5 x i8] c"addr\00" +@.str.2069 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.2070 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.2071 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.2072 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.2073 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.2074 = private unnamed_addr constant [10 x i8] c"read_file\00" +@.str.2075 = private unnamed_addr constant [11 x i8] c"write_file\00" +@.str.2076 = private unnamed_addr constant [12 x i8] c"file_exists\00" +@.str.2077 = private unnamed_addr constant [6 x i8] c"shell\00" +@.str.2078 = private unnamed_addr constant [5 x i8] c"exit\00" +@.str.2079 = private unnamed_addr constant [6 x i8] c"input\00" +@.str.2080 = private unnamed_addr constant [4 x i8] c"new\00" +@.str.2081 = private unnamed_addr constant [5 x i8] c"free\00" +@.str.2082 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.2083 = private unnamed_addr constant [12 x i8] c"delete_file\00" +@.str.2084 = private unnamed_addr constant [3 x i8] c"i8\00" +@.str.2085 = private unnamed_addr constant [4 x i8] c"i16\00" +@.str.2086 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.2087 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.2088 = private unnamed_addr constant [3 x i8] c"u8\00" +@.str.2089 = private unnamed_addr constant [4 x i8] c"u16\00" +@.str.2090 = private unnamed_addr constant [4 x i8] c"u32\00" +@.str.2091 = private unnamed_addr constant [4 x i8] c"u64\00" +@.str.2092 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.2093 = private unnamed_addr constant [4 x i8] c"f64\00" +@.str.2094 = private unnamed_addr constant [6 x i8] c"error\00" +@.str.2095 = private unnamed_addr constant [4 x i8] c"err\00" +@.str.2096 = private unnamed_addr constant [19 x i8] c"a variable named '\00" +@.str.2097 = private unnamed_addr constant [22 x i8] c"' already exists here\00" @.str.2098 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2099 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2100 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2101 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.2102 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2103 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2099 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2100 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.2101 = private unnamed_addr constant [36 x i8] c"' is already the name of a function\00" +@.str.2102 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.2103 = private unnamed_addr constant [39 x i8] c"' is a built-in name, pick another one\00" @.str.2104 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2105 = private unnamed_addr constant [32 x i8] c"used .deferOn on a null pointer\00" +@.str.2105 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.2106 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2107 = private unnamed_addr constant [35 x i8] c"used .deferLimit on a null pointer\00" +@.str.2107 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.2108 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2109 = private unnamed_addr constant [32 x i8] c"used .deferOn on a null pointer\00" -@.str.2110 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2111 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2109 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2110 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2111 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2112 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2113 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2113 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.2114 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2115 = private unnamed_addr constant [35 x i8] c"used .deferLimit on a null pointer\00" -@.str.2116 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2117 = private unnamed_addr constant [32 x i8] c"used .inDefer on a null pointer\00" -@.str.2118 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2119 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2115 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2116 = private unnamed_addr constant [30 x i8] c"used .nvars on a null pointer\00" +@.str.2117 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2118 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.2119 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2120 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2121 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2121 = private unnamed_addr constant [30 x i8] c"used .nvars on a null pointer\00" @.str.2122 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2123 = private unnamed_addr constant [32 x i8] c"used .inDefer on a null pointer\00" -@.str.2124 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2125 = private unnamed_addr constant [32 x i8] c"used .deferOn on a null pointer\00" -@.str.2126 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2127 = private unnamed_addr constant [35 x i8] c"used .deferLimit on a null pointer\00" -@.str.2128 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2129 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.2130 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.2131 = private unnamed_addr constant [7 x i8] c"member\00" -@.str.2132 = private unnamed_addr constant [6 x i8] c"index\00" -@.str.2133 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2134 = private unnamed_addr constant [1 x i8] c"\00" -@.str.2135 = private unnamed_addr constant [5 x i8] c"push\00" -@.str.2136 = private unnamed_addr constant [4 x i8] c"pop\00" -@.str.2137 = private unnamed_addr constant [7 x i8] c"insert\00" -@.str.2138 = private unnamed_addr constant [7 x i8] c"remove\00" -@.str.2139 = private unnamed_addr constant [6 x i8] c"clear\00" -@.str.2140 = private unnamed_addr constant [7 x i8] c"resize\00" -@.str.2141 = private unnamed_addr constant [5 x i8] c"sort\00" -@.str.2142 = private unnamed_addr constant [8 x i8] c"reverse\00" -@.str.2143 = private unnamed_addr constant [7 x i8] c"assign\00" -@.str.2144 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2145 = private unnamed_addr constant [7 x i8] c"method\00" +@.str.2123 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" +@.str.2124 = private unnamed_addr constant [4 x i8] c"err\00" +@.str.2125 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2126 = private unnamed_addr constant [2 x i8] c"$\00" +@.str.2127 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2128 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2129 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2130 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.2131 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2132 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2133 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.2134 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2135 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2136 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" +@.str.2137 = private unnamed_addr constant [4 x i8] c"@V\09\00" +@.str.2138 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.2139 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.2140 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2141 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.2142 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2143 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.2144 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.2145 = private unnamed_addr constant [2 x i8] c"\09\00" @.str.2146 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2147 = private unnamed_addr constant [27 x i8] c"used .mm on a null pointer\00" +@.str.2147 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" @.str.2148 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2149 = private unnamed_addr constant [5 x i8] c"call\00" -@.str.2150 = private unnamed_addr constant [5 x i8] c"addr\00" -@.str.2151 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2152 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2153 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.2154 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2155 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.2156 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2149 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.2150 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.2151 = private unnamed_addr constant [10 x i8] c"```finch\0A\00" +@.str.2152 = private unnamed_addr constant [2 x i8] c" \00" +@.str.2153 = private unnamed_addr constant [5 x i8] c"\0A```\00" +@.str.2154 = private unnamed_addr constant [1 x i8] c"\00" +@.str.2155 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2156 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.2157 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2158 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2158 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" @.str.2159 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2160 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2160 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.2161 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2162 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2163 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.2164 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2162 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2163 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2164 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" @.str.2165 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2166 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2167 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2166 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2167 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2168 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2169 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2170 = private unnamed_addr constant [1 x i8] c"\00" -@.str.2171 = private unnamed_addr constant [13 x i8] c"the struct '\00" -@.str.2172 = private unnamed_addr constant [19 x i8] c"' is defined twice\00" -@.str.2173 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2174 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" +@.str.2169 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2170 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2171 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2172 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2173 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2174 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2175 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2176 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2177 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2178 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2179 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2180 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2181 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2182 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.2183 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2184 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2176 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2177 = private unnamed_addr constant [32 x i8] c"used .deferOn on a null pointer\00" +@.str.2178 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2179 = private unnamed_addr constant [35 x i8] c"used .deferLimit on a null pointer\00" +@.str.2180 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2181 = private unnamed_addr constant [32 x i8] c"used .deferOn on a null pointer\00" +@.str.2182 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2183 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2184 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2185 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2186 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2187 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2187 = private unnamed_addr constant [35 x i8] c"used .deferLimit on a null pointer\00" @.str.2188 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2189 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2189 = private unnamed_addr constant [32 x i8] c"used .inDefer on a null pointer\00" @.str.2190 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2191 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2192 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2191 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2192 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2193 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2194 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2195 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2196 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2197 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2198 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2199 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.2200 = private unnamed_addr constant [19 x i8] c"' is defined twice\00" -@.str.2201 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2202 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2203 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2204 = private unnamed_addr constant [10 x i8] c"the enum \00" -@.str.2205 = private unnamed_addr constant [18 x i8] c" has the variant \00" -@.str.2206 = private unnamed_addr constant [7 x i8] c" twice\00" -@.str.2207 = private unnamed_addr constant [17 x i8] c"two variants of \00" -@.str.2208 = private unnamed_addr constant [18 x i8] c" have the number \00" -@.str.2209 = private unnamed_addr constant [21 x i8] c" (give each its own)\00" -@.str.2210 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2211 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" -@.str.2212 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2213 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" -@.str.2214 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2215 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2216 = private unnamed_addr constant [2 x i8] c"C\00" -@.str.2217 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2218 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" -@.str.2219 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2195 = private unnamed_addr constant [32 x i8] c"used .inDefer on a null pointer\00" +@.str.2196 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2197 = private unnamed_addr constant [32 x i8] c"used .deferOn on a null pointer\00" +@.str.2198 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2199 = private unnamed_addr constant [35 x i8] c"used .deferLimit on a null pointer\00" +@.str.2200 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2201 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.2202 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.2203 = private unnamed_addr constant [7 x i8] c"member\00" +@.str.2204 = private unnamed_addr constant [6 x i8] c"index\00" +@.str.2205 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2206 = private unnamed_addr constant [1 x i8] c"\00" +@.str.2207 = private unnamed_addr constant [5 x i8] c"push\00" +@.str.2208 = private unnamed_addr constant [4 x i8] c"pop\00" +@.str.2209 = private unnamed_addr constant [7 x i8] c"insert\00" +@.str.2210 = private unnamed_addr constant [7 x i8] c"remove\00" +@.str.2211 = private unnamed_addr constant [6 x i8] c"clear\00" +@.str.2212 = private unnamed_addr constant [7 x i8] c"resize\00" +@.str.2213 = private unnamed_addr constant [5 x i8] c"sort\00" +@.str.2214 = private unnamed_addr constant [8 x i8] c"reverse\00" +@.str.2215 = private unnamed_addr constant [7 x i8] c"assign\00" +@.str.2216 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2217 = private unnamed_addr constant [7 x i8] c"method\00" +@.str.2218 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2219 = private unnamed_addr constant [27 x i8] c"used .mm on a null pointer\00" @.str.2220 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2221 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2222 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2223 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2221 = private unnamed_addr constant [5 x i8] c"call\00" +@.str.2222 = private unnamed_addr constant [5 x i8] c"addr\00" +@.str.2223 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2224 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2225 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.2226 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2227 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2228 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2227 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2228 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2229 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2230 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2230 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" @.str.2231 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2232 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2233 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2232 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2233 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2234 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2235 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2235 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.2236 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2237 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2238 = private unnamed_addr constant [11 x i8] c"function '\00" -@.str.2239 = private unnamed_addr constant [19 x i8] c"' is defined twice\00" +@.str.2237 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2238 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2239 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" @.str.2240 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2241 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" @.str.2242 = private unnamed_addr constant [1 x i8] c"\00" -@.str.2243 = private unnamed_addr constant [35 x i8] c"there is no generic struct named '\00" -@.str.2244 = private unnamed_addr constant [54 x i8] c"' here (a method goes in the same file as its struct)\00" +@.str.2243 = private unnamed_addr constant [13 x i8] c"the struct '\00" +@.str.2244 = private unnamed_addr constant [19 x i8] c"' is defined twice\00" @.str.2245 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2246 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" @.str.2247 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2248 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" @.str.2249 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2250 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2250 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.2251 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2252 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2253 = private unnamed_addr constant [12 x i8] c"the method \00" -@.str.2254 = private unnamed_addr constant [2 x i8] c".\00" -@.str.2255 = private unnamed_addr constant [18 x i8] c" is defined twice\00" -@.str.2256 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2257 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2258 = private unnamed_addr constant [2 x i8] c"C\00" -@.str.2259 = private unnamed_addr constant [2 x i8] c"C\00" -@.str.2260 = private unnamed_addr constant [2 x i8] c"C\00" -@.str.2261 = private unnamed_addr constant [27 x i8] c"there is no struct named '\00" -@.str.2262 = private unnamed_addr constant [77 x i8] c"' here (a method goes in the same file as its struct, or on a struct from C)\00" -@.str.2263 = private unnamed_addr constant [12 x i8] c"the method \00" -@.str.2264 = private unnamed_addr constant [2 x i8] c".\00" -@.str.2265 = private unnamed_addr constant [18 x i8] c" is defined twice\00" +@.str.2253 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2254 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2255 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2256 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2257 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2258 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2259 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2260 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2261 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2262 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2263 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2264 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2265 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2266 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2267 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2268 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2269 = private unnamed_addr constant [12 x i8] c"the struct \00" -@.str.2270 = private unnamed_addr constant [29 x i8] c" already has a field named '\00" +@.str.2267 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2268 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2269 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2270 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" @.str.2271 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.2272 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2273 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2274 = private unnamed_addr constant [11 x i8] c"function '\00" -@.str.2275 = private unnamed_addr constant [19 x i8] c"' is defined twice\00" -@.str.2276 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.2277 = private unnamed_addr constant [44 x i8] c"' is a built-in function, pick another name\00" +@.str.2272 = private unnamed_addr constant [19 x i8] c"' is defined twice\00" +@.str.2273 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2274 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2275 = private unnamed_addr constant [10 x i8] c"the enum \00" +@.str.2276 = private unnamed_addr constant [18 x i8] c" has the variant \00" +@.str.2277 = private unnamed_addr constant [7 x i8] c" twice\00" @.str.2278 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2279 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2280 = private unnamed_addr constant [8 x i8] c"@finch.\00" -@.str.2281 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2282 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2283 = private unnamed_addr constant [2 x i8] c".\00" -@.str.2284 = private unnamed_addr constant [8 x i8] c"@finch.\00" -@.str.2285 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2286 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2287 = private unnamed_addr constant [2 x i8] c".\00" -@.str.2288 = private unnamed_addr constant [2 x i8] c".\00" -@.str.2289 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2290 = private unnamed_addr constant [5 x i8] c"self\00" -@.str.2291 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2292 = private unnamed_addr constant [23 x i8] c"'self' is already the \00" -@.str.2293 = private unnamed_addr constant [25 x i8] c" the method is called on\00" -@.str.2294 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2279 = private unnamed_addr constant [29 x i8] c"used .sums on a null pointer\00" +@.str.2280 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2281 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2282 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2283 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2284 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.2285 = private unnamed_addr constant [19 x i8] c"' is defined twice\00" +@.str.2286 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2287 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2288 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2289 = private unnamed_addr constant [10 x i8] c"the enum \00" +@.str.2290 = private unnamed_addr constant [18 x i8] c" has the variant \00" +@.str.2291 = private unnamed_addr constant [7 x i8] c" twice\00" +@.str.2292 = private unnamed_addr constant [17 x i8] c"two variants of \00" +@.str.2293 = private unnamed_addr constant [18 x i8] c" have the number \00" +@.str.2294 = private unnamed_addr constant [21 x i8] c" (give each its own)\00" @.str.2295 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2296 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2296 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" @.str.2297 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2298 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2298 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" @.str.2299 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2300 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.2301 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2302 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.2303 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2300 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2301 = private unnamed_addr constant [2 x i8] c"C\00" +@.str.2302 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2303 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" @.str.2304 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2305 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.2306 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2305 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2306 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.2307 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2308 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.2309 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2310 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2310 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.2311 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2312 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2313 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2314 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.2315 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2313 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2314 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2315 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.2316 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2317 = private unnamed_addr constant [5 x i8] c"self\00" -@.str.2318 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2317 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2318 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.2319 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2320 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2320 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2321 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2322 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2323 = private unnamed_addr constant [27 x i8] c"used .mm on a null pointer\00" -@.str.2324 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2325 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.2326 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2327 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2328 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" -@.str.2329 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2330 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" -@.str.2331 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2322 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2323 = private unnamed_addr constant [11 x i8] c"function '\00" +@.str.2324 = private unnamed_addr constant [19 x i8] c"' is defined twice\00" +@.str.2325 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2326 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2327 = private unnamed_addr constant [1 x i8] c"\00" +@.str.2328 = private unnamed_addr constant [35 x i8] c"there is no generic struct named '\00" +@.str.2329 = private unnamed_addr constant [54 x i8] c"' here (a method goes in the same file as its struct)\00" +@.str.2330 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2331 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" @.str.2332 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2333 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2333 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" @.str.2334 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2335 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2336 = private unnamed_addr constant [5 x i8] c"self\00" -@.str.2337 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2338 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2339 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" -@.str.2340 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2335 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2336 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2337 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2338 = private unnamed_addr constant [12 x i8] c"the method \00" +@.str.2339 = private unnamed_addr constant [2 x i8] c".\00" +@.str.2340 = private unnamed_addr constant [18 x i8] c" is defined twice\00" @.str.2341 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2342 = private unnamed_addr constant [27 x i8] c"used .mm on a null pointer\00" -@.str.2343 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2344 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.2345 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2346 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.2347 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2348 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.2349 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2350 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2342 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2343 = private unnamed_addr constant [2 x i8] c"C\00" +@.str.2344 = private unnamed_addr constant [2 x i8] c"C\00" +@.str.2345 = private unnamed_addr constant [2 x i8] c"C\00" +@.str.2346 = private unnamed_addr constant [27 x i8] c"there is no struct named '\00" +@.str.2347 = private unnamed_addr constant [77 x i8] c"' here (a method goes in the same file as its struct, or on a struct from C)\00" +@.str.2348 = private unnamed_addr constant [12 x i8] c"the method \00" +@.str.2349 = private unnamed_addr constant [2 x i8] c".\00" +@.str.2350 = private unnamed_addr constant [18 x i8] c" is defined twice\00" @.str.2351 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2352 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2352 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.2353 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2354 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2355 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2356 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2357 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.2358 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2359 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2360 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.2361 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2362 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2354 = private unnamed_addr constant [12 x i8] c"the struct \00" +@.str.2355 = private unnamed_addr constant [29 x i8] c" already has a field named '\00" +@.str.2356 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.2357 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2358 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2359 = private unnamed_addr constant [11 x i8] c"function '\00" +@.str.2360 = private unnamed_addr constant [19 x i8] c"' is defined twice\00" +@.str.2361 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.2362 = private unnamed_addr constant [44 x i8] c"' is a built-in function, pick another name\00" @.str.2363 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2364 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.2365 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2364 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2365 = private unnamed_addr constant [8 x i8] c"@finch.\00" @.str.2366 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2367 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.2368 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2369 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2367 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2368 = private unnamed_addr constant [2 x i8] c".\00" +@.str.2369 = private unnamed_addr constant [8 x i8] c"@finch.\00" @.str.2370 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2371 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" -@.str.2372 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2373 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" +@.str.2371 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2372 = private unnamed_addr constant [2 x i8] c".\00" +@.str.2373 = private unnamed_addr constant [2 x i8] c".\00" @.str.2374 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2375 = private unnamed_addr constant [3 x i8] c", \00" -@.str.2376 = private unnamed_addr constant [1 x i8] c"\00" -@.str.2377 = private unnamed_addr constant [35 x i8] c"there is no generic struct named '\00" -@.str.2378 = private unnamed_addr constant [29 x i8] c"' (a struct written struct \00" -@.str.2379 = private unnamed_addr constant [35 x i8] c"[T] { ... } takes type arguments)\00" +@.str.2375 = private unnamed_addr constant [5 x i8] c"self\00" +@.str.2376 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2377 = private unnamed_addr constant [23 x i8] c"'self' is already the \00" +@.str.2378 = private unnamed_addr constant [25 x i8] c" the method is called on\00" +@.str.2379 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2380 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2381 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" +@.str.2381 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2382 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2383 = private unnamed_addr constant [8 x i8] c" takes \00" -@.str.2384 = private unnamed_addr constant [25 x i8] c" type argument(s), like \00" -@.str.2385 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.2386 = private unnamed_addr constant [3 x i8] c", \00" -@.str.2387 = private unnamed_addr constant [12 x i8] c"], but got \00" -@.str.2388 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.2389 = private unnamed_addr constant [2 x i8] c"]\00" -@.str.2390 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2391 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2383 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2384 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2385 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2386 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2387 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2388 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2389 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2390 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2391 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2392 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2393 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2394 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.2395 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2396 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" +@.str.2393 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2394 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2395 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2396 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2397 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2398 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.2399 = private unnamed_addr constant [2 x i8] c"]\00" +@.str.2398 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2399 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" @.str.2400 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2401 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.2402 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2401 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2402 = private unnamed_addr constant [5 x i8] c"self\00" @.str.2403 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2404 = private unnamed_addr constant [8 x i8] c"@finch.\00" -@.str.2405 = private unnamed_addr constant [2 x i8] c".\00" -@.str.2406 = private unnamed_addr constant [2 x i8] c".\00" -@.str.2407 = private unnamed_addr constant [8 x i8] c"@finch.\00" -@.str.2408 = private unnamed_addr constant [2 x i8] c".\00" -@.str.2409 = private unnamed_addr constant [2 x i8] c".\00" -@.str.2410 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2411 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" +@.str.2404 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2405 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2406 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2407 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2408 = private unnamed_addr constant [27 x i8] c"used .mm on a null pointer\00" +@.str.2409 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2410 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2411 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2412 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2413 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" +@.str.2413 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" @.str.2414 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2415 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2415 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" @.str.2416 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2417 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" -@.str.2418 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2419 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" +@.str.2417 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2418 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2419 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2420 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2421 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" +@.str.2421 = private unnamed_addr constant [5 x i8] c"self\00" @.str.2422 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2423 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2424 = private unnamed_addr constant [18 x i8] c" (while building \00" -@.str.2425 = private unnamed_addr constant [2 x i8] c")\00" +@.str.2423 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2424 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" +@.str.2425 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2426 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2427 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" +@.str.2427 = private unnamed_addr constant [27 x i8] c"used .mm on a null pointer\00" @.str.2428 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2429 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2429 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" @.str.2430 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2431 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2431 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.2432 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2433 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2434 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" +@.str.2433 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2434 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2435 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2436 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" -@.str.2437 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2438 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2436 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2437 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2438 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2439 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2440 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" +@.str.2440 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2441 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2442 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" @.str.2443 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2444 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.2445 = private unnamed_addr constant [6 x i8] c"named\00" +@.str.2444 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2445 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" @.str.2446 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2447 = private unnamed_addr constant [30 x i8] c"used .bound on a null pointer\00" +@.str.2447 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2448 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2449 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2450 = private unnamed_addr constant [30 x i8] c"used .types on a null pointer\00" +@.str.2449 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2450 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2451 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2452 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2453 = private unnamed_addr constant [30 x i8] c"used .bound on a null pointer\00" +@.str.2452 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2453 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2454 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2455 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.2456 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.2457 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str.2458 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2455 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2456 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" +@.str.2457 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2458 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" @.str.2459 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2460 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.2461 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.2462 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2463 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2464 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2460 = private unnamed_addr constant [3 x i8] c", \00" +@.str.2461 = private unnamed_addr constant [1 x i8] c"\00" +@.str.2462 = private unnamed_addr constant [35 x i8] c"there is no generic struct named '\00" +@.str.2463 = private unnamed_addr constant [29 x i8] c"' (a struct written struct \00" +@.str.2464 = private unnamed_addr constant [35 x i8] c"[T] { ... } takes type arguments)\00" @.str.2465 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2466 = private unnamed_addr constant [6 x i8] c"named\00" -@.str.2467 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.2468 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2469 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2470 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2471 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2472 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2473 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2474 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" +@.str.2466 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" +@.str.2467 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2468 = private unnamed_addr constant [8 x i8] c" takes \00" +@.str.2469 = private unnamed_addr constant [25 x i8] c" type argument(s), like \00" +@.str.2470 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.2471 = private unnamed_addr constant [3 x i8] c", \00" +@.str.2472 = private unnamed_addr constant [12 x i8] c"], but got \00" +@.str.2473 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.2474 = private unnamed_addr constant [2 x i8] c"]\00" @.str.2475 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2476 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2477 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.2478 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2479 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2480 = private unnamed_addr constant [8 x i8] c" takes \00" -@.str.2481 = private unnamed_addr constant [28 x i8] c" type argument(s), but got \00" -@.str.2482 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.2483 = private unnamed_addr constant [1 x i8] c"\00" -@.str.2484 = private unnamed_addr constant [1 x i8] c"\00" -@.str.2485 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.2486 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2487 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.2476 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2477 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2478 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2479 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.2480 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2481 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" +@.str.2482 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2483 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.2484 = private unnamed_addr constant [2 x i8] c"]\00" +@.str.2485 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2486 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.2487 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2488 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2489 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.2490 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.2491 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2492 = private unnamed_addr constant [30 x i8] c"this has no type to work out \00" -@.str.2493 = private unnamed_addr constant [3 x i8] c", \00" -@.str.2494 = private unnamed_addr constant [6 x i8] c" from\00" +@.str.2489 = private unnamed_addr constant [8 x i8] c"@finch.\00" +@.str.2490 = private unnamed_addr constant [2 x i8] c".\00" +@.str.2491 = private unnamed_addr constant [2 x i8] c".\00" +@.str.2492 = private unnamed_addr constant [8 x i8] c"@finch.\00" +@.str.2493 = private unnamed_addr constant [2 x i8] c".\00" +@.str.2494 = private unnamed_addr constant [2 x i8] c".\00" @.str.2495 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2496 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2497 = private unnamed_addr constant [17 x i8] c"can't tell what \00" -@.str.2498 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2499 = private unnamed_addr constant [25 x i8] c" is here; write it out: \00" -@.str.2500 = private unnamed_addr constant [11 x i8] c"[int](...)\00" -@.str.2501 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.2502 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2503 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.2504 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2496 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" +@.str.2497 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2498 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" +@.str.2499 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2500 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2501 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2502 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" +@.str.2503 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2504 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" @.str.2505 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2506 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2506 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" @.str.2507 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2508 = private unnamed_addr constant [11 x i8] c"argument '\00" -@.str.2509 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2510 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.2508 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2509 = private unnamed_addr constant [18 x i8] c" (while building \00" +@.str.2510 = private unnamed_addr constant [2 x i8] c")\00" @.str.2511 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2512 = private unnamed_addr constant [2 x i8] c" \00" +@.str.2512 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" @.str.2513 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2514 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" +@.str.2514 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2515 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2516 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2516 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2517 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2518 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2519 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2520 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2521 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2522 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.2523 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.2524 = private unnamed_addr constant [7 x i8] c" x i8]\00" -@.str.2525 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2526 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2527 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2519 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" +@.str.2520 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2521 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" +@.str.2522 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2523 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2524 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2525 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" +@.str.2526 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2527 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" @.str.2528 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2529 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2530 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2529 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2530 = private unnamed_addr constant [6 x i8] c"named\00" @.str.2531 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2532 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2532 = private unnamed_addr constant [30 x i8] c"used .bound on a null pointer\00" @.str.2533 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2534 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2535 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2535 = private unnamed_addr constant [30 x i8] c"used .types on a null pointer\00" @.str.2536 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2537 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.2538 = private unnamed_addr constant [7 x i8] c" x i8]\00" +@.str.2537 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2538 = private unnamed_addr constant [30 x i8] c"used .bound on a null pointer\00" @.str.2539 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2540 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2541 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2542 = private unnamed_addr constant [50 x i8] c"has fields Finch can't see (unions or bit fields)\00" +@.str.2540 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.2541 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.2542 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str.2543 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2544 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2545 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2546 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2547 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2544 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2545 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.2546 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.2547 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2548 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2549 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2550 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2551 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2552 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2553 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2554 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2550 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2551 = private unnamed_addr constant [6 x i8] c"named\00" +@.str.2552 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.2553 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2554 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.2555 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2556 = private unnamed_addr constant [29 x i8] c"used .head on a null pointer\00" -@.str.2557 = private unnamed_addr constant [6 x i8] c"%S.C.\00" -@.str.2558 = private unnamed_addr constant [11 x i8] c" = type { \00" -@.str.2559 = private unnamed_addr constant [3 x i8] c", \00" -@.str.2560 = private unnamed_addr constant [3 x i8] c" }\00" +@.str.2556 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2557 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2558 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2559 = private unnamed_addr constant [34 x i8] c"used .templates on a null pointer\00" +@.str.2560 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2561 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2562 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2562 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.2563 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2564 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2565 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2566 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2567 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2568 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2569 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2570 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2571 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" -@.str.2572 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2573 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" -@.str.2574 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2575 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" +@.str.2565 = private unnamed_addr constant [8 x i8] c" takes \00" +@.str.2566 = private unnamed_addr constant [28 x i8] c" type argument(s), but got \00" +@.str.2567 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.2568 = private unnamed_addr constant [1 x i8] c"\00" +@.str.2569 = private unnamed_addr constant [1 x i8] c"\00" +@.str.2570 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.2571 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2572 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.2573 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2574 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.2575 = private unnamed_addr constant [5 x i8] c"null\00" @.str.2576 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2577 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2578 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2579 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2580 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" +@.str.2577 = private unnamed_addr constant [30 x i8] c"this has no type to work out \00" +@.str.2578 = private unnamed_addr constant [3 x i8] c", \00" +@.str.2579 = private unnamed_addr constant [6 x i8] c" from\00" +@.str.2580 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2581 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2582 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2582 = private unnamed_addr constant [17 x i8] c"can't tell what \00" @.str.2583 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2584 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2585 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" -@.str.2586 = private unnamed_addr constant [18 x i8] c" (while building \00" +@.str.2584 = private unnamed_addr constant [25 x i8] c" is here; write it out: \00" +@.str.2585 = private unnamed_addr constant [11 x i8] c"[int](...)\00" +@.str.2586 = private unnamed_addr constant [5 x i8] c"void\00" @.str.2587 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2588 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2588 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" @.str.2589 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2590 = private unnamed_addr constant [2 x i8] c")\00" +@.str.2590 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2591 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2592 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" -@.str.2593 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2594 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" -@.str.2595 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2596 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" -@.str.2597 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2598 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" -@.str.2599 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2600 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.2601 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2602 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2592 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2593 = private unnamed_addr constant [11 x i8] c"argument '\00" +@.str.2594 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2595 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.2596 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2597 = private unnamed_addr constant [2 x i8] c" \00" +@.str.2598 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2599 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" +@.str.2600 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2601 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2602 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2603 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2604 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2605 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2606 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2607 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2608 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2609 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2610 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2611 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2612 = private unnamed_addr constant [12 x i8] c"the struct \00" -@.str.2613 = private unnamed_addr constant [27 x i8] c" contains itself; use ptr[\00" -@.str.2614 = private unnamed_addr constant [8 x i8] c"] or []\00" -@.str.2615 = private unnamed_addr constant [16 x i8] c" for that field\00" +@.str.2605 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2606 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2607 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.2608 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.2609 = private unnamed_addr constant [7 x i8] c" x i8]\00" +@.str.2610 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2611 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2612 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2613 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2614 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2615 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2616 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2617 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.2618 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2619 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2620 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2620 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.2621 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2622 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2623 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2622 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.2623 = private unnamed_addr constant [7 x i8] c" x i8]\00" @.str.2624 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2625 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2626 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.2627 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2628 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2629 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2625 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2626 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2627 = private unnamed_addr constant [50 x i8] c"has fields Finch can't see (unions or bit fields)\00" +@.str.2628 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2629 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.2630 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2631 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2632 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2631 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2632 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.2633 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2634 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2635 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2634 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2635 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.2636 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2637 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2638 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2637 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2638 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.2639 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2640 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2641 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2642 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2643 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.2644 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2645 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2640 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2641 = private unnamed_addr constant [29 x i8] c"used .head on a null pointer\00" +@.str.2642 = private unnamed_addr constant [6 x i8] c"%S.C.\00" +@.str.2643 = private unnamed_addr constant [11 x i8] c" = type { \00" +@.str.2644 = private unnamed_addr constant [3 x i8] c", \00" +@.str.2645 = private unnamed_addr constant [3 x i8] c" }\00" @.str.2646 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2647 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2648 = private unnamed_addr constant [29 x i8] c"used .head on a null pointer\00" -@.str.2649 = private unnamed_addr constant [4 x i8] c"%S.\00" -@.str.2650 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2651 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2647 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2648 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2649 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2650 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2651 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2652 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2653 = private unnamed_addr constant [2 x i8] c".\00" +@.str.2653 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.2654 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2655 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2656 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2657 = private unnamed_addr constant [11 x i8] c" = type { \00" -@.str.2658 = private unnamed_addr constant [3 x i8] c", \00" -@.str.2659 = private unnamed_addr constant [3 x i8] c" }\00" -@.str.2660 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2661 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" -@.str.2662 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2663 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" -@.str.2664 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.2665 = private unnamed_addr constant [2 x i8] c"!\00" +@.str.2655 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2656 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" +@.str.2657 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2658 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" +@.str.2659 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2660 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" +@.str.2661 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2662 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2663 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2664 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2665 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" @.str.2666 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2667 = private unnamed_addr constant [17 x i8] c"division by zero\00" -@.str.2668 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.2669 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.2670 = private unnamed_addr constant [3 x i8] c"i8\00" -@.str.2671 = private unnamed_addr constant [3 x i8] c"u8\00" -@.str.2672 = private unnamed_addr constant [4 x i8] c"i16\00" -@.str.2673 = private unnamed_addr constant [4 x i8] c"u16\00" -@.str.2674 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.2675 = private unnamed_addr constant [4 x i8] c"u32\00" -@.str.2676 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.2677 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.2678 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.2679 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.2680 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.2681 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str.2667 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2668 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2669 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2670 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" +@.str.2671 = private unnamed_addr constant [18 x i8] c" (while building \00" +@.str.2672 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2673 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2674 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2675 = private unnamed_addr constant [2 x i8] c")\00" +@.str.2676 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2677 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" +@.str.2678 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2679 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" +@.str.2680 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2681 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" @.str.2682 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2683 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.2683 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" @.str.2684 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2685 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2685 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.2686 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2687 = private unnamed_addr constant [43 x i8] c"!DIDerivedType(tag: DW_TAG_member, name: \22\00" -@.str.2688 = private unnamed_addr constant [12 x i8] c"\22, scope: !\00" -@.str.2689 = private unnamed_addr constant [10 x i8] c", file: !\00" -@.str.2690 = private unnamed_addr constant [9 x i8] c", line: \00" -@.str.2691 = private unnamed_addr constant [13 x i8] c", baseType: \00" -@.str.2692 = private unnamed_addr constant [9 x i8] c", size: \00" -@.str.2693 = private unnamed_addr constant [11 x i8] c", offset: \00" -@.str.2694 = private unnamed_addr constant [2 x i8] c")\00" -@.str.2695 = private unnamed_addr constant [21 x i8] c"!DIBasicType(name: \22\00" -@.str.2696 = private unnamed_addr constant [10 x i8] c"\22, size: \00" -@.str.2697 = private unnamed_addr constant [13 x i8] c", encoding: \00" -@.str.2698 = private unnamed_addr constant [2 x i8] c")\00" -@.str.2699 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.2700 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.2701 = private unnamed_addr constant [3 x i8] c"T:\00" -@.str.2702 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2703 = private unnamed_addr constant [32 x i8] c"used .mdcache on a null pointer\00" +@.str.2687 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2688 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2689 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2690 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2691 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2692 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2693 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2694 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2695 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2696 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2697 = private unnamed_addr constant [12 x i8] c"the struct \00" +@.str.2698 = private unnamed_addr constant [27 x i8] c" contains itself; use ptr[\00" +@.str.2699 = private unnamed_addr constant [8 x i8] c"] or []\00" +@.str.2700 = private unnamed_addr constant [16 x i8] c" for that field\00" +@.str.2701 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2702 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2703 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2704 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2705 = private unnamed_addr constant [32 x i8] c"used .mdcache on a null pointer\00" +@.str.2705 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" @.str.2706 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2707 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2708 = private unnamed_addr constant [32 x i8] c"used .mdfiles on a null pointer\00" +@.str.2707 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2708 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2709 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2710 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.2711 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.2712 = private unnamed_addr constant [15 x i8] c"DW_ATE_boolean\00" -@.str.2713 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.2714 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.2715 = private unnamed_addr constant [19 x i8] c"DW_ATE_signed_char\00" -@.str.2716 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.2717 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.2718 = private unnamed_addr constant [14 x i8] c"DW_ATE_signed\00" -@.str.2719 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.2720 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.2721 = private unnamed_addr constant [13 x i8] c"DW_ATE_float\00" -@.str.2722 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.2723 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.2724 = private unnamed_addr constant [13 x i8] c"DW_ATE_float\00" -@.str.2725 = private unnamed_addr constant [16 x i8] c"DW_ATE_unsigned\00" -@.str.2726 = private unnamed_addr constant [14 x i8] c"DW_ATE_signed\00" -@.str.2727 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.2728 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2729 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" -@.str.2730 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2731 = private unnamed_addr constant [22 x i8] c"!DIEnumerator(name: \22\00" +@.str.2710 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2711 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.2712 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2713 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2714 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2715 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2716 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2717 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2718 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2719 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2720 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2721 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2722 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2723 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2724 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2725 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2726 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2727 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2728 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2729 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2730 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2731 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2732 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2733 = private unnamed_addr constant [11 x i8] c"\22, value: \00" -@.str.2734 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2735 = private unnamed_addr constant [2 x i8] c")\00" -@.str.2736 = private unnamed_addr constant [55 x i8] c"!DICompositeType(tag: DW_TAG_enumeration_type, name: \22\00" -@.str.2737 = private unnamed_addr constant [11 x i8] c"\22, file: !\00" -@.str.2738 = private unnamed_addr constant [25 x i8] c", size: 32, elements: !{\00" -@.str.2739 = private unnamed_addr constant [3 x i8] c", \00" -@.str.2740 = private unnamed_addr constant [3 x i8] c"})\00" -@.str.2741 = private unnamed_addr constant [1 x i8] c"\00" -@.str.2742 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2743 = private unnamed_addr constant [32 x i8] c"used .mdcache on a null pointer\00" -@.str.2744 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.2733 = private unnamed_addr constant [29 x i8] c"used .head on a null pointer\00" +@.str.2734 = private unnamed_addr constant [4 x i8] c"%S.\00" +@.str.2735 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2736 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2737 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2738 = private unnamed_addr constant [2 x i8] c".\00" +@.str.2739 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2740 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2741 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2742 = private unnamed_addr constant [11 x i8] c" = type { \00" +@.str.2743 = private unnamed_addr constant [3 x i8] c", \00" +@.str.2744 = private unnamed_addr constant [3 x i8] c" }\00" @.str.2745 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2746 = private unnamed_addr constant [52 x i8] c"!DIDerivedType(tag: DW_TAG_pointer_type, baseType: \00" -@.str.2747 = private unnamed_addr constant [12 x i8] c", size: 64)\00" -@.str.2748 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2749 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" -@.str.2750 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2751 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str.2752 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2753 = private unnamed_addr constant [20 x i8] c"!DISubrange(count: \00" -@.str.2754 = private unnamed_addr constant [2 x i8] c")\00" -@.str.2755 = private unnamed_addr constant [52 x i8] c"!DICompositeType(tag: DW_TAG_array_type, baseType: \00" -@.str.2756 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2757 = private unnamed_addr constant [9 x i8] c", size: \00" -@.str.2758 = private unnamed_addr constant [16 x i8] c", elements: !{!\00" -@.str.2759 = private unnamed_addr constant [3 x i8] c"})\00" -@.str.2760 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2761 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" -@.str.2762 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2746 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" +@.str.2747 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2748 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" +@.str.2749 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.2750 = private unnamed_addr constant [2 x i8] c"!\00" +@.str.2751 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2752 = private unnamed_addr constant [17 x i8] c"division by zero\00" +@.str.2753 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.2754 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.2755 = private unnamed_addr constant [3 x i8] c"i8\00" +@.str.2756 = private unnamed_addr constant [3 x i8] c"u8\00" +@.str.2757 = private unnamed_addr constant [4 x i8] c"i16\00" +@.str.2758 = private unnamed_addr constant [4 x i8] c"u16\00" +@.str.2759 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.2760 = private unnamed_addr constant [4 x i8] c"u32\00" +@.str.2761 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.2762 = private unnamed_addr constant [5 x i8] c"enum\00" @.str.2763 = private unnamed_addr constant [4 x i8] c"str\00" @.str.2764 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.2765 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.2766 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.2765 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.2766 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str.2767 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2768 = private unnamed_addr constant [52 x i8] c"!DIDerivedType(tag: DW_TAG_pointer_type, baseType: \00" -@.str.2769 = private unnamed_addr constant [12 x i8] c", size: 64)\00" -@.str.2770 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.2771 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.2772 = private unnamed_addr constant [4 x i8] c"len\00" -@.str.2773 = private unnamed_addr constant [4 x i8] c"cap\00" -@.str.2774 = private unnamed_addr constant [53 x i8] c"!DICompositeType(tag: DW_TAG_structure_type, name: \22\00" -@.str.2775 = private unnamed_addr constant [11 x i8] c"\22, file: !\00" -@.str.2776 = private unnamed_addr constant [38 x i8] c", size: 192, align: 64, elements: !{!\00" -@.str.2777 = private unnamed_addr constant [4 x i8] c", !\00" -@.str.2778 = private unnamed_addr constant [4 x i8] c", !\00" -@.str.2779 = private unnamed_addr constant [3 x i8] c"})\00" -@.str.2780 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2781 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" -@.str.2782 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2783 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.2784 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.2785 = private unnamed_addr constant [67 x i8] c"!DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64)\00" -@.str.2786 = private unnamed_addr constant [8 x i8] c"entries\00" -@.str.2787 = private unnamed_addr constant [4 x i8] c"len\00" -@.str.2788 = private unnamed_addr constant [5 x i8] c"used\00" -@.str.2789 = private unnamed_addr constant [4 x i8] c"cap\00" -@.str.2790 = private unnamed_addr constant [6 x i8] c"index\00" -@.str.2791 = private unnamed_addr constant [5 x i8] c"icap\00" -@.str.2792 = private unnamed_addr constant [5 x i8] c"adds\00" -@.str.2793 = private unnamed_addr constant [2 x i8] c"!\00" +@.str.2768 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.2769 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2770 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2771 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2772 = private unnamed_addr constant [43 x i8] c"!DIDerivedType(tag: DW_TAG_member, name: \22\00" +@.str.2773 = private unnamed_addr constant [12 x i8] c"\22, scope: !\00" +@.str.2774 = private unnamed_addr constant [10 x i8] c", file: !\00" +@.str.2775 = private unnamed_addr constant [9 x i8] c", line: \00" +@.str.2776 = private unnamed_addr constant [13 x i8] c", baseType: \00" +@.str.2777 = private unnamed_addr constant [9 x i8] c", size: \00" +@.str.2778 = private unnamed_addr constant [11 x i8] c", offset: \00" +@.str.2779 = private unnamed_addr constant [2 x i8] c")\00" +@.str.2780 = private unnamed_addr constant [21 x i8] c"!DIBasicType(name: \22\00" +@.str.2781 = private unnamed_addr constant [10 x i8] c"\22, size: \00" +@.str.2782 = private unnamed_addr constant [13 x i8] c", encoding: \00" +@.str.2783 = private unnamed_addr constant [2 x i8] c")\00" +@.str.2784 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.2785 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.2786 = private unnamed_addr constant [3 x i8] c"T:\00" +@.str.2787 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2788 = private unnamed_addr constant [32 x i8] c"used .mdcache on a null pointer\00" +@.str.2789 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2790 = private unnamed_addr constant [32 x i8] c"used .mdcache on a null pointer\00" +@.str.2791 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2792 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2793 = private unnamed_addr constant [32 x i8] c"used .mdfiles on a null pointer\00" @.str.2794 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2795 = private unnamed_addr constant [53 x i8] c"!DICompositeType(tag: DW_TAG_structure_type, name: \22\00" -@.str.2796 = private unnamed_addr constant [11 x i8] c"\22, file: !\00" -@.str.2797 = private unnamed_addr constant [37 x i8] c", size: 448, align: 64, elements: !{\00" -@.str.2798 = private unnamed_addr constant [3 x i8] c", \00" -@.str.2799 = private unnamed_addr constant [3 x i8] c"})\00" -@.str.2800 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2801 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" -@.str.2802 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2803 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.2804 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2805 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.2806 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2807 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2808 = private unnamed_addr constant [2 x i8] c"!\00" -@.str.2809 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2810 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2811 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2812 = private unnamed_addr constant [53 x i8] c"!DICompositeType(tag: DW_TAG_structure_type, name: \22\00" -@.str.2813 = private unnamed_addr constant [11 x i8] c"\22, file: !\00" -@.str.2814 = private unnamed_addr constant [9 x i8] c", size: \00" -@.str.2815 = private unnamed_addr constant [25 x i8] c", align: 8, elements: !{\00" -@.str.2816 = private unnamed_addr constant [3 x i8] c", \00" -@.str.2817 = private unnamed_addr constant [3 x i8] c"})\00" -@.str.2818 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2819 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" -@.str.2820 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2821 = private unnamed_addr constant [21 x i8] c"!DIBasicType(name: \22\00" -@.str.2822 = private unnamed_addr constant [40 x i8] c"\22, size: 64, encoding: DW_ATE_unsigned)\00" -@.str.2823 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2824 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" -@.str.2825 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2826 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2827 = private unnamed_addr constant [32 x i8] c"used .mdcache on a null pointer\00" -@.str.2828 = private unnamed_addr constant [3 x i8] c"L:\00" -@.str.2829 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2830 = private unnamed_addr constant [32 x i8] c"used .dbgLine on a null pointer\00" -@.str.2831 = private unnamed_addr constant [2 x i8] c":\00" -@.str.2832 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2833 = private unnamed_addr constant [31 x i8] c"used .dbgCol on a null pointer\00" -@.str.2834 = private unnamed_addr constant [2 x i8] c":\00" +@.str.2795 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.2796 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.2797 = private unnamed_addr constant [15 x i8] c"DW_ATE_boolean\00" +@.str.2798 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.2799 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.2800 = private unnamed_addr constant [19 x i8] c"DW_ATE_signed_char\00" +@.str.2801 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.2802 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.2803 = private unnamed_addr constant [14 x i8] c"DW_ATE_signed\00" +@.str.2804 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.2805 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.2806 = private unnamed_addr constant [13 x i8] c"DW_ATE_float\00" +@.str.2807 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.2808 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.2809 = private unnamed_addr constant [13 x i8] c"DW_ATE_float\00" +@.str.2810 = private unnamed_addr constant [16 x i8] c"DW_ATE_unsigned\00" +@.str.2811 = private unnamed_addr constant [14 x i8] c"DW_ATE_signed\00" +@.str.2812 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.2813 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2814 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" +@.str.2815 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2816 = private unnamed_addr constant [22 x i8] c"!DIEnumerator(name: \22\00" +@.str.2817 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2818 = private unnamed_addr constant [11 x i8] c"\22, value: \00" +@.str.2819 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2820 = private unnamed_addr constant [2 x i8] c")\00" +@.str.2821 = private unnamed_addr constant [55 x i8] c"!DICompositeType(tag: DW_TAG_enumeration_type, name: \22\00" +@.str.2822 = private unnamed_addr constant [11 x i8] c"\22, file: !\00" +@.str.2823 = private unnamed_addr constant [25 x i8] c", size: 32, elements: !{\00" +@.str.2824 = private unnamed_addr constant [3 x i8] c", \00" +@.str.2825 = private unnamed_addr constant [3 x i8] c"})\00" +@.str.2826 = private unnamed_addr constant [1 x i8] c"\00" +@.str.2827 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2828 = private unnamed_addr constant [32 x i8] c"used .mdcache on a null pointer\00" +@.str.2829 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.2830 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2831 = private unnamed_addr constant [52 x i8] c"!DIDerivedType(tag: DW_TAG_pointer_type, baseType: \00" +@.str.2832 = private unnamed_addr constant [12 x i8] c", size: 64)\00" +@.str.2833 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2834 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" @.str.2835 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2836 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" +@.str.2836 = private unnamed_addr constant [6 x i8] c"fixed\00" @.str.2837 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2838 = private unnamed_addr constant [32 x i8] c"used .mdcache on a null pointer\00" -@.str.2839 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2840 = private unnamed_addr constant [32 x i8] c"used .mdcache on a null pointer\00" +@.str.2838 = private unnamed_addr constant [20 x i8] c"!DISubrange(count: \00" +@.str.2839 = private unnamed_addr constant [2 x i8] c")\00" +@.str.2840 = private unnamed_addr constant [52 x i8] c"!DICompositeType(tag: DW_TAG_array_type, baseType: \00" @.str.2841 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2842 = private unnamed_addr constant [19 x i8] c"!DILocation(line: \00" -@.str.2843 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2844 = private unnamed_addr constant [32 x i8] c"used .dbgLine on a null pointer\00" -@.str.2845 = private unnamed_addr constant [11 x i8] c", column: \00" -@.str.2846 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2847 = private unnamed_addr constant [31 x i8] c"used .dbgCol on a null pointer\00" -@.str.2848 = private unnamed_addr constant [11 x i8] c", scope: !\00" -@.str.2849 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2850 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" -@.str.2851 = private unnamed_addr constant [2 x i8] c")\00" +@.str.2842 = private unnamed_addr constant [9 x i8] c", size: \00" +@.str.2843 = private unnamed_addr constant [16 x i8] c", elements: !{!\00" +@.str.2844 = private unnamed_addr constant [3 x i8] c"})\00" +@.str.2845 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2846 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" +@.str.2847 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2848 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.2849 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.2850 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.2851 = private unnamed_addr constant [6 x i8] c"array\00" @.str.2852 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2853 = private unnamed_addr constant [32 x i8] c"used .mdcache on a null pointer\00" -@.str.2854 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2855 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.2856 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.2857 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2858 = private unnamed_addr constant [32 x i8] c"used .mdfiles on a null pointer\00" -@.str.2859 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2860 = private unnamed_addr constant [28 x i8] c"!DISubroutineType(types: !{\00" -@.str.2861 = private unnamed_addr constant [3 x i8] c", \00" -@.str.2862 = private unnamed_addr constant [3 x i8] c"})\00" -@.str.2863 = private unnamed_addr constant [31 x i8] c"distinct !DISubprogram(name: \22\00" -@.str.2864 = private unnamed_addr constant [18 x i8] c"\22, linkageName: \22\00" +@.str.2853 = private unnamed_addr constant [52 x i8] c"!DIDerivedType(tag: DW_TAG_pointer_type, baseType: \00" +@.str.2854 = private unnamed_addr constant [12 x i8] c", size: 64)\00" +@.str.2855 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.2856 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.2857 = private unnamed_addr constant [4 x i8] c"len\00" +@.str.2858 = private unnamed_addr constant [4 x i8] c"cap\00" +@.str.2859 = private unnamed_addr constant [53 x i8] c"!DICompositeType(tag: DW_TAG_structure_type, name: \22\00" +@.str.2860 = private unnamed_addr constant [11 x i8] c"\22, file: !\00" +@.str.2861 = private unnamed_addr constant [38 x i8] c", size: 192, align: 64, elements: !{!\00" +@.str.2862 = private unnamed_addr constant [4 x i8] c", !\00" +@.str.2863 = private unnamed_addr constant [4 x i8] c", !\00" +@.str.2864 = private unnamed_addr constant [3 x i8] c"})\00" @.str.2865 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2866 = private unnamed_addr constant [12 x i8] c"\22, scope: !\00" -@.str.2867 = private unnamed_addr constant [10 x i8] c", file: !\00" -@.str.2868 = private unnamed_addr constant [9 x i8] c", line: \00" -@.str.2869 = private unnamed_addr constant [10 x i8] c", type: !\00" -@.str.2870 = private unnamed_addr constant [14 x i8] c", scopeLine: \00" -@.str.2871 = private unnamed_addr constant [88 x i8] c", flags: DIFlagPrototyped, spFlags: DISPFlagDefinition | DISPFlagLocalToUnit, unit: !0)\00" -@.str.2872 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2873 = private unnamed_addr constant [30 x i8] c"used .debug on a null pointer\00" -@.str.2874 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2875 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" -@.str.2876 = private unnamed_addr constant [1 x i8] c"\00" -@.str.2877 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2878 = private unnamed_addr constant [31 x i8] c"used .dbgArg on a null pointer\00" -@.str.2879 = private unnamed_addr constant [8 x i8] c", arg: \00" -@.str.2880 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2881 = private unnamed_addr constant [31 x i8] c"used .dbgArg on a null pointer\00" -@.str.2882 = private unnamed_addr constant [25 x i8] c"!DILocalVariable(name: \22\00" -@.str.2883 = private unnamed_addr constant [12 x i8] c"\22, scope: !\00" -@.str.2884 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2885 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" -@.str.2886 = private unnamed_addr constant [10 x i8] c", file: !\00" +@.str.2866 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" +@.str.2867 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2868 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.2869 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.2870 = private unnamed_addr constant [67 x i8] c"!DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64)\00" +@.str.2871 = private unnamed_addr constant [8 x i8] c"entries\00" +@.str.2872 = private unnamed_addr constant [4 x i8] c"len\00" +@.str.2873 = private unnamed_addr constant [5 x i8] c"used\00" +@.str.2874 = private unnamed_addr constant [4 x i8] c"cap\00" +@.str.2875 = private unnamed_addr constant [6 x i8] c"index\00" +@.str.2876 = private unnamed_addr constant [5 x i8] c"icap\00" +@.str.2877 = private unnamed_addr constant [5 x i8] c"adds\00" +@.str.2878 = private unnamed_addr constant [2 x i8] c"!\00" +@.str.2879 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2880 = private unnamed_addr constant [53 x i8] c"!DICompositeType(tag: DW_TAG_structure_type, name: \22\00" +@.str.2881 = private unnamed_addr constant [11 x i8] c"\22, file: !\00" +@.str.2882 = private unnamed_addr constant [37 x i8] c", size: 448, align: 64, elements: !{\00" +@.str.2883 = private unnamed_addr constant [3 x i8] c", \00" +@.str.2884 = private unnamed_addr constant [3 x i8] c"})\00" +@.str.2885 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2886 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" @.str.2887 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2888 = private unnamed_addr constant [32 x i8] c"used .mdfiles on a null pointer\00" +@.str.2888 = private unnamed_addr constant [7 x i8] c"struct\00" @.str.2889 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2890 = private unnamed_addr constant [9 x i8] c", line: \00" -@.str.2891 = private unnamed_addr constant [10 x i8] c", type: !\00" -@.str.2892 = private unnamed_addr constant [2 x i8] c")\00" -@.str.2893 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2894 = private unnamed_addr constant [32 x i8] c"used .dbgLine on a null pointer\00" +@.str.2890 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.2891 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2892 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2893 = private unnamed_addr constant [2 x i8] c"!\00" +@.str.2894 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2895 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2896 = private unnamed_addr constant [31 x i8] c"used .dbgCol on a null pointer\00" -@.str.2897 = private unnamed_addr constant [42 x i8] c"call void @llvm.dbg.declare(metadata ptr \00" -@.str.2898 = private unnamed_addr constant [13 x i8] c", metadata !\00" -@.str.2899 = private unnamed_addr constant [28 x i8] c", metadata !DIExpression())\00" -@.str.2900 = private unnamed_addr constant [21 x i8] c"!llvm.dbg.cu = !{!0}\00" -@.str.2901 = private unnamed_addr constant [31 x i8] c"!llvm.module.flags = !{!1, !2}\00" -@.str.2902 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2903 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" -@.str.2904 = private unnamed_addr constant [2 x i8] c"!\00" -@.str.2905 = private unnamed_addr constant [4 x i8] c" = \00" -@.str.2906 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2907 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" +@.str.2896 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2897 = private unnamed_addr constant [53 x i8] c"!DICompositeType(tag: DW_TAG_structure_type, name: \22\00" +@.str.2898 = private unnamed_addr constant [11 x i8] c"\22, file: !\00" +@.str.2899 = private unnamed_addr constant [9 x i8] c", size: \00" +@.str.2900 = private unnamed_addr constant [25 x i8] c", align: 8, elements: !{\00" +@.str.2901 = private unnamed_addr constant [3 x i8] c", \00" +@.str.2902 = private unnamed_addr constant [3 x i8] c"})\00" +@.str.2903 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2904 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" +@.str.2905 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2906 = private unnamed_addr constant [21 x i8] c"!DIBasicType(name: \22\00" +@.str.2907 = private unnamed_addr constant [40 x i8] c"\22, size: 64, encoding: DW_ATE_unsigned)\00" @.str.2908 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2909 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.2910 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.2909 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" +@.str.2910 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.2911 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2912 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.2913 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2912 = private unnamed_addr constant [32 x i8] c"used .mdcache on a null pointer\00" +@.str.2913 = private unnamed_addr constant [3 x i8] c"L:\00" @.str.2914 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2915 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.2916 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2917 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.2918 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2919 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.2915 = private unnamed_addr constant [32 x i8] c"used .dbgLine on a null pointer\00" +@.str.2916 = private unnamed_addr constant [2 x i8] c":\00" +@.str.2917 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2918 = private unnamed_addr constant [31 x i8] c"used .dbgCol on a null pointer\00" +@.str.2919 = private unnamed_addr constant [2 x i8] c":\00" @.str.2920 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2921 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.2921 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" @.str.2922 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2923 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" +@.str.2923 = private unnamed_addr constant [32 x i8] c"used .mdcache on a null pointer\00" @.str.2924 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2925 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.2925 = private unnamed_addr constant [32 x i8] c"used .mdcache on a null pointer\00" @.str.2926 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2927 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" -@.str.2928 = private unnamed_addr constant [1 x i8] c"\00" -@.str.2929 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2930 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" +@.str.2927 = private unnamed_addr constant [19 x i8] c"!DILocation(line: \00" +@.str.2928 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2929 = private unnamed_addr constant [32 x i8] c"used .dbgLine on a null pointer\00" +@.str.2930 = private unnamed_addr constant [11 x i8] c", column: \00" @.str.2931 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2932 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.2933 = private unnamed_addr constant [18 x i8] c" (while building \00" +@.str.2932 = private unnamed_addr constant [31 x i8] c"used .dbgCol on a null pointer\00" +@.str.2933 = private unnamed_addr constant [11 x i8] c", scope: !\00" @.str.2934 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2935 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.2935 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" @.str.2936 = private unnamed_addr constant [2 x i8] c")\00" @.str.2937 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2938 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" +@.str.2938 = private unnamed_addr constant [32 x i8] c"used .mdcache on a null pointer\00" @.str.2939 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2940 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.2941 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2942 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.2943 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2940 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.2941 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.2942 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2943 = private unnamed_addr constant [32 x i8] c"used .mdfiles on a null pointer\00" @.str.2944 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2945 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.2946 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2947 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2948 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" -@.str.2949 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2950 = private unnamed_addr constant [32 x i8] c"used .allocas on a null pointer\00" -@.str.2951 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2952 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" -@.str.2953 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2954 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.2955 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2956 = private unnamed_addr constant [30 x i8] c"used .nvars on a null pointer\00" +@.str.2945 = private unnamed_addr constant [28 x i8] c"!DISubroutineType(types: !{\00" +@.str.2946 = private unnamed_addr constant [3 x i8] c", \00" +@.str.2947 = private unnamed_addr constant [3 x i8] c"})\00" +@.str.2948 = private unnamed_addr constant [31 x i8] c"distinct !DISubprogram(name: \22\00" +@.str.2949 = private unnamed_addr constant [18 x i8] c"\22, linkageName: \22\00" +@.str.2950 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2951 = private unnamed_addr constant [12 x i8] c"\22, scope: !\00" +@.str.2952 = private unnamed_addr constant [10 x i8] c", file: !\00" +@.str.2953 = private unnamed_addr constant [9 x i8] c", line: \00" +@.str.2954 = private unnamed_addr constant [10 x i8] c", type: !\00" +@.str.2955 = private unnamed_addr constant [14 x i8] c", scopeLine: \00" +@.str.2956 = private unnamed_addr constant [88 x i8] c", flags: DIFlagPrototyped, spFlags: DISPFlagDefinition | DISPFlagLocalToUnit, unit: !0)\00" @.str.2957 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2958 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" +@.str.2958 = private unnamed_addr constant [30 x i8] c"used .debug on a null pointer\00" @.str.2959 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2960 = private unnamed_addr constant [30 x i8] c"used .debug on a null pointer\00" -@.str.2961 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2962 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" -@.str.2963 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2964 = private unnamed_addr constant [32 x i8] c"used .dbgLine on a null pointer\00" +@.str.2960 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" +@.str.2961 = private unnamed_addr constant [1 x i8] c"\00" +@.str.2962 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2963 = private unnamed_addr constant [31 x i8] c"used .dbgArg on a null pointer\00" +@.str.2964 = private unnamed_addr constant [8 x i8] c", arg: \00" @.str.2965 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2966 = private unnamed_addr constant [31 x i8] c"used .dbgCol on a null pointer\00" -@.str.2967 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2968 = private unnamed_addr constant [32 x i8] c"used .deferOn on a null pointer\00" +@.str.2966 = private unnamed_addr constant [31 x i8] c"used .dbgArg on a null pointer\00" +@.str.2967 = private unnamed_addr constant [25 x i8] c"!DILocalVariable(name: \22\00" +@.str.2968 = private unnamed_addr constant [12 x i8] c"\22, scope: !\00" @.str.2969 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2970 = private unnamed_addr constant [32 x i8] c"used .inDefer on a null pointer\00" -@.str.2971 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2972 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.2973 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2974 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.2975 = private unnamed_addr constant [10 x i8] c"ptr %self\00" -@.str.2976 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.2977 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2978 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.2979 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.2970 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" +@.str.2971 = private unnamed_addr constant [10 x i8] c", file: !\00" +@.str.2972 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2973 = private unnamed_addr constant [32 x i8] c"used .mdfiles on a null pointer\00" +@.str.2974 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2975 = private unnamed_addr constant [9 x i8] c", line: \00" +@.str.2976 = private unnamed_addr constant [10 x i8] c", type: !\00" +@.str.2977 = private unnamed_addr constant [2 x i8] c")\00" +@.str.2978 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2979 = private unnamed_addr constant [32 x i8] c"used .dbgLine on a null pointer\00" @.str.2980 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2981 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.2982 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2983 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.2984 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2985 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.2986 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2987 = private unnamed_addr constant [5 x i8] c"self\00" -@.str.2988 = private unnamed_addr constant [6 x i8] c"%self\00" -@.str.2989 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2990 = private unnamed_addr constant [30 x i8] c"used .debug on a null pointer\00" -@.str.2991 = private unnamed_addr constant [5 x i8] c"self\00" -@.str.2992 = private unnamed_addr constant [6 x i8] c"%self\00" +@.str.2981 = private unnamed_addr constant [31 x i8] c"used .dbgCol on a null pointer\00" +@.str.2982 = private unnamed_addr constant [42 x i8] c"call void @llvm.dbg.declare(metadata ptr \00" +@.str.2983 = private unnamed_addr constant [13 x i8] c", metadata !\00" +@.str.2984 = private unnamed_addr constant [28 x i8] c", metadata !DIExpression())\00" +@.str.2985 = private unnamed_addr constant [21 x i8] c"!llvm.dbg.cu = !{!0}\00" +@.str.2986 = private unnamed_addr constant [31 x i8] c"!llvm.module.flags = !{!1, !2}\00" +@.str.2987 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2988 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" +@.str.2989 = private unnamed_addr constant [2 x i8] c"!\00" +@.str.2990 = private unnamed_addr constant [4 x i8] c" = \00" +@.str.2991 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2992 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" @.str.2993 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2994 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.2995 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2996 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.2997 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.2998 = private unnamed_addr constant [4 x i8] c" %p\00" -@.str.2999 = private unnamed_addr constant [3 x i8] c"%p\00" -@.str.3000 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3001 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3002 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2994 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.2995 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.2996 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2997 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.2998 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.2999 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3000 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3001 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3002 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" @.str.3003 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3004 = private unnamed_addr constant [31 x i8] c"used .dbgArg on a null pointer\00" +@.str.3004 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" @.str.3005 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3006 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" @.str.3007 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3008 = private unnamed_addr constant [31 x i8] c"used .dbgArg on a null pointer\00" +@.str.3008 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" @.str.3009 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3010 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3011 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3012 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3013 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3014 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3015 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3010 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3011 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3012 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" +@.str.3013 = private unnamed_addr constant [1 x i8] c"\00" +@.str.3014 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3015 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" @.str.3016 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3017 = private unnamed_addr constant [31 x i8] c"used .dbgArg on a null pointer\00" -@.str.3018 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3017 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3018 = private unnamed_addr constant [18 x i8] c" (while building \00" @.str.3019 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3020 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.3021 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3022 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3023 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3024 = private unnamed_addr constant [11 x i8] c"function '\00" -@.str.3025 = private unnamed_addr constant [39 x i8] c"' can reach its end without returning \00" +@.str.3020 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3021 = private unnamed_addr constant [2 x i8] c")\00" +@.str.3022 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3023 = private unnamed_addr constant [33 x i8] c"used .instNote on a null pointer\00" +@.str.3024 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3025 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" @.str.3026 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3027 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" @.str.3028 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3029 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3030 = private unnamed_addr constant [5 x i8] c"ret \00" +@.str.3029 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3030 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" @.str.3031 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3032 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3033 = private unnamed_addr constant [54 x i8] c" { i1 true, i8 0, { ptr, i64, i64 } zeroinitializer }\00" -@.str.3034 = private unnamed_addr constant [9 x i8] c"ret void\00" -@.str.3035 = private unnamed_addr constant [1 x i8] c"\00" -@.str.3036 = private unnamed_addr constant [8 x i8] c" !dbg !\00" -@.str.3037 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3038 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" -@.str.3039 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3040 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.3041 = private unnamed_addr constant [17 x i8] c"define internal \00" +@.str.3032 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3033 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" +@.str.3034 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3035 = private unnamed_addr constant [32 x i8] c"used .allocas on a null pointer\00" +@.str.3036 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3037 = private unnamed_addr constant [28 x i8] c"used .tmp on a null pointer\00" +@.str.3038 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3039 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.3040 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3041 = private unnamed_addr constant [30 x i8] c"used .nvars on a null pointer\00" @.str.3042 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3043 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3044 = private unnamed_addr constant [2 x i8] c" \00" -@.str.3045 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3046 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3047 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.3048 = private unnamed_addr constant [3 x i8] c", \00" -@.str.3049 = private unnamed_addr constant [2 x i8] c")\00" -@.str.3050 = private unnamed_addr constant [11 x i8] c" {\0Aentry:\0A\00" -@.str.3051 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3052 = private unnamed_addr constant [32 x i8] c"used .allocas on a null pointer\00" -@.str.3053 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.3054 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.3055 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3056 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" -@.str.3057 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.3058 = private unnamed_addr constant [4 x i8] c"\0A}\0A\00" -@.str.3059 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3060 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.3061 = private unnamed_addr constant [67 x i8] c"this code can never run (it comes after return, break or continue)\00" +@.str.3043 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" +@.str.3044 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3045 = private unnamed_addr constant [30 x i8] c"used .debug on a null pointer\00" +@.str.3046 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3047 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" +@.str.3048 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3049 = private unnamed_addr constant [32 x i8] c"used .dbgLine on a null pointer\00" +@.str.3050 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3051 = private unnamed_addr constant [31 x i8] c"used .dbgCol on a null pointer\00" +@.str.3052 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3053 = private unnamed_addr constant [32 x i8] c"used .deferOn on a null pointer\00" +@.str.3054 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3055 = private unnamed_addr constant [32 x i8] c"used .inDefer on a null pointer\00" +@.str.3056 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3057 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3058 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3059 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3060 = private unnamed_addr constant [10 x i8] c"ptr %self\00" +@.str.3061 = private unnamed_addr constant [7 x i8] c"struct\00" @.str.3062 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3063 = private unnamed_addr constant [32 x i8] c"used .dbgLine on a null pointer\00" -@.str.3064 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3065 = private unnamed_addr constant [31 x i8] c"used .dbgCol on a null pointer\00" -@.str.3066 = private unnamed_addr constant [6 x i8] c"block\00" -@.str.3067 = private unnamed_addr constant [5 x i8] c"decl\00" -@.str.3068 = private unnamed_addr constant [7 x i8] c"assign\00" -@.str.3069 = private unnamed_addr constant [5 x i8] c"expr\00" -@.str.3070 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3071 = private unnamed_addr constant [3 x i8] c"or\00" -@.str.3072 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3073 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3074 = private unnamed_addr constant [6 x i8] c"match\00" -@.str.3075 = private unnamed_addr constant [3 x i8] c"if\00" -@.str.3076 = private unnamed_addr constant [6 x i8] c"while\00" -@.str.3077 = private unnamed_addr constant [4 x i8] c"for\00" -@.str.3078 = private unnamed_addr constant [5 x i8] c"each\00" -@.str.3079 = private unnamed_addr constant [7 x i8] c"return\00" -@.str.3080 = private unnamed_addr constant [6 x i8] c"defer\00" -@.str.3081 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3082 = private unnamed_addr constant [32 x i8] c"used .inDefer on a null pointer\00" -@.str.3083 = private unnamed_addr constant [34 x i8] c"defer inside defer is not allowed\00" -@.str.3084 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3085 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.3086 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3087 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3063 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3064 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.3065 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3066 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3067 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3068 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3069 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3070 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3071 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3072 = private unnamed_addr constant [5 x i8] c"self\00" +@.str.3073 = private unnamed_addr constant [6 x i8] c"%self\00" +@.str.3074 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3075 = private unnamed_addr constant [30 x i8] c"used .debug on a null pointer\00" +@.str.3076 = private unnamed_addr constant [5 x i8] c"self\00" +@.str.3077 = private unnamed_addr constant [6 x i8] c"%self\00" +@.str.3078 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3079 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3080 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3081 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3082 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3083 = private unnamed_addr constant [4 x i8] c" %p\00" +@.str.3084 = private unnamed_addr constant [3 x i8] c"%p\00" +@.str.3085 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3086 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3087 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3088 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3089 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3090 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.3091 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3089 = private unnamed_addr constant [31 x i8] c"used .dbgArg on a null pointer\00" +@.str.3090 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3091 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" @.str.3092 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3093 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3093 = private unnamed_addr constant [31 x i8] c"used .dbgArg on a null pointer\00" @.str.3094 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3095 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3096 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3097 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3096 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3097 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3098 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3099 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3100 = private unnamed_addr constant [30 x i8] c"used .nvars on a null pointer\00" -@.str.3101 = private unnamed_addr constant [6 x i8] c"break\00" -@.str.3102 = private unnamed_addr constant [9 x i8] c"continue\00" +@.str.3099 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3100 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3101 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3102 = private unnamed_addr constant [31 x i8] c"used .dbgArg on a null pointer\00" @.str.3103 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3104 = private unnamed_addr constant [32 x i8] c"used .inDefer on a null pointer\00" -@.str.3105 = private unnamed_addr constant [28 x i8] c" can't be used inside defer\00" +@.str.3104 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3105 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" @.str.3106 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3107 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" -@.str.3108 = private unnamed_addr constant [32 x i8] c" can only be used inside a loop\00" -@.str.3109 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3110 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" +@.str.3107 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3108 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3109 = private unnamed_addr constant [11 x i8] c"function '\00" +@.str.3110 = private unnamed_addr constant [39 x i8] c"' can reach its end without returning \00" @.str.3111 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3112 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" +@.str.3112 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" @.str.3113 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3114 = private unnamed_addr constant [6 x i8] c"break\00" -@.str.3115 = private unnamed_addr constant [19 x i8] c"unknown statement \00" +@.str.3114 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3115 = private unnamed_addr constant [5 x i8] c"ret \00" @.str.3116 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3117 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3118 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3119 = private unnamed_addr constant [47 x i8] c"this gives back nothing, so it can't be stored\00" -@.str.3120 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.3121 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3122 = private unnamed_addr constant [35 x i8] c"null needs a type, like: ptr[int] \00" -@.str.3123 = private unnamed_addr constant [8 x i8] c" = null\00" -@.str.3124 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.3125 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3126 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3127 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.3128 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.3129 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3130 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.3131 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3132 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3133 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.3134 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3135 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3117 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3118 = private unnamed_addr constant [54 x i8] c" { i1 true, i8 0, { ptr, i64, i64 } zeroinitializer }\00" +@.str.3119 = private unnamed_addr constant [9 x i8] c"ret void\00" +@.str.3120 = private unnamed_addr constant [1 x i8] c"\00" +@.str.3121 = private unnamed_addr constant [8 x i8] c" !dbg !\00" +@.str.3122 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3123 = private unnamed_addr constant [33 x i8] c"used .dbgScope on a null pointer\00" +@.str.3124 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3125 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.3126 = private unnamed_addr constant [17 x i8] c"define internal \00" +@.str.3127 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3128 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3129 = private unnamed_addr constant [2 x i8] c" \00" +@.str.3130 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3131 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3132 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.3133 = private unnamed_addr constant [3 x i8] c", \00" +@.str.3134 = private unnamed_addr constant [2 x i8] c")\00" +@.str.3135 = private unnamed_addr constant [11 x i8] c" {\0Aentry:\0A\00" @.str.3136 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3137 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.3138 = private unnamed_addr constant [29 x i8] c"there is no variable named '\00" -@.str.3139 = private unnamed_addr constant [19 x i8] c"' (create it with \00" -@.str.3140 = private unnamed_addr constant [9 x i8] c" := ...)\00" -@.str.3141 = private unnamed_addr constant [20 x i8] c"the loop variable '\00" -@.str.3142 = private unnamed_addr constant [19 x i8] c"' can't be changed\00" -@.str.3143 = private unnamed_addr constant [10 x i8] c"the value\00" -@.str.3144 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.3145 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.3146 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.3147 = private unnamed_addr constant [2 x i8] c"=\00" -@.str.3148 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3149 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.3150 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3151 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3152 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3153 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.3154 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3137 = private unnamed_addr constant [32 x i8] c"used .allocas on a null pointer\00" +@.str.3138 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.3139 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.3140 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3141 = private unnamed_addr constant [29 x i8] c"used .body on a null pointer\00" +@.str.3142 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.3143 = private unnamed_addr constant [4 x i8] c"\0A}\0A\00" +@.str.3144 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3145 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.3146 = private unnamed_addr constant [67 x i8] c"this code can never run (it comes after return, break or continue)\00" +@.str.3147 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3148 = private unnamed_addr constant [32 x i8] c"used .dbgLine on a null pointer\00" +@.str.3149 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3150 = private unnamed_addr constant [31 x i8] c"used .dbgCol on a null pointer\00" +@.str.3151 = private unnamed_addr constant [6 x i8] c"block\00" +@.str.3152 = private unnamed_addr constant [5 x i8] c"decl\00" +@.str.3153 = private unnamed_addr constant [7 x i8] c"assign\00" +@.str.3154 = private unnamed_addr constant [5 x i8] c"expr\00" @.str.3155 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3156 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3157 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.3156 = private unnamed_addr constant [3 x i8] c"or\00" +@.str.3157 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3158 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3159 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.3160 = private unnamed_addr constant [12 x i8] c"a condition\00" -@.str.3161 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3162 = private unnamed_addr constant [5 x i8] c"then\00" -@.str.3163 = private unnamed_addr constant [5 x i8] c"else\00" -@.str.3164 = private unnamed_addr constant [6 x i8] c"endif\00" -@.str.3165 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3159 = private unnamed_addr constant [6 x i8] c"match\00" +@.str.3160 = private unnamed_addr constant [3 x i8] c"if\00" +@.str.3161 = private unnamed_addr constant [6 x i8] c"while\00" +@.str.3162 = private unnamed_addr constant [4 x i8] c"for\00" +@.str.3163 = private unnamed_addr constant [5 x i8] c"each\00" +@.str.3164 = private unnamed_addr constant [7 x i8] c"return\00" +@.str.3165 = private unnamed_addr constant [6 x i8] c"defer\00" @.str.3166 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3167 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.3168 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3167 = private unnamed_addr constant [32 x i8] c"used .inDefer on a null pointer\00" +@.str.3168 = private unnamed_addr constant [34 x i8] c"defer inside defer is not allowed\00" @.str.3169 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3170 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.3171 = private unnamed_addr constant [11 x i8] c"while.cond\00" -@.str.3172 = private unnamed_addr constant [11 x i8] c"while.body\00" -@.str.3173 = private unnamed_addr constant [10 x i8] c"while.end\00" +@.str.3170 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3171 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3172 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3173 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3174 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3175 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.3175 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.3176 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3177 = private unnamed_addr constant [5 x i8] c"true\00" -@.str.3178 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3177 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3178 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.3179 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3180 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" +@.str.3180 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3181 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3182 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.3183 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3184 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.3185 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3186 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3187 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3188 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" -@.str.3189 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3190 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" -@.str.3191 = private unnamed_addr constant [6 x i8] c"break\00" -@.str.3192 = private unnamed_addr constant [6 x i8] c"while\00" -@.str.3193 = private unnamed_addr constant [4 x i8] c"for\00" -@.str.3194 = private unnamed_addr constant [5 x i8] c"each\00" -@.str.3195 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3196 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.3197 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3198 = private unnamed_addr constant [21 x i8] c"the start of a range\00" -@.str.3199 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3200 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.3184 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3185 = private unnamed_addr constant [30 x i8] c"used .nvars on a null pointer\00" +@.str.3186 = private unnamed_addr constant [6 x i8] c"break\00" +@.str.3187 = private unnamed_addr constant [9 x i8] c"continue\00" +@.str.3188 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3189 = private unnamed_addr constant [32 x i8] c"used .inDefer on a null pointer\00" +@.str.3190 = private unnamed_addr constant [28 x i8] c" can't be used inside defer\00" +@.str.3191 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3192 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" +@.str.3193 = private unnamed_addr constant [32 x i8] c" can only be used inside a loop\00" +@.str.3194 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3195 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" +@.str.3196 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3197 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" +@.str.3198 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3199 = private unnamed_addr constant [6 x i8] c"break\00" +@.str.3200 = private unnamed_addr constant [19 x i8] c"unknown statement \00" @.str.3201 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3202 = private unnamed_addr constant [19 x i8] c"the end of a range\00" -@.str.3203 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.3204 = private unnamed_addr constant [9 x i8] c"for.cond\00" -@.str.3205 = private unnamed_addr constant [9 x i8] c"for.body\00" -@.str.3206 = private unnamed_addr constant [9 x i8] c"for.step\00" -@.str.3207 = private unnamed_addr constant [8 x i8] c"for.end\00" -@.str.3208 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3209 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" -@.str.3210 = private unnamed_addr constant [3 x i8] c", \00" +@.str.3202 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3203 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3204 = private unnamed_addr constant [47 x i8] c"this gives back nothing, so it can't be stored\00" +@.str.3205 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.3206 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3207 = private unnamed_addr constant [35 x i8] c"null needs a type, like: ptr[int] \00" +@.str.3208 = private unnamed_addr constant [8 x i8] c" = null\00" +@.str.3209 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.3210 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3211 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3212 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" -@.str.3213 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3214 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.3215 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3216 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.3212 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.3213 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.3214 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3215 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.3216 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3217 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3218 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3219 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" +@.str.3218 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.3219 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3220 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3221 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" -@.str.3222 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3223 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3224 = private unnamed_addr constant [9 x i8] c"add i64 \00" -@.str.3225 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str.3226 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3227 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3228 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3229 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3230 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3231 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3232 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.3233 = private unnamed_addr constant [1 x i8] c"\00" -@.str.3234 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3235 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.3236 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.3237 = private unnamed_addr constant [15 x i8] c", i32 0, i32 6\00" -@.str.3238 = private unnamed_addr constant [9 x i8] c"map.cond\00" -@.str.3239 = private unnamed_addr constant [10 x i8] c"map.check\00" -@.str.3240 = private unnamed_addr constant [9 x i8] c"map.body\00" -@.str.3241 = private unnamed_addr constant [9 x i8] c"map.step\00" -@.str.3242 = private unnamed_addr constant [8 x i8] c"map.end\00" -@.str.3243 = private unnamed_addr constant [12 x i8] c"map.changed\00" -@.str.3244 = private unnamed_addr constant [9 x i8] c"map.same\00" -@.str.3245 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3246 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.3247 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.3248 = private unnamed_addr constant [15 x i8] c", i32 0, i32 6\00" -@.str.3249 = private unnamed_addr constant [13 x i8] c"icmp ne i64 \00" -@.str.3250 = private unnamed_addr constant [3 x i8] c", \00" -@.str.3251 = private unnamed_addr constant [34 x i8] c"call void @finch_map_changed(ptr \00" -@.str.3252 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3253 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.3221 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3222 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.3223 = private unnamed_addr constant [29 x i8] c"there is no variable named '\00" +@.str.3224 = private unnamed_addr constant [19 x i8] c"' (create it with \00" +@.str.3225 = private unnamed_addr constant [9 x i8] c" := ...)\00" +@.str.3226 = private unnamed_addr constant [20 x i8] c"the loop variable '\00" +@.str.3227 = private unnamed_addr constant [19 x i8] c"' can't be changed\00" +@.str.3228 = private unnamed_addr constant [10 x i8] c"the value\00" +@.str.3229 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.3230 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.3231 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.3232 = private unnamed_addr constant [2 x i8] c"=\00" +@.str.3233 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3234 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.3235 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3236 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3237 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3238 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.3239 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3240 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3241 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3242 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.3243 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3244 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.3245 = private unnamed_addr constant [12 x i8] c"a condition\00" +@.str.3246 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3247 = private unnamed_addr constant [5 x i8] c"then\00" +@.str.3248 = private unnamed_addr constant [5 x i8] c"else\00" +@.str.3249 = private unnamed_addr constant [6 x i8] c"endif\00" +@.str.3250 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3251 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3252 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.3253 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3254 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3255 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.3256 = private unnamed_addr constant [2 x i8] c")\00" -@.str.3257 = private unnamed_addr constant [12 x i8] c"unreachable\00" -@.str.3258 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3259 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.3260 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3261 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3262 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.3263 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.3264 = private unnamed_addr constant [15 x i8] c", i32 0, i32 2\00" -@.str.3265 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" -@.str.3266 = private unnamed_addr constant [3 x i8] c", \00" -@.str.3267 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3268 = private unnamed_addr constant [13 x i8] c"icmp eq i64 \00" -@.str.3269 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.3255 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.3256 = private unnamed_addr constant [11 x i8] c"while.cond\00" +@.str.3257 = private unnamed_addr constant [11 x i8] c"while.body\00" +@.str.3258 = private unnamed_addr constant [10 x i8] c"while.end\00" +@.str.3259 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3260 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.3261 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3262 = private unnamed_addr constant [5 x i8] c"true\00" +@.str.3263 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3264 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3265 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" +@.str.3266 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3267 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3268 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3269 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" @.str.3270 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3271 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" +@.str.3271 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3272 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3273 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3273 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" @.str.3274 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3275 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.3276 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3277 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3278 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" -@.str.3279 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3280 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" -@.str.3281 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3282 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3283 = private unnamed_addr constant [9 x i8] c"add i64 \00" -@.str.3284 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str.3285 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3286 = private unnamed_addr constant [1 x i8] c"\00" -@.str.3287 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3288 = private unnamed_addr constant [6 x i8] c"$list\00" -@.str.3289 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3290 = private unnamed_addr constant [30 x i8] c"used .nvars on a null pointer\00" -@.str.3291 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.3292 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.3293 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.3294 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3295 = private unnamed_addr constant [56 x i8] c"for ... in needs an array, a str or a map, but this is \00" -@.str.3296 = private unnamed_addr constant [37 x i8] c" (for a range of numbers write 0..n)\00" -@.str.3297 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.3298 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.3299 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3275 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" +@.str.3276 = private unnamed_addr constant [6 x i8] c"break\00" +@.str.3277 = private unnamed_addr constant [6 x i8] c"while\00" +@.str.3278 = private unnamed_addr constant [4 x i8] c"for\00" +@.str.3279 = private unnamed_addr constant [5 x i8] c"each\00" +@.str.3280 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3281 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.3282 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3283 = private unnamed_addr constant [21 x i8] c"the start of a range\00" +@.str.3284 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3285 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.3286 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3287 = private unnamed_addr constant [19 x i8] c"the end of a range\00" +@.str.3288 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.3289 = private unnamed_addr constant [9 x i8] c"for.cond\00" +@.str.3290 = private unnamed_addr constant [9 x i8] c"for.body\00" +@.str.3291 = private unnamed_addr constant [9 x i8] c"for.step\00" +@.str.3292 = private unnamed_addr constant [8 x i8] c"for.end\00" +@.str.3293 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3294 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" +@.str.3295 = private unnamed_addr constant [3 x i8] c", \00" +@.str.3296 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3297 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" +@.str.3298 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3299 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.3300 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3301 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3302 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3303 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3304 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.3305 = private unnamed_addr constant [10 x i8] c"each.cond\00" -@.str.3306 = private unnamed_addr constant [10 x i8] c"each.body\00" -@.str.3307 = private unnamed_addr constant [10 x i8] c"each.step\00" -@.str.3308 = private unnamed_addr constant [9 x i8] c"each.end\00" -@.str.3309 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3310 = private unnamed_addr constant [47 x i8] c"getelementptr inbounds { ptr, i64, i64 }, ptr \00" -@.str.3311 = private unnamed_addr constant [15 x i8] c", i32 0, i32 1\00" -@.str.3312 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3313 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" -@.str.3314 = private unnamed_addr constant [3 x i8] c", \00" -@.str.3315 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.3316 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.3317 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.3318 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.3319 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3320 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" -@.str.3321 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3322 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.3323 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3324 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.3325 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.3326 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3327 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3328 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" -@.str.3329 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3330 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" -@.str.3331 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3332 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3333 = private unnamed_addr constant [9 x i8] c"add i64 \00" -@.str.3334 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str.3335 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3336 = private unnamed_addr constant [32 x i8] c"used .inDefer on a null pointer\00" -@.str.3337 = private unnamed_addr constant [34 x i8] c"return can't be used inside defer\00" -@.str.3338 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3339 = private unnamed_addr constant [5 x i8] c"call\00" -@.str.3340 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3341 = private unnamed_addr constant [6 x i8] c"error\00" -@.str.3342 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3301 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.3302 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3303 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3304 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" +@.str.3305 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3306 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" +@.str.3307 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3308 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3309 = private unnamed_addr constant [9 x i8] c"add i64 \00" +@.str.3310 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.3311 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3312 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3313 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3314 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3315 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3316 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3317 = private unnamed_addr constant [2 x i8] c"0\00" +@.str.3318 = private unnamed_addr constant [1 x i8] c"\00" +@.str.3319 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3320 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.3321 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.3322 = private unnamed_addr constant [15 x i8] c", i32 0, i32 6\00" +@.str.3323 = private unnamed_addr constant [9 x i8] c"map.cond\00" +@.str.3324 = private unnamed_addr constant [10 x i8] c"map.check\00" +@.str.3325 = private unnamed_addr constant [9 x i8] c"map.body\00" +@.str.3326 = private unnamed_addr constant [9 x i8] c"map.step\00" +@.str.3327 = private unnamed_addr constant [8 x i8] c"map.end\00" +@.str.3328 = private unnamed_addr constant [12 x i8] c"map.changed\00" +@.str.3329 = private unnamed_addr constant [9 x i8] c"map.same\00" +@.str.3330 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3331 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.3332 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.3333 = private unnamed_addr constant [15 x i8] c", i32 0, i32 6\00" +@.str.3334 = private unnamed_addr constant [13 x i8] c"icmp ne i64 \00" +@.str.3335 = private unnamed_addr constant [3 x i8] c", \00" +@.str.3336 = private unnamed_addr constant [34 x i8] c"call void @finch_map_changed(ptr \00" +@.str.3337 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3338 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.3339 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3340 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.3341 = private unnamed_addr constant [2 x i8] c")\00" +@.str.3342 = private unnamed_addr constant [12 x i8] c"unreachable\00" @.str.3343 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3344 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3345 = private unnamed_addr constant [2 x i8] c"!\00" -@.str.3346 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3347 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3348 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3349 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3350 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3351 = private unnamed_addr constant [2 x i8] c"!\00" -@.str.3352 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.3353 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3354 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3355 = private unnamed_addr constant [65 x i8] c"' can't fail, so it can't return an error (make it fallible: -> \00" -@.str.3356 = private unnamed_addr constant [2 x i8] c")\00" -@.str.3357 = private unnamed_addr constant [6 x i8] c"error\00" -@.str.3358 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3359 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.3360 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3361 = private unnamed_addr constant [18 x i8] c"the error message\00" -@.str.3362 = private unnamed_addr constant [5 x i8] c"ret \00" -@.str.3363 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3364 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3365 = private unnamed_addr constant [2 x i8] c" \00" -@.str.3366 = private unnamed_addr constant [13 x i8] c"insertvalue \00" -@.str.3367 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3368 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3369 = private unnamed_addr constant [37 x i8] c" zeroinitializer, { ptr, i64, i64 } \00" -@.str.3370 = private unnamed_addr constant [4 x i8] c", 2\00" -@.str.3371 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3372 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.3373 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3374 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3375 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3376 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3377 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.3378 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3379 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3380 = private unnamed_addr constant [47 x i8] c"' doesn't return a value (it has no '-> type')\00" -@.str.3381 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3382 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3383 = private unnamed_addr constant [5 x i8] c"ret \00" +@.str.3344 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.3345 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3346 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3347 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.3348 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.3349 = private unnamed_addr constant [15 x i8] c", i32 0, i32 2\00" +@.str.3350 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" +@.str.3351 = private unnamed_addr constant [3 x i8] c", \00" +@.str.3352 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3353 = private unnamed_addr constant [13 x i8] c"icmp eq i64 \00" +@.str.3354 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.3355 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3356 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" +@.str.3357 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3358 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3359 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3360 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.3361 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3362 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3363 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" +@.str.3364 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3365 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" +@.str.3366 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3367 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3368 = private unnamed_addr constant [9 x i8] c"add i64 \00" +@.str.3369 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.3370 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3371 = private unnamed_addr constant [1 x i8] c"\00" +@.str.3372 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3373 = private unnamed_addr constant [6 x i8] c"$list\00" +@.str.3374 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3375 = private unnamed_addr constant [30 x i8] c"used .nvars on a null pointer\00" +@.str.3376 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.3377 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.3378 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.3379 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3380 = private unnamed_addr constant [56 x i8] c"for ... in needs an array, a str or a map, but this is \00" +@.str.3381 = private unnamed_addr constant [37 x i8] c" (for a range of numbers write 0..n)\00" +@.str.3382 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.3383 = private unnamed_addr constant [6 x i8] c"array\00" @.str.3384 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3385 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3386 = private unnamed_addr constant [54 x i8] c" { i1 true, i8 0, { ptr, i64, i64 } zeroinitializer }\00" -@.str.3387 = private unnamed_addr constant [9 x i8] c"ret void\00" -@.str.3388 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3389 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.3390 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.3391 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3392 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3393 = private unnamed_addr constant [15 x i8] c"' must return \00" -@.str.3394 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3395 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3396 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3397 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.3398 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3399 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3400 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.3401 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3402 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.3403 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3385 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3386 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3387 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3388 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3389 = private unnamed_addr constant [2 x i8] c"0\00" +@.str.3390 = private unnamed_addr constant [10 x i8] c"each.cond\00" +@.str.3391 = private unnamed_addr constant [10 x i8] c"each.body\00" +@.str.3392 = private unnamed_addr constant [10 x i8] c"each.step\00" +@.str.3393 = private unnamed_addr constant [9 x i8] c"each.end\00" +@.str.3394 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3395 = private unnamed_addr constant [47 x i8] c"getelementptr inbounds { ptr, i64, i64 }, ptr \00" +@.str.3396 = private unnamed_addr constant [15 x i8] c", i32 0, i32 1\00" +@.str.3397 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3398 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" +@.str.3399 = private unnamed_addr constant [3 x i8] c", \00" +@.str.3400 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.3401 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.3402 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.3403 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str.3404 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3405 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3405 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" @.str.3406 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3407 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3407 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.3408 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3409 = private unnamed_addr constant [32 x i8] c"used .deferOn on a null pointer\00" -@.str.3410 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3411 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3409 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.3410 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.3411 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3412 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3413 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3413 = private unnamed_addr constant [30 x i8] c"used .loops on a null pointer\00" @.str.3414 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3415 = private unnamed_addr constant [35 x i8] c"used .deferLimit on a null pointer\00" -@.str.3416 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3417 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.3418 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3419 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3415 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" +@.str.3416 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3417 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3418 = private unnamed_addr constant [9 x i8] c"add i64 \00" +@.str.3419 = private unnamed_addr constant [4 x i8] c", 1\00" @.str.3420 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3421 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3422 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3423 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.3424 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3421 = private unnamed_addr constant [32 x i8] c"used .inDefer on a null pointer\00" +@.str.3422 = private unnamed_addr constant [34 x i8] c"return can't be used inside defer\00" +@.str.3423 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3424 = private unnamed_addr constant [5 x i8] c"call\00" @.str.3425 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3426 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3427 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3426 = private unnamed_addr constant [6 x i8] c"error\00" +@.str.3427 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3428 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3429 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3430 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3429 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3430 = private unnamed_addr constant [2 x i8] c"!\00" @.str.3431 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3432 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3433 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3434 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3435 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3436 = private unnamed_addr constant [19 x i8] c"the returned value\00" -@.str.3437 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3438 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3439 = private unnamed_addr constant [13 x i8] c"insertvalue \00" -@.str.3440 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3441 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3442 = private unnamed_addr constant [29 x i8] c" zeroinitializer, i1 true, 0\00" -@.str.3443 = private unnamed_addr constant [13 x i8] c"insertvalue \00" -@.str.3444 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3445 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3446 = private unnamed_addr constant [2 x i8] c" \00" -@.str.3447 = private unnamed_addr constant [3 x i8] c", \00" +@.str.3433 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3434 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3435 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3436 = private unnamed_addr constant [2 x i8] c"!\00" +@.str.3437 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.3438 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3439 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3440 = private unnamed_addr constant [65 x i8] c"' can't fail, so it can't return an error (make it fallible: -> \00" +@.str.3441 = private unnamed_addr constant [2 x i8] c")\00" +@.str.3442 = private unnamed_addr constant [6 x i8] c"error\00" +@.str.3443 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3444 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.3445 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3446 = private unnamed_addr constant [18 x i8] c"the error message\00" +@.str.3447 = private unnamed_addr constant [5 x i8] c"ret \00" @.str.3448 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3449 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" @.str.3450 = private unnamed_addr constant [2 x i8] c" \00" -@.str.3451 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str.3452 = private unnamed_addr constant [5 x i8] c"ret \00" -@.str.3453 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3454 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3455 = private unnamed_addr constant [2 x i8] c" \00" -@.str.3456 = private unnamed_addr constant [5 x i8] c"ret \00" -@.str.3457 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3458 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3459 = private unnamed_addr constant [2 x i8] c" \00" -@.str.3460 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3461 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.3462 = private unnamed_addr constant [8 x i8] c"{ i64, \00" +@.str.3451 = private unnamed_addr constant [13 x i8] c"insertvalue \00" +@.str.3452 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3453 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3454 = private unnamed_addr constant [37 x i8] c" zeroinitializer, { ptr, i64, i64 } \00" +@.str.3455 = private unnamed_addr constant [4 x i8] c", 2\00" +@.str.3456 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3457 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.3458 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3459 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3460 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3461 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3462 = private unnamed_addr constant [2 x i8] c"'\00" @.str.3463 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3464 = private unnamed_addr constant [3 x i8] c", \00" -@.str.3465 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3466 = private unnamed_addr constant [3 x i8] c" }\00" -@.str.3467 = private unnamed_addr constant [30 x i8] c"ptrtoint (ptr getelementptr (\00" -@.str.3468 = private unnamed_addr constant [27 x i8] c", ptr null, i32 1) to i64)\00" -@.str.3469 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.3470 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.3471 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.3472 = private unnamed_addr constant [15 x i8] c", i32 0, i32 0\00" -@.str.3473 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.3474 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.3475 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.3476 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.3477 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.3478 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" -@.str.3479 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.3480 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3481 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.3482 = private unnamed_addr constant [2 x i8] c"1\00" -@.str.3483 = private unnamed_addr constant [5 x i8] c"ptr \00" -@.str.3484 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.3485 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.3486 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.3487 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3488 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str.3489 = private unnamed_addr constant [26 x i8] c"call i64 @finch_map_find(\00" -@.str.3490 = private unnamed_addr constant [2 x i8] c")\00" -@.str.3491 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.3492 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.3493 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.3494 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.3495 = private unnamed_addr constant [26 x i8] c"call i64 @finch_map_slot(\00" -@.str.3496 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.3497 = private unnamed_addr constant [2 x i8] c")\00" -@.str.3498 = private unnamed_addr constant [8 x i8] c"map.new\00" -@.str.3499 = private unnamed_addr constant [9 x i8] c"map.have\00" -@.str.3500 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str.3501 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.3502 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.3464 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3465 = private unnamed_addr constant [47 x i8] c"' doesn't return a value (it has no '-> type')\00" +@.str.3466 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3467 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3468 = private unnamed_addr constant [5 x i8] c"ret \00" +@.str.3469 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3470 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3471 = private unnamed_addr constant [54 x i8] c" { i1 true, i8 0, { ptr, i64, i64 } zeroinitializer }\00" +@.str.3472 = private unnamed_addr constant [9 x i8] c"ret void\00" +@.str.3473 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3474 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.3475 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.3476 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3477 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3478 = private unnamed_addr constant [15 x i8] c"' must return \00" +@.str.3479 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3480 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3481 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3482 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.3483 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3484 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3485 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3486 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3487 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3488 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3489 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3490 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3491 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3492 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3493 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3494 = private unnamed_addr constant [32 x i8] c"used .deferOn on a null pointer\00" +@.str.3495 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3496 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3497 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3498 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3499 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3500 = private unnamed_addr constant [35 x i8] c"used .deferLimit on a null pointer\00" +@.str.3501 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3502 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.3503 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3504 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3505 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3506 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3506 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" @.str.3507 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3508 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3508 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.3509 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3510 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3511 = private unnamed_addr constant [8 x i8] c"the key\00" -@.str.3512 = private unnamed_addr constant [45 x i8] c"this is a temporary map, it can't be changed\00" -@.str.3513 = private unnamed_addr constant [1 x i8] c"\00" -@.str.3514 = private unnamed_addr constant [12 x i8] c"map.missing\00" -@.str.3515 = private unnamed_addr constant [10 x i8] c"map.found\00" -@.str.3516 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" -@.str.3517 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.3518 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.3519 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.3520 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.3521 = private unnamed_addr constant [34 x i8] c"call void @finch_map_missing(ptr \00" +@.str.3511 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3512 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.3513 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3514 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3515 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3516 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3517 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3518 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3519 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3520 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3521 = private unnamed_addr constant [19 x i8] c"the returned value\00" @.str.3522 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3523 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" -@.str.3524 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3525 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.3526 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.3527 = private unnamed_addr constant [2 x i8] c")\00" -@.str.3528 = private unnamed_addr constant [12 x i8] c"unreachable\00" +@.str.3523 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3524 = private unnamed_addr constant [13 x i8] c"insertvalue \00" +@.str.3525 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3526 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3527 = private unnamed_addr constant [29 x i8] c" zeroinitializer, i1 true, 0\00" +@.str.3528 = private unnamed_addr constant [13 x i8] c"insertvalue \00" @.str.3529 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3530 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.3531 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.3532 = private unnamed_addr constant [53 x i8] c"an empty [:] needs a type, like: map[str]int m = [:]\00" +@.str.3530 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3531 = private unnamed_addr constant [2 x i8] c" \00" +@.str.3532 = private unnamed_addr constant [3 x i8] c", \00" @.str.3533 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3534 = private unnamed_addr constant [6 x i8] c"unary\00" -@.str.3535 = private unnamed_addr constant [2 x i8] c"-\00" -@.str.3536 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3537 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.3538 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.3539 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3540 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3541 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3542 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.3543 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3544 = private unnamed_addr constant [36 x i8] c"a map key needs a value with a type\00" -@.str.3545 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3546 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.3547 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3548 = private unnamed_addr constant [38 x i8] c"a map value needs a value with a type\00" -@.str.3549 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.3550 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.3551 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3552 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.3553 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3554 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.3555 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3556 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3557 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3558 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3559 = private unnamed_addr constant [22 x i8] c"every key of this map\00" -@.str.3560 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3561 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3562 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3563 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3564 = private unnamed_addr constant [24 x i8] c"every value of this map\00" +@.str.3534 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3535 = private unnamed_addr constant [2 x i8] c" \00" +@.str.3536 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.3537 = private unnamed_addr constant [5 x i8] c"ret \00" +@.str.3538 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3539 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3540 = private unnamed_addr constant [2 x i8] c" \00" +@.str.3541 = private unnamed_addr constant [5 x i8] c"ret \00" +@.str.3542 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3543 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3544 = private unnamed_addr constant [2 x i8] c" \00" +@.str.3545 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3546 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.3547 = private unnamed_addr constant [8 x i8] c"{ i64, \00" +@.str.3548 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3549 = private unnamed_addr constant [3 x i8] c", \00" +@.str.3550 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3551 = private unnamed_addr constant [3 x i8] c" }\00" +@.str.3552 = private unnamed_addr constant [30 x i8] c"ptrtoint (ptr getelementptr (\00" +@.str.3553 = private unnamed_addr constant [27 x i8] c", ptr null, i32 1) to i64)\00" +@.str.3554 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.3555 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.3556 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.3557 = private unnamed_addr constant [15 x i8] c", i32 0, i32 0\00" +@.str.3558 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.3559 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.3560 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.3561 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.3562 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.3563 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" +@.str.3564 = private unnamed_addr constant [2 x i8] c"0\00" @.str.3565 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3566 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3567 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3568 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3569 = private unnamed_addr constant [4 x i8] c"has\00" -@.str.3570 = private unnamed_addr constant [4 x i8] c"get\00" -@.str.3571 = private unnamed_addr constant [7 x i8] c"remove\00" -@.str.3572 = private unnamed_addr constant [4 x i8] c"get\00" -@.str.3573 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3574 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3575 = private unnamed_addr constant [8 x i8] c"the key\00" -@.str.3576 = private unnamed_addr constant [14 x i8] c"icmp sge i64 \00" -@.str.3577 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.3578 = private unnamed_addr constant [4 x i8] c"has\00" -@.str.3579 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.3580 = private unnamed_addr constant [7 x i8] c"remove\00" -@.str.3581 = private unnamed_addr constant [11 x i8] c"remove.hit\00" -@.str.3582 = private unnamed_addr constant [11 x i8] c"remove.end\00" -@.str.3583 = private unnamed_addr constant [36 x i8] c"call void @finch_map_remove_at(ptr \00" -@.str.3584 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.3585 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.3586 = private unnamed_addr constant [2 x i8] c")\00" -@.str.3587 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.3588 = private unnamed_addr constant [10 x i8] c"get.found\00" -@.str.3589 = private unnamed_addr constant [12 x i8] c"get.missing\00" -@.str.3590 = private unnamed_addr constant [9 x i8] c"get.fend\00" -@.str.3591 = private unnamed_addr constant [9 x i8] c"get.mend\00" -@.str.3592 = private unnamed_addr constant [8 x i8] c"get.end\00" +@.str.3566 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.3567 = private unnamed_addr constant [2 x i8] c"1\00" +@.str.3568 = private unnamed_addr constant [5 x i8] c"ptr \00" +@.str.3569 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.3570 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.3571 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.3572 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3573 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str.3574 = private unnamed_addr constant [26 x i8] c"call i64 @finch_map_find(\00" +@.str.3575 = private unnamed_addr constant [2 x i8] c")\00" +@.str.3576 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.3577 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.3578 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.3579 = private unnamed_addr constant [2 x i8] c"0\00" +@.str.3580 = private unnamed_addr constant [26 x i8] c"call i64 @finch_map_slot(\00" +@.str.3581 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.3582 = private unnamed_addr constant [2 x i8] c")\00" +@.str.3583 = private unnamed_addr constant [8 x i8] c"map.new\00" +@.str.3584 = private unnamed_addr constant [9 x i8] c"map.have\00" +@.str.3585 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str.3586 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.3587 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.3588 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3589 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3590 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3591 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3592 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3593 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3594 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3595 = private unnamed_addr constant [12 x i8] c"the default\00" -@.str.3596 = private unnamed_addr constant [5 x i8] c"phi \00" -@.str.3597 = private unnamed_addr constant [4 x i8] c" [ \00" -@.str.3598 = private unnamed_addr constant [4 x i8] c", %\00" -@.str.3599 = private unnamed_addr constant [7 x i8] c" ], [ \00" -@.str.3600 = private unnamed_addr constant [4 x i8] c", %\00" -@.str.3601 = private unnamed_addr constant [3 x i8] c" ]\00" -@.str.3602 = private unnamed_addr constant [6 x i8] c"clear\00" -@.str.3603 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3604 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.3605 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.3606 = private unnamed_addr constant [15 x i8] c", i32 0, i32 2\00" +@.str.3595 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3596 = private unnamed_addr constant [8 x i8] c"the key\00" +@.str.3597 = private unnamed_addr constant [45 x i8] c"this is a temporary map, it can't be changed\00" +@.str.3598 = private unnamed_addr constant [1 x i8] c"\00" +@.str.3599 = private unnamed_addr constant [12 x i8] c"map.missing\00" +@.str.3600 = private unnamed_addr constant [10 x i8] c"map.found\00" +@.str.3601 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" +@.str.3602 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.3603 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.3604 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.3605 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" +@.str.3606 = private unnamed_addr constant [34 x i8] c"call void @finch_map_missing(ptr \00" @.str.3607 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3608 = private unnamed_addr constant [11 x i8] c"entry.live\00" -@.str.3609 = private unnamed_addr constant [11 x i8] c"entry.next\00" -@.str.3610 = private unnamed_addr constant [13 x i8] c"icmp ne i64 \00" -@.str.3611 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3612 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.3613 = private unnamed_addr constant [32 x i8] c"call void @finch_map_clear(ptr \00" -@.str.3614 = private unnamed_addr constant [2 x i8] c")\00" -@.str.3615 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3616 = private unnamed_addr constant [5 x i8] c"keys\00" -@.str.3617 = private unnamed_addr constant [7 x i8] c"values\00" -@.str.3618 = private unnamed_addr constant [7 x i8] c"values\00" -@.str.3619 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.3620 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.3621 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.3622 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3623 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.3624 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.3625 = private unnamed_addr constant [15 x i8] c", i32 0, i32 1\00" -@.str.3626 = private unnamed_addr constant [31 x i8] c"call void @finch_arr_make(ptr \00" -@.str.3627 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.3628 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.3629 = private unnamed_addr constant [2 x i8] c")\00" -@.str.3630 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.3631 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3632 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3633 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.3634 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3635 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.3636 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.3637 = private unnamed_addr constant [15 x i8] c", i32 0, i32 2\00" +@.str.3608 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.3609 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3610 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.3611 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.3612 = private unnamed_addr constant [2 x i8] c")\00" +@.str.3613 = private unnamed_addr constant [12 x i8] c"unreachable\00" +@.str.3614 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3615 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.3616 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.3617 = private unnamed_addr constant [53 x i8] c"an empty [:] needs a type, like: map[str]int m = [:]\00" +@.str.3618 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3619 = private unnamed_addr constant [6 x i8] c"unary\00" +@.str.3620 = private unnamed_addr constant [2 x i8] c"-\00" +@.str.3621 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3622 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.3623 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.3624 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3625 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3626 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3627 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.3628 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3629 = private unnamed_addr constant [36 x i8] c"a map key needs a value with a type\00" +@.str.3630 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3631 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.3632 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3633 = private unnamed_addr constant [38 x i8] c"a map value needs a value with a type\00" +@.str.3634 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.3635 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" +@.str.3636 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3637 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" @.str.3638 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3639 = private unnamed_addr constant [11 x i8] c"entry.live\00" -@.str.3640 = private unnamed_addr constant [11 x i8] c"entry.next\00" -@.str.3641 = private unnamed_addr constant [13 x i8] c"icmp ne i64 \00" -@.str.3642 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3643 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.3644 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3645 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.3646 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.3647 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.3648 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.3649 = private unnamed_addr constant [9 x i8] c"add i64 \00" -@.str.3650 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str.3651 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.3652 = private unnamed_addr constant [22 x i8] c"a map has no method '\00" -@.str.3653 = private unnamed_addr constant [50 x i8] c"' (it has: has, get, remove, clear, keys, values)\00" -@.str.3654 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.3655 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.3656 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3657 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" +@.str.3639 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.3640 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3641 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3642 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3643 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3644 = private unnamed_addr constant [22 x i8] c"every key of this map\00" +@.str.3645 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3646 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3647 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3648 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3649 = private unnamed_addr constant [24 x i8] c"every value of this map\00" +@.str.3650 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3651 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3652 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3653 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3654 = private unnamed_addr constant [4 x i8] c"has\00" +@.str.3655 = private unnamed_addr constant [4 x i8] c"get\00" +@.str.3656 = private unnamed_addr constant [7 x i8] c"remove\00" +@.str.3657 = private unnamed_addr constant [4 x i8] c"get\00" @.str.3658 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3659 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.3660 = private unnamed_addr constant [23 x i8] c"' is not a variant of \00" -@.str.3661 = private unnamed_addr constant [11 x i8] c" (it has: \00" -@.str.3662 = private unnamed_addr constant [3 x i8] c", \00" -@.str.3663 = private unnamed_addr constant [2 x i8] c")\00" -@.str.3664 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3665 = private unnamed_addr constant [13 x i8] c"this pattern\00" -@.str.3666 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3667 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3668 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.3669 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3670 = private unnamed_addr constant [31 x i8] c"there is nothing to match here\00" -@.str.3671 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3672 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.3673 = private unnamed_addr constant [10 x i8] c"match.end\00" -@.str.3674 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3675 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3676 = private unnamed_addr constant [73 x i8] c"this arm can never be used: 'else' already takes everything that is left\00" -@.str.3677 = private unnamed_addr constant [10 x i8] c"match.arm\00" -@.str.3678 = private unnamed_addr constant [11 x i8] c"match.next\00" +@.str.3659 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3660 = private unnamed_addr constant [8 x i8] c"the key\00" +@.str.3661 = private unnamed_addr constant [14 x i8] c"icmp sge i64 \00" +@.str.3662 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.3663 = private unnamed_addr constant [4 x i8] c"has\00" +@.str.3664 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.3665 = private unnamed_addr constant [7 x i8] c"remove\00" +@.str.3666 = private unnamed_addr constant [11 x i8] c"remove.hit\00" +@.str.3667 = private unnamed_addr constant [11 x i8] c"remove.end\00" +@.str.3668 = private unnamed_addr constant [36 x i8] c"call void @finch_map_remove_at(ptr \00" +@.str.3669 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.3670 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.3671 = private unnamed_addr constant [2 x i8] c")\00" +@.str.3672 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.3673 = private unnamed_addr constant [10 x i8] c"get.found\00" +@.str.3674 = private unnamed_addr constant [12 x i8] c"get.missing\00" +@.str.3675 = private unnamed_addr constant [9 x i8] c"get.fend\00" +@.str.3676 = private unnamed_addr constant [9 x i8] c"get.mend\00" +@.str.3677 = private unnamed_addr constant [8 x i8] c"get.end\00" +@.str.3678 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3679 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3680 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3681 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.3682 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3683 = private unnamed_addr constant [50 x i8] c"this variant is already handled by an earlier arm\00" -@.str.3684 = private unnamed_addr constant [3 x i8] c"==\00" -@.str.3685 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3686 = private unnamed_addr constant [9 x i8] c"match.or\00" -@.str.3687 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3688 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3689 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3690 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.3691 = private unnamed_addr constant [53 x i8] c"an arm of a match that gives a value has to give one\00" -@.str.3692 = private unnamed_addr constant [58 x i8] c"this arm (the arms of a match have to give the same type)\00" -@.str.3693 = private unnamed_addr constant [11 x i8] c"match.from\00" -@.str.3694 = private unnamed_addr constant [6 x i8] c"block\00" -@.str.3695 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3696 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.3697 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.3698 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3699 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" -@.str.3700 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3701 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3702 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3703 = private unnamed_addr constant [27 x i8] c"this match doesn't handle \00" -@.str.3704 = private unnamed_addr constant [3 x i8] c", \00" -@.str.3705 = private unnamed_addr constant [30 x i8] c" (add them, or an 'else' arm)\00" -@.str.3706 = private unnamed_addr constant [12 x i8] c"a match on \00" -@.str.3707 = private unnamed_addr constant [55 x i8] c" needs an 'else' arm for everything that is not listed\00" -@.str.3708 = private unnamed_addr constant [5 x i8] c"true\00" -@.str.3709 = private unnamed_addr constant [36 x i8] c"no arm of this match fits the value\00" -@.str.3710 = private unnamed_addr constant [12 x i8] c"unreachable\00" -@.str.3711 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3712 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.3713 = private unnamed_addr constant [12 x i8] c"unreachable\00" -@.str.3714 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3715 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.3716 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3717 = private unnamed_addr constant [5 x i8] c"phi \00" -@.str.3718 = private unnamed_addr constant [2 x i8] c" \00" -@.str.3719 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3720 = private unnamed_addr constant [3 x i8] c"[ \00" -@.str.3721 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3722 = private unnamed_addr constant [4 x i8] c", %\00" +@.str.3680 = private unnamed_addr constant [12 x i8] c"the default\00" +@.str.3681 = private unnamed_addr constant [5 x i8] c"phi \00" +@.str.3682 = private unnamed_addr constant [4 x i8] c" [ \00" +@.str.3683 = private unnamed_addr constant [4 x i8] c", %\00" +@.str.3684 = private unnamed_addr constant [7 x i8] c" ], [ \00" +@.str.3685 = private unnamed_addr constant [4 x i8] c", %\00" +@.str.3686 = private unnamed_addr constant [3 x i8] c" ]\00" +@.str.3687 = private unnamed_addr constant [6 x i8] c"clear\00" +@.str.3688 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3689 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.3690 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.3691 = private unnamed_addr constant [15 x i8] c", i32 0, i32 2\00" +@.str.3692 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3693 = private unnamed_addr constant [11 x i8] c"entry.live\00" +@.str.3694 = private unnamed_addr constant [11 x i8] c"entry.next\00" +@.str.3695 = private unnamed_addr constant [13 x i8] c"icmp ne i64 \00" +@.str.3696 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3697 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.3698 = private unnamed_addr constant [32 x i8] c"call void @finch_map_clear(ptr \00" +@.str.3699 = private unnamed_addr constant [2 x i8] c")\00" +@.str.3700 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3701 = private unnamed_addr constant [5 x i8] c"keys\00" +@.str.3702 = private unnamed_addr constant [7 x i8] c"values\00" +@.str.3703 = private unnamed_addr constant [7 x i8] c"values\00" +@.str.3704 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.3705 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.3706 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" +@.str.3707 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3708 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.3709 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.3710 = private unnamed_addr constant [15 x i8] c", i32 0, i32 1\00" +@.str.3711 = private unnamed_addr constant [31 x i8] c"call void @finch_arr_make(ptr \00" +@.str.3712 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.3713 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.3714 = private unnamed_addr constant [2 x i8] c")\00" +@.str.3715 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.3716 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3717 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3718 = private unnamed_addr constant [2 x i8] c"0\00" +@.str.3719 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3720 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.3721 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.3722 = private unnamed_addr constant [15 x i8] c", i32 0, i32 2\00" @.str.3723 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3724 = private unnamed_addr constant [3 x i8] c" ]\00" -@.str.3725 = private unnamed_addr constant [3 x i8] c", \00" -@.str.3726 = private unnamed_addr constant [5 x i8] c"call\00" -@.str.3727 = private unnamed_addr constant [7 x i8] c"method\00" -@.str.3728 = private unnamed_addr constant [81 x i8] c"only a function call can fail; 'or' and 'try' go after one, like int(text) or 0\00" -@.str.3729 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3730 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" -@.str.3731 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3732 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" -@.str.3733 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3734 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" -@.str.3735 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3736 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" -@.str.3737 = private unnamed_addr constant [1 x i8] c"\00" -@.str.3738 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3739 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" -@.str.3740 = private unnamed_addr constant [1 x i8] c"\00" +@.str.3724 = private unnamed_addr constant [11 x i8] c"entry.live\00" +@.str.3725 = private unnamed_addr constant [11 x i8] c"entry.next\00" +@.str.3726 = private unnamed_addr constant [13 x i8] c"icmp ne i64 \00" +@.str.3727 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3728 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.3729 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3730 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.3731 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.3732 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.3733 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.3734 = private unnamed_addr constant [9 x i8] c"add i64 \00" +@.str.3735 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.3736 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.3737 = private unnamed_addr constant [22 x i8] c"a map has no method '\00" +@.str.3738 = private unnamed_addr constant [50 x i8] c"' (it has: has, get, remove, clear, keys, values)\00" +@.str.3739 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.3740 = private unnamed_addr constant [4 x i8] c"var\00" @.str.3741 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3742 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" +@.str.3742 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" @.str.3743 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3744 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" -@.str.3745 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3746 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" -@.str.3747 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3748 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" +@.str.3744 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.3745 = private unnamed_addr constant [23 x i8] c"' is not a variant of \00" +@.str.3746 = private unnamed_addr constant [11 x i8] c" (it has: \00" +@.str.3747 = private unnamed_addr constant [3 x i8] c", \00" +@.str.3748 = private unnamed_addr constant [2 x i8] c")\00" @.str.3749 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3750 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" +@.str.3750 = private unnamed_addr constant [13 x i8] c"this pattern\00" @.str.3751 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3752 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" -@.str.3753 = private unnamed_addr constant [51 x i8] c"this call can't fail, so it needs no 'or' or 'try'\00" +@.str.3752 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3753 = private unnamed_addr constant [5 x i8] c"null\00" @.str.3754 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3755 = private unnamed_addr constant [32 x i8] c"used .inDefer on a null pointer\00" -@.str.3756 = private unnamed_addr constant [31 x i8] c"try can't be used inside defer\00" -@.str.3757 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3758 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3759 = private unnamed_addr constant [2 x i8] c"!\00" -@.str.3760 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3761 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3762 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3755 = private unnamed_addr constant [31 x i8] c"there is nothing to match here\00" +@.str.3756 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3757 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.3758 = private unnamed_addr constant [1 x i8] c"\00" +@.str.3759 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.3760 = private unnamed_addr constant [14 x i8] c"extractvalue \00" +@.str.3761 = private unnamed_addr constant [2 x i8] c" \00" +@.str.3762 = private unnamed_addr constant [3 x i8] c", \00" @.str.3763 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3764 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3765 = private unnamed_addr constant [2 x i8] c"!\00" -@.str.3766 = private unnamed_addr constant [30 x i8] c"try passes the error on, so '\00" -@.str.3767 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3768 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3769 = private unnamed_addr constant [32 x i8] c"' must be able to fail too (-> \00" -@.str.3770 = private unnamed_addr constant [56 x i8] c"); or handle it here: ... or / ... or { ... }\00" -@.str.3771 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3772 = private unnamed_addr constant [11 x i8] c"try.failed\00" -@.str.3773 = private unnamed_addr constant [7 x i8] c"try.ok\00" -@.str.3774 = private unnamed_addr constant [5 x i8] c"ret \00" +@.str.3764 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.3765 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3766 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3767 = private unnamed_addr constant [10 x i8] c"match.end\00" +@.str.3768 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3769 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3770 = private unnamed_addr constant [73 x i8] c"this arm can never be used: 'else' already takes everything that is left\00" +@.str.3771 = private unnamed_addr constant [10 x i8] c"match.arm\00" +@.str.3772 = private unnamed_addr constant [11 x i8] c"match.next\00" +@.str.3773 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3774 = private unnamed_addr constant [1 x i8] c"\00" @.str.3775 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3776 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3777 = private unnamed_addr constant [2 x i8] c" \00" -@.str.3778 = private unnamed_addr constant [13 x i8] c"insertvalue \00" -@.str.3779 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3780 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" -@.str.3781 = private unnamed_addr constant [37 x i8] c" zeroinitializer, { ptr, i64, i64 } \00" -@.str.3782 = private unnamed_addr constant [4 x i8] c", 2\00" -@.str.3783 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3784 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.3785 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3786 = private unnamed_addr constant [10 x i8] c"or.failed\00" -@.str.3787 = private unnamed_addr constant [6 x i8] c"or.ok\00" -@.str.3788 = private unnamed_addr constant [4 x i8] c"err\00" -@.str.3789 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.3790 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3776 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3777 = private unnamed_addr constant [50 x i8] c"this variant is already handled by an earlier arm\00" +@.str.3778 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3779 = private unnamed_addr constant [53 x i8] c"an arm with several variants can't name their values\00" +@.str.3780 = private unnamed_addr constant [13 x i8] c"icmp eq i64 \00" +@.str.3781 = private unnamed_addr constant [3 x i8] c", \00" +@.str.3782 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3783 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.3784 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3785 = private unnamed_addr constant [50 x i8] c"this variant is already handled by an earlier arm\00" +@.str.3786 = private unnamed_addr constant [3 x i8] c"==\00" +@.str.3787 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3788 = private unnamed_addr constant [9 x i8] c"match.or\00" +@.str.3789 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3790 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.3791 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3792 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" -@.str.3793 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3792 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3793 = private unnamed_addr constant [2 x i8] c"_\00" @.str.3794 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3795 = private unnamed_addr constant [143 x i8] c"this block must leave with return, break, continue or exit(...): after a failure there is no value to go on with (or give one: ... or )\00" -@.str.3796 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3797 = private unnamed_addr constant [7 x i8] c"or.end\00" -@.str.3798 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3799 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3800 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3801 = private unnamed_addr constant [99 x i8] c"this call gives back no value, so there is nothing to replace; handle the failure with or { ... }\00" -@.str.3802 = private unnamed_addr constant [4 x i8] c"err\00" -@.str.3803 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.3795 = private unnamed_addr constant [29 x i8] c"used .sums on a null pointer\00" +@.str.3796 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3797 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3798 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3799 = private unnamed_addr constant [14 x i8] c"extractvalue \00" +@.str.3800 = private unnamed_addr constant [2 x i8] c" \00" +@.str.3801 = private unnamed_addr constant [3 x i8] c", \00" +@.str.3802 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3803 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3804 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3805 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3806 = private unnamed_addr constant [21 x i8] c"the value after 'or'\00" -@.str.3807 = private unnamed_addr constant [8 x i8] c"or.bend\00" -@.str.3808 = private unnamed_addr constant [7 x i8] c"or.end\00" -@.str.3809 = private unnamed_addr constant [5 x i8] c"phi \00" -@.str.3810 = private unnamed_addr constant [4 x i8] c" [ \00" -@.str.3811 = private unnamed_addr constant [4 x i8] c", %\00" -@.str.3812 = private unnamed_addr constant [7 x i8] c" ], [ \00" -@.str.3813 = private unnamed_addr constant [4 x i8] c", %\00" -@.str.3814 = private unnamed_addr constant [3 x i8] c" ]\00" -@.str.3815 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.3816 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.3817 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.3806 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3807 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3808 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.3809 = private unnamed_addr constant [53 x i8] c"an arm of a match that gives a value has to give one\00" +@.str.3810 = private unnamed_addr constant [58 x i8] c"this arm (the arms of a match have to give the same type)\00" +@.str.3811 = private unnamed_addr constant [11 x i8] c"match.from\00" +@.str.3812 = private unnamed_addr constant [6 x i8] c"block\00" +@.str.3813 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3814 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.3815 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3816 = private unnamed_addr constant [29 x i8] c"used .sums on a null pointer\00" +@.str.3817 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3818 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3819 = private unnamed_addr constant [3 x i8] c"0x\00" +@.str.3819 = private unnamed_addr constant [29 x i8] c"used .sums on a null pointer\00" @.str.3820 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3821 = private unnamed_addr constant [3 x i8] c"0X\00" -@.str.3822 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3823 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.3824 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3825 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.3826 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.3827 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.3828 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.3829 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.3830 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.3831 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3832 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.3833 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.3834 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.3835 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.3836 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.3837 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.3838 = private unnamed_addr constant [7 x i8] c"member\00" -@.str.3839 = private unnamed_addr constant [6 x i8] c"index\00" -@.str.3840 = private unnamed_addr constant [6 x i8] c"match\00" -@.str.3841 = private unnamed_addr constant [4 x i8] c"try\00" -@.str.3842 = private unnamed_addr constant [3 x i8] c"or\00" -@.str.3843 = private unnamed_addr constant [6 x i8] c"unary\00" -@.str.3844 = private unnamed_addr constant [7 x i8] c"binary\00" -@.str.3845 = private unnamed_addr constant [5 x i8] c"call\00" -@.str.3846 = private unnamed_addr constant [7 x i8] c"method\00" -@.str.3847 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.3848 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3849 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.3850 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.3851 = private unnamed_addr constant [20 x i8] c"unknown expression \00" -@.str.3852 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3853 = private unnamed_addr constant [2 x i8] c"!\00" -@.str.3854 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.3855 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3856 = private unnamed_addr constant [20 x i8] c"the value after '!'\00" -@.str.3857 = private unnamed_addr constant [8 x i8] c"xor i1 \00" -@.str.3858 = private unnamed_addr constant [7 x i8] c", true\00" -@.str.3859 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.3860 = private unnamed_addr constant [2 x i8] c"~\00" -@.str.3861 = private unnamed_addr constant [46 x i8] c"'~' flips the bits of a whole number, not of \00" -@.str.3862 = private unnamed_addr constant [5 x i8] c"xor \00" -@.str.3863 = private unnamed_addr constant [2 x i8] c" \00" -@.str.3864 = private unnamed_addr constant [5 x i8] c", -1\00" -@.str.3865 = private unnamed_addr constant [35 x i8] c" can't be negative (it's unsigned)\00" +@.str.3821 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3822 = private unnamed_addr constant [27 x i8] c"this match doesn't handle \00" +@.str.3823 = private unnamed_addr constant [3 x i8] c", \00" +@.str.3824 = private unnamed_addr constant [30 x i8] c" (add them, or an 'else' arm)\00" +@.str.3825 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.3826 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3827 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" +@.str.3828 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3829 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3830 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3831 = private unnamed_addr constant [27 x i8] c"this match doesn't handle \00" +@.str.3832 = private unnamed_addr constant [3 x i8] c", \00" +@.str.3833 = private unnamed_addr constant [30 x i8] c" (add them, or an 'else' arm)\00" +@.str.3834 = private unnamed_addr constant [12 x i8] c"a match on \00" +@.str.3835 = private unnamed_addr constant [55 x i8] c" needs an 'else' arm for everything that is not listed\00" +@.str.3836 = private unnamed_addr constant [5 x i8] c"true\00" +@.str.3837 = private unnamed_addr constant [36 x i8] c"no arm of this match fits the value\00" +@.str.3838 = private unnamed_addr constant [12 x i8] c"unreachable\00" +@.str.3839 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3840 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.3841 = private unnamed_addr constant [12 x i8] c"unreachable\00" +@.str.3842 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3843 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.3844 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3845 = private unnamed_addr constant [5 x i8] c"phi \00" +@.str.3846 = private unnamed_addr constant [2 x i8] c" \00" +@.str.3847 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3848 = private unnamed_addr constant [3 x i8] c"[ \00" +@.str.3849 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3850 = private unnamed_addr constant [4 x i8] c", %\00" +@.str.3851 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3852 = private unnamed_addr constant [3 x i8] c" ]\00" +@.str.3853 = private unnamed_addr constant [3 x i8] c", \00" +@.str.3854 = private unnamed_addr constant [5 x i8] c"call\00" +@.str.3855 = private unnamed_addr constant [7 x i8] c"method\00" +@.str.3856 = private unnamed_addr constant [81 x i8] c"only a function call can fail; 'or' and 'try' go after one, like int(text) or 0\00" +@.str.3857 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3858 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" +@.str.3859 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3860 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" +@.str.3861 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3862 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" +@.str.3863 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3864 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" +@.str.3865 = private unnamed_addr constant [1 x i8] c"\00" @.str.3866 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3867 = private unnamed_addr constant [2 x i8] c"-\00" -@.str.3868 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3869 = private unnamed_addr constant [2 x i8] c"-\00" -@.str.3870 = private unnamed_addr constant [5 x i8] c"sub \00" -@.str.3871 = private unnamed_addr constant [5 x i8] c" 0, \00" -@.str.3872 = private unnamed_addr constant [6 x i8] c"fneg \00" -@.str.3873 = private unnamed_addr constant [2 x i8] c" \00" -@.str.3874 = private unnamed_addr constant [27 x i8] c"can't put '-' in front of \00" -@.str.3875 = private unnamed_addr constant [12 x i8] c"can't use '\00" -@.str.3876 = private unnamed_addr constant [6 x i8] c"' on \00" -@.str.3877 = private unnamed_addr constant [6 x i8] c" and \00" -@.str.3878 = private unnamed_addr constant [2 x i8] c"+\00" -@.str.3879 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.3880 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.3881 = private unnamed_addr constant [49 x i8] c" (turn the other side into text first: str(...))\00" -@.str.3882 = private unnamed_addr constant [2 x i8] c"&\00" -@.str.3883 = private unnamed_addr constant [2 x i8] c"|\00" -@.str.3884 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.3885 = private unnamed_addr constant [2 x i8] c"&\00" -@.str.3886 = private unnamed_addr constant [27 x i8] c" (for true/false use '&&')\00" -@.str.3887 = private unnamed_addr constant [27 x i8] c" (for true/false use '||')\00" -@.str.3888 = private unnamed_addr constant [2 x i8] c"&\00" -@.str.3889 = private unnamed_addr constant [2 x i8] c"|\00" -@.str.3890 = private unnamed_addr constant [2 x i8] c"^\00" -@.str.3891 = private unnamed_addr constant [3 x i8] c"<<\00" -@.str.3892 = private unnamed_addr constant [3 x i8] c">>\00" -@.str.3893 = private unnamed_addr constant [44 x i8] c" (bit operators work on whole numbers only)\00" -@.str.3894 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.3895 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.3896 = private unnamed_addr constant [3 x i8] c"==\00" -@.str.3897 = private unnamed_addr constant [3 x i8] c"!=\00" -@.str.3898 = private unnamed_addr constant [32 x i8] c" (compare the parts one by one)\00" +@.str.3867 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" +@.str.3868 = private unnamed_addr constant [1 x i8] c"\00" +@.str.3869 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3870 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" +@.str.3871 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3872 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" +@.str.3873 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3874 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" +@.str.3875 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3876 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" +@.str.3877 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3878 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" +@.str.3879 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3880 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" +@.str.3881 = private unnamed_addr constant [51 x i8] c"this call can't fail, so it needs no 'or' or 'try'\00" +@.str.3882 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3883 = private unnamed_addr constant [32 x i8] c"used .inDefer on a null pointer\00" +@.str.3884 = private unnamed_addr constant [31 x i8] c"try can't be used inside defer\00" +@.str.3885 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3886 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3887 = private unnamed_addr constant [2 x i8] c"!\00" +@.str.3888 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3889 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3890 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3891 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3892 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3893 = private unnamed_addr constant [2 x i8] c"!\00" +@.str.3894 = private unnamed_addr constant [30 x i8] c"try passes the error on, so '\00" +@.str.3895 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3896 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3897 = private unnamed_addr constant [32 x i8] c"' must be able to fail too (-> \00" +@.str.3898 = private unnamed_addr constant [56 x i8] c"); or handle it here: ... or / ... or { ... }\00" @.str.3899 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3900 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3901 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3902 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.3900 = private unnamed_addr constant [11 x i8] c"try.failed\00" +@.str.3901 = private unnamed_addr constant [7 x i8] c"try.ok\00" +@.str.3902 = private unnamed_addr constant [5 x i8] c"ret \00" @.str.3903 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3904 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3905 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3906 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.3904 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3905 = private unnamed_addr constant [2 x i8] c" \00" +@.str.3906 = private unnamed_addr constant [13 x i8] c"insertvalue \00" @.str.3907 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3908 = private unnamed_addr constant [28 x i8] c"used .lit on a null pointer\00" -@.str.3909 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3910 = private unnamed_addr constant [28 x i8] c"used .lit on a null pointer\00" +@.str.3908 = private unnamed_addr constant [28 x i8] c"used .cur on a null pointer\00" +@.str.3909 = private unnamed_addr constant [37 x i8] c" zeroinitializer, { ptr, i64, i64 } \00" +@.str.3910 = private unnamed_addr constant [4 x i8] c", 2\00" @.str.3911 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3912 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" +@.str.3912 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" @.str.3913 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3914 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3915 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3916 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3917 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3918 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" +@.str.3914 = private unnamed_addr constant [10 x i8] c"or.failed\00" +@.str.3915 = private unnamed_addr constant [6 x i8] c"or.ok\00" +@.str.3916 = private unnamed_addr constant [4 x i8] c"err\00" +@.str.3917 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.3918 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3919 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3920 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3921 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3922 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" -@.str.3923 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3924 = private unnamed_addr constant [28 x i8] c"used .lit on a null pointer\00" -@.str.3925 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3926 = private unnamed_addr constant [28 x i8] c"used .lit on a null pointer\00" -@.str.3927 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3928 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" -@.str.3929 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3930 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3931 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3932 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.3920 = private unnamed_addr constant [29 x i8] c"used .term on a null pointer\00" +@.str.3921 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3922 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3923 = private unnamed_addr constant [143 x i8] c"this block must leave with return, break, continue or exit(...): after a failure there is no value to go on with (or give one: ... or )\00" +@.str.3924 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3925 = private unnamed_addr constant [7 x i8] c"or.end\00" +@.str.3926 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3927 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3928 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3929 = private unnamed_addr constant [99 x i8] c"this call gives back no value, so there is nothing to replace; handle the failure with or { ... }\00" +@.str.3930 = private unnamed_addr constant [4 x i8] c"err\00" +@.str.3931 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.3932 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.3933 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3934 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" -@.str.3935 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3936 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3937 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3938 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" -@.str.3939 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3940 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3941 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3942 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3943 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3944 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" -@.str.3945 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3946 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3947 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3948 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3949 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3950 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3951 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3952 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" -@.str.3953 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3954 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3955 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3956 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3957 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3958 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" +@.str.3934 = private unnamed_addr constant [21 x i8] c"the value after 'or'\00" +@.str.3935 = private unnamed_addr constant [8 x i8] c"or.bend\00" +@.str.3936 = private unnamed_addr constant [7 x i8] c"or.end\00" +@.str.3937 = private unnamed_addr constant [5 x i8] c"phi \00" +@.str.3938 = private unnamed_addr constant [4 x i8] c" [ \00" +@.str.3939 = private unnamed_addr constant [4 x i8] c", %\00" +@.str.3940 = private unnamed_addr constant [7 x i8] c" ], [ \00" +@.str.3941 = private unnamed_addr constant [4 x i8] c", %\00" +@.str.3942 = private unnamed_addr constant [3 x i8] c" ]\00" +@.str.3943 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.3944 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.3945 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.3946 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3947 = private unnamed_addr constant [3 x i8] c"0x\00" +@.str.3948 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3949 = private unnamed_addr constant [3 x i8] c"0X\00" +@.str.3950 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3951 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.3952 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3953 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.3954 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.3955 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.3956 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.3957 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.3958 = private unnamed_addr constant [5 x i8] c"char\00" @.str.3959 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3960 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3961 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3962 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3963 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3964 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3965 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3966 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" -@.str.3967 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3968 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3969 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3970 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3971 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3972 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" -@.str.3973 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3974 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3975 = private unnamed_addr constant [1 x i8] c"\00" -@.str.3976 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3977 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" -@.str.3978 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3979 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.3960 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.3961 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.3962 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.3963 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.3964 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.3965 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.3966 = private unnamed_addr constant [7 x i8] c"member\00" +@.str.3967 = private unnamed_addr constant [6 x i8] c"index\00" +@.str.3968 = private unnamed_addr constant [6 x i8] c"match\00" +@.str.3969 = private unnamed_addr constant [4 x i8] c"try\00" +@.str.3970 = private unnamed_addr constant [3 x i8] c"or\00" +@.str.3971 = private unnamed_addr constant [6 x i8] c"unary\00" +@.str.3972 = private unnamed_addr constant [7 x i8] c"binary\00" +@.str.3973 = private unnamed_addr constant [5 x i8] c"call\00" +@.str.3974 = private unnamed_addr constant [7 x i8] c"method\00" +@.str.3975 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.3976 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3977 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.3978 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.3979 = private unnamed_addr constant [20 x i8] c"unknown expression \00" @.str.3980 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3981 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3982 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3983 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" -@.str.3984 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3985 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3986 = private unnamed_addr constant [1 x i8] c"\00" -@.str.3987 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3988 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" -@.str.3989 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3990 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3991 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3992 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3993 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3994 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.3995 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.3981 = private unnamed_addr constant [2 x i8] c"!\00" +@.str.3982 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.3983 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3984 = private unnamed_addr constant [20 x i8] c"the value after '!'\00" +@.str.3985 = private unnamed_addr constant [8 x i8] c"xor i1 \00" +@.str.3986 = private unnamed_addr constant [7 x i8] c", true\00" +@.str.3987 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.3988 = private unnamed_addr constant [2 x i8] c"~\00" +@.str.3989 = private unnamed_addr constant [46 x i8] c"'~' flips the bits of a whole number, not of \00" +@.str.3990 = private unnamed_addr constant [5 x i8] c"xor \00" +@.str.3991 = private unnamed_addr constant [2 x i8] c" \00" +@.str.3992 = private unnamed_addr constant [5 x i8] c", -1\00" +@.str.3993 = private unnamed_addr constant [35 x i8] c" can't be negative (it's unsigned)\00" +@.str.3994 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.3995 = private unnamed_addr constant [2 x i8] c"-\00" @.str.3996 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3997 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" -@.str.3998 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.3999 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.4000 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4001 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4002 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4003 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" -@.str.4004 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4005 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.4006 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.4007 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4008 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" -@.str.4009 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4010 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" -@.str.4011 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4012 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4013 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4014 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" -@.str.4015 = private unnamed_addr constant [2 x i8] c"+\00" -@.str.4016 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4017 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4018 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.4019 = private unnamed_addr constant [33 x i8] c"call void @finch_str_concat(ptr \00" -@.str.4020 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4021 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4022 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4023 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.4024 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4025 = private unnamed_addr constant [2 x i8] c"+\00" -@.str.4026 = private unnamed_addr constant [2 x i8] c"-\00" -@.str.4027 = private unnamed_addr constant [2 x i8] c"*\00" -@.str.4028 = private unnamed_addr constant [2 x i8] c"/\00" -@.str.4029 = private unnamed_addr constant [2 x i8] c"%\00" -@.str.4030 = private unnamed_addr constant [2 x i8] c"&\00" -@.str.4031 = private unnamed_addr constant [2 x i8] c"|\00" -@.str.4032 = private unnamed_addr constant [2 x i8] c"^\00" -@.str.4033 = private unnamed_addr constant [3 x i8] c"<<\00" -@.str.4034 = private unnamed_addr constant [3 x i8] c">>\00" -@.str.4035 = private unnamed_addr constant [4 x i8] c"add\00" -@.str.4036 = private unnamed_addr constant [4 x i8] c"sub\00" -@.str.4037 = private unnamed_addr constant [4 x i8] c"mul\00" -@.str.4038 = private unnamed_addr constant [5 x i8] c"sdiv\00" -@.str.4039 = private unnamed_addr constant [5 x i8] c"srem\00" -@.str.4040 = private unnamed_addr constant [4 x i8] c"and\00" -@.str.4041 = private unnamed_addr constant [3 x i8] c"or\00" -@.str.4042 = private unnamed_addr constant [4 x i8] c"xor\00" -@.str.4043 = private unnamed_addr constant [4 x i8] c"shl\00" -@.str.4044 = private unnamed_addr constant [5 x i8] c"ashr\00" -@.str.4045 = private unnamed_addr constant [4 x i8] c"add\00" -@.str.4046 = private unnamed_addr constant [4 x i8] c"sub\00" -@.str.4047 = private unnamed_addr constant [4 x i8] c"mul\00" -@.str.4048 = private unnamed_addr constant [5 x i8] c"udiv\00" -@.str.4049 = private unnamed_addr constant [5 x i8] c"urem\00" -@.str.4050 = private unnamed_addr constant [4 x i8] c"and\00" -@.str.4051 = private unnamed_addr constant [3 x i8] c"or\00" -@.str.4052 = private unnamed_addr constant [4 x i8] c"xor\00" -@.str.4053 = private unnamed_addr constant [4 x i8] c"shl\00" -@.str.4054 = private unnamed_addr constant [5 x i8] c"lshr\00" -@.str.4055 = private unnamed_addr constant [2 x i8] c"/\00" -@.str.4056 = private unnamed_addr constant [2 x i8] c"%\00" -@.str.4057 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.4058 = private unnamed_addr constant [17 x i8] c"division by zero\00" -@.str.4059 = private unnamed_addr constant [9 x i8] c"icmp eq \00" -@.str.4060 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4061 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.4062 = private unnamed_addr constant [17 x i8] c"division by zero\00" +@.str.3997 = private unnamed_addr constant [2 x i8] c"-\00" +@.str.3998 = private unnamed_addr constant [5 x i8] c"sub \00" +@.str.3999 = private unnamed_addr constant [5 x i8] c" 0, \00" +@.str.4000 = private unnamed_addr constant [6 x i8] c"fneg \00" +@.str.4001 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4002 = private unnamed_addr constant [27 x i8] c"can't put '-' in front of \00" +@.str.4003 = private unnamed_addr constant [12 x i8] c"can't use '\00" +@.str.4004 = private unnamed_addr constant [6 x i8] c"' on \00" +@.str.4005 = private unnamed_addr constant [6 x i8] c" and \00" +@.str.4006 = private unnamed_addr constant [2 x i8] c"+\00" +@.str.4007 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4008 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4009 = private unnamed_addr constant [49 x i8] c" (turn the other side into text first: str(...))\00" +@.str.4010 = private unnamed_addr constant [2 x i8] c"&\00" +@.str.4011 = private unnamed_addr constant [2 x i8] c"|\00" +@.str.4012 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4013 = private unnamed_addr constant [2 x i8] c"&\00" +@.str.4014 = private unnamed_addr constant [27 x i8] c" (for true/false use '&&')\00" +@.str.4015 = private unnamed_addr constant [27 x i8] c" (for true/false use '||')\00" +@.str.4016 = private unnamed_addr constant [2 x i8] c"&\00" +@.str.4017 = private unnamed_addr constant [2 x i8] c"|\00" +@.str.4018 = private unnamed_addr constant [2 x i8] c"^\00" +@.str.4019 = private unnamed_addr constant [3 x i8] c"<<\00" +@.str.4020 = private unnamed_addr constant [3 x i8] c">>\00" +@.str.4021 = private unnamed_addr constant [44 x i8] c" (bit operators work on whole numbers only)\00" +@.str.4022 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.4023 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.4024 = private unnamed_addr constant [3 x i8] c"==\00" +@.str.4025 = private unnamed_addr constant [3 x i8] c"!=\00" +@.str.4026 = private unnamed_addr constant [32 x i8] c" (compare the parts one by one)\00" +@.str.4027 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4028 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4029 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4030 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4031 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4032 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4033 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4034 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4035 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4036 = private unnamed_addr constant [28 x i8] c"used .lit on a null pointer\00" +@.str.4037 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4038 = private unnamed_addr constant [28 x i8] c"used .lit on a null pointer\00" +@.str.4039 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4040 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" +@.str.4041 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4042 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4043 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4044 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4045 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4046 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" +@.str.4047 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4048 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4049 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4050 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" +@.str.4051 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4052 = private unnamed_addr constant [28 x i8] c"used .lit on a null pointer\00" +@.str.4053 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4054 = private unnamed_addr constant [28 x i8] c"used .lit on a null pointer\00" +@.str.4055 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4056 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" +@.str.4057 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4058 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4059 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4060 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4061 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4062 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" @.str.4063 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4064 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4065 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4066 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4067 = private unnamed_addr constant [2 x i8] c"+\00" -@.str.4068 = private unnamed_addr constant [2 x i8] c"-\00" -@.str.4069 = private unnamed_addr constant [2 x i8] c"*\00" -@.str.4070 = private unnamed_addr constant [2 x i8] c"/\00" -@.str.4071 = private unnamed_addr constant [2 x i8] c"%\00" -@.str.4072 = private unnamed_addr constant [5 x i8] c"fadd\00" -@.str.4073 = private unnamed_addr constant [5 x i8] c"fsub\00" -@.str.4074 = private unnamed_addr constant [5 x i8] c"fmul\00" -@.str.4075 = private unnamed_addr constant [5 x i8] c"fdiv\00" -@.str.4076 = private unnamed_addr constant [5 x i8] c"frem\00" +@.str.4064 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4065 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4066 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" +@.str.4067 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4068 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4069 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4070 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4071 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4072 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" +@.str.4073 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4074 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4075 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4076 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" @.str.4077 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4078 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4079 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4080 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4081 = private unnamed_addr constant [3 x i8] c"==\00" -@.str.4082 = private unnamed_addr constant [3 x i8] c"!=\00" -@.str.4083 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4084 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4085 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.4086 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.4087 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4088 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4089 = private unnamed_addr constant [60 x i8] c"a str is never null; to check for empty text use s.len == 0\00" -@.str.4090 = private unnamed_addr constant [3 x i8] c"eq\00" -@.str.4091 = private unnamed_addr constant [3 x i8] c"!=\00" -@.str.4092 = private unnamed_addr constant [3 x i8] c"ne\00" -@.str.4093 = private unnamed_addr constant [6 x i8] c"icmp \00" -@.str.4094 = private unnamed_addr constant [6 x i8] c" ptr \00" -@.str.4095 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4096 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4097 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4098 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4099 = private unnamed_addr constant [28 x i8] c"call i32 @finch_str_eq(ptr \00" -@.str.4100 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4101 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4102 = private unnamed_addr constant [3 x i8] c"ne\00" -@.str.4103 = private unnamed_addr constant [3 x i8] c"!=\00" -@.str.4104 = private unnamed_addr constant [3 x i8] c"eq\00" -@.str.4105 = private unnamed_addr constant [6 x i8] c"icmp \00" -@.str.4106 = private unnamed_addr constant [6 x i8] c" i32 \00" -@.str.4107 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.4108 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4109 = private unnamed_addr constant [29 x i8] c"call i64 @finch_str_cmp(ptr \00" -@.str.4110 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4111 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4112 = private unnamed_addr constant [6 x i8] c"icmp \00" -@.str.4113 = private unnamed_addr constant [6 x i8] c" i64 \00" -@.str.4114 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.4115 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4116 = private unnamed_addr constant [3 x i8] c"==\00" -@.str.4117 = private unnamed_addr constant [3 x i8] c"!=\00" -@.str.4118 = private unnamed_addr constant [2 x i8] c"<\00" -@.str.4119 = private unnamed_addr constant [3 x i8] c"<=\00" -@.str.4120 = private unnamed_addr constant [2 x i8] c">\00" -@.str.4121 = private unnamed_addr constant [3 x i8] c">=\00" -@.str.4122 = private unnamed_addr constant [4 x i8] c"oeq\00" -@.str.4123 = private unnamed_addr constant [4 x i8] c"une\00" -@.str.4124 = private unnamed_addr constant [4 x i8] c"olt\00" -@.str.4125 = private unnamed_addr constant [4 x i8] c"ole\00" -@.str.4126 = private unnamed_addr constant [4 x i8] c"ogt\00" -@.str.4127 = private unnamed_addr constant [4 x i8] c"oge\00" -@.str.4128 = private unnamed_addr constant [6 x i8] c"fcmp \00" -@.str.4129 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4130 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4131 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4132 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4133 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4134 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.4135 = private unnamed_addr constant [116 x i8] c"enums can only be compared with == and != (to go through them in order, give the variants numbers and use int(...))\00" -@.str.4136 = private unnamed_addr constant [3 x i8] c"eq\00" -@.str.4137 = private unnamed_addr constant [3 x i8] c"!=\00" -@.str.4138 = private unnamed_addr constant [3 x i8] c"ne\00" -@.str.4139 = private unnamed_addr constant [6 x i8] c"icmp \00" -@.str.4140 = private unnamed_addr constant [6 x i8] c" i32 \00" -@.str.4141 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4142 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4143 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4144 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.4145 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4146 = private unnamed_addr constant [6 x i8] c"icmp \00" -@.str.4147 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4148 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4149 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4150 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4151 = private unnamed_addr constant [3 x i8] c"==\00" -@.str.4152 = private unnamed_addr constant [3 x i8] c"!=\00" -@.str.4153 = private unnamed_addr constant [2 x i8] c"<\00" -@.str.4154 = private unnamed_addr constant [3 x i8] c"<=\00" -@.str.4155 = private unnamed_addr constant [2 x i8] c">\00" -@.str.4156 = private unnamed_addr constant [3 x i8] c">=\00" -@.str.4157 = private unnamed_addr constant [3 x i8] c"eq\00" -@.str.4158 = private unnamed_addr constant [3 x i8] c"ne\00" -@.str.4159 = private unnamed_addr constant [4 x i8] c"ult\00" -@.str.4160 = private unnamed_addr constant [4 x i8] c"ule\00" -@.str.4161 = private unnamed_addr constant [4 x i8] c"ugt\00" -@.str.4162 = private unnamed_addr constant [4 x i8] c"uge\00" -@.str.4163 = private unnamed_addr constant [3 x i8] c"eq\00" -@.str.4164 = private unnamed_addr constant [3 x i8] c"ne\00" -@.str.4165 = private unnamed_addr constant [4 x i8] c"slt\00" -@.str.4166 = private unnamed_addr constant [4 x i8] c"sle\00" -@.str.4167 = private unnamed_addr constant [4 x i8] c"sgt\00" -@.str.4168 = private unnamed_addr constant [4 x i8] c"sge\00" -@.str.4169 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4170 = private unnamed_addr constant [3 x i8] c"&&\00" -@.str.4171 = private unnamed_addr constant [3 x i8] c"||\00" -@.str.4172 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4173 = private unnamed_addr constant [11 x i8] c"logic.from\00" -@.str.4174 = private unnamed_addr constant [10 x i8] c"logic.rhs\00" -@.str.4175 = private unnamed_addr constant [10 x i8] c"logic.end\00" -@.str.4176 = private unnamed_addr constant [3 x i8] c"&&\00" -@.str.4177 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4178 = private unnamed_addr constant [11 x i8] c"logic.rend\00" -@.str.4179 = private unnamed_addr constant [5 x i8] c"true\00" -@.str.4180 = private unnamed_addr constant [3 x i8] c"&&\00" -@.str.4181 = private unnamed_addr constant [6 x i8] c"false\00" -@.str.4182 = private unnamed_addr constant [10 x i8] c"phi i1 [ \00" -@.str.4183 = private unnamed_addr constant [4 x i8] c", %\00" -@.str.4184 = private unnamed_addr constant [7 x i8] c" ], [ \00" -@.str.4185 = private unnamed_addr constant [4 x i8] c", %\00" -@.str.4186 = private unnamed_addr constant [3 x i8] c" ]\00" -@.str.4187 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4188 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4189 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4190 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.4078 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4079 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4080 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" +@.str.4081 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4082 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4083 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4084 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4085 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4086 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" +@.str.4087 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4088 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4089 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4090 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4091 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4092 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4093 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4094 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" +@.str.4095 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4096 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4097 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4098 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4099 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4100 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" +@.str.4101 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4102 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4103 = private unnamed_addr constant [1 x i8] c"\00" +@.str.4104 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4105 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" +@.str.4106 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4107 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4108 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4109 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4110 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4111 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" +@.str.4112 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4113 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4114 = private unnamed_addr constant [1 x i8] c"\00" +@.str.4115 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4116 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" +@.str.4117 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4118 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4119 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4120 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4121 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4122 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4123 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.4124 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4125 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" +@.str.4126 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4127 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4128 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.4129 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.4130 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4131 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" +@.str.4132 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4133 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4134 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.4135 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4136 = private unnamed_addr constant [26 x i8] c"used .v on a null pointer\00" +@.str.4137 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4138 = private unnamed_addr constant [27 x i8] c"used .ty on a null pointer\00" +@.str.4139 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.4140 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.4141 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4142 = private unnamed_addr constant [30 x i8] c"used .value on a null pointer\00" +@.str.4143 = private unnamed_addr constant [2 x i8] c"+\00" +@.str.4144 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4145 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4146 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.4147 = private unnamed_addr constant [33 x i8] c"call void @finch_str_concat(ptr \00" +@.str.4148 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4149 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4150 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4151 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.4152 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4153 = private unnamed_addr constant [2 x i8] c"+\00" +@.str.4154 = private unnamed_addr constant [2 x i8] c"-\00" +@.str.4155 = private unnamed_addr constant [2 x i8] c"*\00" +@.str.4156 = private unnamed_addr constant [2 x i8] c"/\00" +@.str.4157 = private unnamed_addr constant [2 x i8] c"%\00" +@.str.4158 = private unnamed_addr constant [2 x i8] c"&\00" +@.str.4159 = private unnamed_addr constant [2 x i8] c"|\00" +@.str.4160 = private unnamed_addr constant [2 x i8] c"^\00" +@.str.4161 = private unnamed_addr constant [3 x i8] c"<<\00" +@.str.4162 = private unnamed_addr constant [3 x i8] c">>\00" +@.str.4163 = private unnamed_addr constant [4 x i8] c"add\00" +@.str.4164 = private unnamed_addr constant [4 x i8] c"sub\00" +@.str.4165 = private unnamed_addr constant [4 x i8] c"mul\00" +@.str.4166 = private unnamed_addr constant [5 x i8] c"sdiv\00" +@.str.4167 = private unnamed_addr constant [5 x i8] c"srem\00" +@.str.4168 = private unnamed_addr constant [4 x i8] c"and\00" +@.str.4169 = private unnamed_addr constant [3 x i8] c"or\00" +@.str.4170 = private unnamed_addr constant [4 x i8] c"xor\00" +@.str.4171 = private unnamed_addr constant [4 x i8] c"shl\00" +@.str.4172 = private unnamed_addr constant [5 x i8] c"ashr\00" +@.str.4173 = private unnamed_addr constant [4 x i8] c"add\00" +@.str.4174 = private unnamed_addr constant [4 x i8] c"sub\00" +@.str.4175 = private unnamed_addr constant [4 x i8] c"mul\00" +@.str.4176 = private unnamed_addr constant [5 x i8] c"udiv\00" +@.str.4177 = private unnamed_addr constant [5 x i8] c"urem\00" +@.str.4178 = private unnamed_addr constant [4 x i8] c"and\00" +@.str.4179 = private unnamed_addr constant [3 x i8] c"or\00" +@.str.4180 = private unnamed_addr constant [4 x i8] c"xor\00" +@.str.4181 = private unnamed_addr constant [4 x i8] c"shl\00" +@.str.4182 = private unnamed_addr constant [5 x i8] c"lshr\00" +@.str.4183 = private unnamed_addr constant [2 x i8] c"/\00" +@.str.4184 = private unnamed_addr constant [2 x i8] c"%\00" +@.str.4185 = private unnamed_addr constant [2 x i8] c"0\00" +@.str.4186 = private unnamed_addr constant [17 x i8] c"division by zero\00" +@.str.4187 = private unnamed_addr constant [9 x i8] c"icmp eq \00" +@.str.4188 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4189 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.4190 = private unnamed_addr constant [17 x i8] c"division by zero\00" @.str.4191 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4192 = private unnamed_addr constant [3 x i8] c"==\00" -@.str.4193 = private unnamed_addr constant [3 x i8] c"!=\00" -@.str.4194 = private unnamed_addr constant [2 x i8] c"<\00" -@.str.4195 = private unnamed_addr constant [3 x i8] c"<=\00" -@.str.4196 = private unnamed_addr constant [2 x i8] c">\00" -@.str.4197 = private unnamed_addr constant [3 x i8] c">=\00" -@.str.4198 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.4199 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.4200 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4201 = private unnamed_addr constant [48 x i8] c"an empty [] needs a type, like: []int nums = []\00" -@.str.4202 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4203 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.4204 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.4205 = private unnamed_addr constant [28 x i8] c"every element of this array\00" -@.str.4206 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4207 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.4208 = private unnamed_addr constant [9 x i8] c"mul i64 \00" -@.str.4209 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4210 = private unnamed_addr constant [27 x i8] c"call ptr @finch_alloc(i64 \00" -@.str.4211 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4212 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.4213 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4214 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.4215 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4216 = private unnamed_addr constant [42 x i8] c"insertvalue { ptr, i64, i64 } undef, ptr \00" -@.str.4217 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.4218 = private unnamed_addr constant [31 x i8] c"insertvalue { ptr, i64, i64 } \00" -@.str.4219 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.4220 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str.4221 = private unnamed_addr constant [31 x i8] c"insertvalue { ptr, i64, i64 } \00" -@.str.4222 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.4223 = private unnamed_addr constant [4 x i8] c", 2\00" -@.str.4224 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.4225 = private unnamed_addr constant [29 x i8] c"there is no variable named '\00" -@.str.4226 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.4227 = private unnamed_addr constant [61 x i8] c"this is a temporary value, it can't be changed or pointed to\00" -@.str.4228 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.4229 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4230 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" -@.str.4231 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4232 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" -@.str.4233 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4234 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4235 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.4236 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4237 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" -@.str.4238 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4239 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" -@.str.4240 = private unnamed_addr constant [8 x i8] c"fprintf\00" -@.str.4241 = private unnamed_addr constant [6 x i8] c"stdin\00" -@.str.4242 = private unnamed_addr constant [7 x i8] c"stdout\00" -@.str.4243 = private unnamed_addr constant [7 x i8] c"stderr\00" -@.str.4244 = private unnamed_addr constant [2 x i8] c"2\00" -@.str.4245 = private unnamed_addr constant [6 x i8] c"stdin\00" -@.str.4246 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.4247 = private unnamed_addr constant [7 x i8] c"stdout\00" -@.str.4248 = private unnamed_addr constant [2 x i8] c"1\00" -@.str.4249 = private unnamed_addr constant [32 x i8] c"call ptr @finch_std_stream(i32 \00" -@.str.4250 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4251 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4252 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4253 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" -@.str.4254 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4255 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" -@.str.4256 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4192 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4193 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4194 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4195 = private unnamed_addr constant [2 x i8] c"+\00" +@.str.4196 = private unnamed_addr constant [2 x i8] c"-\00" +@.str.4197 = private unnamed_addr constant [2 x i8] c"*\00" +@.str.4198 = private unnamed_addr constant [2 x i8] c"/\00" +@.str.4199 = private unnamed_addr constant [2 x i8] c"%\00" +@.str.4200 = private unnamed_addr constant [5 x i8] c"fadd\00" +@.str.4201 = private unnamed_addr constant [5 x i8] c"fsub\00" +@.str.4202 = private unnamed_addr constant [5 x i8] c"fmul\00" +@.str.4203 = private unnamed_addr constant [5 x i8] c"fdiv\00" +@.str.4204 = private unnamed_addr constant [5 x i8] c"frem\00" +@.str.4205 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4206 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4207 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4208 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4209 = private unnamed_addr constant [3 x i8] c"==\00" +@.str.4210 = private unnamed_addr constant [3 x i8] c"!=\00" +@.str.4211 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4212 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4213 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.4214 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.4215 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4216 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4217 = private unnamed_addr constant [60 x i8] c"a str is never null; to check for empty text use s.len == 0\00" +@.str.4218 = private unnamed_addr constant [3 x i8] c"eq\00" +@.str.4219 = private unnamed_addr constant [3 x i8] c"!=\00" +@.str.4220 = private unnamed_addr constant [3 x i8] c"ne\00" +@.str.4221 = private unnamed_addr constant [6 x i8] c"icmp \00" +@.str.4222 = private unnamed_addr constant [6 x i8] c" ptr \00" +@.str.4223 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4224 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4225 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4226 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4227 = private unnamed_addr constant [28 x i8] c"call i32 @finch_str_eq(ptr \00" +@.str.4228 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4229 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4230 = private unnamed_addr constant [3 x i8] c"ne\00" +@.str.4231 = private unnamed_addr constant [3 x i8] c"!=\00" +@.str.4232 = private unnamed_addr constant [3 x i8] c"eq\00" +@.str.4233 = private unnamed_addr constant [6 x i8] c"icmp \00" +@.str.4234 = private unnamed_addr constant [6 x i8] c" i32 \00" +@.str.4235 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.4236 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4237 = private unnamed_addr constant [29 x i8] c"call i64 @finch_str_cmp(ptr \00" +@.str.4238 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4239 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4240 = private unnamed_addr constant [6 x i8] c"icmp \00" +@.str.4241 = private unnamed_addr constant [6 x i8] c" i64 \00" +@.str.4242 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.4243 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4244 = private unnamed_addr constant [3 x i8] c"==\00" +@.str.4245 = private unnamed_addr constant [3 x i8] c"!=\00" +@.str.4246 = private unnamed_addr constant [2 x i8] c"<\00" +@.str.4247 = private unnamed_addr constant [3 x i8] c"<=\00" +@.str.4248 = private unnamed_addr constant [2 x i8] c">\00" +@.str.4249 = private unnamed_addr constant [3 x i8] c">=\00" +@.str.4250 = private unnamed_addr constant [4 x i8] c"oeq\00" +@.str.4251 = private unnamed_addr constant [4 x i8] c"une\00" +@.str.4252 = private unnamed_addr constant [4 x i8] c"olt\00" +@.str.4253 = private unnamed_addr constant [4 x i8] c"ole\00" +@.str.4254 = private unnamed_addr constant [4 x i8] c"ogt\00" +@.str.4255 = private unnamed_addr constant [4 x i8] c"oge\00" +@.str.4256 = private unnamed_addr constant [6 x i8] c"fcmp \00" @.str.4257 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4258 = private unnamed_addr constant [30 x i8] c"used .cdone on a null pointer\00" -@.str.4259 = private unnamed_addr constant [3 x i8] c"g:\00" -@.str.4260 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4261 = private unnamed_addr constant [30 x i8] c"used .cdone on a null pointer\00" -@.str.4262 = private unnamed_addr constant [3 x i8] c"g:\00" -@.str.4263 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4264 = private unnamed_addr constant [29 x i8] c"used .head on a null pointer\00" -@.str.4265 = private unnamed_addr constant [2 x i8] c"@\00" -@.str.4266 = private unnamed_addr constant [20 x i8] c" = external global \00" -@.str.4267 = private unnamed_addr constant [2 x i8] c"@\00" -@.str.4268 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.4269 = private unnamed_addr constant [44 x i8] c"' is a module; use something from it, like \00" -@.str.4270 = private unnamed_addr constant [11 x i8] c".name(...)\00" -@.str.4271 = private unnamed_addr constant [29 x i8] c"there is no variable named '\00" -@.str.4272 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.4273 = private unnamed_addr constant [10 x i8] c"```finch\0A\00" -@.str.4274 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4275 = private unnamed_addr constant [5 x i8] c"\0A```\00" -@.str.4276 = private unnamed_addr constant [7 x i8] c"member\00" -@.str.4277 = private unnamed_addr constant [6 x i8] c"index\00" -@.str.4278 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4279 = private unnamed_addr constant [2 x i8] c".\00" -@.str.4280 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.4281 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4282 = private unnamed_addr constant [2 x i8] c".\00" -@.str.4283 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4284 = private unnamed_addr constant [2 x i8] c"e\00" -@.str.4285 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4286 = private unnamed_addr constant [2 x i8] c"E\00" -@.str.4287 = private unnamed_addr constant [3 x i8] c".0\00" -@.str.4288 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4289 = private unnamed_addr constant [3 x i8] c".0\00" -@.str.4290 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4291 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.4292 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4293 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.4294 = private unnamed_addr constant [7 x i8] c"member\00" -@.str.4295 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4296 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.4258 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4259 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4260 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4261 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4262 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.4263 = private unnamed_addr constant [116 x i8] c"enums can only be compared with == and != (to go through them in order, give the variants numbers and use int(...))\00" +@.str.4264 = private unnamed_addr constant [3 x i8] c"eq\00" +@.str.4265 = private unnamed_addr constant [3 x i8] c"!=\00" +@.str.4266 = private unnamed_addr constant [3 x i8] c"ne\00" +@.str.4267 = private unnamed_addr constant [6 x i8] c"icmp \00" +@.str.4268 = private unnamed_addr constant [6 x i8] c" i32 \00" +@.str.4269 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4270 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4271 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4272 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.4273 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4274 = private unnamed_addr constant [6 x i8] c"icmp \00" +@.str.4275 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4276 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4277 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4278 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4279 = private unnamed_addr constant [3 x i8] c"==\00" +@.str.4280 = private unnamed_addr constant [3 x i8] c"!=\00" +@.str.4281 = private unnamed_addr constant [2 x i8] c"<\00" +@.str.4282 = private unnamed_addr constant [3 x i8] c"<=\00" +@.str.4283 = private unnamed_addr constant [2 x i8] c">\00" +@.str.4284 = private unnamed_addr constant [3 x i8] c">=\00" +@.str.4285 = private unnamed_addr constant [3 x i8] c"eq\00" +@.str.4286 = private unnamed_addr constant [3 x i8] c"ne\00" +@.str.4287 = private unnamed_addr constant [4 x i8] c"ult\00" +@.str.4288 = private unnamed_addr constant [4 x i8] c"ule\00" +@.str.4289 = private unnamed_addr constant [4 x i8] c"ugt\00" +@.str.4290 = private unnamed_addr constant [4 x i8] c"uge\00" +@.str.4291 = private unnamed_addr constant [3 x i8] c"eq\00" +@.str.4292 = private unnamed_addr constant [3 x i8] c"ne\00" +@.str.4293 = private unnamed_addr constant [4 x i8] c"slt\00" +@.str.4294 = private unnamed_addr constant [4 x i8] c"sle\00" +@.str.4295 = private unnamed_addr constant [4 x i8] c"sgt\00" +@.str.4296 = private unnamed_addr constant [4 x i8] c"sge\00" @.str.4297 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4298 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4299 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4298 = private unnamed_addr constant [3 x i8] c"&&\00" +@.str.4299 = private unnamed_addr constant [3 x i8] c"||\00" @.str.4300 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4301 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" -@.str.4302 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4303 = private unnamed_addr constant [10 x i8] c"the enum \00" -@.str.4304 = private unnamed_addr constant [18 x i8] c" has no variant '\00" -@.str.4305 = private unnamed_addr constant [12 x i8] c"' (it has: \00" -@.str.4306 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4307 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4308 = private unnamed_addr constant [10 x i8] c"```finch\0A\00" -@.str.4309 = private unnamed_addr constant [2 x i8] c".\00" -@.str.4310 = private unnamed_addr constant [4 x i8] c" = \00" -@.str.4311 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4312 = private unnamed_addr constant [5 x i8] c"\0A```\00" -@.str.4313 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4314 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4315 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.4301 = private unnamed_addr constant [11 x i8] c"logic.from\00" +@.str.4302 = private unnamed_addr constant [10 x i8] c"logic.rhs\00" +@.str.4303 = private unnamed_addr constant [10 x i8] c"logic.end\00" +@.str.4304 = private unnamed_addr constant [3 x i8] c"&&\00" +@.str.4305 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4306 = private unnamed_addr constant [11 x i8] c"logic.rend\00" +@.str.4307 = private unnamed_addr constant [5 x i8] c"true\00" +@.str.4308 = private unnamed_addr constant [3 x i8] c"&&\00" +@.str.4309 = private unnamed_addr constant [6 x i8] c"false\00" +@.str.4310 = private unnamed_addr constant [10 x i8] c"phi i1 [ \00" +@.str.4311 = private unnamed_addr constant [4 x i8] c", %\00" +@.str.4312 = private unnamed_addr constant [7 x i8] c" ], [ \00" +@.str.4313 = private unnamed_addr constant [4 x i8] c", %\00" +@.str.4314 = private unnamed_addr constant [3 x i8] c" ]\00" +@.str.4315 = private unnamed_addr constant [5 x i8] c"bool\00" @.str.4316 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4317 = private unnamed_addr constant [38 x i8] c"a variant of an enum can't be changed\00" -@.str.4318 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4319 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4320 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4321 = private unnamed_addr constant [58 x i8] c"this ptr has no type, so Finch doesn't know what's inside\00" -@.str.4322 = private unnamed_addr constant [13 x i8] c"icmp eq ptr \00" -@.str.4323 = private unnamed_addr constant [7 x i8] c", null\00" -@.str.4324 = private unnamed_addr constant [7 x i8] c"used .\00" -@.str.4325 = private unnamed_addr constant [19 x i8] c" on a null pointer\00" -@.str.4326 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4327 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.4317 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4318 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.4319 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4320 = private unnamed_addr constant [3 x i8] c"==\00" +@.str.4321 = private unnamed_addr constant [3 x i8] c"!=\00" +@.str.4322 = private unnamed_addr constant [2 x i8] c"<\00" +@.str.4323 = private unnamed_addr constant [3 x i8] c"<=\00" +@.str.4324 = private unnamed_addr constant [2 x i8] c">\00" +@.str.4325 = private unnamed_addr constant [3 x i8] c">=\00" +@.str.4326 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.4327 = private unnamed_addr constant [6 x i8] c"array\00" @.str.4328 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4329 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.4329 = private unnamed_addr constant [48 x i8] c"an empty [] needs a type, like: []int nums = []\00" @.str.4330 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4331 = private unnamed_addr constant [6 x i8] c"value\00" -@.str.4332 = private unnamed_addr constant [6 x i8] c"value\00" -@.str.4333 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.4334 = private unnamed_addr constant [3 x i8] c"a \00" -@.str.4335 = private unnamed_addr constant [44 x i8] c" only has '.value' (the thing it points to)\00" -@.str.4336 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str.4337 = private unnamed_addr constant [2 x i8] c".\00" -@.str.4338 = private unnamed_addr constant [27 x i8] c" can't be changed directly\00" -@.str.4339 = private unnamed_addr constant [4 x i8] c"len\00" -@.str.4340 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.4341 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4342 = private unnamed_addr constant [35 x i8] c"an array has .len and .ptr, not '.\00" -@.str.4343 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.4344 = private unnamed_addr constant [49 x i8] c".ptr of a temporary value would point to nothing\00" -@.str.4345 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4346 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.4347 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4348 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4349 = private unnamed_addr constant [31 x i8] c".ptr can't be changed directly\00" -@.str.4350 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4351 = private unnamed_addr constant [2 x i8] c"%\00" -@.str.4352 = private unnamed_addr constant [54 x i8] c".ptr of a temporary value would point to freed memory\00" -@.str.4353 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4354 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.4355 = private unnamed_addr constant [32 x i8] c"extractvalue { ptr, i64, i64 } \00" -@.str.4356 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.4331 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.4332 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.4333 = private unnamed_addr constant [28 x i8] c"every element of this array\00" +@.str.4334 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4335 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.4336 = private unnamed_addr constant [9 x i8] c"mul i64 \00" +@.str.4337 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4338 = private unnamed_addr constant [27 x i8] c"call ptr @finch_alloc(i64 \00" +@.str.4339 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4340 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.4341 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4342 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.4343 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4344 = private unnamed_addr constant [42 x i8] c"insertvalue { ptr, i64, i64 } undef, ptr \00" +@.str.4345 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.4346 = private unnamed_addr constant [31 x i8] c"insertvalue { ptr, i64, i64 } \00" +@.str.4347 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.4348 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.4349 = private unnamed_addr constant [31 x i8] c"insertvalue { ptr, i64, i64 } \00" +@.str.4350 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.4351 = private unnamed_addr constant [4 x i8] c", 2\00" +@.str.4352 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.4353 = private unnamed_addr constant [29 x i8] c"there is no variable named '\00" +@.str.4354 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.4355 = private unnamed_addr constant [61 x i8] c"this is a temporary value, it can't be changed or pointed to\00" +@.str.4356 = private unnamed_addr constant [4 x i8] c"var\00" @.str.4357 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4358 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.4359 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4360 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.4361 = private unnamed_addr constant [4 x i8] c"len\00" -@.str.4362 = private unnamed_addr constant [38 x i8] c"an array, map or str has .len, not '.\00" -@.str.4363 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.4364 = private unnamed_addr constant [49 x i8] c".len can't be changed directly (use push or pop)\00" -@.str.4365 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.4366 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4367 = private unnamed_addr constant [15 x i8] c", i32 0, i32 1\00" -@.str.4368 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.4369 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.4370 = private unnamed_addr constant [14 x i8] c"extractvalue \00" -@.str.4371 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4372 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str.4373 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.4374 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.4375 = private unnamed_addr constant [22 x i8] c" has no fields (no '.\00" -@.str.4376 = private unnamed_addr constant [3 x i8] c"')\00" -@.str.4377 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4378 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.4379 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4380 = private unnamed_addr constant [12 x i8] c"the struct \00" -@.str.4381 = private unnamed_addr constant [16 x i8] c" has no field '\00" -@.str.4382 = private unnamed_addr constant [12 x i8] c"' (it has: \00" -@.str.4383 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4384 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4358 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" +@.str.4359 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4360 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" +@.str.4361 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4362 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.4363 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.4364 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4365 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" +@.str.4366 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4367 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" +@.str.4368 = private unnamed_addr constant [8 x i8] c"fprintf\00" +@.str.4369 = private unnamed_addr constant [6 x i8] c"stdin\00" +@.str.4370 = private unnamed_addr constant [7 x i8] c"stdout\00" +@.str.4371 = private unnamed_addr constant [7 x i8] c"stderr\00" +@.str.4372 = private unnamed_addr constant [2 x i8] c"2\00" +@.str.4373 = private unnamed_addr constant [6 x i8] c"stdin\00" +@.str.4374 = private unnamed_addr constant [2 x i8] c"0\00" +@.str.4375 = private unnamed_addr constant [7 x i8] c"stdout\00" +@.str.4376 = private unnamed_addr constant [2 x i8] c"1\00" +@.str.4377 = private unnamed_addr constant [32 x i8] c"call ptr @finch_std_stream(i32 \00" +@.str.4378 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4379 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4380 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4381 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" +@.str.4382 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4383 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" +@.str.4384 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.4385 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4386 = private unnamed_addr constant [10 x i8] c"```finch\0A\00" -@.str.4387 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4388 = private unnamed_addr constant [5 x i8] c"\0A```\00" -@.str.4389 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4390 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.4391 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4392 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" -@.str.4393 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4394 = private unnamed_addr constant [14 x i8] c"extractvalue \00" -@.str.4395 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4396 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4397 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4398 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4399 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4400 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.4401 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.4402 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4403 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.4404 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4405 = private unnamed_addr constant [9 x i8] c"an index\00" -@.str.4406 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str.4407 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4408 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.4409 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4410 = private unnamed_addr constant [14 x i8] c", i64 0, i64 \00" +@.str.4386 = private unnamed_addr constant [30 x i8] c"used .cdone on a null pointer\00" +@.str.4387 = private unnamed_addr constant [3 x i8] c"g:\00" +@.str.4388 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4389 = private unnamed_addr constant [30 x i8] c"used .cdone on a null pointer\00" +@.str.4390 = private unnamed_addr constant [3 x i8] c"g:\00" +@.str.4391 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4392 = private unnamed_addr constant [29 x i8] c"used .head on a null pointer\00" +@.str.4393 = private unnamed_addr constant [2 x i8] c"@\00" +@.str.4394 = private unnamed_addr constant [20 x i8] c" = external global \00" +@.str.4395 = private unnamed_addr constant [2 x i8] c"@\00" +@.str.4396 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.4397 = private unnamed_addr constant [44 x i8] c"' is a module; use something from it, like \00" +@.str.4398 = private unnamed_addr constant [11 x i8] c".name(...)\00" +@.str.4399 = private unnamed_addr constant [29 x i8] c"there is no variable named '\00" +@.str.4400 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.4401 = private unnamed_addr constant [10 x i8] c"```finch\0A\00" +@.str.4402 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4403 = private unnamed_addr constant [5 x i8] c"\0A```\00" +@.str.4404 = private unnamed_addr constant [7 x i8] c"member\00" +@.str.4405 = private unnamed_addr constant [6 x i8] c"index\00" +@.str.4406 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4407 = private unnamed_addr constant [2 x i8] c".\00" +@.str.4408 = private unnamed_addr constant [2 x i8] c"0\00" +@.str.4409 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4410 = private unnamed_addr constant [2 x i8] c".\00" @.str.4411 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4412 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4413 = private unnamed_addr constant [58 x i8] c"this ptr has no type, so Finch doesn't know what's inside\00" -@.str.4414 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4415 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4416 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.4417 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4418 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.4419 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.4420 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4421 = private unnamed_addr constant [47 x i8] c"[ ] works on arrays, str and pointers, not on \00" -@.str.4422 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.4423 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.4424 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4425 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4426 = private unnamed_addr constant [45 x i8] c"this is a temporary str, it can't be changed\00" -@.str.4427 = private unnamed_addr constant [30 x i8] c"call void @finch_str_own(ptr \00" -@.str.4428 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4429 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.4430 = private unnamed_addr constant [32 x i8] c"extractvalue { ptr, i64, i64 } \00" -@.str.4431 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str.4432 = private unnamed_addr constant [32 x i8] c"extractvalue { ptr, i64, i64 } \00" -@.str.4433 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.4434 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.4435 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4436 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.4437 = private unnamed_addr constant [18 x i8] c"named arguments (\00" -@.str.4438 = private unnamed_addr constant [37 x i8] c": ...) are only for creating structs\00" -@.str.4439 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.4440 = private unnamed_addr constant [9 x i8] c"' takes \00" -@.str.4441 = private unnamed_addr constant [23 x i8] c" argument(s), but got \00" -@.str.4442 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4443 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.4444 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.4445 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.4446 = private unnamed_addr constant [4 x i8] c"f64\00" -@.str.4447 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4448 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.4449 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4450 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.4451 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4452 = private unnamed_addr constant [3 x i8] c"i8\00" -@.str.4453 = private unnamed_addr constant [4 x i8] c"i16\00" -@.str.4454 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.4455 = private unnamed_addr constant [3 x i8] c"u8\00" -@.str.4456 = private unnamed_addr constant [4 x i8] c"u16\00" -@.str.4457 = private unnamed_addr constant [4 x i8] c"u32\00" -@.str.4458 = private unnamed_addr constant [4 x i8] c"u64\00" -@.str.4459 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.4460 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4461 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4462 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4463 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4464 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4465 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" -@.str.4466 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.4467 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.4468 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.4469 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.4470 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.4471 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.4472 = private unnamed_addr constant [33 x i8] c"call i32 @finch_str_try_int(ptr \00" -@.str.4473 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4474 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4475 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4476 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" -@.str.4477 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.4478 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4479 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" -@.str.4480 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.4412 = private unnamed_addr constant [2 x i8] c"e\00" +@.str.4413 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4414 = private unnamed_addr constant [2 x i8] c"E\00" +@.str.4415 = private unnamed_addr constant [3 x i8] c".0\00" +@.str.4416 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4417 = private unnamed_addr constant [3 x i8] c".0\00" +@.str.4418 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4419 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.4420 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4421 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.4422 = private unnamed_addr constant [7 x i8] c"member\00" +@.str.4423 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4424 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.4425 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4426 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4427 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4428 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.4429 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4430 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.4431 = private unnamed_addr constant [7 x i8] c"member\00" +@.str.4432 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4433 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.4434 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4435 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4436 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4437 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4438 = private unnamed_addr constant [29 x i8] c"used .sums on a null pointer\00" +@.str.4439 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4440 = private unnamed_addr constant [10 x i8] c"the enum \00" +@.str.4441 = private unnamed_addr constant [18 x i8] c" has no variant '\00" +@.str.4442 = private unnamed_addr constant [12 x i8] c"' (it has: \00" +@.str.4443 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4444 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4445 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4446 = private unnamed_addr constant [29 x i8] c"used .sums on a null pointer\00" +@.str.4447 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4448 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4449 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4450 = private unnamed_addr constant [23 x i8] c" holds nothing: write \00" +@.str.4451 = private unnamed_addr constant [2 x i8] c".\00" +@.str.4452 = private unnamed_addr constant [8 x i8] c" holds \00" +@.str.4453 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4454 = private unnamed_addr constant [20 x i8] c" value(s), but got \00" +@.str.4455 = private unnamed_addr constant [3 x i8] c": \00" +@.str.4456 = private unnamed_addr constant [2 x i8] c".\00" +@.str.4457 = private unnamed_addr constant [6 x i8] c"(...)\00" +@.str.4458 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.4459 = private unnamed_addr constant [4 x i8] c"tag\00" +@.str.4460 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4461 = private unnamed_addr constant [2 x i8] c"_\00" +@.str.4462 = private unnamed_addr constant [10 x i8] c"```finch\0A\00" +@.str.4463 = private unnamed_addr constant [2 x i8] c".\00" +@.str.4464 = private unnamed_addr constant [5 x i8] c"\0A```\00" +@.str.4465 = private unnamed_addr constant [1 x i8] c"\00" +@.str.4466 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4467 = private unnamed_addr constant [29 x i8] c"used .sums on a null pointer\00" +@.str.4468 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4469 = private unnamed_addr constant [1 x i8] c"\00" +@.str.4470 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.4471 = private unnamed_addr constant [5 x i8] c"call\00" +@.str.4472 = private unnamed_addr constant [7 x i8] c"member\00" +@.str.4473 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4474 = private unnamed_addr constant [7 x i8] c"method\00" +@.str.4475 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4476 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4477 = private unnamed_addr constant [34 x i8] c"this pattern is not a variant of \00" +@.str.4478 = private unnamed_addr constant [11 x i8] c" (it has: \00" +@.str.4479 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4480 = private unnamed_addr constant [2 x i8] c")\00" @.str.4481 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4482 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" -@.str.4483 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.4484 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.4485 = private unnamed_addr constant [7 x i8] c"double\00" -@.str.4486 = private unnamed_addr constant [7 x i8] c"double\00" -@.str.4487 = private unnamed_addr constant [4 x i8] c"0.0\00" -@.str.4488 = private unnamed_addr constant [35 x i8] c"call i32 @finch_str_try_float(ptr \00" -@.str.4489 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4490 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4491 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4492 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" -@.str.4493 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.4494 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4495 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" -@.str.4496 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.4497 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4498 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" -@.str.4499 = private unnamed_addr constant [7 x i8] c"double\00" -@.str.4500 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4501 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4502 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4503 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.4482 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4483 = private unnamed_addr constant [28 x i8] c" holds nothing: write just \00" +@.str.4484 = private unnamed_addr constant [8 x i8] c" holds \00" +@.str.4485 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4486 = private unnamed_addr constant [28 x i8] c" value(s): name them, like \00" +@.str.4487 = private unnamed_addr constant [28 x i8] c"(x), or use _ to ignore one\00" +@.str.4488 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.4489 = private unnamed_addr constant [51 x i8] c"write a name to hold the value (or _ to ignore it)\00" +@.str.4490 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4491 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" +@.str.4492 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4493 = private unnamed_addr constant [10 x i8] c"the enum \00" +@.str.4494 = private unnamed_addr constant [18 x i8] c" has no variant '\00" +@.str.4495 = private unnamed_addr constant [12 x i8] c"' (it has: \00" +@.str.4496 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4497 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4498 = private unnamed_addr constant [10 x i8] c"```finch\0A\00" +@.str.4499 = private unnamed_addr constant [2 x i8] c".\00" +@.str.4500 = private unnamed_addr constant [4 x i8] c" = \00" +@.str.4501 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4502 = private unnamed_addr constant [5 x i8] c"\0A```\00" +@.str.4503 = private unnamed_addr constant [1 x i8] c"\00" @.str.4504 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4505 = private unnamed_addr constant [32 x i8] c"call i64 @finch_str_to_int(ptr \00" -@.str.4506 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4507 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.4508 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4509 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.4510 = private unnamed_addr constant [37 x i8] c"call double @finch_str_to_float(ptr \00" -@.str.4511 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4512 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.4513 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4514 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4515 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.4516 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.4517 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.4518 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.4519 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4520 = private unnamed_addr constant [9 x i8] c"zext i1 \00" -@.str.4521 = private unnamed_addr constant [5 x i8] c" to \00" -@.str.4522 = private unnamed_addr constant [7 x i8] c"fptoui\00" -@.str.4523 = private unnamed_addr constant [7 x i8] c"fptosi\00" -@.str.4524 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4525 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4526 = private unnamed_addr constant [5 x i8] c" to \00" -@.str.4527 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4528 = private unnamed_addr constant [9 x i8] c"icmp ne \00" -@.str.4529 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4530 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.4531 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4532 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4533 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.4534 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4535 = private unnamed_addr constant [14 x i8] c"inttoptr i64 \00" -@.str.4536 = private unnamed_addr constant [4 x i8] c"u64\00" -@.str.4537 = private unnamed_addr constant [8 x i8] c" to ptr\00" -@.str.4538 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4539 = private unnamed_addr constant [14 x i8] c"ptrtoint ptr \00" -@.str.4540 = private unnamed_addr constant [5 x i8] c" to \00" -@.str.4541 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4542 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4543 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4544 = private unnamed_addr constant [71 x i8] c"use .ptr to get a str's address (it is only valid while the str lives)\00" -@.str.4545 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4546 = private unnamed_addr constant [12 x i8] c"can't turn \00" -@.str.4547 = private unnamed_addr constant [7 x i8] c" into \00" -@.str.4548 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.4549 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4550 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.4551 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4552 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str.4553 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4554 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4555 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4556 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4557 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.4558 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4559 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.4560 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4561 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.4562 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4563 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4505 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.4506 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4507 = private unnamed_addr constant [38 x i8] c"a variant of an enum can't be changed\00" +@.str.4508 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4509 = private unnamed_addr constant [29 x i8] c"used .sums on a null pointer\00" +@.str.4510 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4511 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4512 = private unnamed_addr constant [8 x i8] c" holds \00" +@.str.4513 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4514 = private unnamed_addr constant [29 x i8] c"used .sums on a null pointer\00" +@.str.4515 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4516 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4517 = private unnamed_addr constant [12 x i8] c" value(s): \00" +@.str.4518 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4519 = private unnamed_addr constant [29 x i8] c"used .sums on a null pointer\00" +@.str.4520 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4521 = private unnamed_addr constant [2 x i8] c".\00" +@.str.4522 = private unnamed_addr constant [6 x i8] c"(...)\00" +@.str.4523 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4524 = private unnamed_addr constant [38 x i8] c"a variant of an enum can't be changed\00" +@.str.4525 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4526 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4527 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4528 = private unnamed_addr constant [58 x i8] c"this ptr has no type, so Finch doesn't know what's inside\00" +@.str.4529 = private unnamed_addr constant [13 x i8] c"icmp eq ptr \00" +@.str.4530 = private unnamed_addr constant [7 x i8] c", null\00" +@.str.4531 = private unnamed_addr constant [7 x i8] c"used .\00" +@.str.4532 = private unnamed_addr constant [19 x i8] c" on a null pointer\00" +@.str.4533 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4534 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.4535 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4536 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.4537 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4538 = private unnamed_addr constant [6 x i8] c"value\00" +@.str.4539 = private unnamed_addr constant [6 x i8] c"value\00" +@.str.4540 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.4541 = private unnamed_addr constant [3 x i8] c"a \00" +@.str.4542 = private unnamed_addr constant [44 x i8] c" only has '.value' (the thing it points to)\00" +@.str.4543 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str.4544 = private unnamed_addr constant [2 x i8] c".\00" +@.str.4545 = private unnamed_addr constant [27 x i8] c" can't be changed directly\00" +@.str.4546 = private unnamed_addr constant [4 x i8] c"len\00" +@.str.4547 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.4548 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4549 = private unnamed_addr constant [35 x i8] c"an array has .len and .ptr, not '.\00" +@.str.4550 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.4551 = private unnamed_addr constant [49 x i8] c".ptr of a temporary value would point to nothing\00" +@.str.4552 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4553 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.4554 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4555 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4556 = private unnamed_addr constant [31 x i8] c".ptr can't be changed directly\00" +@.str.4557 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4558 = private unnamed_addr constant [2 x i8] c"%\00" +@.str.4559 = private unnamed_addr constant [54 x i8] c".ptr of a temporary value would point to freed memory\00" +@.str.4560 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4561 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.4562 = private unnamed_addr constant [32 x i8] c"extractvalue { ptr, i64, i64 } \00" +@.str.4563 = private unnamed_addr constant [4 x i8] c", 0\00" @.str.4564 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4565 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str.4566 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4567 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4568 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4569 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4570 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4571 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4572 = private unnamed_addr constant [7 x i8] c"double\00" -@.str.4573 = private unnamed_addr constant [7 x i8] c"expand\00" -@.str.4574 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.4575 = private unnamed_addr constant [4 x i8] c" x \00" -@.str.4576 = private unnamed_addr constant [2 x i8] c"]\00" -@.str.4577 = private unnamed_addr constant [3 x i8] c"{ \00" -@.str.4578 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4579 = private unnamed_addr constant [3 x i8] c" }\00" -@.str.4580 = private unnamed_addr constant [9 x i8] c"indirect\00" -@.str.4581 = private unnamed_addr constant [7 x i8] c"expand\00" -@.str.4582 = private unnamed_addr constant [5 x i8] c"i128\00" -@.str.4583 = private unnamed_addr constant [5 x i8] c"i128\00" -@.str.4584 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.4585 = private unnamed_addr constant [2 x i8] c"i\00" -@.str.4586 = private unnamed_addr constant [10 x i8] c"[2 x i64]\00" -@.str.4587 = private unnamed_addr constant [10 x i8] c"[2 x i64]\00" -@.str.4588 = private unnamed_addr constant [7 x i8] c"direct\00" -@.str.4589 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.4590 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4591 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.4565 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.4566 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4567 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.4568 = private unnamed_addr constant [4 x i8] c"len\00" +@.str.4569 = private unnamed_addr constant [38 x i8] c"an array, map or str has .len, not '.\00" +@.str.4570 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.4571 = private unnamed_addr constant [49 x i8] c".len can't be changed directly (use push or pop)\00" +@.str.4572 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.4573 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4574 = private unnamed_addr constant [15 x i8] c", i32 0, i32 1\00" +@.str.4575 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.4576 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.4577 = private unnamed_addr constant [14 x i8] c"extractvalue \00" +@.str.4578 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4579 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.4580 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.4581 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.4582 = private unnamed_addr constant [22 x i8] c" has no fields (no '.\00" +@.str.4583 = private unnamed_addr constant [3 x i8] c"')\00" +@.str.4584 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4585 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.4586 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4587 = private unnamed_addr constant [12 x i8] c"the struct \00" +@.str.4588 = private unnamed_addr constant [16 x i8] c" has no field '\00" +@.str.4589 = private unnamed_addr constant [12 x i8] c"' (it has: \00" +@.str.4590 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4591 = private unnamed_addr constant [2 x i8] c")\00" @.str.4592 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4593 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4594 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" -@.str.4595 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4596 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" -@.str.4597 = private unnamed_addr constant [7 x i8] c"expand\00" -@.str.4598 = private unnamed_addr constant [2 x i8] c"i\00" -@.str.4599 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4600 = private unnamed_addr constant [9 x i8] c"indirect\00" -@.str.4601 = private unnamed_addr constant [7 x i8] c"memory\00" -@.str.4602 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4603 = private unnamed_addr constant [17 x i8] c"division by zero\00" -@.str.4604 = private unnamed_addr constant [7 x i8] c"memory\00" +@.str.4593 = private unnamed_addr constant [10 x i8] c"```finch\0A\00" +@.str.4594 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4595 = private unnamed_addr constant [5 x i8] c"\0A```\00" +@.str.4596 = private unnamed_addr constant [1 x i8] c"\00" +@.str.4597 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.4598 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4599 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" +@.str.4600 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4601 = private unnamed_addr constant [14 x i8] c"extractvalue \00" +@.str.4602 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4603 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4604 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.4605 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.4606 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4607 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4608 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4609 = private unnamed_addr constant [7 x i8] c"expand\00" -@.str.4610 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4607 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.4608 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.4609 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4610 = private unnamed_addr constant [4 x i8] c"int\00" @.str.4611 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4612 = private unnamed_addr constant [7 x i8] c"double\00" -@.str.4613 = private unnamed_addr constant [12 x i8] c"<2 x float>\00" -@.str.4614 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4615 = private unnamed_addr constant [2 x i8] c"i\00" -@.str.4616 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4617 = private unnamed_addr constant [3 x i8] c"{ \00" -@.str.4618 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4619 = private unnamed_addr constant [3 x i8] c" }\00" -@.str.4620 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.4621 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.4622 = private unnamed_addr constant [9 x i8] c"indirect\00" -@.str.4623 = private unnamed_addr constant [7 x i8] c"memory\00" -@.str.4624 = private unnamed_addr constant [7 x i8] c"memory\00" -@.str.4625 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.4626 = private unnamed_addr constant [7 x i8] c"expand\00" -@.str.4627 = private unnamed_addr constant [7 x i8] c"expand\00" -@.str.4628 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4629 = private unnamed_addr constant [2 x i8] c"i\00" -@.str.4630 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4631 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" -@.str.4632 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4633 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" -@.str.4634 = private unnamed_addr constant [7 x i8] c"memory\00" -@.str.4635 = private unnamed_addr constant [7 x i8] c"direct\00" -@.str.4636 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.4637 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4638 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.4639 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4640 = private unnamed_addr constant [17 x i8] c"the C function '\00" -@.str.4641 = private unnamed_addr constant [3 x i8] c"' \00" -@.str.4642 = private unnamed_addr constant [19 x i8] c" the Finch struct \00" -@.str.4643 = private unnamed_addr constant [21 x i8] c", which C can't take\00" -@.str.4644 = private unnamed_addr constant [17 x i8] c"the C function '\00" -@.str.4645 = private unnamed_addr constant [3 x i8] c"' \00" -@.str.4646 = private unnamed_addr constant [13 x i8] c" the struct \00" -@.str.4647 = private unnamed_addr constant [41 x i8] c" by value, which Finch can't do yet: it \00" -@.str.4648 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4649 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.4650 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4651 = private unnamed_addr constant [60 x i8] c"methods can't be exported (export a plain fn that calls it)\00" -@.str.4652 = private unnamed_addr constant [75 x i8] c"an export fn can't fail (C has no errors as values): handle them inside it\00" -@.str.4653 = private unnamed_addr constant [30 x i8] c"an export fn can't be generic\00" -@.str.4654 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4655 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4656 = private unnamed_addr constant [67 x i8] c"an export fn takes numbers, bool, char and pointers only (this is \00" -@.str.4657 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4658 = private unnamed_addr constant [51 x i8] c"; pass text as ptr[char] and make it a str inside)\00" -@.str.4659 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.4660 = private unnamed_addr constant [70 x i8] c"an export fn returns nothing, a number, bool, char or a pointer (not \00" -@.str.4661 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4662 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4663 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.4664 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.4665 = private unnamed_addr constant [39 x i8] c"' is exported twice (from two modules)\00" -@.str.4666 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4667 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4668 = private unnamed_addr constant [14 x i8] c"i8 zeroext %e\00" -@.str.4669 = private unnamed_addr constant [4 x i8] c"i1 \00" -@.str.4670 = private unnamed_addr constant [14 x i8] c"icmp ne i8 %e\00" -@.str.4671 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.4672 = private unnamed_addr constant [4 x i8] c" %e\00" -@.str.4673 = private unnamed_addr constant [4 x i8] c" %e\00" -@.str.4674 = private unnamed_addr constant [6 x i8] c"call \00" -@.str.4675 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4676 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.4677 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4678 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4679 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.4680 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4681 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.4682 = private unnamed_addr constant [9 x i8] c"ret void\00" -@.str.4683 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4684 = private unnamed_addr constant [3 x i8] c"i8\00" -@.str.4685 = private unnamed_addr constant [9 x i8] c" zeroext\00" -@.str.4686 = private unnamed_addr constant [8 x i8] c"ret i8 \00" -@.str.4687 = private unnamed_addr constant [9 x i8] c"zext i1 \00" -@.str.4688 = private unnamed_addr constant [7 x i8] c" to i8\00" -@.str.4689 = private unnamed_addr constant [5 x i8] c"ret \00" -@.str.4690 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4691 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4692 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4693 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" -@.str.4694 = private unnamed_addr constant [11 x i8] c" dllexport\00" -@.str.4695 = private unnamed_addr constant [7 x i8] c"define\00" -@.str.4696 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4697 = private unnamed_addr constant [3 x i8] c" @\00" -@.str.4698 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.4699 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4700 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4612 = private unnamed_addr constant [9 x i8] c"an index\00" +@.str.4613 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str.4614 = private unnamed_addr constant [1 x i8] c"\00" +@.str.4615 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.4616 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4617 = private unnamed_addr constant [14 x i8] c", i64 0, i64 \00" +@.str.4618 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4619 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4620 = private unnamed_addr constant [58 x i8] c"this ptr has no type, so Finch doesn't know what's inside\00" +@.str.4621 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4622 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4623 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.4624 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4625 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.4626 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.4627 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4628 = private unnamed_addr constant [47 x i8] c"[ ] works on arrays, str and pointers, not on \00" +@.str.4629 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.4630 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.4631 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4632 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4633 = private unnamed_addr constant [45 x i8] c"this is a temporary str, it can't be changed\00" +@.str.4634 = private unnamed_addr constant [30 x i8] c"call void @finch_str_own(ptr \00" +@.str.4635 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4636 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.4637 = private unnamed_addr constant [32 x i8] c"extractvalue { ptr, i64, i64 } \00" +@.str.4638 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.4639 = private unnamed_addr constant [32 x i8] c"extractvalue { ptr, i64, i64 } \00" +@.str.4640 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.4641 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.4642 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4643 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.4644 = private unnamed_addr constant [18 x i8] c"named arguments (\00" +@.str.4645 = private unnamed_addr constant [37 x i8] c": ...) are only for creating structs\00" +@.str.4646 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.4647 = private unnamed_addr constant [9 x i8] c"' takes \00" +@.str.4648 = private unnamed_addr constant [23 x i8] c" argument(s), but got \00" +@.str.4649 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4650 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.4651 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.4652 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.4653 = private unnamed_addr constant [4 x i8] c"f64\00" +@.str.4654 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.4655 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.4656 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.4657 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.4658 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4659 = private unnamed_addr constant [3 x i8] c"i8\00" +@.str.4660 = private unnamed_addr constant [4 x i8] c"i16\00" +@.str.4661 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.4662 = private unnamed_addr constant [3 x i8] c"u8\00" +@.str.4663 = private unnamed_addr constant [4 x i8] c"u16\00" +@.str.4664 = private unnamed_addr constant [4 x i8] c"u32\00" +@.str.4665 = private unnamed_addr constant [4 x i8] c"u64\00" +@.str.4666 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.4667 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4668 = private unnamed_addr constant [1 x i8] c"\00" +@.str.4669 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4670 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4671 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4672 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" +@.str.4673 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.4674 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.4675 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" +@.str.4676 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.4677 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.4678 = private unnamed_addr constant [2 x i8] c"0\00" +@.str.4679 = private unnamed_addr constant [33 x i8] c"call i32 @finch_str_try_int(ptr \00" +@.str.4680 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4681 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4682 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4683 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" +@.str.4684 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.4685 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4686 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" +@.str.4687 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.4688 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4689 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" +@.str.4690 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.4691 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.4692 = private unnamed_addr constant [7 x i8] c"double\00" +@.str.4693 = private unnamed_addr constant [7 x i8] c"double\00" +@.str.4694 = private unnamed_addr constant [4 x i8] c"0.0\00" +@.str.4695 = private unnamed_addr constant [35 x i8] c"call i32 @finch_str_try_float(ptr \00" +@.str.4696 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4697 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4698 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4699 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" +@.str.4700 = private unnamed_addr constant [4 x i8] c", 0\00" @.str.4701 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4702 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.4703 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4704 = private unnamed_addr constant [10 x i8] c"@finch.c.\00" -@.str.4705 = private unnamed_addr constant [2 x i8] c".\00" -@.str.4706 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4707 = private unnamed_addr constant [30 x i8] c"used .cdone on a null pointer\00" -@.str.4708 = private unnamed_addr constant [3 x i8] c"t:\00" +@.str.4702 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" +@.str.4703 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.4704 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4705 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" +@.str.4706 = private unnamed_addr constant [7 x i8] c"double\00" +@.str.4707 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.4708 = private unnamed_addr constant [4 x i8] c"str\00" @.str.4709 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4710 = private unnamed_addr constant [30 x i8] c"used .cdone on a null pointer\00" -@.str.4711 = private unnamed_addr constant [3 x i8] c"t:\00" -@.str.4712 = private unnamed_addr constant [6 x i8] c"addr(\00" -@.str.4713 = private unnamed_addr constant [82 x i8] c") gives C a function pointer, so it can't be a method or a function that can fail\00" -@.str.4714 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4715 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.4716 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4717 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.4718 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4719 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.4720 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4721 = private unnamed_addr constant [6 x i8] c"addr(\00" -@.str.4722 = private unnamed_addr constant [96 x i8] c") gives C a function pointer, so its parameters must be C types (numbers, ptr, C structs), not \00" -@.str.4723 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4710 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.4711 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4712 = private unnamed_addr constant [32 x i8] c"call i64 @finch_str_to_int(ptr \00" +@.str.4713 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4714 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.4715 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4716 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.4717 = private unnamed_addr constant [37 x i8] c"call double @finch_str_to_float(ptr \00" +@.str.4718 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.4719 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.4720 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4721 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.4722 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.4723 = private unnamed_addr constant [4 x i8] c"i32\00" @.str.4724 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.4725 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4726 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.4727 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.4728 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4729 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.4730 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4731 = private unnamed_addr constant [6 x i8] c"addr(\00" -@.str.4732 = private unnamed_addr constant [39 x i8] c"): a function given to C can't return \00" -@.str.4733 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4734 = private unnamed_addr constant [10 x i8] c"ptr sret(\00" -@.str.4735 = private unnamed_addr constant [15 x i8] c") align 16 %c0\00" -@.str.4736 = private unnamed_addr constant [4 x i8] c"%c0\00" -@.str.4737 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4738 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4739 = private unnamed_addr constant [7 x i8] c"memory\00" -@.str.4740 = private unnamed_addr constant [11 x i8] c"ptr byval(\00" -@.str.4741 = private unnamed_addr constant [9 x i8] c") align \00" -@.str.4742 = private unnamed_addr constant [4 x i8] c" %c\00" -@.str.4743 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4744 = private unnamed_addr constant [3 x i8] c"%c\00" -@.str.4745 = private unnamed_addr constant [9 x i8] c"indirect\00" -@.str.4746 = private unnamed_addr constant [7 x i8] c"ptr %c\00" -@.str.4747 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4748 = private unnamed_addr constant [3 x i8] c"%c\00" -@.str.4749 = private unnamed_addr constant [7 x i8] c"expand\00" -@.str.4750 = private unnamed_addr constant [10 x i8] c"[32 x i8]\00" -@.str.4751 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4752 = private unnamed_addr constant [4 x i8] c" %c\00" -@.str.4753 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4754 = private unnamed_addr constant [3 x i8] c"%c\00" -@.str.4755 = private unnamed_addr constant [32 x i8] c"getelementptr inbounds i8, ptr \00" -@.str.4756 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.4757 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4758 = private unnamed_addr constant [4 x i8] c" %c\00" -@.str.4759 = private unnamed_addr constant [4 x i8] c" %c\00" -@.str.4760 = private unnamed_addr constant [6 x i8] c"call \00" -@.str.4761 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4762 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.4763 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4764 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4765 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4766 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.4767 = private unnamed_addr constant [9 x i8] c"ret void\00" -@.str.4768 = private unnamed_addr constant [9 x i8] c"ret void\00" -@.str.4769 = private unnamed_addr constant [7 x i8] c"expand\00" -@.str.4770 = private unnamed_addr constant [10 x i8] c"[32 x i8]\00" -@.str.4771 = private unnamed_addr constant [5 x i8] c"ret \00" -@.str.4772 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4773 = private unnamed_addr constant [5 x i8] c"ret \00" -@.str.4774 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4775 = private unnamed_addr constant [16 x i8] c"define internal\00" -@.str.4776 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4777 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4778 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.4779 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4780 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4781 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4782 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" -@.str.4783 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4784 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4785 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4786 = private unnamed_addr constant [55 x i8] c"(...) turns a whole number into the enum, but this is \00" -@.str.4787 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.4788 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4789 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4790 = private unnamed_addr constant [38 x i8] c" is not the number of any variant of \00" -@.str.4791 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.4792 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4793 = private unnamed_addr constant [13 x i8] c"icmp eq i64 \00" -@.str.4794 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4795 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4796 = private unnamed_addr constant [7 x i8] c"or i1 \00" -@.str.4797 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4798 = private unnamed_addr constant [8 x i8] c"xor i1 \00" -@.str.4799 = private unnamed_addr constant [7 x i8] c", true\00" -@.str.4800 = private unnamed_addr constant [33 x i8] c"this number is not a variant of \00" -@.str.4801 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" -@.str.4802 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str.4803 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4804 = private unnamed_addr constant [9 x i8] c" zeroext\00" -@.str.4805 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.4725 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.4726 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4727 = private unnamed_addr constant [9 x i8] c"zext i1 \00" +@.str.4728 = private unnamed_addr constant [5 x i8] c" to \00" +@.str.4729 = private unnamed_addr constant [7 x i8] c"fptoui\00" +@.str.4730 = private unnamed_addr constant [7 x i8] c"fptosi\00" +@.str.4731 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4732 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4733 = private unnamed_addr constant [5 x i8] c" to \00" +@.str.4734 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4735 = private unnamed_addr constant [9 x i8] c"icmp ne \00" +@.str.4736 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4737 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.4738 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4739 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4740 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.4741 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4742 = private unnamed_addr constant [14 x i8] c"inttoptr i64 \00" +@.str.4743 = private unnamed_addr constant [4 x i8] c"u64\00" +@.str.4744 = private unnamed_addr constant [8 x i8] c" to ptr\00" +@.str.4745 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4746 = private unnamed_addr constant [14 x i8] c"ptrtoint ptr \00" +@.str.4747 = private unnamed_addr constant [5 x i8] c" to \00" +@.str.4748 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4749 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4750 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4751 = private unnamed_addr constant [71 x i8] c"use .ptr to get a str's address (it is only valid while the str lives)\00" +@.str.4752 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4753 = private unnamed_addr constant [12 x i8] c"can't turn \00" +@.str.4754 = private unnamed_addr constant [7 x i8] c" into \00" +@.str.4755 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.4756 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4757 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.4758 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4759 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str.4760 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4761 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4762 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.4763 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.4764 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.4765 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4766 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.4767 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4768 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.4769 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4770 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4771 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4772 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str.4773 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4774 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4775 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.4776 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4777 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.4778 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4779 = private unnamed_addr constant [7 x i8] c"double\00" +@.str.4780 = private unnamed_addr constant [7 x i8] c"expand\00" +@.str.4781 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.4782 = private unnamed_addr constant [4 x i8] c" x \00" +@.str.4783 = private unnamed_addr constant [2 x i8] c"]\00" +@.str.4784 = private unnamed_addr constant [3 x i8] c"{ \00" +@.str.4785 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4786 = private unnamed_addr constant [3 x i8] c" }\00" +@.str.4787 = private unnamed_addr constant [9 x i8] c"indirect\00" +@.str.4788 = private unnamed_addr constant [7 x i8] c"expand\00" +@.str.4789 = private unnamed_addr constant [5 x i8] c"i128\00" +@.str.4790 = private unnamed_addr constant [5 x i8] c"i128\00" +@.str.4791 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.4792 = private unnamed_addr constant [2 x i8] c"i\00" +@.str.4793 = private unnamed_addr constant [10 x i8] c"[2 x i64]\00" +@.str.4794 = private unnamed_addr constant [10 x i8] c"[2 x i64]\00" +@.str.4795 = private unnamed_addr constant [7 x i8] c"direct\00" +@.str.4796 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.4797 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4798 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.4799 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4800 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4801 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" +@.str.4802 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4803 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" +@.str.4804 = private unnamed_addr constant [7 x i8] c"expand\00" +@.str.4805 = private unnamed_addr constant [2 x i8] c"i\00" @.str.4806 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4807 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" -@.str.4808 = private unnamed_addr constant [9 x i8] c" signext\00" -@.str.4809 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.4810 = private unnamed_addr constant [9 x i8] c" zeroext\00" -@.str.4811 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4812 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4813 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4807 = private unnamed_addr constant [9 x i8] c"indirect\00" +@.str.4808 = private unnamed_addr constant [7 x i8] c"memory\00" +@.str.4809 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4810 = private unnamed_addr constant [17 x i8] c"division by zero\00" +@.str.4811 = private unnamed_addr constant [7 x i8] c"memory\00" +@.str.4812 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4813 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.4814 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4815 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" -@.str.4816 = private unnamed_addr constant [4 x i8] c"...\00" -@.str.4817 = private unnamed_addr constant [18 x i8] c"C function from `\00" -@.str.4818 = private unnamed_addr constant [8 x i8] c"`\0A```c\0A\00" -@.str.4819 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4820 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.4821 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4822 = private unnamed_addr constant [6 x i8] c")\0A```\00" -@.str.4823 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4824 = private unnamed_addr constant [17 x i8] c"the C function '\00" -@.str.4825 = private unnamed_addr constant [36 x i8] c"' can't be used from Finch yet: it \00" -@.str.4826 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.4827 = private unnamed_addr constant [18 x i8] c"' takes at least \00" -@.str.4828 = private unnamed_addr constant [23 x i8] c" argument(s), but got \00" -@.str.4829 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.4830 = private unnamed_addr constant [9 x i8] c"' takes \00" -@.str.4831 = private unnamed_addr constant [23 x i8] c" argument(s), but got \00" -@.str.4832 = private unnamed_addr constant [8 x i8] c"returns\00" -@.str.4833 = private unnamed_addr constant [6 x i8] c"takes\00" -@.str.4834 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4835 = private unnamed_addr constant [10 x i8] c"ptr sret(\00" -@.str.4836 = private unnamed_addr constant [11 x i8] c") align 16\00" -@.str.4837 = private unnamed_addr constant [10 x i8] c"ptr sret(\00" -@.str.4838 = private unnamed_addr constant [12 x i8] c") align 16 \00" +@.str.4815 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4816 = private unnamed_addr constant [7 x i8] c"expand\00" +@.str.4817 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4818 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4819 = private unnamed_addr constant [7 x i8] c"double\00" +@.str.4820 = private unnamed_addr constant [12 x i8] c"<2 x float>\00" +@.str.4821 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.4822 = private unnamed_addr constant [2 x i8] c"i\00" +@.str.4823 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4824 = private unnamed_addr constant [3 x i8] c"{ \00" +@.str.4825 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4826 = private unnamed_addr constant [3 x i8] c" }\00" +@.str.4827 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.4828 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.4829 = private unnamed_addr constant [9 x i8] c"indirect\00" +@.str.4830 = private unnamed_addr constant [7 x i8] c"memory\00" +@.str.4831 = private unnamed_addr constant [7 x i8] c"memory\00" +@.str.4832 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.4833 = private unnamed_addr constant [7 x i8] c"expand\00" +@.str.4834 = private unnamed_addr constant [7 x i8] c"expand\00" +@.str.4835 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4836 = private unnamed_addr constant [2 x i8] c"i\00" +@.str.4837 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4838 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" @.str.4839 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4840 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.4841 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4842 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4843 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4840 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" +@.str.4841 = private unnamed_addr constant [7 x i8] c"memory\00" +@.str.4842 = private unnamed_addr constant [7 x i8] c"direct\00" +@.str.4843 = private unnamed_addr constant [7 x i8] c"struct\00" @.str.4844 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4845 = private unnamed_addr constant [10 x i8] c"argument \00" -@.str.4846 = private unnamed_addr constant [5 x i8] c" of \00" -@.str.4847 = private unnamed_addr constant [7 x i8] c"memory\00" -@.str.4848 = private unnamed_addr constant [11 x i8] c"ptr byval(\00" -@.str.4849 = private unnamed_addr constant [9 x i8] c") align \00" -@.str.4850 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4851 = private unnamed_addr constant [9 x i8] c"indirect\00" -@.str.4852 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4853 = private unnamed_addr constant [5 x i8] c"ptr \00" -@.str.4854 = private unnamed_addr constant [7 x i8] c"expand\00" -@.str.4855 = private unnamed_addr constant [10 x i8] c"[32 x i8]\00" -@.str.4856 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4857 = private unnamed_addr constant [32 x i8] c"getelementptr inbounds i8, ptr \00" -@.str.4858 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.4859 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4860 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4861 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4862 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4863 = private unnamed_addr constant [5 x i8] c"ptr \00" -@.str.4864 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4865 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4845 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.4846 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4847 = private unnamed_addr constant [17 x i8] c"the C function '\00" +@.str.4848 = private unnamed_addr constant [3 x i8] c"' \00" +@.str.4849 = private unnamed_addr constant [19 x i8] c" the Finch struct \00" +@.str.4850 = private unnamed_addr constant [21 x i8] c", which C can't take\00" +@.str.4851 = private unnamed_addr constant [17 x i8] c"the C function '\00" +@.str.4852 = private unnamed_addr constant [3 x i8] c"' \00" +@.str.4853 = private unnamed_addr constant [13 x i8] c" the struct \00" +@.str.4854 = private unnamed_addr constant [41 x i8] c" by value, which Finch can't do yet: it \00" +@.str.4855 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4856 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.4857 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4858 = private unnamed_addr constant [60 x i8] c"methods can't be exported (export a plain fn that calls it)\00" +@.str.4859 = private unnamed_addr constant [75 x i8] c"an export fn can't fail (C has no errors as values): handle them inside it\00" +@.str.4860 = private unnamed_addr constant [30 x i8] c"an export fn can't be generic\00" +@.str.4861 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4862 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4863 = private unnamed_addr constant [67 x i8] c"an export fn takes numbers, bool, char and pointers only (this is \00" +@.str.4864 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4865 = private unnamed_addr constant [51 x i8] c"; pass text as ptr[char] and make it a str inside)\00" @.str.4866 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.4867 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4868 = private unnamed_addr constant [24 x i8] c"this gives back nothing\00" -@.str.4869 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.4870 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.4871 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4872 = private unnamed_addr constant [69 x i8] c"structs and arrays can't be passed to the '...' part of a C function\00" -@.str.4873 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.4874 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4875 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.4876 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4877 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.4878 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.4879 = private unnamed_addr constant [9 x i8] c"zext i1 \00" -@.str.4880 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str.4881 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.4882 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.4883 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.4884 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.4885 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4886 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4887 = private unnamed_addr constant [7 x i8] c"direct\00" -@.str.4888 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4889 = private unnamed_addr constant [6 x i8] c", ...\00" -@.str.4890 = private unnamed_addr constant [4 x i8] c"...\00" -@.str.4891 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4892 = private unnamed_addr constant [30 x i8] c"used .cdone on a null pointer\00" -@.str.4893 = private unnamed_addr constant [3 x i8] c"f:\00" -@.str.4894 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4895 = private unnamed_addr constant [30 x i8] c"used .cdone on a null pointer\00" -@.str.4896 = private unnamed_addr constant [3 x i8] c"f:\00" -@.str.4897 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4898 = private unnamed_addr constant [29 x i8] c"used .head on a null pointer\00" -@.str.4899 = private unnamed_addr constant [8 x i8] c"declare\00" -@.str.4900 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4901 = private unnamed_addr constant [3 x i8] c" @\00" -@.str.4902 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.4903 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4904 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4905 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4906 = private unnamed_addr constant [3 x i8] c" (\00" -@.str.4907 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4908 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4909 = private unnamed_addr constant [5 x i8] c"call\00" -@.str.4910 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4911 = private unnamed_addr constant [3 x i8] c" @\00" -@.str.4912 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.4913 = private unnamed_addr constant [3 x i8] c", \00" -@.str.4914 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4915 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.4916 = private unnamed_addr constant [7 x i8] c"expand\00" -@.str.4917 = private unnamed_addr constant [10 x i8] c"[32 x i8]\00" -@.str.4918 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.4919 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.4920 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.4921 = private unnamed_addr constant [33 x i8] c"call void @finch_str_from_c(ptr \00" -@.str.4922 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.4923 = private unnamed_addr constant [2 x i8] c")\00" -@.str.4924 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.4925 = private unnamed_addr constant [7 x i8] c"printf\00" -@.str.4926 = private unnamed_addr constant [7 x i8] c"fflush\00" -@.str.4927 = private unnamed_addr constant [5 x i8] c"exit\00" -@.str.4928 = private unnamed_addr constant [5 x i8] c"free\00" -@.str.4929 = private unnamed_addr constant [6 x i8] c"qsort\00" -@.str.4930 = private unnamed_addr constant [7 x i8] c"printf\00" -@.str.4931 = private unnamed_addr constant [5 x i8] c"puts\00" -@.str.4932 = private unnamed_addr constant [8 x i8] c"putchar\00" -@.str.4933 = private unnamed_addr constant [6 x i8] c"scanf\00" -@.str.4934 = private unnamed_addr constant [6 x i8] c"fopen\00" -@.str.4935 = private unnamed_addr constant [8 x i8] c"getchar\00" -@.str.4936 = private unnamed_addr constant [5 x i8] c"sqrt\00" -@.str.4937 = private unnamed_addr constant [4 x i8] c"pow\00" -@.str.4938 = private unnamed_addr constant [4 x i8] c"sin\00" -@.str.4939 = private unnamed_addr constant [4 x i8] c"cos\00" -@.str.4940 = private unnamed_addr constant [6 x i8] c"floor\00" -@.str.4941 = private unnamed_addr constant [5 x i8] c"fabs\00" -@.str.4942 = private unnamed_addr constant [7 x i8] c"malloc\00" -@.str.4943 = private unnamed_addr constant [5 x i8] c"rand\00" -@.str.4944 = private unnamed_addr constant [6 x i8] c"srand\00" -@.str.4945 = private unnamed_addr constant [4 x i8] c"abs\00" -@.str.4946 = private unnamed_addr constant [5 x i8] c"atoi\00" -@.str.4947 = private unnamed_addr constant [7 x i8] c"strlen\00" -@.str.4948 = private unnamed_addr constant [7 x i8] c"strcpy\00" -@.str.4949 = private unnamed_addr constant [7 x i8] c"memcpy\00" -@.str.4950 = private unnamed_addr constant [5 x i8] c"time\00" -@.str.4951 = private unnamed_addr constant [6 x i8] c"sleep\00" -@.str.4952 = private unnamed_addr constant [7 x i8] c"usleep\00" -@.str.4953 = private unnamed_addr constant [8 x i8] c"stdio.h\00" -@.str.4954 = private unnamed_addr constant [8 x i8] c"stdio.h\00" -@.str.4955 = private unnamed_addr constant [8 x i8] c"stdio.h\00" -@.str.4956 = private unnamed_addr constant [8 x i8] c"stdio.h\00" -@.str.4957 = private unnamed_addr constant [8 x i8] c"stdio.h\00" -@.str.4958 = private unnamed_addr constant [8 x i8] c"stdio.h\00" -@.str.4959 = private unnamed_addr constant [7 x i8] c"math.h\00" -@.str.4960 = private unnamed_addr constant [7 x i8] c"math.h\00" -@.str.4961 = private unnamed_addr constant [7 x i8] c"math.h\00" -@.str.4962 = private unnamed_addr constant [7 x i8] c"math.h\00" -@.str.4963 = private unnamed_addr constant [7 x i8] c"math.h\00" -@.str.4964 = private unnamed_addr constant [7 x i8] c"math.h\00" -@.str.4965 = private unnamed_addr constant [9 x i8] c"stdlib.h\00" -@.str.4966 = private unnamed_addr constant [9 x i8] c"stdlib.h\00" -@.str.4967 = private unnamed_addr constant [9 x i8] c"stdlib.h\00" -@.str.4968 = private unnamed_addr constant [9 x i8] c"stdlib.h\00" -@.str.4969 = private unnamed_addr constant [9 x i8] c"stdlib.h\00" -@.str.4970 = private unnamed_addr constant [9 x i8] c"string.h\00" -@.str.4971 = private unnamed_addr constant [9 x i8] c"string.h\00" -@.str.4972 = private unnamed_addr constant [9 x i8] c"string.h\00" -@.str.4973 = private unnamed_addr constant [7 x i8] c"time.h\00" -@.str.4974 = private unnamed_addr constant [9 x i8] c"unistd.h\00" -@.str.4975 = private unnamed_addr constant [9 x i8] c"unistd.h\00" -@.str.4976 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4977 = private unnamed_addr constant [29 x i8] c" (it's from C: add import \22\00" -@.str.4978 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4979 = private unnamed_addr constant [15 x i8] c"\22 at the top)\00" -@.str.4980 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4981 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" -@.str.4982 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4983 = private unnamed_addr constant [6 x i8] c"error\00" -@.str.4984 = private unnamed_addr constant [87 x i8] c"error(...) makes an error to return from a function that can fail: return error(\22...\22)\00" -@.str.4985 = private unnamed_addr constant [6 x i8] c"print\00" -@.str.4986 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4987 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.4867 = private unnamed_addr constant [70 x i8] c"an export fn returns nothing, a number, bool, char or a pointer (not \00" +@.str.4868 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4869 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4870 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.4871 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.4872 = private unnamed_addr constant [39 x i8] c"' is exported twice (from two modules)\00" +@.str.4873 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4874 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4875 = private unnamed_addr constant [14 x i8] c"i8 zeroext %e\00" +@.str.4876 = private unnamed_addr constant [4 x i8] c"i1 \00" +@.str.4877 = private unnamed_addr constant [14 x i8] c"icmp ne i8 %e\00" +@.str.4878 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.4879 = private unnamed_addr constant [4 x i8] c" %e\00" +@.str.4880 = private unnamed_addr constant [4 x i8] c" %e\00" +@.str.4881 = private unnamed_addr constant [6 x i8] c"call \00" +@.str.4882 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4883 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.4884 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4885 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4886 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.4887 = private unnamed_addr constant [1 x i8] c"\00" +@.str.4888 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.4889 = private unnamed_addr constant [9 x i8] c"ret void\00" +@.str.4890 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4891 = private unnamed_addr constant [3 x i8] c"i8\00" +@.str.4892 = private unnamed_addr constant [9 x i8] c" zeroext\00" +@.str.4893 = private unnamed_addr constant [8 x i8] c"ret i8 \00" +@.str.4894 = private unnamed_addr constant [9 x i8] c"zext i1 \00" +@.str.4895 = private unnamed_addr constant [7 x i8] c" to i8\00" +@.str.4896 = private unnamed_addr constant [5 x i8] c"ret \00" +@.str.4897 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4898 = private unnamed_addr constant [1 x i8] c"\00" +@.str.4899 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4900 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" +@.str.4901 = private unnamed_addr constant [11 x i8] c" dllexport\00" +@.str.4902 = private unnamed_addr constant [7 x i8] c"define\00" +@.str.4903 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4904 = private unnamed_addr constant [3 x i8] c" @\00" +@.str.4905 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.4906 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4907 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4908 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4909 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.4910 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4911 = private unnamed_addr constant [10 x i8] c"@finch.c.\00" +@.str.4912 = private unnamed_addr constant [2 x i8] c".\00" +@.str.4913 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4914 = private unnamed_addr constant [30 x i8] c"used .cdone on a null pointer\00" +@.str.4915 = private unnamed_addr constant [3 x i8] c"t:\00" +@.str.4916 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4917 = private unnamed_addr constant [30 x i8] c"used .cdone on a null pointer\00" +@.str.4918 = private unnamed_addr constant [3 x i8] c"t:\00" +@.str.4919 = private unnamed_addr constant [6 x i8] c"addr(\00" +@.str.4920 = private unnamed_addr constant [82 x i8] c") gives C a function pointer, so it can't be a method or a function that can fail\00" +@.str.4921 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4922 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.4923 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4924 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.4925 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4926 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.4927 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4928 = private unnamed_addr constant [6 x i8] c"addr(\00" +@.str.4929 = private unnamed_addr constant [96 x i8] c") gives C a function pointer, so its parameters must be C types (numbers, ptr, C structs), not \00" +@.str.4930 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.4931 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.4932 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.4933 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.4934 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.4935 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4936 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.4937 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4938 = private unnamed_addr constant [6 x i8] c"addr(\00" +@.str.4939 = private unnamed_addr constant [39 x i8] c"): a function given to C can't return \00" +@.str.4940 = private unnamed_addr constant [1 x i8] c"\00" +@.str.4941 = private unnamed_addr constant [10 x i8] c"ptr sret(\00" +@.str.4942 = private unnamed_addr constant [15 x i8] c") align 16 %c0\00" +@.str.4943 = private unnamed_addr constant [4 x i8] c"%c0\00" +@.str.4944 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4945 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4946 = private unnamed_addr constant [7 x i8] c"memory\00" +@.str.4947 = private unnamed_addr constant [11 x i8] c"ptr byval(\00" +@.str.4948 = private unnamed_addr constant [9 x i8] c") align \00" +@.str.4949 = private unnamed_addr constant [4 x i8] c" %c\00" +@.str.4950 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4951 = private unnamed_addr constant [3 x i8] c"%c\00" +@.str.4952 = private unnamed_addr constant [9 x i8] c"indirect\00" +@.str.4953 = private unnamed_addr constant [7 x i8] c"ptr %c\00" +@.str.4954 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4955 = private unnamed_addr constant [3 x i8] c"%c\00" +@.str.4956 = private unnamed_addr constant [7 x i8] c"expand\00" +@.str.4957 = private unnamed_addr constant [10 x i8] c"[32 x i8]\00" +@.str.4958 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4959 = private unnamed_addr constant [4 x i8] c" %c\00" +@.str.4960 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4961 = private unnamed_addr constant [3 x i8] c"%c\00" +@.str.4962 = private unnamed_addr constant [32 x i8] c"getelementptr inbounds i8, ptr \00" +@.str.4963 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.4964 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4965 = private unnamed_addr constant [4 x i8] c" %c\00" +@.str.4966 = private unnamed_addr constant [4 x i8] c" %c\00" +@.str.4967 = private unnamed_addr constant [6 x i8] c"call \00" +@.str.4968 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4969 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.4970 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4971 = private unnamed_addr constant [2 x i8] c")\00" +@.str.4972 = private unnamed_addr constant [1 x i8] c"\00" +@.str.4973 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.4974 = private unnamed_addr constant [9 x i8] c"ret void\00" +@.str.4975 = private unnamed_addr constant [9 x i8] c"ret void\00" +@.str.4976 = private unnamed_addr constant [7 x i8] c"expand\00" +@.str.4977 = private unnamed_addr constant [10 x i8] c"[32 x i8]\00" +@.str.4978 = private unnamed_addr constant [5 x i8] c"ret \00" +@.str.4979 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4980 = private unnamed_addr constant [5 x i8] c"ret \00" +@.str.4981 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4982 = private unnamed_addr constant [16 x i8] c"define internal\00" +@.str.4983 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4984 = private unnamed_addr constant [2 x i8] c" \00" +@.str.4985 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.4986 = private unnamed_addr constant [3 x i8] c", \00" +@.str.4987 = private unnamed_addr constant [2 x i8] c")\00" @.str.4988 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4989 = private unnamed_addr constant [54 x i8] c"this gives back nothing, so there is nothing to print\00" -@.str.4990 = private unnamed_addr constant [2 x i8] c" \00" -@.str.4991 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4992 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.4993 = private unnamed_addr constant [1 x i8] c"\00" -@.str.4994 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.4995 = private unnamed_addr constant [5 x i8] c"addr\00" +@.str.4989 = private unnamed_addr constant [30 x i8] c"used .enums on a null pointer\00" +@.str.4990 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4991 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4992 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.4993 = private unnamed_addr constant [55 x i8] c"(...) turns a whole number into the enum, but this is \00" +@.str.4994 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.4995 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.4996 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4997 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.4998 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.4999 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.5000 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.5001 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.5002 = private unnamed_addr constant [7 x i8] c"member\00" -@.str.5003 = private unnamed_addr constant [6 x i8] c"index\00" -@.str.5004 = private unnamed_addr constant [64 x i8] c"addr(...) needs a variable, a field or an element, like addr(x)\00" -@.str.5005 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5006 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5007 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5008 = private unnamed_addr constant [35 x i8] c"call void @finch_str_from_int(ptr \00" -@.str.5009 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5010 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.5011 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5012 = private unnamed_addr constant [36 x i8] c"call void @finch_str_from_uint(ptr \00" -@.str.5013 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5014 = private unnamed_addr constant [4 x i8] c"u64\00" -@.str.5015 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5016 = private unnamed_addr constant [37 x i8] c"call void @finch_str_from_float(ptr \00" -@.str.5017 = private unnamed_addr constant [10 x i8] c", double \00" -@.str.5018 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.5019 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5020 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.5021 = private unnamed_addr constant [36 x i8] c"call void @finch_str_from_char(ptr \00" -@.str.5022 = private unnamed_addr constant [14 x i8] c", i8 signext \00" -@.str.5023 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5024 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.5025 = private unnamed_addr constant [9 x i8] c"zext i1 \00" -@.str.5026 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str.5027 = private unnamed_addr constant [36 x i8] c"call void @finch_str_from_bool(ptr \00" -@.str.5028 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str.5029 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5030 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.5031 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5032 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.5033 = private unnamed_addr constant [33 x i8] c"call void @finch_str_from_c(ptr \00" -@.str.5034 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5035 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5036 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.5037 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5038 = private unnamed_addr constant [3 x i8] c"u8\00" -@.str.5039 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5040 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.5041 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5042 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.5043 = private unnamed_addr constant [37 x i8] c"call void @finch_str_from_bytes(ptr \00" -@.str.5044 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5045 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5046 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.5047 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.5048 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.5049 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.5050 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.5051 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.5052 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5053 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.5054 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5055 = private unnamed_addr constant [12 x i8] c"can't turn \00" -@.str.5056 = private unnamed_addr constant [10 x i8] c" into str\00" -@.str.5057 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5058 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5059 = private unnamed_addr constant [10 x i8] c"read_file\00" -@.str.5060 = private unnamed_addr constant [12 x i8] c"file_exists\00" -@.str.5061 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5062 = private unnamed_addr constant [14 x i8] c"the file name\00" -@.str.5063 = private unnamed_addr constant [12 x i8] c"file_exists\00" -@.str.5064 = private unnamed_addr constant [33 x i8] c"call i32 @finch_file_exists(ptr \00" -@.str.5065 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5066 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str.5067 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.5068 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.5069 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5070 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" -@.str.5071 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5072 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5073 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.5074 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5075 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.5076 = private unnamed_addr constant [35 x i8] c"call i32 @finch_try_read_file(ptr \00" -@.str.5077 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5078 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5079 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5080 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" -@.str.5081 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.5082 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5083 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" -@.str.5084 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5085 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5086 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" -@.str.5087 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5088 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5089 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5090 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" -@.str.5091 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5092 = private unnamed_addr constant [32 x i8] c"call void @finch_read_file(ptr \00" -@.str.5093 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5094 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5095 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5096 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5097 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5098 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5099 = private unnamed_addr constant [11 x i8] c"write_file\00" -@.str.5100 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5101 = private unnamed_addr constant [14 x i8] c"the file name\00" -@.str.5102 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5103 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.4997 = private unnamed_addr constant [38 x i8] c" is not the number of any variant of \00" +@.str.4998 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.4999 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5000 = private unnamed_addr constant [13 x i8] c"icmp eq i64 \00" +@.str.5001 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5002 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5003 = private unnamed_addr constant [7 x i8] c"or i1 \00" +@.str.5004 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5005 = private unnamed_addr constant [8 x i8] c"xor i1 \00" +@.str.5006 = private unnamed_addr constant [7 x i8] c", true\00" +@.str.5007 = private unnamed_addr constant [33 x i8] c"this number is not a variant of \00" +@.str.5008 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" +@.str.5009 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str.5010 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.5011 = private unnamed_addr constant [9 x i8] c" zeroext\00" +@.str.5012 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.5013 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5014 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" +@.str.5015 = private unnamed_addr constant [9 x i8] c" signext\00" +@.str.5016 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.5017 = private unnamed_addr constant [9 x i8] c" zeroext\00" +@.str.5018 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5019 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5020 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5021 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5022 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" +@.str.5023 = private unnamed_addr constant [4 x i8] c"...\00" +@.str.5024 = private unnamed_addr constant [18 x i8] c"C function from `\00" +@.str.5025 = private unnamed_addr constant [8 x i8] c"`\0A```c\0A\00" +@.str.5026 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5027 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.5028 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5029 = private unnamed_addr constant [6 x i8] c")\0A```\00" +@.str.5030 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5031 = private unnamed_addr constant [17 x i8] c"the C function '\00" +@.str.5032 = private unnamed_addr constant [36 x i8] c"' can't be used from Finch yet: it \00" +@.str.5033 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.5034 = private unnamed_addr constant [18 x i8] c"' takes at least \00" +@.str.5035 = private unnamed_addr constant [23 x i8] c" argument(s), but got \00" +@.str.5036 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.5037 = private unnamed_addr constant [9 x i8] c"' takes \00" +@.str.5038 = private unnamed_addr constant [23 x i8] c" argument(s), but got \00" +@.str.5039 = private unnamed_addr constant [8 x i8] c"returns\00" +@.str.5040 = private unnamed_addr constant [6 x i8] c"takes\00" +@.str.5041 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5042 = private unnamed_addr constant [10 x i8] c"ptr sret(\00" +@.str.5043 = private unnamed_addr constant [11 x i8] c") align 16\00" +@.str.5044 = private unnamed_addr constant [10 x i8] c"ptr sret(\00" +@.str.5045 = private unnamed_addr constant [12 x i8] c") align 16 \00" +@.str.5046 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5047 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.5048 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5049 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5050 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5051 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5052 = private unnamed_addr constant [10 x i8] c"argument \00" +@.str.5053 = private unnamed_addr constant [5 x i8] c" of \00" +@.str.5054 = private unnamed_addr constant [7 x i8] c"memory\00" +@.str.5055 = private unnamed_addr constant [11 x i8] c"ptr byval(\00" +@.str.5056 = private unnamed_addr constant [9 x i8] c") align \00" +@.str.5057 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5058 = private unnamed_addr constant [9 x i8] c"indirect\00" +@.str.5059 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5060 = private unnamed_addr constant [5 x i8] c"ptr \00" +@.str.5061 = private unnamed_addr constant [7 x i8] c"expand\00" +@.str.5062 = private unnamed_addr constant [10 x i8] c"[32 x i8]\00" +@.str.5063 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5064 = private unnamed_addr constant [32 x i8] c"getelementptr inbounds i8, ptr \00" +@.str.5065 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5066 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5067 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5068 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5069 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5070 = private unnamed_addr constant [5 x i8] c"ptr \00" +@.str.5071 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5072 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5073 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.5074 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5075 = private unnamed_addr constant [24 x i8] c"this gives back nothing\00" +@.str.5076 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.5077 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.5078 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5079 = private unnamed_addr constant [69 x i8] c"structs and arrays can't be passed to the '...' part of a C function\00" +@.str.5080 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.5081 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.5082 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.5083 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5084 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5085 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.5086 = private unnamed_addr constant [9 x i8] c"zext i1 \00" +@.str.5087 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str.5088 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.5089 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.5090 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.5091 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.5092 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5093 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5094 = private unnamed_addr constant [7 x i8] c"direct\00" +@.str.5095 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5096 = private unnamed_addr constant [6 x i8] c", ...\00" +@.str.5097 = private unnamed_addr constant [4 x i8] c"...\00" +@.str.5098 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5099 = private unnamed_addr constant [30 x i8] c"used .cdone on a null pointer\00" +@.str.5100 = private unnamed_addr constant [3 x i8] c"f:\00" +@.str.5101 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5102 = private unnamed_addr constant [30 x i8] c"used .cdone on a null pointer\00" +@.str.5103 = private unnamed_addr constant [3 x i8] c"f:\00" @.str.5104 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5105 = private unnamed_addr constant [9 x i8] c"the text\00" -@.str.5106 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5107 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" -@.str.5108 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5109 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5110 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.5111 = private unnamed_addr constant [36 x i8] c"call i32 @finch_try_write_file(ptr \00" -@.str.5112 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5113 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5114 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5115 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" -@.str.5116 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.5117 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5118 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" -@.str.5119 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5120 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5121 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" +@.str.5105 = private unnamed_addr constant [29 x i8] c"used .head on a null pointer\00" +@.str.5106 = private unnamed_addr constant [8 x i8] c"declare\00" +@.str.5107 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5108 = private unnamed_addr constant [3 x i8] c" @\00" +@.str.5109 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.5110 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5111 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5112 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5113 = private unnamed_addr constant [3 x i8] c" (\00" +@.str.5114 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5115 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5116 = private unnamed_addr constant [5 x i8] c"call\00" +@.str.5117 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5118 = private unnamed_addr constant [3 x i8] c" @\00" +@.str.5119 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.5120 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5121 = private unnamed_addr constant [2 x i8] c")\00" @.str.5122 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.5123 = private unnamed_addr constant [32 x i8] c"call i32 @finch_write_file(ptr \00" -@.str.5124 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5125 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5126 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str.5127 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.5128 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.5129 = private unnamed_addr constant [12 x i8] c"delete_file\00" -@.str.5130 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5131 = private unnamed_addr constant [14 x i8] c"the file name\00" -@.str.5132 = private unnamed_addr constant [31 x i8] c"call void @finch_str_copy(ptr \00" -@.str.5133 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5134 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5135 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5136 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" -@.str.5137 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5138 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5139 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.5140 = private unnamed_addr constant [37 x i8] c"call i32 @finch_try_delete_file(ptr \00" -@.str.5141 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5142 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5143 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" -@.str.5144 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.5145 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5146 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" -@.str.5147 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5148 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5149 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" -@.str.5150 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5151 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.5152 = private unnamed_addr constant [33 x i8] c"call i32 @finch_delete_file(ptr \00" -@.str.5153 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5154 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5155 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str.5156 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.5157 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.5158 = private unnamed_addr constant [6 x i8] c"shell\00" -@.str.5159 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5160 = private unnamed_addr constant [12 x i8] c"the command\00" -@.str.5161 = private unnamed_addr constant [31 x i8] c"call void @finch_str_copy(ptr \00" -@.str.5162 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5163 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5164 = private unnamed_addr constant [27 x i8] c"call i64 @finch_shell(ptr \00" -@.str.5165 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5166 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5167 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.5168 = private unnamed_addr constant [5 x i8] c"exit\00" -@.str.5169 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5170 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.5171 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5172 = private unnamed_addr constant [14 x i8] c"the exit code\00" -@.str.5173 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" -@.str.5174 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str.5175 = private unnamed_addr constant [27 x i8] c"call i32 @fflush(ptr null)\00" -@.str.5176 = private unnamed_addr constant [21 x i8] c"call void @exit(i32 \00" -@.str.5177 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5178 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.5179 = private unnamed_addr constant [6 x i8] c"input\00" -@.str.5180 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5181 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5182 = private unnamed_addr constant [13 x i8] c"the question\00" -@.str.5183 = private unnamed_addr constant [28 x i8] c"call void @finch_input(ptr \00" -@.str.5184 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5185 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5186 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5187 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5188 = private unnamed_addr constant [4 x i8] c"new\00" -@.str.5189 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5190 = private unnamed_addr constant [27 x i8] c"call ptr @finch_alloc(i64 \00" -@.str.5191 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5192 = private unnamed_addr constant [5 x i8] c"free\00" +@.str.5123 = private unnamed_addr constant [7 x i8] c"expand\00" +@.str.5124 = private unnamed_addr constant [10 x i8] c"[32 x i8]\00" +@.str.5125 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5126 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5127 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" +@.str.5128 = private unnamed_addr constant [33 x i8] c"call void @finch_str_from_c(ptr \00" +@.str.5129 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5130 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5131 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5132 = private unnamed_addr constant [7 x i8] c"printf\00" +@.str.5133 = private unnamed_addr constant [7 x i8] c"fflush\00" +@.str.5134 = private unnamed_addr constant [5 x i8] c"exit\00" +@.str.5135 = private unnamed_addr constant [5 x i8] c"free\00" +@.str.5136 = private unnamed_addr constant [6 x i8] c"qsort\00" +@.str.5137 = private unnamed_addr constant [7 x i8] c"printf\00" +@.str.5138 = private unnamed_addr constant [5 x i8] c"puts\00" +@.str.5139 = private unnamed_addr constant [8 x i8] c"putchar\00" +@.str.5140 = private unnamed_addr constant [6 x i8] c"scanf\00" +@.str.5141 = private unnamed_addr constant [6 x i8] c"fopen\00" +@.str.5142 = private unnamed_addr constant [8 x i8] c"getchar\00" +@.str.5143 = private unnamed_addr constant [5 x i8] c"sqrt\00" +@.str.5144 = private unnamed_addr constant [4 x i8] c"pow\00" +@.str.5145 = private unnamed_addr constant [4 x i8] c"sin\00" +@.str.5146 = private unnamed_addr constant [4 x i8] c"cos\00" +@.str.5147 = private unnamed_addr constant [6 x i8] c"floor\00" +@.str.5148 = private unnamed_addr constant [5 x i8] c"fabs\00" +@.str.5149 = private unnamed_addr constant [7 x i8] c"malloc\00" +@.str.5150 = private unnamed_addr constant [5 x i8] c"rand\00" +@.str.5151 = private unnamed_addr constant [6 x i8] c"srand\00" +@.str.5152 = private unnamed_addr constant [4 x i8] c"abs\00" +@.str.5153 = private unnamed_addr constant [5 x i8] c"atoi\00" +@.str.5154 = private unnamed_addr constant [7 x i8] c"strlen\00" +@.str.5155 = private unnamed_addr constant [7 x i8] c"strcpy\00" +@.str.5156 = private unnamed_addr constant [7 x i8] c"memcpy\00" +@.str.5157 = private unnamed_addr constant [5 x i8] c"time\00" +@.str.5158 = private unnamed_addr constant [6 x i8] c"sleep\00" +@.str.5159 = private unnamed_addr constant [7 x i8] c"usleep\00" +@.str.5160 = private unnamed_addr constant [8 x i8] c"stdio.h\00" +@.str.5161 = private unnamed_addr constant [8 x i8] c"stdio.h\00" +@.str.5162 = private unnamed_addr constant [8 x i8] c"stdio.h\00" +@.str.5163 = private unnamed_addr constant [8 x i8] c"stdio.h\00" +@.str.5164 = private unnamed_addr constant [8 x i8] c"stdio.h\00" +@.str.5165 = private unnamed_addr constant [8 x i8] c"stdio.h\00" +@.str.5166 = private unnamed_addr constant [7 x i8] c"math.h\00" +@.str.5167 = private unnamed_addr constant [7 x i8] c"math.h\00" +@.str.5168 = private unnamed_addr constant [7 x i8] c"math.h\00" +@.str.5169 = private unnamed_addr constant [7 x i8] c"math.h\00" +@.str.5170 = private unnamed_addr constant [7 x i8] c"math.h\00" +@.str.5171 = private unnamed_addr constant [7 x i8] c"math.h\00" +@.str.5172 = private unnamed_addr constant [9 x i8] c"stdlib.h\00" +@.str.5173 = private unnamed_addr constant [9 x i8] c"stdlib.h\00" +@.str.5174 = private unnamed_addr constant [9 x i8] c"stdlib.h\00" +@.str.5175 = private unnamed_addr constant [9 x i8] c"stdlib.h\00" +@.str.5176 = private unnamed_addr constant [9 x i8] c"stdlib.h\00" +@.str.5177 = private unnamed_addr constant [9 x i8] c"string.h\00" +@.str.5178 = private unnamed_addr constant [9 x i8] c"string.h\00" +@.str.5179 = private unnamed_addr constant [9 x i8] c"string.h\00" +@.str.5180 = private unnamed_addr constant [7 x i8] c"time.h\00" +@.str.5181 = private unnamed_addr constant [9 x i8] c"unistd.h\00" +@.str.5182 = private unnamed_addr constant [9 x i8] c"unistd.h\00" +@.str.5183 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5184 = private unnamed_addr constant [29 x i8] c" (it's from C: add import \22\00" +@.str.5185 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5186 = private unnamed_addr constant [15 x i8] c"\22 at the top)\00" +@.str.5187 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5188 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" +@.str.5189 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5190 = private unnamed_addr constant [6 x i8] c"error\00" +@.str.5191 = private unnamed_addr constant [87 x i8] c"error(...) makes an error to return from a function that can fail: return error(\22...\22)\00" +@.str.5192 = private unnamed_addr constant [6 x i8] c"print\00" @.str.5193 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5194 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5194 = private unnamed_addr constant [5 x i8] c"void\00" @.str.5195 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5196 = private unnamed_addr constant [120 x i8] c"free(...) is only for pointers from new(...) or C; arrays, str and structs are freed by Finch at the end of their block\00" -@.str.5197 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5198 = private unnamed_addr constant [10 x i8] c"free.drop\00" -@.str.5199 = private unnamed_addr constant [10 x i8] c"free.done\00" -@.str.5200 = private unnamed_addr constant [13 x i8] c"icmp eq ptr \00" -@.str.5201 = private unnamed_addr constant [7 x i8] c", null\00" -@.str.5202 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5203 = private unnamed_addr constant [21 x i8] c"call void @free(ptr \00" -@.str.5204 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5205 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.5206 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5207 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.5208 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.5209 = private unnamed_addr constant [48 x i8] c"' is not generic, so it takes no type arguments\00" -@.str.5210 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5211 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5212 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5213 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.5214 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5215 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5216 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.5217 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5218 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.5219 = private unnamed_addr constant [43 x i8] c"' is generic, so say which type it holds: \00" -@.str.5220 = private unnamed_addr constant [11 x i8] c"[int](...)\00" -@.str.5221 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5222 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.5223 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5224 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.5225 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5226 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.5227 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5228 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5229 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" -@.str.5230 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5231 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.5232 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5233 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5234 = private unnamed_addr constant [17 x i8] c"```finch\0Astruct \00" -@.str.5235 = private unnamed_addr constant [4 x i8] c" { \00" -@.str.5236 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5237 = private unnamed_addr constant [7 x i8] c" }\0A```\00" -@.str.5238 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5239 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" -@.str.5240 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5241 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5242 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.5243 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5244 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" -@.str.5245 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5246 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" -@.str.5247 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5248 = private unnamed_addr constant [2 x i8] c"C\00" -@.str.5249 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.5250 = private unnamed_addr constant [32 x i8] c"' is a variable, not a function\00" -@.str.5251 = private unnamed_addr constant [29 x i8] c"there is no function named '\00" -@.str.5252 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.5253 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5254 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.5255 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5256 = private unnamed_addr constant [5 x i8] c"main\00" -@.str.5257 = private unnamed_addr constant [53 x i8] c"main can't be called, it is where the program starts\00" -@.str.5258 = private unnamed_addr constant [5 x i8] c"ptr \00" -@.str.5259 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5260 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.5196 = private unnamed_addr constant [54 x i8] c"this gives back nothing, so there is nothing to print\00" +@.str.5197 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5198 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5199 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.5200 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5201 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.5202 = private unnamed_addr constant [5 x i8] c"addr\00" +@.str.5203 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5204 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.5205 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5206 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.5207 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5208 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.5209 = private unnamed_addr constant [7 x i8] c"member\00" +@.str.5210 = private unnamed_addr constant [6 x i8] c"index\00" +@.str.5211 = private unnamed_addr constant [64 x i8] c"addr(...) needs a variable, a field or an element, like addr(x)\00" +@.str.5212 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5213 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5214 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5215 = private unnamed_addr constant [35 x i8] c"call void @finch_str_from_int(ptr \00" +@.str.5216 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5217 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.5218 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5219 = private unnamed_addr constant [36 x i8] c"call void @finch_str_from_uint(ptr \00" +@.str.5220 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5221 = private unnamed_addr constant [4 x i8] c"u64\00" +@.str.5222 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5223 = private unnamed_addr constant [37 x i8] c"call void @finch_str_from_float(ptr \00" +@.str.5224 = private unnamed_addr constant [10 x i8] c", double \00" +@.str.5225 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.5226 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5227 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.5228 = private unnamed_addr constant [36 x i8] c"call void @finch_str_from_char(ptr \00" +@.str.5229 = private unnamed_addr constant [14 x i8] c", i8 signext \00" +@.str.5230 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5231 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.5232 = private unnamed_addr constant [9 x i8] c"zext i1 \00" +@.str.5233 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str.5234 = private unnamed_addr constant [36 x i8] c"call void @finch_str_from_bool(ptr \00" +@.str.5235 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str.5236 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5237 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5238 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5239 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" +@.str.5240 = private unnamed_addr constant [33 x i8] c"call void @finch_str_from_c(ptr \00" +@.str.5241 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5242 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5243 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.5244 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5245 = private unnamed_addr constant [3 x i8] c"u8\00" +@.str.5246 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5247 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.5248 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5249 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" +@.str.5250 = private unnamed_addr constant [37 x i8] c"call void @finch_str_from_bytes(ptr \00" +@.str.5251 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5252 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5253 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.5254 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.5255 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.5256 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.5257 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.5258 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.5259 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5260 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" @.str.5261 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5262 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5263 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5264 = private unnamed_addr constant [11 x i8] c"argument '\00" -@.str.5265 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5266 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.5267 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5262 = private unnamed_addr constant [12 x i8] c"can't turn \00" +@.str.5263 = private unnamed_addr constant [10 x i8] c" into str\00" +@.str.5264 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5265 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5266 = private unnamed_addr constant [10 x i8] c"read_file\00" +@.str.5267 = private unnamed_addr constant [12 x i8] c"file_exists\00" @.str.5268 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5269 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5270 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5271 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" -@.str.5272 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.5273 = private unnamed_addr constant [40 x i8] c"' can fail, so say what happens then: \00" -@.str.5274 = private unnamed_addr constant [20 x i8] c"(...) or , \00" -@.str.5275 = private unnamed_addr constant [28 x i8] c"(...) or { ... }, or try \00" -@.str.5276 = private unnamed_addr constant [6 x i8] c"(...)\00" -@.str.5277 = private unnamed_addr constant [6 x i8] c"call \00" -@.str.5278 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5279 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.5280 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5281 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5282 = private unnamed_addr constant [14 x i8] c"extractvalue \00" -@.str.5283 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5284 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.5285 = private unnamed_addr constant [8 x i8] c"xor i1 \00" -@.str.5286 = private unnamed_addr constant [7 x i8] c", true\00" -@.str.5287 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5288 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" -@.str.5289 = private unnamed_addr constant [14 x i8] c"extractvalue \00" -@.str.5290 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5291 = private unnamed_addr constant [4 x i8] c", 2\00" +@.str.5269 = private unnamed_addr constant [14 x i8] c"the file name\00" +@.str.5270 = private unnamed_addr constant [12 x i8] c"file_exists\00" +@.str.5271 = private unnamed_addr constant [33 x i8] c"call i32 @finch_file_exists(ptr \00" +@.str.5272 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5273 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str.5274 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.5275 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.5276 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5277 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" +@.str.5278 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5279 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5280 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" +@.str.5281 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5282 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" +@.str.5283 = private unnamed_addr constant [35 x i8] c"call i32 @finch_try_read_file(ptr \00" +@.str.5284 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5285 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5286 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5287 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" +@.str.5288 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.5289 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5290 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" +@.str.5291 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" @.str.5292 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.5293 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" -@.str.5294 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.5295 = private unnamed_addr constant [14 x i8] c"extractvalue \00" -@.str.5296 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5297 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str.5298 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.5299 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5300 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.5301 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5302 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5303 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.5304 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5305 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5306 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.5294 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5295 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5296 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5297 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.5298 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5299 = private unnamed_addr constant [32 x i8] c"call void @finch_read_file(ptr \00" +@.str.5300 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5301 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5302 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5303 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5304 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5305 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5306 = private unnamed_addr constant [11 x i8] c"write_file\00" @.str.5307 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5308 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5308 = private unnamed_addr constant [14 x i8] c"the file name\00" @.str.5309 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5310 = private unnamed_addr constant [70 x i8] c"give either all fields by name (x: 1, y: 2) or none (1, 2), not a mix\00" -@.str.5311 = private unnamed_addr constant [6 x i8] c" has \00" -@.str.5312 = private unnamed_addr constant [18 x i8] c" fields, but got \00" -@.str.5313 = private unnamed_addr constant [24 x i8] c" values (or name them: \00" -@.str.5314 = private unnamed_addr constant [16 x i8] c"(field: value))\00" -@.str.5315 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5316 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5317 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5318 = private unnamed_addr constant [16 x i8] c" has no field '\00" -@.str.5319 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5320 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.5321 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5322 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5323 = private unnamed_addr constant [12 x i8] c"the field '\00" +@.str.5310 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.5311 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5312 = private unnamed_addr constant [9 x i8] c"the text\00" +@.str.5313 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5314 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" +@.str.5315 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5316 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5317 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" +@.str.5318 = private unnamed_addr constant [36 x i8] c"call i32 @finch_try_write_file(ptr \00" +@.str.5319 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5320 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5321 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5322 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" +@.str.5323 = private unnamed_addr constant [4 x i8] c", 0\00" @.str.5324 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5325 = private unnamed_addr constant [17 x i8] c"' is given twice\00" -@.str.5326 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5327 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" -@.str.5328 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5329 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.5330 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5331 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5332 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5333 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5334 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5335 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5336 = private unnamed_addr constant [12 x i8] c"the field '\00" +@.str.5325 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" +@.str.5326 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5327 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5328 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" +@.str.5329 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.5330 = private unnamed_addr constant [32 x i8] c"call i32 @finch_write_file(ptr \00" +@.str.5331 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5332 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5333 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str.5334 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.5335 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.5336 = private unnamed_addr constant [12 x i8] c"delete_file\00" @.str.5337 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5338 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.5339 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5340 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5341 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.5338 = private unnamed_addr constant [14 x i8] c"the file name\00" +@.str.5339 = private unnamed_addr constant [31 x i8] c"call void @finch_str_copy(ptr \00" +@.str.5340 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5341 = private unnamed_addr constant [2 x i8] c")\00" @.str.5342 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5343 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.5344 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5345 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" -@.str.5346 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5347 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" -@.str.5348 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5349 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" -@.str.5350 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5351 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" +@.str.5343 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" +@.str.5344 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5345 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5346 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" +@.str.5347 = private unnamed_addr constant [37 x i8] c"call i32 @finch_try_delete_file(ptr \00" +@.str.5348 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5349 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5350 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" +@.str.5351 = private unnamed_addr constant [4 x i8] c", 0\00" @.str.5352 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5353 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.5354 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5355 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.5356 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5357 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5358 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5359 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5360 = private unnamed_addr constant [17 x i8] c"the default of '\00" -@.str.5361 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5362 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.5363 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5364 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" -@.str.5365 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5366 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" -@.str.5367 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5368 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" -@.str.5369 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5370 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" -@.str.5371 = private unnamed_addr constant [13 x i8] c"insertvalue \00" -@.str.5372 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5373 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5374 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5375 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5353 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" +@.str.5354 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5355 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5356 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" +@.str.5357 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5358 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.5359 = private unnamed_addr constant [33 x i8] c"call i32 @finch_delete_file(ptr \00" +@.str.5360 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5361 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5362 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str.5363 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.5364 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.5365 = private unnamed_addr constant [6 x i8] c"shell\00" +@.str.5366 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5367 = private unnamed_addr constant [12 x i8] c"the command\00" +@.str.5368 = private unnamed_addr constant [31 x i8] c"call void @finch_str_copy(ptr \00" +@.str.5369 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5370 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5371 = private unnamed_addr constant [27 x i8] c"call i64 @finch_shell(ptr \00" +@.str.5372 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5373 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5374 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.5375 = private unnamed_addr constant [5 x i8] c"exit\00" @.str.5376 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5377 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5378 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" -@.str.5379 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5380 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5381 = private unnamed_addr constant [4 x i8] c"var\00" -@.str.5382 = private unnamed_addr constant [39 x i8] c"there is no variable or module named '\00" -@.str.5383 = private unnamed_addr constant [33 x i8] c"' (to use a module, add import \00" -@.str.5384 = private unnamed_addr constant [14 x i8] c" at the top)\00" -@.str.5385 = private unnamed_addr constant [2 x i8] c".\00" -@.str.5386 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5377 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.5378 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5379 = private unnamed_addr constant [14 x i8] c"the exit code\00" +@.str.5380 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" +@.str.5381 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str.5382 = private unnamed_addr constant [27 x i8] c"call i32 @fflush(ptr null)\00" +@.str.5383 = private unnamed_addr constant [21 x i8] c"call void @exit(i32 \00" +@.str.5384 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5385 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.5386 = private unnamed_addr constant [6 x i8] c"input\00" @.str.5387 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5388 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5389 = private unnamed_addr constant [2 x i8] c".\00" -@.str.5390 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5391 = private unnamed_addr constant [13 x i8] c"the module '\00" -@.str.5392 = private unnamed_addr constant [36 x i8] c"' has no function or struct named '\00" -@.str.5393 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.5394 = private unnamed_addr constant [5 x i8] c"push\00" -@.str.5395 = private unnamed_addr constant [4 x i8] c"pop\00" -@.str.5396 = private unnamed_addr constant [7 x i8] c"insert\00" -@.str.5397 = private unnamed_addr constant [7 x i8] c"remove\00" -@.str.5398 = private unnamed_addr constant [6 x i8] c"clear\00" -@.str.5399 = private unnamed_addr constant [7 x i8] c"resize\00" -@.str.5400 = private unnamed_addr constant [5 x i8] c"sort\00" -@.str.5401 = private unnamed_addr constant [8 x i8] c"reverse\00" +@.str.5388 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5389 = private unnamed_addr constant [13 x i8] c"the question\00" +@.str.5390 = private unnamed_addr constant [28 x i8] c"call void @finch_input(ptr \00" +@.str.5391 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5392 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5393 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5394 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5395 = private unnamed_addr constant [4 x i8] c"new\00" +@.str.5396 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5397 = private unnamed_addr constant [27 x i8] c"call ptr @finch_alloc(i64 \00" +@.str.5398 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5399 = private unnamed_addr constant [5 x i8] c"free\00" +@.str.5400 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5401 = private unnamed_addr constant [4 x i8] c"ptr\00" @.str.5402 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5403 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.5404 = private unnamed_addr constant [6 x i8] c"array\00" -@.str.5405 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5406 = private unnamed_addr constant [64 x i8] c"() would change a temporary array; store it in a variable first\00" -@.str.5407 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5408 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5409 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.5410 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5411 = private unnamed_addr constant [62 x i8] c"() would change a temporary map; store it in a variable first\00" -@.str.5412 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5413 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.5414 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5415 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.5416 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.5417 = private unnamed_addr constant [13 x i8] c"icmp eq ptr \00" -@.str.5418 = private unnamed_addr constant [7 x i8] c", null\00" -@.str.5419 = private unnamed_addr constant [9 x i8] c"called .\00" -@.str.5420 = private unnamed_addr constant [21 x i8] c"() on a null pointer\00" -@.str.5421 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5422 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.5423 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.5424 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.5425 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.5426 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.5427 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5428 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" -@.str.5429 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5403 = private unnamed_addr constant [120 x i8] c"free(...) is only for pointers from new(...) or C; arrays, str and structs are freed by Finch at the end of their block\00" +@.str.5404 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5405 = private unnamed_addr constant [10 x i8] c"free.drop\00" +@.str.5406 = private unnamed_addr constant [10 x i8] c"free.done\00" +@.str.5407 = private unnamed_addr constant [13 x i8] c"icmp eq ptr \00" +@.str.5408 = private unnamed_addr constant [7 x i8] c", null\00" +@.str.5409 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5410 = private unnamed_addr constant [21 x i8] c"call void @free(ptr \00" +@.str.5411 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5412 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.5413 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5414 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.5415 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.5416 = private unnamed_addr constant [48 x i8] c"' is not generic, so it takes no type arguments\00" +@.str.5417 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5418 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5419 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5420 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.5421 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5422 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5423 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.5424 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5425 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.5426 = private unnamed_addr constant [43 x i8] c"' is generic, so say which type it holds: \00" +@.str.5427 = private unnamed_addr constant [11 x i8] c"[int](...)\00" +@.str.5428 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5429 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" @.str.5430 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5431 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.5431 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" @.str.5432 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5433 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5434 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.5433 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.5434 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.5435 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5436 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5437 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.5438 = private unnamed_addr constant [5 x i8] c"the \00" -@.str.5439 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5440 = private unnamed_addr constant [35 x i8] c" has no methods; add one with fn \00" -@.str.5441 = private unnamed_addr constant [2 x i8] c".\00" -@.str.5442 = private unnamed_addr constant [14 x i8] c"(...) { ... }\00" -@.str.5443 = private unnamed_addr constant [5 x i8] c"the \00" -@.str.5444 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5445 = private unnamed_addr constant [17 x i8] c" has no method '\00" -@.str.5446 = private unnamed_addr constant [12 x i8] c"' (it has: \00" -@.str.5447 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5448 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5449 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5450 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.5451 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5452 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.5453 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.5454 = private unnamed_addr constant [29 x i8] c"() would change a temporary \00" -@.str.5455 = private unnamed_addr constant [31 x i8] c"; store it in a variable first\00" -@.str.5456 = private unnamed_addr constant [20 x i8] c"the loop variable '\00" -@.str.5457 = private unnamed_addr constant [19 x i8] c"' can't be changed\00" -@.str.5458 = private unnamed_addr constant [2 x i8] c".\00" -@.str.5459 = private unnamed_addr constant [16 x i8] c" has no methods\00" +@.str.5436 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" +@.str.5437 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5438 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.5439 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5440 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5441 = private unnamed_addr constant [17 x i8] c"```finch\0Astruct \00" +@.str.5442 = private unnamed_addr constant [4 x i8] c" { \00" +@.str.5443 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5444 = private unnamed_addr constant [7 x i8] c" }\0A```\00" +@.str.5445 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5446 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.5447 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5448 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5449 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.5450 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5451 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" +@.str.5452 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5453 = private unnamed_addr constant [27 x i8] c"used .ci on a null pointer\00" +@.str.5454 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5455 = private unnamed_addr constant [2 x i8] c"C\00" +@.str.5456 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.5457 = private unnamed_addr constant [32 x i8] c"' is a variable, not a function\00" +@.str.5458 = private unnamed_addr constant [29 x i8] c"there is no function named '\00" +@.str.5459 = private unnamed_addr constant [2 x i8] c"'\00" @.str.5460 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5461 = private unnamed_addr constant [47 x i8] c"getelementptr inbounds { ptr, i64, i64 }, ptr \00" -@.str.5462 = private unnamed_addr constant [15 x i8] c", i32 0, i32 1\00" -@.str.5463 = private unnamed_addr constant [5 x i8] c"push\00" -@.str.5464 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5465 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5466 = private unnamed_addr constant [12 x i8] c"the element\00" -@.str.5467 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5468 = private unnamed_addr constant [9 x i8] c"add i64 \00" -@.str.5469 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str.5470 = private unnamed_addr constant [34 x i8] c"call void @finch_arr_reserve(ptr \00" -@.str.5471 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5472 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5473 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5474 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.5475 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.5476 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5477 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5478 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5479 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.5480 = private unnamed_addr constant [4 x i8] c"pop\00" -@.str.5481 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5482 = private unnamed_addr constant [13 x i8] c"icmp eq i64 \00" -@.str.5483 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.5484 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" -@.str.5485 = private unnamed_addr constant [9 x i8] c"sub i64 \00" -@.str.5486 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str.5487 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.5488 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.5489 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5490 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5491 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5492 = private unnamed_addr constant [6 x i8] c"clear\00" -@.str.5493 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.5494 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5495 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.5496 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.5497 = private unnamed_addr constant [5 x i8] c"find\00" -@.str.5498 = private unnamed_addr constant [9 x i8] c"contains\00" +@.str.5461 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.5462 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5463 = private unnamed_addr constant [5 x i8] c"main\00" +@.str.5464 = private unnamed_addr constant [53 x i8] c"main can't be called, it is where the program starts\00" +@.str.5465 = private unnamed_addr constant [5 x i8] c"ptr \00" +@.str.5466 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5467 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.5468 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5469 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5470 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5471 = private unnamed_addr constant [11 x i8] c"argument '\00" +@.str.5472 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5473 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.5474 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5475 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5476 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5477 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5478 = private unnamed_addr constant [32 x i8] c"used .ftarget on a null pointer\00" +@.str.5479 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.5480 = private unnamed_addr constant [40 x i8] c"' can fail, so say what happens then: \00" +@.str.5481 = private unnamed_addr constant [20 x i8] c"(...) or , \00" +@.str.5482 = private unnamed_addr constant [28 x i8] c"(...) or { ... }, or try \00" +@.str.5483 = private unnamed_addr constant [6 x i8] c"(...)\00" +@.str.5484 = private unnamed_addr constant [6 x i8] c"call \00" +@.str.5485 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5486 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.5487 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5488 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5489 = private unnamed_addr constant [14 x i8] c"extractvalue \00" +@.str.5490 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5491 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.5492 = private unnamed_addr constant [8 x i8] c"xor i1 \00" +@.str.5493 = private unnamed_addr constant [7 x i8] c", true\00" +@.str.5494 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5495 = private unnamed_addr constant [32 x i8] c"used .ffailed on a null pointer\00" +@.str.5496 = private unnamed_addr constant [14 x i8] c"extractvalue \00" +@.str.5497 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5498 = private unnamed_addr constant [4 x i8] c", 2\00" @.str.5499 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5500 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5501 = private unnamed_addr constant [22 x i8] c"the value to look for\00" -@.str.5502 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5503 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5504 = private unnamed_addr constant [3 x i8] c"-1\00" -@.str.5505 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5506 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.5507 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5508 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5509 = private unnamed_addr constant [2 x i8] c"0\00" -@.str.5510 = private unnamed_addr constant [10 x i8] c"find.cond\00" -@.str.5511 = private unnamed_addr constant [10 x i8] c"find.body\00" -@.str.5512 = private unnamed_addr constant [9 x i8] c"find.hit\00" -@.str.5513 = private unnamed_addr constant [10 x i8] c"find.next\00" -@.str.5514 = private unnamed_addr constant [9 x i8] c"find.end\00" -@.str.5515 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5516 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" -@.str.5517 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5518 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.5519 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5520 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5521 = private unnamed_addr constant [3 x i8] c"==\00" -@.str.5522 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5523 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5524 = private unnamed_addr constant [9 x i8] c"add i64 \00" -@.str.5525 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str.5526 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5527 = private unnamed_addr constant [5 x i8] c"find\00" -@.str.5528 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.5529 = private unnamed_addr constant [14 x i8] c"icmp sge i64 \00" -@.str.5530 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.5531 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.5532 = private unnamed_addr constant [5 x i8] c"join\00" -@.str.5533 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5534 = private unnamed_addr constant [32 x i8] c"join() works on an array of str\00" +@.str.5500 = private unnamed_addr constant [29 x i8] c"used .fmsg on a null pointer\00" +@.str.5501 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.5502 = private unnamed_addr constant [14 x i8] c"extractvalue \00" +@.str.5503 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5504 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.5505 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.5506 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5507 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.5508 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5509 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5510 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.5511 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5512 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5513 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.5514 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5515 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5516 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5517 = private unnamed_addr constant [70 x i8] c"give either all fields by name (x: 1, y: 2) or none (1, 2), not a mix\00" +@.str.5518 = private unnamed_addr constant [6 x i8] c" has \00" +@.str.5519 = private unnamed_addr constant [18 x i8] c" fields, but got \00" +@.str.5520 = private unnamed_addr constant [24 x i8] c" values (or name them: \00" +@.str.5521 = private unnamed_addr constant [16 x i8] c"(field: value))\00" +@.str.5522 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5523 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5524 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5525 = private unnamed_addr constant [16 x i8] c" has no field '\00" +@.str.5526 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5527 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.5528 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5529 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5530 = private unnamed_addr constant [12 x i8] c"the field '\00" +@.str.5531 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5532 = private unnamed_addr constant [17 x i8] c"' is given twice\00" +@.str.5533 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5534 = private unnamed_addr constant [16 x i8] c"zeroinitializer\00" @.str.5535 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5536 = private unnamed_addr constant [14 x i8] c"the separator\00" -@.str.5537 = private unnamed_addr constant [31 x i8] c"call void @finch_str_join(ptr \00" -@.str.5538 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5539 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5540 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5541 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5542 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5543 = private unnamed_addr constant [7 x i8] c"insert\00" +@.str.5536 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.5537 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5538 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5539 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5540 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5541 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5542 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5543 = private unnamed_addr constant [12 x i8] c"the field '\00" @.str.5544 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5545 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.5545 = private unnamed_addr constant [2 x i8] c"'\00" @.str.5546 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5547 = private unnamed_addr constant [13 x i8] c"the position\00" -@.str.5548 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5547 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5548 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" @.str.5549 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5550 = private unnamed_addr constant [12 x i8] c"the element\00" +@.str.5550 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" @.str.5551 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5552 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.5552 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" @.str.5553 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5554 = private unnamed_addr constant [37 x i8] c"call void @finch_arr_insert_gap(ptr \00" -@.str.5555 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5556 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5557 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5558 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5559 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5560 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.5561 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.5562 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5563 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5564 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.5565 = private unnamed_addr constant [7 x i8] c"remove\00" +@.str.5554 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" +@.str.5555 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5556 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" +@.str.5557 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5558 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" +@.str.5559 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5560 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.5561 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5562 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.5563 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5564 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5565 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" @.str.5566 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5567 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.5567 = private unnamed_addr constant [17 x i8] c"the default of '\00" @.str.5568 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5569 = private unnamed_addr constant [13 x i8] c"the position\00" -@.str.5570 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5571 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.5572 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.5573 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5574 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5575 = private unnamed_addr constant [37 x i8] c"call void @finch_arr_remove_gap(ptr \00" -@.str.5576 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5577 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5578 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5579 = private unnamed_addr constant [7 x i8] c"resize\00" -@.str.5580 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5581 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.5582 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5583 = private unnamed_addr constant [15 x i8] c"the new length\00" -@.str.5584 = private unnamed_addr constant [33 x i8] c"call void @finch_arr_resize(ptr \00" -@.str.5585 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5586 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5587 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5588 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.5589 = private unnamed_addr constant [8 x i8] c"reverse\00" -@.str.5590 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5591 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.5592 = private unnamed_addr constant [10 x i8] c"sdiv i64 \00" -@.str.5593 = private unnamed_addr constant [4 x i8] c", 2\00" -@.str.5594 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.5595 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5596 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5597 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5598 = private unnamed_addr constant [9 x i8] c"sub i64 \00" -@.str.5599 = private unnamed_addr constant [9 x i8] c"sub i64 \00" -@.str.5600 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str.5601 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5602 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5603 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.5604 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5605 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5606 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.5607 = private unnamed_addr constant [6 x i8] c"slice\00" -@.str.5608 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5609 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.5569 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.5570 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5571 = private unnamed_addr constant [31 x i8] c"used .module on a null pointer\00" +@.str.5572 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5573 = private unnamed_addr constant [31 x i8] c"used .tnames on a null pointer\00" +@.str.5574 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5575 = private unnamed_addr constant [30 x i8] c"used .targs on a null pointer\00" +@.str.5576 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5577 = private unnamed_addr constant [31 x i8] c"used .scopes on a null pointer\00" +@.str.5578 = private unnamed_addr constant [13 x i8] c"insertvalue \00" +@.str.5579 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5580 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5581 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5582 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5583 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5584 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5585 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" +@.str.5586 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5587 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5588 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5589 = private unnamed_addr constant [4 x i8] c"var\00" +@.str.5590 = private unnamed_addr constant [39 x i8] c"there is no variable or module named '\00" +@.str.5591 = private unnamed_addr constant [33 x i8] c"' (to use a module, add import \00" +@.str.5592 = private unnamed_addr constant [14 x i8] c" at the top)\00" +@.str.5593 = private unnamed_addr constant [2 x i8] c".\00" +@.str.5594 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5595 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5596 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5597 = private unnamed_addr constant [2 x i8] c".\00" +@.str.5598 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5599 = private unnamed_addr constant [13 x i8] c"the module '\00" +@.str.5600 = private unnamed_addr constant [36 x i8] c"' has no function or struct named '\00" +@.str.5601 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.5602 = private unnamed_addr constant [5 x i8] c"push\00" +@.str.5603 = private unnamed_addr constant [4 x i8] c"pop\00" +@.str.5604 = private unnamed_addr constant [7 x i8] c"insert\00" +@.str.5605 = private unnamed_addr constant [7 x i8] c"remove\00" +@.str.5606 = private unnamed_addr constant [6 x i8] c"clear\00" +@.str.5607 = private unnamed_addr constant [7 x i8] c"resize\00" +@.str.5608 = private unnamed_addr constant [5 x i8] c"sort\00" +@.str.5609 = private unnamed_addr constant [8 x i8] c"reverse\00" @.str.5610 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5611 = private unnamed_addr constant [10 x i8] c"the start\00" -@.str.5612 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5613 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.5614 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5615 = private unnamed_addr constant [8 x i8] c"the end\00" -@.str.5616 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5617 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" -@.str.5618 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.5619 = private unnamed_addr constant [14 x i8] c"icmp sgt i64 \00" -@.str.5620 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5621 = private unnamed_addr constant [14 x i8] c"icmp sgt i64 \00" -@.str.5622 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5623 = private unnamed_addr constant [7 x i8] c"or i1 \00" -@.str.5624 = private unnamed_addr constant [7 x i8] c"or i1 \00" -@.str.5625 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5626 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5627 = private unnamed_addr constant [34 x i8] c"slice(start, end) is out of range\00" -@.str.5628 = private unnamed_addr constant [9 x i8] c"sub i64 \00" -@.str.5629 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5630 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5631 = private unnamed_addr constant [31 x i8] c"call void @finch_arr_make(ptr \00" -@.str.5632 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5633 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5634 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5635 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.5636 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.5637 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.5638 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5639 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5611 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.5612 = private unnamed_addr constant [6 x i8] c"array\00" +@.str.5613 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5614 = private unnamed_addr constant [64 x i8] c"() would change a temporary array; store it in a variable first\00" +@.str.5615 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5616 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5617 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.5618 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5619 = private unnamed_addr constant [62 x i8] c"() would change a temporary map; store it in a variable first\00" +@.str.5620 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5621 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5622 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5623 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.5624 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5625 = private unnamed_addr constant [13 x i8] c"icmp eq ptr \00" +@.str.5626 = private unnamed_addr constant [7 x i8] c", null\00" +@.str.5627 = private unnamed_addr constant [9 x i8] c"called .\00" +@.str.5628 = private unnamed_addr constant [21 x i8] c"() on a null pointer\00" +@.str.5629 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5630 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.5631 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.5632 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.5633 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.5634 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.5635 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5636 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.5637 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5638 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5639 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" @.str.5640 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5641 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.5642 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5643 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5644 = private unnamed_addr constant [9 x i8] c"add i64 \00" -@.str.5645 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5646 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5647 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5648 = private unnamed_addr constant [5 x i8] c"sort\00" -@.str.5649 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.5650 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5651 = private unnamed_addr constant [48 x i8] c"sort() works on arrays of numbers, chars or str\00" -@.str.5652 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5653 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.5654 = private unnamed_addr constant [22 x i8] c"call void @qsort(ptr \00" -@.str.5655 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5656 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5657 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5658 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5659 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.5660 = private unnamed_addr constant [25 x i8] c"an array has no method '\00" -@.str.5661 = private unnamed_addr constant [97 x i8] c"' (it has: push, pop, insert, remove, clear, resize, find, contains, join, slice, reverse, sort)\00" -@.str.5662 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5663 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.5664 = private unnamed_addr constant [47 x i8] c"getelementptr inbounds { ptr, i64, i64 }, ptr \00" -@.str.5665 = private unnamed_addr constant [15 x i8] c", i32 0, i32 1\00" -@.str.5666 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.5667 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" -@.str.5668 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5669 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" -@.str.5670 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.5671 = private unnamed_addr constant [11 x i8] c"select i1 \00" -@.str.5672 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5673 = private unnamed_addr constant [11 x i8] c"select i1 \00" -@.str.5674 = private unnamed_addr constant [14 x i8] c", i64 0, i64 \00" -@.str.5675 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5676 = private unnamed_addr constant [9 x i8] c"sub i64 \00" -@.str.5677 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5678 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" -@.str.5679 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5641 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5642 = private unnamed_addr constant [32 x i8] c"used .structs on a null pointer\00" +@.str.5643 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5644 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5645 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.5646 = private unnamed_addr constant [5 x i8] c"the \00" +@.str.5647 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5648 = private unnamed_addr constant [35 x i8] c" has no methods; add one with fn \00" +@.str.5649 = private unnamed_addr constant [2 x i8] c".\00" +@.str.5650 = private unnamed_addr constant [14 x i8] c"(...) { ... }\00" +@.str.5651 = private unnamed_addr constant [5 x i8] c"the \00" +@.str.5652 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5653 = private unnamed_addr constant [17 x i8] c" has no method '\00" +@.str.5654 = private unnamed_addr constant [12 x i8] c"' (it has: \00" +@.str.5655 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5656 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5657 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5658 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.5659 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5660 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.5661 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.5662 = private unnamed_addr constant [29 x i8] c"() would change a temporary \00" +@.str.5663 = private unnamed_addr constant [31 x i8] c"; store it in a variable first\00" +@.str.5664 = private unnamed_addr constant [20 x i8] c"the loop variable '\00" +@.str.5665 = private unnamed_addr constant [19 x i8] c"' can't be changed\00" +@.str.5666 = private unnamed_addr constant [2 x i8] c".\00" +@.str.5667 = private unnamed_addr constant [16 x i8] c" has no methods\00" +@.str.5668 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5669 = private unnamed_addr constant [47 x i8] c"getelementptr inbounds { ptr, i64, i64 }, ptr \00" +@.str.5670 = private unnamed_addr constant [15 x i8] c", i32 0, i32 1\00" +@.str.5671 = private unnamed_addr constant [5 x i8] c"push\00" +@.str.5672 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5673 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5674 = private unnamed_addr constant [12 x i8] c"the element\00" +@.str.5675 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5676 = private unnamed_addr constant [9 x i8] c"add i64 \00" +@.str.5677 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.5678 = private unnamed_addr constant [34 x i8] c"call void @finch_arr_reserve(ptr \00" +@.str.5679 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str.5680 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5681 = private unnamed_addr constant [9 x i8] c"add i64 \00" -@.str.5682 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5683 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5684 = private unnamed_addr constant [12 x i8] c"@finch.cmp.\00" -@.str.5685 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5686 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" -@.str.5687 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5688 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" -@.str.5689 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5690 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5691 = private unnamed_addr constant [40 x i8] c"call i64 @finch_str_cmp(ptr %x, ptr %y)\00" -@.str.5692 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" -@.str.5693 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str.5694 = private unnamed_addr constant [3 x i8] c"%x\00" -@.str.5695 = private unnamed_addr constant [3 x i8] c"%y\00" -@.str.5696 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5697 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5698 = private unnamed_addr constant [10 x i8] c"fcmp olt \00" -@.str.5699 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5700 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5701 = private unnamed_addr constant [10 x i8] c"fcmp ogt \00" -@.str.5702 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5703 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5704 = private unnamed_addr constant [6 x i8] c"icmp \00" -@.str.5705 = private unnamed_addr constant [2 x i8] c"<\00" -@.str.5706 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5707 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5708 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5709 = private unnamed_addr constant [6 x i8] c"icmp \00" -@.str.5710 = private unnamed_addr constant [2 x i8] c">\00" -@.str.5711 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5712 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5713 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5714 = private unnamed_addr constant [9 x i8] c"sub i32 \00" -@.str.5715 = private unnamed_addr constant [9 x i8] c"zext i1 \00" -@.str.5716 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str.5717 = private unnamed_addr constant [3 x i8] c", \00" -@.str.5718 = private unnamed_addr constant [9 x i8] c"zext i1 \00" -@.str.5719 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str.5720 = private unnamed_addr constant [9 x i8] c"ret i32 \00" -@.str.5721 = private unnamed_addr constant [21 x i8] c"define internal i32 \00" -@.str.5722 = private unnamed_addr constant [17 x i8] c"(ptr %x, ptr %y)\00" -@.str.5723 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5724 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" -@.str.5725 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5726 = private unnamed_addr constant [4 x i8] c"sub\00" -@.str.5727 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5728 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.5729 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5730 = private unnamed_addr constant [10 x i8] c"the start\00" -@.str.5731 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5732 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.5733 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5734 = private unnamed_addr constant [8 x i8] c"the end\00" -@.str.5735 = private unnamed_addr constant [30 x i8] c"call void @finch_str_sub(ptr \00" -@.str.5736 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5737 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5738 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5739 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5740 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5741 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5742 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5743 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5744 = private unnamed_addr constant [5 x i8] c"find\00" -@.str.5745 = private unnamed_addr constant [9 x i8] c"contains\00" -@.str.5746 = private unnamed_addr constant [12 x i8] c"starts_with\00" -@.str.5747 = private unnamed_addr constant [10 x i8] c"ends_with\00" -@.str.5748 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5749 = private unnamed_addr constant [21 x i8] c"the text to look for\00" -@.str.5750 = private unnamed_addr constant [5 x i8] c"find\00" -@.str.5751 = private unnamed_addr constant [30 x i8] c"call i64 @finch_str_find(ptr \00" -@.str.5752 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5753 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5754 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.5755 = private unnamed_addr constant [9 x i8] c"contains\00" -@.str.5756 = private unnamed_addr constant [30 x i8] c"call i64 @finch_str_find(ptr \00" -@.str.5757 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5758 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5759 = private unnamed_addr constant [14 x i8] c"icmp sge i64 \00" -@.str.5760 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.5761 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.5762 = private unnamed_addr constant [18 x i8] c"@finch_str_starts\00" -@.str.5763 = private unnamed_addr constant [10 x i8] c"ends_with\00" -@.str.5764 = private unnamed_addr constant [16 x i8] c"@finch_str_ends\00" -@.str.5765 = private unnamed_addr constant [10 x i8] c"call i32 \00" -@.str.5766 = private unnamed_addr constant [6 x i8] c"(ptr \00" -@.str.5767 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5768 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5769 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str.5770 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str.5771 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.5772 = private unnamed_addr constant [5 x i8] c"trim\00" -@.str.5773 = private unnamed_addr constant [6 x i8] c"upper\00" -@.str.5774 = private unnamed_addr constant [6 x i8] c"lower\00" -@.str.5775 = private unnamed_addr constant [22 x i8] c"call void @finch_str_\00" -@.str.5776 = private unnamed_addr constant [6 x i8] c"(ptr \00" -@.str.5777 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5778 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5779 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5780 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5781 = private unnamed_addr constant [8 x i8] c"replace\00" -@.str.5782 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5783 = private unnamed_addr constant [20 x i8] c"the text to replace\00" -@.str.5784 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5785 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" -@.str.5786 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5787 = private unnamed_addr constant [13 x i8] c"the new text\00" -@.str.5788 = private unnamed_addr constant [34 x i8] c"call void @finch_str_replace(ptr \00" -@.str.5789 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5790 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5791 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5792 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5793 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5794 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5795 = private unnamed_addr constant [6 x i8] c"split\00" -@.str.5796 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5797 = private unnamed_addr constant [14 x i8] c"the separator\00" -@.str.5798 = private unnamed_addr constant [32 x i8] c"call void @finch_str_split(ptr \00" -@.str.5799 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5800 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5801 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5802 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5803 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5804 = private unnamed_addr constant [7 x i8] c"repeat\00" +@.str.5681 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5682 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5683 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.5684 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5685 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5686 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5687 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.5688 = private unnamed_addr constant [4 x i8] c"pop\00" +@.str.5689 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5690 = private unnamed_addr constant [13 x i8] c"icmp eq i64 \00" +@.str.5691 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.5692 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" +@.str.5693 = private unnamed_addr constant [9 x i8] c"sub i64 \00" +@.str.5694 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.5695 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5696 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.5697 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5698 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5699 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5700 = private unnamed_addr constant [6 x i8] c"clear\00" +@.str.5701 = private unnamed_addr constant [2 x i8] c"0\00" +@.str.5702 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5703 = private unnamed_addr constant [2 x i8] c"0\00" +@.str.5704 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.5705 = private unnamed_addr constant [5 x i8] c"find\00" +@.str.5706 = private unnamed_addr constant [9 x i8] c"contains\00" +@.str.5707 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5708 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5709 = private unnamed_addr constant [22 x i8] c"the value to look for\00" +@.str.5710 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5711 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5712 = private unnamed_addr constant [3 x i8] c"-1\00" +@.str.5713 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5714 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5715 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5716 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5717 = private unnamed_addr constant [2 x i8] c"0\00" +@.str.5718 = private unnamed_addr constant [10 x i8] c"find.cond\00" +@.str.5719 = private unnamed_addr constant [10 x i8] c"find.body\00" +@.str.5720 = private unnamed_addr constant [9 x i8] c"find.hit\00" +@.str.5721 = private unnamed_addr constant [10 x i8] c"find.next\00" +@.str.5722 = private unnamed_addr constant [9 x i8] c"find.end\00" +@.str.5723 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5724 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" +@.str.5725 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5726 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.5727 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5728 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5729 = private unnamed_addr constant [3 x i8] c"==\00" +@.str.5730 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5731 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5732 = private unnamed_addr constant [9 x i8] c"add i64 \00" +@.str.5733 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.5734 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5735 = private unnamed_addr constant [5 x i8] c"find\00" +@.str.5736 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.5737 = private unnamed_addr constant [14 x i8] c"icmp sge i64 \00" +@.str.5738 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.5739 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.5740 = private unnamed_addr constant [5 x i8] c"join\00" +@.str.5741 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5742 = private unnamed_addr constant [32 x i8] c"join() works on an array of str\00" +@.str.5743 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5744 = private unnamed_addr constant [14 x i8] c"the separator\00" +@.str.5745 = private unnamed_addr constant [31 x i8] c"call void @finch_str_join(ptr \00" +@.str.5746 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5747 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5748 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5749 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5750 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5751 = private unnamed_addr constant [7 x i8] c"insert\00" +@.str.5752 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5753 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.5754 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5755 = private unnamed_addr constant [13 x i8] c"the position\00" +@.str.5756 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5757 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5758 = private unnamed_addr constant [12 x i8] c"the element\00" +@.str.5759 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5760 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.5761 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5762 = private unnamed_addr constant [37 x i8] c"call void @finch_arr_insert_gap(ptr \00" +@.str.5763 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5764 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5765 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5766 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5767 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5768 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5769 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.5770 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5771 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5772 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.5773 = private unnamed_addr constant [7 x i8] c"remove\00" +@.str.5774 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5775 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.5776 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5777 = private unnamed_addr constant [13 x i8] c"the position\00" +@.str.5778 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5779 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5780 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.5781 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5782 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5783 = private unnamed_addr constant [37 x i8] c"call void @finch_arr_remove_gap(ptr \00" +@.str.5784 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5785 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5786 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5787 = private unnamed_addr constant [7 x i8] c"resize\00" +@.str.5788 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5789 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.5790 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5791 = private unnamed_addr constant [15 x i8] c"the new length\00" +@.str.5792 = private unnamed_addr constant [33 x i8] c"call void @finch_arr_resize(ptr \00" +@.str.5793 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5794 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5795 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5796 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.5797 = private unnamed_addr constant [8 x i8] c"reverse\00" +@.str.5798 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5799 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5800 = private unnamed_addr constant [10 x i8] c"sdiv i64 \00" +@.str.5801 = private unnamed_addr constant [4 x i8] c", 2\00" +@.str.5802 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.5803 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5804 = private unnamed_addr constant [7 x i8] c", i64 \00" @.str.5805 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5806 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.5807 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5808 = private unnamed_addr constant [10 x i8] c"the count\00" -@.str.5809 = private unnamed_addr constant [33 x i8] c"call void @finch_str_repeat(ptr \00" -@.str.5810 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5811 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str.5812 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5813 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5814 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.5815 = private unnamed_addr constant [6 x i8] c"bytes\00" -@.str.5816 = private unnamed_addr constant [37 x i8] c"call void @finch_bytes_from_str(ptr \00" -@.str.5817 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str.5818 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5819 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" -@.str.5820 = private unnamed_addr constant [3 x i8] c"u8\00" -@.str.5821 = private unnamed_addr constant [22 x i8] c"a str has no method '\00" -@.str.5822 = private unnamed_addr constant [107 x i8] c"' (it has: sub, find, contains, starts_with, ends_with, split, trim, upper, lower, replace, repeat, bytes)\00" -@.str.5823 = private unnamed_addr constant [55 x i8] c"declare void @finch_panic(ptr, i64, ptr) noreturn cold\00" -@.str.5824 = private unnamed_addr constant [66 x i8] c"declare void @finch_panic_index(ptr, i64, i64, i64) noreturn cold\00" -@.str.5825 = private unnamed_addr constant [30 x i8] c"declare ptr @finch_alloc(i64)\00" -@.str.5826 = private unnamed_addr constant [39 x i8] c"declare void @finch_str_copy(ptr, ptr)\00" -@.str.5827 = private unnamed_addr constant [34 x i8] c"declare void @finch_str_drop(ptr)\00" -@.str.5828 = private unnamed_addr constant [34 x i8] c"declare void @finch_arr_free(ptr)\00" -@.str.5829 = private unnamed_addr constant [34 x i8] c"declare void @finch_map_free(ptr)\00" -@.str.5830 = private unnamed_addr constant [33 x i8] c"declare void @finch_str_own(ptr)\00" -@.str.5831 = private unnamed_addr constant [46 x i8] c"declare void @finch_str_concat(ptr, ptr, ptr)\00" -@.str.5832 = private unnamed_addr constant [36 x i8] c"declare i32 @finch_str_eq(ptr, ptr)\00" -@.str.5833 = private unnamed_addr constant [37 x i8] c"declare i64 @finch_str_cmp(ptr, ptr)\00" -@.str.5834 = private unnamed_addr constant [43 x i8] c"declare void @finch_buf_add(ptr, ptr, i64)\00" -@.str.5835 = private unnamed_addr constant [38 x i8] c"declare void @finch_buf_int(ptr, i64)\00" -@.str.5836 = private unnamed_addr constant [39 x i8] c"declare void @finch_buf_uint(ptr, i64)\00" -@.str.5837 = private unnamed_addr constant [43 x i8] c"declare void @finch_buf_float(ptr, double)\00" -@.str.5838 = private unnamed_addr constant [39 x i8] c"declare void @finch_buf_bool(ptr, i32)\00" -@.str.5839 = private unnamed_addr constant [38 x i8] c"declare void @finch_buf_ptr(ptr, ptr)\00" -@.str.5840 = private unnamed_addr constant [43 x i8] c"declare void @finch_buf_char(ptr, i8, i32)\00" -@.str.5841 = private unnamed_addr constant [43 x i8] c"declare void @finch_buf_str(ptr, ptr, i32)\00" -@.str.5842 = private unnamed_addr constant [35 x i8] c"declare void @finch_buf_print(ptr)\00" -@.str.5843 = private unnamed_addr constant [43 x i8] c"declare void @finch_str_from_int(ptr, i64)\00" -@.str.5844 = private unnamed_addr constant [44 x i8] c"declare void @finch_str_from_uint(ptr, i64)\00" -@.str.5845 = private unnamed_addr constant [48 x i8] c"declare void @finch_str_from_float(ptr, double)\00" -@.str.5846 = private unnamed_addr constant [51 x i8] c"declare void @finch_str_from_char(ptr, i8 signext)\00" -@.str.5847 = private unnamed_addr constant [44 x i8] c"declare void @finch_str_from_bool(ptr, i32)\00" -@.str.5848 = private unnamed_addr constant [45 x i8] c"declare i64 @finch_str_to_int(ptr, ptr, i64)\00" -@.str.5849 = private unnamed_addr constant [50 x i8] c"declare double @finch_str_to_float(ptr, ptr, i64)\00" -@.str.5850 = private unnamed_addr constant [58 x i8] c"declare void @finch_str_sub(ptr, ptr, i64, i64, ptr, i64)\00" -@.str.5851 = private unnamed_addr constant [38 x i8] c"declare i64 @finch_str_find(ptr, ptr)\00" -@.str.5852 = private unnamed_addr constant [40 x i8] c"declare i32 @finch_str_starts(ptr, ptr)\00" -@.str.5853 = private unnamed_addr constant [38 x i8] c"declare i32 @finch_str_ends(ptr, ptr)\00" -@.str.5854 = private unnamed_addr constant [39 x i8] c"declare void @finch_str_trim(ptr, ptr)\00" -@.str.5855 = private unnamed_addr constant [40 x i8] c"declare void @finch_str_upper(ptr, ptr)\00" -@.str.5856 = private unnamed_addr constant [40 x i8] c"declare void @finch_str_lower(ptr, ptr)\00" -@.str.5857 = private unnamed_addr constant [52 x i8] c"declare void @finch_str_replace(ptr, ptr, ptr, ptr)\00" -@.str.5858 = private unnamed_addr constant [45 x i8] c"declare void @finch_str_split(ptr, ptr, ptr)\00" -@.str.5859 = private unnamed_addr constant [44 x i8] c"declare void @finch_str_join(ptr, ptr, ptr)\00" -@.str.5860 = private unnamed_addr constant [46 x i8] c"declare void @finch_str_repeat(ptr, ptr, i64)\00" -@.str.5861 = private unnamed_addr constant [45 x i8] c"declare void @finch_bytes_from_str(ptr, ptr)\00" -@.str.5862 = private unnamed_addr constant [53 x i8] c"declare i64 @finch_map_find(ptr, ptr, i64, i64, i32)\00" -@.str.5863 = private unnamed_addr constant [58 x i8] c"declare i64 @finch_map_slot(ptr, ptr, i64, i64, i32, ptr)\00" -@.str.5864 = private unnamed_addr constant [49 x i8] c"declare void @finch_map_remove_at(ptr, i64, i64)\00" -@.str.5865 = private unnamed_addr constant [35 x i8] c"declare void @finch_map_clear(ptr)\00" -@.str.5866 = private unnamed_addr constant [49 x i8] c"declare void @finch_map_clone_raw(ptr, ptr, i64)\00" -@.str.5867 = private unnamed_addr constant [61 x i8] c"declare void @finch_map_missing(ptr, i64, ptr) noreturn cold\00" -@.str.5868 = private unnamed_addr constant [56 x i8] c"declare void @finch_map_changed(ptr, i64) noreturn cold\00" -@.str.5869 = private unnamed_addr constant [47 x i8] c"declare void @finch_arr_reserve(ptr, i64, i64)\00" -@.str.5870 = private unnamed_addr constant [49 x i8] c"declare void @finch_arr_clone_raw(ptr, ptr, i64)\00" -@.str.5871 = private unnamed_addr constant [44 x i8] c"declare void @finch_arr_make(ptr, i64, i64)\00" -@.str.5872 = private unnamed_addr constant [46 x i8] c"declare void @finch_arr_resize(ptr, i64, i64)\00" -@.str.5873 = private unnamed_addr constant [60 x i8] c"declare void @finch_arr_insert_gap(ptr, i64, i64, ptr, i64)\00" -@.str.5874 = private unnamed_addr constant [50 x i8] c"declare void @finch_arr_remove_gap(ptr, i64, i64)\00" -@.str.5875 = private unnamed_addr constant [40 x i8] c"declare void @qsort(ptr, i64, i64, ptr)\00" -@.str.5876 = private unnamed_addr constant [40 x i8] c"declare void @finch_args(ptr, i32, ptr)\00" -@.str.5877 = private unnamed_addr constant [36 x i8] c"declare void @finch_input(ptr, ptr)\00" -@.str.5878 = private unnamed_addr constant [36 x i8] c"declare i32 @finch_file_exists(ptr)\00" -@.str.5879 = private unnamed_addr constant [46 x i8] c"declare i32 @finch_str_try_int(ptr, ptr, ptr)\00" -@.str.5880 = private unnamed_addr constant [48 x i8] c"declare i32 @finch_str_try_float(ptr, ptr, ptr)\00" -@.str.5881 = private unnamed_addr constant [48 x i8] c"declare i32 @finch_try_read_file(ptr, ptr, ptr)\00" -@.str.5882 = private unnamed_addr constant [49 x i8] c"declare i32 @finch_try_write_file(ptr, ptr, ptr)\00" -@.str.5883 = private unnamed_addr constant [45 x i8] c"declare i32 @finch_try_delete_file(ptr, ptr)\00" -@.str.5884 = private unnamed_addr constant [38 x i8] c"declare void @finch_report_error(ptr)\00" -@.str.5885 = private unnamed_addr constant [50 x i8] c"declare void @finch_read_file(ptr, ptr, ptr, i64)\00" -@.str.5886 = private unnamed_addr constant [40 x i8] c"declare i32 @finch_write_file(ptr, ptr)\00" -@.str.5887 = private unnamed_addr constant [30 x i8] c"declare i64 @finch_shell(ptr)\00" -@.str.5888 = private unnamed_addr constant [36 x i8] c"declare i32 @finch_delete_file(ptr)\00" -@.str.5889 = private unnamed_addr constant [30 x i8] c"declare i32 @printf(ptr, ...)\00" -@.str.5890 = private unnamed_addr constant [25 x i8] c"declare i32 @fflush(ptr)\00" -@.str.5891 = private unnamed_addr constant [41 x i8] c"declare void @finch_str_from_c(ptr, ptr)\00" -@.str.5892 = private unnamed_addr constant [34 x i8] c"declare void @finch_on_fatal(ptr)\00" -@.str.5893 = private unnamed_addr constant [35 x i8] c"declare ptr @finch_std_stream(i32)\00" -@.str.5894 = private unnamed_addr constant [45 x i8] c"declare void @finch_str_from_bytes(ptr, ptr)\00" -@.str.5895 = private unnamed_addr constant [33 x i8] c"declare void @exit(i32) noreturn\00" -@.str.5896 = private unnamed_addr constant [24 x i8] c"declare void @free(ptr)\00" -@.str.5897 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.5898 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.5899 = private unnamed_addr constant [53 x i8] c"; generated by the Finch compiler written in Finch\0A\0A\00" -@.str.5900 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5901 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" -@.str.5902 = private unnamed_addr constant [18 x i8] c"target triple = \22\00" -@.str.5903 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5904 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" -@.str.5905 = private unnamed_addr constant [4 x i8] c"\22\0A\0A\00" -@.str.5906 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5907 = private unnamed_addr constant [29 x i8] c"used .head on a null pointer\00" -@.str.5908 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.5909 = private unnamed_addr constant [3 x i8] c"\0A\0A\00" -@.str.5910 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.5911 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5912 = private unnamed_addr constant [30 x i8] c"used .debug on a null pointer\00" -@.str.5913 = private unnamed_addr constant [63 x i8] c"declare void @llvm.dbg.declare(metadata, metadata, metadata)\0A\0A\00" -@.str.5914 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5915 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.5916 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.5917 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5918 = private unnamed_addr constant [30 x i8] c"used .debug on a null pointer\00" -@.str.5919 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.5920 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5921 = private unnamed_addr constant [30 x i8] c"used .debug on a null pointer\00" -@.str.5922 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5923 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" -@.str.5924 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5925 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5926 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" -@.str.5927 = private unnamed_addr constant [34 x i8] c"!{i32 7, !\22Dwarf Version\22, i32 4}\00" -@.str.5928 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5929 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" -@.str.5930 = private unnamed_addr constant [39 x i8] c"!{i32 2, !\22Debug Info Version\22, i32 3}\00" +@.str.5806 = private unnamed_addr constant [9 x i8] c"sub i64 \00" +@.str.5807 = private unnamed_addr constant [9 x i8] c"sub i64 \00" +@.str.5808 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str.5809 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5810 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5811 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.5812 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5813 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5814 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.5815 = private unnamed_addr constant [6 x i8] c"slice\00" +@.str.5816 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5817 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.5818 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5819 = private unnamed_addr constant [10 x i8] c"the start\00" +@.str.5820 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5821 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.5822 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5823 = private unnamed_addr constant [8 x i8] c"the end\00" +@.str.5824 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5825 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" +@.str.5826 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.5827 = private unnamed_addr constant [14 x i8] c"icmp sgt i64 \00" +@.str.5828 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5829 = private unnamed_addr constant [14 x i8] c"icmp sgt i64 \00" +@.str.5830 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5831 = private unnamed_addr constant [7 x i8] c"or i1 \00" +@.str.5832 = private unnamed_addr constant [7 x i8] c"or i1 \00" +@.str.5833 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5834 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5835 = private unnamed_addr constant [34 x i8] c"slice(start, end) is out of range\00" +@.str.5836 = private unnamed_addr constant [9 x i8] c"sub i64 \00" +@.str.5837 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5838 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5839 = private unnamed_addr constant [31 x i8] c"call void @finch_arr_make(ptr \00" +@.str.5840 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5841 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5842 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5843 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5844 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5845 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.5846 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5847 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5848 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5849 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.5850 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5851 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5852 = private unnamed_addr constant [9 x i8] c"add i64 \00" +@.str.5853 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5854 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5855 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5856 = private unnamed_addr constant [5 x i8] c"sort\00" +@.str.5857 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.5858 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5859 = private unnamed_addr constant [48 x i8] c"sort() works on arrays of numbers, chars or str\00" +@.str.5860 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5861 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5862 = private unnamed_addr constant [22 x i8] c"call void @qsort(ptr \00" +@.str.5863 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5864 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5865 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5866 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5867 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.5868 = private unnamed_addr constant [25 x i8] c"an array has no method '\00" +@.str.5869 = private unnamed_addr constant [97 x i8] c"' (it has: push, pop, insert, remove, clear, resize, find, contains, join, slice, reverse, sort)\00" +@.str.5870 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5871 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.5872 = private unnamed_addr constant [47 x i8] c"getelementptr inbounds { ptr, i64, i64 }, ptr \00" +@.str.5873 = private unnamed_addr constant [15 x i8] c", i32 0, i32 1\00" +@.str.5874 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.5875 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" +@.str.5876 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5877 = private unnamed_addr constant [14 x i8] c"icmp slt i64 \00" +@.str.5878 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.5879 = private unnamed_addr constant [11 x i8] c"select i1 \00" +@.str.5880 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5881 = private unnamed_addr constant [11 x i8] c"select i1 \00" +@.str.5882 = private unnamed_addr constant [14 x i8] c", i64 0, i64 \00" +@.str.5883 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5884 = private unnamed_addr constant [9 x i8] c"sub i64 \00" +@.str.5885 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5886 = private unnamed_addr constant [24 x i8] c"getelementptr inbounds \00" +@.str.5887 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5888 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5889 = private unnamed_addr constant [9 x i8] c"add i64 \00" +@.str.5890 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5891 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5892 = private unnamed_addr constant [12 x i8] c"@finch.cmp.\00" +@.str.5893 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5894 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" +@.str.5895 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5896 = private unnamed_addr constant [29 x i8] c"used .done on a null pointer\00" +@.str.5897 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5898 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5899 = private unnamed_addr constant [40 x i8] c"call i64 @finch_str_cmp(ptr %x, ptr %y)\00" +@.str.5900 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" +@.str.5901 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str.5902 = private unnamed_addr constant [3 x i8] c"%x\00" +@.str.5903 = private unnamed_addr constant [3 x i8] c"%y\00" +@.str.5904 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5905 = private unnamed_addr constant [1 x i8] c"\00" +@.str.5906 = private unnamed_addr constant [10 x i8] c"fcmp olt \00" +@.str.5907 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5908 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5909 = private unnamed_addr constant [10 x i8] c"fcmp ogt \00" +@.str.5910 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5911 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5912 = private unnamed_addr constant [6 x i8] c"icmp \00" +@.str.5913 = private unnamed_addr constant [2 x i8] c"<\00" +@.str.5914 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5915 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5916 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5917 = private unnamed_addr constant [6 x i8] c"icmp \00" +@.str.5918 = private unnamed_addr constant [2 x i8] c">\00" +@.str.5919 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5920 = private unnamed_addr constant [2 x i8] c" \00" +@.str.5921 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5922 = private unnamed_addr constant [9 x i8] c"sub i32 \00" +@.str.5923 = private unnamed_addr constant [9 x i8] c"zext i1 \00" +@.str.5924 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str.5925 = private unnamed_addr constant [3 x i8] c", \00" +@.str.5926 = private unnamed_addr constant [9 x i8] c"zext i1 \00" +@.str.5927 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str.5928 = private unnamed_addr constant [9 x i8] c"ret i32 \00" +@.str.5929 = private unnamed_addr constant [21 x i8] c"define internal i32 \00" +@.str.5930 = private unnamed_addr constant [17 x i8] c"(ptr %x, ptr %y)\00" @.str.5931 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5932 = private unnamed_addr constant [32 x i8] c"used .mdfiles on a null pointer\00" -@.str.5933 = private unnamed_addr constant [20 x i8] c"!DIFile(filename: \22\00" -@.str.5934 = private unnamed_addr constant [16 x i8] c"\22, directory: \22\00" +@.str.5932 = private unnamed_addr constant [30 x i8] c"used .files on a null pointer\00" +@.str.5933 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5934 = private unnamed_addr constant [4 x i8] c"sub\00" @.str.5935 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5936 = private unnamed_addr constant [28 x i8] c"used .cwd on a null pointer\00" -@.str.5937 = private unnamed_addr constant [3 x i8] c"\22)\00" -@.str.5938 = private unnamed_addr constant [53 x i8] c"distinct !DICompileUnit(language: DW_LANG_C, file: !\00" +@.str.5936 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.5937 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5938 = private unnamed_addr constant [10 x i8] c"the start\00" @.str.5939 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5940 = private unnamed_addr constant [32 x i8] c"used .mdfiles on a null pointer\00" +@.str.5940 = private unnamed_addr constant [4 x i8] c"int\00" @.str.5941 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5942 = private unnamed_addr constant [85 x i8] c", producer: \22finch\22, isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug)\00" -@.str.5943 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5944 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" -@.str.5945 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5946 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5947 = private unnamed_addr constant [5 x i8] c"main\00" -@.str.5948 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5949 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.5950 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5951 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.5952 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5953 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5954 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5955 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.5942 = private unnamed_addr constant [8 x i8] c"the end\00" +@.str.5943 = private unnamed_addr constant [30 x i8] c"call void @finch_str_sub(ptr \00" +@.str.5944 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5945 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5946 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5947 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5948 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.5949 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5950 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5951 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5952 = private unnamed_addr constant [5 x i8] c"find\00" +@.str.5953 = private unnamed_addr constant [9 x i8] c"contains\00" +@.str.5954 = private unnamed_addr constant [12 x i8] c"starts_with\00" +@.str.5955 = private unnamed_addr constant [10 x i8] c"ends_with\00" @.str.5956 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5957 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5958 = private unnamed_addr constant [83 x i8] c"a library (--shared) has no main: the program that loads it calls its 'export fn's\00" -@.str.5959 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5960 = private unnamed_addr constant [65 x i8] c":1:1: error: there is no main function (add 'fn main() { ... }')\00" -@.str.5961 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5962 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.5963 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.5964 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5965 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.5966 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5967 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" -@.str.5968 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5969 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" -@.str.5970 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5971 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5972 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" -@.str.5973 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.5974 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5975 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.5976 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5977 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5978 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" -@.str.5979 = private unnamed_addr constant [11 x i8] c" dllexport\00" -@.str.5980 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5981 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.5982 = private unnamed_addr constant [7 x i8] c"define\00" -@.str.5983 = private unnamed_addr constant [108 x i8] c" void @finch_module_on_fatal(ptr %handler) {\0Aentry:\0A call void @finch_on_fatal(ptr %handler)\0A ret void\0A}\0A\00" -@.str.5984 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5985 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" -@.str.5986 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.5987 = private unnamed_addr constant [6 x i8] c"call \00" -@.str.5988 = private unnamed_addr constant [2 x i8] c" \00" -@.str.5989 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.5990 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5991 = private unnamed_addr constant [134 x i8] c" %args = alloca { ptr, i64, i64 }\0A call void @finch_args(ptr %args, i32 %argc, ptr %argv)\0A %a = load { ptr, i64, i64 }, ptr %args\0A\00" -@.str.5992 = private unnamed_addr constant [21 x i8] c"{ ptr, i64, i64 } %a\00" -@.str.5993 = private unnamed_addr constant [2 x i8] c")\00" -@.str.5994 = private unnamed_addr constant [13 x i8] c" ret i32 0\0A\00" -@.str.5995 = private unnamed_addr constant [6 x i8] c"%r = \00" -@.str.5996 = private unnamed_addr constant [3 x i8] c" \00" -@.str.5997 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.5998 = private unnamed_addr constant [1 x i8] c"\00" -@.str.5999 = private unnamed_addr constant [22 x i8] c" %ok = extractvalue \00" -@.str.6000 = private unnamed_addr constant [63 x i8] c" %r, 0\0A br i1 %ok, label %main.ok, label %main.bad\0Amain.bad:\0A\00" -@.str.6001 = private unnamed_addr constant [21 x i8] c" %m = extractvalue \00" -@.str.6002 = private unnamed_addr constant [79 x i8] c" %r, 2\0A %mp = alloca { ptr, i64, i64 }\0A store { ptr, i64, i64 } %m, ptr %mp\0A\00" -@.str.6003 = private unnamed_addr constant [63 x i8] c" call void @finch_report_error(ptr %mp)\0A ret i32 1\0Amain.ok:\0A\00" -@.str.6004 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.6005 = private unnamed_addr constant [21 x i8] c" %v = extractvalue \00" -@.str.6006 = private unnamed_addr constant [54 x i8] c" %r, 1\0A %code = trunc i64 %v to i32\0A ret i32 %code\0A\00" -@.str.6007 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.6008 = private unnamed_addr constant [6 x i8] c"%r = \00" -@.str.6009 = private unnamed_addr constant [47 x i8] c" %code = trunc i64 %r to i32\0A ret i32 %code\0A\00" -@.str.6010 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" -@.str.6011 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.6012 = private unnamed_addr constant [49 x i8] c"define i32 @main(i32 %argc, ptr %argv) {\0Aentry:\0A\00" -@.str.6013 = private unnamed_addr constant [3 x i8] c" \00" -@.str.6014 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6015 = private unnamed_addr constant [3 x i8] c"}\0A\00" -@.str.6016 = private unnamed_addr constant [6 x i8] c"print\00" -@.str.6017 = private unnamed_addr constant [17 x i8] c"print(a, b, ...)\00" -@.str.6018 = private unnamed_addr constant [79 x i8] c"Prints the values separated by spaces, then a new line. Works with every type.\00" -@.str.6019 = private unnamed_addr constant [6 x i8] c"input\00" -@.str.6020 = private unnamed_addr constant [32 x i8] c"input(str question = \22\22) -> str\00" -@.str.6021 = private unnamed_addr constant [78 x i8] c"Shows the question and reads one line typed by the user, without the newline.\00" -@.str.6022 = private unnamed_addr constant [10 x i8] c"read_file\00" -@.str.6023 = private unnamed_addr constant [27 x i8] c"read_file(str path) -> str\00" -@.str.6024 = private unnamed_addr constant [122 x i8] c"The whole file as text. Stops the program if it can't be read, unless handled: read_file(p) or { ... }, try read_file(p).\00" -@.str.6025 = private unnamed_addr constant [11 x i8] c"write_file\00" -@.str.6026 = private unnamed_addr constant [39 x i8] c"write_file(str path, str text) -> bool\00" -@.str.6027 = private unnamed_addr constant [84 x i8] c"Writes (replaces) the file. true if it worked; with or / try, the reason it didn't.\00" -@.str.6028 = private unnamed_addr constant [12 x i8] c"file_exists\00" -@.str.6029 = private unnamed_addr constant [30 x i8] c"file_exists(str path) -> bool\00" -@.str.6030 = private unnamed_addr constant [30 x i8] c"Is there a file at this path?\00" -@.str.6031 = private unnamed_addr constant [12 x i8] c"delete_file\00" -@.str.6032 = private unnamed_addr constant [30 x i8] c"delete_file(str path) -> bool\00" -@.str.6033 = private unnamed_addr constant [74 x i8] c"Deletes the file. true if it worked; with or / try, the reason it didn't.\00" -@.str.6034 = private unnamed_addr constant [6 x i8] c"error\00" -@.str.6035 = private unnamed_addr constant [19 x i8] c"error(str message)\00" -@.str.6036 = private unnamed_addr constant [99 x i8] c"The failure a fallible function returns: return error(\22...\22). The caller handles it with or / try.\00" -@.str.6037 = private unnamed_addr constant [6 x i8] c"shell\00" -@.str.6038 = private unnamed_addr constant [26 x i8] c"shell(str command) -> int\00" -@.str.6039 = private unnamed_addr constant [67 x i8] c"Runs a command in the system's shell and gives back its exit code.\00" -@.str.6040 = private unnamed_addr constant [5 x i8] c"exit\00" -@.str.6041 = private unnamed_addr constant [15 x i8] c"exit(int code)\00" -@.str.6042 = private unnamed_addr constant [49 x i8] c"Ends the program right away with this exit code.\00" -@.str.6043 = private unnamed_addr constant [5 x i8] c"addr\00" -@.str.6044 = private unnamed_addr constant [18 x i8] c"addr(x) -> ptr[T]\00" -@.str.6045 = private unnamed_addr constant [78 x i8] c"A pointer to a variable, field or element. addr(function) gives C a callback.\00" -@.str.6046 = private unnamed_addr constant [4 x i8] c"new\00" -@.str.6047 = private unnamed_addr constant [21 x i8] c"new(value) -> ptr[T]\00" -@.str.6048 = private unnamed_addr constant [67 x i8] c"Puts a copy of the value on the heap. Give it back with free(...).\00" -@.str.6049 = private unnamed_addr constant [5 x i8] c"free\00" -@.str.6050 = private unnamed_addr constant [12 x i8] c"free(ptr p)\00" -@.str.6051 = private unnamed_addr constant [74 x i8] c"Gives back memory from new(...) (or from C), freeing what the value owns.\00" -@.str.6052 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.6053 = private unnamed_addr constant [14 x i8] c"str(x) -> str\00" -@.str.6054 = private unnamed_addr constant [62 x i8] c"Turns a number, bool, char, []u8 or C char pointer into text.\00" -@.str.6055 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.6056 = private unnamed_addr constant [14 x i8] c"int(x) -> int\00" -@.str.6057 = private unnamed_addr constant [131 x i8] c"Converts to a whole number: cuts off fractions, parses text (stops the program if it isn't a number, unless handled: int(s) or 0).\00" -@.str.6058 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.6059 = private unnamed_addr constant [18 x i8] c"float(x) -> float\00" -@.str.6060 = private unnamed_addr constant [76 x i8] c"Converts to a decimal number; parses text (int(s) or 0.0 handles bad text).\00" -@.str.6061 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.6062 = private unnamed_addr constant [20 x i8] c"char(int n) -> char\00" -@.str.6063 = private unnamed_addr constant [30 x i8] c"The character with this code.\00" -@.str.6064 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.6065 = private unnamed_addr constant [20 x i8] c"bool(int n) -> bool\00" -@.str.6066 = private unnamed_addr constant [27 x i8] c"true for any number but 0.\00" -@.str.6067 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.6068 = private unnamed_addr constant [14 x i8] c"ptr(x) -> ptr\00" -@.str.6069 = private unnamed_addr constant [89 x i8] c"An untyped pointer: from a typed pointer, or from a number (an address or offset for C).\00" -@.str.6070 = private unnamed_addr constant [4 x i8] c"len\00" -@.str.6071 = private unnamed_addr constant [12 x i8] c".len -> int\00" -@.str.6072 = private unnamed_addr constant [24 x i8] c"The number of elements.\00" -@.str.6073 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.6074 = private unnamed_addr constant [15 x i8] c".ptr -> ptr[T]\00" -@.str.6075 = private unnamed_addr constant [41 x i8] c"The address of the first element, for C.\00" -@.str.6076 = private unnamed_addr constant [5 x i8] c"push\00" -@.str.6077 = private unnamed_addr constant [10 x i8] c"push(T x)\00" -@.str.6078 = private unnamed_addr constant [19 x i8] c"Adds x at the end.\00" -@.str.6079 = private unnamed_addr constant [4 x i8] c"pop\00" -@.str.6080 = private unnamed_addr constant [11 x i8] c"pop() -> T\00" -@.str.6081 = private unnamed_addr constant [44 x i8] c"Removes the last element and gives it back.\00" -@.str.6082 = private unnamed_addr constant [7 x i8] c"insert\00" -@.str.6083 = private unnamed_addr constant [19 x i8] c"insert(int i, T x)\00" -@.str.6084 = private unnamed_addr constant [39 x i8] c"Puts x at position i, moving the rest.\00" -@.str.6085 = private unnamed_addr constant [7 x i8] c"remove\00" -@.str.6086 = private unnamed_addr constant [19 x i8] c"remove(int i) -> T\00" -@.str.6087 = private unnamed_addr constant [38 x i8] c"Removes position i and gives it back.\00" -@.str.6088 = private unnamed_addr constant [6 x i8] c"clear\00" -@.str.6089 = private unnamed_addr constant [8 x i8] c"clear()\00" -@.str.6090 = private unnamed_addr constant [20 x i8] c"Removes everything.\00" -@.str.6091 = private unnamed_addr constant [7 x i8] c"resize\00" -@.str.6092 = private unnamed_addr constant [14 x i8] c"resize(int n)\00" -@.str.6093 = private unnamed_addr constant [47 x i8] c"Makes the array n long; new elements are zero.\00" -@.str.6094 = private unnamed_addr constant [5 x i8] c"find\00" -@.str.6095 = private unnamed_addr constant [17 x i8] c"find(T x) -> int\00" -@.str.6096 = private unnamed_addr constant [23 x i8] c"The index of x, or -1.\00" -@.str.6097 = private unnamed_addr constant [9 x i8] c"contains\00" -@.str.6098 = private unnamed_addr constant [22 x i8] c"contains(T x) -> bool\00" -@.str.6099 = private unnamed_addr constant [19 x i8] c"Is x in the array?\00" -@.str.6100 = private unnamed_addr constant [5 x i8] c"sort\00" -@.str.6101 = private unnamed_addr constant [7 x i8] c"sort()\00" -@.str.6102 = private unnamed_addr constant [38 x i8] c"Sorts in place (numbers, chars, str).\00" -@.str.6103 = private unnamed_addr constant [8 x i8] c"reverse\00" -@.str.6104 = private unnamed_addr constant [10 x i8] c"reverse()\00" -@.str.6105 = private unnamed_addr constant [19 x i8] c"Reverses in place.\00" -@.str.6106 = private unnamed_addr constant [6 x i8] c"slice\00" -@.str.6107 = private unnamed_addr constant [33 x i8] c"slice(int start, int end) -> []T\00" -@.str.6108 = private unnamed_addr constant [46 x i8] c"A new array with the elements start to end-1.\00" -@.str.6109 = private unnamed_addr constant [5 x i8] c"join\00" -@.str.6110 = private unnamed_addr constant [21 x i8] c"join(str sep) -> str\00" -@.str.6111 = private unnamed_addr constant [48 x i8] c"For []str: one text with sep between the parts.\00" -@.str.6112 = private unnamed_addr constant [4 x i8] c"len\00" -@.str.6113 = private unnamed_addr constant [12 x i8] c".len -> int\00" -@.str.6114 = private unnamed_addr constant [21 x i8] c"The number of bytes.\00" -@.str.6115 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.6116 = private unnamed_addr constant [18 x i8] c".ptr -> ptr[char]\00" -@.str.6117 = private unnamed_addr constant [60 x i8] c"The address of the text, for C (valid while the str lives).\00" -@.str.6118 = private unnamed_addr constant [4 x i8] c"sub\00" -@.str.6119 = private unnamed_addr constant [31 x i8] c"sub(int start, int end) -> str\00" -@.str.6120 = private unnamed_addr constant [30 x i8] c"The part from start to end-1.\00" -@.str.6121 = private unnamed_addr constant [5 x i8] c"find\00" -@.str.6122 = private unnamed_addr constant [19 x i8] c"find(str t) -> int\00" -@.str.6123 = private unnamed_addr constant [23 x i8] c"Where t starts, or -1.\00" -@.str.6124 = private unnamed_addr constant [9 x i8] c"contains\00" -@.str.6125 = private unnamed_addr constant [24 x i8] c"contains(str t) -> bool\00" -@.str.6126 = private unnamed_addr constant [25 x i8] c"Does the text contain t?\00" -@.str.6127 = private unnamed_addr constant [12 x i8] c"starts_with\00" -@.str.6128 = private unnamed_addr constant [27 x i8] c"starts_with(str t) -> bool\00" -@.str.6129 = private unnamed_addr constant [28 x i8] c"Does the text start with t?\00" -@.str.6130 = private unnamed_addr constant [10 x i8] c"ends_with\00" -@.str.6131 = private unnamed_addr constant [25 x i8] c"ends_with(str t) -> bool\00" -@.str.6132 = private unnamed_addr constant [26 x i8] c"Does the text end with t?\00" -@.str.6133 = private unnamed_addr constant [6 x i8] c"split\00" -@.str.6134 = private unnamed_addr constant [24 x i8] c"split(str sep) -> []str\00" -@.str.6135 = private unnamed_addr constant [63 x i8] c"The parts between each sep; split(\22\22) gives single characters.\00" -@.str.6136 = private unnamed_addr constant [5 x i8] c"trim\00" -@.str.6137 = private unnamed_addr constant [14 x i8] c"trim() -> str\00" -@.str.6138 = private unnamed_addr constant [42 x i8] c"Without spaces and newlines at both ends.\00" -@.str.6139 = private unnamed_addr constant [6 x i8] c"upper\00" -@.str.6140 = private unnamed_addr constant [15 x i8] c"upper() -> str\00" -@.str.6141 = private unnamed_addr constant [25 x i8] c"With a-z changed to A-Z.\00" -@.str.6142 = private unnamed_addr constant [6 x i8] c"lower\00" -@.str.6143 = private unnamed_addr constant [15 x i8] c"lower() -> str\00" -@.str.6144 = private unnamed_addr constant [25 x i8] c"With A-Z changed to a-z.\00" -@.str.6145 = private unnamed_addr constant [8 x i8] c"replace\00" -@.str.6146 = private unnamed_addr constant [33 x i8] c"replace(str from, str to) -> str\00" -@.str.6147 = private unnamed_addr constant [27 x i8] c"Every from replaced by to.\00" -@.str.6148 = private unnamed_addr constant [7 x i8] c"repeat\00" -@.str.6149 = private unnamed_addr constant [21 x i8] c"repeat(int n) -> str\00" -@.str.6150 = private unnamed_addr constant [18 x i8] c"The text n times.\00" -@.str.6151 = private unnamed_addr constant [6 x i8] c"bytes\00" -@.str.6152 = private unnamed_addr constant [16 x i8] c"bytes() -> []u8\00" -@.str.6153 = private unnamed_addr constant [23 x i8] c"The bytes of the text.\00" -@.str.6154 = private unnamed_addr constant [4 x i8] c"len\00" -@.str.6155 = private unnamed_addr constant [12 x i8] c".len -> int\00" -@.str.6156 = private unnamed_addr constant [20 x i8] c"The number of keys.\00" -@.str.6157 = private unnamed_addr constant [4 x i8] c"has\00" -@.str.6158 = private unnamed_addr constant [19 x i8] c"has(K key) -> bool\00" -@.str.6159 = private unnamed_addr constant [23 x i8] c"Is the key in the map?\00" -@.str.6160 = private unnamed_addr constant [4 x i8] c"get\00" -@.str.6161 = private unnamed_addr constant [27 x i8] c"get(K key, V default) -> V\00" -@.str.6162 = private unnamed_addr constant [54 x i8] c"The value for key, or default if the key isn't there.\00" -@.str.6163 = private unnamed_addr constant [7 x i8] c"remove\00" -@.str.6164 = private unnamed_addr constant [22 x i8] c"remove(K key) -> bool\00" -@.str.6165 = private unnamed_addr constant [53 x i8] c"Removes the key and its value; true if it was there.\00" -@.str.6166 = private unnamed_addr constant [6 x i8] c"clear\00" -@.str.6167 = private unnamed_addr constant [8 x i8] c"clear()\00" -@.str.6168 = private unnamed_addr constant [20 x i8] c"Removes everything.\00" -@.str.6169 = private unnamed_addr constant [5 x i8] c"keys\00" -@.str.6170 = private unnamed_addr constant [14 x i8] c"keys() -> []K\00" -@.str.6171 = private unnamed_addr constant [40 x i8] c"The keys, in the order they were added.\00" -@.str.6172 = private unnamed_addr constant [7 x i8] c"values\00" -@.str.6173 = private unnamed_addr constant [16 x i8] c"values() -> []V\00" -@.str.6174 = private unnamed_addr constant [48 x i8] c"The values, in the order their keys were added.\00" -@.str.6175 = private unnamed_addr constant [3 x i8] c"fn\00" -@.str.6176 = private unnamed_addr constant [7 x i8] c"return\00" -@.str.6177 = private unnamed_addr constant [3 x i8] c"if\00" -@.str.6178 = private unnamed_addr constant [5 x i8] c"else\00" -@.str.6179 = private unnamed_addr constant [6 x i8] c"while\00" -@.str.6180 = private unnamed_addr constant [4 x i8] c"for\00" -@.str.6181 = private unnamed_addr constant [3 x i8] c"in\00" -@.str.6182 = private unnamed_addr constant [6 x i8] c"break\00" -@.str.6183 = private unnamed_addr constant [9 x i8] c"continue\00" -@.str.6184 = private unnamed_addr constant [5 x i8] c"true\00" -@.str.6185 = private unnamed_addr constant [6 x i8] c"false\00" -@.str.6186 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.6187 = private unnamed_addr constant [7 x i8] c"import\00" -@.str.6188 = private unnamed_addr constant [5 x i8] c"link\00" -@.str.6189 = private unnamed_addr constant [7 x i8] c"struct\00" -@.str.6190 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str.6191 = private unnamed_addr constant [6 x i8] c"match\00" -@.str.6192 = private unnamed_addr constant [7 x i8] c"export\00" -@.str.6193 = private unnamed_addr constant [6 x i8] c"defer\00" -@.str.6194 = private unnamed_addr constant [3 x i8] c"or\00" -@.str.6195 = private unnamed_addr constant [4 x i8] c"try\00" -@.str.6196 = private unnamed_addr constant [5 x i8] c"self\00" -@.str.6197 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.6198 = private unnamed_addr constant [6 x i8] c"float\00" -@.str.6199 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.6200 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.6201 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.6202 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.6203 = private unnamed_addr constant [4 x i8] c"map\00" -@.str.6204 = private unnamed_addr constant [3 x i8] c"i8\00" -@.str.6205 = private unnamed_addr constant [4 x i8] c"i16\00" -@.str.6206 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.6207 = private unnamed_addr constant [4 x i8] c"i64\00" -@.str.6208 = private unnamed_addr constant [3 x i8] c"u8\00" -@.str.6209 = private unnamed_addr constant [4 x i8] c"u16\00" -@.str.6210 = private unnamed_addr constant [4 x i8] c"u32\00" -@.str.6211 = private unnamed_addr constant [4 x i8] c"u64\00" -@.str.6212 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.6213 = private unnamed_addr constant [4 x i8] c"f64\00" -@.str.6214 = private unnamed_addr constant [10 x i8] c"```finch\0A\00" -@.str.6215 = private unnamed_addr constant [6 x i8] c"\0A```\0A\00" +@.str.5957 = private unnamed_addr constant [21 x i8] c"the text to look for\00" +@.str.5958 = private unnamed_addr constant [5 x i8] c"find\00" +@.str.5959 = private unnamed_addr constant [30 x i8] c"call i64 @finch_str_find(ptr \00" +@.str.5960 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5961 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5962 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.5963 = private unnamed_addr constant [9 x i8] c"contains\00" +@.str.5964 = private unnamed_addr constant [30 x i8] c"call i64 @finch_str_find(ptr \00" +@.str.5965 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5966 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5967 = private unnamed_addr constant [14 x i8] c"icmp sge i64 \00" +@.str.5968 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.5969 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.5970 = private unnamed_addr constant [18 x i8] c"@finch_str_starts\00" +@.str.5971 = private unnamed_addr constant [10 x i8] c"ends_with\00" +@.str.5972 = private unnamed_addr constant [16 x i8] c"@finch_str_ends\00" +@.str.5973 = private unnamed_addr constant [10 x i8] c"call i32 \00" +@.str.5974 = private unnamed_addr constant [6 x i8] c"(ptr \00" +@.str.5975 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5976 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5977 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str.5978 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str.5979 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.5980 = private unnamed_addr constant [5 x i8] c"trim\00" +@.str.5981 = private unnamed_addr constant [6 x i8] c"upper\00" +@.str.5982 = private unnamed_addr constant [6 x i8] c"lower\00" +@.str.5983 = private unnamed_addr constant [22 x i8] c"call void @finch_str_\00" +@.str.5984 = private unnamed_addr constant [6 x i8] c"(ptr \00" +@.str.5985 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5986 = private unnamed_addr constant [2 x i8] c")\00" +@.str.5987 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.5988 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.5989 = private unnamed_addr constant [8 x i8] c"replace\00" +@.str.5990 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5991 = private unnamed_addr constant [20 x i8] c"the text to replace\00" +@.str.5992 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5993 = private unnamed_addr constant [32 x i8] c"used .pending on a null pointer\00" +@.str.5994 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.5995 = private unnamed_addr constant [13 x i8] c"the new text\00" +@.str.5996 = private unnamed_addr constant [34 x i8] c"call void @finch_str_replace(ptr \00" +@.str.5997 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5998 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.5999 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.6000 = private unnamed_addr constant [2 x i8] c")\00" +@.str.6001 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.6002 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.6003 = private unnamed_addr constant [6 x i8] c"split\00" +@.str.6004 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6005 = private unnamed_addr constant [14 x i8] c"the separator\00" +@.str.6006 = private unnamed_addr constant [32 x i8] c"call void @finch_str_split(ptr \00" +@.str.6007 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.6008 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.6009 = private unnamed_addr constant [2 x i8] c")\00" +@.str.6010 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.6011 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.6012 = private unnamed_addr constant [7 x i8] c"repeat\00" +@.str.6013 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6014 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.6015 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6016 = private unnamed_addr constant [10 x i8] c"the count\00" +@.str.6017 = private unnamed_addr constant [33 x i8] c"call void @finch_str_repeat(ptr \00" +@.str.6018 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.6019 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str.6020 = private unnamed_addr constant [2 x i8] c")\00" +@.str.6021 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.6022 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.6023 = private unnamed_addr constant [6 x i8] c"bytes\00" +@.str.6024 = private unnamed_addr constant [37 x i8] c"call void @finch_bytes_from_str(ptr \00" +@.str.6025 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str.6026 = private unnamed_addr constant [2 x i8] c")\00" +@.str.6027 = private unnamed_addr constant [18 x i8] c"{ ptr, i64, i64 }\00" +@.str.6028 = private unnamed_addr constant [3 x i8] c"u8\00" +@.str.6029 = private unnamed_addr constant [22 x i8] c"a str has no method '\00" +@.str.6030 = private unnamed_addr constant [107 x i8] c"' (it has: sub, find, contains, starts_with, ends_with, split, trim, upper, lower, replace, repeat, bytes)\00" +@.str.6031 = private unnamed_addr constant [55 x i8] c"declare void @finch_panic(ptr, i64, ptr) noreturn cold\00" +@.str.6032 = private unnamed_addr constant [66 x i8] c"declare void @finch_panic_index(ptr, i64, i64, i64) noreturn cold\00" +@.str.6033 = private unnamed_addr constant [30 x i8] c"declare ptr @finch_alloc(i64)\00" +@.str.6034 = private unnamed_addr constant [39 x i8] c"declare void @finch_str_copy(ptr, ptr)\00" +@.str.6035 = private unnamed_addr constant [34 x i8] c"declare void @finch_str_drop(ptr)\00" +@.str.6036 = private unnamed_addr constant [34 x i8] c"declare void @finch_arr_free(ptr)\00" +@.str.6037 = private unnamed_addr constant [34 x i8] c"declare void @finch_map_free(ptr)\00" +@.str.6038 = private unnamed_addr constant [33 x i8] c"declare void @finch_str_own(ptr)\00" +@.str.6039 = private unnamed_addr constant [46 x i8] c"declare void @finch_str_concat(ptr, ptr, ptr)\00" +@.str.6040 = private unnamed_addr constant [36 x i8] c"declare i32 @finch_str_eq(ptr, ptr)\00" +@.str.6041 = private unnamed_addr constant [37 x i8] c"declare i64 @finch_str_cmp(ptr, ptr)\00" +@.str.6042 = private unnamed_addr constant [43 x i8] c"declare void @finch_buf_add(ptr, ptr, i64)\00" +@.str.6043 = private unnamed_addr constant [38 x i8] c"declare void @finch_buf_int(ptr, i64)\00" +@.str.6044 = private unnamed_addr constant [39 x i8] c"declare void @finch_buf_uint(ptr, i64)\00" +@.str.6045 = private unnamed_addr constant [43 x i8] c"declare void @finch_buf_float(ptr, double)\00" +@.str.6046 = private unnamed_addr constant [39 x i8] c"declare void @finch_buf_bool(ptr, i32)\00" +@.str.6047 = private unnamed_addr constant [38 x i8] c"declare void @finch_buf_ptr(ptr, ptr)\00" +@.str.6048 = private unnamed_addr constant [43 x i8] c"declare void @finch_buf_char(ptr, i8, i32)\00" +@.str.6049 = private unnamed_addr constant [43 x i8] c"declare void @finch_buf_str(ptr, ptr, i32)\00" +@.str.6050 = private unnamed_addr constant [35 x i8] c"declare void @finch_buf_print(ptr)\00" +@.str.6051 = private unnamed_addr constant [43 x i8] c"declare void @finch_str_from_int(ptr, i64)\00" +@.str.6052 = private unnamed_addr constant [44 x i8] c"declare void @finch_str_from_uint(ptr, i64)\00" +@.str.6053 = private unnamed_addr constant [48 x i8] c"declare void @finch_str_from_float(ptr, double)\00" +@.str.6054 = private unnamed_addr constant [51 x i8] c"declare void @finch_str_from_char(ptr, i8 signext)\00" +@.str.6055 = private unnamed_addr constant [44 x i8] c"declare void @finch_str_from_bool(ptr, i32)\00" +@.str.6056 = private unnamed_addr constant [45 x i8] c"declare i64 @finch_str_to_int(ptr, ptr, i64)\00" +@.str.6057 = private unnamed_addr constant [50 x i8] c"declare double @finch_str_to_float(ptr, ptr, i64)\00" +@.str.6058 = private unnamed_addr constant [58 x i8] c"declare void @finch_str_sub(ptr, ptr, i64, i64, ptr, i64)\00" +@.str.6059 = private unnamed_addr constant [38 x i8] c"declare i64 @finch_str_find(ptr, ptr)\00" +@.str.6060 = private unnamed_addr constant [40 x i8] c"declare i32 @finch_str_starts(ptr, ptr)\00" +@.str.6061 = private unnamed_addr constant [38 x i8] c"declare i32 @finch_str_ends(ptr, ptr)\00" +@.str.6062 = private unnamed_addr constant [39 x i8] c"declare void @finch_str_trim(ptr, ptr)\00" +@.str.6063 = private unnamed_addr constant [40 x i8] c"declare void @finch_str_upper(ptr, ptr)\00" +@.str.6064 = private unnamed_addr constant [40 x i8] c"declare void @finch_str_lower(ptr, ptr)\00" +@.str.6065 = private unnamed_addr constant [52 x i8] c"declare void @finch_str_replace(ptr, ptr, ptr, ptr)\00" +@.str.6066 = private unnamed_addr constant [45 x i8] c"declare void @finch_str_split(ptr, ptr, ptr)\00" +@.str.6067 = private unnamed_addr constant [44 x i8] c"declare void @finch_str_join(ptr, ptr, ptr)\00" +@.str.6068 = private unnamed_addr constant [46 x i8] c"declare void @finch_str_repeat(ptr, ptr, i64)\00" +@.str.6069 = private unnamed_addr constant [45 x i8] c"declare void @finch_bytes_from_str(ptr, ptr)\00" +@.str.6070 = private unnamed_addr constant [53 x i8] c"declare i64 @finch_map_find(ptr, ptr, i64, i64, i32)\00" +@.str.6071 = private unnamed_addr constant [58 x i8] c"declare i64 @finch_map_slot(ptr, ptr, i64, i64, i32, ptr)\00" +@.str.6072 = private unnamed_addr constant [49 x i8] c"declare void @finch_map_remove_at(ptr, i64, i64)\00" +@.str.6073 = private unnamed_addr constant [35 x i8] c"declare void @finch_map_clear(ptr)\00" +@.str.6074 = private unnamed_addr constant [49 x i8] c"declare void @finch_map_clone_raw(ptr, ptr, i64)\00" +@.str.6075 = private unnamed_addr constant [61 x i8] c"declare void @finch_map_missing(ptr, i64, ptr) noreturn cold\00" +@.str.6076 = private unnamed_addr constant [56 x i8] c"declare void @finch_map_changed(ptr, i64) noreturn cold\00" +@.str.6077 = private unnamed_addr constant [47 x i8] c"declare void @finch_arr_reserve(ptr, i64, i64)\00" +@.str.6078 = private unnamed_addr constant [49 x i8] c"declare void @finch_arr_clone_raw(ptr, ptr, i64)\00" +@.str.6079 = private unnamed_addr constant [44 x i8] c"declare void @finch_arr_make(ptr, i64, i64)\00" +@.str.6080 = private unnamed_addr constant [46 x i8] c"declare void @finch_arr_resize(ptr, i64, i64)\00" +@.str.6081 = private unnamed_addr constant [60 x i8] c"declare void @finch_arr_insert_gap(ptr, i64, i64, ptr, i64)\00" +@.str.6082 = private unnamed_addr constant [50 x i8] c"declare void @finch_arr_remove_gap(ptr, i64, i64)\00" +@.str.6083 = private unnamed_addr constant [40 x i8] c"declare void @qsort(ptr, i64, i64, ptr)\00" +@.str.6084 = private unnamed_addr constant [40 x i8] c"declare void @finch_args(ptr, i32, ptr)\00" +@.str.6085 = private unnamed_addr constant [36 x i8] c"declare void @finch_input(ptr, ptr)\00" +@.str.6086 = private unnamed_addr constant [36 x i8] c"declare i32 @finch_file_exists(ptr)\00" +@.str.6087 = private unnamed_addr constant [46 x i8] c"declare i32 @finch_str_try_int(ptr, ptr, ptr)\00" +@.str.6088 = private unnamed_addr constant [48 x i8] c"declare i32 @finch_str_try_float(ptr, ptr, ptr)\00" +@.str.6089 = private unnamed_addr constant [48 x i8] c"declare i32 @finch_try_read_file(ptr, ptr, ptr)\00" +@.str.6090 = private unnamed_addr constant [49 x i8] c"declare i32 @finch_try_write_file(ptr, ptr, ptr)\00" +@.str.6091 = private unnamed_addr constant [45 x i8] c"declare i32 @finch_try_delete_file(ptr, ptr)\00" +@.str.6092 = private unnamed_addr constant [38 x i8] c"declare void @finch_report_error(ptr)\00" +@.str.6093 = private unnamed_addr constant [50 x i8] c"declare void @finch_read_file(ptr, ptr, ptr, i64)\00" +@.str.6094 = private unnamed_addr constant [40 x i8] c"declare i32 @finch_write_file(ptr, ptr)\00" +@.str.6095 = private unnamed_addr constant [30 x i8] c"declare i64 @finch_shell(ptr)\00" +@.str.6096 = private unnamed_addr constant [36 x i8] c"declare i32 @finch_delete_file(ptr)\00" +@.str.6097 = private unnamed_addr constant [30 x i8] c"declare i32 @printf(ptr, ...)\00" +@.str.6098 = private unnamed_addr constant [25 x i8] c"declare i32 @fflush(ptr)\00" +@.str.6099 = private unnamed_addr constant [41 x i8] c"declare void @finch_str_from_c(ptr, ptr)\00" +@.str.6100 = private unnamed_addr constant [34 x i8] c"declare void @finch_on_fatal(ptr)\00" +@.str.6101 = private unnamed_addr constant [35 x i8] c"declare ptr @finch_std_stream(i32)\00" +@.str.6102 = private unnamed_addr constant [45 x i8] c"declare void @finch_str_from_bytes(ptr, ptr)\00" +@.str.6103 = private unnamed_addr constant [33 x i8] c"declare void @exit(i32) noreturn\00" +@.str.6104 = private unnamed_addr constant [24 x i8] c"declare void @free(ptr)\00" +@.str.6105 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6106 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6107 = private unnamed_addr constant [53 x i8] c"; generated by the Finch compiler written in Finch\0A\0A\00" +@.str.6108 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6109 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" +@.str.6110 = private unnamed_addr constant [18 x i8] c"target triple = \22\00" +@.str.6111 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6112 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" +@.str.6113 = private unnamed_addr constant [4 x i8] c"\22\0A\0A\00" +@.str.6114 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6115 = private unnamed_addr constant [29 x i8] c"used .head on a null pointer\00" +@.str.6116 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6117 = private unnamed_addr constant [3 x i8] c"\0A\0A\00" +@.str.6118 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6119 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6120 = private unnamed_addr constant [30 x i8] c"used .debug on a null pointer\00" +@.str.6121 = private unnamed_addr constant [63 x i8] c"declare void @llvm.dbg.declare(metadata, metadata, metadata)\0A\0A\00" +@.str.6122 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6123 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6124 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6125 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6126 = private unnamed_addr constant [30 x i8] c"used .debug on a null pointer\00" +@.str.6127 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6128 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6129 = private unnamed_addr constant [30 x i8] c"used .debug on a null pointer\00" +@.str.6130 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6131 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" +@.str.6132 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6133 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6134 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" +@.str.6135 = private unnamed_addr constant [34 x i8] c"!{i32 7, !\22Dwarf Version\22, i32 4}\00" +@.str.6136 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6137 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" +@.str.6138 = private unnamed_addr constant [39 x i8] c"!{i32 2, !\22Debug Info Version\22, i32 3}\00" +@.str.6139 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6140 = private unnamed_addr constant [32 x i8] c"used .mdfiles on a null pointer\00" +@.str.6141 = private unnamed_addr constant [20 x i8] c"!DIFile(filename: \22\00" +@.str.6142 = private unnamed_addr constant [16 x i8] c"\22, directory: \22\00" +@.str.6143 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6144 = private unnamed_addr constant [28 x i8] c"used .cwd on a null pointer\00" +@.str.6145 = private unnamed_addr constant [3 x i8] c"\22)\00" +@.str.6146 = private unnamed_addr constant [53 x i8] c"distinct !DICompileUnit(language: DW_LANG_C, file: !\00" +@.str.6147 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6148 = private unnamed_addr constant [32 x i8] c"used .mdfiles on a null pointer\00" +@.str.6149 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6150 = private unnamed_addr constant [85 x i8] c", producer: \22finch\22, isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug)\00" +@.str.6151 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6152 = private unnamed_addr constant [27 x i8] c"used .md on a null pointer\00" +@.str.6153 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6154 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6155 = private unnamed_addr constant [5 x i8] c"main\00" +@.str.6156 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6157 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.6158 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6159 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.6160 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6161 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6162 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6163 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.6164 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6165 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6166 = private unnamed_addr constant [83 x i8] c"a library (--shared) has no main: the program that loads it calls its 'export fn's\00" +@.str.6167 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6168 = private unnamed_addr constant [65 x i8] c":1:1: error: there is no main function (add 'fn main() { ... }')\00" +@.str.6169 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6170 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6171 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6172 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6173 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.6174 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6175 = private unnamed_addr constant [30 x i8] c"used .index on a null pointer\00" +@.str.6176 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6177 = private unnamed_addr constant [30 x i8] c"used .progs on a null pointer\00" +@.str.6178 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6179 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6180 = private unnamed_addr constant [28 x i8] c"used .idx on a null pointer\00" +@.str.6181 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6182 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6183 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.6184 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6185 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6186 = private unnamed_addr constant [27 x i8] c"used .tg on a null pointer\00" +@.str.6187 = private unnamed_addr constant [11 x i8] c" dllexport\00" +@.str.6188 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6189 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6190 = private unnamed_addr constant [7 x i8] c"define\00" +@.str.6191 = private unnamed_addr constant [108 x i8] c" void @finch_module_on_fatal(ptr %handler) {\0Aentry:\0A call void @finch_on_fatal(ptr %handler)\0A ret void\0A}\0A\00" +@.str.6192 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6193 = private unnamed_addr constant [29 x i8] c"used .sigs on a null pointer\00" +@.str.6194 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6195 = private unnamed_addr constant [6 x i8] c"call \00" +@.str.6196 = private unnamed_addr constant [2 x i8] c" \00" +@.str.6197 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.6198 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6199 = private unnamed_addr constant [134 x i8] c" %args = alloca { ptr, i64, i64 }\0A call void @finch_args(ptr %args, i32 %argc, ptr %argv)\0A %a = load { ptr, i64, i64 }, ptr %args\0A\00" +@.str.6200 = private unnamed_addr constant [21 x i8] c"{ ptr, i64, i64 } %a\00" +@.str.6201 = private unnamed_addr constant [2 x i8] c")\00" +@.str.6202 = private unnamed_addr constant [13 x i8] c" ret i32 0\0A\00" +@.str.6203 = private unnamed_addr constant [6 x i8] c"%r = \00" +@.str.6204 = private unnamed_addr constant [3 x i8] c" \00" +@.str.6205 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6206 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6207 = private unnamed_addr constant [22 x i8] c" %ok = extractvalue \00" +@.str.6208 = private unnamed_addr constant [63 x i8] c" %r, 0\0A br i1 %ok, label %main.ok, label %main.bad\0Amain.bad:\0A\00" +@.str.6209 = private unnamed_addr constant [21 x i8] c" %m = extractvalue \00" +@.str.6210 = private unnamed_addr constant [79 x i8] c" %r, 2\0A %mp = alloca { ptr, i64, i64 }\0A store { ptr, i64, i64 } %m, ptr %mp\0A\00" +@.str.6211 = private unnamed_addr constant [63 x i8] c" call void @finch_report_error(ptr %mp)\0A ret i32 1\0Amain.ok:\0A\00" +@.str.6212 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.6213 = private unnamed_addr constant [21 x i8] c" %v = extractvalue \00" +@.str.6214 = private unnamed_addr constant [54 x i8] c" %r, 1\0A %code = trunc i64 %v to i32\0A ret i32 %code\0A\00" +@.str.6215 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.6216 = private unnamed_addr constant [6 x i8] c"%r = \00" +@.str.6217 = private unnamed_addr constant [47 x i8] c" %code = trunc i64 %r to i32\0A ret i32 %code\0A\00" +@.str.6218 = private unnamed_addr constant [12 x i8] c"src/gen.fch\00" +@.str.6219 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6220 = private unnamed_addr constant [49 x i8] c"define i32 @main(i32 %argc, ptr %argv) {\0Aentry:\0A\00" +@.str.6221 = private unnamed_addr constant [3 x i8] c" \00" +@.str.6222 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6223 = private unnamed_addr constant [3 x i8] c"}\0A\00" +@.str.6224 = private unnamed_addr constant [6 x i8] c"print\00" +@.str.6225 = private unnamed_addr constant [17 x i8] c"print(a, b, ...)\00" +@.str.6226 = private unnamed_addr constant [79 x i8] c"Prints the values separated by spaces, then a new line. Works with every type.\00" +@.str.6227 = private unnamed_addr constant [6 x i8] c"input\00" +@.str.6228 = private unnamed_addr constant [32 x i8] c"input(str question = \22\22) -> str\00" +@.str.6229 = private unnamed_addr constant [78 x i8] c"Shows the question and reads one line typed by the user, without the newline.\00" +@.str.6230 = private unnamed_addr constant [10 x i8] c"read_file\00" +@.str.6231 = private unnamed_addr constant [27 x i8] c"read_file(str path) -> str\00" +@.str.6232 = private unnamed_addr constant [122 x i8] c"The whole file as text. Stops the program if it can't be read, unless handled: read_file(p) or { ... }, try read_file(p).\00" +@.str.6233 = private unnamed_addr constant [11 x i8] c"write_file\00" +@.str.6234 = private unnamed_addr constant [39 x i8] c"write_file(str path, str text) -> bool\00" +@.str.6235 = private unnamed_addr constant [84 x i8] c"Writes (replaces) the file. true if it worked; with or / try, the reason it didn't.\00" +@.str.6236 = private unnamed_addr constant [12 x i8] c"file_exists\00" +@.str.6237 = private unnamed_addr constant [30 x i8] c"file_exists(str path) -> bool\00" +@.str.6238 = private unnamed_addr constant [30 x i8] c"Is there a file at this path?\00" +@.str.6239 = private unnamed_addr constant [12 x i8] c"delete_file\00" +@.str.6240 = private unnamed_addr constant [30 x i8] c"delete_file(str path) -> bool\00" +@.str.6241 = private unnamed_addr constant [74 x i8] c"Deletes the file. true if it worked; with or / try, the reason it didn't.\00" +@.str.6242 = private unnamed_addr constant [6 x i8] c"error\00" +@.str.6243 = private unnamed_addr constant [19 x i8] c"error(str message)\00" +@.str.6244 = private unnamed_addr constant [99 x i8] c"The failure a fallible function returns: return error(\22...\22). The caller handles it with or / try.\00" +@.str.6245 = private unnamed_addr constant [6 x i8] c"shell\00" +@.str.6246 = private unnamed_addr constant [26 x i8] c"shell(str command) -> int\00" +@.str.6247 = private unnamed_addr constant [67 x i8] c"Runs a command in the system's shell and gives back its exit code.\00" +@.str.6248 = private unnamed_addr constant [5 x i8] c"exit\00" +@.str.6249 = private unnamed_addr constant [15 x i8] c"exit(int code)\00" +@.str.6250 = private unnamed_addr constant [49 x i8] c"Ends the program right away with this exit code.\00" +@.str.6251 = private unnamed_addr constant [5 x i8] c"addr\00" +@.str.6252 = private unnamed_addr constant [18 x i8] c"addr(x) -> ptr[T]\00" +@.str.6253 = private unnamed_addr constant [78 x i8] c"A pointer to a variable, field or element. addr(function) gives C a callback.\00" +@.str.6254 = private unnamed_addr constant [4 x i8] c"new\00" +@.str.6255 = private unnamed_addr constant [21 x i8] c"new(value) -> ptr[T]\00" +@.str.6256 = private unnamed_addr constant [67 x i8] c"Puts a copy of the value on the heap. Give it back with free(...).\00" +@.str.6257 = private unnamed_addr constant [5 x i8] c"free\00" +@.str.6258 = private unnamed_addr constant [12 x i8] c"free(ptr p)\00" +@.str.6259 = private unnamed_addr constant [74 x i8] c"Gives back memory from new(...) (or from C), freeing what the value owns.\00" +@.str.6260 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.6261 = private unnamed_addr constant [14 x i8] c"str(x) -> str\00" +@.str.6262 = private unnamed_addr constant [62 x i8] c"Turns a number, bool, char, []u8 or C char pointer into text.\00" +@.str.6263 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.6264 = private unnamed_addr constant [14 x i8] c"int(x) -> int\00" +@.str.6265 = private unnamed_addr constant [131 x i8] c"Converts to a whole number: cuts off fractions, parses text (stops the program if it isn't a number, unless handled: int(s) or 0).\00" +@.str.6266 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.6267 = private unnamed_addr constant [18 x i8] c"float(x) -> float\00" +@.str.6268 = private unnamed_addr constant [76 x i8] c"Converts to a decimal number; parses text (int(s) or 0.0 handles bad text).\00" +@.str.6269 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.6270 = private unnamed_addr constant [20 x i8] c"char(int n) -> char\00" +@.str.6271 = private unnamed_addr constant [30 x i8] c"The character with this code.\00" +@.str.6272 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.6273 = private unnamed_addr constant [20 x i8] c"bool(int n) -> bool\00" +@.str.6274 = private unnamed_addr constant [27 x i8] c"true for any number but 0.\00" +@.str.6275 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.6276 = private unnamed_addr constant [14 x i8] c"ptr(x) -> ptr\00" +@.str.6277 = private unnamed_addr constant [89 x i8] c"An untyped pointer: from a typed pointer, or from a number (an address or offset for C).\00" +@.str.6278 = private unnamed_addr constant [4 x i8] c"len\00" +@.str.6279 = private unnamed_addr constant [12 x i8] c".len -> int\00" +@.str.6280 = private unnamed_addr constant [24 x i8] c"The number of elements.\00" +@.str.6281 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.6282 = private unnamed_addr constant [15 x i8] c".ptr -> ptr[T]\00" +@.str.6283 = private unnamed_addr constant [41 x i8] c"The address of the first element, for C.\00" +@.str.6284 = private unnamed_addr constant [5 x i8] c"push\00" +@.str.6285 = private unnamed_addr constant [10 x i8] c"push(T x)\00" +@.str.6286 = private unnamed_addr constant [19 x i8] c"Adds x at the end.\00" +@.str.6287 = private unnamed_addr constant [4 x i8] c"pop\00" +@.str.6288 = private unnamed_addr constant [11 x i8] c"pop() -> T\00" +@.str.6289 = private unnamed_addr constant [44 x i8] c"Removes the last element and gives it back.\00" +@.str.6290 = private unnamed_addr constant [7 x i8] c"insert\00" +@.str.6291 = private unnamed_addr constant [19 x i8] c"insert(int i, T x)\00" +@.str.6292 = private unnamed_addr constant [39 x i8] c"Puts x at position i, moving the rest.\00" +@.str.6293 = private unnamed_addr constant [7 x i8] c"remove\00" +@.str.6294 = private unnamed_addr constant [19 x i8] c"remove(int i) -> T\00" +@.str.6295 = private unnamed_addr constant [38 x i8] c"Removes position i and gives it back.\00" +@.str.6296 = private unnamed_addr constant [6 x i8] c"clear\00" +@.str.6297 = private unnamed_addr constant [8 x i8] c"clear()\00" +@.str.6298 = private unnamed_addr constant [20 x i8] c"Removes everything.\00" +@.str.6299 = private unnamed_addr constant [7 x i8] c"resize\00" +@.str.6300 = private unnamed_addr constant [14 x i8] c"resize(int n)\00" +@.str.6301 = private unnamed_addr constant [47 x i8] c"Makes the array n long; new elements are zero.\00" +@.str.6302 = private unnamed_addr constant [5 x i8] c"find\00" +@.str.6303 = private unnamed_addr constant [17 x i8] c"find(T x) -> int\00" +@.str.6304 = private unnamed_addr constant [23 x i8] c"The index of x, or -1.\00" +@.str.6305 = private unnamed_addr constant [9 x i8] c"contains\00" +@.str.6306 = private unnamed_addr constant [22 x i8] c"contains(T x) -> bool\00" +@.str.6307 = private unnamed_addr constant [19 x i8] c"Is x in the array?\00" +@.str.6308 = private unnamed_addr constant [5 x i8] c"sort\00" +@.str.6309 = private unnamed_addr constant [7 x i8] c"sort()\00" +@.str.6310 = private unnamed_addr constant [38 x i8] c"Sorts in place (numbers, chars, str).\00" +@.str.6311 = private unnamed_addr constant [8 x i8] c"reverse\00" +@.str.6312 = private unnamed_addr constant [10 x i8] c"reverse()\00" +@.str.6313 = private unnamed_addr constant [19 x i8] c"Reverses in place.\00" +@.str.6314 = private unnamed_addr constant [6 x i8] c"slice\00" +@.str.6315 = private unnamed_addr constant [33 x i8] c"slice(int start, int end) -> []T\00" +@.str.6316 = private unnamed_addr constant [46 x i8] c"A new array with the elements start to end-1.\00" +@.str.6317 = private unnamed_addr constant [5 x i8] c"join\00" +@.str.6318 = private unnamed_addr constant [21 x i8] c"join(str sep) -> str\00" +@.str.6319 = private unnamed_addr constant [48 x i8] c"For []str: one text with sep between the parts.\00" +@.str.6320 = private unnamed_addr constant [4 x i8] c"len\00" +@.str.6321 = private unnamed_addr constant [12 x i8] c".len -> int\00" +@.str.6322 = private unnamed_addr constant [21 x i8] c"The number of bytes.\00" +@.str.6323 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.6324 = private unnamed_addr constant [18 x i8] c".ptr -> ptr[char]\00" +@.str.6325 = private unnamed_addr constant [60 x i8] c"The address of the text, for C (valid while the str lives).\00" +@.str.6326 = private unnamed_addr constant [4 x i8] c"sub\00" +@.str.6327 = private unnamed_addr constant [31 x i8] c"sub(int start, int end) -> str\00" +@.str.6328 = private unnamed_addr constant [30 x i8] c"The part from start to end-1.\00" +@.str.6329 = private unnamed_addr constant [5 x i8] c"find\00" +@.str.6330 = private unnamed_addr constant [19 x i8] c"find(str t) -> int\00" +@.str.6331 = private unnamed_addr constant [23 x i8] c"Where t starts, or -1.\00" +@.str.6332 = private unnamed_addr constant [9 x i8] c"contains\00" +@.str.6333 = private unnamed_addr constant [24 x i8] c"contains(str t) -> bool\00" +@.str.6334 = private unnamed_addr constant [25 x i8] c"Does the text contain t?\00" +@.str.6335 = private unnamed_addr constant [12 x i8] c"starts_with\00" +@.str.6336 = private unnamed_addr constant [27 x i8] c"starts_with(str t) -> bool\00" +@.str.6337 = private unnamed_addr constant [28 x i8] c"Does the text start with t?\00" +@.str.6338 = private unnamed_addr constant [10 x i8] c"ends_with\00" +@.str.6339 = private unnamed_addr constant [25 x i8] c"ends_with(str t) -> bool\00" +@.str.6340 = private unnamed_addr constant [26 x i8] c"Does the text end with t?\00" +@.str.6341 = private unnamed_addr constant [6 x i8] c"split\00" +@.str.6342 = private unnamed_addr constant [24 x i8] c"split(str sep) -> []str\00" +@.str.6343 = private unnamed_addr constant [63 x i8] c"The parts between each sep; split(\22\22) gives single characters.\00" +@.str.6344 = private unnamed_addr constant [5 x i8] c"trim\00" +@.str.6345 = private unnamed_addr constant [14 x i8] c"trim() -> str\00" +@.str.6346 = private unnamed_addr constant [42 x i8] c"Without spaces and newlines at both ends.\00" +@.str.6347 = private unnamed_addr constant [6 x i8] c"upper\00" +@.str.6348 = private unnamed_addr constant [15 x i8] c"upper() -> str\00" +@.str.6349 = private unnamed_addr constant [25 x i8] c"With a-z changed to A-Z.\00" +@.str.6350 = private unnamed_addr constant [6 x i8] c"lower\00" +@.str.6351 = private unnamed_addr constant [15 x i8] c"lower() -> str\00" +@.str.6352 = private unnamed_addr constant [25 x i8] c"With A-Z changed to a-z.\00" +@.str.6353 = private unnamed_addr constant [8 x i8] c"replace\00" +@.str.6354 = private unnamed_addr constant [33 x i8] c"replace(str from, str to) -> str\00" +@.str.6355 = private unnamed_addr constant [27 x i8] c"Every from replaced by to.\00" +@.str.6356 = private unnamed_addr constant [7 x i8] c"repeat\00" +@.str.6357 = private unnamed_addr constant [21 x i8] c"repeat(int n) -> str\00" +@.str.6358 = private unnamed_addr constant [18 x i8] c"The text n times.\00" +@.str.6359 = private unnamed_addr constant [6 x i8] c"bytes\00" +@.str.6360 = private unnamed_addr constant [16 x i8] c"bytes() -> []u8\00" +@.str.6361 = private unnamed_addr constant [23 x i8] c"The bytes of the text.\00" +@.str.6362 = private unnamed_addr constant [4 x i8] c"len\00" +@.str.6363 = private unnamed_addr constant [12 x i8] c".len -> int\00" +@.str.6364 = private unnamed_addr constant [20 x i8] c"The number of keys.\00" +@.str.6365 = private unnamed_addr constant [4 x i8] c"has\00" +@.str.6366 = private unnamed_addr constant [19 x i8] c"has(K key) -> bool\00" +@.str.6367 = private unnamed_addr constant [23 x i8] c"Is the key in the map?\00" +@.str.6368 = private unnamed_addr constant [4 x i8] c"get\00" +@.str.6369 = private unnamed_addr constant [27 x i8] c"get(K key, V default) -> V\00" +@.str.6370 = private unnamed_addr constant [54 x i8] c"The value for key, or default if the key isn't there.\00" +@.str.6371 = private unnamed_addr constant [7 x i8] c"remove\00" +@.str.6372 = private unnamed_addr constant [22 x i8] c"remove(K key) -> bool\00" +@.str.6373 = private unnamed_addr constant [53 x i8] c"Removes the key and its value; true if it was there.\00" +@.str.6374 = private unnamed_addr constant [6 x i8] c"clear\00" +@.str.6375 = private unnamed_addr constant [8 x i8] c"clear()\00" +@.str.6376 = private unnamed_addr constant [20 x i8] c"Removes everything.\00" +@.str.6377 = private unnamed_addr constant [5 x i8] c"keys\00" +@.str.6378 = private unnamed_addr constant [14 x i8] c"keys() -> []K\00" +@.str.6379 = private unnamed_addr constant [40 x i8] c"The keys, in the order they were added.\00" +@.str.6380 = private unnamed_addr constant [7 x i8] c"values\00" +@.str.6381 = private unnamed_addr constant [16 x i8] c"values() -> []V\00" +@.str.6382 = private unnamed_addr constant [48 x i8] c"The values, in the order their keys were added.\00" +@.str.6383 = private unnamed_addr constant [3 x i8] c"fn\00" +@.str.6384 = private unnamed_addr constant [7 x i8] c"return\00" +@.str.6385 = private unnamed_addr constant [3 x i8] c"if\00" +@.str.6386 = private unnamed_addr constant [5 x i8] c"else\00" +@.str.6387 = private unnamed_addr constant [6 x i8] c"while\00" +@.str.6388 = private unnamed_addr constant [4 x i8] c"for\00" +@.str.6389 = private unnamed_addr constant [3 x i8] c"in\00" +@.str.6390 = private unnamed_addr constant [6 x i8] c"break\00" +@.str.6391 = private unnamed_addr constant [9 x i8] c"continue\00" +@.str.6392 = private unnamed_addr constant [5 x i8] c"true\00" +@.str.6393 = private unnamed_addr constant [6 x i8] c"false\00" +@.str.6394 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.6395 = private unnamed_addr constant [7 x i8] c"import\00" +@.str.6396 = private unnamed_addr constant [5 x i8] c"link\00" +@.str.6397 = private unnamed_addr constant [7 x i8] c"struct\00" +@.str.6398 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str.6399 = private unnamed_addr constant [6 x i8] c"match\00" +@.str.6400 = private unnamed_addr constant [7 x i8] c"export\00" +@.str.6401 = private unnamed_addr constant [6 x i8] c"defer\00" +@.str.6402 = private unnamed_addr constant [3 x i8] c"or\00" +@.str.6403 = private unnamed_addr constant [4 x i8] c"try\00" +@.str.6404 = private unnamed_addr constant [5 x i8] c"self\00" +@.str.6405 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.6406 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.6407 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.6408 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.6409 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.6410 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.6411 = private unnamed_addr constant [4 x i8] c"map\00" +@.str.6412 = private unnamed_addr constant [3 x i8] c"i8\00" +@.str.6413 = private unnamed_addr constant [4 x i8] c"i16\00" +@.str.6414 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.6415 = private unnamed_addr constant [4 x i8] c"i64\00" +@.str.6416 = private unnamed_addr constant [3 x i8] c"u8\00" +@.str.6417 = private unnamed_addr constant [4 x i8] c"u16\00" +@.str.6418 = private unnamed_addr constant [4 x i8] c"u32\00" +@.str.6419 = private unnamed_addr constant [4 x i8] c"u64\00" +@.str.6420 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.6421 = private unnamed_addr constant [4 x i8] c"f64\00" +@.str.6422 = private unnamed_addr constant [10 x i8] c"```finch\0A\00" +@.str.6423 = private unnamed_addr constant [6 x i8] c"\0A```\0A\00" declare ptr @clang_getCString(i64, i64) declare void @clang_disposeString(i64, i64) -@.str.6216 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str.6217 = private unnamed_addr constant [16 x i8] c"/finch_cc_dirs_\00" -@.str.6218 = private unnamed_addr constant [5 x i8] c".txt\00" -@.str.6219 = private unnamed_addr constant [14 x i8] c"/finch_empty_\00" -@.str.6220 = private unnamed_addr constant [3 x i8] c".c\00" -@.str.6221 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6222 = private unnamed_addr constant [13 x i8] c" -E -v -x c \00" -@.str.6223 = private unnamed_addr constant [5 x i8] c" 2> \00" -@.str.6224 = private unnamed_addr constant [4 x i8] c" > \00" -@.str.6225 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6226 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6227 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6228 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6229 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6230 = private unnamed_addr constant [35 x i8] c"#include <...> search starts here:\00" -@.str.6231 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6232 = private unnamed_addr constant [20 x i8] c"End of search list.\00" -@.str.6233 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6234 = private unnamed_addr constant [23 x i8] c" (framework directory)\00" -@.str.6235 = private unnamed_addr constant [12 x i8] c"-iframework\00" -@.str.6236 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6237 = private unnamed_addr constant [9 x i8] c"-isystem\00" +@.str.6424 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str.6425 = private unnamed_addr constant [16 x i8] c"/finch_cc_dirs_\00" +@.str.6426 = private unnamed_addr constant [5 x i8] c".txt\00" +@.str.6427 = private unnamed_addr constant [14 x i8] c"/finch_empty_\00" +@.str.6428 = private unnamed_addr constant [3 x i8] c".c\00" +@.str.6429 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6430 = private unnamed_addr constant [13 x i8] c" -E -v -x c \00" +@.str.6431 = private unnamed_addr constant [5 x i8] c" 2> \00" +@.str.6432 = private unnamed_addr constant [4 x i8] c" > \00" +@.str.6433 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6434 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6435 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6436 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6437 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6438 = private unnamed_addr constant [35 x i8] c"#include <...> search starts here:\00" +@.str.6439 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6440 = private unnamed_addr constant [20 x i8] c"End of search list.\00" +@.str.6441 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6442 = private unnamed_addr constant [23 x i8] c" (framework directory)\00" +@.str.6443 = private unnamed_addr constant [12 x i8] c"-iframework\00" +@.str.6444 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6445 = private unnamed_addr constant [9 x i8] c"-isystem\00" declare void @clang_getTypeDeclaration(ptr sret(%S.C.CXCursor) align 16, ptr byval(%S.C.CXType) align 8) declare { i64, i64 } @clang_getCursorUSR(ptr byval(%S.C.CXCursor) align 8) -@.str.6238 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6239 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" -@.str.6240 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6241 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" -@.str.6242 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6446 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6447 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" +@.str.6448 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6449 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" +@.str.6450 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" declare { i64, i64 } @clang_getCursorSpelling(ptr byval(%S.C.CXCursor) align 8) -@.str.6243 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6244 = private unnamed_addr constant [2 x i8] c" \00" -@.str.6245 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6246 = private unnamed_addr constant [29 x i8] c"used .anon on a null pointer\00" -@.str.6247 = private unnamed_addr constant [13 x i8] c"anon_struct_\00" -@.str.6248 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6249 = private unnamed_addr constant [29 x i8] c"used .anon on a null pointer\00" -@.str.6250 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6251 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" +@.str.6451 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6452 = private unnamed_addr constant [2 x i8] c" \00" +@.str.6453 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6454 = private unnamed_addr constant [29 x i8] c"used .anon on a null pointer\00" +@.str.6455 = private unnamed_addr constant [13 x i8] c"anon_struct_\00" +@.str.6456 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6457 = private unnamed_addr constant [29 x i8] c"used .anon on a null pointer\00" +@.str.6458 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6459 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" declare void @clang_getCanonicalType(ptr sret(%S.C.CXType) align 16, ptr byval(%S.C.CXType) align 8) -@.str.6252 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6253 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.6254 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6255 = private unnamed_addr constant [33 x i8] c"used .defining on a null pointer\00" +@.str.6460 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6461 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6462 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6463 = private unnamed_addr constant [33 x i8] c"used .defining on a null pointer\00" declare i64 @clang_Type_getSizeOf(ptr byval(%S.C.CXType) align 8) -@.str.6256 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6257 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6258 = private unnamed_addr constant [33 x i8] c"used .defining on a null pointer\00" +@.str.6464 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6465 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6466 = private unnamed_addr constant [33 x i8] c"used .defining on a null pointer\00" declare i64 @clang_Type_getAlignOf(ptr byval(%S.C.CXType) align 8) declare i32 @clang_getCursorKind(ptr byval(%S.C.CXCursor) align 8) -@.str.6259 = private unnamed_addr constant [13 x i8] c"is a C union\00" +@.str.6467 = private unnamed_addr constant [13 x i8] c"is a C union\00" declare i32 @clang_Type_visitFields(ptr byval(%S.C.CXType) align 8, ptr, ptr) -@.str.6260 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6261 = private unnamed_addr constant [33 x i8] c"used .defining on a null pointer\00" -@.str.6262 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6263 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.6264 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6265 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6468 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6469 = private unnamed_addr constant [33 x i8] c"used .defining on a null pointer\00" +@.str.6470 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6471 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6472 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6473 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" declare void @clang_getCursorType(ptr sret(%S.C.CXType) align 16, ptr byval(%S.C.CXCursor) align 8) declare i64 @clang_Cursor_getOffsetOfField(ptr byval(%S.C.CXCursor) align 8) declare i32 @clang_Cursor_isBitField(ptr byval(%S.C.CXCursor) align 8) -@.str.6266 = private unnamed_addr constant [15 x i8] c"has bit fields\00" -@.str.6267 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6268 = private unnamed_addr constant [26 x i8] c"used .s on a null pointer\00" -@.str.6269 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6270 = private unnamed_addr constant [36 x i8] c"used .unsupported on a null pointer\00" -@.str.6271 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6272 = private unnamed_addr constant [28 x i8] c"used .imp on a null pointer\00" -@.str.6273 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6274 = private unnamed_addr constant [26 x i8] c"used .s on a null pointer\00" -@.str.6275 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6276 = private unnamed_addr constant [34 x i8] c"used .hasHidden on a null pointer\00" -@.str.6277 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6278 = private unnamed_addr constant [26 x i8] c"used .s on a null pointer\00" -@.str.6279 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6280 = private unnamed_addr constant [31 x i8] c"used .fields on a null pointer\00" -@.str.6281 = private unnamed_addr constant [3 x i8] c"i8\00" -@.str.6282 = private unnamed_addr constant [3 x i8] c"u8\00" -@.str.6283 = private unnamed_addr constant [4 x i8] c"i16\00" -@.str.6284 = private unnamed_addr constant [4 x i8] c"u16\00" -@.str.6285 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str.6286 = private unnamed_addr constant [4 x i8] c"u32\00" -@.str.6287 = private unnamed_addr constant [4 x i8] c"int\00" -@.str.6288 = private unnamed_addr constant [4 x i8] c"u64\00" -@.str.6289 = private unnamed_addr constant [8 x i8] c"uses a \00" -@.str.6290 = private unnamed_addr constant [12 x i8] c"-bit number\00" -@.str.6291 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.6292 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str.6293 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.6294 = private unnamed_addr constant [4 x i8] c"f32\00" -@.str.6295 = private unnamed_addr constant [6 x i8] c"float\00" +@.str.6474 = private unnamed_addr constant [15 x i8] c"has bit fields\00" +@.str.6475 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6476 = private unnamed_addr constant [26 x i8] c"used .s on a null pointer\00" +@.str.6477 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6478 = private unnamed_addr constant [36 x i8] c"used .unsupported on a null pointer\00" +@.str.6479 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6480 = private unnamed_addr constant [28 x i8] c"used .imp on a null pointer\00" +@.str.6481 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6482 = private unnamed_addr constant [26 x i8] c"used .s on a null pointer\00" +@.str.6483 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6484 = private unnamed_addr constant [34 x i8] c"used .hasHidden on a null pointer\00" +@.str.6485 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6486 = private unnamed_addr constant [26 x i8] c"used .s on a null pointer\00" +@.str.6487 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6488 = private unnamed_addr constant [31 x i8] c"used .fields on a null pointer\00" +@.str.6489 = private unnamed_addr constant [3 x i8] c"i8\00" +@.str.6490 = private unnamed_addr constant [3 x i8] c"u8\00" +@.str.6491 = private unnamed_addr constant [4 x i8] c"i16\00" +@.str.6492 = private unnamed_addr constant [4 x i8] c"u16\00" +@.str.6493 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str.6494 = private unnamed_addr constant [4 x i8] c"u32\00" +@.str.6495 = private unnamed_addr constant [4 x i8] c"int\00" +@.str.6496 = private unnamed_addr constant [4 x i8] c"u64\00" +@.str.6497 = private unnamed_addr constant [8 x i8] c"uses a \00" +@.str.6498 = private unnamed_addr constant [12 x i8] c"-bit number\00" +@.str.6499 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.6500 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str.6501 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.6502 = private unnamed_addr constant [4 x i8] c"f32\00" +@.str.6503 = private unnamed_addr constant [6 x i8] c"float\00" declare void @clang_getPointeeType(ptr sret(%S.C.CXType) align 16, ptr byval(%S.C.CXType) align 8) declare i32 @clang_isConstQualifiedType(ptr byval(%S.C.CXType) align 8) -@.str.6296 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.6297 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.6298 = private unnamed_addr constant [5 x i8] c"void\00" -@.str.6299 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str.6300 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str.6301 = private unnamed_addr constant [24 x i8] c"uses a C union by value\00" -@.str.6302 = private unnamed_addr constant [37 x i8] c"uses an incomplete C struct by value\00" -@.str.6303 = private unnamed_addr constant [6 x i8] c"named\00" -@.str.6304 = private unnamed_addr constant [2 x i8] c"C\00" +@.str.6504 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.6505 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.6506 = private unnamed_addr constant [5 x i8] c"void\00" +@.str.6507 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str.6508 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str.6509 = private unnamed_addr constant [24 x i8] c"uses a C union by value\00" +@.str.6510 = private unnamed_addr constant [37 x i8] c"uses an incomplete C struct by value\00" +@.str.6511 = private unnamed_addr constant [6 x i8] c"named\00" +@.str.6512 = private unnamed_addr constant [2 x i8] c"C\00" declare void @clang_getArrayElementType(ptr sret(%S.C.CXType) align 16, ptr byval(%S.C.CXType) align 8) declare i64 @clang_getArraySize(ptr byval(%S.C.CXType) align 8) -@.str.6305 = private unnamed_addr constant [17 x i8] c"uses long double\00" -@.str.6306 = private unnamed_addr constant [18 x i8] c"uses the C type '\00" +@.str.6513 = private unnamed_addr constant [17 x i8] c"uses long double\00" +@.str.6514 = private unnamed_addr constant [18 x i8] c"uses the C type '\00" declare { i64, i64 } @clang_getTypeSpelling(ptr byval(%S.C.CXType) align 8) -@.str.6307 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.6308 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6309 = private unnamed_addr constant [3 x i8] c"0x\00" -@.str.6310 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6311 = private unnamed_addr constant [3 x i8] c"0X\00" -@.str.6312 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6313 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6314 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6315 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6316 = private unnamed_addr constant [5 x i8] c"uUlL\00" -@.str.6317 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6318 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6319 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6320 = private unnamed_addr constant [27 x i8] c"used .tu on a null pointer\00" +@.str.6515 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.6516 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6517 = private unnamed_addr constant [3 x i8] c"0x\00" +@.str.6518 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6519 = private unnamed_addr constant [3 x i8] c"0X\00" +@.str.6520 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6521 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6522 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6523 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6524 = private unnamed_addr constant [5 x i8] c"uUlL\00" +@.str.6525 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6526 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6527 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6528 = private unnamed_addr constant [27 x i8] c"used .tu on a null pointer\00" declare void @clang_getCursorExtent(ptr sret(%S.C.CXSourceRange) align 16, ptr byval(%S.C.CXCursor) align 8) declare void @clang_tokenize(ptr, ptr byval(%S.C.CXSourceRange) align 8, ptr, ptr) declare i32 @clang_getTokenKind(ptr byval(%S.C.CXToken) align 8) -@.str.6321 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6322 = private unnamed_addr constant [27 x i8] c"used .tu on a null pointer\00" +@.str.6529 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6530 = private unnamed_addr constant [27 x i8] c"used .tu on a null pointer\00" declare { i64, i64 } @clang_getTokenSpelling(ptr, ptr byval(%S.C.CXToken) align 8) -@.str.6323 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6324 = private unnamed_addr constant [27 x i8] c"used .tu on a null pointer\00" +@.str.6531 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6532 = private unnamed_addr constant [27 x i8] c"used .tu on a null pointer\00" declare void @clang_disposeTokens(ptr, ptr, i32) -@.str.6325 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6326 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.6327 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6328 = private unnamed_addr constant [2 x i8] c")\00" -@.str.6329 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6330 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6331 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" -@.str.6332 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6333 = private unnamed_addr constant [2 x i8] c"-\00" -@.str.6334 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6335 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6336 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6337 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6338 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6339 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6340 = private unnamed_addr constant [2 x i8] c".\00" -@.str.6341 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6342 = private unnamed_addr constant [2 x i8] c"e\00" -@.str.6343 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6344 = private unnamed_addr constant [2 x i8] c"E\00" -@.str.6345 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6346 = private unnamed_addr constant [3 x i8] c"0x\00" -@.str.6347 = private unnamed_addr constant [5 x i8] c"fFlL\00" -@.str.6348 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6349 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6350 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6533 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6534 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.6535 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6536 = private unnamed_addr constant [2 x i8] c")\00" +@.str.6537 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6538 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6539 = private unnamed_addr constant [24 x i8] c"pop() on an empty array\00" +@.str.6540 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6541 = private unnamed_addr constant [2 x i8] c"-\00" +@.str.6542 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6543 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6544 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6545 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6546 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6547 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6548 = private unnamed_addr constant [2 x i8] c".\00" +@.str.6549 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6550 = private unnamed_addr constant [2 x i8] c"e\00" +@.str.6551 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6552 = private unnamed_addr constant [2 x i8] c"E\00" +@.str.6553 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6554 = private unnamed_addr constant [3 x i8] c"0x\00" +@.str.6555 = private unnamed_addr constant [5 x i8] c"fFlL\00" +@.str.6556 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6557 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6558 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" declare void @clang_getTypedefDeclUnderlyingType(ptr sret(%S.C.CXType) align 16, ptr byval(%S.C.CXCursor) align 8) -@.str.6351 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6352 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" -@.str.6353 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6354 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.6355 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6356 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" -@.str.6357 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6358 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6359 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.6360 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6361 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" -@.str.6362 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6363 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.6364 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6365 = private unnamed_addr constant [31 x i8] c"used .header on a null pointer\00" +@.str.6559 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6560 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" +@.str.6561 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6562 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6563 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6564 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" +@.str.6565 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6566 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6567 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6568 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6569 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" +@.str.6570 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6571 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6572 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6573 = private unnamed_addr constant [31 x i8] c"used .header on a null pointer\00" declare i32 @clang_Cursor_getStorageClass(ptr byval(%S.C.CXCursor) align 8) -@.str.6366 = private unnamed_addr constant [63 x i8] c"is a static inline C function (it has no code to link against)\00" -@.str.6367 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6368 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.6369 = private unnamed_addr constant [43 x i8] c"has no parameter list in its C declaration\00" -@.str.6370 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6371 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6574 = private unnamed_addr constant [63 x i8] c"is a static inline C function (it has no code to link against)\00" +@.str.6575 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6576 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6577 = private unnamed_addr constant [43 x i8] c"has no parameter list in its C declaration\00" +@.str.6578 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6579 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" declare void @clang_getResultType(ptr sret(%S.C.CXType) align 16, ptr byval(%S.C.CXType) align 8) declare i32 @clang_getNumArgTypes(ptr byval(%S.C.CXType) align 8) declare void @clang_getArgType(ptr sret(%S.C.CXType) align 16, ptr byval(%S.C.CXType) align 8, i32) declare i32 @clang_isFunctionTypeVariadic(ptr byval(%S.C.CXType) align 8) -@.str.6372 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6373 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.6374 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6375 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.6376 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6377 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6580 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6581 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6582 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6583 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6584 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6585 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" declare i32 @clang_isCursorDefinition(ptr byval(%S.C.CXCursor) align 8) -@.str.6378 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6379 = private unnamed_addr constant [2 x i8] c" \00" -@.str.6380 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6381 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" -@.str.6382 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6383 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" +@.str.6586 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6587 = private unnamed_addr constant [2 x i8] c" \00" +@.str.6588 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6589 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" +@.str.6590 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6591 = private unnamed_addr constant [36 x i8] c"used .recordNames on a null pointer\00" declare i32 @clang_visitChildren(ptr byval(%S.C.CXCursor) align 8, ptr, ptr) -@.str.6384 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6385 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6592 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6593 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" declare i64 @clang_getEnumConstantDeclValue(ptr byval(%S.C.CXCursor) align 8) -@.str.6386 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6387 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6594 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6595 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" declare i32 @clang_Cursor_isMacroBuiltin(ptr byval(%S.C.CXCursor) align 8) declare i32 @clang_Cursor_isMacroFunctionLike(ptr byval(%S.C.CXCursor) align 8) -@.str.6388 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6389 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.6390 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6391 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.6392 = private unnamed_addr constant [3 x i8] c"-x\00" -@.str.6393 = private unnamed_addr constant [2 x i8] c"c\00" -@.str.6394 = private unnamed_addr constant [11 x i8] c"-std=gnu11\00" -@.str.6395 = private unnamed_addr constant [10 x i8] c"--target=\00" -@.str.6396 = private unnamed_addr constant [20 x i8] c"-D_USE_MATH_DEFINES\00" -@.str.6397 = private unnamed_addr constant [3 x i8] c"-I\00" -@.str.6398 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6399 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6596 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6597 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6598 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6599 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.6600 = private unnamed_addr constant [3 x i8] c"-x\00" +@.str.6601 = private unnamed_addr constant [2 x i8] c"c\00" +@.str.6602 = private unnamed_addr constant [11 x i8] c"-std=gnu11\00" +@.str.6603 = private unnamed_addr constant [10 x i8] c"--target=\00" +@.str.6604 = private unnamed_addr constant [20 x i8] c"-D_USE_MATH_DEFINES\00" +@.str.6605 = private unnamed_addr constant [3 x i8] c"-I\00" +@.str.6606 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6607 = private unnamed_addr constant [1 x i8] c"\00" declare ptr @clang_createIndex(i32, i32) -@.str.6400 = private unnamed_addr constant [11 x i8] c"#include \22\00" -@.str.6401 = private unnamed_addr constant [3 x i8] c"\22\0A\00" -@.str.6402 = private unnamed_addr constant [15 x i8] c"finch_import.c\00" -@.str.6403 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6404 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6405 = private unnamed_addr constant [15 x i8] c"finch_import.c\00" -@.str.6406 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6608 = private unnamed_addr constant [11 x i8] c"#include \22\00" +@.str.6609 = private unnamed_addr constant [3 x i8] c"\22\0A\00" +@.str.6610 = private unnamed_addr constant [15 x i8] c"finch_import.c\00" +@.str.6611 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6612 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6613 = private unnamed_addr constant [15 x i8] c"finch_import.c\00" +@.str.6614 = private unnamed_addr constant [1 x i8] c"\00" declare i32 @clang_parseTranslationUnit2(ptr, ptr, ptr, i32, ptr, i32, i32, ptr) -@.str.6407 = private unnamed_addr constant [34 x i8] c": error: couldn't read C header '\00" -@.str.6408 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.6615 = private unnamed_addr constant [34 x i8] c": error: couldn't read C header '\00" +@.str.6616 = private unnamed_addr constant [2 x i8] c"'\00" declare i32 @clang_getNumDiagnostics(ptr) declare ptr @clang_getDiagnostic(ptr, i32) declare i32 @clang_getDiagnosticSeverity(ptr) declare { i64, i64 } @clang_getDiagnosticSpelling(ptr) declare void @clang_disposeDiagnostic(ptr) -@.str.6409 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6410 = private unnamed_addr constant [15 x i8] c"file not found\00" -@.str.6411 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6412 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6413 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" -@.str.6414 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.6415 = private unnamed_addr constant [35 x i8] c": error: can't find the C header '\00" -@.str.6416 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.6417 = private unnamed_addr constant [35 x i8] c": error: can't find the C header '\00" -@.str.6418 = private unnamed_addr constant [11 x i8] c"', which '\00" -@.str.6419 = private unnamed_addr constant [61 x i8] c"' includes (is its library's development package installed?)\00" -@.str.6420 = private unnamed_addr constant [20 x i8] c": error: C header '\00" -@.str.6421 = private unnamed_addr constant [17 x i8] c"' has an error: \00" +@.str.6617 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6618 = private unnamed_addr constant [15 x i8] c"file not found\00" +@.str.6619 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6620 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6621 = private unnamed_addr constant [16 x i8] c"src/cimport.fch\00" +@.str.6622 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.6623 = private unnamed_addr constant [35 x i8] c": error: can't find the C header '\00" +@.str.6624 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.6625 = private unnamed_addr constant [35 x i8] c": error: can't find the C header '\00" +@.str.6626 = private unnamed_addr constant [11 x i8] c"', which '\00" +@.str.6627 = private unnamed_addr constant [61 x i8] c"' includes (is its library's development package installed?)\00" +@.str.6628 = private unnamed_addr constant [20 x i8] c": error: C header '\00" +@.str.6629 = private unnamed_addr constant [17 x i8] c"' has an error: \00" declare void @clang_getTranslationUnitCursor(ptr sret(%S.C.CXCursor) align 16, ptr) declare void @clang_disposeTranslationUnit(ptr) declare void @clang_disposeIndex(ptr) -@.str.6422 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.6423 = private unnamed_addr constant [13 x i8] c"src/host.fch\00" -@.str.6424 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.6425 = private unnamed_addr constant [5 x i8] c"'\5C''\00" -@.str.6426 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.6427 = private unnamed_addr constant [10 x i8] c"/dev/null\00" -@.str.6428 = private unnamed_addr constant [7 x i8] c"TMPDIR\00" -@.str.6429 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6430 = private unnamed_addr constant [13 x i8] c"src/host.fch\00" -@.str.6431 = private unnamed_addr constant [2 x i8] c"/\00" -@.str.6432 = private unnamed_addr constant [13 x i8] c"src/host.fch\00" -@.str.6433 = private unnamed_addr constant [5 x i8] c"/tmp\00" -@.str.6434 = private unnamed_addr constant [2 x i8] c":\00" +@.str.6630 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.6631 = private unnamed_addr constant [13 x i8] c"src/host.fch\00" +@.str.6632 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.6633 = private unnamed_addr constant [5 x i8] c"'\5C''\00" +@.str.6634 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.6635 = private unnamed_addr constant [10 x i8] c"/dev/null\00" +@.str.6636 = private unnamed_addr constant [7 x i8] c"TMPDIR\00" +@.str.6637 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6638 = private unnamed_addr constant [13 x i8] c"src/host.fch\00" +@.str.6639 = private unnamed_addr constant [2 x i8] c"/\00" +@.str.6640 = private unnamed_addr constant [13 x i8] c"src/host.fch\00" +@.str.6641 = private unnamed_addr constant [5 x i8] c"/tmp\00" +@.str.6642 = private unnamed_addr constant [2 x i8] c":\00" declare i32 @getpid() -@.str.6435 = private unnamed_addr constant [4 x i8] c"PWD\00" -@.str.6436 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6437 = private unnamed_addr constant [15 x i8] c"XDG_CACHE_HOME\00" -@.str.6438 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6439 = private unnamed_addr constant [7 x i8] c"/finch\00" -@.str.6440 = private unnamed_addr constant [5 x i8] c"HOME\00" -@.str.6441 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6442 = private unnamed_addr constant [14 x i8] c"/.cache/finch\00" -@.str.6443 = private unnamed_addr constant [13 x i8] c"/finch-cache\00" -@.str.6444 = private unnamed_addr constant [10 x i8] c"mkdir -p \00" -@.str.6445 = private unnamed_addr constant [8 x i8] c"rm -rf \00" -@.str.6446 = private unnamed_addr constant [4 x i8] c"mv \00" -@.str.6447 = private unnamed_addr constant [2 x i8] c" \00" -@.str.6448 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6449 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6450 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6451 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6452 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6453 = private unnamed_addr constant [15 x i8] c"/finch_triple_\00" -@.str.6454 = private unnamed_addr constant [5 x i8] c".txt\00" -@.str.6455 = private unnamed_addr constant [22 x i8] c"clang -dumpmachine > \00" -@.str.6456 = private unnamed_addr constant [5 x i8] c" 2> \00" -@.str.6457 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6458 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6459 = private unnamed_addr constant [25 x i8] c"x86_64-unknown-linux-gnu\00" -@.str.6460 = private unnamed_addr constant [8 x i8] c"windows\00" -@.str.6461 = private unnamed_addr constant [19 x i8] c"x86_64-w64-mingw32\00" -@.str.6462 = private unnamed_addr constant [6 x i8] c"linux\00" -@.str.6463 = private unnamed_addr constant [25 x i8] c"x86_64-unknown-linux-gnu\00" -@.str.6464 = private unnamed_addr constant [6 x i8] c"arm64\00" -@.str.6465 = private unnamed_addr constant [8 x i8] c"aarch64\00" -@.str.6466 = private unnamed_addr constant [12 x i8] c"linux-arm64\00" -@.str.6467 = private unnamed_addr constant [26 x i8] c"aarch64-unknown-linux-gnu\00" -@.str.6468 = private unnamed_addr constant [6 x i8] c"macos\00" -@.str.6469 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6470 = private unnamed_addr constant [8 x i8] c"aarch64\00" -@.str.6471 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6472 = private unnamed_addr constant [6 x i8] c"arm64\00" -@.str.6473 = private unnamed_addr constant [25 x i8] c"arm64-apple-macosx14.0.0\00" -@.str.6474 = private unnamed_addr constant [26 x i8] c"x86_64-apple-macosx14.0.0\00" -@.str.6475 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6476 = private unnamed_addr constant [8 x i8] c"windows\00" -@.str.6477 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6478 = private unnamed_addr constant [6 x i8] c"mingw\00" -@.str.6479 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6480 = private unnamed_addr constant [5 x i8] c"msvc\00" -@.str.6481 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6482 = private unnamed_addr constant [6 x i8] c"win32\00" -@.str.6483 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6484 = private unnamed_addr constant [5 x i8] c"msvc\00" -@.str.6485 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6486 = private unnamed_addr constant [6 x i8] c"apple\00" -@.str.6487 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6488 = private unnamed_addr constant [7 x i8] c"darwin\00" -@.str.6489 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6490 = private unnamed_addr constant [6 x i8] c"macos\00" -@.str.6491 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6492 = private unnamed_addr constant [8 x i8] c"aarch64\00" -@.str.6493 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6494 = private unnamed_addr constant [6 x i8] c"arm64\00" -@.str.6495 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6496 = private unnamed_addr constant [8 x i8] c"aarch64\00" -@.str.6497 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6498 = private unnamed_addr constant [6 x i8] c"arm64\00" -@.str.6499 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6500 = private unnamed_addr constant [6 x i8] c"apple\00" -@.str.6501 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" -@.str.6502 = private unnamed_addr constant [7 x i8] c"darwin\00" -@.str.6503 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6504 = private unnamed_addr constant [5 x i8] c".exe\00" -@.str.6505 = private unnamed_addr constant [9 x i8] c"FINCH_CC\00" -@.str.6506 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6507 = private unnamed_addr constant [23 x i8] c"x86_64-w64-mingw32-gcc\00" -@.str.6508 = private unnamed_addr constant [22 x i8] c"aarch64-linux-gnu-gcc\00" -@.str.6509 = private unnamed_addr constant [16 x i8] c"clang --target=\00" -@.str.6510 = private unnamed_addr constant [2 x i8] c";\00" -@.str.6511 = private unnamed_addr constant [6 x i8] c"clang\00" -@.str.6512 = private unnamed_addr constant [3 x i8] c"cc\00" -@.str.6513 = private unnamed_addr constant [6 x i8] c"wine \00" -@.str.6514 = private unnamed_addr constant [14 x i8] c"qemu-aarch64 \00" -@.str.6515 = private unnamed_addr constant [17 x i8] c"0123456789abcdef\00" -@.str.6516 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6517 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6518 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6519 = private unnamed_addr constant [11 x i8] c".framework\00" -@.str.6520 = private unnamed_addr constant [12 x i8] c"-framework \00" -@.str.6521 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6522 = private unnamed_addr constant [18 x i8] c"/finch_pkg_flags_\00" -@.str.6523 = private unnamed_addr constant [5 x i8] c".txt\00" -@.str.6524 = private unnamed_addr constant [19 x i8] c"pkg-config --libs \00" -@.str.6525 = private unnamed_addr constant [4 x i8] c" > \00" -@.str.6526 = private unnamed_addr constant [5 x i8] c" 2> \00" -@.str.6527 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6528 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6529 = private unnamed_addr constant [3 x i8] c"-l\00" -@.str.6530 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6531 = private unnamed_addr constant [2 x i8] c"/\00" -@.str.6532 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6533 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6534 = private unnamed_addr constant [2 x i8] c"/\00" -@.str.6535 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6536 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6537 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6538 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6539 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6540 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6541 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6542 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6543 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6544 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6545 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6546 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6547 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6548 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6549 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6550 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6551 = private unnamed_addr constant [25 x i8] c"undefined reference to `\00" -@.str.6552 = private unnamed_addr constant [25 x i8] c"undefined reference to `\00" -@.str.6553 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.6554 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6555 = private unnamed_addr constant [19 x i8] c"undefined symbol: \00" -@.str.6556 = private unnamed_addr constant [19 x i8] c"undefined symbol: \00" -@.str.6557 = private unnamed_addr constant [3 x i8] c" \0A\00" -@.str.6558 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6559 = private unnamed_addr constant [28 x i8] c"unresolved external symbol \00" -@.str.6560 = private unnamed_addr constant [28 x i8] c"unresolved external symbol \00" -@.str.6561 = private unnamed_addr constant [4 x i8] c" \0A\0D\00" -@.str.6562 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6563 = private unnamed_addr constant [15 x i8] c"cannot find -l\00" -@.str.6564 = private unnamed_addr constant [15 x i8] c"cannot find -l\00" -@.str.6565 = private unnamed_addr constant [5 x i8] c": \0A\0D\00" -@.str.6566 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6567 = private unnamed_addr constant [25 x i8] c"library not found for -l\00" -@.str.6568 = private unnamed_addr constant [25 x i8] c"library not found for -l\00" -@.str.6569 = private unnamed_addr constant [5 x i8] c": \0A\0D\00" -@.str.6570 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6571 = private unnamed_addr constant [14 x i8] c"ld: library '\00" -@.str.6572 = private unnamed_addr constant [14 x i8] c"ld: library '\00" -@.str.6573 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.6574 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6575 = private unnamed_addr constant [12 x i8] c"framework '\00" -@.str.6576 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6577 = private unnamed_addr constant [10 x i8] c"not found\00" -@.str.6578 = private unnamed_addr constant [12 x i8] c"framework '\00" -@.str.6579 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.6580 = private unnamed_addr constant [11 x i8] c".framework\00" -@.str.6581 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6582 = private unnamed_addr constant [2 x i8] c"\22\00" -@.str.6583 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6584 = private unnamed_addr constant [20 x i8] c"\22, referenced from:\00" -@.str.6585 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6586 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6587 = private unnamed_addr constant [20 x i8] c"\22, referenced from:\00" -@.str.6588 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6589 = private unnamed_addr constant [2 x i8] c"_\00" -@.str.6590 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6591 = private unnamed_addr constant [22 x i8] c"error: linking failed\00" -@.str.6592 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6593 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6594 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6595 = private unnamed_addr constant [21 x i8] c"error: the library '\00" -@.str.6596 = private unnamed_addr constant [63 x i8] c"' wasn't found. Is it installed? (on Nix: add it to shell.nix)\00" -@.str.6597 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6598 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6599 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6600 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6601 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6602 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6603 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6604 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6605 = private unnamed_addr constant [3 x i8] c", \00" -@.str.6606 = private unnamed_addr constant [6 x i8] c" and \00" -@.str.6607 = private unnamed_addr constant [6 x i8] c" more\00" -@.str.6608 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6609 = private unnamed_addr constant [26 x i8] c"error: no code found for \00" -@.str.6610 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6611 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6612 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6613 = private unnamed_addr constant [5 x i8] c"come\00" -@.str.6614 = private unnamed_addr constant [6 x i8] c"comes\00" -@.str.6615 = private unnamed_addr constant [8 x i8] c"error: \00" -@.str.6616 = private unnamed_addr constant [2 x i8] c" \00" -@.str.6617 = private unnamed_addr constant [8 x i8] c" from \22\00" -@.str.6618 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6619 = private unnamed_addr constant [32 x i8] c"\22, but its library isn't linked\00" -@.str.6620 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6621 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6622 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6623 = private unnamed_addr constant [75 x i8] c" the header only says the functions exist; their code lives in a library.\00" -@.str.6624 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6625 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6626 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6627 = private unnamed_addr constant [67 x i8] c" add this at the top of your file (with the library's real name):\00" -@.str.6628 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6629 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6630 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6631 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6632 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6633 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6634 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6635 = private unnamed_addr constant [13 x i8] c" link \22\00" -@.str.6636 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6637 = private unnamed_addr constant [2 x i8] c"\22\00" -@.str.6638 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6639 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6640 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6641 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6642 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6643 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6644 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6645 = private unnamed_addr constant [5 x i8] c"/rt-\00" -@.str.6646 = private unnamed_addr constant [4 x i8] c"2.5\00" -@.str.6647 = private unnamed_addr constant [3 x i8] c".o\00" -@.str.6648 = private unnamed_addr constant [6 x i8] c".part\00" -@.str.6649 = private unnamed_addr constant [7 x i8] c" -fPIC\00" -@.str.6650 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6651 = private unnamed_addr constant [5 x i8] c".log\00" -@.str.6652 = private unnamed_addr constant [5 x i8] c" -O2\00" -@.str.6653 = private unnamed_addr constant [5 x i8] c" -c \00" -@.str.6654 = private unnamed_addr constant [5 x i8] c" -o \00" -@.str.6655 = private unnamed_addr constant [4 x i8] c" > \00" -@.str.6656 = private unnamed_addr constant [6 x i8] c" 2>&1\00" -@.str.6657 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6658 = private unnamed_addr constant [47 x i8] c"error: couldn't build the Finch runtime with '\00" -@.str.6659 = private unnamed_addr constant [31 x i8] c"' (is a C compiler installed?)\00" -@.str.6660 = private unnamed_addr constant [12 x i8] c"FINCH_CLANG\00" -@.str.6661 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6662 = private unnamed_addr constant [6 x i8] c"clang\00" -@.str.6663 = private unnamed_addr constant [9 x i8] c"FINCH_CC\00" -@.str.6664 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6665 = private unnamed_addr constant [9 x i8] c"FINCH_CC\00" -@.str.6666 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6667 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6668 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6669 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6670 = private unnamed_addr constant [4 x i8] c".ll\00" -@.str.6671 = private unnamed_addr constant [3 x i8] c".o\00" -@.str.6672 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6673 = private unnamed_addr constant [11 x i8] c" --target=\00" -@.str.6674 = private unnamed_addr constant [5 x i8] c".log\00" -@.str.6675 = private unnamed_addr constant [2 x i8] c" \00" -@.str.6676 = private unnamed_addr constant [8 x i8] c" -w -c \00" -@.str.6677 = private unnamed_addr constant [5 x i8] c" -o \00" -@.str.6678 = private unnamed_addr constant [4 x i8] c" > \00" -@.str.6679 = private unnamed_addr constant [6 x i8] c" 2>&1\00" -@.str.6680 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6681 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6682 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6683 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6684 = private unnamed_addr constant [47 x i8] c"error: clang couldn't compile the program's IR\00" -@.str.6685 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6686 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6687 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6688 = private unnamed_addr constant [2 x i8] c" \00" -@.str.6689 = private unnamed_addr constant [2 x i8] c" \00" -@.str.6690 = private unnamed_addr constant [5 x i8] c" -o \00" -@.str.6691 = private unnamed_addr constant [5 x i8] c" -lm\00" -@.str.6692 = private unnamed_addr constant [13 x i8] c" -dynamiclib\00" -@.str.6693 = private unnamed_addr constant [9 x i8] c" -shared\00" -@.str.6694 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6695 = private unnamed_addr constant [3 x i8] c".c\00" -@.str.6696 = private unnamed_addr constant [2 x i8] c".\00" -@.str.6697 = private unnamed_addr constant [3 x i8] c".o\00" -@.str.6698 = private unnamed_addr constant [7 x i8] c" -fPIC\00" -@.str.6699 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6700 = private unnamed_addr constant [5 x i8] c" -O2\00" -@.str.6701 = private unnamed_addr constant [5 x i8] c" -c \00" -@.str.6702 = private unnamed_addr constant [5 x i8] c" -o \00" -@.str.6703 = private unnamed_addr constant [4 x i8] c" > \00" -@.str.6704 = private unnamed_addr constant [6 x i8] c" 2>&1\00" -@.str.6705 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6706 = private unnamed_addr constant [25 x i8] c"error: couldn't compile \00" -@.str.6707 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6708 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6709 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6710 = private unnamed_addr constant [2 x i8] c" \00" -@.str.6711 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6712 = private unnamed_addr constant [3 x i8] c".o\00" -@.str.6713 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" -@.str.6714 = private unnamed_addr constant [3 x i8] c".a\00" -@.str.6715 = private unnamed_addr constant [2 x i8] c" \00" -@.str.6716 = private unnamed_addr constant [2 x i8] c" \00" -@.str.6717 = private unnamed_addr constant [4 x i8] c" > \00" -@.str.6718 = private unnamed_addr constant [6 x i8] c" 2>&1\00" -@.str.6719 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6720 = private unnamed_addr constant [43 x i8] c"error: no C compiler found to link with ('\00" -@.str.6721 = private unnamed_addr constant [33 x i8] c"'; install one, or set FINCH_CC)\00" -@.str.6722 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6723 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6724 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6643 = private unnamed_addr constant [4 x i8] c"PWD\00" +@.str.6644 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6645 = private unnamed_addr constant [15 x i8] c"XDG_CACHE_HOME\00" +@.str.6646 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6647 = private unnamed_addr constant [7 x i8] c"/finch\00" +@.str.6648 = private unnamed_addr constant [5 x i8] c"HOME\00" +@.str.6649 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6650 = private unnamed_addr constant [14 x i8] c"/.cache/finch\00" +@.str.6651 = private unnamed_addr constant [13 x i8] c"/finch-cache\00" +@.str.6652 = private unnamed_addr constant [10 x i8] c"mkdir -p \00" +@.str.6653 = private unnamed_addr constant [8 x i8] c"rm -rf \00" +@.str.6654 = private unnamed_addr constant [4 x i8] c"mv \00" +@.str.6655 = private unnamed_addr constant [2 x i8] c" \00" +@.str.6656 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6657 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6658 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6659 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6660 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6661 = private unnamed_addr constant [15 x i8] c"/finch_triple_\00" +@.str.6662 = private unnamed_addr constant [5 x i8] c".txt\00" +@.str.6663 = private unnamed_addr constant [22 x i8] c"clang -dumpmachine > \00" +@.str.6664 = private unnamed_addr constant [5 x i8] c" 2> \00" +@.str.6665 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6666 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6667 = private unnamed_addr constant [25 x i8] c"x86_64-unknown-linux-gnu\00" +@.str.6668 = private unnamed_addr constant [8 x i8] c"windows\00" +@.str.6669 = private unnamed_addr constant [19 x i8] c"x86_64-w64-mingw32\00" +@.str.6670 = private unnamed_addr constant [6 x i8] c"linux\00" +@.str.6671 = private unnamed_addr constant [25 x i8] c"x86_64-unknown-linux-gnu\00" +@.str.6672 = private unnamed_addr constant [6 x i8] c"arm64\00" +@.str.6673 = private unnamed_addr constant [8 x i8] c"aarch64\00" +@.str.6674 = private unnamed_addr constant [12 x i8] c"linux-arm64\00" +@.str.6675 = private unnamed_addr constant [26 x i8] c"aarch64-unknown-linux-gnu\00" +@.str.6676 = private unnamed_addr constant [6 x i8] c"macos\00" +@.str.6677 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6678 = private unnamed_addr constant [8 x i8] c"aarch64\00" +@.str.6679 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6680 = private unnamed_addr constant [6 x i8] c"arm64\00" +@.str.6681 = private unnamed_addr constant [25 x i8] c"arm64-apple-macosx14.0.0\00" +@.str.6682 = private unnamed_addr constant [26 x i8] c"x86_64-apple-macosx14.0.0\00" +@.str.6683 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6684 = private unnamed_addr constant [8 x i8] c"windows\00" +@.str.6685 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6686 = private unnamed_addr constant [6 x i8] c"mingw\00" +@.str.6687 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6688 = private unnamed_addr constant [5 x i8] c"msvc\00" +@.str.6689 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6690 = private unnamed_addr constant [6 x i8] c"win32\00" +@.str.6691 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6692 = private unnamed_addr constant [5 x i8] c"msvc\00" +@.str.6693 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6694 = private unnamed_addr constant [6 x i8] c"apple\00" +@.str.6695 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6696 = private unnamed_addr constant [7 x i8] c"darwin\00" +@.str.6697 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6698 = private unnamed_addr constant [6 x i8] c"macos\00" +@.str.6699 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6700 = private unnamed_addr constant [8 x i8] c"aarch64\00" +@.str.6701 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6702 = private unnamed_addr constant [6 x i8] c"arm64\00" +@.str.6703 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6704 = private unnamed_addr constant [8 x i8] c"aarch64\00" +@.str.6705 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6706 = private unnamed_addr constant [6 x i8] c"arm64\00" +@.str.6707 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6708 = private unnamed_addr constant [6 x i8] c"apple\00" +@.str.6709 = private unnamed_addr constant [17 x i8] c"src/platform.fch\00" +@.str.6710 = private unnamed_addr constant [7 x i8] c"darwin\00" +@.str.6711 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6712 = private unnamed_addr constant [5 x i8] c".exe\00" +@.str.6713 = private unnamed_addr constant [9 x i8] c"FINCH_CC\00" +@.str.6714 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6715 = private unnamed_addr constant [23 x i8] c"x86_64-w64-mingw32-gcc\00" +@.str.6716 = private unnamed_addr constant [22 x i8] c"aarch64-linux-gnu-gcc\00" +@.str.6717 = private unnamed_addr constant [16 x i8] c"clang --target=\00" +@.str.6718 = private unnamed_addr constant [2 x i8] c";\00" +@.str.6719 = private unnamed_addr constant [6 x i8] c"clang\00" +@.str.6720 = private unnamed_addr constant [3 x i8] c"cc\00" +@.str.6721 = private unnamed_addr constant [6 x i8] c"wine \00" +@.str.6722 = private unnamed_addr constant [14 x i8] c"qemu-aarch64 \00" +@.str.6723 = private unnamed_addr constant [17 x i8] c"0123456789abcdef\00" +@.str.6724 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" @.str.6725 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6726 = private unnamed_addr constant [5 x i8] c"%.*s\00" -@.str.6727 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6728 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6729 = private unnamed_addr constant [8 x i8] c"file://\00" -@.str.6730 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6731 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6732 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6733 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6734 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6735 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6736 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6737 = private unnamed_addr constant [17 x i8] c"0123456789ABCDEF\00" -@.str.6738 = private unnamed_addr constant [8 x i8] c"file://\00" -@.str.6739 = private unnamed_addr constant [6 x i8] c"/-_.~\00" -@.str.6740 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6741 = private unnamed_addr constant [2 x i8] c"%\00" -@.str.6742 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6743 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6744 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6745 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6746 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6747 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6748 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6749 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6726 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6727 = private unnamed_addr constant [11 x i8] c".framework\00" +@.str.6728 = private unnamed_addr constant [12 x i8] c"-framework \00" +@.str.6729 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6730 = private unnamed_addr constant [18 x i8] c"/finch_pkg_flags_\00" +@.str.6731 = private unnamed_addr constant [5 x i8] c".txt\00" +@.str.6732 = private unnamed_addr constant [19 x i8] c"pkg-config --libs \00" +@.str.6733 = private unnamed_addr constant [4 x i8] c" > \00" +@.str.6734 = private unnamed_addr constant [5 x i8] c" 2> \00" +@.str.6735 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6736 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6737 = private unnamed_addr constant [3 x i8] c"-l\00" +@.str.6738 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6739 = private unnamed_addr constant [2 x i8] c"/\00" +@.str.6740 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6741 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6742 = private unnamed_addr constant [2 x i8] c"/\00" +@.str.6743 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6744 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6745 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6746 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6747 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6748 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6749 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" @.str.6750 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6751 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6752 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6753 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6754 = private unnamed_addr constant [1 x i8] c"\00" -declare i32 @getchar() -@.str.6755 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6756 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6757 = private unnamed_addr constant [2 x i8] c"\0D\00" -@.str.6758 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@stdin = external global ptr -declare i32 @feof(ptr) -@.str.6759 = private unnamed_addr constant [33 x i8] c"the editor closed the connection\00" -@.str.6760 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6761 = private unnamed_addr constant [16 x i8] c"Content-Length:\00" -@.str.6762 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6763 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6764 = private unnamed_addr constant [26 x i8] c"the message was cut short\00" -@.str.6765 = private unnamed_addr constant [17 x i8] c"Content-Length: \00" -@.str.6766 = private unnamed_addr constant [5 x i8] c"\0D\0A\0D\0A\00" -@.str.6767 = private unnamed_addr constant [1 x i8] c"\00" -@stdout = external global ptr -declare i64 @fwrite(ptr, i64, i64, ptr) -@.str.6768 = private unnamed_addr constant [8 x i8] c"jsonrpc\00" -@.str.6769 = private unnamed_addr constant [4 x i8] c"2.0\00" -@.str.6770 = private unnamed_addr constant [3 x i8] c"id\00" -@.str.6771 = private unnamed_addr constant [7 x i8] c"result\00" -@.str.6772 = private unnamed_addr constant [8 x i8] c"jsonrpc\00" -@.str.6773 = private unnamed_addr constant [4 x i8] c"2.0\00" -@.str.6774 = private unnamed_addr constant [7 x i8] c"method\00" -@.str.6775 = private unnamed_addr constant [7 x i8] c"params\00" -@.str.6776 = private unnamed_addr constant [5 x i8] c"line\00" -@.str.6777 = private unnamed_addr constant [10 x i8] c"character\00" -@.str.6778 = private unnamed_addr constant [6 x i8] c"start\00" -@.str.6779 = private unnamed_addr constant [4 x i8] c"end\00" -@.str.6780 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6781 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.6782 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6783 = private unnamed_addr constant [10 x i8] c": error: \00" -@.str.6784 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6785 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6786 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6787 = private unnamed_addr constant [2 x i8] c":\00" -@.str.6788 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6789 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6790 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6791 = private unnamed_addr constant [2 x i8] c":\00" -@.str.6792 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6793 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.6794 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6795 = private unnamed_addr constant [2 x i8] c"@\00" -@.str.6796 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6797 = private unnamed_addr constant [3 x i8] c"@R\00" -@.str.6798 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6799 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6800 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6801 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6802 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6803 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6804 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6805 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6806 = private unnamed_addr constant [3 x i8] c"@V\00" -@.str.6807 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6808 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6809 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6810 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6811 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6812 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6813 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6814 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6815 = private unnamed_addr constant [3 x i8] c"@F\00" -@.str.6816 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6817 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6818 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6819 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6820 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6821 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6822 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6823 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6824 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6825 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6826 = private unnamed_addr constant [2 x i8] c"|\00" -@.str.6827 = private unnamed_addr constant [3 x i8] c"@S\00" -@.str.6828 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6829 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6830 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6831 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6832 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6833 = private unnamed_addr constant [4 x i8] c"@SF\00" -@.str.6834 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6835 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6836 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6837 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6838 = private unnamed_addr constant [3 x i8] c"@E\00" -@.str.6839 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6840 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6841 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6842 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6843 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6844 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6845 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6846 = private unnamed_addr constant [2 x i8] c",\00" -@.str.6847 = private unnamed_addr constant [3 x i8] c"@I\00" -@.str.6848 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6751 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6752 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6753 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6754 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6755 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6756 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6757 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6758 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6759 = private unnamed_addr constant [25 x i8] c"undefined reference to `\00" +@.str.6760 = private unnamed_addr constant [25 x i8] c"undefined reference to `\00" +@.str.6761 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.6762 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6763 = private unnamed_addr constant [19 x i8] c"undefined symbol: \00" +@.str.6764 = private unnamed_addr constant [19 x i8] c"undefined symbol: \00" +@.str.6765 = private unnamed_addr constant [3 x i8] c" \0A\00" +@.str.6766 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6767 = private unnamed_addr constant [28 x i8] c"unresolved external symbol \00" +@.str.6768 = private unnamed_addr constant [28 x i8] c"unresolved external symbol \00" +@.str.6769 = private unnamed_addr constant [4 x i8] c" \0A\0D\00" +@.str.6770 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6771 = private unnamed_addr constant [15 x i8] c"cannot find -l\00" +@.str.6772 = private unnamed_addr constant [15 x i8] c"cannot find -l\00" +@.str.6773 = private unnamed_addr constant [5 x i8] c": \0A\0D\00" +@.str.6774 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6775 = private unnamed_addr constant [25 x i8] c"library not found for -l\00" +@.str.6776 = private unnamed_addr constant [25 x i8] c"library not found for -l\00" +@.str.6777 = private unnamed_addr constant [5 x i8] c": \0A\0D\00" +@.str.6778 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6779 = private unnamed_addr constant [14 x i8] c"ld: library '\00" +@.str.6780 = private unnamed_addr constant [14 x i8] c"ld: library '\00" +@.str.6781 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.6782 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6783 = private unnamed_addr constant [12 x i8] c"framework '\00" +@.str.6784 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6785 = private unnamed_addr constant [10 x i8] c"not found\00" +@.str.6786 = private unnamed_addr constant [12 x i8] c"framework '\00" +@.str.6787 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.6788 = private unnamed_addr constant [11 x i8] c".framework\00" +@.str.6789 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6790 = private unnamed_addr constant [2 x i8] c"\22\00" +@.str.6791 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6792 = private unnamed_addr constant [20 x i8] c"\22, referenced from:\00" +@.str.6793 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6794 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6795 = private unnamed_addr constant [20 x i8] c"\22, referenced from:\00" +@.str.6796 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6797 = private unnamed_addr constant [2 x i8] c"_\00" +@.str.6798 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6799 = private unnamed_addr constant [22 x i8] c"error: linking failed\00" +@.str.6800 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6801 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6802 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6803 = private unnamed_addr constant [21 x i8] c"error: the library '\00" +@.str.6804 = private unnamed_addr constant [63 x i8] c"' wasn't found. Is it installed? (on Nix: add it to shell.nix)\00" +@.str.6805 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6806 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6807 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6808 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6809 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6810 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6811 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6812 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6813 = private unnamed_addr constant [3 x i8] c", \00" +@.str.6814 = private unnamed_addr constant [6 x i8] c" and \00" +@.str.6815 = private unnamed_addr constant [6 x i8] c" more\00" +@.str.6816 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6817 = private unnamed_addr constant [26 x i8] c"error: no code found for \00" +@.str.6818 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6819 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6820 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6821 = private unnamed_addr constant [5 x i8] c"come\00" +@.str.6822 = private unnamed_addr constant [6 x i8] c"comes\00" +@.str.6823 = private unnamed_addr constant [8 x i8] c"error: \00" +@.str.6824 = private unnamed_addr constant [2 x i8] c" \00" +@.str.6825 = private unnamed_addr constant [8 x i8] c" from \22\00" +@.str.6826 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6827 = private unnamed_addr constant [32 x i8] c"\22, but its library isn't linked\00" +@.str.6828 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6829 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6830 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6831 = private unnamed_addr constant [75 x i8] c" the header only says the functions exist; their code lives in a library.\00" +@.str.6832 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6833 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6834 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6835 = private unnamed_addr constant [67 x i8] c" add this at the top of your file (with the library's real name):\00" +@.str.6836 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6837 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6838 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6839 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6840 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6841 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6842 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6843 = private unnamed_addr constant [13 x i8] c" link \22\00" +@.str.6844 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6845 = private unnamed_addr constant [2 x i8] c"\22\00" +@.str.6846 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6847 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6848 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str.6849 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6850 = private unnamed_addr constant [5 x i8] c"/doc\00" -@.str.6851 = private unnamed_addr constant [5 x i8] c".fch\00" -@.str.6852 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6853 = private unnamed_addr constant [12 x i8] c" --overlay \00" -@.str.6854 = private unnamed_addr constant [2 x i8] c"=\00" -@.str.6855 = private unnamed_addr constant [9 x i8] c"/out.txt\00" -@.str.6856 = private unnamed_addr constant [8 x i8] c" index \00" -@.str.6857 = private unnamed_addr constant [4 x i8] c" > \00" -@.str.6858 = private unnamed_addr constant [6 x i8] c" 2>&1\00" -@.str.6859 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6860 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6861 = private unnamed_addr constant [6 x i8] c"range\00" -@.str.6862 = private unnamed_addr constant [9 x i8] c"severity\00" -@.str.6863 = private unnamed_addr constant [7 x i8] c"source\00" -@.str.6864 = private unnamed_addr constant [6 x i8] c"finch\00" -@.str.6865 = private unnamed_addr constant [8 x i8] c"message\00" -@.str.6866 = private unnamed_addr constant [4 x i8] c"uri\00" -@.str.6867 = private unnamed_addr constant [12 x i8] c"diagnostics\00" -@.str.6868 = private unnamed_addr constant [32 x i8] c"textDocument/publishDiagnostics\00" -@.str.6869 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6870 = private unnamed_addr constant [5 x i8] c"kind\00" -@.str.6871 = private unnamed_addr constant [9 x i8] c"markdown\00" -@.str.6872 = private unnamed_addr constant [6 x i8] c"value\00" -@.str.6873 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6874 = private unnamed_addr constant [9 x i8] c"contents\00" -@.str.6875 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6876 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6877 = private unnamed_addr constant [4 x i8] c"uri\00" -@.str.6878 = private unnamed_addr constant [6 x i8] c"range\00" -@.str.6879 = private unnamed_addr constant [2 x i8] c".\00" -@.str.6880 = private unnamed_addr constant [5 x i8] c"name\00" -@.str.6881 = private unnamed_addr constant [5 x i8] c"kind\00" -@.str.6882 = private unnamed_addr constant [6 x i8] c"start\00" -@.str.6883 = private unnamed_addr constant [4 x i8] c"end\00" -@.str.6884 = private unnamed_addr constant [6 x i8] c"range\00" -@.str.6885 = private unnamed_addr constant [15 x i8] c"selectionRange\00" -@.str.6886 = private unnamed_addr constant [6 x i8] c"label\00" -@.str.6887 = private unnamed_addr constant [5 x i8] c"kind\00" -@.str.6888 = private unnamed_addr constant [7 x i8] c"detail\00" -@.str.6889 = private unnamed_addr constant [5 x i8] c"kind\00" -@.str.6890 = private unnamed_addr constant [9 x i8] c"markdown\00" -@.str.6891 = private unnamed_addr constant [6 x i8] c"value\00" -@.str.6892 = private unnamed_addr constant [14 x i8] c"documentation\00" -@.str.6893 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6894 = private unnamed_addr constant [2 x i8] c".\00" -@.str.6895 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6896 = private unnamed_addr constant [33 x i8] c"called .push() on a null pointer\00" -@.str.6897 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6898 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6899 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6900 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6901 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6902 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6903 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6904 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6905 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.6906 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6850 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6851 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6852 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6853 = private unnamed_addr constant [5 x i8] c"/rt-\00" +@.str.6854 = private unnamed_addr constant [4 x i8] c"2.5\00" +@.str.6855 = private unnamed_addr constant [3 x i8] c".o\00" +@.str.6856 = private unnamed_addr constant [6 x i8] c".part\00" +@.str.6857 = private unnamed_addr constant [7 x i8] c" -fPIC\00" +@.str.6858 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6859 = private unnamed_addr constant [5 x i8] c".log\00" +@.str.6860 = private unnamed_addr constant [5 x i8] c" -O2\00" +@.str.6861 = private unnamed_addr constant [5 x i8] c" -c \00" +@.str.6862 = private unnamed_addr constant [5 x i8] c" -o \00" +@.str.6863 = private unnamed_addr constant [4 x i8] c" > \00" +@.str.6864 = private unnamed_addr constant [6 x i8] c" 2>&1\00" +@.str.6865 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6866 = private unnamed_addr constant [47 x i8] c"error: couldn't build the Finch runtime with '\00" +@.str.6867 = private unnamed_addr constant [31 x i8] c"' (is a C compiler installed?)\00" +@.str.6868 = private unnamed_addr constant [12 x i8] c"FINCH_CLANG\00" +@.str.6869 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6870 = private unnamed_addr constant [6 x i8] c"clang\00" +@.str.6871 = private unnamed_addr constant [9 x i8] c"FINCH_CC\00" +@.str.6872 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6873 = private unnamed_addr constant [9 x i8] c"FINCH_CC\00" +@.str.6874 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6875 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6876 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6877 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6878 = private unnamed_addr constant [4 x i8] c".ll\00" +@.str.6879 = private unnamed_addr constant [3 x i8] c".o\00" +@.str.6880 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6881 = private unnamed_addr constant [11 x i8] c" --target=\00" +@.str.6882 = private unnamed_addr constant [5 x i8] c".log\00" +@.str.6883 = private unnamed_addr constant [2 x i8] c" \00" +@.str.6884 = private unnamed_addr constant [8 x i8] c" -w -c \00" +@.str.6885 = private unnamed_addr constant [5 x i8] c" -o \00" +@.str.6886 = private unnamed_addr constant [4 x i8] c" > \00" +@.str.6887 = private unnamed_addr constant [6 x i8] c" 2>&1\00" +@.str.6888 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6889 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6890 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6891 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6892 = private unnamed_addr constant [47 x i8] c"error: clang couldn't compile the program's IR\00" +@.str.6893 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6894 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6895 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6896 = private unnamed_addr constant [2 x i8] c" \00" +@.str.6897 = private unnamed_addr constant [2 x i8] c" \00" +@.str.6898 = private unnamed_addr constant [5 x i8] c" -o \00" +@.str.6899 = private unnamed_addr constant [5 x i8] c" -lm\00" +@.str.6900 = private unnamed_addr constant [13 x i8] c" -dynamiclib\00" +@.str.6901 = private unnamed_addr constant [9 x i8] c" -shared\00" +@.str.6902 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6903 = private unnamed_addr constant [3 x i8] c".c\00" +@.str.6904 = private unnamed_addr constant [2 x i8] c".\00" +@.str.6905 = private unnamed_addr constant [3 x i8] c".o\00" +@.str.6906 = private unnamed_addr constant [7 x i8] c" -fPIC\00" @.str.6907 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6908 = private unnamed_addr constant [8 x i8] c"struct \00" -@.str.6909 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6910 = private unnamed_addr constant [6 x i8] c"enum \00" -@.str.6911 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6912 = private unnamed_addr constant [2 x i8] c".\00" +@.str.6908 = private unnamed_addr constant [5 x i8] c" -O2\00" +@.str.6909 = private unnamed_addr constant [5 x i8] c" -c \00" +@.str.6910 = private unnamed_addr constant [5 x i8] c" -o \00" +@.str.6911 = private unnamed_addr constant [4 x i8] c" > \00" +@.str.6912 = private unnamed_addr constant [6 x i8] c" 2>&1\00" @.str.6913 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6914 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6915 = private unnamed_addr constant [3 x i8] c"[]\00" -@.str.6916 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6917 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.6918 = private unnamed_addr constant [5 x i8] c"char\00" -@.str.6919 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6920 = private unnamed_addr constant [5 x i8] c"ptr[\00" -@.str.6921 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6922 = private unnamed_addr constant [2 x i8] c"]\00" -@.str.6923 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6924 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6925 = private unnamed_addr constant [3 x i8] c"[]\00" -@.str.6926 = private unnamed_addr constant [4 x i8] c"str\00" -@.str.6927 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6928 = private unnamed_addr constant [5 x i8] c"map[\00" -@.str.6929 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6930 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6931 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6932 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6914 = private unnamed_addr constant [25 x i8] c"error: couldn't compile \00" +@.str.6915 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6916 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6917 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6918 = private unnamed_addr constant [2 x i8] c" \00" +@.str.6919 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6920 = private unnamed_addr constant [3 x i8] c".o\00" +@.str.6921 = private unnamed_addr constant [15 x i8] c"src/linker.fch\00" +@.str.6922 = private unnamed_addr constant [3 x i8] c".a\00" +@.str.6923 = private unnamed_addr constant [2 x i8] c" \00" +@.str.6924 = private unnamed_addr constant [2 x i8] c" \00" +@.str.6925 = private unnamed_addr constant [4 x i8] c" > \00" +@.str.6926 = private unnamed_addr constant [6 x i8] c" 2>&1\00" +@.str.6927 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6928 = private unnamed_addr constant [43 x i8] c"error: no C compiler found to link with ('\00" +@.str.6929 = private unnamed_addr constant [33 x i8] c"'; install one, or set FINCH_CC)\00" +@.str.6930 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6931 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6932 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str.6933 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6934 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6935 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6936 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6937 = private unnamed_addr constant [8 x i8] c"struct \00" -@.str.6938 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6939 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6940 = private unnamed_addr constant [6 x i8] c"enum \00" -@.str.6941 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6942 = private unnamed_addr constant [7 x i8] c"module\00" -@.str.6943 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6944 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6945 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6946 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6947 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6948 = private unnamed_addr constant [13 x i8] c"isIncomplete\00" -@.str.6949 = private unnamed_addr constant [6 x i8] c"items\00" +@.str.6934 = private unnamed_addr constant [5 x i8] c"%.*s\00" +@.str.6935 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6936 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6937 = private unnamed_addr constant [8 x i8] c"file://\00" +@.str.6938 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6939 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6940 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6941 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6942 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6943 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6944 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6945 = private unnamed_addr constant [17 x i8] c"0123456789ABCDEF\00" +@.str.6946 = private unnamed_addr constant [8 x i8] c"file://\00" +@.str.6947 = private unnamed_addr constant [6 x i8] c"/-_.~\00" +@.str.6948 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6949 = private unnamed_addr constant [2 x i8] c"%\00" @.str.6950 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" @.str.6951 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6952 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6952 = private unnamed_addr constant [1 x i8] c"\00" @.str.6953 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6954 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6955 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6954 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6955 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str.6956 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" @.str.6957 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6958 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6959 = private unnamed_addr constant [5 x i8] c"ptr[\00" -@.str.6960 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6961 = private unnamed_addr constant [2 x i8] c"]\00" -@.str.6962 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.6963 = private unnamed_addr constant [6 x i8] c"label\00" -@.str.6964 = private unnamed_addr constant [6 x i8] c"label\00" -@.str.6965 = private unnamed_addr constant [11 x i8] c"parameters\00" -@.str.6966 = private unnamed_addr constant [11 x i8] c"signatures\00" -@.str.6967 = private unnamed_addr constant [16 x i8] c"activeSignature\00" -@.str.6968 = private unnamed_addr constant [16 x i8] c"activeParameter\00" -@.str.6969 = private unnamed_addr constant [6 x i8] c"label\00" -@.str.6970 = private unnamed_addr constant [14 x i8] c"documentation\00" -@.str.6971 = private unnamed_addr constant [11 x i8] c"signatures\00" -@.str.6972 = private unnamed_addr constant [16 x i8] c"activeSignature\00" -@.str.6973 = private unnamed_addr constant [16 x i8] c"activeParameter\00" -@.str.6974 = private unnamed_addr constant [13 x i8] c"textDocument\00" -@.str.6975 = private unnamed_addr constant [5 x i8] c"text\00" -@.str.6976 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6977 = private unnamed_addr constant [13 x i8] c"textDocument\00" -@.str.6978 = private unnamed_addr constant [4 x i8] c"uri\00" -@.str.6979 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6980 = private unnamed_addr constant [7 x i8] c"method\00" -@.str.6981 = private unnamed_addr constant [1 x i8] c"\00" -@.str.6982 = private unnamed_addr constant [7 x i8] c"params\00" -@.str.6983 = private unnamed_addr constant [3 x i8] c"id\00" -@.str.6984 = private unnamed_addr constant [11 x i8] c"initialize\00" -@.str.6985 = private unnamed_addr constant [17 x i8] c"textDocumentSync\00" -@.str.6986 = private unnamed_addr constant [14 x i8] c"hoverProvider\00" -@.str.6987 = private unnamed_addr constant [19 x i8] c"definitionProvider\00" -@.str.6988 = private unnamed_addr constant [23 x i8] c"documentSymbolProvider\00" -@.str.6989 = private unnamed_addr constant [2 x i8] c".\00" -@.str.6990 = private unnamed_addr constant [18 x i8] c"triggerCharacters\00" -@.str.6991 = private unnamed_addr constant [19 x i8] c"completionProvider\00" -@.str.6992 = private unnamed_addr constant [2 x i8] c"(\00" -@.str.6993 = private unnamed_addr constant [2 x i8] c",\00" -@.str.6994 = private unnamed_addr constant [18 x i8] c"triggerCharacters\00" -@.str.6995 = private unnamed_addr constant [22 x i8] c"signatureHelpProvider\00" -@.str.6996 = private unnamed_addr constant [13 x i8] c"capabilities\00" -@.str.6997 = private unnamed_addr constant [5 x i8] c"name\00" -@.str.6998 = private unnamed_addr constant [6 x i8] c"finch\00" -@.str.6999 = private unnamed_addr constant [11 x i8] c"serverInfo\00" -@.str.7000 = private unnamed_addr constant [9 x i8] c"shutdown\00" -@.str.7001 = private unnamed_addr constant [5 x i8] c"exit\00" -@.str.7002 = private unnamed_addr constant [21 x i8] c"textDocument/didOpen\00" -@.str.7003 = private unnamed_addr constant [23 x i8] c"textDocument/didChange\00" -@.str.7004 = private unnamed_addr constant [15 x i8] c"contentChanges\00" -@.str.7005 = private unnamed_addr constant [5 x i8] c"text\00" -@.str.7006 = private unnamed_addr constant [1 x i8] c"\00" -@.str.7007 = private unnamed_addr constant [21 x i8] c"textDocument/didSave\00" -@.str.7008 = private unnamed_addr constant [22 x i8] c"textDocument/didClose\00" -@.str.7009 = private unnamed_addr constant [4 x i8] c"uri\00" -@.str.7010 = private unnamed_addr constant [12 x i8] c"diagnostics\00" -@.str.7011 = private unnamed_addr constant [32 x i8] c"textDocument/publishDiagnostics\00" -@.str.7012 = private unnamed_addr constant [19 x i8] c"textDocument/hover\00" -@.str.7013 = private unnamed_addr constant [24 x i8] c"textDocument/definition\00" -@.str.7014 = private unnamed_addr constant [24 x i8] c"textDocument/completion\00" -@.str.7015 = private unnamed_addr constant [28 x i8] c"textDocument/documentSymbol\00" -@.str.7016 = private unnamed_addr constant [27 x i8] c"textDocument/signatureHelp\00" -@.str.7017 = private unnamed_addr constant [9 x i8] c"position\00" -@.str.7018 = private unnamed_addr constant [5 x i8] c"line\00" -@.str.7019 = private unnamed_addr constant [9 x i8] c"position\00" -@.str.7020 = private unnamed_addr constant [10 x i8] c"character\00" +@.str.6958 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6959 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6960 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.6961 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6962 = private unnamed_addr constant [1 x i8] c"\00" +declare i32 @getchar() +@.str.6963 = private unnamed_addr constant [1 x i8] c"\00" +@.str.6964 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6965 = private unnamed_addr constant [2 x i8] c"\0D\00" +@.str.6966 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@stdin = external global ptr +declare i32 @feof(ptr) +@.str.6967 = private unnamed_addr constant [33 x i8] c"the editor closed the connection\00" +@.str.6968 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6969 = private unnamed_addr constant [16 x i8] c"Content-Length:\00" +@.str.6970 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6971 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6972 = private unnamed_addr constant [26 x i8] c"the message was cut short\00" +@.str.6973 = private unnamed_addr constant [17 x i8] c"Content-Length: \00" +@.str.6974 = private unnamed_addr constant [5 x i8] c"\0D\0A\0D\0A\00" +@.str.6975 = private unnamed_addr constant [1 x i8] c"\00" +@stdout = external global ptr +declare i64 @fwrite(ptr, i64, i64, ptr) +@.str.6976 = private unnamed_addr constant [8 x i8] c"jsonrpc\00" +@.str.6977 = private unnamed_addr constant [4 x i8] c"2.0\00" +@.str.6978 = private unnamed_addr constant [3 x i8] c"id\00" +@.str.6979 = private unnamed_addr constant [7 x i8] c"result\00" +@.str.6980 = private unnamed_addr constant [8 x i8] c"jsonrpc\00" +@.str.6981 = private unnamed_addr constant [4 x i8] c"2.0\00" +@.str.6982 = private unnamed_addr constant [7 x i8] c"method\00" +@.str.6983 = private unnamed_addr constant [7 x i8] c"params\00" +@.str.6984 = private unnamed_addr constant [5 x i8] c"line\00" +@.str.6985 = private unnamed_addr constant [10 x i8] c"character\00" +@.str.6986 = private unnamed_addr constant [6 x i8] c"start\00" +@.str.6987 = private unnamed_addr constant [4 x i8] c"end\00" +@.str.6988 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6989 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.6990 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6991 = private unnamed_addr constant [10 x i8] c": error: \00" +@.str.6992 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6993 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6994 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6995 = private unnamed_addr constant [2 x i8] c":\00" +@.str.6996 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6997 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6998 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.6999 = private unnamed_addr constant [2 x i8] c":\00" +@.str.7000 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7001 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.7002 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7003 = private unnamed_addr constant [2 x i8] c"@\00" +@.str.7004 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7005 = private unnamed_addr constant [3 x i8] c"@R\00" +@.str.7006 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7007 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7008 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7009 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7010 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7011 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7012 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7013 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7014 = private unnamed_addr constant [3 x i8] c"@V\00" +@.str.7015 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7016 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7017 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7018 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7019 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7020 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" @.str.7021 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.7022 = private unnamed_addr constant [1 x i8] c"\00" -@.str.7023 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" -@.str.7024 = private unnamed_addr constant [19 x i8] c"textDocument/hover\00" -@.str.7025 = private unnamed_addr constant [24 x i8] c"textDocument/definition\00" -@.str.7026 = private unnamed_addr constant [24 x i8] c"textDocument/completion\00" -@.str.7027 = private unnamed_addr constant [28 x i8] c"textDocument/documentSymbol\00" -@.str.7028 = private unnamed_addr constant [12 x i8] c"/finch_lsp_\00" -@.str.7029 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7030 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7031 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7032 = private unnamed_addr constant [2 x i8] c"\22\00" -@.str.7033 = private unnamed_addr constant [3 x i8] c"\5C\22\00" -@.str.7034 = private unnamed_addr constant [3 x i8] c"\5C\5C\00" -@.str.7035 = private unnamed_addr constant [3 x i8] c"\5Cn\00" -@.str.7036 = private unnamed_addr constant [3 x i8] c"\5Cr\00" -@.str.7037 = private unnamed_addr constant [3 x i8] c"\5Ct\00" -@.str.7038 = private unnamed_addr constant [5 x i8] c"\5Cu00\00" -@.str.7039 = private unnamed_addr constant [2 x i8] c"\22\00" -@.str.7040 = private unnamed_addr constant [1 x i8] c"\00" -@.str.7041 = private unnamed_addr constant [17 x i8] c"0123456789abcdef\00" -@.str.7042 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7043 = private unnamed_addr constant [1 x i8] c"\00" -@.str.7044 = private unnamed_addr constant [1 x i8] c"\00" -@.str.7045 = private unnamed_addr constant [2 x i8] c",\00" -@.str.7046 = private unnamed_addr constant [2 x i8] c":\00" -@.str.7047 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.7048 = private unnamed_addr constant [3 x i8] c": \00" -@.str.7049 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7050 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7051 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.7052 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7053 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7054 = private unnamed_addr constant [5 x i8] c"true\00" -@.str.7055 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7056 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7057 = private unnamed_addr constant [6 x i8] c"false\00" -@.str.7058 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7059 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7060 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7061 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7062 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7063 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7064 = private unnamed_addr constant [3 x i8] c"[]\00" -@.str.7065 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7066 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7067 = private unnamed_addr constant [2 x i8] c"[\00" -@.str.7068 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7069 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7070 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7071 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7072 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7073 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7074 = private unnamed_addr constant [2 x i8] c"]\00" -@.str.7075 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7076 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7077 = private unnamed_addr constant [3 x i8] c"{}\00" -@.str.7078 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7079 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7080 = private unnamed_addr constant [2 x i8] c"{\00" -@.str.7081 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7082 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7083 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7084 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7085 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7086 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7087 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" -@.str.7088 = private unnamed_addr constant [2 x i8] c"}\00" -@.str.7089 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7090 = private unnamed_addr constant [36 x i8] c"no arm of this match fits the value\00" -@.str.7091 = private unnamed_addr constant [1 x i8] c"\00" -@.str.7092 = private unnamed_addr constant [1 x i8] c"\00" -@.str.7093 = private unnamed_addr constant [1 x i8] c"\00" -@.str.7094 = private unnamed_addr constant [3 x i8] c" \00" -@.str.7095 = private unnamed_addr constant [1 x i8] c"\00" -@.str.7096 = private unnamed_addr constant [1 x i8] c"\00" -@.str.7097 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7098 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7099 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7100 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7101 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7102 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7103 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7104 = private unnamed_addr constant [6 x i8] c"line \00" -@.str.7105 = private unnamed_addr constant [10 x i8] c", column \00" -@.str.7106 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7107 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7108 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7109 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7110 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7111 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7112 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7113 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7114 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7115 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7116 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7117 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7118 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7119 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7120 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7121 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7122 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7123 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7124 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7125 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7126 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7127 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7128 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7129 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7130 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7131 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7132 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7133 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7134 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7135 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7136 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7137 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7138 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7139 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7140 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7141 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7142 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7143 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7144 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7145 = private unnamed_addr constant [27 x i8] c"json: the text ends where \00" -@.str.7146 = private unnamed_addr constant [13 x i8] c" should be (\00" -@.str.7147 = private unnamed_addr constant [2 x i8] c")\00" -@.str.7148 = private unnamed_addr constant [14 x i8] c"json: found '\00" -@.str.7149 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7150 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7151 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7152 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7153 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7154 = private unnamed_addr constant [9 x i8] c"' where \00" -@.str.7155 = private unnamed_addr constant [13 x i8] c" should be (\00" -@.str.7156 = private unnamed_addr constant [2 x i8] c")\00" -@.str.7157 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7158 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7159 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7160 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7161 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7162 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7163 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7164 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7165 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7166 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7167 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7168 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.7169 = private unnamed_addr constant [2 x i8] c"'\00" -@.str.7170 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7171 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7172 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7173 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7174 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7175 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7176 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7177 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7178 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7179 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7180 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7181 = private unnamed_addr constant [20 x i8] c"a hexadecimal digit\00" -@.str.7182 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7183 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7184 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7185 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7186 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7187 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7188 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7189 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7190 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7191 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7192 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7193 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7194 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7195 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7196 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7197 = private unnamed_addr constant [31 x i8] c"json: a text is never closed (\00" -@.str.7198 = private unnamed_addr constant [2 x i8] c")\00" -@.str.7199 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7200 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7201 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7202 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7203 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7204 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7205 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7206 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7207 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7208 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7209 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7210 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7211 = private unnamed_addr constant [1 x i8] c"\00" -@.str.7212 = private unnamed_addr constant [56 x i8] c"json: a line break or control character inside a text (\00" -@.str.7213 = private unnamed_addr constant [2 x i8] c")\00" -@.str.7214 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7215 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7216 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7217 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7218 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7219 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7220 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7221 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7222 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7223 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7224 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7225 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str.7226 = private unnamed_addr constant [2 x i8] c"\09\00" -@.str.7227 = private unnamed_addr constant [2 x i8] c"\0D\00" -@.str.7228 = private unnamed_addr constant [3 x i8] c"\5Cu\00" -@.str.7229 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7230 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7231 = private unnamed_addr constant [23 x i8] c"json: unknown escape \5C\00" -@.str.7232 = private unnamed_addr constant [13 x i8] c" in a text (\00" -@.str.7233 = private unnamed_addr constant [2 x i8] c")\00" -@.str.7234 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7235 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7236 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7237 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7022 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7023 = private unnamed_addr constant [3 x i8] c"@F\00" +@.str.7024 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7025 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7026 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7027 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7028 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7029 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7030 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7031 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7032 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7033 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7034 = private unnamed_addr constant [2 x i8] c"|\00" +@.str.7035 = private unnamed_addr constant [3 x i8] c"@S\00" +@.str.7036 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7037 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7038 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7039 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7040 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7041 = private unnamed_addr constant [4 x i8] c"@SF\00" +@.str.7042 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7043 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7044 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7045 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7046 = private unnamed_addr constant [3 x i8] c"@E\00" +@.str.7047 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7048 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7049 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7050 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7051 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7052 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7053 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7054 = private unnamed_addr constant [2 x i8] c",\00" +@.str.7055 = private unnamed_addr constant [3 x i8] c"@I\00" +@.str.7056 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7057 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7058 = private unnamed_addr constant [5 x i8] c"/doc\00" +@.str.7059 = private unnamed_addr constant [5 x i8] c".fch\00" +@.str.7060 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7061 = private unnamed_addr constant [12 x i8] c" --overlay \00" +@.str.7062 = private unnamed_addr constant [2 x i8] c"=\00" +@.str.7063 = private unnamed_addr constant [9 x i8] c"/out.txt\00" +@.str.7064 = private unnamed_addr constant [8 x i8] c" index \00" +@.str.7065 = private unnamed_addr constant [4 x i8] c" > \00" +@.str.7066 = private unnamed_addr constant [6 x i8] c" 2>&1\00" +@.str.7067 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7068 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7069 = private unnamed_addr constant [6 x i8] c"range\00" +@.str.7070 = private unnamed_addr constant [9 x i8] c"severity\00" +@.str.7071 = private unnamed_addr constant [7 x i8] c"source\00" +@.str.7072 = private unnamed_addr constant [6 x i8] c"finch\00" +@.str.7073 = private unnamed_addr constant [8 x i8] c"message\00" +@.str.7074 = private unnamed_addr constant [4 x i8] c"uri\00" +@.str.7075 = private unnamed_addr constant [12 x i8] c"diagnostics\00" +@.str.7076 = private unnamed_addr constant [32 x i8] c"textDocument/publishDiagnostics\00" +@.str.7077 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7078 = private unnamed_addr constant [5 x i8] c"kind\00" +@.str.7079 = private unnamed_addr constant [9 x i8] c"markdown\00" +@.str.7080 = private unnamed_addr constant [6 x i8] c"value\00" +@.str.7081 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7082 = private unnamed_addr constant [9 x i8] c"contents\00" +@.str.7083 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7084 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7085 = private unnamed_addr constant [4 x i8] c"uri\00" +@.str.7086 = private unnamed_addr constant [6 x i8] c"range\00" +@.str.7087 = private unnamed_addr constant [2 x i8] c".\00" +@.str.7088 = private unnamed_addr constant [5 x i8] c"name\00" +@.str.7089 = private unnamed_addr constant [5 x i8] c"kind\00" +@.str.7090 = private unnamed_addr constant [6 x i8] c"start\00" +@.str.7091 = private unnamed_addr constant [4 x i8] c"end\00" +@.str.7092 = private unnamed_addr constant [6 x i8] c"range\00" +@.str.7093 = private unnamed_addr constant [15 x i8] c"selectionRange\00" +@.str.7094 = private unnamed_addr constant [6 x i8] c"label\00" +@.str.7095 = private unnamed_addr constant [5 x i8] c"kind\00" +@.str.7096 = private unnamed_addr constant [7 x i8] c"detail\00" +@.str.7097 = private unnamed_addr constant [5 x i8] c"kind\00" +@.str.7098 = private unnamed_addr constant [9 x i8] c"markdown\00" +@.str.7099 = private unnamed_addr constant [6 x i8] c"value\00" +@.str.7100 = private unnamed_addr constant [14 x i8] c"documentation\00" +@.str.7101 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7102 = private unnamed_addr constant [2 x i8] c".\00" +@.str.7103 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7104 = private unnamed_addr constant [33 x i8] c"called .push() on a null pointer\00" +@.str.7105 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7106 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7107 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7108 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7109 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7110 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7111 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7112 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7113 = private unnamed_addr constant [2 x i8] c"[\00" +@.str.7114 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7115 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7116 = private unnamed_addr constant [8 x i8] c"struct \00" +@.str.7117 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7118 = private unnamed_addr constant [6 x i8] c"enum \00" +@.str.7119 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7120 = private unnamed_addr constant [2 x i8] c".\00" +@.str.7121 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7122 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7123 = private unnamed_addr constant [3 x i8] c"[]\00" +@.str.7124 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7125 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.7126 = private unnamed_addr constant [5 x i8] c"char\00" +@.str.7127 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7128 = private unnamed_addr constant [5 x i8] c"ptr[\00" +@.str.7129 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7130 = private unnamed_addr constant [2 x i8] c"]\00" +@.str.7131 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7132 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7133 = private unnamed_addr constant [3 x i8] c"[]\00" +@.str.7134 = private unnamed_addr constant [4 x i8] c"str\00" +@.str.7135 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7136 = private unnamed_addr constant [5 x i8] c"map[\00" +@.str.7137 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7138 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7139 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7140 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7141 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7142 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7143 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7144 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7145 = private unnamed_addr constant [8 x i8] c"struct \00" +@.str.7146 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7147 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7148 = private unnamed_addr constant [6 x i8] c"enum \00" +@.str.7149 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7150 = private unnamed_addr constant [7 x i8] c"module\00" +@.str.7151 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7152 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7153 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7154 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7155 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7156 = private unnamed_addr constant [13 x i8] c"isIncomplete\00" +@.str.7157 = private unnamed_addr constant [6 x i8] c"items\00" +@.str.7158 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7159 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7160 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7161 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7162 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7163 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7164 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7165 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7166 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7167 = private unnamed_addr constant [5 x i8] c"ptr[\00" +@.str.7168 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7169 = private unnamed_addr constant [2 x i8] c"]\00" +@.str.7170 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7171 = private unnamed_addr constant [6 x i8] c"label\00" +@.str.7172 = private unnamed_addr constant [6 x i8] c"label\00" +@.str.7173 = private unnamed_addr constant [11 x i8] c"parameters\00" +@.str.7174 = private unnamed_addr constant [11 x i8] c"signatures\00" +@.str.7175 = private unnamed_addr constant [16 x i8] c"activeSignature\00" +@.str.7176 = private unnamed_addr constant [16 x i8] c"activeParameter\00" +@.str.7177 = private unnamed_addr constant [6 x i8] c"label\00" +@.str.7178 = private unnamed_addr constant [14 x i8] c"documentation\00" +@.str.7179 = private unnamed_addr constant [11 x i8] c"signatures\00" +@.str.7180 = private unnamed_addr constant [16 x i8] c"activeSignature\00" +@.str.7181 = private unnamed_addr constant [16 x i8] c"activeParameter\00" +@.str.7182 = private unnamed_addr constant [13 x i8] c"textDocument\00" +@.str.7183 = private unnamed_addr constant [5 x i8] c"text\00" +@.str.7184 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7185 = private unnamed_addr constant [13 x i8] c"textDocument\00" +@.str.7186 = private unnamed_addr constant [4 x i8] c"uri\00" +@.str.7187 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7188 = private unnamed_addr constant [7 x i8] c"method\00" +@.str.7189 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7190 = private unnamed_addr constant [7 x i8] c"params\00" +@.str.7191 = private unnamed_addr constant [3 x i8] c"id\00" +@.str.7192 = private unnamed_addr constant [11 x i8] c"initialize\00" +@.str.7193 = private unnamed_addr constant [17 x i8] c"textDocumentSync\00" +@.str.7194 = private unnamed_addr constant [14 x i8] c"hoverProvider\00" +@.str.7195 = private unnamed_addr constant [19 x i8] c"definitionProvider\00" +@.str.7196 = private unnamed_addr constant [23 x i8] c"documentSymbolProvider\00" +@.str.7197 = private unnamed_addr constant [2 x i8] c".\00" +@.str.7198 = private unnamed_addr constant [18 x i8] c"triggerCharacters\00" +@.str.7199 = private unnamed_addr constant [19 x i8] c"completionProvider\00" +@.str.7200 = private unnamed_addr constant [2 x i8] c"(\00" +@.str.7201 = private unnamed_addr constant [2 x i8] c",\00" +@.str.7202 = private unnamed_addr constant [18 x i8] c"triggerCharacters\00" +@.str.7203 = private unnamed_addr constant [22 x i8] c"signatureHelpProvider\00" +@.str.7204 = private unnamed_addr constant [13 x i8] c"capabilities\00" +@.str.7205 = private unnamed_addr constant [5 x i8] c"name\00" +@.str.7206 = private unnamed_addr constant [6 x i8] c"finch\00" +@.str.7207 = private unnamed_addr constant [11 x i8] c"serverInfo\00" +@.str.7208 = private unnamed_addr constant [9 x i8] c"shutdown\00" +@.str.7209 = private unnamed_addr constant [5 x i8] c"exit\00" +@.str.7210 = private unnamed_addr constant [21 x i8] c"textDocument/didOpen\00" +@.str.7211 = private unnamed_addr constant [23 x i8] c"textDocument/didChange\00" +@.str.7212 = private unnamed_addr constant [15 x i8] c"contentChanges\00" +@.str.7213 = private unnamed_addr constant [5 x i8] c"text\00" +@.str.7214 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7215 = private unnamed_addr constant [21 x i8] c"textDocument/didSave\00" +@.str.7216 = private unnamed_addr constant [22 x i8] c"textDocument/didClose\00" +@.str.7217 = private unnamed_addr constant [4 x i8] c"uri\00" +@.str.7218 = private unnamed_addr constant [12 x i8] c"diagnostics\00" +@.str.7219 = private unnamed_addr constant [32 x i8] c"textDocument/publishDiagnostics\00" +@.str.7220 = private unnamed_addr constant [19 x i8] c"textDocument/hover\00" +@.str.7221 = private unnamed_addr constant [24 x i8] c"textDocument/definition\00" +@.str.7222 = private unnamed_addr constant [24 x i8] c"textDocument/completion\00" +@.str.7223 = private unnamed_addr constant [28 x i8] c"textDocument/documentSymbol\00" +@.str.7224 = private unnamed_addr constant [27 x i8] c"textDocument/signatureHelp\00" +@.str.7225 = private unnamed_addr constant [9 x i8] c"position\00" +@.str.7226 = private unnamed_addr constant [5 x i8] c"line\00" +@.str.7227 = private unnamed_addr constant [9 x i8] c"position\00" +@.str.7228 = private unnamed_addr constant [10 x i8] c"character\00" +@.str.7229 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7230 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7231 = private unnamed_addr constant [12 x i8] c"src/lsp.fch\00" +@.str.7232 = private unnamed_addr constant [19 x i8] c"textDocument/hover\00" +@.str.7233 = private unnamed_addr constant [24 x i8] c"textDocument/definition\00" +@.str.7234 = private unnamed_addr constant [24 x i8] c"textDocument/completion\00" +@.str.7235 = private unnamed_addr constant [28 x i8] c"textDocument/documentSymbol\00" +@.str.7236 = private unnamed_addr constant [12 x i8] c"/finch_lsp_\00" +@.str.7237 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" @.str.7238 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7239 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7240 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7241 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7242 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7243 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7244 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7245 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7246 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7247 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7248 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7249 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7250 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7251 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7252 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7253 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7254 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7255 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7256 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7257 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7258 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7259 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7260 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7261 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7262 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7239 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7240 = private unnamed_addr constant [2 x i8] c"\22\00" +@.str.7241 = private unnamed_addr constant [3 x i8] c"\5C\22\00" +@.str.7242 = private unnamed_addr constant [3 x i8] c"\5C\5C\00" +@.str.7243 = private unnamed_addr constant [3 x i8] c"\5Cn\00" +@.str.7244 = private unnamed_addr constant [3 x i8] c"\5Cr\00" +@.str.7245 = private unnamed_addr constant [3 x i8] c"\5Ct\00" +@.str.7246 = private unnamed_addr constant [5 x i8] c"\5Cu00\00" +@.str.7247 = private unnamed_addr constant [2 x i8] c"\22\00" +@.str.7248 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7249 = private unnamed_addr constant [17 x i8] c"0123456789abcdef\00" +@.str.7250 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7251 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7252 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7253 = private unnamed_addr constant [2 x i8] c",\00" +@.str.7254 = private unnamed_addr constant [2 x i8] c":\00" +@.str.7255 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.7256 = private unnamed_addr constant [3 x i8] c": \00" +@.str.7257 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7258 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.7259 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.7260 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7261 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.7262 = private unnamed_addr constant [5 x i8] c"true\00" @.str.7263 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7264 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7265 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7264 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.7265 = private unnamed_addr constant [6 x i8] c"false\00" @.str.7266 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7267 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7267 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" @.str.7268 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7269 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7270 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7271 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7272 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7269 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.7270 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7271 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.7272 = private unnamed_addr constant [3 x i8] c"[]\00" @.str.7273 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7274 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7275 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7274 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.7275 = private unnamed_addr constant [2 x i8] c"[\00" @.str.7276 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7277 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7277 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" @.str.7278 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7279 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7280 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7281 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7282 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7279 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.7280 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7281 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.7282 = private unnamed_addr constant [2 x i8] c"]\00" @.str.7283 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7284 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7285 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7284 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.7285 = private unnamed_addr constant [3 x i8] c"{}\00" @.str.7286 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7287 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7288 = private unnamed_addr constant [9 x i8] c"a number\00" +@.str.7287 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.7288 = private unnamed_addr constant [2 x i8] c"{\00" @.str.7289 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7290 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7290 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" @.str.7291 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7292 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" -@.str.7293 = private unnamed_addr constant [8 x i8] c"a value\00" +@.str.7292 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.7293 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" @.str.7294 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7295 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7296 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7297 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7298 = private unnamed_addr constant [16 x i8] c"a key in quotes\00" -@.str.7299 = private unnamed_addr constant [4 x i8] c"':'\00" -@.str.7300 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7301 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7302 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7303 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7304 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7305 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7306 = private unnamed_addr constant [11 x i8] c"',' or '}'\00" +@.str.7295 = private unnamed_addr constant [28 x i8] c"used .out on a null pointer\00" +@.str.7296 = private unnamed_addr constant [2 x i8] c"}\00" +@.str.7297 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7298 = private unnamed_addr constant [36 x i8] c"no arm of this match fits the value\00" +@.str.7299 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7300 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7301 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7302 = private unnamed_addr constant [3 x i8] c" \00" +@.str.7303 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7304 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7305 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7306 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" @.str.7307 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7308 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7308 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" @.str.7309 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7310 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7310 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" @.str.7311 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7312 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7313 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" -@.str.7314 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" -@.str.7315 = private unnamed_addr constant [11 x i8] c"',' or ']'\00" -@.str.7316 = private unnamed_addr constant [5 x i8] c"true\00" -@.str.7317 = private unnamed_addr constant [6 x i8] c"false\00" -@.str.7318 = private unnamed_addr constant [5 x i8] c"null\00" -@.str.7319 = private unnamed_addr constant [8 x i8] c"a value\00" -@.str.7320 = private unnamed_addr constant [20 x i8] c"the end of the text\00" -@.str.7321 = private unnamed_addr constant [19 x i8] c"runtime/finch_rt.c\00" -@.str.7322 = private unnamed_addr constant [13 x i8] c"std/json.fch\00" -@.str.7323 = private unnamed_addr constant [13 x i8] c"std/path.fch\00" -@.str.7324 = private unnamed_addr constant [13 x i8] c"std/proc.fch\00" -@.str.7325 = private unnamed_addr constant [21 x i8] c"std/proc_windows.fch\00" -@.str.7326 = private unnamed_addr constant [13 x i8] c"std/time.fch\00" -@.str.7327 = private unnamed_addr constant [21 x i8] c"std/time_windows.fch\00" -@.str.7328 = private unnamed_addr constant [16 x i8] c"std/finch_win.h\00" -@.str.7329 = private unnamed_addr constant [24982 x i8] c"// The Finch runtime: string and array helpers, input, files and runtime errors.\0A// It is embedded in the compiler, compiled once into a cache folder, and linked\0A// statically into every Finch program. Everything here is plain C with no state.\0A//\0A// Layout shared with the compiler (src/codegen.cpp):\0A// str = { char *ptr; int64 len; int64 cap } ptr is always NUL-terminated\0A// cap > 0 : heap memory owned by the value (cap bytes allocated)\0A// cap == 0 : a string literal, valid forever, never written to\0A// cap == -1: borrowed from C, must be copied before it is kept\0A// []T = { T *ptr; int64 len; int64 cap } owns ptr when cap > 0\0A// map[K]V: see \22maps\22 below\0A\0A#include \0A#include \0A#include \0A#include \0A#include \0A#include \0A#include \0A#ifndef _WIN32\0A#include \0A#endif\0A\0Atypedef struct {\0A char *ptr;\0A int64_t len;\0A int64_t cap;\0A} FStr;\0A\0Atypedef struct {\0A void *ptr;\0A int64_t len;\0A int64_t cap;\0A} FArr;\0A\0Astatic char empty[1] = \22\22;\0A\0A// ---------- runtime errors ----------\0A\0A// A program that loads Finch libraries (finch build --shared) can take runtime errors over\0A// instead of the process exiting: finch_module_on_fatal(handler) in each library. The handler\0A// gets the message and must not return (longjmp out, or exit itself).\0Astatic void (*fatal_hook)(const char *msg);\0Avoid finch_on_fatal(void (*hook)(const char *msg)) { fatal_hook = hook; }\0A\0Astatic __attribute__((noreturn)) void fatal(const char *msg) {\0A if (fatal_hook) fatal_hook(msg);\0A fflush(stdout);\0A fprintf(stderr, \22%s\5Cn\22, msg);\0A exit(1);\0A}\0A\0A__attribute__((noreturn, cold)) void finch_panic(const char *file, int64_t line, const char *msg) {\0A char full[1024];\0A snprintf(full, sizeof full, \22%s:%lld: runtime error: %s\22, file, (long long)line, msg);\0A fflush(stdout);\0A fatal(full);\0A}\0A\0A__attribute__((noreturn, cold)) void finch_panic_index(const char *file, int64_t line, int64_t i, int64_t len) {\0A char msg[128];\0A snprintf(msg, sizeof msg, \22index %lld is out of range (the length is %lld)\22, (long long)i, (long long)len);\0A finch_panic(file, line, msg);\0A}\0A\0Astatic void *must(void *p) {\0A if (!p) {\0A fflush(stdout);\0A fatal(\22runtime error: out of memory\22);\0A }\0A return p;\0A}\0A\0Avoid *finch_alloc(int64_t n) { return must(malloc(n ? (size_t)n : 1)); }\0Avoid *finch_zalloc(int64_t n) { return must(calloc(1, n ? (size_t)n : 1)); }\0A\0A// ---------- strings ----------\0A\0Astatic void str_heap(FStr *out, const char *p, int64_t len) {\0A char *m = finch_alloc(len + 1);\0A if (len) memcpy(m, p, (size_t)len);\0A m[len] = 0;\0A out->ptr = m;\0A out->len = len;\0A out->cap = len + 1;\0A}\0A\0Astatic void str_static(FStr *out, const char *lit) {\0A out->ptr = (char *)lit;\0A out->len = (int64_t)strlen(lit);\0A out->cap = 0;\0A}\0A\0A// A copy that can be kept: literals are shared, everything else is duplicated.\0Avoid finch_str_copy(FStr *out, const FStr *s) {\0A if (s->cap == 0) *out = *s;\0A else str_heap(out, s->ptr, s->len);\0A}\0A\0A// Make `s` writable (before s[i] = c).\0Avoid finch_str_own(FStr *s) {\0A if (s->cap > 0) return;\0A FStr t;\0A str_heap(&t, s->ptr, s->len);\0A *s = t;\0A}\0A\0Avoid finch_str_drop(FStr *s) {\0A if (s->cap > 0) free(s->ptr);\0A}\0A\0Avoid finch_str_from_c(FStr *out, const char *p) {\0A if (!p) {\0A str_static(out, empty);\0A return;\0A }\0A out->ptr = (char *)p;\0A out->len = (int64_t)strlen(p);\0A out->cap = -1;\0A}\0A\0Avoid finch_str_concat(FStr *out, const FStr *a, const FStr *b) {\0A int64_t len = a->len + b->len;\0A char *m = finch_alloc(len + 1);\0A memcpy(m, a->ptr, (size_t)a->len);\0A memcpy(m + a->len, b->ptr, (size_t)b->len);\0A m[len] = 0;\0A out->ptr = m;\0A out->len = len;\0A out->cap = len + 1;\0A}\0A\0Aint finch_str_eq(const FStr *a, const FStr *b) {\0A return a->len == b->len && memcmp(a->ptr, b->ptr, (size_t)a->len) == 0;\0A}\0A\0Aint64_t finch_str_cmp(const FStr *a, const FStr *b) {\0A int64_t n = a->len < b->len ? a->len : b->len;\0A int c = memcmp(a->ptr, b->ptr, (size_t)n);\0A if (c) return c < 0 ? -1 : 1;\0A return a->len < b->len ? -1 : a->len > b->len;\0A}\0A\0Avoid finch_str_from_int(FStr *out, int64_t v) {\0A char buf[32];\0A int n = snprintf(buf, sizeof buf, \22%lld\22, (long long)v);\0A str_heap(out, buf, n);\0A}\0A\0Avoid finch_str_from_uint(FStr *out, uint64_t v) {\0A char buf[32];\0A int n = snprintf(buf, sizeof buf, \22%llu\22, (unsigned long long)v);\0A str_heap(out, buf, n);\0A}\0A\0Avoid finch_str_from_float(FStr *out, double v) {\0A char buf[64];\0A int n = snprintf(buf, sizeof buf, \22%g\22, v);\0A str_heap(out, buf, n);\0A}\0A\0Avoid finch_str_from_char(FStr *out, char c) { str_heap(out, &c, 1); }\0A\0Avoid finch_str_from_bool(FStr *out, int b) { str_static(out, b ? \22true\22 : \22false\22); }\0A\0Astatic void number_error(char *msg, size_t size, const FStr *s, const char *kind) {\0A snprintf(msg, size, \22can't turn \5C\22%.*s\5C\22 into %s\22, (int)(s->len > 100 ? 100 : s->len), s->ptr ? s->ptr : \22\22, kind);\0A}\0A\0Astatic int parse_int(const FStr *s, int64_t *out) {\0A const char *p = s->ptr ? s->ptr : \22\22;\0A while (isspace((unsigned char)*p)) p++;\0A char *end;\0A errno = 0;\0A long long v = strtoll(p, &end, 10);\0A while (isspace((unsigned char)*end)) end++;\0A *out = v;\0A return !(end == p || *end || errno == ERANGE);\0A}\0A\0Astatic int parse_float(const FStr *s, double *out) {\0A const char *p = s->ptr ? s->ptr : \22\22;\0A while (isspace((unsigned char)*p)) p++;\0A char *end;\0A double v = strtod(p, &end);\0A while (isspace((unsigned char)*end)) end++;\0A *out = v;\0A return !(end == p || *end);\0A}\0A\0Aint64_t finch_str_to_int(const FStr *s, const char *file, int64_t line) {\0A int64_t v;\0A if (!parse_int(s, &v)) {\0A char msg[200];\0A number_error(msg, sizeof msg, s, \22int\22);\0A finch_panic(file, line, msg);\0A }\0A return v;\0A}\0A\0Adouble finch_str_to_float(const FStr *s, const char *file, int64_t line) {\0A double v;\0A if (!parse_float(s, &v)) {\0A char msg[200];\0A number_error(msg, sizeof msg, s, \22float\22);\0A finch_panic(file, line, msg);\0A }\0A return v;\0A}\0A\0A// ---------- errors as values: int(s) or 0, try read_file(p) ... ----------\0A// Each gives back 1 on success; on failure 0, with the message in *err.\0A\0Astatic void set_error(FStr *err, const char *msg) { str_heap(err, msg, (int64_t)strlen(msg)); }\0A\0Aint finch_str_try_int(const FStr *s, int64_t *out, FStr *err) {\0A if (parse_int(s, out)) return 1;\0A char msg[200];\0A number_error(msg, sizeof msg, s, \22int\22);\0A set_error(err, msg);\0A *out = 0;\0A return 0;\0A}\0A\0Aint finch_str_try_float(const FStr *s, double *out, FStr *err) {\0A if (parse_float(s, out)) return 1;\0A char msg[200];\0A number_error(msg, sizeof msg, s, \22float\22);\0A set_error(err, msg);\0A *out = 0;\0A return 0;\0A}\0A\0Astatic void file_error(FStr *err, const char *what, const FStr *path) {\0A char msg[300];\0A snprintf(msg, sizeof msg, \22can't %s the file \5C\22%.*s\5C\22: %s\22, what, (int)(path->len > 200 ? 200 : path->len),\0A path->ptr ? path->ptr : \22\22, strerror(errno));\0A set_error(err, msg);\0A}\0A\0A// when `fn main() -> !` fails\0Avoid finch_report_error(const FStr *msg) {\0A fflush(stdout);\0A fprintf(stderr, \22error: %.*s\5Cn\22, (int)msg->len, msg->ptr ? msg->ptr : \22\22);\0A}\0A\0Avoid finch_str_sub(FStr *out, const FStr *s, int64_t start, int64_t end, const char *file, int64_t line) {\0A if (start < 0 || end > s->len || start > end) {\0A char msg[160];\0A snprintf(msg, sizeof msg, \22sub(%lld, %lld) is out of range (the length is %lld)\22, (long long)start,\0A (long long)end, (long long)s->len);\0A finch_panic(file, line, msg);\0A }\0A str_heap(out, s->ptr + start, end - start);\0A}\0A\0Aint64_t finch_str_find(const FStr *s, const FStr *t) {\0A if (t->len == 0) return 0;\0A for (int64_t i = 0; i + t->len <= s->len; i++)\0A if (s->ptr[i] == t->ptr[0] && memcmp(s->ptr + i, t->ptr, (size_t)t->len) == 0) return i;\0A return -1;\0A}\0A\0Aint finch_str_starts(const FStr *s, const FStr *t) {\0A return t->len <= s->len && memcmp(s->ptr, t->ptr, (size_t)t->len) == 0;\0A}\0A\0Aint finch_str_ends(const FStr *s, const FStr *t) {\0A return t->len <= s->len && memcmp(s->ptr + s->len - t->len, t->ptr, (size_t)t->len) == 0;\0A}\0A\0Avoid finch_str_trim(FStr *out, const FStr *s) {\0A int64_t a = 0, b = s->len;\0A while (a < b && isspace((unsigned char)s->ptr[a])) a++;\0A while (b > a && isspace((unsigned char)s->ptr[b - 1])) b--;\0A str_heap(out, s->ptr + a, b - a);\0A}\0A\0Avoid finch_str_upper(FStr *out, const FStr *s) {\0A str_heap(out, s->ptr, s->len);\0A for (int64_t i = 0; i < out->len; i++) out->ptr[i] = (char)toupper((unsigned char)out->ptr[i]);\0A}\0A\0Avoid finch_str_lower(FStr *out, const FStr *s) {\0A str_heap(out, s->ptr, s->len);\0A for (int64_t i = 0; i < out->len; i++) out->ptr[i] = (char)tolower((unsigned char)out->ptr[i]);\0A}\0A\0Avoid finch_str_replace(FStr *out, const FStr *s, const FStr *from, const FStr *to) {\0A if (from->len == 0) {\0A str_heap(out, s->ptr, s->len);\0A return;\0A }\0A int64_t count = 0;\0A for (int64_t i = 0; i + from->len <= s->len;) {\0A if (memcmp(s->ptr + i, from->ptr, (size_t)from->len) == 0) {\0A count++;\0A i += from->len;\0A } else {\0A i++;\0A }\0A }\0A int64_t len = s->len + count * (to->len - from->len);\0A char *m = finch_alloc(len + 1), *w = m;\0A for (int64_t i = 0; i < s->len;) {\0A if (i + from->len <= s->len && memcmp(s->ptr + i, from->ptr, (size_t)from->len) == 0) {\0A memcpy(w, to->ptr, (size_t)to->len);\0A w += to->len;\0A i += from->len;\0A } else {\0A *w++ = s->ptr[i++];\0A }\0A }\0A *w = 0;\0A out->ptr = m;\0A out->len = len;\0A out->cap = len + 1;\0A}\0A\0Astatic void arr_push_str(FArr *a, const char *p, int64_t len);\0A\0A// \22a,b,,c\22.split(\22,\22) -> [\22a\22, \22b\22, \22\22, \22c\22]; split(\22\22) gives single characters.\0Avoid finch_str_split(FArr *out, const FStr *s, const FStr *sep) {\0A out->ptr = NULL;\0A out->len = out->cap = 0;\0A if (sep->len == 0) {\0A for (int64_t i = 0; i < s->len; i++) arr_push_str(out, s->ptr + i, 1);\0A return;\0A }\0A int64_t start = 0;\0A for (int64_t i = 0; i + sep->len <= s->len;) {\0A if (memcmp(s->ptr + i, sep->ptr, (size_t)sep->len) == 0) {\0A arr_push_str(out, s->ptr + start, i - start);\0A i += sep->len;\0A start = i;\0A } else {\0A i++;\0A }\0A }\0A arr_push_str(out, s->ptr + start, s->len - start);\0A}\0A\0Avoid finch_str_join(FStr *out, const FArr *parts, const FStr *sep) {\0A const FStr *p = parts->ptr;\0A int64_t len = 0;\0A for (int64_t i = 0; i < parts->len; i++) len += p[i].len + (i ? sep->len : 0);\0A char *m = finch_alloc(len + 1), *w = m;\0A for (int64_t i = 0; i < parts->len; i++) {\0A if (i) {\0A memcpy(w, sep->ptr, (size_t)sep->len);\0A w += sep->len;\0A }\0A memcpy(w, p[i].ptr, (size_t)p[i].len);\0A w += p[i].len;\0A }\0A *w = 0;\0A out->ptr = m;\0A out->len = len;\0A out->cap = len + 1;\0A}\0A\0Avoid finch_str_repeat(FStr *out, const FStr *s, int64_t n) {\0A if (n < 0) n = 0;\0A int64_t len = s->len * n;\0A char *m = finch_alloc(len + 1);\0A for (int64_t i = 0; i < n; i++) memcpy(m + i * s->len, s->ptr, (size_t)s->len);\0A m[len] = 0;\0A out->ptr = m;\0A out->len = len;\0A out->cap = len + 1;\0A}\0A\0Avoid finch_str_from_bytes(FStr *out, const FArr *bytes) { str_heap(out, bytes->ptr, bytes->len); }\0A\0A// ---------- building text: print(x) and str(x) of arrays, maps and structs ----------\0A// A buffer starts as an empty str and grows on the heap.\0A\0Avoid finch_buf_add(FStr *b, const char *p, int64_t n) {\0A if (b->len + n + 1 > b->cap) {\0A int64_t cap = b->cap > 0 ? b->cap * 2 : 32;\0A while (cap < b->len + n + 1) cap *= 2;\0A b->ptr = must(realloc(b->cap > 0 ? b->ptr : NULL, (size_t)cap));\0A b->cap = cap;\0A }\0A if (n) memcpy(b->ptr + b->len, p, (size_t)n);\0A b->len += n;\0A b->ptr[b->len] = 0;\0A}\0A\0Astatic void buf_fmt(FStr *b, const char *fmt, ...) __attribute__((format(printf, 2, 3)));\0Astatic void buf_fmt(FStr *b, const char *fmt, ...) {\0A char t[64];\0A va_list ap;\0A va_start(ap, fmt);\0A int n = vsnprintf(t, sizeof t, fmt, ap);\0A va_end(ap);\0A finch_buf_add(b, t, n);\0A}\0A\0Avoid finch_buf_int(FStr *b, int64_t v) { buf_fmt(b, \22%lld\22, (long long)v); }\0Avoid finch_buf_uint(FStr *b, uint64_t v) { buf_fmt(b, \22%llu\22, (unsigned long long)v); }\0Avoid finch_buf_float(FStr *b, double v) { buf_fmt(b, \22%g\22, v); }\0Avoid finch_buf_bool(FStr *b, int v) { finch_buf_add(b, v ? \22true\22 : \22false\22, v ? 4 : 5); }\0Avoid finch_buf_ptr(FStr *b, const void *p) {\0A if (p) buf_fmt(b, \220x%llx\22, (unsigned long long)(uintptr_t)p);\0A else finch_buf_add(b, \22null\22, 4);\0A}\0A\0Avoid finch_buf_char(FStr *b, char c, int quoted) {\0A if (quoted) finch_buf_add(b, \22'\22, 1);\0A finch_buf_add(b, &c, 1);\0A if (quoted) finch_buf_add(b, \22'\22, 1);\0A}\0A\0Avoid finch_buf_str(FStr *b, const FStr *s, int quoted) {\0A if (quoted) finch_buf_add(b, \22\5C\22\22, 1);\0A finch_buf_add(b, s->ptr, s->len);\0A if (quoted) finch_buf_add(b, \22\5C\22\22, 1);\0A}\0A\0A// print the buffer and free it\0Avoid finch_buf_print(FStr *b) {\0A if (b->len) fwrite(b->ptr, 1, (size_t)b->len, stdout);\0A if (b->cap > 0) free(b->ptr);\0A}\0A\0A// ---------- arrays ----------\0A\0Avoid finch_arr_reserve(FArr *a, int64_t need, int64_t es) {\0A if (need <= a->cap) return;\0A int64_t cap = a->cap * 2;\0A if (cap < 4) cap = 4;\0A if (cap < need) cap = need;\0A a->ptr = must(realloc(a->cap > 0 ? a->ptr : NULL, (size_t)(cap * es)));\0A a->cap = cap;\0A}\0A\0Avoid finch_arr_make(FArr *out, int64_t len, int64_t es) {\0A if (len < 0) len = 0;\0A out->ptr = len ? finch_zalloc(len * es) : NULL;\0A out->len = len;\0A out->cap = len;\0A}\0A\0A// grow or shrink to `len`; new elements are zero\0Avoid finch_arr_resize(FArr *a, int64_t len, int64_t es) {\0A if (len < 0) len = 0;\0A finch_arr_reserve(a, len, es);\0A if (len > a->len) memset((char *)a->ptr + a->len * es, 0, (size_t)((len - a->len) * es));\0A a->len = len;\0A}\0A\0A// a byte-for-byte copy of the elements (the compiler deep-copies owning elements afterwards)\0Avoid finch_arr_clone_raw(FArr *out, const FArr *a, int64_t es) {\0A out->len = a->len;\0A out->cap = a->len;\0A out->ptr = a->len ? finch_alloc(a->len * es) : NULL;\0A if (a->len) memcpy(out->ptr, a->ptr, (size_t)(a->len * es));\0A}\0A\0Avoid finch_arr_free(FArr *a) {\0A if (a->cap > 0) free(a->ptr);\0A}\0A\0A// open a hole at i (0 <= i <= len), len grows by one\0Avoid finch_arr_insert_gap(FArr *a, int64_t i, int64_t es, const char *file, int64_t line) {\0A if (i < 0 || i > a->len) finch_panic_index(file, line, i, a->len);\0A finch_arr_reserve(a, a->len + 1, es);\0A char *p = a->ptr;\0A memmove(p + (i + 1) * es, p + i * es, (size_t)((a->len - i) * es));\0A a->len++;\0A}\0A\0A// close the hole at i (the element was already moved out), len shrinks by one\0Avoid finch_arr_remove_gap(FArr *a, int64_t i, int64_t es) {\0A char *p = a->ptr;\0A memmove(p + i * es, p + (i + 1) * es, (size_t)((a->len - i - 1) * es));\0A a->len--;\0A}\0A\0Astatic void arr_push_str(FArr *a, const char *p, int64_t len) {\0A finch_arr_reserve(a, a->len + 1, (int64_t)sizeof(FStr));\0A str_heap((FStr *)a->ptr + a->len, p, len);\0A a->len++;\0A}\0A\0Avoid finch_bytes_from_str(FArr *out, const FStr *s) {\0A out->len = out->cap = s->len;\0A out->ptr = s->len ? finch_alloc(s->len) : NULL;\0A if (s->len) memcpy(out->ptr, s->ptr, (size_t)s->len);\0A}\0A\0A// ---------- program arguments, input and files ----------\0A\0Avoid finch_args(FArr *out, int argc, char **argv) {\0A out->len = out->cap = argc;\0A out->ptr = finch_alloc((int64_t)sizeof(FStr) * (argc ? argc : 1));\0A for (int i = 0; i < argc; i++) str_heap((FStr *)out->ptr + i, argv[i], (int64_t)strlen(argv[i]));\0A}\0A\0A// input(\22Name? \22) prints the prompt and reads one line, without the newline.\0Avoid finch_input(FStr *out, const FStr *prompt) {\0A if (prompt->len) fwrite(prompt->ptr, 1, (size_t)prompt->len, stdout);\0A fflush(stdout);\0A // read one line of any length (getline isn't available everywhere)\0A size_t size = 128, n = 0;\0A char *line = finch_alloc((int64_t)size);\0A int c, got = 0;\0A while ((c = fgetc(stdin)) != EOF) {\0A got = 1;\0A if (c == '\5Cn') break;\0A if (n + 1 >= size) line = must(realloc(line, size *= 2));\0A line[n++] = (char)c;\0A }\0A if (!got) {\0A free(line);\0A str_static(out, empty);\0A return;\0A }\0A while (n > 0 && line[n - 1] == '\5Cr') n--;\0A line[n] = 0;\0A out->ptr = line;\0A out->len = (int64_t)n;\0A out->cap = (int64_t)size;\0A}\0A\0Aint finch_file_exists(const FStr *path) {\0A FILE *f = fopen(path->ptr, \22rb\22);\0A if (f) fclose(f);\0A return f != NULL;\0A}\0A\0Aint finch_try_read_file(FStr *out, const FStr *path, FStr *err) {\0A FILE *f = fopen(path->ptr ? path->ptr : \22\22, \22rb\22);\0A if (!f) {\0A file_error(err, \22read\22, path);\0A return 0;\0A }\0A fseek(f, 0, SEEK_END);\0A long size = ftell(f);\0A fseek(f, 0, SEEK_SET);\0A char *m = finch_alloc(size + 1);\0A size_t got = fread(m, 1, (size_t)size, f);\0A fclose(f);\0A m[got] = 0;\0A out->ptr = m;\0A out->len = (int64_t)got;\0A out->cap = size + 1;\0A return 1;\0A}\0A\0Avoid finch_read_file(FStr *out, const FStr *path, const char *file, int64_t line) {\0A FILE *f = fopen(path->ptr ? path->ptr : \22\22, \22rb\22);\0A if (!f) {\0A char msg[300];\0A snprintf(msg, sizeof msg, \22can't read the file \5C\22%.*s\5C\22: %s\22, (int)(path->len > 200 ? 200 : path->len),\0A path->ptr, strerror(errno));\0A finch_panic(file, line, msg);\0A }\0A fseek(f, 0, SEEK_END);\0A long size = ftell(f);\0A fseek(f, 0, SEEK_SET);\0A char *m = finch_alloc(size + 1);\0A size_t got = fread(m, 1, (size_t)size, f);\0A fclose(f);\0A m[got] = 0;\0A out->ptr = m;\0A out->len = (int64_t)got;\0A out->cap = size + 1;\0A}\0A\0A// shell(\22ls -l\22): run a command, give back its exit code\0Aint64_t finch_shell(const FStr *cmd) {\0A fflush(stdout);\0A int status = system(cmd->ptr ? cmd->ptr : \22\22);\0A#ifdef _WIN32\0A return status; // Windows gives the exit code directly\0A#else\0A if (status == -1) return -1;\0A if (WIFEXITED(status)) return WEXITSTATUS(status);\0A return 128 + (WIFSIGNALED(status) ? WTERMSIG(status) : 0);\0A#endif\0A}\0A\0Aint finch_delete_file(const FStr *path) { return remove(path->ptr ? path->ptr : \22\22) == 0; }\0A\0Aint finch_try_delete_file(const FStr *path, FStr *err) {\0A if (remove(path->ptr ? path->ptr : \22\22) == 0) return 1;\0A file_error(err, \22delete\22, path);\0A return 0;\0A}\0A\0A// stdin/stdout/stderr are macros on some systems (Windows), so Finch asks for them here\0Avoid *finch_std_stream(int i) { return i == 0 ? (void *)stdin : i == 1 ? (void *)stdout : (void *)stderr; }\0A\0Aint finch_write_file(const FStr *path, const FStr *text) {\0A FILE *f = fopen(path->ptr ? path->ptr : \22\22, \22wb\22);\0A if (!f) return 0;\0A size_t put = text->len ? fwrite(text->ptr, 1, (size_t)text->len, f) : 0;\0A return fclose(f) == 0 && put == (size_t)text->len;\0A}\0A\0Aint finch_try_write_file(const FStr *path, const FStr *text, FStr *err) {\0A errno = 0;\0A if (finch_write_file(path, text)) return 1;\0A if (!errno) errno = EIO;\0A file_error(err, \22write\22, path);\0A return 0;\0A}\0A\0A// ---------- maps ----------\0A// map[K]V = { entries; len; used; cap; index; icap; adds }\0A// entries: `used` slots of es bytes, each { uint64 hash; K key; V value }, in insertion order.\0A// A removed entry keeps its slot (hash 0) until the next resize packs the slots.\0A// index: icap slots (a power of two, at least 2 * cap): -1 empty, -2 removed, else an entry number.\0A// adds: how many keys were ever added; a `for` over the map stops with an error if it changes.\0A// The compiler stores, copies and drops keys and values; the runtime only finds and places entries.\0A// Keys are compared byte for byte (numbers, chars, bools) or as text (kstr).\0A\0Atypedef struct {\0A char *entries;\0A int64_t len, used, cap;\0A int64_t *index;\0A int64_t icap;\0A int64_t adds;\0A} FMap;\0A\0Astatic uint64_t map_hash(const void *key, int64_t ks, int kstr) {\0A const unsigned char *p;\0A size_t n;\0A if (kstr) {\0A const FStr *s = key;\0A p = (const unsigned char *)s->ptr;\0A n = (size_t)s->len;\0A } else {\0A p = key;\0A n = (size_t)ks;\0A }\0A uint64_t h = 1469598103934665603ULL; // FNV-1a, then mixed so the low bits spread well\0A for (size_t i = 0; i < n; i++) {\0A h ^= p[i];\0A h *= 1099511628211ULL;\0A }\0A h ^= h >> 31;\0A h *= 0xbf58476d1ce4e5b9ULL;\0A h ^= h >> 29;\0A return h | 1; // 0 marks a removed entry\0A}\0A\0Astatic int map_key_eq(const char *a, const void *b, int64_t ks, int kstr) {\0A if (!kstr) return memcmp(a, b, (size_t)ks) == 0;\0A const FStr *x = (const FStr *)a, *y = b;\0A return x->len == y->len && (x->len == 0 || memcmp(x->ptr, y->ptr, (size_t)x->len) == 0);\0A}\0A\0Astatic void map_reindex(FMap *m, int64_t es) {\0A if (m->len != m->used) { // pack the slots of removed entries away\0A int64_t j = 0;\0A for (int64_t i = 0; i < m->used; i++) {\0A char *e = m->entries + i * es;\0A if (*(uint64_t *)e == 0) continue;\0A if (i != j) memmove(m->entries + j * es, e, (size_t)es);\0A j++;\0A }\0A m->used = j;\0A }\0A int64_t icap = 16;\0A while (icap < m->cap * 2) icap *= 2;\0A free(m->index);\0A m->index = finch_alloc(icap * (int64_t)sizeof(int64_t));\0A memset(m->index, 0xff, (size_t)icap * sizeof(int64_t));\0A m->icap = icap;\0A for (int64_t i = 0; i < m->used; i++) {\0A uint64_t h = *(uint64_t *)(m->entries + i * es);\0A int64_t s = (int64_t)(h & (uint64_t)(icap - 1));\0A while (m->index[s] != -1) s = (s + 1) & (icap - 1);\0A m->index[s] = i;\0A }\0A}\0A\0A// the entry number of `key`, or -1\0Aint64_t finch_map_find(const FMap *m, const void *key, int64_t es, int64_t ks, int32_t kstr) {\0A if (m->len == 0) return -1;\0A uint64_t h = map_hash(key, ks, kstr);\0A for (int64_t s = (int64_t)(h & (uint64_t)(m->icap - 1));; s = (s + 1) & (m->icap - 1)) {\0A int64_t i = m->index[s];\0A if (i == -1) return -1;\0A if (i < 0) continue;\0A char *e = m->entries + i * es;\0A if (*(uint64_t *)e == h && map_key_eq(e + 8, key, ks, kstr)) return i;\0A }\0A}\0A\0A// The entry for `key`. A new one is zeroed except its hash (*added = 1); the compiler then stores the key.\0Aint64_t finch_map_slot(FMap *m, const void *key, int64_t es, int64_t ks, int32_t kstr, int32_t *added) {\0A int64_t i = finch_map_find(m, key, es, ks, kstr);\0A *added = i < 0;\0A if (i >= 0) return i;\0A if (m->used == m->cap) {\0A if (m->len * 4 < m->cap * 3) { // many removed slots: pack them instead of growing\0A map_reindex(m, es);\0A } else {\0A m->cap = m->cap ? m->cap * 2 : 8;\0A m->entries = must(realloc(m->entries, (size_t)(m->cap * es)));\0A map_reindex(m, es);\0A }\0A }\0A uint64_t h = map_hash(key, ks, kstr);\0A i = m->used++;\0A char *e = m->entries + i * es;\0A memset(e, 0, (size_t)es);\0A *(uint64_t *)e = h;\0A int64_t s = (int64_t)(h & (uint64_t)(m->icap - 1));\0A while (m->index[s] >= 0) s = (s + 1) & (m->icap - 1);\0A m->index[s] = i;\0A m->len++;\0A m->adds++;\0A return i;\0A}\0A\0A// Forget entry i (its key and value were already dropped by the compiler).\0Avoid finch_map_remove_at(FMap *m, int64_t i, int64_t es) {\0A char *e = m->entries + i * es;\0A uint64_t h = *(uint64_t *)e;\0A int64_t s = (int64_t)(h & (uint64_t)(m->icap - 1));\0A while (m->index[s] != i) s = (s + 1) & (m->icap - 1);\0A m->index[s] = -2;\0A *(uint64_t *)e = 0;\0A if (--m->len == 0) {\0A m->used = 0;\0A memset(m->index, 0xff, (size_t)m->icap * sizeof(int64_t));\0A }\0A}\0A\0Avoid finch_map_clear(FMap *m) {\0A m->len = m->used = 0;\0A if (m->index) memset(m->index, 0xff, (size_t)m->icap * sizeof(int64_t));\0A}\0A\0Avoid finch_map_free(FMap *m) {\0A free(m->entries);\0A free(m->index);\0A}\0A\0A// A copy of the slots and the index; the compiler then copies the keys and values that own memory.\0Avoid finch_map_clone_raw(FMap *out, const FMap *m, int64_t es) {\0A *out = *m;\0A if (!m->cap) return;\0A out->entries = finch_alloc(m->cap * es);\0A memcpy(out->entries, m->entries, (size_t)(m->used * es));\0A out->index = finch_alloc(m->icap * (int64_t)sizeof(int64_t));\0A memcpy(out->index, m->index, (size_t)m->icap * sizeof(int64_t));\0A}\0A\0A__attribute__((noreturn, cold)) void finch_map_changed(const char *file, int64_t line) {\0A finch_panic(file, line, \22a key was added to the map while looping over it (collect the new keys, and add them after the loop)\22);\0A}\0A\0A__attribute__((noreturn, cold)) void finch_map_missing(const char *file, int64_t line, const FStr *key) {\0A char msg[200];\0A snprintf(msg, sizeof msg, \22the key %.*s is not in the map (check with .has(key), or use .get(key, default))\22,\0A (int)(key->len > 100 ? 100 : key->len), key->ptr ? key->ptr : \22\22);\0A finch_panic(file, line, msg);\0A}\0A\00" -@.str.7330 = private unnamed_addr constant [12885 x i8] c"// JSON: read it, build it, write it.\0A//\0A// import json\0A//\0A// doc := try json.parse(\22{\5C\22name\5C\22: \5C\22Finch\5C\22, \5C\22tags\5C\22: [\5C\22fast\5C\22, \5C\22small\5C\22], \5C\22stars\5C\22: 5}\22)\0A// print(doc.get(\22name\22).str_or(\22\22)) Finch\0A// print(doc.get(\22tags\22).at(1).str_or(\22\22)) small\0A// print(doc.get(\22stars\22).int_or(0)) 5\0A// print(doc.get(\22missing\22).is_null()) true (a missing key is null, so chains never fail)\0A//\0A// out := json.new_object()\0A// out.set(\22ok\22, json.new_bool(true))\0A// list := json.new_list()\0A// list.push(json.new_number(1.5))\0A// out.set(\22values\22, list)\0A// print(json.stringify(out)) {\22ok\22:true,\22values\22:[1.5]}\0A// print(json.pretty(out)) the same, over several lines\0A\0Aenum Kind { Null, Bool, Number, Text, List, Object }\0A\0A// One JSON value. `kind` says which of the other fields it uses: flag for Bool, num for Number,\0A// text for Text, items for List, and items with keys (the same length, in the same order) for Object.\0Astruct Json {\0A Kind kind\0A bool flag\0A float num\0A str text\0A []Json items\0A []str keys\0A}\0A\0Afn new_null() -> Json {\0A return Json(kind: Kind.Null)\0A}\0A\0Afn new_bool(bool b) -> Json {\0A return Json(kind: Kind.Bool, flag: b)\0A}\0A\0Afn new_number(float n) -> Json {\0A return Json(kind: Kind.Number, num: n)\0A}\0A\0Afn new_text(str s) -> Json {\0A return Json(kind: Kind.Text, text: s)\0A}\0A\0Afn new_list() -> Json {\0A return Json(kind: Kind.List)\0A}\0A\0Afn new_object() -> Json {\0A return Json(kind: Kind.Object)\0A}\0A\0A// ---------- looking inside ----------\0A\0Afn Json.is_null() -> bool {\0A return self.kind == Kind.Null\0A}\0A\0A// the number of elements of a list, of keys of an object, of bytes of a text; 0 for the rest\0Afn Json.len() -> int {\0A return match self.kind {\0A List, Object -> self.items.len\0A Text -> self.text.len\0A else -> 0\0A }\0A}\0A\0Afn Json.has(str key) -> bool {\0A return self.kind == Kind.Object && self.keys.contains(key)\0A}\0A\0A// the value of a key of an object; null if there is none (or this is not an object)\0Afn Json.get(str key) -> Json {\0A if self.kind != Kind.Object {\0A return new_null()\0A }\0A i := self.keys.find(key)\0A if i < 0 {\0A return new_null()\0A }\0A return self.items[i]\0A}\0A\0A// the element of a list; null if there is none\0Afn Json.at(int i) -> Json {\0A if self.kind != Kind.List || i < 0 || i >= self.items.len {\0A return new_null()\0A }\0A return self.items[i]\0A}\0A\0A// the value if it is of that kind, else what was given\0Afn Json.str_or(str fallback) -> str {\0A if self.kind == Kind.Text {\0A return self.text\0A }\0A return fallback\0A}\0A\0Afn Json.float_or(float fallback) -> float {\0A if self.kind == Kind.Number {\0A return self.num\0A }\0A return fallback\0A}\0A\0Afn Json.int_or(int fallback) -> int {\0A if self.kind == Kind.Number {\0A return int(self.num)\0A }\0A return fallback\0A}\0A\0Afn Json.bool_or(bool fallback) -> bool {\0A if self.kind == Kind.Bool {\0A return self.flag\0A }\0A return fallback\0A}\0A\0A// the keys of an object, in the order they were written\0Afn Json.names() -> []str {\0A return self.keys\0A}\0A\0A// ---------- building ----------\0A\0A// add to the end of a list\0Afn Json.push(Json v) {\0A self.items.push(v)\0A}\0A\0A// give a key a value in an object; a key that is already there is replaced\0Afn Json.set(str key, Json v) {\0A i := self.keys.find(key)\0A if i >= 0 {\0A self.items[i] = v\0A return\0A }\0A self.keys.push(key)\0A self.items.push(v)\0A}\0A\0A// ---------- writing ----------\0A\0Afn quote(str s) -> str {\0A []str parts = [\22\5C\22\22]\0A for c in s {\0A n := int(c)\0A if c == '\22' {\0A parts.push(\22\5C\5C\5C\22\22)\0A } else if c == '\5C\5C' {\0A parts.push(\22\5C\5C\5C\5C\22)\0A } else if c == '\5Cn' {\0A parts.push(\22\5C\5Cn\22)\0A } else if c == '\5Cr' {\0A parts.push(\22\5C\5Cr\22)\0A } else if c == '\5Ct' {\0A parts.push(\22\5C\5Ct\22)\0A } else if n < 32 {\0A parts.push(\22\5C\5Cu00\22 + hexdigit(n / 16) + hexdigit(n % 16))\0A } else {\0A parts.push(str(c))\0A }\0A }\0A parts.push(\22\5C\22\22)\0A return parts.join(\22\22)\0A}\0A\0Afn hexdigit(int n) -> str {\0A digits := \220123456789abcdef\22\0A return str(digits[n])\0A}\0A\0Afn number_text(float n) -> str {\0A if n == float(int(n)) && n > -1000000000000000.0 && n < 1000000000000000.0 {\0A return str(int(n))\0A }\0A return str(n)\0A}\0A\0Astruct Writer {\0A []str out\0A}\0A\0Afn write(Json j, str indent, str pad, ptr[Writer] w) {\0A nl := \22\22\0A inner := \22\22\0A sep := \22,\22\0A colon := \22:\22\0A if indent.len > 0 {\0A nl = \22\5Cn\22\0A inner = pad + indent\0A colon = \22: \22\0A }\0A match j.kind {\0A Null -> w.out.push(\22null\22)\0A Bool -> {\0A if j.flag {\0A w.out.push(\22true\22)\0A } else {\0A w.out.push(\22false\22)\0A }\0A }\0A Number -> w.out.push(number_text(j.num))\0A Text -> w.out.push(quote(j.text))\0A List -> {\0A if j.items.len == 0 {\0A w.out.push(\22[]\22)\0A return\0A }\0A w.out.push(\22[\22 + nl)\0A for i, item in j.items {\0A if i > 0 {\0A w.out.push(sep + nl)\0A }\0A w.out.push(inner)\0A write(item, indent, inner, w)\0A }\0A w.out.push(nl + pad + \22]\22)\0A }\0A Object -> {\0A if j.items.len == 0 {\0A w.out.push(\22{}\22)\0A return\0A }\0A w.out.push(\22{\22 + nl)\0A for i, item in j.items {\0A if i > 0 {\0A w.out.push(sep + nl)\0A }\0A w.out.push(inner + quote(j.keys[i]) + colon)\0A write(item, indent, inner, w)\0A }\0A w.out.push(nl + pad + \22}\22)\0A }\0A }\0A}\0A\0A// the value as text on one line\0Afn stringify(Json j) -> str {\0A w := Writer()\0A write(j, \22\22, \22\22, addr(w))\0A return w.out.join(\22\22)\0A}\0A\0A// the value as text over several lines, indented by two spaces\0Afn pretty(Json j) -> str {\0A w := Writer()\0A write(j, \22 \22, \22\22, addr(w))\0A return w.out.join(\22\22)\0A}\0A\0A// ---------- reading ----------\0A\0Astruct Reader {\0A str src\0A int i\0A}\0A\0A// the line and column of a position, for a message\0Afn where(ptr[Reader] r) -> str {\0A line := 1\0A col := 1\0A for k in 0..r.i {\0A if k < r.src.len && r.src[k] == '\5Cn' {\0A line += 1\0A col = 1\0A } else {\0A col += 1\0A }\0A }\0A return \22line \22 + str(line) + \22, column \22 + str(col)\0A}\0A\0Afn peek(ptr[Reader] r) -> char {\0A if r.i < r.src.len {\0A return r.src[r.i]\0A }\0A return char(0)\0A}\0A\0Afn skip_space(ptr[Reader] r) {\0A while r.i < r.src.len && (r.src[r.i] == ' ' || r.src[r.i] == '\5Cn' || r.src[r.i] == '\5Ct' || r.src[r.i] == '\5Cr') {\0A r.i += 1\0A }\0A}\0A\0Afn unexpected(ptr[Reader] r, str wanted) -> str {\0A if r.i >= r.src.len {\0A return \22json: the text ends where \22 + wanted + \22 should be (\22 + where(r) + \22)\22\0A }\0A return \22json: found '\22 + str(r.src[r.i]) + \22' where \22 + wanted + \22 should be (\22 + where(r) + \22)\22\0A}\0A\0A// does `word` come next?\0Afn comes(ptr[Reader] r, str word) -> bool {\0A return r.src.len - r.i >= word.len && r.src.sub(r.i, r.i + word.len) == word\0A}\0A\0Afn expect_word(ptr[Reader] r, str word) -> ! {\0A if !comes(r, word) {\0A return error(unexpected(r, \22'\22 + word + \22'\22))\0A }\0A r.i += word.len\0A}\0A\0Afn hex_value(char c) -> int {\0A if c >= '0' && c <= '9' {\0A return int(c) - int('0')\0A }\0A if c >= 'a' && c <= 'f' {\0A return int(c) - int('a') + 10\0A }\0A if c >= 'A' && c <= 'F' {\0A return int(c) - int('A') + 10\0A }\0A return -1\0A}\0A\0A// a code point as UTF-8\0Afn utf8(int cp) -> str {\0A []u8 b\0A if cp < 128 {\0A b.push(u8(cp))\0A } else if cp < 2048 {\0A b.push(u8(192 + cp / 64))\0A b.push(u8(128 + cp % 64))\0A } else if cp < 65536 {\0A b.push(u8(224 + cp / 4096))\0A b.push(u8(128 + (cp / 64) % 64))\0A b.push(u8(128 + cp % 64))\0A } else {\0A b.push(u8(240 + cp / 262144))\0A b.push(u8(128 + (cp / 4096) % 64))\0A b.push(u8(128 + (cp / 64) % 64))\0A b.push(u8(128 + cp % 64))\0A }\0A return str(b)\0A}\0A\0Afn read_hex4(ptr[Reader] r) -> int! {\0A n := 0\0A for k in 0..4 {\0A if r.i >= r.src.len || hex_value(r.src[r.i]) < 0 {\0A return error(unexpected(r, \22a hexadecimal digit\22))\0A }\0A n = n * 16 + hex_value(r.src[r.i])\0A r.i += 1\0A }\0A return n\0A}\0A\0Afn read_string(ptr[Reader] r) -> str! {\0A r.i += 1 // the opening quote\0A []str parts\0A start := r.i\0A while true {\0A if r.i >= r.src.len {\0A return error(\22json: a text is never closed (\22 + where(r) + \22)\22)\0A }\0A c := r.src[r.i]\0A if c == '\22' {\0A parts.push(r.src.sub(start, r.i))\0A r.i += 1\0A return parts.join(\22\22)\0A }\0A if int(c) < 32 {\0A return error(\22json: a line break or control character inside a text (\22 + where(r) + \22)\22)\0A }\0A if c != '\5C\5C' {\0A r.i += 1\0A continue\0A }\0A parts.push(r.src.sub(start, r.i))\0A r.i += 1\0A e := peek(r)\0A r.i += 1\0A if e == 'n' {\0A parts.push(\22\5Cn\22)\0A } else if e == 't' {\0A parts.push(\22\5Ct\22)\0A } else if e == 'r' {\0A parts.push(\22\5Cr\22)\0A } else if e == 'b' {\0A parts.push(utf8(8))\0A } else if e == 'f' {\0A parts.push(utf8(12))\0A } else if e == '\22' || e == '\5C\5C' || e == '/' {\0A parts.push(str(e))\0A } else if e == 'u' {\0A cp := try read_hex4(r)\0A // a pair of \F0\9F\98\80 stands for one character above U+FFFF\0A if cp >= 55296 && cp < 56320 && comes(r, \22\5C\5Cu\22) {\0A r.i += 2\0A low := try read_hex4(r)\0A cp = 65536 + (cp - 55296) * 1024 + (low - 56320)\0A }\0A parts.push(utf8(cp))\0A } else {\0A return error(\22json: unknown escape \5C\5C\22 + str(e) + \22 in a text (\22 + where(r) + \22)\22)\0A }\0A start = r.i\0A }\0A}\0A\0Afn read_number(ptr[Reader] r) -> Json! {\0A start := r.i\0A if peek(r) == '-' {\0A r.i += 1\0A }\0A while r.i < r.src.len && ((r.src[r.i] >= '0' && r.src[r.i] <= '9') || r.src[r.i] == '.' || r.src[r.i] == 'e' || r.src[r.i] == 'E' || r.src[r.i] == '+' || r.src[r.i] == '-') {\0A r.i += 1\0A }\0A n := float(r.src.sub(start, r.i)) or {\0A r.i = start\0A return error(unexpected(r, \22a number\22))\0A }\0A return new_number(n)\0A}\0A\0Afn read_value(ptr[Reader] r) -> Json! {\0A skip_space(r)\0A c := peek(r)\0A if r.i >= r.src.len {\0A return error(unexpected(r, \22a value\22))\0A }\0A if c == '{' {\0A obj := new_object()\0A r.i += 1\0A skip_space(r)\0A if peek(r) == '}' {\0A r.i += 1\0A return obj\0A }\0A while true {\0A skip_space(r)\0A if peek(r) != '\22' {\0A return error(unexpected(r, \22a key in quotes\22))\0A }\0A key := try read_string(r)\0A skip_space(r)\0A if peek(r) != ':' {\0A return error(unexpected(r, \22':'\22))\0A }\0A r.i += 1\0A v := try read_value(r)\0A obj.set(key, v)\0A skip_space(r)\0A if peek(r) == ',' {\0A r.i += 1\0A continue\0A }\0A if peek(r) == '}' {\0A r.i += 1\0A return obj\0A }\0A return error(unexpected(r, \22',' or '}'\22))\0A }\0A }\0A if c == '[' {\0A list := new_list()\0A r.i += 1\0A skip_space(r)\0A if peek(r) == ']' {\0A r.i += 1\0A return list\0A }\0A while true {\0A v := try read_value(r)\0A list.push(v)\0A skip_space(r)\0A if peek(r) == ',' {\0A r.i += 1\0A continue\0A }\0A if peek(r) == ']' {\0A r.i += 1\0A return list\0A }\0A return error(unexpected(r, \22',' or ']'\22))\0A }\0A }\0A if c == '\22' {\0A s := try read_string(r)\0A return new_text(s)\0A }\0A if c == 't' {\0A try expect_word(r, \22true\22)\0A return new_bool(true)\0A }\0A if c == 'f' {\0A try expect_word(r, \22false\22)\0A return new_bool(false)\0A }\0A if c == 'n' {\0A try expect_word(r, \22null\22)\0A return new_null()\0A }\0A if c == '-' || (c >= '0' && c <= '9') {\0A return try read_number(r)\0A }\0A return error(unexpected(r, \22a value\22))\0A}\0A\0A// the JSON in `text`; an error with the line and column where it went wrong\0Afn parse(str text) -> Json! {\0A r := Reader(src: text)\0A v := try read_value(addr(r))\0A skip_space(addr(r))\0A if r.i < r.src.len {\0A return error(unexpected(addr(r), \22the end of the text\22))\0A }\0A return v\0A}\0A\00" -@.str.7331 = private unnamed_addr constant [2847 x i8] c"// Paths, as text. Elements are separated by \22/\22.\0A//\0A// import path\0A// path.join(\22a\22, \22b.txt\22) a/b.txt\0A// path.base(\22/tmp/x/a.tar.gz\22) a.tar.gz path.stem(...) a.tar path.ext(...) .gz\0A// path.dir(\22/tmp/x/a.txt\22) /tmp/x\0A// path.clean(\22a//b/../c/./d\22) a/c/d\0A\0A// a and b with one separator between; an absolute b replaces a\0Afn join(str a, str b) -> str {\0A if a.len == 0 {\0A return b\0A }\0A if b.len == 0 {\0A return a\0A }\0A if b[0] == '/' {\0A return b\0A }\0A if a[a.len - 1] == '/' {\0A return a + b\0A }\0A return a + \22/\22 + b\0A}\0A\0Afn is_abs(str p) -> bool {\0A return p.len > 0 && p[0] == '/'\0A}\0A\0A// the last element: \22a/b.txt\22 -> \22b.txt\22, \22a/b/\22 -> \22b\22, \22\22 -> \22.\22, \22/\22 -> \22/\22\0Afn base(str p) -> str {\0A if p.len == 0 {\0A return \22.\22\0A }\0A end := p.len\0A while end > 1 && p[end - 1] == '/' {\0A end -= 1\0A }\0A if end == 1 && p[0] == '/' {\0A return \22/\22\0A }\0A start := end\0A while start > 0 && p[start - 1] != '/' {\0A start -= 1\0A }\0A return p.sub(start, end)\0A}\0A\0A// everything before the last element: \22a/b.txt\22 -> \22a\22, \22b.txt\22 -> \22.\22, \22/b\22 -> \22/\22\0Afn dir(str p) -> str {\0A end := p.len\0A while end > 1 && p[end - 1] == '/' {\0A end -= 1\0A }\0A i := end\0A while i > 0 && p[i - 1] != '/' {\0A i -= 1\0A }\0A if i == 0 {\0A return \22.\22\0A }\0A while i > 1 && p[i - 1] == '/' {\0A i -= 1\0A }\0A return p.sub(0, i)\0A}\0A\0A// the part of the last element from its last dot: \22a.tar.gz\22 -> \22.gz\22; \22\22 when there is none\0Afn ext(str p) -> str {\0A b := base(p)\0A i := b.len\0A while i > 0 && b[i - 1] != '.' {\0A i -= 1\0A }\0A if i <= 1 { // no dot, or a name that only starts with one (.bashrc)\0A return \22\22\0A }\0A return b.sub(i - 1, b.len)\0A}\0A\0A// the last element without its extension\0Afn stem(str p) -> str {\0A b := base(p)\0A e := ext(p)\0A return b.sub(0, b.len - e.len)\0A}\0A\0A// the elements of a path: \22/a/b/c\22 -> [\22a\22, \22b\22, \22c\22]\0Afn parts(str p) -> []str {\0A []str out\0A for piece in p.split(\22/\22) {\0A if piece.len > 0 {\0A out.push(piece)\0A }\0A }\0A return out\0A}\0A\0A// the shortest path with the same meaning: no \22//\22, no \22.\22, and \22..\22 resolved where it can be\0Afn clean(str p) -> str {\0A if p.len == 0 {\0A return \22.\22\0A }\0A abs := is_abs(p)\0A []str out\0A for piece in parts(p) {\0A if piece == \22.\22 {\0A continue\0A }\0A if piece == \22..\22 {\0A if out.len > 0 && out[out.len - 1] != \22..\22 {\0A out.pop()\0A } else if !abs {\0A out.push(\22..\22)\0A }\0A continue\0A }\0A out.push(piece)\0A }\0A joined := out.join(\22/\22)\0A if abs {\0A return \22/\22 + joined\0A }\0A if joined.len == 0 {\0A return \22.\22\0A }\0A return joined\0A}\0A\00" -@.str.7332 = private unnamed_addr constant [1407 x i8] c"// Programs: run a command, read what it printed, look at the environment.\0A//\0A// import proc\0A// code := proc.run(\22make\22) the exit code; what the command prints goes to the screen\0A// text := try proc.output(\22git describe\22) what the command printed; an error if it failed\0A// proc.env(\22HOME\22, \22/\22) an environment variable, or the second value if it is not set\0Aimport \22stdlib.h\22\0Aimport \22unistd.h\22\0Aimport \22time.h\22\0A\0A// run a command; its output goes to the screen. Gives its exit code.\0Afn run(str command) -> int {\0A return shell(command)\0A}\0A\0A// run a command and give what it printed. Fails, with its output as the message, if it exits with an error.\0Afn output(str command) -> str! {\0A tmp := \22/tmp/finch_out_\22 + str(getpid()) + \22_\22 + str(int(time(null)))\0A code := shell(\22(\22 + command + \22) > '\22 + tmp + \22' 2>&1\22)\0A text := read_file(tmp) or \22\22\0A delete_file(tmp)\0A if code != 0 {\0A return error(\22'\22 + command + \22' exited with code \22 + str(code) + \22: \22 + text.trim())\0A }\0A return text\0A}\0A\0Afn env(str name, str fallback) -> str {\0A v := getenv(name)\0A if v.len == 0 {\0A return fallback\0A }\0A return v\0A}\0A\0Afn pid() -> int {\0A return int(getpid())\0A}\0A\0A// the folder the program is running in\0Afn cwd() -> str {\0A []char buf\0A for i in 0..4096 {\0A buf.push(char(0))\0A }\0A getcwd(buf.ptr, 4096)\0A return str(buf.ptr)\0A}\0A\00" -@.str.7333 = private unnamed_addr constant [996 x i8] c"// Programs, for Windows. The same functions as proc.fch (that file is for Linux and macOS).\0Aimport \22stdlib.h\22\0Aimport \22process.h\22\0Aimport \22direct.h\22\0Aimport \22time.h\22\0A\0Afn run(str command) -> int {\0A return shell(command)\0A}\0A\0Afn output(str command) -> str! {\0A tmp := proc_env(\22TEMP\22, \22.\22) + \22\5C\5Cfinch_out_\22 + str(getpid()) + \22_\22 + str(int(time(null)))\0A code := shell(command + \22 > \5C\22\22 + tmp + \22\5C\22 2>&1\22)\0A text := read_file(tmp) or \22\22\0A delete_file(tmp)\0A if code != 0 {\0A return error(\22'\22 + command + \22' exited with code \22 + str(code) + \22: \22 + text.trim())\0A }\0A return text\0A}\0A\0Afn proc_env(str name, str fallback) -> str {\0A v := getenv(name)\0A if v.len == 0 {\0A return fallback\0A }\0A return v\0A}\0A\0Afn env(str name, str fallback) -> str {\0A return proc_env(name, fallback)\0A}\0A\0Afn pid() -> int {\0A return int(getpid())\0A}\0A\0Afn cwd() -> str {\0A []char buf\0A for i in 0..4096 {\0A buf.push(char(0))\0A }\0A getcwd(buf.ptr, 4096)\0A return str(buf.ptr)\0A}\0A\00" -@.str.7334 = private unnamed_addr constant [2540 x i8] c"// Time: the clock, sleeping, and dates.\0A//\0A// import time\0A// start := time.millis() milliseconds from a clock that only goes forward (to measure with)\0A// time.sleep(250) wait a quarter of a second\0A// time.now() seconds since 1970-01-01 00:00 UTC\0A// d := time.date(time.now()) the parts: d.year, d.month, d.day, d.hour, d.minute, d.second\0A// time.format(time.now(), \22%Y-%m-%d %H:%M\22) as text, in the computer's time zone\0Aimport \22time.h\22\0A\0Astruct Date {\0A int year\0A int month // 1 to 12\0A int day // 1 to 31\0A int hour\0A int minute\0A int second\0A int weekday // 0 is Sunday\0A int yearday // 1 to 366\0A}\0A\0A// seconds since 1970-01-01 00:00 UTC\0Afn now() -> int {\0A return int(time(null))\0A}\0A\0A// milliseconds on a clock that only goes forward: for measuring how long something took\0Afn millis() -> int {\0A timespec ts\0A clock_gettime(CLOCK_MONOTONIC, addr(ts))\0A return int(ts.tv_sec) * 1000 + int(ts.tv_nsec) / 1000000\0A}\0A\0Afn sleep(int ms) {\0A timespec ts\0A ts.tv_sec = ms / 1000\0A ts.tv_nsec = (ms % 1000) * 1000000\0A nanosleep(addr(ts), null)\0A}\0A\0Afn parts(tm t) -> Date {\0A return Date(year: int(t.tm_year) + 1900, month: int(t.tm_mon) + 1, day: int(t.tm_mday), hour: int(t.tm_hour),\0A minute: int(t.tm_min), second: int(t.tm_sec), weekday: int(t.tm_wday), yearday: int(t.tm_yday) + 1)\0A}\0A\0A// the date and time of a moment, in UTC\0Afn date(int unix) -> Date {\0A tm t\0A i64 stamp = unix\0A gmtime_r(addr(stamp), addr(t))\0A return parts(t)\0A}\0A\0A// the date and time of a moment, in the computer's time zone\0Afn local(int unix) -> Date {\0A tm t\0A i64 stamp = unix\0A localtime_r(addr(stamp), addr(t))\0A return parts(t)\0A}\0A\0A// a moment as text, in the computer's time zone: %Y year, %m month, %d day, %H hour, %M minute, %S second\0A// (the rest of C's strftime works too: %A weekday name, %B month name, ...)\0Afn format(int unix, str pattern) -> str {\0A tm t\0A i64 stamp = unix\0A localtime_r(addr(stamp), addr(t))\0A []char buf\0A for i in 0..256 {\0A buf.push(char(0))\0A }\0A strftime(buf.ptr, 256, pattern, addr(t))\0A return str(buf.ptr)\0A}\0A\0A// the number of days in a month (month is 1 to 12)\0Afn days_in_month(int year, int month) -> int {\0A if month == 2 {\0A if year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) {\0A return 29\0A }\0A return 28\0A }\0A if month == 4 || month == 6 || month == 9 || month == 11 {\0A return 30\0A }\0A return 31\0A}\0A\00" -@.str.7335 = private unnamed_addr constant [1793 x i8] c"// Time, for Windows. The same functions as time.fch (that file is for Linux and macOS).\0Aimport \22time.h\22\0Aimport \22finch_win.h\22\0A\0Astruct Date {\0A int year\0A int month // 1 to 12\0A int day // 1 to 31\0A int hour\0A int minute\0A int second\0A int weekday // 0 is Sunday\0A int yearday // 1 to 366\0A}\0A\0Afn now() -> int {\0A return int(time(null))\0A}\0A\0A// milliseconds on a clock that only goes forward (the performance counter: GetTickCount64 ticks every 15 ms)\0Afn millis() -> int {\0A i64 count = 0\0A i64 freq = 1\0A QueryPerformanceFrequency(addr(freq))\0A QueryPerformanceCounter(addr(count))\0A return int(count / freq) * 1000 + int(count % freq) * 1000 / int(freq)\0A}\0A\0Afn sleep(int ms) {\0A Sleep(u32(ms))\0A}\0A\0Afn parts(tm t) -> Date {\0A return Date(year: int(t.tm_year) + 1900, month: int(t.tm_mon) + 1, day: int(t.tm_mday), hour: int(t.tm_hour),\0A minute: int(t.tm_min), second: int(t.tm_sec), weekday: int(t.tm_wday), yearday: int(t.tm_yday) + 1)\0A}\0A\0Afn date(int unix) -> Date {\0A tm t\0A i64 stamp = unix\0A _gmtime64_s(addr(t), addr(stamp))\0A return parts(t)\0A}\0A\0Afn local(int unix) -> Date {\0A tm t\0A i64 stamp = unix\0A _localtime64_s(addr(t), addr(stamp))\0A return parts(t)\0A}\0A\0Afn format(int unix, str pattern) -> str {\0A tm t\0A i64 stamp = unix\0A _localtime64_s(addr(t), addr(stamp))\0A []char buf\0A for i in 0..256 {\0A buf.push(char(0))\0A }\0A strftime(buf.ptr, 256, pattern, addr(t))\0A return str(buf.ptr)\0A}\0A\0Afn days_in_month(int year, int month) -> int {\0A if month == 2 {\0A if year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) {\0A return 29\0A }\0A return 28\0A }\0A if month == 4 || month == 6 || month == 9 || month == 11 {\0A return 30\0A }\0A return 31\0A}\0A\00" -@.str.7336 = private unnamed_addr constant [366 x i8] c"/* The Windows functions std/time_windows.fch needs. Declared here, not by including :\0A libclang can't parse that header with MinGW's intrinsics. Both are in kernel32. */\0Aunsigned long long GetTickCount64(void);\0Avoid Sleep(unsigned long milliseconds);\0Aint QueryPerformanceCounter(long long *count);\0Aint QueryPerformanceFrequency(long long *frequency);\0A\00" +@.str.7312 = private unnamed_addr constant [6 x i8] c"line \00" +@.str.7313 = private unnamed_addr constant [10 x i8] c", column \00" +@.str.7314 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7315 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7316 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7317 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7318 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7319 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7320 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7321 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7322 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7323 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7324 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7325 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7326 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7327 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7328 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7329 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7330 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7331 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7332 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7333 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7334 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7335 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7336 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7337 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7338 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7339 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7340 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7341 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7342 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7343 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7344 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7345 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7346 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7347 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7348 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7349 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7350 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7351 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7352 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7353 = private unnamed_addr constant [27 x i8] c"json: the text ends where \00" +@.str.7354 = private unnamed_addr constant [13 x i8] c" should be (\00" +@.str.7355 = private unnamed_addr constant [2 x i8] c")\00" +@.str.7356 = private unnamed_addr constant [14 x i8] c"json: found '\00" +@.str.7357 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7358 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7359 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7360 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7361 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7362 = private unnamed_addr constant [9 x i8] c"' where \00" +@.str.7363 = private unnamed_addr constant [13 x i8] c" should be (\00" +@.str.7364 = private unnamed_addr constant [2 x i8] c")\00" +@.str.7365 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7366 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7367 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7368 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7369 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7370 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7371 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7372 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7373 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7374 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7375 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7376 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.7377 = private unnamed_addr constant [2 x i8] c"'\00" +@.str.7378 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7379 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7380 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7381 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7382 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7383 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7384 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7385 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7386 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7387 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7388 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7389 = private unnamed_addr constant [20 x i8] c"a hexadecimal digit\00" +@.str.7390 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7391 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7392 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7393 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7394 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7395 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7396 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7397 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7398 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7399 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7400 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7401 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7402 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7403 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7404 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7405 = private unnamed_addr constant [31 x i8] c"json: a text is never closed (\00" +@.str.7406 = private unnamed_addr constant [2 x i8] c")\00" +@.str.7407 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7408 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7409 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7410 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7411 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7412 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7413 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7414 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7415 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7416 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7417 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7418 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7419 = private unnamed_addr constant [1 x i8] c"\00" +@.str.7420 = private unnamed_addr constant [56 x i8] c"json: a line break or control character inside a text (\00" +@.str.7421 = private unnamed_addr constant [2 x i8] c")\00" +@.str.7422 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7423 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7424 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7425 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7426 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7427 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7428 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7429 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7430 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7431 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7432 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7433 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str.7434 = private unnamed_addr constant [2 x i8] c"\09\00" +@.str.7435 = private unnamed_addr constant [2 x i8] c"\0D\00" +@.str.7436 = private unnamed_addr constant [3 x i8] c"\5Cu\00" +@.str.7437 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7438 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7439 = private unnamed_addr constant [23 x i8] c"json: unknown escape \5C\00" +@.str.7440 = private unnamed_addr constant [13 x i8] c" in a text (\00" +@.str.7441 = private unnamed_addr constant [2 x i8] c")\00" +@.str.7442 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7443 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7444 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7445 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7446 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7447 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7448 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7449 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7450 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7451 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7452 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7453 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7454 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7455 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7456 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7457 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7458 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7459 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7460 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7461 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7462 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7463 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7464 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7465 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7466 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7467 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7468 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7469 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7470 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7471 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7472 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7473 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7474 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7475 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7476 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7477 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7478 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7479 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7480 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7481 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7482 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7483 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7484 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7485 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7486 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7487 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7488 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7489 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7490 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7491 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7492 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7493 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7494 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7495 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7496 = private unnamed_addr constant [9 x i8] c"a number\00" +@.str.7497 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7498 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7499 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7500 = private unnamed_addr constant [28 x i8] c"used .src on a null pointer\00" +@.str.7501 = private unnamed_addr constant [8 x i8] c"a value\00" +@.str.7502 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7503 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7504 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7505 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7506 = private unnamed_addr constant [16 x i8] c"a key in quotes\00" +@.str.7507 = private unnamed_addr constant [4 x i8] c"':'\00" +@.str.7508 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7509 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7510 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7511 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7512 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7513 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7514 = private unnamed_addr constant [11 x i8] c"',' or '}'\00" +@.str.7515 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7516 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7517 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7518 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7519 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7520 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7521 = private unnamed_addr constant [22 x i8] c"build/../std/json.fch\00" +@.str.7522 = private unnamed_addr constant [26 x i8] c"used .i on a null pointer\00" +@.str.7523 = private unnamed_addr constant [11 x i8] c"',' or ']'\00" +@.str.7524 = private unnamed_addr constant [5 x i8] c"true\00" +@.str.7525 = private unnamed_addr constant [6 x i8] c"false\00" +@.str.7526 = private unnamed_addr constant [5 x i8] c"null\00" +@.str.7527 = private unnamed_addr constant [8 x i8] c"a value\00" +@.str.7528 = private unnamed_addr constant [20 x i8] c"the end of the text\00" +@.str.7529 = private unnamed_addr constant [19 x i8] c"runtime/finch_rt.c\00" +@.str.7530 = private unnamed_addr constant [13 x i8] c"std/json.fch\00" +@.str.7531 = private unnamed_addr constant [13 x i8] c"std/path.fch\00" +@.str.7532 = private unnamed_addr constant [13 x i8] c"std/proc.fch\00" +@.str.7533 = private unnamed_addr constant [21 x i8] c"std/proc_windows.fch\00" +@.str.7534 = private unnamed_addr constant [13 x i8] c"std/time.fch\00" +@.str.7535 = private unnamed_addr constant [21 x i8] c"std/time_windows.fch\00" +@.str.7536 = private unnamed_addr constant [16 x i8] c"std/finch_win.h\00" +@.str.7537 = private unnamed_addr constant [24982 x i8] c"// The Finch runtime: string and array helpers, input, files and runtime errors.\0A// It is embedded in the compiler, compiled once into a cache folder, and linked\0A// statically into every Finch program. Everything here is plain C with no state.\0A//\0A// Layout shared with the compiler (src/codegen.cpp):\0A// str = { char *ptr; int64 len; int64 cap } ptr is always NUL-terminated\0A// cap > 0 : heap memory owned by the value (cap bytes allocated)\0A// cap == 0 : a string literal, valid forever, never written to\0A// cap == -1: borrowed from C, must be copied before it is kept\0A// []T = { T *ptr; int64 len; int64 cap } owns ptr when cap > 0\0A// map[K]V: see \22maps\22 below\0A\0A#include \0A#include \0A#include \0A#include \0A#include \0A#include \0A#include \0A#ifndef _WIN32\0A#include \0A#endif\0A\0Atypedef struct {\0A char *ptr;\0A int64_t len;\0A int64_t cap;\0A} FStr;\0A\0Atypedef struct {\0A void *ptr;\0A int64_t len;\0A int64_t cap;\0A} FArr;\0A\0Astatic char empty[1] = \22\22;\0A\0A// ---------- runtime errors ----------\0A\0A// A program that loads Finch libraries (finch build --shared) can take runtime errors over\0A// instead of the process exiting: finch_module_on_fatal(handler) in each library. The handler\0A// gets the message and must not return (longjmp out, or exit itself).\0Astatic void (*fatal_hook)(const char *msg);\0Avoid finch_on_fatal(void (*hook)(const char *msg)) { fatal_hook = hook; }\0A\0Astatic __attribute__((noreturn)) void fatal(const char *msg) {\0A if (fatal_hook) fatal_hook(msg);\0A fflush(stdout);\0A fprintf(stderr, \22%s\5Cn\22, msg);\0A exit(1);\0A}\0A\0A__attribute__((noreturn, cold)) void finch_panic(const char *file, int64_t line, const char *msg) {\0A char full[1024];\0A snprintf(full, sizeof full, \22%s:%lld: runtime error: %s\22, file, (long long)line, msg);\0A fflush(stdout);\0A fatal(full);\0A}\0A\0A__attribute__((noreturn, cold)) void finch_panic_index(const char *file, int64_t line, int64_t i, int64_t len) {\0A char msg[128];\0A snprintf(msg, sizeof msg, \22index %lld is out of range (the length is %lld)\22, (long long)i, (long long)len);\0A finch_panic(file, line, msg);\0A}\0A\0Astatic void *must(void *p) {\0A if (!p) {\0A fflush(stdout);\0A fatal(\22runtime error: out of memory\22);\0A }\0A return p;\0A}\0A\0Avoid *finch_alloc(int64_t n) { return must(malloc(n ? (size_t)n : 1)); }\0Avoid *finch_zalloc(int64_t n) { return must(calloc(1, n ? (size_t)n : 1)); }\0A\0A// ---------- strings ----------\0A\0Astatic void str_heap(FStr *out, const char *p, int64_t len) {\0A char *m = finch_alloc(len + 1);\0A if (len) memcpy(m, p, (size_t)len);\0A m[len] = 0;\0A out->ptr = m;\0A out->len = len;\0A out->cap = len + 1;\0A}\0A\0Astatic void str_static(FStr *out, const char *lit) {\0A out->ptr = (char *)lit;\0A out->len = (int64_t)strlen(lit);\0A out->cap = 0;\0A}\0A\0A// A copy that can be kept: literals are shared, everything else is duplicated.\0Avoid finch_str_copy(FStr *out, const FStr *s) {\0A if (s->cap == 0) *out = *s;\0A else str_heap(out, s->ptr, s->len);\0A}\0A\0A// Make `s` writable (before s[i] = c).\0Avoid finch_str_own(FStr *s) {\0A if (s->cap > 0) return;\0A FStr t;\0A str_heap(&t, s->ptr, s->len);\0A *s = t;\0A}\0A\0Avoid finch_str_drop(FStr *s) {\0A if (s->cap > 0) free(s->ptr);\0A}\0A\0Avoid finch_str_from_c(FStr *out, const char *p) {\0A if (!p) {\0A str_static(out, empty);\0A return;\0A }\0A out->ptr = (char *)p;\0A out->len = (int64_t)strlen(p);\0A out->cap = -1;\0A}\0A\0Avoid finch_str_concat(FStr *out, const FStr *a, const FStr *b) {\0A int64_t len = a->len + b->len;\0A char *m = finch_alloc(len + 1);\0A memcpy(m, a->ptr, (size_t)a->len);\0A memcpy(m + a->len, b->ptr, (size_t)b->len);\0A m[len] = 0;\0A out->ptr = m;\0A out->len = len;\0A out->cap = len + 1;\0A}\0A\0Aint finch_str_eq(const FStr *a, const FStr *b) {\0A return a->len == b->len && memcmp(a->ptr, b->ptr, (size_t)a->len) == 0;\0A}\0A\0Aint64_t finch_str_cmp(const FStr *a, const FStr *b) {\0A int64_t n = a->len < b->len ? a->len : b->len;\0A int c = memcmp(a->ptr, b->ptr, (size_t)n);\0A if (c) return c < 0 ? -1 : 1;\0A return a->len < b->len ? -1 : a->len > b->len;\0A}\0A\0Avoid finch_str_from_int(FStr *out, int64_t v) {\0A char buf[32];\0A int n = snprintf(buf, sizeof buf, \22%lld\22, (long long)v);\0A str_heap(out, buf, n);\0A}\0A\0Avoid finch_str_from_uint(FStr *out, uint64_t v) {\0A char buf[32];\0A int n = snprintf(buf, sizeof buf, \22%llu\22, (unsigned long long)v);\0A str_heap(out, buf, n);\0A}\0A\0Avoid finch_str_from_float(FStr *out, double v) {\0A char buf[64];\0A int n = snprintf(buf, sizeof buf, \22%g\22, v);\0A str_heap(out, buf, n);\0A}\0A\0Avoid finch_str_from_char(FStr *out, char c) { str_heap(out, &c, 1); }\0A\0Avoid finch_str_from_bool(FStr *out, int b) { str_static(out, b ? \22true\22 : \22false\22); }\0A\0Astatic void number_error(char *msg, size_t size, const FStr *s, const char *kind) {\0A snprintf(msg, size, \22can't turn \5C\22%.*s\5C\22 into %s\22, (int)(s->len > 100 ? 100 : s->len), s->ptr ? s->ptr : \22\22, kind);\0A}\0A\0Astatic int parse_int(const FStr *s, int64_t *out) {\0A const char *p = s->ptr ? s->ptr : \22\22;\0A while (isspace((unsigned char)*p)) p++;\0A char *end;\0A errno = 0;\0A long long v = strtoll(p, &end, 10);\0A while (isspace((unsigned char)*end)) end++;\0A *out = v;\0A return !(end == p || *end || errno == ERANGE);\0A}\0A\0Astatic int parse_float(const FStr *s, double *out) {\0A const char *p = s->ptr ? s->ptr : \22\22;\0A while (isspace((unsigned char)*p)) p++;\0A char *end;\0A double v = strtod(p, &end);\0A while (isspace((unsigned char)*end)) end++;\0A *out = v;\0A return !(end == p || *end);\0A}\0A\0Aint64_t finch_str_to_int(const FStr *s, const char *file, int64_t line) {\0A int64_t v;\0A if (!parse_int(s, &v)) {\0A char msg[200];\0A number_error(msg, sizeof msg, s, \22int\22);\0A finch_panic(file, line, msg);\0A }\0A return v;\0A}\0A\0Adouble finch_str_to_float(const FStr *s, const char *file, int64_t line) {\0A double v;\0A if (!parse_float(s, &v)) {\0A char msg[200];\0A number_error(msg, sizeof msg, s, \22float\22);\0A finch_panic(file, line, msg);\0A }\0A return v;\0A}\0A\0A// ---------- errors as values: int(s) or 0, try read_file(p) ... ----------\0A// Each gives back 1 on success; on failure 0, with the message in *err.\0A\0Astatic void set_error(FStr *err, const char *msg) { str_heap(err, msg, (int64_t)strlen(msg)); }\0A\0Aint finch_str_try_int(const FStr *s, int64_t *out, FStr *err) {\0A if (parse_int(s, out)) return 1;\0A char msg[200];\0A number_error(msg, sizeof msg, s, \22int\22);\0A set_error(err, msg);\0A *out = 0;\0A return 0;\0A}\0A\0Aint finch_str_try_float(const FStr *s, double *out, FStr *err) {\0A if (parse_float(s, out)) return 1;\0A char msg[200];\0A number_error(msg, sizeof msg, s, \22float\22);\0A set_error(err, msg);\0A *out = 0;\0A return 0;\0A}\0A\0Astatic void file_error(FStr *err, const char *what, const FStr *path) {\0A char msg[300];\0A snprintf(msg, sizeof msg, \22can't %s the file \5C\22%.*s\5C\22: %s\22, what, (int)(path->len > 200 ? 200 : path->len),\0A path->ptr ? path->ptr : \22\22, strerror(errno));\0A set_error(err, msg);\0A}\0A\0A// when `fn main() -> !` fails\0Avoid finch_report_error(const FStr *msg) {\0A fflush(stdout);\0A fprintf(stderr, \22error: %.*s\5Cn\22, (int)msg->len, msg->ptr ? msg->ptr : \22\22);\0A}\0A\0Avoid finch_str_sub(FStr *out, const FStr *s, int64_t start, int64_t end, const char *file, int64_t line) {\0A if (start < 0 || end > s->len || start > end) {\0A char msg[160];\0A snprintf(msg, sizeof msg, \22sub(%lld, %lld) is out of range (the length is %lld)\22, (long long)start,\0A (long long)end, (long long)s->len);\0A finch_panic(file, line, msg);\0A }\0A str_heap(out, s->ptr + start, end - start);\0A}\0A\0Aint64_t finch_str_find(const FStr *s, const FStr *t) {\0A if (t->len == 0) return 0;\0A for (int64_t i = 0; i + t->len <= s->len; i++)\0A if (s->ptr[i] == t->ptr[0] && memcmp(s->ptr + i, t->ptr, (size_t)t->len) == 0) return i;\0A return -1;\0A}\0A\0Aint finch_str_starts(const FStr *s, const FStr *t) {\0A return t->len <= s->len && memcmp(s->ptr, t->ptr, (size_t)t->len) == 0;\0A}\0A\0Aint finch_str_ends(const FStr *s, const FStr *t) {\0A return t->len <= s->len && memcmp(s->ptr + s->len - t->len, t->ptr, (size_t)t->len) == 0;\0A}\0A\0Avoid finch_str_trim(FStr *out, const FStr *s) {\0A int64_t a = 0, b = s->len;\0A while (a < b && isspace((unsigned char)s->ptr[a])) a++;\0A while (b > a && isspace((unsigned char)s->ptr[b - 1])) b--;\0A str_heap(out, s->ptr + a, b - a);\0A}\0A\0Avoid finch_str_upper(FStr *out, const FStr *s) {\0A str_heap(out, s->ptr, s->len);\0A for (int64_t i = 0; i < out->len; i++) out->ptr[i] = (char)toupper((unsigned char)out->ptr[i]);\0A}\0A\0Avoid finch_str_lower(FStr *out, const FStr *s) {\0A str_heap(out, s->ptr, s->len);\0A for (int64_t i = 0; i < out->len; i++) out->ptr[i] = (char)tolower((unsigned char)out->ptr[i]);\0A}\0A\0Avoid finch_str_replace(FStr *out, const FStr *s, const FStr *from, const FStr *to) {\0A if (from->len == 0) {\0A str_heap(out, s->ptr, s->len);\0A return;\0A }\0A int64_t count = 0;\0A for (int64_t i = 0; i + from->len <= s->len;) {\0A if (memcmp(s->ptr + i, from->ptr, (size_t)from->len) == 0) {\0A count++;\0A i += from->len;\0A } else {\0A i++;\0A }\0A }\0A int64_t len = s->len + count * (to->len - from->len);\0A char *m = finch_alloc(len + 1), *w = m;\0A for (int64_t i = 0; i < s->len;) {\0A if (i + from->len <= s->len && memcmp(s->ptr + i, from->ptr, (size_t)from->len) == 0) {\0A memcpy(w, to->ptr, (size_t)to->len);\0A w += to->len;\0A i += from->len;\0A } else {\0A *w++ = s->ptr[i++];\0A }\0A }\0A *w = 0;\0A out->ptr = m;\0A out->len = len;\0A out->cap = len + 1;\0A}\0A\0Astatic void arr_push_str(FArr *a, const char *p, int64_t len);\0A\0A// \22a,b,,c\22.split(\22,\22) -> [\22a\22, \22b\22, \22\22, \22c\22]; split(\22\22) gives single characters.\0Avoid finch_str_split(FArr *out, const FStr *s, const FStr *sep) {\0A out->ptr = NULL;\0A out->len = out->cap = 0;\0A if (sep->len == 0) {\0A for (int64_t i = 0; i < s->len; i++) arr_push_str(out, s->ptr + i, 1);\0A return;\0A }\0A int64_t start = 0;\0A for (int64_t i = 0; i + sep->len <= s->len;) {\0A if (memcmp(s->ptr + i, sep->ptr, (size_t)sep->len) == 0) {\0A arr_push_str(out, s->ptr + start, i - start);\0A i += sep->len;\0A start = i;\0A } else {\0A i++;\0A }\0A }\0A arr_push_str(out, s->ptr + start, s->len - start);\0A}\0A\0Avoid finch_str_join(FStr *out, const FArr *parts, const FStr *sep) {\0A const FStr *p = parts->ptr;\0A int64_t len = 0;\0A for (int64_t i = 0; i < parts->len; i++) len += p[i].len + (i ? sep->len : 0);\0A char *m = finch_alloc(len + 1), *w = m;\0A for (int64_t i = 0; i < parts->len; i++) {\0A if (i) {\0A memcpy(w, sep->ptr, (size_t)sep->len);\0A w += sep->len;\0A }\0A memcpy(w, p[i].ptr, (size_t)p[i].len);\0A w += p[i].len;\0A }\0A *w = 0;\0A out->ptr = m;\0A out->len = len;\0A out->cap = len + 1;\0A}\0A\0Avoid finch_str_repeat(FStr *out, const FStr *s, int64_t n) {\0A if (n < 0) n = 0;\0A int64_t len = s->len * n;\0A char *m = finch_alloc(len + 1);\0A for (int64_t i = 0; i < n; i++) memcpy(m + i * s->len, s->ptr, (size_t)s->len);\0A m[len] = 0;\0A out->ptr = m;\0A out->len = len;\0A out->cap = len + 1;\0A}\0A\0Avoid finch_str_from_bytes(FStr *out, const FArr *bytes) { str_heap(out, bytes->ptr, bytes->len); }\0A\0A// ---------- building text: print(x) and str(x) of arrays, maps and structs ----------\0A// A buffer starts as an empty str and grows on the heap.\0A\0Avoid finch_buf_add(FStr *b, const char *p, int64_t n) {\0A if (b->len + n + 1 > b->cap) {\0A int64_t cap = b->cap > 0 ? b->cap * 2 : 32;\0A while (cap < b->len + n + 1) cap *= 2;\0A b->ptr = must(realloc(b->cap > 0 ? b->ptr : NULL, (size_t)cap));\0A b->cap = cap;\0A }\0A if (n) memcpy(b->ptr + b->len, p, (size_t)n);\0A b->len += n;\0A b->ptr[b->len] = 0;\0A}\0A\0Astatic void buf_fmt(FStr *b, const char *fmt, ...) __attribute__((format(printf, 2, 3)));\0Astatic void buf_fmt(FStr *b, const char *fmt, ...) {\0A char t[64];\0A va_list ap;\0A va_start(ap, fmt);\0A int n = vsnprintf(t, sizeof t, fmt, ap);\0A va_end(ap);\0A finch_buf_add(b, t, n);\0A}\0A\0Avoid finch_buf_int(FStr *b, int64_t v) { buf_fmt(b, \22%lld\22, (long long)v); }\0Avoid finch_buf_uint(FStr *b, uint64_t v) { buf_fmt(b, \22%llu\22, (unsigned long long)v); }\0Avoid finch_buf_float(FStr *b, double v) { buf_fmt(b, \22%g\22, v); }\0Avoid finch_buf_bool(FStr *b, int v) { finch_buf_add(b, v ? \22true\22 : \22false\22, v ? 4 : 5); }\0Avoid finch_buf_ptr(FStr *b, const void *p) {\0A if (p) buf_fmt(b, \220x%llx\22, (unsigned long long)(uintptr_t)p);\0A else finch_buf_add(b, \22null\22, 4);\0A}\0A\0Avoid finch_buf_char(FStr *b, char c, int quoted) {\0A if (quoted) finch_buf_add(b, \22'\22, 1);\0A finch_buf_add(b, &c, 1);\0A if (quoted) finch_buf_add(b, \22'\22, 1);\0A}\0A\0Avoid finch_buf_str(FStr *b, const FStr *s, int quoted) {\0A if (quoted) finch_buf_add(b, \22\5C\22\22, 1);\0A finch_buf_add(b, s->ptr, s->len);\0A if (quoted) finch_buf_add(b, \22\5C\22\22, 1);\0A}\0A\0A// print the buffer and free it\0Avoid finch_buf_print(FStr *b) {\0A if (b->len) fwrite(b->ptr, 1, (size_t)b->len, stdout);\0A if (b->cap > 0) free(b->ptr);\0A}\0A\0A// ---------- arrays ----------\0A\0Avoid finch_arr_reserve(FArr *a, int64_t need, int64_t es) {\0A if (need <= a->cap) return;\0A int64_t cap = a->cap * 2;\0A if (cap < 4) cap = 4;\0A if (cap < need) cap = need;\0A a->ptr = must(realloc(a->cap > 0 ? a->ptr : NULL, (size_t)(cap * es)));\0A a->cap = cap;\0A}\0A\0Avoid finch_arr_make(FArr *out, int64_t len, int64_t es) {\0A if (len < 0) len = 0;\0A out->ptr = len ? finch_zalloc(len * es) : NULL;\0A out->len = len;\0A out->cap = len;\0A}\0A\0A// grow or shrink to `len`; new elements are zero\0Avoid finch_arr_resize(FArr *a, int64_t len, int64_t es) {\0A if (len < 0) len = 0;\0A finch_arr_reserve(a, len, es);\0A if (len > a->len) memset((char *)a->ptr + a->len * es, 0, (size_t)((len - a->len) * es));\0A a->len = len;\0A}\0A\0A// a byte-for-byte copy of the elements (the compiler deep-copies owning elements afterwards)\0Avoid finch_arr_clone_raw(FArr *out, const FArr *a, int64_t es) {\0A out->len = a->len;\0A out->cap = a->len;\0A out->ptr = a->len ? finch_alloc(a->len * es) : NULL;\0A if (a->len) memcpy(out->ptr, a->ptr, (size_t)(a->len * es));\0A}\0A\0Avoid finch_arr_free(FArr *a) {\0A if (a->cap > 0) free(a->ptr);\0A}\0A\0A// open a hole at i (0 <= i <= len), len grows by one\0Avoid finch_arr_insert_gap(FArr *a, int64_t i, int64_t es, const char *file, int64_t line) {\0A if (i < 0 || i > a->len) finch_panic_index(file, line, i, a->len);\0A finch_arr_reserve(a, a->len + 1, es);\0A char *p = a->ptr;\0A memmove(p + (i + 1) * es, p + i * es, (size_t)((a->len - i) * es));\0A a->len++;\0A}\0A\0A// close the hole at i (the element was already moved out), len shrinks by one\0Avoid finch_arr_remove_gap(FArr *a, int64_t i, int64_t es) {\0A char *p = a->ptr;\0A memmove(p + i * es, p + (i + 1) * es, (size_t)((a->len - i - 1) * es));\0A a->len--;\0A}\0A\0Astatic void arr_push_str(FArr *a, const char *p, int64_t len) {\0A finch_arr_reserve(a, a->len + 1, (int64_t)sizeof(FStr));\0A str_heap((FStr *)a->ptr + a->len, p, len);\0A a->len++;\0A}\0A\0Avoid finch_bytes_from_str(FArr *out, const FStr *s) {\0A out->len = out->cap = s->len;\0A out->ptr = s->len ? finch_alloc(s->len) : NULL;\0A if (s->len) memcpy(out->ptr, s->ptr, (size_t)s->len);\0A}\0A\0A// ---------- program arguments, input and files ----------\0A\0Avoid finch_args(FArr *out, int argc, char **argv) {\0A out->len = out->cap = argc;\0A out->ptr = finch_alloc((int64_t)sizeof(FStr) * (argc ? argc : 1));\0A for (int i = 0; i < argc; i++) str_heap((FStr *)out->ptr + i, argv[i], (int64_t)strlen(argv[i]));\0A}\0A\0A// input(\22Name? \22) prints the prompt and reads one line, without the newline.\0Avoid finch_input(FStr *out, const FStr *prompt) {\0A if (prompt->len) fwrite(prompt->ptr, 1, (size_t)prompt->len, stdout);\0A fflush(stdout);\0A // read one line of any length (getline isn't available everywhere)\0A size_t size = 128, n = 0;\0A char *line = finch_alloc((int64_t)size);\0A int c, got = 0;\0A while ((c = fgetc(stdin)) != EOF) {\0A got = 1;\0A if (c == '\5Cn') break;\0A if (n + 1 >= size) line = must(realloc(line, size *= 2));\0A line[n++] = (char)c;\0A }\0A if (!got) {\0A free(line);\0A str_static(out, empty);\0A return;\0A }\0A while (n > 0 && line[n - 1] == '\5Cr') n--;\0A line[n] = 0;\0A out->ptr = line;\0A out->len = (int64_t)n;\0A out->cap = (int64_t)size;\0A}\0A\0Aint finch_file_exists(const FStr *path) {\0A FILE *f = fopen(path->ptr, \22rb\22);\0A if (f) fclose(f);\0A return f != NULL;\0A}\0A\0Aint finch_try_read_file(FStr *out, const FStr *path, FStr *err) {\0A FILE *f = fopen(path->ptr ? path->ptr : \22\22, \22rb\22);\0A if (!f) {\0A file_error(err, \22read\22, path);\0A return 0;\0A }\0A fseek(f, 0, SEEK_END);\0A long size = ftell(f);\0A fseek(f, 0, SEEK_SET);\0A char *m = finch_alloc(size + 1);\0A size_t got = fread(m, 1, (size_t)size, f);\0A fclose(f);\0A m[got] = 0;\0A out->ptr = m;\0A out->len = (int64_t)got;\0A out->cap = size + 1;\0A return 1;\0A}\0A\0Avoid finch_read_file(FStr *out, const FStr *path, const char *file, int64_t line) {\0A FILE *f = fopen(path->ptr ? path->ptr : \22\22, \22rb\22);\0A if (!f) {\0A char msg[300];\0A snprintf(msg, sizeof msg, \22can't read the file \5C\22%.*s\5C\22: %s\22, (int)(path->len > 200 ? 200 : path->len),\0A path->ptr, strerror(errno));\0A finch_panic(file, line, msg);\0A }\0A fseek(f, 0, SEEK_END);\0A long size = ftell(f);\0A fseek(f, 0, SEEK_SET);\0A char *m = finch_alloc(size + 1);\0A size_t got = fread(m, 1, (size_t)size, f);\0A fclose(f);\0A m[got] = 0;\0A out->ptr = m;\0A out->len = (int64_t)got;\0A out->cap = size + 1;\0A}\0A\0A// shell(\22ls -l\22): run a command, give back its exit code\0Aint64_t finch_shell(const FStr *cmd) {\0A fflush(stdout);\0A int status = system(cmd->ptr ? cmd->ptr : \22\22);\0A#ifdef _WIN32\0A return status; // Windows gives the exit code directly\0A#else\0A if (status == -1) return -1;\0A if (WIFEXITED(status)) return WEXITSTATUS(status);\0A return 128 + (WIFSIGNALED(status) ? WTERMSIG(status) : 0);\0A#endif\0A}\0A\0Aint finch_delete_file(const FStr *path) { return remove(path->ptr ? path->ptr : \22\22) == 0; }\0A\0Aint finch_try_delete_file(const FStr *path, FStr *err) {\0A if (remove(path->ptr ? path->ptr : \22\22) == 0) return 1;\0A file_error(err, \22delete\22, path);\0A return 0;\0A}\0A\0A// stdin/stdout/stderr are macros on some systems (Windows), so Finch asks for them here\0Avoid *finch_std_stream(int i) { return i == 0 ? (void *)stdin : i == 1 ? (void *)stdout : (void *)stderr; }\0A\0Aint finch_write_file(const FStr *path, const FStr *text) {\0A FILE *f = fopen(path->ptr ? path->ptr : \22\22, \22wb\22);\0A if (!f) return 0;\0A size_t put = text->len ? fwrite(text->ptr, 1, (size_t)text->len, f) : 0;\0A return fclose(f) == 0 && put == (size_t)text->len;\0A}\0A\0Aint finch_try_write_file(const FStr *path, const FStr *text, FStr *err) {\0A errno = 0;\0A if (finch_write_file(path, text)) return 1;\0A if (!errno) errno = EIO;\0A file_error(err, \22write\22, path);\0A return 0;\0A}\0A\0A// ---------- maps ----------\0A// map[K]V = { entries; len; used; cap; index; icap; adds }\0A// entries: `used` slots of es bytes, each { uint64 hash; K key; V value }, in insertion order.\0A// A removed entry keeps its slot (hash 0) until the next resize packs the slots.\0A// index: icap slots (a power of two, at least 2 * cap): -1 empty, -2 removed, else an entry number.\0A// adds: how many keys were ever added; a `for` over the map stops with an error if it changes.\0A// The compiler stores, copies and drops keys and values; the runtime only finds and places entries.\0A// Keys are compared byte for byte (numbers, chars, bools) or as text (kstr).\0A\0Atypedef struct {\0A char *entries;\0A int64_t len, used, cap;\0A int64_t *index;\0A int64_t icap;\0A int64_t adds;\0A} FMap;\0A\0Astatic uint64_t map_hash(const void *key, int64_t ks, int kstr) {\0A const unsigned char *p;\0A size_t n;\0A if (kstr) {\0A const FStr *s = key;\0A p = (const unsigned char *)s->ptr;\0A n = (size_t)s->len;\0A } else {\0A p = key;\0A n = (size_t)ks;\0A }\0A uint64_t h = 1469598103934665603ULL; // FNV-1a, then mixed so the low bits spread well\0A for (size_t i = 0; i < n; i++) {\0A h ^= p[i];\0A h *= 1099511628211ULL;\0A }\0A h ^= h >> 31;\0A h *= 0xbf58476d1ce4e5b9ULL;\0A h ^= h >> 29;\0A return h | 1; // 0 marks a removed entry\0A}\0A\0Astatic int map_key_eq(const char *a, const void *b, int64_t ks, int kstr) {\0A if (!kstr) return memcmp(a, b, (size_t)ks) == 0;\0A const FStr *x = (const FStr *)a, *y = b;\0A return x->len == y->len && (x->len == 0 || memcmp(x->ptr, y->ptr, (size_t)x->len) == 0);\0A}\0A\0Astatic void map_reindex(FMap *m, int64_t es) {\0A if (m->len != m->used) { // pack the slots of removed entries away\0A int64_t j = 0;\0A for (int64_t i = 0; i < m->used; i++) {\0A char *e = m->entries + i * es;\0A if (*(uint64_t *)e == 0) continue;\0A if (i != j) memmove(m->entries + j * es, e, (size_t)es);\0A j++;\0A }\0A m->used = j;\0A }\0A int64_t icap = 16;\0A while (icap < m->cap * 2) icap *= 2;\0A free(m->index);\0A m->index = finch_alloc(icap * (int64_t)sizeof(int64_t));\0A memset(m->index, 0xff, (size_t)icap * sizeof(int64_t));\0A m->icap = icap;\0A for (int64_t i = 0; i < m->used; i++) {\0A uint64_t h = *(uint64_t *)(m->entries + i * es);\0A int64_t s = (int64_t)(h & (uint64_t)(icap - 1));\0A while (m->index[s] != -1) s = (s + 1) & (icap - 1);\0A m->index[s] = i;\0A }\0A}\0A\0A// the entry number of `key`, or -1\0Aint64_t finch_map_find(const FMap *m, const void *key, int64_t es, int64_t ks, int32_t kstr) {\0A if (m->len == 0) return -1;\0A uint64_t h = map_hash(key, ks, kstr);\0A for (int64_t s = (int64_t)(h & (uint64_t)(m->icap - 1));; s = (s + 1) & (m->icap - 1)) {\0A int64_t i = m->index[s];\0A if (i == -1) return -1;\0A if (i < 0) continue;\0A char *e = m->entries + i * es;\0A if (*(uint64_t *)e == h && map_key_eq(e + 8, key, ks, kstr)) return i;\0A }\0A}\0A\0A// The entry for `key`. A new one is zeroed except its hash (*added = 1); the compiler then stores the key.\0Aint64_t finch_map_slot(FMap *m, const void *key, int64_t es, int64_t ks, int32_t kstr, int32_t *added) {\0A int64_t i = finch_map_find(m, key, es, ks, kstr);\0A *added = i < 0;\0A if (i >= 0) return i;\0A if (m->used == m->cap) {\0A if (m->len * 4 < m->cap * 3) { // many removed slots: pack them instead of growing\0A map_reindex(m, es);\0A } else {\0A m->cap = m->cap ? m->cap * 2 : 8;\0A m->entries = must(realloc(m->entries, (size_t)(m->cap * es)));\0A map_reindex(m, es);\0A }\0A }\0A uint64_t h = map_hash(key, ks, kstr);\0A i = m->used++;\0A char *e = m->entries + i * es;\0A memset(e, 0, (size_t)es);\0A *(uint64_t *)e = h;\0A int64_t s = (int64_t)(h & (uint64_t)(m->icap - 1));\0A while (m->index[s] >= 0) s = (s + 1) & (m->icap - 1);\0A m->index[s] = i;\0A m->len++;\0A m->adds++;\0A return i;\0A}\0A\0A// Forget entry i (its key and value were already dropped by the compiler).\0Avoid finch_map_remove_at(FMap *m, int64_t i, int64_t es) {\0A char *e = m->entries + i * es;\0A uint64_t h = *(uint64_t *)e;\0A int64_t s = (int64_t)(h & (uint64_t)(m->icap - 1));\0A while (m->index[s] != i) s = (s + 1) & (m->icap - 1);\0A m->index[s] = -2;\0A *(uint64_t *)e = 0;\0A if (--m->len == 0) {\0A m->used = 0;\0A memset(m->index, 0xff, (size_t)m->icap * sizeof(int64_t));\0A }\0A}\0A\0Avoid finch_map_clear(FMap *m) {\0A m->len = m->used = 0;\0A if (m->index) memset(m->index, 0xff, (size_t)m->icap * sizeof(int64_t));\0A}\0A\0Avoid finch_map_free(FMap *m) {\0A free(m->entries);\0A free(m->index);\0A}\0A\0A// A copy of the slots and the index; the compiler then copies the keys and values that own memory.\0Avoid finch_map_clone_raw(FMap *out, const FMap *m, int64_t es) {\0A *out = *m;\0A if (!m->cap) return;\0A out->entries = finch_alloc(m->cap * es);\0A memcpy(out->entries, m->entries, (size_t)(m->used * es));\0A out->index = finch_alloc(m->icap * (int64_t)sizeof(int64_t));\0A memcpy(out->index, m->index, (size_t)m->icap * sizeof(int64_t));\0A}\0A\0A__attribute__((noreturn, cold)) void finch_map_changed(const char *file, int64_t line) {\0A finch_panic(file, line, \22a key was added to the map while looping over it (collect the new keys, and add them after the loop)\22);\0A}\0A\0A__attribute__((noreturn, cold)) void finch_map_missing(const char *file, int64_t line, const FStr *key) {\0A char msg[200];\0A snprintf(msg, sizeof msg, \22the key %.*s is not in the map (check with .has(key), or use .get(key, default))\22,\0A (int)(key->len > 100 ? 100 : key->len), key->ptr ? key->ptr : \22\22);\0A finch_panic(file, line, msg);\0A}\0A\00" +@.str.7538 = private unnamed_addr constant [12885 x i8] c"// JSON: read it, build it, write it.\0A//\0A// import json\0A//\0A// doc := try json.parse(\22{\5C\22name\5C\22: \5C\22Finch\5C\22, \5C\22tags\5C\22: [\5C\22fast\5C\22, \5C\22small\5C\22], \5C\22stars\5C\22: 5}\22)\0A// print(doc.get(\22name\22).str_or(\22\22)) Finch\0A// print(doc.get(\22tags\22).at(1).str_or(\22\22)) small\0A// print(doc.get(\22stars\22).int_or(0)) 5\0A// print(doc.get(\22missing\22).is_null()) true (a missing key is null, so chains never fail)\0A//\0A// out := json.new_object()\0A// out.set(\22ok\22, json.new_bool(true))\0A// list := json.new_list()\0A// list.push(json.new_number(1.5))\0A// out.set(\22values\22, list)\0A// print(json.stringify(out)) {\22ok\22:true,\22values\22:[1.5]}\0A// print(json.pretty(out)) the same, over several lines\0A\0Aenum Kind { Null, Bool, Number, Text, List, Object }\0A\0A// One JSON value. `kind` says which of the other fields it uses: flag for Bool, num for Number,\0A// text for Text, items for List, and items with keys (the same length, in the same order) for Object.\0Astruct Json {\0A Kind kind\0A bool flag\0A float num\0A str text\0A []Json items\0A []str keys\0A}\0A\0Afn new_null() -> Json {\0A return Json(kind: Kind.Null)\0A}\0A\0Afn new_bool(bool b) -> Json {\0A return Json(kind: Kind.Bool, flag: b)\0A}\0A\0Afn new_number(float n) -> Json {\0A return Json(kind: Kind.Number, num: n)\0A}\0A\0Afn new_text(str s) -> Json {\0A return Json(kind: Kind.Text, text: s)\0A}\0A\0Afn new_list() -> Json {\0A return Json(kind: Kind.List)\0A}\0A\0Afn new_object() -> Json {\0A return Json(kind: Kind.Object)\0A}\0A\0A// ---------- looking inside ----------\0A\0Afn Json.is_null() -> bool {\0A return self.kind == Kind.Null\0A}\0A\0A// the number of elements of a list, of keys of an object, of bytes of a text; 0 for the rest\0Afn Json.len() -> int {\0A return match self.kind {\0A List, Object -> self.items.len\0A Text -> self.text.len\0A else -> 0\0A }\0A}\0A\0Afn Json.has(str key) -> bool {\0A return self.kind == Kind.Object && self.keys.contains(key)\0A}\0A\0A// the value of a key of an object; null if there is none (or this is not an object)\0Afn Json.get(str key) -> Json {\0A if self.kind != Kind.Object {\0A return new_null()\0A }\0A i := self.keys.find(key)\0A if i < 0 {\0A return new_null()\0A }\0A return self.items[i]\0A}\0A\0A// the element of a list; null if there is none\0Afn Json.at(int i) -> Json {\0A if self.kind != Kind.List || i < 0 || i >= self.items.len {\0A return new_null()\0A }\0A return self.items[i]\0A}\0A\0A// the value if it is of that kind, else what was given\0Afn Json.str_or(str fallback) -> str {\0A if self.kind == Kind.Text {\0A return self.text\0A }\0A return fallback\0A}\0A\0Afn Json.float_or(float fallback) -> float {\0A if self.kind == Kind.Number {\0A return self.num\0A }\0A return fallback\0A}\0A\0Afn Json.int_or(int fallback) -> int {\0A if self.kind == Kind.Number {\0A return int(self.num)\0A }\0A return fallback\0A}\0A\0Afn Json.bool_or(bool fallback) -> bool {\0A if self.kind == Kind.Bool {\0A return self.flag\0A }\0A return fallback\0A}\0A\0A// the keys of an object, in the order they were written\0Afn Json.names() -> []str {\0A return self.keys\0A}\0A\0A// ---------- building ----------\0A\0A// add to the end of a list\0Afn Json.push(Json v) {\0A self.items.push(v)\0A}\0A\0A// give a key a value in an object; a key that is already there is replaced\0Afn Json.set(str key, Json v) {\0A i := self.keys.find(key)\0A if i >= 0 {\0A self.items[i] = v\0A return\0A }\0A self.keys.push(key)\0A self.items.push(v)\0A}\0A\0A// ---------- writing ----------\0A\0Afn quote(str s) -> str {\0A []str parts = [\22\5C\22\22]\0A for c in s {\0A n := int(c)\0A if c == '\22' {\0A parts.push(\22\5C\5C\5C\22\22)\0A } else if c == '\5C\5C' {\0A parts.push(\22\5C\5C\5C\5C\22)\0A } else if c == '\5Cn' {\0A parts.push(\22\5C\5Cn\22)\0A } else if c == '\5Cr' {\0A parts.push(\22\5C\5Cr\22)\0A } else if c == '\5Ct' {\0A parts.push(\22\5C\5Ct\22)\0A } else if n < 32 {\0A parts.push(\22\5C\5Cu00\22 + hexdigit(n / 16) + hexdigit(n % 16))\0A } else {\0A parts.push(str(c))\0A }\0A }\0A parts.push(\22\5C\22\22)\0A return parts.join(\22\22)\0A}\0A\0Afn hexdigit(int n) -> str {\0A digits := \220123456789abcdef\22\0A return str(digits[n])\0A}\0A\0Afn number_text(float n) -> str {\0A if n == float(int(n)) && n > -1000000000000000.0 && n < 1000000000000000.0 {\0A return str(int(n))\0A }\0A return str(n)\0A}\0A\0Astruct Writer {\0A []str out\0A}\0A\0Afn write(Json j, str indent, str pad, ptr[Writer] w) {\0A nl := \22\22\0A inner := \22\22\0A sep := \22,\22\0A colon := \22:\22\0A if indent.len > 0 {\0A nl = \22\5Cn\22\0A inner = pad + indent\0A colon = \22: \22\0A }\0A match j.kind {\0A Null -> w.out.push(\22null\22)\0A Bool -> {\0A if j.flag {\0A w.out.push(\22true\22)\0A } else {\0A w.out.push(\22false\22)\0A }\0A }\0A Number -> w.out.push(number_text(j.num))\0A Text -> w.out.push(quote(j.text))\0A List -> {\0A if j.items.len == 0 {\0A w.out.push(\22[]\22)\0A return\0A }\0A w.out.push(\22[\22 + nl)\0A for i, item in j.items {\0A if i > 0 {\0A w.out.push(sep + nl)\0A }\0A w.out.push(inner)\0A write(item, indent, inner, w)\0A }\0A w.out.push(nl + pad + \22]\22)\0A }\0A Object -> {\0A if j.items.len == 0 {\0A w.out.push(\22{}\22)\0A return\0A }\0A w.out.push(\22{\22 + nl)\0A for i, item in j.items {\0A if i > 0 {\0A w.out.push(sep + nl)\0A }\0A w.out.push(inner + quote(j.keys[i]) + colon)\0A write(item, indent, inner, w)\0A }\0A w.out.push(nl + pad + \22}\22)\0A }\0A }\0A}\0A\0A// the value as text on one line\0Afn stringify(Json j) -> str {\0A w := Writer()\0A write(j, \22\22, \22\22, addr(w))\0A return w.out.join(\22\22)\0A}\0A\0A// the value as text over several lines, indented by two spaces\0Afn pretty(Json j) -> str {\0A w := Writer()\0A write(j, \22 \22, \22\22, addr(w))\0A return w.out.join(\22\22)\0A}\0A\0A// ---------- reading ----------\0A\0Astruct Reader {\0A str src\0A int i\0A}\0A\0A// the line and column of a position, for a message\0Afn where(ptr[Reader] r) -> str {\0A line := 1\0A col := 1\0A for k in 0..r.i {\0A if k < r.src.len && r.src[k] == '\5Cn' {\0A line += 1\0A col = 1\0A } else {\0A col += 1\0A }\0A }\0A return \22line \22 + str(line) + \22, column \22 + str(col)\0A}\0A\0Afn peek(ptr[Reader] r) -> char {\0A if r.i < r.src.len {\0A return r.src[r.i]\0A }\0A return char(0)\0A}\0A\0Afn skip_space(ptr[Reader] r) {\0A while r.i < r.src.len && (r.src[r.i] == ' ' || r.src[r.i] == '\5Cn' || r.src[r.i] == '\5Ct' || r.src[r.i] == '\5Cr') {\0A r.i += 1\0A }\0A}\0A\0Afn unexpected(ptr[Reader] r, str wanted) -> str {\0A if r.i >= r.src.len {\0A return \22json: the text ends where \22 + wanted + \22 should be (\22 + where(r) + \22)\22\0A }\0A return \22json: found '\22 + str(r.src[r.i]) + \22' where \22 + wanted + \22 should be (\22 + where(r) + \22)\22\0A}\0A\0A// does `word` come next?\0Afn comes(ptr[Reader] r, str word) -> bool {\0A return r.src.len - r.i >= word.len && r.src.sub(r.i, r.i + word.len) == word\0A}\0A\0Afn expect_word(ptr[Reader] r, str word) -> ! {\0A if !comes(r, word) {\0A return error(unexpected(r, \22'\22 + word + \22'\22))\0A }\0A r.i += word.len\0A}\0A\0Afn hex_value(char c) -> int {\0A if c >= '0' && c <= '9' {\0A return int(c) - int('0')\0A }\0A if c >= 'a' && c <= 'f' {\0A return int(c) - int('a') + 10\0A }\0A if c >= 'A' && c <= 'F' {\0A return int(c) - int('A') + 10\0A }\0A return -1\0A}\0A\0A// a code point as UTF-8\0Afn utf8(int cp) -> str {\0A []u8 b\0A if cp < 128 {\0A b.push(u8(cp))\0A } else if cp < 2048 {\0A b.push(u8(192 + cp / 64))\0A b.push(u8(128 + cp % 64))\0A } else if cp < 65536 {\0A b.push(u8(224 + cp / 4096))\0A b.push(u8(128 + (cp / 64) % 64))\0A b.push(u8(128 + cp % 64))\0A } else {\0A b.push(u8(240 + cp / 262144))\0A b.push(u8(128 + (cp / 4096) % 64))\0A b.push(u8(128 + (cp / 64) % 64))\0A b.push(u8(128 + cp % 64))\0A }\0A return str(b)\0A}\0A\0Afn read_hex4(ptr[Reader] r) -> int! {\0A n := 0\0A for k in 0..4 {\0A if r.i >= r.src.len || hex_value(r.src[r.i]) < 0 {\0A return error(unexpected(r, \22a hexadecimal digit\22))\0A }\0A n = n * 16 + hex_value(r.src[r.i])\0A r.i += 1\0A }\0A return n\0A}\0A\0Afn read_string(ptr[Reader] r) -> str! {\0A r.i += 1 // the opening quote\0A []str parts\0A start := r.i\0A while true {\0A if r.i >= r.src.len {\0A return error(\22json: a text is never closed (\22 + where(r) + \22)\22)\0A }\0A c := r.src[r.i]\0A if c == '\22' {\0A parts.push(r.src.sub(start, r.i))\0A r.i += 1\0A return parts.join(\22\22)\0A }\0A if int(c) < 32 {\0A return error(\22json: a line break or control character inside a text (\22 + where(r) + \22)\22)\0A }\0A if c != '\5C\5C' {\0A r.i += 1\0A continue\0A }\0A parts.push(r.src.sub(start, r.i))\0A r.i += 1\0A e := peek(r)\0A r.i += 1\0A if e == 'n' {\0A parts.push(\22\5Cn\22)\0A } else if e == 't' {\0A parts.push(\22\5Ct\22)\0A } else if e == 'r' {\0A parts.push(\22\5Cr\22)\0A } else if e == 'b' {\0A parts.push(utf8(8))\0A } else if e == 'f' {\0A parts.push(utf8(12))\0A } else if e == '\22' || e == '\5C\5C' || e == '/' {\0A parts.push(str(e))\0A } else if e == 'u' {\0A cp := try read_hex4(r)\0A // a pair of \F0\9F\98\80 stands for one character above U+FFFF\0A if cp >= 55296 && cp < 56320 && comes(r, \22\5C\5Cu\22) {\0A r.i += 2\0A low := try read_hex4(r)\0A cp = 65536 + (cp - 55296) * 1024 + (low - 56320)\0A }\0A parts.push(utf8(cp))\0A } else {\0A return error(\22json: unknown escape \5C\5C\22 + str(e) + \22 in a text (\22 + where(r) + \22)\22)\0A }\0A start = r.i\0A }\0A}\0A\0Afn read_number(ptr[Reader] r) -> Json! {\0A start := r.i\0A if peek(r) == '-' {\0A r.i += 1\0A }\0A while r.i < r.src.len && ((r.src[r.i] >= '0' && r.src[r.i] <= '9') || r.src[r.i] == '.' || r.src[r.i] == 'e' || r.src[r.i] == 'E' || r.src[r.i] == '+' || r.src[r.i] == '-') {\0A r.i += 1\0A }\0A n := float(r.src.sub(start, r.i)) or {\0A r.i = start\0A return error(unexpected(r, \22a number\22))\0A }\0A return new_number(n)\0A}\0A\0Afn read_value(ptr[Reader] r) -> Json! {\0A skip_space(r)\0A c := peek(r)\0A if r.i >= r.src.len {\0A return error(unexpected(r, \22a value\22))\0A }\0A if c == '{' {\0A obj := new_object()\0A r.i += 1\0A skip_space(r)\0A if peek(r) == '}' {\0A r.i += 1\0A return obj\0A }\0A while true {\0A skip_space(r)\0A if peek(r) != '\22' {\0A return error(unexpected(r, \22a key in quotes\22))\0A }\0A key := try read_string(r)\0A skip_space(r)\0A if peek(r) != ':' {\0A return error(unexpected(r, \22':'\22))\0A }\0A r.i += 1\0A v := try read_value(r)\0A obj.set(key, v)\0A skip_space(r)\0A if peek(r) == ',' {\0A r.i += 1\0A continue\0A }\0A if peek(r) == '}' {\0A r.i += 1\0A return obj\0A }\0A return error(unexpected(r, \22',' or '}'\22))\0A }\0A }\0A if c == '[' {\0A list := new_list()\0A r.i += 1\0A skip_space(r)\0A if peek(r) == ']' {\0A r.i += 1\0A return list\0A }\0A while true {\0A v := try read_value(r)\0A list.push(v)\0A skip_space(r)\0A if peek(r) == ',' {\0A r.i += 1\0A continue\0A }\0A if peek(r) == ']' {\0A r.i += 1\0A return list\0A }\0A return error(unexpected(r, \22',' or ']'\22))\0A }\0A }\0A if c == '\22' {\0A s := try read_string(r)\0A return new_text(s)\0A }\0A if c == 't' {\0A try expect_word(r, \22true\22)\0A return new_bool(true)\0A }\0A if c == 'f' {\0A try expect_word(r, \22false\22)\0A return new_bool(false)\0A }\0A if c == 'n' {\0A try expect_word(r, \22null\22)\0A return new_null()\0A }\0A if c == '-' || (c >= '0' && c <= '9') {\0A return try read_number(r)\0A }\0A return error(unexpected(r, \22a value\22))\0A}\0A\0A// the JSON in `text`; an error with the line and column where it went wrong\0Afn parse(str text) -> Json! {\0A r := Reader(src: text)\0A v := try read_value(addr(r))\0A skip_space(addr(r))\0A if r.i < r.src.len {\0A return error(unexpected(addr(r), \22the end of the text\22))\0A }\0A return v\0A}\0A\00" +@.str.7539 = private unnamed_addr constant [2847 x i8] c"// Paths, as text. Elements are separated by \22/\22.\0A//\0A// import path\0A// path.join(\22a\22, \22b.txt\22) a/b.txt\0A// path.base(\22/tmp/x/a.tar.gz\22) a.tar.gz path.stem(...) a.tar path.ext(...) .gz\0A// path.dir(\22/tmp/x/a.txt\22) /tmp/x\0A// path.clean(\22a//b/../c/./d\22) a/c/d\0A\0A// a and b with one separator between; an absolute b replaces a\0Afn join(str a, str b) -> str {\0A if a.len == 0 {\0A return b\0A }\0A if b.len == 0 {\0A return a\0A }\0A if b[0] == '/' {\0A return b\0A }\0A if a[a.len - 1] == '/' {\0A return a + b\0A }\0A return a + \22/\22 + b\0A}\0A\0Afn is_abs(str p) -> bool {\0A return p.len > 0 && p[0] == '/'\0A}\0A\0A// the last element: \22a/b.txt\22 -> \22b.txt\22, \22a/b/\22 -> \22b\22, \22\22 -> \22.\22, \22/\22 -> \22/\22\0Afn base(str p) -> str {\0A if p.len == 0 {\0A return \22.\22\0A }\0A end := p.len\0A while end > 1 && p[end - 1] == '/' {\0A end -= 1\0A }\0A if end == 1 && p[0] == '/' {\0A return \22/\22\0A }\0A start := end\0A while start > 0 && p[start - 1] != '/' {\0A start -= 1\0A }\0A return p.sub(start, end)\0A}\0A\0A// everything before the last element: \22a/b.txt\22 -> \22a\22, \22b.txt\22 -> \22.\22, \22/b\22 -> \22/\22\0Afn dir(str p) -> str {\0A end := p.len\0A while end > 1 && p[end - 1] == '/' {\0A end -= 1\0A }\0A i := end\0A while i > 0 && p[i - 1] != '/' {\0A i -= 1\0A }\0A if i == 0 {\0A return \22.\22\0A }\0A while i > 1 && p[i - 1] == '/' {\0A i -= 1\0A }\0A return p.sub(0, i)\0A}\0A\0A// the part of the last element from its last dot: \22a.tar.gz\22 -> \22.gz\22; \22\22 when there is none\0Afn ext(str p) -> str {\0A b := base(p)\0A i := b.len\0A while i > 0 && b[i - 1] != '.' {\0A i -= 1\0A }\0A if i <= 1 { // no dot, or a name that only starts with one (.bashrc)\0A return \22\22\0A }\0A return b.sub(i - 1, b.len)\0A}\0A\0A// the last element without its extension\0Afn stem(str p) -> str {\0A b := base(p)\0A e := ext(p)\0A return b.sub(0, b.len - e.len)\0A}\0A\0A// the elements of a path: \22/a/b/c\22 -> [\22a\22, \22b\22, \22c\22]\0Afn parts(str p) -> []str {\0A []str out\0A for piece in p.split(\22/\22) {\0A if piece.len > 0 {\0A out.push(piece)\0A }\0A }\0A return out\0A}\0A\0A// the shortest path with the same meaning: no \22//\22, no \22.\22, and \22..\22 resolved where it can be\0Afn clean(str p) -> str {\0A if p.len == 0 {\0A return \22.\22\0A }\0A abs := is_abs(p)\0A []str out\0A for piece in parts(p) {\0A if piece == \22.\22 {\0A continue\0A }\0A if piece == \22..\22 {\0A if out.len > 0 && out[out.len - 1] != \22..\22 {\0A out.pop()\0A } else if !abs {\0A out.push(\22..\22)\0A }\0A continue\0A }\0A out.push(piece)\0A }\0A joined := out.join(\22/\22)\0A if abs {\0A return \22/\22 + joined\0A }\0A if joined.len == 0 {\0A return \22.\22\0A }\0A return joined\0A}\0A\00" +@.str.7540 = private unnamed_addr constant [1407 x i8] c"// Programs: run a command, read what it printed, look at the environment.\0A//\0A// import proc\0A// code := proc.run(\22make\22) the exit code; what the command prints goes to the screen\0A// text := try proc.output(\22git describe\22) what the command printed; an error if it failed\0A// proc.env(\22HOME\22, \22/\22) an environment variable, or the second value if it is not set\0Aimport \22stdlib.h\22\0Aimport \22unistd.h\22\0Aimport \22time.h\22\0A\0A// run a command; its output goes to the screen. Gives its exit code.\0Afn run(str command) -> int {\0A return shell(command)\0A}\0A\0A// run a command and give what it printed. Fails, with its output as the message, if it exits with an error.\0Afn output(str command) -> str! {\0A tmp := \22/tmp/finch_out_\22 + str(getpid()) + \22_\22 + str(int(time(null)))\0A code := shell(\22(\22 + command + \22) > '\22 + tmp + \22' 2>&1\22)\0A text := read_file(tmp) or \22\22\0A delete_file(tmp)\0A if code != 0 {\0A return error(\22'\22 + command + \22' exited with code \22 + str(code) + \22: \22 + text.trim())\0A }\0A return text\0A}\0A\0Afn env(str name, str fallback) -> str {\0A v := getenv(name)\0A if v.len == 0 {\0A return fallback\0A }\0A return v\0A}\0A\0Afn pid() -> int {\0A return int(getpid())\0A}\0A\0A// the folder the program is running in\0Afn cwd() -> str {\0A []char buf\0A for i in 0..4096 {\0A buf.push(char(0))\0A }\0A getcwd(buf.ptr, 4096)\0A return str(buf.ptr)\0A}\0A\00" +@.str.7541 = private unnamed_addr constant [996 x i8] c"// Programs, for Windows. The same functions as proc.fch (that file is for Linux and macOS).\0Aimport \22stdlib.h\22\0Aimport \22process.h\22\0Aimport \22direct.h\22\0Aimport \22time.h\22\0A\0Afn run(str command) -> int {\0A return shell(command)\0A}\0A\0Afn output(str command) -> str! {\0A tmp := proc_env(\22TEMP\22, \22.\22) + \22\5C\5Cfinch_out_\22 + str(getpid()) + \22_\22 + str(int(time(null)))\0A code := shell(command + \22 > \5C\22\22 + tmp + \22\5C\22 2>&1\22)\0A text := read_file(tmp) or \22\22\0A delete_file(tmp)\0A if code != 0 {\0A return error(\22'\22 + command + \22' exited with code \22 + str(code) + \22: \22 + text.trim())\0A }\0A return text\0A}\0A\0Afn proc_env(str name, str fallback) -> str {\0A v := getenv(name)\0A if v.len == 0 {\0A return fallback\0A }\0A return v\0A}\0A\0Afn env(str name, str fallback) -> str {\0A return proc_env(name, fallback)\0A}\0A\0Afn pid() -> int {\0A return int(getpid())\0A}\0A\0Afn cwd() -> str {\0A []char buf\0A for i in 0..4096 {\0A buf.push(char(0))\0A }\0A getcwd(buf.ptr, 4096)\0A return str(buf.ptr)\0A}\0A\00" +@.str.7542 = private unnamed_addr constant [2540 x i8] c"// Time: the clock, sleeping, and dates.\0A//\0A// import time\0A// start := time.millis() milliseconds from a clock that only goes forward (to measure with)\0A// time.sleep(250) wait a quarter of a second\0A// time.now() seconds since 1970-01-01 00:00 UTC\0A// d := time.date(time.now()) the parts: d.year, d.month, d.day, d.hour, d.minute, d.second\0A// time.format(time.now(), \22%Y-%m-%d %H:%M\22) as text, in the computer's time zone\0Aimport \22time.h\22\0A\0Astruct Date {\0A int year\0A int month // 1 to 12\0A int day // 1 to 31\0A int hour\0A int minute\0A int second\0A int weekday // 0 is Sunday\0A int yearday // 1 to 366\0A}\0A\0A// seconds since 1970-01-01 00:00 UTC\0Afn now() -> int {\0A return int(time(null))\0A}\0A\0A// milliseconds on a clock that only goes forward: for measuring how long something took\0Afn millis() -> int {\0A timespec ts\0A clock_gettime(CLOCK_MONOTONIC, addr(ts))\0A return int(ts.tv_sec) * 1000 + int(ts.tv_nsec) / 1000000\0A}\0A\0Afn sleep(int ms) {\0A timespec ts\0A ts.tv_sec = ms / 1000\0A ts.tv_nsec = (ms % 1000) * 1000000\0A nanosleep(addr(ts), null)\0A}\0A\0Afn parts(tm t) -> Date {\0A return Date(year: int(t.tm_year) + 1900, month: int(t.tm_mon) + 1, day: int(t.tm_mday), hour: int(t.tm_hour),\0A minute: int(t.tm_min), second: int(t.tm_sec), weekday: int(t.tm_wday), yearday: int(t.tm_yday) + 1)\0A}\0A\0A// the date and time of a moment, in UTC\0Afn date(int unix) -> Date {\0A tm t\0A i64 stamp = unix\0A gmtime_r(addr(stamp), addr(t))\0A return parts(t)\0A}\0A\0A// the date and time of a moment, in the computer's time zone\0Afn local(int unix) -> Date {\0A tm t\0A i64 stamp = unix\0A localtime_r(addr(stamp), addr(t))\0A return parts(t)\0A}\0A\0A// a moment as text, in the computer's time zone: %Y year, %m month, %d day, %H hour, %M minute, %S second\0A// (the rest of C's strftime works too: %A weekday name, %B month name, ...)\0Afn format(int unix, str pattern) -> str {\0A tm t\0A i64 stamp = unix\0A localtime_r(addr(stamp), addr(t))\0A []char buf\0A for i in 0..256 {\0A buf.push(char(0))\0A }\0A strftime(buf.ptr, 256, pattern, addr(t))\0A return str(buf.ptr)\0A}\0A\0A// the number of days in a month (month is 1 to 12)\0Afn days_in_month(int year, int month) -> int {\0A if month == 2 {\0A if year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) {\0A return 29\0A }\0A return 28\0A }\0A if month == 4 || month == 6 || month == 9 || month == 11 {\0A return 30\0A }\0A return 31\0A}\0A\00" +@.str.7543 = private unnamed_addr constant [1793 x i8] c"// Time, for Windows. The same functions as time.fch (that file is for Linux and macOS).\0Aimport \22time.h\22\0Aimport \22finch_win.h\22\0A\0Astruct Date {\0A int year\0A int month // 1 to 12\0A int day // 1 to 31\0A int hour\0A int minute\0A int second\0A int weekday // 0 is Sunday\0A int yearday // 1 to 366\0A}\0A\0Afn now() -> int {\0A return int(time(null))\0A}\0A\0A// milliseconds on a clock that only goes forward (the performance counter: GetTickCount64 ticks every 15 ms)\0Afn millis() -> int {\0A i64 count = 0\0A i64 freq = 1\0A QueryPerformanceFrequency(addr(freq))\0A QueryPerformanceCounter(addr(count))\0A return int(count / freq) * 1000 + int(count % freq) * 1000 / int(freq)\0A}\0A\0Afn sleep(int ms) {\0A Sleep(u32(ms))\0A}\0A\0Afn parts(tm t) -> Date {\0A return Date(year: int(t.tm_year) + 1900, month: int(t.tm_mon) + 1, day: int(t.tm_mday), hour: int(t.tm_hour),\0A minute: int(t.tm_min), second: int(t.tm_sec), weekday: int(t.tm_wday), yearday: int(t.tm_yday) + 1)\0A}\0A\0Afn date(int unix) -> Date {\0A tm t\0A i64 stamp = unix\0A _gmtime64_s(addr(t), addr(stamp))\0A return parts(t)\0A}\0A\0Afn local(int unix) -> Date {\0A tm t\0A i64 stamp = unix\0A _localtime64_s(addr(t), addr(stamp))\0A return parts(t)\0A}\0A\0Afn format(int unix, str pattern) -> str {\0A tm t\0A i64 stamp = unix\0A _localtime64_s(addr(t), addr(stamp))\0A []char buf\0A for i in 0..256 {\0A buf.push(char(0))\0A }\0A strftime(buf.ptr, 256, pattern, addr(t))\0A return str(buf.ptr)\0A}\0A\0Afn days_in_month(int year, int month) -> int {\0A if month == 2 {\0A if year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) {\0A return 29\0A }\0A return 28\0A }\0A if month == 4 || month == 6 || month == 9 || month == 11 {\0A return 30\0A }\0A return 31\0A}\0A\00" +@.str.7544 = private unnamed_addr constant [366 x i8] c"/* The Windows functions std/time_windows.fch needs. Declared here, not by including :\0A libclang can't parse that header with MinGW's intrinsics. Both are in kernel32. */\0Aunsigned long long GetTickCount64(void);\0Avoid Sleep(unsigned long milliseconds);\0Aint QueryPerformanceCounter(long long *count);\0Aint QueryPerformanceFrequency(long long *frequency);\0A\00" declare void @finch_panic(ptr, i64, ptr) noreturn cold declare void @finch_panic_index(ptr, i64, i64, i64) noreturn cold @@ -17112,6 +17322,9 @@ entry: %a135 = alloca { ptr, i64, i64 }, align 16 %a145 = alloca { ptr, i64, i64 }, align 16 %a146 = alloca { ptr, i64, i64 }, align 16 + %a166 = alloca %S.ast.Node, align 16 + %a170 = alloca %S.ast.Node, align 16 + %a171 = alloca %S.ast.Node, align 16 store ptr %p0, ptr %a1 store %S.ast.Program zeroinitializer, ptr %a2 br label %while.cond1351 @@ -17374,30 +17587,53 @@ else1392: %t163 = call i1 @finch.parser.at(ptr %t162, { ptr, i64, i64 } { ptr @.str.757, i64 4, i64 0 }) br i1 %t163, label %then1394, label %else1395 then1394: - %t164 = getelementptr inbounds %S.ast.Program, ptr %a2, i32 0, i32 7 - %t165 = getelementptr inbounds { ptr, i64, i64 }, ptr %t164, i32 0, i32 1 - %t166 = load ptr, ptr %a1 - %t167 = call %S.ast.Node @finch.parser.parseEnum(ptr %t166) - %t168 = load i64, ptr %t165 - %t169 = add i64 %t168, 1 - call void @finch_arr_reserve(ptr %t164, i64 %t169, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) - %t170 = load ptr, ptr %t164 - %t171 = getelementptr inbounds %S.ast.Node, ptr %t170, i64 %t168 - store %S.ast.Node %t167, ptr %t171 - store i64 %t169, ptr %t165 + %t164 = load ptr, ptr %a1 + %t165 = call %S.ast.Node @finch.parser.parseEnum(ptr %t164) + store %S.ast.Node %t165, ptr %a166 + %t167 = getelementptr inbounds %S.ast.Program, ptr %a2, i32 0, i32 7 + %t168 = getelementptr inbounds { ptr, i64, i64 }, ptr %t167, i32 0, i32 1 + %t169 = load %S.ast.Node, ptr %a166 + store %S.ast.Node %t169, ptr %a170 + call void @finch.copy.S_ast_Node(ptr %a171, ptr %a170) + %t172 = load %S.ast.Node, ptr %a171 + %t173 = load i64, ptr %t168 + %t174 = add i64 %t173, 1 + call void @finch_arr_reserve(ptr %t167, i64 %t174, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) + %t175 = load ptr, ptr %t167 + %t176 = getelementptr inbounds %S.ast.Node, ptr %t175, i64 %t173 + store %S.ast.Node %t172, ptr %t176 + store i64 %t174, ptr %t168 + %t177 = getelementptr inbounds %S.ast.Node, ptr %a166, i32 0, i32 6 + %t178 = load i1, ptr %t177 + br i1 %t178, label %then1397, label %endif1399 +then1397: + %t179 = getelementptr inbounds %S.ast.Program, ptr %a2, i32 0, i32 6 + %t180 = getelementptr inbounds { ptr, i64, i64 }, ptr %t179, i32 0, i32 1 + %t181 = load %S.ast.Node, ptr %a166 + %t182 = call %S.ast.Node @finch.parser.sumStruct(%S.ast.Node %t181) + %t183 = load i64, ptr %t180 + %t184 = add i64 %t183, 1 + call void @finch_arr_reserve(ptr %t179, i64 %t184, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) + %t185 = load ptr, ptr %t179 + %t186 = getelementptr inbounds %S.ast.Node, ptr %t185, i64 %t183 + store %S.ast.Node %t182, ptr %t186 + store i64 %t184, ptr %t180 + br label %endif1399 +endif1399: + call void @finch.drop.S_ast_Node(ptr %a166) br label %endif1396 else1395: - %t172 = getelementptr inbounds %S.ast.Program, ptr %a2, i32 0, i32 8 - %t173 = getelementptr inbounds { ptr, i64, i64 }, ptr %t172, i32 0, i32 1 - %t174 = load ptr, ptr %a1 - %t175 = call %S.ast.Node @finch.parser.parseFn(ptr %t174) - %t176 = load i64, ptr %t173 - %t177 = add i64 %t176, 1 - call void @finch_arr_reserve(ptr %t172, i64 %t177, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) - %t178 = load ptr, ptr %t172 - %t179 = getelementptr inbounds %S.ast.Node, ptr %t178, i64 %t176 - store %S.ast.Node %t175, ptr %t179 - store i64 %t177, ptr %t173 + %t187 = getelementptr inbounds %S.ast.Program, ptr %a2, i32 0, i32 8 + %t188 = getelementptr inbounds { ptr, i64, i64 }, ptr %t187, i32 0, i32 1 + %t189 = load ptr, ptr %a1 + %t190 = call %S.ast.Node @finch.parser.parseFn(ptr %t189) + %t191 = load i64, ptr %t188 + %t192 = add i64 %t191, 1 + call void @finch_arr_reserve(ptr %t187, i64 %t192, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) + %t193 = load ptr, ptr %t187 + %t194 = getelementptr inbounds %S.ast.Node, ptr %t193, i64 %t191 + store %S.ast.Node %t190, ptr %t194 + store i64 %t192, ptr %t188 br label %endif1396 endif1396: br label %endif1393 @@ -17408,8 +17644,8 @@ endif1367: endif1356: br label %while.cond1351 while.end1353: - %t180 = load %S.ast.Program, ptr %a2 - ret %S.ast.Program %t180 + %t195 = load %S.ast.Program, ptr %a2 + ret %S.ast.Program %t195 } define internal %S.ast.Node @finch.parser.parseEnum(ptr %p0) { @@ -17428,28 +17664,70 @@ entry: %a37 = alloca { ptr, i64, i64 }, align 16 %a39 = alloca %S.lexer.Token, align 16 %a42 = alloca { ptr, i64, i64 }, align 16 - %a45 = alloca { ptr, i64, i64 }, align 16 - %a49 = alloca { ptr, i64, i64 }, align 16 - %a54 = alloca { ptr, i64, i64 }, align 16 - %a55 = alloca { ptr, i64, i64 }, align 16 - %a57 = alloca %S.lexer.Token, align 16 - %a58 = alloca { ptr, i64, i64 }, align 16 - %a59 = alloca { ptr, i64, i64 }, align 16 - %a60 = alloca { ptr, i64, i64 }, align 16 - %a61 = alloca { ptr, i64, i64 }, align 16 - %a65 = alloca { ptr, i64, i64 }, align 16 - %a69 = alloca %S.ast.Node, align 16 - %a70 = alloca %S.ast.Node, align 16 - %a82 = alloca %S.lexer.Token, align 16 - %a92 = alloca { ptr, i64, i64 }, align 16 + %a51 = alloca %S.ast.Node, align 16 + %a56 = alloca %S.ast.Type, align 16 + %a60 = alloca %S.ast.Node, align 16 + %a61 = alloca %S.ast.Node, align 16 + %a72 = alloca %S.lexer.Token, align 16 + %a82 = alloca { ptr, i64, i64 }, align 16 + %a83 = alloca { ptr, i64, i64 }, align 16 + %a84 = alloca { ptr, i64, i64 }, align 16 + %a86 = alloca { ptr, i64, i64 }, align 16 + %a87 = alloca { ptr, i64, i64 }, align 16 + %a88 = alloca { ptr, i64, i64 }, align 16 + %a89 = alloca { ptr, i64, i64 }, align 16 %a93 = alloca { ptr, i64, i64 }, align 16 %a94 = alloca { ptr, i64, i64 }, align 16 + %a95 = alloca { ptr, i64, i64 }, align 16 %a96 = alloca { ptr, i64, i64 }, align 16 - %a97 = alloca { ptr, i64, i64 }, align 16 %a98 = alloca { ptr, i64, i64 }, align 16 %a99 = alloca { ptr, i64, i64 }, align 16 - %a101 = alloca %S.lexer.Token, align 16 - %a102 = alloca { ptr, i64, i64 }, align 16 + %a100 = alloca { ptr, i64, i64 }, align 16 + %a101 = alloca { ptr, i64, i64 }, align 16 + %a103 = alloca %S.lexer.Token, align 16 + %a104 = alloca { ptr, i64, i64 }, align 16 + %a112 = alloca %S.lexer.Token, align 16 + %a113 = alloca { ptr, i64, i64 }, align 16 + %a117 = alloca { ptr, i64, i64 }, align 16 + %a122 = alloca { ptr, i64, i64 }, align 16 + %a123 = alloca { ptr, i64, i64 }, align 16 + %a125 = alloca %S.lexer.Token, align 16 + %a126 = alloca { ptr, i64, i64 }, align 16 + %a127 = alloca { ptr, i64, i64 }, align 16 + %a128 = alloca { ptr, i64, i64 }, align 16 + %a129 = alloca { ptr, i64, i64 }, align 16 + %a133 = alloca { ptr, i64, i64 }, align 16 + %a137 = alloca %S.ast.Node, align 16 + %a138 = alloca %S.ast.Node, align 16 + %a150 = alloca %S.lexer.Token, align 16 + %a160 = alloca { ptr, i64, i64 }, align 16 + %a161 = alloca { ptr, i64, i64 }, align 16 + %a162 = alloca { ptr, i64, i64 }, align 16 + %a164 = alloca { ptr, i64, i64 }, align 16 + %a165 = alloca { ptr, i64, i64 }, align 16 + %a166 = alloca { ptr, i64, i64 }, align 16 + %a167 = alloca { ptr, i64, i64 }, align 16 + %a169 = alloca %S.lexer.Token, align 16 + %a170 = alloca { ptr, i64, i64 }, align 16 + %a174 = alloca i64, align 16 + %a182 = alloca %S.ast.Node, align 16 + %a192 = alloca { ptr, i64, i64 }, align 16 + %a193 = alloca { ptr, i64, i64 }, align 16 + %a194 = alloca { ptr, i64, i64 }, align 16 + %a196 = alloca { ptr, i64, i64 }, align 16 + %a197 = alloca { ptr, i64, i64 }, align 16 + %a198 = alloca { ptr, i64, i64 }, align 16 + %a199 = alloca { ptr, i64, i64 }, align 16 + %a203 = alloca { ptr, i64, i64 }, align 16 + %a204 = alloca { ptr, i64, i64 }, align 16 + %a205 = alloca { ptr, i64, i64 }, align 16 + %a206 = alloca { ptr, i64, i64 }, align 16 + %a208 = alloca { ptr, i64, i64 }, align 16 + %a209 = alloca { ptr, i64, i64 }, align 16 + %a210 = alloca { ptr, i64, i64 }, align 16 + %a211 = alloca { ptr, i64, i64 }, align 16 + %a213 = alloca %S.lexer.Token, align 16 + %a214 = alloca { ptr, i64, i64 }, align 16 store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 %t3 = call %S.ast.Node @finch.parser.node(ptr %t2, { ptr, i64, i64 } { ptr @.str.758, i64 4, i64 0 }) @@ -17475,25 +17753,25 @@ entry: %t19 = call %S.lexer.Token @finch.parser.expect(ptr %t18, { ptr, i64, i64 } { ptr @.str.763, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.764, i64 3, i64 0 }) store %S.lexer.Token %t19, ptr %a20 call void @finch.drop.S_lexer_Token(ptr %a20) - br label %while.cond1397 -while.cond1397: + br label %while.cond1400 +while.cond1400: %t21 = load ptr, ptr %a1 %t22 = call i1 @finch.parser.at(ptr %t21, { ptr, i64, i64 } { ptr @.str.765, i64 1, i64 0 }) %t23 = xor i1 %t22, true - br i1 %t23, label %while.body1398, label %while.end1399 -while.body1398: + br i1 %t23, label %while.body1401, label %while.end1402 +while.body1401: %t24 = load ptr, ptr %a1 %t25 = call i1 @finch.parser.at(ptr %t24, { ptr, i64, i64 } { ptr @.str.766, i64 3, i64 0 }) - br i1 %t25, label %then1400, label %endif1402 -then1400: + br i1 %t25, label %then1403, label %endif1405 +then1403: %t26 = load ptr, ptr %a1 %t27 = load ptr, ptr %a1 %t28 = call %S.lexer.Token @finch.parser.cur(ptr %t27) call void @finch.parser.fail(ptr %t26, %S.lexer.Token %t28, { ptr, i64, i64 } { ptr @.str.767, i64 37, i64 0 }) store %S.lexer.Token %t28, ptr %a29 call void @finch.drop.S_lexer_Token(ptr %a29) - br label %endif1402 -endif1402: + br label %endif1405 +endif1405: %t30 = load ptr, ptr %a1 %t31 = call %S.ast.Node @finch.parser.node(ptr %t30, { ptr, i64, i64 } { ptr @.str.768, i64 7, i64 0 }) store %S.ast.Node %t31, ptr %a32 @@ -17512,101 +17790,462 @@ endif1402: call void @finch_str_drop(ptr %a42) %t43 = load ptr, ptr %a1 %t44 = call i1 @finch.parser.accept(ptr %t43, { ptr, i64, i64 } { ptr @.str.771, i64 1, i64 0 }) - br i1 %t44, label %then1403, label %endif1405 -then1403: - store { ptr, i64, i64 } { ptr @.str.772, i64 0, i64 0 }, ptr %a45 - %t46 = load ptr, ptr %a1 - %t47 = call i1 @finch.parser.accept(ptr %t46, { ptr, i64, i64 } { ptr @.str.773, i64 1, i64 0 }) - br i1 %t47, label %then1406, label %endif1408 + br i1 %t44, label %then1406, label %endif1408 then1406: - %t48 = load { ptr, i64, i64 }, ptr %a45 - store { ptr, i64, i64 } { ptr @.str.774, i64 1, i64 0 }, ptr %a45 - store { ptr, i64, i64 } %t48, ptr %a49 - call void @finch_str_drop(ptr %a49) + %t45 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 6 + store i1 true, ptr %t45 + br label %while.cond1409 +while.cond1409: + %t46 = load ptr, ptr %a1 + %t47 = call i1 @finch.parser.at(ptr %t46, { ptr, i64, i64 } { ptr @.str.772, i64 1, i64 0 }) + %t48 = xor i1 %t47, true + br i1 %t48, label %while.body1410, label %while.end1411 +while.body1410: + %t49 = load ptr, ptr %a1 + %t50 = call %S.ast.Node @finch.parser.node(ptr %t49, { ptr, i64, i64 } { ptr @.str.773, i64 5, i64 0 }) + store %S.ast.Node %t50, ptr %a51 + %t52 = load ptr, ptr %a1 + %t53 = call %S.ast.Type @finch.parser.parseType(ptr %t52) + %t54 = getelementptr inbounds %S.ast.Node, ptr %a51, i32 0, i32 5 + %t55 = load %S.ast.Type, ptr %t54 + store %S.ast.Type %t53, ptr %t54 + store %S.ast.Type %t55, ptr %a56 + call void @finch.drop.S_ast_Type(ptr %a56) + %t57 = getelementptr inbounds %S.ast.Node, ptr %a32, i32 0, i32 9 + %t58 = getelementptr inbounds { ptr, i64, i64 }, ptr %t57, i32 0, i32 1 + %t59 = load %S.ast.Node, ptr %a51 + store %S.ast.Node %t59, ptr %a60 + call void @finch.copy.S_ast_Node(ptr %a61, ptr %a60) + %t62 = load %S.ast.Node, ptr %a61 + %t63 = load i64, ptr %t58 + %t64 = add i64 %t63, 1 + call void @finch_arr_reserve(ptr %t57, i64 %t64, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) + %t65 = load ptr, ptr %t57 + %t66 = getelementptr inbounds %S.ast.Node, ptr %t65, i64 %t63 + store %S.ast.Node %t62, ptr %t66 + store i64 %t64, ptr %t58 + %t67 = load ptr, ptr %a1 + %t68 = call i1 @finch.parser.accept(ptr %t67, { ptr, i64, i64 } { ptr @.str.774, i64 1, i64 0 }) + %t69 = xor i1 %t68, true + br i1 %t69, label %then1412, label %endif1414 +then1412: + call void @finch.drop.S_ast_Node(ptr %a51) + br label %while.end1411 +endif1414: + call void @finch.drop.S_ast_Node(ptr %a51) + br label %while.cond1409 +while.end1411: + %t70 = load ptr, ptr %a1 + %t71 = call %S.lexer.Token @finch.parser.expect(ptr %t70, { ptr, i64, i64 } { ptr @.str.775, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.776, i64 35, i64 0 }) + store %S.lexer.Token %t71, ptr %a72 + call void @finch.drop.S_lexer_Token(ptr %a72) + %t73 = getelementptr inbounds %S.ast.Node, ptr %a32, i32 0, i32 9 + %t74 = getelementptr inbounds { ptr, i64, i64 }, ptr %t73, i32 0, i32 1 + %t75 = load i64, ptr %t74 + %t76 = icmp eq i64 %t75, 0 + br i1 %t76, label %then1415, label %endif1417 +then1415: + %t77 = load ptr, ptr %a1 + %t78 = load ptr, ptr %a1 + %t79 = call %S.lexer.Token @finch.parser.cur(ptr %t78) + %t80 = getelementptr inbounds %S.ast.Node, ptr %a32, i32 0, i32 1 + %t81 = load { ptr, i64, i64 }, ptr %t80 + store { ptr, i64, i64 } { ptr @.str.777, i64 12, i64 0 }, ptr %a83 + store { ptr, i64, i64 } %t81, ptr %a84 + call void @finch_str_concat(ptr %a82, ptr %a83, ptr %a84) + %t85 = load { ptr, i64, i64 }, ptr %a82 + store { ptr, i64, i64 } %t85, ptr %a87 + store { ptr, i64, i64 } { ptr @.str.778, i64 27, i64 0 }, ptr %a88 + call void @finch_str_concat(ptr %a86, ptr %a87, ptr %a88) + store { ptr, i64, i64 } %t85, ptr %a89 + call void @finch_str_drop(ptr %a89) + %t90 = load { ptr, i64, i64 }, ptr %a86 + %t91 = getelementptr inbounds %S.ast.Node, ptr %a32, i32 0, i32 1 + %t92 = load { ptr, i64, i64 }, ptr %t91 + store { ptr, i64, i64 } %t90, ptr %a94 + store { ptr, i64, i64 } %t92, ptr %a95 + call void @finch_str_concat(ptr %a93, ptr %a94, ptr %a95) + store { ptr, i64, i64 } %t90, ptr %a96 + call void @finch_str_drop(ptr %a96) + %t97 = load { ptr, i64, i64 }, ptr %a93 + store { ptr, i64, i64 } %t97, ptr %a99 + store { ptr, i64, i64 } { ptr @.str.779, i64 20, i64 0 }, ptr %a100 + call void @finch_str_concat(ptr %a98, ptr %a99, ptr %a100) + store { ptr, i64, i64 } %t97, ptr %a101 + call void @finch_str_drop(ptr %a101) + %t102 = load { ptr, i64, i64 }, ptr %a98 + call void @finch.parser.fail(ptr %t77, %S.lexer.Token %t79, { ptr, i64, i64 } %t102) + store %S.lexer.Token %t79, ptr %a103 + call void @finch.drop.S_lexer_Token(ptr %a103) + store { ptr, i64, i64 } %t102, ptr %a104 + call void @finch_str_drop(ptr %a104) + br label %endif1417 +endif1417: br label %endif1408 endif1408: - %t50 = load { ptr, i64, i64 }, ptr %a45 - %t51 = load ptr, ptr %a1 - %t52 = call %S.lexer.Token @finch.parser.expect(ptr %t51, { ptr, i64, i64 } { ptr @.str.775, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.776, i64 30, i64 0 }) - %t53 = extractvalue %S.lexer.Token %t52, 1 - store { ptr, i64, i64 } %t53, ptr %a54 - call void @finch_str_copy(ptr %a55, ptr %a54) - %t56 = load { ptr, i64, i64 }, ptr %a55 - store %S.lexer.Token %t52, ptr %a57 - call void @finch.drop.S_lexer_Token(ptr %a57) - store { ptr, i64, i64 } %t50, ptr %a59 - store { ptr, i64, i64 } %t56, ptr %a60 - call void @finch_str_concat(ptr %a58, ptr %a59, ptr %a60) - store { ptr, i64, i64 } %t56, ptr %a61 - call void @finch_str_drop(ptr %a61) - %t62 = load { ptr, i64, i64 }, ptr %a58 - %t63 = getelementptr inbounds %S.ast.Node, ptr %a32, i32 0, i32 4 - %t64 = load { ptr, i64, i64 }, ptr %t63 - store { ptr, i64, i64 } %t62, ptr %t63 - store { ptr, i64, i64 } %t64, ptr %a65 - call void @finch_str_drop(ptr %a65) - call void @finch_str_drop(ptr %a45) - br label %endif1405 -endif1405: - %t66 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 9 - %t67 = getelementptr inbounds { ptr, i64, i64 }, ptr %t66, i32 0, i32 1 - %t68 = load %S.ast.Node, ptr %a32 - store %S.ast.Node %t68, ptr %a69 - call void @finch.copy.S_ast_Node(ptr %a70, ptr %a69) - %t71 = load %S.ast.Node, ptr %a70 - %t72 = load i64, ptr %t67 - %t73 = add i64 %t72, 1 - call void @finch_arr_reserve(ptr %t66, i64 %t73, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) - %t74 = load ptr, ptr %t66 - %t75 = getelementptr inbounds %S.ast.Node, ptr %t74, i64 %t72 - store %S.ast.Node %t71, ptr %t75 - store i64 %t73, ptr %t67 - %t76 = load ptr, ptr %a1 - %t77 = call i1 @finch.parser.accept(ptr %t76, { ptr, i64, i64 } { ptr @.str.777, i64 1, i64 0 }) - %t78 = xor i1 %t77, true - br i1 %t78, label %then1409, label %endif1411 -then1409: - %t79 = load ptr, ptr %a1 - call void @finch.parser.endOfStatement(ptr %t79) - br label %endif1411 -endif1411: + %t105 = load ptr, ptr %a1 + %t106 = call i1 @finch.parser.accept(ptr %t105, { ptr, i64, i64 } { ptr @.str.780, i64 1, i64 0 }) + br i1 %t106, label %then1418, label %endif1420 +then1418: + %t107 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 6 + %t108 = load i1, ptr %t107 + br i1 %t108, label %then1421, label %endif1423 +then1421: + %t109 = load ptr, ptr %a1 + %t110 = load ptr, ptr %a1 + %t111 = call %S.lexer.Token @finch.parser.cur(ptr %t110) + call void @finch.parser.fail(ptr %t109, %S.lexer.Token %t111, { ptr, i64, i64 } { ptr @.str.781, i64 52, i64 0 }) + store %S.lexer.Token %t111, ptr %a112 + call void @finch.drop.S_lexer_Token(ptr %a112) + br label %endif1423 +endif1423: + store { ptr, i64, i64 } { ptr @.str.782, i64 0, i64 0 }, ptr %a113 + %t114 = load ptr, ptr %a1 + %t115 = call i1 @finch.parser.accept(ptr %t114, { ptr, i64, i64 } { ptr @.str.783, i64 1, i64 0 }) + br i1 %t115, label %then1424, label %endif1426 +then1424: + %t116 = load { ptr, i64, i64 }, ptr %a113 + store { ptr, i64, i64 } { ptr @.str.784, i64 1, i64 0 }, ptr %a113 + store { ptr, i64, i64 } %t116, ptr %a117 + call void @finch_str_drop(ptr %a117) + br label %endif1426 +endif1426: + %t118 = load { ptr, i64, i64 }, ptr %a113 + %t119 = load ptr, ptr %a1 + %t120 = call %S.lexer.Token @finch.parser.expect(ptr %t119, { ptr, i64, i64 } { ptr @.str.785, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.786, i64 30, i64 0 }) + %t121 = extractvalue %S.lexer.Token %t120, 1 + store { ptr, i64, i64 } %t121, ptr %a122 + call void @finch_str_copy(ptr %a123, ptr %a122) + %t124 = load { ptr, i64, i64 }, ptr %a123 + store %S.lexer.Token %t120, ptr %a125 + call void @finch.drop.S_lexer_Token(ptr %a125) + store { ptr, i64, i64 } %t118, ptr %a127 + store { ptr, i64, i64 } %t124, ptr %a128 + call void @finch_str_concat(ptr %a126, ptr %a127, ptr %a128) + store { ptr, i64, i64 } %t124, ptr %a129 + call void @finch_str_drop(ptr %a129) + %t130 = load { ptr, i64, i64 }, ptr %a126 + %t131 = getelementptr inbounds %S.ast.Node, ptr %a32, i32 0, i32 4 + %t132 = load { ptr, i64, i64 }, ptr %t131 + store { ptr, i64, i64 } %t130, ptr %t131 + store { ptr, i64, i64 } %t132, ptr %a133 + call void @finch_str_drop(ptr %a133) + call void @finch_str_drop(ptr %a113) + br label %endif1420 +endif1420: + %t134 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 9 + %t135 = getelementptr inbounds { ptr, i64, i64 }, ptr %t134, i32 0, i32 1 + %t136 = load %S.ast.Node, ptr %a32 + store %S.ast.Node %t136, ptr %a137 + call void @finch.copy.S_ast_Node(ptr %a138, ptr %a137) + %t139 = load %S.ast.Node, ptr %a138 + %t140 = load i64, ptr %t135 + %t141 = add i64 %t140, 1 + call void @finch_arr_reserve(ptr %t134, i64 %t141, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) + %t142 = load ptr, ptr %t134 + %t143 = getelementptr inbounds %S.ast.Node, ptr %t142, i64 %t140 + store %S.ast.Node %t139, ptr %t143 + store i64 %t141, ptr %t135 + %t144 = load ptr, ptr %a1 + %t145 = call i1 @finch.parser.accept(ptr %t144, { ptr, i64, i64 } { ptr @.str.787, i64 1, i64 0 }) + %t146 = xor i1 %t145, true + br i1 %t146, label %then1427, label %endif1429 +then1427: + %t147 = load ptr, ptr %a1 + call void @finch.parser.endOfStatement(ptr %t147) + br label %endif1429 +endif1429: call void @finch.drop.S_ast_Node(ptr %a32) - br label %while.cond1397 -while.end1399: - %t80 = load ptr, ptr %a1 - %t81 = call %S.lexer.Token @finch.parser.next(ptr %t80) - store %S.lexer.Token %t81, ptr %a82 - call void @finch.drop.S_lexer_Token(ptr %a82) - %t83 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 9 - %t84 = getelementptr inbounds { ptr, i64, i64 }, ptr %t83, i32 0, i32 1 + br label %while.cond1400 +while.end1402: + %t148 = load ptr, ptr %a1 + %t149 = call %S.lexer.Token @finch.parser.next(ptr %t148) + store %S.lexer.Token %t149, ptr %a150 + call void @finch.drop.S_lexer_Token(ptr %a150) + %t151 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 9 + %t152 = getelementptr inbounds { ptr, i64, i64 }, ptr %t151, i32 0, i32 1 + %t153 = load i64, ptr %t152 + %t154 = icmp eq i64 %t153, 0 + br i1 %t154, label %then1430, label %endif1432 +then1430: + %t155 = load ptr, ptr %a1 + %t156 = load ptr, ptr %a1 + %t157 = call %S.lexer.Token @finch.parser.cur(ptr %t156) + %t158 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 1 + %t159 = load { ptr, i64, i64 }, ptr %t158 + store { ptr, i64, i64 } { ptr @.str.788, i64 9, i64 0 }, ptr %a161 + store { ptr, i64, i64 } %t159, ptr %a162 + call void @finch_str_concat(ptr %a160, ptr %a161, ptr %a162) + %t163 = load { ptr, i64, i64 }, ptr %a160 + store { ptr, i64, i64 } %t163, ptr %a165 + store { ptr, i64, i64 } { ptr @.str.789, i64 16, i64 0 }, ptr %a166 + call void @finch_str_concat(ptr %a164, ptr %a165, ptr %a166) + store { ptr, i64, i64 } %t163, ptr %a167 + call void @finch_str_drop(ptr %a167) + %t168 = load { ptr, i64, i64 }, ptr %a164 + call void @finch.parser.fail(ptr %t155, %S.lexer.Token %t157, { ptr, i64, i64 } %t168) + store %S.lexer.Token %t157, ptr %a169 + call void @finch.drop.S_lexer_Token(ptr %a169) + store { ptr, i64, i64 } %t168, ptr %a170 + call void @finch_str_drop(ptr %a170) + br label %endif1432 +endif1432: + %t171 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 6 + %t172 = load i1, ptr %t171 + br i1 %t172, label %then1433, label %endif1435 +then1433: + %t173 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 9 + store i64 0, ptr %a174 + br label %each.cond1436 +each.cond1436: + %t175 = getelementptr inbounds { ptr, i64, i64 }, ptr %t173, i32 0, i32 1 + %t176 = load i64, ptr %t175 + %t177 = load i64, ptr %a174 + %t178 = icmp slt i64 %t177, %t176 + br i1 %t178, label %each.body1437, label %each.end1439 +each.body1437: + %t179 = load ptr, ptr %t173 + %t180 = getelementptr inbounds %S.ast.Node, ptr %t179, i64 %t177 + %t181 = load %S.ast.Node, ptr %t180 + store %S.ast.Node %t181, ptr %a182 + %t183 = getelementptr inbounds %S.ast.Node, ptr %a182, i32 0, i32 4 + %t184 = getelementptr inbounds { ptr, i64, i64 }, ptr %t183, i32 0, i32 1 + %t185 = load i64, ptr %t184 + %t186 = icmp sgt i64 %t185, 0 + br i1 %t186, label %then1440, label %endif1442 +then1440: + %t187 = load ptr, ptr %a1 + %t188 = load ptr, ptr %a1 + %t189 = call %S.lexer.Token @finch.parser.cur(ptr %t188) + %t190 = getelementptr inbounds %S.ast.Node, ptr %a182, i32 0, i32 1 + %t191 = load { ptr, i64, i64 }, ptr %t190 + store { ptr, i64, i64 } { ptr @.str.790, i64 54, i64 0 }, ptr %a193 + store { ptr, i64, i64 } %t191, ptr %a194 + call void @finch_str_concat(ptr %a192, ptr %a193, ptr %a194) + %t195 = load { ptr, i64, i64 }, ptr %a192 + store { ptr, i64, i64 } %t195, ptr %a197 + store { ptr, i64, i64 } { ptr @.str.791, i64 3, i64 0 }, ptr %a198 + call void @finch_str_concat(ptr %a196, ptr %a197, ptr %a198) + store { ptr, i64, i64 } %t195, ptr %a199 + call void @finch_str_drop(ptr %a199) + %t200 = load { ptr, i64, i64 }, ptr %a196 + %t201 = getelementptr inbounds %S.ast.Node, ptr %a182, i32 0, i32 4 + %t202 = load { ptr, i64, i64 }, ptr %t201 + store { ptr, i64, i64 } %t200, ptr %a204 + store { ptr, i64, i64 } %t202, ptr %a205 + call void @finch_str_concat(ptr %a203, ptr %a204, ptr %a205) + store { ptr, i64, i64 } %t200, ptr %a206 + call void @finch_str_drop(ptr %a206) + %t207 = load { ptr, i64, i64 }, ptr %a203 + store { ptr, i64, i64 } %t207, ptr %a209 + store { ptr, i64, i64 } { ptr @.str.792, i64 1, i64 0 }, ptr %a210 + call void @finch_str_concat(ptr %a208, ptr %a209, ptr %a210) + store { ptr, i64, i64 } %t207, ptr %a211 + call void @finch_str_drop(ptr %a211) + %t212 = load { ptr, i64, i64 }, ptr %a208 + call void @finch.parser.fail(ptr %t187, %S.lexer.Token %t189, { ptr, i64, i64 } %t212) + store %S.lexer.Token %t189, ptr %a213 + call void @finch.drop.S_lexer_Token(ptr %a213) + store { ptr, i64, i64 } %t212, ptr %a214 + call void @finch_str_drop(ptr %a214) + br label %endif1442 +endif1442: + br label %each.step1438 +each.step1438: + %t215 = load i64, ptr %a174 + %t216 = add i64 %t215, 1 + store i64 %t216, ptr %a174 + br label %each.cond1436 +each.end1439: + br label %endif1435 +endif1435: + %t217 = load %S.ast.Node, ptr %a4 + ret %S.ast.Node %t217 +} + +define internal %S.ast.Node @finch.parser.sumStruct(%S.ast.Node %p0) { +entry: + %a1 = alloca %S.ast.Node, align 16 + %a5 = alloca { ptr, i64, i64 }, align 16 + %a6 = alloca { ptr, i64, i64 }, align 16 + %a18 = alloca %S.ast.Node, align 16 + %a30 = alloca %S.ast.Node, align 16 + %a34 = alloca %S.ast.Type, align 16 + %a38 = alloca %S.ast.Node, align 16 + %a39 = alloca %S.ast.Node, align 16 + %a46 = alloca i64, align 16 + %a54 = alloca %S.ast.Node, align 16 + %a58 = alloca i64, align 16 + %a64 = alloca { ptr, i64, i64 }, align 16 + %a65 = alloca { ptr, i64, i64 }, align 16 + %a66 = alloca { ptr, i64, i64 }, align 16 + %a69 = alloca { ptr, i64, i64 }, align 16 + %a71 = alloca { ptr, i64, i64 }, align 16 + %a72 = alloca { ptr, i64, i64 }, align 16 + %a73 = alloca { ptr, i64, i64 }, align 16 + %a74 = alloca { ptr, i64, i64 }, align 16 + %a75 = alloca { ptr, i64, i64 }, align 16 + %a87 = alloca %S.ast.Node, align 16 + %a98 = alloca %S.ast.Type, align 16 + %a99 = alloca %S.ast.Type, align 16 + %a102 = alloca %S.ast.Type, align 16 + %a106 = alloca %S.ast.Node, align 16 + %a107 = alloca %S.ast.Node, align 16 + store %S.ast.Node %p0, ptr %a1 + %t2 = insertvalue %S.ast.Node zeroinitializer, { ptr, i64, i64 } { ptr @.str.793, i64 6, i64 0 }, 0 + %t3 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 1 + %t4 = load { ptr, i64, i64 }, ptr %t3 + store { ptr, i64, i64 } %t4, ptr %a5 + call void @finch_str_copy(ptr %a6, ptr %a5) + %t7 = load { ptr, i64, i64 }, ptr %a6 + %t8 = insertvalue %S.ast.Node %t2, { ptr, i64, i64 } %t7, 1 + %t9 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 11 + %t10 = load i64, ptr %t9 + %t11 = insertvalue %S.ast.Node %t8, i64 %t10, 11 + %t12 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 12 + %t13 = load i64, ptr %t12 + %t14 = insertvalue %S.ast.Node %t11, i64 %t13, 12 + %t15 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 13 + %t16 = load i64, ptr %t15 + %t17 = insertvalue %S.ast.Node %t14, i64 %t16, 13 + store %S.ast.Node %t17, ptr %a18 + %t19 = insertvalue %S.ast.Node zeroinitializer, { ptr, i64, i64 } { ptr @.str.794, i64 5, i64 0 }, 0 + %t20 = insertvalue %S.ast.Node %t19, { ptr, i64, i64 } { ptr @.str.795, i64 3, i64 0 }, 1 + %t21 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 11 + %t22 = load i64, ptr %t21 + %t23 = insertvalue %S.ast.Node %t20, i64 %t22, 11 + %t24 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 12 + %t25 = load i64, ptr %t24 + %t26 = insertvalue %S.ast.Node %t23, i64 %t25, 12 + %t27 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 13 + %t28 = load i64, ptr %t27 + %t29 = insertvalue %S.ast.Node %t26, i64 %t28, 13 + store %S.ast.Node %t29, ptr %a30 + %t31 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.796, i64 3, i64 0 }) + %t32 = getelementptr inbounds %S.ast.Node, ptr %a30, i32 0, i32 5 + %t33 = load %S.ast.Type, ptr %t32 + store %S.ast.Type %t31, ptr %t32 + store %S.ast.Type %t33, ptr %a34 + call void @finch.drop.S_ast_Type(ptr %a34) + %t35 = getelementptr inbounds %S.ast.Node, ptr %a18, i32 0, i32 9 + %t36 = getelementptr inbounds { ptr, i64, i64 }, ptr %t35, i32 0, i32 1 + %t37 = load %S.ast.Node, ptr %a30 + store %S.ast.Node %t37, ptr %a38 + call void @finch.copy.S_ast_Node(ptr %a39, ptr %a38) + %t40 = load %S.ast.Node, ptr %a39 + %t41 = load i64, ptr %t36 + %t42 = add i64 %t41, 1 + call void @finch_arr_reserve(ptr %t35, i64 %t42, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) + %t43 = load ptr, ptr %t35 + %t44 = getelementptr inbounds %S.ast.Node, ptr %t43, i64 %t41 + store %S.ast.Node %t40, ptr %t44 + store i64 %t42, ptr %t36 + %t45 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 9 + store i64 0, ptr %a46 + br label %each.cond1443 +each.cond1443: + %t47 = getelementptr inbounds { ptr, i64, i64 }, ptr %t45, i32 0, i32 1 + %t48 = load i64, ptr %t47 + %t49 = load i64, ptr %a46 + %t50 = icmp slt i64 %t49, %t48 + br i1 %t50, label %each.body1444, label %each.end1446 +each.body1444: + %t51 = load ptr, ptr %t45 + %t52 = getelementptr inbounds %S.ast.Node, ptr %t51, i64 %t49 + %t53 = load %S.ast.Node, ptr %t52 + store %S.ast.Node %t53, ptr %a54 + %t55 = getelementptr inbounds %S.ast.Node, ptr %a54, i32 0, i32 9 + %t56 = getelementptr inbounds { ptr, i64, i64 }, ptr %t55, i32 0, i32 1 + %t57 = load i64, ptr %t56 + store i64 0, ptr %a58 + br label %for.cond1447 +for.cond1447: + %t59 = load i64, ptr %a58 + %t60 = icmp slt i64 %t59, %t57 + br i1 %t60, label %for.body1448, label %for.end1450 +for.body1448: + %t61 = insertvalue %S.ast.Node zeroinitializer, { ptr, i64, i64 } { ptr @.str.797, i64 5, i64 0 }, 0 + %t62 = getelementptr inbounds %S.ast.Node, ptr %a54, i32 0, i32 1 + %t63 = load { ptr, i64, i64 }, ptr %t62 + store { ptr, i64, i64 } %t63, ptr %a65 + store { ptr, i64, i64 } { ptr @.str.798, i64 1, i64 0 }, ptr %a66 + call void @finch_str_concat(ptr %a64, ptr %a65, ptr %a66) + %t67 = load { ptr, i64, i64 }, ptr %a64 + %t68 = load i64, ptr %a58 + call void @finch_str_from_int(ptr %a69, i64 %t68) + %t70 = load { ptr, i64, i64 }, ptr %a69 + store { ptr, i64, i64 } %t67, ptr %a72 + store { ptr, i64, i64 } %t70, ptr %a73 + call void @finch_str_concat(ptr %a71, ptr %a72, ptr %a73) + store { ptr, i64, i64 } %t67, ptr %a74 + call void @finch_str_drop(ptr %a74) + store { ptr, i64, i64 } %t70, ptr %a75 + call void @finch_str_drop(ptr %a75) + %t76 = load { ptr, i64, i64 }, ptr %a71 + %t77 = insertvalue %S.ast.Node %t61, { ptr, i64, i64 } %t76, 1 + %t78 = getelementptr inbounds %S.ast.Node, ptr %a54, i32 0, i32 11 + %t79 = load i64, ptr %t78 + %t80 = insertvalue %S.ast.Node %t77, i64 %t79, 11 + %t81 = getelementptr inbounds %S.ast.Node, ptr %a54, i32 0, i32 12 + %t82 = load i64, ptr %t81 + %t83 = insertvalue %S.ast.Node %t80, i64 %t82, 12 + %t84 = getelementptr inbounds %S.ast.Node, ptr %a54, i32 0, i32 13 %t85 = load i64, ptr %t84 - %t86 = icmp eq i64 %t85, 0 - br i1 %t86, label %then1412, label %endif1414 -then1412: - %t87 = load ptr, ptr %a1 - %t88 = load ptr, ptr %a1 - %t89 = call %S.lexer.Token @finch.parser.cur(ptr %t88) - %t90 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 1 - %t91 = load { ptr, i64, i64 }, ptr %t90 - store { ptr, i64, i64 } { ptr @.str.778, i64 9, i64 0 }, ptr %a93 - store { ptr, i64, i64 } %t91, ptr %a94 - call void @finch_str_concat(ptr %a92, ptr %a93, ptr %a94) - %t95 = load { ptr, i64, i64 }, ptr %a92 - store { ptr, i64, i64 } %t95, ptr %a97 - store { ptr, i64, i64 } { ptr @.str.779, i64 16, i64 0 }, ptr %a98 - call void @finch_str_concat(ptr %a96, ptr %a97, ptr %a98) - store { ptr, i64, i64 } %t95, ptr %a99 - call void @finch_str_drop(ptr %a99) - %t100 = load { ptr, i64, i64 }, ptr %a96 - call void @finch.parser.fail(ptr %t87, %S.lexer.Token %t89, { ptr, i64, i64 } %t100) - store %S.lexer.Token %t89, ptr %a101 - call void @finch.drop.S_lexer_Token(ptr %a101) - store { ptr, i64, i64 } %t100, ptr %a102 - call void @finch_str_drop(ptr %a102) - br label %endif1414 -endif1414: - %t103 = load %S.ast.Node, ptr %a4 - ret %S.ast.Node %t103 + %t86 = insertvalue %S.ast.Node %t83, i64 %t85, 13 + store %S.ast.Node %t86, ptr %a87 + %t88 = getelementptr inbounds %S.ast.Node, ptr %a54, i32 0, i32 9 + %t89 = load i64, ptr %a58 + %t90 = load { ptr, i64, i64 }, ptr %t88 + %t91 = extractvalue { ptr, i64, i64 } %t90, 1 + %t92 = icmp uge i64 %t89, %t91 + br i1 %t92, label %range1451, label %inrange1452 +range1451: + call void @finch_panic_index(ptr @.str.799, i64 333, i64 %t89, i64 %t91) + unreachable +inrange1452: + %t93 = extractvalue { ptr, i64, i64 } %t90, 0 + %t94 = getelementptr inbounds %S.ast.Node, ptr %t93, i64 %t89 + %t95 = getelementptr inbounds %S.ast.Node, ptr %t94, i32 0, i32 5 + %t96 = load %S.ast.Type, ptr %t95 + %t97 = getelementptr inbounds %S.ast.Node, ptr %a87, i32 0, i32 5 + store %S.ast.Type %t96, ptr %a98 + call void @finch.copy.S_ast_Type(ptr %a99, ptr %a98) + %t100 = load %S.ast.Type, ptr %a99 + %t101 = load %S.ast.Type, ptr %t97 + store %S.ast.Type %t100, ptr %t97 + store %S.ast.Type %t101, ptr %a102 + call void @finch.drop.S_ast_Type(ptr %a102) + %t103 = getelementptr inbounds %S.ast.Node, ptr %a18, i32 0, i32 9 + %t104 = getelementptr inbounds { ptr, i64, i64 }, ptr %t103, i32 0, i32 1 + %t105 = load %S.ast.Node, ptr %a87 + store %S.ast.Node %t105, ptr %a106 + call void @finch.copy.S_ast_Node(ptr %a107, ptr %a106) + %t108 = load %S.ast.Node, ptr %a107 + %t109 = load i64, ptr %t104 + %t110 = add i64 %t109, 1 + call void @finch_arr_reserve(ptr %t103, i64 %t110, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) + %t111 = load ptr, ptr %t103 + %t112 = getelementptr inbounds %S.ast.Node, ptr %t111, i64 %t109 + store %S.ast.Node %t108, ptr %t112 + store i64 %t110, ptr %t104 + call void @finch.drop.S_ast_Node(ptr %a87) + br label %for.step1449 +for.step1449: + %t113 = load i64, ptr %a58 + %t114 = add i64 %t113, 1 + store i64 %t114, ptr %a58 + br label %for.cond1447 +for.end1450: + br label %each.step1445 +each.step1445: + %t115 = load i64, ptr %a46 + %t116 = add i64 %t115, 1 + store i64 %t116, ptr %a46 + br label %each.cond1443 +each.end1446: + %t117 = load %S.ast.Node, ptr %a18 + call void @finch.drop.S_ast_Node(ptr %a30) + ret %S.ast.Node %t117 } define internal %S.ast.Node @finch.parser.parseMatch(ptr %p0, i1 %p1) { @@ -17630,13 +18269,13 @@ entry: store ptr %p0, ptr %a1 store i1 %p1, ptr %a2 %t3 = load ptr, ptr %a1 - %t4 = call %S.ast.Node @finch.parser.node(ptr %t3, { ptr, i64, i64 } { ptr @.str.780, i64 5, i64 0 }) + %t4 = call %S.ast.Node @finch.parser.node(ptr %t3, { ptr, i64, i64 } { ptr @.str.800, i64 5, i64 0 }) store %S.ast.Node %t4, ptr %a5 %t6 = load i1, ptr %a2 %t7 = getelementptr inbounds %S.ast.Node, ptr %a5, i32 0, i32 6 store i1 %t6, ptr %t7 %t8 = load ptr, ptr %a1 - %t9 = call %S.lexer.Token @finch.parser.expect(ptr %t8, { ptr, i64, i64 } { ptr @.str.781, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.782, i64 7, i64 0 }) + %t9 = call %S.lexer.Token @finch.parser.expect(ptr %t8, { ptr, i64, i64 } { ptr @.str.801, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.802, i64 7, i64 0 }) store %S.lexer.Token %t9, ptr %a10 call void @finch.drop.S_lexer_Token(ptr %a10) %t11 = getelementptr inbounds %S.ast.Node, ptr %a5, i32 0, i32 9 @@ -17651,65 +18290,65 @@ entry: store %S.ast.Node %t14, ptr %t18 store i64 %t16, ptr %t12 %t19 = load ptr, ptr %a1 - %t20 = call %S.lexer.Token @finch.parser.expect(ptr %t19, { ptr, i64, i64 } { ptr @.str.783, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.784, i64 3, i64 0 }) + %t20 = call %S.lexer.Token @finch.parser.expect(ptr %t19, { ptr, i64, i64 } { ptr @.str.803, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.804, i64 3, i64 0 }) store %S.lexer.Token %t20, ptr %a21 call void @finch.drop.S_lexer_Token(ptr %a21) %t22 = load ptr, ptr %a1 %t23 = icmp eq ptr %t22, null - br i1 %t23, label %panic1415, label %ok1416 -panic1415: - call void @finch_panic(ptr @.str.785, i64 300, ptr @.str.786) + br i1 %t23, label %panic1453, label %ok1454 +panic1453: + call void @finch_panic(ptr @.str.805, i64 348, ptr @.str.806) unreachable -ok1416: +ok1454: %t24 = getelementptr inbounds %S.parser.Parser, ptr %t22, i32 0, i32 2 %t25 = load i64, ptr %t24 store i64 %t25, ptr %a26 %t27 = load ptr, ptr %a1 %t28 = icmp eq ptr %t27, null - br i1 %t28, label %panic1417, label %ok1418 -panic1417: - call void @finch_panic(ptr @.str.787, i64 301, ptr @.str.788) + br i1 %t28, label %panic1455, label %ok1456 +panic1455: + call void @finch_panic(ptr @.str.807, i64 349, ptr @.str.808) unreachable -ok1418: +ok1456: %t29 = getelementptr inbounds %S.parser.Parser, ptr %t27, i32 0, i32 2 store i64 0, ptr %t29 - br label %while.cond1419 -while.cond1419: + br label %while.cond1457 +while.cond1457: %t30 = load ptr, ptr %a1 - %t31 = call i1 @finch.parser.at(ptr %t30, { ptr, i64, i64 } { ptr @.str.789, i64 1, i64 0 }) + %t31 = call i1 @finch.parser.at(ptr %t30, { ptr, i64, i64 } { ptr @.str.809, i64 1, i64 0 }) %t32 = xor i1 %t31, true - br i1 %t32, label %while.body1420, label %while.end1421 -while.body1420: + br i1 %t32, label %while.body1458, label %while.end1459 +while.body1458: %t33 = load ptr, ptr %a1 - %t34 = call i1 @finch.parser.at(ptr %t33, { ptr, i64, i64 } { ptr @.str.790, i64 3, i64 0 }) - br i1 %t34, label %then1422, label %endif1424 -then1422: + %t34 = call i1 @finch.parser.at(ptr %t33, { ptr, i64, i64 } { ptr @.str.810, i64 3, i64 0 }) + br i1 %t34, label %then1460, label %endif1462 +then1460: %t35 = load ptr, ptr %a1 %t36 = load ptr, ptr %a1 %t37 = call %S.lexer.Token @finch.parser.cur(ptr %t36) - call void @finch.parser.fail(ptr %t35, %S.lexer.Token %t37, { ptr, i64, i64 } { ptr @.str.791, i64 37, i64 0 }) + call void @finch.parser.fail(ptr %t35, %S.lexer.Token %t37, { ptr, i64, i64 } { ptr @.str.811, i64 37, i64 0 }) store %S.lexer.Token %t37, ptr %a38 call void @finch.drop.S_lexer_Token(ptr %a38) - br label %endif1424 -endif1424: + br label %endif1462 +endif1462: %t39 = load ptr, ptr %a1 - %t40 = call %S.ast.Node @finch.parser.node(ptr %t39, { ptr, i64, i64 } { ptr @.str.792, i64 3, i64 0 }) + %t40 = call %S.ast.Node @finch.parser.node(ptr %t39, { ptr, i64, i64 } { ptr @.str.812, i64 3, i64 0 }) store %S.ast.Node %t40, ptr %a41 %t42 = load ptr, ptr %a1 - %t43 = call %S.ast.Node @finch.parser.node(ptr %t42, { ptr, i64, i64 } { ptr @.str.793, i64 8, i64 0 }) + %t43 = call %S.ast.Node @finch.parser.node(ptr %t42, { ptr, i64, i64 } { ptr @.str.813, i64 8, i64 0 }) store %S.ast.Node %t43, ptr %a44 %t45 = load ptr, ptr %a1 - %t46 = call i1 @finch.parser.accept(ptr %t45, { ptr, i64, i64 } { ptr @.str.794, i64 4, i64 0 }) - br i1 %t46, label %then1425, label %else1426 -then1425: + %t46 = call i1 @finch.parser.accept(ptr %t45, { ptr, i64, i64 } { ptr @.str.814, i64 4, i64 0 }) + br i1 %t46, label %then1463, label %else1464 +then1463: %t47 = getelementptr inbounds %S.ast.Node, ptr %a41, i32 0, i32 6 store i1 true, ptr %t47 - br label %endif1427 -else1426: - br label %while.cond1428 -while.cond1428: - br label %while.body1429 -while.body1429: + br label %endif1465 +else1464: + br label %while.cond1466 +while.cond1466: + br label %while.body1467 +while.body1467: %t48 = getelementptr inbounds %S.ast.Node, ptr %a44, i32 0, i32 9 %t49 = getelementptr inbounds { ptr, i64, i64 }, ptr %t48, i32 0, i32 1 %t50 = load ptr, ptr %a1 @@ -17722,16 +18361,16 @@ while.body1429: store %S.ast.Node %t51, ptr %t55 store i64 %t53, ptr %t49 %t56 = load ptr, ptr %a1 - %t57 = call i1 @finch.parser.accept(ptr %t56, { ptr, i64, i64 } { ptr @.str.795, i64 1, i64 0 }) + %t57 = call i1 @finch.parser.accept(ptr %t56, { ptr, i64, i64 } { ptr @.str.815, i64 1, i64 0 }) %t58 = xor i1 %t57, true - br i1 %t58, label %then1431, label %endif1433 -then1431: - br label %while.end1430 -endif1433: - br label %while.cond1428 -while.end1430: - br label %endif1427 -endif1427: + br i1 %t58, label %then1469, label %endif1471 +then1469: + br label %while.end1468 +endif1471: + br label %while.cond1466 +while.end1468: + br label %endif1465 +endif1465: %t59 = getelementptr inbounds %S.ast.Node, ptr %a41, i32 0, i32 9 %t60 = getelementptr inbounds { ptr, i64, i64 }, ptr %t59, i32 0, i32 1 %t61 = load %S.ast.Node, ptr %a44 @@ -17746,24 +18385,24 @@ endif1427: store %S.ast.Node %t64, ptr %t68 store i64 %t66, ptr %t60 %t69 = load ptr, ptr %a1 - %t70 = call %S.lexer.Token @finch.parser.expect(ptr %t69, { ptr, i64, i64 } { ptr @.str.796, i64 2, i64 0 }, { ptr, i64, i64 } { ptr @.str.797, i64 57, i64 0 }) + %t70 = call %S.lexer.Token @finch.parser.expect(ptr %t69, { ptr, i64, i64 } { ptr @.str.816, i64 2, i64 0 }, { ptr, i64, i64 } { ptr @.str.817, i64 57, i64 0 }) store %S.lexer.Token %t70, ptr %a71 call void @finch.drop.S_lexer_Token(ptr %a71) %t72 = load ptr, ptr %a1 - %t73 = call i1 @finch.parser.at(ptr %t72, { ptr, i64, i64 } { ptr @.str.798, i64 1, i64 0 }) - br label %logic.from1434 -logic.from1434: - br i1 %t73, label %logic.rhs1435, label %logic.end1436 -logic.rhs1435: + %t73 = call i1 @finch.parser.at(ptr %t72, { ptr, i64, i64 } { ptr @.str.818, i64 1, i64 0 }) + br label %logic.from1472 +logic.from1472: + br i1 %t73, label %logic.rhs1473, label %logic.end1474 +logic.rhs1473: %t74 = load i1, ptr %a2 %t75 = xor i1 %t74, true - br label %logic.rend1437 -logic.rend1437: - br label %logic.end1436 -logic.end1436: - %t76 = phi i1 [ false, %logic.from1434 ], [ %t75, %logic.rend1437 ] - br i1 %t76, label %then1438, label %else1439 -then1438: + br label %logic.rend1475 +logic.rend1475: + br label %logic.end1474 +logic.end1474: + %t76 = phi i1 [ false, %logic.from1472 ], [ %t75, %logic.rend1475 ] + br i1 %t76, label %then1476, label %else1477 +then1476: %t77 = getelementptr inbounds %S.ast.Node, ptr %a41, i32 0, i32 9 %t78 = getelementptr inbounds { ptr, i64, i64 }, ptr %t77, i32 0, i32 1 %t79 = load ptr, ptr %a1 @@ -17775,11 +18414,11 @@ then1438: %t84 = getelementptr inbounds %S.ast.Node, ptr %t83, i64 %t81 store %S.ast.Node %t80, ptr %t84 store i64 %t82, ptr %t78 - br label %endif1440 -else1439: + br label %endif1478 +else1477: %t85 = load i1, ptr %a2 - br i1 %t85, label %then1441, label %else1442 -then1441: + br i1 %t85, label %then1479, label %else1480 +then1479: %t86 = getelementptr inbounds %S.ast.Node, ptr %a41, i32 0, i32 9 %t87 = getelementptr inbounds { ptr, i64, i64 }, ptr %t86, i32 0, i32 1 %t88 = load ptr, ptr %a1 @@ -17791,8 +18430,8 @@ then1441: %t93 = getelementptr inbounds %S.ast.Node, ptr %t92, i64 %t90 store %S.ast.Node %t89, ptr %t93 store i64 %t91, ptr %t87 - br label %endif1443 -else1442: + br label %endif1481 +else1480: %t94 = getelementptr inbounds %S.ast.Node, ptr %a41, i32 0, i32 9 %t95 = getelementptr inbounds { ptr, i64, i64 }, ptr %t94, i32 0, i32 1 %t96 = load ptr, ptr %a1 @@ -17804,10 +18443,10 @@ else1442: %t101 = getelementptr inbounds %S.ast.Node, ptr %t100, i64 %t98 store %S.ast.Node %t97, ptr %t101 store i64 %t99, ptr %t95 - br label %endif1443 -endif1443: - br label %endif1440 -endif1440: + br label %endif1481 +endif1481: + br label %endif1478 +endif1478: %t102 = getelementptr inbounds %S.ast.Node, ptr %a5, i32 0, i32 9 %t103 = getelementptr inbounds { ptr, i64, i64 }, ptr %t102, i32 0, i32 1 %t104 = load %S.ast.Node, ptr %a41 @@ -17822,26 +18461,26 @@ endif1440: store %S.ast.Node %t107, ptr %t111 store i64 %t109, ptr %t103 %t112 = load ptr, ptr %a1 - %t113 = call i1 @finch.parser.accept(ptr %t112, { ptr, i64, i64 } { ptr @.str.799, i64 1, i64 0 }) + %t113 = call i1 @finch.parser.accept(ptr %t112, { ptr, i64, i64 } { ptr @.str.819, i64 1, i64 0 }) %t114 = xor i1 %t113, true - br i1 %t114, label %then1444, label %endif1446 -then1444: + br i1 %t114, label %then1482, label %endif1484 +then1482: %t115 = load ptr, ptr %a1 call void @finch.parser.endOfStatement(ptr %t115) - br label %endif1446 -endif1446: + br label %endif1484 +endif1484: call void @finch.drop.S_ast_Node(ptr %a44) call void @finch.drop.S_ast_Node(ptr %a41) - br label %while.cond1419 -while.end1421: + br label %while.cond1457 +while.end1459: %t116 = load i64, ptr %a26 %t117 = load ptr, ptr %a1 %t118 = icmp eq ptr %t117, null - br i1 %t118, label %panic1447, label %ok1448 -panic1447: - call void @finch_panic(ptr @.str.800, i64 332, ptr @.str.801) + br i1 %t118, label %panic1485, label %ok1486 +panic1485: + call void @finch_panic(ptr @.str.820, i64 380, ptr @.str.821) unreachable -ok1448: +ok1486: %t119 = getelementptr inbounds %S.parser.Parser, ptr %t117, i32 0, i32 2 store i64 %t116, ptr %t119 %t120 = load ptr, ptr %a1 @@ -17852,16 +18491,16 @@ ok1448: %t124 = getelementptr inbounds { ptr, i64, i64 }, ptr %t123, i32 0, i32 1 %t125 = load i64, ptr %t124 %t126 = icmp eq i64 %t125, 1 - br i1 %t126, label %then1449, label %endif1451 -then1449: + br i1 %t126, label %then1487, label %endif1489 +then1487: %t127 = load ptr, ptr %a1 %t128 = load ptr, ptr %a1 %t129 = call %S.lexer.Token @finch.parser.cur(ptr %t128) - call void @finch.parser.fail(ptr %t127, %S.lexer.Token %t129, { ptr, i64, i64 } { ptr @.str.802, i64 30, i64 0 }) + call void @finch.parser.fail(ptr %t127, %S.lexer.Token %t129, { ptr, i64, i64 } { ptr @.str.822, i64 30, i64 0 }) store %S.lexer.Token %t129, ptr %a130 call void @finch.drop.S_lexer_Token(ptr %a130) - br label %endif1451 -endif1451: + br label %endif1489 +endif1489: %t131 = load %S.ast.Node, ptr %a5 ret %S.ast.Node %t131 } @@ -17878,16 +18517,16 @@ entry: store ptr %p0, ptr %a1 store { ptr, i64, i64 } zeroinitializer, ptr %a2 %t3 = load ptr, ptr %a1 - %t4 = call %S.lexer.Token @finch.parser.expect(ptr %t3, { ptr, i64, i64 } { ptr @.str.803, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.804, i64 3, i64 0 }) + %t4 = call %S.lexer.Token @finch.parser.expect(ptr %t3, { ptr, i64, i64 } { ptr @.str.823, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.824, i64 3, i64 0 }) store %S.lexer.Token %t4, ptr %a5 call void @finch.drop.S_lexer_Token(ptr %a5) - br label %while.cond1452 -while.cond1452: - br label %while.body1453 -while.body1453: + br label %while.cond1490 +while.cond1490: + br label %while.body1491 +while.body1491: %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t7 = load ptr, ptr %a1 - %t8 = call %S.lexer.Token @finch.parser.expect(ptr %t7, { ptr, i64, i64 } { ptr @.str.805, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.806, i64 29, i64 0 }) + %t8 = call %S.lexer.Token @finch.parser.expect(ptr %t7, { ptr, i64, i64 } { ptr @.str.825, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.826, i64 29, i64 0 }) %t9 = extractvalue %S.lexer.Token %t8, 1 store { ptr, i64, i64 } %t9, ptr %a10 call void @finch_str_copy(ptr %a11, ptr %a10) @@ -17902,16 +18541,16 @@ while.body1453: store { ptr, i64, i64 } %t12, ptr %t17 store i64 %t15, ptr %t6 %t18 = load ptr, ptr %a1 - %t19 = call i1 @finch.parser.accept(ptr %t18, { ptr, i64, i64 } { ptr @.str.807, i64 1, i64 0 }) + %t19 = call i1 @finch.parser.accept(ptr %t18, { ptr, i64, i64 } { ptr @.str.827, i64 1, i64 0 }) %t20 = xor i1 %t19, true - br i1 %t20, label %then1455, label %endif1457 -then1455: - br label %while.end1454 -endif1457: - br label %while.cond1452 -while.end1454: + br i1 %t20, label %then1493, label %endif1495 +then1493: + br label %while.end1492 +endif1495: + br label %while.cond1490 +while.end1492: %t21 = load ptr, ptr %a1 - %t22 = call %S.lexer.Token @finch.parser.expect(ptr %t21, { ptr, i64, i64 } { ptr @.str.808, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.809, i64 29, i64 0 }) + %t22 = call %S.lexer.Token @finch.parser.expect(ptr %t21, { ptr, i64, i64 } { ptr @.str.828, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.829, i64 29, i64 0 }) store %S.lexer.Token %t22, ptr %a23 call void @finch.drop.S_lexer_Token(ptr %a23) %t24 = load { ptr, i64, i64 }, ptr %a2 @@ -17952,14 +18591,14 @@ entry: %a100 = alloca %S.lexer.Token, align 16 store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 - %t3 = call %S.ast.Node @finch.parser.node(ptr %t2, { ptr, i64, i64 } { ptr @.str.810, i64 6, i64 0 }) + %t3 = call %S.ast.Node @finch.parser.node(ptr %t2, { ptr, i64, i64 } { ptr @.str.830, i64 6, i64 0 }) store %S.ast.Node %t3, ptr %a4 %t5 = load ptr, ptr %a1 - %t6 = call %S.lexer.Token @finch.parser.expect(ptr %t5, { ptr, i64, i64 } { ptr @.str.811, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.812, i64 8, i64 0 }) + %t6 = call %S.lexer.Token @finch.parser.expect(ptr %t5, { ptr, i64, i64 } { ptr @.str.831, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.832, i64 8, i64 0 }) store %S.lexer.Token %t6, ptr %a7 call void @finch.drop.S_lexer_Token(ptr %a7) %t8 = load ptr, ptr %a1 - %t9 = call %S.lexer.Token @finch.parser.expect(ptr %t8, { ptr, i64, i64 } { ptr @.str.813, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.814, i64 13, i64 0 }) + %t9 = call %S.lexer.Token @finch.parser.expect(ptr %t8, { ptr, i64, i64 } { ptr @.str.833, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.834, i64 13, i64 0 }) %t10 = extractvalue %S.lexer.Token %t9, 1 store { ptr, i64, i64 } %t10, ptr %a11 call void @finch_str_copy(ptr %a12, ptr %a11) @@ -17972,9 +18611,9 @@ entry: store { ptr, i64, i64 } %t16, ptr %a17 call void @finch_str_drop(ptr %a17) %t18 = load ptr, ptr %a1 - %t19 = call i1 @finch.parser.at(ptr %t18, { ptr, i64, i64 } { ptr @.str.815, i64 1, i64 0 }) - br i1 %t19, label %then1458, label %endif1460 -then1458: + %t19 = call i1 @finch.parser.at(ptr %t18, { ptr, i64, i64 } { ptr @.str.835, i64 1, i64 0 }) + br i1 %t19, label %then1496, label %endif1498 +then1496: %t20 = load ptr, ptr %a1 %t21 = call { ptr, i64, i64 } @finch.parser.parseTParams(ptr %t20) %t22 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 3 @@ -17982,39 +18621,39 @@ then1458: store { ptr, i64, i64 } %t21, ptr %t22 store { ptr, i64, i64 } %t23, ptr %a24 call void @finch.drop.arr_str(ptr %a24) - br label %endif1460 -endif1460: + br label %endif1498 +endif1498: %t25 = load ptr, ptr %a1 - %t26 = call %S.lexer.Token @finch.parser.expect(ptr %t25, { ptr, i64, i64 } { ptr @.str.816, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.817, i64 3, i64 0 }) + %t26 = call %S.lexer.Token @finch.parser.expect(ptr %t25, { ptr, i64, i64 } { ptr @.str.836, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.837, i64 3, i64 0 }) store %S.lexer.Token %t26, ptr %a27 call void @finch.drop.S_lexer_Token(ptr %a27) - br label %while.cond1461 -while.cond1461: + br label %while.cond1499 +while.cond1499: %t28 = load ptr, ptr %a1 - %t29 = call i1 @finch.parser.at(ptr %t28, { ptr, i64, i64 } { ptr @.str.818, i64 1, i64 0 }) + %t29 = call i1 @finch.parser.at(ptr %t28, { ptr, i64, i64 } { ptr @.str.838, i64 1, i64 0 }) %t30 = xor i1 %t29, true - br i1 %t30, label %while.body1462, label %while.end1463 -while.body1462: + br i1 %t30, label %while.body1500, label %while.end1501 +while.body1500: %t31 = load ptr, ptr %a1 - %t32 = call i1 @finch.parser.at(ptr %t31, { ptr, i64, i64 } { ptr @.str.819, i64 3, i64 0 }) - br i1 %t32, label %then1464, label %endif1466 -then1464: + %t32 = call i1 @finch.parser.at(ptr %t31, { ptr, i64, i64 } { ptr @.str.839, i64 3, i64 0 }) + br i1 %t32, label %then1502, label %endif1504 +then1502: %t33 = load ptr, ptr %a1 %t34 = load ptr, ptr %a1 %t35 = call %S.lexer.Token @finch.parser.cur(ptr %t34) - call void @finch.parser.fail(ptr %t33, %S.lexer.Token %t35, { ptr, i64, i64 } { ptr @.str.820, i64 38, i64 0 }) + call void @finch.parser.fail(ptr %t33, %S.lexer.Token %t35, { ptr, i64, i64 } { ptr @.str.840, i64 38, i64 0 }) store %S.lexer.Token %t35, ptr %a36 call void @finch.drop.S_lexer_Token(ptr %a36) - br label %endif1466 -endif1466: + br label %endif1504 +endif1504: %t37 = load ptr, ptr %a1 - %t38 = call %S.ast.Node @finch.parser.node(ptr %t37, { ptr, i64, i64 } { ptr @.str.821, i64 5, i64 0 }) + %t38 = call %S.ast.Node @finch.parser.node(ptr %t37, { ptr, i64, i64 } { ptr @.str.841, i64 5, i64 0 }) store %S.ast.Node %t38, ptr %a39 %t40 = load ptr, ptr %a1 %t41 = call i1 @finch.parser.atDeclaration(ptr %t40) %t42 = xor i1 %t41, true - br i1 %t42, label %then1467, label %endif1469 -then1467: + br i1 %t42, label %then1505, label %endif1507 +then1505: %t43 = load ptr, ptr %a1 %t44 = load ptr, ptr %a1 %t45 = call %S.lexer.Token @finch.parser.cur(ptr %t44) @@ -18023,14 +18662,14 @@ then1467: %t48 = call { ptr, i64, i64 } @finch.parser.describe(%S.lexer.Token %t47) store %S.lexer.Token %t47, ptr %a49 call void @finch.drop.S_lexer_Token(ptr %a49) - store { ptr, i64, i64 } { ptr @.str.822, i64 11, i64 0 }, ptr %a51 + store { ptr, i64, i64 } { ptr @.str.842, i64 11, i64 0 }, ptr %a51 store { ptr, i64, i64 } %t48, ptr %a52 call void @finch_str_concat(ptr %a50, ptr %a51, ptr %a52) store { ptr, i64, i64 } %t48, ptr %a53 call void @finch_str_drop(ptr %a53) %t54 = load { ptr, i64, i64 }, ptr %a50 store { ptr, i64, i64 } %t54, ptr %a56 - store { ptr, i64, i64 } { ptr @.str.823, i64 28, i64 0 }, ptr %a57 + store { ptr, i64, i64 } { ptr @.str.843, i64 28, i64 0 }, ptr %a57 call void @finch_str_concat(ptr %a55, ptr %a56, ptr %a57) store { ptr, i64, i64 } %t54, ptr %a58 call void @finch_str_drop(ptr %a58) @@ -18040,8 +18679,8 @@ then1467: call void @finch.drop.S_lexer_Token(ptr %a60) store { ptr, i64, i64 } %t59, ptr %a61 call void @finch_str_drop(ptr %a61) - br label %endif1469 -endif1469: + br label %endif1507 +endif1507: %t62 = load ptr, ptr %a1 %t63 = call %S.ast.Type @finch.parser.parseType(ptr %t62) %t64 = getelementptr inbounds %S.ast.Node, ptr %a39, i32 0, i32 5 @@ -18050,7 +18689,7 @@ endif1469: store %S.ast.Type %t65, ptr %a66 call void @finch.drop.S_ast_Type(ptr %a66) %t67 = load ptr, ptr %a1 - %t68 = call %S.lexer.Token @finch.parser.expect(ptr %t67, { ptr, i64, i64 } { ptr @.str.824, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.825, i64 12, i64 0 }) + %t68 = call %S.lexer.Token @finch.parser.expect(ptr %t67, { ptr, i64, i64 } { ptr @.str.844, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.845, i64 12, i64 0 }) %t69 = extractvalue %S.lexer.Token %t68, 1 store { ptr, i64, i64 } %t69, ptr %a70 call void @finch_str_copy(ptr %a71, ptr %a70) @@ -18063,9 +18702,9 @@ endif1469: store { ptr, i64, i64 } %t75, ptr %a76 call void @finch_str_drop(ptr %a76) %t77 = load ptr, ptr %a1 - %t78 = call i1 @finch.parser.accept(ptr %t77, { ptr, i64, i64 } { ptr @.str.826, i64 1, i64 0 }) - br i1 %t78, label %then1470, label %endif1472 -then1470: + %t78 = call i1 @finch.parser.accept(ptr %t77, { ptr, i64, i64 } { ptr @.str.846, i64 1, i64 0 }) + br i1 %t78, label %then1508, label %endif1510 +then1508: %t79 = getelementptr inbounds %S.ast.Node, ptr %a39, i32 0, i32 9 %t80 = getelementptr inbounds { ptr, i64, i64 }, ptr %t79, i32 0, i32 1 %t81 = load ptr, ptr %a1 @@ -18077,8 +18716,8 @@ then1470: %t86 = getelementptr inbounds %S.ast.Node, ptr %t85, i64 %t83 store %S.ast.Node %t82, ptr %t86 store i64 %t84, ptr %t80 - br label %endif1472 -endif1472: + br label %endif1510 +endif1510: %t87 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 9 %t88 = getelementptr inbounds { ptr, i64, i64 }, ptr %t87, i32 0, i32 1 %t89 = load %S.ast.Node, ptr %a39 @@ -18095,8 +18734,8 @@ endif1472: %t97 = load ptr, ptr %a1 call void @finch.parser.endOfStatement(ptr %t97) call void @finch.drop.S_ast_Node(ptr %a39) - br label %while.cond1461 -while.end1463: + br label %while.cond1499 +while.end1501: %t98 = load ptr, ptr %a1 %t99 = call %S.lexer.Token @finch.parser.next(ptr %t98) store %S.lexer.Token %t99, ptr %a100 @@ -18154,18 +18793,18 @@ entry: %a160 = alloca { ptr, i64, i64 }, align 16 store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 - %t3 = call %S.ast.Node @finch.parser.node(ptr %t2, { ptr, i64, i64 } { ptr @.str.827, i64 2, i64 0 }) + %t3 = call %S.ast.Node @finch.parser.node(ptr %t2, { ptr, i64, i64 } { ptr @.str.847, i64 2, i64 0 }) store %S.ast.Node %t3, ptr %a4 %t5 = load ptr, ptr %a1 - %t6 = call i1 @finch.parser.accept(ptr %t5, { ptr, i64, i64 } { ptr @.str.828, i64 6, i64 0 }) + %t6 = call i1 @finch.parser.accept(ptr %t5, { ptr, i64, i64 } { ptr @.str.848, i64 6, i64 0 }) %t7 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 8 store i1 %t6, ptr %t7 %t8 = load ptr, ptr %a1 - %t9 = call i1 @finch.parser.at(ptr %t8, { ptr, i64, i64 } { ptr @.str.829, i64 5, i64 0 }) - br label %logic.from1473 -logic.from1473: - br i1 %t9, label %logic.rhs1474, label %logic.end1475 -logic.rhs1474: + %t9 = call i1 @finch.parser.at(ptr %t8, { ptr, i64, i64 } { ptr @.str.849, i64 5, i64 0 }) + br label %logic.from1511 +logic.from1511: + br i1 %t9, label %logic.rhs1512, label %logic.end1513 +logic.rhs1512: %t10 = load ptr, ptr %a1 %t11 = call %S.lexer.Token @finch.parser.cur(ptr %t10) %t12 = extractvalue %S.lexer.Token %t11, 1 @@ -18177,27 +18816,27 @@ logic.rhs1474: %t17 = call i1 @finch.parser.isTypeName({ ptr, i64, i64 } %t15) store { ptr, i64, i64 } %t15, ptr %a18 call void @finch_str_drop(ptr %a18) - br label %logic.rend1476 -logic.rend1476: - br label %logic.end1475 -logic.end1475: - %t19 = phi i1 [ false, %logic.from1473 ], [ %t17, %logic.rend1476 ] - br i1 %t19, label %then1477, label %endif1479 -then1477: + br label %logic.rend1514 +logic.rend1514: + br label %logic.end1513 +logic.end1513: + %t19 = phi i1 [ false, %logic.from1511 ], [ %t17, %logic.rend1514 ] + br i1 %t19, label %then1515, label %endif1517 +then1515: %t20 = load ptr, ptr %a1 %t21 = load ptr, ptr %a1 %t22 = call %S.lexer.Token @finch.parser.cur(ptr %t21) - call void @finch.parser.fail(ptr %t20, %S.lexer.Token %t22, { ptr, i64, i64 } { ptr @.str.830, i64 68, i64 0 }) + call void @finch.parser.fail(ptr %t20, %S.lexer.Token %t22, { ptr, i64, i64 } { ptr @.str.850, i64 68, i64 0 }) store %S.lexer.Token %t22, ptr %a23 call void @finch.drop.S_lexer_Token(ptr %a23) - br label %endif1479 -endif1479: + br label %endif1517 +endif1517: %t24 = load ptr, ptr %a1 - %t25 = call %S.lexer.Token @finch.parser.expect(ptr %t24, { ptr, i64, i64 } { ptr @.str.831, i64 2, i64 0 }, { ptr, i64, i64 } { ptr @.str.832, i64 26, i64 0 }) + %t25 = call %S.lexer.Token @finch.parser.expect(ptr %t24, { ptr, i64, i64 } { ptr @.str.851, i64 2, i64 0 }, { ptr, i64, i64 } { ptr @.str.852, i64 26, i64 0 }) store %S.lexer.Token %t25, ptr %a26 call void @finch.drop.S_lexer_Token(ptr %a26) %t27 = load ptr, ptr %a1 - %t28 = call %S.lexer.Token @finch.parser.expect(ptr %t27, { ptr, i64, i64 } { ptr @.str.833, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.834, i64 15, i64 0 }) + %t28 = call %S.lexer.Token @finch.parser.expect(ptr %t27, { ptr, i64, i64 } { ptr @.str.853, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.854, i64 15, i64 0 }) %t29 = extractvalue %S.lexer.Token %t28, 1 store { ptr, i64, i64 } %t29, ptr %a30 call void @finch_str_copy(ptr %a31, ptr %a30) @@ -18210,9 +18849,9 @@ endif1479: store { ptr, i64, i64 } %t35, ptr %a36 call void @finch_str_drop(ptr %a36) %t37 = load ptr, ptr %a1 - %t38 = call i1 @finch.parser.at(ptr %t37, { ptr, i64, i64 } { ptr @.str.835, i64 1, i64 0 }) - br i1 %t38, label %then1480, label %endif1482 -then1480: + %t38 = call i1 @finch.parser.at(ptr %t37, { ptr, i64, i64 } { ptr @.str.855, i64 1, i64 0 }) + br i1 %t38, label %then1518, label %endif1520 +then1518: %t39 = load ptr, ptr %a1 %t40 = call { ptr, i64, i64 } @finch.parser.parseTParams(ptr %t39) %t41 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 3 @@ -18220,12 +18859,12 @@ then1480: store { ptr, i64, i64 } %t40, ptr %t41 store { ptr, i64, i64 } %t42, ptr %a43 call void @finch.drop.arr_str(ptr %a43) - br label %endif1482 -endif1482: + br label %endif1520 +endif1520: %t44 = load ptr, ptr %a1 - %t45 = call i1 @finch.parser.accept(ptr %t44, { ptr, i64, i64 } { ptr @.str.836, i64 1, i64 0 }) - br i1 %t45, label %then1483, label %endif1485 -then1483: + %t45 = call i1 @finch.parser.accept(ptr %t44, { ptr, i64, i64 } { ptr @.str.856, i64 1, i64 0 }) + br i1 %t45, label %then1521, label %endif1523 +then1521: %t46 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 1 %t47 = load { ptr, i64, i64 }, ptr %t46 %t48 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 2 @@ -18237,7 +18876,7 @@ then1483: store { ptr, i64, i64 } %t52, ptr %a53 call void @finch_str_drop(ptr %a53) %t54 = load ptr, ptr %a1 - %t55 = call %S.lexer.Token @finch.parser.expect(ptr %t54, { ptr, i64, i64 } { ptr @.str.837, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.838, i64 13, i64 0 }) + %t55 = call %S.lexer.Token @finch.parser.expect(ptr %t54, { ptr, i64, i64 } { ptr @.str.857, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.858, i64 13, i64 0 }) %t56 = extractvalue %S.lexer.Token %t55, 1 store { ptr, i64, i64 } %t56, ptr %a57 call void @finch_str_copy(ptr %a58, ptr %a57) @@ -18249,34 +18888,34 @@ then1483: store { ptr, i64, i64 } %t59, ptr %t61 store { ptr, i64, i64 } %t62, ptr %a63 call void @finch_str_drop(ptr %a63) - br label %endif1485 -endif1485: + br label %endif1523 +endif1523: %t64 = load ptr, ptr %a1 - %t65 = call %S.lexer.Token @finch.parser.expect(ptr %t64, { ptr, i64, i64 } { ptr @.str.839, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.840, i64 3, i64 0 }) + %t65 = call %S.lexer.Token @finch.parser.expect(ptr %t64, { ptr, i64, i64 } { ptr @.str.859, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.860, i64 3, i64 0 }) store %S.lexer.Token %t65, ptr %a66 call void @finch.drop.S_lexer_Token(ptr %a66) %t67 = load ptr, ptr %a1 %t68 = icmp eq ptr %t67, null - br i1 %t68, label %panic1486, label %ok1487 -panic1486: - call void @finch_panic(ptr @.str.841, i64 398, ptr @.str.842) + br i1 %t68, label %panic1524, label %ok1525 +panic1524: + call void @finch_panic(ptr @.str.861, i64 446, ptr @.str.862) unreachable -ok1487: +ok1525: %t69 = getelementptr inbounds %S.parser.Parser, ptr %t67, i32 0, i32 2 %t70 = load i64, ptr %t69 %t71 = add i64 %t70, 1 store i64 %t71, ptr %t69 %t72 = load ptr, ptr %a1 - %t73 = call i1 @finch.parser.at(ptr %t72, { ptr, i64, i64 } { ptr @.str.843, i64 1, i64 0 }) + %t73 = call i1 @finch.parser.at(ptr %t72, { ptr, i64, i64 } { ptr @.str.863, i64 1, i64 0 }) %t74 = xor i1 %t73, true - br i1 %t74, label %then1488, label %endif1490 -then1488: - br label %while.cond1491 -while.cond1491: - br label %while.body1492 -while.body1492: + br i1 %t74, label %then1526, label %endif1528 +then1526: + br label %while.cond1529 +while.cond1529: + br label %while.body1530 +while.body1530: %t75 = load ptr, ptr %a1 - %t76 = call %S.ast.Node @finch.parser.node(ptr %t75, { ptr, i64, i64 } { ptr @.str.844, i64 5, i64 0 }) + %t76 = call %S.ast.Node @finch.parser.node(ptr %t75, { ptr, i64, i64 } { ptr @.str.864, i64 5, i64 0 }) store %S.ast.Node %t76, ptr %a77 %t78 = load ptr, ptr %a1 %t79 = call %S.ast.Type @finch.parser.parseType(ptr %t78) @@ -18286,7 +18925,7 @@ while.body1492: store %S.ast.Type %t81, ptr %a82 call void @finch.drop.S_ast_Type(ptr %a82) %t83 = load ptr, ptr %a1 - %t84 = call %S.lexer.Token @finch.parser.expect(ptr %t83, { ptr, i64, i64 } { ptr @.str.845, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.846, i64 16, i64 0 }) + %t84 = call %S.lexer.Token @finch.parser.expect(ptr %t83, { ptr, i64, i64 } { ptr @.str.865, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.866, i64 16, i64 0 }) %t85 = extractvalue %S.lexer.Token %t84, 1 store { ptr, i64, i64 } %t85, ptr %a86 call void @finch_str_copy(ptr %a87, ptr %a86) @@ -18312,48 +18951,48 @@ while.body1492: store %S.ast.Node %t98, ptr %t102 store i64 %t100, ptr %t94 %t103 = load ptr, ptr %a1 - %t104 = call i1 @finch.parser.accept(ptr %t103, { ptr, i64, i64 } { ptr @.str.847, i64 1, i64 0 }) + %t104 = call i1 @finch.parser.accept(ptr %t103, { ptr, i64, i64 } { ptr @.str.867, i64 1, i64 0 }) %t105 = xor i1 %t104, true - br i1 %t105, label %then1494, label %endif1496 -then1494: + br i1 %t105, label %then1532, label %endif1534 +then1532: call void @finch.drop.S_ast_Node(ptr %a77) - br label %while.end1493 -endif1496: + br label %while.end1531 +endif1534: call void @finch.drop.S_ast_Node(ptr %a77) - br label %while.cond1491 -while.end1493: - br label %endif1490 -endif1490: + br label %while.cond1529 +while.end1531: + br label %endif1528 +endif1528: %t106 = load ptr, ptr %a1 %t107 = icmp eq ptr %t106, null - br i1 %t107, label %panic1497, label %ok1498 -panic1497: - call void @finch_panic(ptr @.str.848, i64 410, ptr @.str.849) + br i1 %t107, label %panic1535, label %ok1536 +panic1535: + call void @finch_panic(ptr @.str.868, i64 458, ptr @.str.869) unreachable -ok1498: +ok1536: %t108 = getelementptr inbounds %S.parser.Parser, ptr %t106, i32 0, i32 2 %t109 = load i64, ptr %t108 %t110 = sub i64 %t109, 1 store i64 %t110, ptr %t108 %t111 = load ptr, ptr %a1 - %t112 = call %S.lexer.Token @finch.parser.expect(ptr %t111, { ptr, i64, i64 } { ptr @.str.850, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.851, i64 3, i64 0 }) + %t112 = call %S.lexer.Token @finch.parser.expect(ptr %t111, { ptr, i64, i64 } { ptr @.str.870, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.871, i64 3, i64 0 }) store %S.lexer.Token %t112, ptr %a113 call void @finch.drop.S_lexer_Token(ptr %a113) - %t114 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.852, i64 4, i64 0 }) + %t114 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.872, i64 4, i64 0 }) %t115 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 5 %t116 = load %S.ast.Type, ptr %t115 store %S.ast.Type %t114, ptr %t115 store %S.ast.Type %t116, ptr %a117 call void @finch.drop.S_ast_Type(ptr %a117) %t118 = load ptr, ptr %a1 - %t119 = call i1 @finch.parser.accept(ptr %t118, { ptr, i64, i64 } { ptr @.str.853, i64 2, i64 0 }) - br i1 %t119, label %then1499, label %endif1501 -then1499: + %t119 = call i1 @finch.parser.accept(ptr %t118, { ptr, i64, i64 } { ptr @.str.873, i64 2, i64 0 }) + br i1 %t119, label %then1537, label %endif1539 +then1537: %t120 = load ptr, ptr %a1 - %t121 = call i1 @finch.parser.at(ptr %t120, { ptr, i64, i64 } { ptr @.str.854, i64 1, i64 0 }) + %t121 = call i1 @finch.parser.at(ptr %t120, { ptr, i64, i64 } { ptr @.str.874, i64 1, i64 0 }) %t122 = xor i1 %t121, true - br i1 %t122, label %then1502, label %endif1504 -then1502: + br i1 %t122, label %then1540, label %endif1542 +then1540: %t123 = load ptr, ptr %a1 %t124 = call %S.ast.Type @finch.parser.parseType(ptr %t123) %t125 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 5 @@ -18361,33 +19000,33 @@ then1502: store %S.ast.Type %t124, ptr %t125 store %S.ast.Type %t126, ptr %a127 call void @finch.drop.S_ast_Type(ptr %a127) - br label %endif1504 -endif1504: + br label %endif1542 +endif1542: %t128 = load ptr, ptr %a1 - %t129 = call i1 @finch.parser.accept(ptr %t128, { ptr, i64, i64 } { ptr @.str.855, i64 1, i64 0 }) + %t129 = call i1 @finch.parser.accept(ptr %t128, { ptr, i64, i64 } { ptr @.str.875, i64 1, i64 0 }) %t130 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 7 store i1 %t129, ptr %t130 %t131 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 7 %t132 = load i1, ptr %t131 %t133 = xor i1 %t132, true - br label %logic.from1505 -logic.from1505: - br i1 %t133, label %logic.rhs1506, label %logic.end1507 -logic.rhs1506: + br label %logic.from1543 +logic.from1543: + br i1 %t133, label %logic.rhs1544, label %logic.end1545 +logic.rhs1544: %t134 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 5 %t135 = getelementptr inbounds %S.ast.Type, ptr %t134, i32 0, i32 0 %t136 = load { ptr, i64, i64 }, ptr %t135 store { ptr, i64, i64 } %t136, ptr %a137 - store { ptr, i64, i64 } { ptr @.str.856, i64 4, i64 0 }, ptr %a138 + store { ptr, i64, i64 } { ptr @.str.876, i64 4, i64 0 }, ptr %a138 %t139 = call i32 @finch_str_eq(ptr %a137, ptr %a138) %t140 = icmp ne i32 %t139, 0 - br label %logic.rend1508 -logic.rend1508: - br label %logic.end1507 -logic.end1507: - %t141 = phi i1 [ false, %logic.from1505 ], [ %t140, %logic.rend1508 ] - br i1 %t141, label %then1509, label %endif1511 -then1509: + br label %logic.rend1546 +logic.rend1546: + br label %logic.end1545 +logic.end1545: + %t141 = phi i1 [ false, %logic.from1543 ], [ %t140, %logic.rend1546 ] + br i1 %t141, label %then1547, label %endif1549 +then1547: %t142 = load ptr, ptr %a1 %t143 = load ptr, ptr %a1 %t144 = call %S.lexer.Token @finch.parser.cur(ptr %t143) @@ -18396,14 +19035,14 @@ then1509: %t147 = call { ptr, i64, i64 } @finch.parser.describe(%S.lexer.Token %t146) store %S.lexer.Token %t146, ptr %a148 call void @finch.drop.S_lexer_Token(ptr %a148) - store { ptr, i64, i64 } { ptr @.str.857, i64 11, i64 0 }, ptr %a150 + store { ptr, i64, i64 } { ptr @.str.877, i64 11, i64 0 }, ptr %a150 store { ptr, i64, i64 } %t147, ptr %a151 call void @finch_str_concat(ptr %a149, ptr %a150, ptr %a151) store { ptr, i64, i64 } %t147, ptr %a152 call void @finch_str_drop(ptr %a152) %t153 = load { ptr, i64, i64 }, ptr %a149 store { ptr, i64, i64 } %t153, ptr %a155 - store { ptr, i64, i64 } { ptr @.str.858, i64 61, i64 0 }, ptr %a156 + store { ptr, i64, i64 } { ptr @.str.878, i64 61, i64 0 }, ptr %a156 call void @finch_str_concat(ptr %a154, ptr %a155, ptr %a156) store { ptr, i64, i64 } %t153, ptr %a157 call void @finch_str_drop(ptr %a157) @@ -18413,10 +19052,10 @@ then1509: call void @finch.drop.S_lexer_Token(ptr %a159) store { ptr, i64, i64 } %t158, ptr %a160 call void @finch_str_drop(ptr %a160) - br label %endif1511 -endif1511: - br label %endif1501 -endif1501: + br label %endif1549 +endif1549: + br label %endif1539 +endif1539: %t161 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 9 %t162 = getelementptr inbounds { ptr, i64, i64 }, ptr %t161, i32 0, i32 1 %t163 = load ptr, ptr %a1 @@ -18436,11 +19075,11 @@ endif1501: %t174 = load { ptr, i64, i64 }, ptr %t169 %t175 = extractvalue { ptr, i64, i64 } %t174, 1 %t176 = icmp uge i64 %t173, %t175 - br i1 %t176, label %range1512, label %inrange1513 -range1512: - call void @finch_panic_index(ptr @.str.859, i64 423, i64 %t173, i64 %t175) + br i1 %t176, label %range1550, label %inrange1551 +range1550: + call void @finch_panic_index(ptr @.str.879, i64 471, i64 %t173, i64 %t175) unreachable -inrange1513: +inrange1551: %t177 = extractvalue { ptr, i64, i64 } %t174, 0 %t178 = getelementptr inbounds %S.ast.Node, ptr %t177, i64 %t173 %t179 = getelementptr inbounds %S.ast.Node, ptr %t178, i32 0, i32 14 @@ -18462,50 +19101,50 @@ entry: %a45 = alloca %S.lexer.Token, align 16 store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 - %t3 = call %S.ast.Node @finch.parser.node(ptr %t2, { ptr, i64, i64 } { ptr @.str.860, i64 5, i64 0 }) + %t3 = call %S.ast.Node @finch.parser.node(ptr %t2, { ptr, i64, i64 } { ptr @.str.880, i64 5, i64 0 }) store %S.ast.Node %t3, ptr %a4 %t5 = load ptr, ptr %a1 - %t6 = call %S.lexer.Token @finch.parser.expect(ptr %t5, { ptr, i64, i64 } { ptr @.str.861, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.862, i64 3, i64 0 }) + %t6 = call %S.lexer.Token @finch.parser.expect(ptr %t5, { ptr, i64, i64 } { ptr @.str.881, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.882, i64 3, i64 0 }) store %S.lexer.Token %t6, ptr %a7 call void @finch.drop.S_lexer_Token(ptr %a7) %t8 = load ptr, ptr %a1 %t9 = icmp eq ptr %t8, null - br i1 %t9, label %panic1514, label %ok1515 -panic1514: - call void @finch_panic(ptr @.str.863, i64 432, ptr @.str.864) + br i1 %t9, label %panic1552, label %ok1553 +panic1552: + call void @finch_panic(ptr @.str.883, i64 480, ptr @.str.884) unreachable -ok1515: +ok1553: %t10 = getelementptr inbounds %S.parser.Parser, ptr %t8, i32 0, i32 2 %t11 = load i64, ptr %t10 store i64 %t11, ptr %a12 %t13 = load ptr, ptr %a1 %t14 = icmp eq ptr %t13, null - br i1 %t14, label %panic1516, label %ok1517 -panic1516: - call void @finch_panic(ptr @.str.865, i64 433, ptr @.str.866) + br i1 %t14, label %panic1554, label %ok1555 +panic1554: + call void @finch_panic(ptr @.str.885, i64 481, ptr @.str.886) unreachable -ok1517: +ok1555: %t15 = getelementptr inbounds %S.parser.Parser, ptr %t13, i32 0, i32 2 store i64 0, ptr %t15 - br label %while.cond1518 -while.cond1518: + br label %while.cond1556 +while.cond1556: %t16 = load ptr, ptr %a1 - %t17 = call i1 @finch.parser.at(ptr %t16, { ptr, i64, i64 } { ptr @.str.867, i64 1, i64 0 }) + %t17 = call i1 @finch.parser.at(ptr %t16, { ptr, i64, i64 } { ptr @.str.887, i64 1, i64 0 }) %t18 = xor i1 %t17, true - br i1 %t18, label %while.body1519, label %while.end1520 -while.body1519: + br i1 %t18, label %while.body1557, label %while.end1558 +while.body1557: %t19 = load ptr, ptr %a1 - %t20 = call i1 @finch.parser.at(ptr %t19, { ptr, i64, i64 } { ptr @.str.868, i64 3, i64 0 }) - br i1 %t20, label %then1521, label %endif1523 -then1521: + %t20 = call i1 @finch.parser.at(ptr %t19, { ptr, i64, i64 } { ptr @.str.888, i64 3, i64 0 }) + br i1 %t20, label %then1559, label %endif1561 +then1559: %t21 = load ptr, ptr %a1 %t22 = load ptr, ptr %a1 %t23 = call %S.lexer.Token @finch.parser.cur(ptr %t22) - call void @finch.parser.fail(ptr %t21, %S.lexer.Token %t23, { ptr, i64, i64 } { ptr @.str.869, i64 35, i64 0 }) + call void @finch.parser.fail(ptr %t21, %S.lexer.Token %t23, { ptr, i64, i64 } { ptr @.str.889, i64 35, i64 0 }) store %S.lexer.Token %t23, ptr %a24 call void @finch.drop.S_lexer_Token(ptr %a24) - br label %endif1523 -endif1523: + br label %endif1561 +endif1561: %t25 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 9 %t26 = getelementptr inbounds { ptr, i64, i64 }, ptr %t25, i32 0, i32 1 %t27 = load ptr, ptr %a1 @@ -18519,16 +19158,16 @@ endif1523: store i64 %t30, ptr %t26 %t33 = load ptr, ptr %a1 call void @finch.parser.endOfStatement(ptr %t33) - br label %while.cond1518 -while.end1520: + br label %while.cond1556 +while.end1558: %t34 = load i64, ptr %a12 %t35 = load ptr, ptr %a1 %t36 = icmp eq ptr %t35, null - br i1 %t36, label %panic1524, label %ok1525 -panic1524: - call void @finch_panic(ptr @.str.870, i64 441, ptr @.str.871) + br i1 %t36, label %panic1562, label %ok1563 +panic1562: + call void @finch_panic(ptr @.str.890, i64 489, ptr @.str.891) unreachable -ok1525: +ok1563: %t37 = getelementptr inbounds %S.parser.Parser, ptr %t35, i32 0, i32 2 store i64 %t34, ptr %t37 %t38 = load ptr, ptr %a1 @@ -18661,25 +19300,25 @@ entry: store { ptr, i64, i64 } %t3, ptr %a4 %t5 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t5, ptr %a6 - store { ptr, i64, i64 } { ptr @.str.872, i64 2, i64 0 }, ptr %a7 + store { ptr, i64, i64 } { ptr @.str.892, i64 2, i64 0 }, ptr %a7 %t8 = call i32 @finch_str_eq(ptr %a6, ptr %a7) %t9 = icmp ne i32 %t8, 0 - br i1 %t9, label %then1526, label %endif1528 -then1526: + br i1 %t9, label %then1564, label %endif1566 +then1564: %t10 = load ptr, ptr %a1 %t11 = call %S.ast.Node @finch.parser.parseIf(ptr %t10) call void @finch_str_drop(ptr %a4) ret %S.ast.Node %t11 -endif1528: +endif1566: %t12 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t12, ptr %a13 - store { ptr, i64, i64 } { ptr @.str.873, i64 5, i64 0 }, ptr %a14 + store { ptr, i64, i64 } { ptr @.str.893, i64 5, i64 0 }, ptr %a14 %t15 = call i32 @finch_str_eq(ptr %a13, ptr %a14) %t16 = icmp ne i32 %t15, 0 - br i1 %t16, label %then1529, label %endif1531 -then1529: + br i1 %t16, label %then1567, label %endif1569 +then1567: %t17 = load ptr, ptr %a1 - %t18 = call %S.ast.Node @finch.parser.node(ptr %t17, { ptr, i64, i64 } { ptr @.str.874, i64 5, i64 0 }) + %t18 = call %S.ast.Node @finch.parser.node(ptr %t17, { ptr, i64, i64 } { ptr @.str.894, i64 5, i64 0 }) store %S.ast.Node %t18, ptr %a19 %t20 = load ptr, ptr %a1 %t21 = call %S.lexer.Token @finch.parser.next(ptr %t20) @@ -18710,23 +19349,23 @@ then1529: %t39 = load %S.ast.Node, ptr %a19 call void @finch_str_drop(ptr %a4) ret %S.ast.Node %t39 -endif1531: +endif1569: %t40 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t40, ptr %a41 - store { ptr, i64, i64 } { ptr @.str.875, i64 3, i64 0 }, ptr %a42 + store { ptr, i64, i64 } { ptr @.str.895, i64 3, i64 0 }, ptr %a42 %t43 = call i32 @finch_str_eq(ptr %a41, ptr %a42) %t44 = icmp ne i32 %t43, 0 - br i1 %t44, label %then1532, label %endif1534 -then1532: + br i1 %t44, label %then1570, label %endif1572 +then1570: %t45 = load ptr, ptr %a1 - %t46 = call %S.ast.Node @finch.parser.node(ptr %t45, { ptr, i64, i64 } { ptr @.str.876, i64 3, i64 0 }) + %t46 = call %S.ast.Node @finch.parser.node(ptr %t45, { ptr, i64, i64 } { ptr @.str.896, i64 3, i64 0 }) store %S.ast.Node %t46, ptr %a47 %t48 = load ptr, ptr %a1 %t49 = call %S.lexer.Token @finch.parser.next(ptr %t48) store %S.lexer.Token %t49, ptr %a50 call void @finch.drop.S_lexer_Token(ptr %a50) %t51 = load ptr, ptr %a1 - %t52 = call %S.lexer.Token @finch.parser.expect(ptr %t51, { ptr, i64, i64 } { ptr @.str.877, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.878, i64 20, i64 0 }) + %t52 = call %S.lexer.Token @finch.parser.expect(ptr %t51, { ptr, i64, i64 } { ptr @.str.897, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.898, i64 20, i64 0 }) %t53 = extractvalue %S.lexer.Token %t52, 1 store { ptr, i64, i64 } %t53, ptr %a54 call void @finch_str_copy(ptr %a55, ptr %a54) @@ -18739,11 +19378,11 @@ then1532: store { ptr, i64, i64 } %t59, ptr %a60 call void @finch_str_drop(ptr %a60) %t61 = load ptr, ptr %a1 - %t62 = call i1 @finch.parser.accept(ptr %t61, { ptr, i64, i64 } { ptr @.str.879, i64 1, i64 0 }) - br i1 %t62, label %then1535, label %endif1537 -then1535: + %t62 = call i1 @finch.parser.accept(ptr %t61, { ptr, i64, i64 } { ptr @.str.899, i64 1, i64 0 }) + br i1 %t62, label %then1573, label %endif1575 +then1573: %t63 = load ptr, ptr %a1 - %t64 = call %S.lexer.Token @finch.parser.expect(ptr %t63, { ptr, i64, i64 } { ptr @.str.880, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.881, i64 27, i64 0 }) + %t64 = call %S.lexer.Token @finch.parser.expect(ptr %t63, { ptr, i64, i64 } { ptr @.str.900, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.901, i64 27, i64 0 }) %t65 = extractvalue %S.lexer.Token %t64, 1 store { ptr, i64, i64 } %t65, ptr %a66 call void @finch_str_copy(ptr %a67, ptr %a66) @@ -18755,10 +19394,10 @@ then1535: store { ptr, i64, i64 } %t68, ptr %t70 store { ptr, i64, i64 } %t71, ptr %a72 call void @finch_str_drop(ptr %a72) - br label %endif1537 -endif1537: + br label %endif1575 +endif1575: %t73 = load ptr, ptr %a1 - %t74 = call %S.lexer.Token @finch.parser.expect(ptr %t73, { ptr, i64, i64 } { ptr @.str.882, i64 2, i64 0 }, { ptr, i64, i64 } { ptr @.str.883, i64 4, i64 0 }) + %t74 = call %S.lexer.Token @finch.parser.expect(ptr %t73, { ptr, i64, i64 } { ptr @.str.902, i64 2, i64 0 }, { ptr, i64, i64 } { ptr @.str.903, i64 4, i64 0 }) store %S.lexer.Token %t74, ptr %a75 call void @finch.drop.S_lexer_Token(ptr %a75) %t76 = getelementptr inbounds %S.ast.Node, ptr %a47, i32 0, i32 9 @@ -18773,23 +19412,23 @@ endif1537: store %S.ast.Node %t79, ptr %t83 store i64 %t81, ptr %t77 %t84 = load ptr, ptr %a1 - %t85 = call i1 @finch.parser.accept(ptr %t84, { ptr, i64, i64 } { ptr @.str.884, i64 2, i64 0 }) - br i1 %t85, label %then1538, label %else1539 -then1538: + %t85 = call i1 @finch.parser.accept(ptr %t84, { ptr, i64, i64 } { ptr @.str.904, i64 2, i64 0 }) + br i1 %t85, label %then1576, label %else1577 +then1576: %t86 = getelementptr inbounds %S.ast.Node, ptr %a47, i32 0, i32 4 %t87 = getelementptr inbounds { ptr, i64, i64 }, ptr %t86, i32 0, i32 1 %t88 = load i64, ptr %t87 %t89 = icmp sgt i64 %t88, 0 - br i1 %t89, label %then1541, label %endif1543 -then1541: + br i1 %t89, label %then1579, label %endif1581 +then1579: %t90 = load ptr, ptr %a1 %t91 = load ptr, ptr %a1 %t92 = call %S.lexer.Token @finch.parser.cur(ptr %t91) - call void @finch.parser.fail(ptr %t90, %S.lexer.Token %t92, { ptr, i64, i64 } { ptr @.str.885, i64 55, i64 0 }) + call void @finch.parser.fail(ptr %t90, %S.lexer.Token %t92, { ptr, i64, i64 } { ptr @.str.905, i64 55, i64 0 }) store %S.lexer.Token %t92, ptr %a93 call void @finch.drop.S_lexer_Token(ptr %a93) - br label %endif1543 -endif1543: + br label %endif1581 +endif1581: %t94 = getelementptr inbounds %S.ast.Node, ptr %a47, i32 0, i32 9 %t95 = getelementptr inbounds { ptr, i64, i64 }, ptr %t94, i32 0, i32 1 %t96 = load ptr, ptr %a1 @@ -18801,15 +19440,15 @@ endif1543: %t101 = getelementptr inbounds %S.ast.Node, ptr %t100, i64 %t98 store %S.ast.Node %t97, ptr %t101 store i64 %t99, ptr %t95 - br label %endif1540 -else1539: + br label %endif1578 +else1577: %t102 = getelementptr inbounds %S.ast.Node, ptr %a47, i32 0, i32 0 %t103 = load { ptr, i64, i64 }, ptr %t102 - store { ptr, i64, i64 } { ptr @.str.886, i64 4, i64 0 }, ptr %t102 + store { ptr, i64, i64 } { ptr @.str.906, i64 4, i64 0 }, ptr %t102 store { ptr, i64, i64 } %t103, ptr %a104 call void @finch_str_drop(ptr %a104) - br label %endif1540 -endif1540: + br label %endif1578 +endif1578: %t105 = getelementptr inbounds %S.ast.Node, ptr %a47, i32 0, i32 9 %t106 = getelementptr inbounds { ptr, i64, i64 }, ptr %t105, i32 0, i32 1 %t107 = load ptr, ptr %a1 @@ -18824,53 +19463,53 @@ endif1540: %t113 = load %S.ast.Node, ptr %a47 call void @finch_str_drop(ptr %a4) ret %S.ast.Node %t113 -endif1534: +endif1572: %t114 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t114, ptr %a115 - store { ptr, i64, i64 } { ptr @.str.887, i64 5, i64 0 }, ptr %a116 + store { ptr, i64, i64 } { ptr @.str.907, i64 5, i64 0 }, ptr %a116 %t117 = call i32 @finch_str_eq(ptr %a115, ptr %a116) %t118 = icmp ne i32 %t117, 0 - br i1 %t118, label %then1544, label %endif1546 -then1544: + br i1 %t118, label %then1582, label %endif1584 +then1582: %t119 = load ptr, ptr %a1 %t120 = call %S.ast.Node @finch.parser.parseMatch(ptr %t119, i1 false) call void @finch_str_drop(ptr %a4) ret %S.ast.Node %t120 -endif1546: +endif1584: %t121 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t121, ptr %a122 - store { ptr, i64, i64 } { ptr @.str.888, i64 6, i64 0 }, ptr %a123 + store { ptr, i64, i64 } { ptr @.str.908, i64 6, i64 0 }, ptr %a123 %t124 = call i32 @finch_str_eq(ptr %a122, ptr %a123) %t125 = icmp ne i32 %t124, 0 - br i1 %t125, label %then1547, label %endif1549 -then1547: + br i1 %t125, label %then1585, label %endif1587 +then1585: %t126 = load ptr, ptr %a1 - %t127 = call %S.ast.Node @finch.parser.node(ptr %t126, { ptr, i64, i64 } { ptr @.str.889, i64 6, i64 0 }) + %t127 = call %S.ast.Node @finch.parser.node(ptr %t126, { ptr, i64, i64 } { ptr @.str.909, i64 6, i64 0 }) store %S.ast.Node %t127, ptr %a128 %t129 = load ptr, ptr %a1 %t130 = call %S.lexer.Token @finch.parser.next(ptr %t129) store %S.lexer.Token %t130, ptr %a131 call void @finch.drop.S_lexer_Token(ptr %a131) %t132 = load ptr, ptr %a1 - %t133 = call i1 @finch.parser.at(ptr %t132, { ptr, i64, i64 } { ptr @.str.890, i64 1, i64 0 }) + %t133 = call i1 @finch.parser.at(ptr %t132, { ptr, i64, i64 } { ptr @.str.910, i64 1, i64 0 }) %t134 = xor i1 %t133, true - br label %logic.from1550 -logic.from1550: - br i1 %t134, label %logic.rhs1551, label %logic.end1552 -logic.rhs1551: + br label %logic.from1588 +logic.from1588: + br i1 %t134, label %logic.rhs1589, label %logic.end1590 +logic.rhs1589: %t135 = load ptr, ptr %a1 %t136 = call %S.lexer.Token @finch.parser.cur(ptr %t135) %t137 = extractvalue %S.lexer.Token %t136, 4 store %S.lexer.Token %t136, ptr %a138 call void @finch.drop.S_lexer_Token(ptr %a138) %t139 = xor i1 %t137, true - br label %logic.rend1553 -logic.rend1553: - br label %logic.end1552 -logic.end1552: - %t140 = phi i1 [ false, %logic.from1550 ], [ %t139, %logic.rend1553 ] - br i1 %t140, label %then1554, label %endif1556 -then1554: + br label %logic.rend1591 +logic.rend1591: + br label %logic.end1590 +logic.end1590: + %t140 = phi i1 [ false, %logic.from1588 ], [ %t139, %logic.rend1591 ] + br i1 %t140, label %then1592, label %endif1594 +then1592: %t141 = getelementptr inbounds %S.ast.Node, ptr %a128, i32 0, i32 9 %t142 = getelementptr inbounds { ptr, i64, i64 }, ptr %t141, i32 0, i32 1 %t143 = load ptr, ptr %a1 @@ -18882,33 +19521,33 @@ then1554: %t148 = getelementptr inbounds %S.ast.Node, ptr %t147, i64 %t145 store %S.ast.Node %t144, ptr %t148 store i64 %t146, ptr %t142 - br label %endif1556 -endif1556: + br label %endif1594 +endif1594: %t149 = load %S.ast.Node, ptr %a128 call void @finch_str_drop(ptr %a4) ret %S.ast.Node %t149 -endif1549: +endif1587: %t150 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t150, ptr %a151 - store { ptr, i64, i64 } { ptr @.str.891, i64 5, i64 0 }, ptr %a152 + store { ptr, i64, i64 } { ptr @.str.911, i64 5, i64 0 }, ptr %a152 %t153 = call i32 @finch_str_eq(ptr %a151, ptr %a152) %t154 = icmp ne i32 %t153, 0 - br label %logic.from1557 -logic.from1557: - br i1 %t154, label %logic.end1559, label %logic.rhs1558 -logic.rhs1558: + br label %logic.from1595 +logic.from1595: + br i1 %t154, label %logic.end1597, label %logic.rhs1596 +logic.rhs1596: %t155 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t155, ptr %a156 - store { ptr, i64, i64 } { ptr @.str.892, i64 8, i64 0 }, ptr %a157 + store { ptr, i64, i64 } { ptr @.str.912, i64 8, i64 0 }, ptr %a157 %t158 = call i32 @finch_str_eq(ptr %a156, ptr %a157) %t159 = icmp ne i32 %t158, 0 - br label %logic.rend1560 -logic.rend1560: - br label %logic.end1559 -logic.end1559: - %t160 = phi i1 [ true, %logic.from1557 ], [ %t159, %logic.rend1560 ] - br i1 %t160, label %then1561, label %endif1563 -then1561: + br label %logic.rend1598 +logic.rend1598: + br label %logic.end1597 +logic.end1597: + %t160 = phi i1 [ true, %logic.from1595 ], [ %t159, %logic.rend1598 ] + br i1 %t160, label %then1599, label %endif1601 +then1599: %t161 = load ptr, ptr %a1 %t162 = load { ptr, i64, i64 }, ptr %a4 %t163 = call %S.ast.Node @finch.parser.node(ptr %t161, { ptr, i64, i64 } %t162) @@ -18920,45 +19559,45 @@ then1561: %t168 = load %S.ast.Node, ptr %a164 call void @finch_str_drop(ptr %a4) ret %S.ast.Node %t168 -endif1563: +endif1601: %t169 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t169, ptr %a170 - store { ptr, i64, i64 } { ptr @.str.893, i64 1, i64 0 }, ptr %a171 + store { ptr, i64, i64 } { ptr @.str.913, i64 1, i64 0 }, ptr %a171 %t172 = call i32 @finch_str_eq(ptr %a170, ptr %a171) %t173 = icmp ne i32 %t172, 0 - br i1 %t173, label %then1564, label %endif1566 -then1564: + br i1 %t173, label %then1602, label %endif1604 +then1602: %t174 = load ptr, ptr %a1 %t175 = call %S.ast.Node @finch.parser.parseBlock(ptr %t174) call void @finch_str_drop(ptr %a4) ret %S.ast.Node %t175 -endif1566: +endif1604: %t176 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t176, ptr %a177 - store { ptr, i64, i64 } { ptr @.str.894, i64 5, i64 0 }, ptr %a178 + store { ptr, i64, i64 } { ptr @.str.914, i64 5, i64 0 }, ptr %a178 %t179 = call i32 @finch_str_eq(ptr %a177, ptr %a178) %t180 = icmp ne i32 %t179, 0 - br i1 %t180, label %then1567, label %endif1569 -then1567: + br i1 %t180, label %then1605, label %endif1607 +then1605: %t181 = load ptr, ptr %a1 - %t182 = call %S.ast.Node @finch.parser.node(ptr %t181, { ptr, i64, i64 } { ptr @.str.895, i64 5, i64 0 }) + %t182 = call %S.ast.Node @finch.parser.node(ptr %t181, { ptr, i64, i64 } { ptr @.str.915, i64 5, i64 0 }) store %S.ast.Node %t182, ptr %a183 %t184 = load ptr, ptr %a1 %t185 = call %S.lexer.Token @finch.parser.next(ptr %t184) store %S.lexer.Token %t185, ptr %a186 call void @finch.drop.S_lexer_Token(ptr %a186) %t187 = load ptr, ptr %a1 - %t188 = call i1 @finch.parser.at(ptr %t187, { ptr, i64, i64 } { ptr @.str.896, i64 5, i64 0 }) - br i1 %t188, label %then1570, label %endif1572 -then1570: + %t188 = call i1 @finch.parser.at(ptr %t187, { ptr, i64, i64 } { ptr @.str.916, i64 5, i64 0 }) + br i1 %t188, label %then1608, label %endif1610 +then1608: %t189 = load ptr, ptr %a1 %t190 = load ptr, ptr %a1 %t191 = call %S.lexer.Token @finch.parser.cur(ptr %t190) - call void @finch.parser.fail(ptr %t189, %S.lexer.Token %t191, { ptr, i64, i64 } { ptr @.str.897, i64 33, i64 0 }) + call void @finch.parser.fail(ptr %t189, %S.lexer.Token %t191, { ptr, i64, i64 } { ptr @.str.917, i64 33, i64 0 }) store %S.lexer.Token %t191, ptr %a192 call void @finch.drop.S_lexer_Token(ptr %a192) - br label %endif1572 -endif1572: + br label %endif1610 +endif1610: %t193 = getelementptr inbounds %S.ast.Node, ptr %a183, i32 0, i32 9 %t194 = getelementptr inbounds { ptr, i64, i64 }, ptr %t193, i32 0, i32 1 %t195 = load ptr, ptr %a1 @@ -18973,66 +19612,66 @@ endif1572: %t201 = load %S.ast.Node, ptr %a183 call void @finch_str_drop(ptr %a4) ret %S.ast.Node %t201 -endif1569: +endif1607: %t202 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t202, ptr %a203 - store { ptr, i64, i64 } { ptr @.str.898, i64 2, i64 0 }, ptr %a204 + store { ptr, i64, i64 } { ptr @.str.918, i64 2, i64 0 }, ptr %a204 %t205 = call i32 @finch_str_eq(ptr %a203, ptr %a204) %t206 = icmp ne i32 %t205, 0 - br label %logic.from1573 -logic.from1573: - br i1 %t206, label %logic.end1575, label %logic.rhs1574 -logic.rhs1574: + br label %logic.from1611 +logic.from1611: + br i1 %t206, label %logic.end1613, label %logic.rhs1612 +logic.rhs1612: %t207 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t207, ptr %a208 - store { ptr, i64, i64 } { ptr @.str.899, i64 6, i64 0 }, ptr %a209 + store { ptr, i64, i64 } { ptr @.str.919, i64 6, i64 0 }, ptr %a209 %t210 = call i32 @finch_str_eq(ptr %a208, ptr %a209) %t211 = icmp ne i32 %t210, 0 - br label %logic.rend1576 -logic.rend1576: - br label %logic.end1575 -logic.end1575: - %t212 = phi i1 [ true, %logic.from1573 ], [ %t211, %logic.rend1576 ] - br label %logic.from1577 -logic.from1577: - br i1 %t212, label %logic.end1579, label %logic.rhs1578 -logic.rhs1578: + br label %logic.rend1614 +logic.rend1614: + br label %logic.end1613 +logic.end1613: + %t212 = phi i1 [ true, %logic.from1611 ], [ %t211, %logic.rend1614 ] + br label %logic.from1615 +logic.from1615: + br i1 %t212, label %logic.end1617, label %logic.rhs1616 +logic.rhs1616: %t213 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t213, ptr %a214 - store { ptr, i64, i64 } { ptr @.str.900, i64 6, i64 0 }, ptr %a215 + store { ptr, i64, i64 } { ptr @.str.920, i64 6, i64 0 }, ptr %a215 %t216 = call i32 @finch_str_eq(ptr %a214, ptr %a215) %t217 = icmp ne i32 %t216, 0 - br label %logic.rend1580 -logic.rend1580: - br label %logic.end1579 -logic.end1579: - %t218 = phi i1 [ true, %logic.from1577 ], [ %t217, %logic.rend1580 ] - br label %logic.from1581 -logic.from1581: - br i1 %t218, label %logic.end1583, label %logic.rhs1582 -logic.rhs1582: + br label %logic.rend1618 +logic.rend1618: + br label %logic.end1617 +logic.end1617: + %t218 = phi i1 [ true, %logic.from1615 ], [ %t217, %logic.rend1618 ] + br label %logic.from1619 +logic.from1619: + br i1 %t218, label %logic.end1621, label %logic.rhs1620 +logic.rhs1620: %t219 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t219, ptr %a220 - store { ptr, i64, i64 } { ptr @.str.901, i64 4, i64 0 }, ptr %a221 + store { ptr, i64, i64 } { ptr @.str.921, i64 4, i64 0 }, ptr %a221 %t222 = call i32 @finch_str_eq(ptr %a220, ptr %a221) %t223 = icmp ne i32 %t222, 0 - br label %logic.rend1584 -logic.rend1584: - br label %logic.end1583 -logic.end1583: - %t224 = phi i1 [ true, %logic.from1581 ], [ %t223, %logic.rend1584 ] - br i1 %t224, label %then1585, label %endif1587 -then1585: + br label %logic.rend1622 +logic.rend1622: + br label %logic.end1621 +logic.end1621: + %t224 = phi i1 [ true, %logic.from1619 ], [ %t223, %logic.rend1622 ] + br i1 %t224, label %then1623, label %endif1625 +then1623: %t225 = load ptr, ptr %a1 %t226 = load ptr, ptr %a1 %t227 = call %S.lexer.Token @finch.parser.cur(ptr %t226) %t228 = load { ptr, i64, i64 }, ptr %a4 - store { ptr, i64, i64 } { ptr @.str.902, i64 1, i64 0 }, ptr %a230 + store { ptr, i64, i64 } { ptr @.str.922, i64 1, i64 0 }, ptr %a230 store { ptr, i64, i64 } %t228, ptr %a231 call void @finch_str_concat(ptr %a229, ptr %a230, ptr %a231) %t232 = load { ptr, i64, i64 }, ptr %a229 store { ptr, i64, i64 } %t232, ptr %a234 - store { ptr, i64, i64 } { ptr @.str.903, i64 48, i64 0 }, ptr %a235 + store { ptr, i64, i64 } { ptr @.str.923, i64 48, i64 0 }, ptr %a235 call void @finch_str_concat(ptr %a233, ptr %a234, ptr %a235) store { ptr, i64, i64 } %t232, ptr %a236 call void @finch_str_drop(ptr %a236) @@ -19042,14 +19681,14 @@ then1585: call void @finch.drop.S_lexer_Token(ptr %a238) store { ptr, i64, i64 } %t237, ptr %a239 call void @finch_str_drop(ptr %a239) - br label %endif1587 -endif1587: + br label %endif1625 +endif1625: %t240 = load ptr, ptr %a1 %t241 = call i1 @finch.parser.atDeclaration(ptr %t240) - br i1 %t241, label %then1588, label %endif1590 -then1588: + br i1 %t241, label %then1626, label %endif1628 +then1626: %t242 = load ptr, ptr %a1 - %t243 = call %S.ast.Node @finch.parser.node(ptr %t242, { ptr, i64, i64 } { ptr @.str.904, i64 4, i64 0 }) + %t243 = call %S.ast.Node @finch.parser.node(ptr %t242, { ptr, i64, i64 } { ptr @.str.924, i64 4, i64 0 }) store %S.ast.Node %t243, ptr %a244 %t245 = getelementptr inbounds %S.ast.Node, ptr %a244, i32 0, i32 6 store i1 true, ptr %t245 @@ -19061,7 +19700,7 @@ then1588: store %S.ast.Type %t249, ptr %a250 call void @finch.drop.S_ast_Type(ptr %a250) %t251 = load ptr, ptr %a1 - %t252 = call %S.lexer.Token @finch.parser.expect(ptr %t251, { ptr, i64, i64 } { ptr @.str.905, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.906, i64 15, i64 0 }) + %t252 = call %S.lexer.Token @finch.parser.expect(ptr %t251, { ptr, i64, i64 } { ptr @.str.925, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.926, i64 15, i64 0 }) %t253 = extractvalue %S.lexer.Token %t252, 1 store { ptr, i64, i64 } %t253, ptr %a254 call void @finch_str_copy(ptr %a255, ptr %a254) @@ -19074,9 +19713,9 @@ then1588: store { ptr, i64, i64 } %t259, ptr %a260 call void @finch_str_drop(ptr %a260) %t261 = load ptr, ptr %a1 - %t262 = call i1 @finch.parser.accept(ptr %t261, { ptr, i64, i64 } { ptr @.str.907, i64 1, i64 0 }) - br i1 %t262, label %then1591, label %endif1593 -then1591: + %t262 = call i1 @finch.parser.accept(ptr %t261, { ptr, i64, i64 } { ptr @.str.927, i64 1, i64 0 }) + br i1 %t262, label %then1629, label %endif1631 +then1629: %t263 = getelementptr inbounds %S.ast.Node, ptr %a244, i32 0, i32 9 %t264 = getelementptr inbounds { ptr, i64, i64 }, ptr %t263, i32 0, i32 1 %t265 = load ptr, ptr %a1 @@ -19088,35 +19727,35 @@ then1591: %t270 = getelementptr inbounds %S.ast.Node, ptr %t269, i64 %t267 store %S.ast.Node %t266, ptr %t270 store i64 %t268, ptr %t264 - br label %endif1593 -endif1593: + br label %endif1631 +endif1631: %t271 = load %S.ast.Node, ptr %a244 call void @finch_str_drop(ptr %a4) ret %S.ast.Node %t271 -endif1590: +endif1628: %t272 = load ptr, ptr %a1 - %t273 = call i1 @finch.parser.at(ptr %t272, { ptr, i64, i64 } { ptr @.str.908, i64 5, i64 0 }) - br label %logic.from1594 -logic.from1594: - br i1 %t273, label %logic.rhs1595, label %logic.end1596 -logic.rhs1595: + %t273 = call i1 @finch.parser.at(ptr %t272, { ptr, i64, i64 } { ptr @.str.928, i64 5, i64 0 }) + br label %logic.from1632 +logic.from1632: + br i1 %t273, label %logic.rhs1633, label %logic.end1634 +logic.rhs1633: %t274 = load ptr, ptr %a1 %t275 = call { ptr, i64, i64 } @finch.parser.peekKind(ptr %t274, i64 1) store { ptr, i64, i64 } %t275, ptr %a276 - store { ptr, i64, i64 } { ptr @.str.909, i64 2, i64 0 }, ptr %a277 + store { ptr, i64, i64 } { ptr @.str.929, i64 2, i64 0 }, ptr %a277 %t278 = call i32 @finch_str_eq(ptr %a276, ptr %a277) %t279 = icmp ne i32 %t278, 0 store { ptr, i64, i64 } %t275, ptr %a280 call void @finch_str_drop(ptr %a280) - br label %logic.rend1597 -logic.rend1597: - br label %logic.end1596 -logic.end1596: - %t281 = phi i1 [ false, %logic.from1594 ], [ %t279, %logic.rend1597 ] - br i1 %t281, label %then1598, label %endif1600 -then1598: + br label %logic.rend1635 +logic.rend1635: + br label %logic.end1634 +logic.end1634: + %t281 = phi i1 [ false, %logic.from1632 ], [ %t279, %logic.rend1635 ] + br i1 %t281, label %then1636, label %endif1638 +then1636: %t282 = load ptr, ptr %a1 - %t283 = call %S.ast.Node @finch.parser.node(ptr %t282, { ptr, i64, i64 } { ptr @.str.910, i64 4, i64 0 }) + %t283 = call %S.ast.Node @finch.parser.node(ptr %t282, { ptr, i64, i64 } { ptr @.str.930, i64 4, i64 0 }) store %S.ast.Node %t283, ptr %a284 %t285 = load ptr, ptr %a1 %t286 = call %S.lexer.Token @finch.parser.next(ptr %t285) @@ -19149,7 +19788,7 @@ then1598: %t306 = load %S.ast.Node, ptr %a284 call void @finch_str_drop(ptr %a4) ret %S.ast.Node %t306 -endif1600: +endif1638: %t307 = load ptr, ptr %a1 %t308 = call %S.lexer.Token @finch.parser.cur(ptr %t307) store %S.lexer.Token %t308, ptr %a309 @@ -19159,17 +19798,17 @@ endif1600: %t313 = mul i64 6, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t314 = call ptr @finch_alloc(i64 %t313) %t315 = getelementptr inbounds { ptr, i64, i64 }, ptr %t314, i64 0 - store { ptr, i64, i64 } { ptr @.str.911, i64 1, i64 0 }, ptr %t315 + store { ptr, i64, i64 } { ptr @.str.931, i64 1, i64 0 }, ptr %t315 %t316 = getelementptr inbounds { ptr, i64, i64 }, ptr %t314, i64 1 - store { ptr, i64, i64 } { ptr @.str.912, i64 2, i64 0 }, ptr %t316 + store { ptr, i64, i64 } { ptr @.str.932, i64 2, i64 0 }, ptr %t316 %t317 = getelementptr inbounds { ptr, i64, i64 }, ptr %t314, i64 2 - store { ptr, i64, i64 } { ptr @.str.913, i64 2, i64 0 }, ptr %t317 + store { ptr, i64, i64 } { ptr @.str.933, i64 2, i64 0 }, ptr %t317 %t318 = getelementptr inbounds { ptr, i64, i64 }, ptr %t314, i64 3 - store { ptr, i64, i64 } { ptr @.str.914, i64 2, i64 0 }, ptr %t318 + store { ptr, i64, i64 } { ptr @.str.934, i64 2, i64 0 }, ptr %t318 %t319 = getelementptr inbounds { ptr, i64, i64 }, ptr %t314, i64 4 - store { ptr, i64, i64 } { ptr @.str.915, i64 2, i64 0 }, ptr %t319 + store { ptr, i64, i64 } { ptr @.str.935, i64 2, i64 0 }, ptr %t319 %t320 = getelementptr inbounds { ptr, i64, i64 }, ptr %t314, i64 5 - store { ptr, i64, i64 } { ptr @.str.916, i64 2, i64 0 }, ptr %t320 + store { ptr, i64, i64 } { ptr @.str.936, i64 2, i64 0 }, ptr %t320 %t321 = insertvalue { ptr, i64, i64 } undef, ptr %t314, 0 %t322 = insertvalue { ptr, i64, i64 } %t321, i64 6, 1 %t323 = insertvalue { ptr, i64, i64 } %t322, i64 6, 2 @@ -19181,88 +19820,88 @@ endif1600: %t329 = load i64, ptr %t325 %t330 = load ptr, ptr %a324 store i64 0, ptr %a331 - br label %find.cond1601 -find.cond1601: + br label %find.cond1639 +find.cond1639: %t332 = load i64, ptr %a331 %t333 = icmp slt i64 %t332, %t329 - br i1 %t333, label %find.body1602, label %find.end1605 -find.body1602: + br i1 %t333, label %find.body1640, label %find.end1643 +find.body1640: %t334 = getelementptr inbounds { ptr, i64, i64 }, ptr %t330, i64 %t332 %t335 = load { ptr, i64, i64 }, ptr %t334 store { ptr, i64, i64 } %t335, ptr %a336 store { ptr, i64, i64 } %t327, ptr %a337 %t338 = call i32 @finch_str_eq(ptr %a336, ptr %a337) %t339 = icmp ne i32 %t338, 0 - br i1 %t339, label %find.hit1603, label %find.next1604 -find.hit1603: + br i1 %t339, label %find.hit1641, label %find.next1642 +find.hit1641: store i64 %t332, ptr %a328 - br label %find.end1605 -find.next1604: + br label %find.end1643 +find.next1642: %t340 = add i64 %t332, 1 store i64 %t340, ptr %a331 - br label %find.cond1601 -find.end1605: + br label %find.cond1639 +find.end1643: store { ptr, i64, i64 } %t327, ptr %a341 call void @finch_str_drop(ptr %a341) %t342 = load i64, ptr %a328 %t343 = icmp sge i64 %t342, 0 - br label %logic.from1606 -logic.from1606: - br i1 %t343, label %logic.rhs1607, label %logic.end1608 -logic.rhs1607: + br label %logic.from1644 +logic.from1644: + br i1 %t343, label %logic.rhs1645, label %logic.end1646 +logic.rhs1645: %t344 = load ptr, ptr %a1 %t345 = call i1 @finch.parser.sameLine(ptr %t344) - br label %logic.rend1609 -logic.rend1609: - br label %logic.end1608 -logic.end1608: - %t346 = phi i1 [ false, %logic.from1606 ], [ %t345, %logic.rend1609 ] - br i1 %t346, label %then1610, label %endif1612 -then1610: + br label %logic.rend1647 +logic.rend1647: + br label %logic.end1646 +logic.end1646: + %t346 = phi i1 [ false, %logic.from1644 ], [ %t345, %logic.rend1647 ] + br i1 %t346, label %then1648, label %endif1650 +then1648: %t347 = getelementptr inbounds %S.ast.Node, ptr %a312, i32 0, i32 0 %t348 = load { ptr, i64, i64 }, ptr %t347 store { ptr, i64, i64 } %t348, ptr %a349 - store { ptr, i64, i64 } { ptr @.str.917, i64 3, i64 0 }, ptr %a350 + store { ptr, i64, i64 } { ptr @.str.937, i64 3, i64 0 }, ptr %a350 %t351 = call i32 @finch_str_eq(ptr %a349, ptr %a350) %t352 = icmp eq i32 %t351, 0 - br label %logic.from1613 -logic.from1613: - br i1 %t352, label %logic.rhs1614, label %logic.end1615 -logic.rhs1614: + br label %logic.from1651 +logic.from1651: + br i1 %t352, label %logic.rhs1652, label %logic.end1653 +logic.rhs1652: %t353 = getelementptr inbounds %S.ast.Node, ptr %a312, i32 0, i32 0 %t354 = load { ptr, i64, i64 }, ptr %t353 store { ptr, i64, i64 } %t354, ptr %a355 - store { ptr, i64, i64 } { ptr @.str.918, i64 6, i64 0 }, ptr %a356 + store { ptr, i64, i64 } { ptr @.str.938, i64 6, i64 0 }, ptr %a356 %t357 = call i32 @finch_str_eq(ptr %a355, ptr %a356) %t358 = icmp eq i32 %t357, 0 - br label %logic.rend1616 -logic.rend1616: - br label %logic.end1615 -logic.end1615: - %t359 = phi i1 [ false, %logic.from1613 ], [ %t358, %logic.rend1616 ] - br label %logic.from1617 -logic.from1617: - br i1 %t359, label %logic.rhs1618, label %logic.end1619 -logic.rhs1618: + br label %logic.rend1654 +logic.rend1654: + br label %logic.end1653 +logic.end1653: + %t359 = phi i1 [ false, %logic.from1651 ], [ %t358, %logic.rend1654 ] + br label %logic.from1655 +logic.from1655: + br i1 %t359, label %logic.rhs1656, label %logic.end1657 +logic.rhs1656: %t360 = getelementptr inbounds %S.ast.Node, ptr %a312, i32 0, i32 0 %t361 = load { ptr, i64, i64 }, ptr %t360 store { ptr, i64, i64 } %t361, ptr %a362 - store { ptr, i64, i64 } { ptr @.str.919, i64 5, i64 0 }, ptr %a363 + store { ptr, i64, i64 } { ptr @.str.939, i64 5, i64 0 }, ptr %a363 %t364 = call i32 @finch_str_eq(ptr %a362, ptr %a363) %t365 = icmp eq i32 %t364, 0 - br label %logic.rend1620 -logic.rend1620: - br label %logic.end1619 -logic.end1619: - %t366 = phi i1 [ false, %logic.from1617 ], [ %t365, %logic.rend1620 ] - br i1 %t366, label %then1621, label %endif1623 -then1621: + br label %logic.rend1658 +logic.rend1658: + br label %logic.end1657 +logic.end1657: + %t366 = phi i1 [ false, %logic.from1655 ], [ %t365, %logic.rend1658 ] + br i1 %t366, label %then1659, label %endif1661 +then1659: %t367 = load ptr, ptr %a1 %t368 = load %S.lexer.Token, ptr %a309 - call void @finch.parser.fail(ptr %t367, %S.lexer.Token %t368, { ptr, i64, i64 } { ptr @.str.920, i64 66, i64 0 }) - br label %endif1623 -endif1623: - %t369 = insertvalue %S.ast.Node zeroinitializer, { ptr, i64, i64 } { ptr @.str.921, i64 6, i64 0 }, 0 + call void @finch.parser.fail(ptr %t367, %S.lexer.Token %t368, { ptr, i64, i64 } { ptr @.str.940, i64 66, i64 0 }) + br label %endif1661 +endif1661: + %t369 = insertvalue %S.ast.Node zeroinitializer, { ptr, i64, i64 } { ptr @.str.941, i64 6, i64 0 }, 0 %t370 = getelementptr inbounds %S.lexer.Token, ptr %a309, i32 0, i32 2 %t371 = load i64, ptr %t370 %t372 = insertvalue %S.ast.Node %t369, i64 %t371, 11 @@ -19271,11 +19910,11 @@ endif1623: %t375 = insertvalue %S.ast.Node %t372, i64 %t374, 12 %t376 = load ptr, ptr %a1 %t377 = icmp eq ptr %t376, null - br i1 %t377, label %panic1624, label %ok1625 -panic1624: - call void @finch_panic(ptr @.str.922, i64 536, ptr @.str.923) + br i1 %t377, label %panic1662, label %ok1663 +panic1662: + call void @finch_panic(ptr @.str.942, i64 584, ptr @.str.943) unreachable -ok1625: +ok1663: %t378 = getelementptr inbounds %S.parser.Parser, ptr %t376, i32 0, i32 3 %t379 = load i64, ptr %t378 %t380 = insertvalue %S.ast.Node %t375, i64 %t379, 13 @@ -19323,66 +19962,66 @@ ok1625: call void @finch.drop.S_lexer_Token(ptr %a309) call void @finch_str_drop(ptr %a4) ret %S.ast.Node %t410 -endif1612: +endif1650: %t411 = getelementptr inbounds %S.ast.Node, ptr %a312, i32 0, i32 0 %t412 = load { ptr, i64, i64 }, ptr %t411 store { ptr, i64, i64 } %t412, ptr %a413 - store { ptr, i64, i64 } { ptr @.str.924, i64 4, i64 0 }, ptr %a414 + store { ptr, i64, i64 } { ptr @.str.944, i64 4, i64 0 }, ptr %a414 %t415 = call i32 @finch_str_eq(ptr %a413, ptr %a414) %t416 = icmp eq i32 %t415, 0 - br label %logic.from1626 -logic.from1626: - br i1 %t416, label %logic.rhs1627, label %logic.end1628 -logic.rhs1627: + br label %logic.from1664 +logic.from1664: + br i1 %t416, label %logic.rhs1665, label %logic.end1666 +logic.rhs1665: %t417 = getelementptr inbounds %S.ast.Node, ptr %a312, i32 0, i32 0 %t418 = load { ptr, i64, i64 }, ptr %t417 store { ptr, i64, i64 } %t418, ptr %a419 - store { ptr, i64, i64 } { ptr @.str.925, i64 6, i64 0 }, ptr %a420 + store { ptr, i64, i64 } { ptr @.str.945, i64 6, i64 0 }, ptr %a420 %t421 = call i32 @finch_str_eq(ptr %a419, ptr %a420) %t422 = icmp eq i32 %t421, 0 - br label %logic.rend1629 -logic.rend1629: - br label %logic.end1628 -logic.end1628: - %t423 = phi i1 [ false, %logic.from1626 ], [ %t422, %logic.rend1629 ] - br label %logic.from1630 -logic.from1630: - br i1 %t423, label %logic.rhs1631, label %logic.end1632 -logic.rhs1631: + br label %logic.rend1667 +logic.rend1667: + br label %logic.end1666 +logic.end1666: + %t423 = phi i1 [ false, %logic.from1664 ], [ %t422, %logic.rend1667 ] + br label %logic.from1668 +logic.from1668: + br i1 %t423, label %logic.rhs1669, label %logic.end1670 +logic.rhs1669: %t424 = getelementptr inbounds %S.ast.Node, ptr %a312, i32 0, i32 0 %t425 = load { ptr, i64, i64 }, ptr %t424 store { ptr, i64, i64 } %t425, ptr %a426 - store { ptr, i64, i64 } { ptr @.str.926, i64 3, i64 0 }, ptr %a427 + store { ptr, i64, i64 } { ptr @.str.946, i64 3, i64 0 }, ptr %a427 %t428 = call i32 @finch_str_eq(ptr %a426, ptr %a427) %t429 = icmp eq i32 %t428, 0 - br label %logic.rend1633 -logic.rend1633: - br label %logic.end1632 -logic.end1632: - %t430 = phi i1 [ false, %logic.from1630 ], [ %t429, %logic.rend1633 ] - br label %logic.from1634 -logic.from1634: - br i1 %t430, label %logic.rhs1635, label %logic.end1636 -logic.rhs1635: + br label %logic.rend1671 +logic.rend1671: + br label %logic.end1670 +logic.end1670: + %t430 = phi i1 [ false, %logic.from1668 ], [ %t429, %logic.rend1671 ] + br label %logic.from1672 +logic.from1672: + br i1 %t430, label %logic.rhs1673, label %logic.end1674 +logic.rhs1673: %t431 = getelementptr inbounds %S.ast.Node, ptr %a312, i32 0, i32 0 %t432 = load { ptr, i64, i64 }, ptr %t431 store { ptr, i64, i64 } %t432, ptr %a433 - store { ptr, i64, i64 } { ptr @.str.927, i64 2, i64 0 }, ptr %a434 + store { ptr, i64, i64 } { ptr @.str.947, i64 2, i64 0 }, ptr %a434 %t435 = call i32 @finch_str_eq(ptr %a433, ptr %a434) %t436 = icmp eq i32 %t435, 0 - br label %logic.rend1637 -logic.rend1637: - br label %logic.end1636 -logic.end1636: - %t437 = phi i1 [ false, %logic.from1634 ], [ %t436, %logic.rend1637 ] - br i1 %t437, label %then1638, label %endif1640 -then1638: + br label %logic.rend1675 +logic.rend1675: + br label %logic.end1674 +logic.end1674: + %t437 = phi i1 [ false, %logic.from1672 ], [ %t436, %logic.rend1675 ] + br i1 %t437, label %then1676, label %endif1678 +then1676: %t438 = load ptr, ptr %a1 %t439 = load %S.lexer.Token, ptr %a309 - call void @finch.parser.fail(ptr %t438, %S.lexer.Token %t439, { ptr, i64, i64 } { ptr @.str.928, i64 37, i64 0 }) - br label %endif1640 -endif1640: - %t440 = insertvalue %S.ast.Node zeroinitializer, { ptr, i64, i64 } { ptr @.str.929, i64 4, i64 0 }, 0 + call void @finch.parser.fail(ptr %t438, %S.lexer.Token %t439, { ptr, i64, i64 } { ptr @.str.948, i64 37, i64 0 }) + br label %endif1678 +endif1678: + %t440 = insertvalue %S.ast.Node zeroinitializer, { ptr, i64, i64 } { ptr @.str.949, i64 4, i64 0 }, 0 %t441 = getelementptr inbounds %S.lexer.Token, ptr %a309, i32 0, i32 2 %t442 = load i64, ptr %t441 %t443 = insertvalue %S.ast.Node %t440, i64 %t442, 11 @@ -19391,11 +20030,11 @@ endif1640: %t446 = insertvalue %S.ast.Node %t443, i64 %t445, 12 %t447 = load ptr, ptr %a1 %t448 = icmp eq ptr %t447, null - br i1 %t448, label %panic1641, label %ok1642 -panic1641: - call void @finch_panic(ptr @.str.930, i64 545, ptr @.str.931) + br i1 %t448, label %panic1679, label %ok1680 +panic1679: + call void @finch_panic(ptr @.str.950, i64 593, ptr @.str.951) unreachable -ok1642: +ok1680: %t449 = getelementptr inbounds %S.parser.Parser, ptr %t447, i32 0, i32 3 %t450 = load i64, ptr %t449 %t451 = insertvalue %S.ast.Node %t446, i64 %t450, 13 @@ -19428,10 +20067,10 @@ entry: %a7 = alloca %S.lexer.Token, align 16 store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 - %t3 = call %S.ast.Node @finch.parser.node(ptr %t2, { ptr, i64, i64 } { ptr @.str.932, i64 2, i64 0 }) + %t3 = call %S.ast.Node @finch.parser.node(ptr %t2, { ptr, i64, i64 } { ptr @.str.952, i64 2, i64 0 }) store %S.ast.Node %t3, ptr %a4 %t5 = load ptr, ptr %a1 - %t6 = call %S.lexer.Token @finch.parser.expect(ptr %t5, { ptr, i64, i64 } { ptr @.str.933, i64 2, i64 0 }, { ptr, i64, i64 } { ptr @.str.934, i64 4, i64 0 }) + %t6 = call %S.lexer.Token @finch.parser.expect(ptr %t5, { ptr, i64, i64 } { ptr @.str.953, i64 2, i64 0 }, { ptr, i64, i64 } { ptr @.str.954, i64 4, i64 0 }) store %S.lexer.Token %t6, ptr %a7 call void @finch.drop.S_lexer_Token(ptr %a7) %t8 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 9 @@ -19457,13 +20096,13 @@ entry: store %S.ast.Node %t19, ptr %t23 store i64 %t21, ptr %t17 %t24 = load ptr, ptr %a1 - %t25 = call i1 @finch.parser.accept(ptr %t24, { ptr, i64, i64 } { ptr @.str.935, i64 4, i64 0 }) - br i1 %t25, label %then1643, label %endif1645 -then1643: + %t25 = call i1 @finch.parser.accept(ptr %t24, { ptr, i64, i64 } { ptr @.str.955, i64 4, i64 0 }) + br i1 %t25, label %then1681, label %endif1683 +then1681: %t26 = load ptr, ptr %a1 - %t27 = call i1 @finch.parser.at(ptr %t26, { ptr, i64, i64 } { ptr @.str.936, i64 2, i64 0 }) - br i1 %t27, label %then1646, label %else1647 -then1646: + %t27 = call i1 @finch.parser.at(ptr %t26, { ptr, i64, i64 } { ptr @.str.956, i64 2, i64 0 }) + br i1 %t27, label %then1684, label %else1685 +then1684: %t28 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 9 %t29 = getelementptr inbounds { ptr, i64, i64 }, ptr %t28, i32 0, i32 1 %t30 = load ptr, ptr %a1 @@ -19475,8 +20114,8 @@ then1646: %t35 = getelementptr inbounds %S.ast.Node, ptr %t34, i64 %t32 store %S.ast.Node %t31, ptr %t35 store i64 %t33, ptr %t29 - br label %endif1648 -else1647: + br label %endif1686 +else1685: %t36 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 9 %t37 = getelementptr inbounds { ptr, i64, i64 }, ptr %t36, i32 0, i32 1 %t38 = load ptr, ptr %a1 @@ -19488,10 +20127,10 @@ else1647: %t43 = getelementptr inbounds %S.ast.Node, ptr %t42, i64 %t40 store %S.ast.Node %t39, ptr %t43 store i64 %t41, ptr %t37 - br label %endif1648 -endif1648: - br label %endif1645 -endif1645: + br label %endif1686 +endif1686: + br label %endif1683 +endif1683: %t44 = load %S.ast.Node, ptr %a4 ret %S.ast.Node %t44 } @@ -19538,231 +20177,231 @@ entry: store { ptr, i64, i64 } %p0, ptr %a1 %t2 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t2, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.937, i64 2, i64 0 }, ptr %a4 + store { ptr, i64, i64 } { ptr @.str.957, i64 2, i64 0 }, ptr %a4 %t5 = call i32 @finch_str_eq(ptr %a3, ptr %a4) %t6 = icmp ne i32 %t5, 0 - br i1 %t6, label %then1649, label %endif1651 -then1649: + br i1 %t6, label %then1687, label %endif1689 +then1687: ret i64 1 -endif1651: +endif1689: %t7 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t7, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.938, i64 2, i64 0 }, ptr %a9 + store { ptr, i64, i64 } { ptr @.str.958, i64 2, i64 0 }, ptr %a9 %t10 = call i32 @finch_str_eq(ptr %a8, ptr %a9) %t11 = icmp ne i32 %t10, 0 - br i1 %t11, label %then1652, label %endif1654 -then1652: + br i1 %t11, label %then1690, label %endif1692 +then1690: ret i64 2 -endif1654: +endif1692: %t12 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t12, ptr %a13 - store { ptr, i64, i64 } { ptr @.str.939, i64 2, i64 0 }, ptr %a14 + store { ptr, i64, i64 } { ptr @.str.959, i64 2, i64 0 }, ptr %a14 %t15 = call i32 @finch_str_eq(ptr %a13, ptr %a14) %t16 = icmp ne i32 %t15, 0 - br label %logic.from1655 -logic.from1655: - br i1 %t16, label %logic.end1657, label %logic.rhs1656 -logic.rhs1656: - %t17 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t17, ptr %a18 - store { ptr, i64, i64 } { ptr @.str.940, i64 2, i64 0 }, ptr %a19 - %t20 = call i32 @finch_str_eq(ptr %a18, ptr %a19) - %t21 = icmp ne i32 %t20, 0 - br label %logic.rend1658 -logic.rend1658: - br label %logic.end1657 -logic.end1657: - %t22 = phi i1 [ true, %logic.from1655 ], [ %t21, %logic.rend1658 ] - br label %logic.from1659 -logic.from1659: - br i1 %t22, label %logic.end1661, label %logic.rhs1660 -logic.rhs1660: - %t23 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t23, ptr %a24 - store { ptr, i64, i64 } { ptr @.str.941, i64 1, i64 0 }, ptr %a25 - %t26 = call i32 @finch_str_eq(ptr %a24, ptr %a25) - %t27 = icmp ne i32 %t26, 0 - br label %logic.rend1662 -logic.rend1662: - br label %logic.end1661 -logic.end1661: - %t28 = phi i1 [ true, %logic.from1659 ], [ %t27, %logic.rend1662 ] - br label %logic.from1663 -logic.from1663: - br i1 %t28, label %logic.end1665, label %logic.rhs1664 -logic.rhs1664: - %t29 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t29, ptr %a30 - store { ptr, i64, i64 } { ptr @.str.942, i64 2, i64 0 }, ptr %a31 - %t32 = call i32 @finch_str_eq(ptr %a30, ptr %a31) - %t33 = icmp ne i32 %t32, 0 - br label %logic.rend1666 -logic.rend1666: - br label %logic.end1665 -logic.end1665: - %t34 = phi i1 [ true, %logic.from1663 ], [ %t33, %logic.rend1666 ] - br label %logic.from1667 -logic.from1667: - br i1 %t34, label %logic.end1669, label %logic.rhs1668 -logic.rhs1668: - %t35 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t35, ptr %a36 - store { ptr, i64, i64 } { ptr @.str.943, i64 1, i64 0 }, ptr %a37 - %t38 = call i32 @finch_str_eq(ptr %a36, ptr %a37) - %t39 = icmp ne i32 %t38, 0 - br label %logic.rend1670 -logic.rend1670: - br label %logic.end1669 -logic.end1669: - %t40 = phi i1 [ true, %logic.from1667 ], [ %t39, %logic.rend1670 ] - br label %logic.from1671 -logic.from1671: - br i1 %t40, label %logic.end1673, label %logic.rhs1672 -logic.rhs1672: - %t41 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t41, ptr %a42 - store { ptr, i64, i64 } { ptr @.str.944, i64 2, i64 0 }, ptr %a43 - %t44 = call i32 @finch_str_eq(ptr %a42, ptr %a43) - %t45 = icmp ne i32 %t44, 0 - br label %logic.rend1674 -logic.rend1674: - br label %logic.end1673 -logic.end1673: - %t46 = phi i1 [ true, %logic.from1671 ], [ %t45, %logic.rend1674 ] - br i1 %t46, label %then1675, label %endif1677 -then1675: - ret i64 3 -endif1677: - %t47 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t47, ptr %a48 - store { ptr, i64, i64 } { ptr @.str.945, i64 1, i64 0 }, ptr %a49 - %t50 = call i32 @finch_str_eq(ptr %a48, ptr %a49) - %t51 = icmp ne i32 %t50, 0 - br label %logic.from1678 -logic.from1678: - br i1 %t51, label %logic.end1680, label %logic.rhs1679 -logic.rhs1679: - %t52 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t52, ptr %a53 - store { ptr, i64, i64 } { ptr @.str.946, i64 1, i64 0 }, ptr %a54 - %t55 = call i32 @finch_str_eq(ptr %a53, ptr %a54) - %t56 = icmp ne i32 %t55, 0 - br label %logic.rend1681 -logic.rend1681: - br label %logic.end1680 -logic.end1680: - %t57 = phi i1 [ true, %logic.from1678 ], [ %t56, %logic.rend1681 ] - br label %logic.from1682 -logic.from1682: - br i1 %t57, label %logic.end1684, label %logic.rhs1683 -logic.rhs1683: - %t58 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t58, ptr %a59 - store { ptr, i64, i64 } { ptr @.str.947, i64 1, i64 0 }, ptr %a60 - %t61 = call i32 @finch_str_eq(ptr %a59, ptr %a60) - %t62 = icmp ne i32 %t61, 0 - br label %logic.rend1685 -logic.rend1685: - br label %logic.end1684 -logic.end1684: - %t63 = phi i1 [ true, %logic.from1682 ], [ %t62, %logic.rend1685 ] - br label %logic.from1686 -logic.from1686: - br i1 %t63, label %logic.end1688, label %logic.rhs1687 -logic.rhs1687: - %t64 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t64, ptr %a65 - store { ptr, i64, i64 } { ptr @.str.948, i64 1, i64 0 }, ptr %a66 - %t67 = call i32 @finch_str_eq(ptr %a65, ptr %a66) - %t68 = icmp ne i32 %t67, 0 - br label %logic.rend1689 -logic.rend1689: - br label %logic.end1688 -logic.end1688: - %t69 = phi i1 [ true, %logic.from1686 ], [ %t68, %logic.rend1689 ] - br i1 %t69, label %then1690, label %endif1692 -then1690: - ret i64 4 -endif1692: - %t70 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t70, ptr %a71 - store { ptr, i64, i64 } { ptr @.str.949, i64 1, i64 0 }, ptr %a72 - %t73 = call i32 @finch_str_eq(ptr %a71, ptr %a72) - %t74 = icmp ne i32 %t73, 0 br label %logic.from1693 logic.from1693: - br i1 %t74, label %logic.end1695, label %logic.rhs1694 + br i1 %t16, label %logic.end1695, label %logic.rhs1694 logic.rhs1694: - %t75 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t75, ptr %a76 - store { ptr, i64, i64 } { ptr @.str.950, i64 1, i64 0 }, ptr %a77 - %t78 = call i32 @finch_str_eq(ptr %a76, ptr %a77) - %t79 = icmp ne i32 %t78, 0 + %t17 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t17, ptr %a18 + store { ptr, i64, i64 } { ptr @.str.960, i64 2, i64 0 }, ptr %a19 + %t20 = call i32 @finch_str_eq(ptr %a18, ptr %a19) + %t21 = icmp ne i32 %t20, 0 br label %logic.rend1696 logic.rend1696: br label %logic.end1695 logic.end1695: - %t80 = phi i1 [ true, %logic.from1693 ], [ %t79, %logic.rend1696 ] + %t22 = phi i1 [ true, %logic.from1693 ], [ %t21, %logic.rend1696 ] br label %logic.from1697 logic.from1697: - br i1 %t80, label %logic.end1699, label %logic.rhs1698 + br i1 %t22, label %logic.end1699, label %logic.rhs1698 logic.rhs1698: - %t81 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t81, ptr %a82 - store { ptr, i64, i64 } { ptr @.str.951, i64 1, i64 0 }, ptr %a83 - %t84 = call i32 @finch_str_eq(ptr %a82, ptr %a83) - %t85 = icmp ne i32 %t84, 0 + %t23 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t23, ptr %a24 + store { ptr, i64, i64 } { ptr @.str.961, i64 1, i64 0 }, ptr %a25 + %t26 = call i32 @finch_str_eq(ptr %a24, ptr %a25) + %t27 = icmp ne i32 %t26, 0 br label %logic.rend1700 logic.rend1700: br label %logic.end1699 logic.end1699: - %t86 = phi i1 [ true, %logic.from1697 ], [ %t85, %logic.rend1700 ] + %t28 = phi i1 [ true, %logic.from1697 ], [ %t27, %logic.rend1700 ] br label %logic.from1701 logic.from1701: - br i1 %t86, label %logic.end1703, label %logic.rhs1702 + br i1 %t28, label %logic.end1703, label %logic.rhs1702 logic.rhs1702: - %t87 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t87, ptr %a88 - store { ptr, i64, i64 } { ptr @.str.952, i64 2, i64 0 }, ptr %a89 - %t90 = call i32 @finch_str_eq(ptr %a88, ptr %a89) - %t91 = icmp ne i32 %t90, 0 + %t29 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t29, ptr %a30 + store { ptr, i64, i64 } { ptr @.str.962, i64 2, i64 0 }, ptr %a31 + %t32 = call i32 @finch_str_eq(ptr %a30, ptr %a31) + %t33 = icmp ne i32 %t32, 0 br label %logic.rend1704 logic.rend1704: br label %logic.end1703 logic.end1703: - %t92 = phi i1 [ true, %logic.from1701 ], [ %t91, %logic.rend1704 ] + %t34 = phi i1 [ true, %logic.from1701 ], [ %t33, %logic.rend1704 ] br label %logic.from1705 logic.from1705: - br i1 %t92, label %logic.end1707, label %logic.rhs1706 + br i1 %t34, label %logic.end1707, label %logic.rhs1706 logic.rhs1706: - %t93 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t93, ptr %a94 - store { ptr, i64, i64 } { ptr @.str.953, i64 2, i64 0 }, ptr %a95 - %t96 = call i32 @finch_str_eq(ptr %a94, ptr %a95) - %t97 = icmp ne i32 %t96, 0 + %t35 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t35, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.963, i64 1, i64 0 }, ptr %a37 + %t38 = call i32 @finch_str_eq(ptr %a36, ptr %a37) + %t39 = icmp ne i32 %t38, 0 br label %logic.rend1708 logic.rend1708: br label %logic.end1707 logic.end1707: - %t98 = phi i1 [ true, %logic.from1705 ], [ %t97, %logic.rend1708 ] + %t40 = phi i1 [ true, %logic.from1705 ], [ %t39, %logic.rend1708 ] br label %logic.from1709 logic.from1709: - br i1 %t98, label %logic.end1711, label %logic.rhs1710 + br i1 %t40, label %logic.end1711, label %logic.rhs1710 logic.rhs1710: - %t99 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } %t99, ptr %a100 - store { ptr, i64, i64 } { ptr @.str.954, i64 1, i64 0 }, ptr %a101 - %t102 = call i32 @finch_str_eq(ptr %a100, ptr %a101) - %t103 = icmp ne i32 %t102, 0 + %t41 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t41, ptr %a42 + store { ptr, i64, i64 } { ptr @.str.964, i64 2, i64 0 }, ptr %a43 + %t44 = call i32 @finch_str_eq(ptr %a42, ptr %a43) + %t45 = icmp ne i32 %t44, 0 br label %logic.rend1712 logic.rend1712: br label %logic.end1711 logic.end1711: - %t104 = phi i1 [ true, %logic.from1709 ], [ %t103, %logic.rend1712 ] - br i1 %t104, label %then1713, label %endif1715 + %t46 = phi i1 [ true, %logic.from1709 ], [ %t45, %logic.rend1712 ] + br i1 %t46, label %then1713, label %endif1715 then1713: - ret i64 5 + ret i64 3 endif1715: + %t47 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t47, ptr %a48 + store { ptr, i64, i64 } { ptr @.str.965, i64 1, i64 0 }, ptr %a49 + %t50 = call i32 @finch_str_eq(ptr %a48, ptr %a49) + %t51 = icmp ne i32 %t50, 0 + br label %logic.from1716 +logic.from1716: + br i1 %t51, label %logic.end1718, label %logic.rhs1717 +logic.rhs1717: + %t52 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t52, ptr %a53 + store { ptr, i64, i64 } { ptr @.str.966, i64 1, i64 0 }, ptr %a54 + %t55 = call i32 @finch_str_eq(ptr %a53, ptr %a54) + %t56 = icmp ne i32 %t55, 0 + br label %logic.rend1719 +logic.rend1719: + br label %logic.end1718 +logic.end1718: + %t57 = phi i1 [ true, %logic.from1716 ], [ %t56, %logic.rend1719 ] + br label %logic.from1720 +logic.from1720: + br i1 %t57, label %logic.end1722, label %logic.rhs1721 +logic.rhs1721: + %t58 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t58, ptr %a59 + store { ptr, i64, i64 } { ptr @.str.967, i64 1, i64 0 }, ptr %a60 + %t61 = call i32 @finch_str_eq(ptr %a59, ptr %a60) + %t62 = icmp ne i32 %t61, 0 + br label %logic.rend1723 +logic.rend1723: + br label %logic.end1722 +logic.end1722: + %t63 = phi i1 [ true, %logic.from1720 ], [ %t62, %logic.rend1723 ] + br label %logic.from1724 +logic.from1724: + br i1 %t63, label %logic.end1726, label %logic.rhs1725 +logic.rhs1725: + %t64 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t64, ptr %a65 + store { ptr, i64, i64 } { ptr @.str.968, i64 1, i64 0 }, ptr %a66 + %t67 = call i32 @finch_str_eq(ptr %a65, ptr %a66) + %t68 = icmp ne i32 %t67, 0 + br label %logic.rend1727 +logic.rend1727: + br label %logic.end1726 +logic.end1726: + %t69 = phi i1 [ true, %logic.from1724 ], [ %t68, %logic.rend1727 ] + br i1 %t69, label %then1728, label %endif1730 +then1728: + ret i64 4 +endif1730: + %t70 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t70, ptr %a71 + store { ptr, i64, i64 } { ptr @.str.969, i64 1, i64 0 }, ptr %a72 + %t73 = call i32 @finch_str_eq(ptr %a71, ptr %a72) + %t74 = icmp ne i32 %t73, 0 + br label %logic.from1731 +logic.from1731: + br i1 %t74, label %logic.end1733, label %logic.rhs1732 +logic.rhs1732: + %t75 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t75, ptr %a76 + store { ptr, i64, i64 } { ptr @.str.970, i64 1, i64 0 }, ptr %a77 + %t78 = call i32 @finch_str_eq(ptr %a76, ptr %a77) + %t79 = icmp ne i32 %t78, 0 + br label %logic.rend1734 +logic.rend1734: + br label %logic.end1733 +logic.end1733: + %t80 = phi i1 [ true, %logic.from1731 ], [ %t79, %logic.rend1734 ] + br label %logic.from1735 +logic.from1735: + br i1 %t80, label %logic.end1737, label %logic.rhs1736 +logic.rhs1736: + %t81 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t81, ptr %a82 + store { ptr, i64, i64 } { ptr @.str.971, i64 1, i64 0 }, ptr %a83 + %t84 = call i32 @finch_str_eq(ptr %a82, ptr %a83) + %t85 = icmp ne i32 %t84, 0 + br label %logic.rend1738 +logic.rend1738: + br label %logic.end1737 +logic.end1737: + %t86 = phi i1 [ true, %logic.from1735 ], [ %t85, %logic.rend1738 ] + br label %logic.from1739 +logic.from1739: + br i1 %t86, label %logic.end1741, label %logic.rhs1740 +logic.rhs1740: + %t87 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t87, ptr %a88 + store { ptr, i64, i64 } { ptr @.str.972, i64 2, i64 0 }, ptr %a89 + %t90 = call i32 @finch_str_eq(ptr %a88, ptr %a89) + %t91 = icmp ne i32 %t90, 0 + br label %logic.rend1742 +logic.rend1742: + br label %logic.end1741 +logic.end1741: + %t92 = phi i1 [ true, %logic.from1739 ], [ %t91, %logic.rend1742 ] + br label %logic.from1743 +logic.from1743: + br i1 %t92, label %logic.end1745, label %logic.rhs1744 +logic.rhs1744: + %t93 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t93, ptr %a94 + store { ptr, i64, i64 } { ptr @.str.973, i64 2, i64 0 }, ptr %a95 + %t96 = call i32 @finch_str_eq(ptr %a94, ptr %a95) + %t97 = icmp ne i32 %t96, 0 + br label %logic.rend1746 +logic.rend1746: + br label %logic.end1745 +logic.end1745: + %t98 = phi i1 [ true, %logic.from1743 ], [ %t97, %logic.rend1746 ] + br label %logic.from1747 +logic.from1747: + br i1 %t98, label %logic.end1749, label %logic.rhs1748 +logic.rhs1748: + %t99 = load { ptr, i64, i64 }, ptr %a1 + store { ptr, i64, i64 } %t99, ptr %a100 + store { ptr, i64, i64 } { ptr @.str.974, i64 1, i64 0 }, ptr %a101 + %t102 = call i32 @finch_str_eq(ptr %a100, ptr %a101) + %t103 = icmp ne i32 %t102, 0 + br label %logic.rend1750 +logic.rend1750: + br label %logic.end1749 +logic.end1749: + %t104 = phi i1 [ true, %logic.from1747 ], [ %t103, %logic.rend1750 ] + br i1 %t104, label %then1751, label %endif1753 +then1751: + ret i64 5 +endif1753: ret i64 0 } @@ -19781,25 +20420,25 @@ entry: %t5 = load ptr, ptr %a1 %t6 = call i1 @finch.parser.sameLine(ptr %t5) %t7 = xor i1 %t6, true - br label %logic.from1716 -logic.from1716: - br i1 %t7, label %logic.end1718, label %logic.rhs1717 -logic.rhs1717: + br label %logic.from1754 +logic.from1754: + br i1 %t7, label %logic.end1756, label %logic.rhs1755 +logic.rhs1755: %t8 = load ptr, ptr %a1 - %t9 = call i1 @finch.parser.at(ptr %t8, { ptr, i64, i64 } { ptr @.str.955, i64 2, i64 0 }) + %t9 = call i1 @finch.parser.at(ptr %t8, { ptr, i64, i64 } { ptr @.str.975, i64 2, i64 0 }) %t10 = xor i1 %t9, true - br label %logic.rend1719 -logic.rend1719: - br label %logic.end1718 -logic.end1718: - %t11 = phi i1 [ true, %logic.from1716 ], [ %t10, %logic.rend1719 ] - br i1 %t11, label %then1720, label %endif1722 -then1720: + br label %logic.rend1757 +logic.rend1757: + br label %logic.end1756 +logic.end1756: + %t11 = phi i1 [ true, %logic.from1754 ], [ %t10, %logic.rend1757 ] + br i1 %t11, label %then1758, label %endif1760 +then1758: %t12 = load %S.ast.Node, ptr %a4 ret %S.ast.Node %t12 -endif1722: +endif1760: %t13 = load ptr, ptr %a1 - %t14 = call %S.ast.Node @finch.parser.node(ptr %t13, { ptr, i64, i64 } { ptr @.str.956, i64 2, i64 0 }) + %t14 = call %S.ast.Node @finch.parser.node(ptr %t13, { ptr, i64, i64 } { ptr @.str.976, i64 2, i64 0 }) store %S.ast.Node %t14, ptr %a15 %t16 = load ptr, ptr %a1 %t17 = call %S.lexer.Token @finch.parser.next(ptr %t16) @@ -19819,9 +20458,9 @@ endif1722: store %S.ast.Node %t24, ptr %t28 store i64 %t26, ptr %t20 %t29 = load ptr, ptr %a1 - %t30 = call i1 @finch.parser.at(ptr %t29, { ptr, i64, i64 } { ptr @.str.957, i64 1, i64 0 }) - br i1 %t30, label %then1723, label %else1724 -then1723: + %t30 = call i1 @finch.parser.at(ptr %t29, { ptr, i64, i64 } { ptr @.str.977, i64 1, i64 0 }) + br i1 %t30, label %then1761, label %else1762 +then1761: %t31 = getelementptr inbounds %S.ast.Node, ptr %a15, i32 0, i32 6 store i1 true, ptr %t31 %t32 = getelementptr inbounds %S.ast.Node, ptr %a15, i32 0, i32 9 @@ -19835,8 +20474,8 @@ then1723: %t39 = getelementptr inbounds %S.ast.Node, ptr %t38, i64 %t36 store %S.ast.Node %t35, ptr %t39 store i64 %t37, ptr %t33 - br label %endif1725 -else1724: + br label %endif1763 +else1762: %t40 = getelementptr inbounds %S.ast.Node, ptr %a15, i32 0, i32 9 %t41 = getelementptr inbounds { ptr, i64, i64 }, ptr %t40, i32 0, i32 1 %t42 = load ptr, ptr %a1 @@ -19848,8 +20487,8 @@ else1724: %t47 = getelementptr inbounds %S.ast.Node, ptr %t46, i64 %t44 store %S.ast.Node %t43, ptr %t47 store i64 %t45, ptr %t41 - br label %endif1725 -endif1725: + br label %endif1763 +endif1763: %t48 = load %S.ast.Node, ptr %a15 call void @finch.drop.S_ast_Node(ptr %a4) ret %S.ast.Node %t48 @@ -19875,25 +20514,25 @@ entry: store i64 %p1, ptr %a2 %t3 = load i64, ptr %a2 %t4 = icmp sgt i64 %t3, 5 - br i1 %t4, label %then1726, label %endif1728 -then1726: + br i1 %t4, label %then1764, label %endif1766 +then1764: %t5 = load ptr, ptr %a1 %t6 = call %S.ast.Node @finch.parser.parseUnary(ptr %t5) ret %S.ast.Node %t6 -endif1728: +endif1766: %t7 = load ptr, ptr %a1 %t8 = load i64, ptr %a2 %t9 = add i64 %t8, 1 %t10 = call %S.ast.Node @finch.parser.parseBinary(ptr %t7, i64 %t9) store %S.ast.Node %t10, ptr %a11 - br label %while.cond1729 -while.cond1729: + br label %while.cond1767 +while.cond1767: %t12 = load ptr, ptr %a1 %t13 = call i1 @finch.parser.sameLine(ptr %t12) - br label %logic.from1732 -logic.from1732: - br i1 %t13, label %logic.rhs1733, label %logic.end1734 -logic.rhs1733: + br label %logic.from1770 +logic.from1770: + br i1 %t13, label %logic.rhs1771, label %logic.end1772 +logic.rhs1771: %t14 = load ptr, ptr %a1 %t15 = call { ptr, i64, i64 } @finch.parser.curKind(ptr %t14) %t16 = call i64 @finch.parser.binaryLevel({ ptr, i64, i64 } %t15) @@ -19901,15 +20540,15 @@ logic.rhs1733: call void @finch_str_drop(ptr %a17) %t18 = load i64, ptr %a2 %t19 = icmp eq i64 %t16, %t18 - br label %logic.rend1735 -logic.rend1735: - br label %logic.end1734 -logic.end1734: - %t20 = phi i1 [ false, %logic.from1732 ], [ %t19, %logic.rend1735 ] - br i1 %t20, label %while.body1730, label %while.end1731 -while.body1730: + br label %logic.rend1773 +logic.rend1773: + br label %logic.end1772 +logic.end1772: + %t20 = phi i1 [ false, %logic.from1770 ], [ %t19, %logic.rend1773 ] + br i1 %t20, label %while.body1768, label %while.end1769 +while.body1768: %t21 = load ptr, ptr %a1 - %t22 = call %S.ast.Node @finch.parser.node(ptr %t21, { ptr, i64, i64 } { ptr @.str.958, i64 6, i64 0 }) + %t22 = call %S.ast.Node @finch.parser.node(ptr %t21, { ptr, i64, i64 } { ptr @.str.978, i64 6, i64 0 }) store %S.ast.Node %t22, ptr %a23 %t24 = load ptr, ptr %a1 %t25 = call %S.lexer.Token @finch.parser.next(ptr %t24) @@ -19959,8 +20598,8 @@ while.body1730: store %S.ast.Node %t58, ptr %a59 call void @finch.drop.S_ast_Node(ptr %a59) call void @finch.drop.S_ast_Node(ptr %a23) - br label %while.cond1729 -while.end1731: + br label %while.cond1767 +while.end1769: %t60 = load %S.ast.Node, ptr %a11 ret %S.ast.Node %t60 } @@ -19977,11 +20616,11 @@ entry: %a39 = alloca { ptr, i64, i64 }, align 16 store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 - %t3 = call i1 @finch.parser.at(ptr %t2, { ptr, i64, i64 } { ptr @.str.959, i64 3, i64 0 }) - br i1 %t3, label %then1736, label %endif1738 -then1736: + %t3 = call i1 @finch.parser.at(ptr %t2, { ptr, i64, i64 } { ptr @.str.979, i64 3, i64 0 }) + br i1 %t3, label %then1774, label %endif1776 +then1774: %t4 = load ptr, ptr %a1 - %t5 = call %S.ast.Node @finch.parser.node(ptr %t4, { ptr, i64, i64 } { ptr @.str.960, i64 3, i64 0 }) + %t5 = call %S.ast.Node @finch.parser.node(ptr %t4, { ptr, i64, i64 } { ptr @.str.980, i64 3, i64 0 }) store %S.ast.Node %t5, ptr %a6 %t7 = load ptr, ptr %a1 %t8 = call %S.lexer.Token @finch.parser.next(ptr %t7) @@ -20000,35 +20639,35 @@ then1736: store i64 %t15, ptr %t11 %t18 = load %S.ast.Node, ptr %a6 ret %S.ast.Node %t18 -endif1738: +endif1776: %t19 = load ptr, ptr %a1 - %t20 = call i1 @finch.parser.at(ptr %t19, { ptr, i64, i64 } { ptr @.str.961, i64 1, i64 0 }) - br label %logic.from1739 -logic.from1739: - br i1 %t20, label %logic.end1741, label %logic.rhs1740 -logic.rhs1740: + %t20 = call i1 @finch.parser.at(ptr %t19, { ptr, i64, i64 } { ptr @.str.981, i64 1, i64 0 }) + br label %logic.from1777 +logic.from1777: + br i1 %t20, label %logic.end1779, label %logic.rhs1778 +logic.rhs1778: %t21 = load ptr, ptr %a1 - %t22 = call i1 @finch.parser.at(ptr %t21, { ptr, i64, i64 } { ptr @.str.962, i64 1, i64 0 }) - br label %logic.rend1742 -logic.rend1742: - br label %logic.end1741 -logic.end1741: - %t23 = phi i1 [ true, %logic.from1739 ], [ %t22, %logic.rend1742 ] - br label %logic.from1743 -logic.from1743: - br i1 %t23, label %logic.end1745, label %logic.rhs1744 -logic.rhs1744: + %t22 = call i1 @finch.parser.at(ptr %t21, { ptr, i64, i64 } { ptr @.str.982, i64 1, i64 0 }) + br label %logic.rend1780 +logic.rend1780: + br label %logic.end1779 +logic.end1779: + %t23 = phi i1 [ true, %logic.from1777 ], [ %t22, %logic.rend1780 ] + br label %logic.from1781 +logic.from1781: + br i1 %t23, label %logic.end1783, label %logic.rhs1782 +logic.rhs1782: %t24 = load ptr, ptr %a1 - %t25 = call i1 @finch.parser.at(ptr %t24, { ptr, i64, i64 } { ptr @.str.963, i64 1, i64 0 }) - br label %logic.rend1746 -logic.rend1746: - br label %logic.end1745 -logic.end1745: - %t26 = phi i1 [ true, %logic.from1743 ], [ %t25, %logic.rend1746 ] - br i1 %t26, label %then1747, label %endif1749 -then1747: + %t25 = call i1 @finch.parser.at(ptr %t24, { ptr, i64, i64 } { ptr @.str.983, i64 1, i64 0 }) + br label %logic.rend1784 +logic.rend1784: + br label %logic.end1783 +logic.end1783: + %t26 = phi i1 [ true, %logic.from1781 ], [ %t25, %logic.rend1784 ] + br i1 %t26, label %then1785, label %endif1787 +then1785: %t27 = load ptr, ptr %a1 - %t28 = call %S.ast.Node @finch.parser.node(ptr %t27, { ptr, i64, i64 } { ptr @.str.964, i64 5, i64 0 }) + %t28 = call %S.ast.Node @finch.parser.node(ptr %t27, { ptr, i64, i64 } { ptr @.str.984, i64 5, i64 0 }) store %S.ast.Node %t28, ptr %a29 %t30 = load ptr, ptr %a1 %t31 = call %S.lexer.Token @finch.parser.next(ptr %t30) @@ -20056,7 +20695,7 @@ then1747: store i64 %t45, ptr %t41 %t48 = load %S.ast.Node, ptr %a29 ret %S.ast.Node %t48 -endif1749: +endif1787: %t49 = load ptr, ptr %a1 %t50 = call %S.ast.Node @finch.parser.parsePostfix(ptr %t49) ret %S.ast.Node %t50 @@ -20082,54 +20721,54 @@ entry: store ptr %p0, ptr %a1 store ptr %p1, ptr %a2 %t3 = load ptr, ptr %a1 - %t4 = call %S.lexer.Token @finch.parser.expect(ptr %t3, { ptr, i64, i64 } { ptr @.str.965, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.966, i64 3, i64 0 }) + %t4 = call %S.lexer.Token @finch.parser.expect(ptr %t3, { ptr, i64, i64 } { ptr @.str.985, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.986, i64 3, i64 0 }) store %S.lexer.Token %t4, ptr %a5 call void @finch.drop.S_lexer_Token(ptr %a5) %t6 = load ptr, ptr %a1 %t7 = icmp eq ptr %t6, null - br i1 %t7, label %panic1750, label %ok1751 -panic1750: - call void @finch_panic(ptr @.str.967, i64 638, ptr @.str.968) + br i1 %t7, label %panic1788, label %ok1789 +panic1788: + call void @finch_panic(ptr @.str.987, i64 686, ptr @.str.988) unreachable -ok1751: +ok1789: %t8 = getelementptr inbounds %S.parser.Parser, ptr %t6, i32 0, i32 2 %t9 = load i64, ptr %t8 %t10 = add i64 %t9, 1 store i64 %t10, ptr %t8 %t11 = load ptr, ptr %a1 - %t12 = call i1 @finch.parser.at(ptr %t11, { ptr, i64, i64 } { ptr @.str.969, i64 1, i64 0 }) + %t12 = call i1 @finch.parser.at(ptr %t11, { ptr, i64, i64 } { ptr @.str.989, i64 1, i64 0 }) %t13 = xor i1 %t12, true - br i1 %t13, label %then1752, label %endif1754 -then1752: - br label %while.cond1755 -while.cond1755: + br i1 %t13, label %then1790, label %endif1792 +then1790: + br label %while.cond1793 +while.cond1793: %t14 = load ptr, ptr %a1 - %t15 = call i1 @finch.parser.at(ptr %t14, { ptr, i64, i64 } { ptr @.str.970, i64 1, i64 0 }) + %t15 = call i1 @finch.parser.at(ptr %t14, { ptr, i64, i64 } { ptr @.str.990, i64 1, i64 0 }) %t16 = xor i1 %t15, true - br i1 %t16, label %while.body1756, label %while.end1757 -while.body1756: - store { ptr, i64, i64 } { ptr @.str.971, i64 0, i64 0 }, ptr %a17 + br i1 %t16, label %while.body1794, label %while.end1795 +while.body1794: + store { ptr, i64, i64 } { ptr @.str.991, i64 0, i64 0 }, ptr %a17 %t18 = load ptr, ptr %a1 - %t19 = call i1 @finch.parser.at(ptr %t18, { ptr, i64, i64 } { ptr @.str.972, i64 5, i64 0 }) - br label %logic.from1758 -logic.from1758: - br i1 %t19, label %logic.rhs1759, label %logic.end1760 -logic.rhs1759: + %t19 = call i1 @finch.parser.at(ptr %t18, { ptr, i64, i64 } { ptr @.str.992, i64 5, i64 0 }) + br label %logic.from1796 +logic.from1796: + br i1 %t19, label %logic.rhs1797, label %logic.end1798 +logic.rhs1797: %t20 = load ptr, ptr %a1 %t21 = call { ptr, i64, i64 } @finch.parser.peekKind(ptr %t20, i64 1) store { ptr, i64, i64 } %t21, ptr %a22 - store { ptr, i64, i64 } { ptr @.str.973, i64 1, i64 0 }, ptr %a23 + store { ptr, i64, i64 } { ptr @.str.993, i64 1, i64 0 }, ptr %a23 %t24 = call i32 @finch_str_eq(ptr %a22, ptr %a23) %t25 = icmp ne i32 %t24, 0 store { ptr, i64, i64 } %t21, ptr %a26 call void @finch_str_drop(ptr %a26) - br label %logic.rend1761 -logic.rend1761: - br label %logic.end1760 -logic.end1760: - %t27 = phi i1 [ false, %logic.from1758 ], [ %t25, %logic.rend1761 ] - br i1 %t27, label %then1762, label %endif1764 -then1762: + br label %logic.rend1799 +logic.rend1799: + br label %logic.end1798 +logic.end1798: + %t27 = phi i1 [ false, %logic.from1796 ], [ %t25, %logic.rend1799 ] + br i1 %t27, label %then1800, label %endif1802 +then1800: %t28 = load ptr, ptr %a1 %t29 = call %S.lexer.Token @finch.parser.next(ptr %t28) %t30 = extractvalue %S.lexer.Token %t29, 1 @@ -20146,15 +20785,15 @@ then1762: %t38 = call %S.lexer.Token @finch.parser.next(ptr %t37) store %S.lexer.Token %t38, ptr %a39 call void @finch.drop.S_lexer_Token(ptr %a39) - br label %endif1764 -endif1764: + br label %endif1802 +endif1802: %t40 = load ptr, ptr %a2 %t41 = icmp eq ptr %t40, null - br i1 %t41, label %panic1765, label %ok1766 -panic1765: - call void @finch_panic(ptr @.str.974, i64 646, ptr @.str.975) + br i1 %t41, label %panic1803, label %ok1804 +panic1803: + call void @finch_panic(ptr @.str.994, i64 694, ptr @.str.995) unreachable -ok1766: +ok1804: %t42 = getelementptr inbounds %S.ast.Node, ptr %t40, i32 0, i32 10 %t43 = getelementptr inbounds { ptr, i64, i64 }, ptr %t42, i32 0, i32 1 %t44 = load { ptr, i64, i64 }, ptr %a17 @@ -20170,11 +20809,11 @@ ok1766: store i64 %t49, ptr %t43 %t52 = load ptr, ptr %a2 %t53 = icmp eq ptr %t52, null - br i1 %t53, label %panic1767, label %ok1768 -panic1767: - call void @finch_panic(ptr @.str.976, i64 647, ptr @.str.977) + br i1 %t53, label %panic1805, label %ok1806 +panic1805: + call void @finch_panic(ptr @.str.996, i64 695, ptr @.str.997) unreachable -ok1768: +ok1806: %t54 = getelementptr inbounds %S.ast.Node, ptr %t52, i32 0, i32 9 %t55 = getelementptr inbounds { ptr, i64, i64 }, ptr %t54, i32 0, i32 1 %t56 = load ptr, ptr %a1 @@ -20187,31 +20826,31 @@ ok1768: store %S.ast.Node %t57, ptr %t61 store i64 %t59, ptr %t55 %t62 = load ptr, ptr %a1 - %t63 = call i1 @finch.parser.accept(ptr %t62, { ptr, i64, i64 } { ptr @.str.978, i64 1, i64 0 }) + %t63 = call i1 @finch.parser.accept(ptr %t62, { ptr, i64, i64 } { ptr @.str.998, i64 1, i64 0 }) %t64 = xor i1 %t63, true - br i1 %t64, label %then1769, label %endif1771 -then1769: + br i1 %t64, label %then1807, label %endif1809 +then1807: call void @finch_str_drop(ptr %a17) - br label %while.end1757 -endif1771: + br label %while.end1795 +endif1809: call void @finch_str_drop(ptr %a17) - br label %while.cond1755 -while.end1757: - br label %endif1754 -endif1754: + br label %while.cond1793 +while.end1795: + br label %endif1792 +endif1792: %t65 = load ptr, ptr %a1 %t66 = icmp eq ptr %t65, null - br i1 %t66, label %panic1772, label %ok1773 -panic1772: - call void @finch_panic(ptr @.str.979, i64 653, ptr @.str.980) + br i1 %t66, label %panic1810, label %ok1811 +panic1810: + call void @finch_panic(ptr @.str.999, i64 701, ptr @.str.1000) unreachable -ok1773: +ok1811: %t67 = getelementptr inbounds %S.parser.Parser, ptr %t65, i32 0, i32 2 %t68 = load i64, ptr %t67 %t69 = sub i64 %t68, 1 store i64 %t69, ptr %t67 %t70 = load ptr, ptr %a1 - %t71 = call %S.lexer.Token @finch.parser.expect(ptr %t70, { ptr, i64, i64 } { ptr @.str.981, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.982, i64 3, i64 0 }) + %t71 = call %S.lexer.Token @finch.parser.expect(ptr %t70, { ptr, i64, i64 } { ptr @.str.1001, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.1002, i64 3, i64 0 }) store %S.lexer.Token %t71, ptr %a72 call void @finch.drop.S_lexer_Token(ptr %a72) ret void @@ -20246,25 +20885,25 @@ entry: %t2 = load ptr, ptr %a1 %t3 = call %S.ast.Node @finch.parser.parsePrimary(ptr %t2) store %S.ast.Node %t3, ptr %a4 - br label %while.cond1774 -while.cond1774: + br label %while.cond1812 +while.cond1812: %t5 = load ptr, ptr %a1 %t6 = call i1 @finch.parser.sameLine(ptr %t5) - br i1 %t6, label %while.body1775, label %while.end1776 -while.body1775: + br i1 %t6, label %while.body1813, label %while.end1814 +while.body1813: %t7 = load ptr, ptr %a1 - %t8 = call i1 @finch.parser.at(ptr %t7, { ptr, i64, i64 } { ptr @.str.983, i64 1, i64 0 }) - br i1 %t8, label %then1777, label %else1778 -then1777: + %t8 = call i1 @finch.parser.at(ptr %t7, { ptr, i64, i64 } { ptr @.str.1003, i64 1, i64 0 }) + br i1 %t8, label %then1815, label %else1816 +then1815: %t9 = load ptr, ptr %a1 - %t10 = call %S.ast.Node @finch.parser.node(ptr %t9, { ptr, i64, i64 } { ptr @.str.984, i64 6, i64 0 }) + %t10 = call %S.ast.Node @finch.parser.node(ptr %t9, { ptr, i64, i64 } { ptr @.str.1004, i64 6, i64 0 }) store %S.ast.Node %t10, ptr %a11 %t12 = load ptr, ptr %a1 %t13 = call %S.lexer.Token @finch.parser.next(ptr %t12) store %S.lexer.Token %t13, ptr %a14 call void @finch.drop.S_lexer_Token(ptr %a14) %t15 = load ptr, ptr %a1 - %t16 = call %S.lexer.Token @finch.parser.expect(ptr %t15, { ptr, i64, i64 } { ptr @.str.985, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.986, i64 16, i64 0 }) + %t16 = call %S.lexer.Token @finch.parser.expect(ptr %t15, { ptr, i64, i64 } { ptr @.str.1005, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.1006, i64 16, i64 0 }) %t17 = extractvalue %S.lexer.Token %t16, 1 store { ptr, i64, i64 } %t17, ptr %a18 call void @finch_str_copy(ptr %a19, ptr %a18) @@ -20290,33 +20929,33 @@ then1777: store %S.ast.Node %t30, ptr %t34 store i64 %t32, ptr %t26 %t35 = load ptr, ptr %a1 - %t36 = call i1 @finch.parser.at(ptr %t35, { ptr, i64, i64 } { ptr @.str.987, i64 1, i64 0 }) - br label %logic.from1780 -logic.from1780: - br i1 %t36, label %logic.rhs1781, label %logic.end1782 -logic.rhs1781: + %t36 = call i1 @finch.parser.at(ptr %t35, { ptr, i64, i64 } { ptr @.str.1007, i64 1, i64 0 }) + br label %logic.from1818 +logic.from1818: + br i1 %t36, label %logic.rhs1819, label %logic.end1820 +logic.rhs1819: %t37 = load ptr, ptr %a1 %t38 = call %S.lexer.Token @finch.parser.cur(ptr %t37) %t39 = extractvalue %S.lexer.Token %t38, 4 store %S.lexer.Token %t38, ptr %a40 call void @finch.drop.S_lexer_Token(ptr %a40) %t41 = xor i1 %t39, true - br label %logic.rend1783 -logic.rend1783: - br label %logic.end1782 -logic.end1782: - %t42 = phi i1 [ false, %logic.from1780 ], [ %t41, %logic.rend1783 ] - br i1 %t42, label %then1784, label %endif1786 -then1784: + br label %logic.rend1821 +logic.rend1821: + br label %logic.end1820 +logic.end1820: + %t42 = phi i1 [ false, %logic.from1818 ], [ %t41, %logic.rend1821 ] + br i1 %t42, label %then1822, label %endif1824 +then1822: %t43 = getelementptr inbounds %S.ast.Node, ptr %a11, i32 0, i32 0 %t44 = load { ptr, i64, i64 }, ptr %t43 - store { ptr, i64, i64 } { ptr @.str.988, i64 6, i64 0 }, ptr %t43 + store { ptr, i64, i64 } { ptr @.str.1008, i64 6, i64 0 }, ptr %t43 store { ptr, i64, i64 } %t44, ptr %a45 call void @finch_str_drop(ptr %a45) %t46 = load ptr, ptr %a1 call void @finch.parser.parseArgs(ptr %t46, ptr %a11) - br label %endif1786 -endif1786: + br label %endif1824 +endif1824: %t47 = load %S.ast.Node, ptr %a11 store %S.ast.Node %t47, ptr %a48 call void @finch.copy.S_ast_Node(ptr %a49, ptr %a48) @@ -20326,14 +20965,14 @@ endif1786: store %S.ast.Node %t51, ptr %a52 call void @finch.drop.S_ast_Node(ptr %a52) call void @finch.drop.S_ast_Node(ptr %a11) - br label %endif1779 -else1778: + br label %endif1817 +else1816: %t53 = load ptr, ptr %a1 - %t54 = call i1 @finch.parser.at(ptr %t53, { ptr, i64, i64 } { ptr @.str.989, i64 1, i64 0 }) - br i1 %t54, label %then1787, label %else1788 -then1787: + %t54 = call i1 @finch.parser.at(ptr %t53, { ptr, i64, i64 } { ptr @.str.1009, i64 1, i64 0 }) + br i1 %t54, label %then1825, label %else1826 +then1825: %t55 = load ptr, ptr %a1 - %t56 = call %S.ast.Node @finch.parser.node(ptr %t55, { ptr, i64, i64 } { ptr @.str.990, i64 5, i64 0 }) + %t56 = call %S.ast.Node @finch.parser.node(ptr %t55, { ptr, i64, i64 } { ptr @.str.1010, i64 5, i64 0 }) store %S.ast.Node %t56, ptr %a57 %t58 = load ptr, ptr %a1 %t59 = call %S.lexer.Token @finch.parser.next(ptr %t58) @@ -20341,11 +20980,11 @@ then1787: call void @finch.drop.S_lexer_Token(ptr %a60) %t61 = load ptr, ptr %a1 %t62 = icmp eq ptr %t61, null - br i1 %t62, label %panic1790, label %ok1791 -panic1790: - call void @finch_panic(ptr @.str.991, i64 673, ptr @.str.992) + br i1 %t62, label %panic1828, label %ok1829 +panic1828: + call void @finch_panic(ptr @.str.1011, i64 721, ptr @.str.1012) unreachable -ok1791: +ok1829: %t63 = getelementptr inbounds %S.parser.Parser, ptr %t61, i32 0, i32 2 %t64 = load i64, ptr %t63 %t65 = add i64 %t64, 1 @@ -20376,17 +21015,17 @@ ok1791: store i64 %t81, ptr %t77 %t84 = load ptr, ptr %a1 %t85 = icmp eq ptr %t84, null - br i1 %t85, label %panic1792, label %ok1793 -panic1792: - call void @finch_panic(ptr @.str.993, i64 676, ptr @.str.994) + br i1 %t85, label %panic1830, label %ok1831 +panic1830: + call void @finch_panic(ptr @.str.1013, i64 724, ptr @.str.1014) unreachable -ok1793: +ok1831: %t86 = getelementptr inbounds %S.parser.Parser, ptr %t84, i32 0, i32 2 %t87 = load i64, ptr %t86 %t88 = sub i64 %t87, 1 store i64 %t88, ptr %t86 %t89 = load ptr, ptr %a1 - %t90 = call %S.lexer.Token @finch.parser.expect(ptr %t89, { ptr, i64, i64 } { ptr @.str.995, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.996, i64 3, i64 0 }) + %t90 = call %S.lexer.Token @finch.parser.expect(ptr %t89, { ptr, i64, i64 } { ptr @.str.1015, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.1016, i64 3, i64 0 }) store %S.lexer.Token %t90, ptr %a91 call void @finch.drop.S_lexer_Token(ptr %a91) %t92 = load %S.ast.Node, ptr %a57 @@ -20398,15 +21037,15 @@ ok1793: store %S.ast.Node %t96, ptr %a97 call void @finch.drop.S_ast_Node(ptr %a97) call void @finch.drop.S_ast_Node(ptr %a57) - br label %endif1789 -else1788: + br label %endif1827 +else1826: %t98 = load %S.ast.Node, ptr %a4 ret %S.ast.Node %t98 -endif1789: - br label %endif1779 -endif1779: - br label %while.cond1774 -while.end1776: +endif1827: + br label %endif1817 +endif1817: + br label %while.cond1812 +while.end1814: %t99 = load %S.ast.Node, ptr %a4 ret %S.ast.Node %t99 } @@ -20502,7 +21141,7 @@ entry: %t3 = call %S.lexer.Token @finch.parser.cur(ptr %t2) store %S.lexer.Token %t3, ptr %a4 %t5 = load ptr, ptr %a1 - %t6 = call %S.ast.Node @finch.parser.node(ptr %t5, { ptr, i64, i64 } { ptr @.str.997, i64 0, i64 0 }) + %t6 = call %S.ast.Node @finch.parser.node(ptr %t5, { ptr, i64, i64 } { ptr @.str.1017, i64 0, i64 0 }) store %S.ast.Node %t6, ptr %a7 %t8 = getelementptr inbounds %S.lexer.Token, ptr %a4, i32 0, i32 0 %t9 = load { ptr, i64, i64 }, ptr %t8 @@ -20512,39 +21151,39 @@ entry: store { ptr, i64, i64 } %t12, ptr %a13 %t14 = load { ptr, i64, i64 }, ptr %a13 store { ptr, i64, i64 } %t14, ptr %a15 - store { ptr, i64, i64 } { ptr @.str.998, i64 3, i64 0 }, ptr %a16 + store { ptr, i64, i64 } { ptr @.str.1018, i64 3, i64 0 }, ptr %a16 %t17 = call i32 @finch_str_eq(ptr %a15, ptr %a16) %t18 = icmp ne i32 %t17, 0 - br label %logic.from1794 -logic.from1794: - br i1 %t18, label %logic.end1796, label %logic.rhs1795 -logic.rhs1795: + br label %logic.from1832 +logic.from1832: + br i1 %t18, label %logic.end1834, label %logic.rhs1833 +logic.rhs1833: %t19 = load { ptr, i64, i64 }, ptr %a13 store { ptr, i64, i64 } %t19, ptr %a20 - store { ptr, i64, i64 } { ptr @.str.999, i64 5, i64 0 }, ptr %a21 + store { ptr, i64, i64 } { ptr @.str.1019, i64 5, i64 0 }, ptr %a21 %t22 = call i32 @finch_str_eq(ptr %a20, ptr %a21) %t23 = icmp ne i32 %t22, 0 - br label %logic.rend1797 -logic.rend1797: - br label %logic.end1796 -logic.end1796: - %t24 = phi i1 [ true, %logic.from1794 ], [ %t23, %logic.rend1797 ] - br label %logic.from1798 -logic.from1798: - br i1 %t24, label %logic.end1800, label %logic.rhs1799 -logic.rhs1799: + br label %logic.rend1835 +logic.rend1835: + br label %logic.end1834 +logic.end1834: + %t24 = phi i1 [ true, %logic.from1832 ], [ %t23, %logic.rend1835 ] + br label %logic.from1836 +logic.from1836: + br i1 %t24, label %logic.end1838, label %logic.rhs1837 +logic.rhs1837: %t25 = load { ptr, i64, i64 }, ptr %a13 store { ptr, i64, i64 } %t25, ptr %a26 - store { ptr, i64, i64 } { ptr @.str.1000, i64 4, i64 0 }, ptr %a27 + store { ptr, i64, i64 } { ptr @.str.1020, i64 4, i64 0 }, ptr %a27 %t28 = call i32 @finch_str_eq(ptr %a26, ptr %a27) %t29 = icmp ne i32 %t28, 0 - br label %logic.rend1801 -logic.rend1801: - br label %logic.end1800 -logic.end1800: - %t30 = phi i1 [ true, %logic.from1798 ], [ %t29, %logic.rend1801 ] - br i1 %t30, label %then1802, label %endif1804 -then1802: + br label %logic.rend1839 +logic.rend1839: + br label %logic.end1838 +logic.end1838: + %t30 = phi i1 [ true, %logic.from1836 ], [ %t29, %logic.rend1839 ] + br i1 %t30, label %then1840, label %endif1842 +then1840: %t31 = load ptr, ptr %a1 %t32 = call %S.lexer.Token @finch.parser.next(ptr %t31) store %S.lexer.Token %t32, ptr %a33 @@ -20572,21 +21211,21 @@ then1802: call void @finch_str_drop(ptr %a13) call void @finch.drop.S_lexer_Token(ptr %a4) ret %S.ast.Node %t49 -endif1804: +endif1842: %t50 = load { ptr, i64, i64 }, ptr %a13 store { ptr, i64, i64 } %t50, ptr %a51 - store { ptr, i64, i64 } { ptr @.str.1001, i64 6, i64 0 }, ptr %a52 + store { ptr, i64, i64 } { ptr @.str.1021, i64 6, i64 0 }, ptr %a52 %t53 = call i32 @finch_str_eq(ptr %a51, ptr %a52) %t54 = icmp ne i32 %t53, 0 - br i1 %t54, label %then1805, label %endif1807 -then1805: + br i1 %t54, label %then1843, label %endif1845 +then1843: %t55 = load ptr, ptr %a1 %t56 = call %S.lexer.Token @finch.parser.next(ptr %t55) store %S.lexer.Token %t56, ptr %a57 call void @finch.drop.S_lexer_Token(ptr %a57) %t58 = getelementptr inbounds %S.ast.Node, ptr %a7, i32 0, i32 0 %t59 = load { ptr, i64, i64 }, ptr %t58 - store { ptr, i64, i64 } { ptr @.str.1002, i64 3, i64 0 }, ptr %t58 + store { ptr, i64, i64 } { ptr @.str.1022, i64 3, i64 0 }, ptr %t58 store { ptr, i64, i64 } %t59, ptr %a60 call void @finch_str_drop(ptr %a60) %t61 = getelementptr inbounds %S.lexer.Token, ptr %a4, i32 0, i32 1 @@ -20603,35 +21242,35 @@ then1805: call void @finch_str_drop(ptr %a13) call void @finch.drop.S_lexer_Token(ptr %a4) ret %S.ast.Node %t69 -endif1807: +endif1845: %t70 = load { ptr, i64, i64 }, ptr %a13 store { ptr, i64, i64 } %t70, ptr %a71 - store { ptr, i64, i64 } { ptr @.str.1003, i64 4, i64 0 }, ptr %a72 + store { ptr, i64, i64 } { ptr @.str.1023, i64 4, i64 0 }, ptr %a72 %t73 = call i32 @finch_str_eq(ptr %a71, ptr %a72) %t74 = icmp ne i32 %t73, 0 - br label %logic.from1808 -logic.from1808: - br i1 %t74, label %logic.end1810, label %logic.rhs1809 -logic.rhs1809: + br label %logic.from1846 +logic.from1846: + br i1 %t74, label %logic.end1848, label %logic.rhs1847 +logic.rhs1847: %t75 = load { ptr, i64, i64 }, ptr %a13 store { ptr, i64, i64 } %t75, ptr %a76 - store { ptr, i64, i64 } { ptr @.str.1004, i64 5, i64 0 }, ptr %a77 + store { ptr, i64, i64 } { ptr @.str.1024, i64 5, i64 0 }, ptr %a77 %t78 = call i32 @finch_str_eq(ptr %a76, ptr %a77) %t79 = icmp ne i32 %t78, 0 - br label %logic.rend1811 -logic.rend1811: - br label %logic.end1810 -logic.end1810: - %t80 = phi i1 [ true, %logic.from1808 ], [ %t79, %logic.rend1811 ] - br i1 %t80, label %then1812, label %endif1814 -then1812: + br label %logic.rend1849 +logic.rend1849: + br label %logic.end1848 +logic.end1848: + %t80 = phi i1 [ true, %logic.from1846 ], [ %t79, %logic.rend1849 ] + br i1 %t80, label %then1850, label %endif1852 +then1850: %t81 = load ptr, ptr %a1 %t82 = call %S.lexer.Token @finch.parser.next(ptr %t81) store %S.lexer.Token %t82, ptr %a83 call void @finch.drop.S_lexer_Token(ptr %a83) %t84 = getelementptr inbounds %S.ast.Node, ptr %a7, i32 0, i32 0 %t85 = load { ptr, i64, i64 }, ptr %t84 - store { ptr, i64, i64 } { ptr @.str.1005, i64 4, i64 0 }, ptr %t84 + store { ptr, i64, i64 } { ptr @.str.1025, i64 4, i64 0 }, ptr %t84 store { ptr, i64, i64 } %t85, ptr %a86 call void @finch_str_drop(ptr %a86) %t87 = load { ptr, i64, i64 }, ptr %a13 @@ -20647,46 +21286,46 @@ then1812: call void @finch_str_drop(ptr %a13) call void @finch.drop.S_lexer_Token(ptr %a4) ret %S.ast.Node %t94 -endif1814: +endif1852: %t95 = load { ptr, i64, i64 }, ptr %a13 store { ptr, i64, i64 } %t95, ptr %a96 - store { ptr, i64, i64 } { ptr @.str.1006, i64 4, i64 0 }, ptr %a97 + store { ptr, i64, i64 } { ptr @.str.1026, i64 4, i64 0 }, ptr %a97 %t98 = call i32 @finch_str_eq(ptr %a96, ptr %a97) %t99 = icmp ne i32 %t98, 0 - br i1 %t99, label %then1815, label %endif1817 -then1815: + br i1 %t99, label %then1853, label %endif1855 +then1853: %t100 = load ptr, ptr %a1 %t101 = call %S.lexer.Token @finch.parser.next(ptr %t100) store %S.lexer.Token %t101, ptr %a102 call void @finch.drop.S_lexer_Token(ptr %a102) %t103 = getelementptr inbounds %S.ast.Node, ptr %a7, i32 0, i32 0 %t104 = load { ptr, i64, i64 }, ptr %t103 - store { ptr, i64, i64 } { ptr @.str.1007, i64 4, i64 0 }, ptr %t103 + store { ptr, i64, i64 } { ptr @.str.1027, i64 4, i64 0 }, ptr %t103 store { ptr, i64, i64 } %t104, ptr %a105 call void @finch_str_drop(ptr %a105) %t106 = load %S.ast.Node, ptr %a7 call void @finch_str_drop(ptr %a13) call void @finch.drop.S_lexer_Token(ptr %a4) ret %S.ast.Node %t106 -endif1817: +endif1855: %t107 = load { ptr, i64, i64 }, ptr %a13 store { ptr, i64, i64 } %t107, ptr %a108 - store { ptr, i64, i64 } { ptr @.str.1008, i64 1, i64 0 }, ptr %a109 + store { ptr, i64, i64 } { ptr @.str.1028, i64 1, i64 0 }, ptr %a109 %t110 = call i32 @finch_str_eq(ptr %a108, ptr %a109) %t111 = icmp ne i32 %t110, 0 - br i1 %t111, label %then1818, label %endif1820 -then1818: + br i1 %t111, label %then1856, label %endif1858 +then1856: %t112 = load ptr, ptr %a1 %t113 = call %S.lexer.Token @finch.parser.next(ptr %t112) store %S.lexer.Token %t113, ptr %a114 call void @finch.drop.S_lexer_Token(ptr %a114) %t115 = load ptr, ptr %a1 %t116 = icmp eq ptr %t115, null - br i1 %t116, label %panic1821, label %ok1822 -panic1821: - call void @finch_panic(ptr @.str.1009, i64 715, ptr @.str.1010) + br i1 %t116, label %panic1859, label %ok1860 +panic1859: + call void @finch_panic(ptr @.str.1029, i64 763, ptr @.str.1030) unreachable -ok1822: +ok1860: %t117 = getelementptr inbounds %S.parser.Parser, ptr %t115, i32 0, i32 2 %t118 = load i64, ptr %t117 %t119 = add i64 %t118, 1 @@ -20696,17 +21335,17 @@ ok1822: store %S.ast.Node %t121, ptr %a122 %t123 = load ptr, ptr %a1 %t124 = icmp eq ptr %t123, null - br i1 %t124, label %panic1823, label %ok1824 -panic1823: - call void @finch_panic(ptr @.str.1011, i64 717, ptr @.str.1012) + br i1 %t124, label %panic1861, label %ok1862 +panic1861: + call void @finch_panic(ptr @.str.1031, i64 765, ptr @.str.1032) unreachable -ok1824: +ok1862: %t125 = getelementptr inbounds %S.parser.Parser, ptr %t123, i32 0, i32 2 %t126 = load i64, ptr %t125 %t127 = sub i64 %t126, 1 store i64 %t127, ptr %t125 %t128 = load ptr, ptr %a1 - %t129 = call %S.lexer.Token @finch.parser.expect(ptr %t128, { ptr, i64, i64 } { ptr @.str.1013, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.1014, i64 3, i64 0 }) + %t129 = call %S.lexer.Token @finch.parser.expect(ptr %t128, { ptr, i64, i64 } { ptr @.str.1033, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.1034, i64 3, i64 0 }) store %S.lexer.Token %t129, ptr %a130 call void @finch.drop.S_lexer_Token(ptr %a130) %t131 = load %S.ast.Node, ptr %a122 @@ -20714,87 +21353,87 @@ ok1824: call void @finch.drop.S_ast_Node(ptr %a7) call void @finch.drop.S_lexer_Token(ptr %a4) ret %S.ast.Node %t131 -endif1820: +endif1858: %t132 = load { ptr, i64, i64 }, ptr %a13 store { ptr, i64, i64 } %t132, ptr %a133 - store { ptr, i64, i64 } { ptr @.str.1015, i64 5, i64 0 }, ptr %a134 + store { ptr, i64, i64 } { ptr @.str.1035, i64 5, i64 0 }, ptr %a134 %t135 = call i32 @finch_str_eq(ptr %a133, ptr %a134) %t136 = icmp ne i32 %t135, 0 - br i1 %t136, label %then1825, label %endif1827 -then1825: + br i1 %t136, label %then1863, label %endif1865 +then1863: %t137 = load ptr, ptr %a1 %t138 = call %S.ast.Node @finch.parser.parseMatch(ptr %t137, i1 true) call void @finch_str_drop(ptr %a13) call void @finch.drop.S_ast_Node(ptr %a7) call void @finch.drop.S_lexer_Token(ptr %a4) ret %S.ast.Node %t138 -endif1827: +endif1865: %t139 = load { ptr, i64, i64 }, ptr %a13 store { ptr, i64, i64 } %t139, ptr %a140 - store { ptr, i64, i64 } { ptr @.str.1016, i64 1, i64 0 }, ptr %a141 + store { ptr, i64, i64 } { ptr @.str.1036, i64 1, i64 0 }, ptr %a141 %t142 = call i32 @finch_str_eq(ptr %a140, ptr %a141) %t143 = icmp ne i32 %t142, 0 - br i1 %t143, label %then1828, label %endif1830 -then1828: + br i1 %t143, label %then1866, label %endif1868 +then1866: %t144 = load ptr, ptr %a1 %t145 = call %S.lexer.Token @finch.parser.next(ptr %t144) store %S.lexer.Token %t145, ptr %a146 call void @finch.drop.S_lexer_Token(ptr %a146) %t147 = getelementptr inbounds %S.ast.Node, ptr %a7, i32 0, i32 0 %t148 = load { ptr, i64, i64 }, ptr %t147 - store { ptr, i64, i64 } { ptr @.str.1017, i64 5, i64 0 }, ptr %t147 + store { ptr, i64, i64 } { ptr @.str.1037, i64 5, i64 0 }, ptr %t147 store { ptr, i64, i64 } %t148, ptr %a149 call void @finch_str_drop(ptr %a149) %t150 = load ptr, ptr %a1 %t151 = icmp eq ptr %t150, null - br i1 %t151, label %panic1831, label %ok1832 -panic1831: - call void @finch_panic(ptr @.str.1018, i64 727, ptr @.str.1019) + br i1 %t151, label %panic1869, label %ok1870 +panic1869: + call void @finch_panic(ptr @.str.1038, i64 775, ptr @.str.1039) unreachable -ok1832: +ok1870: %t152 = getelementptr inbounds %S.parser.Parser, ptr %t150, i32 0, i32 2 %t153 = load i64, ptr %t152 %t154 = add i64 %t153, 1 store i64 %t154, ptr %t152 %t155 = load ptr, ptr %a1 - %t156 = call i1 @finch.parser.at(ptr %t155, { ptr, i64, i64 } { ptr @.str.1020, i64 1, i64 0 }) - br label %logic.from1833 -logic.from1833: - br i1 %t156, label %logic.rhs1834, label %logic.end1835 -logic.rhs1834: + %t156 = call i1 @finch.parser.at(ptr %t155, { ptr, i64, i64 } { ptr @.str.1040, i64 1, i64 0 }) + br label %logic.from1871 +logic.from1871: + br i1 %t156, label %logic.rhs1872, label %logic.end1873 +logic.rhs1872: %t157 = load ptr, ptr %a1 %t158 = call { ptr, i64, i64 } @finch.parser.peekKind(ptr %t157, i64 1) store { ptr, i64, i64 } %t158, ptr %a159 - store { ptr, i64, i64 } { ptr @.str.1021, i64 1, i64 0 }, ptr %a160 + store { ptr, i64, i64 } { ptr @.str.1041, i64 1, i64 0 }, ptr %a160 %t161 = call i32 @finch_str_eq(ptr %a159, ptr %a160) %t162 = icmp ne i32 %t161, 0 store { ptr, i64, i64 } %t158, ptr %a163 call void @finch_str_drop(ptr %a163) - br label %logic.rend1836 -logic.rend1836: - br label %logic.end1835 -logic.end1835: - %t164 = phi i1 [ false, %logic.from1833 ], [ %t162, %logic.rend1836 ] - br i1 %t164, label %then1837, label %endif1839 -then1837: + br label %logic.rend1874 +logic.rend1874: + br label %logic.end1873 +logic.end1873: + %t164 = phi i1 [ false, %logic.from1871 ], [ %t162, %logic.rend1874 ] + br i1 %t164, label %then1875, label %endif1877 +then1875: %t165 = load ptr, ptr %a1 %t166 = call %S.lexer.Token @finch.parser.next(ptr %t165) store %S.lexer.Token %t166, ptr %a167 call void @finch.drop.S_lexer_Token(ptr %a167) %t168 = getelementptr inbounds %S.ast.Node, ptr %a7, i32 0, i32 0 %t169 = load { ptr, i64, i64 }, ptr %t168 - store { ptr, i64, i64 } { ptr @.str.1022, i64 3, i64 0 }, ptr %t168 + store { ptr, i64, i64 } { ptr @.str.1042, i64 3, i64 0 }, ptr %t168 store { ptr, i64, i64 } %t169, ptr %a170 call void @finch_str_drop(ptr %a170) - br label %endif1839 -endif1839: - br label %while.cond1840 -while.cond1840: + br label %endif1877 +endif1877: + br label %while.cond1878 +while.cond1878: %t171 = load ptr, ptr %a1 - %t172 = call i1 @finch.parser.at(ptr %t171, { ptr, i64, i64 } { ptr @.str.1023, i64 1, i64 0 }) + %t172 = call i1 @finch.parser.at(ptr %t171, { ptr, i64, i64 } { ptr @.str.1043, i64 1, i64 0 }) %t173 = xor i1 %t172, true - br i1 %t173, label %while.body1841, label %while.end1842 -while.body1841: + br i1 %t173, label %while.body1879, label %while.end1880 +while.body1879: %t174 = getelementptr inbounds %S.ast.Node, ptr %a7, i32 0, i32 9 %t175 = getelementptr inbounds { ptr, i64, i64 }, ptr %t174, i32 0, i32 1 %t176 = load ptr, ptr %a1 @@ -20810,36 +21449,36 @@ while.body1841: %t183 = getelementptr inbounds { ptr, i64, i64 }, ptr %t182, i32 0, i32 1 %t184 = load i64, ptr %t183 %t185 = icmp eq i64 %t184, 1 - br label %logic.from1843 -logic.from1843: - br i1 %t185, label %logic.rhs1844, label %logic.end1845 -logic.rhs1844: + br label %logic.from1881 +logic.from1881: + br i1 %t185, label %logic.rhs1882, label %logic.end1883 +logic.rhs1882: %t186 = load ptr, ptr %a1 - %t187 = call i1 @finch.parser.at(ptr %t186, { ptr, i64, i64 } { ptr @.str.1024, i64 1, i64 0 }) - br label %logic.rend1846 -logic.rend1846: - br label %logic.end1845 -logic.end1845: - %t188 = phi i1 [ false, %logic.from1843 ], [ %t187, %logic.rend1846 ] - br i1 %t188, label %then1847, label %endif1849 -then1847: + %t187 = call i1 @finch.parser.at(ptr %t186, { ptr, i64, i64 } { ptr @.str.1044, i64 1, i64 0 }) + br label %logic.rend1884 +logic.rend1884: + br label %logic.end1883 +logic.end1883: + %t188 = phi i1 [ false, %logic.from1881 ], [ %t187, %logic.rend1884 ] + br i1 %t188, label %then1885, label %endif1887 +then1885: %t189 = getelementptr inbounds %S.ast.Node, ptr %a7, i32 0, i32 0 %t190 = load { ptr, i64, i64 }, ptr %t189 - store { ptr, i64, i64 } { ptr @.str.1025, i64 3, i64 0 }, ptr %t189 + store { ptr, i64, i64 } { ptr @.str.1045, i64 3, i64 0 }, ptr %t189 store { ptr, i64, i64 } %t190, ptr %a191 call void @finch_str_drop(ptr %a191) - br label %endif1849 -endif1849: + br label %endif1887 +endif1887: %t192 = getelementptr inbounds %S.ast.Node, ptr %a7, i32 0, i32 0 %t193 = load { ptr, i64, i64 }, ptr %t192 store { ptr, i64, i64 } %t193, ptr %a194 - store { ptr, i64, i64 } { ptr @.str.1026, i64 3, i64 0 }, ptr %a195 + store { ptr, i64, i64 } { ptr @.str.1046, i64 3, i64 0 }, ptr %a195 %t196 = call i32 @finch_str_eq(ptr %a194, ptr %a195) %t197 = icmp ne i32 %t196, 0 - br i1 %t197, label %then1850, label %endif1852 -then1850: + br i1 %t197, label %then1888, label %endif1890 +then1888: %t198 = load ptr, ptr %a1 - %t199 = call %S.lexer.Token @finch.parser.expect(ptr %t198, { ptr, i64, i64 } { ptr @.str.1027, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.1028, i64 41, i64 0 }) + %t199 = call %S.lexer.Token @finch.parser.expect(ptr %t198, { ptr, i64, i64 } { ptr @.str.1047, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.1048, i64 41, i64 0 }) store %S.lexer.Token %t199, ptr %a200 call void @finch.drop.S_lexer_Token(ptr %a200) %t201 = getelementptr inbounds %S.ast.Node, ptr %a7, i32 0, i32 9 @@ -20853,44 +21492,44 @@ then1850: %t208 = getelementptr inbounds %S.ast.Node, ptr %t207, i64 %t205 store %S.ast.Node %t204, ptr %t208 store i64 %t206, ptr %t202 - br label %endif1852 -endif1852: + br label %endif1890 +endif1890: %t209 = load ptr, ptr %a1 - %t210 = call i1 @finch.parser.accept(ptr %t209, { ptr, i64, i64 } { ptr @.str.1029, i64 1, i64 0 }) + %t210 = call i1 @finch.parser.accept(ptr %t209, { ptr, i64, i64 } { ptr @.str.1049, i64 1, i64 0 }) %t211 = xor i1 %t210, true - br i1 %t211, label %then1853, label %endif1855 -then1853: - br label %while.end1842 -endif1855: - br label %while.cond1840 -while.end1842: + br i1 %t211, label %then1891, label %endif1893 +then1891: + br label %while.end1880 +endif1893: + br label %while.cond1878 +while.end1880: %t212 = load ptr, ptr %a1 %t213 = icmp eq ptr %t212, null - br i1 %t213, label %panic1856, label %ok1857 -panic1856: - call void @finch_panic(ptr @.str.1030, i64 745, ptr @.str.1031) + br i1 %t213, label %panic1894, label %ok1895 +panic1894: + call void @finch_panic(ptr @.str.1050, i64 793, ptr @.str.1051) unreachable -ok1857: +ok1895: %t214 = getelementptr inbounds %S.parser.Parser, ptr %t212, i32 0, i32 2 %t215 = load i64, ptr %t214 %t216 = sub i64 %t215, 1 store i64 %t216, ptr %t214 %t217 = load ptr, ptr %a1 - %t218 = call %S.lexer.Token @finch.parser.expect(ptr %t217, { ptr, i64, i64 } { ptr @.str.1032, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.1033, i64 3, i64 0 }) + %t218 = call %S.lexer.Token @finch.parser.expect(ptr %t217, { ptr, i64, i64 } { ptr @.str.1052, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.1053, i64 3, i64 0 }) store %S.lexer.Token %t218, ptr %a219 call void @finch.drop.S_lexer_Token(ptr %a219) %t220 = load %S.ast.Node, ptr %a7 call void @finch_str_drop(ptr %a13) call void @finch.drop.S_lexer_Token(ptr %a4) ret %S.ast.Node %t220 -endif1830: +endif1868: %t221 = load { ptr, i64, i64 }, ptr %a13 store { ptr, i64, i64 } %t221, ptr %a222 - store { ptr, i64, i64 } { ptr @.str.1034, i64 5, i64 0 }, ptr %a223 + store { ptr, i64, i64 } { ptr @.str.1054, i64 5, i64 0 }, ptr %a223 %t224 = call i32 @finch_str_eq(ptr %a222, ptr %a223) %t225 = icmp ne i32 %t224, 0 - br i1 %t225, label %then1858, label %endif1860 -then1858: + br i1 %t225, label %then1896, label %endif1898 +then1896: %t226 = load ptr, ptr %a1 %t227 = call %S.lexer.Token @finch.parser.next(ptr %t226) store %S.lexer.Token %t227, ptr %a228 @@ -20906,77 +21545,77 @@ then1858: store { ptr, i64, i64 } %t235, ptr %a236 call void @finch_str_drop(ptr %a236) %t237 = load ptr, ptr %a1 - %t238 = call i1 @finch.parser.at(ptr %t237, { ptr, i64, i64 } { ptr @.str.1035, i64 1, i64 0 }) - br label %logic.from1861 -logic.from1861: - br i1 %t238, label %logic.rhs1862, label %logic.end1863 -logic.rhs1862: + %t238 = call i1 @finch.parser.at(ptr %t237, { ptr, i64, i64 } { ptr @.str.1055, i64 1, i64 0 }) + br label %logic.from1899 +logic.from1899: + br i1 %t238, label %logic.rhs1900, label %logic.end1901 +logic.rhs1900: %t239 = load ptr, ptr %a1 %t240 = icmp eq ptr %t239, null - br i1 %t240, label %panic1864, label %ok1865 -panic1864: - call void @finch_panic(ptr @.str.1036, i64 752, ptr @.str.1037) + br i1 %t240, label %panic1902, label %ok1903 +panic1902: + call void @finch_panic(ptr @.str.1056, i64 800, ptr @.str.1057) unreachable -ok1865: +ok1903: %t241 = getelementptr inbounds %S.parser.Parser, ptr %t239, i32 0, i32 0 %t242 = load ptr, ptr %a1 %t243 = icmp eq ptr %t242, null - br i1 %t243, label %panic1866, label %ok1867 -panic1866: - call void @finch_panic(ptr @.str.1038, i64 752, ptr @.str.1039) + br i1 %t243, label %panic1904, label %ok1905 +panic1904: + call void @finch_panic(ptr @.str.1058, i64 800, ptr @.str.1059) unreachable -ok1867: +ok1905: %t244 = getelementptr inbounds %S.parser.Parser, ptr %t242, i32 0, i32 1 %t245 = load i64, ptr %t244 %t246 = sub i64 %t245, 1 %t247 = load { ptr, i64, i64 }, ptr %t241 %t248 = extractvalue { ptr, i64, i64 } %t247, 1 %t249 = icmp uge i64 %t246, %t248 - br i1 %t249, label %range1868, label %inrange1869 -range1868: - call void @finch_panic_index(ptr @.str.1040, i64 752, i64 %t246, i64 %t248) + br i1 %t249, label %range1906, label %inrange1907 +range1906: + call void @finch_panic_index(ptr @.str.1060, i64 800, i64 %t246, i64 %t248) unreachable -inrange1869: +inrange1907: %t250 = extractvalue { ptr, i64, i64 } %t247, 0 %t251 = getelementptr inbounds %S.lexer.Token, ptr %t250, i64 %t246 %t252 = getelementptr inbounds %S.lexer.Token, ptr %t251, i32 0, i32 0 %t253 = load { ptr, i64, i64 }, ptr %t252 store { ptr, i64, i64 } %t253, ptr %a254 - store { ptr, i64, i64 } { ptr @.str.1041, i64 5, i64 0 }, ptr %a255 + store { ptr, i64, i64 } { ptr @.str.1061, i64 5, i64 0 }, ptr %a255 %t256 = call i32 @finch_str_eq(ptr %a254, ptr %a255) %t257 = icmp ne i32 %t256, 0 - br label %logic.rend1870 -logic.rend1870: - br label %logic.end1863 -logic.end1863: - %t258 = phi i1 [ false, %logic.from1861 ], [ %t257, %logic.rend1870 ] - br label %logic.from1871 -logic.from1871: - br i1 %t258, label %logic.rhs1872, label %logic.end1873 -logic.rhs1872: + br label %logic.rend1908 +logic.rend1908: + br label %logic.end1901 +logic.end1901: + %t258 = phi i1 [ false, %logic.from1899 ], [ %t257, %logic.rend1908 ] + br label %logic.from1909 +logic.from1909: + br i1 %t258, label %logic.rhs1910, label %logic.end1911 +logic.rhs1910: %t259 = load ptr, ptr %a1 %t260 = call i1 @finch.parser.genericCallAheadFrom(ptr %t259) - br label %logic.rend1874 -logic.rend1874: - br label %logic.end1873 -logic.end1873: - %t261 = phi i1 [ false, %logic.from1871 ], [ %t260, %logic.rend1874 ] - br i1 %t261, label %then1875, label %endif1877 -then1875: + br label %logic.rend1912 +logic.rend1912: + br label %logic.end1911 +logic.end1911: + %t261 = phi i1 [ false, %logic.from1909 ], [ %t260, %logic.rend1912 ] + br i1 %t261, label %then1913, label %endif1915 +then1913: %t262 = load ptr, ptr %a1 %t263 = call %S.lexer.Token @finch.parser.next(ptr %t262) store %S.lexer.Token %t263, ptr %a264 call void @finch.drop.S_lexer_Token(ptr %a264) - %t265 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.1042, i64 5, i64 0 }, 0 + %t265 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.1062, i64 5, i64 0 }, 0 %t266 = getelementptr inbounds %S.ast.Node, ptr %a7, i32 0, i32 5 %t267 = load %S.ast.Type, ptr %t266 store %S.ast.Type %t265, ptr %t266 store %S.ast.Type %t267, ptr %a268 call void @finch.drop.S_ast_Type(ptr %a268) - br label %while.cond1878 -while.cond1878: - br label %while.body1879 -while.body1879: + br label %while.cond1916 +while.cond1916: + br label %while.body1917 +while.body1917: %t269 = getelementptr inbounds %S.ast.Node, ptr %a7, i32 0, i32 5 %t270 = getelementptr inbounds %S.ast.Type, ptr %t269, i32 0, i32 1 %t271 = getelementptr inbounds { ptr, i64, i64 }, ptr %t270, i32 0, i32 1 @@ -20990,21 +21629,21 @@ while.body1879: store %S.ast.Type %t273, ptr %t277 store i64 %t275, ptr %t271 %t278 = load ptr, ptr %a1 - %t279 = call i1 @finch.parser.accept(ptr %t278, { ptr, i64, i64 } { ptr @.str.1043, i64 1, i64 0 }) + %t279 = call i1 @finch.parser.accept(ptr %t278, { ptr, i64, i64 } { ptr @.str.1063, i64 1, i64 0 }) %t280 = xor i1 %t279, true - br i1 %t280, label %then1881, label %endif1883 -then1881: - br label %while.end1880 -endif1883: - br label %while.cond1878 -while.end1880: + br i1 %t280, label %then1919, label %endif1921 +then1919: + br label %while.end1918 +endif1921: + br label %while.cond1916 +while.end1918: %t281 = load ptr, ptr %a1 - %t282 = call %S.lexer.Token @finch.parser.expect(ptr %t281, { ptr, i64, i64 } { ptr @.str.1044, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.1045, i64 28, i64 0 }) + %t282 = call %S.lexer.Token @finch.parser.expect(ptr %t281, { ptr, i64, i64 } { ptr @.str.1064, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.1065, i64 28, i64 0 }) store %S.lexer.Token %t282, ptr %a283 call void @finch.drop.S_lexer_Token(ptr %a283) %t284 = getelementptr inbounds %S.ast.Node, ptr %a7, i32 0, i32 0 %t285 = load { ptr, i64, i64 }, ptr %t284 - store { ptr, i64, i64 } { ptr @.str.1046, i64 4, i64 0 }, ptr %t284 + store { ptr, i64, i64 } { ptr @.str.1066, i64 4, i64 0 }, ptr %t284 store { ptr, i64, i64 } %t285, ptr %a286 call void @finch_str_drop(ptr %a286) %t287 = load ptr, ptr %a1 @@ -21013,29 +21652,29 @@ while.end1880: call void @finch_str_drop(ptr %a13) call void @finch.drop.S_lexer_Token(ptr %a4) ret %S.ast.Node %t288 -endif1877: +endif1915: %t289 = load ptr, ptr %a1 - %t290 = call i1 @finch.parser.at(ptr %t289, { ptr, i64, i64 } { ptr @.str.1047, i64 1, i64 0 }) - br label %logic.from1884 -logic.from1884: - br i1 %t290, label %logic.rhs1885, label %logic.end1886 -logic.rhs1885: + %t290 = call i1 @finch.parser.at(ptr %t289, { ptr, i64, i64 } { ptr @.str.1067, i64 1, i64 0 }) + br label %logic.from1922 +logic.from1922: + br i1 %t290, label %logic.rhs1923, label %logic.end1924 +logic.rhs1923: %t291 = load ptr, ptr %a1 %t292 = call %S.lexer.Token @finch.parser.cur(ptr %t291) %t293 = extractvalue %S.lexer.Token %t292, 4 store %S.lexer.Token %t292, ptr %a294 call void @finch.drop.S_lexer_Token(ptr %a294) %t295 = xor i1 %t293, true - br label %logic.rend1887 -logic.rend1887: - br label %logic.end1886 -logic.end1886: - %t296 = phi i1 [ false, %logic.from1884 ], [ %t295, %logic.rend1887 ] - br i1 %t296, label %then1888, label %endif1890 -then1888: + br label %logic.rend1925 +logic.rend1925: + br label %logic.end1924 +logic.end1924: + %t296 = phi i1 [ false, %logic.from1922 ], [ %t295, %logic.rend1925 ] + br i1 %t296, label %then1926, label %endif1928 +then1926: %t297 = getelementptr inbounds %S.ast.Node, ptr %a7, i32 0, i32 0 %t298 = load { ptr, i64, i64 }, ptr %t297 - store { ptr, i64, i64 } { ptr @.str.1048, i64 4, i64 0 }, ptr %t297 + store { ptr, i64, i64 } { ptr @.str.1068, i64 4, i64 0 }, ptr %t297 store { ptr, i64, i64 } %t298, ptr %a299 call void @finch_str_drop(ptr %a299) %t300 = load ptr, ptr %a1 @@ -21044,29 +21683,29 @@ then1888: call void @finch_str_drop(ptr %a13) call void @finch.drop.S_lexer_Token(ptr %a4) ret %S.ast.Node %t301 -endif1890: +endif1928: %t302 = getelementptr inbounds %S.ast.Node, ptr %a7, i32 0, i32 0 %t303 = load { ptr, i64, i64 }, ptr %t302 - store { ptr, i64, i64 } { ptr @.str.1049, i64 3, i64 0 }, ptr %t302 + store { ptr, i64, i64 } { ptr @.str.1069, i64 3, i64 0 }, ptr %t302 store { ptr, i64, i64 } %t303, ptr %a304 call void @finch_str_drop(ptr %a304) %t305 = load %S.ast.Node, ptr %a7 call void @finch_str_drop(ptr %a13) call void @finch.drop.S_lexer_Token(ptr %a4) ret %S.ast.Node %t305 -endif1860: +endif1898: %t306 = load ptr, ptr %a1 %t307 = load %S.lexer.Token, ptr %a4 %t308 = load %S.lexer.Token, ptr %a4 %t309 = call { ptr, i64, i64 } @finch.parser.describe(%S.lexer.Token %t308) - store { ptr, i64, i64 } { ptr @.str.1050, i64 11, i64 0 }, ptr %a311 + store { ptr, i64, i64 } { ptr @.str.1070, i64 11, i64 0 }, ptr %a311 store { ptr, i64, i64 } %t309, ptr %a312 call void @finch_str_concat(ptr %a310, ptr %a311, ptr %a312) store { ptr, i64, i64 } %t309, ptr %a313 call void @finch_str_drop(ptr %a313) %t314 = load { ptr, i64, i64 }, ptr %a310 store { ptr, i64, i64 } %t314, ptr %a316 - store { ptr, i64, i64 } { ptr @.str.1051, i64 19, i64 0 }, ptr %a317 + store { ptr, i64, i64 } { ptr @.str.1071, i64 19, i64 0 }, ptr %a317 call void @finch_str_concat(ptr %a315, ptr %a316, ptr %a317) store { ptr, i64, i64 } %t314, ptr %a318 call void @finch_str_drop(ptr %a318) @@ -21089,20 +21728,20 @@ entry: %t3 = getelementptr inbounds { ptr, i64, i64 }, ptr %src, i32 0, i32 1 %t4 = load i64, ptr %t3 store i64 0, ptr %a5 - br label %n.cond1891 -n.cond1891: + br label %n.cond1929 +n.cond1929: %t6 = load i64, ptr %a5 %t7 = icmp slt i64 %t6, %t4 - br i1 %t7, label %n.body1892, label %n.end1893 -n.body1892: + br i1 %t7, label %n.body1930, label %n.end1931 +n.body1930: %t8 = getelementptr inbounds %S.lexer.Token, ptr %t1, i64 %t6 %t9 = getelementptr inbounds %S.lexer.Token, ptr %t2, i64 %t6 call void @finch.copy.S_lexer_Token(ptr %t8, ptr %t9) %t10 = load i64, ptr %a5 %t11 = add i64 %t10, 1 store i64 %t11, ptr %a5 - br label %n.cond1891 -n.end1893: + br label %n.cond1929 +n.end1931: ret void } @@ -21169,20 +21808,20 @@ entry: store { ptr, i64, i64 } %p0, ptr %a1 %t2 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t2, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.1053, i64 1, i64 0 }, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.1054, i64 2, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.1073, i64 1, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.1074, i64 2, i64 0 }, ptr %a6 call void @finch_str_replace(ptr %a4, ptr %a3, ptr %a5, ptr %a6) %t7 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t7, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.1056, i64 1, i64 0 }, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.1057, i64 2, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.1076, i64 1, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.1077, i64 2, i64 0 }, ptr %a11 call void @finch_str_replace(ptr %a9, ptr %a8, ptr %a10, ptr %a11) %t12 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t7, ptr %a13 call void @finch_str_drop(ptr %a13) store { ptr, i64, i64 } %t12, ptr %a14 - store { ptr, i64, i64 } { ptr @.str.1059, i64 1, i64 0 }, ptr %a16 - store { ptr, i64, i64 } { ptr @.str.1060, i64 1, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.1079, i64 1, i64 0 }, ptr %a16 + store { ptr, i64, i64 } { ptr @.str.1080, i64 1, i64 0 }, ptr %a17 call void @finch_str_replace(ptr %a15, ptr %a14, ptr %a16, ptr %a17) %t18 = load { ptr, i64, i64 }, ptr %a15 store { ptr, i64, i64 } %t12, ptr %a19 @@ -21280,54 +21919,54 @@ entry: store i64 %p7, ptr %a8 %t9 = load ptr, ptr %a1 %t10 = icmp eq ptr %t9, null - br i1 %t10, label %panic1894, label %ok1895 -panic1894: - call void @finch_panic(ptr @.str.1061, i64 215, ptr @.str.1062) + br i1 %t10, label %panic1932, label %ok1933 +panic1932: + call void @finch_panic(ptr @.str.1081, i64 232, ptr @.str.1082) unreachable -ok1895: - %t11 = getelementptr inbounds %S.gen.Gen, ptr %t9, i32 0, i32 27 +ok1933: + %t11 = getelementptr inbounds %S.gen.Gen, ptr %t9, i32 0, i32 28 %t12 = load i1, ptr %t11 %t13 = xor i1 %t12, true - br i1 %t13, label %then1896, label %endif1898 -then1896: + br i1 %t13, label %then1934, label %endif1936 +then1934: ret void -endif1898: +endif1936: %t14 = load ptr, ptr %a1 %t15 = icmp eq ptr %t14, null - br i1 %t15, label %panic1899, label %ok1900 -panic1899: - call void @finch_panic(ptr @.str.1063, i64 218, ptr @.str.1064) + br i1 %t15, label %panic1937, label %ok1938 +panic1937: + call void @finch_panic(ptr @.str.1083, i64 235, ptr @.str.1084) unreachable -ok1900: - %t16 = getelementptr inbounds %S.gen.Gen, ptr %t14, i32 0, i32 28 +ok1938: + %t16 = getelementptr inbounds %S.gen.Gen, ptr %t14, i32 0, i32 29 %t17 = getelementptr inbounds { ptr, i64, i64 }, ptr %t16, i32 0, i32 1 %t18 = load ptr, ptr %a1 %t19 = icmp eq ptr %t18, null - br i1 %t19, label %panic1901, label %ok1902 -panic1901: - call void @finch_panic(ptr @.str.1066, i64 218, ptr @.str.1067) + br i1 %t19, label %panic1939, label %ok1940 +panic1939: + call void @finch_panic(ptr @.str.1086, i64 235, ptr @.str.1087) unreachable -ok1902: +ok1940: %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 1 %t21 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 13 %t22 = load i64, ptr %t21 %t23 = load { ptr, i64, i64 }, ptr %t20 %t24 = extractvalue { ptr, i64, i64 } %t23, 1 %t25 = icmp uge i64 %t22, %t24 - br i1 %t25, label %range1903, label %inrange1904 -range1903: - call void @finch_panic_index(ptr @.str.1068, i64 218, i64 %t22, i64 %t24) + br i1 %t25, label %range1941, label %inrange1942 +range1941: + call void @finch_panic_index(ptr @.str.1088, i64 235, i64 %t22, i64 %t24) unreachable -inrange1904: +inrange1942: %t26 = extractvalue { ptr, i64, i64 } %t23, 0 %t27 = getelementptr inbounds { ptr, i64, i64 }, ptr %t26, i64 %t22 %t28 = load { ptr, i64, i64 }, ptr %t27 - store { ptr, i64, i64 } { ptr @.str.1065, i64 3, i64 0 }, ptr %a30 + store { ptr, i64, i64 } { ptr @.str.1085, i64 3, i64 0 }, ptr %a30 store { ptr, i64, i64 } %t28, ptr %a31 call void @finch_str_concat(ptr %a29, ptr %a30, ptr %a31) %t32 = load { ptr, i64, i64 }, ptr %a29 store { ptr, i64, i64 } %t32, ptr %a34 - store { ptr, i64, i64 } { ptr @.str.1069, i64 1, i64 0 }, ptr %a35 + store { ptr, i64, i64 } { ptr @.str.1089, i64 1, i64 0 }, ptr %a35 call void @finch_str_concat(ptr %a33, ptr %a34, ptr %a35) store { ptr, i64, i64 } %t32, ptr %a36 call void @finch_str_drop(ptr %a36) @@ -21345,7 +21984,7 @@ inrange1904: call void @finch_str_drop(ptr %a46) %t47 = load { ptr, i64, i64 }, ptr %a42 store { ptr, i64, i64 } %t47, ptr %a49 - store { ptr, i64, i64 } { ptr @.str.1070, i64 1, i64 0 }, ptr %a50 + store { ptr, i64, i64 } { ptr @.str.1090, i64 1, i64 0 }, ptr %a50 call void @finch_str_concat(ptr %a48, ptr %a49, ptr %a50) store { ptr, i64, i64 } %t47, ptr %a51 call void @finch_str_drop(ptr %a51) @@ -21362,7 +22001,7 @@ inrange1904: call void @finch_str_drop(ptr %a60) %t61 = load { ptr, i64, i64 }, ptr %a56 store { ptr, i64, i64 } %t61, ptr %a63 - store { ptr, i64, i64 } { ptr @.str.1071, i64 1, i64 0 }, ptr %a64 + store { ptr, i64, i64 } { ptr @.str.1091, i64 1, i64 0 }, ptr %a64 call void @finch_str_concat(ptr %a62, ptr %a63, ptr %a64) store { ptr, i64, i64 } %t61, ptr %a65 call void @finch_str_drop(ptr %a65) @@ -21379,7 +22018,7 @@ inrange1904: call void @finch_str_drop(ptr %a74) %t75 = load { ptr, i64, i64 }, ptr %a70 store { ptr, i64, i64 } %t75, ptr %a77 - store { ptr, i64, i64 } { ptr @.str.1072, i64 1, i64 0 }, ptr %a78 + store { ptr, i64, i64 } { ptr @.str.1092, i64 1, i64 0 }, ptr %a78 call void @finch_str_concat(ptr %a76, ptr %a77, ptr %a78) store { ptr, i64, i64 } %t75, ptr %a79 call void @finch_str_drop(ptr %a79) @@ -21392,7 +22031,7 @@ inrange1904: call void @finch_str_drop(ptr %a85) %t86 = load { ptr, i64, i64 }, ptr %a82 store { ptr, i64, i64 } %t86, ptr %a88 - store { ptr, i64, i64 } { ptr @.str.1073, i64 1, i64 0 }, ptr %a89 + store { ptr, i64, i64 } { ptr @.str.1093, i64 1, i64 0 }, ptr %a89 call void @finch_str_concat(ptr %a87, ptr %a88, ptr %a89) store { ptr, i64, i64 } %t86, ptr %a90 call void @finch_str_drop(ptr %a90) @@ -21409,7 +22048,7 @@ inrange1904: call void @finch_str_drop(ptr %a99) %t100 = load { ptr, i64, i64 }, ptr %a95 store { ptr, i64, i64 } %t100, ptr %a102 - store { ptr, i64, i64 } { ptr @.str.1074, i64 1, i64 0 }, ptr %a103 + store { ptr, i64, i64 } { ptr @.str.1094, i64 1, i64 0 }, ptr %a103 call void @finch_str_concat(ptr %a101, ptr %a102, ptr %a103) store { ptr, i64, i64 } %t100, ptr %a104 call void @finch_str_drop(ptr %a104) @@ -21426,7 +22065,7 @@ inrange1904: call void @finch_str_drop(ptr %a113) %t114 = load { ptr, i64, i64 }, ptr %a109 store { ptr, i64, i64 } %t114, ptr %a116 - store { ptr, i64, i64 } { ptr @.str.1075, i64 1, i64 0 }, ptr %a117 + store { ptr, i64, i64 } { ptr @.str.1095, i64 1, i64 0 }, ptr %a117 call void @finch_str_concat(ptr %a115, ptr %a116, ptr %a117) store { ptr, i64, i64 } %t114, ptr %a118 call void @finch_str_drop(ptr %a118) @@ -21530,29 +22169,29 @@ entry: %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i32 0, i32 1 %t5 = load i64, ptr %t4 store i64 0, ptr %a6 - br label %for.cond1905 -for.cond1905: + br label %for.cond1943 +for.cond1943: %t7 = load i64, ptr %a6 %t8 = icmp slt i64 %t7, %t5 - br i1 %t8, label %for.body1906, label %for.end1908 -for.body1906: + br i1 %t8, label %for.body1944, label %for.end1946 +for.body1944: %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t10 = getelementptr inbounds %S.gen.FnSig, ptr %a1, i32 0, i32 13 %t11 = load i64, ptr %a6 %t12 = load { ptr, i64, i64 }, ptr %t10 %t13 = extractvalue { ptr, i64, i64 } %t12, 1 %t14 = icmp uge i64 %t11, %t13 - br i1 %t14, label %range1909, label %inrange1910 -range1909: - call void @finch_panic_index(ptr @.str.1076, i64 225, i64 %t11, i64 %t13) + br i1 %t14, label %range1947, label %inrange1948 +range1947: + call void @finch_panic_index(ptr @.str.1096, i64 242, i64 %t11, i64 %t13) unreachable -inrange1910: +inrange1948: %t15 = extractvalue { ptr, i64, i64 } %t12, 0 %t16 = getelementptr inbounds %S.ast.Type, ptr %t15, i64 %t11 %t17 = load %S.ast.Type, ptr %t16 %t18 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t17) store { ptr, i64, i64 } %t18, ptr %a20 - store { ptr, i64, i64 } { ptr @.str.1077, i64 1, i64 0 }, ptr %a21 + store { ptr, i64, i64 } { ptr @.str.1097, i64 1, i64 0 }, ptr %a21 call void @finch_str_concat(ptr %a19, ptr %a20, ptr %a21) store { ptr, i64, i64 } %t18, ptr %a22 call void @finch_str_drop(ptr %a22) @@ -21562,11 +22201,11 @@ inrange1910: %t26 = load { ptr, i64, i64 }, ptr %t24 %t27 = extractvalue { ptr, i64, i64 } %t26, 1 %t28 = icmp uge i64 %t25, %t27 - br i1 %t28, label %range1911, label %inrange1912 -range1911: - call void @finch_panic_index(ptr @.str.1078, i64 225, i64 %t25, i64 %t27) + br i1 %t28, label %range1949, label %inrange1950 +range1949: + call void @finch_panic_index(ptr @.str.1098, i64 242, i64 %t25, i64 %t27) unreachable -inrange1912: +inrange1950: %t29 = extractvalue { ptr, i64, i64 } %t26, 0 %t30 = getelementptr inbounds { ptr, i64, i64 }, ptr %t29, i64 %t25 %t31 = load { ptr, i64, i64 }, ptr %t30 @@ -21583,13 +22222,13 @@ inrange1912: %t40 = getelementptr inbounds { ptr, i64, i64 }, ptr %t39, i64 %t37 store { ptr, i64, i64 } %t36, ptr %t40 store i64 %t38, ptr %t9 - br label %for.step1907 -for.step1907: + br label %for.step1945 +for.step1945: %t41 = load i64, ptr %a6 %t42 = add i64 %t41, 1 store i64 %t42, ptr %a6 - br label %for.cond1905 -for.end1908: + br label %for.cond1943 +for.end1946: %t43 = getelementptr inbounds %S.gen.FnSig, ptr %a1, i32 0, i32 1 %t44 = load { ptr, i64, i64 }, ptr %t43 store { ptr, i64, i64 } %t44, ptr %a45 @@ -21600,12 +22239,12 @@ for.end1908: %t50 = getelementptr inbounds { ptr, i64, i64 }, ptr %t49, i32 0, i32 1 %t51 = load i64, ptr %t50 %t52 = icmp sgt i64 %t51, 0 - br i1 %t52, label %then1913, label %endif1915 -then1913: + br i1 %t52, label %then1951, label %endif1953 +then1951: %t53 = getelementptr inbounds %S.gen.FnSig, ptr %a1, i32 0, i32 2 %t54 = load { ptr, i64, i64 }, ptr %t53 store { ptr, i64, i64 } %t54, ptr %a56 - store { ptr, i64, i64 } { ptr @.str.1079, i64 1, i64 0 }, ptr %a57 + store { ptr, i64, i64 } { ptr @.str.1099, i64 1, i64 0 }, ptr %a57 call void @finch_str_concat(ptr %a55, ptr %a56, ptr %a57) %t58 = load { ptr, i64, i64 }, ptr %a55 %t59 = getelementptr inbounds %S.gen.FnSig, ptr %a1, i32 0, i32 1 @@ -21620,21 +22259,21 @@ then1913: store { ptr, i64, i64 } %t65, ptr %a48 store { ptr, i64, i64 } %t66, ptr %a67 call void @finch_str_drop(ptr %a67) - br label %endif1915 -endif1915: + br label %endif1953 +endif1953: %t68 = load { ptr, i64, i64 }, ptr %a48 - store { ptr, i64, i64 } { ptr @.str.1080, i64 3, i64 0 }, ptr %a70 + store { ptr, i64, i64 } { ptr @.str.1100, i64 3, i64 0 }, ptr %a70 store { ptr, i64, i64 } %t68, ptr %a71 call void @finch_str_concat(ptr %a69, ptr %a70, ptr %a71) %t72 = load { ptr, i64, i64 }, ptr %a69 store { ptr, i64, i64 } %t72, ptr %a74 - store { ptr, i64, i64 } { ptr @.str.1081, i64 1, i64 0 }, ptr %a75 + store { ptr, i64, i64 } { ptr @.str.1101, i64 1, i64 0 }, ptr %a75 call void @finch_str_concat(ptr %a73, ptr %a74, ptr %a75) store { ptr, i64, i64 } %t72, ptr %a76 call void @finch_str_drop(ptr %a76) %t77 = load { ptr, i64, i64 }, ptr %a73 %t78 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.1082, i64 2, i64 0 }, ptr %a79 + store { ptr, i64, i64 } { ptr @.str.1102, i64 2, i64 0 }, ptr %a79 call void @finch_str_join(ptr %a80, ptr %a2, ptr %a79) %t81 = load { ptr, i64, i64 }, ptr %a80 store { ptr, i64, i64 } %t77, ptr %a83 @@ -21646,7 +22285,7 @@ endif1915: call void @finch_str_drop(ptr %a86) %t87 = load { ptr, i64, i64 }, ptr %a82 store { ptr, i64, i64 } %t87, ptr %a89 - store { ptr, i64, i64 } { ptr @.str.1083, i64 1, i64 0 }, ptr %a90 + store { ptr, i64, i64 } { ptr @.str.1103, i64 1, i64 0 }, ptr %a90 call void @finch_str_concat(ptr %a88, ptr %a89, ptr %a90) store { ptr, i64, i64 } %t87, ptr %a91 call void @finch_str_drop(ptr %a91) @@ -21654,31 +22293,31 @@ endif1915: store { ptr, i64, i64 } %t92, ptr %a93 %t94 = getelementptr inbounds %S.gen.FnSig, ptr %a1, i32 0, i32 9 %t95 = load i1, ptr %t94 - br i1 %t95, label %then1916, label %else1917 -then1916: + br i1 %t95, label %then1954, label %else1955 +then1954: %t96 = getelementptr inbounds %S.gen.FnSig, ptr %a1, i32 0, i32 12 %t97 = getelementptr inbounds %S.ast.Type, ptr %t96, i32 0, i32 0 %t98 = load { ptr, i64, i64 }, ptr %t97 store { ptr, i64, i64 } %t98, ptr %a99 - store { ptr, i64, i64 } { ptr @.str.1084, i64 4, i64 0 }, ptr %a100 + store { ptr, i64, i64 } { ptr @.str.1104, i64 4, i64 0 }, ptr %a100 %t101 = call i32 @finch_str_eq(ptr %a99, ptr %a100) %t102 = icmp ne i32 %t101, 0 - br i1 %t102, label %then1919, label %else1920 -then1919: + br i1 %t102, label %then1957, label %else1958 +then1957: %t103 = load { ptr, i64, i64 }, ptr %a93 store { ptr, i64, i64 } %t103, ptr %a105 - store { ptr, i64, i64 } { ptr @.str.1085, i64 5, i64 0 }, ptr %a106 + store { ptr, i64, i64 } { ptr @.str.1105, i64 5, i64 0 }, ptr %a106 call void @finch_str_concat(ptr %a104, ptr %a105, ptr %a106) %t107 = load { ptr, i64, i64 }, ptr %a104 %t108 = load { ptr, i64, i64 }, ptr %a93 store { ptr, i64, i64 } %t107, ptr %a93 store { ptr, i64, i64 } %t108, ptr %a109 call void @finch_str_drop(ptr %a109) - br label %endif1921 -else1920: + br label %endif1959 +else1958: %t110 = load { ptr, i64, i64 }, ptr %a93 store { ptr, i64, i64 } %t110, ptr %a112 - store { ptr, i64, i64 } { ptr @.str.1086, i64 4, i64 0 }, ptr %a113 + store { ptr, i64, i64 } { ptr @.str.1106, i64 4, i64 0 }, ptr %a113 call void @finch_str_concat(ptr %a111, ptr %a112, ptr %a113) %t114 = load { ptr, i64, i64 }, ptr %a111 %t115 = getelementptr inbounds %S.gen.FnSig, ptr %a1, i32 0, i32 12 @@ -21693,7 +22332,7 @@ else1920: call void @finch_str_drop(ptr %a122) %t123 = load { ptr, i64, i64 }, ptr %a118 store { ptr, i64, i64 } %t123, ptr %a125 - store { ptr, i64, i64 } { ptr @.str.1087, i64 1, i64 0 }, ptr %a126 + store { ptr, i64, i64 } { ptr @.str.1107, i64 1, i64 0 }, ptr %a126 call void @finch_str_concat(ptr %a124, ptr %a125, ptr %a126) store { ptr, i64, i64 } %t123, ptr %a127 call void @finch_str_drop(ptr %a127) @@ -21702,22 +22341,22 @@ else1920: store { ptr, i64, i64 } %t128, ptr %a93 store { ptr, i64, i64 } %t129, ptr %a130 call void @finch_str_drop(ptr %a130) - br label %endif1921 -endif1921: - br label %endif1918 -else1917: + br label %endif1959 +endif1959: + br label %endif1956 +else1955: %t131 = getelementptr inbounds %S.gen.FnSig, ptr %a1, i32 0, i32 12 %t132 = getelementptr inbounds %S.ast.Type, ptr %t131, i32 0, i32 0 %t133 = load { ptr, i64, i64 }, ptr %t132 store { ptr, i64, i64 } %t133, ptr %a134 - store { ptr, i64, i64 } { ptr @.str.1088, i64 4, i64 0 }, ptr %a135 + store { ptr, i64, i64 } { ptr @.str.1108, i64 4, i64 0 }, ptr %a135 %t136 = call i32 @finch_str_eq(ptr %a134, ptr %a135) %t137 = icmp eq i32 %t136, 0 - br i1 %t137, label %then1922, label %endif1924 -then1922: + br i1 %t137, label %then1960, label %endif1962 +then1960: %t138 = load { ptr, i64, i64 }, ptr %a93 store { ptr, i64, i64 } %t138, ptr %a140 - store { ptr, i64, i64 } { ptr @.str.1089, i64 4, i64 0 }, ptr %a141 + store { ptr, i64, i64 } { ptr @.str.1109, i64 4, i64 0 }, ptr %a141 call void @finch_str_concat(ptr %a139, ptr %a140, ptr %a141) %t142 = load { ptr, i64, i64 }, ptr %a139 %t143 = getelementptr inbounds %S.gen.FnSig, ptr %a1, i32 0, i32 12 @@ -21735,10 +22374,10 @@ then1922: store { ptr, i64, i64 } %t151, ptr %a93 store { ptr, i64, i64 } %t152, ptr %a153 call void @finch_str_drop(ptr %a153) - br label %endif1924 -endif1924: - br label %endif1918 -endif1918: + br label %endif1962 +endif1962: + br label %endif1956 +endif1956: %t154 = load { ptr, i64, i64 }, ptr %a93 call void @finch_str_drop(ptr %a48) call void @finch.drop.arr_str(ptr %a2) @@ -21776,53 +22415,53 @@ entry: store %S.gen.FnSig %p2, ptr %a3 %t4 = load ptr, ptr %a1 %t5 = icmp eq ptr %t4, null - br i1 %t5, label %panic1925, label %ok1926 -panic1925: - call void @finch_panic(ptr @.str.1090, i64 246, ptr @.str.1091) + br i1 %t5, label %panic1963, label %ok1964 +panic1963: + call void @finch_panic(ptr @.str.1110, i64 263, ptr @.str.1111) unreachable -ok1926: - %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 27 +ok1964: + %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 28 %t7 = load i1, ptr %t6 %t8 = xor i1 %t7, true - br i1 %t8, label %then1927, label %endif1929 -then1927: + br i1 %t8, label %then1965, label %endif1967 +then1965: ret void -endif1929: +endif1967: %t9 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 12 %t10 = load i64, ptr %t9 store i64 %t10, ptr %a11 %t12 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 %t13 = load { ptr, i64, i64 }, ptr %t12 store { ptr, i64, i64 } %t13, ptr %a14 - store { ptr, i64, i64 } { ptr @.str.1092, i64 6, i64 0 }, ptr %a15 + store { ptr, i64, i64 } { ptr @.str.1112, i64 6, i64 0 }, ptr %a15 %t16 = call i32 @finch_str_eq(ptr %a14, ptr %a15) %t17 = icmp ne i32 %t16, 0 - br i1 %t17, label %then1930, label %endif1932 -then1930: + br i1 %t17, label %then1968, label %endif1970 +then1968: %t18 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 12 %t19 = load i64, ptr %t18 %t20 = add i64 %t19, 1 store i64 %t20, ptr %a11 - br label %endif1932 -endif1932: + br label %endif1970 +endif1970: %t21 = load ptr, ptr %a1 %t22 = icmp eq ptr %t21, null - br i1 %t22, label %panic1933, label %ok1934 -panic1933: - call void @finch_panic(ptr @.str.1093, i64 253, ptr @.str.1094) + br i1 %t22, label %panic1971, label %ok1972 +panic1971: + call void @finch_panic(ptr @.str.1113, i64 270, ptr @.str.1114) unreachable -ok1934: +ok1972: %t23 = getelementptr inbounds %S.gen.Gen, ptr %t21, i32 0, i32 0 %t24 = getelementptr inbounds %S.gen.FnSig, ptr %a3, i32 0, i32 16 %t25 = load i64, ptr %t24 %t26 = load { ptr, i64, i64 }, ptr %t23 %t27 = extractvalue { ptr, i64, i64 } %t26, 1 %t28 = icmp uge i64 %t25, %t27 - br i1 %t28, label %range1935, label %inrange1936 -range1935: - call void @finch_panic_index(ptr @.str.1095, i64 253, i64 %t25, i64 %t27) + br i1 %t28, label %range1973, label %inrange1974 +range1973: + call void @finch_panic_index(ptr @.str.1115, i64 270, i64 %t25, i64 %t27) unreachable -inrange1936: +inrange1974: %t29 = extractvalue { ptr, i64, i64 } %t26, 0 %t30 = getelementptr inbounds %S.ast.Program, ptr %t29, i64 %t25 %t31 = getelementptr inbounds %S.ast.Program, ptr %t30, i32 0, i32 8 @@ -21831,11 +22470,11 @@ inrange1936: %t34 = load { ptr, i64, i64 }, ptr %t31 %t35 = extractvalue { ptr, i64, i64 } %t34, 1 %t36 = icmp uge i64 %t33, %t35 - br i1 %t36, label %range1937, label %inrange1938 -range1937: - call void @finch_panic_index(ptr @.str.1096, i64 253, i64 %t33, i64 %t35) + br i1 %t36, label %range1975, label %inrange1976 +range1975: + call void @finch_panic_index(ptr @.str.1116, i64 270, i64 %t33, i64 %t35) unreachable -inrange1938: +inrange1976: %t37 = extractvalue { ptr, i64, i64 } %t34, 0 %t38 = getelementptr inbounds %S.ast.Node, ptr %t37, i64 %t33 %t39 = load %S.ast.Node, ptr %t38 @@ -21853,21 +22492,21 @@ inrange1938: %t51 = getelementptr inbounds { ptr, i64, i64 }, ptr %t50, i32 0, i32 1 %t52 = load i64, ptr %t51 %t53 = icmp sgt i64 %t52, 0 - br label %logic.from1939 -logic.from1939: - br i1 %t53, label %logic.rhs1940, label %logic.end1941 -logic.rhs1940: + br label %logic.from1977 +logic.from1977: + br i1 %t53, label %logic.rhs1978, label %logic.end1979 +logic.rhs1978: %t54 = getelementptr inbounds %S.gen.FnSig, ptr %a3, i32 0, i32 2 %t55 = getelementptr inbounds { ptr, i64, i64 }, ptr %t54, i32 0, i32 1 %t56 = load i64, ptr %t55 %t57 = icmp eq i64 %t56, 0 - br label %logic.rend1942 -logic.rend1942: - br label %logic.end1941 -logic.end1941: - %t58 = phi i1 [ false, %logic.from1939 ], [ %t57, %logic.rend1942 ] - br i1 %t58, label %then1943, label %endif1945 -then1943: + br label %logic.rend1980 +logic.rend1980: + br label %logic.end1979 +logic.end1979: + %t58 = phi i1 [ false, %logic.from1977 ], [ %t57, %logic.rend1980 ] + br i1 %t58, label %then1981, label %endif1983 +then1981: %t59 = getelementptr inbounds %S.ast.Node, ptr %a43, i32 0, i32 1 %t60 = load { ptr, i64, i64 }, ptr %t59 store { ptr, i64, i64 } %t60, ptr %a61 @@ -21877,8 +22516,8 @@ then1943: store { ptr, i64, i64 } %t63, ptr %a49 store { ptr, i64, i64 } %t64, ptr %a65 call void @finch_str_drop(ptr %a65) - br label %endif1945 -endif1945: + br label %endif1983 +endif1983: %t66 = load ptr, ptr %a1 %t67 = load %S.ast.Node, ptr %a2 %t68 = load i64, ptr %a11 @@ -21886,36 +22525,36 @@ endif1945: %t70 = load i64, ptr %t69 %t71 = load %S.gen.FnSig, ptr %a3 %t72 = call { ptr, i64, i64 } @finch.gen.sigText(%S.gen.FnSig %t71) - store { ptr, i64, i64 } { ptr @.str.1097, i64 9, i64 0 }, ptr %a74 + store { ptr, i64, i64 } { ptr @.str.1117, i64 9, i64 0 }, ptr %a74 store { ptr, i64, i64 } %t72, ptr %a75 call void @finch_str_concat(ptr %a73, ptr %a74, ptr %a75) store { ptr, i64, i64 } %t72, ptr %a76 call void @finch_str_drop(ptr %a76) %t77 = load { ptr, i64, i64 }, ptr %a73 store { ptr, i64, i64 } %t77, ptr %a79 - store { ptr, i64, i64 } { ptr @.str.1098, i64 4, i64 0 }, ptr %a80 + store { ptr, i64, i64 } { ptr @.str.1118, i64 4, i64 0 }, ptr %a80 call void @finch_str_concat(ptr %a78, ptr %a79, ptr %a80) store { ptr, i64, i64 } %t77, ptr %a81 call void @finch_str_drop(ptr %a81) %t82 = load { ptr, i64, i64 }, ptr %a78 %t83 = load ptr, ptr %a1 %t84 = icmp eq ptr %t83, null - br i1 %t84, label %panic1946, label %ok1947 -panic1946: - call void @finch_panic(ptr @.str.1099, i64 258, ptr @.str.1100) + br i1 %t84, label %panic1984, label %ok1985 +panic1984: + call void @finch_panic(ptr @.str.1119, i64 275, ptr @.str.1120) unreachable -ok1947: +ok1985: %t85 = getelementptr inbounds %S.gen.Gen, ptr %t83, i32 0, i32 1 %t86 = getelementptr inbounds %S.ast.Node, ptr %a43, i32 0, i32 13 %t87 = load i64, ptr %t86 %t88 = load { ptr, i64, i64 }, ptr %t85 %t89 = extractvalue { ptr, i64, i64 } %t88, 1 %t90 = icmp uge i64 %t87, %t89 - br i1 %t90, label %range1948, label %inrange1949 -range1948: - call void @finch_panic_index(ptr @.str.1101, i64 258, i64 %t87, i64 %t89) + br i1 %t90, label %range1986, label %inrange1987 +range1986: + call void @finch_panic_index(ptr @.str.1121, i64 275, i64 %t87, i64 %t89) unreachable -inrange1949: +inrange1987: %t91 = extractvalue { ptr, i64, i64 } %t88, 0 %t92 = getelementptr inbounds { ptr, i64, i64 }, ptr %t91, i64 %t87 %t93 = load { ptr, i64, i64 }, ptr %t92 @@ -22471,29 +23110,29 @@ entry: store ptr %p0, ptr %a1 store { ptr, i64, i64 } %p1, ptr %a2 store i64 0, ptr %a3 - br label %each.cond1950 -each.cond1950: + br label %each.cond1988 +each.cond1988: %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t5 = load i64, ptr %t4 %t6 = load i64, ptr %a3 %t7 = icmp slt i64 %t6, %t5 - br i1 %t7, label %each.body1951, label %each.end1953 -each.body1951: + br i1 %t7, label %each.body1989, label %each.end1991 +each.body1989: %t8 = load ptr, ptr %a2 %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %t8, i64 %t6 %t10 = load { ptr, i64, i64 }, ptr %t9 store { ptr, i64, i64 } %t10, ptr %a11 %t12 = load ptr, ptr %a1 %t13 = icmp eq ptr %t12, null - br i1 %t13, label %panic1954, label %ok1955 -panic1954: - call void @finch_panic(ptr @.str.1102, i64 264, ptr @.str.1103) + br i1 %t13, label %panic1992, label %ok1993 +panic1992: + call void @finch_panic(ptr @.str.1122, i64 281, ptr @.str.1123) unreachable -ok1955: - %t14 = getelementptr inbounds %S.gen.Gen, ptr %t12, i32 0, i32 28 +ok1993: + %t14 = getelementptr inbounds %S.gen.Gen, ptr %t12, i32 0, i32 29 %t15 = getelementptr inbounds { ptr, i64, i64 }, ptr %t14, i32 0, i32 1 %t16 = load { ptr, i64, i64 }, ptr %a11 - store { ptr, i64, i64 } { ptr @.str.1104, i64 3, i64 0 }, ptr %a18 + store { ptr, i64, i64 } { ptr @.str.1124, i64 3, i64 0 }, ptr %a18 store { ptr, i64, i64 } %t16, ptr %a19 call void @finch_str_concat(ptr %a17, ptr %a18, ptr %a19) %t20 = load { ptr, i64, i64 }, ptr %a17 @@ -22504,30 +23143,30 @@ ok1955: %t24 = getelementptr inbounds { ptr, i64, i64 }, ptr %t23, i64 %t21 store { ptr, i64, i64 } %t20, ptr %t24 store i64 %t22, ptr %t15 - br label %each.step1952 -each.step1952: + br label %each.step1990 +each.step1990: %t25 = load i64, ptr %a3 %t26 = add i64 %t25, 1 store i64 %t26, ptr %a3 - br label %each.cond1950 -each.end1953: + br label %each.cond1988 +each.end1991: %t27 = load ptr, ptr %a1 %t28 = icmp eq ptr %t27, null - br i1 %t28, label %panic1956, label %ok1957 -panic1956: - call void @finch_panic(ptr @.str.1105, i64 266, ptr @.str.1106) + br i1 %t28, label %panic1994, label %ok1995 +panic1994: + call void @finch_panic(ptr @.str.1125, i64 283, ptr @.str.1126) unreachable -ok1957: +ok1995: %t29 = getelementptr inbounds %S.gen.Gen, ptr %t27, i32 0, i32 15 store i64 0, ptr %a30 - br label %each.cond1958 -each.cond1958: + br label %each.cond1996 +each.cond1996: %t31 = getelementptr inbounds { ptr, i64, i64 }, ptr %t29, i32 0, i32 1 %t32 = load i64, ptr %t31 %t33 = load i64, ptr %a30 %t34 = icmp slt i64 %t33, %t32 - br i1 %t34, label %each.body1959, label %each.end1961 -each.body1959: + br i1 %t34, label %each.body1997, label %each.end1999 +each.body1997: %t35 = load ptr, ptr %t29 %t36 = getelementptr inbounds %S.gen.FnSig, ptr %t35, i64 %t33 %t37 = load %S.gen.FnSig, ptr %t36 @@ -22537,22 +23176,22 @@ each.body1959: store %S.gen.FnSig %t40, ptr %a41 %t42 = load ptr, ptr %a1 %t43 = icmp eq ptr %t42, null - br i1 %t43, label %panic1962, label %ok1963 -panic1962: - call void @finch_panic(ptr @.str.1107, i64 267, ptr @.str.1108) + br i1 %t43, label %panic2000, label %ok2001 +panic2000: + call void @finch_panic(ptr @.str.1127, i64 284, ptr @.str.1128) unreachable -ok1963: +ok2001: %t44 = getelementptr inbounds %S.gen.Gen, ptr %t42, i32 0, i32 0 %t45 = getelementptr inbounds %S.gen.FnSig, ptr %a41, i32 0, i32 16 %t46 = load i64, ptr %t45 %t47 = load { ptr, i64, i64 }, ptr %t44 %t48 = extractvalue { ptr, i64, i64 } %t47, 1 %t49 = icmp uge i64 %t46, %t48 - br i1 %t49, label %range1964, label %inrange1965 -range1964: - call void @finch_panic_index(ptr @.str.1109, i64 267, i64 %t46, i64 %t48) + br i1 %t49, label %range2002, label %inrange2003 +range2002: + call void @finch_panic_index(ptr @.str.1129, i64 284, i64 %t46, i64 %t48) unreachable -inrange1965: +inrange2003: %t50 = extractvalue { ptr, i64, i64 } %t47, 0 %t51 = getelementptr inbounds %S.ast.Program, ptr %t50, i64 %t46 %t52 = getelementptr inbounds %S.ast.Program, ptr %t51, i32 0, i32 8 @@ -22561,11 +23200,11 @@ inrange1965: %t55 = load { ptr, i64, i64 }, ptr %t52 %t56 = extractvalue { ptr, i64, i64 } %t55, 1 %t57 = icmp uge i64 %t54, %t56 - br i1 %t57, label %range1966, label %inrange1967 -range1966: - call void @finch_panic_index(ptr @.str.1110, i64 267, i64 %t54, i64 %t56) + br i1 %t57, label %range2004, label %inrange2005 +range2004: + call void @finch_panic_index(ptr @.str.1130, i64 284, i64 %t54, i64 %t56) unreachable -inrange1967: +inrange2005: %t58 = extractvalue { ptr, i64, i64 } %t55, 0 %t59 = getelementptr inbounds %S.ast.Node, ptr %t58, i64 %t54 %t60 = load %S.ast.Node, ptr %t59 @@ -22577,40 +23216,40 @@ inrange1967: %t66 = getelementptr inbounds { ptr, i64, i64 }, ptr %t65, i32 0, i32 1 %t67 = load i64, ptr %t66 %t68 = icmp sgt i64 %t67, 0 - br i1 %t68, label %then1968, label %endif1970 -then1968: + br i1 %t68, label %then2006, label %endif2008 +then2006: call void @finch.drop.S_ast_Node(ptr %a64) call void @finch.drop.S_gen_FnSig(ptr %a41) - br label %each.step1960 -endif1970: + br label %each.step1998 +endif2008: store { ptr, i64, i64 } zeroinitializer, ptr %a69 %t70 = getelementptr inbounds %S.gen.FnSig, ptr %a41, i32 0, i32 13 %t71 = getelementptr inbounds { ptr, i64, i64 }, ptr %t70, i32 0, i32 1 %t72 = load i64, ptr %t71 store i64 0, ptr %a73 - br label %for.cond1971 -for.cond1971: + br label %for.cond2009 +for.cond2009: %t74 = load i64, ptr %a73 %t75 = icmp slt i64 %t74, %t72 - br i1 %t75, label %for.body1972, label %for.end1974 -for.body1972: + br i1 %t75, label %for.body2010, label %for.end2012 +for.body2010: %t76 = getelementptr inbounds { ptr, i64, i64 }, ptr %a69, i32 0, i32 1 %t77 = getelementptr inbounds %S.gen.FnSig, ptr %a41, i32 0, i32 13 %t78 = load i64, ptr %a73 %t79 = load { ptr, i64, i64 }, ptr %t77 %t80 = extractvalue { ptr, i64, i64 } %t79, 1 %t81 = icmp uge i64 %t78, %t80 - br i1 %t81, label %range1975, label %inrange1976 -range1975: - call void @finch_panic_index(ptr @.str.1111, i64 273, i64 %t78, i64 %t80) + br i1 %t81, label %range2013, label %inrange2014 +range2013: + call void @finch_panic_index(ptr @.str.1131, i64 290, i64 %t78, i64 %t80) unreachable -inrange1976: +inrange2014: %t82 = extractvalue { ptr, i64, i64 } %t79, 0 %t83 = getelementptr inbounds %S.ast.Type, ptr %t82, i64 %t78 %t84 = load %S.ast.Type, ptr %t83 %t85 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t84) store { ptr, i64, i64 } %t85, ptr %a87 - store { ptr, i64, i64 } { ptr @.str.1112, i64 1, i64 0 }, ptr %a88 + store { ptr, i64, i64 } { ptr @.str.1132, i64 1, i64 0 }, ptr %a88 call void @finch_str_concat(ptr %a86, ptr %a87, ptr %a88) store { ptr, i64, i64 } %t85, ptr %a89 call void @finch_str_drop(ptr %a89) @@ -22620,11 +23259,11 @@ inrange1976: %t93 = load { ptr, i64, i64 }, ptr %t91 %t94 = extractvalue { ptr, i64, i64 } %t93, 1 %t95 = icmp uge i64 %t92, %t94 - br i1 %t95, label %range1977, label %inrange1978 -range1977: - call void @finch_panic_index(ptr @.str.1113, i64 273, i64 %t92, i64 %t94) + br i1 %t95, label %range2015, label %inrange2016 +range2015: + call void @finch_panic_index(ptr @.str.1133, i64 290, i64 %t92, i64 %t94) unreachable -inrange1978: +inrange2016: %t96 = extractvalue { ptr, i64, i64 } %t93, 0 %t97 = getelementptr inbounds { ptr, i64, i64 }, ptr %t96, i64 %t92 %t98 = load { ptr, i64, i64 }, ptr %t97 @@ -22641,30 +23280,30 @@ inrange1978: %t107 = getelementptr inbounds { ptr, i64, i64 }, ptr %t106, i64 %t104 store { ptr, i64, i64 } %t103, ptr %t107 store i64 %t105, ptr %t76 - br label %for.step1973 -for.step1973: + br label %for.step2011 +for.step2011: %t108 = load i64, ptr %a73 %t109 = add i64 %t108, 1 store i64 %t109, ptr %a73 - br label %for.cond1971 -for.end1974: + br label %for.cond2009 +for.end2012: %t110 = load ptr, ptr %a1 %t111 = icmp eq ptr %t110, null - br i1 %t111, label %panic1979, label %ok1980 -panic1979: - call void @finch_panic(ptr @.str.1114, i64 275, ptr @.str.1115) + br i1 %t111, label %panic2017, label %ok2018 +panic2017: + call void @finch_panic(ptr @.str.1134, i64 292, ptr @.str.1135) unreachable -ok1980: - %t112 = getelementptr inbounds %S.gen.Gen, ptr %t110, i32 0, i32 28 +ok2018: + %t112 = getelementptr inbounds %S.gen.Gen, ptr %t110, i32 0, i32 29 %t113 = getelementptr inbounds { ptr, i64, i64 }, ptr %t112, i32 0, i32 1 %t114 = getelementptr inbounds %S.gen.FnSig, ptr %a41, i32 0, i32 0 %t115 = load { ptr, i64, i64 }, ptr %t114 - store { ptr, i64, i64 } { ptr @.str.1116, i64 3, i64 0 }, ptr %a117 + store { ptr, i64, i64 } { ptr @.str.1136, i64 3, i64 0 }, ptr %a117 store { ptr, i64, i64 } %t115, ptr %a118 call void @finch_str_concat(ptr %a116, ptr %a117, ptr %a118) %t119 = load { ptr, i64, i64 }, ptr %a116 store { ptr, i64, i64 } %t119, ptr %a121 - store { ptr, i64, i64 } { ptr @.str.1117, i64 1, i64 0 }, ptr %a122 + store { ptr, i64, i64 } { ptr @.str.1137, i64 1, i64 0 }, ptr %a122 call void @finch_str_concat(ptr %a120, ptr %a121, ptr %a122) store { ptr, i64, i64 } %t119, ptr %a123 call void @finch_str_drop(ptr %a123) @@ -22678,7 +23317,7 @@ ok1980: call void @finch_str_drop(ptr %a130) %t131 = load { ptr, i64, i64 }, ptr %a127 store { ptr, i64, i64 } %t131, ptr %a133 - store { ptr, i64, i64 } { ptr @.str.1118, i64 1, i64 0 }, ptr %a134 + store { ptr, i64, i64 } { ptr @.str.1138, i64 1, i64 0 }, ptr %a134 call void @finch_str_concat(ptr %a132, ptr %a133, ptr %a134) store { ptr, i64, i64 } %t131, ptr %a135 call void @finch_str_drop(ptr %a135) @@ -22692,29 +23331,29 @@ ok1980: call void @finch_str_drop(ptr %a142) %t143 = load { ptr, i64, i64 }, ptr %a139 store { ptr, i64, i64 } %t143, ptr %a145 - store { ptr, i64, i64 } { ptr @.str.1119, i64 1, i64 0 }, ptr %a146 + store { ptr, i64, i64 } { ptr @.str.1139, i64 1, i64 0 }, ptr %a146 call void @finch_str_concat(ptr %a144, ptr %a145, ptr %a146) store { ptr, i64, i64 } %t143, ptr %a147 call void @finch_str_drop(ptr %a147) %t148 = load { ptr, i64, i64 }, ptr %a144 %t149 = load ptr, ptr %a1 %t150 = icmp eq ptr %t149, null - br i1 %t150, label %panic1981, label %ok1982 -panic1981: - call void @finch_panic(ptr @.str.1120, i64 275, ptr @.str.1121) + br i1 %t150, label %panic2019, label %ok2020 +panic2019: + call void @finch_panic(ptr @.str.1140, i64 292, ptr @.str.1141) unreachable -ok1982: +ok2020: %t151 = getelementptr inbounds %S.gen.Gen, ptr %t149, i32 0, i32 1 %t152 = getelementptr inbounds %S.ast.Node, ptr %a64, i32 0, i32 13 %t153 = load i64, ptr %t152 %t154 = load { ptr, i64, i64 }, ptr %t151 %t155 = extractvalue { ptr, i64, i64 } %t154, 1 %t156 = icmp uge i64 %t153, %t155 - br i1 %t156, label %range1983, label %inrange1984 -range1983: - call void @finch_panic_index(ptr @.str.1122, i64 275, i64 %t153, i64 %t155) + br i1 %t156, label %range2021, label %inrange2022 +range2021: + call void @finch_panic_index(ptr @.str.1142, i64 292, i64 %t153, i64 %t155) unreachable -inrange1984: +inrange2022: %t157 = extractvalue { ptr, i64, i64 } %t154, 0 %t158 = getelementptr inbounds { ptr, i64, i64 }, ptr %t157, i64 %t153 %t159 = load { ptr, i64, i64 }, ptr %t158 @@ -22725,7 +23364,7 @@ inrange1984: call void @finch_str_drop(ptr %a163) %t164 = load { ptr, i64, i64 }, ptr %a160 store { ptr, i64, i64 } %t164, ptr %a166 - store { ptr, i64, i64 } { ptr @.str.1123, i64 1, i64 0 }, ptr %a167 + store { ptr, i64, i64 } { ptr @.str.1143, i64 1, i64 0 }, ptr %a167 call void @finch_str_concat(ptr %a165, ptr %a166, ptr %a167) store { ptr, i64, i64 } %t164, ptr %a168 call void @finch_str_drop(ptr %a168) @@ -22743,7 +23382,7 @@ inrange1984: call void @finch_str_drop(ptr %a178) %t179 = load { ptr, i64, i64 }, ptr %a174 store { ptr, i64, i64 } %t179, ptr %a181 - store { ptr, i64, i64 } { ptr @.str.1124, i64 1, i64 0 }, ptr %a182 + store { ptr, i64, i64 } { ptr @.str.1144, i64 1, i64 0 }, ptr %a182 call void @finch_str_concat(ptr %a180, ptr %a181, ptr %a182) store { ptr, i64, i64 } %t179, ptr %a183 call void @finch_str_drop(ptr %a183) @@ -22761,7 +23400,7 @@ inrange1984: call void @finch_str_drop(ptr %a193) %t194 = load { ptr, i64, i64 }, ptr %a189 store { ptr, i64, i64 } %t194, ptr %a196 - store { ptr, i64, i64 } { ptr @.str.1125, i64 1, i64 0 }, ptr %a197 + store { ptr, i64, i64 } { ptr @.str.1145, i64 1, i64 0 }, ptr %a197 call void @finch_str_concat(ptr %a195, ptr %a196, ptr %a197) store { ptr, i64, i64 } %t194, ptr %a198 call void @finch_str_drop(ptr %a198) @@ -22779,7 +23418,7 @@ inrange1984: call void @finch_str_drop(ptr %a208) %t209 = load { ptr, i64, i64 }, ptr %a204 store { ptr, i64, i64 } %t209, ptr %a211 - store { ptr, i64, i64 } { ptr @.str.1126, i64 1, i64 0 }, ptr %a212 + store { ptr, i64, i64 } { ptr @.str.1146, i64 1, i64 0 }, ptr %a212 call void @finch_str_concat(ptr %a210, ptr %a211, ptr %a212) store { ptr, i64, i64 } %t209, ptr %a213 call void @finch_str_drop(ptr %a213) @@ -22798,13 +23437,13 @@ inrange1984: call void @finch_str_drop(ptr %a223) %t224 = load { ptr, i64, i64 }, ptr %a219 store { ptr, i64, i64 } %t224, ptr %a226 - store { ptr, i64, i64 } { ptr @.str.1127, i64 1, i64 0 }, ptr %a227 + store { ptr, i64, i64 } { ptr @.str.1147, i64 1, i64 0 }, ptr %a227 call void @finch_str_concat(ptr %a225, ptr %a226, ptr %a227) store { ptr, i64, i64 } %t224, ptr %a228 call void @finch_str_drop(ptr %a228) %t229 = load { ptr, i64, i64 }, ptr %a225 %t230 = getelementptr inbounds { ptr, i64, i64 }, ptr %a69, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.1128, i64 1, i64 0 }, ptr %a231 + store { ptr, i64, i64 } { ptr @.str.1148, i64 1, i64 0 }, ptr %a231 call void @finch_str_join(ptr %a232, ptr %a69, ptr %a231) %t233 = load { ptr, i64, i64 }, ptr %a232 store { ptr, i64, i64 } %t229, ptr %a235 @@ -22825,30 +23464,30 @@ inrange1984: call void @finch.drop.arr_str(ptr %a69) call void @finch.drop.S_ast_Node(ptr %a64) call void @finch.drop.S_gen_FnSig(ptr %a41) - br label %each.step1960 -each.step1960: + br label %each.step1998 +each.step1998: %t244 = load i64, ptr %a30 %t245 = add i64 %t244, 1 store i64 %t245, ptr %a30 - br label %each.cond1958 -each.end1961: + br label %each.cond1996 +each.end1999: %t246 = load ptr, ptr %a1 %t247 = icmp eq ptr %t246, null - br i1 %t247, label %panic1985, label %ok1986 -panic1985: - call void @finch_panic(ptr @.str.1129, i64 277, ptr @.str.1130) + br i1 %t247, label %panic2023, label %ok2024 +panic2023: + call void @finch_panic(ptr @.str.1149, i64 294, ptr @.str.1150) unreachable -ok1986: +ok2024: %t248 = getelementptr inbounds %S.gen.Gen, ptr %t246, i32 0, i32 17 store i64 0, ptr %a249 - br label %each.cond1987 -each.cond1987: + br label %each.cond2025 +each.cond2025: %t250 = getelementptr inbounds { ptr, i64, i64 }, ptr %t248, i32 0, i32 1 %t251 = load i64, ptr %t250 %t252 = load i64, ptr %a249 %t253 = icmp slt i64 %t252, %t251 - br i1 %t253, label %each.body1988, label %each.end1990 -each.body1988: + br i1 %t253, label %each.body2026, label %each.end2028 +each.body2026: %t254 = load ptr, ptr %t248 %t255 = getelementptr inbounds %S.gen.Template, ptr %t254, i64 %t252 %t256 = load %S.gen.Template, ptr %t255 @@ -22858,29 +23497,29 @@ each.body1988: store %S.gen.Template %t259, ptr %a260 %t261 = getelementptr inbounds %S.gen.Template, ptr %a260, i32 0, i32 6 %t262 = load i1, ptr %t261 - br i1 %t262, label %then1991, label %endif1993 -then1991: + br i1 %t262, label %then2029, label %endif2031 +then2029: call void @finch.drop.S_gen_Template(ptr %a260) - br label %each.step1989 -endif1993: + br label %each.step2027 +endif2031: %t263 = load ptr, ptr %a1 %t264 = icmp eq ptr %t263, null - br i1 %t264, label %panic1994, label %ok1995 -panic1994: - call void @finch_panic(ptr @.str.1131, i64 281, ptr @.str.1132) + br i1 %t264, label %panic2032, label %ok2033 +panic2032: + call void @finch_panic(ptr @.str.1151, i64 298, ptr @.str.1152) unreachable -ok1995: +ok2033: %t265 = getelementptr inbounds %S.gen.Gen, ptr %t263, i32 0, i32 0 %t266 = getelementptr inbounds %S.gen.Template, ptr %a260, i32 0, i32 4 %t267 = load i64, ptr %t266 %t268 = load { ptr, i64, i64 }, ptr %t265 %t269 = extractvalue { ptr, i64, i64 } %t268, 1 %t270 = icmp uge i64 %t267, %t269 - br i1 %t270, label %range1996, label %inrange1997 -range1996: - call void @finch_panic_index(ptr @.str.1133, i64 281, i64 %t267, i64 %t269) + br i1 %t270, label %range2034, label %inrange2035 +range2034: + call void @finch_panic_index(ptr @.str.1153, i64 298, i64 %t267, i64 %t269) unreachable -inrange1997: +inrange2035: %t271 = extractvalue { ptr, i64, i64 } %t268, 0 %t272 = getelementptr inbounds %S.ast.Program, ptr %t271, i64 %t267 %t273 = getelementptr inbounds %S.ast.Program, ptr %t272, i32 0, i32 8 @@ -22889,11 +23528,11 @@ inrange1997: %t276 = load { ptr, i64, i64 }, ptr %t273 %t277 = extractvalue { ptr, i64, i64 } %t276, 1 %t278 = icmp uge i64 %t275, %t277 - br i1 %t278, label %range1998, label %inrange1999 -range1998: - call void @finch_panic_index(ptr @.str.1134, i64 281, i64 %t275, i64 %t277) + br i1 %t278, label %range2036, label %inrange2037 +range2036: + call void @finch_panic_index(ptr @.str.1154, i64 298, i64 %t275, i64 %t277) unreachable -inrange1999: +inrange2037: %t279 = extractvalue { ptr, i64, i64 } %t276, 0 %t280 = getelementptr inbounds %S.ast.Node, ptr %t279, i64 %t275 %t281 = load %S.ast.Node, ptr %t280 @@ -22903,21 +23542,21 @@ inrange1999: store %S.ast.Node %t284, ptr %a285 %t286 = load ptr, ptr %a1 %t287 = icmp eq ptr %t286, null - br i1 %t287, label %panic2000, label %ok2001 -panic2000: - call void @finch_panic(ptr @.str.1135, i64 282, ptr @.str.1136) + br i1 %t287, label %panic2038, label %ok2039 +panic2038: + call void @finch_panic(ptr @.str.1155, i64 299, ptr @.str.1156) unreachable -ok2001: - %t288 = getelementptr inbounds %S.gen.Gen, ptr %t286, i32 0, i32 28 +ok2039: + %t288 = getelementptr inbounds %S.gen.Gen, ptr %t286, i32 0, i32 29 %t289 = getelementptr inbounds { ptr, i64, i64 }, ptr %t288, i32 0, i32 1 %t290 = getelementptr inbounds %S.gen.Template, ptr %a260, i32 0, i32 0 %t291 = load { ptr, i64, i64 }, ptr %t290 - store { ptr, i64, i64 } { ptr @.str.1137, i64 3, i64 0 }, ptr %a293 + store { ptr, i64, i64 } { ptr @.str.1157, i64 3, i64 0 }, ptr %a293 store { ptr, i64, i64 } %t291, ptr %a294 call void @finch_str_concat(ptr %a292, ptr %a293, ptr %a294) %t295 = load { ptr, i64, i64 }, ptr %a292 store { ptr, i64, i64 } %t295, ptr %a297 - store { ptr, i64, i64 } { ptr @.str.1138, i64 1, i64 0 }, ptr %a298 + store { ptr, i64, i64 } { ptr @.str.1158, i64 1, i64 0 }, ptr %a298 call void @finch_str_concat(ptr %a296, ptr %a297, ptr %a298) store { ptr, i64, i64 } %t295, ptr %a299 call void @finch_str_drop(ptr %a299) @@ -22931,7 +23570,7 @@ ok2001: call void @finch_str_drop(ptr %a306) %t307 = load { ptr, i64, i64 }, ptr %a303 store { ptr, i64, i64 } %t307, ptr %a309 - store { ptr, i64, i64 } { ptr @.str.1139, i64 1, i64 0 }, ptr %a310 + store { ptr, i64, i64 } { ptr @.str.1159, i64 1, i64 0 }, ptr %a310 call void @finch_str_concat(ptr %a308, ptr %a309, ptr %a310) store { ptr, i64, i64 } %t307, ptr %a311 call void @finch_str_drop(ptr %a311) @@ -22945,29 +23584,29 @@ ok2001: call void @finch_str_drop(ptr %a318) %t319 = load { ptr, i64, i64 }, ptr %a315 store { ptr, i64, i64 } %t319, ptr %a321 - store { ptr, i64, i64 } { ptr @.str.1140, i64 1, i64 0 }, ptr %a322 + store { ptr, i64, i64 } { ptr @.str.1160, i64 1, i64 0 }, ptr %a322 call void @finch_str_concat(ptr %a320, ptr %a321, ptr %a322) store { ptr, i64, i64 } %t319, ptr %a323 call void @finch_str_drop(ptr %a323) %t324 = load { ptr, i64, i64 }, ptr %a320 %t325 = load ptr, ptr %a1 %t326 = icmp eq ptr %t325, null - br i1 %t326, label %panic2002, label %ok2003 -panic2002: - call void @finch_panic(ptr @.str.1141, i64 282, ptr @.str.1142) + br i1 %t326, label %panic2040, label %ok2041 +panic2040: + call void @finch_panic(ptr @.str.1161, i64 299, ptr @.str.1162) unreachable -ok2003: +ok2041: %t327 = getelementptr inbounds %S.gen.Gen, ptr %t325, i32 0, i32 1 %t328 = getelementptr inbounds %S.ast.Node, ptr %a285, i32 0, i32 13 %t329 = load i64, ptr %t328 %t330 = load { ptr, i64, i64 }, ptr %t327 %t331 = extractvalue { ptr, i64, i64 } %t330, 1 %t332 = icmp uge i64 %t329, %t331 - br i1 %t332, label %range2004, label %inrange2005 -range2004: - call void @finch_panic_index(ptr @.str.1143, i64 282, i64 %t329, i64 %t331) + br i1 %t332, label %range2042, label %inrange2043 +range2042: + call void @finch_panic_index(ptr @.str.1163, i64 299, i64 %t329, i64 %t331) unreachable -inrange2005: +inrange2043: %t333 = extractvalue { ptr, i64, i64 } %t330, 0 %t334 = getelementptr inbounds { ptr, i64, i64 }, ptr %t333, i64 %t329 %t335 = load { ptr, i64, i64 }, ptr %t334 @@ -22978,7 +23617,7 @@ inrange2005: call void @finch_str_drop(ptr %a339) %t340 = load { ptr, i64, i64 }, ptr %a336 store { ptr, i64, i64 } %t340, ptr %a342 - store { ptr, i64, i64 } { ptr @.str.1144, i64 1, i64 0 }, ptr %a343 + store { ptr, i64, i64 } { ptr @.str.1164, i64 1, i64 0 }, ptr %a343 call void @finch_str_concat(ptr %a341, ptr %a342, ptr %a343) store { ptr, i64, i64 } %t340, ptr %a344 call void @finch_str_drop(ptr %a344) @@ -22996,7 +23635,7 @@ inrange2005: call void @finch_str_drop(ptr %a354) %t355 = load { ptr, i64, i64 }, ptr %a350 store { ptr, i64, i64 } %t355, ptr %a357 - store { ptr, i64, i64 } { ptr @.str.1145, i64 1, i64 0 }, ptr %a358 + store { ptr, i64, i64 } { ptr @.str.1165, i64 1, i64 0 }, ptr %a358 call void @finch_str_concat(ptr %a356, ptr %a357, ptr %a358) store { ptr, i64, i64 } %t355, ptr %a359 call void @finch_str_drop(ptr %a359) @@ -23014,7 +23653,7 @@ inrange2005: call void @finch_str_drop(ptr %a369) %t370 = load { ptr, i64, i64 }, ptr %a365 store { ptr, i64, i64 } %t370, ptr %a372 - store { ptr, i64, i64 } { ptr @.str.1146, i64 1, i64 0 }, ptr %a373 + store { ptr, i64, i64 } { ptr @.str.1166, i64 1, i64 0 }, ptr %a373 call void @finch_str_concat(ptr %a371, ptr %a372, ptr %a373) store { ptr, i64, i64 } %t370, ptr %a374 call void @finch_str_drop(ptr %a374) @@ -23032,26 +23671,26 @@ inrange2005: call void @finch_str_drop(ptr %a384) %t385 = load { ptr, i64, i64 }, ptr %a380 store { ptr, i64, i64 } %t385, ptr %a387 - store { ptr, i64, i64 } { ptr @.str.1147, i64 1, i64 0 }, ptr %a388 + store { ptr, i64, i64 } { ptr @.str.1167, i64 1, i64 0 }, ptr %a388 call void @finch_str_concat(ptr %a386, ptr %a387, ptr %a388) store { ptr, i64, i64 } %t385, ptr %a389 call void @finch_str_drop(ptr %a389) %t390 = load { ptr, i64, i64 }, ptr %a386 %t391 = getelementptr inbounds %S.gen.Template, ptr %a260, i32 0, i32 1 %t392 = load { ptr, i64, i64 }, ptr %t391 - store { ptr, i64, i64 } { ptr @.str.1148, i64 3, i64 0 }, ptr %a394 + store { ptr, i64, i64 } { ptr @.str.1168, i64 3, i64 0 }, ptr %a394 store { ptr, i64, i64 } %t392, ptr %a395 call void @finch_str_concat(ptr %a393, ptr %a394, ptr %a395) %t396 = load { ptr, i64, i64 }, ptr %a393 store { ptr, i64, i64 } %t396, ptr %a398 - store { ptr, i64, i64 } { ptr @.str.1149, i64 1, i64 0 }, ptr %a399 + store { ptr, i64, i64 } { ptr @.str.1169, i64 1, i64 0 }, ptr %a399 call void @finch_str_concat(ptr %a397, ptr %a398, ptr %a399) store { ptr, i64, i64 } %t396, ptr %a400 call void @finch_str_drop(ptr %a400) %t401 = load { ptr, i64, i64 }, ptr %a397 %t402 = getelementptr inbounds %S.gen.Template, ptr %a260, i32 0, i32 3 %t403 = getelementptr inbounds { ptr, i64, i64 }, ptr %t402, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.1150, i64 2, i64 0 }, ptr %a404 + store { ptr, i64, i64 } { ptr @.str.1170, i64 2, i64 0 }, ptr %a404 call void @finch_str_join(ptr %a405, ptr %t402, ptr %a404) %t406 = load { ptr, i64, i64 }, ptr %a405 store { ptr, i64, i64 } %t401, ptr %a408 @@ -23063,7 +23702,7 @@ inrange2005: call void @finch_str_drop(ptr %a411) %t412 = load { ptr, i64, i64 }, ptr %a407 store { ptr, i64, i64 } %t412, ptr %a414 - store { ptr, i64, i64 } { ptr @.str.1151, i64 6, i64 0 }, ptr %a415 + store { ptr, i64, i64 } { ptr @.str.1171, i64 6, i64 0 }, ptr %a415 call void @finch_str_concat(ptr %a413, ptr %a414, ptr %a415) store { ptr, i64, i64 } %t412, ptr %a416 call void @finch_str_drop(ptr %a416) @@ -23080,7 +23719,7 @@ inrange2005: call void @finch_str_drop(ptr %a424) %t425 = load { ptr, i64, i64 }, ptr %a420 store { ptr, i64, i64 } %t425, ptr %a427 - store { ptr, i64, i64 } { ptr @.str.1152, i64 1, i64 0 }, ptr %a428 + store { ptr, i64, i64 } { ptr @.str.1172, i64 1, i64 0 }, ptr %a428 call void @finch_str_concat(ptr %a426, ptr %a427, ptr %a428) store { ptr, i64, i64 } %t425, ptr %a429 call void @finch_str_drop(ptr %a429) @@ -23094,30 +23733,30 @@ inrange2005: store i64 %t432, ptr %t289 call void @finch.drop.S_ast_Node(ptr %a285) call void @finch.drop.S_gen_Template(ptr %a260) - br label %each.step1989 -each.step1989: + br label %each.step2027 +each.step2027: %t435 = load i64, ptr %a249 %t436 = add i64 %t435, 1 store i64 %t436, ptr %a249 - br label %each.cond1987 -each.end1990: + br label %each.cond2025 +each.end2028: %t437 = load ptr, ptr %a1 %t438 = icmp eq ptr %t437, null - br i1 %t438, label %panic2006, label %ok2007 -panic2006: - call void @finch_panic(ptr @.str.1153, i64 284, ptr @.str.1154) + br i1 %t438, label %panic2044, label %ok2045 +panic2044: + call void @finch_panic(ptr @.str.1173, i64 301, ptr @.str.1174) unreachable -ok2007: +ok2045: %t439 = getelementptr inbounds %S.gen.Gen, ptr %t437, i32 0, i32 16 store i64 0, ptr %a440 - br label %each.cond2008 -each.cond2008: + br label %each.cond2046 +each.cond2046: %t441 = getelementptr inbounds { ptr, i64, i64 }, ptr %t439, i32 0, i32 1 %t442 = load i64, ptr %t441 %t443 = load i64, ptr %a440 %t444 = icmp slt i64 %t443, %t442 - br i1 %t444, label %each.body2009, label %each.end2011 -each.body2009: + br i1 %t444, label %each.body2047, label %each.end2049 +each.body2047: %t445 = load ptr, ptr %t439 %t446 = getelementptr inbounds %S.gen.StructDef, ptr %t445, i64 %t443 %t447 = load %S.gen.StructDef, ptr %t446 @@ -23127,42 +23766,42 @@ each.body2009: store %S.gen.StructDef %t450, ptr %a451 %t452 = getelementptr inbounds %S.gen.StructDef, ptr %a451, i32 0, i32 2 %t453 = load i1, ptr %t452 - br label %logic.from2012 -logic.from2012: - br i1 %t453, label %logic.end2014, label %logic.rhs2013 -logic.rhs2013: + br label %logic.from2050 +logic.from2050: + br i1 %t453, label %logic.end2052, label %logic.rhs2051 +logic.rhs2051: %t454 = getelementptr inbounds %S.gen.StructDef, ptr %a451, i32 0, i32 5 %t455 = getelementptr inbounds { ptr, i64, i64 }, ptr %t454, i32 0, i32 1 %t456 = load i64, ptr %t455 %t457 = icmp sgt i64 %t456, 0 - br label %logic.rend2015 -logic.rend2015: - br label %logic.end2014 -logic.end2014: - %t458 = phi i1 [ true, %logic.from2012 ], [ %t457, %logic.rend2015 ] - br i1 %t458, label %then2016, label %endif2018 -then2016: + br label %logic.rend2053 +logic.rend2053: + br label %logic.end2052 +logic.end2052: + %t458 = phi i1 [ true, %logic.from2050 ], [ %t457, %logic.rend2053 ] + br i1 %t458, label %then2054, label %endif2056 +then2054: call void @finch.drop.S_gen_StructDef(ptr %a451) - br label %each.step2010 -endif2018: + br label %each.step2048 +endif2056: %t459 = load ptr, ptr %a1 %t460 = icmp eq ptr %t459, null - br i1 %t460, label %panic2019, label %ok2020 -panic2019: - call void @finch_panic(ptr @.str.1155, i64 288, ptr @.str.1156) + br i1 %t460, label %panic2057, label %ok2058 +panic2057: + call void @finch_panic(ptr @.str.1175, i64 305, ptr @.str.1176) unreachable -ok2020: +ok2058: %t461 = getelementptr inbounds %S.gen.Gen, ptr %t459, i32 0, i32 0 %t462 = getelementptr inbounds %S.gen.StructDef, ptr %a451, i32 0, i32 13 %t463 = load i64, ptr %t462 %t464 = load { ptr, i64, i64 }, ptr %t461 %t465 = extractvalue { ptr, i64, i64 } %t464, 1 %t466 = icmp uge i64 %t463, %t465 - br i1 %t466, label %range2021, label %inrange2022 -range2021: - call void @finch_panic_index(ptr @.str.1157, i64 288, i64 %t463, i64 %t465) + br i1 %t466, label %range2059, label %inrange2060 +range2059: + call void @finch_panic_index(ptr @.str.1177, i64 305, i64 %t463, i64 %t465) unreachable -inrange2022: +inrange2060: %t467 = extractvalue { ptr, i64, i64 } %t464, 0 %t468 = getelementptr inbounds %S.ast.Program, ptr %t467, i64 %t463 %t469 = getelementptr inbounds %S.ast.Program, ptr %t468, i32 0, i32 6 @@ -23171,11 +23810,11 @@ inrange2022: %t472 = load { ptr, i64, i64 }, ptr %t469 %t473 = extractvalue { ptr, i64, i64 } %t472, 1 %t474 = icmp uge i64 %t471, %t473 - br i1 %t474, label %range2023, label %inrange2024 -range2023: - call void @finch_panic_index(ptr @.str.1158, i64 288, i64 %t471, i64 %t473) + br i1 %t474, label %range2061, label %inrange2062 +range2061: + call void @finch_panic_index(ptr @.str.1178, i64 305, i64 %t471, i64 %t473) unreachable -inrange2024: +inrange2062: %t475 = extractvalue { ptr, i64, i64 } %t472, 0 %t476 = getelementptr inbounds %S.ast.Node, ptr %t475, i64 %t471 %t477 = load %S.ast.Node, ptr %t476 @@ -23185,21 +23824,21 @@ inrange2024: store %S.ast.Node %t480, ptr %a481 %t482 = load ptr, ptr %a1 %t483 = icmp eq ptr %t482, null - br i1 %t483, label %panic2025, label %ok2026 -panic2025: - call void @finch_panic(ptr @.str.1159, i64 289, ptr @.str.1160) + br i1 %t483, label %panic2063, label %ok2064 +panic2063: + call void @finch_panic(ptr @.str.1179, i64 306, ptr @.str.1180) unreachable -ok2026: - %t484 = getelementptr inbounds %S.gen.Gen, ptr %t482, i32 0, i32 28 +ok2064: + %t484 = getelementptr inbounds %S.gen.Gen, ptr %t482, i32 0, i32 29 %t485 = getelementptr inbounds { ptr, i64, i64 }, ptr %t484, i32 0, i32 1 %t486 = getelementptr inbounds %S.gen.StructDef, ptr %a451, i32 0, i32 0 %t487 = load { ptr, i64, i64 }, ptr %t486 - store { ptr, i64, i64 } { ptr @.str.1161, i64 3, i64 0 }, ptr %a489 + store { ptr, i64, i64 } { ptr @.str.1181, i64 3, i64 0 }, ptr %a489 store { ptr, i64, i64 } %t487, ptr %a490 call void @finch_str_concat(ptr %a488, ptr %a489, ptr %a490) %t491 = load { ptr, i64, i64 }, ptr %a488 store { ptr, i64, i64 } %t491, ptr %a493 - store { ptr, i64, i64 } { ptr @.str.1162, i64 1, i64 0 }, ptr %a494 + store { ptr, i64, i64 } { ptr @.str.1182, i64 1, i64 0 }, ptr %a494 call void @finch_str_concat(ptr %a492, ptr %a493, ptr %a494) store { ptr, i64, i64 } %t491, ptr %a495 call void @finch_str_drop(ptr %a495) @@ -23213,29 +23852,29 @@ ok2026: call void @finch_str_drop(ptr %a502) %t503 = load { ptr, i64, i64 }, ptr %a499 store { ptr, i64, i64 } %t503, ptr %a505 - store { ptr, i64, i64 } { ptr @.str.1163, i64 1, i64 0 }, ptr %a506 + store { ptr, i64, i64 } { ptr @.str.1183, i64 1, i64 0 }, ptr %a506 call void @finch_str_concat(ptr %a504, ptr %a505, ptr %a506) store { ptr, i64, i64 } %t503, ptr %a507 call void @finch_str_drop(ptr %a507) %t508 = load { ptr, i64, i64 }, ptr %a504 %t509 = load ptr, ptr %a1 %t510 = icmp eq ptr %t509, null - br i1 %t510, label %panic2027, label %ok2028 -panic2027: - call void @finch_panic(ptr @.str.1164, i64 289, ptr @.str.1165) + br i1 %t510, label %panic2065, label %ok2066 +panic2065: + call void @finch_panic(ptr @.str.1184, i64 306, ptr @.str.1185) unreachable -ok2028: +ok2066: %t511 = getelementptr inbounds %S.gen.Gen, ptr %t509, i32 0, i32 1 %t512 = getelementptr inbounds %S.ast.Node, ptr %a481, i32 0, i32 13 %t513 = load i64, ptr %t512 %t514 = load { ptr, i64, i64 }, ptr %t511 %t515 = extractvalue { ptr, i64, i64 } %t514, 1 %t516 = icmp uge i64 %t513, %t515 - br i1 %t516, label %range2029, label %inrange2030 -range2029: - call void @finch_panic_index(ptr @.str.1166, i64 289, i64 %t513, i64 %t515) + br i1 %t516, label %range2067, label %inrange2068 +range2067: + call void @finch_panic_index(ptr @.str.1186, i64 306, i64 %t513, i64 %t515) unreachable -inrange2030: +inrange2068: %t517 = extractvalue { ptr, i64, i64 } %t514, 0 %t518 = getelementptr inbounds { ptr, i64, i64 }, ptr %t517, i64 %t513 %t519 = load { ptr, i64, i64 }, ptr %t518 @@ -23246,7 +23885,7 @@ inrange2030: call void @finch_str_drop(ptr %a523) %t524 = load { ptr, i64, i64 }, ptr %a520 store { ptr, i64, i64 } %t524, ptr %a526 - store { ptr, i64, i64 } { ptr @.str.1167, i64 1, i64 0 }, ptr %a527 + store { ptr, i64, i64 } { ptr @.str.1187, i64 1, i64 0 }, ptr %a527 call void @finch_str_concat(ptr %a525, ptr %a526, ptr %a527) store { ptr, i64, i64 } %t524, ptr %a528 call void @finch_str_drop(ptr %a528) @@ -23264,7 +23903,7 @@ inrange2030: call void @finch_str_drop(ptr %a538) %t539 = load { ptr, i64, i64 }, ptr %a534 store { ptr, i64, i64 } %t539, ptr %a541 - store { ptr, i64, i64 } { ptr @.str.1168, i64 1, i64 0 }, ptr %a542 + store { ptr, i64, i64 } { ptr @.str.1188, i64 1, i64 0 }, ptr %a542 call void @finch_str_concat(ptr %a540, ptr %a541, ptr %a542) store { ptr, i64, i64 } %t539, ptr %a543 call void @finch_str_drop(ptr %a543) @@ -23292,29 +23931,29 @@ inrange2030: %t560 = getelementptr inbounds { ptr, i64, i64 }, ptr %t559, i32 0, i32 1 %t561 = load i64, ptr %t560 store i64 0, ptr %a562 - br label %for.cond2031 -for.cond2031: + br label %for.cond2069 +for.cond2069: %t563 = load i64, ptr %a562 %t564 = icmp slt i64 %t563, %t561 - br i1 %t564, label %for.body2032, label %for.end2034 -for.body2032: + br i1 %t564, label %for.body2070, label %for.end2072 +for.body2070: %t565 = load ptr, ptr %a1 %t566 = icmp eq ptr %t565, null - br i1 %t566, label %panic2035, label %ok2036 -panic2035: - call void @finch_panic(ptr @.str.1169, i64 291, ptr @.str.1170) + br i1 %t566, label %panic2073, label %ok2074 +panic2073: + call void @finch_panic(ptr @.str.1189, i64 308, ptr @.str.1190) unreachable -ok2036: - %t567 = getelementptr inbounds %S.gen.Gen, ptr %t565, i32 0, i32 28 +ok2074: + %t567 = getelementptr inbounds %S.gen.Gen, ptr %t565, i32 0, i32 29 %t568 = getelementptr inbounds { ptr, i64, i64 }, ptr %t567, i32 0, i32 1 %t569 = getelementptr inbounds %S.gen.StructDef, ptr %a451, i32 0, i32 0 %t570 = load { ptr, i64, i64 }, ptr %t569 - store { ptr, i64, i64 } { ptr @.str.1171, i64 4, i64 0 }, ptr %a572 + store { ptr, i64, i64 } { ptr @.str.1191, i64 4, i64 0 }, ptr %a572 store { ptr, i64, i64 } %t570, ptr %a573 call void @finch_str_concat(ptr %a571, ptr %a572, ptr %a573) %t574 = load { ptr, i64, i64 }, ptr %a571 store { ptr, i64, i64 } %t574, ptr %a576 - store { ptr, i64, i64 } { ptr @.str.1172, i64 1, i64 0 }, ptr %a577 + store { ptr, i64, i64 } { ptr @.str.1192, i64 1, i64 0 }, ptr %a577 call void @finch_str_concat(ptr %a575, ptr %a576, ptr %a577) store { ptr, i64, i64 } %t574, ptr %a578 call void @finch_str_drop(ptr %a578) @@ -23328,7 +23967,7 @@ ok2036: call void @finch_str_drop(ptr %a585) %t586 = load { ptr, i64, i64 }, ptr %a582 store { ptr, i64, i64 } %t586, ptr %a588 - store { ptr, i64, i64 } { ptr @.str.1173, i64 1, i64 0 }, ptr %a589 + store { ptr, i64, i64 } { ptr @.str.1193, i64 1, i64 0 }, ptr %a589 call void @finch_str_concat(ptr %a587, ptr %a588, ptr %a589) store { ptr, i64, i64 } %t586, ptr %a590 call void @finch_str_drop(ptr %a590) @@ -23338,11 +23977,11 @@ ok2036: %t594 = load { ptr, i64, i64 }, ptr %t592 %t595 = extractvalue { ptr, i64, i64 } %t594, 1 %t596 = icmp uge i64 %t593, %t595 - br i1 %t596, label %range2037, label %inrange2038 -range2037: - call void @finch_panic_index(ptr @.str.1174, i64 291, i64 %t593, i64 %t595) + br i1 %t596, label %range2075, label %inrange2076 +range2075: + call void @finch_panic_index(ptr @.str.1194, i64 308, i64 %t593, i64 %t595) unreachable -inrange2038: +inrange2076: %t597 = extractvalue { ptr, i64, i64 } %t594, 0 %t598 = getelementptr inbounds { ptr, i64, i64 }, ptr %t597, i64 %t593 %t599 = load { ptr, i64, i64 }, ptr %t598 @@ -23353,7 +23992,7 @@ inrange2038: call void @finch_str_drop(ptr %a603) %t604 = load { ptr, i64, i64 }, ptr %a600 store { ptr, i64, i64 } %t604, ptr %a606 - store { ptr, i64, i64 } { ptr @.str.1175, i64 1, i64 0 }, ptr %a607 + store { ptr, i64, i64 } { ptr @.str.1195, i64 1, i64 0 }, ptr %a607 call void @finch_str_concat(ptr %a605, ptr %a606, ptr %a607) store { ptr, i64, i64 } %t604, ptr %a608 call void @finch_str_drop(ptr %a608) @@ -23363,11 +24002,11 @@ inrange2038: %t612 = load { ptr, i64, i64 }, ptr %t610 %t613 = extractvalue { ptr, i64, i64 } %t612, 1 %t614 = icmp uge i64 %t611, %t613 - br i1 %t614, label %range2039, label %inrange2040 -range2039: - call void @finch_panic_index(ptr @.str.1176, i64 291, i64 %t611, i64 %t613) + br i1 %t614, label %range2077, label %inrange2078 +range2077: + call void @finch_panic_index(ptr @.str.1196, i64 308, i64 %t611, i64 %t613) unreachable -inrange2040: +inrange2078: %t615 = extractvalue { ptr, i64, i64 } %t612, 0 %t616 = getelementptr inbounds %S.ast.Type, ptr %t615, i64 %t611 %t617 = load %S.ast.Type, ptr %t616 @@ -23387,68 +24026,68 @@ inrange2040: %t628 = getelementptr inbounds { ptr, i64, i64 }, ptr %t627, i64 %t625 store { ptr, i64, i64 } %t624, ptr %t628 store i64 %t626, ptr %t568 - br label %for.step2033 -for.step2033: + br label %for.step2071 +for.step2071: %t629 = load i64, ptr %a562 %t630 = add i64 %t629, 1 store i64 %t630, ptr %a562 - br label %for.cond2031 -for.end2034: + br label %for.cond2069 +for.end2072: call void @finch.drop.S_ast_Node(ptr %a481) call void @finch.drop.S_gen_StructDef(ptr %a451) - br label %each.step2010 -each.step2010: + br label %each.step2048 +each.step2048: %t631 = load i64, ptr %a440 %t632 = add i64 %t631, 1 store i64 %t632, ptr %a440 - br label %each.cond2008 -each.end2011: + br label %each.cond2046 +each.end2049: %t633 = load ptr, ptr %a1 %t634 = icmp eq ptr %t633, null - br i1 %t634, label %panic2041, label %ok2042 -panic2041: - call void @finch_panic(ptr @.str.1177, i64 294, ptr @.str.1178) + br i1 %t634, label %panic2079, label %ok2080 +panic2079: + call void @finch_panic(ptr @.str.1197, i64 311, ptr @.str.1198) unreachable -ok2042: +ok2080: %t635 = getelementptr inbounds %S.gen.Gen, ptr %t633, i32 0, i32 0 %t636 = getelementptr inbounds { ptr, i64, i64 }, ptr %t635, i32 0, i32 1 %t637 = load i64, ptr %t636 store i64 0, ptr %a638 - br label %for.cond2043 -for.cond2043: + br label %for.cond2081 +for.cond2081: %t639 = load i64, ptr %a638 %t640 = icmp slt i64 %t639, %t637 - br i1 %t640, label %for.body2044, label %for.end2046 -for.body2044: + br i1 %t640, label %for.body2082, label %for.end2084 +for.body2082: %t641 = load ptr, ptr %a1 %t642 = icmp eq ptr %t641, null - br i1 %t642, label %panic2047, label %ok2048 -panic2047: - call void @finch_panic(ptr @.str.1179, i64 295, ptr @.str.1180) + br i1 %t642, label %panic2085, label %ok2086 +panic2085: + call void @finch_panic(ptr @.str.1199, i64 312, ptr @.str.1200) unreachable -ok2048: +ok2086: %t643 = getelementptr inbounds %S.gen.Gen, ptr %t641, i32 0, i32 0 %t644 = load i64, ptr %a638 %t645 = load { ptr, i64, i64 }, ptr %t643 %t646 = extractvalue { ptr, i64, i64 } %t645, 1 %t647 = icmp uge i64 %t644, %t646 - br i1 %t647, label %range2049, label %inrange2050 -range2049: - call void @finch_panic_index(ptr @.str.1181, i64 295, i64 %t644, i64 %t646) + br i1 %t647, label %range2087, label %inrange2088 +range2087: + call void @finch_panic_index(ptr @.str.1201, i64 312, i64 %t644, i64 %t646) unreachable -inrange2050: +inrange2088: %t648 = extractvalue { ptr, i64, i64 } %t645, 0 %t649 = getelementptr inbounds %S.ast.Program, ptr %t648, i64 %t644 %t650 = getelementptr inbounds %S.ast.Program, ptr %t649, i32 0, i32 7 store i64 0, ptr %a651 - br label %each.cond2051 -each.cond2051: + br label %each.cond2089 +each.cond2089: %t652 = getelementptr inbounds { ptr, i64, i64 }, ptr %t650, i32 0, i32 1 %t653 = load i64, ptr %t652 %t654 = load i64, ptr %a651 %t655 = icmp slt i64 %t654, %t653 - br i1 %t655, label %each.body2052, label %each.end2054 -each.body2052: + br i1 %t655, label %each.body2090, label %each.end2092 +each.body2090: %t656 = load ptr, ptr %t650 %t657 = getelementptr inbounds %S.ast.Node, ptr %t656, i64 %t654 %t658 = load %S.ast.Node, ptr %t657 @@ -23456,18 +24095,18 @@ each.body2052: call void @finch.copy.S_ast_Node(ptr %a660, ptr %a659) %t661 = load %S.ast.Node, ptr %a660 store %S.ast.Node %t661, ptr %a662 - store { ptr, i64, i64 } { ptr @.str.1182, i64 0, i64 0 }, ptr %a663 + store { ptr, i64, i64 } { ptr @.str.1202, i64 0, i64 0 }, ptr %a663 store { ptr, i64, i64 } zeroinitializer, ptr %a664 %t665 = getelementptr inbounds %S.ast.Node, ptr %a662, i32 0, i32 9 store i64 0, ptr %a666 - br label %each.cond2055 -each.cond2055: + br label %each.cond2093 +each.cond2093: %t667 = getelementptr inbounds { ptr, i64, i64 }, ptr %t665, i32 0, i32 1 %t668 = load i64, ptr %t667 %t669 = load i64, ptr %a666 %t670 = icmp slt i64 %t669, %t668 - br i1 %t670, label %each.body2056, label %each.end2058 -each.body2056: + br i1 %t670, label %each.body2094, label %each.end2096 +each.body2094: %t671 = load ptr, ptr %t665 %t672 = getelementptr inbounds %S.ast.Node, ptr %t671, i64 %t669 %t673 = load %S.ast.Node, ptr %t672 @@ -23485,15 +24124,15 @@ each.body2056: %t684 = getelementptr inbounds { ptr, i64, i64 }, ptr %t683, i64 %t681 store { ptr, i64, i64 } %t680, ptr %t684 store i64 %t682, ptr %t675 - br label %each.step2057 -each.step2057: + br label %each.step2095 +each.step2095: %t685 = load i64, ptr %a666 %t686 = add i64 %t685, 1 store i64 %t686, ptr %a666 - br label %each.cond2055 -each.end2058: + br label %each.cond2093 +each.end2096: %t687 = getelementptr inbounds { ptr, i64, i64 }, ptr %a664, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.1183, i64 1, i64 0 }, ptr %a688 + store { ptr, i64, i64 } { ptr @.str.1203, i64 1, i64 0 }, ptr %a688 call void @finch_str_join(ptr %a689, ptr %a664, ptr %a688) %t690 = load { ptr, i64, i64 }, ptr %a689 %t691 = load { ptr, i64, i64 }, ptr %a663 @@ -23502,40 +24141,40 @@ each.end2058: call void @finch_str_drop(ptr %a692) %t693 = load ptr, ptr %a1 %t694 = icmp eq ptr %t693, null - br i1 %t694, label %panic2059, label %ok2060 -panic2059: - call void @finch_panic(ptr @.str.1184, i64 302, ptr @.str.1185) + br i1 %t694, label %panic2097, label %ok2098 +panic2097: + call void @finch_panic(ptr @.str.1204, i64 319, ptr @.str.1205) unreachable -ok2060: - %t695 = getelementptr inbounds %S.gen.Gen, ptr %t693, i32 0, i32 28 +ok2098: + %t695 = getelementptr inbounds %S.gen.Gen, ptr %t693, i32 0, i32 29 %t696 = getelementptr inbounds { ptr, i64, i64 }, ptr %t695, i32 0, i32 1 %t697 = load ptr, ptr %a1 %t698 = icmp eq ptr %t697, null - br i1 %t698, label %panic2061, label %ok2062 -panic2061: - call void @finch_panic(ptr @.str.1187, i64 302, ptr @.str.1188) + br i1 %t698, label %panic2099, label %ok2100 +panic2099: + call void @finch_panic(ptr @.str.1207, i64 319, ptr @.str.1208) unreachable -ok2062: +ok2100: %t699 = getelementptr inbounds %S.gen.Gen, ptr %t697, i32 0, i32 0 %t700 = load i64, ptr %a638 %t701 = load { ptr, i64, i64 }, ptr %t699 %t702 = extractvalue { ptr, i64, i64 } %t701, 1 %t703 = icmp uge i64 %t700, %t702 - br i1 %t703, label %range2063, label %inrange2064 -range2063: - call void @finch_panic_index(ptr @.str.1189, i64 302, i64 %t700, i64 %t702) + br i1 %t703, label %range2101, label %inrange2102 +range2101: + call void @finch_panic_index(ptr @.str.1209, i64 319, i64 %t700, i64 %t702) unreachable -inrange2064: +inrange2102: %t704 = extractvalue { ptr, i64, i64 } %t701, 0 %t705 = getelementptr inbounds %S.ast.Program, ptr %t704, i64 %t700 %t706 = getelementptr inbounds %S.ast.Program, ptr %t705, i32 0, i32 0 %t707 = load { ptr, i64, i64 }, ptr %t706 - store { ptr, i64, i64 } { ptr @.str.1186, i64 3, i64 0 }, ptr %a709 + store { ptr, i64, i64 } { ptr @.str.1206, i64 3, i64 0 }, ptr %a709 store { ptr, i64, i64 } %t707, ptr %a710 call void @finch_str_concat(ptr %a708, ptr %a709, ptr %a710) %t711 = load { ptr, i64, i64 }, ptr %a708 store { ptr, i64, i64 } %t711, ptr %a713 - store { ptr, i64, i64 } { ptr @.str.1190, i64 1, i64 0 }, ptr %a714 + store { ptr, i64, i64 } { ptr @.str.1210, i64 1, i64 0 }, ptr %a714 call void @finch_str_concat(ptr %a712, ptr %a713, ptr %a714) store { ptr, i64, i64 } %t711, ptr %a715 call void @finch_str_drop(ptr %a715) @@ -23549,29 +24188,29 @@ inrange2064: call void @finch_str_drop(ptr %a722) %t723 = load { ptr, i64, i64 }, ptr %a719 store { ptr, i64, i64 } %t723, ptr %a725 - store { ptr, i64, i64 } { ptr @.str.1191, i64 1, i64 0 }, ptr %a726 + store { ptr, i64, i64 } { ptr @.str.1211, i64 1, i64 0 }, ptr %a726 call void @finch_str_concat(ptr %a724, ptr %a725, ptr %a726) store { ptr, i64, i64 } %t723, ptr %a727 call void @finch_str_drop(ptr %a727) %t728 = load { ptr, i64, i64 }, ptr %a724 %t729 = load ptr, ptr %a1 %t730 = icmp eq ptr %t729, null - br i1 %t730, label %panic2065, label %ok2066 -panic2065: - call void @finch_panic(ptr @.str.1192, i64 302, ptr @.str.1193) + br i1 %t730, label %panic2103, label %ok2104 +panic2103: + call void @finch_panic(ptr @.str.1212, i64 319, ptr @.str.1213) unreachable -ok2066: +ok2104: %t731 = getelementptr inbounds %S.gen.Gen, ptr %t729, i32 0, i32 1 %t732 = getelementptr inbounds %S.ast.Node, ptr %a662, i32 0, i32 13 %t733 = load i64, ptr %t732 %t734 = load { ptr, i64, i64 }, ptr %t731 %t735 = extractvalue { ptr, i64, i64 } %t734, 1 %t736 = icmp uge i64 %t733, %t735 - br i1 %t736, label %range2067, label %inrange2068 -range2067: - call void @finch_panic_index(ptr @.str.1194, i64 302, i64 %t733, i64 %t735) + br i1 %t736, label %range2105, label %inrange2106 +range2105: + call void @finch_panic_index(ptr @.str.1214, i64 319, i64 %t733, i64 %t735) unreachable -inrange2068: +inrange2106: %t737 = extractvalue { ptr, i64, i64 } %t734, 0 %t738 = getelementptr inbounds { ptr, i64, i64 }, ptr %t737, i64 %t733 %t739 = load { ptr, i64, i64 }, ptr %t738 @@ -23582,7 +24221,7 @@ inrange2068: call void @finch_str_drop(ptr %a743) %t744 = load { ptr, i64, i64 }, ptr %a740 store { ptr, i64, i64 } %t744, ptr %a746 - store { ptr, i64, i64 } { ptr @.str.1195, i64 1, i64 0 }, ptr %a747 + store { ptr, i64, i64 } { ptr @.str.1215, i64 1, i64 0 }, ptr %a747 call void @finch_str_concat(ptr %a745, ptr %a746, ptr %a747) store { ptr, i64, i64 } %t744, ptr %a748 call void @finch_str_drop(ptr %a748) @@ -23600,7 +24239,7 @@ inrange2068: call void @finch_str_drop(ptr %a758) %t759 = load { ptr, i64, i64 }, ptr %a754 store { ptr, i64, i64 } %t759, ptr %a761 - store { ptr, i64, i64 } { ptr @.str.1196, i64 1, i64 0 }, ptr %a762 + store { ptr, i64, i64 } { ptr @.str.1216, i64 1, i64 0 }, ptr %a762 call void @finch_str_concat(ptr %a760, ptr %a761, ptr %a762) store { ptr, i64, i64 } %t759, ptr %a763 call void @finch_str_drop(ptr %a763) @@ -23618,7 +24257,7 @@ inrange2068: call void @finch_str_drop(ptr %a773) %t774 = load { ptr, i64, i64 }, ptr %a769 store { ptr, i64, i64 } %t774, ptr %a776 - store { ptr, i64, i64 } { ptr @.str.1197, i64 1, i64 0 }, ptr %a777 + store { ptr, i64, i64 } { ptr @.str.1217, i64 1, i64 0 }, ptr %a777 call void @finch_str_concat(ptr %a775, ptr %a776, ptr %a777) store { ptr, i64, i64 } %t774, ptr %a778 call void @finch_str_drop(ptr %a778) @@ -23640,20 +24279,20 @@ inrange2068: call void @finch.drop.arr_str(ptr %a664) call void @finch_str_drop(ptr %a663) call void @finch.drop.S_ast_Node(ptr %a662) - br label %each.step2053 -each.step2053: + br label %each.step2091 +each.step2091: %t790 = load i64, ptr %a651 %t791 = add i64 %t790, 1 store i64 %t791, ptr %a651 - br label %each.cond2051 -each.end2054: - br label %for.step2045 -for.step2045: + br label %each.cond2089 +each.end2092: + br label %for.step2083 +for.step2083: %t792 = load i64, ptr %a638 %t793 = add i64 %t792, 1 store i64 %t793, ptr %a638 - br label %for.cond2043 -for.end2046: + br label %for.cond2081 +for.end2084: ret void } @@ -23702,81 +24341,81 @@ entry: store { ptr, i64, i64 } %p2, ptr %a3 %t4 = load ptr, ptr %a1 %t5 = icmp eq ptr %t4, null - br i1 %t5, label %panic2069, label %ok2070 -panic2069: - call void @finch_panic(ptr @.str.1198, i64 308, ptr @.str.1199) + br i1 %t5, label %panic2107, label %ok2108 +panic2107: + call void @finch_panic(ptr @.str.1218, i64 325, ptr @.str.1219) unreachable -ok2070: - %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 27 +ok2108: + %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 28 %t7 = load i1, ptr %t6 - br label %logic.from2071 -logic.from2071: - br i1 %t7, label %logic.rhs2072, label %logic.end2073 -logic.rhs2072: + br label %logic.from2109 +logic.from2109: + br i1 %t7, label %logic.rhs2110, label %logic.end2111 +logic.rhs2110: %t8 = load ptr, ptr %a1 %t9 = icmp eq ptr %t8, null - br i1 %t9, label %panic2074, label %ok2075 -panic2074: - call void @finch_panic(ptr @.str.1200, i64 308, ptr @.str.1201) + br i1 %t9, label %panic2112, label %ok2113 +panic2112: + call void @finch_panic(ptr @.str.1220, i64 325, ptr @.str.1221) unreachable -ok2075: - %t10 = getelementptr inbounds %S.gen.Gen, ptr %t8, i32 0, i32 28 +ok2113: + %t10 = getelementptr inbounds %S.gen.Gen, ptr %t8, i32 0, i32 29 %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %t10, i32 0, i32 1 %t12 = load i64, ptr %t11 %t13 = icmp sgt i64 %t12, 0 - br label %logic.rend2076 -logic.rend2076: - br label %logic.end2073 -logic.end2073: - %t14 = phi i1 [ false, %logic.from2071 ], [ %t13, %logic.rend2076 ] - br i1 %t14, label %then2077, label %endif2079 -then2077: + br label %logic.rend2114 +logic.rend2114: + br label %logic.end2111 +logic.end2111: + %t14 = phi i1 [ false, %logic.from2109 ], [ %t13, %logic.rend2114 ] + br i1 %t14, label %then2115, label %endif2117 +then2115: %t15 = load ptr, ptr %a1 %t16 = icmp eq ptr %t15, null - br i1 %t16, label %panic2080, label %ok2081 -panic2080: - call void @finch_panic(ptr @.str.1202, i64 309, ptr @.str.1203) + br i1 %t16, label %panic2118, label %ok2119 +panic2118: + call void @finch_panic(ptr @.str.1222, i64 326, ptr @.str.1223) unreachable -ok2081: - %t17 = getelementptr inbounds %S.gen.Gen, ptr %t15, i32 0, i32 28 +ok2119: + %t17 = getelementptr inbounds %S.gen.Gen, ptr %t15, i32 0, i32 29 %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %t17, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.1204, i64 1, i64 0 }, ptr %a19 + store { ptr, i64, i64 } { ptr @.str.1224, i64 1, i64 0 }, ptr %a19 call void @finch_str_join(ptr %a20, ptr %t17, ptr %a19) %t21 = load { ptr, i64, i64 }, ptr %a20 %t22 = extractvalue { ptr, i64, i64 } %t21, 1 %t23 = trunc i64 %t22 to i32 %t24 = extractvalue { ptr, i64, i64 } %t21, 0 %t25 = icmp eq ptr %t24, null - %t26 = select i1 %t25, ptr @.str.1205, ptr %t24 - %t27 = call i32 (ptr, ...) @printf(ptr @.str.1206, i32 %t23, ptr %t26) + %t26 = select i1 %t25, ptr @.str.1225, ptr %t24 + %t27 = call i32 (ptr, ...) @printf(ptr @.str.1226, i32 %t23, ptr %t26) store { ptr, i64, i64 } %t21, ptr %a28 call void @finch_str_drop(ptr %a28) - %t29 = call i32 (ptr, ...) @printf(ptr @.str.1207) - br label %endif2079 -endif2079: + %t29 = call i32 (ptr, ...) @printf(ptr @.str.1227) + br label %endif2117 +endif2117: %t30 = load ptr, ptr %a1 %t31 = icmp eq ptr %t30, null - br i1 %t31, label %panic2082, label %ok2083 -panic2082: - call void @finch_panic(ptr @.str.1208, i64 311, ptr @.str.1209) + br i1 %t31, label %panic2120, label %ok2121 +panic2120: + call void @finch_panic(ptr @.str.1228, i64 328, ptr @.str.1229) unreachable -ok2083: +ok2121: %t32 = getelementptr inbounds %S.gen.Gen, ptr %t30, i32 0, i32 1 %t33 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 13 %t34 = load i64, ptr %t33 %t35 = load { ptr, i64, i64 }, ptr %t32 %t36 = extractvalue { ptr, i64, i64 } %t35, 1 %t37 = icmp uge i64 %t34, %t36 - br i1 %t37, label %range2084, label %inrange2085 -range2084: - call void @finch_panic_index(ptr @.str.1210, i64 311, i64 %t34, i64 %t36) + br i1 %t37, label %range2122, label %inrange2123 +range2122: + call void @finch_panic_index(ptr @.str.1230, i64 328, i64 %t34, i64 %t36) unreachable -inrange2085: +inrange2123: %t38 = extractvalue { ptr, i64, i64 } %t35, 0 %t39 = getelementptr inbounds { ptr, i64, i64 }, ptr %t38, i64 %t34 %t40 = load { ptr, i64, i64 }, ptr %t39 store { ptr, i64, i64 } %t40, ptr %a42 - store { ptr, i64, i64 } { ptr @.str.1211, i64 1, i64 0 }, ptr %a43 + store { ptr, i64, i64 } { ptr @.str.1231, i64 1, i64 0 }, ptr %a43 call void @finch_str_concat(ptr %a41, ptr %a42, ptr %a43) %t44 = load { ptr, i64, i64 }, ptr %a41 %t45 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 11 @@ -23792,7 +24431,7 @@ inrange2085: call void @finch_str_drop(ptr %a53) %t54 = load { ptr, i64, i64 }, ptr %a49 store { ptr, i64, i64 } %t54, ptr %a56 - store { ptr, i64, i64 } { ptr @.str.1212, i64 1, i64 0 }, ptr %a57 + store { ptr, i64, i64 } { ptr @.str.1232, i64 1, i64 0 }, ptr %a57 call void @finch_str_concat(ptr %a55, ptr %a56, ptr %a57) store { ptr, i64, i64 } %t54, ptr %a58 call void @finch_str_drop(ptr %a58) @@ -23810,7 +24449,7 @@ inrange2085: call void @finch_str_drop(ptr %a68) %t69 = load { ptr, i64, i64 }, ptr %a64 store { ptr, i64, i64 } %t69, ptr %a71 - store { ptr, i64, i64 } { ptr @.str.1213, i64 9, i64 0 }, ptr %a72 + store { ptr, i64, i64 } { ptr @.str.1233, i64 9, i64 0 }, ptr %a72 call void @finch_str_concat(ptr %a70, ptr %a71, ptr %a72) store { ptr, i64, i64 } %t69, ptr %a73 call void @finch_str_drop(ptr %a73) @@ -23824,11 +24463,11 @@ inrange2085: %t80 = load { ptr, i64, i64 }, ptr %a76 %t81 = load ptr, ptr %a1 %t82 = icmp eq ptr %t81, null - br i1 %t82, label %panic2086, label %ok2087 -panic2086: - call void @finch_panic(ptr @.str.1214, i64 311, ptr @.str.1215) + br i1 %t82, label %panic2124, label %ok2125 +panic2124: + call void @finch_panic(ptr @.str.1234, i64 328, ptr @.str.1235) unreachable -ok2087: +ok2125: %t83 = getelementptr inbounds %S.gen.Gen, ptr %t81, i32 0, i32 20 %t84 = load { ptr, i64, i64 }, ptr %t83 store { ptr, i64, i64 } %t80, ptr %a86 @@ -23841,11 +24480,11 @@ ok2087: %t91 = trunc i64 %t90 to i32 %t92 = extractvalue { ptr, i64, i64 } %t89, 0 %t93 = icmp eq ptr %t92, null - %t94 = select i1 %t93, ptr @.str.1216, ptr %t92 - %t95 = call i32 (ptr, ...) @printf(ptr @.str.1217, i32 %t91, ptr %t94) + %t94 = select i1 %t93, ptr @.str.1236, ptr %t92 + %t95 = call i32 (ptr, ...) @printf(ptr @.str.1237, i32 %t91, ptr %t94) store { ptr, i64, i64 } %t89, ptr %a96 call void @finch_str_drop(ptr %a96) - %t97 = call i32 (ptr, ...) @printf(ptr @.str.1218) + %t97 = call i32 (ptr, ...) @printf(ptr @.str.1238) %t98 = trunc i64 1 to i32 %t99 = call i32 @fflush(ptr null) call void @exit(i32 %t98) @@ -23879,46 +24518,46 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic2088, label %ok2089 -panic2088: - call void @finch_panic(ptr @.str.1219, i64 317, ptr @.str.1220) + br i1 %t4, label %panic2126, label %ok2127 +panic2126: + call void @finch_panic(ptr @.str.1239, i64 334, ptr @.str.1240) unreachable -ok2089: - %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 35 +ok2127: + %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 36 %t6 = load i64, ptr %t5 %t7 = icmp sge i64 %t6, 0 - br label %logic.from2090 -logic.from2090: - br i1 %t7, label %logic.rhs2091, label %logic.end2092 -logic.rhs2091: + br label %logic.from2128 +logic.from2128: + br i1 %t7, label %logic.rhs2129, label %logic.end2130 +logic.rhs2129: %t8 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t8, ptr %a9 - store { ptr, i64, i64 } { ptr @.str.1222, i64 5, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.1242, i64 5, i64 0 }, ptr %a11 %t12 = call i64 @finch_str_find(ptr %a9, ptr %a11) %t13 = icmp sge i64 %t12, 0 - br label %logic.rend2093 -logic.rend2093: - br label %logic.end2092 -logic.end2092: - %t14 = phi i1 [ false, %logic.from2090 ], [ %t13, %logic.rend2093 ] - br i1 %t14, label %then2094, label %endif2096 -then2094: + br label %logic.rend2131 +logic.rend2131: + br label %logic.end2130 +logic.end2130: + %t14 = phi i1 [ false, %logic.from2128 ], [ %t13, %logic.rend2131 ] + br i1 %t14, label %then2132, label %endif2134 +then2132: %t15 = load ptr, ptr %a1 %t16 = icmp eq ptr %t15, null - br i1 %t16, label %panic2097, label %ok2098 -panic2097: - call void @finch_panic(ptr @.str.1223, i64 318, ptr @.str.1224) + br i1 %t16, label %panic2135, label %ok2136 +panic2135: + call void @finch_panic(ptr @.str.1243, i64 335, ptr @.str.1244) unreachable -ok2098: +ok2136: %t17 = getelementptr inbounds %S.gen.Gen, ptr %t15, i32 0, i32 4 %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %t17, i32 0, i32 1 %t19 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1225, i64 2, i64 0 }, ptr %a21 + store { ptr, i64, i64 } { ptr @.str.1245, i64 2, i64 0 }, ptr %a21 store { ptr, i64, i64 } %t19, ptr %a22 call void @finch_str_concat(ptr %a20, ptr %a21, ptr %a22) %t23 = load { ptr, i64, i64 }, ptr %a20 store { ptr, i64, i64 } %t23, ptr %a25 - store { ptr, i64, i64 } { ptr @.str.1226, i64 8, i64 0 }, ptr %a26 + store { ptr, i64, i64 } { ptr @.str.1246, i64 8, i64 0 }, ptr %a26 call void @finch_str_concat(ptr %a24, ptr %a25, ptr %a26) store { ptr, i64, i64 } %t23, ptr %a27 call void @finch_str_drop(ptr %a27) @@ -23943,18 +24582,18 @@ ok2098: store { ptr, i64, i64 } %t38, ptr %t42 store i64 %t40, ptr %t18 ret void -endif2096: +endif2134: %t43 = load ptr, ptr %a1 %t44 = icmp eq ptr %t43, null - br i1 %t44, label %panic2099, label %ok2100 -panic2099: - call void @finch_panic(ptr @.str.1227, i64 321, ptr @.str.1228) + br i1 %t44, label %panic2137, label %ok2138 +panic2137: + call void @finch_panic(ptr @.str.1247, i64 338, ptr @.str.1248) unreachable -ok2100: +ok2138: %t45 = getelementptr inbounds %S.gen.Gen, ptr %t43, i32 0, i32 4 %t46 = getelementptr inbounds { ptr, i64, i64 }, ptr %t45, i32 0, i32 1 %t47 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1229, i64 2, i64 0 }, ptr %a49 + store { ptr, i64, i64 } { ptr @.str.1249, i64 2, i64 0 }, ptr %a49 store { ptr, i64, i64 } %t47, ptr %a50 call void @finch_str_concat(ptr %a48, ptr %a49, ptr %a50) %t51 = load { ptr, i64, i64 }, ptr %a48 @@ -23979,27 +24618,27 @@ entry: store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 %t3 = icmp eq ptr %t2, null - br i1 %t3, label %panic2101, label %ok2102 -panic2101: - call void @finch_panic(ptr @.str.1230, i64 325, ptr @.str.1231) + br i1 %t3, label %panic2139, label %ok2140 +panic2139: + call void @finch_panic(ptr @.str.1250, i64 342, ptr @.str.1251) unreachable -ok2102: +ok2140: %t4 = getelementptr inbounds %S.gen.Gen, ptr %t2, i32 0, i32 6 %t5 = load i64, ptr %t4 %t6 = add i64 %t5, 1 store i64 %t6, ptr %t4 %t7 = load ptr, ptr %a1 %t8 = icmp eq ptr %t7, null - br i1 %t8, label %panic2103, label %ok2104 -panic2103: - call void @finch_panic(ptr @.str.1233, i64 326, ptr @.str.1234) + br i1 %t8, label %panic2141, label %ok2142 +panic2141: + call void @finch_panic(ptr @.str.1253, i64 343, ptr @.str.1254) unreachable -ok2104: +ok2142: %t9 = getelementptr inbounds %S.gen.Gen, ptr %t7, i32 0, i32 6 %t10 = load i64, ptr %t9 call void @finch_str_from_int(ptr %a11, i64 %t10) %t12 = load { ptr, i64, i64 }, ptr %a11 - store { ptr, i64, i64 } { ptr @.str.1232, i64 2, i64 0 }, ptr %a14 + store { ptr, i64, i64 } { ptr @.str.1252, i64 2, i64 0 }, ptr %a14 store { ptr, i64, i64 } %t12, ptr %a15 call void @finch_str_concat(ptr %a13, ptr %a14, ptr %a15) store { ptr, i64, i64 } %t12, ptr %a16 @@ -24021,11 +24660,11 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic2105, label %ok2106 -panic2105: - call void @finch_panic(ptr @.str.1235, i64 330, ptr @.str.1236) + br i1 %t4, label %panic2143, label %ok2144 +panic2143: + call void @finch_panic(ptr @.str.1255, i64 347, ptr @.str.1256) unreachable -ok2106: +ok2144: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 7 %t6 = load i64, ptr %t5 %t7 = add i64 %t6, 1 @@ -24033,11 +24672,11 @@ ok2106: %t8 = load { ptr, i64, i64 }, ptr %a2 %t9 = load ptr, ptr %a1 %t10 = icmp eq ptr %t9, null - br i1 %t10, label %panic2107, label %ok2108 -panic2107: - call void @finch_panic(ptr @.str.1237, i64 331, ptr @.str.1238) + br i1 %t10, label %panic2145, label %ok2146 +panic2145: + call void @finch_panic(ptr @.str.1257, i64 348, ptr @.str.1258) unreachable -ok2108: +ok2146: %t11 = getelementptr inbounds %S.gen.Gen, ptr %t9, i32 0, i32 7 %t12 = load i64, ptr %t11 call void @finch_str_from_int(ptr %a13, i64 %t12) @@ -24062,16 +24701,16 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic2109, label %ok2110 -panic2109: - call void @finch_panic(ptr @.str.1239, i64 335, ptr @.str.1240) + br i1 %t4, label %panic2147, label %ok2148 +panic2147: + call void @finch_panic(ptr @.str.1259, i64 352, ptr @.str.1260) unreachable -ok2110: +ok2148: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 4 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t7 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t7, ptr %a9 - store { ptr, i64, i64 } { ptr @.str.1241, i64 1, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.1261, i64 1, i64 0 }, ptr %a10 call void @finch_str_concat(ptr %a8, ptr %a9, ptr %a10) %t11 = load { ptr, i64, i64 }, ptr %a8 %t12 = load i64, ptr %t6 @@ -24083,11 +24722,11 @@ ok2110: store i64 %t13, ptr %t6 %t16 = load ptr, ptr %a1 %t17 = icmp eq ptr %t16, null - br i1 %t17, label %panic2111, label %ok2112 -panic2111: - call void @finch_panic(ptr @.str.1242, i64 336, ptr @.str.1243) + br i1 %t17, label %panic2149, label %ok2150 +panic2149: + call void @finch_panic(ptr @.str.1262, i64 353, ptr @.str.1263) unreachable -ok2112: +ok2150: %t18 = getelementptr inbounds %S.gen.Gen, ptr %t16, i32 0, i32 9 store i1 false, ptr %t18 ret void @@ -24105,19 +24744,19 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic2113, label %ok2114 -panic2113: - call void @finch_panic(ptr @.str.1244, i64 340, ptr @.str.1245) + br i1 %t4, label %panic2151, label %ok2152 +panic2151: + call void @finch_panic(ptr @.str.1264, i64 357, ptr @.str.1265) unreachable -ok2114: +ok2152: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 9 %t6 = load i1, ptr %t5 %t7 = xor i1 %t6, true - br i1 %t7, label %then2115, label %endif2117 -then2115: + br i1 %t7, label %then2153, label %endif2155 +then2153: %t8 = load ptr, ptr %a1 %t9 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1246, i64 10, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.1266, i64 10, i64 0 }, ptr %a11 store { ptr, i64, i64 } %t9, ptr %a12 call void @finch_str_concat(ptr %a10, ptr %a11, ptr %a12) %t13 = load { ptr, i64, i64 }, ptr %a10 @@ -24126,15 +24765,15 @@ then2115: call void @finch_str_drop(ptr %a14) %t15 = load ptr, ptr %a1 %t16 = icmp eq ptr %t15, null - br i1 %t16, label %panic2118, label %ok2119 -panic2118: - call void @finch_panic(ptr @.str.1247, i64 342, ptr @.str.1248) + br i1 %t16, label %panic2156, label %ok2157 +panic2156: + call void @finch_panic(ptr @.str.1267, i64 359, ptr @.str.1268) unreachable -ok2119: +ok2157: %t17 = getelementptr inbounds %S.gen.Gen, ptr %t15, i32 0, i32 9 store i1 true, ptr %t17 - br label %endif2117 -endif2117: + br label %endif2155 +endif2155: ret void } @@ -24170,12 +24809,12 @@ entry: store { ptr, i64, i64 } %p3, ptr %a4 %t5 = load ptr, ptr %a1 %t6 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1249, i64 6, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.1269, i64 6, i64 0 }, ptr %a8 store { ptr, i64, i64 } %t6, ptr %a9 call void @finch_str_concat(ptr %a7, ptr %a8, ptr %a9) %t10 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t10, ptr %a12 - store { ptr, i64, i64 } { ptr @.str.1250, i64 9, i64 0 }, ptr %a13 + store { ptr, i64, i64 } { ptr @.str.1270, i64 9, i64 0 }, ptr %a13 call void @finch_str_concat(ptr %a11, ptr %a12, ptr %a13) store { ptr, i64, i64 } %t10, ptr %a14 call void @finch_str_drop(ptr %a14) @@ -24188,7 +24827,7 @@ entry: call void @finch_str_drop(ptr %a20) %t21 = load { ptr, i64, i64 }, ptr %a17 store { ptr, i64, i64 } %t21, ptr %a23 - store { ptr, i64, i64 } { ptr @.str.1251, i64 9, i64 0 }, ptr %a24 + store { ptr, i64, i64 } { ptr @.str.1271, i64 9, i64 0 }, ptr %a24 call void @finch_str_concat(ptr %a22, ptr %a23, ptr %a24) store { ptr, i64, i64 } %t21, ptr %a25 call void @finch_str_drop(ptr %a25) @@ -24205,11 +24844,11 @@ entry: call void @finch_str_drop(ptr %a33) %t34 = load ptr, ptr %a1 %t35 = icmp eq ptr %t34, null - br i1 %t35, label %panic2120, label %ok2121 -panic2120: - call void @finch_panic(ptr @.str.1252, i64 348, ptr @.str.1253) + br i1 %t35, label %panic2158, label %ok2159 +panic2158: + call void @finch_panic(ptr @.str.1272, i64 365, ptr @.str.1273) unreachable -ok2121: +ok2159: %t36 = getelementptr inbounds %S.gen.Gen, ptr %t34, i32 0, i32 9 store i1 true, ptr %t36 ret void @@ -24244,27 +24883,27 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic2122, label %ok2123 -panic2122: - call void @finch_panic(ptr @.str.1254, i64 352, ptr @.str.1255) + br i1 %t4, label %panic2160, label %ok2161 +panic2160: + call void @finch_panic(ptr @.str.1274, i64 369, ptr @.str.1275) unreachable -ok2123: +ok2161: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 6 %t6 = load i64, ptr %t5 %t7 = add i64 %t6, 1 store i64 %t7, ptr %t5 %t8 = load ptr, ptr %a1 %t9 = icmp eq ptr %t8, null - br i1 %t9, label %panic2124, label %ok2125 -panic2124: - call void @finch_panic(ptr @.str.1257, i64 353, ptr @.str.1258) + br i1 %t9, label %panic2162, label %ok2163 +panic2162: + call void @finch_panic(ptr @.str.1277, i64 370, ptr @.str.1278) unreachable -ok2125: +ok2163: %t10 = getelementptr inbounds %S.gen.Gen, ptr %t8, i32 0, i32 6 %t11 = load i64, ptr %t10 call void @finch_str_from_int(ptr %a12, i64 %t11) %t13 = load { ptr, i64, i64 }, ptr %a12 - store { ptr, i64, i64 } { ptr @.str.1256, i64 2, i64 0 }, ptr %a15 + store { ptr, i64, i64 } { ptr @.str.1276, i64 2, i64 0 }, ptr %a15 store { ptr, i64, i64 } %t13, ptr %a16 call void @finch_str_concat(ptr %a14, ptr %a15, ptr %a16) store { ptr, i64, i64 } %t13, ptr %a17 @@ -24273,20 +24912,20 @@ ok2125: store { ptr, i64, i64 } %t18, ptr %a19 %t20 = load ptr, ptr %a1 %t21 = icmp eq ptr %t20, null - br i1 %t21, label %panic2126, label %ok2127 -panic2126: - call void @finch_panic(ptr @.str.1259, i64 354, ptr @.str.1260) + br i1 %t21, label %panic2164, label %ok2165 +panic2164: + call void @finch_panic(ptr @.str.1279, i64 371, ptr @.str.1280) unreachable -ok2127: +ok2165: %t22 = getelementptr inbounds %S.gen.Gen, ptr %t20, i32 0, i32 5 %t23 = getelementptr inbounds { ptr, i64, i64 }, ptr %t22, i32 0, i32 1 %t24 = load { ptr, i64, i64 }, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.1261, i64 2, i64 0 }, ptr %a26 + store { ptr, i64, i64 } { ptr @.str.1281, i64 2, i64 0 }, ptr %a26 store { ptr, i64, i64 } %t24, ptr %a27 call void @finch_str_concat(ptr %a25, ptr %a26, ptr %a27) %t28 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t28, ptr %a30 - store { ptr, i64, i64 } { ptr @.str.1262, i64 10, i64 0 }, ptr %a31 + store { ptr, i64, i64 } { ptr @.str.1282, i64 10, i64 0 }, ptr %a31 call void @finch_str_concat(ptr %a29, ptr %a30, ptr %a31) store { ptr, i64, i64 } %t28, ptr %a32 call void @finch_str_drop(ptr %a32) @@ -24299,7 +24938,7 @@ ok2127: call void @finch_str_drop(ptr %a38) %t39 = load { ptr, i64, i64 }, ptr %a35 store { ptr, i64, i64 } %t39, ptr %a41 - store { ptr, i64, i64 } { ptr @.str.1263, i64 10, i64 0 }, ptr %a42 + store { ptr, i64, i64 } { ptr @.str.1283, i64 10, i64 0 }, ptr %a42 call void @finch_str_concat(ptr %a40, ptr %a41, ptr %a42) store { ptr, i64, i64 } %t39, ptr %a43 call void @finch_str_drop(ptr %a43) @@ -24346,7 +24985,7 @@ entry: %t7 = load ptr, ptr %a1 %t8 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t8, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.1264, i64 8, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.1284, i64 8, i64 0 }, ptr %a11 call void @finch_str_concat(ptr %a9, ptr %a10, ptr %a11) %t12 = load { ptr, i64, i64 }, ptr %a9 %t13 = load { ptr, i64, i64 }, ptr %a2 @@ -24357,7 +24996,7 @@ entry: call void @finch_str_drop(ptr %a17) %t18 = load { ptr, i64, i64 }, ptr %a14 store { ptr, i64, i64 } %t18, ptr %a20 - store { ptr, i64, i64 } { ptr @.str.1265, i64 6, i64 0 }, ptr %a21 + store { ptr, i64, i64 } { ptr @.str.1285, i64 6, i64 0 }, ptr %a21 call void @finch_str_concat(ptr %a19, ptr %a20, ptr %a21) store { ptr, i64, i64 } %t18, ptr %a22 call void @finch_str_drop(ptr %a22) @@ -24408,12 +25047,12 @@ entry: store { ptr, i64, i64 } %p3, ptr %a4 %t5 = load ptr, ptr %a1 %t6 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1266, i64 6, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.1286, i64 6, i64 0 }, ptr %a8 store { ptr, i64, i64 } %t6, ptr %a9 call void @finch_str_concat(ptr %a7, ptr %a8, ptr %a9) %t10 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t10, ptr %a12 - store { ptr, i64, i64 } { ptr @.str.1267, i64 1, i64 0 }, ptr %a13 + store { ptr, i64, i64 } { ptr @.str.1287, i64 1, i64 0 }, ptr %a13 call void @finch_str_concat(ptr %a11, ptr %a12, ptr %a13) store { ptr, i64, i64 } %t10, ptr %a14 call void @finch_str_drop(ptr %a14) @@ -24426,7 +25065,7 @@ entry: call void @finch_str_drop(ptr %a20) %t21 = load { ptr, i64, i64 }, ptr %a17 store { ptr, i64, i64 } %t21, ptr %a23 - store { ptr, i64, i64 } { ptr @.str.1268, i64 6, i64 0 }, ptr %a24 + store { ptr, i64, i64 } { ptr @.str.1288, i64 6, i64 0 }, ptr %a24 call void @finch_str_concat(ptr %a22, ptr %a23, ptr %a24) store { ptr, i64, i64 } %t21, ptr %a25 call void @finch_str_drop(ptr %a25) @@ -24498,7 +25137,7 @@ entry: %t6 = load ptr, ptr %a1 %t7 = load { ptr, i64, i64 }, ptr %a5 store { ptr, i64, i64 } %t7, ptr %a9 - store { ptr, i64, i64 } { ptr @.str.1269, i64 3, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.1289, i64 3, i64 0 }, ptr %a10 call void @finch_str_concat(ptr %a8, ptr %a9, ptr %a10) %t11 = load { ptr, i64, i64 }, ptr %a8 %t12 = load { ptr, i64, i64 }, ptr %a2 @@ -24531,27 +25170,27 @@ entry: %t6 = load i64, ptr %t3 %t7 = load ptr, ptr %a1 store i64 0, ptr %a8 - br label %find.cond2128 -find.cond2128: + br label %find.cond2166 +find.cond2166: %t9 = load i64, ptr %a8 %t10 = icmp slt i64 %t9, %t6 - br i1 %t10, label %find.body2129, label %find.end2132 -find.body2129: + br i1 %t10, label %find.body2167, label %find.end2170 +find.body2167: %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %t7, i64 %t9 %t12 = load { ptr, i64, i64 }, ptr %t11 store { ptr, i64, i64 } %t12, ptr %a13 store { ptr, i64, i64 } %t4, ptr %a14 %t15 = call i32 @finch_str_eq(ptr %a13, ptr %a14) %t16 = icmp ne i32 %t15, 0 - br i1 %t16, label %find.hit2130, label %find.next2131 -find.hit2130: + br i1 %t16, label %find.hit2168, label %find.next2169 +find.hit2168: store i64 %t9, ptr %a5 - br label %find.end2132 -find.next2131: + br label %find.end2170 +find.next2169: %t17 = add i64 %t9, 1 store i64 %t17, ptr %a8 - br label %find.cond2128 -find.end2132: + br label %find.cond2166 +find.end2170: %t18 = load i64, ptr %a5 %t19 = icmp sge i64 %t18, 0 ret i1 %t19 @@ -24589,51 +25228,51 @@ entry: store { ptr, i64, i64 } %t6, ptr %a7 %t8 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t8, ptr %a9 - store { ptr, i64, i64 } { ptr @.str.1270, i64 3, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.1290, i64 3, i64 0 }, ptr %a10 %t11 = call i32 @finch_str_eq(ptr %a9, ptr %a10) %t12 = icmp ne i32 %t11, 0 - br label %logic.from2133 -logic.from2133: - br i1 %t12, label %logic.end2135, label %logic.rhs2134 -logic.rhs2134: + br label %logic.from2171 +logic.from2171: + br i1 %t12, label %logic.end2173, label %logic.rhs2172 +logic.rhs2172: %t13 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t13, ptr %a14 - store { ptr, i64, i64 } { ptr @.str.1271, i64 2, i64 0 }, ptr %a15 + store { ptr, i64, i64 } { ptr @.str.1291, i64 2, i64 0 }, ptr %a15 %t16 = call i32 @finch_str_eq(ptr %a14, ptr %a15) %t17 = icmp ne i32 %t16, 0 - br label %logic.rend2136 -logic.rend2136: - br label %logic.end2135 -logic.end2135: - %t18 = phi i1 [ true, %logic.from2133 ], [ %t17, %logic.rend2136 ] - br label %logic.from2137 -logic.from2137: - br i1 %t18, label %logic.end2139, label %logic.rhs2138 -logic.rhs2138: + br label %logic.rend2174 +logic.rend2174: + br label %logic.end2173 +logic.end2173: + %t18 = phi i1 [ true, %logic.from2171 ], [ %t17, %logic.rend2174 ] + br label %logic.from2175 +logic.from2175: + br i1 %t18, label %logic.end2177, label %logic.rhs2176 +logic.rhs2176: %t19 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t19, ptr %a20 - store { ptr, i64, i64 } { ptr @.str.1272, i64 3, i64 0 }, ptr %a21 + store { ptr, i64, i64 } { ptr @.str.1292, i64 3, i64 0 }, ptr %a21 %t22 = call i32 @finch_str_eq(ptr %a20, ptr %a21) %t23 = icmp ne i32 %t22, 0 - br label %logic.rend2140 -logic.rend2140: - br label %logic.end2139 -logic.end2139: - %t24 = phi i1 [ true, %logic.from2137 ], [ %t23, %logic.rend2140 ] - br label %logic.from2141 -logic.from2141: - br i1 %t24, label %logic.end2143, label %logic.rhs2142 -logic.rhs2142: + br label %logic.rend2178 +logic.rend2178: + br label %logic.end2177 +logic.end2177: + %t24 = phi i1 [ true, %logic.from2175 ], [ %t23, %logic.rend2178 ] + br label %logic.from2179 +logic.from2179: + br i1 %t24, label %logic.end2181, label %logic.rhs2180 +logic.rhs2180: %t25 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t25, ptr %a26 - store { ptr, i64, i64 } { ptr @.str.1273, i64 3, i64 0 }, ptr %a27 + store { ptr, i64, i64 } { ptr @.str.1293, i64 3, i64 0 }, ptr %a27 %t28 = call i32 @finch_str_eq(ptr %a26, ptr %a27) %t29 = icmp ne i32 %t28, 0 - br label %logic.rend2144 -logic.rend2144: - br label %logic.end2143 -logic.end2143: - %t30 = phi i1 [ true, %logic.from2141 ], [ %t29, %logic.rend2144 ] + br label %logic.rend2182 +logic.rend2182: + br label %logic.end2181 +logic.end2181: + %t30 = phi i1 [ true, %logic.from2179 ], [ %t29, %logic.rend2182 ] call void @finch_str_drop(ptr %a7) ret i1 %t30 } @@ -24661,51 +25300,51 @@ entry: store { ptr, i64, i64 } %t6, ptr %a7 %t8 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t8, ptr %a9 - store { ptr, i64, i64 } { ptr @.str.1274, i64 2, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.1294, i64 2, i64 0 }, ptr %a10 %t11 = call i32 @finch_str_eq(ptr %a9, ptr %a10) %t12 = icmp ne i32 %t11, 0 - br label %logic.from2145 -logic.from2145: - br i1 %t12, label %logic.end2147, label %logic.rhs2146 -logic.rhs2146: + br label %logic.from2183 +logic.from2183: + br i1 %t12, label %logic.end2185, label %logic.rhs2184 +logic.rhs2184: %t13 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t13, ptr %a14 - store { ptr, i64, i64 } { ptr @.str.1275, i64 3, i64 0 }, ptr %a15 + store { ptr, i64, i64 } { ptr @.str.1295, i64 3, i64 0 }, ptr %a15 %t16 = call i32 @finch_str_eq(ptr %a14, ptr %a15) %t17 = icmp ne i32 %t16, 0 - br label %logic.rend2148 -logic.rend2148: - br label %logic.end2147 -logic.end2147: - %t18 = phi i1 [ true, %logic.from2145 ], [ %t17, %logic.rend2148 ] - br label %logic.from2149 -logic.from2149: - br i1 %t18, label %logic.end2151, label %logic.rhs2150 -logic.rhs2150: + br label %logic.rend2186 +logic.rend2186: + br label %logic.end2185 +logic.end2185: + %t18 = phi i1 [ true, %logic.from2183 ], [ %t17, %logic.rend2186 ] + br label %logic.from2187 +logic.from2187: + br i1 %t18, label %logic.end2189, label %logic.rhs2188 +logic.rhs2188: %t19 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t19, ptr %a20 - store { ptr, i64, i64 } { ptr @.str.1276, i64 3, i64 0 }, ptr %a21 + store { ptr, i64, i64 } { ptr @.str.1296, i64 3, i64 0 }, ptr %a21 %t22 = call i32 @finch_str_eq(ptr %a20, ptr %a21) %t23 = icmp ne i32 %t22, 0 - br label %logic.rend2152 -logic.rend2152: - br label %logic.end2151 -logic.end2151: - %t24 = phi i1 [ true, %logic.from2149 ], [ %t23, %logic.rend2152 ] - br label %logic.from2153 -logic.from2153: - br i1 %t24, label %logic.end2155, label %logic.rhs2154 -logic.rhs2154: + br label %logic.rend2190 +logic.rend2190: + br label %logic.end2189 +logic.end2189: + %t24 = phi i1 [ true, %logic.from2187 ], [ %t23, %logic.rend2190 ] + br label %logic.from2191 +logic.from2191: + br i1 %t24, label %logic.end2193, label %logic.rhs2192 +logic.rhs2192: %t25 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t25, ptr %a26 - store { ptr, i64, i64 } { ptr @.str.1277, i64 3, i64 0 }, ptr %a27 + store { ptr, i64, i64 } { ptr @.str.1297, i64 3, i64 0 }, ptr %a27 %t28 = call i32 @finch_str_eq(ptr %a26, ptr %a27) %t29 = icmp ne i32 %t28, 0 - br label %logic.rend2156 -logic.rend2156: - br label %logic.end2155 -logic.end2155: - %t30 = phi i1 [ true, %logic.from2153 ], [ %t29, %logic.rend2156 ] + br label %logic.rend2194 +logic.rend2194: + br label %logic.end2193 +logic.end2193: + %t30 = phi i1 [ true, %logic.from2191 ], [ %t29, %logic.rend2194 ] call void @finch_str_drop(ptr %a7) ret i1 %t30 } @@ -24716,17 +25355,17 @@ entry: store %S.ast.Type %p0, ptr %a1 %t2 = load %S.ast.Type, ptr %a1 %t3 = call i1 @finch.gen.isSigned(%S.ast.Type %t2) - br label %logic.from2157 -logic.from2157: - br i1 %t3, label %logic.end2159, label %logic.rhs2158 -logic.rhs2158: + br label %logic.from2195 +logic.from2195: + br i1 %t3, label %logic.end2197, label %logic.rhs2196 +logic.rhs2196: %t4 = load %S.ast.Type, ptr %a1 %t5 = call i1 @finch.gen.isUnsigned(%S.ast.Type %t4) - br label %logic.rend2160 -logic.rend2160: - br label %logic.end2159 -logic.end2159: - %t6 = phi i1 [ true, %logic.from2157 ], [ %t5, %logic.rend2160 ] + br label %logic.rend2198 +logic.rend2198: + br label %logic.end2197 +logic.end2197: + %t6 = phi i1 [ true, %logic.from2195 ], [ %t5, %logic.rend2198 ] ret i1 %t6 } @@ -24741,24 +25380,24 @@ entry: %t2 = getelementptr inbounds %S.ast.Type, ptr %a1, i32 0, i32 0 %t3 = load { ptr, i64, i64 }, ptr %t2 store { ptr, i64, i64 } %t3, ptr %a4 - store { ptr, i64, i64 } { ptr @.str.1278, i64 5, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.1298, i64 5, i64 0 }, ptr %a5 %t6 = call i32 @finch_str_eq(ptr %a4, ptr %a5) %t7 = icmp ne i32 %t6, 0 - br label %logic.from2161 -logic.from2161: - br i1 %t7, label %logic.end2163, label %logic.rhs2162 -logic.rhs2162: + br label %logic.from2199 +logic.from2199: + br i1 %t7, label %logic.end2201, label %logic.rhs2200 +logic.rhs2200: %t8 = getelementptr inbounds %S.ast.Type, ptr %a1, i32 0, i32 0 %t9 = load { ptr, i64, i64 }, ptr %t8 store { ptr, i64, i64 } %t9, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.1279, i64 3, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.1299, i64 3, i64 0 }, ptr %a11 %t12 = call i32 @finch_str_eq(ptr %a10, ptr %a11) %t13 = icmp ne i32 %t12, 0 - br label %logic.rend2164 -logic.rend2164: - br label %logic.end2163 -logic.end2163: - %t14 = phi i1 [ true, %logic.from2161 ], [ %t13, %logic.rend2164 ] + br label %logic.rend2202 +logic.rend2202: + br label %logic.end2201 +logic.end2201: + %t14 = phi i1 [ true, %logic.from2199 ], [ %t13, %logic.rend2202 ] ret i1 %t14 } @@ -24768,17 +25407,17 @@ entry: store %S.ast.Type %p0, ptr %a1 %t2 = load %S.ast.Type, ptr %a1 %t3 = call i1 @finch.gen.isInt(%S.ast.Type %t2) - br label %logic.from2165 -logic.from2165: - br i1 %t3, label %logic.end2167, label %logic.rhs2166 -logic.rhs2166: + br label %logic.from2203 +logic.from2203: + br i1 %t3, label %logic.end2205, label %logic.rhs2204 +logic.rhs2204: %t4 = load %S.ast.Type, ptr %a1 %t5 = call i1 @finch.gen.isFloat(%S.ast.Type %t4) - br label %logic.rend2168 -logic.rend2168: - br label %logic.end2167 -logic.end2167: - %t6 = phi i1 [ true, %logic.from2165 ], [ %t5, %logic.rend2168 ] + br label %logic.rend2206 +logic.rend2206: + br label %logic.end2205 +logic.end2205: + %t6 = phi i1 [ true, %logic.from2203 ], [ %t5, %logic.rend2206 ] ret i1 %t6 } @@ -24815,114 +25454,114 @@ entry: store { ptr, i64, i64 } %t6, ptr %a7 %t8 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t8, ptr %a9 - store { ptr, i64, i64 } { ptr @.str.1280, i64 4, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.1300, i64 4, i64 0 }, ptr %a10 %t11 = call i32 @finch_str_eq(ptr %a9, ptr %a10) %t12 = icmp ne i32 %t11, 0 - br i1 %t12, label %then2169, label %endif2171 -then2169: + br i1 %t12, label %then2207, label %endif2209 +then2207: call void @finch_str_drop(ptr %a7) ret i64 1 -endif2171: +endif2209: %t13 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t13, ptr %a14 - store { ptr, i64, i64 } { ptr @.str.1281, i64 4, i64 0 }, ptr %a15 + store { ptr, i64, i64 } { ptr @.str.1301, i64 4, i64 0 }, ptr %a15 %t16 = call i32 @finch_str_eq(ptr %a14, ptr %a15) %t17 = icmp ne i32 %t16, 0 - br label %logic.from2172 -logic.from2172: - br i1 %t17, label %logic.end2174, label %logic.rhs2173 -logic.rhs2173: + br label %logic.from2210 +logic.from2210: + br i1 %t17, label %logic.end2212, label %logic.rhs2211 +logic.rhs2211: %t18 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t18, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.1282, i64 2, i64 0 }, ptr %a20 + store { ptr, i64, i64 } { ptr @.str.1302, i64 2, i64 0 }, ptr %a20 %t21 = call i32 @finch_str_eq(ptr %a19, ptr %a20) %t22 = icmp ne i32 %t21, 0 - br label %logic.rend2175 -logic.rend2175: - br label %logic.end2174 -logic.end2174: - %t23 = phi i1 [ true, %logic.from2172 ], [ %t22, %logic.rend2175 ] - br label %logic.from2176 -logic.from2176: - br i1 %t23, label %logic.end2178, label %logic.rhs2177 -logic.rhs2177: + br label %logic.rend2213 +logic.rend2213: + br label %logic.end2212 +logic.end2212: + %t23 = phi i1 [ true, %logic.from2210 ], [ %t22, %logic.rend2213 ] + br label %logic.from2214 +logic.from2214: + br i1 %t23, label %logic.end2216, label %logic.rhs2215 +logic.rhs2215: %t24 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t24, ptr %a25 - store { ptr, i64, i64 } { ptr @.str.1283, i64 2, i64 0 }, ptr %a26 + store { ptr, i64, i64 } { ptr @.str.1303, i64 2, i64 0 }, ptr %a26 %t27 = call i32 @finch_str_eq(ptr %a25, ptr %a26) %t28 = icmp ne i32 %t27, 0 - br label %logic.rend2179 -logic.rend2179: - br label %logic.end2178 -logic.end2178: - %t29 = phi i1 [ true, %logic.from2176 ], [ %t28, %logic.rend2179 ] - br i1 %t29, label %then2180, label %endif2182 -then2180: + br label %logic.rend2217 +logic.rend2217: + br label %logic.end2216 +logic.end2216: + %t29 = phi i1 [ true, %logic.from2214 ], [ %t28, %logic.rend2217 ] + br i1 %t29, label %then2218, label %endif2220 +then2218: call void @finch_str_drop(ptr %a7) ret i64 8 -endif2182: +endif2220: %t30 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t30, ptr %a31 - store { ptr, i64, i64 } { ptr @.str.1284, i64 3, i64 0 }, ptr %a32 + store { ptr, i64, i64 } { ptr @.str.1304, i64 3, i64 0 }, ptr %a32 %t33 = call i32 @finch_str_eq(ptr %a31, ptr %a32) %t34 = icmp ne i32 %t33, 0 - br label %logic.from2183 -logic.from2183: - br i1 %t34, label %logic.end2185, label %logic.rhs2184 -logic.rhs2184: + br label %logic.from2221 +logic.from2221: + br i1 %t34, label %logic.end2223, label %logic.rhs2222 +logic.rhs2222: %t35 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t35, ptr %a36 - store { ptr, i64, i64 } { ptr @.str.1285, i64 3, i64 0 }, ptr %a37 + store { ptr, i64, i64 } { ptr @.str.1305, i64 3, i64 0 }, ptr %a37 %t38 = call i32 @finch_str_eq(ptr %a36, ptr %a37) %t39 = icmp ne i32 %t38, 0 - br label %logic.rend2186 -logic.rend2186: - br label %logic.end2185 -logic.end2185: - %t40 = phi i1 [ true, %logic.from2183 ], [ %t39, %logic.rend2186 ] - br i1 %t40, label %then2187, label %endif2189 -then2187: + br label %logic.rend2224 +logic.rend2224: + br label %logic.end2223 +logic.end2223: + %t40 = phi i1 [ true, %logic.from2221 ], [ %t39, %logic.rend2224 ] + br i1 %t40, label %then2225, label %endif2227 +then2225: call void @finch_str_drop(ptr %a7) ret i64 16 -endif2189: +endif2227: %t41 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t41, ptr %a42 - store { ptr, i64, i64 } { ptr @.str.1286, i64 3, i64 0 }, ptr %a43 + store { ptr, i64, i64 } { ptr @.str.1306, i64 3, i64 0 }, ptr %a43 %t44 = call i32 @finch_str_eq(ptr %a42, ptr %a43) %t45 = icmp ne i32 %t44, 0 - br label %logic.from2190 -logic.from2190: - br i1 %t45, label %logic.end2192, label %logic.rhs2191 -logic.rhs2191: + br label %logic.from2228 +logic.from2228: + br i1 %t45, label %logic.end2230, label %logic.rhs2229 +logic.rhs2229: %t46 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t46, ptr %a47 - store { ptr, i64, i64 } { ptr @.str.1287, i64 3, i64 0 }, ptr %a48 + store { ptr, i64, i64 } { ptr @.str.1307, i64 3, i64 0 }, ptr %a48 %t49 = call i32 @finch_str_eq(ptr %a47, ptr %a48) %t50 = icmp ne i32 %t49, 0 - br label %logic.rend2193 -logic.rend2193: - br label %logic.end2192 -logic.end2192: - %t51 = phi i1 [ true, %logic.from2190 ], [ %t50, %logic.rend2193 ] - br label %logic.from2194 -logic.from2194: - br i1 %t51, label %logic.end2196, label %logic.rhs2195 -logic.rhs2195: + br label %logic.rend2231 +logic.rend2231: + br label %logic.end2230 +logic.end2230: + %t51 = phi i1 [ true, %logic.from2228 ], [ %t50, %logic.rend2231 ] + br label %logic.from2232 +logic.from2232: + br i1 %t51, label %logic.end2234, label %logic.rhs2233 +logic.rhs2233: %t52 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t52, ptr %a53 - store { ptr, i64, i64 } { ptr @.str.1288, i64 3, i64 0 }, ptr %a54 + store { ptr, i64, i64 } { ptr @.str.1308, i64 3, i64 0 }, ptr %a54 %t55 = call i32 @finch_str_eq(ptr %a53, ptr %a54) %t56 = icmp ne i32 %t55, 0 - br label %logic.rend2197 -logic.rend2197: - br label %logic.end2196 -logic.end2196: - %t57 = phi i1 [ true, %logic.from2194 ], [ %t56, %logic.rend2197 ] - br i1 %t57, label %then2198, label %endif2200 -then2198: + br label %logic.rend2235 +logic.rend2235: + br label %logic.end2234 +logic.end2234: + %t57 = phi i1 [ true, %logic.from2232 ], [ %t56, %logic.rend2235 ] + br i1 %t57, label %then2236, label %endif2238 +then2236: call void @finch_str_drop(ptr %a7) ret i64 32 -endif2200: +endif2238: call void @finch_str_drop(ptr %a7) ret i64 64 } @@ -24936,39 +25575,39 @@ entry: %t3 = load %S.ast.Type, ptr %a1 %t4 = call i1 @finch.gen.isInt(%S.ast.Type %t3) %t5 = xor i1 %t4, true - br label %logic.from2201 -logic.from2201: - br i1 %t5, label %logic.end2203, label %logic.rhs2202 -logic.rhs2202: + br label %logic.from2239 +logic.from2239: + br i1 %t5, label %logic.end2241, label %logic.rhs2240 +logic.rhs2240: %t6 = load %S.ast.Type, ptr %a2 %t7 = call i1 @finch.gen.isInt(%S.ast.Type %t6) %t8 = xor i1 %t7, true - br label %logic.rend2204 -logic.rend2204: - br label %logic.end2203 -logic.end2203: - %t9 = phi i1 [ true, %logic.from2201 ], [ %t8, %logic.rend2204 ] - br i1 %t9, label %then2205, label %endif2207 -then2205: + br label %logic.rend2242 +logic.rend2242: + br label %logic.end2241 +logic.end2241: + %t9 = phi i1 [ true, %logic.from2239 ], [ %t8, %logic.rend2242 ] + br i1 %t9, label %then2243, label %endif2245 +then2243: ret i1 false -endif2207: +endif2245: %t10 = load %S.ast.Type, ptr %a1 %t11 = call i1 @finch.gen.isSigned(%S.ast.Type %t10) - br label %logic.from2208 -logic.from2208: - br i1 %t11, label %logic.rhs2209, label %logic.end2210 -logic.rhs2209: + br label %logic.from2246 +logic.from2246: + br i1 %t11, label %logic.rhs2247, label %logic.end2248 +logic.rhs2247: %t12 = load %S.ast.Type, ptr %a2 %t13 = call i1 @finch.gen.isUnsigned(%S.ast.Type %t12) - br label %logic.rend2211 -logic.rend2211: - br label %logic.end2210 -logic.end2210: - %t14 = phi i1 [ false, %logic.from2208 ], [ %t13, %logic.rend2211 ] - br i1 %t14, label %then2212, label %endif2214 -then2212: + br label %logic.rend2249 +logic.rend2249: + br label %logic.end2248 +logic.end2248: + %t14 = phi i1 [ false, %logic.from2246 ], [ %t13, %logic.rend2249 ] + br i1 %t14, label %then2250, label %endif2252 +then2250: ret i1 false -endif2214: +endif2252: %t15 = load %S.ast.Type, ptr %a2 %t16 = call i64 @finch.gen.bitsOf(%S.ast.Type %t15) %t17 = load %S.ast.Type, ptr %a1 @@ -24992,33 +25631,33 @@ entry: %t4 = load %S.ast.Type, ptr %a3 %t5 = call i1 @finch.gen.isInt(%S.ast.Type %t4) %t6 = xor i1 %t5, true - br i1 %t6, label %then2215, label %endif2217 -then2215: + br i1 %t6, label %then2253, label %endif2255 +then2253: ret i1 false -endif2217: +endif2255: %t7 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t7, ptr %a8 - %t9 = call i64 @finch_str_to_int(ptr %a8, ptr @.str.1289, i64 447) + %t9 = call i64 @finch_str_to_int(ptr %a8, ptr @.str.1309, i64 464) store i64 %t9, ptr %a10 %t11 = load %S.ast.Type, ptr %a3 %t12 = call i64 @finch.gen.bitsOf(%S.ast.Type %t11) store i64 %t12, ptr %a13 %t14 = load i64, ptr %a10 %t15 = icmp slt i64 %t14, 0 - br i1 %t15, label %then2218, label %endif2220 -then2218: + br i1 %t15, label %then2256, label %endif2258 +then2256: %t16 = load %S.ast.Type, ptr %a3 %t17 = call i1 @finch.gen.isUnsigned(%S.ast.Type %t16) - br i1 %t17, label %then2221, label %endif2223 -then2221: + br i1 %t17, label %then2259, label %endif2261 +then2259: ret i1 false -endif2223: +endif2261: %t18 = load i64, ptr %a13 %t19 = icmp eq i64 %t18, 64 - br i1 %t19, label %then2224, label %endif2226 -then2224: + br i1 %t19, label %then2262, label %endif2264 +then2262: ret i1 true -endif2226: +endif2264: %t20 = load i64, ptr %a10 %t21 = load i64, ptr %a13 %t22 = sub i64 %t21, 1 @@ -25026,28 +25665,28 @@ endif2226: %t24 = sub i64 0, %t23 %t25 = icmp sge i64 %t20, %t24 ret i1 %t25 -endif2220: +endif2258: %t26 = load i64, ptr %a13 %t27 = icmp eq i64 %t26, 64 - br i1 %t27, label %then2227, label %endif2229 -then2227: + br i1 %t27, label %then2265, label %endif2267 +then2265: ret i1 true -endif2229: +endif2267: %t28 = load i64, ptr %a13 %t29 = shl i64 1, %t28 %t30 = sub i64 %t29, 1 store i64 %t30, ptr %a31 %t32 = load %S.ast.Type, ptr %a3 %t33 = call i1 @finch.gen.isSigned(%S.ast.Type %t32) - br i1 %t33, label %then2230, label %endif2232 -then2230: + br i1 %t33, label %then2268, label %endif2270 +then2268: %t34 = load i64, ptr %a13 %t35 = sub i64 %t34, 1 %t36 = shl i64 1, %t35 %t37 = sub i64 %t36, 1 store i64 %t37, ptr %a31 - br label %endif2232 -endif2232: + br label %endif2270 +endif2270: %t38 = load i64, ptr %a10 %t39 = load i64, ptr %a31 %t40 = icmp sle i64 %t38, %t39 @@ -25069,38 +25708,38 @@ entry: store { ptr, i64, i64 } %p2, ptr %a3 %t4 = load ptr, ptr %a1 %t5 = icmp eq ptr %t4, null - br i1 %t5, label %panic2233, label %ok2234 -panic2233: - call void @finch_panic(ptr @.str.1290, i64 469, ptr @.str.1291) + br i1 %t5, label %panic2271, label %ok2272 +panic2271: + call void @finch_panic(ptr @.str.1310, i64 486, ptr @.str.1311) unreachable -ok2234: +ok2272: %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 16 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t6, i32 0, i32 1 %t8 = load i64, ptr %t7 store i64 0, ptr %a9 - br label %for.cond2235 -for.cond2235: + br label %for.cond2273 +for.cond2273: %t10 = load i64, ptr %a9 %t11 = icmp slt i64 %t10, %t8 - br i1 %t11, label %for.body2236, label %for.end2238 -for.body2236: + br i1 %t11, label %for.body2274, label %for.end2276 +for.body2274: %t12 = load ptr, ptr %a1 %t13 = icmp eq ptr %t12, null - br i1 %t13, label %panic2239, label %ok2240 -panic2239: - call void @finch_panic(ptr @.str.1292, i64 470, ptr @.str.1293) + br i1 %t13, label %panic2277, label %ok2278 +panic2277: + call void @finch_panic(ptr @.str.1312, i64 487, ptr @.str.1313) unreachable -ok2240: +ok2278: %t14 = getelementptr inbounds %S.gen.Gen, ptr %t12, i32 0, i32 16 %t15 = load i64, ptr %a9 %t16 = load { ptr, i64, i64 }, ptr %t14 %t17 = extractvalue { ptr, i64, i64 } %t16, 1 %t18 = icmp uge i64 %t15, %t17 - br i1 %t18, label %range2241, label %inrange2242 -range2241: - call void @finch_panic_index(ptr @.str.1294, i64 470, i64 %t15, i64 %t17) + br i1 %t18, label %range2279, label %inrange2280 +range2279: + call void @finch_panic_index(ptr @.str.1314, i64 487, i64 %t15, i64 %t17) unreachable -inrange2242: +inrange2280: %t19 = extractvalue { ptr, i64, i64 } %t16, 0 %t20 = getelementptr inbounds %S.gen.StructDef, ptr %t19, i64 %t15 %t21 = getelementptr inbounds %S.gen.StructDef, ptr %t20, i32 0, i32 0 @@ -25110,27 +25749,27 @@ inrange2242: store { ptr, i64, i64 } %t23, ptr %a25 %t26 = call i32 @finch_str_eq(ptr %a24, ptr %a25) %t27 = icmp ne i32 %t26, 0 - br label %logic.from2243 -logic.from2243: - br i1 %t27, label %logic.rhs2244, label %logic.end2245 -logic.rhs2244: + br label %logic.from2281 +logic.from2281: + br i1 %t27, label %logic.rhs2282, label %logic.end2283 +logic.rhs2282: %t28 = load ptr, ptr %a1 %t29 = icmp eq ptr %t28, null - br i1 %t29, label %panic2246, label %ok2247 -panic2246: - call void @finch_panic(ptr @.str.1295, i64 470, ptr @.str.1296) + br i1 %t29, label %panic2284, label %ok2285 +panic2284: + call void @finch_panic(ptr @.str.1315, i64 487, ptr @.str.1316) unreachable -ok2247: +ok2285: %t30 = getelementptr inbounds %S.gen.Gen, ptr %t28, i32 0, i32 16 %t31 = load i64, ptr %a9 %t32 = load { ptr, i64, i64 }, ptr %t30 %t33 = extractvalue { ptr, i64, i64 } %t32, 1 %t34 = icmp uge i64 %t31, %t33 - br i1 %t34, label %range2248, label %inrange2249 -range2248: - call void @finch_panic_index(ptr @.str.1297, i64 470, i64 %t31, i64 %t33) + br i1 %t34, label %range2286, label %inrange2287 +range2286: + call void @finch_panic_index(ptr @.str.1317, i64 487, i64 %t31, i64 %t33) unreachable -inrange2249: +inrange2287: %t35 = extractvalue { ptr, i64, i64 } %t32, 0 %t36 = getelementptr inbounds %S.gen.StructDef, ptr %t35, i64 %t31 %t37 = getelementptr inbounds %S.gen.StructDef, ptr %t36, i32 0, i32 1 @@ -25140,23 +25779,23 @@ inrange2249: store { ptr, i64, i64 } %t39, ptr %a41 %t42 = call i32 @finch_str_eq(ptr %a40, ptr %a41) %t43 = icmp ne i32 %t42, 0 - br label %logic.rend2250 -logic.rend2250: - br label %logic.end2245 -logic.end2245: - %t44 = phi i1 [ false, %logic.from2243 ], [ %t43, %logic.rend2250 ] - br i1 %t44, label %then2251, label %endif2253 -then2251: + br label %logic.rend2288 +logic.rend2288: + br label %logic.end2283 +logic.end2283: + %t44 = phi i1 [ false, %logic.from2281 ], [ %t43, %logic.rend2288 ] + br i1 %t44, label %then2289, label %endif2291 +then2289: %t45 = load i64, ptr %a9 ret i64 %t45 -endif2253: - br label %for.step2237 -for.step2237: +endif2291: + br label %for.step2275 +for.step2275: %t46 = load i64, ptr %a9 %t47 = add i64 %t46, 1 store i64 %t47, ptr %a9 - br label %for.cond2235 -for.end2238: + br label %for.cond2273 +for.end2276: ret i64 -1 } @@ -25175,38 +25814,38 @@ entry: store { ptr, i64, i64 } %p2, ptr %a3 %t4 = load ptr, ptr %a1 %t5 = icmp eq ptr %t4, null - br i1 %t5, label %panic2254, label %ok2255 -panic2254: - call void @finch_panic(ptr @.str.1298, i64 478, ptr @.str.1299) + br i1 %t5, label %panic2292, label %ok2293 +panic2292: + call void @finch_panic(ptr @.str.1318, i64 495, ptr @.str.1319) unreachable -ok2255: +ok2293: %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 21 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t6, i32 0, i32 1 %t8 = load i64, ptr %t7 store i64 0, ptr %a9 - br label %for.cond2256 -for.cond2256: + br label %for.cond2294 +for.cond2294: %t10 = load i64, ptr %a9 %t11 = icmp slt i64 %t10, %t8 - br i1 %t11, label %for.body2257, label %for.end2259 -for.body2257: + br i1 %t11, label %for.body2295, label %for.end2297 +for.body2295: %t12 = load ptr, ptr %a1 %t13 = icmp eq ptr %t12, null - br i1 %t13, label %panic2260, label %ok2261 -panic2260: - call void @finch_panic(ptr @.str.1300, i64 479, ptr @.str.1301) + br i1 %t13, label %panic2298, label %ok2299 +panic2298: + call void @finch_panic(ptr @.str.1320, i64 496, ptr @.str.1321) unreachable -ok2261: +ok2299: %t14 = getelementptr inbounds %S.gen.Gen, ptr %t12, i32 0, i32 21 %t15 = load i64, ptr %a9 %t16 = load { ptr, i64, i64 }, ptr %t14 %t17 = extractvalue { ptr, i64, i64 } %t16, 1 %t18 = icmp uge i64 %t15, %t17 - br i1 %t18, label %range2262, label %inrange2263 -range2262: - call void @finch_panic_index(ptr @.str.1302, i64 479, i64 %t15, i64 %t17) + br i1 %t18, label %range2300, label %inrange2301 +range2300: + call void @finch_panic_index(ptr @.str.1322, i64 496, i64 %t15, i64 %t17) unreachable -inrange2263: +inrange2301: %t19 = extractvalue { ptr, i64, i64 } %t16, 0 %t20 = getelementptr inbounds %S.gen.EnumDef, ptr %t19, i64 %t15 %t21 = getelementptr inbounds %S.gen.EnumDef, ptr %t20, i32 0, i32 0 @@ -25216,27 +25855,27 @@ inrange2263: store { ptr, i64, i64 } %t23, ptr %a25 %t26 = call i32 @finch_str_eq(ptr %a24, ptr %a25) %t27 = icmp ne i32 %t26, 0 - br label %logic.from2264 -logic.from2264: - br i1 %t27, label %logic.rhs2265, label %logic.end2266 -logic.rhs2265: + br label %logic.from2302 +logic.from2302: + br i1 %t27, label %logic.rhs2303, label %logic.end2304 +logic.rhs2303: %t28 = load ptr, ptr %a1 %t29 = icmp eq ptr %t28, null - br i1 %t29, label %panic2267, label %ok2268 -panic2267: - call void @finch_panic(ptr @.str.1303, i64 479, ptr @.str.1304) + br i1 %t29, label %panic2305, label %ok2306 +panic2305: + call void @finch_panic(ptr @.str.1323, i64 496, ptr @.str.1324) unreachable -ok2268: +ok2306: %t30 = getelementptr inbounds %S.gen.Gen, ptr %t28, i32 0, i32 21 %t31 = load i64, ptr %a9 %t32 = load { ptr, i64, i64 }, ptr %t30 %t33 = extractvalue { ptr, i64, i64 } %t32, 1 %t34 = icmp uge i64 %t31, %t33 - br i1 %t34, label %range2269, label %inrange2270 -range2269: - call void @finch_panic_index(ptr @.str.1305, i64 479, i64 %t31, i64 %t33) + br i1 %t34, label %range2307, label %inrange2308 +range2307: + call void @finch_panic_index(ptr @.str.1325, i64 496, i64 %t31, i64 %t33) unreachable -inrange2270: +inrange2308: %t35 = extractvalue { ptr, i64, i64 } %t32, 0 %t36 = getelementptr inbounds %S.gen.EnumDef, ptr %t35, i64 %t31 %t37 = getelementptr inbounds %S.gen.EnumDef, ptr %t36, i32 0, i32 1 @@ -25246,23 +25885,129 @@ inrange2270: store { ptr, i64, i64 } %t39, ptr %a41 %t42 = call i32 @finch_str_eq(ptr %a40, ptr %a41) %t43 = icmp ne i32 %t42, 0 - br label %logic.rend2271 -logic.rend2271: - br label %logic.end2266 -logic.end2266: - %t44 = phi i1 [ false, %logic.from2264 ], [ %t43, %logic.rend2271 ] - br i1 %t44, label %then2272, label %endif2274 -then2272: + br label %logic.rend2309 +logic.rend2309: + br label %logic.end2304 +logic.end2304: + %t44 = phi i1 [ false, %logic.from2302 ], [ %t43, %logic.rend2309 ] + br i1 %t44, label %then2310, label %endif2312 +then2310: %t45 = load i64, ptr %a9 ret i64 %t45 -endif2274: - br label %for.step2258 -for.step2258: +endif2312: + br label %for.step2296 +for.step2296: %t46 = load i64, ptr %a9 %t47 = add i64 %t46, 1 store i64 %t47, ptr %a9 - br label %for.cond2256 -for.end2259: + br label %for.cond2294 +for.end2297: + ret i64 -1 +} + +define internal i64 @finch.gen.findSum(ptr %p0, { ptr, i64, i64 } %p1, { ptr, i64, i64 } %p2) { +entry: + %a1 = alloca ptr, align 16 + %a2 = alloca { ptr, i64, i64 }, align 16 + %a3 = alloca { ptr, i64, i64 }, align 16 + %a9 = alloca i64, align 16 + %a24 = alloca { ptr, i64, i64 }, align 16 + %a25 = alloca { ptr, i64, i64 }, align 16 + %a40 = alloca { ptr, i64, i64 }, align 16 + %a41 = alloca { ptr, i64, i64 }, align 16 + store ptr %p0, ptr %a1 + store { ptr, i64, i64 } %p1, ptr %a2 + store { ptr, i64, i64 } %p2, ptr %a3 + %t4 = load ptr, ptr %a1 + %t5 = icmp eq ptr %t4, null + br i1 %t5, label %panic2313, label %ok2314 +panic2313: + call void @finch_panic(ptr @.str.1326, i64 504, ptr @.str.1327) + unreachable +ok2314: + %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 22 + %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t6, i32 0, i32 1 + %t8 = load i64, ptr %t7 + store i64 0, ptr %a9 + br label %for.cond2315 +for.cond2315: + %t10 = load i64, ptr %a9 + %t11 = icmp slt i64 %t10, %t8 + br i1 %t11, label %for.body2316, label %for.end2318 +for.body2316: + %t12 = load ptr, ptr %a1 + %t13 = icmp eq ptr %t12, null + br i1 %t13, label %panic2319, label %ok2320 +panic2319: + call void @finch_panic(ptr @.str.1328, i64 505, ptr @.str.1329) + unreachable +ok2320: + %t14 = getelementptr inbounds %S.gen.Gen, ptr %t12, i32 0, i32 22 + %t15 = load i64, ptr %a9 + %t16 = load { ptr, i64, i64 }, ptr %t14 + %t17 = extractvalue { ptr, i64, i64 } %t16, 1 + %t18 = icmp uge i64 %t15, %t17 + br i1 %t18, label %range2321, label %inrange2322 +range2321: + call void @finch_panic_index(ptr @.str.1330, i64 505, i64 %t15, i64 %t17) + unreachable +inrange2322: + %t19 = extractvalue { ptr, i64, i64 } %t16, 0 + %t20 = getelementptr inbounds %S.gen.SumDef, ptr %t19, i64 %t15 + %t21 = getelementptr inbounds %S.gen.SumDef, ptr %t20, i32 0, i32 0 + %t22 = load { ptr, i64, i64 }, ptr %t21 + %t23 = load { ptr, i64, i64 }, ptr %a2 + store { ptr, i64, i64 } %t22, ptr %a24 + store { ptr, i64, i64 } %t23, ptr %a25 + %t26 = call i32 @finch_str_eq(ptr %a24, ptr %a25) + %t27 = icmp ne i32 %t26, 0 + br label %logic.from2323 +logic.from2323: + br i1 %t27, label %logic.rhs2324, label %logic.end2325 +logic.rhs2324: + %t28 = load ptr, ptr %a1 + %t29 = icmp eq ptr %t28, null + br i1 %t29, label %panic2326, label %ok2327 +panic2326: + call void @finch_panic(ptr @.str.1331, i64 505, ptr @.str.1332) + unreachable +ok2327: + %t30 = getelementptr inbounds %S.gen.Gen, ptr %t28, i32 0, i32 22 + %t31 = load i64, ptr %a9 + %t32 = load { ptr, i64, i64 }, ptr %t30 + %t33 = extractvalue { ptr, i64, i64 } %t32, 1 + %t34 = icmp uge i64 %t31, %t33 + br i1 %t34, label %range2328, label %inrange2329 +range2328: + call void @finch_panic_index(ptr @.str.1333, i64 505, i64 %t31, i64 %t33) + unreachable +inrange2329: + %t35 = extractvalue { ptr, i64, i64 } %t32, 0 + %t36 = getelementptr inbounds %S.gen.SumDef, ptr %t35, i64 %t31 + %t37 = getelementptr inbounds %S.gen.SumDef, ptr %t36, i32 0, i32 1 + %t38 = load { ptr, i64, i64 }, ptr %t37 + %t39 = load { ptr, i64, i64 }, ptr %a3 + store { ptr, i64, i64 } %t38, ptr %a40 + store { ptr, i64, i64 } %t39, ptr %a41 + %t42 = call i32 @finch_str_eq(ptr %a40, ptr %a41) + %t43 = icmp ne i32 %t42, 0 + br label %logic.rend2330 +logic.rend2330: + br label %logic.end2325 +logic.end2325: + %t44 = phi i1 [ false, %logic.from2323 ], [ %t43, %logic.rend2330 ] + br i1 %t44, label %then2331, label %endif2333 +then2331: + %t45 = load i64, ptr %a9 + ret i64 %t45 +endif2333: + br label %for.step2317 +for.step2317: + %t46 = load i64, ptr %a9 + %t47 = add i64 %t46, 1 + store i64 %t47, ptr %a9 + br label %for.cond2315 +for.end2318: ret i64 -1 } @@ -25277,38 +26022,38 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic2275, label %ok2276 -panic2275: - call void @finch_panic(ptr @.str.1306, i64 487, ptr @.str.1307) + br i1 %t4, label %panic2334, label %ok2335 +panic2334: + call void @finch_panic(ptr @.str.1334, i64 513, ptr @.str.1335) unreachable -ok2276: +ok2335: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 0 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t7 = load i64, ptr %t6 store i64 0, ptr %a8 - br label %for.cond2277 -for.cond2277: + br label %for.cond2336 +for.cond2336: %t9 = load i64, ptr %a8 %t10 = icmp slt i64 %t9, %t7 - br i1 %t10, label %for.body2278, label %for.end2280 -for.body2278: + br i1 %t10, label %for.body2337, label %for.end2339 +for.body2337: %t11 = load ptr, ptr %a1 %t12 = icmp eq ptr %t11, null - br i1 %t12, label %panic2281, label %ok2282 -panic2281: - call void @finch_panic(ptr @.str.1308, i64 488, ptr @.str.1309) + br i1 %t12, label %panic2340, label %ok2341 +panic2340: + call void @finch_panic(ptr @.str.1336, i64 514, ptr @.str.1337) unreachable -ok2282: +ok2341: %t13 = getelementptr inbounds %S.gen.Gen, ptr %t11, i32 0, i32 0 %t14 = load i64, ptr %a8 %t15 = load { ptr, i64, i64 }, ptr %t13 %t16 = extractvalue { ptr, i64, i64 } %t15, 1 %t17 = icmp uge i64 %t14, %t16 - br i1 %t17, label %range2283, label %inrange2284 -range2283: - call void @finch_panic_index(ptr @.str.1310, i64 488, i64 %t14, i64 %t16) + br i1 %t17, label %range2342, label %inrange2343 +range2342: + call void @finch_panic_index(ptr @.str.1338, i64 514, i64 %t14, i64 %t16) unreachable -inrange2284: +inrange2343: %t18 = extractvalue { ptr, i64, i64 } %t15, 0 %t19 = getelementptr inbounds %S.ast.Program, ptr %t18, i64 %t14 %t20 = getelementptr inbounds %S.ast.Program, ptr %t19, i32 0, i32 0 @@ -25318,18 +26063,18 @@ inrange2284: store { ptr, i64, i64 } %t22, ptr %a24 %t25 = call i32 @finch_str_eq(ptr %a23, ptr %a24) %t26 = icmp ne i32 %t25, 0 - br i1 %t26, label %then2285, label %endif2287 -then2285: + br i1 %t26, label %then2344, label %endif2346 +then2344: %t27 = load i64, ptr %a8 ret i64 %t27 -endif2287: - br label %for.step2279 -for.step2279: +endif2346: + br label %for.step2338 +for.step2338: %t28 = load i64, ptr %a8 %t29 = add i64 %t28, 1 store i64 %t29, ptr %a8 - br label %for.cond2277 -for.end2280: + br label %for.cond2336 +for.end2339: ret i64 -1 } @@ -25345,31 +26090,31 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic2288, label %ok2289 -panic2288: - call void @finch_panic(ptr @.str.1311, i64 496, ptr @.str.1312) + br i1 %t4, label %panic2347, label %ok2348 +panic2347: + call void @finch_panic(ptr @.str.1339, i64 522, ptr @.str.1340) unreachable -ok2289: +ok2348: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 0 %t6 = load ptr, ptr %a1 %t7 = load ptr, ptr %a1 %t8 = icmp eq ptr %t7, null - br i1 %t8, label %panic2290, label %ok2291 -panic2290: - call void @finch_panic(ptr @.str.1313, i64 496, ptr @.str.1314) + br i1 %t8, label %panic2349, label %ok2350 +panic2349: + call void @finch_panic(ptr @.str.1341, i64 522, ptr @.str.1342) unreachable -ok2291: +ok2350: %t9 = getelementptr inbounds %S.gen.Gen, ptr %t7, i32 0, i32 14 %t10 = load { ptr, i64, i64 }, ptr %t9 %t11 = call i64 @finch.gen.progOf(ptr %t6, { ptr, i64, i64 } %t10) %t12 = load { ptr, i64, i64 }, ptr %t5 %t13 = extractvalue { ptr, i64, i64 } %t12, 1 %t14 = icmp uge i64 %t11, %t13 - br i1 %t14, label %range2292, label %inrange2293 -range2292: - call void @finch_panic_index(ptr @.str.1315, i64 496, i64 %t11, i64 %t13) + br i1 %t14, label %range2351, label %inrange2352 +range2351: + call void @finch_panic_index(ptr @.str.1343, i64 522, i64 %t11, i64 %t13) unreachable -inrange2293: +inrange2352: %t15 = extractvalue { ptr, i64, i64 } %t12, 0 %t16 = getelementptr inbounds %S.ast.Program, ptr %t15, i64 %t11 %t17 = getelementptr inbounds %S.ast.Program, ptr %t16, i32 0, i32 2 @@ -25379,27 +26124,27 @@ inrange2293: %t21 = load i64, ptr %t18 %t22 = load ptr, ptr %t17 store i64 0, ptr %a23 - br label %find.cond2294 -find.cond2294: + br label %find.cond2353 +find.cond2353: %t24 = load i64, ptr %a23 %t25 = icmp slt i64 %t24, %t21 - br i1 %t25, label %find.body2295, label %find.end2298 -find.body2295: + br i1 %t25, label %find.body2354, label %find.end2357 +find.body2354: %t26 = getelementptr inbounds { ptr, i64, i64 }, ptr %t22, i64 %t24 %t27 = load { ptr, i64, i64 }, ptr %t26 store { ptr, i64, i64 } %t27, ptr %a28 store { ptr, i64, i64 } %t19, ptr %a29 %t30 = call i32 @finch_str_eq(ptr %a28, ptr %a29) %t31 = icmp ne i32 %t30, 0 - br i1 %t31, label %find.hit2296, label %find.next2297 -find.hit2296: + br i1 %t31, label %find.hit2355, label %find.next2356 +find.hit2355: store i64 %t24, ptr %a20 - br label %find.end2298 -find.next2297: + br label %find.end2357 +find.next2356: %t32 = add i64 %t24, 1 store i64 %t32, ptr %a23 - br label %find.cond2294 -find.end2298: + br label %find.cond2353 +find.end2357: %t33 = load i64, ptr %a20 %t34 = icmp sge i64 %t33, 0 ret i1 %t34 @@ -25538,21 +26283,21 @@ entry: %t4 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t5 = load { ptr, i64, i64 }, ptr %t4 store { ptr, i64, i64 } %t5, ptr %a6 - store { ptr, i64, i64 } { ptr @.str.1316, i64 5, i64 0 }, ptr %a7 + store { ptr, i64, i64 } { ptr @.str.1344, i64 5, i64 0 }, ptr %a7 %t8 = call i32 @finch_str_eq(ptr %a6, ptr %a7) %t9 = icmp ne i32 %t8, 0 - br i1 %t9, label %then2299, label %endif2301 -then2299: + br i1 %t9, label %then2358, label %endif2360 +then2358: %t10 = load ptr, ptr %a1 %t11 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t12 = load { ptr, i64, i64 }, ptr %t11 %t13 = extractvalue { ptr, i64, i64 } %t12, 1 %t14 = icmp uge i64 0, %t13 - br i1 %t14, label %range2302, label %inrange2303 -range2302: - call void @finch_panic_index(ptr @.str.1317, i64 501, i64 0, i64 %t13) + br i1 %t14, label %range2361, label %inrange2362 +range2361: + call void @finch_panic_index(ptr @.str.1345, i64 527, i64 0, i64 %t13) unreachable -inrange2303: +inrange2362: %t15 = extractvalue { ptr, i64, i64 } %t12, 0 %t16 = getelementptr inbounds %S.ast.Type, ptr %t15, i64 0 %t17 = load %S.ast.Type, ptr %t16 @@ -25562,25 +26307,25 @@ inrange2303: store %S.ast.Type %t19, ptr %a21 call void @finch.drop.S_ast_Type(ptr %a21) ret %S.ast.Type %t20 -endif2301: +endif2360: %t22 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t23 = load { ptr, i64, i64 }, ptr %t22 store { ptr, i64, i64 } %t23, ptr %a24 - store { ptr, i64, i64 } { ptr @.str.1318, i64 3, i64 0 }, ptr %a25 + store { ptr, i64, i64 } { ptr @.str.1346, i64 3, i64 0 }, ptr %a25 %t26 = call i32 @finch_str_eq(ptr %a24, ptr %a25) %t27 = icmp ne i32 %t26, 0 - br i1 %t27, label %then2304, label %endif2306 -then2304: + br i1 %t27, label %then2363, label %endif2365 +then2363: %t28 = load ptr, ptr %a1 %t29 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t30 = load { ptr, i64, i64 }, ptr %t29 %t31 = extractvalue { ptr, i64, i64 } %t30, 1 %t32 = icmp uge i64 0, %t31 - br i1 %t32, label %range2307, label %inrange2308 -range2307: - call void @finch_panic_index(ptr @.str.1319, i64 504, i64 0, i64 %t31) + br i1 %t32, label %range2366, label %inrange2367 +range2366: + call void @finch_panic_index(ptr @.str.1347, i64 530, i64 0, i64 %t31) unreachable -inrange2308: +inrange2367: %t33 = extractvalue { ptr, i64, i64 } %t30, 0 %t34 = getelementptr inbounds %S.ast.Type, ptr %t33, i64 0 %t35 = load %S.ast.Type, ptr %t34 @@ -25590,73 +26335,73 @@ inrange2308: %t39 = load %S.ast.Type, ptr %a38 %t40 = call i1 @finch.gen.isInt(%S.ast.Type %t39) %t41 = xor i1 %t40, true - br label %logic.from2309 -logic.from2309: - br i1 %t41, label %logic.rhs2310, label %logic.end2311 -logic.rhs2310: + br label %logic.from2368 +logic.from2368: + br i1 %t41, label %logic.rhs2369, label %logic.end2370 +logic.rhs2369: %t42 = getelementptr inbounds %S.ast.Type, ptr %a38, i32 0, i32 0 %t43 = load { ptr, i64, i64 }, ptr %t42 store { ptr, i64, i64 } %t43, ptr %a44 - store { ptr, i64, i64 } { ptr @.str.1320, i64 4, i64 0 }, ptr %a45 + store { ptr, i64, i64 } { ptr @.str.1348, i64 4, i64 0 }, ptr %a45 %t46 = call i32 @finch_str_eq(ptr %a44, ptr %a45) %t47 = icmp eq i32 %t46, 0 - br label %logic.rend2312 -logic.rend2312: - br label %logic.end2311 -logic.end2311: - %t48 = phi i1 [ false, %logic.from2309 ], [ %t47, %logic.rend2312 ] - br label %logic.from2313 -logic.from2313: - br i1 %t48, label %logic.rhs2314, label %logic.end2315 -logic.rhs2314: + br label %logic.rend2371 +logic.rend2371: + br label %logic.end2370 +logic.end2370: + %t48 = phi i1 [ false, %logic.from2368 ], [ %t47, %logic.rend2371 ] + br label %logic.from2372 +logic.from2372: + br i1 %t48, label %logic.rhs2373, label %logic.end2374 +logic.rhs2373: %t49 = getelementptr inbounds %S.ast.Type, ptr %a38, i32 0, i32 0 %t50 = load { ptr, i64, i64 }, ptr %t49 store { ptr, i64, i64 } %t50, ptr %a51 - store { ptr, i64, i64 } { ptr @.str.1321, i64 4, i64 0 }, ptr %a52 + store { ptr, i64, i64 } { ptr @.str.1349, i64 4, i64 0 }, ptr %a52 %t53 = call i32 @finch_str_eq(ptr %a51, ptr %a52) %t54 = icmp eq i32 %t53, 0 - br label %logic.rend2316 -logic.rend2316: - br label %logic.end2315 -logic.end2315: - %t55 = phi i1 [ false, %logic.from2313 ], [ %t54, %logic.rend2316 ] - br label %logic.from2317 -logic.from2317: - br i1 %t55, label %logic.rhs2318, label %logic.end2319 -logic.rhs2318: + br label %logic.rend2375 +logic.rend2375: + br label %logic.end2374 +logic.end2374: + %t55 = phi i1 [ false, %logic.from2372 ], [ %t54, %logic.rend2375 ] + br label %logic.from2376 +logic.from2376: + br i1 %t55, label %logic.rhs2377, label %logic.end2378 +logic.rhs2377: %t56 = getelementptr inbounds %S.ast.Type, ptr %a38, i32 0, i32 0 %t57 = load { ptr, i64, i64 }, ptr %t56 store { ptr, i64, i64 } %t57, ptr %a58 - store { ptr, i64, i64 } { ptr @.str.1322, i64 3, i64 0 }, ptr %a59 + store { ptr, i64, i64 } { ptr @.str.1350, i64 3, i64 0 }, ptr %a59 %t60 = call i32 @finch_str_eq(ptr %a58, ptr %a59) %t61 = icmp eq i32 %t60, 0 - br label %logic.rend2320 -logic.rend2320: - br label %logic.end2319 -logic.end2319: - %t62 = phi i1 [ false, %logic.from2317 ], [ %t61, %logic.rend2320 ] - br label %logic.from2321 -logic.from2321: - br i1 %t62, label %logic.rhs2322, label %logic.end2323 -logic.rhs2322: + br label %logic.rend2379 +logic.rend2379: + br label %logic.end2378 +logic.end2378: + %t62 = phi i1 [ false, %logic.from2376 ], [ %t61, %logic.rend2379 ] + br label %logic.from2380 +logic.from2380: + br i1 %t62, label %logic.rhs2381, label %logic.end2382 +logic.rhs2381: %t63 = getelementptr inbounds %S.ast.Type, ptr %a38, i32 0, i32 0 %t64 = load { ptr, i64, i64 }, ptr %t63 store { ptr, i64, i64 } %t64, ptr %a65 - store { ptr, i64, i64 } { ptr @.str.1323, i64 4, i64 0 }, ptr %a66 + store { ptr, i64, i64 } { ptr @.str.1351, i64 4, i64 0 }, ptr %a66 %t67 = call i32 @finch_str_eq(ptr %a65, ptr %a66) %t68 = icmp eq i32 %t67, 0 - br label %logic.rend2324 -logic.rend2324: - br label %logic.end2323 -logic.end2323: - %t69 = phi i1 [ false, %logic.from2321 ], [ %t68, %logic.rend2324 ] - br i1 %t69, label %then2325, label %endif2327 -then2325: + br label %logic.rend2383 +logic.rend2383: + br label %logic.end2382 +logic.end2382: + %t69 = phi i1 [ false, %logic.from2380 ], [ %t68, %logic.rend2383 ] + br i1 %t69, label %then2384, label %endif2386 +then2384: %t70 = load ptr, ptr %a1 %t71 = load %S.ast.Node, ptr %a3 %t72 = load %S.ast.Type, ptr %a38 %t73 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t72) - store { ptr, i64, i64 } { ptr @.str.1324, i64 63, i64 0 }, ptr %a75 + store { ptr, i64, i64 } { ptr @.str.1352, i64 63, i64 0 }, ptr %a75 store { ptr, i64, i64 } %t73, ptr %a76 call void @finch_str_concat(ptr %a74, ptr %a75, ptr %a76) store { ptr, i64, i64 } %t73, ptr %a77 @@ -25665,18 +26410,18 @@ then2325: call void @finch.gen.fail(ptr %t70, %S.ast.Node %t71, { ptr, i64, i64 } %t78) store { ptr, i64, i64 } %t78, ptr %a79 call void @finch_str_drop(ptr %a79) - br label %endif2327 -endif2327: + br label %endif2386 +endif2386: %t80 = load ptr, ptr %a1 %t81 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t82 = load { ptr, i64, i64 }, ptr %t81 %t83 = extractvalue { ptr, i64, i64 } %t82, 1 %t84 = icmp uge i64 1, %t83 - br i1 %t84, label %range2328, label %inrange2329 -range2328: - call void @finch_panic_index(ptr @.str.1325, i64 508, i64 1, i64 %t83) + br i1 %t84, label %range2387, label %inrange2388 +range2387: + call void @finch_panic_index(ptr @.str.1353, i64 534, i64 1, i64 %t83) unreachable -inrange2329: +inrange2388: %t85 = extractvalue { ptr, i64, i64 } %t82, 0 %t86 = getelementptr inbounds %S.ast.Type, ptr %t85, i64 1 %t87 = load %S.ast.Type, ptr %t86 @@ -25686,32 +26431,32 @@ inrange2329: %t91 = getelementptr inbounds %S.ast.Type, ptr %a90, i32 0, i32 0 %t92 = load { ptr, i64, i64 }, ptr %t91 store { ptr, i64, i64 } %t92, ptr %a93 - store { ptr, i64, i64 } { ptr @.str.1326, i64 4, i64 0 }, ptr %a94 + store { ptr, i64, i64 } { ptr @.str.1354, i64 4, i64 0 }, ptr %a94 %t95 = call i32 @finch_str_eq(ptr %a93, ptr %a94) %t96 = icmp ne i32 %t95, 0 - br i1 %t96, label %then2330, label %endif2332 -then2330: + br i1 %t96, label %then2389, label %endif2391 +then2389: %t97 = load ptr, ptr %a1 %t98 = load %S.ast.Node, ptr %a3 - call void @finch.gen.fail(ptr %t97, %S.ast.Node %t98, { ptr, i64, i64 } { ptr @.str.1327, i64 41, i64 0 }) - br label %endif2332 -endif2332: + call void @finch.gen.fail(ptr %t97, %S.ast.Node %t98, { ptr, i64, i64 } { ptr @.str.1355, i64 41, i64 0 }) + br label %endif2391 +endif2391: %t99 = load %S.ast.Type, ptr %a38 %t100 = load %S.ast.Type, ptr %a90 %t101 = call %S.ast.Type @finch.ast.mapOf(%S.ast.Type %t99, %S.ast.Type %t100) call void @finch.drop.S_ast_Type(ptr %a90) call void @finch.drop.S_ast_Type(ptr %a38) ret %S.ast.Type %t101 -endif2306: +endif2365: %t102 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t103 = load { ptr, i64, i64 }, ptr %t102 store { ptr, i64, i64 } %t103, ptr %a104 - store { ptr, i64, i64 } { ptr @.str.1328, i64 5, i64 0 }, ptr %a105 + store { ptr, i64, i64 } { ptr @.str.1356, i64 5, i64 0 }, ptr %a105 %t106 = call i32 @finch_str_eq(ptr %a104, ptr %a105) %t107 = icmp ne i32 %t106, 0 - br i1 %t107, label %then2333, label %endif2335 -then2333: - %t108 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.1329, i64 5, i64 0 }, 0 + br i1 %t107, label %then2392, label %endif2394 +then2392: + %t108 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.1357, i64 5, i64 0 }, 0 %t109 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 4 %t110 = load i64, ptr %t109 %t111 = insertvalue %S.ast.Type %t108, i64 %t110, 4 @@ -25723,11 +26468,11 @@ then2333: %t117 = load { ptr, i64, i64 }, ptr %t116 %t118 = extractvalue { ptr, i64, i64 } %t117, 1 %t119 = icmp uge i64 0, %t118 - br i1 %t119, label %range2336, label %inrange2337 -range2336: - call void @finch_panic_index(ptr @.str.1330, i64 516, i64 0, i64 %t118) + br i1 %t119, label %range2395, label %inrange2396 +range2395: + call void @finch_panic_index(ptr @.str.1358, i64 542, i64 0, i64 %t118) unreachable -inrange2337: +inrange2396: %t120 = extractvalue { ptr, i64, i64 } %t117, 0 %t121 = getelementptr inbounds %S.ast.Type, ptr %t120, i64 0 %t122 = load %S.ast.Type, ptr %t121 @@ -25742,37 +26487,37 @@ inrange2337: store i64 %t126, ptr %t114 %t129 = load %S.ast.Type, ptr %a112 ret %S.ast.Type %t129 -endif2335: +endif2394: %t130 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t131 = load { ptr, i64, i64 }, ptr %t130 store { ptr, i64, i64 } %t131, ptr %a132 - store { ptr, i64, i64 } { ptr @.str.1331, i64 3, i64 0 }, ptr %a133 + store { ptr, i64, i64 } { ptr @.str.1359, i64 3, i64 0 }, ptr %a133 %t134 = call i32 @finch_str_eq(ptr %a132, ptr %a133) %t135 = icmp ne i32 %t134, 0 - br i1 %t135, label %then2338, label %endif2340 -then2338: + br i1 %t135, label %then2397, label %endif2399 +then2397: %t136 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t137 = getelementptr inbounds { ptr, i64, i64 }, ptr %t136, i32 0, i32 1 %t138 = load i64, ptr %t137 %t139 = icmp eq i64 %t138, 0 - br i1 %t139, label %then2341, label %endif2343 -then2341: + br i1 %t139, label %then2400, label %endif2402 +then2400: %t140 = load %S.ast.Type, ptr %a2 store %S.ast.Type %t140, ptr %a141 call void @finch.copy.S_ast_Type(ptr %a142, ptr %a141) %t143 = load %S.ast.Type, ptr %a142 ret %S.ast.Type %t143 -endif2343: +endif2402: %t144 = load ptr, ptr %a1 %t145 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t146 = load { ptr, i64, i64 }, ptr %t145 %t147 = extractvalue { ptr, i64, i64 } %t146, 1 %t148 = icmp uge i64 0, %t147 - br i1 %t148, label %range2344, label %inrange2345 -range2344: - call void @finch_panic_index(ptr @.str.1332, i64 523, i64 0, i64 %t147) + br i1 %t148, label %range2403, label %inrange2404 +range2403: + call void @finch_panic_index(ptr @.str.1360, i64 549, i64 0, i64 %t147) unreachable -inrange2345: +inrange2404: %t149 = extractvalue { ptr, i64, i64 } %t146, 0 %t150 = getelementptr inbounds %S.ast.Type, ptr %t149, i64 0 %t151 = load %S.ast.Type, ptr %t150 @@ -25782,49 +26527,49 @@ inrange2345: store %S.ast.Type %t153, ptr %a155 call void @finch.drop.S_ast_Type(ptr %a155) ret %S.ast.Type %t154 -endif2340: +endif2399: %t156 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t157 = load { ptr, i64, i64 }, ptr %t156 store { ptr, i64, i64 } %t157, ptr %a158 - store { ptr, i64, i64 } { ptr @.str.1333, i64 5, i64 0 }, ptr %a159 + store { ptr, i64, i64 } { ptr @.str.1361, i64 5, i64 0 }, ptr %a159 %t160 = call i32 @finch_str_eq(ptr %a158, ptr %a159) %t161 = icmp eq i32 %t160, 0 - br i1 %t161, label %then2346, label %endif2348 -then2346: + br i1 %t161, label %then2405, label %endif2407 +then2405: %t162 = load %S.ast.Type, ptr %a2 store %S.ast.Type %t162, ptr %a163 call void @finch.copy.S_ast_Type(ptr %a164, ptr %a163) %t165 = load %S.ast.Type, ptr %a164 ret %S.ast.Type %t165 -endif2348: +endif2407: %t166 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 %t167 = getelementptr inbounds { ptr, i64, i64 }, ptr %t166, i32 0, i32 1 %t168 = load i64, ptr %t167 %t169 = icmp eq i64 %t168, 0 - br label %logic.from2349 -logic.from2349: - br i1 %t169, label %logic.rhs2350, label %logic.end2351 -logic.rhs2350: + br label %logic.from2408 +logic.from2408: + br i1 %t169, label %logic.rhs2409, label %logic.end2410 +logic.rhs2409: %t170 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t171 = getelementptr inbounds { ptr, i64, i64 }, ptr %t170, i32 0, i32 1 %t172 = load i64, ptr %t171 %t173 = icmp eq i64 %t172, 0 - br label %logic.rend2352 -logic.rend2352: - br label %logic.end2351 -logic.end2351: - %t174 = phi i1 [ false, %logic.from2349 ], [ %t173, %logic.rend2352 ] - br label %logic.from2353 -logic.from2353: - br i1 %t174, label %logic.rhs2354, label %logic.end2355 -logic.rhs2354: + br label %logic.rend2411 +logic.rend2411: + br label %logic.end2410 +logic.end2410: + %t174 = phi i1 [ false, %logic.from2408 ], [ %t173, %logic.rend2411 ] + br label %logic.from2412 +logic.from2412: + br i1 %t174, label %logic.rhs2413, label %logic.end2414 +logic.rhs2413: %t175 = load ptr, ptr %a1 %t176 = icmp eq ptr %t175, null - br i1 %t176, label %panic2356, label %ok2357 -panic2356: - call void @finch_panic(ptr @.str.1334, i64 529, ptr @.str.1335) + br i1 %t176, label %panic2415, label %ok2416 +panic2415: + call void @finch_panic(ptr @.str.1362, i64 555, ptr @.str.1363) unreachable -ok2357: +ok2416: %t177 = getelementptr inbounds %S.gen.Gen, ptr %t175, i32 0, i32 18 %t178 = getelementptr inbounds { ptr, i64, i64 }, ptr %t177, i32 0, i32 1 %t179 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 @@ -25833,51 +26578,51 @@ ok2357: %t182 = load i64, ptr %t178 %t183 = load ptr, ptr %t177 store i64 0, ptr %a184 - br label %find.cond2358 -find.cond2358: + br label %find.cond2417 +find.cond2417: %t185 = load i64, ptr %a184 %t186 = icmp slt i64 %t185, %t182 - br i1 %t186, label %find.body2359, label %find.end2362 -find.body2359: + br i1 %t186, label %find.body2418, label %find.end2421 +find.body2418: %t187 = getelementptr inbounds { ptr, i64, i64 }, ptr %t183, i64 %t185 %t188 = load { ptr, i64, i64 }, ptr %t187 store { ptr, i64, i64 } %t188, ptr %a189 store { ptr, i64, i64 } %t180, ptr %a190 %t191 = call i32 @finch_str_eq(ptr %a189, ptr %a190) %t192 = icmp ne i32 %t191, 0 - br i1 %t192, label %find.hit2360, label %find.next2361 -find.hit2360: + br i1 %t192, label %find.hit2419, label %find.next2420 +find.hit2419: store i64 %t185, ptr %a181 - br label %find.end2362 -find.next2361: + br label %find.end2421 +find.next2420: %t193 = add i64 %t185, 1 store i64 %t193, ptr %a184 - br label %find.cond2358 -find.end2362: + br label %find.cond2417 +find.end2421: %t194 = load i64, ptr %a181 %t195 = icmp sge i64 %t194, 0 - br label %logic.rend2363 -logic.rend2363: - br label %logic.end2355 -logic.end2355: - %t196 = phi i1 [ false, %logic.from2353 ], [ %t195, %logic.rend2363 ] - br i1 %t196, label %then2364, label %endif2366 -then2364: + br label %logic.rend2422 +logic.rend2422: + br label %logic.end2414 +logic.end2414: + %t196 = phi i1 [ false, %logic.from2412 ], [ %t195, %logic.rend2422 ] + br i1 %t196, label %then2423, label %endif2425 +then2423: %t197 = load ptr, ptr %a1 %t198 = icmp eq ptr %t197, null - br i1 %t198, label %panic2367, label %ok2368 -panic2367: - call void @finch_panic(ptr @.str.1336, i64 530, ptr @.str.1337) + br i1 %t198, label %panic2426, label %ok2427 +panic2426: + call void @finch_panic(ptr @.str.1364, i64 556, ptr @.str.1365) unreachable -ok2368: +ok2427: %t199 = getelementptr inbounds %S.gen.Gen, ptr %t197, i32 0, i32 19 %t200 = load ptr, ptr %a1 %t201 = icmp eq ptr %t200, null - br i1 %t201, label %panic2369, label %ok2370 -panic2369: - call void @finch_panic(ptr @.str.1338, i64 530, ptr @.str.1339) + br i1 %t201, label %panic2428, label %ok2429 +panic2428: + call void @finch_panic(ptr @.str.1366, i64 556, ptr @.str.1367) unreachable -ok2370: +ok2429: %t202 = getelementptr inbounds %S.gen.Gen, ptr %t200, i32 0, i32 18 %t203 = getelementptr inbounds { ptr, i64, i64 }, ptr %t202, i32 0, i32 1 %t204 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 @@ -25886,36 +26631,36 @@ ok2370: %t207 = load i64, ptr %t203 %t208 = load ptr, ptr %t202 store i64 0, ptr %a209 - br label %find.cond2371 -find.cond2371: + br label %find.cond2430 +find.cond2430: %t210 = load i64, ptr %a209 %t211 = icmp slt i64 %t210, %t207 - br i1 %t211, label %find.body2372, label %find.end2375 -find.body2372: + br i1 %t211, label %find.body2431, label %find.end2434 +find.body2431: %t212 = getelementptr inbounds { ptr, i64, i64 }, ptr %t208, i64 %t210 %t213 = load { ptr, i64, i64 }, ptr %t212 store { ptr, i64, i64 } %t213, ptr %a214 store { ptr, i64, i64 } %t205, ptr %a215 %t216 = call i32 @finch_str_eq(ptr %a214, ptr %a215) %t217 = icmp ne i32 %t216, 0 - br i1 %t217, label %find.hit2373, label %find.next2374 -find.hit2373: + br i1 %t217, label %find.hit2432, label %find.next2433 +find.hit2432: store i64 %t210, ptr %a206 - br label %find.end2375 -find.next2374: + br label %find.end2434 +find.next2433: %t218 = add i64 %t210, 1 store i64 %t218, ptr %a209 - br label %find.cond2371 -find.end2375: + br label %find.cond2430 +find.end2434: %t219 = load i64, ptr %a206 %t220 = load { ptr, i64, i64 }, ptr %t199 %t221 = extractvalue { ptr, i64, i64 } %t220, 1 %t222 = icmp uge i64 %t219, %t221 - br i1 %t222, label %range2376, label %inrange2377 -range2376: - call void @finch_panic_index(ptr @.str.1340, i64 530, i64 %t219, i64 %t221) + br i1 %t222, label %range2435, label %inrange2436 +range2435: + call void @finch_panic_index(ptr @.str.1368, i64 556, i64 %t219, i64 %t221) unreachable -inrange2377: +inrange2436: %t223 = extractvalue { ptr, i64, i64 } %t220, 0 %t224 = getelementptr inbounds %S.ast.Type, ptr %t223, i64 %t219 %t225 = load %S.ast.Type, ptr %t224 @@ -25923,24 +26668,24 @@ inrange2377: call void @finch.copy.S_ast_Type(ptr %a227, ptr %a226) %t228 = load %S.ast.Type, ptr %a227 ret %S.ast.Type %t228 -endif2366: +endif2425: %t229 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t230 = getelementptr inbounds { ptr, i64, i64 }, ptr %t229, i32 0, i32 1 %t231 = load i64, ptr %t230 %t232 = icmp sgt i64 %t231, 0 - br i1 %t232, label %then2378, label %endif2380 -then2378: + br i1 %t232, label %then2437, label %endif2439 +then2437: store { ptr, i64, i64 } zeroinitializer, ptr %a233 %t234 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 store i64 0, ptr %a235 - br label %each.cond2381 -each.cond2381: + br label %each.cond2440 +each.cond2440: %t236 = getelementptr inbounds { ptr, i64, i64 }, ptr %t234, i32 0, i32 1 %t237 = load i64, ptr %t236 %t238 = load i64, ptr %a235 %t239 = icmp slt i64 %t238, %t237 - br i1 %t239, label %each.body2382, label %each.end2384 -each.body2382: + br i1 %t239, label %each.body2441, label %each.end2443 +each.body2441: %t240 = load ptr, ptr %t234 %t241 = getelementptr inbounds %S.ast.Type, ptr %t240, i64 %t238 %t242 = load %S.ast.Type, ptr %t241 @@ -25957,20 +26702,20 @@ each.body2382: %t252 = getelementptr inbounds %S.ast.Type, ptr %t251, i64 %t249 store %S.ast.Type %t248, ptr %t252 store i64 %t250, ptr %t244 - br label %each.step2383 -each.step2383: + br label %each.step2442 +each.step2442: %t253 = load i64, ptr %a235 %t254 = add i64 %t253, 1 store i64 %t254, ptr %a235 - br label %each.cond2381 -each.end2384: + br label %each.cond2440 +each.end2443: %t255 = load ptr, ptr %a1 %t256 = icmp eq ptr %t255, null - br i1 %t256, label %panic2385, label %ok2386 -panic2385: - call void @finch_panic(ptr @.str.1341, i64 538, ptr @.str.1342) + br i1 %t256, label %panic2444, label %ok2445 +panic2444: + call void @finch_panic(ptr @.str.1369, i64 564, ptr @.str.1370) unreachable -ok2386: +ok2445: %t257 = getelementptr inbounds %S.gen.Gen, ptr %t255, i32 0, i32 14 %t258 = load { ptr, i64, i64 }, ptr %t257 store { ptr, i64, i64 } %t258, ptr %a259 @@ -25981,25 +26726,25 @@ ok2386: %t264 = getelementptr inbounds { ptr, i64, i64 }, ptr %t263, i32 0, i32 1 %t265 = load i64, ptr %t264 %t266 = icmp sgt i64 %t265, 0 - br i1 %t266, label %then2387, label %endif2389 -then2387: + br i1 %t266, label %then2446, label %endif2448 +then2446: %t267 = load ptr, ptr %a1 %t268 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 %t269 = load { ptr, i64, i64 }, ptr %t268 %t270 = call i1 @finch.gen.imports(ptr %t267, { ptr, i64, i64 } %t269) %t271 = xor i1 %t270, true - br i1 %t271, label %then2390, label %endif2392 -then2390: + br i1 %t271, label %then2449, label %endif2451 +then2449: %t272 = load ptr, ptr %a1 %t273 = load %S.ast.Node, ptr %a3 %t274 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 %t275 = load { ptr, i64, i64 }, ptr %t274 - store { ptr, i64, i64 } { ptr @.str.1343, i64 1, i64 0 }, ptr %a277 + store { ptr, i64, i64 } { ptr @.str.1371, i64 1, i64 0 }, ptr %a277 store { ptr, i64, i64 } %t275, ptr %a278 call void @finch_str_concat(ptr %a276, ptr %a277, ptr %a278) %t279 = load { ptr, i64, i64 }, ptr %a276 store { ptr, i64, i64 } %t279, ptr %a281 - store { ptr, i64, i64 } { ptr @.str.1344, i64 36, i64 0 }, ptr %a282 + store { ptr, i64, i64 } { ptr @.str.1372, i64 36, i64 0 }, ptr %a282 call void @finch_str_concat(ptr %a280, ptr %a281, ptr %a282) store { ptr, i64, i64 } %t279, ptr %a283 call void @finch_str_drop(ptr %a283) @@ -26013,7 +26758,7 @@ then2390: call void @finch_str_drop(ptr %a290) %t291 = load { ptr, i64, i64 }, ptr %a287 store { ptr, i64, i64 } %t291, ptr %a293 - store { ptr, i64, i64 } { ptr @.str.1345, i64 1, i64 0 }, ptr %a294 + store { ptr, i64, i64 } { ptr @.str.1373, i64 1, i64 0 }, ptr %a294 call void @finch_str_concat(ptr %a292, ptr %a293, ptr %a294) store { ptr, i64, i64 } %t291, ptr %a295 call void @finch_str_drop(ptr %a295) @@ -26021,8 +26766,8 @@ then2390: call void @finch.gen.fail(ptr %t272, %S.ast.Node %t273, { ptr, i64, i64 } %t296) store { ptr, i64, i64 } %t296, ptr %a297 call void @finch_str_drop(ptr %a297) - br label %endif2392 -endif2392: + br label %endif2451 +endif2451: %t298 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 %t299 = load { ptr, i64, i64 }, ptr %t298 store { ptr, i64, i64 } %t299, ptr %a300 @@ -26032,8 +26777,8 @@ endif2392: store { ptr, i64, i64 } %t302, ptr %a262 store { ptr, i64, i64 } %t303, ptr %a304 call void @finch_str_drop(ptr %a304) - br label %endif2389 -endif2389: + br label %endif2448 +endif2448: %t305 = load ptr, ptr %a1 %t306 = load { ptr, i64, i64 }, ptr %a262 %t307 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 @@ -26044,32 +26789,32 @@ endif2389: call void @finch_str_drop(ptr %a262) call void @finch.drop.arr_S_ast_Type(ptr %a233) ret %S.ast.Type %t311 -endif2380: +endif2439: %t312 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 %t313 = load { ptr, i64, i64 }, ptr %t312 store { ptr, i64, i64 } %t313, ptr %a314 - store { ptr, i64, i64 } { ptr @.str.1346, i64 1, i64 0 }, ptr %a315 + store { ptr, i64, i64 } { ptr @.str.1374, i64 1, i64 0 }, ptr %a315 %t316 = call i32 @finch_str_eq(ptr %a314, ptr %a315) %t317 = icmp ne i32 %t316, 0 - br i1 %t317, label %then2393, label %endif2395 -then2393: + br i1 %t317, label %then2452, label %endif2454 +then2452: %t318 = load ptr, ptr %a1 %t319 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 %t320 = load { ptr, i64, i64 }, ptr %t319 - %t321 = call i64 @finch.gen.findStruct(ptr %t318, { ptr, i64, i64 } { ptr @.str.1347, i64 1, i64 0 }, { ptr, i64, i64 } %t320) + %t321 = call i64 @finch.gen.findStruct(ptr %t318, { ptr, i64, i64 } { ptr @.str.1375, i64 1, i64 0 }, { ptr, i64, i64 } %t320) %t322 = icmp slt i64 %t321, 0 - br i1 %t322, label %then2396, label %endif2398 -then2396: + br i1 %t322, label %then2455, label %endif2457 +then2455: %t323 = load ptr, ptr %a1 %t324 = load %S.ast.Node, ptr %a3 %t325 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 %t326 = load { ptr, i64, i64 }, ptr %t325 - store { ptr, i64, i64 } { ptr @.str.1348, i64 28, i64 0 }, ptr %a328 + store { ptr, i64, i64 } { ptr @.str.1376, i64 28, i64 0 }, ptr %a328 store { ptr, i64, i64 } %t326, ptr %a329 call void @finch_str_concat(ptr %a327, ptr %a328, ptr %a329) %t330 = load { ptr, i64, i64 }, ptr %a327 store { ptr, i64, i64 } %t330, ptr %a332 - store { ptr, i64, i64 } { ptr @.str.1349, i64 1, i64 0 }, ptr %a333 + store { ptr, i64, i64 } { ptr @.str.1377, i64 1, i64 0 }, ptr %a333 call void @finch_str_concat(ptr %a331, ptr %a332, ptr %a333) store { ptr, i64, i64 } %t330, ptr %a334 call void @finch_str_drop(ptr %a334) @@ -26077,25 +26822,25 @@ then2396: call void @finch.gen.fail(ptr %t323, %S.ast.Node %t324, { ptr, i64, i64 } %t335) store { ptr, i64, i64 } %t335, ptr %a336 call void @finch_str_drop(ptr %a336) - br label %endif2398 -endif2398: - %t337 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.1350, i64 6, i64 0 }, 0 + br label %endif2457 +endif2457: + %t337 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.1378, i64 6, i64 0 }, 0 %t338 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 %t339 = load { ptr, i64, i64 }, ptr %t338 store { ptr, i64, i64 } %t339, ptr %a340 call void @finch_str_copy(ptr %a341, ptr %a340) %t342 = load { ptr, i64, i64 }, ptr %a341 %t343 = insertvalue %S.ast.Type %t337, { ptr, i64, i64 } %t342, 2 - %t344 = insertvalue %S.ast.Type %t343, { ptr, i64, i64 } { ptr @.str.1351, i64 1, i64 0 }, 3 + %t344 = insertvalue %S.ast.Type %t343, { ptr, i64, i64 } { ptr @.str.1379, i64 1, i64 0 }, 3 ret %S.ast.Type %t344 -endif2395: +endif2454: %t345 = load ptr, ptr %a1 %t346 = icmp eq ptr %t345, null - br i1 %t346, label %panic2399, label %ok2400 -panic2399: - call void @finch_panic(ptr @.str.1352, i64 553, ptr @.str.1353) + br i1 %t346, label %panic2458, label %ok2459 +panic2458: + call void @finch_panic(ptr @.str.1380, i64 579, ptr @.str.1381) unreachable -ok2400: +ok2459: %t347 = getelementptr inbounds %S.gen.Gen, ptr %t345, i32 0, i32 14 %t348 = load { ptr, i64, i64 }, ptr %t347 store { ptr, i64, i64 } %t348, ptr %a349 @@ -26106,25 +26851,25 @@ ok2400: %t354 = getelementptr inbounds { ptr, i64, i64 }, ptr %t353, i32 0, i32 1 %t355 = load i64, ptr %t354 %t356 = icmp sgt i64 %t355, 0 - br i1 %t356, label %then2401, label %endif2403 -then2401: + br i1 %t356, label %then2460, label %endif2462 +then2460: %t357 = load ptr, ptr %a1 %t358 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 %t359 = load { ptr, i64, i64 }, ptr %t358 %t360 = call i1 @finch.gen.imports(ptr %t357, { ptr, i64, i64 } %t359) %t361 = xor i1 %t360, true - br i1 %t361, label %then2404, label %endif2406 -then2404: + br i1 %t361, label %then2463, label %endif2465 +then2463: %t362 = load ptr, ptr %a1 %t363 = load %S.ast.Node, ptr %a3 %t364 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 %t365 = load { ptr, i64, i64 }, ptr %t364 - store { ptr, i64, i64 } { ptr @.str.1354, i64 1, i64 0 }, ptr %a367 + store { ptr, i64, i64 } { ptr @.str.1382, i64 1, i64 0 }, ptr %a367 store { ptr, i64, i64 } %t365, ptr %a368 call void @finch_str_concat(ptr %a366, ptr %a367, ptr %a368) %t369 = load { ptr, i64, i64 }, ptr %a366 store { ptr, i64, i64 } %t369, ptr %a371 - store { ptr, i64, i64 } { ptr @.str.1355, i64 36, i64 0 }, ptr %a372 + store { ptr, i64, i64 } { ptr @.str.1383, i64 36, i64 0 }, ptr %a372 call void @finch_str_concat(ptr %a370, ptr %a371, ptr %a372) store { ptr, i64, i64 } %t369, ptr %a373 call void @finch_str_drop(ptr %a373) @@ -26138,7 +26883,7 @@ then2404: call void @finch_str_drop(ptr %a380) %t381 = load { ptr, i64, i64 }, ptr %a377 store { ptr, i64, i64 } %t381, ptr %a383 - store { ptr, i64, i64 } { ptr @.str.1356, i64 1, i64 0 }, ptr %a384 + store { ptr, i64, i64 } { ptr @.str.1384, i64 1, i64 0 }, ptr %a384 call void @finch_str_concat(ptr %a382, ptr %a383, ptr %a384) store { ptr, i64, i64 } %t381, ptr %a385 call void @finch_str_drop(ptr %a385) @@ -26146,8 +26891,8 @@ then2404: call void @finch.gen.fail(ptr %t362, %S.ast.Node %t363, { ptr, i64, i64 } %t386) store { ptr, i64, i64 } %t386, ptr %a387 call void @finch_str_drop(ptr %a387) - br label %endif2406 -endif2406: + br label %endif2465 +endif2465: %t388 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 %t389 = load { ptr, i64, i64 }, ptr %t388 store { ptr, i64, i64 } %t389, ptr %a390 @@ -26157,17 +26902,17 @@ endif2406: store { ptr, i64, i64 } %t392, ptr %a352 store { ptr, i64, i64 } %t393, ptr %a394 call void @finch_str_drop(ptr %a394) - br label %endif2403 -endif2403: + br label %endif2462 +endif2462: %t395 = load ptr, ptr %a1 %t396 = load { ptr, i64, i64 }, ptr %a352 %t397 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 %t398 = load { ptr, i64, i64 }, ptr %t397 %t399 = call i64 @finch.gen.findEnum(ptr %t395, { ptr, i64, i64 } %t396, { ptr, i64, i64 } %t398) %t400 = icmp sge i64 %t399, 0 - br i1 %t400, label %then2407, label %endif2409 -then2407: - %t401 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.1357, i64 4, i64 0 }, 0 + br i1 %t400, label %then2466, label %endif2468 +then2466: + %t401 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.1385, i64 4, i64 0 }, 0 %t402 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 %t403 = load { ptr, i64, i64 }, ptr %t402 store { ptr, i64, i64 } %t403, ptr %a404 @@ -26181,58 +26926,58 @@ then2407: %t412 = insertvalue %S.ast.Type %t407, { ptr, i64, i64 } %t411, 3 call void @finch_str_drop(ptr %a352) ret %S.ast.Type %t412 -endif2409: +endif2468: %t413 = load ptr, ptr %a1 %t414 = load { ptr, i64, i64 }, ptr %a352 %t415 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 %t416 = load { ptr, i64, i64 }, ptr %t415 %t417 = call i64 @finch.gen.findStruct(ptr %t413, { ptr, i64, i64 } %t414, { ptr, i64, i64 } %t416) %t418 = icmp slt i64 %t417, 0 - br i1 %t418, label %then2410, label %endif2412 -then2410: + br i1 %t418, label %then2469, label %endif2471 +then2469: %t419 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 %t420 = getelementptr inbounds { ptr, i64, i64 }, ptr %t419, i32 0, i32 1 %t421 = load i64, ptr %t420 %t422 = icmp eq i64 %t421, 0 - br label %logic.from2413 -logic.from2413: - br i1 %t422, label %logic.rhs2414, label %logic.end2415 -logic.rhs2414: + br label %logic.from2472 +logic.from2472: + br i1 %t422, label %logic.rhs2473, label %logic.end2474 +logic.rhs2473: %t423 = load ptr, ptr %a1 %t424 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 %t425 = load { ptr, i64, i64 }, ptr %t424 - %t426 = call i64 @finch.gen.findStruct(ptr %t423, { ptr, i64, i64 } { ptr @.str.1358, i64 1, i64 0 }, { ptr, i64, i64 } %t425) + %t426 = call i64 @finch.gen.findStruct(ptr %t423, { ptr, i64, i64 } { ptr @.str.1386, i64 1, i64 0 }, { ptr, i64, i64 } %t425) %t427 = icmp sge i64 %t426, 0 - br label %logic.rend2416 -logic.rend2416: - br label %logic.end2415 -logic.end2415: - %t428 = phi i1 [ false, %logic.from2413 ], [ %t427, %logic.rend2416 ] - br i1 %t428, label %then2417, label %endif2419 -then2417: - %t429 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.1359, i64 6, i64 0 }, 0 + br label %logic.rend2475 +logic.rend2475: + br label %logic.end2474 +logic.end2474: + %t428 = phi i1 [ false, %logic.from2472 ], [ %t427, %logic.rend2475 ] + br i1 %t428, label %then2476, label %endif2478 +then2476: + %t429 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.1387, i64 6, i64 0 }, 0 %t430 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 %t431 = load { ptr, i64, i64 }, ptr %t430 store { ptr, i64, i64 } %t431, ptr %a432 call void @finch_str_copy(ptr %a433, ptr %a432) %t434 = load { ptr, i64, i64 }, ptr %a433 %t435 = insertvalue %S.ast.Type %t429, { ptr, i64, i64 } %t434, 2 - %t436 = insertvalue %S.ast.Type %t435, { ptr, i64, i64 } { ptr @.str.1360, i64 1, i64 0 }, 3 + %t436 = insertvalue %S.ast.Type %t435, { ptr, i64, i64 } { ptr @.str.1388, i64 1, i64 0 }, 3 call void @finch_str_drop(ptr %a352) ret %S.ast.Type %t436 -endif2419: +endif2478: %t437 = load ptr, ptr %a1 %t438 = load %S.ast.Node, ptr %a3 %t439 = load %S.ast.Type, ptr %a2 %t440 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t439) - store { ptr, i64, i64 } { ptr @.str.1361, i64 24, i64 0 }, ptr %a442 + store { ptr, i64, i64 } { ptr @.str.1389, i64 24, i64 0 }, ptr %a442 store { ptr, i64, i64 } %t440, ptr %a443 call void @finch_str_concat(ptr %a441, ptr %a442, ptr %a443) store { ptr, i64, i64 } %t440, ptr %a444 call void @finch_str_drop(ptr %a444) %t445 = load { ptr, i64, i64 }, ptr %a441 store { ptr, i64, i64 } %t445, ptr %a447 - store { ptr, i64, i64 } { ptr @.str.1362, i64 1, i64 0 }, ptr %a448 + store { ptr, i64, i64 } { ptr @.str.1390, i64 1, i64 0 }, ptr %a448 call void @finch_str_concat(ptr %a446, ptr %a447, ptr %a448) store { ptr, i64, i64 } %t445, ptr %a449 call void @finch_str_drop(ptr %a449) @@ -26240,9 +26985,9 @@ endif2419: call void @finch.gen.fail(ptr %t437, %S.ast.Node %t438, { ptr, i64, i64 } %t450) store { ptr, i64, i64 } %t450, ptr %a451 call void @finch_str_drop(ptr %a451) - br label %endif2412 -endif2412: - %t452 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.1363, i64 6, i64 0 }, 0 + br label %endif2471 +endif2471: + %t452 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.1391, i64 6, i64 0 }, 0 %t453 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 %t454 = load { ptr, i64, i64 }, ptr %t453 store { ptr, i64, i64 } %t454, ptr %a455 @@ -26283,27 +27028,27 @@ entry: store { ptr, i64, i64 } %p0, ptr %a1 %t2 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t2, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.1365, i64 1, i64 0 }, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.1366, i64 1, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.1393, i64 1, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.1394, i64 1, i64 0 }, ptr %a6 call void @finch_str_replace(ptr %a4, ptr %a3, ptr %a5, ptr %a6) %t7 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t7, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.1368, i64 1, i64 0 }, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.1369, i64 0, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.1396, i64 1, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.1397, i64 0, i64 0 }, ptr %a11 call void @finch_str_replace(ptr %a9, ptr %a8, ptr %a10, ptr %a11) %t12 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t7, ptr %a13 call void @finch_str_drop(ptr %a13) store { ptr, i64, i64 } %t12, ptr %a14 - store { ptr, i64, i64 } { ptr @.str.1371, i64 1, i64 0 }, ptr %a16 - store { ptr, i64, i64 } { ptr @.str.1372, i64 1, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.1399, i64 1, i64 0 }, ptr %a16 + store { ptr, i64, i64 } { ptr @.str.1400, i64 1, i64 0 }, ptr %a17 call void @finch_str_replace(ptr %a15, ptr %a14, ptr %a16, ptr %a17) %t18 = load { ptr, i64, i64 }, ptr %a15 store { ptr, i64, i64 } %t12, ptr %a19 call void @finch_str_drop(ptr %a19) store { ptr, i64, i64 } %t18, ptr %a20 - store { ptr, i64, i64 } { ptr @.str.1374, i64 1, i64 0 }, ptr %a22 - store { ptr, i64, i64 } { ptr @.str.1375, i64 0, i64 0 }, ptr %a23 + store { ptr, i64, i64 } { ptr @.str.1402, i64 1, i64 0 }, ptr %a22 + store { ptr, i64, i64 } { ptr @.str.1403, i64 0, i64 0 }, ptr %a23 call void @finch_str_replace(ptr %a21, ptr %a20, ptr %a22, ptr %a23) %t24 = load { ptr, i64, i64 }, ptr %a21 store { ptr, i64, i64 } %t18, ptr %a25 @@ -26320,10 +27065,10 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t3 = load i64, ptr %t2 %t4 = icmp eq i64 %t3, 0 - br i1 %t4, label %then2420, label %endif2422 -then2420: - ret { ptr, i64, i64 } { ptr @.str.1376, i64 4, i64 0 } -endif2422: + br i1 %t4, label %then2479, label %endif2481 +then2479: + ret { ptr, i64, i64 } { ptr @.str.1404, i64 4, i64 0 } +endif2481: %t5 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t5, ptr %a6 call void @finch_str_copy(ptr %a7, ptr %a6) @@ -26408,37 +27153,37 @@ entry: store { ptr, i64, i64 } %t7, ptr %a8 %t9 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t9, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.1377, i64 4, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.1405, i64 4, i64 0 }, ptr %a11 %t12 = call i32 @finch_str_eq(ptr %a10, ptr %a11) %t13 = icmp ne i32 %t12, 0 - br i1 %t13, label %then2423, label %endif2425 -then2423: + br i1 %t13, label %then2482, label %endif2484 +then2482: call void @finch_str_drop(ptr %a8) - ret { ptr, i64, i64 } { ptr @.str.1378, i64 2, i64 0 } -endif2425: + ret { ptr, i64, i64 } { ptr @.str.1406, i64 2, i64 0 } +endif2484: %t14 = load %S.ast.Type, ptr %a2 %t15 = call i1 @finch.gen.isInt(%S.ast.Type %t14) - br label %logic.from2426 -logic.from2426: - br i1 %t15, label %logic.end2428, label %logic.rhs2427 -logic.rhs2427: + br label %logic.from2485 +logic.from2485: + br i1 %t15, label %logic.end2487, label %logic.rhs2486 +logic.rhs2486: %t16 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t16, ptr %a17 - store { ptr, i64, i64 } { ptr @.str.1379, i64 4, i64 0 }, ptr %a18 + store { ptr, i64, i64 } { ptr @.str.1407, i64 4, i64 0 }, ptr %a18 %t19 = call i32 @finch_str_eq(ptr %a17, ptr %a18) %t20 = icmp ne i32 %t19, 0 - br label %logic.rend2429 -logic.rend2429: - br label %logic.end2428 -logic.end2428: - %t21 = phi i1 [ true, %logic.from2426 ], [ %t20, %logic.rend2429 ] - br i1 %t21, label %then2430, label %endif2432 -then2430: + br label %logic.rend2488 +logic.rend2488: + br label %logic.end2487 +logic.end2487: + %t21 = phi i1 [ true, %logic.from2485 ], [ %t20, %logic.rend2488 ] + br i1 %t21, label %then2489, label %endif2491 +then2489: %t22 = load %S.ast.Type, ptr %a2 %t23 = call i64 @finch.gen.bitsOf(%S.ast.Type %t22) call void @finch_str_from_int(ptr %a24, i64 %t23) %t25 = load { ptr, i64, i64 }, ptr %a24 - store { ptr, i64, i64 } { ptr @.str.1380, i64 1, i64 0 }, ptr %a27 + store { ptr, i64, i64 } { ptr @.str.1408, i64 1, i64 0 }, ptr %a27 store { ptr, i64, i64 } %t25, ptr %a28 call void @finch_str_concat(ptr %a26, ptr %a27, ptr %a28) store { ptr, i64, i64 } %t25, ptr %a29 @@ -26446,80 +27191,80 @@ then2430: %t30 = load { ptr, i64, i64 }, ptr %a26 call void @finch_str_drop(ptr %a8) ret { ptr, i64, i64 } %t30 -endif2432: +endif2491: %t31 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t31, ptr %a32 - store { ptr, i64, i64 } { ptr @.str.1381, i64 5, i64 0 }, ptr %a33 + store { ptr, i64, i64 } { ptr @.str.1409, i64 5, i64 0 }, ptr %a33 %t34 = call i32 @finch_str_eq(ptr %a32, ptr %a33) %t35 = icmp ne i32 %t34, 0 - br i1 %t35, label %then2433, label %endif2435 -then2433: + br i1 %t35, label %then2492, label %endif2494 +then2492: call void @finch_str_drop(ptr %a8) - ret { ptr, i64, i64 } { ptr @.str.1382, i64 6, i64 0 } -endif2435: + ret { ptr, i64, i64 } { ptr @.str.1410, i64 6, i64 0 } +endif2494: %t36 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t36, ptr %a37 - store { ptr, i64, i64 } { ptr @.str.1383, i64 3, i64 0 }, ptr %a38 + store { ptr, i64, i64 } { ptr @.str.1411, i64 3, i64 0 }, ptr %a38 %t39 = call i32 @finch_str_eq(ptr %a37, ptr %a38) %t40 = icmp ne i32 %t39, 0 - br i1 %t40, label %then2436, label %endif2438 -then2436: + br i1 %t40, label %then2495, label %endif2497 +then2495: call void @finch_str_drop(ptr %a8) - ret { ptr, i64, i64 } { ptr @.str.1384, i64 5, i64 0 } -endif2438: + ret { ptr, i64, i64 } { ptr @.str.1412, i64 5, i64 0 } +endif2497: %t41 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t41, ptr %a42 - store { ptr, i64, i64 } { ptr @.str.1385, i64 3, i64 0 }, ptr %a43 + store { ptr, i64, i64 } { ptr @.str.1413, i64 3, i64 0 }, ptr %a43 %t44 = call i32 @finch_str_eq(ptr %a42, ptr %a43) %t45 = icmp ne i32 %t44, 0 - br label %logic.from2439 -logic.from2439: - br i1 %t45, label %logic.end2441, label %logic.rhs2440 -logic.rhs2440: + br label %logic.from2498 +logic.from2498: + br i1 %t45, label %logic.end2500, label %logic.rhs2499 +logic.rhs2499: %t46 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t46, ptr %a47 - store { ptr, i64, i64 } { ptr @.str.1386, i64 5, i64 0 }, ptr %a48 + store { ptr, i64, i64 } { ptr @.str.1414, i64 5, i64 0 }, ptr %a48 %t49 = call i32 @finch_str_eq(ptr %a47, ptr %a48) %t50 = icmp ne i32 %t49, 0 - br label %logic.rend2442 -logic.rend2442: - br label %logic.end2441 -logic.end2441: - %t51 = phi i1 [ true, %logic.from2439 ], [ %t50, %logic.rend2442 ] - br i1 %t51, label %then2443, label %endif2445 -then2443: + br label %logic.rend2501 +logic.rend2501: + br label %logic.end2500 +logic.end2500: + %t51 = phi i1 [ true, %logic.from2498 ], [ %t50, %logic.rend2501 ] + br i1 %t51, label %then2502, label %endif2504 +then2502: call void @finch_str_drop(ptr %a8) - ret { ptr, i64, i64 } { ptr @.str.1387, i64 17, i64 0 } -endif2445: + ret { ptr, i64, i64 } { ptr @.str.1415, i64 17, i64 0 } +endif2504: %t52 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t52, ptr %a53 - store { ptr, i64, i64 } { ptr @.str.1388, i64 3, i64 0 }, ptr %a54 + store { ptr, i64, i64 } { ptr @.str.1416, i64 3, i64 0 }, ptr %a54 %t55 = call i32 @finch_str_eq(ptr %a53, ptr %a54) %t56 = icmp ne i32 %t55, 0 - br i1 %t56, label %then2446, label %endif2448 -then2446: + br i1 %t56, label %then2505, label %endif2507 +then2505: call void @finch_str_drop(ptr %a8) - ret { ptr, i64, i64 } { ptr @.str.1389, i64 37, i64 0 } -endif2448: + ret { ptr, i64, i64 } { ptr @.str.1417, i64 37, i64 0 } +endif2507: %t57 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t57, ptr %a58 - store { ptr, i64, i64 } { ptr @.str.1390, i64 5, i64 0 }, ptr %a59 + store { ptr, i64, i64 } { ptr @.str.1418, i64 5, i64 0 }, ptr %a59 %t60 = call i32 @finch_str_eq(ptr %a58, ptr %a59) %t61 = icmp ne i32 %t60, 0 - br i1 %t61, label %then2449, label %endif2451 -then2449: + br i1 %t61, label %then2508, label %endif2510 +then2508: %t62 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 4 %t63 = load i64, ptr %t62 call void @finch_str_from_int(ptr %a64, i64 %t63) %t65 = load { ptr, i64, i64 }, ptr %a64 - store { ptr, i64, i64 } { ptr @.str.1391, i64 1, i64 0 }, ptr %a67 + store { ptr, i64, i64 } { ptr @.str.1419, i64 1, i64 0 }, ptr %a67 store { ptr, i64, i64 } %t65, ptr %a68 call void @finch_str_concat(ptr %a66, ptr %a67, ptr %a68) store { ptr, i64, i64 } %t65, ptr %a69 call void @finch_str_drop(ptr %a69) %t70 = load { ptr, i64, i64 }, ptr %a66 store { ptr, i64, i64 } %t70, ptr %a72 - store { ptr, i64, i64 } { ptr @.str.1392, i64 3, i64 0 }, ptr %a73 + store { ptr, i64, i64 } { ptr @.str.1420, i64 3, i64 0 }, ptr %a73 call void @finch_str_concat(ptr %a71, ptr %a72, ptr %a73) store { ptr, i64, i64 } %t70, ptr %a74 call void @finch_str_drop(ptr %a74) @@ -26529,11 +27274,11 @@ then2449: %t78 = load { ptr, i64, i64 }, ptr %t77 %t79 = extractvalue { ptr, i64, i64 } %t78, 1 %t80 = icmp uge i64 0, %t79 - br i1 %t80, label %range2452, label %inrange2453 -range2452: - call void @finch_panic_index(ptr @.str.1393, i64 606, i64 0, i64 %t79) + br i1 %t80, label %range2511, label %inrange2512 +range2511: + call void @finch_panic_index(ptr @.str.1421, i64 632, i64 0, i64 %t79) unreachable -inrange2453: +inrange2512: %t81 = extractvalue { ptr, i64, i64 } %t78, 0 %t82 = getelementptr inbounds %S.ast.Type, ptr %t81, i64 0 %t83 = load %S.ast.Type, ptr %t82 @@ -26547,69 +27292,69 @@ inrange2453: call void @finch_str_drop(ptr %a89) %t90 = load { ptr, i64, i64 }, ptr %a85 store { ptr, i64, i64 } %t90, ptr %a92 - store { ptr, i64, i64 } { ptr @.str.1394, i64 1, i64 0 }, ptr %a93 + store { ptr, i64, i64 } { ptr @.str.1422, i64 1, i64 0 }, ptr %a93 call void @finch_str_concat(ptr %a91, ptr %a92, ptr %a93) store { ptr, i64, i64 } %t90, ptr %a94 call void @finch_str_drop(ptr %a94) %t95 = load { ptr, i64, i64 }, ptr %a91 call void @finch_str_drop(ptr %a8) ret { ptr, i64, i64 } %t95 -endif2451: +endif2510: %t96 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t96, ptr %a97 - store { ptr, i64, i64 } { ptr @.str.1395, i64 4, i64 0 }, ptr %a98 + store { ptr, i64, i64 } { ptr @.str.1423, i64 4, i64 0 }, ptr %a98 %t99 = call i32 @finch_str_eq(ptr %a97, ptr %a98) %t100 = icmp ne i32 %t99, 0 - br i1 %t100, label %then2454, label %endif2456 -then2454: + br i1 %t100, label %then2513, label %endif2515 +then2513: call void @finch_str_drop(ptr %a8) - ret { ptr, i64, i64 } { ptr @.str.1396, i64 3, i64 0 } -endif2456: + ret { ptr, i64, i64 } { ptr @.str.1424, i64 3, i64 0 } +endif2515: %t101 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t101, ptr %a102 - store { ptr, i64, i64 } { ptr @.str.1397, i64 3, i64 0 }, ptr %a103 + store { ptr, i64, i64 } { ptr @.str.1425, i64 3, i64 0 }, ptr %a103 %t104 = call i32 @finch_str_eq(ptr %a102, ptr %a103) %t105 = icmp ne i32 %t104, 0 - br label %logic.from2457 -logic.from2457: - br i1 %t105, label %logic.end2459, label %logic.rhs2458 -logic.rhs2458: + br label %logic.from2516 +logic.from2516: + br i1 %t105, label %logic.end2518, label %logic.rhs2517 +logic.rhs2517: %t106 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t106, ptr %a107 - store { ptr, i64, i64 } { ptr @.str.1398, i64 4, i64 0 }, ptr %a108 + store { ptr, i64, i64 } { ptr @.str.1426, i64 4, i64 0 }, ptr %a108 %t109 = call i32 @finch_str_eq(ptr %a107, ptr %a108) %t110 = icmp ne i32 %t109, 0 - br label %logic.rend2460 -logic.rend2460: - br label %logic.end2459 -logic.end2459: - %t111 = phi i1 [ true, %logic.from2457 ], [ %t110, %logic.rend2460 ] - br i1 %t111, label %then2461, label %endif2463 -then2461: + br label %logic.rend2519 +logic.rend2519: + br label %logic.end2518 +logic.end2518: + %t111 = phi i1 [ true, %logic.from2516 ], [ %t110, %logic.rend2519 ] + br i1 %t111, label %then2520, label %endif2522 +then2520: call void @finch_str_drop(ptr %a8) - ret { ptr, i64, i64 } { ptr @.str.1399, i64 3, i64 0 } -endif2463: + ret { ptr, i64, i64 } { ptr @.str.1427, i64 3, i64 0 } +endif2522: %t112 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t112, ptr %a113 - store { ptr, i64, i64 } { ptr @.str.1400, i64 4, i64 0 }, ptr %a114 + store { ptr, i64, i64 } { ptr @.str.1428, i64 4, i64 0 }, ptr %a114 %t115 = call i32 @finch_str_eq(ptr %a113, ptr %a114) %t116 = icmp ne i32 %t115, 0 - br i1 %t116, label %then2464, label %endif2466 -then2464: + br i1 %t116, label %then2523, label %endif2525 +then2523: call void @finch_str_drop(ptr %a8) - ret { ptr, i64, i64 } { ptr @.str.1401, i64 4, i64 0 } -endif2466: + ret { ptr, i64, i64 } { ptr @.str.1429, i64 4, i64 0 } +endif2525: %t117 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 %t118 = load { ptr, i64, i64 }, ptr %t117 %t119 = call { ptr, i64, i64 } @finch.gen.modName({ ptr, i64, i64 } %t118) - store { ptr, i64, i64 } { ptr @.str.1402, i64 3, i64 0 }, ptr %a121 + store { ptr, i64, i64 } { ptr @.str.1430, i64 3, i64 0 }, ptr %a121 store { ptr, i64, i64 } %t119, ptr %a122 call void @finch_str_concat(ptr %a120, ptr %a121, ptr %a122) store { ptr, i64, i64 } %t119, ptr %a123 call void @finch_str_drop(ptr %a123) %t124 = load { ptr, i64, i64 }, ptr %a120 store { ptr, i64, i64 } %t124, ptr %a126 - store { ptr, i64, i64 } { ptr @.str.1403, i64 1, i64 0 }, ptr %a127 + store { ptr, i64, i64 } { ptr @.str.1431, i64 1, i64 0 }, ptr %a127 call void @finch_str_concat(ptr %a125, ptr %a126, ptr %a127) store { ptr, i64, i64 } %t124, ptr %a128 call void @finch_str_drop(ptr %a128) @@ -26649,24 +27394,24 @@ entry: %t3 = getelementptr inbounds %S.gen.FnSig, ptr %a2, i32 0, i32 9 %t4 = load i1, ptr %t3 %t5 = xor i1 %t4, true - br i1 %t5, label %then2467, label %endif2469 -then2467: + br i1 %t5, label %then2526, label %endif2528 +then2526: %t6 = load ptr, ptr %a1 %t7 = getelementptr inbounds %S.gen.FnSig, ptr %a2, i32 0, i32 12 %t8 = load %S.ast.Type, ptr %t7 %t9 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t6, %S.ast.Type %t8) ret { ptr, i64, i64 } %t9 -endif2469: - store { ptr, i64, i64 } { ptr @.str.1404, i64 2, i64 0 }, ptr %a10 +endif2528: + store { ptr, i64, i64 } { ptr @.str.1432, i64 2, i64 0 }, ptr %a10 %t11 = getelementptr inbounds %S.gen.FnSig, ptr %a2, i32 0, i32 12 %t12 = getelementptr inbounds %S.ast.Type, ptr %t11, i32 0, i32 0 %t13 = load { ptr, i64, i64 }, ptr %t12 store { ptr, i64, i64 } %t13, ptr %a14 - store { ptr, i64, i64 } { ptr @.str.1405, i64 4, i64 0 }, ptr %a15 + store { ptr, i64, i64 } { ptr @.str.1433, i64 4, i64 0 }, ptr %a15 %t16 = call i32 @finch_str_eq(ptr %a14, ptr %a15) %t17 = icmp eq i32 %t16, 0 - br i1 %t17, label %then2470, label %endif2472 -then2470: + br i1 %t17, label %then2529, label %endif2531 +then2529: %t18 = load ptr, ptr %a1 %t19 = getelementptr inbounds %S.gen.FnSig, ptr %a2, i32 0, i32 12 %t20 = load %S.ast.Type, ptr %t19 @@ -26675,15 +27420,15 @@ then2470: store { ptr, i64, i64 } %t21, ptr %a10 store { ptr, i64, i64 } %t22, ptr %a23 call void @finch_str_drop(ptr %a23) - br label %endif2472 -endif2472: + br label %endif2531 +endif2531: %t24 = load { ptr, i64, i64 }, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.1406, i64 6, i64 0 }, ptr %a26 + store { ptr, i64, i64 } { ptr @.str.1434, i64 6, i64 0 }, ptr %a26 store { ptr, i64, i64 } %t24, ptr %a27 call void @finch_str_concat(ptr %a25, ptr %a26, ptr %a27) %t28 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t28, ptr %a30 - store { ptr, i64, i64 } { ptr @.str.1407, i64 21, i64 0 }, ptr %a31 + store { ptr, i64, i64 } { ptr @.str.1435, i64 21, i64 0 }, ptr %a31 call void @finch_str_concat(ptr %a29, ptr %a30, ptr %a31) store { ptr, i64, i64 } %t28, ptr %a32 call void @finch_str_drop(ptr %a32) @@ -26728,7 +27473,7 @@ entry: %t2 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 0 %t3 = load { ptr, i64, i64 }, ptr %t2 store { ptr, i64, i64 } %t3, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.1408, i64 1, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.1436, i64 1, i64 0 }, ptr %a6 call void @finch_str_concat(ptr %a4, ptr %a5, ptr %a6) %t7 = load { ptr, i64, i64 }, ptr %a4 %t8 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 11 @@ -26744,7 +27489,7 @@ entry: call void @finch_str_drop(ptr %a16) %t17 = load { ptr, i64, i64 }, ptr %a12 store { ptr, i64, i64 } %t17, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.1409, i64 1, i64 0 }, ptr %a20 + store { ptr, i64, i64 } { ptr @.str.1437, i64 1, i64 0 }, ptr %a20 call void @finch_str_concat(ptr %a18, ptr %a19, ptr %a20) store { ptr, i64, i64 } %t17, ptr %a21 call void @finch_str_drop(ptr %a21) @@ -26762,7 +27507,7 @@ entry: call void @finch_str_drop(ptr %a31) %t32 = load { ptr, i64, i64 }, ptr %a27 store { ptr, i64, i64 } %t32, ptr %a34 - store { ptr, i64, i64 } { ptr @.str.1410, i64 1, i64 0 }, ptr %a35 + store { ptr, i64, i64 } { ptr @.str.1438, i64 1, i64 0 }, ptr %a35 call void @finch_str_concat(ptr %a33, ptr %a34, ptr %a35) store { ptr, i64, i64 } %t32, ptr %a36 call void @finch_str_drop(ptr %a36) @@ -26807,82 +27552,82 @@ entry: store { ptr, i64, i64 } %t6, ptr %a7 %t8 = load %S.ast.Type, ptr %a1 %t9 = call i1 @finch.gen.isInt(%S.ast.Type %t8) - br label %logic.from2473 -logic.from2473: - br i1 %t9, label %logic.end2475, label %logic.rhs2474 -logic.rhs2474: + br label %logic.from2532 +logic.from2532: + br i1 %t9, label %logic.end2534, label %logic.rhs2533 +logic.rhs2533: %t10 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t10, ptr %a11 - store { ptr, i64, i64 } { ptr @.str.1411, i64 4, i64 0 }, ptr %a12 + store { ptr, i64, i64 } { ptr @.str.1439, i64 4, i64 0 }, ptr %a12 %t13 = call i32 @finch_str_eq(ptr %a11, ptr %a12) %t14 = icmp ne i32 %t13, 0 - br label %logic.rend2476 -logic.rend2476: - br label %logic.end2475 -logic.end2475: - %t15 = phi i1 [ true, %logic.from2473 ], [ %t14, %logic.rend2476 ] - br label %logic.from2477 -logic.from2477: - br i1 %t15, label %logic.end2479, label %logic.rhs2478 -logic.rhs2478: + br label %logic.rend2535 +logic.rend2535: + br label %logic.end2534 +logic.end2534: + %t15 = phi i1 [ true, %logic.from2532 ], [ %t14, %logic.rend2535 ] + br label %logic.from2536 +logic.from2536: + br i1 %t15, label %logic.end2538, label %logic.rhs2537 +logic.rhs2537: %t16 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t16, ptr %a17 - store { ptr, i64, i64 } { ptr @.str.1412, i64 4, i64 0 }, ptr %a18 + store { ptr, i64, i64 } { ptr @.str.1440, i64 4, i64 0 }, ptr %a18 %t19 = call i32 @finch_str_eq(ptr %a17, ptr %a18) %t20 = icmp ne i32 %t19, 0 - br label %logic.rend2480 -logic.rend2480: - br label %logic.end2479 -logic.end2479: - %t21 = phi i1 [ true, %logic.from2477 ], [ %t20, %logic.rend2480 ] - br i1 %t21, label %then2481, label %endif2483 -then2481: + br label %logic.rend2539 +logic.rend2539: + br label %logic.end2538 +logic.end2538: + %t21 = phi i1 [ true, %logic.from2536 ], [ %t20, %logic.rend2539 ] + br i1 %t21, label %then2540, label %endif2542 +then2540: call void @finch_str_drop(ptr %a7) - ret { ptr, i64, i64 } { ptr @.str.1413, i64 1, i64 0 } -endif2483: + ret { ptr, i64, i64 } { ptr @.str.1441, i64 1, i64 0 } +endif2542: %t22 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t22, ptr %a23 - store { ptr, i64, i64 } { ptr @.str.1414, i64 4, i64 0 }, ptr %a24 + store { ptr, i64, i64 } { ptr @.str.1442, i64 4, i64 0 }, ptr %a24 %t25 = call i32 @finch_str_eq(ptr %a23, ptr %a24) %t26 = icmp ne i32 %t25, 0 - br i1 %t26, label %then2484, label %endif2486 -then2484: + br i1 %t26, label %then2543, label %endif2545 +then2543: call void @finch_str_drop(ptr %a7) - ret { ptr, i64, i64 } { ptr @.str.1415, i64 5, i64 0 } -endif2486: + ret { ptr, i64, i64 } { ptr @.str.1443, i64 5, i64 0 } +endif2545: %t27 = load %S.ast.Type, ptr %a1 %t28 = call i1 @finch.gen.isFloat(%S.ast.Type %t27) - br i1 %t28, label %then2487, label %endif2489 -then2487: + br i1 %t28, label %then2546, label %endif2548 +then2546: call void @finch_str_drop(ptr %a7) - ret { ptr, i64, i64 } { ptr @.str.1416, i64 3, i64 0 } -endif2489: + ret { ptr, i64, i64 } { ptr @.str.1444, i64 3, i64 0 } +endif2548: %t29 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t29, ptr %a30 - store { ptr, i64, i64 } { ptr @.str.1417, i64 3, i64 0 }, ptr %a31 + store { ptr, i64, i64 } { ptr @.str.1445, i64 3, i64 0 }, ptr %a31 %t32 = call i32 @finch_str_eq(ptr %a30, ptr %a31) %t33 = icmp ne i32 %t32, 0 - br label %logic.from2490 -logic.from2490: - br i1 %t33, label %logic.end2492, label %logic.rhs2491 -logic.rhs2491: + br label %logic.from2549 +logic.from2549: + br i1 %t33, label %logic.end2551, label %logic.rhs2550 +logic.rhs2550: %t34 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t34, ptr %a35 - store { ptr, i64, i64 } { ptr @.str.1418, i64 4, i64 0 }, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.1446, i64 4, i64 0 }, ptr %a36 %t37 = call i32 @finch_str_eq(ptr %a35, ptr %a36) %t38 = icmp ne i32 %t37, 0 - br label %logic.rend2493 -logic.rend2493: - br label %logic.end2492 -logic.end2492: - %t39 = phi i1 [ true, %logic.from2490 ], [ %t38, %logic.rend2493 ] - br i1 %t39, label %then2494, label %endif2496 -then2494: + br label %logic.rend2552 +logic.rend2552: + br label %logic.end2551 +logic.end2551: + %t39 = phi i1 [ true, %logic.from2549 ], [ %t38, %logic.rend2552 ] + br i1 %t39, label %then2553, label %endif2555 +then2553: call void @finch_str_drop(ptr %a7) - ret { ptr, i64, i64 } { ptr @.str.1419, i64 4, i64 0 } -endif2496: + ret { ptr, i64, i64 } { ptr @.str.1447, i64 4, i64 0 } +endif2555: call void @finch_str_drop(ptr %a7) - ret { ptr, i64, i64 } { ptr @.str.1420, i64 15, i64 0 } + ret { ptr, i64, i64 } { ptr @.str.1448, i64 15, i64 0 } } define internal { ptr, i64, i64 } @finch.gen.sizeOf(ptr %p0, %S.ast.Type %p1) { @@ -26902,14 +27647,14 @@ entry: %t3 = load ptr, ptr %a1 %t4 = load %S.ast.Type, ptr %a2 %t5 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t3, %S.ast.Type %t4) - store { ptr, i64, i64 } { ptr @.str.1421, i64 29, i64 0 }, ptr %a7 + store { ptr, i64, i64 } { ptr @.str.1449, i64 29, i64 0 }, ptr %a7 store { ptr, i64, i64 } %t5, ptr %a8 call void @finch_str_concat(ptr %a6, ptr %a7, ptr %a8) store { ptr, i64, i64 } %t5, ptr %a9 call void @finch_str_drop(ptr %a9) %t10 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t10, ptr %a12 - store { ptr, i64, i64 } { ptr @.str.1422, i64 26, i64 0 }, ptr %a13 + store { ptr, i64, i64 } { ptr @.str.1450, i64 26, i64 0 }, ptr %a13 call void @finch_str_concat(ptr %a11, ptr %a12, ptr %a13) store { ptr, i64, i64 } %t10, ptr %a14 call void @finch_str_drop(ptr %a14) @@ -26934,58 +27679,58 @@ entry: %t3 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t4 = load { ptr, i64, i64 }, ptr %t3 store { ptr, i64, i64 } %t4, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.1423, i64 3, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.1451, i64 3, i64 0 }, ptr %a6 %t7 = call i32 @finch_str_eq(ptr %a5, ptr %a6) %t8 = icmp ne i32 %t7, 0 - br label %logic.from2497 -logic.from2497: - br i1 %t8, label %logic.end2499, label %logic.rhs2498 -logic.rhs2498: + br label %logic.from2556 +logic.from2556: + br i1 %t8, label %logic.end2558, label %logic.rhs2557 +logic.rhs2557: %t9 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t10 = load { ptr, i64, i64 }, ptr %t9 store { ptr, i64, i64 } %t10, ptr %a11 - store { ptr, i64, i64 } { ptr @.str.1424, i64 5, i64 0 }, ptr %a12 + store { ptr, i64, i64 } { ptr @.str.1452, i64 5, i64 0 }, ptr %a12 %t13 = call i32 @finch_str_eq(ptr %a11, ptr %a12) %t14 = icmp ne i32 %t13, 0 - br label %logic.rend2500 -logic.rend2500: - br label %logic.end2499 -logic.end2499: - %t15 = phi i1 [ true, %logic.from2497 ], [ %t14, %logic.rend2500 ] - br label %logic.from2501 -logic.from2501: - br i1 %t15, label %logic.end2503, label %logic.rhs2502 -logic.rhs2502: + br label %logic.rend2559 +logic.rend2559: + br label %logic.end2558 +logic.end2558: + %t15 = phi i1 [ true, %logic.from2556 ], [ %t14, %logic.rend2559 ] + br label %logic.from2560 +logic.from2560: + br i1 %t15, label %logic.end2562, label %logic.rhs2561 +logic.rhs2561: %t16 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t17 = load { ptr, i64, i64 }, ptr %t16 store { ptr, i64, i64 } %t17, ptr %a18 - store { ptr, i64, i64 } { ptr @.str.1425, i64 3, i64 0 }, ptr %a19 + store { ptr, i64, i64 } { ptr @.str.1453, i64 3, i64 0 }, ptr %a19 %t20 = call i32 @finch_str_eq(ptr %a18, ptr %a19) %t21 = icmp ne i32 %t20, 0 - br label %logic.rend2504 -logic.rend2504: - br label %logic.end2503 -logic.end2503: - %t22 = phi i1 [ true, %logic.from2501 ], [ %t21, %logic.rend2504 ] - br i1 %t22, label %then2505, label %endif2507 -then2505: + br label %logic.rend2563 +logic.rend2563: + br label %logic.end2562 +logic.end2562: + %t22 = phi i1 [ true, %logic.from2560 ], [ %t21, %logic.rend2563 ] + br i1 %t22, label %then2564, label %endif2566 +then2564: ret i1 true -endif2507: +endif2566: %t23 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t24 = load { ptr, i64, i64 }, ptr %t23 store { ptr, i64, i64 } %t24, ptr %a25 - store { ptr, i64, i64 } { ptr @.str.1426, i64 6, i64 0 }, ptr %a26 + store { ptr, i64, i64 } { ptr @.str.1454, i64 6, i64 0 }, ptr %a26 %t27 = call i32 @finch_str_eq(ptr %a25, ptr %a26) %t28 = icmp ne i32 %t27, 0 - br i1 %t28, label %then2508, label %endif2510 -then2508: + br i1 %t28, label %then2567, label %endif2569 +then2567: %t29 = load ptr, ptr %a1 %t30 = icmp eq ptr %t29, null - br i1 %t30, label %panic2511, label %ok2512 -panic2511: - call void @finch_panic(ptr @.str.1427, i64 664, ptr @.str.1428) + br i1 %t30, label %panic2570, label %ok2571 +panic2570: + call void @finch_panic(ptr @.str.1455, i64 690, ptr @.str.1456) unreachable -ok2512: +ok2571: %t31 = getelementptr inbounds %S.gen.Gen, ptr %t29, i32 0, i32 16 %t32 = load ptr, ptr %a1 %t33 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 @@ -26996,17 +27741,17 @@ ok2512: %t38 = load { ptr, i64, i64 }, ptr %t31 %t39 = extractvalue { ptr, i64, i64 } %t38, 1 %t40 = icmp uge i64 %t37, %t39 - br i1 %t40, label %range2513, label %inrange2514 -range2513: - call void @finch_panic_index(ptr @.str.1429, i64 664, i64 %t37, i64 %t39) + br i1 %t40, label %range2572, label %inrange2573 +range2572: + call void @finch_panic_index(ptr @.str.1457, i64 690, i64 %t37, i64 %t39) unreachable -inrange2514: +inrange2573: %t41 = extractvalue { ptr, i64, i64 } %t38, 0 %t42 = getelementptr inbounds %S.gen.StructDef, ptr %t41, i64 %t37 %t43 = getelementptr inbounds %S.gen.StructDef, ptr %t42, i32 0, i32 16 %t44 = load i1, ptr %t43 ret i1 %t44 -endif2510: +endif2569: ret i1 false } @@ -27069,61 +27814,61 @@ entry: %t2 = getelementptr inbounds %S.ast.Type, ptr %a1, i32 0, i32 0 %t3 = load { ptr, i64, i64 }, ptr %t2 store { ptr, i64, i64 } %t3, ptr %a4 - store { ptr, i64, i64 } { ptr @.str.1430, i64 5, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.1458, i64 5, i64 0 }, ptr %a5 %t6 = call i32 @finch_str_eq(ptr %a4, ptr %a5) %t7 = icmp ne i32 %t6, 0 - br i1 %t7, label %then2515, label %endif2517 -then2515: + br i1 %t7, label %then2574, label %endif2576 +then2574: %t8 = getelementptr inbounds %S.ast.Type, ptr %a1, i32 0, i32 1 %t9 = load { ptr, i64, i64 }, ptr %t8 %t10 = extractvalue { ptr, i64, i64 } %t9, 1 %t11 = icmp uge i64 0, %t10 - br i1 %t11, label %range2518, label %inrange2519 -range2518: - call void @finch_panic_index(ptr @.str.1432, i64 671, i64 0, i64 %t10) + br i1 %t11, label %range2577, label %inrange2578 +range2577: + call void @finch_panic_index(ptr @.str.1460, i64 697, i64 0, i64 %t10) unreachable -inrange2519: +inrange2578: %t12 = extractvalue { ptr, i64, i64 } %t9, 0 %t13 = getelementptr inbounds %S.ast.Type, ptr %t12, i64 0 %t14 = load %S.ast.Type, ptr %t13 %t15 = call { ptr, i64, i64 } @finch.gen.typeKey(%S.ast.Type %t14) - store { ptr, i64, i64 } { ptr @.str.1431, i64 4, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.1459, i64 4, i64 0 }, ptr %a17 store { ptr, i64, i64 } %t15, ptr %a18 call void @finch_str_concat(ptr %a16, ptr %a17, ptr %a18) store { ptr, i64, i64 } %t15, ptr %a19 call void @finch_str_drop(ptr %a19) %t20 = load { ptr, i64, i64 }, ptr %a16 ret { ptr, i64, i64 } %t20 -endif2517: +endif2576: %t21 = getelementptr inbounds %S.ast.Type, ptr %a1, i32 0, i32 0 %t22 = load { ptr, i64, i64 }, ptr %t21 store { ptr, i64, i64 } %t22, ptr %a23 - store { ptr, i64, i64 } { ptr @.str.1433, i64 3, i64 0 }, ptr %a24 + store { ptr, i64, i64 } { ptr @.str.1461, i64 3, i64 0 }, ptr %a24 %t25 = call i32 @finch_str_eq(ptr %a23, ptr %a24) %t26 = icmp ne i32 %t25, 0 - br i1 %t26, label %then2520, label %endif2522 -then2520: + br i1 %t26, label %then2579, label %endif2581 +then2579: %t27 = getelementptr inbounds %S.ast.Type, ptr %a1, i32 0, i32 1 %t28 = load { ptr, i64, i64 }, ptr %t27 %t29 = extractvalue { ptr, i64, i64 } %t28, 1 %t30 = icmp uge i64 0, %t29 - br i1 %t30, label %range2523, label %inrange2524 -range2523: - call void @finch_panic_index(ptr @.str.1435, i64 674, i64 0, i64 %t29) + br i1 %t30, label %range2582, label %inrange2583 +range2582: + call void @finch_panic_index(ptr @.str.1463, i64 700, i64 0, i64 %t29) unreachable -inrange2524: +inrange2583: %t31 = extractvalue { ptr, i64, i64 } %t28, 0 %t32 = getelementptr inbounds %S.ast.Type, ptr %t31, i64 0 %t33 = load %S.ast.Type, ptr %t32 %t34 = call { ptr, i64, i64 } @finch.gen.typeKey(%S.ast.Type %t33) - store { ptr, i64, i64 } { ptr @.str.1434, i64 4, i64 0 }, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.1462, i64 4, i64 0 }, ptr %a36 store { ptr, i64, i64 } %t34, ptr %a37 call void @finch_str_concat(ptr %a35, ptr %a36, ptr %a37) store { ptr, i64, i64 } %t34, ptr %a38 call void @finch_str_drop(ptr %a38) %t39 = load { ptr, i64, i64 }, ptr %a35 store { ptr, i64, i64 } %t39, ptr %a41 - store { ptr, i64, i64 } { ptr @.str.1436, i64 1, i64 0 }, ptr %a42 + store { ptr, i64, i64 } { ptr @.str.1464, i64 1, i64 0 }, ptr %a42 call void @finch_str_concat(ptr %a40, ptr %a41, ptr %a42) store { ptr, i64, i64 } %t39, ptr %a43 call void @finch_str_drop(ptr %a43) @@ -27132,11 +27877,11 @@ inrange2524: %t46 = load { ptr, i64, i64 }, ptr %t45 %t47 = extractvalue { ptr, i64, i64 } %t46, 1 %t48 = icmp uge i64 1, %t47 - br i1 %t48, label %range2525, label %inrange2526 -range2525: - call void @finch_panic_index(ptr @.str.1437, i64 674, i64 1, i64 %t47) + br i1 %t48, label %range2584, label %inrange2585 +range2584: + call void @finch_panic_index(ptr @.str.1465, i64 700, i64 1, i64 %t47) unreachable -inrange2526: +inrange2585: %t49 = extractvalue { ptr, i64, i64 } %t46, 0 %t50 = getelementptr inbounds %S.ast.Type, ptr %t49, i64 1 %t51 = load %S.ast.Type, ptr %t50 @@ -27150,26 +27895,26 @@ inrange2526: call void @finch_str_drop(ptr %a57) %t58 = load { ptr, i64, i64 }, ptr %a53 ret { ptr, i64, i64 } %t58 -endif2522: +endif2581: %t59 = getelementptr inbounds %S.ast.Type, ptr %a1, i32 0, i32 0 %t60 = load { ptr, i64, i64 }, ptr %t59 store { ptr, i64, i64 } %t60, ptr %a61 - store { ptr, i64, i64 } { ptr @.str.1438, i64 4, i64 0 }, ptr %a62 + store { ptr, i64, i64 } { ptr @.str.1466, i64 4, i64 0 }, ptr %a62 %t63 = call i32 @finch_str_eq(ptr %a61, ptr %a62) %t64 = icmp ne i32 %t63, 0 - br i1 %t64, label %then2527, label %endif2529 -then2527: + br i1 %t64, label %then2586, label %endif2588 +then2586: %t65 = getelementptr inbounds %S.ast.Type, ptr %a1, i32 0, i32 3 %t66 = load { ptr, i64, i64 }, ptr %t65 %t67 = call { ptr, i64, i64 } @finch.gen.modName({ ptr, i64, i64 } %t66) - store { ptr, i64, i64 } { ptr @.str.1439, i64 2, i64 0 }, ptr %a69 + store { ptr, i64, i64 } { ptr @.str.1467, i64 2, i64 0 }, ptr %a69 store { ptr, i64, i64 } %t67, ptr %a70 call void @finch_str_concat(ptr %a68, ptr %a69, ptr %a70) store { ptr, i64, i64 } %t67, ptr %a71 call void @finch_str_drop(ptr %a71) %t72 = load { ptr, i64, i64 }, ptr %a68 store { ptr, i64, i64 } %t72, ptr %a74 - store { ptr, i64, i64 } { ptr @.str.1440, i64 1, i64 0 }, ptr %a75 + store { ptr, i64, i64 } { ptr @.str.1468, i64 1, i64 0 }, ptr %a75 call void @finch_str_concat(ptr %a73, ptr %a74, ptr %a75) store { ptr, i64, i64 } %t72, ptr %a76 call void @finch_str_drop(ptr %a76) @@ -27183,26 +27928,26 @@ then2527: call void @finch_str_drop(ptr %a83) %t84 = load { ptr, i64, i64 }, ptr %a80 ret { ptr, i64, i64 } %t84 -endif2529: +endif2588: %t85 = getelementptr inbounds %S.ast.Type, ptr %a1, i32 0, i32 0 %t86 = load { ptr, i64, i64 }, ptr %t85 store { ptr, i64, i64 } %t86, ptr %a87 - store { ptr, i64, i64 } { ptr @.str.1441, i64 6, i64 0 }, ptr %a88 + store { ptr, i64, i64 } { ptr @.str.1469, i64 6, i64 0 }, ptr %a88 %t89 = call i32 @finch_str_eq(ptr %a87, ptr %a88) %t90 = icmp ne i32 %t89, 0 - br i1 %t90, label %then2530, label %endif2532 -then2530: + br i1 %t90, label %then2589, label %endif2591 +then2589: %t91 = getelementptr inbounds %S.ast.Type, ptr %a1, i32 0, i32 3 %t92 = load { ptr, i64, i64 }, ptr %t91 %t93 = call { ptr, i64, i64 } @finch.gen.modName({ ptr, i64, i64 } %t92) - store { ptr, i64, i64 } { ptr @.str.1442, i64 2, i64 0 }, ptr %a95 + store { ptr, i64, i64 } { ptr @.str.1470, i64 2, i64 0 }, ptr %a95 store { ptr, i64, i64 } %t93, ptr %a96 call void @finch_str_concat(ptr %a94, ptr %a95, ptr %a96) store { ptr, i64, i64 } %t93, ptr %a97 call void @finch_str_drop(ptr %a97) %t98 = load { ptr, i64, i64 }, ptr %a94 store { ptr, i64, i64 } %t98, ptr %a100 - store { ptr, i64, i64 } { ptr @.str.1443, i64 1, i64 0 }, ptr %a101 + store { ptr, i64, i64 } { ptr @.str.1471, i64 1, i64 0 }, ptr %a101 call void @finch_str_concat(ptr %a99, ptr %a100, ptr %a101) store { ptr, i64, i64 } %t98, ptr %a102 call void @finch_str_drop(ptr %a102) @@ -27219,7 +27964,7 @@ then2530: call void @finch_str_drop(ptr %a111) %t112 = load { ptr, i64, i64 }, ptr %a107 ret { ptr, i64, i64 } %t112 -endif2532: +endif2591: %t113 = getelementptr inbounds %S.ast.Type, ptr %a1, i32 0, i32 0 %t114 = load { ptr, i64, i64 }, ptr %t113 store { ptr, i64, i64 } %t114, ptr %a115 @@ -27240,17 +27985,17 @@ entry: %a26 = alloca { ptr, i64, i64 }, align 16 %a27 = alloca { ptr, i64, i64 }, align 16 store i64 %p0, ptr %a1 - store { ptr, i64, i64 } { ptr @.str.1444, i64 16, i64 0 }, ptr %a2 + store { ptr, i64, i64 } { ptr @.str.1472, i64 16, i64 0 }, ptr %a2 %t3 = load i64, ptr %a1 %t4 = sdiv i64 %t3, 16 %t5 = load { ptr, i64, i64 }, ptr %a2 %t6 = extractvalue { ptr, i64, i64 } %t5, 1 %t7 = icmp uge i64 %t4, %t6 - br i1 %t7, label %range2533, label %inrange2534 -range2533: - call void @finch_panic_index(ptr @.str.1445, i64 689, i64 %t4, i64 %t6) + br i1 %t7, label %range2592, label %inrange2593 +range2592: + call void @finch_panic_index(ptr @.str.1473, i64 715, i64 %t4, i64 %t6) unreachable -inrange2534: +inrange2593: %t8 = extractvalue { ptr, i64, i64 } %t5, 0 %t9 = getelementptr inbounds i8, ptr %t8, i64 %t4 %t10 = load i8, ptr %t9 @@ -27261,11 +28006,11 @@ inrange2534: %t15 = load { ptr, i64, i64 }, ptr %a2 %t16 = extractvalue { ptr, i64, i64 } %t15, 1 %t17 = icmp uge i64 %t14, %t16 - br i1 %t17, label %range2535, label %inrange2536 -range2535: - call void @finch_panic_index(ptr @.str.1446, i64 689, i64 %t14, i64 %t16) + br i1 %t17, label %range2594, label %inrange2595 +range2594: + call void @finch_panic_index(ptr @.str.1474, i64 715, i64 %t14, i64 %t16) unreachable -inrange2536: +inrange2595: %t18 = extractvalue { ptr, i64, i64 } %t15, 0 %t19 = getelementptr inbounds i8, ptr %t18, i64 %t14 %t20 = load i8, ptr %t19 @@ -27330,27 +28075,27 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic2537, label %ok2538 -panic2537: - call void @finch_panic(ptr @.str.1447, i64 693, ptr @.str.1448) + br i1 %t4, label %panic2596, label %ok2597 +panic2596: + call void @finch_panic(ptr @.str.1475, i64 719, ptr @.str.1476) unreachable -ok2538: +ok2597: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 8 %t6 = load i64, ptr %t5 %t7 = add i64 %t6, 1 store i64 %t7, ptr %t5 %t8 = load ptr, ptr %a1 %t9 = icmp eq ptr %t8, null - br i1 %t9, label %panic2539, label %ok2540 -panic2539: - call void @finch_panic(ptr @.str.1450, i64 694, ptr @.str.1451) + br i1 %t9, label %panic2598, label %ok2599 +panic2598: + call void @finch_panic(ptr @.str.1478, i64 720, ptr @.str.1479) unreachable -ok2540: +ok2599: %t10 = getelementptr inbounds %S.gen.Gen, ptr %t8, i32 0, i32 8 %t11 = load i64, ptr %t10 call void @finch_str_from_int(ptr %a12, i64 %t11) %t13 = load { ptr, i64, i64 }, ptr %a12 - store { ptr, i64, i64 } { ptr @.str.1449, i64 6, i64 0 }, ptr %a15 + store { ptr, i64, i64 } { ptr @.str.1477, i64 6, i64 0 }, ptr %a15 store { ptr, i64, i64 } %t13, ptr %a16 call void @finch_str_concat(ptr %a14, ptr %a15, ptr %a16) store { ptr, i64, i64 } %t13, ptr %a17 @@ -27359,14 +28104,14 @@ ok2540: store { ptr, i64, i64 } %t18, ptr %a19 store { ptr, i64, i64 } zeroinitializer, ptr %a20 store i64 0, ptr %a21 - br label %each.cond2541 -each.cond2541: + br label %each.cond2600 +each.cond2600: %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t23 = load i64, ptr %t22 %t24 = load i64, ptr %a21 %t25 = icmp slt i64 %t24, %t23 - br i1 %t25, label %each.body2542, label %each.end2544 -each.body2542: + br i1 %t25, label %each.body2601, label %each.end2603 +each.body2601: %t26 = load ptr, ptr %a2 %t27 = getelementptr inbounds i8, ptr %t26, i64 %t24 %t28 = load i8, ptr %t27 @@ -27376,50 +28121,50 @@ each.body2542: store i64 %t31, ptr %a32 %t33 = load i64, ptr %a32 %t34 = icmp slt i64 %t33, 0 - br i1 %t34, label %then2545, label %endif2547 -then2545: + br i1 %t34, label %then2604, label %endif2606 +then2604: %t35 = load i64, ptr %a32 %t36 = add i64 %t35, 256 store i64 %t36, ptr %a32 - br label %endif2547 -endif2547: + br label %endif2606 +endif2606: %t37 = load i64, ptr %a32 %t38 = icmp sge i64 %t37, 32 - br label %logic.from2548 -logic.from2548: - br i1 %t38, label %logic.rhs2549, label %logic.end2550 -logic.rhs2549: + br label %logic.from2607 +logic.from2607: + br i1 %t38, label %logic.rhs2608, label %logic.end2609 +logic.rhs2608: %t39 = load i64, ptr %a32 %t40 = icmp slt i64 %t39, 127 - br label %logic.rend2551 -logic.rend2551: - br label %logic.end2550 -logic.end2550: - %t41 = phi i1 [ false, %logic.from2548 ], [ %t40, %logic.rend2551 ] - br label %logic.from2552 -logic.from2552: - br i1 %t41, label %logic.rhs2553, label %logic.end2554 -logic.rhs2553: + br label %logic.rend2610 +logic.rend2610: + br label %logic.end2609 +logic.end2609: + %t41 = phi i1 [ false, %logic.from2607 ], [ %t40, %logic.rend2610 ] + br label %logic.from2611 +logic.from2611: + br i1 %t41, label %logic.rhs2612, label %logic.end2613 +logic.rhs2612: %t42 = load i8, ptr %a29 %t43 = icmp ne i8 %t42, 34 - br label %logic.rend2555 -logic.rend2555: - br label %logic.end2554 -logic.end2554: - %t44 = phi i1 [ false, %logic.from2552 ], [ %t43, %logic.rend2555 ] - br label %logic.from2556 -logic.from2556: - br i1 %t44, label %logic.rhs2557, label %logic.end2558 -logic.rhs2557: + br label %logic.rend2614 +logic.rend2614: + br label %logic.end2613 +logic.end2613: + %t44 = phi i1 [ false, %logic.from2611 ], [ %t43, %logic.rend2614 ] + br label %logic.from2615 +logic.from2615: + br i1 %t44, label %logic.rhs2616, label %logic.end2617 +logic.rhs2616: %t45 = load i8, ptr %a29 %t46 = icmp ne i8 %t45, 92 - br label %logic.rend2559 -logic.rend2559: - br label %logic.end2558 -logic.end2558: - %t47 = phi i1 [ false, %logic.from2556 ], [ %t46, %logic.rend2559 ] - br i1 %t47, label %then2560, label %else2561 -then2560: + br label %logic.rend2618 +logic.rend2618: + br label %logic.end2617 +logic.end2617: + %t47 = phi i1 [ false, %logic.from2615 ], [ %t46, %logic.rend2618 ] + br i1 %t47, label %then2619, label %else2620 +then2619: %t48 = getelementptr inbounds { ptr, i64, i64 }, ptr %a20, i32 0, i32 1 %t49 = load i8, ptr %a29 call void @finch_str_from_char(ptr %a50, i8 signext %t49) @@ -27431,12 +28176,12 @@ then2560: %t55 = getelementptr inbounds { ptr, i64, i64 }, ptr %t54, i64 %t52 store { ptr, i64, i64 } %t51, ptr %t55 store i64 %t53, ptr %t48 - br label %endif2562 -else2561: + br label %endif2621 +else2620: %t56 = getelementptr inbounds { ptr, i64, i64 }, ptr %a20, i32 0, i32 1 %t57 = load i64, ptr %a32 %t58 = call { ptr, i64, i64 } @finch.gen.hex(i64 %t57) - store { ptr, i64, i64 } { ptr @.str.1452, i64 1, i64 0 }, ptr %a60 + store { ptr, i64, i64 } { ptr @.str.1480, i64 1, i64 0 }, ptr %a60 store { ptr, i64, i64 } %t58, ptr %a61 call void @finch_str_concat(ptr %a59, ptr %a60, ptr %a61) store { ptr, i64, i64 } %t58, ptr %a62 @@ -27449,27 +28194,27 @@ else2561: %t67 = getelementptr inbounds { ptr, i64, i64 }, ptr %t66, i64 %t64 store { ptr, i64, i64 } %t63, ptr %t67 store i64 %t65, ptr %t56 - br label %endif2562 -endif2562: - br label %each.step2543 -each.step2543: + br label %endif2621 +endif2621: + br label %each.step2602 +each.step2602: %t68 = load i64, ptr %a21 %t69 = add i64 %t68, 1 store i64 %t69, ptr %a21 - br label %each.cond2541 -each.end2544: + br label %each.cond2600 +each.end2603: %t70 = load ptr, ptr %a1 %t71 = icmp eq ptr %t70, null - br i1 %t71, label %panic2563, label %ok2564 -panic2563: - call void @finch_panic(ptr @.str.1453, i64 707, ptr @.str.1454) + br i1 %t71, label %panic2622, label %ok2623 +panic2622: + call void @finch_panic(ptr @.str.1481, i64 733, ptr @.str.1482) unreachable -ok2564: +ok2623: %t72 = getelementptr inbounds %S.gen.Gen, ptr %t70, i32 0, i32 2 %t73 = getelementptr inbounds { ptr, i64, i64 }, ptr %t72, i32 0, i32 1 %t74 = load { ptr, i64, i64 }, ptr %a19 store { ptr, i64, i64 } %t74, ptr %a76 - store { ptr, i64, i64 } { ptr @.str.1455, i64 34, i64 0 }, ptr %a77 + store { ptr, i64, i64 } { ptr @.str.1483, i64 34, i64 0 }, ptr %a77 call void @finch_str_concat(ptr %a75, ptr %a76, ptr %a77) %t78 = load { ptr, i64, i64 }, ptr %a75 %t79 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 @@ -27486,13 +28231,13 @@ ok2564: call void @finch_str_drop(ptr %a88) %t89 = load { ptr, i64, i64 }, ptr %a84 store { ptr, i64, i64 } %t89, ptr %a91 - store { ptr, i64, i64 } { ptr @.str.1456, i64 9, i64 0 }, ptr %a92 + store { ptr, i64, i64 } { ptr @.str.1484, i64 9, i64 0 }, ptr %a92 call void @finch_str_concat(ptr %a90, ptr %a91, ptr %a92) store { ptr, i64, i64 } %t89, ptr %a93 call void @finch_str_drop(ptr %a93) %t94 = load { ptr, i64, i64 }, ptr %a90 %t95 = getelementptr inbounds { ptr, i64, i64 }, ptr %a20, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.1457, i64 0, i64 0 }, ptr %a96 + store { ptr, i64, i64 } { ptr @.str.1485, i64 0, i64 0 }, ptr %a96 call void @finch_str_join(ptr %a97, ptr %a20, ptr %a96) %t98 = load { ptr, i64, i64 }, ptr %a97 store { ptr, i64, i64 } %t94, ptr %a100 @@ -27504,7 +28249,7 @@ ok2564: call void @finch_str_drop(ptr %a103) %t104 = load { ptr, i64, i64 }, ptr %a99 store { ptr, i64, i64 } %t104, ptr %a106 - store { ptr, i64, i64 } { ptr @.str.1458, i64 4, i64 0 }, ptr %a107 + store { ptr, i64, i64 } { ptr @.str.1486, i64 4, i64 0 }, ptr %a107 call void @finch_str_concat(ptr %a105, ptr %a106, ptr %a107) store { ptr, i64, i64 } %t104, ptr %a108 call void @finch_str_drop(ptr %a108) @@ -27550,12 +28295,12 @@ entry: %t5 = call { ptr, i64, i64 } @finch.gen.strGlobal(ptr %t3, { ptr, i64, i64 } %t4) store { ptr, i64, i64 } %t5, ptr %a6 %t7 = load { ptr, i64, i64 }, ptr %a6 - store { ptr, i64, i64 } { ptr @.str.1459, i64 6, i64 0 }, ptr %a9 + store { ptr, i64, i64 } { ptr @.str.1487, i64 6, i64 0 }, ptr %a9 store { ptr, i64, i64 } %t7, ptr %a10 call void @finch_str_concat(ptr %a8, ptr %a9, ptr %a10) %t11 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t11, ptr %a13 - store { ptr, i64, i64 } { ptr @.str.1460, i64 6, i64 0 }, ptr %a14 + store { ptr, i64, i64 } { ptr @.str.1488, i64 6, i64 0 }, ptr %a14 call void @finch_str_concat(ptr %a12, ptr %a13, ptr %a14) store { ptr, i64, i64 } %t11, ptr %a15 call void @finch_str_drop(ptr %a15) @@ -27573,13 +28318,13 @@ entry: call void @finch_str_drop(ptr %a25) %t26 = load { ptr, i64, i64 }, ptr %a21 store { ptr, i64, i64 } %t26, ptr %a28 - store { ptr, i64, i64 } { ptr @.str.1461, i64 9, i64 0 }, ptr %a29 + store { ptr, i64, i64 } { ptr @.str.1489, i64 9, i64 0 }, ptr %a29 call void @finch_str_concat(ptr %a27, ptr %a28, ptr %a29) store { ptr, i64, i64 } %t26, ptr %a30 call void @finch_str_drop(ptr %a30) %t31 = load { ptr, i64, i64 }, ptr %a27 %t32 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t31, 0 - %t33 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.1462, i64 3, i64 0 }) + %t33 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.1490, i64 3, i64 0 }) %t34 = insertvalue %S.gen.Val %t32, %S.ast.Type %t33, 1 %t35 = insertvalue %S.gen.Val %t34, i1 true, 2 call void @finch_str_drop(ptr %a6) @@ -27627,10 +28372,10 @@ entry: store { ptr, i64, i64 } %p2, ptr %a3 store %S.ast.Node %p3, ptr %a4 %t5 = load ptr, ptr %a1 - %t6 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t5, { ptr, i64, i64 } { ptr @.str.1463, i64 5, i64 0 }) + %t6 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t5, { ptr, i64, i64 } { ptr @.str.1491, i64 5, i64 0 }) store { ptr, i64, i64 } %t6, ptr %a7 %t8 = load ptr, ptr %a1 - %t9 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t8, { ptr, i64, i64 } { ptr @.str.1464, i64 2, i64 0 }) + %t9 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t8, { ptr, i64, i64 } { ptr @.str.1492, i64 2, i64 0 }) store { ptr, i64, i64 } %t9, ptr %a10 %t11 = load ptr, ptr %a1 %t12 = load { ptr, i64, i64 }, ptr %a2 @@ -27643,22 +28388,22 @@ entry: %t17 = load ptr, ptr %a1 %t18 = load ptr, ptr %a1 %t19 = icmp eq ptr %t18, null - br i1 %t19, label %panic2565, label %ok2566 -panic2565: - call void @finch_panic(ptr @.str.1465, i64 723, ptr @.str.1466) + br i1 %t19, label %panic2624, label %ok2625 +panic2624: + call void @finch_panic(ptr @.str.1493, i64 749, ptr @.str.1494) unreachable -ok2566: +ok2625: %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 1 %t21 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 13 %t22 = load i64, ptr %t21 %t23 = load { ptr, i64, i64 }, ptr %t20 %t24 = extractvalue { ptr, i64, i64 } %t23, 1 %t25 = icmp uge i64 %t22, %t24 - br i1 %t25, label %range2567, label %inrange2568 -range2567: - call void @finch_panic_index(ptr @.str.1467, i64 723, i64 %t22, i64 %t24) + br i1 %t25, label %range2626, label %inrange2627 +range2626: + call void @finch_panic_index(ptr @.str.1495, i64 749, i64 %t22, i64 %t24) unreachable -inrange2568: +inrange2627: %t26 = extractvalue { ptr, i64, i64 } %t23, 0 %t27 = getelementptr inbounds { ptr, i64, i64 }, ptr %t26, i64 %t22 %t28 = load { ptr, i64, i64 }, ptr %t27 @@ -27670,12 +28415,12 @@ inrange2568: store { ptr, i64, i64 } %t33, ptr %a34 %t35 = load ptr, ptr %a1 %t36 = load { ptr, i64, i64 }, ptr %a30 - store { ptr, i64, i64 } { ptr @.str.1468, i64 27, i64 0 }, ptr %a38 + store { ptr, i64, i64 } { ptr @.str.1496, i64 27, i64 0 }, ptr %a38 store { ptr, i64, i64 } %t36, ptr %a39 call void @finch_str_concat(ptr %a37, ptr %a38, ptr %a39) %t40 = load { ptr, i64, i64 }, ptr %a37 store { ptr, i64, i64 } %t40, ptr %a42 - store { ptr, i64, i64 } { ptr @.str.1469, i64 6, i64 0 }, ptr %a43 + store { ptr, i64, i64 } { ptr @.str.1497, i64 6, i64 0 }, ptr %a43 call void @finch_str_concat(ptr %a41, ptr %a42, ptr %a43) store { ptr, i64, i64 } %t40, ptr %a44 call void @finch_str_drop(ptr %a44) @@ -27693,7 +28438,7 @@ inrange2568: call void @finch_str_drop(ptr %a54) %t55 = load { ptr, i64, i64 }, ptr %a50 store { ptr, i64, i64 } %t55, ptr %a57 - store { ptr, i64, i64 } { ptr @.str.1470, i64 6, i64 0 }, ptr %a58 + store { ptr, i64, i64 } { ptr @.str.1498, i64 6, i64 0 }, ptr %a58 call void @finch_str_concat(ptr %a56, ptr %a57, ptr %a58) store { ptr, i64, i64 } %t55, ptr %a59 call void @finch_str_drop(ptr %a59) @@ -27706,7 +28451,7 @@ inrange2568: call void @finch_str_drop(ptr %a65) %t66 = load { ptr, i64, i64 }, ptr %a62 store { ptr, i64, i64 } %t66, ptr %a68 - store { ptr, i64, i64 } { ptr @.str.1471, i64 1, i64 0 }, ptr %a69 + store { ptr, i64, i64 } { ptr @.str.1499, i64 1, i64 0 }, ptr %a69 call void @finch_str_concat(ptr %a67, ptr %a68, ptr %a69) store { ptr, i64, i64 } %t66, ptr %a70 call void @finch_str_drop(ptr %a70) @@ -27715,14 +28460,14 @@ inrange2568: store { ptr, i64, i64 } %t71, ptr %a72 call void @finch_str_drop(ptr %a72) %t73 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t73, { ptr, i64, i64 } { ptr @.str.1472, i64 11, i64 0 }) + call void @finch.gen.emit(ptr %t73, { ptr, i64, i64 } { ptr @.str.1500, i64 11, i64 0 }) %t74 = load ptr, ptr %a1 %t75 = icmp eq ptr %t74, null - br i1 %t75, label %panic2569, label %ok2570 -panic2569: - call void @finch_panic(ptr @.str.1473, i64 727, ptr @.str.1474) + br i1 %t75, label %panic2628, label %ok2629 +panic2628: + call void @finch_panic(ptr @.str.1501, i64 753, ptr @.str.1502) unreachable -ok2570: +ok2629: %t76 = getelementptr inbounds %S.gen.Gen, ptr %t74, i32 0, i32 9 store i1 true, ptr %t76 %t77 = load ptr, ptr %a1 @@ -27796,19 +28541,19 @@ entry: store { ptr, i64, i64 } %p2, ptr %a3 store %S.ast.Node %p3, ptr %a4 %t5 = load ptr, ptr %a1 - %t6 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t5, { ptr, i64, i64 } { ptr @.str.1475, i64 5, i64 0 }) + %t6 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t5, { ptr, i64, i64 } { ptr @.str.1503, i64 5, i64 0 }) store { ptr, i64, i64 } %t6, ptr %a7 %t8 = load ptr, ptr %a1 - %t9 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t8, { ptr, i64, i64 } { ptr @.str.1476, i64 7, i64 0 }) + %t9 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t8, { ptr, i64, i64 } { ptr @.str.1504, i64 7, i64 0 }) store { ptr, i64, i64 } %t9, ptr %a10 %t11 = load ptr, ptr %a1 %t12 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1477, i64 13, i64 0 }, ptr %a14 + store { ptr, i64, i64 } { ptr @.str.1505, i64 13, i64 0 }, ptr %a14 store { ptr, i64, i64 } %t12, ptr %a15 call void @finch_str_concat(ptr %a13, ptr %a14, ptr %a15) %t16 = load { ptr, i64, i64 }, ptr %a13 store { ptr, i64, i64 } %t16, ptr %a18 - store { ptr, i64, i64 } { ptr @.str.1478, i64 2, i64 0 }, ptr %a19 + store { ptr, i64, i64 } { ptr @.str.1506, i64 2, i64 0 }, ptr %a19 call void @finch_str_concat(ptr %a17, ptr %a18, ptr %a19) store { ptr, i64, i64 } %t16, ptr %a20 call void @finch_str_drop(ptr %a20) @@ -27835,22 +28580,22 @@ entry: %t37 = load ptr, ptr %a1 %t38 = load ptr, ptr %a1 %t39 = icmp eq ptr %t38, null - br i1 %t39, label %panic2571, label %ok2572 -panic2571: - call void @finch_panic(ptr @.str.1479, i64 737, ptr @.str.1480) + br i1 %t39, label %panic2630, label %ok2631 +panic2630: + call void @finch_panic(ptr @.str.1507, i64 763, ptr @.str.1508) unreachable -ok2572: +ok2631: %t40 = getelementptr inbounds %S.gen.Gen, ptr %t38, i32 0, i32 1 %t41 = getelementptr inbounds %S.ast.Node, ptr %a4, i32 0, i32 13 %t42 = load i64, ptr %t41 %t43 = load { ptr, i64, i64 }, ptr %t40 %t44 = extractvalue { ptr, i64, i64 } %t43, 1 %t45 = icmp uge i64 %t42, %t44 - br i1 %t45, label %range2573, label %inrange2574 -range2573: - call void @finch_panic_index(ptr @.str.1481, i64 737, i64 %t42, i64 %t44) + br i1 %t45, label %range2632, label %inrange2633 +range2632: + call void @finch_panic_index(ptr @.str.1509, i64 763, i64 %t42, i64 %t44) unreachable -inrange2574: +inrange2633: %t46 = extractvalue { ptr, i64, i64 } %t43, 0 %t47 = getelementptr inbounds { ptr, i64, i64 }, ptr %t46, i64 %t42 %t48 = load { ptr, i64, i64 }, ptr %t47 @@ -27858,12 +28603,12 @@ inrange2574: store { ptr, i64, i64 } %t49, ptr %a50 %t51 = load ptr, ptr %a1 %t52 = load { ptr, i64, i64 }, ptr %a50 - store { ptr, i64, i64 } { ptr @.str.1482, i64 33, i64 0 }, ptr %a54 + store { ptr, i64, i64 } { ptr @.str.1510, i64 33, i64 0 }, ptr %a54 store { ptr, i64, i64 } %t52, ptr %a55 call void @finch_str_concat(ptr %a53, ptr %a54, ptr %a55) %t56 = load { ptr, i64, i64 }, ptr %a53 store { ptr, i64, i64 } %t56, ptr %a58 - store { ptr, i64, i64 } { ptr @.str.1483, i64 6, i64 0 }, ptr %a59 + store { ptr, i64, i64 } { ptr @.str.1511, i64 6, i64 0 }, ptr %a59 call void @finch_str_concat(ptr %a57, ptr %a58, ptr %a59) store { ptr, i64, i64 } %t56, ptr %a60 call void @finch_str_drop(ptr %a60) @@ -27881,7 +28626,7 @@ inrange2574: call void @finch_str_drop(ptr %a70) %t71 = load { ptr, i64, i64 }, ptr %a66 store { ptr, i64, i64 } %t71, ptr %a73 - store { ptr, i64, i64 } { ptr @.str.1484, i64 6, i64 0 }, ptr %a74 + store { ptr, i64, i64 } { ptr @.str.1512, i64 6, i64 0 }, ptr %a74 call void @finch_str_concat(ptr %a72, ptr %a73, ptr %a74) store { ptr, i64, i64 } %t71, ptr %a75 call void @finch_str_drop(ptr %a75) @@ -27894,7 +28639,7 @@ inrange2574: call void @finch_str_drop(ptr %a81) %t82 = load { ptr, i64, i64 }, ptr %a78 store { ptr, i64, i64 } %t82, ptr %a84 - store { ptr, i64, i64 } { ptr @.str.1485, i64 6, i64 0 }, ptr %a85 + store { ptr, i64, i64 } { ptr @.str.1513, i64 6, i64 0 }, ptr %a85 call void @finch_str_concat(ptr %a83, ptr %a84, ptr %a85) store { ptr, i64, i64 } %t82, ptr %a86 call void @finch_str_drop(ptr %a86) @@ -27907,7 +28652,7 @@ inrange2574: call void @finch_str_drop(ptr %a92) %t93 = load { ptr, i64, i64 }, ptr %a89 store { ptr, i64, i64 } %t93, ptr %a95 - store { ptr, i64, i64 } { ptr @.str.1486, i64 1, i64 0 }, ptr %a96 + store { ptr, i64, i64 } { ptr @.str.1514, i64 1, i64 0 }, ptr %a96 call void @finch_str_concat(ptr %a94, ptr %a95, ptr %a96) store { ptr, i64, i64 } %t93, ptr %a97 call void @finch_str_drop(ptr %a97) @@ -27916,14 +28661,14 @@ inrange2574: store { ptr, i64, i64 } %t98, ptr %a99 call void @finch_str_drop(ptr %a99) %t100 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t100, { ptr, i64, i64 } { ptr @.str.1487, i64 11, i64 0 }) + call void @finch.gen.emit(ptr %t100, { ptr, i64, i64 } { ptr @.str.1515, i64 11, i64 0 }) %t101 = load ptr, ptr %a1 %t102 = icmp eq ptr %t101, null - br i1 %t102, label %panic2575, label %ok2576 -panic2575: - call void @finch_panic(ptr @.str.1488, i64 740, ptr @.str.1489) + br i1 %t102, label %panic2634, label %ok2635 +panic2634: + call void @finch_panic(ptr @.str.1516, i64 766, ptr @.str.1517) unreachable -ok2576: +ok2635: %t103 = getelementptr inbounds %S.gen.Gen, ptr %t101, i32 0, i32 9 store i1 true, ptr %t103 %t104 = load ptr, ptr %a1 @@ -27954,11 +28699,11 @@ entry: store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 %t3 = icmp eq ptr %t2, null - br i1 %t3, label %panic2577, label %ok2578 -panic2577: - call void @finch_panic(ptr @.str.1490, i64 755, ptr @.str.1491) + br i1 %t3, label %panic2636, label %ok2637 +panic2636: + call void @finch_panic(ptr @.str.1518, i64 781, ptr @.str.1519) unreachable -ok2578: +ok2637: %t4 = getelementptr inbounds %S.gen.Gen, ptr %t2, i32 0, i32 4 %t5 = load { ptr, i64, i64 }, ptr %t4 store { ptr, i64, i64 } %t5, ptr %a6 @@ -27967,11 +28712,11 @@ ok2578: %t9 = insertvalue %S.gen.Saved zeroinitializer, { ptr, i64, i64 } %t8, 0 %t10 = load ptr, ptr %a1 %t11 = icmp eq ptr %t10, null - br i1 %t11, label %panic2579, label %ok2580 -panic2579: - call void @finch_panic(ptr @.str.1492, i64 755, ptr @.str.1493) + br i1 %t11, label %panic2638, label %ok2639 +panic2638: + call void @finch_panic(ptr @.str.1520, i64 781, ptr @.str.1521) unreachable -ok2580: +ok2639: %t12 = getelementptr inbounds %S.gen.Gen, ptr %t10, i32 0, i32 5 %t13 = load { ptr, i64, i64 }, ptr %t12 store { ptr, i64, i64 } %t13, ptr %a14 @@ -27980,53 +28725,53 @@ ok2580: %t17 = insertvalue %S.gen.Saved %t9, { ptr, i64, i64 } %t16, 1 %t18 = load ptr, ptr %a1 %t19 = icmp eq ptr %t18, null - br i1 %t19, label %panic2581, label %ok2582 -panic2581: - call void @finch_panic(ptr @.str.1494, i64 755, ptr @.str.1495) + br i1 %t19, label %panic2640, label %ok2641 +panic2640: + call void @finch_panic(ptr @.str.1522, i64 781, ptr @.str.1523) unreachable -ok2582: +ok2641: %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 6 %t21 = load i64, ptr %t20 %t22 = insertvalue %S.gen.Saved %t17, i64 %t21, 2 %t23 = load ptr, ptr %a1 %t24 = icmp eq ptr %t23, null - br i1 %t24, label %panic2583, label %ok2584 -panic2583: - call void @finch_panic(ptr @.str.1496, i64 755, ptr @.str.1497) + br i1 %t24, label %panic2642, label %ok2643 +panic2642: + call void @finch_panic(ptr @.str.1524, i64 781, ptr @.str.1525) unreachable -ok2584: +ok2643: %t25 = getelementptr inbounds %S.gen.Gen, ptr %t23, i32 0, i32 9 %t26 = load i1, ptr %t25 %t27 = insertvalue %S.gen.Saved %t22, i1 %t26, 3 %t28 = load ptr, ptr %a1 %t29 = icmp eq ptr %t28, null - br i1 %t29, label %panic2585, label %ok2586 -panic2585: - call void @finch_panic(ptr @.str.1498, i64 755, ptr @.str.1499) + br i1 %t29, label %panic2644, label %ok2645 +panic2644: + call void @finch_panic(ptr @.str.1526, i64 781, ptr @.str.1527) unreachable -ok2586: - %t30 = getelementptr inbounds %S.gen.Gen, ptr %t28, i32 0, i32 35 +ok2645: + %t30 = getelementptr inbounds %S.gen.Gen, ptr %t28, i32 0, i32 36 %t31 = load i64, ptr %t30 %t32 = insertvalue %S.gen.Saved %t27, i64 %t31, 4 store %S.gen.Saved %t32, ptr %a33 %t34 = load ptr, ptr %a1 %t35 = icmp eq ptr %t34, null - br i1 %t35, label %panic2587, label %ok2588 -panic2587: - call void @finch_panic(ptr @.str.1500, i64 756, ptr @.str.1501) + br i1 %t35, label %panic2646, label %ok2647 +panic2646: + call void @finch_panic(ptr @.str.1528, i64 782, ptr @.str.1529) unreachable -ok2588: - %t36 = getelementptr inbounds %S.gen.Gen, ptr %t34, i32 0, i32 35 +ok2647: + %t36 = getelementptr inbounds %S.gen.Gen, ptr %t34, i32 0, i32 36 store i64 -1, ptr %t36 store { ptr, i64, i64 } zeroinitializer, ptr %a37 %t38 = load { ptr, i64, i64 }, ptr %a37 %t39 = load ptr, ptr %a1 %t40 = icmp eq ptr %t39, null - br i1 %t40, label %panic2589, label %ok2590 -panic2589: - call void @finch_panic(ptr @.str.1502, i64 758, ptr @.str.1503) + br i1 %t40, label %panic2648, label %ok2649 +panic2648: + call void @finch_panic(ptr @.str.1530, i64 784, ptr @.str.1531) unreachable -ok2590: +ok2649: %t41 = getelementptr inbounds %S.gen.Gen, ptr %t39, i32 0, i32 4 store { ptr, i64, i64 } %t38, ptr %a42 call void @finch.copy.arr_str(ptr %a43, ptr %a42) @@ -28038,11 +28783,11 @@ ok2590: %t47 = load { ptr, i64, i64 }, ptr %a37 %t48 = load ptr, ptr %a1 %t49 = icmp eq ptr %t48, null - br i1 %t49, label %panic2591, label %ok2592 -panic2591: - call void @finch_panic(ptr @.str.1504, i64 759, ptr @.str.1505) + br i1 %t49, label %panic2650, label %ok2651 +panic2650: + call void @finch_panic(ptr @.str.1532, i64 785, ptr @.str.1533) unreachable -ok2592: +ok2651: %t50 = getelementptr inbounds %S.gen.Gen, ptr %t48, i32 0, i32 5 store { ptr, i64, i64 } %t47, ptr %a51 call void @finch.copy.arr_str(ptr %a52, ptr %a51) @@ -28053,20 +28798,20 @@ ok2592: call void @finch.drop.arr_str(ptr %a55) %t56 = load ptr, ptr %a1 %t57 = icmp eq ptr %t56, null - br i1 %t57, label %panic2593, label %ok2594 -panic2593: - call void @finch_panic(ptr @.str.1506, i64 760, ptr @.str.1507) + br i1 %t57, label %panic2652, label %ok2653 +panic2652: + call void @finch_panic(ptr @.str.1534, i64 786, ptr @.str.1535) unreachable -ok2594: +ok2653: %t58 = getelementptr inbounds %S.gen.Gen, ptr %t56, i32 0, i32 6 store i64 0, ptr %t58 %t59 = load ptr, ptr %a1 %t60 = icmp eq ptr %t59, null - br i1 %t60, label %panic2595, label %ok2596 -panic2595: - call void @finch_panic(ptr @.str.1508, i64 761, ptr @.str.1509) + br i1 %t60, label %panic2654, label %ok2655 +panic2654: + call void @finch_panic(ptr @.str.1536, i64 787, ptr @.str.1537) unreachable -ok2596: +ok2655: %t61 = getelementptr inbounds %S.gen.Gen, ptr %t59, i32 0, i32 9 store i1 false, ptr %t61 %t62 = load %S.gen.Saved, ptr %a33 @@ -28115,28 +28860,28 @@ entry: store { ptr, i64, i64 } %p2, ptr %a3 %t4 = load ptr, ptr %a1 %t5 = icmp eq ptr %t4, null - br i1 %t5, label %panic2597, label %ok2598 -panic2597: - call void @finch_panic(ptr @.str.1510, i64 766, ptr @.str.1511) + br i1 %t5, label %panic2656, label %ok2657 +panic2656: + call void @finch_panic(ptr @.str.1538, i64 792, ptr @.str.1539) unreachable -ok2598: +ok2657: %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 3 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t6, i32 0, i32 1 %t8 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t8, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.1512, i64 10, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.1540, i64 10, i64 0 }, ptr %a11 call void @finch_str_concat(ptr %a9, ptr %a10, ptr %a11) %t12 = load { ptr, i64, i64 }, ptr %a9 %t13 = load ptr, ptr %a1 %t14 = icmp eq ptr %t13, null - br i1 %t14, label %panic2599, label %ok2600 -panic2599: - call void @finch_panic(ptr @.str.1513, i64 766, ptr @.str.1514) + br i1 %t14, label %panic2658, label %ok2659 +panic2658: + call void @finch_panic(ptr @.str.1541, i64 792, ptr @.str.1542) unreachable -ok2600: +ok2659: %t15 = getelementptr inbounds %S.gen.Gen, ptr %t13, i32 0, i32 5 %t16 = getelementptr inbounds { ptr, i64, i64 }, ptr %t15, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.1515, i64 1, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.1543, i64 1, i64 0 }, ptr %a17 call void @finch_str_join(ptr %a18, ptr %t15, ptr %a17) %t19 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t12, ptr %a21 @@ -28148,21 +28893,21 @@ ok2600: call void @finch_str_drop(ptr %a24) %t25 = load { ptr, i64, i64 }, ptr %a20 store { ptr, i64, i64 } %t25, ptr %a27 - store { ptr, i64, i64 } { ptr @.str.1516, i64 1, i64 0 }, ptr %a28 + store { ptr, i64, i64 } { ptr @.str.1544, i64 1, i64 0 }, ptr %a28 call void @finch_str_concat(ptr %a26, ptr %a27, ptr %a28) store { ptr, i64, i64 } %t25, ptr %a29 call void @finch_str_drop(ptr %a29) %t30 = load { ptr, i64, i64 }, ptr %a26 %t31 = load ptr, ptr %a1 %t32 = icmp eq ptr %t31, null - br i1 %t32, label %panic2601, label %ok2602 -panic2601: - call void @finch_panic(ptr @.str.1517, i64 766, ptr @.str.1518) + br i1 %t32, label %panic2660, label %ok2661 +panic2660: + call void @finch_panic(ptr @.str.1545, i64 792, ptr @.str.1546) unreachable -ok2602: +ok2661: %t33 = getelementptr inbounds %S.gen.Gen, ptr %t31, i32 0, i32 4 %t34 = getelementptr inbounds { ptr, i64, i64 }, ptr %t33, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.1519, i64 1, i64 0 }, ptr %a35 + store { ptr, i64, i64 } { ptr @.str.1547, i64 1, i64 0 }, ptr %a35 call void @finch_str_join(ptr %a36, ptr %t33, ptr %a35) %t37 = load { ptr, i64, i64 }, ptr %a36 store { ptr, i64, i64 } %t30, ptr %a39 @@ -28174,7 +28919,7 @@ ok2602: call void @finch_str_drop(ptr %a42) %t43 = load { ptr, i64, i64 }, ptr %a38 store { ptr, i64, i64 } %t43, ptr %a45 - store { ptr, i64, i64 } { ptr @.str.1520, i64 3, i64 0 }, ptr %a46 + store { ptr, i64, i64 } { ptr @.str.1548, i64 3, i64 0 }, ptr %a46 call void @finch_str_concat(ptr %a44, ptr %a45, ptr %a46) store { ptr, i64, i64 } %t43, ptr %a47 call void @finch_str_drop(ptr %a47) @@ -28190,11 +28935,11 @@ ok2602: %t54 = load { ptr, i64, i64 }, ptr %t53 %t55 = load ptr, ptr %a1 %t56 = icmp eq ptr %t55, null - br i1 %t56, label %panic2603, label %ok2604 -panic2603: - call void @finch_panic(ptr @.str.1521, i64 767, ptr @.str.1522) + br i1 %t56, label %panic2662, label %ok2663 +panic2662: + call void @finch_panic(ptr @.str.1549, i64 793, ptr @.str.1550) unreachable -ok2604: +ok2663: %t57 = getelementptr inbounds %S.gen.Gen, ptr %t55, i32 0, i32 4 store { ptr, i64, i64 } %t54, ptr %a58 call void @finch.copy.arr_str(ptr %a59, ptr %a58) @@ -28207,11 +28952,11 @@ ok2604: %t64 = load { ptr, i64, i64 }, ptr %t63 %t65 = load ptr, ptr %a1 %t66 = icmp eq ptr %t65, null - br i1 %t66, label %panic2605, label %ok2606 -panic2605: - call void @finch_panic(ptr @.str.1523, i64 768, ptr @.str.1524) + br i1 %t66, label %panic2664, label %ok2665 +panic2664: + call void @finch_panic(ptr @.str.1551, i64 794, ptr @.str.1552) unreachable -ok2606: +ok2665: %t67 = getelementptr inbounds %S.gen.Gen, ptr %t65, i32 0, i32 5 store { ptr, i64, i64 } %t64, ptr %a68 call void @finch.copy.arr_str(ptr %a69, ptr %a68) @@ -28224,34 +28969,34 @@ ok2606: %t74 = load i64, ptr %t73 %t75 = load ptr, ptr %a1 %t76 = icmp eq ptr %t75, null - br i1 %t76, label %panic2607, label %ok2608 -panic2607: - call void @finch_panic(ptr @.str.1525, i64 769, ptr @.str.1526) + br i1 %t76, label %panic2666, label %ok2667 +panic2666: + call void @finch_panic(ptr @.str.1553, i64 795, ptr @.str.1554) unreachable -ok2608: +ok2667: %t77 = getelementptr inbounds %S.gen.Gen, ptr %t75, i32 0, i32 6 store i64 %t74, ptr %t77 %t78 = getelementptr inbounds %S.gen.Saved, ptr %a2, i32 0, i32 3 %t79 = load i1, ptr %t78 %t80 = load ptr, ptr %a1 %t81 = icmp eq ptr %t80, null - br i1 %t81, label %panic2609, label %ok2610 -panic2609: - call void @finch_panic(ptr @.str.1527, i64 770, ptr @.str.1528) + br i1 %t81, label %panic2668, label %ok2669 +panic2668: + call void @finch_panic(ptr @.str.1555, i64 796, ptr @.str.1556) unreachable -ok2610: +ok2669: %t82 = getelementptr inbounds %S.gen.Gen, ptr %t80, i32 0, i32 9 store i1 %t79, ptr %t82 %t83 = getelementptr inbounds %S.gen.Saved, ptr %a2, i32 0, i32 4 %t84 = load i64, ptr %t83 %t85 = load ptr, ptr %a1 %t86 = icmp eq ptr %t85, null - br i1 %t86, label %panic2611, label %ok2612 -panic2611: - call void @finch_panic(ptr @.str.1529, i64 771, ptr @.str.1530) + br i1 %t86, label %panic2670, label %ok2671 +panic2670: + call void @finch_panic(ptr @.str.1557, i64 797, ptr @.str.1558) unreachable -ok2612: - %t87 = getelementptr inbounds %S.gen.Gen, ptr %t85, i32 0, i32 35 +ok2671: + %t87 = getelementptr inbounds %S.gen.Gen, ptr %t85, i32 0, i32 36 store i64 %t84, ptr %t87 ret void } @@ -28289,19 +29034,19 @@ entry: store ptr %p0, ptr %a1 store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 - %t4 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t3, { ptr, i64, i64 } { ptr @.str.1531, i64 3, i64 0 }) + %t4 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t3, { ptr, i64, i64 } { ptr @.str.1559, i64 3, i64 0 }) store { ptr, i64, i64 } %t4, ptr %a5 %t6 = load ptr, ptr %a1 %t7 = load { ptr, i64, i64 }, ptr %a5 - call void @finch.gen.store(ptr %t6, { ptr, i64, i64 } { ptr @.str.1532, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.1533, i64 1, i64 0 }, { ptr, i64, i64 } %t7) + call void @finch.gen.store(ptr %t6, { ptr, i64, i64 } { ptr @.str.1560, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.1561, i64 1, i64 0 }, { ptr, i64, i64 } %t7) %t8 = load ptr, ptr %a1 - %t9 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t8, { ptr, i64, i64 } { ptr @.str.1534, i64 6, i64 0 }) + %t9 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t8, { ptr, i64, i64 } { ptr @.str.1562, i64 6, i64 0 }) store { ptr, i64, i64 } %t9, ptr %a10 %t11 = load ptr, ptr %a1 - %t12 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t11, { ptr, i64, i64 } { ptr @.str.1535, i64 6, i64 0 }) + %t12 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t11, { ptr, i64, i64 } { ptr @.str.1563, i64 6, i64 0 }) store { ptr, i64, i64 } %t12, ptr %a13 %t14 = load ptr, ptr %a1 - %t15 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t14, { ptr, i64, i64 } { ptr @.str.1536, i64 5, i64 0 }) + %t15 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t14, { ptr, i64, i64 } { ptr @.str.1564, i64 5, i64 0 }) store { ptr, i64, i64 } %t15, ptr %a16 %t17 = load ptr, ptr %a1 %t18 = load { ptr, i64, i64 }, ptr %a10 @@ -28311,16 +29056,16 @@ entry: call void @finch.gen.label(ptr %t19, { ptr, i64, i64 } %t20) %t21 = load ptr, ptr %a1 %t22 = load { ptr, i64, i64 }, ptr %a5 - %t23 = call { ptr, i64, i64 } @finch.gen.load(ptr %t21, { ptr, i64, i64 } { ptr @.str.1537, i64 3, i64 0 }, { ptr, i64, i64 } %t22) + %t23 = call { ptr, i64, i64 } @finch.gen.load(ptr %t21, { ptr, i64, i64 } { ptr @.str.1565, i64 3, i64 0 }, { ptr, i64, i64 } %t22) store { ptr, i64, i64 } %t23, ptr %a24 %t25 = load ptr, ptr %a1 %t26 = load { ptr, i64, i64 }, ptr %a24 - store { ptr, i64, i64 } { ptr @.str.1538, i64 13, i64 0 }, ptr %a28 + store { ptr, i64, i64 } { ptr @.str.1566, i64 13, i64 0 }, ptr %a28 store { ptr, i64, i64 } %t26, ptr %a29 call void @finch_str_concat(ptr %a27, ptr %a28, ptr %a29) %t30 = load { ptr, i64, i64 }, ptr %a27 store { ptr, i64, i64 } %t30, ptr %a32 - store { ptr, i64, i64 } { ptr @.str.1539, i64 2, i64 0 }, ptr %a33 + store { ptr, i64, i64 } { ptr @.str.1567, i64 2, i64 0 }, ptr %a33 call void @finch_str_concat(ptr %a31, ptr %a32, ptr %a33) store { ptr, i64, i64 } %t30, ptr %a34 call void @finch_str_drop(ptr %a34) @@ -28402,25 +29147,25 @@ entry: %t4 = load { ptr, i64, i64 }, ptr %a2 %t5 = extractvalue { ptr, i64, i64 } %t4, 1 %t6 = icmp uge i64 0, %t5 - br i1 %t6, label %range2613, label %inrange2614 -range2613: - call void @finch_panic_index(ptr @.str.1541, i64 791, i64 0, i64 %t5) + br i1 %t6, label %range2672, label %inrange2673 +range2672: + call void @finch_panic_index(ptr @.str.1569, i64 817, i64 0, i64 %t5) unreachable -inrange2614: +inrange2673: %t7 = extractvalue { ptr, i64, i64 } %t4, 0 %t8 = getelementptr inbounds { ptr, i64, i64 }, ptr %t7, i64 0 %t9 = load { ptr, i64, i64 }, ptr %t8 - %t10 = call { ptr, i64, i64 } @finch.gen.load(ptr %t3, { ptr, i64, i64 } { ptr @.str.1540, i64 3, i64 0 }, { ptr, i64, i64 } %t9) + %t10 = call { ptr, i64, i64 } @finch.gen.load(ptr %t3, { ptr, i64, i64 } { ptr @.str.1568, i64 3, i64 0 }, { ptr, i64, i64 } %t9) store { ptr, i64, i64 } %t10, ptr %a11 %t12 = load ptr, ptr %a1 %t13 = load ptr, ptr %a1 %t14 = load { ptr, i64, i64 }, ptr %a11 - store { ptr, i64, i64 } { ptr @.str.1543, i64 8, i64 0 }, ptr %a16 + store { ptr, i64, i64 } { ptr @.str.1571, i64 8, i64 0 }, ptr %a16 store { ptr, i64, i64 } %t14, ptr %a17 call void @finch_str_concat(ptr %a15, ptr %a16, ptr %a17) %t18 = load { ptr, i64, i64 }, ptr %a15 store { ptr, i64, i64 } %t18, ptr %a20 - store { ptr, i64, i64 } { ptr @.str.1544, i64 3, i64 0 }, ptr %a21 + store { ptr, i64, i64 } { ptr @.str.1572, i64 3, i64 0 }, ptr %a21 call void @finch_str_concat(ptr %a19, ptr %a20, ptr %a21) store { ptr, i64, i64 } %t18, ptr %a22 call void @finch_str_drop(ptr %a22) @@ -28431,26 +29176,26 @@ inrange2614: %t26 = load { ptr, i64, i64 }, ptr %a2 %t27 = extractvalue { ptr, i64, i64 } %t26, 1 %t28 = icmp uge i64 0, %t27 - br i1 %t28, label %range2615, label %inrange2616 -range2615: - call void @finch_panic_index(ptr @.str.1545, i64 792, i64 0, i64 %t27) + br i1 %t28, label %range2674, label %inrange2675 +range2674: + call void @finch_panic_index(ptr @.str.1573, i64 818, i64 0, i64 %t27) unreachable -inrange2616: +inrange2675: %t29 = extractvalue { ptr, i64, i64 } %t26, 0 %t30 = getelementptr inbounds { ptr, i64, i64 }, ptr %t29, i64 0 %t31 = load { ptr, i64, i64 }, ptr %t30 - call void @finch.gen.store(ptr %t12, { ptr, i64, i64 } { ptr @.str.1542, i64 3, i64 0 }, { ptr, i64, i64 } %t24, { ptr, i64, i64 } %t31) + call void @finch.gen.store(ptr %t12, { ptr, i64, i64 } { ptr @.str.1570, i64 3, i64 0 }, { ptr, i64, i64 } %t24, { ptr, i64, i64 } %t31) store { ptr, i64, i64 } %t24, ptr %a32 call void @finch_str_drop(ptr %a32) %t33 = load ptr, ptr %a1 %t34 = load { ptr, i64, i64 }, ptr %a2 %t35 = extractvalue { ptr, i64, i64 } %t34, 1 %t36 = icmp uge i64 1, %t35 - br i1 %t36, label %range2617, label %inrange2618 -range2617: - call void @finch_panic_index(ptr @.str.1546, i64 793, i64 1, i64 %t35) + br i1 %t36, label %range2676, label %inrange2677 +range2676: + call void @finch_panic_index(ptr @.str.1574, i64 819, i64 1, i64 %t35) unreachable -inrange2618: +inrange2677: %t37 = extractvalue { ptr, i64, i64 } %t34, 0 %t38 = getelementptr inbounds { ptr, i64, i64 }, ptr %t37, i64 1 %t39 = load { ptr, i64, i64 }, ptr %t38 @@ -28459,11 +29204,11 @@ inrange2618: %t41 = load { ptr, i64, i64 }, ptr %a2 %t42 = extractvalue { ptr, i64, i64 } %t41, 1 %t43 = icmp uge i64 2, %t42 - br i1 %t43, label %range2619, label %inrange2620 -range2619: - call void @finch_panic_index(ptr @.str.1547, i64 794, i64 2, i64 %t42) + br i1 %t43, label %range2678, label %inrange2679 +range2678: + call void @finch_panic_index(ptr @.str.1575, i64 820, i64 2, i64 %t42) unreachable -inrange2620: +inrange2679: %t44 = extractvalue { ptr, i64, i64 } %t41, 0 %t45 = getelementptr inbounds { ptr, i64, i64 }, ptr %t44, i64 2 %t46 = load { ptr, i64, i64 }, ptr %t45 @@ -28537,19 +29282,19 @@ entry: %t5 = getelementptr inbounds %S.ast.Type, ptr %a4, i32 0, i32 0 %t6 = load { ptr, i64, i64 }, ptr %t5 store { ptr, i64, i64 } %t6, ptr %a7 - store { ptr, i64, i64 } { ptr @.str.1548, i64 3, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.1576, i64 3, i64 0 }, ptr %a8 %t9 = call i32 @finch_str_eq(ptr %a7, ptr %a8) %t10 = icmp ne i32 %t9, 0 - br i1 %t10, label %then2621, label %else2622 -then2621: + br i1 %t10, label %then2680, label %else2681 +then2680: %t11 = load ptr, ptr %a1 %t12 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1549, i64 30, i64 0 }, ptr %a14 + store { ptr, i64, i64 } { ptr @.str.1577, i64 30, i64 0 }, ptr %a14 store { ptr, i64, i64 } %t12, ptr %a15 call void @finch_str_concat(ptr %a13, ptr %a14, ptr %a15) %t16 = load { ptr, i64, i64 }, ptr %a13 store { ptr, i64, i64 } %t16, ptr %a18 - store { ptr, i64, i64 } { ptr @.str.1550, i64 6, i64 0 }, ptr %a19 + store { ptr, i64, i64 } { ptr @.str.1578, i64 6, i64 0 }, ptr %a19 call void @finch_str_concat(ptr %a17, ptr %a18, ptr %a19) store { ptr, i64, i64 } %t16, ptr %a20 call void @finch_str_drop(ptr %a20) @@ -28562,7 +29307,7 @@ then2621: call void @finch_str_drop(ptr %a26) %t27 = load { ptr, i64, i64 }, ptr %a23 store { ptr, i64, i64 } %t27, ptr %a29 - store { ptr, i64, i64 } { ptr @.str.1551, i64 1, i64 0 }, ptr %a30 + store { ptr, i64, i64 } { ptr @.str.1579, i64 1, i64 0 }, ptr %a30 call void @finch_str_concat(ptr %a28, ptr %a29, ptr %a30) store { ptr, i64, i64 } %t27, ptr %a31 call void @finch_str_drop(ptr %a31) @@ -28570,70 +29315,70 @@ then2621: call void @finch.gen.emit(ptr %t11, { ptr, i64, i64 } %t32) store { ptr, i64, i64 } %t32, ptr %a33 call void @finch_str_drop(ptr %a33) - br label %endif2623 -else2622: + br label %endif2682 +else2681: %t34 = getelementptr inbounds %S.ast.Type, ptr %a4, i32 0, i32 0 %t35 = load { ptr, i64, i64 }, ptr %t34 store { ptr, i64, i64 } %t35, ptr %a36 - store { ptr, i64, i64 } { ptr @.str.1552, i64 5, i64 0 }, ptr %a37 + store { ptr, i64, i64 } { ptr @.str.1580, i64 5, i64 0 }, ptr %a37 %t38 = call i32 @finch_str_eq(ptr %a36, ptr %a37) %t39 = icmp ne i32 %t38, 0 - br label %logic.from2624 -logic.from2624: - br i1 %t39, label %logic.end2626, label %logic.rhs2625 -logic.rhs2625: + br label %logic.from2683 +logic.from2683: + br i1 %t39, label %logic.end2685, label %logic.rhs2684 +logic.rhs2684: %t40 = getelementptr inbounds %S.ast.Type, ptr %a4, i32 0, i32 0 %t41 = load { ptr, i64, i64 }, ptr %t40 store { ptr, i64, i64 } %t41, ptr %a42 - store { ptr, i64, i64 } { ptr @.str.1553, i64 3, i64 0 }, ptr %a43 + store { ptr, i64, i64 } { ptr @.str.1581, i64 3, i64 0 }, ptr %a43 %t44 = call i32 @finch_str_eq(ptr %a42, ptr %a43) %t45 = icmp ne i32 %t44, 0 - br label %logic.rend2627 -logic.rend2627: - br label %logic.end2626 -logic.end2626: - %t46 = phi i1 [ true, %logic.from2624 ], [ %t45, %logic.rend2627 ] - br label %logic.from2628 -logic.from2628: - br i1 %t46, label %logic.end2630, label %logic.rhs2629 -logic.rhs2629: + br label %logic.rend2686 +logic.rend2686: + br label %logic.end2685 +logic.end2685: + %t46 = phi i1 [ true, %logic.from2683 ], [ %t45, %logic.rend2686 ] + br label %logic.from2687 +logic.from2687: + br i1 %t46, label %logic.end2689, label %logic.rhs2688 +logic.rhs2688: %t47 = getelementptr inbounds %S.ast.Type, ptr %a4, i32 0, i32 0 %t48 = load { ptr, i64, i64 }, ptr %t47 store { ptr, i64, i64 } %t48, ptr %a49 - store { ptr, i64, i64 } { ptr @.str.1554, i64 6, i64 0 }, ptr %a50 + store { ptr, i64, i64 } { ptr @.str.1582, i64 6, i64 0 }, ptr %a50 %t51 = call i32 @finch_str_eq(ptr %a49, ptr %a50) %t52 = icmp ne i32 %t51, 0 - br label %logic.from2631 -logic.from2631: - br i1 %t52, label %logic.rhs2632, label %logic.end2633 -logic.rhs2632: + br label %logic.from2690 +logic.from2690: + br i1 %t52, label %logic.rhs2691, label %logic.end2692 +logic.rhs2691: %t53 = load ptr, ptr %a1 %t54 = load %S.ast.Type, ptr %a4 %t55 = call i1 @finch.gen.owning(ptr %t53, %S.ast.Type %t54) - br label %logic.rend2634 -logic.rend2634: - br label %logic.end2633 -logic.end2633: - %t56 = phi i1 [ false, %logic.from2631 ], [ %t55, %logic.rend2634 ] - br label %logic.rend2635 -logic.rend2635: - br label %logic.end2630 -logic.end2630: - %t57 = phi i1 [ true, %logic.from2628 ], [ %t56, %logic.rend2635 ] - br i1 %t57, label %then2636, label %else2637 -then2636: + br label %logic.rend2693 +logic.rend2693: + br label %logic.end2692 +logic.end2692: + %t56 = phi i1 [ false, %logic.from2690 ], [ %t55, %logic.rend2693 ] + br label %logic.rend2694 +logic.rend2694: + br label %logic.end2689 +logic.end2689: + %t57 = phi i1 [ true, %logic.from2687 ], [ %t56, %logic.rend2694 ] + br i1 %t57, label %then2695, label %else2696 +then2695: %t58 = load ptr, ptr %a1 %t59 = load ptr, ptr %a1 %t60 = load %S.ast.Type, ptr %a4 %t61 = call { ptr, i64, i64 } @finch.gen.copyFn(ptr %t59, %S.ast.Type %t60) - store { ptr, i64, i64 } { ptr @.str.1555, i64 10, i64 0 }, ptr %a63 + store { ptr, i64, i64 } { ptr @.str.1583, i64 10, i64 0 }, ptr %a63 store { ptr, i64, i64 } %t61, ptr %a64 call void @finch_str_concat(ptr %a62, ptr %a63, ptr %a64) store { ptr, i64, i64 } %t61, ptr %a65 call void @finch_str_drop(ptr %a65) %t66 = load { ptr, i64, i64 }, ptr %a62 store { ptr, i64, i64 } %t66, ptr %a68 - store { ptr, i64, i64 } { ptr @.str.1556, i64 5, i64 0 }, ptr %a69 + store { ptr, i64, i64 } { ptr @.str.1584, i64 5, i64 0 }, ptr %a69 call void @finch_str_concat(ptr %a67, ptr %a68, ptr %a69) store { ptr, i64, i64 } %t66, ptr %a70 call void @finch_str_drop(ptr %a70) @@ -28646,7 +29391,7 @@ then2636: call void @finch_str_drop(ptr %a76) %t77 = load { ptr, i64, i64 }, ptr %a73 store { ptr, i64, i64 } %t77, ptr %a79 - store { ptr, i64, i64 } { ptr @.str.1557, i64 6, i64 0 }, ptr %a80 + store { ptr, i64, i64 } { ptr @.str.1585, i64 6, i64 0 }, ptr %a80 call void @finch_str_concat(ptr %a78, ptr %a79, ptr %a80) store { ptr, i64, i64 } %t77, ptr %a81 call void @finch_str_drop(ptr %a81) @@ -28659,7 +29404,7 @@ then2636: call void @finch_str_drop(ptr %a87) %t88 = load { ptr, i64, i64 }, ptr %a84 store { ptr, i64, i64 } %t88, ptr %a90 - store { ptr, i64, i64 } { ptr @.str.1558, i64 1, i64 0 }, ptr %a91 + store { ptr, i64, i64 } { ptr @.str.1586, i64 1, i64 0 }, ptr %a91 call void @finch_str_concat(ptr %a89, ptr %a90, ptr %a91) store { ptr, i64, i64 } %t88, ptr %a92 call void @finch_str_drop(ptr %a92) @@ -28667,8 +29412,8 @@ then2636: call void @finch.gen.emit(ptr %t58, { ptr, i64, i64 } %t93) store { ptr, i64, i64 } %t93, ptr %a94 call void @finch_str_drop(ptr %a94) - br label %endif2638 -else2637: + br label %endif2697 +else2696: %t95 = load ptr, ptr %a1 %t96 = load ptr, ptr %a1 %t97 = load %S.ast.Type, ptr %a4 @@ -28687,10 +29432,10 @@ else2637: call void @finch_str_drop(ptr %a107) store { ptr, i64, i64 } %t104, ptr %a108 call void @finch_str_drop(ptr %a108) - br label %endif2638 -endif2638: - br label %endif2623 -endif2623: + br label %endif2697 +endif2697: + br label %endif2682 +endif2682: ret void } @@ -28886,7 +29631,7 @@ entry: store %S.ast.Type %p1, ptr %a2 %t3 = load %S.ast.Type, ptr %a2 %t4 = call { ptr, i64, i64 } @finch.gen.typeKey(%S.ast.Type %t3) - store { ptr, i64, i64 } { ptr @.str.1559, i64 12, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.1587, i64 12, i64 0 }, ptr %a6 store { ptr, i64, i64 } %t4, ptr %a7 call void @finch_str_concat(ptr %a5, ptr %a6, ptr %a7) store { ptr, i64, i64 } %t4, ptr %a8 @@ -28895,28 +29640,28 @@ entry: store { ptr, i64, i64 } %t9, ptr %a10 %t11 = load ptr, ptr %a1 %t12 = icmp eq ptr %t11, null - br i1 %t12, label %panic2639, label %ok2640 -panic2639: - call void @finch_panic(ptr @.str.1560, i64 809, ptr @.str.1561) + br i1 %t12, label %panic2698, label %ok2699 +panic2698: + call void @finch_panic(ptr @.str.1588, i64 835, ptr @.str.1589) unreachable -ok2640: - %t13 = getelementptr inbounds %S.gen.Gen, ptr %t11, i32 0, i32 22 +ok2699: + %t13 = getelementptr inbounds %S.gen.Gen, ptr %t11, i32 0, i32 23 %t14 = load { ptr, i64, i64 }, ptr %t13 %t15 = load { ptr, i64, i64 }, ptr %a10 %t16 = call i1 @finch.gen.has({ ptr, i64, i64 } %t14, { ptr, i64, i64 } %t15) - br i1 %t16, label %then2641, label %endif2643 -then2641: + br i1 %t16, label %then2700, label %endif2702 +then2700: %t17 = load { ptr, i64, i64 }, ptr %a10 ret { ptr, i64, i64 } %t17 -endif2643: +endif2702: %t18 = load ptr, ptr %a1 %t19 = icmp eq ptr %t18, null - br i1 %t19, label %panic2644, label %ok2645 -panic2644: - call void @finch_panic(ptr @.str.1562, i64 812, ptr @.str.1563) + br i1 %t19, label %panic2703, label %ok2704 +panic2703: + call void @finch_panic(ptr @.str.1590, i64 838, ptr @.str.1591) unreachable -ok2645: - %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 22 +ok2704: + %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 23 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t20, i32 0, i32 1 %t22 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t22, ptr %a23 @@ -28935,20 +29680,20 @@ ok2645: %t33 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t34 = load { ptr, i64, i64 }, ptr %t33 store { ptr, i64, i64 } %t34, ptr %a35 - store { ptr, i64, i64 } { ptr @.str.1564, i64 5, i64 0 }, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.1592, i64 5, i64 0 }, ptr %a36 %t37 = call i32 @finch_str_eq(ptr %a35, ptr %a36) %t38 = icmp ne i32 %t37, 0 - br i1 %t38, label %then2646, label %else2647 -then2646: + br i1 %t38, label %then2705, label %else2706 +then2705: %t39 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t40 = load { ptr, i64, i64 }, ptr %t39 %t41 = extractvalue { ptr, i64, i64 } %t40, 1 %t42 = icmp uge i64 0, %t41 - br i1 %t42, label %range2649, label %inrange2650 -range2649: - call void @finch_panic_index(ptr @.str.1565, i64 815, i64 0, i64 %t41) + br i1 %t42, label %range2708, label %inrange2709 +range2708: + call void @finch_panic_index(ptr @.str.1593, i64 841, i64 0, i64 %t41) unreachable -inrange2650: +inrange2709: %t43 = extractvalue { ptr, i64, i64 } %t40, 0 %t44 = getelementptr inbounds %S.ast.Type, ptr %t43, i64 0 %t45 = load %S.ast.Type, ptr %t44 @@ -28960,14 +29705,14 @@ inrange2650: %t51 = load ptr, ptr %a1 %t52 = load %S.ast.Type, ptr %a49 %t53 = call { ptr, i64, i64 } @finch.gen.sizeOf(ptr %t51, %S.ast.Type %t52) - store { ptr, i64, i64 } { ptr @.str.1566, i64 55, i64 0 }, ptr %a55 + store { ptr, i64, i64 } { ptr @.str.1594, i64 55, i64 0 }, ptr %a55 store { ptr, i64, i64 } %t53, ptr %a56 call void @finch_str_concat(ptr %a54, ptr %a55, ptr %a56) store { ptr, i64, i64 } %t53, ptr %a57 call void @finch_str_drop(ptr %a57) %t58 = load { ptr, i64, i64 }, ptr %a54 store { ptr, i64, i64 } %t58, ptr %a60 - store { ptr, i64, i64 } { ptr @.str.1567, i64 1, i64 0 }, ptr %a61 + store { ptr, i64, i64 } { ptr @.str.1595, i64 1, i64 0 }, ptr %a61 call void @finch_str_concat(ptr %a59, ptr %a60, ptr %a61) store { ptr, i64, i64 } %t58, ptr %a62 call void @finch_str_drop(ptr %a62) @@ -28978,18 +29723,18 @@ inrange2650: %t65 = load ptr, ptr %a1 %t66 = load %S.ast.Type, ptr %a49 %t67 = call i1 @finch.gen.owning(ptr %t65, %S.ast.Type %t66) - br i1 %t67, label %then2651, label %endif2653 -then2651: + br i1 %t67, label %then2710, label %endif2712 +then2710: %t68 = load ptr, ptr %a1 - %t69 = call { ptr, i64, i64 } @finch.gen.load(ptr %t68, { ptr, i64, i64 } { ptr @.str.1568, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.1569, i64 4, i64 0 }) + %t69 = call { ptr, i64, i64 } @finch.gen.load(ptr %t68, { ptr, i64, i64 } { ptr @.str.1596, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.1597, i64 4, i64 0 }) store { ptr, i64, i64 } %t69, ptr %a70 %t71 = load ptr, ptr %a1 - %t72 = call { ptr, i64, i64 } @finch.gen.load(ptr %t71, { ptr, i64, i64 } { ptr @.str.1570, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.1571, i64 4, i64 0 }) + %t72 = call { ptr, i64, i64 } @finch.gen.load(ptr %t71, { ptr, i64, i64 } { ptr @.str.1598, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.1599, i64 4, i64 0 }) store { ptr, i64, i64 } %t72, ptr %a73 %t74 = load ptr, ptr %a1 %t75 = load ptr, ptr %a1 - %t76 = call { ptr, i64, i64 } @finch.gen.op(ptr %t75, { ptr, i64, i64 } { ptr @.str.1573, i64 64, i64 0 }) - %t77 = call { ptr, i64, i64 } @finch.gen.load(ptr %t74, { ptr, i64, i64 } { ptr @.str.1572, i64 3, i64 0 }, { ptr, i64, i64 } %t76) + %t76 = call { ptr, i64, i64 } @finch.gen.op(ptr %t75, { ptr, i64, i64 } { ptr @.str.1601, i64 64, i64 0 }) + %t77 = call { ptr, i64, i64 } @finch.gen.load(ptr %t74, { ptr, i64, i64 } { ptr @.str.1600, i64 3, i64 0 }, { ptr, i64, i64 } %t76) store { ptr, i64, i64 } %t76, ptr %a78 call void @finch_str_drop(ptr %a78) store { ptr, i64, i64 } %t77, ptr %a79 @@ -29001,14 +29746,14 @@ then2651: %t85 = load ptr, ptr %a1 %t86 = load %S.ast.Type, ptr %a49 %t87 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t85, %S.ast.Type %t86) - store { ptr, i64, i64 } { ptr @.str.1574, i64 23, i64 0 }, ptr %a89 + store { ptr, i64, i64 } { ptr @.str.1602, i64 23, i64 0 }, ptr %a89 store { ptr, i64, i64 } %t87, ptr %a90 call void @finch_str_concat(ptr %a88, ptr %a89, ptr %a90) store { ptr, i64, i64 } %t87, ptr %a91 call void @finch_str_drop(ptr %a91) %t92 = load { ptr, i64, i64 }, ptr %a88 store { ptr, i64, i64 } %t92, ptr %a94 - store { ptr, i64, i64 } { ptr @.str.1575, i64 6, i64 0 }, ptr %a95 + store { ptr, i64, i64 } { ptr @.str.1603, i64 6, i64 0 }, ptr %a95 call void @finch_str_concat(ptr %a93, ptr %a94, ptr %a95) store { ptr, i64, i64 } %t92, ptr %a96 call void @finch_str_drop(ptr %a96) @@ -29021,7 +29766,7 @@ then2651: call void @finch_str_drop(ptr %a102) %t103 = load { ptr, i64, i64 }, ptr %a99 store { ptr, i64, i64 } %t103, ptr %a105 - store { ptr, i64, i64 } { ptr @.str.1576, i64 6, i64 0 }, ptr %a106 + store { ptr, i64, i64 } { ptr @.str.1604, i64 6, i64 0 }, ptr %a106 call void @finch_str_concat(ptr %a104, ptr %a105, ptr %a106) store { ptr, i64, i64 } %t103, ptr %a107 call void @finch_str_drop(ptr %a107) @@ -29029,11 +29774,11 @@ then2651: %t109 = load { ptr, i64, i64 }, ptr %a83 %t110 = extractvalue { ptr, i64, i64 } %t109, 1 %t111 = icmp uge i64 3, %t110 - br i1 %t111, label %range2654, label %inrange2655 -range2654: - call void @finch_panic_index(ptr @.str.1577, i64 822, i64 3, i64 %t110) + br i1 %t111, label %range2713, label %inrange2714 +range2713: + call void @finch_panic_index(ptr @.str.1605, i64 848, i64 3, i64 %t110) unreachable -inrange2655: +inrange2714: %t112 = extractvalue { ptr, i64, i64 } %t109, 0 %t113 = getelementptr inbounds { ptr, i64, i64 }, ptr %t112, i64 3 %t114 = load { ptr, i64, i64 }, ptr %t113 @@ -29051,14 +29796,14 @@ inrange2655: %t124 = load ptr, ptr %a1 %t125 = load %S.ast.Type, ptr %a49 %t126 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t124, %S.ast.Type %t125) - store { ptr, i64, i64 } { ptr @.str.1578, i64 23, i64 0 }, ptr %a128 + store { ptr, i64, i64 } { ptr @.str.1606, i64 23, i64 0 }, ptr %a128 store { ptr, i64, i64 } %t126, ptr %a129 call void @finch_str_concat(ptr %a127, ptr %a128, ptr %a129) store { ptr, i64, i64 } %t126, ptr %a130 call void @finch_str_drop(ptr %a130) %t131 = load { ptr, i64, i64 }, ptr %a127 store { ptr, i64, i64 } %t131, ptr %a133 - store { ptr, i64, i64 } { ptr @.str.1579, i64 6, i64 0 }, ptr %a134 + store { ptr, i64, i64 } { ptr @.str.1607, i64 6, i64 0 }, ptr %a134 call void @finch_str_concat(ptr %a132, ptr %a133, ptr %a134) store { ptr, i64, i64 } %t131, ptr %a135 call void @finch_str_drop(ptr %a135) @@ -29071,7 +29816,7 @@ inrange2655: call void @finch_str_drop(ptr %a141) %t142 = load { ptr, i64, i64 }, ptr %a138 store { ptr, i64, i64 } %t142, ptr %a144 - store { ptr, i64, i64 } { ptr @.str.1580, i64 6, i64 0 }, ptr %a145 + store { ptr, i64, i64 } { ptr @.str.1608, i64 6, i64 0 }, ptr %a145 call void @finch_str_concat(ptr %a143, ptr %a144, ptr %a145) store { ptr, i64, i64 } %t142, ptr %a146 call void @finch_str_drop(ptr %a146) @@ -29079,11 +29824,11 @@ inrange2655: %t148 = load { ptr, i64, i64 }, ptr %a83 %t149 = extractvalue { ptr, i64, i64 } %t148, 1 %t150 = icmp uge i64 3, %t149 - br i1 %t150, label %range2656, label %inrange2657 -range2656: - call void @finch_panic_index(ptr @.str.1581, i64 823, i64 3, i64 %t149) + br i1 %t150, label %range2715, label %inrange2716 +range2715: + call void @finch_panic_index(ptr @.str.1609, i64 849, i64 3, i64 %t149) unreachable -inrange2657: +inrange2716: %t151 = extractvalue { ptr, i64, i64 } %t148, 0 %t152 = getelementptr inbounds { ptr, i64, i64 }, ptr %t151, i64 3 %t153 = load { ptr, i64, i64 }, ptr %t152 @@ -29111,31 +29856,31 @@ inrange2657: call void @finch_str_drop(ptr %a79) call void @finch_str_drop(ptr %a73) call void @finch_str_drop(ptr %a70) - br label %endif2653 -endif2653: + br label %endif2712 +endif2712: call void @finch.drop.S_ast_Type(ptr %a49) - br label %endif2648 -else2647: + br label %endif2707 +else2706: %t168 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t169 = load { ptr, i64, i64 }, ptr %t168 store { ptr, i64, i64 } %t169, ptr %a170 - store { ptr, i64, i64 } { ptr @.str.1582, i64 3, i64 0 }, ptr %a171 + store { ptr, i64, i64 } { ptr @.str.1610, i64 3, i64 0 }, ptr %a171 %t172 = call i32 @finch_str_eq(ptr %a170, ptr %a171) %t173 = icmp ne i32 %t172, 0 - br i1 %t173, label %then2658, label %else2659 -then2658: + br i1 %t173, label %then2717, label %else2718 +then2717: %t174 = load ptr, ptr %a1 %t175 = load ptr, ptr %a1 %t176 = load %S.ast.Type, ptr %a2 %t177 = call { ptr, i64, i64 } @finch.gen.entrySize(ptr %t175, %S.ast.Type %t176) - store { ptr, i64, i64 } { ptr @.str.1583, i64 55, i64 0 }, ptr %a179 + store { ptr, i64, i64 } { ptr @.str.1611, i64 55, i64 0 }, ptr %a179 store { ptr, i64, i64 } %t177, ptr %a180 call void @finch_str_concat(ptr %a178, ptr %a179, ptr %a180) store { ptr, i64, i64 } %t177, ptr %a181 call void @finch_str_drop(ptr %a181) %t182 = load { ptr, i64, i64 }, ptr %a178 store { ptr, i64, i64 } %t182, ptr %a184 - store { ptr, i64, i64 } { ptr @.str.1584, i64 1, i64 0 }, ptr %a185 + store { ptr, i64, i64 } { ptr @.str.1612, i64 1, i64 0 }, ptr %a185 call void @finch_str_concat(ptr %a183, ptr %a184, ptr %a185) store { ptr, i64, i64 } %t182, ptr %a186 call void @finch_str_drop(ptr %a186) @@ -29148,53 +29893,53 @@ then2658: %t191 = load { ptr, i64, i64 }, ptr %t190 %t192 = extractvalue { ptr, i64, i64 } %t191, 1 %t193 = icmp uge i64 0, %t192 - br i1 %t193, label %range2661, label %inrange2662 -range2661: - call void @finch_panic_index(ptr @.str.1585, i64 829, i64 0, i64 %t192) + br i1 %t193, label %range2720, label %inrange2721 +range2720: + call void @finch_panic_index(ptr @.str.1613, i64 855, i64 0, i64 %t192) unreachable -inrange2662: +inrange2721: %t194 = extractvalue { ptr, i64, i64 } %t191, 0 %t195 = getelementptr inbounds %S.ast.Type, ptr %t194, i64 0 %t196 = load %S.ast.Type, ptr %t195 %t197 = call i1 @finch.gen.owning(ptr %t189, %S.ast.Type %t196) - br label %logic.from2663 -logic.from2663: - br i1 %t197, label %logic.end2665, label %logic.rhs2664 -logic.rhs2664: + br label %logic.from2722 +logic.from2722: + br i1 %t197, label %logic.end2724, label %logic.rhs2723 +logic.rhs2723: %t198 = load ptr, ptr %a1 %t199 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t200 = load { ptr, i64, i64 }, ptr %t199 %t201 = extractvalue { ptr, i64, i64 } %t200, 1 %t202 = icmp uge i64 1, %t201 - br i1 %t202, label %range2666, label %inrange2667 -range2666: - call void @finch_panic_index(ptr @.str.1586, i64 829, i64 1, i64 %t201) + br i1 %t202, label %range2725, label %inrange2726 +range2725: + call void @finch_panic_index(ptr @.str.1614, i64 855, i64 1, i64 %t201) unreachable -inrange2667: +inrange2726: %t203 = extractvalue { ptr, i64, i64 } %t200, 0 %t204 = getelementptr inbounds %S.ast.Type, ptr %t203, i64 1 %t205 = load %S.ast.Type, ptr %t204 %t206 = call i1 @finch.gen.owning(ptr %t198, %S.ast.Type %t205) - br label %logic.rend2668 -logic.rend2668: - br label %logic.end2665 -logic.end2665: - %t207 = phi i1 [ true, %logic.from2663 ], [ %t206, %logic.rend2668 ] - br i1 %t207, label %then2669, label %endif2671 -then2669: + br label %logic.rend2727 +logic.rend2727: + br label %logic.end2724 +logic.end2724: + %t207 = phi i1 [ true, %logic.from2722 ], [ %t206, %logic.rend2727 ] + br i1 %t207, label %then2728, label %endif2730 +then2728: %t208 = load ptr, ptr %a1 %t209 = load ptr, ptr %a1 %t210 = load ptr, ptr %a1 %t211 = load %S.ast.Type, ptr %a2 %t212 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t210, %S.ast.Type %t211) - store { ptr, i64, i64 } { ptr @.str.1588, i64 23, i64 0 }, ptr %a214 + store { ptr, i64, i64 } { ptr @.str.1616, i64 23, i64 0 }, ptr %a214 store { ptr, i64, i64 } %t212, ptr %a215 call void @finch_str_concat(ptr %a213, ptr %a214, ptr %a215) store { ptr, i64, i64 } %t212, ptr %a216 call void @finch_str_drop(ptr %a216) %t217 = load { ptr, i64, i64 }, ptr %a213 store { ptr, i64, i64 } %t217, ptr %a219 - store { ptr, i64, i64 } { ptr @.str.1589, i64 24, i64 0 }, ptr %a220 + store { ptr, i64, i64 } { ptr @.str.1617, i64 24, i64 0 }, ptr %a220 call void @finch_str_concat(ptr %a218, ptr %a219, ptr %a220) store { ptr, i64, i64 } %t217, ptr %a221 call void @finch_str_drop(ptr %a221) @@ -29202,7 +29947,7 @@ then2669: %t223 = call { ptr, i64, i64 } @finch.gen.op(ptr %t209, { ptr, i64, i64 } %t222) store { ptr, i64, i64 } %t222, ptr %a224 call void @finch_str_drop(ptr %a224) - %t225 = call { ptr, i64, i64 } @finch.gen.load(ptr %t208, { ptr, i64, i64 } { ptr @.str.1587, i64 3, i64 0 }, { ptr, i64, i64 } %t223) + %t225 = call { ptr, i64, i64 } @finch.gen.load(ptr %t208, { ptr, i64, i64 } { ptr @.str.1615, i64 3, i64 0 }, { ptr, i64, i64 } %t223) store { ptr, i64, i64 } %t223, ptr %a226 call void @finch_str_drop(ptr %a226) store { ptr, i64, i64 } %t225, ptr %a227 @@ -29215,36 +29960,36 @@ then2669: %t234 = load { ptr, i64, i64 }, ptr %a231 %t235 = extractvalue { ptr, i64, i64 } %t234, 1 %t236 = icmp uge i64 3, %t235 - br i1 %t236, label %range2672, label %inrange2673 -range2672: - call void @finch_panic_index(ptr @.str.1591, i64 833, i64 3, i64 %t235) + br i1 %t236, label %range2731, label %inrange2732 +range2731: + call void @finch_panic_index(ptr @.str.1619, i64 859, i64 3, i64 %t235) unreachable -inrange2673: +inrange2732: %t237 = extractvalue { ptr, i64, i64 } %t234, 0 %t238 = getelementptr inbounds { ptr, i64, i64 }, ptr %t237, i64 3 %t239 = load { ptr, i64, i64 }, ptr %t238 - %t240 = call { ptr, i64, i64 } @finch.gen.entryAt(ptr %t232, { ptr, i64, i64 } { ptr @.str.1590, i64 4, i64 0 }, %S.ast.Type %t233, { ptr, i64, i64 } %t239) + %t240 = call { ptr, i64, i64 } @finch.gen.entryAt(ptr %t232, { ptr, i64, i64 } { ptr @.str.1618, i64 4, i64 0 }, %S.ast.Type %t233, { ptr, i64, i64 } %t239) store { ptr, i64, i64 } %t240, ptr %a241 %t242 = load ptr, ptr %a1 %t243 = load %S.ast.Type, ptr %a2 %t244 = load { ptr, i64, i64 }, ptr %a231 %t245 = extractvalue { ptr, i64, i64 } %t244, 1 %t246 = icmp uge i64 3, %t245 - br i1 %t246, label %range2674, label %inrange2675 -range2674: - call void @finch_panic_index(ptr @.str.1593, i64 834, i64 3, i64 %t245) + br i1 %t246, label %range2733, label %inrange2734 +range2733: + call void @finch_panic_index(ptr @.str.1621, i64 860, i64 3, i64 %t245) unreachable -inrange2675: +inrange2734: %t247 = extractvalue { ptr, i64, i64 } %t244, 0 %t248 = getelementptr inbounds { ptr, i64, i64 }, ptr %t247, i64 3 %t249 = load { ptr, i64, i64 }, ptr %t248 - %t250 = call { ptr, i64, i64 } @finch.gen.entryAt(ptr %t242, { ptr, i64, i64 } { ptr @.str.1592, i64 4, i64 0 }, %S.ast.Type %t243, { ptr, i64, i64 } %t249) + %t250 = call { ptr, i64, i64 } @finch.gen.entryAt(ptr %t242, { ptr, i64, i64 } { ptr @.str.1620, i64 4, i64 0 }, %S.ast.Type %t243, { ptr, i64, i64 } %t249) store { ptr, i64, i64 } %t250, ptr %a251 %t252 = load ptr, ptr %a1 - %t253 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t252, { ptr, i64, i64 } { ptr @.str.1594, i64 10, i64 0 }) + %t253 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t252, { ptr, i64, i64 } { ptr @.str.1622, i64 10, i64 0 }) store { ptr, i64, i64 } %t253, ptr %a254 %t255 = load ptr, ptr %a1 - %t256 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t255, { ptr, i64, i64 } { ptr @.str.1595, i64 10, i64 0 }) + %t256 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t255, { ptr, i64, i64 } { ptr @.str.1623, i64 10, i64 0 }) store { ptr, i64, i64 } %t256, ptr %a257 %t258 = load ptr, ptr %a1 %t259 = load ptr, ptr %a1 @@ -29253,14 +29998,14 @@ inrange2675: %t262 = load ptr, ptr %a1 %t263 = load %S.ast.Type, ptr %a2 %t264 = call { ptr, i64, i64 } @finch.gen.entryTy(ptr %t262, %S.ast.Type %t263) - store { ptr, i64, i64 } { ptr @.str.1598, i64 23, i64 0 }, ptr %a266 + store { ptr, i64, i64 } { ptr @.str.1626, i64 23, i64 0 }, ptr %a266 store { ptr, i64, i64 } %t264, ptr %a267 call void @finch_str_concat(ptr %a265, ptr %a266, ptr %a267) store { ptr, i64, i64 } %t264, ptr %a268 call void @finch_str_drop(ptr %a268) %t269 = load { ptr, i64, i64 }, ptr %a265 store { ptr, i64, i64 } %t269, ptr %a271 - store { ptr, i64, i64 } { ptr @.str.1599, i64 6, i64 0 }, ptr %a272 + store { ptr, i64, i64 } { ptr @.str.1627, i64 6, i64 0 }, ptr %a272 call void @finch_str_concat(ptr %a270, ptr %a271, ptr %a272) store { ptr, i64, i64 } %t269, ptr %a273 call void @finch_str_drop(ptr %a273) @@ -29273,7 +30018,7 @@ inrange2675: call void @finch_str_drop(ptr %a279) %t280 = load { ptr, i64, i64 }, ptr %a276 store { ptr, i64, i64 } %t280, ptr %a282 - store { ptr, i64, i64 } { ptr @.str.1600, i64 14, i64 0 }, ptr %a283 + store { ptr, i64, i64 } { ptr @.str.1628, i64 14, i64 0 }, ptr %a283 call void @finch_str_concat(ptr %a281, ptr %a282, ptr %a283) store { ptr, i64, i64 } %t280, ptr %a284 call void @finch_str_drop(ptr %a284) @@ -29281,17 +30026,17 @@ inrange2675: %t286 = call { ptr, i64, i64 } @finch.gen.op(ptr %t261, { ptr, i64, i64 } %t285) store { ptr, i64, i64 } %t285, ptr %a287 call void @finch_str_drop(ptr %a287) - %t288 = call { ptr, i64, i64 } @finch.gen.load(ptr %t260, { ptr, i64, i64 } { ptr @.str.1597, i64 3, i64 0 }, { ptr, i64, i64 } %t286) + %t288 = call { ptr, i64, i64 } @finch.gen.load(ptr %t260, { ptr, i64, i64 } { ptr @.str.1625, i64 3, i64 0 }, { ptr, i64, i64 } %t286) store { ptr, i64, i64 } %t286, ptr %a289 call void @finch_str_drop(ptr %a289) - store { ptr, i64, i64 } { ptr @.str.1596, i64 12, i64 0 }, ptr %a291 + store { ptr, i64, i64 } { ptr @.str.1624, i64 12, i64 0 }, ptr %a291 store { ptr, i64, i64 } %t288, ptr %a292 call void @finch_str_concat(ptr %a290, ptr %a291, ptr %a292) store { ptr, i64, i64 } %t288, ptr %a293 call void @finch_str_drop(ptr %a293) %t294 = load { ptr, i64, i64 }, ptr %a290 store { ptr, i64, i64 } %t294, ptr %a296 - store { ptr, i64, i64 } { ptr @.str.1601, i64 3, i64 0 }, ptr %a297 + store { ptr, i64, i64 } { ptr @.str.1629, i64 3, i64 0 }, ptr %a297 call void @finch_str_concat(ptr %a295, ptr %a296, ptr %a297) store { ptr, i64, i64 } %t294, ptr %a298 call void @finch_str_drop(ptr %a298) @@ -29320,11 +30065,11 @@ inrange2675: %t317 = load { ptr, i64, i64 }, ptr %t316 %t318 = extractvalue { ptr, i64, i64 } %t317, 1 %t319 = icmp uge i64 0, %t318 - br i1 %t319, label %range2676, label %inrange2677 -range2676: - call void @finch_panic_index(ptr @.str.1602, i64 839, i64 0, i64 %t318) + br i1 %t319, label %range2735, label %inrange2736 +range2735: + call void @finch_panic_index(ptr @.str.1630, i64 865, i64 0, i64 %t318) unreachable -inrange2677: +inrange2736: %t320 = extractvalue { ptr, i64, i64 } %t317, 0 %t321 = getelementptr inbounds %S.ast.Type, ptr %t320, i64 0 %t322 = load %S.ast.Type, ptr %t321 @@ -29346,11 +30091,11 @@ inrange2677: %t335 = load { ptr, i64, i64 }, ptr %t334 %t336 = extractvalue { ptr, i64, i64 } %t335, 1 %t337 = icmp uge i64 1, %t336 - br i1 %t337, label %range2678, label %inrange2679 -range2678: - call void @finch_panic_index(ptr @.str.1603, i64 840, i64 1, i64 %t336) + br i1 %t337, label %range2737, label %inrange2738 +range2737: + call void @finch_panic_index(ptr @.str.1631, i64 866, i64 1, i64 %t336) unreachable -inrange2679: +inrange2738: %t338 = extractvalue { ptr, i64, i64 } %t335, 0 %t339 = getelementptr inbounds %S.ast.Type, ptr %t338, i64 1 %t340 = load %S.ast.Type, ptr %t339 @@ -29374,17 +30119,17 @@ inrange2679: call void @finch_str_drop(ptr %a241) call void @finch.drop.arr_str(ptr %a231) call void @finch_str_drop(ptr %a227) - br label %endif2671 -endif2671: - br label %endif2660 -else2659: + br label %endif2730 +endif2730: + br label %endif2719 +else2718: %t349 = load ptr, ptr %a1 %t350 = icmp eq ptr %t349, null - br i1 %t350, label %panic2680, label %ok2681 -panic2680: - call void @finch_panic(ptr @.str.1604, i64 846, ptr @.str.1605) + br i1 %t350, label %panic2739, label %ok2740 +panic2739: + call void @finch_panic(ptr @.str.1632, i64 872, ptr @.str.1633) unreachable -ok2681: +ok2740: %t351 = getelementptr inbounds %S.gen.Gen, ptr %t349, i32 0, i32 16 %t352 = load ptr, ptr %a1 %t353 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 @@ -29395,11 +30140,11 @@ ok2681: %t358 = load { ptr, i64, i64 }, ptr %t351 %t359 = extractvalue { ptr, i64, i64 } %t358, 1 %t360 = icmp uge i64 %t357, %t359 - br i1 %t360, label %range2682, label %inrange2683 -range2682: - call void @finch_panic_index(ptr @.str.1606, i64 846, i64 %t357, i64 %t359) + br i1 %t360, label %range2741, label %inrange2742 +range2741: + call void @finch_panic_index(ptr @.str.1634, i64 872, i64 %t357, i64 %t359) unreachable -inrange2683: +inrange2742: %t361 = extractvalue { ptr, i64, i64 } %t358, 0 %t362 = getelementptr inbounds %S.gen.StructDef, ptr %t361, i64 %t357 %t363 = load %S.gen.StructDef, ptr %t362 @@ -29415,45 +30160,45 @@ inrange2683: %t373 = load { ptr, i64, i64 }, ptr %a371 %t374 = load ptr, ptr %a1 %t375 = load { ptr, i64, i64 }, ptr %a371 - %t376 = call { ptr, i64, i64 } @finch.gen.load(ptr %t374, { ptr, i64, i64 } %t375, { ptr, i64, i64 } { ptr @.str.1607, i64 4, i64 0 }) - call void @finch.gen.store(ptr %t372, { ptr, i64, i64 } %t373, { ptr, i64, i64 } %t376, { ptr, i64, i64 } { ptr @.str.1608, i64 4, i64 0 }) + %t376 = call { ptr, i64, i64 } @finch.gen.load(ptr %t374, { ptr, i64, i64 } %t375, { ptr, i64, i64 } { ptr @.str.1635, i64 4, i64 0 }) + call void @finch.gen.store(ptr %t372, { ptr, i64, i64 } %t373, { ptr, i64, i64 } %t376, { ptr, i64, i64 } { ptr @.str.1636, i64 4, i64 0 }) store { ptr, i64, i64 } %t376, ptr %a377 call void @finch_str_drop(ptr %a377) %t378 = getelementptr inbounds %S.gen.StructDef, ptr %a367, i32 0, i32 12 %t379 = getelementptr inbounds { ptr, i64, i64 }, ptr %t378, i32 0, i32 1 %t380 = load i64, ptr %t379 store i64 0, ptr %a381 - br label %for.cond2684 -for.cond2684: + br label %for.cond2743 +for.cond2743: %t382 = load i64, ptr %a381 %t383 = icmp slt i64 %t382, %t380 - br i1 %t383, label %for.body2685, label %for.end2687 -for.body2685: + br i1 %t383, label %for.body2744, label %for.end2746 +for.body2744: %t384 = load ptr, ptr %a1 %t385 = getelementptr inbounds %S.gen.StructDef, ptr %a367, i32 0, i32 12 %t386 = load i64, ptr %a381 %t387 = load { ptr, i64, i64 }, ptr %t385 %t388 = extractvalue { ptr, i64, i64 } %t387, 1 %t389 = icmp uge i64 %t386, %t388 - br i1 %t389, label %range2688, label %inrange2689 -range2688: - call void @finch_panic_index(ptr @.str.1609, i64 850, i64 %t386, i64 %t388) + br i1 %t389, label %range2747, label %inrange2748 +range2747: + call void @finch_panic_index(ptr @.str.1637, i64 876, i64 %t386, i64 %t388) unreachable -inrange2689: +inrange2748: %t390 = extractvalue { ptr, i64, i64 } %t387, 0 %t391 = getelementptr inbounds %S.ast.Type, ptr %t390, i64 %t386 %t392 = load %S.ast.Type, ptr %t391 %t393 = call i1 @finch.gen.owning(ptr %t384, %S.ast.Type %t392) - br i1 %t393, label %then2690, label %endif2692 -then2690: + br i1 %t393, label %then2749, label %endif2751 +then2749: %t394 = load ptr, ptr %a1 %t395 = load { ptr, i64, i64 }, ptr %a371 - store { ptr, i64, i64 } { ptr @.str.1610, i64 23, i64 0 }, ptr %a397 + store { ptr, i64, i64 } { ptr @.str.1638, i64 23, i64 0 }, ptr %a397 store { ptr, i64, i64 } %t395, ptr %a398 call void @finch_str_concat(ptr %a396, ptr %a397, ptr %a398) %t399 = load { ptr, i64, i64 }, ptr %a396 store { ptr, i64, i64 } %t399, ptr %a401 - store { ptr, i64, i64 } { ptr @.str.1611, i64 23, i64 0 }, ptr %a402 + store { ptr, i64, i64 } { ptr @.str.1639, i64 23, i64 0 }, ptr %a402 call void @finch_str_concat(ptr %a400, ptr %a401, ptr %a402) store { ptr, i64, i64 } %t399, ptr %a403 call void @finch_str_drop(ptr %a403) @@ -29463,11 +30208,11 @@ then2690: %t407 = load { ptr, i64, i64 }, ptr %t405 %t408 = extractvalue { ptr, i64, i64 } %t407, 1 %t409 = icmp uge i64 %t406, %t408 - br i1 %t409, label %range2693, label %inrange2694 -range2693: - call void @finch_panic_index(ptr @.str.1612, i64 851, i64 %t406, i64 %t408) + br i1 %t409, label %range2752, label %inrange2753 +range2752: + call void @finch_panic_index(ptr @.str.1640, i64 877, i64 %t406, i64 %t408) unreachable -inrange2694: +inrange2753: %t410 = extractvalue { ptr, i64, i64 } %t407, 0 %t411 = getelementptr inbounds i64, ptr %t410, i64 %t406 %t412 = load i64, ptr %t411 @@ -29487,12 +30232,12 @@ inrange2694: store { ptr, i64, i64 } %t421, ptr %a423 %t424 = load ptr, ptr %a1 %t425 = load { ptr, i64, i64 }, ptr %a371 - store { ptr, i64, i64 } { ptr @.str.1613, i64 23, i64 0 }, ptr %a427 + store { ptr, i64, i64 } { ptr @.str.1641, i64 23, i64 0 }, ptr %a427 store { ptr, i64, i64 } %t425, ptr %a428 call void @finch_str_concat(ptr %a426, ptr %a427, ptr %a428) %t429 = load { ptr, i64, i64 }, ptr %a426 store { ptr, i64, i64 } %t429, ptr %a431 - store { ptr, i64, i64 } { ptr @.str.1614, i64 23, i64 0 }, ptr %a432 + store { ptr, i64, i64 } { ptr @.str.1642, i64 23, i64 0 }, ptr %a432 call void @finch_str_concat(ptr %a430, ptr %a431, ptr %a432) store { ptr, i64, i64 } %t429, ptr %a433 call void @finch_str_drop(ptr %a433) @@ -29502,11 +30247,11 @@ inrange2694: %t437 = load { ptr, i64, i64 }, ptr %t435 %t438 = extractvalue { ptr, i64, i64 } %t437, 1 %t439 = icmp uge i64 %t436, %t438 - br i1 %t439, label %range2695, label %inrange2696 -range2695: - call void @finch_panic_index(ptr @.str.1615, i64 852, i64 %t436, i64 %t438) + br i1 %t439, label %range2754, label %inrange2755 +range2754: + call void @finch_panic_index(ptr @.str.1643, i64 878, i64 %t436, i64 %t438) unreachable -inrange2696: +inrange2755: %t440 = extractvalue { ptr, i64, i64 } %t437, 0 %t441 = getelementptr inbounds i64, ptr %t440, i64 %t436 %t442 = load i64, ptr %t441 @@ -29532,43 +30277,43 @@ inrange2696: %t459 = load { ptr, i64, i64 }, ptr %t457 %t460 = extractvalue { ptr, i64, i64 } %t459, 1 %t461 = icmp uge i64 %t458, %t460 - br i1 %t461, label %range2697, label %inrange2698 -range2697: - call void @finch_panic_index(ptr @.str.1616, i64 853, i64 %t458, i64 %t460) + br i1 %t461, label %range2756, label %inrange2757 +range2756: + call void @finch_panic_index(ptr @.str.1644, i64 879, i64 %t458, i64 %t460) unreachable -inrange2698: +inrange2757: %t462 = extractvalue { ptr, i64, i64 } %t459, 0 %t463 = getelementptr inbounds %S.ast.Type, ptr %t462, i64 %t458 %t464 = load %S.ast.Type, ptr %t463 call void @finch.gen.copyAt(ptr %t454, { ptr, i64, i64 } %t455, { ptr, i64, i64 } %t456, %S.ast.Type %t464) call void @finch_str_drop(ptr %a453) call void @finch_str_drop(ptr %a423) - br label %endif2692 -endif2692: - br label %for.step2686 -for.step2686: + br label %endif2751 +endif2751: + br label %for.step2745 +for.step2745: %t465 = load i64, ptr %a381 %t466 = add i64 %t465, 1 store i64 %t466, ptr %a381 - br label %for.cond2684 -for.end2687: + br label %for.cond2743 +for.end2746: call void @finch_str_drop(ptr %a371) call void @finch.drop.S_gen_StructDef(ptr %a367) - br label %endif2660 -endif2660: - br label %endif2648 -endif2648: + br label %endif2719 +endif2719: + br label %endif2707 +endif2707: %t467 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t467, { ptr, i64, i64 } { ptr @.str.1617, i64 8, i64 0 }) + call void @finch.gen.emit(ptr %t467, { ptr, i64, i64 } { ptr @.str.1645, i64 8, i64 0 }) %t468 = load ptr, ptr %a1 %t469 = load %S.gen.Saved, ptr %a32 %t470 = load { ptr, i64, i64 }, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.1618, i64 21, i64 0 }, ptr %a472 + store { ptr, i64, i64 } { ptr @.str.1646, i64 21, i64 0 }, ptr %a472 store { ptr, i64, i64 } %t470, ptr %a473 call void @finch_str_concat(ptr %a471, ptr %a472, ptr %a473) %t474 = load { ptr, i64, i64 }, ptr %a471 store { ptr, i64, i64 } %t474, ptr %a476 - store { ptr, i64, i64 } { ptr @.str.1619, i64 20, i64 0 }, ptr %a477 + store { ptr, i64, i64 } { ptr @.str.1647, i64 20, i64 0 }, ptr %a477 call void @finch_str_concat(ptr %a475, ptr %a476, ptr %a477) store { ptr, i64, i64 } %t474, ptr %a478 call void @finch_str_drop(ptr %a478) @@ -29614,14 +30359,14 @@ entry: %t5 = load %S.ast.Type, ptr %a3 %t6 = call i1 @finch.gen.owning(ptr %t4, %S.ast.Type %t5) %t7 = xor i1 %t6, true - br i1 %t7, label %then2699, label %endif2701 -then2699: + br i1 %t7, label %then2758, label %endif2760 +then2758: %t8 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t8, ptr %a9 call void @finch_str_copy(ptr %a10, ptr %a9) %t11 = load { ptr, i64, i64 }, ptr %a10 ret { ptr, i64, i64 } %t11 -endif2701: +endif2760: %t12 = load ptr, ptr %a1 %t13 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t13, ptr %a14 @@ -29702,26 +30447,26 @@ entry: %t5 = load %S.ast.Type, ptr %a3 %t6 = call i1 @finch.gen.owning(ptr %t4, %S.ast.Type %t5) %t7 = xor i1 %t6, true - br i1 %t7, label %then2702, label %endif2704 -then2702: + br i1 %t7, label %then2761, label %endif2763 +then2761: ret void -endif2704: +endif2763: %t8 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t9 = load { ptr, i64, i64 }, ptr %t8 store { ptr, i64, i64 } %t9, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.1620, i64 3, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.1648, i64 3, i64 0 }, ptr %a11 %t12 = call i32 @finch_str_eq(ptr %a10, ptr %a11) %t13 = icmp ne i32 %t12, 0 - br i1 %t13, label %then2705, label %else2706 -then2705: + br i1 %t13, label %then2764, label %else2765 +then2764: %t14 = load ptr, ptr %a1 %t15 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1621, i64 30, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.1649, i64 30, i64 0 }, ptr %a17 store { ptr, i64, i64 } %t15, ptr %a18 call void @finch_str_concat(ptr %a16, ptr %a17, ptr %a18) %t19 = load { ptr, i64, i64 }, ptr %a16 store { ptr, i64, i64 } %t19, ptr %a21 - store { ptr, i64, i64 } { ptr @.str.1622, i64 1, i64 0 }, ptr %a22 + store { ptr, i64, i64 } { ptr @.str.1650, i64 1, i64 0 }, ptr %a22 call void @finch_str_concat(ptr %a20, ptr %a21, ptr %a22) store { ptr, i64, i64 } %t19, ptr %a23 call void @finch_str_drop(ptr %a23) @@ -29729,20 +30474,20 @@ then2705: call void @finch.gen.emit(ptr %t14, { ptr, i64, i64 } %t24) store { ptr, i64, i64 } %t24, ptr %a25 call void @finch_str_drop(ptr %a25) - br label %endif2707 -else2706: + br label %endif2766 +else2765: %t26 = load ptr, ptr %a1 %t27 = load ptr, ptr %a1 %t28 = load %S.ast.Type, ptr %a3 %t29 = call { ptr, i64, i64 } @finch.gen.dropFn(ptr %t27, %S.ast.Type %t28) - store { ptr, i64, i64 } { ptr @.str.1623, i64 10, i64 0 }, ptr %a31 + store { ptr, i64, i64 } { ptr @.str.1651, i64 10, i64 0 }, ptr %a31 store { ptr, i64, i64 } %t29, ptr %a32 call void @finch_str_concat(ptr %a30, ptr %a31, ptr %a32) store { ptr, i64, i64 } %t29, ptr %a33 call void @finch_str_drop(ptr %a33) %t34 = load { ptr, i64, i64 }, ptr %a30 store { ptr, i64, i64 } %t34, ptr %a36 - store { ptr, i64, i64 } { ptr @.str.1624, i64 5, i64 0 }, ptr %a37 + store { ptr, i64, i64 } { ptr @.str.1652, i64 5, i64 0 }, ptr %a37 call void @finch_str_concat(ptr %a35, ptr %a36, ptr %a37) store { ptr, i64, i64 } %t34, ptr %a38 call void @finch_str_drop(ptr %a38) @@ -29755,7 +30500,7 @@ else2706: call void @finch_str_drop(ptr %a44) %t45 = load { ptr, i64, i64 }, ptr %a41 store { ptr, i64, i64 } %t45, ptr %a47 - store { ptr, i64, i64 } { ptr @.str.1625, i64 1, i64 0 }, ptr %a48 + store { ptr, i64, i64 } { ptr @.str.1653, i64 1, i64 0 }, ptr %a48 call void @finch_str_concat(ptr %a46, ptr %a47, ptr %a48) store { ptr, i64, i64 } %t45, ptr %a49 call void @finch_str_drop(ptr %a49) @@ -29763,8 +30508,8 @@ else2706: call void @finch.gen.emit(ptr %t26, { ptr, i64, i64 } %t50) store { ptr, i64, i64 } %t50, ptr %a51 call void @finch_str_drop(ptr %a51) - br label %endif2707 -endif2707: + br label %endif2766 +endif2766: ret void } @@ -29785,8 +30530,8 @@ entry: %t4 = load ptr, ptr %a1 %t5 = load %S.ast.Type, ptr %a3 %t6 = call i1 @finch.gen.owning(ptr %t4, %S.ast.Type %t5) - br i1 %t6, label %then2708, label %endif2710 -then2708: + br i1 %t6, label %then2767, label %endif2769 +then2767: %t7 = load ptr, ptr %a1 %t8 = load ptr, ptr %a1 %t9 = load { ptr, i64, i64 }, ptr %a2 @@ -29806,8 +30551,8 @@ then2708: call void @finch.gen.dropAt(ptr %t7, { ptr, i64, i64 } %t19, %S.ast.Type %t21) store { ptr, i64, i64 } %t19, ptr %a22 call void @finch_str_drop(ptr %a22) - br label %endif2710 -endif2710: + br label %endif2769 +endif2769: ret void } @@ -29819,55 +30564,55 @@ entry: store %S.gen.Val %p1, ptr %a2 %t3 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 2 %t4 = load i1, ptr %t3 - br label %logic.from2711 -logic.from2711: - br i1 %t4, label %logic.rhs2712, label %logic.end2713 -logic.rhs2712: + br label %logic.from2770 +logic.from2770: + br i1 %t4, label %logic.rhs2771, label %logic.end2772 +logic.rhs2771: %t5 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t7 = load i64, ptr %t6 %t8 = icmp sgt i64 %t7, 0 - br label %logic.rend2714 -logic.rend2714: - br label %logic.end2713 -logic.end2713: - %t9 = phi i1 [ false, %logic.from2711 ], [ %t8, %logic.rend2714 ] - br label %logic.from2715 -logic.from2715: - br i1 %t9, label %logic.rhs2716, label %logic.end2717 -logic.rhs2716: + br label %logic.rend2773 +logic.rend2773: + br label %logic.end2772 +logic.end2772: + %t9 = phi i1 [ false, %logic.from2770 ], [ %t8, %logic.rend2773 ] + br label %logic.from2774 +logic.from2774: + br i1 %t9, label %logic.rhs2775, label %logic.end2776 +logic.rhs2775: %t10 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t11 = load { ptr, i64, i64 }, ptr %t10 %t12 = call i1 @finch.gen.isConstant({ ptr, i64, i64 } %t11) %t13 = xor i1 %t12, true - br label %logic.rend2718 -logic.rend2718: - br label %logic.end2717 -logic.end2717: - %t14 = phi i1 [ false, %logic.from2715 ], [ %t13, %logic.rend2718 ] - br label %logic.from2719 -logic.from2719: - br i1 %t14, label %logic.rhs2720, label %logic.end2721 -logic.rhs2720: + br label %logic.rend2777 +logic.rend2777: + br label %logic.end2776 +logic.end2776: + %t14 = phi i1 [ false, %logic.from2774 ], [ %t13, %logic.rend2777 ] + br label %logic.from2778 +logic.from2778: + br i1 %t14, label %logic.rhs2779, label %logic.end2780 +logic.rhs2779: %t15 = load ptr, ptr %a1 %t16 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t17 = load %S.ast.Type, ptr %t16 %t18 = call i1 @finch.gen.owning(ptr %t15, %S.ast.Type %t17) - br label %logic.rend2722 -logic.rend2722: - br label %logic.end2721 -logic.end2721: - %t19 = phi i1 [ false, %logic.from2719 ], [ %t18, %logic.rend2722 ] - br i1 %t19, label %then2723, label %endif2725 -then2723: + br label %logic.rend2781 +logic.rend2781: + br label %logic.end2780 +logic.end2780: + %t19 = phi i1 [ false, %logic.from2778 ], [ %t18, %logic.rend2781 ] + br i1 %t19, label %then2782, label %endif2784 +then2782: %t20 = load ptr, ptr %a1 %t21 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t22 = load { ptr, i64, i64 }, ptr %t21 %t23 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t24 = load %S.ast.Type, ptr %t23 call void @finch.gen.dropValue(ptr %t20, { ptr, i64, i64 } %t22, %S.ast.Type %t24) - br label %endif2725 -endif2725: + br label %endif2784 +endif2784: ret void } @@ -29880,7 +30625,7 @@ entry: store { ptr, i64, i64 } %p0, ptr %a1 %t2 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t2, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.1627, i64 1, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.1655, i64 1, i64 0 }, ptr %a5 %t6 = call i32 @finch_str_starts(ptr %a3, ptr %a5) %t7 = icmp ne i32 %t6, 0 %t8 = xor i1 %t7, true @@ -29998,7 +30743,7 @@ entry: store %S.ast.Type %p1, ptr %a2 %t3 = load %S.ast.Type, ptr %a2 %t4 = call { ptr, i64, i64 } @finch.gen.typeKey(%S.ast.Type %t3) - store { ptr, i64, i64 } { ptr @.str.1628, i64 12, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.1656, i64 12, i64 0 }, ptr %a6 store { ptr, i64, i64 } %t4, ptr %a7 call void @finch_str_concat(ptr %a5, ptr %a6, ptr %a7) store { ptr, i64, i64 } %t4, ptr %a8 @@ -30007,28 +30752,28 @@ entry: store { ptr, i64, i64 } %t9, ptr %a10 %t11 = load ptr, ptr %a1 %t12 = icmp eq ptr %t11, null - br i1 %t12, label %panic2726, label %ok2727 -panic2726: - call void @finch_panic(ptr @.str.1629, i64 904, ptr @.str.1630) + br i1 %t12, label %panic2785, label %ok2786 +panic2785: + call void @finch_panic(ptr @.str.1657, i64 930, ptr @.str.1658) unreachable -ok2727: - %t13 = getelementptr inbounds %S.gen.Gen, ptr %t11, i32 0, i32 22 +ok2786: + %t13 = getelementptr inbounds %S.gen.Gen, ptr %t11, i32 0, i32 23 %t14 = load { ptr, i64, i64 }, ptr %t13 %t15 = load { ptr, i64, i64 }, ptr %a10 %t16 = call i1 @finch.gen.has({ ptr, i64, i64 } %t14, { ptr, i64, i64 } %t15) - br i1 %t16, label %then2728, label %endif2730 -then2728: + br i1 %t16, label %then2787, label %endif2789 +then2787: %t17 = load { ptr, i64, i64 }, ptr %a10 ret { ptr, i64, i64 } %t17 -endif2730: +endif2789: %t18 = load ptr, ptr %a1 %t19 = icmp eq ptr %t18, null - br i1 %t19, label %panic2731, label %ok2732 -panic2731: - call void @finch_panic(ptr @.str.1631, i64 907, ptr @.str.1632) + br i1 %t19, label %panic2790, label %ok2791 +panic2790: + call void @finch_panic(ptr @.str.1659, i64 933, ptr @.str.1660) unreachable -ok2732: - %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 22 +ok2791: + %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 23 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t20, i32 0, i32 1 %t22 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t22, ptr %a23 @@ -30047,20 +30792,20 @@ ok2732: %t33 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t34 = load { ptr, i64, i64 }, ptr %t33 store { ptr, i64, i64 } %t34, ptr %a35 - store { ptr, i64, i64 } { ptr @.str.1633, i64 5, i64 0 }, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.1661, i64 5, i64 0 }, ptr %a36 %t37 = call i32 @finch_str_eq(ptr %a35, ptr %a36) %t38 = icmp ne i32 %t37, 0 - br i1 %t38, label %then2733, label %else2734 -then2733: + br i1 %t38, label %then2792, label %else2793 +then2792: %t39 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t40 = load { ptr, i64, i64 }, ptr %t39 %t41 = extractvalue { ptr, i64, i64 } %t40, 1 %t42 = icmp uge i64 0, %t41 - br i1 %t42, label %range2736, label %inrange2737 -range2736: - call void @finch_panic_index(ptr @.str.1634, i64 910, i64 0, i64 %t41) + br i1 %t42, label %range2795, label %inrange2796 +range2795: + call void @finch_panic_index(ptr @.str.1662, i64 936, i64 0, i64 %t41) unreachable -inrange2737: +inrange2796: %t43 = extractvalue { ptr, i64, i64 } %t40, 0 %t44 = getelementptr inbounds %S.ast.Type, ptr %t43, i64 0 %t45 = load %S.ast.Type, ptr %t44 @@ -30071,15 +30816,15 @@ inrange2737: %t50 = load ptr, ptr %a1 %t51 = load %S.ast.Type, ptr %a49 %t52 = call i1 @finch.gen.owning(ptr %t50, %S.ast.Type %t51) - br i1 %t52, label %then2738, label %endif2740 -then2738: + br i1 %t52, label %then2797, label %endif2799 +then2797: %t53 = load ptr, ptr %a1 - %t54 = call { ptr, i64, i64 } @finch.gen.load(ptr %t53, { ptr, i64, i64 } { ptr @.str.1635, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.1636, i64 2, i64 0 }) + %t54 = call { ptr, i64, i64 } @finch.gen.load(ptr %t53, { ptr, i64, i64 } { ptr @.str.1663, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.1664, i64 2, i64 0 }) store { ptr, i64, i64 } %t54, ptr %a55 %t56 = load ptr, ptr %a1 %t57 = load ptr, ptr %a1 - %t58 = call { ptr, i64, i64 } @finch.gen.op(ptr %t57, { ptr, i64, i64 } { ptr @.str.1638, i64 62, i64 0 }) - %t59 = call { ptr, i64, i64 } @finch.gen.load(ptr %t56, { ptr, i64, i64 } { ptr @.str.1637, i64 3, i64 0 }, { ptr, i64, i64 } %t58) + %t58 = call { ptr, i64, i64 } @finch.gen.op(ptr %t57, { ptr, i64, i64 } { ptr @.str.1666, i64 62, i64 0 }) + %t59 = call { ptr, i64, i64 } @finch.gen.load(ptr %t56, { ptr, i64, i64 } { ptr @.str.1665, i64 3, i64 0 }, { ptr, i64, i64 } %t58) store { ptr, i64, i64 } %t58, ptr %a60 call void @finch_str_drop(ptr %a60) store { ptr, i64, i64 } %t59, ptr %a61 @@ -30091,14 +30836,14 @@ then2738: %t67 = load ptr, ptr %a1 %t68 = load %S.ast.Type, ptr %a49 %t69 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t67, %S.ast.Type %t68) - store { ptr, i64, i64 } { ptr @.str.1639, i64 23, i64 0 }, ptr %a71 + store { ptr, i64, i64 } { ptr @.str.1667, i64 23, i64 0 }, ptr %a71 store { ptr, i64, i64 } %t69, ptr %a72 call void @finch_str_concat(ptr %a70, ptr %a71, ptr %a72) store { ptr, i64, i64 } %t69, ptr %a73 call void @finch_str_drop(ptr %a73) %t74 = load { ptr, i64, i64 }, ptr %a70 store { ptr, i64, i64 } %t74, ptr %a76 - store { ptr, i64, i64 } { ptr @.str.1640, i64 6, i64 0 }, ptr %a77 + store { ptr, i64, i64 } { ptr @.str.1668, i64 6, i64 0 }, ptr %a77 call void @finch_str_concat(ptr %a75, ptr %a76, ptr %a77) store { ptr, i64, i64 } %t74, ptr %a78 call void @finch_str_drop(ptr %a78) @@ -30111,7 +30856,7 @@ then2738: call void @finch_str_drop(ptr %a84) %t85 = load { ptr, i64, i64 }, ptr %a81 store { ptr, i64, i64 } %t85, ptr %a87 - store { ptr, i64, i64 } { ptr @.str.1641, i64 6, i64 0 }, ptr %a88 + store { ptr, i64, i64 } { ptr @.str.1669, i64 6, i64 0 }, ptr %a88 call void @finch_str_concat(ptr %a86, ptr %a87, ptr %a88) store { ptr, i64, i64 } %t85, ptr %a89 call void @finch_str_drop(ptr %a89) @@ -30119,11 +30864,11 @@ then2738: %t91 = load { ptr, i64, i64 }, ptr %a65 %t92 = extractvalue { ptr, i64, i64 } %t91, 1 %t93 = icmp uge i64 3, %t92 - br i1 %t93, label %range2741, label %inrange2742 -range2741: - call void @finch_panic_index(ptr @.str.1642, i64 915, i64 3, i64 %t92) + br i1 %t93, label %range2800, label %inrange2801 +range2800: + call void @finch_panic_index(ptr @.str.1670, i64 941, i64 3, i64 %t92) unreachable -inrange2742: +inrange2801: %t94 = extractvalue { ptr, i64, i64 } %t91, 0 %t95 = getelementptr inbounds { ptr, i64, i64 }, ptr %t94, i64 3 %t96 = load { ptr, i64, i64 }, ptr %t95 @@ -30148,30 +30893,30 @@ inrange2742: call void @finch.drop.arr_str(ptr %a65) call void @finch_str_drop(ptr %a61) call void @finch_str_drop(ptr %a55) - br label %endif2740 -endif2740: + br label %endif2799 +endif2799: %t110 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t110, { ptr, i64, i64 } { ptr @.str.1643, i64 33, i64 0 }) + call void @finch.gen.emit(ptr %t110, { ptr, i64, i64 } { ptr @.str.1671, i64 33, i64 0 }) call void @finch.drop.S_ast_Type(ptr %a49) - br label %endif2735 -else2734: + br label %endif2794 +else2793: %t111 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t112 = load { ptr, i64, i64 }, ptr %t111 store { ptr, i64, i64 } %t112, ptr %a113 - store { ptr, i64, i64 } { ptr @.str.1644, i64 3, i64 0 }, ptr %a114 + store { ptr, i64, i64 } { ptr @.str.1672, i64 3, i64 0 }, ptr %a114 %t115 = call i32 @finch_str_eq(ptr %a113, ptr %a114) %t116 = icmp ne i32 %t115, 0 - br i1 %t116, label %then2743, label %else2744 -then2743: + br i1 %t116, label %then2802, label %else2803 +then2802: %t117 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t118 = load { ptr, i64, i64 }, ptr %t117 %t119 = extractvalue { ptr, i64, i64 } %t118, 1 %t120 = icmp uge i64 0, %t119 - br i1 %t120, label %range2746, label %inrange2747 -range2746: - call void @finch_panic_index(ptr @.str.1645, i64 921, i64 0, i64 %t119) + br i1 %t120, label %range2805, label %inrange2806 +range2805: + call void @finch_panic_index(ptr @.str.1673, i64 947, i64 0, i64 %t119) unreachable -inrange2747: +inrange2806: %t121 = extractvalue { ptr, i64, i64 } %t118, 0 %t122 = getelementptr inbounds %S.ast.Type, ptr %t121, i64 0 %t123 = load %S.ast.Type, ptr %t122 @@ -30183,11 +30928,11 @@ inrange2747: %t129 = load { ptr, i64, i64 }, ptr %t128 %t130 = extractvalue { ptr, i64, i64 } %t129, 1 %t131 = icmp uge i64 1, %t130 - br i1 %t131, label %range2748, label %inrange2749 -range2748: - call void @finch_panic_index(ptr @.str.1646, i64 922, i64 1, i64 %t130) + br i1 %t131, label %range2807, label %inrange2808 +range2807: + call void @finch_panic_index(ptr @.str.1674, i64 948, i64 1, i64 %t130) unreachable -inrange2749: +inrange2808: %t132 = extractvalue { ptr, i64, i64 } %t129, 0 %t133 = getelementptr inbounds %S.ast.Type, ptr %t132, i64 1 %t134 = load %S.ast.Type, ptr %t133 @@ -30198,33 +30943,33 @@ inrange2749: %t139 = load ptr, ptr %a1 %t140 = load %S.ast.Type, ptr %a127 %t141 = call i1 @finch.gen.owning(ptr %t139, %S.ast.Type %t140) - br label %logic.from2750 -logic.from2750: - br i1 %t141, label %logic.end2752, label %logic.rhs2751 -logic.rhs2751: + br label %logic.from2809 +logic.from2809: + br i1 %t141, label %logic.end2811, label %logic.rhs2810 +logic.rhs2810: %t142 = load ptr, ptr %a1 %t143 = load %S.ast.Type, ptr %a138 %t144 = call i1 @finch.gen.owning(ptr %t142, %S.ast.Type %t143) - br label %logic.rend2753 -logic.rend2753: - br label %logic.end2752 -logic.end2752: - %t145 = phi i1 [ true, %logic.from2750 ], [ %t144, %logic.rend2753 ] - br i1 %t145, label %then2754, label %endif2756 -then2754: + br label %logic.rend2812 +logic.rend2812: + br label %logic.end2811 +logic.end2811: + %t145 = phi i1 [ true, %logic.from2809 ], [ %t144, %logic.rend2812 ] + br i1 %t145, label %then2813, label %endif2815 +then2813: %t146 = load ptr, ptr %a1 %t147 = load ptr, ptr %a1 %t148 = load ptr, ptr %a1 %t149 = load %S.ast.Type, ptr %a2 %t150 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t148, %S.ast.Type %t149) - store { ptr, i64, i64 } { ptr @.str.1648, i64 23, i64 0 }, ptr %a152 + store { ptr, i64, i64 } { ptr @.str.1676, i64 23, i64 0 }, ptr %a152 store { ptr, i64, i64 } %t150, ptr %a153 call void @finch_str_concat(ptr %a151, ptr %a152, ptr %a153) store { ptr, i64, i64 } %t150, ptr %a154 call void @finch_str_drop(ptr %a154) %t155 = load { ptr, i64, i64 }, ptr %a151 store { ptr, i64, i64 } %t155, ptr %a157 - store { ptr, i64, i64 } { ptr @.str.1649, i64 22, i64 0 }, ptr %a158 + store { ptr, i64, i64 } { ptr @.str.1677, i64 22, i64 0 }, ptr %a158 call void @finch_str_concat(ptr %a156, ptr %a157, ptr %a158) store { ptr, i64, i64 } %t155, ptr %a159 call void @finch_str_drop(ptr %a159) @@ -30232,7 +30977,7 @@ then2754: %t161 = call { ptr, i64, i64 } @finch.gen.op(ptr %t147, { ptr, i64, i64 } %t160) store { ptr, i64, i64 } %t160, ptr %a162 call void @finch_str_drop(ptr %a162) - %t163 = call { ptr, i64, i64 } @finch.gen.load(ptr %t146, { ptr, i64, i64 } { ptr @.str.1647, i64 3, i64 0 }, { ptr, i64, i64 } %t161) + %t163 = call { ptr, i64, i64 } @finch.gen.load(ptr %t146, { ptr, i64, i64 } { ptr @.str.1675, i64 3, i64 0 }, { ptr, i64, i64 } %t161) store { ptr, i64, i64 } %t161, ptr %a164 call void @finch_str_drop(ptr %a164) store { ptr, i64, i64 } %t163, ptr %a165 @@ -30245,21 +30990,21 @@ then2754: %t172 = load { ptr, i64, i64 }, ptr %a169 %t173 = extractvalue { ptr, i64, i64 } %t172, 1 %t174 = icmp uge i64 3, %t173 - br i1 %t174, label %range2757, label %inrange2758 -range2757: - call void @finch_panic_index(ptr @.str.1651, i64 926, i64 3, i64 %t173) + br i1 %t174, label %range2816, label %inrange2817 +range2816: + call void @finch_panic_index(ptr @.str.1679, i64 952, i64 3, i64 %t173) unreachable -inrange2758: +inrange2817: %t175 = extractvalue { ptr, i64, i64 } %t172, 0 %t176 = getelementptr inbounds { ptr, i64, i64 }, ptr %t175, i64 3 %t177 = load { ptr, i64, i64 }, ptr %t176 - %t178 = call { ptr, i64, i64 } @finch.gen.entryAt(ptr %t170, { ptr, i64, i64 } { ptr @.str.1650, i64 2, i64 0 }, %S.ast.Type %t171, { ptr, i64, i64 } %t177) + %t178 = call { ptr, i64, i64 } @finch.gen.entryAt(ptr %t170, { ptr, i64, i64 } { ptr @.str.1678, i64 2, i64 0 }, %S.ast.Type %t171, { ptr, i64, i64 } %t177) store { ptr, i64, i64 } %t178, ptr %a179 %t180 = load ptr, ptr %a1 - %t181 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t180, { ptr, i64, i64 } { ptr @.str.1652, i64 10, i64 0 }) + %t181 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t180, { ptr, i64, i64 } { ptr @.str.1680, i64 10, i64 0 }) store { ptr, i64, i64 } %t181, ptr %a182 %t183 = load ptr, ptr %a1 - %t184 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t183, { ptr, i64, i64 } { ptr @.str.1653, i64 10, i64 0 }) + %t184 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t183, { ptr, i64, i64 } { ptr @.str.1681, i64 10, i64 0 }) store { ptr, i64, i64 } %t184, ptr %a185 %t186 = load ptr, ptr %a1 %t187 = load ptr, ptr %a1 @@ -30268,17 +31013,17 @@ inrange2758: %t190 = load { ptr, i64, i64 }, ptr %a179 %t191 = load %S.ast.Type, ptr %a2 %t192 = call { ptr, i64, i64 } @finch.gen.entryField(ptr %t189, { ptr, i64, i64 } %t190, %S.ast.Type %t191, i64 0) - %t193 = call { ptr, i64, i64 } @finch.gen.load(ptr %t188, { ptr, i64, i64 } { ptr @.str.1655, i64 3, i64 0 }, { ptr, i64, i64 } %t192) + %t193 = call { ptr, i64, i64 } @finch.gen.load(ptr %t188, { ptr, i64, i64 } { ptr @.str.1683, i64 3, i64 0 }, { ptr, i64, i64 } %t192) store { ptr, i64, i64 } %t192, ptr %a194 call void @finch_str_drop(ptr %a194) - store { ptr, i64, i64 } { ptr @.str.1654, i64 12, i64 0 }, ptr %a196 + store { ptr, i64, i64 } { ptr @.str.1682, i64 12, i64 0 }, ptr %a196 store { ptr, i64, i64 } %t193, ptr %a197 call void @finch_str_concat(ptr %a195, ptr %a196, ptr %a197) store { ptr, i64, i64 } %t193, ptr %a198 call void @finch_str_drop(ptr %a198) %t199 = load { ptr, i64, i64 }, ptr %a195 store { ptr, i64, i64 } %t199, ptr %a201 - store { ptr, i64, i64 } { ptr @.str.1656, i64 3, i64 0 }, ptr %a202 + store { ptr, i64, i64 } { ptr @.str.1684, i64 3, i64 0 }, ptr %a202 call void @finch_str_concat(ptr %a200, ptr %a201, ptr %a202) store { ptr, i64, i64 } %t199, ptr %a203 call void @finch_str_drop(ptr %a203) @@ -30326,21 +31071,21 @@ inrange2758: call void @finch_str_drop(ptr %a179) call void @finch.drop.arr_str(ptr %a169) call void @finch_str_drop(ptr %a165) - br label %endif2756 -endif2756: + br label %endif2815 +endif2815: %t232 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t232, { ptr, i64, i64 } { ptr @.str.1657, i64 33, i64 0 }) + call void @finch.gen.emit(ptr %t232, { ptr, i64, i64 } { ptr @.str.1685, i64 33, i64 0 }) call void @finch.drop.S_ast_Type(ptr %a138) call void @finch.drop.S_ast_Type(ptr %a127) - br label %endif2745 -else2744: + br label %endif2804 +else2803: %t233 = load ptr, ptr %a1 %t234 = icmp eq ptr %t233, null - br i1 %t234, label %panic2759, label %ok2760 -panic2759: - call void @finch_panic(ptr @.str.1658, i64 939, ptr @.str.1659) + br i1 %t234, label %panic2818, label %ok2819 +panic2818: + call void @finch_panic(ptr @.str.1686, i64 965, ptr @.str.1687) unreachable -ok2760: +ok2819: %t235 = getelementptr inbounds %S.gen.Gen, ptr %t233, i32 0, i32 16 %t236 = load ptr, ptr %a1 %t237 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 @@ -30351,11 +31096,11 @@ ok2760: %t242 = load { ptr, i64, i64 }, ptr %t235 %t243 = extractvalue { ptr, i64, i64 } %t242, 1 %t244 = icmp uge i64 %t241, %t243 - br i1 %t244, label %range2761, label %inrange2762 -range2761: - call void @finch_panic_index(ptr @.str.1660, i64 939, i64 %t241, i64 %t243) + br i1 %t244, label %range2820, label %inrange2821 +range2820: + call void @finch_panic_index(ptr @.str.1688, i64 965, i64 %t241, i64 %t243) unreachable -inrange2762: +inrange2821: %t245 = extractvalue { ptr, i64, i64 } %t242, 0 %t246 = getelementptr inbounds %S.gen.StructDef, ptr %t245, i64 %t241 %t247 = load %S.gen.StructDef, ptr %t246 @@ -30371,38 +31116,38 @@ inrange2762: %t257 = getelementptr inbounds { ptr, i64, i64 }, ptr %t256, i32 0, i32 1 %t258 = load i64, ptr %t257 store i64 0, ptr %a259 - br label %for.cond2763 -for.cond2763: + br label %for.cond2822 +for.cond2822: %t260 = load i64, ptr %a259 %t261 = icmp slt i64 %t260, %t258 - br i1 %t261, label %for.body2764, label %for.end2766 -for.body2764: + br i1 %t261, label %for.body2823, label %for.end2825 +for.body2823: %t262 = load ptr, ptr %a1 %t263 = getelementptr inbounds %S.gen.StructDef, ptr %a251, i32 0, i32 12 %t264 = load i64, ptr %a259 %t265 = load { ptr, i64, i64 }, ptr %t263 %t266 = extractvalue { ptr, i64, i64 } %t265, 1 %t267 = icmp uge i64 %t264, %t266 - br i1 %t267, label %range2767, label %inrange2768 -range2767: - call void @finch_panic_index(ptr @.str.1661, i64 942, i64 %t264, i64 %t266) + br i1 %t267, label %range2826, label %inrange2827 +range2826: + call void @finch_panic_index(ptr @.str.1689, i64 968, i64 %t264, i64 %t266) unreachable -inrange2768: +inrange2827: %t268 = extractvalue { ptr, i64, i64 } %t265, 0 %t269 = getelementptr inbounds %S.ast.Type, ptr %t268, i64 %t264 %t270 = load %S.ast.Type, ptr %t269 %t271 = call i1 @finch.gen.owning(ptr %t262, %S.ast.Type %t270) - br i1 %t271, label %then2769, label %endif2771 -then2769: + br i1 %t271, label %then2828, label %endif2830 +then2828: %t272 = load ptr, ptr %a1 %t273 = load ptr, ptr %a1 %t274 = load { ptr, i64, i64 }, ptr %a255 - store { ptr, i64, i64 } { ptr @.str.1662, i64 23, i64 0 }, ptr %a276 + store { ptr, i64, i64 } { ptr @.str.1690, i64 23, i64 0 }, ptr %a276 store { ptr, i64, i64 } %t274, ptr %a277 call void @finch_str_concat(ptr %a275, ptr %a276, ptr %a277) %t278 = load { ptr, i64, i64 }, ptr %a275 store { ptr, i64, i64 } %t278, ptr %a280 - store { ptr, i64, i64 } { ptr @.str.1663, i64 21, i64 0 }, ptr %a281 + store { ptr, i64, i64 } { ptr @.str.1691, i64 21, i64 0 }, ptr %a281 call void @finch_str_concat(ptr %a279, ptr %a280, ptr %a281) store { ptr, i64, i64 } %t278, ptr %a282 call void @finch_str_drop(ptr %a282) @@ -30412,11 +31157,11 @@ then2769: %t286 = load { ptr, i64, i64 }, ptr %t284 %t287 = extractvalue { ptr, i64, i64 } %t286, 1 %t288 = icmp uge i64 %t285, %t287 - br i1 %t288, label %range2772, label %inrange2773 -range2772: - call void @finch_panic_index(ptr @.str.1664, i64 943, i64 %t285, i64 %t287) + br i1 %t288, label %range2831, label %inrange2832 +range2831: + call void @finch_panic_index(ptr @.str.1692, i64 969, i64 %t285, i64 %t287) unreachable -inrange2773: +inrange2832: %t289 = extractvalue { ptr, i64, i64 } %t286, 0 %t290 = getelementptr inbounds i64, ptr %t289, i64 %t285 %t291 = load i64, ptr %t290 @@ -30438,43 +31183,43 @@ inrange2773: %t304 = load { ptr, i64, i64 }, ptr %t302 %t305 = extractvalue { ptr, i64, i64 } %t304, 1 %t306 = icmp uge i64 %t303, %t305 - br i1 %t306, label %range2774, label %inrange2775 -range2774: - call void @finch_panic_index(ptr @.str.1665, i64 943, i64 %t303, i64 %t305) + br i1 %t306, label %range2833, label %inrange2834 +range2833: + call void @finch_panic_index(ptr @.str.1693, i64 969, i64 %t303, i64 %t305) unreachable -inrange2775: +inrange2834: %t307 = extractvalue { ptr, i64, i64 } %t304, 0 %t308 = getelementptr inbounds %S.ast.Type, ptr %t307, i64 %t303 %t309 = load %S.ast.Type, ptr %t308 call void @finch.gen.dropAt(ptr %t272, { ptr, i64, i64 } %t300, %S.ast.Type %t309) store { ptr, i64, i64 } %t300, ptr %a310 call void @finch_str_drop(ptr %a310) - br label %endif2771 -endif2771: - br label %for.step2765 -for.step2765: + br label %endif2830 +endif2830: + br label %for.step2824 +for.step2824: %t311 = load i64, ptr %a259 %t312 = add i64 %t311, 1 store i64 %t312, ptr %a259 - br label %for.cond2763 -for.end2766: + br label %for.cond2822 +for.end2825: call void @finch_str_drop(ptr %a255) call void @finch.drop.S_gen_StructDef(ptr %a251) - br label %endif2745 -endif2745: - br label %endif2735 -endif2735: + br label %endif2804 +endif2804: + br label %endif2794 +endif2794: %t313 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t313, { ptr, i64, i64 } { ptr @.str.1666, i64 8, i64 0 }) + call void @finch.gen.emit(ptr %t313, { ptr, i64, i64 } { ptr @.str.1694, i64 8, i64 0 }) %t314 = load ptr, ptr %a1 %t315 = load %S.gen.Saved, ptr %a32 %t316 = load { ptr, i64, i64 }, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.1667, i64 21, i64 0 }, ptr %a318 + store { ptr, i64, i64 } { ptr @.str.1695, i64 21, i64 0 }, ptr %a318 store { ptr, i64, i64 } %t316, ptr %a319 call void @finch_str_concat(ptr %a317, ptr %a318, ptr %a319) %t320 = load { ptr, i64, i64 }, ptr %a317 store { ptr, i64, i64 } %t320, ptr %a322 - store { ptr, i64, i64 } { ptr @.str.1668, i64 8, i64 0 }, ptr %a323 + store { ptr, i64, i64 } { ptr @.str.1696, i64 8, i64 0 }, ptr %a323 call void @finch_str_concat(ptr %a321, ptr %a322, ptr %a323) store { ptr, i64, i64 } %t320, ptr %a324 call void @finch_str_drop(ptr %a324) @@ -30499,54 +31244,54 @@ entry: store %S.gen.Val %p1, ptr %a2 %t3 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 2 %t4 = load i1, ptr %t3 - br label %logic.from2776 -logic.from2776: - br i1 %t4, label %logic.rhs2777, label %logic.end2778 -logic.rhs2777: + br label %logic.from2835 +logic.from2835: + br i1 %t4, label %logic.rhs2836, label %logic.end2837 +logic.rhs2836: %t5 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t7 = load i64, ptr %t6 %t8 = icmp sgt i64 %t7, 0 - br label %logic.rend2779 -logic.rend2779: - br label %logic.end2778 -logic.end2778: - %t9 = phi i1 [ false, %logic.from2776 ], [ %t8, %logic.rend2779 ] - br label %logic.from2780 -logic.from2780: - br i1 %t9, label %logic.rhs2781, label %logic.end2782 -logic.rhs2781: + br label %logic.rend2838 +logic.rend2838: + br label %logic.end2837 +logic.end2837: + %t9 = phi i1 [ false, %logic.from2835 ], [ %t8, %logic.rend2838 ] + br label %logic.from2839 +logic.from2839: + br i1 %t9, label %logic.rhs2840, label %logic.end2841 +logic.rhs2840: %t10 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t11 = load { ptr, i64, i64 }, ptr %t10 %t12 = call i1 @finch.gen.isConstant({ ptr, i64, i64 } %t11) %t13 = xor i1 %t12, true - br label %logic.rend2783 -logic.rend2783: - br label %logic.end2782 -logic.end2782: - %t14 = phi i1 [ false, %logic.from2780 ], [ %t13, %logic.rend2783 ] - br label %logic.from2784 -logic.from2784: - br i1 %t14, label %logic.rhs2785, label %logic.end2786 -logic.rhs2785: + br label %logic.rend2842 +logic.rend2842: + br label %logic.end2841 +logic.end2841: + %t14 = phi i1 [ false, %logic.from2839 ], [ %t13, %logic.rend2842 ] + br label %logic.from2843 +logic.from2843: + br i1 %t14, label %logic.rhs2844, label %logic.end2845 +logic.rhs2844: %t15 = load ptr, ptr %a1 %t16 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t17 = load %S.ast.Type, ptr %t16 %t18 = call i1 @finch.gen.owning(ptr %t15, %S.ast.Type %t17) - br label %logic.rend2787 -logic.rend2787: - br label %logic.end2786 -logic.end2786: - %t19 = phi i1 [ false, %logic.from2784 ], [ %t18, %logic.rend2787 ] - br i1 %t19, label %then2788, label %endif2790 -then2788: + br label %logic.rend2846 +logic.rend2846: + br label %logic.end2845 +logic.end2845: + %t19 = phi i1 [ false, %logic.from2843 ], [ %t18, %logic.rend2846 ] + br i1 %t19, label %then2847, label %endif2849 +then2847: %t20 = load ptr, ptr %a1 %t21 = icmp eq ptr %t20, null - br i1 %t21, label %panic2791, label %ok2792 -panic2791: - call void @finch_panic(ptr @.str.1669, i64 956, ptr @.str.1670) + br i1 %t21, label %panic2850, label %ok2851 +panic2850: + call void @finch_panic(ptr @.str.1697, i64 982, ptr @.str.1698) unreachable -ok2792: +ok2851: %t22 = getelementptr inbounds %S.gen.Gen, ptr %t20, i32 0, i32 11 %t23 = getelementptr inbounds { ptr, i64, i64 }, ptr %t22, i32 0, i32 1 %t24 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 @@ -30569,8 +31314,8 @@ ok2792: %t40 = getelementptr inbounds %S.gen.Pending, ptr %t39, i64 %t37 store %S.gen.Pending %t36, ptr %t40 store i64 %t38, ptr %t23 - br label %endif2790 -endif2790: + br label %endif2849 +endif2849: ret void } @@ -30589,15 +31334,15 @@ entry: %t4 = load ptr, ptr %a1 %t5 = load %S.ast.Type, ptr %a3 %t6 = call i1 @finch.gen.owning(ptr %t4, %S.ast.Type %t5) - br i1 %t6, label %then2793, label %endif2795 -then2793: + br i1 %t6, label %then2852, label %endif2854 +then2852: %t7 = load ptr, ptr %a1 %t8 = icmp eq ptr %t7, null - br i1 %t8, label %panic2796, label %ok2797 -panic2796: - call void @finch_panic(ptr @.str.1671, i64 962, ptr @.str.1672) + br i1 %t8, label %panic2855, label %ok2856 +panic2855: + call void @finch_panic(ptr @.str.1699, i64 988, ptr @.str.1700) unreachable -ok2797: +ok2856: %t9 = getelementptr inbounds %S.gen.Gen, ptr %t7, i32 0, i32 11 %t10 = getelementptr inbounds { ptr, i64, i64 }, ptr %t9, i32 0, i32 1 %t11 = load { ptr, i64, i64 }, ptr %a2 @@ -30618,8 +31363,8 @@ ok2797: %t25 = getelementptr inbounds %S.gen.Pending, ptr %t24, i64 %t22 store %S.gen.Pending %t21, ptr %t25 store i64 %t23, ptr %t10 - br label %endif2795 -endif2795: + br label %endif2854 +endif2854: ret void } @@ -30659,42 +31404,42 @@ entry: store i64 %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic2798, label %ok2799 -panic2798: - call void @finch_panic(ptr @.str.1673, i64 968, ptr @.str.1674) + br i1 %t4, label %panic2857, label %ok2858 +panic2857: + call void @finch_panic(ptr @.str.1701, i64 994, ptr @.str.1702) unreachable -ok2799: +ok2858: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 11 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t7 = load i64, ptr %t6 store i64 %t7, ptr %a8 - br label %while.cond2800 -while.cond2800: + br label %while.cond2859 +while.cond2859: %t9 = load i64, ptr %a8 %t10 = load i64, ptr %a2 %t11 = icmp sgt i64 %t9, %t10 - br i1 %t11, label %while.body2801, label %while.end2802 -while.body2801: + br i1 %t11, label %while.body2860, label %while.end2861 +while.body2860: %t12 = load i64, ptr %a8 %t13 = sub i64 %t12, 1 store i64 %t13, ptr %a8 %t14 = load ptr, ptr %a1 %t15 = icmp eq ptr %t14, null - br i1 %t15, label %panic2803, label %ok2804 -panic2803: - call void @finch_panic(ptr @.str.1675, i64 971, ptr @.str.1676) + br i1 %t15, label %panic2862, label %ok2863 +panic2862: + call void @finch_panic(ptr @.str.1703, i64 997, ptr @.str.1704) unreachable -ok2804: +ok2863: %t16 = getelementptr inbounds %S.gen.Gen, ptr %t14, i32 0, i32 11 %t17 = load i64, ptr %a8 %t18 = load { ptr, i64, i64 }, ptr %t16 %t19 = extractvalue { ptr, i64, i64 } %t18, 1 %t20 = icmp uge i64 %t17, %t19 - br i1 %t20, label %range2805, label %inrange2806 -range2805: - call void @finch_panic_index(ptr @.str.1677, i64 971, i64 %t17, i64 %t19) + br i1 %t20, label %range2864, label %inrange2865 +range2864: + call void @finch_panic_index(ptr @.str.1705, i64 997, i64 %t17, i64 %t19) unreachable -inrange2806: +inrange2865: %t21 = extractvalue { ptr, i64, i64 } %t18, 0 %t22 = getelementptr inbounds %S.gen.Pending, ptr %t21, i64 %t17 %t23 = load %S.gen.Pending, ptr %t22 @@ -30704,27 +31449,27 @@ inrange2806: store %S.gen.Pending %t26, ptr %a27 %t28 = getelementptr inbounds %S.gen.Pending, ptr %a27, i32 0, i32 2 %t29 = load i1, ptr %t28 - br i1 %t29, label %then2807, label %else2808 -then2807: + br i1 %t29, label %then2866, label %else2867 +then2866: %t30 = load ptr, ptr %a1 %t31 = getelementptr inbounds %S.gen.Pending, ptr %a27, i32 0, i32 0 %t32 = load { ptr, i64, i64 }, ptr %t31 %t33 = getelementptr inbounds %S.gen.Pending, ptr %a27, i32 0, i32 1 %t34 = load %S.ast.Type, ptr %t33 call void @finch.gen.dropAt(ptr %t30, { ptr, i64, i64 } %t32, %S.ast.Type %t34) - br label %endif2809 -else2808: + br label %endif2868 +else2867: %t35 = load ptr, ptr %a1 %t36 = getelementptr inbounds %S.gen.Pending, ptr %a27, i32 0, i32 0 %t37 = load { ptr, i64, i64 }, ptr %t36 %t38 = getelementptr inbounds %S.gen.Pending, ptr %a27, i32 0, i32 1 %t39 = load %S.ast.Type, ptr %t38 call void @finch.gen.dropValue(ptr %t35, { ptr, i64, i64 } %t37, %S.ast.Type %t39) - br label %endif2809 -endif2809: + br label %endif2868 +endif2868: call void @finch.drop.S_gen_Pending(ptr %a27) - br label %while.cond2800 -while.end2802: + br label %while.cond2859 +while.end2861: ret void } @@ -30735,38 +31480,38 @@ entry: %a20 = alloca %S.gen.Pending, align 16 store ptr %p0, ptr %a1 store i64 %p1, ptr %a2 - br label %while.cond2810 -while.cond2810: + br label %while.cond2869 +while.cond2869: %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic2813, label %ok2814 -panic2813: - call void @finch_panic(ptr @.str.1678, i64 982, ptr @.str.1679) + br i1 %t4, label %panic2872, label %ok2873 +panic2872: + call void @finch_panic(ptr @.str.1706, i64 1008, ptr @.str.1707) unreachable -ok2814: +ok2873: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 11 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t7 = load i64, ptr %t6 %t8 = load i64, ptr %a2 %t9 = icmp sgt i64 %t7, %t8 - br i1 %t9, label %while.body2811, label %while.end2812 -while.body2811: + br i1 %t9, label %while.body2870, label %while.end2871 +while.body2870: %t10 = load ptr, ptr %a1 %t11 = icmp eq ptr %t10, null - br i1 %t11, label %panic2815, label %ok2816 -panic2815: - call void @finch_panic(ptr @.str.1680, i64 983, ptr @.str.1681) + br i1 %t11, label %panic2874, label %ok2875 +panic2874: + call void @finch_panic(ptr @.str.1708, i64 1009, ptr @.str.1709) unreachable -ok2816: +ok2875: %t12 = getelementptr inbounds %S.gen.Gen, ptr %t10, i32 0, i32 11 %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %t12, i32 0, i32 1 %t14 = load i64, ptr %t13 %t15 = icmp eq i64 %t14, 0 - br i1 %t15, label %panic2817, label %ok2818 -panic2817: - call void @finch_panic(ptr @.str.1682, i64 983, ptr @.str.1683) + br i1 %t15, label %panic2876, label %ok2877 +panic2876: + call void @finch_panic(ptr @.str.1710, i64 1009, ptr @.str.1711) unreachable -ok2818: +ok2877: %t16 = sub i64 %t14, 1 %t17 = load ptr, ptr %t12 %t18 = getelementptr inbounds %S.gen.Pending, ptr %t17, i64 %t16 @@ -30774,8 +31519,8 @@ ok2818: store i64 %t16, ptr %t13 store %S.gen.Pending %t19, ptr %a20 call void @finch.drop.S_gen_Pending(ptr %a20) - br label %while.cond2810 -while.end2812: + br label %while.cond2869 +while.end2871: ret void } @@ -30792,26 +31537,26 @@ entry: %t5 = load %S.ast.Type, ptr %t4 %t6 = call i1 @finch.gen.owning(ptr %t3, %S.ast.Type %t5) %t7 = xor i1 %t6, true - br label %logic.from2819 -logic.from2819: - br i1 %t7, label %logic.end2821, label %logic.rhs2820 -logic.rhs2820: + br label %logic.from2878 +logic.from2878: + br i1 %t7, label %logic.end2880, label %logic.rhs2879 +logic.rhs2879: %t8 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 2 %t9 = load i1, ptr %t8 - br label %logic.rend2822 -logic.rend2822: - br label %logic.end2821 -logic.end2821: - %t10 = phi i1 [ true, %logic.from2819 ], [ %t9, %logic.rend2822 ] - br i1 %t10, label %then2823, label %endif2825 -then2823: + br label %logic.rend2881 +logic.rend2881: + br label %logic.end2880 +logic.end2880: + %t10 = phi i1 [ true, %logic.from2878 ], [ %t9, %logic.rend2881 ] + br i1 %t10, label %then2882, label %endif2884 +then2882: %t11 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t12 = load { ptr, i64, i64 }, ptr %t11 store { ptr, i64, i64 } %t12, ptr %a13 call void @finch_str_copy(ptr %a14, ptr %a13) %t15 = load { ptr, i64, i64 }, ptr %a14 ret { ptr, i64, i64 } %t15 -endif2825: +endif2884: %t16 = load ptr, ptr %a1 %t17 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t18 = load { ptr, i64, i64 }, ptr %t17 @@ -30859,14 +31604,14 @@ entry: %t8 = load ptr, ptr %a1 %t9 = call { ptr, i64, i64 } @finch.gen.tmpName(ptr %t8) store { ptr, i64, i64 } %t9, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.1684, i64 0, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.1712, i64 0, i64 0 }, ptr %a11 %t12 = getelementptr inbounds { ptr, i64, i64 }, ptr %a3, i32 0, i32 1 %t13 = load i64, ptr %t12 %t14 = icmp sgt i64 %t13, 0 - br i1 %t14, label %then2826, label %endif2828 -then2826: + br i1 %t14, label %then2885, label %endif2887 +then2885: %t15 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.1685, i64 2, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.1713, i64 2, i64 0 }, ptr %a17 store { ptr, i64, i64 } %t15, ptr %a18 call void @finch_str_concat(ptr %a16, ptr %a17, ptr %a18) %t19 = load { ptr, i64, i64 }, ptr %a16 @@ -30874,12 +31619,12 @@ then2826: store { ptr, i64, i64 } %t19, ptr %a11 store { ptr, i64, i64 } %t20, ptr %a21 call void @finch_str_drop(ptr %a21) - br label %endif2828 -endif2828: + br label %endif2887 +endif2887: %t22 = load ptr, ptr %a1 %t23 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t23, ptr %a25 - store { ptr, i64, i64 } { ptr @.str.1686, i64 35, i64 0 }, ptr %a26 + store { ptr, i64, i64 } { ptr @.str.1714, i64 35, i64 0 }, ptr %a26 call void @finch_str_concat(ptr %a24, ptr %a25, ptr %a26) %t27 = load { ptr, i64, i64 }, ptr %a24 %t28 = load { ptr, i64, i64 }, ptr %a7 @@ -30897,7 +31642,7 @@ endif2828: call void @finch_str_drop(ptr %a38) %t39 = load { ptr, i64, i64 }, ptr %a35 store { ptr, i64, i64 } %t39, ptr %a41 - store { ptr, i64, i64 } { ptr @.str.1687, i64 1, i64 0 }, ptr %a42 + store { ptr, i64, i64 } { ptr @.str.1715, i64 1, i64 0 }, ptr %a42 call void @finch_str_concat(ptr %a40, ptr %a41, ptr %a42) store { ptr, i64, i64 } %t39, ptr %a43 call void @finch_str_drop(ptr %a43) @@ -30958,12 +31703,12 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1688, i64 31, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.1716, i64 31, i64 0 }, ptr %a6 store { ptr, i64, i64 } %t4, ptr %a7 call void @finch_str_concat(ptr %a5, ptr %a6, ptr %a7) %t8 = load { ptr, i64, i64 }, ptr %a5 store { ptr, i64, i64 } %t8, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.1689, i64 3, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.1717, i64 3, i64 0 }, ptr %a11 call void @finch_str_concat(ptr %a9, ptr %a10, ptr %a11) store { ptr, i64, i64 } %t8, ptr %a12 call void @finch_str_drop(ptr %a12) @@ -30974,12 +31719,12 @@ entry: store { ptr, i64, i64 } %t14, ptr %a16 %t17 = load ptr, ptr %a1 %t18 = load { ptr, i64, i64 }, ptr %a16 - store { ptr, i64, i64 } { ptr @.str.1690, i64 12, i64 0 }, ptr %a20 + store { ptr, i64, i64 } { ptr @.str.1718, i64 12, i64 0 }, ptr %a20 store { ptr, i64, i64 } %t18, ptr %a21 call void @finch_str_concat(ptr %a19, ptr %a20, ptr %a21) %t22 = load { ptr, i64, i64 }, ptr %a19 store { ptr, i64, i64 } %t22, ptr %a24 - store { ptr, i64, i64 } { ptr @.str.1691, i64 6, i64 0 }, ptr %a25 + store { ptr, i64, i64 } { ptr @.str.1719, i64 6, i64 0 }, ptr %a25 call void @finch_str_concat(ptr %a23, ptr %a24, ptr %a25) store { ptr, i64, i64 } %t22, ptr %a26 call void @finch_str_drop(ptr %a26) @@ -30989,16 +31734,16 @@ entry: call void @finch_str_drop(ptr %a29) store { ptr, i64, i64 } %t28, ptr %a30 %t31 = load ptr, ptr %a1 - %t32 = call { ptr, i64, i64 } @finch.gen.strGlobal(ptr %t31, { ptr, i64, i64 } { ptr @.str.1692, i64 0, i64 0 }) + %t32 = call { ptr, i64, i64 } @finch.gen.strGlobal(ptr %t31, { ptr, i64, i64 } { ptr @.str.1720, i64 0, i64 0 }) store { ptr, i64, i64 } %t32, ptr %a33 %t34 = load ptr, ptr %a1 %t35 = load { ptr, i64, i64 }, ptr %a30 - store { ptr, i64, i64 } { ptr @.str.1693, i64 10, i64 0 }, ptr %a37 + store { ptr, i64, i64 } { ptr @.str.1721, i64 10, i64 0 }, ptr %a37 store { ptr, i64, i64 } %t35, ptr %a38 call void @finch_str_concat(ptr %a36, ptr %a37, ptr %a38) %t39 = load { ptr, i64, i64 }, ptr %a36 store { ptr, i64, i64 } %t39, ptr %a41 - store { ptr, i64, i64 } { ptr @.str.1694, i64 6, i64 0 }, ptr %a42 + store { ptr, i64, i64 } { ptr @.str.1722, i64 6, i64 0 }, ptr %a42 call void @finch_str_concat(ptr %a40, ptr %a41, ptr %a42) store { ptr, i64, i64 } %t39, ptr %a43 call void @finch_str_drop(ptr %a43) @@ -31011,7 +31756,7 @@ entry: call void @finch_str_drop(ptr %a49) %t50 = load { ptr, i64, i64 }, ptr %a46 store { ptr, i64, i64 } %t50, ptr %a52 - store { ptr, i64, i64 } { ptr @.str.1695, i64 6, i64 0 }, ptr %a53 + store { ptr, i64, i64 } { ptr @.str.1723, i64 6, i64 0 }, ptr %a53 call void @finch_str_concat(ptr %a51, ptr %a52, ptr %a53) store { ptr, i64, i64 } %t50, ptr %a54 call void @finch_str_drop(ptr %a54) @@ -31202,88 +31947,88 @@ entry: store { ptr, i64, i64 } %t9, ptr %a10 %t11 = load %S.ast.Type, ptr %a3 %t12 = call i1 @finch.gen.isSigned(%S.ast.Type %t11) - br i1 %t12, label %then2829, label %else2830 -then2829: + br i1 %t12, label %then2888, label %else2889 +then2888: %t13 = load ptr, ptr %a1 %t14 = load ptr, ptr %a1 %t15 = load { ptr, i64, i64 }, ptr %a2 %t16 = load %S.ast.Type, ptr %a3 - %t17 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.1698, i64 3, i64 0 }) + %t17 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.1726, i64 3, i64 0 }) %t18 = call { ptr, i64, i64 } @finch.gen.intCast(ptr %t14, { ptr, i64, i64 } %t15, %S.ast.Type %t16, %S.ast.Type %t17) store %S.ast.Type %t17, ptr %a19 call void @finch.drop.S_ast_Type(ptr %a19) - store { ptr, i64, i64 } { ptr @.str.1697, i64 4, i64 0 }, ptr %a21 + store { ptr, i64, i64 } { ptr @.str.1725, i64 4, i64 0 }, ptr %a21 store { ptr, i64, i64 } %t18, ptr %a22 call void @finch_str_concat(ptr %a20, ptr %a21, ptr %a22) store { ptr, i64, i64 } %t18, ptr %a23 call void @finch_str_drop(ptr %a23) %t24 = load { ptr, i64, i64 }, ptr %a20 - call void @finch.gen.printf(ptr %t13, { ptr, i64, i64 } { ptr @.str.1696, i64 4, i64 0 }, { ptr, i64, i64 } %t24) + call void @finch.gen.printf(ptr %t13, { ptr, i64, i64 } { ptr @.str.1724, i64 4, i64 0 }, { ptr, i64, i64 } %t24) store { ptr, i64, i64 } %t24, ptr %a25 call void @finch_str_drop(ptr %a25) - br label %endif2831 -else2830: + br label %endif2890 +else2889: %t26 = load %S.ast.Type, ptr %a3 %t27 = call i1 @finch.gen.isUnsigned(%S.ast.Type %t26) - br i1 %t27, label %then2832, label %else2833 -then2832: + br i1 %t27, label %then2891, label %else2892 +then2891: %t28 = load ptr, ptr %a1 %t29 = load ptr, ptr %a1 %t30 = load { ptr, i64, i64 }, ptr %a2 %t31 = load %S.ast.Type, ptr %a3 - %t32 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.1701, i64 3, i64 0 }) + %t32 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.1729, i64 3, i64 0 }) %t33 = call { ptr, i64, i64 } @finch.gen.intCast(ptr %t29, { ptr, i64, i64 } %t30, %S.ast.Type %t31, %S.ast.Type %t32) store %S.ast.Type %t32, ptr %a34 call void @finch.drop.S_ast_Type(ptr %a34) - store { ptr, i64, i64 } { ptr @.str.1700, i64 4, i64 0 }, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.1728, i64 4, i64 0 }, ptr %a36 store { ptr, i64, i64 } %t33, ptr %a37 call void @finch_str_concat(ptr %a35, ptr %a36, ptr %a37) store { ptr, i64, i64 } %t33, ptr %a38 call void @finch_str_drop(ptr %a38) %t39 = load { ptr, i64, i64 }, ptr %a35 - call void @finch.gen.printf(ptr %t28, { ptr, i64, i64 } { ptr @.str.1699, i64 4, i64 0 }, { ptr, i64, i64 } %t39) + call void @finch.gen.printf(ptr %t28, { ptr, i64, i64 } { ptr @.str.1727, i64 4, i64 0 }, { ptr, i64, i64 } %t39) store { ptr, i64, i64 } %t39, ptr %a40 call void @finch_str_drop(ptr %a40) - br label %endif2834 -else2833: + br label %endif2893 +else2892: %t41 = load %S.ast.Type, ptr %a3 %t42 = call i1 @finch.gen.isFloat(%S.ast.Type %t41) - br i1 %t42, label %then2835, label %else2836 -then2835: + br i1 %t42, label %then2894, label %else2895 +then2894: %t43 = load ptr, ptr %a1 %t44 = load ptr, ptr %a1 %t45 = load { ptr, i64, i64 }, ptr %a2 %t46 = load %S.ast.Type, ptr %a3 - %t47 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.1704, i64 5, i64 0 }) + %t47 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.1732, i64 5, i64 0 }) %t48 = call { ptr, i64, i64 } @finch.gen.floatCast(ptr %t44, { ptr, i64, i64 } %t45, %S.ast.Type %t46, %S.ast.Type %t47) store %S.ast.Type %t47, ptr %a49 call void @finch.drop.S_ast_Type(ptr %a49) - store { ptr, i64, i64 } { ptr @.str.1703, i64 7, i64 0 }, ptr %a51 + store { ptr, i64, i64 } { ptr @.str.1731, i64 7, i64 0 }, ptr %a51 store { ptr, i64, i64 } %t48, ptr %a52 call void @finch_str_concat(ptr %a50, ptr %a51, ptr %a52) store { ptr, i64, i64 } %t48, ptr %a53 call void @finch_str_drop(ptr %a53) %t54 = load { ptr, i64, i64 }, ptr %a50 - call void @finch.gen.printf(ptr %t43, { ptr, i64, i64 } { ptr @.str.1702, i64 2, i64 0 }, { ptr, i64, i64 } %t54) + call void @finch.gen.printf(ptr %t43, { ptr, i64, i64 } { ptr @.str.1730, i64 2, i64 0 }, { ptr, i64, i64 } %t54) store { ptr, i64, i64 } %t54, ptr %a55 call void @finch_str_drop(ptr %a55) - br label %endif2837 -else2836: + br label %endif2896 +else2895: %t56 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t56, ptr %a57 - store { ptr, i64, i64 } { ptr @.str.1705, i64 4, i64 0 }, ptr %a58 + store { ptr, i64, i64 } { ptr @.str.1733, i64 4, i64 0 }, ptr %a58 %t59 = call i32 @finch_str_eq(ptr %a57, ptr %a58) %t60 = icmp ne i32 %t59, 0 - br i1 %t60, label %then2838, label %else2839 -then2838: + br i1 %t60, label %then2897, label %else2898 +then2897: %t61 = load ptr, ptr %a1 %t62 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1706, i64 8, i64 0 }, ptr %a64 + store { ptr, i64, i64 } { ptr @.str.1734, i64 8, i64 0 }, ptr %a64 store { ptr, i64, i64 } %t62, ptr %a65 call void @finch_str_concat(ptr %a63, ptr %a64, ptr %a65) %t66 = load { ptr, i64, i64 }, ptr %a63 store { ptr, i64, i64 } %t66, ptr %a68 - store { ptr, i64, i64 } { ptr @.str.1707, i64 7, i64 0 }, ptr %a69 + store { ptr, i64, i64 } { ptr @.str.1735, i64 7, i64 0 }, ptr %a69 call void @finch_str_concat(ptr %a67, ptr %a68, ptr %a69) store { ptr, i64, i64 } %t66, ptr %a70 call void @finch_str_drop(ptr %a70) @@ -31293,54 +32038,54 @@ then2838: call void @finch_str_drop(ptr %a73) store { ptr, i64, i64 } %t72, ptr %a74 %t75 = load i1, ptr %a4 - br i1 %t75, label %then2841, label %else2842 -then2841: + br i1 %t75, label %then2900, label %else2901 +then2900: %t76 = load ptr, ptr %a1 %t77 = load { ptr, i64, i64 }, ptr %a74 - store { ptr, i64, i64 } { ptr @.str.1709, i64 4, i64 0 }, ptr %a79 + store { ptr, i64, i64 } { ptr @.str.1737, i64 4, i64 0 }, ptr %a79 store { ptr, i64, i64 } %t77, ptr %a80 call void @finch_str_concat(ptr %a78, ptr %a79, ptr %a80) %t81 = load { ptr, i64, i64 }, ptr %a78 - call void @finch.gen.printf(ptr %t76, { ptr, i64, i64 } { ptr @.str.1708, i64 4, i64 0 }, { ptr, i64, i64 } %t81) + call void @finch.gen.printf(ptr %t76, { ptr, i64, i64 } { ptr @.str.1736, i64 4, i64 0 }, { ptr, i64, i64 } %t81) store { ptr, i64, i64 } %t81, ptr %a82 call void @finch_str_drop(ptr %a82) - br label %endif2843 -else2842: + br label %endif2902 +else2901: %t83 = load ptr, ptr %a1 %t84 = load { ptr, i64, i64 }, ptr %a74 - store { ptr, i64, i64 } { ptr @.str.1711, i64 4, i64 0 }, ptr %a86 + store { ptr, i64, i64 } { ptr @.str.1739, i64 4, i64 0 }, ptr %a86 store { ptr, i64, i64 } %t84, ptr %a87 call void @finch_str_concat(ptr %a85, ptr %a86, ptr %a87) %t88 = load { ptr, i64, i64 }, ptr %a85 - call void @finch.gen.printf(ptr %t83, { ptr, i64, i64 } { ptr @.str.1710, i64 2, i64 0 }, { ptr, i64, i64 } %t88) + call void @finch.gen.printf(ptr %t83, { ptr, i64, i64 } { ptr @.str.1738, i64 2, i64 0 }, { ptr, i64, i64 } %t88) store { ptr, i64, i64 } %t88, ptr %a89 call void @finch_str_drop(ptr %a89) - br label %endif2843 -endif2843: + br label %endif2902 +endif2902: call void @finch_str_drop(ptr %a74) - br label %endif2840 -else2839: + br label %endif2899 +else2898: %t90 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t90, ptr %a91 - store { ptr, i64, i64 } { ptr @.str.1712, i64 4, i64 0 }, ptr %a92 + store { ptr, i64, i64 } { ptr @.str.1740, i64 4, i64 0 }, ptr %a92 %t93 = call i32 @finch_str_eq(ptr %a91, ptr %a92) %t94 = icmp ne i32 %t93, 0 - br i1 %t94, label %then2844, label %else2845 -then2844: + br i1 %t94, label %then2903, label %else2904 +then2903: %t95 = load ptr, ptr %a1 - %t96 = call { ptr, i64, i64 } @finch.gen.strGlobal(ptr %t95, { ptr, i64, i64 } { ptr @.str.1713, i64 4, i64 0 }) + %t96 = call { ptr, i64, i64 } @finch.gen.strGlobal(ptr %t95, { ptr, i64, i64 } { ptr @.str.1741, i64 4, i64 0 }) store { ptr, i64, i64 } %t96, ptr %a97 %t98 = load ptr, ptr %a1 - %t99 = call { ptr, i64, i64 } @finch.gen.strGlobal(ptr %t98, { ptr, i64, i64 } { ptr @.str.1714, i64 5, i64 0 }) + %t99 = call { ptr, i64, i64 } @finch.gen.strGlobal(ptr %t98, { ptr, i64, i64 } { ptr @.str.1742, i64 5, i64 0 }) store { ptr, i64, i64 } %t99, ptr %a100 %t101 = load ptr, ptr %a1 %t102 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1715, i64 10, i64 0 }, ptr %a104 + store { ptr, i64, i64 } { ptr @.str.1743, i64 10, i64 0 }, ptr %a104 store { ptr, i64, i64 } %t102, ptr %a105 call void @finch_str_concat(ptr %a103, ptr %a104, ptr %a105) %t106 = load { ptr, i64, i64 }, ptr %a103 store { ptr, i64, i64 } %t106, ptr %a108 - store { ptr, i64, i64 } { ptr @.str.1716, i64 6, i64 0 }, ptr %a109 + store { ptr, i64, i64 } { ptr @.str.1744, i64 6, i64 0 }, ptr %a109 call void @finch_str_concat(ptr %a107, ptr %a108, ptr %a109) store { ptr, i64, i64 } %t106, ptr %a110 call void @finch_str_drop(ptr %a110) @@ -31353,7 +32098,7 @@ then2844: call void @finch_str_drop(ptr %a116) %t117 = load { ptr, i64, i64 }, ptr %a113 store { ptr, i64, i64 } %t117, ptr %a119 - store { ptr, i64, i64 } { ptr @.str.1717, i64 6, i64 0 }, ptr %a120 + store { ptr, i64, i64 } { ptr @.str.1745, i64 6, i64 0 }, ptr %a120 call void @finch_str_concat(ptr %a118, ptr %a119, ptr %a120) store { ptr, i64, i64 } %t117, ptr %a121 call void @finch_str_drop(ptr %a121) @@ -31371,33 +32116,33 @@ then2844: store { ptr, i64, i64 } %t129, ptr %a131 %t132 = load ptr, ptr %a1 %t133 = load { ptr, i64, i64 }, ptr %a131 - store { ptr, i64, i64 } { ptr @.str.1719, i64 4, i64 0 }, ptr %a135 + store { ptr, i64, i64 } { ptr @.str.1747, i64 4, i64 0 }, ptr %a135 store { ptr, i64, i64 } %t133, ptr %a136 call void @finch_str_concat(ptr %a134, ptr %a135, ptr %a136) %t137 = load { ptr, i64, i64 }, ptr %a134 - call void @finch.gen.printf(ptr %t132, { ptr, i64, i64 } { ptr @.str.1718, i64 2, i64 0 }, { ptr, i64, i64 } %t137) + call void @finch.gen.printf(ptr %t132, { ptr, i64, i64 } { ptr @.str.1746, i64 2, i64 0 }, { ptr, i64, i64 } %t137) store { ptr, i64, i64 } %t137, ptr %a138 call void @finch_str_drop(ptr %a138) call void @finch_str_drop(ptr %a131) call void @finch_str_drop(ptr %a100) call void @finch_str_drop(ptr %a97) - br label %endif2846 -else2845: + br label %endif2905 +else2904: %t139 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t139, ptr %a140 - store { ptr, i64, i64 } { ptr @.str.1720, i64 3, i64 0 }, ptr %a141 + store { ptr, i64, i64 } { ptr @.str.1748, i64 3, i64 0 }, ptr %a141 %t142 = call i32 @finch_str_eq(ptr %a140, ptr %a141) %t143 = icmp ne i32 %t142, 0 - br i1 %t143, label %then2847, label %else2848 -then2847: + br i1 %t143, label %then2906, label %else2907 +then2906: %t144 = load ptr, ptr %a1 %t145 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1721, i64 31, i64 0 }, ptr %a147 + store { ptr, i64, i64 } { ptr @.str.1749, i64 31, i64 0 }, ptr %a147 store { ptr, i64, i64 } %t145, ptr %a148 call void @finch_str_concat(ptr %a146, ptr %a147, ptr %a148) %t149 = load { ptr, i64, i64 }, ptr %a146 store { ptr, i64, i64 } %t149, ptr %a151 - store { ptr, i64, i64 } { ptr @.str.1722, i64 3, i64 0 }, ptr %a152 + store { ptr, i64, i64 } { ptr @.str.1750, i64 3, i64 0 }, ptr %a152 call void @finch_str_concat(ptr %a150, ptr %a151, ptr %a152) store { ptr, i64, i64 } %t149, ptr %a153 call void @finch_str_drop(ptr %a153) @@ -31408,12 +32153,12 @@ then2847: store { ptr, i64, i64 } %t155, ptr %a157 %t158 = load ptr, ptr %a1 %t159 = load { ptr, i64, i64 }, ptr %a157 - store { ptr, i64, i64 } { ptr @.str.1723, i64 10, i64 0 }, ptr %a161 + store { ptr, i64, i64 } { ptr @.str.1751, i64 10, i64 0 }, ptr %a161 store { ptr, i64, i64 } %t159, ptr %a162 call void @finch_str_concat(ptr %a160, ptr %a161, ptr %a162) %t163 = load { ptr, i64, i64 }, ptr %a160 store { ptr, i64, i64 } %t163, ptr %a165 - store { ptr, i64, i64 } { ptr @.str.1724, i64 7, i64 0 }, ptr %a166 + store { ptr, i64, i64 } { ptr @.str.1752, i64 7, i64 0 }, ptr %a166 call void @finch_str_concat(ptr %a164, ptr %a165, ptr %a166) store { ptr, i64, i64 } %t163, ptr %a167 call void @finch_str_drop(ptr %a167) @@ -31427,16 +32172,16 @@ then2847: %t174 = call { ptr, i64, i64 } @finch.gen.cstr(ptr %t172, { ptr, i64, i64 } %t173) store { ptr, i64, i64 } %t174, ptr %a175 %t176 = load i1, ptr %a4 - br i1 %t176, label %then2850, label %else2851 -then2850: + br i1 %t176, label %then2909, label %else2910 +then2909: %t177 = load ptr, ptr %a1 %t178 = load { ptr, i64, i64 }, ptr %a171 - store { ptr, i64, i64 } { ptr @.str.1726, i64 4, i64 0 }, ptr %a180 + store { ptr, i64, i64 } { ptr @.str.1754, i64 4, i64 0 }, ptr %a180 store { ptr, i64, i64 } %t178, ptr %a181 call void @finch_str_concat(ptr %a179, ptr %a180, ptr %a181) %t182 = load { ptr, i64, i64 }, ptr %a179 store { ptr, i64, i64 } %t182, ptr %a184 - store { ptr, i64, i64 } { ptr @.str.1727, i64 6, i64 0 }, ptr %a185 + store { ptr, i64, i64 } { ptr @.str.1755, i64 6, i64 0 }, ptr %a185 call void @finch_str_concat(ptr %a183, ptr %a184, ptr %a185) store { ptr, i64, i64 } %t182, ptr %a186 call void @finch_str_drop(ptr %a186) @@ -31448,19 +32193,19 @@ then2850: store { ptr, i64, i64 } %t187, ptr %a192 call void @finch_str_drop(ptr %a192) %t193 = load { ptr, i64, i64 }, ptr %a189 - call void @finch.gen.printf(ptr %t177, { ptr, i64, i64 } { ptr @.str.1725, i64 6, i64 0 }, { ptr, i64, i64 } %t193) + call void @finch.gen.printf(ptr %t177, { ptr, i64, i64 } { ptr @.str.1753, i64 6, i64 0 }, { ptr, i64, i64 } %t193) store { ptr, i64, i64 } %t193, ptr %a194 call void @finch_str_drop(ptr %a194) - br label %endif2852 -else2851: + br label %endif2911 +else2910: %t195 = load ptr, ptr %a1 %t196 = load { ptr, i64, i64 }, ptr %a171 - store { ptr, i64, i64 } { ptr @.str.1729, i64 4, i64 0 }, ptr %a198 + store { ptr, i64, i64 } { ptr @.str.1757, i64 4, i64 0 }, ptr %a198 store { ptr, i64, i64 } %t196, ptr %a199 call void @finch_str_concat(ptr %a197, ptr %a198, ptr %a199) %t200 = load { ptr, i64, i64 }, ptr %a197 store { ptr, i64, i64 } %t200, ptr %a202 - store { ptr, i64, i64 } { ptr @.str.1730, i64 6, i64 0 }, ptr %a203 + store { ptr, i64, i64 } { ptr @.str.1758, i64 6, i64 0 }, ptr %a203 call void @finch_str_concat(ptr %a201, ptr %a202, ptr %a203) store { ptr, i64, i64 } %t200, ptr %a204 call void @finch_str_drop(ptr %a204) @@ -31472,31 +32217,31 @@ else2851: store { ptr, i64, i64 } %t205, ptr %a210 call void @finch_str_drop(ptr %a210) %t211 = load { ptr, i64, i64 }, ptr %a207 - call void @finch.gen.printf(ptr %t195, { ptr, i64, i64 } { ptr @.str.1728, i64 4, i64 0 }, { ptr, i64, i64 } %t211) + call void @finch.gen.printf(ptr %t195, { ptr, i64, i64 } { ptr @.str.1756, i64 4, i64 0 }, { ptr, i64, i64 } %t211) store { ptr, i64, i64 } %t211, ptr %a212 call void @finch_str_drop(ptr %a212) - br label %endif2852 -endif2852: + br label %endif2911 +endif2911: call void @finch_str_drop(ptr %a175) call void @finch_str_drop(ptr %a171) call void @finch_str_drop(ptr %a157) - br label %endif2849 -else2848: + br label %endif2908 +else2907: %t213 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t213, ptr %a214 - store { ptr, i64, i64 } { ptr @.str.1731, i64 3, i64 0 }, ptr %a215 + store { ptr, i64, i64 } { ptr @.str.1759, i64 3, i64 0 }, ptr %a215 %t216 = call i32 @finch_str_eq(ptr %a214, ptr %a215) %t217 = icmp ne i32 %t216, 0 - br i1 %t217, label %then2853, label %else2854 -then2853: + br i1 %t217, label %then2912, label %else2913 +then2912: %t218 = load ptr, ptr %a1 %t219 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1732, i64 12, i64 0 }, ptr %a221 + store { ptr, i64, i64 } { ptr @.str.1760, i64 12, i64 0 }, ptr %a221 store { ptr, i64, i64 } %t219, ptr %a222 call void @finch_str_concat(ptr %a220, ptr %a221, ptr %a222) %t223 = load { ptr, i64, i64 }, ptr %a220 store { ptr, i64, i64 } %t223, ptr %a225 - store { ptr, i64, i64 } { ptr @.str.1733, i64 6, i64 0 }, ptr %a226 + store { ptr, i64, i64 } { ptr @.str.1761, i64 6, i64 0 }, ptr %a226 call void @finch_str_concat(ptr %a224, ptr %a225, ptr %a226) store { ptr, i64, i64 } %t223, ptr %a227 call void @finch_str_drop(ptr %a227) @@ -31506,13 +32251,13 @@ then2853: call void @finch_str_drop(ptr %a230) store { ptr, i64, i64 } %t229, ptr %a231 %t232 = load ptr, ptr %a1 - %t233 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t232, { ptr, i64, i64 } { ptr @.str.1734, i64 8, i64 0 }) + %t233 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t232, { ptr, i64, i64 } { ptr @.str.1762, i64 8, i64 0 }) store { ptr, i64, i64 } %t233, ptr %a234 %t235 = load ptr, ptr %a1 - %t236 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t235, { ptr, i64, i64 } { ptr @.str.1735, i64 8, i64 0 }) + %t236 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t235, { ptr, i64, i64 } { ptr @.str.1763, i64 8, i64 0 }) store { ptr, i64, i64 } %t236, ptr %a237 %t238 = load ptr, ptr %a1 - %t239 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t238, { ptr, i64, i64 } { ptr @.str.1736, i64 8, i64 0 }) + %t239 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t238, { ptr, i64, i64 } { ptr @.str.1764, i64 8, i64 0 }) store { ptr, i64, i64 } %t239, ptr %a240 %t241 = load ptr, ptr %a1 %t242 = load { ptr, i64, i64 }, ptr %a231 @@ -31523,7 +32268,7 @@ then2853: %t246 = load { ptr, i64, i64 }, ptr %a234 call void @finch.gen.label(ptr %t245, { ptr, i64, i64 } %t246) %t247 = load ptr, ptr %a1 - call void @finch.gen.printf(ptr %t247, { ptr, i64, i64 } { ptr @.str.1737, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1738, i64 0, i64 0 }) + call void @finch.gen.printf(ptr %t247, { ptr, i64, i64 } { ptr @.str.1765, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1766, i64 0, i64 0 }) %t248 = load ptr, ptr %a1 %t249 = load { ptr, i64, i64 }, ptr %a240 call void @finch.gen.br(ptr %t248, { ptr, i64, i64 } %t249) @@ -31533,12 +32278,12 @@ then2853: %t252 = load ptr, ptr %a1 %t253 = load ptr, ptr %a1 %t254 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1741, i64 13, i64 0 }, ptr %a256 + store { ptr, i64, i64 } { ptr @.str.1769, i64 13, i64 0 }, ptr %a256 store { ptr, i64, i64 } %t254, ptr %a257 call void @finch_str_concat(ptr %a255, ptr %a256, ptr %a257) %t258 = load { ptr, i64, i64 }, ptr %a255 store { ptr, i64, i64 } %t258, ptr %a260 - store { ptr, i64, i64 } { ptr @.str.1742, i64 7, i64 0 }, ptr %a261 + store { ptr, i64, i64 } { ptr @.str.1770, i64 7, i64 0 }, ptr %a261 call void @finch_str_concat(ptr %a259, ptr %a260, ptr %a261) store { ptr, i64, i64 } %t258, ptr %a262 call void @finch_str_drop(ptr %a262) @@ -31546,13 +32291,13 @@ then2853: %t264 = call { ptr, i64, i64 } @finch.gen.op(ptr %t253, { ptr, i64, i64 } %t263) store { ptr, i64, i64 } %t263, ptr %a265 call void @finch_str_drop(ptr %a265) - store { ptr, i64, i64 } { ptr @.str.1740, i64 4, i64 0 }, ptr %a267 + store { ptr, i64, i64 } { ptr @.str.1768, i64 4, i64 0 }, ptr %a267 store { ptr, i64, i64 } %t264, ptr %a268 call void @finch_str_concat(ptr %a266, ptr %a267, ptr %a268) store { ptr, i64, i64 } %t264, ptr %a269 call void @finch_str_drop(ptr %a269) %t270 = load { ptr, i64, i64 }, ptr %a266 - call void @finch.gen.printf(ptr %t252, { ptr, i64, i64 } { ptr @.str.1739, i64 6, i64 0 }, { ptr, i64, i64 } %t270) + call void @finch.gen.printf(ptr %t252, { ptr, i64, i64 } { ptr @.str.1767, i64 6, i64 0 }, { ptr, i64, i64 } %t270) store { ptr, i64, i64 } %t270, ptr %a271 call void @finch_str_drop(ptr %a271) %t272 = load ptr, ptr %a1 @@ -31565,25 +32310,25 @@ then2853: call void @finch_str_drop(ptr %a237) call void @finch_str_drop(ptr %a234) call void @finch_str_drop(ptr %a231) - br label %endif2855 -else2854: + br label %endif2914 +else2913: %t276 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t276, ptr %a277 - store { ptr, i64, i64 } { ptr @.str.1743, i64 4, i64 0 }, ptr %a278 + store { ptr, i64, i64 } { ptr @.str.1771, i64 4, i64 0 }, ptr %a278 %t279 = call i32 @finch_str_eq(ptr %a277, ptr %a278) %t280 = icmp ne i32 %t279, 0 - br i1 %t280, label %then2856, label %else2857 -then2856: + br i1 %t280, label %then2915, label %else2916 +then2915: %t281 = load ptr, ptr %a1 - call void @finch.gen.printf(ptr %t281, { ptr, i64, i64 } { ptr @.str.1744, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1745, i64 0, i64 0 }) - br label %endif2858 -else2857: + call void @finch.gen.printf(ptr %t281, { ptr, i64, i64 } { ptr @.str.1772, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1773, i64 0, i64 0 }) + br label %endif2917 +else2916: %t282 = load ptr, ptr %a1 - %t283 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t282, { ptr, i64, i64 } { ptr @.str.1746, i64 17, i64 0 }) + %t283 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t282, { ptr, i64, i64 } { ptr @.str.1774, i64 17, i64 0 }) store { ptr, i64, i64 } %t283, ptr %a284 %t285 = load ptr, ptr %a1 %t286 = load { ptr, i64, i64 }, ptr %a284 - call void @finch.gen.store(ptr %t285, { ptr, i64, i64 } { ptr @.str.1747, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.1748, i64 15, i64 0 }, { ptr, i64, i64 } %t286) + call void @finch.gen.store(ptr %t285, { ptr, i64, i64 } { ptr @.str.1775, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.1776, i64 15, i64 0 }, { ptr, i64, i64 } %t286) %t287 = load ptr, ptr %a1 %t288 = load { ptr, i64, i64 }, ptr %a284 %t289 = load { ptr, i64, i64 }, ptr %a2 @@ -31592,12 +32337,12 @@ else2857: call void @finch.gen.emitFormat(ptr %t287, { ptr, i64, i64 } %t288, { ptr, i64, i64 } %t289, %S.ast.Type %t290, i1 %t291) %t292 = load ptr, ptr %a1 %t293 = load { ptr, i64, i64 }, ptr %a284 - store { ptr, i64, i64 } { ptr @.str.1749, i64 31, i64 0 }, ptr %a295 + store { ptr, i64, i64 } { ptr @.str.1777, i64 31, i64 0 }, ptr %a295 store { ptr, i64, i64 } %t293, ptr %a296 call void @finch_str_concat(ptr %a294, ptr %a295, ptr %a296) %t297 = load { ptr, i64, i64 }, ptr %a294 store { ptr, i64, i64 } %t297, ptr %a299 - store { ptr, i64, i64 } { ptr @.str.1750, i64 1, i64 0 }, ptr %a300 + store { ptr, i64, i64 } { ptr @.str.1778, i64 1, i64 0 }, ptr %a300 call void @finch_str_concat(ptr %a298, ptr %a299, ptr %a300) store { ptr, i64, i64 } %t297, ptr %a301 call void @finch_str_drop(ptr %a301) @@ -31606,22 +32351,22 @@ else2857: store { ptr, i64, i64 } %t302, ptr %a303 call void @finch_str_drop(ptr %a303) call void @finch_str_drop(ptr %a284) - br label %endif2858 -endif2858: - br label %endif2855 -endif2855: - br label %endif2849 -endif2849: - br label %endif2846 -endif2846: - br label %endif2840 -endif2840: - br label %endif2837 -endif2837: - br label %endif2834 -endif2834: - br label %endif2831 -endif2831: + br label %endif2917 +endif2917: + br label %endif2914 +endif2914: + br label %endif2908 +endif2908: + br label %endif2905 +endif2905: + br label %endif2899 +endif2899: + br label %endif2896 +endif2896: + br label %endif2893 +endif2893: + br label %endif2890 +endif2890: call void @finch_str_drop(ptr %a10) ret void } @@ -31663,12 +32408,12 @@ entry: store { ptr, i64, i64 } %p2, ptr %a3 %t4 = load ptr, ptr %a1 %t5 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1751, i64 29, i64 0 }, ptr %a7 + store { ptr, i64, i64 } { ptr @.str.1779, i64 29, i64 0 }, ptr %a7 store { ptr, i64, i64 } %t5, ptr %a8 call void @finch_str_concat(ptr %a6, ptr %a7, ptr %a8) %t9 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t9, ptr %a11 - store { ptr, i64, i64 } { ptr @.str.1752, i64 6, i64 0 }, ptr %a12 + store { ptr, i64, i64 } { ptr @.str.1780, i64 6, i64 0 }, ptr %a12 call void @finch_str_concat(ptr %a10, ptr %a11, ptr %a12) store { ptr, i64, i64 } %t9, ptr %a13 call void @finch_str_drop(ptr %a13) @@ -31685,7 +32430,7 @@ entry: call void @finch_str_drop(ptr %a22) %t23 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t23, ptr %a25 - store { ptr, i64, i64 } { ptr @.str.1753, i64 6, i64 0 }, ptr %a26 + store { ptr, i64, i64 } { ptr @.str.1781, i64 6, i64 0 }, ptr %a26 call void @finch_str_concat(ptr %a24, ptr %a25, ptr %a26) store { ptr, i64, i64 } %t23, ptr %a27 call void @finch_str_drop(ptr %a27) @@ -31703,7 +32448,7 @@ entry: call void @finch_str_drop(ptr %a37) %t38 = load { ptr, i64, i64 }, ptr %a33 store { ptr, i64, i64 } %t38, ptr %a40 - store { ptr, i64, i64 } { ptr @.str.1754, i64 1, i64 0 }, ptr %a41 + store { ptr, i64, i64 } { ptr @.str.1782, i64 1, i64 0 }, ptr %a41 call void @finch_str_concat(ptr %a39, ptr %a40, ptr %a41) store { ptr, i64, i64 } %t38, ptr %a42 call void @finch_str_drop(ptr %a42) @@ -31927,28 +32672,28 @@ entry: call void @finch_str_copy(ptr %a9, ptr %a8) %t10 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t10, ptr %a11 - store { ptr, i64, i64 } { ptr @.str.1755, i64 1, i64 0 }, ptr %a12 + store { ptr, i64, i64 } { ptr @.str.1783, i64 1, i64 0 }, ptr %a12 %t13 = load i1, ptr %a5 - br i1 %t13, label %then2859, label %endif2861 -then2859: + br i1 %t13, label %then2918, label %endif2920 +then2918: %t14 = load { ptr, i64, i64 }, ptr %a12 - store { ptr, i64, i64 } { ptr @.str.1756, i64 1, i64 0 }, ptr %a12 + store { ptr, i64, i64 } { ptr @.str.1784, i64 1, i64 0 }, ptr %a12 store { ptr, i64, i64 } %t14, ptr %a15 call void @finch_str_drop(ptr %a15) - br label %endif2861 -endif2861: + br label %endif2920 +endif2920: %t16 = load %S.ast.Type, ptr %a4 %t17 = call i1 @finch.gen.isSigned(%S.ast.Type %t16) - br i1 %t17, label %then2862, label %else2863 -then2862: + br i1 %t17, label %then2921, label %else2922 +then2921: %t18 = load ptr, ptr %a1 %t19 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1757, i64 29, i64 0 }, ptr %a21 + store { ptr, i64, i64 } { ptr @.str.1785, i64 29, i64 0 }, ptr %a21 store { ptr, i64, i64 } %t19, ptr %a22 call void @finch_str_concat(ptr %a20, ptr %a21, ptr %a22) %t23 = load { ptr, i64, i64 }, ptr %a20 store { ptr, i64, i64 } %t23, ptr %a25 - store { ptr, i64, i64 } { ptr @.str.1758, i64 6, i64 0 }, ptr %a26 + store { ptr, i64, i64 } { ptr @.str.1786, i64 6, i64 0 }, ptr %a26 call void @finch_str_concat(ptr %a24, ptr %a25, ptr %a26) store { ptr, i64, i64 } %t23, ptr %a27 call void @finch_str_drop(ptr %a27) @@ -31956,7 +32701,7 @@ then2862: %t29 = load ptr, ptr %a1 %t30 = load { ptr, i64, i64 }, ptr %a3 %t31 = load %S.ast.Type, ptr %a4 - %t32 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.1759, i64 3, i64 0 }) + %t32 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.1787, i64 3, i64 0 }) %t33 = call { ptr, i64, i64 } @finch.gen.intCast(ptr %t29, { ptr, i64, i64 } %t30, %S.ast.Type %t31, %S.ast.Type %t32) store %S.ast.Type %t32, ptr %a34 call void @finch.drop.S_ast_Type(ptr %a34) @@ -31969,7 +32714,7 @@ then2862: call void @finch_str_drop(ptr %a39) %t40 = load { ptr, i64, i64 }, ptr %a35 store { ptr, i64, i64 } %t40, ptr %a42 - store { ptr, i64, i64 } { ptr @.str.1760, i64 1, i64 0 }, ptr %a43 + store { ptr, i64, i64 } { ptr @.str.1788, i64 1, i64 0 }, ptr %a43 call void @finch_str_concat(ptr %a41, ptr %a42, ptr %a43) store { ptr, i64, i64 } %t40, ptr %a44 call void @finch_str_drop(ptr %a44) @@ -31977,20 +32722,20 @@ then2862: call void @finch.gen.emit(ptr %t18, { ptr, i64, i64 } %t45) store { ptr, i64, i64 } %t45, ptr %a46 call void @finch_str_drop(ptr %a46) - br label %endif2864 -else2863: + br label %endif2923 +else2922: %t47 = load %S.ast.Type, ptr %a4 %t48 = call i1 @finch.gen.isUnsigned(%S.ast.Type %t47) - br i1 %t48, label %then2865, label %else2866 -then2865: + br i1 %t48, label %then2924, label %else2925 +then2924: %t49 = load ptr, ptr %a1 %t50 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1761, i64 30, i64 0 }, ptr %a52 + store { ptr, i64, i64 } { ptr @.str.1789, i64 30, i64 0 }, ptr %a52 store { ptr, i64, i64 } %t50, ptr %a53 call void @finch_str_concat(ptr %a51, ptr %a52, ptr %a53) %t54 = load { ptr, i64, i64 }, ptr %a51 store { ptr, i64, i64 } %t54, ptr %a56 - store { ptr, i64, i64 } { ptr @.str.1762, i64 6, i64 0 }, ptr %a57 + store { ptr, i64, i64 } { ptr @.str.1790, i64 6, i64 0 }, ptr %a57 call void @finch_str_concat(ptr %a55, ptr %a56, ptr %a57) store { ptr, i64, i64 } %t54, ptr %a58 call void @finch_str_drop(ptr %a58) @@ -31998,7 +32743,7 @@ then2865: %t60 = load ptr, ptr %a1 %t61 = load { ptr, i64, i64 }, ptr %a3 %t62 = load %S.ast.Type, ptr %a4 - %t63 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.1763, i64 3, i64 0 }) + %t63 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.1791, i64 3, i64 0 }) %t64 = call { ptr, i64, i64 } @finch.gen.intCast(ptr %t60, { ptr, i64, i64 } %t61, %S.ast.Type %t62, %S.ast.Type %t63) store %S.ast.Type %t63, ptr %a65 call void @finch.drop.S_ast_Type(ptr %a65) @@ -32011,7 +32756,7 @@ then2865: call void @finch_str_drop(ptr %a70) %t71 = load { ptr, i64, i64 }, ptr %a66 store { ptr, i64, i64 } %t71, ptr %a73 - store { ptr, i64, i64 } { ptr @.str.1764, i64 1, i64 0 }, ptr %a74 + store { ptr, i64, i64 } { ptr @.str.1792, i64 1, i64 0 }, ptr %a74 call void @finch_str_concat(ptr %a72, ptr %a73, ptr %a74) store { ptr, i64, i64 } %t71, ptr %a75 call void @finch_str_drop(ptr %a75) @@ -32019,20 +32764,20 @@ then2865: call void @finch.gen.emit(ptr %t49, { ptr, i64, i64 } %t76) store { ptr, i64, i64 } %t76, ptr %a77 call void @finch_str_drop(ptr %a77) - br label %endif2867 -else2866: + br label %endif2926 +else2925: %t78 = load %S.ast.Type, ptr %a4 %t79 = call i1 @finch.gen.isFloat(%S.ast.Type %t78) - br i1 %t79, label %then2868, label %else2869 -then2868: + br i1 %t79, label %then2927, label %else2928 +then2927: %t80 = load ptr, ptr %a1 %t81 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1765, i64 31, i64 0 }, ptr %a83 + store { ptr, i64, i64 } { ptr @.str.1793, i64 31, i64 0 }, ptr %a83 store { ptr, i64, i64 } %t81, ptr %a84 call void @finch_str_concat(ptr %a82, ptr %a83, ptr %a84) %t85 = load { ptr, i64, i64 }, ptr %a82 store { ptr, i64, i64 } %t85, ptr %a87 - store { ptr, i64, i64 } { ptr @.str.1766, i64 9, i64 0 }, ptr %a88 + store { ptr, i64, i64 } { ptr @.str.1794, i64 9, i64 0 }, ptr %a88 call void @finch_str_concat(ptr %a86, ptr %a87, ptr %a88) store { ptr, i64, i64 } %t85, ptr %a89 call void @finch_str_drop(ptr %a89) @@ -32040,7 +32785,7 @@ then2868: %t91 = load ptr, ptr %a1 %t92 = load { ptr, i64, i64 }, ptr %a3 %t93 = load %S.ast.Type, ptr %a4 - %t94 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.1767, i64 5, i64 0 }) + %t94 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.1795, i64 5, i64 0 }) %t95 = call { ptr, i64, i64 } @finch.gen.floatCast(ptr %t91, { ptr, i64, i64 } %t92, %S.ast.Type %t93, %S.ast.Type %t94) store %S.ast.Type %t94, ptr %a96 call void @finch.drop.S_ast_Type(ptr %a96) @@ -32053,7 +32798,7 @@ then2868: call void @finch_str_drop(ptr %a101) %t102 = load { ptr, i64, i64 }, ptr %a97 store { ptr, i64, i64 } %t102, ptr %a104 - store { ptr, i64, i64 } { ptr @.str.1768, i64 1, i64 0 }, ptr %a105 + store { ptr, i64, i64 } { ptr @.str.1796, i64 1, i64 0 }, ptr %a105 call void @finch_str_concat(ptr %a103, ptr %a104, ptr %a105) store { ptr, i64, i64 } %t102, ptr %a106 call void @finch_str_drop(ptr %a106) @@ -32061,23 +32806,23 @@ then2868: call void @finch.gen.emit(ptr %t80, { ptr, i64, i64 } %t107) store { ptr, i64, i64 } %t107, ptr %a108 call void @finch_str_drop(ptr %a108) - br label %endif2870 -else2869: + br label %endif2929 +else2928: %t109 = load { ptr, i64, i64 }, ptr %a11 store { ptr, i64, i64 } %t109, ptr %a110 - store { ptr, i64, i64 } { ptr @.str.1769, i64 4, i64 0 }, ptr %a111 + store { ptr, i64, i64 } { ptr @.str.1797, i64 4, i64 0 }, ptr %a111 %t112 = call i32 @finch_str_eq(ptr %a110, ptr %a111) %t113 = icmp ne i32 %t112, 0 - br i1 %t113, label %then2871, label %else2872 -then2871: + br i1 %t113, label %then2930, label %else2931 +then2930: %t114 = load ptr, ptr %a1 %t115 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1770, i64 30, i64 0 }, ptr %a117 + store { ptr, i64, i64 } { ptr @.str.1798, i64 30, i64 0 }, ptr %a117 store { ptr, i64, i64 } %t115, ptr %a118 call void @finch_str_concat(ptr %a116, ptr %a117, ptr %a118) %t119 = load { ptr, i64, i64 }, ptr %a116 store { ptr, i64, i64 } %t119, ptr %a121 - store { ptr, i64, i64 } { ptr @.str.1771, i64 5, i64 0 }, ptr %a122 + store { ptr, i64, i64 } { ptr @.str.1799, i64 5, i64 0 }, ptr %a122 call void @finch_str_concat(ptr %a120, ptr %a121, ptr %a122) store { ptr, i64, i64 } %t119, ptr %a123 call void @finch_str_drop(ptr %a123) @@ -32090,7 +32835,7 @@ then2871: call void @finch_str_drop(ptr %a129) %t130 = load { ptr, i64, i64 }, ptr %a126 store { ptr, i64, i64 } %t130, ptr %a132 - store { ptr, i64, i64 } { ptr @.str.1772, i64 6, i64 0 }, ptr %a133 + store { ptr, i64, i64 } { ptr @.str.1800, i64 6, i64 0 }, ptr %a133 call void @finch_str_concat(ptr %a131, ptr %a132, ptr %a133) store { ptr, i64, i64 } %t130, ptr %a134 call void @finch_str_drop(ptr %a134) @@ -32103,7 +32848,7 @@ then2871: call void @finch_str_drop(ptr %a140) %t141 = load { ptr, i64, i64 }, ptr %a137 store { ptr, i64, i64 } %t141, ptr %a143 - store { ptr, i64, i64 } { ptr @.str.1773, i64 1, i64 0 }, ptr %a144 + store { ptr, i64, i64 } { ptr @.str.1801, i64 1, i64 0 }, ptr %a144 call void @finch_str_concat(ptr %a142, ptr %a143, ptr %a144) store { ptr, i64, i64 } %t141, ptr %a145 call void @finch_str_drop(ptr %a145) @@ -32111,35 +32856,35 @@ then2871: call void @finch.gen.emit(ptr %t114, { ptr, i64, i64 } %t146) store { ptr, i64, i64 } %t146, ptr %a147 call void @finch_str_drop(ptr %a147) - br label %endif2873 -else2872: + br label %endif2932 +else2931: %t148 = load { ptr, i64, i64 }, ptr %a11 store { ptr, i64, i64 } %t148, ptr %a149 - store { ptr, i64, i64 } { ptr @.str.1774, i64 4, i64 0 }, ptr %a150 + store { ptr, i64, i64 } { ptr @.str.1802, i64 4, i64 0 }, ptr %a150 %t151 = call i32 @finch_str_eq(ptr %a149, ptr %a150) %t152 = icmp ne i32 %t151, 0 - br i1 %t152, label %then2874, label %else2875 -then2874: + br i1 %t152, label %then2933, label %else2934 +then2933: %t153 = load ptr, ptr %a1 %t154 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1775, i64 30, i64 0 }, ptr %a156 + store { ptr, i64, i64 } { ptr @.str.1803, i64 30, i64 0 }, ptr %a156 store { ptr, i64, i64 } %t154, ptr %a157 call void @finch_str_concat(ptr %a155, ptr %a156, ptr %a157) %t158 = load { ptr, i64, i64 }, ptr %a155 store { ptr, i64, i64 } %t158, ptr %a160 - store { ptr, i64, i64 } { ptr @.str.1776, i64 6, i64 0 }, ptr %a161 + store { ptr, i64, i64 } { ptr @.str.1804, i64 6, i64 0 }, ptr %a161 call void @finch_str_concat(ptr %a159, ptr %a160, ptr %a161) store { ptr, i64, i64 } %t158, ptr %a162 call void @finch_str_drop(ptr %a162) %t163 = load { ptr, i64, i64 }, ptr %a159 %t164 = load ptr, ptr %a1 %t165 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.1777, i64 8, i64 0 }, ptr %a167 + store { ptr, i64, i64 } { ptr @.str.1805, i64 8, i64 0 }, ptr %a167 store { ptr, i64, i64 } %t165, ptr %a168 call void @finch_str_concat(ptr %a166, ptr %a167, ptr %a168) %t169 = load { ptr, i64, i64 }, ptr %a166 store { ptr, i64, i64 } %t169, ptr %a171 - store { ptr, i64, i64 } { ptr @.str.1778, i64 7, i64 0 }, ptr %a172 + store { ptr, i64, i64 } { ptr @.str.1806, i64 7, i64 0 }, ptr %a172 call void @finch_str_concat(ptr %a170, ptr %a171, ptr %a172) store { ptr, i64, i64 } %t169, ptr %a173 call void @finch_str_drop(ptr %a173) @@ -32156,7 +32901,7 @@ then2874: call void @finch_str_drop(ptr %a181) %t182 = load { ptr, i64, i64 }, ptr %a177 store { ptr, i64, i64 } %t182, ptr %a184 - store { ptr, i64, i64 } { ptr @.str.1779, i64 1, i64 0 }, ptr %a185 + store { ptr, i64, i64 } { ptr @.str.1807, i64 1, i64 0 }, ptr %a185 call void @finch_str_concat(ptr %a183, ptr %a184, ptr %a185) store { ptr, i64, i64 } %t182, ptr %a186 call void @finch_str_drop(ptr %a186) @@ -32164,23 +32909,23 @@ then2874: call void @finch.gen.emit(ptr %t153, { ptr, i64, i64 } %t187) store { ptr, i64, i64 } %t187, ptr %a188 call void @finch_str_drop(ptr %a188) - br label %endif2876 -else2875: + br label %endif2935 +else2934: %t189 = load { ptr, i64, i64 }, ptr %a11 store { ptr, i64, i64 } %t189, ptr %a190 - store { ptr, i64, i64 } { ptr @.str.1780, i64 3, i64 0 }, ptr %a191 + store { ptr, i64, i64 } { ptr @.str.1808, i64 3, i64 0 }, ptr %a191 %t192 = call i32 @finch_str_eq(ptr %a190, ptr %a191) %t193 = icmp ne i32 %t192, 0 - br i1 %t193, label %then2877, label %else2878 -then2877: + br i1 %t193, label %then2936, label %else2937 +then2936: %t194 = load ptr, ptr %a1 %t195 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1781, i64 29, i64 0 }, ptr %a197 + store { ptr, i64, i64 } { ptr @.str.1809, i64 29, i64 0 }, ptr %a197 store { ptr, i64, i64 } %t195, ptr %a198 call void @finch_str_concat(ptr %a196, ptr %a197, ptr %a198) %t199 = load { ptr, i64, i64 }, ptr %a196 store { ptr, i64, i64 } %t199, ptr %a201 - store { ptr, i64, i64 } { ptr @.str.1782, i64 6, i64 0 }, ptr %a202 + store { ptr, i64, i64 } { ptr @.str.1810, i64 6, i64 0 }, ptr %a202 call void @finch_str_concat(ptr %a200, ptr %a201, ptr %a202) store { ptr, i64, i64 } %t199, ptr %a203 call void @finch_str_drop(ptr %a203) @@ -32208,7 +32953,7 @@ then2877: call void @finch_str_drop(ptr %a222) %t223 = load { ptr, i64, i64 }, ptr %a218 store { ptr, i64, i64 } %t223, ptr %a225 - store { ptr, i64, i64 } { ptr @.str.1783, i64 6, i64 0 }, ptr %a226 + store { ptr, i64, i64 } { ptr @.str.1811, i64 6, i64 0 }, ptr %a226 call void @finch_str_concat(ptr %a224, ptr %a225, ptr %a226) store { ptr, i64, i64 } %t223, ptr %a227 call void @finch_str_drop(ptr %a227) @@ -32221,7 +32966,7 @@ then2877: call void @finch_str_drop(ptr %a233) %t234 = load { ptr, i64, i64 }, ptr %a230 store { ptr, i64, i64 } %t234, ptr %a236 - store { ptr, i64, i64 } { ptr @.str.1784, i64 1, i64 0 }, ptr %a237 + store { ptr, i64, i64 } { ptr @.str.1812, i64 1, i64 0 }, ptr %a237 call void @finch_str_concat(ptr %a235, ptr %a236, ptr %a237) store { ptr, i64, i64 } %t234, ptr %a238 call void @finch_str_drop(ptr %a238) @@ -32229,37 +32974,37 @@ then2877: call void @finch.gen.emit(ptr %t194, { ptr, i64, i64 } %t239) store { ptr, i64, i64 } %t239, ptr %a240 call void @finch_str_drop(ptr %a240) - br label %endif2879 -else2878: + br label %endif2938 +else2937: %t241 = load { ptr, i64, i64 }, ptr %a11 store { ptr, i64, i64 } %t241, ptr %a242 - store { ptr, i64, i64 } { ptr @.str.1785, i64 3, i64 0 }, ptr %a243 + store { ptr, i64, i64 } { ptr @.str.1813, i64 3, i64 0 }, ptr %a243 %t244 = call i32 @finch_str_eq(ptr %a242, ptr %a243) %t245 = icmp ne i32 %t244, 0 - br label %logic.from2880 -logic.from2880: - br i1 %t245, label %logic.end2882, label %logic.rhs2881 -logic.rhs2881: + br label %logic.from2939 +logic.from2939: + br i1 %t245, label %logic.end2941, label %logic.rhs2940 +logic.rhs2940: %t246 = load { ptr, i64, i64 }, ptr %a11 store { ptr, i64, i64 } %t246, ptr %a247 - store { ptr, i64, i64 } { ptr @.str.1786, i64 4, i64 0 }, ptr %a248 + store { ptr, i64, i64 } { ptr @.str.1814, i64 4, i64 0 }, ptr %a248 %t249 = call i32 @finch_str_eq(ptr %a247, ptr %a248) %t250 = icmp ne i32 %t249, 0 - br label %logic.rend2883 -logic.rend2883: - br label %logic.end2882 -logic.end2882: - %t251 = phi i1 [ true, %logic.from2880 ], [ %t250, %logic.rend2883 ] - br i1 %t251, label %then2884, label %else2885 -then2884: + br label %logic.rend2942 +logic.rend2942: + br label %logic.end2941 +logic.end2941: + %t251 = phi i1 [ true, %logic.from2939 ], [ %t250, %logic.rend2942 ] + br i1 %t251, label %then2943, label %else2944 +then2943: %t252 = load ptr, ptr %a1 %t253 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.1787, i64 29, i64 0 }, ptr %a255 + store { ptr, i64, i64 } { ptr @.str.1815, i64 29, i64 0 }, ptr %a255 store { ptr, i64, i64 } %t253, ptr %a256 call void @finch_str_concat(ptr %a254, ptr %a255, ptr %a256) %t257 = load { ptr, i64, i64 }, ptr %a254 store { ptr, i64, i64 } %t257, ptr %a259 - store { ptr, i64, i64 } { ptr @.str.1788, i64 6, i64 0 }, ptr %a260 + store { ptr, i64, i64 } { ptr @.str.1816, i64 6, i64 0 }, ptr %a260 call void @finch_str_concat(ptr %a258, ptr %a259, ptr %a260) store { ptr, i64, i64 } %t257, ptr %a261 call void @finch_str_drop(ptr %a261) @@ -32272,7 +33017,7 @@ then2884: call void @finch_str_drop(ptr %a267) %t268 = load { ptr, i64, i64 }, ptr %a264 store { ptr, i64, i64 } %t268, ptr %a270 - store { ptr, i64, i64 } { ptr @.str.1789, i64 1, i64 0 }, ptr %a271 + store { ptr, i64, i64 } { ptr @.str.1817, i64 1, i64 0 }, ptr %a271 call void @finch_str_concat(ptr %a269, ptr %a270, ptr %a271) store { ptr, i64, i64 } %t268, ptr %a272 call void @finch_str_drop(ptr %a272) @@ -32280,20 +33025,20 @@ then2884: call void @finch.gen.emit(ptr %t252, { ptr, i64, i64 } %t273) store { ptr, i64, i64 } %t273, ptr %a274 call void @finch_str_drop(ptr %a274) - br label %endif2886 -else2885: + br label %endif2945 +else2944: %t275 = load ptr, ptr %a1 %t276 = load ptr, ptr %a1 %t277 = load %S.ast.Type, ptr %a4 %t278 = call { ptr, i64, i64 } @finch.gen.formatFn(ptr %t276, %S.ast.Type %t277) - store { ptr, i64, i64 } { ptr @.str.1790, i64 10, i64 0 }, ptr %a280 + store { ptr, i64, i64 } { ptr @.str.1818, i64 10, i64 0 }, ptr %a280 store { ptr, i64, i64 } %t278, ptr %a281 call void @finch_str_concat(ptr %a279, ptr %a280, ptr %a281) store { ptr, i64, i64 } %t278, ptr %a282 call void @finch_str_drop(ptr %a282) %t283 = load { ptr, i64, i64 }, ptr %a279 store { ptr, i64, i64 } %t283, ptr %a285 - store { ptr, i64, i64 } { ptr @.str.1791, i64 5, i64 0 }, ptr %a286 + store { ptr, i64, i64 } { ptr @.str.1819, i64 5, i64 0 }, ptr %a286 call void @finch_str_concat(ptr %a284, ptr %a285, ptr %a286) store { ptr, i64, i64 } %t283, ptr %a287 call void @finch_str_drop(ptr %a287) @@ -32306,7 +33051,7 @@ else2885: call void @finch_str_drop(ptr %a293) %t294 = load { ptr, i64, i64 }, ptr %a290 store { ptr, i64, i64 } %t294, ptr %a296 - store { ptr, i64, i64 } { ptr @.str.1792, i64 6, i64 0 }, ptr %a297 + store { ptr, i64, i64 } { ptr @.str.1820, i64 6, i64 0 }, ptr %a297 call void @finch_str_concat(ptr %a295, ptr %a296, ptr %a297) store { ptr, i64, i64 } %t294, ptr %a298 call void @finch_str_drop(ptr %a298) @@ -32334,7 +33079,7 @@ else2885: call void @finch_str_drop(ptr %a317) %t318 = load { ptr, i64, i64 }, ptr %a313 store { ptr, i64, i64 } %t318, ptr %a320 - store { ptr, i64, i64 } { ptr @.str.1793, i64 1, i64 0 }, ptr %a321 + store { ptr, i64, i64 } { ptr @.str.1821, i64 1, i64 0 }, ptr %a321 call void @finch_str_concat(ptr %a319, ptr %a320, ptr %a321) store { ptr, i64, i64 } %t318, ptr %a322 call void @finch_str_drop(ptr %a322) @@ -32342,20 +33087,20 @@ else2885: call void @finch.gen.emit(ptr %t275, { ptr, i64, i64 } %t323) store { ptr, i64, i64 } %t323, ptr %a324 call void @finch_str_drop(ptr %a324) - br label %endif2886 -endif2886: - br label %endif2879 -endif2879: - br label %endif2876 -endif2876: - br label %endif2873 -endif2873: - br label %endif2870 -endif2870: - br label %endif2867 -endif2867: - br label %endif2864 -endif2864: + br label %endif2945 +endif2945: + br label %endif2938 +endif2938: + br label %endif2935 +endif2935: + br label %endif2932 +endif2932: + br label %endif2929 +endif2929: + br label %endif2926 +endif2926: + br label %endif2923 +endif2923: call void @finch_str_drop(ptr %a12) call void @finch_str_drop(ptr %a11) ret void @@ -32395,6 +33140,50 @@ entry: ret void } +define internal void @finch.copy.S_gen_SumDef(ptr %dst, ptr %src) { +entry: + + %t1 = load %S.gen.SumDef, ptr %src + store %S.gen.SumDef %t1, ptr %dst + %t2 = getelementptr inbounds %S.gen.SumDef, ptr %dst, i32 0, i32 0 + %t3 = getelementptr inbounds %S.gen.SumDef, ptr %src, i32 0, i32 0 + call void @finch_str_copy(ptr %t2, ptr %t3) + %t4 = getelementptr inbounds %S.gen.SumDef, ptr %dst, i32 0, i32 1 + %t5 = getelementptr inbounds %S.gen.SumDef, ptr %src, i32 0, i32 1 + call void @finch_str_copy(ptr %t4, ptr %t5) + %t6 = getelementptr inbounds %S.gen.SumDef, ptr %dst, i32 0, i32 2 + %t7 = getelementptr inbounds %S.gen.SumDef, ptr %src, i32 0, i32 2 + call void @finch.copy.arr_str(ptr %t6, ptr %t7) + %t8 = getelementptr inbounds %S.gen.SumDef, ptr %dst, i32 0, i32 3 + %t9 = getelementptr inbounds %S.gen.SumDef, ptr %src, i32 0, i32 3 + call void @finch.copy.arr_int(ptr %t8, ptr %t9) + %t10 = getelementptr inbounds %S.gen.SumDef, ptr %dst, i32 0, i32 4 + %t11 = getelementptr inbounds %S.gen.SumDef, ptr %src, i32 0, i32 4 + call void @finch.copy.arr_int(ptr %t10, ptr %t11) + %t12 = getelementptr inbounds %S.gen.SumDef, ptr %dst, i32 0, i32 5 + %t13 = getelementptr inbounds %S.gen.SumDef, ptr %src, i32 0, i32 5 + call void @finch.copy.arr_S_ast_Node(ptr %t12, ptr %t13) + ret void +} + +define internal void @finch.drop.S_gen_SumDef(ptr %a) { +entry: + + %t1 = getelementptr inbounds %S.gen.SumDef, ptr %a, i32 0, i32 0 + call void @finch_str_drop(ptr %t1) + %t2 = getelementptr inbounds %S.gen.SumDef, ptr %a, i32 0, i32 1 + call void @finch_str_drop(ptr %t2) + %t3 = getelementptr inbounds %S.gen.SumDef, ptr %a, i32 0, i32 2 + call void @finch.drop.arr_str(ptr %t3) + %t4 = getelementptr inbounds %S.gen.SumDef, ptr %a, i32 0, i32 3 + call void @finch.drop.arr_int(ptr %t4) + %t5 = getelementptr inbounds %S.gen.SumDef, ptr %a, i32 0, i32 4 + call void @finch.drop.arr_int(ptr %t5) + %t6 = getelementptr inbounds %S.gen.SumDef, ptr %a, i32 0, i32 5 + call void @finch.drop.arr_S_ast_Node(ptr %t6) + ret void +} + define internal { ptr, i64, i64 } @finch.gen.formatFn(ptr %p0, %S.ast.Type %p1) { entry: %a1 = alloca ptr, align 16 @@ -32562,55 +33351,149 @@ entry: %a491 = alloca { ptr, i64, i64 }, align 16 %a492 = alloca { ptr, i64, i64 }, align 16 %a500 = alloca { ptr, i64, i64 }, align 16 - %a523 = alloca %S.gen.StructDef, align 16 - %a524 = alloca %S.gen.StructDef, align 16 - %a526 = alloca %S.gen.StructDef, align 16 - %a530 = alloca { ptr, i64, i64 }, align 16 - %a534 = alloca { ptr, i64, i64 }, align 16 - %a535 = alloca { ptr, i64, i64 }, align 16 - %a536 = alloca { ptr, i64, i64 }, align 16 - %a538 = alloca { ptr, i64, i64 }, align 16 - %a542 = alloca i64, align 16 - %a545 = alloca { ptr, i64, i64 }, align 16 - %a549 = alloca { ptr, i64, i64 }, align 16 - %a560 = alloca { ptr, i64, i64 }, align 16 - %a561 = alloca { ptr, i64, i64 }, align 16 - %a562 = alloca { ptr, i64, i64 }, align 16 - %a564 = alloca { ptr, i64, i64 }, align 16 - %a565 = alloca { ptr, i64, i64 }, align 16 - %a566 = alloca { ptr, i64, i64 }, align 16 + %a510 = alloca { ptr, i64, i64 }, align 16 + %a511 = alloca { ptr, i64, i64 }, align 16 + %a537 = alloca %S.gen.SumDef, align 16 + %a538 = alloca %S.gen.SumDef, align 16 + %a540 = alloca %S.gen.SumDef, align 16 + %a556 = alloca %S.gen.StructDef, align 16 + %a557 = alloca %S.gen.StructDef, align 16 + %a559 = alloca %S.gen.StructDef, align 16 + %a563 = alloca { ptr, i64, i64 }, align 16 %a567 = alloca { ptr, i64, i64 }, align 16 + %a568 = alloca { ptr, i64, i64 }, align 16 %a569 = alloca { ptr, i64, i64 }, align 16 + %a571 = alloca { ptr, i64, i64 }, align 16 %a572 = alloca { ptr, i64, i64 }, align 16 %a573 = alloca { ptr, i64, i64 }, align 16 %a574 = alloca { ptr, i64, i64 }, align 16 - %a576 = alloca { ptr, i64, i64 }, align 16 - %a577 = alloca { ptr, i64, i64 }, align 16 - %a578 = alloca { ptr, i64, i64 }, align 16 - %a579 = alloca { ptr, i64, i64 }, align 16 + %a583 = alloca { ptr, i64, i64 }, align 16 + %a585 = alloca { ptr, i64, i64 }, align 16 + %a586 = alloca { ptr, i64, i64 }, align 16 + %a587 = alloca { ptr, i64, i64 }, align 16 + %a588 = alloca { ptr, i64, i64 }, align 16 %a589 = alloca { ptr, i64, i64 }, align 16 - %a591 = alloca { ptr, i64, i64 }, align 16 %a592 = alloca { ptr, i64, i64 }, align 16 - %a593 = alloca { ptr, i64, i64 }, align 16 %a594 = alloca { ptr, i64, i64 }, align 16 %a595 = alloca { ptr, i64, i64 }, align 16 %a598 = alloca { ptr, i64, i64 }, align 16 - %a599 = alloca { ptr, i64, i64 }, align 16 - %a614 = alloca { ptr, i64, i64 }, align 16 + %a601 = alloca { ptr, i64, i64 }, align 16 + %a602 = alloca { ptr, i64, i64 }, align 16 + %a603 = alloca { ptr, i64, i64 }, align 16 + %a607 = alloca i64, align 16 + %a619 = alloca { ptr, i64, i64 }, align 16 + %a621 = alloca { ptr, i64, i64 }, align 16 + %a622 = alloca { ptr, i64, i64 }, align 16 %a623 = alloca { ptr, i64, i64 }, align 16 - %a631 = alloca { ptr, i64, i64 }, align 16 - %a632 = alloca { ptr, i64, i64 }, align 16 - %a633 = alloca { ptr, i64, i64 }, align 16 - %a635 = alloca { ptr, i64, i64 }, align 16 - %a636 = alloca { ptr, i64, i64 }, align 16 - %a637 = alloca { ptr, i64, i64 }, align 16 + %a624 = alloca { ptr, i64, i64 }, align 16 + %a626 = alloca { ptr, i64, i64 }, align 16 + %a627 = alloca { ptr, i64, i64 }, align 16 + %a628 = alloca { ptr, i64, i64 }, align 16 + %a629 = alloca { ptr, i64, i64 }, align 16 %a638 = alloca { ptr, i64, i64 }, align 16 + %a639 = alloca { ptr, i64, i64 }, align 16 %a640 = alloca { ptr, i64, i64 }, align 16 + %a641 = alloca { ptr, i64, i64 }, align 16 + %a651 = alloca { ptr, i64, i64 }, align 16 + %a652 = alloca { ptr, i64, i64 }, align 16 + %a653 = alloca { ptr, i64, i64 }, align 16 + %a655 = alloca { ptr, i64, i64 }, align 16 + %a656 = alloca { ptr, i64, i64 }, align 16 + %a657 = alloca { ptr, i64, i64 }, align 16 + %a658 = alloca { ptr, i64, i64 }, align 16 + %a661 = alloca { ptr, i64, i64 }, align 16 + %a662 = alloca { ptr, i64, i64 }, align 16 + %a663 = alloca { ptr, i64, i64 }, align 16 + %a664 = alloca { ptr, i64, i64 }, align 16 + %a666 = alloca { ptr, i64, i64 }, align 16 + %a667 = alloca { ptr, i64, i64 }, align 16 + %a668 = alloca { ptr, i64, i64 }, align 16 + %a669 = alloca { ptr, i64, i64 }, align 16 + %a672 = alloca { ptr, i64, i64 }, align 16 + %a673 = alloca { ptr, i64, i64 }, align 16 + %a675 = alloca { ptr, i64, i64 }, align 16 + %a676 = alloca { ptr, i64, i64 }, align 16 + %a677 = alloca { ptr, i64, i64 }, align 16 + %a678 = alloca { ptr, i64, i64 }, align 16 + %a679 = alloca { ptr, i64, i64 }, align 16 + %a681 = alloca { ptr, i64, i64 }, align 16 + %a682 = alloca { ptr, i64, i64 }, align 16 + %a683 = alloca { ptr, i64, i64 }, align 16 + %a684 = alloca { ptr, i64, i64 }, align 16 + %a686 = alloca { ptr, i64, i64 }, align 16 + %a693 = alloca i64, align 16 + %a731 = alloca i64, align 16 + %a747 = alloca i64, align 16 + %a750 = alloca { ptr, i64, i64 }, align 16 + %a751 = alloca { ptr, i64, i64 }, align 16 + %a752 = alloca { ptr, i64, i64 }, align 16 + %a754 = alloca { ptr, i64, i64 }, align 16 + %a755 = alloca { ptr, i64, i64 }, align 16 + %a756 = alloca { ptr, i64, i64 }, align 16 + %a757 = alloca { ptr, i64, i64 }, align 16 + %a767 = alloca { ptr, i64, i64 }, align 16 + %a769 = alloca { ptr, i64, i64 }, align 16 + %a770 = alloca { ptr, i64, i64 }, align 16 + %a771 = alloca { ptr, i64, i64 }, align 16 + %a772 = alloca { ptr, i64, i64 }, align 16 + %a773 = alloca { ptr, i64, i64 }, align 16 + %a776 = alloca { ptr, i64, i64 }, align 16 + %a777 = alloca { ptr, i64, i64 }, align 16 + %a792 = alloca { ptr, i64, i64 }, align 16 + %a801 = alloca { ptr, i64, i64 }, align 16 + %a814 = alloca { ptr, i64, i64 }, align 16 + %a815 = alloca { ptr, i64, i64 }, align 16 + %a816 = alloca { ptr, i64, i64 }, align 16 + %a818 = alloca { ptr, i64, i64 }, align 16 + %a838 = alloca %S.gen.StructDef, align 16 + %a839 = alloca %S.gen.StructDef, align 16 + %a841 = alloca %S.gen.StructDef, align 16 + %a845 = alloca { ptr, i64, i64 }, align 16 + %a849 = alloca { ptr, i64, i64 }, align 16 + %a850 = alloca { ptr, i64, i64 }, align 16 + %a851 = alloca { ptr, i64, i64 }, align 16 + %a853 = alloca { ptr, i64, i64 }, align 16 + %a857 = alloca i64, align 16 + %a860 = alloca { ptr, i64, i64 }, align 16 + %a864 = alloca { ptr, i64, i64 }, align 16 + %a875 = alloca { ptr, i64, i64 }, align 16 + %a876 = alloca { ptr, i64, i64 }, align 16 + %a877 = alloca { ptr, i64, i64 }, align 16 + %a879 = alloca { ptr, i64, i64 }, align 16 + %a880 = alloca { ptr, i64, i64 }, align 16 + %a881 = alloca { ptr, i64, i64 }, align 16 + %a882 = alloca { ptr, i64, i64 }, align 16 + %a884 = alloca { ptr, i64, i64 }, align 16 + %a887 = alloca { ptr, i64, i64 }, align 16 + %a888 = alloca { ptr, i64, i64 }, align 16 + %a889 = alloca { ptr, i64, i64 }, align 16 + %a891 = alloca { ptr, i64, i64 }, align 16 + %a892 = alloca { ptr, i64, i64 }, align 16 + %a893 = alloca { ptr, i64, i64 }, align 16 + %a894 = alloca { ptr, i64, i64 }, align 16 + %a904 = alloca { ptr, i64, i64 }, align 16 + %a906 = alloca { ptr, i64, i64 }, align 16 + %a907 = alloca { ptr, i64, i64 }, align 16 + %a908 = alloca { ptr, i64, i64 }, align 16 + %a909 = alloca { ptr, i64, i64 }, align 16 + %a910 = alloca { ptr, i64, i64 }, align 16 + %a913 = alloca { ptr, i64, i64 }, align 16 + %a914 = alloca { ptr, i64, i64 }, align 16 + %a929 = alloca { ptr, i64, i64 }, align 16 + %a938 = alloca { ptr, i64, i64 }, align 16 + %a946 = alloca { ptr, i64, i64 }, align 16 + %a947 = alloca { ptr, i64, i64 }, align 16 + %a948 = alloca { ptr, i64, i64 }, align 16 + %a950 = alloca { ptr, i64, i64 }, align 16 + %a951 = alloca { ptr, i64, i64 }, align 16 + %a952 = alloca { ptr, i64, i64 }, align 16 + %a953 = alloca { ptr, i64, i64 }, align 16 + %a955 = alloca { ptr, i64, i64 }, align 16 store ptr %p0, ptr %a1 store %S.ast.Type %p1, ptr %a2 %t3 = load %S.ast.Type, ptr %a2 %t4 = call { ptr, i64, i64 } @finch.gen.typeKey(%S.ast.Type %t3) - store { ptr, i64, i64 } { ptr @.str.1794, i64 14, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.1822, i64 14, i64 0 }, ptr %a6 store { ptr, i64, i64 } %t4, ptr %a7 call void @finch_str_concat(ptr %a5, ptr %a6, ptr %a7) store { ptr, i64, i64 } %t4, ptr %a8 @@ -32619,28 +33502,28 @@ entry: store { ptr, i64, i64 } %t9, ptr %a10 %t11 = load ptr, ptr %a1 %t12 = icmp eq ptr %t11, null - br i1 %t12, label %panic2887, label %ok2888 -panic2887: - call void @finch_panic(ptr @.str.1795, i64 1100, ptr @.str.1796) + br i1 %t12, label %panic2946, label %ok2947 +panic2946: + call void @finch_panic(ptr @.str.1823, i64 1126, ptr @.str.1824) unreachable -ok2888: - %t13 = getelementptr inbounds %S.gen.Gen, ptr %t11, i32 0, i32 22 +ok2947: + %t13 = getelementptr inbounds %S.gen.Gen, ptr %t11, i32 0, i32 23 %t14 = load { ptr, i64, i64 }, ptr %t13 %t15 = load { ptr, i64, i64 }, ptr %a10 %t16 = call i1 @finch.gen.has({ ptr, i64, i64 } %t14, { ptr, i64, i64 } %t15) - br i1 %t16, label %then2889, label %endif2891 -then2889: + br i1 %t16, label %then2948, label %endif2950 +then2948: %t17 = load { ptr, i64, i64 }, ptr %a10 ret { ptr, i64, i64 } %t17 -endif2891: +endif2950: %t18 = load ptr, ptr %a1 %t19 = icmp eq ptr %t18, null - br i1 %t19, label %panic2892, label %ok2893 -panic2892: - call void @finch_panic(ptr @.str.1797, i64 1103, ptr @.str.1798) + br i1 %t19, label %panic2951, label %ok2952 +panic2951: + call void @finch_panic(ptr @.str.1825, i64 1129, ptr @.str.1826) unreachable -ok2893: - %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 22 +ok2952: + %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 23 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t20, i32 0, i32 1 %t22 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t22, ptr %a23 @@ -32659,20 +33542,20 @@ ok2893: %t33 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t34 = load { ptr, i64, i64 }, ptr %t33 store { ptr, i64, i64 } %t34, ptr %a35 - store { ptr, i64, i64 } { ptr @.str.1799, i64 5, i64 0 }, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.1827, i64 5, i64 0 }, ptr %a36 %t37 = call i32 @finch_str_eq(ptr %a35, ptr %a36) %t38 = icmp ne i32 %t37, 0 - br i1 %t38, label %then2894, label %else2895 -then2894: + br i1 %t38, label %then2953, label %else2954 +then2953: %t39 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t40 = load { ptr, i64, i64 }, ptr %t39 %t41 = extractvalue { ptr, i64, i64 } %t40, 1 %t42 = icmp uge i64 0, %t41 - br i1 %t42, label %range2897, label %inrange2898 -range2897: - call void @finch_panic_index(ptr @.str.1800, i64 1106, i64 0, i64 %t41) + br i1 %t42, label %range2956, label %inrange2957 +range2956: + call void @finch_panic_index(ptr @.str.1828, i64 1132, i64 0, i64 %t41) unreachable -inrange2898: +inrange2957: %t43 = extractvalue { ptr, i64, i64 } %t40, 0 %t44 = getelementptr inbounds %S.ast.Type, ptr %t43, i64 0 %t45 = load %S.ast.Type, ptr %t44 @@ -32681,45 +33564,45 @@ inrange2898: %t48 = load %S.ast.Type, ptr %a47 store %S.ast.Type %t48, ptr %a49 %t50 = load ptr, ptr %a1 - %t51 = call { ptr, i64, i64 } @finch.gen.load(ptr %t50, { ptr, i64, i64 } { ptr @.str.1801, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.1802, i64 2, i64 0 }) + %t51 = call { ptr, i64, i64 } @finch.gen.load(ptr %t50, { ptr, i64, i64 } { ptr @.str.1829, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.1830, i64 2, i64 0 }) store { ptr, i64, i64 } %t51, ptr %a52 %t53 = load ptr, ptr %a1 %t54 = load ptr, ptr %a1 - %t55 = call { ptr, i64, i64 } @finch.gen.op(ptr %t54, { ptr, i64, i64 } { ptr @.str.1804, i64 62, i64 0 }) - %t56 = call { ptr, i64, i64 } @finch.gen.load(ptr %t53, { ptr, i64, i64 } { ptr @.str.1803, i64 3, i64 0 }, { ptr, i64, i64 } %t55) + %t55 = call { ptr, i64, i64 } @finch.gen.op(ptr %t54, { ptr, i64, i64 } { ptr @.str.1832, i64 62, i64 0 }) + %t56 = call { ptr, i64, i64 } @finch.gen.load(ptr %t53, { ptr, i64, i64 } { ptr @.str.1831, i64 3, i64 0 }, { ptr, i64, i64 } %t55) store { ptr, i64, i64 } %t55, ptr %a57 call void @finch_str_drop(ptr %a57) store { ptr, i64, i64 } %t56, ptr %a58 %t59 = load ptr, ptr %a1 - call void @finch.gen.bufText(ptr %t59, { ptr, i64, i64 } { ptr @.str.1805, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1806, i64 1, i64 0 }) + call void @finch.gen.bufText(ptr %t59, { ptr, i64, i64 } { ptr @.str.1833, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1834, i64 1, i64 0 }) %t60 = load ptr, ptr %a1 %t61 = load { ptr, i64, i64 }, ptr %a58 %t62 = call { ptr, i64, i64 } @finch.gen.loopStart(ptr %t60, { ptr, i64, i64 } %t61) store { ptr, i64, i64 } %t62, ptr %a63 %t64 = load ptr, ptr %a1 - %t65 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t64, { ptr, i64, i64 } { ptr @.str.1807, i64 3, i64 0 }) + %t65 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t64, { ptr, i64, i64 } { ptr @.str.1835, i64 3, i64 0 }) store { ptr, i64, i64 } %t65, ptr %a66 %t67 = load ptr, ptr %a1 - %t68 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t67, { ptr, i64, i64 } { ptr @.str.1808, i64 4, i64 0 }) + %t68 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t67, { ptr, i64, i64 } { ptr @.str.1836, i64 4, i64 0 }) store { ptr, i64, i64 } %t68, ptr %a69 %t70 = load ptr, ptr %a1 %t71 = load { ptr, i64, i64 }, ptr %a63 %t72 = extractvalue { ptr, i64, i64 } %t71, 1 %t73 = icmp uge i64 3, %t72 - br i1 %t73, label %range2899, label %inrange2900 -range2899: - call void @finch_panic_index(ptr @.str.1810, i64 1113, i64 3, i64 %t72) + br i1 %t73, label %range2958, label %inrange2959 +range2958: + call void @finch_panic_index(ptr @.str.1838, i64 1139, i64 3, i64 %t72) unreachable -inrange2900: +inrange2959: %t74 = extractvalue { ptr, i64, i64 } %t71, 0 %t75 = getelementptr inbounds { ptr, i64, i64 }, ptr %t74, i64 3 %t76 = load { ptr, i64, i64 }, ptr %t75 - store { ptr, i64, i64 } { ptr @.str.1809, i64 13, i64 0 }, ptr %a78 + store { ptr, i64, i64 } { ptr @.str.1837, i64 13, i64 0 }, ptr %a78 store { ptr, i64, i64 } %t76, ptr %a79 call void @finch_str_concat(ptr %a77, ptr %a78, ptr %a79) %t80 = load { ptr, i64, i64 }, ptr %a77 store { ptr, i64, i64 } %t80, ptr %a82 - store { ptr, i64, i64 } { ptr @.str.1811, i64 3, i64 0 }, ptr %a83 + store { ptr, i64, i64 } { ptr @.str.1839, i64 3, i64 0 }, ptr %a83 call void @finch_str_concat(ptr %a81, ptr %a82, ptr %a83) store { ptr, i64, i64 } %t80, ptr %a84 call void @finch_str_drop(ptr %a84) @@ -32737,7 +33620,7 @@ inrange2900: %t94 = load { ptr, i64, i64 }, ptr %a66 call void @finch.gen.label(ptr %t93, { ptr, i64, i64 } %t94) %t95 = load ptr, ptr %a1 - call void @finch.gen.bufText(ptr %t95, { ptr, i64, i64 } { ptr @.str.1812, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1813, i64 2, i64 0 }) + call void @finch.gen.bufText(ptr %t95, { ptr, i64, i64 } { ptr @.str.1840, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1841, i64 2, i64 0 }) %t96 = load ptr, ptr %a1 %t97 = load { ptr, i64, i64 }, ptr %a69 call void @finch.gen.br(ptr %t96, { ptr, i64, i64 } %t97) @@ -32748,14 +33631,14 @@ inrange2900: %t101 = load ptr, ptr %a1 %t102 = load %S.ast.Type, ptr %a49 %t103 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t101, %S.ast.Type %t102) - store { ptr, i64, i64 } { ptr @.str.1814, i64 23, i64 0 }, ptr %a105 + store { ptr, i64, i64 } { ptr @.str.1842, i64 23, i64 0 }, ptr %a105 store { ptr, i64, i64 } %t103, ptr %a106 call void @finch_str_concat(ptr %a104, ptr %a105, ptr %a106) store { ptr, i64, i64 } %t103, ptr %a107 call void @finch_str_drop(ptr %a107) %t108 = load { ptr, i64, i64 }, ptr %a104 store { ptr, i64, i64 } %t108, ptr %a110 - store { ptr, i64, i64 } { ptr @.str.1815, i64 6, i64 0 }, ptr %a111 + store { ptr, i64, i64 } { ptr @.str.1843, i64 6, i64 0 }, ptr %a111 call void @finch_str_concat(ptr %a109, ptr %a110, ptr %a111) store { ptr, i64, i64 } %t108, ptr %a112 call void @finch_str_drop(ptr %a112) @@ -32768,7 +33651,7 @@ inrange2900: call void @finch_str_drop(ptr %a118) %t119 = load { ptr, i64, i64 }, ptr %a115 store { ptr, i64, i64 } %t119, ptr %a121 - store { ptr, i64, i64 } { ptr @.str.1816, i64 6, i64 0 }, ptr %a122 + store { ptr, i64, i64 } { ptr @.str.1844, i64 6, i64 0 }, ptr %a122 call void @finch_str_concat(ptr %a120, ptr %a121, ptr %a122) store { ptr, i64, i64 } %t119, ptr %a123 call void @finch_str_drop(ptr %a123) @@ -32776,11 +33659,11 @@ inrange2900: %t125 = load { ptr, i64, i64 }, ptr %a63 %t126 = extractvalue { ptr, i64, i64 } %t125, 1 %t127 = icmp uge i64 3, %t126 - br i1 %t127, label %range2901, label %inrange2902 -range2901: - call void @finch_panic_index(ptr @.str.1817, i64 1119, i64 3, i64 %t126) + br i1 %t127, label %range2960, label %inrange2961 +range2960: + call void @finch_panic_index(ptr @.str.1845, i64 1145, i64 3, i64 %t126) unreachable -inrange2902: +inrange2961: %t128 = extractvalue { ptr, i64, i64 } %t125, 0 %t129 = getelementptr inbounds { ptr, i64, i64 }, ptr %t128, i64 3 %t130 = load { ptr, i64, i64 }, ptr %t129 @@ -32804,14 +33687,14 @@ inrange2902: store { ptr, i64, i64 } %t143, ptr %a146 call void @finch_str_drop(ptr %a146) %t147 = load %S.ast.Type, ptr %a49 - call void @finch.gen.emitFormat(ptr %t139, { ptr, i64, i64 } { ptr @.str.1818, i64 4, i64 0 }, { ptr, i64, i64 } %t145, %S.ast.Type %t147, i1 true) + call void @finch.gen.emitFormat(ptr %t139, { ptr, i64, i64 } { ptr @.str.1846, i64 4, i64 0 }, { ptr, i64, i64 } %t145, %S.ast.Type %t147, i1 true) store { ptr, i64, i64 } %t145, ptr %a148 call void @finch_str_drop(ptr %a148) %t149 = load ptr, ptr %a1 %t150 = load { ptr, i64, i64 }, ptr %a63 call void @finch.gen.loopEnd(ptr %t149, { ptr, i64, i64 } %t150) %t151 = load ptr, ptr %a1 - call void @finch.gen.bufText(ptr %t151, { ptr, i64, i64 } { ptr @.str.1819, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1820, i64 1, i64 0 }) + call void @finch.gen.bufText(ptr %t151, { ptr, i64, i64 } { ptr @.str.1847, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1848, i64 1, i64 0 }) call void @finch_str_drop(ptr %a138) call void @finch_str_drop(ptr %a88) call void @finch_str_drop(ptr %a69) @@ -32820,23 +33703,23 @@ inrange2902: call void @finch_str_drop(ptr %a58) call void @finch_str_drop(ptr %a52) call void @finch.drop.S_ast_Type(ptr %a49) - br label %endif2896 -else2895: + br label %endif2955 +else2954: %t152 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t153 = load { ptr, i64, i64 }, ptr %t152 store { ptr, i64, i64 } %t153, ptr %a154 - store { ptr, i64, i64 } { ptr @.str.1821, i64 4, i64 0 }, ptr %a155 + store { ptr, i64, i64 } { ptr @.str.1849, i64 4, i64 0 }, ptr %a155 %t156 = call i32 @finch_str_eq(ptr %a154, ptr %a155) %t157 = icmp ne i32 %t156, 0 - br i1 %t157, label %then2903, label %else2904 -then2903: + br i1 %t157, label %then2962, label %else2963 +then2962: %t158 = load ptr, ptr %a1 %t159 = icmp eq ptr %t158, null - br i1 %t159, label %panic2906, label %ok2907 -panic2906: - call void @finch_panic(ptr @.str.1822, i64 1125, ptr @.str.1823) + br i1 %t159, label %panic2965, label %ok2966 +panic2965: + call void @finch_panic(ptr @.str.1850, i64 1151, ptr @.str.1851) unreachable -ok2907: +ok2966: %t160 = getelementptr inbounds %S.gen.Gen, ptr %t158, i32 0, i32 21 %t161 = load ptr, ptr %a1 %t162 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 @@ -32847,11 +33730,11 @@ ok2907: %t167 = load { ptr, i64, i64 }, ptr %t160 %t168 = extractvalue { ptr, i64, i64 } %t167, 1 %t169 = icmp uge i64 %t166, %t168 - br i1 %t169, label %range2908, label %inrange2909 -range2908: - call void @finch_panic_index(ptr @.str.1824, i64 1125, i64 %t166, i64 %t168) + br i1 %t169, label %range2967, label %inrange2968 +range2967: + call void @finch_panic_index(ptr @.str.1852, i64 1151, i64 %t166, i64 %t168) unreachable -inrange2909: +inrange2968: %t170 = extractvalue { ptr, i64, i64 } %t167, 0 %t171 = getelementptr inbounds %S.gen.EnumDef, ptr %t170, i64 %t166 %t172 = load %S.gen.EnumDef, ptr %t171 @@ -32860,13 +33743,13 @@ inrange2909: %t175 = load %S.gen.EnumDef, ptr %a174 store %S.gen.EnumDef %t175, ptr %a176 %t177 = load ptr, ptr %a1 - %t178 = call { ptr, i64, i64 } @finch.gen.load(ptr %t177, { ptr, i64, i64 } { ptr @.str.1825, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.1826, i64 2, i64 0 }) + %t178 = call { ptr, i64, i64 } @finch.gen.load(ptr %t177, { ptr, i64, i64 } { ptr @.str.1853, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.1854, i64 2, i64 0 }) store { ptr, i64, i64 } %t178, ptr %a179 %t180 = load ptr, ptr %a1 - %t181 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t180, { ptr, i64, i64 } { ptr @.str.1827, i64 10, i64 0 }) + %t181 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t180, { ptr, i64, i64 } { ptr @.str.1855, i64 10, i64 0 }) store { ptr, i64, i64 } %t181, ptr %a182 %t183 = load ptr, ptr %a1 - %t184 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t183, { ptr, i64, i64 } { ptr @.str.1828, i64 9, i64 0 }) + %t184 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t183, { ptr, i64, i64 } { ptr @.str.1856, i64 9, i64 0 }) store { ptr, i64, i64 } %t184, ptr %a185 store { ptr, i64, i64 } zeroinitializer, ptr %a186 store { ptr, i64, i64 } zeroinitializer, ptr %a187 @@ -32874,15 +33757,15 @@ inrange2909: %t189 = getelementptr inbounds { ptr, i64, i64 }, ptr %t188, i32 0, i32 1 %t190 = load i64, ptr %t189 store i64 0, ptr %a191 - br label %for.cond2910 -for.cond2910: + br label %for.cond2969 +for.cond2969: %t192 = load i64, ptr %a191 %t193 = icmp slt i64 %t192, %t190 - br i1 %t193, label %for.body2911, label %for.end2913 -for.body2911: + br i1 %t193, label %for.body2970, label %for.end2972 +for.body2970: %t194 = getelementptr inbounds { ptr, i64, i64 }, ptr %a187, i32 0, i32 1 %t195 = load ptr, ptr %a1 - %t196 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t195, { ptr, i64, i64 } { ptr @.str.1829, i64 6, i64 0 }) + %t196 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t195, { ptr, i64, i64 } { ptr @.str.1857, i64 6, i64 0 }) %t197 = load i64, ptr %t194 %t198 = add i64 %t197, 1 call void @finch_arr_reserve(ptr %a187, i64 %t198, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) @@ -32896,24 +33779,24 @@ for.body2911: %t204 = load { ptr, i64, i64 }, ptr %t202 %t205 = extractvalue { ptr, i64, i64 } %t204, 1 %t206 = icmp uge i64 %t203, %t205 - br i1 %t206, label %range2914, label %inrange2915 -range2914: - call void @finch_panic_index(ptr @.str.1831, i64 1133, i64 %t203, i64 %t205) + br i1 %t206, label %range2973, label %inrange2974 +range2973: + call void @finch_panic_index(ptr @.str.1859, i64 1159, i64 %t203, i64 %t205) unreachable -inrange2915: +inrange2974: %t207 = extractvalue { ptr, i64, i64 } %t204, 0 %t208 = getelementptr inbounds i64, ptr %t207, i64 %t203 %t209 = load i64, ptr %t208 call void @finch_str_from_int(ptr %a210, i64 %t209) %t211 = load { ptr, i64, i64 }, ptr %a210 - store { ptr, i64, i64 } { ptr @.str.1830, i64 4, i64 0 }, ptr %a213 + store { ptr, i64, i64 } { ptr @.str.1858, i64 4, i64 0 }, ptr %a213 store { ptr, i64, i64 } %t211, ptr %a214 call void @finch_str_concat(ptr %a212, ptr %a213, ptr %a214) store { ptr, i64, i64 } %t211, ptr %a215 call void @finch_str_drop(ptr %a215) %t216 = load { ptr, i64, i64 }, ptr %a212 store { ptr, i64, i64 } %t216, ptr %a218 - store { ptr, i64, i64 } { ptr @.str.1832, i64 9, i64 0 }, ptr %a219 + store { ptr, i64, i64 } { ptr @.str.1860, i64 9, i64 0 }, ptr %a219 call void @finch_str_concat(ptr %a217, ptr %a218, ptr %a219) store { ptr, i64, i64 } %t216, ptr %a220 call void @finch_str_drop(ptr %a220) @@ -32922,11 +33805,11 @@ inrange2915: %t223 = load { ptr, i64, i64 }, ptr %a187 %t224 = extractvalue { ptr, i64, i64 } %t223, 1 %t225 = icmp uge i64 %t222, %t224 - br i1 %t225, label %range2916, label %inrange2917 -range2916: - call void @finch_panic_index(ptr @.str.1833, i64 1133, i64 %t222, i64 %t224) + br i1 %t225, label %range2975, label %inrange2976 +range2975: + call void @finch_panic_index(ptr @.str.1861, i64 1159, i64 %t222, i64 %t224) unreachable -inrange2917: +inrange2976: %t226 = extractvalue { ptr, i64, i64 } %t223, 0 %t227 = getelementptr inbounds { ptr, i64, i64 }, ptr %t226, i64 %t222 %t228 = load { ptr, i64, i64 }, ptr %t227 @@ -32943,21 +33826,21 @@ inrange2917: %t237 = getelementptr inbounds { ptr, i64, i64 }, ptr %t236, i64 %t234 store { ptr, i64, i64 } %t233, ptr %t237 store i64 %t235, ptr %t201 - br label %for.step2912 -for.step2912: + br label %for.step2971 +for.step2971: %t238 = load i64, ptr %a191 %t239 = add i64 %t238, 1 store i64 %t239, ptr %a191 - br label %for.cond2910 -for.end2913: + br label %for.cond2969 +for.end2972: %t240 = load ptr, ptr %a1 %t241 = load { ptr, i64, i64 }, ptr %a179 - store { ptr, i64, i64 } { ptr @.str.1834, i64 11, i64 0 }, ptr %a243 + store { ptr, i64, i64 } { ptr @.str.1862, i64 11, i64 0 }, ptr %a243 store { ptr, i64, i64 } %t241, ptr %a244 call void @finch_str_concat(ptr %a242, ptr %a243, ptr %a244) %t245 = load { ptr, i64, i64 }, ptr %a242 store { ptr, i64, i64 } %t245, ptr %a247 - store { ptr, i64, i64 } { ptr @.str.1835, i64 9, i64 0 }, ptr %a248 + store { ptr, i64, i64 } { ptr @.str.1863, i64 9, i64 0 }, ptr %a248 call void @finch_str_concat(ptr %a246, ptr %a247, ptr %a248) store { ptr, i64, i64 } %t245, ptr %a249 call void @finch_str_drop(ptr %a249) @@ -32970,13 +33853,13 @@ for.end2913: call void @finch_str_drop(ptr %a255) %t256 = load { ptr, i64, i64 }, ptr %a252 store { ptr, i64, i64 } %t256, ptr %a258 - store { ptr, i64, i64 } { ptr @.str.1836, i64 3, i64 0 }, ptr %a259 + store { ptr, i64, i64 } { ptr @.str.1864, i64 3, i64 0 }, ptr %a259 call void @finch_str_concat(ptr %a257, ptr %a258, ptr %a259) store { ptr, i64, i64 } %t256, ptr %a260 call void @finch_str_drop(ptr %a260) %t261 = load { ptr, i64, i64 }, ptr %a257 %t262 = getelementptr inbounds { ptr, i64, i64 }, ptr %a186, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.1837, i64 1, i64 0 }, ptr %a263 + store { ptr, i64, i64 } { ptr @.str.1865, i64 1, i64 0 }, ptr %a263 call void @finch_str_join(ptr %a264, ptr %a186, ptr %a263) %t265 = load { ptr, i64, i64 }, ptr %a264 store { ptr, i64, i64 } %t261, ptr %a267 @@ -32988,7 +33871,7 @@ for.end2913: call void @finch_str_drop(ptr %a270) %t271 = load { ptr, i64, i64 }, ptr %a266 store { ptr, i64, i64 } %t271, ptr %a273 - store { ptr, i64, i64 } { ptr @.str.1838, i64 2, i64 0 }, ptr %a274 + store { ptr, i64, i64 } { ptr @.str.1866, i64 2, i64 0 }, ptr %a274 call void @finch_str_concat(ptr %a272, ptr %a273, ptr %a274) store { ptr, i64, i64 } %t271, ptr %a275 call void @finch_str_drop(ptr %a275) @@ -32998,33 +33881,33 @@ for.end2913: call void @finch_str_drop(ptr %a277) %t278 = load ptr, ptr %a1 %t279 = icmp eq ptr %t278, null - br i1 %t279, label %panic2918, label %ok2919 -panic2918: - call void @finch_panic(ptr @.str.1839, i64 1136, ptr @.str.1840) + br i1 %t279, label %panic2977, label %ok2978 +panic2977: + call void @finch_panic(ptr @.str.1867, i64 1162, ptr @.str.1868) unreachable -ok2919: +ok2978: %t280 = getelementptr inbounds %S.gen.Gen, ptr %t278, i32 0, i32 9 store i1 true, ptr %t280 %t281 = getelementptr inbounds %S.gen.EnumDef, ptr %a176, i32 0, i32 2 %t282 = getelementptr inbounds { ptr, i64, i64 }, ptr %t281, i32 0, i32 1 %t283 = load i64, ptr %t282 store i64 0, ptr %a284 - br label %for.cond2920 -for.cond2920: + br label %for.cond2979 +for.cond2979: %t285 = load i64, ptr %a284 %t286 = icmp slt i64 %t285, %t283 - br i1 %t286, label %for.body2921, label %for.end2923 -for.body2921: + br i1 %t286, label %for.body2980, label %for.end2982 +for.body2980: %t287 = load ptr, ptr %a1 %t288 = load i64, ptr %a284 %t289 = load { ptr, i64, i64 }, ptr %a187 %t290 = extractvalue { ptr, i64, i64 } %t289, 1 %t291 = icmp uge i64 %t288, %t290 - br i1 %t291, label %range2924, label %inrange2925 -range2924: - call void @finch_panic_index(ptr @.str.1841, i64 1138, i64 %t288, i64 %t290) + br i1 %t291, label %range2983, label %inrange2984 +range2983: + call void @finch_panic_index(ptr @.str.1869, i64 1164, i64 %t288, i64 %t290) unreachable -inrange2925: +inrange2984: %t292 = extractvalue { ptr, i64, i64 } %t289, 0 %t293 = getelementptr inbounds { ptr, i64, i64 }, ptr %t292, i64 %t288 %t294 = load { ptr, i64, i64 }, ptr %t293 @@ -33035,25 +33918,25 @@ inrange2925: %t298 = load { ptr, i64, i64 }, ptr %t296 %t299 = extractvalue { ptr, i64, i64 } %t298, 1 %t300 = icmp uge i64 %t297, %t299 - br i1 %t300, label %range2926, label %inrange2927 -range2926: - call void @finch_panic_index(ptr @.str.1843, i64 1139, i64 %t297, i64 %t299) + br i1 %t300, label %range2985, label %inrange2986 +range2985: + call void @finch_panic_index(ptr @.str.1871, i64 1165, i64 %t297, i64 %t299) unreachable -inrange2927: +inrange2986: %t301 = extractvalue { ptr, i64, i64 } %t298, 0 %t302 = getelementptr inbounds { ptr, i64, i64 }, ptr %t301, i64 %t297 %t303 = load { ptr, i64, i64 }, ptr %t302 - call void @finch.gen.bufText(ptr %t295, { ptr, i64, i64 } { ptr @.str.1842, i64 4, i64 0 }, { ptr, i64, i64 } %t303) + call void @finch.gen.bufText(ptr %t295, { ptr, i64, i64 } { ptr @.str.1870, i64 4, i64 0 }, { ptr, i64, i64 } %t303) %t304 = load ptr, ptr %a1 %t305 = load { ptr, i64, i64 }, ptr %a185 call void @finch.gen.br(ptr %t304, { ptr, i64, i64 } %t305) - br label %for.step2922 -for.step2922: + br label %for.step2981 +for.step2981: %t306 = load i64, ptr %a284 %t307 = add i64 %t306, 1 store i64 %t307, ptr %a284 - br label %for.cond2920 -for.end2923: + br label %for.cond2979 +for.end2982: %t308 = load ptr, ptr %a1 %t309 = load { ptr, i64, i64 }, ptr %a182 call void @finch.gen.label(ptr %t308, { ptr, i64, i64 } %t309) @@ -33061,21 +33944,21 @@ for.end2923: %t311 = getelementptr inbounds %S.gen.EnumDef, ptr %a176, i32 0, i32 1 %t312 = load { ptr, i64, i64 }, ptr %t311 store { ptr, i64, i64 } %t312, ptr %a314 - store { ptr, i64, i64 } { ptr @.str.1845, i64 1, i64 0 }, ptr %a315 + store { ptr, i64, i64 } { ptr @.str.1873, i64 1, i64 0 }, ptr %a315 call void @finch_str_concat(ptr %a313, ptr %a314, ptr %a315) %t316 = load { ptr, i64, i64 }, ptr %a313 - call void @finch.gen.bufText(ptr %t310, { ptr, i64, i64 } { ptr @.str.1844, i64 4, i64 0 }, { ptr, i64, i64 } %t316) + call void @finch.gen.bufText(ptr %t310, { ptr, i64, i64 } { ptr @.str.1872, i64 4, i64 0 }, { ptr, i64, i64 } %t316) store { ptr, i64, i64 } %t316, ptr %a317 call void @finch_str_drop(ptr %a317) %t318 = load ptr, ptr %a1 %t319 = load ptr, ptr %a1 %t320 = load { ptr, i64, i64 }, ptr %a179 - store { ptr, i64, i64 } { ptr @.str.1847, i64 9, i64 0 }, ptr %a322 + store { ptr, i64, i64 } { ptr @.str.1875, i64 9, i64 0 }, ptr %a322 store { ptr, i64, i64 } %t320, ptr %a323 call void @finch_str_concat(ptr %a321, ptr %a322, ptr %a323) %t324 = load { ptr, i64, i64 }, ptr %a321 store { ptr, i64, i64 } %t324, ptr %a326 - store { ptr, i64, i64 } { ptr @.str.1848, i64 7, i64 0 }, ptr %a327 + store { ptr, i64, i64 } { ptr @.str.1876, i64 7, i64 0 }, ptr %a327 call void @finch_str_concat(ptr %a325, ptr %a326, ptr %a327) store { ptr, i64, i64 } %t324, ptr %a328 call void @finch_str_drop(ptr %a328) @@ -33083,14 +33966,14 @@ for.end2923: %t330 = call { ptr, i64, i64 } @finch.gen.op(ptr %t319, { ptr, i64, i64 } %t329) store { ptr, i64, i64 } %t329, ptr %a331 call void @finch_str_drop(ptr %a331) - store { ptr, i64, i64 } { ptr @.str.1846, i64 39, i64 0 }, ptr %a333 + store { ptr, i64, i64 } { ptr @.str.1874, i64 39, i64 0 }, ptr %a333 store { ptr, i64, i64 } %t330, ptr %a334 call void @finch_str_concat(ptr %a332, ptr %a333, ptr %a334) store { ptr, i64, i64 } %t330, ptr %a335 call void @finch_str_drop(ptr %a335) %t336 = load { ptr, i64, i64 }, ptr %a332 store { ptr, i64, i64 } %t336, ptr %a338 - store { ptr, i64, i64 } { ptr @.str.1849, i64 1, i64 0 }, ptr %a339 + store { ptr, i64, i64 } { ptr @.str.1877, i64 1, i64 0 }, ptr %a339 call void @finch_str_concat(ptr %a337, ptr %a338, ptr %a339) store { ptr, i64, i64 } %t336, ptr %a340 call void @finch_str_drop(ptr %a340) @@ -33099,7 +33982,7 @@ for.end2923: store { ptr, i64, i64 } %t341, ptr %a342 call void @finch_str_drop(ptr %a342) %t343 = load ptr, ptr %a1 - call void @finch.gen.bufText(ptr %t343, { ptr, i64, i64 } { ptr @.str.1850, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1851, i64 1, i64 0 }) + call void @finch.gen.bufText(ptr %t343, { ptr, i64, i64 } { ptr @.str.1878, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1879, i64 1, i64 0 }) %t344 = load ptr, ptr %a1 %t345 = load { ptr, i64, i64 }, ptr %a185 call void @finch.gen.br(ptr %t344, { ptr, i64, i64 } %t345) @@ -33112,37 +33995,37 @@ for.end2923: call void @finch_str_drop(ptr %a182) call void @finch_str_drop(ptr %a179) call void @finch.drop.S_gen_EnumDef(ptr %a176) - br label %endif2905 -else2904: + br label %endif2964 +else2963: %t348 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t349 = load { ptr, i64, i64 }, ptr %t348 store { ptr, i64, i64 } %t349, ptr %a350 - store { ptr, i64, i64 } { ptr @.str.1852, i64 3, i64 0 }, ptr %a351 + store { ptr, i64, i64 } { ptr @.str.1880, i64 3, i64 0 }, ptr %a351 %t352 = call i32 @finch_str_eq(ptr %a350, ptr %a351) %t353 = icmp ne i32 %t352, 0 - br i1 %t353, label %then2928, label %else2929 -then2928: + br i1 %t353, label %then2987, label %else2988 +then2987: %t354 = load ptr, ptr %a1 - %t355 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t354, { ptr, i64, i64 } { ptr @.str.1853, i64 2, i64 0 }) + %t355 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t354, { ptr, i64, i64 } { ptr @.str.1881, i64 2, i64 0 }) store { ptr, i64, i64 } %t355, ptr %a356 %t357 = load ptr, ptr %a1 %t358 = load { ptr, i64, i64 }, ptr %a356 - call void @finch.gen.store(ptr %t357, { ptr, i64, i64 } { ptr @.str.1854, i64 2, i64 0 }, { ptr, i64, i64 } { ptr @.str.1855, i64 4, i64 0 }, { ptr, i64, i64 } %t358) + call void @finch.gen.store(ptr %t357, { ptr, i64, i64 } { ptr @.str.1882, i64 2, i64 0 }, { ptr, i64, i64 } { ptr @.str.1883, i64 4, i64 0 }, { ptr, i64, i64 } %t358) %t359 = load ptr, ptr %a1 - call void @finch.gen.bufText(ptr %t359, { ptr, i64, i64 } { ptr @.str.1856, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1857, i64 1, i64 0 }) + call void @finch.gen.bufText(ptr %t359, { ptr, i64, i64 } { ptr @.str.1884, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1885, i64 1, i64 0 }) %t360 = load ptr, ptr %a1 %t361 = load ptr, ptr %a1 %t362 = load ptr, ptr %a1 %t363 = load %S.ast.Type, ptr %a2 %t364 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t362, %S.ast.Type %t363) - store { ptr, i64, i64 } { ptr @.str.1859, i64 23, i64 0 }, ptr %a366 + store { ptr, i64, i64 } { ptr @.str.1887, i64 23, i64 0 }, ptr %a366 store { ptr, i64, i64 } %t364, ptr %a367 call void @finch_str_concat(ptr %a365, ptr %a366, ptr %a367) store { ptr, i64, i64 } %t364, ptr %a368 call void @finch_str_drop(ptr %a368) %t369 = load { ptr, i64, i64 }, ptr %a365 store { ptr, i64, i64 } %t369, ptr %a371 - store { ptr, i64, i64 } { ptr @.str.1860, i64 22, i64 0 }, ptr %a372 + store { ptr, i64, i64 } { ptr @.str.1888, i64 22, i64 0 }, ptr %a372 call void @finch_str_concat(ptr %a370, ptr %a371, ptr %a372) store { ptr, i64, i64 } %t369, ptr %a373 call void @finch_str_drop(ptr %a373) @@ -33150,7 +34033,7 @@ then2928: %t375 = call { ptr, i64, i64 } @finch.gen.op(ptr %t361, { ptr, i64, i64 } %t374) store { ptr, i64, i64 } %t374, ptr %a376 call void @finch_str_drop(ptr %a376) - %t377 = call { ptr, i64, i64 } @finch.gen.load(ptr %t360, { ptr, i64, i64 } { ptr @.str.1858, i64 3, i64 0 }, { ptr, i64, i64 } %t375) + %t377 = call { ptr, i64, i64 } @finch.gen.load(ptr %t360, { ptr, i64, i64 } { ptr @.str.1886, i64 3, i64 0 }, { ptr, i64, i64 } %t375) store { ptr, i64, i64 } %t375, ptr %a378 call void @finch_str_drop(ptr %a378) store { ptr, i64, i64 } %t377, ptr %a379 @@ -33163,21 +34046,21 @@ then2928: %t386 = load { ptr, i64, i64 }, ptr %a383 %t387 = extractvalue { ptr, i64, i64 } %t386, 1 %t388 = icmp uge i64 3, %t387 - br i1 %t388, label %range2931, label %inrange2932 -range2931: - call void @finch_panic_index(ptr @.str.1862, i64 1155, i64 3, i64 %t387) + br i1 %t388, label %range2990, label %inrange2991 +range2990: + call void @finch_panic_index(ptr @.str.1890, i64 1181, i64 3, i64 %t387) unreachable -inrange2932: +inrange2991: %t389 = extractvalue { ptr, i64, i64 } %t386, 0 %t390 = getelementptr inbounds { ptr, i64, i64 }, ptr %t389, i64 3 %t391 = load { ptr, i64, i64 }, ptr %t390 - %t392 = call { ptr, i64, i64 } @finch.gen.entryAt(ptr %t384, { ptr, i64, i64 } { ptr @.str.1861, i64 2, i64 0 }, %S.ast.Type %t385, { ptr, i64, i64 } %t391) + %t392 = call { ptr, i64, i64 } @finch.gen.entryAt(ptr %t384, { ptr, i64, i64 } { ptr @.str.1889, i64 2, i64 0 }, %S.ast.Type %t385, { ptr, i64, i64 } %t391) store { ptr, i64, i64 } %t392, ptr %a393 %t394 = load ptr, ptr %a1 - %t395 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t394, { ptr, i64, i64 } { ptr @.str.1863, i64 10, i64 0 }) + %t395 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t394, { ptr, i64, i64 } { ptr @.str.1891, i64 10, i64 0 }) store { ptr, i64, i64 } %t395, ptr %a396 %t397 = load ptr, ptr %a1 - %t398 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t397, { ptr, i64, i64 } { ptr @.str.1864, i64 10, i64 0 }) + %t398 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t397, { ptr, i64, i64 } { ptr @.str.1892, i64 10, i64 0 }) store { ptr, i64, i64 } %t398, ptr %a399 %t400 = load ptr, ptr %a1 %t401 = load ptr, ptr %a1 @@ -33186,17 +34069,17 @@ inrange2932: %t404 = load { ptr, i64, i64 }, ptr %a393 %t405 = load %S.ast.Type, ptr %a2 %t406 = call { ptr, i64, i64 } @finch.gen.entryField(ptr %t403, { ptr, i64, i64 } %t404, %S.ast.Type %t405, i64 0) - %t407 = call { ptr, i64, i64 } @finch.gen.load(ptr %t402, { ptr, i64, i64 } { ptr @.str.1866, i64 3, i64 0 }, { ptr, i64, i64 } %t406) + %t407 = call { ptr, i64, i64 } @finch.gen.load(ptr %t402, { ptr, i64, i64 } { ptr @.str.1894, i64 3, i64 0 }, { ptr, i64, i64 } %t406) store { ptr, i64, i64 } %t406, ptr %a408 call void @finch_str_drop(ptr %a408) - store { ptr, i64, i64 } { ptr @.str.1865, i64 12, i64 0 }, ptr %a410 + store { ptr, i64, i64 } { ptr @.str.1893, i64 12, i64 0 }, ptr %a410 store { ptr, i64, i64 } %t407, ptr %a411 call void @finch_str_concat(ptr %a409, ptr %a410, ptr %a411) store { ptr, i64, i64 } %t407, ptr %a412 call void @finch_str_drop(ptr %a412) %t413 = load { ptr, i64, i64 }, ptr %a409 store { ptr, i64, i64 } %t413, ptr %a415 - store { ptr, i64, i64 } { ptr @.str.1867, i64 3, i64 0 }, ptr %a416 + store { ptr, i64, i64 } { ptr @.str.1895, i64 3, i64 0 }, ptr %a416 call void @finch_str_concat(ptr %a414, ptr %a415, ptr %a416) store { ptr, i64, i64 } %t413, ptr %a417 call void @finch_str_drop(ptr %a417) @@ -33213,15 +34096,15 @@ inrange2932: %t425 = load { ptr, i64, i64 }, ptr %a396 call void @finch.gen.label(ptr %t424, { ptr, i64, i64 } %t425) %t426 = load ptr, ptr %a1 - %t427 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t426, { ptr, i64, i64 } { ptr @.str.1868, i64 3, i64 0 }) + %t427 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t426, { ptr, i64, i64 } { ptr @.str.1896, i64 3, i64 0 }) store { ptr, i64, i64 } %t427, ptr %a428 %t429 = load ptr, ptr %a1 - %t430 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t429, { ptr, i64, i64 } { ptr @.str.1869, i64 4, i64 0 }) + %t430 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t429, { ptr, i64, i64 } { ptr @.str.1897, i64 4, i64 0 }) store { ptr, i64, i64 } %t430, ptr %a431 %t432 = load ptr, ptr %a1 %t433 = load ptr, ptr %a1 %t434 = load { ptr, i64, i64 }, ptr %a356 - %t435 = call { ptr, i64, i64 } @finch.gen.load(ptr %t433, { ptr, i64, i64 } { ptr @.str.1870, i64 2, i64 0 }, { ptr, i64, i64 } %t434) + %t435 = call { ptr, i64, i64 } @finch.gen.load(ptr %t433, { ptr, i64, i64 } { ptr @.str.1898, i64 2, i64 0 }, { ptr, i64, i64 } %t434) %t436 = load { ptr, i64, i64 }, ptr %a431 %t437 = load { ptr, i64, i64 }, ptr %a428 call void @finch.gen.condBr(ptr %t432, { ptr, i64, i64 } %t435, { ptr, i64, i64 } %t436, { ptr, i64, i64 } %t437) @@ -33231,7 +34114,7 @@ inrange2932: %t440 = load { ptr, i64, i64 }, ptr %a428 call void @finch.gen.label(ptr %t439, { ptr, i64, i64 } %t440) %t441 = load ptr, ptr %a1 - call void @finch.gen.bufText(ptr %t441, { ptr, i64, i64 } { ptr @.str.1871, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1872, i64 2, i64 0 }) + call void @finch.gen.bufText(ptr %t441, { ptr, i64, i64 } { ptr @.str.1899, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1900, i64 2, i64 0 }) %t442 = load ptr, ptr %a1 %t443 = load { ptr, i64, i64 }, ptr %a431 call void @finch.gen.br(ptr %t442, { ptr, i64, i64 } %t443) @@ -33240,7 +34123,7 @@ inrange2932: call void @finch.gen.label(ptr %t444, { ptr, i64, i64 } %t445) %t446 = load ptr, ptr %a1 %t447 = load { ptr, i64, i64 }, ptr %a356 - call void @finch.gen.store(ptr %t446, { ptr, i64, i64 } { ptr @.str.1873, i64 2, i64 0 }, { ptr, i64, i64 } { ptr @.str.1874, i64 5, i64 0 }, { ptr, i64, i64 } %t447) + call void @finch.gen.store(ptr %t446, { ptr, i64, i64 } { ptr @.str.1901, i64 2, i64 0 }, { ptr, i64, i64 } { ptr @.str.1902, i64 5, i64 0 }, { ptr, i64, i64 } %t447) %t448 = load ptr, ptr %a1 %t449 = load ptr, ptr %a1 %t450 = load ptr, ptr %a1 @@ -33248,11 +34131,11 @@ inrange2932: %t452 = load { ptr, i64, i64 }, ptr %t451 %t453 = extractvalue { ptr, i64, i64 } %t452, 1 %t454 = icmp uge i64 0, %t453 - br i1 %t454, label %range2933, label %inrange2934 -range2933: - call void @finch_panic_index(ptr @.str.1876, i64 1168, i64 0, i64 %t453) + br i1 %t454, label %range2992, label %inrange2993 +range2992: + call void @finch_panic_index(ptr @.str.1904, i64 1194, i64 0, i64 %t453) unreachable -inrange2934: +inrange2993: %t455 = extractvalue { ptr, i64, i64 } %t452, 0 %t456 = getelementptr inbounds %S.ast.Type, ptr %t455, i64 0 %t457 = load %S.ast.Type, ptr %t456 @@ -33270,19 +34153,19 @@ inrange2934: %t467 = load { ptr, i64, i64 }, ptr %t466 %t468 = extractvalue { ptr, i64, i64 } %t467, 1 %t469 = icmp uge i64 0, %t468 - br i1 %t469, label %range2935, label %inrange2936 -range2935: - call void @finch_panic_index(ptr @.str.1877, i64 1168, i64 0, i64 %t468) + br i1 %t469, label %range2994, label %inrange2995 +range2994: + call void @finch_panic_index(ptr @.str.1905, i64 1194, i64 0, i64 %t468) unreachable -inrange2936: +inrange2995: %t470 = extractvalue { ptr, i64, i64 } %t467, 0 %t471 = getelementptr inbounds %S.ast.Type, ptr %t470, i64 0 %t472 = load %S.ast.Type, ptr %t471 - call void @finch.gen.emitFormat(ptr %t448, { ptr, i64, i64 } { ptr @.str.1875, i64 4, i64 0 }, { ptr, i64, i64 } %t463, %S.ast.Type %t472, i1 true) + call void @finch.gen.emitFormat(ptr %t448, { ptr, i64, i64 } { ptr @.str.1903, i64 4, i64 0 }, { ptr, i64, i64 } %t463, %S.ast.Type %t472, i1 true) store { ptr, i64, i64 } %t463, ptr %a473 call void @finch_str_drop(ptr %a473) %t474 = load ptr, ptr %a1 - call void @finch.gen.bufText(ptr %t474, { ptr, i64, i64 } { ptr @.str.1878, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1879, i64 2, i64 0 }) + call void @finch.gen.bufText(ptr %t474, { ptr, i64, i64 } { ptr @.str.1906, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1907, i64 2, i64 0 }) %t475 = load ptr, ptr %a1 %t476 = load ptr, ptr %a1 %t477 = load ptr, ptr %a1 @@ -33290,11 +34173,11 @@ inrange2936: %t479 = load { ptr, i64, i64 }, ptr %t478 %t480 = extractvalue { ptr, i64, i64 } %t479, 1 %t481 = icmp uge i64 1, %t480 - br i1 %t481, label %range2937, label %inrange2938 -range2937: - call void @finch_panic_index(ptr @.str.1881, i64 1170, i64 1, i64 %t480) + br i1 %t481, label %range2996, label %inrange2997 +range2996: + call void @finch_panic_index(ptr @.str.1909, i64 1196, i64 1, i64 %t480) unreachable -inrange2938: +inrange2997: %t482 = extractvalue { ptr, i64, i64 } %t479, 0 %t483 = getelementptr inbounds %S.ast.Type, ptr %t482, i64 1 %t484 = load %S.ast.Type, ptr %t483 @@ -33312,15 +34195,15 @@ inrange2938: %t494 = load { ptr, i64, i64 }, ptr %t493 %t495 = extractvalue { ptr, i64, i64 } %t494, 1 %t496 = icmp uge i64 1, %t495 - br i1 %t496, label %range2939, label %inrange2940 -range2939: - call void @finch_panic_index(ptr @.str.1882, i64 1170, i64 1, i64 %t495) + br i1 %t496, label %range2998, label %inrange2999 +range2998: + call void @finch_panic_index(ptr @.str.1910, i64 1196, i64 1, i64 %t495) unreachable -inrange2940: +inrange2999: %t497 = extractvalue { ptr, i64, i64 } %t494, 0 %t498 = getelementptr inbounds %S.ast.Type, ptr %t497, i64 1 %t499 = load %S.ast.Type, ptr %t498 - call void @finch.gen.emitFormat(ptr %t475, { ptr, i64, i64 } { ptr @.str.1880, i64 4, i64 0 }, { ptr, i64, i64 } %t490, %S.ast.Type %t499, i1 true) + call void @finch.gen.emitFormat(ptr %t475, { ptr, i64, i64 } { ptr @.str.1908, i64 4, i64 0 }, { ptr, i64, i64 } %t490, %S.ast.Type %t499, i1 true) store { ptr, i64, i64 } %t490, ptr %a500 call void @finch_str_drop(ptr %a500) %t501 = load ptr, ptr %a1 @@ -33333,7 +34216,7 @@ inrange2940: %t506 = load { ptr, i64, i64 }, ptr %a383 call void @finch.gen.loopEnd(ptr %t505, { ptr, i64, i64 } %t506) %t507 = load ptr, ptr %a1 - call void @finch.gen.bufText(ptr %t507, { ptr, i64, i64 } { ptr @.str.1883, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1884, i64 1, i64 0 }) + call void @finch.gen.bufText(ptr %t507, { ptr, i64, i64 } { ptr @.str.1911, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1912, i64 1, i64 0 }) call void @finch_str_drop(ptr %a431) call void @finch_str_drop(ptr %a428) call void @finch_str_drop(ptr %a399) @@ -33342,216 +34225,705 @@ inrange2940: call void @finch.drop.arr_str(ptr %a383) call void @finch_str_drop(ptr %a379) call void @finch_str_drop(ptr %a356) - br label %endif2930 -else2929: - %t508 = load ptr, ptr %a1 - %t509 = icmp eq ptr %t508, null - br i1 %t509, label %panic2941, label %ok2942 -panic2941: - call void @finch_panic(ptr @.str.1885, i64 1176, ptr @.str.1886) + br label %endif2989 +else2988: + %t508 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 + %t509 = load { ptr, i64, i64 }, ptr %t508 + store { ptr, i64, i64 } %t509, ptr %a510 + store { ptr, i64, i64 } { ptr @.str.1913, i64 6, i64 0 }, ptr %a511 + %t512 = call i32 @finch_str_eq(ptr %a510, ptr %a511) + %t513 = icmp ne i32 %t512, 0 + br label %logic.from3000 +logic.from3000: + br i1 %t513, label %logic.rhs3001, label %logic.end3002 +logic.rhs3001: + %t514 = load ptr, ptr %a1 + %t515 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 + %t516 = load { ptr, i64, i64 }, ptr %t515 + %t517 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 + %t518 = load { ptr, i64, i64 }, ptr %t517 + %t519 = call i64 @finch.gen.findSum(ptr %t514, { ptr, i64, i64 } %t516, { ptr, i64, i64 } %t518) + %t520 = icmp sge i64 %t519, 0 + br label %logic.rend3003 +logic.rend3003: + br label %logic.end3002 +logic.end3002: + %t521 = phi i1 [ false, %logic.from3000 ], [ %t520, %logic.rend3003 ] + br i1 %t521, label %then3004, label %else3005 +then3004: + %t522 = load ptr, ptr %a1 + %t523 = icmp eq ptr %t522, null + br i1 %t523, label %panic3007, label %ok3008 +panic3007: + call void @finch_panic(ptr @.str.1914, i64 1203, ptr @.str.1915) unreachable -ok2942: - %t510 = getelementptr inbounds %S.gen.Gen, ptr %t508, i32 0, i32 16 - %t511 = load ptr, ptr %a1 - %t512 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 - %t513 = load { ptr, i64, i64 }, ptr %t512 - %t514 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 - %t515 = load { ptr, i64, i64 }, ptr %t514 - %t516 = call i64 @finch.gen.findStruct(ptr %t511, { ptr, i64, i64 } %t513, { ptr, i64, i64 } %t515) - %t517 = load { ptr, i64, i64 }, ptr %t510 - %t518 = extractvalue { ptr, i64, i64 } %t517, 1 - %t519 = icmp uge i64 %t516, %t518 - br i1 %t519, label %range2943, label %inrange2944 -range2943: - call void @finch_panic_index(ptr @.str.1887, i64 1176, i64 %t516, i64 %t518) +ok3008: + %t524 = getelementptr inbounds %S.gen.Gen, ptr %t522, i32 0, i32 22 + %t525 = load ptr, ptr %a1 + %t526 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 + %t527 = load { ptr, i64, i64 }, ptr %t526 + %t528 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 + %t529 = load { ptr, i64, i64 }, ptr %t528 + %t530 = call i64 @finch.gen.findSum(ptr %t525, { ptr, i64, i64 } %t527, { ptr, i64, i64 } %t529) + %t531 = load { ptr, i64, i64 }, ptr %t524 + %t532 = extractvalue { ptr, i64, i64 } %t531, 1 + %t533 = icmp uge i64 %t530, %t532 + br i1 %t533, label %range3009, label %inrange3010 +range3009: + call void @finch_panic_index(ptr @.str.1916, i64 1203, i64 %t530, i64 %t532) unreachable -inrange2944: - %t520 = extractvalue { ptr, i64, i64 } %t517, 0 - %t521 = getelementptr inbounds %S.gen.StructDef, ptr %t520, i64 %t516 - %t522 = load %S.gen.StructDef, ptr %t521 - store %S.gen.StructDef %t522, ptr %a523 - call void @finch.copy.S_gen_StructDef(ptr %a524, ptr %a523) - %t525 = load %S.gen.StructDef, ptr %a524 - store %S.gen.StructDef %t525, ptr %a526 - %t527 = load ptr, ptr %a1 - %t528 = load %S.ast.Type, ptr %a2 - %t529 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t527, %S.ast.Type %t528) - store { ptr, i64, i64 } %t529, ptr %a530 - %t531 = load ptr, ptr %a1 - %t532 = getelementptr inbounds %S.gen.StructDef, ptr %a526, i32 0, i32 1 - %t533 = load { ptr, i64, i64 }, ptr %t532 - store { ptr, i64, i64 } %t533, ptr %a535 - store { ptr, i64, i64 } { ptr @.str.1889, i64 1, i64 0 }, ptr %a536 - call void @finch_str_concat(ptr %a534, ptr %a535, ptr %a536) - %t537 = load { ptr, i64, i64 }, ptr %a534 - call void @finch.gen.bufText(ptr %t531, { ptr, i64, i64 } { ptr @.str.1888, i64 4, i64 0 }, { ptr, i64, i64 } %t537) - store { ptr, i64, i64 } %t537, ptr %a538 - call void @finch_str_drop(ptr %a538) - %t539 = getelementptr inbounds %S.gen.StructDef, ptr %a526, i32 0, i32 12 - %t540 = getelementptr inbounds { ptr, i64, i64 }, ptr %t539, i32 0, i32 1 - %t541 = load i64, ptr %t540 - store i64 0, ptr %a542 - br label %for.cond2945 -for.cond2945: - %t543 = load i64, ptr %a542 - %t544 = icmp slt i64 %t543, %t541 - br i1 %t544, label %for.body2946, label %for.end2948 -for.body2946: - store { ptr, i64, i64 } { ptr @.str.1890, i64 2, i64 0 }, ptr %a545 - %t546 = load i64, ptr %a542 - %t547 = icmp eq i64 %t546, 0 - br i1 %t547, label %then2949, label %endif2951 -then2949: - %t548 = load { ptr, i64, i64 }, ptr %a545 - store { ptr, i64, i64 } { ptr @.str.1891, i64 0, i64 0 }, ptr %a545 - store { ptr, i64, i64 } %t548, ptr %a549 - call void @finch_str_drop(ptr %a549) - br label %endif2951 -endif2951: - %t550 = load ptr, ptr %a1 - %t551 = load { ptr, i64, i64 }, ptr %a545 - %t552 = getelementptr inbounds %S.gen.StructDef, ptr %a526, i32 0, i32 11 - %t553 = load i64, ptr %a542 - %t554 = load { ptr, i64, i64 }, ptr %t552 - %t555 = extractvalue { ptr, i64, i64 } %t554, 1 - %t556 = icmp uge i64 %t553, %t555 - br i1 %t556, label %range2952, label %inrange2953 -range2952: - call void @finch_panic_index(ptr @.str.1893, i64 1184, i64 %t553, i64 %t555) +inrange3010: + %t534 = extractvalue { ptr, i64, i64 } %t531, 0 + %t535 = getelementptr inbounds %S.gen.SumDef, ptr %t534, i64 %t530 + %t536 = load %S.gen.SumDef, ptr %t535 + store %S.gen.SumDef %t536, ptr %a537 + call void @finch.copy.S_gen_SumDef(ptr %a538, ptr %a537) + %t539 = load %S.gen.SumDef, ptr %a538 + store %S.gen.SumDef %t539, ptr %a540 + %t541 = load ptr, ptr %a1 + %t542 = icmp eq ptr %t541, null + br i1 %t542, label %panic3011, label %ok3012 +panic3011: + call void @finch_panic(ptr @.str.1917, i64 1204, ptr @.str.1918) unreachable -inrange2953: - %t557 = extractvalue { ptr, i64, i64 } %t554, 0 - %t558 = getelementptr inbounds { ptr, i64, i64 }, ptr %t557, i64 %t553 - %t559 = load { ptr, i64, i64 }, ptr %t558 - store { ptr, i64, i64 } %t551, ptr %a561 - store { ptr, i64, i64 } %t559, ptr %a562 - call void @finch_str_concat(ptr %a560, ptr %a561, ptr %a562) - %t563 = load { ptr, i64, i64 }, ptr %a560 - store { ptr, i64, i64 } %t563, ptr %a565 - store { ptr, i64, i64 } { ptr @.str.1894, i64 2, i64 0 }, ptr %a566 - call void @finch_str_concat(ptr %a564, ptr %a565, ptr %a566) - store { ptr, i64, i64 } %t563, ptr %a567 - call void @finch_str_drop(ptr %a567) - %t568 = load { ptr, i64, i64 }, ptr %a564 - call void @finch.gen.bufText(ptr %t550, { ptr, i64, i64 } { ptr @.str.1892, i64 4, i64 0 }, { ptr, i64, i64 } %t568) - store { ptr, i64, i64 } %t568, ptr %a569 - call void @finch_str_drop(ptr %a569) - %t570 = load ptr, ptr %a1 - %t571 = load { ptr, i64, i64 }, ptr %a530 - store { ptr, i64, i64 } { ptr @.str.1895, i64 23, i64 0 }, ptr %a573 - store { ptr, i64, i64 } %t571, ptr %a574 - call void @finch_str_concat(ptr %a572, ptr %a573, ptr %a574) - %t575 = load { ptr, i64, i64 }, ptr %a572 - store { ptr, i64, i64 } %t575, ptr %a577 - store { ptr, i64, i64 } { ptr @.str.1896, i64 21, i64 0 }, ptr %a578 - call void @finch_str_concat(ptr %a576, ptr %a577, ptr %a578) - store { ptr, i64, i64 } %t575, ptr %a579 - call void @finch_str_drop(ptr %a579) - %t580 = load { ptr, i64, i64 }, ptr %a576 - %t581 = getelementptr inbounds %S.gen.StructDef, ptr %a526, i32 0, i32 3 - %t582 = load i64, ptr %a542 - %t583 = load { ptr, i64, i64 }, ptr %t581 - %t584 = extractvalue { ptr, i64, i64 } %t583, 1 - %t585 = icmp uge i64 %t582, %t584 - br i1 %t585, label %range2954, label %inrange2955 -range2954: - call void @finch_panic_index(ptr @.str.1897, i64 1185, i64 %t582, i64 %t584) +ok3012: + %t543 = getelementptr inbounds %S.gen.Gen, ptr %t541, i32 0, i32 16 + %t544 = load ptr, ptr %a1 + %t545 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 + %t546 = load { ptr, i64, i64 }, ptr %t545 + %t547 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 + %t548 = load { ptr, i64, i64 }, ptr %t547 + %t549 = call i64 @finch.gen.findStruct(ptr %t544, { ptr, i64, i64 } %t546, { ptr, i64, i64 } %t548) + %t550 = load { ptr, i64, i64 }, ptr %t543 + %t551 = extractvalue { ptr, i64, i64 } %t550, 1 + %t552 = icmp uge i64 %t549, %t551 + br i1 %t552, label %range3013, label %inrange3014 +range3013: + call void @finch_panic_index(ptr @.str.1919, i64 1204, i64 %t549, i64 %t551) unreachable -inrange2955: - %t586 = extractvalue { ptr, i64, i64 } %t583, 0 - %t587 = getelementptr inbounds i64, ptr %t586, i64 %t582 - %t588 = load i64, ptr %t587 - call void @finch_str_from_int(ptr %a589, i64 %t588) - %t590 = load { ptr, i64, i64 }, ptr %a589 - store { ptr, i64, i64 } %t580, ptr %a592 - store { ptr, i64, i64 } %t590, ptr %a593 - call void @finch_str_concat(ptr %a591, ptr %a592, ptr %a593) - store { ptr, i64, i64 } %t580, ptr %a594 +inrange3014: + %t553 = extractvalue { ptr, i64, i64 } %t550, 0 + %t554 = getelementptr inbounds %S.gen.StructDef, ptr %t553, i64 %t549 + %t555 = load %S.gen.StructDef, ptr %t554 + store %S.gen.StructDef %t555, ptr %a556 + call void @finch.copy.S_gen_StructDef(ptr %a557, ptr %a556) + %t558 = load %S.gen.StructDef, ptr %a557 + store %S.gen.StructDef %t558, ptr %a559 + %t560 = load ptr, ptr %a1 + %t561 = load %S.ast.Type, ptr %a2 + %t562 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t560, %S.ast.Type %t561) + store { ptr, i64, i64 } %t562, ptr %a563 + %t564 = load ptr, ptr %a1 + %t565 = load ptr, ptr %a1 + %t566 = load { ptr, i64, i64 }, ptr %a563 + store { ptr, i64, i64 } { ptr @.str.1921, i64 23, i64 0 }, ptr %a568 + store { ptr, i64, i64 } %t566, ptr %a569 + call void @finch_str_concat(ptr %a567, ptr %a568, ptr %a569) + %t570 = load { ptr, i64, i64 }, ptr %a567 + store { ptr, i64, i64 } %t570, ptr %a572 + store { ptr, i64, i64 } { ptr @.str.1922, i64 21, i64 0 }, ptr %a573 + call void @finch_str_concat(ptr %a571, ptr %a572, ptr %a573) + store { ptr, i64, i64 } %t570, ptr %a574 + call void @finch_str_drop(ptr %a574) + %t575 = load { ptr, i64, i64 }, ptr %a571 + %t576 = getelementptr inbounds %S.gen.StructDef, ptr %a559, i32 0, i32 3 + %t577 = load { ptr, i64, i64 }, ptr %t576 + %t578 = extractvalue { ptr, i64, i64 } %t577, 1 + %t579 = icmp uge i64 0, %t578 + br i1 %t579, label %range3015, label %inrange3016 +range3015: + call void @finch_panic_index(ptr @.str.1923, i64 1206, i64 0, i64 %t578) + unreachable +inrange3016: + %t580 = extractvalue { ptr, i64, i64 } %t577, 0 + %t581 = getelementptr inbounds i64, ptr %t580, i64 0 + %t582 = load i64, ptr %t581 + call void @finch_str_from_int(ptr %a583, i64 %t582) + %t584 = load { ptr, i64, i64 }, ptr %a583 + store { ptr, i64, i64 } %t575, ptr %a586 + store { ptr, i64, i64 } %t584, ptr %a587 + call void @finch_str_concat(ptr %a585, ptr %a586, ptr %a587) + store { ptr, i64, i64 } %t575, ptr %a588 + call void @finch_str_drop(ptr %a588) + store { ptr, i64, i64 } %t584, ptr %a589 + call void @finch_str_drop(ptr %a589) + %t590 = load { ptr, i64, i64 }, ptr %a585 + %t591 = call { ptr, i64, i64 } @finch.gen.op(ptr %t565, { ptr, i64, i64 } %t590) + store { ptr, i64, i64 } %t590, ptr %a592 + call void @finch_str_drop(ptr %a592) + %t593 = call { ptr, i64, i64 } @finch.gen.load(ptr %t564, { ptr, i64, i64 } { ptr @.str.1920, i64 3, i64 0 }, { ptr, i64, i64 } %t591) + store { ptr, i64, i64 } %t591, ptr %a594 call void @finch_str_drop(ptr %a594) - store { ptr, i64, i64 } %t590, ptr %a595 - call void @finch_str_drop(ptr %a595) - %t596 = load { ptr, i64, i64 }, ptr %a591 - %t597 = call { ptr, i64, i64 } @finch.gen.op(ptr %t570, { ptr, i64, i64 } %t596) - store { ptr, i64, i64 } %t596, ptr %a598 + store { ptr, i64, i64 } %t593, ptr %a595 + %t596 = load ptr, ptr %a1 + %t597 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t596, { ptr, i64, i64 } { ptr @.str.1924, i64 9, i64 0 }) + store { ptr, i64, i64 } %t597, ptr %a598 + %t599 = load ptr, ptr %a1 + %t600 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t599, { ptr, i64, i64 } { ptr @.str.1925, i64 8, i64 0 }) + store { ptr, i64, i64 } %t600, ptr %a601 + store { ptr, i64, i64 } zeroinitializer, ptr %a602 + store { ptr, i64, i64 } zeroinitializer, ptr %a603 + %t604 = getelementptr inbounds %S.gen.SumDef, ptr %a540, i32 0, i32 2 + %t605 = getelementptr inbounds { ptr, i64, i64 }, ptr %t604, i32 0, i32 1 + %t606 = load i64, ptr %t605 + store i64 0, ptr %a607 + br label %for.cond3017 +for.cond3017: + %t608 = load i64, ptr %a607 + %t609 = icmp slt i64 %t608, %t606 + br i1 %t609, label %for.body3018, label %for.end3020 +for.body3018: + %t610 = getelementptr inbounds { ptr, i64, i64 }, ptr %a603, i32 0, i32 1 + %t611 = load ptr, ptr %a1 + %t612 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t611, { ptr, i64, i64 } { ptr @.str.1926, i64 5, i64 0 }) + %t613 = load i64, ptr %t610 + %t614 = add i64 %t613, 1 + call void @finch_arr_reserve(ptr %a603, i64 %t614, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t615 = load ptr, ptr %a603 + %t616 = getelementptr inbounds { ptr, i64, i64 }, ptr %t615, i64 %t613 + store { ptr, i64, i64 } %t612, ptr %t616 + store i64 %t614, ptr %t610 + %t617 = getelementptr inbounds { ptr, i64, i64 }, ptr %a602, i32 0, i32 1 + %t618 = load i64, ptr %a607 + call void @finch_str_from_int(ptr %a619, i64 %t618) + %t620 = load { ptr, i64, i64 }, ptr %a619 + store { ptr, i64, i64 } { ptr @.str.1927, i64 4, i64 0 }, ptr %a622 + store { ptr, i64, i64 } %t620, ptr %a623 + call void @finch_str_concat(ptr %a621, ptr %a622, ptr %a623) + store { ptr, i64, i64 } %t620, ptr %a624 + call void @finch_str_drop(ptr %a624) + %t625 = load { ptr, i64, i64 }, ptr %a621 + store { ptr, i64, i64 } %t625, ptr %a627 + store { ptr, i64, i64 } { ptr @.str.1928, i64 9, i64 0 }, ptr %a628 + call void @finch_str_concat(ptr %a626, ptr %a627, ptr %a628) + store { ptr, i64, i64 } %t625, ptr %a629 + call void @finch_str_drop(ptr %a629) + %t630 = load { ptr, i64, i64 }, ptr %a626 + %t631 = load i64, ptr %a607 + %t632 = load { ptr, i64, i64 }, ptr %a603 + %t633 = extractvalue { ptr, i64, i64 } %t632, 1 + %t634 = icmp uge i64 %t631, %t633 + br i1 %t634, label %range3021, label %inrange3022 +range3021: + call void @finch_panic_index(ptr @.str.1929, i64 1213, i64 %t631, i64 %t633) + unreachable +inrange3022: + %t635 = extractvalue { ptr, i64, i64 } %t632, 0 + %t636 = getelementptr inbounds { ptr, i64, i64 }, ptr %t635, i64 %t631 + %t637 = load { ptr, i64, i64 }, ptr %t636 + store { ptr, i64, i64 } %t630, ptr %a639 + store { ptr, i64, i64 } %t637, ptr %a640 + call void @finch_str_concat(ptr %a638, ptr %a639, ptr %a640) + store { ptr, i64, i64 } %t630, ptr %a641 + call void @finch_str_drop(ptr %a641) + %t642 = load { ptr, i64, i64 }, ptr %a638 + %t643 = load i64, ptr %t617 + %t644 = add i64 %t643, 1 + call void @finch_arr_reserve(ptr %a602, i64 %t644, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t645 = load ptr, ptr %a602 + %t646 = getelementptr inbounds { ptr, i64, i64 }, ptr %t645, i64 %t643 + store { ptr, i64, i64 } %t642, ptr %t646 + store i64 %t644, ptr %t617 + br label %for.step3019 +for.step3019: + %t647 = load i64, ptr %a607 + %t648 = add i64 %t647, 1 + store i64 %t648, ptr %a607 + br label %for.cond3017 +for.end3020: + %t649 = load ptr, ptr %a1 + %t650 = load { ptr, i64, i64 }, ptr %a595 + store { ptr, i64, i64 } { ptr @.str.1930, i64 11, i64 0 }, ptr %a652 + store { ptr, i64, i64 } %t650, ptr %a653 + call void @finch_str_concat(ptr %a651, ptr %a652, ptr %a653) + %t654 = load { ptr, i64, i64 }, ptr %a651 + store { ptr, i64, i64 } %t654, ptr %a656 + store { ptr, i64, i64 } { ptr @.str.1931, i64 9, i64 0 }, ptr %a657 + call void @finch_str_concat(ptr %a655, ptr %a656, ptr %a657) + store { ptr, i64, i64 } %t654, ptr %a658 + call void @finch_str_drop(ptr %a658) + %t659 = load { ptr, i64, i64 }, ptr %a655 + %t660 = load { ptr, i64, i64 }, ptr %a598 + store { ptr, i64, i64 } %t659, ptr %a662 + store { ptr, i64, i64 } %t660, ptr %a663 + call void @finch_str_concat(ptr %a661, ptr %a662, ptr %a663) + store { ptr, i64, i64 } %t659, ptr %a664 + call void @finch_str_drop(ptr %a664) + %t665 = load { ptr, i64, i64 }, ptr %a661 + store { ptr, i64, i64 } %t665, ptr %a667 + store { ptr, i64, i64 } { ptr @.str.1932, i64 3, i64 0 }, ptr %a668 + call void @finch_str_concat(ptr %a666, ptr %a667, ptr %a668) + store { ptr, i64, i64 } %t665, ptr %a669 + call void @finch_str_drop(ptr %a669) + %t670 = load { ptr, i64, i64 }, ptr %a666 + %t671 = getelementptr inbounds { ptr, i64, i64 }, ptr %a602, i32 0, i32 1 + store { ptr, i64, i64 } { ptr @.str.1933, i64 1, i64 0 }, ptr %a672 + call void @finch_str_join(ptr %a673, ptr %a602, ptr %a672) + %t674 = load { ptr, i64, i64 }, ptr %a673 + store { ptr, i64, i64 } %t670, ptr %a676 + store { ptr, i64, i64 } %t674, ptr %a677 + call void @finch_str_concat(ptr %a675, ptr %a676, ptr %a677) + store { ptr, i64, i64 } %t670, ptr %a678 + call void @finch_str_drop(ptr %a678) + store { ptr, i64, i64 } %t674, ptr %a679 + call void @finch_str_drop(ptr %a679) + %t680 = load { ptr, i64, i64 }, ptr %a675 + store { ptr, i64, i64 } %t680, ptr %a682 + store { ptr, i64, i64 } { ptr @.str.1934, i64 2, i64 0 }, ptr %a683 + call void @finch_str_concat(ptr %a681, ptr %a682, ptr %a683) + store { ptr, i64, i64 } %t680, ptr %a684 + call void @finch_str_drop(ptr %a684) + %t685 = load { ptr, i64, i64 }, ptr %a681 + call void @finch.gen.emit(ptr %t649, { ptr, i64, i64 } %t685) + store { ptr, i64, i64 } %t685, ptr %a686 + call void @finch_str_drop(ptr %a686) + %t687 = load ptr, ptr %a1 + %t688 = icmp eq ptr %t687, null + br i1 %t688, label %panic3023, label %ok3024 +panic3023: + call void @finch_panic(ptr @.str.1935, i64 1216, ptr @.str.1936) + unreachable +ok3024: + %t689 = getelementptr inbounds %S.gen.Gen, ptr %t687, i32 0, i32 9 + store i1 true, ptr %t689 + %t690 = getelementptr inbounds %S.gen.SumDef, ptr %a540, i32 0, i32 2 + %t691 = getelementptr inbounds { ptr, i64, i64 }, ptr %t690, i32 0, i32 1 + %t692 = load i64, ptr %t691 + store i64 0, ptr %a693 + br label %for.cond3025 +for.cond3025: + %t694 = load i64, ptr %a693 + %t695 = icmp slt i64 %t694, %t692 + br i1 %t695, label %for.body3026, label %for.end3028 +for.body3026: + %t696 = load ptr, ptr %a1 + %t697 = load i64, ptr %a693 + %t698 = load { ptr, i64, i64 }, ptr %a603 + %t699 = extractvalue { ptr, i64, i64 } %t698, 1 + %t700 = icmp uge i64 %t697, %t699 + br i1 %t700, label %range3029, label %inrange3030 +range3029: + call void @finch_panic_index(ptr @.str.1937, i64 1218, i64 %t697, i64 %t699) + unreachable +inrange3030: + %t701 = extractvalue { ptr, i64, i64 } %t698, 0 + %t702 = getelementptr inbounds { ptr, i64, i64 }, ptr %t701, i64 %t697 + %t703 = load { ptr, i64, i64 }, ptr %t702 + call void @finch.gen.label(ptr %t696, { ptr, i64, i64 } %t703) + %t704 = load ptr, ptr %a1 + %t705 = getelementptr inbounds %S.gen.SumDef, ptr %a540, i32 0, i32 2 + %t706 = load i64, ptr %a693 + %t707 = load { ptr, i64, i64 }, ptr %t705 + %t708 = extractvalue { ptr, i64, i64 } %t707, 1 + %t709 = icmp uge i64 %t706, %t708 + br i1 %t709, label %range3031, label %inrange3032 +range3031: + call void @finch_panic_index(ptr @.str.1939, i64 1219, i64 %t706, i64 %t708) + unreachable +inrange3032: + %t710 = extractvalue { ptr, i64, i64 } %t707, 0 + %t711 = getelementptr inbounds { ptr, i64, i64 }, ptr %t710, i64 %t706 + %t712 = load { ptr, i64, i64 }, ptr %t711 + call void @finch.gen.bufText(ptr %t704, { ptr, i64, i64 } { ptr @.str.1938, i64 4, i64 0 }, { ptr, i64, i64 } %t712) + %t713 = getelementptr inbounds %S.gen.SumDef, ptr %a540, i32 0, i32 3 + %t714 = load i64, ptr %a693 + %t715 = load { ptr, i64, i64 }, ptr %t713 + %t716 = extractvalue { ptr, i64, i64 } %t715, 1 + %t717 = icmp uge i64 %t714, %t716 + br i1 %t717, label %range3033, label %inrange3034 +range3033: + call void @finch_panic_index(ptr @.str.1940, i64 1220, i64 %t714, i64 %t716) + unreachable +inrange3034: + %t718 = extractvalue { ptr, i64, i64 } %t715, 0 + %t719 = getelementptr inbounds i64, ptr %t718, i64 %t714 + %t720 = load i64, ptr %t719 + %t721 = icmp sgt i64 %t720, 0 + br i1 %t721, label %then3035, label %endif3037 +then3035: + %t722 = load ptr, ptr %a1 + call void @finch.gen.bufText(ptr %t722, { ptr, i64, i64 } { ptr @.str.1941, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1942, i64 1, i64 0 }) + %t723 = getelementptr inbounds %S.gen.SumDef, ptr %a540, i32 0, i32 3 + %t724 = load i64, ptr %a693 + %t725 = load { ptr, i64, i64 }, ptr %t723 + %t726 = extractvalue { ptr, i64, i64 } %t725, 1 + %t727 = icmp uge i64 %t724, %t726 + br i1 %t727, label %range3038, label %inrange3039 +range3038: + call void @finch_panic_index(ptr @.str.1943, i64 1222, i64 %t724, i64 %t726) + unreachable +inrange3039: + %t728 = extractvalue { ptr, i64, i64 } %t725, 0 + %t729 = getelementptr inbounds i64, ptr %t728, i64 %t724 + %t730 = load i64, ptr %t729 + store i64 0, ptr %a731 + br label %for.cond3040 +for.cond3040: + %t732 = load i64, ptr %a731 + %t733 = icmp slt i64 %t732, %t730 + br i1 %t733, label %for.body3041, label %for.end3043 +for.body3041: + %t734 = load i64, ptr %a731 + %t735 = icmp sgt i64 %t734, 0 + br i1 %t735, label %then3044, label %endif3046 +then3044: + %t736 = load ptr, ptr %a1 + call void @finch.gen.bufText(ptr %t736, { ptr, i64, i64 } { ptr @.str.1944, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1945, i64 2, i64 0 }) + br label %endif3046 +endif3046: + %t737 = getelementptr inbounds %S.gen.SumDef, ptr %a540, i32 0, i32 4 + %t738 = load i64, ptr %a693 + %t739 = load { ptr, i64, i64 }, ptr %t737 + %t740 = extractvalue { ptr, i64, i64 } %t739, 1 + %t741 = icmp uge i64 %t738, %t740 + br i1 %t741, label %range3047, label %inrange3048 +range3047: + call void @finch_panic_index(ptr @.str.1946, i64 1226, i64 %t738, i64 %t740) + unreachable +inrange3048: + %t742 = extractvalue { ptr, i64, i64 } %t739, 0 + %t743 = getelementptr inbounds i64, ptr %t742, i64 %t738 + %t744 = load i64, ptr %t743 + %t745 = load i64, ptr %a731 + %t746 = add i64 %t744, %t745 + store i64 %t746, ptr %a747 + %t748 = load ptr, ptr %a1 + %t749 = load { ptr, i64, i64 }, ptr %a563 + store { ptr, i64, i64 } { ptr @.str.1947, i64 23, i64 0 }, ptr %a751 + store { ptr, i64, i64 } %t749, ptr %a752 + call void @finch_str_concat(ptr %a750, ptr %a751, ptr %a752) + %t753 = load { ptr, i64, i64 }, ptr %a750 + store { ptr, i64, i64 } %t753, ptr %a755 + store { ptr, i64, i64 } { ptr @.str.1948, i64 21, i64 0 }, ptr %a756 + call void @finch_str_concat(ptr %a754, ptr %a755, ptr %a756) + store { ptr, i64, i64 } %t753, ptr %a757 + call void @finch_str_drop(ptr %a757) + %t758 = load { ptr, i64, i64 }, ptr %a754 + %t759 = getelementptr inbounds %S.gen.StructDef, ptr %a559, i32 0, i32 3 + %t760 = load i64, ptr %a747 + %t761 = load { ptr, i64, i64 }, ptr %t759 + %t762 = extractvalue { ptr, i64, i64 } %t761, 1 + %t763 = icmp uge i64 %t760, %t762 + br i1 %t763, label %range3049, label %inrange3050 +range3049: + call void @finch_panic_index(ptr @.str.1949, i64 1227, i64 %t760, i64 %t762) + unreachable +inrange3050: + %t764 = extractvalue { ptr, i64, i64 } %t761, 0 + %t765 = getelementptr inbounds i64, ptr %t764, i64 %t760 + %t766 = load i64, ptr %t765 + call void @finch_str_from_int(ptr %a767, i64 %t766) + %t768 = load { ptr, i64, i64 }, ptr %a767 + store { ptr, i64, i64 } %t758, ptr %a770 + store { ptr, i64, i64 } %t768, ptr %a771 + call void @finch_str_concat(ptr %a769, ptr %a770, ptr %a771) + store { ptr, i64, i64 } %t758, ptr %a772 + call void @finch_str_drop(ptr %a772) + store { ptr, i64, i64 } %t768, ptr %a773 + call void @finch_str_drop(ptr %a773) + %t774 = load { ptr, i64, i64 }, ptr %a769 + %t775 = call { ptr, i64, i64 } @finch.gen.op(ptr %t748, { ptr, i64, i64 } %t774) + store { ptr, i64, i64 } %t774, ptr %a776 + call void @finch_str_drop(ptr %a776) + store { ptr, i64, i64 } %t775, ptr %a777 + %t778 = load ptr, ptr %a1 + %t779 = load ptr, ptr %a1 + %t780 = load ptr, ptr %a1 + %t781 = getelementptr inbounds %S.gen.StructDef, ptr %a559, i32 0, i32 12 + %t782 = load i64, ptr %a747 + %t783 = load { ptr, i64, i64 }, ptr %t781 + %t784 = extractvalue { ptr, i64, i64 } %t783, 1 + %t785 = icmp uge i64 %t782, %t784 + br i1 %t785, label %range3051, label %inrange3052 +range3051: + call void @finch_panic_index(ptr @.str.1951, i64 1228, i64 %t782, i64 %t784) + unreachable +inrange3052: + %t786 = extractvalue { ptr, i64, i64 } %t783, 0 + %t787 = getelementptr inbounds %S.ast.Type, ptr %t786, i64 %t782 + %t788 = load %S.ast.Type, ptr %t787 + %t789 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t780, %S.ast.Type %t788) + %t790 = load { ptr, i64, i64 }, ptr %a777 + %t791 = call { ptr, i64, i64 } @finch.gen.load(ptr %t779, { ptr, i64, i64 } %t789, { ptr, i64, i64 } %t790) + store { ptr, i64, i64 } %t789, ptr %a792 + call void @finch_str_drop(ptr %a792) + %t793 = getelementptr inbounds %S.gen.StructDef, ptr %a559, i32 0, i32 12 + %t794 = load i64, ptr %a747 + %t795 = load { ptr, i64, i64 }, ptr %t793 + %t796 = extractvalue { ptr, i64, i64 } %t795, 1 + %t797 = icmp uge i64 %t794, %t796 + br i1 %t797, label %range3053, label %inrange3054 +range3053: + call void @finch_panic_index(ptr @.str.1952, i64 1228, i64 %t794, i64 %t796) + unreachable +inrange3054: + %t798 = extractvalue { ptr, i64, i64 } %t795, 0 + %t799 = getelementptr inbounds %S.ast.Type, ptr %t798, i64 %t794 + %t800 = load %S.ast.Type, ptr %t799 + call void @finch.gen.emitFormat(ptr %t778, { ptr, i64, i64 } { ptr @.str.1950, i64 4, i64 0 }, { ptr, i64, i64 } %t791, %S.ast.Type %t800, i1 true) + store { ptr, i64, i64 } %t791, ptr %a801 + call void @finch_str_drop(ptr %a801) + call void @finch_str_drop(ptr %a777) + br label %for.step3042 +for.step3042: + %t802 = load i64, ptr %a731 + %t803 = add i64 %t802, 1 + store i64 %t803, ptr %a731 + br label %for.cond3040 +for.end3043: + %t804 = load ptr, ptr %a1 + call void @finch.gen.bufText(ptr %t804, { ptr, i64, i64 } { ptr @.str.1953, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1954, i64 1, i64 0 }) + br label %endif3037 +endif3037: + %t805 = load ptr, ptr %a1 + %t806 = load { ptr, i64, i64 }, ptr %a601 + call void @finch.gen.br(ptr %t805, { ptr, i64, i64 } %t806) + br label %for.step3027 +for.step3027: + %t807 = load i64, ptr %a693 + %t808 = add i64 %t807, 1 + store i64 %t808, ptr %a693 + br label %for.cond3025 +for.end3028: + %t809 = load ptr, ptr %a1 + %t810 = load { ptr, i64, i64 }, ptr %a598 + call void @finch.gen.label(ptr %t809, { ptr, i64, i64 } %t810) + %t811 = load ptr, ptr %a1 + %t812 = getelementptr inbounds %S.gen.SumDef, ptr %a540, i32 0, i32 1 + %t813 = load { ptr, i64, i64 }, ptr %t812 + store { ptr, i64, i64 } %t813, ptr %a815 + store { ptr, i64, i64 } { ptr @.str.1956, i64 3, i64 0 }, ptr %a816 + call void @finch_str_concat(ptr %a814, ptr %a815, ptr %a816) + %t817 = load { ptr, i64, i64 }, ptr %a814 + call void @finch.gen.bufText(ptr %t811, { ptr, i64, i64 } { ptr @.str.1955, i64 4, i64 0 }, { ptr, i64, i64 } %t817) + store { ptr, i64, i64 } %t817, ptr %a818 + call void @finch_str_drop(ptr %a818) + %t819 = load ptr, ptr %a1 + %t820 = load { ptr, i64, i64 }, ptr %a601 + call void @finch.gen.br(ptr %t819, { ptr, i64, i64 } %t820) + %t821 = load ptr, ptr %a1 + %t822 = load { ptr, i64, i64 }, ptr %a601 + call void @finch.gen.label(ptr %t821, { ptr, i64, i64 } %t822) + call void @finch.drop.arr_str(ptr %a603) + call void @finch.drop.arr_str(ptr %a602) + call void @finch_str_drop(ptr %a601) call void @finch_str_drop(ptr %a598) - store { ptr, i64, i64 } %t597, ptr %a599 - %t600 = load ptr, ptr %a1 - %t601 = load ptr, ptr %a1 - %t602 = load ptr, ptr %a1 - %t603 = getelementptr inbounds %S.gen.StructDef, ptr %a526, i32 0, i32 12 - %t604 = load i64, ptr %a542 - %t605 = load { ptr, i64, i64 }, ptr %t603 - %t606 = extractvalue { ptr, i64, i64 } %t605, 1 - %t607 = icmp uge i64 %t604, %t606 - br i1 %t607, label %range2956, label %inrange2957 -range2956: - call void @finch_panic_index(ptr @.str.1899, i64 1186, i64 %t604, i64 %t606) + call void @finch_str_drop(ptr %a595) + call void @finch_str_drop(ptr %a563) + call void @finch.drop.S_gen_StructDef(ptr %a559) + call void @finch.drop.S_gen_SumDef(ptr %a540) + br label %endif3006 +else3005: + %t823 = load ptr, ptr %a1 + %t824 = icmp eq ptr %t823, null + br i1 %t824, label %panic3055, label %ok3056 +panic3055: + call void @finch_panic(ptr @.str.1957, i64 1239, ptr @.str.1958) unreachable -inrange2957: - %t608 = extractvalue { ptr, i64, i64 } %t605, 0 - %t609 = getelementptr inbounds %S.ast.Type, ptr %t608, i64 %t604 - %t610 = load %S.ast.Type, ptr %t609 - %t611 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t602, %S.ast.Type %t610) - %t612 = load { ptr, i64, i64 }, ptr %a599 - %t613 = call { ptr, i64, i64 } @finch.gen.load(ptr %t601, { ptr, i64, i64 } %t611, { ptr, i64, i64 } %t612) - store { ptr, i64, i64 } %t611, ptr %a614 - call void @finch_str_drop(ptr %a614) - %t615 = getelementptr inbounds %S.gen.StructDef, ptr %a526, i32 0, i32 12 - %t616 = load i64, ptr %a542 - %t617 = load { ptr, i64, i64 }, ptr %t615 - %t618 = extractvalue { ptr, i64, i64 } %t617, 1 - %t619 = icmp uge i64 %t616, %t618 - br i1 %t619, label %range2958, label %inrange2959 -range2958: - call void @finch_panic_index(ptr @.str.1900, i64 1186, i64 %t616, i64 %t618) +ok3056: + %t825 = getelementptr inbounds %S.gen.Gen, ptr %t823, i32 0, i32 16 + %t826 = load ptr, ptr %a1 + %t827 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 + %t828 = load { ptr, i64, i64 }, ptr %t827 + %t829 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 + %t830 = load { ptr, i64, i64 }, ptr %t829 + %t831 = call i64 @finch.gen.findStruct(ptr %t826, { ptr, i64, i64 } %t828, { ptr, i64, i64 } %t830) + %t832 = load { ptr, i64, i64 }, ptr %t825 + %t833 = extractvalue { ptr, i64, i64 } %t832, 1 + %t834 = icmp uge i64 %t831, %t833 + br i1 %t834, label %range3057, label %inrange3058 +range3057: + call void @finch_panic_index(ptr @.str.1959, i64 1239, i64 %t831, i64 %t833) unreachable -inrange2959: - %t620 = extractvalue { ptr, i64, i64 } %t617, 0 - %t621 = getelementptr inbounds %S.ast.Type, ptr %t620, i64 %t616 - %t622 = load %S.ast.Type, ptr %t621 - call void @finch.gen.emitFormat(ptr %t600, { ptr, i64, i64 } { ptr @.str.1898, i64 4, i64 0 }, { ptr, i64, i64 } %t613, %S.ast.Type %t622, i1 true) - store { ptr, i64, i64 } %t613, ptr %a623 - call void @finch_str_drop(ptr %a623) - call void @finch_str_drop(ptr %a599) - call void @finch_str_drop(ptr %a545) - br label %for.step2947 -for.step2947: - %t624 = load i64, ptr %a542 - %t625 = add i64 %t624, 1 - store i64 %t625, ptr %a542 - br label %for.cond2945 -for.end2948: - %t626 = load ptr, ptr %a1 - call void @finch.gen.bufText(ptr %t626, { ptr, i64, i64 } { ptr @.str.1901, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1902, i64 1, i64 0 }) - call void @finch_str_drop(ptr %a530) - call void @finch.drop.S_gen_StructDef(ptr %a526) - br label %endif2930 -endif2930: - br label %endif2905 -endif2905: - br label %endif2896 -endif2896: - %t627 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t627, { ptr, i64, i64 } { ptr @.str.1903, i64 8, i64 0 }) - %t628 = load ptr, ptr %a1 - %t629 = load %S.gen.Saved, ptr %a32 - %t630 = load { ptr, i64, i64 }, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.1904, i64 21, i64 0 }, ptr %a632 - store { ptr, i64, i64 } %t630, ptr %a633 - call void @finch_str_concat(ptr %a631, ptr %a632, ptr %a633) - %t634 = load { ptr, i64, i64 }, ptr %a631 - store { ptr, i64, i64 } %t634, ptr %a636 - store { ptr, i64, i64 } { ptr @.str.1905, i64 18, i64 0 }, ptr %a637 - call void @finch_str_concat(ptr %a635, ptr %a636, ptr %a637) - store { ptr, i64, i64 } %t634, ptr %a638 - call void @finch_str_drop(ptr %a638) - %t639 = load { ptr, i64, i64 }, ptr %a635 - call void @finch.gen.endHelper(ptr %t628, %S.gen.Saved %t629, { ptr, i64, i64 } %t639) - store { ptr, i64, i64 } %t639, ptr %a640 - call void @finch_str_drop(ptr %a640) - %t641 = load { ptr, i64, i64 }, ptr %a10 +inrange3058: + %t835 = extractvalue { ptr, i64, i64 } %t832, 0 + %t836 = getelementptr inbounds %S.gen.StructDef, ptr %t835, i64 %t831 + %t837 = load %S.gen.StructDef, ptr %t836 + store %S.gen.StructDef %t837, ptr %a838 + call void @finch.copy.S_gen_StructDef(ptr %a839, ptr %a838) + %t840 = load %S.gen.StructDef, ptr %a839 + store %S.gen.StructDef %t840, ptr %a841 + %t842 = load ptr, ptr %a1 + %t843 = load %S.ast.Type, ptr %a2 + %t844 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t842, %S.ast.Type %t843) + store { ptr, i64, i64 } %t844, ptr %a845 + %t846 = load ptr, ptr %a1 + %t847 = getelementptr inbounds %S.gen.StructDef, ptr %a841, i32 0, i32 1 + %t848 = load { ptr, i64, i64 }, ptr %t847 + store { ptr, i64, i64 } %t848, ptr %a850 + store { ptr, i64, i64 } { ptr @.str.1961, i64 1, i64 0 }, ptr %a851 + call void @finch_str_concat(ptr %a849, ptr %a850, ptr %a851) + %t852 = load { ptr, i64, i64 }, ptr %a849 + call void @finch.gen.bufText(ptr %t846, { ptr, i64, i64 } { ptr @.str.1960, i64 4, i64 0 }, { ptr, i64, i64 } %t852) + store { ptr, i64, i64 } %t852, ptr %a853 + call void @finch_str_drop(ptr %a853) + %t854 = getelementptr inbounds %S.gen.StructDef, ptr %a841, i32 0, i32 12 + %t855 = getelementptr inbounds { ptr, i64, i64 }, ptr %t854, i32 0, i32 1 + %t856 = load i64, ptr %t855 + store i64 0, ptr %a857 + br label %for.cond3059 +for.cond3059: + %t858 = load i64, ptr %a857 + %t859 = icmp slt i64 %t858, %t856 + br i1 %t859, label %for.body3060, label %for.end3062 +for.body3060: + store { ptr, i64, i64 } { ptr @.str.1962, i64 2, i64 0 }, ptr %a860 + %t861 = load i64, ptr %a857 + %t862 = icmp eq i64 %t861, 0 + br i1 %t862, label %then3063, label %endif3065 +then3063: + %t863 = load { ptr, i64, i64 }, ptr %a860 + store { ptr, i64, i64 } { ptr @.str.1963, i64 0, i64 0 }, ptr %a860 + store { ptr, i64, i64 } %t863, ptr %a864 + call void @finch_str_drop(ptr %a864) + br label %endif3065 +endif3065: + %t865 = load ptr, ptr %a1 + %t866 = load { ptr, i64, i64 }, ptr %a860 + %t867 = getelementptr inbounds %S.gen.StructDef, ptr %a841, i32 0, i32 11 + %t868 = load i64, ptr %a857 + %t869 = load { ptr, i64, i64 }, ptr %t867 + %t870 = extractvalue { ptr, i64, i64 } %t869, 1 + %t871 = icmp uge i64 %t868, %t870 + br i1 %t871, label %range3066, label %inrange3067 +range3066: + call void @finch_panic_index(ptr @.str.1965, i64 1247, i64 %t868, i64 %t870) + unreachable +inrange3067: + %t872 = extractvalue { ptr, i64, i64 } %t869, 0 + %t873 = getelementptr inbounds { ptr, i64, i64 }, ptr %t872, i64 %t868 + %t874 = load { ptr, i64, i64 }, ptr %t873 + store { ptr, i64, i64 } %t866, ptr %a876 + store { ptr, i64, i64 } %t874, ptr %a877 + call void @finch_str_concat(ptr %a875, ptr %a876, ptr %a877) + %t878 = load { ptr, i64, i64 }, ptr %a875 + store { ptr, i64, i64 } %t878, ptr %a880 + store { ptr, i64, i64 } { ptr @.str.1966, i64 2, i64 0 }, ptr %a881 + call void @finch_str_concat(ptr %a879, ptr %a880, ptr %a881) + store { ptr, i64, i64 } %t878, ptr %a882 + call void @finch_str_drop(ptr %a882) + %t883 = load { ptr, i64, i64 }, ptr %a879 + call void @finch.gen.bufText(ptr %t865, { ptr, i64, i64 } { ptr @.str.1964, i64 4, i64 0 }, { ptr, i64, i64 } %t883) + store { ptr, i64, i64 } %t883, ptr %a884 + call void @finch_str_drop(ptr %a884) + %t885 = load ptr, ptr %a1 + %t886 = load { ptr, i64, i64 }, ptr %a845 + store { ptr, i64, i64 } { ptr @.str.1967, i64 23, i64 0 }, ptr %a888 + store { ptr, i64, i64 } %t886, ptr %a889 + call void @finch_str_concat(ptr %a887, ptr %a888, ptr %a889) + %t890 = load { ptr, i64, i64 }, ptr %a887 + store { ptr, i64, i64 } %t890, ptr %a892 + store { ptr, i64, i64 } { ptr @.str.1968, i64 21, i64 0 }, ptr %a893 + call void @finch_str_concat(ptr %a891, ptr %a892, ptr %a893) + store { ptr, i64, i64 } %t890, ptr %a894 + call void @finch_str_drop(ptr %a894) + %t895 = load { ptr, i64, i64 }, ptr %a891 + %t896 = getelementptr inbounds %S.gen.StructDef, ptr %a841, i32 0, i32 3 + %t897 = load i64, ptr %a857 + %t898 = load { ptr, i64, i64 }, ptr %t896 + %t899 = extractvalue { ptr, i64, i64 } %t898, 1 + %t900 = icmp uge i64 %t897, %t899 + br i1 %t900, label %range3068, label %inrange3069 +range3068: + call void @finch_panic_index(ptr @.str.1969, i64 1248, i64 %t897, i64 %t899) + unreachable +inrange3069: + %t901 = extractvalue { ptr, i64, i64 } %t898, 0 + %t902 = getelementptr inbounds i64, ptr %t901, i64 %t897 + %t903 = load i64, ptr %t902 + call void @finch_str_from_int(ptr %a904, i64 %t903) + %t905 = load { ptr, i64, i64 }, ptr %a904 + store { ptr, i64, i64 } %t895, ptr %a907 + store { ptr, i64, i64 } %t905, ptr %a908 + call void @finch_str_concat(ptr %a906, ptr %a907, ptr %a908) + store { ptr, i64, i64 } %t895, ptr %a909 + call void @finch_str_drop(ptr %a909) + store { ptr, i64, i64 } %t905, ptr %a910 + call void @finch_str_drop(ptr %a910) + %t911 = load { ptr, i64, i64 }, ptr %a906 + %t912 = call { ptr, i64, i64 } @finch.gen.op(ptr %t885, { ptr, i64, i64 } %t911) + store { ptr, i64, i64 } %t911, ptr %a913 + call void @finch_str_drop(ptr %a913) + store { ptr, i64, i64 } %t912, ptr %a914 + %t915 = load ptr, ptr %a1 + %t916 = load ptr, ptr %a1 + %t917 = load ptr, ptr %a1 + %t918 = getelementptr inbounds %S.gen.StructDef, ptr %a841, i32 0, i32 12 + %t919 = load i64, ptr %a857 + %t920 = load { ptr, i64, i64 }, ptr %t918 + %t921 = extractvalue { ptr, i64, i64 } %t920, 1 + %t922 = icmp uge i64 %t919, %t921 + br i1 %t922, label %range3070, label %inrange3071 +range3070: + call void @finch_panic_index(ptr @.str.1971, i64 1249, i64 %t919, i64 %t921) + unreachable +inrange3071: + %t923 = extractvalue { ptr, i64, i64 } %t920, 0 + %t924 = getelementptr inbounds %S.ast.Type, ptr %t923, i64 %t919 + %t925 = load %S.ast.Type, ptr %t924 + %t926 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t917, %S.ast.Type %t925) + %t927 = load { ptr, i64, i64 }, ptr %a914 + %t928 = call { ptr, i64, i64 } @finch.gen.load(ptr %t916, { ptr, i64, i64 } %t926, { ptr, i64, i64 } %t927) + store { ptr, i64, i64 } %t926, ptr %a929 + call void @finch_str_drop(ptr %a929) + %t930 = getelementptr inbounds %S.gen.StructDef, ptr %a841, i32 0, i32 12 + %t931 = load i64, ptr %a857 + %t932 = load { ptr, i64, i64 }, ptr %t930 + %t933 = extractvalue { ptr, i64, i64 } %t932, 1 + %t934 = icmp uge i64 %t931, %t933 + br i1 %t934, label %range3072, label %inrange3073 +range3072: + call void @finch_panic_index(ptr @.str.1972, i64 1249, i64 %t931, i64 %t933) + unreachable +inrange3073: + %t935 = extractvalue { ptr, i64, i64 } %t932, 0 + %t936 = getelementptr inbounds %S.ast.Type, ptr %t935, i64 %t931 + %t937 = load %S.ast.Type, ptr %t936 + call void @finch.gen.emitFormat(ptr %t915, { ptr, i64, i64 } { ptr @.str.1970, i64 4, i64 0 }, { ptr, i64, i64 } %t928, %S.ast.Type %t937, i1 true) + store { ptr, i64, i64 } %t928, ptr %a938 + call void @finch_str_drop(ptr %a938) + call void @finch_str_drop(ptr %a914) + call void @finch_str_drop(ptr %a860) + br label %for.step3061 +for.step3061: + %t939 = load i64, ptr %a857 + %t940 = add i64 %t939, 1 + store i64 %t940, ptr %a857 + br label %for.cond3059 +for.end3062: + %t941 = load ptr, ptr %a1 + call void @finch.gen.bufText(ptr %t941, { ptr, i64, i64 } { ptr @.str.1973, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.1974, i64 1, i64 0 }) + call void @finch_str_drop(ptr %a845) + call void @finch.drop.S_gen_StructDef(ptr %a841) + br label %endif3006 +endif3006: + br label %endif2989 +endif2989: + br label %endif2964 +endif2964: + br label %endif2955 +endif2955: + %t942 = load ptr, ptr %a1 + call void @finch.gen.emit(ptr %t942, { ptr, i64, i64 } { ptr @.str.1975, i64 8, i64 0 }) + %t943 = load ptr, ptr %a1 + %t944 = load %S.gen.Saved, ptr %a32 + %t945 = load { ptr, i64, i64 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.1976, i64 21, i64 0 }, ptr %a947 + store { ptr, i64, i64 } %t945, ptr %a948 + call void @finch_str_concat(ptr %a946, ptr %a947, ptr %a948) + %t949 = load { ptr, i64, i64 }, ptr %a946 + store { ptr, i64, i64 } %t949, ptr %a951 + store { ptr, i64, i64 } { ptr @.str.1977, i64 18, i64 0 }, ptr %a952 + call void @finch_str_concat(ptr %a950, ptr %a951, ptr %a952) + store { ptr, i64, i64 } %t949, ptr %a953 + call void @finch_str_drop(ptr %a953) + %t954 = load { ptr, i64, i64 }, ptr %a950 + call void @finch.gen.endHelper(ptr %t943, %S.gen.Saved %t944, { ptr, i64, i64 } %t954) + store { ptr, i64, i64 } %t954, ptr %a955 + call void @finch_str_drop(ptr %a955) + %t956 = load { ptr, i64, i64 }, ptr %a10 call void @finch.drop.S_gen_Saved(ptr %a32) - ret { ptr, i64, i64 } %t641 + ret { ptr, i64, i64 } %t956 } define internal { ptr, i64, i64 } @finch.gen.intCast(ptr %p0, { ptr, i64, i64 } %p1, %S.ast.Type %p2, %S.ast.Type %p3) { @@ -33643,31 +35015,31 @@ entry: %t11 = load i64, ptr %a7 %t12 = load i64, ptr %a10 %t13 = icmp eq i64 %t11, %t12 - br i1 %t13, label %then2960, label %endif2962 -then2960: + br i1 %t13, label %then3074, label %endif3076 +then3074: %t14 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t14, ptr %a15 call void @finch_str_copy(ptr %a16, ptr %a15) %t17 = load { ptr, i64, i64 }, ptr %a16 ret { ptr, i64, i64 } %t17 -endif2962: +endif3076: %t18 = load i64, ptr %a10 %t19 = load i64, ptr %a7 %t20 = icmp slt i64 %t18, %t19 - br i1 %t20, label %then2963, label %endif2965 -then2963: + br i1 %t20, label %then3077, label %endif3079 +then3077: %t21 = load ptr, ptr %a1 %t22 = load ptr, ptr %a1 %t23 = load %S.ast.Type, ptr %a3 %t24 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t22, %S.ast.Type %t23) - store { ptr, i64, i64 } { ptr @.str.1906, i64 6, i64 0 }, ptr %a26 + store { ptr, i64, i64 } { ptr @.str.1978, i64 6, i64 0 }, ptr %a26 store { ptr, i64, i64 } %t24, ptr %a27 call void @finch_str_concat(ptr %a25, ptr %a26, ptr %a27) store { ptr, i64, i64 } %t24, ptr %a28 call void @finch_str_drop(ptr %a28) %t29 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t29, ptr %a31 - store { ptr, i64, i64 } { ptr @.str.1907, i64 1, i64 0 }, ptr %a32 + store { ptr, i64, i64 } { ptr @.str.1979, i64 1, i64 0 }, ptr %a32 call void @finch_str_concat(ptr %a30, ptr %a31, ptr %a32) store { ptr, i64, i64 } %t29, ptr %a33 call void @finch_str_drop(ptr %a33) @@ -33680,7 +35052,7 @@ then2963: call void @finch_str_drop(ptr %a39) %t40 = load { ptr, i64, i64 }, ptr %a36 store { ptr, i64, i64 } %t40, ptr %a42 - store { ptr, i64, i64 } { ptr @.str.1908, i64 4, i64 0 }, ptr %a43 + store { ptr, i64, i64 } { ptr @.str.1980, i64 4, i64 0 }, ptr %a43 call void @finch_str_concat(ptr %a41, ptr %a42, ptr %a43) store { ptr, i64, i64 } %t40, ptr %a44 call void @finch_str_drop(ptr %a44) @@ -33700,23 +35072,23 @@ then2963: store { ptr, i64, i64 } %t54, ptr %a56 call void @finch_str_drop(ptr %a56) ret { ptr, i64, i64 } %t55 -endif2965: +endif3079: %t57 = load %S.ast.Type, ptr %a3 %t58 = call i1 @finch.gen.isSigned(%S.ast.Type %t57) - br i1 %t58, label %then2966, label %endif2968 -then2966: + br i1 %t58, label %then3080, label %endif3082 +then3080: %t59 = load ptr, ptr %a1 %t60 = load ptr, ptr %a1 %t61 = load %S.ast.Type, ptr %a3 %t62 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t60, %S.ast.Type %t61) - store { ptr, i64, i64 } { ptr @.str.1909, i64 5, i64 0 }, ptr %a64 + store { ptr, i64, i64 } { ptr @.str.1981, i64 5, i64 0 }, ptr %a64 store { ptr, i64, i64 } %t62, ptr %a65 call void @finch_str_concat(ptr %a63, ptr %a64, ptr %a65) store { ptr, i64, i64 } %t62, ptr %a66 call void @finch_str_drop(ptr %a66) %t67 = load { ptr, i64, i64 }, ptr %a63 store { ptr, i64, i64 } %t67, ptr %a69 - store { ptr, i64, i64 } { ptr @.str.1910, i64 1, i64 0 }, ptr %a70 + store { ptr, i64, i64 } { ptr @.str.1982, i64 1, i64 0 }, ptr %a70 call void @finch_str_concat(ptr %a68, ptr %a69, ptr %a70) store { ptr, i64, i64 } %t67, ptr %a71 call void @finch_str_drop(ptr %a71) @@ -33729,7 +35101,7 @@ then2966: call void @finch_str_drop(ptr %a77) %t78 = load { ptr, i64, i64 }, ptr %a74 store { ptr, i64, i64 } %t78, ptr %a80 - store { ptr, i64, i64 } { ptr @.str.1911, i64 4, i64 0 }, ptr %a81 + store { ptr, i64, i64 } { ptr @.str.1983, i64 4, i64 0 }, ptr %a81 call void @finch_str_concat(ptr %a79, ptr %a80, ptr %a81) store { ptr, i64, i64 } %t78, ptr %a82 call void @finch_str_drop(ptr %a82) @@ -33749,19 +35121,19 @@ then2966: store { ptr, i64, i64 } %t92, ptr %a94 call void @finch_str_drop(ptr %a94) ret { ptr, i64, i64 } %t93 -endif2968: +endif3082: %t95 = load ptr, ptr %a1 %t96 = load ptr, ptr %a1 %t97 = load %S.ast.Type, ptr %a3 %t98 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t96, %S.ast.Type %t97) - store { ptr, i64, i64 } { ptr @.str.1912, i64 5, i64 0 }, ptr %a100 + store { ptr, i64, i64 } { ptr @.str.1984, i64 5, i64 0 }, ptr %a100 store { ptr, i64, i64 } %t98, ptr %a101 call void @finch_str_concat(ptr %a99, ptr %a100, ptr %a101) store { ptr, i64, i64 } %t98, ptr %a102 call void @finch_str_drop(ptr %a102) %t103 = load { ptr, i64, i64 }, ptr %a99 store { ptr, i64, i64 } %t103, ptr %a105 - store { ptr, i64, i64 } { ptr @.str.1913, i64 1, i64 0 }, ptr %a106 + store { ptr, i64, i64 } { ptr @.str.1985, i64 1, i64 0 }, ptr %a106 call void @finch_str_concat(ptr %a104, ptr %a105, ptr %a106) store { ptr, i64, i64 } %t103, ptr %a107 call void @finch_str_drop(ptr %a107) @@ -33774,7 +35146,7 @@ endif2968: call void @finch_str_drop(ptr %a113) %t114 = load { ptr, i64, i64 }, ptr %a110 store { ptr, i64, i64 } %t114, ptr %a116 - store { ptr, i64, i64 } { ptr @.str.1914, i64 4, i64 0 }, ptr %a117 + store { ptr, i64, i64 } { ptr @.str.1986, i64 4, i64 0 }, ptr %a117 call void @finch_str_concat(ptr %a115, ptr %a116, ptr %a117) store { ptr, i64, i64 } %t114, ptr %a118 call void @finch_str_drop(ptr %a118) @@ -33862,33 +35234,33 @@ entry: store { ptr, i64, i64 } %t8, ptr %a10 %t11 = call i32 @finch_str_eq(ptr %a9, ptr %a10) %t12 = icmp ne i32 %t11, 0 - br i1 %t12, label %then2969, label %endif2971 -then2969: + br i1 %t12, label %then3083, label %endif3085 +then3083: %t13 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t13, ptr %a14 call void @finch_str_copy(ptr %a15, ptr %a14) %t16 = load { ptr, i64, i64 }, ptr %a15 ret { ptr, i64, i64 } %t16 -endif2971: +endif3085: %t17 = load %S.ast.Type, ptr %a4 %t18 = call i64 @finch.gen.bitsOf(%S.ast.Type %t17) %t19 = load %S.ast.Type, ptr %a3 %t20 = call i64 @finch.gen.bitsOf(%S.ast.Type %t19) %t21 = icmp sgt i64 %t18, %t20 - br i1 %t21, label %then2972, label %endif2974 -then2972: + br i1 %t21, label %then3086, label %endif3088 +then3086: %t22 = load ptr, ptr %a1 %t23 = load ptr, ptr %a1 %t24 = load %S.ast.Type, ptr %a3 %t25 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t23, %S.ast.Type %t24) - store { ptr, i64, i64 } { ptr @.str.1915, i64 6, i64 0 }, ptr %a27 + store { ptr, i64, i64 } { ptr @.str.1987, i64 6, i64 0 }, ptr %a27 store { ptr, i64, i64 } %t25, ptr %a28 call void @finch_str_concat(ptr %a26, ptr %a27, ptr %a28) store { ptr, i64, i64 } %t25, ptr %a29 call void @finch_str_drop(ptr %a29) %t30 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t30, ptr %a32 - store { ptr, i64, i64 } { ptr @.str.1916, i64 1, i64 0 }, ptr %a33 + store { ptr, i64, i64 } { ptr @.str.1988, i64 1, i64 0 }, ptr %a33 call void @finch_str_concat(ptr %a31, ptr %a32, ptr %a33) store { ptr, i64, i64 } %t30, ptr %a34 call void @finch_str_drop(ptr %a34) @@ -33901,7 +35273,7 @@ then2972: call void @finch_str_drop(ptr %a40) %t41 = load { ptr, i64, i64 }, ptr %a37 store { ptr, i64, i64 } %t41, ptr %a43 - store { ptr, i64, i64 } { ptr @.str.1917, i64 4, i64 0 }, ptr %a44 + store { ptr, i64, i64 } { ptr @.str.1989, i64 4, i64 0 }, ptr %a44 call void @finch_str_concat(ptr %a42, ptr %a43, ptr %a44) store { ptr, i64, i64 } %t41, ptr %a45 call void @finch_str_drop(ptr %a45) @@ -33921,19 +35293,19 @@ then2972: store { ptr, i64, i64 } %t55, ptr %a57 call void @finch_str_drop(ptr %a57) ret { ptr, i64, i64 } %t56 -endif2974: +endif3088: %t58 = load ptr, ptr %a1 %t59 = load ptr, ptr %a1 %t60 = load %S.ast.Type, ptr %a3 %t61 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t59, %S.ast.Type %t60) - store { ptr, i64, i64 } { ptr @.str.1918, i64 8, i64 0 }, ptr %a63 + store { ptr, i64, i64 } { ptr @.str.1990, i64 8, i64 0 }, ptr %a63 store { ptr, i64, i64 } %t61, ptr %a64 call void @finch_str_concat(ptr %a62, ptr %a63, ptr %a64) store { ptr, i64, i64 } %t61, ptr %a65 call void @finch_str_drop(ptr %a65) %t66 = load { ptr, i64, i64 }, ptr %a62 store { ptr, i64, i64 } %t66, ptr %a68 - store { ptr, i64, i64 } { ptr @.str.1919, i64 1, i64 0 }, ptr %a69 + store { ptr, i64, i64 } { ptr @.str.1991, i64 1, i64 0 }, ptr %a69 call void @finch_str_concat(ptr %a67, ptr %a68, ptr %a69) store { ptr, i64, i64 } %t66, ptr %a70 call void @finch_str_drop(ptr %a70) @@ -33946,7 +35318,7 @@ endif2974: call void @finch_str_drop(ptr %a76) %t77 = load { ptr, i64, i64 }, ptr %a73 store { ptr, i64, i64 } %t77, ptr %a79 - store { ptr, i64, i64 } { ptr @.str.1920, i64 4, i64 0 }, ptr %a80 + store { ptr, i64, i64 } { ptr @.str.1992, i64 4, i64 0 }, ptr %a80 call void @finch_str_concat(ptr %a78, ptr %a79, ptr %a80) store { ptr, i64, i64 } %t77, ptr %a81 call void @finch_str_drop(ptr %a81) @@ -34024,20 +35396,20 @@ entry: store %S.ast.Type %p3, ptr %a4 %t5 = load %S.ast.Type, ptr %a3 %t6 = call i1 @finch.gen.isSigned(%S.ast.Type %t5) - br i1 %t6, label %then2975, label %endif2977 -then2975: + br i1 %t6, label %then3089, label %endif3091 +then3089: %t7 = load ptr, ptr %a1 %t8 = load ptr, ptr %a1 %t9 = load %S.ast.Type, ptr %a3 %t10 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t8, %S.ast.Type %t9) - store { ptr, i64, i64 } { ptr @.str.1921, i64 7, i64 0 }, ptr %a12 + store { ptr, i64, i64 } { ptr @.str.1993, i64 7, i64 0 }, ptr %a12 store { ptr, i64, i64 } %t10, ptr %a13 call void @finch_str_concat(ptr %a11, ptr %a12, ptr %a13) store { ptr, i64, i64 } %t10, ptr %a14 call void @finch_str_drop(ptr %a14) %t15 = load { ptr, i64, i64 }, ptr %a11 store { ptr, i64, i64 } %t15, ptr %a17 - store { ptr, i64, i64 } { ptr @.str.1922, i64 1, i64 0 }, ptr %a18 + store { ptr, i64, i64 } { ptr @.str.1994, i64 1, i64 0 }, ptr %a18 call void @finch_str_concat(ptr %a16, ptr %a17, ptr %a18) store { ptr, i64, i64 } %t15, ptr %a19 call void @finch_str_drop(ptr %a19) @@ -34050,7 +35422,7 @@ then2975: call void @finch_str_drop(ptr %a25) %t26 = load { ptr, i64, i64 }, ptr %a22 store { ptr, i64, i64 } %t26, ptr %a28 - store { ptr, i64, i64 } { ptr @.str.1923, i64 4, i64 0 }, ptr %a29 + store { ptr, i64, i64 } { ptr @.str.1995, i64 4, i64 0 }, ptr %a29 call void @finch_str_concat(ptr %a27, ptr %a28, ptr %a29) store { ptr, i64, i64 } %t26, ptr %a30 call void @finch_str_drop(ptr %a30) @@ -34070,19 +35442,19 @@ then2975: store { ptr, i64, i64 } %t40, ptr %a42 call void @finch_str_drop(ptr %a42) ret { ptr, i64, i64 } %t41 -endif2977: +endif3091: %t43 = load ptr, ptr %a1 %t44 = load ptr, ptr %a1 %t45 = load %S.ast.Type, ptr %a3 %t46 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t44, %S.ast.Type %t45) - store { ptr, i64, i64 } { ptr @.str.1924, i64 7, i64 0 }, ptr %a48 + store { ptr, i64, i64 } { ptr @.str.1996, i64 7, i64 0 }, ptr %a48 store { ptr, i64, i64 } %t46, ptr %a49 call void @finch_str_concat(ptr %a47, ptr %a48, ptr %a49) store { ptr, i64, i64 } %t46, ptr %a50 call void @finch_str_drop(ptr %a50) %t51 = load { ptr, i64, i64 }, ptr %a47 store { ptr, i64, i64 } %t51, ptr %a53 - store { ptr, i64, i64 } { ptr @.str.1925, i64 1, i64 0 }, ptr %a54 + store { ptr, i64, i64 } { ptr @.str.1997, i64 1, i64 0 }, ptr %a54 call void @finch_str_concat(ptr %a52, ptr %a53, ptr %a54) store { ptr, i64, i64 } %t51, ptr %a55 call void @finch_str_drop(ptr %a55) @@ -34095,7 +35467,7 @@ endif2977: call void @finch_str_drop(ptr %a61) %t62 = load { ptr, i64, i64 }, ptr %a58 store { ptr, i64, i64 } %t62, ptr %a64 - store { ptr, i64, i64 } { ptr @.str.1926, i64 4, i64 0 }, ptr %a65 + store { ptr, i64, i64 } { ptr @.str.1998, i64 4, i64 0 }, ptr %a65 call void @finch_str_concat(ptr %a63, ptr %a64, ptr %a65) store { ptr, i64, i64 } %t62, ptr %a66 call void @finch_str_drop(ptr %a66) @@ -34254,97 +35626,97 @@ entry: %t7 = load %S.ast.Type, ptr %t6 %t8 = load %S.ast.Type, ptr %a3 %t9 = call i1 @finch.ast.same(%S.ast.Type %t7, %S.ast.Type %t8) - br i1 %t9, label %then2978, label %endif2980 -then2978: + br i1 %t9, label %then3092, label %endif3094 +then3092: %t10 = load %S.gen.Val, ptr %a2 store %S.gen.Val %t10, ptr %a11 call void @finch.copy.S_gen_Val(ptr %a12, ptr %a11) %t13 = load %S.gen.Val, ptr %a12 ret %S.gen.Val %t13 -endif2980: +endif3094: %t14 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t15 = getelementptr inbounds %S.ast.Type, ptr %t14, i32 0, i32 0 %t16 = load { ptr, i64, i64 }, ptr %t15 store { ptr, i64, i64 } %t16, ptr %a17 - store { ptr, i64, i64 } { ptr @.str.1927, i64 4, i64 0 }, ptr %a18 + store { ptr, i64, i64 } { ptr @.str.1999, i64 4, i64 0 }, ptr %a18 %t19 = call i32 @finch_str_eq(ptr %a17, ptr %a18) %t20 = icmp ne i32 %t19, 0 - br label %logic.from2981 -logic.from2981: - br i1 %t20, label %logic.rhs2982, label %logic.end2983 -logic.rhs2982: + br label %logic.from3095 +logic.from3095: + br i1 %t20, label %logic.rhs3096, label %logic.end3097 +logic.rhs3096: %t21 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t22 = load { ptr, i64, i64 }, ptr %t21 store { ptr, i64, i64 } %t22, ptr %a23 - store { ptr, i64, i64 } { ptr @.str.1928, i64 3, i64 0 }, ptr %a24 + store { ptr, i64, i64 } { ptr @.str.2000, i64 3, i64 0 }, ptr %a24 %t25 = call i32 @finch_str_eq(ptr %a23, ptr %a24) %t26 = icmp ne i32 %t25, 0 - br label %logic.rend2984 -logic.rend2984: - br label %logic.end2983 -logic.end2983: - %t27 = phi i1 [ false, %logic.from2981 ], [ %t26, %logic.rend2984 ] - br i1 %t27, label %then2985, label %endif2987 -then2985: - %t28 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } { ptr @.str.1929, i64 4, i64 0 }, 0 + br label %logic.rend3098 +logic.rend3098: + br label %logic.end3097 +logic.end3097: + %t27 = phi i1 [ false, %logic.from3095 ], [ %t26, %logic.rend3098 ] + br i1 %t27, label %then3099, label %endif3101 +then3099: + %t28 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } { ptr @.str.2001, i64 4, i64 0 }, 0 %t29 = load %S.ast.Type, ptr %a3 store %S.ast.Type %t29, ptr %a30 call void @finch.copy.S_ast_Type(ptr %a31, ptr %a30) %t32 = load %S.ast.Type, ptr %a31 %t33 = insertvalue %S.gen.Val %t28, %S.ast.Type %t32, 1 ret %S.gen.Val %t33 -endif2987: +endif3101: %t34 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t35 = getelementptr inbounds %S.ast.Type, ptr %t34, i32 0, i32 0 %t36 = load { ptr, i64, i64 }, ptr %t35 store { ptr, i64, i64 } %t36, ptr %a37 - store { ptr, i64, i64 } { ptr @.str.1930, i64 3, i64 0 }, ptr %a38 + store { ptr, i64, i64 } { ptr @.str.2002, i64 3, i64 0 }, ptr %a38 %t39 = call i32 @finch_str_eq(ptr %a37, ptr %a38) %t40 = icmp ne i32 %t39, 0 - br label %logic.from2988 -logic.from2988: - br i1 %t40, label %logic.rhs2989, label %logic.end2990 -logic.rhs2989: + br label %logic.from3102 +logic.from3102: + br i1 %t40, label %logic.rhs3103, label %logic.end3104 +logic.rhs3103: %t41 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t42 = load { ptr, i64, i64 }, ptr %t41 store { ptr, i64, i64 } %t42, ptr %a43 - store { ptr, i64, i64 } { ptr @.str.1931, i64 3, i64 0 }, ptr %a44 + store { ptr, i64, i64 } { ptr @.str.2003, i64 3, i64 0 }, ptr %a44 %t45 = call i32 @finch_str_eq(ptr %a43, ptr %a44) %t46 = icmp ne i32 %t45, 0 - br label %logic.rend2991 -logic.rend2991: - br label %logic.end2990 -logic.end2990: - %t47 = phi i1 [ false, %logic.from2988 ], [ %t46, %logic.rend2991 ] - br label %logic.from2992 -logic.from2992: - br i1 %t47, label %logic.rhs2993, label %logic.end2994 -logic.rhs2993: + br label %logic.rend3105 +logic.rend3105: + br label %logic.end3104 +logic.end3104: + %t47 = phi i1 [ false, %logic.from3102 ], [ %t46, %logic.rend3105 ] + br label %logic.from3106 +logic.from3106: + br i1 %t47, label %logic.rhs3107, label %logic.end3108 +logic.rhs3107: %t48 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t49 = getelementptr inbounds %S.ast.Type, ptr %t48, i32 0, i32 1 %t50 = getelementptr inbounds { ptr, i64, i64 }, ptr %t49, i32 0, i32 1 %t51 = load i64, ptr %t50 %t52 = icmp eq i64 %t51, 0 - br label %logic.from2995 -logic.from2995: - br i1 %t52, label %logic.end2997, label %logic.rhs2996 -logic.rhs2996: + br label %logic.from3109 +logic.from3109: + br i1 %t52, label %logic.end3111, label %logic.rhs3110 +logic.rhs3110: %t53 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 1 %t54 = getelementptr inbounds { ptr, i64, i64 }, ptr %t53, i32 0, i32 1 %t55 = load i64, ptr %t54 %t56 = icmp eq i64 %t55, 0 - br label %logic.rend2998 -logic.rend2998: - br label %logic.end2997 -logic.end2997: - %t57 = phi i1 [ true, %logic.from2995 ], [ %t56, %logic.rend2998 ] - br label %logic.rend2999 -logic.rend2999: - br label %logic.end2994 -logic.end2994: - %t58 = phi i1 [ false, %logic.from2992 ], [ %t57, %logic.rend2999 ] - br i1 %t58, label %then3000, label %endif3002 -then3000: + br label %logic.rend3112 +logic.rend3112: + br label %logic.end3111 +logic.end3111: + %t57 = phi i1 [ true, %logic.from3109 ], [ %t56, %logic.rend3112 ] + br label %logic.rend3113 +logic.rend3113: + br label %logic.end3108 +logic.end3108: + %t58 = phi i1 [ false, %logic.from3106 ], [ %t57, %logic.rend3113 ] + br i1 %t58, label %then3114, label %endif3116 +then3114: %t59 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t60 = load { ptr, i64, i64 }, ptr %t59 store { ptr, i64, i64 } %t60, ptr %a61 @@ -34357,42 +35729,42 @@ then3000: %t68 = load %S.ast.Type, ptr %a67 %t69 = insertvalue %S.gen.Val %t64, %S.ast.Type %t68, 1 ret %S.gen.Val %t69 -endif3002: +endif3116: %t70 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t71 = load %S.ast.Type, ptr %t70 %t72 = call i1 @finch.gen.isInt(%S.ast.Type %t71) - br label %logic.from3003 -logic.from3003: - br i1 %t72, label %logic.rhs3004, label %logic.end3005 -logic.rhs3004: + br label %logic.from3117 +logic.from3117: + br i1 %t72, label %logic.rhs3118, label %logic.end3119 +logic.rhs3118: %t73 = load %S.ast.Type, ptr %a3 %t74 = call i1 @finch.gen.isInt(%S.ast.Type %t73) - br label %logic.rend3006 -logic.rend3006: - br label %logic.end3005 -logic.end3005: - %t75 = phi i1 [ false, %logic.from3003 ], [ %t74, %logic.rend3006 ] - br i1 %t75, label %then3007, label %endif3009 -then3007: + br label %logic.rend3120 +logic.rend3120: + br label %logic.end3119 +logic.end3119: + %t75 = phi i1 [ false, %logic.from3117 ], [ %t74, %logic.rend3120 ] + br i1 %t75, label %then3121, label %endif3123 +then3121: %t76 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 3 %t77 = load i1, ptr %t76 - br label %logic.from3010 -logic.from3010: - br i1 %t77, label %logic.rhs3011, label %logic.end3012 -logic.rhs3011: + br label %logic.from3124 +logic.from3124: + br i1 %t77, label %logic.rhs3125, label %logic.end3126 +logic.rhs3125: %t78 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t79 = load { ptr, i64, i64 }, ptr %t78 %t80 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t81 = load %S.ast.Type, ptr %t80 %t82 = load %S.ast.Type, ptr %a3 %t83 = call i1 @finch.gen.fits({ ptr, i64, i64 } %t79, %S.ast.Type %t81, %S.ast.Type %t82) - br label %logic.rend3013 -logic.rend3013: - br label %logic.end3012 -logic.end3012: - %t84 = phi i1 [ false, %logic.from3010 ], [ %t83, %logic.rend3013 ] - br i1 %t84, label %then3014, label %endif3016 -then3014: + br label %logic.rend3127 +logic.rend3127: + br label %logic.end3126 +logic.end3126: + %t84 = phi i1 [ false, %logic.from3124 ], [ %t83, %logic.rend3127 ] + br i1 %t84, label %then3128, label %endif3130 +then3128: %t85 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t86 = load { ptr, i64, i64 }, ptr %t85 store { ptr, i64, i64 } %t86, ptr %a87 @@ -34406,13 +35778,13 @@ then3014: %t95 = insertvalue %S.gen.Val %t90, %S.ast.Type %t94, 1 %t96 = insertvalue %S.gen.Val %t95, i1 true, 3 ret %S.gen.Val %t96 -endif3016: +endif3130: %t97 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t98 = load %S.ast.Type, ptr %t97 %t99 = load %S.ast.Type, ptr %a3 %t100 = call i1 @finch.gen.widens(%S.ast.Type %t98, %S.ast.Type %t99) - br i1 %t100, label %then3017, label %endif3019 -then3017: + br i1 %t100, label %then3131, label %endif3133 +then3131: %t101 = load ptr, ptr %a1 %t102 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t103 = load { ptr, i64, i64 }, ptr %t102 @@ -34427,21 +35799,21 @@ then3017: %t112 = load %S.ast.Type, ptr %a111 %t113 = insertvalue %S.gen.Val %t108, %S.ast.Type %t112, 1 ret %S.gen.Val %t113 -endif3019: +endif3133: %t114 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 3 %t115 = load i1, ptr %t114 - br i1 %t115, label %then3020, label %endif3022 -then3020: + br i1 %t115, label %then3134, label %endif3136 +then3134: %t116 = load ptr, ptr %a1 %t117 = load %S.ast.Node, ptr %a4 %t118 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t119 = load { ptr, i64, i64 }, ptr %t118 - store { ptr, i64, i64 } { ptr @.str.1932, i64 11, i64 0 }, ptr %a121 + store { ptr, i64, i64 } { ptr @.str.2004, i64 11, i64 0 }, ptr %a121 store { ptr, i64, i64 } %t119, ptr %a122 call void @finch_str_concat(ptr %a120, ptr %a121, ptr %a122) %t123 = load { ptr, i64, i64 }, ptr %a120 store { ptr, i64, i64 } %t123, ptr %a125 - store { ptr, i64, i64 } { ptr @.str.1933, i64 16, i64 0 }, ptr %a126 + store { ptr, i64, i64 } { ptr @.str.2005, i64 16, i64 0 }, ptr %a126 call void @finch_str_concat(ptr %a124, ptr %a125, ptr %a126) store { ptr, i64, i64 } %t123, ptr %a127 call void @finch_str_drop(ptr %a127) @@ -34459,49 +35831,49 @@ then3020: call void @finch.gen.fail(ptr %t116, %S.ast.Node %t117, { ptr, i64, i64 } %t136) store { ptr, i64, i64 } %t136, ptr %a137 call void @finch_str_drop(ptr %a137) - br label %endif3022 -endif3022: - br label %endif3009 -endif3009: + br label %endif3136 +endif3136: + br label %endif3123 +endif3123: %t138 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t139 = load %S.ast.Type, ptr %t138 %t140 = call i1 @finch.gen.isInt(%S.ast.Type %t139) - br label %logic.from3023 -logic.from3023: - br i1 %t140, label %logic.rhs3024, label %logic.end3025 -logic.rhs3024: + br label %logic.from3137 +logic.from3137: + br i1 %t140, label %logic.rhs3138, label %logic.end3139 +logic.rhs3138: %t141 = load %S.ast.Type, ptr %a3 %t142 = call i1 @finch.gen.isFloat(%S.ast.Type %t141) - br label %logic.rend3026 -logic.rend3026: - br label %logic.end3025 -logic.end3025: - %t143 = phi i1 [ false, %logic.from3023 ], [ %t142, %logic.rend3026 ] - br i1 %t143, label %then3027, label %endif3029 -then3027: + br label %logic.rend3140 +logic.rend3140: + br label %logic.end3139 +logic.end3139: + %t143 = phi i1 [ false, %logic.from3137 ], [ %t142, %logic.rend3140 ] + br i1 %t143, label %then3141, label %endif3143 +then3141: %t144 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 3 %t145 = load i1, ptr %t144 - br label %logic.from3030 -logic.from3030: - br i1 %t145, label %logic.rhs3031, label %logic.end3032 -logic.rhs3031: + br label %logic.from3144 +logic.from3144: + br i1 %t145, label %logic.rhs3145, label %logic.end3146 +logic.rhs3145: %t146 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t147 = load { ptr, i64, i64 }, ptr %t146 store { ptr, i64, i64 } %t147, ptr %a148 - store { ptr, i64, i64 } { ptr @.str.1934, i64 5, i64 0 }, ptr %a149 + store { ptr, i64, i64 } { ptr @.str.2006, i64 5, i64 0 }, ptr %a149 %t150 = call i32 @finch_str_eq(ptr %a148, ptr %a149) %t151 = icmp ne i32 %t150, 0 - br label %logic.rend3033 -logic.rend3033: - br label %logic.end3032 -logic.end3032: - %t152 = phi i1 [ false, %logic.from3030 ], [ %t151, %logic.rend3033 ] - br i1 %t152, label %then3034, label %endif3036 -then3034: + br label %logic.rend3147 +logic.rend3147: + br label %logic.end3146 +logic.end3146: + %t152 = phi i1 [ false, %logic.from3144 ], [ %t151, %logic.rend3147 ] + br i1 %t152, label %then3148, label %endif3150 +then3148: %t153 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t154 = load { ptr, i64, i64 }, ptr %t153 store { ptr, i64, i64 } %t154, ptr %a156 - store { ptr, i64, i64 } { ptr @.str.1935, i64 2, i64 0 }, ptr %a157 + store { ptr, i64, i64 } { ptr @.str.2007, i64 2, i64 0 }, ptr %a157 call void @finch_str_concat(ptr %a155, ptr %a156, ptr %a157) %t158 = load { ptr, i64, i64 }, ptr %a155 %t159 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t158, 0 @@ -34512,7 +35884,7 @@ then3034: %t164 = insertvalue %S.gen.Val %t159, %S.ast.Type %t163, 1 %t165 = insertvalue %S.gen.Val %t164, i1 true, 3 ret %S.gen.Val %t165 -endif3036: +endif3150: %t166 = load ptr, ptr %a1 %t167 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t168 = load { ptr, i64, i64 }, ptr %t167 @@ -34527,31 +35899,31 @@ endif3036: %t177 = load %S.ast.Type, ptr %a176 %t178 = insertvalue %S.gen.Val %t173, %S.ast.Type %t177, 1 ret %S.gen.Val %t178 -endif3029: +endif3143: %t179 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t180 = getelementptr inbounds %S.ast.Type, ptr %t179, i32 0, i32 0 %t181 = load { ptr, i64, i64 }, ptr %t180 store { ptr, i64, i64 } %t181, ptr %a182 - store { ptr, i64, i64 } { ptr @.str.1936, i64 3, i64 0 }, ptr %a183 + store { ptr, i64, i64 } { ptr @.str.2008, i64 3, i64 0 }, ptr %a183 %t184 = call i32 @finch_str_eq(ptr %a182, ptr %a183) %t185 = icmp ne i32 %t184, 0 - br label %logic.from3037 -logic.from3037: - br i1 %t185, label %logic.rhs3038, label %logic.end3039 -logic.rhs3038: + br label %logic.from3151 +logic.from3151: + br i1 %t185, label %logic.rhs3152, label %logic.end3153 +logic.rhs3152: %t186 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t187 = load { ptr, i64, i64 }, ptr %t186 store { ptr, i64, i64 } %t187, ptr %a188 - store { ptr, i64, i64 } { ptr @.str.1937, i64 5, i64 0 }, ptr %a189 + store { ptr, i64, i64 } { ptr @.str.2009, i64 5, i64 0 }, ptr %a189 %t190 = call i32 @finch_str_eq(ptr %a188, ptr %a189) %t191 = icmp ne i32 %t190, 0 - br label %logic.rend3040 -logic.rend3040: - br label %logic.end3039 -logic.end3039: - %t192 = phi i1 [ false, %logic.from3037 ], [ %t191, %logic.rend3040 ] - br i1 %t192, label %then3041, label %endif3043 -then3041: + br label %logic.rend3154 +logic.rend3154: + br label %logic.end3153 +logic.end3153: + %t192 = phi i1 [ false, %logic.from3151 ], [ %t191, %logic.rend3154 ] + br i1 %t192, label %then3155, label %endif3157 +then3155: %t193 = load ptr, ptr %a1 %t194 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t195 = load { ptr, i64, i64 }, ptr %t194 @@ -34566,42 +35938,42 @@ then3041: %t204 = load %S.ast.Type, ptr %a203 %t205 = insertvalue %S.gen.Val %t200, %S.ast.Type %t204, 1 ret %S.gen.Val %t205 -endif3043: +endif3157: %t206 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t207 = getelementptr inbounds %S.ast.Type, ptr %t206, i32 0, i32 0 %t208 = load { ptr, i64, i64 }, ptr %t207 store { ptr, i64, i64 } %t208, ptr %a209 - store { ptr, i64, i64 } { ptr @.str.1938, i64 5, i64 0 }, ptr %a210 + store { ptr, i64, i64 } { ptr @.str.2010, i64 5, i64 0 }, ptr %a210 %t211 = call i32 @finch_str_eq(ptr %a209, ptr %a210) %t212 = icmp ne i32 %t211, 0 - br label %logic.from3044 -logic.from3044: - br i1 %t212, label %logic.rhs3045, label %logic.end3046 -logic.rhs3045: + br label %logic.from3158 +logic.from3158: + br i1 %t212, label %logic.rhs3159, label %logic.end3160 +logic.rhs3159: %t213 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t214 = load { ptr, i64, i64 }, ptr %t213 store { ptr, i64, i64 } %t214, ptr %a215 - store { ptr, i64, i64 } { ptr @.str.1939, i64 3, i64 0 }, ptr %a216 + store { ptr, i64, i64 } { ptr @.str.2011, i64 3, i64 0 }, ptr %a216 %t217 = call i32 @finch_str_eq(ptr %a215, ptr %a216) %t218 = icmp ne i32 %t217, 0 - br label %logic.rend3047 -logic.rend3047: - br label %logic.end3046 -logic.end3046: - %t219 = phi i1 [ false, %logic.from3044 ], [ %t218, %logic.rend3047 ] - br label %logic.from3048 -logic.from3048: - br i1 %t219, label %logic.rhs3049, label %logic.end3050 -logic.rhs3049: + br label %logic.rend3161 +logic.rend3161: + br label %logic.end3160 +logic.end3160: + %t219 = phi i1 [ false, %logic.from3158 ], [ %t218, %logic.rend3161 ] + br label %logic.from3162 +logic.from3162: + br i1 %t219, label %logic.rhs3163, label %logic.end3164 +logic.rhs3163: %t220 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 3 %t221 = load i1, ptr %t220 - br label %logic.rend3051 -logic.rend3051: - br label %logic.end3050 -logic.end3050: - %t222 = phi i1 [ false, %logic.from3048 ], [ %t221, %logic.rend3051 ] - br i1 %t222, label %then3052, label %endif3054 -then3052: + br label %logic.rend3165 +logic.rend3165: + br label %logic.end3164 +logic.end3164: + %t222 = phi i1 [ false, %logic.from3162 ], [ %t221, %logic.rend3165 ] + br i1 %t222, label %then3166, label %endif3168 +then3166: %t223 = load ptr, ptr %a1 %t224 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 0 %t225 = load { ptr, i64, i64 }, ptr %t224 @@ -34616,10 +35988,10 @@ then3052: %t234 = load %S.ast.Type, ptr %a233 %t235 = insertvalue %S.gen.Val %t230, %S.ast.Type %t234, 1 ret %S.gen.Val %t235 -endif3054: +endif3168: %t236 = load { ptr, i64, i64 }, ptr %a5 store { ptr, i64, i64 } %t236, ptr %a238 - store { ptr, i64, i64 } { ptr @.str.1940, i64 9, i64 0 }, ptr %a239 + store { ptr, i64, i64 } { ptr @.str.2012, i64 9, i64 0 }, ptr %a239 call void @finch_str_concat(ptr %a237, ptr %a238, ptr %a239) %t240 = load { ptr, i64, i64 }, ptr %a237 %t241 = load %S.ast.Type, ptr %a3 @@ -34633,7 +36005,7 @@ endif3054: call void @finch_str_drop(ptr %a247) %t248 = load { ptr, i64, i64 }, ptr %a243 store { ptr, i64, i64 } %t248, ptr %a250 - store { ptr, i64, i64 } { ptr @.str.1941, i64 14, i64 0 }, ptr %a251 + store { ptr, i64, i64 } { ptr @.str.2013, i64 14, i64 0 }, ptr %a251 call void @finch_str_concat(ptr %a249, ptr %a250, ptr %a251) store { ptr, i64, i64 } %t248, ptr %a252 call void @finch_str_drop(ptr %a252) @@ -34653,22 +36025,22 @@ endif3054: %t264 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t265 = load %S.ast.Type, ptr %t264 %t266 = call i1 @finch.gen.isNumber(%S.ast.Type %t265) - br label %logic.from3055 -logic.from3055: - br i1 %t266, label %logic.rhs3056, label %logic.end3057 -logic.rhs3056: + br label %logic.from3169 +logic.from3169: + br i1 %t266, label %logic.rhs3170, label %logic.end3171 +logic.rhs3170: %t267 = load %S.ast.Type, ptr %a3 %t268 = call i1 @finch.gen.isNumber(%S.ast.Type %t267) - br label %logic.rend3058 -logic.rend3058: - br label %logic.end3057 -logic.end3057: - %t269 = phi i1 [ false, %logic.from3055 ], [ %t268, %logic.rend3058 ] - br i1 %t269, label %then3059, label %endif3061 -then3059: + br label %logic.rend3172 +logic.rend3172: + br label %logic.end3171 +logic.end3171: + %t269 = phi i1 [ false, %logic.from3169 ], [ %t268, %logic.rend3172 ] + br i1 %t269, label %then3173, label %endif3175 +then3173: %t270 = load { ptr, i64, i64 }, ptr %a263 store { ptr, i64, i64 } %t270, ptr %a272 - store { ptr, i64, i64 } { ptr @.str.1942, i64 6, i64 0 }, ptr %a273 + store { ptr, i64, i64 } { ptr @.str.2014, i64 6, i64 0 }, ptr %a273 call void @finch_str_concat(ptr %a271, ptr %a272, ptr %a273) %t274 = load { ptr, i64, i64 }, ptr %a271 %t275 = load %S.ast.Type, ptr %a3 @@ -34682,7 +36054,7 @@ then3059: call void @finch_str_drop(ptr %a281) %t282 = load { ptr, i64, i64 }, ptr %a277 store { ptr, i64, i64 } %t282, ptr %a284 - store { ptr, i64, i64 } { ptr @.str.1943, i64 16, i64 0 }, ptr %a285 + store { ptr, i64, i64 } { ptr @.str.2015, i64 16, i64 0 }, ptr %a285 call void @finch_str_concat(ptr %a283, ptr %a284, ptr %a285) store { ptr, i64, i64 } %t282, ptr %a286 call void @finch_str_drop(ptr %a286) @@ -34694,104 +36066,104 @@ then3059: %t290 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t291 = load %S.ast.Type, ptr %t290 %t292 = call i1 @finch.gen.isFloat(%S.ast.Type %t291) - br label %logic.from3062 -logic.from3062: - br i1 %t292, label %logic.rhs3063, label %logic.end3064 -logic.rhs3063: + br label %logic.from3176 +logic.from3176: + br i1 %t292, label %logic.rhs3177, label %logic.end3178 +logic.rhs3177: %t293 = load %S.ast.Type, ptr %a3 %t294 = call i1 @finch.gen.isInt(%S.ast.Type %t293) - br label %logic.rend3065 -logic.rend3065: - br label %logic.end3064 -logic.end3064: - %t295 = phi i1 [ false, %logic.from3062 ], [ %t294, %logic.rend3065 ] - br i1 %t295, label %then3066, label %endif3068 -then3066: + br label %logic.rend3179 +logic.rend3179: + br label %logic.end3178 +logic.end3178: + %t295 = phi i1 [ false, %logic.from3176 ], [ %t294, %logic.rend3179 ] + br i1 %t295, label %then3180, label %endif3182 +then3180: %t296 = load { ptr, i64, i64 }, ptr %a263 store { ptr, i64, i64 } %t296, ptr %a298 - store { ptr, i64, i64 } { ptr @.str.1944, i64 26, i64 0 }, ptr %a299 + store { ptr, i64, i64 } { ptr @.str.2016, i64 26, i64 0 }, ptr %a299 call void @finch_str_concat(ptr %a297, ptr %a298, ptr %a299) %t300 = load { ptr, i64, i64 }, ptr %a297 %t301 = load { ptr, i64, i64 }, ptr %a263 store { ptr, i64, i64 } %t300, ptr %a263 store { ptr, i64, i64 } %t301, ptr %a302 call void @finch_str_drop(ptr %a302) - br label %endif3068 -endif3068: + br label %endif3182 +endif3182: %t303 = load { ptr, i64, i64 }, ptr %a263 store { ptr, i64, i64 } %t303, ptr %a305 - store { ptr, i64, i64 } { ptr @.str.1945, i64 1, i64 0 }, ptr %a306 + store { ptr, i64, i64 } { ptr @.str.2017, i64 1, i64 0 }, ptr %a306 call void @finch_str_concat(ptr %a304, ptr %a305, ptr %a306) %t307 = load { ptr, i64, i64 }, ptr %a304 %t308 = load { ptr, i64, i64 }, ptr %a263 store { ptr, i64, i64 } %t307, ptr %a263 store { ptr, i64, i64 } %t308, ptr %a309 call void @finch_str_drop(ptr %a309) - br label %endif3061 -endif3061: + br label %endif3175 +endif3175: %t310 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t311 = load { ptr, i64, i64 }, ptr %t310 store { ptr, i64, i64 } %t311, ptr %a312 - store { ptr, i64, i64 } { ptr @.str.1946, i64 3, i64 0 }, ptr %a313 + store { ptr, i64, i64 } { ptr @.str.2018, i64 3, i64 0 }, ptr %a313 %t314 = call i32 @finch_str_eq(ptr %a312, ptr %a313) %t315 = icmp ne i32 %t314, 0 - br label %logic.from3069 -logic.from3069: - br i1 %t315, label %logic.rhs3070, label %logic.end3071 -logic.rhs3070: + br label %logic.from3183 +logic.from3183: + br i1 %t315, label %logic.rhs3184, label %logic.end3185 +logic.rhs3184: %t316 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t317 = load %S.ast.Type, ptr %t316 %t318 = call i1 @finch.gen.isNumber(%S.ast.Type %t317) - br label %logic.from3072 -logic.from3072: - br i1 %t318, label %logic.end3074, label %logic.rhs3073 -logic.rhs3073: + br label %logic.from3186 +logic.from3186: + br i1 %t318, label %logic.end3188, label %logic.rhs3187 +logic.rhs3187: %t319 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t320 = getelementptr inbounds %S.ast.Type, ptr %t319, i32 0, i32 0 %t321 = load { ptr, i64, i64 }, ptr %t320 store { ptr, i64, i64 } %t321, ptr %a322 - store { ptr, i64, i64 } { ptr @.str.1947, i64 4, i64 0 }, ptr %a323 + store { ptr, i64, i64 } { ptr @.str.2019, i64 4, i64 0 }, ptr %a323 %t324 = call i32 @finch_str_eq(ptr %a322, ptr %a323) %t325 = icmp ne i32 %t324, 0 - br label %logic.rend3075 -logic.rend3075: - br label %logic.end3074 -logic.end3074: - %t326 = phi i1 [ true, %logic.from3072 ], [ %t325, %logic.rend3075 ] - br label %logic.from3076 -logic.from3076: - br i1 %t326, label %logic.end3078, label %logic.rhs3077 -logic.rhs3077: + br label %logic.rend3189 +logic.rend3189: + br label %logic.end3188 +logic.end3188: + %t326 = phi i1 [ true, %logic.from3186 ], [ %t325, %logic.rend3189 ] + br label %logic.from3190 +logic.from3190: + br i1 %t326, label %logic.end3192, label %logic.rhs3191 +logic.rhs3191: %t327 = getelementptr inbounds %S.gen.Val, ptr %a2, i32 0, i32 1 %t328 = getelementptr inbounds %S.ast.Type, ptr %t327, i32 0, i32 0 %t329 = load { ptr, i64, i64 }, ptr %t328 store { ptr, i64, i64 } %t329, ptr %a330 - store { ptr, i64, i64 } { ptr @.str.1948, i64 4, i64 0 }, ptr %a331 + store { ptr, i64, i64 } { ptr @.str.2020, i64 4, i64 0 }, ptr %a331 %t332 = call i32 @finch_str_eq(ptr %a330, ptr %a331) %t333 = icmp ne i32 %t332, 0 - br label %logic.rend3079 -logic.rend3079: - br label %logic.end3078 -logic.end3078: - %t334 = phi i1 [ true, %logic.from3076 ], [ %t333, %logic.rend3079 ] - br label %logic.rend3080 -logic.rend3080: - br label %logic.end3071 -logic.end3071: - %t335 = phi i1 [ false, %logic.from3069 ], [ %t334, %logic.rend3080 ] - br i1 %t335, label %then3081, label %endif3083 -then3081: + br label %logic.rend3193 +logic.rend3193: + br label %logic.end3192 +logic.end3192: + %t334 = phi i1 [ true, %logic.from3190 ], [ %t333, %logic.rend3193 ] + br label %logic.rend3194 +logic.rend3194: + br label %logic.end3185 +logic.end3185: + %t335 = phi i1 [ false, %logic.from3183 ], [ %t334, %logic.rend3194 ] + br i1 %t335, label %then3195, label %endif3197 +then3195: %t336 = load { ptr, i64, i64 }, ptr %a263 store { ptr, i64, i64 } %t336, ptr %a338 - store { ptr, i64, i64 } { ptr @.str.1949, i64 34, i64 0 }, ptr %a339 + store { ptr, i64, i64 } { ptr @.str.2021, i64 34, i64 0 }, ptr %a339 call void @finch_str_concat(ptr %a337, ptr %a338, ptr %a339) %t340 = load { ptr, i64, i64 }, ptr %a337 %t341 = load { ptr, i64, i64 }, ptr %a263 store { ptr, i64, i64 } %t340, ptr %a263 store { ptr, i64, i64 } %t341, ptr %a342 call void @finch_str_drop(ptr %a342) - br label %endif3083 -endif3083: + br label %endif3197 +endif3197: %t343 = load ptr, ptr %a1 %t344 = load %S.ast.Node, ptr %a4 %t345 = load { ptr, i64, i64 }, ptr %a263 @@ -34817,28 +36189,28 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic3084, label %ok3085 -panic3084: - call void @finch_panic(ptr @.str.1950, i64 1283, ptr @.str.1951) + br i1 %t4, label %panic3198, label %ok3199 +panic3198: + call void @finch_panic(ptr @.str.2022, i64 1346, ptr @.str.2023) unreachable -ok3085: +ok3199: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 10 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t7 = load i64, ptr %t6 store i64 0, ptr %a8 - br label %for.cond3086 -for.cond3086: + br label %for.cond3200 +for.cond3200: %t9 = load i64, ptr %a8 %t10 = icmp slt i64 %t9, %t7 - br i1 %t10, label %for.body3087, label %for.end3089 -for.body3087: + br i1 %t10, label %for.body3201, label %for.end3203 +for.body3201: %t11 = load ptr, ptr %a1 %t12 = icmp eq ptr %t11, null - br i1 %t12, label %panic3090, label %ok3091 -panic3090: - call void @finch_panic(ptr @.str.1952, i64 1284, ptr @.str.1953) + br i1 %t12, label %panic3204, label %ok3205 +panic3204: + call void @finch_panic(ptr @.str.2024, i64 1347, ptr @.str.2025) unreachable -ok3091: +ok3205: %t13 = getelementptr inbounds %S.gen.Gen, ptr %t11, i32 0, i32 10 %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %t13, i32 0, i32 1 %t15 = load i64, ptr %t14 @@ -34848,50 +36220,50 @@ ok3091: store i64 %t18, ptr %a19 %t20 = load ptr, ptr %a1 %t21 = icmp eq ptr %t20, null - br i1 %t21, label %panic3092, label %ok3093 -panic3092: - call void @finch_panic(ptr @.str.1954, i64 1285, ptr @.str.1955) + br i1 %t21, label %panic3206, label %ok3207 +panic3206: + call void @finch_panic(ptr @.str.2026, i64 1348, ptr @.str.2027) unreachable -ok3093: +ok3207: %t22 = getelementptr inbounds %S.gen.Gen, ptr %t20, i32 0, i32 10 %t23 = load i64, ptr %a19 %t24 = load { ptr, i64, i64 }, ptr %t22 %t25 = extractvalue { ptr, i64, i64 } %t24, 1 %t26 = icmp uge i64 %t23, %t25 - br i1 %t26, label %range3094, label %inrange3095 -range3094: - call void @finch_panic_index(ptr @.str.1956, i64 1285, i64 %t23, i64 %t25) + br i1 %t26, label %range3208, label %inrange3209 +range3208: + call void @finch_panic_index(ptr @.str.2028, i64 1348, i64 %t23, i64 %t25) unreachable -inrange3095: +inrange3209: %t27 = extractvalue { ptr, i64, i64 } %t24, 0 %t28 = getelementptr inbounds %S.gen.Scope, ptr %t27, i64 %t23 %t29 = getelementptr inbounds %S.gen.Scope, ptr %t28, i32 0, i32 0 %t30 = getelementptr inbounds { ptr, i64, i64 }, ptr %t29, i32 0, i32 1 %t31 = load i64, ptr %t30 store i64 0, ptr %a32 - br label %for.cond3096 -for.cond3096: + br label %for.cond3210 +for.cond3210: %t33 = load i64, ptr %a32 %t34 = icmp slt i64 %t33, %t31 - br i1 %t34, label %for.body3097, label %for.end3099 -for.body3097: + br i1 %t34, label %for.body3211, label %for.end3213 +for.body3211: %t35 = load ptr, ptr %a1 %t36 = icmp eq ptr %t35, null - br i1 %t36, label %panic3100, label %ok3101 -panic3100: - call void @finch_panic(ptr @.str.1957, i64 1286, ptr @.str.1958) + br i1 %t36, label %panic3214, label %ok3215 +panic3214: + call void @finch_panic(ptr @.str.2029, i64 1349, ptr @.str.2030) unreachable -ok3101: +ok3215: %t37 = getelementptr inbounds %S.gen.Gen, ptr %t35, i32 0, i32 10 %t38 = load i64, ptr %a19 %t39 = load { ptr, i64, i64 }, ptr %t37 %t40 = extractvalue { ptr, i64, i64 } %t39, 1 %t41 = icmp uge i64 %t38, %t40 - br i1 %t41, label %range3102, label %inrange3103 -range3102: - call void @finch_panic_index(ptr @.str.1959, i64 1286, i64 %t38, i64 %t40) + br i1 %t41, label %range3216, label %inrange3217 +range3216: + call void @finch_panic_index(ptr @.str.2031, i64 1349, i64 %t38, i64 %t40) unreachable -inrange3103: +inrange3217: %t42 = extractvalue { ptr, i64, i64 } %t39, 0 %t43 = getelementptr inbounds %S.gen.Scope, ptr %t42, i64 %t38 %t44 = getelementptr inbounds %S.gen.Scope, ptr %t43, i32 0, i32 0 @@ -34899,11 +36271,11 @@ inrange3103: %t46 = load { ptr, i64, i64 }, ptr %t44 %t47 = extractvalue { ptr, i64, i64 } %t46, 1 %t48 = icmp uge i64 %t45, %t47 - br i1 %t48, label %range3104, label %inrange3105 -range3104: - call void @finch_panic_index(ptr @.str.1960, i64 1286, i64 %t45, i64 %t47) + br i1 %t48, label %range3218, label %inrange3219 +range3218: + call void @finch_panic_index(ptr @.str.2032, i64 1349, i64 %t45, i64 %t47) unreachable -inrange3105: +inrange3219: %t49 = extractvalue { ptr, i64, i64 } %t46, 0 %t50 = getelementptr inbounds %S.gen.Var, ptr %t49, i64 %t45 %t51 = getelementptr inbounds %S.gen.Var, ptr %t50, i32 0, i32 0 @@ -34913,38 +36285,38 @@ inrange3105: store { ptr, i64, i64 } %t53, ptr %a55 %t56 = call i32 @finch_str_eq(ptr %a54, ptr %a55) %t57 = icmp ne i32 %t56, 0 - br i1 %t57, label %then3106, label %endif3108 -then3106: + br i1 %t57, label %then3220, label %endif3222 +then3220: %t58 = load ptr, ptr %a1 %t59 = icmp eq ptr %t58, null - br i1 %t59, label %panic3109, label %ok3110 -panic3109: - call void @finch_panic(ptr @.str.1961, i64 1287, ptr @.str.1962) + br i1 %t59, label %panic3223, label %ok3224 +panic3223: + call void @finch_panic(ptr @.str.2033, i64 1350, ptr @.str.2034) unreachable -ok3110: - %t60 = getelementptr inbounds %S.gen.Gen, ptr %t58, i32 0, i32 43 +ok3224: + %t60 = getelementptr inbounds %S.gen.Gen, ptr %t58, i32 0, i32 44 %t61 = load i1, ptr %t60 - br label %logic.from3111 -logic.from3111: - br i1 %t61, label %logic.rhs3112, label %logic.end3113 -logic.rhs3112: + br label %logic.from3225 +logic.from3225: + br i1 %t61, label %logic.rhs3226, label %logic.end3227 +logic.rhs3226: %t62 = load ptr, ptr %a1 %t63 = icmp eq ptr %t62, null - br i1 %t63, label %panic3114, label %ok3115 -panic3114: - call void @finch_panic(ptr @.str.1963, i64 1287, ptr @.str.1964) + br i1 %t63, label %panic3228, label %ok3229 +panic3228: + call void @finch_panic(ptr @.str.2035, i64 1350, ptr @.str.2036) unreachable -ok3115: +ok3229: %t64 = getelementptr inbounds %S.gen.Gen, ptr %t62, i32 0, i32 10 %t65 = load i64, ptr %a19 %t66 = load { ptr, i64, i64 }, ptr %t64 %t67 = extractvalue { ptr, i64, i64 } %t66, 1 %t68 = icmp uge i64 %t65, %t67 - br i1 %t68, label %range3116, label %inrange3117 -range3116: - call void @finch_panic_index(ptr @.str.1965, i64 1287, i64 %t65, i64 %t67) + br i1 %t68, label %range3230, label %inrange3231 +range3230: + call void @finch_panic_index(ptr @.str.2037, i64 1350, i64 %t65, i64 %t67) unreachable -inrange3117: +inrange3231: %t69 = extractvalue { ptr, i64, i64 } %t66, 0 %t70 = getelementptr inbounds %S.gen.Scope, ptr %t69, i64 %t65 %t71 = getelementptr inbounds %S.gen.Scope, ptr %t70, i32 0, i32 0 @@ -34952,54 +36324,54 @@ inrange3117: %t73 = load { ptr, i64, i64 }, ptr %t71 %t74 = extractvalue { ptr, i64, i64 } %t73, 1 %t75 = icmp uge i64 %t72, %t74 - br i1 %t75, label %range3118, label %inrange3119 -range3118: - call void @finch_panic_index(ptr @.str.1966, i64 1287, i64 %t72, i64 %t74) + br i1 %t75, label %range3232, label %inrange3233 +range3232: + call void @finch_panic_index(ptr @.str.2038, i64 1350, i64 %t72, i64 %t74) unreachable -inrange3119: +inrange3233: %t76 = extractvalue { ptr, i64, i64 } %t73, 0 %t77 = getelementptr inbounds %S.gen.Var, ptr %t76, i64 %t72 %t78 = getelementptr inbounds %S.gen.Var, ptr %t77, i32 0, i32 4 %t79 = load i64, ptr %t78 %t80 = load ptr, ptr %a1 %t81 = icmp eq ptr %t80, null - br i1 %t81, label %panic3120, label %ok3121 -panic3120: - call void @finch_panic(ptr @.str.1967, i64 1287, ptr @.str.1968) + br i1 %t81, label %panic3234, label %ok3235 +panic3234: + call void @finch_panic(ptr @.str.2039, i64 1350, ptr @.str.2040) unreachable -ok3121: - %t82 = getelementptr inbounds %S.gen.Gen, ptr %t80, i32 0, i32 44 +ok3235: + %t82 = getelementptr inbounds %S.gen.Gen, ptr %t80, i32 0, i32 45 %t83 = load i64, ptr %t82 %t84 = icmp sge i64 %t79, %t83 - br label %logic.rend3122 -logic.rend3122: - br label %logic.end3113 -logic.end3113: - %t85 = phi i1 [ false, %logic.from3111 ], [ %t84, %logic.rend3122 ] - br i1 %t85, label %then3123, label %endif3125 -then3123: - br label %for.step3098 -endif3125: + br label %logic.rend3236 +logic.rend3236: + br label %logic.end3227 +logic.end3227: + %t85 = phi i1 [ false, %logic.from3225 ], [ %t84, %logic.rend3236 ] + br i1 %t85, label %then3237, label %endif3239 +then3237: + br label %for.step3212 +endif3239: %t86 = load i64, ptr %a19 %t87 = mul i64 %t86, 100000 %t88 = load i64, ptr %a32 %t89 = add i64 %t87, %t88 ret i64 %t89 -endif3108: - br label %for.step3098 -for.step3098: +endif3222: + br label %for.step3212 +for.step3212: %t90 = load i64, ptr %a32 %t91 = add i64 %t90, 1 store i64 %t91, ptr %a32 - br label %for.cond3096 -for.end3099: - br label %for.step3088 -for.step3088: + br label %for.cond3210 +for.end3213: + br label %for.step3202 +for.step3202: %t92 = load i64, ptr %a8 %t93 = add i64 %t92, 1 store i64 %t93, ptr %a8 - br label %for.cond3086 -for.end3089: + br label %for.cond3200 +for.end3203: ret i64 -1 } @@ -35033,22 +36405,22 @@ entry: store i64 %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic3126, label %ok3127 -panic3126: - call void @finch_panic(ptr @.str.1969, i64 1298, ptr @.str.1970) + br i1 %t4, label %panic3240, label %ok3241 +panic3240: + call void @finch_panic(ptr @.str.2041, i64 1361, ptr @.str.2042) unreachable -ok3127: +ok3241: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 10 %t6 = load i64, ptr %a2 %t7 = sdiv i64 %t6, 100000 %t8 = load { ptr, i64, i64 }, ptr %t5 %t9 = extractvalue { ptr, i64, i64 } %t8, 1 %t10 = icmp uge i64 %t7, %t9 - br i1 %t10, label %range3128, label %inrange3129 -range3128: - call void @finch_panic_index(ptr @.str.1971, i64 1298, i64 %t7, i64 %t9) + br i1 %t10, label %range3242, label %inrange3243 +range3242: + call void @finch_panic_index(ptr @.str.2043, i64 1361, i64 %t7, i64 %t9) unreachable -inrange3129: +inrange3243: %t11 = extractvalue { ptr, i64, i64 } %t8, 0 %t12 = getelementptr inbounds %S.gen.Scope, ptr %t11, i64 %t7 %t13 = getelementptr inbounds %S.gen.Scope, ptr %t12, i32 0, i32 0 @@ -35057,11 +36429,11 @@ inrange3129: %t16 = load { ptr, i64, i64 }, ptr %t13 %t17 = extractvalue { ptr, i64, i64 } %t16, 1 %t18 = icmp uge i64 %t15, %t17 - br i1 %t18, label %range3130, label %inrange3131 -range3130: - call void @finch_panic_index(ptr @.str.1972, i64 1298, i64 %t15, i64 %t17) + br i1 %t18, label %range3244, label %inrange3245 +range3244: + call void @finch_panic_index(ptr @.str.2044, i64 1361, i64 %t15, i64 %t17) unreachable -inrange3131: +inrange3245: %t19 = extractvalue { ptr, i64, i64 } %t16, 0 %t20 = getelementptr inbounds %S.gen.Var, ptr %t19, i64 %t15 %t21 = load %S.gen.Var, ptr %t20 @@ -35086,38 +36458,38 @@ entry: store { ptr, i64, i64 } %p2, ptr %a3 %t4 = load ptr, ptr %a1 %t5 = icmp eq ptr %t4, null - br i1 %t5, label %panic3132, label %ok3133 -panic3132: - call void @finch_panic(ptr @.str.1973, i64 1302, ptr @.str.1974) + br i1 %t5, label %panic3246, label %ok3247 +panic3246: + call void @finch_panic(ptr @.str.2045, i64 1365, ptr @.str.2046) unreachable -ok3133: +ok3247: %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 15 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t6, i32 0, i32 1 %t8 = load i64, ptr %t7 store i64 0, ptr %a9 - br label %for.cond3134 -for.cond3134: + br label %for.cond3248 +for.cond3248: %t10 = load i64, ptr %a9 %t11 = icmp slt i64 %t10, %t8 - br i1 %t11, label %for.body3135, label %for.end3137 -for.body3135: + br i1 %t11, label %for.body3249, label %for.end3251 +for.body3249: %t12 = load ptr, ptr %a1 %t13 = icmp eq ptr %t12, null - br i1 %t13, label %panic3138, label %ok3139 -panic3138: - call void @finch_panic(ptr @.str.1975, i64 1303, ptr @.str.1976) + br i1 %t13, label %panic3252, label %ok3253 +panic3252: + call void @finch_panic(ptr @.str.2047, i64 1366, ptr @.str.2048) unreachable -ok3139: +ok3253: %t14 = getelementptr inbounds %S.gen.Gen, ptr %t12, i32 0, i32 15 %t15 = load i64, ptr %a9 %t16 = load { ptr, i64, i64 }, ptr %t14 %t17 = extractvalue { ptr, i64, i64 } %t16, 1 %t18 = icmp uge i64 %t15, %t17 - br i1 %t18, label %range3140, label %inrange3141 -range3140: - call void @finch_panic_index(ptr @.str.1977, i64 1303, i64 %t15, i64 %t17) + br i1 %t18, label %range3254, label %inrange3255 +range3254: + call void @finch_panic_index(ptr @.str.2049, i64 1366, i64 %t15, i64 %t17) unreachable -inrange3141: +inrange3255: %t19 = extractvalue { ptr, i64, i64 } %t16, 0 %t20 = getelementptr inbounds %S.gen.FnSig, ptr %t19, i64 %t15 %t21 = getelementptr inbounds %S.gen.FnSig, ptr %t20, i32 0, i32 0 @@ -35127,27 +36499,27 @@ inrange3141: store { ptr, i64, i64 } %t23, ptr %a25 %t26 = call i32 @finch_str_eq(ptr %a24, ptr %a25) %t27 = icmp ne i32 %t26, 0 - br label %logic.from3142 -logic.from3142: - br i1 %t27, label %logic.rhs3143, label %logic.end3144 -logic.rhs3143: + br label %logic.from3256 +logic.from3256: + br i1 %t27, label %logic.rhs3257, label %logic.end3258 +logic.rhs3257: %t28 = load ptr, ptr %a1 %t29 = icmp eq ptr %t28, null - br i1 %t29, label %panic3145, label %ok3146 -panic3145: - call void @finch_panic(ptr @.str.1978, i64 1303, ptr @.str.1979) + br i1 %t29, label %panic3259, label %ok3260 +panic3259: + call void @finch_panic(ptr @.str.2050, i64 1366, ptr @.str.2051) unreachable -ok3146: +ok3260: %t30 = getelementptr inbounds %S.gen.Gen, ptr %t28, i32 0, i32 15 %t31 = load i64, ptr %a9 %t32 = load { ptr, i64, i64 }, ptr %t30 %t33 = extractvalue { ptr, i64, i64 } %t32, 1 %t34 = icmp uge i64 %t31, %t33 - br i1 %t34, label %range3147, label %inrange3148 -range3147: - call void @finch_panic_index(ptr @.str.1980, i64 1303, i64 %t31, i64 %t33) + br i1 %t34, label %range3261, label %inrange3262 +range3261: + call void @finch_panic_index(ptr @.str.2052, i64 1366, i64 %t31, i64 %t33) unreachable -inrange3148: +inrange3262: %t35 = extractvalue { ptr, i64, i64 } %t32, 0 %t36 = getelementptr inbounds %S.gen.FnSig, ptr %t35, i64 %t31 %t37 = getelementptr inbounds %S.gen.FnSig, ptr %t36, i32 0, i32 1 @@ -35157,55 +36529,55 @@ inrange3148: store { ptr, i64, i64 } %t39, ptr %a41 %t42 = call i32 @finch_str_eq(ptr %a40, ptr %a41) %t43 = icmp ne i32 %t42, 0 - br label %logic.rend3149 -logic.rend3149: - br label %logic.end3144 -logic.end3144: - %t44 = phi i1 [ false, %logic.from3142 ], [ %t43, %logic.rend3149 ] - br label %logic.from3150 -logic.from3150: - br i1 %t44, label %logic.rhs3151, label %logic.end3152 -logic.rhs3151: + br label %logic.rend3263 +logic.rend3263: + br label %logic.end3258 +logic.end3258: + %t44 = phi i1 [ false, %logic.from3256 ], [ %t43, %logic.rend3263 ] + br label %logic.from3264 +logic.from3264: + br i1 %t44, label %logic.rhs3265, label %logic.end3266 +logic.rhs3265: %t45 = load ptr, ptr %a1 %t46 = icmp eq ptr %t45, null - br i1 %t46, label %panic3153, label %ok3154 -panic3153: - call void @finch_panic(ptr @.str.1981, i64 1303, ptr @.str.1982) + br i1 %t46, label %panic3267, label %ok3268 +panic3267: + call void @finch_panic(ptr @.str.2053, i64 1366, ptr @.str.2054) unreachable -ok3154: +ok3268: %t47 = getelementptr inbounds %S.gen.Gen, ptr %t45, i32 0, i32 15 %t48 = load i64, ptr %a9 %t49 = load { ptr, i64, i64 }, ptr %t47 %t50 = extractvalue { ptr, i64, i64 } %t49, 1 %t51 = icmp uge i64 %t48, %t50 - br i1 %t51, label %range3155, label %inrange3156 -range3155: - call void @finch_panic_index(ptr @.str.1983, i64 1303, i64 %t48, i64 %t50) + br i1 %t51, label %range3269, label %inrange3270 +range3269: + call void @finch_panic_index(ptr @.str.2055, i64 1366, i64 %t48, i64 %t50) unreachable -inrange3156: +inrange3270: %t52 = extractvalue { ptr, i64, i64 } %t49, 0 %t53 = getelementptr inbounds %S.gen.FnSig, ptr %t52, i64 %t48 %t54 = getelementptr inbounds %S.gen.FnSig, ptr %t53, i32 0, i32 2 %t55 = getelementptr inbounds { ptr, i64, i64 }, ptr %t54, i32 0, i32 1 %t56 = load i64, ptr %t55 %t57 = icmp eq i64 %t56, 0 - br label %logic.rend3157 -logic.rend3157: - br label %logic.end3152 -logic.end3152: - %t58 = phi i1 [ false, %logic.from3150 ], [ %t57, %logic.rend3157 ] - br i1 %t58, label %then3158, label %endif3160 -then3158: + br label %logic.rend3271 +logic.rend3271: + br label %logic.end3266 +logic.end3266: + %t58 = phi i1 [ false, %logic.from3264 ], [ %t57, %logic.rend3271 ] + br i1 %t58, label %then3272, label %endif3274 +then3272: %t59 = load i64, ptr %a9 ret i64 %t59 -endif3160: - br label %for.step3136 -for.step3136: +endif3274: + br label %for.step3250 +for.step3250: %t60 = load i64, ptr %a9 %t61 = add i64 %t60, 1 store i64 %t61, ptr %a9 - br label %for.cond3134 -for.end3137: + br label %for.cond3248 +for.end3251: ret i64 -1 } @@ -35228,38 +36600,38 @@ entry: store { ptr, i64, i64 } %p3, ptr %a4 %t5 = load ptr, ptr %a1 %t6 = icmp eq ptr %t5, null - br i1 %t6, label %panic3161, label %ok3162 -panic3161: - call void @finch_panic(ptr @.str.1984, i64 1311, ptr @.str.1985) + br i1 %t6, label %panic3275, label %ok3276 +panic3275: + call void @finch_panic(ptr @.str.2056, i64 1374, ptr @.str.2057) unreachable -ok3162: +ok3276: %t7 = getelementptr inbounds %S.gen.Gen, ptr %t5, i32 0, i32 15 %t8 = getelementptr inbounds { ptr, i64, i64 }, ptr %t7, i32 0, i32 1 %t9 = load i64, ptr %t8 store i64 0, ptr %a10 - br label %for.cond3163 -for.cond3163: + br label %for.cond3277 +for.cond3277: %t11 = load i64, ptr %a10 %t12 = icmp slt i64 %t11, %t9 - br i1 %t12, label %for.body3164, label %for.end3166 -for.body3164: + br i1 %t12, label %for.body3278, label %for.end3280 +for.body3278: %t13 = load ptr, ptr %a1 %t14 = icmp eq ptr %t13, null - br i1 %t14, label %panic3167, label %ok3168 -panic3167: - call void @finch_panic(ptr @.str.1986, i64 1312, ptr @.str.1987) + br i1 %t14, label %panic3281, label %ok3282 +panic3281: + call void @finch_panic(ptr @.str.2058, i64 1375, ptr @.str.2059) unreachable -ok3168: +ok3282: %t15 = getelementptr inbounds %S.gen.Gen, ptr %t13, i32 0, i32 15 %t16 = load i64, ptr %a10 %t17 = load { ptr, i64, i64 }, ptr %t15 %t18 = extractvalue { ptr, i64, i64 } %t17, 1 %t19 = icmp uge i64 %t16, %t18 - br i1 %t19, label %range3169, label %inrange3170 -range3169: - call void @finch_panic_index(ptr @.str.1988, i64 1312, i64 %t16, i64 %t18) + br i1 %t19, label %range3283, label %inrange3284 +range3283: + call void @finch_panic_index(ptr @.str.2060, i64 1375, i64 %t16, i64 %t18) unreachable -inrange3170: +inrange3284: %t20 = extractvalue { ptr, i64, i64 } %t17, 0 %t21 = getelementptr inbounds %S.gen.FnSig, ptr %t20, i64 %t16 %t22 = getelementptr inbounds %S.gen.FnSig, ptr %t21, i32 0, i32 3 @@ -35269,27 +36641,27 @@ inrange3170: store { ptr, i64, i64 } %t24, ptr %a26 %t27 = call i32 @finch_str_eq(ptr %a25, ptr %a26) %t28 = icmp ne i32 %t27, 0 - br label %logic.from3171 -logic.from3171: - br i1 %t28, label %logic.rhs3172, label %logic.end3173 -logic.rhs3172: + br label %logic.from3285 +logic.from3285: + br i1 %t28, label %logic.rhs3286, label %logic.end3287 +logic.rhs3286: %t29 = load ptr, ptr %a1 %t30 = icmp eq ptr %t29, null - br i1 %t30, label %panic3174, label %ok3175 -panic3174: - call void @finch_panic(ptr @.str.1989, i64 1312, ptr @.str.1990) + br i1 %t30, label %panic3288, label %ok3289 +panic3288: + call void @finch_panic(ptr @.str.2061, i64 1375, ptr @.str.2062) unreachable -ok3175: +ok3289: %t31 = getelementptr inbounds %S.gen.Gen, ptr %t29, i32 0, i32 15 %t32 = load i64, ptr %a10 %t33 = load { ptr, i64, i64 }, ptr %t31 %t34 = extractvalue { ptr, i64, i64 } %t33, 1 %t35 = icmp uge i64 %t32, %t34 - br i1 %t35, label %range3176, label %inrange3177 -range3176: - call void @finch_panic_index(ptr @.str.1991, i64 1312, i64 %t32, i64 %t34) + br i1 %t35, label %range3290, label %inrange3291 +range3290: + call void @finch_panic_index(ptr @.str.2063, i64 1375, i64 %t32, i64 %t34) unreachable -inrange3177: +inrange3291: %t36 = extractvalue { ptr, i64, i64 } %t33, 0 %t37 = getelementptr inbounds %S.gen.FnSig, ptr %t36, i64 %t32 %t38 = getelementptr inbounds %S.gen.FnSig, ptr %t37, i32 0, i32 2 @@ -35299,32 +36671,32 @@ inrange3177: store { ptr, i64, i64 } %t40, ptr %a42 %t43 = call i32 @finch_str_eq(ptr %a41, ptr %a42) %t44 = icmp ne i32 %t43, 0 - br label %logic.rend3178 -logic.rend3178: - br label %logic.end3173 -logic.end3173: - %t45 = phi i1 [ false, %logic.from3171 ], [ %t44, %logic.rend3178 ] - br label %logic.from3179 -logic.from3179: - br i1 %t45, label %logic.rhs3180, label %logic.end3181 -logic.rhs3180: + br label %logic.rend3292 +logic.rend3292: + br label %logic.end3287 +logic.end3287: + %t45 = phi i1 [ false, %logic.from3285 ], [ %t44, %logic.rend3292 ] + br label %logic.from3293 +logic.from3293: + br i1 %t45, label %logic.rhs3294, label %logic.end3295 +logic.rhs3294: %t46 = load ptr, ptr %a1 %t47 = icmp eq ptr %t46, null - br i1 %t47, label %panic3182, label %ok3183 -panic3182: - call void @finch_panic(ptr @.str.1992, i64 1312, ptr @.str.1993) + br i1 %t47, label %panic3296, label %ok3297 +panic3296: + call void @finch_panic(ptr @.str.2064, i64 1375, ptr @.str.2065) unreachable -ok3183: +ok3297: %t48 = getelementptr inbounds %S.gen.Gen, ptr %t46, i32 0, i32 15 %t49 = load i64, ptr %a10 %t50 = load { ptr, i64, i64 }, ptr %t48 %t51 = extractvalue { ptr, i64, i64 } %t50, 1 %t52 = icmp uge i64 %t49, %t51 - br i1 %t52, label %range3184, label %inrange3185 -range3184: - call void @finch_panic_index(ptr @.str.1994, i64 1312, i64 %t49, i64 %t51) + br i1 %t52, label %range3298, label %inrange3299 +range3298: + call void @finch_panic_index(ptr @.str.2066, i64 1375, i64 %t49, i64 %t51) unreachable -inrange3185: +inrange3299: %t53 = extractvalue { ptr, i64, i64 } %t50, 0 %t54 = getelementptr inbounds %S.gen.FnSig, ptr %t53, i64 %t49 %t55 = getelementptr inbounds %S.gen.FnSig, ptr %t54, i32 0, i32 1 @@ -35334,23 +36706,23 @@ inrange3185: store { ptr, i64, i64 } %t57, ptr %a59 %t60 = call i32 @finch_str_eq(ptr %a58, ptr %a59) %t61 = icmp ne i32 %t60, 0 - br label %logic.rend3186 -logic.rend3186: - br label %logic.end3181 -logic.end3181: - %t62 = phi i1 [ false, %logic.from3179 ], [ %t61, %logic.rend3186 ] - br i1 %t62, label %then3187, label %endif3189 -then3187: + br label %logic.rend3300 +logic.rend3300: + br label %logic.end3295 +logic.end3295: + %t62 = phi i1 [ false, %logic.from3293 ], [ %t61, %logic.rend3300 ] + br i1 %t62, label %then3301, label %endif3303 +then3301: %t63 = load i64, ptr %a10 ret i64 %t63 -endif3189: - br label %for.step3165 -for.step3165: +endif3303: + br label %for.step3279 +for.step3279: %t64 = load i64, ptr %a10 %t65 = add i64 %t64, 1 store i64 %t65, ptr %a10 - br label %for.cond3163 -for.end3166: + br label %for.cond3277 +for.end3280: ret i64 -1 } @@ -35366,61 +36738,61 @@ entry: %t2 = mul i64 28, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t3 = call ptr @finch_alloc(i64 %t2) %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 0 - store { ptr, i64, i64 } { ptr @.str.1995, i64 5, i64 0 }, ptr %t4 + store { ptr, i64, i64 } { ptr @.str.2067, i64 5, i64 0 }, ptr %t4 %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 1 - store { ptr, i64, i64 } { ptr @.str.1996, i64 4, i64 0 }, ptr %t5 + store { ptr, i64, i64 } { ptr @.str.2068, i64 4, i64 0 }, ptr %t5 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 2 - store { ptr, i64, i64 } { ptr @.str.1997, i64 3, i64 0 }, ptr %t6 + store { ptr, i64, i64 } { ptr @.str.2069, i64 3, i64 0 }, ptr %t6 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 3 - store { ptr, i64, i64 } { ptr @.str.1998, i64 3, i64 0 }, ptr %t7 + store { ptr, i64, i64 } { ptr @.str.2070, i64 3, i64 0 }, ptr %t7 %t8 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 4 - store { ptr, i64, i64 } { ptr @.str.1999, i64 4, i64 0 }, ptr %t8 + store { ptr, i64, i64 } { ptr @.str.2071, i64 4, i64 0 }, ptr %t8 %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 5 - store { ptr, i64, i64 } { ptr @.str.2000, i64 5, i64 0 }, ptr %t9 + store { ptr, i64, i64 } { ptr @.str.2072, i64 5, i64 0 }, ptr %t9 %t10 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 6 - store { ptr, i64, i64 } { ptr @.str.2001, i64 4, i64 0 }, ptr %t10 + store { ptr, i64, i64 } { ptr @.str.2073, i64 4, i64 0 }, ptr %t10 %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 7 - store { ptr, i64, i64 } { ptr @.str.2002, i64 9, i64 0 }, ptr %t11 + store { ptr, i64, i64 } { ptr @.str.2074, i64 9, i64 0 }, ptr %t11 %t12 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 8 - store { ptr, i64, i64 } { ptr @.str.2003, i64 10, i64 0 }, ptr %t12 + store { ptr, i64, i64 } { ptr @.str.2075, i64 10, i64 0 }, ptr %t12 %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 9 - store { ptr, i64, i64 } { ptr @.str.2004, i64 11, i64 0 }, ptr %t13 + store { ptr, i64, i64 } { ptr @.str.2076, i64 11, i64 0 }, ptr %t13 %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 10 - store { ptr, i64, i64 } { ptr @.str.2005, i64 5, i64 0 }, ptr %t14 + store { ptr, i64, i64 } { ptr @.str.2077, i64 5, i64 0 }, ptr %t14 %t15 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 11 - store { ptr, i64, i64 } { ptr @.str.2006, i64 4, i64 0 }, ptr %t15 + store { ptr, i64, i64 } { ptr @.str.2078, i64 4, i64 0 }, ptr %t15 %t16 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 12 - store { ptr, i64, i64 } { ptr @.str.2007, i64 5, i64 0 }, ptr %t16 + store { ptr, i64, i64 } { ptr @.str.2079, i64 5, i64 0 }, ptr %t16 %t17 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 13 - store { ptr, i64, i64 } { ptr @.str.2008, i64 3, i64 0 }, ptr %t17 + store { ptr, i64, i64 } { ptr @.str.2080, i64 3, i64 0 }, ptr %t17 %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 14 - store { ptr, i64, i64 } { ptr @.str.2009, i64 4, i64 0 }, ptr %t18 + store { ptr, i64, i64 } { ptr @.str.2081, i64 4, i64 0 }, ptr %t18 %t19 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 15 - store { ptr, i64, i64 } { ptr @.str.2010, i64 3, i64 0 }, ptr %t19 + store { ptr, i64, i64 } { ptr @.str.2082, i64 3, i64 0 }, ptr %t19 %t20 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 16 - store { ptr, i64, i64 } { ptr @.str.2011, i64 11, i64 0 }, ptr %t20 + store { ptr, i64, i64 } { ptr @.str.2083, i64 11, i64 0 }, ptr %t20 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 17 - store { ptr, i64, i64 } { ptr @.str.2012, i64 2, i64 0 }, ptr %t21 + store { ptr, i64, i64 } { ptr @.str.2084, i64 2, i64 0 }, ptr %t21 %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 18 - store { ptr, i64, i64 } { ptr @.str.2013, i64 3, i64 0 }, ptr %t22 + store { ptr, i64, i64 } { ptr @.str.2085, i64 3, i64 0 }, ptr %t22 %t23 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 19 - store { ptr, i64, i64 } { ptr @.str.2014, i64 3, i64 0 }, ptr %t23 + store { ptr, i64, i64 } { ptr @.str.2086, i64 3, i64 0 }, ptr %t23 %t24 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 20 - store { ptr, i64, i64 } { ptr @.str.2015, i64 3, i64 0 }, ptr %t24 + store { ptr, i64, i64 } { ptr @.str.2087, i64 3, i64 0 }, ptr %t24 %t25 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 21 - store { ptr, i64, i64 } { ptr @.str.2016, i64 2, i64 0 }, ptr %t25 + store { ptr, i64, i64 } { ptr @.str.2088, i64 2, i64 0 }, ptr %t25 %t26 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 22 - store { ptr, i64, i64 } { ptr @.str.2017, i64 3, i64 0 }, ptr %t26 + store { ptr, i64, i64 } { ptr @.str.2089, i64 3, i64 0 }, ptr %t26 %t27 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 23 - store { ptr, i64, i64 } { ptr @.str.2018, i64 3, i64 0 }, ptr %t27 + store { ptr, i64, i64 } { ptr @.str.2090, i64 3, i64 0 }, ptr %t27 %t28 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 24 - store { ptr, i64, i64 } { ptr @.str.2019, i64 3, i64 0 }, ptr %t28 + store { ptr, i64, i64 } { ptr @.str.2091, i64 3, i64 0 }, ptr %t28 %t29 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 25 - store { ptr, i64, i64 } { ptr @.str.2020, i64 3, i64 0 }, ptr %t29 + store { ptr, i64, i64 } { ptr @.str.2092, i64 3, i64 0 }, ptr %t29 %t30 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 26 - store { ptr, i64, i64 } { ptr @.str.2021, i64 3, i64 0 }, ptr %t30 + store { ptr, i64, i64 } { ptr @.str.2093, i64 3, i64 0 }, ptr %t30 %t31 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 27 - store { ptr, i64, i64 } { ptr @.str.2022, i64 5, i64 0 }, ptr %t31 + store { ptr, i64, i64 } { ptr @.str.2094, i64 5, i64 0 }, ptr %t31 %t32 = insertvalue { ptr, i64, i64 } undef, ptr %t3, 0 %t33 = insertvalue { ptr, i64, i64 } %t32, i64 28, 1 %t34 = insertvalue { ptr, i64, i64 } %t33, i64 28, 2 @@ -35431,27 +36803,27 @@ entry: %t39 = load i64, ptr %t36 %t40 = load ptr, ptr %a35 store i64 0, ptr %a41 - br label %find.cond3190 -find.cond3190: + br label %find.cond3304 +find.cond3304: %t42 = load i64, ptr %a41 %t43 = icmp slt i64 %t42, %t39 - br i1 %t43, label %find.body3191, label %find.end3194 -find.body3191: + br i1 %t43, label %find.body3305, label %find.end3308 +find.body3305: %t44 = getelementptr inbounds { ptr, i64, i64 }, ptr %t40, i64 %t42 %t45 = load { ptr, i64, i64 }, ptr %t44 store { ptr, i64, i64 } %t45, ptr %a46 store { ptr, i64, i64 } %t37, ptr %a47 %t48 = call i32 @finch_str_eq(ptr %a46, ptr %a47) %t49 = icmp ne i32 %t48, 0 - br i1 %t49, label %find.hit3192, label %find.next3193 -find.hit3192: + br i1 %t49, label %find.hit3306, label %find.next3307 +find.hit3306: store i64 %t42, ptr %a38 - br label %find.end3194 -find.next3193: + br label %find.end3308 +find.next3307: %t50 = add i64 %t42, 1 store i64 %t50, ptr %a41 - br label %find.cond3190 -find.end3194: + br label %find.cond3304 +find.end3308: %t51 = load i64, ptr %a38 %t52 = icmp sge i64 %t51, 0 call void @finch.drop.arr_str(ptr %a35) @@ -35610,31 +36982,31 @@ entry: %t9 = load { ptr, i64, i64 }, ptr %a3 %t10 = call i64 @finch.gen.lookup(ptr %t8, { ptr, i64, i64 } %t9) %t11 = icmp sge i64 %t10, 0 - br label %logic.from3195 -logic.from3195: - br i1 %t11, label %logic.rhs3196, label %logic.end3197 -logic.rhs3196: + br label %logic.from3309 +logic.from3309: + br i1 %t11, label %logic.rhs3310, label %logic.end3311 +logic.rhs3310: %t12 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t12, ptr %a13 - store { ptr, i64, i64 } { ptr @.str.2023, i64 3, i64 0 }, ptr %a14 + store { ptr, i64, i64 } { ptr @.str.2095, i64 3, i64 0 }, ptr %a14 %t15 = call i32 @finch_str_eq(ptr %a13, ptr %a14) %t16 = icmp eq i32 %t15, 0 - br label %logic.rend3198 -logic.rend3198: - br label %logic.end3197 -logic.end3197: - %t17 = phi i1 [ false, %logic.from3195 ], [ %t16, %logic.rend3198 ] - br i1 %t17, label %then3199, label %endif3201 -then3199: + br label %logic.rend3312 +logic.rend3312: + br label %logic.end3311 +logic.end3311: + %t17 = phi i1 [ false, %logic.from3309 ], [ %t16, %logic.rend3312 ] + br i1 %t17, label %then3313, label %endif3315 +then3313: %t18 = load ptr, ptr %a1 %t19 = load %S.ast.Node, ptr %a2 %t20 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.2024, i64 18, i64 0 }, ptr %a22 + store { ptr, i64, i64 } { ptr @.str.2096, i64 18, i64 0 }, ptr %a22 store { ptr, i64, i64 } %t20, ptr %a23 call void @finch_str_concat(ptr %a21, ptr %a22, ptr %a23) %t24 = load { ptr, i64, i64 }, ptr %a21 store { ptr, i64, i64 } %t24, ptr %a26 - store { ptr, i64, i64 } { ptr @.str.2025, i64 21, i64 0 }, ptr %a27 + store { ptr, i64, i64 } { ptr @.str.2097, i64 21, i64 0 }, ptr %a27 call void @finch_str_concat(ptr %a25, ptr %a26, ptr %a27) store { ptr, i64, i64 } %t24, ptr %a28 call void @finch_str_drop(ptr %a28) @@ -35642,32 +37014,32 @@ then3199: call void @finch.gen.fail(ptr %t18, %S.ast.Node %t19, { ptr, i64, i64 } %t29) store { ptr, i64, i64 } %t29, ptr %a30 call void @finch_str_drop(ptr %a30) - br label %endif3201 -endif3201: + br label %endif3315 +endif3315: %t31 = load ptr, ptr %a1 %t32 = load ptr, ptr %a1 %t33 = icmp eq ptr %t32, null - br i1 %t33, label %panic3202, label %ok3203 -panic3202: - call void @finch_panic(ptr @.str.2026, i64 1330, ptr @.str.2027) + br i1 %t33, label %panic3316, label %ok3317 +panic3316: + call void @finch_panic(ptr @.str.2098, i64 1393, ptr @.str.2099) unreachable -ok3203: +ok3317: %t34 = getelementptr inbounds %S.gen.Gen, ptr %t32, i32 0, i32 14 %t35 = load { ptr, i64, i64 }, ptr %t34 %t36 = load { ptr, i64, i64 }, ptr %a3 %t37 = call i64 @finch.gen.findFn(ptr %t31, { ptr, i64, i64 } %t35, { ptr, i64, i64 } %t36) %t38 = icmp sge i64 %t37, 0 - br i1 %t38, label %then3204, label %endif3206 -then3204: + br i1 %t38, label %then3318, label %endif3320 +then3318: %t39 = load ptr, ptr %a1 %t40 = load %S.ast.Node, ptr %a2 %t41 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.2028, i64 1, i64 0 }, ptr %a43 + store { ptr, i64, i64 } { ptr @.str.2100, i64 1, i64 0 }, ptr %a43 store { ptr, i64, i64 } %t41, ptr %a44 call void @finch_str_concat(ptr %a42, ptr %a43, ptr %a44) %t45 = load { ptr, i64, i64 }, ptr %a42 store { ptr, i64, i64 } %t45, ptr %a47 - store { ptr, i64, i64 } { ptr @.str.2029, i64 35, i64 0 }, ptr %a48 + store { ptr, i64, i64 } { ptr @.str.2101, i64 35, i64 0 }, ptr %a48 call void @finch_str_concat(ptr %a46, ptr %a47, ptr %a48) store { ptr, i64, i64 } %t45, ptr %a49 call void @finch_str_drop(ptr %a49) @@ -35675,21 +37047,21 @@ then3204: call void @finch.gen.fail(ptr %t39, %S.ast.Node %t40, { ptr, i64, i64 } %t50) store { ptr, i64, i64 } %t50, ptr %a51 call void @finch_str_drop(ptr %a51) - br label %endif3206 -endif3206: + br label %endif3320 +endif3320: %t52 = load { ptr, i64, i64 }, ptr %a3 %t53 = call i1 @finch.gen.isBuiltin({ ptr, i64, i64 } %t52) - br i1 %t53, label %then3207, label %endif3209 -then3207: + br i1 %t53, label %then3321, label %endif3323 +then3321: %t54 = load ptr, ptr %a1 %t55 = load %S.ast.Node, ptr %a2 %t56 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.2030, i64 1, i64 0 }, ptr %a58 + store { ptr, i64, i64 } { ptr @.str.2102, i64 1, i64 0 }, ptr %a58 store { ptr, i64, i64 } %t56, ptr %a59 call void @finch_str_concat(ptr %a57, ptr %a58, ptr %a59) %t60 = load { ptr, i64, i64 }, ptr %a57 store { ptr, i64, i64 } %t60, ptr %a62 - store { ptr, i64, i64 } { ptr @.str.2031, i64 38, i64 0 }, ptr %a63 + store { ptr, i64, i64 } { ptr @.str.2103, i64 38, i64 0 }, ptr %a63 call void @finch_str_concat(ptr %a61, ptr %a62, ptr %a63) store { ptr, i64, i64 } %t60, ptr %a64 call void @finch_str_drop(ptr %a64) @@ -35697,8 +37069,8 @@ then3207: call void @finch.gen.fail(ptr %t54, %S.ast.Node %t55, { ptr, i64, i64 } %t65) store { ptr, i64, i64 } %t65, ptr %a66 call void @finch_str_drop(ptr %a66) - br label %endif3209 -endif3209: + br label %endif3323 +endif3323: %t67 = load ptr, ptr %a1 %t68 = load ptr, ptr %a1 %t69 = load %S.ast.Type, ptr %a4 @@ -35718,50 +37090,50 @@ endif3209: call void @finch_str_drop(ptr %a80) %t81 = load ptr, ptr %a1 %t82 = icmp eq ptr %t81, null - br i1 %t82, label %panic3210, label %ok3211 -panic3210: - call void @finch_panic(ptr @.str.2032, i64 1338, ptr @.str.2033) + br i1 %t82, label %panic3324, label %ok3325 +panic3324: + call void @finch_panic(ptr @.str.2104, i64 1401, ptr @.str.2105) unreachable -ok3211: +ok3325: %t83 = getelementptr inbounds %S.gen.Gen, ptr %t81, i32 0, i32 10 %t84 = getelementptr inbounds { ptr, i64, i64 }, ptr %t83, i32 0, i32 1 %t85 = load i64, ptr %t84 %t86 = sub i64 %t85, 1 store i64 %t86, ptr %a87 %t88 = load i1, ptr %a7 - br label %logic.from3212 -logic.from3212: - br i1 %t88, label %logic.rhs3213, label %logic.end3214 -logic.rhs3213: + br label %logic.from3326 +logic.from3326: + br i1 %t88, label %logic.rhs3327, label %logic.end3328 +logic.rhs3327: %t89 = load ptr, ptr %a1 %t90 = load %S.ast.Type, ptr %a4 %t91 = call i1 @finch.gen.owning(ptr %t89, %S.ast.Type %t90) - br label %logic.rend3215 -logic.rend3215: - br label %logic.end3214 -logic.end3214: - %t92 = phi i1 [ false, %logic.from3212 ], [ %t91, %logic.rend3215 ] + br label %logic.rend3329 +logic.rend3329: + br label %logic.end3328 +logic.end3328: + %t92 = phi i1 [ false, %logic.from3326 ], [ %t91, %logic.rend3329 ] store i1 %t92, ptr %a93 %t94 = load i1, ptr %a93 - br i1 %t94, label %then3216, label %endif3218 -then3216: + br i1 %t94, label %then3330, label %endif3332 +then3330: %t95 = load ptr, ptr %a1 %t96 = icmp eq ptr %t95, null - br i1 %t96, label %panic3219, label %ok3220 -panic3219: - call void @finch_panic(ptr @.str.2034, i64 1341, ptr @.str.2035) + br i1 %t96, label %panic3333, label %ok3334 +panic3333: + call void @finch_panic(ptr @.str.2106, i64 1404, ptr @.str.2107) unreachable -ok3220: +ok3334: %t97 = getelementptr inbounds %S.gen.Gen, ptr %t95, i32 0, i32 10 %t98 = load i64, ptr %a87 %t99 = load { ptr, i64, i64 }, ptr %t97 %t100 = extractvalue { ptr, i64, i64 } %t99, 1 %t101 = icmp uge i64 %t98, %t100 - br i1 %t101, label %range3221, label %inrange3222 -range3221: - call void @finch_panic_index(ptr @.str.2036, i64 1341, i64 %t98, i64 %t100) + br i1 %t101, label %range3335, label %inrange3336 +range3335: + call void @finch_panic_index(ptr @.str.2108, i64 1404, i64 %t98, i64 %t100) unreachable -inrange3222: +inrange3336: %t102 = extractvalue { ptr, i64, i64 } %t99, 0 %t103 = getelementptr inbounds %S.gen.Scope, ptr %t102, i64 %t98 %t104 = getelementptr inbounds %S.gen.Scope, ptr %t103, i32 0, i32 3 @@ -35769,21 +37141,21 @@ inrange3222: %t106 = insertvalue %S.gen.Cleanup zeroinitializer, i1 false, 0 %t107 = load ptr, ptr %a1 %t108 = icmp eq ptr %t107, null - br i1 %t108, label %panic3223, label %ok3224 -panic3223: - call void @finch_panic(ptr @.str.2037, i64 1341, ptr @.str.2038) + br i1 %t108, label %panic3337, label %ok3338 +panic3337: + call void @finch_panic(ptr @.str.2109, i64 1404, ptr @.str.2110) unreachable -ok3224: +ok3338: %t109 = getelementptr inbounds %S.gen.Gen, ptr %t107, i32 0, i32 10 %t110 = load i64, ptr %a87 %t111 = load { ptr, i64, i64 }, ptr %t109 %t112 = extractvalue { ptr, i64, i64 } %t111, 1 %t113 = icmp uge i64 %t110, %t112 - br i1 %t113, label %range3225, label %inrange3226 -range3225: - call void @finch_panic_index(ptr @.str.2039, i64 1341, i64 %t110, i64 %t112) + br i1 %t113, label %range3339, label %inrange3340 +range3339: + call void @finch_panic_index(ptr @.str.2111, i64 1404, i64 %t110, i64 %t112) unreachable -inrange3226: +inrange3340: %t114 = extractvalue { ptr, i64, i64 } %t111, 0 %t115 = getelementptr inbounds %S.gen.Scope, ptr %t114, i64 %t110 %t116 = getelementptr inbounds %S.gen.Scope, ptr %t115, i32 0, i32 0 @@ -35797,25 +37169,25 @@ inrange3226: %t123 = getelementptr inbounds %S.gen.Cleanup, ptr %t122, i64 %t120 store %S.gen.Cleanup %t119, ptr %t123 store i64 %t121, ptr %t105 - br label %endif3218 -endif3218: + br label %endif3332 +endif3332: %t124 = load ptr, ptr %a1 %t125 = icmp eq ptr %t124, null - br i1 %t125, label %panic3227, label %ok3228 -panic3227: - call void @finch_panic(ptr @.str.2040, i64 1343, ptr @.str.2041) + br i1 %t125, label %panic3341, label %ok3342 +panic3341: + call void @finch_panic(ptr @.str.2112, i64 1406, ptr @.str.2113) unreachable -ok3228: +ok3342: %t126 = getelementptr inbounds %S.gen.Gen, ptr %t124, i32 0, i32 10 %t127 = load i64, ptr %a87 %t128 = load { ptr, i64, i64 }, ptr %t126 %t129 = extractvalue { ptr, i64, i64 } %t128, 1 %t130 = icmp uge i64 %t127, %t129 - br i1 %t130, label %range3229, label %inrange3230 -range3229: - call void @finch_panic_index(ptr @.str.2042, i64 1343, i64 %t127, i64 %t129) + br i1 %t130, label %range3343, label %inrange3344 +range3343: + call void @finch_panic_index(ptr @.str.2114, i64 1406, i64 %t127, i64 %t129) unreachable -inrange3230: +inrange3344: %t131 = extractvalue { ptr, i64, i64 } %t128, 0 %t132 = getelementptr inbounds %S.gen.Scope, ptr %t131, i64 %t127 %t133 = getelementptr inbounds %S.gen.Scope, ptr %t132, i32 0, i32 0 @@ -35839,34 +37211,34 @@ inrange3230: %t151 = insertvalue %S.gen.Var %t149, i1 %t150, 3 %t152 = load ptr, ptr %a1 %t153 = icmp eq ptr %t152, null - br i1 %t153, label %panic3231, label %ok3232 -panic3231: - call void @finch_panic(ptr @.str.2043, i64 1343, ptr @.str.2044) + br i1 %t153, label %panic3345, label %ok3346 +panic3345: + call void @finch_panic(ptr @.str.2115, i64 1406, ptr @.str.2116) unreachable -ok3232: - %t154 = getelementptr inbounds %S.gen.Gen, ptr %t152, i32 0, i32 24 +ok3346: + %t154 = getelementptr inbounds %S.gen.Gen, ptr %t152, i32 0, i32 25 %t155 = load i64, ptr %t154 %t156 = insertvalue %S.gen.Var %t151, i64 %t155, 4 %t157 = load i1, ptr %a93 %t158 = insertvalue %S.gen.Var %t156, i1 %t157, 5 %t159 = load ptr, ptr %a1 %t160 = icmp eq ptr %t159, null - br i1 %t160, label %panic3233, label %ok3234 -panic3233: - call void @finch_panic(ptr @.str.2045, i64 1343, ptr @.str.2046) + br i1 %t160, label %panic3347, label %ok3348 +panic3347: + call void @finch_panic(ptr @.str.2117, i64 1406, ptr @.str.2118) unreachable -ok3234: +ok3348: %t161 = getelementptr inbounds %S.gen.Gen, ptr %t159, i32 0, i32 1 %t162 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 13 %t163 = load i64, ptr %t162 %t164 = load { ptr, i64, i64 }, ptr %t161 %t165 = extractvalue { ptr, i64, i64 } %t164, 1 %t166 = icmp uge i64 %t163, %t165 - br i1 %t166, label %range3235, label %inrange3236 -range3235: - call void @finch_panic_index(ptr @.str.2047, i64 1343, i64 %t163, i64 %t165) + br i1 %t166, label %range3349, label %inrange3350 +range3349: + call void @finch_panic_index(ptr @.str.2119, i64 1406, i64 %t163, i64 %t165) unreachable -inrange3236: +inrange3350: %t167 = extractvalue { ptr, i64, i64 } %t164, 0 %t168 = getelementptr inbounds { ptr, i64, i64 }, ptr %t167, i64 %t163 %t169 = load { ptr, i64, i64 }, ptr %t168 @@ -35889,12 +37261,12 @@ inrange3236: store i64 %t181, ptr %t134 %t184 = load ptr, ptr %a1 %t185 = icmp eq ptr %t184, null - br i1 %t185, label %panic3237, label %ok3238 -panic3237: - call void @finch_panic(ptr @.str.2048, i64 1344, ptr @.str.2049) + br i1 %t185, label %panic3351, label %ok3352 +panic3351: + call void @finch_panic(ptr @.str.2120, i64 1407, ptr @.str.2121) unreachable -ok3238: - %t186 = getelementptr inbounds %S.gen.Gen, ptr %t184, i32 0, i32 24 +ok3352: + %t186 = getelementptr inbounds %S.gen.Gen, ptr %t184, i32 0, i32 25 %t187 = load i64, ptr %t186 %t188 = add i64 %t187, 1 store i64 %t188, ptr %t186 @@ -35906,91 +37278,91 @@ ok3238: call void @finch.gen.dbgVariable(ptr %t189, %S.ast.Node %t190, { ptr, i64, i64 } %t191, %S.ast.Type %t192, { ptr, i64, i64 } %t193) %t194 = load ptr, ptr %a1 %t195 = icmp eq ptr %t194, null - br i1 %t195, label %panic3239, label %ok3240 -panic3239: - call void @finch_panic(ptr @.str.2050, i64 1346, ptr @.str.2051) + br i1 %t195, label %panic3353, label %ok3354 +panic3353: + call void @finch_panic(ptr @.str.2122, i64 1409, ptr @.str.2123) unreachable -ok3240: - %t196 = getelementptr inbounds %S.gen.Gen, ptr %t194, i32 0, i32 27 +ok3354: + %t196 = getelementptr inbounds %S.gen.Gen, ptr %t194, i32 0, i32 28 %t197 = load i1, ptr %t196 - br label %logic.from3241 -logic.from3241: - br i1 %t197, label %logic.rhs3242, label %logic.end3243 -logic.rhs3242: + br label %logic.from3355 +logic.from3355: + br i1 %t197, label %logic.rhs3356, label %logic.end3357 +logic.rhs3356: %t198 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t198, ptr %a199 - store { ptr, i64, i64 } { ptr @.str.2052, i64 3, i64 0 }, ptr %a200 + store { ptr, i64, i64 } { ptr @.str.2124, i64 3, i64 0 }, ptr %a200 %t201 = call i32 @finch_str_eq(ptr %a199, ptr %a200) %t202 = icmp eq i32 %t201, 0 - br label %logic.rend3244 -logic.rend3244: - br label %logic.end3243 -logic.end3243: - %t203 = phi i1 [ false, %logic.from3241 ], [ %t202, %logic.rend3244 ] - br label %logic.from3245 -logic.from3245: - br i1 %t203, label %logic.rhs3246, label %logic.end3247 -logic.rhs3246: + br label %logic.rend3358 +logic.rend3358: + br label %logic.end3357 +logic.end3357: + %t203 = phi i1 [ false, %logic.from3355 ], [ %t202, %logic.rend3358 ] + br label %logic.from3359 +logic.from3359: + br i1 %t203, label %logic.rhs3360, label %logic.end3361 +logic.rhs3360: %t204 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t204, ptr %a205 - store { ptr, i64, i64 } { ptr @.str.2054, i64 1, i64 0 }, ptr %a207 + store { ptr, i64, i64 } { ptr @.str.2126, i64 1, i64 0 }, ptr %a207 %t208 = call i32 @finch_str_starts(ptr %a205, ptr %a207) %t209 = icmp ne i32 %t208, 0 %t210 = xor i1 %t209, true - br label %logic.rend3248 -logic.rend3248: - br label %logic.end3247 -logic.end3247: - %t211 = phi i1 [ false, %logic.from3245 ], [ %t210, %logic.rend3248 ] - br i1 %t211, label %then3249, label %endif3251 -then3249: + br label %logic.rend3362 +logic.rend3362: + br label %logic.end3361 +logic.end3361: + %t211 = phi i1 [ false, %logic.from3359 ], [ %t210, %logic.rend3362 ] + br i1 %t211, label %then3363, label %endif3365 +then3363: %t212 = load ptr, ptr %a1 %t213 = icmp eq ptr %t212, null - br i1 %t213, label %panic3252, label %ok3253 -panic3252: - call void @finch_panic(ptr @.str.2055, i64 1347, ptr @.str.2056) + br i1 %t213, label %panic3366, label %ok3367 +panic3366: + call void @finch_panic(ptr @.str.2127, i64 1410, ptr @.str.2128) unreachable -ok3253: +ok3367: %t214 = getelementptr inbounds %S.gen.Gen, ptr %t212, i32 0, i32 0 %t215 = load ptr, ptr %a1 %t216 = icmp eq ptr %t215, null - br i1 %t216, label %panic3254, label %ok3255 -panic3254: - call void @finch_panic(ptr @.str.2057, i64 1347, ptr @.str.2058) + br i1 %t216, label %panic3368, label %ok3369 +panic3368: + call void @finch_panic(ptr @.str.2129, i64 1410, ptr @.str.2130) unreachable -ok3255: +ok3369: %t217 = getelementptr inbounds %S.gen.Gen, ptr %t215, i32 0, i32 13 %t218 = getelementptr inbounds %S.gen.FnSig, ptr %t217, i32 0, i32 16 %t219 = load i64, ptr %t218 %t220 = load { ptr, i64, i64 }, ptr %t214 %t221 = extractvalue { ptr, i64, i64 } %t220, 1 %t222 = icmp uge i64 %t219, %t221 - br i1 %t222, label %range3256, label %inrange3257 -range3256: - call void @finch_panic_index(ptr @.str.2059, i64 1347, i64 %t219, i64 %t221) + br i1 %t222, label %range3370, label %inrange3371 +range3370: + call void @finch_panic_index(ptr @.str.2131, i64 1410, i64 %t219, i64 %t221) unreachable -inrange3257: +inrange3371: %t223 = extractvalue { ptr, i64, i64 } %t220, 0 %t224 = getelementptr inbounds %S.ast.Program, ptr %t223, i64 %t219 %t225 = getelementptr inbounds %S.ast.Program, ptr %t224, i32 0, i32 8 %t226 = load ptr, ptr %a1 %t227 = icmp eq ptr %t226, null - br i1 %t227, label %panic3258, label %ok3259 -panic3258: - call void @finch_panic(ptr @.str.2060, i64 1347, ptr @.str.2061) + br i1 %t227, label %panic3372, label %ok3373 +panic3372: + call void @finch_panic(ptr @.str.2132, i64 1410, ptr @.str.2133) unreachable -ok3259: +ok3373: %t228 = getelementptr inbounds %S.gen.Gen, ptr %t226, i32 0, i32 13 %t229 = getelementptr inbounds %S.gen.FnSig, ptr %t228, i32 0, i32 17 %t230 = load i64, ptr %t229 %t231 = load { ptr, i64, i64 }, ptr %t225 %t232 = extractvalue { ptr, i64, i64 } %t231, 1 %t233 = icmp uge i64 %t230, %t232 - br i1 %t233, label %range3260, label %inrange3261 -range3260: - call void @finch_panic_index(ptr @.str.2062, i64 1347, i64 %t230, i64 %t232) + br i1 %t233, label %range3374, label %inrange3375 +range3374: + call void @finch_panic_index(ptr @.str.2134, i64 1410, i64 %t230, i64 %t232) unreachable -inrange3261: +inrange3375: %t234 = extractvalue { ptr, i64, i64 } %t231, 0 %t235 = getelementptr inbounds %S.ast.Node, ptr %t234, i64 %t230 %t236 = load %S.ast.Node, ptr %t235 @@ -36000,20 +37372,20 @@ inrange3261: store %S.ast.Node %t239, ptr %a240 %t241 = load ptr, ptr %a1 %t242 = icmp eq ptr %t241, null - br i1 %t242, label %panic3262, label %ok3263 -panic3262: - call void @finch_panic(ptr @.str.2063, i64 1348, ptr @.str.2064) + br i1 %t242, label %panic3376, label %ok3377 +panic3376: + call void @finch_panic(ptr @.str.2135, i64 1411, ptr @.str.2136) unreachable -ok3263: - %t243 = getelementptr inbounds %S.gen.Gen, ptr %t241, i32 0, i32 28 +ok3377: + %t243 = getelementptr inbounds %S.gen.Gen, ptr %t241, i32 0, i32 29 %t244 = getelementptr inbounds { ptr, i64, i64 }, ptr %t243, i32 0, i32 1 %t245 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.2065, i64 3, i64 0 }, ptr %a247 + store { ptr, i64, i64 } { ptr @.str.2137, i64 3, i64 0 }, ptr %a247 store { ptr, i64, i64 } %t245, ptr %a248 call void @finch_str_concat(ptr %a246, ptr %a247, ptr %a248) %t249 = load { ptr, i64, i64 }, ptr %a246 store { ptr, i64, i64 } %t249, ptr %a251 - store { ptr, i64, i64 } { ptr @.str.2066, i64 1, i64 0 }, ptr %a252 + store { ptr, i64, i64 } { ptr @.str.2138, i64 1, i64 0 }, ptr %a252 call void @finch_str_concat(ptr %a250, ptr %a251, ptr %a252) store { ptr, i64, i64 } %t249, ptr %a253 call void @finch_str_drop(ptr %a253) @@ -36029,29 +37401,29 @@ ok3263: call void @finch_str_drop(ptr %a261) %t262 = load { ptr, i64, i64 }, ptr %a257 store { ptr, i64, i64 } %t262, ptr %a264 - store { ptr, i64, i64 } { ptr @.str.2067, i64 1, i64 0 }, ptr %a265 + store { ptr, i64, i64 } { ptr @.str.2139, i64 1, i64 0 }, ptr %a265 call void @finch_str_concat(ptr %a263, ptr %a264, ptr %a265) store { ptr, i64, i64 } %t262, ptr %a266 call void @finch_str_drop(ptr %a266) %t267 = load { ptr, i64, i64 }, ptr %a263 %t268 = load ptr, ptr %a1 %t269 = icmp eq ptr %t268, null - br i1 %t269, label %panic3264, label %ok3265 -panic3264: - call void @finch_panic(ptr @.str.2068, i64 1348, ptr @.str.2069) + br i1 %t269, label %panic3378, label %ok3379 +panic3378: + call void @finch_panic(ptr @.str.2140, i64 1411, ptr @.str.2141) unreachable -ok3265: +ok3379: %t270 = getelementptr inbounds %S.gen.Gen, ptr %t268, i32 0, i32 1 %t271 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 13 %t272 = load i64, ptr %t271 %t273 = load { ptr, i64, i64 }, ptr %t270 %t274 = extractvalue { ptr, i64, i64 } %t273, 1 %t275 = icmp uge i64 %t272, %t274 - br i1 %t275, label %range3266, label %inrange3267 -range3266: - call void @finch_panic_index(ptr @.str.2070, i64 1348, i64 %t272, i64 %t274) + br i1 %t275, label %range3380, label %inrange3381 +range3380: + call void @finch_panic_index(ptr @.str.2142, i64 1411, i64 %t272, i64 %t274) unreachable -inrange3267: +inrange3381: %t276 = extractvalue { ptr, i64, i64 } %t273, 0 %t277 = getelementptr inbounds { ptr, i64, i64 }, ptr %t276, i64 %t272 %t278 = load { ptr, i64, i64 }, ptr %t277 @@ -36062,7 +37434,7 @@ inrange3267: call void @finch_str_drop(ptr %a282) %t283 = load { ptr, i64, i64 }, ptr %a279 store { ptr, i64, i64 } %t283, ptr %a285 - store { ptr, i64, i64 } { ptr @.str.2071, i64 1, i64 0 }, ptr %a286 + store { ptr, i64, i64 } { ptr @.str.2143, i64 1, i64 0 }, ptr %a286 call void @finch_str_concat(ptr %a284, ptr %a285, ptr %a286) store { ptr, i64, i64 } %t283, ptr %a287 call void @finch_str_drop(ptr %a287) @@ -36080,7 +37452,7 @@ inrange3267: call void @finch_str_drop(ptr %a297) %t298 = load { ptr, i64, i64 }, ptr %a293 store { ptr, i64, i64 } %t298, ptr %a300 - store { ptr, i64, i64 } { ptr @.str.2072, i64 1, i64 0 }, ptr %a301 + store { ptr, i64, i64 } { ptr @.str.2144, i64 1, i64 0 }, ptr %a301 call void @finch_str_concat(ptr %a299, ptr %a300, ptr %a301) store { ptr, i64, i64 } %t298, ptr %a302 call void @finch_str_drop(ptr %a302) @@ -36098,29 +37470,29 @@ inrange3267: call void @finch_str_drop(ptr %a312) %t313 = load { ptr, i64, i64 }, ptr %a308 store { ptr, i64, i64 } %t313, ptr %a315 - store { ptr, i64, i64 } { ptr @.str.2073, i64 1, i64 0 }, ptr %a316 + store { ptr, i64, i64 } { ptr @.str.2145, i64 1, i64 0 }, ptr %a316 call void @finch_str_concat(ptr %a314, ptr %a315, ptr %a316) store { ptr, i64, i64 } %t313, ptr %a317 call void @finch_str_drop(ptr %a317) %t318 = load { ptr, i64, i64 }, ptr %a314 %t319 = load ptr, ptr %a1 %t320 = icmp eq ptr %t319, null - br i1 %t320, label %panic3268, label %ok3269 -panic3268: - call void @finch_panic(ptr @.str.2074, i64 1348, ptr @.str.2075) + br i1 %t320, label %panic3382, label %ok3383 +panic3382: + call void @finch_panic(ptr @.str.2146, i64 1411, ptr @.str.2147) unreachable -ok3269: +ok3383: %t321 = getelementptr inbounds %S.gen.Gen, ptr %t319, i32 0, i32 1 %t322 = getelementptr inbounds %S.ast.Node, ptr %a240, i32 0, i32 13 %t323 = load i64, ptr %t322 %t324 = load { ptr, i64, i64 }, ptr %t321 %t325 = extractvalue { ptr, i64, i64 } %t324, 1 %t326 = icmp uge i64 %t323, %t325 - br i1 %t326, label %range3270, label %inrange3271 -range3270: - call void @finch_panic_index(ptr @.str.2076, i64 1348, i64 %t323, i64 %t325) + br i1 %t326, label %range3384, label %inrange3385 +range3384: + call void @finch_panic_index(ptr @.str.2148, i64 1411, i64 %t323, i64 %t325) unreachable -inrange3271: +inrange3385: %t327 = extractvalue { ptr, i64, i64 } %t324, 0 %t328 = getelementptr inbounds { ptr, i64, i64 }, ptr %t327, i64 %t323 %t329 = load { ptr, i64, i64 }, ptr %t328 @@ -36131,7 +37503,7 @@ inrange3271: call void @finch_str_drop(ptr %a333) %t334 = load { ptr, i64, i64 }, ptr %a330 store { ptr, i64, i64 } %t334, ptr %a336 - store { ptr, i64, i64 } { ptr @.str.2077, i64 1, i64 0 }, ptr %a337 + store { ptr, i64, i64 } { ptr @.str.2149, i64 1, i64 0 }, ptr %a337 call void @finch_str_concat(ptr %a335, ptr %a336, ptr %a337) store { ptr, i64, i64 } %t334, ptr %a338 call void @finch_str_drop(ptr %a338) @@ -36149,7 +37521,7 @@ inrange3271: call void @finch_str_drop(ptr %a348) %t349 = load { ptr, i64, i64 }, ptr %a344 store { ptr, i64, i64 } %t349, ptr %a351 - store { ptr, i64, i64 } { ptr @.str.2078, i64 1, i64 0 }, ptr %a352 + store { ptr, i64, i64 } { ptr @.str.2150, i64 1, i64 0 }, ptr %a352 call void @finch_str_concat(ptr %a350, ptr %a351, ptr %a352) store { ptr, i64, i64 } %t349, ptr %a353 call void @finch_str_drop(ptr %a353) @@ -36181,14 +37553,14 @@ inrange3271: %t374 = load i64, ptr %t373 %t375 = load %S.ast.Type, ptr %a4 %t376 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t375) - store { ptr, i64, i64 } { ptr @.str.2079, i64 9, i64 0 }, ptr %a378 + store { ptr, i64, i64 } { ptr @.str.2151, i64 9, i64 0 }, ptr %a378 store { ptr, i64, i64 } %t376, ptr %a379 call void @finch_str_concat(ptr %a377, ptr %a378, ptr %a379) store { ptr, i64, i64 } %t376, ptr %a380 call void @finch_str_drop(ptr %a380) %t381 = load { ptr, i64, i64 }, ptr %a377 store { ptr, i64, i64 } %t381, ptr %a383 - store { ptr, i64, i64 } { ptr @.str.2080, i64 1, i64 0 }, ptr %a384 + store { ptr, i64, i64 } { ptr @.str.2152, i64 1, i64 0 }, ptr %a384 call void @finch_str_concat(ptr %a382, ptr %a383, ptr %a384) store { ptr, i64, i64 } %t381, ptr %a385 call void @finch_str_drop(ptr %a385) @@ -36201,17 +37573,17 @@ inrange3271: call void @finch_str_drop(ptr %a391) %t392 = load { ptr, i64, i64 }, ptr %a388 store { ptr, i64, i64 } %t392, ptr %a394 - store { ptr, i64, i64 } { ptr @.str.2081, i64 4, i64 0 }, ptr %a395 + store { ptr, i64, i64 } { ptr @.str.2153, i64 4, i64 0 }, ptr %a395 call void @finch_str_concat(ptr %a393, ptr %a394, ptr %a395) store { ptr, i64, i64 } %t392, ptr %a396 call void @finch_str_drop(ptr %a396) %t397 = load { ptr, i64, i64 }, ptr %a393 - call void @finch.gen.noteRef(ptr %t369, %S.ast.Node %t370, i64 %t372, i64 %t374, { ptr, i64, i64 } %t397, { ptr, i64, i64 } { ptr @.str.2082, i64 0, i64 0 }, i64 0, i64 0) + call void @finch.gen.noteRef(ptr %t369, %S.ast.Node %t370, i64 %t372, i64 %t374, { ptr, i64, i64 } %t397, { ptr, i64, i64 } { ptr @.str.2154, i64 0, i64 0 }, i64 0, i64 0) store { ptr, i64, i64 } %t397, ptr %a398 call void @finch_str_drop(ptr %a398) call void @finch.drop.S_ast_Node(ptr %a240) - br label %endif3251 -endif3251: + br label %endif3365 +endif3365: %t399 = load { ptr, i64, i64 }, ptr %a73 ret { ptr, i64, i64 } %t399 } @@ -36222,11 +37594,11 @@ entry: store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 %t3 = icmp eq ptr %t2, null - br i1 %t3, label %panic3272, label %ok3273 -panic3272: - call void @finch_panic(ptr @.str.2083, i64 1355, ptr @.str.2084) + br i1 %t3, label %panic3386, label %ok3387 +panic3386: + call void @finch_panic(ptr @.str.2155, i64 1418, ptr @.str.2156) unreachable -ok3273: +ok3387: %t4 = getelementptr inbounds %S.gen.Gen, ptr %t2, i32 0, i32 10 %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %t4, i32 0, i32 1 %t6 = load i64, ptr %t5 @@ -36260,19 +37632,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond3285 -n.cond3285: + br label %n.cond3399 +n.cond3399: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body3286, label %n.end3287 -n.body3286: + br i1 %t6, label %n.body3400, label %n.end3401 +n.body3400: %t7 = getelementptr inbounds %S.gen.Var, ptr %t1, i64 %t5 call void @finch.drop.S_gen_Var(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond3285 -n.end3287: + br label %n.cond3399 +n.end3401: call void @finch_arr_free(ptr %a) ret void } @@ -36305,47 +37677,47 @@ entry: store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 %t3 = icmp eq ptr %t2, null - br i1 %t3, label %panic3274, label %ok3275 -panic3274: - call void @finch_panic(ptr @.str.2085, i64 1361, ptr @.str.2086) + br i1 %t3, label %panic3388, label %ok3389 +panic3388: + call void @finch_panic(ptr @.str.2157, i64 1424, ptr @.str.2158) unreachable -ok3275: +ok3389: %t4 = getelementptr inbounds %S.gen.Gen, ptr %t2, i32 0, i32 9 %t5 = load i1, ptr %t4 %t6 = xor i1 %t5, true - br i1 %t6, label %then3276, label %endif3278 -then3276: + br i1 %t6, label %then3390, label %endif3392 +then3390: %t7 = load ptr, ptr %a1 %t8 = load ptr, ptr %a1 %t9 = icmp eq ptr %t8, null - br i1 %t9, label %panic3279, label %ok3280 -panic3279: - call void @finch_panic(ptr @.str.2087, i64 1362, ptr @.str.2088) + br i1 %t9, label %panic3393, label %ok3394 +panic3393: + call void @finch_panic(ptr @.str.2159, i64 1425, ptr @.str.2160) unreachable -ok3280: +ok3394: %t10 = getelementptr inbounds %S.gen.Gen, ptr %t8, i32 0, i32 10 %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %t10, i32 0, i32 1 %t12 = load i64, ptr %t11 %t13 = sub i64 %t12, 1 call void @finch.gen.runCleanups(ptr %t7, i64 %t13) - br label %endif3278 -endif3278: + br label %endif3392 +endif3392: %t14 = load ptr, ptr %a1 %t15 = icmp eq ptr %t14, null - br i1 %t15, label %panic3281, label %ok3282 -panic3281: - call void @finch_panic(ptr @.str.2089, i64 1364, ptr @.str.2090) + br i1 %t15, label %panic3395, label %ok3396 +panic3395: + call void @finch_panic(ptr @.str.2161, i64 1427, ptr @.str.2162) unreachable -ok3282: +ok3396: %t16 = getelementptr inbounds %S.gen.Gen, ptr %t14, i32 0, i32 10 %t17 = getelementptr inbounds { ptr, i64, i64 }, ptr %t16, i32 0, i32 1 %t18 = load i64, ptr %t17 %t19 = icmp eq i64 %t18, 0 - br i1 %t19, label %panic3283, label %ok3284 -panic3283: - call void @finch_panic(ptr @.str.2091, i64 1364, ptr @.str.2092) + br i1 %t19, label %panic3397, label %ok3398 +panic3397: + call void @finch_panic(ptr @.str.2163, i64 1427, ptr @.str.2164) unreachable -ok3284: +ok3398: %t20 = sub i64 %t18, 1 %t21 = load ptr, ptr %t16 %t22 = getelementptr inbounds %S.gen.Scope, ptr %t21, i64 %t20 @@ -36371,53 +37743,53 @@ entry: store i64 %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic3288, label %ok3289 -panic3288: - call void @finch_panic(ptr @.str.2093, i64 1369, ptr @.str.2094) + br i1 %t4, label %panic3402, label %ok3403 +panic3402: + call void @finch_panic(ptr @.str.2165, i64 1432, ptr @.str.2166) unreachable -ok3289: +ok3403: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 10 %t6 = load i64, ptr %a2 %t7 = load { ptr, i64, i64 }, ptr %t5 %t8 = extractvalue { ptr, i64, i64 } %t7, 1 %t9 = icmp uge i64 %t6, %t8 - br i1 %t9, label %range3290, label %inrange3291 -range3290: - call void @finch_panic_index(ptr @.str.2095, i64 1369, i64 %t6, i64 %t8) + br i1 %t9, label %range3404, label %inrange3405 +range3404: + call void @finch_panic_index(ptr @.str.2167, i64 1432, i64 %t6, i64 %t8) unreachable -inrange3291: +inrange3405: %t10 = extractvalue { ptr, i64, i64 } %t7, 0 %t11 = getelementptr inbounds %S.gen.Scope, ptr %t10, i64 %t6 %t12 = getelementptr inbounds %S.gen.Scope, ptr %t11, i32 0, i32 3 %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %t12, i32 0, i32 1 %t14 = load i64, ptr %t13 store i64 %t14, ptr %a15 - br label %while.cond3292 -while.cond3292: + br label %while.cond3406 +while.cond3406: %t16 = load i64, ptr %a15 %t17 = icmp sgt i64 %t16, 0 - br i1 %t17, label %while.body3293, label %while.end3294 -while.body3293: + br i1 %t17, label %while.body3407, label %while.end3408 +while.body3407: %t18 = load i64, ptr %a15 %t19 = sub i64 %t18, 1 store i64 %t19, ptr %a15 %t20 = load ptr, ptr %a1 %t21 = icmp eq ptr %t20, null - br i1 %t21, label %panic3295, label %ok3296 -panic3295: - call void @finch_panic(ptr @.str.2096, i64 1372, ptr @.str.2097) + br i1 %t21, label %panic3409, label %ok3410 +panic3409: + call void @finch_panic(ptr @.str.2168, i64 1435, ptr @.str.2169) unreachable -ok3296: +ok3410: %t22 = getelementptr inbounds %S.gen.Gen, ptr %t20, i32 0, i32 10 %t23 = load i64, ptr %a2 %t24 = load { ptr, i64, i64 }, ptr %t22 %t25 = extractvalue { ptr, i64, i64 } %t24, 1 %t26 = icmp uge i64 %t23, %t25 - br i1 %t26, label %range3297, label %inrange3298 -range3297: - call void @finch_panic_index(ptr @.str.2098, i64 1372, i64 %t23, i64 %t25) + br i1 %t26, label %range3411, label %inrange3412 +range3411: + call void @finch_panic_index(ptr @.str.2170, i64 1435, i64 %t23, i64 %t25) unreachable -inrange3298: +inrange3412: %t27 = extractvalue { ptr, i64, i64 } %t24, 0 %t28 = getelementptr inbounds %S.gen.Scope, ptr %t27, i64 %t23 %t29 = getelementptr inbounds %S.gen.Scope, ptr %t28, i32 0, i32 3 @@ -36425,11 +37797,11 @@ inrange3298: %t31 = load { ptr, i64, i64 }, ptr %t29 %t32 = extractvalue { ptr, i64, i64 } %t31, 1 %t33 = icmp uge i64 %t30, %t32 - br i1 %t33, label %range3299, label %inrange3300 -range3299: - call void @finch_panic_index(ptr @.str.2099, i64 1372, i64 %t30, i64 %t32) + br i1 %t33, label %range3413, label %inrange3414 +range3413: + call void @finch_panic_index(ptr @.str.2171, i64 1435, i64 %t30, i64 %t32) unreachable -inrange3300: +inrange3414: %t34 = extractvalue { ptr, i64, i64 } %t31, 0 %t35 = getelementptr inbounds %S.gen.Cleanup, ptr %t34, i64 %t30 %t36 = load %S.gen.Cleanup, ptr %t35 @@ -36437,25 +37809,25 @@ inrange3300: %t38 = getelementptr inbounds %S.gen.Cleanup, ptr %a37, i32 0, i32 0 %t39 = load i1, ptr %t38 %t40 = xor i1 %t39, true - br i1 %t40, label %then3301, label %endif3303 -then3301: + br i1 %t40, label %then3415, label %endif3417 +then3415: %t41 = load ptr, ptr %a1 %t42 = icmp eq ptr %t41, null - br i1 %t42, label %panic3304, label %ok3305 -panic3304: - call void @finch_panic(ptr @.str.2100, i64 1374, ptr @.str.2101) + br i1 %t42, label %panic3418, label %ok3419 +panic3418: + call void @finch_panic(ptr @.str.2172, i64 1437, ptr @.str.2173) unreachable -ok3305: +ok3419: %t43 = getelementptr inbounds %S.gen.Gen, ptr %t41, i32 0, i32 10 %t44 = load i64, ptr %a2 %t45 = load { ptr, i64, i64 }, ptr %t43 %t46 = extractvalue { ptr, i64, i64 } %t45, 1 %t47 = icmp uge i64 %t44, %t46 - br i1 %t47, label %range3306, label %inrange3307 -range3306: - call void @finch_panic_index(ptr @.str.2102, i64 1374, i64 %t44, i64 %t46) + br i1 %t47, label %range3420, label %inrange3421 +range3420: + call void @finch_panic_index(ptr @.str.2174, i64 1437, i64 %t44, i64 %t46) unreachable -inrange3307: +inrange3421: %t48 = extractvalue { ptr, i64, i64 } %t45, 0 %t49 = getelementptr inbounds %S.gen.Scope, ptr %t48, i64 %t44 %t50 = getelementptr inbounds %S.gen.Scope, ptr %t49, i32 0, i32 0 @@ -36464,11 +37836,11 @@ inrange3307: %t53 = load { ptr, i64, i64 }, ptr %t50 %t54 = extractvalue { ptr, i64, i64 } %t53, 1 %t55 = icmp uge i64 %t52, %t54 - br i1 %t55, label %range3308, label %inrange3309 -range3308: - call void @finch_panic_index(ptr @.str.2103, i64 1374, i64 %t52, i64 %t54) + br i1 %t55, label %range3422, label %inrange3423 +range3422: + call void @finch_panic_index(ptr @.str.2175, i64 1437, i64 %t52, i64 %t54) unreachable -inrange3309: +inrange3423: %t56 = extractvalue { ptr, i64, i64 } %t53, 0 %t57 = getelementptr inbounds %S.gen.Var, ptr %t56, i64 %t52 %t58 = load %S.gen.Var, ptr %t57 @@ -36479,65 +37851,65 @@ inrange3309: %t63 = getelementptr inbounds %S.gen.Var, ptr %a62, i32 0, i32 6 %t64 = load i1, ptr %t63 %t65 = xor i1 %t64, true - br i1 %t65, label %then3310, label %endif3312 -then3310: + br i1 %t65, label %then3424, label %endif3426 +then3424: %t66 = load ptr, ptr %a1 %t67 = getelementptr inbounds %S.gen.Var, ptr %a62, i32 0, i32 2 %t68 = load { ptr, i64, i64 }, ptr %t67 %t69 = getelementptr inbounds %S.gen.Var, ptr %a62, i32 0, i32 1 %t70 = load %S.ast.Type, ptr %t69 call void @finch.gen.dropAt(ptr %t66, { ptr, i64, i64 } %t68, %S.ast.Type %t70) - br label %endif3312 -endif3312: + br label %endif3426 +endif3426: call void @finch.drop.S_gen_Var(ptr %a62) - br label %while.cond3292 -endif3303: + br label %while.cond3406 +endif3417: %t71 = load ptr, ptr %a1 %t72 = icmp eq ptr %t71, null - br i1 %t72, label %panic3313, label %ok3314 -panic3313: - call void @finch_panic(ptr @.str.2104, i64 1380, ptr @.str.2105) + br i1 %t72, label %panic3427, label %ok3428 +panic3427: + call void @finch_panic(ptr @.str.2176, i64 1443, ptr @.str.2177) unreachable -ok3314: - %t73 = getelementptr inbounds %S.gen.Gen, ptr %t71, i32 0, i32 43 +ok3428: + %t73 = getelementptr inbounds %S.gen.Gen, ptr %t71, i32 0, i32 44 %t74 = load i1, ptr %t73 store i1 %t74, ptr %a75 %t76 = load ptr, ptr %a1 %t77 = icmp eq ptr %t76, null - br i1 %t77, label %panic3315, label %ok3316 -panic3315: - call void @finch_panic(ptr @.str.2106, i64 1381, ptr @.str.2107) + br i1 %t77, label %panic3429, label %ok3430 +panic3429: + call void @finch_panic(ptr @.str.2178, i64 1444, ptr @.str.2179) unreachable -ok3316: - %t78 = getelementptr inbounds %S.gen.Gen, ptr %t76, i32 0, i32 44 +ok3430: + %t78 = getelementptr inbounds %S.gen.Gen, ptr %t76, i32 0, i32 45 %t79 = load i64, ptr %t78 store i64 %t79, ptr %a80 %t81 = load ptr, ptr %a1 %t82 = icmp eq ptr %t81, null - br i1 %t82, label %panic3317, label %ok3318 -panic3317: - call void @finch_panic(ptr @.str.2108, i64 1382, ptr @.str.2109) + br i1 %t82, label %panic3431, label %ok3432 +panic3431: + call void @finch_panic(ptr @.str.2180, i64 1445, ptr @.str.2181) unreachable -ok3318: - %t83 = getelementptr inbounds %S.gen.Gen, ptr %t81, i32 0, i32 43 +ok3432: + %t83 = getelementptr inbounds %S.gen.Gen, ptr %t81, i32 0, i32 44 store i1 true, ptr %t83 %t84 = load ptr, ptr %a1 %t85 = icmp eq ptr %t84, null - br i1 %t85, label %panic3319, label %ok3320 -panic3319: - call void @finch_panic(ptr @.str.2110, i64 1383, ptr @.str.2111) + br i1 %t85, label %panic3433, label %ok3434 +panic3433: + call void @finch_panic(ptr @.str.2182, i64 1446, ptr @.str.2183) unreachable -ok3320: +ok3434: %t86 = getelementptr inbounds %S.gen.Gen, ptr %t84, i32 0, i32 10 %t87 = load i64, ptr %a2 %t88 = load { ptr, i64, i64 }, ptr %t86 %t89 = extractvalue { ptr, i64, i64 } %t88, 1 %t90 = icmp uge i64 %t87, %t89 - br i1 %t90, label %range3321, label %inrange3322 -range3321: - call void @finch_panic_index(ptr @.str.2112, i64 1383, i64 %t87, i64 %t89) + br i1 %t90, label %range3435, label %inrange3436 +range3435: + call void @finch_panic_index(ptr @.str.2184, i64 1446, i64 %t87, i64 %t89) unreachable -inrange3322: +inrange3436: %t91 = extractvalue { ptr, i64, i64 } %t88, 0 %t92 = getelementptr inbounds %S.gen.Scope, ptr %t91, i64 %t87 %t93 = getelementptr inbounds %S.gen.Scope, ptr %t92, i32 0, i32 2 @@ -36546,31 +37918,31 @@ inrange3322: %t96 = load { ptr, i64, i64 }, ptr %t93 %t97 = extractvalue { ptr, i64, i64 } %t96, 1 %t98 = icmp uge i64 %t95, %t97 - br i1 %t98, label %range3323, label %inrange3324 -range3323: - call void @finch_panic_index(ptr @.str.2113, i64 1383, i64 %t95, i64 %t97) + br i1 %t98, label %range3437, label %inrange3438 +range3437: + call void @finch_panic_index(ptr @.str.2185, i64 1446, i64 %t95, i64 %t97) unreachable -inrange3324: +inrange3438: %t99 = extractvalue { ptr, i64, i64 } %t96, 0 %t100 = getelementptr inbounds i64, ptr %t99, i64 %t95 %t101 = load i64, ptr %t100 %t102 = load ptr, ptr %a1 %t103 = icmp eq ptr %t102, null - br i1 %t103, label %panic3325, label %ok3326 -panic3325: - call void @finch_panic(ptr @.str.2114, i64 1383, ptr @.str.2115) + br i1 %t103, label %panic3439, label %ok3440 +panic3439: + call void @finch_panic(ptr @.str.2186, i64 1446, ptr @.str.2187) unreachable -ok3326: - %t104 = getelementptr inbounds %S.gen.Gen, ptr %t102, i32 0, i32 44 +ok3440: + %t104 = getelementptr inbounds %S.gen.Gen, ptr %t102, i32 0, i32 45 store i64 %t101, ptr %t104 %t105 = load ptr, ptr %a1 %t106 = icmp eq ptr %t105, null - br i1 %t106, label %panic3327, label %ok3328 -panic3327: - call void @finch_panic(ptr @.str.2116, i64 1384, ptr @.str.2117) + br i1 %t106, label %panic3441, label %ok3442 +panic3441: + call void @finch_panic(ptr @.str.2188, i64 1447, ptr @.str.2189) unreachable -ok3328: - %t107 = getelementptr inbounds %S.gen.Gen, ptr %t105, i32 0, i32 45 +ok3442: + %t107 = getelementptr inbounds %S.gen.Gen, ptr %t105, i32 0, i32 46 %t108 = load i64, ptr %t107 %t109 = add i64 %t108, 1 store i64 %t109, ptr %t107 @@ -36579,21 +37951,21 @@ ok3328: %t111 = load ptr, ptr %a1 %t112 = load ptr, ptr %a1 %t113 = icmp eq ptr %t112, null - br i1 %t113, label %panic3329, label %ok3330 -panic3329: - call void @finch_panic(ptr @.str.2118, i64 1386, ptr @.str.2119) + br i1 %t113, label %panic3443, label %ok3444 +panic3443: + call void @finch_panic(ptr @.str.2190, i64 1449, ptr @.str.2191) unreachable -ok3330: +ok3444: %t114 = getelementptr inbounds %S.gen.Gen, ptr %t112, i32 0, i32 10 %t115 = load i64, ptr %a2 %t116 = load { ptr, i64, i64 }, ptr %t114 %t117 = extractvalue { ptr, i64, i64 } %t116, 1 %t118 = icmp uge i64 %t115, %t117 - br i1 %t118, label %range3331, label %inrange3332 -range3331: - call void @finch_panic_index(ptr @.str.2120, i64 1386, i64 %t115, i64 %t117) + br i1 %t118, label %range3445, label %inrange3446 +range3445: + call void @finch_panic_index(ptr @.str.2192, i64 1449, i64 %t115, i64 %t117) unreachable -inrange3332: +inrange3446: %t119 = extractvalue { ptr, i64, i64 } %t116, 0 %t120 = getelementptr inbounds %S.gen.Scope, ptr %t119, i64 %t115 %t121 = getelementptr inbounds %S.gen.Scope, ptr %t120, i32 0, i32 1 @@ -36602,11 +37974,11 @@ inrange3332: %t124 = load { ptr, i64, i64 }, ptr %t121 %t125 = extractvalue { ptr, i64, i64 } %t124, 1 %t126 = icmp uge i64 %t123, %t125 - br i1 %t126, label %range3333, label %inrange3334 -range3333: - call void @finch_panic_index(ptr @.str.2121, i64 1386, i64 %t123, i64 %t125) + br i1 %t126, label %range3447, label %inrange3448 +range3447: + call void @finch_panic_index(ptr @.str.2193, i64 1449, i64 %t123, i64 %t125) unreachable -inrange3334: +inrange3448: %t127 = extractvalue { ptr, i64, i64 } %t124, 0 %t128 = getelementptr inbounds %S.ast.Node, ptr %t127, i64 %t123 %t129 = load %S.ast.Node, ptr %t128 @@ -36615,37 +37987,37 @@ inrange3334: call void @finch.gen.popScope(ptr %t130) %t131 = load ptr, ptr %a1 %t132 = icmp eq ptr %t131, null - br i1 %t132, label %panic3335, label %ok3336 -panic3335: - call void @finch_panic(ptr @.str.2122, i64 1388, ptr @.str.2123) + br i1 %t132, label %panic3449, label %ok3450 +panic3449: + call void @finch_panic(ptr @.str.2194, i64 1451, ptr @.str.2195) unreachable -ok3336: - %t133 = getelementptr inbounds %S.gen.Gen, ptr %t131, i32 0, i32 45 +ok3450: + %t133 = getelementptr inbounds %S.gen.Gen, ptr %t131, i32 0, i32 46 %t134 = load i64, ptr %t133 %t135 = sub i64 %t134, 1 store i64 %t135, ptr %t133 %t136 = load i1, ptr %a75 %t137 = load ptr, ptr %a1 %t138 = icmp eq ptr %t137, null - br i1 %t138, label %panic3337, label %ok3338 -panic3337: - call void @finch_panic(ptr @.str.2124, i64 1389, ptr @.str.2125) + br i1 %t138, label %panic3451, label %ok3452 +panic3451: + call void @finch_panic(ptr @.str.2196, i64 1452, ptr @.str.2197) unreachable -ok3338: - %t139 = getelementptr inbounds %S.gen.Gen, ptr %t137, i32 0, i32 43 +ok3452: + %t139 = getelementptr inbounds %S.gen.Gen, ptr %t137, i32 0, i32 44 store i1 %t136, ptr %t139 %t140 = load i64, ptr %a80 %t141 = load ptr, ptr %a1 %t142 = icmp eq ptr %t141, null - br i1 %t142, label %panic3339, label %ok3340 -panic3339: - call void @finch_panic(ptr @.str.2126, i64 1390, ptr @.str.2127) + br i1 %t142, label %panic3453, label %ok3454 +panic3453: + call void @finch_panic(ptr @.str.2198, i64 1453, ptr @.str.2199) unreachable -ok3340: - %t143 = getelementptr inbounds %S.gen.Gen, ptr %t141, i32 0, i32 44 +ok3454: + %t143 = getelementptr inbounds %S.gen.Gen, ptr %t141, i32 0, i32 45 store i64 %t140, ptr %t143 - br label %while.cond3292 -while.end3294: + br label %while.cond3406 +while.end3408: ret void } @@ -36658,30 +38030,30 @@ entry: store i64 %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic3341, label %ok3342 -panic3341: - call void @finch_panic(ptr @.str.2128, i64 1396, ptr @.str.2129) + br i1 %t4, label %panic3455, label %ok3456 +panic3455: + call void @finch_panic(ptr @.str.2200, i64 1459, ptr @.str.2201) unreachable -ok3342: +ok3456: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 10 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t7 = load i64, ptr %t6 store i64 %t7, ptr %a8 - br label %while.cond3343 -while.cond3343: + br label %while.cond3457 +while.cond3457: %t9 = load i64, ptr %a8 %t10 = load i64, ptr %a2 %t11 = icmp sgt i64 %t9, %t10 - br i1 %t11, label %while.body3344, label %while.end3345 -while.body3344: + br i1 %t11, label %while.body3458, label %while.end3459 +while.body3458: %t12 = load i64, ptr %a8 %t13 = sub i64 %t12, 1 store i64 %t13, ptr %a8 %t14 = load ptr, ptr %a1 %t15 = load i64, ptr %a8 call void @finch.gen.runCleanups(ptr %t14, i64 %t15) - br label %while.cond3343 -while.end3345: + br label %while.cond3457 +while.end3459: ret void } @@ -36709,57 +38081,57 @@ entry: %t2 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 0 %t3 = load { ptr, i64, i64 }, ptr %t2 store { ptr, i64, i64 } %t3, ptr %a4 - store { ptr, i64, i64 } { ptr @.str.2130, i64 3, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.2202, i64 3, i64 0 }, ptr %a5 %t6 = call i32 @finch_str_eq(ptr %a4, ptr %a5) %t7 = icmp ne i32 %t6, 0 - br i1 %t7, label %then3346, label %endif3348 -then3346: + br i1 %t7, label %then3460, label %endif3462 +then3460: %t8 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 1 %t9 = load { ptr, i64, i64 }, ptr %t8 store { ptr, i64, i64 } %t9, ptr %a10 call void @finch_str_copy(ptr %a11, ptr %a10) %t12 = load { ptr, i64, i64 }, ptr %a11 ret { ptr, i64, i64 } %t12 -endif3348: +endif3462: %t13 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 0 %t14 = load { ptr, i64, i64 }, ptr %t13 store { ptr, i64, i64 } %t14, ptr %a15 - store { ptr, i64, i64 } { ptr @.str.2131, i64 6, i64 0 }, ptr %a16 + store { ptr, i64, i64 } { ptr @.str.2203, i64 6, i64 0 }, ptr %a16 %t17 = call i32 @finch_str_eq(ptr %a15, ptr %a16) %t18 = icmp ne i32 %t17, 0 - br label %logic.from3349 -logic.from3349: - br i1 %t18, label %logic.end3351, label %logic.rhs3350 -logic.rhs3350: + br label %logic.from3463 +logic.from3463: + br i1 %t18, label %logic.end3465, label %logic.rhs3464 +logic.rhs3464: %t19 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 0 %t20 = load { ptr, i64, i64 }, ptr %t19 store { ptr, i64, i64 } %t20, ptr %a21 - store { ptr, i64, i64 } { ptr @.str.2132, i64 5, i64 0 }, ptr %a22 + store { ptr, i64, i64 } { ptr @.str.2204, i64 5, i64 0 }, ptr %a22 %t23 = call i32 @finch_str_eq(ptr %a21, ptr %a22) %t24 = icmp ne i32 %t23, 0 - br label %logic.rend3352 -logic.rend3352: - br label %logic.end3351 -logic.end3351: - %t25 = phi i1 [ true, %logic.from3349 ], [ %t24, %logic.rend3352 ] - br i1 %t25, label %then3353, label %endif3355 -then3353: + br label %logic.rend3466 +logic.rend3466: + br label %logic.end3465 +logic.end3465: + %t25 = phi i1 [ true, %logic.from3463 ], [ %t24, %logic.rend3466 ] + br i1 %t25, label %then3467, label %endif3469 +then3467: %t26 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 9 %t27 = load { ptr, i64, i64 }, ptr %t26 %t28 = extractvalue { ptr, i64, i64 } %t27, 1 %t29 = icmp uge i64 0, %t28 - br i1 %t29, label %range3356, label %inrange3357 -range3356: - call void @finch_panic_index(ptr @.str.2133, i64 1414, i64 0, i64 %t28) + br i1 %t29, label %range3470, label %inrange3471 +range3470: + call void @finch_panic_index(ptr @.str.2205, i64 1477, i64 0, i64 %t28) unreachable -inrange3357: +inrange3471: %t30 = extractvalue { ptr, i64, i64 } %t27, 0 %t31 = getelementptr inbounds %S.ast.Node, ptr %t30, i64 0 %t32 = load %S.ast.Node, ptr %t31 %t33 = call { ptr, i64, i64 } @finch.gen.rootVar(%S.ast.Node %t32) ret { ptr, i64, i64 } %t33 -endif3355: - ret { ptr, i64, i64 } { ptr @.str.2134, i64 0, i64 0 } +endif3469: + ret { ptr, i64, i64 } { ptr @.str.2206, i64 0, i64 0 } } define internal i1 @finch.gen.mutates(ptr %p0, { ptr, i64, i64 } %p1, %S.ast.Node %p2) { @@ -36801,21 +38173,21 @@ entry: %t4 = mul i64 8, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t5 = call ptr @finch_alloc(i64 %t4) %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i64 0 - store { ptr, i64, i64 } { ptr @.str.2135, i64 4, i64 0 }, ptr %t6 + store { ptr, i64, i64 } { ptr @.str.2207, i64 4, i64 0 }, ptr %t6 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i64 1 - store { ptr, i64, i64 } { ptr @.str.2136, i64 3, i64 0 }, ptr %t7 + store { ptr, i64, i64 } { ptr @.str.2208, i64 3, i64 0 }, ptr %t7 %t8 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i64 2 - store { ptr, i64, i64 } { ptr @.str.2137, i64 6, i64 0 }, ptr %t8 + store { ptr, i64, i64 } { ptr @.str.2209, i64 6, i64 0 }, ptr %t8 %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i64 3 - store { ptr, i64, i64 } { ptr @.str.2138, i64 6, i64 0 }, ptr %t9 + store { ptr, i64, i64 } { ptr @.str.2210, i64 6, i64 0 }, ptr %t9 %t10 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i64 4 - store { ptr, i64, i64 } { ptr @.str.2139, i64 5, i64 0 }, ptr %t10 + store { ptr, i64, i64 } { ptr @.str.2211, i64 5, i64 0 }, ptr %t10 %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i64 5 - store { ptr, i64, i64 } { ptr @.str.2140, i64 6, i64 0 }, ptr %t11 + store { ptr, i64, i64 } { ptr @.str.2212, i64 6, i64 0 }, ptr %t11 %t12 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i64 6 - store { ptr, i64, i64 } { ptr @.str.2141, i64 4, i64 0 }, ptr %t12 + store { ptr, i64, i64 } { ptr @.str.2213, i64 4, i64 0 }, ptr %t12 %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i64 7 - store { ptr, i64, i64 } { ptr @.str.2142, i64 7, i64 0 }, ptr %t13 + store { ptr, i64, i64 } { ptr @.str.2214, i64 7, i64 0 }, ptr %t13 %t14 = insertvalue { ptr, i64, i64 } undef, ptr %t5, 0 %t15 = insertvalue { ptr, i64, i64 } %t14, i64 8, 1 %t16 = insertvalue { ptr, i64, i64 } %t15, i64 8, 2 @@ -36823,22 +38195,22 @@ entry: %t18 = getelementptr inbounds %S.ast.Node, ptr %a3, i32 0, i32 0 %t19 = load { ptr, i64, i64 }, ptr %t18 store { ptr, i64, i64 } %t19, ptr %a20 - store { ptr, i64, i64 } { ptr @.str.2143, i64 6, i64 0 }, ptr %a21 + store { ptr, i64, i64 } { ptr @.str.2215, i64 6, i64 0 }, ptr %a21 %t22 = call i32 @finch_str_eq(ptr %a20, ptr %a21) %t23 = icmp ne i32 %t22, 0 - br label %logic.from3358 -logic.from3358: - br i1 %t23, label %logic.rhs3359, label %logic.end3360 -logic.rhs3359: + br label %logic.from3472 +logic.from3472: + br i1 %t23, label %logic.rhs3473, label %logic.end3474 +logic.rhs3473: %t24 = getelementptr inbounds %S.ast.Node, ptr %a3, i32 0, i32 9 %t25 = load { ptr, i64, i64 }, ptr %t24 %t26 = extractvalue { ptr, i64, i64 } %t25, 1 %t27 = icmp uge i64 0, %t26 - br i1 %t27, label %range3361, label %inrange3362 -range3361: - call void @finch_panic_index(ptr @.str.2144, i64 1421, i64 0, i64 %t26) + br i1 %t27, label %range3475, label %inrange3476 +range3475: + call void @finch_panic_index(ptr @.str.2216, i64 1484, i64 0, i64 %t26) unreachable -inrange3362: +inrange3476: %t28 = extractvalue { ptr, i64, i64 } %t25, 0 %t29 = getelementptr inbounds %S.ast.Node, ptr %t28, i64 0 %t30 = load %S.ast.Node, ptr %t29 @@ -36850,26 +38222,26 @@ inrange3362: %t36 = icmp ne i32 %t35, 0 store { ptr, i64, i64 } %t31, ptr %a37 call void @finch_str_drop(ptr %a37) - br label %logic.rend3363 -logic.rend3363: - br label %logic.end3360 -logic.end3360: - %t38 = phi i1 [ false, %logic.from3358 ], [ %t36, %logic.rend3363 ] - br i1 %t38, label %then3364, label %endif3366 -then3364: + br label %logic.rend3477 +logic.rend3477: + br label %logic.end3474 +logic.end3474: + %t38 = phi i1 [ false, %logic.from3472 ], [ %t36, %logic.rend3477 ] + br i1 %t38, label %then3478, label %endif3480 +then3478: call void @finch.drop.arr_str(ptr %a17) ret i1 true -endif3366: +endif3480: %t39 = getelementptr inbounds %S.ast.Node, ptr %a3, i32 0, i32 0 %t40 = load { ptr, i64, i64 }, ptr %t39 store { ptr, i64, i64 } %t40, ptr %a41 - store { ptr, i64, i64 } { ptr @.str.2145, i64 6, i64 0 }, ptr %a42 + store { ptr, i64, i64 } { ptr @.str.2217, i64 6, i64 0 }, ptr %a42 %t43 = call i32 @finch_str_eq(ptr %a41, ptr %a42) %t44 = icmp ne i32 %t43, 0 - br label %logic.from3367 -logic.from3367: - br i1 %t44, label %logic.rhs3368, label %logic.end3369 -logic.rhs3368: + br label %logic.from3481 +logic.from3481: + br i1 %t44, label %logic.rhs3482, label %logic.end3483 +logic.rhs3482: %t45 = getelementptr inbounds { ptr, i64, i64 }, ptr %a17, i32 0, i32 1 %t46 = getelementptr inbounds %S.ast.Node, ptr %a3, i32 0, i32 1 %t47 = load { ptr, i64, i64 }, ptr %t46 @@ -36877,41 +38249,41 @@ logic.rhs3368: %t49 = load i64, ptr %t45 %t50 = load ptr, ptr %a17 store i64 0, ptr %a51 - br label %find.cond3370 -find.cond3370: + br label %find.cond3484 +find.cond3484: %t52 = load i64, ptr %a51 %t53 = icmp slt i64 %t52, %t49 - br i1 %t53, label %find.body3371, label %find.end3374 -find.body3371: + br i1 %t53, label %find.body3485, label %find.end3488 +find.body3485: %t54 = getelementptr inbounds { ptr, i64, i64 }, ptr %t50, i64 %t52 %t55 = load { ptr, i64, i64 }, ptr %t54 store { ptr, i64, i64 } %t55, ptr %a56 store { ptr, i64, i64 } %t47, ptr %a57 %t58 = call i32 @finch_str_eq(ptr %a56, ptr %a57) %t59 = icmp ne i32 %t58, 0 - br i1 %t59, label %find.hit3372, label %find.next3373 -find.hit3372: + br i1 %t59, label %find.hit3486, label %find.next3487 +find.hit3486: store i64 %t52, ptr %a48 - br label %find.end3374 -find.next3373: + br label %find.end3488 +find.next3487: %t60 = add i64 %t52, 1 store i64 %t60, ptr %a51 - br label %find.cond3370 -find.end3374: + br label %find.cond3484 +find.end3488: %t61 = load i64, ptr %a48 %t62 = icmp sge i64 %t61, 0 - br label %logic.from3375 -logic.from3375: - br i1 %t62, label %logic.end3377, label %logic.rhs3376 -logic.rhs3376: + br label %logic.from3489 +logic.from3489: + br i1 %t62, label %logic.end3491, label %logic.rhs3490 +logic.rhs3490: %t63 = load ptr, ptr %a1 %t64 = icmp eq ptr %t63, null - br i1 %t64, label %panic3378, label %ok3379 -panic3378: - call void @finch_panic(ptr @.str.2146, i64 1427, ptr @.str.2147) + br i1 %t64, label %panic3492, label %ok3493 +panic3492: + call void @finch_panic(ptr @.str.2218, i64 1490, ptr @.str.2219) unreachable -ok3379: - %t65 = getelementptr inbounds %S.gen.Gen, ptr %t63, i32 0, i32 23 +ok3493: + %t65 = getelementptr inbounds %S.gen.Gen, ptr %t63, i32 0, i32 24 %t66 = getelementptr inbounds { ptr, i64, i64 }, ptr %t65, i32 0, i32 1 %t67 = getelementptr inbounds %S.ast.Node, ptr %a3, i32 0, i32 1 %t68 = load { ptr, i64, i64 }, ptr %t67 @@ -36919,52 +38291,52 @@ ok3379: %t70 = load i64, ptr %t66 %t71 = load ptr, ptr %t65 store i64 0, ptr %a72 - br label %find.cond3380 -find.cond3380: + br label %find.cond3494 +find.cond3494: %t73 = load i64, ptr %a72 %t74 = icmp slt i64 %t73, %t70 - br i1 %t74, label %find.body3381, label %find.end3384 -find.body3381: + br i1 %t74, label %find.body3495, label %find.end3498 +find.body3495: %t75 = getelementptr inbounds { ptr, i64, i64 }, ptr %t71, i64 %t73 %t76 = load { ptr, i64, i64 }, ptr %t75 store { ptr, i64, i64 } %t76, ptr %a77 store { ptr, i64, i64 } %t68, ptr %a78 %t79 = call i32 @finch_str_eq(ptr %a77, ptr %a78) %t80 = icmp ne i32 %t79, 0 - br i1 %t80, label %find.hit3382, label %find.next3383 -find.hit3382: + br i1 %t80, label %find.hit3496, label %find.next3497 +find.hit3496: store i64 %t73, ptr %a69 - br label %find.end3384 -find.next3383: + br label %find.end3498 +find.next3497: %t81 = add i64 %t73, 1 store i64 %t81, ptr %a72 - br label %find.cond3380 -find.end3384: + br label %find.cond3494 +find.end3498: %t82 = load i64, ptr %a69 %t83 = icmp sge i64 %t82, 0 - br label %logic.rend3385 -logic.rend3385: - br label %logic.end3377 -logic.end3377: - %t84 = phi i1 [ true, %logic.from3375 ], [ %t83, %logic.rend3385 ] - br label %logic.rend3386 -logic.rend3386: - br label %logic.end3369 -logic.end3369: - %t85 = phi i1 [ false, %logic.from3367 ], [ %t84, %logic.rend3386 ] - br label %logic.from3387 -logic.from3387: - br i1 %t85, label %logic.rhs3388, label %logic.end3389 -logic.rhs3388: + br label %logic.rend3499 +logic.rend3499: + br label %logic.end3491 +logic.end3491: + %t84 = phi i1 [ true, %logic.from3489 ], [ %t83, %logic.rend3499 ] + br label %logic.rend3500 +logic.rend3500: + br label %logic.end3483 +logic.end3483: + %t85 = phi i1 [ false, %logic.from3481 ], [ %t84, %logic.rend3500 ] + br label %logic.from3501 +logic.from3501: + br i1 %t85, label %logic.rhs3502, label %logic.end3503 +logic.rhs3502: %t86 = getelementptr inbounds %S.ast.Node, ptr %a3, i32 0, i32 9 %t87 = load { ptr, i64, i64 }, ptr %t86 %t88 = extractvalue { ptr, i64, i64 } %t87, 1 %t89 = icmp uge i64 0, %t88 - br i1 %t89, label %range3390, label %inrange3391 -range3390: - call void @finch_panic_index(ptr @.str.2148, i64 1427, i64 0, i64 %t88) + br i1 %t89, label %range3504, label %inrange3505 +range3504: + call void @finch_panic_index(ptr @.str.2220, i64 1490, i64 0, i64 %t88) unreachable -inrange3391: +inrange3505: %t90 = extractvalue { ptr, i64, i64 } %t87, 0 %t91 = getelementptr inbounds %S.ast.Node, ptr %t90, i64 0 %t92 = load %S.ast.Node, ptr %t91 @@ -36976,63 +38348,63 @@ inrange3391: %t98 = icmp ne i32 %t97, 0 store { ptr, i64, i64 } %t93, ptr %a99 call void @finch_str_drop(ptr %a99) - br label %logic.rend3392 -logic.rend3392: - br label %logic.end3389 -logic.end3389: - %t100 = phi i1 [ false, %logic.from3387 ], [ %t98, %logic.rend3392 ] - br i1 %t100, label %then3393, label %endif3395 -then3393: + br label %logic.rend3506 +logic.rend3506: + br label %logic.end3503 +logic.end3503: + %t100 = phi i1 [ false, %logic.from3501 ], [ %t98, %logic.rend3506 ] + br i1 %t100, label %then3507, label %endif3509 +then3507: call void @finch.drop.arr_str(ptr %a17) ret i1 true -endif3395: +endif3509: %t101 = getelementptr inbounds %S.ast.Node, ptr %a3, i32 0, i32 0 %t102 = load { ptr, i64, i64 }, ptr %t101 store { ptr, i64, i64 } %t102, ptr %a103 - store { ptr, i64, i64 } { ptr @.str.2149, i64 4, i64 0 }, ptr %a104 + store { ptr, i64, i64 } { ptr @.str.2221, i64 4, i64 0 }, ptr %a104 %t105 = call i32 @finch_str_eq(ptr %a103, ptr %a104) %t106 = icmp ne i32 %t105, 0 - br label %logic.from3396 -logic.from3396: - br i1 %t106, label %logic.rhs3397, label %logic.end3398 -logic.rhs3397: + br label %logic.from3510 +logic.from3510: + br i1 %t106, label %logic.rhs3511, label %logic.end3512 +logic.rhs3511: %t107 = getelementptr inbounds %S.ast.Node, ptr %a3, i32 0, i32 1 %t108 = load { ptr, i64, i64 }, ptr %t107 store { ptr, i64, i64 } %t108, ptr %a109 - store { ptr, i64, i64 } { ptr @.str.2150, i64 4, i64 0 }, ptr %a110 + store { ptr, i64, i64 } { ptr @.str.2222, i64 4, i64 0 }, ptr %a110 %t111 = call i32 @finch_str_eq(ptr %a109, ptr %a110) %t112 = icmp ne i32 %t111, 0 - br label %logic.rend3399 -logic.rend3399: - br label %logic.end3398 -logic.end3398: - %t113 = phi i1 [ false, %logic.from3396 ], [ %t112, %logic.rend3399 ] - br label %logic.from3400 -logic.from3400: - br i1 %t113, label %logic.rhs3401, label %logic.end3402 -logic.rhs3401: + br label %logic.rend3513 +logic.rend3513: + br label %logic.end3512 +logic.end3512: + %t113 = phi i1 [ false, %logic.from3510 ], [ %t112, %logic.rend3513 ] + br label %logic.from3514 +logic.from3514: + br i1 %t113, label %logic.rhs3515, label %logic.end3516 +logic.rhs3515: %t114 = getelementptr inbounds %S.ast.Node, ptr %a3, i32 0, i32 9 %t115 = getelementptr inbounds { ptr, i64, i64 }, ptr %t114, i32 0, i32 1 %t116 = load i64, ptr %t115 %t117 = icmp eq i64 %t116, 1 - br label %logic.rend3403 -logic.rend3403: - br label %logic.end3402 -logic.end3402: - %t118 = phi i1 [ false, %logic.from3400 ], [ %t117, %logic.rend3403 ] - br label %logic.from3404 -logic.from3404: - br i1 %t118, label %logic.rhs3405, label %logic.end3406 -logic.rhs3405: + br label %logic.rend3517 +logic.rend3517: + br label %logic.end3516 +logic.end3516: + %t118 = phi i1 [ false, %logic.from3514 ], [ %t117, %logic.rend3517 ] + br label %logic.from3518 +logic.from3518: + br i1 %t118, label %logic.rhs3519, label %logic.end3520 +logic.rhs3519: %t119 = getelementptr inbounds %S.ast.Node, ptr %a3, i32 0, i32 9 %t120 = load { ptr, i64, i64 }, ptr %t119 %t121 = extractvalue { ptr, i64, i64 } %t120, 1 %t122 = icmp uge i64 0, %t121 - br i1 %t122, label %range3407, label %inrange3408 -range3407: - call void @finch_panic_index(ptr @.str.2151, i64 1430, i64 0, i64 %t121) + br i1 %t122, label %range3521, label %inrange3522 +range3521: + call void @finch_panic_index(ptr @.str.2223, i64 1493, i64 0, i64 %t121) unreachable -inrange3408: +inrange3522: %t123 = extractvalue { ptr, i64, i64 } %t120, 0 %t124 = getelementptr inbounds %S.ast.Node, ptr %t123, i64 0 %t125 = load %S.ast.Node, ptr %t124 @@ -37044,26 +38416,26 @@ inrange3408: %t131 = icmp ne i32 %t130, 0 store { ptr, i64, i64 } %t126, ptr %a132 call void @finch_str_drop(ptr %a132) - br label %logic.rend3409 -logic.rend3409: - br label %logic.end3406 -logic.end3406: - %t133 = phi i1 [ false, %logic.from3404 ], [ %t131, %logic.rend3409 ] - br i1 %t133, label %then3410, label %endif3412 -then3410: + br label %logic.rend3523 +logic.rend3523: + br label %logic.end3520 +logic.end3520: + %t133 = phi i1 [ false, %logic.from3518 ], [ %t131, %logic.rend3523 ] + br i1 %t133, label %then3524, label %endif3526 +then3524: call void @finch.drop.arr_str(ptr %a17) ret i1 true -endif3412: +endif3526: %t134 = getelementptr inbounds %S.ast.Node, ptr %a3, i32 0, i32 9 store i64 0, ptr %a135 - br label %each.cond3413 -each.cond3413: + br label %each.cond3527 +each.cond3527: %t136 = getelementptr inbounds { ptr, i64, i64 }, ptr %t134, i32 0, i32 1 %t137 = load i64, ptr %t136 %t138 = load i64, ptr %a135 %t139 = icmp slt i64 %t138, %t137 - br i1 %t139, label %each.body3414, label %each.end3416 -each.body3414: + br i1 %t139, label %each.body3528, label %each.end3530 +each.body3528: %t140 = load ptr, ptr %t134 %t141 = getelementptr inbounds %S.ast.Node, ptr %t140, i64 %t138 %t142 = load %S.ast.Node, ptr %t141 @@ -37072,18 +38444,18 @@ each.body3414: %t145 = load { ptr, i64, i64 }, ptr %a2 %t146 = load %S.ast.Node, ptr %a143 %t147 = call i1 @finch.gen.mutates(ptr %t144, { ptr, i64, i64 } %t145, %S.ast.Node %t146) - br i1 %t147, label %then3417, label %endif3419 -then3417: + br i1 %t147, label %then3531, label %endif3533 +then3531: call void @finch.drop.arr_str(ptr %a17) ret i1 true -endif3419: - br label %each.step3415 -each.step3415: +endif3533: + br label %each.step3529 +each.step3529: %t148 = load i64, ptr %a135 %t149 = add i64 %t148, 1 store i64 %t149, ptr %a135 - br label %each.cond3413 -each.end3416: + br label %each.cond3527 +each.end3530: call void @finch.drop.arr_str(ptr %a17) ret i1 false } @@ -37125,317 +38497,357 @@ entry: %a224 = alloca %S.ast.Node, align 16 %a225 = alloca %S.ast.Node, align 16 %a227 = alloca %S.ast.Node, align 16 - %a251 = alloca { ptr, i64, i64 }, align 16 - %a252 = alloca { ptr, i64, i64 }, align 16 %a253 = alloca { ptr, i64, i64 }, align 16 + %a254 = alloca { ptr, i64, i64 }, align 16 %a255 = alloca { ptr, i64, i64 }, align 16 - %a256 = alloca { ptr, i64, i64 }, align 16 %a257 = alloca { ptr, i64, i64 }, align 16 %a258 = alloca { ptr, i64, i64 }, align 16 + %a259 = alloca { ptr, i64, i64 }, align 16 %a260 = alloca { ptr, i64, i64 }, align 16 - %a265 = alloca { ptr, i64, i64 }, align 16 - %a266 = alloca { ptr, i64, i64 }, align 16 - %a271 = alloca { ptr, i64, i64 }, align 16 - %a272 = alloca { ptr, i64, i64 }, align 16 - %a275 = alloca %S.gen.EnumDef, align 16 - %a276 = alloca i64, align 16 + %a262 = alloca { ptr, i64, i64 }, align 16 + %a267 = alloca { ptr, i64, i64 }, align 16 + %a268 = alloca { ptr, i64, i64 }, align 16 + %a273 = alloca { ptr, i64, i64 }, align 16 + %a274 = alloca { ptr, i64, i64 }, align 16 + %a277 = alloca %S.gen.SumDef, align 16 %a278 = alloca i64, align 16 - %a286 = alloca %S.ast.Node, align 16 - %a293 = alloca { ptr, i64, i64 }, align 16 - %a299 = alloca i64, align 16 - %a302 = alloca i64, align 16 - %a307 = alloca { ptr, i64, i64 }, align 16 - %a308 = alloca { ptr, i64, i64 }, align 16 + %a280 = alloca i64, align 16 + %a288 = alloca %S.ast.Node, align 16 + %a293 = alloca i64, align 16 + %a296 = alloca i64, align 16 + %a301 = alloca { ptr, i64, i64 }, align 16 + %a302 = alloca { ptr, i64, i64 }, align 16 + %a312 = alloca { ptr, i64, i64 }, align 16 + %a313 = alloca { ptr, i64, i64 }, align 16 + %a314 = alloca { ptr, i64, i64 }, align 16 + %a316 = alloca { ptr, i64, i64 }, align 16 + %a317 = alloca { ptr, i64, i64 }, align 16 %a318 = alloca { ptr, i64, i64 }, align 16 %a319 = alloca { ptr, i64, i64 }, align 16 - %a320 = alloca { ptr, i64, i64 }, align 16 - %a322 = alloca { ptr, i64, i64 }, align 16 %a323 = alloca { ptr, i64, i64 }, align 16 %a324 = alloca { ptr, i64, i64 }, align 16 %a325 = alloca { ptr, i64, i64 }, align 16 + %a326 = alloca { ptr, i64, i64 }, align 16 + %a328 = alloca { ptr, i64, i64 }, align 16 %a329 = alloca { ptr, i64, i64 }, align 16 %a330 = alloca { ptr, i64, i64 }, align 16 %a331 = alloca { ptr, i64, i64 }, align 16 - %a332 = alloca { ptr, i64, i64 }, align 16 - %a334 = alloca { ptr, i64, i64 }, align 16 - %a335 = alloca { ptr, i64, i64 }, align 16 - %a336 = alloca { ptr, i64, i64 }, align 16 - %a337 = alloca { ptr, i64, i64 }, align 16 + %a333 = alloca { ptr, i64, i64 }, align 16 + %a338 = alloca { ptr, i64, i64 }, align 16 %a339 = alloca { ptr, i64, i64 }, align 16 - %a343 = alloca i64, align 16 - %a346 = alloca i64, align 16 - %a359 = alloca { ptr, i64, i64 }, align 16 - %a360 = alloca { ptr, i64, i64 }, align 16 - %a361 = alloca { ptr, i64, i64 }, align 16 - %a363 = alloca { ptr, i64, i64 }, align 16 - %a364 = alloca { ptr, i64, i64 }, align 16 - %a365 = alloca { ptr, i64, i64 }, align 16 - %a366 = alloca { ptr, i64, i64 }, align 16 - %a369 = alloca { ptr, i64, i64 }, align 16 - %a371 = alloca { ptr, i64, i64 }, align 16 - %a372 = alloca { ptr, i64, i64 }, align 16 - %a373 = alloca { ptr, i64, i64 }, align 16 - %a374 = alloca { ptr, i64, i64 }, align 16 - %a375 = alloca { ptr, i64, i64 }, align 16 - %a377 = alloca { ptr, i64, i64 }, align 16 - %a378 = alloca { ptr, i64, i64 }, align 16 - %a379 = alloca { ptr, i64, i64 }, align 16 - %a380 = alloca { ptr, i64, i64 }, align 16 - %a382 = alloca { ptr, i64, i64 }, align 16 - %a387 = alloca { ptr, i64, i64 }, align 16 - %a388 = alloca { ptr, i64, i64 }, align 16 - %a410 = alloca %S.gen.EnumDef, align 16 - %a411 = alloca %S.gen.EnumDef, align 16 - %a427 = alloca i64, align 16 - %a446 = alloca { ptr, i64, i64 }, align 16 - %a447 = alloca { ptr, i64, i64 }, align 16 - %a465 = alloca i64, align 16 - %a477 = alloca i64, align 16 - %a494 = alloca { ptr, i64, i64 }, align 16 - %a495 = alloca { ptr, i64, i64 }, align 16 - %a498 = alloca { ptr, i64, i64 }, align 16 - %a511 = alloca i64, align 16 - %a531 = alloca %S.ast.Node, align 16 - %a532 = alloca %S.ast.Node, align 16 - %a534 = alloca %S.ast.Node, align 16 - %a554 = alloca { ptr, i64, i64 }, align 16 - %a555 = alloca { ptr, i64, i64 }, align 16 - %a556 = alloca { ptr, i64, i64 }, align 16 - %a558 = alloca { ptr, i64, i64 }, align 16 - %a559 = alloca { ptr, i64, i64 }, align 16 - %a560 = alloca { ptr, i64, i64 }, align 16 - %a561 = alloca { ptr, i64, i64 }, align 16 - %a563 = alloca { ptr, i64, i64 }, align 16 - %a582 = alloca { ptr, i64, i64 }, align 16 - %a583 = alloca { ptr, i64, i64 }, align 16 - %a584 = alloca { ptr, i64, i64 }, align 16 - %a586 = alloca { ptr, i64, i64 }, align 16 - %a587 = alloca { ptr, i64, i64 }, align 16 - %a588 = alloca { ptr, i64, i64 }, align 16 - %a589 = alloca { ptr, i64, i64 }, align 16 - %a591 = alloca { ptr, i64, i64 }, align 16 - %a600 = alloca { ptr, i64, i64 }, align 16 - %a601 = alloca { ptr, i64, i64 }, align 16 - %a606 = alloca { ptr, i64, i64 }, align 16 - %a607 = alloca { ptr, i64, i64 }, align 16 - %a612 = alloca { ptr, i64, i64 }, align 16 - %a613 = alloca { ptr, i64, i64 }, align 16 - %a618 = alloca { ptr, i64, i64 }, align 16 - %a619 = alloca { ptr, i64, i64 }, align 16 - %a634 = alloca { ptr, i64, i64 }, align 16 - %a635 = alloca { ptr, i64, i64 }, align 16 - %a637 = alloca { ptr, i64, i64 }, align 16 - %a638 = alloca i1, align 16 - %a665 = alloca { ptr, i64, i64 }, align 16 - %a666 = alloca { ptr, i64, i64 }, align 16 - %a667 = alloca { ptr, i64, i64 }, align 16 - %a669 = alloca { ptr, i64, i64 }, align 16 - %a670 = alloca { ptr, i64, i64 }, align 16 - %a671 = alloca { ptr, i64, i64 }, align 16 - %a672 = alloca { ptr, i64, i64 }, align 16 - %a676 = alloca { ptr, i64, i64 }, align 16 - %a677 = alloca { ptr, i64, i64 }, align 16 - %a678 = alloca { ptr, i64, i64 }, align 16 - %a679 = alloca { ptr, i64, i64 }, align 16 - %a681 = alloca { ptr, i64, i64 }, align 16 - %a682 = alloca { ptr, i64, i64 }, align 16 - %a683 = alloca { ptr, i64, i64 }, align 16 - %a684 = alloca { ptr, i64, i64 }, align 16 - %a686 = alloca { ptr, i64, i64 }, align 16 - %a699 = alloca i64, align 16 + %a373 = alloca %S.gen.SumDef, align 16 + %a374 = alloca %S.gen.SumDef, align 16 + %a403 = alloca { ptr, i64, i64 }, align 16 + %a404 = alloca { ptr, i64, i64 }, align 16 + %a405 = alloca { ptr, i64, i64 }, align 16 + %a407 = alloca { ptr, i64, i64 }, align 16 + %a408 = alloca { ptr, i64, i64 }, align 16 + %a409 = alloca { ptr, i64, i64 }, align 16 + %a410 = alloca { ptr, i64, i64 }, align 16 + %a412 = alloca { ptr, i64, i64 }, align 16 + %a417 = alloca { ptr, i64, i64 }, align 16 + %a418 = alloca { ptr, i64, i64 }, align 16 + %a423 = alloca { ptr, i64, i64 }, align 16 + %a424 = alloca { ptr, i64, i64 }, align 16 + %a427 = alloca %S.gen.EnumDef, align 16 + %a428 = alloca i64, align 16 + %a430 = alloca i64, align 16 + %a438 = alloca %S.ast.Node, align 16 + %a445 = alloca { ptr, i64, i64 }, align 16 + %a451 = alloca i64, align 16 + %a454 = alloca i64, align 16 + %a459 = alloca { ptr, i64, i64 }, align 16 + %a460 = alloca { ptr, i64, i64 }, align 16 + %a470 = alloca { ptr, i64, i64 }, align 16 + %a471 = alloca { ptr, i64, i64 }, align 16 + %a472 = alloca { ptr, i64, i64 }, align 16 + %a474 = alloca { ptr, i64, i64 }, align 16 + %a475 = alloca { ptr, i64, i64 }, align 16 + %a476 = alloca { ptr, i64, i64 }, align 16 + %a477 = alloca { ptr, i64, i64 }, align 16 + %a481 = alloca { ptr, i64, i64 }, align 16 + %a482 = alloca { ptr, i64, i64 }, align 16 + %a483 = alloca { ptr, i64, i64 }, align 16 + %a484 = alloca { ptr, i64, i64 }, align 16 + %a486 = alloca { ptr, i64, i64 }, align 16 + %a487 = alloca { ptr, i64, i64 }, align 16 + %a488 = alloca { ptr, i64, i64 }, align 16 + %a489 = alloca { ptr, i64, i64 }, align 16 + %a491 = alloca { ptr, i64, i64 }, align 16 + %a495 = alloca i64, align 16 + %a498 = alloca i64, align 16 + %a511 = alloca { ptr, i64, i64 }, align 16 + %a512 = alloca { ptr, i64, i64 }, align 16 + %a513 = alloca { ptr, i64, i64 }, align 16 + %a515 = alloca { ptr, i64, i64 }, align 16 + %a516 = alloca { ptr, i64, i64 }, align 16 + %a517 = alloca { ptr, i64, i64 }, align 16 + %a518 = alloca { ptr, i64, i64 }, align 16 + %a521 = alloca { ptr, i64, i64 }, align 16 + %a523 = alloca { ptr, i64, i64 }, align 16 + %a524 = alloca { ptr, i64, i64 }, align 16 + %a525 = alloca { ptr, i64, i64 }, align 16 + %a526 = alloca { ptr, i64, i64 }, align 16 + %a527 = alloca { ptr, i64, i64 }, align 16 + %a529 = alloca { ptr, i64, i64 }, align 16 + %a530 = alloca { ptr, i64, i64 }, align 16 + %a531 = alloca { ptr, i64, i64 }, align 16 + %a532 = alloca { ptr, i64, i64 }, align 16 + %a534 = alloca { ptr, i64, i64 }, align 16 + %a539 = alloca { ptr, i64, i64 }, align 16 + %a540 = alloca { ptr, i64, i64 }, align 16 + %a562 = alloca %S.gen.EnumDef, align 16 + %a563 = alloca %S.gen.EnumDef, align 16 + %a579 = alloca i64, align 16 + %a598 = alloca { ptr, i64, i64 }, align 16 + %a599 = alloca { ptr, i64, i64 }, align 16 + %a617 = alloca i64, align 16 + %a629 = alloca i64, align 16 + %a646 = alloca { ptr, i64, i64 }, align 16 + %a647 = alloca { ptr, i64, i64 }, align 16 + %a650 = alloca { ptr, i64, i64 }, align 16 + %a663 = alloca i64, align 16 + %a683 = alloca %S.ast.Node, align 16 + %a684 = alloca %S.ast.Node, align 16 + %a686 = alloca %S.ast.Node, align 16 + %a706 = alloca { ptr, i64, i64 }, align 16 + %a707 = alloca { ptr, i64, i64 }, align 16 + %a708 = alloca { ptr, i64, i64 }, align 16 + %a710 = alloca { ptr, i64, i64 }, align 16 + %a711 = alloca { ptr, i64, i64 }, align 16 + %a712 = alloca { ptr, i64, i64 }, align 16 %a713 = alloca { ptr, i64, i64 }, align 16 - %a720 = alloca { ptr, i64, i64 }, align 16 - %a721 = alloca { ptr, i64, i64 }, align 16 - %a722 = alloca { ptr, i64, i64 }, align 16 - %a724 = alloca { ptr, i64, i64 }, align 16 - %a725 = alloca { ptr, i64, i64 }, align 16 - %a726 = alloca { ptr, i64, i64 }, align 16 - %a727 = alloca { ptr, i64, i64 }, align 16 - %a729 = alloca { ptr, i64, i64 }, align 16 - %a742 = alloca { ptr, i64, i64 }, align 16 + %a715 = alloca { ptr, i64, i64 }, align 16 + %a734 = alloca { ptr, i64, i64 }, align 16 + %a735 = alloca { ptr, i64, i64 }, align 16 + %a736 = alloca { ptr, i64, i64 }, align 16 + %a738 = alloca { ptr, i64, i64 }, align 16 + %a739 = alloca { ptr, i64, i64 }, align 16 + %a740 = alloca { ptr, i64, i64 }, align 16 + %a741 = alloca { ptr, i64, i64 }, align 16 %a743 = alloca { ptr, i64, i64 }, align 16 - %a744 = alloca { ptr, i64, i64 }, align 16 - %a746 = alloca { ptr, i64, i64 }, align 16 - %a747 = alloca { ptr, i64, i64 }, align 16 - %a748 = alloca { ptr, i64, i64 }, align 16 - %a749 = alloca { ptr, i64, i64 }, align 16 + %a752 = alloca { ptr, i64, i64 }, align 16 %a753 = alloca { ptr, i64, i64 }, align 16 - %a754 = alloca { ptr, i64, i64 }, align 16 - %a755 = alloca { ptr, i64, i64 }, align 16 - %a756 = alloca { ptr, i64, i64 }, align 16 %a758 = alloca { ptr, i64, i64 }, align 16 %a759 = alloca { ptr, i64, i64 }, align 16 - %a760 = alloca { ptr, i64, i64 }, align 16 - %a761 = alloca { ptr, i64, i64 }, align 16 - %a763 = alloca { ptr, i64, i64 }, align 16 - %a777 = alloca i64, align 16 - %a780 = alloca i64, align 16 - %a785 = alloca { ptr, i64, i64 }, align 16 + %a764 = alloca { ptr, i64, i64 }, align 16 + %a765 = alloca { ptr, i64, i64 }, align 16 + %a770 = alloca { ptr, i64, i64 }, align 16 + %a771 = alloca { ptr, i64, i64 }, align 16 %a786 = alloca { ptr, i64, i64 }, align 16 - %a796 = alloca { ptr, i64, i64 }, align 16 - %a797 = alloca { ptr, i64, i64 }, align 16 - %a798 = alloca { ptr, i64, i64 }, align 16 - %a800 = alloca { ptr, i64, i64 }, align 16 - %a801 = alloca { ptr, i64, i64 }, align 16 - %a802 = alloca { ptr, i64, i64 }, align 16 - %a803 = alloca { ptr, i64, i64 }, align 16 - %a807 = alloca { ptr, i64, i64 }, align 16 - %a808 = alloca { ptr, i64, i64 }, align 16 - %a809 = alloca { ptr, i64, i64 }, align 16 - %a810 = alloca { ptr, i64, i64 }, align 16 - %a812 = alloca { ptr, i64, i64 }, align 16 - %a813 = alloca { ptr, i64, i64 }, align 16 - %a814 = alloca { ptr, i64, i64 }, align 16 - %a815 = alloca { ptr, i64, i64 }, align 16 + %a787 = alloca { ptr, i64, i64 }, align 16 + %a789 = alloca { ptr, i64, i64 }, align 16 + %a790 = alloca i1, align 16 %a817 = alloca { ptr, i64, i64 }, align 16 + %a818 = alloca { ptr, i64, i64 }, align 16 + %a819 = alloca { ptr, i64, i64 }, align 16 + %a821 = alloca { ptr, i64, i64 }, align 16 + %a822 = alloca { ptr, i64, i64 }, align 16 + %a823 = alloca { ptr, i64, i64 }, align 16 + %a824 = alloca { ptr, i64, i64 }, align 16 + %a828 = alloca { ptr, i64, i64 }, align 16 + %a829 = alloca { ptr, i64, i64 }, align 16 + %a830 = alloca { ptr, i64, i64 }, align 16 %a831 = alloca { ptr, i64, i64 }, align 16 - %a832 = alloca { ptr, i64, i64 }, align 16 %a833 = alloca { ptr, i64, i64 }, align 16 + %a834 = alloca { ptr, i64, i64 }, align 16 %a835 = alloca { ptr, i64, i64 }, align 16 %a836 = alloca { ptr, i64, i64 }, align 16 - %a837 = alloca { ptr, i64, i64 }, align 16 %a838 = alloca { ptr, i64, i64 }, align 16 - %a840 = alloca { ptr, i64, i64 }, align 16 - %a848 = alloca { ptr, i64, i64 }, align 16 - %a849 = alloca { ptr, i64, i64 }, align 16 - %a850 = alloca { ptr, i64, i64 }, align 16 - %a852 = alloca { ptr, i64, i64 }, align 16 - %a853 = alloca { ptr, i64, i64 }, align 16 - %a854 = alloca { ptr, i64, i64 }, align 16 - %a855 = alloca { ptr, i64, i64 }, align 16 - %a857 = alloca { ptr, i64, i64 }, align 16 - %a862 = alloca { ptr, i64, i64 }, align 16 - %a863 = alloca { ptr, i64, i64 }, align 16 - %a868 = alloca { ptr, i64, i64 }, align 16 - %a869 = alloca { ptr, i64, i64 }, align 16 + %a851 = alloca i64, align 16 + %a865 = alloca { ptr, i64, i64 }, align 16 + %a872 = alloca { ptr, i64, i64 }, align 16 + %a873 = alloca { ptr, i64, i64 }, align 16 %a874 = alloca { ptr, i64, i64 }, align 16 - %a875 = alloca { ptr, i64, i64 }, align 16 + %a876 = alloca { ptr, i64, i64 }, align 16 + %a877 = alloca { ptr, i64, i64 }, align 16 + %a878 = alloca { ptr, i64, i64 }, align 16 %a879 = alloca { ptr, i64, i64 }, align 16 - %a880 = alloca { ptr, i64, i64 }, align 16 - %a895 = alloca %S.gen.FnSig, align 16 + %a881 = alloca { ptr, i64, i64 }, align 16 + %a894 = alloca { ptr, i64, i64 }, align 16 + %a895 = alloca { ptr, i64, i64 }, align 16 + %a896 = alloca { ptr, i64, i64 }, align 16 + %a898 = alloca { ptr, i64, i64 }, align 16 + %a899 = alloca { ptr, i64, i64 }, align 16 + %a900 = alloca { ptr, i64, i64 }, align 16 %a901 = alloca { ptr, i64, i64 }, align 16 - %a902 = alloca { ptr, i64, i64 }, align 16 - %a903 = alloca { ptr, i64, i64 }, align 16 - %a904 = alloca { ptr, i64, i64 }, align 16 + %a905 = alloca { ptr, i64, i64 }, align 16 %a906 = alloca { ptr, i64, i64 }, align 16 %a907 = alloca { ptr, i64, i64 }, align 16 %a908 = alloca { ptr, i64, i64 }, align 16 - %a909 = alloca { ptr, i64, i64 }, align 16 + %a910 = alloca { ptr, i64, i64 }, align 16 + %a911 = alloca { ptr, i64, i64 }, align 16 + %a912 = alloca { ptr, i64, i64 }, align 16 %a913 = alloca { ptr, i64, i64 }, align 16 - %a914 = alloca { ptr, i64, i64 }, align 16 %a915 = alloca { ptr, i64, i64 }, align 16 - %a916 = alloca { ptr, i64, i64 }, align 16 - %a920 = alloca { ptr, i64, i64 }, align 16 - %a930 = alloca { ptr, i64, i64 }, align 16 - %a931 = alloca { ptr, i64, i64 }, align 16 - %a932 = alloca { ptr, i64, i64 }, align 16 - %a933 = alloca { ptr, i64, i64 }, align 16 - %a935 = alloca { ptr, i64, i64 }, align 16 - %a936 = alloca { ptr, i64, i64 }, align 16 + %a929 = alloca i64, align 16 + %a932 = alloca i64, align 16 %a937 = alloca { ptr, i64, i64 }, align 16 %a938 = alloca { ptr, i64, i64 }, align 16 - %a942 = alloca { ptr, i64, i64 }, align 16 - %a943 = alloca { ptr, i64, i64 }, align 16 - %a944 = alloca { ptr, i64, i64 }, align 16 - %a945 = alloca { ptr, i64, i64 }, align 16 - %a947 = alloca { ptr, i64, i64 }, align 16 %a948 = alloca { ptr, i64, i64 }, align 16 %a949 = alloca { ptr, i64, i64 }, align 16 %a950 = alloca { ptr, i64, i64 }, align 16 + %a952 = alloca { ptr, i64, i64 }, align 16 + %a953 = alloca { ptr, i64, i64 }, align 16 %a954 = alloca { ptr, i64, i64 }, align 16 %a955 = alloca { ptr, i64, i64 }, align 16 - %a956 = alloca { ptr, i64, i64 }, align 16 - %a957 = alloca { ptr, i64, i64 }, align 16 + %a959 = alloca { ptr, i64, i64 }, align 16 + %a960 = alloca { ptr, i64, i64 }, align 16 %a961 = alloca { ptr, i64, i64 }, align 16 - %a969 = alloca %S.ast.Type, align 16 - %a974 = alloca i64, align 16 - %a986 = alloca { ptr, i64, i64 }, align 16 + %a962 = alloca { ptr, i64, i64 }, align 16 + %a964 = alloca { ptr, i64, i64 }, align 16 + %a965 = alloca { ptr, i64, i64 }, align 16 + %a966 = alloca { ptr, i64, i64 }, align 16 + %a967 = alloca { ptr, i64, i64 }, align 16 + %a969 = alloca { ptr, i64, i64 }, align 16 + %a983 = alloca { ptr, i64, i64 }, align 16 + %a984 = alloca { ptr, i64, i64 }, align 16 + %a985 = alloca { ptr, i64, i64 }, align 16 %a987 = alloca { ptr, i64, i64 }, align 16 + %a988 = alloca { ptr, i64, i64 }, align 16 + %a989 = alloca { ptr, i64, i64 }, align 16 + %a990 = alloca { ptr, i64, i64 }, align 16 + %a992 = alloca { ptr, i64, i64 }, align 16 + %a1000 = alloca { ptr, i64, i64 }, align 16 + %a1001 = alloca { ptr, i64, i64 }, align 16 + %a1002 = alloca { ptr, i64, i64 }, align 16 + %a1004 = alloca { ptr, i64, i64 }, align 16 + %a1005 = alloca { ptr, i64, i64 }, align 16 %a1006 = alloca { ptr, i64, i64 }, align 16 %a1007 = alloca { ptr, i64, i64 }, align 16 - %a1008 = alloca { ptr, i64, i64 }, align 16 - %a1010 = alloca { ptr, i64, i64 }, align 16 - %a1011 = alloca { ptr, i64, i64 }, align 16 - %a1012 = alloca { ptr, i64, i64 }, align 16 - %a1013 = alloca { ptr, i64, i64 }, align 16 + %a1009 = alloca { ptr, i64, i64 }, align 16 + %a1014 = alloca { ptr, i64, i64 }, align 16 %a1015 = alloca { ptr, i64, i64 }, align 16 - %a1052 = alloca { ptr, i64, i64 }, align 16 + %a1020 = alloca { ptr, i64, i64 }, align 16 + %a1021 = alloca { ptr, i64, i64 }, align 16 + %a1026 = alloca { ptr, i64, i64 }, align 16 + %a1027 = alloca { ptr, i64, i64 }, align 16 + %a1031 = alloca { ptr, i64, i64 }, align 16 + %a1032 = alloca { ptr, i64, i64 }, align 16 + %a1047 = alloca %S.gen.FnSig, align 16 %a1053 = alloca { ptr, i64, i64 }, align 16 - %a1071 = alloca %S.gen.FnSig, align 16 - %a1072 = alloca %S.gen.FnSig, align 16 - %a1082 = alloca i1, align 16 - %a1089 = alloca i64, align 16 - %a1155 = alloca %S.ast.Node, align 16 - %a1156 = alloca %S.ast.Node, align 16 - %a1158 = alloca %S.ast.Node, align 16 - %a1197 = alloca { ptr, i64, i64 }, align 16 - %a1198 = alloca { ptr, i64, i64 }, align 16 - %a1211 = alloca i64, align 16 - %a1224 = alloca %S.gen.Template, align 16 - %a1225 = alloca %S.gen.Template, align 16 - %a1227 = alloca %S.gen.Template, align 16 - %a1255 = alloca %S.ast.Node, align 16 - %a1256 = alloca %S.ast.Node, align 16 - %a1258 = alloca %S.ast.Node, align 16 - %a1288 = alloca { ptr, i64, i64 }, align 16 - %a1289 = alloca { ptr, i64, i64 }, align 16 - %a1302 = alloca i64, align 16 - %a1342 = alloca %S.ast.Node, align 16 - %a1343 = alloca %S.ast.Node, align 16 - %a1345 = alloca %S.ast.Node, align 16 - %a1357 = alloca %S.ast.Node, align 16 - %a1358 = alloca %S.ast.Node, align 16 - %a1360 = alloca %S.ast.Node, align 16 - %a1373 = alloca i64, align 16 - %a1393 = alloca %S.ast.Type, align 16 - %a1394 = alloca %S.ast.Type, align 16 - %a1396 = alloca %S.ast.Type, align 16 + %a1054 = alloca { ptr, i64, i64 }, align 16 + %a1055 = alloca { ptr, i64, i64 }, align 16 + %a1056 = alloca { ptr, i64, i64 }, align 16 + %a1058 = alloca { ptr, i64, i64 }, align 16 + %a1059 = alloca { ptr, i64, i64 }, align 16 + %a1060 = alloca { ptr, i64, i64 }, align 16 + %a1061 = alloca { ptr, i64, i64 }, align 16 + %a1065 = alloca { ptr, i64, i64 }, align 16 + %a1066 = alloca { ptr, i64, i64 }, align 16 + %a1067 = alloca { ptr, i64, i64 }, align 16 + %a1068 = alloca { ptr, i64, i64 }, align 16 + %a1072 = alloca { ptr, i64, i64 }, align 16 + %a1082 = alloca { ptr, i64, i64 }, align 16 + %a1083 = alloca { ptr, i64, i64 }, align 16 + %a1084 = alloca { ptr, i64, i64 }, align 16 + %a1085 = alloca { ptr, i64, i64 }, align 16 + %a1087 = alloca { ptr, i64, i64 }, align 16 + %a1088 = alloca { ptr, i64, i64 }, align 16 + %a1089 = alloca { ptr, i64, i64 }, align 16 + %a1090 = alloca { ptr, i64, i64 }, align 16 + %a1094 = alloca { ptr, i64, i64 }, align 16 + %a1095 = alloca { ptr, i64, i64 }, align 16 + %a1096 = alloca { ptr, i64, i64 }, align 16 + %a1097 = alloca { ptr, i64, i64 }, align 16 + %a1099 = alloca { ptr, i64, i64 }, align 16 + %a1100 = alloca { ptr, i64, i64 }, align 16 + %a1101 = alloca { ptr, i64, i64 }, align 16 + %a1102 = alloca { ptr, i64, i64 }, align 16 + %a1106 = alloca { ptr, i64, i64 }, align 16 + %a1107 = alloca { ptr, i64, i64 }, align 16 + %a1108 = alloca { ptr, i64, i64 }, align 16 + %a1109 = alloca { ptr, i64, i64 }, align 16 + %a1113 = alloca { ptr, i64, i64 }, align 16 + %a1121 = alloca %S.ast.Type, align 16 + %a1126 = alloca i64, align 16 + %a1138 = alloca { ptr, i64, i64 }, align 16 + %a1139 = alloca { ptr, i64, i64 }, align 16 + %a1158 = alloca { ptr, i64, i64 }, align 16 + %a1159 = alloca { ptr, i64, i64 }, align 16 + %a1160 = alloca { ptr, i64, i64 }, align 16 + %a1162 = alloca { ptr, i64, i64 }, align 16 + %a1163 = alloca { ptr, i64, i64 }, align 16 + %a1164 = alloca { ptr, i64, i64 }, align 16 + %a1165 = alloca { ptr, i64, i64 }, align 16 + %a1167 = alloca { ptr, i64, i64 }, align 16 + %a1204 = alloca { ptr, i64, i64 }, align 16 + %a1205 = alloca { ptr, i64, i64 }, align 16 + %a1223 = alloca %S.gen.FnSig, align 16 + %a1224 = alloca %S.gen.FnSig, align 16 + %a1234 = alloca i1, align 16 + %a1241 = alloca i64, align 16 + %a1307 = alloca %S.ast.Node, align 16 + %a1308 = alloca %S.ast.Node, align 16 + %a1310 = alloca %S.ast.Node, align 16 + %a1349 = alloca { ptr, i64, i64 }, align 16 + %a1350 = alloca { ptr, i64, i64 }, align 16 + %a1363 = alloca i64, align 16 + %a1376 = alloca %S.gen.Template, align 16 + %a1377 = alloca %S.gen.Template, align 16 + %a1379 = alloca %S.gen.Template, align 16 + %a1407 = alloca %S.ast.Node, align 16 + %a1408 = alloca %S.ast.Node, align 16 + %a1410 = alloca %S.ast.Node, align 16 + %a1440 = alloca { ptr, i64, i64 }, align 16 + %a1441 = alloca { ptr, i64, i64 }, align 16 + %a1454 = alloca i64, align 16 + %a1494 = alloca %S.ast.Node, align 16 + %a1495 = alloca %S.ast.Node, align 16 + %a1497 = alloca %S.ast.Node, align 16 + %a1509 = alloca %S.ast.Node, align 16 + %a1510 = alloca %S.ast.Node, align 16 + %a1512 = alloca %S.ast.Node, align 16 + %a1525 = alloca i64, align 16 + %a1545 = alloca %S.ast.Type, align 16 + %a1546 = alloca %S.ast.Type, align 16 + %a1548 = alloca %S.ast.Type, align 16 store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 %t3 = icmp eq ptr %t2, null - br i1 %t3, label %panic3420, label %ok3421 -panic3420: - call void @finch_panic(ptr @.str.2152, i64 1444, ptr @.str.2153) + br i1 %t3, label %panic3534, label %ok3535 +panic3534: + call void @finch_panic(ptr @.str.2224, i64 1507, ptr @.str.2225) unreachable -ok3421: +ok3535: %t4 = getelementptr inbounds %S.gen.Gen, ptr %t2, i32 0, i32 0 %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %t4, i32 0, i32 1 %t6 = load i64, ptr %t5 store i64 0, ptr %a7 - br label %for.cond3422 -for.cond3422: + br label %for.cond3536 +for.cond3536: %t8 = load i64, ptr %a7 %t9 = icmp slt i64 %t8, %t6 - br i1 %t9, label %for.body3423, label %for.end3425 -for.body3423: + br i1 %t9, label %for.body3537, label %for.end3539 +for.body3537: %t10 = load ptr, ptr %a1 %t11 = icmp eq ptr %t10, null - br i1 %t11, label %panic3426, label %ok3427 -panic3426: - call void @finch_panic(ptr @.str.2154, i64 1445, ptr @.str.2155) + br i1 %t11, label %panic3540, label %ok3541 +panic3540: + call void @finch_panic(ptr @.str.2226, i64 1508, ptr @.str.2227) unreachable -ok3427: +ok3541: %t12 = getelementptr inbounds %S.gen.Gen, ptr %t10, i32 0, i32 0 %t13 = load i64, ptr %a7 %t14 = load { ptr, i64, i64 }, ptr %t12 %t15 = extractvalue { ptr, i64, i64 } %t14, 1 %t16 = icmp uge i64 %t13, %t15 - br i1 %t16, label %range3428, label %inrange3429 -range3428: - call void @finch_panic_index(ptr @.str.2156, i64 1445, i64 %t13, i64 %t15) + br i1 %t16, label %range3542, label %inrange3543 +range3542: + call void @finch_panic_index(ptr @.str.2228, i64 1508, i64 %t13, i64 %t15) unreachable -inrange3429: +inrange3543: %t17 = extractvalue { ptr, i64, i64 } %t14, 0 %t18 = getelementptr inbounds %S.ast.Program, ptr %t17, i64 %t13 %t19 = getelementptr inbounds %S.ast.Program, ptr %t18, i32 0, i32 0 %t20 = load { ptr, i64, i64 }, ptr %t19 %t21 = load ptr, ptr %a1 %t22 = icmp eq ptr %t21, null - br i1 %t22, label %panic3430, label %ok3431 -panic3430: - call void @finch_panic(ptr @.str.2157, i64 1445, ptr @.str.2158) + br i1 %t22, label %panic3544, label %ok3545 +panic3544: + call void @finch_panic(ptr @.str.2229, i64 1508, ptr @.str.2230) unreachable -ok3431: +ok3545: %t23 = getelementptr inbounds %S.gen.Gen, ptr %t21, i32 0, i32 14 store { ptr, i64, i64 } %t20, ptr %a24 call void @finch_str_copy(ptr %a25, ptr %a24) @@ -37446,50 +38858,50 @@ ok3431: call void @finch_str_drop(ptr %a28) %t29 = load ptr, ptr %a1 %t30 = icmp eq ptr %t29, null - br i1 %t30, label %panic3432, label %ok3433 -panic3432: - call void @finch_panic(ptr @.str.2159, i64 1446, ptr @.str.2160) + br i1 %t30, label %panic3546, label %ok3547 +panic3546: + call void @finch_panic(ptr @.str.2231, i64 1509, ptr @.str.2232) unreachable -ok3433: +ok3547: %t31 = getelementptr inbounds %S.gen.Gen, ptr %t29, i32 0, i32 0 %t32 = load i64, ptr %a7 %t33 = load { ptr, i64, i64 }, ptr %t31 %t34 = extractvalue { ptr, i64, i64 } %t33, 1 %t35 = icmp uge i64 %t32, %t34 - br i1 %t35, label %range3434, label %inrange3435 -range3434: - call void @finch_panic_index(ptr @.str.2161, i64 1446, i64 %t32, i64 %t34) + br i1 %t35, label %range3548, label %inrange3549 +range3548: + call void @finch_panic_index(ptr @.str.2233, i64 1509, i64 %t32, i64 %t34) unreachable -inrange3435: +inrange3549: %t36 = extractvalue { ptr, i64, i64 } %t33, 0 %t37 = getelementptr inbounds %S.ast.Program, ptr %t36, i64 %t32 %t38 = getelementptr inbounds %S.ast.Program, ptr %t37, i32 0, i32 6 %t39 = getelementptr inbounds { ptr, i64, i64 }, ptr %t38, i32 0, i32 1 %t40 = load i64, ptr %t39 store i64 0, ptr %a41 - br label %for.cond3436 -for.cond3436: + br label %for.cond3550 +for.cond3550: %t42 = load i64, ptr %a41 %t43 = icmp slt i64 %t42, %t40 - br i1 %t43, label %for.body3437, label %for.end3439 -for.body3437: + br i1 %t43, label %for.body3551, label %for.end3553 +for.body3551: %t44 = load ptr, ptr %a1 %t45 = icmp eq ptr %t44, null - br i1 %t45, label %panic3440, label %ok3441 -panic3440: - call void @finch_panic(ptr @.str.2162, i64 1447, ptr @.str.2163) + br i1 %t45, label %panic3554, label %ok3555 +panic3554: + call void @finch_panic(ptr @.str.2234, i64 1510, ptr @.str.2235) unreachable -ok3441: +ok3555: %t46 = getelementptr inbounds %S.gen.Gen, ptr %t44, i32 0, i32 0 %t47 = load i64, ptr %a7 %t48 = load { ptr, i64, i64 }, ptr %t46 %t49 = extractvalue { ptr, i64, i64 } %t48, 1 %t50 = icmp uge i64 %t47, %t49 - br i1 %t50, label %range3442, label %inrange3443 -range3442: - call void @finch_panic_index(ptr @.str.2164, i64 1447, i64 %t47, i64 %t49) + br i1 %t50, label %range3556, label %inrange3557 +range3556: + call void @finch_panic_index(ptr @.str.2236, i64 1510, i64 %t47, i64 %t49) unreachable -inrange3443: +inrange3557: %t51 = extractvalue { ptr, i64, i64 } %t48, 0 %t52 = getelementptr inbounds %S.ast.Program, ptr %t51, i64 %t47 %t53 = getelementptr inbounds %S.ast.Program, ptr %t52, i32 0, i32 6 @@ -37497,11 +38909,11 @@ inrange3443: %t55 = load { ptr, i64, i64 }, ptr %t53 %t56 = extractvalue { ptr, i64, i64 } %t55, 1 %t57 = icmp uge i64 %t54, %t56 - br i1 %t57, label %range3444, label %inrange3445 -range3444: - call void @finch_panic_index(ptr @.str.2165, i64 1447, i64 %t54, i64 %t56) + br i1 %t57, label %range3558, label %inrange3559 +range3558: + call void @finch_panic_index(ptr @.str.2237, i64 1510, i64 %t54, i64 %t56) unreachable -inrange3445: +inrange3559: %t58 = extractvalue { ptr, i64, i64 } %t55, 0 %t59 = getelementptr inbounds %S.ast.Node, ptr %t58, i64 %t54 %t60 = load %S.ast.Node, ptr %t59 @@ -37512,52 +38924,52 @@ inrange3445: %t65 = load ptr, ptr %a1 %t66 = load ptr, ptr %a1 %t67 = icmp eq ptr %t66, null - br i1 %t67, label %panic3446, label %ok3447 -panic3446: - call void @finch_panic(ptr @.str.2166, i64 1448, ptr @.str.2167) + br i1 %t67, label %panic3560, label %ok3561 +panic3560: + call void @finch_panic(ptr @.str.2238, i64 1511, ptr @.str.2239) unreachable -ok3447: +ok3561: %t68 = getelementptr inbounds %S.gen.Gen, ptr %t66, i32 0, i32 14 %t69 = load { ptr, i64, i64 }, ptr %t68 %t70 = getelementptr inbounds %S.ast.Node, ptr %a64, i32 0, i32 1 %t71 = load { ptr, i64, i64 }, ptr %t70 %t72 = call i64 @finch.gen.findStruct(ptr %t65, { ptr, i64, i64 } %t69, { ptr, i64, i64 } %t71) %t73 = icmp sge i64 %t72, 0 - br label %logic.from3448 -logic.from3448: - br i1 %t73, label %logic.end3450, label %logic.rhs3449 -logic.rhs3449: + br label %logic.from3562 +logic.from3562: + br i1 %t73, label %logic.end3564, label %logic.rhs3563 +logic.rhs3563: %t74 = load ptr, ptr %a1 %t75 = load ptr, ptr %a1 %t76 = icmp eq ptr %t75, null - br i1 %t76, label %panic3451, label %ok3452 -panic3451: - call void @finch_panic(ptr @.str.2168, i64 1448, ptr @.str.2169) + br i1 %t76, label %panic3565, label %ok3566 +panic3565: + call void @finch_panic(ptr @.str.2240, i64 1511, ptr @.str.2241) unreachable -ok3452: +ok3566: %t77 = getelementptr inbounds %S.gen.Gen, ptr %t75, i32 0, i32 14 %t78 = load { ptr, i64, i64 }, ptr %t77 %t79 = getelementptr inbounds %S.ast.Node, ptr %a64, i32 0, i32 1 %t80 = load { ptr, i64, i64 }, ptr %t79 - %t81 = call i64 @finch.gen.findTemplate(ptr %t74, { ptr, i64, i64 } %t78, { ptr, i64, i64 } %t80, { ptr, i64, i64 } { ptr @.str.2170, i64 0, i64 0 }, i1 true) + %t81 = call i64 @finch.gen.findTemplate(ptr %t74, { ptr, i64, i64 } %t78, { ptr, i64, i64 } %t80, { ptr, i64, i64 } { ptr @.str.2242, i64 0, i64 0 }, i1 true) %t82 = icmp sge i64 %t81, 0 - br label %logic.rend3453 -logic.rend3453: - br label %logic.end3450 -logic.end3450: - %t83 = phi i1 [ true, %logic.from3448 ], [ %t82, %logic.rend3453 ] - br i1 %t83, label %then3454, label %endif3456 -then3454: + br label %logic.rend3567 +logic.rend3567: + br label %logic.end3564 +logic.end3564: + %t83 = phi i1 [ true, %logic.from3562 ], [ %t82, %logic.rend3567 ] + br i1 %t83, label %then3568, label %endif3570 +then3568: %t84 = load ptr, ptr %a1 %t85 = load %S.ast.Node, ptr %a64 %t86 = getelementptr inbounds %S.ast.Node, ptr %a64, i32 0, i32 1 %t87 = load { ptr, i64, i64 }, ptr %t86 - store { ptr, i64, i64 } { ptr @.str.2171, i64 12, i64 0 }, ptr %a89 + store { ptr, i64, i64 } { ptr @.str.2243, i64 12, i64 0 }, ptr %a89 store { ptr, i64, i64 } %t87, ptr %a90 call void @finch_str_concat(ptr %a88, ptr %a89, ptr %a90) %t91 = load { ptr, i64, i64 }, ptr %a88 store { ptr, i64, i64 } %t91, ptr %a93 - store { ptr, i64, i64 } { ptr @.str.2172, i64 18, i64 0 }, ptr %a94 + store { ptr, i64, i64 } { ptr @.str.2244, i64 18, i64 0 }, ptr %a94 call void @finch_str_concat(ptr %a92, ptr %a93, ptr %a94) store { ptr, i64, i64 } %t91, ptr %a95 call void @finch_str_drop(ptr %a95) @@ -37565,30 +38977,30 @@ then3454: call void @finch.gen.fail(ptr %t84, %S.ast.Node %t85, { ptr, i64, i64 } %t96) store { ptr, i64, i64 } %t96, ptr %a97 call void @finch_str_drop(ptr %a97) - br label %endif3456 -endif3456: + br label %endif3570 +endif3570: %t98 = getelementptr inbounds %S.ast.Node, ptr %a64, i32 0, i32 3 %t99 = getelementptr inbounds { ptr, i64, i64 }, ptr %t98, i32 0, i32 1 %t100 = load i64, ptr %t99 %t101 = icmp sgt i64 %t100, 0 - br i1 %t101, label %then3457, label %endif3459 -then3457: + br i1 %t101, label %then3571, label %endif3573 +then3571: %t102 = load ptr, ptr %a1 %t103 = icmp eq ptr %t102, null - br i1 %t103, label %panic3460, label %ok3461 -panic3460: - call void @finch_panic(ptr @.str.2173, i64 1453, ptr @.str.2174) + br i1 %t103, label %panic3574, label %ok3575 +panic3574: + call void @finch_panic(ptr @.str.2245, i64 1516, ptr @.str.2246) unreachable -ok3461: +ok3575: %t104 = getelementptr inbounds %S.gen.Gen, ptr %t102, i32 0, i32 17 %t105 = getelementptr inbounds { ptr, i64, i64 }, ptr %t104, i32 0, i32 1 %t106 = load ptr, ptr %a1 %t107 = icmp eq ptr %t106, null - br i1 %t107, label %panic3462, label %ok3463 -panic3462: - call void @finch_panic(ptr @.str.2175, i64 1453, ptr @.str.2176) + br i1 %t107, label %panic3576, label %ok3577 +panic3576: + call void @finch_panic(ptr @.str.2247, i64 1516, ptr @.str.2248) unreachable -ok3463: +ok3577: %t108 = getelementptr inbounds %S.gen.Gen, ptr %t106, i32 0, i32 14 %t109 = load { ptr, i64, i64 }, ptr %t108 store { ptr, i64, i64 } %t109, ptr %a110 @@ -37620,24 +39032,24 @@ ok3463: store %S.gen.Template %t130, ptr %t134 store i64 %t132, ptr %t105 call void @finch.drop.S_ast_Node(ptr %a64) - br label %for.step3438 -endif3459: + br label %for.step3552 +endif3573: %t135 = load ptr, ptr %a1 %t136 = icmp eq ptr %t135, null - br i1 %t136, label %panic3464, label %ok3465 -panic3464: - call void @finch_panic(ptr @.str.2177, i64 1456, ptr @.str.2178) + br i1 %t136, label %panic3578, label %ok3579 +panic3578: + call void @finch_panic(ptr @.str.2249, i64 1519, ptr @.str.2250) unreachable -ok3465: +ok3579: %t137 = getelementptr inbounds %S.gen.Gen, ptr %t135, i32 0, i32 16 %t138 = getelementptr inbounds { ptr, i64, i64 }, ptr %t137, i32 0, i32 1 %t139 = load ptr, ptr %a1 %t140 = icmp eq ptr %t139, null - br i1 %t140, label %panic3466, label %ok3467 -panic3466: - call void @finch_panic(ptr @.str.2179, i64 1456, ptr @.str.2180) + br i1 %t140, label %panic3580, label %ok3581 +panic3580: + call void @finch_panic(ptr @.str.2251, i64 1519, ptr @.str.2252) unreachable -ok3467: +ok3581: %t141 = getelementptr inbounds %S.gen.Gen, ptr %t139, i32 0, i32 14 %t142 = load { ptr, i64, i64 }, ptr %t141 store { ptr, i64, i64 } %t142, ptr %a143 @@ -37662,65 +39074,65 @@ ok3467: store %S.gen.StructDef %t156, ptr %t160 store i64 %t158, ptr %t138 call void @finch.drop.S_ast_Node(ptr %a64) - br label %for.step3438 -for.step3438: + br label %for.step3552 +for.step3552: %t161 = load i64, ptr %a41 %t162 = add i64 %t161, 1 store i64 %t162, ptr %a41 - br label %for.cond3436 -for.end3439: - br label %for.step3424 -for.step3424: + br label %for.cond3550 +for.end3553: + br label %for.step3538 +for.step3538: %t163 = load i64, ptr %a7 %t164 = add i64 %t163, 1 store i64 %t164, ptr %a7 - br label %for.cond3422 -for.end3425: + br label %for.cond3536 +for.end3539: %t165 = load ptr, ptr %a1 %t166 = icmp eq ptr %t165, null - br i1 %t166, label %panic3468, label %ok3469 -panic3468: - call void @finch_panic(ptr @.str.2181, i64 1459, ptr @.str.2182) + br i1 %t166, label %panic3582, label %ok3583 +panic3582: + call void @finch_panic(ptr @.str.2253, i64 1522, ptr @.str.2254) unreachable -ok3469: +ok3583: %t167 = getelementptr inbounds %S.gen.Gen, ptr %t165, i32 0, i32 0 %t168 = getelementptr inbounds { ptr, i64, i64 }, ptr %t167, i32 0, i32 1 %t169 = load i64, ptr %t168 store i64 0, ptr %a170 - br label %for.cond3470 -for.cond3470: + br label %for.cond3584 +for.cond3584: %t171 = load i64, ptr %a170 %t172 = icmp slt i64 %t171, %t169 - br i1 %t172, label %for.body3471, label %for.end3473 -for.body3471: + br i1 %t172, label %for.body3585, label %for.end3587 +for.body3585: %t173 = load ptr, ptr %a1 %t174 = icmp eq ptr %t173, null - br i1 %t174, label %panic3474, label %ok3475 -panic3474: - call void @finch_panic(ptr @.str.2183, i64 1460, ptr @.str.2184) + br i1 %t174, label %panic3588, label %ok3589 +panic3588: + call void @finch_panic(ptr @.str.2255, i64 1523, ptr @.str.2256) unreachable -ok3475: +ok3589: %t175 = getelementptr inbounds %S.gen.Gen, ptr %t173, i32 0, i32 0 %t176 = load i64, ptr %a170 %t177 = load { ptr, i64, i64 }, ptr %t175 %t178 = extractvalue { ptr, i64, i64 } %t177, 1 %t179 = icmp uge i64 %t176, %t178 - br i1 %t179, label %range3476, label %inrange3477 -range3476: - call void @finch_panic_index(ptr @.str.2185, i64 1460, i64 %t176, i64 %t178) + br i1 %t179, label %range3590, label %inrange3591 +range3590: + call void @finch_panic_index(ptr @.str.2257, i64 1523, i64 %t176, i64 %t178) unreachable -inrange3477: +inrange3591: %t180 = extractvalue { ptr, i64, i64 } %t177, 0 %t181 = getelementptr inbounds %S.ast.Program, ptr %t180, i64 %t176 %t182 = getelementptr inbounds %S.ast.Program, ptr %t181, i32 0, i32 0 %t183 = load { ptr, i64, i64 }, ptr %t182 %t184 = load ptr, ptr %a1 %t185 = icmp eq ptr %t184, null - br i1 %t185, label %panic3478, label %ok3479 -panic3478: - call void @finch_panic(ptr @.str.2186, i64 1460, ptr @.str.2187) + br i1 %t185, label %panic3592, label %ok3593 +panic3592: + call void @finch_panic(ptr @.str.2258, i64 1523, ptr @.str.2259) unreachable -ok3479: +ok3593: %t186 = getelementptr inbounds %S.gen.Gen, ptr %t184, i32 0, i32 14 store { ptr, i64, i64 } %t183, ptr %a187 call void @finch_str_copy(ptr %a188, ptr %a187) @@ -37731,50 +39143,50 @@ ok3479: call void @finch_str_drop(ptr %a191) %t192 = load ptr, ptr %a1 %t193 = icmp eq ptr %t192, null - br i1 %t193, label %panic3480, label %ok3481 -panic3480: - call void @finch_panic(ptr @.str.2188, i64 1461, ptr @.str.2189) + br i1 %t193, label %panic3594, label %ok3595 +panic3594: + call void @finch_panic(ptr @.str.2260, i64 1524, ptr @.str.2261) unreachable -ok3481: +ok3595: %t194 = getelementptr inbounds %S.gen.Gen, ptr %t192, i32 0, i32 0 %t195 = load i64, ptr %a170 %t196 = load { ptr, i64, i64 }, ptr %t194 %t197 = extractvalue { ptr, i64, i64 } %t196, 1 %t198 = icmp uge i64 %t195, %t197 - br i1 %t198, label %range3482, label %inrange3483 -range3482: - call void @finch_panic_index(ptr @.str.2190, i64 1461, i64 %t195, i64 %t197) + br i1 %t198, label %range3596, label %inrange3597 +range3596: + call void @finch_panic_index(ptr @.str.2262, i64 1524, i64 %t195, i64 %t197) unreachable -inrange3483: +inrange3597: %t199 = extractvalue { ptr, i64, i64 } %t196, 0 %t200 = getelementptr inbounds %S.ast.Program, ptr %t199, i64 %t195 %t201 = getelementptr inbounds %S.ast.Program, ptr %t200, i32 0, i32 7 %t202 = getelementptr inbounds { ptr, i64, i64 }, ptr %t201, i32 0, i32 1 %t203 = load i64, ptr %t202 store i64 0, ptr %a204 - br label %for.cond3484 -for.cond3484: + br label %for.cond3598 +for.cond3598: %t205 = load i64, ptr %a204 %t206 = icmp slt i64 %t205, %t203 - br i1 %t206, label %for.body3485, label %for.end3487 -for.body3485: + br i1 %t206, label %for.body3599, label %for.end3601 +for.body3599: %t207 = load ptr, ptr %a1 %t208 = icmp eq ptr %t207, null - br i1 %t208, label %panic3488, label %ok3489 -panic3488: - call void @finch_panic(ptr @.str.2191, i64 1462, ptr @.str.2192) + br i1 %t208, label %panic3602, label %ok3603 +panic3602: + call void @finch_panic(ptr @.str.2263, i64 1525, ptr @.str.2264) unreachable -ok3489: +ok3603: %t209 = getelementptr inbounds %S.gen.Gen, ptr %t207, i32 0, i32 0 %t210 = load i64, ptr %a170 %t211 = load { ptr, i64, i64 }, ptr %t209 %t212 = extractvalue { ptr, i64, i64 } %t211, 1 %t213 = icmp uge i64 %t210, %t212 - br i1 %t213, label %range3490, label %inrange3491 -range3490: - call void @finch_panic_index(ptr @.str.2193, i64 1462, i64 %t210, i64 %t212) + br i1 %t213, label %range3604, label %inrange3605 +range3604: + call void @finch_panic_index(ptr @.str.2265, i64 1525, i64 %t210, i64 %t212) unreachable -inrange3491: +inrange3605: %t214 = extractvalue { ptr, i64, i64 } %t211, 0 %t215 = getelementptr inbounds %S.ast.Program, ptr %t214, i64 %t210 %t216 = getelementptr inbounds %S.ast.Program, ptr %t215, i32 0, i32 7 @@ -37782,11 +39194,11 @@ inrange3491: %t218 = load { ptr, i64, i64 }, ptr %t216 %t219 = extractvalue { ptr, i64, i64 } %t218, 1 %t220 = icmp uge i64 %t217, %t219 - br i1 %t220, label %range3492, label %inrange3493 -range3492: - call void @finch_panic_index(ptr @.str.2194, i64 1462, i64 %t217, i64 %t219) + br i1 %t220, label %range3606, label %inrange3607 +range3606: + call void @finch_panic_index(ptr @.str.2266, i64 1525, i64 %t217, i64 %t219) unreachable -inrange3493: +inrange3607: %t221 = extractvalue { ptr, i64, i64 } %t218, 0 %t222 = getelementptr inbounds %S.ast.Node, ptr %t221, i64 %t217 %t223 = load %S.ast.Node, ptr %t222 @@ -37794,2062 +39206,2298 @@ inrange3493: call void @finch.copy.S_ast_Node(ptr %a225, ptr %a224) %t226 = load %S.ast.Node, ptr %a225 store %S.ast.Node %t226, ptr %a227 - %t228 = load ptr, ptr %a1 - %t229 = load ptr, ptr %a1 - %t230 = icmp eq ptr %t229, null - br i1 %t230, label %panic3494, label %ok3495 -panic3494: - call void @finch_panic(ptr @.str.2195, i64 1463, ptr @.str.2196) - unreachable -ok3495: - %t231 = getelementptr inbounds %S.gen.Gen, ptr %t229, i32 0, i32 14 - %t232 = load { ptr, i64, i64 }, ptr %t231 - %t233 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 - %t234 = load { ptr, i64, i64 }, ptr %t233 - %t235 = call i64 @finch.gen.findEnum(ptr %t228, { ptr, i64, i64 } %t232, { ptr, i64, i64 } %t234) - %t236 = icmp sge i64 %t235, 0 - br label %logic.from3496 -logic.from3496: - br i1 %t236, label %logic.end3498, label %logic.rhs3497 -logic.rhs3497: - %t237 = load ptr, ptr %a1 - %t238 = load ptr, ptr %a1 - %t239 = icmp eq ptr %t238, null - br i1 %t239, label %panic3499, label %ok3500 -panic3499: - call void @finch_panic(ptr @.str.2197, i64 1463, ptr @.str.2198) - unreachable -ok3500: - %t240 = getelementptr inbounds %S.gen.Gen, ptr %t238, i32 0, i32 14 - %t241 = load { ptr, i64, i64 }, ptr %t240 - %t242 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 - %t243 = load { ptr, i64, i64 }, ptr %t242 - %t244 = call i64 @finch.gen.findStruct(ptr %t237, { ptr, i64, i64 } %t241, { ptr, i64, i64 } %t243) - %t245 = icmp sge i64 %t244, 0 - br label %logic.rend3501 -logic.rend3501: - br label %logic.end3498 -logic.end3498: - %t246 = phi i1 [ true, %logic.from3496 ], [ %t245, %logic.rend3501 ] - br i1 %t246, label %then3502, label %endif3504 -then3502: - %t247 = load ptr, ptr %a1 - %t248 = load %S.ast.Node, ptr %a227 - %t249 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 - %t250 = load { ptr, i64, i64 }, ptr %t249 - store { ptr, i64, i64 } { ptr @.str.2199, i64 1, i64 0 }, ptr %a252 - store { ptr, i64, i64 } %t250, ptr %a253 - call void @finch_str_concat(ptr %a251, ptr %a252, ptr %a253) - %t254 = load { ptr, i64, i64 }, ptr %a251 - store { ptr, i64, i64 } %t254, ptr %a256 - store { ptr, i64, i64 } { ptr @.str.2200, i64 18, i64 0 }, ptr %a257 - call void @finch_str_concat(ptr %a255, ptr %a256, ptr %a257) - store { ptr, i64, i64 } %t254, ptr %a258 - call void @finch_str_drop(ptr %a258) - %t259 = load { ptr, i64, i64 }, ptr %a255 - call void @finch.gen.fail(ptr %t247, %S.ast.Node %t248, { ptr, i64, i64 } %t259) - store { ptr, i64, i64 } %t259, ptr %a260 - call void @finch_str_drop(ptr %a260) - br label %endif3504 -endif3504: - %t261 = load ptr, ptr %a1 - %t262 = icmp eq ptr %t261, null - br i1 %t262, label %panic3505, label %ok3506 -panic3505: - call void @finch_panic(ptr @.str.2201, i64 1466, ptr @.str.2202) - unreachable -ok3506: - %t263 = getelementptr inbounds %S.gen.Gen, ptr %t261, i32 0, i32 14 - %t264 = load { ptr, i64, i64 }, ptr %t263 - store { ptr, i64, i64 } %t264, ptr %a265 - call void @finch_str_copy(ptr %a266, ptr %a265) - %t267 = load { ptr, i64, i64 }, ptr %a266 - %t268 = insertvalue %S.gen.EnumDef zeroinitializer, { ptr, i64, i64 } %t267, 0 - %t269 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 - %t270 = load { ptr, i64, i64 }, ptr %t269 - store { ptr, i64, i64 } %t270, ptr %a271 - call void @finch_str_copy(ptr %a272, ptr %a271) - %t273 = load { ptr, i64, i64 }, ptr %a272 - %t274 = insertvalue %S.gen.EnumDef %t268, { ptr, i64, i64 } %t273, 1 - store %S.gen.EnumDef %t274, ptr %a275 - store i64 0, ptr %a276 - %t277 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 9 - store i64 0, ptr %a278 - br label %each.cond3507 -each.cond3507: - %t279 = getelementptr inbounds { ptr, i64, i64 }, ptr %t277, i32 0, i32 1 - %t280 = load i64, ptr %t279 - %t281 = load i64, ptr %a278 - %t282 = icmp slt i64 %t281, %t280 - br i1 %t282, label %each.body3508, label %each.end3510 -each.body3508: - %t283 = load ptr, ptr %t277 - %t284 = getelementptr inbounds %S.ast.Node, ptr %t283, i64 %t281 - %t285 = load %S.ast.Node, ptr %t284 - store %S.ast.Node %t285, ptr %a286 - %t287 = getelementptr inbounds %S.ast.Node, ptr %a286, i32 0, i32 4 - %t288 = getelementptr inbounds { ptr, i64, i64 }, ptr %t287, i32 0, i32 1 - %t289 = load i64, ptr %t288 - %t290 = icmp sgt i64 %t289, 0 - br i1 %t290, label %then3511, label %endif3513 -then3511: - %t291 = getelementptr inbounds %S.ast.Node, ptr %a286, i32 0, i32 4 - %t292 = load { ptr, i64, i64 }, ptr %t291 - store { ptr, i64, i64 } %t292, ptr %a293 - %t294 = call i64 @finch_str_to_int(ptr %a293, ptr @.str.2203, i64 1470) - store i64 %t294, ptr %a276 - br label %endif3513 -endif3513: - %t295 = getelementptr inbounds %S.gen.EnumDef, ptr %a275, i32 0, i32 2 - %t296 = getelementptr inbounds { ptr, i64, i64 }, ptr %t295, i32 0, i32 1 - %t297 = getelementptr inbounds %S.ast.Node, ptr %a286, i32 0, i32 1 - %t298 = load { ptr, i64, i64 }, ptr %t297 - store i64 -1, ptr %a299 - %t300 = load i64, ptr %t296 - %t301 = load ptr, ptr %t295 - store i64 0, ptr %a302 - br label %find.cond3514 -find.cond3514: - %t303 = load i64, ptr %a302 - %t304 = icmp slt i64 %t303, %t300 - br i1 %t304, label %find.body3515, label %find.end3518 -find.body3515: - %t305 = getelementptr inbounds { ptr, i64, i64 }, ptr %t301, i64 %t303 - %t306 = load { ptr, i64, i64 }, ptr %t305 - store { ptr, i64, i64 } %t306, ptr %a307 - store { ptr, i64, i64 } %t298, ptr %a308 - %t309 = call i32 @finch_str_eq(ptr %a307, ptr %a308) - %t310 = icmp ne i32 %t309, 0 - br i1 %t310, label %find.hit3516, label %find.next3517 -find.hit3516: - store i64 %t303, ptr %a299 - br label %find.end3518 -find.next3517: - %t311 = add i64 %t303, 1 - store i64 %t311, ptr %a302 - br label %find.cond3514 -find.end3518: - %t312 = load i64, ptr %a299 - %t313 = icmp sge i64 %t312, 0 - br i1 %t313, label %then3519, label %endif3521 -then3519: - %t314 = load ptr, ptr %a1 - %t315 = load %S.ast.Node, ptr %a286 - %t316 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 - %t317 = load { ptr, i64, i64 }, ptr %t316 - store { ptr, i64, i64 } { ptr @.str.2204, i64 9, i64 0 }, ptr %a319 - store { ptr, i64, i64 } %t317, ptr %a320 - call void @finch_str_concat(ptr %a318, ptr %a319, ptr %a320) - %t321 = load { ptr, i64, i64 }, ptr %a318 - store { ptr, i64, i64 } %t321, ptr %a323 - store { ptr, i64, i64 } { ptr @.str.2205, i64 17, i64 0 }, ptr %a324 - call void @finch_str_concat(ptr %a322, ptr %a323, ptr %a324) - store { ptr, i64, i64 } %t321, ptr %a325 - call void @finch_str_drop(ptr %a325) - %t326 = load { ptr, i64, i64 }, ptr %a322 - %t327 = getelementptr inbounds %S.ast.Node, ptr %a286, i32 0, i32 1 - %t328 = load { ptr, i64, i64 }, ptr %t327 - store { ptr, i64, i64 } %t326, ptr %a330 - store { ptr, i64, i64 } %t328, ptr %a331 - call void @finch_str_concat(ptr %a329, ptr %a330, ptr %a331) - store { ptr, i64, i64 } %t326, ptr %a332 - call void @finch_str_drop(ptr %a332) - %t333 = load { ptr, i64, i64 }, ptr %a329 - store { ptr, i64, i64 } %t333, ptr %a335 - store { ptr, i64, i64 } { ptr @.str.2206, i64 6, i64 0 }, ptr %a336 - call void @finch_str_concat(ptr %a334, ptr %a335, ptr %a336) - store { ptr, i64, i64 } %t333, ptr %a337 - call void @finch_str_drop(ptr %a337) - %t338 = load { ptr, i64, i64 }, ptr %a334 - call void @finch.gen.fail(ptr %t314, %S.ast.Node %t315, { ptr, i64, i64 } %t338) - store { ptr, i64, i64 } %t338, ptr %a339 - call void @finch_str_drop(ptr %a339) - br label %endif3521 -endif3521: - %t340 = getelementptr inbounds %S.gen.EnumDef, ptr %a275, i32 0, i32 3 - %t341 = getelementptr inbounds { ptr, i64, i64 }, ptr %t340, i32 0, i32 1 - %t342 = load i64, ptr %a276 - store i64 -1, ptr %a343 - %t344 = load i64, ptr %t341 - %t345 = load ptr, ptr %t340 - store i64 0, ptr %a346 - br label %find.cond3522 -find.cond3522: - %t347 = load i64, ptr %a346 - %t348 = icmp slt i64 %t347, %t344 - br i1 %t348, label %find.body3523, label %find.end3526 -find.body3523: - %t349 = getelementptr inbounds i64, ptr %t345, i64 %t347 - %t350 = load i64, ptr %t349 - %t351 = icmp eq i64 %t350, %t342 - br i1 %t351, label %find.hit3524, label %find.next3525 -find.hit3524: - store i64 %t347, ptr %a343 - br label %find.end3526 -find.next3525: - %t352 = add i64 %t347, 1 - store i64 %t352, ptr %a346 - br label %find.cond3522 -find.end3526: - %t353 = load i64, ptr %a343 - %t354 = icmp sge i64 %t353, 0 - br i1 %t354, label %then3527, label %endif3529 -then3527: - %t355 = load ptr, ptr %a1 - %t356 = load %S.ast.Node, ptr %a286 - %t357 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 - %t358 = load { ptr, i64, i64 }, ptr %t357 - store { ptr, i64, i64 } { ptr @.str.2207, i64 16, i64 0 }, ptr %a360 - store { ptr, i64, i64 } %t358, ptr %a361 - call void @finch_str_concat(ptr %a359, ptr %a360, ptr %a361) - %t362 = load { ptr, i64, i64 }, ptr %a359 - store { ptr, i64, i64 } %t362, ptr %a364 - store { ptr, i64, i64 } { ptr @.str.2208, i64 17, i64 0 }, ptr %a365 - call void @finch_str_concat(ptr %a363, ptr %a364, ptr %a365) - store { ptr, i64, i64 } %t362, ptr %a366 - call void @finch_str_drop(ptr %a366) - %t367 = load { ptr, i64, i64 }, ptr %a363 - %t368 = load i64, ptr %a276 - call void @finch_str_from_int(ptr %a369, i64 %t368) - %t370 = load { ptr, i64, i64 }, ptr %a369 - store { ptr, i64, i64 } %t367, ptr %a372 - store { ptr, i64, i64 } %t370, ptr %a373 - call void @finch_str_concat(ptr %a371, ptr %a372, ptr %a373) - store { ptr, i64, i64 } %t367, ptr %a374 - call void @finch_str_drop(ptr %a374) - store { ptr, i64, i64 } %t370, ptr %a375 - call void @finch_str_drop(ptr %a375) - %t376 = load { ptr, i64, i64 }, ptr %a371 - store { ptr, i64, i64 } %t376, ptr %a378 - store { ptr, i64, i64 } { ptr @.str.2209, i64 20, i64 0 }, ptr %a379 - call void @finch_str_concat(ptr %a377, ptr %a378, ptr %a379) - store { ptr, i64, i64 } %t376, ptr %a380 - call void @finch_str_drop(ptr %a380) - %t381 = load { ptr, i64, i64 }, ptr %a377 - call void @finch.gen.fail(ptr %t355, %S.ast.Node %t356, { ptr, i64, i64 } %t381) - store { ptr, i64, i64 } %t381, ptr %a382 - call void @finch_str_drop(ptr %a382) - br label %endif3529 -endif3529: - %t383 = getelementptr inbounds %S.gen.EnumDef, ptr %a275, i32 0, i32 2 - %t384 = getelementptr inbounds { ptr, i64, i64 }, ptr %t383, i32 0, i32 1 - %t385 = getelementptr inbounds %S.ast.Node, ptr %a286, i32 0, i32 1 - %t386 = load { ptr, i64, i64 }, ptr %t385 - store { ptr, i64, i64 } %t386, ptr %a387 - call void @finch_str_copy(ptr %a388, ptr %a387) - %t389 = load { ptr, i64, i64 }, ptr %a388 - %t390 = load i64, ptr %t384 - %t391 = add i64 %t390, 1 - call void @finch_arr_reserve(ptr %t383, i64 %t391, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) - %t392 = load ptr, ptr %t383 - %t393 = getelementptr inbounds { ptr, i64, i64 }, ptr %t392, i64 %t390 - store { ptr, i64, i64 } %t389, ptr %t393 - store i64 %t391, ptr %t384 - %t394 = getelementptr inbounds %S.gen.EnumDef, ptr %a275, i32 0, i32 3 - %t395 = getelementptr inbounds { ptr, i64, i64 }, ptr %t394, i32 0, i32 1 - %t396 = load i64, ptr %a276 - %t397 = load i64, ptr %t395 - %t398 = add i64 %t397, 1 - call void @finch_arr_reserve(ptr %t394, i64 %t398, i64 ptrtoint (ptr getelementptr (i64, ptr null, i32 1) to i64)) - %t399 = load ptr, ptr %t394 - %t400 = getelementptr inbounds i64, ptr %t399, i64 %t397 - store i64 %t396, ptr %t400 - store i64 %t398, ptr %t395 - %t401 = load i64, ptr %a276 - %t402 = add i64 %t401, 1 - store i64 %t402, ptr %a276 - br label %each.step3509 -each.step3509: - %t403 = load i64, ptr %a278 - %t404 = add i64 %t403, 1 - store i64 %t404, ptr %a278 - br label %each.cond3507 -each.end3510: - %t405 = load ptr, ptr %a1 - %t406 = icmp eq ptr %t405, null - br i1 %t406, label %panic3530, label %ok3531 -panic3530: - call void @finch_panic(ptr @.str.2210, i64 1482, ptr @.str.2211) - unreachable -ok3531: - %t407 = getelementptr inbounds %S.gen.Gen, ptr %t405, i32 0, i32 21 - %t408 = getelementptr inbounds { ptr, i64, i64 }, ptr %t407, i32 0, i32 1 - %t409 = load %S.gen.EnumDef, ptr %a275 - store %S.gen.EnumDef %t409, ptr %a410 - call void @finch.copy.S_gen_EnumDef(ptr %a411, ptr %a410) - %t412 = load %S.gen.EnumDef, ptr %a411 - %t413 = load i64, ptr %t408 - %t414 = add i64 %t413, 1 - call void @finch_arr_reserve(ptr %t407, i64 %t414, i64 ptrtoint (ptr getelementptr (%S.gen.EnumDef, ptr null, i32 1) to i64)) - %t415 = load ptr, ptr %t407 - %t416 = getelementptr inbounds %S.gen.EnumDef, ptr %t415, i64 %t413 - store %S.gen.EnumDef %t412, ptr %t416 - store i64 %t414, ptr %t408 - call void @finch.drop.S_gen_EnumDef(ptr %a275) - call void @finch.drop.S_ast_Node(ptr %a227) - br label %for.step3486 -for.step3486: - %t417 = load i64, ptr %a204 - %t418 = add i64 %t417, 1 - store i64 %t418, ptr %a204 - br label %for.cond3484 -for.end3487: - br label %for.step3472 -for.step3472: - %t419 = load i64, ptr %a170 - %t420 = add i64 %t419, 1 - store i64 %t420, ptr %a170 - br label %for.cond3470 -for.end3473: - %t421 = load ptr, ptr %a1 - %t422 = icmp eq ptr %t421, null - br i1 %t422, label %panic3532, label %ok3533 -panic3532: - call void @finch_panic(ptr @.str.2212, i64 1485, ptr @.str.2213) - unreachable -ok3533: - %t423 = getelementptr inbounds %S.gen.Gen, ptr %t421, i32 0, i32 25 - %t424 = getelementptr inbounds %S.cimport.CImports, ptr %t423, i32 0, i32 4 - %t425 = getelementptr inbounds { ptr, i64, i64 }, ptr %t424, i32 0, i32 1 - %t426 = load i64, ptr %t425 - store i64 0, ptr %a427 - br label %for.cond3534 -for.cond3534: - %t428 = load i64, ptr %a427 - %t429 = icmp slt i64 %t428, %t426 - br i1 %t429, label %for.body3535, label %for.end3537 -for.body3535: - %t430 = load ptr, ptr %a1 - %t431 = icmp eq ptr %t430, null - br i1 %t431, label %panic3538, label %ok3539 -panic3538: - call void @finch_panic(ptr @.str.2214, i64 1486, ptr @.str.2215) - unreachable -ok3539: - %t432 = getelementptr inbounds %S.gen.Gen, ptr %t430, i32 0, i32 16 - %t433 = getelementptr inbounds { ptr, i64, i64 }, ptr %t432, i32 0, i32 1 - %t434 = insertvalue %S.gen.StructDef zeroinitializer, { ptr, i64, i64 } { ptr @.str.2216, i64 1, i64 0 }, 0 - %t435 = load ptr, ptr %a1 - %t436 = icmp eq ptr %t435, null - br i1 %t436, label %panic3540, label %ok3541 -panic3540: - call void @finch_panic(ptr @.str.2217, i64 1486, ptr @.str.2218) - unreachable -ok3541: - %t437 = getelementptr inbounds %S.gen.Gen, ptr %t435, i32 0, i32 25 - %t438 = getelementptr inbounds %S.cimport.CImports, ptr %t437, i32 0, i32 4 - %t439 = load i64, ptr %a427 - %t440 = load { ptr, i64, i64 }, ptr %t438 - %t441 = extractvalue { ptr, i64, i64 } %t440, 1 - %t442 = icmp uge i64 %t439, %t441 - br i1 %t442, label %range3542, label %inrange3543 -range3542: - call void @finch_panic_index(ptr @.str.2219, i64 1486, i64 %t439, i64 %t441) - unreachable -inrange3543: - %t443 = extractvalue { ptr, i64, i64 } %t440, 0 - %t444 = getelementptr inbounds { ptr, i64, i64 }, ptr %t443, i64 %t439 - %t445 = load { ptr, i64, i64 }, ptr %t444 - store { ptr, i64, i64 } %t445, ptr %a446 - call void @finch_str_copy(ptr %a447, ptr %a446) - %t448 = load { ptr, i64, i64 }, ptr %a447 - %t449 = insertvalue %S.gen.StructDef %t434, { ptr, i64, i64 } %t448, 1 - %t450 = insertvalue %S.gen.StructDef %t449, i1 true, 2 - %t451 = insertvalue %S.gen.StructDef %t450, i64 -1, 13 - %t452 = load i64, ptr %a427 - %t453 = insertvalue %S.gen.StructDef %t451, i64 %t452, 14 - %t454 = load i64, ptr %t433 - %t455 = add i64 %t454, 1 - call void @finch_arr_reserve(ptr %t432, i64 %t455, i64 ptrtoint (ptr getelementptr (%S.gen.StructDef, ptr null, i32 1) to i64)) - %t456 = load ptr, ptr %t432 - %t457 = getelementptr inbounds %S.gen.StructDef, ptr %t456, i64 %t454 - store %S.gen.StructDef %t453, ptr %t457 - store i64 %t455, ptr %t433 - br label %for.step3536 -for.step3536: - %t458 = load i64, ptr %a427 - %t459 = add i64 %t458, 1 - store i64 %t459, ptr %a427 - br label %for.cond3534 -for.end3537: - %t460 = load ptr, ptr %a1 - %t461 = icmp eq ptr %t460, null - br i1 %t461, label %panic3544, label %ok3545 -panic3544: - call void @finch_panic(ptr @.str.2220, i64 1488, ptr @.str.2221) - unreachable -ok3545: - %t462 = getelementptr inbounds %S.gen.Gen, ptr %t460, i32 0, i32 16 - %t463 = getelementptr inbounds { ptr, i64, i64 }, ptr %t462, i32 0, i32 1 - %t464 = load i64, ptr %t463 - store i64 0, ptr %a465 - br label %for.cond3546 -for.cond3546: - %t466 = load i64, ptr %a465 - %t467 = icmp slt i64 %t466, %t464 - br i1 %t467, label %for.body3547, label %for.end3549 -for.body3547: - %t468 = load ptr, ptr %a1 - %t469 = load i64, ptr %a465 - call void @finch.gen.resolveStruct(ptr %t468, i64 %t469) - br label %for.step3548 -for.step3548: - %t470 = load i64, ptr %a465 - %t471 = add i64 %t470, 1 - store i64 %t471, ptr %a465 - br label %for.cond3546 -for.end3549: - %t472 = load ptr, ptr %a1 - %t473 = icmp eq ptr %t472, null - br i1 %t473, label %panic3550, label %ok3551 -panic3550: - call void @finch_panic(ptr @.str.2222, i64 1491, ptr @.str.2223) - unreachable -ok3551: - %t474 = getelementptr inbounds %S.gen.Gen, ptr %t472, i32 0, i32 0 - %t475 = getelementptr inbounds { ptr, i64, i64 }, ptr %t474, i32 0, i32 1 - %t476 = load i64, ptr %t475 - store i64 0, ptr %a477 - br label %for.cond3552 -for.cond3552: - %t478 = load i64, ptr %a477 - %t479 = icmp slt i64 %t478, %t476 - br i1 %t479, label %for.body3553, label %for.end3555 -for.body3553: - %t480 = load ptr, ptr %a1 - %t481 = icmp eq ptr %t480, null - br i1 %t481, label %panic3556, label %ok3557 -panic3556: - call void @finch_panic(ptr @.str.2224, i64 1492, ptr @.str.2225) - unreachable -ok3557: - %t482 = getelementptr inbounds %S.gen.Gen, ptr %t480, i32 0, i32 0 - %t483 = load i64, ptr %a477 - %t484 = load { ptr, i64, i64 }, ptr %t482 - %t485 = extractvalue { ptr, i64, i64 } %t484, 1 - %t486 = icmp uge i64 %t483, %t485 - br i1 %t486, label %range3558, label %inrange3559 -range3558: - call void @finch_panic_index(ptr @.str.2226, i64 1492, i64 %t483, i64 %t485) - unreachable -inrange3559: - %t487 = extractvalue { ptr, i64, i64 } %t484, 0 - %t488 = getelementptr inbounds %S.ast.Program, ptr %t487, i64 %t483 - %t489 = getelementptr inbounds %S.ast.Program, ptr %t488, i32 0, i32 0 - %t490 = load { ptr, i64, i64 }, ptr %t489 - %t491 = load ptr, ptr %a1 - %t492 = icmp eq ptr %t491, null - br i1 %t492, label %panic3560, label %ok3561 -panic3560: - call void @finch_panic(ptr @.str.2227, i64 1492, ptr @.str.2228) - unreachable -ok3561: - %t493 = getelementptr inbounds %S.gen.Gen, ptr %t491, i32 0, i32 14 - store { ptr, i64, i64 } %t490, ptr %a494 - call void @finch_str_copy(ptr %a495, ptr %a494) - %t496 = load { ptr, i64, i64 }, ptr %a495 - %t497 = load { ptr, i64, i64 }, ptr %t493 - store { ptr, i64, i64 } %t496, ptr %t493 - store { ptr, i64, i64 } %t497, ptr %a498 - call void @finch_str_drop(ptr %a498) - %t499 = load ptr, ptr %a1 - %t500 = icmp eq ptr %t499, null - br i1 %t500, label %panic3562, label %ok3563 -panic3562: - call void @finch_panic(ptr @.str.2229, i64 1493, ptr @.str.2230) - unreachable -ok3563: - %t501 = getelementptr inbounds %S.gen.Gen, ptr %t499, i32 0, i32 0 - %t502 = load i64, ptr %a477 - %t503 = load { ptr, i64, i64 }, ptr %t501 - %t504 = extractvalue { ptr, i64, i64 } %t503, 1 - %t505 = icmp uge i64 %t502, %t504 - br i1 %t505, label %range3564, label %inrange3565 -range3564: - call void @finch_panic_index(ptr @.str.2231, i64 1493, i64 %t502, i64 %t504) - unreachable -inrange3565: - %t506 = extractvalue { ptr, i64, i64 } %t503, 0 - %t507 = getelementptr inbounds %S.ast.Program, ptr %t506, i64 %t502 - %t508 = getelementptr inbounds %S.ast.Program, ptr %t507, i32 0, i32 8 - %t509 = getelementptr inbounds { ptr, i64, i64 }, ptr %t508, i32 0, i32 1 - %t510 = load i64, ptr %t509 - store i64 0, ptr %a511 - br label %for.cond3566 -for.cond3566: - %t512 = load i64, ptr %a511 - %t513 = icmp slt i64 %t512, %t510 - br i1 %t513, label %for.body3567, label %for.end3569 -for.body3567: - %t514 = load ptr, ptr %a1 - %t515 = icmp eq ptr %t514, null - br i1 %t515, label %panic3570, label %ok3571 -panic3570: - call void @finch_panic(ptr @.str.2232, i64 1494, ptr @.str.2233) - unreachable -ok3571: - %t516 = getelementptr inbounds %S.gen.Gen, ptr %t514, i32 0, i32 0 - %t517 = load i64, ptr %a477 - %t518 = load { ptr, i64, i64 }, ptr %t516 - %t519 = extractvalue { ptr, i64, i64 } %t518, 1 - %t520 = icmp uge i64 %t517, %t519 - br i1 %t520, label %range3572, label %inrange3573 -range3572: - call void @finch_panic_index(ptr @.str.2234, i64 1494, i64 %t517, i64 %t519) - unreachable -inrange3573: - %t521 = extractvalue { ptr, i64, i64 } %t518, 0 - %t522 = getelementptr inbounds %S.ast.Program, ptr %t521, i64 %t517 - %t523 = getelementptr inbounds %S.ast.Program, ptr %t522, i32 0, i32 8 - %t524 = load i64, ptr %a511 - %t525 = load { ptr, i64, i64 }, ptr %t523 - %t526 = extractvalue { ptr, i64, i64 } %t525, 1 - %t527 = icmp uge i64 %t524, %t526 - br i1 %t527, label %range3574, label %inrange3575 -range3574: - call void @finch_panic_index(ptr @.str.2235, i64 1494, i64 %t524, i64 %t526) - unreachable -inrange3575: - %t528 = extractvalue { ptr, i64, i64 } %t525, 0 - %t529 = getelementptr inbounds %S.ast.Node, ptr %t528, i64 %t524 - %t530 = load %S.ast.Node, ptr %t529 - store %S.ast.Node %t530, ptr %a531 - call void @finch.copy.S_ast_Node(ptr %a532, ptr %a531) - %t533 = load %S.ast.Node, ptr %a532 - store %S.ast.Node %t533, ptr %a534 - %t535 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 3 - %t536 = getelementptr inbounds { ptr, i64, i64 }, ptr %t535, i32 0, i32 1 - %t537 = load i64, ptr %t536 - %t538 = icmp sgt i64 %t537, 0 - br i1 %t538, label %then3576, label %endif3578 -then3576: - %t539 = load ptr, ptr %a1 - %t540 = load ptr, ptr %a1 - %t541 = icmp eq ptr %t540, null - br i1 %t541, label %panic3579, label %ok3580 -panic3579: - call void @finch_panic(ptr @.str.2236, i64 1497, ptr @.str.2237) - unreachable -ok3580: - %t542 = getelementptr inbounds %S.gen.Gen, ptr %t540, i32 0, i32 14 - %t543 = load { ptr, i64, i64 }, ptr %t542 - %t544 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t545 = load { ptr, i64, i64 }, ptr %t544 - %t546 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t547 = load { ptr, i64, i64 }, ptr %t546 - %t548 = call i64 @finch.gen.findTemplate(ptr %t539, { ptr, i64, i64 } %t543, { ptr, i64, i64 } %t545, { ptr, i64, i64 } %t547, i1 false) - %t549 = icmp sge i64 %t548, 0 - br i1 %t549, label %then3581, label %endif3583 -then3581: - %t550 = load ptr, ptr %a1 - %t551 = load %S.ast.Node, ptr %a534 - %t552 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t553 = load { ptr, i64, i64 }, ptr %t552 - store { ptr, i64, i64 } { ptr @.str.2238, i64 10, i64 0 }, ptr %a555 - store { ptr, i64, i64 } %t553, ptr %a556 - call void @finch_str_concat(ptr %a554, ptr %a555, ptr %a556) - %t557 = load { ptr, i64, i64 }, ptr %a554 - store { ptr, i64, i64 } %t557, ptr %a559 - store { ptr, i64, i64 } { ptr @.str.2239, i64 18, i64 0 }, ptr %a560 - call void @finch_str_concat(ptr %a558, ptr %a559, ptr %a560) - store { ptr, i64, i64 } %t557, ptr %a561 - call void @finch_str_drop(ptr %a561) - %t562 = load { ptr, i64, i64 }, ptr %a558 - call void @finch.gen.fail(ptr %t550, %S.ast.Node %t551, { ptr, i64, i64 } %t562) - store { ptr, i64, i64 } %t562, ptr %a563 - call void @finch_str_drop(ptr %a563) - br label %endif3583 -endif3583: - %t564 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t565 = getelementptr inbounds { ptr, i64, i64 }, ptr %t564, i32 0, i32 1 - %t566 = load i64, ptr %t565 - %t567 = icmp sgt i64 %t566, 0 - br label %logic.from3584 -logic.from3584: - br i1 %t567, label %logic.rhs3585, label %logic.end3586 -logic.rhs3585: - %t568 = load ptr, ptr %a1 - %t569 = load ptr, ptr %a1 - %t570 = icmp eq ptr %t569, null - br i1 %t570, label %panic3587, label %ok3588 -panic3587: - call void @finch_panic(ptr @.str.2240, i64 1500, ptr @.str.2241) - unreachable -ok3588: - %t571 = getelementptr inbounds %S.gen.Gen, ptr %t569, i32 0, i32 14 - %t572 = load { ptr, i64, i64 }, ptr %t571 - %t573 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t574 = load { ptr, i64, i64 }, ptr %t573 - %t575 = call i64 @finch.gen.findTemplate(ptr %t568, { ptr, i64, i64 } %t572, { ptr, i64, i64 } %t574, { ptr, i64, i64 } { ptr @.str.2242, i64 0, i64 0 }, i1 true) - %t576 = icmp slt i64 %t575, 0 - br label %logic.rend3589 -logic.rend3589: - br label %logic.end3586 -logic.end3586: - %t577 = phi i1 [ false, %logic.from3584 ], [ %t576, %logic.rend3589 ] - br i1 %t577, label %then3590, label %endif3592 -then3590: - %t578 = load ptr, ptr %a1 - %t579 = load %S.ast.Node, ptr %a534 - %t580 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t581 = load { ptr, i64, i64 }, ptr %t580 - store { ptr, i64, i64 } { ptr @.str.2243, i64 34, i64 0 }, ptr %a583 - store { ptr, i64, i64 } %t581, ptr %a584 - call void @finch_str_concat(ptr %a582, ptr %a583, ptr %a584) - %t585 = load { ptr, i64, i64 }, ptr %a582 - store { ptr, i64, i64 } %t585, ptr %a587 - store { ptr, i64, i64 } { ptr @.str.2244, i64 53, i64 0 }, ptr %a588 - call void @finch_str_concat(ptr %a586, ptr %a587, ptr %a588) - store { ptr, i64, i64 } %t585, ptr %a589 - call void @finch_str_drop(ptr %a589) - %t590 = load { ptr, i64, i64 }, ptr %a586 - call void @finch.gen.fail(ptr %t578, %S.ast.Node %t579, { ptr, i64, i64 } %t590) - store { ptr, i64, i64 } %t590, ptr %a591 - call void @finch_str_drop(ptr %a591) - br label %endif3592 -endif3592: - %t592 = load ptr, ptr %a1 - %t593 = icmp eq ptr %t592, null - br i1 %t593, label %panic3593, label %ok3594 -panic3593: - call void @finch_panic(ptr @.str.2245, i64 1503, ptr @.str.2246) - unreachable -ok3594: - %t594 = getelementptr inbounds %S.gen.Gen, ptr %t592, i32 0, i32 17 - %t595 = getelementptr inbounds { ptr, i64, i64 }, ptr %t594, i32 0, i32 1 - %t596 = load ptr, ptr %a1 - %t597 = icmp eq ptr %t596, null - br i1 %t597, label %panic3595, label %ok3596 -panic3595: - call void @finch_panic(ptr @.str.2247, i64 1503, ptr @.str.2248) - unreachable -ok3596: - %t598 = getelementptr inbounds %S.gen.Gen, ptr %t596, i32 0, i32 14 - %t599 = load { ptr, i64, i64 }, ptr %t598 - store { ptr, i64, i64 } %t599, ptr %a600 - call void @finch_str_copy(ptr %a601, ptr %a600) - %t602 = load { ptr, i64, i64 }, ptr %a601 - %t603 = insertvalue %S.gen.Template zeroinitializer, { ptr, i64, i64 } %t602, 0 - %t604 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t605 = load { ptr, i64, i64 }, ptr %t604 - store { ptr, i64, i64 } %t605, ptr %a606 - call void @finch_str_copy(ptr %a607, ptr %a606) - %t608 = load { ptr, i64, i64 }, ptr %a607 - %t609 = insertvalue %S.gen.Template %t603, { ptr, i64, i64 } %t608, 1 - %t610 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t611 = load { ptr, i64, i64 }, ptr %t610 - store { ptr, i64, i64 } %t611, ptr %a612 - call void @finch_str_copy(ptr %a613, ptr %a612) - %t614 = load { ptr, i64, i64 }, ptr %a613 - %t615 = insertvalue %S.gen.Template %t609, { ptr, i64, i64 } %t614, 2 - %t616 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 3 - %t617 = load { ptr, i64, i64 }, ptr %t616 - store { ptr, i64, i64 } %t617, ptr %a618 - call void @finch.copy.arr_str(ptr %a619, ptr %a618) - %t620 = load { ptr, i64, i64 }, ptr %a619 - %t621 = insertvalue %S.gen.Template %t615, { ptr, i64, i64 } %t620, 3 - %t622 = load i64, ptr %a477 - %t623 = insertvalue %S.gen.Template %t621, i64 %t622, 4 - %t624 = load i64, ptr %a511 - %t625 = insertvalue %S.gen.Template %t623, i64 %t624, 5 - %t626 = load i64, ptr %t595 - %t627 = add i64 %t626, 1 - call void @finch_arr_reserve(ptr %t594, i64 %t627, i64 ptrtoint (ptr getelementptr (%S.gen.Template, ptr null, i32 1) to i64)) - %t628 = load ptr, ptr %t594 - %t629 = getelementptr inbounds %S.gen.Template, ptr %t628, i64 %t626 - store %S.gen.Template %t625, ptr %t629 - store i64 %t627, ptr %t595 - call void @finch.drop.S_ast_Node(ptr %a534) - br label %for.step3568 -endif3578: - %t630 = load ptr, ptr %a1 - %t631 = icmp eq ptr %t630, null - br i1 %t631, label %panic3597, label %ok3598 -panic3597: - call void @finch_panic(ptr @.str.2249, i64 1506, ptr @.str.2250) - unreachable -ok3598: - %t632 = getelementptr inbounds %S.gen.Gen, ptr %t630, i32 0, i32 14 - %t633 = load { ptr, i64, i64 }, ptr %t632 - store { ptr, i64, i64 } %t633, ptr %a634 - call void @finch_str_copy(ptr %a635, ptr %a634) - %t636 = load { ptr, i64, i64 }, ptr %a635 - store { ptr, i64, i64 } %t636, ptr %a637 - store i1 false, ptr %a638 - %t639 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t640 = getelementptr inbounds { ptr, i64, i64 }, ptr %t639, i32 0, i32 1 - %t641 = load i64, ptr %t640 - %t642 = icmp sgt i64 %t641, 0 - br label %logic.from3599 -logic.from3599: - br i1 %t642, label %logic.rhs3600, label %logic.end3601 -logic.rhs3600: - %t643 = load ptr, ptr %a1 - %t644 = load ptr, ptr %a1 - %t645 = icmp eq ptr %t644, null - br i1 %t645, label %panic3602, label %ok3603 -panic3602: - call void @finch_panic(ptr @.str.2251, i64 1508, ptr @.str.2252) - unreachable -ok3603: - %t646 = getelementptr inbounds %S.gen.Gen, ptr %t644, i32 0, i32 14 - %t647 = load { ptr, i64, i64 }, ptr %t646 - %t648 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t649 = load { ptr, i64, i64 }, ptr %t648 - %t650 = call i64 @finch.gen.findEnum(ptr %t643, { ptr, i64, i64 } %t647, { ptr, i64, i64 } %t649) - %t651 = icmp sge i64 %t650, 0 - br label %logic.rend3604 -logic.rend3604: - br label %logic.end3601 -logic.end3601: - %t652 = phi i1 [ false, %logic.from3599 ], [ %t651, %logic.rend3604 ] - br i1 %t652, label %then3605, label %else3606 -then3605: - store i1 true, ptr %a638 - %t653 = load ptr, ptr %a1 - %t654 = load { ptr, i64, i64 }, ptr %a637 - %t655 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t656 = load { ptr, i64, i64 }, ptr %t655 - %t657 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t658 = load { ptr, i64, i64 }, ptr %t657 - %t659 = call i64 @finch.gen.findMethod(ptr %t653, { ptr, i64, i64 } %t654, { ptr, i64, i64 } %t656, { ptr, i64, i64 } %t658) - %t660 = icmp sge i64 %t659, 0 - br i1 %t660, label %then3608, label %endif3610 + %t228 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 6 + %t229 = load i1, ptr %t228 + br i1 %t229, label %then3608, label %endif3610 then3608: - %t661 = load ptr, ptr %a1 - %t662 = load %S.ast.Node, ptr %a534 - %t663 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t664 = load { ptr, i64, i64 }, ptr %t663 - store { ptr, i64, i64 } { ptr @.str.2253, i64 11, i64 0 }, ptr %a666 - store { ptr, i64, i64 } %t664, ptr %a667 - call void @finch_str_concat(ptr %a665, ptr %a666, ptr %a667) - %t668 = load { ptr, i64, i64 }, ptr %a665 - store { ptr, i64, i64 } %t668, ptr %a670 - store { ptr, i64, i64 } { ptr @.str.2254, i64 1, i64 0 }, ptr %a671 - call void @finch_str_concat(ptr %a669, ptr %a670, ptr %a671) - store { ptr, i64, i64 } %t668, ptr %a672 - call void @finch_str_drop(ptr %a672) - %t673 = load { ptr, i64, i64 }, ptr %a669 - %t674 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t675 = load { ptr, i64, i64 }, ptr %t674 - store { ptr, i64, i64 } %t673, ptr %a677 - store { ptr, i64, i64 } %t675, ptr %a678 - call void @finch_str_concat(ptr %a676, ptr %a677, ptr %a678) - store { ptr, i64, i64 } %t673, ptr %a679 - call void @finch_str_drop(ptr %a679) - %t680 = load { ptr, i64, i64 }, ptr %a676 - store { ptr, i64, i64 } %t680, ptr %a682 - store { ptr, i64, i64 } { ptr @.str.2255, i64 17, i64 0 }, ptr %a683 - call void @finch_str_concat(ptr %a681, ptr %a682, ptr %a683) - store { ptr, i64, i64 } %t680, ptr %a684 - call void @finch_str_drop(ptr %a684) - %t685 = load { ptr, i64, i64 }, ptr %a681 - call void @finch.gen.fail(ptr %t661, %S.ast.Node %t662, { ptr, i64, i64 } %t685) - store { ptr, i64, i64 } %t685, ptr %a686 - call void @finch_str_drop(ptr %a686) - br label %endif3610 + %t230 = load ptr, ptr %a1 + %t231 = load ptr, ptr %a1 + %t232 = icmp eq ptr %t231, null + br i1 %t232, label %panic3611, label %ok3612 +panic3611: + call void @finch_panic(ptr @.str.2267, i64 1527, ptr @.str.2268) + unreachable +ok3612: + %t233 = getelementptr inbounds %S.gen.Gen, ptr %t231, i32 0, i32 14 + %t234 = load { ptr, i64, i64 }, ptr %t233 + %t235 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 + %t236 = load { ptr, i64, i64 }, ptr %t235 + %t237 = call i64 @finch.gen.findEnum(ptr %t230, { ptr, i64, i64 } %t234, { ptr, i64, i64 } %t236) + %t238 = icmp sge i64 %t237, 0 + br label %logic.from3613 +logic.from3613: + br i1 %t238, label %logic.end3615, label %logic.rhs3614 +logic.rhs3614: + %t239 = load ptr, ptr %a1 + %t240 = load ptr, ptr %a1 + %t241 = icmp eq ptr %t240, null + br i1 %t241, label %panic3616, label %ok3617 +panic3616: + call void @finch_panic(ptr @.str.2269, i64 1527, ptr @.str.2270) + unreachable +ok3617: + %t242 = getelementptr inbounds %S.gen.Gen, ptr %t240, i32 0, i32 14 + %t243 = load { ptr, i64, i64 }, ptr %t242 + %t244 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 + %t245 = load { ptr, i64, i64 }, ptr %t244 + %t246 = call i64 @finch.gen.findSum(ptr %t239, { ptr, i64, i64 } %t243, { ptr, i64, i64 } %t245) + %t247 = icmp sge i64 %t246, 0 + br label %logic.rend3618 +logic.rend3618: + br label %logic.end3615 +logic.end3615: + %t248 = phi i1 [ true, %logic.from3613 ], [ %t247, %logic.rend3618 ] + br i1 %t248, label %then3619, label %endif3621 +then3619: + %t249 = load ptr, ptr %a1 + %t250 = load %S.ast.Node, ptr %a227 + %t251 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 + %t252 = load { ptr, i64, i64 }, ptr %t251 + store { ptr, i64, i64 } { ptr @.str.2271, i64 1, i64 0 }, ptr %a254 + store { ptr, i64, i64 } %t252, ptr %a255 + call void @finch_str_concat(ptr %a253, ptr %a254, ptr %a255) + %t256 = load { ptr, i64, i64 }, ptr %a253 + store { ptr, i64, i64 } %t256, ptr %a258 + store { ptr, i64, i64 } { ptr @.str.2272, i64 18, i64 0 }, ptr %a259 + call void @finch_str_concat(ptr %a257, ptr %a258, ptr %a259) + store { ptr, i64, i64 } %t256, ptr %a260 + call void @finch_str_drop(ptr %a260) + %t261 = load { ptr, i64, i64 }, ptr %a257 + call void @finch.gen.fail(ptr %t249, %S.ast.Node %t250, { ptr, i64, i64 } %t261) + store { ptr, i64, i64 } %t261, ptr %a262 + call void @finch_str_drop(ptr %a262) + br label %endif3621 +endif3621: + %t263 = load ptr, ptr %a1 + %t264 = icmp eq ptr %t263, null + br i1 %t264, label %panic3622, label %ok3623 +panic3622: + call void @finch_panic(ptr @.str.2273, i64 1530, ptr @.str.2274) + unreachable +ok3623: + %t265 = getelementptr inbounds %S.gen.Gen, ptr %t263, i32 0, i32 14 + %t266 = load { ptr, i64, i64 }, ptr %t265 + store { ptr, i64, i64 } %t266, ptr %a267 + call void @finch_str_copy(ptr %a268, ptr %a267) + %t269 = load { ptr, i64, i64 }, ptr %a268 + %t270 = insertvalue %S.gen.SumDef zeroinitializer, { ptr, i64, i64 } %t269, 0 + %t271 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 + %t272 = load { ptr, i64, i64 }, ptr %t271 + store { ptr, i64, i64 } %t272, ptr %a273 + call void @finch_str_copy(ptr %a274, ptr %a273) + %t275 = load { ptr, i64, i64 }, ptr %a274 + %t276 = insertvalue %S.gen.SumDef %t270, { ptr, i64, i64 } %t275, 1 + store %S.gen.SumDef %t276, ptr %a277 + store i64 1, ptr %a278 + %t279 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 9 + store i64 0, ptr %a280 + br label %each.cond3624 +each.cond3624: + %t281 = getelementptr inbounds { ptr, i64, i64 }, ptr %t279, i32 0, i32 1 + %t282 = load i64, ptr %t281 + %t283 = load i64, ptr %a280 + %t284 = icmp slt i64 %t283, %t282 + br i1 %t284, label %each.body3625, label %each.end3627 +each.body3625: + %t285 = load ptr, ptr %t279 + %t286 = getelementptr inbounds %S.ast.Node, ptr %t285, i64 %t283 + %t287 = load %S.ast.Node, ptr %t286 + store %S.ast.Node %t287, ptr %a288 + %t289 = getelementptr inbounds %S.gen.SumDef, ptr %a277, i32 0, i32 2 + %t290 = getelementptr inbounds { ptr, i64, i64 }, ptr %t289, i32 0, i32 1 + %t291 = getelementptr inbounds %S.ast.Node, ptr %a288, i32 0, i32 1 + %t292 = load { ptr, i64, i64 }, ptr %t291 + store i64 -1, ptr %a293 + %t294 = load i64, ptr %t290 + %t295 = load ptr, ptr %t289 + store i64 0, ptr %a296 + br label %find.cond3628 +find.cond3628: + %t297 = load i64, ptr %a296 + %t298 = icmp slt i64 %t297, %t294 + br i1 %t298, label %find.body3629, label %find.end3632 +find.body3629: + %t299 = getelementptr inbounds { ptr, i64, i64 }, ptr %t295, i64 %t297 + %t300 = load { ptr, i64, i64 }, ptr %t299 + store { ptr, i64, i64 } %t300, ptr %a301 + store { ptr, i64, i64 } %t292, ptr %a302 + %t303 = call i32 @finch_str_eq(ptr %a301, ptr %a302) + %t304 = icmp ne i32 %t303, 0 + br i1 %t304, label %find.hit3630, label %find.next3631 +find.hit3630: + store i64 %t297, ptr %a293 + br label %find.end3632 +find.next3631: + %t305 = add i64 %t297, 1 + store i64 %t305, ptr %a296 + br label %find.cond3628 +find.end3632: + %t306 = load i64, ptr %a293 + %t307 = icmp sge i64 %t306, 0 + br i1 %t307, label %then3633, label %endif3635 +then3633: + %t308 = load ptr, ptr %a1 + %t309 = load %S.ast.Node, ptr %a288 + %t310 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 + %t311 = load { ptr, i64, i64 }, ptr %t310 + store { ptr, i64, i64 } { ptr @.str.2275, i64 9, i64 0 }, ptr %a313 + store { ptr, i64, i64 } %t311, ptr %a314 + call void @finch_str_concat(ptr %a312, ptr %a313, ptr %a314) + %t315 = load { ptr, i64, i64 }, ptr %a312 + store { ptr, i64, i64 } %t315, ptr %a317 + store { ptr, i64, i64 } { ptr @.str.2276, i64 17, i64 0 }, ptr %a318 + call void @finch_str_concat(ptr %a316, ptr %a317, ptr %a318) + store { ptr, i64, i64 } %t315, ptr %a319 + call void @finch_str_drop(ptr %a319) + %t320 = load { ptr, i64, i64 }, ptr %a316 + %t321 = getelementptr inbounds %S.ast.Node, ptr %a288, i32 0, i32 1 + %t322 = load { ptr, i64, i64 }, ptr %t321 + store { ptr, i64, i64 } %t320, ptr %a324 + store { ptr, i64, i64 } %t322, ptr %a325 + call void @finch_str_concat(ptr %a323, ptr %a324, ptr %a325) + store { ptr, i64, i64 } %t320, ptr %a326 + call void @finch_str_drop(ptr %a326) + %t327 = load { ptr, i64, i64 }, ptr %a323 + store { ptr, i64, i64 } %t327, ptr %a329 + store { ptr, i64, i64 } { ptr @.str.2277, i64 6, i64 0 }, ptr %a330 + call void @finch_str_concat(ptr %a328, ptr %a329, ptr %a330) + store { ptr, i64, i64 } %t327, ptr %a331 + call void @finch_str_drop(ptr %a331) + %t332 = load { ptr, i64, i64 }, ptr %a328 + call void @finch.gen.fail(ptr %t308, %S.ast.Node %t309, { ptr, i64, i64 } %t332) + store { ptr, i64, i64 } %t332, ptr %a333 + call void @finch_str_drop(ptr %a333) + br label %endif3635 +endif3635: + %t334 = getelementptr inbounds %S.gen.SumDef, ptr %a277, i32 0, i32 2 + %t335 = getelementptr inbounds { ptr, i64, i64 }, ptr %t334, i32 0, i32 1 + %t336 = getelementptr inbounds %S.ast.Node, ptr %a288, i32 0, i32 1 + %t337 = load { ptr, i64, i64 }, ptr %t336 + store { ptr, i64, i64 } %t337, ptr %a338 + call void @finch_str_copy(ptr %a339, ptr %a338) + %t340 = load { ptr, i64, i64 }, ptr %a339 + %t341 = load i64, ptr %t335 + %t342 = add i64 %t341, 1 + call void @finch_arr_reserve(ptr %t334, i64 %t342, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t343 = load ptr, ptr %t334 + %t344 = getelementptr inbounds { ptr, i64, i64 }, ptr %t343, i64 %t341 + store { ptr, i64, i64 } %t340, ptr %t344 + store i64 %t342, ptr %t335 + %t345 = getelementptr inbounds %S.gen.SumDef, ptr %a277, i32 0, i32 3 + %t346 = getelementptr inbounds { ptr, i64, i64 }, ptr %t345, i32 0, i32 1 + %t347 = getelementptr inbounds %S.ast.Node, ptr %a288, i32 0, i32 9 + %t348 = getelementptr inbounds { ptr, i64, i64 }, ptr %t347, i32 0, i32 1 + %t349 = load i64, ptr %t348 + %t350 = load i64, ptr %t346 + %t351 = add i64 %t350, 1 + call void @finch_arr_reserve(ptr %t345, i64 %t351, i64 ptrtoint (ptr getelementptr (i64, ptr null, i32 1) to i64)) + %t352 = load ptr, ptr %t345 + %t353 = getelementptr inbounds i64, ptr %t352, i64 %t350 + store i64 %t349, ptr %t353 + store i64 %t351, ptr %t346 + %t354 = getelementptr inbounds %S.gen.SumDef, ptr %a277, i32 0, i32 4 + %t355 = getelementptr inbounds { ptr, i64, i64 }, ptr %t354, i32 0, i32 1 + %t356 = load i64, ptr %a278 + %t357 = load i64, ptr %t355 + %t358 = add i64 %t357, 1 + call void @finch_arr_reserve(ptr %t354, i64 %t358, i64 ptrtoint (ptr getelementptr (i64, ptr null, i32 1) to i64)) + %t359 = load ptr, ptr %t354 + %t360 = getelementptr inbounds i64, ptr %t359, i64 %t357 + store i64 %t356, ptr %t360 + store i64 %t358, ptr %t355 + %t361 = getelementptr inbounds %S.ast.Node, ptr %a288, i32 0, i32 9 + %t362 = getelementptr inbounds { ptr, i64, i64 }, ptr %t361, i32 0, i32 1 + %t363 = load i64, ptr %t362 + %t364 = load i64, ptr %a278 + %t365 = add i64 %t364, %t363 + store i64 %t365, ptr %a278 + br label %each.step3626 +each.step3626: + %t366 = load i64, ptr %a280 + %t367 = add i64 %t366, 1 + store i64 %t367, ptr %a280 + br label %each.cond3624 +each.end3627: + %t368 = load ptr, ptr %a1 + %t369 = icmp eq ptr %t368, null + br i1 %t369, label %panic3636, label %ok3637 +panic3636: + call void @finch_panic(ptr @.str.2278, i64 1541, ptr @.str.2279) + unreachable +ok3637: + %t370 = getelementptr inbounds %S.gen.Gen, ptr %t368, i32 0, i32 22 + %t371 = getelementptr inbounds { ptr, i64, i64 }, ptr %t370, i32 0, i32 1 + %t372 = load %S.gen.SumDef, ptr %a277 + store %S.gen.SumDef %t372, ptr %a373 + call void @finch.copy.S_gen_SumDef(ptr %a374, ptr %a373) + %t375 = load %S.gen.SumDef, ptr %a374 + %t376 = load i64, ptr %t371 + %t377 = add i64 %t376, 1 + call void @finch_arr_reserve(ptr %t370, i64 %t377, i64 ptrtoint (ptr getelementptr (%S.gen.SumDef, ptr null, i32 1) to i64)) + %t378 = load ptr, ptr %t370 + %t379 = getelementptr inbounds %S.gen.SumDef, ptr %t378, i64 %t376 + store %S.gen.SumDef %t375, ptr %t379 + store i64 %t377, ptr %t371 + call void @finch.drop.S_gen_SumDef(ptr %a277) + call void @finch.drop.S_ast_Node(ptr %a227) + br label %for.step3600 endif3610: - br label %endif3607 -else3606: - %t687 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 + %t380 = load ptr, ptr %a1 + %t381 = load ptr, ptr %a1 + %t382 = icmp eq ptr %t381, null + br i1 %t382, label %panic3638, label %ok3639 +panic3638: + call void @finch_panic(ptr @.str.2280, i64 1544, ptr @.str.2281) + unreachable +ok3639: + %t383 = getelementptr inbounds %S.gen.Gen, ptr %t381, i32 0, i32 14 + %t384 = load { ptr, i64, i64 }, ptr %t383 + %t385 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 + %t386 = load { ptr, i64, i64 }, ptr %t385 + %t387 = call i64 @finch.gen.findEnum(ptr %t380, { ptr, i64, i64 } %t384, { ptr, i64, i64 } %t386) + %t388 = icmp sge i64 %t387, 0 + br label %logic.from3640 +logic.from3640: + br i1 %t388, label %logic.end3642, label %logic.rhs3641 +logic.rhs3641: + %t389 = load ptr, ptr %a1 + %t390 = load ptr, ptr %a1 + %t391 = icmp eq ptr %t390, null + br i1 %t391, label %panic3643, label %ok3644 +panic3643: + call void @finch_panic(ptr @.str.2282, i64 1544, ptr @.str.2283) + unreachable +ok3644: + %t392 = getelementptr inbounds %S.gen.Gen, ptr %t390, i32 0, i32 14 + %t393 = load { ptr, i64, i64 }, ptr %t392 + %t394 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 + %t395 = load { ptr, i64, i64 }, ptr %t394 + %t396 = call i64 @finch.gen.findStruct(ptr %t389, { ptr, i64, i64 } %t393, { ptr, i64, i64 } %t395) + %t397 = icmp sge i64 %t396, 0 + br label %logic.rend3645 +logic.rend3645: + br label %logic.end3642 +logic.end3642: + %t398 = phi i1 [ true, %logic.from3640 ], [ %t397, %logic.rend3645 ] + br i1 %t398, label %then3646, label %endif3648 +then3646: + %t399 = load ptr, ptr %a1 + %t400 = load %S.ast.Node, ptr %a227 + %t401 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 + %t402 = load { ptr, i64, i64 }, ptr %t401 + store { ptr, i64, i64 } { ptr @.str.2284, i64 1, i64 0 }, ptr %a404 + store { ptr, i64, i64 } %t402, ptr %a405 + call void @finch_str_concat(ptr %a403, ptr %a404, ptr %a405) + %t406 = load { ptr, i64, i64 }, ptr %a403 + store { ptr, i64, i64 } %t406, ptr %a408 + store { ptr, i64, i64 } { ptr @.str.2285, i64 18, i64 0 }, ptr %a409 + call void @finch_str_concat(ptr %a407, ptr %a408, ptr %a409) + store { ptr, i64, i64 } %t406, ptr %a410 + call void @finch_str_drop(ptr %a410) + %t411 = load { ptr, i64, i64 }, ptr %a407 + call void @finch.gen.fail(ptr %t399, %S.ast.Node %t400, { ptr, i64, i64 } %t411) + store { ptr, i64, i64 } %t411, ptr %a412 + call void @finch_str_drop(ptr %a412) + br label %endif3648 +endif3648: + %t413 = load ptr, ptr %a1 + %t414 = icmp eq ptr %t413, null + br i1 %t414, label %panic3649, label %ok3650 +panic3649: + call void @finch_panic(ptr @.str.2286, i64 1547, ptr @.str.2287) + unreachable +ok3650: + %t415 = getelementptr inbounds %S.gen.Gen, ptr %t413, i32 0, i32 14 + %t416 = load { ptr, i64, i64 }, ptr %t415 + store { ptr, i64, i64 } %t416, ptr %a417 + call void @finch_str_copy(ptr %a418, ptr %a417) + %t419 = load { ptr, i64, i64 }, ptr %a418 + %t420 = insertvalue %S.gen.EnumDef zeroinitializer, { ptr, i64, i64 } %t419, 0 + %t421 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 + %t422 = load { ptr, i64, i64 }, ptr %t421 + store { ptr, i64, i64 } %t422, ptr %a423 + call void @finch_str_copy(ptr %a424, ptr %a423) + %t425 = load { ptr, i64, i64 }, ptr %a424 + %t426 = insertvalue %S.gen.EnumDef %t420, { ptr, i64, i64 } %t425, 1 + store %S.gen.EnumDef %t426, ptr %a427 + store i64 0, ptr %a428 + %t429 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 9 + store i64 0, ptr %a430 + br label %each.cond3651 +each.cond3651: + %t431 = getelementptr inbounds { ptr, i64, i64 }, ptr %t429, i32 0, i32 1 + %t432 = load i64, ptr %t431 + %t433 = load i64, ptr %a430 + %t434 = icmp slt i64 %t433, %t432 + br i1 %t434, label %each.body3652, label %each.end3654 +each.body3652: + %t435 = load ptr, ptr %t429 + %t436 = getelementptr inbounds %S.ast.Node, ptr %t435, i64 %t433 + %t437 = load %S.ast.Node, ptr %t436 + store %S.ast.Node %t437, ptr %a438 + %t439 = getelementptr inbounds %S.ast.Node, ptr %a438, i32 0, i32 4 + %t440 = getelementptr inbounds { ptr, i64, i64 }, ptr %t439, i32 0, i32 1 + %t441 = load i64, ptr %t440 + %t442 = icmp sgt i64 %t441, 0 + br i1 %t442, label %then3655, label %endif3657 +then3655: + %t443 = getelementptr inbounds %S.ast.Node, ptr %a438, i32 0, i32 4 + %t444 = load { ptr, i64, i64 }, ptr %t443 + store { ptr, i64, i64 } %t444, ptr %a445 + %t446 = call i64 @finch_str_to_int(ptr %a445, ptr @.str.2288, i64 1551) + store i64 %t446, ptr %a428 + br label %endif3657 +endif3657: + %t447 = getelementptr inbounds %S.gen.EnumDef, ptr %a427, i32 0, i32 2 + %t448 = getelementptr inbounds { ptr, i64, i64 }, ptr %t447, i32 0, i32 1 + %t449 = getelementptr inbounds %S.ast.Node, ptr %a438, i32 0, i32 1 + %t450 = load { ptr, i64, i64 }, ptr %t449 + store i64 -1, ptr %a451 + %t452 = load i64, ptr %t448 + %t453 = load ptr, ptr %t447 + store i64 0, ptr %a454 + br label %find.cond3658 +find.cond3658: + %t455 = load i64, ptr %a454 + %t456 = icmp slt i64 %t455, %t452 + br i1 %t456, label %find.body3659, label %find.end3662 +find.body3659: + %t457 = getelementptr inbounds { ptr, i64, i64 }, ptr %t453, i64 %t455 + %t458 = load { ptr, i64, i64 }, ptr %t457 + store { ptr, i64, i64 } %t458, ptr %a459 + store { ptr, i64, i64 } %t450, ptr %a460 + %t461 = call i32 @finch_str_eq(ptr %a459, ptr %a460) + %t462 = icmp ne i32 %t461, 0 + br i1 %t462, label %find.hit3660, label %find.next3661 +find.hit3660: + store i64 %t455, ptr %a451 + br label %find.end3662 +find.next3661: + %t463 = add i64 %t455, 1 + store i64 %t463, ptr %a454 + br label %find.cond3658 +find.end3662: + %t464 = load i64, ptr %a451 + %t465 = icmp sge i64 %t464, 0 + br i1 %t465, label %then3663, label %endif3665 +then3663: + %t466 = load ptr, ptr %a1 + %t467 = load %S.ast.Node, ptr %a438 + %t468 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 + %t469 = load { ptr, i64, i64 }, ptr %t468 + store { ptr, i64, i64 } { ptr @.str.2289, i64 9, i64 0 }, ptr %a471 + store { ptr, i64, i64 } %t469, ptr %a472 + call void @finch_str_concat(ptr %a470, ptr %a471, ptr %a472) + %t473 = load { ptr, i64, i64 }, ptr %a470 + store { ptr, i64, i64 } %t473, ptr %a475 + store { ptr, i64, i64 } { ptr @.str.2290, i64 17, i64 0 }, ptr %a476 + call void @finch_str_concat(ptr %a474, ptr %a475, ptr %a476) + store { ptr, i64, i64 } %t473, ptr %a477 + call void @finch_str_drop(ptr %a477) + %t478 = load { ptr, i64, i64 }, ptr %a474 + %t479 = getelementptr inbounds %S.ast.Node, ptr %a438, i32 0, i32 1 + %t480 = load { ptr, i64, i64 }, ptr %t479 + store { ptr, i64, i64 } %t478, ptr %a482 + store { ptr, i64, i64 } %t480, ptr %a483 + call void @finch_str_concat(ptr %a481, ptr %a482, ptr %a483) + store { ptr, i64, i64 } %t478, ptr %a484 + call void @finch_str_drop(ptr %a484) + %t485 = load { ptr, i64, i64 }, ptr %a481 + store { ptr, i64, i64 } %t485, ptr %a487 + store { ptr, i64, i64 } { ptr @.str.2291, i64 6, i64 0 }, ptr %a488 + call void @finch_str_concat(ptr %a486, ptr %a487, ptr %a488) + store { ptr, i64, i64 } %t485, ptr %a489 + call void @finch_str_drop(ptr %a489) + %t490 = load { ptr, i64, i64 }, ptr %a486 + call void @finch.gen.fail(ptr %t466, %S.ast.Node %t467, { ptr, i64, i64 } %t490) + store { ptr, i64, i64 } %t490, ptr %a491 + call void @finch_str_drop(ptr %a491) + br label %endif3665 +endif3665: + %t492 = getelementptr inbounds %S.gen.EnumDef, ptr %a427, i32 0, i32 3 + %t493 = getelementptr inbounds { ptr, i64, i64 }, ptr %t492, i32 0, i32 1 + %t494 = load i64, ptr %a428 + store i64 -1, ptr %a495 + %t496 = load i64, ptr %t493 + %t497 = load ptr, ptr %t492 + store i64 0, ptr %a498 + br label %find.cond3666 +find.cond3666: + %t499 = load i64, ptr %a498 + %t500 = icmp slt i64 %t499, %t496 + br i1 %t500, label %find.body3667, label %find.end3670 +find.body3667: + %t501 = getelementptr inbounds i64, ptr %t497, i64 %t499 + %t502 = load i64, ptr %t501 + %t503 = icmp eq i64 %t502, %t494 + br i1 %t503, label %find.hit3668, label %find.next3669 +find.hit3668: + store i64 %t499, ptr %a495 + br label %find.end3670 +find.next3669: + %t504 = add i64 %t499, 1 + store i64 %t504, ptr %a498 + br label %find.cond3666 +find.end3670: + %t505 = load i64, ptr %a495 + %t506 = icmp sge i64 %t505, 0 + br i1 %t506, label %then3671, label %endif3673 +then3671: + %t507 = load ptr, ptr %a1 + %t508 = load %S.ast.Node, ptr %a438 + %t509 = getelementptr inbounds %S.ast.Node, ptr %a227, i32 0, i32 1 + %t510 = load { ptr, i64, i64 }, ptr %t509 + store { ptr, i64, i64 } { ptr @.str.2292, i64 16, i64 0 }, ptr %a512 + store { ptr, i64, i64 } %t510, ptr %a513 + call void @finch_str_concat(ptr %a511, ptr %a512, ptr %a513) + %t514 = load { ptr, i64, i64 }, ptr %a511 + store { ptr, i64, i64 } %t514, ptr %a516 + store { ptr, i64, i64 } { ptr @.str.2293, i64 17, i64 0 }, ptr %a517 + call void @finch_str_concat(ptr %a515, ptr %a516, ptr %a517) + store { ptr, i64, i64 } %t514, ptr %a518 + call void @finch_str_drop(ptr %a518) + %t519 = load { ptr, i64, i64 }, ptr %a515 + %t520 = load i64, ptr %a428 + call void @finch_str_from_int(ptr %a521, i64 %t520) + %t522 = load { ptr, i64, i64 }, ptr %a521 + store { ptr, i64, i64 } %t519, ptr %a524 + store { ptr, i64, i64 } %t522, ptr %a525 + call void @finch_str_concat(ptr %a523, ptr %a524, ptr %a525) + store { ptr, i64, i64 } %t519, ptr %a526 + call void @finch_str_drop(ptr %a526) + store { ptr, i64, i64 } %t522, ptr %a527 + call void @finch_str_drop(ptr %a527) + %t528 = load { ptr, i64, i64 }, ptr %a523 + store { ptr, i64, i64 } %t528, ptr %a530 + store { ptr, i64, i64 } { ptr @.str.2294, i64 20, i64 0 }, ptr %a531 + call void @finch_str_concat(ptr %a529, ptr %a530, ptr %a531) + store { ptr, i64, i64 } %t528, ptr %a532 + call void @finch_str_drop(ptr %a532) + %t533 = load { ptr, i64, i64 }, ptr %a529 + call void @finch.gen.fail(ptr %t507, %S.ast.Node %t508, { ptr, i64, i64 } %t533) + store { ptr, i64, i64 } %t533, ptr %a534 + call void @finch_str_drop(ptr %a534) + br label %endif3673 +endif3673: + %t535 = getelementptr inbounds %S.gen.EnumDef, ptr %a427, i32 0, i32 2 + %t536 = getelementptr inbounds { ptr, i64, i64 }, ptr %t535, i32 0, i32 1 + %t537 = getelementptr inbounds %S.ast.Node, ptr %a438, i32 0, i32 1 + %t538 = load { ptr, i64, i64 }, ptr %t537 + store { ptr, i64, i64 } %t538, ptr %a539 + call void @finch_str_copy(ptr %a540, ptr %a539) + %t541 = load { ptr, i64, i64 }, ptr %a540 + %t542 = load i64, ptr %t536 + %t543 = add i64 %t542, 1 + call void @finch_arr_reserve(ptr %t535, i64 %t543, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t544 = load ptr, ptr %t535 + %t545 = getelementptr inbounds { ptr, i64, i64 }, ptr %t544, i64 %t542 + store { ptr, i64, i64 } %t541, ptr %t545 + store i64 %t543, ptr %t536 + %t546 = getelementptr inbounds %S.gen.EnumDef, ptr %a427, i32 0, i32 3 + %t547 = getelementptr inbounds { ptr, i64, i64 }, ptr %t546, i32 0, i32 1 + %t548 = load i64, ptr %a428 + %t549 = load i64, ptr %t547 + %t550 = add i64 %t549, 1 + call void @finch_arr_reserve(ptr %t546, i64 %t550, i64 ptrtoint (ptr getelementptr (i64, ptr null, i32 1) to i64)) + %t551 = load ptr, ptr %t546 + %t552 = getelementptr inbounds i64, ptr %t551, i64 %t549 + store i64 %t548, ptr %t552 + store i64 %t550, ptr %t547 + %t553 = load i64, ptr %a428 + %t554 = add i64 %t553, 1 + store i64 %t554, ptr %a428 + br label %each.step3653 +each.step3653: + %t555 = load i64, ptr %a430 + %t556 = add i64 %t555, 1 + store i64 %t556, ptr %a430 + br label %each.cond3651 +each.end3654: + %t557 = load ptr, ptr %a1 + %t558 = icmp eq ptr %t557, null + br i1 %t558, label %panic3674, label %ok3675 +panic3674: + call void @finch_panic(ptr @.str.2295, i64 1563, ptr @.str.2296) + unreachable +ok3675: + %t559 = getelementptr inbounds %S.gen.Gen, ptr %t557, i32 0, i32 21 + %t560 = getelementptr inbounds { ptr, i64, i64 }, ptr %t559, i32 0, i32 1 + %t561 = load %S.gen.EnumDef, ptr %a427 + store %S.gen.EnumDef %t561, ptr %a562 + call void @finch.copy.S_gen_EnumDef(ptr %a563, ptr %a562) + %t564 = load %S.gen.EnumDef, ptr %a563 + %t565 = load i64, ptr %t560 + %t566 = add i64 %t565, 1 + call void @finch_arr_reserve(ptr %t559, i64 %t566, i64 ptrtoint (ptr getelementptr (%S.gen.EnumDef, ptr null, i32 1) to i64)) + %t567 = load ptr, ptr %t559 + %t568 = getelementptr inbounds %S.gen.EnumDef, ptr %t567, i64 %t565 + store %S.gen.EnumDef %t564, ptr %t568 + store i64 %t566, ptr %t560 + call void @finch.drop.S_gen_EnumDef(ptr %a427) + call void @finch.drop.S_ast_Node(ptr %a227) + br label %for.step3600 +for.step3600: + %t569 = load i64, ptr %a204 + %t570 = add i64 %t569, 1 + store i64 %t570, ptr %a204 + br label %for.cond3598 +for.end3601: + br label %for.step3586 +for.step3586: + %t571 = load i64, ptr %a170 + %t572 = add i64 %t571, 1 + store i64 %t572, ptr %a170 + br label %for.cond3584 +for.end3587: + %t573 = load ptr, ptr %a1 + %t574 = icmp eq ptr %t573, null + br i1 %t574, label %panic3676, label %ok3677 +panic3676: + call void @finch_panic(ptr @.str.2297, i64 1566, ptr @.str.2298) + unreachable +ok3677: + %t575 = getelementptr inbounds %S.gen.Gen, ptr %t573, i32 0, i32 26 + %t576 = getelementptr inbounds %S.cimport.CImports, ptr %t575, i32 0, i32 4 + %t577 = getelementptr inbounds { ptr, i64, i64 }, ptr %t576, i32 0, i32 1 + %t578 = load i64, ptr %t577 + store i64 0, ptr %a579 + br label %for.cond3678 +for.cond3678: + %t580 = load i64, ptr %a579 + %t581 = icmp slt i64 %t580, %t578 + br i1 %t581, label %for.body3679, label %for.end3681 +for.body3679: + %t582 = load ptr, ptr %a1 + %t583 = icmp eq ptr %t582, null + br i1 %t583, label %panic3682, label %ok3683 +panic3682: + call void @finch_panic(ptr @.str.2299, i64 1567, ptr @.str.2300) + unreachable +ok3683: + %t584 = getelementptr inbounds %S.gen.Gen, ptr %t582, i32 0, i32 16 + %t585 = getelementptr inbounds { ptr, i64, i64 }, ptr %t584, i32 0, i32 1 + %t586 = insertvalue %S.gen.StructDef zeroinitializer, { ptr, i64, i64 } { ptr @.str.2301, i64 1, i64 0 }, 0 + %t587 = load ptr, ptr %a1 + %t588 = icmp eq ptr %t587, null + br i1 %t588, label %panic3684, label %ok3685 +panic3684: + call void @finch_panic(ptr @.str.2302, i64 1567, ptr @.str.2303) + unreachable +ok3685: + %t589 = getelementptr inbounds %S.gen.Gen, ptr %t587, i32 0, i32 26 + %t590 = getelementptr inbounds %S.cimport.CImports, ptr %t589, i32 0, i32 4 + %t591 = load i64, ptr %a579 + %t592 = load { ptr, i64, i64 }, ptr %t590 + %t593 = extractvalue { ptr, i64, i64 } %t592, 1 + %t594 = icmp uge i64 %t591, %t593 + br i1 %t594, label %range3686, label %inrange3687 +range3686: + call void @finch_panic_index(ptr @.str.2304, i64 1567, i64 %t591, i64 %t593) + unreachable +inrange3687: + %t595 = extractvalue { ptr, i64, i64 } %t592, 0 + %t596 = getelementptr inbounds { ptr, i64, i64 }, ptr %t595, i64 %t591 + %t597 = load { ptr, i64, i64 }, ptr %t596 + store { ptr, i64, i64 } %t597, ptr %a598 + call void @finch_str_copy(ptr %a599, ptr %a598) + %t600 = load { ptr, i64, i64 }, ptr %a599 + %t601 = insertvalue %S.gen.StructDef %t586, { ptr, i64, i64 } %t600, 1 + %t602 = insertvalue %S.gen.StructDef %t601, i1 true, 2 + %t603 = insertvalue %S.gen.StructDef %t602, i64 -1, 13 + %t604 = load i64, ptr %a579 + %t605 = insertvalue %S.gen.StructDef %t603, i64 %t604, 14 + %t606 = load i64, ptr %t585 + %t607 = add i64 %t606, 1 + call void @finch_arr_reserve(ptr %t584, i64 %t607, i64 ptrtoint (ptr getelementptr (%S.gen.StructDef, ptr null, i32 1) to i64)) + %t608 = load ptr, ptr %t584 + %t609 = getelementptr inbounds %S.gen.StructDef, ptr %t608, i64 %t606 + store %S.gen.StructDef %t605, ptr %t609 + store i64 %t607, ptr %t585 + br label %for.step3680 +for.step3680: + %t610 = load i64, ptr %a579 + %t611 = add i64 %t610, 1 + store i64 %t611, ptr %a579 + br label %for.cond3678 +for.end3681: + %t612 = load ptr, ptr %a1 + %t613 = icmp eq ptr %t612, null + br i1 %t613, label %panic3688, label %ok3689 +panic3688: + call void @finch_panic(ptr @.str.2305, i64 1569, ptr @.str.2306) + unreachable +ok3689: + %t614 = getelementptr inbounds %S.gen.Gen, ptr %t612, i32 0, i32 16 + %t615 = getelementptr inbounds { ptr, i64, i64 }, ptr %t614, i32 0, i32 1 + %t616 = load i64, ptr %t615 + store i64 0, ptr %a617 + br label %for.cond3690 +for.cond3690: + %t618 = load i64, ptr %a617 + %t619 = icmp slt i64 %t618, %t616 + br i1 %t619, label %for.body3691, label %for.end3693 +for.body3691: + %t620 = load ptr, ptr %a1 + %t621 = load i64, ptr %a617 + call void @finch.gen.resolveStruct(ptr %t620, i64 %t621) + br label %for.step3692 +for.step3692: + %t622 = load i64, ptr %a617 + %t623 = add i64 %t622, 1 + store i64 %t623, ptr %a617 + br label %for.cond3690 +for.end3693: + %t624 = load ptr, ptr %a1 + %t625 = icmp eq ptr %t624, null + br i1 %t625, label %panic3694, label %ok3695 +panic3694: + call void @finch_panic(ptr @.str.2307, i64 1572, ptr @.str.2308) + unreachable +ok3695: + %t626 = getelementptr inbounds %S.gen.Gen, ptr %t624, i32 0, i32 0 + %t627 = getelementptr inbounds { ptr, i64, i64 }, ptr %t626, i32 0, i32 1 + %t628 = load i64, ptr %t627 + store i64 0, ptr %a629 + br label %for.cond3696 +for.cond3696: + %t630 = load i64, ptr %a629 + %t631 = icmp slt i64 %t630, %t628 + br i1 %t631, label %for.body3697, label %for.end3699 +for.body3697: + %t632 = load ptr, ptr %a1 + %t633 = icmp eq ptr %t632, null + br i1 %t633, label %panic3700, label %ok3701 +panic3700: + call void @finch_panic(ptr @.str.2309, i64 1573, ptr @.str.2310) + unreachable +ok3701: + %t634 = getelementptr inbounds %S.gen.Gen, ptr %t632, i32 0, i32 0 + %t635 = load i64, ptr %a629 + %t636 = load { ptr, i64, i64 }, ptr %t634 + %t637 = extractvalue { ptr, i64, i64 } %t636, 1 + %t638 = icmp uge i64 %t635, %t637 + br i1 %t638, label %range3702, label %inrange3703 +range3702: + call void @finch_panic_index(ptr @.str.2311, i64 1573, i64 %t635, i64 %t637) + unreachable +inrange3703: + %t639 = extractvalue { ptr, i64, i64 } %t636, 0 + %t640 = getelementptr inbounds %S.ast.Program, ptr %t639, i64 %t635 + %t641 = getelementptr inbounds %S.ast.Program, ptr %t640, i32 0, i32 0 + %t642 = load { ptr, i64, i64 }, ptr %t641 + %t643 = load ptr, ptr %a1 + %t644 = icmp eq ptr %t643, null + br i1 %t644, label %panic3704, label %ok3705 +panic3704: + call void @finch_panic(ptr @.str.2312, i64 1573, ptr @.str.2313) + unreachable +ok3705: + %t645 = getelementptr inbounds %S.gen.Gen, ptr %t643, i32 0, i32 14 + store { ptr, i64, i64 } %t642, ptr %a646 + call void @finch_str_copy(ptr %a647, ptr %a646) + %t648 = load { ptr, i64, i64 }, ptr %a647 + %t649 = load { ptr, i64, i64 }, ptr %t645 + store { ptr, i64, i64 } %t648, ptr %t645 + store { ptr, i64, i64 } %t649, ptr %a650 + call void @finch_str_drop(ptr %a650) + %t651 = load ptr, ptr %a1 + %t652 = icmp eq ptr %t651, null + br i1 %t652, label %panic3706, label %ok3707 +panic3706: + call void @finch_panic(ptr @.str.2314, i64 1574, ptr @.str.2315) + unreachable +ok3707: + %t653 = getelementptr inbounds %S.gen.Gen, ptr %t651, i32 0, i32 0 + %t654 = load i64, ptr %a629 + %t655 = load { ptr, i64, i64 }, ptr %t653 + %t656 = extractvalue { ptr, i64, i64 } %t655, 1 + %t657 = icmp uge i64 %t654, %t656 + br i1 %t657, label %range3708, label %inrange3709 +range3708: + call void @finch_panic_index(ptr @.str.2316, i64 1574, i64 %t654, i64 %t656) + unreachable +inrange3709: + %t658 = extractvalue { ptr, i64, i64 } %t655, 0 + %t659 = getelementptr inbounds %S.ast.Program, ptr %t658, i64 %t654 + %t660 = getelementptr inbounds %S.ast.Program, ptr %t659, i32 0, i32 8 + %t661 = getelementptr inbounds { ptr, i64, i64 }, ptr %t660, i32 0, i32 1 + %t662 = load i64, ptr %t661 + store i64 0, ptr %a663 + br label %for.cond3710 +for.cond3710: + %t664 = load i64, ptr %a663 + %t665 = icmp slt i64 %t664, %t662 + br i1 %t665, label %for.body3711, label %for.end3713 +for.body3711: + %t666 = load ptr, ptr %a1 + %t667 = icmp eq ptr %t666, null + br i1 %t667, label %panic3714, label %ok3715 +panic3714: + call void @finch_panic(ptr @.str.2317, i64 1575, ptr @.str.2318) + unreachable +ok3715: + %t668 = getelementptr inbounds %S.gen.Gen, ptr %t666, i32 0, i32 0 + %t669 = load i64, ptr %a629 + %t670 = load { ptr, i64, i64 }, ptr %t668 + %t671 = extractvalue { ptr, i64, i64 } %t670, 1 + %t672 = icmp uge i64 %t669, %t671 + br i1 %t672, label %range3716, label %inrange3717 +range3716: + call void @finch_panic_index(ptr @.str.2319, i64 1575, i64 %t669, i64 %t671) + unreachable +inrange3717: + %t673 = extractvalue { ptr, i64, i64 } %t670, 0 + %t674 = getelementptr inbounds %S.ast.Program, ptr %t673, i64 %t669 + %t675 = getelementptr inbounds %S.ast.Program, ptr %t674, i32 0, i32 8 + %t676 = load i64, ptr %a663 + %t677 = load { ptr, i64, i64 }, ptr %t675 + %t678 = extractvalue { ptr, i64, i64 } %t677, 1 + %t679 = icmp uge i64 %t676, %t678 + br i1 %t679, label %range3718, label %inrange3719 +range3718: + call void @finch_panic_index(ptr @.str.2320, i64 1575, i64 %t676, i64 %t678) + unreachable +inrange3719: + %t680 = extractvalue { ptr, i64, i64 } %t677, 0 + %t681 = getelementptr inbounds %S.ast.Node, ptr %t680, i64 %t676 + %t682 = load %S.ast.Node, ptr %t681 + store %S.ast.Node %t682, ptr %a683 + call void @finch.copy.S_ast_Node(ptr %a684, ptr %a683) + %t685 = load %S.ast.Node, ptr %a684 + store %S.ast.Node %t685, ptr %a686 + %t687 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 3 %t688 = getelementptr inbounds { ptr, i64, i64 }, ptr %t687, i32 0, i32 1 %t689 = load i64, ptr %t688 %t690 = icmp sgt i64 %t689, 0 - br i1 %t690, label %then3611, label %else3612 -then3611: + br i1 %t690, label %then3720, label %endif3722 +then3720: %t691 = load ptr, ptr %a1 %t692 = load ptr, ptr %a1 %t693 = icmp eq ptr %t692, null - br i1 %t693, label %panic3614, label %ok3615 -panic3614: - call void @finch_panic(ptr @.str.2256, i64 1514, ptr @.str.2257) + br i1 %t693, label %panic3723, label %ok3724 +panic3723: + call void @finch_panic(ptr @.str.2321, i64 1578, ptr @.str.2322) unreachable -ok3615: +ok3724: %t694 = getelementptr inbounds %S.gen.Gen, ptr %t692, i32 0, i32 14 %t695 = load { ptr, i64, i64 }, ptr %t694 - %t696 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 + %t696 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 %t697 = load { ptr, i64, i64 }, ptr %t696 - %t698 = call i64 @finch.gen.findStruct(ptr %t691, { ptr, i64, i64 } %t695, { ptr, i64, i64 } %t697) - store i64 %t698, ptr %a699 - %t700 = load i64, ptr %a699 - %t701 = icmp slt i64 %t700, 0 - br label %logic.from3616 -logic.from3616: - br i1 %t701, label %logic.rhs3617, label %logic.end3618 -logic.rhs3617: + %t698 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t699 = load { ptr, i64, i64 }, ptr %t698 + %t700 = call i64 @finch.gen.findTemplate(ptr %t691, { ptr, i64, i64 } %t695, { ptr, i64, i64 } %t697, { ptr, i64, i64 } %t699, i1 false) + %t701 = icmp sge i64 %t700, 0 + br i1 %t701, label %then3725, label %endif3727 +then3725: %t702 = load ptr, ptr %a1 - %t703 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t704 = load { ptr, i64, i64 }, ptr %t703 - %t705 = call i64 @finch.gen.findStruct(ptr %t702, { ptr, i64, i64 } { ptr @.str.2258, i64 1, i64 0 }, { ptr, i64, i64 } %t704) - %t706 = icmp sge i64 %t705, 0 - br label %logic.rend3619 -logic.rend3619: - br label %logic.end3618 -logic.end3618: - %t707 = phi i1 [ false, %logic.from3616 ], [ %t706, %logic.rend3619 ] - br i1 %t707, label %then3620, label %endif3622 -then3620: - %t708 = load ptr, ptr %a1 - %t709 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t710 = load { ptr, i64, i64 }, ptr %t709 - %t711 = call i64 @finch.gen.findStruct(ptr %t708, { ptr, i64, i64 } { ptr @.str.2259, i64 1, i64 0 }, { ptr, i64, i64 } %t710) - store i64 %t711, ptr %a699 - %t712 = load { ptr, i64, i64 }, ptr %a637 - store { ptr, i64, i64 } { ptr @.str.2260, i64 1, i64 0 }, ptr %a637 - store { ptr, i64, i64 } %t712, ptr %a713 + %t703 = load %S.ast.Node, ptr %a686 + %t704 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t705 = load { ptr, i64, i64 }, ptr %t704 + store { ptr, i64, i64 } { ptr @.str.2323, i64 10, i64 0 }, ptr %a707 + store { ptr, i64, i64 } %t705, ptr %a708 + call void @finch_str_concat(ptr %a706, ptr %a707, ptr %a708) + %t709 = load { ptr, i64, i64 }, ptr %a706 + store { ptr, i64, i64 } %t709, ptr %a711 + store { ptr, i64, i64 } { ptr @.str.2324, i64 18, i64 0 }, ptr %a712 + call void @finch_str_concat(ptr %a710, ptr %a711, ptr %a712) + store { ptr, i64, i64 } %t709, ptr %a713 call void @finch_str_drop(ptr %a713) - br label %endif3622 -endif3622: - %t714 = load i64, ptr %a699 - %t715 = icmp slt i64 %t714, 0 - br i1 %t715, label %then3623, label %endif3625 -then3623: - %t716 = load ptr, ptr %a1 - %t717 = load %S.ast.Node, ptr %a534 - %t718 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t719 = load { ptr, i64, i64 }, ptr %t718 - store { ptr, i64, i64 } { ptr @.str.2261, i64 26, i64 0 }, ptr %a721 - store { ptr, i64, i64 } %t719, ptr %a722 - call void @finch_str_concat(ptr %a720, ptr %a721, ptr %a722) - %t723 = load { ptr, i64, i64 }, ptr %a720 - store { ptr, i64, i64 } %t723, ptr %a725 - store { ptr, i64, i64 } { ptr @.str.2262, i64 76, i64 0 }, ptr %a726 - call void @finch_str_concat(ptr %a724, ptr %a725, ptr %a726) - store { ptr, i64, i64 } %t723, ptr %a727 - call void @finch_str_drop(ptr %a727) - %t728 = load { ptr, i64, i64 }, ptr %a724 - call void @finch.gen.fail(ptr %t716, %S.ast.Node %t717, { ptr, i64, i64 } %t728) - store { ptr, i64, i64 } %t728, ptr %a729 - call void @finch_str_drop(ptr %a729) - br label %endif3625 -endif3625: - %t730 = load ptr, ptr %a1 - %t731 = load { ptr, i64, i64 }, ptr %a637 - %t732 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t733 = load { ptr, i64, i64 }, ptr %t732 - %t734 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t735 = load { ptr, i64, i64 }, ptr %t734 - %t736 = call i64 @finch.gen.findMethod(ptr %t730, { ptr, i64, i64 } %t731, { ptr, i64, i64 } %t733, { ptr, i64, i64 } %t735) - %t737 = icmp sge i64 %t736, 0 - br i1 %t737, label %then3626, label %endif3628 -then3626: - %t738 = load ptr, ptr %a1 - %t739 = load %S.ast.Node, ptr %a534 - %t740 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t741 = load { ptr, i64, i64 }, ptr %t740 - store { ptr, i64, i64 } { ptr @.str.2263, i64 11, i64 0 }, ptr %a743 - store { ptr, i64, i64 } %t741, ptr %a744 - call void @finch_str_concat(ptr %a742, ptr %a743, ptr %a744) - %t745 = load { ptr, i64, i64 }, ptr %a742 - store { ptr, i64, i64 } %t745, ptr %a747 - store { ptr, i64, i64 } { ptr @.str.2264, i64 1, i64 0 }, ptr %a748 - call void @finch_str_concat(ptr %a746, ptr %a747, ptr %a748) - store { ptr, i64, i64 } %t745, ptr %a749 - call void @finch_str_drop(ptr %a749) - %t750 = load { ptr, i64, i64 }, ptr %a746 - %t751 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t752 = load { ptr, i64, i64 }, ptr %t751 - store { ptr, i64, i64 } %t750, ptr %a754 - store { ptr, i64, i64 } %t752, ptr %a755 - call void @finch_str_concat(ptr %a753, ptr %a754, ptr %a755) - store { ptr, i64, i64 } %t750, ptr %a756 - call void @finch_str_drop(ptr %a756) - %t757 = load { ptr, i64, i64 }, ptr %a753 - store { ptr, i64, i64 } %t757, ptr %a759 - store { ptr, i64, i64 } { ptr @.str.2265, i64 17, i64 0 }, ptr %a760 - call void @finch_str_concat(ptr %a758, ptr %a759, ptr %a760) - store { ptr, i64, i64 } %t757, ptr %a761 - call void @finch_str_drop(ptr %a761) - %t762 = load { ptr, i64, i64 }, ptr %a758 - call void @finch.gen.fail(ptr %t738, %S.ast.Node %t739, { ptr, i64, i64 } %t762) - store { ptr, i64, i64 } %t762, ptr %a763 - call void @finch_str_drop(ptr %a763) - br label %endif3628 -endif3628: - %t764 = load ptr, ptr %a1 - %t765 = icmp eq ptr %t764, null - br i1 %t765, label %panic3629, label %ok3630 -panic3629: - call void @finch_panic(ptr @.str.2266, i64 1525, ptr @.str.2267) - unreachable -ok3630: - %t766 = getelementptr inbounds %S.gen.Gen, ptr %t764, i32 0, i32 16 - %t767 = load i64, ptr %a699 - %t768 = load { ptr, i64, i64 }, ptr %t766 - %t769 = extractvalue { ptr, i64, i64 } %t768, 1 - %t770 = icmp uge i64 %t767, %t769 - br i1 %t770, label %range3631, label %inrange3632 -range3631: - call void @finch_panic_index(ptr @.str.2268, i64 1525, i64 %t767, i64 %t769) - unreachable -inrange3632: - %t771 = extractvalue { ptr, i64, i64 } %t768, 0 - %t772 = getelementptr inbounds %S.gen.StructDef, ptr %t771, i64 %t767 - %t773 = getelementptr inbounds %S.gen.StructDef, ptr %t772, i32 0, i32 11 - %t774 = getelementptr inbounds { ptr, i64, i64 }, ptr %t773, i32 0, i32 1 - %t775 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t776 = load { ptr, i64, i64 }, ptr %t775 - store i64 -1, ptr %a777 - %t778 = load i64, ptr %t774 - %t779 = load ptr, ptr %t773 - store i64 0, ptr %a780 - br label %find.cond3633 -find.cond3633: - %t781 = load i64, ptr %a780 - %t782 = icmp slt i64 %t781, %t778 - br i1 %t782, label %find.body3634, label %find.end3637 -find.body3634: - %t783 = getelementptr inbounds { ptr, i64, i64 }, ptr %t779, i64 %t781 - %t784 = load { ptr, i64, i64 }, ptr %t783 - store { ptr, i64, i64 } %t784, ptr %a785 - store { ptr, i64, i64 } %t776, ptr %a786 - %t787 = call i32 @finch_str_eq(ptr %a785, ptr %a786) - %t788 = icmp ne i32 %t787, 0 - br i1 %t788, label %find.hit3635, label %find.next3636 -find.hit3635: - store i64 %t781, ptr %a777 - br label %find.end3637 -find.next3636: - %t789 = add i64 %t781, 1 - store i64 %t789, ptr %a780 - br label %find.cond3633 -find.end3637: - %t790 = load i64, ptr %a777 - %t791 = icmp sge i64 %t790, 0 - br i1 %t791, label %then3638, label %endif3640 -then3638: - %t792 = load ptr, ptr %a1 - %t793 = load %S.ast.Node, ptr %a534 - %t794 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t795 = load { ptr, i64, i64 }, ptr %t794 - store { ptr, i64, i64 } { ptr @.str.2269, i64 11, i64 0 }, ptr %a797 - store { ptr, i64, i64 } %t795, ptr %a798 - call void @finch_str_concat(ptr %a796, ptr %a797, ptr %a798) - %t799 = load { ptr, i64, i64 }, ptr %a796 - store { ptr, i64, i64 } %t799, ptr %a801 - store { ptr, i64, i64 } { ptr @.str.2270, i64 28, i64 0 }, ptr %a802 - call void @finch_str_concat(ptr %a800, ptr %a801, ptr %a802) - store { ptr, i64, i64 } %t799, ptr %a803 - call void @finch_str_drop(ptr %a803) - %t804 = load { ptr, i64, i64 }, ptr %a800 - %t805 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t806 = load { ptr, i64, i64 }, ptr %t805 - store { ptr, i64, i64 } %t804, ptr %a808 - store { ptr, i64, i64 } %t806, ptr %a809 - call void @finch_str_concat(ptr %a807, ptr %a808, ptr %a809) - store { ptr, i64, i64 } %t804, ptr %a810 - call void @finch_str_drop(ptr %a810) - %t811 = load { ptr, i64, i64 }, ptr %a807 - store { ptr, i64, i64 } %t811, ptr %a813 - store { ptr, i64, i64 } { ptr @.str.2271, i64 1, i64 0 }, ptr %a814 - call void @finch_str_concat(ptr %a812, ptr %a813, ptr %a814) - store { ptr, i64, i64 } %t811, ptr %a815 - call void @finch_str_drop(ptr %a815) - %t816 = load { ptr, i64, i64 }, ptr %a812 - call void @finch.gen.fail(ptr %t792, %S.ast.Node %t793, { ptr, i64, i64 } %t816) - store { ptr, i64, i64 } %t816, ptr %a817 - call void @finch_str_drop(ptr %a817) - br label %endif3640 -endif3640: - br label %endif3613 -else3612: - %t818 = load ptr, ptr %a1 - %t819 = load ptr, ptr %a1 - %t820 = icmp eq ptr %t819, null - br i1 %t820, label %panic3641, label %ok3642 -panic3641: - call void @finch_panic(ptr @.str.2272, i64 1529, ptr @.str.2273) - unreachable -ok3642: - %t821 = getelementptr inbounds %S.gen.Gen, ptr %t819, i32 0, i32 14 - %t822 = load { ptr, i64, i64 }, ptr %t821 - %t823 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t824 = load { ptr, i64, i64 }, ptr %t823 - %t825 = call i64 @finch.gen.findFn(ptr %t818, { ptr, i64, i64 } %t822, { ptr, i64, i64 } %t824) - %t826 = icmp sge i64 %t825, 0 - br i1 %t826, label %then3643, label %endif3645 -then3643: - %t827 = load ptr, ptr %a1 - %t828 = load %S.ast.Node, ptr %a534 - %t829 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t830 = load { ptr, i64, i64 }, ptr %t829 - store { ptr, i64, i64 } { ptr @.str.2274, i64 10, i64 0 }, ptr %a832 - store { ptr, i64, i64 } %t830, ptr %a833 - call void @finch_str_concat(ptr %a831, ptr %a832, ptr %a833) - %t834 = load { ptr, i64, i64 }, ptr %a831 - store { ptr, i64, i64 } %t834, ptr %a836 - store { ptr, i64, i64 } { ptr @.str.2275, i64 18, i64 0 }, ptr %a837 - call void @finch_str_concat(ptr %a835, ptr %a836, ptr %a837) - store { ptr, i64, i64 } %t834, ptr %a838 - call void @finch_str_drop(ptr %a838) - %t839 = load { ptr, i64, i64 }, ptr %a835 - call void @finch.gen.fail(ptr %t827, %S.ast.Node %t828, { ptr, i64, i64 } %t839) - store { ptr, i64, i64 } %t839, ptr %a840 - call void @finch_str_drop(ptr %a840) - br label %endif3645 -endif3645: - %t841 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t842 = load { ptr, i64, i64 }, ptr %t841 - %t843 = call i1 @finch.gen.isBuiltin({ ptr, i64, i64 } %t842) - br i1 %t843, label %then3646, label %endif3648 -then3646: - %t844 = load ptr, ptr %a1 - %t845 = load %S.ast.Node, ptr %a534 - %t846 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t847 = load { ptr, i64, i64 }, ptr %t846 - store { ptr, i64, i64 } { ptr @.str.2276, i64 1, i64 0 }, ptr %a849 - store { ptr, i64, i64 } %t847, ptr %a850 - call void @finch_str_concat(ptr %a848, ptr %a849, ptr %a850) - %t851 = load { ptr, i64, i64 }, ptr %a848 - store { ptr, i64, i64 } %t851, ptr %a853 - store { ptr, i64, i64 } { ptr @.str.2277, i64 43, i64 0 }, ptr %a854 - call void @finch_str_concat(ptr %a852, ptr %a853, ptr %a854) - store { ptr, i64, i64 } %t851, ptr %a855 - call void @finch_str_drop(ptr %a855) - %t856 = load { ptr, i64, i64 }, ptr %a852 - call void @finch.gen.fail(ptr %t844, %S.ast.Node %t845, { ptr, i64, i64 } %t856) - store { ptr, i64, i64 } %t856, ptr %a857 - call void @finch_str_drop(ptr %a857) - br label %endif3648 -endif3648: - br label %endif3613 -endif3613: - br label %endif3607 -endif3607: - %t858 = load ptr, ptr %a1 - %t859 = icmp eq ptr %t858, null - br i1 %t859, label %panic3649, label %ok3650 -panic3649: - call void @finch_panic(ptr @.str.2278, i64 1536, ptr @.str.2279) - unreachable -ok3650: - %t860 = getelementptr inbounds %S.gen.Gen, ptr %t858, i32 0, i32 14 - %t861 = load { ptr, i64, i64 }, ptr %t860 - store { ptr, i64, i64 } %t861, ptr %a862 - call void @finch_str_copy(ptr %a863, ptr %a862) - %t864 = load { ptr, i64, i64 }, ptr %a863 - %t865 = insertvalue %S.gen.FnSig zeroinitializer, { ptr, i64, i64 } %t864, 0 - %t866 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t867 = load { ptr, i64, i64 }, ptr %t866 - store { ptr, i64, i64 } %t867, ptr %a868 - call void @finch_str_copy(ptr %a869, ptr %a868) - %t870 = load { ptr, i64, i64 }, ptr %a869 - %t871 = insertvalue %S.gen.FnSig %t865, { ptr, i64, i64 } %t870, 1 - %t872 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t873 = load { ptr, i64, i64 }, ptr %t872 - store { ptr, i64, i64 } %t873, ptr %a874 - call void @finch_str_copy(ptr %a875, ptr %a874) - %t876 = load { ptr, i64, i64 }, ptr %a875 - %t877 = insertvalue %S.gen.FnSig %t871, { ptr, i64, i64 } %t876, 2 - %t878 = load { ptr, i64, i64 }, ptr %a637 - store { ptr, i64, i64 } %t878, ptr %a879 - call void @finch_str_copy(ptr %a880, ptr %a879) - %t881 = load { ptr, i64, i64 }, ptr %a880 - %t882 = insertvalue %S.gen.FnSig %t877, { ptr, i64, i64 } %t881, 3 - %t883 = load i1, ptr %a638 - %t884 = insertvalue %S.gen.FnSig %t882, i1 %t883, 4 - %t885 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 8 - %t886 = load i1, ptr %t885 - %t887 = insertvalue %S.gen.FnSig %t884, i1 %t886, 5 - %t888 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 7 - %t889 = load i1, ptr %t888 - %t890 = insertvalue %S.gen.FnSig %t887, i1 %t889, 9 - %t891 = load i64, ptr %a477 - %t892 = insertvalue %S.gen.FnSig %t890, i64 %t891, 16 - %t893 = load i64, ptr %a511 - %t894 = insertvalue %S.gen.FnSig %t892, i64 %t893, 17 - store %S.gen.FnSig %t894, ptr %a895 - %t896 = load ptr, ptr %a1 - %t897 = icmp eq ptr %t896, null - br i1 %t897, label %panic3651, label %ok3652 -panic3651: - call void @finch_panic(ptr @.str.2281, i64 1537, ptr @.str.2282) - unreachable -ok3652: - %t898 = getelementptr inbounds %S.gen.Gen, ptr %t896, i32 0, i32 14 - %t899 = load { ptr, i64, i64 }, ptr %t898 - %t900 = call { ptr, i64, i64 } @finch.gen.modName({ ptr, i64, i64 } %t899) - store { ptr, i64, i64 } { ptr @.str.2280, i64 7, i64 0 }, ptr %a902 - store { ptr, i64, i64 } %t900, ptr %a903 - call void @finch_str_concat(ptr %a901, ptr %a902, ptr %a903) - store { ptr, i64, i64 } %t900, ptr %a904 - call void @finch_str_drop(ptr %a904) - %t905 = load { ptr, i64, i64 }, ptr %a901 - store { ptr, i64, i64 } %t905, ptr %a907 - store { ptr, i64, i64 } { ptr @.str.2283, i64 1, i64 0 }, ptr %a908 - call void @finch_str_concat(ptr %a906, ptr %a907, ptr %a908) - store { ptr, i64, i64 } %t905, ptr %a909 - call void @finch_str_drop(ptr %a909) - %t910 = load { ptr, i64, i64 }, ptr %a906 - %t911 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t912 = load { ptr, i64, i64 }, ptr %t911 - store { ptr, i64, i64 } %t910, ptr %a914 - store { ptr, i64, i64 } %t912, ptr %a915 - call void @finch_str_concat(ptr %a913, ptr %a914, ptr %a915) - store { ptr, i64, i64 } %t910, ptr %a916 - call void @finch_str_drop(ptr %a916) - %t917 = load { ptr, i64, i64 }, ptr %a913 - %t918 = getelementptr inbounds %S.gen.FnSig, ptr %a895, i32 0, i32 11 - %t919 = load { ptr, i64, i64 }, ptr %t918 - store { ptr, i64, i64 } %t917, ptr %t918 - store { ptr, i64, i64 } %t919, ptr %a920 - call void @finch_str_drop(ptr %a920) - %t921 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t922 = getelementptr inbounds { ptr, i64, i64 }, ptr %t921, i32 0, i32 1 - %t923 = load i64, ptr %t922 - %t924 = icmp sgt i64 %t923, 0 - br i1 %t924, label %then3653, label %endif3655 -then3653: - %t925 = load ptr, ptr %a1 - %t926 = icmp eq ptr %t925, null - br i1 %t926, label %panic3656, label %ok3657 -panic3656: - call void @finch_panic(ptr @.str.2285, i64 1539, ptr @.str.2286) - unreachable -ok3657: - %t927 = getelementptr inbounds %S.gen.Gen, ptr %t925, i32 0, i32 14 - %t928 = load { ptr, i64, i64 }, ptr %t927 - %t929 = call { ptr, i64, i64 } @finch.gen.modName({ ptr, i64, i64 } %t928) - store { ptr, i64, i64 } { ptr @.str.2284, i64 7, i64 0 }, ptr %a931 - store { ptr, i64, i64 } %t929, ptr %a932 - call void @finch_str_concat(ptr %a930, ptr %a931, ptr %a932) - store { ptr, i64, i64 } %t929, ptr %a933 - call void @finch_str_drop(ptr %a933) - %t934 = load { ptr, i64, i64 }, ptr %a930 - store { ptr, i64, i64 } %t934, ptr %a936 - store { ptr, i64, i64 } { ptr @.str.2287, i64 1, i64 0 }, ptr %a937 - call void @finch_str_concat(ptr %a935, ptr %a936, ptr %a937) - store { ptr, i64, i64 } %t934, ptr %a938 - call void @finch_str_drop(ptr %a938) - %t939 = load { ptr, i64, i64 }, ptr %a935 - %t940 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t941 = load { ptr, i64, i64 }, ptr %t940 - store { ptr, i64, i64 } %t939, ptr %a943 - store { ptr, i64, i64 } %t941, ptr %a944 - call void @finch_str_concat(ptr %a942, ptr %a943, ptr %a944) - store { ptr, i64, i64 } %t939, ptr %a945 - call void @finch_str_drop(ptr %a945) - %t946 = load { ptr, i64, i64 }, ptr %a942 - store { ptr, i64, i64 } %t946, ptr %a948 - store { ptr, i64, i64 } { ptr @.str.2288, i64 1, i64 0 }, ptr %a949 - call void @finch_str_concat(ptr %a947, ptr %a948, ptr %a949) - store { ptr, i64, i64 } %t946, ptr %a950 - call void @finch_str_drop(ptr %a950) - %t951 = load { ptr, i64, i64 }, ptr %a947 - %t952 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 1 - %t953 = load { ptr, i64, i64 }, ptr %t952 - store { ptr, i64, i64 } %t951, ptr %a955 - store { ptr, i64, i64 } %t953, ptr %a956 - call void @finch_str_concat(ptr %a954, ptr %a955, ptr %a956) - store { ptr, i64, i64 } %t951, ptr %a957 - call void @finch_str_drop(ptr %a957) - %t958 = load { ptr, i64, i64 }, ptr %a954 - %t959 = getelementptr inbounds %S.gen.FnSig, ptr %a895, i32 0, i32 11 - %t960 = load { ptr, i64, i64 }, ptr %t959 - store { ptr, i64, i64 } %t958, ptr %t959 - store { ptr, i64, i64 } %t960, ptr %a961 - call void @finch_str_drop(ptr %a961) - br label %endif3655 -endif3655: - %t962 = load ptr, ptr %a1 - %t963 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 5 - %t964 = load %S.ast.Type, ptr %t963 - %t965 = load %S.ast.Node, ptr %a534 - %t966 = call %S.ast.Type @finch.gen.resolve(ptr %t962, %S.ast.Type %t964, %S.ast.Node %t965) - %t967 = getelementptr inbounds %S.gen.FnSig, ptr %a895, i32 0, i32 12 - %t968 = load %S.ast.Type, ptr %t967 - store %S.ast.Type %t966, ptr %t967 - store %S.ast.Type %t968, ptr %a969 - call void @finch.drop.S_ast_Type(ptr %a969) - %t970 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 9 - %t971 = getelementptr inbounds { ptr, i64, i64 }, ptr %t970, i32 0, i32 1 - %t972 = load i64, ptr %t971 - %t973 = sub i64 %t972, 1 - store i64 0, ptr %a974 - br label %for.cond3658 -for.cond3658: - %t975 = load i64, ptr %a974 - %t976 = icmp slt i64 %t975, %t973 - br i1 %t976, label %for.body3659, label %for.end3661 -for.body3659: - %t977 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 9 - %t978 = load i64, ptr %a974 - %t979 = load { ptr, i64, i64 }, ptr %t977 - %t980 = extractvalue { ptr, i64, i64 } %t979, 1 - %t981 = icmp uge i64 %t978, %t980 - br i1 %t981, label %range3662, label %inrange3663 -range3662: - call void @finch_panic_index(ptr @.str.2289, i64 1543, i64 %t978, i64 %t980) - unreachable -inrange3663: - %t982 = extractvalue { ptr, i64, i64 } %t979, 0 - %t983 = getelementptr inbounds %S.ast.Node, ptr %t982, i64 %t978 - %t984 = getelementptr inbounds %S.ast.Node, ptr %t983, i32 0, i32 1 - %t985 = load { ptr, i64, i64 }, ptr %t984 - store { ptr, i64, i64 } %t985, ptr %a986 - store { ptr, i64, i64 } { ptr @.str.2290, i64 4, i64 0 }, ptr %a987 - %t988 = call i32 @finch_str_eq(ptr %a986, ptr %a987) - %t989 = icmp ne i32 %t988, 0 - br label %logic.from3664 -logic.from3664: - br i1 %t989, label %logic.rhs3665, label %logic.end3666 -logic.rhs3665: - %t990 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t991 = getelementptr inbounds { ptr, i64, i64 }, ptr %t990, i32 0, i32 1 - %t992 = load i64, ptr %t991 - %t993 = icmp sgt i64 %t992, 0 - br label %logic.rend3667 -logic.rend3667: - br label %logic.end3666 -logic.end3666: - %t994 = phi i1 [ false, %logic.from3664 ], [ %t993, %logic.rend3667 ] - br i1 %t994, label %then3668, label %endif3670 -then3668: - %t995 = load ptr, ptr %a1 - %t996 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 9 - %t997 = load i64, ptr %a974 - %t998 = load { ptr, i64, i64 }, ptr %t996 - %t999 = extractvalue { ptr, i64, i64 } %t998, 1 - %t1000 = icmp uge i64 %t997, %t999 - br i1 %t1000, label %range3671, label %inrange3672 -range3671: - call void @finch_panic_index(ptr @.str.2291, i64 1544, i64 %t997, i64 %t999) - unreachable -inrange3672: - %t1001 = extractvalue { ptr, i64, i64 } %t998, 0 - %t1002 = getelementptr inbounds %S.ast.Node, ptr %t1001, i64 %t997 - %t1003 = load %S.ast.Node, ptr %t1002 - %t1004 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 2 - %t1005 = load { ptr, i64, i64 }, ptr %t1004 - store { ptr, i64, i64 } { ptr @.str.2292, i64 22, i64 0 }, ptr %a1007 - store { ptr, i64, i64 } %t1005, ptr %a1008 - call void @finch_str_concat(ptr %a1006, ptr %a1007, ptr %a1008) - %t1009 = load { ptr, i64, i64 }, ptr %a1006 - store { ptr, i64, i64 } %t1009, ptr %a1011 - store { ptr, i64, i64 } { ptr @.str.2293, i64 24, i64 0 }, ptr %a1012 - call void @finch_str_concat(ptr %a1010, ptr %a1011, ptr %a1012) - store { ptr, i64, i64 } %t1009, ptr %a1013 - call void @finch_str_drop(ptr %a1013) - %t1014 = load { ptr, i64, i64 }, ptr %a1010 - call void @finch.gen.fail(ptr %t995, %S.ast.Node %t1003, { ptr, i64, i64 } %t1014) - store { ptr, i64, i64 } %t1014, ptr %a1015 - call void @finch_str_drop(ptr %a1015) - br label %endif3670 -endif3670: - %t1016 = getelementptr inbounds %S.gen.FnSig, ptr %a895, i32 0, i32 13 - %t1017 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1016, i32 0, i32 1 - %t1018 = load ptr, ptr %a1 - %t1019 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 9 - %t1020 = load i64, ptr %a974 - %t1021 = load { ptr, i64, i64 }, ptr %t1019 - %t1022 = extractvalue { ptr, i64, i64 } %t1021, 1 - %t1023 = icmp uge i64 %t1020, %t1022 - br i1 %t1023, label %range3673, label %inrange3674 -range3673: - call void @finch_panic_index(ptr @.str.2294, i64 1546, i64 %t1020, i64 %t1022) - unreachable -inrange3674: - %t1024 = extractvalue { ptr, i64, i64 } %t1021, 0 - %t1025 = getelementptr inbounds %S.ast.Node, ptr %t1024, i64 %t1020 - %t1026 = getelementptr inbounds %S.ast.Node, ptr %t1025, i32 0, i32 5 - %t1027 = load %S.ast.Type, ptr %t1026 - %t1028 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 9 - %t1029 = load i64, ptr %a974 - %t1030 = load { ptr, i64, i64 }, ptr %t1028 - %t1031 = extractvalue { ptr, i64, i64 } %t1030, 1 - %t1032 = icmp uge i64 %t1029, %t1031 - br i1 %t1032, label %range3675, label %inrange3676 -range3675: - call void @finch_panic_index(ptr @.str.2295, i64 1546, i64 %t1029, i64 %t1031) - unreachable -inrange3676: - %t1033 = extractvalue { ptr, i64, i64 } %t1030, 0 - %t1034 = getelementptr inbounds %S.ast.Node, ptr %t1033, i64 %t1029 - %t1035 = load %S.ast.Node, ptr %t1034 - %t1036 = call %S.ast.Type @finch.gen.resolve(ptr %t1018, %S.ast.Type %t1027, %S.ast.Node %t1035) - %t1037 = load i64, ptr %t1017 - %t1038 = add i64 %t1037, 1 - call void @finch_arr_reserve(ptr %t1016, i64 %t1038, i64 ptrtoint (ptr getelementptr (%S.ast.Type, ptr null, i32 1) to i64)) - %t1039 = load ptr, ptr %t1016 - %t1040 = getelementptr inbounds %S.ast.Type, ptr %t1039, i64 %t1037 - store %S.ast.Type %t1036, ptr %t1040 - store i64 %t1038, ptr %t1017 - %t1041 = getelementptr inbounds %S.gen.FnSig, ptr %a895, i32 0, i32 14 - %t1042 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1041, i32 0, i32 1 - %t1043 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 9 - %t1044 = load i64, ptr %a974 - %t1045 = load { ptr, i64, i64 }, ptr %t1043 - %t1046 = extractvalue { ptr, i64, i64 } %t1045, 1 - %t1047 = icmp uge i64 %t1044, %t1046 - br i1 %t1047, label %range3677, label %inrange3678 -range3677: - call void @finch_panic_index(ptr @.str.2296, i64 1547, i64 %t1044, i64 %t1046) - unreachable -inrange3678: - %t1048 = extractvalue { ptr, i64, i64 } %t1045, 0 - %t1049 = getelementptr inbounds %S.ast.Node, ptr %t1048, i64 %t1044 - %t1050 = getelementptr inbounds %S.ast.Node, ptr %t1049, i32 0, i32 1 - %t1051 = load { ptr, i64, i64 }, ptr %t1050 - store { ptr, i64, i64 } %t1051, ptr %a1052 - call void @finch_str_copy(ptr %a1053, ptr %a1052) - %t1054 = load { ptr, i64, i64 }, ptr %a1053 - %t1055 = load i64, ptr %t1042 - %t1056 = add i64 %t1055, 1 - call void @finch_arr_reserve(ptr %t1041, i64 %t1056, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) - %t1057 = load ptr, ptr %t1041 - %t1058 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1057, i64 %t1055 - store { ptr, i64, i64 } %t1054, ptr %t1058 - store i64 %t1056, ptr %t1042 - br label %for.step3660 -for.step3660: - %t1059 = load i64, ptr %a974 - %t1060 = add i64 %t1059, 1 - store i64 %t1060, ptr %a974 - br label %for.cond3658 -for.end3661: - %t1061 = getelementptr inbounds %S.ast.Node, ptr %a534, i32 0, i32 8 - %t1062 = load i1, ptr %t1061 - br i1 %t1062, label %then3679, label %endif3681 -then3679: - %t1063 = load ptr, ptr %a1 - %t1064 = load %S.ast.Node, ptr %a534 - %t1065 = load %S.gen.FnSig, ptr %a895 - call void @finch.gen.checkExport(ptr %t1063, %S.ast.Node %t1064, %S.gen.FnSig %t1065) - br label %endif3681 -endif3681: - %t1066 = load ptr, ptr %a1 - %t1067 = icmp eq ptr %t1066, null - br i1 %t1067, label %panic3682, label %ok3683 -panic3682: - call void @finch_panic(ptr @.str.2297, i64 1552, ptr @.str.2298) - unreachable -ok3683: - %t1068 = getelementptr inbounds %S.gen.Gen, ptr %t1066, i32 0, i32 15 - %t1069 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1068, i32 0, i32 1 - %t1070 = load %S.gen.FnSig, ptr %a895 - store %S.gen.FnSig %t1070, ptr %a1071 - call void @finch.copy.S_gen_FnSig(ptr %a1072, ptr %a1071) - %t1073 = load %S.gen.FnSig, ptr %a1072 - %t1074 = load i64, ptr %t1069 - %t1075 = add i64 %t1074, 1 - call void @finch_arr_reserve(ptr %t1068, i64 %t1075, i64 ptrtoint (ptr getelementptr (%S.gen.FnSig, ptr null, i32 1) to i64)) - %t1076 = load ptr, ptr %t1068 - %t1077 = getelementptr inbounds %S.gen.FnSig, ptr %t1076, i64 %t1074 - store %S.gen.FnSig %t1073, ptr %t1077 - store i64 %t1075, ptr %t1069 - call void @finch.drop.S_gen_FnSig(ptr %a895) - call void @finch_str_drop(ptr %a637) - call void @finch.drop.S_ast_Node(ptr %a534) - br label %for.step3568 -for.step3568: - %t1078 = load i64, ptr %a511 - %t1079 = add i64 %t1078, 1 - store i64 %t1079, ptr %a511 - br label %for.cond3566 -for.end3569: - br label %for.step3554 -for.step3554: - %t1080 = load i64, ptr %a477 - %t1081 = add i64 %t1080, 1 - store i64 %t1081, ptr %a477 - br label %for.cond3552 -for.end3555: - store i1 true, ptr %a1082 - br label %while.cond3684 -while.cond3684: - %t1083 = load i1, ptr %a1082 - br i1 %t1083, label %while.body3685, label %while.end3686 -while.body3685: - store i1 false, ptr %a1082 - %t1084 = load ptr, ptr %a1 - %t1085 = icmp eq ptr %t1084, null - br i1 %t1085, label %panic3687, label %ok3688 -panic3687: - call void @finch_panic(ptr @.str.2299, i64 1560, ptr @.str.2300) - unreachable -ok3688: - %t1086 = getelementptr inbounds %S.gen.Gen, ptr %t1084, i32 0, i32 15 - %t1087 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1086, i32 0, i32 1 - %t1088 = load i64, ptr %t1087 - store i64 0, ptr %a1089 - br label %for.cond3689 -for.cond3689: - %t1090 = load i64, ptr %a1089 - %t1091 = icmp slt i64 %t1090, %t1088 - br i1 %t1091, label %for.body3690, label %for.end3692 -for.body3690: - %t1092 = load ptr, ptr %a1 - %t1093 = icmp eq ptr %t1092, null - br i1 %t1093, label %panic3693, label %ok3694 -panic3693: - call void @finch_panic(ptr @.str.2301, i64 1561, ptr @.str.2302) - unreachable -ok3694: - %t1094 = getelementptr inbounds %S.gen.Gen, ptr %t1092, i32 0, i32 15 - %t1095 = load i64, ptr %a1089 - %t1096 = load { ptr, i64, i64 }, ptr %t1094 - %t1097 = extractvalue { ptr, i64, i64 } %t1096, 1 - %t1098 = icmp uge i64 %t1095, %t1097 - br i1 %t1098, label %range3695, label %inrange3696 -range3695: - call void @finch_panic_index(ptr @.str.2303, i64 1561, i64 %t1095, i64 %t1097) - unreachable -inrange3696: - %t1099 = extractvalue { ptr, i64, i64 } %t1096, 0 - %t1100 = getelementptr inbounds %S.gen.FnSig, ptr %t1099, i64 %t1095 - %t1101 = getelementptr inbounds %S.gen.FnSig, ptr %t1100, i32 0, i32 2 - %t1102 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1101, i32 0, i32 1 - %t1103 = load i64, ptr %t1102 - %t1104 = icmp sgt i64 %t1103, 0 - br label %logic.from3697 -logic.from3697: - br i1 %t1104, label %logic.rhs3698, label %logic.end3699 -logic.rhs3698: - %t1105 = load ptr, ptr %a1 - %t1106 = icmp eq ptr %t1105, null - br i1 %t1106, label %panic3700, label %ok3701 -panic3700: - call void @finch_panic(ptr @.str.2304, i64 1561, ptr @.str.2305) - unreachable -ok3701: - %t1107 = getelementptr inbounds %S.gen.Gen, ptr %t1105, i32 0, i32 15 - %t1108 = load i64, ptr %a1089 - %t1109 = load { ptr, i64, i64 }, ptr %t1107 - %t1110 = extractvalue { ptr, i64, i64 } %t1109, 1 - %t1111 = icmp uge i64 %t1108, %t1110 - br i1 %t1111, label %range3702, label %inrange3703 -range3702: - call void @finch_panic_index(ptr @.str.2306, i64 1561, i64 %t1108, i64 %t1110) - unreachable -inrange3703: - %t1112 = extractvalue { ptr, i64, i64 } %t1109, 0 - %t1113 = getelementptr inbounds %S.gen.FnSig, ptr %t1112, i64 %t1108 - %t1114 = getelementptr inbounds %S.gen.FnSig, ptr %t1113, i32 0, i32 10 - %t1115 = load i1, ptr %t1114 - %t1116 = xor i1 %t1115, true - br label %logic.rend3704 -logic.rend3704: - br label %logic.end3699 -logic.end3699: - %t1117 = phi i1 [ false, %logic.from3697 ], [ %t1116, %logic.rend3704 ] - br i1 %t1117, label %then3705, label %endif3707 -then3705: - %t1118 = load ptr, ptr %a1 - %t1119 = icmp eq ptr %t1118, null - br i1 %t1119, label %panic3708, label %ok3709 -panic3708: - call void @finch_panic(ptr @.str.2307, i64 1562, ptr @.str.2308) - unreachable -ok3709: - %t1120 = getelementptr inbounds %S.gen.Gen, ptr %t1118, i32 0, i32 0 - %t1121 = load ptr, ptr %a1 - %t1122 = icmp eq ptr %t1121, null - br i1 %t1122, label %panic3710, label %ok3711 -panic3710: - call void @finch_panic(ptr @.str.2309, i64 1562, ptr @.str.2310) - unreachable -ok3711: - %t1123 = getelementptr inbounds %S.gen.Gen, ptr %t1121, i32 0, i32 15 - %t1124 = load i64, ptr %a1089 - %t1125 = load { ptr, i64, i64 }, ptr %t1123 - %t1126 = extractvalue { ptr, i64, i64 } %t1125, 1 - %t1127 = icmp uge i64 %t1124, %t1126 - br i1 %t1127, label %range3712, label %inrange3713 -range3712: - call void @finch_panic_index(ptr @.str.2311, i64 1562, i64 %t1124, i64 %t1126) - unreachable -inrange3713: - %t1128 = extractvalue { ptr, i64, i64 } %t1125, 0 - %t1129 = getelementptr inbounds %S.gen.FnSig, ptr %t1128, i64 %t1124 - %t1130 = getelementptr inbounds %S.gen.FnSig, ptr %t1129, i32 0, i32 16 - %t1131 = load i64, ptr %t1130 - %t1132 = load { ptr, i64, i64 }, ptr %t1120 - %t1133 = extractvalue { ptr, i64, i64 } %t1132, 1 - %t1134 = icmp uge i64 %t1131, %t1133 - br i1 %t1134, label %range3714, label %inrange3715 -range3714: - call void @finch_panic_index(ptr @.str.2312, i64 1562, i64 %t1131, i64 %t1133) - unreachable -inrange3715: - %t1135 = extractvalue { ptr, i64, i64 } %t1132, 0 - %t1136 = getelementptr inbounds %S.ast.Program, ptr %t1135, i64 %t1131 - %t1137 = getelementptr inbounds %S.ast.Program, ptr %t1136, i32 0, i32 8 - %t1138 = load ptr, ptr %a1 - %t1139 = icmp eq ptr %t1138, null - br i1 %t1139, label %panic3716, label %ok3717 -panic3716: - call void @finch_panic(ptr @.str.2313, i64 1562, ptr @.str.2314) - unreachable -ok3717: - %t1140 = getelementptr inbounds %S.gen.Gen, ptr %t1138, i32 0, i32 15 - %t1141 = load i64, ptr %a1089 - %t1142 = load { ptr, i64, i64 }, ptr %t1140 - %t1143 = extractvalue { ptr, i64, i64 } %t1142, 1 - %t1144 = icmp uge i64 %t1141, %t1143 - br i1 %t1144, label %range3718, label %inrange3719 -range3718: - call void @finch_panic_index(ptr @.str.2315, i64 1562, i64 %t1141, i64 %t1143) - unreachable -inrange3719: - %t1145 = extractvalue { ptr, i64, i64 } %t1142, 0 - %t1146 = getelementptr inbounds %S.gen.FnSig, ptr %t1145, i64 %t1141 - %t1147 = getelementptr inbounds %S.gen.FnSig, ptr %t1146, i32 0, i32 17 - %t1148 = load i64, ptr %t1147 - %t1149 = load { ptr, i64, i64 }, ptr %t1137 - %t1150 = extractvalue { ptr, i64, i64 } %t1149, 1 - %t1151 = icmp uge i64 %t1148, %t1150 - br i1 %t1151, label %range3720, label %inrange3721 -range3720: - call void @finch_panic_index(ptr @.str.2316, i64 1562, i64 %t1148, i64 %t1150) - unreachable -inrange3721: - %t1152 = extractvalue { ptr, i64, i64 } %t1149, 0 - %t1153 = getelementptr inbounds %S.ast.Node, ptr %t1152, i64 %t1148 - %t1154 = load %S.ast.Node, ptr %t1153 - store %S.ast.Node %t1154, ptr %a1155 - call void @finch.copy.S_ast_Node(ptr %a1156, ptr %a1155) - %t1157 = load %S.ast.Node, ptr %a1156 - store %S.ast.Node %t1157, ptr %a1158 - %t1159 = load ptr, ptr %a1 - %t1160 = getelementptr inbounds %S.ast.Node, ptr %a1158, i32 0, i32 9 - %t1161 = getelementptr inbounds %S.ast.Node, ptr %a1158, i32 0, i32 9 - %t1162 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1161, i32 0, i32 1 - %t1163 = load i64, ptr %t1162 - %t1164 = sub i64 %t1163, 1 - %t1165 = load { ptr, i64, i64 }, ptr %t1160 - %t1166 = extractvalue { ptr, i64, i64 } %t1165, 1 - %t1167 = icmp uge i64 %t1164, %t1166 - br i1 %t1167, label %range3722, label %inrange3723 -range3722: - call void @finch_panic_index(ptr @.str.2318, i64 1563, i64 %t1164, i64 %t1166) - unreachable -inrange3723: - %t1168 = extractvalue { ptr, i64, i64 } %t1165, 0 - %t1169 = getelementptr inbounds %S.ast.Node, ptr %t1168, i64 %t1164 - %t1170 = load %S.ast.Node, ptr %t1169 - %t1171 = call i1 @finch.gen.mutates(ptr %t1159, { ptr, i64, i64 } { ptr @.str.2317, i64 4, i64 0 }, %S.ast.Node %t1170) - br i1 %t1171, label %then3724, label %endif3726 -then3724: - %t1172 = load ptr, ptr %a1 - %t1173 = icmp eq ptr %t1172, null - br i1 %t1173, label %panic3727, label %ok3728 -panic3727: - call void @finch_panic(ptr @.str.2319, i64 1564, ptr @.str.2320) - unreachable -ok3728: - %t1174 = getelementptr inbounds %S.gen.Gen, ptr %t1172, i32 0, i32 15 - %t1175 = load i64, ptr %a1089 - %t1176 = load { ptr, i64, i64 }, ptr %t1174 - %t1177 = extractvalue { ptr, i64, i64 } %t1176, 1 - %t1178 = icmp uge i64 %t1175, %t1177 - br i1 %t1178, label %range3729, label %inrange3730 -range3729: - call void @finch_panic_index(ptr @.str.2321, i64 1564, i64 %t1175, i64 %t1177) - unreachable -inrange3730: - %t1179 = extractvalue { ptr, i64, i64 } %t1176, 0 - %t1180 = getelementptr inbounds %S.gen.FnSig, ptr %t1179, i64 %t1175 - %t1181 = getelementptr inbounds %S.gen.FnSig, ptr %t1180, i32 0, i32 10 - store i1 true, ptr %t1181 - %t1182 = load ptr, ptr %a1 - %t1183 = icmp eq ptr %t1182, null - br i1 %t1183, label %panic3731, label %ok3732 + %t714 = load { ptr, i64, i64 }, ptr %a710 + call void @finch.gen.fail(ptr %t702, %S.ast.Node %t703, { ptr, i64, i64 } %t714) + store { ptr, i64, i64 } %t714, ptr %a715 + call void @finch_str_drop(ptr %a715) + br label %endif3727 +endif3727: + %t716 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t717 = getelementptr inbounds { ptr, i64, i64 }, ptr %t716, i32 0, i32 1 + %t718 = load i64, ptr %t717 + %t719 = icmp sgt i64 %t718, 0 + br label %logic.from3728 +logic.from3728: + br i1 %t719, label %logic.rhs3729, label %logic.end3730 +logic.rhs3729: + %t720 = load ptr, ptr %a1 + %t721 = load ptr, ptr %a1 + %t722 = icmp eq ptr %t721, null + br i1 %t722, label %panic3731, label %ok3732 panic3731: - call void @finch_panic(ptr @.str.2322, i64 1565, ptr @.str.2323) + call void @finch_panic(ptr @.str.2325, i64 1581, ptr @.str.2326) unreachable ok3732: - %t1184 = getelementptr inbounds %S.gen.Gen, ptr %t1182, i32 0, i32 23 - %t1185 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1184, i32 0, i32 1 - %t1186 = load ptr, ptr %a1 - %t1187 = icmp eq ptr %t1186, null - br i1 %t1187, label %panic3733, label %ok3734 -panic3733: - call void @finch_panic(ptr @.str.2324, i64 1565, ptr @.str.2325) - unreachable -ok3734: - %t1188 = getelementptr inbounds %S.gen.Gen, ptr %t1186, i32 0, i32 15 - %t1189 = load i64, ptr %a1089 - %t1190 = load { ptr, i64, i64 }, ptr %t1188 - %t1191 = extractvalue { ptr, i64, i64 } %t1190, 1 - %t1192 = icmp uge i64 %t1189, %t1191 - br i1 %t1192, label %range3735, label %inrange3736 -range3735: - call void @finch_panic_index(ptr @.str.2326, i64 1565, i64 %t1189, i64 %t1191) - unreachable -inrange3736: - %t1193 = extractvalue { ptr, i64, i64 } %t1190, 0 - %t1194 = getelementptr inbounds %S.gen.FnSig, ptr %t1193, i64 %t1189 - %t1195 = getelementptr inbounds %S.gen.FnSig, ptr %t1194, i32 0, i32 1 - %t1196 = load { ptr, i64, i64 }, ptr %t1195 - store { ptr, i64, i64 } %t1196, ptr %a1197 - call void @finch_str_copy(ptr %a1198, ptr %a1197) - %t1199 = load { ptr, i64, i64 }, ptr %a1198 - %t1200 = load i64, ptr %t1185 - %t1201 = add i64 %t1200, 1 - call void @finch_arr_reserve(ptr %t1184, i64 %t1201, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) - %t1202 = load ptr, ptr %t1184 - %t1203 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1202, i64 %t1200 - store { ptr, i64, i64 } %t1199, ptr %t1203 - store i64 %t1201, ptr %t1185 - store i1 true, ptr %a1082 - br label %endif3726 -endif3726: - call void @finch.drop.S_ast_Node(ptr %a1158) - br label %endif3707 -endif3707: - br label %for.step3691 -for.step3691: - %t1204 = load i64, ptr %a1089 - %t1205 = add i64 %t1204, 1 - store i64 %t1205, ptr %a1089 - br label %for.cond3689 -for.end3692: - %t1206 = load ptr, ptr %a1 - %t1207 = icmp eq ptr %t1206, null - br i1 %t1207, label %panic3737, label %ok3738 + %t723 = getelementptr inbounds %S.gen.Gen, ptr %t721, i32 0, i32 14 + %t724 = load { ptr, i64, i64 }, ptr %t723 + %t725 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t726 = load { ptr, i64, i64 }, ptr %t725 + %t727 = call i64 @finch.gen.findTemplate(ptr %t720, { ptr, i64, i64 } %t724, { ptr, i64, i64 } %t726, { ptr, i64, i64 } { ptr @.str.2327, i64 0, i64 0 }, i1 true) + %t728 = icmp slt i64 %t727, 0 + br label %logic.rend3733 +logic.rend3733: + br label %logic.end3730 +logic.end3730: + %t729 = phi i1 [ false, %logic.from3728 ], [ %t728, %logic.rend3733 ] + br i1 %t729, label %then3734, label %endif3736 +then3734: + %t730 = load ptr, ptr %a1 + %t731 = load %S.ast.Node, ptr %a686 + %t732 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t733 = load { ptr, i64, i64 }, ptr %t732 + store { ptr, i64, i64 } { ptr @.str.2328, i64 34, i64 0 }, ptr %a735 + store { ptr, i64, i64 } %t733, ptr %a736 + call void @finch_str_concat(ptr %a734, ptr %a735, ptr %a736) + %t737 = load { ptr, i64, i64 }, ptr %a734 + store { ptr, i64, i64 } %t737, ptr %a739 + store { ptr, i64, i64 } { ptr @.str.2329, i64 53, i64 0 }, ptr %a740 + call void @finch_str_concat(ptr %a738, ptr %a739, ptr %a740) + store { ptr, i64, i64 } %t737, ptr %a741 + call void @finch_str_drop(ptr %a741) + %t742 = load { ptr, i64, i64 }, ptr %a738 + call void @finch.gen.fail(ptr %t730, %S.ast.Node %t731, { ptr, i64, i64 } %t742) + store { ptr, i64, i64 } %t742, ptr %a743 + call void @finch_str_drop(ptr %a743) + br label %endif3736 +endif3736: + %t744 = load ptr, ptr %a1 + %t745 = icmp eq ptr %t744, null + br i1 %t745, label %panic3737, label %ok3738 panic3737: - call void @finch_panic(ptr @.str.2327, i64 1570, ptr @.str.2328) + call void @finch_panic(ptr @.str.2330, i64 1584, ptr @.str.2331) unreachable ok3738: - %t1208 = getelementptr inbounds %S.gen.Gen, ptr %t1206, i32 0, i32 17 - %t1209 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1208, i32 0, i32 1 - %t1210 = load i64, ptr %t1209 - store i64 0, ptr %a1211 - br label %for.cond3739 -for.cond3739: - %t1212 = load i64, ptr %a1211 - %t1213 = icmp slt i64 %t1212, %t1210 - br i1 %t1213, label %for.body3740, label %for.end3742 -for.body3740: - %t1214 = load ptr, ptr %a1 - %t1215 = icmp eq ptr %t1214, null - br i1 %t1215, label %panic3743, label %ok3744 -panic3743: - call void @finch_panic(ptr @.str.2329, i64 1571, ptr @.str.2330) + %t746 = getelementptr inbounds %S.gen.Gen, ptr %t744, i32 0, i32 17 + %t747 = getelementptr inbounds { ptr, i64, i64 }, ptr %t746, i32 0, i32 1 + %t748 = load ptr, ptr %a1 + %t749 = icmp eq ptr %t748, null + br i1 %t749, label %panic3739, label %ok3740 +panic3739: + call void @finch_panic(ptr @.str.2332, i64 1584, ptr @.str.2333) unreachable -ok3744: - %t1216 = getelementptr inbounds %S.gen.Gen, ptr %t1214, i32 0, i32 17 - %t1217 = load i64, ptr %a1211 - %t1218 = load { ptr, i64, i64 }, ptr %t1216 - %t1219 = extractvalue { ptr, i64, i64 } %t1218, 1 - %t1220 = icmp uge i64 %t1217, %t1219 - br i1 %t1220, label %range3745, label %inrange3746 -range3745: - call void @finch_panic_index(ptr @.str.2331, i64 1571, i64 %t1217, i64 %t1219) +ok3740: + %t750 = getelementptr inbounds %S.gen.Gen, ptr %t748, i32 0, i32 14 + %t751 = load { ptr, i64, i64 }, ptr %t750 + store { ptr, i64, i64 } %t751, ptr %a752 + call void @finch_str_copy(ptr %a753, ptr %a752) + %t754 = load { ptr, i64, i64 }, ptr %a753 + %t755 = insertvalue %S.gen.Template zeroinitializer, { ptr, i64, i64 } %t754, 0 + %t756 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t757 = load { ptr, i64, i64 }, ptr %t756 + store { ptr, i64, i64 } %t757, ptr %a758 + call void @finch_str_copy(ptr %a759, ptr %a758) + %t760 = load { ptr, i64, i64 }, ptr %a759 + %t761 = insertvalue %S.gen.Template %t755, { ptr, i64, i64 } %t760, 1 + %t762 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t763 = load { ptr, i64, i64 }, ptr %t762 + store { ptr, i64, i64 } %t763, ptr %a764 + call void @finch_str_copy(ptr %a765, ptr %a764) + %t766 = load { ptr, i64, i64 }, ptr %a765 + %t767 = insertvalue %S.gen.Template %t761, { ptr, i64, i64 } %t766, 2 + %t768 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 3 + %t769 = load { ptr, i64, i64 }, ptr %t768 + store { ptr, i64, i64 } %t769, ptr %a770 + call void @finch.copy.arr_str(ptr %a771, ptr %a770) + %t772 = load { ptr, i64, i64 }, ptr %a771 + %t773 = insertvalue %S.gen.Template %t767, { ptr, i64, i64 } %t772, 3 + %t774 = load i64, ptr %a629 + %t775 = insertvalue %S.gen.Template %t773, i64 %t774, 4 + %t776 = load i64, ptr %a663 + %t777 = insertvalue %S.gen.Template %t775, i64 %t776, 5 + %t778 = load i64, ptr %t747 + %t779 = add i64 %t778, 1 + call void @finch_arr_reserve(ptr %t746, i64 %t779, i64 ptrtoint (ptr getelementptr (%S.gen.Template, ptr null, i32 1) to i64)) + %t780 = load ptr, ptr %t746 + %t781 = getelementptr inbounds %S.gen.Template, ptr %t780, i64 %t778 + store %S.gen.Template %t777, ptr %t781 + store i64 %t779, ptr %t747 + call void @finch.drop.S_ast_Node(ptr %a686) + br label %for.step3712 +endif3722: + %t782 = load ptr, ptr %a1 + %t783 = icmp eq ptr %t782, null + br i1 %t783, label %panic3741, label %ok3742 +panic3741: + call void @finch_panic(ptr @.str.2334, i64 1587, ptr @.str.2335) unreachable -inrange3746: - %t1221 = extractvalue { ptr, i64, i64 } %t1218, 0 - %t1222 = getelementptr inbounds %S.gen.Template, ptr %t1221, i64 %t1217 - %t1223 = load %S.gen.Template, ptr %t1222 - store %S.gen.Template %t1223, ptr %a1224 - call void @finch.copy.S_gen_Template(ptr %a1225, ptr %a1224) - %t1226 = load %S.gen.Template, ptr %a1225 - store %S.gen.Template %t1226, ptr %a1227 - %t1228 = getelementptr inbounds %S.gen.Template, ptr %a1227, i32 0, i32 2 - %t1229 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1228, i32 0, i32 1 - %t1230 = load i64, ptr %t1229 - %t1231 = icmp sgt i64 %t1230, 0 - br label %logic.from3747 -logic.from3747: - br i1 %t1231, label %logic.rhs3748, label %logic.end3749 -logic.rhs3748: - %t1232 = getelementptr inbounds %S.gen.Template, ptr %a1227, i32 0, i32 7 - %t1233 = load i1, ptr %t1232 - %t1234 = xor i1 %t1233, true - br label %logic.rend3750 -logic.rend3750: - br label %logic.end3749 -logic.end3749: - %t1235 = phi i1 [ false, %logic.from3747 ], [ %t1234, %logic.rend3750 ] - br i1 %t1235, label %then3751, label %endif3753 -then3751: - %t1236 = load ptr, ptr %a1 - %t1237 = icmp eq ptr %t1236, null - br i1 %t1237, label %panic3754, label %ok3755 -panic3754: - call void @finch_panic(ptr @.str.2332, i64 1573, ptr @.str.2333) +ok3742: + %t784 = getelementptr inbounds %S.gen.Gen, ptr %t782, i32 0, i32 14 + %t785 = load { ptr, i64, i64 }, ptr %t784 + store { ptr, i64, i64 } %t785, ptr %a786 + call void @finch_str_copy(ptr %a787, ptr %a786) + %t788 = load { ptr, i64, i64 }, ptr %a787 + store { ptr, i64, i64 } %t788, ptr %a789 + store i1 false, ptr %a790 + %t791 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t792 = getelementptr inbounds { ptr, i64, i64 }, ptr %t791, i32 0, i32 1 + %t793 = load i64, ptr %t792 + %t794 = icmp sgt i64 %t793, 0 + br label %logic.from3743 +logic.from3743: + br i1 %t794, label %logic.rhs3744, label %logic.end3745 +logic.rhs3744: + %t795 = load ptr, ptr %a1 + %t796 = load ptr, ptr %a1 + %t797 = icmp eq ptr %t796, null + br i1 %t797, label %panic3746, label %ok3747 +panic3746: + call void @finch_panic(ptr @.str.2336, i64 1589, ptr @.str.2337) unreachable -ok3755: - %t1238 = getelementptr inbounds %S.gen.Gen, ptr %t1236, i32 0, i32 0 - %t1239 = getelementptr inbounds %S.gen.Template, ptr %a1227, i32 0, i32 4 - %t1240 = load i64, ptr %t1239 - %t1241 = load { ptr, i64, i64 }, ptr %t1238 - %t1242 = extractvalue { ptr, i64, i64 } %t1241, 1 - %t1243 = icmp uge i64 %t1240, %t1242 - br i1 %t1243, label %range3756, label %inrange3757 -range3756: - call void @finch_panic_index(ptr @.str.2334, i64 1573, i64 %t1240, i64 %t1242) +ok3747: + %t798 = getelementptr inbounds %S.gen.Gen, ptr %t796, i32 0, i32 14 + %t799 = load { ptr, i64, i64 }, ptr %t798 + %t800 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t801 = load { ptr, i64, i64 }, ptr %t800 + %t802 = call i64 @finch.gen.findEnum(ptr %t795, { ptr, i64, i64 } %t799, { ptr, i64, i64 } %t801) + %t803 = icmp sge i64 %t802, 0 + br label %logic.rend3748 +logic.rend3748: + br label %logic.end3745 +logic.end3745: + %t804 = phi i1 [ false, %logic.from3743 ], [ %t803, %logic.rend3748 ] + br i1 %t804, label %then3749, label %else3750 +then3749: + store i1 true, ptr %a790 + %t805 = load ptr, ptr %a1 + %t806 = load { ptr, i64, i64 }, ptr %a789 + %t807 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t808 = load { ptr, i64, i64 }, ptr %t807 + %t809 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t810 = load { ptr, i64, i64 }, ptr %t809 + %t811 = call i64 @finch.gen.findMethod(ptr %t805, { ptr, i64, i64 } %t806, { ptr, i64, i64 } %t808, { ptr, i64, i64 } %t810) + %t812 = icmp sge i64 %t811, 0 + br i1 %t812, label %then3752, label %endif3754 +then3752: + %t813 = load ptr, ptr %a1 + %t814 = load %S.ast.Node, ptr %a686 + %t815 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t816 = load { ptr, i64, i64 }, ptr %t815 + store { ptr, i64, i64 } { ptr @.str.2338, i64 11, i64 0 }, ptr %a818 + store { ptr, i64, i64 } %t816, ptr %a819 + call void @finch_str_concat(ptr %a817, ptr %a818, ptr %a819) + %t820 = load { ptr, i64, i64 }, ptr %a817 + store { ptr, i64, i64 } %t820, ptr %a822 + store { ptr, i64, i64 } { ptr @.str.2339, i64 1, i64 0 }, ptr %a823 + call void @finch_str_concat(ptr %a821, ptr %a822, ptr %a823) + store { ptr, i64, i64 } %t820, ptr %a824 + call void @finch_str_drop(ptr %a824) + %t825 = load { ptr, i64, i64 }, ptr %a821 + %t826 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t827 = load { ptr, i64, i64 }, ptr %t826 + store { ptr, i64, i64 } %t825, ptr %a829 + store { ptr, i64, i64 } %t827, ptr %a830 + call void @finch_str_concat(ptr %a828, ptr %a829, ptr %a830) + store { ptr, i64, i64 } %t825, ptr %a831 + call void @finch_str_drop(ptr %a831) + %t832 = load { ptr, i64, i64 }, ptr %a828 + store { ptr, i64, i64 } %t832, ptr %a834 + store { ptr, i64, i64 } { ptr @.str.2340, i64 17, i64 0 }, ptr %a835 + call void @finch_str_concat(ptr %a833, ptr %a834, ptr %a835) + store { ptr, i64, i64 } %t832, ptr %a836 + call void @finch_str_drop(ptr %a836) + %t837 = load { ptr, i64, i64 }, ptr %a833 + call void @finch.gen.fail(ptr %t813, %S.ast.Node %t814, { ptr, i64, i64 } %t837) + store { ptr, i64, i64 } %t837, ptr %a838 + call void @finch_str_drop(ptr %a838) + br label %endif3754 +endif3754: + br label %endif3751 +else3750: + %t839 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t840 = getelementptr inbounds { ptr, i64, i64 }, ptr %t839, i32 0, i32 1 + %t841 = load i64, ptr %t840 + %t842 = icmp sgt i64 %t841, 0 + br i1 %t842, label %then3755, label %else3756 +then3755: + %t843 = load ptr, ptr %a1 + %t844 = load ptr, ptr %a1 + %t845 = icmp eq ptr %t844, null + br i1 %t845, label %panic3758, label %ok3759 +panic3758: + call void @finch_panic(ptr @.str.2341, i64 1595, ptr @.str.2342) unreachable -inrange3757: - %t1244 = extractvalue { ptr, i64, i64 } %t1241, 0 - %t1245 = getelementptr inbounds %S.ast.Program, ptr %t1244, i64 %t1240 - %t1246 = getelementptr inbounds %S.ast.Program, ptr %t1245, i32 0, i32 8 - %t1247 = getelementptr inbounds %S.gen.Template, ptr %a1227, i32 0, i32 5 - %t1248 = load i64, ptr %t1247 - %t1249 = load { ptr, i64, i64 }, ptr %t1246 - %t1250 = extractvalue { ptr, i64, i64 } %t1249, 1 - %t1251 = icmp uge i64 %t1248, %t1250 - br i1 %t1251, label %range3758, label %inrange3759 -range3758: - call void @finch_panic_index(ptr @.str.2335, i64 1573, i64 %t1248, i64 %t1250) +ok3759: + %t846 = getelementptr inbounds %S.gen.Gen, ptr %t844, i32 0, i32 14 + %t847 = load { ptr, i64, i64 }, ptr %t846 + %t848 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t849 = load { ptr, i64, i64 }, ptr %t848 + %t850 = call i64 @finch.gen.findStruct(ptr %t843, { ptr, i64, i64 } %t847, { ptr, i64, i64 } %t849) + store i64 %t850, ptr %a851 + %t852 = load i64, ptr %a851 + %t853 = icmp slt i64 %t852, 0 + br label %logic.from3760 +logic.from3760: + br i1 %t853, label %logic.rhs3761, label %logic.end3762 +logic.rhs3761: + %t854 = load ptr, ptr %a1 + %t855 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t856 = load { ptr, i64, i64 }, ptr %t855 + %t857 = call i64 @finch.gen.findStruct(ptr %t854, { ptr, i64, i64 } { ptr @.str.2343, i64 1, i64 0 }, { ptr, i64, i64 } %t856) + %t858 = icmp sge i64 %t857, 0 + br label %logic.rend3763 +logic.rend3763: + br label %logic.end3762 +logic.end3762: + %t859 = phi i1 [ false, %logic.from3760 ], [ %t858, %logic.rend3763 ] + br i1 %t859, label %then3764, label %endif3766 +then3764: + %t860 = load ptr, ptr %a1 + %t861 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t862 = load { ptr, i64, i64 }, ptr %t861 + %t863 = call i64 @finch.gen.findStruct(ptr %t860, { ptr, i64, i64 } { ptr @.str.2344, i64 1, i64 0 }, { ptr, i64, i64 } %t862) + store i64 %t863, ptr %a851 + %t864 = load { ptr, i64, i64 }, ptr %a789 + store { ptr, i64, i64 } { ptr @.str.2345, i64 1, i64 0 }, ptr %a789 + store { ptr, i64, i64 } %t864, ptr %a865 + call void @finch_str_drop(ptr %a865) + br label %endif3766 +endif3766: + %t866 = load i64, ptr %a851 + %t867 = icmp slt i64 %t866, 0 + br i1 %t867, label %then3767, label %endif3769 +then3767: + %t868 = load ptr, ptr %a1 + %t869 = load %S.ast.Node, ptr %a686 + %t870 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t871 = load { ptr, i64, i64 }, ptr %t870 + store { ptr, i64, i64 } { ptr @.str.2346, i64 26, i64 0 }, ptr %a873 + store { ptr, i64, i64 } %t871, ptr %a874 + call void @finch_str_concat(ptr %a872, ptr %a873, ptr %a874) + %t875 = load { ptr, i64, i64 }, ptr %a872 + store { ptr, i64, i64 } %t875, ptr %a877 + store { ptr, i64, i64 } { ptr @.str.2347, i64 76, i64 0 }, ptr %a878 + call void @finch_str_concat(ptr %a876, ptr %a877, ptr %a878) + store { ptr, i64, i64 } %t875, ptr %a879 + call void @finch_str_drop(ptr %a879) + %t880 = load { ptr, i64, i64 }, ptr %a876 + call void @finch.gen.fail(ptr %t868, %S.ast.Node %t869, { ptr, i64, i64 } %t880) + store { ptr, i64, i64 } %t880, ptr %a881 + call void @finch_str_drop(ptr %a881) + br label %endif3769 +endif3769: + %t882 = load ptr, ptr %a1 + %t883 = load { ptr, i64, i64 }, ptr %a789 + %t884 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t885 = load { ptr, i64, i64 }, ptr %t884 + %t886 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t887 = load { ptr, i64, i64 }, ptr %t886 + %t888 = call i64 @finch.gen.findMethod(ptr %t882, { ptr, i64, i64 } %t883, { ptr, i64, i64 } %t885, { ptr, i64, i64 } %t887) + %t889 = icmp sge i64 %t888, 0 + br i1 %t889, label %then3770, label %endif3772 +then3770: + %t890 = load ptr, ptr %a1 + %t891 = load %S.ast.Node, ptr %a686 + %t892 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t893 = load { ptr, i64, i64 }, ptr %t892 + store { ptr, i64, i64 } { ptr @.str.2348, i64 11, i64 0 }, ptr %a895 + store { ptr, i64, i64 } %t893, ptr %a896 + call void @finch_str_concat(ptr %a894, ptr %a895, ptr %a896) + %t897 = load { ptr, i64, i64 }, ptr %a894 + store { ptr, i64, i64 } %t897, ptr %a899 + store { ptr, i64, i64 } { ptr @.str.2349, i64 1, i64 0 }, ptr %a900 + call void @finch_str_concat(ptr %a898, ptr %a899, ptr %a900) + store { ptr, i64, i64 } %t897, ptr %a901 + call void @finch_str_drop(ptr %a901) + %t902 = load { ptr, i64, i64 }, ptr %a898 + %t903 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t904 = load { ptr, i64, i64 }, ptr %t903 + store { ptr, i64, i64 } %t902, ptr %a906 + store { ptr, i64, i64 } %t904, ptr %a907 + call void @finch_str_concat(ptr %a905, ptr %a906, ptr %a907) + store { ptr, i64, i64 } %t902, ptr %a908 + call void @finch_str_drop(ptr %a908) + %t909 = load { ptr, i64, i64 }, ptr %a905 + store { ptr, i64, i64 } %t909, ptr %a911 + store { ptr, i64, i64 } { ptr @.str.2350, i64 17, i64 0 }, ptr %a912 + call void @finch_str_concat(ptr %a910, ptr %a911, ptr %a912) + store { ptr, i64, i64 } %t909, ptr %a913 + call void @finch_str_drop(ptr %a913) + %t914 = load { ptr, i64, i64 }, ptr %a910 + call void @finch.gen.fail(ptr %t890, %S.ast.Node %t891, { ptr, i64, i64 } %t914) + store { ptr, i64, i64 } %t914, ptr %a915 + call void @finch_str_drop(ptr %a915) + br label %endif3772 +endif3772: + %t916 = load ptr, ptr %a1 + %t917 = icmp eq ptr %t916, null + br i1 %t917, label %panic3773, label %ok3774 +panic3773: + call void @finch_panic(ptr @.str.2351, i64 1606, ptr @.str.2352) unreachable -inrange3759: - %t1252 = extractvalue { ptr, i64, i64 } %t1249, 0 - %t1253 = getelementptr inbounds %S.ast.Node, ptr %t1252, i64 %t1248 - %t1254 = load %S.ast.Node, ptr %t1253 - store %S.ast.Node %t1254, ptr %a1255 - call void @finch.copy.S_ast_Node(ptr %a1256, ptr %a1255) - %t1257 = load %S.ast.Node, ptr %a1256 - store %S.ast.Node %t1257, ptr %a1258 - %t1259 = load ptr, ptr %a1 - %t1260 = getelementptr inbounds %S.ast.Node, ptr %a1258, i32 0, i32 9 - %t1261 = getelementptr inbounds %S.ast.Node, ptr %a1258, i32 0, i32 9 - %t1262 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1261, i32 0, i32 1 - %t1263 = load i64, ptr %t1262 - %t1264 = sub i64 %t1263, 1 - %t1265 = load { ptr, i64, i64 }, ptr %t1260 - %t1266 = extractvalue { ptr, i64, i64 } %t1265, 1 - %t1267 = icmp uge i64 %t1264, %t1266 - br i1 %t1267, label %range3760, label %inrange3761 -range3760: - call void @finch_panic_index(ptr @.str.2337, i64 1574, i64 %t1264, i64 %t1266) +ok3774: + %t918 = getelementptr inbounds %S.gen.Gen, ptr %t916, i32 0, i32 16 + %t919 = load i64, ptr %a851 + %t920 = load { ptr, i64, i64 }, ptr %t918 + %t921 = extractvalue { ptr, i64, i64 } %t920, 1 + %t922 = icmp uge i64 %t919, %t921 + br i1 %t922, label %range3775, label %inrange3776 +range3775: + call void @finch_panic_index(ptr @.str.2353, i64 1606, i64 %t919, i64 %t921) unreachable -inrange3761: - %t1268 = extractvalue { ptr, i64, i64 } %t1265, 0 - %t1269 = getelementptr inbounds %S.ast.Node, ptr %t1268, i64 %t1264 - %t1270 = load %S.ast.Node, ptr %t1269 - %t1271 = call i1 @finch.gen.mutates(ptr %t1259, { ptr, i64, i64 } { ptr @.str.2336, i64 4, i64 0 }, %S.ast.Node %t1270) - br i1 %t1271, label %then3762, label %endif3764 -then3762: - %t1272 = load ptr, ptr %a1 - %t1273 = icmp eq ptr %t1272, null - br i1 %t1273, label %panic3765, label %ok3766 -panic3765: - call void @finch_panic(ptr @.str.2338, i64 1575, ptr @.str.2339) - unreachable -ok3766: - %t1274 = getelementptr inbounds %S.gen.Gen, ptr %t1272, i32 0, i32 17 - %t1275 = load i64, ptr %a1211 - %t1276 = load { ptr, i64, i64 }, ptr %t1274 - %t1277 = extractvalue { ptr, i64, i64 } %t1276, 1 - %t1278 = icmp uge i64 %t1275, %t1277 - br i1 %t1278, label %range3767, label %inrange3768 -range3767: - call void @finch_panic_index(ptr @.str.2340, i64 1575, i64 %t1275, i64 %t1277) - unreachable -inrange3768: - %t1279 = extractvalue { ptr, i64, i64 } %t1276, 0 - %t1280 = getelementptr inbounds %S.gen.Template, ptr %t1279, i64 %t1275 - %t1281 = getelementptr inbounds %S.gen.Template, ptr %t1280, i32 0, i32 7 - store i1 true, ptr %t1281 - %t1282 = load ptr, ptr %a1 - %t1283 = icmp eq ptr %t1282, null - br i1 %t1283, label %panic3769, label %ok3770 -panic3769: - call void @finch_panic(ptr @.str.2341, i64 1576, ptr @.str.2342) - unreachable -ok3770: - %t1284 = getelementptr inbounds %S.gen.Gen, ptr %t1282, i32 0, i32 23 - %t1285 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1284, i32 0, i32 1 - %t1286 = getelementptr inbounds %S.gen.Template, ptr %a1227, i32 0, i32 1 - %t1287 = load { ptr, i64, i64 }, ptr %t1286 - store { ptr, i64, i64 } %t1287, ptr %a1288 - call void @finch_str_copy(ptr %a1289, ptr %a1288) - %t1290 = load { ptr, i64, i64 }, ptr %a1289 - %t1291 = load i64, ptr %t1285 - %t1292 = add i64 %t1291, 1 - call void @finch_arr_reserve(ptr %t1284, i64 %t1292, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) - %t1293 = load ptr, ptr %t1284 - %t1294 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1293, i64 %t1291 - store { ptr, i64, i64 } %t1290, ptr %t1294 - store i64 %t1292, ptr %t1285 - store i1 true, ptr %a1082 - br label %endif3764 -endif3764: - call void @finch.drop.S_ast_Node(ptr %a1258) - br label %endif3753 -endif3753: - call void @finch.drop.S_gen_Template(ptr %a1227) - br label %for.step3741 -for.step3741: - %t1295 = load i64, ptr %a1211 - %t1296 = add i64 %t1295, 1 - store i64 %t1296, ptr %a1211 - br label %for.cond3739 -for.end3742: - br label %while.cond3684 -while.end3686: - %t1297 = load ptr, ptr %a1 - %t1298 = icmp eq ptr %t1297, null - br i1 %t1298, label %panic3771, label %ok3772 -panic3771: - call void @finch_panic(ptr @.str.2343, i64 1583, ptr @.str.2344) - unreachable -ok3772: - %t1299 = getelementptr inbounds %S.gen.Gen, ptr %t1297, i32 0, i32 15 - %t1300 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1299, i32 0, i32 1 - %t1301 = load i64, ptr %t1300 - store i64 0, ptr %a1302 - br label %for.cond3773 -for.cond3773: - %t1303 = load i64, ptr %a1302 - %t1304 = icmp slt i64 %t1303, %t1301 - br i1 %t1304, label %for.body3774, label %for.end3776 -for.body3774: - %t1305 = load ptr, ptr %a1 - %t1306 = icmp eq ptr %t1305, null - br i1 %t1306, label %panic3777, label %ok3778 -panic3777: - call void @finch_panic(ptr @.str.2345, i64 1584, ptr @.str.2346) - unreachable -ok3778: - %t1307 = getelementptr inbounds %S.gen.Gen, ptr %t1305, i32 0, i32 0 - %t1308 = load ptr, ptr %a1 - %t1309 = icmp eq ptr %t1308, null - br i1 %t1309, label %panic3779, label %ok3780 -panic3779: - call void @finch_panic(ptr @.str.2347, i64 1584, ptr @.str.2348) - unreachable -ok3780: - %t1310 = getelementptr inbounds %S.gen.Gen, ptr %t1308, i32 0, i32 15 - %t1311 = load i64, ptr %a1302 - %t1312 = load { ptr, i64, i64 }, ptr %t1310 - %t1313 = extractvalue { ptr, i64, i64 } %t1312, 1 - %t1314 = icmp uge i64 %t1311, %t1313 - br i1 %t1314, label %range3781, label %inrange3782 -range3781: - call void @finch_panic_index(ptr @.str.2349, i64 1584, i64 %t1311, i64 %t1313) - unreachable -inrange3782: - %t1315 = extractvalue { ptr, i64, i64 } %t1312, 0 - %t1316 = getelementptr inbounds %S.gen.FnSig, ptr %t1315, i64 %t1311 - %t1317 = getelementptr inbounds %S.gen.FnSig, ptr %t1316, i32 0, i32 16 - %t1318 = load i64, ptr %t1317 - %t1319 = load { ptr, i64, i64 }, ptr %t1307 - %t1320 = extractvalue { ptr, i64, i64 } %t1319, 1 - %t1321 = icmp uge i64 %t1318, %t1320 - br i1 %t1321, label %range3783, label %inrange3784 -range3783: - call void @finch_panic_index(ptr @.str.2350, i64 1584, i64 %t1318, i64 %t1320) - unreachable -inrange3784: - %t1322 = extractvalue { ptr, i64, i64 } %t1319, 0 - %t1323 = getelementptr inbounds %S.ast.Program, ptr %t1322, i64 %t1318 - %t1324 = getelementptr inbounds %S.ast.Program, ptr %t1323, i32 0, i32 8 - %t1325 = load ptr, ptr %a1 - %t1326 = icmp eq ptr %t1325, null - br i1 %t1326, label %panic3785, label %ok3786 +inrange3776: + %t923 = extractvalue { ptr, i64, i64 } %t920, 0 + %t924 = getelementptr inbounds %S.gen.StructDef, ptr %t923, i64 %t919 + %t925 = getelementptr inbounds %S.gen.StructDef, ptr %t924, i32 0, i32 11 + %t926 = getelementptr inbounds { ptr, i64, i64 }, ptr %t925, i32 0, i32 1 + %t927 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t928 = load { ptr, i64, i64 }, ptr %t927 + store i64 -1, ptr %a929 + %t930 = load i64, ptr %t926 + %t931 = load ptr, ptr %t925 + store i64 0, ptr %a932 + br label %find.cond3777 +find.cond3777: + %t933 = load i64, ptr %a932 + %t934 = icmp slt i64 %t933, %t930 + br i1 %t934, label %find.body3778, label %find.end3781 +find.body3778: + %t935 = getelementptr inbounds { ptr, i64, i64 }, ptr %t931, i64 %t933 + %t936 = load { ptr, i64, i64 }, ptr %t935 + store { ptr, i64, i64 } %t936, ptr %a937 + store { ptr, i64, i64 } %t928, ptr %a938 + %t939 = call i32 @finch_str_eq(ptr %a937, ptr %a938) + %t940 = icmp ne i32 %t939, 0 + br i1 %t940, label %find.hit3779, label %find.next3780 +find.hit3779: + store i64 %t933, ptr %a929 + br label %find.end3781 +find.next3780: + %t941 = add i64 %t933, 1 + store i64 %t941, ptr %a932 + br label %find.cond3777 +find.end3781: + %t942 = load i64, ptr %a929 + %t943 = icmp sge i64 %t942, 0 + br i1 %t943, label %then3782, label %endif3784 +then3782: + %t944 = load ptr, ptr %a1 + %t945 = load %S.ast.Node, ptr %a686 + %t946 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t947 = load { ptr, i64, i64 }, ptr %t946 + store { ptr, i64, i64 } { ptr @.str.2354, i64 11, i64 0 }, ptr %a949 + store { ptr, i64, i64 } %t947, ptr %a950 + call void @finch_str_concat(ptr %a948, ptr %a949, ptr %a950) + %t951 = load { ptr, i64, i64 }, ptr %a948 + store { ptr, i64, i64 } %t951, ptr %a953 + store { ptr, i64, i64 } { ptr @.str.2355, i64 28, i64 0 }, ptr %a954 + call void @finch_str_concat(ptr %a952, ptr %a953, ptr %a954) + store { ptr, i64, i64 } %t951, ptr %a955 + call void @finch_str_drop(ptr %a955) + %t956 = load { ptr, i64, i64 }, ptr %a952 + %t957 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t958 = load { ptr, i64, i64 }, ptr %t957 + store { ptr, i64, i64 } %t956, ptr %a960 + store { ptr, i64, i64 } %t958, ptr %a961 + call void @finch_str_concat(ptr %a959, ptr %a960, ptr %a961) + store { ptr, i64, i64 } %t956, ptr %a962 + call void @finch_str_drop(ptr %a962) + %t963 = load { ptr, i64, i64 }, ptr %a959 + store { ptr, i64, i64 } %t963, ptr %a965 + store { ptr, i64, i64 } { ptr @.str.2356, i64 1, i64 0 }, ptr %a966 + call void @finch_str_concat(ptr %a964, ptr %a965, ptr %a966) + store { ptr, i64, i64 } %t963, ptr %a967 + call void @finch_str_drop(ptr %a967) + %t968 = load { ptr, i64, i64 }, ptr %a964 + call void @finch.gen.fail(ptr %t944, %S.ast.Node %t945, { ptr, i64, i64 } %t968) + store { ptr, i64, i64 } %t968, ptr %a969 + call void @finch_str_drop(ptr %a969) + br label %endif3784 +endif3784: + br label %endif3757 +else3756: + %t970 = load ptr, ptr %a1 + %t971 = load ptr, ptr %a1 + %t972 = icmp eq ptr %t971, null + br i1 %t972, label %panic3785, label %ok3786 panic3785: - call void @finch_panic(ptr @.str.2351, i64 1584, ptr @.str.2352) + call void @finch_panic(ptr @.str.2357, i64 1610, ptr @.str.2358) unreachable ok3786: - %t1327 = getelementptr inbounds %S.gen.Gen, ptr %t1325, i32 0, i32 15 - %t1328 = load i64, ptr %a1302 - %t1329 = load { ptr, i64, i64 }, ptr %t1327 - %t1330 = extractvalue { ptr, i64, i64 } %t1329, 1 - %t1331 = icmp uge i64 %t1328, %t1330 - br i1 %t1331, label %range3787, label %inrange3788 -range3787: - call void @finch_panic_index(ptr @.str.2353, i64 1584, i64 %t1328, i64 %t1330) - unreachable -inrange3788: - %t1332 = extractvalue { ptr, i64, i64 } %t1329, 0 - %t1333 = getelementptr inbounds %S.gen.FnSig, ptr %t1332, i64 %t1328 - %t1334 = getelementptr inbounds %S.gen.FnSig, ptr %t1333, i32 0, i32 17 - %t1335 = load i64, ptr %t1334 - %t1336 = load { ptr, i64, i64 }, ptr %t1324 - %t1337 = extractvalue { ptr, i64, i64 } %t1336, 1 - %t1338 = icmp uge i64 %t1335, %t1337 - br i1 %t1338, label %range3789, label %inrange3790 -range3789: - call void @finch_panic_index(ptr @.str.2354, i64 1584, i64 %t1335, i64 %t1337) - unreachable -inrange3790: - %t1339 = extractvalue { ptr, i64, i64 } %t1336, 0 - %t1340 = getelementptr inbounds %S.ast.Node, ptr %t1339, i64 %t1335 - %t1341 = load %S.ast.Node, ptr %t1340 - store %S.ast.Node %t1341, ptr %a1342 - call void @finch.copy.S_ast_Node(ptr %a1343, ptr %a1342) - %t1344 = load %S.ast.Node, ptr %a1343 - store %S.ast.Node %t1344, ptr %a1345 - %t1346 = getelementptr inbounds %S.ast.Node, ptr %a1345, i32 0, i32 9 - %t1347 = getelementptr inbounds %S.ast.Node, ptr %a1345, i32 0, i32 9 - %t1348 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1347, i32 0, i32 1 - %t1349 = load i64, ptr %t1348 - %t1350 = sub i64 %t1349, 1 - %t1351 = load { ptr, i64, i64 }, ptr %t1346 - %t1352 = extractvalue { ptr, i64, i64 } %t1351, 1 - %t1353 = icmp uge i64 %t1350, %t1352 - br i1 %t1353, label %range3791, label %inrange3792 -range3791: - call void @finch_panic_index(ptr @.str.2355, i64 1585, i64 %t1350, i64 %t1352) - unreachable -inrange3792: - %t1354 = extractvalue { ptr, i64, i64 } %t1351, 0 - %t1355 = getelementptr inbounds %S.ast.Node, ptr %t1354, i64 %t1350 - %t1356 = load %S.ast.Node, ptr %t1355 - store %S.ast.Node %t1356, ptr %a1357 - call void @finch.copy.S_ast_Node(ptr %a1358, ptr %a1357) - %t1359 = load %S.ast.Node, ptr %a1358 - store %S.ast.Node %t1359, ptr %a1360 - %t1361 = load ptr, ptr %a1 - %t1362 = icmp eq ptr %t1361, null - br i1 %t1362, label %panic3793, label %ok3794 + %t973 = getelementptr inbounds %S.gen.Gen, ptr %t971, i32 0, i32 14 + %t974 = load { ptr, i64, i64 }, ptr %t973 + %t975 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t976 = load { ptr, i64, i64 }, ptr %t975 + %t977 = call i64 @finch.gen.findFn(ptr %t970, { ptr, i64, i64 } %t974, { ptr, i64, i64 } %t976) + %t978 = icmp sge i64 %t977, 0 + br i1 %t978, label %then3787, label %endif3789 +then3787: + %t979 = load ptr, ptr %a1 + %t980 = load %S.ast.Node, ptr %a686 + %t981 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t982 = load { ptr, i64, i64 }, ptr %t981 + store { ptr, i64, i64 } { ptr @.str.2359, i64 10, i64 0 }, ptr %a984 + store { ptr, i64, i64 } %t982, ptr %a985 + call void @finch_str_concat(ptr %a983, ptr %a984, ptr %a985) + %t986 = load { ptr, i64, i64 }, ptr %a983 + store { ptr, i64, i64 } %t986, ptr %a988 + store { ptr, i64, i64 } { ptr @.str.2360, i64 18, i64 0 }, ptr %a989 + call void @finch_str_concat(ptr %a987, ptr %a988, ptr %a989) + store { ptr, i64, i64 } %t986, ptr %a990 + call void @finch_str_drop(ptr %a990) + %t991 = load { ptr, i64, i64 }, ptr %a987 + call void @finch.gen.fail(ptr %t979, %S.ast.Node %t980, { ptr, i64, i64 } %t991) + store { ptr, i64, i64 } %t991, ptr %a992 + call void @finch_str_drop(ptr %a992) + br label %endif3789 +endif3789: + %t993 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t994 = load { ptr, i64, i64 }, ptr %t993 + %t995 = call i1 @finch.gen.isBuiltin({ ptr, i64, i64 } %t994) + br i1 %t995, label %then3790, label %endif3792 +then3790: + %t996 = load ptr, ptr %a1 + %t997 = load %S.ast.Node, ptr %a686 + %t998 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t999 = load { ptr, i64, i64 }, ptr %t998 + store { ptr, i64, i64 } { ptr @.str.2361, i64 1, i64 0 }, ptr %a1001 + store { ptr, i64, i64 } %t999, ptr %a1002 + call void @finch_str_concat(ptr %a1000, ptr %a1001, ptr %a1002) + %t1003 = load { ptr, i64, i64 }, ptr %a1000 + store { ptr, i64, i64 } %t1003, ptr %a1005 + store { ptr, i64, i64 } { ptr @.str.2362, i64 43, i64 0 }, ptr %a1006 + call void @finch_str_concat(ptr %a1004, ptr %a1005, ptr %a1006) + store { ptr, i64, i64 } %t1003, ptr %a1007 + call void @finch_str_drop(ptr %a1007) + %t1008 = load { ptr, i64, i64 }, ptr %a1004 + call void @finch.gen.fail(ptr %t996, %S.ast.Node %t997, { ptr, i64, i64 } %t1008) + store { ptr, i64, i64 } %t1008, ptr %a1009 + call void @finch_str_drop(ptr %a1009) + br label %endif3792 +endif3792: + br label %endif3757 +endif3757: + br label %endif3751 +endif3751: + %t1010 = load ptr, ptr %a1 + %t1011 = icmp eq ptr %t1010, null + br i1 %t1011, label %panic3793, label %ok3794 panic3793: - call void @finch_panic(ptr @.str.2356, i64 1586, ptr @.str.2357) + call void @finch_panic(ptr @.str.2363, i64 1617, ptr @.str.2364) unreachable ok3794: - %t1363 = getelementptr inbounds %S.gen.Gen, ptr %t1361, i32 0, i32 15 - %t1364 = load i64, ptr %a1302 - %t1365 = load { ptr, i64, i64 }, ptr %t1363 - %t1366 = extractvalue { ptr, i64, i64 } %t1365, 1 - %t1367 = icmp uge i64 %t1364, %t1366 - br i1 %t1367, label %range3795, label %inrange3796 -range3795: - call void @finch_panic_index(ptr @.str.2358, i64 1586, i64 %t1364, i64 %t1366) + %t1012 = getelementptr inbounds %S.gen.Gen, ptr %t1010, i32 0, i32 14 + %t1013 = load { ptr, i64, i64 }, ptr %t1012 + store { ptr, i64, i64 } %t1013, ptr %a1014 + call void @finch_str_copy(ptr %a1015, ptr %a1014) + %t1016 = load { ptr, i64, i64 }, ptr %a1015 + %t1017 = insertvalue %S.gen.FnSig zeroinitializer, { ptr, i64, i64 } %t1016, 0 + %t1018 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t1019 = load { ptr, i64, i64 }, ptr %t1018 + store { ptr, i64, i64 } %t1019, ptr %a1020 + call void @finch_str_copy(ptr %a1021, ptr %a1020) + %t1022 = load { ptr, i64, i64 }, ptr %a1021 + %t1023 = insertvalue %S.gen.FnSig %t1017, { ptr, i64, i64 } %t1022, 1 + %t1024 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t1025 = load { ptr, i64, i64 }, ptr %t1024 + store { ptr, i64, i64 } %t1025, ptr %a1026 + call void @finch_str_copy(ptr %a1027, ptr %a1026) + %t1028 = load { ptr, i64, i64 }, ptr %a1027 + %t1029 = insertvalue %S.gen.FnSig %t1023, { ptr, i64, i64 } %t1028, 2 + %t1030 = load { ptr, i64, i64 }, ptr %a789 + store { ptr, i64, i64 } %t1030, ptr %a1031 + call void @finch_str_copy(ptr %a1032, ptr %a1031) + %t1033 = load { ptr, i64, i64 }, ptr %a1032 + %t1034 = insertvalue %S.gen.FnSig %t1029, { ptr, i64, i64 } %t1033, 3 + %t1035 = load i1, ptr %a790 + %t1036 = insertvalue %S.gen.FnSig %t1034, i1 %t1035, 4 + %t1037 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 8 + %t1038 = load i1, ptr %t1037 + %t1039 = insertvalue %S.gen.FnSig %t1036, i1 %t1038, 5 + %t1040 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 7 + %t1041 = load i1, ptr %t1040 + %t1042 = insertvalue %S.gen.FnSig %t1039, i1 %t1041, 9 + %t1043 = load i64, ptr %a629 + %t1044 = insertvalue %S.gen.FnSig %t1042, i64 %t1043, 16 + %t1045 = load i64, ptr %a663 + %t1046 = insertvalue %S.gen.FnSig %t1044, i64 %t1045, 17 + store %S.gen.FnSig %t1046, ptr %a1047 + %t1048 = load ptr, ptr %a1 + %t1049 = icmp eq ptr %t1048, null + br i1 %t1049, label %panic3795, label %ok3796 +panic3795: + call void @finch_panic(ptr @.str.2366, i64 1618, ptr @.str.2367) unreachable -inrange3796: - %t1368 = extractvalue { ptr, i64, i64 } %t1365, 0 - %t1369 = getelementptr inbounds %S.gen.FnSig, ptr %t1368, i64 %t1364 - %t1370 = getelementptr inbounds %S.gen.FnSig, ptr %t1369, i32 0, i32 13 - %t1371 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1370, i32 0, i32 1 - %t1372 = load i64, ptr %t1371 - store i64 0, ptr %a1373 - br label %for.cond3797 -for.cond3797: - %t1374 = load i64, ptr %a1373 - %t1375 = icmp slt i64 %t1374, %t1372 - br i1 %t1375, label %for.body3798, label %for.end3800 -for.body3798: - %t1376 = load ptr, ptr %a1 - %t1377 = icmp eq ptr %t1376, null - br i1 %t1377, label %panic3801, label %ok3802 -panic3801: - call void @finch_panic(ptr @.str.2359, i64 1587, ptr @.str.2360) +ok3796: + %t1050 = getelementptr inbounds %S.gen.Gen, ptr %t1048, i32 0, i32 14 + %t1051 = load { ptr, i64, i64 }, ptr %t1050 + %t1052 = call { ptr, i64, i64 } @finch.gen.modName({ ptr, i64, i64 } %t1051) + store { ptr, i64, i64 } { ptr @.str.2365, i64 7, i64 0 }, ptr %a1054 + store { ptr, i64, i64 } %t1052, ptr %a1055 + call void @finch_str_concat(ptr %a1053, ptr %a1054, ptr %a1055) + store { ptr, i64, i64 } %t1052, ptr %a1056 + call void @finch_str_drop(ptr %a1056) + %t1057 = load { ptr, i64, i64 }, ptr %a1053 + store { ptr, i64, i64 } %t1057, ptr %a1059 + store { ptr, i64, i64 } { ptr @.str.2368, i64 1, i64 0 }, ptr %a1060 + call void @finch_str_concat(ptr %a1058, ptr %a1059, ptr %a1060) + store { ptr, i64, i64 } %t1057, ptr %a1061 + call void @finch_str_drop(ptr %a1061) + %t1062 = load { ptr, i64, i64 }, ptr %a1058 + %t1063 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t1064 = load { ptr, i64, i64 }, ptr %t1063 + store { ptr, i64, i64 } %t1062, ptr %a1066 + store { ptr, i64, i64 } %t1064, ptr %a1067 + call void @finch_str_concat(ptr %a1065, ptr %a1066, ptr %a1067) + store { ptr, i64, i64 } %t1062, ptr %a1068 + call void @finch_str_drop(ptr %a1068) + %t1069 = load { ptr, i64, i64 }, ptr %a1065 + %t1070 = getelementptr inbounds %S.gen.FnSig, ptr %a1047, i32 0, i32 11 + %t1071 = load { ptr, i64, i64 }, ptr %t1070 + store { ptr, i64, i64 } %t1069, ptr %t1070 + store { ptr, i64, i64 } %t1071, ptr %a1072 + call void @finch_str_drop(ptr %a1072) + %t1073 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t1074 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1073, i32 0, i32 1 + %t1075 = load i64, ptr %t1074 + %t1076 = icmp sgt i64 %t1075, 0 + br i1 %t1076, label %then3797, label %endif3799 +then3797: + %t1077 = load ptr, ptr %a1 + %t1078 = icmp eq ptr %t1077, null + br i1 %t1078, label %panic3800, label %ok3801 +panic3800: + call void @finch_panic(ptr @.str.2370, i64 1620, ptr @.str.2371) unreachable -ok3802: - %t1378 = getelementptr inbounds %S.gen.Gen, ptr %t1376, i32 0, i32 15 - %t1379 = load i64, ptr %a1302 - %t1380 = load { ptr, i64, i64 }, ptr %t1378 - %t1381 = extractvalue { ptr, i64, i64 } %t1380, 1 - %t1382 = icmp uge i64 %t1379, %t1381 - br i1 %t1382, label %range3803, label %inrange3804 -range3803: - call void @finch_panic_index(ptr @.str.2361, i64 1587, i64 %t1379, i64 %t1381) +ok3801: + %t1079 = getelementptr inbounds %S.gen.Gen, ptr %t1077, i32 0, i32 14 + %t1080 = load { ptr, i64, i64 }, ptr %t1079 + %t1081 = call { ptr, i64, i64 } @finch.gen.modName({ ptr, i64, i64 } %t1080) + store { ptr, i64, i64 } { ptr @.str.2369, i64 7, i64 0 }, ptr %a1083 + store { ptr, i64, i64 } %t1081, ptr %a1084 + call void @finch_str_concat(ptr %a1082, ptr %a1083, ptr %a1084) + store { ptr, i64, i64 } %t1081, ptr %a1085 + call void @finch_str_drop(ptr %a1085) + %t1086 = load { ptr, i64, i64 }, ptr %a1082 + store { ptr, i64, i64 } %t1086, ptr %a1088 + store { ptr, i64, i64 } { ptr @.str.2372, i64 1, i64 0 }, ptr %a1089 + call void @finch_str_concat(ptr %a1087, ptr %a1088, ptr %a1089) + store { ptr, i64, i64 } %t1086, ptr %a1090 + call void @finch_str_drop(ptr %a1090) + %t1091 = load { ptr, i64, i64 }, ptr %a1087 + %t1092 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t1093 = load { ptr, i64, i64 }, ptr %t1092 + store { ptr, i64, i64 } %t1091, ptr %a1095 + store { ptr, i64, i64 } %t1093, ptr %a1096 + call void @finch_str_concat(ptr %a1094, ptr %a1095, ptr %a1096) + store { ptr, i64, i64 } %t1091, ptr %a1097 + call void @finch_str_drop(ptr %a1097) + %t1098 = load { ptr, i64, i64 }, ptr %a1094 + store { ptr, i64, i64 } %t1098, ptr %a1100 + store { ptr, i64, i64 } { ptr @.str.2373, i64 1, i64 0 }, ptr %a1101 + call void @finch_str_concat(ptr %a1099, ptr %a1100, ptr %a1101) + store { ptr, i64, i64 } %t1098, ptr %a1102 + call void @finch_str_drop(ptr %a1102) + %t1103 = load { ptr, i64, i64 }, ptr %a1099 + %t1104 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 1 + %t1105 = load { ptr, i64, i64 }, ptr %t1104 + store { ptr, i64, i64 } %t1103, ptr %a1107 + store { ptr, i64, i64 } %t1105, ptr %a1108 + call void @finch_str_concat(ptr %a1106, ptr %a1107, ptr %a1108) + store { ptr, i64, i64 } %t1103, ptr %a1109 + call void @finch_str_drop(ptr %a1109) + %t1110 = load { ptr, i64, i64 }, ptr %a1106 + %t1111 = getelementptr inbounds %S.gen.FnSig, ptr %a1047, i32 0, i32 11 + %t1112 = load { ptr, i64, i64 }, ptr %t1111 + store { ptr, i64, i64 } %t1110, ptr %t1111 + store { ptr, i64, i64 } %t1112, ptr %a1113 + call void @finch_str_drop(ptr %a1113) + br label %endif3799 +endif3799: + %t1114 = load ptr, ptr %a1 + %t1115 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 5 + %t1116 = load %S.ast.Type, ptr %t1115 + %t1117 = load %S.ast.Node, ptr %a686 + %t1118 = call %S.ast.Type @finch.gen.resolve(ptr %t1114, %S.ast.Type %t1116, %S.ast.Node %t1117) + %t1119 = getelementptr inbounds %S.gen.FnSig, ptr %a1047, i32 0, i32 12 + %t1120 = load %S.ast.Type, ptr %t1119 + store %S.ast.Type %t1118, ptr %t1119 + store %S.ast.Type %t1120, ptr %a1121 + call void @finch.drop.S_ast_Type(ptr %a1121) + %t1122 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 9 + %t1123 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1122, i32 0, i32 1 + %t1124 = load i64, ptr %t1123 + %t1125 = sub i64 %t1124, 1 + store i64 0, ptr %a1126 + br label %for.cond3802 +for.cond3802: + %t1127 = load i64, ptr %a1126 + %t1128 = icmp slt i64 %t1127, %t1125 + br i1 %t1128, label %for.body3803, label %for.end3805 +for.body3803: + %t1129 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 9 + %t1130 = load i64, ptr %a1126 + %t1131 = load { ptr, i64, i64 }, ptr %t1129 + %t1132 = extractvalue { ptr, i64, i64 } %t1131, 1 + %t1133 = icmp uge i64 %t1130, %t1132 + br i1 %t1133, label %range3806, label %inrange3807 +range3806: + call void @finch_panic_index(ptr @.str.2374, i64 1624, i64 %t1130, i64 %t1132) unreachable -inrange3804: - %t1383 = extractvalue { ptr, i64, i64 } %t1380, 0 - %t1384 = getelementptr inbounds %S.gen.FnSig, ptr %t1383, i64 %t1379 - %t1385 = getelementptr inbounds %S.gen.FnSig, ptr %t1384, i32 0, i32 13 - %t1386 = load i64, ptr %a1373 - %t1387 = load { ptr, i64, i64 }, ptr %t1385 - %t1388 = extractvalue { ptr, i64, i64 } %t1387, 1 - %t1389 = icmp uge i64 %t1386, %t1388 - br i1 %t1389, label %range3805, label %inrange3806 -range3805: - call void @finch_panic_index(ptr @.str.2362, i64 1587, i64 %t1386, i64 %t1388) +inrange3807: + %t1134 = extractvalue { ptr, i64, i64 } %t1131, 0 + %t1135 = getelementptr inbounds %S.ast.Node, ptr %t1134, i64 %t1130 + %t1136 = getelementptr inbounds %S.ast.Node, ptr %t1135, i32 0, i32 1 + %t1137 = load { ptr, i64, i64 }, ptr %t1136 + store { ptr, i64, i64 } %t1137, ptr %a1138 + store { ptr, i64, i64 } { ptr @.str.2375, i64 4, i64 0 }, ptr %a1139 + %t1140 = call i32 @finch_str_eq(ptr %a1138, ptr %a1139) + %t1141 = icmp ne i32 %t1140, 0 + br label %logic.from3808 +logic.from3808: + br i1 %t1141, label %logic.rhs3809, label %logic.end3810 +logic.rhs3809: + %t1142 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t1143 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1142, i32 0, i32 1 + %t1144 = load i64, ptr %t1143 + %t1145 = icmp sgt i64 %t1144, 0 + br label %logic.rend3811 +logic.rend3811: + br label %logic.end3810 +logic.end3810: + %t1146 = phi i1 [ false, %logic.from3808 ], [ %t1145, %logic.rend3811 ] + br i1 %t1146, label %then3812, label %endif3814 +then3812: + %t1147 = load ptr, ptr %a1 + %t1148 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 9 + %t1149 = load i64, ptr %a1126 + %t1150 = load { ptr, i64, i64 }, ptr %t1148 + %t1151 = extractvalue { ptr, i64, i64 } %t1150, 1 + %t1152 = icmp uge i64 %t1149, %t1151 + br i1 %t1152, label %range3815, label %inrange3816 +range3815: + call void @finch_panic_index(ptr @.str.2376, i64 1625, i64 %t1149, i64 %t1151) unreachable -inrange3806: - %t1390 = extractvalue { ptr, i64, i64 } %t1387, 0 - %t1391 = getelementptr inbounds %S.ast.Type, ptr %t1390, i64 %t1386 - %t1392 = load %S.ast.Type, ptr %t1391 - store %S.ast.Type %t1392, ptr %a1393 - call void @finch.copy.S_ast_Type(ptr %a1394, ptr %a1393) - %t1395 = load %S.ast.Type, ptr %a1394 - store %S.ast.Type %t1395, ptr %a1396 - %t1397 = load ptr, ptr %a1 - %t1398 = icmp eq ptr %t1397, null - br i1 %t1398, label %panic3807, label %ok3808 -panic3807: - call void @finch_panic(ptr @.str.2363, i64 1588, ptr @.str.2364) +inrange3816: + %t1153 = extractvalue { ptr, i64, i64 } %t1150, 0 + %t1154 = getelementptr inbounds %S.ast.Node, ptr %t1153, i64 %t1149 + %t1155 = load %S.ast.Node, ptr %t1154 + %t1156 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 2 + %t1157 = load { ptr, i64, i64 }, ptr %t1156 + store { ptr, i64, i64 } { ptr @.str.2377, i64 22, i64 0 }, ptr %a1159 + store { ptr, i64, i64 } %t1157, ptr %a1160 + call void @finch_str_concat(ptr %a1158, ptr %a1159, ptr %a1160) + %t1161 = load { ptr, i64, i64 }, ptr %a1158 + store { ptr, i64, i64 } %t1161, ptr %a1163 + store { ptr, i64, i64 } { ptr @.str.2378, i64 24, i64 0 }, ptr %a1164 + call void @finch_str_concat(ptr %a1162, ptr %a1163, ptr %a1164) + store { ptr, i64, i64 } %t1161, ptr %a1165 + call void @finch_str_drop(ptr %a1165) + %t1166 = load { ptr, i64, i64 }, ptr %a1162 + call void @finch.gen.fail(ptr %t1147, %S.ast.Node %t1155, { ptr, i64, i64 } %t1166) + store { ptr, i64, i64 } %t1166, ptr %a1167 + call void @finch_str_drop(ptr %a1167) + br label %endif3814 +endif3814: + %t1168 = getelementptr inbounds %S.gen.FnSig, ptr %a1047, i32 0, i32 13 + %t1169 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1168, i32 0, i32 1 + %t1170 = load ptr, ptr %a1 + %t1171 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 9 + %t1172 = load i64, ptr %a1126 + %t1173 = load { ptr, i64, i64 }, ptr %t1171 + %t1174 = extractvalue { ptr, i64, i64 } %t1173, 1 + %t1175 = icmp uge i64 %t1172, %t1174 + br i1 %t1175, label %range3817, label %inrange3818 +range3817: + call void @finch_panic_index(ptr @.str.2379, i64 1627, i64 %t1172, i64 %t1174) unreachable -ok3808: - %t1399 = getelementptr inbounds %S.gen.Gen, ptr %t1397, i32 0, i32 15 - %t1400 = load i64, ptr %a1302 - %t1401 = load { ptr, i64, i64 }, ptr %t1399 +inrange3818: + %t1176 = extractvalue { ptr, i64, i64 } %t1173, 0 + %t1177 = getelementptr inbounds %S.ast.Node, ptr %t1176, i64 %t1172 + %t1178 = getelementptr inbounds %S.ast.Node, ptr %t1177, i32 0, i32 5 + %t1179 = load %S.ast.Type, ptr %t1178 + %t1180 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 9 + %t1181 = load i64, ptr %a1126 + %t1182 = load { ptr, i64, i64 }, ptr %t1180 + %t1183 = extractvalue { ptr, i64, i64 } %t1182, 1 + %t1184 = icmp uge i64 %t1181, %t1183 + br i1 %t1184, label %range3819, label %inrange3820 +range3819: + call void @finch_panic_index(ptr @.str.2380, i64 1627, i64 %t1181, i64 %t1183) + unreachable +inrange3820: + %t1185 = extractvalue { ptr, i64, i64 } %t1182, 0 + %t1186 = getelementptr inbounds %S.ast.Node, ptr %t1185, i64 %t1181 + %t1187 = load %S.ast.Node, ptr %t1186 + %t1188 = call %S.ast.Type @finch.gen.resolve(ptr %t1170, %S.ast.Type %t1179, %S.ast.Node %t1187) + %t1189 = load i64, ptr %t1169 + %t1190 = add i64 %t1189, 1 + call void @finch_arr_reserve(ptr %t1168, i64 %t1190, i64 ptrtoint (ptr getelementptr (%S.ast.Type, ptr null, i32 1) to i64)) + %t1191 = load ptr, ptr %t1168 + %t1192 = getelementptr inbounds %S.ast.Type, ptr %t1191, i64 %t1189 + store %S.ast.Type %t1188, ptr %t1192 + store i64 %t1190, ptr %t1169 + %t1193 = getelementptr inbounds %S.gen.FnSig, ptr %a1047, i32 0, i32 14 + %t1194 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1193, i32 0, i32 1 + %t1195 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 9 + %t1196 = load i64, ptr %a1126 + %t1197 = load { ptr, i64, i64 }, ptr %t1195 + %t1198 = extractvalue { ptr, i64, i64 } %t1197, 1 + %t1199 = icmp uge i64 %t1196, %t1198 + br i1 %t1199, label %range3821, label %inrange3822 +range3821: + call void @finch_panic_index(ptr @.str.2381, i64 1628, i64 %t1196, i64 %t1198) + unreachable +inrange3822: + %t1200 = extractvalue { ptr, i64, i64 } %t1197, 0 + %t1201 = getelementptr inbounds %S.ast.Node, ptr %t1200, i64 %t1196 + %t1202 = getelementptr inbounds %S.ast.Node, ptr %t1201, i32 0, i32 1 + %t1203 = load { ptr, i64, i64 }, ptr %t1202 + store { ptr, i64, i64 } %t1203, ptr %a1204 + call void @finch_str_copy(ptr %a1205, ptr %a1204) + %t1206 = load { ptr, i64, i64 }, ptr %a1205 + %t1207 = load i64, ptr %t1194 + %t1208 = add i64 %t1207, 1 + call void @finch_arr_reserve(ptr %t1193, i64 %t1208, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t1209 = load ptr, ptr %t1193 + %t1210 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1209, i64 %t1207 + store { ptr, i64, i64 } %t1206, ptr %t1210 + store i64 %t1208, ptr %t1194 + br label %for.step3804 +for.step3804: + %t1211 = load i64, ptr %a1126 + %t1212 = add i64 %t1211, 1 + store i64 %t1212, ptr %a1126 + br label %for.cond3802 +for.end3805: + %t1213 = getelementptr inbounds %S.ast.Node, ptr %a686, i32 0, i32 8 + %t1214 = load i1, ptr %t1213 + br i1 %t1214, label %then3823, label %endif3825 +then3823: + %t1215 = load ptr, ptr %a1 + %t1216 = load %S.ast.Node, ptr %a686 + %t1217 = load %S.gen.FnSig, ptr %a1047 + call void @finch.gen.checkExport(ptr %t1215, %S.ast.Node %t1216, %S.gen.FnSig %t1217) + br label %endif3825 +endif3825: + %t1218 = load ptr, ptr %a1 + %t1219 = icmp eq ptr %t1218, null + br i1 %t1219, label %panic3826, label %ok3827 +panic3826: + call void @finch_panic(ptr @.str.2382, i64 1633, ptr @.str.2383) + unreachable +ok3827: + %t1220 = getelementptr inbounds %S.gen.Gen, ptr %t1218, i32 0, i32 15 + %t1221 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1220, i32 0, i32 1 + %t1222 = load %S.gen.FnSig, ptr %a1047 + store %S.gen.FnSig %t1222, ptr %a1223 + call void @finch.copy.S_gen_FnSig(ptr %a1224, ptr %a1223) + %t1225 = load %S.gen.FnSig, ptr %a1224 + %t1226 = load i64, ptr %t1221 + %t1227 = add i64 %t1226, 1 + call void @finch_arr_reserve(ptr %t1220, i64 %t1227, i64 ptrtoint (ptr getelementptr (%S.gen.FnSig, ptr null, i32 1) to i64)) + %t1228 = load ptr, ptr %t1220 + %t1229 = getelementptr inbounds %S.gen.FnSig, ptr %t1228, i64 %t1226 + store %S.gen.FnSig %t1225, ptr %t1229 + store i64 %t1227, ptr %t1221 + call void @finch.drop.S_gen_FnSig(ptr %a1047) + call void @finch_str_drop(ptr %a789) + call void @finch.drop.S_ast_Node(ptr %a686) + br label %for.step3712 +for.step3712: + %t1230 = load i64, ptr %a663 + %t1231 = add i64 %t1230, 1 + store i64 %t1231, ptr %a663 + br label %for.cond3710 +for.end3713: + br label %for.step3698 +for.step3698: + %t1232 = load i64, ptr %a629 + %t1233 = add i64 %t1232, 1 + store i64 %t1233, ptr %a629 + br label %for.cond3696 +for.end3699: + store i1 true, ptr %a1234 + br label %while.cond3828 +while.cond3828: + %t1235 = load i1, ptr %a1234 + br i1 %t1235, label %while.body3829, label %while.end3830 +while.body3829: + store i1 false, ptr %a1234 + %t1236 = load ptr, ptr %a1 + %t1237 = icmp eq ptr %t1236, null + br i1 %t1237, label %panic3831, label %ok3832 +panic3831: + call void @finch_panic(ptr @.str.2384, i64 1641, ptr @.str.2385) + unreachable +ok3832: + %t1238 = getelementptr inbounds %S.gen.Gen, ptr %t1236, i32 0, i32 15 + %t1239 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1238, i32 0, i32 1 + %t1240 = load i64, ptr %t1239 + store i64 0, ptr %a1241 + br label %for.cond3833 +for.cond3833: + %t1242 = load i64, ptr %a1241 + %t1243 = icmp slt i64 %t1242, %t1240 + br i1 %t1243, label %for.body3834, label %for.end3836 +for.body3834: + %t1244 = load ptr, ptr %a1 + %t1245 = icmp eq ptr %t1244, null + br i1 %t1245, label %panic3837, label %ok3838 +panic3837: + call void @finch_panic(ptr @.str.2386, i64 1642, ptr @.str.2387) + unreachable +ok3838: + %t1246 = getelementptr inbounds %S.gen.Gen, ptr %t1244, i32 0, i32 15 + %t1247 = load i64, ptr %a1241 + %t1248 = load { ptr, i64, i64 }, ptr %t1246 + %t1249 = extractvalue { ptr, i64, i64 } %t1248, 1 + %t1250 = icmp uge i64 %t1247, %t1249 + br i1 %t1250, label %range3839, label %inrange3840 +range3839: + call void @finch_panic_index(ptr @.str.2388, i64 1642, i64 %t1247, i64 %t1249) + unreachable +inrange3840: + %t1251 = extractvalue { ptr, i64, i64 } %t1248, 0 + %t1252 = getelementptr inbounds %S.gen.FnSig, ptr %t1251, i64 %t1247 + %t1253 = getelementptr inbounds %S.gen.FnSig, ptr %t1252, i32 0, i32 2 + %t1254 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1253, i32 0, i32 1 + %t1255 = load i64, ptr %t1254 + %t1256 = icmp sgt i64 %t1255, 0 + br label %logic.from3841 +logic.from3841: + br i1 %t1256, label %logic.rhs3842, label %logic.end3843 +logic.rhs3842: + %t1257 = load ptr, ptr %a1 + %t1258 = icmp eq ptr %t1257, null + br i1 %t1258, label %panic3844, label %ok3845 +panic3844: + call void @finch_panic(ptr @.str.2389, i64 1642, ptr @.str.2390) + unreachable +ok3845: + %t1259 = getelementptr inbounds %S.gen.Gen, ptr %t1257, i32 0, i32 15 + %t1260 = load i64, ptr %a1241 + %t1261 = load { ptr, i64, i64 }, ptr %t1259 + %t1262 = extractvalue { ptr, i64, i64 } %t1261, 1 + %t1263 = icmp uge i64 %t1260, %t1262 + br i1 %t1263, label %range3846, label %inrange3847 +range3846: + call void @finch_panic_index(ptr @.str.2391, i64 1642, i64 %t1260, i64 %t1262) + unreachable +inrange3847: + %t1264 = extractvalue { ptr, i64, i64 } %t1261, 0 + %t1265 = getelementptr inbounds %S.gen.FnSig, ptr %t1264, i64 %t1260 + %t1266 = getelementptr inbounds %S.gen.FnSig, ptr %t1265, i32 0, i32 10 + %t1267 = load i1, ptr %t1266 + %t1268 = xor i1 %t1267, true + br label %logic.rend3848 +logic.rend3848: + br label %logic.end3843 +logic.end3843: + %t1269 = phi i1 [ false, %logic.from3841 ], [ %t1268, %logic.rend3848 ] + br i1 %t1269, label %then3849, label %endif3851 +then3849: + %t1270 = load ptr, ptr %a1 + %t1271 = icmp eq ptr %t1270, null + br i1 %t1271, label %panic3852, label %ok3853 +panic3852: + call void @finch_panic(ptr @.str.2392, i64 1643, ptr @.str.2393) + unreachable +ok3853: + %t1272 = getelementptr inbounds %S.gen.Gen, ptr %t1270, i32 0, i32 0 + %t1273 = load ptr, ptr %a1 + %t1274 = icmp eq ptr %t1273, null + br i1 %t1274, label %panic3854, label %ok3855 +panic3854: + call void @finch_panic(ptr @.str.2394, i64 1643, ptr @.str.2395) + unreachable +ok3855: + %t1275 = getelementptr inbounds %S.gen.Gen, ptr %t1273, i32 0, i32 15 + %t1276 = load i64, ptr %a1241 + %t1277 = load { ptr, i64, i64 }, ptr %t1275 + %t1278 = extractvalue { ptr, i64, i64 } %t1277, 1 + %t1279 = icmp uge i64 %t1276, %t1278 + br i1 %t1279, label %range3856, label %inrange3857 +range3856: + call void @finch_panic_index(ptr @.str.2396, i64 1643, i64 %t1276, i64 %t1278) + unreachable +inrange3857: + %t1280 = extractvalue { ptr, i64, i64 } %t1277, 0 + %t1281 = getelementptr inbounds %S.gen.FnSig, ptr %t1280, i64 %t1276 + %t1282 = getelementptr inbounds %S.gen.FnSig, ptr %t1281, i32 0, i32 16 + %t1283 = load i64, ptr %t1282 + %t1284 = load { ptr, i64, i64 }, ptr %t1272 + %t1285 = extractvalue { ptr, i64, i64 } %t1284, 1 + %t1286 = icmp uge i64 %t1283, %t1285 + br i1 %t1286, label %range3858, label %inrange3859 +range3858: + call void @finch_panic_index(ptr @.str.2397, i64 1643, i64 %t1283, i64 %t1285) + unreachable +inrange3859: + %t1287 = extractvalue { ptr, i64, i64 } %t1284, 0 + %t1288 = getelementptr inbounds %S.ast.Program, ptr %t1287, i64 %t1283 + %t1289 = getelementptr inbounds %S.ast.Program, ptr %t1288, i32 0, i32 8 + %t1290 = load ptr, ptr %a1 + %t1291 = icmp eq ptr %t1290, null + br i1 %t1291, label %panic3860, label %ok3861 +panic3860: + call void @finch_panic(ptr @.str.2398, i64 1643, ptr @.str.2399) + unreachable +ok3861: + %t1292 = getelementptr inbounds %S.gen.Gen, ptr %t1290, i32 0, i32 15 + %t1293 = load i64, ptr %a1241 + %t1294 = load { ptr, i64, i64 }, ptr %t1292 + %t1295 = extractvalue { ptr, i64, i64 } %t1294, 1 + %t1296 = icmp uge i64 %t1293, %t1295 + br i1 %t1296, label %range3862, label %inrange3863 +range3862: + call void @finch_panic_index(ptr @.str.2400, i64 1643, i64 %t1293, i64 %t1295) + unreachable +inrange3863: + %t1297 = extractvalue { ptr, i64, i64 } %t1294, 0 + %t1298 = getelementptr inbounds %S.gen.FnSig, ptr %t1297, i64 %t1293 + %t1299 = getelementptr inbounds %S.gen.FnSig, ptr %t1298, i32 0, i32 17 + %t1300 = load i64, ptr %t1299 + %t1301 = load { ptr, i64, i64 }, ptr %t1289 + %t1302 = extractvalue { ptr, i64, i64 } %t1301, 1 + %t1303 = icmp uge i64 %t1300, %t1302 + br i1 %t1303, label %range3864, label %inrange3865 +range3864: + call void @finch_panic_index(ptr @.str.2401, i64 1643, i64 %t1300, i64 %t1302) + unreachable +inrange3865: + %t1304 = extractvalue { ptr, i64, i64 } %t1301, 0 + %t1305 = getelementptr inbounds %S.ast.Node, ptr %t1304, i64 %t1300 + %t1306 = load %S.ast.Node, ptr %t1305 + store %S.ast.Node %t1306, ptr %a1307 + call void @finch.copy.S_ast_Node(ptr %a1308, ptr %a1307) + %t1309 = load %S.ast.Node, ptr %a1308 + store %S.ast.Node %t1309, ptr %a1310 + %t1311 = load ptr, ptr %a1 + %t1312 = getelementptr inbounds %S.ast.Node, ptr %a1310, i32 0, i32 9 + %t1313 = getelementptr inbounds %S.ast.Node, ptr %a1310, i32 0, i32 9 + %t1314 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1313, i32 0, i32 1 + %t1315 = load i64, ptr %t1314 + %t1316 = sub i64 %t1315, 1 + %t1317 = load { ptr, i64, i64 }, ptr %t1312 + %t1318 = extractvalue { ptr, i64, i64 } %t1317, 1 + %t1319 = icmp uge i64 %t1316, %t1318 + br i1 %t1319, label %range3866, label %inrange3867 +range3866: + call void @finch_panic_index(ptr @.str.2403, i64 1644, i64 %t1316, i64 %t1318) + unreachable +inrange3867: + %t1320 = extractvalue { ptr, i64, i64 } %t1317, 0 + %t1321 = getelementptr inbounds %S.ast.Node, ptr %t1320, i64 %t1316 + %t1322 = load %S.ast.Node, ptr %t1321 + %t1323 = call i1 @finch.gen.mutates(ptr %t1311, { ptr, i64, i64 } { ptr @.str.2402, i64 4, i64 0 }, %S.ast.Node %t1322) + br i1 %t1323, label %then3868, label %endif3870 +then3868: + %t1324 = load ptr, ptr %a1 + %t1325 = icmp eq ptr %t1324, null + br i1 %t1325, label %panic3871, label %ok3872 +panic3871: + call void @finch_panic(ptr @.str.2404, i64 1645, ptr @.str.2405) + unreachable +ok3872: + %t1326 = getelementptr inbounds %S.gen.Gen, ptr %t1324, i32 0, i32 15 + %t1327 = load i64, ptr %a1241 + %t1328 = load { ptr, i64, i64 }, ptr %t1326 + %t1329 = extractvalue { ptr, i64, i64 } %t1328, 1 + %t1330 = icmp uge i64 %t1327, %t1329 + br i1 %t1330, label %range3873, label %inrange3874 +range3873: + call void @finch_panic_index(ptr @.str.2406, i64 1645, i64 %t1327, i64 %t1329) + unreachable +inrange3874: + %t1331 = extractvalue { ptr, i64, i64 } %t1328, 0 + %t1332 = getelementptr inbounds %S.gen.FnSig, ptr %t1331, i64 %t1327 + %t1333 = getelementptr inbounds %S.gen.FnSig, ptr %t1332, i32 0, i32 10 + store i1 true, ptr %t1333 + %t1334 = load ptr, ptr %a1 + %t1335 = icmp eq ptr %t1334, null + br i1 %t1335, label %panic3875, label %ok3876 +panic3875: + call void @finch_panic(ptr @.str.2407, i64 1646, ptr @.str.2408) + unreachable +ok3876: + %t1336 = getelementptr inbounds %S.gen.Gen, ptr %t1334, i32 0, i32 24 + %t1337 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1336, i32 0, i32 1 + %t1338 = load ptr, ptr %a1 + %t1339 = icmp eq ptr %t1338, null + br i1 %t1339, label %panic3877, label %ok3878 +panic3877: + call void @finch_panic(ptr @.str.2409, i64 1646, ptr @.str.2410) + unreachable +ok3878: + %t1340 = getelementptr inbounds %S.gen.Gen, ptr %t1338, i32 0, i32 15 + %t1341 = load i64, ptr %a1241 + %t1342 = load { ptr, i64, i64 }, ptr %t1340 + %t1343 = extractvalue { ptr, i64, i64 } %t1342, 1 + %t1344 = icmp uge i64 %t1341, %t1343 + br i1 %t1344, label %range3879, label %inrange3880 +range3879: + call void @finch_panic_index(ptr @.str.2411, i64 1646, i64 %t1341, i64 %t1343) + unreachable +inrange3880: + %t1345 = extractvalue { ptr, i64, i64 } %t1342, 0 + %t1346 = getelementptr inbounds %S.gen.FnSig, ptr %t1345, i64 %t1341 + %t1347 = getelementptr inbounds %S.gen.FnSig, ptr %t1346, i32 0, i32 1 + %t1348 = load { ptr, i64, i64 }, ptr %t1347 + store { ptr, i64, i64 } %t1348, ptr %a1349 + call void @finch_str_copy(ptr %a1350, ptr %a1349) + %t1351 = load { ptr, i64, i64 }, ptr %a1350 + %t1352 = load i64, ptr %t1337 + %t1353 = add i64 %t1352, 1 + call void @finch_arr_reserve(ptr %t1336, i64 %t1353, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t1354 = load ptr, ptr %t1336 + %t1355 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1354, i64 %t1352 + store { ptr, i64, i64 } %t1351, ptr %t1355 + store i64 %t1353, ptr %t1337 + store i1 true, ptr %a1234 + br label %endif3870 +endif3870: + call void @finch.drop.S_ast_Node(ptr %a1310) + br label %endif3851 +endif3851: + br label %for.step3835 +for.step3835: + %t1356 = load i64, ptr %a1241 + %t1357 = add i64 %t1356, 1 + store i64 %t1357, ptr %a1241 + br label %for.cond3833 +for.end3836: + %t1358 = load ptr, ptr %a1 + %t1359 = icmp eq ptr %t1358, null + br i1 %t1359, label %panic3881, label %ok3882 +panic3881: + call void @finch_panic(ptr @.str.2412, i64 1651, ptr @.str.2413) + unreachable +ok3882: + %t1360 = getelementptr inbounds %S.gen.Gen, ptr %t1358, i32 0, i32 17 + %t1361 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1360, i32 0, i32 1 + %t1362 = load i64, ptr %t1361 + store i64 0, ptr %a1363 + br label %for.cond3883 +for.cond3883: + %t1364 = load i64, ptr %a1363 + %t1365 = icmp slt i64 %t1364, %t1362 + br i1 %t1365, label %for.body3884, label %for.end3886 +for.body3884: + %t1366 = load ptr, ptr %a1 + %t1367 = icmp eq ptr %t1366, null + br i1 %t1367, label %panic3887, label %ok3888 +panic3887: + call void @finch_panic(ptr @.str.2414, i64 1652, ptr @.str.2415) + unreachable +ok3888: + %t1368 = getelementptr inbounds %S.gen.Gen, ptr %t1366, i32 0, i32 17 + %t1369 = load i64, ptr %a1363 + %t1370 = load { ptr, i64, i64 }, ptr %t1368 + %t1371 = extractvalue { ptr, i64, i64 } %t1370, 1 + %t1372 = icmp uge i64 %t1369, %t1371 + br i1 %t1372, label %range3889, label %inrange3890 +range3889: + call void @finch_panic_index(ptr @.str.2416, i64 1652, i64 %t1369, i64 %t1371) + unreachable +inrange3890: + %t1373 = extractvalue { ptr, i64, i64 } %t1370, 0 + %t1374 = getelementptr inbounds %S.gen.Template, ptr %t1373, i64 %t1369 + %t1375 = load %S.gen.Template, ptr %t1374 + store %S.gen.Template %t1375, ptr %a1376 + call void @finch.copy.S_gen_Template(ptr %a1377, ptr %a1376) + %t1378 = load %S.gen.Template, ptr %a1377 + store %S.gen.Template %t1378, ptr %a1379 + %t1380 = getelementptr inbounds %S.gen.Template, ptr %a1379, i32 0, i32 2 + %t1381 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1380, i32 0, i32 1 + %t1382 = load i64, ptr %t1381 + %t1383 = icmp sgt i64 %t1382, 0 + br label %logic.from3891 +logic.from3891: + br i1 %t1383, label %logic.rhs3892, label %logic.end3893 +logic.rhs3892: + %t1384 = getelementptr inbounds %S.gen.Template, ptr %a1379, i32 0, i32 7 + %t1385 = load i1, ptr %t1384 + %t1386 = xor i1 %t1385, true + br label %logic.rend3894 +logic.rend3894: + br label %logic.end3893 +logic.end3893: + %t1387 = phi i1 [ false, %logic.from3891 ], [ %t1386, %logic.rend3894 ] + br i1 %t1387, label %then3895, label %endif3897 +then3895: + %t1388 = load ptr, ptr %a1 + %t1389 = icmp eq ptr %t1388, null + br i1 %t1389, label %panic3898, label %ok3899 +panic3898: + call void @finch_panic(ptr @.str.2417, i64 1654, ptr @.str.2418) + unreachable +ok3899: + %t1390 = getelementptr inbounds %S.gen.Gen, ptr %t1388, i32 0, i32 0 + %t1391 = getelementptr inbounds %S.gen.Template, ptr %a1379, i32 0, i32 4 + %t1392 = load i64, ptr %t1391 + %t1393 = load { ptr, i64, i64 }, ptr %t1390 + %t1394 = extractvalue { ptr, i64, i64 } %t1393, 1 + %t1395 = icmp uge i64 %t1392, %t1394 + br i1 %t1395, label %range3900, label %inrange3901 +range3900: + call void @finch_panic_index(ptr @.str.2419, i64 1654, i64 %t1392, i64 %t1394) + unreachable +inrange3901: + %t1396 = extractvalue { ptr, i64, i64 } %t1393, 0 + %t1397 = getelementptr inbounds %S.ast.Program, ptr %t1396, i64 %t1392 + %t1398 = getelementptr inbounds %S.ast.Program, ptr %t1397, i32 0, i32 8 + %t1399 = getelementptr inbounds %S.gen.Template, ptr %a1379, i32 0, i32 5 + %t1400 = load i64, ptr %t1399 + %t1401 = load { ptr, i64, i64 }, ptr %t1398 %t1402 = extractvalue { ptr, i64, i64 } %t1401, 1 %t1403 = icmp uge i64 %t1400, %t1402 - br i1 %t1403, label %range3809, label %inrange3810 -range3809: - call void @finch_panic_index(ptr @.str.2365, i64 1588, i64 %t1400, i64 %t1402) + br i1 %t1403, label %range3902, label %inrange3903 +range3902: + call void @finch_panic_index(ptr @.str.2420, i64 1654, i64 %t1400, i64 %t1402) unreachable -inrange3810: +inrange3903: %t1404 = extractvalue { ptr, i64, i64 } %t1401, 0 - %t1405 = getelementptr inbounds %S.gen.FnSig, ptr %t1404, i64 %t1400 - %t1406 = getelementptr inbounds %S.gen.FnSig, ptr %t1405, i32 0, i32 15 - %t1407 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1406, i32 0, i32 1 - %t1408 = load ptr, ptr %a1 - %t1409 = load %S.ast.Type, ptr %a1396 - %t1410 = call i1 @finch.gen.owning(ptr %t1408, %S.ast.Type %t1409) - br label %logic.from3811 -logic.from3811: - br i1 %t1410, label %logic.rhs3812, label %logic.end3813 -logic.rhs3812: + %t1405 = getelementptr inbounds %S.ast.Node, ptr %t1404, i64 %t1400 + %t1406 = load %S.ast.Node, ptr %t1405 + store %S.ast.Node %t1406, ptr %a1407 + call void @finch.copy.S_ast_Node(ptr %a1408, ptr %a1407) + %t1409 = load %S.ast.Node, ptr %a1408 + store %S.ast.Node %t1409, ptr %a1410 %t1411 = load ptr, ptr %a1 - %t1412 = load ptr, ptr %a1 - %t1413 = icmp eq ptr %t1412, null - br i1 %t1413, label %panic3814, label %ok3815 -panic3814: - call void @finch_panic(ptr @.str.2366, i64 1588, ptr @.str.2367) + %t1412 = getelementptr inbounds %S.ast.Node, ptr %a1410, i32 0, i32 9 + %t1413 = getelementptr inbounds %S.ast.Node, ptr %a1410, i32 0, i32 9 + %t1414 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1413, i32 0, i32 1 + %t1415 = load i64, ptr %t1414 + %t1416 = sub i64 %t1415, 1 + %t1417 = load { ptr, i64, i64 }, ptr %t1412 + %t1418 = extractvalue { ptr, i64, i64 } %t1417, 1 + %t1419 = icmp uge i64 %t1416, %t1418 + br i1 %t1419, label %range3904, label %inrange3905 +range3904: + call void @finch_panic_index(ptr @.str.2422, i64 1655, i64 %t1416, i64 %t1418) unreachable -ok3815: - %t1414 = getelementptr inbounds %S.gen.Gen, ptr %t1412, i32 0, i32 15 - %t1415 = load i64, ptr %a1302 - %t1416 = load { ptr, i64, i64 }, ptr %t1414 - %t1417 = extractvalue { ptr, i64, i64 } %t1416, 1 - %t1418 = icmp uge i64 %t1415, %t1417 - br i1 %t1418, label %range3816, label %inrange3817 -range3816: - call void @finch_panic_index(ptr @.str.2368, i64 1588, i64 %t1415, i64 %t1417) +inrange3905: + %t1420 = extractvalue { ptr, i64, i64 } %t1417, 0 + %t1421 = getelementptr inbounds %S.ast.Node, ptr %t1420, i64 %t1416 + %t1422 = load %S.ast.Node, ptr %t1421 + %t1423 = call i1 @finch.gen.mutates(ptr %t1411, { ptr, i64, i64 } { ptr @.str.2421, i64 4, i64 0 }, %S.ast.Node %t1422) + br i1 %t1423, label %then3906, label %endif3908 +then3906: + %t1424 = load ptr, ptr %a1 + %t1425 = icmp eq ptr %t1424, null + br i1 %t1425, label %panic3909, label %ok3910 +panic3909: + call void @finch_panic(ptr @.str.2423, i64 1656, ptr @.str.2424) unreachable -inrange3817: - %t1419 = extractvalue { ptr, i64, i64 } %t1416, 0 - %t1420 = getelementptr inbounds %S.gen.FnSig, ptr %t1419, i64 %t1415 - %t1421 = getelementptr inbounds %S.gen.FnSig, ptr %t1420, i32 0, i32 14 - %t1422 = load i64, ptr %a1373 - %t1423 = load { ptr, i64, i64 }, ptr %t1421 - %t1424 = extractvalue { ptr, i64, i64 } %t1423, 1 - %t1425 = icmp uge i64 %t1422, %t1424 - br i1 %t1425, label %range3818, label %inrange3819 -range3818: - call void @finch_panic_index(ptr @.str.2369, i64 1588, i64 %t1422, i64 %t1424) +ok3910: + %t1426 = getelementptr inbounds %S.gen.Gen, ptr %t1424, i32 0, i32 17 + %t1427 = load i64, ptr %a1363 + %t1428 = load { ptr, i64, i64 }, ptr %t1426 + %t1429 = extractvalue { ptr, i64, i64 } %t1428, 1 + %t1430 = icmp uge i64 %t1427, %t1429 + br i1 %t1430, label %range3911, label %inrange3912 +range3911: + call void @finch_panic_index(ptr @.str.2425, i64 1656, i64 %t1427, i64 %t1429) unreachable -inrange3819: - %t1426 = extractvalue { ptr, i64, i64 } %t1423, 0 - %t1427 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1426, i64 %t1422 - %t1428 = load { ptr, i64, i64 }, ptr %t1427 - %t1429 = load %S.ast.Node, ptr %a1360 - %t1430 = call i1 @finch.gen.mutates(ptr %t1411, { ptr, i64, i64 } %t1428, %S.ast.Node %t1429) - %t1431 = xor i1 %t1430, true - br label %logic.rend3820 -logic.rend3820: - br label %logic.end3813 -logic.end3813: - %t1432 = phi i1 [ false, %logic.from3811 ], [ %t1431, %logic.rend3820 ] - %t1433 = load i64, ptr %t1407 - %t1434 = add i64 %t1433, 1 - call void @finch_arr_reserve(ptr %t1406, i64 %t1434, i64 ptrtoint (ptr getelementptr (i1, ptr null, i32 1) to i64)) - %t1435 = load ptr, ptr %t1406 - %t1436 = getelementptr inbounds i1, ptr %t1435, i64 %t1433 - store i1 %t1432, ptr %t1436 - store i64 %t1434, ptr %t1407 - call void @finch.drop.S_ast_Type(ptr %a1396) - br label %for.step3799 -for.step3799: - %t1437 = load i64, ptr %a1373 - %t1438 = add i64 %t1437, 1 - store i64 %t1438, ptr %a1373 - br label %for.cond3797 -for.end3800: - call void @finch.drop.S_ast_Node(ptr %a1360) - call void @finch.drop.S_ast_Node(ptr %a1345) - br label %for.step3775 -for.step3775: - %t1439 = load i64, ptr %a1302 - %t1440 = add i64 %t1439, 1 - store i64 %t1440, ptr %a1302 - br label %for.cond3773 -for.end3776: +inrange3912: + %t1431 = extractvalue { ptr, i64, i64 } %t1428, 0 + %t1432 = getelementptr inbounds %S.gen.Template, ptr %t1431, i64 %t1427 + %t1433 = getelementptr inbounds %S.gen.Template, ptr %t1432, i32 0, i32 7 + store i1 true, ptr %t1433 + %t1434 = load ptr, ptr %a1 + %t1435 = icmp eq ptr %t1434, null + br i1 %t1435, label %panic3913, label %ok3914 +panic3913: + call void @finch_panic(ptr @.str.2426, i64 1657, ptr @.str.2427) + unreachable +ok3914: + %t1436 = getelementptr inbounds %S.gen.Gen, ptr %t1434, i32 0, i32 24 + %t1437 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1436, i32 0, i32 1 + %t1438 = getelementptr inbounds %S.gen.Template, ptr %a1379, i32 0, i32 1 + %t1439 = load { ptr, i64, i64 }, ptr %t1438 + store { ptr, i64, i64 } %t1439, ptr %a1440 + call void @finch_str_copy(ptr %a1441, ptr %a1440) + %t1442 = load { ptr, i64, i64 }, ptr %a1441 + %t1443 = load i64, ptr %t1437 + %t1444 = add i64 %t1443, 1 + call void @finch_arr_reserve(ptr %t1436, i64 %t1444, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t1445 = load ptr, ptr %t1436 + %t1446 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1445, i64 %t1443 + store { ptr, i64, i64 } %t1442, ptr %t1446 + store i64 %t1444, ptr %t1437 + store i1 true, ptr %a1234 + br label %endif3908 +endif3908: + call void @finch.drop.S_ast_Node(ptr %a1410) + br label %endif3897 +endif3897: + call void @finch.drop.S_gen_Template(ptr %a1379) + br label %for.step3885 +for.step3885: + %t1447 = load i64, ptr %a1363 + %t1448 = add i64 %t1447, 1 + store i64 %t1448, ptr %a1363 + br label %for.cond3883 +for.end3886: + br label %while.cond3828 +while.end3830: + %t1449 = load ptr, ptr %a1 + %t1450 = icmp eq ptr %t1449, null + br i1 %t1450, label %panic3915, label %ok3916 +panic3915: + call void @finch_panic(ptr @.str.2428, i64 1664, ptr @.str.2429) + unreachable +ok3916: + %t1451 = getelementptr inbounds %S.gen.Gen, ptr %t1449, i32 0, i32 15 + %t1452 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1451, i32 0, i32 1 + %t1453 = load i64, ptr %t1452 + store i64 0, ptr %a1454 + br label %for.cond3917 +for.cond3917: + %t1455 = load i64, ptr %a1454 + %t1456 = icmp slt i64 %t1455, %t1453 + br i1 %t1456, label %for.body3918, label %for.end3920 +for.body3918: + %t1457 = load ptr, ptr %a1 + %t1458 = icmp eq ptr %t1457, null + br i1 %t1458, label %panic3921, label %ok3922 +panic3921: + call void @finch_panic(ptr @.str.2430, i64 1665, ptr @.str.2431) + unreachable +ok3922: + %t1459 = getelementptr inbounds %S.gen.Gen, ptr %t1457, i32 0, i32 0 + %t1460 = load ptr, ptr %a1 + %t1461 = icmp eq ptr %t1460, null + br i1 %t1461, label %panic3923, label %ok3924 +panic3923: + call void @finch_panic(ptr @.str.2432, i64 1665, ptr @.str.2433) + unreachable +ok3924: + %t1462 = getelementptr inbounds %S.gen.Gen, ptr %t1460, i32 0, i32 15 + %t1463 = load i64, ptr %a1454 + %t1464 = load { ptr, i64, i64 }, ptr %t1462 + %t1465 = extractvalue { ptr, i64, i64 } %t1464, 1 + %t1466 = icmp uge i64 %t1463, %t1465 + br i1 %t1466, label %range3925, label %inrange3926 +range3925: + call void @finch_panic_index(ptr @.str.2434, i64 1665, i64 %t1463, i64 %t1465) + unreachable +inrange3926: + %t1467 = extractvalue { ptr, i64, i64 } %t1464, 0 + %t1468 = getelementptr inbounds %S.gen.FnSig, ptr %t1467, i64 %t1463 + %t1469 = getelementptr inbounds %S.gen.FnSig, ptr %t1468, i32 0, i32 16 + %t1470 = load i64, ptr %t1469 + %t1471 = load { ptr, i64, i64 }, ptr %t1459 + %t1472 = extractvalue { ptr, i64, i64 } %t1471, 1 + %t1473 = icmp uge i64 %t1470, %t1472 + br i1 %t1473, label %range3927, label %inrange3928 +range3927: + call void @finch_panic_index(ptr @.str.2435, i64 1665, i64 %t1470, i64 %t1472) + unreachable +inrange3928: + %t1474 = extractvalue { ptr, i64, i64 } %t1471, 0 + %t1475 = getelementptr inbounds %S.ast.Program, ptr %t1474, i64 %t1470 + %t1476 = getelementptr inbounds %S.ast.Program, ptr %t1475, i32 0, i32 8 + %t1477 = load ptr, ptr %a1 + %t1478 = icmp eq ptr %t1477, null + br i1 %t1478, label %panic3929, label %ok3930 +panic3929: + call void @finch_panic(ptr @.str.2436, i64 1665, ptr @.str.2437) + unreachable +ok3930: + %t1479 = getelementptr inbounds %S.gen.Gen, ptr %t1477, i32 0, i32 15 + %t1480 = load i64, ptr %a1454 + %t1481 = load { ptr, i64, i64 }, ptr %t1479 + %t1482 = extractvalue { ptr, i64, i64 } %t1481, 1 + %t1483 = icmp uge i64 %t1480, %t1482 + br i1 %t1483, label %range3931, label %inrange3932 +range3931: + call void @finch_panic_index(ptr @.str.2438, i64 1665, i64 %t1480, i64 %t1482) + unreachable +inrange3932: + %t1484 = extractvalue { ptr, i64, i64 } %t1481, 0 + %t1485 = getelementptr inbounds %S.gen.FnSig, ptr %t1484, i64 %t1480 + %t1486 = getelementptr inbounds %S.gen.FnSig, ptr %t1485, i32 0, i32 17 + %t1487 = load i64, ptr %t1486 + %t1488 = load { ptr, i64, i64 }, ptr %t1476 + %t1489 = extractvalue { ptr, i64, i64 } %t1488, 1 + %t1490 = icmp uge i64 %t1487, %t1489 + br i1 %t1490, label %range3933, label %inrange3934 +range3933: + call void @finch_panic_index(ptr @.str.2439, i64 1665, i64 %t1487, i64 %t1489) + unreachable +inrange3934: + %t1491 = extractvalue { ptr, i64, i64 } %t1488, 0 + %t1492 = getelementptr inbounds %S.ast.Node, ptr %t1491, i64 %t1487 + %t1493 = load %S.ast.Node, ptr %t1492 + store %S.ast.Node %t1493, ptr %a1494 + call void @finch.copy.S_ast_Node(ptr %a1495, ptr %a1494) + %t1496 = load %S.ast.Node, ptr %a1495 + store %S.ast.Node %t1496, ptr %a1497 + %t1498 = getelementptr inbounds %S.ast.Node, ptr %a1497, i32 0, i32 9 + %t1499 = getelementptr inbounds %S.ast.Node, ptr %a1497, i32 0, i32 9 + %t1500 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1499, i32 0, i32 1 + %t1501 = load i64, ptr %t1500 + %t1502 = sub i64 %t1501, 1 + %t1503 = load { ptr, i64, i64 }, ptr %t1498 + %t1504 = extractvalue { ptr, i64, i64 } %t1503, 1 + %t1505 = icmp uge i64 %t1502, %t1504 + br i1 %t1505, label %range3935, label %inrange3936 +range3935: + call void @finch_panic_index(ptr @.str.2440, i64 1666, i64 %t1502, i64 %t1504) + unreachable +inrange3936: + %t1506 = extractvalue { ptr, i64, i64 } %t1503, 0 + %t1507 = getelementptr inbounds %S.ast.Node, ptr %t1506, i64 %t1502 + %t1508 = load %S.ast.Node, ptr %t1507 + store %S.ast.Node %t1508, ptr %a1509 + call void @finch.copy.S_ast_Node(ptr %a1510, ptr %a1509) + %t1511 = load %S.ast.Node, ptr %a1510 + store %S.ast.Node %t1511, ptr %a1512 + %t1513 = load ptr, ptr %a1 + %t1514 = icmp eq ptr %t1513, null + br i1 %t1514, label %panic3937, label %ok3938 +panic3937: + call void @finch_panic(ptr @.str.2441, i64 1667, ptr @.str.2442) + unreachable +ok3938: + %t1515 = getelementptr inbounds %S.gen.Gen, ptr %t1513, i32 0, i32 15 + %t1516 = load i64, ptr %a1454 + %t1517 = load { ptr, i64, i64 }, ptr %t1515 + %t1518 = extractvalue { ptr, i64, i64 } %t1517, 1 + %t1519 = icmp uge i64 %t1516, %t1518 + br i1 %t1519, label %range3939, label %inrange3940 +range3939: + call void @finch_panic_index(ptr @.str.2443, i64 1667, i64 %t1516, i64 %t1518) + unreachable +inrange3940: + %t1520 = extractvalue { ptr, i64, i64 } %t1517, 0 + %t1521 = getelementptr inbounds %S.gen.FnSig, ptr %t1520, i64 %t1516 + %t1522 = getelementptr inbounds %S.gen.FnSig, ptr %t1521, i32 0, i32 13 + %t1523 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1522, i32 0, i32 1 + %t1524 = load i64, ptr %t1523 + store i64 0, ptr %a1525 + br label %for.cond3941 +for.cond3941: + %t1526 = load i64, ptr %a1525 + %t1527 = icmp slt i64 %t1526, %t1524 + br i1 %t1527, label %for.body3942, label %for.end3944 +for.body3942: + %t1528 = load ptr, ptr %a1 + %t1529 = icmp eq ptr %t1528, null + br i1 %t1529, label %panic3945, label %ok3946 +panic3945: + call void @finch_panic(ptr @.str.2444, i64 1668, ptr @.str.2445) + unreachable +ok3946: + %t1530 = getelementptr inbounds %S.gen.Gen, ptr %t1528, i32 0, i32 15 + %t1531 = load i64, ptr %a1454 + %t1532 = load { ptr, i64, i64 }, ptr %t1530 + %t1533 = extractvalue { ptr, i64, i64 } %t1532, 1 + %t1534 = icmp uge i64 %t1531, %t1533 + br i1 %t1534, label %range3947, label %inrange3948 +range3947: + call void @finch_panic_index(ptr @.str.2446, i64 1668, i64 %t1531, i64 %t1533) + unreachable +inrange3948: + %t1535 = extractvalue { ptr, i64, i64 } %t1532, 0 + %t1536 = getelementptr inbounds %S.gen.FnSig, ptr %t1535, i64 %t1531 + %t1537 = getelementptr inbounds %S.gen.FnSig, ptr %t1536, i32 0, i32 13 + %t1538 = load i64, ptr %a1525 + %t1539 = load { ptr, i64, i64 }, ptr %t1537 + %t1540 = extractvalue { ptr, i64, i64 } %t1539, 1 + %t1541 = icmp uge i64 %t1538, %t1540 + br i1 %t1541, label %range3949, label %inrange3950 +range3949: + call void @finch_panic_index(ptr @.str.2447, i64 1668, i64 %t1538, i64 %t1540) + unreachable +inrange3950: + %t1542 = extractvalue { ptr, i64, i64 } %t1539, 0 + %t1543 = getelementptr inbounds %S.ast.Type, ptr %t1542, i64 %t1538 + %t1544 = load %S.ast.Type, ptr %t1543 + store %S.ast.Type %t1544, ptr %a1545 + call void @finch.copy.S_ast_Type(ptr %a1546, ptr %a1545) + %t1547 = load %S.ast.Type, ptr %a1546 + store %S.ast.Type %t1547, ptr %a1548 + %t1549 = load ptr, ptr %a1 + %t1550 = icmp eq ptr %t1549, null + br i1 %t1550, label %panic3951, label %ok3952 +panic3951: + call void @finch_panic(ptr @.str.2448, i64 1669, ptr @.str.2449) + unreachable +ok3952: + %t1551 = getelementptr inbounds %S.gen.Gen, ptr %t1549, i32 0, i32 15 + %t1552 = load i64, ptr %a1454 + %t1553 = load { ptr, i64, i64 }, ptr %t1551 + %t1554 = extractvalue { ptr, i64, i64 } %t1553, 1 + %t1555 = icmp uge i64 %t1552, %t1554 + br i1 %t1555, label %range3953, label %inrange3954 +range3953: + call void @finch_panic_index(ptr @.str.2450, i64 1669, i64 %t1552, i64 %t1554) + unreachable +inrange3954: + %t1556 = extractvalue { ptr, i64, i64 } %t1553, 0 + %t1557 = getelementptr inbounds %S.gen.FnSig, ptr %t1556, i64 %t1552 + %t1558 = getelementptr inbounds %S.gen.FnSig, ptr %t1557, i32 0, i32 15 + %t1559 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1558, i32 0, i32 1 + %t1560 = load ptr, ptr %a1 + %t1561 = load %S.ast.Type, ptr %a1548 + %t1562 = call i1 @finch.gen.owning(ptr %t1560, %S.ast.Type %t1561) + br label %logic.from3955 +logic.from3955: + br i1 %t1562, label %logic.rhs3956, label %logic.end3957 +logic.rhs3956: + %t1563 = load ptr, ptr %a1 + %t1564 = load ptr, ptr %a1 + %t1565 = icmp eq ptr %t1564, null + br i1 %t1565, label %panic3958, label %ok3959 +panic3958: + call void @finch_panic(ptr @.str.2451, i64 1669, ptr @.str.2452) + unreachable +ok3959: + %t1566 = getelementptr inbounds %S.gen.Gen, ptr %t1564, i32 0, i32 15 + %t1567 = load i64, ptr %a1454 + %t1568 = load { ptr, i64, i64 }, ptr %t1566 + %t1569 = extractvalue { ptr, i64, i64 } %t1568, 1 + %t1570 = icmp uge i64 %t1567, %t1569 + br i1 %t1570, label %range3960, label %inrange3961 +range3960: + call void @finch_panic_index(ptr @.str.2453, i64 1669, i64 %t1567, i64 %t1569) + unreachable +inrange3961: + %t1571 = extractvalue { ptr, i64, i64 } %t1568, 0 + %t1572 = getelementptr inbounds %S.gen.FnSig, ptr %t1571, i64 %t1567 + %t1573 = getelementptr inbounds %S.gen.FnSig, ptr %t1572, i32 0, i32 14 + %t1574 = load i64, ptr %a1525 + %t1575 = load { ptr, i64, i64 }, ptr %t1573 + %t1576 = extractvalue { ptr, i64, i64 } %t1575, 1 + %t1577 = icmp uge i64 %t1574, %t1576 + br i1 %t1577, label %range3962, label %inrange3963 +range3962: + call void @finch_panic_index(ptr @.str.2454, i64 1669, i64 %t1574, i64 %t1576) + unreachable +inrange3963: + %t1578 = extractvalue { ptr, i64, i64 } %t1575, 0 + %t1579 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1578, i64 %t1574 + %t1580 = load { ptr, i64, i64 }, ptr %t1579 + %t1581 = load %S.ast.Node, ptr %a1512 + %t1582 = call i1 @finch.gen.mutates(ptr %t1563, { ptr, i64, i64 } %t1580, %S.ast.Node %t1581) + %t1583 = xor i1 %t1582, true + br label %logic.rend3964 +logic.rend3964: + br label %logic.end3957 +logic.end3957: + %t1584 = phi i1 [ false, %logic.from3955 ], [ %t1583, %logic.rend3964 ] + %t1585 = load i64, ptr %t1559 + %t1586 = add i64 %t1585, 1 + call void @finch_arr_reserve(ptr %t1558, i64 %t1586, i64 ptrtoint (ptr getelementptr (i1, ptr null, i32 1) to i64)) + %t1587 = load ptr, ptr %t1558 + %t1588 = getelementptr inbounds i1, ptr %t1587, i64 %t1585 + store i1 %t1584, ptr %t1588 + store i64 %t1586, ptr %t1559 + call void @finch.drop.S_ast_Type(ptr %a1548) + br label %for.step3943 +for.step3943: + %t1589 = load i64, ptr %a1525 + %t1590 = add i64 %t1589, 1 + store i64 %t1590, ptr %a1525 + br label %for.cond3941 +for.end3944: + call void @finch.drop.S_ast_Node(ptr %a1512) + call void @finch.drop.S_ast_Node(ptr %a1497) + br label %for.step3919 +for.step3919: + %t1591 = load i64, ptr %a1454 + %t1592 = add i64 %t1591, 1 + store i64 %t1592, ptr %a1454 + br label %for.cond3917 +for.end3920: ret void } @@ -39877,38 +41525,38 @@ entry: store i1 %p4, ptr %a5 %t6 = load ptr, ptr %a1 %t7 = icmp eq ptr %t6, null - br i1 %t7, label %panic3821, label %ok3822 -panic3821: - call void @finch_panic(ptr @.str.2370, i64 1594, ptr @.str.2371) + br i1 %t7, label %panic3965, label %ok3966 +panic3965: + call void @finch_panic(ptr @.str.2455, i64 1675, ptr @.str.2456) unreachable -ok3822: +ok3966: %t8 = getelementptr inbounds %S.gen.Gen, ptr %t6, i32 0, i32 17 %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %t8, i32 0, i32 1 %t10 = load i64, ptr %t9 store i64 0, ptr %a11 - br label %for.cond3823 -for.cond3823: + br label %for.cond3967 +for.cond3967: %t12 = load i64, ptr %a11 %t13 = icmp slt i64 %t12, %t10 - br i1 %t13, label %for.body3824, label %for.end3826 -for.body3824: + br i1 %t13, label %for.body3968, label %for.end3970 +for.body3968: %t14 = load ptr, ptr %a1 %t15 = icmp eq ptr %t14, null - br i1 %t15, label %panic3827, label %ok3828 -panic3827: - call void @finch_panic(ptr @.str.2372, i64 1595, ptr @.str.2373) + br i1 %t15, label %panic3971, label %ok3972 +panic3971: + call void @finch_panic(ptr @.str.2457, i64 1676, ptr @.str.2458) unreachable -ok3828: +ok3972: %t16 = getelementptr inbounds %S.gen.Gen, ptr %t14, i32 0, i32 17 %t17 = load i64, ptr %a11 %t18 = load { ptr, i64, i64 }, ptr %t16 %t19 = extractvalue { ptr, i64, i64 } %t18, 1 %t20 = icmp uge i64 %t17, %t19 - br i1 %t20, label %range3829, label %inrange3830 -range3829: - call void @finch_panic_index(ptr @.str.2374, i64 1595, i64 %t17, i64 %t19) + br i1 %t20, label %range3973, label %inrange3974 +range3973: + call void @finch_panic_index(ptr @.str.2459, i64 1676, i64 %t17, i64 %t19) unreachable -inrange3830: +inrange3974: %t21 = extractvalue { ptr, i64, i64 } %t18, 0 %t22 = getelementptr inbounds %S.gen.Template, ptr %t21, i64 %t17 %t23 = load %S.gen.Template, ptr %t22 @@ -39923,10 +41571,10 @@ inrange3830: store { ptr, i64, i64 } %t30, ptr %a32 %t33 = call i32 @finch_str_eq(ptr %a31, ptr %a32) %t34 = icmp ne i32 %t33, 0 - br label %logic.from3831 -logic.from3831: - br i1 %t34, label %logic.rhs3832, label %logic.end3833 -logic.rhs3832: + br label %logic.from3975 +logic.from3975: + br i1 %t34, label %logic.rhs3976, label %logic.end3977 +logic.rhs3976: %t35 = getelementptr inbounds %S.gen.Template, ptr %a27, i32 0, i32 1 %t36 = load { ptr, i64, i64 }, ptr %t35 %t37 = load { ptr, i64, i64 }, ptr %a3 @@ -39934,15 +41582,15 @@ logic.rhs3832: store { ptr, i64, i64 } %t37, ptr %a39 %t40 = call i32 @finch_str_eq(ptr %a38, ptr %a39) %t41 = icmp ne i32 %t40, 0 - br label %logic.rend3834 -logic.rend3834: - br label %logic.end3833 -logic.end3833: - %t42 = phi i1 [ false, %logic.from3831 ], [ %t41, %logic.rend3834 ] - br label %logic.from3835 -logic.from3835: - br i1 %t42, label %logic.rhs3836, label %logic.end3837 -logic.rhs3836: + br label %logic.rend3978 +logic.rend3978: + br label %logic.end3977 +logic.end3977: + %t42 = phi i1 [ false, %logic.from3975 ], [ %t41, %logic.rend3978 ] + br label %logic.from3979 +logic.from3979: + br i1 %t42, label %logic.rhs3980, label %logic.end3981 +logic.rhs3980: %t43 = getelementptr inbounds %S.gen.Template, ptr %a27, i32 0, i32 2 %t44 = load { ptr, i64, i64 }, ptr %t43 %t45 = load { ptr, i64, i64 }, ptr %a4 @@ -39950,38 +41598,38 @@ logic.rhs3836: store { ptr, i64, i64 } %t45, ptr %a47 %t48 = call i32 @finch_str_eq(ptr %a46, ptr %a47) %t49 = icmp ne i32 %t48, 0 - br label %logic.rend3838 -logic.rend3838: - br label %logic.end3837 -logic.end3837: - %t50 = phi i1 [ false, %logic.from3835 ], [ %t49, %logic.rend3838 ] - br label %logic.from3839 -logic.from3839: - br i1 %t50, label %logic.rhs3840, label %logic.end3841 -logic.rhs3840: + br label %logic.rend3982 +logic.rend3982: + br label %logic.end3981 +logic.end3981: + %t50 = phi i1 [ false, %logic.from3979 ], [ %t49, %logic.rend3982 ] + br label %logic.from3983 +logic.from3983: + br i1 %t50, label %logic.rhs3984, label %logic.end3985 +logic.rhs3984: %t51 = getelementptr inbounds %S.gen.Template, ptr %a27, i32 0, i32 6 %t52 = load i1, ptr %t51 %t53 = load i1, ptr %a5 %t54 = icmp eq i1 %t52, %t53 - br label %logic.rend3842 -logic.rend3842: - br label %logic.end3841 -logic.end3841: - %t55 = phi i1 [ false, %logic.from3839 ], [ %t54, %logic.rend3842 ] - br i1 %t55, label %then3843, label %endif3845 -then3843: + br label %logic.rend3986 +logic.rend3986: + br label %logic.end3985 +logic.end3985: + %t55 = phi i1 [ false, %logic.from3983 ], [ %t54, %logic.rend3986 ] + br i1 %t55, label %then3987, label %endif3989 +then3987: %t56 = load i64, ptr %a11 call void @finch.drop.S_gen_Template(ptr %a27) ret i64 %t56 -endif3845: +endif3989: call void @finch.drop.S_gen_Template(ptr %a27) - br label %for.step3825 -for.step3825: + br label %for.step3969 +for.step3969: %t57 = load i64, ptr %a11 %t58 = add i64 %t57, 1 store i64 %t58, ptr %a11 - br label %for.cond3823 -for.end3826: + br label %for.cond3967 +for.end3970: ret i64 -1 } @@ -39996,14 +41644,14 @@ entry: store { ptr, i64, i64 } %p0, ptr %a1 store { ptr, i64, i64 } zeroinitializer, ptr %a2 store i64 0, ptr %a3 - br label %each.cond3846 -each.cond3846: + br label %each.cond3990 +each.cond3990: %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t5 = load i64, ptr %t4 %t6 = load i64, ptr %a3 %t7 = icmp slt i64 %t6, %t5 - br i1 %t7, label %each.body3847, label %each.end3849 -each.body3847: + br i1 %t7, label %each.body3991, label %each.end3993 +each.body3991: %t8 = load ptr, ptr %a1 %t9 = getelementptr inbounds %S.ast.Type, ptr %t8, i64 %t6 %t10 = load %S.ast.Type, ptr %t9 @@ -40018,15 +41666,15 @@ each.body3847: %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %t17, i64 %t15 store { ptr, i64, i64 } %t14, ptr %t18 store i64 %t16, ptr %t12 - br label %each.step3848 -each.step3848: + br label %each.step3992 +each.step3992: %t19 = load i64, ptr %a3 %t20 = add i64 %t19, 1 store i64 %t20, ptr %a3 - br label %each.cond3846 -each.end3849: + br label %each.cond3990 +each.end3993: %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.2375, i64 2, i64 0 }, ptr %a22 + store { ptr, i64, i64 } { ptr @.str.2460, i64 2, i64 0 }, ptr %a22 call void @finch_str_join(ptr %a23, ptr %a2, ptr %a22) %t24 = load { ptr, i64, i64 }, ptr %a23 call void @finch.drop.arr_str(ptr %a2) @@ -40134,21 +41782,21 @@ entry: %t6 = load ptr, ptr %a1 %t7 = load { ptr, i64, i64 }, ptr %a2 %t8 = load { ptr, i64, i64 }, ptr %a3 - %t9 = call i64 @finch.gen.findTemplate(ptr %t6, { ptr, i64, i64 } %t7, { ptr, i64, i64 } %t8, { ptr, i64, i64 } { ptr @.str.2376, i64 0, i64 0 }, i1 true) + %t9 = call i64 @finch.gen.findTemplate(ptr %t6, { ptr, i64, i64 } %t7, { ptr, i64, i64 } %t8, { ptr, i64, i64 } { ptr @.str.2461, i64 0, i64 0 }, i1 true) store i64 %t9, ptr %a10 %t11 = load i64, ptr %a10 %t12 = icmp slt i64 %t11, 0 - br i1 %t12, label %then3850, label %endif3852 -then3850: + br i1 %t12, label %then3994, label %endif3996 +then3994: %t13 = load ptr, ptr %a1 %t14 = load %S.ast.Node, ptr %a5 %t15 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.2377, i64 34, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.2462, i64 34, i64 0 }, ptr %a17 store { ptr, i64, i64 } %t15, ptr %a18 call void @finch_str_concat(ptr %a16, ptr %a17, ptr %a18) %t19 = load { ptr, i64, i64 }, ptr %a16 store { ptr, i64, i64 } %t19, ptr %a21 - store { ptr, i64, i64 } { ptr @.str.2378, i64 28, i64 0 }, ptr %a22 + store { ptr, i64, i64 } { ptr @.str.2463, i64 28, i64 0 }, ptr %a22 call void @finch_str_concat(ptr %a20, ptr %a21, ptr %a22) store { ptr, i64, i64 } %t19, ptr %a23 call void @finch_str_drop(ptr %a23) @@ -40161,7 +41809,7 @@ then3850: call void @finch_str_drop(ptr %a29) %t30 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t30, ptr %a32 - store { ptr, i64, i64 } { ptr @.str.2379, i64 34, i64 0 }, ptr %a33 + store { ptr, i64, i64 } { ptr @.str.2464, i64 34, i64 0 }, ptr %a33 call void @finch_str_concat(ptr %a31, ptr %a32, ptr %a33) store { ptr, i64, i64 } %t30, ptr %a34 call void @finch_str_drop(ptr %a34) @@ -40169,25 +41817,25 @@ then3850: call void @finch.gen.fail(ptr %t13, %S.ast.Node %t14, { ptr, i64, i64 } %t35) store { ptr, i64, i64 } %t35, ptr %a36 call void @finch_str_drop(ptr %a36) - br label %endif3852 -endif3852: + br label %endif3996 +endif3996: %t37 = load ptr, ptr %a1 %t38 = icmp eq ptr %t37, null - br i1 %t38, label %panic3853, label %ok3854 -panic3853: - call void @finch_panic(ptr @.str.2380, i64 1617, ptr @.str.2381) + br i1 %t38, label %panic3997, label %ok3998 +panic3997: + call void @finch_panic(ptr @.str.2465, i64 1698, ptr @.str.2466) unreachable -ok3854: +ok3998: %t39 = getelementptr inbounds %S.gen.Gen, ptr %t37, i32 0, i32 17 %t40 = load i64, ptr %a10 %t41 = load { ptr, i64, i64 }, ptr %t39 %t42 = extractvalue { ptr, i64, i64 } %t41, 1 %t43 = icmp uge i64 %t40, %t42 - br i1 %t43, label %range3855, label %inrange3856 -range3855: - call void @finch_panic_index(ptr @.str.2382, i64 1617, i64 %t40, i64 %t42) + br i1 %t43, label %range3999, label %inrange4000 +range3999: + call void @finch_panic_index(ptr @.str.2467, i64 1698, i64 %t40, i64 %t42) unreachable -inrange3856: +inrange4000: %t44 = extractvalue { ptr, i64, i64 } %t41, 0 %t45 = getelementptr inbounds %S.gen.Template, ptr %t44, i64 %t40 %t46 = load %S.gen.Template, ptr %t45 @@ -40201,13 +41849,13 @@ inrange3856: %t54 = getelementptr inbounds { ptr, i64, i64 }, ptr %t53, i32 0, i32 1 %t55 = load i64, ptr %t54 %t56 = icmp ne i64 %t52, %t55 - br i1 %t56, label %then3857, label %endif3859 -then3857: + br i1 %t56, label %then4001, label %endif4003 +then4001: %t57 = load ptr, ptr %a1 %t58 = load %S.ast.Node, ptr %a5 %t59 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t59, ptr %a61 - store { ptr, i64, i64 } { ptr @.str.2383, i64 7, i64 0 }, ptr %a62 + store { ptr, i64, i64 } { ptr @.str.2468, i64 7, i64 0 }, ptr %a62 call void @finch_str_concat(ptr %a60, ptr %a61, ptr %a62) %t63 = load { ptr, i64, i64 }, ptr %a60 %t64 = getelementptr inbounds %S.gen.Template, ptr %a50, i32 0, i32 3 @@ -40224,7 +41872,7 @@ then3857: call void @finch_str_drop(ptr %a73) %t74 = load { ptr, i64, i64 }, ptr %a69 store { ptr, i64, i64 } %t74, ptr %a76 - store { ptr, i64, i64 } { ptr @.str.2384, i64 24, i64 0 }, ptr %a77 + store { ptr, i64, i64 } { ptr @.str.2469, i64 24, i64 0 }, ptr %a77 call void @finch_str_concat(ptr %a75, ptr %a76, ptr %a77) store { ptr, i64, i64 } %t74, ptr %a78 call void @finch_str_drop(ptr %a78) @@ -40237,14 +41885,14 @@ then3857: call void @finch_str_drop(ptr %a84) %t85 = load { ptr, i64, i64 }, ptr %a81 store { ptr, i64, i64 } %t85, ptr %a87 - store { ptr, i64, i64 } { ptr @.str.2385, i64 1, i64 0 }, ptr %a88 + store { ptr, i64, i64 } { ptr @.str.2470, i64 1, i64 0 }, ptr %a88 call void @finch_str_concat(ptr %a86, ptr %a87, ptr %a88) store { ptr, i64, i64 } %t85, ptr %a89 call void @finch_str_drop(ptr %a89) %t90 = load { ptr, i64, i64 }, ptr %a86 %t91 = getelementptr inbounds %S.gen.Template, ptr %a50, i32 0, i32 3 %t92 = getelementptr inbounds { ptr, i64, i64 }, ptr %t91, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.2386, i64 2, i64 0 }, ptr %a93 + store { ptr, i64, i64 } { ptr @.str.2471, i64 2, i64 0 }, ptr %a93 call void @finch_str_join(ptr %a94, ptr %t91, ptr %a93) %t95 = load { ptr, i64, i64 }, ptr %a94 store { ptr, i64, i64 } %t90, ptr %a97 @@ -40256,7 +41904,7 @@ then3857: call void @finch_str_drop(ptr %a100) %t101 = load { ptr, i64, i64 }, ptr %a96 store { ptr, i64, i64 } %t101, ptr %a103 - store { ptr, i64, i64 } { ptr @.str.2387, i64 11, i64 0 }, ptr %a104 + store { ptr, i64, i64 } { ptr @.str.2472, i64 11, i64 0 }, ptr %a104 call void @finch_str_concat(ptr %a102, ptr %a103, ptr %a104) store { ptr, i64, i64 } %t101, ptr %a105 call void @finch_str_drop(ptr %a105) @@ -40276,11 +41924,11 @@ then3857: call void @finch.gen.fail(ptr %t57, %S.ast.Node %t58, { ptr, i64, i64 } %t116) store { ptr, i64, i64 } %t116, ptr %a117 call void @finch_str_drop(ptr %a117) - br label %endif3859 -endif3859: + br label %endif4003 +endif4003: %t118 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t118, ptr %a120 - store { ptr, i64, i64 } { ptr @.str.2388, i64 1, i64 0 }, ptr %a121 + store { ptr, i64, i64 } { ptr @.str.2473, i64 1, i64 0 }, ptr %a121 call void @finch_str_concat(ptr %a119, ptr %a120, ptr %a121) %t122 = load { ptr, i64, i64 }, ptr %a119 %t123 = load { ptr, i64, i64 }, ptr %a4 @@ -40294,7 +41942,7 @@ endif3859: call void @finch_str_drop(ptr %a129) %t130 = load { ptr, i64, i64 }, ptr %a125 store { ptr, i64, i64 } %t130, ptr %a132 - store { ptr, i64, i64 } { ptr @.str.2389, i64 1, i64 0 }, ptr %a133 + store { ptr, i64, i64 } { ptr @.str.2474, i64 1, i64 0 }, ptr %a133 call void @finch_str_concat(ptr %a131, ptr %a132, ptr %a133) store { ptr, i64, i64 } %t130, ptr %a134 call void @finch_str_drop(ptr %a134) @@ -40305,15 +41953,15 @@ endif3859: %t139 = load { ptr, i64, i64 }, ptr %a136 %t140 = call i64 @finch.gen.findStruct(ptr %t137, { ptr, i64, i64 } %t138, { ptr, i64, i64 } %t139) %t141 = icmp slt i64 %t140, 0 - br i1 %t141, label %then3860, label %endif3862 -then3860: + br i1 %t141, label %then4004, label %endif4006 +then4004: %t142 = load ptr, ptr %a1 %t143 = icmp eq ptr %t142, null - br i1 %t143, label %panic3863, label %ok3864 -panic3863: - call void @finch_panic(ptr @.str.2390, i64 1623, ptr @.str.2391) + br i1 %t143, label %panic4007, label %ok4008 +panic4007: + call void @finch_panic(ptr @.str.2475, i64 1704, ptr @.str.2476) unreachable -ok3864: +ok4008: %t144 = getelementptr inbounds %S.gen.Gen, ptr %t142, i32 0, i32 16 %t145 = getelementptr inbounds { ptr, i64, i64 }, ptr %t144, i32 0, i32 1 %t146 = load { ptr, i64, i64 }, ptr %a2 @@ -40358,19 +42006,19 @@ ok3864: %t182 = load ptr, ptr %a1 %t183 = load ptr, ptr %a1 %t184 = icmp eq ptr %t183, null - br i1 %t184, label %panic3865, label %ok3866 -panic3865: - call void @finch_panic(ptr @.str.2392, i64 1624, ptr @.str.2393) + br i1 %t184, label %panic4009, label %ok4010 +panic4009: + call void @finch_panic(ptr @.str.2477, i64 1705, ptr @.str.2478) unreachable -ok3866: +ok4010: %t185 = getelementptr inbounds %S.gen.Gen, ptr %t183, i32 0, i32 16 %t186 = getelementptr inbounds { ptr, i64, i64 }, ptr %t185, i32 0, i32 1 %t187 = load i64, ptr %t186 %t188 = sub i64 %t187, 1 call void @finch.gen.resolveStruct(ptr %t182, i64 %t188) - br label %endif3862 -endif3862: - %t189 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.2394, i64 6, i64 0 }, 0 + br label %endif4006 +endif4006: + %t189 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.2479, i64 6, i64 0 }, 0 %t190 = load { ptr, i64, i64 }, ptr %a136 store { ptr, i64, i64 } %t190, ptr %a191 call void @finch_str_copy(ptr %a192, ptr %a191) @@ -40537,21 +42185,21 @@ entry: store %S.ast.Node %p4, ptr %a5 %t6 = load ptr, ptr %a1 %t7 = icmp eq ptr %t6, null - br i1 %t7, label %panic3867, label %ok3868 -panic3867: - call void @finch_panic(ptr @.str.2395, i64 1631, ptr @.str.2396) + br i1 %t7, label %panic4011, label %ok4012 +panic4011: + call void @finch_panic(ptr @.str.2480, i64 1712, ptr @.str.2481) unreachable -ok3868: +ok4012: %t8 = getelementptr inbounds %S.gen.Gen, ptr %t6, i32 0, i32 17 %t9 = load i64, ptr %a2 %t10 = load { ptr, i64, i64 }, ptr %t8 %t11 = extractvalue { ptr, i64, i64 } %t10, 1 %t12 = icmp uge i64 %t9, %t11 - br i1 %t12, label %range3869, label %inrange3870 -range3869: - call void @finch_panic_index(ptr @.str.2397, i64 1631, i64 %t9, i64 %t11) + br i1 %t12, label %range4013, label %inrange4014 +range4013: + call void @finch_panic_index(ptr @.str.2482, i64 1712, i64 %t9, i64 %t11) unreachable -inrange3870: +inrange4014: %t13 = extractvalue { ptr, i64, i64 } %t10, 0 %t14 = getelementptr inbounds %S.gen.Template, ptr %t13, i64 %t9 %t15 = load %S.gen.Template, ptr %t14 @@ -40562,7 +42210,7 @@ inrange3870: %t20 = getelementptr inbounds %S.gen.Template, ptr %a19, i32 0, i32 1 %t21 = load { ptr, i64, i64 }, ptr %t20 store { ptr, i64, i64 } %t21, ptr %a23 - store { ptr, i64, i64 } { ptr @.str.2398, i64 1, i64 0 }, ptr %a24 + store { ptr, i64, i64 } { ptr @.str.2483, i64 1, i64 0 }, ptr %a24 call void @finch_str_concat(ptr %a22, ptr %a23, ptr %a24) %t25 = load { ptr, i64, i64 }, ptr %a22 %t26 = load { ptr, i64, i64 }, ptr %a3 @@ -40576,7 +42224,7 @@ inrange3870: call void @finch_str_drop(ptr %a32) %t33 = load { ptr, i64, i64 }, ptr %a28 store { ptr, i64, i64 } %t33, ptr %a35 - store { ptr, i64, i64 } { ptr @.str.2399, i64 1, i64 0 }, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.2484, i64 1, i64 0 }, ptr %a36 call void @finch_str_concat(ptr %a34, ptr %a35, ptr %a36) store { ptr, i64, i64 } %t33, ptr %a37 call void @finch_str_drop(ptr %a37) @@ -40586,8 +42234,8 @@ inrange3870: %t41 = getelementptr inbounds { ptr, i64, i64 }, ptr %t40, i32 0, i32 1 %t42 = load i64, ptr %t41 %t43 = icmp sgt i64 %t42, 0 - br i1 %t43, label %then3871, label %else3872 -then3871: + br i1 %t43, label %then4015, label %else4016 +then4015: %t44 = load ptr, ptr %a1 %t45 = getelementptr inbounds %S.gen.Template, ptr %a19, i32 0, i32 0 %t46 = load { ptr, i64, i64 }, ptr %t45 @@ -40599,15 +42247,15 @@ then3871: store i64 %t51, ptr %a52 %t53 = load i64, ptr %a52 %t54 = icmp sge i64 %t53, 0 - br i1 %t54, label %then3874, label %endif3876 -then3874: + br i1 %t54, label %then4018, label %endif4020 +then4018: %t55 = load i64, ptr %a52 call void @finch_str_drop(ptr %a39) call void @finch.drop.S_gen_Template(ptr %a19) ret i64 %t55 -endif3876: - br label %endif3873 -else3872: +endif4020: + br label %endif4017 +else4016: %t56 = load ptr, ptr %a1 %t57 = getelementptr inbounds %S.gen.Template, ptr %a19, i32 0, i32 0 %t58 = load { ptr, i64, i64 }, ptr %t57 @@ -40616,33 +42264,33 @@ else3872: store i64 %t60, ptr %a61 %t62 = load i64, ptr %a61 %t63 = icmp sge i64 %t62, 0 - br i1 %t63, label %then3877, label %endif3879 -then3877: + br i1 %t63, label %then4021, label %endif4023 +then4021: %t64 = load i64, ptr %a61 call void @finch_str_drop(ptr %a39) call void @finch.drop.S_gen_Template(ptr %a19) ret i64 %t64 -endif3879: - br label %endif3873 -endif3873: +endif4023: + br label %endif4017 +endif4017: %t65 = load ptr, ptr %a1 %t66 = icmp eq ptr %t65, null - br i1 %t66, label %panic3880, label %ok3881 -panic3880: - call void @finch_panic(ptr @.str.2400, i64 1644, ptr @.str.2401) + br i1 %t66, label %panic4024, label %ok4025 +panic4024: + call void @finch_panic(ptr @.str.2485, i64 1725, ptr @.str.2486) unreachable -ok3881: +ok4025: %t67 = getelementptr inbounds %S.gen.Gen, ptr %t65, i32 0, i32 0 %t68 = getelementptr inbounds %S.gen.Template, ptr %a19, i32 0, i32 4 %t69 = load i64, ptr %t68 %t70 = load { ptr, i64, i64 }, ptr %t67 %t71 = extractvalue { ptr, i64, i64 } %t70, 1 %t72 = icmp uge i64 %t69, %t71 - br i1 %t72, label %range3882, label %inrange3883 -range3882: - call void @finch_panic_index(ptr @.str.2402, i64 1644, i64 %t69, i64 %t71) + br i1 %t72, label %range4026, label %inrange4027 +range4026: + call void @finch_panic_index(ptr @.str.2487, i64 1725, i64 %t69, i64 %t71) unreachable -inrange3883: +inrange4027: %t73 = extractvalue { ptr, i64, i64 } %t70, 0 %t74 = getelementptr inbounds %S.ast.Program, ptr %t73, i64 %t69 %t75 = getelementptr inbounds %S.ast.Program, ptr %t74, i32 0, i32 8 @@ -40651,11 +42299,11 @@ inrange3883: %t78 = load { ptr, i64, i64 }, ptr %t75 %t79 = extractvalue { ptr, i64, i64 } %t78, 1 %t80 = icmp uge i64 %t77, %t79 - br i1 %t80, label %range3884, label %inrange3885 -range3884: - call void @finch_panic_index(ptr @.str.2403, i64 1644, i64 %t77, i64 %t79) + br i1 %t80, label %range4028, label %inrange4029 +range4028: + call void @finch_panic_index(ptr @.str.2488, i64 1725, i64 %t77, i64 %t79) unreachable -inrange3885: +inrange4029: %t81 = extractvalue { ptr, i64, i64 } %t78, 0 %t82 = getelementptr inbounds %S.ast.Node, ptr %t81, i64 %t77 %t83 = load %S.ast.Node, ptr %t82 @@ -40712,14 +42360,14 @@ inrange3885: %t134 = getelementptr inbounds %S.gen.Template, ptr %a19, i32 0, i32 0 %t135 = load { ptr, i64, i64 }, ptr %t134 %t136 = call { ptr, i64, i64 } @finch.gen.modName({ ptr, i64, i64 } %t135) - store { ptr, i64, i64 } { ptr @.str.2404, i64 7, i64 0 }, ptr %a138 + store { ptr, i64, i64 } { ptr @.str.2489, i64 7, i64 0 }, ptr %a138 store { ptr, i64, i64 } %t136, ptr %a139 call void @finch_str_concat(ptr %a137, ptr %a138, ptr %a139) store { ptr, i64, i64 } %t136, ptr %a140 call void @finch_str_drop(ptr %a140) %t141 = load { ptr, i64, i64 }, ptr %a137 store { ptr, i64, i64 } %t141, ptr %a143 - store { ptr, i64, i64 } { ptr @.str.2405, i64 1, i64 0 }, ptr %a144 + store { ptr, i64, i64 } { ptr @.str.2490, i64 1, i64 0 }, ptr %a144 call void @finch_str_concat(ptr %a142, ptr %a143, ptr %a144) store { ptr, i64, i64 } %t141, ptr %a145 call void @finch_str_drop(ptr %a145) @@ -40743,8 +42391,8 @@ inrange3885: %t159 = getelementptr inbounds { ptr, i64, i64 }, ptr %t158, i32 0, i32 1 %t160 = load i64, ptr %t159 %t161 = icmp sgt i64 %t160, 0 - br i1 %t161, label %then3886, label %endif3888 -then3886: + br i1 %t161, label %then4030, label %endif4032 +then4030: %t162 = getelementptr inbounds %S.gen.Template, ptr %a19, i32 0, i32 1 %t163 = load { ptr, i64, i64 }, ptr %t162 %t164 = getelementptr inbounds %S.gen.FnSig, ptr %a133, i32 0, i32 1 @@ -40768,7 +42416,7 @@ then3886: %t178 = getelementptr inbounds %S.ast.Type, ptr %a4, i32 0, i32 2 %t179 = load { ptr, i64, i64 }, ptr %t178 store { ptr, i64, i64 } %t179, ptr %a181 - store { ptr, i64, i64 } { ptr @.str.2406, i64 1, i64 0 }, ptr %a182 + store { ptr, i64, i64 } { ptr @.str.2491, i64 1, i64 0 }, ptr %a182 call void @finch_str_concat(ptr %a180, ptr %a181, ptr %a182) %t183 = load { ptr, i64, i64 }, ptr %a180 %t184 = getelementptr inbounds %S.gen.Template, ptr %a19, i32 0, i32 1 @@ -40787,14 +42435,14 @@ then3886: %t194 = getelementptr inbounds %S.gen.Template, ptr %a19, i32 0, i32 0 %t195 = load { ptr, i64, i64 }, ptr %t194 %t196 = call { ptr, i64, i64 } @finch.gen.modName({ ptr, i64, i64 } %t195) - store { ptr, i64, i64 } { ptr @.str.2407, i64 7, i64 0 }, ptr %a198 + store { ptr, i64, i64 } { ptr @.str.2492, i64 7, i64 0 }, ptr %a198 store { ptr, i64, i64 } %t196, ptr %a199 call void @finch_str_concat(ptr %a197, ptr %a198, ptr %a199) store { ptr, i64, i64 } %t196, ptr %a200 call void @finch_str_drop(ptr %a200) %t201 = load { ptr, i64, i64 }, ptr %a197 store { ptr, i64, i64 } %t201, ptr %a203 - store { ptr, i64, i64 } { ptr @.str.2408, i64 1, i64 0 }, ptr %a204 + store { ptr, i64, i64 } { ptr @.str.2493, i64 1, i64 0 }, ptr %a204 call void @finch_str_concat(ptr %a202, ptr %a203, ptr %a204) store { ptr, i64, i64 } %t201, ptr %a205 call void @finch_str_drop(ptr %a205) @@ -40811,7 +42459,7 @@ then3886: call void @finch_str_drop(ptr %a214) %t215 = load { ptr, i64, i64 }, ptr %a210 store { ptr, i64, i64 } %t215, ptr %a217 - store { ptr, i64, i64 } { ptr @.str.2409, i64 1, i64 0 }, ptr %a218 + store { ptr, i64, i64 } { ptr @.str.2494, i64 1, i64 0 }, ptr %a218 call void @finch_str_concat(ptr %a216, ptr %a217, ptr %a218) store { ptr, i64, i64 } %t215, ptr %a219 call void @finch_str_drop(ptr %a219) @@ -40829,15 +42477,15 @@ then3886: store { ptr, i64, i64 } %t227, ptr %t228 store { ptr, i64, i64 } %t229, ptr %a230 call void @finch_str_drop(ptr %a230) - br label %endif3888 -endif3888: + br label %endif4032 +endif4032: %t231 = load ptr, ptr %a1 %t232 = icmp eq ptr %t231, null - br i1 %t232, label %panic3889, label %ok3890 -panic3889: - call void @finch_panic(ptr @.str.2410, i64 1653, ptr @.str.2411) + br i1 %t232, label %panic4033, label %ok4034 +panic4033: + call void @finch_panic(ptr @.str.2495, i64 1734, ptr @.str.2496) unreachable -ok3890: +ok4034: %t233 = getelementptr inbounds %S.gen.Gen, ptr %t231, i32 0, i32 18 %t234 = load { ptr, i64, i64 }, ptr %t233 store { ptr, i64, i64 } %t234, ptr %a235 @@ -40846,11 +42494,11 @@ ok3890: store { ptr, i64, i64 } %t237, ptr %a238 %t239 = load ptr, ptr %a1 %t240 = icmp eq ptr %t239, null - br i1 %t240, label %panic3891, label %ok3892 -panic3891: - call void @finch_panic(ptr @.str.2412, i64 1654, ptr @.str.2413) + br i1 %t240, label %panic4035, label %ok4036 +panic4035: + call void @finch_panic(ptr @.str.2497, i64 1735, ptr @.str.2498) unreachable -ok3892: +ok4036: %t241 = getelementptr inbounds %S.gen.Gen, ptr %t239, i32 0, i32 19 %t242 = load { ptr, i64, i64 }, ptr %t241 store { ptr, i64, i64 } %t242, ptr %a243 @@ -40859,11 +42507,11 @@ ok3892: store { ptr, i64, i64 } %t245, ptr %a246 %t247 = load ptr, ptr %a1 %t248 = icmp eq ptr %t247, null - br i1 %t248, label %panic3893, label %ok3894 -panic3893: - call void @finch_panic(ptr @.str.2414, i64 1655, ptr @.str.2415) + br i1 %t248, label %panic4037, label %ok4038 +panic4037: + call void @finch_panic(ptr @.str.2499, i64 1736, ptr @.str.2500) unreachable -ok3894: +ok4038: %t249 = getelementptr inbounds %S.gen.Gen, ptr %t247, i32 0, i32 14 %t250 = load { ptr, i64, i64 }, ptr %t249 store { ptr, i64, i64 } %t250, ptr %a251 @@ -40872,11 +42520,11 @@ ok3894: store { ptr, i64, i64 } %t253, ptr %a254 %t255 = load ptr, ptr %a1 %t256 = icmp eq ptr %t255, null - br i1 %t256, label %panic3895, label %ok3896 -panic3895: - call void @finch_panic(ptr @.str.2416, i64 1656, ptr @.str.2417) + br i1 %t256, label %panic4039, label %ok4040 +panic4039: + call void @finch_panic(ptr @.str.2501, i64 1737, ptr @.str.2502) unreachable -ok3896: +ok4040: %t257 = getelementptr inbounds %S.gen.Gen, ptr %t255, i32 0, i32 20 %t258 = load { ptr, i64, i64 }, ptr %t257 store { ptr, i64, i64 } %t258, ptr %a259 @@ -40887,11 +42535,11 @@ ok3896: %t264 = load { ptr, i64, i64 }, ptr %t263 %t265 = load ptr, ptr %a1 %t266 = icmp eq ptr %t265, null - br i1 %t266, label %panic3897, label %ok3898 -panic3897: - call void @finch_panic(ptr @.str.2418, i64 1657, ptr @.str.2419) + br i1 %t266, label %panic4041, label %ok4042 +panic4041: + call void @finch_panic(ptr @.str.2503, i64 1738, ptr @.str.2504) unreachable -ok3898: +ok4042: %t267 = getelementptr inbounds %S.gen.Gen, ptr %t265, i32 0, i32 18 store { ptr, i64, i64 } %t264, ptr %a268 call void @finch.copy.arr_str(ptr %a269, ptr %a268) @@ -40903,11 +42551,11 @@ ok3898: %t273 = load { ptr, i64, i64 }, ptr %a3 %t274 = load ptr, ptr %a1 %t275 = icmp eq ptr %t274, null - br i1 %t275, label %panic3899, label %ok3900 -panic3899: - call void @finch_panic(ptr @.str.2420, i64 1658, ptr @.str.2421) + br i1 %t275, label %panic4043, label %ok4044 +panic4043: + call void @finch_panic(ptr @.str.2505, i64 1739, ptr @.str.2506) unreachable -ok3900: +ok4044: %t276 = getelementptr inbounds %S.gen.Gen, ptr %t274, i32 0, i32 19 store { ptr, i64, i64 } %t273, ptr %a277 call void @finch.copy.arr_S_ast_Type(ptr %a278, ptr %a277) @@ -40920,11 +42568,11 @@ ok3900: %t283 = load { ptr, i64, i64 }, ptr %t282 %t284 = load ptr, ptr %a1 %t285 = icmp eq ptr %t284, null - br i1 %t285, label %panic3901, label %ok3902 -panic3901: - call void @finch_panic(ptr @.str.2422, i64 1659, ptr @.str.2423) + br i1 %t285, label %panic4045, label %ok4046 +panic4045: + call void @finch_panic(ptr @.str.2507, i64 1740, ptr @.str.2508) unreachable -ok3902: +ok4046: %t286 = getelementptr inbounds %S.gen.Gen, ptr %t284, i32 0, i32 14 store { ptr, i64, i64 } %t283, ptr %a287 call void @finch_str_copy(ptr %a288, ptr %a287) @@ -40935,23 +42583,23 @@ ok3902: call void @finch_str_drop(ptr %a291) %t292 = getelementptr inbounds %S.gen.FnSig, ptr %a133, i32 0, i32 8 %t293 = load { ptr, i64, i64 }, ptr %t292 - store { ptr, i64, i64 } { ptr @.str.2424, i64 17, i64 0 }, ptr %a295 + store { ptr, i64, i64 } { ptr @.str.2509, i64 17, i64 0 }, ptr %a295 store { ptr, i64, i64 } %t293, ptr %a296 call void @finch_str_concat(ptr %a294, ptr %a295, ptr %a296) %t297 = load { ptr, i64, i64 }, ptr %a294 store { ptr, i64, i64 } %t297, ptr %a299 - store { ptr, i64, i64 } { ptr @.str.2425, i64 1, i64 0 }, ptr %a300 + store { ptr, i64, i64 } { ptr @.str.2510, i64 1, i64 0 }, ptr %a300 call void @finch_str_concat(ptr %a298, ptr %a299, ptr %a300) store { ptr, i64, i64 } %t297, ptr %a301 call void @finch_str_drop(ptr %a301) %t302 = load { ptr, i64, i64 }, ptr %a298 %t303 = load ptr, ptr %a1 %t304 = icmp eq ptr %t303, null - br i1 %t304, label %panic3903, label %ok3904 -panic3903: - call void @finch_panic(ptr @.str.2426, i64 1660, ptr @.str.2427) + br i1 %t304, label %panic4047, label %ok4048 +panic4047: + call void @finch_panic(ptr @.str.2511, i64 1741, ptr @.str.2512) unreachable -ok3904: +ok4048: %t305 = getelementptr inbounds %S.gen.Gen, ptr %t303, i32 0, i32 20 %t306 = load { ptr, i64, i64 }, ptr %t305 store { ptr, i64, i64 } %t302, ptr %t305 @@ -40975,11 +42623,11 @@ ok3904: %t321 = load { ptr, i64, i64 }, ptr %t316 %t322 = extractvalue { ptr, i64, i64 } %t321, 1 %t323 = icmp uge i64 %t320, %t322 - br i1 %t323, label %range3905, label %inrange3906 -range3905: - call void @finch_panic_index(ptr @.str.2428, i64 1662, i64 %t320, i64 %t322) + br i1 %t323, label %range4049, label %inrange4050 +range4049: + call void @finch_panic_index(ptr @.str.2513, i64 1743, i64 %t320, i64 %t322) unreachable -inrange3906: +inrange4050: %t324 = extractvalue { ptr, i64, i64 } %t321, 0 %t325 = getelementptr inbounds %S.ast.Node, ptr %t324, i64 %t320 %t326 = load %S.ast.Node, ptr %t325 @@ -40992,23 +42640,23 @@ inrange3906: %t333 = load i64, ptr %t332 %t334 = sub i64 %t333, 1 store i64 0, ptr %a335 - br label %for.cond3907 -for.cond3907: + br label %for.cond4051 +for.cond4051: %t336 = load i64, ptr %a335 %t337 = icmp slt i64 %t336, %t334 - br i1 %t337, label %for.body3908, label %for.end3910 -for.body3908: + br i1 %t337, label %for.body4052, label %for.end4054 +for.body4052: %t338 = load ptr, ptr %a1 %t339 = getelementptr inbounds %S.ast.Node, ptr %a87, i32 0, i32 9 %t340 = load i64, ptr %a335 %t341 = load { ptr, i64, i64 }, ptr %t339 %t342 = extractvalue { ptr, i64, i64 } %t341, 1 %t343 = icmp uge i64 %t340, %t342 - br i1 %t343, label %range3911, label %inrange3912 -range3911: - call void @finch_panic_index(ptr @.str.2429, i64 1664, i64 %t340, i64 %t342) + br i1 %t343, label %range4055, label %inrange4056 +range4055: + call void @finch_panic_index(ptr @.str.2514, i64 1745, i64 %t340, i64 %t342) unreachable -inrange3912: +inrange4056: %t344 = extractvalue { ptr, i64, i64 } %t341, 0 %t345 = getelementptr inbounds %S.ast.Node, ptr %t344, i64 %t340 %t346 = getelementptr inbounds %S.ast.Node, ptr %t345, i32 0, i32 5 @@ -41018,11 +42666,11 @@ inrange3912: %t350 = load { ptr, i64, i64 }, ptr %t348 %t351 = extractvalue { ptr, i64, i64 } %t350, 1 %t352 = icmp uge i64 %t349, %t351 - br i1 %t352, label %range3913, label %inrange3914 -range3913: - call void @finch_panic_index(ptr @.str.2430, i64 1664, i64 %t349, i64 %t351) + br i1 %t352, label %range4057, label %inrange4058 +range4057: + call void @finch_panic_index(ptr @.str.2515, i64 1745, i64 %t349, i64 %t351) unreachable -inrange3914: +inrange4058: %t353 = extractvalue { ptr, i64, i64 } %t350, 0 %t354 = getelementptr inbounds %S.ast.Node, ptr %t353, i64 %t349 %t355 = load %S.ast.Node, ptr %t354 @@ -41048,11 +42696,11 @@ inrange3914: %t372 = load { ptr, i64, i64 }, ptr %t370 %t373 = extractvalue { ptr, i64, i64 } %t372, 1 %t374 = icmp uge i64 %t371, %t373 - br i1 %t374, label %range3915, label %inrange3916 -range3915: - call void @finch_panic_index(ptr @.str.2431, i64 1666, i64 %t371, i64 %t373) + br i1 %t374, label %range4059, label %inrange4060 +range4059: + call void @finch_panic_index(ptr @.str.2516, i64 1747, i64 %t371, i64 %t373) unreachable -inrange3916: +inrange4060: %t375 = extractvalue { ptr, i64, i64 } %t372, 0 %t376 = getelementptr inbounds %S.ast.Node, ptr %t375, i64 %t371 %t377 = getelementptr inbounds %S.ast.Node, ptr %t376, i32 0, i32 1 @@ -41072,21 +42720,21 @@ inrange3916: %t388 = load ptr, ptr %a1 %t389 = load %S.ast.Type, ptr %a357 %t390 = call i1 @finch.gen.owning(ptr %t388, %S.ast.Type %t389) - br label %logic.from3917 -logic.from3917: - br i1 %t390, label %logic.rhs3918, label %logic.end3919 -logic.rhs3918: + br label %logic.from4061 +logic.from4061: + br i1 %t390, label %logic.rhs4062, label %logic.end4063 +logic.rhs4062: %t391 = load ptr, ptr %a1 %t392 = getelementptr inbounds %S.ast.Node, ptr %a87, i32 0, i32 9 %t393 = load i64, ptr %a335 %t394 = load { ptr, i64, i64 }, ptr %t392 %t395 = extractvalue { ptr, i64, i64 } %t394, 1 %t396 = icmp uge i64 %t393, %t395 - br i1 %t396, label %range3920, label %inrange3921 -range3920: - call void @finch_panic_index(ptr @.str.2432, i64 1667, i64 %t393, i64 %t395) + br i1 %t396, label %range4064, label %inrange4065 +range4064: + call void @finch_panic_index(ptr @.str.2517, i64 1748, i64 %t393, i64 %t395) unreachable -inrange3921: +inrange4065: %t397 = extractvalue { ptr, i64, i64 } %t394, 0 %t398 = getelementptr inbounds %S.ast.Node, ptr %t397, i64 %t393 %t399 = getelementptr inbounds %S.ast.Node, ptr %t398, i32 0, i32 1 @@ -41094,11 +42742,11 @@ inrange3921: %t401 = load %S.ast.Node, ptr %a330 %t402 = call i1 @finch.gen.mutates(ptr %t391, { ptr, i64, i64 } %t400, %S.ast.Node %t401) %t403 = xor i1 %t402, true - br label %logic.rend3922 -logic.rend3922: - br label %logic.end3919 -logic.end3919: - %t404 = phi i1 [ false, %logic.from3917 ], [ %t403, %logic.rend3922 ] + br label %logic.rend4066 +logic.rend4066: + br label %logic.end4063 +logic.end4063: + %t404 = phi i1 [ false, %logic.from4061 ], [ %t403, %logic.rend4066 ] %t405 = load i64, ptr %t387 %t406 = add i64 %t405, 1 call void @finch_arr_reserve(ptr %t386, i64 %t406, i64 ptrtoint (ptr getelementptr (i1, ptr null, i32 1) to i64)) @@ -41107,21 +42755,21 @@ logic.end3919: store i1 %t404, ptr %t408 store i64 %t406, ptr %t387 call void @finch.drop.S_ast_Type(ptr %a357) - br label %for.step3909 -for.step3909: + br label %for.step4053 +for.step4053: %t409 = load i64, ptr %a335 %t410 = add i64 %t409, 1 store i64 %t410, ptr %a335 - br label %for.cond3907 -for.end3910: + br label %for.cond4051 +for.end4054: %t411 = load { ptr, i64, i64 }, ptr %a238 %t412 = load ptr, ptr %a1 %t413 = icmp eq ptr %t412, null - br i1 %t413, label %panic3923, label %ok3924 -panic3923: - call void @finch_panic(ptr @.str.2433, i64 1669, ptr @.str.2434) + br i1 %t413, label %panic4067, label %ok4068 +panic4067: + call void @finch_panic(ptr @.str.2518, i64 1750, ptr @.str.2519) unreachable -ok3924: +ok4068: %t414 = getelementptr inbounds %S.gen.Gen, ptr %t412, i32 0, i32 18 store { ptr, i64, i64 } %t411, ptr %a415 call void @finch.copy.arr_str(ptr %a416, ptr %a415) @@ -41133,11 +42781,11 @@ ok3924: %t420 = load { ptr, i64, i64 }, ptr %a246 %t421 = load ptr, ptr %a1 %t422 = icmp eq ptr %t421, null - br i1 %t422, label %panic3925, label %ok3926 -panic3925: - call void @finch_panic(ptr @.str.2435, i64 1670, ptr @.str.2436) + br i1 %t422, label %panic4069, label %ok4070 +panic4069: + call void @finch_panic(ptr @.str.2520, i64 1751, ptr @.str.2521) unreachable -ok3926: +ok4070: %t423 = getelementptr inbounds %S.gen.Gen, ptr %t421, i32 0, i32 19 store { ptr, i64, i64 } %t420, ptr %a424 call void @finch.copy.arr_S_ast_Type(ptr %a425, ptr %a424) @@ -41149,11 +42797,11 @@ ok3926: %t429 = load { ptr, i64, i64 }, ptr %a254 %t430 = load ptr, ptr %a1 %t431 = icmp eq ptr %t430, null - br i1 %t431, label %panic3927, label %ok3928 -panic3927: - call void @finch_panic(ptr @.str.2437, i64 1671, ptr @.str.2438) + br i1 %t431, label %panic4071, label %ok4072 +panic4071: + call void @finch_panic(ptr @.str.2522, i64 1752, ptr @.str.2523) unreachable -ok3928: +ok4072: %t432 = getelementptr inbounds %S.gen.Gen, ptr %t430, i32 0, i32 14 store { ptr, i64, i64 } %t429, ptr %a433 call void @finch_str_copy(ptr %a434, ptr %a433) @@ -41165,11 +42813,11 @@ ok3928: %t438 = load { ptr, i64, i64 }, ptr %a262 %t439 = load ptr, ptr %a1 %t440 = icmp eq ptr %t439, null - br i1 %t440, label %panic3929, label %ok3930 -panic3929: - call void @finch_panic(ptr @.str.2439, i64 1672, ptr @.str.2440) + br i1 %t440, label %panic4073, label %ok4074 +panic4073: + call void @finch_panic(ptr @.str.2524, i64 1753, ptr @.str.2525) unreachable -ok3930: +ok4074: %t441 = getelementptr inbounds %S.gen.Gen, ptr %t439, i32 0, i32 20 store { ptr, i64, i64 } %t438, ptr %a442 call void @finch_str_copy(ptr %a443, ptr %a442) @@ -41180,11 +42828,11 @@ ok3930: call void @finch_str_drop(ptr %a446) %t447 = load ptr, ptr %a1 %t448 = icmp eq ptr %t447, null - br i1 %t448, label %panic3931, label %ok3932 -panic3931: - call void @finch_panic(ptr @.str.2441, i64 1673, ptr @.str.2442) + br i1 %t448, label %panic4075, label %ok4076 +panic4075: + call void @finch_panic(ptr @.str.2526, i64 1754, ptr @.str.2527) unreachable -ok3932: +ok4076: %t449 = getelementptr inbounds %S.gen.Gen, ptr %t447, i32 0, i32 15 %t450 = getelementptr inbounds { ptr, i64, i64 }, ptr %t449, i32 0, i32 1 %t451 = load %S.gen.FnSig, ptr %a133 @@ -41200,11 +42848,11 @@ ok3932: store i64 %t456, ptr %t450 %t459 = load ptr, ptr %a1 %t460 = icmp eq ptr %t459, null - br i1 %t460, label %panic3933, label %ok3934 -panic3933: - call void @finch_panic(ptr @.str.2443, i64 1674, ptr @.str.2444) + br i1 %t460, label %panic4077, label %ok4078 +panic4077: + call void @finch_panic(ptr @.str.2528, i64 1755, ptr @.str.2529) unreachable -ok3934: +ok4078: %t461 = getelementptr inbounds %S.gen.Gen, ptr %t459, i32 0, i32 15 %t462 = getelementptr inbounds { ptr, i64, i64 }, ptr %t461, i32 0, i32 1 %t463 = load i64, ptr %t462 @@ -41272,39 +42920,39 @@ entry: %t6 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t7 = load { ptr, i64, i64 }, ptr %t6 store { ptr, i64, i64 } %t7, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.2445, i64 5, i64 0 }, ptr %a9 + store { ptr, i64, i64 } { ptr @.str.2530, i64 5, i64 0 }, ptr %a9 %t10 = call i32 @finch_str_eq(ptr %a8, ptr %a9) %t11 = icmp ne i32 %t10, 0 - br label %logic.from3935 -logic.from3935: - br i1 %t11, label %logic.rhs3936, label %logic.end3937 -logic.rhs3936: + br label %logic.from4079 +logic.from4079: + br i1 %t11, label %logic.rhs4080, label %logic.end4081 +logic.rhs4080: %t12 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %t12, i32 0, i32 1 %t14 = load i64, ptr %t13 %t15 = icmp eq i64 %t14, 0 - br label %logic.rend3938 -logic.rend3938: - br label %logic.end3937 -logic.end3937: - %t16 = phi i1 [ false, %logic.from3935 ], [ %t15, %logic.rend3938 ] - br label %logic.from3939 -logic.from3939: - br i1 %t16, label %logic.rhs3940, label %logic.end3941 -logic.rhs3940: + br label %logic.rend4082 +logic.rend4082: + br label %logic.end4081 +logic.end4081: + %t16 = phi i1 [ false, %logic.from4079 ], [ %t15, %logic.rend4082 ] + br label %logic.from4083 +logic.from4083: + br i1 %t16, label %logic.rhs4084, label %logic.end4085 +logic.rhs4084: %t17 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %t17, i32 0, i32 1 %t19 = load i64, ptr %t18 %t20 = icmp eq i64 %t19, 0 - br label %logic.rend3942 -logic.rend3942: - br label %logic.end3941 -logic.end3941: - %t21 = phi i1 [ false, %logic.from3939 ], [ %t20, %logic.rend3942 ] - br label %logic.from3943 -logic.from3943: - br i1 %t21, label %logic.rhs3944, label %logic.end3945 -logic.rhs3944: + br label %logic.rend4086 +logic.rend4086: + br label %logic.end4085 +logic.end4085: + %t21 = phi i1 [ false, %logic.from4083 ], [ %t20, %logic.rend4086 ] + br label %logic.from4087 +logic.from4087: + br i1 %t21, label %logic.rhs4088, label %logic.end4089 +logic.rhs4088: %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %a4, i32 0, i32 1 %t23 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 %t24 = load { ptr, i64, i64 }, ptr %t23 @@ -41312,36 +42960,36 @@ logic.rhs3944: %t26 = load i64, ptr %t22 %t27 = load ptr, ptr %a4 store i64 0, ptr %a28 - br label %find.cond3946 -find.cond3946: + br label %find.cond4090 +find.cond4090: %t29 = load i64, ptr %a28 %t30 = icmp slt i64 %t29, %t26 - br i1 %t30, label %find.body3947, label %find.end3950 -find.body3947: + br i1 %t30, label %find.body4091, label %find.end4094 +find.body4091: %t31 = getelementptr inbounds { ptr, i64, i64 }, ptr %t27, i64 %t29 %t32 = load { ptr, i64, i64 }, ptr %t31 store { ptr, i64, i64 } %t32, ptr %a33 store { ptr, i64, i64 } %t24, ptr %a34 %t35 = call i32 @finch_str_eq(ptr %a33, ptr %a34) %t36 = icmp ne i32 %t35, 0 - br i1 %t36, label %find.hit3948, label %find.next3949 -find.hit3948: + br i1 %t36, label %find.hit4092, label %find.next4093 +find.hit4092: store i64 %t29, ptr %a25 - br label %find.end3950 -find.next3949: + br label %find.end4094 +find.next4093: %t37 = add i64 %t29, 1 store i64 %t37, ptr %a28 - br label %find.cond3946 -find.end3950: + br label %find.cond4090 +find.end4094: %t38 = load i64, ptr %a25 %t39 = icmp sge i64 %t38, 0 - br label %logic.rend3951 -logic.rend3951: - br label %logic.end3945 -logic.end3945: - %t40 = phi i1 [ false, %logic.from3943 ], [ %t39, %logic.rend3951 ] - br i1 %t40, label %then3952, label %endif3954 -then3952: + br label %logic.rend4095 +logic.rend4095: + br label %logic.end4089 +logic.end4089: + %t40 = phi i1 [ false, %logic.from4087 ], [ %t39, %logic.rend4095 ] + br i1 %t40, label %then4096, label %endif4098 +then4096: %t41 = getelementptr inbounds { ptr, i64, i64 }, ptr %a4, i32 0, i32 1 %t42 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 2 %t43 = load { ptr, i64, i64 }, ptr %t42 @@ -41349,70 +42997,70 @@ then3952: %t45 = load i64, ptr %t41 %t46 = load ptr, ptr %a4 store i64 0, ptr %a47 - br label %find.cond3955 -find.cond3955: + br label %find.cond4099 +find.cond4099: %t48 = load i64, ptr %a47 %t49 = icmp slt i64 %t48, %t45 - br i1 %t49, label %find.body3956, label %find.end3959 -find.body3956: + br i1 %t49, label %find.body4100, label %find.end4103 +find.body4100: %t50 = getelementptr inbounds { ptr, i64, i64 }, ptr %t46, i64 %t48 %t51 = load { ptr, i64, i64 }, ptr %t50 store { ptr, i64, i64 } %t51, ptr %a52 store { ptr, i64, i64 } %t43, ptr %a53 %t54 = call i32 @finch_str_eq(ptr %a52, ptr %a53) %t55 = icmp ne i32 %t54, 0 - br i1 %t55, label %find.hit3957, label %find.next3958 -find.hit3957: + br i1 %t55, label %find.hit4101, label %find.next4102 +find.hit4101: store i64 %t48, ptr %a44 - br label %find.end3959 -find.next3958: + br label %find.end4103 +find.next4102: %t56 = add i64 %t48, 1 store i64 %t56, ptr %a47 - br label %find.cond3955 -find.end3959: + br label %find.cond4099 +find.end4103: %t57 = load i64, ptr %a44 store i64 %t57, ptr %a58 %t59 = load ptr, ptr %a5 %t60 = icmp eq ptr %t59, null - br i1 %t60, label %panic3960, label %ok3961 -panic3960: - call void @finch_panic(ptr @.str.2446, i64 1681, ptr @.str.2447) + br i1 %t60, label %panic4104, label %ok4105 +panic4104: + call void @finch_panic(ptr @.str.2531, i64 1762, ptr @.str.2532) unreachable -ok3961: +ok4105: %t61 = getelementptr inbounds %S.gen.Binds, ptr %t59, i32 0, i32 1 %t62 = load i64, ptr %a58 %t63 = load { ptr, i64, i64 }, ptr %t61 %t64 = extractvalue { ptr, i64, i64 } %t63, 1 %t65 = icmp uge i64 %t62, %t64 - br i1 %t65, label %range3962, label %inrange3963 -range3962: - call void @finch_panic_index(ptr @.str.2448, i64 1681, i64 %t62, i64 %t64) + br i1 %t65, label %range4106, label %inrange4107 +range4106: + call void @finch_panic_index(ptr @.str.2533, i64 1762, i64 %t62, i64 %t64) unreachable -inrange3963: +inrange4107: %t66 = extractvalue { ptr, i64, i64 } %t63, 0 %t67 = getelementptr inbounds i1, ptr %t66, i64 %t62 %t68 = load i1, ptr %t67 %t69 = xor i1 %t68, true - br i1 %t69, label %then3964, label %endif3966 -then3964: + br i1 %t69, label %then4108, label %endif4110 +then4108: %t70 = load %S.ast.Type, ptr %a3 %t71 = load ptr, ptr %a5 %t72 = icmp eq ptr %t71, null - br i1 %t72, label %panic3967, label %ok3968 -panic3967: - call void @finch_panic(ptr @.str.2449, i64 1682, ptr @.str.2450) + br i1 %t72, label %panic4111, label %ok4112 +panic4111: + call void @finch_panic(ptr @.str.2534, i64 1763, ptr @.str.2535) unreachable -ok3968: +ok4112: %t73 = getelementptr inbounds %S.gen.Binds, ptr %t71, i32 0, i32 0 %t74 = load i64, ptr %a58 %t75 = load { ptr, i64, i64 }, ptr %t73 %t76 = extractvalue { ptr, i64, i64 } %t75, 1 %t77 = icmp uge i64 %t74, %t76 - br i1 %t77, label %range3969, label %inrange3970 -range3969: - call void @finch_panic_index(ptr @.str.2451, i64 1682, i64 %t74, i64 %t76) + br i1 %t77, label %range4113, label %inrange4114 +range4113: + call void @finch_panic_index(ptr @.str.2536, i64 1763, i64 %t74, i64 %t76) unreachable -inrange3970: +inrange4114: %t78 = extractvalue { ptr, i64, i64 } %t75, 0 %t79 = getelementptr inbounds %S.ast.Type, ptr %t78, i64 %t74 store %S.ast.Type %t70, ptr %a80 @@ -41424,81 +43072,81 @@ inrange3970: call void @finch.drop.S_ast_Type(ptr %a84) %t85 = load ptr, ptr %a5 %t86 = icmp eq ptr %t85, null - br i1 %t86, label %panic3971, label %ok3972 -panic3971: - call void @finch_panic(ptr @.str.2452, i64 1683, ptr @.str.2453) + br i1 %t86, label %panic4115, label %ok4116 +panic4115: + call void @finch_panic(ptr @.str.2537, i64 1764, ptr @.str.2538) unreachable -ok3972: +ok4116: %t87 = getelementptr inbounds %S.gen.Binds, ptr %t85, i32 0, i32 1 %t88 = load i64, ptr %a58 %t89 = load { ptr, i64, i64 }, ptr %t87 %t90 = extractvalue { ptr, i64, i64 } %t89, 1 %t91 = icmp uge i64 %t88, %t90 - br i1 %t91, label %range3973, label %inrange3974 -range3973: - call void @finch_panic_index(ptr @.str.2454, i64 1683, i64 %t88, i64 %t90) + br i1 %t91, label %range4117, label %inrange4118 +range4117: + call void @finch_panic_index(ptr @.str.2539, i64 1764, i64 %t88, i64 %t90) unreachable -inrange3974: +inrange4118: %t92 = extractvalue { ptr, i64, i64 } %t89, 0 %t93 = getelementptr inbounds i1, ptr %t92, i64 %t88 store i1 true, ptr %t93 - br label %endif3966 -endif3966: + br label %endif4110 +endif4110: ret void -endif3954: +endif4098: %t94 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t95 = load { ptr, i64, i64 }, ptr %t94 store { ptr, i64, i64 } %t95, ptr %a96 - store { ptr, i64, i64 } { ptr @.str.2455, i64 5, i64 0 }, ptr %a97 + store { ptr, i64, i64 } { ptr @.str.2540, i64 5, i64 0 }, ptr %a97 %t98 = call i32 @finch_str_eq(ptr %a96, ptr %a97) %t99 = icmp ne i32 %t98, 0 - br label %logic.from3975 -logic.from3975: - br i1 %t99, label %logic.end3977, label %logic.rhs3976 -logic.rhs3976: + br label %logic.from4119 +logic.from4119: + br i1 %t99, label %logic.end4121, label %logic.rhs4120 +logic.rhs4120: %t100 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t101 = load { ptr, i64, i64 }, ptr %t100 store { ptr, i64, i64 } %t101, ptr %a102 - store { ptr, i64, i64 } { ptr @.str.2456, i64 3, i64 0 }, ptr %a103 + store { ptr, i64, i64 } { ptr @.str.2541, i64 3, i64 0 }, ptr %a103 %t104 = call i32 @finch_str_eq(ptr %a102, ptr %a103) %t105 = icmp ne i32 %t104, 0 - br label %logic.rend3978 -logic.rend3978: - br label %logic.end3977 -logic.end3977: - %t106 = phi i1 [ true, %logic.from3975 ], [ %t105, %logic.rend3978 ] - br label %logic.from3979 -logic.from3979: - br i1 %t106, label %logic.end3981, label %logic.rhs3980 -logic.rhs3980: + br label %logic.rend4122 +logic.rend4122: + br label %logic.end4121 +logic.end4121: + %t106 = phi i1 [ true, %logic.from4119 ], [ %t105, %logic.rend4122 ] + br label %logic.from4123 +logic.from4123: + br i1 %t106, label %logic.end4125, label %logic.rhs4124 +logic.rhs4124: %t107 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t108 = load { ptr, i64, i64 }, ptr %t107 store { ptr, i64, i64 } %t108, ptr %a109 - store { ptr, i64, i64 } { ptr @.str.2457, i64 5, i64 0 }, ptr %a110 + store { ptr, i64, i64 } { ptr @.str.2542, i64 5, i64 0 }, ptr %a110 %t111 = call i32 @finch_str_eq(ptr %a109, ptr %a110) %t112 = icmp ne i32 %t111, 0 - br label %logic.rend3982 -logic.rend3982: - br label %logic.end3981 -logic.end3981: - %t113 = phi i1 [ true, %logic.from3979 ], [ %t112, %logic.rend3982 ] - br label %logic.from3983 -logic.from3983: - br i1 %t113, label %logic.rhs3984, label %logic.end3985 -logic.rhs3984: + br label %logic.rend4126 +logic.rend4126: + br label %logic.end4125 +logic.end4125: + %t113 = phi i1 [ true, %logic.from4123 ], [ %t112, %logic.rend4126 ] + br label %logic.from4127 +logic.from4127: + br i1 %t113, label %logic.rhs4128, label %logic.end4129 +logic.rhs4128: %t114 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t115 = getelementptr inbounds { ptr, i64, i64 }, ptr %t114, i32 0, i32 1 %t116 = load i64, ptr %t115 %t117 = icmp sgt i64 %t116, 0 - br label %logic.rend3986 -logic.rend3986: - br label %logic.end3985 -logic.end3985: - %t118 = phi i1 [ false, %logic.from3983 ], [ %t117, %logic.rend3986 ] - br label %logic.from3987 -logic.from3987: - br i1 %t118, label %logic.rhs3988, label %logic.end3989 -logic.rhs3988: + br label %logic.rend4130 +logic.rend4130: + br label %logic.end4129 +logic.end4129: + %t118 = phi i1 [ false, %logic.from4127 ], [ %t117, %logic.rend4130 ] + br label %logic.from4131 +logic.from4131: + br i1 %t118, label %logic.rhs4132, label %logic.end4133 +logic.rhs4132: %t119 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t120 = load { ptr, i64, i64 }, ptr %t119 %t121 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 @@ -41507,36 +43155,36 @@ logic.rhs3988: store { ptr, i64, i64 } %t122, ptr %a124 %t125 = call i32 @finch_str_eq(ptr %a123, ptr %a124) %t126 = icmp ne i32 %t125, 0 - br label %logic.rend3990 -logic.rend3990: - br label %logic.end3989 -logic.end3989: - %t127 = phi i1 [ false, %logic.from3987 ], [ %t126, %logic.rend3990 ] - br label %logic.from3991 -logic.from3991: - br i1 %t127, label %logic.rhs3992, label %logic.end3993 -logic.rhs3992: + br label %logic.rend4134 +logic.rend4134: + br label %logic.end4133 +logic.end4133: + %t127 = phi i1 [ false, %logic.from4131 ], [ %t126, %logic.rend4134 ] + br label %logic.from4135 +logic.from4135: + br i1 %t127, label %logic.rhs4136, label %logic.end4137 +logic.rhs4136: %t128 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 1 %t129 = getelementptr inbounds { ptr, i64, i64 }, ptr %t128, i32 0, i32 1 %t130 = load i64, ptr %t129 %t131 = icmp sgt i64 %t130, 0 - br label %logic.rend3994 -logic.rend3994: - br label %logic.end3993 -logic.end3993: - %t132 = phi i1 [ false, %logic.from3991 ], [ %t131, %logic.rend3994 ] - br i1 %t132, label %then3995, label %endif3997 -then3995: + br label %logic.rend4138 +logic.rend4138: + br label %logic.end4137 +logic.end4137: + %t132 = phi i1 [ false, %logic.from4135 ], [ %t131, %logic.rend4138 ] + br i1 %t132, label %then4139, label %endif4141 +then4139: %t133 = load ptr, ptr %a1 %t134 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t135 = load { ptr, i64, i64 }, ptr %t134 %t136 = extractvalue { ptr, i64, i64 } %t135, 1 %t137 = icmp uge i64 0, %t136 - br i1 %t137, label %range3998, label %inrange3999 -range3998: - call void @finch_panic_index(ptr @.str.2458, i64 1688, i64 0, i64 %t136) + br i1 %t137, label %range4142, label %inrange4143 +range4142: + call void @finch_panic_index(ptr @.str.2543, i64 1769, i64 0, i64 %t136) unreachable -inrange3999: +inrange4143: %t138 = extractvalue { ptr, i64, i64 } %t135, 0 %t139 = getelementptr inbounds %S.ast.Type, ptr %t138, i64 0 %t140 = load %S.ast.Type, ptr %t139 @@ -41544,11 +43192,11 @@ inrange3999: %t142 = load { ptr, i64, i64 }, ptr %t141 %t143 = extractvalue { ptr, i64, i64 } %t142, 1 %t144 = icmp uge i64 0, %t143 - br i1 %t144, label %range4000, label %inrange4001 -range4000: - call void @finch_panic_index(ptr @.str.2459, i64 1688, i64 0, i64 %t143) + br i1 %t144, label %range4144, label %inrange4145 +range4144: + call void @finch_panic_index(ptr @.str.2544, i64 1769, i64 0, i64 %t143) unreachable -inrange4001: +inrange4145: %t145 = extractvalue { ptr, i64, i64 } %t142, 0 %t146 = getelementptr inbounds %S.ast.Type, ptr %t145, i64 0 %t147 = load %S.ast.Type, ptr %t146 @@ -41556,40 +43204,40 @@ inrange4001: %t149 = load ptr, ptr %a5 call void @finch.gen.bindType(ptr %t133, %S.ast.Type %t140, %S.ast.Type %t147, { ptr, i64, i64 } %t148, ptr %t149) ret void -endif3997: +endif4141: %t150 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t151 = load { ptr, i64, i64 }, ptr %t150 store { ptr, i64, i64 } %t151, ptr %a152 - store { ptr, i64, i64 } { ptr @.str.2460, i64 3, i64 0 }, ptr %a153 + store { ptr, i64, i64 } { ptr @.str.2545, i64 3, i64 0 }, ptr %a153 %t154 = call i32 @finch_str_eq(ptr %a152, ptr %a153) %t155 = icmp ne i32 %t154, 0 - br label %logic.from4002 -logic.from4002: - br i1 %t155, label %logic.rhs4003, label %logic.end4004 -logic.rhs4003: + br label %logic.from4146 +logic.from4146: + br i1 %t155, label %logic.rhs4147, label %logic.end4148 +logic.rhs4147: %t156 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t157 = load { ptr, i64, i64 }, ptr %t156 store { ptr, i64, i64 } %t157, ptr %a158 - store { ptr, i64, i64 } { ptr @.str.2461, i64 3, i64 0 }, ptr %a159 + store { ptr, i64, i64 } { ptr @.str.2546, i64 3, i64 0 }, ptr %a159 %t160 = call i32 @finch_str_eq(ptr %a158, ptr %a159) %t161 = icmp ne i32 %t160, 0 - br label %logic.rend4005 -logic.rend4005: - br label %logic.end4004 -logic.end4004: - %t162 = phi i1 [ false, %logic.from4002 ], [ %t161, %logic.rend4005 ] - br i1 %t162, label %then4006, label %endif4008 -then4006: + br label %logic.rend4149 +logic.rend4149: + br label %logic.end4148 +logic.end4148: + %t162 = phi i1 [ false, %logic.from4146 ], [ %t161, %logic.rend4149 ] + br i1 %t162, label %then4150, label %endif4152 +then4150: %t163 = load ptr, ptr %a1 %t164 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t165 = load { ptr, i64, i64 }, ptr %t164 %t166 = extractvalue { ptr, i64, i64 } %t165, 1 %t167 = icmp uge i64 0, %t166 - br i1 %t167, label %range4009, label %inrange4010 -range4009: - call void @finch_panic_index(ptr @.str.2462, i64 1692, i64 0, i64 %t166) + br i1 %t167, label %range4153, label %inrange4154 +range4153: + call void @finch_panic_index(ptr @.str.2547, i64 1773, i64 0, i64 %t166) unreachable -inrange4010: +inrange4154: %t168 = extractvalue { ptr, i64, i64 } %t165, 0 %t169 = getelementptr inbounds %S.ast.Type, ptr %t168, i64 0 %t170 = load %S.ast.Type, ptr %t169 @@ -41597,11 +43245,11 @@ inrange4010: %t172 = load { ptr, i64, i64 }, ptr %t171 %t173 = extractvalue { ptr, i64, i64 } %t172, 1 %t174 = icmp uge i64 0, %t173 - br i1 %t174, label %range4011, label %inrange4012 -range4011: - call void @finch_panic_index(ptr @.str.2463, i64 1692, i64 0, i64 %t173) + br i1 %t174, label %range4155, label %inrange4156 +range4155: + call void @finch_panic_index(ptr @.str.2548, i64 1773, i64 0, i64 %t173) unreachable -inrange4012: +inrange4156: %t175 = extractvalue { ptr, i64, i64 } %t172, 0 %t176 = getelementptr inbounds %S.ast.Type, ptr %t175, i64 0 %t177 = load %S.ast.Type, ptr %t176 @@ -41613,11 +43261,11 @@ inrange4012: %t182 = load { ptr, i64, i64 }, ptr %t181 %t183 = extractvalue { ptr, i64, i64 } %t182, 1 %t184 = icmp uge i64 1, %t183 - br i1 %t184, label %range4013, label %inrange4014 -range4013: - call void @finch_panic_index(ptr @.str.2464, i64 1693, i64 1, i64 %t183) + br i1 %t184, label %range4157, label %inrange4158 +range4157: + call void @finch_panic_index(ptr @.str.2549, i64 1774, i64 1, i64 %t183) unreachable -inrange4014: +inrange4158: %t185 = extractvalue { ptr, i64, i64 } %t182, 0 %t186 = getelementptr inbounds %S.ast.Type, ptr %t185, i64 1 %t187 = load %S.ast.Type, ptr %t186 @@ -41625,11 +43273,11 @@ inrange4014: %t189 = load { ptr, i64, i64 }, ptr %t188 %t190 = extractvalue { ptr, i64, i64 } %t189, 1 %t191 = icmp uge i64 1, %t190 - br i1 %t191, label %range4015, label %inrange4016 -range4015: - call void @finch_panic_index(ptr @.str.2465, i64 1693, i64 1, i64 %t190) + br i1 %t191, label %range4159, label %inrange4160 +range4159: + call void @finch_panic_index(ptr @.str.2550, i64 1774, i64 1, i64 %t190) unreachable -inrange4016: +inrange4160: %t192 = extractvalue { ptr, i64, i64 } %t189, 0 %t193 = getelementptr inbounds %S.ast.Type, ptr %t192, i64 1 %t194 = load %S.ast.Type, ptr %t193 @@ -41637,50 +43285,50 @@ inrange4016: %t196 = load ptr, ptr %a5 call void @finch.gen.bindType(ptr %t180, %S.ast.Type %t187, %S.ast.Type %t194, { ptr, i64, i64 } %t195, ptr %t196) ret void -endif4008: +endif4152: %t197 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t198 = load { ptr, i64, i64 }, ptr %t197 store { ptr, i64, i64 } %t198, ptr %a199 - store { ptr, i64, i64 } { ptr @.str.2466, i64 5, i64 0 }, ptr %a200 + store { ptr, i64, i64 } { ptr @.str.2551, i64 5, i64 0 }, ptr %a200 %t201 = call i32 @finch_str_eq(ptr %a199, ptr %a200) %t202 = icmp ne i32 %t201, 0 - br label %logic.from4017 -logic.from4017: - br i1 %t202, label %logic.rhs4018, label %logic.end4019 -logic.rhs4018: + br label %logic.from4161 +logic.from4161: + br i1 %t202, label %logic.rhs4162, label %logic.end4163 +logic.rhs4162: %t203 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t204 = getelementptr inbounds { ptr, i64, i64 }, ptr %t203, i32 0, i32 1 %t205 = load i64, ptr %t204 %t206 = icmp sgt i64 %t205, 0 - br label %logic.rend4020 -logic.rend4020: - br label %logic.end4019 -logic.end4019: - %t207 = phi i1 [ false, %logic.from4017 ], [ %t206, %logic.rend4020 ] - br label %logic.from4021 -logic.from4021: - br i1 %t207, label %logic.rhs4022, label %logic.end4023 -logic.rhs4022: + br label %logic.rend4164 +logic.rend4164: + br label %logic.end4163 +logic.end4163: + %t207 = phi i1 [ false, %logic.from4161 ], [ %t206, %logic.rend4164 ] + br label %logic.from4165 +logic.from4165: + br i1 %t207, label %logic.rhs4166, label %logic.end4167 +logic.rhs4166: %t208 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t209 = load { ptr, i64, i64 }, ptr %t208 store { ptr, i64, i64 } %t209, ptr %a210 - store { ptr, i64, i64 } { ptr @.str.2467, i64 6, i64 0 }, ptr %a211 + store { ptr, i64, i64 } { ptr @.str.2552, i64 6, i64 0 }, ptr %a211 %t212 = call i32 @finch_str_eq(ptr %a210, ptr %a211) %t213 = icmp ne i32 %t212, 0 - br label %logic.rend4024 -logic.rend4024: - br label %logic.end4023 -logic.end4023: - %t214 = phi i1 [ false, %logic.from4021 ], [ %t213, %logic.rend4024 ] - br i1 %t214, label %then4025, label %endif4027 -then4025: + br label %logic.rend4168 +logic.rend4168: + br label %logic.end4167 +logic.end4167: + %t214 = phi i1 [ false, %logic.from4165 ], [ %t213, %logic.rend4168 ] + br i1 %t214, label %then4169, label %endif4171 +then4169: %t215 = load ptr, ptr %a1 %t216 = icmp eq ptr %t215, null - br i1 %t216, label %panic4028, label %ok4029 -panic4028: - call void @finch_panic(ptr @.str.2468, i64 1697, ptr @.str.2469) + br i1 %t216, label %panic4172, label %ok4173 +panic4172: + call void @finch_panic(ptr @.str.2553, i64 1778, ptr @.str.2554) unreachable -ok4029: +ok4173: %t217 = getelementptr inbounds %S.gen.Gen, ptr %t215, i32 0, i32 16 %t218 = load ptr, ptr %a1 %t219 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 3 @@ -41691,11 +43339,11 @@ ok4029: %t224 = load { ptr, i64, i64 }, ptr %t217 %t225 = extractvalue { ptr, i64, i64 } %t224, 1 %t226 = icmp uge i64 %t223, %t225 - br i1 %t226, label %range4030, label %inrange4031 -range4030: - call void @finch_panic_index(ptr @.str.2470, i64 1697, i64 %t223, i64 %t225) + br i1 %t226, label %range4174, label %inrange4175 +range4174: + call void @finch_panic_index(ptr @.str.2555, i64 1778, i64 %t223, i64 %t225) unreachable -inrange4031: +inrange4175: %t227 = extractvalue { ptr, i64, i64 } %t224, 0 %t228 = getelementptr inbounds %S.gen.StructDef, ptr %t227, i64 %t223 %t229 = load %S.gen.StructDef, ptr %t228 @@ -41711,10 +43359,10 @@ inrange4031: store { ptr, i64, i64 } %t237, ptr %a239 %t240 = call i32 @finch_str_eq(ptr %a238, ptr %a239) %t241 = icmp ne i32 %t240, 0 - br label %logic.from4032 -logic.from4032: - br i1 %t241, label %logic.rhs4033, label %logic.end4034 -logic.rhs4033: + br label %logic.from4176 +logic.from4176: + br i1 %t241, label %logic.rhs4177, label %logic.end4178 +logic.rhs4177: %t242 = getelementptr inbounds %S.gen.StructDef, ptr %a233, i32 0, i32 7 %t243 = getelementptr inbounds { ptr, i64, i64 }, ptr %t242, i32 0, i32 1 %t244 = load i64, ptr %t243 @@ -41722,34 +43370,34 @@ logic.rhs4033: %t246 = getelementptr inbounds { ptr, i64, i64 }, ptr %t245, i32 0, i32 1 %t247 = load i64, ptr %t246 %t248 = icmp eq i64 %t244, %t247 - br label %logic.rend4035 -logic.rend4035: - br label %logic.end4034 -logic.end4034: - %t249 = phi i1 [ false, %logic.from4032 ], [ %t248, %logic.rend4035 ] - br i1 %t249, label %then4036, label %endif4038 -then4036: + br label %logic.rend4179 +logic.rend4179: + br label %logic.end4178 +logic.end4178: + %t249 = phi i1 [ false, %logic.from4176 ], [ %t248, %logic.rend4179 ] + br i1 %t249, label %then4180, label %endif4182 +then4180: %t250 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t251 = getelementptr inbounds { ptr, i64, i64 }, ptr %t250, i32 0, i32 1 %t252 = load i64, ptr %t251 store i64 0, ptr %a253 - br label %for.cond4039 -for.cond4039: + br label %for.cond4183 +for.cond4183: %t254 = load i64, ptr %a253 %t255 = icmp slt i64 %t254, %t252 - br i1 %t255, label %for.body4040, label %for.end4042 -for.body4040: + br i1 %t255, label %for.body4184, label %for.end4186 +for.body4184: %t256 = load ptr, ptr %a1 %t257 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t258 = load i64, ptr %a253 %t259 = load { ptr, i64, i64 }, ptr %t257 %t260 = extractvalue { ptr, i64, i64 } %t259, 1 %t261 = icmp uge i64 %t258, %t260 - br i1 %t261, label %range4043, label %inrange4044 -range4043: - call void @finch_panic_index(ptr @.str.2471, i64 1700, i64 %t258, i64 %t260) + br i1 %t261, label %range4187, label %inrange4188 +range4187: + call void @finch_panic_index(ptr @.str.2556, i64 1781, i64 %t258, i64 %t260) unreachable -inrange4044: +inrange4188: %t262 = extractvalue { ptr, i64, i64 } %t259, 0 %t263 = getelementptr inbounds %S.ast.Type, ptr %t262, i64 %t258 %t264 = load %S.ast.Type, ptr %t263 @@ -41758,29 +43406,29 @@ inrange4044: %t267 = load { ptr, i64, i64 }, ptr %t265 %t268 = extractvalue { ptr, i64, i64 } %t267, 1 %t269 = icmp uge i64 %t266, %t268 - br i1 %t269, label %range4045, label %inrange4046 -range4045: - call void @finch_panic_index(ptr @.str.2472, i64 1700, i64 %t266, i64 %t268) + br i1 %t269, label %range4189, label %inrange4190 +range4189: + call void @finch_panic_index(ptr @.str.2557, i64 1781, i64 %t266, i64 %t268) unreachable -inrange4046: +inrange4190: %t270 = extractvalue { ptr, i64, i64 } %t267, 0 %t271 = getelementptr inbounds %S.ast.Type, ptr %t270, i64 %t266 %t272 = load %S.ast.Type, ptr %t271 %t273 = load { ptr, i64, i64 }, ptr %a4 %t274 = load ptr, ptr %a5 call void @finch.gen.bindType(ptr %t256, %S.ast.Type %t264, %S.ast.Type %t272, { ptr, i64, i64 } %t273, ptr %t274) - br label %for.step4041 -for.step4041: + br label %for.step4185 +for.step4185: %t275 = load i64, ptr %a253 %t276 = add i64 %t275, 1 store i64 %t276, ptr %a253 - br label %for.cond4039 -for.end4042: - br label %endif4038 -endif4038: + br label %for.cond4183 +for.end4186: + br label %endif4182 +endif4182: call void @finch.drop.S_gen_StructDef(ptr %a233) - br label %endif4027 -endif4027: + br label %endif4171 +endif4171: ret void } @@ -41791,19 +43439,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond4123 -n.cond4123: + br label %n.cond4267 +n.cond4267: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body4124, label %n.end4125 -n.body4124: + br i1 %t6, label %n.body4268, label %n.end4269 +n.body4268: %t7 = getelementptr inbounds %S.gen.Val, ptr %t1, i64 %t5 call void @finch.drop.S_gen_Val(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond4123 -n.end4125: + br label %n.cond4267 +n.end4269: call void @finch_arr_free(ptr %a) ret void } @@ -41930,21 +43578,21 @@ entry: store { ptr, i64, i64 } %p4, ptr %a5 %t6 = load ptr, ptr %a1 %t7 = icmp eq ptr %t6, null - br i1 %t7, label %panic4047, label %ok4048 -panic4047: - call void @finch_panic(ptr @.str.2473, i64 1708, ptr @.str.2474) + br i1 %t7, label %panic4191, label %ok4192 +panic4191: + call void @finch_panic(ptr @.str.2558, i64 1789, ptr @.str.2559) unreachable -ok4048: +ok4192: %t8 = getelementptr inbounds %S.gen.Gen, ptr %t6, i32 0, i32 17 %t9 = load i64, ptr %a3 %t10 = load { ptr, i64, i64 }, ptr %t8 %t11 = extractvalue { ptr, i64, i64 } %t10, 1 %t12 = icmp uge i64 %t9, %t11 - br i1 %t12, label %range4049, label %inrange4050 -range4049: - call void @finch_panic_index(ptr @.str.2475, i64 1708, i64 %t9, i64 %t11) + br i1 %t12, label %range4193, label %inrange4194 +range4193: + call void @finch_panic_index(ptr @.str.2560, i64 1789, i64 %t9, i64 %t11) unreachable -inrange4050: +inrange4194: %t13 = extractvalue { ptr, i64, i64 } %t10, 0 %t14 = getelementptr inbounds %S.gen.Template, ptr %t13, i64 %t9 %t15 = load %S.gen.Template, ptr %t14 @@ -41954,22 +43602,22 @@ inrange4050: store %S.gen.Template %t18, ptr %a19 %t20 = load ptr, ptr %a1 %t21 = icmp eq ptr %t20, null - br i1 %t21, label %panic4051, label %ok4052 -panic4051: - call void @finch_panic(ptr @.str.2476, i64 1709, ptr @.str.2477) + br i1 %t21, label %panic4195, label %ok4196 +panic4195: + call void @finch_panic(ptr @.str.2561, i64 1790, ptr @.str.2562) unreachable -ok4052: +ok4196: %t22 = getelementptr inbounds %S.gen.Gen, ptr %t20, i32 0, i32 0 %t23 = getelementptr inbounds %S.gen.Template, ptr %a19, i32 0, i32 4 %t24 = load i64, ptr %t23 %t25 = load { ptr, i64, i64 }, ptr %t22 %t26 = extractvalue { ptr, i64, i64 } %t25, 1 %t27 = icmp uge i64 %t24, %t26 - br i1 %t27, label %range4053, label %inrange4054 -range4053: - call void @finch_panic_index(ptr @.str.2478, i64 1709, i64 %t24, i64 %t26) + br i1 %t27, label %range4197, label %inrange4198 +range4197: + call void @finch_panic_index(ptr @.str.2563, i64 1790, i64 %t24, i64 %t26) unreachable -inrange4054: +inrange4198: %t28 = extractvalue { ptr, i64, i64 } %t25, 0 %t29 = getelementptr inbounds %S.ast.Program, ptr %t28, i64 %t24 %t30 = getelementptr inbounds %S.ast.Program, ptr %t29, i32 0, i32 8 @@ -41978,11 +43626,11 @@ inrange4054: %t33 = load { ptr, i64, i64 }, ptr %t30 %t34 = extractvalue { ptr, i64, i64 } %t33, 1 %t35 = icmp uge i64 %t32, %t34 - br i1 %t35, label %range4055, label %inrange4056 -range4055: - call void @finch_panic_index(ptr @.str.2479, i64 1709, i64 %t32, i64 %t34) + br i1 %t35, label %range4199, label %inrange4200 +range4199: + call void @finch_panic_index(ptr @.str.2564, i64 1790, i64 %t32, i64 %t34) unreachable -inrange4056: +inrange4200: %t36 = extractvalue { ptr, i64, i64 } %t33, 0 %t37 = getelementptr inbounds %S.ast.Node, ptr %t36, i64 %t32 %t38 = load %S.ast.Node, ptr %t37 @@ -42007,8 +43655,8 @@ inrange4056: %t56 = getelementptr inbounds { ptr, i64, i64 }, ptr %t55, i32 0, i32 1 %t57 = load i64, ptr %t56 %t58 = icmp sgt i64 %t57, 0 - br i1 %t58, label %then4057, label %endif4059 -then4057: + br i1 %t58, label %then4201, label %endif4203 +then4201: %t59 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 5 %t60 = getelementptr inbounds %S.ast.Type, ptr %t59, i32 0, i32 1 %t61 = getelementptr inbounds { ptr, i64, i64 }, ptr %t60, i32 0, i32 1 @@ -42017,13 +43665,13 @@ then4057: %t64 = getelementptr inbounds { ptr, i64, i64 }, ptr %t63, i32 0, i32 1 %t65 = load i64, ptr %t64 %t66 = icmp ne i64 %t62, %t65 - br i1 %t66, label %then4060, label %endif4062 -then4060: + br i1 %t66, label %then4204, label %endif4206 +then4204: %t67 = load ptr, ptr %a1 %t68 = load %S.ast.Node, ptr %a2 %t69 = load { ptr, i64, i64 }, ptr %a5 store { ptr, i64, i64 } %t69, ptr %a71 - store { ptr, i64, i64 } { ptr @.str.2480, i64 7, i64 0 }, ptr %a72 + store { ptr, i64, i64 } { ptr @.str.2565, i64 7, i64 0 }, ptr %a72 call void @finch_str_concat(ptr %a70, ptr %a71, ptr %a72) %t73 = load { ptr, i64, i64 }, ptr %a70 %t74 = getelementptr inbounds %S.gen.Template, ptr %a19, i32 0, i32 3 @@ -42040,7 +43688,7 @@ then4060: call void @finch_str_drop(ptr %a83) %t84 = load { ptr, i64, i64 }, ptr %a79 store { ptr, i64, i64 } %t84, ptr %a86 - store { ptr, i64, i64 } { ptr @.str.2481, i64 27, i64 0 }, ptr %a87 + store { ptr, i64, i64 } { ptr @.str.2566, i64 27, i64 0 }, ptr %a87 call void @finch_str_concat(ptr %a85, ptr %a86, ptr %a87) store { ptr, i64, i64 } %t84, ptr %a88 call void @finch_str_drop(ptr %a88) @@ -42062,19 +43710,19 @@ then4060: call void @finch.gen.fail(ptr %t67, %S.ast.Node %t68, { ptr, i64, i64 } %t101) store { ptr, i64, i64 } %t101, ptr %a102 call void @finch_str_drop(ptr %a102) - br label %endif4062 -endif4062: + br label %endif4206 +endif4206: %t103 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 5 %t104 = getelementptr inbounds %S.ast.Type, ptr %t103, i32 0, i32 1 store i64 0, ptr %a105 - br label %each.cond4063 -each.cond4063: + br label %each.cond4207 +each.cond4207: %t106 = getelementptr inbounds { ptr, i64, i64 }, ptr %t104, i32 0, i32 1 %t107 = load i64, ptr %t106 %t108 = load i64, ptr %a105 %t109 = icmp slt i64 %t108, %t107 - br i1 %t109, label %each.body4064, label %each.end4066 -each.body4064: + br i1 %t109, label %each.body4208, label %each.end4210 +each.body4208: %t110 = load ptr, ptr %t104 %t111 = getelementptr inbounds %S.ast.Type, ptr %t110, i64 %t108 %t112 = load %S.ast.Type, ptr %t111 @@ -42091,18 +43739,18 @@ each.body4064: %t122 = getelementptr inbounds %S.ast.Type, ptr %t121, i64 %t119 store %S.ast.Type %t118, ptr %t122 store i64 %t120, ptr %t114 - br label %each.step4065 -each.step4065: + br label %each.step4209 +each.step4209: %t123 = load i64, ptr %a105 %t124 = add i64 %t123, 1 store i64 %t124, ptr %a105 - br label %each.cond4063 -each.end4066: + br label %each.cond4207 +each.end4210: %t125 = load ptr, ptr %a1 %t126 = load ptr, ptr %a1 %t127 = load i64, ptr %a3 %t128 = load { ptr, i64, i64 }, ptr %a53 - %t129 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.2482, i64 4, i64 0 }) + %t129 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.2567, i64 4, i64 0 }) %t130 = load %S.ast.Node, ptr %a2 %t131 = call i64 @finch.gen.instFn(ptr %t126, i64 %t127, { ptr, i64, i64 } %t128, %S.ast.Type %t129, %S.ast.Node %t130) store %S.ast.Type %t129, ptr %a132 @@ -42110,26 +43758,26 @@ each.end4066: %t133 = load %S.ast.Node, ptr %a2 %t134 = load i64, ptr %a4 %t135 = load { ptr, i64, i64 }, ptr %a5 - %t136 = call %S.gen.Val @finch.gen.callFn(ptr %t125, i64 %t131, %S.ast.Node %t133, i64 %t134, { ptr, i64, i64 } %t135, { ptr, i64, i64 } { ptr @.str.2483, i64 0, i64 0 }, { ptr, i64, i64 } { ptr @.str.2484, i64 0, i64 0 }) + %t136 = call %S.gen.Val @finch.gen.callFn(ptr %t125, i64 %t131, %S.ast.Node %t133, i64 %t134, { ptr, i64, i64 } %t135, { ptr, i64, i64 } { ptr @.str.2568, i64 0, i64 0 }, { ptr, i64, i64 } { ptr @.str.2569, i64 0, i64 0 }) call void @finch.drop.arr_S_ast_Type(ptr %a53) call void @finch.drop.S_ast_Node(ptr %a42) call void @finch.drop.S_gen_Template(ptr %a19) ret %S.gen.Val %t136 -endif4059: +endif4203: store %S.gen.Binds zeroinitializer, ptr %a137 %t138 = getelementptr inbounds %S.gen.Template, ptr %a19, i32 0, i32 3 %t139 = getelementptr inbounds { ptr, i64, i64 }, ptr %t138, i32 0, i32 1 %t140 = load i64, ptr %t139 store i64 0, ptr %a141 - br label %for.cond4067 -for.cond4067: + br label %for.cond4211 +for.cond4211: %t142 = load i64, ptr %a141 %t143 = icmp slt i64 %t142, %t140 - br i1 %t143, label %for.body4068, label %for.end4070 -for.body4068: + br i1 %t143, label %for.body4212, label %for.end4214 +for.body4212: %t144 = getelementptr inbounds %S.gen.Binds, ptr %a137, i32 0, i32 0 %t145 = getelementptr inbounds { ptr, i64, i64 }, ptr %t144, i32 0, i32 1 - %t146 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.2485, i64 4, i64 0 }) + %t146 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.2570, i64 4, i64 0 }) %t147 = load i64, ptr %t145 %t148 = add i64 %t147, 1 call void @finch_arr_reserve(ptr %t144, i64 %t148, i64 ptrtoint (ptr getelementptr (%S.ast.Type, ptr null, i32 1) to i64)) @@ -42146,33 +43794,33 @@ for.body4068: %t156 = getelementptr inbounds i1, ptr %t155, i64 %t153 store i1 false, ptr %t156 store i64 %t154, ptr %t152 - br label %for.step4069 -for.step4069: + br label %for.step4213 +for.step4213: %t157 = load i64, ptr %a141 %t158 = add i64 %t157, 1 store i64 %t158, ptr %a141 - br label %for.cond4067 -for.end4070: + br label %for.cond4211 +for.end4214: store { ptr, i64, i64 } zeroinitializer, ptr %a159 %t160 = load ptr, ptr %a1 %t161 = icmp eq ptr %t160, null - br i1 %t161, label %panic4071, label %ok4072 -panic4071: - call void @finch_panic(ptr @.str.2486, i64 1728, ptr @.str.2487) + br i1 %t161, label %panic4215, label %ok4216 +panic4215: + call void @finch_panic(ptr @.str.2571, i64 1809, ptr @.str.2572) unreachable -ok4072: +ok4216: %t162 = getelementptr inbounds %S.gen.Gen, ptr %t160, i32 0, i32 11 %t163 = getelementptr inbounds { ptr, i64, i64 }, ptr %t162, i32 0, i32 1 %t164 = load i64, ptr %t163 store i64 %t164, ptr %a165 %t166 = load i64, ptr %a47 store i64 0, ptr %a167 - br label %for.cond4073 -for.cond4073: + br label %for.cond4217 +for.cond4217: %t168 = load i64, ptr %a167 %t169 = icmp slt i64 %t168, %t166 - br i1 %t169, label %for.body4074, label %for.end4076 -for.body4074: + br i1 %t169, label %for.body4218, label %for.end4220 +for.body4218: %t170 = load ptr, ptr %a1 %t171 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t172 = load i64, ptr %a4 @@ -42181,11 +43829,11 @@ for.body4074: %t175 = load { ptr, i64, i64 }, ptr %t171 %t176 = extractvalue { ptr, i64, i64 } %t175, 1 %t177 = icmp uge i64 %t174, %t176 - br i1 %t177, label %range4077, label %inrange4078 -range4077: - call void @finch_panic_index(ptr @.str.2488, i64 1730, i64 %t174, i64 %t176) + br i1 %t177, label %range4221, label %inrange4222 +range4221: + call void @finch_panic_index(ptr @.str.2573, i64 1811, i64 %t174, i64 %t176) unreachable -inrange4078: +inrange4222: %t178 = extractvalue { ptr, i64, i64 } %t175, 0 %t179 = getelementptr inbounds %S.ast.Node, ptr %t178, i64 %t174 %t180 = load %S.ast.Node, ptr %t179 @@ -42195,27 +43843,27 @@ inrange4078: %t184 = getelementptr inbounds %S.ast.Type, ptr %t183, i32 0, i32 0 %t185 = load { ptr, i64, i64 }, ptr %t184 store { ptr, i64, i64 } %t185, ptr %a186 - store { ptr, i64, i64 } { ptr @.str.2489, i64 4, i64 0 }, ptr %a187 + store { ptr, i64, i64 } { ptr @.str.2574, i64 4, i64 0 }, ptr %a187 %t188 = call i32 @finch_str_eq(ptr %a186, ptr %a187) %t189 = icmp ne i32 %t188, 0 - br label %logic.from4079 -logic.from4079: - br i1 %t189, label %logic.end4081, label %logic.rhs4080 -logic.rhs4080: + br label %logic.from4223 +logic.from4223: + br i1 %t189, label %logic.end4225, label %logic.rhs4224 +logic.rhs4224: %t190 = getelementptr inbounds %S.gen.Val, ptr %a182, i32 0, i32 1 %t191 = getelementptr inbounds %S.ast.Type, ptr %t190, i32 0, i32 0 %t192 = load { ptr, i64, i64 }, ptr %t191 store { ptr, i64, i64 } %t192, ptr %a193 - store { ptr, i64, i64 } { ptr @.str.2490, i64 4, i64 0 }, ptr %a194 + store { ptr, i64, i64 } { ptr @.str.2575, i64 4, i64 0 }, ptr %a194 %t195 = call i32 @finch_str_eq(ptr %a193, ptr %a194) %t196 = icmp ne i32 %t195, 0 - br label %logic.rend4082 -logic.rend4082: - br label %logic.end4081 -logic.end4081: - %t197 = phi i1 [ true, %logic.from4079 ], [ %t196, %logic.rend4082 ] - br i1 %t197, label %then4083, label %endif4085 -then4083: + br label %logic.rend4226 +logic.rend4226: + br label %logic.end4225 +logic.end4225: + %t197 = phi i1 [ true, %logic.from4223 ], [ %t196, %logic.rend4226 ] + br i1 %t197, label %then4227, label %endif4229 +then4227: %t198 = load ptr, ptr %a1 %t199 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t200 = load i64, ptr %a4 @@ -42224,27 +43872,27 @@ then4083: %t203 = load { ptr, i64, i64 }, ptr %t199 %t204 = extractvalue { ptr, i64, i64 } %t203, 1 %t205 = icmp uge i64 %t202, %t204 - br i1 %t205, label %range4086, label %inrange4087 -range4086: - call void @finch_panic_index(ptr @.str.2491, i64 1732, i64 %t202, i64 %t204) + br i1 %t205, label %range4230, label %inrange4231 +range4230: + call void @finch_panic_index(ptr @.str.2576, i64 1813, i64 %t202, i64 %t204) unreachable -inrange4087: +inrange4231: %t206 = extractvalue { ptr, i64, i64 } %t203, 0 %t207 = getelementptr inbounds %S.ast.Node, ptr %t206, i64 %t202 %t208 = load %S.ast.Node, ptr %t207 %t209 = getelementptr inbounds %S.gen.Template, ptr %a19, i32 0, i32 3 %t210 = getelementptr inbounds { ptr, i64, i64 }, ptr %t209, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.2493, i64 2, i64 0 }, ptr %a211 + store { ptr, i64, i64 } { ptr @.str.2578, i64 2, i64 0 }, ptr %a211 call void @finch_str_join(ptr %a212, ptr %t209, ptr %a211) %t213 = load { ptr, i64, i64 }, ptr %a212 - store { ptr, i64, i64 } { ptr @.str.2492, i64 29, i64 0 }, ptr %a215 + store { ptr, i64, i64 } { ptr @.str.2577, i64 29, i64 0 }, ptr %a215 store { ptr, i64, i64 } %t213, ptr %a216 call void @finch_str_concat(ptr %a214, ptr %a215, ptr %a216) store { ptr, i64, i64 } %t213, ptr %a217 call void @finch_str_drop(ptr %a217) %t218 = load { ptr, i64, i64 }, ptr %a214 store { ptr, i64, i64 } %t218, ptr %a220 - store { ptr, i64, i64 } { ptr @.str.2494, i64 5, i64 0 }, ptr %a221 + store { ptr, i64, i64 } { ptr @.str.2579, i64 5, i64 0 }, ptr %a221 call void @finch_str_concat(ptr %a219, ptr %a220, ptr %a221) store { ptr, i64, i64 } %t218, ptr %a222 call void @finch_str_drop(ptr %a222) @@ -42252,8 +43900,8 @@ inrange4087: call void @finch.gen.fail(ptr %t198, %S.ast.Node %t208, { ptr, i64, i64 } %t223) store { ptr, i64, i64 } %t223, ptr %a224 call void @finch_str_drop(ptr %a224) - br label %endif4085 -endif4085: + br label %endif4229 +endif4229: %t225 = getelementptr inbounds { ptr, i64, i64 }, ptr %a159, i32 0, i32 1 %t226 = load %S.gen.Val, ptr %a182 store %S.gen.Val %t226, ptr %a227 @@ -42275,11 +43923,11 @@ endif4085: %t239 = load { ptr, i64, i64 }, ptr %t237 %t240 = extractvalue { ptr, i64, i64 } %t239, 1 %t241 = icmp uge i64 %t238, %t240 - br i1 %t241, label %range4088, label %inrange4089 -range4088: - call void @finch_panic_index(ptr @.str.2495, i64 1736, i64 %t238, i64 %t240) + br i1 %t241, label %range4232, label %inrange4233 +range4232: + call void @finch_panic_index(ptr @.str.2580, i64 1817, i64 %t238, i64 %t240) unreachable -inrange4089: +inrange4233: %t242 = extractvalue { ptr, i64, i64 } %t239, 0 %t243 = getelementptr inbounds %S.ast.Node, ptr %t242, i64 %t238 %t244 = getelementptr inbounds %S.ast.Node, ptr %t243, i32 0, i32 5 @@ -42290,39 +43938,39 @@ inrange4089: %t249 = load { ptr, i64, i64 }, ptr %t248 call void @finch.gen.bindType(ptr %t236, %S.ast.Type %t245, %S.ast.Type %t247, { ptr, i64, i64 } %t249, ptr %a137) call void @finch.drop.S_gen_Val(ptr %a182) - br label %for.step4075 -for.step4075: + br label %for.step4219 +for.step4219: %t250 = load i64, ptr %a167 %t251 = add i64 %t250, 1 store i64 %t251, ptr %a167 - br label %for.cond4073 -for.end4076: + br label %for.cond4217 +for.end4220: %t252 = getelementptr inbounds %S.gen.Template, ptr %a19, i32 0, i32 3 %t253 = getelementptr inbounds { ptr, i64, i64 }, ptr %t252, i32 0, i32 1 %t254 = load i64, ptr %t253 store i64 0, ptr %a255 - br label %for.cond4090 -for.cond4090: + br label %for.cond4234 +for.cond4234: %t256 = load i64, ptr %a255 %t257 = icmp slt i64 %t256, %t254 - br i1 %t257, label %for.body4091, label %for.end4093 -for.body4091: + br i1 %t257, label %for.body4235, label %for.end4237 +for.body4235: %t258 = getelementptr inbounds %S.gen.Binds, ptr %a137, i32 0, i32 1 %t259 = load i64, ptr %a255 %t260 = load { ptr, i64, i64 }, ptr %t258 %t261 = extractvalue { ptr, i64, i64 } %t260, 1 %t262 = icmp uge i64 %t259, %t261 - br i1 %t262, label %range4094, label %inrange4095 -range4094: - call void @finch_panic_index(ptr @.str.2496, i64 1739, i64 %t259, i64 %t261) + br i1 %t262, label %range4238, label %inrange4239 +range4238: + call void @finch_panic_index(ptr @.str.2581, i64 1820, i64 %t259, i64 %t261) unreachable -inrange4095: +inrange4239: %t263 = extractvalue { ptr, i64, i64 } %t260, 0 %t264 = getelementptr inbounds i1, ptr %t263, i64 %t259 %t265 = load i1, ptr %t264 %t266 = xor i1 %t265, true - br i1 %t266, label %then4096, label %endif4098 -then4096: + br i1 %t266, label %then4240, label %endif4242 +then4240: %t267 = load ptr, ptr %a1 %t268 = load %S.ast.Node, ptr %a2 %t269 = getelementptr inbounds %S.gen.Template, ptr %a19, i32 0, i32 3 @@ -42330,20 +43978,20 @@ then4096: %t271 = load { ptr, i64, i64 }, ptr %t269 %t272 = extractvalue { ptr, i64, i64 } %t271, 1 %t273 = icmp uge i64 %t270, %t272 - br i1 %t273, label %range4099, label %inrange4100 -range4099: - call void @finch_panic_index(ptr @.str.2498, i64 1740, i64 %t270, i64 %t272) + br i1 %t273, label %range4243, label %inrange4244 +range4243: + call void @finch_panic_index(ptr @.str.2583, i64 1821, i64 %t270, i64 %t272) unreachable -inrange4100: +inrange4244: %t274 = extractvalue { ptr, i64, i64 } %t271, 0 %t275 = getelementptr inbounds { ptr, i64, i64 }, ptr %t274, i64 %t270 %t276 = load { ptr, i64, i64 }, ptr %t275 - store { ptr, i64, i64 } { ptr @.str.2497, i64 16, i64 0 }, ptr %a278 + store { ptr, i64, i64 } { ptr @.str.2582, i64 16, i64 0 }, ptr %a278 store { ptr, i64, i64 } %t276, ptr %a279 call void @finch_str_concat(ptr %a277, ptr %a278, ptr %a279) %t280 = load { ptr, i64, i64 }, ptr %a277 store { ptr, i64, i64 } %t280, ptr %a282 - store { ptr, i64, i64 } { ptr @.str.2499, i64 24, i64 0 }, ptr %a283 + store { ptr, i64, i64 } { ptr @.str.2584, i64 24, i64 0 }, ptr %a283 call void @finch_str_concat(ptr %a281, ptr %a282, ptr %a283) store { ptr, i64, i64 } %t280, ptr %a284 call void @finch_str_drop(ptr %a284) @@ -42357,7 +44005,7 @@ inrange4100: call void @finch_str_drop(ptr %a291) %t292 = load { ptr, i64, i64 }, ptr %a288 store { ptr, i64, i64 } %t292, ptr %a294 - store { ptr, i64, i64 } { ptr @.str.2500, i64 10, i64 0 }, ptr %a295 + store { ptr, i64, i64 } { ptr @.str.2585, i64 10, i64 0 }, ptr %a295 call void @finch_str_concat(ptr %a293, ptr %a294, ptr %a295) store { ptr, i64, i64 } %t292, ptr %a296 call void @finch_str_drop(ptr %a296) @@ -42365,20 +44013,20 @@ inrange4100: call void @finch.gen.fail(ptr %t267, %S.ast.Node %t268, { ptr, i64, i64 } %t297) store { ptr, i64, i64 } %t297, ptr %a298 call void @finch_str_drop(ptr %a298) - br label %endif4098 -endif4098: - br label %for.step4092 -for.step4092: + br label %endif4242 +endif4242: + br label %for.step4236 +for.step4236: %t299 = load i64, ptr %a255 %t300 = add i64 %t299, 1 store i64 %t300, ptr %a255 - br label %for.cond4090 -for.end4093: + br label %for.cond4234 +for.end4237: %t301 = load ptr, ptr %a1 %t302 = load i64, ptr %a3 %t303 = getelementptr inbounds %S.gen.Binds, ptr %a137, i32 0, i32 0 %t304 = load { ptr, i64, i64 }, ptr %t303 - %t305 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.2501, i64 4, i64 0 }) + %t305 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.2586, i64 4, i64 0 }) %t306 = load %S.ast.Node, ptr %a2 %t307 = call i64 @finch.gen.instFn(ptr %t301, i64 %t302, { ptr, i64, i64 } %t304, %S.ast.Type %t305, %S.ast.Node %t306) store %S.ast.Type %t305, ptr %a308 @@ -42386,21 +44034,21 @@ for.end4093: store i64 %t307, ptr %a309 %t310 = load ptr, ptr %a1 %t311 = icmp eq ptr %t310, null - br i1 %t311, label %panic4101, label %ok4102 -panic4101: - call void @finch_panic(ptr @.str.2502, i64 1744, ptr @.str.2503) + br i1 %t311, label %panic4245, label %ok4246 +panic4245: + call void @finch_panic(ptr @.str.2587, i64 1825, ptr @.str.2588) unreachable -ok4102: +ok4246: %t312 = getelementptr inbounds %S.gen.Gen, ptr %t310, i32 0, i32 15 %t313 = load i64, ptr %a309 %t314 = load { ptr, i64, i64 }, ptr %t312 %t315 = extractvalue { ptr, i64, i64 } %t314, 1 %t316 = icmp uge i64 %t313, %t315 - br i1 %t316, label %range4103, label %inrange4104 -range4103: - call void @finch_panic_index(ptr @.str.2504, i64 1744, i64 %t313, i64 %t315) + br i1 %t316, label %range4247, label %inrange4248 +range4247: + call void @finch_panic_index(ptr @.str.2589, i64 1825, i64 %t313, i64 %t315) unreachable -inrange4104: +inrange4248: %t317 = extractvalue { ptr, i64, i64 } %t314, 0 %t318 = getelementptr inbounds %S.gen.FnSig, ptr %t317, i64 %t313 %t319 = load %S.gen.FnSig, ptr %t318 @@ -42415,22 +44063,22 @@ inrange4104: store { ptr, i64, i64 } zeroinitializer, ptr %a327 %t328 = load i64, ptr %a47 store i64 0, ptr %a329 - br label %for.cond4105 -for.cond4105: + br label %for.cond4249 +for.cond4249: %t330 = load i64, ptr %a329 %t331 = icmp slt i64 %t330, %t328 - br i1 %t331, label %for.body4106, label %for.end4108 -for.body4106: + br i1 %t331, label %for.body4250, label %for.end4252 +for.body4250: %t332 = load ptr, ptr %a1 %t333 = load i64, ptr %a329 %t334 = load { ptr, i64, i64 }, ptr %a159 %t335 = extractvalue { ptr, i64, i64 } %t334, 1 %t336 = icmp uge i64 %t333, %t335 - br i1 %t336, label %range4109, label %inrange4110 -range4109: - call void @finch_panic_index(ptr @.str.2505, i64 1748, i64 %t333, i64 %t335) + br i1 %t336, label %range4253, label %inrange4254 +range4253: + call void @finch_panic_index(ptr @.str.2590, i64 1829, i64 %t333, i64 %t335) unreachable -inrange4110: +inrange4254: %t337 = extractvalue { ptr, i64, i64 } %t334, 0 %t338 = getelementptr inbounds %S.gen.Val, ptr %t337, i64 %t333 %t339 = load %S.gen.Val, ptr %t338 @@ -42439,11 +44087,11 @@ inrange4110: %t342 = load { ptr, i64, i64 }, ptr %t340 %t343 = extractvalue { ptr, i64, i64 } %t342, 1 %t344 = icmp uge i64 %t341, %t343 - br i1 %t344, label %range4111, label %inrange4112 -range4111: - call void @finch_panic_index(ptr @.str.2506, i64 1748, i64 %t341, i64 %t343) + br i1 %t344, label %range4255, label %inrange4256 +range4255: + call void @finch_panic_index(ptr @.str.2591, i64 1829, i64 %t341, i64 %t343) unreachable -inrange4112: +inrange4256: %t345 = extractvalue { ptr, i64, i64 } %t342, 0 %t346 = getelementptr inbounds %S.ast.Type, ptr %t345, i64 %t341 %t347 = load %S.ast.Type, ptr %t346 @@ -42454,11 +44102,11 @@ inrange4112: %t352 = load { ptr, i64, i64 }, ptr %t348 %t353 = extractvalue { ptr, i64, i64 } %t352, 1 %t354 = icmp uge i64 %t351, %t353 - br i1 %t354, label %range4113, label %inrange4114 -range4113: - call void @finch_panic_index(ptr @.str.2507, i64 1748, i64 %t351, i64 %t353) + br i1 %t354, label %range4257, label %inrange4258 +range4257: + call void @finch_panic_index(ptr @.str.2592, i64 1829, i64 %t351, i64 %t353) unreachable -inrange4114: +inrange4258: %t355 = extractvalue { ptr, i64, i64 } %t352, 0 %t356 = getelementptr inbounds %S.ast.Node, ptr %t355, i64 %t351 %t357 = load %S.ast.Node, ptr %t356 @@ -42467,20 +44115,20 @@ inrange4114: %t360 = load { ptr, i64, i64 }, ptr %t358 %t361 = extractvalue { ptr, i64, i64 } %t360, 1 %t362 = icmp uge i64 %t359, %t361 - br i1 %t362, label %range4115, label %inrange4116 -range4115: - call void @finch_panic_index(ptr @.str.2509, i64 1748, i64 %t359, i64 %t361) + br i1 %t362, label %range4259, label %inrange4260 +range4259: + call void @finch_panic_index(ptr @.str.2594, i64 1829, i64 %t359, i64 %t361) unreachable -inrange4116: +inrange4260: %t363 = extractvalue { ptr, i64, i64 } %t360, 0 %t364 = getelementptr inbounds { ptr, i64, i64 }, ptr %t363, i64 %t359 %t365 = load { ptr, i64, i64 }, ptr %t364 - store { ptr, i64, i64 } { ptr @.str.2508, i64 10, i64 0 }, ptr %a367 + store { ptr, i64, i64 } { ptr @.str.2593, i64 10, i64 0 }, ptr %a367 store { ptr, i64, i64 } %t365, ptr %a368 call void @finch_str_concat(ptr %a366, ptr %a367, ptr %a368) %t369 = load { ptr, i64, i64 }, ptr %a366 store { ptr, i64, i64 } %t369, ptr %a371 - store { ptr, i64, i64 } { ptr @.str.2510, i64 1, i64 0 }, ptr %a372 + store { ptr, i64, i64 } { ptr @.str.2595, i64 1, i64 0 }, ptr %a372 call void @finch_str_concat(ptr %a370, ptr %a371, ptr %a372) store { ptr, i64, i64 } %t369, ptr %a373 call void @finch_str_drop(ptr %a373) @@ -42496,17 +44144,17 @@ inrange4116: %t382 = load { ptr, i64, i64 }, ptr %t380 %t383 = extractvalue { ptr, i64, i64 } %t382, 1 %t384 = icmp uge i64 %t381, %t383 - br i1 %t384, label %range4117, label %inrange4118 -range4117: - call void @finch_panic_index(ptr @.str.2511, i64 1749, i64 %t381, i64 %t383) + br i1 %t384, label %range4261, label %inrange4262 +range4261: + call void @finch_panic_index(ptr @.str.2596, i64 1830, i64 %t381, i64 %t383) unreachable -inrange4118: +inrange4262: %t385 = extractvalue { ptr, i64, i64 } %t382, 0 %t386 = getelementptr inbounds %S.ast.Type, ptr %t385, i64 %t381 %t387 = load %S.ast.Type, ptr %t386 %t388 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t379, %S.ast.Type %t387) store { ptr, i64, i64 } %t388, ptr %a390 - store { ptr, i64, i64 } { ptr @.str.2512, i64 1, i64 0 }, ptr %a391 + store { ptr, i64, i64 } { ptr @.str.2597, i64 1, i64 0 }, ptr %a391 call void @finch_str_concat(ptr %a389, ptr %a390, ptr %a391) store { ptr, i64, i64 } %t388, ptr %a392 call void @finch_str_drop(ptr %a392) @@ -42527,13 +44175,13 @@ inrange4118: store { ptr, i64, i64 } %t400, ptr %t404 store i64 %t402, ptr %t378 call void @finch.drop.S_gen_Val(ptr %a377) - br label %for.step4107 -for.step4107: + br label %for.step4251 +for.step4251: %t405 = load i64, ptr %a329 %t406 = add i64 %t405, 1 store i64 %t406, ptr %a329 - br label %for.cond4105 -for.end4108: + br label %for.cond4249 +for.end4252: %t407 = load ptr, ptr %a1 %t408 = load %S.gen.FnSig, ptr %a323 %t409 = load %S.ast.Node, ptr %a2 @@ -42542,14 +44190,14 @@ for.end4108: %t412 = call %S.gen.Val @finch.gen.emitCall(ptr %t407, %S.gen.FnSig %t408, %S.ast.Node %t409, { ptr, i64, i64 } %t410, { ptr, i64, i64 } %t411) store %S.gen.Val %t412, ptr %a413 store i64 0, ptr %a414 - br label %each.cond4119 -each.cond4119: + br label %each.cond4263 +each.cond4263: %t415 = getelementptr inbounds { ptr, i64, i64 }, ptr %a159, i32 0, i32 1 %t416 = load i64, ptr %t415 %t417 = load i64, ptr %a414 %t418 = icmp slt i64 %t417, %t416 - br i1 %t418, label %each.body4120, label %each.end4122 -each.body4120: + br i1 %t418, label %each.body4264, label %each.end4266 +each.body4264: %t419 = load ptr, ptr %a159 %t420 = getelementptr inbounds %S.gen.Val, ptr %t419, i64 %t417 %t421 = load %S.gen.Val, ptr %t420 @@ -42557,13 +44205,13 @@ each.body4120: %t423 = load ptr, ptr %a1 %t424 = load %S.gen.Val, ptr %a422 call void @finch.gen.release(ptr %t423, %S.gen.Val %t424) - br label %each.step4121 -each.step4121: + br label %each.step4265 +each.step4265: %t425 = load i64, ptr %a414 %t426 = add i64 %t425, 1 store i64 %t426, ptr %a414 - br label %each.cond4119 -each.end4122: + br label %each.cond4263 +each.end4266: %t427 = load ptr, ptr %a1 %t428 = load i64, ptr %a165 call void @finch.gen.heldEnd(ptr %t427, i64 %t428) @@ -42601,20 +44249,20 @@ entry: %t3 = getelementptr inbounds { ptr, i64, i64 }, ptr %src, i32 0, i32 1 %t4 = load i64, ptr %t3 store i64 0, ptr %a5 - br label %n.cond4134 -n.cond4134: + br label %n.cond4278 +n.cond4278: %t6 = load i64, ptr %a5 %t7 = icmp slt i64 %t6, %t4 - br i1 %t7, label %n.body4135, label %n.end4136 -n.body4135: + br i1 %t7, label %n.body4279, label %n.end4280 +n.body4279: %t8 = getelementptr inbounds %S.cimport.CField, ptr %t1, i64 %t6 %t9 = getelementptr inbounds %S.cimport.CField, ptr %t2, i64 %t6 call void @finch.copy.S_cimport_CField(ptr %t8, ptr %t9) %t10 = load i64, ptr %a5 %t11 = add i64 %t10, 1 store i64 %t11, ptr %a5 - br label %n.cond4134 -n.end4136: + br label %n.cond4278 +n.end4280: ret void } @@ -42700,30 +44348,30 @@ entry: store i64 %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic4126, label %ok4127 -panic4126: - call void @finch_panic(ptr @.str.2513, i64 1762, ptr @.str.2514) + br i1 %t4, label %panic4270, label %ok4271 +panic4270: + call void @finch_panic(ptr @.str.2598, i64 1843, ptr @.str.2599) unreachable -ok4127: - %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 25 +ok4271: + %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 26 %t6 = getelementptr inbounds %S.cimport.CImports, ptr %t5, i32 0, i32 3 %t7 = load ptr, ptr %a1 %t8 = icmp eq ptr %t7, null - br i1 %t8, label %panic4128, label %ok4129 -panic4128: - call void @finch_panic(ptr @.str.2515, i64 1762, ptr @.str.2516) + br i1 %t8, label %panic4272, label %ok4273 +panic4272: + call void @finch_panic(ptr @.str.2600, i64 1843, ptr @.str.2601) unreachable -ok4129: +ok4273: %t9 = getelementptr inbounds %S.gen.Gen, ptr %t7, i32 0, i32 16 %t10 = load i64, ptr %a2 %t11 = load { ptr, i64, i64 }, ptr %t9 %t12 = extractvalue { ptr, i64, i64 } %t11, 1 %t13 = icmp uge i64 %t10, %t12 - br i1 %t13, label %range4130, label %inrange4131 -range4130: - call void @finch_panic_index(ptr @.str.2517, i64 1762, i64 %t10, i64 %t12) + br i1 %t13, label %range4274, label %inrange4275 +range4274: + call void @finch_panic_index(ptr @.str.2602, i64 1843, i64 %t10, i64 %t12) unreachable -inrange4131: +inrange4275: %t14 = extractvalue { ptr, i64, i64 } %t11, 0 %t15 = getelementptr inbounds %S.gen.StructDef, ptr %t14, i64 %t10 %t16 = getelementptr inbounds %S.gen.StructDef, ptr %t15, i32 0, i32 1 @@ -42731,14 +44379,14 @@ inrange4131: store { ptr, i64, i64 } %t17, ptr %a18 %t19 = call i64 @finch_map_find(ptr %t6, ptr %a18, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t20 = icmp slt i64 %t19, 0 - br i1 %t20, label %map.missing4132, label %map.found4133 -map.missing4132: + br i1 %t20, label %map.missing4276, label %map.found4277 +map.missing4276: store { ptr, i64, i64 } zeroinitializer, ptr %a21 store { ptr, i64, i64 } %t17, ptr %a22 call void @finch_buf_str(ptr %a21, ptr %a22, i32 1) - call void @finch_map_missing(ptr @.str.2518, i64 1762, ptr %a21) + call void @finch_map_missing(ptr @.str.2603, i64 1843, ptr %a21) unreachable -map.found4133: +map.found4277: %t23 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t6, i32 0, i32 0 %t24 = load ptr, ptr %t23 %t25 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr %t24, i64 %t19 @@ -42750,21 +44398,21 @@ map.found4133: store %S.cimport.CStruct %t30, ptr %a31 %t32 = load ptr, ptr %a1 %t33 = icmp eq ptr %t32, null - br i1 %t33, label %panic4137, label %ok4138 -panic4137: - call void @finch_panic(ptr @.str.2519, i64 1763, ptr @.str.2520) + br i1 %t33, label %panic4281, label %ok4282 +panic4281: + call void @finch_panic(ptr @.str.2604, i64 1844, ptr @.str.2605) unreachable -ok4138: +ok4282: %t34 = getelementptr inbounds %S.gen.Gen, ptr %t32, i32 0, i32 16 %t35 = load i64, ptr %a2 %t36 = load { ptr, i64, i64 }, ptr %t34 %t37 = extractvalue { ptr, i64, i64 } %t36, 1 %t38 = icmp uge i64 %t35, %t37 - br i1 %t38, label %range4139, label %inrange4140 -range4139: - call void @finch_panic_index(ptr @.str.2521, i64 1763, i64 %t35, i64 %t37) + br i1 %t38, label %range4283, label %inrange4284 +range4283: + call void @finch_panic_index(ptr @.str.2606, i64 1844, i64 %t35, i64 %t37) unreachable -inrange4140: +inrange4284: %t39 = extractvalue { ptr, i64, i64 } %t36, 0 %t40 = getelementptr inbounds %S.gen.StructDef, ptr %t39, i64 %t35 %t41 = getelementptr inbounds %S.gen.StructDef, ptr %t40, i32 0, i32 15 @@ -42773,24 +44421,24 @@ inrange4140: store { ptr, i64, i64 } zeroinitializer, ptr %a43 %t44 = getelementptr inbounds %S.cimport.CStruct, ptr %a31, i32 0, i32 1 store i64 0, ptr %a45 - br label %each.cond4141 -each.cond4141: + br label %each.cond4285 +each.cond4285: %t46 = getelementptr inbounds { ptr, i64, i64 }, ptr %t44, i32 0, i32 1 %t47 = load i64, ptr %t46 %t48 = load i64, ptr %a45 %t49 = icmp slt i64 %t48, %t47 - br i1 %t49, label %each.body4142, label %each.end4144 -each.body4142: + br i1 %t49, label %each.body4286, label %each.end4288 +each.body4286: %t50 = load ptr, ptr %t44 %t51 = getelementptr inbounds %S.cimport.CField, ptr %t50, i64 %t48 %t52 = load %S.cimport.CField, ptr %t51 store %S.cimport.CField %t52, ptr %a53 %t54 = getelementptr inbounds %S.cimport.CField, ptr %a53, i32 0, i32 5 %t55 = load i1, ptr %t54 - br i1 %t55, label %then4145, label %endif4147 -then4145: - br label %each.step4143 -endif4147: + br i1 %t55, label %then4289, label %endif4291 +then4289: + br label %each.step4287 +endif4291: %t56 = load ptr, ptr %a1 %t57 = getelementptr inbounds %S.cimport.CField, ptr %a53, i32 0, i32 1 %t58 = load %S.ast.Type, ptr %t57 @@ -42799,11 +44447,11 @@ endif4147: %t61 = getelementptr inbounds %S.ast.Type, ptr %a60, i32 0, i32 0 %t62 = load { ptr, i64, i64 }, ptr %t61 store { ptr, i64, i64 } %t62, ptr %a63 - store { ptr, i64, i64 } { ptr @.str.2522, i64 6, i64 0 }, ptr %a64 + store { ptr, i64, i64 } { ptr @.str.2607, i64 6, i64 0 }, ptr %a64 %t65 = call i32 @finch_str_eq(ptr %a63, ptr %a64) %t66 = icmp ne i32 %t65, 0 - br i1 %t66, label %then4148, label %endif4150 -then4148: + br i1 %t66, label %then4292, label %endif4294 +then4292: %t67 = load ptr, ptr %a1 %t68 = load ptr, ptr %a1 %t69 = getelementptr inbounds %S.ast.Type, ptr %a60, i32 0, i32 3 @@ -42812,14 +44460,14 @@ then4148: %t72 = load { ptr, i64, i64 }, ptr %t71 %t73 = call i64 @finch.gen.findStruct(ptr %t68, { ptr, i64, i64 } %t70, { ptr, i64, i64 } %t72) call void @finch.gen.resolveStruct(ptr %t67, i64 %t73) - br label %endif4150 -endif4150: + br label %endif4294 +endif4294: %t74 = getelementptr inbounds %S.cimport.CField, ptr %a53, i32 0, i32 2 %t75 = load i64, ptr %t74 %t76 = load i64, ptr %a42 %t77 = icmp sgt i64 %t75, %t76 - br i1 %t77, label %then4151, label %endif4153 -then4151: + br i1 %t77, label %then4295, label %endif4297 +then4295: %t78 = getelementptr inbounds { ptr, i64, i64 }, ptr %a43, i32 0, i32 1 %t79 = getelementptr inbounds %S.cimport.CField, ptr %a53, i32 0, i32 2 %t80 = load i64, ptr %t79 @@ -42827,14 +44475,14 @@ then4151: %t82 = sub i64 %t80, %t81 call void @finch_str_from_int(ptr %a83, i64 %t82) %t84 = load { ptr, i64, i64 }, ptr %a83 - store { ptr, i64, i64 } { ptr @.str.2523, i64 1, i64 0 }, ptr %a86 + store { ptr, i64, i64 } { ptr @.str.2608, i64 1, i64 0 }, ptr %a86 store { ptr, i64, i64 } %t84, ptr %a87 call void @finch_str_concat(ptr %a85, ptr %a86, ptr %a87) store { ptr, i64, i64 } %t84, ptr %a88 call void @finch_str_drop(ptr %a88) %t89 = load { ptr, i64, i64 }, ptr %a85 store { ptr, i64, i64 } %t89, ptr %a91 - store { ptr, i64, i64 } { ptr @.str.2524, i64 6, i64 0 }, ptr %a92 + store { ptr, i64, i64 } { ptr @.str.2609, i64 6, i64 0 }, ptr %a92 call void @finch_str_concat(ptr %a90, ptr %a91, ptr %a92) store { ptr, i64, i64 } %t89, ptr %a93 call void @finch_str_drop(ptr %a93) @@ -42846,25 +44494,25 @@ then4151: %t98 = getelementptr inbounds { ptr, i64, i64 }, ptr %t97, i64 %t95 store { ptr, i64, i64 } %t94, ptr %t98 store i64 %t96, ptr %t78 - br label %endif4153 -endif4153: + br label %endif4297 +endif4297: %t99 = load ptr, ptr %a1 %t100 = icmp eq ptr %t99, null - br i1 %t100, label %panic4154, label %ok4155 -panic4154: - call void @finch_panic(ptr @.str.2525, i64 1777, ptr @.str.2526) + br i1 %t100, label %panic4298, label %ok4299 +panic4298: + call void @finch_panic(ptr @.str.2610, i64 1858, ptr @.str.2611) unreachable -ok4155: +ok4299: %t101 = getelementptr inbounds %S.gen.Gen, ptr %t99, i32 0, i32 16 %t102 = load i64, ptr %a2 %t103 = load { ptr, i64, i64 }, ptr %t101 %t104 = extractvalue { ptr, i64, i64 } %t103, 1 %t105 = icmp uge i64 %t102, %t104 - br i1 %t105, label %range4156, label %inrange4157 -range4156: - call void @finch_panic_index(ptr @.str.2527, i64 1777, i64 %t102, i64 %t104) + br i1 %t105, label %range4300, label %inrange4301 +range4300: + call void @finch_panic_index(ptr @.str.2612, i64 1858, i64 %t102, i64 %t104) unreachable -inrange4157: +inrange4301: %t106 = extractvalue { ptr, i64, i64 } %t103, 0 %t107 = getelementptr inbounds %S.gen.StructDef, ptr %t106, i64 %t102 %t108 = getelementptr inbounds %S.gen.StructDef, ptr %t107, i32 0, i32 11 @@ -42883,21 +44531,21 @@ inrange4157: store i64 %t116, ptr %t109 %t119 = load ptr, ptr %a1 %t120 = icmp eq ptr %t119, null - br i1 %t120, label %panic4158, label %ok4159 -panic4158: - call void @finch_panic(ptr @.str.2528, i64 1778, ptr @.str.2529) + br i1 %t120, label %panic4302, label %ok4303 +panic4302: + call void @finch_panic(ptr @.str.2613, i64 1859, ptr @.str.2614) unreachable -ok4159: +ok4303: %t121 = getelementptr inbounds %S.gen.Gen, ptr %t119, i32 0, i32 16 %t122 = load i64, ptr %a2 %t123 = load { ptr, i64, i64 }, ptr %t121 %t124 = extractvalue { ptr, i64, i64 } %t123, 1 %t125 = icmp uge i64 %t122, %t124 - br i1 %t125, label %range4160, label %inrange4161 -range4160: - call void @finch_panic_index(ptr @.str.2530, i64 1778, i64 %t122, i64 %t124) + br i1 %t125, label %range4304, label %inrange4305 +range4304: + call void @finch_panic_index(ptr @.str.2615, i64 1859, i64 %t122, i64 %t124) unreachable -inrange4161: +inrange4305: %t126 = extractvalue { ptr, i64, i64 } %t123, 0 %t127 = getelementptr inbounds %S.gen.StructDef, ptr %t126, i64 %t122 %t128 = getelementptr inbounds %S.gen.StructDef, ptr %t127, i32 0, i32 12 @@ -42915,21 +44563,21 @@ inrange4161: store i64 %t135, ptr %t129 %t138 = load ptr, ptr %a1 %t139 = icmp eq ptr %t138, null - br i1 %t139, label %panic4162, label %ok4163 -panic4162: - call void @finch_panic(ptr @.str.2531, i64 1779, ptr @.str.2532) + br i1 %t139, label %panic4306, label %ok4307 +panic4306: + call void @finch_panic(ptr @.str.2616, i64 1860, ptr @.str.2617) unreachable -ok4163: +ok4307: %t140 = getelementptr inbounds %S.gen.Gen, ptr %t138, i32 0, i32 16 %t141 = load i64, ptr %a2 %t142 = load { ptr, i64, i64 }, ptr %t140 %t143 = extractvalue { ptr, i64, i64 } %t142, 1 %t144 = icmp uge i64 %t141, %t143 - br i1 %t144, label %range4164, label %inrange4165 -range4164: - call void @finch_panic_index(ptr @.str.2533, i64 1779, i64 %t141, i64 %t143) + br i1 %t144, label %range4308, label %inrange4309 +range4308: + call void @finch_panic_index(ptr @.str.2618, i64 1860, i64 %t141, i64 %t143) unreachable -inrange4165: +inrange4309: %t145 = extractvalue { ptr, i64, i64 } %t142, 0 %t146 = getelementptr inbounds %S.gen.StructDef, ptr %t145, i64 %t141 %t147 = getelementptr inbounds %S.gen.StructDef, ptr %t146, i32 0, i32 3 @@ -42945,21 +44593,21 @@ inrange4165: store i64 %t152, ptr %t148 %t155 = load ptr, ptr %a1 %t156 = icmp eq ptr %t155, null - br i1 %t156, label %panic4166, label %ok4167 -panic4166: - call void @finch_panic(ptr @.str.2534, i64 1780, ptr @.str.2535) + br i1 %t156, label %panic4310, label %ok4311 +panic4310: + call void @finch_panic(ptr @.str.2619, i64 1861, ptr @.str.2620) unreachable -ok4167: +ok4311: %t157 = getelementptr inbounds %S.gen.Gen, ptr %t155, i32 0, i32 16 %t158 = load i64, ptr %a2 %t159 = load { ptr, i64, i64 }, ptr %t157 %t160 = extractvalue { ptr, i64, i64 } %t159, 1 %t161 = icmp uge i64 %t158, %t160 - br i1 %t161, label %range4168, label %inrange4169 -range4168: - call void @finch_panic_index(ptr @.str.2536, i64 1780, i64 %t158, i64 %t160) + br i1 %t161, label %range4312, label %inrange4313 +range4312: + call void @finch_panic_index(ptr @.str.2621, i64 1861, i64 %t158, i64 %t160) unreachable -inrange4169: +inrange4313: %t162 = extractvalue { ptr, i64, i64 } %t159, 0 %t163 = getelementptr inbounds %S.gen.StructDef, ptr %t162, i64 %t158 %t164 = getelementptr inbounds %S.gen.StructDef, ptr %t163, i32 0, i32 4 @@ -42991,19 +44639,19 @@ inrange4169: %t184 = add i64 %t181, %t183 store i64 %t184, ptr %a42 call void @finch.drop.S_ast_Type(ptr %a60) - br label %each.step4143 -each.step4143: + br label %each.step4287 +each.step4287: %t185 = load i64, ptr %a45 %t186 = add i64 %t185, 1 store i64 %t186, ptr %a45 - br label %each.cond4141 -each.end4144: + br label %each.cond4285 +each.end4288: %t187 = getelementptr inbounds %S.cimport.CStruct, ptr %a31, i32 0, i32 2 %t188 = load i64, ptr %t187 %t189 = load i64, ptr %a42 %t190 = icmp sgt i64 %t188, %t189 - br i1 %t190, label %then4170, label %endif4172 -then4170: + br i1 %t190, label %then4314, label %endif4316 +then4314: %t191 = getelementptr inbounds { ptr, i64, i64 }, ptr %a43, i32 0, i32 1 %t192 = getelementptr inbounds %S.cimport.CStruct, ptr %a31, i32 0, i32 2 %t193 = load i64, ptr %t192 @@ -43011,14 +44659,14 @@ then4170: %t195 = sub i64 %t193, %t194 call void @finch_str_from_int(ptr %a196, i64 %t195) %t197 = load { ptr, i64, i64 }, ptr %a196 - store { ptr, i64, i64 } { ptr @.str.2537, i64 1, i64 0 }, ptr %a199 + store { ptr, i64, i64 } { ptr @.str.2622, i64 1, i64 0 }, ptr %a199 store { ptr, i64, i64 } %t197, ptr %a200 call void @finch_str_concat(ptr %a198, ptr %a199, ptr %a200) store { ptr, i64, i64 } %t197, ptr %a201 call void @finch_str_drop(ptr %a201) %t202 = load { ptr, i64, i64 }, ptr %a198 store { ptr, i64, i64 } %t202, ptr %a204 - store { ptr, i64, i64 } { ptr @.str.2538, i64 6, i64 0 }, ptr %a205 + store { ptr, i64, i64 } { ptr @.str.2623, i64 6, i64 0 }, ptr %a205 call void @finch_str_concat(ptr %a203, ptr %a204, ptr %a205) store { ptr, i64, i64 } %t202, ptr %a206 call void @finch_str_drop(ptr %a206) @@ -43030,27 +44678,27 @@ then4170: %t211 = getelementptr inbounds { ptr, i64, i64 }, ptr %t210, i64 %t208 store { ptr, i64, i64 } %t207, ptr %t211 store i64 %t209, ptr %t191 - br label %endif4172 -endif4172: + br label %endif4316 +endif4316: %t212 = getelementptr inbounds %S.cimport.CStruct, ptr %a31, i32 0, i32 4 %t213 = load { ptr, i64, i64 }, ptr %t212 %t214 = load ptr, ptr %a1 %t215 = icmp eq ptr %t214, null - br i1 %t215, label %panic4173, label %ok4174 -panic4173: - call void @finch_panic(ptr @.str.2539, i64 1787, ptr @.str.2540) + br i1 %t215, label %panic4317, label %ok4318 +panic4317: + call void @finch_panic(ptr @.str.2624, i64 1868, ptr @.str.2625) unreachable -ok4174: +ok4318: %t216 = getelementptr inbounds %S.gen.Gen, ptr %t214, i32 0, i32 16 %t217 = load i64, ptr %a2 %t218 = load { ptr, i64, i64 }, ptr %t216 %t219 = extractvalue { ptr, i64, i64 } %t218, 1 %t220 = icmp uge i64 %t217, %t219 - br i1 %t220, label %range4175, label %inrange4176 -range4175: - call void @finch_panic_index(ptr @.str.2541, i64 1787, i64 %t217, i64 %t219) + br i1 %t220, label %range4319, label %inrange4320 +range4319: + call void @finch_panic_index(ptr @.str.2626, i64 1868, i64 %t217, i64 %t219) unreachable -inrange4176: +inrange4320: %t221 = extractvalue { ptr, i64, i64 } %t218, 0 %t222 = getelementptr inbounds %S.gen.StructDef, ptr %t221, i64 %t217 %t223 = getelementptr inbounds %S.gen.StructDef, ptr %t222, i32 0, i32 8 @@ -43063,66 +44711,66 @@ inrange4176: call void @finch_str_drop(ptr %a228) %t229 = getelementptr inbounds %S.cimport.CStruct, ptr %a31, i32 0, i32 5 %t230 = load i1, ptr %t229 - br label %logic.from4177 -logic.from4177: - br i1 %t230, label %logic.rhs4178, label %logic.end4179 -logic.rhs4178: + br label %logic.from4321 +logic.from4321: + br i1 %t230, label %logic.rhs4322, label %logic.end4323 +logic.rhs4322: %t231 = getelementptr inbounds %S.cimport.CStruct, ptr %a31, i32 0, i32 4 %t232 = getelementptr inbounds { ptr, i64, i64 }, ptr %t231, i32 0, i32 1 %t233 = load i64, ptr %t232 %t234 = icmp eq i64 %t233, 0 - br label %logic.rend4180 -logic.rend4180: - br label %logic.end4179 -logic.end4179: - %t235 = phi i1 [ false, %logic.from4177 ], [ %t234, %logic.rend4180 ] - br i1 %t235, label %then4181, label %endif4183 -then4181: + br label %logic.rend4324 +logic.rend4324: + br label %logic.end4323 +logic.end4323: + %t235 = phi i1 [ false, %logic.from4321 ], [ %t234, %logic.rend4324 ] + br i1 %t235, label %then4325, label %endif4327 +then4325: %t236 = load ptr, ptr %a1 %t237 = icmp eq ptr %t236, null - br i1 %t237, label %panic4184, label %ok4185 -panic4184: - call void @finch_panic(ptr @.str.2543, i64 1789, ptr @.str.2544) + br i1 %t237, label %panic4328, label %ok4329 +panic4328: + call void @finch_panic(ptr @.str.2628, i64 1870, ptr @.str.2629) unreachable -ok4185: +ok4329: %t238 = getelementptr inbounds %S.gen.Gen, ptr %t236, i32 0, i32 16 %t239 = load i64, ptr %a2 %t240 = load { ptr, i64, i64 }, ptr %t238 %t241 = extractvalue { ptr, i64, i64 } %t240, 1 %t242 = icmp uge i64 %t239, %t241 - br i1 %t242, label %range4186, label %inrange4187 -range4186: - call void @finch_panic_index(ptr @.str.2545, i64 1789, i64 %t239, i64 %t241) + br i1 %t242, label %range4330, label %inrange4331 +range4330: + call void @finch_panic_index(ptr @.str.2630, i64 1870, i64 %t239, i64 %t241) unreachable -inrange4187: +inrange4331: %t243 = extractvalue { ptr, i64, i64 } %t240, 0 %t244 = getelementptr inbounds %S.gen.StructDef, ptr %t243, i64 %t239 %t245 = getelementptr inbounds %S.gen.StructDef, ptr %t244, i32 0, i32 8 %t246 = load { ptr, i64, i64 }, ptr %t245 - store { ptr, i64, i64 } { ptr @.str.2542, i64 49, i64 0 }, ptr %t245 + store { ptr, i64, i64 } { ptr @.str.2627, i64 49, i64 0 }, ptr %t245 store { ptr, i64, i64 } %t246, ptr %a247 call void @finch_str_drop(ptr %a247) - br label %endif4183 -endif4183: + br label %endif4327 +endif4327: %t248 = getelementptr inbounds %S.cimport.CStruct, ptr %a31, i32 0, i32 2 %t249 = load i64, ptr %t248 %t250 = load ptr, ptr %a1 %t251 = icmp eq ptr %t250, null - br i1 %t251, label %panic4188, label %ok4189 -panic4188: - call void @finch_panic(ptr @.str.2546, i64 1791, ptr @.str.2547) + br i1 %t251, label %panic4332, label %ok4333 +panic4332: + call void @finch_panic(ptr @.str.2631, i64 1872, ptr @.str.2632) unreachable -ok4189: +ok4333: %t252 = getelementptr inbounds %S.gen.Gen, ptr %t250, i32 0, i32 16 %t253 = load i64, ptr %a2 %t254 = load { ptr, i64, i64 }, ptr %t252 %t255 = extractvalue { ptr, i64, i64 } %t254, 1 %t256 = icmp uge i64 %t253, %t255 - br i1 %t256, label %range4190, label %inrange4191 -range4190: - call void @finch_panic_index(ptr @.str.2548, i64 1791, i64 %t253, i64 %t255) + br i1 %t256, label %range4334, label %inrange4335 +range4334: + call void @finch_panic_index(ptr @.str.2633, i64 1872, i64 %t253, i64 %t255) unreachable -inrange4191: +inrange4335: %t257 = extractvalue { ptr, i64, i64 } %t254, 0 %t258 = getelementptr inbounds %S.gen.StructDef, ptr %t257, i64 %t253 %t259 = getelementptr inbounds %S.gen.StructDef, ptr %t258, i32 0, i32 9 @@ -43131,69 +44779,69 @@ inrange4191: %t261 = load i64, ptr %t260 %t262 = load ptr, ptr %a1 %t263 = icmp eq ptr %t262, null - br i1 %t263, label %panic4192, label %ok4193 -panic4192: - call void @finch_panic(ptr @.str.2549, i64 1792, ptr @.str.2550) + br i1 %t263, label %panic4336, label %ok4337 +panic4336: + call void @finch_panic(ptr @.str.2634, i64 1873, ptr @.str.2635) unreachable -ok4193: +ok4337: %t264 = getelementptr inbounds %S.gen.Gen, ptr %t262, i32 0, i32 16 %t265 = load i64, ptr %a2 %t266 = load { ptr, i64, i64 }, ptr %t264 %t267 = extractvalue { ptr, i64, i64 } %t266, 1 %t268 = icmp uge i64 %t265, %t267 - br i1 %t268, label %range4194, label %inrange4195 -range4194: - call void @finch_panic_index(ptr @.str.2551, i64 1792, i64 %t265, i64 %t267) + br i1 %t268, label %range4338, label %inrange4339 +range4338: + call void @finch_panic_index(ptr @.str.2636, i64 1873, i64 %t265, i64 %t267) unreachable -inrange4195: +inrange4339: %t269 = extractvalue { ptr, i64, i64 } %t266, 0 %t270 = getelementptr inbounds %S.gen.StructDef, ptr %t269, i64 %t265 %t271 = getelementptr inbounds %S.gen.StructDef, ptr %t270, i32 0, i32 10 store i64 %t261, ptr %t271 %t272 = load ptr, ptr %a1 %t273 = icmp eq ptr %t272, null - br i1 %t273, label %panic4196, label %ok4197 -panic4196: - call void @finch_panic(ptr @.str.2552, i64 1793, ptr @.str.2553) + br i1 %t273, label %panic4340, label %ok4341 +panic4340: + call void @finch_panic(ptr @.str.2637, i64 1874, ptr @.str.2638) unreachable -ok4197: +ok4341: %t274 = getelementptr inbounds %S.gen.Gen, ptr %t272, i32 0, i32 16 %t275 = load i64, ptr %a2 %t276 = load { ptr, i64, i64 }, ptr %t274 %t277 = extractvalue { ptr, i64, i64 } %t276, 1 %t278 = icmp uge i64 %t275, %t277 - br i1 %t278, label %range4198, label %inrange4199 -range4198: - call void @finch_panic_index(ptr @.str.2554, i64 1793, i64 %t275, i64 %t277) + br i1 %t278, label %range4342, label %inrange4343 +range4342: + call void @finch_panic_index(ptr @.str.2639, i64 1874, i64 %t275, i64 %t277) unreachable -inrange4199: +inrange4343: %t279 = extractvalue { ptr, i64, i64 } %t276, 0 %t280 = getelementptr inbounds %S.gen.StructDef, ptr %t279, i64 %t275 %t281 = getelementptr inbounds %S.gen.StructDef, ptr %t280, i32 0, i32 15 store i64 2, ptr %t281 %t282 = load ptr, ptr %a1 %t283 = icmp eq ptr %t282, null - br i1 %t283, label %panic4200, label %ok4201 -panic4200: - call void @finch_panic(ptr @.str.2555, i64 1794, ptr @.str.2556) + br i1 %t283, label %panic4344, label %ok4345 +panic4344: + call void @finch_panic(ptr @.str.2640, i64 1875, ptr @.str.2641) unreachable -ok4201: +ok4345: %t284 = getelementptr inbounds %S.gen.Gen, ptr %t282, i32 0, i32 2 %t285 = getelementptr inbounds { ptr, i64, i64 }, ptr %t284, i32 0, i32 1 %t286 = getelementptr inbounds %S.cimport.CStruct, ptr %a31, i32 0, i32 0 %t287 = load { ptr, i64, i64 }, ptr %t286 - store { ptr, i64, i64 } { ptr @.str.2557, i64 5, i64 0 }, ptr %a289 + store { ptr, i64, i64 } { ptr @.str.2642, i64 5, i64 0 }, ptr %a289 store { ptr, i64, i64 } %t287, ptr %a290 call void @finch_str_concat(ptr %a288, ptr %a289, ptr %a290) %t291 = load { ptr, i64, i64 }, ptr %a288 store { ptr, i64, i64 } %t291, ptr %a293 - store { ptr, i64, i64 } { ptr @.str.2558, i64 10, i64 0 }, ptr %a294 + store { ptr, i64, i64 } { ptr @.str.2643, i64 10, i64 0 }, ptr %a294 call void @finch_str_concat(ptr %a292, ptr %a293, ptr %a294) store { ptr, i64, i64 } %t291, ptr %a295 call void @finch_str_drop(ptr %a295) %t296 = load { ptr, i64, i64 }, ptr %a292 %t297 = getelementptr inbounds { ptr, i64, i64 }, ptr %a43, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.2559, i64 2, i64 0 }, ptr %a298 + store { ptr, i64, i64 } { ptr @.str.2644, i64 2, i64 0 }, ptr %a298 call void @finch_str_join(ptr %a299, ptr %a43, ptr %a298) %t300 = load { ptr, i64, i64 }, ptr %a299 store { ptr, i64, i64 } %t296, ptr %a302 @@ -43205,7 +44853,7 @@ ok4201: call void @finch_str_drop(ptr %a305) %t306 = load { ptr, i64, i64 }, ptr %a301 store { ptr, i64, i64 } %t306, ptr %a308 - store { ptr, i64, i64 } { ptr @.str.2560, i64 2, i64 0 }, ptr %a309 + store { ptr, i64, i64 } { ptr @.str.2645, i64 2, i64 0 }, ptr %a309 call void @finch_str_concat(ptr %a307, ptr %a308, ptr %a309) store { ptr, i64, i64 } %t306, ptr %a310 call void @finch_str_drop(ptr %a310) @@ -43262,95 +44910,95 @@ entry: store i64 %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic4202, label %ok4203 -panic4202: - call void @finch_panic(ptr @.str.2561, i64 1798, ptr @.str.2562) + br i1 %t4, label %panic4346, label %ok4347 +panic4346: + call void @finch_panic(ptr @.str.2646, i64 1879, ptr @.str.2647) unreachable -ok4203: +ok4347: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 16 %t6 = load i64, ptr %a2 %t7 = load { ptr, i64, i64 }, ptr %t5 %t8 = extractvalue { ptr, i64, i64 } %t7, 1 %t9 = icmp uge i64 %t6, %t8 - br i1 %t9, label %range4204, label %inrange4205 -range4204: - call void @finch_panic_index(ptr @.str.2563, i64 1798, i64 %t6, i64 %t8) + br i1 %t9, label %range4348, label %inrange4349 +range4348: + call void @finch_panic_index(ptr @.str.2648, i64 1879, i64 %t6, i64 %t8) unreachable -inrange4205: +inrange4349: %t10 = extractvalue { ptr, i64, i64 } %t7, 0 %t11 = getelementptr inbounds %S.gen.StructDef, ptr %t10, i64 %t6 %t12 = getelementptr inbounds %S.gen.StructDef, ptr %t11, i32 0, i32 15 %t13 = load i64, ptr %t12 %t14 = icmp eq i64 %t13, 2 - br i1 %t14, label %then4206, label %endif4208 -then4206: + br i1 %t14, label %then4350, label %endif4352 +then4350: ret void -endif4208: +endif4352: %t15 = load ptr, ptr %a1 %t16 = icmp eq ptr %t15, null - br i1 %t16, label %panic4209, label %ok4210 -panic4209: - call void @finch_panic(ptr @.str.2564, i64 1801, ptr @.str.2565) + br i1 %t16, label %panic4353, label %ok4354 +panic4353: + call void @finch_panic(ptr @.str.2649, i64 1882, ptr @.str.2650) unreachable -ok4210: +ok4354: %t17 = getelementptr inbounds %S.gen.Gen, ptr %t15, i32 0, i32 16 %t18 = load i64, ptr %a2 %t19 = load { ptr, i64, i64 }, ptr %t17 %t20 = extractvalue { ptr, i64, i64 } %t19, 1 %t21 = icmp uge i64 %t18, %t20 - br i1 %t21, label %range4211, label %inrange4212 -range4211: - call void @finch_panic_index(ptr @.str.2566, i64 1801, i64 %t18, i64 %t20) + br i1 %t21, label %range4355, label %inrange4356 +range4355: + call void @finch_panic_index(ptr @.str.2651, i64 1882, i64 %t18, i64 %t20) unreachable -inrange4212: +inrange4356: %t22 = extractvalue { ptr, i64, i64 } %t19, 0 %t23 = getelementptr inbounds %S.gen.StructDef, ptr %t22, i64 %t18 %t24 = getelementptr inbounds %S.gen.StructDef, ptr %t23, i32 0, i32 2 %t25 = load i1, ptr %t24 - br i1 %t25, label %then4213, label %endif4215 -then4213: + br i1 %t25, label %then4357, label %endif4359 +then4357: %t26 = load ptr, ptr %a1 %t27 = load i64, ptr %a2 call void @finch.gen.resolveCStruct(ptr %t26, i64 %t27) ret void -endif4215: +endif4359: %t28 = load ptr, ptr %a1 %t29 = icmp eq ptr %t28, null - br i1 %t29, label %panic4216, label %ok4217 -panic4216: - call void @finch_panic(ptr @.str.2567, i64 1805, ptr @.str.2568) + br i1 %t29, label %panic4360, label %ok4361 +panic4360: + call void @finch_panic(ptr @.str.2652, i64 1886, ptr @.str.2653) unreachable -ok4217: +ok4361: %t30 = getelementptr inbounds %S.gen.Gen, ptr %t28, i32 0, i32 16 %t31 = load i64, ptr %a2 %t32 = load { ptr, i64, i64 }, ptr %t30 %t33 = extractvalue { ptr, i64, i64 } %t32, 1 %t34 = icmp uge i64 %t31, %t33 - br i1 %t34, label %range4218, label %inrange4219 -range4218: - call void @finch_panic_index(ptr @.str.2569, i64 1805, i64 %t31, i64 %t33) + br i1 %t34, label %range4362, label %inrange4363 +range4362: + call void @finch_panic_index(ptr @.str.2654, i64 1886, i64 %t31, i64 %t33) unreachable -inrange4219: +inrange4363: %t35 = extractvalue { ptr, i64, i64 } %t32, 0 %t36 = getelementptr inbounds %S.gen.StructDef, ptr %t35, i64 %t31 %t37 = getelementptr inbounds %S.gen.StructDef, ptr %t36, i32 0, i32 5 %t38 = getelementptr inbounds { ptr, i64, i64 }, ptr %t37, i32 0, i32 1 %t39 = load i64, ptr %t38 %t40 = icmp eq i64 %t39, 0 - br i1 %t40, label %then4220, label %endif4222 -then4220: + br i1 %t40, label %then4364, label %endif4366 +then4364: %t41 = load ptr, ptr %a1 %t42 = load i64, ptr %a2 call void @finch.gen.resolveStructBody(ptr %t41, i64 %t42) ret void -endif4222: +endif4366: %t43 = load ptr, ptr %a1 %t44 = icmp eq ptr %t43, null - br i1 %t44, label %panic4223, label %ok4224 -panic4223: - call void @finch_panic(ptr @.str.2570, i64 1810, ptr @.str.2571) + br i1 %t44, label %panic4367, label %ok4368 +panic4367: + call void @finch_panic(ptr @.str.2655, i64 1891, ptr @.str.2656) unreachable -ok4224: +ok4368: %t45 = getelementptr inbounds %S.gen.Gen, ptr %t43, i32 0, i32 18 %t46 = load { ptr, i64, i64 }, ptr %t45 store { ptr, i64, i64 } %t46, ptr %a47 @@ -43359,11 +45007,11 @@ ok4224: store { ptr, i64, i64 } %t49, ptr %a50 %t51 = load ptr, ptr %a1 %t52 = icmp eq ptr %t51, null - br i1 %t52, label %panic4225, label %ok4226 -panic4225: - call void @finch_panic(ptr @.str.2572, i64 1811, ptr @.str.2573) + br i1 %t52, label %panic4369, label %ok4370 +panic4369: + call void @finch_panic(ptr @.str.2657, i64 1892, ptr @.str.2658) unreachable -ok4226: +ok4370: %t53 = getelementptr inbounds %S.gen.Gen, ptr %t51, i32 0, i32 19 %t54 = load { ptr, i64, i64 }, ptr %t53 store { ptr, i64, i64 } %t54, ptr %a55 @@ -43372,11 +45020,11 @@ ok4226: store { ptr, i64, i64 } %t57, ptr %a58 %t59 = load ptr, ptr %a1 %t60 = icmp eq ptr %t59, null - br i1 %t60, label %panic4227, label %ok4228 -panic4227: - call void @finch_panic(ptr @.str.2574, i64 1812, ptr @.str.2575) + br i1 %t60, label %panic4371, label %ok4372 +panic4371: + call void @finch_panic(ptr @.str.2659, i64 1893, ptr @.str.2660) unreachable -ok4228: +ok4372: %t61 = getelementptr inbounds %S.gen.Gen, ptr %t59, i32 0, i32 20 %t62 = load { ptr, i64, i64 }, ptr %t61 store { ptr, i64, i64 } %t62, ptr %a63 @@ -43385,32 +45033,32 @@ ok4228: store { ptr, i64, i64 } %t65, ptr %a66 %t67 = load ptr, ptr %a1 %t68 = icmp eq ptr %t67, null - br i1 %t68, label %panic4229, label %ok4230 -panic4229: - call void @finch_panic(ptr @.str.2576, i64 1813, ptr @.str.2577) + br i1 %t68, label %panic4373, label %ok4374 +panic4373: + call void @finch_panic(ptr @.str.2661, i64 1894, ptr @.str.2662) unreachable -ok4230: +ok4374: %t69 = getelementptr inbounds %S.gen.Gen, ptr %t67, i32 0, i32 16 %t70 = load i64, ptr %a2 %t71 = load { ptr, i64, i64 }, ptr %t69 %t72 = extractvalue { ptr, i64, i64 } %t71, 1 %t73 = icmp uge i64 %t70, %t72 - br i1 %t73, label %range4231, label %inrange4232 -range4231: - call void @finch_panic_index(ptr @.str.2578, i64 1813, i64 %t70, i64 %t72) + br i1 %t73, label %range4375, label %inrange4376 +range4375: + call void @finch_panic_index(ptr @.str.2663, i64 1894, i64 %t70, i64 %t72) unreachable -inrange4232: +inrange4376: %t74 = extractvalue { ptr, i64, i64 } %t71, 0 %t75 = getelementptr inbounds %S.gen.StructDef, ptr %t74, i64 %t70 %t76 = getelementptr inbounds %S.gen.StructDef, ptr %t75, i32 0, i32 6 %t77 = load { ptr, i64, i64 }, ptr %t76 %t78 = load ptr, ptr %a1 %t79 = icmp eq ptr %t78, null - br i1 %t79, label %panic4233, label %ok4234 -panic4233: - call void @finch_panic(ptr @.str.2579, i64 1813, ptr @.str.2580) + br i1 %t79, label %panic4377, label %ok4378 +panic4377: + call void @finch_panic(ptr @.str.2664, i64 1894, ptr @.str.2665) unreachable -ok4234: +ok4378: %t80 = getelementptr inbounds %S.gen.Gen, ptr %t78, i32 0, i32 18 store { ptr, i64, i64 } %t77, ptr %a81 call void @finch.copy.arr_str(ptr %a82, ptr %a81) @@ -43421,32 +45069,32 @@ ok4234: call void @finch.drop.arr_str(ptr %a85) %t86 = load ptr, ptr %a1 %t87 = icmp eq ptr %t86, null - br i1 %t87, label %panic4235, label %ok4236 -panic4235: - call void @finch_panic(ptr @.str.2581, i64 1814, ptr @.str.2582) + br i1 %t87, label %panic4379, label %ok4380 +panic4379: + call void @finch_panic(ptr @.str.2666, i64 1895, ptr @.str.2667) unreachable -ok4236: +ok4380: %t88 = getelementptr inbounds %S.gen.Gen, ptr %t86, i32 0, i32 16 %t89 = load i64, ptr %a2 %t90 = load { ptr, i64, i64 }, ptr %t88 %t91 = extractvalue { ptr, i64, i64 } %t90, 1 %t92 = icmp uge i64 %t89, %t91 - br i1 %t92, label %range4237, label %inrange4238 -range4237: - call void @finch_panic_index(ptr @.str.2583, i64 1814, i64 %t89, i64 %t91) + br i1 %t92, label %range4381, label %inrange4382 +range4381: + call void @finch_panic_index(ptr @.str.2668, i64 1895, i64 %t89, i64 %t91) unreachable -inrange4238: +inrange4382: %t93 = extractvalue { ptr, i64, i64 } %t90, 0 %t94 = getelementptr inbounds %S.gen.StructDef, ptr %t93, i64 %t89 %t95 = getelementptr inbounds %S.gen.StructDef, ptr %t94, i32 0, i32 7 %t96 = load { ptr, i64, i64 }, ptr %t95 %t97 = load ptr, ptr %a1 %t98 = icmp eq ptr %t97, null - br i1 %t98, label %panic4239, label %ok4240 -panic4239: - call void @finch_panic(ptr @.str.2584, i64 1814, ptr @.str.2585) + br i1 %t98, label %panic4383, label %ok4384 +panic4383: + call void @finch_panic(ptr @.str.2669, i64 1895, ptr @.str.2670) unreachable -ok4240: +ok4384: %t99 = getelementptr inbounds %S.gen.Gen, ptr %t97, i32 0, i32 19 store { ptr, i64, i64 } %t96, ptr %a100 call void @finch.copy.arr_S_ast_Type(ptr %a101, ptr %a100) @@ -43457,42 +45105,42 @@ ok4240: call void @finch.drop.arr_S_ast_Type(ptr %a104) %t105 = load ptr, ptr %a1 %t106 = icmp eq ptr %t105, null - br i1 %t106, label %panic4241, label %ok4242 -panic4241: - call void @finch_panic(ptr @.str.2587, i64 1815, ptr @.str.2588) + br i1 %t106, label %panic4385, label %ok4386 +panic4385: + call void @finch_panic(ptr @.str.2672, i64 1896, ptr @.str.2673) unreachable -ok4242: +ok4386: %t107 = getelementptr inbounds %S.gen.Gen, ptr %t105, i32 0, i32 16 %t108 = load i64, ptr %a2 %t109 = load { ptr, i64, i64 }, ptr %t107 %t110 = extractvalue { ptr, i64, i64 } %t109, 1 %t111 = icmp uge i64 %t108, %t110 - br i1 %t111, label %range4243, label %inrange4244 -range4243: - call void @finch_panic_index(ptr @.str.2589, i64 1815, i64 %t108, i64 %t110) + br i1 %t111, label %range4387, label %inrange4388 +range4387: + call void @finch_panic_index(ptr @.str.2674, i64 1896, i64 %t108, i64 %t110) unreachable -inrange4244: +inrange4388: %t112 = extractvalue { ptr, i64, i64 } %t109, 0 %t113 = getelementptr inbounds %S.gen.StructDef, ptr %t112, i64 %t108 %t114 = getelementptr inbounds %S.gen.StructDef, ptr %t113, i32 0, i32 1 %t115 = load { ptr, i64, i64 }, ptr %t114 - store { ptr, i64, i64 } { ptr @.str.2586, i64 17, i64 0 }, ptr %a117 + store { ptr, i64, i64 } { ptr @.str.2671, i64 17, i64 0 }, ptr %a117 store { ptr, i64, i64 } %t115, ptr %a118 call void @finch_str_concat(ptr %a116, ptr %a117, ptr %a118) %t119 = load { ptr, i64, i64 }, ptr %a116 store { ptr, i64, i64 } %t119, ptr %a121 - store { ptr, i64, i64 } { ptr @.str.2590, i64 1, i64 0 }, ptr %a122 + store { ptr, i64, i64 } { ptr @.str.2675, i64 1, i64 0 }, ptr %a122 call void @finch_str_concat(ptr %a120, ptr %a121, ptr %a122) store { ptr, i64, i64 } %t119, ptr %a123 call void @finch_str_drop(ptr %a123) %t124 = load { ptr, i64, i64 }, ptr %a120 %t125 = load ptr, ptr %a1 %t126 = icmp eq ptr %t125, null - br i1 %t126, label %panic4245, label %ok4246 -panic4245: - call void @finch_panic(ptr @.str.2591, i64 1815, ptr @.str.2592) + br i1 %t126, label %panic4389, label %ok4390 +panic4389: + call void @finch_panic(ptr @.str.2676, i64 1896, ptr @.str.2677) unreachable -ok4246: +ok4390: %t127 = getelementptr inbounds %S.gen.Gen, ptr %t125, i32 0, i32 20 %t128 = load { ptr, i64, i64 }, ptr %t127 store { ptr, i64, i64 } %t124, ptr %t127 @@ -43504,11 +45152,11 @@ ok4246: %t132 = load { ptr, i64, i64 }, ptr %a50 %t133 = load ptr, ptr %a1 %t134 = icmp eq ptr %t133, null - br i1 %t134, label %panic4247, label %ok4248 -panic4247: - call void @finch_panic(ptr @.str.2593, i64 1817, ptr @.str.2594) + br i1 %t134, label %panic4391, label %ok4392 +panic4391: + call void @finch_panic(ptr @.str.2678, i64 1898, ptr @.str.2679) unreachable -ok4248: +ok4392: %t135 = getelementptr inbounds %S.gen.Gen, ptr %t133, i32 0, i32 18 store { ptr, i64, i64 } %t132, ptr %a136 call void @finch.copy.arr_str(ptr %a137, ptr %a136) @@ -43520,11 +45168,11 @@ ok4248: %t141 = load { ptr, i64, i64 }, ptr %a58 %t142 = load ptr, ptr %a1 %t143 = icmp eq ptr %t142, null - br i1 %t143, label %panic4249, label %ok4250 -panic4249: - call void @finch_panic(ptr @.str.2595, i64 1818, ptr @.str.2596) + br i1 %t143, label %panic4393, label %ok4394 +panic4393: + call void @finch_panic(ptr @.str.2680, i64 1899, ptr @.str.2681) unreachable -ok4250: +ok4394: %t144 = getelementptr inbounds %S.gen.Gen, ptr %t142, i32 0, i32 19 store { ptr, i64, i64 } %t141, ptr %a145 call void @finch.copy.arr_S_ast_Type(ptr %a146, ptr %a145) @@ -43536,11 +45184,11 @@ ok4250: %t150 = load { ptr, i64, i64 }, ptr %a66 %t151 = load ptr, ptr %a1 %t152 = icmp eq ptr %t151, null - br i1 %t152, label %panic4251, label %ok4252 -panic4251: - call void @finch_panic(ptr @.str.2597, i64 1819, ptr @.str.2598) + br i1 %t152, label %panic4395, label %ok4396 +panic4395: + call void @finch_panic(ptr @.str.2682, i64 1900, ptr @.str.2683) unreachable -ok4252: +ok4396: %t153 = getelementptr inbounds %S.gen.Gen, ptr %t151, i32 0, i32 20 store { ptr, i64, i64 } %t150, ptr %a154 call void @finch_str_copy(ptr %a155, ptr %a154) @@ -43638,29 +45286,29 @@ entry: store i64 %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic4253, label %ok4254 -panic4253: - call void @finch_panic(ptr @.str.2599, i64 1823, ptr @.str.2600) + br i1 %t4, label %panic4397, label %ok4398 +panic4397: + call void @finch_panic(ptr @.str.2684, i64 1904, ptr @.str.2685) unreachable -ok4254: +ok4398: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 0 %t6 = load ptr, ptr %a1 %t7 = icmp eq ptr %t6, null - br i1 %t7, label %panic4255, label %ok4256 -panic4255: - call void @finch_panic(ptr @.str.2601, i64 1823, ptr @.str.2602) + br i1 %t7, label %panic4399, label %ok4400 +panic4399: + call void @finch_panic(ptr @.str.2686, i64 1904, ptr @.str.2687) unreachable -ok4256: +ok4400: %t8 = getelementptr inbounds %S.gen.Gen, ptr %t6, i32 0, i32 16 %t9 = load i64, ptr %a2 %t10 = load { ptr, i64, i64 }, ptr %t8 %t11 = extractvalue { ptr, i64, i64 } %t10, 1 %t12 = icmp uge i64 %t9, %t11 - br i1 %t12, label %range4257, label %inrange4258 -range4257: - call void @finch_panic_index(ptr @.str.2603, i64 1823, i64 %t9, i64 %t11) + br i1 %t12, label %range4401, label %inrange4402 +range4401: + call void @finch_panic_index(ptr @.str.2688, i64 1904, i64 %t9, i64 %t11) unreachable -inrange4258: +inrange4402: %t13 = extractvalue { ptr, i64, i64 } %t10, 0 %t14 = getelementptr inbounds %S.gen.StructDef, ptr %t13, i64 %t9 %t15 = getelementptr inbounds %S.gen.StructDef, ptr %t14, i32 0, i32 13 @@ -43668,31 +45316,31 @@ inrange4258: %t17 = load { ptr, i64, i64 }, ptr %t5 %t18 = extractvalue { ptr, i64, i64 } %t17, 1 %t19 = icmp uge i64 %t16, %t18 - br i1 %t19, label %range4259, label %inrange4260 -range4259: - call void @finch_panic_index(ptr @.str.2604, i64 1823, i64 %t16, i64 %t18) + br i1 %t19, label %range4403, label %inrange4404 +range4403: + call void @finch_panic_index(ptr @.str.2689, i64 1904, i64 %t16, i64 %t18) unreachable -inrange4260: +inrange4404: %t20 = extractvalue { ptr, i64, i64 } %t17, 0 %t21 = getelementptr inbounds %S.ast.Program, ptr %t20, i64 %t16 %t22 = getelementptr inbounds %S.ast.Program, ptr %t21, i32 0, i32 6 %t23 = load ptr, ptr %a1 %t24 = icmp eq ptr %t23, null - br i1 %t24, label %panic4261, label %ok4262 -panic4261: - call void @finch_panic(ptr @.str.2605, i64 1823, ptr @.str.2606) + br i1 %t24, label %panic4405, label %ok4406 +panic4405: + call void @finch_panic(ptr @.str.2690, i64 1904, ptr @.str.2691) unreachable -ok4262: +ok4406: %t25 = getelementptr inbounds %S.gen.Gen, ptr %t23, i32 0, i32 16 %t26 = load i64, ptr %a2 %t27 = load { ptr, i64, i64 }, ptr %t25 %t28 = extractvalue { ptr, i64, i64 } %t27, 1 %t29 = icmp uge i64 %t26, %t28 - br i1 %t29, label %range4263, label %inrange4264 -range4263: - call void @finch_panic_index(ptr @.str.2607, i64 1823, i64 %t26, i64 %t28) + br i1 %t29, label %range4407, label %inrange4408 +range4407: + call void @finch_panic_index(ptr @.str.2692, i64 1904, i64 %t26, i64 %t28) unreachable -inrange4264: +inrange4408: %t30 = extractvalue { ptr, i64, i64 } %t27, 0 %t31 = getelementptr inbounds %S.gen.StructDef, ptr %t30, i64 %t26 %t32 = getelementptr inbounds %S.gen.StructDef, ptr %t31, i32 0, i32 14 @@ -43700,11 +45348,11 @@ inrange4264: %t34 = load { ptr, i64, i64 }, ptr %t22 %t35 = extractvalue { ptr, i64, i64 } %t34, 1 %t36 = icmp uge i64 %t33, %t35 - br i1 %t36, label %range4265, label %inrange4266 -range4265: - call void @finch_panic_index(ptr @.str.2608, i64 1823, i64 %t33, i64 %t35) + br i1 %t36, label %range4409, label %inrange4410 +range4409: + call void @finch_panic_index(ptr @.str.2693, i64 1904, i64 %t33, i64 %t35) unreachable -inrange4266: +inrange4410: %t37 = extractvalue { ptr, i64, i64 } %t34, 0 %t38 = getelementptr inbounds %S.ast.Node, ptr %t37, i64 %t33 %t39 = load %S.ast.Node, ptr %t38 @@ -43714,38 +45362,38 @@ inrange4266: store %S.ast.Node %t42, ptr %a43 %t44 = load ptr, ptr %a1 %t45 = icmp eq ptr %t44, null - br i1 %t45, label %panic4267, label %ok4268 -panic4267: - call void @finch_panic(ptr @.str.2609, i64 1824, ptr @.str.2610) + br i1 %t45, label %panic4411, label %ok4412 +panic4411: + call void @finch_panic(ptr @.str.2694, i64 1905, ptr @.str.2695) unreachable -ok4268: +ok4412: %t46 = getelementptr inbounds %S.gen.Gen, ptr %t44, i32 0, i32 16 %t47 = load i64, ptr %a2 %t48 = load { ptr, i64, i64 }, ptr %t46 %t49 = extractvalue { ptr, i64, i64 } %t48, 1 %t50 = icmp uge i64 %t47, %t49 - br i1 %t50, label %range4269, label %inrange4270 -range4269: - call void @finch_panic_index(ptr @.str.2611, i64 1824, i64 %t47, i64 %t49) + br i1 %t50, label %range4413, label %inrange4414 +range4413: + call void @finch_panic_index(ptr @.str.2696, i64 1905, i64 %t47, i64 %t49) unreachable -inrange4270: +inrange4414: %t51 = extractvalue { ptr, i64, i64 } %t48, 0 %t52 = getelementptr inbounds %S.gen.StructDef, ptr %t51, i64 %t47 %t53 = getelementptr inbounds %S.gen.StructDef, ptr %t52, i32 0, i32 15 %t54 = load i64, ptr %t53 %t55 = icmp eq i64 %t54, 1 - br i1 %t55, label %then4271, label %endif4273 -then4271: + br i1 %t55, label %then4415, label %endif4417 +then4415: %t56 = load ptr, ptr %a1 %t57 = load %S.ast.Node, ptr %a43 %t58 = getelementptr inbounds %S.ast.Node, ptr %a43, i32 0, i32 1 %t59 = load { ptr, i64, i64 }, ptr %t58 - store { ptr, i64, i64 } { ptr @.str.2612, i64 11, i64 0 }, ptr %a61 + store { ptr, i64, i64 } { ptr @.str.2697, i64 11, i64 0 }, ptr %a61 store { ptr, i64, i64 } %t59, ptr %a62 call void @finch_str_concat(ptr %a60, ptr %a61, ptr %a62) %t63 = load { ptr, i64, i64 }, ptr %a60 store { ptr, i64, i64 } %t63, ptr %a65 - store { ptr, i64, i64 } { ptr @.str.2613, i64 26, i64 0 }, ptr %a66 + store { ptr, i64, i64 } { ptr @.str.2698, i64 26, i64 0 }, ptr %a66 call void @finch_str_concat(ptr %a64, ptr %a65, ptr %a66) store { ptr, i64, i64 } %t63, ptr %a67 call void @finch_str_drop(ptr %a67) @@ -43759,7 +45407,7 @@ then4271: call void @finch_str_drop(ptr %a74) %t75 = load { ptr, i64, i64 }, ptr %a71 store { ptr, i64, i64 } %t75, ptr %a77 - store { ptr, i64, i64 } { ptr @.str.2614, i64 7, i64 0 }, ptr %a78 + store { ptr, i64, i64 } { ptr @.str.2699, i64 7, i64 0 }, ptr %a78 call void @finch_str_concat(ptr %a76, ptr %a77, ptr %a78) store { ptr, i64, i64 } %t75, ptr %a79 call void @finch_str_drop(ptr %a79) @@ -43773,7 +45421,7 @@ then4271: call void @finch_str_drop(ptr %a86) %t87 = load { ptr, i64, i64 }, ptr %a83 store { ptr, i64, i64 } %t87, ptr %a89 - store { ptr, i64, i64 } { ptr @.str.2615, i64 15, i64 0 }, ptr %a90 + store { ptr, i64, i64 } { ptr @.str.2700, i64 15, i64 0 }, ptr %a90 call void @finch_str_concat(ptr %a88, ptr %a89, ptr %a90) store { ptr, i64, i64 } %t87, ptr %a91 call void @finch_str_drop(ptr %a91) @@ -43781,36 +45429,36 @@ then4271: call void @finch.gen.fail(ptr %t56, %S.ast.Node %t57, { ptr, i64, i64 } %t92) store { ptr, i64, i64 } %t92, ptr %a93 call void @finch_str_drop(ptr %a93) - br label %endif4273 -endif4273: + br label %endif4417 +endif4417: %t94 = load ptr, ptr %a1 %t95 = icmp eq ptr %t94, null - br i1 %t95, label %panic4274, label %ok4275 -panic4274: - call void @finch_panic(ptr @.str.2616, i64 1827, ptr @.str.2617) + br i1 %t95, label %panic4418, label %ok4419 +panic4418: + call void @finch_panic(ptr @.str.2701, i64 1908, ptr @.str.2702) unreachable -ok4275: +ok4419: %t96 = getelementptr inbounds %S.gen.Gen, ptr %t94, i32 0, i32 16 %t97 = load i64, ptr %a2 %t98 = load { ptr, i64, i64 }, ptr %t96 %t99 = extractvalue { ptr, i64, i64 } %t98, 1 %t100 = icmp uge i64 %t97, %t99 - br i1 %t100, label %range4276, label %inrange4277 -range4276: - call void @finch_panic_index(ptr @.str.2618, i64 1827, i64 %t97, i64 %t99) + br i1 %t100, label %range4420, label %inrange4421 +range4420: + call void @finch_panic_index(ptr @.str.2703, i64 1908, i64 %t97, i64 %t99) unreachable -inrange4277: +inrange4421: %t101 = extractvalue { ptr, i64, i64 } %t98, 0 %t102 = getelementptr inbounds %S.gen.StructDef, ptr %t101, i64 %t97 %t103 = getelementptr inbounds %S.gen.StructDef, ptr %t102, i32 0, i32 15 store i64 1, ptr %t103 %t104 = load ptr, ptr %a1 %t105 = icmp eq ptr %t104, null - br i1 %t105, label %panic4278, label %ok4279 -panic4278: - call void @finch_panic(ptr @.str.2619, i64 1828, ptr @.str.2620) + br i1 %t105, label %panic4422, label %ok4423 +panic4422: + call void @finch_panic(ptr @.str.2704, i64 1909, ptr @.str.2705) unreachable -ok4279: +ok4423: %t106 = getelementptr inbounds %S.gen.Gen, ptr %t104, i32 0, i32 14 %t107 = load { ptr, i64, i64 }, ptr %t106 store { ptr, i64, i64 } %t107, ptr %a108 @@ -43819,32 +45467,32 @@ ok4279: store { ptr, i64, i64 } %t110, ptr %a111 %t112 = load ptr, ptr %a1 %t113 = icmp eq ptr %t112, null - br i1 %t113, label %panic4280, label %ok4281 -panic4280: - call void @finch_panic(ptr @.str.2621, i64 1829, ptr @.str.2622) + br i1 %t113, label %panic4424, label %ok4425 +panic4424: + call void @finch_panic(ptr @.str.2706, i64 1910, ptr @.str.2707) unreachable -ok4281: +ok4425: %t114 = getelementptr inbounds %S.gen.Gen, ptr %t112, i32 0, i32 16 %t115 = load i64, ptr %a2 %t116 = load { ptr, i64, i64 }, ptr %t114 %t117 = extractvalue { ptr, i64, i64 } %t116, 1 %t118 = icmp uge i64 %t115, %t117 - br i1 %t118, label %range4282, label %inrange4283 -range4282: - call void @finch_panic_index(ptr @.str.2623, i64 1829, i64 %t115, i64 %t117) + br i1 %t118, label %range4426, label %inrange4427 +range4426: + call void @finch_panic_index(ptr @.str.2708, i64 1910, i64 %t115, i64 %t117) unreachable -inrange4283: +inrange4427: %t119 = extractvalue { ptr, i64, i64 } %t116, 0 %t120 = getelementptr inbounds %S.gen.StructDef, ptr %t119, i64 %t115 %t121 = getelementptr inbounds %S.gen.StructDef, ptr %t120, i32 0, i32 0 %t122 = load { ptr, i64, i64 }, ptr %t121 %t123 = load ptr, ptr %a1 %t124 = icmp eq ptr %t123, null - br i1 %t124, label %panic4284, label %ok4285 -panic4284: - call void @finch_panic(ptr @.str.2624, i64 1829, ptr @.str.2625) + br i1 %t124, label %panic4428, label %ok4429 +panic4428: + call void @finch_panic(ptr @.str.2709, i64 1910, ptr @.str.2710) unreachable -ok4285: +ok4429: %t125 = getelementptr inbounds %S.gen.Gen, ptr %t123, i32 0, i32 14 store { ptr, i64, i64 } %t122, ptr %a126 call void @finch_str_copy(ptr %a127, ptr %a126) @@ -43857,14 +45505,14 @@ ok4285: store { ptr, i64, i64 } zeroinitializer, ptr %a132 %t133 = getelementptr inbounds %S.ast.Node, ptr %a43, i32 0, i32 9 store i64 0, ptr %a134 - br label %each.cond4286 -each.cond4286: + br label %each.cond4430 +each.cond4430: %t135 = getelementptr inbounds { ptr, i64, i64 }, ptr %t133, i32 0, i32 1 %t136 = load i64, ptr %t135 %t137 = load i64, ptr %a134 %t138 = icmp slt i64 %t137, %t136 - br i1 %t138, label %each.body4287, label %each.end4289 -each.body4287: + br i1 %t138, label %each.body4431, label %each.end4433 +each.body4431: %t139 = load ptr, ptr %t133 %t140 = getelementptr inbounds %S.ast.Node, ptr %t139, i64 %t137 %t141 = load %S.ast.Node, ptr %t140 @@ -43878,11 +45526,11 @@ each.body4287: %t149 = getelementptr inbounds %S.ast.Type, ptr %a148, i32 0, i32 0 %t150 = load { ptr, i64, i64 }, ptr %t149 store { ptr, i64, i64 } %t150, ptr %a151 - store { ptr, i64, i64 } { ptr @.str.2626, i64 6, i64 0 }, ptr %a152 + store { ptr, i64, i64 } { ptr @.str.2711, i64 6, i64 0 }, ptr %a152 %t153 = call i32 @finch_str_eq(ptr %a151, ptr %a152) %t154 = icmp ne i32 %t153, 0 - br i1 %t154, label %then4290, label %endif4292 -then4290: + br i1 %t154, label %then4434, label %endif4436 +then4434: %t155 = load ptr, ptr %a1 %t156 = load ptr, ptr %a1 %t157 = getelementptr inbounds %S.ast.Type, ptr %a148, i32 0, i32 3 @@ -43891,46 +45539,46 @@ then4290: %t160 = load { ptr, i64, i64 }, ptr %t159 %t161 = call i64 @finch.gen.findStruct(ptr %t156, { ptr, i64, i64 } %t158, { ptr, i64, i64 } %t160) call void @finch.gen.resolveStruct(ptr %t155, i64 %t161) - br label %endif4292 -endif4292: + br label %endif4436 +endif4436: %t162 = load ptr, ptr %a1 %t163 = icmp eq ptr %t162, null - br i1 %t163, label %panic4293, label %ok4294 -panic4293: - call void @finch_panic(ptr @.str.2627, i64 1837, ptr @.str.2628) + br i1 %t163, label %panic4437, label %ok4438 +panic4437: + call void @finch_panic(ptr @.str.2712, i64 1918, ptr @.str.2713) unreachable -ok4294: +ok4438: %t164 = getelementptr inbounds %S.gen.Gen, ptr %t162, i32 0, i32 16 %t165 = load i64, ptr %a2 %t166 = load { ptr, i64, i64 }, ptr %t164 %t167 = extractvalue { ptr, i64, i64 } %t166, 1 %t168 = icmp uge i64 %t165, %t167 - br i1 %t168, label %range4295, label %inrange4296 -range4295: - call void @finch_panic_index(ptr @.str.2629, i64 1837, i64 %t165, i64 %t167) + br i1 %t168, label %range4439, label %inrange4440 +range4439: + call void @finch_panic_index(ptr @.str.2714, i64 1918, i64 %t165, i64 %t167) unreachable -inrange4296: +inrange4440: %t169 = extractvalue { ptr, i64, i64 } %t166, 0 %t170 = getelementptr inbounds %S.gen.StructDef, ptr %t169, i64 %t165 %t171 = getelementptr inbounds %S.gen.StructDef, ptr %t170, i32 0, i32 3 %t172 = getelementptr inbounds { ptr, i64, i64 }, ptr %t171, i32 0, i32 1 %t173 = load ptr, ptr %a1 %t174 = icmp eq ptr %t173, null - br i1 %t174, label %panic4297, label %ok4298 -panic4297: - call void @finch_panic(ptr @.str.2630, i64 1837, ptr @.str.2631) + br i1 %t174, label %panic4441, label %ok4442 +panic4441: + call void @finch_panic(ptr @.str.2715, i64 1918, ptr @.str.2716) unreachable -ok4298: +ok4442: %t175 = getelementptr inbounds %S.gen.Gen, ptr %t173, i32 0, i32 16 %t176 = load i64, ptr %a2 %t177 = load { ptr, i64, i64 }, ptr %t175 %t178 = extractvalue { ptr, i64, i64 } %t177, 1 %t179 = icmp uge i64 %t176, %t178 - br i1 %t179, label %range4299, label %inrange4300 -range4299: - call void @finch_panic_index(ptr @.str.2632, i64 1837, i64 %t176, i64 %t178) + br i1 %t179, label %range4443, label %inrange4444 +range4443: + call void @finch_panic_index(ptr @.str.2717, i64 1918, i64 %t176, i64 %t178) unreachable -inrange4300: +inrange4444: %t180 = extractvalue { ptr, i64, i64 } %t177, 0 %t181 = getelementptr inbounds %S.gen.StructDef, ptr %t180, i64 %t176 %t182 = getelementptr inbounds %S.gen.StructDef, ptr %t181, i32 0, i32 11 @@ -43945,21 +45593,21 @@ inrange4300: store i64 %t186, ptr %t172 %t189 = load ptr, ptr %a1 %t190 = icmp eq ptr %t189, null - br i1 %t190, label %panic4301, label %ok4302 -panic4301: - call void @finch_panic(ptr @.str.2633, i64 1838, ptr @.str.2634) + br i1 %t190, label %panic4445, label %ok4446 +panic4445: + call void @finch_panic(ptr @.str.2718, i64 1919, ptr @.str.2719) unreachable -ok4302: +ok4446: %t191 = getelementptr inbounds %S.gen.Gen, ptr %t189, i32 0, i32 16 %t192 = load i64, ptr %a2 %t193 = load { ptr, i64, i64 }, ptr %t191 %t194 = extractvalue { ptr, i64, i64 } %t193, 1 %t195 = icmp uge i64 %t192, %t194 - br i1 %t195, label %range4303, label %inrange4304 -range4303: - call void @finch_panic_index(ptr @.str.2635, i64 1838, i64 %t192, i64 %t194) + br i1 %t195, label %range4447, label %inrange4448 +range4447: + call void @finch_panic_index(ptr @.str.2720, i64 1919, i64 %t192, i64 %t194) unreachable -inrange4304: +inrange4448: %t196 = extractvalue { ptr, i64, i64 } %t193, 0 %t197 = getelementptr inbounds %S.gen.StructDef, ptr %t196, i64 %t192 %t198 = getelementptr inbounds %S.gen.StructDef, ptr %t197, i32 0, i32 11 @@ -43978,21 +45626,21 @@ inrange4304: store i64 %t206, ptr %t199 %t209 = load ptr, ptr %a1 %t210 = icmp eq ptr %t209, null - br i1 %t210, label %panic4305, label %ok4306 -panic4305: - call void @finch_panic(ptr @.str.2636, i64 1839, ptr @.str.2637) + br i1 %t210, label %panic4449, label %ok4450 +panic4449: + call void @finch_panic(ptr @.str.2721, i64 1920, ptr @.str.2722) unreachable -ok4306: +ok4450: %t211 = getelementptr inbounds %S.gen.Gen, ptr %t209, i32 0, i32 16 %t212 = load i64, ptr %a2 %t213 = load { ptr, i64, i64 }, ptr %t211 %t214 = extractvalue { ptr, i64, i64 } %t213, 1 %t215 = icmp uge i64 %t212, %t214 - br i1 %t215, label %range4307, label %inrange4308 -range4307: - call void @finch_panic_index(ptr @.str.2638, i64 1839, i64 %t212, i64 %t214) + br i1 %t215, label %range4451, label %inrange4452 +range4451: + call void @finch_panic_index(ptr @.str.2723, i64 1920, i64 %t212, i64 %t214) unreachable -inrange4308: +inrange4452: %t216 = extractvalue { ptr, i64, i64 } %t213, 0 %t217 = getelementptr inbounds %S.gen.StructDef, ptr %t216, i64 %t212 %t218 = getelementptr inbounds %S.gen.StructDef, ptr %t217, i32 0, i32 12 @@ -44011,11 +45659,11 @@ inrange4308: %t228 = load ptr, ptr %a1 %t229 = load %S.ast.Type, ptr %a148 %t230 = call i1 @finch.gen.owning(ptr %t228, %S.ast.Type %t229) - br i1 %t230, label %then4309, label %endif4311 -then4309: + br i1 %t230, label %then4453, label %endif4455 +then4453: store i1 true, ptr %a131 - br label %endif4311 -endif4311: + br label %endif4455 +endif4455: %t231 = getelementptr inbounds { ptr, i64, i64 }, ptr %a132, i32 0, i32 1 %t232 = load ptr, ptr %a1 %t233 = load %S.ast.Type, ptr %a148 @@ -44028,31 +45676,31 @@ endif4311: store { ptr, i64, i64 } %t234, ptr %t238 store i64 %t236, ptr %t231 call void @finch.drop.S_ast_Type(ptr %a148) - br label %each.step4288 -each.step4288: + br label %each.step4432 +each.step4432: %t239 = load i64, ptr %a134 %t240 = add i64 %t239, 1 store i64 %t240, ptr %a134 - br label %each.cond4286 -each.end4289: + br label %each.cond4430 +each.end4433: %t241 = load i1, ptr %a131 %t242 = load ptr, ptr %a1 %t243 = icmp eq ptr %t242, null - br i1 %t243, label %panic4312, label %ok4313 -panic4312: - call void @finch_panic(ptr @.str.2639, i64 1845, ptr @.str.2640) + br i1 %t243, label %panic4456, label %ok4457 +panic4456: + call void @finch_panic(ptr @.str.2724, i64 1926, ptr @.str.2725) unreachable -ok4313: +ok4457: %t244 = getelementptr inbounds %S.gen.Gen, ptr %t242, i32 0, i32 16 %t245 = load i64, ptr %a2 %t246 = load { ptr, i64, i64 }, ptr %t244 %t247 = extractvalue { ptr, i64, i64 } %t246, 1 %t248 = icmp uge i64 %t245, %t247 - br i1 %t248, label %range4314, label %inrange4315 -range4314: - call void @finch_panic_index(ptr @.str.2641, i64 1845, i64 %t245, i64 %t247) + br i1 %t248, label %range4458, label %inrange4459 +range4458: + call void @finch_panic_index(ptr @.str.2726, i64 1926, i64 %t245, i64 %t247) unreachable -inrange4315: +inrange4459: %t249 = extractvalue { ptr, i64, i64 } %t246, 0 %t250 = getelementptr inbounds %S.gen.StructDef, ptr %t249, i64 %t245 %t251 = getelementptr inbounds %S.gen.StructDef, ptr %t250, i32 0, i32 16 @@ -44060,11 +45708,11 @@ inrange4315: %t252 = load { ptr, i64, i64 }, ptr %a111 %t253 = load ptr, ptr %a1 %t254 = icmp eq ptr %t253, null - br i1 %t254, label %panic4316, label %ok4317 -panic4316: - call void @finch_panic(ptr @.str.2642, i64 1846, ptr @.str.2643) + br i1 %t254, label %panic4460, label %ok4461 +panic4460: + call void @finch_panic(ptr @.str.2727, i64 1927, ptr @.str.2728) unreachable -ok4317: +ok4461: %t255 = getelementptr inbounds %S.gen.Gen, ptr %t253, i32 0, i32 14 store { ptr, i64, i64 } %t252, ptr %a256 call void @finch_str_copy(ptr %a257, ptr %a256) @@ -44075,85 +45723,85 @@ ok4317: call void @finch_str_drop(ptr %a260) %t261 = load ptr, ptr %a1 %t262 = icmp eq ptr %t261, null - br i1 %t262, label %panic4318, label %ok4319 -panic4318: - call void @finch_panic(ptr @.str.2644, i64 1847, ptr @.str.2645) + br i1 %t262, label %panic4462, label %ok4463 +panic4462: + call void @finch_panic(ptr @.str.2729, i64 1928, ptr @.str.2730) unreachable -ok4319: +ok4463: %t263 = getelementptr inbounds %S.gen.Gen, ptr %t261, i32 0, i32 16 %t264 = load i64, ptr %a2 %t265 = load { ptr, i64, i64 }, ptr %t263 %t266 = extractvalue { ptr, i64, i64 } %t265, 1 %t267 = icmp uge i64 %t264, %t266 - br i1 %t267, label %range4320, label %inrange4321 -range4320: - call void @finch_panic_index(ptr @.str.2646, i64 1847, i64 %t264, i64 %t266) + br i1 %t267, label %range4464, label %inrange4465 +range4464: + call void @finch_panic_index(ptr @.str.2731, i64 1928, i64 %t264, i64 %t266) unreachable -inrange4321: +inrange4465: %t268 = extractvalue { ptr, i64, i64 } %t265, 0 %t269 = getelementptr inbounds %S.gen.StructDef, ptr %t268, i64 %t264 %t270 = getelementptr inbounds %S.gen.StructDef, ptr %t269, i32 0, i32 15 store i64 2, ptr %t270 %t271 = load ptr, ptr %a1 %t272 = icmp eq ptr %t271, null - br i1 %t272, label %panic4322, label %ok4323 -panic4322: - call void @finch_panic(ptr @.str.2647, i64 1848, ptr @.str.2648) + br i1 %t272, label %panic4466, label %ok4467 +panic4466: + call void @finch_panic(ptr @.str.2732, i64 1929, ptr @.str.2733) unreachable -ok4323: +ok4467: %t273 = getelementptr inbounds %S.gen.Gen, ptr %t271, i32 0, i32 2 %t274 = getelementptr inbounds { ptr, i64, i64 }, ptr %t273, i32 0, i32 1 %t275 = load ptr, ptr %a1 %t276 = icmp eq ptr %t275, null - br i1 %t276, label %panic4324, label %ok4325 -panic4324: - call void @finch_panic(ptr @.str.2650, i64 1848, ptr @.str.2651) + br i1 %t276, label %panic4468, label %ok4469 +panic4468: + call void @finch_panic(ptr @.str.2735, i64 1929, ptr @.str.2736) unreachable -ok4325: +ok4469: %t277 = getelementptr inbounds %S.gen.Gen, ptr %t275, i32 0, i32 16 %t278 = load i64, ptr %a2 %t279 = load { ptr, i64, i64 }, ptr %t277 %t280 = extractvalue { ptr, i64, i64 } %t279, 1 %t281 = icmp uge i64 %t278, %t280 - br i1 %t281, label %range4326, label %inrange4327 -range4326: - call void @finch_panic_index(ptr @.str.2652, i64 1848, i64 %t278, i64 %t280) + br i1 %t281, label %range4470, label %inrange4471 +range4470: + call void @finch_panic_index(ptr @.str.2737, i64 1929, i64 %t278, i64 %t280) unreachable -inrange4327: +inrange4471: %t282 = extractvalue { ptr, i64, i64 } %t279, 0 %t283 = getelementptr inbounds %S.gen.StructDef, ptr %t282, i64 %t278 %t284 = getelementptr inbounds %S.gen.StructDef, ptr %t283, i32 0, i32 0 %t285 = load { ptr, i64, i64 }, ptr %t284 %t286 = call { ptr, i64, i64 } @finch.gen.modName({ ptr, i64, i64 } %t285) - store { ptr, i64, i64 } { ptr @.str.2649, i64 3, i64 0 }, ptr %a288 + store { ptr, i64, i64 } { ptr @.str.2734, i64 3, i64 0 }, ptr %a288 store { ptr, i64, i64 } %t286, ptr %a289 call void @finch_str_concat(ptr %a287, ptr %a288, ptr %a289) store { ptr, i64, i64 } %t286, ptr %a290 call void @finch_str_drop(ptr %a290) %t291 = load { ptr, i64, i64 }, ptr %a287 store { ptr, i64, i64 } %t291, ptr %a293 - store { ptr, i64, i64 } { ptr @.str.2653, i64 1, i64 0 }, ptr %a294 + store { ptr, i64, i64 } { ptr @.str.2738, i64 1, i64 0 }, ptr %a294 call void @finch_str_concat(ptr %a292, ptr %a293, ptr %a294) store { ptr, i64, i64 } %t291, ptr %a295 call void @finch_str_drop(ptr %a295) %t296 = load { ptr, i64, i64 }, ptr %a292 %t297 = load ptr, ptr %a1 %t298 = icmp eq ptr %t297, null - br i1 %t298, label %panic4328, label %ok4329 -panic4328: - call void @finch_panic(ptr @.str.2654, i64 1848, ptr @.str.2655) + br i1 %t298, label %panic4472, label %ok4473 +panic4472: + call void @finch_panic(ptr @.str.2739, i64 1929, ptr @.str.2740) unreachable -ok4329: +ok4473: %t299 = getelementptr inbounds %S.gen.Gen, ptr %t297, i32 0, i32 16 %t300 = load i64, ptr %a2 %t301 = load { ptr, i64, i64 }, ptr %t299 %t302 = extractvalue { ptr, i64, i64 } %t301, 1 %t303 = icmp uge i64 %t300, %t302 - br i1 %t303, label %range4330, label %inrange4331 -range4330: - call void @finch_panic_index(ptr @.str.2656, i64 1848, i64 %t300, i64 %t302) + br i1 %t303, label %range4474, label %inrange4475 +range4474: + call void @finch_panic_index(ptr @.str.2741, i64 1929, i64 %t300, i64 %t302) unreachable -inrange4331: +inrange4475: %t304 = extractvalue { ptr, i64, i64 } %t301, 0 %t305 = getelementptr inbounds %S.gen.StructDef, ptr %t304, i64 %t300 %t306 = getelementptr inbounds %S.gen.StructDef, ptr %t305, i32 0, i32 1 @@ -44168,13 +45816,13 @@ inrange4331: call void @finch_str_drop(ptr %a313) %t314 = load { ptr, i64, i64 }, ptr %a309 store { ptr, i64, i64 } %t314, ptr %a316 - store { ptr, i64, i64 } { ptr @.str.2657, i64 10, i64 0 }, ptr %a317 + store { ptr, i64, i64 } { ptr @.str.2742, i64 10, i64 0 }, ptr %a317 call void @finch_str_concat(ptr %a315, ptr %a316, ptr %a317) store { ptr, i64, i64 } %t314, ptr %a318 call void @finch_str_drop(ptr %a318) %t319 = load { ptr, i64, i64 }, ptr %a315 %t320 = getelementptr inbounds { ptr, i64, i64 }, ptr %a132, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.2658, i64 2, i64 0 }, ptr %a321 + store { ptr, i64, i64 } { ptr @.str.2743, i64 2, i64 0 }, ptr %a321 call void @finch_str_join(ptr %a322, ptr %a132, ptr %a321) %t323 = load { ptr, i64, i64 }, ptr %a322 store { ptr, i64, i64 } %t319, ptr %a325 @@ -44186,7 +45834,7 @@ inrange4331: call void @finch_str_drop(ptr %a328) %t329 = load { ptr, i64, i64 }, ptr %a324 store { ptr, i64, i64 } %t329, ptr %a331 - store { ptr, i64, i64 } { ptr @.str.2659, i64 2, i64 0 }, ptr %a332 + store { ptr, i64, i64 } { ptr @.str.2744, i64 2, i64 0 }, ptr %a332 call void @finch_str_concat(ptr %a330, ptr %a331, ptr %a332) store { ptr, i64, i64 } %t329, ptr %a333 call void @finch_str_drop(ptr %a333) @@ -44214,12 +45862,12 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic4332, label %ok4333 -panic4332: - call void @finch_panic(ptr @.str.2660, i64 1857, ptr @.str.2661) + br i1 %t4, label %panic4476, label %ok4477 +panic4476: + call void @finch_panic(ptr @.str.2745, i64 1938, ptr @.str.2746) unreachable -ok4333: - %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 32 +ok4477: + %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 33 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t7 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t7, ptr %a8 @@ -44234,12 +45882,12 @@ ok4333: store i64 %t12, ptr %t6 %t15 = load ptr, ptr %a1 %t16 = icmp eq ptr %t15, null - br i1 %t16, label %panic4334, label %ok4335 -panic4334: - call void @finch_panic(ptr @.str.2662, i64 1858, ptr @.str.2663) + br i1 %t16, label %panic4478, label %ok4479 +panic4478: + call void @finch_panic(ptr @.str.2747, i64 1939, ptr @.str.2748) unreachable -ok4335: - %t17 = getelementptr inbounds %S.gen.Gen, ptr %t15, i32 0, i32 32 +ok4479: + %t17 = getelementptr inbounds %S.gen.Gen, ptr %t15, i32 0, i32 33 %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %t17, i32 0, i32 1 %t19 = load i64, ptr %t18 %t20 = sub i64 %t19, 1 @@ -44257,14 +45905,14 @@ entry: store i64 %p0, ptr %a1 %t2 = load i64, ptr %a1 %t3 = icmp slt i64 %t2, 0 - br i1 %t3, label %then4336, label %endif4338 -then4336: - ret { ptr, i64, i64 } { ptr @.str.2664, i64 4, i64 0 } -endif4338: + br i1 %t3, label %then4480, label %endif4482 +then4480: + ret { ptr, i64, i64 } { ptr @.str.2749, i64 4, i64 0 } +endif4482: %t4 = load i64, ptr %a1 call void @finch_str_from_int(ptr %a5, i64 %t4) %t6 = load { ptr, i64, i64 }, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.2665, i64 1, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.2750, i64 1, i64 0 }, ptr %a8 store { ptr, i64, i64 } %t6, ptr %a9 call void @finch_str_concat(ptr %a7, ptr %a8, ptr %a9) store { ptr, i64, i64 } %t6, ptr %a10 @@ -44281,22 +45929,22 @@ entry: store i64 %p1, ptr %a2 %t3 = load i64, ptr %a2 %t4 = icmp sle i64 %t3, 1 - br i1 %t4, label %then4339, label %endif4341 -then4339: + br i1 %t4, label %then4483, label %endif4485 +then4483: %t5 = load i64, ptr %a1 ret i64 %t5 -endif4341: +endif4485: %t6 = load i64, ptr %a1 %t7 = load i64, ptr %a2 %t8 = add i64 %t6, %t7 %t9 = sub i64 %t8, 1 %t10 = load i64, ptr %a2 %t11 = icmp eq i64 %t10, 0 - br i1 %t11, label %panic4342, label %ok4343 -panic4342: - call void @finch_panic(ptr @.str.2666, i64 1877, ptr @.str.2667) + br i1 %t11, label %panic4486, label %ok4487 +panic4486: + call void @finch_panic(ptr @.str.2751, i64 1958, ptr @.str.2752) unreachable -ok4343: +ok4487: %t12 = sdiv i64 %t9, %t10 %t13 = load i64, ptr %a2 %t14 = mul i64 %t12, %t13 @@ -44359,193 +46007,193 @@ entry: store { ptr, i64, i64 } %t7, ptr %a8 %t9 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t9, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.2668, i64 4, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.2753, i64 4, i64 0 }, ptr %a11 %t12 = call i32 @finch_str_eq(ptr %a10, ptr %a11) %t13 = icmp ne i32 %t12, 0 - br label %logic.from4344 -logic.from4344: - br i1 %t13, label %logic.end4346, label %logic.rhs4345 -logic.rhs4345: + br label %logic.from4488 +logic.from4488: + br i1 %t13, label %logic.end4490, label %logic.rhs4489 +logic.rhs4489: %t14 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t14, ptr %a15 - store { ptr, i64, i64 } { ptr @.str.2669, i64 4, i64 0 }, ptr %a16 + store { ptr, i64, i64 } { ptr @.str.2754, i64 4, i64 0 }, ptr %a16 %t17 = call i32 @finch_str_eq(ptr %a15, ptr %a16) %t18 = icmp ne i32 %t17, 0 - br label %logic.rend4347 -logic.rend4347: - br label %logic.end4346 -logic.end4346: - %t19 = phi i1 [ true, %logic.from4344 ], [ %t18, %logic.rend4347 ] - br label %logic.from4348 -logic.from4348: - br i1 %t19, label %logic.end4350, label %logic.rhs4349 -logic.rhs4349: + br label %logic.rend4491 +logic.rend4491: + br label %logic.end4490 +logic.end4490: + %t19 = phi i1 [ true, %logic.from4488 ], [ %t18, %logic.rend4491 ] + br label %logic.from4492 +logic.from4492: + br i1 %t19, label %logic.end4494, label %logic.rhs4493 +logic.rhs4493: %t20 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t20, ptr %a21 - store { ptr, i64, i64 } { ptr @.str.2670, i64 2, i64 0 }, ptr %a22 + store { ptr, i64, i64 } { ptr @.str.2755, i64 2, i64 0 }, ptr %a22 %t23 = call i32 @finch_str_eq(ptr %a21, ptr %a22) %t24 = icmp ne i32 %t23, 0 - br label %logic.rend4351 -logic.rend4351: - br label %logic.end4350 -logic.end4350: - %t25 = phi i1 [ true, %logic.from4348 ], [ %t24, %logic.rend4351 ] - br label %logic.from4352 -logic.from4352: - br i1 %t25, label %logic.end4354, label %logic.rhs4353 -logic.rhs4353: + br label %logic.rend4495 +logic.rend4495: + br label %logic.end4494 +logic.end4494: + %t25 = phi i1 [ true, %logic.from4492 ], [ %t24, %logic.rend4495 ] + br label %logic.from4496 +logic.from4496: + br i1 %t25, label %logic.end4498, label %logic.rhs4497 +logic.rhs4497: %t26 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t26, ptr %a27 - store { ptr, i64, i64 } { ptr @.str.2671, i64 2, i64 0 }, ptr %a28 + store { ptr, i64, i64 } { ptr @.str.2756, i64 2, i64 0 }, ptr %a28 %t29 = call i32 @finch_str_eq(ptr %a27, ptr %a28) %t30 = icmp ne i32 %t29, 0 - br label %logic.rend4355 -logic.rend4355: - br label %logic.end4354 -logic.end4354: - %t31 = phi i1 [ true, %logic.from4352 ], [ %t30, %logic.rend4355 ] - br i1 %t31, label %then4356, label %endif4358 -then4356: + br label %logic.rend4499 +logic.rend4499: + br label %logic.end4498 +logic.end4498: + %t31 = phi i1 [ true, %logic.from4496 ], [ %t30, %logic.rend4499 ] + br i1 %t31, label %then4500, label %endif4502 +then4500: %t32 = insertvalue %S.gen.SizeAlign zeroinitializer, i64 1, 0 %t33 = insertvalue %S.gen.SizeAlign %t32, i64 1, 1 call void @finch_str_drop(ptr %a8) ret %S.gen.SizeAlign %t33 -endif4358: +endif4502: %t34 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t34, ptr %a35 - store { ptr, i64, i64 } { ptr @.str.2672, i64 3, i64 0 }, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.2757, i64 3, i64 0 }, ptr %a36 %t37 = call i32 @finch_str_eq(ptr %a35, ptr %a36) %t38 = icmp ne i32 %t37, 0 - br label %logic.from4359 -logic.from4359: - br i1 %t38, label %logic.end4361, label %logic.rhs4360 -logic.rhs4360: + br label %logic.from4503 +logic.from4503: + br i1 %t38, label %logic.end4505, label %logic.rhs4504 +logic.rhs4504: %t39 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t39, ptr %a40 - store { ptr, i64, i64 } { ptr @.str.2673, i64 3, i64 0 }, ptr %a41 + store { ptr, i64, i64 } { ptr @.str.2758, i64 3, i64 0 }, ptr %a41 %t42 = call i32 @finch_str_eq(ptr %a40, ptr %a41) %t43 = icmp ne i32 %t42, 0 - br label %logic.rend4362 -logic.rend4362: - br label %logic.end4361 -logic.end4361: - %t44 = phi i1 [ true, %logic.from4359 ], [ %t43, %logic.rend4362 ] - br i1 %t44, label %then4363, label %endif4365 -then4363: + br label %logic.rend4506 +logic.rend4506: + br label %logic.end4505 +logic.end4505: + %t44 = phi i1 [ true, %logic.from4503 ], [ %t43, %logic.rend4506 ] + br i1 %t44, label %then4507, label %endif4509 +then4507: %t45 = insertvalue %S.gen.SizeAlign zeroinitializer, i64 2, 0 %t46 = insertvalue %S.gen.SizeAlign %t45, i64 2, 1 call void @finch_str_drop(ptr %a8) ret %S.gen.SizeAlign %t46 -endif4365: +endif4509: %t47 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t47, ptr %a48 - store { ptr, i64, i64 } { ptr @.str.2674, i64 3, i64 0 }, ptr %a49 + store { ptr, i64, i64 } { ptr @.str.2759, i64 3, i64 0 }, ptr %a49 %t50 = call i32 @finch_str_eq(ptr %a48, ptr %a49) %t51 = icmp ne i32 %t50, 0 - br label %logic.from4366 -logic.from4366: - br i1 %t51, label %logic.end4368, label %logic.rhs4367 -logic.rhs4367: + br label %logic.from4510 +logic.from4510: + br i1 %t51, label %logic.end4512, label %logic.rhs4511 +logic.rhs4511: %t52 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t52, ptr %a53 - store { ptr, i64, i64 } { ptr @.str.2675, i64 3, i64 0 }, ptr %a54 + store { ptr, i64, i64 } { ptr @.str.2760, i64 3, i64 0 }, ptr %a54 %t55 = call i32 @finch_str_eq(ptr %a53, ptr %a54) %t56 = icmp ne i32 %t55, 0 - br label %logic.rend4369 -logic.rend4369: - br label %logic.end4368 -logic.end4368: - %t57 = phi i1 [ true, %logic.from4366 ], [ %t56, %logic.rend4369 ] - br label %logic.from4370 -logic.from4370: - br i1 %t57, label %logic.end4372, label %logic.rhs4371 -logic.rhs4371: + br label %logic.rend4513 +logic.rend4513: + br label %logic.end4512 +logic.end4512: + %t57 = phi i1 [ true, %logic.from4510 ], [ %t56, %logic.rend4513 ] + br label %logic.from4514 +logic.from4514: + br i1 %t57, label %logic.end4516, label %logic.rhs4515 +logic.rhs4515: %t58 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t58, ptr %a59 - store { ptr, i64, i64 } { ptr @.str.2676, i64 3, i64 0 }, ptr %a60 + store { ptr, i64, i64 } { ptr @.str.2761, i64 3, i64 0 }, ptr %a60 %t61 = call i32 @finch_str_eq(ptr %a59, ptr %a60) %t62 = icmp ne i32 %t61, 0 - br label %logic.rend4373 -logic.rend4373: - br label %logic.end4372 -logic.end4372: - %t63 = phi i1 [ true, %logic.from4370 ], [ %t62, %logic.rend4373 ] - br label %logic.from4374 -logic.from4374: - br i1 %t63, label %logic.end4376, label %logic.rhs4375 -logic.rhs4375: + br label %logic.rend4517 +logic.rend4517: + br label %logic.end4516 +logic.end4516: + %t63 = phi i1 [ true, %logic.from4514 ], [ %t62, %logic.rend4517 ] + br label %logic.from4518 +logic.from4518: + br i1 %t63, label %logic.end4520, label %logic.rhs4519 +logic.rhs4519: %t64 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t64, ptr %a65 - store { ptr, i64, i64 } { ptr @.str.2677, i64 4, i64 0 }, ptr %a66 + store { ptr, i64, i64 } { ptr @.str.2762, i64 4, i64 0 }, ptr %a66 %t67 = call i32 @finch_str_eq(ptr %a65, ptr %a66) %t68 = icmp ne i32 %t67, 0 - br label %logic.rend4377 -logic.rend4377: - br label %logic.end4376 -logic.end4376: - %t69 = phi i1 [ true, %logic.from4374 ], [ %t68, %logic.rend4377 ] - br i1 %t69, label %then4378, label %endif4380 -then4378: + br label %logic.rend4521 +logic.rend4521: + br label %logic.end4520 +logic.end4520: + %t69 = phi i1 [ true, %logic.from4518 ], [ %t68, %logic.rend4521 ] + br i1 %t69, label %then4522, label %endif4524 +then4522: %t70 = insertvalue %S.gen.SizeAlign zeroinitializer, i64 4, 0 %t71 = insertvalue %S.gen.SizeAlign %t70, i64 4, 1 call void @finch_str_drop(ptr %a8) ret %S.gen.SizeAlign %t71 -endif4380: +endif4524: %t72 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t72, ptr %a73 - store { ptr, i64, i64 } { ptr @.str.2678, i64 3, i64 0 }, ptr %a74 + store { ptr, i64, i64 } { ptr @.str.2763, i64 3, i64 0 }, ptr %a74 %t75 = call i32 @finch_str_eq(ptr %a73, ptr %a74) %t76 = icmp ne i32 %t75, 0 - br label %logic.from4381 -logic.from4381: - br i1 %t76, label %logic.end4383, label %logic.rhs4382 -logic.rhs4382: + br label %logic.from4525 +logic.from4525: + br i1 %t76, label %logic.end4527, label %logic.rhs4526 +logic.rhs4526: %t77 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t77, ptr %a78 - store { ptr, i64, i64 } { ptr @.str.2679, i64 5, i64 0 }, ptr %a79 + store { ptr, i64, i64 } { ptr @.str.2764, i64 5, i64 0 }, ptr %a79 %t80 = call i32 @finch_str_eq(ptr %a78, ptr %a79) %t81 = icmp ne i32 %t80, 0 - br label %logic.rend4384 -logic.rend4384: - br label %logic.end4383 -logic.end4383: - %t82 = phi i1 [ true, %logic.from4381 ], [ %t81, %logic.rend4384 ] - br i1 %t82, label %then4385, label %endif4387 -then4385: + br label %logic.rend4528 +logic.rend4528: + br label %logic.end4527 +logic.end4527: + %t82 = phi i1 [ true, %logic.from4525 ], [ %t81, %logic.rend4528 ] + br i1 %t82, label %then4529, label %endif4531 +then4529: %t83 = insertvalue %S.gen.SizeAlign zeroinitializer, i64 24, 0 %t84 = insertvalue %S.gen.SizeAlign %t83, i64 8, 1 call void @finch_str_drop(ptr %a8) ret %S.gen.SizeAlign %t84 -endif4387: +endif4531: %t85 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t85, ptr %a86 - store { ptr, i64, i64 } { ptr @.str.2680, i64 3, i64 0 }, ptr %a87 + store { ptr, i64, i64 } { ptr @.str.2765, i64 3, i64 0 }, ptr %a87 %t88 = call i32 @finch_str_eq(ptr %a86, ptr %a87) %t89 = icmp ne i32 %t88, 0 - br i1 %t89, label %then4388, label %endif4390 -then4388: + br i1 %t89, label %then4532, label %endif4534 +then4532: %t90 = insertvalue %S.gen.SizeAlign zeroinitializer, i64 56, 0 %t91 = insertvalue %S.gen.SizeAlign %t90, i64 8, 1 call void @finch_str_drop(ptr %a8) ret %S.gen.SizeAlign %t91 -endif4390: +endif4534: %t92 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t92, ptr %a93 - store { ptr, i64, i64 } { ptr @.str.2681, i64 5, i64 0 }, ptr %a94 + store { ptr, i64, i64 } { ptr @.str.2766, i64 5, i64 0 }, ptr %a94 %t95 = call i32 @finch_str_eq(ptr %a93, ptr %a94) %t96 = icmp ne i32 %t95, 0 - br i1 %t96, label %then4391, label %endif4393 -then4391: + br i1 %t96, label %then4535, label %endif4537 +then4535: %t97 = load ptr, ptr %a1 %t98 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t99 = load { ptr, i64, i64 }, ptr %t98 %t100 = extractvalue { ptr, i64, i64 } %t99, 1 %t101 = icmp uge i64 0, %t100 - br i1 %t101, label %range4394, label %inrange4395 -range4394: - call void @finch_panic_index(ptr @.str.2682, i64 1899, i64 0, i64 %t100) + br i1 %t101, label %range4538, label %inrange4539 +range4538: + call void @finch_panic_index(ptr @.str.2767, i64 1980, i64 0, i64 %t100) unreachable -inrange4395: +inrange4539: %t102 = extractvalue { ptr, i64, i64 } %t99, 0 %t103 = getelementptr inbounds %S.ast.Type, ptr %t102, i64 0 %t104 = load %S.ast.Type, ptr %t103 @@ -44562,21 +46210,21 @@ inrange4395: %t115 = insertvalue %S.gen.SizeAlign %t112, i64 %t114, 1 call void @finch_str_drop(ptr %a8) ret %S.gen.SizeAlign %t115 -endif4393: +endif4537: %t116 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t116, ptr %a117 - store { ptr, i64, i64 } { ptr @.str.2683, i64 6, i64 0 }, ptr %a118 + store { ptr, i64, i64 } { ptr @.str.2768, i64 6, i64 0 }, ptr %a118 %t119 = call i32 @finch_str_eq(ptr %a117, ptr %a118) %t120 = icmp ne i32 %t119, 0 - br i1 %t120, label %then4396, label %endif4398 -then4396: + br i1 %t120, label %then4540, label %endif4542 +then4540: %t121 = load ptr, ptr %a1 %t122 = icmp eq ptr %t121, null - br i1 %t122, label %panic4399, label %ok4400 -panic4399: - call void @finch_panic(ptr @.str.2684, i64 1903, ptr @.str.2685) + br i1 %t122, label %panic4543, label %ok4544 +panic4543: + call void @finch_panic(ptr @.str.2769, i64 1984, ptr @.str.2770) unreachable -ok4400: +ok4544: %t123 = getelementptr inbounds %S.gen.Gen, ptr %t121, i32 0, i32 16 %t124 = load ptr, ptr %a1 %t125 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 @@ -44587,11 +46235,11 @@ ok4400: %t130 = load { ptr, i64, i64 }, ptr %t123 %t131 = extractvalue { ptr, i64, i64 } %t130, 1 %t132 = icmp uge i64 %t129, %t131 - br i1 %t132, label %range4401, label %inrange4402 -range4401: - call void @finch_panic_index(ptr @.str.2686, i64 1903, i64 %t129, i64 %t131) + br i1 %t132, label %range4545, label %inrange4546 +range4545: + call void @finch_panic_index(ptr @.str.2771, i64 1984, i64 %t129, i64 %t131) unreachable -inrange4402: +inrange4546: %t133 = extractvalue { ptr, i64, i64 } %t130, 0 %t134 = getelementptr inbounds %S.gen.StructDef, ptr %t133, i64 %t129 %t135 = load %S.gen.StructDef, ptr %t134 @@ -44601,8 +46249,8 @@ inrange4402: store %S.gen.StructDef %t138, ptr %a139 %t140 = getelementptr inbounds %S.gen.StructDef, ptr %a139, i32 0, i32 2 %t141 = load i1, ptr %t140 - br i1 %t141, label %then4403, label %endif4405 -then4403: + br i1 %t141, label %then4547, label %endif4549 +then4547: %t142 = getelementptr inbounds %S.gen.StructDef, ptr %a139, i32 0, i32 9 %t143 = load i64, ptr %t142 %t144 = insertvalue %S.gen.SizeAlign zeroinitializer, i64 %t143, 0 @@ -44612,19 +46260,19 @@ then4403: call void @finch.drop.S_gen_StructDef(ptr %a139) call void @finch_str_drop(ptr %a8) ret %S.gen.SizeAlign %t147 -endif4405: +endif4549: store i64 0, ptr %a148 store i64 1, ptr %a149 %t150 = getelementptr inbounds %S.gen.StructDef, ptr %a139, i32 0, i32 12 store i64 0, ptr %a151 - br label %each.cond4406 -each.cond4406: + br label %each.cond4550 +each.cond4550: %t152 = getelementptr inbounds { ptr, i64, i64 }, ptr %t150, i32 0, i32 1 %t153 = load i64, ptr %t152 %t154 = load i64, ptr %a151 %t155 = icmp slt i64 %t154, %t153 - br i1 %t155, label %each.body4407, label %each.end4409 -each.body4407: + br i1 %t155, label %each.body4551, label %each.end4553 +each.body4551: %t156 = load ptr, ptr %t150 %t157 = getelementptr inbounds %S.ast.Type, ptr %t156, i64 %t154 %t158 = load %S.ast.Type, ptr %t157 @@ -44645,20 +46293,20 @@ each.body4407: %t172 = load i64, ptr %t171 %t173 = load i64, ptr %a149 %t174 = icmp sgt i64 %t172, %t173 - br i1 %t174, label %then4410, label %endif4412 -then4410: + br i1 %t174, label %then4554, label %endif4556 +then4554: %t175 = getelementptr inbounds %S.gen.SizeAlign, ptr %a163, i32 0, i32 1 %t176 = load i64, ptr %t175 store i64 %t176, ptr %a149 - br label %endif4412 -endif4412: - br label %each.step4408 -each.step4408: + br label %endif4556 +endif4556: + br label %each.step4552 +each.step4552: %t177 = load i64, ptr %a151 %t178 = add i64 %t177, 1 store i64 %t178, ptr %a151 - br label %each.cond4406 -each.end4409: + br label %each.cond4550 +each.end4553: %t179 = load i64, ptr %a148 %t180 = load i64, ptr %a149 %t181 = call i64 @finch.gen.alignUp(i64 %t179, i64 %t180) @@ -44668,7 +46316,7 @@ each.end4409: call void @finch.drop.S_gen_StructDef(ptr %a139) call void @finch_str_drop(ptr %a8) ret %S.gen.SizeAlign %t184 -endif4398: +endif4542: %t185 = insertvalue %S.gen.SizeAlign zeroinitializer, i64 8, 0 %t186 = insertvalue %S.gen.SizeAlign %t185, i64 8, 1 call void @finch_str_drop(ptr %a8) @@ -44690,27 +46338,27 @@ entry: store %S.gen.StructDef %p1, ptr %a2 %t3 = getelementptr inbounds %S.gen.StructDef, ptr %a2, i32 0, i32 2 %t4 = load i1, ptr %t3 - br i1 %t4, label %then4413, label %endif4415 -then4413: + br i1 %t4, label %then4557, label %endif4559 +then4557: %t5 = getelementptr inbounds %S.gen.StructDef, ptr %a2, i32 0, i32 4 %t6 = load { ptr, i64, i64 }, ptr %t5 store { ptr, i64, i64 } %t6, ptr %a7 call void @finch.copy.arr_int(ptr %a8, ptr %a7) %t9 = load { ptr, i64, i64 }, ptr %a8 ret { ptr, i64, i64 } %t9 -endif4415: +endif4559: store { ptr, i64, i64 } zeroinitializer, ptr %a10 store i64 0, ptr %a11 %t12 = getelementptr inbounds %S.gen.StructDef, ptr %a2, i32 0, i32 12 store i64 0, ptr %a13 - br label %each.cond4416 -each.cond4416: + br label %each.cond4560 +each.cond4560: %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %t12, i32 0, i32 1 %t15 = load i64, ptr %t14 %t16 = load i64, ptr %a13 %t17 = icmp slt i64 %t16, %t15 - br i1 %t17, label %each.body4417, label %each.end4419 -each.body4417: + br i1 %t17, label %each.body4561, label %each.end4563 +each.body4561: %t18 = load ptr, ptr %t12 %t19 = getelementptr inbounds %S.ast.Type, ptr %t18, i64 %t16 %t20 = load %S.ast.Type, ptr %t19 @@ -44738,13 +46386,13 @@ each.body4417: %t38 = load i64, ptr %a11 %t39 = add i64 %t38, %t37 store i64 %t39, ptr %a11 - br label %each.step4418 -each.step4418: + br label %each.step4562 +each.step4562: %t40 = load i64, ptr %a13 %t41 = add i64 %t40, 1 store i64 %t41, ptr %a13 - br label %each.cond4416 -each.end4419: + br label %each.cond4560 +each.end4563: %t42 = load { ptr, i64, i64 }, ptr %a10 ret { ptr, i64, i64 } %t42 } @@ -44836,12 +46484,12 @@ entry: store i64 %p7, ptr %a8 %t9 = load ptr, ptr %a1 %t10 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.2687, i64 42, i64 0 }, ptr %a12 + store { ptr, i64, i64 } { ptr @.str.2772, i64 42, i64 0 }, ptr %a12 store { ptr, i64, i64 } %t10, ptr %a13 call void @finch_str_concat(ptr %a11, ptr %a12, ptr %a13) %t14 = load { ptr, i64, i64 }, ptr %a11 store { ptr, i64, i64 } %t14, ptr %a16 - store { ptr, i64, i64 } { ptr @.str.2688, i64 11, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.2773, i64 11, i64 0 }, ptr %a17 call void @finch_str_concat(ptr %a15, ptr %a16, ptr %a17) store { ptr, i64, i64 } %t14, ptr %a18 call void @finch_str_drop(ptr %a18) @@ -44858,7 +46506,7 @@ entry: call void @finch_str_drop(ptr %a27) %t28 = load { ptr, i64, i64 }, ptr %a23 store { ptr, i64, i64 } %t28, ptr %a30 - store { ptr, i64, i64 } { ptr @.str.2689, i64 9, i64 0 }, ptr %a31 + store { ptr, i64, i64 } { ptr @.str.2774, i64 9, i64 0 }, ptr %a31 call void @finch_str_concat(ptr %a29, ptr %a30, ptr %a31) store { ptr, i64, i64 } %t28, ptr %a32 call void @finch_str_drop(ptr %a32) @@ -44875,7 +46523,7 @@ entry: call void @finch_str_drop(ptr %a41) %t42 = load { ptr, i64, i64 }, ptr %a37 store { ptr, i64, i64 } %t42, ptr %a44 - store { ptr, i64, i64 } { ptr @.str.2690, i64 8, i64 0 }, ptr %a45 + store { ptr, i64, i64 } { ptr @.str.2775, i64 8, i64 0 }, ptr %a45 call void @finch_str_concat(ptr %a43, ptr %a44, ptr %a45) store { ptr, i64, i64 } %t42, ptr %a46 call void @finch_str_drop(ptr %a46) @@ -44892,7 +46540,7 @@ entry: call void @finch_str_drop(ptr %a55) %t56 = load { ptr, i64, i64 }, ptr %a51 store { ptr, i64, i64 } %t56, ptr %a58 - store { ptr, i64, i64 } { ptr @.str.2691, i64 12, i64 0 }, ptr %a59 + store { ptr, i64, i64 } { ptr @.str.2776, i64 12, i64 0 }, ptr %a59 call void @finch_str_concat(ptr %a57, ptr %a58, ptr %a59) store { ptr, i64, i64 } %t56, ptr %a60 call void @finch_str_drop(ptr %a60) @@ -44908,7 +46556,7 @@ entry: call void @finch_str_drop(ptr %a68) %t69 = load { ptr, i64, i64 }, ptr %a64 store { ptr, i64, i64 } %t69, ptr %a71 - store { ptr, i64, i64 } { ptr @.str.2692, i64 8, i64 0 }, ptr %a72 + store { ptr, i64, i64 } { ptr @.str.2777, i64 8, i64 0 }, ptr %a72 call void @finch_str_concat(ptr %a70, ptr %a71, ptr %a72) store { ptr, i64, i64 } %t69, ptr %a73 call void @finch_str_drop(ptr %a73) @@ -44925,7 +46573,7 @@ entry: call void @finch_str_drop(ptr %a82) %t83 = load { ptr, i64, i64 }, ptr %a78 store { ptr, i64, i64 } %t83, ptr %a85 - store { ptr, i64, i64 } { ptr @.str.2693, i64 10, i64 0 }, ptr %a86 + store { ptr, i64, i64 } { ptr @.str.2778, i64 10, i64 0 }, ptr %a86 call void @finch_str_concat(ptr %a84, ptr %a85, ptr %a86) store { ptr, i64, i64 } %t83, ptr %a87 call void @finch_str_drop(ptr %a87) @@ -44942,7 +46590,7 @@ entry: call void @finch_str_drop(ptr %a96) %t97 = load { ptr, i64, i64 }, ptr %a92 store { ptr, i64, i64 } %t97, ptr %a99 - store { ptr, i64, i64 } { ptr @.str.2694, i64 1, i64 0 }, ptr %a100 + store { ptr, i64, i64 } { ptr @.str.2779, i64 1, i64 0 }, ptr %a100 call void @finch_str_concat(ptr %a98, ptr %a99, ptr %a100) store { ptr, i64, i64 } %t97, ptr %a101 call void @finch_str_drop(ptr %a101) @@ -44991,12 +46639,12 @@ entry: store { ptr, i64, i64 } %p3, ptr %a4 %t5 = load ptr, ptr %a1 %t6 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.2695, i64 20, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.2780, i64 20, i64 0 }, ptr %a8 store { ptr, i64, i64 } %t6, ptr %a9 call void @finch_str_concat(ptr %a7, ptr %a8, ptr %a9) %t10 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t10, ptr %a12 - store { ptr, i64, i64 } { ptr @.str.2696, i64 9, i64 0 }, ptr %a13 + store { ptr, i64, i64 } { ptr @.str.2781, i64 9, i64 0 }, ptr %a13 call void @finch_str_concat(ptr %a11, ptr %a12, ptr %a13) store { ptr, i64, i64 } %t10, ptr %a14 call void @finch_str_drop(ptr %a14) @@ -45013,7 +46661,7 @@ entry: call void @finch_str_drop(ptr %a23) %t24 = load { ptr, i64, i64 }, ptr %a19 store { ptr, i64, i64 } %t24, ptr %a26 - store { ptr, i64, i64 } { ptr @.str.2697, i64 12, i64 0 }, ptr %a27 + store { ptr, i64, i64 } { ptr @.str.2782, i64 12, i64 0 }, ptr %a27 call void @finch_str_concat(ptr %a25, ptr %a26, ptr %a27) store { ptr, i64, i64 } %t24, ptr %a28 call void @finch_str_drop(ptr %a28) @@ -45026,7 +46674,7 @@ entry: call void @finch_str_drop(ptr %a34) %t35 = load { ptr, i64, i64 }, ptr %a31 store { ptr, i64, i64 } %t35, ptr %a37 - store { ptr, i64, i64 } { ptr @.str.2698, i64 1, i64 0 }, ptr %a38 + store { ptr, i64, i64 } { ptr @.str.2783, i64 1, i64 0 }, ptr %a38 call void @finch_str_concat(ptr %a36, ptr %a37, ptr %a38) store { ptr, i64, i64 } %t35, ptr %a39 call void @finch_str_drop(ptr %a39) @@ -45374,31 +47022,31 @@ entry: store { ptr, i64, i64 } %t7, ptr %a8 %t9 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t9, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.2699, i64 4, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.2784, i64 4, i64 0 }, ptr %a11 %t12 = call i32 @finch_str_eq(ptr %a10, ptr %a11) %t13 = icmp ne i32 %t12, 0 - br label %logic.from4420 -logic.from4420: - br i1 %t13, label %logic.end4422, label %logic.rhs4421 -logic.rhs4421: + br label %logic.from4564 +logic.from4564: + br i1 %t13, label %logic.end4566, label %logic.rhs4565 +logic.rhs4565: %t14 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t14, ptr %a15 - store { ptr, i64, i64 } { ptr @.str.2700, i64 4, i64 0 }, ptr %a16 + store { ptr, i64, i64 } { ptr @.str.2785, i64 4, i64 0 }, ptr %a16 %t17 = call i32 @finch_str_eq(ptr %a15, ptr %a16) %t18 = icmp ne i32 %t17, 0 - br label %logic.rend4423 -logic.rend4423: - br label %logic.end4422 -logic.end4422: - %t19 = phi i1 [ true, %logic.from4420 ], [ %t18, %logic.rend4423 ] - br i1 %t19, label %then4424, label %endif4426 -then4424: + br label %logic.rend4567 +logic.rend4567: + br label %logic.end4566 +logic.end4566: + %t19 = phi i1 [ true, %logic.from4564 ], [ %t18, %logic.rend4567 ] + br i1 %t19, label %then4568, label %endif4570 +then4568: call void @finch_str_drop(ptr %a8) ret i64 -1 -endif4426: +endif4570: %t20 = load %S.ast.Type, ptr %a2 %t21 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t20) - store { ptr, i64, i64 } { ptr @.str.2701, i64 2, i64 0 }, ptr %a23 + store { ptr, i64, i64 } { ptr @.str.2786, i64 2, i64 0 }, ptr %a23 store { ptr, i64, i64 } %t21, ptr %a24 call void @finch_str_concat(ptr %a22, ptr %a23, ptr %a24) store { ptr, i64, i64 } %t21, ptr %a25 @@ -45407,38 +47055,38 @@ endif4426: store { ptr, i64, i64 } %t26, ptr %a27 %t28 = load ptr, ptr %a1 %t29 = icmp eq ptr %t28, null - br i1 %t29, label %panic4427, label %ok4428 -panic4427: - call void @finch_panic(ptr @.str.2702, i64 1952, ptr @.str.2703) + br i1 %t29, label %panic4571, label %ok4572 +panic4571: + call void @finch_panic(ptr @.str.2787, i64 2033, ptr @.str.2788) unreachable -ok4428: - %t30 = getelementptr inbounds %S.gen.Gen, ptr %t28, i32 0, i32 33 +ok4572: + %t30 = getelementptr inbounds %S.gen.Gen, ptr %t28, i32 0, i32 34 %t31 = load { ptr, i64, i64 }, ptr %a27 store { ptr, i64, i64 } %t31, ptr %a32 %t33 = call i64 @finch_map_find(ptr %t30, ptr %a32, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, i64 }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t34 = icmp sge i64 %t33, 0 - br i1 %t34, label %then4429, label %endif4431 -then4429: + br i1 %t34, label %then4573, label %endif4575 +then4573: %t35 = load ptr, ptr %a1 %t36 = icmp eq ptr %t35, null - br i1 %t36, label %panic4432, label %ok4433 -panic4432: - call void @finch_panic(ptr @.str.2704, i64 1953, ptr @.str.2705) + br i1 %t36, label %panic4576, label %ok4577 +panic4576: + call void @finch_panic(ptr @.str.2789, i64 2034, ptr @.str.2790) unreachable -ok4433: - %t37 = getelementptr inbounds %S.gen.Gen, ptr %t35, i32 0, i32 33 +ok4577: + %t37 = getelementptr inbounds %S.gen.Gen, ptr %t35, i32 0, i32 34 %t38 = load { ptr, i64, i64 }, ptr %a27 store { ptr, i64, i64 } %t38, ptr %a39 %t40 = call i64 @finch_map_find(ptr %t37, ptr %a39, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, i64 }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t41 = icmp slt i64 %t40, 0 - br i1 %t41, label %map.missing4434, label %map.found4435 -map.missing4434: + br i1 %t41, label %map.missing4578, label %map.found4579 +map.missing4578: store { ptr, i64, i64 } zeroinitializer, ptr %a42 store { ptr, i64, i64 } %t38, ptr %a43 call void @finch_buf_str(ptr %a42, ptr %a43, i32 1) - call void @finch_map_missing(ptr @.str.2706, i64 1953, ptr %a42) + call void @finch_map_missing(ptr @.str.2791, i64 2034, ptr %a42) unreachable -map.found4435: +map.found4579: %t44 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t37, i32 0, i32 0 %t45 = load ptr, ptr %t44 %t46 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t45, i64 %t40 @@ -45447,103 +47095,103 @@ map.found4435: call void @finch_str_drop(ptr %a27) call void @finch_str_drop(ptr %a8) ret i64 %t48 -endif4431: +endif4575: store i64 -1, ptr %a49 %t50 = load ptr, ptr %a1 %t51 = icmp eq ptr %t50, null - br i1 %t51, label %panic4436, label %ok4437 -panic4436: - call void @finch_panic(ptr @.str.2707, i64 1956, ptr @.str.2708) + br i1 %t51, label %panic4580, label %ok4581 +panic4580: + call void @finch_panic(ptr @.str.2792, i64 2037, ptr @.str.2793) unreachable -ok4437: - %t52 = getelementptr inbounds %S.gen.Gen, ptr %t50, i32 0, i32 34 +ok4581: + %t52 = getelementptr inbounds %S.gen.Gen, ptr %t50, i32 0, i32 35 %t53 = load { ptr, i64, i64 }, ptr %t52 %t54 = extractvalue { ptr, i64, i64 } %t53, 1 %t55 = icmp uge i64 0, %t54 - br i1 %t55, label %range4438, label %inrange4439 -range4438: - call void @finch_panic_index(ptr @.str.2709, i64 1956, i64 0, i64 %t54) + br i1 %t55, label %range4582, label %inrange4583 +range4582: + call void @finch_panic_index(ptr @.str.2794, i64 2037, i64 0, i64 %t54) unreachable -inrange4439: +inrange4583: %t56 = extractvalue { ptr, i64, i64 } %t53, 0 %t57 = getelementptr inbounds i64, ptr %t56, i64 0 %t58 = load i64, ptr %t57 store i64 %t58, ptr %a59 %t60 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t60, ptr %a61 - store { ptr, i64, i64 } { ptr @.str.2710, i64 4, i64 0 }, ptr %a62 + store { ptr, i64, i64 } { ptr @.str.2795, i64 4, i64 0 }, ptr %a62 %t63 = call i32 @finch_str_eq(ptr %a61, ptr %a62) %t64 = icmp ne i32 %t63, 0 - br i1 %t64, label %then4440, label %else4441 -then4440: + br i1 %t64, label %then4584, label %else4585 +then4584: %t65 = load ptr, ptr %a1 - %t66 = call i64 @finch.gen.basicType(ptr %t65, { ptr, i64, i64 } { ptr @.str.2711, i64 4, i64 0 }, i64 8, { ptr, i64, i64 } { ptr @.str.2712, i64 14, i64 0 }) + %t66 = call i64 @finch.gen.basicType(ptr %t65, { ptr, i64, i64 } { ptr @.str.2796, i64 4, i64 0 }, i64 8, { ptr, i64, i64 } { ptr @.str.2797, i64 14, i64 0 }) store i64 %t66, ptr %a49 - br label %endif4442 -else4441: + br label %endif4586 +else4585: %t67 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t67, ptr %a68 - store { ptr, i64, i64 } { ptr @.str.2713, i64 4, i64 0 }, ptr %a69 + store { ptr, i64, i64 } { ptr @.str.2798, i64 4, i64 0 }, ptr %a69 %t70 = call i32 @finch_str_eq(ptr %a68, ptr %a69) %t71 = icmp ne i32 %t70, 0 - br i1 %t71, label %then4443, label %else4444 -then4443: + br i1 %t71, label %then4587, label %else4588 +then4587: %t72 = load ptr, ptr %a1 - %t73 = call i64 @finch.gen.basicType(ptr %t72, { ptr, i64, i64 } { ptr @.str.2714, i64 4, i64 0 }, i64 8, { ptr, i64, i64 } { ptr @.str.2715, i64 18, i64 0 }) + %t73 = call i64 @finch.gen.basicType(ptr %t72, { ptr, i64, i64 } { ptr @.str.2799, i64 4, i64 0 }, i64 8, { ptr, i64, i64 } { ptr @.str.2800, i64 18, i64 0 }) store i64 %t73, ptr %a49 - br label %endif4445 -else4444: + br label %endif4589 +else4588: %t74 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t74, ptr %a75 - store { ptr, i64, i64 } { ptr @.str.2716, i64 3, i64 0 }, ptr %a76 + store { ptr, i64, i64 } { ptr @.str.2801, i64 3, i64 0 }, ptr %a76 %t77 = call i32 @finch_str_eq(ptr %a75, ptr %a76) %t78 = icmp ne i32 %t77, 0 - br i1 %t78, label %then4446, label %else4447 -then4446: + br i1 %t78, label %then4590, label %else4591 +then4590: %t79 = load ptr, ptr %a1 - %t80 = call i64 @finch.gen.basicType(ptr %t79, { ptr, i64, i64 } { ptr @.str.2717, i64 3, i64 0 }, i64 64, { ptr, i64, i64 } { ptr @.str.2718, i64 13, i64 0 }) + %t80 = call i64 @finch.gen.basicType(ptr %t79, { ptr, i64, i64 } { ptr @.str.2802, i64 3, i64 0 }, i64 64, { ptr, i64, i64 } { ptr @.str.2803, i64 13, i64 0 }) store i64 %t80, ptr %a49 - br label %endif4448 -else4447: + br label %endif4592 +else4591: %t81 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t81, ptr %a82 - store { ptr, i64, i64 } { ptr @.str.2719, i64 5, i64 0 }, ptr %a83 + store { ptr, i64, i64 } { ptr @.str.2804, i64 5, i64 0 }, ptr %a83 %t84 = call i32 @finch_str_eq(ptr %a82, ptr %a83) %t85 = icmp ne i32 %t84, 0 - br i1 %t85, label %then4449, label %else4450 -then4449: + br i1 %t85, label %then4593, label %else4594 +then4593: %t86 = load ptr, ptr %a1 - %t87 = call i64 @finch.gen.basicType(ptr %t86, { ptr, i64, i64 } { ptr @.str.2720, i64 5, i64 0 }, i64 64, { ptr, i64, i64 } { ptr @.str.2721, i64 12, i64 0 }) + %t87 = call i64 @finch.gen.basicType(ptr %t86, { ptr, i64, i64 } { ptr @.str.2805, i64 5, i64 0 }, i64 64, { ptr, i64, i64 } { ptr @.str.2806, i64 12, i64 0 }) store i64 %t87, ptr %a49 - br label %endif4451 -else4450: + br label %endif4595 +else4594: %t88 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t88, ptr %a89 - store { ptr, i64, i64 } { ptr @.str.2722, i64 3, i64 0 }, ptr %a90 + store { ptr, i64, i64 } { ptr @.str.2807, i64 3, i64 0 }, ptr %a90 %t91 = call i32 @finch_str_eq(ptr %a89, ptr %a90) %t92 = icmp ne i32 %t91, 0 - br i1 %t92, label %then4452, label %else4453 -then4452: + br i1 %t92, label %then4596, label %else4597 +then4596: %t93 = load ptr, ptr %a1 - %t94 = call i64 @finch.gen.basicType(ptr %t93, { ptr, i64, i64 } { ptr @.str.2723, i64 3, i64 0 }, i64 32, { ptr, i64, i64 } { ptr @.str.2724, i64 12, i64 0 }) + %t94 = call i64 @finch.gen.basicType(ptr %t93, { ptr, i64, i64 } { ptr @.str.2808, i64 3, i64 0 }, i64 32, { ptr, i64, i64 } { ptr @.str.2809, i64 12, i64 0 }) store i64 %t94, ptr %a49 - br label %endif4454 -else4453: + br label %endif4598 +else4597: %t95 = load %S.ast.Type, ptr %a2 %t96 = call i1 @finch.gen.isInt(%S.ast.Type %t95) - br i1 %t96, label %then4455, label %else4456 -then4455: - store { ptr, i64, i64 } { ptr @.str.2725, i64 15, i64 0 }, ptr %a97 + br i1 %t96, label %then4599, label %else4600 +then4599: + store { ptr, i64, i64 } { ptr @.str.2810, i64 15, i64 0 }, ptr %a97 %t98 = load %S.ast.Type, ptr %a2 %t99 = call i1 @finch.gen.isSigned(%S.ast.Type %t98) - br i1 %t99, label %then4458, label %endif4460 -then4458: + br i1 %t99, label %then4602, label %endif4604 +then4602: %t100 = load { ptr, i64, i64 }, ptr %a97 - store { ptr, i64, i64 } { ptr @.str.2726, i64 13, i64 0 }, ptr %a97 + store { ptr, i64, i64 } { ptr @.str.2811, i64 13, i64 0 }, ptr %a97 store { ptr, i64, i64 } %t100, ptr %a101 call void @finch_str_drop(ptr %a101) - br label %endif4460 -endif4460: + br label %endif4604 +endif4604: %t102 = load ptr, ptr %a1 %t103 = load { ptr, i64, i64 }, ptr %a8 %t104 = load %S.ast.Type, ptr %a2 @@ -45552,22 +47200,22 @@ endif4460: %t107 = call i64 @finch.gen.basicType(ptr %t102, { ptr, i64, i64 } %t103, i64 %t105, { ptr, i64, i64 } %t106) store i64 %t107, ptr %a49 call void @finch_str_drop(ptr %a97) - br label %endif4457 -else4456: + br label %endif4601 +else4600: %t108 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t108, ptr %a109 - store { ptr, i64, i64 } { ptr @.str.2727, i64 4, i64 0 }, ptr %a110 + store { ptr, i64, i64 } { ptr @.str.2812, i64 4, i64 0 }, ptr %a110 %t111 = call i32 @finch_str_eq(ptr %a109, ptr %a110) %t112 = icmp ne i32 %t111, 0 - br i1 %t112, label %then4461, label %else4462 -then4461: + br i1 %t112, label %then4605, label %else4606 +then4605: %t113 = load ptr, ptr %a1 %t114 = icmp eq ptr %t113, null - br i1 %t114, label %panic4464, label %ok4465 -panic4464: - call void @finch_panic(ptr @.str.2728, i64 1974, ptr @.str.2729) + br i1 %t114, label %panic4608, label %ok4609 +panic4608: + call void @finch_panic(ptr @.str.2813, i64 2055, ptr @.str.2814) unreachable -ok4465: +ok4609: %t115 = getelementptr inbounds %S.gen.Gen, ptr %t113, i32 0, i32 21 %t116 = load ptr, ptr %a1 %t117 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 @@ -45578,11 +47226,11 @@ ok4465: %t122 = load { ptr, i64, i64 }, ptr %t115 %t123 = extractvalue { ptr, i64, i64 } %t122, 1 %t124 = icmp uge i64 %t121, %t123 - br i1 %t124, label %range4466, label %inrange4467 -range4466: - call void @finch_panic_index(ptr @.str.2730, i64 1974, i64 %t121, i64 %t123) + br i1 %t124, label %range4610, label %inrange4611 +range4610: + call void @finch_panic_index(ptr @.str.2815, i64 2055, i64 %t121, i64 %t123) unreachable -inrange4467: +inrange4611: %t125 = extractvalue { ptr, i64, i64 } %t122, 0 %t126 = getelementptr inbounds %S.gen.EnumDef, ptr %t125, i64 %t121 %t127 = load %S.gen.EnumDef, ptr %t126 @@ -45595,12 +47243,12 @@ inrange4467: %t134 = getelementptr inbounds { ptr, i64, i64 }, ptr %t133, i32 0, i32 1 %t135 = load i64, ptr %t134 store i64 0, ptr %a136 - br label %for.cond4468 -for.cond4468: + br label %for.cond4612 +for.cond4612: %t137 = load i64, ptr %a136 %t138 = icmp slt i64 %t137, %t135 - br i1 %t138, label %for.body4469, label %for.end4471 -for.body4469: + br i1 %t138, label %for.body4613, label %for.end4615 +for.body4613: %t139 = getelementptr inbounds { ptr, i64, i64 }, ptr %a132, i32 0, i32 1 %t140 = load ptr, ptr %a1 %t141 = getelementptr inbounds %S.gen.EnumDef, ptr %a131, i32 0, i32 2 @@ -45608,20 +47256,20 @@ for.body4469: %t143 = load { ptr, i64, i64 }, ptr %t141 %t144 = extractvalue { ptr, i64, i64 } %t143, 1 %t145 = icmp uge i64 %t142, %t144 - br i1 %t145, label %range4472, label %inrange4473 -range4472: - call void @finch_panic_index(ptr @.str.2732, i64 1977, i64 %t142, i64 %t144) + br i1 %t145, label %range4616, label %inrange4617 +range4616: + call void @finch_panic_index(ptr @.str.2817, i64 2058, i64 %t142, i64 %t144) unreachable -inrange4473: +inrange4617: %t146 = extractvalue { ptr, i64, i64 } %t143, 0 %t147 = getelementptr inbounds { ptr, i64, i64 }, ptr %t146, i64 %t142 %t148 = load { ptr, i64, i64 }, ptr %t147 - store { ptr, i64, i64 } { ptr @.str.2731, i64 21, i64 0 }, ptr %a150 + store { ptr, i64, i64 } { ptr @.str.2816, i64 21, i64 0 }, ptr %a150 store { ptr, i64, i64 } %t148, ptr %a151 call void @finch_str_concat(ptr %a149, ptr %a150, ptr %a151) %t152 = load { ptr, i64, i64 }, ptr %a149 store { ptr, i64, i64 } %t152, ptr %a154 - store { ptr, i64, i64 } { ptr @.str.2733, i64 10, i64 0 }, ptr %a155 + store { ptr, i64, i64 } { ptr @.str.2818, i64 10, i64 0 }, ptr %a155 call void @finch_str_concat(ptr %a153, ptr %a154, ptr %a155) store { ptr, i64, i64 } %t152, ptr %a156 call void @finch_str_drop(ptr %a156) @@ -45631,11 +47279,11 @@ inrange4473: %t160 = load { ptr, i64, i64 }, ptr %t158 %t161 = extractvalue { ptr, i64, i64 } %t160, 1 %t162 = icmp uge i64 %t159, %t161 - br i1 %t162, label %range4474, label %inrange4475 -range4474: - call void @finch_panic_index(ptr @.str.2734, i64 1977, i64 %t159, i64 %t161) + br i1 %t162, label %range4618, label %inrange4619 +range4618: + call void @finch_panic_index(ptr @.str.2819, i64 2058, i64 %t159, i64 %t161) unreachable -inrange4475: +inrange4619: %t163 = extractvalue { ptr, i64, i64 } %t160, 0 %t164 = getelementptr inbounds i64, ptr %t163, i64 %t159 %t165 = load i64, ptr %t164 @@ -45650,7 +47298,7 @@ inrange4475: call void @finch_str_drop(ptr %a172) %t173 = load { ptr, i64, i64 }, ptr %a168 store { ptr, i64, i64 } %t173, ptr %a175 - store { ptr, i64, i64 } { ptr @.str.2735, i64 1, i64 0 }, ptr %a176 + store { ptr, i64, i64 } { ptr @.str.2820, i64 1, i64 0 }, ptr %a176 call void @finch_str_concat(ptr %a174, ptr %a175, ptr %a176) store { ptr, i64, i64 } %t173, ptr %a177 call void @finch_str_drop(ptr %a177) @@ -45666,22 +47314,22 @@ inrange4475: %t185 = getelementptr inbounds { ptr, i64, i64 }, ptr %t184, i64 %t182 store { ptr, i64, i64 } %t181, ptr %t185 store i64 %t183, ptr %t139 - br label %for.step4470 -for.step4470: + br label %for.step4614 +for.step4614: %t186 = load i64, ptr %a136 %t187 = add i64 %t186, 1 store i64 %t187, ptr %a136 - br label %for.cond4468 -for.end4471: + br label %for.cond4612 +for.end4615: %t188 = load ptr, ptr %a1 %t189 = getelementptr inbounds %S.gen.EnumDef, ptr %a131, i32 0, i32 1 %t190 = load { ptr, i64, i64 }, ptr %t189 - store { ptr, i64, i64 } { ptr @.str.2736, i64 54, i64 0 }, ptr %a192 + store { ptr, i64, i64 } { ptr @.str.2821, i64 54, i64 0 }, ptr %a192 store { ptr, i64, i64 } %t190, ptr %a193 call void @finch_str_concat(ptr %a191, ptr %a192, ptr %a193) %t194 = load { ptr, i64, i64 }, ptr %a191 store { ptr, i64, i64 } %t194, ptr %a196 - store { ptr, i64, i64 } { ptr @.str.2737, i64 10, i64 0 }, ptr %a197 + store { ptr, i64, i64 } { ptr @.str.2822, i64 10, i64 0 }, ptr %a197 call void @finch_str_concat(ptr %a195, ptr %a196, ptr %a197) store { ptr, i64, i64 } %t194, ptr %a198 call void @finch_str_drop(ptr %a198) @@ -45698,13 +47346,13 @@ for.end4471: call void @finch_str_drop(ptr %a207) %t208 = load { ptr, i64, i64 }, ptr %a203 store { ptr, i64, i64 } %t208, ptr %a210 - store { ptr, i64, i64 } { ptr @.str.2738, i64 24, i64 0 }, ptr %a211 + store { ptr, i64, i64 } { ptr @.str.2823, i64 24, i64 0 }, ptr %a211 call void @finch_str_concat(ptr %a209, ptr %a210, ptr %a211) store { ptr, i64, i64 } %t208, ptr %a212 call void @finch_str_drop(ptr %a212) %t213 = load { ptr, i64, i64 }, ptr %a209 %t214 = getelementptr inbounds { ptr, i64, i64 }, ptr %a132, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.2739, i64 2, i64 0 }, ptr %a215 + store { ptr, i64, i64 } { ptr @.str.2824, i64 2, i64 0 }, ptr %a215 call void @finch_str_join(ptr %a216, ptr %a132, ptr %a215) %t217 = load { ptr, i64, i64 }, ptr %a216 store { ptr, i64, i64 } %t213, ptr %a219 @@ -45716,7 +47364,7 @@ for.end4471: call void @finch_str_drop(ptr %a222) %t223 = load { ptr, i64, i64 }, ptr %a218 store { ptr, i64, i64 } %t223, ptr %a225 - store { ptr, i64, i64 } { ptr @.str.2740, i64 2, i64 0 }, ptr %a226 + store { ptr, i64, i64 } { ptr @.str.2825, i64 2, i64 0 }, ptr %a226 call void @finch_str_concat(ptr %a224, ptr %a225, ptr %a226) store { ptr, i64, i64 } %t223, ptr %a227 call void @finch_str_drop(ptr %a227) @@ -45727,20 +47375,20 @@ for.end4471: store i64 %t229, ptr %a49 call void @finch.drop.arr_str(ptr %a132) call void @finch.drop.S_gen_EnumDef(ptr %a131) - br label %endif4463 -else4462: + br label %endif4607 +else4606: %t231 = load ptr, ptr %a1 - %t232 = call i64 @finch.gen.md(ptr %t231, { ptr, i64, i64 } { ptr @.str.2741, i64 0, i64 0 }) + %t232 = call i64 @finch.gen.md(ptr %t231, { ptr, i64, i64 } { ptr @.str.2826, i64 0, i64 0 }) store i64 %t232, ptr %a49 %t233 = load i64, ptr %a49 %t234 = load ptr, ptr %a1 %t235 = icmp eq ptr %t234, null - br i1 %t235, label %panic4476, label %ok4477 -panic4476: - call void @finch_panic(ptr @.str.2742, i64 1983, ptr @.str.2743) + br i1 %t235, label %panic4620, label %ok4621 +panic4620: + call void @finch_panic(ptr @.str.2827, i64 2064, ptr @.str.2828) unreachable -ok4477: - %t236 = getelementptr inbounds %S.gen.Gen, ptr %t234, i32 0, i32 33 +ok4621: + %t236 = getelementptr inbounds %S.gen.Gen, ptr %t234, i32 0, i32 34 %t237 = load { ptr, i64, i64 }, ptr %a27 store { ptr, i64, i64 } %t237, ptr %a238 store i32 0, ptr %a239 @@ -45750,103 +47398,103 @@ ok4477: %t243 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t242, i64 %t240 %t244 = load i32, ptr %a239 %t245 = icmp ne i32 %t244, 0 - br i1 %t245, label %map.new4478, label %map.have4479 -map.new4478: + br i1 %t245, label %map.new4622, label %map.have4623 +map.new4622: %t246 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t243, i32 0, i32 1 call void @finch_str_copy(ptr %t246, ptr %a238) %t247 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t243, i32 0, i32 2 store i64 0, ptr %t247 - br label %map.have4479 -map.have4479: + br label %map.have4623 +map.have4623: %t248 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t243, i32 0, i32 2 store i64 %t233, ptr %t248 %t249 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t249, ptr %a250 - store { ptr, i64, i64 } { ptr @.str.2744, i64 3, i64 0 }, ptr %a251 + store { ptr, i64, i64 } { ptr @.str.2829, i64 3, i64 0 }, ptr %a251 %t252 = call i32 @finch_str_eq(ptr %a250, ptr %a251) %t253 = icmp ne i32 %t252, 0 - br i1 %t253, label %then4480, label %else4481 -then4480: + br i1 %t253, label %then4624, label %else4625 +then4624: store i64 -1, ptr %a254 %t255 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t256 = getelementptr inbounds { ptr, i64, i64 }, ptr %t255, i32 0, i32 1 %t257 = load i64, ptr %t256 %t258 = icmp sgt i64 %t257, 0 - br i1 %t258, label %then4483, label %endif4485 -then4483: + br i1 %t258, label %then4627, label %endif4629 +then4627: %t259 = load ptr, ptr %a1 %t260 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t261 = load { ptr, i64, i64 }, ptr %t260 %t262 = extractvalue { ptr, i64, i64 } %t261, 1 %t263 = icmp uge i64 0, %t262 - br i1 %t263, label %range4486, label %inrange4487 -range4486: - call void @finch_panic_index(ptr @.str.2745, i64 1987, i64 0, i64 %t262) + br i1 %t263, label %range4630, label %inrange4631 +range4630: + call void @finch_panic_index(ptr @.str.2830, i64 2068, i64 0, i64 %t262) unreachable -inrange4487: +inrange4631: %t264 = extractvalue { ptr, i64, i64 } %t261, 0 %t265 = getelementptr inbounds %S.ast.Type, ptr %t264, i64 0 %t266 = load %S.ast.Type, ptr %t265 %t267 = call i64 @finch.gen.diType(ptr %t259, %S.ast.Type %t266) store i64 %t267, ptr %a254 - br label %endif4485 -endif4485: + br label %endif4629 +endif4629: %t268 = load i64, ptr %a254 %t269 = call { ptr, i64, i64 } @finch.gen.mdRef(i64 %t268) - store { ptr, i64, i64 } { ptr @.str.2746, i64 51, i64 0 }, ptr %a271 + store { ptr, i64, i64 } { ptr @.str.2831, i64 51, i64 0 }, ptr %a271 store { ptr, i64, i64 } %t269, ptr %a272 call void @finch_str_concat(ptr %a270, ptr %a271, ptr %a272) store { ptr, i64, i64 } %t269, ptr %a273 call void @finch_str_drop(ptr %a273) %t274 = load { ptr, i64, i64 }, ptr %a270 store { ptr, i64, i64 } %t274, ptr %a276 - store { ptr, i64, i64 } { ptr @.str.2747, i64 11, i64 0 }, ptr %a277 + store { ptr, i64, i64 } { ptr @.str.2832, i64 11, i64 0 }, ptr %a277 call void @finch_str_concat(ptr %a275, ptr %a276, ptr %a277) store { ptr, i64, i64 } %t274, ptr %a278 call void @finch_str_drop(ptr %a278) %t279 = load { ptr, i64, i64 }, ptr %a275 %t280 = load ptr, ptr %a1 %t281 = icmp eq ptr %t280, null - br i1 %t281, label %panic4488, label %ok4489 -panic4488: - call void @finch_panic(ptr @.str.2748, i64 1989, ptr @.str.2749) + br i1 %t281, label %panic4632, label %ok4633 +panic4632: + call void @finch_panic(ptr @.str.2833, i64 2070, ptr @.str.2834) unreachable -ok4489: - %t282 = getelementptr inbounds %S.gen.Gen, ptr %t280, i32 0, i32 32 +ok4633: + %t282 = getelementptr inbounds %S.gen.Gen, ptr %t280, i32 0, i32 33 %t283 = load i64, ptr %a49 %t284 = load { ptr, i64, i64 }, ptr %t282 %t285 = extractvalue { ptr, i64, i64 } %t284, 1 %t286 = icmp uge i64 %t283, %t285 - br i1 %t286, label %range4490, label %inrange4491 -range4490: - call void @finch_panic_index(ptr @.str.2750, i64 1989, i64 %t283, i64 %t285) + br i1 %t286, label %range4634, label %inrange4635 +range4634: + call void @finch_panic_index(ptr @.str.2835, i64 2070, i64 %t283, i64 %t285) unreachable -inrange4491: +inrange4635: %t287 = extractvalue { ptr, i64, i64 } %t284, 0 %t288 = getelementptr inbounds { ptr, i64, i64 }, ptr %t287, i64 %t283 %t289 = load { ptr, i64, i64 }, ptr %t288 store { ptr, i64, i64 } %t279, ptr %t288 store { ptr, i64, i64 } %t289, ptr %a290 call void @finch_str_drop(ptr %a290) - br label %endif4482 -else4481: + br label %endif4626 +else4625: %t291 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t291, ptr %a292 - store { ptr, i64, i64 } { ptr @.str.2751, i64 5, i64 0 }, ptr %a293 + store { ptr, i64, i64 } { ptr @.str.2836, i64 5, i64 0 }, ptr %a293 %t294 = call i32 @finch_str_eq(ptr %a292, ptr %a293) %t295 = icmp ne i32 %t294, 0 - br i1 %t295, label %then4492, label %else4493 -then4492: + br i1 %t295, label %then4636, label %else4637 +then4636: %t296 = load ptr, ptr %a1 %t297 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t298 = load { ptr, i64, i64 }, ptr %t297 %t299 = extractvalue { ptr, i64, i64 } %t298, 1 %t300 = icmp uge i64 0, %t299 - br i1 %t300, label %range4495, label %inrange4496 -range4495: - call void @finch_panic_index(ptr @.str.2752, i64 1991, i64 0, i64 %t299) + br i1 %t300, label %range4639, label %inrange4640 +range4639: + call void @finch_panic_index(ptr @.str.2837, i64 2072, i64 0, i64 %t299) unreachable -inrange4496: +inrange4640: %t301 = extractvalue { ptr, i64, i64 } %t298, 0 %t302 = getelementptr inbounds %S.ast.Type, ptr %t301, i64 0 %t303 = load %S.ast.Type, ptr %t302 @@ -45857,14 +47505,14 @@ inrange4496: %t308 = load i64, ptr %t307 call void @finch_str_from_int(ptr %a309, i64 %t308) %t310 = load { ptr, i64, i64 }, ptr %a309 - store { ptr, i64, i64 } { ptr @.str.2753, i64 19, i64 0 }, ptr %a312 + store { ptr, i64, i64 } { ptr @.str.2838, i64 19, i64 0 }, ptr %a312 store { ptr, i64, i64 } %t310, ptr %a313 call void @finch_str_concat(ptr %a311, ptr %a312, ptr %a313) store { ptr, i64, i64 } %t310, ptr %a314 call void @finch_str_drop(ptr %a314) %t315 = load { ptr, i64, i64 }, ptr %a311 store { ptr, i64, i64 } %t315, ptr %a317 - store { ptr, i64, i64 } { ptr @.str.2754, i64 1, i64 0 }, ptr %a318 + store { ptr, i64, i64 } { ptr @.str.2839, i64 1, i64 0 }, ptr %a318 call void @finch_str_concat(ptr %a316, ptr %a317, ptr %a318) store { ptr, i64, i64 } %t315, ptr %a319 call void @finch_str_drop(ptr %a319) @@ -45878,24 +47526,24 @@ inrange4496: %t326 = load { ptr, i64, i64 }, ptr %t325 %t327 = extractvalue { ptr, i64, i64 } %t326, 1 %t328 = icmp uge i64 0, %t327 - br i1 %t328, label %range4497, label %inrange4498 -range4497: - call void @finch_panic_index(ptr @.str.2756, i64 1993, i64 0, i64 %t327) + br i1 %t328, label %range4641, label %inrange4642 +range4641: + call void @finch_panic_index(ptr @.str.2841, i64 2074, i64 0, i64 %t327) unreachable -inrange4498: +inrange4642: %t329 = extractvalue { ptr, i64, i64 } %t326, 0 %t330 = getelementptr inbounds %S.ast.Type, ptr %t329, i64 0 %t331 = load %S.ast.Type, ptr %t330 %t332 = call i64 @finch.gen.diType(ptr %t324, %S.ast.Type %t331) %t333 = call { ptr, i64, i64 } @finch.gen.mdRef(i64 %t332) - store { ptr, i64, i64 } { ptr @.str.2755, i64 51, i64 0 }, ptr %a335 + store { ptr, i64, i64 } { ptr @.str.2840, i64 51, i64 0 }, ptr %a335 store { ptr, i64, i64 } %t333, ptr %a336 call void @finch_str_concat(ptr %a334, ptr %a335, ptr %a336) store { ptr, i64, i64 } %t333, ptr %a337 call void @finch_str_drop(ptr %a337) %t338 = load { ptr, i64, i64 }, ptr %a334 store { ptr, i64, i64 } %t338, ptr %a340 - store { ptr, i64, i64 } { ptr @.str.2757, i64 8, i64 0 }, ptr %a341 + store { ptr, i64, i64 } { ptr @.str.2842, i64 8, i64 0 }, ptr %a341 call void @finch_str_concat(ptr %a339, ptr %a340, ptr %a341) store { ptr, i64, i64 } %t338, ptr %a342 call void @finch_str_drop(ptr %a342) @@ -45917,7 +47565,7 @@ inrange4498: call void @finch_str_drop(ptr %a356) %t357 = load { ptr, i64, i64 }, ptr %a352 store { ptr, i64, i64 } %t357, ptr %a359 - store { ptr, i64, i64 } { ptr @.str.2758, i64 15, i64 0 }, ptr %a360 + store { ptr, i64, i64 } { ptr @.str.2843, i64 15, i64 0 }, ptr %a360 call void @finch_str_concat(ptr %a358, ptr %a359, ptr %a360) store { ptr, i64, i64 } %t357, ptr %a361 call void @finch_str_drop(ptr %a361) @@ -45934,75 +47582,75 @@ inrange4498: call void @finch_str_drop(ptr %a370) %t371 = load { ptr, i64, i64 }, ptr %a366 store { ptr, i64, i64 } %t371, ptr %a373 - store { ptr, i64, i64 } { ptr @.str.2759, i64 2, i64 0 }, ptr %a374 + store { ptr, i64, i64 } { ptr @.str.2844, i64 2, i64 0 }, ptr %a374 call void @finch_str_concat(ptr %a372, ptr %a373, ptr %a374) store { ptr, i64, i64 } %t371, ptr %a375 call void @finch_str_drop(ptr %a375) %t376 = load { ptr, i64, i64 }, ptr %a372 %t377 = load ptr, ptr %a1 %t378 = icmp eq ptr %t377, null - br i1 %t378, label %panic4499, label %ok4500 -panic4499: - call void @finch_panic(ptr @.str.2760, i64 1993, ptr @.str.2761) + br i1 %t378, label %panic4643, label %ok4644 +panic4643: + call void @finch_panic(ptr @.str.2845, i64 2074, ptr @.str.2846) unreachable -ok4500: - %t379 = getelementptr inbounds %S.gen.Gen, ptr %t377, i32 0, i32 32 +ok4644: + %t379 = getelementptr inbounds %S.gen.Gen, ptr %t377, i32 0, i32 33 %t380 = load i64, ptr %a49 %t381 = load { ptr, i64, i64 }, ptr %t379 %t382 = extractvalue { ptr, i64, i64 } %t381, 1 %t383 = icmp uge i64 %t380, %t382 - br i1 %t383, label %range4501, label %inrange4502 -range4501: - call void @finch_panic_index(ptr @.str.2762, i64 1993, i64 %t380, i64 %t382) + br i1 %t383, label %range4645, label %inrange4646 +range4645: + call void @finch_panic_index(ptr @.str.2847, i64 2074, i64 %t380, i64 %t382) unreachable -inrange4502: +inrange4646: %t384 = extractvalue { ptr, i64, i64 } %t381, 0 %t385 = getelementptr inbounds { ptr, i64, i64 }, ptr %t384, i64 %t380 %t386 = load { ptr, i64, i64 }, ptr %t385 store { ptr, i64, i64 } %t376, ptr %t385 store { ptr, i64, i64 } %t386, ptr %a387 call void @finch_str_drop(ptr %a387) - br label %endif4494 -else4493: + br label %endif4638 +else4637: %t388 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t388, ptr %a389 - store { ptr, i64, i64 } { ptr @.str.2763, i64 3, i64 0 }, ptr %a390 + store { ptr, i64, i64 } { ptr @.str.2848, i64 3, i64 0 }, ptr %a390 %t391 = call i32 @finch_str_eq(ptr %a389, ptr %a390) %t392 = icmp ne i32 %t391, 0 - br label %logic.from4503 -logic.from4503: - br i1 %t392, label %logic.end4505, label %logic.rhs4504 -logic.rhs4504: + br label %logic.from4647 +logic.from4647: + br i1 %t392, label %logic.end4649, label %logic.rhs4648 +logic.rhs4648: %t393 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t393, ptr %a394 - store { ptr, i64, i64 } { ptr @.str.2764, i64 5, i64 0 }, ptr %a395 + store { ptr, i64, i64 } { ptr @.str.2849, i64 5, i64 0 }, ptr %a395 %t396 = call i32 @finch_str_eq(ptr %a394, ptr %a395) %t397 = icmp ne i32 %t396, 0 - br label %logic.rend4506 -logic.rend4506: - br label %logic.end4505 -logic.end4505: - %t398 = phi i1 [ true, %logic.from4503 ], [ %t397, %logic.rend4506 ] - br i1 %t398, label %then4507, label %else4508 -then4507: - %t399 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.2765, i64 4, i64 0 }) + br label %logic.rend4650 +logic.rend4650: + br label %logic.end4649 +logic.end4649: + %t398 = phi i1 [ true, %logic.from4647 ], [ %t397, %logic.rend4650 ] + br i1 %t398, label %then4651, label %else4652 +then4651: + %t399 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.2850, i64 4, i64 0 }) store %S.ast.Type %t399, ptr %a400 %t401 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t401, ptr %a402 - store { ptr, i64, i64 } { ptr @.str.2766, i64 5, i64 0 }, ptr %a403 + store { ptr, i64, i64 } { ptr @.str.2851, i64 5, i64 0 }, ptr %a403 %t404 = call i32 @finch_str_eq(ptr %a402, ptr %a403) %t405 = icmp ne i32 %t404, 0 - br i1 %t405, label %then4510, label %endif4512 -then4510: + br i1 %t405, label %then4654, label %endif4656 +then4654: %t406 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t407 = load { ptr, i64, i64 }, ptr %t406 %t408 = extractvalue { ptr, i64, i64 } %t407, 1 %t409 = icmp uge i64 0, %t408 - br i1 %t409, label %range4513, label %inrange4514 -range4513: - call void @finch_panic_index(ptr @.str.2767, i64 1997, i64 0, i64 %t408) + br i1 %t409, label %range4657, label %inrange4658 +range4657: + call void @finch_panic_index(ptr @.str.2852, i64 2078, i64 0, i64 %t408) unreachable -inrange4514: +inrange4658: %t410 = extractvalue { ptr, i64, i64 } %t407, 0 %t411 = getelementptr inbounds %S.ast.Type, ptr %t410, i64 0 %t412 = load %S.ast.Type, ptr %t411 @@ -46013,21 +47661,21 @@ inrange4514: store %S.ast.Type %t415, ptr %a400 store %S.ast.Type %t416, ptr %a417 call void @finch.drop.S_ast_Type(ptr %a417) - br label %endif4512 -endif4512: + br label %endif4656 +endif4656: %t418 = load ptr, ptr %a1 %t419 = load ptr, ptr %a1 %t420 = load %S.ast.Type, ptr %a400 %t421 = call i64 @finch.gen.diType(ptr %t419, %S.ast.Type %t420) %t422 = call { ptr, i64, i64 } @finch.gen.mdRef(i64 %t421) - store { ptr, i64, i64 } { ptr @.str.2768, i64 51, i64 0 }, ptr %a424 + store { ptr, i64, i64 } { ptr @.str.2853, i64 51, i64 0 }, ptr %a424 store { ptr, i64, i64 } %t422, ptr %a425 call void @finch_str_concat(ptr %a423, ptr %a424, ptr %a425) store { ptr, i64, i64 } %t422, ptr %a426 call void @finch_str_drop(ptr %a426) %t427 = load { ptr, i64, i64 }, ptr %a423 store { ptr, i64, i64 } %t427, ptr %a429 - store { ptr, i64, i64 } { ptr @.str.2769, i64 11, i64 0 }, ptr %a430 + store { ptr, i64, i64 } { ptr @.str.2854, i64 11, i64 0 }, ptr %a430 call void @finch_str_concat(ptr %a428, ptr %a429, ptr %a430) store { ptr, i64, i64 } %t427, ptr %a431 call void @finch_str_drop(ptr %a431) @@ -46037,7 +47685,7 @@ endif4512: call void @finch_str_drop(ptr %a434) store i64 %t433, ptr %a435 %t436 = load ptr, ptr %a1 - %t437 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.2770, i64 3, i64 0 }) + %t437 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.2855, i64 3, i64 0 }) %t438 = call i64 @finch.gen.diType(ptr %t436, %S.ast.Type %t437) store %S.ast.Type %t437, ptr %a439 call void @finch.drop.S_ast_Type(ptr %a439) @@ -46046,30 +47694,30 @@ endif4512: %t442 = load i64, ptr %a49 %t443 = load i64, ptr %a59 %t444 = load i64, ptr %a435 - %t445 = call i64 @finch.gen.dbgMember(ptr %t441, { ptr, i64, i64 } { ptr @.str.2771, i64 3, i64 0 }, i64 %t442, i64 %t443, i64 0, i64 %t444, i64 64, i64 0) + %t445 = call i64 @finch.gen.dbgMember(ptr %t441, { ptr, i64, i64 } { ptr @.str.2856, i64 3, i64 0 }, i64 %t442, i64 %t443, i64 0, i64 %t444, i64 64, i64 0) store i64 %t445, ptr %a446 %t447 = load ptr, ptr %a1 %t448 = load i64, ptr %a49 %t449 = load i64, ptr %a59 %t450 = load i64, ptr %a440 - %t451 = call i64 @finch.gen.dbgMember(ptr %t447, { ptr, i64, i64 } { ptr @.str.2772, i64 3, i64 0 }, i64 %t448, i64 %t449, i64 0, i64 %t450, i64 64, i64 64) + %t451 = call i64 @finch.gen.dbgMember(ptr %t447, { ptr, i64, i64 } { ptr @.str.2857, i64 3, i64 0 }, i64 %t448, i64 %t449, i64 0, i64 %t450, i64 64, i64 64) store i64 %t451, ptr %a452 %t453 = load ptr, ptr %a1 %t454 = load i64, ptr %a49 %t455 = load i64, ptr %a59 %t456 = load i64, ptr %a440 - %t457 = call i64 @finch.gen.dbgMember(ptr %t453, { ptr, i64, i64 } { ptr @.str.2773, i64 3, i64 0 }, i64 %t454, i64 %t455, i64 0, i64 %t456, i64 64, i64 128) + %t457 = call i64 @finch.gen.dbgMember(ptr %t453, { ptr, i64, i64 } { ptr @.str.2858, i64 3, i64 0 }, i64 %t454, i64 %t455, i64 0, i64 %t456, i64 64, i64 128) store i64 %t457, ptr %a458 %t459 = load %S.ast.Type, ptr %a2 %t460 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t459) - store { ptr, i64, i64 } { ptr @.str.2774, i64 52, i64 0 }, ptr %a462 + store { ptr, i64, i64 } { ptr @.str.2859, i64 52, i64 0 }, ptr %a462 store { ptr, i64, i64 } %t460, ptr %a463 call void @finch_str_concat(ptr %a461, ptr %a462, ptr %a463) store { ptr, i64, i64 } %t460, ptr %a464 call void @finch_str_drop(ptr %a464) %t465 = load { ptr, i64, i64 }, ptr %a461 store { ptr, i64, i64 } %t465, ptr %a467 - store { ptr, i64, i64 } { ptr @.str.2775, i64 10, i64 0 }, ptr %a468 + store { ptr, i64, i64 } { ptr @.str.2860, i64 10, i64 0 }, ptr %a468 call void @finch_str_concat(ptr %a466, ptr %a467, ptr %a468) store { ptr, i64, i64 } %t465, ptr %a469 call void @finch_str_drop(ptr %a469) @@ -46086,7 +47734,7 @@ endif4512: call void @finch_str_drop(ptr %a478) %t479 = load { ptr, i64, i64 }, ptr %a474 store { ptr, i64, i64 } %t479, ptr %a481 - store { ptr, i64, i64 } { ptr @.str.2776, i64 37, i64 0 }, ptr %a482 + store { ptr, i64, i64 } { ptr @.str.2861, i64 37, i64 0 }, ptr %a482 call void @finch_str_concat(ptr %a480, ptr %a481, ptr %a482) store { ptr, i64, i64 } %t479, ptr %a483 call void @finch_str_drop(ptr %a483) @@ -46103,7 +47751,7 @@ endif4512: call void @finch_str_drop(ptr %a492) %t493 = load { ptr, i64, i64 }, ptr %a488 store { ptr, i64, i64 } %t493, ptr %a495 - store { ptr, i64, i64 } { ptr @.str.2777, i64 3, i64 0 }, ptr %a496 + store { ptr, i64, i64 } { ptr @.str.2862, i64 3, i64 0 }, ptr %a496 call void @finch_str_concat(ptr %a494, ptr %a495, ptr %a496) store { ptr, i64, i64 } %t493, ptr %a497 call void @finch_str_drop(ptr %a497) @@ -46120,7 +47768,7 @@ endif4512: call void @finch_str_drop(ptr %a506) %t507 = load { ptr, i64, i64 }, ptr %a502 store { ptr, i64, i64 } %t507, ptr %a509 - store { ptr, i64, i64 } { ptr @.str.2778, i64 3, i64 0 }, ptr %a510 + store { ptr, i64, i64 } { ptr @.str.2863, i64 3, i64 0 }, ptr %a510 call void @finch_str_concat(ptr %a508, ptr %a509, ptr %a510) store { ptr, i64, i64 } %t507, ptr %a511 call void @finch_str_drop(ptr %a511) @@ -46137,28 +47785,28 @@ endif4512: call void @finch_str_drop(ptr %a520) %t521 = load { ptr, i64, i64 }, ptr %a516 store { ptr, i64, i64 } %t521, ptr %a523 - store { ptr, i64, i64 } { ptr @.str.2779, i64 2, i64 0 }, ptr %a524 + store { ptr, i64, i64 } { ptr @.str.2864, i64 2, i64 0 }, ptr %a524 call void @finch_str_concat(ptr %a522, ptr %a523, ptr %a524) store { ptr, i64, i64 } %t521, ptr %a525 call void @finch_str_drop(ptr %a525) %t526 = load { ptr, i64, i64 }, ptr %a522 %t527 = load ptr, ptr %a1 %t528 = icmp eq ptr %t527, null - br i1 %t528, label %panic4515, label %ok4516 -panic4515: - call void @finch_panic(ptr @.str.2780, i64 2004, ptr @.str.2781) + br i1 %t528, label %panic4659, label %ok4660 +panic4659: + call void @finch_panic(ptr @.str.2865, i64 2085, ptr @.str.2866) unreachable -ok4516: - %t529 = getelementptr inbounds %S.gen.Gen, ptr %t527, i32 0, i32 32 +ok4660: + %t529 = getelementptr inbounds %S.gen.Gen, ptr %t527, i32 0, i32 33 %t530 = load i64, ptr %a49 %t531 = load { ptr, i64, i64 }, ptr %t529 %t532 = extractvalue { ptr, i64, i64 } %t531, 1 %t533 = icmp uge i64 %t530, %t532 - br i1 %t533, label %range4517, label %inrange4518 -range4517: - call void @finch_panic_index(ptr @.str.2782, i64 2004, i64 %t530, i64 %t532) + br i1 %t533, label %range4661, label %inrange4662 +range4661: + call void @finch_panic_index(ptr @.str.2867, i64 2085, i64 %t530, i64 %t532) unreachable -inrange4518: +inrange4662: %t534 = extractvalue { ptr, i64, i64 } %t531, 0 %t535 = getelementptr inbounds { ptr, i64, i64 }, ptr %t534, i64 %t530 %t536 = load { ptr, i64, i64 }, ptr %t535 @@ -46166,84 +47814,84 @@ inrange4518: store { ptr, i64, i64 } %t536, ptr %a537 call void @finch_str_drop(ptr %a537) call void @finch.drop.S_ast_Type(ptr %a400) - br label %endif4509 -else4508: + br label %endif4653 +else4652: %t538 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t538, ptr %a539 - store { ptr, i64, i64 } { ptr @.str.2783, i64 3, i64 0 }, ptr %a540 + store { ptr, i64, i64 } { ptr @.str.2868, i64 3, i64 0 }, ptr %a540 %t541 = call i32 @finch_str_eq(ptr %a539, ptr %a540) %t542 = icmp ne i32 %t541, 0 - br i1 %t542, label %then4519, label %else4520 -then4519: + br i1 %t542, label %then4663, label %else4664 +then4663: %t543 = load ptr, ptr %a1 - %t544 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.2784, i64 3, i64 0 }) + %t544 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.2869, i64 3, i64 0 }) %t545 = call i64 @finch.gen.diType(ptr %t543, %S.ast.Type %t544) store %S.ast.Type %t544, ptr %a546 call void @finch.drop.S_ast_Type(ptr %a546) store i64 %t545, ptr %a547 %t548 = load ptr, ptr %a1 - %t549 = call i64 @finch.gen.md(ptr %t548, { ptr, i64, i64 } { ptr @.str.2785, i64 66, i64 0 }) + %t549 = call i64 @finch.gen.md(ptr %t548, { ptr, i64, i64 } { ptr @.str.2870, i64 66, i64 0 }) store i64 %t549, ptr %a550 %t551 = mul i64 7, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t552 = call ptr @finch_alloc(i64 %t551) %t553 = getelementptr inbounds { ptr, i64, i64 }, ptr %t552, i64 0 - store { ptr, i64, i64 } { ptr @.str.2786, i64 7, i64 0 }, ptr %t553 + store { ptr, i64, i64 } { ptr @.str.2871, i64 7, i64 0 }, ptr %t553 %t554 = getelementptr inbounds { ptr, i64, i64 }, ptr %t552, i64 1 - store { ptr, i64, i64 } { ptr @.str.2787, i64 3, i64 0 }, ptr %t554 + store { ptr, i64, i64 } { ptr @.str.2872, i64 3, i64 0 }, ptr %t554 %t555 = getelementptr inbounds { ptr, i64, i64 }, ptr %t552, i64 2 - store { ptr, i64, i64 } { ptr @.str.2788, i64 4, i64 0 }, ptr %t555 + store { ptr, i64, i64 } { ptr @.str.2873, i64 4, i64 0 }, ptr %t555 %t556 = getelementptr inbounds { ptr, i64, i64 }, ptr %t552, i64 3 - store { ptr, i64, i64 } { ptr @.str.2789, i64 3, i64 0 }, ptr %t556 + store { ptr, i64, i64 } { ptr @.str.2874, i64 3, i64 0 }, ptr %t556 %t557 = getelementptr inbounds { ptr, i64, i64 }, ptr %t552, i64 4 - store { ptr, i64, i64 } { ptr @.str.2790, i64 5, i64 0 }, ptr %t557 + store { ptr, i64, i64 } { ptr @.str.2875, i64 5, i64 0 }, ptr %t557 %t558 = getelementptr inbounds { ptr, i64, i64 }, ptr %t552, i64 5 - store { ptr, i64, i64 } { ptr @.str.2791, i64 4, i64 0 }, ptr %t558 + store { ptr, i64, i64 } { ptr @.str.2876, i64 4, i64 0 }, ptr %t558 %t559 = getelementptr inbounds { ptr, i64, i64 }, ptr %t552, i64 6 - store { ptr, i64, i64 } { ptr @.str.2792, i64 4, i64 0 }, ptr %t559 + store { ptr, i64, i64 } { ptr @.str.2877, i64 4, i64 0 }, ptr %t559 %t560 = insertvalue { ptr, i64, i64 } undef, ptr %t552, 0 %t561 = insertvalue { ptr, i64, i64 } %t560, i64 7, 1 %t562 = insertvalue { ptr, i64, i64 } %t561, i64 7, 2 store { ptr, i64, i64 } %t562, ptr %a563 store { ptr, i64, i64 } zeroinitializer, ptr %a564 store i64 0, ptr %a565 - br label %for.cond4522 -for.cond4522: + br label %for.cond4666 +for.cond4666: %t566 = load i64, ptr %a565 %t567 = icmp slt i64 %t566, 7 - br i1 %t567, label %for.body4523, label %for.end4525 -for.body4523: + br i1 %t567, label %for.body4667, label %for.end4669 +for.body4667: %t568 = load i64, ptr %a547 store i64 %t568, ptr %a569 %t570 = load i64, ptr %a565 %t571 = icmp eq i64 %t570, 0 - br label %logic.from4526 -logic.from4526: - br i1 %t571, label %logic.end4528, label %logic.rhs4527 -logic.rhs4527: + br label %logic.from4670 +logic.from4670: + br i1 %t571, label %logic.end4672, label %logic.rhs4671 +logic.rhs4671: %t572 = load i64, ptr %a565 %t573 = icmp eq i64 %t572, 4 - br label %logic.rend4529 -logic.rend4529: - br label %logic.end4528 -logic.end4528: - %t574 = phi i1 [ true, %logic.from4526 ], [ %t573, %logic.rend4529 ] - br i1 %t574, label %then4530, label %endif4532 -then4530: + br label %logic.rend4673 +logic.rend4673: + br label %logic.end4672 +logic.end4672: + %t574 = phi i1 [ true, %logic.from4670 ], [ %t573, %logic.rend4673 ] + br i1 %t574, label %then4674, label %endif4676 +then4674: %t575 = load i64, ptr %a550 store i64 %t575, ptr %a569 - br label %endif4532 -endif4532: + br label %endif4676 +endif4676: %t576 = getelementptr inbounds { ptr, i64, i64 }, ptr %a564, i32 0, i32 1 %t577 = load ptr, ptr %a1 %t578 = load i64, ptr %a565 %t579 = load { ptr, i64, i64 }, ptr %a563 %t580 = extractvalue { ptr, i64, i64 } %t579, 1 %t581 = icmp uge i64 %t578, %t580 - br i1 %t581, label %range4533, label %inrange4534 -range4533: - call void @finch_panic_index(ptr @.str.2794, i64 2015, i64 %t578, i64 %t580) + br i1 %t581, label %range4677, label %inrange4678 +range4677: + call void @finch_panic_index(ptr @.str.2879, i64 2096, i64 %t578, i64 %t580) unreachable -inrange4534: +inrange4678: %t582 = extractvalue { ptr, i64, i64 } %t579, 0 %t583 = getelementptr inbounds { ptr, i64, i64 }, ptr %t582, i64 %t578 %t584 = load { ptr, i64, i64 }, ptr %t583 @@ -46255,7 +47903,7 @@ inrange4534: %t590 = call i64 @finch.gen.dbgMember(ptr %t577, { ptr, i64, i64 } %t584, i64 %t585, i64 %t586, i64 0, i64 %t587, i64 64, i64 %t589) call void @finch_str_from_int(ptr %a591, i64 %t590) %t592 = load { ptr, i64, i64 }, ptr %a591 - store { ptr, i64, i64 } { ptr @.str.2793, i64 1, i64 0 }, ptr %a594 + store { ptr, i64, i64 } { ptr @.str.2878, i64 1, i64 0 }, ptr %a594 store { ptr, i64, i64 } %t592, ptr %a595 call void @finch_str_concat(ptr %a593, ptr %a594, ptr %a595) store { ptr, i64, i64 } %t592, ptr %a596 @@ -46268,23 +47916,23 @@ inrange4534: %t601 = getelementptr inbounds { ptr, i64, i64 }, ptr %t600, i64 %t598 store { ptr, i64, i64 } %t597, ptr %t601 store i64 %t599, ptr %t576 - br label %for.step4524 -for.step4524: + br label %for.step4668 +for.step4668: %t602 = load i64, ptr %a565 %t603 = add i64 %t602, 1 store i64 %t603, ptr %a565 - br label %for.cond4522 -for.end4525: + br label %for.cond4666 +for.end4669: %t604 = load %S.ast.Type, ptr %a2 %t605 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t604) - store { ptr, i64, i64 } { ptr @.str.2795, i64 52, i64 0 }, ptr %a607 + store { ptr, i64, i64 } { ptr @.str.2880, i64 52, i64 0 }, ptr %a607 store { ptr, i64, i64 } %t605, ptr %a608 call void @finch_str_concat(ptr %a606, ptr %a607, ptr %a608) store { ptr, i64, i64 } %t605, ptr %a609 call void @finch_str_drop(ptr %a609) %t610 = load { ptr, i64, i64 }, ptr %a606 store { ptr, i64, i64 } %t610, ptr %a612 - store { ptr, i64, i64 } { ptr @.str.2796, i64 10, i64 0 }, ptr %a613 + store { ptr, i64, i64 } { ptr @.str.2881, i64 10, i64 0 }, ptr %a613 call void @finch_str_concat(ptr %a611, ptr %a612, ptr %a613) store { ptr, i64, i64 } %t610, ptr %a614 call void @finch_str_drop(ptr %a614) @@ -46301,13 +47949,13 @@ for.end4525: call void @finch_str_drop(ptr %a623) %t624 = load { ptr, i64, i64 }, ptr %a619 store { ptr, i64, i64 } %t624, ptr %a626 - store { ptr, i64, i64 } { ptr @.str.2797, i64 36, i64 0 }, ptr %a627 + store { ptr, i64, i64 } { ptr @.str.2882, i64 36, i64 0 }, ptr %a627 call void @finch_str_concat(ptr %a625, ptr %a626, ptr %a627) store { ptr, i64, i64 } %t624, ptr %a628 call void @finch_str_drop(ptr %a628) %t629 = load { ptr, i64, i64 }, ptr %a625 %t630 = getelementptr inbounds { ptr, i64, i64 }, ptr %a564, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.2798, i64 2, i64 0 }, ptr %a631 + store { ptr, i64, i64 } { ptr @.str.2883, i64 2, i64 0 }, ptr %a631 call void @finch_str_join(ptr %a632, ptr %a564, ptr %a631) %t633 = load { ptr, i64, i64 }, ptr %a632 store { ptr, i64, i64 } %t629, ptr %a635 @@ -46319,28 +47967,28 @@ for.end4525: call void @finch_str_drop(ptr %a638) %t639 = load { ptr, i64, i64 }, ptr %a634 store { ptr, i64, i64 } %t639, ptr %a641 - store { ptr, i64, i64 } { ptr @.str.2799, i64 2, i64 0 }, ptr %a642 + store { ptr, i64, i64 } { ptr @.str.2884, i64 2, i64 0 }, ptr %a642 call void @finch_str_concat(ptr %a640, ptr %a641, ptr %a642) store { ptr, i64, i64 } %t639, ptr %a643 call void @finch_str_drop(ptr %a643) %t644 = load { ptr, i64, i64 }, ptr %a640 %t645 = load ptr, ptr %a1 %t646 = icmp eq ptr %t645, null - br i1 %t646, label %panic4535, label %ok4536 -panic4535: - call void @finch_panic(ptr @.str.2800, i64 2017, ptr @.str.2801) + br i1 %t646, label %panic4679, label %ok4680 +panic4679: + call void @finch_panic(ptr @.str.2885, i64 2098, ptr @.str.2886) unreachable -ok4536: - %t647 = getelementptr inbounds %S.gen.Gen, ptr %t645, i32 0, i32 32 +ok4680: + %t647 = getelementptr inbounds %S.gen.Gen, ptr %t645, i32 0, i32 33 %t648 = load i64, ptr %a49 %t649 = load { ptr, i64, i64 }, ptr %t647 %t650 = extractvalue { ptr, i64, i64 } %t649, 1 %t651 = icmp uge i64 %t648, %t650 - br i1 %t651, label %range4537, label %inrange4538 -range4537: - call void @finch_panic_index(ptr @.str.2802, i64 2017, i64 %t648, i64 %t650) + br i1 %t651, label %range4681, label %inrange4682 +range4681: + call void @finch_panic_index(ptr @.str.2887, i64 2098, i64 %t648, i64 %t650) unreachable -inrange4538: +inrange4682: %t652 = extractvalue { ptr, i64, i64 } %t649, 0 %t653 = getelementptr inbounds { ptr, i64, i64 }, ptr %t652, i64 %t648 %t654 = load { ptr, i64, i64 }, ptr %t653 @@ -46349,22 +47997,22 @@ inrange4538: call void @finch_str_drop(ptr %a655) call void @finch.drop.arr_str(ptr %a564) call void @finch.drop.arr_str(ptr %a563) - br label %endif4521 -else4520: + br label %endif4665 +else4664: %t656 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t656, ptr %a657 - store { ptr, i64, i64 } { ptr @.str.2803, i64 6, i64 0 }, ptr %a658 + store { ptr, i64, i64 } { ptr @.str.2888, i64 6, i64 0 }, ptr %a658 %t659 = call i32 @finch_str_eq(ptr %a657, ptr %a658) %t660 = icmp ne i32 %t659, 0 - br i1 %t660, label %then4539, label %else4540 -then4539: + br i1 %t660, label %then4683, label %else4684 +then4683: %t661 = load ptr, ptr %a1 %t662 = icmp eq ptr %t661, null - br i1 %t662, label %panic4542, label %ok4543 -panic4542: - call void @finch_panic(ptr @.str.2804, i64 2019, ptr @.str.2805) + br i1 %t662, label %panic4686, label %ok4687 +panic4686: + call void @finch_panic(ptr @.str.2889, i64 2100, ptr @.str.2890) unreachable -ok4543: +ok4687: %t663 = getelementptr inbounds %S.gen.Gen, ptr %t661, i32 0, i32 16 %t664 = load ptr, ptr %a1 %t665 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 @@ -46375,11 +48023,11 @@ ok4543: %t670 = load { ptr, i64, i64 }, ptr %t663 %t671 = extractvalue { ptr, i64, i64 } %t670, 1 %t672 = icmp uge i64 %t669, %t671 - br i1 %t672, label %range4544, label %inrange4545 -range4544: - call void @finch_panic_index(ptr @.str.2806, i64 2019, i64 %t669, i64 %t671) + br i1 %t672, label %range4688, label %inrange4689 +range4688: + call void @finch_panic_index(ptr @.str.2891, i64 2100, i64 %t669, i64 %t671) unreachable -inrange4545: +inrange4689: %t673 = extractvalue { ptr, i64, i64 } %t670, 0 %t674 = getelementptr inbounds %S.gen.StructDef, ptr %t673, i64 %t669 %t675 = load %S.gen.StructDef, ptr %t674 @@ -46400,23 +48048,23 @@ inrange4545: %t690 = getelementptr inbounds { ptr, i64, i64 }, ptr %t689, i32 0, i32 1 %t691 = load i64, ptr %t690 store i64 0, ptr %a692 - br label %for.cond4546 -for.cond4546: + br label %for.cond4690 +for.cond4690: %t693 = load i64, ptr %a692 %t694 = icmp slt i64 %t693, %t691 - br i1 %t694, label %for.body4547, label %for.end4549 -for.body4547: + br i1 %t694, label %for.body4691, label %for.end4693 +for.body4691: %t695 = load ptr, ptr %a1 %t696 = getelementptr inbounds %S.gen.StructDef, ptr %a679, i32 0, i32 12 %t697 = load i64, ptr %a692 %t698 = load { ptr, i64, i64 }, ptr %t696 %t699 = extractvalue { ptr, i64, i64 } %t698, 1 %t700 = icmp uge i64 %t697, %t699 - br i1 %t700, label %range4550, label %inrange4551 -range4550: - call void @finch_panic_index(ptr @.str.2807, i64 2024, i64 %t697, i64 %t699) + br i1 %t700, label %range4694, label %inrange4695 +range4694: + call void @finch_panic_index(ptr @.str.2892, i64 2105, i64 %t697, i64 %t699) unreachable -inrange4551: +inrange4695: %t701 = extractvalue { ptr, i64, i64 } %t698, 0 %t702 = getelementptr inbounds %S.ast.Type, ptr %t701, i64 %t697 %t703 = load %S.ast.Type, ptr %t702 @@ -46429,11 +48077,11 @@ inrange4551: %t710 = load { ptr, i64, i64 }, ptr %t708 %t711 = extractvalue { ptr, i64, i64 } %t710, 1 %t712 = icmp uge i64 %t709, %t711 - br i1 %t712, label %range4552, label %inrange4553 -range4552: - call void @finch_panic_index(ptr @.str.2809, i64 2025, i64 %t709, i64 %t711) + br i1 %t712, label %range4696, label %inrange4697 +range4696: + call void @finch_panic_index(ptr @.str.2894, i64 2106, i64 %t709, i64 %t711) unreachable -inrange4553: +inrange4697: %t713 = extractvalue { ptr, i64, i64 } %t710, 0 %t714 = getelementptr inbounds { ptr, i64, i64 }, ptr %t713, i64 %t709 %t715 = load { ptr, i64, i64 }, ptr %t714 @@ -46445,11 +48093,11 @@ inrange4553: %t721 = load { ptr, i64, i64 }, ptr %t719 %t722 = extractvalue { ptr, i64, i64 } %t721, 1 %t723 = icmp uge i64 %t720, %t722 - br i1 %t723, label %range4554, label %inrange4555 -range4554: - call void @finch_panic_index(ptr @.str.2810, i64 2025, i64 %t720, i64 %t722) + br i1 %t723, label %range4698, label %inrange4699 +range4698: + call void @finch_panic_index(ptr @.str.2895, i64 2106, i64 %t720, i64 %t722) unreachable -inrange4555: +inrange4699: %t724 = extractvalue { ptr, i64, i64 } %t721, 0 %t725 = getelementptr inbounds %S.ast.Type, ptr %t724, i64 %t720 %t726 = load %S.ast.Type, ptr %t725 @@ -46461,11 +48109,11 @@ inrange4555: %t732 = load { ptr, i64, i64 }, ptr %a683 %t733 = extractvalue { ptr, i64, i64 } %t732, 1 %t734 = icmp uge i64 %t731, %t733 - br i1 %t734, label %range4556, label %inrange4557 -range4556: - call void @finch_panic_index(ptr @.str.2811, i64 2025, i64 %t731, i64 %t733) + br i1 %t734, label %range4700, label %inrange4701 +range4700: + call void @finch_panic_index(ptr @.str.2896, i64 2106, i64 %t731, i64 %t733) unreachable -inrange4557: +inrange4701: %t735 = extractvalue { ptr, i64, i64 } %t732, 0 %t736 = getelementptr inbounds i64, ptr %t735, i64 %t731 %t737 = load i64, ptr %t736 @@ -46473,7 +48121,7 @@ inrange4557: %t739 = call i64 @finch.gen.dbgMember(ptr %t707, { ptr, i64, i64 } %t715, i64 %t716, i64 %t717, i64 0, i64 %t727, i64 %t730, i64 %t738) call void @finch_str_from_int(ptr %a740, i64 %t739) %t741 = load { ptr, i64, i64 }, ptr %a740 - store { ptr, i64, i64 } { ptr @.str.2808, i64 1, i64 0 }, ptr %a743 + store { ptr, i64, i64 } { ptr @.str.2893, i64 1, i64 0 }, ptr %a743 store { ptr, i64, i64 } %t741, ptr %a744 call void @finch_str_concat(ptr %a742, ptr %a743, ptr %a744) store { ptr, i64, i64 } %t741, ptr %a745 @@ -46486,21 +48134,21 @@ inrange4557: %t750 = getelementptr inbounds { ptr, i64, i64 }, ptr %t749, i64 %t747 store { ptr, i64, i64 } %t746, ptr %t750 store i64 %t748, ptr %t706 - br label %for.step4548 -for.step4548: + br label %for.step4692 +for.step4692: %t751 = load i64, ptr %a692 %t752 = add i64 %t751, 1 store i64 %t752, ptr %a692 - br label %for.cond4546 -for.end4549: + br label %for.cond4690 +for.end4693: %t753 = getelementptr inbounds %S.gen.StructDef, ptr %a679, i32 0, i32 1 %t754 = load { ptr, i64, i64 }, ptr %t753 - store { ptr, i64, i64 } { ptr @.str.2812, i64 52, i64 0 }, ptr %a756 + store { ptr, i64, i64 } { ptr @.str.2897, i64 52, i64 0 }, ptr %a756 store { ptr, i64, i64 } %t754, ptr %a757 call void @finch_str_concat(ptr %a755, ptr %a756, ptr %a757) %t758 = load { ptr, i64, i64 }, ptr %a755 store { ptr, i64, i64 } %t758, ptr %a760 - store { ptr, i64, i64 } { ptr @.str.2813, i64 10, i64 0 }, ptr %a761 + store { ptr, i64, i64 } { ptr @.str.2898, i64 10, i64 0 }, ptr %a761 call void @finch_str_concat(ptr %a759, ptr %a760, ptr %a761) store { ptr, i64, i64 } %t758, ptr %a762 call void @finch_str_drop(ptr %a762) @@ -46517,7 +48165,7 @@ for.end4549: call void @finch_str_drop(ptr %a771) %t772 = load { ptr, i64, i64 }, ptr %a767 store { ptr, i64, i64 } %t772, ptr %a774 - store { ptr, i64, i64 } { ptr @.str.2814, i64 8, i64 0 }, ptr %a775 + store { ptr, i64, i64 } { ptr @.str.2899, i64 8, i64 0 }, ptr %a775 call void @finch_str_concat(ptr %a773, ptr %a774, ptr %a775) store { ptr, i64, i64 } %t772, ptr %a776 call void @finch_str_drop(ptr %a776) @@ -46536,13 +48184,13 @@ for.end4549: call void @finch_str_drop(ptr %a787) %t788 = load { ptr, i64, i64 }, ptr %a783 store { ptr, i64, i64 } %t788, ptr %a790 - store { ptr, i64, i64 } { ptr @.str.2815, i64 24, i64 0 }, ptr %a791 + store { ptr, i64, i64 } { ptr @.str.2900, i64 24, i64 0 }, ptr %a791 call void @finch_str_concat(ptr %a789, ptr %a790, ptr %a791) store { ptr, i64, i64 } %t788, ptr %a792 call void @finch_str_drop(ptr %a792) %t793 = load { ptr, i64, i64 }, ptr %a789 %t794 = getelementptr inbounds { ptr, i64, i64 }, ptr %a688, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.2816, i64 2, i64 0 }, ptr %a795 + store { ptr, i64, i64 } { ptr @.str.2901, i64 2, i64 0 }, ptr %a795 call void @finch_str_join(ptr %a796, ptr %a688, ptr %a795) %t797 = load { ptr, i64, i64 }, ptr %a796 store { ptr, i64, i64 } %t793, ptr %a799 @@ -46554,28 +48202,28 @@ for.end4549: call void @finch_str_drop(ptr %a802) %t803 = load { ptr, i64, i64 }, ptr %a798 store { ptr, i64, i64 } %t803, ptr %a805 - store { ptr, i64, i64 } { ptr @.str.2817, i64 2, i64 0 }, ptr %a806 + store { ptr, i64, i64 } { ptr @.str.2902, i64 2, i64 0 }, ptr %a806 call void @finch_str_concat(ptr %a804, ptr %a805, ptr %a806) store { ptr, i64, i64 } %t803, ptr %a807 call void @finch_str_drop(ptr %a807) %t808 = load { ptr, i64, i64 }, ptr %a804 %t809 = load ptr, ptr %a1 %t810 = icmp eq ptr %t809, null - br i1 %t810, label %panic4558, label %ok4559 -panic4558: - call void @finch_panic(ptr @.str.2818, i64 2027, ptr @.str.2819) + br i1 %t810, label %panic4702, label %ok4703 +panic4702: + call void @finch_panic(ptr @.str.2903, i64 2108, ptr @.str.2904) unreachable -ok4559: - %t811 = getelementptr inbounds %S.gen.Gen, ptr %t809, i32 0, i32 32 +ok4703: + %t811 = getelementptr inbounds %S.gen.Gen, ptr %t809, i32 0, i32 33 %t812 = load i64, ptr %a49 %t813 = load { ptr, i64, i64 }, ptr %t811 %t814 = extractvalue { ptr, i64, i64 } %t813, 1 %t815 = icmp uge i64 %t812, %t814 - br i1 %t815, label %range4560, label %inrange4561 -range4560: - call void @finch_panic_index(ptr @.str.2820, i64 2027, i64 %t812, i64 %t814) + br i1 %t815, label %range4704, label %inrange4705 +range4704: + call void @finch_panic_index(ptr @.str.2905, i64 2108, i64 %t812, i64 %t814) unreachable -inrange4561: +inrange4705: %t816 = extractvalue { ptr, i64, i64 } %t813, 0 %t817 = getelementptr inbounds { ptr, i64, i64 }, ptr %t816, i64 %t812 %t818 = load { ptr, i64, i64 }, ptr %t817 @@ -46585,78 +48233,78 @@ inrange4561: call void @finch.drop.arr_str(ptr %a688) call void @finch.drop.arr_int(ptr %a683) call void @finch.drop.S_gen_StructDef(ptr %a679) - br label %endif4541 -else4540: + br label %endif4685 +else4684: %t820 = load { ptr, i64, i64 }, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.2821, i64 20, i64 0 }, ptr %a822 + store { ptr, i64, i64 } { ptr @.str.2906, i64 20, i64 0 }, ptr %a822 store { ptr, i64, i64 } %t820, ptr %a823 call void @finch_str_concat(ptr %a821, ptr %a822, ptr %a823) %t824 = load { ptr, i64, i64 }, ptr %a821 store { ptr, i64, i64 } %t824, ptr %a826 - store { ptr, i64, i64 } { ptr @.str.2822, i64 39, i64 0 }, ptr %a827 + store { ptr, i64, i64 } { ptr @.str.2907, i64 39, i64 0 }, ptr %a827 call void @finch_str_concat(ptr %a825, ptr %a826, ptr %a827) store { ptr, i64, i64 } %t824, ptr %a828 call void @finch_str_drop(ptr %a828) %t829 = load { ptr, i64, i64 }, ptr %a825 %t830 = load ptr, ptr %a1 %t831 = icmp eq ptr %t830, null - br i1 %t831, label %panic4562, label %ok4563 -panic4562: - call void @finch_panic(ptr @.str.2823, i64 2029, ptr @.str.2824) + br i1 %t831, label %panic4706, label %ok4707 +panic4706: + call void @finch_panic(ptr @.str.2908, i64 2110, ptr @.str.2909) unreachable -ok4563: - %t832 = getelementptr inbounds %S.gen.Gen, ptr %t830, i32 0, i32 32 +ok4707: + %t832 = getelementptr inbounds %S.gen.Gen, ptr %t830, i32 0, i32 33 %t833 = load i64, ptr %a49 %t834 = load { ptr, i64, i64 }, ptr %t832 %t835 = extractvalue { ptr, i64, i64 } %t834, 1 %t836 = icmp uge i64 %t833, %t835 - br i1 %t836, label %range4564, label %inrange4565 -range4564: - call void @finch_panic_index(ptr @.str.2825, i64 2029, i64 %t833, i64 %t835) + br i1 %t836, label %range4708, label %inrange4709 +range4708: + call void @finch_panic_index(ptr @.str.2910, i64 2110, i64 %t833, i64 %t835) unreachable -inrange4565: +inrange4709: %t837 = extractvalue { ptr, i64, i64 } %t834, 0 %t838 = getelementptr inbounds { ptr, i64, i64 }, ptr %t837, i64 %t833 %t839 = load { ptr, i64, i64 }, ptr %t838 store { ptr, i64, i64 } %t829, ptr %t838 store { ptr, i64, i64 } %t839, ptr %a840 call void @finch_str_drop(ptr %a840) - br label %endif4541 -endif4541: - br label %endif4521 -endif4521: - br label %endif4509 -endif4509: - br label %endif4494 -endif4494: - br label %endif4482 -endif4482: + br label %endif4685 +endif4685: + br label %endif4665 +endif4665: + br label %endif4653 +endif4653: + br label %endif4638 +endif4638: + br label %endif4626 +endif4626: %t841 = load i64, ptr %a49 call void @finch_str_drop(ptr %a27) call void @finch_str_drop(ptr %a8) ret i64 %t841 -endif4463: - br label %endif4457 -endif4457: - br label %endif4454 -endif4454: - br label %endif4451 -endif4451: - br label %endif4448 -endif4448: - br label %endif4445 -endif4445: - br label %endif4442 -endif4442: +endif4607: + br label %endif4601 +endif4601: + br label %endif4598 +endif4598: + br label %endif4595 +endif4595: + br label %endif4592 +endif4592: + br label %endif4589 +endif4589: + br label %endif4586 +endif4586: %t842 = load i64, ptr %a49 %t843 = load ptr, ptr %a1 %t844 = icmp eq ptr %t843, null - br i1 %t844, label %panic4566, label %ok4567 -panic4566: - call void @finch_panic(ptr @.str.2826, i64 2033, ptr @.str.2827) + br i1 %t844, label %panic4710, label %ok4711 +panic4710: + call void @finch_panic(ptr @.str.2911, i64 2114, ptr @.str.2912) unreachable -ok4567: - %t845 = getelementptr inbounds %S.gen.Gen, ptr %t843, i32 0, i32 33 +ok4711: + %t845 = getelementptr inbounds %S.gen.Gen, ptr %t843, i32 0, i32 34 %t846 = load { ptr, i64, i64 }, ptr %a27 store { ptr, i64, i64 } %t846, ptr %a847 store i32 0, ptr %a848 @@ -46666,14 +48314,14 @@ ok4567: %t852 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t851, i64 %t849 %t853 = load i32, ptr %a848 %t854 = icmp ne i32 %t853, 0 - br i1 %t854, label %map.new4568, label %map.have4569 -map.new4568: + br i1 %t854, label %map.new4712, label %map.have4713 +map.new4712: %t855 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t852, i32 0, i32 1 call void @finch_str_copy(ptr %t855, ptr %a847) %t856 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t852, i32 0, i32 2 store i64 0, ptr %t856 - br label %map.have4569 -map.have4569: + br label %map.have4713 +map.have4713: %t857 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t852, i32 0, i32 2 store i64 %t842, ptr %t857 %t858 = load i64, ptr %a49 @@ -46751,35 +48399,35 @@ entry: store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 %t3 = icmp eq ptr %t2, null - br i1 %t3, label %panic4570, label %ok4571 -panic4570: - call void @finch_panic(ptr @.str.2829, i64 2038, ptr @.str.2830) + br i1 %t3, label %panic4714, label %ok4715 +panic4714: + call void @finch_panic(ptr @.str.2914, i64 2119, ptr @.str.2915) unreachable -ok4571: - %t4 = getelementptr inbounds %S.gen.Gen, ptr %t2, i32 0, i32 36 +ok4715: + %t4 = getelementptr inbounds %S.gen.Gen, ptr %t2, i32 0, i32 37 %t5 = load i64, ptr %t4 call void @finch_str_from_int(ptr %a6, i64 %t5) %t7 = load { ptr, i64, i64 }, ptr %a6 - store { ptr, i64, i64 } { ptr @.str.2828, i64 2, i64 0 }, ptr %a9 + store { ptr, i64, i64 } { ptr @.str.2913, i64 2, i64 0 }, ptr %a9 store { ptr, i64, i64 } %t7, ptr %a10 call void @finch_str_concat(ptr %a8, ptr %a9, ptr %a10) store { ptr, i64, i64 } %t7, ptr %a11 call void @finch_str_drop(ptr %a11) %t12 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t12, ptr %a14 - store { ptr, i64, i64 } { ptr @.str.2831, i64 1, i64 0 }, ptr %a15 + store { ptr, i64, i64 } { ptr @.str.2916, i64 1, i64 0 }, ptr %a15 call void @finch_str_concat(ptr %a13, ptr %a14, ptr %a15) store { ptr, i64, i64 } %t12, ptr %a16 call void @finch_str_drop(ptr %a16) %t17 = load { ptr, i64, i64 }, ptr %a13 %t18 = load ptr, ptr %a1 %t19 = icmp eq ptr %t18, null - br i1 %t19, label %panic4572, label %ok4573 -panic4572: - call void @finch_panic(ptr @.str.2832, i64 2038, ptr @.str.2833) + br i1 %t19, label %panic4716, label %ok4717 +panic4716: + call void @finch_panic(ptr @.str.2917, i64 2119, ptr @.str.2918) unreachable -ok4573: - %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 37 +ok4717: + %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 38 %t21 = load i64, ptr %t20 call void @finch_str_from_int(ptr %a22, i64 %t21) %t23 = load { ptr, i64, i64 }, ptr %a22 @@ -46792,19 +48440,19 @@ ok4573: call void @finch_str_drop(ptr %a28) %t29 = load { ptr, i64, i64 }, ptr %a24 store { ptr, i64, i64 } %t29, ptr %a31 - store { ptr, i64, i64 } { ptr @.str.2834, i64 1, i64 0 }, ptr %a32 + store { ptr, i64, i64 } { ptr @.str.2919, i64 1, i64 0 }, ptr %a32 call void @finch_str_concat(ptr %a30, ptr %a31, ptr %a32) store { ptr, i64, i64 } %t29, ptr %a33 call void @finch_str_drop(ptr %a33) %t34 = load { ptr, i64, i64 }, ptr %a30 %t35 = load ptr, ptr %a1 %t36 = icmp eq ptr %t35, null - br i1 %t36, label %panic4574, label %ok4575 -panic4574: - call void @finch_panic(ptr @.str.2835, i64 2038, ptr @.str.2836) + br i1 %t36, label %panic4718, label %ok4719 +panic4718: + call void @finch_panic(ptr @.str.2920, i64 2119, ptr @.str.2921) unreachable -ok4575: - %t37 = getelementptr inbounds %S.gen.Gen, ptr %t35, i32 0, i32 35 +ok4719: + %t37 = getelementptr inbounds %S.gen.Gen, ptr %t35, i32 0, i32 36 %t38 = load i64, ptr %t37 call void @finch_str_from_int(ptr %a39, i64 %t38) %t40 = load { ptr, i64, i64 }, ptr %a39 @@ -46819,38 +48467,38 @@ ok4575: store { ptr, i64, i64 } %t46, ptr %a47 %t48 = load ptr, ptr %a1 %t49 = icmp eq ptr %t48, null - br i1 %t49, label %panic4576, label %ok4577 -panic4576: - call void @finch_panic(ptr @.str.2837, i64 2039, ptr @.str.2838) + br i1 %t49, label %panic4720, label %ok4721 +panic4720: + call void @finch_panic(ptr @.str.2922, i64 2120, ptr @.str.2923) unreachable -ok4577: - %t50 = getelementptr inbounds %S.gen.Gen, ptr %t48, i32 0, i32 33 +ok4721: + %t50 = getelementptr inbounds %S.gen.Gen, ptr %t48, i32 0, i32 34 %t51 = load { ptr, i64, i64 }, ptr %a47 store { ptr, i64, i64 } %t51, ptr %a52 %t53 = call i64 @finch_map_find(ptr %t50, ptr %a52, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, i64 }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t54 = icmp sge i64 %t53, 0 - br i1 %t54, label %then4578, label %endif4580 -then4578: + br i1 %t54, label %then4722, label %endif4724 +then4722: %t55 = load ptr, ptr %a1 %t56 = icmp eq ptr %t55, null - br i1 %t56, label %panic4581, label %ok4582 -panic4581: - call void @finch_panic(ptr @.str.2839, i64 2040, ptr @.str.2840) + br i1 %t56, label %panic4725, label %ok4726 +panic4725: + call void @finch_panic(ptr @.str.2924, i64 2121, ptr @.str.2925) unreachable -ok4582: - %t57 = getelementptr inbounds %S.gen.Gen, ptr %t55, i32 0, i32 33 +ok4726: + %t57 = getelementptr inbounds %S.gen.Gen, ptr %t55, i32 0, i32 34 %t58 = load { ptr, i64, i64 }, ptr %a47 store { ptr, i64, i64 } %t58, ptr %a59 %t60 = call i64 @finch_map_find(ptr %t57, ptr %a59, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, i64 }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t61 = icmp slt i64 %t60, 0 - br i1 %t61, label %map.missing4583, label %map.found4584 -map.missing4583: + br i1 %t61, label %map.missing4727, label %map.found4728 +map.missing4727: store { ptr, i64, i64 } zeroinitializer, ptr %a62 store { ptr, i64, i64 } %t58, ptr %a63 call void @finch_buf_str(ptr %a62, ptr %a63, i32 1) - call void @finch_map_missing(ptr @.str.2841, i64 2040, ptr %a62) + call void @finch_map_missing(ptr @.str.2926, i64 2121, ptr %a62) unreachable -map.found4584: +map.found4728: %t64 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t57, i32 0, i32 0 %t65 = load ptr, ptr %t64 %t66 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t65, i64 %t60 @@ -46858,39 +48506,39 @@ map.found4584: %t68 = load i64, ptr %t67 call void @finch_str_drop(ptr %a47) ret i64 %t68 -endif4580: +endif4724: %t69 = load ptr, ptr %a1 %t70 = load ptr, ptr %a1 %t71 = icmp eq ptr %t70, null - br i1 %t71, label %panic4585, label %ok4586 -panic4585: - call void @finch_panic(ptr @.str.2843, i64 2042, ptr @.str.2844) + br i1 %t71, label %panic4729, label %ok4730 +panic4729: + call void @finch_panic(ptr @.str.2928, i64 2123, ptr @.str.2929) unreachable -ok4586: - %t72 = getelementptr inbounds %S.gen.Gen, ptr %t70, i32 0, i32 36 +ok4730: + %t72 = getelementptr inbounds %S.gen.Gen, ptr %t70, i32 0, i32 37 %t73 = load i64, ptr %t72 call void @finch_str_from_int(ptr %a74, i64 %t73) %t75 = load { ptr, i64, i64 }, ptr %a74 - store { ptr, i64, i64 } { ptr @.str.2842, i64 18, i64 0 }, ptr %a77 + store { ptr, i64, i64 } { ptr @.str.2927, i64 18, i64 0 }, ptr %a77 store { ptr, i64, i64 } %t75, ptr %a78 call void @finch_str_concat(ptr %a76, ptr %a77, ptr %a78) store { ptr, i64, i64 } %t75, ptr %a79 call void @finch_str_drop(ptr %a79) %t80 = load { ptr, i64, i64 }, ptr %a76 store { ptr, i64, i64 } %t80, ptr %a82 - store { ptr, i64, i64 } { ptr @.str.2845, i64 10, i64 0 }, ptr %a83 + store { ptr, i64, i64 } { ptr @.str.2930, i64 10, i64 0 }, ptr %a83 call void @finch_str_concat(ptr %a81, ptr %a82, ptr %a83) store { ptr, i64, i64 } %t80, ptr %a84 call void @finch_str_drop(ptr %a84) %t85 = load { ptr, i64, i64 }, ptr %a81 %t86 = load ptr, ptr %a1 %t87 = icmp eq ptr %t86, null - br i1 %t87, label %panic4587, label %ok4588 -panic4587: - call void @finch_panic(ptr @.str.2846, i64 2042, ptr @.str.2847) + br i1 %t87, label %panic4731, label %ok4732 +panic4731: + call void @finch_panic(ptr @.str.2931, i64 2123, ptr @.str.2932) unreachable -ok4588: - %t88 = getelementptr inbounds %S.gen.Gen, ptr %t86, i32 0, i32 37 +ok4732: + %t88 = getelementptr inbounds %S.gen.Gen, ptr %t86, i32 0, i32 38 %t89 = load i64, ptr %t88 call void @finch_str_from_int(ptr %a90, i64 %t89) %t91 = load { ptr, i64, i64 }, ptr %a90 @@ -46903,19 +48551,19 @@ ok4588: call void @finch_str_drop(ptr %a96) %t97 = load { ptr, i64, i64 }, ptr %a92 store { ptr, i64, i64 } %t97, ptr %a99 - store { ptr, i64, i64 } { ptr @.str.2848, i64 10, i64 0 }, ptr %a100 + store { ptr, i64, i64 } { ptr @.str.2933, i64 10, i64 0 }, ptr %a100 call void @finch_str_concat(ptr %a98, ptr %a99, ptr %a100) store { ptr, i64, i64 } %t97, ptr %a101 call void @finch_str_drop(ptr %a101) %t102 = load { ptr, i64, i64 }, ptr %a98 %t103 = load ptr, ptr %a1 %t104 = icmp eq ptr %t103, null - br i1 %t104, label %panic4589, label %ok4590 -panic4589: - call void @finch_panic(ptr @.str.2849, i64 2042, ptr @.str.2850) + br i1 %t104, label %panic4733, label %ok4734 +panic4733: + call void @finch_panic(ptr @.str.2934, i64 2123, ptr @.str.2935) unreachable -ok4590: - %t105 = getelementptr inbounds %S.gen.Gen, ptr %t103, i32 0, i32 35 +ok4734: + %t105 = getelementptr inbounds %S.gen.Gen, ptr %t103, i32 0, i32 36 %t106 = load i64, ptr %t105 call void @finch_str_from_int(ptr %a107, i64 %t106) %t108 = load { ptr, i64, i64 }, ptr %a107 @@ -46928,7 +48576,7 @@ ok4590: call void @finch_str_drop(ptr %a113) %t114 = load { ptr, i64, i64 }, ptr %a109 store { ptr, i64, i64 } %t114, ptr %a116 - store { ptr, i64, i64 } { ptr @.str.2851, i64 1, i64 0 }, ptr %a117 + store { ptr, i64, i64 } { ptr @.str.2936, i64 1, i64 0 }, ptr %a117 call void @finch_str_concat(ptr %a115, ptr %a116, ptr %a117) store { ptr, i64, i64 } %t114, ptr %a118 call void @finch_str_drop(ptr %a118) @@ -46940,12 +48588,12 @@ ok4590: %t123 = load i64, ptr %a122 %t124 = load ptr, ptr %a1 %t125 = icmp eq ptr %t124, null - br i1 %t125, label %panic4591, label %ok4592 -panic4591: - call void @finch_panic(ptr @.str.2852, i64 2043, ptr @.str.2853) + br i1 %t125, label %panic4735, label %ok4736 +panic4735: + call void @finch_panic(ptr @.str.2937, i64 2124, ptr @.str.2938) unreachable -ok4592: - %t126 = getelementptr inbounds %S.gen.Gen, ptr %t124, i32 0, i32 33 +ok4736: + %t126 = getelementptr inbounds %S.gen.Gen, ptr %t124, i32 0, i32 34 %t127 = load { ptr, i64, i64 }, ptr %a47 store { ptr, i64, i64 } %t127, ptr %a128 store i32 0, ptr %a129 @@ -46955,14 +48603,14 @@ ok4592: %t133 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t132, i64 %t130 %t134 = load i32, ptr %a129 %t135 = icmp ne i32 %t134, 0 - br i1 %t135, label %map.new4593, label %map.have4594 -map.new4593: + br i1 %t135, label %map.new4737, label %map.have4738 +map.new4737: %t136 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t133, i32 0, i32 1 call void @finch_str_copy(ptr %t136, ptr %a128) %t137 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t133, i32 0, i32 2 store i64 0, ptr %t137 - br label %map.have4594 -map.have4594: + br label %map.have4738 +map.have4738: %t138 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t133, i32 0, i32 2 store i64 %t123, ptr %t138 %t139 = load i64, ptr %a122 @@ -47066,11 +48714,11 @@ entry: store %S.ast.Node %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic4595, label %ok4596 -panic4595: - call void @finch_panic(ptr @.str.2854, i64 2048, ptr @.str.2855) + br i1 %t4, label %panic4739, label %ok4740 +panic4739: + call void @finch_panic(ptr @.str.2939, i64 2129, ptr @.str.2940) unreachable -ok4596: +ok4740: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 13 %t6 = load %S.gen.FnSig, ptr %t5 store %S.gen.FnSig %t6, ptr %a7 @@ -47095,28 +48743,28 @@ ok4596: %t23 = getelementptr inbounds { ptr, i64, i64 }, ptr %t22, i32 0, i32 1 %t24 = load i64, ptr %t23 %t25 = icmp sgt i64 %t24, 0 - br i1 %t25, label %then4597, label %endif4599 -then4597: + br i1 %t25, label %then4741, label %endif4743 +then4741: %t26 = getelementptr inbounds { ptr, i64, i64 }, ptr %a11, i32 0, i32 1 %t27 = load i64, ptr %t26 %t28 = add i64 %t27, 1 call void @finch_arr_reserve(ptr %a11, i64 %t28, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t29 = load ptr, ptr %a11 %t30 = getelementptr inbounds { ptr, i64, i64 }, ptr %t29, i64 %t27 - store { ptr, i64, i64 } { ptr @.str.2856, i64 4, i64 0 }, ptr %t30 + store { ptr, i64, i64 } { ptr @.str.2941, i64 4, i64 0 }, ptr %t30 store i64 %t28, ptr %t26 - br label %endif4599 -endif4599: + br label %endif4743 +endif4743: %t31 = getelementptr inbounds %S.gen.FnSig, ptr %a10, i32 0, i32 13 store i64 0, ptr %a32 - br label %each.cond4600 -each.cond4600: + br label %each.cond4744 +each.cond4744: %t33 = getelementptr inbounds { ptr, i64, i64 }, ptr %t31, i32 0, i32 1 %t34 = load i64, ptr %t33 %t35 = load i64, ptr %a32 %t36 = icmp slt i64 %t35, %t34 - br i1 %t36, label %each.body4601, label %each.end4603 -each.body4601: + br i1 %t36, label %each.body4745, label %each.end4747 +each.body4745: %t37 = load ptr, ptr %t31 %t38 = getelementptr inbounds %S.ast.Type, ptr %t37, i64 %t35 %t39 = load %S.ast.Type, ptr %t38 @@ -47133,48 +48781,48 @@ each.body4601: %t49 = getelementptr inbounds { ptr, i64, i64 }, ptr %t48, i64 %t46 store { ptr, i64, i64 } %t45, ptr %t49 store i64 %t47, ptr %t41 - br label %each.step4602 -each.step4602: + br label %each.step4746 +each.step4746: %t50 = load i64, ptr %a32 %t51 = add i64 %t50, 1 store i64 %t51, ptr %a32 - br label %each.cond4600 -each.end4603: + br label %each.cond4744 +each.end4747: %t52 = load ptr, ptr %a1 %t53 = icmp eq ptr %t52, null - br i1 %t53, label %panic4604, label %ok4605 -panic4604: - call void @finch_panic(ptr @.str.2857, i64 2057, ptr @.str.2858) + br i1 %t53, label %panic4748, label %ok4749 +panic4748: + call void @finch_panic(ptr @.str.2942, i64 2138, ptr @.str.2943) unreachable -ok4605: - %t54 = getelementptr inbounds %S.gen.Gen, ptr %t52, i32 0, i32 34 +ok4749: + %t54 = getelementptr inbounds %S.gen.Gen, ptr %t52, i32 0, i32 35 %t55 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 13 %t56 = load i64, ptr %t55 %t57 = load { ptr, i64, i64 }, ptr %t54 %t58 = extractvalue { ptr, i64, i64 } %t57, 1 %t59 = icmp uge i64 %t56, %t58 - br i1 %t59, label %range4606, label %inrange4607 -range4606: - call void @finch_panic_index(ptr @.str.2859, i64 2057, i64 %t56, i64 %t58) + br i1 %t59, label %range4750, label %inrange4751 +range4750: + call void @finch_panic_index(ptr @.str.2944, i64 2138, i64 %t56, i64 %t58) unreachable -inrange4607: +inrange4751: %t60 = extractvalue { ptr, i64, i64 } %t57, 0 %t61 = getelementptr inbounds i64, ptr %t60, i64 %t56 %t62 = load i64, ptr %t61 store i64 %t62, ptr %a63 %t64 = load ptr, ptr %a1 %t65 = getelementptr inbounds { ptr, i64, i64 }, ptr %a11, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.2861, i64 2, i64 0 }, ptr %a66 + store { ptr, i64, i64 } { ptr @.str.2946, i64 2, i64 0 }, ptr %a66 call void @finch_str_join(ptr %a67, ptr %a11, ptr %a66) %t68 = load { ptr, i64, i64 }, ptr %a67 - store { ptr, i64, i64 } { ptr @.str.2860, i64 27, i64 0 }, ptr %a70 + store { ptr, i64, i64 } { ptr @.str.2945, i64 27, i64 0 }, ptr %a70 store { ptr, i64, i64 } %t68, ptr %a71 call void @finch_str_concat(ptr %a69, ptr %a70, ptr %a71) store { ptr, i64, i64 } %t68, ptr %a72 call void @finch_str_drop(ptr %a72) %t73 = load { ptr, i64, i64 }, ptr %a69 store { ptr, i64, i64 } %t73, ptr %a75 - store { ptr, i64, i64 } { ptr @.str.2862, i64 2, i64 0 }, ptr %a76 + store { ptr, i64, i64 } { ptr @.str.2947, i64 2, i64 0 }, ptr %a76 call void @finch_str_concat(ptr %a74, ptr %a75, ptr %a76) store { ptr, i64, i64 } %t73, ptr %a77 call void @finch_str_drop(ptr %a77) @@ -47186,12 +48834,12 @@ inrange4607: %t82 = load ptr, ptr %a1 %t83 = getelementptr inbounds %S.gen.FnSig, ptr %a10, i32 0, i32 1 %t84 = load { ptr, i64, i64 }, ptr %t83 - store { ptr, i64, i64 } { ptr @.str.2863, i64 30, i64 0 }, ptr %a86 + store { ptr, i64, i64 } { ptr @.str.2948, i64 30, i64 0 }, ptr %a86 store { ptr, i64, i64 } %t84, ptr %a87 call void @finch_str_concat(ptr %a85, ptr %a86, ptr %a87) %t88 = load { ptr, i64, i64 }, ptr %a85 store { ptr, i64, i64 } %t88, ptr %a90 - store { ptr, i64, i64 } { ptr @.str.2864, i64 17, i64 0 }, ptr %a91 + store { ptr, i64, i64 } { ptr @.str.2949, i64 17, i64 0 }, ptr %a91 call void @finch_str_concat(ptr %a89, ptr %a90, ptr %a91) store { ptr, i64, i64 } %t88, ptr %a92 call void @finch_str_drop(ptr %a92) @@ -47202,7 +48850,7 @@ inrange4607: %t98 = getelementptr inbounds %S.gen.FnSig, ptr %a10, i32 0, i32 11 %t99 = getelementptr inbounds { ptr, i64, i64 }, ptr %t98, i32 0, i32 1 %t100 = load i64, ptr %t99 - call void @finch_str_sub(ptr %a97, ptr %a96, i64 1, i64 %t100, ptr @.str.2865, i64 2059) + call void @finch_str_sub(ptr %a97, ptr %a96, i64 1, i64 %t100, ptr @.str.2950, i64 2140) %t101 = load { ptr, i64, i64 }, ptr %a97 store { ptr, i64, i64 } %t93, ptr %a103 store { ptr, i64, i64 } %t101, ptr %a104 @@ -47213,7 +48861,7 @@ inrange4607: call void @finch_str_drop(ptr %a106) %t107 = load { ptr, i64, i64 }, ptr %a102 store { ptr, i64, i64 } %t107, ptr %a109 - store { ptr, i64, i64 } { ptr @.str.2866, i64 11, i64 0 }, ptr %a110 + store { ptr, i64, i64 } { ptr @.str.2951, i64 11, i64 0 }, ptr %a110 call void @finch_str_concat(ptr %a108, ptr %a109, ptr %a110) store { ptr, i64, i64 } %t107, ptr %a111 call void @finch_str_drop(ptr %a111) @@ -47230,7 +48878,7 @@ inrange4607: call void @finch_str_drop(ptr %a120) %t121 = load { ptr, i64, i64 }, ptr %a116 store { ptr, i64, i64 } %t121, ptr %a123 - store { ptr, i64, i64 } { ptr @.str.2867, i64 9, i64 0 }, ptr %a124 + store { ptr, i64, i64 } { ptr @.str.2952, i64 9, i64 0 }, ptr %a124 call void @finch_str_concat(ptr %a122, ptr %a123, ptr %a124) store { ptr, i64, i64 } %t121, ptr %a125 call void @finch_str_drop(ptr %a125) @@ -47247,7 +48895,7 @@ inrange4607: call void @finch_str_drop(ptr %a134) %t135 = load { ptr, i64, i64 }, ptr %a130 store { ptr, i64, i64 } %t135, ptr %a137 - store { ptr, i64, i64 } { ptr @.str.2868, i64 8, i64 0 }, ptr %a138 + store { ptr, i64, i64 } { ptr @.str.2953, i64 8, i64 0 }, ptr %a138 call void @finch_str_concat(ptr %a136, ptr %a137, ptr %a138) store { ptr, i64, i64 } %t135, ptr %a139 call void @finch_str_drop(ptr %a139) @@ -47265,7 +48913,7 @@ inrange4607: call void @finch_str_drop(ptr %a149) %t150 = load { ptr, i64, i64 }, ptr %a145 store { ptr, i64, i64 } %t150, ptr %a152 - store { ptr, i64, i64 } { ptr @.str.2869, i64 9, i64 0 }, ptr %a153 + store { ptr, i64, i64 } { ptr @.str.2954, i64 9, i64 0 }, ptr %a153 call void @finch_str_concat(ptr %a151, ptr %a152, ptr %a153) store { ptr, i64, i64 } %t150, ptr %a154 call void @finch_str_drop(ptr %a154) @@ -47282,7 +48930,7 @@ inrange4607: call void @finch_str_drop(ptr %a163) %t164 = load { ptr, i64, i64 }, ptr %a159 store { ptr, i64, i64 } %t164, ptr %a166 - store { ptr, i64, i64 } { ptr @.str.2870, i64 13, i64 0 }, ptr %a167 + store { ptr, i64, i64 } { ptr @.str.2955, i64 13, i64 0 }, ptr %a167 call void @finch_str_concat(ptr %a165, ptr %a166, ptr %a167) store { ptr, i64, i64 } %t164, ptr %a168 call void @finch_str_drop(ptr %a168) @@ -47300,7 +48948,7 @@ inrange4607: call void @finch_str_drop(ptr %a178) %t179 = load { ptr, i64, i64 }, ptr %a174 store { ptr, i64, i64 } %t179, ptr %a181 - store { ptr, i64, i64 } { ptr @.str.2871, i64 87, i64 0 }, ptr %a182 + store { ptr, i64, i64 } { ptr @.str.2956, i64 87, i64 0 }, ptr %a182 call void @finch_str_concat(ptr %a180, ptr %a181, ptr %a182) store { ptr, i64, i64 } %t179, ptr %a183 call void @finch_str_drop(ptr %a183) @@ -47406,72 +49054,72 @@ entry: store { ptr, i64, i64 } %p4, ptr %a5 %t6 = load ptr, ptr %a1 %t7 = icmp eq ptr %t6, null - br i1 %t7, label %panic4608, label %ok4609 -panic4608: - call void @finch_panic(ptr @.str.2872, i64 2063, ptr @.str.2873) + br i1 %t7, label %panic4752, label %ok4753 +panic4752: + call void @finch_panic(ptr @.str.2957, i64 2144, ptr @.str.2958) unreachable -ok4609: - %t8 = getelementptr inbounds %S.gen.Gen, ptr %t6, i32 0, i32 29 +ok4753: + %t8 = getelementptr inbounds %S.gen.Gen, ptr %t6, i32 0, i32 30 %t9 = load i1, ptr %t8 %t10 = xor i1 %t9, true - br label %logic.from4610 -logic.from4610: - br i1 %t10, label %logic.end4612, label %logic.rhs4611 -logic.rhs4611: + br label %logic.from4754 +logic.from4754: + br i1 %t10, label %logic.end4756, label %logic.rhs4755 +logic.rhs4755: %t11 = load ptr, ptr %a1 %t12 = icmp eq ptr %t11, null - br i1 %t12, label %panic4613, label %ok4614 -panic4613: - call void @finch_panic(ptr @.str.2874, i64 2063, ptr @.str.2875) + br i1 %t12, label %panic4757, label %ok4758 +panic4757: + call void @finch_panic(ptr @.str.2959, i64 2144, ptr @.str.2960) unreachable -ok4614: - %t13 = getelementptr inbounds %S.gen.Gen, ptr %t11, i32 0, i32 35 +ok4758: + %t13 = getelementptr inbounds %S.gen.Gen, ptr %t11, i32 0, i32 36 %t14 = load i64, ptr %t13 %t15 = icmp slt i64 %t14, 0 - br label %logic.rend4615 -logic.rend4615: - br label %logic.end4612 -logic.end4612: - %t16 = phi i1 [ true, %logic.from4610 ], [ %t15, %logic.rend4615 ] - br i1 %t16, label %then4616, label %endif4618 -then4616: + br label %logic.rend4759 +logic.rend4759: + br label %logic.end4756 +logic.end4756: + %t16 = phi i1 [ true, %logic.from4754 ], [ %t15, %logic.rend4759 ] + br i1 %t16, label %then4760, label %endif4762 +then4760: ret void -endif4618: +endif4762: %t17 = load ptr, ptr %a1 %t18 = load %S.ast.Type, ptr %a4 %t19 = call i64 @finch.gen.diType(ptr %t17, %S.ast.Type %t18) store i64 %t19, ptr %a20 %t21 = load i64, ptr %a20 %t22 = icmp slt i64 %t21, 0 - br i1 %t22, label %then4619, label %endif4621 -then4619: + br i1 %t22, label %then4763, label %endif4765 +then4763: ret void -endif4621: - store { ptr, i64, i64 } { ptr @.str.2876, i64 0, i64 0 }, ptr %a23 +endif4765: + store { ptr, i64, i64 } { ptr @.str.2961, i64 0, i64 0 }, ptr %a23 %t24 = load ptr, ptr %a1 %t25 = icmp eq ptr %t24, null - br i1 %t25, label %panic4622, label %ok4623 -panic4622: - call void @finch_panic(ptr @.str.2877, i64 2071, ptr @.str.2878) + br i1 %t25, label %panic4766, label %ok4767 +panic4766: + call void @finch_panic(ptr @.str.2962, i64 2152, ptr @.str.2963) unreachable -ok4623: - %t26 = getelementptr inbounds %S.gen.Gen, ptr %t24, i32 0, i32 38 +ok4767: + %t26 = getelementptr inbounds %S.gen.Gen, ptr %t24, i32 0, i32 39 %t27 = load i64, ptr %t26 %t28 = icmp sgt i64 %t27, 0 - br i1 %t28, label %then4624, label %endif4626 -then4624: + br i1 %t28, label %then4768, label %endif4770 +then4768: %t29 = load ptr, ptr %a1 %t30 = icmp eq ptr %t29, null - br i1 %t30, label %panic4627, label %ok4628 -panic4627: - call void @finch_panic(ptr @.str.2880, i64 2072, ptr @.str.2881) + br i1 %t30, label %panic4771, label %ok4772 +panic4771: + call void @finch_panic(ptr @.str.2965, i64 2153, ptr @.str.2966) unreachable -ok4628: - %t31 = getelementptr inbounds %S.gen.Gen, ptr %t29, i32 0, i32 38 +ok4772: + %t31 = getelementptr inbounds %S.gen.Gen, ptr %t29, i32 0, i32 39 %t32 = load i64, ptr %t31 call void @finch_str_from_int(ptr %a33, i64 %t32) %t34 = load { ptr, i64, i64 }, ptr %a33 - store { ptr, i64, i64 } { ptr @.str.2879, i64 7, i64 0 }, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.2964, i64 7, i64 0 }, ptr %a36 store { ptr, i64, i64 } %t34, ptr %a37 call void @finch_str_concat(ptr %a35, ptr %a36, ptr %a37) store { ptr, i64, i64 } %t34, ptr %a38 @@ -47481,28 +49129,28 @@ ok4628: store { ptr, i64, i64 } %t39, ptr %a23 store { ptr, i64, i64 } %t40, ptr %a41 call void @finch_str_drop(ptr %a41) - br label %endif4626 -endif4626: + br label %endif4770 +endif4770: %t42 = load ptr, ptr %a1 %t43 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.2882, i64 24, i64 0 }, ptr %a45 + store { ptr, i64, i64 } { ptr @.str.2967, i64 24, i64 0 }, ptr %a45 store { ptr, i64, i64 } %t43, ptr %a46 call void @finch_str_concat(ptr %a44, ptr %a45, ptr %a46) %t47 = load { ptr, i64, i64 }, ptr %a44 store { ptr, i64, i64 } %t47, ptr %a49 - store { ptr, i64, i64 } { ptr @.str.2883, i64 11, i64 0 }, ptr %a50 + store { ptr, i64, i64 } { ptr @.str.2968, i64 11, i64 0 }, ptr %a50 call void @finch_str_concat(ptr %a48, ptr %a49, ptr %a50) store { ptr, i64, i64 } %t47, ptr %a51 call void @finch_str_drop(ptr %a51) %t52 = load { ptr, i64, i64 }, ptr %a48 %t53 = load ptr, ptr %a1 %t54 = icmp eq ptr %t53, null - br i1 %t54, label %panic4629, label %ok4630 -panic4629: - call void @finch_panic(ptr @.str.2884, i64 2074, ptr @.str.2885) + br i1 %t54, label %panic4773, label %ok4774 +panic4773: + call void @finch_panic(ptr @.str.2969, i64 2155, ptr @.str.2970) unreachable -ok4630: - %t55 = getelementptr inbounds %S.gen.Gen, ptr %t53, i32 0, i32 35 +ok4774: + %t55 = getelementptr inbounds %S.gen.Gen, ptr %t53, i32 0, i32 36 %t56 = load i64, ptr %t55 call void @finch_str_from_int(ptr %a57, i64 %t56) %t58 = load { ptr, i64, i64 }, ptr %a57 @@ -47515,29 +49163,29 @@ ok4630: call void @finch_str_drop(ptr %a63) %t64 = load { ptr, i64, i64 }, ptr %a59 store { ptr, i64, i64 } %t64, ptr %a66 - store { ptr, i64, i64 } { ptr @.str.2886, i64 9, i64 0 }, ptr %a67 + store { ptr, i64, i64 } { ptr @.str.2971, i64 9, i64 0 }, ptr %a67 call void @finch_str_concat(ptr %a65, ptr %a66, ptr %a67) store { ptr, i64, i64 } %t64, ptr %a68 call void @finch_str_drop(ptr %a68) %t69 = load { ptr, i64, i64 }, ptr %a65 %t70 = load ptr, ptr %a1 %t71 = icmp eq ptr %t70, null - br i1 %t71, label %panic4631, label %ok4632 -panic4631: - call void @finch_panic(ptr @.str.2887, i64 2074, ptr @.str.2888) + br i1 %t71, label %panic4775, label %ok4776 +panic4775: + call void @finch_panic(ptr @.str.2972, i64 2155, ptr @.str.2973) unreachable -ok4632: - %t72 = getelementptr inbounds %S.gen.Gen, ptr %t70, i32 0, i32 34 +ok4776: + %t72 = getelementptr inbounds %S.gen.Gen, ptr %t70, i32 0, i32 35 %t73 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 13 %t74 = load i64, ptr %t73 %t75 = load { ptr, i64, i64 }, ptr %t72 %t76 = extractvalue { ptr, i64, i64 } %t75, 1 %t77 = icmp uge i64 %t74, %t76 - br i1 %t77, label %range4633, label %inrange4634 -range4633: - call void @finch_panic_index(ptr @.str.2889, i64 2074, i64 %t74, i64 %t76) + br i1 %t77, label %range4777, label %inrange4778 +range4777: + call void @finch_panic_index(ptr @.str.2974, i64 2155, i64 %t74, i64 %t76) unreachable -inrange4634: +inrange4778: %t78 = extractvalue { ptr, i64, i64 } %t75, 0 %t79 = getelementptr inbounds i64, ptr %t78, i64 %t74 %t80 = load i64, ptr %t79 @@ -47552,7 +49200,7 @@ inrange4634: call void @finch_str_drop(ptr %a87) %t88 = load { ptr, i64, i64 }, ptr %a83 store { ptr, i64, i64 } %t88, ptr %a90 - store { ptr, i64, i64 } { ptr @.str.2890, i64 8, i64 0 }, ptr %a91 + store { ptr, i64, i64 } { ptr @.str.2975, i64 8, i64 0 }, ptr %a91 call void @finch_str_concat(ptr %a89, ptr %a90, ptr %a91) store { ptr, i64, i64 } %t88, ptr %a92 call void @finch_str_drop(ptr %a92) @@ -47570,7 +49218,7 @@ inrange4634: call void @finch_str_drop(ptr %a102) %t103 = load { ptr, i64, i64 }, ptr %a98 store { ptr, i64, i64 } %t103, ptr %a105 - store { ptr, i64, i64 } { ptr @.str.2891, i64 9, i64 0 }, ptr %a106 + store { ptr, i64, i64 } { ptr @.str.2976, i64 9, i64 0 }, ptr %a106 call void @finch_str_concat(ptr %a104, ptr %a105, ptr %a106) store { ptr, i64, i64 } %t103, ptr %a107 call void @finch_str_drop(ptr %a107) @@ -47594,7 +49242,7 @@ inrange4634: call void @finch_str_drop(ptr %a122) %t123 = load { ptr, i64, i64 }, ptr %a119 store { ptr, i64, i64 } %t123, ptr %a125 - store { ptr, i64, i64 } { ptr @.str.2892, i64 1, i64 0 }, ptr %a126 + store { ptr, i64, i64 } { ptr @.str.2977, i64 1, i64 0 }, ptr %a126 call void @finch_str_concat(ptr %a124, ptr %a125, ptr %a126) store { ptr, i64, i64 } %t123, ptr %a127 call void @finch_str_drop(ptr %a127) @@ -47607,32 +49255,32 @@ inrange4634: %t133 = load i64, ptr %t132 %t134 = load ptr, ptr %a1 %t135 = icmp eq ptr %t134, null - br i1 %t135, label %panic4635, label %ok4636 -panic4635: - call void @finch_panic(ptr @.str.2893, i64 2075, ptr @.str.2894) + br i1 %t135, label %panic4779, label %ok4780 +panic4779: + call void @finch_panic(ptr @.str.2978, i64 2156, ptr @.str.2979) unreachable -ok4636: - %t136 = getelementptr inbounds %S.gen.Gen, ptr %t134, i32 0, i32 36 +ok4780: + %t136 = getelementptr inbounds %S.gen.Gen, ptr %t134, i32 0, i32 37 store i64 %t133, ptr %t136 %t137 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 12 %t138 = load i64, ptr %t137 %t139 = load ptr, ptr %a1 %t140 = icmp eq ptr %t139, null - br i1 %t140, label %panic4637, label %ok4638 -panic4637: - call void @finch_panic(ptr @.str.2895, i64 2076, ptr @.str.2896) + br i1 %t140, label %panic4781, label %ok4782 +panic4781: + call void @finch_panic(ptr @.str.2980, i64 2157, ptr @.str.2981) unreachable -ok4638: - %t141 = getelementptr inbounds %S.gen.Gen, ptr %t139, i32 0, i32 37 +ok4782: + %t141 = getelementptr inbounds %S.gen.Gen, ptr %t139, i32 0, i32 38 store i64 %t138, ptr %t141 %t142 = load ptr, ptr %a1 %t143 = load { ptr, i64, i64 }, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.2897, i64 41, i64 0 }, ptr %a145 + store { ptr, i64, i64 } { ptr @.str.2982, i64 41, i64 0 }, ptr %a145 store { ptr, i64, i64 } %t143, ptr %a146 call void @finch_str_concat(ptr %a144, ptr %a145, ptr %a146) %t147 = load { ptr, i64, i64 }, ptr %a144 store { ptr, i64, i64 } %t147, ptr %a149 - store { ptr, i64, i64 } { ptr @.str.2898, i64 12, i64 0 }, ptr %a150 + store { ptr, i64, i64 } { ptr @.str.2983, i64 12, i64 0 }, ptr %a150 call void @finch_str_concat(ptr %a148, ptr %a149, ptr %a150) store { ptr, i64, i64 } %t147, ptr %a151 call void @finch_str_drop(ptr %a151) @@ -47649,7 +49297,7 @@ ok4638: call void @finch_str_drop(ptr %a160) %t161 = load { ptr, i64, i64 }, ptr %a156 store { ptr, i64, i64 } %t161, ptr %a163 - store { ptr, i64, i64 } { ptr @.str.2899, i64 27, i64 0 }, ptr %a164 + store { ptr, i64, i64 } { ptr @.str.2984, i64 27, i64 0 }, ptr %a164 call void @finch_str_concat(ptr %a162, ptr %a163, ptr %a164) store { ptr, i64, i64 } %t161, ptr %a165 call void @finch_str_drop(ptr %a165) @@ -47689,63 +49337,63 @@ entry: %t2 = mul i64 2, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t3 = call ptr @finch_alloc(i64 %t2) %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 0 - store { ptr, i64, i64 } { ptr @.str.2900, i64 20, i64 0 }, ptr %t4 + store { ptr, i64, i64 } { ptr @.str.2985, i64 20, i64 0 }, ptr %t4 %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 1 - store { ptr, i64, i64 } { ptr @.str.2901, i64 30, i64 0 }, ptr %t5 + store { ptr, i64, i64 } { ptr @.str.2986, i64 30, i64 0 }, ptr %t5 %t6 = insertvalue { ptr, i64, i64 } undef, ptr %t3, 0 %t7 = insertvalue { ptr, i64, i64 } %t6, i64 2, 1 %t8 = insertvalue { ptr, i64, i64 } %t7, i64 2, 2 store { ptr, i64, i64 } %t8, ptr %a9 %t10 = load ptr, ptr %a1 %t11 = icmp eq ptr %t10, null - br i1 %t11, label %panic4639, label %ok4640 -panic4639: - call void @finch_panic(ptr @.str.2902, i64 2083, ptr @.str.2903) + br i1 %t11, label %panic4783, label %ok4784 +panic4783: + call void @finch_panic(ptr @.str.2987, i64 2164, ptr @.str.2988) unreachable -ok4640: - %t12 = getelementptr inbounds %S.gen.Gen, ptr %t10, i32 0, i32 32 +ok4784: + %t12 = getelementptr inbounds %S.gen.Gen, ptr %t10, i32 0, i32 33 %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %t12, i32 0, i32 1 %t14 = load i64, ptr %t13 store i64 0, ptr %a15 - br label %for.cond4641 -for.cond4641: + br label %for.cond4785 +for.cond4785: %t16 = load i64, ptr %a15 %t17 = icmp slt i64 %t16, %t14 - br i1 %t17, label %for.body4642, label %for.end4644 -for.body4642: + br i1 %t17, label %for.body4786, label %for.end4788 +for.body4786: %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %a9, i32 0, i32 1 %t19 = load i64, ptr %a15 call void @finch_str_from_int(ptr %a20, i64 %t19) %t21 = load { ptr, i64, i64 }, ptr %a20 - store { ptr, i64, i64 } { ptr @.str.2904, i64 1, i64 0 }, ptr %a23 + store { ptr, i64, i64 } { ptr @.str.2989, i64 1, i64 0 }, ptr %a23 store { ptr, i64, i64 } %t21, ptr %a24 call void @finch_str_concat(ptr %a22, ptr %a23, ptr %a24) store { ptr, i64, i64 } %t21, ptr %a25 call void @finch_str_drop(ptr %a25) %t26 = load { ptr, i64, i64 }, ptr %a22 store { ptr, i64, i64 } %t26, ptr %a28 - store { ptr, i64, i64 } { ptr @.str.2905, i64 3, i64 0 }, ptr %a29 + store { ptr, i64, i64 } { ptr @.str.2990, i64 3, i64 0 }, ptr %a29 call void @finch_str_concat(ptr %a27, ptr %a28, ptr %a29) store { ptr, i64, i64 } %t26, ptr %a30 call void @finch_str_drop(ptr %a30) %t31 = load { ptr, i64, i64 }, ptr %a27 %t32 = load ptr, ptr %a1 %t33 = icmp eq ptr %t32, null - br i1 %t33, label %panic4645, label %ok4646 -panic4645: - call void @finch_panic(ptr @.str.2906, i64 2084, ptr @.str.2907) + br i1 %t33, label %panic4789, label %ok4790 +panic4789: + call void @finch_panic(ptr @.str.2991, i64 2165, ptr @.str.2992) unreachable -ok4646: - %t34 = getelementptr inbounds %S.gen.Gen, ptr %t32, i32 0, i32 32 +ok4790: + %t34 = getelementptr inbounds %S.gen.Gen, ptr %t32, i32 0, i32 33 %t35 = load i64, ptr %a15 %t36 = load { ptr, i64, i64 }, ptr %t34 %t37 = extractvalue { ptr, i64, i64 } %t36, 1 %t38 = icmp uge i64 %t35, %t37 - br i1 %t38, label %range4647, label %inrange4648 -range4647: - call void @finch_panic_index(ptr @.str.2908, i64 2084, i64 %t35, i64 %t37) + br i1 %t38, label %range4791, label %inrange4792 +range4791: + call void @finch_panic_index(ptr @.str.2993, i64 2165, i64 %t35, i64 %t37) unreachable -inrange4648: +inrange4792: %t39 = extractvalue { ptr, i64, i64 } %t36, 0 %t40 = getelementptr inbounds { ptr, i64, i64 }, ptr %t39, i64 %t35 %t41 = load { ptr, i64, i64 }, ptr %t40 @@ -47762,19 +49410,19 @@ inrange4648: %t50 = getelementptr inbounds { ptr, i64, i64 }, ptr %t49, i64 %t47 store { ptr, i64, i64 } %t46, ptr %t50 store i64 %t48, ptr %t18 - br label %for.step4643 -for.step4643: + br label %for.step4787 +for.step4787: %t51 = load i64, ptr %a15 %t52 = add i64 %t51, 1 store i64 %t52, ptr %a15 - br label %for.cond4641 -for.end4644: + br label %for.cond4785 +for.end4788: %t53 = getelementptr inbounds { ptr, i64, i64 }, ptr %a9, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.2909, i64 1, i64 0 }, ptr %a54 + store { ptr, i64, i64 } { ptr @.str.2994, i64 1, i64 0 }, ptr %a54 call void @finch_str_join(ptr %a55, ptr %a9, ptr %a54) %t56 = load { ptr, i64, i64 }, ptr %a55 store { ptr, i64, i64 } %t56, ptr %a58 - store { ptr, i64, i64 } { ptr @.str.2910, i64 1, i64 0 }, ptr %a59 + store { ptr, i64, i64 } { ptr @.str.2995, i64 1, i64 0 }, ptr %a59 call void @finch_str_concat(ptr %a57, ptr %a58, ptr %a59) store { ptr, i64, i64 } %t56, ptr %a60 call void @finch_str_drop(ptr %a60) @@ -47792,20 +49440,20 @@ entry: %t3 = getelementptr inbounds { ptr, i64, i64 }, ptr %src, i32 0, i32 1 %t4 = load i64, ptr %t3 store i64 0, ptr %a5 - br label %n.cond4720 -n.cond4720: + br label %n.cond4864 +n.cond4864: %t6 = load i64, ptr %a5 %t7 = icmp slt i64 %t6, %t4 - br i1 %t7, label %n.body4721, label %n.end4722 -n.body4721: + br i1 %t7, label %n.body4865, label %n.end4866 +n.body4865: %t8 = getelementptr inbounds %S.gen.Var, ptr %t1, i64 %t6 %t9 = getelementptr inbounds %S.gen.Var, ptr %t2, i64 %t6 call void @finch.copy.S_gen_Var(ptr %t8, ptr %t9) %t10 = load i64, ptr %a5 %t11 = add i64 %t10, 1 store i64 %t11, ptr %a5 - br label %n.cond4720 -n.end4722: + br label %n.cond4864 +n.end4866: ret void } @@ -47845,20 +49493,20 @@ entry: %t3 = getelementptr inbounds { ptr, i64, i64 }, ptr %src, i32 0, i32 1 %t4 = load i64, ptr %t3 store i64 0, ptr %a5 - br label %n.cond4717 -n.cond4717: + br label %n.cond4861 +n.cond4861: %t6 = load i64, ptr %a5 %t7 = icmp slt i64 %t6, %t4 - br i1 %t7, label %n.body4718, label %n.end4719 -n.body4718: + br i1 %t7, label %n.body4862, label %n.end4863 +n.body4862: %t8 = getelementptr inbounds %S.gen.Scope, ptr %t1, i64 %t6 %t9 = getelementptr inbounds %S.gen.Scope, ptr %t2, i64 %t6 call void @finch.copy.S_gen_Scope(ptr %t8, ptr %t9) %t10 = load i64, ptr %a5 %t11 = add i64 %t10, 1 store i64 %t11, ptr %a5 - br label %n.cond4717 -n.end4719: + br label %n.cond4861 +n.end4863: ret void } @@ -47869,19 +49517,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond4723 -n.cond4723: + br label %n.cond4867 +n.cond4867: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body4724, label %n.end4725 -n.body4724: + br i1 %t6, label %n.body4868, label %n.end4869 +n.body4868: %t7 = getelementptr inbounds %S.gen.Scope, ptr %t1, i64 %t5 call void @finch.drop.S_gen_Scope(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond4723 -n.end4725: + br label %n.cond4867 +n.end4869: call void @finch_arr_free(ptr %a) ret void } @@ -48052,31 +49700,31 @@ entry: store i64 %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic4649, label %ok4650 -panic4649: - call void @finch_panic(ptr @.str.2911, i64 2090, ptr @.str.2912) + br i1 %t4, label %panic4793, label %ok4794 +panic4793: + call void @finch_panic(ptr @.str.2996, i64 2171, ptr @.str.2997) unreachable -ok4650: +ok4794: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 15 %t6 = load i64, ptr %a2 %t7 = load { ptr, i64, i64 }, ptr %t5 %t8 = extractvalue { ptr, i64, i64 } %t7, 1 %t9 = icmp uge i64 %t6, %t8 - br i1 %t9, label %range4651, label %inrange4652 -range4651: - call void @finch_panic_index(ptr @.str.2913, i64 2090, i64 %t6, i64 %t8) + br i1 %t9, label %range4795, label %inrange4796 +range4795: + call void @finch_panic_index(ptr @.str.2998, i64 2171, i64 %t6, i64 %t8) unreachable -inrange4652: +inrange4796: %t10 = extractvalue { ptr, i64, i64 } %t7, 0 %t11 = getelementptr inbounds %S.gen.FnSig, ptr %t10, i64 %t6 %t12 = load %S.gen.FnSig, ptr %t11 %t13 = load ptr, ptr %a1 %t14 = icmp eq ptr %t13, null - br i1 %t14, label %panic4653, label %ok4654 -panic4653: - call void @finch_panic(ptr @.str.2914, i64 2090, ptr @.str.2915) + br i1 %t14, label %panic4797, label %ok4798 +panic4797: + call void @finch_panic(ptr @.str.2999, i64 2171, ptr @.str.3000) unreachable -ok4654: +ok4798: %t15 = getelementptr inbounds %S.gen.Gen, ptr %t13, i32 0, i32 13 store %S.gen.FnSig %t12, ptr %a16 call void @finch.copy.S_gen_FnSig(ptr %a17, ptr %a16) @@ -48087,21 +49735,21 @@ ok4654: call void @finch.drop.S_gen_FnSig(ptr %a20) %t21 = load ptr, ptr %a1 %t22 = icmp eq ptr %t21, null - br i1 %t22, label %panic4655, label %ok4656 -panic4655: - call void @finch_panic(ptr @.str.2916, i64 2091, ptr @.str.2917) + br i1 %t22, label %panic4799, label %ok4800 +panic4799: + call void @finch_panic(ptr @.str.3001, i64 2172, ptr @.str.3002) unreachable -ok4656: +ok4800: %t23 = getelementptr inbounds %S.gen.Gen, ptr %t21, i32 0, i32 13 %t24 = getelementptr inbounds %S.gen.FnSig, ptr %t23, i32 0, i32 0 %t25 = load { ptr, i64, i64 }, ptr %t24 %t26 = load ptr, ptr %a1 %t27 = icmp eq ptr %t26, null - br i1 %t27, label %panic4657, label %ok4658 -panic4657: - call void @finch_panic(ptr @.str.2918, i64 2091, ptr @.str.2919) + br i1 %t27, label %panic4801, label %ok4802 +panic4801: + call void @finch_panic(ptr @.str.3003, i64 2172, ptr @.str.3004) unreachable -ok4658: +ok4802: %t28 = getelementptr inbounds %S.gen.Gen, ptr %t26, i32 0, i32 14 store { ptr, i64, i64 } %t25, ptr %a29 call void @finch_str_copy(ptr %a30, ptr %a29) @@ -48112,21 +49760,21 @@ ok4658: call void @finch_str_drop(ptr %a33) %t34 = load ptr, ptr %a1 %t35 = icmp eq ptr %t34, null - br i1 %t35, label %panic4659, label %ok4660 -panic4659: - call void @finch_panic(ptr @.str.2920, i64 2092, ptr @.str.2921) + br i1 %t35, label %panic4803, label %ok4804 +panic4803: + call void @finch_panic(ptr @.str.3005, i64 2173, ptr @.str.3006) unreachable -ok4660: +ok4804: %t36 = getelementptr inbounds %S.gen.Gen, ptr %t34, i32 0, i32 13 %t37 = getelementptr inbounds %S.gen.FnSig, ptr %t36, i32 0, i32 6 %t38 = load { ptr, i64, i64 }, ptr %t37 %t39 = load ptr, ptr %a1 %t40 = icmp eq ptr %t39, null - br i1 %t40, label %panic4661, label %ok4662 -panic4661: - call void @finch_panic(ptr @.str.2922, i64 2092, ptr @.str.2923) + br i1 %t40, label %panic4805, label %ok4806 +panic4805: + call void @finch_panic(ptr @.str.3007, i64 2173, ptr @.str.3008) unreachable -ok4662: +ok4806: %t41 = getelementptr inbounds %S.gen.Gen, ptr %t39, i32 0, i32 18 store { ptr, i64, i64 } %t38, ptr %a42 call void @finch.copy.arr_str(ptr %a43, ptr %a42) @@ -48137,21 +49785,21 @@ ok4662: call void @finch.drop.arr_str(ptr %a46) %t47 = load ptr, ptr %a1 %t48 = icmp eq ptr %t47, null - br i1 %t48, label %panic4663, label %ok4664 -panic4663: - call void @finch_panic(ptr @.str.2924, i64 2093, ptr @.str.2925) + br i1 %t48, label %panic4807, label %ok4808 +panic4807: + call void @finch_panic(ptr @.str.3009, i64 2174, ptr @.str.3010) unreachable -ok4664: +ok4808: %t49 = getelementptr inbounds %S.gen.Gen, ptr %t47, i32 0, i32 13 %t50 = getelementptr inbounds %S.gen.FnSig, ptr %t49, i32 0, i32 7 %t51 = load { ptr, i64, i64 }, ptr %t50 %t52 = load ptr, ptr %a1 %t53 = icmp eq ptr %t52, null - br i1 %t53, label %panic4665, label %ok4666 -panic4665: - call void @finch_panic(ptr @.str.2926, i64 2093, ptr @.str.2927) + br i1 %t53, label %panic4809, label %ok4810 +panic4809: + call void @finch_panic(ptr @.str.3011, i64 2174, ptr @.str.3012) unreachable -ok4666: +ok4810: %t54 = getelementptr inbounds %S.gen.Gen, ptr %t52, i32 0, i32 19 store { ptr, i64, i64 } %t51, ptr %a55 call void @finch.copy.arr_S_ast_Type(ptr %a56, ptr %a55) @@ -48162,111 +49810,111 @@ ok4666: call void @finch.drop.arr_S_ast_Type(ptr %a59) %t60 = load ptr, ptr %a1 %t61 = icmp eq ptr %t60, null - br i1 %t61, label %panic4667, label %ok4668 -panic4667: - call void @finch_panic(ptr @.str.2929, i64 2094, ptr @.str.2930) + br i1 %t61, label %panic4811, label %ok4812 +panic4811: + call void @finch_panic(ptr @.str.3014, i64 2175, ptr @.str.3015) unreachable -ok4668: +ok4812: %t62 = getelementptr inbounds %S.gen.Gen, ptr %t60, i32 0, i32 20 %t63 = load { ptr, i64, i64 }, ptr %t62 - store { ptr, i64, i64 } { ptr @.str.2928, i64 0, i64 0 }, ptr %t62 + store { ptr, i64, i64 } { ptr @.str.3013, i64 0, i64 0 }, ptr %t62 store { ptr, i64, i64 } %t63, ptr %a64 call void @finch_str_drop(ptr %a64) %t65 = load ptr, ptr %a1 %t66 = icmp eq ptr %t65, null - br i1 %t66, label %panic4669, label %ok4670 -panic4669: - call void @finch_panic(ptr @.str.2931, i64 2095, ptr @.str.2932) + br i1 %t66, label %panic4813, label %ok4814 +panic4813: + call void @finch_panic(ptr @.str.3016, i64 2176, ptr @.str.3017) unreachable -ok4670: +ok4814: %t67 = getelementptr inbounds %S.gen.Gen, ptr %t65, i32 0, i32 13 %t68 = getelementptr inbounds %S.gen.FnSig, ptr %t67, i32 0, i32 7 %t69 = getelementptr inbounds { ptr, i64, i64 }, ptr %t68, i32 0, i32 1 %t70 = load i64, ptr %t69 %t71 = icmp sgt i64 %t70, 0 - br i1 %t71, label %then4671, label %endif4673 -then4671: + br i1 %t71, label %then4815, label %endif4817 +then4815: %t72 = load ptr, ptr %a1 %t73 = icmp eq ptr %t72, null - br i1 %t73, label %panic4674, label %ok4675 -panic4674: - call void @finch_panic(ptr @.str.2934, i64 2096, ptr @.str.2935) + br i1 %t73, label %panic4818, label %ok4819 +panic4818: + call void @finch_panic(ptr @.str.3019, i64 2177, ptr @.str.3020) unreachable -ok4675: +ok4819: %t74 = getelementptr inbounds %S.gen.Gen, ptr %t72, i32 0, i32 13 %t75 = getelementptr inbounds %S.gen.FnSig, ptr %t74, i32 0, i32 8 %t76 = load { ptr, i64, i64 }, ptr %t75 - store { ptr, i64, i64 } { ptr @.str.2933, i64 17, i64 0 }, ptr %a78 + store { ptr, i64, i64 } { ptr @.str.3018, i64 17, i64 0 }, ptr %a78 store { ptr, i64, i64 } %t76, ptr %a79 call void @finch_str_concat(ptr %a77, ptr %a78, ptr %a79) %t80 = load { ptr, i64, i64 }, ptr %a77 store { ptr, i64, i64 } %t80, ptr %a82 - store { ptr, i64, i64 } { ptr @.str.2936, i64 1, i64 0 }, ptr %a83 + store { ptr, i64, i64 } { ptr @.str.3021, i64 1, i64 0 }, ptr %a83 call void @finch_str_concat(ptr %a81, ptr %a82, ptr %a83) store { ptr, i64, i64 } %t80, ptr %a84 call void @finch_str_drop(ptr %a84) %t85 = load { ptr, i64, i64 }, ptr %a81 %t86 = load ptr, ptr %a1 %t87 = icmp eq ptr %t86, null - br i1 %t87, label %panic4676, label %ok4677 -panic4676: - call void @finch_panic(ptr @.str.2937, i64 2096, ptr @.str.2938) + br i1 %t87, label %panic4820, label %ok4821 +panic4820: + call void @finch_panic(ptr @.str.3022, i64 2177, ptr @.str.3023) unreachable -ok4677: +ok4821: %t88 = getelementptr inbounds %S.gen.Gen, ptr %t86, i32 0, i32 20 %t89 = load { ptr, i64, i64 }, ptr %t88 store { ptr, i64, i64 } %t85, ptr %t88 store { ptr, i64, i64 } %t89, ptr %a90 call void @finch_str_drop(ptr %a90) - br label %endif4673 -endif4673: + br label %endif4817 +endif4817: %t91 = load ptr, ptr %a1 %t92 = icmp eq ptr %t91, null - br i1 %t92, label %panic4678, label %ok4679 -panic4678: - call void @finch_panic(ptr @.str.2939, i64 2098, ptr @.str.2940) + br i1 %t92, label %panic4822, label %ok4823 +panic4822: + call void @finch_panic(ptr @.str.3024, i64 2179, ptr @.str.3025) unreachable -ok4679: +ok4823: %t93 = getelementptr inbounds %S.gen.Gen, ptr %t91, i32 0, i32 0 %t94 = load ptr, ptr %a1 %t95 = icmp eq ptr %t94, null - br i1 %t95, label %panic4680, label %ok4681 -panic4680: - call void @finch_panic(ptr @.str.2941, i64 2098, ptr @.str.2942) + br i1 %t95, label %panic4824, label %ok4825 +panic4824: + call void @finch_panic(ptr @.str.3026, i64 2179, ptr @.str.3027) unreachable -ok4681: +ok4825: %t96 = getelementptr inbounds %S.gen.Gen, ptr %t94, i32 0, i32 13 %t97 = getelementptr inbounds %S.gen.FnSig, ptr %t96, i32 0, i32 16 %t98 = load i64, ptr %t97 %t99 = load { ptr, i64, i64 }, ptr %t93 %t100 = extractvalue { ptr, i64, i64 } %t99, 1 %t101 = icmp uge i64 %t98, %t100 - br i1 %t101, label %range4682, label %inrange4683 -range4682: - call void @finch_panic_index(ptr @.str.2943, i64 2098, i64 %t98, i64 %t100) + br i1 %t101, label %range4826, label %inrange4827 +range4826: + call void @finch_panic_index(ptr @.str.3028, i64 2179, i64 %t98, i64 %t100) unreachable -inrange4683: +inrange4827: %t102 = extractvalue { ptr, i64, i64 } %t99, 0 %t103 = getelementptr inbounds %S.ast.Program, ptr %t102, i64 %t98 %t104 = getelementptr inbounds %S.ast.Program, ptr %t103, i32 0, i32 8 %t105 = load ptr, ptr %a1 %t106 = icmp eq ptr %t105, null - br i1 %t106, label %panic4684, label %ok4685 -panic4684: - call void @finch_panic(ptr @.str.2944, i64 2098, ptr @.str.2945) + br i1 %t106, label %panic4828, label %ok4829 +panic4828: + call void @finch_panic(ptr @.str.3029, i64 2179, ptr @.str.3030) unreachable -ok4685: +ok4829: %t107 = getelementptr inbounds %S.gen.Gen, ptr %t105, i32 0, i32 13 %t108 = getelementptr inbounds %S.gen.FnSig, ptr %t107, i32 0, i32 17 %t109 = load i64, ptr %t108 %t110 = load { ptr, i64, i64 }, ptr %t104 %t111 = extractvalue { ptr, i64, i64 } %t110, 1 %t112 = icmp uge i64 %t109, %t111 - br i1 %t112, label %range4686, label %inrange4687 -range4686: - call void @finch_panic_index(ptr @.str.2946, i64 2098, i64 %t109, i64 %t111) + br i1 %t112, label %range4830, label %inrange4831 +range4830: + call void @finch_panic_index(ptr @.str.3031, i64 2179, i64 %t109, i64 %t111) unreachable -inrange4687: +inrange4831: %t113 = extractvalue { ptr, i64, i64 } %t110, 0 %t114 = getelementptr inbounds %S.ast.Node, ptr %t113, i64 %t109 %t115 = load %S.ast.Node, ptr %t114 @@ -48278,11 +49926,11 @@ inrange4687: %t121 = load { ptr, i64, i64 }, ptr %a120 %t122 = load ptr, ptr %a1 %t123 = icmp eq ptr %t122, null - br i1 %t123, label %panic4688, label %ok4689 -panic4688: - call void @finch_panic(ptr @.str.2947, i64 2100, ptr @.str.2948) + br i1 %t123, label %panic4832, label %ok4833 +panic4832: + call void @finch_panic(ptr @.str.3032, i64 2181, ptr @.str.3033) unreachable -ok4689: +ok4833: %t124 = getelementptr inbounds %S.gen.Gen, ptr %t122, i32 0, i32 4 store { ptr, i64, i64 } %t121, ptr %a125 call void @finch.copy.arr_str(ptr %a126, ptr %a125) @@ -48294,11 +49942,11 @@ ok4689: %t130 = load { ptr, i64, i64 }, ptr %a120 %t131 = load ptr, ptr %a1 %t132 = icmp eq ptr %t131, null - br i1 %t132, label %panic4690, label %ok4691 -panic4690: - call void @finch_panic(ptr @.str.2949, i64 2101, ptr @.str.2950) + br i1 %t132, label %panic4834, label %ok4835 +panic4834: + call void @finch_panic(ptr @.str.3034, i64 2182, ptr @.str.3035) unreachable -ok4691: +ok4835: %t133 = getelementptr inbounds %S.gen.Gen, ptr %t131, i32 0, i32 5 store { ptr, i64, i64 } %t130, ptr %a134 call void @finch.copy.arr_str(ptr %a135, ptr %a134) @@ -48309,52 +49957,52 @@ ok4691: call void @finch.drop.arr_str(ptr %a138) %t139 = load ptr, ptr %a1 %t140 = icmp eq ptr %t139, null - br i1 %t140, label %panic4692, label %ok4693 -panic4692: - call void @finch_panic(ptr @.str.2951, i64 2102, ptr @.str.2952) + br i1 %t140, label %panic4836, label %ok4837 +panic4836: + call void @finch_panic(ptr @.str.3036, i64 2183, ptr @.str.3037) unreachable -ok4693: +ok4837: %t141 = getelementptr inbounds %S.gen.Gen, ptr %t139, i32 0, i32 6 store i64 0, ptr %t141 %t142 = load ptr, ptr %a1 %t143 = icmp eq ptr %t142, null - br i1 %t143, label %panic4694, label %ok4695 -panic4694: - call void @finch_panic(ptr @.str.2953, i64 2103, ptr @.str.2954) + br i1 %t143, label %panic4838, label %ok4839 +panic4838: + call void @finch_panic(ptr @.str.3038, i64 2184, ptr @.str.3039) unreachable -ok4695: +ok4839: %t144 = getelementptr inbounds %S.gen.Gen, ptr %t142, i32 0, i32 9 store i1 false, ptr %t144 %t145 = load ptr, ptr %a1 %t146 = icmp eq ptr %t145, null - br i1 %t146, label %panic4696, label %ok4697 -panic4696: - call void @finch_panic(ptr @.str.2955, i64 2104, ptr @.str.2956) + br i1 %t146, label %panic4840, label %ok4841 +panic4840: + call void @finch_panic(ptr @.str.3040, i64 2185, ptr @.str.3041) unreachable -ok4697: - %t147 = getelementptr inbounds %S.gen.Gen, ptr %t145, i32 0, i32 24 +ok4841: + %t147 = getelementptr inbounds %S.gen.Gen, ptr %t145, i32 0, i32 25 store i64 0, ptr %t147 %t148 = load ptr, ptr %a1 %t149 = icmp eq ptr %t148, null - br i1 %t149, label %panic4698, label %ok4699 -panic4698: - call void @finch_panic(ptr @.str.2957, i64 2105, ptr @.str.2958) + br i1 %t149, label %panic4842, label %ok4843 +panic4842: + call void @finch_panic(ptr @.str.3042, i64 2186, ptr @.str.3043) unreachable -ok4699: - %t150 = getelementptr inbounds %S.gen.Gen, ptr %t148, i32 0, i32 35 +ok4843: + %t150 = getelementptr inbounds %S.gen.Gen, ptr %t148, i32 0, i32 36 store i64 -1, ptr %t150 store i64 -1, ptr %a151 %t152 = load ptr, ptr %a1 %t153 = icmp eq ptr %t152, null - br i1 %t153, label %panic4700, label %ok4701 -panic4700: - call void @finch_panic(ptr @.str.2959, i64 2107, ptr @.str.2960) + br i1 %t153, label %panic4844, label %ok4845 +panic4844: + call void @finch_panic(ptr @.str.3044, i64 2188, ptr @.str.3045) unreachable -ok4701: - %t154 = getelementptr inbounds %S.gen.Gen, ptr %t152, i32 0, i32 29 +ok4845: + %t154 = getelementptr inbounds %S.gen.Gen, ptr %t152, i32 0, i32 30 %t155 = load i1, ptr %t154 - br i1 %t155, label %then4702, label %endif4704 -then4702: + br i1 %t155, label %then4846, label %endif4848 +then4846: %t156 = load ptr, ptr %a1 %t157 = load %S.ast.Node, ptr %a119 %t158 = call i64 @finch.gen.dbgSubprogram(ptr %t156, %S.ast.Node %t157) @@ -48362,64 +50010,64 @@ then4702: %t159 = load i64, ptr %a151 %t160 = load ptr, ptr %a1 %t161 = icmp eq ptr %t160, null - br i1 %t161, label %panic4705, label %ok4706 -panic4705: - call void @finch_panic(ptr @.str.2961, i64 2109, ptr @.str.2962) + br i1 %t161, label %panic4849, label %ok4850 +panic4849: + call void @finch_panic(ptr @.str.3046, i64 2190, ptr @.str.3047) unreachable -ok4706: - %t162 = getelementptr inbounds %S.gen.Gen, ptr %t160, i32 0, i32 35 +ok4850: + %t162 = getelementptr inbounds %S.gen.Gen, ptr %t160, i32 0, i32 36 store i64 %t159, ptr %t162 %t163 = getelementptr inbounds %S.ast.Node, ptr %a119, i32 0, i32 11 %t164 = load i64, ptr %t163 %t165 = load ptr, ptr %a1 %t166 = icmp eq ptr %t165, null - br i1 %t166, label %panic4707, label %ok4708 -panic4707: - call void @finch_panic(ptr @.str.2963, i64 2110, ptr @.str.2964) + br i1 %t166, label %panic4851, label %ok4852 +panic4851: + call void @finch_panic(ptr @.str.3048, i64 2191, ptr @.str.3049) unreachable -ok4708: - %t167 = getelementptr inbounds %S.gen.Gen, ptr %t165, i32 0, i32 36 +ok4852: + %t167 = getelementptr inbounds %S.gen.Gen, ptr %t165, i32 0, i32 37 store i64 %t164, ptr %t167 %t168 = getelementptr inbounds %S.ast.Node, ptr %a119, i32 0, i32 12 %t169 = load i64, ptr %t168 %t170 = load ptr, ptr %a1 %t171 = icmp eq ptr %t170, null - br i1 %t171, label %panic4709, label %ok4710 -panic4709: - call void @finch_panic(ptr @.str.2965, i64 2111, ptr @.str.2966) + br i1 %t171, label %panic4853, label %ok4854 +panic4853: + call void @finch_panic(ptr @.str.3050, i64 2192, ptr @.str.3051) unreachable -ok4710: - %t172 = getelementptr inbounds %S.gen.Gen, ptr %t170, i32 0, i32 37 +ok4854: + %t172 = getelementptr inbounds %S.gen.Gen, ptr %t170, i32 0, i32 38 store i64 %t169, ptr %t172 - br label %endif4704 -endif4704: + br label %endif4848 +endif4848: %t173 = load ptr, ptr %a1 %t174 = icmp eq ptr %t173, null - br i1 %t174, label %panic4711, label %ok4712 -panic4711: - call void @finch_panic(ptr @.str.2967, i64 2113, ptr @.str.2968) + br i1 %t174, label %panic4855, label %ok4856 +panic4855: + call void @finch_panic(ptr @.str.3052, i64 2194, ptr @.str.3053) unreachable -ok4712: - %t175 = getelementptr inbounds %S.gen.Gen, ptr %t173, i32 0, i32 43 +ok4856: + %t175 = getelementptr inbounds %S.gen.Gen, ptr %t173, i32 0, i32 44 store i1 false, ptr %t175 %t176 = load ptr, ptr %a1 %t177 = icmp eq ptr %t176, null - br i1 %t177, label %panic4713, label %ok4714 -panic4713: - call void @finch_panic(ptr @.str.2969, i64 2114, ptr @.str.2970) + br i1 %t177, label %panic4857, label %ok4858 +panic4857: + call void @finch_panic(ptr @.str.3054, i64 2195, ptr @.str.3055) unreachable -ok4714: - %t178 = getelementptr inbounds %S.gen.Gen, ptr %t176, i32 0, i32 45 +ok4858: + %t178 = getelementptr inbounds %S.gen.Gen, ptr %t176, i32 0, i32 46 store i64 0, ptr %t178 store { ptr, i64, i64 } zeroinitializer, ptr %a179 %t180 = load { ptr, i64, i64 }, ptr %a179 %t181 = load ptr, ptr %a1 %t182 = icmp eq ptr %t181, null - br i1 %t182, label %panic4715, label %ok4716 -panic4715: - call void @finch_panic(ptr @.str.2971, i64 2116, ptr @.str.2972) + br i1 %t182, label %panic4859, label %ok4860 +panic4859: + call void @finch_panic(ptr @.str.3056, i64 2197, ptr @.str.3057) unreachable -ok4716: +ok4860: %t183 = getelementptr inbounds %S.gen.Gen, ptr %t181, i32 0, i32 10 store { ptr, i64, i64 } %t180, ptr %a184 call void @finch.copy.arr_S_gen_Scope(ptr %a185, ptr %a184) @@ -48433,45 +50081,45 @@ ok4716: store { ptr, i64, i64 } zeroinitializer, ptr %a190 %t191 = load ptr, ptr %a1 %t192 = icmp eq ptr %t191, null - br i1 %t192, label %panic4726, label %ok4727 -panic4726: - call void @finch_panic(ptr @.str.2973, i64 2119, ptr @.str.2974) + br i1 %t192, label %panic4870, label %ok4871 +panic4870: + call void @finch_panic(ptr @.str.3058, i64 2200, ptr @.str.3059) unreachable -ok4727: +ok4871: %t193 = getelementptr inbounds %S.gen.Gen, ptr %t191, i32 0, i32 13 %t194 = getelementptr inbounds %S.gen.FnSig, ptr %t193, i32 0, i32 2 %t195 = getelementptr inbounds { ptr, i64, i64 }, ptr %t194, i32 0, i32 1 %t196 = load i64, ptr %t195 %t197 = icmp sgt i64 %t196, 0 - br i1 %t197, label %then4728, label %endif4730 -then4728: + br i1 %t197, label %then4872, label %endif4874 +then4872: %t198 = getelementptr inbounds { ptr, i64, i64 }, ptr %a190, i32 0, i32 1 %t199 = load i64, ptr %t198 %t200 = add i64 %t199, 1 call void @finch_arr_reserve(ptr %a190, i64 %t200, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t201 = load ptr, ptr %a190 %t202 = getelementptr inbounds { ptr, i64, i64 }, ptr %t201, i64 %t199 - store { ptr, i64, i64 } { ptr @.str.2975, i64 9, i64 0 }, ptr %t202 + store { ptr, i64, i64 } { ptr @.str.3060, i64 9, i64 0 }, ptr %t202 store i64 %t200, ptr %t198 - store { ptr, i64, i64 } { ptr @.str.2976, i64 6, i64 0 }, ptr %a203 + store { ptr, i64, i64 } { ptr @.str.3061, i64 6, i64 0 }, ptr %a203 %t204 = load ptr, ptr %a1 %t205 = icmp eq ptr %t204, null - br i1 %t205, label %panic4731, label %ok4732 -panic4731: - call void @finch_panic(ptr @.str.2977, i64 2123, ptr @.str.2978) + br i1 %t205, label %panic4875, label %ok4876 +panic4875: + call void @finch_panic(ptr @.str.3062, i64 2204, ptr @.str.3063) unreachable -ok4732: +ok4876: %t206 = getelementptr inbounds %S.gen.Gen, ptr %t204, i32 0, i32 13 %t207 = getelementptr inbounds %S.gen.FnSig, ptr %t206, i32 0, i32 4 %t208 = load i1, ptr %t207 - br i1 %t208, label %then4733, label %endif4735 -then4733: + br i1 %t208, label %then4877, label %endif4879 +then4877: %t209 = load { ptr, i64, i64 }, ptr %a203 - store { ptr, i64, i64 } { ptr @.str.2979, i64 4, i64 0 }, ptr %a203 + store { ptr, i64, i64 } { ptr @.str.3064, i64 4, i64 0 }, ptr %a203 store { ptr, i64, i64 } %t209, ptr %a210 call void @finch_str_drop(ptr %a210) - br label %endif4735 -endif4735: + br label %endif4879 +endif4879: %t211 = load { ptr, i64, i64 }, ptr %a203 store { ptr, i64, i64 } %t211, ptr %a212 call void @finch_str_copy(ptr %a213, ptr %a212) @@ -48479,11 +50127,11 @@ endif4735: %t215 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } %t214, 0 %t216 = load ptr, ptr %a1 %t217 = icmp eq ptr %t216, null - br i1 %t217, label %panic4736, label %ok4737 -panic4736: - call void @finch_panic(ptr @.str.2980, i64 2126, ptr @.str.2981) + br i1 %t217, label %panic4880, label %ok4881 +panic4880: + call void @finch_panic(ptr @.str.3065, i64 2207, ptr @.str.3066) unreachable -ok4737: +ok4881: %t218 = getelementptr inbounds %S.gen.Gen, ptr %t216, i32 0, i32 13 %t219 = getelementptr inbounds %S.gen.FnSig, ptr %t218, i32 0, i32 2 %t220 = load { ptr, i64, i64 }, ptr %t219 @@ -48493,11 +50141,11 @@ ok4737: %t224 = insertvalue %S.ast.Type %t215, { ptr, i64, i64 } %t223, 2 %t225 = load ptr, ptr %a1 %t226 = icmp eq ptr %t225, null - br i1 %t226, label %panic4738, label %ok4739 -panic4738: - call void @finch_panic(ptr @.str.2982, i64 2126, ptr @.str.2983) + br i1 %t226, label %panic4882, label %ok4883 +panic4882: + call void @finch_panic(ptr @.str.3067, i64 2207, ptr @.str.3068) unreachable -ok4739: +ok4883: %t227 = getelementptr inbounds %S.gen.Gen, ptr %t225, i32 0, i32 13 %t228 = getelementptr inbounds %S.gen.FnSig, ptr %t227, i32 0, i32 3 %t229 = load { ptr, i64, i64 }, ptr %t228 @@ -48508,31 +50156,31 @@ ok4739: store %S.ast.Type %t233, ptr %a234 %t235 = load ptr, ptr %a1 %t236 = icmp eq ptr %t235, null - br i1 %t236, label %panic4740, label %ok4741 -panic4740: - call void @finch_panic(ptr @.str.2984, i64 2127, ptr @.str.2985) + br i1 %t236, label %panic4884, label %ok4885 +panic4884: + call void @finch_panic(ptr @.str.3069, i64 2208, ptr @.str.3070) unreachable -ok4741: +ok4885: %t237 = getelementptr inbounds %S.gen.Gen, ptr %t235, i32 0, i32 10 %t238 = load { ptr, i64, i64 }, ptr %t237 %t239 = extractvalue { ptr, i64, i64 } %t238, 1 %t240 = icmp uge i64 0, %t239 - br i1 %t240, label %range4742, label %inrange4743 -range4742: - call void @finch_panic_index(ptr @.str.2986, i64 2127, i64 0, i64 %t239) + br i1 %t240, label %range4886, label %inrange4887 +range4886: + call void @finch_panic_index(ptr @.str.3071, i64 2208, i64 0, i64 %t239) unreachable -inrange4743: +inrange4887: %t241 = extractvalue { ptr, i64, i64 } %t238, 0 %t242 = getelementptr inbounds %S.gen.Scope, ptr %t241, i64 0 %t243 = getelementptr inbounds %S.gen.Scope, ptr %t242, i32 0, i32 0 %t244 = getelementptr inbounds { ptr, i64, i64 }, ptr %t243, i32 0, i32 1 - %t245 = insertvalue %S.gen.Var zeroinitializer, { ptr, i64, i64 } { ptr @.str.2987, i64 4, i64 0 }, 0 + %t245 = insertvalue %S.gen.Var zeroinitializer, { ptr, i64, i64 } { ptr @.str.3072, i64 4, i64 0 }, 0 %t246 = load %S.ast.Type, ptr %a234 store %S.ast.Type %t246, ptr %a247 call void @finch.copy.S_ast_Type(ptr %a248, ptr %a247) %t249 = load %S.ast.Type, ptr %a248 %t250 = insertvalue %S.gen.Var %t245, %S.ast.Type %t249, 1 - %t251 = insertvalue %S.gen.Var %t250, { ptr, i64, i64 } { ptr @.str.2988, i64 5, i64 0 }, 2 + %t251 = insertvalue %S.gen.Var %t250, { ptr, i64, i64 } { ptr @.str.3073, i64 5, i64 0 }, 2 %t252 = insertvalue %S.gen.Var %t251, i1 false, 3 %t253 = load i64, ptr %t244 %t254 = add i64 %t253, 1 @@ -48543,61 +50191,61 @@ inrange4743: store i64 %t254, ptr %t244 %t257 = load ptr, ptr %a1 %t258 = icmp eq ptr %t257, null - br i1 %t258, label %panic4744, label %ok4745 -panic4744: - call void @finch_panic(ptr @.str.2989, i64 2128, ptr @.str.2990) + br i1 %t258, label %panic4888, label %ok4889 +panic4888: + call void @finch_panic(ptr @.str.3074, i64 2209, ptr @.str.3075) unreachable -ok4745: - %t259 = getelementptr inbounds %S.gen.Gen, ptr %t257, i32 0, i32 29 +ok4889: + %t259 = getelementptr inbounds %S.gen.Gen, ptr %t257, i32 0, i32 30 %t260 = load i1, ptr %t259 - br i1 %t260, label %then4746, label %endif4748 -then4746: + br i1 %t260, label %then4890, label %endif4892 +then4890: %t261 = load ptr, ptr %a1 %t262 = load %S.ast.Node, ptr %a119 %t263 = load %S.ast.Type, ptr %a234 - call void @finch.gen.dbgVariable(ptr %t261, %S.ast.Node %t262, { ptr, i64, i64 } { ptr @.str.2991, i64 4, i64 0 }, %S.ast.Type %t263, { ptr, i64, i64 } { ptr @.str.2992, i64 5, i64 0 }) - br label %endif4748 -endif4748: + call void @finch.gen.dbgVariable(ptr %t261, %S.ast.Node %t262, { ptr, i64, i64 } { ptr @.str.3076, i64 4, i64 0 }, %S.ast.Type %t263, { ptr, i64, i64 } { ptr @.str.3077, i64 5, i64 0 }) + br label %endif4892 +endif4892: call void @finch.drop.S_ast_Type(ptr %a234) call void @finch_str_drop(ptr %a203) - br label %endif4730 -endif4730: + br label %endif4874 +endif4874: %t264 = load ptr, ptr %a1 %t265 = icmp eq ptr %t264, null - br i1 %t265, label %panic4749, label %ok4750 -panic4749: - call void @finch_panic(ptr @.str.2993, i64 2133, ptr @.str.2994) + br i1 %t265, label %panic4893, label %ok4894 +panic4893: + call void @finch_panic(ptr @.str.3078, i64 2214, ptr @.str.3079) unreachable -ok4750: +ok4894: %t266 = getelementptr inbounds %S.gen.Gen, ptr %t264, i32 0, i32 13 %t267 = getelementptr inbounds %S.gen.FnSig, ptr %t266, i32 0, i32 13 %t268 = getelementptr inbounds { ptr, i64, i64 }, ptr %t267, i32 0, i32 1 %t269 = load i64, ptr %t268 store i64 0, ptr %a270 - br label %for.cond4751 -for.cond4751: + br label %for.cond4895 +for.cond4895: %t271 = load i64, ptr %a270 %t272 = icmp slt i64 %t271, %t269 - br i1 %t272, label %for.body4752, label %for.end4754 -for.body4752: + br i1 %t272, label %for.body4896, label %for.end4898 +for.body4896: %t273 = load ptr, ptr %a1 %t274 = icmp eq ptr %t273, null - br i1 %t274, label %panic4755, label %ok4756 -panic4755: - call void @finch_panic(ptr @.str.2995, i64 2134, ptr @.str.2996) + br i1 %t274, label %panic4899, label %ok4900 +panic4899: + call void @finch_panic(ptr @.str.3080, i64 2215, ptr @.str.3081) unreachable -ok4756: +ok4900: %t275 = getelementptr inbounds %S.gen.Gen, ptr %t273, i32 0, i32 13 %t276 = getelementptr inbounds %S.gen.FnSig, ptr %t275, i32 0, i32 13 %t277 = load i64, ptr %a270 %t278 = load { ptr, i64, i64 }, ptr %t276 %t279 = extractvalue { ptr, i64, i64 } %t278, 1 %t280 = icmp uge i64 %t277, %t279 - br i1 %t280, label %range4757, label %inrange4758 -range4757: - call void @finch_panic_index(ptr @.str.2997, i64 2134, i64 %t277, i64 %t279) + br i1 %t280, label %range4901, label %inrange4902 +range4901: + call void @finch_panic_index(ptr @.str.3082, i64 2215, i64 %t277, i64 %t279) unreachable -inrange4758: +inrange4902: %t281 = extractvalue { ptr, i64, i64 } %t278, 0 %t282 = getelementptr inbounds %S.ast.Type, ptr %t281, i64 %t277 %t283 = load %S.ast.Type, ptr %t282 @@ -48610,7 +50258,7 @@ inrange4758: %t290 = load %S.ast.Type, ptr %a287 %t291 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t289, %S.ast.Type %t290) store { ptr, i64, i64 } %t291, ptr %a293 - store { ptr, i64, i64 } { ptr @.str.2998, i64 3, i64 0 }, ptr %a294 + store { ptr, i64, i64 } { ptr @.str.3083, i64 3, i64 0 }, ptr %a294 call void @finch_str_concat(ptr %a292, ptr %a293, ptr %a294) store { ptr, i64, i64 } %t291, ptr %a295 call void @finch_str_drop(ptr %a295) @@ -48636,7 +50284,7 @@ inrange4758: %t310 = load i64, ptr %a270 call void @finch_str_from_int(ptr %a311, i64 %t310) %t312 = load { ptr, i64, i64 }, ptr %a311 - store { ptr, i64, i64 } { ptr @.str.2999, i64 2, i64 0 }, ptr %a314 + store { ptr, i64, i64 } { ptr @.str.3084, i64 2, i64 0 }, ptr %a314 store { ptr, i64, i64 } %t312, ptr %a315 call void @finch_str_concat(ptr %a313, ptr %a314, ptr %a315) store { ptr, i64, i64 } %t312, ptr %a316 @@ -48646,39 +50294,39 @@ inrange4758: %t319 = load ptr, ptr %a1 %t320 = load %S.ast.Type, ptr %a287 %t321 = call i1 @finch.gen.owning(ptr %t319, %S.ast.Type %t320) - br label %logic.from4759 -logic.from4759: - br i1 %t321, label %logic.rhs4760, label %logic.end4761 -logic.rhs4760: + br label %logic.from4903 +logic.from4903: + br i1 %t321, label %logic.rhs4904, label %logic.end4905 +logic.rhs4904: %t322 = load ptr, ptr %a1 %t323 = icmp eq ptr %t322, null - br i1 %t323, label %panic4762, label %ok4763 -panic4762: - call void @finch_panic(ptr @.str.3000, i64 2137, ptr @.str.3001) + br i1 %t323, label %panic4906, label %ok4907 +panic4906: + call void @finch_panic(ptr @.str.3085, i64 2218, ptr @.str.3086) unreachable -ok4763: +ok4907: %t324 = getelementptr inbounds %S.gen.Gen, ptr %t322, i32 0, i32 13 %t325 = getelementptr inbounds %S.gen.FnSig, ptr %t324, i32 0, i32 15 %t326 = load i64, ptr %a270 %t327 = load { ptr, i64, i64 }, ptr %t325 %t328 = extractvalue { ptr, i64, i64 } %t327, 1 %t329 = icmp uge i64 %t326, %t328 - br i1 %t329, label %range4764, label %inrange4765 -range4764: - call void @finch_panic_index(ptr @.str.3002, i64 2137, i64 %t326, i64 %t328) + br i1 %t329, label %range4908, label %inrange4909 +range4908: + call void @finch_panic_index(ptr @.str.3087, i64 2218, i64 %t326, i64 %t328) unreachable -inrange4765: +inrange4909: %t330 = extractvalue { ptr, i64, i64 } %t327, 0 %t331 = getelementptr inbounds i1, ptr %t330, i64 %t326 %t332 = load i1, ptr %t331 %t333 = xor i1 %t332, true - br label %logic.rend4766 -logic.rend4766: - br label %logic.end4761 -logic.end4761: - %t334 = phi i1 [ false, %logic.from4759 ], [ %t333, %logic.rend4766 ] - br i1 %t334, label %then4767, label %endif4769 -then4767: + br label %logic.rend4910 +logic.rend4910: + br label %logic.end4905 +logic.end4905: + %t334 = phi i1 [ false, %logic.from4903 ], [ %t333, %logic.rend4910 ] + br i1 %t334, label %then4911, label %endif4913 +then4911: %t335 = load ptr, ptr %a1 %t336 = load { ptr, i64, i64 }, ptr %a318 %t337 = load %S.ast.Type, ptr %a287 @@ -48687,78 +50335,78 @@ then4767: store { ptr, i64, i64 } %t338, ptr %a318 store { ptr, i64, i64 } %t339, ptr %a340 call void @finch_str_drop(ptr %a340) - br label %endif4769 -endif4769: + br label %endif4913 +endif4913: %t341 = load i64, ptr %a270 %t342 = add i64 %t341, 1 %t343 = load ptr, ptr %a1 %t344 = icmp eq ptr %t343, null - br i1 %t344, label %panic4770, label %ok4771 -panic4770: - call void @finch_panic(ptr @.str.3003, i64 2140, ptr @.str.3004) + br i1 %t344, label %panic4914, label %ok4915 +panic4914: + call void @finch_panic(ptr @.str.3088, i64 2221, ptr @.str.3089) unreachable -ok4771: - %t345 = getelementptr inbounds %S.gen.Gen, ptr %t343, i32 0, i32 38 +ok4915: + %t345 = getelementptr inbounds %S.gen.Gen, ptr %t343, i32 0, i32 39 store i64 %t342, ptr %t345 %t346 = load ptr, ptr %a1 %t347 = icmp eq ptr %t346, null - br i1 %t347, label %panic4772, label %ok4773 -panic4772: - call void @finch_panic(ptr @.str.3005, i64 2141, ptr @.str.3006) + br i1 %t347, label %panic4916, label %ok4917 +panic4916: + call void @finch_panic(ptr @.str.3090, i64 2222, ptr @.str.3091) unreachable -ok4773: +ok4917: %t348 = getelementptr inbounds %S.gen.Gen, ptr %t346, i32 0, i32 13 %t349 = getelementptr inbounds %S.gen.FnSig, ptr %t348, i32 0, i32 2 %t350 = getelementptr inbounds { ptr, i64, i64 }, ptr %t349, i32 0, i32 1 %t351 = load i64, ptr %t350 %t352 = icmp sgt i64 %t351, 0 - br i1 %t352, label %then4774, label %endif4776 -then4774: + br i1 %t352, label %then4918, label %endif4920 +then4918: %t353 = load i64, ptr %a270 %t354 = add i64 %t353, 2 %t355 = load ptr, ptr %a1 %t356 = icmp eq ptr %t355, null - br i1 %t356, label %panic4777, label %ok4778 -panic4777: - call void @finch_panic(ptr @.str.3007, i64 2142, ptr @.str.3008) + br i1 %t356, label %panic4921, label %ok4922 +panic4921: + call void @finch_panic(ptr @.str.3092, i64 2223, ptr @.str.3093) unreachable -ok4778: - %t357 = getelementptr inbounds %S.gen.Gen, ptr %t355, i32 0, i32 38 +ok4922: + %t357 = getelementptr inbounds %S.gen.Gen, ptr %t355, i32 0, i32 39 store i64 %t354, ptr %t357 - br label %endif4776 -endif4776: + br label %endif4920 +endif4920: %t358 = load ptr, ptr %a1 %t359 = getelementptr inbounds %S.ast.Node, ptr %a119, i32 0, i32 9 %t360 = load i64, ptr %a270 %t361 = load { ptr, i64, i64 }, ptr %t359 %t362 = extractvalue { ptr, i64, i64 } %t361, 1 %t363 = icmp uge i64 %t360, %t362 - br i1 %t363, label %range4779, label %inrange4780 -range4779: - call void @finch_panic_index(ptr @.str.3009, i64 2144, i64 %t360, i64 %t362) + br i1 %t363, label %range4923, label %inrange4924 +range4923: + call void @finch_panic_index(ptr @.str.3094, i64 2225, i64 %t360, i64 %t362) unreachable -inrange4780: +inrange4924: %t364 = extractvalue { ptr, i64, i64 } %t361, 0 %t365 = getelementptr inbounds %S.ast.Node, ptr %t364, i64 %t360 %t366 = load %S.ast.Node, ptr %t365 %t367 = load ptr, ptr %a1 %t368 = icmp eq ptr %t367, null - br i1 %t368, label %panic4781, label %ok4782 -panic4781: - call void @finch_panic(ptr @.str.3010, i64 2144, ptr @.str.3011) + br i1 %t368, label %panic4925, label %ok4926 +panic4925: + call void @finch_panic(ptr @.str.3095, i64 2225, ptr @.str.3096) unreachable -ok4782: +ok4926: %t369 = getelementptr inbounds %S.gen.Gen, ptr %t367, i32 0, i32 13 %t370 = getelementptr inbounds %S.gen.FnSig, ptr %t369, i32 0, i32 14 %t371 = load i64, ptr %a270 %t372 = load { ptr, i64, i64 }, ptr %t370 %t373 = extractvalue { ptr, i64, i64 } %t372, 1 %t374 = icmp uge i64 %t371, %t373 - br i1 %t374, label %range4783, label %inrange4784 -range4783: - call void @finch_panic_index(ptr @.str.3012, i64 2144, i64 %t371, i64 %t373) + br i1 %t374, label %range4927, label %inrange4928 +range4927: + call void @finch_panic_index(ptr @.str.3097, i64 2225, i64 %t371, i64 %t373) unreachable -inrange4784: +inrange4928: %t375 = extractvalue { ptr, i64, i64 } %t372, 0 %t376 = getelementptr inbounds { ptr, i64, i64 }, ptr %t375, i64 %t371 %t377 = load { ptr, i64, i64 }, ptr %t376 @@ -48767,58 +50415,58 @@ inrange4784: %t380 = load ptr, ptr %a1 %t381 = load %S.ast.Type, ptr %a287 %t382 = call i1 @finch.gen.owning(ptr %t380, %S.ast.Type %t381) - br label %logic.from4785 -logic.from4785: - br i1 %t382, label %logic.rhs4786, label %logic.end4787 -logic.rhs4786: + br label %logic.from4929 +logic.from4929: + br i1 %t382, label %logic.rhs4930, label %logic.end4931 +logic.rhs4930: %t383 = load ptr, ptr %a1 %t384 = icmp eq ptr %t383, null - br i1 %t384, label %panic4788, label %ok4789 -panic4788: - call void @finch_panic(ptr @.str.3013, i64 2144, ptr @.str.3014) + br i1 %t384, label %panic4932, label %ok4933 +panic4932: + call void @finch_panic(ptr @.str.3098, i64 2225, ptr @.str.3099) unreachable -ok4789: +ok4933: %t385 = getelementptr inbounds %S.gen.Gen, ptr %t383, i32 0, i32 13 %t386 = getelementptr inbounds %S.gen.FnSig, ptr %t385, i32 0, i32 15 %t387 = load i64, ptr %a270 %t388 = load { ptr, i64, i64 }, ptr %t386 %t389 = extractvalue { ptr, i64, i64 } %t388, 1 %t390 = icmp uge i64 %t387, %t389 - br i1 %t390, label %range4790, label %inrange4791 -range4790: - call void @finch_panic_index(ptr @.str.3015, i64 2144, i64 %t387, i64 %t389) + br i1 %t390, label %range4934, label %inrange4935 +range4934: + call void @finch_panic_index(ptr @.str.3100, i64 2225, i64 %t387, i64 %t389) unreachable -inrange4791: +inrange4935: %t391 = extractvalue { ptr, i64, i64 } %t388, 0 %t392 = getelementptr inbounds i1, ptr %t391, i64 %t387 %t393 = load i1, ptr %t392 %t394 = xor i1 %t393, true - br label %logic.rend4792 -logic.rend4792: - br label %logic.end4787 -logic.end4787: - %t395 = phi i1 [ false, %logic.from4785 ], [ %t394, %logic.rend4792 ] + br label %logic.rend4936 +logic.rend4936: + br label %logic.end4931 +logic.end4931: + %t395 = phi i1 [ false, %logic.from4929 ], [ %t394, %logic.rend4936 ] %t396 = call { ptr, i64, i64 } @finch.gen.addVar(ptr %t358, %S.ast.Node %t366, { ptr, i64, i64 } %t377, %S.ast.Type %t378, { ptr, i64, i64 } %t379, i1 false, i1 %t395) store { ptr, i64, i64 } %t396, ptr %a397 call void @finch_str_drop(ptr %a397) %t398 = load ptr, ptr %a1 %t399 = icmp eq ptr %t398, null - br i1 %t399, label %panic4793, label %ok4794 -panic4793: - call void @finch_panic(ptr @.str.3016, i64 2145, ptr @.str.3017) + br i1 %t399, label %panic4937, label %ok4938 +panic4937: + call void @finch_panic(ptr @.str.3101, i64 2226, ptr @.str.3102) unreachable -ok4794: - %t400 = getelementptr inbounds %S.gen.Gen, ptr %t398, i32 0, i32 38 +ok4938: + %t400 = getelementptr inbounds %S.gen.Gen, ptr %t398, i32 0, i32 39 store i64 0, ptr %t400 call void @finch_str_drop(ptr %a318) call void @finch.drop.S_ast_Type(ptr %a287) - br label %for.step4753 -for.step4753: + br label %for.step4897 +for.step4897: %t401 = load i64, ptr %a270 %t402 = add i64 %t401, 1 store i64 %t402, ptr %a270 - br label %for.cond4751 -for.end4754: + br label %for.cond4895 +for.end4898: %t403 = load ptr, ptr %a1 %t404 = getelementptr inbounds %S.ast.Node, ptr %a119, i32 0, i32 9 %t405 = getelementptr inbounds %S.ast.Node, ptr %a119, i32 0, i32 9 @@ -48828,65 +50476,65 @@ for.end4754: %t409 = load { ptr, i64, i64 }, ptr %t404 %t410 = extractvalue { ptr, i64, i64 } %t409, 1 %t411 = icmp uge i64 %t408, %t410 - br i1 %t411, label %range4795, label %inrange4796 -range4795: - call void @finch_panic_index(ptr @.str.3018, i64 2147, i64 %t408, i64 %t410) + br i1 %t411, label %range4939, label %inrange4940 +range4939: + call void @finch_panic_index(ptr @.str.3103, i64 2228, i64 %t408, i64 %t410) unreachable -inrange4796: +inrange4940: %t412 = extractvalue { ptr, i64, i64 } %t409, 0 %t413 = getelementptr inbounds %S.ast.Node, ptr %t412, i64 %t408 %t414 = load %S.ast.Node, ptr %t413 call void @finch.gen.block(ptr %t403, %S.ast.Node %t414, i1 false) %t415 = load ptr, ptr %a1 %t416 = icmp eq ptr %t415, null - br i1 %t416, label %panic4797, label %ok4798 -panic4797: - call void @finch_panic(ptr @.str.3019, i64 2148, ptr @.str.3020) + br i1 %t416, label %panic4941, label %ok4942 +panic4941: + call void @finch_panic(ptr @.str.3104, i64 2229, ptr @.str.3105) unreachable -ok4798: +ok4942: %t417 = getelementptr inbounds %S.gen.Gen, ptr %t415, i32 0, i32 9 %t418 = load i1, ptr %t417 %t419 = xor i1 %t418, true - br i1 %t419, label %then4799, label %endif4801 -then4799: + br i1 %t419, label %then4943, label %endif4945 +then4943: %t420 = load ptr, ptr %a1 %t421 = icmp eq ptr %t420, null - br i1 %t421, label %panic4802, label %ok4803 -panic4802: - call void @finch_panic(ptr @.str.3021, i64 2149, ptr @.str.3022) + br i1 %t421, label %panic4946, label %ok4947 +panic4946: + call void @finch_panic(ptr @.str.3106, i64 2230, ptr @.str.3107) unreachable -ok4803: +ok4947: %t422 = getelementptr inbounds %S.gen.Gen, ptr %t420, i32 0, i32 13 %t423 = getelementptr inbounds %S.gen.FnSig, ptr %t422, i32 0, i32 12 %t424 = getelementptr inbounds %S.ast.Type, ptr %t423, i32 0, i32 0 %t425 = load { ptr, i64, i64 }, ptr %t424 store { ptr, i64, i64 } %t425, ptr %a426 - store { ptr, i64, i64 } { ptr @.str.3023, i64 4, i64 0 }, ptr %a427 + store { ptr, i64, i64 } { ptr @.str.3108, i64 4, i64 0 }, ptr %a427 %t428 = call i32 @finch_str_eq(ptr %a426, ptr %a427) %t429 = icmp eq i32 %t428, 0 - br i1 %t429, label %then4804, label %endif4806 -then4804: + br i1 %t429, label %then4948, label %endif4950 +then4948: %t430 = load ptr, ptr %a1 %t431 = load %S.ast.Node, ptr %a119 %t432 = getelementptr inbounds %S.ast.Node, ptr %a119, i32 0, i32 1 %t433 = load { ptr, i64, i64 }, ptr %t432 - store { ptr, i64, i64 } { ptr @.str.3024, i64 10, i64 0 }, ptr %a435 + store { ptr, i64, i64 } { ptr @.str.3109, i64 10, i64 0 }, ptr %a435 store { ptr, i64, i64 } %t433, ptr %a436 call void @finch_str_concat(ptr %a434, ptr %a435, ptr %a436) %t437 = load { ptr, i64, i64 }, ptr %a434 store { ptr, i64, i64 } %t437, ptr %a439 - store { ptr, i64, i64 } { ptr @.str.3025, i64 38, i64 0 }, ptr %a440 + store { ptr, i64, i64 } { ptr @.str.3110, i64 38, i64 0 }, ptr %a440 call void @finch_str_concat(ptr %a438, ptr %a439, ptr %a440) store { ptr, i64, i64 } %t437, ptr %a441 call void @finch_str_drop(ptr %a441) %t442 = load { ptr, i64, i64 }, ptr %a438 %t443 = load ptr, ptr %a1 %t444 = icmp eq ptr %t443, null - br i1 %t444, label %panic4807, label %ok4808 -panic4807: - call void @finch_panic(ptr @.str.3026, i64 2150, ptr @.str.3027) + br i1 %t444, label %panic4951, label %ok4952 +panic4951: + call void @finch_panic(ptr @.str.3111, i64 2231, ptr @.str.3112) unreachable -ok4808: +ok4952: %t445 = getelementptr inbounds %S.gen.Gen, ptr %t443, i32 0, i32 13 %t446 = getelementptr inbounds %S.gen.FnSig, ptr %t445, i32 0, i32 12 %t447 = load %S.ast.Type, ptr %t446 @@ -48902,42 +50550,42 @@ ok4808: call void @finch.gen.fail(ptr %t430, %S.ast.Node %t431, { ptr, i64, i64 } %t454) store { ptr, i64, i64 } %t454, ptr %a455 call void @finch_str_drop(ptr %a455) - br label %endif4806 -endif4806: + br label %endif4950 +endif4950: %t456 = load ptr, ptr %a1 call void @finch.gen.unwind(ptr %t456, i64 0) %t457 = load ptr, ptr %a1 %t458 = icmp eq ptr %t457, null - br i1 %t458, label %panic4809, label %ok4810 -panic4809: - call void @finch_panic(ptr @.str.3028, i64 2153, ptr @.str.3029) + br i1 %t458, label %panic4953, label %ok4954 +panic4953: + call void @finch_panic(ptr @.str.3113, i64 2234, ptr @.str.3114) unreachable -ok4810: +ok4954: %t459 = getelementptr inbounds %S.gen.Gen, ptr %t457, i32 0, i32 13 %t460 = getelementptr inbounds %S.gen.FnSig, ptr %t459, i32 0, i32 9 %t461 = load i1, ptr %t460 - br i1 %t461, label %then4811, label %else4812 -then4811: + br i1 %t461, label %then4955, label %else4956 +then4955: %t462 = load ptr, ptr %a1 %t463 = load ptr, ptr %a1 %t464 = load ptr, ptr %a1 %t465 = icmp eq ptr %t464, null - br i1 %t465, label %panic4814, label %ok4815 -panic4814: - call void @finch_panic(ptr @.str.3031, i64 2154, ptr @.str.3032) + br i1 %t465, label %panic4958, label %ok4959 +panic4958: + call void @finch_panic(ptr @.str.3116, i64 2235, ptr @.str.3117) unreachable -ok4815: +ok4959: %t466 = getelementptr inbounds %S.gen.Gen, ptr %t464, i32 0, i32 13 %t467 = load %S.gen.FnSig, ptr %t466 %t468 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t463, %S.gen.FnSig %t467) - store { ptr, i64, i64 } { ptr @.str.3030, i64 4, i64 0 }, ptr %a470 + store { ptr, i64, i64 } { ptr @.str.3115, i64 4, i64 0 }, ptr %a470 store { ptr, i64, i64 } %t468, ptr %a471 call void @finch_str_concat(ptr %a469, ptr %a470, ptr %a471) store { ptr, i64, i64 } %t468, ptr %a472 call void @finch_str_drop(ptr %a472) %t473 = load { ptr, i64, i64 }, ptr %a469 store { ptr, i64, i64 } %t473, ptr %a475 - store { ptr, i64, i64 } { ptr @.str.3033, i64 53, i64 0 }, ptr %a476 + store { ptr, i64, i64 } { ptr @.str.3118, i64 53, i64 0 }, ptr %a476 call void @finch_str_concat(ptr %a474, ptr %a475, ptr %a476) store { ptr, i64, i64 } %t473, ptr %a477 call void @finch_str_drop(ptr %a477) @@ -48945,23 +50593,23 @@ ok4815: call void @finch.gen.emit(ptr %t462, { ptr, i64, i64 } %t478) store { ptr, i64, i64 } %t478, ptr %a479 call void @finch_str_drop(ptr %a479) - br label %endif4813 -else4812: + br label %endif4957 +else4956: %t480 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t480, { ptr, i64, i64 } { ptr @.str.3034, i64 8, i64 0 }) - br label %endif4813 -endif4813: - br label %endif4801 -endif4801: - store { ptr, i64, i64 } { ptr @.str.3035, i64 0, i64 0 }, ptr %a481 + call void @finch.gen.emit(ptr %t480, { ptr, i64, i64 } { ptr @.str.3119, i64 8, i64 0 }) + br label %endif4957 +endif4957: + br label %endif4945 +endif4945: + store { ptr, i64, i64 } { ptr @.str.3120, i64 0, i64 0 }, ptr %a481 %t482 = load i64, ptr %a151 %t483 = icmp sge i64 %t482, 0 - br i1 %t483, label %then4816, label %endif4818 -then4816: + br i1 %t483, label %then4960, label %endif4962 +then4960: %t484 = load i64, ptr %a151 call void @finch_str_from_int(ptr %a485, i64 %t484) %t486 = load { ptr, i64, i64 }, ptr %a485 - store { ptr, i64, i64 } { ptr @.str.3036, i64 7, i64 0 }, ptr %a488 + store { ptr, i64, i64 } { ptr @.str.3121, i64 7, i64 0 }, ptr %a488 store { ptr, i64, i64 } %t486, ptr %a489 call void @finch_str_concat(ptr %a487, ptr %a488, ptr %a489) store { ptr, i64, i64 } %t486, ptr %a490 @@ -48971,56 +50619,56 @@ then4816: store { ptr, i64, i64 } %t491, ptr %a481 store { ptr, i64, i64 } %t492, ptr %a493 call void @finch_str_drop(ptr %a493) - br label %endif4818 -endif4818: + br label %endif4962 +endif4962: %t494 = load ptr, ptr %a1 %t495 = icmp eq ptr %t494, null - br i1 %t495, label %panic4819, label %ok4820 -panic4819: - call void @finch_panic(ptr @.str.3037, i64 2163, ptr @.str.3038) + br i1 %t495, label %panic4963, label %ok4964 +panic4963: + call void @finch_panic(ptr @.str.3122, i64 2244, ptr @.str.3123) unreachable -ok4820: - %t496 = getelementptr inbounds %S.gen.Gen, ptr %t494, i32 0, i32 35 +ok4964: + %t496 = getelementptr inbounds %S.gen.Gen, ptr %t494, i32 0, i32 36 store i64 -1, ptr %t496 %t497 = load ptr, ptr %a1 %t498 = icmp eq ptr %t497, null - br i1 %t498, label %panic4821, label %ok4822 -panic4821: - call void @finch_panic(ptr @.str.3039, i64 2164, ptr @.str.3040) + br i1 %t498, label %panic4965, label %ok4966 +panic4965: + call void @finch_panic(ptr @.str.3124, i64 2245, ptr @.str.3125) unreachable -ok4822: +ok4966: %t499 = getelementptr inbounds %S.gen.Gen, ptr %t497, i32 0, i32 3 %t500 = getelementptr inbounds { ptr, i64, i64 }, ptr %t499, i32 0, i32 1 %t501 = load ptr, ptr %a1 %t502 = load ptr, ptr %a1 %t503 = icmp eq ptr %t502, null - br i1 %t503, label %panic4823, label %ok4824 -panic4823: - call void @finch_panic(ptr @.str.3042, i64 2164, ptr @.str.3043) + br i1 %t503, label %panic4967, label %ok4968 +panic4967: + call void @finch_panic(ptr @.str.3127, i64 2245, ptr @.str.3128) unreachable -ok4824: +ok4968: %t504 = getelementptr inbounds %S.gen.Gen, ptr %t502, i32 0, i32 13 %t505 = load %S.gen.FnSig, ptr %t504 %t506 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t501, %S.gen.FnSig %t505) - store { ptr, i64, i64 } { ptr @.str.3041, i64 16, i64 0 }, ptr %a508 + store { ptr, i64, i64 } { ptr @.str.3126, i64 16, i64 0 }, ptr %a508 store { ptr, i64, i64 } %t506, ptr %a509 call void @finch_str_concat(ptr %a507, ptr %a508, ptr %a509) store { ptr, i64, i64 } %t506, ptr %a510 call void @finch_str_drop(ptr %a510) %t511 = load { ptr, i64, i64 }, ptr %a507 store { ptr, i64, i64 } %t511, ptr %a513 - store { ptr, i64, i64 } { ptr @.str.3044, i64 1, i64 0 }, ptr %a514 + store { ptr, i64, i64 } { ptr @.str.3129, i64 1, i64 0 }, ptr %a514 call void @finch_str_concat(ptr %a512, ptr %a513, ptr %a514) store { ptr, i64, i64 } %t511, ptr %a515 call void @finch_str_drop(ptr %a515) %t516 = load { ptr, i64, i64 }, ptr %a512 %t517 = load ptr, ptr %a1 %t518 = icmp eq ptr %t517, null - br i1 %t518, label %panic4825, label %ok4826 -panic4825: - call void @finch_panic(ptr @.str.3045, i64 2164, ptr @.str.3046) + br i1 %t518, label %panic4969, label %ok4970 +panic4969: + call void @finch_panic(ptr @.str.3130, i64 2245, ptr @.str.3131) unreachable -ok4826: +ok4970: %t519 = getelementptr inbounds %S.gen.Gen, ptr %t517, i32 0, i32 13 %t520 = getelementptr inbounds %S.gen.FnSig, ptr %t519, i32 0, i32 11 %t521 = load { ptr, i64, i64 }, ptr %t520 @@ -49031,13 +50679,13 @@ ok4826: call void @finch_str_drop(ptr %a525) %t526 = load { ptr, i64, i64 }, ptr %a522 store { ptr, i64, i64 } %t526, ptr %a528 - store { ptr, i64, i64 } { ptr @.str.3047, i64 1, i64 0 }, ptr %a529 + store { ptr, i64, i64 } { ptr @.str.3132, i64 1, i64 0 }, ptr %a529 call void @finch_str_concat(ptr %a527, ptr %a528, ptr %a529) store { ptr, i64, i64 } %t526, ptr %a530 call void @finch_str_drop(ptr %a530) %t531 = load { ptr, i64, i64 }, ptr %a527 %t532 = getelementptr inbounds { ptr, i64, i64 }, ptr %a190, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.3048, i64 2, i64 0 }, ptr %a533 + store { ptr, i64, i64 } { ptr @.str.3133, i64 2, i64 0 }, ptr %a533 call void @finch_str_join(ptr %a534, ptr %a190, ptr %a533) %t535 = load { ptr, i64, i64 }, ptr %a534 store { ptr, i64, i64 } %t531, ptr %a537 @@ -49049,7 +50697,7 @@ ok4826: call void @finch_str_drop(ptr %a540) %t541 = load { ptr, i64, i64 }, ptr %a536 store { ptr, i64, i64 } %t541, ptr %a543 - store { ptr, i64, i64 } { ptr @.str.3049, i64 1, i64 0 }, ptr %a544 + store { ptr, i64, i64 } { ptr @.str.3134, i64 1, i64 0 }, ptr %a544 call void @finch_str_concat(ptr %a542, ptr %a543, ptr %a544) store { ptr, i64, i64 } %t541, ptr %a545 call void @finch_str_drop(ptr %a545) @@ -49062,21 +50710,21 @@ ok4826: call void @finch_str_drop(ptr %a551) %t552 = load { ptr, i64, i64 }, ptr %a548 store { ptr, i64, i64 } %t552, ptr %a554 - store { ptr, i64, i64 } { ptr @.str.3050, i64 10, i64 0 }, ptr %a555 + store { ptr, i64, i64 } { ptr @.str.3135, i64 10, i64 0 }, ptr %a555 call void @finch_str_concat(ptr %a553, ptr %a554, ptr %a555) store { ptr, i64, i64 } %t552, ptr %a556 call void @finch_str_drop(ptr %a556) %t557 = load { ptr, i64, i64 }, ptr %a553 %t558 = load ptr, ptr %a1 %t559 = icmp eq ptr %t558, null - br i1 %t559, label %panic4827, label %ok4828 -panic4827: - call void @finch_panic(ptr @.str.3051, i64 2165, ptr @.str.3052) + br i1 %t559, label %panic4971, label %ok4972 +panic4971: + call void @finch_panic(ptr @.str.3136, i64 2246, ptr @.str.3137) unreachable -ok4828: +ok4972: %t560 = getelementptr inbounds %S.gen.Gen, ptr %t558, i32 0, i32 5 %t561 = getelementptr inbounds { ptr, i64, i64 }, ptr %t560, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.3053, i64 1, i64 0 }, ptr %a562 + store { ptr, i64, i64 } { ptr @.str.3138, i64 1, i64 0 }, ptr %a562 call void @finch_str_join(ptr %a563, ptr %t560, ptr %a562) %t564 = load { ptr, i64, i64 }, ptr %a563 store { ptr, i64, i64 } %t557, ptr %a566 @@ -49088,21 +50736,21 @@ ok4828: call void @finch_str_drop(ptr %a569) %t570 = load { ptr, i64, i64 }, ptr %a565 store { ptr, i64, i64 } %t570, ptr %a572 - store { ptr, i64, i64 } { ptr @.str.3054, i64 1, i64 0 }, ptr %a573 + store { ptr, i64, i64 } { ptr @.str.3139, i64 1, i64 0 }, ptr %a573 call void @finch_str_concat(ptr %a571, ptr %a572, ptr %a573) store { ptr, i64, i64 } %t570, ptr %a574 call void @finch_str_drop(ptr %a574) %t575 = load { ptr, i64, i64 }, ptr %a571 %t576 = load ptr, ptr %a1 %t577 = icmp eq ptr %t576, null - br i1 %t577, label %panic4829, label %ok4830 -panic4829: - call void @finch_panic(ptr @.str.3055, i64 2165, ptr @.str.3056) + br i1 %t577, label %panic4973, label %ok4974 +panic4973: + call void @finch_panic(ptr @.str.3140, i64 2246, ptr @.str.3141) unreachable -ok4830: +ok4974: %t578 = getelementptr inbounds %S.gen.Gen, ptr %t576, i32 0, i32 4 %t579 = getelementptr inbounds { ptr, i64, i64 }, ptr %t578, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.3057, i64 1, i64 0 }, ptr %a580 + store { ptr, i64, i64 } { ptr @.str.3142, i64 1, i64 0 }, ptr %a580 call void @finch_str_join(ptr %a581, ptr %t578, ptr %a580) %t582 = load { ptr, i64, i64 }, ptr %a581 store { ptr, i64, i64 } %t575, ptr %a584 @@ -49114,7 +50762,7 @@ ok4830: call void @finch_str_drop(ptr %a587) %t588 = load { ptr, i64, i64 }, ptr %a583 store { ptr, i64, i64 } %t588, ptr %a590 - store { ptr, i64, i64 } { ptr @.str.3058, i64 3, i64 0 }, ptr %a591 + store { ptr, i64, i64 } { ptr @.str.3143, i64 3, i64 0 }, ptr %a591 call void @finch_str_concat(ptr %a589, ptr %a590, ptr %a591) store { ptr, i64, i64 } %t588, ptr %a592 call void @finch_str_drop(ptr %a592) @@ -49145,59 +50793,59 @@ entry: store %S.ast.Node %p1, ptr %a2 store i1 %p2, ptr %a3 %t4 = load i1, ptr %a3 - br i1 %t4, label %then4831, label %endif4833 -then4831: + br i1 %t4, label %then4975, label %endif4977 +then4975: %t5 = load ptr, ptr %a1 call void @finch.gen.pushScope(ptr %t5) - br label %endif4833 -endif4833: + br label %endif4977 +endif4977: %t6 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 store i64 0, ptr %a7 - br label %each.cond4834 -each.cond4834: + br label %each.cond4978 +each.cond4978: %t8 = getelementptr inbounds { ptr, i64, i64 }, ptr %t6, i32 0, i32 1 %t9 = load i64, ptr %t8 %t10 = load i64, ptr %a7 %t11 = icmp slt i64 %t10, %t9 - br i1 %t11, label %each.body4835, label %each.end4837 -each.body4835: + br i1 %t11, label %each.body4979, label %each.end4981 +each.body4979: %t12 = load ptr, ptr %t6 %t13 = getelementptr inbounds %S.ast.Node, ptr %t12, i64 %t10 %t14 = load %S.ast.Node, ptr %t13 store %S.ast.Node %t14, ptr %a15 %t16 = load ptr, ptr %a1 %t17 = icmp eq ptr %t16, null - br i1 %t17, label %panic4838, label %ok4839 -panic4838: - call void @finch_panic(ptr @.str.3059, i64 2175, ptr @.str.3060) + br i1 %t17, label %panic4982, label %ok4983 +panic4982: + call void @finch_panic(ptr @.str.3144, i64 2256, ptr @.str.3145) unreachable -ok4839: +ok4983: %t18 = getelementptr inbounds %S.gen.Gen, ptr %t16, i32 0, i32 9 %t19 = load i1, ptr %t18 - br i1 %t19, label %then4840, label %endif4842 -then4840: + br i1 %t19, label %then4984, label %endif4986 +then4984: %t20 = load ptr, ptr %a1 %t21 = load %S.ast.Node, ptr %a15 - call void @finch.gen.fail(ptr %t20, %S.ast.Node %t21, { ptr, i64, i64 } { ptr @.str.3061, i64 66, i64 0 }) - br label %endif4842 -endif4842: + call void @finch.gen.fail(ptr %t20, %S.ast.Node %t21, { ptr, i64, i64 } { ptr @.str.3146, i64 66, i64 0 }) + br label %endif4986 +endif4986: %t22 = load ptr, ptr %a1 %t23 = load %S.ast.Node, ptr %a15 call void @finch.gen.stmt(ptr %t22, %S.ast.Node %t23) - br label %each.step4836 -each.step4836: + br label %each.step4980 +each.step4980: %t24 = load i64, ptr %a7 %t25 = add i64 %t24, 1 store i64 %t25, ptr %a7 - br label %each.cond4834 -each.end4837: + br label %each.cond4978 +each.end4981: %t26 = load i1, ptr %a3 - br i1 %t26, label %then4843, label %endif4845 -then4843: + br i1 %t26, label %then4987, label %endif4989 +then4987: %t27 = load ptr, ptr %a1 call void @finch.gen.endScope(ptr %t27) - br label %endif4845 -endif4845: + br label %endif4989 +endif4989: ret void } @@ -49289,23 +50937,23 @@ entry: %t4 = load i64, ptr %t3 %t5 = load ptr, ptr %a1 %t6 = icmp eq ptr %t5, null - br i1 %t6, label %panic4846, label %ok4847 -panic4846: - call void @finch_panic(ptr @.str.3062, i64 2186, ptr @.str.3063) + br i1 %t6, label %panic4990, label %ok4991 +panic4990: + call void @finch_panic(ptr @.str.3147, i64 2267, ptr @.str.3148) unreachable -ok4847: - %t7 = getelementptr inbounds %S.gen.Gen, ptr %t5, i32 0, i32 36 +ok4991: + %t7 = getelementptr inbounds %S.gen.Gen, ptr %t5, i32 0, i32 37 store i64 %t4, ptr %t7 %t8 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 12 %t9 = load i64, ptr %t8 %t10 = load ptr, ptr %a1 %t11 = icmp eq ptr %t10, null - br i1 %t11, label %panic4848, label %ok4849 -panic4848: - call void @finch_panic(ptr @.str.3064, i64 2187, ptr @.str.3065) + br i1 %t11, label %panic4992, label %ok4993 +panic4992: + call void @finch_panic(ptr @.str.3149, i64 2268, ptr @.str.3150) unreachable -ok4849: - %t12 = getelementptr inbounds %S.gen.Gen, ptr %t10, i32 0, i32 37 +ok4993: + %t12 = getelementptr inbounds %S.gen.Gen, ptr %t10, i32 0, i32 38 store i64 %t9, ptr %t12 %t13 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 %t14 = load { ptr, i64, i64 }, ptr %t13 @@ -49315,77 +50963,77 @@ ok4849: store { ptr, i64, i64 } %t17, ptr %a18 %t19 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t19, ptr %a20 - store { ptr, i64, i64 } { ptr @.str.3066, i64 5, i64 0 }, ptr %a21 + store { ptr, i64, i64 } { ptr @.str.3151, i64 5, i64 0 }, ptr %a21 %t22 = call i32 @finch_str_eq(ptr %a20, ptr %a21) %t23 = icmp ne i32 %t22, 0 - br i1 %t23, label %then4850, label %else4851 -then4850: + br i1 %t23, label %then4994, label %else4995 +then4994: %t24 = load ptr, ptr %a1 %t25 = load %S.ast.Node, ptr %a2 call void @finch.gen.block(ptr %t24, %S.ast.Node %t25, i1 true) - br label %endif4852 -else4851: + br label %endif4996 +else4995: %t26 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t26, ptr %a27 - store { ptr, i64, i64 } { ptr @.str.3067, i64 4, i64 0 }, ptr %a28 + store { ptr, i64, i64 } { ptr @.str.3152, i64 4, i64 0 }, ptr %a28 %t29 = call i32 @finch_str_eq(ptr %a27, ptr %a28) %t30 = icmp ne i32 %t29, 0 - br i1 %t30, label %then4853, label %else4854 -then4853: + br i1 %t30, label %then4997, label %else4998 +then4997: %t31 = load ptr, ptr %a1 %t32 = load %S.ast.Node, ptr %a2 call void @finch.gen.declStmt(ptr %t31, %S.ast.Node %t32) - br label %endif4855 -else4854: + br label %endif4999 +else4998: %t33 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t33, ptr %a34 - store { ptr, i64, i64 } { ptr @.str.3068, i64 6, i64 0 }, ptr %a35 + store { ptr, i64, i64 } { ptr @.str.3153, i64 6, i64 0 }, ptr %a35 %t36 = call i32 @finch_str_eq(ptr %a34, ptr %a35) %t37 = icmp ne i32 %t36, 0 - br i1 %t37, label %then4856, label %else4857 -then4856: + br i1 %t37, label %then5000, label %else5001 +then5000: %t38 = load ptr, ptr %a1 %t39 = load %S.ast.Node, ptr %a2 call void @finch.gen.assignStmt(ptr %t38, %S.ast.Node %t39) - br label %endif4858 -else4857: + br label %endif5002 +else5001: %t40 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t40, ptr %a41 - store { ptr, i64, i64 } { ptr @.str.3069, i64 4, i64 0 }, ptr %a42 + store { ptr, i64, i64 } { ptr @.str.3154, i64 4, i64 0 }, ptr %a42 %t43 = call i32 @finch_str_eq(ptr %a41, ptr %a42) %t44 = icmp ne i32 %t43, 0 - br i1 %t44, label %then4859, label %else4860 -then4859: + br i1 %t44, label %then5003, label %else5004 +then5003: %t45 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t46 = load { ptr, i64, i64 }, ptr %t45 %t47 = extractvalue { ptr, i64, i64 } %t46, 1 %t48 = icmp uge i64 0, %t47 - br i1 %t48, label %range4862, label %inrange4863 -range4862: - call void @finch_panic_index(ptr @.str.3070, i64 2196, i64 0, i64 %t47) + br i1 %t48, label %range5006, label %inrange5007 +range5006: + call void @finch_panic_index(ptr @.str.3155, i64 2277, i64 0, i64 %t47) unreachable -inrange4863: +inrange5007: %t49 = extractvalue { ptr, i64, i64 } %t46, 0 %t50 = getelementptr inbounds %S.ast.Node, ptr %t49, i64 0 %t51 = getelementptr inbounds %S.ast.Node, ptr %t50, i32 0, i32 0 %t52 = load { ptr, i64, i64 }, ptr %t51 store { ptr, i64, i64 } %t52, ptr %a53 - store { ptr, i64, i64 } { ptr @.str.3071, i64 2, i64 0 }, ptr %a54 + store { ptr, i64, i64 } { ptr @.str.3156, i64 2, i64 0 }, ptr %a54 %t55 = call i32 @finch_str_eq(ptr %a53, ptr %a54) %t56 = icmp ne i32 %t55, 0 - br i1 %t56, label %then4864, label %else4865 -then4864: + br i1 %t56, label %then5008, label %else5009 +then5008: %t57 = load ptr, ptr %a1 %t58 = load ptr, ptr %a1 %t59 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t60 = load { ptr, i64, i64 }, ptr %t59 %t61 = extractvalue { ptr, i64, i64 } %t60, 1 %t62 = icmp uge i64 0, %t61 - br i1 %t62, label %range4867, label %inrange4868 -range4867: - call void @finch_panic_index(ptr @.str.3072, i64 2197, i64 0, i64 %t61) + br i1 %t62, label %range5011, label %inrange5012 +range5011: + call void @finch_panic_index(ptr @.str.3157, i64 2278, i64 0, i64 %t61) unreachable -inrange4868: +inrange5012: %t63 = extractvalue { ptr, i64, i64 } %t60, 0 %t64 = getelementptr inbounds %S.ast.Node, ptr %t63, i64 0 %t65 = load %S.ast.Node, ptr %t64 @@ -49393,19 +51041,19 @@ inrange4868: call void @finch.gen.release(ptr %t57, %S.gen.Val %t66) store %S.gen.Val %t66, ptr %a67 call void @finch.drop.S_gen_Val(ptr %a67) - br label %endif4866 -else4865: + br label %endif5010 +else5009: %t68 = load ptr, ptr %a1 %t69 = load ptr, ptr %a1 %t70 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t71 = load { ptr, i64, i64 }, ptr %t70 %t72 = extractvalue { ptr, i64, i64 } %t71, 1 %t73 = icmp uge i64 0, %t72 - br i1 %t73, label %range4869, label %inrange4870 -range4869: - call void @finch_panic_index(ptr @.str.3073, i64 2199, i64 0, i64 %t72) + br i1 %t73, label %range5013, label %inrange5014 +range5013: + call void @finch_panic_index(ptr @.str.3158, i64 2280, i64 0, i64 %t72) unreachable -inrange4870: +inrange5014: %t74 = extractvalue { ptr, i64, i64 } %t71, 0 %t75 = getelementptr inbounds %S.ast.Node, ptr %t74, i64 0 %t76 = load %S.ast.Node, ptr %t75 @@ -49413,115 +51061,115 @@ inrange4870: call void @finch.gen.release(ptr %t68, %S.gen.Val %t77) store %S.gen.Val %t77, ptr %a78 call void @finch.drop.S_gen_Val(ptr %a78) - br label %endif4866 -endif4866: - br label %endif4861 -else4860: + br label %endif5010 +endif5010: + br label %endif5005 +else5004: %t79 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t79, ptr %a80 - store { ptr, i64, i64 } { ptr @.str.3074, i64 5, i64 0 }, ptr %a81 + store { ptr, i64, i64 } { ptr @.str.3159, i64 5, i64 0 }, ptr %a81 %t82 = call i32 @finch_str_eq(ptr %a80, ptr %a81) %t83 = icmp ne i32 %t82, 0 - br i1 %t83, label %then4871, label %else4872 -then4871: + br i1 %t83, label %then5015, label %else5016 +then5015: %t84 = load ptr, ptr %a1 %t85 = load %S.ast.Node, ptr %a2 %t86 = call %S.gen.Val @finch.gen.matchGen(ptr %t84, %S.ast.Node %t85, i1 false) store %S.gen.Val %t86, ptr %a87 call void @finch.drop.S_gen_Val(ptr %a87) - br label %endif4873 -else4872: + br label %endif5017 +else5016: %t88 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t88, ptr %a89 - store { ptr, i64, i64 } { ptr @.str.3075, i64 2, i64 0 }, ptr %a90 + store { ptr, i64, i64 } { ptr @.str.3160, i64 2, i64 0 }, ptr %a90 %t91 = call i32 @finch_str_eq(ptr %a89, ptr %a90) %t92 = icmp ne i32 %t91, 0 - br i1 %t92, label %then4874, label %else4875 -then4874: + br i1 %t92, label %then5018, label %else5019 +then5018: %t93 = load ptr, ptr %a1 %t94 = load %S.ast.Node, ptr %a2 call void @finch.gen.ifStmt(ptr %t93, %S.ast.Node %t94) - br label %endif4876 -else4875: + br label %endif5020 +else5019: %t95 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t95, ptr %a96 - store { ptr, i64, i64 } { ptr @.str.3076, i64 5, i64 0 }, ptr %a97 + store { ptr, i64, i64 } { ptr @.str.3161, i64 5, i64 0 }, ptr %a97 %t98 = call i32 @finch_str_eq(ptr %a96, ptr %a97) %t99 = icmp ne i32 %t98, 0 - br i1 %t99, label %then4877, label %else4878 -then4877: + br i1 %t99, label %then5021, label %else5022 +then5021: %t100 = load ptr, ptr %a1 %t101 = load %S.ast.Node, ptr %a2 call void @finch.gen.whileStmt(ptr %t100, %S.ast.Node %t101) - br label %endif4879 -else4878: + br label %endif5023 +else5022: %t102 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t102, ptr %a103 - store { ptr, i64, i64 } { ptr @.str.3077, i64 3, i64 0 }, ptr %a104 + store { ptr, i64, i64 } { ptr @.str.3162, i64 3, i64 0 }, ptr %a104 %t105 = call i32 @finch_str_eq(ptr %a103, ptr %a104) %t106 = icmp ne i32 %t105, 0 - br i1 %t106, label %then4880, label %else4881 -then4880: + br i1 %t106, label %then5024, label %else5025 +then5024: %t107 = load ptr, ptr %a1 %t108 = load %S.ast.Node, ptr %a2 call void @finch.gen.forStmt(ptr %t107, %S.ast.Node %t108) - br label %endif4882 -else4881: + br label %endif5026 +else5025: %t109 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t109, ptr %a110 - store { ptr, i64, i64 } { ptr @.str.3078, i64 4, i64 0 }, ptr %a111 + store { ptr, i64, i64 } { ptr @.str.3163, i64 4, i64 0 }, ptr %a111 %t112 = call i32 @finch_str_eq(ptr %a110, ptr %a111) %t113 = icmp ne i32 %t112, 0 - br i1 %t113, label %then4883, label %else4884 -then4883: + br i1 %t113, label %then5027, label %else5028 +then5027: %t114 = load ptr, ptr %a1 %t115 = load %S.ast.Node, ptr %a2 call void @finch.gen.eachStmt(ptr %t114, %S.ast.Node %t115) - br label %endif4885 -else4884: + br label %endif5029 +else5028: %t116 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t116, ptr %a117 - store { ptr, i64, i64 } { ptr @.str.3079, i64 6, i64 0 }, ptr %a118 + store { ptr, i64, i64 } { ptr @.str.3164, i64 6, i64 0 }, ptr %a118 %t119 = call i32 @finch_str_eq(ptr %a117, ptr %a118) %t120 = icmp ne i32 %t119, 0 - br i1 %t120, label %then4886, label %else4887 -then4886: + br i1 %t120, label %then5030, label %else5031 +then5030: %t121 = load ptr, ptr %a1 %t122 = load %S.ast.Node, ptr %a2 call void @finch.gen.returnStmt(ptr %t121, %S.ast.Node %t122) - br label %endif4888 -else4887: + br label %endif5032 +else5031: %t123 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t123, ptr %a124 - store { ptr, i64, i64 } { ptr @.str.3080, i64 5, i64 0 }, ptr %a125 + store { ptr, i64, i64 } { ptr @.str.3165, i64 5, i64 0 }, ptr %a125 %t126 = call i32 @finch_str_eq(ptr %a124, ptr %a125) %t127 = icmp ne i32 %t126, 0 - br i1 %t127, label %then4889, label %else4890 -then4889: + br i1 %t127, label %then5033, label %else5034 +then5033: %t128 = load ptr, ptr %a1 %t129 = icmp eq ptr %t128, null - br i1 %t129, label %panic4892, label %ok4893 -panic4892: - call void @finch_panic(ptr @.str.3081, i64 2214, ptr @.str.3082) + br i1 %t129, label %panic5036, label %ok5037 +panic5036: + call void @finch_panic(ptr @.str.3166, i64 2295, ptr @.str.3167) unreachable -ok4893: - %t130 = getelementptr inbounds %S.gen.Gen, ptr %t128, i32 0, i32 45 +ok5037: + %t130 = getelementptr inbounds %S.gen.Gen, ptr %t128, i32 0, i32 46 %t131 = load i64, ptr %t130 %t132 = icmp sgt i64 %t131, 0 - br i1 %t132, label %then4894, label %endif4896 -then4894: + br i1 %t132, label %then5038, label %endif5040 +then5038: %t133 = load ptr, ptr %a1 %t134 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t133, %S.ast.Node %t134, { ptr, i64, i64 } { ptr @.str.3083, i64 33, i64 0 }) - br label %endif4896 -endif4896: + call void @finch.gen.fail(ptr %t133, %S.ast.Node %t134, { ptr, i64, i64 } { ptr @.str.3168, i64 33, i64 0 }) + br label %endif5040 +endif5040: %t135 = load ptr, ptr %a1 %t136 = icmp eq ptr %t135, null - br i1 %t136, label %panic4897, label %ok4898 -panic4897: - call void @finch_panic(ptr @.str.3084, i64 2217, ptr @.str.3085) + br i1 %t136, label %panic5041, label %ok5042 +panic5041: + call void @finch_panic(ptr @.str.3169, i64 2298, ptr @.str.3170) unreachable -ok4898: +ok5042: %t137 = getelementptr inbounds %S.gen.Gen, ptr %t135, i32 0, i32 10 %t138 = getelementptr inbounds { ptr, i64, i64 }, ptr %t137, i32 0, i32 1 %t139 = load i64, ptr %t138 @@ -49529,21 +51177,21 @@ ok4898: store i64 %t140, ptr %a141 %t142 = load ptr, ptr %a1 %t143 = icmp eq ptr %t142, null - br i1 %t143, label %panic4899, label %ok4900 -panic4899: - call void @finch_panic(ptr @.str.3086, i64 2218, ptr @.str.3087) + br i1 %t143, label %panic5043, label %ok5044 +panic5043: + call void @finch_panic(ptr @.str.3171, i64 2299, ptr @.str.3172) unreachable -ok4900: +ok5044: %t144 = getelementptr inbounds %S.gen.Gen, ptr %t142, i32 0, i32 10 %t145 = load i64, ptr %a141 %t146 = load { ptr, i64, i64 }, ptr %t144 %t147 = extractvalue { ptr, i64, i64 } %t146, 1 %t148 = icmp uge i64 %t145, %t147 - br i1 %t148, label %range4901, label %inrange4902 -range4901: - call void @finch_panic_index(ptr @.str.3088, i64 2218, i64 %t145, i64 %t147) + br i1 %t148, label %range5045, label %inrange5046 +range5045: + call void @finch_panic_index(ptr @.str.3173, i64 2299, i64 %t145, i64 %t147) unreachable -inrange4902: +inrange5046: %t149 = extractvalue { ptr, i64, i64 } %t146, 0 %t150 = getelementptr inbounds %S.gen.Scope, ptr %t149, i64 %t145 %t151 = getelementptr inbounds %S.gen.Scope, ptr %t150, i32 0, i32 3 @@ -49551,21 +51199,21 @@ inrange4902: %t153 = insertvalue %S.gen.Cleanup zeroinitializer, i1 true, 0 %t154 = load ptr, ptr %a1 %t155 = icmp eq ptr %t154, null - br i1 %t155, label %panic4903, label %ok4904 -panic4903: - call void @finch_panic(ptr @.str.3089, i64 2218, ptr @.str.3090) + br i1 %t155, label %panic5047, label %ok5048 +panic5047: + call void @finch_panic(ptr @.str.3174, i64 2299, ptr @.str.3175) unreachable -ok4904: +ok5048: %t156 = getelementptr inbounds %S.gen.Gen, ptr %t154, i32 0, i32 10 %t157 = load i64, ptr %a141 %t158 = load { ptr, i64, i64 }, ptr %t156 %t159 = extractvalue { ptr, i64, i64 } %t158, 1 %t160 = icmp uge i64 %t157, %t159 - br i1 %t160, label %range4905, label %inrange4906 -range4905: - call void @finch_panic_index(ptr @.str.3091, i64 2218, i64 %t157, i64 %t159) + br i1 %t160, label %range5049, label %inrange5050 +range5049: + call void @finch_panic_index(ptr @.str.3176, i64 2299, i64 %t157, i64 %t159) unreachable -inrange4906: +inrange5050: %t161 = extractvalue { ptr, i64, i64 } %t158, 0 %t162 = getelementptr inbounds %S.gen.Scope, ptr %t161, i64 %t157 %t163 = getelementptr inbounds %S.gen.Scope, ptr %t162, i32 0, i32 1 @@ -49581,21 +51229,21 @@ inrange4906: store i64 %t168, ptr %t152 %t171 = load ptr, ptr %a1 %t172 = icmp eq ptr %t171, null - br i1 %t172, label %panic4907, label %ok4908 -panic4907: - call void @finch_panic(ptr @.str.3092, i64 2219, ptr @.str.3093) + br i1 %t172, label %panic5051, label %ok5052 +panic5051: + call void @finch_panic(ptr @.str.3177, i64 2300, ptr @.str.3178) unreachable -ok4908: +ok5052: %t173 = getelementptr inbounds %S.gen.Gen, ptr %t171, i32 0, i32 10 %t174 = load i64, ptr %a141 %t175 = load { ptr, i64, i64 }, ptr %t173 %t176 = extractvalue { ptr, i64, i64 } %t175, 1 %t177 = icmp uge i64 %t174, %t176 - br i1 %t177, label %range4909, label %inrange4910 -range4909: - call void @finch_panic_index(ptr @.str.3094, i64 2219, i64 %t174, i64 %t176) + br i1 %t177, label %range5053, label %inrange5054 +range5053: + call void @finch_panic_index(ptr @.str.3179, i64 2300, i64 %t174, i64 %t176) unreachable -inrange4910: +inrange5054: %t178 = extractvalue { ptr, i64, i64 } %t175, 0 %t179 = getelementptr inbounds %S.gen.Scope, ptr %t178, i64 %t174 %t180 = getelementptr inbounds %S.gen.Scope, ptr %t179, i32 0, i32 1 @@ -49604,11 +51252,11 @@ inrange4910: %t183 = load { ptr, i64, i64 }, ptr %t182 %t184 = extractvalue { ptr, i64, i64 } %t183, 1 %t185 = icmp uge i64 0, %t184 - br i1 %t185, label %range4911, label %inrange4912 -range4911: - call void @finch_panic_index(ptr @.str.3095, i64 2219, i64 0, i64 %t184) + br i1 %t185, label %range5055, label %inrange5056 +range5055: + call void @finch_panic_index(ptr @.str.3180, i64 2300, i64 0, i64 %t184) unreachable -inrange4912: +inrange5056: %t186 = extractvalue { ptr, i64, i64 } %t183, 0 %t187 = getelementptr inbounds %S.ast.Node, ptr %t186, i64 0 %t188 = load %S.ast.Node, ptr %t187 @@ -49624,33 +51272,33 @@ inrange4912: store i64 %t193, ptr %t181 %t196 = load ptr, ptr %a1 %t197 = icmp eq ptr %t196, null - br i1 %t197, label %panic4913, label %ok4914 -panic4913: - call void @finch_panic(ptr @.str.3096, i64 2220, ptr @.str.3097) + br i1 %t197, label %panic5057, label %ok5058 +panic5057: + call void @finch_panic(ptr @.str.3181, i64 2301, ptr @.str.3182) unreachable -ok4914: +ok5058: %t198 = getelementptr inbounds %S.gen.Gen, ptr %t196, i32 0, i32 10 %t199 = load i64, ptr %a141 %t200 = load { ptr, i64, i64 }, ptr %t198 %t201 = extractvalue { ptr, i64, i64 } %t200, 1 %t202 = icmp uge i64 %t199, %t201 - br i1 %t202, label %range4915, label %inrange4916 -range4915: - call void @finch_panic_index(ptr @.str.3098, i64 2220, i64 %t199, i64 %t201) + br i1 %t202, label %range5059, label %inrange5060 +range5059: + call void @finch_panic_index(ptr @.str.3183, i64 2301, i64 %t199, i64 %t201) unreachable -inrange4916: +inrange5060: %t203 = extractvalue { ptr, i64, i64 } %t200, 0 %t204 = getelementptr inbounds %S.gen.Scope, ptr %t203, i64 %t199 %t205 = getelementptr inbounds %S.gen.Scope, ptr %t204, i32 0, i32 2 %t206 = getelementptr inbounds { ptr, i64, i64 }, ptr %t205, i32 0, i32 1 %t207 = load ptr, ptr %a1 %t208 = icmp eq ptr %t207, null - br i1 %t208, label %panic4917, label %ok4918 -panic4917: - call void @finch_panic(ptr @.str.3099, i64 2220, ptr @.str.3100) + br i1 %t208, label %panic5061, label %ok5062 +panic5061: + call void @finch_panic(ptr @.str.3184, i64 2301, ptr @.str.3185) unreachable -ok4918: - %t209 = getelementptr inbounds %S.gen.Gen, ptr %t207, i32 0, i32 24 +ok5062: + %t209 = getelementptr inbounds %S.gen.Gen, ptr %t207, i32 0, i32 25 %t210 = load i64, ptr %t209 %t211 = load i64, ptr %t206 %t212 = add i64 %t211, 1 @@ -49659,93 +51307,93 @@ ok4918: %t214 = getelementptr inbounds i64, ptr %t213, i64 %t211 store i64 %t210, ptr %t214 store i64 %t212, ptr %t206 - br label %endif4891 -else4890: + br label %endif5035 +else5034: %t215 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t215, ptr %a216 - store { ptr, i64, i64 } { ptr @.str.3101, i64 5, i64 0 }, ptr %a217 + store { ptr, i64, i64 } { ptr @.str.3186, i64 5, i64 0 }, ptr %a217 %t218 = call i32 @finch_str_eq(ptr %a216, ptr %a217) %t219 = icmp ne i32 %t218, 0 - br label %logic.from4919 -logic.from4919: - br i1 %t219, label %logic.end4921, label %logic.rhs4920 -logic.rhs4920: + br label %logic.from5063 +logic.from5063: + br i1 %t219, label %logic.end5065, label %logic.rhs5064 +logic.rhs5064: %t220 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t220, ptr %a221 - store { ptr, i64, i64 } { ptr @.str.3102, i64 8, i64 0 }, ptr %a222 + store { ptr, i64, i64 } { ptr @.str.3187, i64 8, i64 0 }, ptr %a222 %t223 = call i32 @finch_str_eq(ptr %a221, ptr %a222) %t224 = icmp ne i32 %t223, 0 - br label %logic.rend4922 -logic.rend4922: - br label %logic.end4921 -logic.end4921: - %t225 = phi i1 [ true, %logic.from4919 ], [ %t224, %logic.rend4922 ] - br i1 %t225, label %then4923, label %else4924 -then4923: + br label %logic.rend5066 +logic.rend5066: + br label %logic.end5065 +logic.end5065: + %t225 = phi i1 [ true, %logic.from5063 ], [ %t224, %logic.rend5066 ] + br i1 %t225, label %then5067, label %else5068 +then5067: %t226 = load ptr, ptr %a1 %t227 = icmp eq ptr %t226, null - br i1 %t227, label %panic4926, label %ok4927 -panic4926: - call void @finch_panic(ptr @.str.3103, i64 2222, ptr @.str.3104) + br i1 %t227, label %panic5070, label %ok5071 +panic5070: + call void @finch_panic(ptr @.str.3188, i64 2303, ptr @.str.3189) unreachable -ok4927: - %t228 = getelementptr inbounds %S.gen.Gen, ptr %t226, i32 0, i32 45 +ok5071: + %t228 = getelementptr inbounds %S.gen.Gen, ptr %t226, i32 0, i32 46 %t229 = load i64, ptr %t228 %t230 = icmp sgt i64 %t229, 0 - br i1 %t230, label %then4928, label %endif4930 -then4928: + br i1 %t230, label %then5072, label %endif5074 +then5072: %t231 = load ptr, ptr %a1 %t232 = load %S.ast.Node, ptr %a2 %t233 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t233, ptr %a235 - store { ptr, i64, i64 } { ptr @.str.3105, i64 27, i64 0 }, ptr %a236 + store { ptr, i64, i64 } { ptr @.str.3190, i64 27, i64 0 }, ptr %a236 call void @finch_str_concat(ptr %a234, ptr %a235, ptr %a236) %t237 = load { ptr, i64, i64 }, ptr %a234 call void @finch.gen.fail(ptr %t231, %S.ast.Node %t232, { ptr, i64, i64 } %t237) store { ptr, i64, i64 } %t237, ptr %a238 call void @finch_str_drop(ptr %a238) - br label %endif4930 -endif4930: + br label %endif5074 +endif5074: %t239 = load ptr, ptr %a1 %t240 = icmp eq ptr %t239, null - br i1 %t240, label %panic4931, label %ok4932 -panic4931: - call void @finch_panic(ptr @.str.3106, i64 2225, ptr @.str.3107) + br i1 %t240, label %panic5075, label %ok5076 +panic5075: + call void @finch_panic(ptr @.str.3191, i64 2306, ptr @.str.3192) unreachable -ok4932: +ok5076: %t241 = getelementptr inbounds %S.gen.Gen, ptr %t239, i32 0, i32 12 %t242 = getelementptr inbounds { ptr, i64, i64 }, ptr %t241, i32 0, i32 1 %t243 = load i64, ptr %t242 %t244 = icmp eq i64 %t243, 0 - br i1 %t244, label %then4933, label %endif4935 -then4933: + br i1 %t244, label %then5077, label %endif5079 +then5077: %t245 = load ptr, ptr %a1 %t246 = load %S.ast.Node, ptr %a2 %t247 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t247, ptr %a249 - store { ptr, i64, i64 } { ptr @.str.3108, i64 31, i64 0 }, ptr %a250 + store { ptr, i64, i64 } { ptr @.str.3193, i64 31, i64 0 }, ptr %a250 call void @finch_str_concat(ptr %a248, ptr %a249, ptr %a250) %t251 = load { ptr, i64, i64 }, ptr %a248 call void @finch.gen.fail(ptr %t245, %S.ast.Node %t246, { ptr, i64, i64 } %t251) store { ptr, i64, i64 } %t251, ptr %a252 call void @finch_str_drop(ptr %a252) - br label %endif4935 -endif4935: + br label %endif5079 +endif5079: %t253 = load ptr, ptr %a1 %t254 = icmp eq ptr %t253, null - br i1 %t254, label %panic4936, label %ok4937 -panic4936: - call void @finch_panic(ptr @.str.3109, i64 2228, ptr @.str.3110) + br i1 %t254, label %panic5080, label %ok5081 +panic5080: + call void @finch_panic(ptr @.str.3194, i64 2309, ptr @.str.3195) unreachable -ok4937: +ok5081: %t255 = getelementptr inbounds %S.gen.Gen, ptr %t253, i32 0, i32 12 %t256 = load ptr, ptr %a1 %t257 = icmp eq ptr %t256, null - br i1 %t257, label %panic4938, label %ok4939 -panic4938: - call void @finch_panic(ptr @.str.3111, i64 2228, ptr @.str.3112) + br i1 %t257, label %panic5082, label %ok5083 +panic5082: + call void @finch_panic(ptr @.str.3196, i64 2309, ptr @.str.3197) unreachable -ok4939: +ok5083: %t258 = getelementptr inbounds %S.gen.Gen, ptr %t256, i32 0, i32 12 %t259 = getelementptr inbounds { ptr, i64, i64 }, ptr %t258, i32 0, i32 1 %t260 = load i64, ptr %t259 @@ -49753,11 +51401,11 @@ ok4939: %t262 = load { ptr, i64, i64 }, ptr %t255 %t263 = extractvalue { ptr, i64, i64 } %t262, 1 %t264 = icmp uge i64 %t261, %t263 - br i1 %t264, label %range4940, label %inrange4941 -range4940: - call void @finch_panic_index(ptr @.str.3113, i64 2228, i64 %t261, i64 %t263) + br i1 %t264, label %range5084, label %inrange5085 +range5084: + call void @finch_panic_index(ptr @.str.3198, i64 2309, i64 %t261, i64 %t263) unreachable -inrange4941: +inrange5085: %t265 = extractvalue { ptr, i64, i64 } %t262, 0 %t266 = getelementptr inbounds %S.gen.Loop, ptr %t265, i64 %t261 %t267 = load %S.gen.Loop, ptr %t266 @@ -49775,60 +51423,60 @@ inrange4941: call void @finch.gen.unwind(ptr %t275, i64 %t277) %t278 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t278, ptr %a279 - store { ptr, i64, i64 } { ptr @.str.3114, i64 5, i64 0 }, ptr %a280 + store { ptr, i64, i64 } { ptr @.str.3199, i64 5, i64 0 }, ptr %a280 %t281 = call i32 @finch_str_eq(ptr %a279, ptr %a280) %t282 = icmp ne i32 %t281, 0 - br i1 %t282, label %then4942, label %else4943 -then4942: + br i1 %t282, label %then5086, label %else5087 +then5086: %t283 = load ptr, ptr %a1 %t284 = getelementptr inbounds %S.gen.Loop, ptr %a271, i32 0, i32 1 %t285 = load { ptr, i64, i64 }, ptr %t284 call void @finch.gen.br(ptr %t283, { ptr, i64, i64 } %t285) - br label %endif4944 -else4943: + br label %endif5088 +else5087: %t286 = load ptr, ptr %a1 %t287 = getelementptr inbounds %S.gen.Loop, ptr %a271, i32 0, i32 0 %t288 = load { ptr, i64, i64 }, ptr %t287 call void @finch.gen.br(ptr %t286, { ptr, i64, i64 } %t288) - br label %endif4944 -endif4944: + br label %endif5088 +endif5088: call void @finch.drop.S_gen_Loop(ptr %a271) - br label %endif4925 -else4924: + br label %endif5069 +else5068: %t289 = load ptr, ptr %a1 %t290 = load %S.ast.Node, ptr %a2 %t291 = load { ptr, i64, i64 }, ptr %a18 - store { ptr, i64, i64 } { ptr @.str.3115, i64 18, i64 0 }, ptr %a293 + store { ptr, i64, i64 } { ptr @.str.3200, i64 18, i64 0 }, ptr %a293 store { ptr, i64, i64 } %t291, ptr %a294 call void @finch_str_concat(ptr %a292, ptr %a293, ptr %a294) %t295 = load { ptr, i64, i64 }, ptr %a292 call void @finch.gen.fail(ptr %t289, %S.ast.Node %t290, { ptr, i64, i64 } %t295) store { ptr, i64, i64 } %t295, ptr %a296 call void @finch_str_drop(ptr %a296) - br label %endif4925 -endif4925: - br label %endif4891 -endif4891: - br label %endif4888 -endif4888: - br label %endif4885 -endif4885: - br label %endif4882 -endif4882: - br label %endif4879 -endif4879: - br label %endif4876 -endif4876: - br label %endif4873 -endif4873: - br label %endif4861 -endif4861: - br label %endif4858 -endif4858: - br label %endif4855 -endif4855: - br label %endif4852 -endif4852: + br label %endif5069 +endif5069: + br label %endif5035 +endif5035: + br label %endif5032 +endif5032: + br label %endif5029 +endif5029: + br label %endif5026 +endif5026: + br label %endif5023 +endif5023: + br label %endif5020 +endif5020: + br label %endif5017 +endif5017: + br label %endif5005 +endif5005: + br label %endif5002 +endif5002: + br label %endif4999 +endif4999: + br label %endif4996 +endif4996: call void @finch_str_drop(ptr %a18) ret void } @@ -49878,18 +51526,18 @@ entry: %t3 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 6 %t4 = load i1, ptr %t3 %t5 = xor i1 %t4, true - br i1 %t5, label %then4945, label %endif4947 -then4945: + br i1 %t5, label %then5089, label %endif5091 +then5089: %t6 = load ptr, ptr %a1 %t7 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t8 = load { ptr, i64, i64 }, ptr %t7 %t9 = extractvalue { ptr, i64, i64 } %t8, 1 %t10 = icmp uge i64 0, %t9 - br i1 %t10, label %range4948, label %inrange4949 -range4948: - call void @finch_panic_index(ptr @.str.3116, i64 2243, i64 0, i64 %t9) + br i1 %t10, label %range5092, label %inrange5093 +range5092: + call void @finch_panic_index(ptr @.str.3201, i64 2324, i64 0, i64 %t9) unreachable -inrange4949: +inrange5093: %t11 = extractvalue { ptr, i64, i64 } %t8, 0 %t12 = getelementptr inbounds %S.ast.Node, ptr %t11, i64 0 %t13 = load %S.ast.Node, ptr %t12 @@ -49899,57 +51547,57 @@ inrange4949: %t17 = getelementptr inbounds %S.ast.Type, ptr %t16, i32 0, i32 0 %t18 = load { ptr, i64, i64 }, ptr %t17 store { ptr, i64, i64 } %t18, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.3117, i64 4, i64 0 }, ptr %a20 + store { ptr, i64, i64 } { ptr @.str.3202, i64 4, i64 0 }, ptr %a20 %t21 = call i32 @finch_str_eq(ptr %a19, ptr %a20) %t22 = icmp ne i32 %t21, 0 - br i1 %t22, label %then4950, label %endif4952 -then4950: + br i1 %t22, label %then5094, label %endif5096 +then5094: %t23 = load ptr, ptr %a1 %t24 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t25 = load { ptr, i64, i64 }, ptr %t24 %t26 = extractvalue { ptr, i64, i64 } %t25, 1 %t27 = icmp uge i64 0, %t26 - br i1 %t27, label %range4953, label %inrange4954 -range4953: - call void @finch_panic_index(ptr @.str.3118, i64 2245, i64 0, i64 %t26) + br i1 %t27, label %range5097, label %inrange5098 +range5097: + call void @finch_panic_index(ptr @.str.3203, i64 2326, i64 0, i64 %t26) unreachable -inrange4954: +inrange5098: %t28 = extractvalue { ptr, i64, i64 } %t25, 0 %t29 = getelementptr inbounds %S.ast.Node, ptr %t28, i64 0 %t30 = load %S.ast.Node, ptr %t29 - call void @finch.gen.fail(ptr %t23, %S.ast.Node %t30, { ptr, i64, i64 } { ptr @.str.3119, i64 46, i64 0 }) - br label %endif4952 -endif4952: + call void @finch.gen.fail(ptr %t23, %S.ast.Node %t30, { ptr, i64, i64 } { ptr @.str.3204, i64 46, i64 0 }) + br label %endif5096 +endif5096: %t31 = getelementptr inbounds %S.gen.Val, ptr %a15, i32 0, i32 1 %t32 = getelementptr inbounds %S.ast.Type, ptr %t31, i32 0, i32 0 %t33 = load { ptr, i64, i64 }, ptr %t32 store { ptr, i64, i64 } %t33, ptr %a34 - store { ptr, i64, i64 } { ptr @.str.3120, i64 4, i64 0 }, ptr %a35 + store { ptr, i64, i64 } { ptr @.str.3205, i64 4, i64 0 }, ptr %a35 %t36 = call i32 @finch_str_eq(ptr %a34, ptr %a35) %t37 = icmp ne i32 %t36, 0 - br i1 %t37, label %then4955, label %endif4957 -then4955: + br i1 %t37, label %then5099, label %endif5101 +then5099: %t38 = load ptr, ptr %a1 %t39 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t40 = load { ptr, i64, i64 }, ptr %t39 %t41 = extractvalue { ptr, i64, i64 } %t40, 1 %t42 = icmp uge i64 0, %t41 - br i1 %t42, label %range4958, label %inrange4959 -range4958: - call void @finch_panic_index(ptr @.str.3121, i64 2248, i64 0, i64 %t41) + br i1 %t42, label %range5102, label %inrange5103 +range5102: + call void @finch_panic_index(ptr @.str.3206, i64 2329, i64 0, i64 %t41) unreachable -inrange4959: +inrange5103: %t43 = extractvalue { ptr, i64, i64 } %t40, 0 %t44 = getelementptr inbounds %S.ast.Node, ptr %t43, i64 0 %t45 = load %S.ast.Node, ptr %t44 %t46 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t47 = load { ptr, i64, i64 }, ptr %t46 - store { ptr, i64, i64 } { ptr @.str.3122, i64 34, i64 0 }, ptr %a49 + store { ptr, i64, i64 } { ptr @.str.3207, i64 34, i64 0 }, ptr %a49 store { ptr, i64, i64 } %t47, ptr %a50 call void @finch_str_concat(ptr %a48, ptr %a49, ptr %a50) %t51 = load { ptr, i64, i64 }, ptr %a48 store { ptr, i64, i64 } %t51, ptr %a53 - store { ptr, i64, i64 } { ptr @.str.3123, i64 7, i64 0 }, ptr %a54 + store { ptr, i64, i64 } { ptr @.str.3208, i64 7, i64 0 }, ptr %a54 call void @finch_str_concat(ptr %a52, ptr %a53, ptr %a54) store { ptr, i64, i64 } %t51, ptr %a55 call void @finch_str_drop(ptr %a55) @@ -49957,8 +51605,8 @@ inrange4959: call void @finch.gen.fail(ptr %t38, %S.ast.Node %t45, { ptr, i64, i64 } %t56) store { ptr, i64, i64 } %t56, ptr %a57 call void @finch_str_drop(ptr %a57) - br label %endif4957 -endif4957: + br label %endif5101 +endif5101: %t58 = load ptr, ptr %a1 %t59 = load %S.ast.Node, ptr %a2 %t60 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 @@ -49975,7 +51623,7 @@ endif4957: call void @finch_str_drop(ptr %a69) call void @finch.drop.S_gen_Val(ptr %a15) ret void -endif4947: +endif5091: %t70 = load ptr, ptr %a1 %t71 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 5 %t72 = load %S.ast.Type, ptr %t71 @@ -49986,28 +51634,28 @@ endif4947: %t77 = getelementptr inbounds { ptr, i64, i64 }, ptr %t76, i32 0, i32 1 %t78 = load i64, ptr %t77 %t79 = icmp eq i64 %t78, 0 - br i1 %t79, label %then4960, label %endif4962 -then4960: + br i1 %t79, label %then5104, label %endif5106 +then5104: %t80 = getelementptr inbounds %S.ast.Type, ptr %a75, i32 0, i32 0 %t81 = load { ptr, i64, i64 }, ptr %t80 store { ptr, i64, i64 } %t81, ptr %a82 - store { ptr, i64, i64 } { ptr @.str.3124, i64 6, i64 0 }, ptr %a83 + store { ptr, i64, i64 } { ptr @.str.3209, i64 6, i64 0 }, ptr %a83 %t84 = call i32 @finch_str_eq(ptr %a82, ptr %a83) %t85 = icmp ne i32 %t84, 0 - br label %logic.from4963 -logic.from4963: - br i1 %t85, label %logic.rhs4964, label %logic.end4965 -logic.rhs4964: + br label %logic.from5107 +logic.from5107: + br i1 %t85, label %logic.rhs5108, label %logic.end5109 +logic.rhs5108: %t86 = load ptr, ptr %a1 %t87 = load %S.ast.Type, ptr %a75 %t88 = call i1 @finch.gen.hasDefaults(ptr %t86, %S.ast.Type %t87) - br label %logic.rend4966 -logic.rend4966: - br label %logic.end4965 -logic.end4965: - %t89 = phi i1 [ false, %logic.from4963 ], [ %t88, %logic.rend4966 ] - br i1 %t89, label %then4967, label %endif4969 -then4967: + br label %logic.rend5110 +logic.rend5110: + br label %logic.end5109 +logic.end5109: + %t89 = phi i1 [ false, %logic.from5107 ], [ %t88, %logic.rend5110 ] + br i1 %t89, label %then5111, label %endif5113 +then5111: store { ptr, i64, i64 } zeroinitializer, ptr %a90 store { ptr, i64, i64 } zeroinitializer, ptr %a91 %t92 = load ptr, ptr %a1 @@ -50037,7 +51685,7 @@ then4967: call void @finch.drop.arr_S_ast_Node(ptr %a90) call void @finch.drop.S_ast_Type(ptr %a75) ret void -endif4969: +endif5113: %t113 = load ptr, ptr %a1 %t114 = load %S.ast.Node, ptr %a2 %t115 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 @@ -50052,18 +51700,18 @@ endif4969: call void @finch_str_drop(ptr %a122) call void @finch.drop.S_ast_Type(ptr %a75) ret void -endif4962: +endif5106: %t123 = load ptr, ptr %a1 %t124 = load ptr, ptr %a1 %t125 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t126 = load { ptr, i64, i64 }, ptr %t125 %t127 = extractvalue { ptr, i64, i64 } %t126, 1 %t128 = icmp uge i64 0, %t127 - br i1 %t128, label %range4970, label %inrange4971 -range4970: - call void @finch_panic_index(ptr @.str.3125, i64 2265, i64 0, i64 %t127) + br i1 %t128, label %range5114, label %inrange5115 +range5114: + call void @finch_panic_index(ptr @.str.3210, i64 2346, i64 0, i64 %t127) unreachable -inrange4971: +inrange5115: %t129 = extractvalue { ptr, i64, i64 } %t126, 0 %t130 = getelementptr inbounds %S.ast.Node, ptr %t129, i64 0 %t131 = load %S.ast.Node, ptr %t130 @@ -50074,22 +51722,22 @@ inrange4971: %t136 = load { ptr, i64, i64 }, ptr %t135 %t137 = extractvalue { ptr, i64, i64 } %t136, 1 %t138 = icmp uge i64 0, %t137 - br i1 %t138, label %range4972, label %inrange4973 -range4972: - call void @finch_panic_index(ptr @.str.3126, i64 2265, i64 0, i64 %t137) + br i1 %t138, label %range5116, label %inrange5117 +range5116: + call void @finch_panic_index(ptr @.str.3211, i64 2346, i64 0, i64 %t137) unreachable -inrange4973: +inrange5117: %t139 = extractvalue { ptr, i64, i64 } %t136, 0 %t140 = getelementptr inbounds %S.ast.Node, ptr %t139, i64 0 %t141 = load %S.ast.Node, ptr %t140 %t142 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t143 = load { ptr, i64, i64 }, ptr %t142 - store { ptr, i64, i64 } { ptr @.str.3127, i64 1, i64 0 }, ptr %a145 + store { ptr, i64, i64 } { ptr @.str.3212, i64 1, i64 0 }, ptr %a145 store { ptr, i64, i64 } %t143, ptr %a146 call void @finch_str_concat(ptr %a144, ptr %a145, ptr %a146) %t147 = load { ptr, i64, i64 }, ptr %a144 store { ptr, i64, i64 } %t147, ptr %a149 - store { ptr, i64, i64 } { ptr @.str.3128, i64 1, i64 0 }, ptr %a150 + store { ptr, i64, i64 } { ptr @.str.3213, i64 1, i64 0 }, ptr %a150 call void @finch_str_concat(ptr %a148, ptr %a149, ptr %a150) store { ptr, i64, i64 } %t147, ptr %a151 call void @finch_str_drop(ptr %a151) @@ -50131,11 +51779,11 @@ entry: store %S.ast.Type %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic4974, label %ok4975 -panic4974: - call void @finch_panic(ptr @.str.3129, i64 2270, ptr @.str.3130) + br i1 %t4, label %panic5118, label %ok5119 +panic5118: + call void @finch_panic(ptr @.str.3214, i64 2351, ptr @.str.3215) unreachable -ok4975: +ok5119: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 16 %t6 = load ptr, ptr %a1 %t7 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 @@ -50146,11 +51794,11 @@ ok4975: %t12 = load { ptr, i64, i64 }, ptr %t5 %t13 = extractvalue { ptr, i64, i64 } %t12, 1 %t14 = icmp uge i64 %t11, %t13 - br i1 %t14, label %range4976, label %inrange4977 -range4976: - call void @finch_panic_index(ptr @.str.3131, i64 2270, i64 %t11, i64 %t13) + br i1 %t14, label %range5120, label %inrange5121 +range5120: + call void @finch_panic_index(ptr @.str.3216, i64 2351, i64 %t11, i64 %t13) unreachable -inrange4977: +inrange5121: %t15 = extractvalue { ptr, i64, i64 } %t12, 0 %t16 = getelementptr inbounds %S.gen.StructDef, ptr %t15, i64 %t11 %t17 = load %S.gen.StructDef, ptr %t16 @@ -50160,29 +51808,29 @@ inrange4977: store %S.gen.StructDef %t20, ptr %a21 %t22 = getelementptr inbounds %S.gen.StructDef, ptr %a21, i32 0, i32 2 %t23 = load i1, ptr %t22 - br i1 %t23, label %then4978, label %endif4980 -then4978: + br i1 %t23, label %then5122, label %endif5124 +then5122: call void @finch.drop.S_gen_StructDef(ptr %a21) ret i1 false -endif4980: +endif5124: %t24 = load ptr, ptr %a1 %t25 = icmp eq ptr %t24, null - br i1 %t25, label %panic4981, label %ok4982 -panic4981: - call void @finch_panic(ptr @.str.3132, i64 2274, ptr @.str.3133) + br i1 %t25, label %panic5125, label %ok5126 +panic5125: + call void @finch_panic(ptr @.str.3217, i64 2355, ptr @.str.3218) unreachable -ok4982: +ok5126: %t26 = getelementptr inbounds %S.gen.Gen, ptr %t24, i32 0, i32 0 %t27 = getelementptr inbounds %S.gen.StructDef, ptr %a21, i32 0, i32 13 %t28 = load i64, ptr %t27 %t29 = load { ptr, i64, i64 }, ptr %t26 %t30 = extractvalue { ptr, i64, i64 } %t29, 1 %t31 = icmp uge i64 %t28, %t30 - br i1 %t31, label %range4983, label %inrange4984 -range4983: - call void @finch_panic_index(ptr @.str.3134, i64 2274, i64 %t28, i64 %t30) + br i1 %t31, label %range5127, label %inrange5128 +range5127: + call void @finch_panic_index(ptr @.str.3219, i64 2355, i64 %t28, i64 %t30) unreachable -inrange4984: +inrange5128: %t32 = extractvalue { ptr, i64, i64 } %t29, 0 %t33 = getelementptr inbounds %S.ast.Program, ptr %t32, i64 %t28 %t34 = getelementptr inbounds %S.ast.Program, ptr %t33, i32 0, i32 6 @@ -50191,23 +51839,23 @@ inrange4984: %t37 = load { ptr, i64, i64 }, ptr %t34 %t38 = extractvalue { ptr, i64, i64 } %t37, 1 %t39 = icmp uge i64 %t36, %t38 - br i1 %t39, label %range4985, label %inrange4986 -range4985: - call void @finch_panic_index(ptr @.str.3135, i64 2274, i64 %t36, i64 %t38) + br i1 %t39, label %range5129, label %inrange5130 +range5129: + call void @finch_panic_index(ptr @.str.3220, i64 2355, i64 %t36, i64 %t38) unreachable -inrange4986: +inrange5130: %t40 = extractvalue { ptr, i64, i64 } %t37, 0 %t41 = getelementptr inbounds %S.ast.Node, ptr %t40, i64 %t36 %t42 = getelementptr inbounds %S.ast.Node, ptr %t41, i32 0, i32 9 store i64 0, ptr %a43 - br label %each.cond4987 -each.cond4987: + br label %each.cond5131 +each.cond5131: %t44 = getelementptr inbounds { ptr, i64, i64 }, ptr %t42, i32 0, i32 1 %t45 = load i64, ptr %t44 %t46 = load i64, ptr %a43 %t47 = icmp slt i64 %t46, %t45 - br i1 %t47, label %each.body4988, label %each.end4990 -each.body4988: + br i1 %t47, label %each.body5132, label %each.end5134 +each.body5132: %t48 = load ptr, ptr %t42 %t49 = getelementptr inbounds %S.ast.Node, ptr %t48, i64 %t46 %t50 = load %S.ast.Node, ptr %t49 @@ -50216,18 +51864,18 @@ each.body4988: %t53 = getelementptr inbounds { ptr, i64, i64 }, ptr %t52, i32 0, i32 1 %t54 = load i64, ptr %t53 %t55 = icmp sgt i64 %t54, 0 - br i1 %t55, label %then4991, label %endif4993 -then4991: + br i1 %t55, label %then5135, label %endif5137 +then5135: call void @finch.drop.S_gen_StructDef(ptr %a21) ret i1 true -endif4993: - br label %each.step4989 -each.step4989: +endif5137: + br label %each.step5133 +each.step5133: %t56 = load i64, ptr %a43 %t57 = add i64 %t56, 1 store i64 %t57, ptr %a43 - br label %each.cond4987 -each.end4990: + br label %each.cond5131 +each.end5134: call void @finch.drop.S_gen_StructDef(ptr %a21) ret i1 false } @@ -50331,11 +51979,11 @@ entry: %t4 = load { ptr, i64, i64 }, ptr %t3 %t5 = extractvalue { ptr, i64, i64 } %t4, 1 %t6 = icmp uge i64 0, %t5 - br i1 %t6, label %range4994, label %inrange4995 -range4994: - call void @finch_panic_index(ptr @.str.3136, i64 2283, i64 0, i64 %t5) + br i1 %t6, label %range5138, label %inrange5139 +range5138: + call void @finch_panic_index(ptr @.str.3221, i64 2364, i64 0, i64 %t5) unreachable -inrange4995: +inrange5139: %t7 = extractvalue { ptr, i64, i64 } %t4, 0 %t8 = getelementptr inbounds %S.ast.Node, ptr %t7, i64 0 %t9 = load %S.ast.Node, ptr %t8 @@ -50349,40 +51997,40 @@ inrange4995: %t17 = getelementptr inbounds { ptr, i64, i64 }, ptr %a16, i32 0, i32 1 %t18 = load i64, ptr %t17 %t19 = icmp sgt i64 %t18, 0 - br i1 %t19, label %then4996, label %endif4998 -then4996: + br i1 %t19, label %then5140, label %endif5142 +then5140: %t20 = load ptr, ptr %a1 %t21 = load { ptr, i64, i64 }, ptr %a16 %t22 = call i64 @finch.gen.lookup(ptr %t20, { ptr, i64, i64 } %t21) store i64 %t22, ptr %a23 %t24 = load i64, ptr %a23 %t25 = icmp slt i64 %t24, 0 - br label %logic.from4999 -logic.from4999: - br i1 %t25, label %logic.rhs5000, label %logic.end5001 -logic.rhs5000: + br label %logic.from5143 +logic.from5143: + br i1 %t25, label %logic.rhs5144, label %logic.end5145 +logic.rhs5144: %t26 = getelementptr inbounds %S.ast.Node, ptr %a13, i32 0, i32 0 %t27 = load { ptr, i64, i64 }, ptr %t26 store { ptr, i64, i64 } %t27, ptr %a28 - store { ptr, i64, i64 } { ptr @.str.3137, i64 3, i64 0 }, ptr %a29 + store { ptr, i64, i64 } { ptr @.str.3222, i64 3, i64 0 }, ptr %a29 %t30 = call i32 @finch_str_eq(ptr %a28, ptr %a29) %t31 = icmp ne i32 %t30, 0 - br label %logic.rend5002 -logic.rend5002: - br label %logic.end5001 -logic.end5001: - %t32 = phi i1 [ false, %logic.from4999 ], [ %t31, %logic.rend5002 ] - br i1 %t32, label %then5003, label %endif5005 -then5003: + br label %logic.rend5146 +logic.rend5146: + br label %logic.end5145 +logic.end5145: + %t32 = phi i1 [ false, %logic.from5143 ], [ %t31, %logic.rend5146 ] + br i1 %t32, label %then5147, label %endif5149 +then5147: %t33 = load ptr, ptr %a1 %t34 = load %S.ast.Node, ptr %a2 %t35 = load { ptr, i64, i64 }, ptr %a16 - store { ptr, i64, i64 } { ptr @.str.3138, i64 28, i64 0 }, ptr %a37 + store { ptr, i64, i64 } { ptr @.str.3223, i64 28, i64 0 }, ptr %a37 store { ptr, i64, i64 } %t35, ptr %a38 call void @finch_str_concat(ptr %a36, ptr %a37, ptr %a38) %t39 = load { ptr, i64, i64 }, ptr %a36 store { ptr, i64, i64 } %t39, ptr %a41 - store { ptr, i64, i64 } { ptr @.str.3139, i64 18, i64 0 }, ptr %a42 + store { ptr, i64, i64 } { ptr @.str.3224, i64 18, i64 0 }, ptr %a42 call void @finch_str_concat(ptr %a40, ptr %a41, ptr %a42) store { ptr, i64, i64 } %t39, ptr %a43 call void @finch_str_drop(ptr %a43) @@ -50395,7 +52043,7 @@ then5003: call void @finch_str_drop(ptr %a49) %t50 = load { ptr, i64, i64 }, ptr %a46 store { ptr, i64, i64 } %t50, ptr %a52 - store { ptr, i64, i64 } { ptr @.str.3140, i64 8, i64 0 }, ptr %a53 + store { ptr, i64, i64 } { ptr @.str.3225, i64 8, i64 0 }, ptr %a53 call void @finch_str_concat(ptr %a51, ptr %a52, ptr %a53) store { ptr, i64, i64 } %t50, ptr %a54 call void @finch_str_drop(ptr %a54) @@ -50403,36 +52051,36 @@ then5003: call void @finch.gen.fail(ptr %t33, %S.ast.Node %t34, { ptr, i64, i64 } %t55) store { ptr, i64, i64 } %t55, ptr %a56 call void @finch_str_drop(ptr %a56) - br label %endif5005 -endif5005: + br label %endif5149 +endif5149: %t57 = load i64, ptr %a23 %t58 = icmp sge i64 %t57, 0 - br label %logic.from5006 -logic.from5006: - br i1 %t58, label %logic.rhs5007, label %logic.end5008 -logic.rhs5007: + br label %logic.from5150 +logic.from5150: + br i1 %t58, label %logic.rhs5151, label %logic.end5152 +logic.rhs5151: %t59 = load ptr, ptr %a1 %t60 = load i64, ptr %a23 %t61 = call %S.gen.Var @finch.gen.varAt(ptr %t59, i64 %t60) %t62 = extractvalue %S.gen.Var %t61, 3 store %S.gen.Var %t61, ptr %a63 call void @finch.drop.S_gen_Var(ptr %a63) - br label %logic.rend5009 -logic.rend5009: - br label %logic.end5008 -logic.end5008: - %t64 = phi i1 [ false, %logic.from5006 ], [ %t62, %logic.rend5009 ] - br i1 %t64, label %then5010, label %endif5012 -then5010: + br label %logic.rend5153 +logic.rend5153: + br label %logic.end5152 +logic.end5152: + %t64 = phi i1 [ false, %logic.from5150 ], [ %t62, %logic.rend5153 ] + br i1 %t64, label %then5154, label %endif5156 +then5154: %t65 = load ptr, ptr %a1 %t66 = load %S.ast.Node, ptr %a2 %t67 = load { ptr, i64, i64 }, ptr %a16 - store { ptr, i64, i64 } { ptr @.str.3141, i64 19, i64 0 }, ptr %a69 + store { ptr, i64, i64 } { ptr @.str.3226, i64 19, i64 0 }, ptr %a69 store { ptr, i64, i64 } %t67, ptr %a70 call void @finch_str_concat(ptr %a68, ptr %a69, ptr %a70) %t71 = load { ptr, i64, i64 }, ptr %a68 store { ptr, i64, i64 } %t71, ptr %a73 - store { ptr, i64, i64 } { ptr @.str.3142, i64 18, i64 0 }, ptr %a74 + store { ptr, i64, i64 } { ptr @.str.3227, i64 18, i64 0 }, ptr %a74 call void @finch_str_concat(ptr %a72, ptr %a73, ptr %a74) store { ptr, i64, i64 } %t71, ptr %a75 call void @finch_str_drop(ptr %a75) @@ -50440,26 +52088,26 @@ then5010: call void @finch.gen.fail(ptr %t65, %S.ast.Node %t66, { ptr, i64, i64 } %t76) store { ptr, i64, i64 } %t76, ptr %a77 call void @finch_str_drop(ptr %a77) - br label %endif5012 -endif5012: - br label %endif4998 -endif4998: - store { ptr, i64, i64 } { ptr @.str.3143, i64 9, i64 0 }, ptr %a78 + br label %endif5156 +endif5156: + br label %endif5142 +endif5142: + store { ptr, i64, i64 } { ptr @.str.3228, i64 9, i64 0 }, ptr %a78 %t79 = getelementptr inbounds %S.ast.Node, ptr %a13, i32 0, i32 0 %t80 = load { ptr, i64, i64 }, ptr %t79 store { ptr, i64, i64 } %t80, ptr %a81 - store { ptr, i64, i64 } { ptr @.str.3144, i64 3, i64 0 }, ptr %a82 + store { ptr, i64, i64 } { ptr @.str.3229, i64 3, i64 0 }, ptr %a82 %t83 = call i32 @finch_str_eq(ptr %a81, ptr %a82) %t84 = icmp ne i32 %t83, 0 - br i1 %t84, label %then5013, label %endif5015 -then5013: + br i1 %t84, label %then5157, label %endif5159 +then5157: %t85 = load { ptr, i64, i64 }, ptr %a16 - store { ptr, i64, i64 } { ptr @.str.3145, i64 1, i64 0 }, ptr %a87 + store { ptr, i64, i64 } { ptr @.str.3230, i64 1, i64 0 }, ptr %a87 store { ptr, i64, i64 } %t85, ptr %a88 call void @finch_str_concat(ptr %a86, ptr %a87, ptr %a88) %t89 = load { ptr, i64, i64 }, ptr %a86 store { ptr, i64, i64 } %t89, ptr %a91 - store { ptr, i64, i64 } { ptr @.str.3146, i64 1, i64 0 }, ptr %a92 + store { ptr, i64, i64 } { ptr @.str.3231, i64 1, i64 0 }, ptr %a92 call void @finch_str_concat(ptr %a90, ptr %a91, ptr %a92) store { ptr, i64, i64 } %t89, ptr %a93 call void @finch_str_drop(ptr %a93) @@ -50468,35 +52116,35 @@ then5013: store { ptr, i64, i64 } %t94, ptr %a78 store { ptr, i64, i64 } %t95, ptr %a96 call void @finch_str_drop(ptr %a96) - br label %endif5015 -endif5015: + br label %endif5159 +endif5159: %t97 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t98 = load { ptr, i64, i64 }, ptr %t97 store { ptr, i64, i64 } %t98, ptr %a99 - store { ptr, i64, i64 } { ptr @.str.3147, i64 1, i64 0 }, ptr %a100 + store { ptr, i64, i64 } { ptr @.str.3232, i64 1, i64 0 }, ptr %a100 %t101 = call i32 @finch_str_eq(ptr %a99, ptr %a100) %t102 = icmp ne i32 %t101, 0 - br i1 %t102, label %then5016, label %endif5018 -then5016: - %t103 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3148, i64 4, i64 0 }) + br i1 %t102, label %then5160, label %endif5162 +then5160: + %t103 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3233, i64 4, i64 0 }) store %S.ast.Type %t103, ptr %a104 store i1 false, ptr %a105 %t106 = getelementptr inbounds %S.ast.Node, ptr %a13, i32 0, i32 0 %t107 = load { ptr, i64, i64 }, ptr %t106 store { ptr, i64, i64 } %t107, ptr %a108 - store { ptr, i64, i64 } { ptr @.str.3149, i64 3, i64 0 }, ptr %a109 + store { ptr, i64, i64 } { ptr @.str.3234, i64 3, i64 0 }, ptr %a109 %t110 = call i32 @finch_str_eq(ptr %a108, ptr %a109) %t111 = icmp ne i32 %t110, 0 - br i1 %t111, label %then5019, label %endif5021 -then5019: + br i1 %t111, label %then5163, label %endif5165 +then5163: %t112 = load ptr, ptr %a1 %t113 = load { ptr, i64, i64 }, ptr %a16 %t114 = call i64 @finch.gen.lookup(ptr %t112, { ptr, i64, i64 } %t113) store i64 %t114, ptr %a115 %t116 = load i64, ptr %a115 %t117 = icmp sge i64 %t116, 0 - br i1 %t117, label %then5022, label %endif5024 -then5022: + br i1 %t117, label %then5166, label %endif5168 +then5166: %t118 = load ptr, ptr %a1 %t119 = load i64, ptr %a115 %t120 = call %S.gen.Var @finch.gen.varAt(ptr %t118, i64 %t119) @@ -50511,24 +52159,24 @@ then5022: store %S.ast.Type %t126, ptr %a127 call void @finch.drop.S_ast_Type(ptr %a127) store i1 true, ptr %a105 - br label %endif5024 -endif5024: - br label %endif5021 -endif5021: + br label %endif5168 +endif5168: + br label %endif5165 +endif5165: store %S.gen.Val zeroinitializer, ptr %a128 %t129 = load i1, ptr %a105 - br i1 %t129, label %then5025, label %else5026 -then5025: + br i1 %t129, label %then5169, label %else5170 +then5169: %t130 = load ptr, ptr %a1 %t131 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t132 = load { ptr, i64, i64 }, ptr %t131 %t133 = extractvalue { ptr, i64, i64 } %t132, 1 %t134 = icmp uge i64 1, %t133 - br i1 %t134, label %range5028, label %inrange5029 -range5028: - call void @finch_panic_index(ptr @.str.3150, i64 2311, i64 1, i64 %t133) + br i1 %t134, label %range5172, label %inrange5173 +range5172: + call void @finch_panic_index(ptr @.str.3235, i64 2392, i64 1, i64 %t133) unreachable -inrange5029: +inrange5173: %t135 = extractvalue { ptr, i64, i64 } %t132, 0 %t136 = getelementptr inbounds %S.ast.Node, ptr %t135, i64 1 %t137 = load %S.ast.Node, ptr %t136 @@ -50538,18 +52186,18 @@ inrange5029: store %S.gen.Val %t139, ptr %a128 store %S.gen.Val %t140, ptr %a141 call void @finch.drop.S_gen_Val(ptr %a141) - br label %endif5027 -else5026: + br label %endif5171 +else5170: %t142 = load ptr, ptr %a1 %t143 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t144 = load { ptr, i64, i64 }, ptr %t143 %t145 = extractvalue { ptr, i64, i64 } %t144, 1 %t146 = icmp uge i64 1, %t145 - br i1 %t146, label %range5030, label %inrange5031 -range5030: - call void @finch_panic_index(ptr @.str.3151, i64 2313, i64 1, i64 %t145) + br i1 %t146, label %range5174, label %inrange5175 +range5174: + call void @finch_panic_index(ptr @.str.3236, i64 2394, i64 1, i64 %t145) unreachable -inrange5031: +inrange5175: %t147 = extractvalue { ptr, i64, i64 } %t144, 0 %t148 = getelementptr inbounds %S.ast.Node, ptr %t147, i64 1 %t149 = load %S.ast.Node, ptr %t148 @@ -50558,15 +52206,15 @@ inrange5031: store %S.gen.Val %t150, ptr %a128 store %S.gen.Val %t151, ptr %a152 call void @finch.drop.S_gen_Val(ptr %a152) - br label %endif5027 -endif5027: + br label %endif5171 +endif5171: %t153 = load ptr, ptr %a1 %t154 = icmp eq ptr %t153, null - br i1 %t154, label %panic5032, label %ok5033 -panic5032: - call void @finch_panic(ptr @.str.3152, i64 2315, ptr @.str.3153) + br i1 %t154, label %panic5176, label %ok5177 +panic5176: + call void @finch_panic(ptr @.str.3237, i64 2396, ptr @.str.3238) unreachable -ok5033: +ok5177: %t155 = getelementptr inbounds %S.gen.Gen, ptr %t153, i32 0, i32 11 %t156 = getelementptr inbounds { ptr, i64, i64 }, ptr %t155, i32 0, i32 1 %t157 = load i64, ptr %t156 @@ -50586,11 +52234,11 @@ ok5033: %t170 = load { ptr, i64, i64 }, ptr %t169 %t171 = extractvalue { ptr, i64, i64 } %t170, 1 %t172 = icmp uge i64 1, %t171 - br i1 %t172, label %range5034, label %inrange5035 -range5034: - call void @finch_panic_index(ptr @.str.3154, i64 2318, i64 1, i64 %t171) + br i1 %t172, label %range5178, label %inrange5179 +range5178: + call void @finch_panic_index(ptr @.str.3239, i64 2399, i64 1, i64 %t171) unreachable -inrange5035: +inrange5179: %t173 = extractvalue { ptr, i64, i64 } %t170, 0 %t174 = getelementptr inbounds %S.ast.Node, ptr %t173, i64 1 %t175 = load %S.ast.Node, ptr %t174 @@ -50608,8 +52256,8 @@ inrange5035: %t185 = getelementptr inbounds %S.gen.Place, ptr %a164, i32 0, i32 1 %t186 = load %S.ast.Type, ptr %t185 %t187 = call i1 @finch.gen.owning(ptr %t184, %S.ast.Type %t186) - br i1 %t187, label %then5036, label %else5037 -then5036: + br i1 %t187, label %then5180, label %else5181 +then5180: %t188 = load ptr, ptr %a1 %t189 = load ptr, ptr %a1 %t190 = getelementptr inbounds %S.gen.Place, ptr %a164, i32 0, i32 1 @@ -50638,8 +52286,8 @@ then5036: %t210 = load %S.ast.Type, ptr %t209 call void @finch.gen.dropValue(ptr %t207, { ptr, i64, i64 } %t208, %S.ast.Type %t210) call void @finch_str_drop(ptr %a197) - br label %endif5038 -else5037: + br label %endif5182 +else5181: %t211 = load ptr, ptr %a1 %t212 = load ptr, ptr %a1 %t213 = getelementptr inbounds %S.gen.Place, ptr %a164, i32 0, i32 1 @@ -50651,8 +52299,8 @@ else5037: call void @finch.gen.store(ptr %t211, { ptr, i64, i64 } %t215, { ptr, i64, i64 } %t216, { ptr, i64, i64 } %t218) store { ptr, i64, i64 } %t215, ptr %a219 call void @finch_str_drop(ptr %a219) - br label %endif5038 -endif5038: + br label %endif5182 +endif5182: %t220 = load ptr, ptr %a1 %t221 = load i64, ptr %a158 call void @finch.gen.heldEnd(ptr %t220, i64 %t221) @@ -50664,17 +52312,17 @@ endif5038: call void @finch_str_drop(ptr %a16) call void @finch.drop.S_ast_Node(ptr %a13) ret void -endif5018: +endif5162: %t222 = load ptr, ptr %a1 %t223 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t224 = load { ptr, i64, i64 }, ptr %t223 %t225 = extractvalue { ptr, i64, i64 } %t224, 1 %t226 = icmp uge i64 1, %t225 - br i1 %t226, label %range5039, label %inrange5040 -range5039: - call void @finch_panic_index(ptr @.str.3155, i64 2330, i64 1, i64 %t225) + br i1 %t226, label %range5183, label %inrange5184 +range5183: + call void @finch_panic_index(ptr @.str.3240, i64 2411, i64 1, i64 %t225) unreachable -inrange5040: +inrange5184: %t227 = extractvalue { ptr, i64, i64 } %t224, 0 %t228 = getelementptr inbounds %S.ast.Node, ptr %t227, i64 1 %t229 = load %S.ast.Node, ptr %t228 @@ -50682,11 +52330,11 @@ inrange5040: store %S.gen.Val %t230, ptr %a231 %t232 = load ptr, ptr %a1 %t233 = icmp eq ptr %t232, null - br i1 %t233, label %panic5041, label %ok5042 -panic5041: - call void @finch_panic(ptr @.str.3156, i64 2331, ptr @.str.3157) + br i1 %t233, label %panic5185, label %ok5186 +panic5185: + call void @finch_panic(ptr @.str.3241, i64 2412, ptr @.str.3242) unreachable -ok5042: +ok5186: %t234 = getelementptr inbounds %S.gen.Gen, ptr %t232, i32 0, i32 11 %t235 = getelementptr inbounds { ptr, i64, i64 }, ptr %t234, i32 0, i32 1 %t236 = load i64, ptr %t235 @@ -50719,7 +52367,7 @@ ok5042: %t261 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t262 = load { ptr, i64, i64 }, ptr %t261 store { ptr, i64, i64 } %t262, ptr %a263 - call void @finch_str_sub(ptr %a264, ptr %a263, i64 0, i64 1, ptr @.str.3158, i64 2335) + call void @finch_str_sub(ptr %a264, ptr %a263, i64 0, i64 1, ptr @.str.3243, i64 2416) %t265 = load { ptr, i64, i64 }, ptr %a264 store { ptr, i64, i64 } %t265, ptr %a266 %t267 = load ptr, ptr %a1 @@ -50756,16 +52404,16 @@ ok5042: %t295 = getelementptr inbounds %S.gen.Place, ptr %a243, i32 0, i32 1 %t296 = load %S.ast.Type, ptr %t295 %t297 = call i1 @finch.gen.owning(ptr %t294, %S.ast.Type %t296) - br i1 %t297, label %then5043, label %endif5045 -then5043: + br i1 %t297, label %then5187, label %endif5189 +then5187: %t298 = load ptr, ptr %a1 %t299 = getelementptr inbounds %S.gen.Val, ptr %a260, i32 0, i32 0 %t300 = load { ptr, i64, i64 }, ptr %t299 %t301 = getelementptr inbounds %S.gen.Place, ptr %a243, i32 0, i32 1 %t302 = load %S.ast.Type, ptr %t301 call void @finch.gen.dropValue(ptr %t298, { ptr, i64, i64 } %t300, %S.ast.Type %t302) - br label %endif5045 -endif5045: + br label %endif5189 +endif5189: %t303 = load ptr, ptr %a1 %t304 = load i64, ptr %a237 call void @finch.gen.heldEnd(ptr %t303, i64 %t304) @@ -50796,9 +52444,9 @@ entry: %t4 = load ptr, ptr %a1 %t5 = load %S.ast.Node, ptr %a2 %t6 = call %S.gen.Val @finch.gen.expr(ptr %t4, %S.ast.Node %t5) - %t7 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3159, i64 4, i64 0 }) + %t7 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3244, i64 4, i64 0 }) %t8 = load %S.ast.Node, ptr %a2 - %t9 = call %S.gen.Val @finch.gen.coerce(ptr %t3, %S.gen.Val %t6, %S.ast.Type %t7, %S.ast.Node %t8, { ptr, i64, i64 } { ptr @.str.3160, i64 11, i64 0 }) + %t9 = call %S.gen.Val @finch.gen.coerce(ptr %t3, %S.gen.Val %t6, %S.ast.Type %t7, %S.ast.Node %t8, { ptr, i64, i64 } { ptr @.str.3245, i64 11, i64 0 }) store %S.gen.Val %t6, ptr %a10 call void @finch.drop.S_gen_Val(ptr %a10) store %S.ast.Type %t7, ptr %a11 @@ -50828,45 +52476,45 @@ entry: %t5 = load { ptr, i64, i64 }, ptr %t4 %t6 = extractvalue { ptr, i64, i64 } %t5, 1 %t7 = icmp uge i64 0, %t6 - br i1 %t7, label %range5046, label %inrange5047 -range5046: - call void @finch_panic_index(ptr @.str.3161, i64 2350, i64 0, i64 %t6) + br i1 %t7, label %range5190, label %inrange5191 +range5190: + call void @finch_panic_index(ptr @.str.3246, i64 2431, i64 0, i64 %t6) unreachable -inrange5047: +inrange5191: %t8 = extractvalue { ptr, i64, i64 } %t5, 0 %t9 = getelementptr inbounds %S.ast.Node, ptr %t8, i64 0 %t10 = load %S.ast.Node, ptr %t9 %t11 = call { ptr, i64, i64 } @finch.gen.condition(ptr %t3, %S.ast.Node %t10) store { ptr, i64, i64 } %t11, ptr %a12 %t13 = load ptr, ptr %a1 - %t14 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t13, { ptr, i64, i64 } { ptr @.str.3162, i64 4, i64 0 }) + %t14 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t13, { ptr, i64, i64 } { ptr @.str.3247, i64 4, i64 0 }) store { ptr, i64, i64 } %t14, ptr %a15 %t16 = load ptr, ptr %a1 - %t17 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t16, { ptr, i64, i64 } { ptr @.str.3163, i64 4, i64 0 }) + %t17 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t16, { ptr, i64, i64 } { ptr @.str.3248, i64 4, i64 0 }) store { ptr, i64, i64 } %t17, ptr %a18 %t19 = load ptr, ptr %a1 - %t20 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t19, { ptr, i64, i64 } { ptr @.str.3164, i64 5, i64 0 }) + %t20 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t19, { ptr, i64, i64 } { ptr @.str.3249, i64 5, i64 0 }) store { ptr, i64, i64 } %t20, ptr %a21 %t22 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t23 = getelementptr inbounds { ptr, i64, i64 }, ptr %t22, i32 0, i32 1 %t24 = load i64, ptr %t23 %t25 = icmp sgt i64 %t24, 2 - br i1 %t25, label %then5048, label %else5049 -then5048: + br i1 %t25, label %then5192, label %else5193 +then5192: %t26 = load ptr, ptr %a1 %t27 = load { ptr, i64, i64 }, ptr %a12 %t28 = load { ptr, i64, i64 }, ptr %a15 %t29 = load { ptr, i64, i64 }, ptr %a18 call void @finch.gen.condBr(ptr %t26, { ptr, i64, i64 } %t27, { ptr, i64, i64 } %t28, { ptr, i64, i64 } %t29) - br label %endif5050 -else5049: + br label %endif5194 +else5193: %t30 = load ptr, ptr %a1 %t31 = load { ptr, i64, i64 }, ptr %a12 %t32 = load { ptr, i64, i64 }, ptr %a15 %t33 = load { ptr, i64, i64 }, ptr %a21 call void @finch.gen.condBr(ptr %t30, { ptr, i64, i64 } %t31, { ptr, i64, i64 } %t32, { ptr, i64, i64 } %t33) - br label %endif5050 -endif5050: + br label %endif5194 +endif5194: %t34 = load ptr, ptr %a1 %t35 = load { ptr, i64, i64 }, ptr %a15 call void @finch.gen.label(ptr %t34, { ptr, i64, i64 } %t35) @@ -50875,22 +52523,22 @@ endif5050: %t38 = load { ptr, i64, i64 }, ptr %t37 %t39 = extractvalue { ptr, i64, i64 } %t38, 1 %t40 = icmp uge i64 1, %t39 - br i1 %t40, label %range5051, label %inrange5052 -range5051: - call void @finch_panic_index(ptr @.str.3165, i64 2360, i64 1, i64 %t39) + br i1 %t40, label %range5195, label %inrange5196 +range5195: + call void @finch_panic_index(ptr @.str.3250, i64 2441, i64 1, i64 %t39) unreachable -inrange5052: +inrange5196: %t41 = extractvalue { ptr, i64, i64 } %t38, 0 %t42 = getelementptr inbounds %S.ast.Node, ptr %t41, i64 1 %t43 = load %S.ast.Node, ptr %t42 call void @finch.gen.block(ptr %t36, %S.ast.Node %t43, i1 true) %t44 = load ptr, ptr %a1 %t45 = icmp eq ptr %t44, null - br i1 %t45, label %panic5053, label %ok5054 -panic5053: - call void @finch_panic(ptr @.str.3166, i64 2361, ptr @.str.3167) + br i1 %t45, label %panic5197, label %ok5198 +panic5197: + call void @finch_panic(ptr @.str.3251, i64 2442, ptr @.str.3252) unreachable -ok5054: +ok5198: %t46 = getelementptr inbounds %S.gen.Gen, ptr %t44, i32 0, i32 9 %t47 = load i1, ptr %t46 %t48 = xor i1 %t47, true @@ -50902,8 +52550,8 @@ ok5054: %t53 = getelementptr inbounds { ptr, i64, i64 }, ptr %t52, i32 0, i32 1 %t54 = load i64, ptr %t53 %t55 = icmp sgt i64 %t54, 2 - br i1 %t55, label %then5055, label %else5056 -then5055: + br i1 %t55, label %then5199, label %else5200 +then5199: %t56 = load ptr, ptr %a1 %t57 = load { ptr, i64, i64 }, ptr %a18 call void @finch.gen.label(ptr %t56, { ptr, i64, i64 } %t57) @@ -50912,52 +52560,52 @@ then5055: %t60 = load { ptr, i64, i64 }, ptr %t59 %t61 = extractvalue { ptr, i64, i64 } %t60, 1 %t62 = icmp uge i64 2, %t61 - br i1 %t62, label %range5058, label %inrange5059 -range5058: - call void @finch_panic_index(ptr @.str.3168, i64 2365, i64 2, i64 %t61) + br i1 %t62, label %range5202, label %inrange5203 +range5202: + call void @finch_panic_index(ptr @.str.3253, i64 2446, i64 2, i64 %t61) unreachable -inrange5059: +inrange5203: %t63 = extractvalue { ptr, i64, i64 } %t60, 0 %t64 = getelementptr inbounds %S.ast.Node, ptr %t63, i64 2 %t65 = load %S.ast.Node, ptr %t64 call void @finch.gen.stmt(ptr %t58, %S.ast.Node %t65) %t66 = load i1, ptr %a49 - br label %logic.from5060 -logic.from5060: - br i1 %t66, label %logic.end5062, label %logic.rhs5061 -logic.rhs5061: + br label %logic.from5204 +logic.from5204: + br i1 %t66, label %logic.end5206, label %logic.rhs5205 +logic.rhs5205: %t67 = load ptr, ptr %a1 %t68 = icmp eq ptr %t67, null - br i1 %t68, label %panic5063, label %ok5064 -panic5063: - call void @finch_panic(ptr @.str.3169, i64 2366, ptr @.str.3170) + br i1 %t68, label %panic5207, label %ok5208 +panic5207: + call void @finch_panic(ptr @.str.3254, i64 2447, ptr @.str.3255) unreachable -ok5064: +ok5208: %t69 = getelementptr inbounds %S.gen.Gen, ptr %t67, i32 0, i32 9 %t70 = load i1, ptr %t69 %t71 = xor i1 %t70, true - br label %logic.rend5065 -logic.rend5065: - br label %logic.end5062 -logic.end5062: - %t72 = phi i1 [ true, %logic.from5060 ], [ %t71, %logic.rend5065 ] + br label %logic.rend5209 +logic.rend5209: + br label %logic.end5206 +logic.end5206: + %t72 = phi i1 [ true, %logic.from5204 ], [ %t71, %logic.rend5209 ] store i1 %t72, ptr %a49 %t73 = load ptr, ptr %a1 %t74 = load { ptr, i64, i64 }, ptr %a21 call void @finch.gen.br(ptr %t73, { ptr, i64, i64 } %t74) - br label %endif5057 -else5056: + br label %endif5201 +else5200: store i1 true, ptr %a49 - br label %endif5057 -endif5057: + br label %endif5201 +endif5201: %t75 = load i1, ptr %a49 - br i1 %t75, label %then5066, label %endif5068 -then5066: + br i1 %t75, label %then5210, label %endif5212 +then5210: %t76 = load ptr, ptr %a1 %t77 = load { ptr, i64, i64 }, ptr %a21 call void @finch.gen.label(ptr %t76, { ptr, i64, i64 } %t77) - br label %endif5068 -endif5068: + br label %endif5212 +endif5212: call void @finch_str_drop(ptr %a21) call void @finch_str_drop(ptr %a18) call void @finch_str_drop(ptr %a15) @@ -50987,13 +52635,13 @@ entry: store ptr %p0, ptr %a1 store %S.ast.Node %p1, ptr %a2 %t3 = load ptr, ptr %a1 - %t4 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t3, { ptr, i64, i64 } { ptr @.str.3171, i64 10, i64 0 }) + %t4 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t3, { ptr, i64, i64 } { ptr @.str.3256, i64 10, i64 0 }) store { ptr, i64, i64 } %t4, ptr %a5 %t6 = load ptr, ptr %a1 - %t7 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t6, { ptr, i64, i64 } { ptr @.str.3172, i64 10, i64 0 }) + %t7 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t6, { ptr, i64, i64 } { ptr @.str.3257, i64 10, i64 0 }) store { ptr, i64, i64 } %t7, ptr %a8 %t9 = load ptr, ptr %a1 - %t10 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t9, { ptr, i64, i64 } { ptr @.str.3173, i64 9, i64 0 }) + %t10 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t9, { ptr, i64, i64 } { ptr @.str.3258, i64 9, i64 0 }) store { ptr, i64, i64 } %t10, ptr %a11 %t12 = load ptr, ptr %a1 %t13 = load { ptr, i64, i64 }, ptr %a5 @@ -51005,86 +52653,86 @@ entry: %t17 = load { ptr, i64, i64 }, ptr %t16 %t18 = extractvalue { ptr, i64, i64 } %t17, 1 %t19 = icmp uge i64 0, %t18 - br i1 %t19, label %range5069, label %inrange5070 -range5069: - call void @finch_panic_index(ptr @.str.3174, i64 2382, i64 0, i64 %t18) + br i1 %t19, label %range5213, label %inrange5214 +range5213: + call void @finch_panic_index(ptr @.str.3259, i64 2463, i64 0, i64 %t18) unreachable -inrange5070: +inrange5214: %t20 = extractvalue { ptr, i64, i64 } %t17, 0 %t21 = getelementptr inbounds %S.ast.Node, ptr %t20, i64 0 %t22 = getelementptr inbounds %S.ast.Node, ptr %t21, i32 0, i32 0 %t23 = load { ptr, i64, i64 }, ptr %t22 store { ptr, i64, i64 } %t23, ptr %a24 - store { ptr, i64, i64 } { ptr @.str.3175, i64 4, i64 0 }, ptr %a25 + store { ptr, i64, i64 } { ptr @.str.3260, i64 4, i64 0 }, ptr %a25 %t26 = call i32 @finch_str_eq(ptr %a24, ptr %a25) %t27 = icmp ne i32 %t26, 0 - br label %logic.from5071 -logic.from5071: - br i1 %t27, label %logic.rhs5072, label %logic.end5073 -logic.rhs5072: + br label %logic.from5215 +logic.from5215: + br i1 %t27, label %logic.rhs5216, label %logic.end5217 +logic.rhs5216: %t28 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t29 = load { ptr, i64, i64 }, ptr %t28 %t30 = extractvalue { ptr, i64, i64 } %t29, 1 %t31 = icmp uge i64 0, %t30 - br i1 %t31, label %range5074, label %inrange5075 -range5074: - call void @finch_panic_index(ptr @.str.3176, i64 2382, i64 0, i64 %t30) + br i1 %t31, label %range5218, label %inrange5219 +range5218: + call void @finch_panic_index(ptr @.str.3261, i64 2463, i64 0, i64 %t30) unreachable -inrange5075: +inrange5219: %t32 = extractvalue { ptr, i64, i64 } %t29, 0 %t33 = getelementptr inbounds %S.ast.Node, ptr %t32, i64 0 %t34 = getelementptr inbounds %S.ast.Node, ptr %t33, i32 0, i32 4 %t35 = load { ptr, i64, i64 }, ptr %t34 store { ptr, i64, i64 } %t35, ptr %a36 - store { ptr, i64, i64 } { ptr @.str.3177, i64 4, i64 0 }, ptr %a37 + store { ptr, i64, i64 } { ptr @.str.3262, i64 4, i64 0 }, ptr %a37 %t38 = call i32 @finch_str_eq(ptr %a36, ptr %a37) %t39 = icmp ne i32 %t38, 0 - br label %logic.rend5076 -logic.rend5076: - br label %logic.end5073 -logic.end5073: - %t40 = phi i1 [ false, %logic.from5071 ], [ %t39, %logic.rend5076 ] + br label %logic.rend5220 +logic.rend5220: + br label %logic.end5217 +logic.end5217: + %t40 = phi i1 [ false, %logic.from5215 ], [ %t39, %logic.rend5220 ] store i1 %t40, ptr %a41 %t42 = load ptr, ptr %a1 %t43 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t44 = load { ptr, i64, i64 }, ptr %t43 %t45 = extractvalue { ptr, i64, i64 } %t44, 1 %t46 = icmp uge i64 0, %t45 - br i1 %t46, label %range5077, label %inrange5078 -range5077: - call void @finch_panic_index(ptr @.str.3178, i64 2383, i64 0, i64 %t45) + br i1 %t46, label %range5221, label %inrange5222 +range5221: + call void @finch_panic_index(ptr @.str.3263, i64 2464, i64 0, i64 %t45) unreachable -inrange5078: +inrange5222: %t47 = extractvalue { ptr, i64, i64 } %t44, 0 %t48 = getelementptr inbounds %S.ast.Node, ptr %t47, i64 0 %t49 = load %S.ast.Node, ptr %t48 %t50 = call { ptr, i64, i64 } @finch.gen.condition(ptr %t42, %S.ast.Node %t49) store { ptr, i64, i64 } %t50, ptr %a51 %t52 = load i1, ptr %a41 - br i1 %t52, label %then5079, label %else5080 -then5079: + br i1 %t52, label %then5223, label %else5224 +then5223: %t53 = load ptr, ptr %a1 %t54 = load { ptr, i64, i64 }, ptr %a8 call void @finch.gen.br(ptr %t53, { ptr, i64, i64 } %t54) - br label %endif5081 -else5080: + br label %endif5225 +else5224: %t55 = load ptr, ptr %a1 %t56 = load { ptr, i64, i64 }, ptr %a51 %t57 = load { ptr, i64, i64 }, ptr %a8 %t58 = load { ptr, i64, i64 }, ptr %a11 call void @finch.gen.condBr(ptr %t55, { ptr, i64, i64 } %t56, { ptr, i64, i64 } %t57, { ptr, i64, i64 } %t58) - br label %endif5081 -endif5081: + br label %endif5225 +endif5225: %t59 = load ptr, ptr %a1 %t60 = load { ptr, i64, i64 }, ptr %a8 call void @finch.gen.label(ptr %t59, { ptr, i64, i64 } %t60) %t61 = load ptr, ptr %a1 %t62 = icmp eq ptr %t61, null - br i1 %t62, label %panic5082, label %ok5083 -panic5082: - call void @finch_panic(ptr @.str.3179, i64 2390, ptr @.str.3180) + br i1 %t62, label %panic5226, label %ok5227 +panic5226: + call void @finch_panic(ptr @.str.3264, i64 2471, ptr @.str.3265) unreachable -ok5083: +ok5227: %t63 = getelementptr inbounds %S.gen.Gen, ptr %t61, i32 0, i32 12 %t64 = getelementptr inbounds { ptr, i64, i64 }, ptr %t63, i32 0, i32 1 %t65 = load { ptr, i64, i64 }, ptr %a5 @@ -51099,22 +52747,22 @@ ok5083: %t74 = insertvalue %S.gen.Loop %t69, { ptr, i64, i64 } %t73, 1 %t75 = load ptr, ptr %a1 %t76 = icmp eq ptr %t75, null - br i1 %t76, label %panic5084, label %ok5085 -panic5084: - call void @finch_panic(ptr @.str.3181, i64 2390, ptr @.str.3182) + br i1 %t76, label %panic5228, label %ok5229 +panic5228: + call void @finch_panic(ptr @.str.3266, i64 2471, ptr @.str.3267) unreachable -ok5085: +ok5229: %t77 = getelementptr inbounds %S.gen.Gen, ptr %t75, i32 0, i32 10 %t78 = getelementptr inbounds { ptr, i64, i64 }, ptr %t77, i32 0, i32 1 %t79 = load i64, ptr %t78 %t80 = insertvalue %S.gen.Loop %t74, i64 %t79, 2 %t81 = load ptr, ptr %a1 %t82 = icmp eq ptr %t81, null - br i1 %t82, label %panic5086, label %ok5087 -panic5086: - call void @finch_panic(ptr @.str.3183, i64 2390, ptr @.str.3184) + br i1 %t82, label %panic5230, label %ok5231 +panic5230: + call void @finch_panic(ptr @.str.3268, i64 2471, ptr @.str.3269) unreachable -ok5087: +ok5231: %t83 = getelementptr inbounds %S.gen.Gen, ptr %t81, i32 0, i32 11 %t84 = getelementptr inbounds { ptr, i64, i64 }, ptr %t83, i32 0, i32 1 %t85 = load i64, ptr %t84 @@ -51130,11 +52778,11 @@ ok5087: %t92 = load { ptr, i64, i64 }, ptr %t91 %t93 = extractvalue { ptr, i64, i64 } %t92, 1 %t94 = icmp uge i64 1, %t93 - br i1 %t94, label %range5088, label %inrange5089 -range5088: - call void @finch_panic_index(ptr @.str.3185, i64 2391, i64 1, i64 %t93) + br i1 %t94, label %range5232, label %inrange5233 +range5232: + call void @finch_panic_index(ptr @.str.3270, i64 2472, i64 1, i64 %t93) unreachable -inrange5089: +inrange5233: %t95 = extractvalue { ptr, i64, i64 } %t92, 0 %t96 = getelementptr inbounds %S.ast.Node, ptr %t95, i64 1 %t97 = load %S.ast.Node, ptr %t96 @@ -51145,31 +52793,31 @@ inrange5089: %t102 = load { ptr, i64, i64 }, ptr %t101 %t103 = extractvalue { ptr, i64, i64 } %t102, 1 %t104 = icmp uge i64 1, %t103 - br i1 %t104, label %range5090, label %inrange5091 -range5090: - call void @finch_panic_index(ptr @.str.3186, i64 2392, i64 1, i64 %t103) + br i1 %t104, label %range5234, label %inrange5235 +range5234: + call void @finch_panic_index(ptr @.str.3271, i64 2473, i64 1, i64 %t103) unreachable -inrange5091: +inrange5235: %t105 = extractvalue { ptr, i64, i64 } %t102, 0 %t106 = getelementptr inbounds %S.ast.Node, ptr %t105, i64 1 %t107 = load %S.ast.Node, ptr %t106 call void @finch.gen.block(ptr %t100, %S.ast.Node %t107, i1 true) %t108 = load ptr, ptr %a1 %t109 = icmp eq ptr %t108, null - br i1 %t109, label %panic5092, label %ok5093 -panic5092: - call void @finch_panic(ptr @.str.3187, i64 2393, ptr @.str.3188) + br i1 %t109, label %panic5236, label %ok5237 +panic5236: + call void @finch_panic(ptr @.str.3272, i64 2474, ptr @.str.3273) unreachable -ok5093: +ok5237: %t110 = getelementptr inbounds %S.gen.Gen, ptr %t108, i32 0, i32 12 %t111 = getelementptr inbounds { ptr, i64, i64 }, ptr %t110, i32 0, i32 1 %t112 = load i64, ptr %t111 %t113 = icmp eq i64 %t112, 0 - br i1 %t113, label %panic5094, label %ok5095 -panic5094: - call void @finch_panic(ptr @.str.3189, i64 2393, ptr @.str.3190) + br i1 %t113, label %panic5238, label %ok5239 +panic5238: + call void @finch_panic(ptr @.str.3274, i64 2474, ptr @.str.3275) unreachable -ok5095: +ok5239: %t114 = sub i64 %t112, 1 %t115 = load ptr, ptr %t110 %t116 = getelementptr inbounds %S.gen.Loop, ptr %t115, i64 %t114 @@ -51182,23 +52830,23 @@ ok5095: call void @finch.gen.br(ptr %t119, { ptr, i64, i64 } %t120) %t121 = load i1, ptr %a41 %t122 = xor i1 %t121, true - br label %logic.from5096 -logic.from5096: - br i1 %t122, label %logic.end5098, label %logic.rhs5097 -logic.rhs5097: + br label %logic.from5240 +logic.from5240: + br i1 %t122, label %logic.end5242, label %logic.rhs5241 +logic.rhs5241: %t123 = load i1, ptr %a99 - br label %logic.rend5099 -logic.rend5099: - br label %logic.end5098 -logic.end5098: - %t124 = phi i1 [ true, %logic.from5096 ], [ %t123, %logic.rend5099 ] - br i1 %t124, label %then5100, label %endif5102 -then5100: + br label %logic.rend5243 +logic.rend5243: + br label %logic.end5242 +logic.end5242: + %t124 = phi i1 [ true, %logic.from5240 ], [ %t123, %logic.rend5243 ] + br i1 %t124, label %then5244, label %endif5246 +then5244: %t125 = load ptr, ptr %a1 %t126 = load { ptr, i64, i64 }, ptr %a11 call void @finch.gen.label(ptr %t125, { ptr, i64, i64 } %t126) - br label %endif5102 -endif5102: + br label %endif5246 +endif5246: call void @finch_str_drop(ptr %a51) call void @finch_str_drop(ptr %a11) call void @finch_str_drop(ptr %a8) @@ -51223,80 +52871,80 @@ entry: %t2 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 0 %t3 = load { ptr, i64, i64 }, ptr %t2 store { ptr, i64, i64 } %t3, ptr %a4 - store { ptr, i64, i64 } { ptr @.str.3191, i64 5, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.3276, i64 5, i64 0 }, ptr %a5 %t6 = call i32 @finch_str_eq(ptr %a4, ptr %a5) %t7 = icmp ne i32 %t6, 0 - br i1 %t7, label %then5103, label %endif5105 -then5103: + br i1 %t7, label %then5247, label %endif5249 +then5247: ret i1 true -endif5105: +endif5249: %t8 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 0 %t9 = load { ptr, i64, i64 }, ptr %t8 store { ptr, i64, i64 } %t9, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.3192, i64 5, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.3277, i64 5, i64 0 }, ptr %a11 %t12 = call i32 @finch_str_eq(ptr %a10, ptr %a11) %t13 = icmp ne i32 %t12, 0 - br label %logic.from5106 -logic.from5106: - br i1 %t13, label %logic.end5108, label %logic.rhs5107 -logic.rhs5107: + br label %logic.from5250 +logic.from5250: + br i1 %t13, label %logic.end5252, label %logic.rhs5251 +logic.rhs5251: %t14 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 0 %t15 = load { ptr, i64, i64 }, ptr %t14 store { ptr, i64, i64 } %t15, ptr %a16 - store { ptr, i64, i64 } { ptr @.str.3193, i64 3, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.3278, i64 3, i64 0 }, ptr %a17 %t18 = call i32 @finch_str_eq(ptr %a16, ptr %a17) %t19 = icmp ne i32 %t18, 0 - br label %logic.rend5109 -logic.rend5109: - br label %logic.end5108 -logic.end5108: - %t20 = phi i1 [ true, %logic.from5106 ], [ %t19, %logic.rend5109 ] - br label %logic.from5110 -logic.from5110: - br i1 %t20, label %logic.end5112, label %logic.rhs5111 -logic.rhs5111: + br label %logic.rend5253 +logic.rend5253: + br label %logic.end5252 +logic.end5252: + %t20 = phi i1 [ true, %logic.from5250 ], [ %t19, %logic.rend5253 ] + br label %logic.from5254 +logic.from5254: + br i1 %t20, label %logic.end5256, label %logic.rhs5255 +logic.rhs5255: %t21 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 0 %t22 = load { ptr, i64, i64 }, ptr %t21 store { ptr, i64, i64 } %t22, ptr %a23 - store { ptr, i64, i64 } { ptr @.str.3194, i64 4, i64 0 }, ptr %a24 + store { ptr, i64, i64 } { ptr @.str.3279, i64 4, i64 0 }, ptr %a24 %t25 = call i32 @finch_str_eq(ptr %a23, ptr %a24) %t26 = icmp ne i32 %t25, 0 - br label %logic.rend5113 -logic.rend5113: - br label %logic.end5112 -logic.end5112: - %t27 = phi i1 [ true, %logic.from5110 ], [ %t26, %logic.rend5113 ] - br i1 %t27, label %then5114, label %endif5116 -then5114: + br label %logic.rend5257 +logic.rend5257: + br label %logic.end5256 +logic.end5256: + %t27 = phi i1 [ true, %logic.from5254 ], [ %t26, %logic.rend5257 ] + br i1 %t27, label %then5258, label %endif5260 +then5258: ret i1 false -endif5116: +endif5260: %t28 = getelementptr inbounds %S.ast.Node, ptr %a1, i32 0, i32 9 store i64 0, ptr %a29 - br label %each.cond5117 -each.cond5117: + br label %each.cond5261 +each.cond5261: %t30 = getelementptr inbounds { ptr, i64, i64 }, ptr %t28, i32 0, i32 1 %t31 = load i64, ptr %t30 %t32 = load i64, ptr %a29 %t33 = icmp slt i64 %t32, %t31 - br i1 %t33, label %each.body5118, label %each.end5120 -each.body5118: + br i1 %t33, label %each.body5262, label %each.end5264 +each.body5262: %t34 = load ptr, ptr %t28 %t35 = getelementptr inbounds %S.ast.Node, ptr %t34, i64 %t32 %t36 = load %S.ast.Node, ptr %t35 store %S.ast.Node %t36, ptr %a37 %t38 = load %S.ast.Node, ptr %a37 %t39 = call i1 @finch.gen.countBreaks(%S.ast.Node %t38) - br i1 %t39, label %then5121, label %endif5123 -then5121: + br i1 %t39, label %then5265, label %endif5267 +then5265: ret i1 true -endif5123: - br label %each.step5119 -each.step5119: +endif5267: + br label %each.step5263 +each.step5263: %t40 = load i64, ptr %a29 %t41 = add i64 %t40, 1 store i64 %t41, ptr %a29 - br label %each.cond5117 -each.end5120: + br label %each.cond5261 +each.end5264: ret i1 false } @@ -51359,29 +53007,29 @@ entry: %t6 = load { ptr, i64, i64 }, ptr %t5 %t7 = extractvalue { ptr, i64, i64 } %t6, 1 %t8 = icmp uge i64 0, %t7 - br i1 %t8, label %range5124, label %inrange5125 -range5124: - call void @finch_panic_index(ptr @.str.3195, i64 2417, i64 0, i64 %t7) + br i1 %t8, label %range5268, label %inrange5269 +range5268: + call void @finch_panic_index(ptr @.str.3280, i64 2498, i64 0, i64 %t7) unreachable -inrange5125: +inrange5269: %t9 = extractvalue { ptr, i64, i64 } %t6, 0 %t10 = getelementptr inbounds %S.ast.Node, ptr %t9, i64 0 %t11 = load %S.ast.Node, ptr %t10 %t12 = call %S.gen.Val @finch.gen.expr(ptr %t4, %S.ast.Node %t11) - %t13 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3196, i64 3, i64 0 }) + %t13 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3281, i64 3, i64 0 }) %t14 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t15 = load { ptr, i64, i64 }, ptr %t14 %t16 = extractvalue { ptr, i64, i64 } %t15, 1 %t17 = icmp uge i64 0, %t16 - br i1 %t17, label %range5126, label %inrange5127 -range5126: - call void @finch_panic_index(ptr @.str.3197, i64 2417, i64 0, i64 %t16) + br i1 %t17, label %range5270, label %inrange5271 +range5270: + call void @finch_panic_index(ptr @.str.3282, i64 2498, i64 0, i64 %t16) unreachable -inrange5127: +inrange5271: %t18 = extractvalue { ptr, i64, i64 } %t15, 0 %t19 = getelementptr inbounds %S.ast.Node, ptr %t18, i64 0 %t20 = load %S.ast.Node, ptr %t19 - %t21 = call %S.gen.Val @finch.gen.coerce(ptr %t3, %S.gen.Val %t12, %S.ast.Type %t13, %S.ast.Node %t20, { ptr, i64, i64 } { ptr @.str.3198, i64 20, i64 0 }) + %t21 = call %S.gen.Val @finch.gen.coerce(ptr %t3, %S.gen.Val %t12, %S.ast.Type %t13, %S.ast.Node %t20, { ptr, i64, i64 } { ptr @.str.3283, i64 20, i64 0 }) store %S.gen.Val %t12, ptr %a22 call void @finch.drop.S_gen_Val(ptr %a22) store %S.ast.Type %t13, ptr %a23 @@ -51399,29 +53047,29 @@ inrange5127: %t33 = load { ptr, i64, i64 }, ptr %t32 %t34 = extractvalue { ptr, i64, i64 } %t33, 1 %t35 = icmp uge i64 1, %t34 - br i1 %t35, label %range5128, label %inrange5129 -range5128: - call void @finch_panic_index(ptr @.str.3199, i64 2418, i64 1, i64 %t34) + br i1 %t35, label %range5272, label %inrange5273 +range5272: + call void @finch_panic_index(ptr @.str.3284, i64 2499, i64 1, i64 %t34) unreachable -inrange5129: +inrange5273: %t36 = extractvalue { ptr, i64, i64 } %t33, 0 %t37 = getelementptr inbounds %S.ast.Node, ptr %t36, i64 1 %t38 = load %S.ast.Node, ptr %t37 %t39 = call %S.gen.Val @finch.gen.expr(ptr %t31, %S.ast.Node %t38) - %t40 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3200, i64 3, i64 0 }) + %t40 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3285, i64 3, i64 0 }) %t41 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t42 = load { ptr, i64, i64 }, ptr %t41 %t43 = extractvalue { ptr, i64, i64 } %t42, 1 %t44 = icmp uge i64 1, %t43 - br i1 %t44, label %range5130, label %inrange5131 -range5130: - call void @finch_panic_index(ptr @.str.3201, i64 2418, i64 1, i64 %t43) + br i1 %t44, label %range5274, label %inrange5275 +range5274: + call void @finch_panic_index(ptr @.str.3286, i64 2499, i64 1, i64 %t43) unreachable -inrange5131: +inrange5275: %t45 = extractvalue { ptr, i64, i64 } %t42, 0 %t46 = getelementptr inbounds %S.ast.Node, ptr %t45, i64 1 %t47 = load %S.ast.Node, ptr %t46 - %t48 = call %S.gen.Val @finch.gen.coerce(ptr %t30, %S.gen.Val %t39, %S.ast.Type %t40, %S.ast.Node %t47, { ptr, i64, i64 } { ptr @.str.3202, i64 18, i64 0 }) + %t48 = call %S.gen.Val @finch.gen.coerce(ptr %t30, %S.gen.Val %t39, %S.ast.Type %t40, %S.ast.Node %t47, { ptr, i64, i64 } { ptr @.str.3287, i64 18, i64 0 }) store %S.gen.Val %t39, ptr %a49 call void @finch.drop.S_gen_Val(ptr %a49) store %S.ast.Type %t40, ptr %a50 @@ -51439,23 +53087,23 @@ inrange5131: %t59 = load %S.ast.Node, ptr %a2 %t60 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t61 = load { ptr, i64, i64 }, ptr %t60 - %t62 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3203, i64 3, i64 0 }) + %t62 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3288, i64 3, i64 0 }) %t63 = load { ptr, i64, i64 }, ptr %a29 %t64 = call { ptr, i64, i64 } @finch.gen.addVar(ptr %t58, %S.ast.Node %t59, { ptr, i64, i64 } %t61, %S.ast.Type %t62, { ptr, i64, i64 } %t63, i1 true, i1 false) store %S.ast.Type %t62, ptr %a65 call void @finch.drop.S_ast_Type(ptr %a65) store { ptr, i64, i64 } %t64, ptr %a66 %t67 = load ptr, ptr %a1 - %t68 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t67, { ptr, i64, i64 } { ptr @.str.3204, i64 8, i64 0 }) + %t68 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t67, { ptr, i64, i64 } { ptr @.str.3289, i64 8, i64 0 }) store { ptr, i64, i64 } %t68, ptr %a69 %t70 = load ptr, ptr %a1 - %t71 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t70, { ptr, i64, i64 } { ptr @.str.3205, i64 8, i64 0 }) + %t71 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t70, { ptr, i64, i64 } { ptr @.str.3290, i64 8, i64 0 }) store { ptr, i64, i64 } %t71, ptr %a72 %t73 = load ptr, ptr %a1 - %t74 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t73, { ptr, i64, i64 } { ptr @.str.3206, i64 8, i64 0 }) + %t74 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t73, { ptr, i64, i64 } { ptr @.str.3291, i64 8, i64 0 }) store { ptr, i64, i64 } %t74, ptr %a75 %t76 = load ptr, ptr %a1 - %t77 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t76, { ptr, i64, i64 } { ptr @.str.3207, i64 7, i64 0 }) + %t77 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t76, { ptr, i64, i64 } { ptr @.str.3292, i64 7, i64 0 }) store { ptr, i64, i64 } %t77, ptr %a78 %t79 = load ptr, ptr %a1 %t80 = load { ptr, i64, i64 }, ptr %a69 @@ -51465,16 +53113,16 @@ inrange5131: call void @finch.gen.label(ptr %t81, { ptr, i64, i64 } %t82) %t83 = load ptr, ptr %a1 %t84 = load { ptr, i64, i64 }, ptr %a66 - %t85 = call { ptr, i64, i64 } @finch.gen.load(ptr %t83, { ptr, i64, i64 } { ptr @.str.3208, i64 3, i64 0 }, { ptr, i64, i64 } %t84) + %t85 = call { ptr, i64, i64 } @finch.gen.load(ptr %t83, { ptr, i64, i64 } { ptr @.str.3293, i64 3, i64 0 }, { ptr, i64, i64 } %t84) store { ptr, i64, i64 } %t85, ptr %a86 %t87 = load ptr, ptr %a1 %t88 = load { ptr, i64, i64 }, ptr %a86 - store { ptr, i64, i64 } { ptr @.str.3209, i64 13, i64 0 }, ptr %a90 + store { ptr, i64, i64 } { ptr @.str.3294, i64 13, i64 0 }, ptr %a90 store { ptr, i64, i64 } %t88, ptr %a91 call void @finch_str_concat(ptr %a89, ptr %a90, ptr %a91) %t92 = load { ptr, i64, i64 }, ptr %a89 store { ptr, i64, i64 } %t92, ptr %a94 - store { ptr, i64, i64 } { ptr @.str.3210, i64 2, i64 0 }, ptr %a95 + store { ptr, i64, i64 } { ptr @.str.3295, i64 2, i64 0 }, ptr %a95 call void @finch_str_concat(ptr %a93, ptr %a94, ptr %a95) store { ptr, i64, i64 } %t92, ptr %a96 call void @finch_str_drop(ptr %a96) @@ -51500,11 +53148,11 @@ inrange5131: call void @finch.gen.label(ptr %t111, { ptr, i64, i64 } %t112) %t113 = load ptr, ptr %a1 %t114 = icmp eq ptr %t113, null - br i1 %t114, label %panic5132, label %ok5133 -panic5132: - call void @finch_panic(ptr @.str.3211, i64 2431, ptr @.str.3212) + br i1 %t114, label %panic5276, label %ok5277 +panic5276: + call void @finch_panic(ptr @.str.3296, i64 2512, ptr @.str.3297) unreachable -ok5133: +ok5277: %t115 = getelementptr inbounds %S.gen.Gen, ptr %t113, i32 0, i32 12 %t116 = getelementptr inbounds { ptr, i64, i64 }, ptr %t115, i32 0, i32 1 %t117 = load { ptr, i64, i64 }, ptr %a75 @@ -51519,22 +53167,22 @@ ok5133: %t126 = insertvalue %S.gen.Loop %t121, { ptr, i64, i64 } %t125, 1 %t127 = load ptr, ptr %a1 %t128 = icmp eq ptr %t127, null - br i1 %t128, label %panic5134, label %ok5135 -panic5134: - call void @finch_panic(ptr @.str.3213, i64 2431, ptr @.str.3214) + br i1 %t128, label %panic5278, label %ok5279 +panic5278: + call void @finch_panic(ptr @.str.3298, i64 2512, ptr @.str.3299) unreachable -ok5135: +ok5279: %t129 = getelementptr inbounds %S.gen.Gen, ptr %t127, i32 0, i32 10 %t130 = getelementptr inbounds { ptr, i64, i64 }, ptr %t129, i32 0, i32 1 %t131 = load i64, ptr %t130 %t132 = insertvalue %S.gen.Loop %t126, i64 %t131, 2 %t133 = load ptr, ptr %a1 %t134 = icmp eq ptr %t133, null - br i1 %t134, label %panic5136, label %ok5137 -panic5136: - call void @finch_panic(ptr @.str.3215, i64 2431, ptr @.str.3216) + br i1 %t134, label %panic5280, label %ok5281 +panic5280: + call void @finch_panic(ptr @.str.3300, i64 2512, ptr @.str.3301) unreachable -ok5137: +ok5281: %t135 = getelementptr inbounds %S.gen.Gen, ptr %t133, i32 0, i32 11 %t136 = getelementptr inbounds { ptr, i64, i64 }, ptr %t135, i32 0, i32 1 %t137 = load i64, ptr %t136 @@ -51551,31 +53199,31 @@ ok5137: %t145 = load { ptr, i64, i64 }, ptr %t144 %t146 = extractvalue { ptr, i64, i64 } %t145, 1 %t147 = icmp uge i64 2, %t146 - br i1 %t147, label %range5138, label %inrange5139 -range5138: - call void @finch_panic_index(ptr @.str.3217, i64 2432, i64 2, i64 %t146) + br i1 %t147, label %range5282, label %inrange5283 +range5282: + call void @finch_panic_index(ptr @.str.3302, i64 2513, i64 2, i64 %t146) unreachable -inrange5139: +inrange5283: %t148 = extractvalue { ptr, i64, i64 } %t145, 0 %t149 = getelementptr inbounds %S.ast.Node, ptr %t148, i64 2 %t150 = load %S.ast.Node, ptr %t149 call void @finch.gen.block(ptr %t143, %S.ast.Node %t150, i1 true) %t151 = load ptr, ptr %a1 %t152 = icmp eq ptr %t151, null - br i1 %t152, label %panic5140, label %ok5141 -panic5140: - call void @finch_panic(ptr @.str.3218, i64 2433, ptr @.str.3219) + br i1 %t152, label %panic5284, label %ok5285 +panic5284: + call void @finch_panic(ptr @.str.3303, i64 2514, ptr @.str.3304) unreachable -ok5141: +ok5285: %t153 = getelementptr inbounds %S.gen.Gen, ptr %t151, i32 0, i32 12 %t154 = getelementptr inbounds { ptr, i64, i64 }, ptr %t153, i32 0, i32 1 %t155 = load i64, ptr %t154 %t156 = icmp eq i64 %t155, 0 - br i1 %t156, label %panic5142, label %ok5143 -panic5142: - call void @finch_panic(ptr @.str.3220, i64 2433, ptr @.str.3221) + br i1 %t156, label %panic5286, label %ok5287 +panic5286: + call void @finch_panic(ptr @.str.3305, i64 2514, ptr @.str.3306) unreachable -ok5143: +ok5287: %t157 = sub i64 %t155, 1 %t158 = load ptr, ptr %t153 %t159 = getelementptr inbounds %S.gen.Loop, ptr %t158, i64 %t157 @@ -51591,17 +53239,17 @@ ok5143: call void @finch.gen.label(ptr %t164, { ptr, i64, i64 } %t165) %t166 = load ptr, ptr %a1 %t167 = load { ptr, i64, i64 }, ptr %a66 - %t168 = call { ptr, i64, i64 } @finch.gen.load(ptr %t166, { ptr, i64, i64 } { ptr @.str.3222, i64 3, i64 0 }, { ptr, i64, i64 } %t167) + %t168 = call { ptr, i64, i64 } @finch.gen.load(ptr %t166, { ptr, i64, i64 } { ptr @.str.3307, i64 3, i64 0 }, { ptr, i64, i64 } %t167) store { ptr, i64, i64 } %t168, ptr %a169 %t170 = load ptr, ptr %a1 %t171 = load ptr, ptr %a1 %t172 = load { ptr, i64, i64 }, ptr %a169 - store { ptr, i64, i64 } { ptr @.str.3224, i64 8, i64 0 }, ptr %a174 + store { ptr, i64, i64 } { ptr @.str.3309, i64 8, i64 0 }, ptr %a174 store { ptr, i64, i64 } %t172, ptr %a175 call void @finch_str_concat(ptr %a173, ptr %a174, ptr %a175) %t176 = load { ptr, i64, i64 }, ptr %a173 store { ptr, i64, i64 } %t176, ptr %a178 - store { ptr, i64, i64 } { ptr @.str.3225, i64 3, i64 0 }, ptr %a179 + store { ptr, i64, i64 } { ptr @.str.3310, i64 3, i64 0 }, ptr %a179 call void @finch_str_concat(ptr %a177, ptr %a178, ptr %a179) store { ptr, i64, i64 } %t176, ptr %a180 call void @finch_str_drop(ptr %a180) @@ -51610,7 +53258,7 @@ ok5143: store { ptr, i64, i64 } %t181, ptr %a183 call void @finch_str_drop(ptr %a183) %t184 = load { ptr, i64, i64 }, ptr %a66 - call void @finch.gen.store(ptr %t170, { ptr, i64, i64 } { ptr @.str.3223, i64 3, i64 0 }, { ptr, i64, i64 } %t182, { ptr, i64, i64 } %t184) + call void @finch.gen.store(ptr %t170, { ptr, i64, i64 } { ptr @.str.3308, i64 3, i64 0 }, { ptr, i64, i64 } %t182, { ptr, i64, i64 } %t184) store { ptr, i64, i64 } %t182, ptr %a185 call void @finch_str_drop(ptr %a185) %t186 = load ptr, ptr %a1 @@ -51807,11 +53455,11 @@ entry: %t7 = load { ptr, i64, i64 }, ptr %t6 %t8 = extractvalue { ptr, i64, i64 } %t7, 1 %t9 = icmp uge i64 0, %t8 - br i1 %t9, label %range5144, label %inrange5145 -range5144: - call void @finch_panic_index(ptr @.str.3226, i64 2445, i64 0, i64 %t8) + br i1 %t9, label %range5288, label %inrange5289 +range5288: + call void @finch_panic_index(ptr @.str.3311, i64 2526, i64 0, i64 %t8) unreachable -inrange5145: +inrange5289: %t10 = extractvalue { ptr, i64, i64 } %t7, 0 %t11 = getelementptr inbounds %S.ast.Type, ptr %t10, i64 0 %t12 = load %S.ast.Type, ptr %t11 @@ -51823,11 +53471,11 @@ inrange5145: %t18 = load { ptr, i64, i64 }, ptr %t17 %t19 = extractvalue { ptr, i64, i64 } %t18, 1 %t20 = icmp uge i64 1, %t19 - br i1 %t20, label %range5146, label %inrange5147 -range5146: - call void @finch_panic_index(ptr @.str.3227, i64 2446, i64 1, i64 %t19) + br i1 %t20, label %range5290, label %inrange5291 +range5290: + call void @finch_panic_index(ptr @.str.3312, i64 2527, i64 1, i64 %t19) unreachable -inrange5147: +inrange5291: %t21 = extractvalue { ptr, i64, i64 } %t18, 0 %t22 = getelementptr inbounds %S.ast.Type, ptr %t21, i64 1 %t23 = load %S.ast.Type, ptr %t22 @@ -51836,20 +53484,20 @@ inrange5147: %t26 = load %S.ast.Type, ptr %a25 store %S.ast.Type %t26, ptr %a27 %t28 = load i1, ptr %a5 - br label %logic.from5148 -logic.from5148: - br i1 %t28, label %logic.rhs5149, label %logic.end5150 -logic.rhs5149: + br label %logic.from5292 +logic.from5292: + br i1 %t28, label %logic.rhs5293, label %logic.end5294 +logic.rhs5293: %t29 = load ptr, ptr %a1 %t30 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t31 = load { ptr, i64, i64 }, ptr %t30 %t32 = extractvalue { ptr, i64, i64 } %t31, 1 %t33 = icmp uge i64 0, %t32 - br i1 %t33, label %range5151, label %inrange5152 -range5151: - call void @finch_panic_index(ptr @.str.3228, i64 2447, i64 0, i64 %t32) + br i1 %t33, label %range5295, label %inrange5296 +range5295: + call void @finch_panic_index(ptr @.str.3313, i64 2528, i64 0, i64 %t32) unreachable -inrange5152: +inrange5296: %t34 = extractvalue { ptr, i64, i64 } %t31, 0 %t35 = getelementptr inbounds %S.ast.Node, ptr %t34, i64 0 %t36 = load %S.ast.Node, ptr %t35 @@ -51858,46 +53506,46 @@ inrange5152: %t39 = load { ptr, i64, i64 }, ptr %t38 %t40 = extractvalue { ptr, i64, i64 } %t39, 1 %t41 = icmp uge i64 1, %t40 - br i1 %t41, label %range5153, label %inrange5154 -range5153: - call void @finch_panic_index(ptr @.str.3229, i64 2447, i64 1, i64 %t40) + br i1 %t41, label %range5297, label %inrange5298 +range5297: + call void @finch_panic_index(ptr @.str.3314, i64 2528, i64 1, i64 %t40) unreachable -inrange5154: +inrange5298: %t42 = extractvalue { ptr, i64, i64 } %t39, 0 %t43 = getelementptr inbounds %S.ast.Node, ptr %t42, i64 1 %t44 = load %S.ast.Node, ptr %t43 %t45 = call i1 @finch.gen.mutates(ptr %t29, { ptr, i64, i64 } %t37, %S.ast.Node %t44) store { ptr, i64, i64 } %t37, ptr %a46 call void @finch_str_drop(ptr %a46) - br label %logic.rend5155 -logic.rend5155: - br label %logic.end5150 -logic.end5150: - %t47 = phi i1 [ false, %logic.from5148 ], [ %t45, %logic.rend5155 ] + br label %logic.rend5299 +logic.rend5299: + br label %logic.end5294 +logic.end5294: + %t47 = phi i1 [ false, %logic.from5292 ], [ %t45, %logic.rend5299 ] store i1 %t47, ptr %a48 %t49 = load ptr, ptr %a1 - %t50 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t49, { ptr, i64, i64 } { ptr @.str.3230, i64 3, i64 0 }) + %t50 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t49, { ptr, i64, i64 } { ptr @.str.3315, i64 3, i64 0 }) store { ptr, i64, i64 } %t50, ptr %a51 %t52 = load ptr, ptr %a1 %t53 = load { ptr, i64, i64 }, ptr %a51 - call void @finch.gen.store(ptr %t52, { ptr, i64, i64 } { ptr @.str.3231, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.3232, i64 1, i64 0 }, { ptr, i64, i64 } %t53) - store { ptr, i64, i64 } { ptr @.str.3233, i64 0, i64 0 }, ptr %a54 + call void @finch.gen.store(ptr %t52, { ptr, i64, i64 } { ptr @.str.3316, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.3317, i64 1, i64 0 }, { ptr, i64, i64 } %t53) + store { ptr, i64, i64 } { ptr @.str.3318, i64 0, i64 0 }, ptr %a54 %t55 = load i1, ptr %a5 - br i1 %t55, label %then5156, label %endif5158 -then5156: + br i1 %t55, label %then5300, label %endif5302 +then5300: %t56 = load ptr, ptr %a1 %t57 = load ptr, ptr %a1 %t58 = load ptr, ptr %a1 %t59 = load %S.ast.Type, ptr %a4 %t60 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t58, %S.ast.Type %t59) - store { ptr, i64, i64 } { ptr @.str.3235, i64 23, i64 0 }, ptr %a62 + store { ptr, i64, i64 } { ptr @.str.3320, i64 23, i64 0 }, ptr %a62 store { ptr, i64, i64 } %t60, ptr %a63 call void @finch_str_concat(ptr %a61, ptr %a62, ptr %a63) store { ptr, i64, i64 } %t60, ptr %a64 call void @finch_str_drop(ptr %a64) %t65 = load { ptr, i64, i64 }, ptr %a61 store { ptr, i64, i64 } %t65, ptr %a67 - store { ptr, i64, i64 } { ptr @.str.3236, i64 6, i64 0 }, ptr %a68 + store { ptr, i64, i64 } { ptr @.str.3321, i64 6, i64 0 }, ptr %a68 call void @finch_str_concat(ptr %a66, ptr %a67, ptr %a68) store { ptr, i64, i64 } %t65, ptr %a69 call void @finch_str_drop(ptr %a69) @@ -51910,7 +53558,7 @@ then5156: call void @finch_str_drop(ptr %a75) %t76 = load { ptr, i64, i64 }, ptr %a72 store { ptr, i64, i64 } %t76, ptr %a78 - store { ptr, i64, i64 } { ptr @.str.3237, i64 14, i64 0 }, ptr %a79 + store { ptr, i64, i64 } { ptr @.str.3322, i64 14, i64 0 }, ptr %a79 call void @finch_str_concat(ptr %a77, ptr %a78, ptr %a79) store { ptr, i64, i64 } %t76, ptr %a80 call void @finch_str_drop(ptr %a80) @@ -51918,29 +53566,29 @@ then5156: %t82 = call { ptr, i64, i64 } @finch.gen.op(ptr %t57, { ptr, i64, i64 } %t81) store { ptr, i64, i64 } %t81, ptr %a83 call void @finch_str_drop(ptr %a83) - %t84 = call { ptr, i64, i64 } @finch.gen.load(ptr %t56, { ptr, i64, i64 } { ptr @.str.3234, i64 3, i64 0 }, { ptr, i64, i64 } %t82) + %t84 = call { ptr, i64, i64 } @finch.gen.load(ptr %t56, { ptr, i64, i64 } { ptr @.str.3319, i64 3, i64 0 }, { ptr, i64, i64 } %t82) store { ptr, i64, i64 } %t82, ptr %a85 call void @finch_str_drop(ptr %a85) %t86 = load { ptr, i64, i64 }, ptr %a54 store { ptr, i64, i64 } %t84, ptr %a54 store { ptr, i64, i64 } %t86, ptr %a87 call void @finch_str_drop(ptr %a87) - br label %endif5158 -endif5158: + br label %endif5302 +endif5302: %t88 = load ptr, ptr %a1 - %t89 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t88, { ptr, i64, i64 } { ptr @.str.3238, i64 8, i64 0 }) + %t89 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t88, { ptr, i64, i64 } { ptr @.str.3323, i64 8, i64 0 }) store { ptr, i64, i64 } %t89, ptr %a90 %t91 = load ptr, ptr %a1 - %t92 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t91, { ptr, i64, i64 } { ptr @.str.3239, i64 9, i64 0 }) + %t92 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t91, { ptr, i64, i64 } { ptr @.str.3324, i64 9, i64 0 }) store { ptr, i64, i64 } %t92, ptr %a93 %t94 = load ptr, ptr %a1 - %t95 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t94, { ptr, i64, i64 } { ptr @.str.3240, i64 8, i64 0 }) + %t95 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t94, { ptr, i64, i64 } { ptr @.str.3325, i64 8, i64 0 }) store { ptr, i64, i64 } %t95, ptr %a96 %t97 = load ptr, ptr %a1 - %t98 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t97, { ptr, i64, i64 } { ptr @.str.3241, i64 8, i64 0 }) + %t98 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t97, { ptr, i64, i64 } { ptr @.str.3326, i64 8, i64 0 }) store { ptr, i64, i64 } %t98, ptr %a99 %t100 = load ptr, ptr %a1 - %t101 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t100, { ptr, i64, i64 } { ptr @.str.3242, i64 7, i64 0 }) + %t101 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t100, { ptr, i64, i64 } { ptr @.str.3327, i64 7, i64 0 }) store { ptr, i64, i64 } %t101, ptr %a102 %t103 = load ptr, ptr %a1 %t104 = load { ptr, i64, i64 }, ptr %a90 @@ -51949,37 +53597,37 @@ endif5158: %t106 = load { ptr, i64, i64 }, ptr %a90 call void @finch.gen.label(ptr %t105, { ptr, i64, i64 } %t106) %t107 = load i1, ptr %a5 - br label %logic.from5159 -logic.from5159: - br i1 %t107, label %logic.rhs5160, label %logic.end5161 -logic.rhs5160: + br label %logic.from5303 +logic.from5303: + br i1 %t107, label %logic.rhs5304, label %logic.end5305 +logic.rhs5304: %t108 = load i1, ptr %a48 - br label %logic.rend5162 -logic.rend5162: - br label %logic.end5161 -logic.end5161: - %t109 = phi i1 [ false, %logic.from5159 ], [ %t108, %logic.rend5162 ] - br i1 %t109, label %then5163, label %endif5165 -then5163: + br label %logic.rend5306 +logic.rend5306: + br label %logic.end5305 +logic.end5305: + %t109 = phi i1 [ false, %logic.from5303 ], [ %t108, %logic.rend5306 ] + br i1 %t109, label %then5307, label %endif5309 +then5307: %t110 = load ptr, ptr %a1 - %t111 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t110, { ptr, i64, i64 } { ptr @.str.3243, i64 11, i64 0 }) + %t111 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t110, { ptr, i64, i64 } { ptr @.str.3328, i64 11, i64 0 }) store { ptr, i64, i64 } %t111, ptr %a112 %t113 = load ptr, ptr %a1 - %t114 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t113, { ptr, i64, i64 } { ptr @.str.3244, i64 8, i64 0 }) + %t114 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t113, { ptr, i64, i64 } { ptr @.str.3329, i64 8, i64 0 }) store { ptr, i64, i64 } %t114, ptr %a115 %t116 = load ptr, ptr %a1 %t117 = load ptr, ptr %a1 %t118 = load ptr, ptr %a1 %t119 = load %S.ast.Type, ptr %a4 %t120 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t118, %S.ast.Type %t119) - store { ptr, i64, i64 } { ptr @.str.3246, i64 23, i64 0 }, ptr %a122 + store { ptr, i64, i64 } { ptr @.str.3331, i64 23, i64 0 }, ptr %a122 store { ptr, i64, i64 } %t120, ptr %a123 call void @finch_str_concat(ptr %a121, ptr %a122, ptr %a123) store { ptr, i64, i64 } %t120, ptr %a124 call void @finch_str_drop(ptr %a124) %t125 = load { ptr, i64, i64 }, ptr %a121 store { ptr, i64, i64 } %t125, ptr %a127 - store { ptr, i64, i64 } { ptr @.str.3247, i64 6, i64 0 }, ptr %a128 + store { ptr, i64, i64 } { ptr @.str.3332, i64 6, i64 0 }, ptr %a128 call void @finch_str_concat(ptr %a126, ptr %a127, ptr %a128) store { ptr, i64, i64 } %t125, ptr %a129 call void @finch_str_drop(ptr %a129) @@ -51992,7 +53640,7 @@ then5163: call void @finch_str_drop(ptr %a135) %t136 = load { ptr, i64, i64 }, ptr %a132 store { ptr, i64, i64 } %t136, ptr %a138 - store { ptr, i64, i64 } { ptr @.str.3248, i64 14, i64 0 }, ptr %a139 + store { ptr, i64, i64 } { ptr @.str.3333, i64 14, i64 0 }, ptr %a139 call void @finch_str_concat(ptr %a137, ptr %a138, ptr %a139) store { ptr, i64, i64 } %t136, ptr %a140 call void @finch_str_drop(ptr %a140) @@ -52000,19 +53648,19 @@ then5163: %t142 = call { ptr, i64, i64 } @finch.gen.op(ptr %t117, { ptr, i64, i64 } %t141) store { ptr, i64, i64 } %t141, ptr %a143 call void @finch_str_drop(ptr %a143) - %t144 = call { ptr, i64, i64 } @finch.gen.load(ptr %t116, { ptr, i64, i64 } { ptr @.str.3245, i64 3, i64 0 }, { ptr, i64, i64 } %t142) + %t144 = call { ptr, i64, i64 } @finch.gen.load(ptr %t116, { ptr, i64, i64 } { ptr @.str.3330, i64 3, i64 0 }, { ptr, i64, i64 } %t142) store { ptr, i64, i64 } %t142, ptr %a145 call void @finch_str_drop(ptr %a145) store { ptr, i64, i64 } %t144, ptr %a146 %t147 = load ptr, ptr %a1 %t148 = load ptr, ptr %a1 %t149 = load { ptr, i64, i64 }, ptr %a146 - store { ptr, i64, i64 } { ptr @.str.3249, i64 12, i64 0 }, ptr %a151 + store { ptr, i64, i64 } { ptr @.str.3334, i64 12, i64 0 }, ptr %a151 store { ptr, i64, i64 } %t149, ptr %a152 call void @finch_str_concat(ptr %a150, ptr %a151, ptr %a152) %t153 = load { ptr, i64, i64 }, ptr %a150 store { ptr, i64, i64 } %t153, ptr %a155 - store { ptr, i64, i64 } { ptr @.str.3250, i64 2, i64 0 }, ptr %a156 + store { ptr, i64, i64 } { ptr @.str.3335, i64 2, i64 0 }, ptr %a156 call void @finch_str_concat(ptr %a154, ptr %a155, ptr %a156) store { ptr, i64, i64 } %t153, ptr %a157 call void @finch_str_drop(ptr %a157) @@ -52039,34 +53687,34 @@ then5163: %t173 = load ptr, ptr %a1 %t174 = load ptr, ptr %a1 %t175 = icmp eq ptr %t174, null - br i1 %t175, label %panic5166, label %ok5167 -panic5166: - call void @finch_panic(ptr @.str.3252, i64 2468, ptr @.str.3253) + br i1 %t175, label %panic5310, label %ok5311 +panic5310: + call void @finch_panic(ptr @.str.3337, i64 2549, ptr @.str.3338) unreachable -ok5167: +ok5311: %t176 = getelementptr inbounds %S.gen.Gen, ptr %t174, i32 0, i32 1 %t177 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 13 %t178 = load i64, ptr %t177 %t179 = load { ptr, i64, i64 }, ptr %t176 %t180 = extractvalue { ptr, i64, i64 } %t179, 1 %t181 = icmp uge i64 %t178, %t180 - br i1 %t181, label %range5168, label %inrange5169 -range5168: - call void @finch_panic_index(ptr @.str.3254, i64 2468, i64 %t178, i64 %t180) + br i1 %t181, label %range5312, label %inrange5313 +range5312: + call void @finch_panic_index(ptr @.str.3339, i64 2549, i64 %t178, i64 %t180) unreachable -inrange5169: +inrange5313: %t182 = extractvalue { ptr, i64, i64 } %t179, 0 %t183 = getelementptr inbounds { ptr, i64, i64 }, ptr %t182, i64 %t178 %t184 = load { ptr, i64, i64 }, ptr %t183 %t185 = call { ptr, i64, i64 } @finch.gen.strGlobal(ptr %t173, { ptr, i64, i64 } %t184) - store { ptr, i64, i64 } { ptr @.str.3251, i64 33, i64 0 }, ptr %a187 + store { ptr, i64, i64 } { ptr @.str.3336, i64 33, i64 0 }, ptr %a187 store { ptr, i64, i64 } %t185, ptr %a188 call void @finch_str_concat(ptr %a186, ptr %a187, ptr %a188) store { ptr, i64, i64 } %t185, ptr %a189 call void @finch_str_drop(ptr %a189) %t190 = load { ptr, i64, i64 }, ptr %a186 store { ptr, i64, i64 } %t190, ptr %a192 - store { ptr, i64, i64 } { ptr @.str.3255, i64 6, i64 0 }, ptr %a193 + store { ptr, i64, i64 } { ptr @.str.3340, i64 6, i64 0 }, ptr %a193 call void @finch_str_concat(ptr %a191, ptr %a192, ptr %a193) store { ptr, i64, i64 } %t190, ptr %a194 call void @finch_str_drop(ptr %a194) @@ -52084,7 +53732,7 @@ inrange5169: call void @finch_str_drop(ptr %a204) %t205 = load { ptr, i64, i64 }, ptr %a200 store { ptr, i64, i64 } %t205, ptr %a207 - store { ptr, i64, i64 } { ptr @.str.3256, i64 1, i64 0 }, ptr %a208 + store { ptr, i64, i64 } { ptr @.str.3341, i64 1, i64 0 }, ptr %a208 call void @finch_str_concat(ptr %a206, ptr %a207, ptr %a208) store { ptr, i64, i64 } %t205, ptr %a209 call void @finch_str_drop(ptr %a209) @@ -52093,14 +53741,14 @@ inrange5169: store { ptr, i64, i64 } %t210, ptr %a211 call void @finch_str_drop(ptr %a211) %t212 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t212, { ptr, i64, i64 } { ptr @.str.3257, i64 11, i64 0 }) + call void @finch.gen.emit(ptr %t212, { ptr, i64, i64 } { ptr @.str.3342, i64 11, i64 0 }) %t213 = load ptr, ptr %a1 %t214 = icmp eq ptr %t213, null - br i1 %t214, label %panic5170, label %ok5171 -panic5170: - call void @finch_panic(ptr @.str.3258, i64 2470, ptr @.str.3259) + br i1 %t214, label %panic5314, label %ok5315 +panic5314: + call void @finch_panic(ptr @.str.3343, i64 2551, ptr @.str.3344) unreachable -ok5171: +ok5315: %t215 = getelementptr inbounds %S.gen.Gen, ptr %t213, i32 0, i32 9 store i1 true, ptr %t215 %t216 = load ptr, ptr %a1 @@ -52109,25 +53757,25 @@ ok5171: call void @finch_str_drop(ptr %a146) call void @finch_str_drop(ptr %a115) call void @finch_str_drop(ptr %a112) - br label %endif5165 -endif5165: + br label %endif5309 +endif5309: %t218 = load ptr, ptr %a1 %t219 = load { ptr, i64, i64 }, ptr %a51 - %t220 = call { ptr, i64, i64 } @finch.gen.load(ptr %t218, { ptr, i64, i64 } { ptr @.str.3260, i64 3, i64 0 }, { ptr, i64, i64 } %t219) + %t220 = call { ptr, i64, i64 } @finch.gen.load(ptr %t218, { ptr, i64, i64 } { ptr @.str.3345, i64 3, i64 0 }, { ptr, i64, i64 } %t219) store { ptr, i64, i64 } %t220, ptr %a221 %t222 = load ptr, ptr %a1 %t223 = load ptr, ptr %a1 %t224 = load ptr, ptr %a1 %t225 = load %S.ast.Type, ptr %a4 %t226 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t224, %S.ast.Type %t225) - store { ptr, i64, i64 } { ptr @.str.3262, i64 23, i64 0 }, ptr %a228 + store { ptr, i64, i64 } { ptr @.str.3347, i64 23, i64 0 }, ptr %a228 store { ptr, i64, i64 } %t226, ptr %a229 call void @finch_str_concat(ptr %a227, ptr %a228, ptr %a229) store { ptr, i64, i64 } %t226, ptr %a230 call void @finch_str_drop(ptr %a230) %t231 = load { ptr, i64, i64 }, ptr %a227 store { ptr, i64, i64 } %t231, ptr %a233 - store { ptr, i64, i64 } { ptr @.str.3263, i64 6, i64 0 }, ptr %a234 + store { ptr, i64, i64 } { ptr @.str.3348, i64 6, i64 0 }, ptr %a234 call void @finch_str_concat(ptr %a232, ptr %a233, ptr %a234) store { ptr, i64, i64 } %t231, ptr %a235 call void @finch_str_drop(ptr %a235) @@ -52140,7 +53788,7 @@ endif5165: call void @finch_str_drop(ptr %a241) %t242 = load { ptr, i64, i64 }, ptr %a238 store { ptr, i64, i64 } %t242, ptr %a244 - store { ptr, i64, i64 } { ptr @.str.3264, i64 14, i64 0 }, ptr %a245 + store { ptr, i64, i64 } { ptr @.str.3349, i64 14, i64 0 }, ptr %a245 call void @finch_str_concat(ptr %a243, ptr %a244, ptr %a245) store { ptr, i64, i64 } %t242, ptr %a246 call void @finch_str_drop(ptr %a246) @@ -52148,19 +53796,19 @@ endif5165: %t248 = call { ptr, i64, i64 } @finch.gen.op(ptr %t223, { ptr, i64, i64 } %t247) store { ptr, i64, i64 } %t247, ptr %a249 call void @finch_str_drop(ptr %a249) - %t250 = call { ptr, i64, i64 } @finch.gen.load(ptr %t222, { ptr, i64, i64 } { ptr @.str.3261, i64 3, i64 0 }, { ptr, i64, i64 } %t248) + %t250 = call { ptr, i64, i64 } @finch.gen.load(ptr %t222, { ptr, i64, i64 } { ptr @.str.3346, i64 3, i64 0 }, { ptr, i64, i64 } %t248) store { ptr, i64, i64 } %t248, ptr %a251 call void @finch_str_drop(ptr %a251) store { ptr, i64, i64 } %t250, ptr %a252 %t253 = load ptr, ptr %a1 %t254 = load ptr, ptr %a1 %t255 = load { ptr, i64, i64 }, ptr %a221 - store { ptr, i64, i64 } { ptr @.str.3265, i64 13, i64 0 }, ptr %a257 + store { ptr, i64, i64 } { ptr @.str.3350, i64 13, i64 0 }, ptr %a257 store { ptr, i64, i64 } %t255, ptr %a258 call void @finch_str_concat(ptr %a256, ptr %a257, ptr %a258) %t259 = load { ptr, i64, i64 }, ptr %a256 store { ptr, i64, i64 } %t259, ptr %a261 - store { ptr, i64, i64 } { ptr @.str.3266, i64 2, i64 0 }, ptr %a262 + store { ptr, i64, i64 } { ptr @.str.3351, i64 2, i64 0 }, ptr %a262 call void @finch_str_concat(ptr %a260, ptr %a261, ptr %a262) store { ptr, i64, i64 } %t259, ptr %a263 call void @finch_str_drop(ptr %a263) @@ -52194,19 +53842,19 @@ endif5165: %t286 = load { ptr, i64, i64 }, ptr %a283 %t287 = load %S.ast.Type, ptr %a4 %t288 = call { ptr, i64, i64 } @finch.gen.entryField(ptr %t285, { ptr, i64, i64 } %t286, %S.ast.Type %t287, i64 0) - %t289 = call { ptr, i64, i64 } @finch.gen.load(ptr %t284, { ptr, i64, i64 } { ptr @.str.3267, i64 3, i64 0 }, { ptr, i64, i64 } %t288) + %t289 = call { ptr, i64, i64 } @finch.gen.load(ptr %t284, { ptr, i64, i64 } { ptr @.str.3352, i64 3, i64 0 }, { ptr, i64, i64 } %t288) store { ptr, i64, i64 } %t288, ptr %a290 call void @finch_str_drop(ptr %a290) store { ptr, i64, i64 } %t289, ptr %a291 %t292 = load ptr, ptr %a1 %t293 = load ptr, ptr %a1 %t294 = load { ptr, i64, i64 }, ptr %a291 - store { ptr, i64, i64 } { ptr @.str.3268, i64 12, i64 0 }, ptr %a296 + store { ptr, i64, i64 } { ptr @.str.3353, i64 12, i64 0 }, ptr %a296 store { ptr, i64, i64 } %t294, ptr %a297 call void @finch_str_concat(ptr %a295, ptr %a296, ptr %a297) %t298 = load { ptr, i64, i64 }, ptr %a295 store { ptr, i64, i64 } %t298, ptr %a300 - store { ptr, i64, i64 } { ptr @.str.3269, i64 3, i64 0 }, ptr %a301 + store { ptr, i64, i64 } { ptr @.str.3354, i64 3, i64 0 }, ptr %a301 call void @finch_str_concat(ptr %a299, ptr %a300, ptr %a301) store { ptr, i64, i64 } %t298, ptr %a302 call void @finch_str_drop(ptr %a302) @@ -52224,11 +53872,11 @@ endif5165: call void @finch.gen.label(ptr %t309, { ptr, i64, i64 } %t310) %t311 = load ptr, ptr %a1 %t312 = icmp eq ptr %t311, null - br i1 %t312, label %panic5172, label %ok5173 -panic5172: - call void @finch_panic(ptr @.str.3270, i64 2481, ptr @.str.3271) + br i1 %t312, label %panic5316, label %ok5317 +panic5316: + call void @finch_panic(ptr @.str.3355, i64 2562, ptr @.str.3356) unreachable -ok5173: +ok5317: %t313 = getelementptr inbounds %S.gen.Gen, ptr %t311, i32 0, i32 12 %t314 = getelementptr inbounds { ptr, i64, i64 }, ptr %t313, i32 0, i32 1 %t315 = load { ptr, i64, i64 }, ptr %a99 @@ -52243,22 +53891,22 @@ ok5173: %t324 = insertvalue %S.gen.Loop %t319, { ptr, i64, i64 } %t323, 1 %t325 = load ptr, ptr %a1 %t326 = icmp eq ptr %t325, null - br i1 %t326, label %panic5174, label %ok5175 -panic5174: - call void @finch_panic(ptr @.str.3272, i64 2481, ptr @.str.3273) + br i1 %t326, label %panic5318, label %ok5319 +panic5318: + call void @finch_panic(ptr @.str.3357, i64 2562, ptr @.str.3358) unreachable -ok5175: +ok5319: %t327 = getelementptr inbounds %S.gen.Gen, ptr %t325, i32 0, i32 10 %t328 = getelementptr inbounds { ptr, i64, i64 }, ptr %t327, i32 0, i32 1 %t329 = load i64, ptr %t328 %t330 = insertvalue %S.gen.Loop %t324, i64 %t329, 2 %t331 = load ptr, ptr %a1 %t332 = icmp eq ptr %t331, null - br i1 %t332, label %panic5176, label %ok5177 -panic5176: - call void @finch_panic(ptr @.str.3274, i64 2481, ptr @.str.3275) + br i1 %t332, label %panic5320, label %ok5321 +panic5320: + call void @finch_panic(ptr @.str.3359, i64 2562, ptr @.str.3360) unreachable -ok5177: +ok5321: %t333 = getelementptr inbounds %S.gen.Gen, ptr %t331, i32 0, i32 11 %t334 = getelementptr inbounds { ptr, i64, i64 }, ptr %t333, i32 0, i32 1 %t335 = load i64, ptr %t334 @@ -52287,8 +53935,8 @@ ok5177: call void @finch_str_drop(ptr %a352) store { ptr, i64, i64 } %t350, ptr %a353 %t354 = load i1, ptr %a48 - br i1 %t354, label %then5178, label %endif5180 -then5178: + br i1 %t354, label %then5322, label %endif5324 +then5322: %t355 = load ptr, ptr %a1 %t356 = load { ptr, i64, i64 }, ptr %a353 %t357 = load %S.ast.Type, ptr %a16 @@ -52297,8 +53945,8 @@ then5178: store { ptr, i64, i64 } %t358, ptr %a353 store { ptr, i64, i64 } %t359, ptr %a360 call void @finch_str_drop(ptr %a360) - br label %endif5180 -endif5180: + br label %endif5324 +endif5324: %t361 = load ptr, ptr %a1 %t362 = load %S.ast.Node, ptr %a2 %t363 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 @@ -52313,8 +53961,8 @@ endif5180: %t371 = getelementptr inbounds { ptr, i64, i64 }, ptr %t370, i32 0, i32 1 %t372 = load i64, ptr %t371 %t373 = icmp sgt i64 %t372, 0 - br i1 %t373, label %then5181, label %endif5183 -then5181: + br i1 %t373, label %then5325, label %endif5327 +then5325: %t374 = load ptr, ptr %a1 %t375 = load ptr, ptr %a1 %t376 = load %S.ast.Type, ptr %a27 @@ -52330,8 +53978,8 @@ then5181: call void @finch_str_drop(ptr %a384) store { ptr, i64, i64 } %t382, ptr %a385 %t386 = load i1, ptr %a48 - br i1 %t386, label %then5184, label %endif5186 -then5184: + br i1 %t386, label %then5328, label %endif5330 +then5328: %t387 = load ptr, ptr %a1 %t388 = load { ptr, i64, i64 }, ptr %a385 %t389 = load %S.ast.Type, ptr %a27 @@ -52340,8 +53988,8 @@ then5184: store { ptr, i64, i64 } %t390, ptr %a385 store { ptr, i64, i64 } %t391, ptr %a392 call void @finch_str_drop(ptr %a392) - br label %endif5186 -endif5186: + br label %endif5330 +endif5330: %t393 = load ptr, ptr %a1 %t394 = load %S.ast.Node, ptr %a2 %t395 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 4 @@ -52353,18 +54001,18 @@ endif5186: store { ptr, i64, i64 } %t400, ptr %a401 call void @finch_str_drop(ptr %a401) call void @finch_str_drop(ptr %a385) - br label %endif5183 -endif5183: + br label %endif5327 +endif5327: %t402 = load ptr, ptr %a1 %t403 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t404 = load { ptr, i64, i64 }, ptr %t403 %t405 = extractvalue { ptr, i64, i64 } %t404, 1 %t406 = icmp uge i64 1, %t405 - br i1 %t406, label %range5187, label %inrange5188 -range5187: - call void @finch_panic_index(ptr @.str.3276, i64 2495, i64 1, i64 %t405) + br i1 %t406, label %range5331, label %inrange5332 +range5331: + call void @finch_panic_index(ptr @.str.3361, i64 2576, i64 1, i64 %t405) unreachable -inrange5188: +inrange5332: %t407 = extractvalue { ptr, i64, i64 } %t404, 0 %t408 = getelementptr inbounds %S.ast.Node, ptr %t407, i64 1 %t409 = load %S.ast.Node, ptr %t408 @@ -52373,20 +54021,20 @@ inrange5188: call void @finch.gen.popScope(ptr %t410) %t411 = load ptr, ptr %a1 %t412 = icmp eq ptr %t411, null - br i1 %t412, label %panic5189, label %ok5190 -panic5189: - call void @finch_panic(ptr @.str.3277, i64 2497, ptr @.str.3278) + br i1 %t412, label %panic5333, label %ok5334 +panic5333: + call void @finch_panic(ptr @.str.3362, i64 2578, ptr @.str.3363) unreachable -ok5190: +ok5334: %t413 = getelementptr inbounds %S.gen.Gen, ptr %t411, i32 0, i32 12 %t414 = getelementptr inbounds { ptr, i64, i64 }, ptr %t413, i32 0, i32 1 %t415 = load i64, ptr %t414 %t416 = icmp eq i64 %t415, 0 - br i1 %t416, label %panic5191, label %ok5192 -panic5191: - call void @finch_panic(ptr @.str.3279, i64 2497, ptr @.str.3280) + br i1 %t416, label %panic5335, label %ok5336 +panic5335: + call void @finch_panic(ptr @.str.3364, i64 2578, ptr @.str.3365) unreachable -ok5192: +ok5336: %t417 = sub i64 %t415, 1 %t418 = load ptr, ptr %t413 %t419 = getelementptr inbounds %S.gen.Loop, ptr %t418, i64 %t417 @@ -52402,17 +54050,17 @@ ok5192: call void @finch.gen.label(ptr %t424, { ptr, i64, i64 } %t425) %t426 = load ptr, ptr %a1 %t427 = load { ptr, i64, i64 }, ptr %a51 - %t428 = call { ptr, i64, i64 } @finch.gen.load(ptr %t426, { ptr, i64, i64 } { ptr @.str.3281, i64 3, i64 0 }, { ptr, i64, i64 } %t427) + %t428 = call { ptr, i64, i64 } @finch.gen.load(ptr %t426, { ptr, i64, i64 } { ptr @.str.3366, i64 3, i64 0 }, { ptr, i64, i64 } %t427) store { ptr, i64, i64 } %t428, ptr %a429 %t430 = load ptr, ptr %a1 %t431 = load ptr, ptr %a1 %t432 = load { ptr, i64, i64 }, ptr %a429 - store { ptr, i64, i64 } { ptr @.str.3283, i64 8, i64 0 }, ptr %a434 + store { ptr, i64, i64 } { ptr @.str.3368, i64 8, i64 0 }, ptr %a434 store { ptr, i64, i64 } %t432, ptr %a435 call void @finch_str_concat(ptr %a433, ptr %a434, ptr %a435) %t436 = load { ptr, i64, i64 }, ptr %a433 store { ptr, i64, i64 } %t436, ptr %a438 - store { ptr, i64, i64 } { ptr @.str.3284, i64 3, i64 0 }, ptr %a439 + store { ptr, i64, i64 } { ptr @.str.3369, i64 3, i64 0 }, ptr %a439 call void @finch_str_concat(ptr %a437, ptr %a438, ptr %a439) store { ptr, i64, i64 } %t436, ptr %a440 call void @finch_str_drop(ptr %a440) @@ -52421,7 +54069,7 @@ ok5192: store { ptr, i64, i64 } %t441, ptr %a443 call void @finch_str_drop(ptr %a443) %t444 = load { ptr, i64, i64 }, ptr %a51 - call void @finch.gen.store(ptr %t430, { ptr, i64, i64 } { ptr @.str.3282, i64 3, i64 0 }, { ptr, i64, i64 } %t442, { ptr, i64, i64 } %t444) + call void @finch.gen.store(ptr %t430, { ptr, i64, i64 } { ptr @.str.3367, i64 3, i64 0 }, { ptr, i64, i64 } %t442, { ptr, i64, i64 } %t444) store { ptr, i64, i64 } %t442, ptr %a445 call void @finch_str_drop(ptr %a445) %t446 = load ptr, ptr %a1 @@ -52593,23 +54241,23 @@ entry: %t6 = load { ptr, i64, i64 }, ptr %t5 %t7 = extractvalue { ptr, i64, i64 } %t6, 1 %t8 = icmp uge i64 0, %t7 - br i1 %t8, label %range5193, label %inrange5194 -range5193: - call void @finch_panic_index(ptr @.str.3285, i64 2508, i64 0, i64 %t7) + br i1 %t8, label %range5337, label %inrange5338 +range5337: + call void @finch_panic_index(ptr @.str.3370, i64 2589, i64 0, i64 %t7) unreachable -inrange5194: +inrange5338: %t9 = extractvalue { ptr, i64, i64 } %t6, 0 %t10 = getelementptr inbounds %S.ast.Node, ptr %t9, i64 0 %t11 = load %S.ast.Node, ptr %t10 %t12 = call %S.gen.Ref @finch.gen.ref(ptr %t4, %S.ast.Node %t11, i1 false) store %S.gen.Ref %t12, ptr %a13 - store { ptr, i64, i64 } { ptr @.str.3286, i64 0, i64 0 }, ptr %a14 - %t15 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3287, i64 4, i64 0 }) + store { ptr, i64, i64 } { ptr @.str.3371, i64 0, i64 0 }, ptr %a14 + %t15 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3372, i64 4, i64 0 }) store %S.ast.Type %t15, ptr %a16 %t17 = getelementptr inbounds %S.gen.Ref, ptr %a13, i32 0, i32 0 %t18 = load i1, ptr %t17 - br i1 %t18, label %then5195, label %else5196 -then5195: + br i1 %t18, label %then5339, label %else5340 +then5339: %t19 = getelementptr inbounds %S.gen.Ref, ptr %a13, i32 0, i32 1 %t20 = getelementptr inbounds %S.gen.Place, ptr %t19, i32 0, i32 0 %t21 = load { ptr, i64, i64 }, ptr %t20 @@ -52630,8 +54278,8 @@ then5195: store %S.ast.Type %t32, ptr %a16 store %S.ast.Type %t33, ptr %a34 call void @finch.drop.S_ast_Type(ptr %a34) - br label %endif5197 -else5196: + br label %endif5341 +else5340: %t35 = getelementptr inbounds %S.gen.Ref, ptr %a13, i32 0, i32 2 %t36 = getelementptr inbounds %S.gen.Val, ptr %t35, i32 0, i32 1 %t37 = load %S.ast.Type, ptr %t36 @@ -52646,16 +54294,16 @@ else5196: %t44 = load %S.ast.Node, ptr %a2 %t45 = load ptr, ptr %a1 %t46 = icmp eq ptr %t45, null - br i1 %t46, label %panic5198, label %ok5199 -panic5198: - call void @finch_panic(ptr @.str.3289, i64 2516, ptr @.str.3290) + br i1 %t46, label %panic5342, label %ok5343 +panic5342: + call void @finch_panic(ptr @.str.3374, i64 2597, ptr @.str.3375) unreachable -ok5199: - %t47 = getelementptr inbounds %S.gen.Gen, ptr %t45, i32 0, i32 24 +ok5343: + %t47 = getelementptr inbounds %S.gen.Gen, ptr %t45, i32 0, i32 25 %t48 = load i64, ptr %t47 call void @finch_str_from_int(ptr %a49, i64 %t48) %t50 = load { ptr, i64, i64 }, ptr %a49 - store { ptr, i64, i64 } { ptr @.str.3288, i64 5, i64 0 }, ptr %a52 + store { ptr, i64, i64 } { ptr @.str.3373, i64 5, i64 0 }, ptr %a52 store { ptr, i64, i64 } %t50, ptr %a53 call void @finch_str_concat(ptr %a51, ptr %a52, ptr %a53) store { ptr, i64, i64 } %t50, ptr %a54 @@ -52675,16 +54323,16 @@ ok5199: store { ptr, i64, i64 } %t61, ptr %a14 store { ptr, i64, i64 } %t64, ptr %a65 call void @finch_str_drop(ptr %a65) - br label %endif5197 -endif5197: + br label %endif5341 +endif5341: %t66 = getelementptr inbounds %S.ast.Type, ptr %a16, i32 0, i32 0 %t67 = load { ptr, i64, i64 }, ptr %t66 store { ptr, i64, i64 } %t67, ptr %a68 - store { ptr, i64, i64 } { ptr @.str.3291, i64 3, i64 0 }, ptr %a69 + store { ptr, i64, i64 } { ptr @.str.3376, i64 3, i64 0 }, ptr %a69 %t70 = call i32 @finch_str_eq(ptr %a68, ptr %a69) %t71 = icmp ne i32 %t70, 0 - br i1 %t71, label %then5200, label %endif5202 -then5200: + br i1 %t71, label %then5344, label %endif5346 +then5344: %t72 = load ptr, ptr %a1 %t73 = load %S.ast.Node, ptr %a2 %t74 = load { ptr, i64, i64 }, ptr %a14 @@ -52698,53 +54346,53 @@ then5200: call void @finch_str_drop(ptr %a14) call void @finch.drop.S_gen_Ref(ptr %a13) ret void -endif5202: +endif5346: %t79 = getelementptr inbounds %S.ast.Type, ptr %a16, i32 0, i32 0 %t80 = load { ptr, i64, i64 }, ptr %t79 store { ptr, i64, i64 } %t80, ptr %a81 - store { ptr, i64, i64 } { ptr @.str.3292, i64 5, i64 0 }, ptr %a82 + store { ptr, i64, i64 } { ptr @.str.3377, i64 5, i64 0 }, ptr %a82 %t83 = call i32 @finch_str_eq(ptr %a81, ptr %a82) %t84 = icmp eq i32 %t83, 0 - br label %logic.from5203 -logic.from5203: - br i1 %t84, label %logic.rhs5204, label %logic.end5205 -logic.rhs5204: + br label %logic.from5347 +logic.from5347: + br i1 %t84, label %logic.rhs5348, label %logic.end5349 +logic.rhs5348: %t85 = getelementptr inbounds %S.ast.Type, ptr %a16, i32 0, i32 0 %t86 = load { ptr, i64, i64 }, ptr %t85 store { ptr, i64, i64 } %t86, ptr %a87 - store { ptr, i64, i64 } { ptr @.str.3293, i64 3, i64 0 }, ptr %a88 + store { ptr, i64, i64 } { ptr @.str.3378, i64 3, i64 0 }, ptr %a88 %t89 = call i32 @finch_str_eq(ptr %a87, ptr %a88) %t90 = icmp eq i32 %t89, 0 - br label %logic.rend5206 -logic.rend5206: - br label %logic.end5205 -logic.end5205: - %t91 = phi i1 [ false, %logic.from5203 ], [ %t90, %logic.rend5206 ] - br i1 %t91, label %then5207, label %endif5209 -then5207: + br label %logic.rend5350 +logic.rend5350: + br label %logic.end5349 +logic.end5349: + %t91 = phi i1 [ false, %logic.from5347 ], [ %t90, %logic.rend5350 ] + br i1 %t91, label %then5351, label %endif5353 +then5351: %t92 = load ptr, ptr %a1 %t93 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t94 = load { ptr, i64, i64 }, ptr %t93 %t95 = extractvalue { ptr, i64, i64 } %t94, 1 %t96 = icmp uge i64 0, %t95 - br i1 %t96, label %range5210, label %inrange5211 -range5210: - call void @finch_panic_index(ptr @.str.3294, i64 2524, i64 0, i64 %t95) + br i1 %t96, label %range5354, label %inrange5355 +range5354: + call void @finch_panic_index(ptr @.str.3379, i64 2605, i64 0, i64 %t95) unreachable -inrange5211: +inrange5355: %t97 = extractvalue { ptr, i64, i64 } %t94, 0 %t98 = getelementptr inbounds %S.ast.Node, ptr %t97, i64 0 %t99 = load %S.ast.Node, ptr %t98 %t100 = load %S.ast.Type, ptr %a16 %t101 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t100) - store { ptr, i64, i64 } { ptr @.str.3295, i64 55, i64 0 }, ptr %a103 + store { ptr, i64, i64 } { ptr @.str.3380, i64 55, i64 0 }, ptr %a103 store { ptr, i64, i64 } %t101, ptr %a104 call void @finch_str_concat(ptr %a102, ptr %a103, ptr %a104) store { ptr, i64, i64 } %t101, ptr %a105 call void @finch_str_drop(ptr %a105) %t106 = load { ptr, i64, i64 }, ptr %a102 store { ptr, i64, i64 } %t106, ptr %a108 - store { ptr, i64, i64 } { ptr @.str.3296, i64 36, i64 0 }, ptr %a109 + store { ptr, i64, i64 } { ptr @.str.3381, i64 36, i64 0 }, ptr %a109 call void @finch_str_concat(ptr %a107, ptr %a108, ptr %a109) store { ptr, i64, i64 } %t106, ptr %a110 call void @finch_str_drop(ptr %a110) @@ -52752,27 +54400,27 @@ inrange5211: call void @finch.gen.fail(ptr %t92, %S.ast.Node %t99, { ptr, i64, i64 } %t111) store { ptr, i64, i64 } %t111, ptr %a112 call void @finch_str_drop(ptr %a112) - br label %endif5209 -endif5209: - %t113 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3297, i64 4, i64 0 }) + br label %endif5353 +endif5353: + %t113 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3382, i64 4, i64 0 }) store %S.ast.Type %t113, ptr %a114 %t115 = getelementptr inbounds %S.ast.Type, ptr %a16, i32 0, i32 0 %t116 = load { ptr, i64, i64 }, ptr %t115 store { ptr, i64, i64 } %t116, ptr %a117 - store { ptr, i64, i64 } { ptr @.str.3298, i64 5, i64 0 }, ptr %a118 + store { ptr, i64, i64 } { ptr @.str.3383, i64 5, i64 0 }, ptr %a118 %t119 = call i32 @finch_str_eq(ptr %a117, ptr %a118) %t120 = icmp ne i32 %t119, 0 - br i1 %t120, label %then5212, label %endif5214 -then5212: + br i1 %t120, label %then5356, label %endif5358 +then5356: %t121 = getelementptr inbounds %S.ast.Type, ptr %a16, i32 0, i32 1 %t122 = load { ptr, i64, i64 }, ptr %t121 %t123 = extractvalue { ptr, i64, i64 } %t122, 1 %t124 = icmp uge i64 0, %t123 - br i1 %t124, label %range5215, label %inrange5216 -range5215: - call void @finch_panic_index(ptr @.str.3299, i64 2528, i64 0, i64 %t123) + br i1 %t124, label %range5359, label %inrange5360 +range5359: + call void @finch_panic_index(ptr @.str.3384, i64 2609, i64 0, i64 %t123) unreachable -inrange5216: +inrange5360: %t125 = extractvalue { ptr, i64, i64 } %t122, 0 %t126 = getelementptr inbounds %S.ast.Type, ptr %t125, i64 0 %t127 = load %S.ast.Type, ptr %t126 @@ -52783,36 +54431,36 @@ inrange5216: store %S.ast.Type %t130, ptr %a114 store %S.ast.Type %t131, ptr %a132 call void @finch.drop.S_ast_Type(ptr %a132) - br label %endif5214 -endif5214: + br label %endif5358 +endif5358: %t133 = getelementptr inbounds %S.gen.Ref, ptr %a13, i32 0, i32 0 %t134 = load i1, ptr %t133 - br label %logic.from5217 -logic.from5217: - br i1 %t134, label %logic.rhs5218, label %logic.end5219 -logic.rhs5218: + br label %logic.from5361 +logic.from5361: + br i1 %t134, label %logic.rhs5362, label %logic.end5363 +logic.rhs5362: %t135 = load ptr, ptr %a1 %t136 = load %S.ast.Type, ptr %a114 %t137 = call i1 @finch.gen.owning(ptr %t135, %S.ast.Type %t136) - br label %logic.rend5220 -logic.rend5220: - br label %logic.end5219 -logic.end5219: - %t138 = phi i1 [ false, %logic.from5217 ], [ %t137, %logic.rend5220 ] - br label %logic.from5221 -logic.from5221: - br i1 %t138, label %logic.rhs5222, label %logic.end5223 -logic.rhs5222: + br label %logic.rend5364 +logic.rend5364: + br label %logic.end5363 +logic.end5363: + %t138 = phi i1 [ false, %logic.from5361 ], [ %t137, %logic.rend5364 ] + br label %logic.from5365 +logic.from5365: + br i1 %t138, label %logic.rhs5366, label %logic.end5367 +logic.rhs5366: %t139 = load ptr, ptr %a1 %t140 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t141 = load { ptr, i64, i64 }, ptr %t140 %t142 = extractvalue { ptr, i64, i64 } %t141, 1 %t143 = icmp uge i64 0, %t142 - br i1 %t143, label %range5224, label %inrange5225 -range5224: - call void @finch_panic_index(ptr @.str.3300, i64 2530, i64 0, i64 %t142) + br i1 %t143, label %range5368, label %inrange5369 +range5368: + call void @finch_panic_index(ptr @.str.3385, i64 2611, i64 0, i64 %t142) unreachable -inrange5225: +inrange5369: %t144 = extractvalue { ptr, i64, i64 } %t141, 0 %t145 = getelementptr inbounds %S.ast.Node, ptr %t144, i64 0 %t146 = load %S.ast.Node, ptr %t145 @@ -52821,40 +54469,40 @@ inrange5225: %t149 = load { ptr, i64, i64 }, ptr %t148 %t150 = extractvalue { ptr, i64, i64 } %t149, 1 %t151 = icmp uge i64 1, %t150 - br i1 %t151, label %range5226, label %inrange5227 -range5226: - call void @finch_panic_index(ptr @.str.3301, i64 2530, i64 1, i64 %t150) + br i1 %t151, label %range5370, label %inrange5371 +range5370: + call void @finch_panic_index(ptr @.str.3386, i64 2611, i64 1, i64 %t150) unreachable -inrange5227: +inrange5371: %t152 = extractvalue { ptr, i64, i64 } %t149, 0 %t153 = getelementptr inbounds %S.ast.Node, ptr %t152, i64 1 %t154 = load %S.ast.Node, ptr %t153 %t155 = call i1 @finch.gen.mutates(ptr %t139, { ptr, i64, i64 } %t147, %S.ast.Node %t154) store { ptr, i64, i64 } %t147, ptr %a156 call void @finch_str_drop(ptr %a156) - br label %logic.rend5228 -logic.rend5228: - br label %logic.end5223 -logic.end5223: - %t157 = phi i1 [ false, %logic.from5221 ], [ %t155, %logic.rend5228 ] + br label %logic.rend5372 +logic.rend5372: + br label %logic.end5367 +logic.end5367: + %t157 = phi i1 [ false, %logic.from5365 ], [ %t155, %logic.rend5372 ] store i1 %t157, ptr %a158 %t159 = load ptr, ptr %a1 - %t160 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t159, { ptr, i64, i64 } { ptr @.str.3302, i64 3, i64 0 }) + %t160 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t159, { ptr, i64, i64 } { ptr @.str.3387, i64 3, i64 0 }) store { ptr, i64, i64 } %t160, ptr %a161 %t162 = load ptr, ptr %a1 %t163 = load { ptr, i64, i64 }, ptr %a161 - call void @finch.gen.store(ptr %t162, { ptr, i64, i64 } { ptr @.str.3303, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.3304, i64 1, i64 0 }, { ptr, i64, i64 } %t163) + call void @finch.gen.store(ptr %t162, { ptr, i64, i64 } { ptr @.str.3388, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.3389, i64 1, i64 0 }, { ptr, i64, i64 } %t163) %t164 = load ptr, ptr %a1 - %t165 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t164, { ptr, i64, i64 } { ptr @.str.3305, i64 9, i64 0 }) + %t165 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t164, { ptr, i64, i64 } { ptr @.str.3390, i64 9, i64 0 }) store { ptr, i64, i64 } %t165, ptr %a166 %t167 = load ptr, ptr %a1 - %t168 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t167, { ptr, i64, i64 } { ptr @.str.3306, i64 9, i64 0 }) + %t168 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t167, { ptr, i64, i64 } { ptr @.str.3391, i64 9, i64 0 }) store { ptr, i64, i64 } %t168, ptr %a169 %t170 = load ptr, ptr %a1 - %t171 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t170, { ptr, i64, i64 } { ptr @.str.3307, i64 9, i64 0 }) + %t171 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t170, { ptr, i64, i64 } { ptr @.str.3392, i64 9, i64 0 }) store { ptr, i64, i64 } %t171, ptr %a172 %t173 = load ptr, ptr %a1 - %t174 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t173, { ptr, i64, i64 } { ptr @.str.3308, i64 8, i64 0 }) + %t174 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t173, { ptr, i64, i64 } { ptr @.str.3393, i64 8, i64 0 }) store { ptr, i64, i64 } %t174, ptr %a175 %t176 = load ptr, ptr %a1 %t177 = load { ptr, i64, i64 }, ptr %a166 @@ -52865,12 +54513,12 @@ logic.end5223: %t180 = load ptr, ptr %a1 %t181 = load ptr, ptr %a1 %t182 = load { ptr, i64, i64 }, ptr %a14 - store { ptr, i64, i64 } { ptr @.str.3310, i64 46, i64 0 }, ptr %a184 + store { ptr, i64, i64 } { ptr @.str.3395, i64 46, i64 0 }, ptr %a184 store { ptr, i64, i64 } %t182, ptr %a185 call void @finch_str_concat(ptr %a183, ptr %a184, ptr %a185) %t186 = load { ptr, i64, i64 }, ptr %a183 store { ptr, i64, i64 } %t186, ptr %a188 - store { ptr, i64, i64 } { ptr @.str.3311, i64 14, i64 0 }, ptr %a189 + store { ptr, i64, i64 } { ptr @.str.3396, i64 14, i64 0 }, ptr %a189 call void @finch_str_concat(ptr %a187, ptr %a188, ptr %a189) store { ptr, i64, i64 } %t186, ptr %a190 call void @finch_str_drop(ptr %a190) @@ -52878,22 +54526,22 @@ logic.end5223: %t192 = call { ptr, i64, i64 } @finch.gen.op(ptr %t181, { ptr, i64, i64 } %t191) store { ptr, i64, i64 } %t191, ptr %a193 call void @finch_str_drop(ptr %a193) - %t194 = call { ptr, i64, i64 } @finch.gen.load(ptr %t180, { ptr, i64, i64 } { ptr @.str.3309, i64 3, i64 0 }, { ptr, i64, i64 } %t192) + %t194 = call { ptr, i64, i64 } @finch.gen.load(ptr %t180, { ptr, i64, i64 } { ptr @.str.3394, i64 3, i64 0 }, { ptr, i64, i64 } %t192) store { ptr, i64, i64 } %t192, ptr %a195 call void @finch_str_drop(ptr %a195) store { ptr, i64, i64 } %t194, ptr %a196 %t197 = load ptr, ptr %a1 %t198 = load { ptr, i64, i64 }, ptr %a161 - %t199 = call { ptr, i64, i64 } @finch.gen.load(ptr %t197, { ptr, i64, i64 } { ptr @.str.3312, i64 3, i64 0 }, { ptr, i64, i64 } %t198) + %t199 = call { ptr, i64, i64 } @finch.gen.load(ptr %t197, { ptr, i64, i64 } { ptr @.str.3397, i64 3, i64 0 }, { ptr, i64, i64 } %t198) store { ptr, i64, i64 } %t199, ptr %a200 %t201 = load ptr, ptr %a1 %t202 = load { ptr, i64, i64 }, ptr %a200 - store { ptr, i64, i64 } { ptr @.str.3313, i64 13, i64 0 }, ptr %a204 + store { ptr, i64, i64 } { ptr @.str.3398, i64 13, i64 0 }, ptr %a204 store { ptr, i64, i64 } %t202, ptr %a205 call void @finch_str_concat(ptr %a203, ptr %a204, ptr %a205) %t206 = load { ptr, i64, i64 }, ptr %a203 store { ptr, i64, i64 } %t206, ptr %a208 - store { ptr, i64, i64 } { ptr @.str.3314, i64 2, i64 0 }, ptr %a209 + store { ptr, i64, i64 } { ptr @.str.3399, i64 2, i64 0 }, ptr %a209 call void @finch_str_concat(ptr %a207, ptr %a208, ptr %a209) store { ptr, i64, i64 } %t206, ptr %a210 call void @finch_str_drop(ptr %a210) @@ -52919,20 +54567,20 @@ logic.end5223: call void @finch.gen.label(ptr %t225, { ptr, i64, i64 } %t226) %t227 = load ptr, ptr %a1 %t228 = load { ptr, i64, i64 }, ptr %a14 - %t229 = call { ptr, i64, i64 } @finch.gen.load(ptr %t227, { ptr, i64, i64 } { ptr @.str.3315, i64 3, i64 0 }, { ptr, i64, i64 } %t228) + %t229 = call { ptr, i64, i64 } @finch.gen.load(ptr %t227, { ptr, i64, i64 } { ptr @.str.3400, i64 3, i64 0 }, { ptr, i64, i64 } %t228) store { ptr, i64, i64 } %t229, ptr %a230 %t231 = load ptr, ptr %a1 %t232 = load ptr, ptr %a1 %t233 = load %S.ast.Type, ptr %a114 %t234 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t232, %S.ast.Type %t233) - store { ptr, i64, i64 } { ptr @.str.3316, i64 23, i64 0 }, ptr %a236 + store { ptr, i64, i64 } { ptr @.str.3401, i64 23, i64 0 }, ptr %a236 store { ptr, i64, i64 } %t234, ptr %a237 call void @finch_str_concat(ptr %a235, ptr %a236, ptr %a237) store { ptr, i64, i64 } %t234, ptr %a238 call void @finch_str_drop(ptr %a238) %t239 = load { ptr, i64, i64 }, ptr %a235 store { ptr, i64, i64 } %t239, ptr %a241 - store { ptr, i64, i64 } { ptr @.str.3317, i64 6, i64 0 }, ptr %a242 + store { ptr, i64, i64 } { ptr @.str.3402, i64 6, i64 0 }, ptr %a242 call void @finch_str_concat(ptr %a240, ptr %a241, ptr %a242) store { ptr, i64, i64 } %t239, ptr %a243 call void @finch_str_drop(ptr %a243) @@ -52945,7 +54593,7 @@ logic.end5223: call void @finch_str_drop(ptr %a249) %t250 = load { ptr, i64, i64 }, ptr %a246 store { ptr, i64, i64 } %t250, ptr %a252 - store { ptr, i64, i64 } { ptr @.str.3318, i64 6, i64 0 }, ptr %a253 + store { ptr, i64, i64 } { ptr @.str.3403, i64 6, i64 0 }, ptr %a253 call void @finch_str_concat(ptr %a251, ptr %a252, ptr %a253) store { ptr, i64, i64 } %t250, ptr %a254 call void @finch_str_drop(ptr %a254) @@ -52971,8 +54619,8 @@ logic.end5223: call void @finch_str_drop(ptr %a271) store { ptr, i64, i64 } %t270, ptr %a272 %t273 = load i1, ptr %a158 - br i1 %t273, label %then5229, label %endif5231 -then5229: + br i1 %t273, label %then5373, label %endif5375 +then5373: %t274 = load ptr, ptr %a1 %t275 = load { ptr, i64, i64 }, ptr %a272 %t276 = load %S.ast.Type, ptr %a114 @@ -52981,15 +54629,15 @@ then5229: store { ptr, i64, i64 } %t277, ptr %a272 store { ptr, i64, i64 } %t278, ptr %a279 call void @finch_str_drop(ptr %a279) - br label %endif5231 -endif5231: + br label %endif5375 +endif5375: %t280 = load ptr, ptr %a1 %t281 = icmp eq ptr %t280, null - br i1 %t281, label %panic5232, label %ok5233 -panic5232: - call void @finch_panic(ptr @.str.3319, i64 2550, ptr @.str.3320) + br i1 %t281, label %panic5376, label %ok5377 +panic5376: + call void @finch_panic(ptr @.str.3404, i64 2631, ptr @.str.3405) unreachable -ok5233: +ok5377: %t282 = getelementptr inbounds %S.gen.Gen, ptr %t280, i32 0, i32 12 %t283 = getelementptr inbounds { ptr, i64, i64 }, ptr %t282, i32 0, i32 1 %t284 = load { ptr, i64, i64 }, ptr %a172 @@ -53004,22 +54652,22 @@ ok5233: %t293 = insertvalue %S.gen.Loop %t288, { ptr, i64, i64 } %t292, 1 %t294 = load ptr, ptr %a1 %t295 = icmp eq ptr %t294, null - br i1 %t295, label %panic5234, label %ok5235 -panic5234: - call void @finch_panic(ptr @.str.3321, i64 2550, ptr @.str.3322) + br i1 %t295, label %panic5378, label %ok5379 +panic5378: + call void @finch_panic(ptr @.str.3406, i64 2631, ptr @.str.3407) unreachable -ok5235: +ok5379: %t296 = getelementptr inbounds %S.gen.Gen, ptr %t294, i32 0, i32 10 %t297 = getelementptr inbounds { ptr, i64, i64 }, ptr %t296, i32 0, i32 1 %t298 = load i64, ptr %t297 %t299 = insertvalue %S.gen.Loop %t293, i64 %t298, 2 %t300 = load ptr, ptr %a1 %t301 = icmp eq ptr %t300, null - br i1 %t301, label %panic5236, label %ok5237 -panic5236: - call void @finch_panic(ptr @.str.3323, i64 2550, ptr @.str.3324) + br i1 %t301, label %panic5380, label %ok5381 +panic5380: + call void @finch_panic(ptr @.str.3408, i64 2631, ptr @.str.3409) unreachable -ok5237: +ok5381: %t302 = getelementptr inbounds %S.gen.Gen, ptr %t300, i32 0, i32 11 %t303 = getelementptr inbounds { ptr, i64, i64 }, ptr %t302, i32 0, i32 1 %t304 = load i64, ptr %t303 @@ -53043,13 +54691,13 @@ ok5237: %t318 = getelementptr inbounds { ptr, i64, i64 }, ptr %t317, i32 0, i32 1 %t319 = load i64, ptr %t318 %t320 = icmp sgt i64 %t319, 0 - br i1 %t320, label %then5238, label %endif5240 -then5238: + br i1 %t320, label %then5382, label %endif5384 +then5382: %t321 = load ptr, ptr %a1 %t322 = load %S.ast.Node, ptr %a2 %t323 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t324 = load { ptr, i64, i64 }, ptr %t323 - %t325 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3325, i64 3, i64 0 }) + %t325 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3410, i64 3, i64 0 }) %t326 = load { ptr, i64, i64 }, ptr %a200 %t327 = call { ptr, i64, i64 } @finch.gen.addVar(ptr %t321, %S.ast.Node %t322, { ptr, i64, i64 } %t324, %S.ast.Type %t325, { ptr, i64, i64 } %t326, i1 true, i1 false) store %S.ast.Type %t325, ptr %a328 @@ -53065,8 +54713,8 @@ then5238: store { ptr, i64, i64 } %t334, ptr %a316 store { ptr, i64, i64 } %t335, ptr %a336 call void @finch_str_drop(ptr %a336) - br label %endif5240 -endif5240: + br label %endif5384 +endif5384: %t337 = load ptr, ptr %a1 %t338 = load %S.ast.Node, ptr %a2 %t339 = load { ptr, i64, i64 }, ptr %a316 @@ -53081,11 +54729,11 @@ endif5240: %t347 = load { ptr, i64, i64 }, ptr %t346 %t348 = extractvalue { ptr, i64, i64 } %t347, 1 %t349 = icmp uge i64 1, %t348 - br i1 %t349, label %range5241, label %inrange5242 -range5241: - call void @finch_panic_index(ptr @.str.3326, i64 2558, i64 1, i64 %t348) + br i1 %t349, label %range5385, label %inrange5386 +range5385: + call void @finch_panic_index(ptr @.str.3411, i64 2639, i64 1, i64 %t348) unreachable -inrange5242: +inrange5386: %t350 = extractvalue { ptr, i64, i64 } %t347, 0 %t351 = getelementptr inbounds %S.ast.Node, ptr %t350, i64 1 %t352 = load %S.ast.Node, ptr %t351 @@ -53094,20 +54742,20 @@ inrange5242: call void @finch.gen.popScope(ptr %t353) %t354 = load ptr, ptr %a1 %t355 = icmp eq ptr %t354, null - br i1 %t355, label %panic5243, label %ok5244 -panic5243: - call void @finch_panic(ptr @.str.3327, i64 2560, ptr @.str.3328) + br i1 %t355, label %panic5387, label %ok5388 +panic5387: + call void @finch_panic(ptr @.str.3412, i64 2641, ptr @.str.3413) unreachable -ok5244: +ok5388: %t356 = getelementptr inbounds %S.gen.Gen, ptr %t354, i32 0, i32 12 %t357 = getelementptr inbounds { ptr, i64, i64 }, ptr %t356, i32 0, i32 1 %t358 = load i64, ptr %t357 %t359 = icmp eq i64 %t358, 0 - br i1 %t359, label %panic5245, label %ok5246 -panic5245: - call void @finch_panic(ptr @.str.3329, i64 2560, ptr @.str.3330) + br i1 %t359, label %panic5389, label %ok5390 +panic5389: + call void @finch_panic(ptr @.str.3414, i64 2641, ptr @.str.3415) unreachable -ok5246: +ok5390: %t360 = sub i64 %t358, 1 %t361 = load ptr, ptr %t356 %t362 = getelementptr inbounds %S.gen.Loop, ptr %t361, i64 %t360 @@ -53123,17 +54771,17 @@ ok5246: call void @finch.gen.label(ptr %t367, { ptr, i64, i64 } %t368) %t369 = load ptr, ptr %a1 %t370 = load { ptr, i64, i64 }, ptr %a161 - %t371 = call { ptr, i64, i64 } @finch.gen.load(ptr %t369, { ptr, i64, i64 } { ptr @.str.3331, i64 3, i64 0 }, { ptr, i64, i64 } %t370) + %t371 = call { ptr, i64, i64 } @finch.gen.load(ptr %t369, { ptr, i64, i64 } { ptr @.str.3416, i64 3, i64 0 }, { ptr, i64, i64 } %t370) store { ptr, i64, i64 } %t371, ptr %a372 %t373 = load ptr, ptr %a1 %t374 = load ptr, ptr %a1 %t375 = load { ptr, i64, i64 }, ptr %a372 - store { ptr, i64, i64 } { ptr @.str.3333, i64 8, i64 0 }, ptr %a377 + store { ptr, i64, i64 } { ptr @.str.3418, i64 8, i64 0 }, ptr %a377 store { ptr, i64, i64 } %t375, ptr %a378 call void @finch_str_concat(ptr %a376, ptr %a377, ptr %a378) %t379 = load { ptr, i64, i64 }, ptr %a376 store { ptr, i64, i64 } %t379, ptr %a381 - store { ptr, i64, i64 } { ptr @.str.3334, i64 3, i64 0 }, ptr %a382 + store { ptr, i64, i64 } { ptr @.str.3419, i64 3, i64 0 }, ptr %a382 call void @finch_str_concat(ptr %a380, ptr %a381, ptr %a382) store { ptr, i64, i64 } %t379, ptr %a383 call void @finch_str_drop(ptr %a383) @@ -53142,7 +54790,7 @@ ok5246: store { ptr, i64, i64 } %t384, ptr %a386 call void @finch_str_drop(ptr %a386) %t387 = load { ptr, i64, i64 }, ptr %a161 - call void @finch.gen.store(ptr %t373, { ptr, i64, i64 } { ptr @.str.3332, i64 3, i64 0 }, { ptr, i64, i64 } %t385, { ptr, i64, i64 } %t387) + call void @finch.gen.store(ptr %t373, { ptr, i64, i64 } { ptr @.str.3417, i64 3, i64 0 }, { ptr, i64, i64 } %t385, { ptr, i64, i64 } %t387) store { ptr, i64, i64 } %t385, ptr %a388 call void @finch_str_drop(ptr %a388) %t389 = load ptr, ptr %a1 @@ -53297,88 +54945,88 @@ entry: store %S.ast.Node %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic5247, label %ok5248 -panic5247: - call void @finch_panic(ptr @.str.3335, i64 2571, ptr @.str.3336) + br i1 %t4, label %panic5391, label %ok5392 +panic5391: + call void @finch_panic(ptr @.str.3420, i64 2652, ptr @.str.3421) unreachable -ok5248: - %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 45 +ok5392: + %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 46 %t6 = load i64, ptr %t5 %t7 = icmp sgt i64 %t6, 0 - br i1 %t7, label %then5249, label %endif5251 -then5249: + br i1 %t7, label %then5393, label %endif5395 +then5393: %t8 = load ptr, ptr %a1 %t9 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t8, %S.ast.Node %t9, { ptr, i64, i64 } { ptr @.str.3337, i64 33, i64 0 }) - br label %endif5251 -endif5251: + call void @finch.gen.fail(ptr %t8, %S.ast.Node %t9, { ptr, i64, i64 } { ptr @.str.3422, i64 33, i64 0 }) + br label %endif5395 +endif5395: %t10 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %t10, i32 0, i32 1 %t12 = load i64, ptr %t11 %t13 = icmp sgt i64 %t12, 0 - br label %logic.from5252 -logic.from5252: - br i1 %t13, label %logic.rhs5253, label %logic.end5254 -logic.rhs5253: + br label %logic.from5396 +logic.from5396: + br i1 %t13, label %logic.rhs5397, label %logic.end5398 +logic.rhs5397: %t14 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t15 = load { ptr, i64, i64 }, ptr %t14 %t16 = extractvalue { ptr, i64, i64 } %t15, 1 %t17 = icmp uge i64 0, %t16 - br i1 %t17, label %range5255, label %inrange5256 -range5255: - call void @finch_panic_index(ptr @.str.3338, i64 2575, i64 0, i64 %t16) + br i1 %t17, label %range5399, label %inrange5400 +range5399: + call void @finch_panic_index(ptr @.str.3423, i64 2656, i64 0, i64 %t16) unreachable -inrange5256: +inrange5400: %t18 = extractvalue { ptr, i64, i64 } %t15, 0 %t19 = getelementptr inbounds %S.ast.Node, ptr %t18, i64 0 %t20 = getelementptr inbounds %S.ast.Node, ptr %t19, i32 0, i32 0 %t21 = load { ptr, i64, i64 }, ptr %t20 store { ptr, i64, i64 } %t21, ptr %a22 - store { ptr, i64, i64 } { ptr @.str.3339, i64 4, i64 0 }, ptr %a23 + store { ptr, i64, i64 } { ptr @.str.3424, i64 4, i64 0 }, ptr %a23 %t24 = call i32 @finch_str_eq(ptr %a22, ptr %a23) %t25 = icmp ne i32 %t24, 0 - br label %logic.rend5257 -logic.rend5257: - br label %logic.end5254 -logic.end5254: - %t26 = phi i1 [ false, %logic.from5252 ], [ %t25, %logic.rend5257 ] - br label %logic.from5258 -logic.from5258: - br i1 %t26, label %logic.rhs5259, label %logic.end5260 -logic.rhs5259: + br label %logic.rend5401 +logic.rend5401: + br label %logic.end5398 +logic.end5398: + %t26 = phi i1 [ false, %logic.from5396 ], [ %t25, %logic.rend5401 ] + br label %logic.from5402 +logic.from5402: + br i1 %t26, label %logic.rhs5403, label %logic.end5404 +logic.rhs5403: %t27 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t28 = load { ptr, i64, i64 }, ptr %t27 %t29 = extractvalue { ptr, i64, i64 } %t28, 1 %t30 = icmp uge i64 0, %t29 - br i1 %t30, label %range5261, label %inrange5262 -range5261: - call void @finch_panic_index(ptr @.str.3340, i64 2575, i64 0, i64 %t29) + br i1 %t30, label %range5405, label %inrange5406 +range5405: + call void @finch_panic_index(ptr @.str.3425, i64 2656, i64 0, i64 %t29) unreachable -inrange5262: +inrange5406: %t31 = extractvalue { ptr, i64, i64 } %t28, 0 %t32 = getelementptr inbounds %S.ast.Node, ptr %t31, i64 0 %t33 = getelementptr inbounds %S.ast.Node, ptr %t32, i32 0, i32 1 %t34 = load { ptr, i64, i64 }, ptr %t33 store { ptr, i64, i64 } %t34, ptr %a35 - store { ptr, i64, i64 } { ptr @.str.3341, i64 5, i64 0 }, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.3426, i64 5, i64 0 }, ptr %a36 %t37 = call i32 @finch_str_eq(ptr %a35, ptr %a36) %t38 = icmp ne i32 %t37, 0 - br label %logic.rend5263 -logic.rend5263: - br label %logic.end5260 -logic.end5260: - %t39 = phi i1 [ false, %logic.from5258 ], [ %t38, %logic.rend5263 ] - br i1 %t39, label %then5264, label %endif5266 -then5264: + br label %logic.rend5407 +logic.rend5407: + br label %logic.end5404 +logic.end5404: + %t39 = phi i1 [ false, %logic.from5402 ], [ %t38, %logic.rend5407 ] + br i1 %t39, label %then5408, label %endif5410 +then5408: %t40 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t41 = load { ptr, i64, i64 }, ptr %t40 %t42 = extractvalue { ptr, i64, i64 } %t41, 1 %t43 = icmp uge i64 0, %t42 - br i1 %t43, label %range5267, label %inrange5268 -range5267: - call void @finch_panic_index(ptr @.str.3342, i64 2576, i64 0, i64 %t42) + br i1 %t43, label %range5411, label %inrange5412 +range5411: + call void @finch_panic_index(ptr @.str.3427, i64 2657, i64 0, i64 %t42) unreachable -inrange5268: +inrange5412: %t44 = extractvalue { ptr, i64, i64 } %t41, 0 %t45 = getelementptr inbounds %S.ast.Node, ptr %t44, i64 0 %t46 = load %S.ast.Node, ptr %t45 @@ -53388,48 +55036,48 @@ inrange5268: store %S.ast.Node %t49, ptr %a50 %t51 = load ptr, ptr %a1 %t52 = icmp eq ptr %t51, null - br i1 %t52, label %panic5269, label %ok5270 -panic5269: - call void @finch_panic(ptr @.str.3343, i64 2577, ptr @.str.3344) + br i1 %t52, label %panic5413, label %ok5414 +panic5413: + call void @finch_panic(ptr @.str.3428, i64 2658, ptr @.str.3429) unreachable -ok5270: +ok5414: %t53 = getelementptr inbounds %S.gen.Gen, ptr %t51, i32 0, i32 13 %t54 = getelementptr inbounds %S.gen.FnSig, ptr %t53, i32 0, i32 9 %t55 = load i1, ptr %t54 %t56 = xor i1 %t55, true - br i1 %t56, label %then5271, label %endif5273 -then5271: - store { ptr, i64, i64 } { ptr @.str.3345, i64 1, i64 0 }, ptr %a57 + br i1 %t56, label %then5415, label %endif5417 +then5415: + store { ptr, i64, i64 } { ptr @.str.3430, i64 1, i64 0 }, ptr %a57 %t58 = load ptr, ptr %a1 %t59 = icmp eq ptr %t58, null - br i1 %t59, label %panic5274, label %ok5275 -panic5274: - call void @finch_panic(ptr @.str.3346, i64 2579, ptr @.str.3347) + br i1 %t59, label %panic5418, label %ok5419 +panic5418: + call void @finch_panic(ptr @.str.3431, i64 2660, ptr @.str.3432) unreachable -ok5275: +ok5419: %t60 = getelementptr inbounds %S.gen.Gen, ptr %t58, i32 0, i32 13 %t61 = getelementptr inbounds %S.gen.FnSig, ptr %t60, i32 0, i32 12 %t62 = getelementptr inbounds %S.ast.Type, ptr %t61, i32 0, i32 0 %t63 = load { ptr, i64, i64 }, ptr %t62 store { ptr, i64, i64 } %t63, ptr %a64 - store { ptr, i64, i64 } { ptr @.str.3348, i64 4, i64 0 }, ptr %a65 + store { ptr, i64, i64 } { ptr @.str.3433, i64 4, i64 0 }, ptr %a65 %t66 = call i32 @finch_str_eq(ptr %a64, ptr %a65) %t67 = icmp eq i32 %t66, 0 - br i1 %t67, label %then5276, label %endif5278 -then5276: + br i1 %t67, label %then5420, label %endif5422 +then5420: %t68 = load ptr, ptr %a1 %t69 = icmp eq ptr %t68, null - br i1 %t69, label %panic5279, label %ok5280 -panic5279: - call void @finch_panic(ptr @.str.3349, i64 2580, ptr @.str.3350) + br i1 %t69, label %panic5423, label %ok5424 +panic5423: + call void @finch_panic(ptr @.str.3434, i64 2661, ptr @.str.3435) unreachable -ok5280: +ok5424: %t70 = getelementptr inbounds %S.gen.Gen, ptr %t68, i32 0, i32 13 %t71 = getelementptr inbounds %S.gen.FnSig, ptr %t70, i32 0, i32 12 %t72 = load %S.ast.Type, ptr %t71 %t73 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t72) store { ptr, i64, i64 } %t73, ptr %a75 - store { ptr, i64, i64 } { ptr @.str.3351, i64 1, i64 0 }, ptr %a76 + store { ptr, i64, i64 } { ptr @.str.3436, i64 1, i64 0 }, ptr %a76 call void @finch_str_concat(ptr %a74, ptr %a75, ptr %a76) store { ptr, i64, i64 } %t73, ptr %a77 call void @finch_str_drop(ptr %a77) @@ -53438,26 +55086,26 @@ ok5280: store { ptr, i64, i64 } %t78, ptr %a57 store { ptr, i64, i64 } %t79, ptr %a80 call void @finch_str_drop(ptr %a80) - br label %endif5278 -endif5278: + br label %endif5422 +endif5422: %t81 = load ptr, ptr %a1 %t82 = load %S.ast.Node, ptr %a50 %t83 = load ptr, ptr %a1 %t84 = icmp eq ptr %t83, null - br i1 %t84, label %panic5281, label %ok5282 -panic5281: - call void @finch_panic(ptr @.str.3353, i64 2582, ptr @.str.3354) + br i1 %t84, label %panic5425, label %ok5426 +panic5425: + call void @finch_panic(ptr @.str.3438, i64 2663, ptr @.str.3439) unreachable -ok5282: +ok5426: %t85 = getelementptr inbounds %S.gen.Gen, ptr %t83, i32 0, i32 13 %t86 = getelementptr inbounds %S.gen.FnSig, ptr %t85, i32 0, i32 1 %t87 = load { ptr, i64, i64 }, ptr %t86 - store { ptr, i64, i64 } { ptr @.str.3352, i64 1, i64 0 }, ptr %a89 + store { ptr, i64, i64 } { ptr @.str.3437, i64 1, i64 0 }, ptr %a89 store { ptr, i64, i64 } %t87, ptr %a90 call void @finch_str_concat(ptr %a88, ptr %a89, ptr %a90) %t91 = load { ptr, i64, i64 }, ptr %a88 store { ptr, i64, i64 } %t91, ptr %a93 - store { ptr, i64, i64 } { ptr @.str.3355, i64 64, i64 0 }, ptr %a94 + store { ptr, i64, i64 } { ptr @.str.3440, i64 64, i64 0 }, ptr %a94 call void @finch_str_concat(ptr %a92, ptr %a93, ptr %a94) store { ptr, i64, i64 } %t91, ptr %a95 call void @finch_str_drop(ptr %a95) @@ -53470,7 +55118,7 @@ ok5282: call void @finch_str_drop(ptr %a101) %t102 = load { ptr, i64, i64 }, ptr %a98 store { ptr, i64, i64 } %t102, ptr %a104 - store { ptr, i64, i64 } { ptr @.str.3356, i64 1, i64 0 }, ptr %a105 + store { ptr, i64, i64 } { ptr @.str.3441, i64 1, i64 0 }, ptr %a105 call void @finch_str_concat(ptr %a103, ptr %a104, ptr %a105) store { ptr, i64, i64 } %t102, ptr %a106 call void @finch_str_drop(ptr %a106) @@ -53479,40 +55127,40 @@ ok5282: store { ptr, i64, i64 } %t107, ptr %a108 call void @finch_str_drop(ptr %a108) call void @finch_str_drop(ptr %a57) - br label %endif5273 -endif5273: + br label %endif5417 +endif5417: %t109 = load ptr, ptr %a1 %t110 = load %S.ast.Node, ptr %a50 - call void @finch.gen.checkArgs(ptr %t109, %S.ast.Node %t110, i64 0, i64 1, { ptr, i64, i64 } { ptr @.str.3357, i64 5, i64 0 }) + call void @finch.gen.checkArgs(ptr %t109, %S.ast.Node %t110, i64 0, i64 1, { ptr, i64, i64 } { ptr @.str.3442, i64 5, i64 0 }) %t111 = load ptr, ptr %a1 %t112 = load ptr, ptr %a1 %t113 = getelementptr inbounds %S.ast.Node, ptr %a50, i32 0, i32 9 %t114 = load { ptr, i64, i64 }, ptr %t113 %t115 = extractvalue { ptr, i64, i64 } %t114, 1 %t116 = icmp uge i64 0, %t115 - br i1 %t116, label %range5283, label %inrange5284 -range5283: - call void @finch_panic_index(ptr @.str.3358, i64 2585, i64 0, i64 %t115) + br i1 %t116, label %range5427, label %inrange5428 +range5427: + call void @finch_panic_index(ptr @.str.3443, i64 2666, i64 0, i64 %t115) unreachable -inrange5284: +inrange5428: %t117 = extractvalue { ptr, i64, i64 } %t114, 0 %t118 = getelementptr inbounds %S.ast.Node, ptr %t117, i64 0 %t119 = load %S.ast.Node, ptr %t118 %t120 = call %S.gen.Val @finch.gen.expr(ptr %t112, %S.ast.Node %t119) - %t121 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3359, i64 3, i64 0 }) + %t121 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3444, i64 3, i64 0 }) %t122 = getelementptr inbounds %S.ast.Node, ptr %a50, i32 0, i32 9 %t123 = load { ptr, i64, i64 }, ptr %t122 %t124 = extractvalue { ptr, i64, i64 } %t123, 1 %t125 = icmp uge i64 0, %t124 - br i1 %t125, label %range5285, label %inrange5286 -range5285: - call void @finch_panic_index(ptr @.str.3360, i64 2585, i64 0, i64 %t124) + br i1 %t125, label %range5429, label %inrange5430 +range5429: + call void @finch_panic_index(ptr @.str.3445, i64 2666, i64 0, i64 %t124) unreachable -inrange5286: +inrange5430: %t126 = extractvalue { ptr, i64, i64 } %t123, 0 %t127 = getelementptr inbounds %S.ast.Node, ptr %t126, i64 0 %t128 = load %S.ast.Node, ptr %t127 - %t129 = call %S.gen.Val @finch.gen.coerce(ptr %t111, %S.gen.Val %t120, %S.ast.Type %t121, %S.ast.Node %t128, { ptr, i64, i64 } { ptr @.str.3361, i64 17, i64 0 }) + %t129 = call %S.gen.Val @finch.gen.coerce(ptr %t111, %S.gen.Val %t120, %S.ast.Type %t121, %S.ast.Node %t128, { ptr, i64, i64 } { ptr @.str.3446, i64 17, i64 0 }) store %S.gen.Val %t120, ptr %a130 call void @finch.drop.S_gen_Val(ptr %a130) store %S.ast.Type %t121, ptr %a131 @@ -53530,22 +55178,22 @@ inrange5286: %t140 = load ptr, ptr %a1 %t141 = load ptr, ptr %a1 %t142 = icmp eq ptr %t141, null - br i1 %t142, label %panic5287, label %ok5288 -panic5287: - call void @finch_panic(ptr @.str.3363, i64 2589, ptr @.str.3364) + br i1 %t142, label %panic5431, label %ok5432 +panic5431: + call void @finch_panic(ptr @.str.3448, i64 2670, ptr @.str.3449) unreachable -ok5288: +ok5432: %t143 = getelementptr inbounds %S.gen.Gen, ptr %t141, i32 0, i32 13 %t144 = load %S.gen.FnSig, ptr %t143 %t145 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t140, %S.gen.FnSig %t144) - store { ptr, i64, i64 } { ptr @.str.3362, i64 4, i64 0 }, ptr %a147 + store { ptr, i64, i64 } { ptr @.str.3447, i64 4, i64 0 }, ptr %a147 store { ptr, i64, i64 } %t145, ptr %a148 call void @finch_str_concat(ptr %a146, ptr %a147, ptr %a148) store { ptr, i64, i64 } %t145, ptr %a149 call void @finch_str_drop(ptr %a149) %t150 = load { ptr, i64, i64 }, ptr %a146 store { ptr, i64, i64 } %t150, ptr %a152 - store { ptr, i64, i64 } { ptr @.str.3365, i64 1, i64 0 }, ptr %a153 + store { ptr, i64, i64 } { ptr @.str.3450, i64 1, i64 0 }, ptr %a153 call void @finch_str_concat(ptr %a151, ptr %a152, ptr %a153) store { ptr, i64, i64 } %t150, ptr %a154 call void @finch_str_drop(ptr %a154) @@ -53554,22 +55202,22 @@ ok5288: %t157 = load ptr, ptr %a1 %t158 = load ptr, ptr %a1 %t159 = icmp eq ptr %t158, null - br i1 %t159, label %panic5289, label %ok5290 -panic5289: - call void @finch_panic(ptr @.str.3367, i64 2589, ptr @.str.3368) + br i1 %t159, label %panic5433, label %ok5434 +panic5433: + call void @finch_panic(ptr @.str.3452, i64 2670, ptr @.str.3453) unreachable -ok5290: +ok5434: %t160 = getelementptr inbounds %S.gen.Gen, ptr %t158, i32 0, i32 13 %t161 = load %S.gen.FnSig, ptr %t160 %t162 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t157, %S.gen.FnSig %t161) - store { ptr, i64, i64 } { ptr @.str.3366, i64 12, i64 0 }, ptr %a164 + store { ptr, i64, i64 } { ptr @.str.3451, i64 12, i64 0 }, ptr %a164 store { ptr, i64, i64 } %t162, ptr %a165 call void @finch_str_concat(ptr %a163, ptr %a164, ptr %a165) store { ptr, i64, i64 } %t162, ptr %a166 call void @finch_str_drop(ptr %a166) %t167 = load { ptr, i64, i64 }, ptr %a163 store { ptr, i64, i64 } %t167, ptr %a169 - store { ptr, i64, i64 } { ptr @.str.3369, i64 36, i64 0 }, ptr %a170 + store { ptr, i64, i64 } { ptr @.str.3454, i64 36, i64 0 }, ptr %a170 call void @finch_str_concat(ptr %a168, ptr %a169, ptr %a170) store { ptr, i64, i64 } %t167, ptr %a171 call void @finch_str_drop(ptr %a171) @@ -53582,7 +55230,7 @@ ok5290: call void @finch_str_drop(ptr %a177) %t178 = load { ptr, i64, i64 }, ptr %a174 store { ptr, i64, i64 } %t178, ptr %a180 - store { ptr, i64, i64 } { ptr @.str.3370, i64 3, i64 0 }, ptr %a181 + store { ptr, i64, i64 } { ptr @.str.3455, i64 3, i64 0 }, ptr %a181 call void @finch_str_concat(ptr %a179, ptr %a180, ptr %a181) store { ptr, i64, i64 } %t178, ptr %a182 call void @finch_str_drop(ptr %a182) @@ -53603,70 +55251,70 @@ ok5290: call void @finch_str_drop(ptr %a192) %t193 = load ptr, ptr %a1 %t194 = icmp eq ptr %t193, null - br i1 %t194, label %panic5291, label %ok5292 -panic5291: - call void @finch_panic(ptr @.str.3371, i64 2590, ptr @.str.3372) + br i1 %t194, label %panic5435, label %ok5436 +panic5435: + call void @finch_panic(ptr @.str.3456, i64 2671, ptr @.str.3457) unreachable -ok5292: +ok5436: %t195 = getelementptr inbounds %S.gen.Gen, ptr %t193, i32 0, i32 9 store i1 true, ptr %t195 call void @finch_str_drop(ptr %a136) call void @finch.drop.S_gen_Val(ptr %a132) call void @finch.drop.S_ast_Node(ptr %a50) ret void -endif5266: +endif5410: %t196 = load ptr, ptr %a1 %t197 = icmp eq ptr %t196, null - br i1 %t197, label %panic5293, label %ok5294 -panic5293: - call void @finch_panic(ptr @.str.3373, i64 2593, ptr @.str.3374) + br i1 %t197, label %panic5437, label %ok5438 +panic5437: + call void @finch_panic(ptr @.str.3458, i64 2674, ptr @.str.3459) unreachable -ok5294: +ok5438: %t198 = getelementptr inbounds %S.gen.Gen, ptr %t196, i32 0, i32 13 %t199 = getelementptr inbounds %S.gen.FnSig, ptr %t198, i32 0, i32 12 %t200 = getelementptr inbounds %S.ast.Type, ptr %t199, i32 0, i32 0 %t201 = load { ptr, i64, i64 }, ptr %t200 store { ptr, i64, i64 } %t201, ptr %a202 - store { ptr, i64, i64 } { ptr @.str.3375, i64 4, i64 0 }, ptr %a203 + store { ptr, i64, i64 } { ptr @.str.3460, i64 4, i64 0 }, ptr %a203 %t204 = call i32 @finch_str_eq(ptr %a202, ptr %a203) %t205 = icmp ne i32 %t204, 0 - br i1 %t205, label %then5295, label %endif5297 -then5295: + br i1 %t205, label %then5439, label %endif5441 +then5439: %t206 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t207 = getelementptr inbounds { ptr, i64, i64 }, ptr %t206, i32 0, i32 1 %t208 = load i64, ptr %t207 %t209 = icmp sgt i64 %t208, 0 - br i1 %t209, label %then5298, label %endif5300 -then5298: + br i1 %t209, label %then5442, label %endif5444 +then5442: %t210 = load ptr, ptr %a1 %t211 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t212 = load { ptr, i64, i64 }, ptr %t211 %t213 = extractvalue { ptr, i64, i64 } %t212, 1 %t214 = icmp uge i64 0, %t213 - br i1 %t214, label %range5301, label %inrange5302 -range5301: - call void @finch_panic_index(ptr @.str.3376, i64 2595, i64 0, i64 %t213) + br i1 %t214, label %range5445, label %inrange5446 +range5445: + call void @finch_panic_index(ptr @.str.3461, i64 2676, i64 0, i64 %t213) unreachable -inrange5302: +inrange5446: %t215 = extractvalue { ptr, i64, i64 } %t212, 0 %t216 = getelementptr inbounds %S.ast.Node, ptr %t215, i64 0 %t217 = load %S.ast.Node, ptr %t216 %t218 = load ptr, ptr %a1 %t219 = icmp eq ptr %t218, null - br i1 %t219, label %panic5303, label %ok5304 -panic5303: - call void @finch_panic(ptr @.str.3378, i64 2595, ptr @.str.3379) + br i1 %t219, label %panic5447, label %ok5448 +panic5447: + call void @finch_panic(ptr @.str.3463, i64 2676, ptr @.str.3464) unreachable -ok5304: +ok5448: %t220 = getelementptr inbounds %S.gen.Gen, ptr %t218, i32 0, i32 13 %t221 = getelementptr inbounds %S.gen.FnSig, ptr %t220, i32 0, i32 1 %t222 = load { ptr, i64, i64 }, ptr %t221 - store { ptr, i64, i64 } { ptr @.str.3377, i64 1, i64 0 }, ptr %a224 + store { ptr, i64, i64 } { ptr @.str.3462, i64 1, i64 0 }, ptr %a224 store { ptr, i64, i64 } %t222, ptr %a225 call void @finch_str_concat(ptr %a223, ptr %a224, ptr %a225) %t226 = load { ptr, i64, i64 }, ptr %a223 store { ptr, i64, i64 } %t226, ptr %a228 - store { ptr, i64, i64 } { ptr @.str.3380, i64 46, i64 0 }, ptr %a229 + store { ptr, i64, i64 } { ptr @.str.3465, i64 46, i64 0 }, ptr %a229 call void @finch_str_concat(ptr %a227, ptr %a228, ptr %a229) store { ptr, i64, i64 } %t226, ptr %a230 call void @finch_str_drop(ptr %a230) @@ -53674,44 +55322,44 @@ ok5304: call void @finch.gen.fail(ptr %t210, %S.ast.Node %t217, { ptr, i64, i64 } %t231) store { ptr, i64, i64 } %t231, ptr %a232 call void @finch_str_drop(ptr %a232) - br label %endif5300 -endif5300: + br label %endif5444 +endif5444: %t233 = load ptr, ptr %a1 call void @finch.gen.dropPending(ptr %t233, i64 0) %t234 = load ptr, ptr %a1 call void @finch.gen.unwind(ptr %t234, i64 0) %t235 = load ptr, ptr %a1 %t236 = icmp eq ptr %t235, null - br i1 %t236, label %panic5305, label %ok5306 -panic5305: - call void @finch_panic(ptr @.str.3381, i64 2599, ptr @.str.3382) + br i1 %t236, label %panic5449, label %ok5450 +panic5449: + call void @finch_panic(ptr @.str.3466, i64 2680, ptr @.str.3467) unreachable -ok5306: +ok5450: %t237 = getelementptr inbounds %S.gen.Gen, ptr %t235, i32 0, i32 13 %t238 = getelementptr inbounds %S.gen.FnSig, ptr %t237, i32 0, i32 9 %t239 = load i1, ptr %t238 - br i1 %t239, label %then5307, label %else5308 -then5307: + br i1 %t239, label %then5451, label %else5452 +then5451: %t240 = load ptr, ptr %a1 %t241 = load ptr, ptr %a1 %t242 = load ptr, ptr %a1 %t243 = icmp eq ptr %t242, null - br i1 %t243, label %panic5310, label %ok5311 -panic5310: - call void @finch_panic(ptr @.str.3384, i64 2600, ptr @.str.3385) + br i1 %t243, label %panic5454, label %ok5455 +panic5454: + call void @finch_panic(ptr @.str.3469, i64 2681, ptr @.str.3470) unreachable -ok5311: +ok5455: %t244 = getelementptr inbounds %S.gen.Gen, ptr %t242, i32 0, i32 13 %t245 = load %S.gen.FnSig, ptr %t244 %t246 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t241, %S.gen.FnSig %t245) - store { ptr, i64, i64 } { ptr @.str.3383, i64 4, i64 0 }, ptr %a248 + store { ptr, i64, i64 } { ptr @.str.3468, i64 4, i64 0 }, ptr %a248 store { ptr, i64, i64 } %t246, ptr %a249 call void @finch_str_concat(ptr %a247, ptr %a248, ptr %a249) store { ptr, i64, i64 } %t246, ptr %a250 call void @finch_str_drop(ptr %a250) %t251 = load { ptr, i64, i64 }, ptr %a247 store { ptr, i64, i64 } %t251, ptr %a253 - store { ptr, i64, i64 } { ptr @.str.3386, i64 53, i64 0 }, ptr %a254 + store { ptr, i64, i64 } { ptr @.str.3471, i64 53, i64 0 }, ptr %a254 call void @finch_str_concat(ptr %a252, ptr %a253, ptr %a254) store { ptr, i64, i64 } %t251, ptr %a255 call void @finch_str_drop(ptr %a255) @@ -53719,58 +55367,58 @@ ok5311: call void @finch.gen.emit(ptr %t240, { ptr, i64, i64 } %t256) store { ptr, i64, i64 } %t256, ptr %a257 call void @finch_str_drop(ptr %a257) - br label %endif5309 -else5308: + br label %endif5453 +else5452: %t258 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t258, { ptr, i64, i64 } { ptr @.str.3387, i64 8, i64 0 }) - br label %endif5309 -endif5309: + call void @finch.gen.emit(ptr %t258, { ptr, i64, i64 } { ptr @.str.3472, i64 8, i64 0 }) + br label %endif5453 +endif5453: %t259 = load ptr, ptr %a1 %t260 = icmp eq ptr %t259, null - br i1 %t260, label %panic5312, label %ok5313 -panic5312: - call void @finch_panic(ptr @.str.3388, i64 2604, ptr @.str.3389) + br i1 %t260, label %panic5456, label %ok5457 +panic5456: + call void @finch_panic(ptr @.str.3473, i64 2685, ptr @.str.3474) unreachable -ok5313: +ok5457: %t261 = getelementptr inbounds %S.gen.Gen, ptr %t259, i32 0, i32 9 store i1 true, ptr %t261 ret void -endif5297: +endif5441: %t262 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t263 = getelementptr inbounds { ptr, i64, i64 }, ptr %t262, i32 0, i32 1 %t264 = load i64, ptr %t263 %t265 = icmp eq i64 %t264, 0 - br i1 %t265, label %then5314, label %endif5316 -then5314: + br i1 %t265, label %then5458, label %endif5460 +then5458: %t266 = load ptr, ptr %a1 %t267 = load %S.ast.Node, ptr %a2 %t268 = load ptr, ptr %a1 %t269 = icmp eq ptr %t268, null - br i1 %t269, label %panic5317, label %ok5318 -panic5317: - call void @finch_panic(ptr @.str.3391, i64 2608, ptr @.str.3392) + br i1 %t269, label %panic5461, label %ok5462 +panic5461: + call void @finch_panic(ptr @.str.3476, i64 2689, ptr @.str.3477) unreachable -ok5318: +ok5462: %t270 = getelementptr inbounds %S.gen.Gen, ptr %t268, i32 0, i32 13 %t271 = getelementptr inbounds %S.gen.FnSig, ptr %t270, i32 0, i32 1 %t272 = load { ptr, i64, i64 }, ptr %t271 - store { ptr, i64, i64 } { ptr @.str.3390, i64 1, i64 0 }, ptr %a274 + store { ptr, i64, i64 } { ptr @.str.3475, i64 1, i64 0 }, ptr %a274 store { ptr, i64, i64 } %t272, ptr %a275 call void @finch_str_concat(ptr %a273, ptr %a274, ptr %a275) %t276 = load { ptr, i64, i64 }, ptr %a273 store { ptr, i64, i64 } %t276, ptr %a278 - store { ptr, i64, i64 } { ptr @.str.3393, i64 14, i64 0 }, ptr %a279 + store { ptr, i64, i64 } { ptr @.str.3478, i64 14, i64 0 }, ptr %a279 call void @finch_str_concat(ptr %a277, ptr %a278, ptr %a279) store { ptr, i64, i64 } %t276, ptr %a280 call void @finch_str_drop(ptr %a280) %t281 = load { ptr, i64, i64 }, ptr %a277 %t282 = load ptr, ptr %a1 %t283 = icmp eq ptr %t282, null - br i1 %t283, label %panic5319, label %ok5320 -panic5319: - call void @finch_panic(ptr @.str.3394, i64 2608, ptr @.str.3395) + br i1 %t283, label %panic5463, label %ok5464 +panic5463: + call void @finch_panic(ptr @.str.3479, i64 2689, ptr @.str.3480) unreachable -ok5320: +ok5464: %t284 = getelementptr inbounds %S.gen.Gen, ptr %t282, i32 0, i32 13 %t285 = getelementptr inbounds %S.gen.FnSig, ptr %t284, i32 0, i32 12 %t286 = load %S.ast.Type, ptr %t285 @@ -53786,36 +55434,36 @@ ok5320: call void @finch.gen.fail(ptr %t266, %S.ast.Node %t267, { ptr, i64, i64 } %t293) store { ptr, i64, i64 } %t293, ptr %a294 call void @finch_str_drop(ptr %a294) - br label %endif5316 -endif5316: + br label %endif5460 +endif5460: %t295 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t296 = load { ptr, i64, i64 }, ptr %t295 %t297 = extractvalue { ptr, i64, i64 } %t296, 1 %t298 = icmp uge i64 0, %t297 - br i1 %t298, label %range5321, label %inrange5322 -range5321: - call void @finch_panic_index(ptr @.str.3396, i64 2611, i64 0, i64 %t297) + br i1 %t298, label %range5465, label %inrange5466 +range5465: + call void @finch_panic_index(ptr @.str.3481, i64 2692, i64 0, i64 %t297) unreachable -inrange5322: +inrange5466: %t299 = extractvalue { ptr, i64, i64 } %t296, 0 %t300 = getelementptr inbounds %S.ast.Node, ptr %t299, i64 0 %t301 = getelementptr inbounds %S.ast.Node, ptr %t300, i32 0, i32 0 %t302 = load { ptr, i64, i64 }, ptr %t301 store { ptr, i64, i64 } %t302, ptr %a303 - store { ptr, i64, i64 } { ptr @.str.3397, i64 3, i64 0 }, ptr %a304 + store { ptr, i64, i64 } { ptr @.str.3482, i64 3, i64 0 }, ptr %a304 %t305 = call i32 @finch_str_eq(ptr %a303, ptr %a304) %t306 = icmp ne i32 %t305, 0 - br i1 %t306, label %then5323, label %endif5325 -then5323: + br i1 %t306, label %then5467, label %endif5469 +then5467: %t307 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t308 = load { ptr, i64, i64 }, ptr %t307 %t309 = extractvalue { ptr, i64, i64 } %t308, 1 %t310 = icmp uge i64 0, %t309 - br i1 %t310, label %range5326, label %inrange5327 -range5326: - call void @finch_panic_index(ptr @.str.3398, i64 2612, i64 0, i64 %t309) + br i1 %t310, label %range5470, label %inrange5471 +range5470: + call void @finch_panic_index(ptr @.str.3483, i64 2693, i64 0, i64 %t309) unreachable -inrange5327: +inrange5471: %t311 = extractvalue { ptr, i64, i64 } %t308, 0 %t312 = getelementptr inbounds %S.ast.Node, ptr %t311, i64 0 %t313 = getelementptr inbounds %S.ast.Node, ptr %t312, i32 0, i32 1 @@ -53826,71 +55474,71 @@ inrange5327: store { ptr, i64, i64 } %t317, ptr %a318 %t319 = load ptr, ptr %a1 %t320 = icmp eq ptr %t319, null - br i1 %t320, label %panic5328, label %ok5329 -panic5328: - call void @finch_panic(ptr @.str.3399, i64 2613, ptr @.str.3400) + br i1 %t320, label %panic5472, label %ok5473 +panic5472: + call void @finch_panic(ptr @.str.3484, i64 2694, ptr @.str.3485) unreachable -ok5329: +ok5473: %t321 = getelementptr inbounds %S.gen.Gen, ptr %t319, i32 0, i32 10 %t322 = getelementptr inbounds { ptr, i64, i64 }, ptr %t321, i32 0, i32 1 %t323 = load i64, ptr %t322 store i64 %t323, ptr %a324 - br label %while.cond5330 -while.cond5330: + br label %while.cond5474 +while.cond5474: %t325 = load i64, ptr %a324 %t326 = icmp sgt i64 %t325, 0 - br i1 %t326, label %while.body5331, label %while.end5332 -while.body5331: + br i1 %t326, label %while.body5475, label %while.end5476 +while.body5475: %t327 = load i64, ptr %a324 %t328 = sub i64 %t327, 1 store i64 %t328, ptr %a324 store i64 -1, ptr %a329 %t330 = load ptr, ptr %a1 %t331 = icmp eq ptr %t330, null - br i1 %t331, label %panic5333, label %ok5334 -panic5333: - call void @finch_panic(ptr @.str.3401, i64 2617, ptr @.str.3402) + br i1 %t331, label %panic5477, label %ok5478 +panic5477: + call void @finch_panic(ptr @.str.3486, i64 2698, ptr @.str.3487) unreachable -ok5334: +ok5478: %t332 = getelementptr inbounds %S.gen.Gen, ptr %t330, i32 0, i32 10 %t333 = load i64, ptr %a324 %t334 = load { ptr, i64, i64 }, ptr %t332 %t335 = extractvalue { ptr, i64, i64 } %t334, 1 %t336 = icmp uge i64 %t333, %t335 - br i1 %t336, label %range5335, label %inrange5336 -range5335: - call void @finch_panic_index(ptr @.str.3403, i64 2617, i64 %t333, i64 %t335) + br i1 %t336, label %range5479, label %inrange5480 +range5479: + call void @finch_panic_index(ptr @.str.3488, i64 2698, i64 %t333, i64 %t335) unreachable -inrange5336: +inrange5480: %t337 = extractvalue { ptr, i64, i64 } %t334, 0 %t338 = getelementptr inbounds %S.gen.Scope, ptr %t337, i64 %t333 %t339 = getelementptr inbounds %S.gen.Scope, ptr %t338, i32 0, i32 0 %t340 = getelementptr inbounds { ptr, i64, i64 }, ptr %t339, i32 0, i32 1 %t341 = load i64, ptr %t340 store i64 0, ptr %a342 - br label %for.cond5337 -for.cond5337: + br label %for.cond5481 +for.cond5481: %t343 = load i64, ptr %a342 %t344 = icmp slt i64 %t343, %t341 - br i1 %t344, label %for.body5338, label %for.end5340 -for.body5338: + br i1 %t344, label %for.body5482, label %for.end5484 +for.body5482: %t345 = load ptr, ptr %a1 %t346 = icmp eq ptr %t345, null - br i1 %t346, label %panic5341, label %ok5342 -panic5341: - call void @finch_panic(ptr @.str.3404, i64 2618, ptr @.str.3405) + br i1 %t346, label %panic5485, label %ok5486 +panic5485: + call void @finch_panic(ptr @.str.3489, i64 2699, ptr @.str.3490) unreachable -ok5342: +ok5486: %t347 = getelementptr inbounds %S.gen.Gen, ptr %t345, i32 0, i32 10 %t348 = load i64, ptr %a324 %t349 = load { ptr, i64, i64 }, ptr %t347 %t350 = extractvalue { ptr, i64, i64 } %t349, 1 %t351 = icmp uge i64 %t348, %t350 - br i1 %t351, label %range5343, label %inrange5344 -range5343: - call void @finch_panic_index(ptr @.str.3406, i64 2618, i64 %t348, i64 %t350) + br i1 %t351, label %range5487, label %inrange5488 +range5487: + call void @finch_panic_index(ptr @.str.3491, i64 2699, i64 %t348, i64 %t350) unreachable -inrange5344: +inrange5488: %t352 = extractvalue { ptr, i64, i64 } %t349, 0 %t353 = getelementptr inbounds %S.gen.Scope, ptr %t352, i64 %t348 %t354 = getelementptr inbounds %S.gen.Scope, ptr %t353, i32 0, i32 0 @@ -53898,11 +55546,11 @@ inrange5344: %t356 = load { ptr, i64, i64 }, ptr %t354 %t357 = extractvalue { ptr, i64, i64 } %t356, 1 %t358 = icmp uge i64 %t355, %t357 - br i1 %t358, label %range5345, label %inrange5346 -range5345: - call void @finch_panic_index(ptr @.str.3407, i64 2618, i64 %t355, i64 %t357) + br i1 %t358, label %range5489, label %inrange5490 +range5489: + call void @finch_panic_index(ptr @.str.3492, i64 2699, i64 %t355, i64 %t357) unreachable -inrange5346: +inrange5490: %t359 = extractvalue { ptr, i64, i64 } %t356, 0 %t360 = getelementptr inbounds %S.gen.Var, ptr %t359, i64 %t355 %t361 = getelementptr inbounds %S.gen.Var, ptr %t360, i32 0, i32 0 @@ -53912,40 +55560,40 @@ inrange5346: store { ptr, i64, i64 } %t363, ptr %a365 %t366 = call i32 @finch_str_eq(ptr %a364, ptr %a365) %t367 = icmp ne i32 %t366, 0 - br label %logic.from5347 -logic.from5347: - br i1 %t367, label %logic.rhs5348, label %logic.end5349 -logic.rhs5348: + br label %logic.from5491 +logic.from5491: + br i1 %t367, label %logic.rhs5492, label %logic.end5493 +logic.rhs5492: %t368 = load ptr, ptr %a1 %t369 = icmp eq ptr %t368, null - br i1 %t369, label %panic5350, label %ok5351 -panic5350: - call void @finch_panic(ptr @.str.3408, i64 2618, ptr @.str.3409) + br i1 %t369, label %panic5494, label %ok5495 +panic5494: + call void @finch_panic(ptr @.str.3493, i64 2699, ptr @.str.3494) unreachable -ok5351: - %t370 = getelementptr inbounds %S.gen.Gen, ptr %t368, i32 0, i32 43 +ok5495: + %t370 = getelementptr inbounds %S.gen.Gen, ptr %t368, i32 0, i32 44 %t371 = load i1, ptr %t370 - br label %logic.from5352 -logic.from5352: - br i1 %t371, label %logic.rhs5353, label %logic.end5354 -logic.rhs5353: + br label %logic.from5496 +logic.from5496: + br i1 %t371, label %logic.rhs5497, label %logic.end5498 +logic.rhs5497: %t372 = load ptr, ptr %a1 %t373 = icmp eq ptr %t372, null - br i1 %t373, label %panic5355, label %ok5356 -panic5355: - call void @finch_panic(ptr @.str.3410, i64 2618, ptr @.str.3411) + br i1 %t373, label %panic5499, label %ok5500 +panic5499: + call void @finch_panic(ptr @.str.3495, i64 2699, ptr @.str.3496) unreachable -ok5356: +ok5500: %t374 = getelementptr inbounds %S.gen.Gen, ptr %t372, i32 0, i32 10 %t375 = load i64, ptr %a324 %t376 = load { ptr, i64, i64 }, ptr %t374 %t377 = extractvalue { ptr, i64, i64 } %t376, 1 %t378 = icmp uge i64 %t375, %t377 - br i1 %t378, label %range5357, label %inrange5358 -range5357: - call void @finch_panic_index(ptr @.str.3412, i64 2618, i64 %t375, i64 %t377) + br i1 %t378, label %range5501, label %inrange5502 +range5501: + call void @finch_panic_index(ptr @.str.3497, i64 2699, i64 %t375, i64 %t377) unreachable -inrange5358: +inrange5502: %t379 = extractvalue { ptr, i64, i64 } %t376, 0 %t380 = getelementptr inbounds %S.gen.Scope, ptr %t379, i64 %t375 %t381 = getelementptr inbounds %S.gen.Scope, ptr %t380, i32 0, i32 0 @@ -53953,72 +55601,72 @@ inrange5358: %t383 = load { ptr, i64, i64 }, ptr %t381 %t384 = extractvalue { ptr, i64, i64 } %t383, 1 %t385 = icmp uge i64 %t382, %t384 - br i1 %t385, label %range5359, label %inrange5360 -range5359: - call void @finch_panic_index(ptr @.str.3413, i64 2618, i64 %t382, i64 %t384) + br i1 %t385, label %range5503, label %inrange5504 +range5503: + call void @finch_panic_index(ptr @.str.3498, i64 2699, i64 %t382, i64 %t384) unreachable -inrange5360: +inrange5504: %t386 = extractvalue { ptr, i64, i64 } %t383, 0 %t387 = getelementptr inbounds %S.gen.Var, ptr %t386, i64 %t382 %t388 = getelementptr inbounds %S.gen.Var, ptr %t387, i32 0, i32 4 %t389 = load i64, ptr %t388 %t390 = load ptr, ptr %a1 %t391 = icmp eq ptr %t390, null - br i1 %t391, label %panic5361, label %ok5362 -panic5361: - call void @finch_panic(ptr @.str.3414, i64 2618, ptr @.str.3415) + br i1 %t391, label %panic5505, label %ok5506 +panic5505: + call void @finch_panic(ptr @.str.3499, i64 2699, ptr @.str.3500) unreachable -ok5362: - %t392 = getelementptr inbounds %S.gen.Gen, ptr %t390, i32 0, i32 44 +ok5506: + %t392 = getelementptr inbounds %S.gen.Gen, ptr %t390, i32 0, i32 45 %t393 = load i64, ptr %t392 %t394 = icmp sge i64 %t389, %t393 - br label %logic.rend5363 -logic.rend5363: - br label %logic.end5354 -logic.end5354: - %t395 = phi i1 [ false, %logic.from5352 ], [ %t394, %logic.rend5363 ] + br label %logic.rend5507 +logic.rend5507: + br label %logic.end5498 +logic.end5498: + %t395 = phi i1 [ false, %logic.from5496 ], [ %t394, %logic.rend5507 ] %t396 = xor i1 %t395, true - br label %logic.rend5364 -logic.rend5364: - br label %logic.end5349 -logic.end5349: - %t397 = phi i1 [ false, %logic.from5347 ], [ %t396, %logic.rend5364 ] - br i1 %t397, label %then5365, label %endif5367 -then5365: + br label %logic.rend5508 +logic.rend5508: + br label %logic.end5493 +logic.end5493: + %t397 = phi i1 [ false, %logic.from5491 ], [ %t396, %logic.rend5508 ] + br i1 %t397, label %then5509, label %endif5511 +then5509: %t398 = load i64, ptr %a342 store i64 %t398, ptr %a329 - br label %endif5367 -endif5367: - br label %for.step5339 -for.step5339: + br label %endif5511 +endif5511: + br label %for.step5483 +for.step5483: %t399 = load i64, ptr %a342 %t400 = add i64 %t399, 1 store i64 %t400, ptr %a342 - br label %for.cond5337 -for.end5340: + br label %for.cond5481 +for.end5484: %t401 = load i64, ptr %a329 %t402 = icmp slt i64 %t401, 0 - br i1 %t402, label %then5368, label %endif5370 -then5368: - br label %while.cond5330 -endif5370: + br i1 %t402, label %then5512, label %endif5514 +then5512: + br label %while.cond5474 +endif5514: %t403 = load ptr, ptr %a1 %t404 = icmp eq ptr %t403, null - br i1 %t404, label %panic5371, label %ok5372 -panic5371: - call void @finch_panic(ptr @.str.3416, i64 2625, ptr @.str.3417) + br i1 %t404, label %panic5515, label %ok5516 +panic5515: + call void @finch_panic(ptr @.str.3501, i64 2706, ptr @.str.3502) unreachable -ok5372: +ok5516: %t405 = getelementptr inbounds %S.gen.Gen, ptr %t403, i32 0, i32 10 %t406 = load i64, ptr %a324 %t407 = load { ptr, i64, i64 }, ptr %t405 %t408 = extractvalue { ptr, i64, i64 } %t407, 1 %t409 = icmp uge i64 %t406, %t408 - br i1 %t409, label %range5373, label %inrange5374 -range5373: - call void @finch_panic_index(ptr @.str.3418, i64 2625, i64 %t406, i64 %t408) + br i1 %t409, label %range5517, label %inrange5518 +range5517: + call void @finch_panic_index(ptr @.str.3503, i64 2706, i64 %t406, i64 %t408) unreachable -inrange5374: +inrange5518: %t410 = extractvalue { ptr, i64, i64 } %t407, 0 %t411 = getelementptr inbounds %S.gen.Scope, ptr %t410, i64 %t406 %t412 = getelementptr inbounds %S.gen.Scope, ptr %t411, i32 0, i32 0 @@ -54026,11 +55674,11 @@ inrange5374: %t414 = load { ptr, i64, i64 }, ptr %t412 %t415 = extractvalue { ptr, i64, i64 } %t414, 1 %t416 = icmp uge i64 %t413, %t415 - br i1 %t416, label %range5375, label %inrange5376 -range5375: - call void @finch_panic_index(ptr @.str.3419, i64 2625, i64 %t413, i64 %t415) + br i1 %t416, label %range5519, label %inrange5520 +range5519: + call void @finch_panic_index(ptr @.str.3504, i64 2706, i64 %t413, i64 %t415) unreachable -inrange5376: +inrange5520: %t417 = extractvalue { ptr, i64, i64 } %t414, 0 %t418 = getelementptr inbounds %S.gen.Var, ptr %t417, i64 %t413 %t419 = load %S.gen.Var, ptr %t418 @@ -54040,30 +55688,30 @@ inrange5376: store %S.gen.Var %t422, ptr %a423 %t424 = getelementptr inbounds %S.gen.Var, ptr %a423, i32 0, i32 5 %t425 = load i1, ptr %t424 - br label %logic.from5377 -logic.from5377: - br i1 %t425, label %logic.rhs5378, label %logic.end5379 -logic.rhs5378: + br label %logic.from5521 +logic.from5521: + br i1 %t425, label %logic.rhs5522, label %logic.end5523 +logic.rhs5522: %t426 = getelementptr inbounds %S.gen.Var, ptr %a423, i32 0, i32 1 %t427 = load %S.ast.Type, ptr %t426 %t428 = load ptr, ptr %a1 %t429 = icmp eq ptr %t428, null - br i1 %t429, label %panic5380, label %ok5381 -panic5380: - call void @finch_panic(ptr @.str.3420, i64 2626, ptr @.str.3421) + br i1 %t429, label %panic5524, label %ok5525 +panic5524: + call void @finch_panic(ptr @.str.3505, i64 2707, ptr @.str.3506) unreachable -ok5381: +ok5525: %t430 = getelementptr inbounds %S.gen.Gen, ptr %t428, i32 0, i32 13 %t431 = getelementptr inbounds %S.gen.FnSig, ptr %t430, i32 0, i32 12 %t432 = load %S.ast.Type, ptr %t431 %t433 = call i1 @finch.ast.same(%S.ast.Type %t427, %S.ast.Type %t432) - br label %logic.rend5382 -logic.rend5382: - br label %logic.end5379 -logic.end5379: - %t434 = phi i1 [ false, %logic.from5377 ], [ %t433, %logic.rend5382 ] - br i1 %t434, label %then5383, label %endif5385 -then5383: + br label %logic.rend5526 +logic.rend5526: + br label %logic.end5523 +logic.end5523: + %t434 = phi i1 [ false, %logic.from5521 ], [ %t433, %logic.rend5526 ] + br i1 %t434, label %then5527, label %endif5529 +then5527: %t435 = load ptr, ptr %a1 %t436 = load ptr, ptr %a1 %t437 = getelementptr inbounds %S.gen.Var, ptr %a423, i32 0, i32 1 @@ -54077,21 +55725,21 @@ then5383: store { ptr, i64, i64 } %t442, ptr %a444 %t445 = load ptr, ptr %a1 %t446 = icmp eq ptr %t445, null - br i1 %t446, label %panic5386, label %ok5387 -panic5386: - call void @finch_panic(ptr @.str.3422, i64 2628, ptr @.str.3423) + br i1 %t446, label %panic5530, label %ok5531 +panic5530: + call void @finch_panic(ptr @.str.3507, i64 2709, ptr @.str.3508) unreachable -ok5387: +ok5531: %t447 = getelementptr inbounds %S.gen.Gen, ptr %t445, i32 0, i32 10 %t448 = load i64, ptr %a324 %t449 = load { ptr, i64, i64 }, ptr %t447 %t450 = extractvalue { ptr, i64, i64 } %t449, 1 %t451 = icmp uge i64 %t448, %t450 - br i1 %t451, label %range5388, label %inrange5389 -range5388: - call void @finch_panic_index(ptr @.str.3424, i64 2628, i64 %t448, i64 %t450) + br i1 %t451, label %range5532, label %inrange5533 +range5532: + call void @finch_panic_index(ptr @.str.3509, i64 2709, i64 %t448, i64 %t450) unreachable -inrange5389: +inrange5533: %t452 = extractvalue { ptr, i64, i64 } %t449, 0 %t453 = getelementptr inbounds %S.gen.Scope, ptr %t452, i64 %t448 %t454 = getelementptr inbounds %S.gen.Scope, ptr %t453, i32 0, i32 0 @@ -54099,11 +55747,11 @@ inrange5389: %t456 = load { ptr, i64, i64 }, ptr %t454 %t457 = extractvalue { ptr, i64, i64 } %t456, 1 %t458 = icmp uge i64 %t455, %t457 - br i1 %t458, label %range5390, label %inrange5391 -range5390: - call void @finch_panic_index(ptr @.str.3425, i64 2628, i64 %t455, i64 %t457) + br i1 %t458, label %range5534, label %inrange5535 +range5534: + call void @finch_panic_index(ptr @.str.3510, i64 2709, i64 %t455, i64 %t457) unreachable -inrange5391: +inrange5535: %t459 = extractvalue { ptr, i64, i64 } %t456, 0 %t460 = getelementptr inbounds %S.gen.Var, ptr %t459, i64 %t455 %t461 = getelementptr inbounds %S.gen.Var, ptr %t460, i32 0, i32 6 @@ -54114,21 +55762,21 @@ inrange5391: call void @finch.gen.unwind(ptr %t463, i64 0) %t464 = load ptr, ptr %a1 %t465 = icmp eq ptr %t464, null - br i1 %t465, label %panic5392, label %ok5393 -panic5392: - call void @finch_panic(ptr @.str.3426, i64 2631, ptr @.str.3427) + br i1 %t465, label %panic5536, label %ok5537 +panic5536: + call void @finch_panic(ptr @.str.3511, i64 2712, ptr @.str.3512) unreachable -ok5393: +ok5537: %t466 = getelementptr inbounds %S.gen.Gen, ptr %t464, i32 0, i32 10 %t467 = load i64, ptr %a324 %t468 = load { ptr, i64, i64 }, ptr %t466 %t469 = extractvalue { ptr, i64, i64 } %t468, 1 %t470 = icmp uge i64 %t467, %t469 - br i1 %t470, label %range5394, label %inrange5395 -range5394: - call void @finch_panic_index(ptr @.str.3428, i64 2631, i64 %t467, i64 %t469) + br i1 %t470, label %range5538, label %inrange5539 +range5538: + call void @finch_panic_index(ptr @.str.3513, i64 2712, i64 %t467, i64 %t469) unreachable -inrange5395: +inrange5539: %t471 = extractvalue { ptr, i64, i64 } %t468, 0 %t472 = getelementptr inbounds %S.gen.Scope, ptr %t471, i64 %t467 %t473 = getelementptr inbounds %S.gen.Scope, ptr %t472, i32 0, i32 0 @@ -54136,11 +55784,11 @@ inrange5395: %t475 = load { ptr, i64, i64 }, ptr %t473 %t476 = extractvalue { ptr, i64, i64 } %t475, 1 %t477 = icmp uge i64 %t474, %t476 - br i1 %t477, label %range5396, label %inrange5397 -range5396: - call void @finch_panic_index(ptr @.str.3429, i64 2631, i64 %t474, i64 %t476) + br i1 %t477, label %range5540, label %inrange5541 +range5540: + call void @finch_panic_index(ptr @.str.3514, i64 2712, i64 %t474, i64 %t476) unreachable -inrange5397: +inrange5541: %t478 = extractvalue { ptr, i64, i64 } %t475, 0 %t479 = getelementptr inbounds %S.gen.Var, ptr %t478, i64 %t474 %t480 = getelementptr inbounds %S.gen.Var, ptr %t479, i32 0, i32 6 @@ -54152,45 +55800,45 @@ inrange5397: call void @finch.drop.S_gen_Var(ptr %a423) call void @finch_str_drop(ptr %a318) ret void -endif5385: +endif5529: call void @finch.drop.S_gen_Var(ptr %a423) - br label %while.end5332 -while.end5332: + br label %while.end5476 +while.end5476: call void @finch_str_drop(ptr %a318) - br label %endif5325 -endif5325: + br label %endif5469 +endif5469: %t483 = load ptr, ptr %a1 %t484 = load ptr, ptr %a1 %t485 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t486 = load { ptr, i64, i64 }, ptr %t485 %t487 = extractvalue { ptr, i64, i64 } %t486, 1 %t488 = icmp uge i64 0, %t487 - br i1 %t488, label %range5398, label %inrange5399 -range5398: - call void @finch_panic_index(ptr @.str.3430, i64 2638, i64 0, i64 %t487) + br i1 %t488, label %range5542, label %inrange5543 +range5542: + call void @finch_panic_index(ptr @.str.3515, i64 2719, i64 0, i64 %t487) unreachable -inrange5399: +inrange5543: %t489 = extractvalue { ptr, i64, i64 } %t486, 0 %t490 = getelementptr inbounds %S.ast.Node, ptr %t489, i64 0 %t491 = load %S.ast.Node, ptr %t490 %t492 = load ptr, ptr %a1 %t493 = icmp eq ptr %t492, null - br i1 %t493, label %panic5400, label %ok5401 -panic5400: - call void @finch_panic(ptr @.str.3431, i64 2638, ptr @.str.3432) + br i1 %t493, label %panic5544, label %ok5545 +panic5544: + call void @finch_panic(ptr @.str.3516, i64 2719, ptr @.str.3517) unreachable -ok5401: +ok5545: %t494 = getelementptr inbounds %S.gen.Gen, ptr %t492, i32 0, i32 13 %t495 = getelementptr inbounds %S.gen.FnSig, ptr %t494, i32 0, i32 12 %t496 = load %S.ast.Type, ptr %t495 %t497 = call %S.gen.Val @finch.gen.exprWant(ptr %t484, %S.ast.Node %t491, %S.ast.Type %t496) %t498 = load ptr, ptr %a1 %t499 = icmp eq ptr %t498, null - br i1 %t499, label %panic5402, label %ok5403 -panic5402: - call void @finch_panic(ptr @.str.3433, i64 2638, ptr @.str.3434) + br i1 %t499, label %panic5546, label %ok5547 +panic5546: + call void @finch_panic(ptr @.str.3518, i64 2719, ptr @.str.3519) unreachable -ok5403: +ok5547: %t500 = getelementptr inbounds %S.gen.Gen, ptr %t498, i32 0, i32 13 %t501 = getelementptr inbounds %S.gen.FnSig, ptr %t500, i32 0, i32 12 %t502 = load %S.ast.Type, ptr %t501 @@ -54198,15 +55846,15 @@ ok5403: %t504 = load { ptr, i64, i64 }, ptr %t503 %t505 = extractvalue { ptr, i64, i64 } %t504, 1 %t506 = icmp uge i64 0, %t505 - br i1 %t506, label %range5404, label %inrange5405 -range5404: - call void @finch_panic_index(ptr @.str.3435, i64 2638, i64 0, i64 %t505) + br i1 %t506, label %range5548, label %inrange5549 +range5548: + call void @finch_panic_index(ptr @.str.3520, i64 2719, i64 0, i64 %t505) unreachable -inrange5405: +inrange5549: %t507 = extractvalue { ptr, i64, i64 } %t504, 0 %t508 = getelementptr inbounds %S.ast.Node, ptr %t507, i64 0 %t509 = load %S.ast.Node, ptr %t508 - %t510 = call %S.gen.Val @finch.gen.coerce(ptr %t483, %S.gen.Val %t497, %S.ast.Type %t502, %S.ast.Node %t509, { ptr, i64, i64 } { ptr @.str.3436, i64 18, i64 0 }) + %t510 = call %S.gen.Val @finch.gen.coerce(ptr %t483, %S.gen.Val %t497, %S.ast.Type %t502, %S.ast.Node %t509, { ptr, i64, i64 } { ptr @.str.3521, i64 18, i64 0 }) store %S.gen.Val %t497, ptr %a511 call void @finch.drop.S_gen_Val(ptr %a511) store %S.gen.Val %t510, ptr %a512 @@ -54305,36 +55953,36 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic5406, label %ok5407 -panic5406: - call void @finch_panic(ptr @.str.3437, i64 2646, ptr @.str.3438) + br i1 %t4, label %panic5550, label %ok5551 +panic5550: + call void @finch_panic(ptr @.str.3522, i64 2727, ptr @.str.3523) unreachable -ok5407: +ok5551: %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 13 %t6 = getelementptr inbounds %S.gen.FnSig, ptr %t5, i32 0, i32 9 %t7 = load i1, ptr %t6 - br i1 %t7, label %then5408, label %else5409 -then5408: + br i1 %t7, label %then5552, label %else5553 +then5552: %t8 = load ptr, ptr %a1 %t9 = load ptr, ptr %a1 %t10 = load ptr, ptr %a1 %t11 = icmp eq ptr %t10, null - br i1 %t11, label %panic5411, label %ok5412 -panic5411: - call void @finch_panic(ptr @.str.3440, i64 2647, ptr @.str.3441) + br i1 %t11, label %panic5555, label %ok5556 +panic5555: + call void @finch_panic(ptr @.str.3525, i64 2728, ptr @.str.3526) unreachable -ok5412: +ok5556: %t12 = getelementptr inbounds %S.gen.Gen, ptr %t10, i32 0, i32 13 %t13 = load %S.gen.FnSig, ptr %t12 %t14 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t9, %S.gen.FnSig %t13) - store { ptr, i64, i64 } { ptr @.str.3439, i64 12, i64 0 }, ptr %a16 + store { ptr, i64, i64 } { ptr @.str.3524, i64 12, i64 0 }, ptr %a16 store { ptr, i64, i64 } %t14, ptr %a17 call void @finch_str_concat(ptr %a15, ptr %a16, ptr %a17) store { ptr, i64, i64 } %t14, ptr %a18 call void @finch_str_drop(ptr %a18) %t19 = load { ptr, i64, i64 }, ptr %a15 store { ptr, i64, i64 } %t19, ptr %a21 - store { ptr, i64, i64 } { ptr @.str.3442, i64 28, i64 0 }, ptr %a22 + store { ptr, i64, i64 } { ptr @.str.3527, i64 28, i64 0 }, ptr %a22 call void @finch_str_concat(ptr %a20, ptr %a21, ptr %a22) store { ptr, i64, i64 } %t19, ptr %a23 call void @finch_str_drop(ptr %a23) @@ -54347,22 +55995,22 @@ ok5412: %t29 = load ptr, ptr %a1 %t30 = load ptr, ptr %a1 %t31 = icmp eq ptr %t30, null - br i1 %t31, label %panic5413, label %ok5414 -panic5413: - call void @finch_panic(ptr @.str.3444, i64 2648, ptr @.str.3445) + br i1 %t31, label %panic5557, label %ok5558 +panic5557: + call void @finch_panic(ptr @.str.3529, i64 2729, ptr @.str.3530) unreachable -ok5414: +ok5558: %t32 = getelementptr inbounds %S.gen.Gen, ptr %t30, i32 0, i32 13 %t33 = load %S.gen.FnSig, ptr %t32 %t34 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t29, %S.gen.FnSig %t33) - store { ptr, i64, i64 } { ptr @.str.3443, i64 12, i64 0 }, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.3528, i64 12, i64 0 }, ptr %a36 store { ptr, i64, i64 } %t34, ptr %a37 call void @finch_str_concat(ptr %a35, ptr %a36, ptr %a37) store { ptr, i64, i64 } %t34, ptr %a38 call void @finch_str_drop(ptr %a38) %t39 = load { ptr, i64, i64 }, ptr %a35 store { ptr, i64, i64 } %t39, ptr %a41 - store { ptr, i64, i64 } { ptr @.str.3446, i64 1, i64 0 }, ptr %a42 + store { ptr, i64, i64 } { ptr @.str.3531, i64 1, i64 0 }, ptr %a42 call void @finch_str_concat(ptr %a40, ptr %a41, ptr %a42) store { ptr, i64, i64 } %t39, ptr %a43 call void @finch_str_drop(ptr %a43) @@ -54375,7 +56023,7 @@ ok5414: call void @finch_str_drop(ptr %a49) %t50 = load { ptr, i64, i64 }, ptr %a46 store { ptr, i64, i64 } %t50, ptr %a52 - store { ptr, i64, i64 } { ptr @.str.3447, i64 2, i64 0 }, ptr %a53 + store { ptr, i64, i64 } { ptr @.str.3532, i64 2, i64 0 }, ptr %a53 call void @finch_str_concat(ptr %a51, ptr %a52, ptr %a53) store { ptr, i64, i64 } %t50, ptr %a54 call void @finch_str_drop(ptr %a54) @@ -54383,11 +56031,11 @@ ok5414: %t56 = load ptr, ptr %a1 %t57 = load ptr, ptr %a1 %t58 = icmp eq ptr %t57, null - br i1 %t58, label %panic5415, label %ok5416 -panic5415: - call void @finch_panic(ptr @.str.3448, i64 2648, ptr @.str.3449) + br i1 %t58, label %panic5559, label %ok5560 +panic5559: + call void @finch_panic(ptr @.str.3533, i64 2729, ptr @.str.3534) unreachable -ok5416: +ok5560: %t59 = getelementptr inbounds %S.gen.Gen, ptr %t57, i32 0, i32 13 %t60 = getelementptr inbounds %S.gen.FnSig, ptr %t59, i32 0, i32 12 %t61 = load %S.ast.Type, ptr %t60 @@ -54401,7 +56049,7 @@ ok5416: call void @finch_str_drop(ptr %a67) %t68 = load { ptr, i64, i64 }, ptr %a63 store { ptr, i64, i64 } %t68, ptr %a70 - store { ptr, i64, i64 } { ptr @.str.3450, i64 1, i64 0 }, ptr %a71 + store { ptr, i64, i64 } { ptr @.str.3535, i64 1, i64 0 }, ptr %a71 call void @finch_str_concat(ptr %a69, ptr %a70, ptr %a71) store { ptr, i64, i64 } %t68, ptr %a72 call void @finch_str_drop(ptr %a72) @@ -54414,7 +56062,7 @@ ok5416: call void @finch_str_drop(ptr %a78) %t79 = load { ptr, i64, i64 }, ptr %a75 store { ptr, i64, i64 } %t79, ptr %a81 - store { ptr, i64, i64 } { ptr @.str.3451, i64 3, i64 0 }, ptr %a82 + store { ptr, i64, i64 } { ptr @.str.3536, i64 3, i64 0 }, ptr %a82 call void @finch_str_concat(ptr %a80, ptr %a81, ptr %a82) store { ptr, i64, i64 } %t79, ptr %a83 call void @finch_str_drop(ptr %a83) @@ -54427,22 +56075,22 @@ ok5416: %t89 = load ptr, ptr %a1 %t90 = load ptr, ptr %a1 %t91 = icmp eq ptr %t90, null - br i1 %t91, label %panic5417, label %ok5418 -panic5417: - call void @finch_panic(ptr @.str.3453, i64 2649, ptr @.str.3454) + br i1 %t91, label %panic5561, label %ok5562 +panic5561: + call void @finch_panic(ptr @.str.3538, i64 2730, ptr @.str.3539) unreachable -ok5418: +ok5562: %t92 = getelementptr inbounds %S.gen.Gen, ptr %t90, i32 0, i32 13 %t93 = load %S.gen.FnSig, ptr %t92 %t94 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t89, %S.gen.FnSig %t93) - store { ptr, i64, i64 } { ptr @.str.3452, i64 4, i64 0 }, ptr %a96 + store { ptr, i64, i64 } { ptr @.str.3537, i64 4, i64 0 }, ptr %a96 store { ptr, i64, i64 } %t94, ptr %a97 call void @finch_str_concat(ptr %a95, ptr %a96, ptr %a97) store { ptr, i64, i64 } %t94, ptr %a98 call void @finch_str_drop(ptr %a98) %t99 = load { ptr, i64, i64 }, ptr %a95 store { ptr, i64, i64 } %t99, ptr %a101 - store { ptr, i64, i64 } { ptr @.str.3455, i64 1, i64 0 }, ptr %a102 + store { ptr, i64, i64 } { ptr @.str.3540, i64 1, i64 0 }, ptr %a102 call void @finch_str_concat(ptr %a100, ptr %a101, ptr %a102) store { ptr, i64, i64 } %t99, ptr %a103 call void @finch_str_drop(ptr %a103) @@ -54459,29 +56107,29 @@ ok5418: call void @finch_str_drop(ptr %a111) call void @finch_str_drop(ptr %a87) call void @finch_str_drop(ptr %a27) - br label %endif5410 -else5409: + br label %endif5554 +else5553: %t112 = load ptr, ptr %a1 %t113 = load ptr, ptr %a1 %t114 = load ptr, ptr %a1 %t115 = icmp eq ptr %t114, null - br i1 %t115, label %panic5419, label %ok5420 -panic5419: - call void @finch_panic(ptr @.str.3457, i64 2651, ptr @.str.3458) + br i1 %t115, label %panic5563, label %ok5564 +panic5563: + call void @finch_panic(ptr @.str.3542, i64 2732, ptr @.str.3543) unreachable -ok5420: +ok5564: %t116 = getelementptr inbounds %S.gen.Gen, ptr %t114, i32 0, i32 13 %t117 = getelementptr inbounds %S.gen.FnSig, ptr %t116, i32 0, i32 12 %t118 = load %S.ast.Type, ptr %t117 %t119 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t113, %S.ast.Type %t118) - store { ptr, i64, i64 } { ptr @.str.3456, i64 4, i64 0 }, ptr %a121 + store { ptr, i64, i64 } { ptr @.str.3541, i64 4, i64 0 }, ptr %a121 store { ptr, i64, i64 } %t119, ptr %a122 call void @finch_str_concat(ptr %a120, ptr %a121, ptr %a122) store { ptr, i64, i64 } %t119, ptr %a123 call void @finch_str_drop(ptr %a123) %t124 = load { ptr, i64, i64 }, ptr %a120 store { ptr, i64, i64 } %t124, ptr %a126 - store { ptr, i64, i64 } { ptr @.str.3459, i64 1, i64 0 }, ptr %a127 + store { ptr, i64, i64 } { ptr @.str.3544, i64 1, i64 0 }, ptr %a127 call void @finch_str_concat(ptr %a125, ptr %a126, ptr %a127) store { ptr, i64, i64 } %t124, ptr %a128 call void @finch_str_drop(ptr %a128) @@ -54496,15 +56144,15 @@ ok5420: call void @finch.gen.emit(ptr %t112, { ptr, i64, i64 } %t135) store { ptr, i64, i64 } %t135, ptr %a136 call void @finch_str_drop(ptr %a136) - br label %endif5410 -endif5410: + br label %endif5554 +endif5554: %t137 = load ptr, ptr %a1 %t138 = icmp eq ptr %t137, null - br i1 %t138, label %panic5421, label %ok5422 -panic5421: - call void @finch_panic(ptr @.str.3460, i64 2653, ptr @.str.3461) + br i1 %t138, label %panic5565, label %ok5566 +panic5565: + call void @finch_panic(ptr @.str.3545, i64 2734, ptr @.str.3546) unreachable -ok5422: +ok5566: %t139 = getelementptr inbounds %S.gen.Gen, ptr %t137, i32 0, i32 9 store i1 true, ptr %t139 ret void @@ -54538,23 +56186,23 @@ entry: %t5 = load { ptr, i64, i64 }, ptr %t4 %t6 = extractvalue { ptr, i64, i64 } %t5, 1 %t7 = icmp uge i64 0, %t6 - br i1 %t7, label %range5423, label %inrange5424 -range5423: - call void @finch_panic_index(ptr @.str.3463, i64 2665, i64 0, i64 %t6) + br i1 %t7, label %range5567, label %inrange5568 +range5567: + call void @finch_panic_index(ptr @.str.3548, i64 2746, i64 0, i64 %t6) unreachable -inrange5424: +inrange5568: %t8 = extractvalue { ptr, i64, i64 } %t5, 0 %t9 = getelementptr inbounds %S.ast.Type, ptr %t8, i64 0 %t10 = load %S.ast.Type, ptr %t9 %t11 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t3, %S.ast.Type %t10) - store { ptr, i64, i64 } { ptr @.str.3462, i64 7, i64 0 }, ptr %a13 + store { ptr, i64, i64 } { ptr @.str.3547, i64 7, i64 0 }, ptr %a13 store { ptr, i64, i64 } %t11, ptr %a14 call void @finch_str_concat(ptr %a12, ptr %a13, ptr %a14) store { ptr, i64, i64 } %t11, ptr %a15 call void @finch_str_drop(ptr %a15) %t16 = load { ptr, i64, i64 }, ptr %a12 store { ptr, i64, i64 } %t16, ptr %a18 - store { ptr, i64, i64 } { ptr @.str.3464, i64 2, i64 0 }, ptr %a19 + store { ptr, i64, i64 } { ptr @.str.3549, i64 2, i64 0 }, ptr %a19 call void @finch_str_concat(ptr %a17, ptr %a18, ptr %a19) store { ptr, i64, i64 } %t16, ptr %a20 call void @finch_str_drop(ptr %a20) @@ -54564,11 +56212,11 @@ inrange5424: %t24 = load { ptr, i64, i64 }, ptr %t23 %t25 = extractvalue { ptr, i64, i64 } %t24, 1 %t26 = icmp uge i64 1, %t25 - br i1 %t26, label %range5425, label %inrange5426 -range5425: - call void @finch_panic_index(ptr @.str.3465, i64 2665, i64 1, i64 %t25) + br i1 %t26, label %range5569, label %inrange5570 +range5569: + call void @finch_panic_index(ptr @.str.3550, i64 2746, i64 1, i64 %t25) unreachable -inrange5426: +inrange5570: %t27 = extractvalue { ptr, i64, i64 } %t24, 0 %t28 = getelementptr inbounds %S.ast.Type, ptr %t27, i64 1 %t29 = load %S.ast.Type, ptr %t28 @@ -54582,7 +56230,7 @@ inrange5426: call void @finch_str_drop(ptr %a35) %t36 = load { ptr, i64, i64 }, ptr %a31 store { ptr, i64, i64 } %t36, ptr %a38 - store { ptr, i64, i64 } { ptr @.str.3466, i64 2, i64 0 }, ptr %a39 + store { ptr, i64, i64 } { ptr @.str.3551, i64 2, i64 0 }, ptr %a39 call void @finch_str_concat(ptr %a37, ptr %a38, ptr %a39) store { ptr, i64, i64 } %t36, ptr %a40 call void @finch_str_drop(ptr %a40) @@ -54607,14 +56255,14 @@ entry: %t3 = load ptr, ptr %a1 %t4 = load %S.ast.Type, ptr %a2 %t5 = call { ptr, i64, i64 } @finch.gen.entryTy(ptr %t3, %S.ast.Type %t4) - store { ptr, i64, i64 } { ptr @.str.3467, i64 29, i64 0 }, ptr %a7 + store { ptr, i64, i64 } { ptr @.str.3552, i64 29, i64 0 }, ptr %a7 store { ptr, i64, i64 } %t5, ptr %a8 call void @finch_str_concat(ptr %a6, ptr %a7, ptr %a8) store { ptr, i64, i64 } %t5, ptr %a9 call void @finch_str_drop(ptr %a9) %t10 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t10, ptr %a12 - store { ptr, i64, i64 } { ptr @.str.3468, i64 26, i64 0 }, ptr %a13 + store { ptr, i64, i64 } { ptr @.str.3553, i64 26, i64 0 }, ptr %a13 call void @finch_str_concat(ptr %a11, ptr %a12, ptr %a13) store { ptr, i64, i64 } %t10, ptr %a14 call void @finch_str_drop(ptr %a14) @@ -54677,14 +56325,14 @@ entry: %t7 = load ptr, ptr %a1 %t8 = load %S.ast.Type, ptr %a3 %t9 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t7, %S.ast.Type %t8) - store { ptr, i64, i64 } { ptr @.str.3470, i64 23, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.3555, i64 23, i64 0 }, ptr %a11 store { ptr, i64, i64 } %t9, ptr %a12 call void @finch_str_concat(ptr %a10, ptr %a11, ptr %a12) store { ptr, i64, i64 } %t9, ptr %a13 call void @finch_str_drop(ptr %a13) %t14 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t14, ptr %a16 - store { ptr, i64, i64 } { ptr @.str.3471, i64 6, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.3556, i64 6, i64 0 }, ptr %a17 call void @finch_str_concat(ptr %a15, ptr %a16, ptr %a17) store { ptr, i64, i64 } %t14, ptr %a18 call void @finch_str_drop(ptr %a18) @@ -54697,7 +56345,7 @@ entry: call void @finch_str_drop(ptr %a24) %t25 = load { ptr, i64, i64 }, ptr %a21 store { ptr, i64, i64 } %t25, ptr %a27 - store { ptr, i64, i64 } { ptr @.str.3472, i64 14, i64 0 }, ptr %a28 + store { ptr, i64, i64 } { ptr @.str.3557, i64 14, i64 0 }, ptr %a28 call void @finch_str_concat(ptr %a26, ptr %a27, ptr %a28) store { ptr, i64, i64 } %t25, ptr %a29 call void @finch_str_drop(ptr %a29) @@ -54705,7 +56353,7 @@ entry: %t31 = call { ptr, i64, i64 } @finch.gen.op(ptr %t6, { ptr, i64, i64 } %t30) store { ptr, i64, i64 } %t30, ptr %a32 call void @finch_str_drop(ptr %a32) - %t33 = call { ptr, i64, i64 } @finch.gen.load(ptr %t5, { ptr, i64, i64 } { ptr @.str.3469, i64 3, i64 0 }, { ptr, i64, i64 } %t31) + %t33 = call { ptr, i64, i64 } @finch.gen.load(ptr %t5, { ptr, i64, i64 } { ptr @.str.3554, i64 3, i64 0 }, { ptr, i64, i64 } %t31) store { ptr, i64, i64 } %t31, ptr %a34 call void @finch_str_drop(ptr %a34) store { ptr, i64, i64 } %t33, ptr %a35 @@ -54713,14 +56361,14 @@ entry: %t37 = load ptr, ptr %a1 %t38 = load %S.ast.Type, ptr %a3 %t39 = call { ptr, i64, i64 } @finch.gen.entryTy(ptr %t37, %S.ast.Type %t38) - store { ptr, i64, i64 } { ptr @.str.3473, i64 23, i64 0 }, ptr %a41 + store { ptr, i64, i64 } { ptr @.str.3558, i64 23, i64 0 }, ptr %a41 store { ptr, i64, i64 } %t39, ptr %a42 call void @finch_str_concat(ptr %a40, ptr %a41, ptr %a42) store { ptr, i64, i64 } %t39, ptr %a43 call void @finch_str_drop(ptr %a43) %t44 = load { ptr, i64, i64 }, ptr %a40 store { ptr, i64, i64 } %t44, ptr %a46 - store { ptr, i64, i64 } { ptr @.str.3474, i64 6, i64 0 }, ptr %a47 + store { ptr, i64, i64 } { ptr @.str.3559, i64 6, i64 0 }, ptr %a47 call void @finch_str_concat(ptr %a45, ptr %a46, ptr %a47) store { ptr, i64, i64 } %t44, ptr %a48 call void @finch_str_drop(ptr %a48) @@ -54733,7 +56381,7 @@ entry: call void @finch_str_drop(ptr %a54) %t55 = load { ptr, i64, i64 }, ptr %a51 store { ptr, i64, i64 } %t55, ptr %a57 - store { ptr, i64, i64 } { ptr @.str.3475, i64 6, i64 0 }, ptr %a58 + store { ptr, i64, i64 } { ptr @.str.3560, i64 6, i64 0 }, ptr %a58 call void @finch_str_concat(ptr %a56, ptr %a57, ptr %a58) store { ptr, i64, i64 } %t55, ptr %a59 call void @finch_str_drop(ptr %a59) @@ -54789,14 +56437,14 @@ entry: %t6 = load ptr, ptr %a1 %t7 = load %S.ast.Type, ptr %a3 %t8 = call { ptr, i64, i64 } @finch.gen.entryTy(ptr %t6, %S.ast.Type %t7) - store { ptr, i64, i64 } { ptr @.str.3476, i64 23, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.3561, i64 23, i64 0 }, ptr %a10 store { ptr, i64, i64 } %t8, ptr %a11 call void @finch_str_concat(ptr %a9, ptr %a10, ptr %a11) store { ptr, i64, i64 } %t8, ptr %a12 call void @finch_str_drop(ptr %a12) %t13 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t13, ptr %a15 - store { ptr, i64, i64 } { ptr @.str.3477, i64 6, i64 0 }, ptr %a16 + store { ptr, i64, i64 } { ptr @.str.3562, i64 6, i64 0 }, ptr %a16 call void @finch_str_concat(ptr %a14, ptr %a15, ptr %a16) store { ptr, i64, i64 } %t13, ptr %a17 call void @finch_str_drop(ptr %a17) @@ -54809,7 +56457,7 @@ entry: call void @finch_str_drop(ptr %a23) %t24 = load { ptr, i64, i64 }, ptr %a20 store { ptr, i64, i64 } %t24, ptr %a26 - store { ptr, i64, i64 } { ptr @.str.3478, i64 13, i64 0 }, ptr %a27 + store { ptr, i64, i64 } { ptr @.str.3563, i64 13, i64 0 }, ptr %a27 call void @finch_str_concat(ptr %a25, ptr %a26, ptr %a27) store { ptr, i64, i64 } %t24, ptr %a28 call void @finch_str_drop(ptr %a28) @@ -54882,39 +56530,39 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 store { ptr, i64, i64 } %p2, ptr %a3 store %S.ast.Type %p3, ptr %a4 - store { ptr, i64, i64 } { ptr @.str.3479, i64 1, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.3564, i64 1, i64 0 }, ptr %a5 %t6 = getelementptr inbounds %S.ast.Type, ptr %a4, i32 0, i32 1 %t7 = load { ptr, i64, i64 }, ptr %t6 %t8 = extractvalue { ptr, i64, i64 } %t7, 1 %t9 = icmp uge i64 0, %t8 - br i1 %t9, label %range5427, label %inrange5428 -range5427: - call void @finch_panic_index(ptr @.str.3480, i64 2685, i64 0, i64 %t8) + br i1 %t9, label %range5571, label %inrange5572 +range5571: + call void @finch_panic_index(ptr @.str.3565, i64 2766, i64 0, i64 %t8) unreachable -inrange5428: +inrange5572: %t10 = extractvalue { ptr, i64, i64 } %t7, 0 %t11 = getelementptr inbounds %S.ast.Type, ptr %t10, i64 0 %t12 = getelementptr inbounds %S.ast.Type, ptr %t11, i32 0, i32 0 %t13 = load { ptr, i64, i64 }, ptr %t12 store { ptr, i64, i64 } %t13, ptr %a14 - store { ptr, i64, i64 } { ptr @.str.3481, i64 3, i64 0 }, ptr %a15 + store { ptr, i64, i64 } { ptr @.str.3566, i64 3, i64 0 }, ptr %a15 %t16 = call i32 @finch_str_eq(ptr %a14, ptr %a15) %t17 = icmp ne i32 %t16, 0 - br i1 %t17, label %then5429, label %endif5431 -then5429: + br i1 %t17, label %then5573, label %endif5575 +then5573: %t18 = load { ptr, i64, i64 }, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.3482, i64 1, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.3567, i64 1, i64 0 }, ptr %a5 store { ptr, i64, i64 } %t18, ptr %a19 call void @finch_str_drop(ptr %a19) - br label %endif5431 -endif5431: + br label %endif5575 +endif5575: %t20 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.3483, i64 4, i64 0 }, ptr %a22 + store { ptr, i64, i64 } { ptr @.str.3568, i64 4, i64 0 }, ptr %a22 store { ptr, i64, i64 } %t20, ptr %a23 call void @finch_str_concat(ptr %a21, ptr %a22, ptr %a23) %t24 = load { ptr, i64, i64 }, ptr %a21 store { ptr, i64, i64 } %t24, ptr %a26 - store { ptr, i64, i64 } { ptr @.str.3484, i64 6, i64 0 }, ptr %a27 + store { ptr, i64, i64 } { ptr @.str.3569, i64 6, i64 0 }, ptr %a27 call void @finch_str_concat(ptr %a25, ptr %a26, ptr %a27) store { ptr, i64, i64 } %t24, ptr %a28 call void @finch_str_drop(ptr %a28) @@ -54927,7 +56575,7 @@ endif5431: call void @finch_str_drop(ptr %a34) %t35 = load { ptr, i64, i64 }, ptr %a31 store { ptr, i64, i64 } %t35, ptr %a37 - store { ptr, i64, i64 } { ptr @.str.3485, i64 6, i64 0 }, ptr %a38 + store { ptr, i64, i64 } { ptr @.str.3570, i64 6, i64 0 }, ptr %a38 call void @finch_str_concat(ptr %a36, ptr %a37, ptr %a38) store { ptr, i64, i64 } %t35, ptr %a39 call void @finch_str_drop(ptr %a39) @@ -54944,7 +56592,7 @@ endif5431: call void @finch_str_drop(ptr %a48) %t49 = load { ptr, i64, i64 }, ptr %a44 store { ptr, i64, i64 } %t49, ptr %a51 - store { ptr, i64, i64 } { ptr @.str.3486, i64 6, i64 0 }, ptr %a52 + store { ptr, i64, i64 } { ptr @.str.3571, i64 6, i64 0 }, ptr %a52 call void @finch_str_concat(ptr %a50, ptr %a51, ptr %a52) store { ptr, i64, i64 } %t49, ptr %a53 call void @finch_str_drop(ptr %a53) @@ -54954,11 +56602,11 @@ endif5431: %t57 = load { ptr, i64, i64 }, ptr %t56 %t58 = extractvalue { ptr, i64, i64 } %t57, 1 %t59 = icmp uge i64 0, %t58 - br i1 %t59, label %range5432, label %inrange5433 -range5432: - call void @finch_panic_index(ptr @.str.3487, i64 2688, i64 0, i64 %t58) + br i1 %t59, label %range5576, label %inrange5577 +range5576: + call void @finch_panic_index(ptr @.str.3572, i64 2769, i64 0, i64 %t58) unreachable -inrange5433: +inrange5577: %t60 = extractvalue { ptr, i64, i64 } %t57, 0 %t61 = getelementptr inbounds %S.ast.Type, ptr %t60, i64 0 %t62 = load %S.ast.Type, ptr %t61 @@ -54972,7 +56620,7 @@ inrange5433: call void @finch_str_drop(ptr %a68) %t69 = load { ptr, i64, i64 }, ptr %a64 store { ptr, i64, i64 } %t69, ptr %a71 - store { ptr, i64, i64 } { ptr @.str.3488, i64 6, i64 0 }, ptr %a72 + store { ptr, i64, i64 } { ptr @.str.3573, i64 6, i64 0 }, ptr %a72 call void @finch_str_concat(ptr %a70, ptr %a71, ptr %a72) store { ptr, i64, i64 } %t69, ptr %a73 call void @finch_str_drop(ptr %a73) @@ -55013,14 +56661,14 @@ entry: %t8 = load { ptr, i64, i64 }, ptr %a3 %t9 = load %S.ast.Type, ptr %a4 %t10 = call { ptr, i64, i64 } @finch.gen.mapArgs(ptr %t6, { ptr, i64, i64 } %t7, { ptr, i64, i64 } %t8, %S.ast.Type %t9) - store { ptr, i64, i64 } { ptr @.str.3489, i64 25, i64 0 }, ptr %a12 + store { ptr, i64, i64 } { ptr @.str.3574, i64 25, i64 0 }, ptr %a12 store { ptr, i64, i64 } %t10, ptr %a13 call void @finch_str_concat(ptr %a11, ptr %a12, ptr %a13) store { ptr, i64, i64 } %t10, ptr %a14 call void @finch_str_drop(ptr %a14) %t15 = load { ptr, i64, i64 }, ptr %a11 store { ptr, i64, i64 } %t15, ptr %a17 - store { ptr, i64, i64 } { ptr @.str.3490, i64 1, i64 0 }, ptr %a18 + store { ptr, i64, i64 } { ptr @.str.3575, i64 1, i64 0 }, ptr %a18 call void @finch_str_concat(ptr %a16, ptr %a17, ptr %a18) store { ptr, i64, i64 } %t15, ptr %a19 call void @finch_str_drop(ptr %a19) @@ -55049,23 +56697,23 @@ entry: %t4 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t5 = load { ptr, i64, i64 }, ptr %t4 store { ptr, i64, i64 } %t5, ptr %a6 - store { ptr, i64, i64 } { ptr @.str.3491, i64 6, i64 0 }, ptr %a7 + store { ptr, i64, i64 } { ptr @.str.3576, i64 6, i64 0 }, ptr %a7 %t8 = call i32 @finch_str_eq(ptr %a6, ptr %a7) %t9 = icmp ne i32 %t8, 0 - br label %logic.from5434 -logic.from5434: - br i1 %t9, label %logic.rhs5435, label %logic.end5436 -logic.rhs5435: + br label %logic.from5578 +logic.from5578: + br i1 %t9, label %logic.rhs5579, label %logic.end5580 +logic.rhs5579: %t10 = load ptr, ptr %a1 %t11 = load %S.ast.Type, ptr %a2 %t12 = call i1 @finch.gen.hasDefaults(ptr %t10, %S.ast.Type %t11) - br label %logic.rend5437 -logic.rend5437: - br label %logic.end5436 -logic.end5436: - %t13 = phi i1 [ false, %logic.from5434 ], [ %t12, %logic.rend5437 ] - br i1 %t13, label %then5438, label %endif5440 -then5438: + br label %logic.rend5581 +logic.rend5581: + br label %logic.end5580 +logic.end5580: + %t13 = phi i1 [ false, %logic.from5578 ], [ %t12, %logic.rend5581 ] + br i1 %t13, label %then5582, label %endif5584 +then5582: store { ptr, i64, i64 } zeroinitializer, ptr %a14 store { ptr, i64, i64 } zeroinitializer, ptr %a15 %t16 = load ptr, ptr %a1 @@ -55088,7 +56736,7 @@ then5438: call void @finch.drop.arr_str(ptr %a15) call void @finch.drop.arr_S_ast_Node(ptr %a14) ret { ptr, i64, i64 } %t30 -endif5440: +endif5584: %t32 = load %S.ast.Type, ptr %a2 %t33 = call { ptr, i64, i64 } @finch.gen.zeroOf(%S.ast.Type %t32) ret { ptr, i64, i64 } %t33 @@ -55153,25 +56801,25 @@ entry: %t9 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t7, %S.gen.Val %t8) store { ptr, i64, i64 } %t9, ptr %a10 %t11 = load ptr, ptr %a1 - %t12 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t11, { ptr, i64, i64 } { ptr @.str.3492, i64 3, i64 0 }) + %t12 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t11, { ptr, i64, i64 } { ptr @.str.3577, i64 3, i64 0 }) store { ptr, i64, i64 } %t12, ptr %a13 %t14 = load ptr, ptr %a1 %t15 = load { ptr, i64, i64 }, ptr %a13 - call void @finch.gen.store(ptr %t14, { ptr, i64, i64 } { ptr @.str.3493, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.3494, i64 1, i64 0 }, { ptr, i64, i64 } %t15) + call void @finch.gen.store(ptr %t14, { ptr, i64, i64 } { ptr @.str.3578, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.3579, i64 1, i64 0 }, { ptr, i64, i64 } %t15) %t16 = load ptr, ptr %a1 %t17 = load ptr, ptr %a1 %t18 = load { ptr, i64, i64 }, ptr %a2 %t19 = load { ptr, i64, i64 }, ptr %a10 %t20 = load %S.ast.Type, ptr %a3 %t21 = call { ptr, i64, i64 } @finch.gen.mapArgs(ptr %t17, { ptr, i64, i64 } %t18, { ptr, i64, i64 } %t19, %S.ast.Type %t20) - store { ptr, i64, i64 } { ptr @.str.3495, i64 25, i64 0 }, ptr %a23 + store { ptr, i64, i64 } { ptr @.str.3580, i64 25, i64 0 }, ptr %a23 store { ptr, i64, i64 } %t21, ptr %a24 call void @finch_str_concat(ptr %a22, ptr %a23, ptr %a24) store { ptr, i64, i64 } %t21, ptr %a25 call void @finch_str_drop(ptr %a25) %t26 = load { ptr, i64, i64 }, ptr %a22 store { ptr, i64, i64 } %t26, ptr %a28 - store { ptr, i64, i64 } { ptr @.str.3496, i64 6, i64 0 }, ptr %a29 + store { ptr, i64, i64 } { ptr @.str.3581, i64 6, i64 0 }, ptr %a29 call void @finch_str_concat(ptr %a27, ptr %a28, ptr %a29) store { ptr, i64, i64 } %t26, ptr %a30 call void @finch_str_drop(ptr %a30) @@ -55184,7 +56832,7 @@ entry: call void @finch_str_drop(ptr %a36) %t37 = load { ptr, i64, i64 }, ptr %a33 store { ptr, i64, i64 } %t37, ptr %a39 - store { ptr, i64, i64 } { ptr @.str.3497, i64 1, i64 0 }, ptr %a40 + store { ptr, i64, i64 } { ptr @.str.3582, i64 1, i64 0 }, ptr %a40 call void @finch_str_concat(ptr %a38, ptr %a39, ptr %a40) store { ptr, i64, i64 } %t37, ptr %a41 call void @finch_str_drop(ptr %a41) @@ -55200,24 +56848,24 @@ entry: %t50 = call { ptr, i64, i64 } @finch.gen.entryAt(ptr %t46, { ptr, i64, i64 } %t47, %S.ast.Type %t48, { ptr, i64, i64 } %t49) store { ptr, i64, i64 } %t50, ptr %a51 %t52 = load ptr, ptr %a1 - %t53 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t52, { ptr, i64, i64 } { ptr @.str.3498, i64 7, i64 0 }) + %t53 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t52, { ptr, i64, i64 } { ptr @.str.3583, i64 7, i64 0 }) store { ptr, i64, i64 } %t53, ptr %a54 %t55 = load ptr, ptr %a1 - %t56 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t55, { ptr, i64, i64 } { ptr @.str.3499, i64 8, i64 0 }) + %t56 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t55, { ptr, i64, i64 } { ptr @.str.3584, i64 8, i64 0 }) store { ptr, i64, i64 } %t56, ptr %a57 %t58 = load ptr, ptr %a1 %t59 = load ptr, ptr %a1 %t60 = load ptr, ptr %a1 %t61 = load { ptr, i64, i64 }, ptr %a13 - %t62 = call { ptr, i64, i64 } @finch.gen.load(ptr %t60, { ptr, i64, i64 } { ptr @.str.3501, i64 3, i64 0 }, { ptr, i64, i64 } %t61) - store { ptr, i64, i64 } { ptr @.str.3500, i64 12, i64 0 }, ptr %a64 + %t62 = call { ptr, i64, i64 } @finch.gen.load(ptr %t60, { ptr, i64, i64 } { ptr @.str.3586, i64 3, i64 0 }, { ptr, i64, i64 } %t61) + store { ptr, i64, i64 } { ptr @.str.3585, i64 12, i64 0 }, ptr %a64 store { ptr, i64, i64 } %t62, ptr %a65 call void @finch_str_concat(ptr %a63, ptr %a64, ptr %a65) store { ptr, i64, i64 } %t62, ptr %a66 call void @finch_str_drop(ptr %a66) %t67 = load { ptr, i64, i64 }, ptr %a63 store { ptr, i64, i64 } %t67, ptr %a69 - store { ptr, i64, i64 } { ptr @.str.3502, i64 3, i64 0 }, ptr %a70 + store { ptr, i64, i64 } { ptr @.str.3587, i64 3, i64 0 }, ptr %a70 call void @finch_str_concat(ptr %a68, ptr %a69, ptr %a70) store { ptr, i64, i64 } %t67, ptr %a71 call void @finch_str_drop(ptr %a71) @@ -55243,11 +56891,11 @@ entry: %t87 = load { ptr, i64, i64 }, ptr %t86 %t88 = extractvalue { ptr, i64, i64 } %t87, 1 %t89 = icmp uge i64 0, %t88 - br i1 %t89, label %range5441, label %inrange5442 -range5441: - call void @finch_panic_index(ptr @.str.3503, i64 2716, i64 0, i64 %t88) + br i1 %t89, label %range5585, label %inrange5586 +range5585: + call void @finch_panic_index(ptr @.str.3588, i64 2797, i64 0, i64 %t88) unreachable -inrange5442: +inrange5586: %t90 = extractvalue { ptr, i64, i64 } %t87, 0 %t91 = getelementptr inbounds %S.ast.Type, ptr %t90, i64 0 %t92 = load %S.ast.Type, ptr %t91 @@ -55255,19 +56903,19 @@ inrange5442: store { ptr, i64, i64 } %t84, ptr %a93 call void @finch_str_drop(ptr %a93) %t94 = load i1, ptr %a5 - br i1 %t94, label %then5443, label %endif5445 -then5443: + br i1 %t94, label %then5587, label %endif5589 +then5587: %t95 = load ptr, ptr %a1 %t96 = load ptr, ptr %a1 %t97 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 1 %t98 = load { ptr, i64, i64 }, ptr %t97 %t99 = extractvalue { ptr, i64, i64 } %t98, 1 %t100 = icmp uge i64 1, %t99 - br i1 %t100, label %range5446, label %inrange5447 -range5446: - call void @finch_panic_index(ptr @.str.3504, i64 2718, i64 1, i64 %t99) + br i1 %t100, label %range5590, label %inrange5591 +range5590: + call void @finch_panic_index(ptr @.str.3589, i64 2799, i64 1, i64 %t99) unreachable -inrange5447: +inrange5591: %t101 = extractvalue { ptr, i64, i64 } %t98, 0 %t102 = getelementptr inbounds %S.ast.Type, ptr %t101, i64 1 %t103 = load %S.ast.Type, ptr %t102 @@ -55278,11 +56926,11 @@ inrange5447: %t108 = load { ptr, i64, i64 }, ptr %t107 %t109 = extractvalue { ptr, i64, i64 } %t108, 1 %t110 = icmp uge i64 1, %t109 - br i1 %t110, label %range5448, label %inrange5449 -range5448: - call void @finch_panic_index(ptr @.str.3505, i64 2718, i64 1, i64 %t109) + br i1 %t110, label %range5592, label %inrange5593 +range5592: + call void @finch_panic_index(ptr @.str.3590, i64 2799, i64 1, i64 %t109) unreachable -inrange5449: +inrange5593: %t111 = extractvalue { ptr, i64, i64 } %t108, 0 %t112 = getelementptr inbounds %S.ast.Type, ptr %t111, i64 1 %t113 = load %S.ast.Type, ptr %t112 @@ -55293,11 +56941,11 @@ inrange5449: %t118 = load { ptr, i64, i64 }, ptr %t117 %t119 = extractvalue { ptr, i64, i64 } %t118, 1 %t120 = icmp uge i64 1, %t119 - br i1 %t120, label %range5450, label %inrange5451 -range5450: - call void @finch_panic_index(ptr @.str.3506, i64 2718, i64 1, i64 %t119) + br i1 %t120, label %range5594, label %inrange5595 +range5594: + call void @finch_panic_index(ptr @.str.3591, i64 2799, i64 1, i64 %t119) unreachable -inrange5451: +inrange5595: %t121 = extractvalue { ptr, i64, i64 } %t118, 0 %t122 = getelementptr inbounds %S.ast.Type, ptr %t121, i64 1 %t123 = load %S.ast.Type, ptr %t122 @@ -55320,8 +56968,8 @@ inrange5451: call void @finch_str_drop(ptr %a136) store { ptr, i64, i64 } %t134, ptr %a137 call void @finch_str_drop(ptr %a137) - br label %endif5445 -endif5445: + br label %endif5589 +endif5589: %t138 = load ptr, ptr %a1 %t139 = load { ptr, i64, i64 }, ptr %a57 call void @finch.gen.br(ptr %t138, { ptr, i64, i64 } %t139) @@ -55428,11 +57076,11 @@ entry: %t7 = load { ptr, i64, i64 }, ptr %t6 %t8 = extractvalue { ptr, i64, i64 } %t7, 1 %t9 = icmp uge i64 0, %t8 - br i1 %t9, label %range5452, label %inrange5453 -range5452: - call void @finch_panic_index(ptr @.str.3507, i64 2727, i64 0, i64 %t8) + br i1 %t9, label %range5596, label %inrange5597 +range5596: + call void @finch_panic_index(ptr @.str.3592, i64 2808, i64 0, i64 %t8) unreachable -inrange5453: +inrange5597: %t10 = extractvalue { ptr, i64, i64 } %t7, 0 %t11 = getelementptr inbounds %S.ast.Type, ptr %t10, i64 0 %t12 = load %S.ast.Type, ptr %t11 @@ -55444,11 +57092,11 @@ inrange5453: %t18 = load { ptr, i64, i64 }, ptr %t17 %t19 = extractvalue { ptr, i64, i64 } %t18, 1 %t20 = icmp uge i64 1, %t19 - br i1 %t20, label %range5454, label %inrange5455 -range5454: - call void @finch_panic_index(ptr @.str.3508, i64 2728, i64 1, i64 %t19) + br i1 %t20, label %range5598, label %inrange5599 +range5598: + call void @finch_panic_index(ptr @.str.3593, i64 2809, i64 1, i64 %t19) unreachable -inrange5455: +inrange5599: %t21 = extractvalue { ptr, i64, i64 } %t18, 0 %t22 = getelementptr inbounds %S.ast.Type, ptr %t21, i64 1 %t23 = load %S.ast.Type, ptr %t22 @@ -55462,11 +57110,11 @@ inrange5455: %t31 = load { ptr, i64, i64 }, ptr %t30 %t32 = extractvalue { ptr, i64, i64 } %t31, 1 %t33 = icmp uge i64 1, %t32 - br i1 %t33, label %range5456, label %inrange5457 -range5456: - call void @finch_panic_index(ptr @.str.3509, i64 2729, i64 1, i64 %t32) + br i1 %t33, label %range5600, label %inrange5601 +range5600: + call void @finch_panic_index(ptr @.str.3594, i64 2810, i64 1, i64 %t32) unreachable -inrange5457: +inrange5601: %t34 = extractvalue { ptr, i64, i64 } %t31, 0 %t35 = getelementptr inbounds %S.ast.Node, ptr %t34, i64 1 %t36 = load %S.ast.Node, ptr %t35 @@ -55477,31 +57125,31 @@ inrange5457: %t41 = load { ptr, i64, i64 }, ptr %t40 %t42 = extractvalue { ptr, i64, i64 } %t41, 1 %t43 = icmp uge i64 1, %t42 - br i1 %t43, label %range5458, label %inrange5459 -range5458: - call void @finch_panic_index(ptr @.str.3510, i64 2729, i64 1, i64 %t42) + br i1 %t43, label %range5602, label %inrange5603 +range5602: + call void @finch_panic_index(ptr @.str.3595, i64 2810, i64 1, i64 %t42) unreachable -inrange5459: +inrange5603: %t44 = extractvalue { ptr, i64, i64 } %t41, 0 %t45 = getelementptr inbounds %S.ast.Node, ptr %t44, i64 1 %t46 = load %S.ast.Node, ptr %t45 - %t47 = call %S.gen.Val @finch.gen.coerce(ptr %t28, %S.gen.Val %t38, %S.ast.Type %t39, %S.ast.Node %t46, { ptr, i64, i64 } { ptr @.str.3511, i64 7, i64 0 }) + %t47 = call %S.gen.Val @finch.gen.coerce(ptr %t28, %S.gen.Val %t38, %S.ast.Type %t39, %S.ast.Node %t46, { ptr, i64, i64 } { ptr @.str.3596, i64 7, i64 0 }) store %S.gen.Val %t38, ptr %a48 call void @finch.drop.S_gen_Val(ptr %a48) store %S.gen.Val %t47, ptr %a49 %t50 = load i1, ptr %a5 - br i1 %t50, label %then5460, label %endif5462 -then5460: + br i1 %t50, label %then5604, label %endif5606 +then5604: %t51 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 0 %t52 = load i1, ptr %t51 %t53 = xor i1 %t52, true - br i1 %t53, label %then5463, label %endif5465 -then5463: + br i1 %t53, label %then5607, label %endif5609 +then5607: %t54 = load ptr, ptr %a1 %t55 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t54, %S.ast.Node %t55, { ptr, i64, i64 } { ptr @.str.3512, i64 44, i64 0 }) - br label %endif5465 -endif5465: + call void @finch.gen.fail(ptr %t54, %S.ast.Node %t55, { ptr, i64, i64 } { ptr @.str.3597, i64 44, i64 0 }) + br label %endif5609 +endif5609: %t56 = load ptr, ptr %a1 %t57 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 1 %t58 = getelementptr inbounds %S.gen.Place, ptr %t57, i32 0, i32 0 @@ -55531,12 +57179,12 @@ endif5465: call void @finch.drop.S_ast_Type(ptr %a27) call void @finch.drop.S_ast_Type(ptr %a16) ret %S.gen.Ref %t78 -endif5462: - store { ptr, i64, i64 } { ptr @.str.3513, i64 0, i64 0 }, ptr %a79 +endif5606: + store { ptr, i64, i64 } { ptr @.str.3598, i64 0, i64 0 }, ptr %a79 %t80 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 0 %t81 = load i1, ptr %t80 - br i1 %t81, label %then5466, label %else5467 -then5466: + br i1 %t81, label %then5610, label %else5611 +then5610: %t82 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 1 %t83 = getelementptr inbounds %S.gen.Place, ptr %t82, i32 0, i32 0 %t84 = load { ptr, i64, i64 }, ptr %t83 @@ -55547,8 +57195,8 @@ then5466: store { ptr, i64, i64 } %t87, ptr %a79 store { ptr, i64, i64 } %t88, ptr %a89 call void @finch_str_drop(ptr %a89) - br label %endif5468 -else5467: + br label %endif5612 +else5611: %t90 = load ptr, ptr %a1 %t91 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 2 %t92 = load %S.gen.Val, ptr %t91 @@ -55557,8 +57205,8 @@ else5467: store { ptr, i64, i64 } %t93, ptr %a79 store { ptr, i64, i64 } %t94, ptr %a95 call void @finch_str_drop(ptr %a95) - br label %endif5468 -endif5468: + br label %endif5612 +endif5612: %t96 = load ptr, ptr %a1 %t97 = load %S.gen.Val, ptr %a49 %t98 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t96, %S.gen.Val %t97) @@ -55570,20 +57218,20 @@ endif5468: %t104 = call { ptr, i64, i64 } @finch.gen.mapFind(ptr %t100, { ptr, i64, i64 } %t101, { ptr, i64, i64 } %t102, %S.ast.Type %t103) store { ptr, i64, i64 } %t104, ptr %a105 %t106 = load ptr, ptr %a1 - %t107 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t106, { ptr, i64, i64 } { ptr @.str.3514, i64 11, i64 0 }) + %t107 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t106, { ptr, i64, i64 } { ptr @.str.3599, i64 11, i64 0 }) store { ptr, i64, i64 } %t107, ptr %a108 %t109 = load ptr, ptr %a1 - %t110 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t109, { ptr, i64, i64 } { ptr @.str.3515, i64 9, i64 0 }) + %t110 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t109, { ptr, i64, i64 } { ptr @.str.3600, i64 9, i64 0 }) store { ptr, i64, i64 } %t110, ptr %a111 %t112 = load ptr, ptr %a1 %t113 = load ptr, ptr %a1 %t114 = load { ptr, i64, i64 }, ptr %a105 - store { ptr, i64, i64 } { ptr @.str.3516, i64 13, i64 0 }, ptr %a116 + store { ptr, i64, i64 } { ptr @.str.3601, i64 13, i64 0 }, ptr %a116 store { ptr, i64, i64 } %t114, ptr %a117 call void @finch_str_concat(ptr %a115, ptr %a116, ptr %a117) %t118 = load { ptr, i64, i64 }, ptr %a115 store { ptr, i64, i64 } %t118, ptr %a120 - store { ptr, i64, i64 } { ptr @.str.3517, i64 3, i64 0 }, ptr %a121 + store { ptr, i64, i64 } { ptr @.str.3602, i64 3, i64 0 }, ptr %a121 call void @finch_str_concat(ptr %a119, ptr %a120, ptr %a121) store { ptr, i64, i64 } %t118, ptr %a122 call void @finch_str_drop(ptr %a122) @@ -55600,11 +57248,11 @@ endif5468: %t130 = load { ptr, i64, i64 }, ptr %a108 call void @finch.gen.label(ptr %t129, { ptr, i64, i64 } %t130) %t131 = load ptr, ptr %a1 - %t132 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t131, { ptr, i64, i64 } { ptr @.str.3518, i64 17, i64 0 }) + %t132 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t131, { ptr, i64, i64 } { ptr @.str.3603, i64 17, i64 0 }) store { ptr, i64, i64 } %t132, ptr %a133 %t134 = load ptr, ptr %a1 %t135 = load { ptr, i64, i64 }, ptr %a133 - call void @finch.gen.store(ptr %t134, { ptr, i64, i64 } { ptr @.str.3519, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.3520, i64 15, i64 0 }, { ptr, i64, i64 } %t135) + call void @finch.gen.store(ptr %t134, { ptr, i64, i64 } { ptr @.str.3604, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.3605, i64 15, i64 0 }, { ptr, i64, i64 } %t135) %t136 = load ptr, ptr %a1 %t137 = load { ptr, i64, i64 }, ptr %a133 %t138 = getelementptr inbounds %S.gen.Val, ptr %a49, i32 0, i32 0 @@ -55615,34 +57263,34 @@ endif5468: %t142 = load ptr, ptr %a1 %t143 = load ptr, ptr %a1 %t144 = icmp eq ptr %t143, null - br i1 %t144, label %panic5469, label %ok5470 -panic5469: - call void @finch_panic(ptr @.str.3522, i64 2753, ptr @.str.3523) + br i1 %t144, label %panic5613, label %ok5614 +panic5613: + call void @finch_panic(ptr @.str.3607, i64 2834, ptr @.str.3608) unreachable -ok5470: +ok5614: %t145 = getelementptr inbounds %S.gen.Gen, ptr %t143, i32 0, i32 1 %t146 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 13 %t147 = load i64, ptr %t146 %t148 = load { ptr, i64, i64 }, ptr %t145 %t149 = extractvalue { ptr, i64, i64 } %t148, 1 %t150 = icmp uge i64 %t147, %t149 - br i1 %t150, label %range5471, label %inrange5472 -range5471: - call void @finch_panic_index(ptr @.str.3524, i64 2753, i64 %t147, i64 %t149) + br i1 %t150, label %range5615, label %inrange5616 +range5615: + call void @finch_panic_index(ptr @.str.3609, i64 2834, i64 %t147, i64 %t149) unreachable -inrange5472: +inrange5616: %t151 = extractvalue { ptr, i64, i64 } %t148, 0 %t152 = getelementptr inbounds { ptr, i64, i64 }, ptr %t151, i64 %t147 %t153 = load { ptr, i64, i64 }, ptr %t152 %t154 = call { ptr, i64, i64 } @finch.gen.strGlobal(ptr %t142, { ptr, i64, i64 } %t153) - store { ptr, i64, i64 } { ptr @.str.3521, i64 33, i64 0 }, ptr %a156 + store { ptr, i64, i64 } { ptr @.str.3606, i64 33, i64 0 }, ptr %a156 store { ptr, i64, i64 } %t154, ptr %a157 call void @finch_str_concat(ptr %a155, ptr %a156, ptr %a157) store { ptr, i64, i64 } %t154, ptr %a158 call void @finch_str_drop(ptr %a158) %t159 = load { ptr, i64, i64 }, ptr %a155 store { ptr, i64, i64 } %t159, ptr %a161 - store { ptr, i64, i64 } { ptr @.str.3525, i64 6, i64 0 }, ptr %a162 + store { ptr, i64, i64 } { ptr @.str.3610, i64 6, i64 0 }, ptr %a162 call void @finch_str_concat(ptr %a160, ptr %a161, ptr %a162) store { ptr, i64, i64 } %t159, ptr %a163 call void @finch_str_drop(ptr %a163) @@ -55660,7 +57308,7 @@ inrange5472: call void @finch_str_drop(ptr %a173) %t174 = load { ptr, i64, i64 }, ptr %a169 store { ptr, i64, i64 } %t174, ptr %a176 - store { ptr, i64, i64 } { ptr @.str.3526, i64 6, i64 0 }, ptr %a177 + store { ptr, i64, i64 } { ptr @.str.3611, i64 6, i64 0 }, ptr %a177 call void @finch_str_concat(ptr %a175, ptr %a176, ptr %a177) store { ptr, i64, i64 } %t174, ptr %a178 call void @finch_str_drop(ptr %a178) @@ -55673,7 +57321,7 @@ inrange5472: call void @finch_str_drop(ptr %a184) %t185 = load { ptr, i64, i64 }, ptr %a181 store { ptr, i64, i64 } %t185, ptr %a187 - store { ptr, i64, i64 } { ptr @.str.3527, i64 1, i64 0 }, ptr %a188 + store { ptr, i64, i64 } { ptr @.str.3612, i64 1, i64 0 }, ptr %a188 call void @finch_str_concat(ptr %a186, ptr %a187, ptr %a188) store { ptr, i64, i64 } %t185, ptr %a189 call void @finch_str_drop(ptr %a189) @@ -55682,14 +57330,14 @@ inrange5472: store { ptr, i64, i64 } %t190, ptr %a191 call void @finch_str_drop(ptr %a191) %t192 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t192, { ptr, i64, i64 } { ptr @.str.3528, i64 11, i64 0 }) + call void @finch.gen.emit(ptr %t192, { ptr, i64, i64 } { ptr @.str.3613, i64 11, i64 0 }) %t193 = load ptr, ptr %a1 %t194 = icmp eq ptr %t193, null - br i1 %t194, label %panic5473, label %ok5474 -panic5473: - call void @finch_panic(ptr @.str.3529, i64 2755, ptr @.str.3530) + br i1 %t194, label %panic5617, label %ok5618 +panic5617: + call void @finch_panic(ptr @.str.3614, i64 2836, ptr @.str.3615) unreachable -ok5474: +ok5618: %t195 = getelementptr inbounds %S.gen.Gen, ptr %t193, i32 0, i32 9 store i1 true, ptr %t195 %t196 = load ptr, ptr %a1 @@ -55711,8 +57359,8 @@ ok5474: store { ptr, i64, i64 } %t207, ptr %a209 %t210 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 0 %t211 = load i1, ptr %t210 - br i1 %t211, label %then5475, label %endif5477 -then5475: + br i1 %t211, label %then5619, label %endif5621 +then5619: %t212 = insertvalue %S.gen.Ref zeroinitializer, i1 true, 0 %t213 = load { ptr, i64, i64 }, ptr %a209 store { ptr, i64, i64 } %t213, ptr %a214 @@ -55736,7 +57384,7 @@ then5475: call void @finch.drop.S_ast_Type(ptr %a27) call void @finch.drop.S_ast_Type(ptr %a16) ret %S.gen.Ref %t223 -endif5477: +endif5621: %t224 = load ptr, ptr %a1 %t225 = load ptr, ptr %a1 %t226 = load %S.ast.Type, ptr %a27 @@ -55760,20 +57408,20 @@ endif5477: %t243 = load ptr, ptr %a1 %t244 = load %S.ast.Type, ptr %a27 %t245 = call i1 @finch.gen.owning(ptr %t243, %S.ast.Type %t244) - br label %logic.from5478 -logic.from5478: - br i1 %t245, label %logic.rhs5479, label %logic.end5480 -logic.rhs5479: + br label %logic.from5622 +logic.from5622: + br i1 %t245, label %logic.rhs5623, label %logic.end5624 +logic.rhs5623: %t246 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 2 %t247 = getelementptr inbounds %S.gen.Val, ptr %t246, i32 0, i32 2 %t248 = load i1, ptr %t247 - br label %logic.rend5481 -logic.rend5481: - br label %logic.end5480 -logic.end5480: - %t249 = phi i1 [ false, %logic.from5478 ], [ %t248, %logic.rend5481 ] - br i1 %t249, label %then5482, label %endif5484 -then5482: + br label %logic.rend5625 +logic.rend5625: + br label %logic.end5624 +logic.end5624: + %t249 = phi i1 [ false, %logic.from5622 ], [ %t248, %logic.rend5625 ] + br i1 %t249, label %then5626, label %endif5628 +then5626: %t250 = load ptr, ptr %a1 %t251 = load { ptr, i64, i64 }, ptr %a231 %t252 = load %S.ast.Type, ptr %a27 @@ -55789,8 +57437,8 @@ then5482: store %S.gen.Val %t260, ptr %a242 store %S.gen.Val %t261, ptr %a262 call void @finch.drop.S_gen_Val(ptr %a262) - br label %endif5484 -endif5484: + br label %endif5628 +endif5628: %t263 = load ptr, ptr %a1 %t264 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 2 %t265 = load %S.gen.Val, ptr %t264 @@ -55898,22 +57546,22 @@ entry: %t12 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t13 = load { ptr, i64, i64 }, ptr %t12 store { ptr, i64, i64 } %t13, ptr %a14 - store { ptr, i64, i64 } { ptr @.str.3531, i64 3, i64 0 }, ptr %a15 + store { ptr, i64, i64 } { ptr @.str.3616, i64 3, i64 0 }, ptr %a15 %t16 = call i32 @finch_str_eq(ptr %a14, ptr %a15) %t17 = icmp eq i32 %t16, 0 - br i1 %t17, label %then5485, label %endif5487 -then5485: + br i1 %t17, label %then5629, label %endif5631 +then5629: %t18 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t19 = getelementptr inbounds { ptr, i64, i64 }, ptr %t18, i32 0, i32 1 %t20 = load i64, ptr %t19 %t21 = icmp eq i64 %t20, 0 - br i1 %t21, label %then5488, label %endif5490 -then5488: + br i1 %t21, label %then5632, label %endif5634 +then5632: %t22 = load ptr, ptr %a1 %t23 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t22, %S.ast.Node %t23, { ptr, i64, i64 } { ptr @.str.3532, i64 52, i64 0 }) - br label %endif5490 -endif5490: + call void @finch.gen.fail(ptr %t22, %S.ast.Node %t23, { ptr, i64, i64 } { ptr @.str.3617, i64 52, i64 0 }) + br label %endif5634 +endif5634: store i1 true, ptr %a24 store i1 false, ptr %a25 %t26 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 @@ -55921,12 +57569,12 @@ endif5490: %t28 = load i64, ptr %t27 %t29 = sdiv i64 %t28, 2 store i64 0, ptr %a30 - br label %for.cond5491 -for.cond5491: + br label %for.cond5635 +for.cond5635: %t31 = load i64, ptr %a30 %t32 = icmp slt i64 %t31, %t29 - br i1 %t32, label %for.body5492, label %for.end5494 -for.body5492: + br i1 %t32, label %for.body5636, label %for.end5638 +for.body5636: %t33 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t34 = load i64, ptr %a30 %t35 = mul i64 2, %t34 @@ -55934,11 +57582,11 @@ for.body5492: %t37 = load { ptr, i64, i64 }, ptr %t33 %t38 = extractvalue { ptr, i64, i64 } %t37, 1 %t39 = icmp uge i64 %t36, %t38 - br i1 %t39, label %range5495, label %inrange5496 -range5495: - call void @finch_panic_index(ptr @.str.3533, i64 2785, i64 %t36, i64 %t38) + br i1 %t39, label %range5639, label %inrange5640 +range5639: + call void @finch_panic_index(ptr @.str.3618, i64 2866, i64 %t36, i64 %t38) unreachable -inrange5496: +inrange5640: %t40 = extractvalue { ptr, i64, i64 } %t37, 0 %t41 = getelementptr inbounds %S.ast.Node, ptr %t40, i64 %t36 %t42 = load %S.ast.Node, ptr %t41 @@ -55949,35 +57597,35 @@ inrange5496: %t47 = getelementptr inbounds %S.ast.Node, ptr %a46, i32 0, i32 0 %t48 = load { ptr, i64, i64 }, ptr %t47 store { ptr, i64, i64 } %t48, ptr %a49 - store { ptr, i64, i64 } { ptr @.str.3534, i64 5, i64 0 }, ptr %a50 + store { ptr, i64, i64 } { ptr @.str.3619, i64 5, i64 0 }, ptr %a50 %t51 = call i32 @finch_str_eq(ptr %a49, ptr %a50) %t52 = icmp ne i32 %t51, 0 - br label %logic.from5497 -logic.from5497: - br i1 %t52, label %logic.rhs5498, label %logic.end5499 -logic.rhs5498: + br label %logic.from5641 +logic.from5641: + br i1 %t52, label %logic.rhs5642, label %logic.end5643 +logic.rhs5642: %t53 = getelementptr inbounds %S.ast.Node, ptr %a46, i32 0, i32 1 %t54 = load { ptr, i64, i64 }, ptr %t53 store { ptr, i64, i64 } %t54, ptr %a55 - store { ptr, i64, i64 } { ptr @.str.3535, i64 1, i64 0 }, ptr %a56 + store { ptr, i64, i64 } { ptr @.str.3620, i64 1, i64 0 }, ptr %a56 %t57 = call i32 @finch_str_eq(ptr %a55, ptr %a56) %t58 = icmp ne i32 %t57, 0 - br label %logic.rend5500 -logic.rend5500: - br label %logic.end5499 -logic.end5499: - %t59 = phi i1 [ false, %logic.from5497 ], [ %t58, %logic.rend5500 ] - br i1 %t59, label %then5501, label %endif5503 -then5501: + br label %logic.rend5644 +logic.rend5644: + br label %logic.end5643 +logic.end5643: + %t59 = phi i1 [ false, %logic.from5641 ], [ %t58, %logic.rend5644 ] + br i1 %t59, label %then5645, label %endif5647 +then5645: %t60 = getelementptr inbounds %S.ast.Node, ptr %a46, i32 0, i32 9 %t61 = load { ptr, i64, i64 }, ptr %t60 %t62 = extractvalue { ptr, i64, i64 } %t61, 1 %t63 = icmp uge i64 0, %t62 - br i1 %t63, label %range5504, label %inrange5505 -range5504: - call void @finch_panic_index(ptr @.str.3536, i64 2787, i64 0, i64 %t62) + br i1 %t63, label %range5648, label %inrange5649 +range5648: + call void @finch_panic_index(ptr @.str.3621, i64 2868, i64 0, i64 %t62) unreachable -inrange5505: +inrange5649: %t64 = extractvalue { ptr, i64, i64 } %t61, 0 %t65 = getelementptr inbounds %S.ast.Node, ptr %t64, i64 0 %t66 = load %S.ast.Node, ptr %t65 @@ -55988,50 +57636,50 @@ inrange5505: store %S.ast.Node %t69, ptr %a46 store %S.ast.Node %t70, ptr %a71 call void @finch.drop.S_ast_Node(ptr %a71) - br label %endif5503 -endif5503: + br label %endif5647 +endif5647: %t72 = getelementptr inbounds %S.ast.Node, ptr %a46, i32 0, i32 0 %t73 = load { ptr, i64, i64 }, ptr %t72 store { ptr, i64, i64 } %t73, ptr %a74 - store { ptr, i64, i64 } { ptr @.str.3537, i64 5, i64 0 }, ptr %a75 + store { ptr, i64, i64 } { ptr @.str.3622, i64 5, i64 0 }, ptr %a75 %t76 = call i32 @finch_str_eq(ptr %a74, ptr %a75) %t77 = icmp ne i32 %t76, 0 - br i1 %t77, label %then5506, label %else5507 -then5506: + br i1 %t77, label %then5650, label %else5651 +then5650: store i1 true, ptr %a25 - br label %endif5508 -else5507: + br label %endif5652 +else5651: %t78 = getelementptr inbounds %S.ast.Node, ptr %a46, i32 0, i32 0 %t79 = load { ptr, i64, i64 }, ptr %t78 store { ptr, i64, i64 } %t79, ptr %a80 - store { ptr, i64, i64 } { ptr @.str.3538, i64 3, i64 0 }, ptr %a81 + store { ptr, i64, i64 } { ptr @.str.3623, i64 3, i64 0 }, ptr %a81 %t82 = call i32 @finch_str_eq(ptr %a80, ptr %a81) %t83 = icmp eq i32 %t82, 0 - br i1 %t83, label %then5509, label %endif5511 -then5509: + br i1 %t83, label %then5653, label %endif5655 +then5653: store i1 false, ptr %a24 - br label %endif5511 -endif5511: - br label %endif5508 -endif5508: + br label %endif5655 +endif5655: + br label %endif5652 +endif5652: call void @finch.drop.S_ast_Node(ptr %a46) - br label %for.step5493 -for.step5493: + br label %for.step5637 +for.step5637: %t84 = load i64, ptr %a30 %t85 = add i64 %t84, 1 store i64 %t85, ptr %a30 - br label %for.cond5491 -for.end5494: + br label %for.cond5635 +for.end5638: %t86 = load ptr, ptr %a1 %t87 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t88 = load { ptr, i64, i64 }, ptr %t87 %t89 = extractvalue { ptr, i64, i64 } %t88, 1 %t90 = icmp uge i64 0, %t89 - br i1 %t90, label %range5512, label %inrange5513 -range5512: - call void @finch_panic_index(ptr @.str.3539, i64 2795, i64 0, i64 %t89) + br i1 %t90, label %range5656, label %inrange5657 +range5656: + call void @finch_panic_index(ptr @.str.3624, i64 2876, i64 0, i64 %t89) unreachable -inrange5513: +inrange5657: %t91 = extractvalue { ptr, i64, i64 } %t88, 0 %t92 = getelementptr inbounds %S.ast.Node, ptr %t91, i64 0 %t93 = load %S.ast.Node, ptr %t92 @@ -56045,11 +57693,11 @@ inrange5513: %t99 = load { ptr, i64, i64 }, ptr %t98 %t100 = extractvalue { ptr, i64, i64 } %t99, 1 %t101 = icmp uge i64 1, %t100 - br i1 %t101, label %range5514, label %inrange5515 -range5514: - call void @finch_panic_index(ptr @.str.3540, i64 2796, i64 1, i64 %t100) + br i1 %t101, label %range5658, label %inrange5659 +range5658: + call void @finch_panic_index(ptr @.str.3625, i64 2877, i64 1, i64 %t100) unreachable -inrange5515: +inrange5659: %t102 = extractvalue { ptr, i64, i64 } %t99, 0 %t103 = getelementptr inbounds %S.ast.Node, ptr %t102, i64 1 %t104 = load %S.ast.Node, ptr %t103 @@ -56062,84 +57710,84 @@ inrange5515: %t109 = getelementptr inbounds %S.ast.Type, ptr %t108, i32 0, i32 0 %t110 = load { ptr, i64, i64 }, ptr %t109 store { ptr, i64, i64 } %t110, ptr %a111 - store { ptr, i64, i64 } { ptr @.str.3541, i64 4, i64 0 }, ptr %a112 + store { ptr, i64, i64 } { ptr @.str.3626, i64 4, i64 0 }, ptr %a112 %t113 = call i32 @finch_str_eq(ptr %a111, ptr %a112) %t114 = icmp ne i32 %t113, 0 - br label %logic.from5516 -logic.from5516: - br i1 %t114, label %logic.end5518, label %logic.rhs5517 -logic.rhs5517: + br label %logic.from5660 +logic.from5660: + br i1 %t114, label %logic.end5662, label %logic.rhs5661 +logic.rhs5661: %t115 = getelementptr inbounds %S.gen.Val, ptr %a10, i32 0, i32 1 %t116 = getelementptr inbounds %S.ast.Type, ptr %t115, i32 0, i32 0 %t117 = load { ptr, i64, i64 }, ptr %t116 store { ptr, i64, i64 } %t117, ptr %a118 - store { ptr, i64, i64 } { ptr @.str.3542, i64 4, i64 0 }, ptr %a119 + store { ptr, i64, i64 } { ptr @.str.3627, i64 4, i64 0 }, ptr %a119 %t120 = call i32 @finch_str_eq(ptr %a118, ptr %a119) %t121 = icmp ne i32 %t120, 0 - br label %logic.rend5519 -logic.rend5519: - br label %logic.end5518 -logic.end5518: - %t122 = phi i1 [ true, %logic.from5516 ], [ %t121, %logic.rend5519 ] - br i1 %t122, label %then5520, label %endif5522 -then5520: + br label %logic.rend5663 +logic.rend5663: + br label %logic.end5662 +logic.end5662: + %t122 = phi i1 [ true, %logic.from5660 ], [ %t121, %logic.rend5663 ] + br i1 %t122, label %then5664, label %endif5666 +then5664: %t123 = load ptr, ptr %a1 %t124 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t125 = load { ptr, i64, i64 }, ptr %t124 %t126 = extractvalue { ptr, i64, i64 } %t125, 1 %t127 = icmp uge i64 0, %t126 - br i1 %t127, label %range5523, label %inrange5524 -range5523: - call void @finch_panic_index(ptr @.str.3543, i64 2798, i64 0, i64 %t126) + br i1 %t127, label %range5667, label %inrange5668 +range5667: + call void @finch_panic_index(ptr @.str.3628, i64 2879, i64 0, i64 %t126) unreachable -inrange5524: +inrange5668: %t128 = extractvalue { ptr, i64, i64 } %t125, 0 %t129 = getelementptr inbounds %S.ast.Node, ptr %t128, i64 0 %t130 = load %S.ast.Node, ptr %t129 - call void @finch.gen.fail(ptr %t123, %S.ast.Node %t130, { ptr, i64, i64 } { ptr @.str.3544, i64 35, i64 0 }) - br label %endif5522 -endif5522: + call void @finch.gen.fail(ptr %t123, %S.ast.Node %t130, { ptr, i64, i64 } { ptr @.str.3629, i64 35, i64 0 }) + br label %endif5666 +endif5666: %t131 = getelementptr inbounds %S.gen.Val, ptr %a11, i32 0, i32 1 %t132 = getelementptr inbounds %S.ast.Type, ptr %t131, i32 0, i32 0 %t133 = load { ptr, i64, i64 }, ptr %t132 store { ptr, i64, i64 } %t133, ptr %a134 - store { ptr, i64, i64 } { ptr @.str.3545, i64 4, i64 0 }, ptr %a135 + store { ptr, i64, i64 } { ptr @.str.3630, i64 4, i64 0 }, ptr %a135 %t136 = call i32 @finch_str_eq(ptr %a134, ptr %a135) %t137 = icmp ne i32 %t136, 0 - br label %logic.from5525 -logic.from5525: - br i1 %t137, label %logic.end5527, label %logic.rhs5526 -logic.rhs5526: + br label %logic.from5669 +logic.from5669: + br i1 %t137, label %logic.end5671, label %logic.rhs5670 +logic.rhs5670: %t138 = getelementptr inbounds %S.gen.Val, ptr %a11, i32 0, i32 1 %t139 = getelementptr inbounds %S.ast.Type, ptr %t138, i32 0, i32 0 %t140 = load { ptr, i64, i64 }, ptr %t139 store { ptr, i64, i64 } %t140, ptr %a141 - store { ptr, i64, i64 } { ptr @.str.3546, i64 4, i64 0 }, ptr %a142 + store { ptr, i64, i64 } { ptr @.str.3631, i64 4, i64 0 }, ptr %a142 %t143 = call i32 @finch_str_eq(ptr %a141, ptr %a142) %t144 = icmp ne i32 %t143, 0 - br label %logic.rend5528 -logic.rend5528: - br label %logic.end5527 -logic.end5527: - %t145 = phi i1 [ true, %logic.from5525 ], [ %t144, %logic.rend5528 ] - br i1 %t145, label %then5529, label %endif5531 -then5529: + br label %logic.rend5672 +logic.rend5672: + br label %logic.end5671 +logic.end5671: + %t145 = phi i1 [ true, %logic.from5669 ], [ %t144, %logic.rend5672 ] + br i1 %t145, label %then5673, label %endif5675 +then5673: %t146 = load ptr, ptr %a1 %t147 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t148 = load { ptr, i64, i64 }, ptr %t147 %t149 = extractvalue { ptr, i64, i64 } %t148, 1 %t150 = icmp uge i64 1, %t149 - br i1 %t150, label %range5532, label %inrange5533 -range5532: - call void @finch_panic_index(ptr @.str.3547, i64 2801, i64 1, i64 %t149) + br i1 %t150, label %range5676, label %inrange5677 +range5676: + call void @finch_panic_index(ptr @.str.3632, i64 2882, i64 1, i64 %t149) unreachable -inrange5533: +inrange5677: %t151 = extractvalue { ptr, i64, i64 } %t148, 0 %t152 = getelementptr inbounds %S.ast.Node, ptr %t151, i64 1 %t153 = load %S.ast.Node, ptr %t152 - call void @finch.gen.fail(ptr %t146, %S.ast.Node %t153, { ptr, i64, i64 } { ptr @.str.3548, i64 37, i64 0 }) - br label %endif5531 -endif5531: + call void @finch.gen.fail(ptr %t146, %S.ast.Node %t153, { ptr, i64, i64 } { ptr @.str.3633, i64 37, i64 0 }) + br label %endif5675 +endif5675: %t154 = getelementptr inbounds %S.gen.Val, ptr %a11, i32 0, i32 1 %t155 = load %S.ast.Type, ptr %t154 store %S.ast.Type %t155, ptr %a156 @@ -56147,25 +57795,25 @@ endif5531: %t158 = load %S.ast.Type, ptr %a157 store %S.ast.Type %t158, ptr %a159 %t160 = load i1, ptr %a24 - br label %logic.from5534 -logic.from5534: - br i1 %t160, label %logic.rhs5535, label %logic.end5536 -logic.rhs5535: + br label %logic.from5678 +logic.from5678: + br i1 %t160, label %logic.rhs5679, label %logic.end5680 +logic.rhs5679: %t161 = load i1, ptr %a25 - br label %logic.rend5537 -logic.rend5537: - br label %logic.end5536 -logic.end5536: - %t162 = phi i1 [ false, %logic.from5534 ], [ %t161, %logic.rend5537 ] - br i1 %t162, label %then5538, label %endif5540 -then5538: - %t163 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3549, i64 5, i64 0 }) + br label %logic.rend5681 +logic.rend5681: + br label %logic.end5680 +logic.end5680: + %t162 = phi i1 [ false, %logic.from5678 ], [ %t161, %logic.rend5681 ] + br i1 %t162, label %then5682, label %endif5684 +then5682: + %t163 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3634, i64 5, i64 0 }) %t164 = load %S.ast.Type, ptr %a159 store %S.ast.Type %t163, ptr %a159 store %S.ast.Type %t164, ptr %a165 call void @finch.drop.S_ast_Type(ptr %a165) - br label %endif5540 -endif5540: + br label %endif5684 +endif5684: %t166 = getelementptr inbounds %S.gen.Val, ptr %a10, i32 0, i32 1 %t167 = load %S.ast.Type, ptr %t166 %t168 = load %S.ast.Type, ptr %a159 @@ -56176,8 +57824,8 @@ endif5540: call void @finch.drop.S_ast_Type(ptr %a171) store i1 true, ptr %a9 call void @finch.drop.S_ast_Type(ptr %a159) - br label %endif5487 -endif5487: + br label %endif5631 +endif5631: %t172 = load ptr, ptr %a1 %t173 = load ptr, ptr %a1 %t174 = load %S.ast.Type, ptr %a8 @@ -56191,16 +57839,16 @@ endif5487: %t181 = load %S.ast.Type, ptr %a8 %t182 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t180, %S.ast.Type %t181) %t183 = load { ptr, i64, i64 }, ptr %a178 - call void @finch.gen.store(ptr %t179, { ptr, i64, i64 } %t182, { ptr, i64, i64 } { ptr @.str.3550, i64 15, i64 0 }, { ptr, i64, i64 } %t183) + call void @finch.gen.store(ptr %t179, { ptr, i64, i64 } %t182, { ptr, i64, i64 } { ptr @.str.3635, i64 15, i64 0 }, { ptr, i64, i64 } %t183) store { ptr, i64, i64 } %t182, ptr %a184 call void @finch_str_drop(ptr %a184) %t185 = load ptr, ptr %a1 %t186 = icmp eq ptr %t185, null - br i1 %t186, label %panic5541, label %ok5542 -panic5541: - call void @finch_panic(ptr @.str.3551, i64 2812, ptr @.str.3552) + br i1 %t186, label %panic5685, label %ok5686 +panic5685: + call void @finch_panic(ptr @.str.3636, i64 2893, ptr @.str.3637) unreachable -ok5542: +ok5686: %t187 = getelementptr inbounds %S.gen.Gen, ptr %t185, i32 0, i32 11 %t188 = getelementptr inbounds { ptr, i64, i64 }, ptr %t187, i32 0, i32 1 %t189 = load i64, ptr %t188 @@ -56214,19 +57862,19 @@ ok5542: %t196 = load i64, ptr %t195 %t197 = sdiv i64 %t196, 2 store i64 0, ptr %a198 - br label %for.cond5543 -for.cond5543: + br label %for.cond5687 +for.cond5687: %t199 = load i64, ptr %a198 %t200 = icmp slt i64 %t199, %t197 - br i1 %t200, label %for.body5544, label %for.end5546 -for.body5544: + br i1 %t200, label %for.body5688, label %for.end5690 +for.body5688: %t201 = load ptr, ptr %a1 %t202 = icmp eq ptr %t201, null - br i1 %t202, label %panic5547, label %ok5548 -panic5547: - call void @finch_panic(ptr @.str.3553, i64 2815, ptr @.str.3554) + br i1 %t202, label %panic5691, label %ok5692 +panic5691: + call void @finch_panic(ptr @.str.3638, i64 2896, ptr @.str.3639) unreachable -ok5548: +ok5692: %t203 = getelementptr inbounds %S.gen.Gen, ptr %t201, i32 0, i32 11 %t204 = getelementptr inbounds { ptr, i64, i64 }, ptr %t203, i32 0, i32 1 %t205 = load i64, ptr %t204 @@ -56238,19 +57886,19 @@ ok5548: store %S.gen.Val %t210, ptr %a211 %t212 = load i64, ptr %a198 %t213 = icmp eq i64 %t212, 0 - br label %logic.from5549 -logic.from5549: - br i1 %t213, label %logic.rhs5550, label %logic.end5551 -logic.rhs5550: + br label %logic.from5693 +logic.from5693: + br i1 %t213, label %logic.rhs5694, label %logic.end5695 +logic.rhs5694: %t214 = load i1, ptr %a9 - br label %logic.rend5552 -logic.rend5552: - br label %logic.end5551 -logic.end5551: - %t215 = phi i1 [ false, %logic.from5549 ], [ %t214, %logic.rend5552 ] + br label %logic.rend5696 +logic.rend5696: + br label %logic.end5695 +logic.end5695: + %t215 = phi i1 [ false, %logic.from5693 ], [ %t214, %logic.rend5696 ] %t216 = xor i1 %t215, true - br i1 %t216, label %then5553, label %endif5555 -then5553: + br i1 %t216, label %then5697, label %endif5699 +then5697: %t217 = load ptr, ptr %a1 %t218 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t219 = load i64, ptr %a198 @@ -56258,11 +57906,11 @@ then5553: %t221 = load { ptr, i64, i64 }, ptr %t218 %t222 = extractvalue { ptr, i64, i64 } %t221, 1 %t223 = icmp uge i64 %t220, %t222 - br i1 %t223, label %range5556, label %inrange5557 -range5556: - call void @finch_panic_index(ptr @.str.3555, i64 2818, i64 %t220, i64 %t222) + br i1 %t223, label %range5700, label %inrange5701 +range5700: + call void @finch_panic_index(ptr @.str.3640, i64 2899, i64 %t220, i64 %t222) unreachable -inrange5557: +inrange5701: %t224 = extractvalue { ptr, i64, i64 } %t221, 0 %t225 = getelementptr inbounds %S.ast.Node, ptr %t224, i64 %t220 %t226 = load %S.ast.Node, ptr %t225 @@ -56270,11 +57918,11 @@ inrange5557: %t228 = load { ptr, i64, i64 }, ptr %t227 %t229 = extractvalue { ptr, i64, i64 } %t228, 1 %t230 = icmp uge i64 0, %t229 - br i1 %t230, label %range5558, label %inrange5559 -range5558: - call void @finch_panic_index(ptr @.str.3556, i64 2818, i64 0, i64 %t229) + br i1 %t230, label %range5702, label %inrange5703 +range5702: + call void @finch_panic_index(ptr @.str.3641, i64 2899, i64 0, i64 %t229) unreachable -inrange5559: +inrange5703: %t231 = extractvalue { ptr, i64, i64 } %t228, 0 %t232 = getelementptr inbounds %S.ast.Type, ptr %t231, i64 0 %t233 = load %S.ast.Type, ptr %t232 @@ -56283,19 +57931,19 @@ inrange5559: store %S.gen.Val %t234, ptr %a211 store %S.gen.Val %t235, ptr %a236 call void @finch.drop.S_gen_Val(ptr %a236) - br label %endif5555 -endif5555: + br label %endif5699 +endif5699: %t237 = load ptr, ptr %a1 %t238 = load %S.gen.Val, ptr %a211 %t239 = getelementptr inbounds %S.ast.Type, ptr %a8, i32 0, i32 1 %t240 = load { ptr, i64, i64 }, ptr %t239 %t241 = extractvalue { ptr, i64, i64 } %t240, 1 %t242 = icmp uge i64 0, %t241 - br i1 %t242, label %range5560, label %inrange5561 -range5560: - call void @finch_panic_index(ptr @.str.3557, i64 2820, i64 0, i64 %t241) + br i1 %t242, label %range5704, label %inrange5705 +range5704: + call void @finch_panic_index(ptr @.str.3642, i64 2901, i64 0, i64 %t241) unreachable -inrange5561: +inrange5705: %t243 = extractvalue { ptr, i64, i64 } %t240, 0 %t244 = getelementptr inbounds %S.ast.Type, ptr %t243, i64 0 %t245 = load %S.ast.Type, ptr %t244 @@ -56305,15 +57953,15 @@ inrange5561: %t249 = load { ptr, i64, i64 }, ptr %t246 %t250 = extractvalue { ptr, i64, i64 } %t249, 1 %t251 = icmp uge i64 %t248, %t250 - br i1 %t251, label %range5562, label %inrange5563 -range5562: - call void @finch_panic_index(ptr @.str.3558, i64 2820, i64 %t248, i64 %t250) + br i1 %t251, label %range5706, label %inrange5707 +range5706: + call void @finch_panic_index(ptr @.str.3643, i64 2901, i64 %t248, i64 %t250) unreachable -inrange5563: +inrange5707: %t252 = extractvalue { ptr, i64, i64 } %t249, 0 %t253 = getelementptr inbounds %S.ast.Node, ptr %t252, i64 %t248 %t254 = load %S.ast.Node, ptr %t253 - %t255 = call %S.gen.Val @finch.gen.coerce(ptr %t237, %S.gen.Val %t238, %S.ast.Type %t245, %S.ast.Node %t254, { ptr, i64, i64 } { ptr @.str.3559, i64 21, i64 0 }) + %t255 = call %S.gen.Val @finch.gen.coerce(ptr %t237, %S.gen.Val %t238, %S.ast.Type %t245, %S.ast.Node %t254, { ptr, i64, i64 } { ptr @.str.3644, i64 21, i64 0 }) %t256 = load %S.gen.Val, ptr %a211 store %S.gen.Val %t255, ptr %a211 store %S.gen.Val %t256, ptr %a257 @@ -56328,19 +57976,19 @@ inrange5563: store %S.gen.Val %t263, ptr %a264 %t265 = load i64, ptr %a198 %t266 = icmp eq i64 %t265, 0 - br label %logic.from5564 -logic.from5564: - br i1 %t266, label %logic.rhs5565, label %logic.end5566 -logic.rhs5565: + br label %logic.from5708 +logic.from5708: + br i1 %t266, label %logic.rhs5709, label %logic.end5710 +logic.rhs5709: %t267 = load i1, ptr %a9 - br label %logic.rend5567 -logic.rend5567: - br label %logic.end5566 -logic.end5566: - %t268 = phi i1 [ false, %logic.from5564 ], [ %t267, %logic.rend5567 ] + br label %logic.rend5711 +logic.rend5711: + br label %logic.end5710 +logic.end5710: + %t268 = phi i1 [ false, %logic.from5708 ], [ %t267, %logic.rend5711 ] %t269 = xor i1 %t268, true - br i1 %t269, label %then5568, label %endif5570 -then5568: + br i1 %t269, label %then5712, label %endif5714 +then5712: %t270 = load ptr, ptr %a1 %t271 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t272 = load i64, ptr %a198 @@ -56349,11 +57997,11 @@ then5568: %t275 = load { ptr, i64, i64 }, ptr %t271 %t276 = extractvalue { ptr, i64, i64 } %t275, 1 %t277 = icmp uge i64 %t274, %t276 - br i1 %t277, label %range5571, label %inrange5572 -range5571: - call void @finch_panic_index(ptr @.str.3560, i64 2824, i64 %t274, i64 %t276) + br i1 %t277, label %range5715, label %inrange5716 +range5715: + call void @finch_panic_index(ptr @.str.3645, i64 2905, i64 %t274, i64 %t276) unreachable -inrange5572: +inrange5716: %t278 = extractvalue { ptr, i64, i64 } %t275, 0 %t279 = getelementptr inbounds %S.ast.Node, ptr %t278, i64 %t274 %t280 = load %S.ast.Node, ptr %t279 @@ -56361,11 +58009,11 @@ inrange5572: %t282 = load { ptr, i64, i64 }, ptr %t281 %t283 = extractvalue { ptr, i64, i64 } %t282, 1 %t284 = icmp uge i64 1, %t283 - br i1 %t284, label %range5573, label %inrange5574 -range5573: - call void @finch_panic_index(ptr @.str.3561, i64 2824, i64 1, i64 %t283) + br i1 %t284, label %range5717, label %inrange5718 +range5717: + call void @finch_panic_index(ptr @.str.3646, i64 2905, i64 1, i64 %t283) unreachable -inrange5574: +inrange5718: %t285 = extractvalue { ptr, i64, i64 } %t282, 0 %t286 = getelementptr inbounds %S.ast.Type, ptr %t285, i64 1 %t287 = load %S.ast.Type, ptr %t286 @@ -56374,19 +58022,19 @@ inrange5574: store %S.gen.Val %t288, ptr %a264 store %S.gen.Val %t289, ptr %a290 call void @finch.drop.S_gen_Val(ptr %a290) - br label %endif5570 -endif5570: + br label %endif5714 +endif5714: %t291 = load ptr, ptr %a1 %t292 = load %S.gen.Val, ptr %a264 %t293 = getelementptr inbounds %S.ast.Type, ptr %a8, i32 0, i32 1 %t294 = load { ptr, i64, i64 }, ptr %t293 %t295 = extractvalue { ptr, i64, i64 } %t294, 1 %t296 = icmp uge i64 1, %t295 - br i1 %t296, label %range5575, label %inrange5576 -range5575: - call void @finch_panic_index(ptr @.str.3562, i64 2826, i64 1, i64 %t295) + br i1 %t296, label %range5719, label %inrange5720 +range5719: + call void @finch_panic_index(ptr @.str.3647, i64 2907, i64 1, i64 %t295) unreachable -inrange5576: +inrange5720: %t297 = extractvalue { ptr, i64, i64 } %t294, 0 %t298 = getelementptr inbounds %S.ast.Type, ptr %t297, i64 1 %t299 = load %S.ast.Type, ptr %t298 @@ -56397,15 +58045,15 @@ inrange5576: %t304 = load { ptr, i64, i64 }, ptr %t300 %t305 = extractvalue { ptr, i64, i64 } %t304, 1 %t306 = icmp uge i64 %t303, %t305 - br i1 %t306, label %range5577, label %inrange5578 -range5577: - call void @finch_panic_index(ptr @.str.3563, i64 2826, i64 %t303, i64 %t305) + br i1 %t306, label %range5721, label %inrange5722 +range5721: + call void @finch_panic_index(ptr @.str.3648, i64 2907, i64 %t303, i64 %t305) unreachable -inrange5578: +inrange5722: %t307 = extractvalue { ptr, i64, i64 } %t304, 0 %t308 = getelementptr inbounds %S.ast.Node, ptr %t307, i64 %t303 %t309 = load %S.ast.Node, ptr %t308 - %t310 = call %S.gen.Val @finch.gen.coerce(ptr %t291, %S.gen.Val %t292, %S.ast.Type %t299, %S.ast.Node %t309, { ptr, i64, i64 } { ptr @.str.3564, i64 23, i64 0 }) + %t310 = call %S.gen.Val @finch.gen.coerce(ptr %t291, %S.gen.Val %t292, %S.ast.Type %t299, %S.ast.Node %t309, { ptr, i64, i64 } { ptr @.str.3649, i64 23, i64 0 }) %t311 = load %S.gen.Val, ptr %a264 store %S.gen.Val %t310, ptr %a264 store %S.gen.Val %t311, ptr %a312 @@ -56432,11 +58080,11 @@ inrange5578: %t332 = load { ptr, i64, i64 }, ptr %t331 %t333 = extractvalue { ptr, i64, i64 } %t332, 1 %t334 = icmp uge i64 1, %t333 - br i1 %t334, label %range5579, label %inrange5580 -range5579: - call void @finch_panic_index(ptr @.str.3565, i64 2830, i64 1, i64 %t333) + br i1 %t334, label %range5723, label %inrange5724 +range5723: + call void @finch_panic_index(ptr @.str.3650, i64 2911, i64 1, i64 %t333) unreachable -inrange5580: +inrange5724: %t335 = extractvalue { ptr, i64, i64 } %t332, 0 %t336 = getelementptr inbounds %S.ast.Type, ptr %t335, i64 1 %t337 = load %S.ast.Type, ptr %t336 @@ -56447,11 +58095,11 @@ inrange5580: %t341 = load { ptr, i64, i64 }, ptr %t340 %t342 = extractvalue { ptr, i64, i64 } %t341, 1 %t343 = icmp uge i64 1, %t342 - br i1 %t343, label %range5581, label %inrange5582 -range5581: - call void @finch_panic_index(ptr @.str.3566, i64 2831, i64 1, i64 %t342) + br i1 %t343, label %range5725, label %inrange5726 +range5725: + call void @finch_panic_index(ptr @.str.3651, i64 2912, i64 1, i64 %t342) unreachable -inrange5582: +inrange5726: %t344 = extractvalue { ptr, i64, i64 } %t341, 0 %t345 = getelementptr inbounds %S.ast.Type, ptr %t344, i64 1 %t346 = load %S.ast.Type, ptr %t345 @@ -56472,13 +58120,13 @@ inrange5582: call void @finch_str_drop(ptr %a316) call void @finch.drop.S_gen_Val(ptr %a264) call void @finch.drop.S_gen_Val(ptr %a211) - br label %for.step5545 -for.step5545: + br label %for.step5689 +for.step5689: %t355 = load i64, ptr %a198 %t356 = add i64 %t355, 1 store i64 %t356, ptr %a198 - br label %for.cond5543 -for.end5546: + br label %for.cond5687 +for.end5690: %t357 = load ptr, ptr %a1 %t358 = load i64, ptr %a190 call void @finch.gen.heldEnd(ptr %t357, i64 %t358) @@ -56832,11 +58480,11 @@ entry: %t12 = load { ptr, i64, i64 }, ptr %t11 %t13 = extractvalue { ptr, i64, i64 } %t12, 1 %t14 = icmp uge i64 0, %t13 - br i1 %t14, label %range5583, label %inrange5584 -range5583: - call void @finch_panic_index(ptr @.str.3567, i64 2841, i64 0, i64 %t13) + br i1 %t14, label %range5727, label %inrange5728 +range5727: + call void @finch_panic_index(ptr @.str.3652, i64 2922, i64 0, i64 %t13) unreachable -inrange5584: +inrange5728: %t15 = extractvalue { ptr, i64, i64 } %t12, 0 %t16 = getelementptr inbounds %S.ast.Type, ptr %t15, i64 0 %t17 = load %S.ast.Type, ptr %t16 @@ -56848,11 +58496,11 @@ inrange5584: %t23 = load { ptr, i64, i64 }, ptr %t22 %t24 = extractvalue { ptr, i64, i64 } %t23, 1 %t25 = icmp uge i64 1, %t24 - br i1 %t25, label %range5585, label %inrange5586 -range5585: - call void @finch_panic_index(ptr @.str.3568, i64 2842, i64 1, i64 %t24) + br i1 %t25, label %range5729, label %inrange5730 +range5729: + call void @finch_panic_index(ptr @.str.3653, i64 2923, i64 1, i64 %t24) unreachable -inrange5586: +inrange5730: %t26 = extractvalue { ptr, i64, i64 } %t23, 0 %t27 = getelementptr inbounds %S.ast.Type, ptr %t26, i64 1 %t28 = load %S.ast.Type, ptr %t27 @@ -56862,69 +58510,69 @@ inrange5586: store %S.ast.Type %t31, ptr %a32 %t33 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t33, ptr %a34 - store { ptr, i64, i64 } { ptr @.str.3569, i64 3, i64 0 }, ptr %a35 + store { ptr, i64, i64 } { ptr @.str.3654, i64 3, i64 0 }, ptr %a35 %t36 = call i32 @finch_str_eq(ptr %a34, ptr %a35) %t37 = icmp ne i32 %t36, 0 - br label %logic.from5587 -logic.from5587: - br i1 %t37, label %logic.end5589, label %logic.rhs5588 -logic.rhs5588: + br label %logic.from5731 +logic.from5731: + br i1 %t37, label %logic.end5733, label %logic.rhs5732 +logic.rhs5732: %t38 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t38, ptr %a39 - store { ptr, i64, i64 } { ptr @.str.3570, i64 3, i64 0 }, ptr %a40 + store { ptr, i64, i64 } { ptr @.str.3655, i64 3, i64 0 }, ptr %a40 %t41 = call i32 @finch_str_eq(ptr %a39, ptr %a40) %t42 = icmp ne i32 %t41, 0 - br label %logic.rend5590 -logic.rend5590: - br label %logic.end5589 -logic.end5589: - %t43 = phi i1 [ true, %logic.from5587 ], [ %t42, %logic.rend5590 ] - br label %logic.from5591 -logic.from5591: - br i1 %t43, label %logic.end5593, label %logic.rhs5592 -logic.rhs5592: + br label %logic.rend5734 +logic.rend5734: + br label %logic.end5733 +logic.end5733: + %t43 = phi i1 [ true, %logic.from5731 ], [ %t42, %logic.rend5734 ] + br label %logic.from5735 +logic.from5735: + br i1 %t43, label %logic.end5737, label %logic.rhs5736 +logic.rhs5736: %t44 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t44, ptr %a45 - store { ptr, i64, i64 } { ptr @.str.3571, i64 6, i64 0 }, ptr %a46 + store { ptr, i64, i64 } { ptr @.str.3656, i64 6, i64 0 }, ptr %a46 %t47 = call i32 @finch_str_eq(ptr %a45, ptr %a46) %t48 = icmp ne i32 %t47, 0 - br label %logic.rend5594 -logic.rend5594: - br label %logic.end5593 -logic.end5593: - %t49 = phi i1 [ true, %logic.from5591 ], [ %t48, %logic.rend5594 ] - br i1 %t49, label %then5595, label %endif5597 -then5595: + br label %logic.rend5738 +logic.rend5738: + br label %logic.end5737 +logic.end5737: + %t49 = phi i1 [ true, %logic.from5735 ], [ %t48, %logic.rend5738 ] + br i1 %t49, label %then5739, label %endif5741 +then5739: %t50 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t50, ptr %a51 - store { ptr, i64, i64 } { ptr @.str.3572, i64 3, i64 0 }, ptr %a52 + store { ptr, i64, i64 } { ptr @.str.3657, i64 3, i64 0 }, ptr %a52 %t53 = call i32 @finch_str_eq(ptr %a51, ptr %a52) %t54 = icmp ne i32 %t53, 0 - br i1 %t54, label %then5598, label %else5599 -then5598: + br i1 %t54, label %then5742, label %else5743 +then5742: %t55 = load ptr, ptr %a1 %t56 = load %S.ast.Node, ptr %a2 %t57 = load { ptr, i64, i64 }, ptr %a10 call void @finch.gen.checkArgs(ptr %t55, %S.ast.Node %t56, i64 1, i64 2, { ptr, i64, i64 } %t57) - br label %endif5600 -else5599: + br label %endif5744 +else5743: %t58 = load ptr, ptr %a1 %t59 = load %S.ast.Node, ptr %a2 %t60 = load { ptr, i64, i64 }, ptr %a10 call void @finch.gen.checkArgs(ptr %t58, %S.ast.Node %t59, i64 1, i64 1, { ptr, i64, i64 } %t60) - br label %endif5600 -endif5600: + br label %endif5744 +endif5744: %t61 = load ptr, ptr %a1 %t62 = load ptr, ptr %a1 %t63 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t64 = load { ptr, i64, i64 }, ptr %t63 %t65 = extractvalue { ptr, i64, i64 } %t64, 1 %t66 = icmp uge i64 1, %t65 - br i1 %t66, label %range5601, label %inrange5602 -range5601: - call void @finch_panic_index(ptr @.str.3573, i64 2849, i64 1, i64 %t65) + br i1 %t66, label %range5745, label %inrange5746 +range5745: + call void @finch_panic_index(ptr @.str.3658, i64 2930, i64 1, i64 %t65) unreachable -inrange5602: +inrange5746: %t67 = extractvalue { ptr, i64, i64 } %t64, 0 %t68 = getelementptr inbounds %S.ast.Node, ptr %t67, i64 1 %t69 = load %S.ast.Node, ptr %t68 @@ -56935,15 +58583,15 @@ inrange5602: %t74 = load { ptr, i64, i64 }, ptr %t73 %t75 = extractvalue { ptr, i64, i64 } %t74, 1 %t76 = icmp uge i64 1, %t75 - br i1 %t76, label %range5603, label %inrange5604 -range5603: - call void @finch_panic_index(ptr @.str.3574, i64 2849, i64 1, i64 %t75) + br i1 %t76, label %range5747, label %inrange5748 +range5747: + call void @finch_panic_index(ptr @.str.3659, i64 2930, i64 1, i64 %t75) unreachable -inrange5604: +inrange5748: %t77 = extractvalue { ptr, i64, i64 } %t74, 0 %t78 = getelementptr inbounds %S.ast.Node, ptr %t77, i64 1 %t79 = load %S.ast.Node, ptr %t78 - %t80 = call %S.gen.Val @finch.gen.coerce(ptr %t61, %S.gen.Val %t71, %S.ast.Type %t72, %S.ast.Node %t79, { ptr, i64, i64 } { ptr @.str.3575, i64 7, i64 0 }) + %t80 = call %S.gen.Val @finch.gen.coerce(ptr %t61, %S.gen.Val %t71, %S.ast.Type %t72, %S.ast.Node %t79, { ptr, i64, i64 } { ptr @.str.3660, i64 7, i64 0 }) store %S.gen.Val %t71, ptr %a81 call void @finch.drop.S_gen_Val(ptr %a81) store %S.gen.Val %t80, ptr %a82 @@ -56962,12 +58610,12 @@ inrange5604: call void @finch.gen.release(ptr %t92, %S.gen.Val %t93) %t94 = load ptr, ptr %a1 %t95 = load { ptr, i64, i64 }, ptr %a91 - store { ptr, i64, i64 } { ptr @.str.3576, i64 13, i64 0 }, ptr %a97 + store { ptr, i64, i64 } { ptr @.str.3661, i64 13, i64 0 }, ptr %a97 store { ptr, i64, i64 } %t95, ptr %a98 call void @finch_str_concat(ptr %a96, ptr %a97, ptr %a98) %t99 = load { ptr, i64, i64 }, ptr %a96 store { ptr, i64, i64 } %t99, ptr %a101 - store { ptr, i64, i64 } { ptr @.str.3577, i64 3, i64 0 }, ptr %a102 + store { ptr, i64, i64 } { ptr @.str.3662, i64 3, i64 0 }, ptr %a102 call void @finch_str_concat(ptr %a100, ptr %a101, ptr %a102) store { ptr, i64, i64 } %t99, ptr %a103 call void @finch_str_drop(ptr %a103) @@ -56978,17 +58626,17 @@ inrange5604: store { ptr, i64, i64 } %t105, ptr %a107 %t108 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t108, ptr %a109 - store { ptr, i64, i64 } { ptr @.str.3578, i64 3, i64 0 }, ptr %a110 + store { ptr, i64, i64 } { ptr @.str.3663, i64 3, i64 0 }, ptr %a110 %t111 = call i32 @finch_str_eq(ptr %a109, ptr %a110) %t112 = icmp ne i32 %t111, 0 - br i1 %t112, label %then5605, label %endif5607 -then5605: + br i1 %t112, label %then5749, label %endif5751 +then5749: %t113 = load { ptr, i64, i64 }, ptr %a107 store { ptr, i64, i64 } %t113, ptr %a114 call void @finch_str_copy(ptr %a115, ptr %a114) %t116 = load { ptr, i64, i64 }, ptr %a115 %t117 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t116, 0 - %t118 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3579, i64 4, i64 0 }) + %t118 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3664, i64 4, i64 0 }) %t119 = insertvalue %S.gen.Val %t117, %S.ast.Type %t118, 1 call void @finch_str_drop(ptr %a107) call void @finch_str_drop(ptr %a91) @@ -56997,19 +58645,19 @@ then5605: call void @finch.drop.S_ast_Type(ptr %a21) call void @finch_str_drop(ptr %a10) ret %S.gen.Val %t119 -endif5607: +endif5751: %t120 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t120, ptr %a121 - store { ptr, i64, i64 } { ptr @.str.3580, i64 6, i64 0 }, ptr %a122 + store { ptr, i64, i64 } { ptr @.str.3665, i64 6, i64 0 }, ptr %a122 %t123 = call i32 @finch_str_eq(ptr %a121, ptr %a122) %t124 = icmp ne i32 %t123, 0 - br i1 %t124, label %then5608, label %endif5610 -then5608: + br i1 %t124, label %then5752, label %endif5754 +then5752: %t125 = load ptr, ptr %a1 - %t126 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t125, { ptr, i64, i64 } { ptr @.str.3581, i64 10, i64 0 }) + %t126 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t125, { ptr, i64, i64 } { ptr @.str.3666, i64 10, i64 0 }) store { ptr, i64, i64 } %t126, ptr %a127 %t128 = load ptr, ptr %a1 - %t129 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t128, { ptr, i64, i64 } { ptr @.str.3582, i64 10, i64 0 }) + %t129 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t128, { ptr, i64, i64 } { ptr @.str.3667, i64 10, i64 0 }) store { ptr, i64, i64 } %t129, ptr %a130 %t131 = load ptr, ptr %a1 %t132 = load { ptr, i64, i64 }, ptr %a107 @@ -57045,12 +58693,12 @@ then5608: call void @finch_str_drop(ptr %a156) %t157 = load ptr, ptr %a1 %t158 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.3583, i64 35, i64 0 }, ptr %a160 + store { ptr, i64, i64 } { ptr @.str.3668, i64 35, i64 0 }, ptr %a160 store { ptr, i64, i64 } %t158, ptr %a161 call void @finch_str_concat(ptr %a159, ptr %a160, ptr %a161) %t162 = load { ptr, i64, i64 }, ptr %a159 store { ptr, i64, i64 } %t162, ptr %a164 - store { ptr, i64, i64 } { ptr @.str.3584, i64 6, i64 0 }, ptr %a165 + store { ptr, i64, i64 } { ptr @.str.3669, i64 6, i64 0 }, ptr %a165 call void @finch_str_concat(ptr %a163, ptr %a164, ptr %a165) store { ptr, i64, i64 } %t162, ptr %a166 call void @finch_str_drop(ptr %a166) @@ -57063,7 +58711,7 @@ then5608: call void @finch_str_drop(ptr %a172) %t173 = load { ptr, i64, i64 }, ptr %a169 store { ptr, i64, i64 } %t173, ptr %a175 - store { ptr, i64, i64 } { ptr @.str.3585, i64 6, i64 0 }, ptr %a176 + store { ptr, i64, i64 } { ptr @.str.3670, i64 6, i64 0 }, ptr %a176 call void @finch_str_concat(ptr %a174, ptr %a175, ptr %a176) store { ptr, i64, i64 } %t173, ptr %a177 call void @finch_str_drop(ptr %a177) @@ -57080,7 +58728,7 @@ then5608: call void @finch_str_drop(ptr %a186) %t187 = load { ptr, i64, i64 }, ptr %a182 store { ptr, i64, i64 } %t187, ptr %a189 - store { ptr, i64, i64 } { ptr @.str.3586, i64 1, i64 0 }, ptr %a190 + store { ptr, i64, i64 } { ptr @.str.3671, i64 1, i64 0 }, ptr %a190 call void @finch_str_concat(ptr %a188, ptr %a189, ptr %a190) store { ptr, i64, i64 } %t187, ptr %a191 call void @finch_str_drop(ptr %a191) @@ -57099,7 +58747,7 @@ then5608: call void @finch_str_copy(ptr %a200, ptr %a199) %t201 = load { ptr, i64, i64 }, ptr %a200 %t202 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t201, 0 - %t203 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3587, i64 4, i64 0 }) + %t203 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3672, i64 4, i64 0 }) %t204 = insertvalue %S.gen.Val %t202, %S.ast.Type %t203, 1 call void @finch_str_drop(ptr %a142) call void @finch_str_drop(ptr %a130) @@ -57111,21 +58759,21 @@ then5608: call void @finch.drop.S_ast_Type(ptr %a21) call void @finch_str_drop(ptr %a10) ret %S.gen.Val %t204 -endif5610: +endif5754: %t205 = load ptr, ptr %a1 - %t206 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t205, { ptr, i64, i64 } { ptr @.str.3588, i64 9, i64 0 }) + %t206 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t205, { ptr, i64, i64 } { ptr @.str.3673, i64 9, i64 0 }) store { ptr, i64, i64 } %t206, ptr %a207 %t208 = load ptr, ptr %a1 - %t209 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t208, { ptr, i64, i64 } { ptr @.str.3589, i64 11, i64 0 }) + %t209 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t208, { ptr, i64, i64 } { ptr @.str.3674, i64 11, i64 0 }) store { ptr, i64, i64 } %t209, ptr %a210 %t211 = load ptr, ptr %a1 - %t212 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t211, { ptr, i64, i64 } { ptr @.str.3590, i64 8, i64 0 }) + %t212 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t211, { ptr, i64, i64 } { ptr @.str.3675, i64 8, i64 0 }) store { ptr, i64, i64 } %t212, ptr %a213 %t214 = load ptr, ptr %a1 - %t215 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t214, { ptr, i64, i64 } { ptr @.str.3591, i64 8, i64 0 }) + %t215 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t214, { ptr, i64, i64 } { ptr @.str.3676, i64 8, i64 0 }) store { ptr, i64, i64 } %t215, ptr %a216 %t217 = load ptr, ptr %a1 - %t218 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t217, { ptr, i64, i64 } { ptr @.str.3592, i64 7, i64 0 }) + %t218 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t217, { ptr, i64, i64 } { ptr @.str.3677, i64 7, i64 0 }) store { ptr, i64, i64 } %t218, ptr %a219 %t220 = load ptr, ptr %a1 %t221 = load { ptr, i64, i64 }, ptr %a107 @@ -57179,11 +58827,11 @@ endif5610: %t259 = load { ptr, i64, i64 }, ptr %t258 %t260 = extractvalue { ptr, i64, i64 } %t259, 1 %t261 = icmp uge i64 2, %t260 - br i1 %t261, label %range5611, label %inrange5612 -range5611: - call void @finch_panic_index(ptr @.str.3593, i64 2882, i64 2, i64 %t260) + br i1 %t261, label %range5755, label %inrange5756 +range5755: + call void @finch_panic_index(ptr @.str.3678, i64 2963, i64 2, i64 %t260) unreachable -inrange5612: +inrange5756: %t262 = extractvalue { ptr, i64, i64 } %t259, 0 %t263 = getelementptr inbounds %S.ast.Node, ptr %t262, i64 2 %t264 = load %S.ast.Node, ptr %t263 @@ -57194,15 +58842,15 @@ inrange5612: %t269 = load { ptr, i64, i64 }, ptr %t268 %t270 = extractvalue { ptr, i64, i64 } %t269, 1 %t271 = icmp uge i64 2, %t270 - br i1 %t271, label %range5613, label %inrange5614 -range5613: - call void @finch_panic_index(ptr @.str.3594, i64 2882, i64 2, i64 %t270) + br i1 %t271, label %range5757, label %inrange5758 +range5757: + call void @finch_panic_index(ptr @.str.3679, i64 2963, i64 2, i64 %t270) unreachable -inrange5614: +inrange5758: %t272 = extractvalue { ptr, i64, i64 } %t269, 0 %t273 = getelementptr inbounds %S.ast.Node, ptr %t272, i64 2 %t274 = load %S.ast.Node, ptr %t273 - %t275 = call %S.gen.Val @finch.gen.coerce(ptr %t256, %S.gen.Val %t266, %S.ast.Type %t267, %S.ast.Node %t274, { ptr, i64, i64 } { ptr @.str.3595, i64 11, i64 0 }) + %t275 = call %S.gen.Val @finch.gen.coerce(ptr %t256, %S.gen.Val %t266, %S.ast.Type %t267, %S.ast.Node %t274, { ptr, i64, i64 } { ptr @.str.3680, i64 11, i64 0 }) store %S.gen.Val %t266, ptr %a276 call void @finch.drop.S_gen_Val(ptr %a276) %t277 = call { ptr, i64, i64 } @finch.gen.own(ptr %t255, %S.gen.Val %t275) @@ -57225,14 +58873,14 @@ inrange5614: %t289 = load ptr, ptr %a1 %t290 = load %S.ast.Type, ptr %a32 %t291 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t289, %S.ast.Type %t290) - store { ptr, i64, i64 } { ptr @.str.3596, i64 4, i64 0 }, ptr %a293 + store { ptr, i64, i64 } { ptr @.str.3681, i64 4, i64 0 }, ptr %a293 store { ptr, i64, i64 } %t291, ptr %a294 call void @finch_str_concat(ptr %a292, ptr %a293, ptr %a294) store { ptr, i64, i64 } %t291, ptr %a295 call void @finch_str_drop(ptr %a295) %t296 = load { ptr, i64, i64 }, ptr %a292 store { ptr, i64, i64 } %t296, ptr %a298 - store { ptr, i64, i64 } { ptr @.str.3597, i64 3, i64 0 }, ptr %a299 + store { ptr, i64, i64 } { ptr @.str.3682, i64 3, i64 0 }, ptr %a299 call void @finch_str_concat(ptr %a297, ptr %a298, ptr %a299) store { ptr, i64, i64 } %t296, ptr %a300 call void @finch_str_drop(ptr %a300) @@ -57245,7 +58893,7 @@ inrange5614: call void @finch_str_drop(ptr %a306) %t307 = load { ptr, i64, i64 }, ptr %a303 store { ptr, i64, i64 } %t307, ptr %a309 - store { ptr, i64, i64 } { ptr @.str.3598, i64 3, i64 0 }, ptr %a310 + store { ptr, i64, i64 } { ptr @.str.3683, i64 3, i64 0 }, ptr %a310 call void @finch_str_concat(ptr %a308, ptr %a309, ptr %a310) store { ptr, i64, i64 } %t307, ptr %a311 call void @finch_str_drop(ptr %a311) @@ -57258,7 +58906,7 @@ inrange5614: call void @finch_str_drop(ptr %a317) %t318 = load { ptr, i64, i64 }, ptr %a314 store { ptr, i64, i64 } %t318, ptr %a320 - store { ptr, i64, i64 } { ptr @.str.3599, i64 6, i64 0 }, ptr %a321 + store { ptr, i64, i64 } { ptr @.str.3684, i64 6, i64 0 }, ptr %a321 call void @finch_str_concat(ptr %a319, ptr %a320, ptr %a321) store { ptr, i64, i64 } %t318, ptr %a322 call void @finch_str_drop(ptr %a322) @@ -57271,7 +58919,7 @@ inrange5614: call void @finch_str_drop(ptr %a328) %t329 = load { ptr, i64, i64 }, ptr %a325 store { ptr, i64, i64 } %t329, ptr %a331 - store { ptr, i64, i64 } { ptr @.str.3600, i64 3, i64 0 }, ptr %a332 + store { ptr, i64, i64 } { ptr @.str.3685, i64 3, i64 0 }, ptr %a332 call void @finch_str_concat(ptr %a330, ptr %a331, ptr %a332) store { ptr, i64, i64 } %t329, ptr %a333 call void @finch_str_drop(ptr %a333) @@ -57284,7 +58932,7 @@ inrange5614: call void @finch_str_drop(ptr %a339) %t340 = load { ptr, i64, i64 }, ptr %a336 store { ptr, i64, i64 } %t340, ptr %a342 - store { ptr, i64, i64 } { ptr @.str.3601, i64 2, i64 0 }, ptr %a343 + store { ptr, i64, i64 } { ptr @.str.3686, i64 2, i64 0 }, ptr %a343 call void @finch_str_concat(ptr %a341, ptr %a342, ptr %a343) store { ptr, i64, i64 } %t340, ptr %a344 call void @finch_str_drop(ptr %a344) @@ -57316,14 +58964,14 @@ inrange5614: call void @finch.drop.S_ast_Type(ptr %a21) call void @finch_str_drop(ptr %a10) ret %S.gen.Val %t357 -endif5597: +endif5741: %t358 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t358, ptr %a359 - store { ptr, i64, i64 } { ptr @.str.3602, i64 5, i64 0 }, ptr %a360 + store { ptr, i64, i64 } { ptr @.str.3687, i64 5, i64 0 }, ptr %a360 %t361 = call i32 @finch_str_eq(ptr %a359, ptr %a360) %t362 = icmp ne i32 %t361, 0 - br i1 %t362, label %then5615, label %endif5617 -then5615: + br i1 %t362, label %then5759, label %endif5761 +then5759: %t363 = load ptr, ptr %a1 %t364 = load %S.ast.Node, ptr %a2 %t365 = load { ptr, i64, i64 }, ptr %a10 @@ -57331,33 +58979,33 @@ then5615: %t366 = load ptr, ptr %a1 %t367 = load %S.ast.Type, ptr %a21 %t368 = call i1 @finch.gen.owning(ptr %t366, %S.ast.Type %t367) - br label %logic.from5618 -logic.from5618: - br i1 %t368, label %logic.end5620, label %logic.rhs5619 -logic.rhs5619: + br label %logic.from5762 +logic.from5762: + br i1 %t368, label %logic.end5764, label %logic.rhs5763 +logic.rhs5763: %t369 = load ptr, ptr %a1 %t370 = load %S.ast.Type, ptr %a32 %t371 = call i1 @finch.gen.owning(ptr %t369, %S.ast.Type %t370) - br label %logic.rend5621 -logic.rend5621: - br label %logic.end5620 -logic.end5620: - %t372 = phi i1 [ true, %logic.from5618 ], [ %t371, %logic.rend5621 ] - br i1 %t372, label %then5622, label %endif5624 -then5622: + br label %logic.rend5765 +logic.rend5765: + br label %logic.end5764 +logic.end5764: + %t372 = phi i1 [ true, %logic.from5762 ], [ %t371, %logic.rend5765 ] + br i1 %t372, label %then5766, label %endif5768 +then5766: %t373 = load ptr, ptr %a1 %t374 = load ptr, ptr %a1 %t375 = load ptr, ptr %a1 %t376 = load %S.ast.Type, ptr %a4 %t377 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t375, %S.ast.Type %t376) - store { ptr, i64, i64 } { ptr @.str.3604, i64 23, i64 0 }, ptr %a379 + store { ptr, i64, i64 } { ptr @.str.3689, i64 23, i64 0 }, ptr %a379 store { ptr, i64, i64 } %t377, ptr %a380 call void @finch_str_concat(ptr %a378, ptr %a379, ptr %a380) store { ptr, i64, i64 } %t377, ptr %a381 call void @finch_str_drop(ptr %a381) %t382 = load { ptr, i64, i64 }, ptr %a378 store { ptr, i64, i64 } %t382, ptr %a384 - store { ptr, i64, i64 } { ptr @.str.3605, i64 6, i64 0 }, ptr %a385 + store { ptr, i64, i64 } { ptr @.str.3690, i64 6, i64 0 }, ptr %a385 call void @finch_str_concat(ptr %a383, ptr %a384, ptr %a385) store { ptr, i64, i64 } %t382, ptr %a386 call void @finch_str_drop(ptr %a386) @@ -57370,7 +59018,7 @@ then5622: call void @finch_str_drop(ptr %a392) %t393 = load { ptr, i64, i64 }, ptr %a389 store { ptr, i64, i64 } %t393, ptr %a395 - store { ptr, i64, i64 } { ptr @.str.3606, i64 14, i64 0 }, ptr %a396 + store { ptr, i64, i64 } { ptr @.str.3691, i64 14, i64 0 }, ptr %a396 call void @finch_str_concat(ptr %a394, ptr %a395, ptr %a396) store { ptr, i64, i64 } %t393, ptr %a397 call void @finch_str_drop(ptr %a397) @@ -57378,7 +59026,7 @@ then5622: %t399 = call { ptr, i64, i64 } @finch.gen.op(ptr %t374, { ptr, i64, i64 } %t398) store { ptr, i64, i64 } %t398, ptr %a400 call void @finch_str_drop(ptr %a400) - %t401 = call { ptr, i64, i64 } @finch.gen.load(ptr %t373, { ptr, i64, i64 } { ptr @.str.3603, i64 3, i64 0 }, { ptr, i64, i64 } %t399) + %t401 = call { ptr, i64, i64 } @finch.gen.load(ptr %t373, { ptr, i64, i64 } { ptr @.str.3688, i64 3, i64 0 }, { ptr, i64, i64 } %t399) store { ptr, i64, i64 } %t399, ptr %a402 call void @finch_str_drop(ptr %a402) store { ptr, i64, i64 } %t401, ptr %a403 @@ -57392,21 +59040,21 @@ then5622: %t411 = load { ptr, i64, i64 }, ptr %a407 %t412 = extractvalue { ptr, i64, i64 } %t411, 1 %t413 = icmp uge i64 3, %t412 - br i1 %t413, label %range5625, label %inrange5626 -range5625: - call void @finch_panic_index(ptr @.str.3607, i64 2894, i64 3, i64 %t412) + br i1 %t413, label %range5769, label %inrange5770 +range5769: + call void @finch_panic_index(ptr @.str.3692, i64 2975, i64 3, i64 %t412) unreachable -inrange5626: +inrange5770: %t414 = extractvalue { ptr, i64, i64 } %t411, 0 %t415 = getelementptr inbounds { ptr, i64, i64 }, ptr %t414, i64 3 %t416 = load { ptr, i64, i64 }, ptr %t415 %t417 = call { ptr, i64, i64 } @finch.gen.entryAt(ptr %t408, { ptr, i64, i64 } %t409, %S.ast.Type %t410, { ptr, i64, i64 } %t416) store { ptr, i64, i64 } %t417, ptr %a418 %t419 = load ptr, ptr %a1 - %t420 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t419, { ptr, i64, i64 } { ptr @.str.3608, i64 10, i64 0 }) + %t420 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t419, { ptr, i64, i64 } { ptr @.str.3693, i64 10, i64 0 }) store { ptr, i64, i64 } %t420, ptr %a421 %t422 = load ptr, ptr %a1 - %t423 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t422, { ptr, i64, i64 } { ptr @.str.3609, i64 10, i64 0 }) + %t423 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t422, { ptr, i64, i64 } { ptr @.str.3694, i64 10, i64 0 }) store { ptr, i64, i64 } %t423, ptr %a424 %t425 = load ptr, ptr %a1 %t426 = load ptr, ptr %a1 @@ -57415,17 +59063,17 @@ inrange5626: %t429 = load { ptr, i64, i64 }, ptr %a418 %t430 = load %S.ast.Type, ptr %a4 %t431 = call { ptr, i64, i64 } @finch.gen.entryField(ptr %t428, { ptr, i64, i64 } %t429, %S.ast.Type %t430, i64 0) - %t432 = call { ptr, i64, i64 } @finch.gen.load(ptr %t427, { ptr, i64, i64 } { ptr @.str.3611, i64 3, i64 0 }, { ptr, i64, i64 } %t431) + %t432 = call { ptr, i64, i64 } @finch.gen.load(ptr %t427, { ptr, i64, i64 } { ptr @.str.3696, i64 3, i64 0 }, { ptr, i64, i64 } %t431) store { ptr, i64, i64 } %t431, ptr %a433 call void @finch_str_drop(ptr %a433) - store { ptr, i64, i64 } { ptr @.str.3610, i64 12, i64 0 }, ptr %a435 + store { ptr, i64, i64 } { ptr @.str.3695, i64 12, i64 0 }, ptr %a435 store { ptr, i64, i64 } %t432, ptr %a436 call void @finch_str_concat(ptr %a434, ptr %a435, ptr %a436) store { ptr, i64, i64 } %t432, ptr %a437 call void @finch_str_drop(ptr %a437) %t438 = load { ptr, i64, i64 }, ptr %a434 store { ptr, i64, i64 } %t438, ptr %a440 - store { ptr, i64, i64 } { ptr @.str.3612, i64 3, i64 0 }, ptr %a441 + store { ptr, i64, i64 } { ptr @.str.3697, i64 3, i64 0 }, ptr %a441 call void @finch_str_concat(ptr %a439, ptr %a440, ptr %a441) store { ptr, i64, i64 } %t438, ptr %a442 call void @finch_str_drop(ptr %a442) @@ -57473,16 +59121,16 @@ inrange5626: call void @finch_str_drop(ptr %a418) call void @finch.drop.arr_str(ptr %a407) call void @finch_str_drop(ptr %a403) - br label %endif5624 -endif5624: + br label %endif5768 +endif5768: %t471 = load ptr, ptr %a1 %t472 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.3613, i64 31, i64 0 }, ptr %a474 + store { ptr, i64, i64 } { ptr @.str.3698, i64 31, i64 0 }, ptr %a474 store { ptr, i64, i64 } %t472, ptr %a475 call void @finch_str_concat(ptr %a473, ptr %a474, ptr %a475) %t476 = load { ptr, i64, i64 }, ptr %a473 store { ptr, i64, i64 } %t476, ptr %a478 - store { ptr, i64, i64 } { ptr @.str.3614, i64 1, i64 0 }, ptr %a479 + store { ptr, i64, i64 } { ptr @.str.3699, i64 1, i64 0 }, ptr %a479 call void @finch_str_concat(ptr %a477, ptr %a478, ptr %a479) store { ptr, i64, i64 } %t476, ptr %a480 call void @finch_str_drop(ptr %a480) @@ -57490,34 +59138,34 @@ endif5624: call void @finch.gen.emit(ptr %t471, { ptr, i64, i64 } %t481) store { ptr, i64, i64 } %t481, ptr %a482 call void @finch_str_drop(ptr %a482) - %t483 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3615, i64 4, i64 0 }) + %t483 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3700, i64 4, i64 0 }) %t484 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t483, 1 call void @finch.drop.S_ast_Type(ptr %a32) call void @finch.drop.S_ast_Type(ptr %a21) call void @finch_str_drop(ptr %a10) ret %S.gen.Val %t484 -endif5617: +endif5761: %t485 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t485, ptr %a486 - store { ptr, i64, i64 } { ptr @.str.3616, i64 4, i64 0 }, ptr %a487 + store { ptr, i64, i64 } { ptr @.str.3701, i64 4, i64 0 }, ptr %a487 %t488 = call i32 @finch_str_eq(ptr %a486, ptr %a487) %t489 = icmp ne i32 %t488, 0 - br label %logic.from5627 -logic.from5627: - br i1 %t489, label %logic.end5629, label %logic.rhs5628 -logic.rhs5628: + br label %logic.from5771 +logic.from5771: + br i1 %t489, label %logic.end5773, label %logic.rhs5772 +logic.rhs5772: %t490 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t490, ptr %a491 - store { ptr, i64, i64 } { ptr @.str.3617, i64 6, i64 0 }, ptr %a492 + store { ptr, i64, i64 } { ptr @.str.3702, i64 6, i64 0 }, ptr %a492 %t493 = call i32 @finch_str_eq(ptr %a491, ptr %a492) %t494 = icmp ne i32 %t493, 0 - br label %logic.rend5630 -logic.rend5630: - br label %logic.end5629 -logic.end5629: - %t495 = phi i1 [ true, %logic.from5627 ], [ %t494, %logic.rend5630 ] - br i1 %t495, label %then5631, label %endif5633 -then5631: + br label %logic.rend5774 +logic.rend5774: + br label %logic.end5773 +logic.end5773: + %t495 = phi i1 [ true, %logic.from5771 ], [ %t494, %logic.rend5774 ] + br i1 %t495, label %then5775, label %endif5777 +then5775: %t496 = load ptr, ptr %a1 %t497 = load %S.ast.Node, ptr %a2 %t498 = load { ptr, i64, i64 }, ptr %a10 @@ -57530,11 +59178,11 @@ then5631: store %S.ast.Type %t503, ptr %a504 %t505 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t505, ptr %a506 - store { ptr, i64, i64 } { ptr @.str.3618, i64 6, i64 0 }, ptr %a507 + store { ptr, i64, i64 } { ptr @.str.3703, i64 6, i64 0 }, ptr %a507 %t508 = call i32 @finch_str_eq(ptr %a506, ptr %a507) %t509 = icmp ne i32 %t508, 0 - br i1 %t509, label %then5634, label %endif5636 -then5634: + br i1 %t509, label %then5778, label %endif5780 +then5778: store i64 2, ptr %a499 %t510 = load %S.ast.Type, ptr %a32 store %S.ast.Type %t510, ptr %a511 @@ -57544,30 +59192,30 @@ then5634: store %S.ast.Type %t513, ptr %a504 store %S.ast.Type %t514, ptr %a515 call void @finch.drop.S_ast_Type(ptr %a515) - br label %endif5636 -endif5636: + br label %endif5780 +endif5780: %t516 = load %S.ast.Type, ptr %a504 %t517 = call %S.ast.Type @finch.ast.arrayOf(%S.ast.Type %t516) store %S.ast.Type %t517, ptr %a518 %t519 = load ptr, ptr %a1 - %t520 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t519, { ptr, i64, i64 } { ptr @.str.3619, i64 17, i64 0 }) + %t520 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t519, { ptr, i64, i64 } { ptr @.str.3704, i64 17, i64 0 }) store { ptr, i64, i64 } %t520, ptr %a521 %t522 = load ptr, ptr %a1 %t523 = load { ptr, i64, i64 }, ptr %a521 - call void @finch.gen.store(ptr %t522, { ptr, i64, i64 } { ptr @.str.3620, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.3621, i64 15, i64 0 }, { ptr, i64, i64 } %t523) + call void @finch.gen.store(ptr %t522, { ptr, i64, i64 } { ptr @.str.3705, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.3706, i64 15, i64 0 }, { ptr, i64, i64 } %t523) %t524 = load ptr, ptr %a1 %t525 = load ptr, ptr %a1 %t526 = load ptr, ptr %a1 %t527 = load %S.ast.Type, ptr %a4 %t528 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t526, %S.ast.Type %t527) - store { ptr, i64, i64 } { ptr @.str.3623, i64 23, i64 0 }, ptr %a530 + store { ptr, i64, i64 } { ptr @.str.3708, i64 23, i64 0 }, ptr %a530 store { ptr, i64, i64 } %t528, ptr %a531 call void @finch_str_concat(ptr %a529, ptr %a530, ptr %a531) store { ptr, i64, i64 } %t528, ptr %a532 call void @finch_str_drop(ptr %a532) %t533 = load { ptr, i64, i64 }, ptr %a529 store { ptr, i64, i64 } %t533, ptr %a535 - store { ptr, i64, i64 } { ptr @.str.3624, i64 6, i64 0 }, ptr %a536 + store { ptr, i64, i64 } { ptr @.str.3709, i64 6, i64 0 }, ptr %a536 call void @finch_str_concat(ptr %a534, ptr %a535, ptr %a536) store { ptr, i64, i64 } %t533, ptr %a537 call void @finch_str_drop(ptr %a537) @@ -57580,7 +59228,7 @@ endif5636: call void @finch_str_drop(ptr %a543) %t544 = load { ptr, i64, i64 }, ptr %a540 store { ptr, i64, i64 } %t544, ptr %a546 - store { ptr, i64, i64 } { ptr @.str.3625, i64 14, i64 0 }, ptr %a547 + store { ptr, i64, i64 } { ptr @.str.3710, i64 14, i64 0 }, ptr %a547 call void @finch_str_concat(ptr %a545, ptr %a546, ptr %a547) store { ptr, i64, i64 } %t544, ptr %a548 call void @finch_str_drop(ptr %a548) @@ -57588,18 +59236,18 @@ endif5636: %t550 = call { ptr, i64, i64 } @finch.gen.op(ptr %t525, { ptr, i64, i64 } %t549) store { ptr, i64, i64 } %t549, ptr %a551 call void @finch_str_drop(ptr %a551) - %t552 = call { ptr, i64, i64 } @finch.gen.load(ptr %t524, { ptr, i64, i64 } { ptr @.str.3622, i64 3, i64 0 }, { ptr, i64, i64 } %t550) + %t552 = call { ptr, i64, i64 } @finch.gen.load(ptr %t524, { ptr, i64, i64 } { ptr @.str.3707, i64 3, i64 0 }, { ptr, i64, i64 } %t550) store { ptr, i64, i64 } %t550, ptr %a553 call void @finch_str_drop(ptr %a553) store { ptr, i64, i64 } %t552, ptr %a554 %t555 = load ptr, ptr %a1 %t556 = load { ptr, i64, i64 }, ptr %a521 - store { ptr, i64, i64 } { ptr @.str.3626, i64 30, i64 0 }, ptr %a558 + store { ptr, i64, i64 } { ptr @.str.3711, i64 30, i64 0 }, ptr %a558 store { ptr, i64, i64 } %t556, ptr %a559 call void @finch_str_concat(ptr %a557, ptr %a558, ptr %a559) %t560 = load { ptr, i64, i64 }, ptr %a557 store { ptr, i64, i64 } %t560, ptr %a562 - store { ptr, i64, i64 } { ptr @.str.3627, i64 6, i64 0 }, ptr %a563 + store { ptr, i64, i64 } { ptr @.str.3712, i64 6, i64 0 }, ptr %a563 call void @finch_str_concat(ptr %a561, ptr %a562, ptr %a563) store { ptr, i64, i64 } %t560, ptr %a564 call void @finch_str_drop(ptr %a564) @@ -57612,7 +59260,7 @@ endif5636: call void @finch_str_drop(ptr %a570) %t571 = load { ptr, i64, i64 }, ptr %a567 store { ptr, i64, i64 } %t571, ptr %a573 - store { ptr, i64, i64 } { ptr @.str.3628, i64 6, i64 0 }, ptr %a574 + store { ptr, i64, i64 } { ptr @.str.3713, i64 6, i64 0 }, ptr %a574 call void @finch_str_concat(ptr %a572, ptr %a573, ptr %a574) store { ptr, i64, i64 } %t571, ptr %a575 call void @finch_str_drop(ptr %a575) @@ -57629,7 +59277,7 @@ endif5636: call void @finch_str_drop(ptr %a584) %t585 = load { ptr, i64, i64 }, ptr %a580 store { ptr, i64, i64 } %t585, ptr %a587 - store { ptr, i64, i64 } { ptr @.str.3629, i64 1, i64 0 }, ptr %a588 + store { ptr, i64, i64 } { ptr @.str.3714, i64 1, i64 0 }, ptr %a588 call void @finch_str_concat(ptr %a586, ptr %a587, ptr %a588) store { ptr, i64, i64 } %t585, ptr %a589 call void @finch_str_drop(ptr %a589) @@ -57639,27 +59287,27 @@ endif5636: call void @finch_str_drop(ptr %a591) %t592 = load ptr, ptr %a1 %t593 = load { ptr, i64, i64 }, ptr %a521 - %t594 = call { ptr, i64, i64 } @finch.gen.load(ptr %t592, { ptr, i64, i64 } { ptr @.str.3630, i64 3, i64 0 }, { ptr, i64, i64 } %t593) + %t594 = call { ptr, i64, i64 } @finch.gen.load(ptr %t592, { ptr, i64, i64 } { ptr @.str.3715, i64 3, i64 0 }, { ptr, i64, i64 } %t593) store { ptr, i64, i64 } %t594, ptr %a595 %t596 = load ptr, ptr %a1 - %t597 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t596, { ptr, i64, i64 } { ptr @.str.3631, i64 3, i64 0 }) + %t597 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t596, { ptr, i64, i64 } { ptr @.str.3716, i64 3, i64 0 }) store { ptr, i64, i64 } %t597, ptr %a598 %t599 = load ptr, ptr %a1 %t600 = load { ptr, i64, i64 }, ptr %a598 - call void @finch.gen.store(ptr %t599, { ptr, i64, i64 } { ptr @.str.3632, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.3633, i64 1, i64 0 }, { ptr, i64, i64 } %t600) + call void @finch.gen.store(ptr %t599, { ptr, i64, i64 } { ptr @.str.3717, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.3718, i64 1, i64 0 }, { ptr, i64, i64 } %t600) %t601 = load ptr, ptr %a1 %t602 = load ptr, ptr %a1 %t603 = load ptr, ptr %a1 %t604 = load %S.ast.Type, ptr %a4 %t605 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t603, %S.ast.Type %t604) - store { ptr, i64, i64 } { ptr @.str.3635, i64 23, i64 0 }, ptr %a607 + store { ptr, i64, i64 } { ptr @.str.3720, i64 23, i64 0 }, ptr %a607 store { ptr, i64, i64 } %t605, ptr %a608 call void @finch_str_concat(ptr %a606, ptr %a607, ptr %a608) store { ptr, i64, i64 } %t605, ptr %a609 call void @finch_str_drop(ptr %a609) %t610 = load { ptr, i64, i64 }, ptr %a606 store { ptr, i64, i64 } %t610, ptr %a612 - store { ptr, i64, i64 } { ptr @.str.3636, i64 6, i64 0 }, ptr %a613 + store { ptr, i64, i64 } { ptr @.str.3721, i64 6, i64 0 }, ptr %a613 call void @finch_str_concat(ptr %a611, ptr %a612, ptr %a613) store { ptr, i64, i64 } %t610, ptr %a614 call void @finch_str_drop(ptr %a614) @@ -57672,7 +59320,7 @@ endif5636: call void @finch_str_drop(ptr %a620) %t621 = load { ptr, i64, i64 }, ptr %a617 store { ptr, i64, i64 } %t621, ptr %a623 - store { ptr, i64, i64 } { ptr @.str.3637, i64 14, i64 0 }, ptr %a624 + store { ptr, i64, i64 } { ptr @.str.3722, i64 14, i64 0 }, ptr %a624 call void @finch_str_concat(ptr %a622, ptr %a623, ptr %a624) store { ptr, i64, i64 } %t621, ptr %a625 call void @finch_str_drop(ptr %a625) @@ -57680,7 +59328,7 @@ endif5636: %t627 = call { ptr, i64, i64 } @finch.gen.op(ptr %t602, { ptr, i64, i64 } %t626) store { ptr, i64, i64 } %t626, ptr %a628 call void @finch_str_drop(ptr %a628) - %t629 = call { ptr, i64, i64 } @finch.gen.load(ptr %t601, { ptr, i64, i64 } { ptr @.str.3634, i64 3, i64 0 }, { ptr, i64, i64 } %t627) + %t629 = call { ptr, i64, i64 } @finch.gen.load(ptr %t601, { ptr, i64, i64 } { ptr @.str.3719, i64 3, i64 0 }, { ptr, i64, i64 } %t627) store { ptr, i64, i64 } %t627, ptr %a630 call void @finch_str_drop(ptr %a630) store { ptr, i64, i64 } %t629, ptr %a631 @@ -57694,21 +59342,21 @@ endif5636: %t639 = load { ptr, i64, i64 }, ptr %a635 %t640 = extractvalue { ptr, i64, i64 } %t639, 1 %t641 = icmp uge i64 3, %t640 - br i1 %t641, label %range5637, label %inrange5638 -range5637: - call void @finch_panic_index(ptr @.str.3638, i64 2926, i64 3, i64 %t640) + br i1 %t641, label %range5781, label %inrange5782 +range5781: + call void @finch_panic_index(ptr @.str.3723, i64 3007, i64 3, i64 %t640) unreachable -inrange5638: +inrange5782: %t642 = extractvalue { ptr, i64, i64 } %t639, 0 %t643 = getelementptr inbounds { ptr, i64, i64 }, ptr %t642, i64 3 %t644 = load { ptr, i64, i64 }, ptr %t643 %t645 = call { ptr, i64, i64 } @finch.gen.entryAt(ptr %t636, { ptr, i64, i64 } %t637, %S.ast.Type %t638, { ptr, i64, i64 } %t644) store { ptr, i64, i64 } %t645, ptr %a646 %t647 = load ptr, ptr %a1 - %t648 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t647, { ptr, i64, i64 } { ptr @.str.3639, i64 10, i64 0 }) + %t648 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t647, { ptr, i64, i64 } { ptr @.str.3724, i64 10, i64 0 }) store { ptr, i64, i64 } %t648, ptr %a649 %t650 = load ptr, ptr %a1 - %t651 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t650, { ptr, i64, i64 } { ptr @.str.3640, i64 10, i64 0 }) + %t651 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t650, { ptr, i64, i64 } { ptr @.str.3725, i64 10, i64 0 }) store { ptr, i64, i64 } %t651, ptr %a652 %t653 = load ptr, ptr %a1 %t654 = load ptr, ptr %a1 @@ -57717,17 +59365,17 @@ inrange5638: %t657 = load { ptr, i64, i64 }, ptr %a646 %t658 = load %S.ast.Type, ptr %a4 %t659 = call { ptr, i64, i64 } @finch.gen.entryField(ptr %t656, { ptr, i64, i64 } %t657, %S.ast.Type %t658, i64 0) - %t660 = call { ptr, i64, i64 } @finch.gen.load(ptr %t655, { ptr, i64, i64 } { ptr @.str.3642, i64 3, i64 0 }, { ptr, i64, i64 } %t659) + %t660 = call { ptr, i64, i64 } @finch.gen.load(ptr %t655, { ptr, i64, i64 } { ptr @.str.3727, i64 3, i64 0 }, { ptr, i64, i64 } %t659) store { ptr, i64, i64 } %t659, ptr %a661 call void @finch_str_drop(ptr %a661) - store { ptr, i64, i64 } { ptr @.str.3641, i64 12, i64 0 }, ptr %a663 + store { ptr, i64, i64 } { ptr @.str.3726, i64 12, i64 0 }, ptr %a663 store { ptr, i64, i64 } %t660, ptr %a664 call void @finch_str_concat(ptr %a662, ptr %a663, ptr %a664) store { ptr, i64, i64 } %t660, ptr %a665 call void @finch_str_drop(ptr %a665) %t666 = load { ptr, i64, i64 }, ptr %a662 store { ptr, i64, i64 } %t666, ptr %a668 - store { ptr, i64, i64 } { ptr @.str.3643, i64 3, i64 0 }, ptr %a669 + store { ptr, i64, i64 } { ptr @.str.3728, i64 3, i64 0 }, ptr %a669 call void @finch_str_concat(ptr %a667, ptr %a668, ptr %a669) store { ptr, i64, i64 } %t666, ptr %a670 call void @finch_str_drop(ptr %a670) @@ -57745,21 +59393,21 @@ inrange5638: call void @finch.gen.label(ptr %t677, { ptr, i64, i64 } %t678) %t679 = load ptr, ptr %a1 %t680 = load { ptr, i64, i64 }, ptr %a598 - %t681 = call { ptr, i64, i64 } @finch.gen.load(ptr %t679, { ptr, i64, i64 } { ptr @.str.3644, i64 3, i64 0 }, { ptr, i64, i64 } %t680) + %t681 = call { ptr, i64, i64 } @finch.gen.load(ptr %t679, { ptr, i64, i64 } { ptr @.str.3729, i64 3, i64 0 }, { ptr, i64, i64 } %t680) store { ptr, i64, i64 } %t681, ptr %a682 %t683 = load ptr, ptr %a1 %t684 = load ptr, ptr %a1 %t685 = load ptr, ptr %a1 %t686 = load %S.ast.Type, ptr %a504 %t687 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t685, %S.ast.Type %t686) - store { ptr, i64, i64 } { ptr @.str.3645, i64 23, i64 0 }, ptr %a689 + store { ptr, i64, i64 } { ptr @.str.3730, i64 23, i64 0 }, ptr %a689 store { ptr, i64, i64 } %t687, ptr %a690 call void @finch_str_concat(ptr %a688, ptr %a689, ptr %a690) store { ptr, i64, i64 } %t687, ptr %a691 call void @finch_str_drop(ptr %a691) %t692 = load { ptr, i64, i64 }, ptr %a688 store { ptr, i64, i64 } %t692, ptr %a694 - store { ptr, i64, i64 } { ptr @.str.3646, i64 6, i64 0 }, ptr %a695 + store { ptr, i64, i64 } { ptr @.str.3731, i64 6, i64 0 }, ptr %a695 call void @finch_str_concat(ptr %a693, ptr %a694, ptr %a695) store { ptr, i64, i64 } %t692, ptr %a696 call void @finch_str_drop(ptr %a696) @@ -57772,7 +59420,7 @@ inrange5638: call void @finch_str_drop(ptr %a702) %t703 = load { ptr, i64, i64 }, ptr %a699 store { ptr, i64, i64 } %t703, ptr %a705 - store { ptr, i64, i64 } { ptr @.str.3647, i64 6, i64 0 }, ptr %a706 + store { ptr, i64, i64 } { ptr @.str.3732, i64 6, i64 0 }, ptr %a706 call void @finch_str_concat(ptr %a704, ptr %a705, ptr %a706) store { ptr, i64, i64 } %t703, ptr %a707 call void @finch_str_drop(ptr %a707) @@ -57801,12 +59449,12 @@ inrange5638: %t725 = load ptr, ptr %a1 %t726 = load ptr, ptr %a1 %t727 = load { ptr, i64, i64 }, ptr %a682 - store { ptr, i64, i64 } { ptr @.str.3649, i64 8, i64 0 }, ptr %a729 + store { ptr, i64, i64 } { ptr @.str.3734, i64 8, i64 0 }, ptr %a729 store { ptr, i64, i64 } %t727, ptr %a730 call void @finch_str_concat(ptr %a728, ptr %a729, ptr %a730) %t731 = load { ptr, i64, i64 }, ptr %a728 store { ptr, i64, i64 } %t731, ptr %a733 - store { ptr, i64, i64 } { ptr @.str.3650, i64 3, i64 0 }, ptr %a734 + store { ptr, i64, i64 } { ptr @.str.3735, i64 3, i64 0 }, ptr %a734 call void @finch_str_concat(ptr %a732, ptr %a733, ptr %a734) store { ptr, i64, i64 } %t731, ptr %a735 call void @finch_str_drop(ptr %a735) @@ -57815,7 +59463,7 @@ inrange5638: store { ptr, i64, i64 } %t736, ptr %a738 call void @finch_str_drop(ptr %a738) %t739 = load { ptr, i64, i64 }, ptr %a598 - call void @finch.gen.store(ptr %t725, { ptr, i64, i64 } { ptr @.str.3648, i64 3, i64 0 }, { ptr, i64, i64 } %t737, { ptr, i64, i64 } %t739) + call void @finch.gen.store(ptr %t725, { ptr, i64, i64 } { ptr @.str.3733, i64 3, i64 0 }, { ptr, i64, i64 } %t737, { ptr, i64, i64 } %t739) store { ptr, i64, i64 } %t737, ptr %a740 call void @finch_str_drop(ptr %a740) %t741 = load ptr, ptr %a1 @@ -57829,7 +59477,7 @@ inrange5638: call void @finch.gen.loopEnd(ptr %t745, { ptr, i64, i64 } %t746) %t747 = load ptr, ptr %a1 %t748 = load { ptr, i64, i64 }, ptr %a521 - %t749 = call { ptr, i64, i64 } @finch.gen.load(ptr %t747, { ptr, i64, i64 } { ptr @.str.3651, i64 17, i64 0 }, { ptr, i64, i64 } %t748) + %t749 = call { ptr, i64, i64 } @finch.gen.load(ptr %t747, { ptr, i64, i64 } { ptr @.str.3736, i64 17, i64 0 }, { ptr, i64, i64 } %t748) %t750 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t749, 0 %t751 = load %S.ast.Type, ptr %a518 store %S.ast.Type %t751, ptr %a752 @@ -57853,16 +59501,16 @@ inrange5638: call void @finch.drop.S_ast_Type(ptr %a21) call void @finch_str_drop(ptr %a10) ret %S.gen.Val %t756 -endif5633: +endif5777: %t757 = load ptr, ptr %a1 %t758 = load %S.ast.Node, ptr %a2 %t759 = load { ptr, i64, i64 }, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.3652, i64 21, i64 0 }, ptr %a761 + store { ptr, i64, i64 } { ptr @.str.3737, i64 21, i64 0 }, ptr %a761 store { ptr, i64, i64 } %t759, ptr %a762 call void @finch_str_concat(ptr %a760, ptr %a761, ptr %a762) %t763 = load { ptr, i64, i64 }, ptr %a760 store { ptr, i64, i64 } %t763, ptr %a765 - store { ptr, i64, i64 } { ptr @.str.3653, i64 49, i64 0 }, ptr %a766 + store { ptr, i64, i64 } { ptr @.str.3738, i64 49, i64 0 }, ptr %a766 call void @finch_str_concat(ptr %a764, ptr %a765, ptr %a766) store { ptr, i64, i64 } %t763, ptr %a767 call void @finch_str_drop(ptr %a767) @@ -57930,47 +59578,47 @@ entry: %t4 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t5 = load { ptr, i64, i64 }, ptr %t4 store { ptr, i64, i64 } %t5, ptr %a6 - store { ptr, i64, i64 } { ptr @.str.3654, i64 4, i64 0 }, ptr %a7 + store { ptr, i64, i64 } { ptr @.str.3739, i64 4, i64 0 }, ptr %a7 %t8 = call i32 @finch_str_eq(ptr %a6, ptr %a7) %t9 = icmp ne i32 %t8, 0 - br label %logic.from5639 -logic.from5639: - br i1 %t9, label %logic.rhs5640, label %logic.end5641 -logic.rhs5640: + br label %logic.from5783 +logic.from5783: + br i1 %t9, label %logic.rhs5784, label %logic.end5785 +logic.rhs5784: %t10 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 %t11 = load { ptr, i64, i64 }, ptr %t10 store { ptr, i64, i64 } %t11, ptr %a12 - store { ptr, i64, i64 } { ptr @.str.3655, i64 3, i64 0 }, ptr %a13 + store { ptr, i64, i64 } { ptr @.str.3740, i64 3, i64 0 }, ptr %a13 %t14 = call i32 @finch_str_eq(ptr %a12, ptr %a13) %t15 = icmp ne i32 %t14, 0 - br label %logic.rend5642 -logic.rend5642: - br label %logic.end5641 -logic.end5641: - %t16 = phi i1 [ false, %logic.from5639 ], [ %t15, %logic.rend5642 ] - br label %logic.from5643 -logic.from5643: - br i1 %t16, label %logic.rhs5644, label %logic.end5645 -logic.rhs5644: + br label %logic.rend5786 +logic.rend5786: + br label %logic.end5785 +logic.end5785: + %t16 = phi i1 [ false, %logic.from5783 ], [ %t15, %logic.rend5786 ] + br label %logic.from5787 +logic.from5787: + br i1 %t16, label %logic.rhs5788, label %logic.end5789 +logic.rhs5788: %t17 = load ptr, ptr %a1 %t18 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t19 = load { ptr, i64, i64 }, ptr %t18 %t20 = call i64 @finch.gen.lookup(ptr %t17, { ptr, i64, i64 } %t19) %t21 = icmp slt i64 %t20, 0 - br label %logic.rend5646 -logic.rend5646: - br label %logic.end5645 -logic.end5645: - %t22 = phi i1 [ false, %logic.from5643 ], [ %t21, %logic.rend5646 ] - br i1 %t22, label %then5647, label %endif5649 -then5647: + br label %logic.rend5790 +logic.rend5790: + br label %logic.end5789 +logic.end5789: + %t22 = phi i1 [ false, %logic.from5787 ], [ %t21, %logic.rend5790 ] + br i1 %t22, label %then5791, label %endif5793 +then5791: %t23 = load ptr, ptr %a1 %t24 = icmp eq ptr %t23, null - br i1 %t24, label %panic5650, label %ok5651 -panic5650: - call void @finch_panic(ptr @.str.3656, i64 2948, ptr @.str.3657) + br i1 %t24, label %panic5794, label %ok5795 +panic5794: + call void @finch_panic(ptr @.str.3741, i64 3029, ptr @.str.3742) unreachable -ok5651: +ok5795: %t25 = getelementptr inbounds %S.gen.Gen, ptr %t23, i32 0, i32 21 %t26 = load ptr, ptr %a1 %t27 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 3 @@ -57981,11 +59629,11 @@ ok5651: %t32 = load { ptr, i64, i64 }, ptr %t25 %t33 = extractvalue { ptr, i64, i64 } %t32, 1 %t34 = icmp uge i64 %t31, %t33 - br i1 %t34, label %range5652, label %inrange5653 -range5652: - call void @finch_panic_index(ptr @.str.3658, i64 2948, i64 %t31, i64 %t33) + br i1 %t34, label %range5796, label %inrange5797 +range5796: + call void @finch_panic_index(ptr @.str.3743, i64 3029, i64 %t31, i64 %t33) unreachable -inrange5653: +inrange5797: %t35 = extractvalue { ptr, i64, i64 } %t32, 0 %t36 = getelementptr inbounds %S.gen.EnumDef, ptr %t35, i64 %t31 %t37 = load %S.gen.EnumDef, ptr %t36 @@ -58001,43 +59649,43 @@ inrange5653: %t47 = load i64, ptr %t43 %t48 = load ptr, ptr %t42 store i64 0, ptr %a49 - br label %find.cond5654 -find.cond5654: + br label %find.cond5798 +find.cond5798: %t50 = load i64, ptr %a49 %t51 = icmp slt i64 %t50, %t47 - br i1 %t51, label %find.body5655, label %find.end5658 -find.body5655: + br i1 %t51, label %find.body5799, label %find.end5802 +find.body5799: %t52 = getelementptr inbounds { ptr, i64, i64 }, ptr %t48, i64 %t50 %t53 = load { ptr, i64, i64 }, ptr %t52 store { ptr, i64, i64 } %t53, ptr %a54 store { ptr, i64, i64 } %t45, ptr %a55 %t56 = call i32 @finch_str_eq(ptr %a54, ptr %a55) %t57 = icmp ne i32 %t56, 0 - br i1 %t57, label %find.hit5656, label %find.next5657 -find.hit5656: + br i1 %t57, label %find.hit5800, label %find.next5801 +find.hit5800: store i64 %t50, ptr %a46 - br label %find.end5658 -find.next5657: + br label %find.end5802 +find.next5801: %t58 = add i64 %t50, 1 store i64 %t58, ptr %a49 - br label %find.cond5654 -find.end5658: + br label %find.cond5798 +find.end5802: %t59 = load i64, ptr %a46 store i64 %t59, ptr %a60 %t61 = load i64, ptr %a60 %t62 = icmp slt i64 %t61, 0 - br i1 %t62, label %then5659, label %endif5661 -then5659: + br i1 %t62, label %then5803, label %endif5805 +then5803: %t63 = load ptr, ptr %a1 %t64 = load %S.ast.Node, ptr %a2 %t65 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t66 = load { ptr, i64, i64 }, ptr %t65 - store { ptr, i64, i64 } { ptr @.str.3659, i64 1, i64 0 }, ptr %a68 + store { ptr, i64, i64 } { ptr @.str.3744, i64 1, i64 0 }, ptr %a68 store { ptr, i64, i64 } %t66, ptr %a69 call void @finch_str_concat(ptr %a67, ptr %a68, ptr %a69) %t70 = load { ptr, i64, i64 }, ptr %a67 store { ptr, i64, i64 } %t70, ptr %a72 - store { ptr, i64, i64 } { ptr @.str.3660, i64 22, i64 0 }, ptr %a73 + store { ptr, i64, i64 } { ptr @.str.3745, i64 22, i64 0 }, ptr %a73 call void @finch_str_concat(ptr %a71, ptr %a72, ptr %a73) store { ptr, i64, i64 } %t70, ptr %a74 call void @finch_str_drop(ptr %a74) @@ -58051,14 +59699,14 @@ then5659: call void @finch_str_drop(ptr %a81) %t82 = load { ptr, i64, i64 }, ptr %a78 store { ptr, i64, i64 } %t82, ptr %a84 - store { ptr, i64, i64 } { ptr @.str.3661, i64 10, i64 0 }, ptr %a85 + store { ptr, i64, i64 } { ptr @.str.3746, i64 10, i64 0 }, ptr %a85 call void @finch_str_concat(ptr %a83, ptr %a84, ptr %a85) store { ptr, i64, i64 } %t82, ptr %a86 call void @finch_str_drop(ptr %a86) %t87 = load { ptr, i64, i64 }, ptr %a83 %t88 = getelementptr inbounds %S.gen.EnumDef, ptr %a41, i32 0, i32 2 %t89 = getelementptr inbounds { ptr, i64, i64 }, ptr %t88, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.3662, i64 2, i64 0 }, ptr %a90 + store { ptr, i64, i64 } { ptr @.str.3747, i64 2, i64 0 }, ptr %a90 call void @finch_str_join(ptr %a91, ptr %t88, ptr %a90) %t92 = load { ptr, i64, i64 }, ptr %a91 store { ptr, i64, i64 } %t87, ptr %a94 @@ -58070,7 +59718,7 @@ then5659: call void @finch_str_drop(ptr %a97) %t98 = load { ptr, i64, i64 }, ptr %a93 store { ptr, i64, i64 } %t98, ptr %a100 - store { ptr, i64, i64 } { ptr @.str.3663, i64 1, i64 0 }, ptr %a101 + store { ptr, i64, i64 } { ptr @.str.3748, i64 1, i64 0 }, ptr %a101 call void @finch_str_concat(ptr %a99, ptr %a100, ptr %a101) store { ptr, i64, i64 } %t98, ptr %a102 call void @finch_str_drop(ptr %a102) @@ -58078,18 +59726,18 @@ then5659: call void @finch.gen.fail(ptr %t63, %S.ast.Node %t64, { ptr, i64, i64 } %t103) store { ptr, i64, i64 } %t103, ptr %a104 call void @finch_str_drop(ptr %a104) - br label %endif5661 -endif5661: + br label %endif5805 +endif5805: %t105 = getelementptr inbounds %S.gen.EnumDef, ptr %a41, i32 0, i32 3 %t106 = load i64, ptr %a60 %t107 = load { ptr, i64, i64 }, ptr %t105 %t108 = extractvalue { ptr, i64, i64 } %t107, 1 %t109 = icmp uge i64 %t106, %t108 - br i1 %t109, label %range5662, label %inrange5663 -range5662: - call void @finch_panic_index(ptr @.str.3664, i64 2953, i64 %t106, i64 %t108) + br i1 %t109, label %range5806, label %inrange5807 +range5806: + call void @finch_panic_index(ptr @.str.3749, i64 3034, i64 %t106, i64 %t108) unreachable -inrange5663: +inrange5807: %t110 = extractvalue { ptr, i64, i64 } %t107, 0 %t111 = getelementptr inbounds i64, ptr %t110, i64 %t106 %t112 = load i64, ptr %t111 @@ -58103,7 +59751,7 @@ inrange5663: %t120 = insertvalue %S.gen.Val %t115, %S.ast.Type %t119, 1 call void @finch.drop.S_gen_EnumDef(ptr %a41) ret %S.gen.Val %t120 -endif5649: +endif5793: %t121 = load ptr, ptr %a1 %t122 = load ptr, ptr %a1 %t123 = load %S.ast.Node, ptr %a2 @@ -58111,12 +59759,20 @@ endif5649: %t125 = call %S.gen.Val @finch.gen.exprWant(ptr %t122, %S.ast.Node %t123, %S.ast.Type %t124) %t126 = load %S.ast.Type, ptr %a3 %t127 = load %S.ast.Node, ptr %a2 - %t128 = call %S.gen.Val @finch.gen.coerce(ptr %t121, %S.gen.Val %t125, %S.ast.Type %t126, %S.ast.Node %t127, { ptr, i64, i64 } { ptr @.str.3665, i64 12, i64 0 }) + %t128 = call %S.gen.Val @finch.gen.coerce(ptr %t121, %S.gen.Val %t125, %S.ast.Type %t126, %S.ast.Node %t127, { ptr, i64, i64 } { ptr @.str.3750, i64 12, i64 0 }) store %S.gen.Val %t125, ptr %a129 call void @finch.drop.S_gen_Val(ptr %a129) ret %S.gen.Val %t128 } +define internal void @finch.drop.S_gen_SumPat(ptr %a) { +entry: + + %t1 = getelementptr inbounds %S.gen.SumPat, ptr %a, i32 0, i32 1 + call void @finch.drop.arr_S_ast_Node(ptr %t1) + ret void +} + define internal %S.gen.Val @finch.gen.matchGen(ptr %p0, %S.ast.Node %p1, i1 %p2) { entry: %a1 = alloca ptr, align 16 @@ -58131,109 +59787,227 @@ entry: %a28 = alloca { ptr, i64, i64 }, align 16 %a29 = alloca { ptr, i64, i64 }, align 16 %a46 = alloca i64, align 16 - %a51 = alloca { ptr, i64, i64 }, align 16 - %a52 = alloca i1, align 16 - %a53 = alloca i1, align 16 + %a49 = alloca i64, align 16 + %a50 = alloca { ptr, i64, i64 }, align 16 + %a53 = alloca { ptr, i64, i64 }, align 16 %a54 = alloca { ptr, i64, i64 }, align 16 - %a55 = alloca { ptr, i64, i64 }, align 16 - %a56 = alloca { ptr, i64, i64 }, align 16 - %a58 = alloca %S.ast.Type, align 16 - %a63 = alloca i64, align 16 - %a65 = alloca i64, align 16 - %a77 = alloca %S.ast.Node, align 16 - %a78 = alloca %S.ast.Node, align 16 - %a80 = alloca %S.ast.Node, align 16 + %a69 = alloca { ptr, i64, i64 }, align 16 + %a70 = alloca { ptr, i64, i64 }, align 16 + %a71 = alloca { ptr, i64, i64 }, align 16 + %a72 = alloca { ptr, i64, i64 }, align 16 + %a74 = alloca { ptr, i64, i64 }, align 16 + %a75 = alloca { ptr, i64, i64 }, align 16 + %a76 = alloca { ptr, i64, i64 }, align 16 + %a77 = alloca { ptr, i64, i64 }, align 16 + %a81 = alloca { ptr, i64, i64 }, align 16 + %a82 = alloca { ptr, i64, i64 }, align 16 + %a83 = alloca { ptr, i64, i64 }, align 16 + %a84 = alloca { ptr, i64, i64 }, align 16 %a86 = alloca { ptr, i64, i64 }, align 16 + %a87 = alloca { ptr, i64, i64 }, align 16 + %a88 = alloca { ptr, i64, i64 }, align 16 %a89 = alloca { ptr, i64, i64 }, align 16 - %a102 = alloca { ptr, i64, i64 }, align 16 - %a103 = alloca { ptr, i64, i64 }, align 16 - %a105 = alloca { ptr, i64, i64 }, align 16 - %a108 = alloca i64, align 16 - %a121 = alloca %S.gen.Val, align 16 - %a125 = alloca i64, align 16 - %a128 = alloca i64, align 16 - %a133 = alloca { ptr, i64, i64 }, align 16 - %a134 = alloca { ptr, i64, i64 }, align 16 - %a142 = alloca { ptr, i64, i64 }, align 16 - %a143 = alloca { ptr, i64, i64 }, align 16 - %a158 = alloca { ptr, i64, i64 }, align 16 - %a159 = alloca { ptr, i64, i64 }, align 16 - %a176 = alloca %S.gen.Val, align 16 - %a189 = alloca { ptr, i64, i64 }, align 16 - %a208 = alloca %S.ast.Node, align 16 - %a209 = alloca %S.ast.Node, align 16 - %a211 = alloca %S.ast.Node, align 16 - %a216 = alloca %S.gen.Val, align 16 - %a221 = alloca { ptr, i64, i64 }, align 16 - %a222 = alloca { ptr, i64, i64 }, align 16 - %a229 = alloca { ptr, i64, i64 }, align 16 - %a230 = alloca { ptr, i64, i64 }, align 16 - %a236 = alloca { ptr, i64, i64 }, align 16 - %a237 = alloca { ptr, i64, i64 }, align 16 - %a245 = alloca %S.ast.Type, align 16 - %a246 = alloca %S.ast.Type, align 16 - %a249 = alloca %S.ast.Type, align 16 - %a256 = alloca %S.gen.Val, align 16 - %a260 = alloca { ptr, i64, i64 }, align 16 - %a263 = alloca { ptr, i64, i64 }, align 16 + %a112 = alloca { ptr, i64, i64 }, align 16 + %a114 = alloca { ptr, i64, i64 }, align 16 + %a115 = alloca { ptr, i64, i64 }, align 16 + %a116 = alloca { ptr, i64, i64 }, align 16 + %a117 = alloca { ptr, i64, i64 }, align 16 + %a118 = alloca { ptr, i64, i64 }, align 16 + %a121 = alloca { ptr, i64, i64 }, align 16 + %a123 = alloca { ptr, i64, i64 }, align 16 + %a126 = alloca { ptr, i64, i64 }, align 16 + %a127 = alloca i1, align 16 + %a128 = alloca i1, align 16 + %a129 = alloca { ptr, i64, i64 }, align 16 + %a130 = alloca { ptr, i64, i64 }, align 16 + %a131 = alloca { ptr, i64, i64 }, align 16 + %a133 = alloca %S.ast.Type, align 16 + %a138 = alloca i64, align 16 + %a140 = alloca i64, align 16 + %a152 = alloca %S.ast.Node, align 16 + %a153 = alloca %S.ast.Node, align 16 + %a155 = alloca %S.ast.Node, align 16 + %a161 = alloca { ptr, i64, i64 }, align 16 + %a164 = alloca { ptr, i64, i64 }, align 16 + %a165 = alloca { ptr, i64, i64 }, align 16 + %a166 = alloca i64, align 16 + %a179 = alloca { ptr, i64, i64 }, align 16 + %a180 = alloca { ptr, i64, i64 }, align 16 + %a182 = alloca { ptr, i64, i64 }, align 16 + %a185 = alloca i64, align 16 + %a188 = alloca { ptr, i64, i64 }, align 16 + %a201 = alloca %S.gen.SumPat, align 16 + %a205 = alloca { ptr, i64, i64 }, align 16 + %a207 = alloca i64, align 16 + %a210 = alloca i64, align 16 + %a215 = alloca { ptr, i64, i64 }, align 16 + %a216 = alloca { ptr, i64, i64 }, align 16 + %a220 = alloca { ptr, i64, i64 }, align 16 + %a234 = alloca { ptr, i64, i64 }, align 16 + %a257 = alloca { ptr, i64, i64 }, align 16 + %a258 = alloca { ptr, i64, i64 }, align 16 + %a261 = alloca { ptr, i64, i64 }, align 16 + %a266 = alloca { ptr, i64, i64 }, align 16 + %a267 = alloca { ptr, i64, i64 }, align 16 + %a268 = alloca { ptr, i64, i64 }, align 16 %a270 = alloca { ptr, i64, i64 }, align 16 %a271 = alloca { ptr, i64, i64 }, align 16 + %a272 = alloca { ptr, i64, i64 }, align 16 + %a273 = alloca { ptr, i64, i64 }, align 16 + %a277 = alloca { ptr, i64, i64 }, align 16 %a279 = alloca { ptr, i64, i64 }, align 16 %a280 = alloca { ptr, i64, i64 }, align 16 - %a290 = alloca { ptr, i64, i64 }, align 16 - %a291 = alloca { ptr, i64, i64 }, align 16 - %a316 = alloca { ptr, i64, i64 }, align 16 - %a317 = alloca { ptr, i64, i64 }, align 16 - %a335 = alloca %S.gen.EnumDef, align 16 - %a336 = alloca %S.gen.EnumDef, align 16 - %a338 = alloca %S.gen.EnumDef, align 16 - %a339 = alloca { ptr, i64, i64 }, align 16 - %a343 = alloca i64, align 16 + %a281 = alloca { ptr, i64, i64 }, align 16 + %a282 = alloca { ptr, i64, i64 }, align 16 + %a283 = alloca { ptr, i64, i64 }, align 16 + %a286 = alloca { ptr, i64, i64 }, align 16 + %a288 = alloca { ptr, i64, i64 }, align 16 + %a299 = alloca %S.gen.Val, align 16 + %a303 = alloca i64, align 16 + %a306 = alloca i64, align 16 + %a311 = alloca { ptr, i64, i64 }, align 16 + %a312 = alloca { ptr, i64, i64 }, align 16 + %a320 = alloca { ptr, i64, i64 }, align 16 + %a321 = alloca { ptr, i64, i64 }, align 16 + %a336 = alloca { ptr, i64, i64 }, align 16 + %a337 = alloca { ptr, i64, i64 }, align 16 %a355 = alloca { ptr, i64, i64 }, align 16 - %a357 = alloca i64, align 16 - %a360 = alloca i64, align 16 - %a365 = alloca { ptr, i64, i64 }, align 16 - %a366 = alloca { ptr, i64, i64 }, align 16 - %a370 = alloca { ptr, i64, i64 }, align 16 - %a383 = alloca { ptr, i64, i64 }, align 16 - %a384 = alloca { ptr, i64, i64 }, align 16 - %a398 = alloca { ptr, i64, i64 }, align 16 - %a399 = alloca { ptr, i64, i64 }, align 16 - %a401 = alloca { ptr, i64, i64 }, align 16 - %a402 = alloca { ptr, i64, i64 }, align 16 - %a403 = alloca { ptr, i64, i64 }, align 16 - %a404 = alloca { ptr, i64, i64 }, align 16 - %a406 = alloca { ptr, i64, i64 }, align 16 - %a407 = alloca { ptr, i64, i64 }, align 16 - %a408 = alloca { ptr, i64, i64 }, align 16 - %a409 = alloca { ptr, i64, i64 }, align 16 - %a411 = alloca { ptr, i64, i64 }, align 16 - %a416 = alloca { ptr, i64, i64 }, align 16 - %a417 = alloca { ptr, i64, i64 }, align 16 - %a418 = alloca { ptr, i64, i64 }, align 16 - %a419 = alloca { ptr, i64, i64 }, align 16 + %a356 = alloca { ptr, i64, i64 }, align 16 + %a358 = alloca %S.gen.Val, align 16 + %a360 = alloca { ptr, i64, i64 }, align 16 + %a372 = alloca { ptr, i64, i64 }, align 16 + %a386 = alloca i1, align 16 + %a404 = alloca %S.gen.StructDef, align 16 + %a405 = alloca %S.gen.StructDef, align 16 + %a407 = alloca %S.gen.StructDef, align 16 + %a410 = alloca i64, align 16 %a421 = alloca { ptr, i64, i64 }, align 16 %a422 = alloca { ptr, i64, i64 }, align 16 - %a423 = alloca { ptr, i64, i64 }, align 16 - %a424 = alloca { ptr, i64, i64 }, align 16 - %a426 = alloca { ptr, i64, i64 }, align 16 - %a450 = alloca { ptr, i64, i64 }, align 16 - %a451 = alloca { ptr, i64, i64 }, align 16 - %a452 = alloca { ptr, i64, i64 }, align 16 - %a453 = alloca { ptr, i64, i64 }, align 16 - %a455 = alloca { ptr, i64, i64 }, align 16 - %a456 = alloca { ptr, i64, i64 }, align 16 - %a457 = alloca { ptr, i64, i64 }, align 16 - %a458 = alloca { ptr, i64, i64 }, align 16 + %a444 = alloca i64, align 16 + %a453 = alloca %S.ast.Type, align 16 + %a454 = alloca %S.ast.Type, align 16 + %a456 = alloca %S.ast.Type, align 16 + %a461 = alloca { ptr, i64, i64 }, align 16 + %a462 = alloca { ptr, i64, i64 }, align 16 %a463 = alloca { ptr, i64, i64 }, align 16 %a464 = alloca { ptr, i64, i64 }, align 16 - %a465 = alloca { ptr, i64, i64 }, align 16 %a466 = alloca { ptr, i64, i64 }, align 16 %a467 = alloca { ptr, i64, i64 }, align 16 - %a470 = alloca { ptr, i64, i64 }, align 16 - %a473 = alloca %S.ast.Type, align 16 - %a474 = alloca %S.ast.Type, align 16 - %a481 = alloca %S.gen.Val, align 16 + %a468 = alloca { ptr, i64, i64 }, align 16 + %a469 = alloca { ptr, i64, i64 }, align 16 + %a473 = alloca { ptr, i64, i64 }, align 16 + %a474 = alloca { ptr, i64, i64 }, align 16 + %a475 = alloca { ptr, i64, i64 }, align 16 + %a476 = alloca { ptr, i64, i64 }, align 16 + %a478 = alloca { ptr, i64, i64 }, align 16 + %a479 = alloca { ptr, i64, i64 }, align 16 + %a480 = alloca { ptr, i64, i64 }, align 16 + %a481 = alloca { ptr, i64, i64 }, align 16 + %a491 = alloca { ptr, i64, i64 }, align 16 + %a493 = alloca { ptr, i64, i64 }, align 16 + %a494 = alloca { ptr, i64, i64 }, align 16 + %a495 = alloca { ptr, i64, i64 }, align 16 + %a496 = alloca { ptr, i64, i64 }, align 16 + %a497 = alloca { ptr, i64, i64 }, align 16 + %a500 = alloca { ptr, i64, i64 }, align 16 + %a501 = alloca { ptr, i64, i64 }, align 16 + %a524 = alloca { ptr, i64, i64 }, align 16 + %a525 = alloca { ptr, i64, i64 }, align 16 + %a535 = alloca %S.ast.Node, align 16 + %a536 = alloca %S.ast.Node, align 16 + %a538 = alloca %S.ast.Node, align 16 + %a543 = alloca %S.gen.Val, align 16 + %a548 = alloca { ptr, i64, i64 }, align 16 + %a549 = alloca { ptr, i64, i64 }, align 16 + %a556 = alloca { ptr, i64, i64 }, align 16 + %a557 = alloca { ptr, i64, i64 }, align 16 + %a563 = alloca { ptr, i64, i64 }, align 16 + %a564 = alloca { ptr, i64, i64 }, align 16 + %a572 = alloca %S.ast.Type, align 16 + %a573 = alloca %S.ast.Type, align 16 + %a576 = alloca %S.ast.Type, align 16 + %a583 = alloca %S.gen.Val, align 16 + %a587 = alloca { ptr, i64, i64 }, align 16 + %a592 = alloca { ptr, i64, i64 }, align 16 + %a599 = alloca { ptr, i64, i64 }, align 16 + %a600 = alloca { ptr, i64, i64 }, align 16 + %a608 = alloca { ptr, i64, i64 }, align 16 + %a609 = alloca { ptr, i64, i64 }, align 16 + %a619 = alloca { ptr, i64, i64 }, align 16 + %a620 = alloca { ptr, i64, i64 }, align 16 + %a647 = alloca { ptr, i64, i64 }, align 16 + %a660 = alloca i64, align 16 + %a665 = alloca { ptr, i64, i64 }, align 16 + %a667 = alloca i64, align 16 + %a670 = alloca i64, align 16 + %a675 = alloca { ptr, i64, i64 }, align 16 + %a676 = alloca { ptr, i64, i64 }, align 16 + %a680 = alloca { ptr, i64, i64 }, align 16 + %a702 = alloca { ptr, i64, i64 }, align 16 + %a703 = alloca { ptr, i64, i64 }, align 16 + %a717 = alloca { ptr, i64, i64 }, align 16 + %a718 = alloca { ptr, i64, i64 }, align 16 + %a720 = alloca { ptr, i64, i64 }, align 16 + %a721 = alloca { ptr, i64, i64 }, align 16 + %a722 = alloca { ptr, i64, i64 }, align 16 + %a723 = alloca { ptr, i64, i64 }, align 16 + %a725 = alloca { ptr, i64, i64 }, align 16 + %a726 = alloca { ptr, i64, i64 }, align 16 + %a727 = alloca { ptr, i64, i64 }, align 16 + %a728 = alloca { ptr, i64, i64 }, align 16 + %a730 = alloca { ptr, i64, i64 }, align 16 + %a733 = alloca { ptr, i64, i64 }, align 16 + %a734 = alloca { ptr, i64, i64 }, align 16 + %a752 = alloca %S.gen.EnumDef, align 16 + %a753 = alloca %S.gen.EnumDef, align 16 + %a755 = alloca %S.gen.EnumDef, align 16 + %a756 = alloca { ptr, i64, i64 }, align 16 + %a760 = alloca i64, align 16 + %a772 = alloca { ptr, i64, i64 }, align 16 + %a774 = alloca i64, align 16 + %a777 = alloca i64, align 16 + %a782 = alloca { ptr, i64, i64 }, align 16 + %a783 = alloca { ptr, i64, i64 }, align 16 + %a787 = alloca { ptr, i64, i64 }, align 16 + %a800 = alloca { ptr, i64, i64 }, align 16 + %a801 = alloca { ptr, i64, i64 }, align 16 + %a815 = alloca { ptr, i64, i64 }, align 16 + %a816 = alloca { ptr, i64, i64 }, align 16 + %a818 = alloca { ptr, i64, i64 }, align 16 + %a819 = alloca { ptr, i64, i64 }, align 16 + %a820 = alloca { ptr, i64, i64 }, align 16 + %a821 = alloca { ptr, i64, i64 }, align 16 + %a823 = alloca { ptr, i64, i64 }, align 16 + %a824 = alloca { ptr, i64, i64 }, align 16 + %a825 = alloca { ptr, i64, i64 }, align 16 + %a826 = alloca { ptr, i64, i64 }, align 16 + %a828 = alloca { ptr, i64, i64 }, align 16 + %a833 = alloca { ptr, i64, i64 }, align 16 + %a834 = alloca { ptr, i64, i64 }, align 16 + %a835 = alloca { ptr, i64, i64 }, align 16 + %a836 = alloca { ptr, i64, i64 }, align 16 + %a838 = alloca { ptr, i64, i64 }, align 16 + %a839 = alloca { ptr, i64, i64 }, align 16 + %a840 = alloca { ptr, i64, i64 }, align 16 + %a841 = alloca { ptr, i64, i64 }, align 16 + %a843 = alloca { ptr, i64, i64 }, align 16 + %a867 = alloca { ptr, i64, i64 }, align 16 + %a868 = alloca { ptr, i64, i64 }, align 16 + %a869 = alloca { ptr, i64, i64 }, align 16 + %a870 = alloca { ptr, i64, i64 }, align 16 + %a872 = alloca { ptr, i64, i64 }, align 16 + %a873 = alloca { ptr, i64, i64 }, align 16 + %a874 = alloca { ptr, i64, i64 }, align 16 + %a875 = alloca { ptr, i64, i64 }, align 16 + %a880 = alloca { ptr, i64, i64 }, align 16 + %a881 = alloca { ptr, i64, i64 }, align 16 + %a882 = alloca { ptr, i64, i64 }, align 16 + %a883 = alloca { ptr, i64, i64 }, align 16 + %a884 = alloca { ptr, i64, i64 }, align 16 + %a887 = alloca { ptr, i64, i64 }, align 16 + %a890 = alloca %S.ast.Type, align 16 + %a891 = alloca %S.ast.Type, align 16 + %a898 = alloca %S.gen.Val, align 16 store ptr %p0, ptr %a1 store %S.ast.Node %p1, ptr %a2 store i1 %p2, ptr %a3 @@ -58242,11 +60016,11 @@ entry: %t6 = load { ptr, i64, i64 }, ptr %t5 %t7 = extractvalue { ptr, i64, i64 } %t6, 1 %t8 = icmp uge i64 0, %t7 - br i1 %t8, label %range5664, label %inrange5665 -range5664: - call void @finch_panic_index(ptr @.str.3666, i64 2961, i64 0, i64 %t7) + br i1 %t8, label %range5808, label %inrange5809 +range5808: + call void @finch_panic_index(ptr @.str.3751, i64 3042, i64 0, i64 %t7) unreachable -inrange5665: +inrange5809: %t9 = extractvalue { ptr, i64, i64 } %t6, 0 %t10 = getelementptr inbounds %S.ast.Node, ptr %t9, i64 0 %t11 = load %S.ast.Node, ptr %t10 @@ -58261,49 +60035,49 @@ inrange5665: %t20 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 0 %t21 = load { ptr, i64, i64 }, ptr %t20 store { ptr, i64, i64 } %t21, ptr %a22 - store { ptr, i64, i64 } { ptr @.str.3667, i64 4, i64 0 }, ptr %a23 + store { ptr, i64, i64 } { ptr @.str.3752, i64 4, i64 0 }, ptr %a23 %t24 = call i32 @finch_str_eq(ptr %a22, ptr %a23) %t25 = icmp ne i32 %t24, 0 - br label %logic.from5666 -logic.from5666: - br i1 %t25, label %logic.end5668, label %logic.rhs5667 -logic.rhs5667: + br label %logic.from5810 +logic.from5810: + br i1 %t25, label %logic.end5812, label %logic.rhs5811 +logic.rhs5811: %t26 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 0 %t27 = load { ptr, i64, i64 }, ptr %t26 store { ptr, i64, i64 } %t27, ptr %a28 - store { ptr, i64, i64 } { ptr @.str.3668, i64 4, i64 0 }, ptr %a29 + store { ptr, i64, i64 } { ptr @.str.3753, i64 4, i64 0 }, ptr %a29 %t30 = call i32 @finch_str_eq(ptr %a28, ptr %a29) %t31 = icmp ne i32 %t30, 0 - br label %logic.rend5669 -logic.rend5669: - br label %logic.end5668 -logic.end5668: - %t32 = phi i1 [ true, %logic.from5666 ], [ %t31, %logic.rend5669 ] - br i1 %t32, label %then5670, label %endif5672 -then5670: + br label %logic.rend5813 +logic.rend5813: + br label %logic.end5812 +logic.end5812: + %t32 = phi i1 [ true, %logic.from5810 ], [ %t31, %logic.rend5813 ] + br i1 %t32, label %then5814, label %endif5816 +then5814: %t33 = load ptr, ptr %a1 %t34 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t35 = load { ptr, i64, i64 }, ptr %t34 %t36 = extractvalue { ptr, i64, i64 } %t35, 1 %t37 = icmp uge i64 0, %t36 - br i1 %t37, label %range5673, label %inrange5674 -range5673: - call void @finch_panic_index(ptr @.str.3669, i64 2964, i64 0, i64 %t36) + br i1 %t37, label %range5817, label %inrange5818 +range5817: + call void @finch_panic_index(ptr @.str.3754, i64 3045, i64 0, i64 %t36) unreachable -inrange5674: +inrange5818: %t38 = extractvalue { ptr, i64, i64 } %t35, 0 %t39 = getelementptr inbounds %S.ast.Node, ptr %t38, i64 0 %t40 = load %S.ast.Node, ptr %t39 - call void @finch.gen.fail(ptr %t33, %S.ast.Node %t40, { ptr, i64, i64 } { ptr @.str.3670, i64 30, i64 0 }) - br label %endif5672 -endif5672: + call void @finch.gen.fail(ptr %t33, %S.ast.Node %t40, { ptr, i64, i64 } { ptr @.str.3755, i64 30, i64 0 }) + br label %endif5816 +endif5816: %t41 = load ptr, ptr %a1 %t42 = icmp eq ptr %t41, null - br i1 %t42, label %panic5675, label %ok5676 -panic5675: - call void @finch_panic(ptr @.str.3671, i64 2966, ptr @.str.3672) + br i1 %t42, label %panic5819, label %ok5820 +panic5819: + call void @finch_panic(ptr @.str.3756, i64 3047, ptr @.str.3757) unreachable -ok5676: +ok5820: %t43 = getelementptr inbounds %S.gen.Gen, ptr %t41, i32 0, i32 11 %t44 = getelementptr inbounds { ptr, i64, i64 }, ptr %t43, i32 0, i32 1 %t45 = load i64, ptr %t44 @@ -58311,752 +60085,1429 @@ ok5676: %t47 = load ptr, ptr %a1 %t48 = load %S.gen.Val, ptr %a13 call void @finch.gen.hold(ptr %t47, %S.gen.Val %t48) - %t49 = load ptr, ptr %a1 - %t50 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t49, { ptr, i64, i64 } { ptr @.str.3673, i64 9, i64 0 }) - store { ptr, i64, i64 } %t50, ptr %a51 - store i1 false, ptr %a52 - store i1 false, ptr %a53 - store { ptr, i64, i64 } zeroinitializer, ptr %a54 - store { ptr, i64, i64 } zeroinitializer, ptr %a55 - store { ptr, i64, i64 } zeroinitializer, ptr %a56 - %t57 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3674, i64 4, i64 0 }) - store %S.ast.Type %t57, ptr %a58 - %t59 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 - %t60 = getelementptr inbounds { ptr, i64, i64 }, ptr %t59, i32 0, i32 1 - %t61 = load i64, ptr %t60 - %t62 = sub i64 %t61, 1 - store i64 %t62, ptr %a63 - %t64 = load i64, ptr %a63 - store i64 0, ptr %a65 - br label %for.cond5677 -for.cond5677: - %t66 = load i64, ptr %a65 - %t67 = icmp slt i64 %t66, %t64 - br i1 %t67, label %for.body5678, label %for.end5680 -for.body5678: - %t68 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 - %t69 = load i64, ptr %a65 - %t70 = add i64 1, %t69 - %t71 = load { ptr, i64, i64 }, ptr %t68 - %t72 = extractvalue { ptr, i64, i64 } %t71, 1 - %t73 = icmp uge i64 %t70, %t72 - br i1 %t73, label %range5681, label %inrange5682 -range5681: - call void @finch_panic_index(ptr @.str.3675, i64 2977, i64 %t70, i64 %t72) - unreachable -inrange5682: - %t74 = extractvalue { ptr, i64, i64 } %t71, 0 - %t75 = getelementptr inbounds %S.ast.Node, ptr %t74, i64 %t70 - %t76 = load %S.ast.Node, ptr %t75 - store %S.ast.Node %t76, ptr %a77 - call void @finch.copy.S_ast_Node(ptr %a78, ptr %a77) - %t79 = load %S.ast.Node, ptr %a78 - store %S.ast.Node %t79, ptr %a80 - %t81 = load i1, ptr %a52 - br i1 %t81, label %then5683, label %endif5685 -then5683: - %t82 = load ptr, ptr %a1 - %t83 = load %S.ast.Node, ptr %a80 - call void @finch.gen.fail(ptr %t82, %S.ast.Node %t83, { ptr, i64, i64 } { ptr @.str.3676, i64 72, i64 0 }) - br label %endif5685 -endif5685: - %t84 = load ptr, ptr %a1 - %t85 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t84, { ptr, i64, i64 } { ptr @.str.3677, i64 9, i64 0 }) - store { ptr, i64, i64 } %t85, ptr %a86 - %t87 = load ptr, ptr %a1 - %t88 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t87, { ptr, i64, i64 } { ptr @.str.3678, i64 10, i64 0 }) - store { ptr, i64, i64 } %t88, ptr %a89 - %t90 = getelementptr inbounds %S.ast.Node, ptr %a80, i32 0, i32 6 - %t91 = load i1, ptr %t90 - br i1 %t91, label %then5686, label %else5687 -then5686: - store i1 true, ptr %a52 - %t92 = load ptr, ptr %a1 - %t93 = load { ptr, i64, i64 }, ptr %a86 - call void @finch.gen.br(ptr %t92, { ptr, i64, i64 } %t93) - br label %endif5688 -else5687: - %t94 = getelementptr inbounds %S.ast.Node, ptr %a80, i32 0, i32 9 - %t95 = load { ptr, i64, i64 }, ptr %t94 - %t96 = extractvalue { ptr, i64, i64 } %t95, 1 - %t97 = icmp uge i64 0, %t96 - br i1 %t97, label %range5689, label %inrange5690 -range5689: - call void @finch_panic_index(ptr @.str.3679, i64 2987, i64 0, i64 %t96) - unreachable -inrange5690: - %t98 = extractvalue { ptr, i64, i64 } %t95, 0 - %t99 = getelementptr inbounds %S.ast.Node, ptr %t98, i64 0 - %t100 = getelementptr inbounds %S.ast.Node, ptr %t99, i32 0, i32 9 - %t101 = load { ptr, i64, i64 }, ptr %t100 - store { ptr, i64, i64 } %t101, ptr %a102 - call void @finch.copy.arr_S_ast_Node(ptr %a103, ptr %a102) - %t104 = load { ptr, i64, i64 }, ptr %a103 - store { ptr, i64, i64 } %t104, ptr %a105 - %t106 = getelementptr inbounds { ptr, i64, i64 }, ptr %a105, i32 0, i32 1 - %t107 = load i64, ptr %t106 - store i64 0, ptr %a108 - br label %for.cond5691 -for.cond5691: - %t109 = load i64, ptr %a108 - %t110 = icmp slt i64 %t109, %t107 - br i1 %t110, label %for.body5692, label %for.end5694 -for.body5692: - %t111 = load ptr, ptr %a1 - %t112 = load i64, ptr %a108 - %t113 = load { ptr, i64, i64 }, ptr %a105 - %t114 = extractvalue { ptr, i64, i64 } %t113, 1 - %t115 = icmp uge i64 %t112, %t114 - br i1 %t115, label %range5695, label %inrange5696 -range5695: - call void @finch_panic_index(ptr @.str.3680, i64 2989, i64 %t112, i64 %t114) - unreachable -inrange5696: - %t116 = extractvalue { ptr, i64, i64 } %t113, 0 - %t117 = getelementptr inbounds %S.ast.Node, ptr %t116, i64 %t112 - %t118 = load %S.ast.Node, ptr %t117 - %t119 = load %S.ast.Type, ptr %a19 - %t120 = call %S.gen.Val @finch.gen.patternValue(ptr %t111, %S.ast.Node %t118, %S.ast.Type %t119) - store %S.gen.Val %t120, ptr %a121 - %t122 = getelementptr inbounds { ptr, i64, i64 }, ptr %a54, i32 0, i32 1 - %t123 = getelementptr inbounds %S.gen.Val, ptr %a121, i32 0, i32 0 - %t124 = load { ptr, i64, i64 }, ptr %t123 - store i64 -1, ptr %a125 - %t126 = load i64, ptr %t122 - %t127 = load ptr, ptr %a54 - store i64 0, ptr %a128 - br label %find.cond5697 -find.cond5697: - %t129 = load i64, ptr %a128 - %t130 = icmp slt i64 %t129, %t126 - br i1 %t130, label %find.body5698, label %find.end5701 -find.body5698: - %t131 = getelementptr inbounds { ptr, i64, i64 }, ptr %t127, i64 %t129 - %t132 = load { ptr, i64, i64 }, ptr %t131 - store { ptr, i64, i64 } %t132, ptr %a133 - store { ptr, i64, i64 } %t124, ptr %a134 - %t135 = call i32 @finch_str_eq(ptr %a133, ptr %a134) - %t136 = icmp ne i32 %t135, 0 - br i1 %t136, label %find.hit5699, label %find.next5700 -find.hit5699: - store i64 %t129, ptr %a125 - br label %find.end5701 -find.next5700: - %t137 = add i64 %t129, 1 - store i64 %t137, ptr %a128 - br label %find.cond5697 -find.end5701: - %t138 = load i64, ptr %a125 - %t139 = icmp sge i64 %t138, 0 - br label %logic.from5702 -logic.from5702: - br i1 %t139, label %logic.rhs5703, label %logic.end5704 -logic.rhs5703: - %t140 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 0 - %t141 = load { ptr, i64, i64 }, ptr %t140 - store { ptr, i64, i64 } %t141, ptr %a142 - store { ptr, i64, i64 } { ptr @.str.3681, i64 4, i64 0 }, ptr %a143 - %t144 = call i32 @finch_str_eq(ptr %a142, ptr %a143) - %t145 = icmp ne i32 %t144, 0 - br label %logic.rend5705 -logic.rend5705: - br label %logic.end5704 -logic.end5704: - %t146 = phi i1 [ false, %logic.from5702 ], [ %t145, %logic.rend5705 ] - br i1 %t146, label %then5706, label %endif5708 -then5706: - %t147 = load ptr, ptr %a1 - %t148 = load i64, ptr %a108 - %t149 = load { ptr, i64, i64 }, ptr %a105 - %t150 = extractvalue { ptr, i64, i64 } %t149, 1 - %t151 = icmp uge i64 %t148, %t150 - br i1 %t151, label %range5709, label %inrange5710 -range5709: - call void @finch_panic_index(ptr @.str.3682, i64 2991, i64 %t148, i64 %t150) - unreachable -inrange5710: - %t152 = extractvalue { ptr, i64, i64 } %t149, 0 - %t153 = getelementptr inbounds %S.ast.Node, ptr %t152, i64 %t148 - %t154 = load %S.ast.Node, ptr %t153 - call void @finch.gen.fail(ptr %t147, %S.ast.Node %t154, { ptr, i64, i64 } { ptr @.str.3683, i64 49, i64 0 }) - br label %endif5708 -endif5708: - %t155 = getelementptr inbounds { ptr, i64, i64 }, ptr %a54, i32 0, i32 1 - %t156 = getelementptr inbounds %S.gen.Val, ptr %a121, i32 0, i32 0 - %t157 = load { ptr, i64, i64 }, ptr %t156 - store { ptr, i64, i64 } %t157, ptr %a158 - call void @finch_str_copy(ptr %a159, ptr %a158) - %t160 = load { ptr, i64, i64 }, ptr %a159 - %t161 = load i64, ptr %t155 - %t162 = add i64 %t161, 1 - call void @finch_arr_reserve(ptr %a54, i64 %t162, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) - %t163 = load ptr, ptr %a54 - %t164 = getelementptr inbounds { ptr, i64, i64 }, ptr %t163, i64 %t161 - store { ptr, i64, i64 } %t160, ptr %t164 - store i64 %t162, ptr %t155 - %t165 = load ptr, ptr %a1 - %t166 = load %S.gen.Val, ptr %a13 - %t167 = load %S.gen.Val, ptr %a121 - %t168 = load i64, ptr %a108 - %t169 = load { ptr, i64, i64 }, ptr %a105 - %t170 = extractvalue { ptr, i64, i64 } %t169, 1 - %t171 = icmp uge i64 %t168, %t170 - br i1 %t171, label %range5711, label %inrange5712 -range5711: - call void @finch_panic_index(ptr @.str.3685, i64 2994, i64 %t168, i64 %t170) - unreachable -inrange5712: - %t172 = extractvalue { ptr, i64, i64 } %t169, 0 - %t173 = getelementptr inbounds %S.ast.Node, ptr %t172, i64 %t168 - %t174 = load %S.ast.Node, ptr %t173 - %t175 = call %S.gen.Val @finch.gen.compare(ptr %t165, { ptr, i64, i64 } { ptr @.str.3684, i64 2, i64 0 }, %S.gen.Val %t166, %S.gen.Val %t167, %S.ast.Node %t174) - store %S.gen.Val %t175, ptr %a176 - %t177 = load i64, ptr %a108 - %t178 = getelementptr inbounds { ptr, i64, i64 }, ptr %a105, i32 0, i32 1 - %t179 = load i64, ptr %t178 - %t180 = sub i64 %t179, 1 - %t181 = icmp eq i64 %t177, %t180 - br i1 %t181, label %then5713, label %else5714 -then5713: - %t182 = load ptr, ptr %a1 - %t183 = getelementptr inbounds %S.gen.Val, ptr %a176, i32 0, i32 0 - %t184 = load { ptr, i64, i64 }, ptr %t183 - %t185 = load { ptr, i64, i64 }, ptr %a86 - %t186 = load { ptr, i64, i64 }, ptr %a89 - call void @finch.gen.condBr(ptr %t182, { ptr, i64, i64 } %t184, { ptr, i64, i64 } %t185, { ptr, i64, i64 } %t186) - br label %endif5715 -else5714: - %t187 = load ptr, ptr %a1 - %t188 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t187, { ptr, i64, i64 } { ptr @.str.3686, i64 8, i64 0 }) - store { ptr, i64, i64 } %t188, ptr %a189 - %t190 = load ptr, ptr %a1 - %t191 = getelementptr inbounds %S.gen.Val, ptr %a176, i32 0, i32 0 - %t192 = load { ptr, i64, i64 }, ptr %t191 - %t193 = load { ptr, i64, i64 }, ptr %a86 - %t194 = load { ptr, i64, i64 }, ptr %a189 - call void @finch.gen.condBr(ptr %t190, { ptr, i64, i64 } %t192, { ptr, i64, i64 } %t193, { ptr, i64, i64 } %t194) - %t195 = load ptr, ptr %a1 - %t196 = load { ptr, i64, i64 }, ptr %a189 - call void @finch.gen.label(ptr %t195, { ptr, i64, i64 } %t196) - call void @finch_str_drop(ptr %a189) - br label %endif5715 -endif5715: - call void @finch.drop.S_gen_Val(ptr %a176) - call void @finch.drop.S_gen_Val(ptr %a121) - br label %for.step5693 -for.step5693: - %t197 = load i64, ptr %a108 - %t198 = add i64 %t197, 1 - store i64 %t198, ptr %a108 - br label %for.cond5691 -for.end5694: - call void @finch.drop.arr_S_ast_Node(ptr %a105) - br label %endif5688 -endif5688: - %t199 = load ptr, ptr %a1 - %t200 = load { ptr, i64, i64 }, ptr %a86 - call void @finch.gen.label(ptr %t199, { ptr, i64, i64 } %t200) - %t201 = getelementptr inbounds %S.ast.Node, ptr %a80, i32 0, i32 9 - %t202 = load { ptr, i64, i64 }, ptr %t201 - %t203 = extractvalue { ptr, i64, i64 } %t202, 1 - %t204 = icmp uge i64 1, %t203 - br i1 %t204, label %range5716, label %inrange5717 -range5716: - call void @finch_panic_index(ptr @.str.3687, i64 3005, i64 1, i64 %t203) - unreachable -inrange5717: - %t205 = extractvalue { ptr, i64, i64 } %t202, 0 - %t206 = getelementptr inbounds %S.ast.Node, ptr %t205, i64 1 - %t207 = load %S.ast.Node, ptr %t206 - store %S.ast.Node %t207, ptr %a208 - call void @finch.copy.S_ast_Node(ptr %a209, ptr %a208) - %t210 = load %S.ast.Node, ptr %a209 - store %S.ast.Node %t210, ptr %a211 - %t212 = load i1, ptr %a3 - br i1 %t212, label %then5718, label %else5719 -then5718: - %t213 = load ptr, ptr %a1 - %t214 = load %S.ast.Node, ptr %a211 - %t215 = call %S.gen.Val @finch.gen.expr(ptr %t213, %S.ast.Node %t214) - store %S.gen.Val %t215, ptr %a216 - %t217 = load i64, ptr %a65 - %t218 = icmp eq i64 %t217, 0 - br label %logic.from5721 -logic.from5721: - br i1 %t218, label %logic.end5723, label %logic.rhs5722 -logic.rhs5722: - %t219 = getelementptr inbounds %S.ast.Type, ptr %a58, i32 0, i32 0 - %t220 = load { ptr, i64, i64 }, ptr %t219 - store { ptr, i64, i64 } %t220, ptr %a221 - store { ptr, i64, i64 } { ptr @.str.3688, i64 4, i64 0 }, ptr %a222 - %t223 = call i32 @finch_str_eq(ptr %a221, ptr %a222) - %t224 = icmp ne i32 %t223, 0 - br label %logic.rend5724 -logic.rend5724: - br label %logic.end5723 -logic.end5723: - %t225 = phi i1 [ true, %logic.from5721 ], [ %t224, %logic.rend5724 ] - br i1 %t225, label %then5725, label %endif5727 -then5725: - %t226 = getelementptr inbounds %S.gen.Val, ptr %a216, i32 0, i32 1 - %t227 = getelementptr inbounds %S.ast.Type, ptr %t226, i32 0, i32 0 - %t228 = load { ptr, i64, i64 }, ptr %t227 - store { ptr, i64, i64 } %t228, ptr %a229 - store { ptr, i64, i64 } { ptr @.str.3689, i64 4, i64 0 }, ptr %a230 - %t231 = call i32 @finch_str_eq(ptr %a229, ptr %a230) - %t232 = icmp ne i32 %t231, 0 - br label %logic.from5728 -logic.from5728: - br i1 %t232, label %logic.end5730, label %logic.rhs5729 -logic.rhs5729: - %t233 = getelementptr inbounds %S.gen.Val, ptr %a216, i32 0, i32 1 - %t234 = getelementptr inbounds %S.ast.Type, ptr %t233, i32 0, i32 0 - %t235 = load { ptr, i64, i64 }, ptr %t234 - store { ptr, i64, i64 } %t235, ptr %a236 - store { ptr, i64, i64 } { ptr @.str.3690, i64 4, i64 0 }, ptr %a237 - %t238 = call i32 @finch_str_eq(ptr %a236, ptr %a237) - %t239 = icmp ne i32 %t238, 0 - br label %logic.rend5731 -logic.rend5731: - br label %logic.end5730 -logic.end5730: - %t240 = phi i1 [ true, %logic.from5728 ], [ %t239, %logic.rend5731 ] - br i1 %t240, label %then5732, label %endif5734 -then5732: - %t241 = load ptr, ptr %a1 - %t242 = load %S.ast.Node, ptr %a211 - call void @finch.gen.fail(ptr %t241, %S.ast.Node %t242, { ptr, i64, i64 } { ptr @.str.3691, i64 52, i64 0 }) - br label %endif5734 -endif5734: - %t243 = getelementptr inbounds %S.gen.Val, ptr %a216, i32 0, i32 1 - %t244 = load %S.ast.Type, ptr %t243 - store %S.ast.Type %t244, ptr %a245 - call void @finch.copy.S_ast_Type(ptr %a246, ptr %a245) - %t247 = load %S.ast.Type, ptr %a246 - %t248 = load %S.ast.Type, ptr %a58 - store %S.ast.Type %t247, ptr %a58 - store %S.ast.Type %t248, ptr %a249 - call void @finch.drop.S_ast_Type(ptr %a249) - br label %endif5727 -endif5727: - %t250 = load ptr, ptr %a1 - %t251 = load %S.gen.Val, ptr %a216 - %t252 = load %S.ast.Type, ptr %a58 - %t253 = load %S.ast.Node, ptr %a211 - %t254 = call %S.gen.Val @finch.gen.coerce(ptr %t250, %S.gen.Val %t251, %S.ast.Type %t252, %S.ast.Node %t253, { ptr, i64, i64 } { ptr @.str.3692, i64 57, i64 0 }) - %t255 = load %S.gen.Val, ptr %a216 - store %S.gen.Val %t254, ptr %a216 - store %S.gen.Val %t255, ptr %a256 - call void @finch.drop.S_gen_Val(ptr %a256) - %t257 = load ptr, ptr %a1 - %t258 = load %S.gen.Val, ptr %a216 - %t259 = call { ptr, i64, i64 } @finch.gen.own(ptr %t257, %S.gen.Val %t258) - store { ptr, i64, i64 } %t259, ptr %a260 - %t261 = load ptr, ptr %a1 - %t262 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t261, { ptr, i64, i64 } { ptr @.str.3693, i64 10, i64 0 }) - store { ptr, i64, i64 } %t262, ptr %a263 - %t264 = load ptr, ptr %a1 - %t265 = load { ptr, i64, i64 }, ptr %a263 - call void @finch.gen.br(ptr %t264, { ptr, i64, i64 } %t265) - %t266 = load ptr, ptr %a1 - %t267 = load { ptr, i64, i64 }, ptr %a263 - call void @finch.gen.label(ptr %t266, { ptr, i64, i64 } %t267) - %t268 = getelementptr inbounds { ptr, i64, i64 }, ptr %a55, i32 0, i32 1 - %t269 = load { ptr, i64, i64 }, ptr %a260 - store { ptr, i64, i64 } %t269, ptr %a270 - call void @finch_str_copy(ptr %a271, ptr %a270) - %t272 = load { ptr, i64, i64 }, ptr %a271 - %t273 = load i64, ptr %t268 - %t274 = add i64 %t273, 1 - call void @finch_arr_reserve(ptr %a55, i64 %t274, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) - %t275 = load ptr, ptr %a55 - %t276 = getelementptr inbounds { ptr, i64, i64 }, ptr %t275, i64 %t273 - store { ptr, i64, i64 } %t272, ptr %t276 - store i64 %t274, ptr %t268 - %t277 = getelementptr inbounds { ptr, i64, i64 }, ptr %a56, i32 0, i32 1 - %t278 = load { ptr, i64, i64 }, ptr %a263 - store { ptr, i64, i64 } %t278, ptr %a279 - call void @finch_str_copy(ptr %a280, ptr %a279) - %t281 = load { ptr, i64, i64 }, ptr %a280 - %t282 = load i64, ptr %t277 - %t283 = add i64 %t282, 1 - call void @finch_arr_reserve(ptr %a56, i64 %t283, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) - %t284 = load ptr, ptr %a56 - %t285 = getelementptr inbounds { ptr, i64, i64 }, ptr %t284, i64 %t282 - store { ptr, i64, i64 } %t281, ptr %t285 - store i64 %t283, ptr %t277 - %t286 = load ptr, ptr %a1 - %t287 = load { ptr, i64, i64 }, ptr %a51 - call void @finch.gen.br(ptr %t286, { ptr, i64, i64 } %t287) - store i1 true, ptr %a53 - call void @finch_str_drop(ptr %a263) - call void @finch_str_drop(ptr %a260) - call void @finch.drop.S_gen_Val(ptr %a216) - br label %endif5720 -else5719: - %t288 = getelementptr inbounds %S.ast.Node, ptr %a211, i32 0, i32 0 - %t289 = load { ptr, i64, i64 }, ptr %t288 - store { ptr, i64, i64 } %t289, ptr %a290 - store { ptr, i64, i64 } { ptr @.str.3694, i64 5, i64 0 }, ptr %a291 - %t292 = call i32 @finch_str_eq(ptr %a290, ptr %a291) - %t293 = icmp ne i32 %t292, 0 - br i1 %t293, label %then5735, label %else5736 -then5735: - %t294 = load ptr, ptr %a1 - %t295 = load %S.ast.Node, ptr %a211 - call void @finch.gen.block(ptr %t294, %S.ast.Node %t295, i1 true) - br label %endif5737 -else5736: - %t296 = load ptr, ptr %a1 - %t297 = load %S.ast.Node, ptr %a211 - call void @finch.gen.stmt(ptr %t296, %S.ast.Node %t297) - br label %endif5737 -endif5737: - %t298 = load ptr, ptr %a1 - %t299 = icmp eq ptr %t298, null - br i1 %t299, label %panic5738, label %ok5739 -panic5738: - call void @finch_panic(ptr @.str.3695, i64 3029, ptr @.str.3696) - unreachable -ok5739: - %t300 = getelementptr inbounds %S.gen.Gen, ptr %t298, i32 0, i32 9 - %t301 = load i1, ptr %t300 - %t302 = xor i1 %t301, true - br i1 %t302, label %then5740, label %endif5742 -then5740: - store i1 true, ptr %a53 - br label %endif5742 -endif5742: - %t303 = load ptr, ptr %a1 - %t304 = load { ptr, i64, i64 }, ptr %a51 - call void @finch.gen.br(ptr %t303, { ptr, i64, i64 } %t304) - br label %endif5720 -endif5720: - %t305 = getelementptr inbounds %S.ast.Node, ptr %a80, i32 0, i32 6 - %t306 = load i1, ptr %t305 - %t307 = xor i1 %t306, true - br i1 %t307, label %then5743, label %endif5745 -then5743: - %t308 = load ptr, ptr %a1 - %t309 = load { ptr, i64, i64 }, ptr %a89 - call void @finch.gen.label(ptr %t308, { ptr, i64, i64 } %t309) - br label %endif5745 -endif5745: - call void @finch.drop.S_ast_Node(ptr %a211) + store i64 -1, ptr %a49 + store { ptr, i64, i64 } { ptr @.str.3758, i64 0, i64 0 }, ptr %a50 + %t51 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 0 + %t52 = load { ptr, i64, i64 }, ptr %t51 + store { ptr, i64, i64 } %t52, ptr %a53 + store { ptr, i64, i64 } { ptr @.str.3759, i64 6, i64 0 }, ptr %a54 + %t55 = call i32 @finch_str_eq(ptr %a53, ptr %a54) + %t56 = icmp ne i32 %t55, 0 + br i1 %t56, label %then5821, label %endif5823 +then5821: + %t57 = load ptr, ptr %a1 + %t58 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 3 + %t59 = load { ptr, i64, i64 }, ptr %t58 + %t60 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 2 + %t61 = load { ptr, i64, i64 }, ptr %t60 + %t62 = call i64 @finch.gen.findSum(ptr %t57, { ptr, i64, i64 } %t59, { ptr, i64, i64 } %t61) + store i64 %t62, ptr %a49 + %t63 = load i64, ptr %a49 + %t64 = icmp sge i64 %t63, 0 + br i1 %t64, label %then5824, label %endif5826 +then5824: + %t65 = load ptr, ptr %a1 + %t66 = load ptr, ptr %a1 + %t67 = load %S.ast.Type, ptr %a19 + %t68 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t66, %S.ast.Type %t67) + store { ptr, i64, i64 } { ptr @.str.3760, i64 13, i64 0 }, ptr %a70 + store { ptr, i64, i64 } %t68, ptr %a71 + call void @finch_str_concat(ptr %a69, ptr %a70, ptr %a71) + store { ptr, i64, i64 } %t68, ptr %a72 + call void @finch_str_drop(ptr %a72) + %t73 = load { ptr, i64, i64 }, ptr %a69 + store { ptr, i64, i64 } %t73, ptr %a75 + store { ptr, i64, i64 } { ptr @.str.3761, i64 1, i64 0 }, ptr %a76 + call void @finch_str_concat(ptr %a74, ptr %a75, ptr %a76) + store { ptr, i64, i64 } %t73, ptr %a77 + call void @finch_str_drop(ptr %a77) + %t78 = load { ptr, i64, i64 }, ptr %a74 + %t79 = getelementptr inbounds %S.gen.Val, ptr %a13, i32 0, i32 0 + %t80 = load { ptr, i64, i64 }, ptr %t79 + store { ptr, i64, i64 } %t78, ptr %a82 + store { ptr, i64, i64 } %t80, ptr %a83 + call void @finch_str_concat(ptr %a81, ptr %a82, ptr %a83) + store { ptr, i64, i64 } %t78, ptr %a84 + call void @finch_str_drop(ptr %a84) + %t85 = load { ptr, i64, i64 }, ptr %a81 + store { ptr, i64, i64 } %t85, ptr %a87 + store { ptr, i64, i64 } { ptr @.str.3762, i64 2, i64 0 }, ptr %a88 + call void @finch_str_concat(ptr %a86, ptr %a87, ptr %a88) + store { ptr, i64, i64 } %t85, ptr %a89 call void @finch_str_drop(ptr %a89) - call void @finch_str_drop(ptr %a86) - call void @finch.drop.S_ast_Node(ptr %a80) - br label %for.step5679 -for.step5679: - %t310 = load i64, ptr %a65 - %t311 = add i64 %t310, 1 - store i64 %t311, ptr %a65 - br label %for.cond5677 -for.end5680: - %t312 = load i1, ptr %a52 - %t313 = xor i1 %t312, true - br i1 %t313, label %then5746, label %endif5748 -then5746: - %t314 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 0 - %t315 = load { ptr, i64, i64 }, ptr %t314 - store { ptr, i64, i64 } %t315, ptr %a316 - store { ptr, i64, i64 } { ptr @.str.3697, i64 4, i64 0 }, ptr %a317 - %t318 = call i32 @finch_str_eq(ptr %a316, ptr %a317) - %t319 = icmp ne i32 %t318, 0 - br i1 %t319, label %then5749, label %else5750 -then5749: - %t320 = load ptr, ptr %a1 - %t321 = icmp eq ptr %t320, null - br i1 %t321, label %panic5752, label %ok5753 -panic5752: - call void @finch_panic(ptr @.str.3698, i64 3040, ptr @.str.3699) + %t90 = load { ptr, i64, i64 }, ptr %a86 + %t91 = load ptr, ptr %a1 + %t92 = icmp eq ptr %t91, null + br i1 %t92, label %panic5827, label %ok5828 +panic5827: + call void @finch_panic(ptr @.str.3763, i64 3054, ptr @.str.3764) unreachable -ok5753: - %t322 = getelementptr inbounds %S.gen.Gen, ptr %t320, i32 0, i32 21 - %t323 = load ptr, ptr %a1 - %t324 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 3 - %t325 = load { ptr, i64, i64 }, ptr %t324 - %t326 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 2 - %t327 = load { ptr, i64, i64 }, ptr %t326 - %t328 = call i64 @finch.gen.findEnum(ptr %t323, { ptr, i64, i64 } %t325, { ptr, i64, i64 } %t327) - %t329 = load { ptr, i64, i64 }, ptr %t322 - %t330 = extractvalue { ptr, i64, i64 } %t329, 1 - %t331 = icmp uge i64 %t328, %t330 - br i1 %t331, label %range5754, label %inrange5755 -range5754: - call void @finch_panic_index(ptr @.str.3700, i64 3040, i64 %t328, i64 %t330) +ok5828: + %t93 = getelementptr inbounds %S.gen.Gen, ptr %t91, i32 0, i32 16 + %t94 = load ptr, ptr %a1 + %t95 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 3 + %t96 = load { ptr, i64, i64 }, ptr %t95 + %t97 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 2 + %t98 = load { ptr, i64, i64 }, ptr %t97 + %t99 = call i64 @finch.gen.findStruct(ptr %t94, { ptr, i64, i64 } %t96, { ptr, i64, i64 } %t98) + %t100 = load { ptr, i64, i64 }, ptr %t93 + %t101 = extractvalue { ptr, i64, i64 } %t100, 1 + %t102 = icmp uge i64 %t99, %t101 + br i1 %t102, label %range5829, label %inrange5830 +range5829: + call void @finch_panic_index(ptr @.str.3765, i64 3054, i64 %t99, i64 %t101) unreachable -inrange5755: - %t332 = extractvalue { ptr, i64, i64 } %t329, 0 - %t333 = getelementptr inbounds %S.gen.EnumDef, ptr %t332, i64 %t328 - %t334 = load %S.gen.EnumDef, ptr %t333 - store %S.gen.EnumDef %t334, ptr %a335 - call void @finch.copy.S_gen_EnumDef(ptr %a336, ptr %a335) - %t337 = load %S.gen.EnumDef, ptr %a336 - store %S.gen.EnumDef %t337, ptr %a338 - store { ptr, i64, i64 } zeroinitializer, ptr %a339 - %t340 = getelementptr inbounds %S.gen.EnumDef, ptr %a338, i32 0, i32 2 - %t341 = getelementptr inbounds { ptr, i64, i64 }, ptr %t340, i32 0, i32 1 - %t342 = load i64, ptr %t341 - store i64 0, ptr %a343 - br label %for.cond5756 -for.cond5756: - %t344 = load i64, ptr %a343 - %t345 = icmp slt i64 %t344, %t342 - br i1 %t345, label %for.body5757, label %for.end5759 -for.body5757: - %t346 = getelementptr inbounds { ptr, i64, i64 }, ptr %a54, i32 0, i32 1 - %t347 = getelementptr inbounds %S.gen.EnumDef, ptr %a338, i32 0, i32 3 - %t348 = load i64, ptr %a343 - %t349 = load { ptr, i64, i64 }, ptr %t347 - %t350 = extractvalue { ptr, i64, i64 } %t349, 1 - %t351 = icmp uge i64 %t348, %t350 - br i1 %t351, label %range5760, label %inrange5761 -range5760: - call void @finch_panic_index(ptr @.str.3701, i64 3043, i64 %t348, i64 %t350) +inrange5830: + %t103 = extractvalue { ptr, i64, i64 } %t100, 0 + %t104 = getelementptr inbounds %S.gen.StructDef, ptr %t103, i64 %t99 + %t105 = getelementptr inbounds %S.gen.StructDef, ptr %t104, i32 0, i32 3 + %t106 = load { ptr, i64, i64 }, ptr %t105 + %t107 = extractvalue { ptr, i64, i64 } %t106, 1 + %t108 = icmp uge i64 0, %t107 + br i1 %t108, label %range5831, label %inrange5832 +range5831: + call void @finch_panic_index(ptr @.str.3766, i64 3054, i64 0, i64 %t107) unreachable -inrange5761: - %t352 = extractvalue { ptr, i64, i64 } %t349, 0 - %t353 = getelementptr inbounds i64, ptr %t352, i64 %t348 - %t354 = load i64, ptr %t353 - call void @finch_str_from_int(ptr %a355, i64 %t354) - %t356 = load { ptr, i64, i64 }, ptr %a355 - store i64 -1, ptr %a357 - %t358 = load i64, ptr %t346 - %t359 = load ptr, ptr %a54 - store i64 0, ptr %a360 - br label %find.cond5762 -find.cond5762: - %t361 = load i64, ptr %a360 - %t362 = icmp slt i64 %t361, %t358 - br i1 %t362, label %find.body5763, label %find.end5766 -find.body5763: - %t363 = getelementptr inbounds { ptr, i64, i64 }, ptr %t359, i64 %t361 - %t364 = load { ptr, i64, i64 }, ptr %t363 - store { ptr, i64, i64 } %t364, ptr %a365 - store { ptr, i64, i64 } %t356, ptr %a366 - %t367 = call i32 @finch_str_eq(ptr %a365, ptr %a366) - %t368 = icmp ne i32 %t367, 0 - br i1 %t368, label %find.hit5764, label %find.next5765 -find.hit5764: - store i64 %t361, ptr %a357 - br label %find.end5766 -find.next5765: - %t369 = add i64 %t361, 1 - store i64 %t369, ptr %a360 - br label %find.cond5762 -find.end5766: - store { ptr, i64, i64 } %t356, ptr %a370 - call void @finch_str_drop(ptr %a370) - %t371 = load i64, ptr %a357 - %t372 = icmp sge i64 %t371, 0 - %t373 = xor i1 %t372, true - br i1 %t373, label %then5767, label %endif5769 -then5767: - %t374 = getelementptr inbounds { ptr, i64, i64 }, ptr %a339, i32 0, i32 1 - %t375 = getelementptr inbounds %S.gen.EnumDef, ptr %a338, i32 0, i32 2 - %t376 = load i64, ptr %a343 - %t377 = load { ptr, i64, i64 }, ptr %t375 - %t378 = extractvalue { ptr, i64, i64 } %t377, 1 - %t379 = icmp uge i64 %t376, %t378 - br i1 %t379, label %range5770, label %inrange5771 -range5770: - call void @finch_panic_index(ptr @.str.3702, i64 3044, i64 %t376, i64 %t378) +inrange5832: + %t109 = extractvalue { ptr, i64, i64 } %t106, 0 + %t110 = getelementptr inbounds i64, ptr %t109, i64 0 + %t111 = load i64, ptr %t110 + call void @finch_str_from_int(ptr %a112, i64 %t111) + %t113 = load { ptr, i64, i64 }, ptr %a112 + store { ptr, i64, i64 } %t90, ptr %a115 + store { ptr, i64, i64 } %t113, ptr %a116 + call void @finch_str_concat(ptr %a114, ptr %a115, ptr %a116) + store { ptr, i64, i64 } %t90, ptr %a117 + call void @finch_str_drop(ptr %a117) + store { ptr, i64, i64 } %t113, ptr %a118 + call void @finch_str_drop(ptr %a118) + %t119 = load { ptr, i64, i64 }, ptr %a114 + %t120 = call { ptr, i64, i64 } @finch.gen.op(ptr %t65, { ptr, i64, i64 } %t119) + store { ptr, i64, i64 } %t119, ptr %a121 + call void @finch_str_drop(ptr %a121) + %t122 = load { ptr, i64, i64 }, ptr %a50 + store { ptr, i64, i64 } %t120, ptr %a50 + store { ptr, i64, i64 } %t122, ptr %a123 + call void @finch_str_drop(ptr %a123) + br label %endif5826 +endif5826: + br label %endif5823 +endif5823: + %t124 = load ptr, ptr %a1 + %t125 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t124, { ptr, i64, i64 } { ptr @.str.3767, i64 9, i64 0 }) + store { ptr, i64, i64 } %t125, ptr %a126 + store i1 false, ptr %a127 + store i1 false, ptr %a128 + store { ptr, i64, i64 } zeroinitializer, ptr %a129 + store { ptr, i64, i64 } zeroinitializer, ptr %a130 + store { ptr, i64, i64 } zeroinitializer, ptr %a131 + %t132 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3768, i64 4, i64 0 }) + store %S.ast.Type %t132, ptr %a133 + %t134 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t135 = getelementptr inbounds { ptr, i64, i64 }, ptr %t134, i32 0, i32 1 + %t136 = load i64, ptr %t135 + %t137 = sub i64 %t136, 1 + store i64 %t137, ptr %a138 + %t139 = load i64, ptr %a138 + store i64 0, ptr %a140 + br label %for.cond5833 +for.cond5833: + %t141 = load i64, ptr %a140 + %t142 = icmp slt i64 %t141, %t139 + br i1 %t142, label %for.body5834, label %for.end5836 +for.body5834: + %t143 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t144 = load i64, ptr %a140 + %t145 = add i64 1, %t144 + %t146 = load { ptr, i64, i64 }, ptr %t143 + %t147 = extractvalue { ptr, i64, i64 } %t146, 1 + %t148 = icmp uge i64 %t145, %t147 + br i1 %t148, label %range5837, label %inrange5838 +range5837: + call void @finch_panic_index(ptr @.str.3769, i64 3066, i64 %t145, i64 %t147) unreachable -inrange5771: - %t380 = extractvalue { ptr, i64, i64 } %t377, 0 - %t381 = getelementptr inbounds { ptr, i64, i64 }, ptr %t380, i64 %t376 - %t382 = load { ptr, i64, i64 }, ptr %t381 - store { ptr, i64, i64 } %t382, ptr %a383 - call void @finch_str_copy(ptr %a384, ptr %a383) - %t385 = load { ptr, i64, i64 }, ptr %a384 - %t386 = load i64, ptr %t374 - %t387 = add i64 %t386, 1 - call void @finch_arr_reserve(ptr %a339, i64 %t387, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) - %t388 = load ptr, ptr %a339 - %t389 = getelementptr inbounds { ptr, i64, i64 }, ptr %t388, i64 %t386 - store { ptr, i64, i64 } %t385, ptr %t389 - store i64 %t387, ptr %t374 - br label %endif5769 -endif5769: - br label %for.step5758 -for.step5758: - %t390 = load i64, ptr %a343 - %t391 = add i64 %t390, 1 - store i64 %t391, ptr %a343 - br label %for.cond5756 -for.end5759: - %t392 = getelementptr inbounds { ptr, i64, i64 }, ptr %a339, i32 0, i32 1 - %t393 = load i64, ptr %t392 - %t394 = icmp sgt i64 %t393, 0 - br i1 %t394, label %then5772, label %endif5774 -then5772: - %t395 = load ptr, ptr %a1 - %t396 = load %S.ast.Node, ptr %a2 - %t397 = getelementptr inbounds { ptr, i64, i64 }, ptr %a339, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.3704, i64 2, i64 0 }, ptr %a398 - call void @finch_str_join(ptr %a399, ptr %a339, ptr %a398) - %t400 = load { ptr, i64, i64 }, ptr %a399 - store { ptr, i64, i64 } { ptr @.str.3703, i64 26, i64 0 }, ptr %a402 - store { ptr, i64, i64 } %t400, ptr %a403 - call void @finch_str_concat(ptr %a401, ptr %a402, ptr %a403) - store { ptr, i64, i64 } %t400, ptr %a404 - call void @finch_str_drop(ptr %a404) - %t405 = load { ptr, i64, i64 }, ptr %a401 - store { ptr, i64, i64 } %t405, ptr %a407 - store { ptr, i64, i64 } { ptr @.str.3705, i64 29, i64 0 }, ptr %a408 - call void @finch_str_concat(ptr %a406, ptr %a407, ptr %a408) - store { ptr, i64, i64 } %t405, ptr %a409 - call void @finch_str_drop(ptr %a409) - %t410 = load { ptr, i64, i64 }, ptr %a406 - call void @finch.gen.fail(ptr %t395, %S.ast.Node %t396, { ptr, i64, i64 } %t410) - store { ptr, i64, i64 } %t410, ptr %a411 - call void @finch_str_drop(ptr %a411) - br label %endif5774 -endif5774: - call void @finch.drop.arr_str(ptr %a339) - call void @finch.drop.S_gen_EnumDef(ptr %a338) - br label %endif5751 -else5750: - %t412 = load ptr, ptr %a1 - %t413 = load %S.ast.Node, ptr %a2 - %t414 = load %S.ast.Type, ptr %a19 - %t415 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t414) - store { ptr, i64, i64 } { ptr @.str.3706, i64 11, i64 0 }, ptr %a417 - store { ptr, i64, i64 } %t415, ptr %a418 - call void @finch_str_concat(ptr %a416, ptr %a417, ptr %a418) - store { ptr, i64, i64 } %t415, ptr %a419 - call void @finch_str_drop(ptr %a419) - %t420 = load { ptr, i64, i64 }, ptr %a416 - store { ptr, i64, i64 } %t420, ptr %a422 - store { ptr, i64, i64 } { ptr @.str.3707, i64 54, i64 0 }, ptr %a423 - call void @finch_str_concat(ptr %a421, ptr %a422, ptr %a423) - store { ptr, i64, i64 } %t420, ptr %a424 - call void @finch_str_drop(ptr %a424) - %t425 = load { ptr, i64, i64 }, ptr %a421 - call void @finch.gen.fail(ptr %t412, %S.ast.Node %t413, { ptr, i64, i64 } %t425) - store { ptr, i64, i64 } %t425, ptr %a426 - call void @finch_str_drop(ptr %a426) - br label %endif5751 -endif5751: - %t427 = load ptr, ptr %a1 - %t428 = load %S.ast.Node, ptr %a2 - call void @finch.gen.panicIf(ptr %t427, { ptr, i64, i64 } { ptr @.str.3708, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.3709, i64 35, i64 0 }, %S.ast.Node %t428) - %t429 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t429, { ptr, i64, i64 } { ptr @.str.3710, i64 11, i64 0 }) - %t430 = load ptr, ptr %a1 - %t431 = icmp eq ptr %t430, null - br i1 %t431, label %panic5775, label %ok5776 -panic5775: - call void @finch_panic(ptr @.str.3711, i64 3056, ptr @.str.3712) +inrange5838: + %t149 = extractvalue { ptr, i64, i64 } %t146, 0 + %t150 = getelementptr inbounds %S.ast.Node, ptr %t149, i64 %t145 + %t151 = load %S.ast.Node, ptr %t150 + store %S.ast.Node %t151, ptr %a152 + call void @finch.copy.S_ast_Node(ptr %a153, ptr %a152) + %t154 = load %S.ast.Node, ptr %a153 + store %S.ast.Node %t154, ptr %a155 + %t156 = load i1, ptr %a127 + br i1 %t156, label %then5839, label %endif5841 +then5839: + %t157 = load ptr, ptr %a1 + %t158 = load %S.ast.Node, ptr %a155 + call void @finch.gen.fail(ptr %t157, %S.ast.Node %t158, { ptr, i64, i64 } { ptr @.str.3770, i64 72, i64 0 }) + br label %endif5841 +endif5841: + %t159 = load ptr, ptr %a1 + %t160 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t159, { ptr, i64, i64 } { ptr @.str.3771, i64 9, i64 0 }) + store { ptr, i64, i64 } %t160, ptr %a161 + %t162 = load ptr, ptr %a1 + %t163 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t162, { ptr, i64, i64 } { ptr @.str.3772, i64 10, i64 0 }) + store { ptr, i64, i64 } %t163, ptr %a164 + store { ptr, i64, i64 } zeroinitializer, ptr %a165 + store i64 -1, ptr %a166 + %t167 = getelementptr inbounds %S.ast.Node, ptr %a155, i32 0, i32 6 + %t168 = load i1, ptr %t167 + br i1 %t168, label %then5842, label %else5843 +then5842: + store i1 true, ptr %a127 + %t169 = load ptr, ptr %a1 + %t170 = load { ptr, i64, i64 }, ptr %a161 + call void @finch.gen.br(ptr %t169, { ptr, i64, i64 } %t170) + br label %endif5844 +else5843: + %t171 = getelementptr inbounds %S.ast.Node, ptr %a155, i32 0, i32 9 + %t172 = load { ptr, i64, i64 }, ptr %t171 + %t173 = extractvalue { ptr, i64, i64 } %t172, 1 + %t174 = icmp uge i64 0, %t173 + br i1 %t174, label %range5845, label %inrange5846 +range5845: + call void @finch_panic_index(ptr @.str.3773, i64 3078, i64 0, i64 %t173) unreachable -ok5776: - %t432 = getelementptr inbounds %S.gen.Gen, ptr %t430, i32 0, i32 9 - store i1 true, ptr %t432 - br label %endif5748 -endif5748: - %t433 = load ptr, ptr %a1 - %t434 = load i64, ptr %a46 - call void @finch.gen.heldEnd(ptr %t433, i64 %t434) - %t435 = load ptr, ptr %a1 - %t436 = load { ptr, i64, i64 }, ptr %a51 - call void @finch.gen.label(ptr %t435, { ptr, i64, i64 } %t436) - %t437 = load i1, ptr %a53 - %t438 = xor i1 %t437, true - br i1 %t438, label %then5777, label %endif5779 -then5777: - %t439 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t439, { ptr, i64, i64 } { ptr @.str.3713, i64 11, i64 0 }) - %t440 = load ptr, ptr %a1 - %t441 = icmp eq ptr %t440, null - br i1 %t441, label %panic5780, label %ok5781 -panic5780: - call void @finch_panic(ptr @.str.3714, i64 3062, ptr @.str.3715) +inrange5846: + %t175 = extractvalue { ptr, i64, i64 } %t172, 0 + %t176 = getelementptr inbounds %S.ast.Node, ptr %t175, i64 0 + %t177 = getelementptr inbounds %S.ast.Node, ptr %t176, i32 0, i32 9 + %t178 = load { ptr, i64, i64 }, ptr %t177 + store { ptr, i64, i64 } %t178, ptr %a179 + call void @finch.copy.arr_S_ast_Node(ptr %a180, ptr %a179) + %t181 = load { ptr, i64, i64 }, ptr %a180 + store { ptr, i64, i64 } %t181, ptr %a182 + %t183 = getelementptr inbounds { ptr, i64, i64 }, ptr %a182, i32 0, i32 1 + %t184 = load i64, ptr %t183 + store i64 0, ptr %a185 + br label %for.cond5847 +for.cond5847: + %t186 = load i64, ptr %a185 + %t187 = icmp slt i64 %t186, %t184 + br i1 %t187, label %for.body5848, label %for.end5850 +for.body5848: + store { ptr, i64, i64 } { ptr @.str.3774, i64 0, i64 0 }, ptr %a188 + %t189 = load i64, ptr %a49 + %t190 = icmp sge i64 %t189, 0 + br i1 %t190, label %then5851, label %else5852 +then5851: + %t191 = load ptr, ptr %a1 + %t192 = load i64, ptr %a185 + %t193 = load { ptr, i64, i64 }, ptr %a182 + %t194 = extractvalue { ptr, i64, i64 } %t193, 1 + %t195 = icmp uge i64 %t192, %t194 + br i1 %t195, label %range5854, label %inrange5855 +range5854: + call void @finch_panic_index(ptr @.str.3775, i64 3082, i64 %t192, i64 %t194) unreachable -ok5781: - %t442 = getelementptr inbounds %S.gen.Gen, ptr %t440, i32 0, i32 9 - store i1 true, ptr %t442 - %t443 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3716, i64 4, i64 0 }) - %t444 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t443, 1 - call void @finch.drop.S_ast_Type(ptr %a58) - call void @finch.drop.arr_str(ptr %a56) - call void @finch.drop.arr_str(ptr %a55) - call void @finch.drop.arr_str(ptr %a54) - call void @finch_str_drop(ptr %a51) +inrange5855: + %t196 = extractvalue { ptr, i64, i64 } %t193, 0 + %t197 = getelementptr inbounds %S.ast.Node, ptr %t196, i64 %t192 + %t198 = load %S.ast.Node, ptr %t197 + %t199 = load i64, ptr %a49 + %t200 = call %S.gen.SumPat @finch.gen.sumPattern(ptr %t191, %S.ast.Node %t198, i64 %t199) + store %S.gen.SumPat %t200, ptr %a201 + %t202 = getelementptr inbounds { ptr, i64, i64 }, ptr %a129, i32 0, i32 1 + %t203 = getelementptr inbounds %S.gen.SumPat, ptr %a201, i32 0, i32 0 + %t204 = load i64, ptr %t203 + call void @finch_str_from_int(ptr %a205, i64 %t204) + %t206 = load { ptr, i64, i64 }, ptr %a205 + store i64 -1, ptr %a207 + %t208 = load i64, ptr %t202 + %t209 = load ptr, ptr %a129 + store i64 0, ptr %a210 + br label %find.cond5856 +find.cond5856: + %t211 = load i64, ptr %a210 + %t212 = icmp slt i64 %t211, %t208 + br i1 %t212, label %find.body5857, label %find.end5860 +find.body5857: + %t213 = getelementptr inbounds { ptr, i64, i64 }, ptr %t209, i64 %t211 + %t214 = load { ptr, i64, i64 }, ptr %t213 + store { ptr, i64, i64 } %t214, ptr %a215 + store { ptr, i64, i64 } %t206, ptr %a216 + %t217 = call i32 @finch_str_eq(ptr %a215, ptr %a216) + %t218 = icmp ne i32 %t217, 0 + br i1 %t218, label %find.hit5858, label %find.next5859 +find.hit5858: + store i64 %t211, ptr %a207 + br label %find.end5860 +find.next5859: + %t219 = add i64 %t211, 1 + store i64 %t219, ptr %a210 + br label %find.cond5856 +find.end5860: + store { ptr, i64, i64 } %t206, ptr %a220 + call void @finch_str_drop(ptr %a220) + %t221 = load i64, ptr %a207 + %t222 = icmp sge i64 %t221, 0 + br i1 %t222, label %then5861, label %endif5863 +then5861: + %t223 = load ptr, ptr %a1 + %t224 = load i64, ptr %a185 + %t225 = load { ptr, i64, i64 }, ptr %a182 + %t226 = extractvalue { ptr, i64, i64 } %t225, 1 + %t227 = icmp uge i64 %t224, %t226 + br i1 %t227, label %range5864, label %inrange5865 +range5864: + call void @finch_panic_index(ptr @.str.3776, i64 3084, i64 %t224, i64 %t226) + unreachable +inrange5865: + %t228 = extractvalue { ptr, i64, i64 } %t225, 0 + %t229 = getelementptr inbounds %S.ast.Node, ptr %t228, i64 %t224 + %t230 = load %S.ast.Node, ptr %t229 + call void @finch.gen.fail(ptr %t223, %S.ast.Node %t230, { ptr, i64, i64 } { ptr @.str.3777, i64 49, i64 0 }) + br label %endif5863 +endif5863: + %t231 = getelementptr inbounds { ptr, i64, i64 }, ptr %a129, i32 0, i32 1 + %t232 = getelementptr inbounds %S.gen.SumPat, ptr %a201, i32 0, i32 0 + %t233 = load i64, ptr %t232 + call void @finch_str_from_int(ptr %a234, i64 %t233) + %t235 = load { ptr, i64, i64 }, ptr %a234 + %t236 = load i64, ptr %t231 + %t237 = add i64 %t236, 1 + call void @finch_arr_reserve(ptr %a129, i64 %t237, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t238 = load ptr, ptr %a129 + %t239 = getelementptr inbounds { ptr, i64, i64 }, ptr %t238, i64 %t236 + store { ptr, i64, i64 } %t235, ptr %t239 + store i64 %t237, ptr %t231 + %t240 = getelementptr inbounds %S.gen.SumPat, ptr %a201, i32 0, i32 1 + %t241 = getelementptr inbounds { ptr, i64, i64 }, ptr %t240, i32 0, i32 1 + %t242 = load i64, ptr %t241 + %t243 = icmp sgt i64 %t242, 0 + br i1 %t243, label %then5866, label %endif5868 +then5866: + %t244 = getelementptr inbounds { ptr, i64, i64 }, ptr %a182, i32 0, i32 1 + %t245 = load i64, ptr %t244 + %t246 = icmp sgt i64 %t245, 1 + br i1 %t246, label %then5869, label %endif5871 +then5869: + %t247 = load ptr, ptr %a1 + %t248 = load i64, ptr %a185 + %t249 = load { ptr, i64, i64 }, ptr %a182 + %t250 = extractvalue { ptr, i64, i64 } %t249, 1 + %t251 = icmp uge i64 %t248, %t250 + br i1 %t251, label %range5872, label %inrange5873 +range5872: + call void @finch_panic_index(ptr @.str.3778, i64 3089, i64 %t248, i64 %t250) + unreachable +inrange5873: + %t252 = extractvalue { ptr, i64, i64 } %t249, 0 + %t253 = getelementptr inbounds %S.ast.Node, ptr %t252, i64 %t248 + %t254 = load %S.ast.Node, ptr %t253 + call void @finch.gen.fail(ptr %t247, %S.ast.Node %t254, { ptr, i64, i64 } { ptr @.str.3779, i64 52, i64 0 }) + br label %endif5871 +endif5871: + %t255 = getelementptr inbounds %S.gen.SumPat, ptr %a201, i32 0, i32 1 + %t256 = load { ptr, i64, i64 }, ptr %t255 + store { ptr, i64, i64 } %t256, ptr %a257 + call void @finch.copy.arr_S_ast_Node(ptr %a258, ptr %a257) + %t259 = load { ptr, i64, i64 }, ptr %a258 + %t260 = load { ptr, i64, i64 }, ptr %a165 + store { ptr, i64, i64 } %t259, ptr %a165 + store { ptr, i64, i64 } %t260, ptr %a261 + call void @finch.drop.arr_S_ast_Node(ptr %a261) + %t262 = getelementptr inbounds %S.gen.SumPat, ptr %a201, i32 0, i32 0 + %t263 = load i64, ptr %t262 + store i64 %t263, ptr %a166 + br label %endif5868 +endif5868: + %t264 = load ptr, ptr %a1 + %t265 = load { ptr, i64, i64 }, ptr %a50 + store { ptr, i64, i64 } { ptr @.str.3780, i64 12, i64 0 }, ptr %a267 + store { ptr, i64, i64 } %t265, ptr %a268 + call void @finch_str_concat(ptr %a266, ptr %a267, ptr %a268) + %t269 = load { ptr, i64, i64 }, ptr %a266 + store { ptr, i64, i64 } %t269, ptr %a271 + store { ptr, i64, i64 } { ptr @.str.3781, i64 2, i64 0 }, ptr %a272 + call void @finch_str_concat(ptr %a270, ptr %a271, ptr %a272) + store { ptr, i64, i64 } %t269, ptr %a273 + call void @finch_str_drop(ptr %a273) + %t274 = load { ptr, i64, i64 }, ptr %a270 + %t275 = getelementptr inbounds %S.gen.SumPat, ptr %a201, i32 0, i32 0 + %t276 = load i64, ptr %t275 + call void @finch_str_from_int(ptr %a277, i64 %t276) + %t278 = load { ptr, i64, i64 }, ptr %a277 + store { ptr, i64, i64 } %t274, ptr %a280 + store { ptr, i64, i64 } %t278, ptr %a281 + call void @finch_str_concat(ptr %a279, ptr %a280, ptr %a281) + store { ptr, i64, i64 } %t274, ptr %a282 + call void @finch_str_drop(ptr %a282) + store { ptr, i64, i64 } %t278, ptr %a283 + call void @finch_str_drop(ptr %a283) + %t284 = load { ptr, i64, i64 }, ptr %a279 + %t285 = call { ptr, i64, i64 } @finch.gen.op(ptr %t264, { ptr, i64, i64 } %t284) + store { ptr, i64, i64 } %t284, ptr %a286 + call void @finch_str_drop(ptr %a286) + %t287 = load { ptr, i64, i64 }, ptr %a188 + store { ptr, i64, i64 } %t285, ptr %a188 + store { ptr, i64, i64 } %t287, ptr %a288 + call void @finch_str_drop(ptr %a288) + call void @finch.drop.S_gen_SumPat(ptr %a201) + br label %endif5853 +else5852: + %t289 = load ptr, ptr %a1 + %t290 = load i64, ptr %a185 + %t291 = load { ptr, i64, i64 }, ptr %a182 + %t292 = extractvalue { ptr, i64, i64 } %t291, 1 + %t293 = icmp uge i64 %t290, %t292 + br i1 %t293, label %range5874, label %inrange5875 +range5874: + call void @finch_panic_index(ptr @.str.3782, i64 3096, i64 %t290, i64 %t292) + unreachable +inrange5875: + %t294 = extractvalue { ptr, i64, i64 } %t291, 0 + %t295 = getelementptr inbounds %S.ast.Node, ptr %t294, i64 %t290 + %t296 = load %S.ast.Node, ptr %t295 + %t297 = load %S.ast.Type, ptr %a19 + %t298 = call %S.gen.Val @finch.gen.patternValue(ptr %t289, %S.ast.Node %t296, %S.ast.Type %t297) + store %S.gen.Val %t298, ptr %a299 + %t300 = getelementptr inbounds { ptr, i64, i64 }, ptr %a129, i32 0, i32 1 + %t301 = getelementptr inbounds %S.gen.Val, ptr %a299, i32 0, i32 0 + %t302 = load { ptr, i64, i64 }, ptr %t301 + store i64 -1, ptr %a303 + %t304 = load i64, ptr %t300 + %t305 = load ptr, ptr %a129 + store i64 0, ptr %a306 + br label %find.cond5876 +find.cond5876: + %t307 = load i64, ptr %a306 + %t308 = icmp slt i64 %t307, %t304 + br i1 %t308, label %find.body5877, label %find.end5880 +find.body5877: + %t309 = getelementptr inbounds { ptr, i64, i64 }, ptr %t305, i64 %t307 + %t310 = load { ptr, i64, i64 }, ptr %t309 + store { ptr, i64, i64 } %t310, ptr %a311 + store { ptr, i64, i64 } %t302, ptr %a312 + %t313 = call i32 @finch_str_eq(ptr %a311, ptr %a312) + %t314 = icmp ne i32 %t313, 0 + br i1 %t314, label %find.hit5878, label %find.next5879 +find.hit5878: + store i64 %t307, ptr %a303 + br label %find.end5880 +find.next5879: + %t315 = add i64 %t307, 1 + store i64 %t315, ptr %a306 + br label %find.cond5876 +find.end5880: + %t316 = load i64, ptr %a303 + %t317 = icmp sge i64 %t316, 0 + br label %logic.from5881 +logic.from5881: + br i1 %t317, label %logic.rhs5882, label %logic.end5883 +logic.rhs5882: + %t318 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 0 + %t319 = load { ptr, i64, i64 }, ptr %t318 + store { ptr, i64, i64 } %t319, ptr %a320 + store { ptr, i64, i64 } { ptr @.str.3783, i64 4, i64 0 }, ptr %a321 + %t322 = call i32 @finch_str_eq(ptr %a320, ptr %a321) + %t323 = icmp ne i32 %t322, 0 + br label %logic.rend5884 +logic.rend5884: + br label %logic.end5883 +logic.end5883: + %t324 = phi i1 [ false, %logic.from5881 ], [ %t323, %logic.rend5884 ] + br i1 %t324, label %then5885, label %endif5887 +then5885: + %t325 = load ptr, ptr %a1 + %t326 = load i64, ptr %a185 + %t327 = load { ptr, i64, i64 }, ptr %a182 + %t328 = extractvalue { ptr, i64, i64 } %t327, 1 + %t329 = icmp uge i64 %t326, %t328 + br i1 %t329, label %range5888, label %inrange5889 +range5888: + call void @finch_panic_index(ptr @.str.3784, i64 3098, i64 %t326, i64 %t328) + unreachable +inrange5889: + %t330 = extractvalue { ptr, i64, i64 } %t327, 0 + %t331 = getelementptr inbounds %S.ast.Node, ptr %t330, i64 %t326 + %t332 = load %S.ast.Node, ptr %t331 + call void @finch.gen.fail(ptr %t325, %S.ast.Node %t332, { ptr, i64, i64 } { ptr @.str.3785, i64 49, i64 0 }) + br label %endif5887 +endif5887: + %t333 = getelementptr inbounds { ptr, i64, i64 }, ptr %a129, i32 0, i32 1 + %t334 = getelementptr inbounds %S.gen.Val, ptr %a299, i32 0, i32 0 + %t335 = load { ptr, i64, i64 }, ptr %t334 + store { ptr, i64, i64 } %t335, ptr %a336 + call void @finch_str_copy(ptr %a337, ptr %a336) + %t338 = load { ptr, i64, i64 }, ptr %a337 + %t339 = load i64, ptr %t333 + %t340 = add i64 %t339, 1 + call void @finch_arr_reserve(ptr %a129, i64 %t340, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t341 = load ptr, ptr %a129 + %t342 = getelementptr inbounds { ptr, i64, i64 }, ptr %t341, i64 %t339 + store { ptr, i64, i64 } %t338, ptr %t342 + store i64 %t340, ptr %t333 + %t343 = load ptr, ptr %a1 + %t344 = load %S.gen.Val, ptr %a13 + %t345 = load %S.gen.Val, ptr %a299 + %t346 = load i64, ptr %a185 + %t347 = load { ptr, i64, i64 }, ptr %a182 + %t348 = extractvalue { ptr, i64, i64 } %t347, 1 + %t349 = icmp uge i64 %t346, %t348 + br i1 %t349, label %range5890, label %inrange5891 +range5890: + call void @finch_panic_index(ptr @.str.3787, i64 3101, i64 %t346, i64 %t348) + unreachable +inrange5891: + %t350 = extractvalue { ptr, i64, i64 } %t347, 0 + %t351 = getelementptr inbounds %S.ast.Node, ptr %t350, i64 %t346 + %t352 = load %S.ast.Node, ptr %t351 + %t353 = call %S.gen.Val @finch.gen.compare(ptr %t343, { ptr, i64, i64 } { ptr @.str.3786, i64 2, i64 0 }, %S.gen.Val %t344, %S.gen.Val %t345, %S.ast.Node %t352) + %t354 = extractvalue %S.gen.Val %t353, 0 + store { ptr, i64, i64 } %t354, ptr %a355 + call void @finch_str_copy(ptr %a356, ptr %a355) + %t357 = load { ptr, i64, i64 }, ptr %a356 + store %S.gen.Val %t353, ptr %a358 + call void @finch.drop.S_gen_Val(ptr %a358) + %t359 = load { ptr, i64, i64 }, ptr %a188 + store { ptr, i64, i64 } %t357, ptr %a188 + store { ptr, i64, i64 } %t359, ptr %a360 + call void @finch_str_drop(ptr %a360) + call void @finch.drop.S_gen_Val(ptr %a299) + br label %endif5853 +endif5853: + %t361 = load i64, ptr %a185 + %t362 = getelementptr inbounds { ptr, i64, i64 }, ptr %a182, i32 0, i32 1 + %t363 = load i64, ptr %t362 + %t364 = sub i64 %t363, 1 + %t365 = icmp eq i64 %t361, %t364 + br i1 %t365, label %then5892, label %else5893 +then5892: + %t366 = load ptr, ptr %a1 + %t367 = load { ptr, i64, i64 }, ptr %a188 + %t368 = load { ptr, i64, i64 }, ptr %a161 + %t369 = load { ptr, i64, i64 }, ptr %a164 + call void @finch.gen.condBr(ptr %t366, { ptr, i64, i64 } %t367, { ptr, i64, i64 } %t368, { ptr, i64, i64 } %t369) + br label %endif5894 +else5893: + %t370 = load ptr, ptr %a1 + %t371 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t370, { ptr, i64, i64 } { ptr @.str.3788, i64 8, i64 0 }) + store { ptr, i64, i64 } %t371, ptr %a372 + %t373 = load ptr, ptr %a1 + %t374 = load { ptr, i64, i64 }, ptr %a188 + %t375 = load { ptr, i64, i64 }, ptr %a161 + %t376 = load { ptr, i64, i64 }, ptr %a372 + call void @finch.gen.condBr(ptr %t373, { ptr, i64, i64 } %t374, { ptr, i64, i64 } %t375, { ptr, i64, i64 } %t376) + %t377 = load ptr, ptr %a1 + %t378 = load { ptr, i64, i64 }, ptr %a372 + call void @finch.gen.label(ptr %t377, { ptr, i64, i64 } %t378) + call void @finch_str_drop(ptr %a372) + br label %endif5894 +endif5894: + call void @finch_str_drop(ptr %a188) + br label %for.step5849 +for.step5849: + %t379 = load i64, ptr %a185 + %t380 = add i64 %t379, 1 + store i64 %t380, ptr %a185 + br label %for.cond5847 +for.end5850: + call void @finch.drop.arr_S_ast_Node(ptr %a182) + br label %endif5844 +endif5844: + %t381 = load ptr, ptr %a1 + %t382 = load { ptr, i64, i64 }, ptr %a161 + call void @finch.gen.label(ptr %t381, { ptr, i64, i64 } %t382) + %t383 = getelementptr inbounds { ptr, i64, i64 }, ptr %a165, i32 0, i32 1 + %t384 = load i64, ptr %t383 + %t385 = icmp sgt i64 %t384, 0 + store i1 %t385, ptr %a386 + %t387 = load i1, ptr %a386 + br i1 %t387, label %then5895, label %endif5897 +then5895: + %t388 = load ptr, ptr %a1 + call void @finch.gen.pushScope(ptr %t388) + %t389 = load ptr, ptr %a1 + %t390 = icmp eq ptr %t389, null + br i1 %t390, label %panic5898, label %ok5899 +panic5898: + call void @finch_panic(ptr @.str.3789, i64 3116, ptr @.str.3790) + unreachable +ok5899: + %t391 = getelementptr inbounds %S.gen.Gen, ptr %t389, i32 0, i32 16 + %t392 = load ptr, ptr %a1 + %t393 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 3 + %t394 = load { ptr, i64, i64 }, ptr %t393 + %t395 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 2 + %t396 = load { ptr, i64, i64 }, ptr %t395 + %t397 = call i64 @finch.gen.findStruct(ptr %t392, { ptr, i64, i64 } %t394, { ptr, i64, i64 } %t396) + %t398 = load { ptr, i64, i64 }, ptr %t391 + %t399 = extractvalue { ptr, i64, i64 } %t398, 1 + %t400 = icmp uge i64 %t397, %t399 + br i1 %t400, label %range5900, label %inrange5901 +range5900: + call void @finch_panic_index(ptr @.str.3791, i64 3116, i64 %t397, i64 %t399) + unreachable +inrange5901: + %t401 = extractvalue { ptr, i64, i64 } %t398, 0 + %t402 = getelementptr inbounds %S.gen.StructDef, ptr %t401, i64 %t397 + %t403 = load %S.gen.StructDef, ptr %t402 + store %S.gen.StructDef %t403, ptr %a404 + call void @finch.copy.S_gen_StructDef(ptr %a405, ptr %a404) + %t406 = load %S.gen.StructDef, ptr %a405 + store %S.gen.StructDef %t406, ptr %a407 + %t408 = getelementptr inbounds { ptr, i64, i64 }, ptr %a165, i32 0, i32 1 + %t409 = load i64, ptr %t408 + store i64 0, ptr %a410 + br label %for.cond5902 +for.cond5902: + %t411 = load i64, ptr %a410 + %t412 = icmp slt i64 %t411, %t409 + br i1 %t412, label %for.body5903, label %for.end5905 +for.body5903: + %t413 = load i64, ptr %a410 + %t414 = load { ptr, i64, i64 }, ptr %a165 + %t415 = extractvalue { ptr, i64, i64 } %t414, 1 + %t416 = icmp uge i64 %t413, %t415 + br i1 %t416, label %range5906, label %inrange5907 +range5906: + call void @finch_panic_index(ptr @.str.3792, i64 3118, i64 %t413, i64 %t415) + unreachable +inrange5907: + %t417 = extractvalue { ptr, i64, i64 } %t414, 0 + %t418 = getelementptr inbounds %S.ast.Node, ptr %t417, i64 %t413 + %t419 = getelementptr inbounds %S.ast.Node, ptr %t418, i32 0, i32 1 + %t420 = load { ptr, i64, i64 }, ptr %t419 + store { ptr, i64, i64 } %t420, ptr %a421 + store { ptr, i64, i64 } { ptr @.str.3793, i64 1, i64 0 }, ptr %a422 + %t423 = call i32 @finch_str_eq(ptr %a421, ptr %a422) + %t424 = icmp ne i32 %t423, 0 + br i1 %t424, label %then5908, label %endif5910 +then5908: + br label %for.step5904 +endif5910: + %t425 = load ptr, ptr %a1 + %t426 = icmp eq ptr %t425, null + br i1 %t426, label %panic5911, label %ok5912 +panic5911: + call void @finch_panic(ptr @.str.3794, i64 3121, ptr @.str.3795) + unreachable +ok5912: + %t427 = getelementptr inbounds %S.gen.Gen, ptr %t425, i32 0, i32 22 + %t428 = load i64, ptr %a49 + %t429 = load { ptr, i64, i64 }, ptr %t427 + %t430 = extractvalue { ptr, i64, i64 } %t429, 1 + %t431 = icmp uge i64 %t428, %t430 + br i1 %t431, label %range5913, label %inrange5914 +range5913: + call void @finch_panic_index(ptr @.str.3796, i64 3121, i64 %t428, i64 %t430) + unreachable +inrange5914: + %t432 = extractvalue { ptr, i64, i64 } %t429, 0 + %t433 = getelementptr inbounds %S.gen.SumDef, ptr %t432, i64 %t428 + %t434 = getelementptr inbounds %S.gen.SumDef, ptr %t433, i32 0, i32 4 + %t435 = load i64, ptr %a166 + %t436 = load { ptr, i64, i64 }, ptr %t434 + %t437 = extractvalue { ptr, i64, i64 } %t436, 1 + %t438 = icmp uge i64 %t435, %t437 + br i1 %t438, label %range5915, label %inrange5916 +range5915: + call void @finch_panic_index(ptr @.str.3797, i64 3121, i64 %t435, i64 %t437) + unreachable +inrange5916: + %t439 = extractvalue { ptr, i64, i64 } %t436, 0 + %t440 = getelementptr inbounds i64, ptr %t439, i64 %t435 + %t441 = load i64, ptr %t440 + %t442 = load i64, ptr %a410 + %t443 = add i64 %t441, %t442 + store i64 %t443, ptr %a444 + %t445 = getelementptr inbounds %S.gen.StructDef, ptr %a407, i32 0, i32 12 + %t446 = load i64, ptr %a444 + %t447 = load { ptr, i64, i64 }, ptr %t445 + %t448 = extractvalue { ptr, i64, i64 } %t447, 1 + %t449 = icmp uge i64 %t446, %t448 + br i1 %t449, label %range5917, label %inrange5918 +range5917: + call void @finch_panic_index(ptr @.str.3798, i64 3122, i64 %t446, i64 %t448) + unreachable +inrange5918: + %t450 = extractvalue { ptr, i64, i64 } %t447, 0 + %t451 = getelementptr inbounds %S.ast.Type, ptr %t450, i64 %t446 + %t452 = load %S.ast.Type, ptr %t451 + store %S.ast.Type %t452, ptr %a453 + call void @finch.copy.S_ast_Type(ptr %a454, ptr %a453) + %t455 = load %S.ast.Type, ptr %a454 + store %S.ast.Type %t455, ptr %a456 + %t457 = load ptr, ptr %a1 + %t458 = load ptr, ptr %a1 + %t459 = load %S.ast.Type, ptr %a19 + %t460 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t458, %S.ast.Type %t459) + store { ptr, i64, i64 } { ptr @.str.3799, i64 13, i64 0 }, ptr %a462 + store { ptr, i64, i64 } %t460, ptr %a463 + call void @finch_str_concat(ptr %a461, ptr %a462, ptr %a463) + store { ptr, i64, i64 } %t460, ptr %a464 + call void @finch_str_drop(ptr %a464) + %t465 = load { ptr, i64, i64 }, ptr %a461 + store { ptr, i64, i64 } %t465, ptr %a467 + store { ptr, i64, i64 } { ptr @.str.3800, i64 1, i64 0 }, ptr %a468 + call void @finch_str_concat(ptr %a466, ptr %a467, ptr %a468) + store { ptr, i64, i64 } %t465, ptr %a469 + call void @finch_str_drop(ptr %a469) + %t470 = load { ptr, i64, i64 }, ptr %a466 + %t471 = getelementptr inbounds %S.gen.Val, ptr %a13, i32 0, i32 0 + %t472 = load { ptr, i64, i64 }, ptr %t471 + store { ptr, i64, i64 } %t470, ptr %a474 + store { ptr, i64, i64 } %t472, ptr %a475 + call void @finch_str_concat(ptr %a473, ptr %a474, ptr %a475) + store { ptr, i64, i64 } %t470, ptr %a476 + call void @finch_str_drop(ptr %a476) + %t477 = load { ptr, i64, i64 }, ptr %a473 + store { ptr, i64, i64 } %t477, ptr %a479 + store { ptr, i64, i64 } { ptr @.str.3801, i64 2, i64 0 }, ptr %a480 + call void @finch_str_concat(ptr %a478, ptr %a479, ptr %a480) + store { ptr, i64, i64 } %t477, ptr %a481 + call void @finch_str_drop(ptr %a481) + %t482 = load { ptr, i64, i64 }, ptr %a478 + %t483 = getelementptr inbounds %S.gen.StructDef, ptr %a407, i32 0, i32 3 + %t484 = load i64, ptr %a444 + %t485 = load { ptr, i64, i64 }, ptr %t483 + %t486 = extractvalue { ptr, i64, i64 } %t485, 1 + %t487 = icmp uge i64 %t484, %t486 + br i1 %t487, label %range5919, label %inrange5920 +range5919: + call void @finch_panic_index(ptr @.str.3802, i64 3123, i64 %t484, i64 %t486) + unreachable +inrange5920: + %t488 = extractvalue { ptr, i64, i64 } %t485, 0 + %t489 = getelementptr inbounds i64, ptr %t488, i64 %t484 + %t490 = load i64, ptr %t489 + call void @finch_str_from_int(ptr %a491, i64 %t490) + %t492 = load { ptr, i64, i64 }, ptr %a491 + store { ptr, i64, i64 } %t482, ptr %a494 + store { ptr, i64, i64 } %t492, ptr %a495 + call void @finch_str_concat(ptr %a493, ptr %a494, ptr %a495) + store { ptr, i64, i64 } %t482, ptr %a496 + call void @finch_str_drop(ptr %a496) + store { ptr, i64, i64 } %t492, ptr %a497 + call void @finch_str_drop(ptr %a497) + %t498 = load { ptr, i64, i64 }, ptr %a493 + %t499 = call { ptr, i64, i64 } @finch.gen.op(ptr %t457, { ptr, i64, i64 } %t498) + store { ptr, i64, i64 } %t498, ptr %a500 + call void @finch_str_drop(ptr %a500) + store { ptr, i64, i64 } %t499, ptr %a501 + %t502 = load ptr, ptr %a1 + %t503 = load i64, ptr %a410 + %t504 = load { ptr, i64, i64 }, ptr %a165 + %t505 = extractvalue { ptr, i64, i64 } %t504, 1 + %t506 = icmp uge i64 %t503, %t505 + br i1 %t506, label %range5921, label %inrange5922 +range5921: + call void @finch_panic_index(ptr @.str.3803, i64 3124, i64 %t503, i64 %t505) + unreachable +inrange5922: + %t507 = extractvalue { ptr, i64, i64 } %t504, 0 + %t508 = getelementptr inbounds %S.ast.Node, ptr %t507, i64 %t503 + %t509 = load %S.ast.Node, ptr %t508 + %t510 = load i64, ptr %a410 + %t511 = load { ptr, i64, i64 }, ptr %a165 + %t512 = extractvalue { ptr, i64, i64 } %t511, 1 + %t513 = icmp uge i64 %t510, %t512 + br i1 %t513, label %range5923, label %inrange5924 +range5923: + call void @finch_panic_index(ptr @.str.3804, i64 3124, i64 %t510, i64 %t512) + unreachable +inrange5924: + %t514 = extractvalue { ptr, i64, i64 } %t511, 0 + %t515 = getelementptr inbounds %S.ast.Node, ptr %t514, i64 %t510 + %t516 = getelementptr inbounds %S.ast.Node, ptr %t515, i32 0, i32 1 + %t517 = load { ptr, i64, i64 }, ptr %t516 + %t518 = load %S.ast.Type, ptr %a456 + %t519 = load ptr, ptr %a1 + %t520 = load { ptr, i64, i64 }, ptr %a501 + %t521 = load %S.ast.Type, ptr %a456 + %t522 = call { ptr, i64, i64 } @finch.gen.copyValue(ptr %t519, { ptr, i64, i64 } %t520, %S.ast.Type %t521) + %t523 = call { ptr, i64, i64 } @finch.gen.addVar(ptr %t502, %S.ast.Node %t509, { ptr, i64, i64 } %t517, %S.ast.Type %t518, { ptr, i64, i64 } %t522, i1 true, i1 true) + store { ptr, i64, i64 } %t522, ptr %a524 + call void @finch_str_drop(ptr %a524) + store { ptr, i64, i64 } %t523, ptr %a525 + call void @finch_str_drop(ptr %a525) + call void @finch_str_drop(ptr %a501) + call void @finch.drop.S_ast_Type(ptr %a456) + br label %for.step5904 +for.step5904: + %t526 = load i64, ptr %a410 + %t527 = add i64 %t526, 1 + store i64 %t527, ptr %a410 + br label %for.cond5902 +for.end5905: + call void @finch.drop.S_gen_StructDef(ptr %a407) + br label %endif5897 +endif5897: + %t528 = getelementptr inbounds %S.ast.Node, ptr %a155, i32 0, i32 9 + %t529 = load { ptr, i64, i64 }, ptr %t528 + %t530 = extractvalue { ptr, i64, i64 } %t529, 1 + %t531 = icmp uge i64 1, %t530 + br i1 %t531, label %range5925, label %inrange5926 +range5925: + call void @finch_panic_index(ptr @.str.3805, i64 3127, i64 1, i64 %t530) + unreachable +inrange5926: + %t532 = extractvalue { ptr, i64, i64 } %t529, 0 + %t533 = getelementptr inbounds %S.ast.Node, ptr %t532, i64 1 + %t534 = load %S.ast.Node, ptr %t533 + store %S.ast.Node %t534, ptr %a535 + call void @finch.copy.S_ast_Node(ptr %a536, ptr %a535) + %t537 = load %S.ast.Node, ptr %a536 + store %S.ast.Node %t537, ptr %a538 + %t539 = load i1, ptr %a3 + br i1 %t539, label %then5927, label %else5928 +then5927: + %t540 = load ptr, ptr %a1 + %t541 = load %S.ast.Node, ptr %a538 + %t542 = call %S.gen.Val @finch.gen.expr(ptr %t540, %S.ast.Node %t541) + store %S.gen.Val %t542, ptr %a543 + %t544 = load i64, ptr %a140 + %t545 = icmp eq i64 %t544, 0 + br label %logic.from5930 +logic.from5930: + br i1 %t545, label %logic.end5932, label %logic.rhs5931 +logic.rhs5931: + %t546 = getelementptr inbounds %S.ast.Type, ptr %a133, i32 0, i32 0 + %t547 = load { ptr, i64, i64 }, ptr %t546 + store { ptr, i64, i64 } %t547, ptr %a548 + store { ptr, i64, i64 } { ptr @.str.3806, i64 4, i64 0 }, ptr %a549 + %t550 = call i32 @finch_str_eq(ptr %a548, ptr %a549) + %t551 = icmp ne i32 %t550, 0 + br label %logic.rend5933 +logic.rend5933: + br label %logic.end5932 +logic.end5932: + %t552 = phi i1 [ true, %logic.from5930 ], [ %t551, %logic.rend5933 ] + br i1 %t552, label %then5934, label %endif5936 +then5934: + %t553 = getelementptr inbounds %S.gen.Val, ptr %a543, i32 0, i32 1 + %t554 = getelementptr inbounds %S.ast.Type, ptr %t553, i32 0, i32 0 + %t555 = load { ptr, i64, i64 }, ptr %t554 + store { ptr, i64, i64 } %t555, ptr %a556 + store { ptr, i64, i64 } { ptr @.str.3807, i64 4, i64 0 }, ptr %a557 + %t558 = call i32 @finch_str_eq(ptr %a556, ptr %a557) + %t559 = icmp ne i32 %t558, 0 + br label %logic.from5937 +logic.from5937: + br i1 %t559, label %logic.end5939, label %logic.rhs5938 +logic.rhs5938: + %t560 = getelementptr inbounds %S.gen.Val, ptr %a543, i32 0, i32 1 + %t561 = getelementptr inbounds %S.ast.Type, ptr %t560, i32 0, i32 0 + %t562 = load { ptr, i64, i64 }, ptr %t561 + store { ptr, i64, i64 } %t562, ptr %a563 + store { ptr, i64, i64 } { ptr @.str.3808, i64 4, i64 0 }, ptr %a564 + %t565 = call i32 @finch_str_eq(ptr %a563, ptr %a564) + %t566 = icmp ne i32 %t565, 0 + br label %logic.rend5940 +logic.rend5940: + br label %logic.end5939 +logic.end5939: + %t567 = phi i1 [ true, %logic.from5937 ], [ %t566, %logic.rend5940 ] + br i1 %t567, label %then5941, label %endif5943 +then5941: + %t568 = load ptr, ptr %a1 + %t569 = load %S.ast.Node, ptr %a538 + call void @finch.gen.fail(ptr %t568, %S.ast.Node %t569, { ptr, i64, i64 } { ptr @.str.3809, i64 52, i64 0 }) + br label %endif5943 +endif5943: + %t570 = getelementptr inbounds %S.gen.Val, ptr %a543, i32 0, i32 1 + %t571 = load %S.ast.Type, ptr %t570 + store %S.ast.Type %t571, ptr %a572 + call void @finch.copy.S_ast_Type(ptr %a573, ptr %a572) + %t574 = load %S.ast.Type, ptr %a573 + %t575 = load %S.ast.Type, ptr %a133 + store %S.ast.Type %t574, ptr %a133 + store %S.ast.Type %t575, ptr %a576 + call void @finch.drop.S_ast_Type(ptr %a576) + br label %endif5936 +endif5936: + %t577 = load ptr, ptr %a1 + %t578 = load %S.gen.Val, ptr %a543 + %t579 = load %S.ast.Type, ptr %a133 + %t580 = load %S.ast.Node, ptr %a538 + %t581 = call %S.gen.Val @finch.gen.coerce(ptr %t577, %S.gen.Val %t578, %S.ast.Type %t579, %S.ast.Node %t580, { ptr, i64, i64 } { ptr @.str.3810, i64 57, i64 0 }) + %t582 = load %S.gen.Val, ptr %a543 + store %S.gen.Val %t581, ptr %a543 + store %S.gen.Val %t582, ptr %a583 + call void @finch.drop.S_gen_Val(ptr %a583) + %t584 = load ptr, ptr %a1 + %t585 = load %S.gen.Val, ptr %a543 + %t586 = call { ptr, i64, i64 } @finch.gen.own(ptr %t584, %S.gen.Val %t585) + store { ptr, i64, i64 } %t586, ptr %a587 + %t588 = load i1, ptr %a386 + br i1 %t588, label %then5944, label %endif5946 +then5944: + %t589 = load ptr, ptr %a1 + call void @finch.gen.popScope(ptr %t589) + br label %endif5946 +endif5946: + %t590 = load ptr, ptr %a1 + %t591 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t590, { ptr, i64, i64 } { ptr @.str.3811, i64 10, i64 0 }) + store { ptr, i64, i64 } %t591, ptr %a592 + %t593 = load ptr, ptr %a1 + %t594 = load { ptr, i64, i64 }, ptr %a592 + call void @finch.gen.br(ptr %t593, { ptr, i64, i64 } %t594) + %t595 = load ptr, ptr %a1 + %t596 = load { ptr, i64, i64 }, ptr %a592 + call void @finch.gen.label(ptr %t595, { ptr, i64, i64 } %t596) + %t597 = getelementptr inbounds { ptr, i64, i64 }, ptr %a130, i32 0, i32 1 + %t598 = load { ptr, i64, i64 }, ptr %a587 + store { ptr, i64, i64 } %t598, ptr %a599 + call void @finch_str_copy(ptr %a600, ptr %a599) + %t601 = load { ptr, i64, i64 }, ptr %a600 + %t602 = load i64, ptr %t597 + %t603 = add i64 %t602, 1 + call void @finch_arr_reserve(ptr %a130, i64 %t603, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t604 = load ptr, ptr %a130 + %t605 = getelementptr inbounds { ptr, i64, i64 }, ptr %t604, i64 %t602 + store { ptr, i64, i64 } %t601, ptr %t605 + store i64 %t603, ptr %t597 + %t606 = getelementptr inbounds { ptr, i64, i64 }, ptr %a131, i32 0, i32 1 + %t607 = load { ptr, i64, i64 }, ptr %a592 + store { ptr, i64, i64 } %t607, ptr %a608 + call void @finch_str_copy(ptr %a609, ptr %a608) + %t610 = load { ptr, i64, i64 }, ptr %a609 + %t611 = load i64, ptr %t606 + %t612 = add i64 %t611, 1 + call void @finch_arr_reserve(ptr %a131, i64 %t612, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t613 = load ptr, ptr %a131 + %t614 = getelementptr inbounds { ptr, i64, i64 }, ptr %t613, i64 %t611 + store { ptr, i64, i64 } %t610, ptr %t614 + store i64 %t612, ptr %t606 + %t615 = load ptr, ptr %a1 + %t616 = load { ptr, i64, i64 }, ptr %a126 + call void @finch.gen.br(ptr %t615, { ptr, i64, i64 } %t616) + store i1 true, ptr %a128 + call void @finch_str_drop(ptr %a592) + call void @finch_str_drop(ptr %a587) + call void @finch.drop.S_gen_Val(ptr %a543) + br label %endif5929 +else5928: + %t617 = getelementptr inbounds %S.ast.Node, ptr %a538, i32 0, i32 0 + %t618 = load { ptr, i64, i64 }, ptr %t617 + store { ptr, i64, i64 } %t618, ptr %a619 + store { ptr, i64, i64 } { ptr @.str.3812, i64 5, i64 0 }, ptr %a620 + %t621 = call i32 @finch_str_eq(ptr %a619, ptr %a620) + %t622 = icmp ne i32 %t621, 0 + br i1 %t622, label %then5947, label %else5948 +then5947: + %t623 = load ptr, ptr %a1 + %t624 = load %S.ast.Node, ptr %a538 + call void @finch.gen.block(ptr %t623, %S.ast.Node %t624, i1 true) + br label %endif5949 +else5948: + %t625 = load ptr, ptr %a1 + %t626 = load %S.ast.Node, ptr %a538 + call void @finch.gen.stmt(ptr %t625, %S.ast.Node %t626) + br label %endif5949 +endif5949: + %t627 = load ptr, ptr %a1 + %t628 = icmp eq ptr %t627, null + br i1 %t628, label %panic5950, label %ok5951 +panic5950: + call void @finch_panic(ptr @.str.3813, i64 3154, ptr @.str.3814) + unreachable +ok5951: + %t629 = getelementptr inbounds %S.gen.Gen, ptr %t627, i32 0, i32 9 + %t630 = load i1, ptr %t629 + %t631 = xor i1 %t630, true + br i1 %t631, label %then5952, label %endif5954 +then5952: + store i1 true, ptr %a128 + br label %endif5954 +endif5954: + %t632 = load i1, ptr %a386 + br i1 %t632, label %then5955, label %endif5957 +then5955: + %t633 = load ptr, ptr %a1 + call void @finch.gen.popScope(ptr %t633) + br label %endif5957 +endif5957: + %t634 = load ptr, ptr %a1 + %t635 = load { ptr, i64, i64 }, ptr %a126 + call void @finch.gen.br(ptr %t634, { ptr, i64, i64 } %t635) + br label %endif5929 +endif5929: + %t636 = getelementptr inbounds %S.ast.Node, ptr %a155, i32 0, i32 6 + %t637 = load i1, ptr %t636 + %t638 = xor i1 %t637, true + br i1 %t638, label %then5958, label %endif5960 +then5958: + %t639 = load ptr, ptr %a1 + %t640 = load { ptr, i64, i64 }, ptr %a164 + call void @finch.gen.label(ptr %t639, { ptr, i64, i64 } %t640) + br label %endif5960 +endif5960: + call void @finch.drop.S_ast_Node(ptr %a538) + call void @finch.drop.arr_S_ast_Node(ptr %a165) + call void @finch_str_drop(ptr %a164) + call void @finch_str_drop(ptr %a161) + call void @finch.drop.S_ast_Node(ptr %a155) + br label %for.step5835 +for.step5835: + %t641 = load i64, ptr %a140 + %t642 = add i64 %t641, 1 + store i64 %t642, ptr %a140 + br label %for.cond5833 +for.end5836: + %t643 = load i1, ptr %a127 + %t644 = xor i1 %t643, true + br i1 %t644, label %then5961, label %endif5963 +then5961: + %t645 = load i64, ptr %a49 + %t646 = icmp sge i64 %t645, 0 + br i1 %t646, label %then5964, label %else5965 +then5964: + store { ptr, i64, i64 } zeroinitializer, ptr %a647 + %t648 = load ptr, ptr %a1 + %t649 = icmp eq ptr %t648, null + br i1 %t649, label %panic5967, label %ok5968 +panic5967: + call void @finch_panic(ptr @.str.3815, i64 3169, ptr @.str.3816) + unreachable +ok5968: + %t650 = getelementptr inbounds %S.gen.Gen, ptr %t648, i32 0, i32 22 + %t651 = load i64, ptr %a49 + %t652 = load { ptr, i64, i64 }, ptr %t650 + %t653 = extractvalue { ptr, i64, i64 } %t652, 1 + %t654 = icmp uge i64 %t651, %t653 + br i1 %t654, label %range5969, label %inrange5970 +range5969: + call void @finch_panic_index(ptr @.str.3817, i64 3169, i64 %t651, i64 %t653) + unreachable +inrange5970: + %t655 = extractvalue { ptr, i64, i64 } %t652, 0 + %t656 = getelementptr inbounds %S.gen.SumDef, ptr %t655, i64 %t651 + %t657 = getelementptr inbounds %S.gen.SumDef, ptr %t656, i32 0, i32 2 + %t658 = getelementptr inbounds { ptr, i64, i64 }, ptr %t657, i32 0, i32 1 + %t659 = load i64, ptr %t658 + store i64 0, ptr %a660 + br label %for.cond5971 +for.cond5971: + %t661 = load i64, ptr %a660 + %t662 = icmp slt i64 %t661, %t659 + br i1 %t662, label %for.body5972, label %for.end5974 +for.body5972: + %t663 = getelementptr inbounds { ptr, i64, i64 }, ptr %a129, i32 0, i32 1 + %t664 = load i64, ptr %a660 + call void @finch_str_from_int(ptr %a665, i64 %t664) + %t666 = load { ptr, i64, i64 }, ptr %a665 + store i64 -1, ptr %a667 + %t668 = load i64, ptr %t663 + %t669 = load ptr, ptr %a129 + store i64 0, ptr %a670 + br label %find.cond5975 +find.cond5975: + %t671 = load i64, ptr %a670 + %t672 = icmp slt i64 %t671, %t668 + br i1 %t672, label %find.body5976, label %find.end5979 +find.body5976: + %t673 = getelementptr inbounds { ptr, i64, i64 }, ptr %t669, i64 %t671 + %t674 = load { ptr, i64, i64 }, ptr %t673 + store { ptr, i64, i64 } %t674, ptr %a675 + store { ptr, i64, i64 } %t666, ptr %a676 + %t677 = call i32 @finch_str_eq(ptr %a675, ptr %a676) + %t678 = icmp ne i32 %t677, 0 + br i1 %t678, label %find.hit5977, label %find.next5978 +find.hit5977: + store i64 %t671, ptr %a667 + br label %find.end5979 +find.next5978: + %t679 = add i64 %t671, 1 + store i64 %t679, ptr %a670 + br label %find.cond5975 +find.end5979: + store { ptr, i64, i64 } %t666, ptr %a680 + call void @finch_str_drop(ptr %a680) + %t681 = load i64, ptr %a667 + %t682 = icmp sge i64 %t681, 0 + %t683 = xor i1 %t682, true + br i1 %t683, label %then5980, label %endif5982 +then5980: + %t684 = getelementptr inbounds { ptr, i64, i64 }, ptr %a647, i32 0, i32 1 + %t685 = load ptr, ptr %a1 + %t686 = icmp eq ptr %t685, null + br i1 %t686, label %panic5983, label %ok5984 +panic5983: + call void @finch_panic(ptr @.str.3818, i64 3171, ptr @.str.3819) + unreachable +ok5984: + %t687 = getelementptr inbounds %S.gen.Gen, ptr %t685, i32 0, i32 22 + %t688 = load i64, ptr %a49 + %t689 = load { ptr, i64, i64 }, ptr %t687 + %t690 = extractvalue { ptr, i64, i64 } %t689, 1 + %t691 = icmp uge i64 %t688, %t690 + br i1 %t691, label %range5985, label %inrange5986 +range5985: + call void @finch_panic_index(ptr @.str.3820, i64 3171, i64 %t688, i64 %t690) + unreachable +inrange5986: + %t692 = extractvalue { ptr, i64, i64 } %t689, 0 + %t693 = getelementptr inbounds %S.gen.SumDef, ptr %t692, i64 %t688 + %t694 = getelementptr inbounds %S.gen.SumDef, ptr %t693, i32 0, i32 2 + %t695 = load i64, ptr %a660 + %t696 = load { ptr, i64, i64 }, ptr %t694 + %t697 = extractvalue { ptr, i64, i64 } %t696, 1 + %t698 = icmp uge i64 %t695, %t697 + br i1 %t698, label %range5987, label %inrange5988 +range5987: + call void @finch_panic_index(ptr @.str.3821, i64 3171, i64 %t695, i64 %t697) + unreachable +inrange5988: + %t699 = extractvalue { ptr, i64, i64 } %t696, 0 + %t700 = getelementptr inbounds { ptr, i64, i64 }, ptr %t699, i64 %t695 + %t701 = load { ptr, i64, i64 }, ptr %t700 + store { ptr, i64, i64 } %t701, ptr %a702 + call void @finch_str_copy(ptr %a703, ptr %a702) + %t704 = load { ptr, i64, i64 }, ptr %a703 + %t705 = load i64, ptr %t684 + %t706 = add i64 %t705, 1 + call void @finch_arr_reserve(ptr %a647, i64 %t706, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t707 = load ptr, ptr %a647 + %t708 = getelementptr inbounds { ptr, i64, i64 }, ptr %t707, i64 %t705 + store { ptr, i64, i64 } %t704, ptr %t708 + store i64 %t706, ptr %t684 + br label %endif5982 +endif5982: + br label %for.step5973 +for.step5973: + %t709 = load i64, ptr %a660 + %t710 = add i64 %t709, 1 + store i64 %t710, ptr %a660 + br label %for.cond5971 +for.end5974: + %t711 = getelementptr inbounds { ptr, i64, i64 }, ptr %a647, i32 0, i32 1 + %t712 = load i64, ptr %t711 + %t713 = icmp sgt i64 %t712, 0 + br i1 %t713, label %then5989, label %endif5991 +then5989: + %t714 = load ptr, ptr %a1 + %t715 = load %S.ast.Node, ptr %a2 + %t716 = getelementptr inbounds { ptr, i64, i64 }, ptr %a647, i32 0, i32 1 + store { ptr, i64, i64 } { ptr @.str.3823, i64 2, i64 0 }, ptr %a717 + call void @finch_str_join(ptr %a718, ptr %a647, ptr %a717) + %t719 = load { ptr, i64, i64 }, ptr %a718 + store { ptr, i64, i64 } { ptr @.str.3822, i64 26, i64 0 }, ptr %a721 + store { ptr, i64, i64 } %t719, ptr %a722 + call void @finch_str_concat(ptr %a720, ptr %a721, ptr %a722) + store { ptr, i64, i64 } %t719, ptr %a723 + call void @finch_str_drop(ptr %a723) + %t724 = load { ptr, i64, i64 }, ptr %a720 + store { ptr, i64, i64 } %t724, ptr %a726 + store { ptr, i64, i64 } { ptr @.str.3824, i64 29, i64 0 }, ptr %a727 + call void @finch_str_concat(ptr %a725, ptr %a726, ptr %a727) + store { ptr, i64, i64 } %t724, ptr %a728 + call void @finch_str_drop(ptr %a728) + %t729 = load { ptr, i64, i64 }, ptr %a725 + call void @finch.gen.fail(ptr %t714, %S.ast.Node %t715, { ptr, i64, i64 } %t729) + store { ptr, i64, i64 } %t729, ptr %a730 + call void @finch_str_drop(ptr %a730) + br label %endif5991 +endif5991: + call void @finch.drop.arr_str(ptr %a647) + br label %endif5966 +else5965: + %t731 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 0 + %t732 = load { ptr, i64, i64 }, ptr %t731 + store { ptr, i64, i64 } %t732, ptr %a733 + store { ptr, i64, i64 } { ptr @.str.3825, i64 4, i64 0 }, ptr %a734 + %t735 = call i32 @finch_str_eq(ptr %a733, ptr %a734) + %t736 = icmp ne i32 %t735, 0 + br i1 %t736, label %then5992, label %else5993 +then5992: + %t737 = load ptr, ptr %a1 + %t738 = icmp eq ptr %t737, null + br i1 %t738, label %panic5995, label %ok5996 +panic5995: + call void @finch_panic(ptr @.str.3826, i64 3178, ptr @.str.3827) + unreachable +ok5996: + %t739 = getelementptr inbounds %S.gen.Gen, ptr %t737, i32 0, i32 21 + %t740 = load ptr, ptr %a1 + %t741 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 3 + %t742 = load { ptr, i64, i64 }, ptr %t741 + %t743 = getelementptr inbounds %S.ast.Type, ptr %a19, i32 0, i32 2 + %t744 = load { ptr, i64, i64 }, ptr %t743 + %t745 = call i64 @finch.gen.findEnum(ptr %t740, { ptr, i64, i64 } %t742, { ptr, i64, i64 } %t744) + %t746 = load { ptr, i64, i64 }, ptr %t739 + %t747 = extractvalue { ptr, i64, i64 } %t746, 1 + %t748 = icmp uge i64 %t745, %t747 + br i1 %t748, label %range5997, label %inrange5998 +range5997: + call void @finch_panic_index(ptr @.str.3828, i64 3178, i64 %t745, i64 %t747) + unreachable +inrange5998: + %t749 = extractvalue { ptr, i64, i64 } %t746, 0 + %t750 = getelementptr inbounds %S.gen.EnumDef, ptr %t749, i64 %t745 + %t751 = load %S.gen.EnumDef, ptr %t750 + store %S.gen.EnumDef %t751, ptr %a752 + call void @finch.copy.S_gen_EnumDef(ptr %a753, ptr %a752) + %t754 = load %S.gen.EnumDef, ptr %a753 + store %S.gen.EnumDef %t754, ptr %a755 + store { ptr, i64, i64 } zeroinitializer, ptr %a756 + %t757 = getelementptr inbounds %S.gen.EnumDef, ptr %a755, i32 0, i32 2 + %t758 = getelementptr inbounds { ptr, i64, i64 }, ptr %t757, i32 0, i32 1 + %t759 = load i64, ptr %t758 + store i64 0, ptr %a760 + br label %for.cond5999 +for.cond5999: + %t761 = load i64, ptr %a760 + %t762 = icmp slt i64 %t761, %t759 + br i1 %t762, label %for.body6000, label %for.end6002 +for.body6000: + %t763 = getelementptr inbounds { ptr, i64, i64 }, ptr %a129, i32 0, i32 1 + %t764 = getelementptr inbounds %S.gen.EnumDef, ptr %a755, i32 0, i32 3 + %t765 = load i64, ptr %a760 + %t766 = load { ptr, i64, i64 }, ptr %t764 + %t767 = extractvalue { ptr, i64, i64 } %t766, 1 + %t768 = icmp uge i64 %t765, %t767 + br i1 %t768, label %range6003, label %inrange6004 +range6003: + call void @finch_panic_index(ptr @.str.3829, i64 3181, i64 %t765, i64 %t767) + unreachable +inrange6004: + %t769 = extractvalue { ptr, i64, i64 } %t766, 0 + %t770 = getelementptr inbounds i64, ptr %t769, i64 %t765 + %t771 = load i64, ptr %t770 + call void @finch_str_from_int(ptr %a772, i64 %t771) + %t773 = load { ptr, i64, i64 }, ptr %a772 + store i64 -1, ptr %a774 + %t775 = load i64, ptr %t763 + %t776 = load ptr, ptr %a129 + store i64 0, ptr %a777 + br label %find.cond6005 +find.cond6005: + %t778 = load i64, ptr %a777 + %t779 = icmp slt i64 %t778, %t775 + br i1 %t779, label %find.body6006, label %find.end6009 +find.body6006: + %t780 = getelementptr inbounds { ptr, i64, i64 }, ptr %t776, i64 %t778 + %t781 = load { ptr, i64, i64 }, ptr %t780 + store { ptr, i64, i64 } %t781, ptr %a782 + store { ptr, i64, i64 } %t773, ptr %a783 + %t784 = call i32 @finch_str_eq(ptr %a782, ptr %a783) + %t785 = icmp ne i32 %t784, 0 + br i1 %t785, label %find.hit6007, label %find.next6008 +find.hit6007: + store i64 %t778, ptr %a774 + br label %find.end6009 +find.next6008: + %t786 = add i64 %t778, 1 + store i64 %t786, ptr %a777 + br label %find.cond6005 +find.end6009: + store { ptr, i64, i64 } %t773, ptr %a787 + call void @finch_str_drop(ptr %a787) + %t788 = load i64, ptr %a774 + %t789 = icmp sge i64 %t788, 0 + %t790 = xor i1 %t789, true + br i1 %t790, label %then6010, label %endif6012 +then6010: + %t791 = getelementptr inbounds { ptr, i64, i64 }, ptr %a756, i32 0, i32 1 + %t792 = getelementptr inbounds %S.gen.EnumDef, ptr %a755, i32 0, i32 2 + %t793 = load i64, ptr %a760 + %t794 = load { ptr, i64, i64 }, ptr %t792 + %t795 = extractvalue { ptr, i64, i64 } %t794, 1 + %t796 = icmp uge i64 %t793, %t795 + br i1 %t796, label %range6013, label %inrange6014 +range6013: + call void @finch_panic_index(ptr @.str.3830, i64 3182, i64 %t793, i64 %t795) + unreachable +inrange6014: + %t797 = extractvalue { ptr, i64, i64 } %t794, 0 + %t798 = getelementptr inbounds { ptr, i64, i64 }, ptr %t797, i64 %t793 + %t799 = load { ptr, i64, i64 }, ptr %t798 + store { ptr, i64, i64 } %t799, ptr %a800 + call void @finch_str_copy(ptr %a801, ptr %a800) + %t802 = load { ptr, i64, i64 }, ptr %a801 + %t803 = load i64, ptr %t791 + %t804 = add i64 %t803, 1 + call void @finch_arr_reserve(ptr %a756, i64 %t804, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t805 = load ptr, ptr %a756 + %t806 = getelementptr inbounds { ptr, i64, i64 }, ptr %t805, i64 %t803 + store { ptr, i64, i64 } %t802, ptr %t806 + store i64 %t804, ptr %t791 + br label %endif6012 +endif6012: + br label %for.step6001 +for.step6001: + %t807 = load i64, ptr %a760 + %t808 = add i64 %t807, 1 + store i64 %t808, ptr %a760 + br label %for.cond5999 +for.end6002: + %t809 = getelementptr inbounds { ptr, i64, i64 }, ptr %a756, i32 0, i32 1 + %t810 = load i64, ptr %t809 + %t811 = icmp sgt i64 %t810, 0 + br i1 %t811, label %then6015, label %endif6017 +then6015: + %t812 = load ptr, ptr %a1 + %t813 = load %S.ast.Node, ptr %a2 + %t814 = getelementptr inbounds { ptr, i64, i64 }, ptr %a756, i32 0, i32 1 + store { ptr, i64, i64 } { ptr @.str.3832, i64 2, i64 0 }, ptr %a815 + call void @finch_str_join(ptr %a816, ptr %a756, ptr %a815) + %t817 = load { ptr, i64, i64 }, ptr %a816 + store { ptr, i64, i64 } { ptr @.str.3831, i64 26, i64 0 }, ptr %a819 + store { ptr, i64, i64 } %t817, ptr %a820 + call void @finch_str_concat(ptr %a818, ptr %a819, ptr %a820) + store { ptr, i64, i64 } %t817, ptr %a821 + call void @finch_str_drop(ptr %a821) + %t822 = load { ptr, i64, i64 }, ptr %a818 + store { ptr, i64, i64 } %t822, ptr %a824 + store { ptr, i64, i64 } { ptr @.str.3833, i64 29, i64 0 }, ptr %a825 + call void @finch_str_concat(ptr %a823, ptr %a824, ptr %a825) + store { ptr, i64, i64 } %t822, ptr %a826 + call void @finch_str_drop(ptr %a826) + %t827 = load { ptr, i64, i64 }, ptr %a823 + call void @finch.gen.fail(ptr %t812, %S.ast.Node %t813, { ptr, i64, i64 } %t827) + store { ptr, i64, i64 } %t827, ptr %a828 + call void @finch_str_drop(ptr %a828) + br label %endif6017 +endif6017: + call void @finch.drop.arr_str(ptr %a756) + call void @finch.drop.S_gen_EnumDef(ptr %a755) + br label %endif5994 +else5993: + %t829 = load ptr, ptr %a1 + %t830 = load %S.ast.Node, ptr %a2 + %t831 = load %S.ast.Type, ptr %a19 + %t832 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t831) + store { ptr, i64, i64 } { ptr @.str.3834, i64 11, i64 0 }, ptr %a834 + store { ptr, i64, i64 } %t832, ptr %a835 + call void @finch_str_concat(ptr %a833, ptr %a834, ptr %a835) + store { ptr, i64, i64 } %t832, ptr %a836 + call void @finch_str_drop(ptr %a836) + %t837 = load { ptr, i64, i64 }, ptr %a833 + store { ptr, i64, i64 } %t837, ptr %a839 + store { ptr, i64, i64 } { ptr @.str.3835, i64 54, i64 0 }, ptr %a840 + call void @finch_str_concat(ptr %a838, ptr %a839, ptr %a840) + store { ptr, i64, i64 } %t837, ptr %a841 + call void @finch_str_drop(ptr %a841) + %t842 = load { ptr, i64, i64 }, ptr %a838 + call void @finch.gen.fail(ptr %t829, %S.ast.Node %t830, { ptr, i64, i64 } %t842) + store { ptr, i64, i64 } %t842, ptr %a843 + call void @finch_str_drop(ptr %a843) + br label %endif5994 +endif5994: + br label %endif5966 +endif5966: + %t844 = load ptr, ptr %a1 + %t845 = load %S.ast.Node, ptr %a2 + call void @finch.gen.panicIf(ptr %t844, { ptr, i64, i64 } { ptr @.str.3836, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.3837, i64 35, i64 0 }, %S.ast.Node %t845) + %t846 = load ptr, ptr %a1 + call void @finch.gen.emit(ptr %t846, { ptr, i64, i64 } { ptr @.str.3838, i64 11, i64 0 }) + %t847 = load ptr, ptr %a1 + %t848 = icmp eq ptr %t847, null + br i1 %t848, label %panic6018, label %ok6019 +panic6018: + call void @finch_panic(ptr @.str.3839, i64 3194, ptr @.str.3840) + unreachable +ok6019: + %t849 = getelementptr inbounds %S.gen.Gen, ptr %t847, i32 0, i32 9 + store i1 true, ptr %t849 + br label %endif5963 +endif5963: + %t850 = load ptr, ptr %a1 + %t851 = load i64, ptr %a46 + call void @finch.gen.heldEnd(ptr %t850, i64 %t851) + %t852 = load ptr, ptr %a1 + %t853 = load { ptr, i64, i64 }, ptr %a126 + call void @finch.gen.label(ptr %t852, { ptr, i64, i64 } %t853) + %t854 = load i1, ptr %a128 + %t855 = xor i1 %t854, true + br i1 %t855, label %then6020, label %endif6022 +then6020: + %t856 = load ptr, ptr %a1 + call void @finch.gen.emit(ptr %t856, { ptr, i64, i64 } { ptr @.str.3841, i64 11, i64 0 }) + %t857 = load ptr, ptr %a1 + %t858 = icmp eq ptr %t857, null + br i1 %t858, label %panic6023, label %ok6024 +panic6023: + call void @finch_panic(ptr @.str.3842, i64 3200, ptr @.str.3843) + unreachable +ok6024: + %t859 = getelementptr inbounds %S.gen.Gen, ptr %t857, i32 0, i32 9 + store i1 true, ptr %t859 + %t860 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3844, i64 4, i64 0 }) + %t861 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t860, 1 + call void @finch.drop.S_ast_Type(ptr %a133) + call void @finch.drop.arr_str(ptr %a131) + call void @finch.drop.arr_str(ptr %a130) + call void @finch.drop.arr_str(ptr %a129) + call void @finch_str_drop(ptr %a126) + call void @finch_str_drop(ptr %a50) call void @finch.drop.S_ast_Type(ptr %a19) call void @finch.drop.S_gen_Val(ptr %a13) - ret %S.gen.Val %t444 -endif5779: - %t445 = load i1, ptr %a3 - br i1 %t445, label %then5782, label %endif5784 -then5782: - %t446 = load ptr, ptr %a1 - %t447 = load ptr, ptr %a1 - %t448 = load %S.ast.Type, ptr %a58 - %t449 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t447, %S.ast.Type %t448) - store { ptr, i64, i64 } { ptr @.str.3717, i64 4, i64 0 }, ptr %a451 - store { ptr, i64, i64 } %t449, ptr %a452 - call void @finch_str_concat(ptr %a450, ptr %a451, ptr %a452) - store { ptr, i64, i64 } %t449, ptr %a453 - call void @finch_str_drop(ptr %a453) - %t454 = load { ptr, i64, i64 }, ptr %a450 - store { ptr, i64, i64 } %t454, ptr %a456 - store { ptr, i64, i64 } { ptr @.str.3718, i64 1, i64 0 }, ptr %a457 - call void @finch_str_concat(ptr %a455, ptr %a456, ptr %a457) - store { ptr, i64, i64 } %t454, ptr %a458 - call void @finch_str_drop(ptr %a458) - %t459 = load { ptr, i64, i64 }, ptr %a455 - %t460 = load { ptr, i64, i64 }, ptr %a55 - %t461 = load { ptr, i64, i64 }, ptr %a56 - %t462 = call { ptr, i64, i64 } @finch.gen.phiList({ ptr, i64, i64 } %t460, { ptr, i64, i64 } %t461) - store { ptr, i64, i64 } %t459, ptr %a464 - store { ptr, i64, i64 } %t462, ptr %a465 - call void @finch_str_concat(ptr %a463, ptr %a464, ptr %a465) - store { ptr, i64, i64 } %t459, ptr %a466 - call void @finch_str_drop(ptr %a466) - store { ptr, i64, i64 } %t462, ptr %a467 - call void @finch_str_drop(ptr %a467) - %t468 = load { ptr, i64, i64 }, ptr %a463 - %t469 = call { ptr, i64, i64 } @finch.gen.op(ptr %t446, { ptr, i64, i64 } %t468) - store { ptr, i64, i64 } %t468, ptr %a470 - call void @finch_str_drop(ptr %a470) - %t471 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t469, 0 - %t472 = load %S.ast.Type, ptr %a58 - store %S.ast.Type %t472, ptr %a473 - call void @finch.copy.S_ast_Type(ptr %a474, ptr %a473) - %t475 = load %S.ast.Type, ptr %a474 - %t476 = insertvalue %S.gen.Val %t471, %S.ast.Type %t475, 1 - %t477 = load ptr, ptr %a1 - %t478 = load %S.ast.Type, ptr %a58 - %t479 = call i1 @finch.gen.owning(ptr %t477, %S.ast.Type %t478) - %t480 = insertvalue %S.gen.Val %t476, i1 %t479, 2 - store %S.gen.Val %t480, ptr %a481 - %t482 = load ptr, ptr %a1 - %t483 = load %S.gen.Val, ptr %a13 - call void @finch.gen.release(ptr %t482, %S.gen.Val %t483) - %t484 = load %S.gen.Val, ptr %a481 - call void @finch.drop.S_ast_Type(ptr %a58) - call void @finch.drop.arr_str(ptr %a56) - call void @finch.drop.arr_str(ptr %a55) - call void @finch.drop.arr_str(ptr %a54) - call void @finch_str_drop(ptr %a51) + ret %S.gen.Val %t861 +endif6022: + %t862 = load i1, ptr %a3 + br i1 %t862, label %then6025, label %endif6027 +then6025: + %t863 = load ptr, ptr %a1 + %t864 = load ptr, ptr %a1 + %t865 = load %S.ast.Type, ptr %a133 + %t866 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t864, %S.ast.Type %t865) + store { ptr, i64, i64 } { ptr @.str.3845, i64 4, i64 0 }, ptr %a868 + store { ptr, i64, i64 } %t866, ptr %a869 + call void @finch_str_concat(ptr %a867, ptr %a868, ptr %a869) + store { ptr, i64, i64 } %t866, ptr %a870 + call void @finch_str_drop(ptr %a870) + %t871 = load { ptr, i64, i64 }, ptr %a867 + store { ptr, i64, i64 } %t871, ptr %a873 + store { ptr, i64, i64 } { ptr @.str.3846, i64 1, i64 0 }, ptr %a874 + call void @finch_str_concat(ptr %a872, ptr %a873, ptr %a874) + store { ptr, i64, i64 } %t871, ptr %a875 + call void @finch_str_drop(ptr %a875) + %t876 = load { ptr, i64, i64 }, ptr %a872 + %t877 = load { ptr, i64, i64 }, ptr %a130 + %t878 = load { ptr, i64, i64 }, ptr %a131 + %t879 = call { ptr, i64, i64 } @finch.gen.phiList({ ptr, i64, i64 } %t877, { ptr, i64, i64 } %t878) + store { ptr, i64, i64 } %t876, ptr %a881 + store { ptr, i64, i64 } %t879, ptr %a882 + call void @finch_str_concat(ptr %a880, ptr %a881, ptr %a882) + store { ptr, i64, i64 } %t876, ptr %a883 + call void @finch_str_drop(ptr %a883) + store { ptr, i64, i64 } %t879, ptr %a884 + call void @finch_str_drop(ptr %a884) + %t885 = load { ptr, i64, i64 }, ptr %a880 + %t886 = call { ptr, i64, i64 } @finch.gen.op(ptr %t863, { ptr, i64, i64 } %t885) + store { ptr, i64, i64 } %t885, ptr %a887 + call void @finch_str_drop(ptr %a887) + %t888 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t886, 0 + %t889 = load %S.ast.Type, ptr %a133 + store %S.ast.Type %t889, ptr %a890 + call void @finch.copy.S_ast_Type(ptr %a891, ptr %a890) + %t892 = load %S.ast.Type, ptr %a891 + %t893 = insertvalue %S.gen.Val %t888, %S.ast.Type %t892, 1 + %t894 = load ptr, ptr %a1 + %t895 = load %S.ast.Type, ptr %a133 + %t896 = call i1 @finch.gen.owning(ptr %t894, %S.ast.Type %t895) + %t897 = insertvalue %S.gen.Val %t893, i1 %t896, 2 + store %S.gen.Val %t897, ptr %a898 + %t899 = load ptr, ptr %a1 + %t900 = load %S.gen.Val, ptr %a13 + call void @finch.gen.release(ptr %t899, %S.gen.Val %t900) + %t901 = load %S.gen.Val, ptr %a898 + call void @finch.drop.S_ast_Type(ptr %a133) + call void @finch.drop.arr_str(ptr %a131) + call void @finch.drop.arr_str(ptr %a130) + call void @finch.drop.arr_str(ptr %a129) + call void @finch_str_drop(ptr %a126) + call void @finch_str_drop(ptr %a50) call void @finch.drop.S_ast_Type(ptr %a19) call void @finch.drop.S_gen_Val(ptr %a13) - ret %S.gen.Val %t484 -endif5784: - %t485 = load ptr, ptr %a1 - %t486 = load %S.gen.Val, ptr %a13 - call void @finch.gen.release(ptr %t485, %S.gen.Val %t486) - %t487 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3719, i64 4, i64 0 }) - %t488 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t487, 1 - call void @finch.drop.S_ast_Type(ptr %a58) - call void @finch.drop.arr_str(ptr %a56) - call void @finch.drop.arr_str(ptr %a55) - call void @finch.drop.arr_str(ptr %a54) - call void @finch_str_drop(ptr %a51) + ret %S.gen.Val %t901 +endif6027: + %t902 = load ptr, ptr %a1 + %t903 = load %S.gen.Val, ptr %a13 + call void @finch.gen.release(ptr %t902, %S.gen.Val %t903) + %t904 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3847, i64 4, i64 0 }) + %t905 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t904, 1 + call void @finch.drop.S_ast_Type(ptr %a133) + call void @finch.drop.arr_str(ptr %a131) + call void @finch.drop.arr_str(ptr %a130) + call void @finch.drop.arr_str(ptr %a129) + call void @finch_str_drop(ptr %a126) + call void @finch_str_drop(ptr %a50) call void @finch.drop.S_ast_Type(ptr %a19) call void @finch.drop.S_gen_Val(ptr %a13) - ret %S.gen.Val %t488 + ret %S.gen.Val %t905 } define internal { ptr, i64, i64 } @finch.gen.phiList({ ptr, i64, i64 } %p0, { ptr, i64, i64 } %p1) { @@ -59088,31 +61539,31 @@ entry: %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t5 = load i64, ptr %t4 store i64 0, ptr %a6 - br label %for.cond5785 -for.cond5785: + br label %for.cond6028 +for.cond6028: %t7 = load i64, ptr %a6 %t8 = icmp slt i64 %t7, %t5 - br i1 %t8, label %for.body5786, label %for.end5788 -for.body5786: + br i1 %t8, label %for.body6029, label %for.end6031 +for.body6029: %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %a3, i32 0, i32 1 %t10 = load i64, ptr %a6 %t11 = load { ptr, i64, i64 }, ptr %a1 %t12 = extractvalue { ptr, i64, i64 } %t11, 1 %t13 = icmp uge i64 %t10, %t12 - br i1 %t13, label %range5789, label %inrange5790 -range5789: - call void @finch_panic_index(ptr @.str.3721, i64 3077, i64 %t10, i64 %t12) + br i1 %t13, label %range6032, label %inrange6033 +range6032: + call void @finch_panic_index(ptr @.str.3849, i64 3215, i64 %t10, i64 %t12) unreachable -inrange5790: +inrange6033: %t14 = extractvalue { ptr, i64, i64 } %t11, 0 %t15 = getelementptr inbounds { ptr, i64, i64 }, ptr %t14, i64 %t10 %t16 = load { ptr, i64, i64 }, ptr %t15 - store { ptr, i64, i64 } { ptr @.str.3720, i64 2, i64 0 }, ptr %a18 + store { ptr, i64, i64 } { ptr @.str.3848, i64 2, i64 0 }, ptr %a18 store { ptr, i64, i64 } %t16, ptr %a19 call void @finch_str_concat(ptr %a17, ptr %a18, ptr %a19) %t20 = load { ptr, i64, i64 }, ptr %a17 store { ptr, i64, i64 } %t20, ptr %a22 - store { ptr, i64, i64 } { ptr @.str.3722, i64 3, i64 0 }, ptr %a23 + store { ptr, i64, i64 } { ptr @.str.3850, i64 3, i64 0 }, ptr %a23 call void @finch_str_concat(ptr %a21, ptr %a22, ptr %a23) store { ptr, i64, i64 } %t20, ptr %a24 call void @finch_str_drop(ptr %a24) @@ -59121,11 +61572,11 @@ inrange5790: %t27 = load { ptr, i64, i64 }, ptr %a2 %t28 = extractvalue { ptr, i64, i64 } %t27, 1 %t29 = icmp uge i64 %t26, %t28 - br i1 %t29, label %range5791, label %inrange5792 -range5791: - call void @finch_panic_index(ptr @.str.3723, i64 3077, i64 %t26, i64 %t28) + br i1 %t29, label %range6034, label %inrange6035 +range6034: + call void @finch_panic_index(ptr @.str.3851, i64 3215, i64 %t26, i64 %t28) unreachable -inrange5792: +inrange6035: %t30 = extractvalue { ptr, i64, i64 } %t27, 0 %t31 = getelementptr inbounds { ptr, i64, i64 }, ptr %t30, i64 %t26 %t32 = load { ptr, i64, i64 }, ptr %t31 @@ -59136,7 +61587,7 @@ inrange5792: call void @finch_str_drop(ptr %a36) %t37 = load { ptr, i64, i64 }, ptr %a33 store { ptr, i64, i64 } %t37, ptr %a39 - store { ptr, i64, i64 } { ptr @.str.3724, i64 2, i64 0 }, ptr %a40 + store { ptr, i64, i64 } { ptr @.str.3852, i64 2, i64 0 }, ptr %a40 call void @finch_str_concat(ptr %a38, ptr %a39, ptr %a40) store { ptr, i64, i64 } %t37, ptr %a41 call void @finch_str_drop(ptr %a41) @@ -59148,15 +61599,15 @@ inrange5792: %t46 = getelementptr inbounds { ptr, i64, i64 }, ptr %t45, i64 %t43 store { ptr, i64, i64 } %t42, ptr %t46 store i64 %t44, ptr %t9 - br label %for.step5787 -for.step5787: + br label %for.step6030 +for.step6030: %t47 = load i64, ptr %a6 %t48 = add i64 %t47, 1 store i64 %t48, ptr %a6 - br label %for.cond5785 -for.end5788: + br label %for.cond6028 +for.end6031: %t49 = getelementptr inbounds { ptr, i64, i64 }, ptr %a3, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.3725, i64 2, i64 0 }, ptr %a50 + store { ptr, i64, i64 } { ptr @.str.3853, i64 2, i64 0 }, ptr %a50 call void @finch_str_join(ptr %a51, ptr %a3, ptr %a50) %t52 = load { ptr, i64, i64 }, ptr %a51 call void @finch.drop.arr_str(ptr %a3) @@ -59205,39 +61656,39 @@ entry: %t3 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 %t4 = load { ptr, i64, i64 }, ptr %t3 store { ptr, i64, i64 } %t4, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.3726, i64 4, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.3854, i64 4, i64 0 }, ptr %a6 %t7 = call i32 @finch_str_eq(ptr %a5, ptr %a6) %t8 = icmp eq i32 %t7, 0 - br label %logic.from5793 -logic.from5793: - br i1 %t8, label %logic.rhs5794, label %logic.end5795 -logic.rhs5794: + br label %logic.from6036 +logic.from6036: + br i1 %t8, label %logic.rhs6037, label %logic.end6038 +logic.rhs6037: %t9 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 %t10 = load { ptr, i64, i64 }, ptr %t9 store { ptr, i64, i64 } %t10, ptr %a11 - store { ptr, i64, i64 } { ptr @.str.3727, i64 6, i64 0 }, ptr %a12 + store { ptr, i64, i64 } { ptr @.str.3855, i64 6, i64 0 }, ptr %a12 %t13 = call i32 @finch_str_eq(ptr %a11, ptr %a12) %t14 = icmp eq i32 %t13, 0 - br label %logic.rend5796 -logic.rend5796: - br label %logic.end5795 -logic.end5795: - %t15 = phi i1 [ false, %logic.from5793 ], [ %t14, %logic.rend5796 ] - br i1 %t15, label %then5797, label %endif5799 -then5797: + br label %logic.rend6039 +logic.rend6039: + br label %logic.end6038 +logic.end6038: + %t15 = phi i1 [ false, %logic.from6036 ], [ %t14, %logic.rend6039 ] + br i1 %t15, label %then6040, label %endif6042 +then6040: %t16 = load ptr, ptr %a1 %t17 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t16, %S.ast.Node %t17, { ptr, i64, i64 } { ptr @.str.3728, i64 80, i64 0 }) - br label %endif5799 -endif5799: + call void @finch.gen.fail(ptr %t16, %S.ast.Node %t17, { ptr, i64, i64 } { ptr @.str.3856, i64 80, i64 0 }) + br label %endif6042 +endif6042: %t18 = load ptr, ptr %a1 %t19 = icmp eq ptr %t18, null - br i1 %t19, label %panic5800, label %ok5801 -panic5800: - call void @finch_panic(ptr @.str.3729, i64 3095, ptr @.str.3730) + br i1 %t19, label %panic6043, label %ok6044 +panic6043: + call void @finch_panic(ptr @.str.3857, i64 3233, ptr @.str.3858) unreachable -ok5801: - %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 40 +ok6044: + %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 41 %t21 = load { ptr, i64, i64 }, ptr %t20 store { ptr, i64, i64 } %t21, ptr %a22 call void @finch_str_copy(ptr %a23, ptr %a22) @@ -59245,12 +61696,12 @@ ok5801: store { ptr, i64, i64 } %t24, ptr %a25 %t26 = load ptr, ptr %a1 %t27 = icmp eq ptr %t26, null - br i1 %t27, label %panic5802, label %ok5803 -panic5802: - call void @finch_panic(ptr @.str.3731, i64 3096, ptr @.str.3732) + br i1 %t27, label %panic6045, label %ok6046 +panic6045: + call void @finch_panic(ptr @.str.3859, i64 3234, ptr @.str.3860) unreachable -ok5803: - %t28 = getelementptr inbounds %S.gen.Gen, ptr %t26, i32 0, i32 41 +ok6046: + %t28 = getelementptr inbounds %S.gen.Gen, ptr %t26, i32 0, i32 42 %t29 = load { ptr, i64, i64 }, ptr %t28 store { ptr, i64, i64 } %t29, ptr %a30 call void @finch_str_copy(ptr %a31, ptr %a30) @@ -59258,12 +61709,12 @@ ok5803: store { ptr, i64, i64 } %t32, ptr %a33 %t34 = load ptr, ptr %a1 %t35 = icmp eq ptr %t34, null - br i1 %t35, label %panic5804, label %ok5805 -panic5804: - call void @finch_panic(ptr @.str.3733, i64 3097, ptr @.str.3734) + br i1 %t35, label %panic6047, label %ok6048 +panic6047: + call void @finch_panic(ptr @.str.3861, i64 3235, ptr @.str.3862) unreachable -ok5805: - %t36 = getelementptr inbounds %S.gen.Gen, ptr %t34, i32 0, i32 42 +ok6048: + %t36 = getelementptr inbounds %S.gen.Gen, ptr %t34, i32 0, i32 43 %t37 = load { ptr, i64, i64 }, ptr %t36 store { ptr, i64, i64 } %t37, ptr %a38 call void @finch_str_copy(ptr %a39, ptr %a38) @@ -59273,38 +61724,38 @@ ok5805: %t43 = call { ptr, i64, i64 } @finch.gen.nodeKey(%S.ast.Node %t42) %t44 = load ptr, ptr %a1 %t45 = icmp eq ptr %t44, null - br i1 %t45, label %panic5806, label %ok5807 -panic5806: - call void @finch_panic(ptr @.str.3735, i64 3098, ptr @.str.3736) + br i1 %t45, label %panic6049, label %ok6050 +panic6049: + call void @finch_panic(ptr @.str.3863, i64 3236, ptr @.str.3864) unreachable -ok5807: - %t46 = getelementptr inbounds %S.gen.Gen, ptr %t44, i32 0, i32 40 +ok6050: + %t46 = getelementptr inbounds %S.gen.Gen, ptr %t44, i32 0, i32 41 %t47 = load { ptr, i64, i64 }, ptr %t46 store { ptr, i64, i64 } %t43, ptr %t46 store { ptr, i64, i64 } %t47, ptr %a48 call void @finch_str_drop(ptr %a48) %t49 = load ptr, ptr %a1 %t50 = icmp eq ptr %t49, null - br i1 %t50, label %panic5808, label %ok5809 -panic5808: - call void @finch_panic(ptr @.str.3738, i64 3099, ptr @.str.3739) + br i1 %t50, label %panic6051, label %ok6052 +panic6051: + call void @finch_panic(ptr @.str.3866, i64 3237, ptr @.str.3867) unreachable -ok5809: - %t51 = getelementptr inbounds %S.gen.Gen, ptr %t49, i32 0, i32 41 +ok6052: + %t51 = getelementptr inbounds %S.gen.Gen, ptr %t49, i32 0, i32 42 %t52 = load { ptr, i64, i64 }, ptr %t51 - store { ptr, i64, i64 } { ptr @.str.3737, i64 0, i64 0 }, ptr %t51 + store { ptr, i64, i64 } { ptr @.str.3865, i64 0, i64 0 }, ptr %t51 store { ptr, i64, i64 } %t52, ptr %a53 call void @finch_str_drop(ptr %a53) %t54 = load ptr, ptr %a1 %t55 = icmp eq ptr %t54, null - br i1 %t55, label %panic5810, label %ok5811 -panic5810: - call void @finch_panic(ptr @.str.3741, i64 3100, ptr @.str.3742) + br i1 %t55, label %panic6053, label %ok6054 +panic6053: + call void @finch_panic(ptr @.str.3869, i64 3238, ptr @.str.3870) unreachable -ok5811: - %t56 = getelementptr inbounds %S.gen.Gen, ptr %t54, i32 0, i32 42 +ok6054: + %t56 = getelementptr inbounds %S.gen.Gen, ptr %t54, i32 0, i32 43 %t57 = load { ptr, i64, i64 }, ptr %t56 - store { ptr, i64, i64 } { ptr @.str.3740, i64 0, i64 0 }, ptr %t56 + store { ptr, i64, i64 } { ptr @.str.3868, i64 0, i64 0 }, ptr %t56 store { ptr, i64, i64 } %t57, ptr %a58 call void @finch_str_drop(ptr %a58) %t59 = load ptr, ptr %a1 @@ -59318,12 +61769,12 @@ ok5811: %t67 = insertvalue %S.gen.Fallible zeroinitializer, %S.gen.Val %t66, 0 %t68 = load ptr, ptr %a1 %t69 = icmp eq ptr %t68, null - br i1 %t69, label %panic5812, label %ok5813 -panic5812: - call void @finch_panic(ptr @.str.3743, i64 3102, ptr @.str.3744) + br i1 %t69, label %panic6055, label %ok6056 +panic6055: + call void @finch_panic(ptr @.str.3871, i64 3240, ptr @.str.3872) unreachable -ok5813: - %t70 = getelementptr inbounds %S.gen.Gen, ptr %t68, i32 0, i32 41 +ok6056: + %t70 = getelementptr inbounds %S.gen.Gen, ptr %t68, i32 0, i32 42 %t71 = load { ptr, i64, i64 }, ptr %t70 store { ptr, i64, i64 } %t71, ptr %a72 call void @finch_str_copy(ptr %a73, ptr %a72) @@ -59331,12 +61782,12 @@ ok5813: %t75 = insertvalue %S.gen.Fallible %t67, { ptr, i64, i64 } %t74, 1 %t76 = load ptr, ptr %a1 %t77 = icmp eq ptr %t76, null - br i1 %t77, label %panic5814, label %ok5815 -panic5814: - call void @finch_panic(ptr @.str.3745, i64 3102, ptr @.str.3746) + br i1 %t77, label %panic6057, label %ok6058 +panic6057: + call void @finch_panic(ptr @.str.3873, i64 3240, ptr @.str.3874) unreachable -ok5815: - %t78 = getelementptr inbounds %S.gen.Gen, ptr %t76, i32 0, i32 42 +ok6058: + %t78 = getelementptr inbounds %S.gen.Gen, ptr %t76, i32 0, i32 43 %t79 = load { ptr, i64, i64 }, ptr %t78 store { ptr, i64, i64 } %t79, ptr %a80 call void @finch_str_copy(ptr %a81, ptr %a80) @@ -59346,12 +61797,12 @@ ok5815: %t85 = load { ptr, i64, i64 }, ptr %a25 %t86 = load ptr, ptr %a1 %t87 = icmp eq ptr %t86, null - br i1 %t87, label %panic5816, label %ok5817 -panic5816: - call void @finch_panic(ptr @.str.3747, i64 3103, ptr @.str.3748) + br i1 %t87, label %panic6059, label %ok6060 +panic6059: + call void @finch_panic(ptr @.str.3875, i64 3241, ptr @.str.3876) unreachable -ok5817: - %t88 = getelementptr inbounds %S.gen.Gen, ptr %t86, i32 0, i32 40 +ok6060: + %t88 = getelementptr inbounds %S.gen.Gen, ptr %t86, i32 0, i32 41 store { ptr, i64, i64 } %t85, ptr %a89 call void @finch_str_copy(ptr %a90, ptr %a89) %t91 = load { ptr, i64, i64 }, ptr %a90 @@ -59362,12 +61813,12 @@ ok5817: %t94 = load { ptr, i64, i64 }, ptr %a33 %t95 = load ptr, ptr %a1 %t96 = icmp eq ptr %t95, null - br i1 %t96, label %panic5818, label %ok5819 -panic5818: - call void @finch_panic(ptr @.str.3749, i64 3104, ptr @.str.3750) + br i1 %t96, label %panic6061, label %ok6062 +panic6061: + call void @finch_panic(ptr @.str.3877, i64 3242, ptr @.str.3878) unreachable -ok5819: - %t97 = getelementptr inbounds %S.gen.Gen, ptr %t95, i32 0, i32 41 +ok6062: + %t97 = getelementptr inbounds %S.gen.Gen, ptr %t95, i32 0, i32 42 store { ptr, i64, i64 } %t94, ptr %a98 call void @finch_str_copy(ptr %a99, ptr %a98) %t100 = load { ptr, i64, i64 }, ptr %a99 @@ -59378,12 +61829,12 @@ ok5819: %t103 = load { ptr, i64, i64 }, ptr %a41 %t104 = load ptr, ptr %a1 %t105 = icmp eq ptr %t104, null - br i1 %t105, label %panic5820, label %ok5821 -panic5820: - call void @finch_panic(ptr @.str.3751, i64 3105, ptr @.str.3752) + br i1 %t105, label %panic6063, label %ok6064 +panic6063: + call void @finch_panic(ptr @.str.3879, i64 3243, ptr @.str.3880) unreachable -ok5821: - %t106 = getelementptr inbounds %S.gen.Gen, ptr %t104, i32 0, i32 42 +ok6064: + %t106 = getelementptr inbounds %S.gen.Gen, ptr %t104, i32 0, i32 43 store { ptr, i64, i64 } %t103, ptr %a107 call void @finch_str_copy(ptr %a108, ptr %a107) %t109 = load { ptr, i64, i64 }, ptr %a108 @@ -59395,13 +61846,13 @@ ok5821: %t113 = getelementptr inbounds { ptr, i64, i64 }, ptr %t112, i32 0, i32 1 %t114 = load i64, ptr %t113 %t115 = icmp eq i64 %t114, 0 - br i1 %t115, label %then5822, label %endif5824 -then5822: + br i1 %t115, label %then6065, label %endif6067 +then6065: %t116 = load ptr, ptr %a1 %t117 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t116, %S.ast.Node %t117, { ptr, i64, i64 } { ptr @.str.3753, i64 50, i64 0 }) - br label %endif5824 -endif5824: + call void @finch.gen.fail(ptr %t116, %S.ast.Node %t117, { ptr, i64, i64 } { ptr @.str.3881, i64 50, i64 0 }) + br label %endif6067 +endif6067: %t118 = load %S.gen.Fallible, ptr %a84 call void @finch.drop.S_gen_Val(ptr %a62) call void @finch_str_drop(ptr %a41) @@ -59490,65 +61941,65 @@ entry: store %S.ast.Node %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic5825, label %ok5826 -panic5825: - call void @finch_panic(ptr @.str.3754, i64 3114, ptr @.str.3755) + br i1 %t4, label %panic6068, label %ok6069 +panic6068: + call void @finch_panic(ptr @.str.3882, i64 3252, ptr @.str.3883) unreachable -ok5826: - %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 45 +ok6069: + %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 46 %t6 = load i64, ptr %t5 %t7 = icmp sgt i64 %t6, 0 - br i1 %t7, label %then5827, label %endif5829 -then5827: + br i1 %t7, label %then6070, label %endif6072 +then6070: %t8 = load ptr, ptr %a1 %t9 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t8, %S.ast.Node %t9, { ptr, i64, i64 } { ptr @.str.3756, i64 30, i64 0 }) - br label %endif5829 -endif5829: + call void @finch.gen.fail(ptr %t8, %S.ast.Node %t9, { ptr, i64, i64 } { ptr @.str.3884, i64 30, i64 0 }) + br label %endif6072 +endif6072: %t10 = load ptr, ptr %a1 %t11 = icmp eq ptr %t10, null - br i1 %t11, label %panic5830, label %ok5831 -panic5830: - call void @finch_panic(ptr @.str.3757, i64 3117, ptr @.str.3758) + br i1 %t11, label %panic6073, label %ok6074 +panic6073: + call void @finch_panic(ptr @.str.3885, i64 3255, ptr @.str.3886) unreachable -ok5831: +ok6074: %t12 = getelementptr inbounds %S.gen.Gen, ptr %t10, i32 0, i32 13 %t13 = getelementptr inbounds %S.gen.FnSig, ptr %t12, i32 0, i32 9 %t14 = load i1, ptr %t13 %t15 = xor i1 %t14, true - br i1 %t15, label %then5832, label %endif5834 -then5832: - store { ptr, i64, i64 } { ptr @.str.3759, i64 1, i64 0 }, ptr %a16 + br i1 %t15, label %then6075, label %endif6077 +then6075: + store { ptr, i64, i64 } { ptr @.str.3887, i64 1, i64 0 }, ptr %a16 %t17 = load ptr, ptr %a1 %t18 = icmp eq ptr %t17, null - br i1 %t18, label %panic5835, label %ok5836 -panic5835: - call void @finch_panic(ptr @.str.3760, i64 3119, ptr @.str.3761) + br i1 %t18, label %panic6078, label %ok6079 +panic6078: + call void @finch_panic(ptr @.str.3888, i64 3257, ptr @.str.3889) unreachable -ok5836: +ok6079: %t19 = getelementptr inbounds %S.gen.Gen, ptr %t17, i32 0, i32 13 %t20 = getelementptr inbounds %S.gen.FnSig, ptr %t19, i32 0, i32 12 %t21 = getelementptr inbounds %S.ast.Type, ptr %t20, i32 0, i32 0 %t22 = load { ptr, i64, i64 }, ptr %t21 store { ptr, i64, i64 } %t22, ptr %a23 - store { ptr, i64, i64 } { ptr @.str.3762, i64 4, i64 0 }, ptr %a24 + store { ptr, i64, i64 } { ptr @.str.3890, i64 4, i64 0 }, ptr %a24 %t25 = call i32 @finch_str_eq(ptr %a23, ptr %a24) %t26 = icmp eq i32 %t25, 0 - br i1 %t26, label %then5837, label %endif5839 -then5837: + br i1 %t26, label %then6080, label %endif6082 +then6080: %t27 = load ptr, ptr %a1 %t28 = icmp eq ptr %t27, null - br i1 %t28, label %panic5840, label %ok5841 -panic5840: - call void @finch_panic(ptr @.str.3763, i64 3120, ptr @.str.3764) + br i1 %t28, label %panic6083, label %ok6084 +panic6083: + call void @finch_panic(ptr @.str.3891, i64 3258, ptr @.str.3892) unreachable -ok5841: +ok6084: %t29 = getelementptr inbounds %S.gen.Gen, ptr %t27, i32 0, i32 13 %t30 = getelementptr inbounds %S.gen.FnSig, ptr %t29, i32 0, i32 12 %t31 = load %S.ast.Type, ptr %t30 %t32 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t31) store { ptr, i64, i64 } %t32, ptr %a34 - store { ptr, i64, i64 } { ptr @.str.3765, i64 1, i64 0 }, ptr %a35 + store { ptr, i64, i64 } { ptr @.str.3893, i64 1, i64 0 }, ptr %a35 call void @finch_str_concat(ptr %a33, ptr %a34, ptr %a35) store { ptr, i64, i64 } %t32, ptr %a36 call void @finch_str_drop(ptr %a36) @@ -59557,26 +62008,26 @@ ok5841: store { ptr, i64, i64 } %t37, ptr %a16 store { ptr, i64, i64 } %t38, ptr %a39 call void @finch_str_drop(ptr %a39) - br label %endif5839 -endif5839: + br label %endif6082 +endif6082: %t40 = load ptr, ptr %a1 %t41 = load %S.ast.Node, ptr %a2 %t42 = load ptr, ptr %a1 %t43 = icmp eq ptr %t42, null - br i1 %t43, label %panic5842, label %ok5843 -panic5842: - call void @finch_panic(ptr @.str.3767, i64 3122, ptr @.str.3768) + br i1 %t43, label %panic6085, label %ok6086 +panic6085: + call void @finch_panic(ptr @.str.3895, i64 3260, ptr @.str.3896) unreachable -ok5843: +ok6086: %t44 = getelementptr inbounds %S.gen.Gen, ptr %t42, i32 0, i32 13 %t45 = getelementptr inbounds %S.gen.FnSig, ptr %t44, i32 0, i32 1 %t46 = load { ptr, i64, i64 }, ptr %t45 - store { ptr, i64, i64 } { ptr @.str.3766, i64 29, i64 0 }, ptr %a48 + store { ptr, i64, i64 } { ptr @.str.3894, i64 29, i64 0 }, ptr %a48 store { ptr, i64, i64 } %t46, ptr %a49 call void @finch_str_concat(ptr %a47, ptr %a48, ptr %a49) %t50 = load { ptr, i64, i64 }, ptr %a47 store { ptr, i64, i64 } %t50, ptr %a52 - store { ptr, i64, i64 } { ptr @.str.3769, i64 31, i64 0 }, ptr %a53 + store { ptr, i64, i64 } { ptr @.str.3897, i64 31, i64 0 }, ptr %a53 call void @finch_str_concat(ptr %a51, ptr %a52, ptr %a53) store { ptr, i64, i64 } %t50, ptr %a54 call void @finch_str_drop(ptr %a54) @@ -59589,7 +62040,7 @@ ok5843: call void @finch_str_drop(ptr %a60) %t61 = load { ptr, i64, i64 }, ptr %a57 store { ptr, i64, i64 } %t61, ptr %a63 - store { ptr, i64, i64 } { ptr @.str.3770, i64 55, i64 0 }, ptr %a64 + store { ptr, i64, i64 } { ptr @.str.3898, i64 55, i64 0 }, ptr %a64 call void @finch_str_concat(ptr %a62, ptr %a63, ptr %a64) store { ptr, i64, i64 } %t61, ptr %a65 call void @finch_str_drop(ptr %a65) @@ -59598,28 +62049,28 @@ ok5843: store { ptr, i64, i64 } %t66, ptr %a67 call void @finch_str_drop(ptr %a67) call void @finch_str_drop(ptr %a16) - br label %endif5834 -endif5834: + br label %endif6077 +endif6077: %t68 = load ptr, ptr %a1 %t69 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t70 = load { ptr, i64, i64 }, ptr %t69 %t71 = extractvalue { ptr, i64, i64 } %t70, 1 %t72 = icmp uge i64 0, %t71 - br i1 %t72, label %range5844, label %inrange5845 -range5844: - call void @finch_panic_index(ptr @.str.3771, i64 3124, i64 0, i64 %t71) + br i1 %t72, label %range6087, label %inrange6088 +range6087: + call void @finch_panic_index(ptr @.str.3899, i64 3262, i64 0, i64 %t71) unreachable -inrange5845: +inrange6088: %t73 = extractvalue { ptr, i64, i64 } %t70, 0 %t74 = getelementptr inbounds %S.ast.Node, ptr %t73, i64 0 %t75 = load %S.ast.Node, ptr %t74 %t76 = call %S.gen.Fallible @finch.gen.fallibleCall(ptr %t68, %S.ast.Node %t75) store %S.gen.Fallible %t76, ptr %a77 %t78 = load ptr, ptr %a1 - %t79 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t78, { ptr, i64, i64 } { ptr @.str.3772, i64 10, i64 0 }) + %t79 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t78, { ptr, i64, i64 } { ptr @.str.3900, i64 10, i64 0 }) store { ptr, i64, i64 } %t79, ptr %a80 %t81 = load ptr, ptr %a1 - %t82 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t81, { ptr, i64, i64 } { ptr @.str.3773, i64 6, i64 0 }) + %t82 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t81, { ptr, i64, i64 } { ptr @.str.3901, i64 6, i64 0 }) store { ptr, i64, i64 } %t82, ptr %a83 %t84 = load ptr, ptr %a1 %t85 = getelementptr inbounds %S.gen.Fallible, ptr %a77, i32 0, i32 1 @@ -59638,22 +62089,22 @@ inrange5845: %t94 = load ptr, ptr %a1 %t95 = load ptr, ptr %a1 %t96 = icmp eq ptr %t95, null - br i1 %t96, label %panic5846, label %ok5847 -panic5846: - call void @finch_panic(ptr @.str.3775, i64 3131, ptr @.str.3776) + br i1 %t96, label %panic6089, label %ok6090 +panic6089: + call void @finch_panic(ptr @.str.3903, i64 3269, ptr @.str.3904) unreachable -ok5847: +ok6090: %t97 = getelementptr inbounds %S.gen.Gen, ptr %t95, i32 0, i32 13 %t98 = load %S.gen.FnSig, ptr %t97 %t99 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t94, %S.gen.FnSig %t98) - store { ptr, i64, i64 } { ptr @.str.3774, i64 4, i64 0 }, ptr %a101 + store { ptr, i64, i64 } { ptr @.str.3902, i64 4, i64 0 }, ptr %a101 store { ptr, i64, i64 } %t99, ptr %a102 call void @finch_str_concat(ptr %a100, ptr %a101, ptr %a102) store { ptr, i64, i64 } %t99, ptr %a103 call void @finch_str_drop(ptr %a103) %t104 = load { ptr, i64, i64 }, ptr %a100 store { ptr, i64, i64 } %t104, ptr %a106 - store { ptr, i64, i64 } { ptr @.str.3777, i64 1, i64 0 }, ptr %a107 + store { ptr, i64, i64 } { ptr @.str.3905, i64 1, i64 0 }, ptr %a107 call void @finch_str_concat(ptr %a105, ptr %a106, ptr %a107) store { ptr, i64, i64 } %t104, ptr %a108 call void @finch_str_drop(ptr %a108) @@ -59662,22 +62113,22 @@ ok5847: %t111 = load ptr, ptr %a1 %t112 = load ptr, ptr %a1 %t113 = icmp eq ptr %t112, null - br i1 %t113, label %panic5848, label %ok5849 -panic5848: - call void @finch_panic(ptr @.str.3779, i64 3131, ptr @.str.3780) + br i1 %t113, label %panic6091, label %ok6092 +panic6091: + call void @finch_panic(ptr @.str.3907, i64 3269, ptr @.str.3908) unreachable -ok5849: +ok6092: %t114 = getelementptr inbounds %S.gen.Gen, ptr %t112, i32 0, i32 13 %t115 = load %S.gen.FnSig, ptr %t114 %t116 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t111, %S.gen.FnSig %t115) - store { ptr, i64, i64 } { ptr @.str.3778, i64 12, i64 0 }, ptr %a118 + store { ptr, i64, i64 } { ptr @.str.3906, i64 12, i64 0 }, ptr %a118 store { ptr, i64, i64 } %t116, ptr %a119 call void @finch_str_concat(ptr %a117, ptr %a118, ptr %a119) store { ptr, i64, i64 } %t116, ptr %a120 call void @finch_str_drop(ptr %a120) %t121 = load { ptr, i64, i64 }, ptr %a117 store { ptr, i64, i64 } %t121, ptr %a123 - store { ptr, i64, i64 } { ptr @.str.3781, i64 36, i64 0 }, ptr %a124 + store { ptr, i64, i64 } { ptr @.str.3909, i64 36, i64 0 }, ptr %a124 call void @finch_str_concat(ptr %a122, ptr %a123, ptr %a124) store { ptr, i64, i64 } %t121, ptr %a125 call void @finch_str_drop(ptr %a125) @@ -59691,7 +62142,7 @@ ok5849: call void @finch_str_drop(ptr %a132) %t133 = load { ptr, i64, i64 }, ptr %a129 store { ptr, i64, i64 } %t133, ptr %a135 - store { ptr, i64, i64 } { ptr @.str.3782, i64 3, i64 0 }, ptr %a136 + store { ptr, i64, i64 } { ptr @.str.3910, i64 3, i64 0 }, ptr %a136 call void @finch_str_concat(ptr %a134, ptr %a135, ptr %a136) store { ptr, i64, i64 } %t133, ptr %a137 call void @finch_str_drop(ptr %a137) @@ -59712,11 +62163,11 @@ ok5849: call void @finch_str_drop(ptr %a147) %t148 = load ptr, ptr %a1 %t149 = icmp eq ptr %t148, null - br i1 %t149, label %panic5850, label %ok5851 -panic5850: - call void @finch_panic(ptr @.str.3783, i64 3132, ptr @.str.3784) + br i1 %t149, label %panic6093, label %ok6094 +panic6093: + call void @finch_panic(ptr @.str.3911, i64 3270, ptr @.str.3912) unreachable -ok5851: +ok6094: %t150 = getelementptr inbounds %S.gen.Gen, ptr %t148, i32 0, i32 9 store i1 true, ptr %t150 %t151 = load ptr, ptr %a1 @@ -59812,11 +62263,11 @@ entry: %t6 = load { ptr, i64, i64 }, ptr %t5 %t7 = extractvalue { ptr, i64, i64 } %t6, 1 %t8 = icmp uge i64 0, %t7 - br i1 %t8, label %range5852, label %inrange5853 -range5852: - call void @finch_panic_index(ptr @.str.3785, i64 3139, i64 0, i64 %t7) + br i1 %t8, label %range6095, label %inrange6096 +range6095: + call void @finch_panic_index(ptr @.str.3913, i64 3277, i64 0, i64 %t7) unreachable -inrange5853: +inrange6096: %t9 = extractvalue { ptr, i64, i64 } %t6, 0 %t10 = getelementptr inbounds %S.ast.Node, ptr %t9, i64 0 %t11 = load %S.ast.Node, ptr %t10 @@ -59829,10 +62280,10 @@ inrange5853: %t18 = load %S.gen.Val, ptr %a17 store %S.gen.Val %t18, ptr %a19 %t20 = load ptr, ptr %a1 - %t21 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t20, { ptr, i64, i64 } { ptr @.str.3786, i64 9, i64 0 }) + %t21 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t20, { ptr, i64, i64 } { ptr @.str.3914, i64 9, i64 0 }) store { ptr, i64, i64 } %t21, ptr %a22 %t23 = load ptr, ptr %a1 - %t24 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t23, { ptr, i64, i64 } { ptr @.str.3787, i64 5, i64 0 }) + %t24 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t23, { ptr, i64, i64 } { ptr @.str.3915, i64 5, i64 0 }) store { ptr, i64, i64 } %t24, ptr %a25 %t26 = load ptr, ptr %a1 %t27 = getelementptr inbounds %S.gen.Fallible, ptr %a13, i32 0, i32 1 @@ -59845,16 +62296,16 @@ inrange5853: call void @finch.gen.label(ptr %t31, { ptr, i64, i64 } %t32) %t33 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 6 %t34 = load i1, ptr %t33 - br i1 %t34, label %then5854, label %endif5856 -then5854: + br i1 %t34, label %then6097, label %endif6099 +then6097: %t35 = load ptr, ptr %a1 call void @finch.gen.pushScope(ptr %t35) %t36 = load ptr, ptr %a1 %t37 = load %S.ast.Node, ptr %a2 - %t38 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3789, i64 3, i64 0 }) + %t38 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3917, i64 3, i64 0 }) %t39 = getelementptr inbounds %S.gen.Fallible, ptr %a13, i32 0, i32 2 %t40 = load { ptr, i64, i64 }, ptr %t39 - %t41 = call { ptr, i64, i64 } @finch.gen.addVar(ptr %t36, %S.ast.Node %t37, { ptr, i64, i64 } { ptr @.str.3788, i64 3, i64 0 }, %S.ast.Type %t38, { ptr, i64, i64 } %t40, i1 true, i1 true) + %t41 = call { ptr, i64, i64 } @finch.gen.addVar(ptr %t36, %S.ast.Node %t37, { ptr, i64, i64 } { ptr @.str.3916, i64 3, i64 0 }, %S.ast.Type %t38, { ptr, i64, i64 } %t40, i1 true, i1 true) store %S.ast.Type %t38, ptr %a42 call void @finch.drop.S_ast_Type(ptr %a42) store { ptr, i64, i64 } %t41, ptr %a43 @@ -59864,22 +62315,22 @@ then5854: %t46 = load { ptr, i64, i64 }, ptr %t45 %t47 = extractvalue { ptr, i64, i64 } %t46, 1 %t48 = icmp uge i64 1, %t47 - br i1 %t48, label %range5857, label %inrange5858 -range5857: - call void @finch_panic_index(ptr @.str.3790, i64 3148, i64 1, i64 %t47) + br i1 %t48, label %range6100, label %inrange6101 +range6100: + call void @finch_panic_index(ptr @.str.3918, i64 3286, i64 1, i64 %t47) unreachable -inrange5858: +inrange6101: %t49 = extractvalue { ptr, i64, i64 } %t46, 0 %t50 = getelementptr inbounds %S.ast.Node, ptr %t49, i64 1 %t51 = load %S.ast.Node, ptr %t50 call void @finch.gen.block(ptr %t44, %S.ast.Node %t51, i1 true) %t52 = load ptr, ptr %a1 %t53 = icmp eq ptr %t52, null - br i1 %t53, label %panic5859, label %ok5860 -panic5859: - call void @finch_panic(ptr @.str.3791, i64 3149, ptr @.str.3792) + br i1 %t53, label %panic6102, label %ok6103 +panic6102: + call void @finch_panic(ptr @.str.3919, i64 3287, ptr @.str.3920) unreachable -ok5860: +ok6103: %t54 = getelementptr inbounds %S.gen.Gen, ptr %t52, i32 0, i32 9 %t55 = load i1, ptr %t54 store i1 %t55, ptr %a56 @@ -59887,72 +62338,72 @@ ok5860: call void @finch.gen.popScope(ptr %t57) %t58 = load i1, ptr %a56 %t59 = xor i1 %t58, true - br label %logic.from5861 -logic.from5861: - br i1 %t59, label %logic.rhs5862, label %logic.end5863 -logic.rhs5862: + br label %logic.from6104 +logic.from6104: + br i1 %t59, label %logic.rhs6105, label %logic.end6106 +logic.rhs6105: %t60 = getelementptr inbounds %S.gen.Val, ptr %a19, i32 0, i32 1 %t61 = getelementptr inbounds %S.ast.Type, ptr %t60, i32 0, i32 0 %t62 = load { ptr, i64, i64 }, ptr %t61 store { ptr, i64, i64 } %t62, ptr %a63 - store { ptr, i64, i64 } { ptr @.str.3793, i64 4, i64 0 }, ptr %a64 + store { ptr, i64, i64 } { ptr @.str.3921, i64 4, i64 0 }, ptr %a64 %t65 = call i32 @finch_str_eq(ptr %a63, ptr %a64) %t66 = icmp eq i32 %t65, 0 - br label %logic.rend5864 -logic.rend5864: - br label %logic.end5863 -logic.end5863: - %t67 = phi i1 [ false, %logic.from5861 ], [ %t66, %logic.rend5864 ] - br label %logic.from5865 -logic.from5865: - br i1 %t67, label %logic.rhs5866, label %logic.end5867 -logic.rhs5866: + br label %logic.rend6107 +logic.rend6107: + br label %logic.end6106 +logic.end6106: + %t67 = phi i1 [ false, %logic.from6104 ], [ %t66, %logic.rend6107 ] + br label %logic.from6108 +logic.from6108: + br i1 %t67, label %logic.rhs6109, label %logic.end6110 +logic.rhs6109: %t68 = load i1, ptr %a3 %t69 = xor i1 %t68, true - br label %logic.rend5868 -logic.rend5868: - br label %logic.end5867 -logic.end5867: - %t70 = phi i1 [ false, %logic.from5865 ], [ %t69, %logic.rend5868 ] - br i1 %t70, label %then5869, label %endif5871 -then5869: + br label %logic.rend6111 +logic.rend6111: + br label %logic.end6110 +logic.end6110: + %t70 = phi i1 [ false, %logic.from6108 ], [ %t69, %logic.rend6111 ] + br i1 %t70, label %then6112, label %endif6114 +then6112: %t71 = load ptr, ptr %a1 %t72 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t73 = load { ptr, i64, i64 }, ptr %t72 %t74 = extractvalue { ptr, i64, i64 } %t73, 1 %t75 = icmp uge i64 1, %t74 - br i1 %t75, label %range5872, label %inrange5873 -range5872: - call void @finch_panic_index(ptr @.str.3794, i64 3152, i64 1, i64 %t74) + br i1 %t75, label %range6115, label %inrange6116 +range6115: + call void @finch_panic_index(ptr @.str.3922, i64 3290, i64 1, i64 %t74) unreachable -inrange5873: +inrange6116: %t76 = extractvalue { ptr, i64, i64 } %t73, 0 %t77 = getelementptr inbounds %S.ast.Node, ptr %t76, i64 1 %t78 = load %S.ast.Node, ptr %t77 - call void @finch.gen.fail(ptr %t71, %S.ast.Node %t78, { ptr, i64, i64 } { ptr @.str.3795, i64 142, i64 0 }) - br label %endif5871 -endif5871: + call void @finch.gen.fail(ptr %t71, %S.ast.Node %t78, { ptr, i64, i64 } { ptr @.str.3923, i64 142, i64 0 }) + br label %endif6114 +endif6114: %t79 = load i1, ptr %a3 - br label %logic.from5874 -logic.from5874: - br i1 %t79, label %logic.rhs5875, label %logic.end5876 -logic.rhs5875: + br label %logic.from6117 +logic.from6117: + br i1 %t79, label %logic.rhs6118, label %logic.end6119 +logic.rhs6118: %t80 = getelementptr inbounds %S.gen.Val, ptr %a19, i32 0, i32 1 %t81 = getelementptr inbounds %S.ast.Type, ptr %t80, i32 0, i32 0 %t82 = load { ptr, i64, i64 }, ptr %t81 store { ptr, i64, i64 } %t82, ptr %a83 - store { ptr, i64, i64 } { ptr @.str.3796, i64 4, i64 0 }, ptr %a84 + store { ptr, i64, i64 } { ptr @.str.3924, i64 4, i64 0 }, ptr %a84 %t85 = call i32 @finch_str_eq(ptr %a83, ptr %a84) %t86 = icmp eq i32 %t85, 0 - br label %logic.rend5877 -logic.rend5877: - br label %logic.end5876 -logic.end5876: - %t87 = phi i1 [ false, %logic.from5874 ], [ %t86, %logic.rend5877 ] - br i1 %t87, label %then5878, label %endif5880 -then5878: + br label %logic.rend6120 +logic.rend6120: + br label %logic.end6119 +logic.end6119: + %t87 = phi i1 [ false, %logic.from6117 ], [ %t86, %logic.rend6120 ] + br i1 %t87, label %then6121, label %endif6123 +then6121: %t88 = load ptr, ptr %a1 - %t89 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t88, { ptr, i64, i64 } { ptr @.str.3797, i64 6, i64 0 }) + %t89 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t88, { ptr, i64, i64 } { ptr @.str.3925, i64 6, i64 0 }) store { ptr, i64, i64 } %t89, ptr %a90 %t91 = load ptr, ptr %a1 %t92 = load { ptr, i64, i64 }, ptr %a90 @@ -59969,7 +62420,7 @@ then5878: %t99 = load ptr, ptr %a1 %t100 = load { ptr, i64, i64 }, ptr %a90 call void @finch.gen.label(ptr %t99, { ptr, i64, i64 } %t100) - %t101 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3798, i64 4, i64 0 }) + %t101 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3926, i64 4, i64 0 }) %t102 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t101, 1 call void @finch_str_drop(ptr %a90) call void @finch_str_drop(ptr %a25) @@ -59977,7 +62428,7 @@ then5878: call void @finch.drop.S_gen_Val(ptr %a19) call void @finch.drop.S_gen_Fallible(ptr %a13) ret %S.gen.Val %t102 -endif5880: +endif6123: %t103 = load ptr, ptr %a1 %t104 = load { ptr, i64, i64 }, ptr %a25 call void @finch.gen.br(ptr %t103, { ptr, i64, i64 } %t104) @@ -59989,40 +62440,40 @@ endif5880: call void @finch_str_drop(ptr %a22) call void @finch.drop.S_gen_Fallible(ptr %a13) ret %S.gen.Val %t107 -endif5856: +endif6099: %t108 = getelementptr inbounds %S.gen.Val, ptr %a19, i32 0, i32 1 %t109 = getelementptr inbounds %S.ast.Type, ptr %t108, i32 0, i32 0 %t110 = load { ptr, i64, i64 }, ptr %t109 store { ptr, i64, i64 } %t110, ptr %a111 - store { ptr, i64, i64 } { ptr @.str.3799, i64 4, i64 0 }, ptr %a112 + store { ptr, i64, i64 } { ptr @.str.3927, i64 4, i64 0 }, ptr %a112 %t113 = call i32 @finch_str_eq(ptr %a111, ptr %a112) %t114 = icmp ne i32 %t113, 0 - br i1 %t114, label %then5881, label %endif5883 -then5881: + br i1 %t114, label %then6124, label %endif6126 +then6124: %t115 = load ptr, ptr %a1 %t116 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t117 = load { ptr, i64, i64 }, ptr %t116 %t118 = extractvalue { ptr, i64, i64 } %t117, 1 %t119 = icmp uge i64 1, %t118 - br i1 %t119, label %range5884, label %inrange5885 -range5884: - call void @finch_panic_index(ptr @.str.3800, i64 3168, i64 1, i64 %t118) + br i1 %t119, label %range6127, label %inrange6128 +range6127: + call void @finch_panic_index(ptr @.str.3928, i64 3306, i64 1, i64 %t118) unreachable -inrange5885: +inrange6128: %t120 = extractvalue { ptr, i64, i64 } %t117, 0 %t121 = getelementptr inbounds %S.ast.Node, ptr %t120, i64 1 %t122 = load %S.ast.Node, ptr %t121 - call void @finch.gen.fail(ptr %t115, %S.ast.Node %t122, { ptr, i64, i64 } { ptr @.str.3801, i64 98, i64 0 }) - br label %endif5883 -endif5883: + call void @finch.gen.fail(ptr %t115, %S.ast.Node %t122, { ptr, i64, i64 } { ptr @.str.3929, i64 98, i64 0 }) + br label %endif6126 +endif6126: %t123 = load ptr, ptr %a1 call void @finch.gen.pushScope(ptr %t123) %t124 = load ptr, ptr %a1 %t125 = load %S.ast.Node, ptr %a2 - %t126 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3803, i64 3, i64 0 }) + %t126 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3931, i64 3, i64 0 }) %t127 = getelementptr inbounds %S.gen.Fallible, ptr %a13, i32 0, i32 2 %t128 = load { ptr, i64, i64 }, ptr %t127 - %t129 = call { ptr, i64, i64 } @finch.gen.addVar(ptr %t124, %S.ast.Node %t125, { ptr, i64, i64 } { ptr @.str.3802, i64 3, i64 0 }, %S.ast.Type %t126, { ptr, i64, i64 } %t128, i1 true, i1 true) + %t129 = call { ptr, i64, i64 } @finch.gen.addVar(ptr %t124, %S.ast.Node %t125, { ptr, i64, i64 } { ptr @.str.3930, i64 3, i64 0 }, %S.ast.Type %t126, { ptr, i64, i64 } %t128, i1 true, i1 true) store %S.ast.Type %t126, ptr %a130 call void @finch.drop.S_ast_Type(ptr %a130) store { ptr, i64, i64 } %t129, ptr %a131 @@ -60033,11 +62484,11 @@ endif5883: %t135 = load { ptr, i64, i64 }, ptr %t134 %t136 = extractvalue { ptr, i64, i64 } %t135, 1 %t137 = icmp uge i64 1, %t136 - br i1 %t137, label %range5886, label %inrange5887 -range5886: - call void @finch_panic_index(ptr @.str.3804, i64 3172, i64 1, i64 %t136) + br i1 %t137, label %range6129, label %inrange6130 +range6129: + call void @finch_panic_index(ptr @.str.3932, i64 3310, i64 1, i64 %t136) unreachable -inrange5887: +inrange6130: %t138 = extractvalue { ptr, i64, i64 } %t135, 0 %t139 = getelementptr inbounds %S.ast.Node, ptr %t138, i64 1 %t140 = load %S.ast.Node, ptr %t139 @@ -60050,15 +62501,15 @@ inrange5887: %t147 = load { ptr, i64, i64 }, ptr %t146 %t148 = extractvalue { ptr, i64, i64 } %t147, 1 %t149 = icmp uge i64 1, %t148 - br i1 %t149, label %range5888, label %inrange5889 -range5888: - call void @finch_panic_index(ptr @.str.3805, i64 3172, i64 1, i64 %t148) + br i1 %t149, label %range6131, label %inrange6132 +range6131: + call void @finch_panic_index(ptr @.str.3933, i64 3310, i64 1, i64 %t148) unreachable -inrange5889: +inrange6132: %t150 = extractvalue { ptr, i64, i64 } %t147, 0 %t151 = getelementptr inbounds %S.ast.Node, ptr %t150, i64 1 %t152 = load %S.ast.Node, ptr %t151 - %t153 = call %S.gen.Val @finch.gen.coerce(ptr %t132, %S.gen.Val %t143, %S.ast.Type %t145, %S.ast.Node %t152, { ptr, i64, i64 } { ptr @.str.3806, i64 20, i64 0 }) + %t153 = call %S.gen.Val @finch.gen.coerce(ptr %t132, %S.gen.Val %t143, %S.ast.Type %t145, %S.ast.Node %t152, { ptr, i64, i64 } { ptr @.str.3934, i64 20, i64 0 }) store %S.gen.Val %t143, ptr %a154 call void @finch.drop.S_gen_Val(ptr %a154) store %S.gen.Val %t153, ptr %a155 @@ -60069,10 +62520,10 @@ inrange5889: %t160 = load ptr, ptr %a1 call void @finch.gen.popScope(ptr %t160) %t161 = load ptr, ptr %a1 - %t162 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t161, { ptr, i64, i64 } { ptr @.str.3807, i64 7, i64 0 }) + %t162 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t161, { ptr, i64, i64 } { ptr @.str.3935, i64 7, i64 0 }) store { ptr, i64, i64 } %t162, ptr %a163 %t164 = load ptr, ptr %a1 - %t165 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t164, { ptr, i64, i64 } { ptr @.str.3808, i64 6, i64 0 }) + %t165 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t164, { ptr, i64, i64 } { ptr @.str.3936, i64 6, i64 0 }) store { ptr, i64, i64 } %t165, ptr %a166 %t167 = load ptr, ptr %a1 %t168 = load { ptr, i64, i64 }, ptr %a163 @@ -60097,14 +62548,14 @@ inrange5889: %t181 = getelementptr inbounds %S.gen.Val, ptr %a19, i32 0, i32 1 %t182 = load %S.ast.Type, ptr %t181 %t183 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t180, %S.ast.Type %t182) - store { ptr, i64, i64 } { ptr @.str.3809, i64 4, i64 0 }, ptr %a185 + store { ptr, i64, i64 } { ptr @.str.3937, i64 4, i64 0 }, ptr %a185 store { ptr, i64, i64 } %t183, ptr %a186 call void @finch_str_concat(ptr %a184, ptr %a185, ptr %a186) store { ptr, i64, i64 } %t183, ptr %a187 call void @finch_str_drop(ptr %a187) %t188 = load { ptr, i64, i64 }, ptr %a184 store { ptr, i64, i64 } %t188, ptr %a190 - store { ptr, i64, i64 } { ptr @.str.3810, i64 3, i64 0 }, ptr %a191 + store { ptr, i64, i64 } { ptr @.str.3938, i64 3, i64 0 }, ptr %a191 call void @finch_str_concat(ptr %a189, ptr %a190, ptr %a191) store { ptr, i64, i64 } %t188, ptr %a192 call void @finch_str_drop(ptr %a192) @@ -60117,7 +62568,7 @@ inrange5889: call void @finch_str_drop(ptr %a198) %t199 = load { ptr, i64, i64 }, ptr %a195 store { ptr, i64, i64 } %t199, ptr %a201 - store { ptr, i64, i64 } { ptr @.str.3811, i64 3, i64 0 }, ptr %a202 + store { ptr, i64, i64 } { ptr @.str.3939, i64 3, i64 0 }, ptr %a202 call void @finch_str_concat(ptr %a200, ptr %a201, ptr %a202) store { ptr, i64, i64 } %t199, ptr %a203 call void @finch_str_drop(ptr %a203) @@ -60130,7 +62581,7 @@ inrange5889: call void @finch_str_drop(ptr %a209) %t210 = load { ptr, i64, i64 }, ptr %a206 store { ptr, i64, i64 } %t210, ptr %a212 - store { ptr, i64, i64 } { ptr @.str.3812, i64 6, i64 0 }, ptr %a213 + store { ptr, i64, i64 } { ptr @.str.3940, i64 6, i64 0 }, ptr %a213 call void @finch_str_concat(ptr %a211, ptr %a212, ptr %a213) store { ptr, i64, i64 } %t210, ptr %a214 call void @finch_str_drop(ptr %a214) @@ -60144,7 +62595,7 @@ inrange5889: call void @finch_str_drop(ptr %a221) %t222 = load { ptr, i64, i64 }, ptr %a218 store { ptr, i64, i64 } %t222, ptr %a224 - store { ptr, i64, i64 } { ptr @.str.3813, i64 3, i64 0 }, ptr %a225 + store { ptr, i64, i64 } { ptr @.str.3941, i64 3, i64 0 }, ptr %a225 call void @finch_str_concat(ptr %a223, ptr %a224, ptr %a225) store { ptr, i64, i64 } %t222, ptr %a226 call void @finch_str_drop(ptr %a226) @@ -60157,7 +62608,7 @@ inrange5889: call void @finch_str_drop(ptr %a232) %t233 = load { ptr, i64, i64 }, ptr %a229 store { ptr, i64, i64 } %t233, ptr %a235 - store { ptr, i64, i64 } { ptr @.str.3814, i64 2, i64 0 }, ptr %a236 + store { ptr, i64, i64 } { ptr @.str.3942, i64 2, i64 0 }, ptr %a236 call void @finch_str_concat(ptr %a234, ptr %a235, ptr %a236) store { ptr, i64, i64 } %t233, ptr %a237 call void @finch_str_drop(ptr %a237) @@ -60203,31 +62654,31 @@ entry: %t4 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 %t5 = load { ptr, i64, i64 }, ptr %t4 store { ptr, i64, i64 } %t5, ptr %a6 - store { ptr, i64, i64 } { ptr @.str.3815, i64 5, i64 0 }, ptr %a7 + store { ptr, i64, i64 } { ptr @.str.3943, i64 5, i64 0 }, ptr %a7 %t8 = call i32 @finch_str_eq(ptr %a6, ptr %a7) %t9 = icmp ne i32 %t8, 0 - br i1 %t9, label %then5890, label %endif5892 -then5890: + br i1 %t9, label %then6133, label %endif6135 +then6133: %t10 = load ptr, ptr %a1 %t11 = load %S.ast.Node, ptr %a2 %t12 = load %S.ast.Type, ptr %a3 %t13 = call %S.gen.Val @finch.gen.arrayLit(ptr %t10, %S.ast.Node %t11, %S.ast.Type %t12) ret %S.gen.Val %t13 -endif5892: +endif6135: %t14 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 %t15 = load { ptr, i64, i64 }, ptr %t14 store { ptr, i64, i64 } %t15, ptr %a16 - store { ptr, i64, i64 } { ptr @.str.3816, i64 3, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.3944, i64 3, i64 0 }, ptr %a17 %t18 = call i32 @finch_str_eq(ptr %a16, ptr %a17) %t19 = icmp ne i32 %t18, 0 - br i1 %t19, label %then5893, label %endif5895 -then5893: + br i1 %t19, label %then6136, label %endif6138 +then6136: %t20 = load ptr, ptr %a1 %t21 = load %S.ast.Node, ptr %a2 %t22 = load %S.ast.Type, ptr %a3 %t23 = call %S.gen.Val @finch.gen.mapLit(ptr %t20, %S.ast.Node %t21, %S.ast.Type %t22) ret %S.gen.Val %t23 -endif5895: +endif6138: %t24 = load ptr, ptr %a1 %t25 = load %S.ast.Node, ptr %a2 %t26 = call %S.gen.Val @finch.gen.expr(ptr %t24, %S.ast.Node %t25) @@ -60321,34 +62772,34 @@ entry: store { ptr, i64, i64 } %t7, ptr %a8 %t9 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t9, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.3817, i64 3, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.3945, i64 3, i64 0 }, ptr %a11 %t12 = call i32 @finch_str_eq(ptr %a10, ptr %a11) %t13 = icmp ne i32 %t12, 0 - br i1 %t13, label %then5896, label %endif5898 -then5896: + br i1 %t13, label %then6139, label %endif6141 +then6139: %t14 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 4 %t15 = load { ptr, i64, i64 }, ptr %t14 store { ptr, i64, i64 } %t15, ptr %a16 - store { ptr, i64, i64 } { ptr @.str.3819, i64 2, i64 0 }, ptr %a18 + store { ptr, i64, i64 } { ptr @.str.3947, i64 2, i64 0 }, ptr %a18 %t19 = call i32 @finch_str_starts(ptr %a16, ptr %a18) %t20 = icmp ne i32 %t19, 0 - br label %logic.from5899 -logic.from5899: - br i1 %t20, label %logic.end5901, label %logic.rhs5900 -logic.rhs5900: + br label %logic.from6142 +logic.from6142: + br i1 %t20, label %logic.end6144, label %logic.rhs6143 +logic.rhs6143: %t21 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 4 %t22 = load { ptr, i64, i64 }, ptr %t21 store { ptr, i64, i64 } %t22, ptr %a23 - store { ptr, i64, i64 } { ptr @.str.3821, i64 2, i64 0 }, ptr %a25 + store { ptr, i64, i64 } { ptr @.str.3949, i64 2, i64 0 }, ptr %a25 %t26 = call i32 @finch_str_starts(ptr %a23, ptr %a25) %t27 = icmp ne i32 %t26, 0 - br label %logic.rend5902 -logic.rend5902: - br label %logic.end5901 -logic.end5901: - %t28 = phi i1 [ true, %logic.from5899 ], [ %t27, %logic.rend5902 ] - br i1 %t28, label %then5903, label %endif5905 -then5903: + br label %logic.rend6145 +logic.rend6145: + br label %logic.end6144 +logic.end6144: + %t28 = phi i1 [ true, %logic.from6142 ], [ %t27, %logic.rend6145 ] + br i1 %t28, label %then6146, label %endif6148 +then6146: store i64 0, ptr %a29 %t30 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 4 %t31 = load { ptr, i64, i64 }, ptr %t30 @@ -60356,18 +62807,18 @@ then5903: %t34 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 4 %t35 = getelementptr inbounds { ptr, i64, i64 }, ptr %t34, i32 0, i32 1 %t36 = load i64, ptr %t35 - call void @finch_str_sub(ptr %a33, ptr %a32, i64 2, i64 %t36, ptr @.str.3822, i64 3201) + call void @finch_str_sub(ptr %a33, ptr %a32, i64 2, i64 %t36, ptr @.str.3950, i64 3339) %t37 = load { ptr, i64, i64 }, ptr %a33 store { ptr, i64, i64 } %t37, ptr %a38 store i64 0, ptr %a39 - br label %each.cond5906 -each.cond5906: + br label %each.cond6149 +each.cond6149: %t40 = getelementptr inbounds { ptr, i64, i64 }, ptr %a38, i32 0, i32 1 %t41 = load i64, ptr %t40 %t42 = load i64, ptr %a39 %t43 = icmp slt i64 %t42, %t41 - br i1 %t43, label %each.body5907, label %each.end5909 -each.body5907: + br i1 %t43, label %each.body6150, label %each.end6152 +each.body6150: %t44 = load ptr, ptr %a38 %t45 = getelementptr inbounds i8, ptr %t44, i64 %t42 %t46 = load i8, ptr %t45 @@ -60379,139 +62830,139 @@ each.body5907: store i64 %t51, ptr %a52 %t53 = load i8, ptr %a47 %t54 = icmp uge i8 %t53, 97 - br label %logic.from5910 -logic.from5910: - br i1 %t54, label %logic.rhs5911, label %logic.end5912 -logic.rhs5911: + br label %logic.from6153 +logic.from6153: + br i1 %t54, label %logic.rhs6154, label %logic.end6155 +logic.rhs6154: %t55 = load i8, ptr %a47 %t56 = icmp ule i8 %t55, 102 - br label %logic.rend5913 -logic.rend5913: - br label %logic.end5912 -logic.end5912: - %t57 = phi i1 [ false, %logic.from5910 ], [ %t56, %logic.rend5913 ] - br i1 %t57, label %then5914, label %endif5916 -then5914: + br label %logic.rend6156 +logic.rend6156: + br label %logic.end6155 +logic.end6155: + %t57 = phi i1 [ false, %logic.from6153 ], [ %t56, %logic.rend6156 ] + br i1 %t57, label %then6157, label %endif6159 +then6157: %t58 = load i8, ptr %a47 %t59 = zext i8 %t58 to i64 %t60 = zext i8 97 to i64 %t61 = sub i64 %t59, %t60 %t62 = add i64 %t61, 10 store i64 %t62, ptr %a52 - br label %endif5916 -endif5916: + br label %endif6159 +endif6159: %t63 = load i8, ptr %a47 %t64 = icmp uge i8 %t63, 65 - br label %logic.from5917 -logic.from5917: - br i1 %t64, label %logic.rhs5918, label %logic.end5919 -logic.rhs5918: + br label %logic.from6160 +logic.from6160: + br i1 %t64, label %logic.rhs6161, label %logic.end6162 +logic.rhs6161: %t65 = load i8, ptr %a47 %t66 = icmp ule i8 %t65, 70 - br label %logic.rend5920 -logic.rend5920: - br label %logic.end5919 -logic.end5919: - %t67 = phi i1 [ false, %logic.from5917 ], [ %t66, %logic.rend5920 ] - br i1 %t67, label %then5921, label %endif5923 -then5921: + br label %logic.rend6163 +logic.rend6163: + br label %logic.end6162 +logic.end6162: + %t67 = phi i1 [ false, %logic.from6160 ], [ %t66, %logic.rend6163 ] + br i1 %t67, label %then6164, label %endif6166 +then6164: %t68 = load i8, ptr %a47 %t69 = zext i8 %t68 to i64 %t70 = zext i8 65 to i64 %t71 = sub i64 %t69, %t70 %t72 = add i64 %t71, 10 store i64 %t72, ptr %a52 - br label %endif5923 -endif5923: + br label %endif6166 +endif6166: %t73 = load i64, ptr %a29 %t74 = mul i64 %t73, 16 %t75 = load i64, ptr %a52 %t76 = add i64 %t74, %t75 store i64 %t76, ptr %a29 - br label %each.step5908 -each.step5908: + br label %each.step6151 +each.step6151: %t77 = load i64, ptr %a39 %t78 = add i64 %t77, 1 store i64 %t78, ptr %a39 - br label %each.cond5906 -each.end5909: + br label %each.cond6149 +each.end6152: call void @finch_str_drop(ptr %a38) %t79 = load i64, ptr %a29 call void @finch_str_from_int(ptr %a80, i64 %t79) %t81 = load { ptr, i64, i64 }, ptr %a80 %t82 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t81, 0 - %t83 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3823, i64 3, i64 0 }) + %t83 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3951, i64 3, i64 0 }) %t84 = insertvalue %S.gen.Val %t82, %S.ast.Type %t83, 1 %t85 = insertvalue %S.gen.Val %t84, i1 true, 3 call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t85 -endif5905: +endif6148: %t86 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 4 %t87 = load { ptr, i64, i64 }, ptr %t86 store { ptr, i64, i64 } %t87, ptr %a88 - %t89 = call i64 @finch_str_to_int(ptr %a88, ptr @.str.3824, i64 3213) + %t89 = call i64 @finch_str_to_int(ptr %a88, ptr @.str.3952, i64 3351) call void @finch_str_from_int(ptr %a90, i64 %t89) %t91 = load { ptr, i64, i64 }, ptr %a90 %t92 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t91, 0 - %t93 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3825, i64 3, i64 0 }) + %t93 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3953, i64 3, i64 0 }) %t94 = insertvalue %S.gen.Val %t92, %S.ast.Type %t93, 1 %t95 = insertvalue %S.gen.Val %t94, i1 true, 3 call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t95 -endif5898: +endif6141: %t96 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t96, ptr %a97 - store { ptr, i64, i64 } { ptr @.str.3826, i64 5, i64 0 }, ptr %a98 + store { ptr, i64, i64 } { ptr @.str.3954, i64 5, i64 0 }, ptr %a98 %t99 = call i32 @finch_str_eq(ptr %a97, ptr %a98) %t100 = icmp ne i32 %t99, 0 - br i1 %t100, label %then5924, label %endif5926 -then5924: + br i1 %t100, label %then6167, label %endif6169 +then6167: %t101 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 4 %t102 = load { ptr, i64, i64 }, ptr %t101 store { ptr, i64, i64 } %t102, ptr %a103 call void @finch_str_copy(ptr %a104, ptr %a103) %t105 = load { ptr, i64, i64 }, ptr %a104 %t106 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t105, 0 - %t107 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3827, i64 5, i64 0 }) + %t107 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3955, i64 5, i64 0 }) %t108 = insertvalue %S.gen.Val %t106, %S.ast.Type %t107, 1 %t109 = insertvalue %S.gen.Val %t108, i1 true, 3 call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t109 -endif5926: +endif6169: %t110 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t110, ptr %a111 - store { ptr, i64, i64 } { ptr @.str.3828, i64 4, i64 0 }, ptr %a112 + store { ptr, i64, i64 } { ptr @.str.3956, i64 4, i64 0 }, ptr %a112 %t113 = call i32 @finch_str_eq(ptr %a111, ptr %a112) %t114 = icmp ne i32 %t113, 0 - br i1 %t114, label %then5927, label %endif5929 -then5927: + br i1 %t114, label %then6170, label %endif6172 +then6170: %t115 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 4 %t116 = load { ptr, i64, i64 }, ptr %t115 store { ptr, i64, i64 } %t116, ptr %a117 call void @finch_str_copy(ptr %a118, ptr %a117) %t119 = load { ptr, i64, i64 }, ptr %a118 %t120 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t119, 0 - %t121 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3829, i64 4, i64 0 }) + %t121 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3957, i64 4, i64 0 }) %t122 = insertvalue %S.gen.Val %t120, %S.ast.Type %t121, 1 call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t122 -endif5929: +endif6172: %t123 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t123, ptr %a124 - store { ptr, i64, i64 } { ptr @.str.3830, i64 4, i64 0 }, ptr %a125 + store { ptr, i64, i64 } { ptr @.str.3958, i64 4, i64 0 }, ptr %a125 %t126 = call i32 @finch_str_eq(ptr %a124, ptr %a125) %t127 = icmp ne i32 %t126, 0 - br i1 %t127, label %then5930, label %endif5932 -then5930: + br i1 %t127, label %then6173, label %endif6175 +then6173: %t128 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 4 %t129 = load { ptr, i64, i64 }, ptr %t128 %t130 = extractvalue { ptr, i64, i64 } %t129, 1 %t131 = icmp uge i64 0, %t130 - br i1 %t131, label %range5933, label %inrange5934 -range5933: - call void @finch_panic_index(ptr @.str.3831, i64 3222, i64 0, i64 %t130) + br i1 %t131, label %range6176, label %inrange6177 +range6176: + call void @finch_panic_index(ptr @.str.3959, i64 3360, i64 0, i64 %t130) unreachable -inrange5934: +inrange6177: %t132 = extractvalue { ptr, i64, i64 } %t129, 0 %t133 = getelementptr inbounds i8, ptr %t132, i64 0 %t134 = load i8, ptr %t133 @@ -60521,73 +62972,73 @@ inrange5934: call void @finch_str_from_int(ptr %a138, i64 %t137) %t139 = load { ptr, i64, i64 }, ptr %a138 %t140 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t139, 0 - %t141 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3832, i64 4, i64 0 }) + %t141 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3960, i64 4, i64 0 }) %t142 = insertvalue %S.gen.Val %t140, %S.ast.Type %t141, 1 call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t142 -endif5932: +endif6175: %t143 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t143, ptr %a144 - store { ptr, i64, i64 } { ptr @.str.3833, i64 3, i64 0 }, ptr %a145 + store { ptr, i64, i64 } { ptr @.str.3961, i64 3, i64 0 }, ptr %a145 %t146 = call i32 @finch_str_eq(ptr %a144, ptr %a145) %t147 = icmp ne i32 %t146, 0 - br i1 %t147, label %then5935, label %endif5937 -then5935: + br i1 %t147, label %then6178, label %endif6180 +then6178: %t148 = load ptr, ptr %a1 %t149 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 4 %t150 = load { ptr, i64, i64 }, ptr %t149 %t151 = call %S.gen.Val @finch.gen.strConst(ptr %t148, { ptr, i64, i64 } %t150) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t151 -endif5937: +endif6180: %t152 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t152, ptr %a153 - store { ptr, i64, i64 } { ptr @.str.3834, i64 4, i64 0 }, ptr %a154 + store { ptr, i64, i64 } { ptr @.str.3962, i64 4, i64 0 }, ptr %a154 %t155 = call i32 @finch_str_eq(ptr %a153, ptr %a154) %t156 = icmp ne i32 %t155, 0 - br i1 %t156, label %then5938, label %endif5940 -then5938: - %t157 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } { ptr @.str.3835, i64 4, i64 0 }, 0 - %t158 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3836, i64 4, i64 0 }) + br i1 %t156, label %then6181, label %endif6183 +then6181: + %t157 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } { ptr @.str.3963, i64 4, i64 0 }, 0 + %t158 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3964, i64 4, i64 0 }) %t159 = insertvalue %S.gen.Val %t157, %S.ast.Type %t158, 1 call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t159 -endif5940: +endif6183: %t160 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t160, ptr %a161 - store { ptr, i64, i64 } { ptr @.str.3837, i64 3, i64 0 }, ptr %a162 + store { ptr, i64, i64 } { ptr @.str.3965, i64 3, i64 0 }, ptr %a162 %t163 = call i32 @finch_str_eq(ptr %a161, ptr %a162) %t164 = icmp ne i32 %t163, 0 - br label %logic.from5941 -logic.from5941: - br i1 %t164, label %logic.end5943, label %logic.rhs5942 -logic.rhs5942: + br label %logic.from6184 +logic.from6184: + br i1 %t164, label %logic.end6186, label %logic.rhs6185 +logic.rhs6185: %t165 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t165, ptr %a166 - store { ptr, i64, i64 } { ptr @.str.3838, i64 6, i64 0 }, ptr %a167 + store { ptr, i64, i64 } { ptr @.str.3966, i64 6, i64 0 }, ptr %a167 %t168 = call i32 @finch_str_eq(ptr %a166, ptr %a167) %t169 = icmp ne i32 %t168, 0 - br label %logic.rend5944 -logic.rend5944: - br label %logic.end5943 -logic.end5943: - %t170 = phi i1 [ true, %logic.from5941 ], [ %t169, %logic.rend5944 ] - br label %logic.from5945 -logic.from5945: - br i1 %t170, label %logic.end5947, label %logic.rhs5946 -logic.rhs5946: + br label %logic.rend6187 +logic.rend6187: + br label %logic.end6186 +logic.end6186: + %t170 = phi i1 [ true, %logic.from6184 ], [ %t169, %logic.rend6187 ] + br label %logic.from6188 +logic.from6188: + br i1 %t170, label %logic.end6190, label %logic.rhs6189 +logic.rhs6189: %t171 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t171, ptr %a172 - store { ptr, i64, i64 } { ptr @.str.3839, i64 5, i64 0 }, ptr %a173 + store { ptr, i64, i64 } { ptr @.str.3967, i64 5, i64 0 }, ptr %a173 %t174 = call i32 @finch_str_eq(ptr %a172, ptr %a173) %t175 = icmp ne i32 %t174, 0 - br label %logic.rend5948 -logic.rend5948: - br label %logic.end5947 -logic.end5947: - %t176 = phi i1 [ true, %logic.from5945 ], [ %t175, %logic.rend5948 ] - br i1 %t176, label %then5949, label %endif5951 -then5949: + br label %logic.rend6191 +logic.rend6191: + br label %logic.end6190 +logic.end6190: + %t176 = phi i1 [ true, %logic.from6188 ], [ %t175, %logic.rend6191 ] + br i1 %t176, label %then6192, label %endif6194 +then6192: %t177 = load ptr, ptr %a1 %t178 = load %S.ast.Node, ptr %a2 %t179 = call %S.gen.Ref @finch.gen.ref(ptr %t177, %S.ast.Node %t178, i1 false) @@ -60595,8 +63046,8 @@ then5949: %t181 = getelementptr inbounds %S.gen.Ref, ptr %a180, i32 0, i32 0 %t182 = load i1, ptr %t181 %t183 = xor i1 %t182, true - br i1 %t183, label %then5952, label %endif5954 -then5952: + br i1 %t183, label %then6195, label %endif6197 +then6195: %t184 = getelementptr inbounds %S.gen.Ref, ptr %a180, i32 0, i32 2 %t185 = load %S.gen.Val, ptr %t184 store %S.gen.Val %t185, ptr %a186 @@ -60605,7 +63056,7 @@ then5952: call void @finch.drop.S_gen_Ref(ptr %a180) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t188 -endif5954: +endif6197: %t189 = load ptr, ptr %a1 %t190 = load ptr, ptr %a1 %t191 = getelementptr inbounds %S.gen.Ref, ptr %a180, i32 0, i32 1 @@ -60629,134 +63080,134 @@ endif5954: call void @finch.drop.S_gen_Ref(ptr %a180) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t207 -endif5951: +endif6194: %t208 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t208, ptr %a209 - store { ptr, i64, i64 } { ptr @.str.3840, i64 5, i64 0 }, ptr %a210 + store { ptr, i64, i64 } { ptr @.str.3968, i64 5, i64 0 }, ptr %a210 %t211 = call i32 @finch_str_eq(ptr %a209, ptr %a210) %t212 = icmp ne i32 %t211, 0 - br i1 %t212, label %then5955, label %endif5957 -then5955: + br i1 %t212, label %then6198, label %endif6200 +then6198: %t213 = load ptr, ptr %a1 %t214 = load %S.ast.Node, ptr %a2 %t215 = call %S.gen.Val @finch.gen.matchGen(ptr %t213, %S.ast.Node %t214, i1 true) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t215 -endif5957: +endif6200: %t216 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t216, ptr %a217 - store { ptr, i64, i64 } { ptr @.str.3841, i64 3, i64 0 }, ptr %a218 + store { ptr, i64, i64 } { ptr @.str.3969, i64 3, i64 0 }, ptr %a218 %t219 = call i32 @finch_str_eq(ptr %a217, ptr %a218) %t220 = icmp ne i32 %t219, 0 - br i1 %t220, label %then5958, label %endif5960 -then5958: + br i1 %t220, label %then6201, label %endif6203 +then6201: %t221 = load ptr, ptr %a1 %t222 = load %S.ast.Node, ptr %a2 %t223 = call %S.gen.Val @finch.gen.tryExpr(ptr %t221, %S.ast.Node %t222) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t223 -endif5960: +endif6203: %t224 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t224, ptr %a225 - store { ptr, i64, i64 } { ptr @.str.3842, i64 2, i64 0 }, ptr %a226 + store { ptr, i64, i64 } { ptr @.str.3970, i64 2, i64 0 }, ptr %a226 %t227 = call i32 @finch_str_eq(ptr %a225, ptr %a226) %t228 = icmp ne i32 %t227, 0 - br i1 %t228, label %then5961, label %endif5963 -then5961: + br i1 %t228, label %then6204, label %endif6206 +then6204: %t229 = load ptr, ptr %a1 %t230 = load %S.ast.Node, ptr %a2 %t231 = call %S.gen.Val @finch.gen.orElse(ptr %t229, %S.ast.Node %t230, i1 false) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t231 -endif5963: +endif6206: %t232 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t232, ptr %a233 - store { ptr, i64, i64 } { ptr @.str.3843, i64 5, i64 0 }, ptr %a234 + store { ptr, i64, i64 } { ptr @.str.3971, i64 5, i64 0 }, ptr %a234 %t235 = call i32 @finch_str_eq(ptr %a233, ptr %a234) %t236 = icmp ne i32 %t235, 0 - br i1 %t236, label %then5964, label %endif5966 -then5964: + br i1 %t236, label %then6207, label %endif6209 +then6207: %t237 = load ptr, ptr %a1 %t238 = load %S.ast.Node, ptr %a2 %t239 = call %S.gen.Val @finch.gen.unary(ptr %t237, %S.ast.Node %t238) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t239 -endif5966: +endif6209: %t240 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t240, ptr %a241 - store { ptr, i64, i64 } { ptr @.str.3844, i64 6, i64 0 }, ptr %a242 + store { ptr, i64, i64 } { ptr @.str.3972, i64 6, i64 0 }, ptr %a242 %t243 = call i32 @finch_str_eq(ptr %a241, ptr %a242) %t244 = icmp ne i32 %t243, 0 - br i1 %t244, label %then5967, label %endif5969 -then5967: + br i1 %t244, label %then6210, label %endif6212 +then6210: %t245 = load ptr, ptr %a1 %t246 = load %S.ast.Node, ptr %a2 %t247 = call %S.gen.Val @finch.gen.binary(ptr %t245, %S.ast.Node %t246) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t247 -endif5969: +endif6212: %t248 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t248, ptr %a249 - store { ptr, i64, i64 } { ptr @.str.3845, i64 4, i64 0 }, ptr %a250 + store { ptr, i64, i64 } { ptr @.str.3973, i64 4, i64 0 }, ptr %a250 %t251 = call i32 @finch_str_eq(ptr %a249, ptr %a250) %t252 = icmp ne i32 %t251, 0 - br i1 %t252, label %then5970, label %endif5972 -then5970: + br i1 %t252, label %then6213, label %endif6215 +then6213: %t253 = load ptr, ptr %a1 %t254 = load %S.ast.Node, ptr %a2 %t255 = call %S.gen.Val @finch.gen.call(ptr %t253, %S.ast.Node %t254) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t255 -endif5972: +endif6215: %t256 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t256, ptr %a257 - store { ptr, i64, i64 } { ptr @.str.3846, i64 6, i64 0 }, ptr %a258 + store { ptr, i64, i64 } { ptr @.str.3974, i64 6, i64 0 }, ptr %a258 %t259 = call i32 @finch_str_eq(ptr %a257, ptr %a258) %t260 = icmp ne i32 %t259, 0 - br i1 %t260, label %then5973, label %endif5975 -then5973: + br i1 %t260, label %then6216, label %endif6218 +then6216: %t261 = load ptr, ptr %a1 %t262 = load %S.ast.Node, ptr %a2 %t263 = call %S.gen.Val @finch.gen.method(ptr %t261, %S.ast.Node %t262) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t263 -endif5975: +endif6218: %t264 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t264, ptr %a265 - store { ptr, i64, i64 } { ptr @.str.3847, i64 5, i64 0 }, ptr %a266 + store { ptr, i64, i64 } { ptr @.str.3975, i64 5, i64 0 }, ptr %a266 %t267 = call i32 @finch_str_eq(ptr %a265, ptr %a266) %t268 = icmp ne i32 %t267, 0 - br i1 %t268, label %then5976, label %endif5978 -then5976: + br i1 %t268, label %then6219, label %endif6221 +then6219: %t269 = load ptr, ptr %a1 %t270 = load %S.ast.Node, ptr %a2 - %t271 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3848, i64 4, i64 0 }) + %t271 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3976, i64 4, i64 0 }) %t272 = call %S.gen.Val @finch.gen.arrayLit(ptr %t269, %S.ast.Node %t270, %S.ast.Type %t271) store %S.ast.Type %t271, ptr %a273 call void @finch.drop.S_ast_Type(ptr %a273) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t272 -endif5978: +endif6221: %t274 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t274, ptr %a275 - store { ptr, i64, i64 } { ptr @.str.3849, i64 3, i64 0 }, ptr %a276 + store { ptr, i64, i64 } { ptr @.str.3977, i64 3, i64 0 }, ptr %a276 %t277 = call i32 @finch_str_eq(ptr %a275, ptr %a276) %t278 = icmp ne i32 %t277, 0 - br i1 %t278, label %then5979, label %endif5981 -then5979: + br i1 %t278, label %then6222, label %endif6224 +then6222: %t279 = load ptr, ptr %a1 %t280 = load %S.ast.Node, ptr %a2 - %t281 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3850, i64 4, i64 0 }) + %t281 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3978, i64 4, i64 0 }) %t282 = call %S.gen.Val @finch.gen.mapLit(ptr %t279, %S.ast.Node %t280, %S.ast.Type %t281) store %S.ast.Type %t281, ptr %a283 call void @finch.drop.S_ast_Type(ptr %a283) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t282 -endif5981: +endif6224: %t284 = load ptr, ptr %a1 %t285 = load %S.ast.Node, ptr %a2 %t286 = load { ptr, i64, i64 }, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.3851, i64 19, i64 0 }, ptr %a288 + store { ptr, i64, i64 } { ptr @.str.3979, i64 19, i64 0 }, ptr %a288 store { ptr, i64, i64 } %t286, ptr %a289 call void @finch_str_concat(ptr %a287, ptr %a288, ptr %a289) %t290 = load { ptr, i64, i64 }, ptr %a287 @@ -60869,11 +63320,11 @@ entry: %t5 = load { ptr, i64, i64 }, ptr %t4 %t6 = extractvalue { ptr, i64, i64 } %t5, 1 %t7 = icmp uge i64 0, %t6 - br i1 %t7, label %range5982, label %inrange5983 -range5982: - call void @finch_panic_index(ptr @.str.3852, i64 3270, i64 0, i64 %t6) + br i1 %t7, label %range6225, label %inrange6226 +range6225: + call void @finch_panic_index(ptr @.str.3980, i64 3408, i64 0, i64 %t6) unreachable -inrange5983: +inrange6226: %t8 = extractvalue { ptr, i64, i64 } %t5, 0 %t9 = getelementptr inbounds %S.ast.Node, ptr %t8, i64 0 %t10 = load %S.ast.Node, ptr %t9 @@ -60882,39 +63333,39 @@ inrange5983: %t13 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t14 = load { ptr, i64, i64 }, ptr %t13 store { ptr, i64, i64 } %t14, ptr %a15 - store { ptr, i64, i64 } { ptr @.str.3853, i64 1, i64 0 }, ptr %a16 + store { ptr, i64, i64 } { ptr @.str.3981, i64 1, i64 0 }, ptr %a16 %t17 = call i32 @finch_str_eq(ptr %a15, ptr %a16) %t18 = icmp ne i32 %t17, 0 - br i1 %t18, label %then5984, label %endif5986 -then5984: + br i1 %t18, label %then6227, label %endif6229 +then6227: %t19 = load ptr, ptr %a1 %t20 = load %S.gen.Val, ptr %a12 - %t21 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3854, i64 4, i64 0 }) + %t21 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3982, i64 4, i64 0 }) %t22 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t23 = load { ptr, i64, i64 }, ptr %t22 %t24 = extractvalue { ptr, i64, i64 } %t23, 1 %t25 = icmp uge i64 0, %t24 - br i1 %t25, label %range5987, label %inrange5988 -range5987: - call void @finch_panic_index(ptr @.str.3855, i64 3272, i64 0, i64 %t24) + br i1 %t25, label %range6230, label %inrange6231 +range6230: + call void @finch_panic_index(ptr @.str.3983, i64 3410, i64 0, i64 %t24) unreachable -inrange5988: +inrange6231: %t26 = extractvalue { ptr, i64, i64 } %t23, 0 %t27 = getelementptr inbounds %S.ast.Node, ptr %t26, i64 0 %t28 = load %S.ast.Node, ptr %t27 - %t29 = call %S.gen.Val @finch.gen.coerce(ptr %t19, %S.gen.Val %t20, %S.ast.Type %t21, %S.ast.Node %t28, { ptr, i64, i64 } { ptr @.str.3856, i64 19, i64 0 }) + %t29 = call %S.gen.Val @finch.gen.coerce(ptr %t19, %S.gen.Val %t20, %S.ast.Type %t21, %S.ast.Node %t28, { ptr, i64, i64 } { ptr @.str.3984, i64 19, i64 0 }) store %S.ast.Type %t21, ptr %a30 call void @finch.drop.S_ast_Type(ptr %a30) store %S.gen.Val %t29, ptr %a31 %t32 = load ptr, ptr %a1 %t33 = getelementptr inbounds %S.gen.Val, ptr %a31, i32 0, i32 0 %t34 = load { ptr, i64, i64 }, ptr %t33 - store { ptr, i64, i64 } { ptr @.str.3857, i64 7, i64 0 }, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.3985, i64 7, i64 0 }, ptr %a36 store { ptr, i64, i64 } %t34, ptr %a37 call void @finch_str_concat(ptr %a35, ptr %a36, ptr %a37) %t38 = load { ptr, i64, i64 }, ptr %a35 store { ptr, i64, i64 } %t38, ptr %a40 - store { ptr, i64, i64 } { ptr @.str.3858, i64 6, i64 0 }, ptr %a41 + store { ptr, i64, i64 } { ptr @.str.3986, i64 6, i64 0 }, ptr %a41 call void @finch_str_concat(ptr %a39, ptr %a40, ptr %a41) store { ptr, i64, i64 } %t38, ptr %a42 call void @finch_str_drop(ptr %a42) @@ -60923,32 +63374,32 @@ inrange5988: store { ptr, i64, i64 } %t43, ptr %a45 call void @finch_str_drop(ptr %a45) %t46 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t44, 0 - %t47 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3859, i64 4, i64 0 }) + %t47 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.3987, i64 4, i64 0 }) %t48 = insertvalue %S.gen.Val %t46, %S.ast.Type %t47, 1 call void @finch.drop.S_gen_Val(ptr %a31) call void @finch.drop.S_gen_Val(ptr %a12) ret %S.gen.Val %t48 -endif5986: +endif6229: %t49 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t50 = load { ptr, i64, i64 }, ptr %t49 store { ptr, i64, i64 } %t50, ptr %a51 - store { ptr, i64, i64 } { ptr @.str.3860, i64 1, i64 0 }, ptr %a52 + store { ptr, i64, i64 } { ptr @.str.3988, i64 1, i64 0 }, ptr %a52 %t53 = call i32 @finch_str_eq(ptr %a51, ptr %a52) %t54 = icmp ne i32 %t53, 0 - br i1 %t54, label %then5989, label %endif5991 -then5989: + br i1 %t54, label %then6232, label %endif6234 +then6232: %t55 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 1 %t56 = load %S.ast.Type, ptr %t55 %t57 = call i1 @finch.gen.isInt(%S.ast.Type %t56) %t58 = xor i1 %t57, true - br i1 %t58, label %then5992, label %endif5994 -then5992: + br i1 %t58, label %then6235, label %endif6237 +then6235: %t59 = load ptr, ptr %a1 %t60 = load %S.ast.Node, ptr %a2 %t61 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 1 %t62 = load %S.ast.Type, ptr %t61 %t63 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t62) - store { ptr, i64, i64 } { ptr @.str.3861, i64 45, i64 0 }, ptr %a65 + store { ptr, i64, i64 } { ptr @.str.3989, i64 45, i64 0 }, ptr %a65 store { ptr, i64, i64 } %t63, ptr %a66 call void @finch_str_concat(ptr %a64, ptr %a65, ptr %a66) store { ptr, i64, i64 } %t63, ptr %a67 @@ -60957,21 +63408,21 @@ then5992: call void @finch.gen.fail(ptr %t59, %S.ast.Node %t60, { ptr, i64, i64 } %t68) store { ptr, i64, i64 } %t68, ptr %a69 call void @finch_str_drop(ptr %a69) - br label %endif5994 -endif5994: + br label %endif6237 +endif6237: %t70 = load ptr, ptr %a1 %t71 = load ptr, ptr %a1 %t72 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 1 %t73 = load %S.ast.Type, ptr %t72 %t74 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t71, %S.ast.Type %t73) - store { ptr, i64, i64 } { ptr @.str.3862, i64 4, i64 0 }, ptr %a76 + store { ptr, i64, i64 } { ptr @.str.3990, i64 4, i64 0 }, ptr %a76 store { ptr, i64, i64 } %t74, ptr %a77 call void @finch_str_concat(ptr %a75, ptr %a76, ptr %a77) store { ptr, i64, i64 } %t74, ptr %a78 call void @finch_str_drop(ptr %a78) %t79 = load { ptr, i64, i64 }, ptr %a75 store { ptr, i64, i64 } %t79, ptr %a81 - store { ptr, i64, i64 } { ptr @.str.3863, i64 1, i64 0 }, ptr %a82 + store { ptr, i64, i64 } { ptr @.str.3991, i64 1, i64 0 }, ptr %a82 call void @finch_str_concat(ptr %a80, ptr %a81, ptr %a82) store { ptr, i64, i64 } %t79, ptr %a83 call void @finch_str_drop(ptr %a83) @@ -60985,7 +63436,7 @@ endif5994: call void @finch_str_drop(ptr %a90) %t91 = load { ptr, i64, i64 }, ptr %a87 store { ptr, i64, i64 } %t91, ptr %a93 - store { ptr, i64, i64 } { ptr @.str.3864, i64 4, i64 0 }, ptr %a94 + store { ptr, i64, i64 } { ptr @.str.3992, i64 4, i64 0 }, ptr %a94 call void @finch_str_concat(ptr %a92, ptr %a93, ptr %a94) store { ptr, i64, i64 } %t91, ptr %a95 call void @finch_str_drop(ptr %a95) @@ -61002,19 +63453,19 @@ endif5994: %t105 = insertvalue %S.gen.Val %t99, %S.ast.Type %t104, 1 call void @finch.drop.S_gen_Val(ptr %a12) ret %S.gen.Val %t105 -endif5991: +endif6234: %t106 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 1 %t107 = load %S.ast.Type, ptr %t106 %t108 = call i1 @finch.gen.isUnsigned(%S.ast.Type %t107) - br i1 %t108, label %then5995, label %endif5997 -then5995: + br i1 %t108, label %then6238, label %endif6240 +then6238: %t109 = load ptr, ptr %a1 %t110 = load %S.ast.Node, ptr %a2 %t111 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 1 %t112 = load %S.ast.Type, ptr %t111 %t113 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t112) store { ptr, i64, i64 } %t113, ptr %a115 - store { ptr, i64, i64 } { ptr @.str.3865, i64 34, i64 0 }, ptr %a116 + store { ptr, i64, i64 } { ptr @.str.3993, i64 34, i64 0 }, ptr %a116 call void @finch_str_concat(ptr %a114, ptr %a115, ptr %a116) store { ptr, i64, i64 } %t113, ptr %a117 call void @finch_str_drop(ptr %a117) @@ -61022,32 +63473,32 @@ then5995: call void @finch.gen.fail(ptr %t109, %S.ast.Node %t110, { ptr, i64, i64 } %t118) store { ptr, i64, i64 } %t118, ptr %a119 call void @finch_str_drop(ptr %a119) - br label %endif5997 -endif5997: + br label %endif6240 +endif6240: %t120 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 1 %t121 = load %S.ast.Type, ptr %t120 %t122 = call i1 @finch.gen.isSigned(%S.ast.Type %t121) - br i1 %t122, label %then5998, label %endif6000 -then5998: + br i1 %t122, label %then6241, label %endif6243 +then6241: %t123 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 3 %t124 = load i1, ptr %t123 - br i1 %t124, label %then6001, label %endif6003 -then6001: + br i1 %t124, label %then6244, label %endif6246 +then6244: %t125 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 0 %t126 = load { ptr, i64, i64 }, ptr %t125 store { ptr, i64, i64 } %t126, ptr %a127 - store { ptr, i64, i64 } { ptr @.str.3867, i64 1, i64 0 }, ptr %a129 + store { ptr, i64, i64 } { ptr @.str.3995, i64 1, i64 0 }, ptr %a129 %t130 = call i32 @finch_str_starts(ptr %a127, ptr %a129) %t131 = icmp ne i32 %t130, 0 - br i1 %t131, label %then6004, label %endif6006 -then6004: + br i1 %t131, label %then6247, label %endif6249 +then6247: %t132 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 0 %t133 = load { ptr, i64, i64 }, ptr %t132 store { ptr, i64, i64 } %t133, ptr %a134 %t136 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 0 %t137 = getelementptr inbounds { ptr, i64, i64 }, ptr %t136, i32 0, i32 1 %t138 = load i64, ptr %t137 - call void @finch_str_sub(ptr %a135, ptr %a134, i64 1, i64 %t138, ptr @.str.3868, i64 3287) + call void @finch_str_sub(ptr %a135, ptr %a134, i64 1, i64 %t138, ptr @.str.3996, i64 3425) %t139 = load { ptr, i64, i64 }, ptr %a135 %t140 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t139, 0 %t141 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 1 @@ -61059,10 +63510,10 @@ then6004: %t147 = insertvalue %S.gen.Val %t146, i1 true, 3 call void @finch.drop.S_gen_Val(ptr %a12) ret %S.gen.Val %t147 -endif6006: +endif6249: %t148 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 0 %t149 = load { ptr, i64, i64 }, ptr %t148 - store { ptr, i64, i64 } { ptr @.str.3869, i64 1, i64 0 }, ptr %a151 + store { ptr, i64, i64 } { ptr @.str.3997, i64 1, i64 0 }, ptr %a151 store { ptr, i64, i64 } %t149, ptr %a152 call void @finch_str_concat(ptr %a150, ptr %a151, ptr %a152) %t153 = load { ptr, i64, i64 }, ptr %a150 @@ -61076,20 +63527,20 @@ endif6006: %t161 = insertvalue %S.gen.Val %t160, i1 true, 3 call void @finch.drop.S_gen_Val(ptr %a12) ret %S.gen.Val %t161 -endif6003: +endif6246: %t162 = load ptr, ptr %a1 %t163 = load ptr, ptr %a1 %t164 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 1 %t165 = load %S.ast.Type, ptr %t164 %t166 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t163, %S.ast.Type %t165) - store { ptr, i64, i64 } { ptr @.str.3870, i64 4, i64 0 }, ptr %a168 + store { ptr, i64, i64 } { ptr @.str.3998, i64 4, i64 0 }, ptr %a168 store { ptr, i64, i64 } %t166, ptr %a169 call void @finch_str_concat(ptr %a167, ptr %a168, ptr %a169) store { ptr, i64, i64 } %t166, ptr %a170 call void @finch_str_drop(ptr %a170) %t171 = load { ptr, i64, i64 }, ptr %a167 store { ptr, i64, i64 } %t171, ptr %a173 - store { ptr, i64, i64 } { ptr @.str.3871, i64 4, i64 0 }, ptr %a174 + store { ptr, i64, i64 } { ptr @.str.3999, i64 4, i64 0 }, ptr %a174 call void @finch_str_concat(ptr %a172, ptr %a173, ptr %a174) store { ptr, i64, i64 } %t171, ptr %a175 call void @finch_str_drop(ptr %a175) @@ -61114,25 +63565,25 @@ endif6003: %t192 = insertvalue %S.gen.Val %t186, %S.ast.Type %t191, 1 call void @finch.drop.S_gen_Val(ptr %a12) ret %S.gen.Val %t192 -endif6000: +endif6243: %t193 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 1 %t194 = load %S.ast.Type, ptr %t193 %t195 = call i1 @finch.gen.isFloat(%S.ast.Type %t194) - br i1 %t195, label %then6007, label %endif6009 -then6007: + br i1 %t195, label %then6250, label %endif6252 +then6250: %t196 = load ptr, ptr %a1 %t197 = load ptr, ptr %a1 %t198 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 1 %t199 = load %S.ast.Type, ptr %t198 %t200 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t197, %S.ast.Type %t199) - store { ptr, i64, i64 } { ptr @.str.3872, i64 5, i64 0 }, ptr %a202 + store { ptr, i64, i64 } { ptr @.str.4000, i64 5, i64 0 }, ptr %a202 store { ptr, i64, i64 } %t200, ptr %a203 call void @finch_str_concat(ptr %a201, ptr %a202, ptr %a203) store { ptr, i64, i64 } %t200, ptr %a204 call void @finch_str_drop(ptr %a204) %t205 = load { ptr, i64, i64 }, ptr %a201 store { ptr, i64, i64 } %t205, ptr %a207 - store { ptr, i64, i64 } { ptr @.str.3873, i64 1, i64 0 }, ptr %a208 + store { ptr, i64, i64 } { ptr @.str.4001, i64 1, i64 0 }, ptr %a208 call void @finch_str_concat(ptr %a206, ptr %a207, ptr %a208) store { ptr, i64, i64 } %t205, ptr %a209 call void @finch_str_drop(ptr %a209) @@ -61157,13 +63608,13 @@ then6007: %t226 = insertvalue %S.gen.Val %t220, %S.ast.Type %t225, 1 call void @finch.drop.S_gen_Val(ptr %a12) ret %S.gen.Val %t226 -endif6009: +endif6252: %t227 = load ptr, ptr %a1 %t228 = load %S.ast.Node, ptr %a2 %t229 = getelementptr inbounds %S.gen.Val, ptr %a12, i32 0, i32 1 %t230 = load %S.ast.Type, ptr %t229 %t231 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t230) - store { ptr, i64, i64 } { ptr @.str.3874, i64 26, i64 0 }, ptr %a233 + store { ptr, i64, i64 } { ptr @.str.4002, i64 26, i64 0 }, ptr %a233 store { ptr, i64, i64 } %t231, ptr %a234 call void @finch_str_concat(ptr %a232, ptr %a233, ptr %a234) store { ptr, i64, i64 } %t231, ptr %a235 @@ -61263,12 +63714,12 @@ entry: store %S.gen.Val %p3, ptr %a4 store %S.ast.Node %p4, ptr %a5 %t6 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.3875, i64 11, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.4003, i64 11, i64 0 }, ptr %a8 store { ptr, i64, i64 } %t6, ptr %a9 call void @finch_str_concat(ptr %a7, ptr %a8, ptr %a9) %t10 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t10, ptr %a12 - store { ptr, i64, i64 } { ptr @.str.3876, i64 5, i64 0 }, ptr %a13 + store { ptr, i64, i64 } { ptr @.str.4004, i64 5, i64 0 }, ptr %a13 call void @finch_str_concat(ptr %a11, ptr %a12, ptr %a13) store { ptr, i64, i64 } %t10, ptr %a14 call void @finch_str_drop(ptr %a14) @@ -61291,11 +63742,11 @@ entry: %t29 = load %S.ast.Type, ptr %t28 %t30 = call i1 @finch.ast.same(%S.ast.Type %t27, %S.ast.Type %t29) %t31 = xor i1 %t30, true - br i1 %t31, label %then6010, label %endif6012 -then6010: + br i1 %t31, label %then6253, label %endif6255 +then6253: %t32 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t32, ptr %a34 - store { ptr, i64, i64 } { ptr @.str.3877, i64 5, i64 0 }, ptr %a35 + store { ptr, i64, i64 } { ptr @.str.4005, i64 5, i64 0 }, ptr %a35 call void @finch_str_concat(ptr %a33, ptr %a34, ptr %a35) %t36 = load { ptr, i64, i64 }, ptr %a33 %t37 = getelementptr inbounds %S.gen.Val, ptr %a4, i32 0, i32 1 @@ -61313,266 +63764,266 @@ then6010: store { ptr, i64, i64 } %t45, ptr %a25 store { ptr, i64, i64 } %t46, ptr %a47 call void @finch_str_drop(ptr %a47) - br label %endif6012 -endif6012: + br label %endif6255 +endif6255: %t48 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t48, ptr %a49 - store { ptr, i64, i64 } { ptr @.str.3878, i64 1, i64 0 }, ptr %a50 + store { ptr, i64, i64 } { ptr @.str.4006, i64 1, i64 0 }, ptr %a50 %t51 = call i32 @finch_str_eq(ptr %a49, ptr %a50) %t52 = icmp ne i32 %t51, 0 - br label %logic.from6013 -logic.from6013: - br i1 %t52, label %logic.rhs6014, label %logic.end6015 -logic.rhs6014: + br label %logic.from6256 +logic.from6256: + br i1 %t52, label %logic.rhs6257, label %logic.end6258 +logic.rhs6257: %t53 = getelementptr inbounds %S.gen.Val, ptr %a3, i32 0, i32 1 %t54 = getelementptr inbounds %S.ast.Type, ptr %t53, i32 0, i32 0 %t55 = load { ptr, i64, i64 }, ptr %t54 store { ptr, i64, i64 } %t55, ptr %a56 - store { ptr, i64, i64 } { ptr @.str.3879, i64 3, i64 0 }, ptr %a57 + store { ptr, i64, i64 } { ptr @.str.4007, i64 3, i64 0 }, ptr %a57 %t58 = call i32 @finch_str_eq(ptr %a56, ptr %a57) %t59 = icmp ne i32 %t58, 0 - br label %logic.from6016 -logic.from6016: - br i1 %t59, label %logic.end6018, label %logic.rhs6017 -logic.rhs6017: + br label %logic.from6259 +logic.from6259: + br i1 %t59, label %logic.end6261, label %logic.rhs6260 +logic.rhs6260: %t60 = getelementptr inbounds %S.gen.Val, ptr %a4, i32 0, i32 1 %t61 = getelementptr inbounds %S.ast.Type, ptr %t60, i32 0, i32 0 %t62 = load { ptr, i64, i64 }, ptr %t61 store { ptr, i64, i64 } %t62, ptr %a63 - store { ptr, i64, i64 } { ptr @.str.3880, i64 3, i64 0 }, ptr %a64 + store { ptr, i64, i64 } { ptr @.str.4008, i64 3, i64 0 }, ptr %a64 %t65 = call i32 @finch_str_eq(ptr %a63, ptr %a64) %t66 = icmp ne i32 %t65, 0 - br label %logic.rend6019 -logic.rend6019: - br label %logic.end6018 -logic.end6018: - %t67 = phi i1 [ true, %logic.from6016 ], [ %t66, %logic.rend6019 ] - br label %logic.rend6020 -logic.rend6020: - br label %logic.end6015 -logic.end6015: - %t68 = phi i1 [ false, %logic.from6013 ], [ %t67, %logic.rend6020 ] - br i1 %t68, label %then6021, label %endif6023 -then6021: + br label %logic.rend6262 +logic.rend6262: + br label %logic.end6261 +logic.end6261: + %t67 = phi i1 [ true, %logic.from6259 ], [ %t66, %logic.rend6262 ] + br label %logic.rend6263 +logic.rend6263: + br label %logic.end6258 +logic.end6258: + %t68 = phi i1 [ false, %logic.from6256 ], [ %t67, %logic.rend6263 ] + br i1 %t68, label %then6264, label %endif6266 +then6264: %t69 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t69, ptr %a71 - store { ptr, i64, i64 } { ptr @.str.3881, i64 48, i64 0 }, ptr %a72 + store { ptr, i64, i64 } { ptr @.str.4009, i64 48, i64 0 }, ptr %a72 call void @finch_str_concat(ptr %a70, ptr %a71, ptr %a72) %t73 = load { ptr, i64, i64 }, ptr %a70 %t74 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t73, ptr %a25 store { ptr, i64, i64 } %t74, ptr %a75 call void @finch_str_drop(ptr %a75) - br label %endif6023 -endif6023: + br label %endif6266 +endif6266: %t76 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t76, ptr %a77 - store { ptr, i64, i64 } { ptr @.str.3882, i64 1, i64 0 }, ptr %a78 + store { ptr, i64, i64 } { ptr @.str.4010, i64 1, i64 0 }, ptr %a78 %t79 = call i32 @finch_str_eq(ptr %a77, ptr %a78) %t80 = icmp ne i32 %t79, 0 - br label %logic.from6024 -logic.from6024: - br i1 %t80, label %logic.end6026, label %logic.rhs6025 -logic.rhs6025: + br label %logic.from6267 +logic.from6267: + br i1 %t80, label %logic.end6269, label %logic.rhs6268 +logic.rhs6268: %t81 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t81, ptr %a82 - store { ptr, i64, i64 } { ptr @.str.3883, i64 1, i64 0 }, ptr %a83 + store { ptr, i64, i64 } { ptr @.str.4011, i64 1, i64 0 }, ptr %a83 %t84 = call i32 @finch_str_eq(ptr %a82, ptr %a83) %t85 = icmp ne i32 %t84, 0 - br label %logic.rend6027 -logic.rend6027: - br label %logic.end6026 -logic.end6026: - %t86 = phi i1 [ true, %logic.from6024 ], [ %t85, %logic.rend6027 ] - br label %logic.from6028 -logic.from6028: - br i1 %t86, label %logic.rhs6029, label %logic.end6030 -logic.rhs6029: + br label %logic.rend6270 +logic.rend6270: + br label %logic.end6269 +logic.end6269: + %t86 = phi i1 [ true, %logic.from6267 ], [ %t85, %logic.rend6270 ] + br label %logic.from6271 +logic.from6271: + br i1 %t86, label %logic.rhs6272, label %logic.end6273 +logic.rhs6272: %t87 = getelementptr inbounds %S.gen.Val, ptr %a3, i32 0, i32 1 %t88 = getelementptr inbounds %S.ast.Type, ptr %t87, i32 0, i32 0 %t89 = load { ptr, i64, i64 }, ptr %t88 store { ptr, i64, i64 } %t89, ptr %a90 - store { ptr, i64, i64 } { ptr @.str.3884, i64 4, i64 0 }, ptr %a91 + store { ptr, i64, i64 } { ptr @.str.4012, i64 4, i64 0 }, ptr %a91 %t92 = call i32 @finch_str_eq(ptr %a90, ptr %a91) %t93 = icmp ne i32 %t92, 0 - br label %logic.rend6031 -logic.rend6031: - br label %logic.end6030 -logic.end6030: - %t94 = phi i1 [ false, %logic.from6028 ], [ %t93, %logic.rend6031 ] - br i1 %t94, label %then6032, label %else6033 -then6032: + br label %logic.rend6274 +logic.rend6274: + br label %logic.end6273 +logic.end6273: + %t94 = phi i1 [ false, %logic.from6271 ], [ %t93, %logic.rend6274 ] + br i1 %t94, label %then6275, label %else6276 +then6275: %t95 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t95, ptr %a96 - store { ptr, i64, i64 } { ptr @.str.3885, i64 1, i64 0 }, ptr %a97 + store { ptr, i64, i64 } { ptr @.str.4013, i64 1, i64 0 }, ptr %a97 %t98 = call i32 @finch_str_eq(ptr %a96, ptr %a97) %t99 = icmp ne i32 %t98, 0 - br i1 %t99, label %then6035, label %else6036 -then6035: + br i1 %t99, label %then6278, label %else6279 +then6278: %t100 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t100, ptr %a102 - store { ptr, i64, i64 } { ptr @.str.3886, i64 26, i64 0 }, ptr %a103 + store { ptr, i64, i64 } { ptr @.str.4014, i64 26, i64 0 }, ptr %a103 call void @finch_str_concat(ptr %a101, ptr %a102, ptr %a103) %t104 = load { ptr, i64, i64 }, ptr %a101 %t105 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t104, ptr %a25 store { ptr, i64, i64 } %t105, ptr %a106 call void @finch_str_drop(ptr %a106) - br label %endif6037 -else6036: + br label %endif6280 +else6279: %t107 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t107, ptr %a109 - store { ptr, i64, i64 } { ptr @.str.3887, i64 26, i64 0 }, ptr %a110 + store { ptr, i64, i64 } { ptr @.str.4015, i64 26, i64 0 }, ptr %a110 call void @finch_str_concat(ptr %a108, ptr %a109, ptr %a110) %t111 = load { ptr, i64, i64 }, ptr %a108 %t112 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t111, ptr %a25 store { ptr, i64, i64 } %t112, ptr %a113 call void @finch_str_drop(ptr %a113) - br label %endif6037 -endif6037: - br label %endif6034 -else6033: + br label %endif6280 +endif6280: + br label %endif6277 +else6276: %t114 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t114, ptr %a115 - store { ptr, i64, i64 } { ptr @.str.3888, i64 1, i64 0 }, ptr %a116 + store { ptr, i64, i64 } { ptr @.str.4016, i64 1, i64 0 }, ptr %a116 %t117 = call i32 @finch_str_eq(ptr %a115, ptr %a116) %t118 = icmp ne i32 %t117, 0 - br label %logic.from6038 -logic.from6038: - br i1 %t118, label %logic.end6040, label %logic.rhs6039 -logic.rhs6039: + br label %logic.from6281 +logic.from6281: + br i1 %t118, label %logic.end6283, label %logic.rhs6282 +logic.rhs6282: %t119 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t119, ptr %a120 - store { ptr, i64, i64 } { ptr @.str.3889, i64 1, i64 0 }, ptr %a121 + store { ptr, i64, i64 } { ptr @.str.4017, i64 1, i64 0 }, ptr %a121 %t122 = call i32 @finch_str_eq(ptr %a120, ptr %a121) %t123 = icmp ne i32 %t122, 0 - br label %logic.rend6041 -logic.rend6041: - br label %logic.end6040 -logic.end6040: - %t124 = phi i1 [ true, %logic.from6038 ], [ %t123, %logic.rend6041 ] - br label %logic.from6042 -logic.from6042: - br i1 %t124, label %logic.end6044, label %logic.rhs6043 -logic.rhs6043: + br label %logic.rend6284 +logic.rend6284: + br label %logic.end6283 +logic.end6283: + %t124 = phi i1 [ true, %logic.from6281 ], [ %t123, %logic.rend6284 ] + br label %logic.from6285 +logic.from6285: + br i1 %t124, label %logic.end6287, label %logic.rhs6286 +logic.rhs6286: %t125 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t125, ptr %a126 - store { ptr, i64, i64 } { ptr @.str.3890, i64 1, i64 0 }, ptr %a127 + store { ptr, i64, i64 } { ptr @.str.4018, i64 1, i64 0 }, ptr %a127 %t128 = call i32 @finch_str_eq(ptr %a126, ptr %a127) %t129 = icmp ne i32 %t128, 0 - br label %logic.rend6045 -logic.rend6045: - br label %logic.end6044 -logic.end6044: - %t130 = phi i1 [ true, %logic.from6042 ], [ %t129, %logic.rend6045 ] - br label %logic.from6046 -logic.from6046: - br i1 %t130, label %logic.end6048, label %logic.rhs6047 -logic.rhs6047: + br label %logic.rend6288 +logic.rend6288: + br label %logic.end6287 +logic.end6287: + %t130 = phi i1 [ true, %logic.from6285 ], [ %t129, %logic.rend6288 ] + br label %logic.from6289 +logic.from6289: + br i1 %t130, label %logic.end6291, label %logic.rhs6290 +logic.rhs6290: %t131 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t131, ptr %a132 - store { ptr, i64, i64 } { ptr @.str.3891, i64 2, i64 0 }, ptr %a133 + store { ptr, i64, i64 } { ptr @.str.4019, i64 2, i64 0 }, ptr %a133 %t134 = call i32 @finch_str_eq(ptr %a132, ptr %a133) %t135 = icmp ne i32 %t134, 0 - br label %logic.rend6049 -logic.rend6049: - br label %logic.end6048 -logic.end6048: - %t136 = phi i1 [ true, %logic.from6046 ], [ %t135, %logic.rend6049 ] - br label %logic.from6050 -logic.from6050: - br i1 %t136, label %logic.end6052, label %logic.rhs6051 -logic.rhs6051: + br label %logic.rend6292 +logic.rend6292: + br label %logic.end6291 +logic.end6291: + %t136 = phi i1 [ true, %logic.from6289 ], [ %t135, %logic.rend6292 ] + br label %logic.from6293 +logic.from6293: + br i1 %t136, label %logic.end6295, label %logic.rhs6294 +logic.rhs6294: %t137 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t137, ptr %a138 - store { ptr, i64, i64 } { ptr @.str.3892, i64 2, i64 0 }, ptr %a139 + store { ptr, i64, i64 } { ptr @.str.4020, i64 2, i64 0 }, ptr %a139 %t140 = call i32 @finch_str_eq(ptr %a138, ptr %a139) %t141 = icmp ne i32 %t140, 0 - br label %logic.rend6053 -logic.rend6053: - br label %logic.end6052 -logic.end6052: - %t142 = phi i1 [ true, %logic.from6050 ], [ %t141, %logic.rend6053 ] - br i1 %t142, label %then6054, label %endif6056 -then6054: + br label %logic.rend6296 +logic.rend6296: + br label %logic.end6295 +logic.end6295: + %t142 = phi i1 [ true, %logic.from6293 ], [ %t141, %logic.rend6296 ] + br i1 %t142, label %then6297, label %endif6299 +then6297: %t143 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t143, ptr %a145 - store { ptr, i64, i64 } { ptr @.str.3893, i64 43, i64 0 }, ptr %a146 + store { ptr, i64, i64 } { ptr @.str.4021, i64 43, i64 0 }, ptr %a146 call void @finch_str_concat(ptr %a144, ptr %a145, ptr %a146) %t147 = load { ptr, i64, i64 }, ptr %a144 %t148 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t147, ptr %a25 store { ptr, i64, i64 } %t148, ptr %a149 call void @finch_str_drop(ptr %a149) - br label %endif6056 -endif6056: - br label %endif6034 -endif6034: + br label %endif6299 +endif6299: + br label %endif6277 +endif6277: %t150 = getelementptr inbounds %S.gen.Val, ptr %a3, i32 0, i32 1 %t151 = getelementptr inbounds %S.ast.Type, ptr %t150, i32 0, i32 0 %t152 = load { ptr, i64, i64 }, ptr %t151 store { ptr, i64, i64 } %t152, ptr %a153 - store { ptr, i64, i64 } { ptr @.str.3894, i64 6, i64 0 }, ptr %a154 + store { ptr, i64, i64 } { ptr @.str.4022, i64 6, i64 0 }, ptr %a154 %t155 = call i32 @finch_str_eq(ptr %a153, ptr %a154) %t156 = icmp ne i32 %t155, 0 - br label %logic.from6057 -logic.from6057: - br i1 %t156, label %logic.end6059, label %logic.rhs6058 -logic.rhs6058: + br label %logic.from6300 +logic.from6300: + br i1 %t156, label %logic.end6302, label %logic.rhs6301 +logic.rhs6301: %t157 = getelementptr inbounds %S.gen.Val, ptr %a3, i32 0, i32 1 %t158 = getelementptr inbounds %S.ast.Type, ptr %t157, i32 0, i32 0 %t159 = load { ptr, i64, i64 }, ptr %t158 store { ptr, i64, i64 } %t159, ptr %a160 - store { ptr, i64, i64 } { ptr @.str.3895, i64 5, i64 0 }, ptr %a161 + store { ptr, i64, i64 } { ptr @.str.4023, i64 5, i64 0 }, ptr %a161 %t162 = call i32 @finch_str_eq(ptr %a160, ptr %a161) %t163 = icmp ne i32 %t162, 0 - br label %logic.rend6060 -logic.rend6060: - br label %logic.end6059 -logic.end6059: - %t164 = phi i1 [ true, %logic.from6057 ], [ %t163, %logic.rend6060 ] - br label %logic.from6061 -logic.from6061: - br i1 %t164, label %logic.rhs6062, label %logic.end6063 -logic.rhs6062: + br label %logic.rend6303 +logic.rend6303: + br label %logic.end6302 +logic.end6302: + %t164 = phi i1 [ true, %logic.from6300 ], [ %t163, %logic.rend6303 ] + br label %logic.from6304 +logic.from6304: + br i1 %t164, label %logic.rhs6305, label %logic.end6306 +logic.rhs6305: %t165 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t165, ptr %a166 - store { ptr, i64, i64 } { ptr @.str.3896, i64 2, i64 0 }, ptr %a167 + store { ptr, i64, i64 } { ptr @.str.4024, i64 2, i64 0 }, ptr %a167 %t168 = call i32 @finch_str_eq(ptr %a166, ptr %a167) %t169 = icmp ne i32 %t168, 0 - br label %logic.from6064 -logic.from6064: - br i1 %t169, label %logic.end6066, label %logic.rhs6065 -logic.rhs6065: + br label %logic.from6307 +logic.from6307: + br i1 %t169, label %logic.end6309, label %logic.rhs6308 +logic.rhs6308: %t170 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t170, ptr %a171 - store { ptr, i64, i64 } { ptr @.str.3897, i64 2, i64 0 }, ptr %a172 + store { ptr, i64, i64 } { ptr @.str.4025, i64 2, i64 0 }, ptr %a172 %t173 = call i32 @finch_str_eq(ptr %a171, ptr %a172) %t174 = icmp ne i32 %t173, 0 - br label %logic.rend6067 -logic.rend6067: - br label %logic.end6066 -logic.end6066: - %t175 = phi i1 [ true, %logic.from6064 ], [ %t174, %logic.rend6067 ] - br label %logic.rend6068 -logic.rend6068: - br label %logic.end6063 -logic.end6063: - %t176 = phi i1 [ false, %logic.from6061 ], [ %t175, %logic.rend6068 ] - br i1 %t176, label %then6069, label %endif6071 -then6069: + br label %logic.rend6310 +logic.rend6310: + br label %logic.end6309 +logic.end6309: + %t175 = phi i1 [ true, %logic.from6307 ], [ %t174, %logic.rend6310 ] + br label %logic.rend6311 +logic.rend6311: + br label %logic.end6306 +logic.end6306: + %t176 = phi i1 [ false, %logic.from6304 ], [ %t175, %logic.rend6311 ] + br i1 %t176, label %then6312, label %endif6314 +then6312: %t177 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t177, ptr %a179 - store { ptr, i64, i64 } { ptr @.str.3898, i64 31, i64 0 }, ptr %a180 + store { ptr, i64, i64 } { ptr @.str.4026, i64 31, i64 0 }, ptr %a180 call void @finch_str_concat(ptr %a178, ptr %a179, ptr %a180) %t181 = load { ptr, i64, i64 }, ptr %a178 %t182 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t181, ptr %a25 store { ptr, i64, i64 } %t182, ptr %a183 call void @finch_str_drop(ptr %a183) - br label %endif6071 -endif6071: + br label %endif6314 +endif6314: %t184 = load ptr, ptr %a1 %t185 = load %S.ast.Node, ptr %a5 %t186 = load { ptr, i64, i64 }, ptr %a25 @@ -61619,132 +64070,132 @@ entry: store ptr %p2, ptr %a3 %t4 = load ptr, ptr %a2 %t5 = icmp eq ptr %t4, null - br i1 %t5, label %panic6072, label %ok6073 -panic6072: - call void @finch_panic(ptr @.str.3899, i64 3324, ptr @.str.3900) + br i1 %t5, label %panic6315, label %ok6316 +panic6315: + call void @finch_panic(ptr @.str.4027, i64 3462, ptr @.str.4028) unreachable -ok6073: +ok6316: %t6 = getelementptr inbounds %S.gen.Val, ptr %t4, i32 0, i32 1 %t7 = load %S.ast.Type, ptr %t6 %t8 = load ptr, ptr %a3 %t9 = icmp eq ptr %t8, null - br i1 %t9, label %panic6074, label %ok6075 -panic6074: - call void @finch_panic(ptr @.str.3901, i64 3324, ptr @.str.3902) + br i1 %t9, label %panic6317, label %ok6318 +panic6317: + call void @finch_panic(ptr @.str.4029, i64 3462, ptr @.str.4030) unreachable -ok6075: +ok6318: %t10 = getelementptr inbounds %S.gen.Val, ptr %t8, i32 0, i32 1 %t11 = load %S.ast.Type, ptr %t10 %t12 = call i1 @finch.ast.same(%S.ast.Type %t7, %S.ast.Type %t11) - br i1 %t12, label %then6076, label %endif6078 -then6076: + br i1 %t12, label %then6319, label %endif6321 +then6319: ret i1 true -endif6078: +endif6321: %t13 = load ptr, ptr %a2 %t14 = icmp eq ptr %t13, null - br i1 %t14, label %panic6079, label %ok6080 -panic6079: - call void @finch_panic(ptr @.str.3903, i64 3327, ptr @.str.3904) + br i1 %t14, label %panic6322, label %ok6323 +panic6322: + call void @finch_panic(ptr @.str.4031, i64 3465, ptr @.str.4032) unreachable -ok6080: +ok6323: %t15 = getelementptr inbounds %S.gen.Val, ptr %t13, i32 0, i32 1 %t16 = load %S.ast.Type, ptr %t15 %t17 = call i1 @finch.gen.isInt(%S.ast.Type %t16) - br label %logic.from6081 -logic.from6081: - br i1 %t17, label %logic.rhs6082, label %logic.end6083 -logic.rhs6082: + br label %logic.from6324 +logic.from6324: + br i1 %t17, label %logic.rhs6325, label %logic.end6326 +logic.rhs6325: %t18 = load ptr, ptr %a3 %t19 = icmp eq ptr %t18, null - br i1 %t19, label %panic6084, label %ok6085 -panic6084: - call void @finch_panic(ptr @.str.3905, i64 3327, ptr @.str.3906) + br i1 %t19, label %panic6327, label %ok6328 +panic6327: + call void @finch_panic(ptr @.str.4033, i64 3465, ptr @.str.4034) unreachable -ok6085: +ok6328: %t20 = getelementptr inbounds %S.gen.Val, ptr %t18, i32 0, i32 1 %t21 = load %S.ast.Type, ptr %t20 %t22 = call i1 @finch.gen.isInt(%S.ast.Type %t21) - br label %logic.rend6086 -logic.rend6086: - br label %logic.end6083 -logic.end6083: - %t23 = phi i1 [ false, %logic.from6081 ], [ %t22, %logic.rend6086 ] - br i1 %t23, label %then6087, label %endif6089 -then6087: + br label %logic.rend6329 +logic.rend6329: + br label %logic.end6326 +logic.end6326: + %t23 = phi i1 [ false, %logic.from6324 ], [ %t22, %logic.rend6329 ] + br i1 %t23, label %then6330, label %endif6332 +then6330: %t24 = load ptr, ptr %a2 %t25 = icmp eq ptr %t24, null - br i1 %t25, label %panic6090, label %ok6091 -panic6090: - call void @finch_panic(ptr @.str.3907, i64 3330, ptr @.str.3908) + br i1 %t25, label %panic6333, label %ok6334 +panic6333: + call void @finch_panic(ptr @.str.4035, i64 3468, ptr @.str.4036) unreachable -ok6091: +ok6334: %t26 = getelementptr inbounds %S.gen.Val, ptr %t24, i32 0, i32 3 %t27 = load i1, ptr %t26 - br label %logic.from6092 -logic.from6092: - br i1 %t27, label %logic.rhs6093, label %logic.end6094 -logic.rhs6093: + br label %logic.from6335 +logic.from6335: + br i1 %t27, label %logic.rhs6336, label %logic.end6337 +logic.rhs6336: %t28 = load ptr, ptr %a3 %t29 = icmp eq ptr %t28, null - br i1 %t29, label %panic6095, label %ok6096 -panic6095: - call void @finch_panic(ptr @.str.3909, i64 3330, ptr @.str.3910) + br i1 %t29, label %panic6338, label %ok6339 +panic6338: + call void @finch_panic(ptr @.str.4037, i64 3468, ptr @.str.4038) unreachable -ok6096: +ok6339: %t30 = getelementptr inbounds %S.gen.Val, ptr %t28, i32 0, i32 3 %t31 = load i1, ptr %t30 %t32 = xor i1 %t31, true - br label %logic.rend6097 -logic.rend6097: - br label %logic.end6094 -logic.end6094: - %t33 = phi i1 [ false, %logic.from6092 ], [ %t32, %logic.rend6097 ] - br label %logic.from6098 -logic.from6098: - br i1 %t33, label %logic.rhs6099, label %logic.end6100 -logic.rhs6099: + br label %logic.rend6340 +logic.rend6340: + br label %logic.end6337 +logic.end6337: + %t33 = phi i1 [ false, %logic.from6335 ], [ %t32, %logic.rend6340 ] + br label %logic.from6341 +logic.from6341: + br i1 %t33, label %logic.rhs6342, label %logic.end6343 +logic.rhs6342: %t34 = load ptr, ptr %a2 %t35 = icmp eq ptr %t34, null - br i1 %t35, label %panic6101, label %ok6102 -panic6101: - call void @finch_panic(ptr @.str.3911, i64 3330, ptr @.str.3912) + br i1 %t35, label %panic6344, label %ok6345 +panic6344: + call void @finch_panic(ptr @.str.4039, i64 3468, ptr @.str.4040) unreachable -ok6102: +ok6345: %t36 = getelementptr inbounds %S.gen.Val, ptr %t34, i32 0, i32 0 %t37 = load { ptr, i64, i64 }, ptr %t36 %t38 = load ptr, ptr %a2 %t39 = icmp eq ptr %t38, null - br i1 %t39, label %panic6103, label %ok6104 -panic6103: - call void @finch_panic(ptr @.str.3913, i64 3330, ptr @.str.3914) + br i1 %t39, label %panic6346, label %ok6347 +panic6346: + call void @finch_panic(ptr @.str.4041, i64 3468, ptr @.str.4042) unreachable -ok6104: +ok6347: %t40 = getelementptr inbounds %S.gen.Val, ptr %t38, i32 0, i32 1 %t41 = load %S.ast.Type, ptr %t40 %t42 = load ptr, ptr %a3 %t43 = icmp eq ptr %t42, null - br i1 %t43, label %panic6105, label %ok6106 -panic6105: - call void @finch_panic(ptr @.str.3915, i64 3330, ptr @.str.3916) + br i1 %t43, label %panic6348, label %ok6349 +panic6348: + call void @finch_panic(ptr @.str.4043, i64 3468, ptr @.str.4044) unreachable -ok6106: +ok6349: %t44 = getelementptr inbounds %S.gen.Val, ptr %t42, i32 0, i32 1 %t45 = load %S.ast.Type, ptr %t44 %t46 = call i1 @finch.gen.fits({ ptr, i64, i64 } %t37, %S.ast.Type %t41, %S.ast.Type %t45) - br label %logic.rend6107 -logic.rend6107: - br label %logic.end6100 -logic.end6100: - %t47 = phi i1 [ false, %logic.from6098 ], [ %t46, %logic.rend6107 ] - br i1 %t47, label %then6108, label %endif6110 -then6108: + br label %logic.rend6350 +logic.rend6350: + br label %logic.end6343 +logic.end6343: + %t47 = phi i1 [ false, %logic.from6341 ], [ %t46, %logic.rend6350 ] + br i1 %t47, label %then6351, label %endif6353 +then6351: %t48 = load ptr, ptr %a2 %t49 = icmp eq ptr %t48, null - br i1 %t49, label %panic6111, label %ok6112 -panic6111: - call void @finch_panic(ptr @.str.3917, i64 3331, ptr @.str.3918) + br i1 %t49, label %panic6354, label %ok6355 +panic6354: + call void @finch_panic(ptr @.str.4045, i64 3469, ptr @.str.4046) unreachable -ok6112: +ok6355: %t50 = getelementptr inbounds %S.gen.Val, ptr %t48, i32 0, i32 0 %t51 = load { ptr, i64, i64 }, ptr %t50 store { ptr, i64, i64 } %t51, ptr %a52 @@ -61753,11 +64204,11 @@ ok6112: %t55 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t54, 0 %t56 = load ptr, ptr %a3 %t57 = icmp eq ptr %t56, null - br i1 %t57, label %panic6113, label %ok6114 -panic6113: - call void @finch_panic(ptr @.str.3919, i64 3331, ptr @.str.3920) + br i1 %t57, label %panic6356, label %ok6357 +panic6356: + call void @finch_panic(ptr @.str.4047, i64 3469, ptr @.str.4048) unreachable -ok6114: +ok6357: %t58 = getelementptr inbounds %S.gen.Val, ptr %t56, i32 0, i32 1 %t59 = load %S.ast.Type, ptr %t58 store %S.ast.Type %t59, ptr %a60 @@ -61767,91 +64218,91 @@ ok6114: %t64 = insertvalue %S.gen.Val %t63, i1 true, 3 %t65 = load ptr, ptr %a2 %t66 = icmp eq ptr %t65, null - br i1 %t66, label %panic6115, label %ok6116 -panic6115: - call void @finch_panic(ptr @.str.3921, i64 3331, ptr @.str.3922) + br i1 %t66, label %panic6358, label %ok6359 +panic6358: + call void @finch_panic(ptr @.str.4049, i64 3469, ptr @.str.4050) unreachable -ok6116: +ok6359: %t67 = load %S.gen.Val, ptr %t65 store %S.gen.Val %t64, ptr %t65 store %S.gen.Val %t67, ptr %a68 call void @finch.drop.S_gen_Val(ptr %a68) ret i1 true -endif6110: +endif6353: %t69 = load ptr, ptr %a3 %t70 = icmp eq ptr %t69, null - br i1 %t70, label %panic6117, label %ok6118 -panic6117: - call void @finch_panic(ptr @.str.3923, i64 3334, ptr @.str.3924) + br i1 %t70, label %panic6360, label %ok6361 +panic6360: + call void @finch_panic(ptr @.str.4051, i64 3472, ptr @.str.4052) unreachable -ok6118: +ok6361: %t71 = getelementptr inbounds %S.gen.Val, ptr %t69, i32 0, i32 3 %t72 = load i1, ptr %t71 - br label %logic.from6119 -logic.from6119: - br i1 %t72, label %logic.rhs6120, label %logic.end6121 -logic.rhs6120: + br label %logic.from6362 +logic.from6362: + br i1 %t72, label %logic.rhs6363, label %logic.end6364 +logic.rhs6363: %t73 = load ptr, ptr %a2 %t74 = icmp eq ptr %t73, null - br i1 %t74, label %panic6122, label %ok6123 -panic6122: - call void @finch_panic(ptr @.str.3925, i64 3334, ptr @.str.3926) + br i1 %t74, label %panic6365, label %ok6366 +panic6365: + call void @finch_panic(ptr @.str.4053, i64 3472, ptr @.str.4054) unreachable -ok6123: +ok6366: %t75 = getelementptr inbounds %S.gen.Val, ptr %t73, i32 0, i32 3 %t76 = load i1, ptr %t75 %t77 = xor i1 %t76, true - br label %logic.rend6124 -logic.rend6124: - br label %logic.end6121 -logic.end6121: - %t78 = phi i1 [ false, %logic.from6119 ], [ %t77, %logic.rend6124 ] - br label %logic.from6125 -logic.from6125: - br i1 %t78, label %logic.rhs6126, label %logic.end6127 -logic.rhs6126: + br label %logic.rend6367 +logic.rend6367: + br label %logic.end6364 +logic.end6364: + %t78 = phi i1 [ false, %logic.from6362 ], [ %t77, %logic.rend6367 ] + br label %logic.from6368 +logic.from6368: + br i1 %t78, label %logic.rhs6369, label %logic.end6370 +logic.rhs6369: %t79 = load ptr, ptr %a3 %t80 = icmp eq ptr %t79, null - br i1 %t80, label %panic6128, label %ok6129 -panic6128: - call void @finch_panic(ptr @.str.3927, i64 3334, ptr @.str.3928) + br i1 %t80, label %panic6371, label %ok6372 +panic6371: + call void @finch_panic(ptr @.str.4055, i64 3472, ptr @.str.4056) unreachable -ok6129: +ok6372: %t81 = getelementptr inbounds %S.gen.Val, ptr %t79, i32 0, i32 0 %t82 = load { ptr, i64, i64 }, ptr %t81 %t83 = load ptr, ptr %a3 %t84 = icmp eq ptr %t83, null - br i1 %t84, label %panic6130, label %ok6131 -panic6130: - call void @finch_panic(ptr @.str.3929, i64 3334, ptr @.str.3930) + br i1 %t84, label %panic6373, label %ok6374 +panic6373: + call void @finch_panic(ptr @.str.4057, i64 3472, ptr @.str.4058) unreachable -ok6131: +ok6374: %t85 = getelementptr inbounds %S.gen.Val, ptr %t83, i32 0, i32 1 %t86 = load %S.ast.Type, ptr %t85 %t87 = load ptr, ptr %a2 %t88 = icmp eq ptr %t87, null - br i1 %t88, label %panic6132, label %ok6133 -panic6132: - call void @finch_panic(ptr @.str.3931, i64 3334, ptr @.str.3932) + br i1 %t88, label %panic6375, label %ok6376 +panic6375: + call void @finch_panic(ptr @.str.4059, i64 3472, ptr @.str.4060) unreachable -ok6133: +ok6376: %t89 = getelementptr inbounds %S.gen.Val, ptr %t87, i32 0, i32 1 %t90 = load %S.ast.Type, ptr %t89 %t91 = call i1 @finch.gen.fits({ ptr, i64, i64 } %t82, %S.ast.Type %t86, %S.ast.Type %t90) - br label %logic.rend6134 -logic.rend6134: - br label %logic.end6127 -logic.end6127: - %t92 = phi i1 [ false, %logic.from6125 ], [ %t91, %logic.rend6134 ] - br i1 %t92, label %then6135, label %endif6137 -then6135: + br label %logic.rend6377 +logic.rend6377: + br label %logic.end6370 +logic.end6370: + %t92 = phi i1 [ false, %logic.from6368 ], [ %t91, %logic.rend6377 ] + br i1 %t92, label %then6378, label %endif6380 +then6378: %t93 = load ptr, ptr %a3 %t94 = icmp eq ptr %t93, null - br i1 %t94, label %panic6138, label %ok6139 -panic6138: - call void @finch_panic(ptr @.str.3933, i64 3335, ptr @.str.3934) + br i1 %t94, label %panic6381, label %ok6382 +panic6381: + call void @finch_panic(ptr @.str.4061, i64 3473, ptr @.str.4062) unreachable -ok6139: +ok6382: %t95 = getelementptr inbounds %S.gen.Val, ptr %t93, i32 0, i32 0 %t96 = load { ptr, i64, i64 }, ptr %t95 store { ptr, i64, i64 } %t96, ptr %a97 @@ -61860,11 +64311,11 @@ ok6139: %t100 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t99, 0 %t101 = load ptr, ptr %a2 %t102 = icmp eq ptr %t101, null - br i1 %t102, label %panic6140, label %ok6141 -panic6140: - call void @finch_panic(ptr @.str.3935, i64 3335, ptr @.str.3936) + br i1 %t102, label %panic6383, label %ok6384 +panic6383: + call void @finch_panic(ptr @.str.4063, i64 3473, ptr @.str.4064) unreachable -ok6141: +ok6384: %t103 = getelementptr inbounds %S.gen.Val, ptr %t101, i32 0, i32 1 %t104 = load %S.ast.Type, ptr %t103 store %S.ast.Type %t104, ptr %a105 @@ -61874,75 +64325,75 @@ ok6141: %t109 = insertvalue %S.gen.Val %t108, i1 true, 3 %t110 = load ptr, ptr %a3 %t111 = icmp eq ptr %t110, null - br i1 %t111, label %panic6142, label %ok6143 -panic6142: - call void @finch_panic(ptr @.str.3937, i64 3335, ptr @.str.3938) + br i1 %t111, label %panic6385, label %ok6386 +panic6385: + call void @finch_panic(ptr @.str.4065, i64 3473, ptr @.str.4066) unreachable -ok6143: +ok6386: %t112 = load %S.gen.Val, ptr %t110 store %S.gen.Val %t109, ptr %t110 store %S.gen.Val %t112, ptr %a113 call void @finch.drop.S_gen_Val(ptr %a113) ret i1 true -endif6137: +endif6380: %t114 = load ptr, ptr %a2 %t115 = icmp eq ptr %t114, null - br i1 %t115, label %panic6144, label %ok6145 -panic6144: - call void @finch_panic(ptr @.str.3939, i64 3338, ptr @.str.3940) + br i1 %t115, label %panic6387, label %ok6388 +panic6387: + call void @finch_panic(ptr @.str.4067, i64 3476, ptr @.str.4068) unreachable -ok6145: +ok6388: %t116 = getelementptr inbounds %S.gen.Val, ptr %t114, i32 0, i32 1 %t117 = load %S.ast.Type, ptr %t116 %t118 = load ptr, ptr %a3 %t119 = icmp eq ptr %t118, null - br i1 %t119, label %panic6146, label %ok6147 -panic6146: - call void @finch_panic(ptr @.str.3941, i64 3338, ptr @.str.3942) + br i1 %t119, label %panic6389, label %ok6390 +panic6389: + call void @finch_panic(ptr @.str.4069, i64 3476, ptr @.str.4070) unreachable -ok6147: +ok6390: %t120 = getelementptr inbounds %S.gen.Val, ptr %t118, i32 0, i32 1 %t121 = load %S.ast.Type, ptr %t120 %t122 = call i1 @finch.gen.widens(%S.ast.Type %t117, %S.ast.Type %t121) - br i1 %t122, label %then6148, label %endif6150 -then6148: + br i1 %t122, label %then6391, label %endif6393 +then6391: %t123 = load ptr, ptr %a1 %t124 = load ptr, ptr %a2 %t125 = icmp eq ptr %t124, null - br i1 %t125, label %panic6151, label %ok6152 -panic6151: - call void @finch_panic(ptr @.str.3943, i64 3339, ptr @.str.3944) + br i1 %t125, label %panic6394, label %ok6395 +panic6394: + call void @finch_panic(ptr @.str.4071, i64 3477, ptr @.str.4072) unreachable -ok6152: +ok6395: %t126 = getelementptr inbounds %S.gen.Val, ptr %t124, i32 0, i32 0 %t127 = load { ptr, i64, i64 }, ptr %t126 %t128 = load ptr, ptr %a2 %t129 = icmp eq ptr %t128, null - br i1 %t129, label %panic6153, label %ok6154 -panic6153: - call void @finch_panic(ptr @.str.3945, i64 3339, ptr @.str.3946) + br i1 %t129, label %panic6396, label %ok6397 +panic6396: + call void @finch_panic(ptr @.str.4073, i64 3477, ptr @.str.4074) unreachable -ok6154: +ok6397: %t130 = getelementptr inbounds %S.gen.Val, ptr %t128, i32 0, i32 1 %t131 = load %S.ast.Type, ptr %t130 %t132 = load ptr, ptr %a3 %t133 = icmp eq ptr %t132, null - br i1 %t133, label %panic6155, label %ok6156 -panic6155: - call void @finch_panic(ptr @.str.3947, i64 3339, ptr @.str.3948) + br i1 %t133, label %panic6398, label %ok6399 +panic6398: + call void @finch_panic(ptr @.str.4075, i64 3477, ptr @.str.4076) unreachable -ok6156: +ok6399: %t134 = getelementptr inbounds %S.gen.Val, ptr %t132, i32 0, i32 1 %t135 = load %S.ast.Type, ptr %t134 %t136 = call { ptr, i64, i64 } @finch.gen.intCast(ptr %t123, { ptr, i64, i64 } %t127, %S.ast.Type %t131, %S.ast.Type %t135) %t137 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t136, 0 %t138 = load ptr, ptr %a3 %t139 = icmp eq ptr %t138, null - br i1 %t139, label %panic6157, label %ok6158 -panic6157: - call void @finch_panic(ptr @.str.3949, i64 3339, ptr @.str.3950) + br i1 %t139, label %panic6400, label %ok6401 +panic6400: + call void @finch_panic(ptr @.str.4077, i64 3477, ptr @.str.4078) unreachable -ok6158: +ok6401: %t140 = getelementptr inbounds %S.gen.Val, ptr %t138, i32 0, i32 1 %t141 = load %S.ast.Type, ptr %t140 store %S.ast.Type %t141, ptr %a142 @@ -61951,75 +64402,75 @@ ok6158: %t145 = insertvalue %S.gen.Val %t137, %S.ast.Type %t144, 1 %t146 = load ptr, ptr %a2 %t147 = icmp eq ptr %t146, null - br i1 %t147, label %panic6159, label %ok6160 -panic6159: - call void @finch_panic(ptr @.str.3951, i64 3339, ptr @.str.3952) + br i1 %t147, label %panic6402, label %ok6403 +panic6402: + call void @finch_panic(ptr @.str.4079, i64 3477, ptr @.str.4080) unreachable -ok6160: +ok6403: %t148 = load %S.gen.Val, ptr %t146 store %S.gen.Val %t145, ptr %t146 store %S.gen.Val %t148, ptr %a149 call void @finch.drop.S_gen_Val(ptr %a149) ret i1 true -endif6150: +endif6393: %t150 = load ptr, ptr %a3 %t151 = icmp eq ptr %t150, null - br i1 %t151, label %panic6161, label %ok6162 -panic6161: - call void @finch_panic(ptr @.str.3953, i64 3342, ptr @.str.3954) + br i1 %t151, label %panic6404, label %ok6405 +panic6404: + call void @finch_panic(ptr @.str.4081, i64 3480, ptr @.str.4082) unreachable -ok6162: +ok6405: %t152 = getelementptr inbounds %S.gen.Val, ptr %t150, i32 0, i32 1 %t153 = load %S.ast.Type, ptr %t152 %t154 = load ptr, ptr %a2 %t155 = icmp eq ptr %t154, null - br i1 %t155, label %panic6163, label %ok6164 -panic6163: - call void @finch_panic(ptr @.str.3955, i64 3342, ptr @.str.3956) + br i1 %t155, label %panic6406, label %ok6407 +panic6406: + call void @finch_panic(ptr @.str.4083, i64 3480, ptr @.str.4084) unreachable -ok6164: +ok6407: %t156 = getelementptr inbounds %S.gen.Val, ptr %t154, i32 0, i32 1 %t157 = load %S.ast.Type, ptr %t156 %t158 = call i1 @finch.gen.widens(%S.ast.Type %t153, %S.ast.Type %t157) - br i1 %t158, label %then6165, label %endif6167 -then6165: + br i1 %t158, label %then6408, label %endif6410 +then6408: %t159 = load ptr, ptr %a1 %t160 = load ptr, ptr %a3 %t161 = icmp eq ptr %t160, null - br i1 %t161, label %panic6168, label %ok6169 -panic6168: - call void @finch_panic(ptr @.str.3957, i64 3343, ptr @.str.3958) + br i1 %t161, label %panic6411, label %ok6412 +panic6411: + call void @finch_panic(ptr @.str.4085, i64 3481, ptr @.str.4086) unreachable -ok6169: +ok6412: %t162 = getelementptr inbounds %S.gen.Val, ptr %t160, i32 0, i32 0 %t163 = load { ptr, i64, i64 }, ptr %t162 %t164 = load ptr, ptr %a3 %t165 = icmp eq ptr %t164, null - br i1 %t165, label %panic6170, label %ok6171 -panic6170: - call void @finch_panic(ptr @.str.3959, i64 3343, ptr @.str.3960) + br i1 %t165, label %panic6413, label %ok6414 +panic6413: + call void @finch_panic(ptr @.str.4087, i64 3481, ptr @.str.4088) unreachable -ok6171: +ok6414: %t166 = getelementptr inbounds %S.gen.Val, ptr %t164, i32 0, i32 1 %t167 = load %S.ast.Type, ptr %t166 %t168 = load ptr, ptr %a2 %t169 = icmp eq ptr %t168, null - br i1 %t169, label %panic6172, label %ok6173 -panic6172: - call void @finch_panic(ptr @.str.3961, i64 3343, ptr @.str.3962) + br i1 %t169, label %panic6415, label %ok6416 +panic6415: + call void @finch_panic(ptr @.str.4089, i64 3481, ptr @.str.4090) unreachable -ok6173: +ok6416: %t170 = getelementptr inbounds %S.gen.Val, ptr %t168, i32 0, i32 1 %t171 = load %S.ast.Type, ptr %t170 %t172 = call { ptr, i64, i64 } @finch.gen.intCast(ptr %t159, { ptr, i64, i64 } %t163, %S.ast.Type %t167, %S.ast.Type %t171) %t173 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t172, 0 %t174 = load ptr, ptr %a2 %t175 = icmp eq ptr %t174, null - br i1 %t175, label %panic6174, label %ok6175 -panic6174: - call void @finch_panic(ptr @.str.3963, i64 3343, ptr @.str.3964) + br i1 %t175, label %panic6417, label %ok6418 +panic6417: + call void @finch_panic(ptr @.str.4091, i64 3481, ptr @.str.4092) unreachable -ok6175: +ok6418: %t176 = getelementptr inbounds %S.gen.Val, ptr %t174, i32 0, i32 1 %t177 = load %S.ast.Type, ptr %t176 store %S.ast.Type %t177, ptr %a178 @@ -62028,294 +64479,294 @@ ok6175: %t181 = insertvalue %S.gen.Val %t173, %S.ast.Type %t180, 1 %t182 = load ptr, ptr %a3 %t183 = icmp eq ptr %t182, null - br i1 %t183, label %panic6176, label %ok6177 -panic6176: - call void @finch_panic(ptr @.str.3965, i64 3343, ptr @.str.3966) + br i1 %t183, label %panic6419, label %ok6420 +panic6419: + call void @finch_panic(ptr @.str.4093, i64 3481, ptr @.str.4094) unreachable -ok6177: +ok6420: %t184 = load %S.gen.Val, ptr %t182 store %S.gen.Val %t181, ptr %t182 store %S.gen.Val %t184, ptr %a185 call void @finch.drop.S_gen_Val(ptr %a185) ret i1 true -endif6167: +endif6410: ret i1 false -endif6089: +endif6332: %t186 = load ptr, ptr %a2 %t187 = icmp eq ptr %t186, null - br i1 %t187, label %panic6178, label %ok6179 -panic6178: - call void @finch_panic(ptr @.str.3967, i64 3348, ptr @.str.3968) + br i1 %t187, label %panic6421, label %ok6422 +panic6421: + call void @finch_panic(ptr @.str.4095, i64 3486, ptr @.str.4096) unreachable -ok6179: +ok6422: %t188 = getelementptr inbounds %S.gen.Val, ptr %t186, i32 0, i32 1 %t189 = load %S.ast.Type, ptr %t188 %t190 = call i1 @finch.gen.isInt(%S.ast.Type %t189) - br label %logic.from6180 -logic.from6180: - br i1 %t190, label %logic.rhs6181, label %logic.end6182 -logic.rhs6181: + br label %logic.from6423 +logic.from6423: + br i1 %t190, label %logic.rhs6424, label %logic.end6425 +logic.rhs6424: %t191 = load ptr, ptr %a3 %t192 = icmp eq ptr %t191, null - br i1 %t192, label %panic6183, label %ok6184 -panic6183: - call void @finch_panic(ptr @.str.3969, i64 3348, ptr @.str.3970) + br i1 %t192, label %panic6426, label %ok6427 +panic6426: + call void @finch_panic(ptr @.str.4097, i64 3486, ptr @.str.4098) unreachable -ok6184: +ok6427: %t193 = getelementptr inbounds %S.gen.Val, ptr %t191, i32 0, i32 1 %t194 = load %S.ast.Type, ptr %t193 %t195 = call i1 @finch.gen.isFloat(%S.ast.Type %t194) - br label %logic.rend6185 -logic.rend6185: - br label %logic.end6182 -logic.end6182: - %t196 = phi i1 [ false, %logic.from6180 ], [ %t195, %logic.rend6185 ] - br i1 %t196, label %then6186, label %endif6188 -then6186: + br label %logic.rend6428 +logic.rend6428: + br label %logic.end6425 +logic.end6425: + %t196 = phi i1 [ false, %logic.from6423 ], [ %t195, %logic.rend6428 ] + br i1 %t196, label %then6429, label %endif6431 +then6429: %t197 = load ptr, ptr %a1 %t198 = load ptr, ptr %a2 %t199 = icmp eq ptr %t198, null - br i1 %t199, label %panic6189, label %ok6190 -panic6189: - call void @finch_panic(ptr @.str.3971, i64 3349, ptr @.str.3972) + br i1 %t199, label %panic6432, label %ok6433 +panic6432: + call void @finch_panic(ptr @.str.4099, i64 3487, ptr @.str.4100) unreachable -ok6190: +ok6433: %t200 = load %S.gen.Val, ptr %t198 %t201 = load ptr, ptr %a3 %t202 = icmp eq ptr %t201, null - br i1 %t202, label %panic6191, label %ok6192 -panic6191: - call void @finch_panic(ptr @.str.3973, i64 3349, ptr @.str.3974) + br i1 %t202, label %panic6434, label %ok6435 +panic6434: + call void @finch_panic(ptr @.str.4101, i64 3487, ptr @.str.4102) unreachable -ok6192: +ok6435: %t203 = getelementptr inbounds %S.gen.Val, ptr %t201, i32 0, i32 1 %t204 = load %S.ast.Type, ptr %t203 %t205 = call %S.ast.Node @finch.gen.Node0() - %t206 = call %S.gen.Val @finch.gen.coerce(ptr %t197, %S.gen.Val %t200, %S.ast.Type %t204, %S.ast.Node %t205, { ptr, i64, i64 } { ptr @.str.3975, i64 0, i64 0 }) + %t206 = call %S.gen.Val @finch.gen.coerce(ptr %t197, %S.gen.Val %t200, %S.ast.Type %t204, %S.ast.Node %t205, { ptr, i64, i64 } { ptr @.str.4103, i64 0, i64 0 }) store %S.ast.Node %t205, ptr %a207 call void @finch.drop.S_ast_Node(ptr %a207) %t208 = load ptr, ptr %a2 %t209 = icmp eq ptr %t208, null - br i1 %t209, label %panic6193, label %ok6194 -panic6193: - call void @finch_panic(ptr @.str.3976, i64 3349, ptr @.str.3977) + br i1 %t209, label %panic6436, label %ok6437 +panic6436: + call void @finch_panic(ptr @.str.4104, i64 3487, ptr @.str.4105) unreachable -ok6194: +ok6437: %t210 = load %S.gen.Val, ptr %t208 store %S.gen.Val %t206, ptr %t208 store %S.gen.Val %t210, ptr %a211 call void @finch.drop.S_gen_Val(ptr %a211) ret i1 true -endif6188: +endif6431: %t212 = load ptr, ptr %a2 %t213 = icmp eq ptr %t212, null - br i1 %t213, label %panic6195, label %ok6196 -panic6195: - call void @finch_panic(ptr @.str.3978, i64 3352, ptr @.str.3979) + br i1 %t213, label %panic6438, label %ok6439 +panic6438: + call void @finch_panic(ptr @.str.4106, i64 3490, ptr @.str.4107) unreachable -ok6196: +ok6439: %t214 = getelementptr inbounds %S.gen.Val, ptr %t212, i32 0, i32 1 %t215 = load %S.ast.Type, ptr %t214 %t216 = call i1 @finch.gen.isFloat(%S.ast.Type %t215) - br label %logic.from6197 -logic.from6197: - br i1 %t216, label %logic.rhs6198, label %logic.end6199 -logic.rhs6198: + br label %logic.from6440 +logic.from6440: + br i1 %t216, label %logic.rhs6441, label %logic.end6442 +logic.rhs6441: %t217 = load ptr, ptr %a3 %t218 = icmp eq ptr %t217, null - br i1 %t218, label %panic6200, label %ok6201 -panic6200: - call void @finch_panic(ptr @.str.3980, i64 3352, ptr @.str.3981) + br i1 %t218, label %panic6443, label %ok6444 +panic6443: + call void @finch_panic(ptr @.str.4108, i64 3490, ptr @.str.4109) unreachable -ok6201: +ok6444: %t219 = getelementptr inbounds %S.gen.Val, ptr %t217, i32 0, i32 1 %t220 = load %S.ast.Type, ptr %t219 %t221 = call i1 @finch.gen.isInt(%S.ast.Type %t220) - br label %logic.rend6202 -logic.rend6202: - br label %logic.end6199 -logic.end6199: - %t222 = phi i1 [ false, %logic.from6197 ], [ %t221, %logic.rend6202 ] - br i1 %t222, label %then6203, label %endif6205 -then6203: + br label %logic.rend6445 +logic.rend6445: + br label %logic.end6442 +logic.end6442: + %t222 = phi i1 [ false, %logic.from6440 ], [ %t221, %logic.rend6445 ] + br i1 %t222, label %then6446, label %endif6448 +then6446: %t223 = load ptr, ptr %a1 %t224 = load ptr, ptr %a3 %t225 = icmp eq ptr %t224, null - br i1 %t225, label %panic6206, label %ok6207 -panic6206: - call void @finch_panic(ptr @.str.3982, i64 3353, ptr @.str.3983) + br i1 %t225, label %panic6449, label %ok6450 +panic6449: + call void @finch_panic(ptr @.str.4110, i64 3491, ptr @.str.4111) unreachable -ok6207: +ok6450: %t226 = load %S.gen.Val, ptr %t224 %t227 = load ptr, ptr %a2 %t228 = icmp eq ptr %t227, null - br i1 %t228, label %panic6208, label %ok6209 -panic6208: - call void @finch_panic(ptr @.str.3984, i64 3353, ptr @.str.3985) + br i1 %t228, label %panic6451, label %ok6452 +panic6451: + call void @finch_panic(ptr @.str.4112, i64 3491, ptr @.str.4113) unreachable -ok6209: +ok6452: %t229 = getelementptr inbounds %S.gen.Val, ptr %t227, i32 0, i32 1 %t230 = load %S.ast.Type, ptr %t229 %t231 = call %S.ast.Node @finch.gen.Node0() - %t232 = call %S.gen.Val @finch.gen.coerce(ptr %t223, %S.gen.Val %t226, %S.ast.Type %t230, %S.ast.Node %t231, { ptr, i64, i64 } { ptr @.str.3986, i64 0, i64 0 }) + %t232 = call %S.gen.Val @finch.gen.coerce(ptr %t223, %S.gen.Val %t226, %S.ast.Type %t230, %S.ast.Node %t231, { ptr, i64, i64 } { ptr @.str.4114, i64 0, i64 0 }) store %S.ast.Node %t231, ptr %a233 call void @finch.drop.S_ast_Node(ptr %a233) %t234 = load ptr, ptr %a3 %t235 = icmp eq ptr %t234, null - br i1 %t235, label %panic6210, label %ok6211 -panic6210: - call void @finch_panic(ptr @.str.3987, i64 3353, ptr @.str.3988) + br i1 %t235, label %panic6453, label %ok6454 +panic6453: + call void @finch_panic(ptr @.str.4115, i64 3491, ptr @.str.4116) unreachable -ok6211: +ok6454: %t236 = load %S.gen.Val, ptr %t234 store %S.gen.Val %t232, ptr %t234 store %S.gen.Val %t236, ptr %a237 call void @finch.drop.S_gen_Val(ptr %a237) ret i1 true -endif6205: +endif6448: %t238 = load ptr, ptr %a2 %t239 = icmp eq ptr %t238, null - br i1 %t239, label %panic6212, label %ok6213 -panic6212: - call void @finch_panic(ptr @.str.3989, i64 3356, ptr @.str.3990) + br i1 %t239, label %panic6455, label %ok6456 +panic6455: + call void @finch_panic(ptr @.str.4117, i64 3494, ptr @.str.4118) unreachable -ok6213: +ok6456: %t240 = getelementptr inbounds %S.gen.Val, ptr %t238, i32 0, i32 1 %t241 = load %S.ast.Type, ptr %t240 %t242 = call i1 @finch.gen.isFloat(%S.ast.Type %t241) - br label %logic.from6214 -logic.from6214: - br i1 %t242, label %logic.rhs6215, label %logic.end6216 -logic.rhs6215: + br label %logic.from6457 +logic.from6457: + br i1 %t242, label %logic.rhs6458, label %logic.end6459 +logic.rhs6458: %t243 = load ptr, ptr %a3 %t244 = icmp eq ptr %t243, null - br i1 %t244, label %panic6217, label %ok6218 -panic6217: - call void @finch_panic(ptr @.str.3991, i64 3356, ptr @.str.3992) + br i1 %t244, label %panic6460, label %ok6461 +panic6460: + call void @finch_panic(ptr @.str.4119, i64 3494, ptr @.str.4120) unreachable -ok6218: +ok6461: %t245 = getelementptr inbounds %S.gen.Val, ptr %t243, i32 0, i32 1 %t246 = load %S.ast.Type, ptr %t245 %t247 = call i1 @finch.gen.isFloat(%S.ast.Type %t246) - br label %logic.rend6219 -logic.rend6219: - br label %logic.end6216 -logic.end6216: - %t248 = phi i1 [ false, %logic.from6214 ], [ %t247, %logic.rend6219 ] - br i1 %t248, label %then6220, label %endif6222 -then6220: + br label %logic.rend6462 +logic.rend6462: + br label %logic.end6459 +logic.end6459: + %t248 = phi i1 [ false, %logic.from6457 ], [ %t247, %logic.rend6462 ] + br i1 %t248, label %then6463, label %endif6465 +then6463: %t249 = load ptr, ptr %a2 %t250 = icmp eq ptr %t249, null - br i1 %t250, label %panic6223, label %ok6224 -panic6223: - call void @finch_panic(ptr @.str.3993, i64 3357, ptr @.str.3994) + br i1 %t250, label %panic6466, label %ok6467 +panic6466: + call void @finch_panic(ptr @.str.4121, i64 3495, ptr @.str.4122) unreachable -ok6224: +ok6467: %t251 = getelementptr inbounds %S.gen.Val, ptr %t249, i32 0, i32 1 %t252 = getelementptr inbounds %S.ast.Type, ptr %t251, i32 0, i32 0 %t253 = load { ptr, i64, i64 }, ptr %t252 store { ptr, i64, i64 } %t253, ptr %a254 - store { ptr, i64, i64 } { ptr @.str.3995, i64 3, i64 0 }, ptr %a255 + store { ptr, i64, i64 } { ptr @.str.4123, i64 3, i64 0 }, ptr %a255 %t256 = call i32 @finch_str_eq(ptr %a254, ptr %a255) %t257 = icmp ne i32 %t256, 0 - br i1 %t257, label %then6225, label %endif6227 -then6225: + br i1 %t257, label %then6468, label %endif6470 +then6468: %t258 = load ptr, ptr %a1 %t259 = load ptr, ptr %a2 %t260 = icmp eq ptr %t259, null - br i1 %t260, label %panic6228, label %ok6229 -panic6228: - call void @finch_panic(ptr @.str.3996, i64 3358, ptr @.str.3997) + br i1 %t260, label %panic6471, label %ok6472 +panic6471: + call void @finch_panic(ptr @.str.4124, i64 3496, ptr @.str.4125) unreachable -ok6229: +ok6472: %t261 = getelementptr inbounds %S.gen.Val, ptr %t259, i32 0, i32 0 %t262 = load { ptr, i64, i64 }, ptr %t261 %t263 = load ptr, ptr %a2 %t264 = icmp eq ptr %t263, null - br i1 %t264, label %panic6230, label %ok6231 -panic6230: - call void @finch_panic(ptr @.str.3998, i64 3358, ptr @.str.3999) + br i1 %t264, label %panic6473, label %ok6474 +panic6473: + call void @finch_panic(ptr @.str.4126, i64 3496, ptr @.str.4127) unreachable -ok6231: +ok6474: %t265 = getelementptr inbounds %S.gen.Val, ptr %t263, i32 0, i32 1 %t266 = load %S.ast.Type, ptr %t265 - %t267 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4000, i64 5, i64 0 }) + %t267 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4128, i64 5, i64 0 }) %t268 = call { ptr, i64, i64 } @finch.gen.floatCast(ptr %t258, { ptr, i64, i64 } %t262, %S.ast.Type %t266, %S.ast.Type %t267) store %S.ast.Type %t267, ptr %a269 call void @finch.drop.S_ast_Type(ptr %a269) %t270 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t268, 0 - %t271 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4001, i64 5, i64 0 }) + %t271 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4129, i64 5, i64 0 }) %t272 = insertvalue %S.gen.Val %t270, %S.ast.Type %t271, 1 %t273 = load ptr, ptr %a2 %t274 = icmp eq ptr %t273, null - br i1 %t274, label %panic6232, label %ok6233 -panic6232: - call void @finch_panic(ptr @.str.4002, i64 3358, ptr @.str.4003) + br i1 %t274, label %panic6475, label %ok6476 +panic6475: + call void @finch_panic(ptr @.str.4130, i64 3496, ptr @.str.4131) unreachable -ok6233: +ok6476: %t275 = load %S.gen.Val, ptr %t273 store %S.gen.Val %t272, ptr %t273 store %S.gen.Val %t275, ptr %a276 call void @finch.drop.S_gen_Val(ptr %a276) - br label %endif6227 -endif6227: + br label %endif6470 +endif6470: %t277 = load ptr, ptr %a3 %t278 = icmp eq ptr %t277, null - br i1 %t278, label %panic6234, label %ok6235 -panic6234: - call void @finch_panic(ptr @.str.4004, i64 3360, ptr @.str.4005) + br i1 %t278, label %panic6477, label %ok6478 +panic6477: + call void @finch_panic(ptr @.str.4132, i64 3498, ptr @.str.4133) unreachable -ok6235: +ok6478: %t279 = getelementptr inbounds %S.gen.Val, ptr %t277, i32 0, i32 1 %t280 = getelementptr inbounds %S.ast.Type, ptr %t279, i32 0, i32 0 %t281 = load { ptr, i64, i64 }, ptr %t280 store { ptr, i64, i64 } %t281, ptr %a282 - store { ptr, i64, i64 } { ptr @.str.4006, i64 3, i64 0 }, ptr %a283 + store { ptr, i64, i64 } { ptr @.str.4134, i64 3, i64 0 }, ptr %a283 %t284 = call i32 @finch_str_eq(ptr %a282, ptr %a283) %t285 = icmp ne i32 %t284, 0 - br i1 %t285, label %then6236, label %endif6238 -then6236: + br i1 %t285, label %then6479, label %endif6481 +then6479: %t286 = load ptr, ptr %a1 %t287 = load ptr, ptr %a3 %t288 = icmp eq ptr %t287, null - br i1 %t288, label %panic6239, label %ok6240 -panic6239: - call void @finch_panic(ptr @.str.4007, i64 3361, ptr @.str.4008) + br i1 %t288, label %panic6482, label %ok6483 +panic6482: + call void @finch_panic(ptr @.str.4135, i64 3499, ptr @.str.4136) unreachable -ok6240: +ok6483: %t289 = getelementptr inbounds %S.gen.Val, ptr %t287, i32 0, i32 0 %t290 = load { ptr, i64, i64 }, ptr %t289 %t291 = load ptr, ptr %a3 %t292 = icmp eq ptr %t291, null - br i1 %t292, label %panic6241, label %ok6242 -panic6241: - call void @finch_panic(ptr @.str.4009, i64 3361, ptr @.str.4010) + br i1 %t292, label %panic6484, label %ok6485 +panic6484: + call void @finch_panic(ptr @.str.4137, i64 3499, ptr @.str.4138) unreachable -ok6242: +ok6485: %t293 = getelementptr inbounds %S.gen.Val, ptr %t291, i32 0, i32 1 %t294 = load %S.ast.Type, ptr %t293 - %t295 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4011, i64 5, i64 0 }) + %t295 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4139, i64 5, i64 0 }) %t296 = call { ptr, i64, i64 } @finch.gen.floatCast(ptr %t286, { ptr, i64, i64 } %t290, %S.ast.Type %t294, %S.ast.Type %t295) store %S.ast.Type %t295, ptr %a297 call void @finch.drop.S_ast_Type(ptr %a297) %t298 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t296, 0 - %t299 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4012, i64 5, i64 0 }) + %t299 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4140, i64 5, i64 0 }) %t300 = insertvalue %S.gen.Val %t298, %S.ast.Type %t299, 1 %t301 = load ptr, ptr %a3 %t302 = icmp eq ptr %t301, null - br i1 %t302, label %panic6243, label %ok6244 -panic6243: - call void @finch_panic(ptr @.str.4013, i64 3361, ptr @.str.4014) + br i1 %t302, label %panic6486, label %ok6487 +panic6486: + call void @finch_panic(ptr @.str.4141, i64 3499, ptr @.str.4142) unreachable -ok6244: +ok6487: %t303 = load %S.gen.Val, ptr %t301 store %S.gen.Val %t300, ptr %t301 store %S.gen.Val %t303, ptr %a304 call void @finch.drop.S_gen_Val(ptr %a304) - br label %endif6238 -endif6238: + br label %endif6481 +endif6481: ret i1 true -endif6222: +endif6465: ret i1 false } @@ -62474,54 +64925,54 @@ entry: store %S.ast.Node %p4, ptr %a11 %t12 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t12, ptr %a13 - store { ptr, i64, i64 } { ptr @.str.4015, i64 1, i64 0 }, ptr %a14 + store { ptr, i64, i64 } { ptr @.str.4143, i64 1, i64 0 }, ptr %a14 %t15 = call i32 @finch_str_eq(ptr %a13, ptr %a14) %t16 = icmp ne i32 %t15, 0 - br label %logic.from6245 -logic.from6245: - br i1 %t16, label %logic.rhs6246, label %logic.end6247 -logic.rhs6246: + br label %logic.from6488 +logic.from6488: + br i1 %t16, label %logic.rhs6489, label %logic.end6490 +logic.rhs6489: %t17 = getelementptr inbounds %S.gen.Val, ptr %a6, i32 0, i32 1 %t18 = getelementptr inbounds %S.ast.Type, ptr %t17, i32 0, i32 0 %t19 = load { ptr, i64, i64 }, ptr %t18 store { ptr, i64, i64 } %t19, ptr %a20 - store { ptr, i64, i64 } { ptr @.str.4016, i64 3, i64 0 }, ptr %a21 + store { ptr, i64, i64 } { ptr @.str.4144, i64 3, i64 0 }, ptr %a21 %t22 = call i32 @finch_str_eq(ptr %a20, ptr %a21) %t23 = icmp ne i32 %t22, 0 - br label %logic.rend6248 -logic.rend6248: - br label %logic.end6247 -logic.end6247: - %t24 = phi i1 [ false, %logic.from6245 ], [ %t23, %logic.rend6248 ] - br label %logic.from6249 -logic.from6249: - br i1 %t24, label %logic.rhs6250, label %logic.end6251 -logic.rhs6250: + br label %logic.rend6491 +logic.rend6491: + br label %logic.end6490 +logic.end6490: + %t24 = phi i1 [ false, %logic.from6488 ], [ %t23, %logic.rend6491 ] + br label %logic.from6492 +logic.from6492: + br i1 %t24, label %logic.rhs6493, label %logic.end6494 +logic.rhs6493: %t25 = getelementptr inbounds %S.gen.Val, ptr %a10, i32 0, i32 1 %t26 = getelementptr inbounds %S.ast.Type, ptr %t25, i32 0, i32 0 %t27 = load { ptr, i64, i64 }, ptr %t26 store { ptr, i64, i64 } %t27, ptr %a28 - store { ptr, i64, i64 } { ptr @.str.4017, i64 3, i64 0 }, ptr %a29 + store { ptr, i64, i64 } { ptr @.str.4145, i64 3, i64 0 }, ptr %a29 %t30 = call i32 @finch_str_eq(ptr %a28, ptr %a29) %t31 = icmp ne i32 %t30, 0 - br label %logic.rend6252 -logic.rend6252: - br label %logic.end6251 -logic.end6251: - %t32 = phi i1 [ false, %logic.from6249 ], [ %t31, %logic.rend6252 ] - br i1 %t32, label %then6253, label %endif6255 -then6253: + br label %logic.rend6495 +logic.rend6495: + br label %logic.end6494 +logic.end6494: + %t32 = phi i1 [ false, %logic.from6492 ], [ %t31, %logic.rend6495 ] + br i1 %t32, label %then6496, label %endif6498 +then6496: %t33 = load ptr, ptr %a1 - %t34 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t33, { ptr, i64, i64 } { ptr @.str.4018, i64 17, i64 0 }) + %t34 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t33, { ptr, i64, i64 } { ptr @.str.4146, i64 17, i64 0 }) store { ptr, i64, i64 } %t34, ptr %a35 %t36 = load ptr, ptr %a1 %t37 = load { ptr, i64, i64 }, ptr %a35 - store { ptr, i64, i64 } { ptr @.str.4019, i64 32, i64 0 }, ptr %a39 + store { ptr, i64, i64 } { ptr @.str.4147, i64 32, i64 0 }, ptr %a39 store { ptr, i64, i64 } %t37, ptr %a40 call void @finch_str_concat(ptr %a38, ptr %a39, ptr %a40) %t41 = load { ptr, i64, i64 }, ptr %a38 store { ptr, i64, i64 } %t41, ptr %a43 - store { ptr, i64, i64 } { ptr @.str.4020, i64 6, i64 0 }, ptr %a44 + store { ptr, i64, i64 } { ptr @.str.4148, i64 6, i64 0 }, ptr %a44 call void @finch_str_concat(ptr %a42, ptr %a43, ptr %a44) store { ptr, i64, i64 } %t41, ptr %a45 call void @finch_str_drop(ptr %a45) @@ -62538,7 +64989,7 @@ then6253: call void @finch_str_drop(ptr %a54) %t55 = load { ptr, i64, i64 }, ptr %a50 store { ptr, i64, i64 } %t55, ptr %a57 - store { ptr, i64, i64 } { ptr @.str.4021, i64 6, i64 0 }, ptr %a58 + store { ptr, i64, i64 } { ptr @.str.4149, i64 6, i64 0 }, ptr %a58 call void @finch_str_concat(ptr %a56, ptr %a57, ptr %a58) store { ptr, i64, i64 } %t55, ptr %a59 call void @finch_str_drop(ptr %a59) @@ -62555,7 +65006,7 @@ then6253: call void @finch_str_drop(ptr %a68) %t69 = load { ptr, i64, i64 }, ptr %a64 store { ptr, i64, i64 } %t69, ptr %a71 - store { ptr, i64, i64 } { ptr @.str.4022, i64 1, i64 0 }, ptr %a72 + store { ptr, i64, i64 } { ptr @.str.4150, i64 1, i64 0 }, ptr %a72 call void @finch_str_concat(ptr %a70, ptr %a71, ptr %a72) store { ptr, i64, i64 } %t69, ptr %a73 call void @finch_str_drop(ptr %a73) @@ -62571,56 +65022,56 @@ then6253: call void @finch.gen.release(ptr %t78, %S.gen.Val %t79) %t80 = load ptr, ptr %a1 %t81 = load { ptr, i64, i64 }, ptr %a35 - %t82 = call { ptr, i64, i64 } @finch.gen.load(ptr %t80, { ptr, i64, i64 } { ptr @.str.4023, i64 17, i64 0 }, { ptr, i64, i64 } %t81) + %t82 = call { ptr, i64, i64 } @finch.gen.load(ptr %t80, { ptr, i64, i64 } { ptr @.str.4151, i64 17, i64 0 }, { ptr, i64, i64 } %t81) %t83 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t82, 0 - %t84 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4024, i64 3, i64 0 }) + %t84 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4152, i64 3, i64 0 }) %t85 = insertvalue %S.gen.Val %t83, %S.ast.Type %t84, 1 %t86 = insertvalue %S.gen.Val %t85, i1 true, 2 call void @finch_str_drop(ptr %a35) call void @finch.drop.S_gen_Val(ptr %a10) call void @finch.drop.S_gen_Val(ptr %a6) ret %S.gen.Val %t86 -endif6255: +endif6498: %t87 = load ptr, ptr %a1 %t88 = call i1 @finch.gen.unify(ptr %t87, ptr %a6, ptr %a10) %t89 = xor i1 %t88, true - br i1 %t89, label %then6256, label %endif6258 -then6256: + br i1 %t89, label %then6499, label %endif6501 +then6499: %t90 = load ptr, ptr %a1 %t91 = load { ptr, i64, i64 }, ptr %a2 %t92 = load %S.gen.Val, ptr %a6 %t93 = load %S.gen.Val, ptr %a10 %t94 = load %S.ast.Node, ptr %a11 call void @finch.gen.badOperands(ptr %t90, { ptr, i64, i64 } %t91, %S.gen.Val %t92, %S.gen.Val %t93, %S.ast.Node %t94) - br label %endif6258 -endif6258: + br label %endif6501 +endif6501: %t95 = getelementptr inbounds %S.gen.Val, ptr %a6, i32 0, i32 1 %t96 = load %S.ast.Type, ptr %t95 %t97 = call i1 @finch.gen.isInt(%S.ast.Type %t96) - br i1 %t97, label %then6259, label %endif6261 -then6259: + br i1 %t97, label %then6502, label %endif6504 +then6502: %t98 = mul i64 10, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t99 = call ptr @finch_alloc(i64 %t98) %t100 = getelementptr inbounds { ptr, i64, i64 }, ptr %t99, i64 0 - store { ptr, i64, i64 } { ptr @.str.4025, i64 1, i64 0 }, ptr %t100 + store { ptr, i64, i64 } { ptr @.str.4153, i64 1, i64 0 }, ptr %t100 %t101 = getelementptr inbounds { ptr, i64, i64 }, ptr %t99, i64 1 - store { ptr, i64, i64 } { ptr @.str.4026, i64 1, i64 0 }, ptr %t101 + store { ptr, i64, i64 } { ptr @.str.4154, i64 1, i64 0 }, ptr %t101 %t102 = getelementptr inbounds { ptr, i64, i64 }, ptr %t99, i64 2 - store { ptr, i64, i64 } { ptr @.str.4027, i64 1, i64 0 }, ptr %t102 + store { ptr, i64, i64 } { ptr @.str.4155, i64 1, i64 0 }, ptr %t102 %t103 = getelementptr inbounds { ptr, i64, i64 }, ptr %t99, i64 3 - store { ptr, i64, i64 } { ptr @.str.4028, i64 1, i64 0 }, ptr %t103 + store { ptr, i64, i64 } { ptr @.str.4156, i64 1, i64 0 }, ptr %t103 %t104 = getelementptr inbounds { ptr, i64, i64 }, ptr %t99, i64 4 - store { ptr, i64, i64 } { ptr @.str.4029, i64 1, i64 0 }, ptr %t104 + store { ptr, i64, i64 } { ptr @.str.4157, i64 1, i64 0 }, ptr %t104 %t105 = getelementptr inbounds { ptr, i64, i64 }, ptr %t99, i64 5 - store { ptr, i64, i64 } { ptr @.str.4030, i64 1, i64 0 }, ptr %t105 + store { ptr, i64, i64 } { ptr @.str.4158, i64 1, i64 0 }, ptr %t105 %t106 = getelementptr inbounds { ptr, i64, i64 }, ptr %t99, i64 6 - store { ptr, i64, i64 } { ptr @.str.4031, i64 1, i64 0 }, ptr %t106 + store { ptr, i64, i64 } { ptr @.str.4159, i64 1, i64 0 }, ptr %t106 %t107 = getelementptr inbounds { ptr, i64, i64 }, ptr %t99, i64 7 - store { ptr, i64, i64 } { ptr @.str.4032, i64 1, i64 0 }, ptr %t107 + store { ptr, i64, i64 } { ptr @.str.4160, i64 1, i64 0 }, ptr %t107 %t108 = getelementptr inbounds { ptr, i64, i64 }, ptr %t99, i64 8 - store { ptr, i64, i64 } { ptr @.str.4033, i64 2, i64 0 }, ptr %t108 + store { ptr, i64, i64 } { ptr @.str.4161, i64 2, i64 0 }, ptr %t108 %t109 = getelementptr inbounds { ptr, i64, i64 }, ptr %t99, i64 9 - store { ptr, i64, i64 } { ptr @.str.4034, i64 2, i64 0 }, ptr %t109 + store { ptr, i64, i64 } { ptr @.str.4162, i64 2, i64 0 }, ptr %t109 %t110 = insertvalue { ptr, i64, i64 } undef, ptr %t99, 0 %t111 = insertvalue { ptr, i64, i64 } %t110, i64 10, 1 %t112 = insertvalue { ptr, i64, i64 } %t111, i64 10, 2 @@ -62628,25 +65079,25 @@ then6259: %t114 = mul i64 10, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t115 = call ptr @finch_alloc(i64 %t114) %t116 = getelementptr inbounds { ptr, i64, i64 }, ptr %t115, i64 0 - store { ptr, i64, i64 } { ptr @.str.4035, i64 3, i64 0 }, ptr %t116 + store { ptr, i64, i64 } { ptr @.str.4163, i64 3, i64 0 }, ptr %t116 %t117 = getelementptr inbounds { ptr, i64, i64 }, ptr %t115, i64 1 - store { ptr, i64, i64 } { ptr @.str.4036, i64 3, i64 0 }, ptr %t117 + store { ptr, i64, i64 } { ptr @.str.4164, i64 3, i64 0 }, ptr %t117 %t118 = getelementptr inbounds { ptr, i64, i64 }, ptr %t115, i64 2 - store { ptr, i64, i64 } { ptr @.str.4037, i64 3, i64 0 }, ptr %t118 + store { ptr, i64, i64 } { ptr @.str.4165, i64 3, i64 0 }, ptr %t118 %t119 = getelementptr inbounds { ptr, i64, i64 }, ptr %t115, i64 3 - store { ptr, i64, i64 } { ptr @.str.4038, i64 4, i64 0 }, ptr %t119 + store { ptr, i64, i64 } { ptr @.str.4166, i64 4, i64 0 }, ptr %t119 %t120 = getelementptr inbounds { ptr, i64, i64 }, ptr %t115, i64 4 - store { ptr, i64, i64 } { ptr @.str.4039, i64 4, i64 0 }, ptr %t120 + store { ptr, i64, i64 } { ptr @.str.4167, i64 4, i64 0 }, ptr %t120 %t121 = getelementptr inbounds { ptr, i64, i64 }, ptr %t115, i64 5 - store { ptr, i64, i64 } { ptr @.str.4040, i64 3, i64 0 }, ptr %t121 + store { ptr, i64, i64 } { ptr @.str.4168, i64 3, i64 0 }, ptr %t121 %t122 = getelementptr inbounds { ptr, i64, i64 }, ptr %t115, i64 6 - store { ptr, i64, i64 } { ptr @.str.4041, i64 2, i64 0 }, ptr %t122 + store { ptr, i64, i64 } { ptr @.str.4169, i64 2, i64 0 }, ptr %t122 %t123 = getelementptr inbounds { ptr, i64, i64 }, ptr %t115, i64 7 - store { ptr, i64, i64 } { ptr @.str.4042, i64 3, i64 0 }, ptr %t123 + store { ptr, i64, i64 } { ptr @.str.4170, i64 3, i64 0 }, ptr %t123 %t124 = getelementptr inbounds { ptr, i64, i64 }, ptr %t115, i64 8 - store { ptr, i64, i64 } { ptr @.str.4043, i64 3, i64 0 }, ptr %t124 + store { ptr, i64, i64 } { ptr @.str.4171, i64 3, i64 0 }, ptr %t124 %t125 = getelementptr inbounds { ptr, i64, i64 }, ptr %t115, i64 9 - store { ptr, i64, i64 } { ptr @.str.4044, i64 4, i64 0 }, ptr %t125 + store { ptr, i64, i64 } { ptr @.str.4172, i64 4, i64 0 }, ptr %t125 %t126 = insertvalue { ptr, i64, i64 } undef, ptr %t115, 0 %t127 = insertvalue { ptr, i64, i64 } %t126, i64 10, 1 %t128 = insertvalue { ptr, i64, i64 } %t127, i64 10, 2 @@ -62654,30 +65105,30 @@ then6259: %t130 = getelementptr inbounds %S.gen.Val, ptr %a6, i32 0, i32 1 %t131 = load %S.ast.Type, ptr %t130 %t132 = call i1 @finch.gen.isUnsigned(%S.ast.Type %t131) - br i1 %t132, label %then6262, label %endif6264 -then6262: + br i1 %t132, label %then6505, label %endif6507 +then6505: %t133 = mul i64 10, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t134 = call ptr @finch_alloc(i64 %t133) %t135 = getelementptr inbounds { ptr, i64, i64 }, ptr %t134, i64 0 - store { ptr, i64, i64 } { ptr @.str.4045, i64 3, i64 0 }, ptr %t135 + store { ptr, i64, i64 } { ptr @.str.4173, i64 3, i64 0 }, ptr %t135 %t136 = getelementptr inbounds { ptr, i64, i64 }, ptr %t134, i64 1 - store { ptr, i64, i64 } { ptr @.str.4046, i64 3, i64 0 }, ptr %t136 + store { ptr, i64, i64 } { ptr @.str.4174, i64 3, i64 0 }, ptr %t136 %t137 = getelementptr inbounds { ptr, i64, i64 }, ptr %t134, i64 2 - store { ptr, i64, i64 } { ptr @.str.4047, i64 3, i64 0 }, ptr %t137 + store { ptr, i64, i64 } { ptr @.str.4175, i64 3, i64 0 }, ptr %t137 %t138 = getelementptr inbounds { ptr, i64, i64 }, ptr %t134, i64 3 - store { ptr, i64, i64 } { ptr @.str.4048, i64 4, i64 0 }, ptr %t138 + store { ptr, i64, i64 } { ptr @.str.4176, i64 4, i64 0 }, ptr %t138 %t139 = getelementptr inbounds { ptr, i64, i64 }, ptr %t134, i64 4 - store { ptr, i64, i64 } { ptr @.str.4049, i64 4, i64 0 }, ptr %t139 + store { ptr, i64, i64 } { ptr @.str.4177, i64 4, i64 0 }, ptr %t139 %t140 = getelementptr inbounds { ptr, i64, i64 }, ptr %t134, i64 5 - store { ptr, i64, i64 } { ptr @.str.4050, i64 3, i64 0 }, ptr %t140 + store { ptr, i64, i64 } { ptr @.str.4178, i64 3, i64 0 }, ptr %t140 %t141 = getelementptr inbounds { ptr, i64, i64 }, ptr %t134, i64 6 - store { ptr, i64, i64 } { ptr @.str.4051, i64 2, i64 0 }, ptr %t141 + store { ptr, i64, i64 } { ptr @.str.4179, i64 2, i64 0 }, ptr %t141 %t142 = getelementptr inbounds { ptr, i64, i64 }, ptr %t134, i64 7 - store { ptr, i64, i64 } { ptr @.str.4052, i64 3, i64 0 }, ptr %t142 + store { ptr, i64, i64 } { ptr @.str.4180, i64 3, i64 0 }, ptr %t142 %t143 = getelementptr inbounds { ptr, i64, i64 }, ptr %t134, i64 8 - store { ptr, i64, i64 } { ptr @.str.4053, i64 3, i64 0 }, ptr %t143 + store { ptr, i64, i64 } { ptr @.str.4181, i64 3, i64 0 }, ptr %t143 %t144 = getelementptr inbounds { ptr, i64, i64 }, ptr %t134, i64 9 - store { ptr, i64, i64 } { ptr @.str.4054, i64 4, i64 0 }, ptr %t144 + store { ptr, i64, i64 } { ptr @.str.4182, i64 4, i64 0 }, ptr %t144 %t145 = insertvalue { ptr, i64, i64 } undef, ptr %t134, 0 %t146 = insertvalue { ptr, i64, i64 } %t145, i64 10, 1 %t147 = insertvalue { ptr, i64, i64 } %t146, i64 10, 2 @@ -62685,49 +65136,49 @@ then6262: store { ptr, i64, i64 } %t147, ptr %a129 store { ptr, i64, i64 } %t148, ptr %a149 call void @finch.drop.arr_str(ptr %a149) - br label %endif6264 -endif6264: + br label %endif6507 +endif6507: %t150 = getelementptr inbounds { ptr, i64, i64 }, ptr %a113, i32 0, i32 1 %t151 = load { ptr, i64, i64 }, ptr %a2 store i64 -1, ptr %a152 %t153 = load i64, ptr %t150 %t154 = load ptr, ptr %a113 store i64 0, ptr %a155 - br label %find.cond6265 -find.cond6265: + br label %find.cond6508 +find.cond6508: %t156 = load i64, ptr %a155 %t157 = icmp slt i64 %t156, %t153 - br i1 %t157, label %find.body6266, label %find.end6269 -find.body6266: + br i1 %t157, label %find.body6509, label %find.end6512 +find.body6509: %t158 = getelementptr inbounds { ptr, i64, i64 }, ptr %t154, i64 %t156 %t159 = load { ptr, i64, i64 }, ptr %t158 store { ptr, i64, i64 } %t159, ptr %a160 store { ptr, i64, i64 } %t151, ptr %a161 %t162 = call i32 @finch_str_eq(ptr %a160, ptr %a161) %t163 = icmp ne i32 %t162, 0 - br i1 %t163, label %find.hit6267, label %find.next6268 -find.hit6267: + br i1 %t163, label %find.hit6510, label %find.next6511 +find.hit6510: store i64 %t156, ptr %a152 - br label %find.end6269 -find.next6268: + br label %find.end6512 +find.next6511: %t164 = add i64 %t156, 1 store i64 %t164, ptr %a155 - br label %find.cond6265 -find.end6269: + br label %find.cond6508 +find.end6512: %t165 = load i64, ptr %a152 store i64 %t165, ptr %a166 %t167 = load i64, ptr %a166 %t168 = icmp slt i64 %t167, 0 - br i1 %t168, label %then6270, label %endif6272 -then6270: + br i1 %t168, label %then6513, label %endif6515 +then6513: %t169 = load ptr, ptr %a1 %t170 = load { ptr, i64, i64 }, ptr %a2 %t171 = load %S.gen.Val, ptr %a6 %t172 = load %S.gen.Val, ptr %a10 %t173 = load %S.ast.Node, ptr %a11 call void @finch.gen.badOperands(ptr %t169, { ptr, i64, i64 } %t170, %S.gen.Val %t171, %S.gen.Val %t172, %S.ast.Node %t173) - br label %endif6272 -endif6272: + br label %endif6515 +endif6515: %t174 = load ptr, ptr %a1 %t175 = getelementptr inbounds %S.gen.Val, ptr %a6, i32 0, i32 1 %t176 = load %S.ast.Type, ptr %t175 @@ -62735,63 +65186,63 @@ endif6272: store { ptr, i64, i64 } %t177, ptr %a178 %t179 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t179, ptr %a180 - store { ptr, i64, i64 } { ptr @.str.4055, i64 1, i64 0 }, ptr %a181 + store { ptr, i64, i64 } { ptr @.str.4183, i64 1, i64 0 }, ptr %a181 %t182 = call i32 @finch_str_eq(ptr %a180, ptr %a181) %t183 = icmp ne i32 %t182, 0 - br label %logic.from6273 -logic.from6273: - br i1 %t183, label %logic.end6275, label %logic.rhs6274 -logic.rhs6274: + br label %logic.from6516 +logic.from6516: + br i1 %t183, label %logic.end6518, label %logic.rhs6517 +logic.rhs6517: %t184 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t184, ptr %a185 - store { ptr, i64, i64 } { ptr @.str.4056, i64 1, i64 0 }, ptr %a186 + store { ptr, i64, i64 } { ptr @.str.4184, i64 1, i64 0 }, ptr %a186 %t187 = call i32 @finch_str_eq(ptr %a185, ptr %a186) %t188 = icmp ne i32 %t187, 0 - br label %logic.rend6276 -logic.rend6276: - br label %logic.end6275 -logic.end6275: - %t189 = phi i1 [ true, %logic.from6273 ], [ %t188, %logic.rend6276 ] - br i1 %t189, label %then6277, label %endif6279 -then6277: + br label %logic.rend6519 +logic.rend6519: + br label %logic.end6518 +logic.end6518: + %t189 = phi i1 [ true, %logic.from6516 ], [ %t188, %logic.rend6519 ] + br i1 %t189, label %then6520, label %endif6522 +then6520: %t190 = getelementptr inbounds %S.gen.Val, ptr %a10, i32 0, i32 3 %t191 = load i1, ptr %t190 - br label %logic.from6280 -logic.from6280: - br i1 %t191, label %logic.rhs6281, label %logic.end6282 -logic.rhs6281: + br label %logic.from6523 +logic.from6523: + br i1 %t191, label %logic.rhs6524, label %logic.end6525 +logic.rhs6524: %t192 = getelementptr inbounds %S.gen.Val, ptr %a10, i32 0, i32 0 %t193 = load { ptr, i64, i64 }, ptr %t192 store { ptr, i64, i64 } %t193, ptr %a194 - store { ptr, i64, i64 } { ptr @.str.4057, i64 1, i64 0 }, ptr %a195 + store { ptr, i64, i64 } { ptr @.str.4185, i64 1, i64 0 }, ptr %a195 %t196 = call i32 @finch_str_eq(ptr %a194, ptr %a195) %t197 = icmp ne i32 %t196, 0 - br label %logic.rend6283 -logic.rend6283: - br label %logic.end6282 -logic.end6282: - %t198 = phi i1 [ false, %logic.from6280 ], [ %t197, %logic.rend6283 ] - br i1 %t198, label %then6284, label %endif6286 -then6284: + br label %logic.rend6526 +logic.rend6526: + br label %logic.end6525 +logic.end6525: + %t198 = phi i1 [ false, %logic.from6523 ], [ %t197, %logic.rend6526 ] + br i1 %t198, label %then6527, label %endif6529 +then6527: %t199 = load ptr, ptr %a1 %t200 = load %S.ast.Node, ptr %a11 - call void @finch.gen.fail(ptr %t199, %S.ast.Node %t200, { ptr, i64, i64 } { ptr @.str.4058, i64 16, i64 0 }) - br label %endif6286 -endif6286: + call void @finch.gen.fail(ptr %t199, %S.ast.Node %t200, { ptr, i64, i64 } { ptr @.str.4186, i64 16, i64 0 }) + br label %endif6529 +endif6529: %t201 = getelementptr inbounds %S.gen.Val, ptr %a10, i32 0, i32 3 %t202 = load i1, ptr %t201 %t203 = xor i1 %t202, true - br i1 %t203, label %then6287, label %endif6289 -then6287: + br i1 %t203, label %then6530, label %endif6532 +then6530: %t204 = load ptr, ptr %a1 %t205 = load ptr, ptr %a1 %t206 = load { ptr, i64, i64 }, ptr %a178 - store { ptr, i64, i64 } { ptr @.str.4059, i64 8, i64 0 }, ptr %a208 + store { ptr, i64, i64 } { ptr @.str.4187, i64 8, i64 0 }, ptr %a208 store { ptr, i64, i64 } %t206, ptr %a209 call void @finch_str_concat(ptr %a207, ptr %a208, ptr %a209) %t210 = load { ptr, i64, i64 }, ptr %a207 store { ptr, i64, i64 } %t210, ptr %a212 - store { ptr, i64, i64 } { ptr @.str.4060, i64 1, i64 0 }, ptr %a213 + store { ptr, i64, i64 } { ptr @.str.4188, i64 1, i64 0 }, ptr %a213 call void @finch_str_concat(ptr %a211, ptr %a212, ptr %a213) store { ptr, i64, i64 } %t210, ptr %a214 call void @finch_str_drop(ptr %a214) @@ -62805,7 +65256,7 @@ then6287: call void @finch_str_drop(ptr %a221) %t222 = load { ptr, i64, i64 }, ptr %a218 store { ptr, i64, i64 } %t222, ptr %a224 - store { ptr, i64, i64 } { ptr @.str.4061, i64 3, i64 0 }, ptr %a225 + store { ptr, i64, i64 } { ptr @.str.4189, i64 3, i64 0 }, ptr %a225 call void @finch_str_concat(ptr %a223, ptr %a224, ptr %a225) store { ptr, i64, i64 } %t222, ptr %a226 call void @finch_str_drop(ptr %a226) @@ -62814,28 +65265,28 @@ then6287: store { ptr, i64, i64 } %t227, ptr %a229 call void @finch_str_drop(ptr %a229) %t230 = load %S.ast.Node, ptr %a11 - call void @finch.gen.panicIf(ptr %t204, { ptr, i64, i64 } %t228, { ptr, i64, i64 } { ptr @.str.4062, i64 16, i64 0 }, %S.ast.Node %t230) + call void @finch.gen.panicIf(ptr %t204, { ptr, i64, i64 } %t228, { ptr, i64, i64 } { ptr @.str.4190, i64 16, i64 0 }, %S.ast.Node %t230) store { ptr, i64, i64 } %t228, ptr %a231 call void @finch_str_drop(ptr %a231) - br label %endif6289 -endif6289: - br label %endif6279 -endif6279: + br label %endif6532 +endif6532: + br label %endif6522 +endif6522: %t232 = load ptr, ptr %a1 %t233 = load i64, ptr %a166 %t234 = load { ptr, i64, i64 }, ptr %a129 %t235 = extractvalue { ptr, i64, i64 } %t234, 1 %t236 = icmp uge i64 %t233, %t235 - br i1 %t236, label %range6290, label %inrange6291 -range6290: - call void @finch_panic_index(ptr @.str.4063, i64 3402, i64 %t233, i64 %t235) + br i1 %t236, label %range6533, label %inrange6534 +range6533: + call void @finch_panic_index(ptr @.str.4191, i64 3540, i64 %t233, i64 %t235) unreachable -inrange6291: +inrange6534: %t237 = extractvalue { ptr, i64, i64 } %t234, 0 %t238 = getelementptr inbounds { ptr, i64, i64 }, ptr %t237, i64 %t233 %t239 = load { ptr, i64, i64 }, ptr %t238 store { ptr, i64, i64 } %t239, ptr %a241 - store { ptr, i64, i64 } { ptr @.str.4064, i64 1, i64 0 }, ptr %a242 + store { ptr, i64, i64 } { ptr @.str.4192, i64 1, i64 0 }, ptr %a242 call void @finch_str_concat(ptr %a240, ptr %a241, ptr %a242) %t243 = load { ptr, i64, i64 }, ptr %a240 %t244 = load { ptr, i64, i64 }, ptr %a178 @@ -62846,7 +65297,7 @@ inrange6291: call void @finch_str_drop(ptr %a248) %t249 = load { ptr, i64, i64 }, ptr %a245 store { ptr, i64, i64 } %t249, ptr %a251 - store { ptr, i64, i64 } { ptr @.str.4065, i64 1, i64 0 }, ptr %a252 + store { ptr, i64, i64 } { ptr @.str.4193, i64 1, i64 0 }, ptr %a252 call void @finch_str_concat(ptr %a250, ptr %a251, ptr %a252) store { ptr, i64, i64 } %t249, ptr %a253 call void @finch_str_drop(ptr %a253) @@ -62860,7 +65311,7 @@ inrange6291: call void @finch_str_drop(ptr %a260) %t261 = load { ptr, i64, i64 }, ptr %a257 store { ptr, i64, i64 } %t261, ptr %a263 - store { ptr, i64, i64 } { ptr @.str.4066, i64 2, i64 0 }, ptr %a264 + store { ptr, i64, i64 } { ptr @.str.4194, i64 2, i64 0 }, ptr %a264 call void @finch_str_concat(ptr %a262, ptr %a263, ptr %a264) store { ptr, i64, i64 } %t261, ptr %a265 call void @finch_str_drop(ptr %a265) @@ -62889,24 +65340,24 @@ inrange6291: call void @finch.drop.S_gen_Val(ptr %a10) call void @finch.drop.S_gen_Val(ptr %a6) ret %S.gen.Val %t282 -endif6261: +endif6504: %t283 = getelementptr inbounds %S.gen.Val, ptr %a6, i32 0, i32 1 %t284 = load %S.ast.Type, ptr %t283 %t285 = call i1 @finch.gen.isFloat(%S.ast.Type %t284) - br i1 %t285, label %then6292, label %endif6294 -then6292: + br i1 %t285, label %then6535, label %endif6537 +then6535: %t286 = mul i64 5, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t287 = call ptr @finch_alloc(i64 %t286) %t288 = getelementptr inbounds { ptr, i64, i64 }, ptr %t287, i64 0 - store { ptr, i64, i64 } { ptr @.str.4067, i64 1, i64 0 }, ptr %t288 + store { ptr, i64, i64 } { ptr @.str.4195, i64 1, i64 0 }, ptr %t288 %t289 = getelementptr inbounds { ptr, i64, i64 }, ptr %t287, i64 1 - store { ptr, i64, i64 } { ptr @.str.4068, i64 1, i64 0 }, ptr %t289 + store { ptr, i64, i64 } { ptr @.str.4196, i64 1, i64 0 }, ptr %t289 %t290 = getelementptr inbounds { ptr, i64, i64 }, ptr %t287, i64 2 - store { ptr, i64, i64 } { ptr @.str.4069, i64 1, i64 0 }, ptr %t290 + store { ptr, i64, i64 } { ptr @.str.4197, i64 1, i64 0 }, ptr %t290 %t291 = getelementptr inbounds { ptr, i64, i64 }, ptr %t287, i64 3 - store { ptr, i64, i64 } { ptr @.str.4070, i64 1, i64 0 }, ptr %t291 + store { ptr, i64, i64 } { ptr @.str.4198, i64 1, i64 0 }, ptr %t291 %t292 = getelementptr inbounds { ptr, i64, i64 }, ptr %t287, i64 4 - store { ptr, i64, i64 } { ptr @.str.4071, i64 1, i64 0 }, ptr %t292 + store { ptr, i64, i64 } { ptr @.str.4199, i64 1, i64 0 }, ptr %t292 %t293 = insertvalue { ptr, i64, i64 } undef, ptr %t287, 0 %t294 = insertvalue { ptr, i64, i64 } %t293, i64 5, 1 %t295 = insertvalue { ptr, i64, i64 } %t294, i64 5, 2 @@ -62914,15 +65365,15 @@ then6292: %t297 = mul i64 5, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t298 = call ptr @finch_alloc(i64 %t297) %t299 = getelementptr inbounds { ptr, i64, i64 }, ptr %t298, i64 0 - store { ptr, i64, i64 } { ptr @.str.4072, i64 4, i64 0 }, ptr %t299 + store { ptr, i64, i64 } { ptr @.str.4200, i64 4, i64 0 }, ptr %t299 %t300 = getelementptr inbounds { ptr, i64, i64 }, ptr %t298, i64 1 - store { ptr, i64, i64 } { ptr @.str.4073, i64 4, i64 0 }, ptr %t300 + store { ptr, i64, i64 } { ptr @.str.4201, i64 4, i64 0 }, ptr %t300 %t301 = getelementptr inbounds { ptr, i64, i64 }, ptr %t298, i64 2 - store { ptr, i64, i64 } { ptr @.str.4074, i64 4, i64 0 }, ptr %t301 + store { ptr, i64, i64 } { ptr @.str.4202, i64 4, i64 0 }, ptr %t301 %t302 = getelementptr inbounds { ptr, i64, i64 }, ptr %t298, i64 3 - store { ptr, i64, i64 } { ptr @.str.4075, i64 4, i64 0 }, ptr %t302 + store { ptr, i64, i64 } { ptr @.str.4203, i64 4, i64 0 }, ptr %t302 %t303 = getelementptr inbounds { ptr, i64, i64 }, ptr %t298, i64 4 - store { ptr, i64, i64 } { ptr @.str.4076, i64 4, i64 0 }, ptr %t303 + store { ptr, i64, i64 } { ptr @.str.4204, i64 4, i64 0 }, ptr %t303 %t304 = insertvalue { ptr, i64, i64 } undef, ptr %t298, 0 %t305 = insertvalue { ptr, i64, i64 } %t304, i64 5, 1 %t306 = insertvalue { ptr, i64, i64 } %t305, i64 5, 2 @@ -62933,56 +65384,56 @@ then6292: %t311 = load i64, ptr %t308 %t312 = load ptr, ptr %a296 store i64 0, ptr %a313 - br label %find.cond6295 -find.cond6295: + br label %find.cond6538 +find.cond6538: %t314 = load i64, ptr %a313 %t315 = icmp slt i64 %t314, %t311 - br i1 %t315, label %find.body6296, label %find.end6299 -find.body6296: + br i1 %t315, label %find.body6539, label %find.end6542 +find.body6539: %t316 = getelementptr inbounds { ptr, i64, i64 }, ptr %t312, i64 %t314 %t317 = load { ptr, i64, i64 }, ptr %t316 store { ptr, i64, i64 } %t317, ptr %a318 store { ptr, i64, i64 } %t309, ptr %a319 %t320 = call i32 @finch_str_eq(ptr %a318, ptr %a319) %t321 = icmp ne i32 %t320, 0 - br i1 %t321, label %find.hit6297, label %find.next6298 -find.hit6297: + br i1 %t321, label %find.hit6540, label %find.next6541 +find.hit6540: store i64 %t314, ptr %a310 - br label %find.end6299 -find.next6298: + br label %find.end6542 +find.next6541: %t322 = add i64 %t314, 1 store i64 %t322, ptr %a313 - br label %find.cond6295 -find.end6299: + br label %find.cond6538 +find.end6542: %t323 = load i64, ptr %a310 store i64 %t323, ptr %a324 %t325 = load i64, ptr %a324 %t326 = icmp slt i64 %t325, 0 - br i1 %t326, label %then6300, label %endif6302 -then6300: + br i1 %t326, label %then6543, label %endif6545 +then6543: %t327 = load ptr, ptr %a1 %t328 = load { ptr, i64, i64 }, ptr %a2 %t329 = load %S.gen.Val, ptr %a6 %t330 = load %S.gen.Val, ptr %a10 %t331 = load %S.ast.Node, ptr %a11 call void @finch.gen.badOperands(ptr %t327, { ptr, i64, i64 } %t328, %S.gen.Val %t329, %S.gen.Val %t330, %S.ast.Node %t331) - br label %endif6302 -endif6302: + br label %endif6545 +endif6545: %t332 = load ptr, ptr %a1 %t333 = load i64, ptr %a324 %t334 = load { ptr, i64, i64 }, ptr %a307 %t335 = extractvalue { ptr, i64, i64 } %t334, 1 %t336 = icmp uge i64 %t333, %t335 - br i1 %t336, label %range6303, label %inrange6304 -range6303: - call void @finch_panic_index(ptr @.str.4077, i64 3411, i64 %t333, i64 %t335) + br i1 %t336, label %range6546, label %inrange6547 +range6546: + call void @finch_panic_index(ptr @.str.4205, i64 3549, i64 %t333, i64 %t335) unreachable -inrange6304: +inrange6547: %t337 = extractvalue { ptr, i64, i64 } %t334, 0 %t338 = getelementptr inbounds { ptr, i64, i64 }, ptr %t337, i64 %t333 %t339 = load { ptr, i64, i64 }, ptr %t338 store { ptr, i64, i64 } %t339, ptr %a341 - store { ptr, i64, i64 } { ptr @.str.4078, i64 1, i64 0 }, ptr %a342 + store { ptr, i64, i64 } { ptr @.str.4206, i64 1, i64 0 }, ptr %a342 call void @finch_str_concat(ptr %a340, ptr %a341, ptr %a342) %t343 = load { ptr, i64, i64 }, ptr %a340 %t344 = load ptr, ptr %a1 @@ -62998,7 +65449,7 @@ inrange6304: call void @finch_str_drop(ptr %a352) %t353 = load { ptr, i64, i64 }, ptr %a348 store { ptr, i64, i64 } %t353, ptr %a355 - store { ptr, i64, i64 } { ptr @.str.4079, i64 1, i64 0 }, ptr %a356 + store { ptr, i64, i64 } { ptr @.str.4207, i64 1, i64 0 }, ptr %a356 call void @finch_str_concat(ptr %a354, ptr %a355, ptr %a356) store { ptr, i64, i64 } %t353, ptr %a357 call void @finch_str_drop(ptr %a357) @@ -63012,7 +65463,7 @@ inrange6304: call void @finch_str_drop(ptr %a364) %t365 = load { ptr, i64, i64 }, ptr %a361 store { ptr, i64, i64 } %t365, ptr %a367 - store { ptr, i64, i64 } { ptr @.str.4080, i64 2, i64 0 }, ptr %a368 + store { ptr, i64, i64 } { ptr @.str.4208, i64 2, i64 0 }, ptr %a368 call void @finch_str_concat(ptr %a366, ptr %a367, ptr %a368) store { ptr, i64, i64 } %t365, ptr %a369 call void @finch_str_drop(ptr %a369) @@ -63040,7 +65491,7 @@ inrange6304: call void @finch.drop.S_gen_Val(ptr %a10) call void @finch.drop.S_gen_Val(ptr %a6) ret %S.gen.Val %t386 -endif6294: +endif6537: %t387 = load ptr, ptr %a1 %t388 = load { ptr, i64, i64 }, ptr %a2 %t389 = load %S.gen.Val, ptr %a6 @@ -63302,145 +65753,145 @@ entry: store %S.ast.Node %p4, ptr %a11 %t12 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t12, ptr %a13 - store { ptr, i64, i64 } { ptr @.str.4081, i64 2, i64 0 }, ptr %a14 + store { ptr, i64, i64 } { ptr @.str.4209, i64 2, i64 0 }, ptr %a14 %t15 = call i32 @finch_str_eq(ptr %a13, ptr %a14) %t16 = icmp ne i32 %t15, 0 - br label %logic.from6305 -logic.from6305: - br i1 %t16, label %logic.end6307, label %logic.rhs6306 -logic.rhs6306: + br label %logic.from6548 +logic.from6548: + br i1 %t16, label %logic.end6550, label %logic.rhs6549 +logic.rhs6549: %t17 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t17, ptr %a18 - store { ptr, i64, i64 } { ptr @.str.4082, i64 2, i64 0 }, ptr %a19 + store { ptr, i64, i64 } { ptr @.str.4210, i64 2, i64 0 }, ptr %a19 %t20 = call i32 @finch_str_eq(ptr %a18, ptr %a19) %t21 = icmp ne i32 %t20, 0 - br label %logic.rend6308 -logic.rend6308: - br label %logic.end6307 -logic.end6307: - %t22 = phi i1 [ true, %logic.from6305 ], [ %t21, %logic.rend6308 ] + br label %logic.rend6551 +logic.rend6551: + br label %logic.end6550 +logic.end6550: + %t22 = phi i1 [ true, %logic.from6548 ], [ %t21, %logic.rend6551 ] store i1 %t22, ptr %a23 %t24 = getelementptr inbounds %S.gen.Val, ptr %a6, i32 0, i32 1 %t25 = getelementptr inbounds %S.ast.Type, ptr %t24, i32 0, i32 0 %t26 = load { ptr, i64, i64 }, ptr %t25 store { ptr, i64, i64 } %t26, ptr %a27 - store { ptr, i64, i64 } { ptr @.str.4083, i64 3, i64 0 }, ptr %a28 + store { ptr, i64, i64 } { ptr @.str.4211, i64 3, i64 0 }, ptr %a28 %t29 = call i32 @finch_str_eq(ptr %a27, ptr %a28) %t30 = icmp ne i32 %t29, 0 - br label %logic.from6309 -logic.from6309: - br i1 %t30, label %logic.end6311, label %logic.rhs6310 -logic.rhs6310: + br label %logic.from6552 +logic.from6552: + br i1 %t30, label %logic.end6554, label %logic.rhs6553 +logic.rhs6553: %t31 = getelementptr inbounds %S.gen.Val, ptr %a10, i32 0, i32 1 %t32 = getelementptr inbounds %S.ast.Type, ptr %t31, i32 0, i32 0 %t33 = load { ptr, i64, i64 }, ptr %t32 store { ptr, i64, i64 } %t33, ptr %a34 - store { ptr, i64, i64 } { ptr @.str.4084, i64 3, i64 0 }, ptr %a35 + store { ptr, i64, i64 } { ptr @.str.4212, i64 3, i64 0 }, ptr %a35 %t36 = call i32 @finch_str_eq(ptr %a34, ptr %a35) %t37 = icmp ne i32 %t36, 0 - br label %logic.rend6312 -logic.rend6312: - br label %logic.end6311 -logic.end6311: - %t38 = phi i1 [ true, %logic.from6309 ], [ %t37, %logic.rend6312 ] - br label %logic.from6313 -logic.from6313: - br i1 %t38, label %logic.end6315, label %logic.rhs6314 -logic.rhs6314: + br label %logic.rend6555 +logic.rend6555: + br label %logic.end6554 +logic.end6554: + %t38 = phi i1 [ true, %logic.from6552 ], [ %t37, %logic.rend6555 ] + br label %logic.from6556 +logic.from6556: + br i1 %t38, label %logic.end6558, label %logic.rhs6557 +logic.rhs6557: %t39 = getelementptr inbounds %S.gen.Val, ptr %a6, i32 0, i32 1 %t40 = getelementptr inbounds %S.ast.Type, ptr %t39, i32 0, i32 0 %t41 = load { ptr, i64, i64 }, ptr %t40 store { ptr, i64, i64 } %t41, ptr %a42 - store { ptr, i64, i64 } { ptr @.str.4085, i64 4, i64 0 }, ptr %a43 + store { ptr, i64, i64 } { ptr @.str.4213, i64 4, i64 0 }, ptr %a43 %t44 = call i32 @finch_str_eq(ptr %a42, ptr %a43) %t45 = icmp ne i32 %t44, 0 - br label %logic.rend6316 -logic.rend6316: - br label %logic.end6315 -logic.end6315: - %t46 = phi i1 [ true, %logic.from6313 ], [ %t45, %logic.rend6316 ] - br label %logic.from6317 -logic.from6317: - br i1 %t46, label %logic.end6319, label %logic.rhs6318 -logic.rhs6318: + br label %logic.rend6559 +logic.rend6559: + br label %logic.end6558 +logic.end6558: + %t46 = phi i1 [ true, %logic.from6556 ], [ %t45, %logic.rend6559 ] + br label %logic.from6560 +logic.from6560: + br i1 %t46, label %logic.end6562, label %logic.rhs6561 +logic.rhs6561: %t47 = getelementptr inbounds %S.gen.Val, ptr %a10, i32 0, i32 1 %t48 = getelementptr inbounds %S.ast.Type, ptr %t47, i32 0, i32 0 %t49 = load { ptr, i64, i64 }, ptr %t48 store { ptr, i64, i64 } %t49, ptr %a50 - store { ptr, i64, i64 } { ptr @.str.4086, i64 4, i64 0 }, ptr %a51 + store { ptr, i64, i64 } { ptr @.str.4214, i64 4, i64 0 }, ptr %a51 %t52 = call i32 @finch_str_eq(ptr %a50, ptr %a51) %t53 = icmp ne i32 %t52, 0 - br label %logic.rend6320 -logic.rend6320: - br label %logic.end6319 -logic.end6319: - %t54 = phi i1 [ true, %logic.from6317 ], [ %t53, %logic.rend6320 ] - br i1 %t54, label %then6321, label %endif6323 -then6321: + br label %logic.rend6563 +logic.rend6563: + br label %logic.end6562 +logic.end6562: + %t54 = phi i1 [ true, %logic.from6560 ], [ %t53, %logic.rend6563 ] + br i1 %t54, label %then6564, label %endif6566 +then6564: %t55 = getelementptr inbounds %S.gen.Val, ptr %a6, i32 0, i32 1 %t56 = getelementptr inbounds %S.ast.Type, ptr %t55, i32 0, i32 0 %t57 = load { ptr, i64, i64 }, ptr %t56 store { ptr, i64, i64 } %t57, ptr %a58 - store { ptr, i64, i64 } { ptr @.str.4087, i64 3, i64 0 }, ptr %a59 + store { ptr, i64, i64 } { ptr @.str.4215, i64 3, i64 0 }, ptr %a59 %t60 = call i32 @finch_str_eq(ptr %a58, ptr %a59) %t61 = icmp ne i32 %t60, 0 - br label %logic.from6324 -logic.from6324: - br i1 %t61, label %logic.end6326, label %logic.rhs6325 -logic.rhs6325: + br label %logic.from6567 +logic.from6567: + br i1 %t61, label %logic.end6569, label %logic.rhs6568 +logic.rhs6568: %t62 = getelementptr inbounds %S.gen.Val, ptr %a10, i32 0, i32 1 %t63 = getelementptr inbounds %S.ast.Type, ptr %t62, i32 0, i32 0 %t64 = load { ptr, i64, i64 }, ptr %t63 store { ptr, i64, i64 } %t64, ptr %a65 - store { ptr, i64, i64 } { ptr @.str.4088, i64 3, i64 0 }, ptr %a66 + store { ptr, i64, i64 } { ptr @.str.4216, i64 3, i64 0 }, ptr %a66 %t67 = call i32 @finch_str_eq(ptr %a65, ptr %a66) %t68 = icmp ne i32 %t67, 0 - br label %logic.rend6327 -logic.rend6327: - br label %logic.end6326 -logic.end6326: - %t69 = phi i1 [ true, %logic.from6324 ], [ %t68, %logic.rend6327 ] - br i1 %t69, label %then6328, label %endif6330 -then6328: + br label %logic.rend6570 +logic.rend6570: + br label %logic.end6569 +logic.end6569: + %t69 = phi i1 [ true, %logic.from6567 ], [ %t68, %logic.rend6570 ] + br i1 %t69, label %then6571, label %endif6573 +then6571: %t70 = load ptr, ptr %a1 %t71 = load %S.ast.Node, ptr %a11 - call void @finch.gen.fail(ptr %t70, %S.ast.Node %t71, { ptr, i64, i64 } { ptr @.str.4089, i64 59, i64 0 }) - br label %endif6330 -endif6330: + call void @finch.gen.fail(ptr %t70, %S.ast.Node %t71, { ptr, i64, i64 } { ptr @.str.4217, i64 59, i64 0 }) + br label %endif6573 +endif6573: %t72 = load i1, ptr %a23 %t73 = xor i1 %t72, true - br i1 %t73, label %then6331, label %endif6333 -then6331: + br i1 %t73, label %then6574, label %endif6576 +then6574: %t74 = load ptr, ptr %a1 %t75 = load { ptr, i64, i64 }, ptr %a2 %t76 = load %S.gen.Val, ptr %a6 %t77 = load %S.gen.Val, ptr %a10 %t78 = load %S.ast.Node, ptr %a11 call void @finch.gen.badOperands(ptr %t74, { ptr, i64, i64 } %t75, %S.gen.Val %t76, %S.gen.Val %t77, %S.ast.Node %t78) - br label %endif6333 -endif6333: - store { ptr, i64, i64 } { ptr @.str.4090, i64 2, i64 0 }, ptr %a79 + br label %endif6576 +endif6576: + store { ptr, i64, i64 } { ptr @.str.4218, i64 2, i64 0 }, ptr %a79 %t80 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t80, ptr %a81 - store { ptr, i64, i64 } { ptr @.str.4091, i64 2, i64 0 }, ptr %a82 + store { ptr, i64, i64 } { ptr @.str.4219, i64 2, i64 0 }, ptr %a82 %t83 = call i32 @finch_str_eq(ptr %a81, ptr %a82) %t84 = icmp ne i32 %t83, 0 - br i1 %t84, label %then6334, label %endif6336 -then6334: + br i1 %t84, label %then6577, label %endif6579 +then6577: %t85 = load { ptr, i64, i64 }, ptr %a79 - store { ptr, i64, i64 } { ptr @.str.4092, i64 2, i64 0 }, ptr %a79 + store { ptr, i64, i64 } { ptr @.str.4220, i64 2, i64 0 }, ptr %a79 store { ptr, i64, i64 } %t85, ptr %a86 call void @finch_str_drop(ptr %a86) - br label %endif6336 -endif6336: + br label %endif6579 +endif6579: %t87 = load ptr, ptr %a1 %t88 = load { ptr, i64, i64 }, ptr %a79 - store { ptr, i64, i64 } { ptr @.str.4093, i64 5, i64 0 }, ptr %a90 + store { ptr, i64, i64 } { ptr @.str.4221, i64 5, i64 0 }, ptr %a90 store { ptr, i64, i64 } %t88, ptr %a91 call void @finch_str_concat(ptr %a89, ptr %a90, ptr %a91) %t92 = load { ptr, i64, i64 }, ptr %a89 store { ptr, i64, i64 } %t92, ptr %a94 - store { ptr, i64, i64 } { ptr @.str.4094, i64 5, i64 0 }, ptr %a95 + store { ptr, i64, i64 } { ptr @.str.4222, i64 5, i64 0 }, ptr %a95 call void @finch_str_concat(ptr %a93, ptr %a94, ptr %a95) store { ptr, i64, i64 } %t92, ptr %a96 call void @finch_str_drop(ptr %a96) @@ -63454,7 +65905,7 @@ endif6336: call void @finch_str_drop(ptr %a103) %t104 = load { ptr, i64, i64 }, ptr %a100 store { ptr, i64, i64 } %t104, ptr %a106 - store { ptr, i64, i64 } { ptr @.str.4095, i64 2, i64 0 }, ptr %a107 + store { ptr, i64, i64 } { ptr @.str.4223, i64 2, i64 0 }, ptr %a107 call void @finch_str_concat(ptr %a105, ptr %a106, ptr %a107) store { ptr, i64, i64 } %t104, ptr %a108 call void @finch_str_drop(ptr %a108) @@ -63471,53 +65922,53 @@ endif6336: store { ptr, i64, i64 } %t116, ptr %a118 call void @finch_str_drop(ptr %a118) %t119 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t117, 0 - %t120 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4096, i64 4, i64 0 }) + %t120 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4224, i64 4, i64 0 }) %t121 = insertvalue %S.gen.Val %t119, %S.ast.Type %t120, 1 call void @finch_str_drop(ptr %a79) call void @finch.drop.S_gen_Val(ptr %a10) call void @finch.drop.S_gen_Val(ptr %a6) ret %S.gen.Val %t121 -endif6323: +endif6566: %t122 = getelementptr inbounds %S.gen.Val, ptr %a6, i32 0, i32 1 %t123 = getelementptr inbounds %S.ast.Type, ptr %t122, i32 0, i32 0 %t124 = load { ptr, i64, i64 }, ptr %t123 store { ptr, i64, i64 } %t124, ptr %a125 - store { ptr, i64, i64 } { ptr @.str.4097, i64 3, i64 0 }, ptr %a126 + store { ptr, i64, i64 } { ptr @.str.4225, i64 3, i64 0 }, ptr %a126 %t127 = call i32 @finch_str_eq(ptr %a125, ptr %a126) %t128 = icmp ne i32 %t127, 0 - br label %logic.from6337 -logic.from6337: - br i1 %t128, label %logic.rhs6338, label %logic.end6339 -logic.rhs6338: + br label %logic.from6580 +logic.from6580: + br i1 %t128, label %logic.rhs6581, label %logic.end6582 +logic.rhs6581: %t129 = getelementptr inbounds %S.gen.Val, ptr %a10, i32 0, i32 1 %t130 = getelementptr inbounds %S.ast.Type, ptr %t129, i32 0, i32 0 %t131 = load { ptr, i64, i64 }, ptr %t130 store { ptr, i64, i64 } %t131, ptr %a132 - store { ptr, i64, i64 } { ptr @.str.4098, i64 3, i64 0 }, ptr %a133 + store { ptr, i64, i64 } { ptr @.str.4226, i64 3, i64 0 }, ptr %a133 %t134 = call i32 @finch_str_eq(ptr %a132, ptr %a133) %t135 = icmp ne i32 %t134, 0 - br label %logic.rend6340 -logic.rend6340: - br label %logic.end6339 -logic.end6339: - %t136 = phi i1 [ false, %logic.from6337 ], [ %t135, %logic.rend6340 ] - br i1 %t136, label %then6341, label %endif6343 -then6341: + br label %logic.rend6583 +logic.rend6583: + br label %logic.end6582 +logic.end6582: + %t136 = phi i1 [ false, %logic.from6580 ], [ %t135, %logic.rend6583 ] + br i1 %t136, label %then6584, label %endif6586 +then6584: %t137 = load i1, ptr %a23 - br i1 %t137, label %then6344, label %endif6346 -then6344: + br i1 %t137, label %then6587, label %endif6589 +then6587: %t138 = load ptr, ptr %a1 %t139 = load ptr, ptr %a1 %t140 = load %S.gen.Val, ptr %a6 %t141 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t139, %S.gen.Val %t140) - store { ptr, i64, i64 } { ptr @.str.4099, i64 27, i64 0 }, ptr %a143 + store { ptr, i64, i64 } { ptr @.str.4227, i64 27, i64 0 }, ptr %a143 store { ptr, i64, i64 } %t141, ptr %a144 call void @finch_str_concat(ptr %a142, ptr %a143, ptr %a144) store { ptr, i64, i64 } %t141, ptr %a145 call void @finch_str_drop(ptr %a145) %t146 = load { ptr, i64, i64 }, ptr %a142 store { ptr, i64, i64 } %t146, ptr %a148 - store { ptr, i64, i64 } { ptr @.str.4100, i64 6, i64 0 }, ptr %a149 + store { ptr, i64, i64 } { ptr @.str.4228, i64 6, i64 0 }, ptr %a149 call void @finch_str_concat(ptr %a147, ptr %a148, ptr %a149) store { ptr, i64, i64 } %t146, ptr %a150 call void @finch_str_drop(ptr %a150) @@ -63534,7 +65985,7 @@ then6344: call void @finch_str_drop(ptr %a159) %t160 = load { ptr, i64, i64 }, ptr %a155 store { ptr, i64, i64 } %t160, ptr %a162 - store { ptr, i64, i64 } { ptr @.str.4101, i64 1, i64 0 }, ptr %a163 + store { ptr, i64, i64 } { ptr @.str.4229, i64 1, i64 0 }, ptr %a163 call void @finch_str_concat(ptr %a161, ptr %a162, ptr %a163) store { ptr, i64, i64 } %t160, ptr %a164 call void @finch_str_drop(ptr %a164) @@ -63543,28 +65994,28 @@ then6344: store { ptr, i64, i64 } %t165, ptr %a167 call void @finch_str_drop(ptr %a167) store { ptr, i64, i64 } %t166, ptr %a168 - store { ptr, i64, i64 } { ptr @.str.4102, i64 2, i64 0 }, ptr %a169 + store { ptr, i64, i64 } { ptr @.str.4230, i64 2, i64 0 }, ptr %a169 %t170 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t170, ptr %a171 - store { ptr, i64, i64 } { ptr @.str.4103, i64 2, i64 0 }, ptr %a172 + store { ptr, i64, i64 } { ptr @.str.4231, i64 2, i64 0 }, ptr %a172 %t173 = call i32 @finch_str_eq(ptr %a171, ptr %a172) %t174 = icmp ne i32 %t173, 0 - br i1 %t174, label %then6347, label %endif6349 -then6347: + br i1 %t174, label %then6590, label %endif6592 +then6590: %t175 = load { ptr, i64, i64 }, ptr %a169 - store { ptr, i64, i64 } { ptr @.str.4104, i64 2, i64 0 }, ptr %a169 + store { ptr, i64, i64 } { ptr @.str.4232, i64 2, i64 0 }, ptr %a169 store { ptr, i64, i64 } %t175, ptr %a176 call void @finch_str_drop(ptr %a176) - br label %endif6349 -endif6349: + br label %endif6592 +endif6592: %t177 = load ptr, ptr %a1 %t178 = load { ptr, i64, i64 }, ptr %a169 - store { ptr, i64, i64 } { ptr @.str.4105, i64 5, i64 0 }, ptr %a180 + store { ptr, i64, i64 } { ptr @.str.4233, i64 5, i64 0 }, ptr %a180 store { ptr, i64, i64 } %t178, ptr %a181 call void @finch_str_concat(ptr %a179, ptr %a180, ptr %a181) %t182 = load { ptr, i64, i64 }, ptr %a179 store { ptr, i64, i64 } %t182, ptr %a184 - store { ptr, i64, i64 } { ptr @.str.4106, i64 5, i64 0 }, ptr %a185 + store { ptr, i64, i64 } { ptr @.str.4234, i64 5, i64 0 }, ptr %a185 call void @finch_str_concat(ptr %a183, ptr %a184, ptr %a185) store { ptr, i64, i64 } %t182, ptr %a186 call void @finch_str_drop(ptr %a186) @@ -63577,7 +66028,7 @@ endif6349: call void @finch_str_drop(ptr %a192) %t193 = load { ptr, i64, i64 }, ptr %a189 store { ptr, i64, i64 } %t193, ptr %a195 - store { ptr, i64, i64 } { ptr @.str.4107, i64 3, i64 0 }, ptr %a196 + store { ptr, i64, i64 } { ptr @.str.4235, i64 3, i64 0 }, ptr %a196 call void @finch_str_concat(ptr %a194, ptr %a195, ptr %a196) store { ptr, i64, i64 } %t193, ptr %a197 call void @finch_str_drop(ptr %a197) @@ -63597,7 +66048,7 @@ endif6349: call void @finch_str_copy(ptr %a208, ptr %a207) %t209 = load { ptr, i64, i64 }, ptr %a208 %t210 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t209, 0 - %t211 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4108, i64 4, i64 0 }) + %t211 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4236, i64 4, i64 0 }) %t212 = insertvalue %S.gen.Val %t210, %S.ast.Type %t211, 1 call void @finch_str_drop(ptr %a201) call void @finch_str_drop(ptr %a169) @@ -63605,19 +66056,19 @@ endif6349: call void @finch.drop.S_gen_Val(ptr %a10) call void @finch.drop.S_gen_Val(ptr %a6) ret %S.gen.Val %t212 -endif6346: +endif6589: %t213 = load ptr, ptr %a1 %t214 = load ptr, ptr %a1 %t215 = load %S.gen.Val, ptr %a6 %t216 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t214, %S.gen.Val %t215) - store { ptr, i64, i64 } { ptr @.str.4109, i64 28, i64 0 }, ptr %a218 + store { ptr, i64, i64 } { ptr @.str.4237, i64 28, i64 0 }, ptr %a218 store { ptr, i64, i64 } %t216, ptr %a219 call void @finch_str_concat(ptr %a217, ptr %a218, ptr %a219) store { ptr, i64, i64 } %t216, ptr %a220 call void @finch_str_drop(ptr %a220) %t221 = load { ptr, i64, i64 }, ptr %a217 store { ptr, i64, i64 } %t221, ptr %a223 - store { ptr, i64, i64 } { ptr @.str.4110, i64 6, i64 0 }, ptr %a224 + store { ptr, i64, i64 } { ptr @.str.4238, i64 6, i64 0 }, ptr %a224 call void @finch_str_concat(ptr %a222, ptr %a223, ptr %a224) store { ptr, i64, i64 } %t221, ptr %a225 call void @finch_str_drop(ptr %a225) @@ -63634,7 +66085,7 @@ endif6346: call void @finch_str_drop(ptr %a234) %t235 = load { ptr, i64, i64 }, ptr %a230 store { ptr, i64, i64 } %t235, ptr %a237 - store { ptr, i64, i64 } { ptr @.str.4111, i64 1, i64 0 }, ptr %a238 + store { ptr, i64, i64 } { ptr @.str.4239, i64 1, i64 0 }, ptr %a238 call void @finch_str_concat(ptr %a236, ptr %a237, ptr %a238) store { ptr, i64, i64 } %t235, ptr %a239 call void @finch_str_drop(ptr %a239) @@ -63646,14 +66097,14 @@ endif6346: %t244 = load ptr, ptr %a1 %t245 = load { ptr, i64, i64 }, ptr %a2 %t246 = call { ptr, i64, i64 } @finch.gen.intPred({ ptr, i64, i64 } %t245, i1 true) - store { ptr, i64, i64 } { ptr @.str.4112, i64 5, i64 0 }, ptr %a248 + store { ptr, i64, i64 } { ptr @.str.4240, i64 5, i64 0 }, ptr %a248 store { ptr, i64, i64 } %t246, ptr %a249 call void @finch_str_concat(ptr %a247, ptr %a248, ptr %a249) store { ptr, i64, i64 } %t246, ptr %a250 call void @finch_str_drop(ptr %a250) %t251 = load { ptr, i64, i64 }, ptr %a247 store { ptr, i64, i64 } %t251, ptr %a253 - store { ptr, i64, i64 } { ptr @.str.4113, i64 5, i64 0 }, ptr %a254 + store { ptr, i64, i64 } { ptr @.str.4241, i64 5, i64 0 }, ptr %a254 call void @finch_str_concat(ptr %a252, ptr %a253, ptr %a254) store { ptr, i64, i64 } %t251, ptr %a255 call void @finch_str_drop(ptr %a255) @@ -63666,7 +66117,7 @@ endif6346: call void @finch_str_drop(ptr %a261) %t262 = load { ptr, i64, i64 }, ptr %a258 store { ptr, i64, i64 } %t262, ptr %a264 - store { ptr, i64, i64 } { ptr @.str.4114, i64 3, i64 0 }, ptr %a265 + store { ptr, i64, i64 } { ptr @.str.4242, i64 3, i64 0 }, ptr %a265 call void @finch_str_concat(ptr %a263, ptr %a264, ptr %a265) store { ptr, i64, i64 } %t262, ptr %a266 call void @finch_str_drop(ptr %a266) @@ -63686,27 +66137,27 @@ endif6346: call void @finch_str_copy(ptr %a277, ptr %a276) %t278 = load { ptr, i64, i64 }, ptr %a277 %t279 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t278, 0 - %t280 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4115, i64 4, i64 0 }) + %t280 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4243, i64 4, i64 0 }) %t281 = insertvalue %S.gen.Val %t279, %S.ast.Type %t280, 1 call void @finch_str_drop(ptr %a270) call void @finch_str_drop(ptr %a243) call void @finch.drop.S_gen_Val(ptr %a10) call void @finch.drop.S_gen_Val(ptr %a6) ret %S.gen.Val %t281 -endif6343: +endif6586: %t282 = load ptr, ptr %a1 %t283 = call i1 @finch.gen.unify(ptr %t282, ptr %a6, ptr %a10) %t284 = xor i1 %t283, true - br i1 %t284, label %then6350, label %endif6352 -then6350: + br i1 %t284, label %then6593, label %endif6595 +then6593: %t285 = load ptr, ptr %a1 %t286 = load { ptr, i64, i64 }, ptr %a2 %t287 = load %S.gen.Val, ptr %a6 %t288 = load %S.gen.Val, ptr %a10 %t289 = load %S.ast.Node, ptr %a11 call void @finch.gen.badOperands(ptr %t285, { ptr, i64, i64 } %t286, %S.gen.Val %t287, %S.gen.Val %t288, %S.ast.Node %t289) - br label %endif6352 -endif6352: + br label %endif6595 +endif6595: %t290 = getelementptr inbounds %S.gen.Val, ptr %a6, i32 0, i32 1 %t291 = getelementptr inbounds %S.ast.Type, ptr %t290, i32 0, i32 0 %t292 = load { ptr, i64, i64 }, ptr %t291 @@ -63717,22 +66168,22 @@ endif6352: %t297 = getelementptr inbounds %S.gen.Val, ptr %a6, i32 0, i32 1 %t298 = load %S.ast.Type, ptr %t297 %t299 = call i1 @finch.gen.isFloat(%S.ast.Type %t298) - br i1 %t299, label %then6353, label %endif6355 -then6353: + br i1 %t299, label %then6596, label %endif6598 +then6596: %t300 = mul i64 6, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t301 = call ptr @finch_alloc(i64 %t300) %t302 = getelementptr inbounds { ptr, i64, i64 }, ptr %t301, i64 0 - store { ptr, i64, i64 } { ptr @.str.4116, i64 2, i64 0 }, ptr %t302 + store { ptr, i64, i64 } { ptr @.str.4244, i64 2, i64 0 }, ptr %t302 %t303 = getelementptr inbounds { ptr, i64, i64 }, ptr %t301, i64 1 - store { ptr, i64, i64 } { ptr @.str.4117, i64 2, i64 0 }, ptr %t303 + store { ptr, i64, i64 } { ptr @.str.4245, i64 2, i64 0 }, ptr %t303 %t304 = getelementptr inbounds { ptr, i64, i64 }, ptr %t301, i64 2 - store { ptr, i64, i64 } { ptr @.str.4118, i64 1, i64 0 }, ptr %t304 + store { ptr, i64, i64 } { ptr @.str.4246, i64 1, i64 0 }, ptr %t304 %t305 = getelementptr inbounds { ptr, i64, i64 }, ptr %t301, i64 3 - store { ptr, i64, i64 } { ptr @.str.4119, i64 2, i64 0 }, ptr %t305 + store { ptr, i64, i64 } { ptr @.str.4247, i64 2, i64 0 }, ptr %t305 %t306 = getelementptr inbounds { ptr, i64, i64 }, ptr %t301, i64 4 - store { ptr, i64, i64 } { ptr @.str.4120, i64 1, i64 0 }, ptr %t306 + store { ptr, i64, i64 } { ptr @.str.4248, i64 1, i64 0 }, ptr %t306 %t307 = getelementptr inbounds { ptr, i64, i64 }, ptr %t301, i64 5 - store { ptr, i64, i64 } { ptr @.str.4121, i64 2, i64 0 }, ptr %t307 + store { ptr, i64, i64 } { ptr @.str.4249, i64 2, i64 0 }, ptr %t307 %t308 = insertvalue { ptr, i64, i64 } undef, ptr %t301, 0 %t309 = insertvalue { ptr, i64, i64 } %t308, i64 6, 1 %t310 = insertvalue { ptr, i64, i64 } %t309, i64 6, 2 @@ -63740,17 +66191,17 @@ then6353: %t312 = mul i64 6, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t313 = call ptr @finch_alloc(i64 %t312) %t314 = getelementptr inbounds { ptr, i64, i64 }, ptr %t313, i64 0 - store { ptr, i64, i64 } { ptr @.str.4122, i64 3, i64 0 }, ptr %t314 + store { ptr, i64, i64 } { ptr @.str.4250, i64 3, i64 0 }, ptr %t314 %t315 = getelementptr inbounds { ptr, i64, i64 }, ptr %t313, i64 1 - store { ptr, i64, i64 } { ptr @.str.4123, i64 3, i64 0 }, ptr %t315 + store { ptr, i64, i64 } { ptr @.str.4251, i64 3, i64 0 }, ptr %t315 %t316 = getelementptr inbounds { ptr, i64, i64 }, ptr %t313, i64 2 - store { ptr, i64, i64 } { ptr @.str.4124, i64 3, i64 0 }, ptr %t316 + store { ptr, i64, i64 } { ptr @.str.4252, i64 3, i64 0 }, ptr %t316 %t317 = getelementptr inbounds { ptr, i64, i64 }, ptr %t313, i64 3 - store { ptr, i64, i64 } { ptr @.str.4125, i64 3, i64 0 }, ptr %t317 + store { ptr, i64, i64 } { ptr @.str.4253, i64 3, i64 0 }, ptr %t317 %t318 = getelementptr inbounds { ptr, i64, i64 }, ptr %t313, i64 4 - store { ptr, i64, i64 } { ptr @.str.4126, i64 3, i64 0 }, ptr %t318 + store { ptr, i64, i64 } { ptr @.str.4254, i64 3, i64 0 }, ptr %t318 %t319 = getelementptr inbounds { ptr, i64, i64 }, ptr %t313, i64 5 - store { ptr, i64, i64 } { ptr @.str.4127, i64 3, i64 0 }, ptr %t319 + store { ptr, i64, i64 } { ptr @.str.4255, i64 3, i64 0 }, ptr %t319 %t320 = insertvalue { ptr, i64, i64 } undef, ptr %t313, 0 %t321 = insertvalue { ptr, i64, i64 } %t320, i64 6, 1 %t322 = insertvalue { ptr, i64, i64 } %t321, i64 6, 2 @@ -63762,45 +66213,45 @@ then6353: %t328 = load i64, ptr %t325 %t329 = load ptr, ptr %a311 store i64 0, ptr %a330 - br label %find.cond6356 -find.cond6356: + br label %find.cond6599 +find.cond6599: %t331 = load i64, ptr %a330 %t332 = icmp slt i64 %t331, %t328 - br i1 %t332, label %find.body6357, label %find.end6360 -find.body6357: + br i1 %t332, label %find.body6600, label %find.end6603 +find.body6600: %t333 = getelementptr inbounds { ptr, i64, i64 }, ptr %t329, i64 %t331 %t334 = load { ptr, i64, i64 }, ptr %t333 store { ptr, i64, i64 } %t334, ptr %a335 store { ptr, i64, i64 } %t326, ptr %a336 %t337 = call i32 @finch_str_eq(ptr %a335, ptr %a336) %t338 = icmp ne i32 %t337, 0 - br i1 %t338, label %find.hit6358, label %find.next6359 -find.hit6358: + br i1 %t338, label %find.hit6601, label %find.next6602 +find.hit6601: store i64 %t331, ptr %a327 - br label %find.end6360 -find.next6359: + br label %find.end6603 +find.next6602: %t339 = add i64 %t331, 1 store i64 %t339, ptr %a330 - br label %find.cond6356 -find.end6360: + br label %find.cond6599 +find.end6603: %t340 = load i64, ptr %a327 %t341 = load { ptr, i64, i64 }, ptr %a323 %t342 = extractvalue { ptr, i64, i64 } %t341, 1 %t343 = icmp uge i64 %t340, %t342 - br i1 %t343, label %range6361, label %inrange6362 -range6361: - call void @finch_panic_index(ptr @.str.4129, i64 3457, i64 %t340, i64 %t342) + br i1 %t343, label %range6604, label %inrange6605 +range6604: + call void @finch_panic_index(ptr @.str.4257, i64 3595, i64 %t340, i64 %t342) unreachable -inrange6362: +inrange6605: %t344 = extractvalue { ptr, i64, i64 } %t341, 0 %t345 = getelementptr inbounds { ptr, i64, i64 }, ptr %t344, i64 %t340 %t346 = load { ptr, i64, i64 }, ptr %t345 - store { ptr, i64, i64 } { ptr @.str.4128, i64 5, i64 0 }, ptr %a348 + store { ptr, i64, i64 } { ptr @.str.4256, i64 5, i64 0 }, ptr %a348 store { ptr, i64, i64 } %t346, ptr %a349 call void @finch_str_concat(ptr %a347, ptr %a348, ptr %a349) %t350 = load { ptr, i64, i64 }, ptr %a347 store { ptr, i64, i64 } %t350, ptr %a352 - store { ptr, i64, i64 } { ptr @.str.4130, i64 1, i64 0 }, ptr %a353 + store { ptr, i64, i64 } { ptr @.str.4258, i64 1, i64 0 }, ptr %a353 call void @finch_str_concat(ptr %a351, ptr %a352, ptr %a353) store { ptr, i64, i64 } %t350, ptr %a354 call void @finch_str_drop(ptr %a354) @@ -63818,7 +66269,7 @@ inrange6362: call void @finch_str_drop(ptr %a364) %t365 = load { ptr, i64, i64 }, ptr %a360 store { ptr, i64, i64 } %t365, ptr %a367 - store { ptr, i64, i64 } { ptr @.str.4131, i64 1, i64 0 }, ptr %a368 + store { ptr, i64, i64 } { ptr @.str.4259, i64 1, i64 0 }, ptr %a368 call void @finch_str_concat(ptr %a366, ptr %a367, ptr %a368) store { ptr, i64, i64 } %t365, ptr %a369 call void @finch_str_drop(ptr %a369) @@ -63832,7 +66283,7 @@ inrange6362: call void @finch_str_drop(ptr %a376) %t377 = load { ptr, i64, i64 }, ptr %a373 store { ptr, i64, i64 } %t377, ptr %a379 - store { ptr, i64, i64 } { ptr @.str.4132, i64 2, i64 0 }, ptr %a380 + store { ptr, i64, i64 } { ptr @.str.4260, i64 2, i64 0 }, ptr %a380 call void @finch_str_concat(ptr %a378, ptr %a379, ptr %a380) store { ptr, i64, i64 } %t377, ptr %a381 call void @finch_str_drop(ptr %a381) @@ -63849,7 +66300,7 @@ inrange6362: store { ptr, i64, i64 } %t389, ptr %a391 call void @finch_str_drop(ptr %a391) %t392 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t390, 0 - %t393 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4133, i64 4, i64 0 }) + %t393 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4261, i64 4, i64 0 }) %t394 = insertvalue %S.gen.Val %t392, %S.ast.Type %t393, 1 call void @finch.drop.arr_str(ptr %a323) call void @finch.drop.arr_str(ptr %a311) @@ -63857,45 +66308,45 @@ inrange6362: call void @finch.drop.S_gen_Val(ptr %a10) call void @finch.drop.S_gen_Val(ptr %a6) ret %S.gen.Val %t394 -endif6355: +endif6598: %t395 = load { ptr, i64, i64 }, ptr %a296 store { ptr, i64, i64 } %t395, ptr %a396 - store { ptr, i64, i64 } { ptr @.str.4134, i64 4, i64 0 }, ptr %a397 + store { ptr, i64, i64 } { ptr @.str.4262, i64 4, i64 0 }, ptr %a397 %t398 = call i32 @finch_str_eq(ptr %a396, ptr %a397) %t399 = icmp ne i32 %t398, 0 - br i1 %t399, label %then6363, label %endif6365 -then6363: + br i1 %t399, label %then6606, label %endif6608 +then6606: %t400 = load i1, ptr %a23 %t401 = xor i1 %t400, true - br i1 %t401, label %then6366, label %endif6368 -then6366: + br i1 %t401, label %then6609, label %endif6611 +then6609: %t402 = load ptr, ptr %a1 %t403 = load %S.ast.Node, ptr %a11 - call void @finch.gen.fail(ptr %t402, %S.ast.Node %t403, { ptr, i64, i64 } { ptr @.str.4135, i64 115, i64 0 }) - br label %endif6368 -endif6368: - store { ptr, i64, i64 } { ptr @.str.4136, i64 2, i64 0 }, ptr %a404 + call void @finch.gen.fail(ptr %t402, %S.ast.Node %t403, { ptr, i64, i64 } { ptr @.str.4263, i64 115, i64 0 }) + br label %endif6611 +endif6611: + store { ptr, i64, i64 } { ptr @.str.4264, i64 2, i64 0 }, ptr %a404 %t405 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t405, ptr %a406 - store { ptr, i64, i64 } { ptr @.str.4137, i64 2, i64 0 }, ptr %a407 + store { ptr, i64, i64 } { ptr @.str.4265, i64 2, i64 0 }, ptr %a407 %t408 = call i32 @finch_str_eq(ptr %a406, ptr %a407) %t409 = icmp ne i32 %t408, 0 - br i1 %t409, label %then6369, label %endif6371 -then6369: + br i1 %t409, label %then6612, label %endif6614 +then6612: %t410 = load { ptr, i64, i64 }, ptr %a404 - store { ptr, i64, i64 } { ptr @.str.4138, i64 2, i64 0 }, ptr %a404 + store { ptr, i64, i64 } { ptr @.str.4266, i64 2, i64 0 }, ptr %a404 store { ptr, i64, i64 } %t410, ptr %a411 call void @finch_str_drop(ptr %a411) - br label %endif6371 -endif6371: + br label %endif6614 +endif6614: %t412 = load ptr, ptr %a1 %t413 = load { ptr, i64, i64 }, ptr %a404 - store { ptr, i64, i64 } { ptr @.str.4139, i64 5, i64 0 }, ptr %a415 + store { ptr, i64, i64 } { ptr @.str.4267, i64 5, i64 0 }, ptr %a415 store { ptr, i64, i64 } %t413, ptr %a416 call void @finch_str_concat(ptr %a414, ptr %a415, ptr %a416) %t417 = load { ptr, i64, i64 }, ptr %a414 store { ptr, i64, i64 } %t417, ptr %a419 - store { ptr, i64, i64 } { ptr @.str.4140, i64 5, i64 0 }, ptr %a420 + store { ptr, i64, i64 } { ptr @.str.4268, i64 5, i64 0 }, ptr %a420 call void @finch_str_concat(ptr %a418, ptr %a419, ptr %a420) store { ptr, i64, i64 } %t417, ptr %a421 call void @finch_str_drop(ptr %a421) @@ -63909,7 +66360,7 @@ endif6371: call void @finch_str_drop(ptr %a428) %t429 = load { ptr, i64, i64 }, ptr %a425 store { ptr, i64, i64 } %t429, ptr %a431 - store { ptr, i64, i64 } { ptr @.str.4141, i64 2, i64 0 }, ptr %a432 + store { ptr, i64, i64 } { ptr @.str.4269, i64 2, i64 0 }, ptr %a432 call void @finch_str_concat(ptr %a430, ptr %a431, ptr %a432) store { ptr, i64, i64 } %t429, ptr %a433 call void @finch_str_drop(ptr %a433) @@ -63926,96 +66377,96 @@ endif6371: store { ptr, i64, i64 } %t441, ptr %a443 call void @finch_str_drop(ptr %a443) %t444 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t442, 0 - %t445 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4142, i64 4, i64 0 }) + %t445 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4270, i64 4, i64 0 }) %t446 = insertvalue %S.gen.Val %t444, %S.ast.Type %t445, 1 call void @finch_str_drop(ptr %a404) call void @finch_str_drop(ptr %a296) call void @finch.drop.S_gen_Val(ptr %a10) call void @finch.drop.S_gen_Val(ptr %a6) ret %S.gen.Val %t446 -endif6365: +endif6608: %t447 = load { ptr, i64, i64 }, ptr %a296 store { ptr, i64, i64 } %t447, ptr %a448 - store { ptr, i64, i64 } { ptr @.str.4143, i64 4, i64 0 }, ptr %a449 + store { ptr, i64, i64 } { ptr @.str.4271, i64 4, i64 0 }, ptr %a449 %t450 = call i32 @finch_str_eq(ptr %a448, ptr %a449) %t451 = icmp ne i32 %t450, 0 - br label %logic.from6372 -logic.from6372: - br i1 %t451, label %logic.rhs6373, label %logic.end6374 -logic.rhs6373: + br label %logic.from6615 +logic.from6615: + br i1 %t451, label %logic.rhs6616, label %logic.end6617 +logic.rhs6616: %t452 = load i1, ptr %a23 %t453 = xor i1 %t452, true - br label %logic.rend6375 -logic.rend6375: - br label %logic.end6374 -logic.end6374: - %t454 = phi i1 [ false, %logic.from6372 ], [ %t453, %logic.rend6375 ] - br i1 %t454, label %then6376, label %endif6378 -then6376: + br label %logic.rend6618 +logic.rend6618: + br label %logic.end6617 +logic.end6617: + %t454 = phi i1 [ false, %logic.from6615 ], [ %t453, %logic.rend6618 ] + br i1 %t454, label %then6619, label %endif6621 +then6619: %t455 = load ptr, ptr %a1 %t456 = load { ptr, i64, i64 }, ptr %a2 %t457 = load %S.gen.Val, ptr %a6 %t458 = load %S.gen.Val, ptr %a10 %t459 = load %S.ast.Node, ptr %a11 call void @finch.gen.badOperands(ptr %t455, { ptr, i64, i64 } %t456, %S.gen.Val %t457, %S.gen.Val %t458, %S.ast.Node %t459) - br label %endif6378 -endif6378: + br label %endif6621 +endif6621: %t460 = getelementptr inbounds %S.gen.Val, ptr %a6, i32 0, i32 1 %t461 = load %S.ast.Type, ptr %t460 %t462 = call i1 @finch.gen.isInt(%S.ast.Type %t461) %t463 = xor i1 %t462, true - br label %logic.from6379 -logic.from6379: - br i1 %t463, label %logic.rhs6380, label %logic.end6381 -logic.rhs6380: + br label %logic.from6622 +logic.from6622: + br i1 %t463, label %logic.rhs6623, label %logic.end6624 +logic.rhs6623: %t464 = load { ptr, i64, i64 }, ptr %a296 store { ptr, i64, i64 } %t464, ptr %a465 - store { ptr, i64, i64 } { ptr @.str.4144, i64 4, i64 0 }, ptr %a466 + store { ptr, i64, i64 } { ptr @.str.4272, i64 4, i64 0 }, ptr %a466 %t467 = call i32 @finch_str_eq(ptr %a465, ptr %a466) %t468 = icmp eq i32 %t467, 0 - br label %logic.rend6382 -logic.rend6382: - br label %logic.end6381 -logic.end6381: - %t469 = phi i1 [ false, %logic.from6379 ], [ %t468, %logic.rend6382 ] - br label %logic.from6383 -logic.from6383: - br i1 %t469, label %logic.rhs6384, label %logic.end6385 -logic.rhs6384: + br label %logic.rend6625 +logic.rend6625: + br label %logic.end6624 +logic.end6624: + %t469 = phi i1 [ false, %logic.from6622 ], [ %t468, %logic.rend6625 ] + br label %logic.from6626 +logic.from6626: + br i1 %t469, label %logic.rhs6627, label %logic.end6628 +logic.rhs6627: %t470 = load { ptr, i64, i64 }, ptr %a296 store { ptr, i64, i64 } %t470, ptr %a471 - store { ptr, i64, i64 } { ptr @.str.4145, i64 4, i64 0 }, ptr %a472 + store { ptr, i64, i64 } { ptr @.str.4273, i64 4, i64 0 }, ptr %a472 %t473 = call i32 @finch_str_eq(ptr %a471, ptr %a472) %t474 = icmp eq i32 %t473, 0 - br label %logic.rend6386 -logic.rend6386: - br label %logic.end6385 -logic.end6385: - %t475 = phi i1 [ false, %logic.from6383 ], [ %t474, %logic.rend6386 ] - br i1 %t475, label %then6387, label %endif6389 -then6387: + br label %logic.rend6629 +logic.rend6629: + br label %logic.end6628 +logic.end6628: + %t475 = phi i1 [ false, %logic.from6626 ], [ %t474, %logic.rend6629 ] + br i1 %t475, label %then6630, label %endif6632 +then6630: %t476 = load ptr, ptr %a1 %t477 = load { ptr, i64, i64 }, ptr %a2 %t478 = load %S.gen.Val, ptr %a6 %t479 = load %S.gen.Val, ptr %a10 %t480 = load %S.ast.Node, ptr %a11 call void @finch.gen.badOperands(ptr %t476, { ptr, i64, i64 } %t477, %S.gen.Val %t478, %S.gen.Val %t479, %S.ast.Node %t480) - br label %endif6389 -endif6389: + br label %endif6632 +endif6632: %t481 = load ptr, ptr %a1 %t482 = load { ptr, i64, i64 }, ptr %a2 %t483 = getelementptr inbounds %S.gen.Val, ptr %a6, i32 0, i32 1 %t484 = load %S.ast.Type, ptr %t483 %t485 = call i1 @finch.gen.isSigned(%S.ast.Type %t484) %t486 = call { ptr, i64, i64 } @finch.gen.intPred({ ptr, i64, i64 } %t482, i1 %t485) - store { ptr, i64, i64 } { ptr @.str.4146, i64 5, i64 0 }, ptr %a488 + store { ptr, i64, i64 } { ptr @.str.4274, i64 5, i64 0 }, ptr %a488 store { ptr, i64, i64 } %t486, ptr %a489 call void @finch_str_concat(ptr %a487, ptr %a488, ptr %a489) store { ptr, i64, i64 } %t486, ptr %a490 call void @finch_str_drop(ptr %a490) %t491 = load { ptr, i64, i64 }, ptr %a487 store { ptr, i64, i64 } %t491, ptr %a493 - store { ptr, i64, i64 } { ptr @.str.4147, i64 1, i64 0 }, ptr %a494 + store { ptr, i64, i64 } { ptr @.str.4275, i64 1, i64 0 }, ptr %a494 call void @finch_str_concat(ptr %a492, ptr %a493, ptr %a494) store { ptr, i64, i64 } %t491, ptr %a495 call void @finch_str_drop(ptr %a495) @@ -64033,7 +66484,7 @@ endif6389: call void @finch_str_drop(ptr %a505) %t506 = load { ptr, i64, i64 }, ptr %a501 store { ptr, i64, i64 } %t506, ptr %a508 - store { ptr, i64, i64 } { ptr @.str.4148, i64 1, i64 0 }, ptr %a509 + store { ptr, i64, i64 } { ptr @.str.4276, i64 1, i64 0 }, ptr %a509 call void @finch_str_concat(ptr %a507, ptr %a508, ptr %a509) store { ptr, i64, i64 } %t506, ptr %a510 call void @finch_str_drop(ptr %a510) @@ -64047,7 +66498,7 @@ endif6389: call void @finch_str_drop(ptr %a517) %t518 = load { ptr, i64, i64 }, ptr %a514 store { ptr, i64, i64 } %t518, ptr %a520 - store { ptr, i64, i64 } { ptr @.str.4149, i64 2, i64 0 }, ptr %a521 + store { ptr, i64, i64 } { ptr @.str.4277, i64 2, i64 0 }, ptr %a521 call void @finch_str_concat(ptr %a519, ptr %a520, ptr %a521) store { ptr, i64, i64 } %t518, ptr %a522 call void @finch_str_drop(ptr %a522) @@ -64064,7 +66515,7 @@ endif6389: store { ptr, i64, i64 } %t530, ptr %a532 call void @finch_str_drop(ptr %a532) %t533 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t531, 0 - %t534 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4150, i64 4, i64 0 }) + %t534 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4278, i64 4, i64 0 }) %t535 = insertvalue %S.gen.Val %t533, %S.ast.Type %t534, 1 call void @finch_str_drop(ptr %a296) call void @finch.drop.S_gen_Val(ptr %a10) @@ -64090,17 +66541,17 @@ entry: %t3 = mul i64 6, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t4 = call ptr @finch_alloc(i64 %t3) %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %t4, i64 0 - store { ptr, i64, i64 } { ptr @.str.4151, i64 2, i64 0 }, ptr %t5 + store { ptr, i64, i64 } { ptr @.str.4279, i64 2, i64 0 }, ptr %t5 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t4, i64 1 - store { ptr, i64, i64 } { ptr @.str.4152, i64 2, i64 0 }, ptr %t6 + store { ptr, i64, i64 } { ptr @.str.4280, i64 2, i64 0 }, ptr %t6 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t4, i64 2 - store { ptr, i64, i64 } { ptr @.str.4153, i64 1, i64 0 }, ptr %t7 + store { ptr, i64, i64 } { ptr @.str.4281, i64 1, i64 0 }, ptr %t7 %t8 = getelementptr inbounds { ptr, i64, i64 }, ptr %t4, i64 3 - store { ptr, i64, i64 } { ptr @.str.4154, i64 2, i64 0 }, ptr %t8 + store { ptr, i64, i64 } { ptr @.str.4282, i64 2, i64 0 }, ptr %t8 %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %t4, i64 4 - store { ptr, i64, i64 } { ptr @.str.4155, i64 1, i64 0 }, ptr %t9 + store { ptr, i64, i64 } { ptr @.str.4283, i64 1, i64 0 }, ptr %t9 %t10 = getelementptr inbounds { ptr, i64, i64 }, ptr %t4, i64 5 - store { ptr, i64, i64 } { ptr @.str.4156, i64 2, i64 0 }, ptr %t10 + store { ptr, i64, i64 } { ptr @.str.4284, i64 2, i64 0 }, ptr %t10 %t11 = insertvalue { ptr, i64, i64 } undef, ptr %t4, 0 %t12 = insertvalue { ptr, i64, i64 } %t11, i64 6, 1 %t13 = insertvalue { ptr, i64, i64 } %t12, i64 6, 2 @@ -64108,38 +66559,38 @@ entry: %t15 = mul i64 6, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t16 = call ptr @finch_alloc(i64 %t15) %t17 = getelementptr inbounds { ptr, i64, i64 }, ptr %t16, i64 0 - store { ptr, i64, i64 } { ptr @.str.4157, i64 2, i64 0 }, ptr %t17 + store { ptr, i64, i64 } { ptr @.str.4285, i64 2, i64 0 }, ptr %t17 %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %t16, i64 1 - store { ptr, i64, i64 } { ptr @.str.4158, i64 2, i64 0 }, ptr %t18 + store { ptr, i64, i64 } { ptr @.str.4286, i64 2, i64 0 }, ptr %t18 %t19 = getelementptr inbounds { ptr, i64, i64 }, ptr %t16, i64 2 - store { ptr, i64, i64 } { ptr @.str.4159, i64 3, i64 0 }, ptr %t19 + store { ptr, i64, i64 } { ptr @.str.4287, i64 3, i64 0 }, ptr %t19 %t20 = getelementptr inbounds { ptr, i64, i64 }, ptr %t16, i64 3 - store { ptr, i64, i64 } { ptr @.str.4160, i64 3, i64 0 }, ptr %t20 + store { ptr, i64, i64 } { ptr @.str.4288, i64 3, i64 0 }, ptr %t20 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t16, i64 4 - store { ptr, i64, i64 } { ptr @.str.4161, i64 3, i64 0 }, ptr %t21 + store { ptr, i64, i64 } { ptr @.str.4289, i64 3, i64 0 }, ptr %t21 %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %t16, i64 5 - store { ptr, i64, i64 } { ptr @.str.4162, i64 3, i64 0 }, ptr %t22 + store { ptr, i64, i64 } { ptr @.str.4290, i64 3, i64 0 }, ptr %t22 %t23 = insertvalue { ptr, i64, i64 } undef, ptr %t16, 0 %t24 = insertvalue { ptr, i64, i64 } %t23, i64 6, 1 %t25 = insertvalue { ptr, i64, i64 } %t24, i64 6, 2 store { ptr, i64, i64 } %t25, ptr %a26 %t27 = load i1, ptr %a2 - br i1 %t27, label %then6390, label %endif6392 -then6390: + br i1 %t27, label %then6633, label %endif6635 +then6633: %t28 = mul i64 6, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t29 = call ptr @finch_alloc(i64 %t28) %t30 = getelementptr inbounds { ptr, i64, i64 }, ptr %t29, i64 0 - store { ptr, i64, i64 } { ptr @.str.4163, i64 2, i64 0 }, ptr %t30 + store { ptr, i64, i64 } { ptr @.str.4291, i64 2, i64 0 }, ptr %t30 %t31 = getelementptr inbounds { ptr, i64, i64 }, ptr %t29, i64 1 - store { ptr, i64, i64 } { ptr @.str.4164, i64 2, i64 0 }, ptr %t31 + store { ptr, i64, i64 } { ptr @.str.4292, i64 2, i64 0 }, ptr %t31 %t32 = getelementptr inbounds { ptr, i64, i64 }, ptr %t29, i64 2 - store { ptr, i64, i64 } { ptr @.str.4165, i64 3, i64 0 }, ptr %t32 + store { ptr, i64, i64 } { ptr @.str.4293, i64 3, i64 0 }, ptr %t32 %t33 = getelementptr inbounds { ptr, i64, i64 }, ptr %t29, i64 3 - store { ptr, i64, i64 } { ptr @.str.4166, i64 3, i64 0 }, ptr %t33 + store { ptr, i64, i64 } { ptr @.str.4294, i64 3, i64 0 }, ptr %t33 %t34 = getelementptr inbounds { ptr, i64, i64 }, ptr %t29, i64 4 - store { ptr, i64, i64 } { ptr @.str.4167, i64 3, i64 0 }, ptr %t34 + store { ptr, i64, i64 } { ptr @.str.4295, i64 3, i64 0 }, ptr %t34 %t35 = getelementptr inbounds { ptr, i64, i64 }, ptr %t29, i64 5 - store { ptr, i64, i64 } { ptr @.str.4168, i64 3, i64 0 }, ptr %t35 + store { ptr, i64, i64 } { ptr @.str.4296, i64 3, i64 0 }, ptr %t35 %t36 = insertvalue { ptr, i64, i64 } undef, ptr %t29, 0 %t37 = insertvalue { ptr, i64, i64 } %t36, i64 6, 1 %t38 = insertvalue { ptr, i64, i64 } %t37, i64 6, 2 @@ -64147,44 +66598,44 @@ then6390: store { ptr, i64, i64 } %t38, ptr %a26 store { ptr, i64, i64 } %t39, ptr %a40 call void @finch.drop.arr_str(ptr %a40) - br label %endif6392 -endif6392: + br label %endif6635 +endif6635: %t41 = getelementptr inbounds { ptr, i64, i64 }, ptr %a14, i32 0, i32 1 %t42 = load { ptr, i64, i64 }, ptr %a1 store i64 -1, ptr %a43 %t44 = load i64, ptr %t41 %t45 = load ptr, ptr %a14 store i64 0, ptr %a46 - br label %find.cond6393 -find.cond6393: + br label %find.cond6636 +find.cond6636: %t47 = load i64, ptr %a46 %t48 = icmp slt i64 %t47, %t44 - br i1 %t48, label %find.body6394, label %find.end6397 -find.body6394: + br i1 %t48, label %find.body6637, label %find.end6640 +find.body6637: %t49 = getelementptr inbounds { ptr, i64, i64 }, ptr %t45, i64 %t47 %t50 = load { ptr, i64, i64 }, ptr %t49 store { ptr, i64, i64 } %t50, ptr %a51 store { ptr, i64, i64 } %t42, ptr %a52 %t53 = call i32 @finch_str_eq(ptr %a51, ptr %a52) %t54 = icmp ne i32 %t53, 0 - br i1 %t54, label %find.hit6395, label %find.next6396 -find.hit6395: + br i1 %t54, label %find.hit6638, label %find.next6639 +find.hit6638: store i64 %t47, ptr %a43 - br label %find.end6397 -find.next6396: + br label %find.end6640 +find.next6639: %t55 = add i64 %t47, 1 store i64 %t55, ptr %a46 - br label %find.cond6393 -find.end6397: + br label %find.cond6636 +find.end6640: %t56 = load i64, ptr %a43 %t57 = load { ptr, i64, i64 }, ptr %a26 %t58 = extractvalue { ptr, i64, i64 } %t57, 1 %t59 = icmp uge i64 %t56, %t58 - br i1 %t59, label %range6398, label %inrange6399 -range6398: - call void @finch_panic_index(ptr @.str.4169, i64 3484, i64 %t56, i64 %t58) + br i1 %t59, label %range6641, label %inrange6642 +range6641: + call void @finch_panic_index(ptr @.str.4297, i64 3622, i64 %t56, i64 %t58) unreachable -inrange6399: +inrange6642: %t60 = extractvalue { ptr, i64, i64 } %t57, 0 %t61 = getelementptr inbounds { ptr, i64, i64 }, ptr %t60, i64 %t56 %t62 = load { ptr, i64, i64 }, ptr %t61 @@ -64276,48 +66727,48 @@ entry: store { ptr, i64, i64 } %t7, ptr %a8 %t9 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t9, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.4170, i64 2, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.4298, i64 2, i64 0 }, ptr %a11 %t12 = call i32 @finch_str_eq(ptr %a10, ptr %a11) %t13 = icmp ne i32 %t12, 0 - br label %logic.from6400 -logic.from6400: - br i1 %t13, label %logic.end6402, label %logic.rhs6401 -logic.rhs6401: + br label %logic.from6643 +logic.from6643: + br i1 %t13, label %logic.end6645, label %logic.rhs6644 +logic.rhs6644: %t14 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t14, ptr %a15 - store { ptr, i64, i64 } { ptr @.str.4171, i64 2, i64 0 }, ptr %a16 + store { ptr, i64, i64 } { ptr @.str.4299, i64 2, i64 0 }, ptr %a16 %t17 = call i32 @finch_str_eq(ptr %a15, ptr %a16) %t18 = icmp ne i32 %t17, 0 - br label %logic.rend6403 -logic.rend6403: - br label %logic.end6402 -logic.end6402: - %t19 = phi i1 [ true, %logic.from6400 ], [ %t18, %logic.rend6403 ] - br i1 %t19, label %then6404, label %endif6406 -then6404: + br label %logic.rend6646 +logic.rend6646: + br label %logic.end6645 +logic.end6645: + %t19 = phi i1 [ true, %logic.from6643 ], [ %t18, %logic.rend6646 ] + br i1 %t19, label %then6647, label %endif6649 +then6647: %t20 = load ptr, ptr %a1 %t21 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t22 = load { ptr, i64, i64 }, ptr %t21 %t23 = extractvalue { ptr, i64, i64 } %t22, 1 %t24 = icmp uge i64 0, %t23 - br i1 %t24, label %range6407, label %inrange6408 -range6407: - call void @finch_panic_index(ptr @.str.4172, i64 3490, i64 0, i64 %t23) + br i1 %t24, label %range6650, label %inrange6651 +range6650: + call void @finch_panic_index(ptr @.str.4300, i64 3628, i64 0, i64 %t23) unreachable -inrange6408: +inrange6651: %t25 = extractvalue { ptr, i64, i64 } %t22, 0 %t26 = getelementptr inbounds %S.ast.Node, ptr %t25, i64 0 %t27 = load %S.ast.Node, ptr %t26 %t28 = call { ptr, i64, i64 } @finch.gen.condition(ptr %t20, %S.ast.Node %t27) store { ptr, i64, i64 } %t28, ptr %a29 %t30 = load ptr, ptr %a1 - %t31 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t30, { ptr, i64, i64 } { ptr @.str.4173, i64 10, i64 0 }) + %t31 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t30, { ptr, i64, i64 } { ptr @.str.4301, i64 10, i64 0 }) store { ptr, i64, i64 } %t31, ptr %a32 %t33 = load ptr, ptr %a1 - %t34 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t33, { ptr, i64, i64 } { ptr @.str.4174, i64 9, i64 0 }) + %t34 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t33, { ptr, i64, i64 } { ptr @.str.4302, i64 9, i64 0 }) store { ptr, i64, i64 } %t34, ptr %a35 %t36 = load ptr, ptr %a1 - %t37 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t36, { ptr, i64, i64 } { ptr @.str.4175, i64 9, i64 0 }) + %t37 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t36, { ptr, i64, i64 } { ptr @.str.4303, i64 9, i64 0 }) store { ptr, i64, i64 } %t37, ptr %a38 %t39 = load ptr, ptr %a1 %t40 = load { ptr, i64, i64 }, ptr %a32 @@ -64327,25 +66778,25 @@ inrange6408: call void @finch.gen.label(ptr %t41, { ptr, i64, i64 } %t42) %t43 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t43, ptr %a44 - store { ptr, i64, i64 } { ptr @.str.4176, i64 2, i64 0 }, ptr %a45 + store { ptr, i64, i64 } { ptr @.str.4304, i64 2, i64 0 }, ptr %a45 %t46 = call i32 @finch_str_eq(ptr %a44, ptr %a45) %t47 = icmp ne i32 %t46, 0 - br i1 %t47, label %then6409, label %else6410 -then6409: + br i1 %t47, label %then6652, label %else6653 +then6652: %t48 = load ptr, ptr %a1 %t49 = load { ptr, i64, i64 }, ptr %a29 %t50 = load { ptr, i64, i64 }, ptr %a35 %t51 = load { ptr, i64, i64 }, ptr %a38 call void @finch.gen.condBr(ptr %t48, { ptr, i64, i64 } %t49, { ptr, i64, i64 } %t50, { ptr, i64, i64 } %t51) - br label %endif6411 -else6410: + br label %endif6654 +else6653: %t52 = load ptr, ptr %a1 %t53 = load { ptr, i64, i64 }, ptr %a29 %t54 = load { ptr, i64, i64 }, ptr %a38 %t55 = load { ptr, i64, i64 }, ptr %a35 call void @finch.gen.condBr(ptr %t52, { ptr, i64, i64 } %t53, { ptr, i64, i64 } %t54, { ptr, i64, i64 } %t55) - br label %endif6411 -endif6411: + br label %endif6654 +endif6654: %t56 = load ptr, ptr %a1 %t57 = load { ptr, i64, i64 }, ptr %a35 call void @finch.gen.label(ptr %t56, { ptr, i64, i64 } %t57) @@ -64354,18 +66805,18 @@ endif6411: %t60 = load { ptr, i64, i64 }, ptr %t59 %t61 = extractvalue { ptr, i64, i64 } %t60, 1 %t62 = icmp uge i64 1, %t61 - br i1 %t62, label %range6412, label %inrange6413 -range6412: - call void @finch_panic_index(ptr @.str.4177, i64 3502, i64 1, i64 %t61) + br i1 %t62, label %range6655, label %inrange6656 +range6655: + call void @finch_panic_index(ptr @.str.4305, i64 3640, i64 1, i64 %t61) unreachable -inrange6413: +inrange6656: %t63 = extractvalue { ptr, i64, i64 } %t60, 0 %t64 = getelementptr inbounds %S.ast.Node, ptr %t63, i64 1 %t65 = load %S.ast.Node, ptr %t64 %t66 = call { ptr, i64, i64 } @finch.gen.condition(ptr %t58, %S.ast.Node %t65) store { ptr, i64, i64 } %t66, ptr %a67 %t68 = load ptr, ptr %a1 - %t69 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t68, { ptr, i64, i64 } { ptr @.str.4178, i64 10, i64 0 }) + %t69 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t68, { ptr, i64, i64 } { ptr @.str.4306, i64 10, i64 0 }) store { ptr, i64, i64 } %t69, ptr %a70 %t71 = load ptr, ptr %a1 %t72 = load { ptr, i64, i64 }, ptr %a70 @@ -64379,28 +66830,28 @@ inrange6413: %t77 = load ptr, ptr %a1 %t78 = load { ptr, i64, i64 }, ptr %a38 call void @finch.gen.label(ptr %t77, { ptr, i64, i64 } %t78) - store { ptr, i64, i64 } { ptr @.str.4179, i64 4, i64 0 }, ptr %a79 + store { ptr, i64, i64 } { ptr @.str.4307, i64 4, i64 0 }, ptr %a79 %t80 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t80, ptr %a81 - store { ptr, i64, i64 } { ptr @.str.4180, i64 2, i64 0 }, ptr %a82 + store { ptr, i64, i64 } { ptr @.str.4308, i64 2, i64 0 }, ptr %a82 %t83 = call i32 @finch_str_eq(ptr %a81, ptr %a82) %t84 = icmp ne i32 %t83, 0 - br i1 %t84, label %then6414, label %endif6416 -then6414: + br i1 %t84, label %then6657, label %endif6659 +then6657: %t85 = load { ptr, i64, i64 }, ptr %a79 - store { ptr, i64, i64 } { ptr @.str.4181, i64 5, i64 0 }, ptr %a79 + store { ptr, i64, i64 } { ptr @.str.4309, i64 5, i64 0 }, ptr %a79 store { ptr, i64, i64 } %t85, ptr %a86 call void @finch_str_drop(ptr %a86) - br label %endif6416 -endif6416: + br label %endif6659 +endif6659: %t87 = load ptr, ptr %a1 %t88 = load { ptr, i64, i64 }, ptr %a79 - store { ptr, i64, i64 } { ptr @.str.4182, i64 9, i64 0 }, ptr %a90 + store { ptr, i64, i64 } { ptr @.str.4310, i64 9, i64 0 }, ptr %a90 store { ptr, i64, i64 } %t88, ptr %a91 call void @finch_str_concat(ptr %a89, ptr %a90, ptr %a91) %t92 = load { ptr, i64, i64 }, ptr %a89 store { ptr, i64, i64 } %t92, ptr %a94 - store { ptr, i64, i64 } { ptr @.str.4183, i64 3, i64 0 }, ptr %a95 + store { ptr, i64, i64 } { ptr @.str.4311, i64 3, i64 0 }, ptr %a95 call void @finch_str_concat(ptr %a93, ptr %a94, ptr %a95) store { ptr, i64, i64 } %t92, ptr %a96 call void @finch_str_drop(ptr %a96) @@ -64413,7 +66864,7 @@ endif6416: call void @finch_str_drop(ptr %a102) %t103 = load { ptr, i64, i64 }, ptr %a99 store { ptr, i64, i64 } %t103, ptr %a105 - store { ptr, i64, i64 } { ptr @.str.4184, i64 6, i64 0 }, ptr %a106 + store { ptr, i64, i64 } { ptr @.str.4312, i64 6, i64 0 }, ptr %a106 call void @finch_str_concat(ptr %a104, ptr %a105, ptr %a106) store { ptr, i64, i64 } %t103, ptr %a107 call void @finch_str_drop(ptr %a107) @@ -64426,7 +66877,7 @@ endif6416: call void @finch_str_drop(ptr %a113) %t114 = load { ptr, i64, i64 }, ptr %a110 store { ptr, i64, i64 } %t114, ptr %a116 - store { ptr, i64, i64 } { ptr @.str.4185, i64 3, i64 0 }, ptr %a117 + store { ptr, i64, i64 } { ptr @.str.4313, i64 3, i64 0 }, ptr %a117 call void @finch_str_concat(ptr %a115, ptr %a116, ptr %a117) store { ptr, i64, i64 } %t114, ptr %a118 call void @finch_str_drop(ptr %a118) @@ -64439,7 +66890,7 @@ endif6416: call void @finch_str_drop(ptr %a124) %t125 = load { ptr, i64, i64 }, ptr %a121 store { ptr, i64, i64 } %t125, ptr %a127 - store { ptr, i64, i64 } { ptr @.str.4186, i64 2, i64 0 }, ptr %a128 + store { ptr, i64, i64 } { ptr @.str.4314, i64 2, i64 0 }, ptr %a128 call void @finch_str_concat(ptr %a126, ptr %a127, ptr %a128) store { ptr, i64, i64 } %t125, ptr %a129 call void @finch_str_drop(ptr %a129) @@ -64448,7 +66899,7 @@ endif6416: store { ptr, i64, i64 } %t130, ptr %a132 call void @finch_str_drop(ptr %a132) %t133 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t131, 0 - %t134 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4187, i64 4, i64 0 }) + %t134 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4315, i64 4, i64 0 }) %t135 = insertvalue %S.gen.Val %t133, %S.ast.Type %t134, 1 call void @finch_str_drop(ptr %a79) call void @finch_str_drop(ptr %a70) @@ -64459,17 +66910,17 @@ endif6416: call void @finch_str_drop(ptr %a29) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t135 -endif6406: +endif6649: %t136 = load ptr, ptr %a1 %t137 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t138 = load { ptr, i64, i64 }, ptr %t137 %t139 = extractvalue { ptr, i64, i64 } %t138, 1 %t140 = icmp uge i64 0, %t139 - br i1 %t140, label %range6417, label %inrange6418 -range6417: - call void @finch_panic_index(ptr @.str.4188, i64 3514, i64 0, i64 %t139) + br i1 %t140, label %range6660, label %inrange6661 +range6660: + call void @finch_panic_index(ptr @.str.4316, i64 3652, i64 0, i64 %t139) unreachable -inrange6418: +inrange6661: %t141 = extractvalue { ptr, i64, i64 } %t138, 0 %t142 = getelementptr inbounds %S.ast.Node, ptr %t141, i64 0 %t143 = load %S.ast.Node, ptr %t142 @@ -64477,11 +66928,11 @@ inrange6418: store %S.gen.Val %t144, ptr %a145 %t146 = load ptr, ptr %a1 %t147 = icmp eq ptr %t146, null - br i1 %t147, label %panic6419, label %ok6420 -panic6419: - call void @finch_panic(ptr @.str.4189, i64 3515, ptr @.str.4190) + br i1 %t147, label %panic6662, label %ok6663 +panic6662: + call void @finch_panic(ptr @.str.4317, i64 3653, ptr @.str.4318) unreachable -ok6420: +ok6663: %t148 = getelementptr inbounds %S.gen.Gen, ptr %t146, i32 0, i32 11 %t149 = getelementptr inbounds { ptr, i64, i64 }, ptr %t148, i32 0, i32 1 %t150 = load i64, ptr %t149 @@ -64494,11 +66945,11 @@ ok6420: %t156 = load { ptr, i64, i64 }, ptr %t155 %t157 = extractvalue { ptr, i64, i64 } %t156, 1 %t158 = icmp uge i64 1, %t157 - br i1 %t158, label %range6421, label %inrange6422 -range6421: - call void @finch_panic_index(ptr @.str.4191, i64 3517, i64 1, i64 %t157) + br i1 %t158, label %range6664, label %inrange6665 +range6664: + call void @finch_panic_index(ptr @.str.4319, i64 3655, i64 1, i64 %t157) unreachable -inrange6422: +inrange6665: %t159 = extractvalue { ptr, i64, i64 } %t156, 0 %t160 = getelementptr inbounds %S.ast.Node, ptr %t159, i64 1 %t161 = load %S.ast.Node, ptr %t160 @@ -64509,81 +66960,81 @@ inrange6422: call void @finch.gen.heldEnd(ptr %t164, i64 %t165) %t166 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t166, ptr %a167 - store { ptr, i64, i64 } { ptr @.str.4192, i64 2, i64 0 }, ptr %a168 + store { ptr, i64, i64 } { ptr @.str.4320, i64 2, i64 0 }, ptr %a168 %t169 = call i32 @finch_str_eq(ptr %a167, ptr %a168) %t170 = icmp ne i32 %t169, 0 - br label %logic.from6423 -logic.from6423: - br i1 %t170, label %logic.end6425, label %logic.rhs6424 -logic.rhs6424: + br label %logic.from6666 +logic.from6666: + br i1 %t170, label %logic.end6668, label %logic.rhs6667 +logic.rhs6667: %t171 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t171, ptr %a172 - store { ptr, i64, i64 } { ptr @.str.4193, i64 2, i64 0 }, ptr %a173 + store { ptr, i64, i64 } { ptr @.str.4321, i64 2, i64 0 }, ptr %a173 %t174 = call i32 @finch_str_eq(ptr %a172, ptr %a173) %t175 = icmp ne i32 %t174, 0 - br label %logic.rend6426 -logic.rend6426: - br label %logic.end6425 -logic.end6425: - %t176 = phi i1 [ true, %logic.from6423 ], [ %t175, %logic.rend6426 ] - br label %logic.from6427 -logic.from6427: - br i1 %t176, label %logic.end6429, label %logic.rhs6428 -logic.rhs6428: + br label %logic.rend6669 +logic.rend6669: + br label %logic.end6668 +logic.end6668: + %t176 = phi i1 [ true, %logic.from6666 ], [ %t175, %logic.rend6669 ] + br label %logic.from6670 +logic.from6670: + br i1 %t176, label %logic.end6672, label %logic.rhs6671 +logic.rhs6671: %t177 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t177, ptr %a178 - store { ptr, i64, i64 } { ptr @.str.4194, i64 1, i64 0 }, ptr %a179 + store { ptr, i64, i64 } { ptr @.str.4322, i64 1, i64 0 }, ptr %a179 %t180 = call i32 @finch_str_eq(ptr %a178, ptr %a179) %t181 = icmp ne i32 %t180, 0 - br label %logic.rend6430 -logic.rend6430: - br label %logic.end6429 -logic.end6429: - %t182 = phi i1 [ true, %logic.from6427 ], [ %t181, %logic.rend6430 ] - br label %logic.from6431 -logic.from6431: - br i1 %t182, label %logic.end6433, label %logic.rhs6432 -logic.rhs6432: + br label %logic.rend6673 +logic.rend6673: + br label %logic.end6672 +logic.end6672: + %t182 = phi i1 [ true, %logic.from6670 ], [ %t181, %logic.rend6673 ] + br label %logic.from6674 +logic.from6674: + br i1 %t182, label %logic.end6676, label %logic.rhs6675 +logic.rhs6675: %t183 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t183, ptr %a184 - store { ptr, i64, i64 } { ptr @.str.4195, i64 2, i64 0 }, ptr %a185 + store { ptr, i64, i64 } { ptr @.str.4323, i64 2, i64 0 }, ptr %a185 %t186 = call i32 @finch_str_eq(ptr %a184, ptr %a185) %t187 = icmp ne i32 %t186, 0 - br label %logic.rend6434 -logic.rend6434: - br label %logic.end6433 -logic.end6433: - %t188 = phi i1 [ true, %logic.from6431 ], [ %t187, %logic.rend6434 ] - br label %logic.from6435 -logic.from6435: - br i1 %t188, label %logic.end6437, label %logic.rhs6436 -logic.rhs6436: + br label %logic.rend6677 +logic.rend6677: + br label %logic.end6676 +logic.end6676: + %t188 = phi i1 [ true, %logic.from6674 ], [ %t187, %logic.rend6677 ] + br label %logic.from6678 +logic.from6678: + br i1 %t188, label %logic.end6680, label %logic.rhs6679 +logic.rhs6679: %t189 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t189, ptr %a190 - store { ptr, i64, i64 } { ptr @.str.4196, i64 1, i64 0 }, ptr %a191 + store { ptr, i64, i64 } { ptr @.str.4324, i64 1, i64 0 }, ptr %a191 %t192 = call i32 @finch_str_eq(ptr %a190, ptr %a191) %t193 = icmp ne i32 %t192, 0 - br label %logic.rend6438 -logic.rend6438: - br label %logic.end6437 -logic.end6437: - %t194 = phi i1 [ true, %logic.from6435 ], [ %t193, %logic.rend6438 ] - br label %logic.from6439 -logic.from6439: - br i1 %t194, label %logic.end6441, label %logic.rhs6440 -logic.rhs6440: + br label %logic.rend6681 +logic.rend6681: + br label %logic.end6680 +logic.end6680: + %t194 = phi i1 [ true, %logic.from6678 ], [ %t193, %logic.rend6681 ] + br label %logic.from6682 +logic.from6682: + br i1 %t194, label %logic.end6684, label %logic.rhs6683 +logic.rhs6683: %t195 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t195, ptr %a196 - store { ptr, i64, i64 } { ptr @.str.4197, i64 2, i64 0 }, ptr %a197 + store { ptr, i64, i64 } { ptr @.str.4325, i64 2, i64 0 }, ptr %a197 %t198 = call i32 @finch_str_eq(ptr %a196, ptr %a197) %t199 = icmp ne i32 %t198, 0 - br label %logic.rend6442 -logic.rend6442: - br label %logic.end6441 -logic.end6441: - %t200 = phi i1 [ true, %logic.from6439 ], [ %t199, %logic.rend6442 ] - br i1 %t200, label %then6443, label %endif6445 -then6443: + br label %logic.rend6685 +logic.rend6685: + br label %logic.end6684 +logic.end6684: + %t200 = phi i1 [ true, %logic.from6682 ], [ %t199, %logic.rend6685 ] + br i1 %t200, label %then6686, label %endif6688 +then6686: %t201 = load ptr, ptr %a1 %t202 = load { ptr, i64, i64 }, ptr %a8 %t203 = load %S.gen.Val, ptr %a145 @@ -64594,7 +67045,7 @@ then6443: call void @finch.drop.S_gen_Val(ptr %a145) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t206 -endif6445: +endif6688: %t207 = load ptr, ptr %a1 %t208 = load { ptr, i64, i64 }, ptr %a8 %t209 = load %S.gen.Val, ptr %a145 @@ -64739,25 +67190,25 @@ entry: store ptr %p0, ptr %a1 store %S.ast.Node %p1, ptr %a2 store %S.ast.Type %p2, ptr %a3 - %t4 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4198, i64 4, i64 0 }) + %t4 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4326, i64 4, i64 0 }) store %S.ast.Type %t4, ptr %a5 %t6 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t7 = load { ptr, i64, i64 }, ptr %t6 store { ptr, i64, i64 } %t7, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.4199, i64 5, i64 0 }, ptr %a9 + store { ptr, i64, i64 } { ptr @.str.4327, i64 5, i64 0 }, ptr %a9 %t10 = call i32 @finch_str_eq(ptr %a8, ptr %a9) %t11 = icmp ne i32 %t10, 0 - br i1 %t11, label %then6446, label %else6447 -then6446: + br i1 %t11, label %then6689, label %else6690 +then6689: %t12 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 1 %t13 = load { ptr, i64, i64 }, ptr %t12 %t14 = extractvalue { ptr, i64, i64 } %t13, 1 %t15 = icmp uge i64 0, %t14 - br i1 %t15, label %range6449, label %inrange6450 -range6449: - call void @finch_panic_index(ptr @.str.4200, i64 3528, i64 0, i64 %t14) + br i1 %t15, label %range6692, label %inrange6693 +range6692: + call void @finch_panic_index(ptr @.str.4328, i64 3666, i64 0, i64 %t14) unreachable -inrange6450: +inrange6693: %t16 = extractvalue { ptr, i64, i64 } %t13, 0 %t17 = getelementptr inbounds %S.ast.Type, ptr %t16, i64 0 %t18 = load %S.ast.Type, ptr %t17 @@ -64768,43 +67219,43 @@ inrange6450: store %S.ast.Type %t21, ptr %a5 store %S.ast.Type %t22, ptr %a23 call void @finch.drop.S_ast_Type(ptr %a23) - br label %endif6448 -else6447: + br label %endif6691 +else6690: %t24 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t25 = getelementptr inbounds { ptr, i64, i64 }, ptr %t24, i32 0, i32 1 %t26 = load i64, ptr %t25 %t27 = icmp eq i64 %t26, 0 - br i1 %t27, label %then6451, label %endif6453 -then6451: + br i1 %t27, label %then6694, label %endif6696 +then6694: %t28 = load ptr, ptr %a1 %t29 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t28, %S.ast.Node %t29, { ptr, i64, i64 } { ptr @.str.4201, i64 47, i64 0 }) - br label %endif6453 -endif6453: - br label %endif6448 -endif6448: + call void @finch.gen.fail(ptr %t28, %S.ast.Node %t29, { ptr, i64, i64 } { ptr @.str.4329, i64 47, i64 0 }) + br label %endif6696 +endif6696: + br label %endif6691 +endif6691: store { ptr, i64, i64 } zeroinitializer, ptr %a30 %t31 = load ptr, ptr %a1 %t32 = icmp eq ptr %t31, null - br i1 %t32, label %panic6454, label %ok6455 -panic6454: - call void @finch_panic(ptr @.str.4202, i64 3533, ptr @.str.4203) + br i1 %t32, label %panic6697, label %ok6698 +panic6697: + call void @finch_panic(ptr @.str.4330, i64 3671, ptr @.str.4331) unreachable -ok6455: +ok6698: %t33 = getelementptr inbounds %S.gen.Gen, ptr %t31, i32 0, i32 11 %t34 = getelementptr inbounds { ptr, i64, i64 }, ptr %t33, i32 0, i32 1 %t35 = load i64, ptr %t34 store i64 %t35, ptr %a36 %t37 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 store i64 0, ptr %a38 - br label %each.cond6456 -each.cond6456: + br label %each.cond6699 +each.cond6699: %t39 = getelementptr inbounds { ptr, i64, i64 }, ptr %t37, i32 0, i32 1 %t40 = load i64, ptr %t39 %t41 = load i64, ptr %a38 %t42 = icmp slt i64 %t41, %t40 - br i1 %t42, label %each.body6457, label %each.end6459 -each.body6457: + br i1 %t42, label %each.body6700, label %each.end6702 +each.body6700: %t43 = load ptr, ptr %t37 %t44 = getelementptr inbounds %S.ast.Node, ptr %t43, i64 %t41 %t45 = load %S.ast.Node, ptr %t44 @@ -64813,11 +67264,11 @@ each.body6457: %t48 = getelementptr inbounds %S.ast.Type, ptr %a5, i32 0, i32 0 %t49 = load { ptr, i64, i64 }, ptr %t48 store { ptr, i64, i64 } %t49, ptr %a50 - store { ptr, i64, i64 } { ptr @.str.4204, i64 4, i64 0 }, ptr %a51 + store { ptr, i64, i64 } { ptr @.str.4332, i64 4, i64 0 }, ptr %a51 %t52 = call i32 @finch_str_eq(ptr %a50, ptr %a51) %t53 = icmp ne i32 %t52, 0 - br i1 %t53, label %then6460, label %else6461 -then6460: + br i1 %t53, label %then6703, label %else6704 +then6703: %t54 = load ptr, ptr %a1 %t55 = load %S.ast.Node, ptr %a46 %t56 = call %S.gen.Val @finch.gen.expr(ptr %t54, %S.ast.Node %t55) @@ -64834,8 +67285,8 @@ then6460: store %S.ast.Type %t63, ptr %a5 store %S.ast.Type %t64, ptr %a65 call void @finch.drop.S_ast_Type(ptr %a65) - br label %endif6462 -else6461: + br label %endif6705 +else6704: %t66 = load ptr, ptr %a1 %t67 = load %S.ast.Node, ptr %a46 %t68 = load %S.ast.Type, ptr %a5 @@ -64844,13 +67295,13 @@ else6461: store %S.gen.Val %t69, ptr %a47 store %S.gen.Val %t70, ptr %a71 call void @finch.drop.S_gen_Val(ptr %a71) - br label %endif6462 -endif6462: + br label %endif6705 +endif6705: %t72 = load ptr, ptr %a1 %t73 = load %S.gen.Val, ptr %a47 %t74 = load %S.ast.Type, ptr %a5 %t75 = load %S.ast.Node, ptr %a46 - %t76 = call %S.gen.Val @finch.gen.coerce(ptr %t72, %S.gen.Val %t73, %S.ast.Type %t74, %S.ast.Node %t75, { ptr, i64, i64 } { ptr @.str.4205, i64 27, i64 0 }) + %t76 = call %S.gen.Val @finch.gen.coerce(ptr %t72, %S.gen.Val %t73, %S.ast.Type %t74, %S.ast.Node %t75, { ptr, i64, i64 } { ptr @.str.4333, i64 27, i64 0 }) %t77 = load %S.gen.Val, ptr %a47 store %S.gen.Val %t76, ptr %a47 store %S.gen.Val %t77, ptr %a78 @@ -64873,11 +67324,11 @@ endif6462: %t91 = load { ptr, i64, i64 }, ptr %a30 %t92 = extractvalue { ptr, i64, i64 } %t91, 1 %t93 = icmp uge i64 %t90, %t92 - br i1 %t93, label %range6463, label %inrange6464 -range6463: - call void @finch_panic_index(ptr @.str.4206, i64 3544, i64 %t90, i64 %t92) + br i1 %t93, label %range6706, label %inrange6707 +range6706: + call void @finch_panic_index(ptr @.str.4334, i64 3682, i64 %t90, i64 %t92) unreachable -inrange6464: +inrange6707: %t94 = extractvalue { ptr, i64, i64 } %t91, 0 %t95 = getelementptr inbounds { ptr, i64, i64 }, ptr %t94, i64 %t90 %t96 = load { ptr, i64, i64 }, ptr %t95 @@ -64895,13 +67346,13 @@ inrange6464: store %S.gen.Val %t106, ptr %a107 call void @finch.drop.S_gen_Val(ptr %a107) call void @finch.drop.S_gen_Val(ptr %a47) - br label %each.step6458 -each.step6458: + br label %each.step6701 +each.step6701: %t108 = load i64, ptr %a38 %t109 = add i64 %t108, 1 store i64 %t109, ptr %a38 - br label %each.cond6456 -each.end6459: + br label %each.cond6699 +each.end6702: %t110 = load ptr, ptr %a1 %t111 = load i64, ptr %a36 call void @finch.gen.heldEnd(ptr %t110, i64 %t111) @@ -64913,20 +67364,20 @@ each.end6459: call void @finch_str_from_int(ptr %a117, i64 %t116) %t118 = load { ptr, i64, i64 }, ptr %a117 store { ptr, i64, i64 } %t118, ptr %a119 - store { ptr, i64, i64 } { ptr @.str.4207, i64 4, i64 0 }, ptr %a120 + store { ptr, i64, i64 } { ptr @.str.4335, i64 4, i64 0 }, ptr %a120 %t121 = getelementptr inbounds { ptr, i64, i64 }, ptr %a30, i32 0, i32 1 %t122 = load i64, ptr %t121 %t123 = icmp sgt i64 %t122, 0 - br i1 %t123, label %then6465, label %endif6467 -then6465: + br i1 %t123, label %then6708, label %endif6710 +then6708: %t124 = load ptr, ptr %a1 %t125 = load { ptr, i64, i64 }, ptr %a119 - store { ptr, i64, i64 } { ptr @.str.4208, i64 8, i64 0 }, ptr %a127 + store { ptr, i64, i64 } { ptr @.str.4336, i64 8, i64 0 }, ptr %a127 store { ptr, i64, i64 } %t125, ptr %a128 call void @finch_str_concat(ptr %a126, ptr %a127, ptr %a128) %t129 = load { ptr, i64, i64 }, ptr %a126 store { ptr, i64, i64 } %t129, ptr %a131 - store { ptr, i64, i64 } { ptr @.str.4209, i64 2, i64 0 }, ptr %a132 + store { ptr, i64, i64 } { ptr @.str.4337, i64 2, i64 0 }, ptr %a132 call void @finch_str_concat(ptr %a130, ptr %a131, ptr %a132) store { ptr, i64, i64 } %t129, ptr %a133 call void @finch_str_drop(ptr %a133) @@ -64948,12 +67399,12 @@ then6465: store { ptr, i64, i64 } %t144, ptr %a146 %t147 = load ptr, ptr %a1 %t148 = load { ptr, i64, i64 }, ptr %a146 - store { ptr, i64, i64 } { ptr @.str.4210, i64 26, i64 0 }, ptr %a150 + store { ptr, i64, i64 } { ptr @.str.4338, i64 26, i64 0 }, ptr %a150 store { ptr, i64, i64 } %t148, ptr %a151 call void @finch_str_concat(ptr %a149, ptr %a150, ptr %a151) %t152 = load { ptr, i64, i64 }, ptr %a149 store { ptr, i64, i64 } %t152, ptr %a154 - store { ptr, i64, i64 } { ptr @.str.4211, i64 1, i64 0 }, ptr %a155 + store { ptr, i64, i64 } { ptr @.str.4339, i64 1, i64 0 }, ptr %a155 call void @finch_str_concat(ptr %a153, ptr %a154, ptr %a155) store { ptr, i64, i64 } %t152, ptr %a156 call void @finch_str_drop(ptr %a156) @@ -64966,29 +67417,29 @@ then6465: store { ptr, i64, i64 } %t160, ptr %a161 call void @finch_str_drop(ptr %a161) call void @finch_str_drop(ptr %a146) - br label %endif6467 -endif6467: + br label %endif6710 +endif6710: %t162 = getelementptr inbounds { ptr, i64, i64 }, ptr %a30, i32 0, i32 1 %t163 = load i64, ptr %t162 store i64 0, ptr %a164 - br label %for.cond6468 -for.cond6468: + br label %for.cond6711 +for.cond6711: %t165 = load i64, ptr %a164 %t166 = icmp slt i64 %t165, %t163 - br i1 %t166, label %for.body6469, label %for.end6471 -for.body6469: + br i1 %t166, label %for.body6712, label %for.end6714 +for.body6712: %t167 = load ptr, ptr %a1 %t168 = load ptr, ptr %a1 %t169 = load %S.ast.Type, ptr %a5 %t170 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t168, %S.ast.Type %t169) - store { ptr, i64, i64 } { ptr @.str.4212, i64 23, i64 0 }, ptr %a172 + store { ptr, i64, i64 } { ptr @.str.4340, i64 23, i64 0 }, ptr %a172 store { ptr, i64, i64 } %t170, ptr %a173 call void @finch_str_concat(ptr %a171, ptr %a172, ptr %a173) store { ptr, i64, i64 } %t170, ptr %a174 call void @finch_str_drop(ptr %a174) %t175 = load { ptr, i64, i64 }, ptr %a171 store { ptr, i64, i64 } %t175, ptr %a177 - store { ptr, i64, i64 } { ptr @.str.4213, i64 6, i64 0 }, ptr %a178 + store { ptr, i64, i64 } { ptr @.str.4341, i64 6, i64 0 }, ptr %a178 call void @finch_str_concat(ptr %a176, ptr %a177, ptr %a178) store { ptr, i64, i64 } %t175, ptr %a179 call void @finch_str_drop(ptr %a179) @@ -65001,7 +67452,7 @@ for.body6469: call void @finch_str_drop(ptr %a185) %t186 = load { ptr, i64, i64 }, ptr %a182 store { ptr, i64, i64 } %t186, ptr %a188 - store { ptr, i64, i64 } { ptr @.str.4214, i64 6, i64 0 }, ptr %a189 + store { ptr, i64, i64 } { ptr @.str.4342, i64 6, i64 0 }, ptr %a189 call void @finch_str_concat(ptr %a187, ptr %a188, ptr %a189) store { ptr, i64, i64 } %t186, ptr %a190 call void @finch_str_drop(ptr %a190) @@ -65029,11 +67480,11 @@ for.body6469: %t209 = load { ptr, i64, i64 }, ptr %a30 %t210 = extractvalue { ptr, i64, i64 } %t209, 1 %t211 = icmp uge i64 %t208, %t210 - br i1 %t211, label %range6472, label %inrange6473 -range6472: - call void @finch_panic_index(ptr @.str.4215, i64 3556, i64 %t208, i64 %t210) + br i1 %t211, label %range6715, label %inrange6716 +range6715: + call void @finch_panic_index(ptr @.str.4343, i64 3694, i64 %t208, i64 %t210) unreachable -inrange6473: +inrange6716: %t212 = extractvalue { ptr, i64, i64 } %t209, 0 %t213 = getelementptr inbounds { ptr, i64, i64 }, ptr %t212, i64 %t208 %t214 = load { ptr, i64, i64 }, ptr %t213 @@ -65042,21 +67493,21 @@ inrange6473: store { ptr, i64, i64 } %t207, ptr %a216 call void @finch_str_drop(ptr %a216) call void @finch_str_drop(ptr %a203) - br label %for.step6470 -for.step6470: + br label %for.step6713 +for.step6713: %t217 = load i64, ptr %a164 %t218 = add i64 %t217, 1 store i64 %t218, ptr %a164 - br label %for.cond6468 -for.end6471: + br label %for.cond6711 +for.end6714: %t219 = load ptr, ptr %a1 %t220 = load { ptr, i64, i64 }, ptr %a120 - store { ptr, i64, i64 } { ptr @.str.4216, i64 41, i64 0 }, ptr %a222 + store { ptr, i64, i64 } { ptr @.str.4344, i64 41, i64 0 }, ptr %a222 store { ptr, i64, i64 } %t220, ptr %a223 call void @finch_str_concat(ptr %a221, ptr %a222, ptr %a223) %t224 = load { ptr, i64, i64 }, ptr %a221 store { ptr, i64, i64 } %t224, ptr %a226 - store { ptr, i64, i64 } { ptr @.str.4217, i64 3, i64 0 }, ptr %a227 + store { ptr, i64, i64 } { ptr @.str.4345, i64 3, i64 0 }, ptr %a227 call void @finch_str_concat(ptr %a225, ptr %a226, ptr %a227) store { ptr, i64, i64 } %t224, ptr %a228 call void @finch_str_drop(ptr %a228) @@ -65067,12 +67518,12 @@ for.end6471: store { ptr, i64, i64 } %t230, ptr %a232 %t233 = load ptr, ptr %a1 %t234 = load { ptr, i64, i64 }, ptr %a232 - store { ptr, i64, i64 } { ptr @.str.4218, i64 30, i64 0 }, ptr %a236 + store { ptr, i64, i64 } { ptr @.str.4346, i64 30, i64 0 }, ptr %a236 store { ptr, i64, i64 } %t234, ptr %a237 call void @finch_str_concat(ptr %a235, ptr %a236, ptr %a237) %t238 = load { ptr, i64, i64 }, ptr %a235 store { ptr, i64, i64 } %t238, ptr %a240 - store { ptr, i64, i64 } { ptr @.str.4219, i64 6, i64 0 }, ptr %a241 + store { ptr, i64, i64 } { ptr @.str.4347, i64 6, i64 0 }, ptr %a241 call void @finch_str_concat(ptr %a239, ptr %a240, ptr %a241) store { ptr, i64, i64 } %t238, ptr %a242 call void @finch_str_drop(ptr %a242) @@ -65085,7 +67536,7 @@ for.end6471: call void @finch_str_drop(ptr %a248) %t249 = load { ptr, i64, i64 }, ptr %a245 store { ptr, i64, i64 } %t249, ptr %a251 - store { ptr, i64, i64 } { ptr @.str.4220, i64 3, i64 0 }, ptr %a252 + store { ptr, i64, i64 } { ptr @.str.4348, i64 3, i64 0 }, ptr %a252 call void @finch_str_concat(ptr %a250, ptr %a251, ptr %a252) store { ptr, i64, i64 } %t249, ptr %a253 call void @finch_str_drop(ptr %a253) @@ -65096,12 +67547,12 @@ for.end6471: store { ptr, i64, i64 } %t255, ptr %a257 %t258 = load ptr, ptr %a1 %t259 = load { ptr, i64, i64 }, ptr %a257 - store { ptr, i64, i64 } { ptr @.str.4221, i64 30, i64 0 }, ptr %a261 + store { ptr, i64, i64 } { ptr @.str.4349, i64 30, i64 0 }, ptr %a261 store { ptr, i64, i64 } %t259, ptr %a262 call void @finch_str_concat(ptr %a260, ptr %a261, ptr %a262) %t263 = load { ptr, i64, i64 }, ptr %a260 store { ptr, i64, i64 } %t263, ptr %a265 - store { ptr, i64, i64 } { ptr @.str.4222, i64 6, i64 0 }, ptr %a266 + store { ptr, i64, i64 } { ptr @.str.4350, i64 6, i64 0 }, ptr %a266 call void @finch_str_concat(ptr %a264, ptr %a265, ptr %a266) store { ptr, i64, i64 } %t263, ptr %a267 call void @finch_str_drop(ptr %a267) @@ -65114,7 +67565,7 @@ for.end6471: call void @finch_str_drop(ptr %a273) %t274 = load { ptr, i64, i64 }, ptr %a270 store { ptr, i64, i64 } %t274, ptr %a276 - store { ptr, i64, i64 } { ptr @.str.4223, i64 3, i64 0 }, ptr %a277 + store { ptr, i64, i64 } { ptr @.str.4351, i64 3, i64 0 }, ptr %a277 call void @finch_str_concat(ptr %a275, ptr %a276, ptr %a277) store { ptr, i64, i64 } %t274, ptr %a278 call void @finch_str_drop(ptr %a278) @@ -65183,35 +67634,35 @@ entry: %t4 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 %t5 = load { ptr, i64, i64 }, ptr %t4 store { ptr, i64, i64 } %t5, ptr %a6 - store { ptr, i64, i64 } { ptr @.str.4224, i64 3, i64 0 }, ptr %a7 + store { ptr, i64, i64 } { ptr @.str.4352, i64 3, i64 0 }, ptr %a7 %t8 = call i32 @finch_str_eq(ptr %a6, ptr %a7) %t9 = icmp ne i32 %t8, 0 - br label %logic.from6474 -logic.from6474: - br i1 %t9, label %logic.rhs6475, label %logic.end6476 -logic.rhs6475: + br label %logic.from6717 +logic.from6717: + br i1 %t9, label %logic.rhs6718, label %logic.end6719 +logic.rhs6718: %t10 = load ptr, ptr %a1 %t11 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t12 = load { ptr, i64, i64 }, ptr %t11 %t13 = call i64 @finch.gen.lookup(ptr %t10, { ptr, i64, i64 } %t12) %t14 = icmp slt i64 %t13, 0 - br label %logic.rend6477 -logic.rend6477: - br label %logic.end6476 -logic.end6476: - %t15 = phi i1 [ false, %logic.from6474 ], [ %t14, %logic.rend6477 ] - br i1 %t15, label %then6478, label %endif6480 -then6478: + br label %logic.rend6720 +logic.rend6720: + br label %logic.end6719 +logic.end6719: + %t15 = phi i1 [ false, %logic.from6717 ], [ %t14, %logic.rend6720 ] + br i1 %t15, label %then6721, label %endif6723 +then6721: %t16 = load ptr, ptr %a1 %t17 = load %S.ast.Node, ptr %a2 %t18 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t19 = load { ptr, i64, i64 }, ptr %t18 - store { ptr, i64, i64 } { ptr @.str.4225, i64 28, i64 0 }, ptr %a21 + store { ptr, i64, i64 } { ptr @.str.4353, i64 28, i64 0 }, ptr %a21 store { ptr, i64, i64 } %t19, ptr %a22 call void @finch_str_concat(ptr %a20, ptr %a21, ptr %a22) %t23 = load { ptr, i64, i64 }, ptr %a20 store { ptr, i64, i64 } %t23, ptr %a25 - store { ptr, i64, i64 } { ptr @.str.4226, i64 1, i64 0 }, ptr %a26 + store { ptr, i64, i64 } { ptr @.str.4354, i64 1, i64 0 }, ptr %a26 call void @finch_str_concat(ptr %a24, ptr %a25, ptr %a26) store { ptr, i64, i64 } %t23, ptr %a27 call void @finch_str_drop(ptr %a27) @@ -65219,8 +67670,8 @@ then6478: call void @finch.gen.fail(ptr %t16, %S.ast.Node %t17, { ptr, i64, i64 } %t28) store { ptr, i64, i64 } %t28, ptr %a29 call void @finch_str_drop(ptr %a29) - br label %endif6480 -endif6480: + br label %endif6723 +endif6723: %t30 = load ptr, ptr %a1 %t31 = load %S.ast.Node, ptr %a2 %t32 = load i1, ptr %a3 @@ -65229,13 +67680,13 @@ endif6480: %t35 = getelementptr inbounds %S.gen.Ref, ptr %a34, i32 0, i32 0 %t36 = load i1, ptr %t35 %t37 = xor i1 %t36, true - br i1 %t37, label %then6481, label %endif6483 -then6481: + br i1 %t37, label %then6724, label %endif6726 +then6724: %t38 = load ptr, ptr %a1 %t39 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t38, %S.ast.Node %t39, { ptr, i64, i64 } { ptr @.str.4227, i64 60, i64 0 }) - br label %endif6483 -endif6483: + call void @finch.gen.fail(ptr %t38, %S.ast.Node %t39, { ptr, i64, i64 } { ptr @.str.4355, i64 60, i64 0 }) + br label %endif6726 +endif6726: %t40 = getelementptr inbounds %S.gen.Ref, ptr %a34, i32 0, i32 1 %t41 = load %S.gen.Place, ptr %t40 store %S.gen.Place %t41, ptr %a42 @@ -65384,11 +67835,11 @@ entry: %t4 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 %t5 = load { ptr, i64, i64 }, ptr %t4 store { ptr, i64, i64 } %t5, ptr %a6 - store { ptr, i64, i64 } { ptr @.str.4228, i64 3, i64 0 }, ptr %a7 + store { ptr, i64, i64 } { ptr @.str.4356, i64 3, i64 0 }, ptr %a7 %t8 = call i32 @finch_str_eq(ptr %a6, ptr %a7) %t9 = icmp ne i32 %t8, 0 - br i1 %t9, label %then6484, label %endif6486 -then6484: + br i1 %t9, label %then6727, label %endif6729 +then6727: %t10 = load ptr, ptr %a1 %t11 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t12 = load { ptr, i64, i64 }, ptr %t11 @@ -65396,53 +67847,53 @@ then6484: store i64 %t13, ptr %a14 %t15 = load i64, ptr %a14 %t16 = icmp slt i64 %t15, 0 - br label %logic.from6487 -logic.from6487: - br i1 %t16, label %logic.rhs6488, label %logic.end6489 -logic.rhs6488: + br label %logic.from6730 +logic.from6730: + br i1 %t16, label %logic.rhs6731, label %logic.end6732 +logic.rhs6731: %t17 = load ptr, ptr %a1 %t18 = icmp eq ptr %t17, null - br i1 %t18, label %panic6490, label %ok6491 -panic6490: - call void @finch_panic(ptr @.str.4229, i64 3580, ptr @.str.4230) + br i1 %t18, label %panic6733, label %ok6734 +panic6733: + call void @finch_panic(ptr @.str.4357, i64 3718, ptr @.str.4358) unreachable -ok6491: - %t19 = getelementptr inbounds %S.gen.Gen, ptr %t17, i32 0, i32 25 +ok6734: + %t19 = getelementptr inbounds %S.gen.Gen, ptr %t17, i32 0, i32 26 %t20 = getelementptr inbounds %S.cimport.CImports, ptr %t19, i32 0, i32 1 %t21 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t22 = load { ptr, i64, i64 }, ptr %t21 store { ptr, i64, i64 } %t22, ptr %a23 %t24 = call i64 @finch_map_find(ptr %t20, ptr %a23, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t25 = icmp sge i64 %t24, 0 - br label %logic.rend6492 -logic.rend6492: - br label %logic.end6489 -logic.end6489: - %t26 = phi i1 [ false, %logic.from6487 ], [ %t25, %logic.rend6492 ] - br i1 %t26, label %then6493, label %endif6495 -then6493: + br label %logic.rend6735 +logic.rend6735: + br label %logic.end6732 +logic.end6732: + %t26 = phi i1 [ false, %logic.from6730 ], [ %t25, %logic.rend6735 ] + br i1 %t26, label %then6736, label %endif6738 +then6736: %t27 = load ptr, ptr %a1 %t28 = icmp eq ptr %t27, null - br i1 %t28, label %panic6496, label %ok6497 -panic6496: - call void @finch_panic(ptr @.str.4231, i64 3581, ptr @.str.4232) + br i1 %t28, label %panic6739, label %ok6740 +panic6739: + call void @finch_panic(ptr @.str.4359, i64 3719, ptr @.str.4360) unreachable -ok6497: - %t29 = getelementptr inbounds %S.gen.Gen, ptr %t27, i32 0, i32 25 +ok6740: + %t29 = getelementptr inbounds %S.gen.Gen, ptr %t27, i32 0, i32 26 %t30 = getelementptr inbounds %S.cimport.CImports, ptr %t29, i32 0, i32 1 %t31 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t32 = load { ptr, i64, i64 }, ptr %t31 store { ptr, i64, i64 } %t32, ptr %a33 %t34 = call i64 @finch_map_find(ptr %t30, ptr %a33, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t35 = icmp slt i64 %t34, 0 - br i1 %t35, label %map.missing6498, label %map.found6499 -map.missing6498: + br i1 %t35, label %map.missing6741, label %map.found6742 +map.missing6741: store { ptr, i64, i64 } zeroinitializer, ptr %a36 store { ptr, i64, i64 } %t32, ptr %a37 call void @finch_buf_str(ptr %a36, ptr %a37, i32 1) - call void @finch_map_missing(ptr @.str.4233, i64 3581, ptr %a36) + call void @finch_map_missing(ptr @.str.4361, i64 3719, ptr %a36) unreachable -map.found6499: +map.found6742: %t38 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t30, i32 0, i32 0 %t39 = load ptr, ptr %t38 %t40 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t39, i64 %t34 @@ -65454,47 +67905,47 @@ map.found6499: store %S.cimport.CConst %t45, ptr %a46 %t47 = getelementptr inbounds %S.cimport.CConst, ptr %a46, i32 0, i32 0 %t48 = load i1, ptr %t47 - br i1 %t48, label %then6500, label %endif6502 -then6500: + br i1 %t48, label %then6743, label %endif6745 +then6743: %t49 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 %t50 = getelementptr inbounds %S.cimport.CConst, ptr %a46, i32 0, i32 3 %t51 = load { ptr, i64, i64 }, ptr %t50 %t52 = call { ptr, i64, i64 } @finch.gen.llFloat({ ptr, i64, i64 } %t51) %t53 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t52, 0 - %t54 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4234, i64 5, i64 0 }) + %t54 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4362, i64 5, i64 0 }) %t55 = insertvalue %S.gen.Val %t53, %S.ast.Type %t54, 1 %t56 = insertvalue %S.gen.Val %t55, i1 true, 3 %t57 = insertvalue %S.gen.Ref %t49, %S.gen.Val %t56, 2 call void @finch.drop.S_cimport_CConst(ptr %a46) ret %S.gen.Ref %t57 -endif6502: +endif6745: %t58 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 %t59 = getelementptr inbounds %S.cimport.CConst, ptr %a46, i32 0, i32 1 %t60 = load i64, ptr %t59 call void @finch_str_from_int(ptr %a61, i64 %t60) %t62 = load { ptr, i64, i64 }, ptr %a61 %t63 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t62, 0 - %t64 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4235, i64 3, i64 0 }) + %t64 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4363, i64 3, i64 0 }) %t65 = insertvalue %S.gen.Val %t63, %S.ast.Type %t64, 1 %t66 = insertvalue %S.gen.Val %t65, i1 true, 3 %t67 = insertvalue %S.gen.Ref %t58, %S.gen.Val %t66, 2 call void @finch.drop.S_cimport_CConst(ptr %a46) ret %S.gen.Ref %t67 -endif6495: +endif6738: %t68 = load i64, ptr %a14 %t69 = icmp slt i64 %t68, 0 - br label %logic.from6503 -logic.from6503: - br i1 %t69, label %logic.rhs6504, label %logic.end6505 -logic.rhs6504: + br label %logic.from6746 +logic.from6746: + br i1 %t69, label %logic.rhs6747, label %logic.end6748 +logic.rhs6747: %t70 = load ptr, ptr %a1 %t71 = icmp eq ptr %t70, null - br i1 %t71, label %panic6506, label %ok6507 -panic6506: - call void @finch_panic(ptr @.str.4236, i64 3588, ptr @.str.4237) + br i1 %t71, label %panic6749, label %ok6750 +panic6749: + call void @finch_panic(ptr @.str.4364, i64 3726, ptr @.str.4365) unreachable -ok6507: - %t72 = getelementptr inbounds %S.gen.Gen, ptr %t70, i32 0, i32 25 +ok6750: + %t72 = getelementptr inbounds %S.gen.Gen, ptr %t70, i32 0, i32 26 %t73 = getelementptr inbounds %S.cimport.CImports, ptr %t72, i32 0, i32 2 %t74 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t75 = load { ptr, i64, i64 }, ptr %t74 @@ -65502,119 +67953,119 @@ ok6507: %t77 = call i64 @finch_map_find(ptr %t73, ptr %a76, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.ast.Type }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t78 = icmp sge i64 %t77, 0 %t79 = xor i1 %t78, true - br label %logic.rend6508 -logic.rend6508: - br label %logic.end6505 -logic.end6505: - %t80 = phi i1 [ false, %logic.from6503 ], [ %t79, %logic.rend6508 ] - br label %logic.from6509 -logic.from6509: - br i1 %t80, label %logic.rhs6510, label %logic.end6511 -logic.rhs6510: + br label %logic.rend6751 +logic.rend6751: + br label %logic.end6748 +logic.end6748: + %t80 = phi i1 [ false, %logic.from6746 ], [ %t79, %logic.rend6751 ] + br label %logic.from6752 +logic.from6752: + br i1 %t80, label %logic.rhs6753, label %logic.end6754 +logic.rhs6753: %t81 = load ptr, ptr %a1 %t82 = icmp eq ptr %t81, null - br i1 %t82, label %panic6512, label %ok6513 -panic6512: - call void @finch_panic(ptr @.str.4238, i64 3588, ptr @.str.4239) + br i1 %t82, label %panic6755, label %ok6756 +panic6755: + call void @finch_panic(ptr @.str.4366, i64 3726, ptr @.str.4367) unreachable -ok6513: - %t83 = getelementptr inbounds %S.gen.Gen, ptr %t81, i32 0, i32 25 +ok6756: + %t83 = getelementptr inbounds %S.gen.Gen, ptr %t81, i32 0, i32 26 %t84 = getelementptr inbounds %S.cimport.CImports, ptr %t83, i32 0, i32 0 - store { ptr, i64, i64 } { ptr @.str.4240, i64 7, i64 0 }, ptr %a85 + store { ptr, i64, i64 } { ptr @.str.4368, i64 7, i64 0 }, ptr %a85 %t86 = call i64 @finch_map_find(ptr %t84, ptr %a85, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t87 = icmp sge i64 %t86, 0 - br label %logic.rend6514 -logic.rend6514: - br label %logic.end6511 -logic.end6511: - %t88 = phi i1 [ false, %logic.from6509 ], [ %t87, %logic.rend6514 ] - br label %logic.from6515 -logic.from6515: - br i1 %t88, label %logic.rhs6516, label %logic.end6517 -logic.rhs6516: + br label %logic.rend6757 +logic.rend6757: + br label %logic.end6754 +logic.end6754: + %t88 = phi i1 [ false, %logic.from6752 ], [ %t87, %logic.rend6757 ] + br label %logic.from6758 +logic.from6758: + br i1 %t88, label %logic.rhs6759, label %logic.end6760 +logic.rhs6759: %t89 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t90 = load { ptr, i64, i64 }, ptr %t89 store { ptr, i64, i64 } %t90, ptr %a91 - store { ptr, i64, i64 } { ptr @.str.4241, i64 5, i64 0 }, ptr %a92 + store { ptr, i64, i64 } { ptr @.str.4369, i64 5, i64 0 }, ptr %a92 %t93 = call i32 @finch_str_eq(ptr %a91, ptr %a92) %t94 = icmp ne i32 %t93, 0 - br label %logic.from6518 -logic.from6518: - br i1 %t94, label %logic.end6520, label %logic.rhs6519 -logic.rhs6519: + br label %logic.from6761 +logic.from6761: + br i1 %t94, label %logic.end6763, label %logic.rhs6762 +logic.rhs6762: %t95 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t96 = load { ptr, i64, i64 }, ptr %t95 store { ptr, i64, i64 } %t96, ptr %a97 - store { ptr, i64, i64 } { ptr @.str.4242, i64 6, i64 0 }, ptr %a98 + store { ptr, i64, i64 } { ptr @.str.4370, i64 6, i64 0 }, ptr %a98 %t99 = call i32 @finch_str_eq(ptr %a97, ptr %a98) %t100 = icmp ne i32 %t99, 0 - br label %logic.rend6521 -logic.rend6521: - br label %logic.end6520 -logic.end6520: - %t101 = phi i1 [ true, %logic.from6518 ], [ %t100, %logic.rend6521 ] - br label %logic.from6522 -logic.from6522: - br i1 %t101, label %logic.end6524, label %logic.rhs6523 -logic.rhs6523: + br label %logic.rend6764 +logic.rend6764: + br label %logic.end6763 +logic.end6763: + %t101 = phi i1 [ true, %logic.from6761 ], [ %t100, %logic.rend6764 ] + br label %logic.from6765 +logic.from6765: + br i1 %t101, label %logic.end6767, label %logic.rhs6766 +logic.rhs6766: %t102 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t103 = load { ptr, i64, i64 }, ptr %t102 store { ptr, i64, i64 } %t103, ptr %a104 - store { ptr, i64, i64 } { ptr @.str.4243, i64 6, i64 0 }, ptr %a105 + store { ptr, i64, i64 } { ptr @.str.4371, i64 6, i64 0 }, ptr %a105 %t106 = call i32 @finch_str_eq(ptr %a104, ptr %a105) %t107 = icmp ne i32 %t106, 0 - br label %logic.rend6525 -logic.rend6525: - br label %logic.end6524 -logic.end6524: - %t108 = phi i1 [ true, %logic.from6522 ], [ %t107, %logic.rend6525 ] - br label %logic.rend6526 -logic.rend6526: - br label %logic.end6517 -logic.end6517: - %t109 = phi i1 [ false, %logic.from6515 ], [ %t108, %logic.rend6526 ] - br i1 %t109, label %then6527, label %endif6529 -then6527: - store { ptr, i64, i64 } { ptr @.str.4244, i64 1, i64 0 }, ptr %a110 + br label %logic.rend6768 +logic.rend6768: + br label %logic.end6767 +logic.end6767: + %t108 = phi i1 [ true, %logic.from6765 ], [ %t107, %logic.rend6768 ] + br label %logic.rend6769 +logic.rend6769: + br label %logic.end6760 +logic.end6760: + %t109 = phi i1 [ false, %logic.from6758 ], [ %t108, %logic.rend6769 ] + br i1 %t109, label %then6770, label %endif6772 +then6770: + store { ptr, i64, i64 } { ptr @.str.4372, i64 1, i64 0 }, ptr %a110 %t111 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t112 = load { ptr, i64, i64 }, ptr %t111 store { ptr, i64, i64 } %t112, ptr %a113 - store { ptr, i64, i64 } { ptr @.str.4245, i64 5, i64 0 }, ptr %a114 + store { ptr, i64, i64 } { ptr @.str.4373, i64 5, i64 0 }, ptr %a114 %t115 = call i32 @finch_str_eq(ptr %a113, ptr %a114) %t116 = icmp ne i32 %t115, 0 - br i1 %t116, label %then6530, label %else6531 -then6530: + br i1 %t116, label %then6773, label %else6774 +then6773: %t117 = load { ptr, i64, i64 }, ptr %a110 - store { ptr, i64, i64 } { ptr @.str.4246, i64 1, i64 0 }, ptr %a110 + store { ptr, i64, i64 } { ptr @.str.4374, i64 1, i64 0 }, ptr %a110 store { ptr, i64, i64 } %t117, ptr %a118 call void @finch_str_drop(ptr %a118) - br label %endif6532 -else6531: + br label %endif6775 +else6774: %t119 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t120 = load { ptr, i64, i64 }, ptr %t119 store { ptr, i64, i64 } %t120, ptr %a121 - store { ptr, i64, i64 } { ptr @.str.4247, i64 6, i64 0 }, ptr %a122 + store { ptr, i64, i64 } { ptr @.str.4375, i64 6, i64 0 }, ptr %a122 %t123 = call i32 @finch_str_eq(ptr %a121, ptr %a122) %t124 = icmp ne i32 %t123, 0 - br i1 %t124, label %then6533, label %endif6535 -then6533: + br i1 %t124, label %then6776, label %endif6778 +then6776: %t125 = load { ptr, i64, i64 }, ptr %a110 - store { ptr, i64, i64 } { ptr @.str.4248, i64 1, i64 0 }, ptr %a110 + store { ptr, i64, i64 } { ptr @.str.4376, i64 1, i64 0 }, ptr %a110 store { ptr, i64, i64 } %t125, ptr %a126 call void @finch_str_drop(ptr %a126) - br label %endif6535 -endif6535: - br label %endif6532 -endif6532: + br label %endif6778 +endif6778: + br label %endif6775 +endif6775: %t127 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 %t128 = load ptr, ptr %a1 %t129 = load { ptr, i64, i64 }, ptr %a110 - store { ptr, i64, i64 } { ptr @.str.4249, i64 31, i64 0 }, ptr %a131 + store { ptr, i64, i64 } { ptr @.str.4377, i64 31, i64 0 }, ptr %a131 store { ptr, i64, i64 } %t129, ptr %a132 call void @finch_str_concat(ptr %a130, ptr %a131, ptr %a132) %t133 = load { ptr, i64, i64 }, ptr %a130 store { ptr, i64, i64 } %t133, ptr %a135 - store { ptr, i64, i64 } { ptr @.str.4250, i64 1, i64 0 }, ptr %a136 + store { ptr, i64, i64 } { ptr @.str.4378, i64 1, i64 0 }, ptr %a136 call void @finch_str_concat(ptr %a134, ptr %a135, ptr %a136) store { ptr, i64, i64 } %t133, ptr %a137 call void @finch_str_drop(ptr %a137) @@ -65623,62 +68074,62 @@ endif6532: store { ptr, i64, i64 } %t138, ptr %a140 call void @finch_str_drop(ptr %a140) %t141 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t139, 0 - %t142 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4251, i64 3, i64 0 }) + %t142 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4379, i64 3, i64 0 }) %t143 = insertvalue %S.gen.Val %t141, %S.ast.Type %t142, 1 %t144 = insertvalue %S.gen.Ref %t127, %S.gen.Val %t143, 2 call void @finch_str_drop(ptr %a110) ret %S.gen.Ref %t144 -endif6529: +endif6772: %t145 = load i64, ptr %a14 %t146 = icmp slt i64 %t145, 0 - br label %logic.from6536 -logic.from6536: - br i1 %t146, label %logic.rhs6537, label %logic.end6538 -logic.rhs6537: + br label %logic.from6779 +logic.from6779: + br i1 %t146, label %logic.rhs6780, label %logic.end6781 +logic.rhs6780: %t147 = load ptr, ptr %a1 %t148 = icmp eq ptr %t147, null - br i1 %t148, label %panic6539, label %ok6540 -panic6539: - call void @finch_panic(ptr @.str.4252, i64 3597, ptr @.str.4253) + br i1 %t148, label %panic6782, label %ok6783 +panic6782: + call void @finch_panic(ptr @.str.4380, i64 3735, ptr @.str.4381) unreachable -ok6540: - %t149 = getelementptr inbounds %S.gen.Gen, ptr %t147, i32 0, i32 25 +ok6783: + %t149 = getelementptr inbounds %S.gen.Gen, ptr %t147, i32 0, i32 26 %t150 = getelementptr inbounds %S.cimport.CImports, ptr %t149, i32 0, i32 2 %t151 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t152 = load { ptr, i64, i64 }, ptr %t151 store { ptr, i64, i64 } %t152, ptr %a153 %t154 = call i64 @finch_map_find(ptr %t150, ptr %a153, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.ast.Type }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t155 = icmp sge i64 %t154, 0 - br label %logic.rend6541 -logic.rend6541: - br label %logic.end6538 -logic.end6538: - %t156 = phi i1 [ false, %logic.from6536 ], [ %t155, %logic.rend6541 ] - br i1 %t156, label %then6542, label %endif6544 -then6542: + br label %logic.rend6784 +logic.rend6784: + br label %logic.end6781 +logic.end6781: + %t156 = phi i1 [ false, %logic.from6779 ], [ %t155, %logic.rend6784 ] + br i1 %t156, label %then6785, label %endif6787 +then6785: %t157 = load ptr, ptr %a1 %t158 = load ptr, ptr %a1 %t159 = icmp eq ptr %t158, null - br i1 %t159, label %panic6545, label %ok6546 -panic6545: - call void @finch_panic(ptr @.str.4254, i64 3598, ptr @.str.4255) + br i1 %t159, label %panic6788, label %ok6789 +panic6788: + call void @finch_panic(ptr @.str.4382, i64 3736, ptr @.str.4383) unreachable -ok6546: - %t160 = getelementptr inbounds %S.gen.Gen, ptr %t158, i32 0, i32 25 +ok6789: + %t160 = getelementptr inbounds %S.gen.Gen, ptr %t158, i32 0, i32 26 %t161 = getelementptr inbounds %S.cimport.CImports, ptr %t160, i32 0, i32 2 %t162 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t163 = load { ptr, i64, i64 }, ptr %t162 store { ptr, i64, i64 } %t163, ptr %a164 %t165 = call i64 @finch_map_find(ptr %t161, ptr %a164, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.ast.Type }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t166 = icmp slt i64 %t165, 0 - br i1 %t166, label %map.missing6547, label %map.found6548 -map.missing6547: + br i1 %t166, label %map.missing6790, label %map.found6791 +map.missing6790: store { ptr, i64, i64 } zeroinitializer, ptr %a167 store { ptr, i64, i64 } %t163, ptr %a168 call void @finch_buf_str(ptr %a167, ptr %a168, i32 1) - call void @finch_map_missing(ptr @.str.4256, i64 3598, ptr %a167) + call void @finch_map_missing(ptr @.str.4384, i64 3736, ptr %a167) unreachable -map.found6548: +map.found6791: %t169 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t161, i32 0, i32 0 %t170 = load ptr, ptr %t169 %t171 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.ast.Type }, ptr %t170, i64 %t165 @@ -65689,16 +68140,16 @@ map.found6548: store %S.ast.Type %t175, ptr %a176 %t177 = load ptr, ptr %a1 %t178 = icmp eq ptr %t177, null - br i1 %t178, label %panic6549, label %ok6550 -panic6549: - call void @finch_panic(ptr @.str.4257, i64 3599, ptr @.str.4258) + br i1 %t178, label %panic6792, label %ok6793 +panic6792: + call void @finch_panic(ptr @.str.4385, i64 3737, ptr @.str.4386) unreachable -ok6550: - %t179 = getelementptr inbounds %S.gen.Gen, ptr %t177, i32 0, i32 39 +ok6793: + %t179 = getelementptr inbounds %S.gen.Gen, ptr %t177, i32 0, i32 40 %t180 = getelementptr inbounds { ptr, i64, i64 }, ptr %t179, i32 0, i32 1 %t181 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t182 = load { ptr, i64, i64 }, ptr %t181 - store { ptr, i64, i64 } { ptr @.str.4259, i64 2, i64 0 }, ptr %a184 + store { ptr, i64, i64 } { ptr @.str.4387, i64 2, i64 0 }, ptr %a184 store { ptr, i64, i64 } %t182, ptr %a185 call void @finch_str_concat(ptr %a183, ptr %a184, ptr %a185) %t186 = load { ptr, i64, i64 }, ptr %a183 @@ -65706,46 +68157,46 @@ ok6550: %t188 = load i64, ptr %t180 %t189 = load ptr, ptr %t179 store i64 0, ptr %a190 - br label %find.cond6551 -find.cond6551: + br label %find.cond6794 +find.cond6794: %t191 = load i64, ptr %a190 %t192 = icmp slt i64 %t191, %t188 - br i1 %t192, label %find.body6552, label %find.end6555 -find.body6552: + br i1 %t192, label %find.body6795, label %find.end6798 +find.body6795: %t193 = getelementptr inbounds { ptr, i64, i64 }, ptr %t189, i64 %t191 %t194 = load { ptr, i64, i64 }, ptr %t193 store { ptr, i64, i64 } %t194, ptr %a195 store { ptr, i64, i64 } %t186, ptr %a196 %t197 = call i32 @finch_str_eq(ptr %a195, ptr %a196) %t198 = icmp ne i32 %t197, 0 - br i1 %t198, label %find.hit6553, label %find.next6554 -find.hit6553: + br i1 %t198, label %find.hit6796, label %find.next6797 +find.hit6796: store i64 %t191, ptr %a187 - br label %find.end6555 -find.next6554: + br label %find.end6798 +find.next6797: %t199 = add i64 %t191, 1 store i64 %t199, ptr %a190 - br label %find.cond6551 -find.end6555: + br label %find.cond6794 +find.end6798: store { ptr, i64, i64 } %t186, ptr %a200 call void @finch_str_drop(ptr %a200) %t201 = load i64, ptr %a187 %t202 = icmp sge i64 %t201, 0 %t203 = xor i1 %t202, true - br i1 %t203, label %then6556, label %endif6558 -then6556: + br i1 %t203, label %then6799, label %endif6801 +then6799: %t204 = load ptr, ptr %a1 %t205 = icmp eq ptr %t204, null - br i1 %t205, label %panic6559, label %ok6560 -panic6559: - call void @finch_panic(ptr @.str.4260, i64 3600, ptr @.str.4261) + br i1 %t205, label %panic6802, label %ok6803 +panic6802: + call void @finch_panic(ptr @.str.4388, i64 3738, ptr @.str.4389) unreachable -ok6560: - %t206 = getelementptr inbounds %S.gen.Gen, ptr %t204, i32 0, i32 39 +ok6803: + %t206 = getelementptr inbounds %S.gen.Gen, ptr %t204, i32 0, i32 40 %t207 = getelementptr inbounds { ptr, i64, i64 }, ptr %t206, i32 0, i32 1 %t208 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t209 = load { ptr, i64, i64 }, ptr %t208 - store { ptr, i64, i64 } { ptr @.str.4262, i64 2, i64 0 }, ptr %a211 + store { ptr, i64, i64 } { ptr @.str.4390, i64 2, i64 0 }, ptr %a211 store { ptr, i64, i64 } %t209, ptr %a212 call void @finch_str_concat(ptr %a210, ptr %a211, ptr %a212) %t213 = load { ptr, i64, i64 }, ptr %a210 @@ -65758,21 +68209,21 @@ ok6560: store i64 %t215, ptr %t207 %t218 = load ptr, ptr %a1 %t219 = icmp eq ptr %t218, null - br i1 %t219, label %panic6561, label %ok6562 -panic6561: - call void @finch_panic(ptr @.str.4263, i64 3601, ptr @.str.4264) + br i1 %t219, label %panic6804, label %ok6805 +panic6804: + call void @finch_panic(ptr @.str.4391, i64 3739, ptr @.str.4392) unreachable -ok6562: +ok6805: %t220 = getelementptr inbounds %S.gen.Gen, ptr %t218, i32 0, i32 2 %t221 = getelementptr inbounds { ptr, i64, i64 }, ptr %t220, i32 0, i32 1 %t222 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t223 = load { ptr, i64, i64 }, ptr %t222 - store { ptr, i64, i64 } { ptr @.str.4265, i64 1, i64 0 }, ptr %a225 + store { ptr, i64, i64 } { ptr @.str.4393, i64 1, i64 0 }, ptr %a225 store { ptr, i64, i64 } %t223, ptr %a226 call void @finch_str_concat(ptr %a224, ptr %a225, ptr %a226) %t227 = load { ptr, i64, i64 }, ptr %a224 store { ptr, i64, i64 } %t227, ptr %a229 - store { ptr, i64, i64 } { ptr @.str.4266, i64 19, i64 0 }, ptr %a230 + store { ptr, i64, i64 } { ptr @.str.4394, i64 19, i64 0 }, ptr %a230 call void @finch_str_concat(ptr %a228, ptr %a229, ptr %a230) store { ptr, i64, i64 } %t227, ptr %a231 call void @finch_str_drop(ptr %a231) @@ -65795,12 +68246,12 @@ ok6562: %t245 = getelementptr inbounds { ptr, i64, i64 }, ptr %t244, i64 %t242 store { ptr, i64, i64 } %t241, ptr %t245 store i64 %t243, ptr %t221 - br label %endif6558 -endif6558: + br label %endif6801 +endif6801: %t246 = insertvalue %S.gen.Ref zeroinitializer, i1 true, 0 %t247 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t248 = load { ptr, i64, i64 }, ptr %t247 - store { ptr, i64, i64 } { ptr @.str.4267, i64 1, i64 0 }, ptr %a250 + store { ptr, i64, i64 } { ptr @.str.4395, i64 1, i64 0 }, ptr %a250 store { ptr, i64, i64 } %t248, ptr %a251 call void @finch_str_concat(ptr %a249, ptr %a250, ptr %a251) %t252 = load { ptr, i64, i64 }, ptr %a249 @@ -65813,27 +68264,27 @@ endif6558: %t259 = insertvalue %S.gen.Ref %t246, %S.gen.Place %t258, 1 call void @finch.drop.S_ast_Type(ptr %a176) ret %S.gen.Ref %t259 -endif6544: +endif6787: %t260 = load i64, ptr %a14 %t261 = icmp slt i64 %t260, 0 - br i1 %t261, label %then6563, label %endif6565 -then6563: + br i1 %t261, label %then6806, label %endif6808 +then6806: %t262 = load ptr, ptr %a1 %t263 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t264 = load { ptr, i64, i64 }, ptr %t263 %t265 = call i1 @finch.gen.imports(ptr %t262, { ptr, i64, i64 } %t264) - br i1 %t265, label %then6566, label %endif6568 -then6566: + br i1 %t265, label %then6809, label %endif6811 +then6809: %t266 = load ptr, ptr %a1 %t267 = load %S.ast.Node, ptr %a2 %t268 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t269 = load { ptr, i64, i64 }, ptr %t268 - store { ptr, i64, i64 } { ptr @.str.4268, i64 1, i64 0 }, ptr %a271 + store { ptr, i64, i64 } { ptr @.str.4396, i64 1, i64 0 }, ptr %a271 store { ptr, i64, i64 } %t269, ptr %a272 call void @finch_str_concat(ptr %a270, ptr %a271, ptr %a272) %t273 = load { ptr, i64, i64 }, ptr %a270 store { ptr, i64, i64 } %t273, ptr %a275 - store { ptr, i64, i64 } { ptr @.str.4269, i64 43, i64 0 }, ptr %a276 + store { ptr, i64, i64 } { ptr @.str.4397, i64 43, i64 0 }, ptr %a276 call void @finch_str_concat(ptr %a274, ptr %a275, ptr %a276) store { ptr, i64, i64 } %t273, ptr %a277 call void @finch_str_drop(ptr %a277) @@ -65847,7 +68298,7 @@ then6566: call void @finch_str_drop(ptr %a284) %t285 = load { ptr, i64, i64 }, ptr %a281 store { ptr, i64, i64 } %t285, ptr %a287 - store { ptr, i64, i64 } { ptr @.str.4270, i64 10, i64 0 }, ptr %a288 + store { ptr, i64, i64 } { ptr @.str.4398, i64 10, i64 0 }, ptr %a288 call void @finch_str_concat(ptr %a286, ptr %a287, ptr %a288) store { ptr, i64, i64 } %t285, ptr %a289 call void @finch_str_drop(ptr %a289) @@ -65855,18 +68306,18 @@ then6566: call void @finch.gen.fail(ptr %t266, %S.ast.Node %t267, { ptr, i64, i64 } %t290) store { ptr, i64, i64 } %t290, ptr %a291 call void @finch_str_drop(ptr %a291) - br label %endif6568 -endif6568: + br label %endif6811 +endif6811: %t292 = load ptr, ptr %a1 %t293 = load %S.ast.Node, ptr %a2 %t294 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t295 = load { ptr, i64, i64 }, ptr %t294 - store { ptr, i64, i64 } { ptr @.str.4271, i64 28, i64 0 }, ptr %a297 + store { ptr, i64, i64 } { ptr @.str.4399, i64 28, i64 0 }, ptr %a297 store { ptr, i64, i64 } %t295, ptr %a298 call void @finch_str_concat(ptr %a296, ptr %a297, ptr %a298) %t299 = load { ptr, i64, i64 }, ptr %a296 store { ptr, i64, i64 } %t299, ptr %a301 - store { ptr, i64, i64 } { ptr @.str.4272, i64 1, i64 0 }, ptr %a302 + store { ptr, i64, i64 } { ptr @.str.4400, i64 1, i64 0 }, ptr %a302 call void @finch_str_concat(ptr %a300, ptr %a301, ptr %a302) store { ptr, i64, i64 } %t299, ptr %a303 call void @finch_str_drop(ptr %a303) @@ -65874,8 +68325,8 @@ endif6568: call void @finch.gen.fail(ptr %t292, %S.ast.Node %t293, { ptr, i64, i64 } %t304) store { ptr, i64, i64 } %t304, ptr %a305 call void @finch_str_drop(ptr %a305) - br label %endif6565 -endif6565: + br label %endif6808 +endif6808: %t306 = load ptr, ptr %a1 %t307 = load i64, ptr %a14 %t308 = call %S.gen.Var @finch.gen.varAt(ptr %t306, i64 %t307) @@ -65890,14 +68341,14 @@ endif6565: %t317 = getelementptr inbounds %S.gen.Var, ptr %a309, i32 0, i32 1 %t318 = load %S.ast.Type, ptr %t317 %t319 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t318) - store { ptr, i64, i64 } { ptr @.str.4273, i64 9, i64 0 }, ptr %a321 + store { ptr, i64, i64 } { ptr @.str.4401, i64 9, i64 0 }, ptr %a321 store { ptr, i64, i64 } %t319, ptr %a322 call void @finch_str_concat(ptr %a320, ptr %a321, ptr %a322) store { ptr, i64, i64 } %t319, ptr %a323 call void @finch_str_drop(ptr %a323) %t324 = load { ptr, i64, i64 }, ptr %a320 store { ptr, i64, i64 } %t324, ptr %a326 - store { ptr, i64, i64 } { ptr @.str.4274, i64 1, i64 0 }, ptr %a327 + store { ptr, i64, i64 } { ptr @.str.4402, i64 1, i64 0 }, ptr %a327 call void @finch_str_concat(ptr %a325, ptr %a326, ptr %a327) store { ptr, i64, i64 } %t324, ptr %a328 call void @finch_str_drop(ptr %a328) @@ -65911,7 +68362,7 @@ endif6565: call void @finch_str_drop(ptr %a335) %t336 = load { ptr, i64, i64 }, ptr %a332 store { ptr, i64, i64 } %t336, ptr %a338 - store { ptr, i64, i64 } { ptr @.str.4275, i64 4, i64 0 }, ptr %a339 + store { ptr, i64, i64 } { ptr @.str.4403, i64 4, i64 0 }, ptr %a339 call void @finch_str_concat(ptr %a337, ptr %a338, ptr %a339) store { ptr, i64, i64 } %t336, ptr %a340 call void @finch_str_drop(ptr %a340) @@ -65941,35 +68392,35 @@ endif6565: %t362 = insertvalue %S.gen.Ref %t349, %S.gen.Place %t361, 1 call void @finch.drop.S_gen_Var(ptr %a309) ret %S.gen.Ref %t362 -endif6486: +endif6729: %t363 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 %t364 = load { ptr, i64, i64 }, ptr %t363 store { ptr, i64, i64 } %t364, ptr %a365 - store { ptr, i64, i64 } { ptr @.str.4276, i64 6, i64 0 }, ptr %a366 + store { ptr, i64, i64 } { ptr @.str.4404, i64 6, i64 0 }, ptr %a366 %t367 = call i32 @finch_str_eq(ptr %a365, ptr %a366) %t368 = icmp ne i32 %t367, 0 - br i1 %t368, label %then6569, label %endif6571 -then6569: + br i1 %t368, label %then6812, label %endif6814 +then6812: %t369 = load ptr, ptr %a1 %t370 = load %S.ast.Node, ptr %a2 %t371 = load i1, ptr %a3 %t372 = call %S.gen.Ref @finch.gen.member(ptr %t369, %S.ast.Node %t370, i1 %t371) ret %S.gen.Ref %t372 -endif6571: +endif6814: %t373 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 %t374 = load { ptr, i64, i64 }, ptr %t373 store { ptr, i64, i64 } %t374, ptr %a375 - store { ptr, i64, i64 } { ptr @.str.4277, i64 5, i64 0 }, ptr %a376 + store { ptr, i64, i64 } { ptr @.str.4405, i64 5, i64 0 }, ptr %a376 %t377 = call i32 @finch_str_eq(ptr %a375, ptr %a376) %t378 = icmp ne i32 %t377, 0 - br i1 %t378, label %then6572, label %endif6574 -then6572: + br i1 %t378, label %then6815, label %endif6817 +then6815: %t379 = load ptr, ptr %a1 %t380 = load %S.ast.Node, ptr %a2 %t381 = load i1, ptr %a3 %t382 = call %S.gen.Ref @finch.gen.index(ptr %t379, %S.ast.Node %t380, i1 %t381) ret %S.gen.Ref %t382 -endif6574: +endif6817: %t383 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 %t384 = load ptr, ptr %a1 %t385 = load %S.ast.Node, ptr %a2 @@ -66025,13 +68476,13 @@ entry: store { ptr, i64, i64 } %t5, ptr %a6 %t7 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t7, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.4279, i64 1, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.4407, i64 1, i64 0 }, ptr %a10 %t11 = call i32 @finch_str_starts(ptr %a8, ptr %a10) %t12 = icmp ne i32 %t11, 0 - br i1 %t12, label %then6575, label %endif6577 -then6575: + br i1 %t12, label %then6818, label %endif6820 +then6818: %t13 = load { ptr, i64, i64 }, ptr %a6 - store { ptr, i64, i64 } { ptr @.str.4280, i64 1, i64 0 }, ptr %a15 + store { ptr, i64, i64 } { ptr @.str.4408, i64 1, i64 0 }, ptr %a15 store { ptr, i64, i64 } %t13, ptr %a16 call void @finch_str_concat(ptr %a14, ptr %a15, ptr %a16) %t17 = load { ptr, i64, i64 }, ptr %a14 @@ -66039,51 +68490,51 @@ then6575: store { ptr, i64, i64 } %t17, ptr %a6 store { ptr, i64, i64 } %t18, ptr %a19 call void @finch_str_drop(ptr %a19) - br label %endif6577 -endif6577: + br label %endif6820 +endif6820: %t20 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t20, ptr %a21 - store { ptr, i64, i64 } { ptr @.str.4282, i64 1, i64 0 }, ptr %a23 + store { ptr, i64, i64 } { ptr @.str.4410, i64 1, i64 0 }, ptr %a23 %t24 = call i64 @finch_str_find(ptr %a21, ptr %a23) %t25 = icmp sge i64 %t24, 0 %t26 = xor i1 %t25, true - br i1 %t26, label %then6578, label %endif6580 -then6578: + br i1 %t26, label %then6821, label %endif6823 +then6821: %t27 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t27, ptr %a28 - store { ptr, i64, i64 } { ptr @.str.4284, i64 1, i64 0 }, ptr %a30 + store { ptr, i64, i64 } { ptr @.str.4412, i64 1, i64 0 }, ptr %a30 %t31 = call i64 @finch_str_find(ptr %a28, ptr %a30) store i64 %t31, ptr %a32 %t33 = load i64, ptr %a32 %t34 = icmp slt i64 %t33, 0 - br i1 %t34, label %then6581, label %endif6583 -then6581: + br i1 %t34, label %then6824, label %endif6826 +then6824: %t35 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t35, ptr %a36 - store { ptr, i64, i64 } { ptr @.str.4286, i64 1, i64 0 }, ptr %a38 + store { ptr, i64, i64 } { ptr @.str.4414, i64 1, i64 0 }, ptr %a38 %t39 = call i64 @finch_str_find(ptr %a36, ptr %a38) store i64 %t39, ptr %a32 - br label %endif6583 -endif6583: + br label %endif6826 +endif6826: %t40 = load i64, ptr %a32 %t41 = icmp slt i64 %t40, 0 - br i1 %t41, label %then6584, label %endif6586 -then6584: + br i1 %t41, label %then6827, label %endif6829 +then6827: %t42 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t42, ptr %a44 - store { ptr, i64, i64 } { ptr @.str.4287, i64 2, i64 0 }, ptr %a45 + store { ptr, i64, i64 } { ptr @.str.4415, i64 2, i64 0 }, ptr %a45 call void @finch_str_concat(ptr %a43, ptr %a44, ptr %a45) %t46 = load { ptr, i64, i64 }, ptr %a43 call void @finch_str_drop(ptr %a6) ret { ptr, i64, i64 } %t46 -endif6586: +endif6829: %t47 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t47, ptr %a48 %t50 = load i64, ptr %a32 - call void @finch_str_sub(ptr %a49, ptr %a48, i64 0, i64 %t50, ptr @.str.4288, i64 3638) + call void @finch_str_sub(ptr %a49, ptr %a48, i64 0, i64 %t50, ptr @.str.4416, i64 3776) %t51 = load { ptr, i64, i64 }, ptr %a49 store { ptr, i64, i64 } %t51, ptr %a53 - store { ptr, i64, i64 } { ptr @.str.4289, i64 2, i64 0 }, ptr %a54 + store { ptr, i64, i64 } { ptr @.str.4417, i64 2, i64 0 }, ptr %a54 call void @finch_str_concat(ptr %a52, ptr %a53, ptr %a54) store { ptr, i64, i64 } %t51, ptr %a55 call void @finch_str_drop(ptr %a55) @@ -66093,7 +68544,7 @@ endif6586: %t60 = load i64, ptr %a32 %t61 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t62 = load i64, ptr %t61 - call void @finch_str_sub(ptr %a59, ptr %a58, i64 %t60, i64 %t62, ptr @.str.4290, i64 3638) + call void @finch_str_sub(ptr %a59, ptr %a58, i64 %t60, i64 %t62, ptr @.str.4418, i64 3776) %t63 = load { ptr, i64, i64 }, ptr %a59 store { ptr, i64, i64 } %t56, ptr %a65 store { ptr, i64, i64 } %t63, ptr %a66 @@ -66105,7 +68556,7 @@ endif6586: %t69 = load { ptr, i64, i64 }, ptr %a64 call void @finch_str_drop(ptr %a6) ret { ptr, i64, i64 } %t69 -endif6580: +endif6823: %t70 = load { ptr, i64, i64 }, ptr %a6 ret { ptr, i64, i64 } %t70 } @@ -66125,133 +68576,133 @@ entry: %t3 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 %t4 = load { ptr, i64, i64 }, ptr %t3 store { ptr, i64, i64 } %t4, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.4291, i64 3, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.4419, i64 3, i64 0 }, ptr %a6 %t7 = call i32 @finch_str_eq(ptr %a5, ptr %a6) %t8 = icmp ne i32 %t7, 0 - br label %logic.from6587 -logic.from6587: - br i1 %t8, label %logic.rhs6588, label %logic.end6589 -logic.rhs6588: + br label %logic.from6830 +logic.from6830: + br i1 %t8, label %logic.rhs6831, label %logic.end6832 +logic.rhs6831: %t9 = load ptr, ptr %a1 %t10 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t11 = load { ptr, i64, i64 }, ptr %t10 %t12 = call i64 @finch.gen.lookup(ptr %t9, { ptr, i64, i64 } %t11) %t13 = icmp slt i64 %t12, 0 - br label %logic.rend6590 -logic.rend6590: - br label %logic.end6589 -logic.end6589: - %t14 = phi i1 [ false, %logic.from6587 ], [ %t13, %logic.rend6590 ] - br i1 %t14, label %then6591, label %endif6593 -then6591: + br label %logic.rend6833 +logic.rend6833: + br label %logic.end6832 +logic.end6832: + %t14 = phi i1 [ false, %logic.from6830 ], [ %t13, %logic.rend6833 ] + br i1 %t14, label %then6834, label %endif6836 +then6834: %t15 = load ptr, ptr %a1 %t16 = load ptr, ptr %a1 %t17 = icmp eq ptr %t16, null - br i1 %t17, label %panic6594, label %ok6595 -panic6594: - call void @finch_panic(ptr @.str.4292, i64 3646, ptr @.str.4293) + br i1 %t17, label %panic6837, label %ok6838 +panic6837: + call void @finch_panic(ptr @.str.4420, i64 3784, ptr @.str.4421) unreachable -ok6595: +ok6838: %t18 = getelementptr inbounds %S.gen.Gen, ptr %t16, i32 0, i32 14 %t19 = load { ptr, i64, i64 }, ptr %t18 %t20 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t21 = load { ptr, i64, i64 }, ptr %t20 %t22 = call i64 @finch.gen.findEnum(ptr %t15, { ptr, i64, i64 } %t19, { ptr, i64, i64 } %t21) ret i64 %t22 -endif6593: +endif6836: %t23 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 %t24 = load { ptr, i64, i64 }, ptr %t23 store { ptr, i64, i64 } %t24, ptr %a25 - store { ptr, i64, i64 } { ptr @.str.4294, i64 6, i64 0 }, ptr %a26 + store { ptr, i64, i64 } { ptr @.str.4422, i64 6, i64 0 }, ptr %a26 %t27 = call i32 @finch_str_eq(ptr %a25, ptr %a26) %t28 = icmp ne i32 %t27, 0 - br label %logic.from6596 -logic.from6596: - br i1 %t28, label %logic.rhs6597, label %logic.end6598 -logic.rhs6597: + br label %logic.from6839 +logic.from6839: + br i1 %t28, label %logic.rhs6840, label %logic.end6841 +logic.rhs6840: %t29 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t30 = load { ptr, i64, i64 }, ptr %t29 %t31 = extractvalue { ptr, i64, i64 } %t30, 1 %t32 = icmp uge i64 0, %t31 - br i1 %t32, label %range6599, label %inrange6600 -range6599: - call void @finch_panic_index(ptr @.str.4295, i64 3648, i64 0, i64 %t31) + br i1 %t32, label %range6842, label %inrange6843 +range6842: + call void @finch_panic_index(ptr @.str.4423, i64 3786, i64 0, i64 %t31) unreachable -inrange6600: +inrange6843: %t33 = extractvalue { ptr, i64, i64 } %t30, 0 %t34 = getelementptr inbounds %S.ast.Node, ptr %t33, i64 0 %t35 = getelementptr inbounds %S.ast.Node, ptr %t34, i32 0, i32 0 %t36 = load { ptr, i64, i64 }, ptr %t35 store { ptr, i64, i64 } %t36, ptr %a37 - store { ptr, i64, i64 } { ptr @.str.4296, i64 3, i64 0 }, ptr %a38 + store { ptr, i64, i64 } { ptr @.str.4424, i64 3, i64 0 }, ptr %a38 %t39 = call i32 @finch_str_eq(ptr %a37, ptr %a38) %t40 = icmp ne i32 %t39, 0 - br label %logic.rend6601 -logic.rend6601: - br label %logic.end6598 -logic.end6598: - %t41 = phi i1 [ false, %logic.from6596 ], [ %t40, %logic.rend6601 ] - br label %logic.from6602 -logic.from6602: - br i1 %t41, label %logic.rhs6603, label %logic.end6604 -logic.rhs6603: + br label %logic.rend6844 +logic.rend6844: + br label %logic.end6841 +logic.end6841: + %t41 = phi i1 [ false, %logic.from6839 ], [ %t40, %logic.rend6844 ] + br label %logic.from6845 +logic.from6845: + br i1 %t41, label %logic.rhs6846, label %logic.end6847 +logic.rhs6846: %t42 = load ptr, ptr %a1 %t43 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t44 = load { ptr, i64, i64 }, ptr %t43 %t45 = extractvalue { ptr, i64, i64 } %t44, 1 %t46 = icmp uge i64 0, %t45 - br i1 %t46, label %range6605, label %inrange6606 -range6605: - call void @finch_panic_index(ptr @.str.4297, i64 3648, i64 0, i64 %t45) + br i1 %t46, label %range6848, label %inrange6849 +range6848: + call void @finch_panic_index(ptr @.str.4425, i64 3786, i64 0, i64 %t45) unreachable -inrange6606: +inrange6849: %t47 = extractvalue { ptr, i64, i64 } %t44, 0 %t48 = getelementptr inbounds %S.ast.Node, ptr %t47, i64 0 %t49 = getelementptr inbounds %S.ast.Node, ptr %t48, i32 0, i32 1 %t50 = load { ptr, i64, i64 }, ptr %t49 %t51 = call i64 @finch.gen.lookup(ptr %t42, { ptr, i64, i64 } %t50) %t52 = icmp slt i64 %t51, 0 - br label %logic.rend6607 -logic.rend6607: - br label %logic.end6604 -logic.end6604: - %t53 = phi i1 [ false, %logic.from6602 ], [ %t52, %logic.rend6607 ] - br label %logic.from6608 -logic.from6608: - br i1 %t53, label %logic.rhs6609, label %logic.end6610 -logic.rhs6609: + br label %logic.rend6850 +logic.rend6850: + br label %logic.end6847 +logic.end6847: + %t53 = phi i1 [ false, %logic.from6845 ], [ %t52, %logic.rend6850 ] + br label %logic.from6851 +logic.from6851: + br i1 %t53, label %logic.rhs6852, label %logic.end6853 +logic.rhs6852: %t54 = load ptr, ptr %a1 %t55 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t56 = load { ptr, i64, i64 }, ptr %t55 %t57 = extractvalue { ptr, i64, i64 } %t56, 1 %t58 = icmp uge i64 0, %t57 - br i1 %t58, label %range6611, label %inrange6612 -range6611: - call void @finch_panic_index(ptr @.str.4298, i64 3648, i64 0, i64 %t57) + br i1 %t58, label %range6854, label %inrange6855 +range6854: + call void @finch_panic_index(ptr @.str.4426, i64 3786, i64 0, i64 %t57) unreachable -inrange6612: +inrange6855: %t59 = extractvalue { ptr, i64, i64 } %t56, 0 %t60 = getelementptr inbounds %S.ast.Node, ptr %t59, i64 0 %t61 = getelementptr inbounds %S.ast.Node, ptr %t60, i32 0, i32 1 %t62 = load { ptr, i64, i64 }, ptr %t61 %t63 = call i1 @finch.gen.imports(ptr %t54, { ptr, i64, i64 } %t62) - br label %logic.rend6613 -logic.rend6613: - br label %logic.end6610 -logic.end6610: - %t64 = phi i1 [ false, %logic.from6608 ], [ %t63, %logic.rend6613 ] - br i1 %t64, label %then6614, label %endif6616 -then6614: + br label %logic.rend6856 +logic.rend6856: + br label %logic.end6853 +logic.end6853: + %t64 = phi i1 [ false, %logic.from6851 ], [ %t63, %logic.rend6856 ] + br i1 %t64, label %then6857, label %endif6859 +then6857: %t65 = load ptr, ptr %a1 %t66 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t67 = load { ptr, i64, i64 }, ptr %t66 %t68 = extractvalue { ptr, i64, i64 } %t67, 1 %t69 = icmp uge i64 0, %t68 - br i1 %t69, label %range6617, label %inrange6618 -range6617: - call void @finch_panic_index(ptr @.str.4299, i64 3649, i64 0, i64 %t68) + br i1 %t69, label %range6860, label %inrange6861 +range6860: + call void @finch_panic_index(ptr @.str.4427, i64 3787, i64 0, i64 %t68) unreachable -inrange6618: +inrange6861: %t70 = extractvalue { ptr, i64, i64 } %t67, 0 %t71 = getelementptr inbounds %S.ast.Node, ptr %t70, i64 0 %t72 = getelementptr inbounds %S.ast.Node, ptr %t71, i32 0, i32 1 @@ -66260,10 +68711,1269 @@ inrange6618: %t75 = load { ptr, i64, i64 }, ptr %t74 %t76 = call i64 @finch.gen.findEnum(ptr %t65, { ptr, i64, i64 } %t73, { ptr, i64, i64 } %t75) ret i64 %t76 -endif6616: +endif6859: ret i64 -1 } +define internal i64 @finch.gen.sumNamed(ptr %p0, %S.ast.Node %p1) { +entry: + %a1 = alloca ptr, align 16 + %a2 = alloca %S.ast.Node, align 16 + %a5 = alloca { ptr, i64, i64 }, align 16 + %a6 = alloca { ptr, i64, i64 }, align 16 + %a25 = alloca { ptr, i64, i64 }, align 16 + %a26 = alloca { ptr, i64, i64 }, align 16 + %a37 = alloca { ptr, i64, i64 }, align 16 + %a38 = alloca { ptr, i64, i64 }, align 16 + store ptr %p0, ptr %a1 + store %S.ast.Node %p1, ptr %a2 + %t3 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 + %t4 = load { ptr, i64, i64 }, ptr %t3 + store { ptr, i64, i64 } %t4, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.4428, i64 3, i64 0 }, ptr %a6 + %t7 = call i32 @finch_str_eq(ptr %a5, ptr %a6) + %t8 = icmp ne i32 %t7, 0 + br label %logic.from6862 +logic.from6862: + br i1 %t8, label %logic.rhs6863, label %logic.end6864 +logic.rhs6863: + %t9 = load ptr, ptr %a1 + %t10 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t11 = load { ptr, i64, i64 }, ptr %t10 + %t12 = call i64 @finch.gen.lookup(ptr %t9, { ptr, i64, i64 } %t11) + %t13 = icmp slt i64 %t12, 0 + br label %logic.rend6865 +logic.rend6865: + br label %logic.end6864 +logic.end6864: + %t14 = phi i1 [ false, %logic.from6862 ], [ %t13, %logic.rend6865 ] + br i1 %t14, label %then6866, label %endif6868 +then6866: + %t15 = load ptr, ptr %a1 + %t16 = load ptr, ptr %a1 + %t17 = icmp eq ptr %t16, null + br i1 %t17, label %panic6869, label %ok6870 +panic6869: + call void @finch_panic(ptr @.str.4429, i64 3795, ptr @.str.4430) + unreachable +ok6870: + %t18 = getelementptr inbounds %S.gen.Gen, ptr %t16, i32 0, i32 14 + %t19 = load { ptr, i64, i64 }, ptr %t18 + %t20 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t21 = load { ptr, i64, i64 }, ptr %t20 + %t22 = call i64 @finch.gen.findSum(ptr %t15, { ptr, i64, i64 } %t19, { ptr, i64, i64 } %t21) + ret i64 %t22 +endif6868: + %t23 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 + %t24 = load { ptr, i64, i64 }, ptr %t23 + store { ptr, i64, i64 } %t24, ptr %a25 + store { ptr, i64, i64 } { ptr @.str.4431, i64 6, i64 0 }, ptr %a26 + %t27 = call i32 @finch_str_eq(ptr %a25, ptr %a26) + %t28 = icmp ne i32 %t27, 0 + br label %logic.from6871 +logic.from6871: + br i1 %t28, label %logic.rhs6872, label %logic.end6873 +logic.rhs6872: + %t29 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t30 = load { ptr, i64, i64 }, ptr %t29 + %t31 = extractvalue { ptr, i64, i64 } %t30, 1 + %t32 = icmp uge i64 0, %t31 + br i1 %t32, label %range6874, label %inrange6875 +range6874: + call void @finch_panic_index(ptr @.str.4432, i64 3797, i64 0, i64 %t31) + unreachable +inrange6875: + %t33 = extractvalue { ptr, i64, i64 } %t30, 0 + %t34 = getelementptr inbounds %S.ast.Node, ptr %t33, i64 0 + %t35 = getelementptr inbounds %S.ast.Node, ptr %t34, i32 0, i32 0 + %t36 = load { ptr, i64, i64 }, ptr %t35 + store { ptr, i64, i64 } %t36, ptr %a37 + store { ptr, i64, i64 } { ptr @.str.4433, i64 3, i64 0 }, ptr %a38 + %t39 = call i32 @finch_str_eq(ptr %a37, ptr %a38) + %t40 = icmp ne i32 %t39, 0 + br label %logic.rend6876 +logic.rend6876: + br label %logic.end6873 +logic.end6873: + %t41 = phi i1 [ false, %logic.from6871 ], [ %t40, %logic.rend6876 ] + br label %logic.from6877 +logic.from6877: + br i1 %t41, label %logic.rhs6878, label %logic.end6879 +logic.rhs6878: + %t42 = load ptr, ptr %a1 + %t43 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t44 = load { ptr, i64, i64 }, ptr %t43 + %t45 = extractvalue { ptr, i64, i64 } %t44, 1 + %t46 = icmp uge i64 0, %t45 + br i1 %t46, label %range6880, label %inrange6881 +range6880: + call void @finch_panic_index(ptr @.str.4434, i64 3797, i64 0, i64 %t45) + unreachable +inrange6881: + %t47 = extractvalue { ptr, i64, i64 } %t44, 0 + %t48 = getelementptr inbounds %S.ast.Node, ptr %t47, i64 0 + %t49 = getelementptr inbounds %S.ast.Node, ptr %t48, i32 0, i32 1 + %t50 = load { ptr, i64, i64 }, ptr %t49 + %t51 = call i64 @finch.gen.lookup(ptr %t42, { ptr, i64, i64 } %t50) + %t52 = icmp slt i64 %t51, 0 + br label %logic.rend6882 +logic.rend6882: + br label %logic.end6879 +logic.end6879: + %t53 = phi i1 [ false, %logic.from6877 ], [ %t52, %logic.rend6882 ] + br label %logic.from6883 +logic.from6883: + br i1 %t53, label %logic.rhs6884, label %logic.end6885 +logic.rhs6884: + %t54 = load ptr, ptr %a1 + %t55 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t56 = load { ptr, i64, i64 }, ptr %t55 + %t57 = extractvalue { ptr, i64, i64 } %t56, 1 + %t58 = icmp uge i64 0, %t57 + br i1 %t58, label %range6886, label %inrange6887 +range6886: + call void @finch_panic_index(ptr @.str.4435, i64 3797, i64 0, i64 %t57) + unreachable +inrange6887: + %t59 = extractvalue { ptr, i64, i64 } %t56, 0 + %t60 = getelementptr inbounds %S.ast.Node, ptr %t59, i64 0 + %t61 = getelementptr inbounds %S.ast.Node, ptr %t60, i32 0, i32 1 + %t62 = load { ptr, i64, i64 }, ptr %t61 + %t63 = call i1 @finch.gen.imports(ptr %t54, { ptr, i64, i64 } %t62) + br label %logic.rend6888 +logic.rend6888: + br label %logic.end6885 +logic.end6885: + %t64 = phi i1 [ false, %logic.from6883 ], [ %t63, %logic.rend6888 ] + br i1 %t64, label %then6889, label %endif6891 +then6889: + %t65 = load ptr, ptr %a1 + %t66 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t67 = load { ptr, i64, i64 }, ptr %t66 + %t68 = extractvalue { ptr, i64, i64 } %t67, 1 + %t69 = icmp uge i64 0, %t68 + br i1 %t69, label %range6892, label %inrange6893 +range6892: + call void @finch_panic_index(ptr @.str.4436, i64 3798, i64 0, i64 %t68) + unreachable +inrange6893: + %t70 = extractvalue { ptr, i64, i64 } %t67, 0 + %t71 = getelementptr inbounds %S.ast.Node, ptr %t70, i64 0 + %t72 = getelementptr inbounds %S.ast.Node, ptr %t71, i32 0, i32 1 + %t73 = load { ptr, i64, i64 }, ptr %t72 + %t74 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t75 = load { ptr, i64, i64 }, ptr %t74 + %t76 = call i64 @finch.gen.findSum(ptr %t65, { ptr, i64, i64 } %t73, { ptr, i64, i64 } %t75) + ret i64 %t76 +endif6891: + ret i64 -1 +} + +define internal i64 @finch.gen.sumVariant(ptr %p0, i64 %p1, { ptr, i64, i64 } %p2, %S.ast.Node %p3) { +entry: + %a1 = alloca ptr, align 16 + %a2 = alloca i64, align 16 + %a3 = alloca { ptr, i64, i64 }, align 16 + %a4 = alloca %S.ast.Node, align 16 + %a15 = alloca %S.gen.SumDef, align 16 + %a16 = alloca %S.gen.SumDef, align 16 + %a18 = alloca %S.gen.SumDef, align 16 + %a22 = alloca i64, align 16 + %a25 = alloca i64, align 16 + %a30 = alloca { ptr, i64, i64 }, align 16 + %a31 = alloca { ptr, i64, i64 }, align 16 + %a36 = alloca i64, align 16 + %a43 = alloca { ptr, i64, i64 }, align 16 + %a44 = alloca { ptr, i64, i64 }, align 16 + %a45 = alloca { ptr, i64, i64 }, align 16 + %a47 = alloca { ptr, i64, i64 }, align 16 + %a48 = alloca { ptr, i64, i64 }, align 16 + %a49 = alloca { ptr, i64, i64 }, align 16 + %a50 = alloca { ptr, i64, i64 }, align 16 + %a53 = alloca { ptr, i64, i64 }, align 16 + %a54 = alloca { ptr, i64, i64 }, align 16 + %a55 = alloca { ptr, i64, i64 }, align 16 + %a56 = alloca { ptr, i64, i64 }, align 16 + %a58 = alloca { ptr, i64, i64 }, align 16 + %a59 = alloca { ptr, i64, i64 }, align 16 + %a60 = alloca { ptr, i64, i64 }, align 16 + %a61 = alloca { ptr, i64, i64 }, align 16 + %a65 = alloca { ptr, i64, i64 }, align 16 + %a66 = alloca { ptr, i64, i64 }, align 16 + %a68 = alloca { ptr, i64, i64 }, align 16 + %a69 = alloca { ptr, i64, i64 }, align 16 + %a70 = alloca { ptr, i64, i64 }, align 16 + %a71 = alloca { ptr, i64, i64 }, align 16 + %a72 = alloca { ptr, i64, i64 }, align 16 + %a74 = alloca { ptr, i64, i64 }, align 16 + %a75 = alloca { ptr, i64, i64 }, align 16 + %a76 = alloca { ptr, i64, i64 }, align 16 + %a77 = alloca { ptr, i64, i64 }, align 16 + %a79 = alloca { ptr, i64, i64 }, align 16 + store ptr %p0, ptr %a1 + store i64 %p1, ptr %a2 + store { ptr, i64, i64 } %p2, ptr %a3 + store %S.ast.Node %p3, ptr %a4 + %t5 = load ptr, ptr %a1 + %t6 = icmp eq ptr %t5, null + br i1 %t6, label %panic6894, label %ok6895 +panic6894: + call void @finch_panic(ptr @.str.4437, i64 3804, ptr @.str.4438) + unreachable +ok6895: + %t7 = getelementptr inbounds %S.gen.Gen, ptr %t5, i32 0, i32 22 + %t8 = load i64, ptr %a2 + %t9 = load { ptr, i64, i64 }, ptr %t7 + %t10 = extractvalue { ptr, i64, i64 } %t9, 1 + %t11 = icmp uge i64 %t8, %t10 + br i1 %t11, label %range6896, label %inrange6897 +range6896: + call void @finch_panic_index(ptr @.str.4439, i64 3804, i64 %t8, i64 %t10) + unreachable +inrange6897: + %t12 = extractvalue { ptr, i64, i64 } %t9, 0 + %t13 = getelementptr inbounds %S.gen.SumDef, ptr %t12, i64 %t8 + %t14 = load %S.gen.SumDef, ptr %t13 + store %S.gen.SumDef %t14, ptr %a15 + call void @finch.copy.S_gen_SumDef(ptr %a16, ptr %a15) + %t17 = load %S.gen.SumDef, ptr %a16 + store %S.gen.SumDef %t17, ptr %a18 + %t19 = getelementptr inbounds %S.gen.SumDef, ptr %a18, i32 0, i32 2 + %t20 = getelementptr inbounds { ptr, i64, i64 }, ptr %t19, i32 0, i32 1 + %t21 = load { ptr, i64, i64 }, ptr %a3 + store i64 -1, ptr %a22 + %t23 = load i64, ptr %t20 + %t24 = load ptr, ptr %t19 + store i64 0, ptr %a25 + br label %find.cond6898 +find.cond6898: + %t26 = load i64, ptr %a25 + %t27 = icmp slt i64 %t26, %t23 + br i1 %t27, label %find.body6899, label %find.end6902 +find.body6899: + %t28 = getelementptr inbounds { ptr, i64, i64 }, ptr %t24, i64 %t26 + %t29 = load { ptr, i64, i64 }, ptr %t28 + store { ptr, i64, i64 } %t29, ptr %a30 + store { ptr, i64, i64 } %t21, ptr %a31 + %t32 = call i32 @finch_str_eq(ptr %a30, ptr %a31) + %t33 = icmp ne i32 %t32, 0 + br i1 %t33, label %find.hit6900, label %find.next6901 +find.hit6900: + store i64 %t26, ptr %a22 + br label %find.end6902 +find.next6901: + %t34 = add i64 %t26, 1 + store i64 %t34, ptr %a25 + br label %find.cond6898 +find.end6902: + %t35 = load i64, ptr %a22 + store i64 %t35, ptr %a36 + %t37 = load i64, ptr %a36 + %t38 = icmp slt i64 %t37, 0 + br i1 %t38, label %then6903, label %endif6905 +then6903: + %t39 = load ptr, ptr %a1 + %t40 = load %S.ast.Node, ptr %a4 + %t41 = getelementptr inbounds %S.gen.SumDef, ptr %a18, i32 0, i32 1 + %t42 = load { ptr, i64, i64 }, ptr %t41 + store { ptr, i64, i64 } { ptr @.str.4440, i64 9, i64 0 }, ptr %a44 + store { ptr, i64, i64 } %t42, ptr %a45 + call void @finch_str_concat(ptr %a43, ptr %a44, ptr %a45) + %t46 = load { ptr, i64, i64 }, ptr %a43 + store { ptr, i64, i64 } %t46, ptr %a48 + store { ptr, i64, i64 } { ptr @.str.4441, i64 17, i64 0 }, ptr %a49 + call void @finch_str_concat(ptr %a47, ptr %a48, ptr %a49) + store { ptr, i64, i64 } %t46, ptr %a50 + call void @finch_str_drop(ptr %a50) + %t51 = load { ptr, i64, i64 }, ptr %a47 + %t52 = load { ptr, i64, i64 }, ptr %a3 + store { ptr, i64, i64 } %t51, ptr %a54 + store { ptr, i64, i64 } %t52, ptr %a55 + call void @finch_str_concat(ptr %a53, ptr %a54, ptr %a55) + store { ptr, i64, i64 } %t51, ptr %a56 + call void @finch_str_drop(ptr %a56) + %t57 = load { ptr, i64, i64 }, ptr %a53 + store { ptr, i64, i64 } %t57, ptr %a59 + store { ptr, i64, i64 } { ptr @.str.4442, i64 11, i64 0 }, ptr %a60 + call void @finch_str_concat(ptr %a58, ptr %a59, ptr %a60) + store { ptr, i64, i64 } %t57, ptr %a61 + call void @finch_str_drop(ptr %a61) + %t62 = load { ptr, i64, i64 }, ptr %a58 + %t63 = getelementptr inbounds %S.gen.SumDef, ptr %a18, i32 0, i32 2 + %t64 = getelementptr inbounds { ptr, i64, i64 }, ptr %t63, i32 0, i32 1 + store { ptr, i64, i64 } { ptr @.str.4443, i64 2, i64 0 }, ptr %a65 + call void @finch_str_join(ptr %a66, ptr %t63, ptr %a65) + %t67 = load { ptr, i64, i64 }, ptr %a66 + store { ptr, i64, i64 } %t62, ptr %a69 + store { ptr, i64, i64 } %t67, ptr %a70 + call void @finch_str_concat(ptr %a68, ptr %a69, ptr %a70) + store { ptr, i64, i64 } %t62, ptr %a71 + call void @finch_str_drop(ptr %a71) + store { ptr, i64, i64 } %t67, ptr %a72 + call void @finch_str_drop(ptr %a72) + %t73 = load { ptr, i64, i64 }, ptr %a68 + store { ptr, i64, i64 } %t73, ptr %a75 + store { ptr, i64, i64 } { ptr @.str.4444, i64 1, i64 0 }, ptr %a76 + call void @finch_str_concat(ptr %a74, ptr %a75, ptr %a76) + store { ptr, i64, i64 } %t73, ptr %a77 + call void @finch_str_drop(ptr %a77) + %t78 = load { ptr, i64, i64 }, ptr %a74 + call void @finch.gen.fail(ptr %t39, %S.ast.Node %t40, { ptr, i64, i64 } %t78) + store { ptr, i64, i64 } %t78, ptr %a79 + call void @finch_str_drop(ptr %a79) + br label %endif6905 +endif6905: + %t80 = load i64, ptr %a36 + call void @finch.drop.S_gen_SumDef(ptr %a18) + ret i64 %t80 +} + +define internal %S.gen.Val @finch.gen.sumMake(ptr %p0, i64 %p1, { ptr, i64, i64 } %p2, { ptr, i64, i64 } %p3, %S.ast.Node %p4) { +entry: + %a1 = alloca ptr, align 16 + %a2 = alloca i64, align 16 + %a3 = alloca { ptr, i64, i64 }, align 16 + %a4 = alloca { ptr, i64, i64 }, align 16 + %a5 = alloca %S.ast.Node, align 16 + %a16 = alloca %S.gen.SumDef, align 16 + %a17 = alloca %S.gen.SumDef, align 16 + %a19 = alloca %S.gen.SumDef, align 16 + %a25 = alloca i64, align 16 + %a49 = alloca { ptr, i64, i64 }, align 16 + %a50 = alloca { ptr, i64, i64 }, align 16 + %a51 = alloca { ptr, i64, i64 }, align 16 + %a55 = alloca { ptr, i64, i64 }, align 16 + %a56 = alloca { ptr, i64, i64 }, align 16 + %a57 = alloca { ptr, i64, i64 }, align 16 + %a58 = alloca { ptr, i64, i64 }, align 16 + %a60 = alloca { ptr, i64, i64 }, align 16 + %a61 = alloca { ptr, i64, i64 }, align 16 + %a62 = alloca { ptr, i64, i64 }, align 16 + %a63 = alloca { ptr, i64, i64 }, align 16 + %a66 = alloca { ptr, i64, i64 }, align 16 + %a67 = alloca { ptr, i64, i64 }, align 16 + %a68 = alloca { ptr, i64, i64 }, align 16 + %a69 = alloca { ptr, i64, i64 }, align 16 + %a71 = alloca { ptr, i64, i64 }, align 16 + %a75 = alloca { ptr, i64, i64 }, align 16 + %a76 = alloca { ptr, i64, i64 }, align 16 + %a77 = alloca { ptr, i64, i64 }, align 16 + %a87 = alloca { ptr, i64, i64 }, align 16 + %a89 = alloca { ptr, i64, i64 }, align 16 + %a90 = alloca { ptr, i64, i64 }, align 16 + %a91 = alloca { ptr, i64, i64 }, align 16 + %a92 = alloca { ptr, i64, i64 }, align 16 + %a93 = alloca { ptr, i64, i64 }, align 16 + %a95 = alloca { ptr, i64, i64 }, align 16 + %a96 = alloca { ptr, i64, i64 }, align 16 + %a97 = alloca { ptr, i64, i64 }, align 16 + %a98 = alloca { ptr, i64, i64 }, align 16 + %a102 = alloca { ptr, i64, i64 }, align 16 + %a104 = alloca { ptr, i64, i64 }, align 16 + %a105 = alloca { ptr, i64, i64 }, align 16 + %a106 = alloca { ptr, i64, i64 }, align 16 + %a107 = alloca { ptr, i64, i64 }, align 16 + %a108 = alloca { ptr, i64, i64 }, align 16 + %a110 = alloca { ptr, i64, i64 }, align 16 + %a111 = alloca { ptr, i64, i64 }, align 16 + %a112 = alloca { ptr, i64, i64 }, align 16 + %a113 = alloca { ptr, i64, i64 }, align 16 + %a117 = alloca { ptr, i64, i64 }, align 16 + %a118 = alloca { ptr, i64, i64 }, align 16 + %a119 = alloca { ptr, i64, i64 }, align 16 + %a120 = alloca { ptr, i64, i64 }, align 16 + %a122 = alloca { ptr, i64, i64 }, align 16 + %a123 = alloca { ptr, i64, i64 }, align 16 + %a124 = alloca { ptr, i64, i64 }, align 16 + %a125 = alloca { ptr, i64, i64 }, align 16 + %a128 = alloca { ptr, i64, i64 }, align 16 + %a129 = alloca { ptr, i64, i64 }, align 16 + %a130 = alloca { ptr, i64, i64 }, align 16 + %a131 = alloca { ptr, i64, i64 }, align 16 + %a133 = alloca { ptr, i64, i64 }, align 16 + %a134 = alloca { ptr, i64, i64 }, align 16 + %a135 = alloca { ptr, i64, i64 }, align 16 + %a136 = alloca { ptr, i64, i64 }, align 16 + %a138 = alloca { ptr, i64, i64 }, align 16 + %a139 = alloca { ptr, i64, i64 }, align 16 + %a140 = alloca { ptr, i64, i64 }, align 16 + %a144 = alloca { ptr, i64, i64 }, align 16 + %a167 = alloca i64, align 16 + %a178 = alloca %S.ast.Node, align 16 + %a179 = alloca %S.ast.Node, align 16 + %a187 = alloca { ptr, i64, i64 }, align 16 + %a188 = alloca { ptr, i64, i64 }, align 16 + %a189 = alloca { ptr, i64, i64 }, align 16 + %a192 = alloca { ptr, i64, i64 }, align 16 + %a194 = alloca { ptr, i64, i64 }, align 16 + %a195 = alloca { ptr, i64, i64 }, align 16 + %a196 = alloca { ptr, i64, i64 }, align 16 + %a197 = alloca { ptr, i64, i64 }, align 16 + %a198 = alloca { ptr, i64, i64 }, align 16 + %a214 = alloca { ptr, i64, i64 }, align 16 + %a215 = alloca { ptr, i64, i64 }, align 16 + %a216 = alloca { ptr, i64, i64 }, align 16 + %a218 = alloca { ptr, i64, i64 }, align 16 + %a219 = alloca { ptr, i64, i64 }, align 16 + %a220 = alloca { ptr, i64, i64 }, align 16 + %a221 = alloca { ptr, i64, i64 }, align 16 + %a224 = alloca { ptr, i64, i64 }, align 16 + %a225 = alloca { ptr, i64, i64 }, align 16 + %a226 = alloca { ptr, i64, i64 }, align 16 + %a227 = alloca { ptr, i64, i64 }, align 16 + %a229 = alloca { ptr, i64, i64 }, align 16 + %a230 = alloca { ptr, i64, i64 }, align 16 + %a231 = alloca { ptr, i64, i64 }, align 16 + %a232 = alloca { ptr, i64, i64 }, align 16 + %a234 = alloca { ptr, i64, i64 }, align 16 + store ptr %p0, ptr %a1 + store i64 %p1, ptr %a2 + store { ptr, i64, i64 } %p2, ptr %a3 + store { ptr, i64, i64 } %p3, ptr %a4 + store %S.ast.Node %p4, ptr %a5 + %t6 = load ptr, ptr %a1 + %t7 = icmp eq ptr %t6, null + br i1 %t7, label %panic6906, label %ok6907 +panic6906: + call void @finch_panic(ptr @.str.4445, i64 3814, ptr @.str.4446) + unreachable +ok6907: + %t8 = getelementptr inbounds %S.gen.Gen, ptr %t6, i32 0, i32 22 + %t9 = load i64, ptr %a2 + %t10 = load { ptr, i64, i64 }, ptr %t8 + %t11 = extractvalue { ptr, i64, i64 } %t10, 1 + %t12 = icmp uge i64 %t9, %t11 + br i1 %t12, label %range6908, label %inrange6909 +range6908: + call void @finch_panic_index(ptr @.str.4447, i64 3814, i64 %t9, i64 %t11) + unreachable +inrange6909: + %t13 = extractvalue { ptr, i64, i64 } %t10, 0 + %t14 = getelementptr inbounds %S.gen.SumDef, ptr %t13, i64 %t9 + %t15 = load %S.gen.SumDef, ptr %t14 + store %S.gen.SumDef %t15, ptr %a16 + call void @finch.copy.S_gen_SumDef(ptr %a17, ptr %a16) + %t18 = load %S.gen.SumDef, ptr %a17 + store %S.gen.SumDef %t18, ptr %a19 + %t20 = load ptr, ptr %a1 + %t21 = load i64, ptr %a2 + %t22 = load { ptr, i64, i64 }, ptr %a3 + %t23 = load %S.ast.Node, ptr %a5 + %t24 = call i64 @finch.gen.sumVariant(ptr %t20, i64 %t21, { ptr, i64, i64 } %t22, %S.ast.Node %t23) + store i64 %t24, ptr %a25 + %t26 = getelementptr inbounds { ptr, i64, i64 }, ptr %a4, i32 0, i32 1 + %t27 = load i64, ptr %t26 + %t28 = getelementptr inbounds %S.gen.SumDef, ptr %a19, i32 0, i32 3 + %t29 = load i64, ptr %a25 + %t30 = load { ptr, i64, i64 }, ptr %t28 + %t31 = extractvalue { ptr, i64, i64 } %t30, 1 + %t32 = icmp uge i64 %t29, %t31 + br i1 %t32, label %range6910, label %inrange6911 +range6910: + call void @finch_panic_index(ptr @.str.4448, i64 3816, i64 %t29, i64 %t31) + unreachable +inrange6911: + %t33 = extractvalue { ptr, i64, i64 } %t30, 0 + %t34 = getelementptr inbounds i64, ptr %t33, i64 %t29 + %t35 = load i64, ptr %t34 + %t36 = icmp ne i64 %t27, %t35 + br i1 %t36, label %then6912, label %endif6914 +then6912: + %t37 = getelementptr inbounds %S.gen.SumDef, ptr %a19, i32 0, i32 3 + %t38 = load i64, ptr %a25 + %t39 = load { ptr, i64, i64 }, ptr %t37 + %t40 = extractvalue { ptr, i64, i64 } %t39, 1 + %t41 = icmp uge i64 %t38, %t40 + br i1 %t41, label %range6915, label %inrange6916 +range6915: + call void @finch_panic_index(ptr @.str.4449, i64 3817, i64 %t38, i64 %t40) + unreachable +inrange6916: + %t42 = extractvalue { ptr, i64, i64 } %t39, 0 + %t43 = getelementptr inbounds i64, ptr %t42, i64 %t38 + %t44 = load i64, ptr %t43 + %t45 = icmp eq i64 %t44, 0 + br i1 %t45, label %then6917, label %endif6919 +then6917: + %t46 = load ptr, ptr %a1 + %t47 = load %S.ast.Node, ptr %a5 + %t48 = load { ptr, i64, i64 }, ptr %a3 + store { ptr, i64, i64 } %t48, ptr %a50 + store { ptr, i64, i64 } { ptr @.str.4450, i64 22, i64 0 }, ptr %a51 + call void @finch_str_concat(ptr %a49, ptr %a50, ptr %a51) + %t52 = load { ptr, i64, i64 }, ptr %a49 + %t53 = getelementptr inbounds %S.gen.SumDef, ptr %a19, i32 0, i32 1 + %t54 = load { ptr, i64, i64 }, ptr %t53 + store { ptr, i64, i64 } %t52, ptr %a56 + store { ptr, i64, i64 } %t54, ptr %a57 + call void @finch_str_concat(ptr %a55, ptr %a56, ptr %a57) + store { ptr, i64, i64 } %t52, ptr %a58 + call void @finch_str_drop(ptr %a58) + %t59 = load { ptr, i64, i64 }, ptr %a55 + store { ptr, i64, i64 } %t59, ptr %a61 + store { ptr, i64, i64 } { ptr @.str.4451, i64 1, i64 0 }, ptr %a62 + call void @finch_str_concat(ptr %a60, ptr %a61, ptr %a62) + store { ptr, i64, i64 } %t59, ptr %a63 + call void @finch_str_drop(ptr %a63) + %t64 = load { ptr, i64, i64 }, ptr %a60 + %t65 = load { ptr, i64, i64 }, ptr %a3 + store { ptr, i64, i64 } %t64, ptr %a67 + store { ptr, i64, i64 } %t65, ptr %a68 + call void @finch_str_concat(ptr %a66, ptr %a67, ptr %a68) + store { ptr, i64, i64 } %t64, ptr %a69 + call void @finch_str_drop(ptr %a69) + %t70 = load { ptr, i64, i64 }, ptr %a66 + call void @finch.gen.fail(ptr %t46, %S.ast.Node %t47, { ptr, i64, i64 } %t70) + store { ptr, i64, i64 } %t70, ptr %a71 + call void @finch_str_drop(ptr %a71) + br label %endif6919 +endif6919: + %t72 = load ptr, ptr %a1 + %t73 = load %S.ast.Node, ptr %a5 + %t74 = load { ptr, i64, i64 }, ptr %a3 + store { ptr, i64, i64 } %t74, ptr %a76 + store { ptr, i64, i64 } { ptr @.str.4452, i64 7, i64 0 }, ptr %a77 + call void @finch_str_concat(ptr %a75, ptr %a76, ptr %a77) + %t78 = load { ptr, i64, i64 }, ptr %a75 + %t79 = getelementptr inbounds %S.gen.SumDef, ptr %a19, i32 0, i32 3 + %t80 = load i64, ptr %a25 + %t81 = load { ptr, i64, i64 }, ptr %t79 + %t82 = extractvalue { ptr, i64, i64 } %t81, 1 + %t83 = icmp uge i64 %t80, %t82 + br i1 %t83, label %range6920, label %inrange6921 +range6920: + call void @finch_panic_index(ptr @.str.4453, i64 3820, i64 %t80, i64 %t82) + unreachable +inrange6921: + %t84 = extractvalue { ptr, i64, i64 } %t81, 0 + %t85 = getelementptr inbounds i64, ptr %t84, i64 %t80 + %t86 = load i64, ptr %t85 + call void @finch_str_from_int(ptr %a87, i64 %t86) + %t88 = load { ptr, i64, i64 }, ptr %a87 + store { ptr, i64, i64 } %t78, ptr %a90 + store { ptr, i64, i64 } %t88, ptr %a91 + call void @finch_str_concat(ptr %a89, ptr %a90, ptr %a91) + store { ptr, i64, i64 } %t78, ptr %a92 + call void @finch_str_drop(ptr %a92) + store { ptr, i64, i64 } %t88, ptr %a93 + call void @finch_str_drop(ptr %a93) + %t94 = load { ptr, i64, i64 }, ptr %a89 + store { ptr, i64, i64 } %t94, ptr %a96 + store { ptr, i64, i64 } { ptr @.str.4454, i64 19, i64 0 }, ptr %a97 + call void @finch_str_concat(ptr %a95, ptr %a96, ptr %a97) + store { ptr, i64, i64 } %t94, ptr %a98 + call void @finch_str_drop(ptr %a98) + %t99 = load { ptr, i64, i64 }, ptr %a95 + %t100 = getelementptr inbounds { ptr, i64, i64 }, ptr %a4, i32 0, i32 1 + %t101 = load i64, ptr %t100 + call void @finch_str_from_int(ptr %a102, i64 %t101) + %t103 = load { ptr, i64, i64 }, ptr %a102 + store { ptr, i64, i64 } %t99, ptr %a105 + store { ptr, i64, i64 } %t103, ptr %a106 + call void @finch_str_concat(ptr %a104, ptr %a105, ptr %a106) + store { ptr, i64, i64 } %t99, ptr %a107 + call void @finch_str_drop(ptr %a107) + store { ptr, i64, i64 } %t103, ptr %a108 + call void @finch_str_drop(ptr %a108) + %t109 = load { ptr, i64, i64 }, ptr %a104 + store { ptr, i64, i64 } %t109, ptr %a111 + store { ptr, i64, i64 } { ptr @.str.4455, i64 2, i64 0 }, ptr %a112 + call void @finch_str_concat(ptr %a110, ptr %a111, ptr %a112) + store { ptr, i64, i64 } %t109, ptr %a113 + call void @finch_str_drop(ptr %a113) + %t114 = load { ptr, i64, i64 }, ptr %a110 + %t115 = getelementptr inbounds %S.gen.SumDef, ptr %a19, i32 0, i32 1 + %t116 = load { ptr, i64, i64 }, ptr %t115 + store { ptr, i64, i64 } %t114, ptr %a118 + store { ptr, i64, i64 } %t116, ptr %a119 + call void @finch_str_concat(ptr %a117, ptr %a118, ptr %a119) + store { ptr, i64, i64 } %t114, ptr %a120 + call void @finch_str_drop(ptr %a120) + %t121 = load { ptr, i64, i64 }, ptr %a117 + store { ptr, i64, i64 } %t121, ptr %a123 + store { ptr, i64, i64 } { ptr @.str.4456, i64 1, i64 0 }, ptr %a124 + call void @finch_str_concat(ptr %a122, ptr %a123, ptr %a124) + store { ptr, i64, i64 } %t121, ptr %a125 + call void @finch_str_drop(ptr %a125) + %t126 = load { ptr, i64, i64 }, ptr %a122 + %t127 = load { ptr, i64, i64 }, ptr %a3 + store { ptr, i64, i64 } %t126, ptr %a129 + store { ptr, i64, i64 } %t127, ptr %a130 + call void @finch_str_concat(ptr %a128, ptr %a129, ptr %a130) + store { ptr, i64, i64 } %t126, ptr %a131 + call void @finch_str_drop(ptr %a131) + %t132 = load { ptr, i64, i64 }, ptr %a128 + store { ptr, i64, i64 } %t132, ptr %a134 + store { ptr, i64, i64 } { ptr @.str.4457, i64 5, i64 0 }, ptr %a135 + call void @finch_str_concat(ptr %a133, ptr %a134, ptr %a135) + store { ptr, i64, i64 } %t132, ptr %a136 + call void @finch_str_drop(ptr %a136) + %t137 = load { ptr, i64, i64 }, ptr %a133 + call void @finch.gen.fail(ptr %t72, %S.ast.Node %t73, { ptr, i64, i64 } %t137) + store { ptr, i64, i64 } %t137, ptr %a138 + call void @finch_str_drop(ptr %a138) + br label %endif6914 +endif6914: + store { ptr, i64, i64 } zeroinitializer, ptr %a139 + store { ptr, i64, i64 } zeroinitializer, ptr %a140 + %t141 = getelementptr inbounds { ptr, i64, i64 }, ptr %a139, i32 0, i32 1 + %t142 = insertvalue %S.ast.Node zeroinitializer, { ptr, i64, i64 } { ptr @.str.4458, i64 3, i64 0 }, 0 + %t143 = load i64, ptr %a25 + call void @finch_str_from_int(ptr %a144, i64 %t143) + %t145 = load { ptr, i64, i64 }, ptr %a144 + %t146 = insertvalue %S.ast.Node %t142, { ptr, i64, i64 } %t145, 4 + %t147 = getelementptr inbounds %S.ast.Node, ptr %a5, i32 0, i32 11 + %t148 = load i64, ptr %t147 + %t149 = insertvalue %S.ast.Node %t146, i64 %t148, 11 + %t150 = getelementptr inbounds %S.ast.Node, ptr %a5, i32 0, i32 12 + %t151 = load i64, ptr %t150 + %t152 = insertvalue %S.ast.Node %t149, i64 %t151, 12 + %t153 = getelementptr inbounds %S.ast.Node, ptr %a5, i32 0, i32 13 + %t154 = load i64, ptr %t153 + %t155 = insertvalue %S.ast.Node %t152, i64 %t154, 13 + %t156 = load i64, ptr %t141 + %t157 = add i64 %t156, 1 + call void @finch_arr_reserve(ptr %a139, i64 %t157, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) + %t158 = load ptr, ptr %a139 + %t159 = getelementptr inbounds %S.ast.Node, ptr %t158, i64 %t156 + store %S.ast.Node %t155, ptr %t159 + store i64 %t157, ptr %t141 + %t160 = getelementptr inbounds { ptr, i64, i64 }, ptr %a140, i32 0, i32 1 + %t161 = load i64, ptr %t160 + %t162 = add i64 %t161, 1 + call void @finch_arr_reserve(ptr %a140, i64 %t162, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t163 = load ptr, ptr %a140 + %t164 = getelementptr inbounds { ptr, i64, i64 }, ptr %t163, i64 %t161 + store { ptr, i64, i64 } { ptr @.str.4459, i64 3, i64 0 }, ptr %t164 + store i64 %t162, ptr %t160 + %t165 = getelementptr inbounds { ptr, i64, i64 }, ptr %a4, i32 0, i32 1 + %t166 = load i64, ptr %t165 + store i64 0, ptr %a167 + br label %for.cond6922 +for.cond6922: + %t168 = load i64, ptr %a167 + %t169 = icmp slt i64 %t168, %t166 + br i1 %t169, label %for.body6923, label %for.end6925 +for.body6923: + %t170 = getelementptr inbounds { ptr, i64, i64 }, ptr %a139, i32 0, i32 1 + %t171 = load i64, ptr %a167 + %t172 = load { ptr, i64, i64 }, ptr %a4 + %t173 = extractvalue { ptr, i64, i64 } %t172, 1 + %t174 = icmp uge i64 %t171, %t173 + br i1 %t174, label %range6926, label %inrange6927 +range6926: + call void @finch_panic_index(ptr @.str.4460, i64 3827, i64 %t171, i64 %t173) + unreachable +inrange6927: + %t175 = extractvalue { ptr, i64, i64 } %t172, 0 + %t176 = getelementptr inbounds %S.ast.Node, ptr %t175, i64 %t171 + %t177 = load %S.ast.Node, ptr %t176 + store %S.ast.Node %t177, ptr %a178 + call void @finch.copy.S_ast_Node(ptr %a179, ptr %a178) + %t180 = load %S.ast.Node, ptr %a179 + %t181 = load i64, ptr %t170 + %t182 = add i64 %t181, 1 + call void @finch_arr_reserve(ptr %a139, i64 %t182, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) + %t183 = load ptr, ptr %a139 + %t184 = getelementptr inbounds %S.ast.Node, ptr %t183, i64 %t181 + store %S.ast.Node %t180, ptr %t184 + store i64 %t182, ptr %t170 + %t185 = getelementptr inbounds { ptr, i64, i64 }, ptr %a140, i32 0, i32 1 + %t186 = load { ptr, i64, i64 }, ptr %a3 + store { ptr, i64, i64 } %t186, ptr %a188 + store { ptr, i64, i64 } { ptr @.str.4461, i64 1, i64 0 }, ptr %a189 + call void @finch_str_concat(ptr %a187, ptr %a188, ptr %a189) + %t190 = load { ptr, i64, i64 }, ptr %a187 + %t191 = load i64, ptr %a167 + call void @finch_str_from_int(ptr %a192, i64 %t191) + %t193 = load { ptr, i64, i64 }, ptr %a192 + store { ptr, i64, i64 } %t190, ptr %a195 + store { ptr, i64, i64 } %t193, ptr %a196 + call void @finch_str_concat(ptr %a194, ptr %a195, ptr %a196) + store { ptr, i64, i64 } %t190, ptr %a197 + call void @finch_str_drop(ptr %a197) + store { ptr, i64, i64 } %t193, ptr %a198 + call void @finch_str_drop(ptr %a198) + %t199 = load { ptr, i64, i64 }, ptr %a194 + %t200 = load i64, ptr %t185 + %t201 = add i64 %t200, 1 + call void @finch_arr_reserve(ptr %a140, i64 %t201, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t202 = load ptr, ptr %a140 + %t203 = getelementptr inbounds { ptr, i64, i64 }, ptr %t202, i64 %t200 + store { ptr, i64, i64 } %t199, ptr %t203 + store i64 %t201, ptr %t185 + br label %for.step6924 +for.step6924: + %t204 = load i64, ptr %a167 + %t205 = add i64 %t204, 1 + store i64 %t205, ptr %a167 + br label %for.cond6922 +for.end6925: + %t206 = load ptr, ptr %a1 + %t207 = load %S.ast.Node, ptr %a5 + %t208 = getelementptr inbounds %S.ast.Node, ptr %a5, i32 0, i32 12 + %t209 = load i64, ptr %t208 + %t210 = getelementptr inbounds { ptr, i64, i64 }, ptr %a3, i32 0, i32 1 + %t211 = load i64, ptr %t210 + %t212 = getelementptr inbounds %S.gen.SumDef, ptr %a19, i32 0, i32 1 + %t213 = load { ptr, i64, i64 }, ptr %t212 + store { ptr, i64, i64 } { ptr @.str.4462, i64 9, i64 0 }, ptr %a215 + store { ptr, i64, i64 } %t213, ptr %a216 + call void @finch_str_concat(ptr %a214, ptr %a215, ptr %a216) + %t217 = load { ptr, i64, i64 }, ptr %a214 + store { ptr, i64, i64 } %t217, ptr %a219 + store { ptr, i64, i64 } { ptr @.str.4463, i64 1, i64 0 }, ptr %a220 + call void @finch_str_concat(ptr %a218, ptr %a219, ptr %a220) + store { ptr, i64, i64 } %t217, ptr %a221 + call void @finch_str_drop(ptr %a221) + %t222 = load { ptr, i64, i64 }, ptr %a218 + %t223 = load { ptr, i64, i64 }, ptr %a3 + store { ptr, i64, i64 } %t222, ptr %a225 + store { ptr, i64, i64 } %t223, ptr %a226 + call void @finch_str_concat(ptr %a224, ptr %a225, ptr %a226) + store { ptr, i64, i64 } %t222, ptr %a227 + call void @finch_str_drop(ptr %a227) + %t228 = load { ptr, i64, i64 }, ptr %a224 + store { ptr, i64, i64 } %t228, ptr %a230 + store { ptr, i64, i64 } { ptr @.str.4464, i64 4, i64 0 }, ptr %a231 + call void @finch_str_concat(ptr %a229, ptr %a230, ptr %a231) + store { ptr, i64, i64 } %t228, ptr %a232 + call void @finch_str_drop(ptr %a232) + %t233 = load { ptr, i64, i64 }, ptr %a229 + call void @finch.gen.noteRef(ptr %t206, %S.ast.Node %t207, i64 %t209, i64 %t211, { ptr, i64, i64 } %t233, { ptr, i64, i64 } { ptr @.str.4465, i64 0, i64 0 }, i64 0, i64 0) + store { ptr, i64, i64 } %t233, ptr %a234 + call void @finch_str_drop(ptr %a234) + %t235 = load ptr, ptr %a1 + %t236 = load ptr, ptr %a1 + %t237 = getelementptr inbounds %S.gen.SumDef, ptr %a19, i32 0, i32 0 + %t238 = load { ptr, i64, i64 }, ptr %t237 + %t239 = getelementptr inbounds %S.gen.SumDef, ptr %a19, i32 0, i32 1 + %t240 = load { ptr, i64, i64 }, ptr %t239 + %t241 = call i64 @finch.gen.findStruct(ptr %t236, { ptr, i64, i64 } %t238, { ptr, i64, i64 } %t240) + %t242 = load { ptr, i64, i64 }, ptr %a139 + %t243 = load { ptr, i64, i64 }, ptr %a140 + %t244 = load %S.ast.Node, ptr %a5 + %t245 = call %S.gen.Val @finch.gen.construct(ptr %t235, i64 %t241, { ptr, i64, i64 } %t242, { ptr, i64, i64 } %t243, %S.ast.Node %t244) + call void @finch.drop.arr_str(ptr %a140) + call void @finch.drop.arr_S_ast_Node(ptr %a139) + call void @finch.drop.S_gen_SumDef(ptr %a19) + ret %S.gen.Val %t245 +} + +define internal %S.gen.SumPat @finch.gen.sumPattern(ptr %p0, %S.ast.Node %p1, i64 %p2) { +entry: + %a1 = alloca ptr, align 16 + %a2 = alloca %S.ast.Node, align 16 + %a3 = alloca i64, align 16 + %a14 = alloca %S.gen.SumDef, align 16 + %a15 = alloca %S.gen.SumDef, align 16 + %a17 = alloca %S.gen.SumDef, align 16 + %a18 = alloca { ptr, i64, i64 }, align 16 + %a19 = alloca { ptr, i64, i64 }, align 16 + %a22 = alloca { ptr, i64, i64 }, align 16 + %a23 = alloca { ptr, i64, i64 }, align 16 + %a34 = alloca { ptr, i64, i64 }, align 16 + %a35 = alloca { ptr, i64, i64 }, align 16 + %a38 = alloca { ptr, i64, i64 }, align 16 + %a41 = alloca { ptr, i64, i64 }, align 16 + %a42 = alloca { ptr, i64, i64 }, align 16 + %a47 = alloca { ptr, i64, i64 }, align 16 + %a48 = alloca { ptr, i64, i64 }, align 16 + %a51 = alloca { ptr, i64, i64 }, align 16 + %a54 = alloca { ptr, i64, i64 }, align 16 + %a55 = alloca { ptr, i64, i64 }, align 16 + %a58 = alloca { ptr, i64, i64 }, align 16 + %a61 = alloca { ptr, i64, i64 }, align 16 + %a62 = alloca { ptr, i64, i64 }, align 16 + %a79 = alloca { ptr, i64, i64 }, align 16 + %a80 = alloca { ptr, i64, i64 }, align 16 + %a83 = alloca { ptr, i64, i64 }, align 16 + %a86 = alloca { ptr, i64, i64 }, align 16 + %a87 = alloca { ptr, i64, i64 }, align 16 + %a104 = alloca { ptr, i64, i64 }, align 16 + %a105 = alloca { ptr, i64, i64 }, align 16 + %a108 = alloca { ptr, i64, i64 }, align 16 + %a112 = alloca i64, align 16 + %a124 = alloca %S.ast.Node, align 16 + %a125 = alloca %S.ast.Node, align 16 + %a137 = alloca { ptr, i64, i64 }, align 16 + %a138 = alloca { ptr, i64, i64 }, align 16 + %a139 = alloca { ptr, i64, i64 }, align 16 + %a141 = alloca { ptr, i64, i64 }, align 16 + %a142 = alloca { ptr, i64, i64 }, align 16 + %a143 = alloca { ptr, i64, i64 }, align 16 + %a144 = alloca { ptr, i64, i64 }, align 16 + %a148 = alloca { ptr, i64, i64 }, align 16 + %a149 = alloca { ptr, i64, i64 }, align 16 + %a151 = alloca { ptr, i64, i64 }, align 16 + %a152 = alloca { ptr, i64, i64 }, align 16 + %a153 = alloca { ptr, i64, i64 }, align 16 + %a154 = alloca { ptr, i64, i64 }, align 16 + %a155 = alloca { ptr, i64, i64 }, align 16 + %a157 = alloca { ptr, i64, i64 }, align 16 + %a158 = alloca { ptr, i64, i64 }, align 16 + %a159 = alloca { ptr, i64, i64 }, align 16 + %a160 = alloca { ptr, i64, i64 }, align 16 + %a162 = alloca { ptr, i64, i64 }, align 16 + %a168 = alloca i64, align 16 + %a192 = alloca { ptr, i64, i64 }, align 16 + %a193 = alloca { ptr, i64, i64 }, align 16 + %a194 = alloca { ptr, i64, i64 }, align 16 + %a197 = alloca { ptr, i64, i64 }, align 16 + %a198 = alloca { ptr, i64, i64 }, align 16 + %a199 = alloca { ptr, i64, i64 }, align 16 + %a200 = alloca { ptr, i64, i64 }, align 16 + %a202 = alloca { ptr, i64, i64 }, align 16 + %a206 = alloca { ptr, i64, i64 }, align 16 + %a207 = alloca { ptr, i64, i64 }, align 16 + %a208 = alloca { ptr, i64, i64 }, align 16 + %a218 = alloca { ptr, i64, i64 }, align 16 + %a220 = alloca { ptr, i64, i64 }, align 16 + %a221 = alloca { ptr, i64, i64 }, align 16 + %a222 = alloca { ptr, i64, i64 }, align 16 + %a223 = alloca { ptr, i64, i64 }, align 16 + %a224 = alloca { ptr, i64, i64 }, align 16 + %a226 = alloca { ptr, i64, i64 }, align 16 + %a227 = alloca { ptr, i64, i64 }, align 16 + %a228 = alloca { ptr, i64, i64 }, align 16 + %a229 = alloca { ptr, i64, i64 }, align 16 + %a232 = alloca { ptr, i64, i64 }, align 16 + %a233 = alloca { ptr, i64, i64 }, align 16 + %a234 = alloca { ptr, i64, i64 }, align 16 + %a235 = alloca { ptr, i64, i64 }, align 16 + %a237 = alloca { ptr, i64, i64 }, align 16 + %a238 = alloca { ptr, i64, i64 }, align 16 + %a239 = alloca { ptr, i64, i64 }, align 16 + %a240 = alloca { ptr, i64, i64 }, align 16 + %a242 = alloca { ptr, i64, i64 }, align 16 + %a243 = alloca i64, align 16 + %a251 = alloca %S.ast.Node, align 16 + %a254 = alloca { ptr, i64, i64 }, align 16 + %a255 = alloca { ptr, i64, i64 }, align 16 + %a265 = alloca { ptr, i64, i64 }, align 16 + %a266 = alloca { ptr, i64, i64 }, align 16 + store ptr %p0, ptr %a1 + store %S.ast.Node %p1, ptr %a2 + store i64 %p2, ptr %a3 + %t4 = load ptr, ptr %a1 + %t5 = icmp eq ptr %t4, null + br i1 %t5, label %panic6928, label %ok6929 +panic6928: + call void @finch_panic(ptr @.str.4466, i64 3836, ptr @.str.4467) + unreachable +ok6929: + %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 22 + %t7 = load i64, ptr %a3 + %t8 = load { ptr, i64, i64 }, ptr %t6 + %t9 = extractvalue { ptr, i64, i64 } %t8, 1 + %t10 = icmp uge i64 %t7, %t9 + br i1 %t10, label %range6930, label %inrange6931 +range6930: + call void @finch_panic_index(ptr @.str.4468, i64 3836, i64 %t7, i64 %t9) + unreachable +inrange6931: + %t11 = extractvalue { ptr, i64, i64 } %t8, 0 + %t12 = getelementptr inbounds %S.gen.SumDef, ptr %t11, i64 %t7 + %t13 = load %S.gen.SumDef, ptr %t12 + store %S.gen.SumDef %t13, ptr %a14 + call void @finch.copy.S_gen_SumDef(ptr %a15, ptr %a14) + %t16 = load %S.gen.SumDef, ptr %a15 + store %S.gen.SumDef %t16, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.4469, i64 0, i64 0 }, ptr %a18 + store { ptr, i64, i64 } zeroinitializer, ptr %a19 + %t20 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 + %t21 = load { ptr, i64, i64 }, ptr %t20 + store { ptr, i64, i64 } %t21, ptr %a22 + store { ptr, i64, i64 } { ptr @.str.4470, i64 3, i64 0 }, ptr %a23 + %t24 = call i32 @finch_str_eq(ptr %a22, ptr %a23) + %t25 = icmp ne i32 %t24, 0 + br label %logic.from6932 +logic.from6932: + br i1 %t25, label %logic.rhs6933, label %logic.end6934 +logic.rhs6933: + %t26 = load ptr, ptr %a1 + %t27 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t28 = load { ptr, i64, i64 }, ptr %t27 + %t29 = call i64 @finch.gen.lookup(ptr %t26, { ptr, i64, i64 } %t28) + %t30 = icmp slt i64 %t29, 0 + br label %logic.rend6935 +logic.rend6935: + br label %logic.end6934 +logic.end6934: + %t31 = phi i1 [ false, %logic.from6932 ], [ %t30, %logic.rend6935 ] + br i1 %t31, label %then6936, label %else6937 +then6936: + %t32 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t33 = load { ptr, i64, i64 }, ptr %t32 + store { ptr, i64, i64 } %t33, ptr %a34 + call void @finch_str_copy(ptr %a35, ptr %a34) + %t36 = load { ptr, i64, i64 }, ptr %a35 + %t37 = load { ptr, i64, i64 }, ptr %a18 + store { ptr, i64, i64 } %t36, ptr %a18 + store { ptr, i64, i64 } %t37, ptr %a38 + call void @finch_str_drop(ptr %a38) + br label %endif6938 +else6937: + %t39 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 + %t40 = load { ptr, i64, i64 }, ptr %t39 + store { ptr, i64, i64 } %t40, ptr %a41 + store { ptr, i64, i64 } { ptr @.str.4471, i64 4, i64 0 }, ptr %a42 + %t43 = call i32 @finch_str_eq(ptr %a41, ptr %a42) + %t44 = icmp ne i32 %t43, 0 + br i1 %t44, label %then6939, label %else6940 +then6939: + %t45 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t46 = load { ptr, i64, i64 }, ptr %t45 + store { ptr, i64, i64 } %t46, ptr %a47 + call void @finch_str_copy(ptr %a48, ptr %a47) + %t49 = load { ptr, i64, i64 }, ptr %a48 + %t50 = load { ptr, i64, i64 }, ptr %a18 + store { ptr, i64, i64 } %t49, ptr %a18 + store { ptr, i64, i64 } %t50, ptr %a51 + call void @finch_str_drop(ptr %a51) + %t52 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t53 = load { ptr, i64, i64 }, ptr %t52 + store { ptr, i64, i64 } %t53, ptr %a54 + call void @finch.copy.arr_S_ast_Node(ptr %a55, ptr %a54) + %t56 = load { ptr, i64, i64 }, ptr %a55 + %t57 = load { ptr, i64, i64 }, ptr %a19 + store { ptr, i64, i64 } %t56, ptr %a19 + store { ptr, i64, i64 } %t57, ptr %a58 + call void @finch.drop.arr_S_ast_Node(ptr %a58) + br label %endif6941 +else6940: + %t59 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 + %t60 = load { ptr, i64, i64 }, ptr %t59 + store { ptr, i64, i64 } %t60, ptr %a61 + store { ptr, i64, i64 } { ptr @.str.4472, i64 6, i64 0 }, ptr %a62 + %t63 = call i32 @finch_str_eq(ptr %a61, ptr %a62) + %t64 = icmp ne i32 %t63, 0 + br label %logic.from6942 +logic.from6942: + br i1 %t64, label %logic.rhs6943, label %logic.end6944 +logic.rhs6943: + %t65 = load ptr, ptr %a1 + %t66 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t67 = load { ptr, i64, i64 }, ptr %t66 + %t68 = extractvalue { ptr, i64, i64 } %t67, 1 + %t69 = icmp uge i64 0, %t68 + br i1 %t69, label %range6945, label %inrange6946 +range6945: + call void @finch_panic_index(ptr @.str.4473, i64 3844, i64 0, i64 %t68) + unreachable +inrange6946: + %t70 = extractvalue { ptr, i64, i64 } %t67, 0 + %t71 = getelementptr inbounds %S.ast.Node, ptr %t70, i64 0 + %t72 = load %S.ast.Node, ptr %t71 + %t73 = call i64 @finch.gen.sumNamed(ptr %t65, %S.ast.Node %t72) + %t74 = load i64, ptr %a3 + %t75 = icmp eq i64 %t73, %t74 + br label %logic.rend6947 +logic.rend6947: + br label %logic.end6944 +logic.end6944: + %t76 = phi i1 [ false, %logic.from6942 ], [ %t75, %logic.rend6947 ] + br i1 %t76, label %then6948, label %else6949 +then6948: + %t77 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t78 = load { ptr, i64, i64 }, ptr %t77 + store { ptr, i64, i64 } %t78, ptr %a79 + call void @finch_str_copy(ptr %a80, ptr %a79) + %t81 = load { ptr, i64, i64 }, ptr %a80 + %t82 = load { ptr, i64, i64 }, ptr %a18 + store { ptr, i64, i64 } %t81, ptr %a18 + store { ptr, i64, i64 } %t82, ptr %a83 + call void @finch_str_drop(ptr %a83) + br label %endif6950 +else6949: + %t84 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 0 + %t85 = load { ptr, i64, i64 }, ptr %t84 + store { ptr, i64, i64 } %t85, ptr %a86 + store { ptr, i64, i64 } { ptr @.str.4474, i64 6, i64 0 }, ptr %a87 + %t88 = call i32 @finch_str_eq(ptr %a86, ptr %a87) + %t89 = icmp ne i32 %t88, 0 + br label %logic.from6951 +logic.from6951: + br i1 %t89, label %logic.rhs6952, label %logic.end6953 +logic.rhs6952: + %t90 = load ptr, ptr %a1 + %t91 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t92 = load { ptr, i64, i64 }, ptr %t91 + %t93 = extractvalue { ptr, i64, i64 } %t92, 1 + %t94 = icmp uge i64 0, %t93 + br i1 %t94, label %range6954, label %inrange6955 +range6954: + call void @finch_panic_index(ptr @.str.4475, i64 3846, i64 0, i64 %t93) + unreachable +inrange6955: + %t95 = extractvalue { ptr, i64, i64 } %t92, 0 + %t96 = getelementptr inbounds %S.ast.Node, ptr %t95, i64 0 + %t97 = load %S.ast.Node, ptr %t96 + %t98 = call i64 @finch.gen.sumNamed(ptr %t90, %S.ast.Node %t97) + %t99 = load i64, ptr %a3 + %t100 = icmp eq i64 %t98, %t99 + br label %logic.rend6956 +logic.rend6956: + br label %logic.end6953 +logic.end6953: + %t101 = phi i1 [ false, %logic.from6951 ], [ %t100, %logic.rend6956 ] + br i1 %t101, label %then6957, label %else6958 +then6957: + %t102 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t103 = load { ptr, i64, i64 }, ptr %t102 + store { ptr, i64, i64 } %t103, ptr %a104 + call void @finch_str_copy(ptr %a105, ptr %a104) + %t106 = load { ptr, i64, i64 }, ptr %a105 + %t107 = load { ptr, i64, i64 }, ptr %a18 + store { ptr, i64, i64 } %t106, ptr %a18 + store { ptr, i64, i64 } %t107, ptr %a108 + call void @finch_str_drop(ptr %a108) + %t109 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t110 = getelementptr inbounds { ptr, i64, i64 }, ptr %t109, i32 0, i32 1 + %t111 = load i64, ptr %t110 + store i64 1, ptr %a112 + br label %for.cond6960 +for.cond6960: + %t113 = load i64, ptr %a112 + %t114 = icmp slt i64 %t113, %t111 + br i1 %t114, label %for.body6961, label %for.end6963 +for.body6961: + %t115 = getelementptr inbounds { ptr, i64, i64 }, ptr %a19, i32 0, i32 1 + %t116 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t117 = load i64, ptr %a112 + %t118 = load { ptr, i64, i64 }, ptr %t116 + %t119 = extractvalue { ptr, i64, i64 } %t118, 1 + %t120 = icmp uge i64 %t117, %t119 + br i1 %t120, label %range6964, label %inrange6965 +range6964: + call void @finch_panic_index(ptr @.str.4476, i64 3849, i64 %t117, i64 %t119) + unreachable +inrange6965: + %t121 = extractvalue { ptr, i64, i64 } %t118, 0 + %t122 = getelementptr inbounds %S.ast.Node, ptr %t121, i64 %t117 + %t123 = load %S.ast.Node, ptr %t122 + store %S.ast.Node %t123, ptr %a124 + call void @finch.copy.S_ast_Node(ptr %a125, ptr %a124) + %t126 = load %S.ast.Node, ptr %a125 + %t127 = load i64, ptr %t115 + %t128 = add i64 %t127, 1 + call void @finch_arr_reserve(ptr %a19, i64 %t128, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) + %t129 = load ptr, ptr %a19 + %t130 = getelementptr inbounds %S.ast.Node, ptr %t129, i64 %t127 + store %S.ast.Node %t126, ptr %t130 + store i64 %t128, ptr %t115 + br label %for.step6962 +for.step6962: + %t131 = load i64, ptr %a112 + %t132 = add i64 %t131, 1 + store i64 %t132, ptr %a112 + br label %for.cond6960 +for.end6963: + br label %endif6959 +else6958: + %t133 = load ptr, ptr %a1 + %t134 = load %S.ast.Node, ptr %a2 + %t135 = getelementptr inbounds %S.gen.SumDef, ptr %a17, i32 0, i32 1 + %t136 = load { ptr, i64, i64 }, ptr %t135 + store { ptr, i64, i64 } { ptr @.str.4477, i64 33, i64 0 }, ptr %a138 + store { ptr, i64, i64 } %t136, ptr %a139 + call void @finch_str_concat(ptr %a137, ptr %a138, ptr %a139) + %t140 = load { ptr, i64, i64 }, ptr %a137 + store { ptr, i64, i64 } %t140, ptr %a142 + store { ptr, i64, i64 } { ptr @.str.4478, i64 10, i64 0 }, ptr %a143 + call void @finch_str_concat(ptr %a141, ptr %a142, ptr %a143) + store { ptr, i64, i64 } %t140, ptr %a144 + call void @finch_str_drop(ptr %a144) + %t145 = load { ptr, i64, i64 }, ptr %a141 + %t146 = getelementptr inbounds %S.gen.SumDef, ptr %a17, i32 0, i32 2 + %t147 = getelementptr inbounds { ptr, i64, i64 }, ptr %t146, i32 0, i32 1 + store { ptr, i64, i64 } { ptr @.str.4479, i64 2, i64 0 }, ptr %a148 + call void @finch_str_join(ptr %a149, ptr %t146, ptr %a148) + %t150 = load { ptr, i64, i64 }, ptr %a149 + store { ptr, i64, i64 } %t145, ptr %a152 + store { ptr, i64, i64 } %t150, ptr %a153 + call void @finch_str_concat(ptr %a151, ptr %a152, ptr %a153) + store { ptr, i64, i64 } %t145, ptr %a154 + call void @finch_str_drop(ptr %a154) + store { ptr, i64, i64 } %t150, ptr %a155 + call void @finch_str_drop(ptr %a155) + %t156 = load { ptr, i64, i64 }, ptr %a151 + store { ptr, i64, i64 } %t156, ptr %a158 + store { ptr, i64, i64 } { ptr @.str.4480, i64 1, i64 0 }, ptr %a159 + call void @finch_str_concat(ptr %a157, ptr %a158, ptr %a159) + store { ptr, i64, i64 } %t156, ptr %a160 + call void @finch_str_drop(ptr %a160) + %t161 = load { ptr, i64, i64 }, ptr %a157 + call void @finch.gen.fail(ptr %t133, %S.ast.Node %t134, { ptr, i64, i64 } %t161) + store { ptr, i64, i64 } %t161, ptr %a162 + call void @finch_str_drop(ptr %a162) + br label %endif6959 +endif6959: + br label %endif6950 +endif6950: + br label %endif6941 +endif6941: + br label %endif6938 +endif6938: + %t163 = load ptr, ptr %a1 + %t164 = load i64, ptr %a3 + %t165 = load { ptr, i64, i64 }, ptr %a18 + %t166 = load %S.ast.Node, ptr %a2 + %t167 = call i64 @finch.gen.sumVariant(ptr %t163, i64 %t164, { ptr, i64, i64 } %t165, %S.ast.Node %t166) + store i64 %t167, ptr %a168 + %t169 = getelementptr inbounds { ptr, i64, i64 }, ptr %a19, i32 0, i32 1 + %t170 = load i64, ptr %t169 + %t171 = getelementptr inbounds %S.gen.SumDef, ptr %a17, i32 0, i32 3 + %t172 = load i64, ptr %a168 + %t173 = load { ptr, i64, i64 }, ptr %t171 + %t174 = extractvalue { ptr, i64, i64 } %t173, 1 + %t175 = icmp uge i64 %t172, %t174 + br i1 %t175, label %range6966, label %inrange6967 +range6966: + call void @finch_panic_index(ptr @.str.4481, i64 3855, i64 %t172, i64 %t174) + unreachable +inrange6967: + %t176 = extractvalue { ptr, i64, i64 } %t173, 0 + %t177 = getelementptr inbounds i64, ptr %t176, i64 %t172 + %t178 = load i64, ptr %t177 + %t179 = icmp ne i64 %t170, %t178 + br i1 %t179, label %then6968, label %endif6970 +then6968: + %t180 = getelementptr inbounds %S.gen.SumDef, ptr %a17, i32 0, i32 3 + %t181 = load i64, ptr %a168 + %t182 = load { ptr, i64, i64 }, ptr %t180 + %t183 = extractvalue { ptr, i64, i64 } %t182, 1 + %t184 = icmp uge i64 %t181, %t183 + br i1 %t184, label %range6971, label %inrange6972 +range6971: + call void @finch_panic_index(ptr @.str.4482, i64 3856, i64 %t181, i64 %t183) + unreachable +inrange6972: + %t185 = extractvalue { ptr, i64, i64 } %t182, 0 + %t186 = getelementptr inbounds i64, ptr %t185, i64 %t181 + %t187 = load i64, ptr %t186 + %t188 = icmp eq i64 %t187, 0 + br i1 %t188, label %then6973, label %endif6975 +then6973: + %t189 = load ptr, ptr %a1 + %t190 = load %S.ast.Node, ptr %a2 + %t191 = load { ptr, i64, i64 }, ptr %a18 + store { ptr, i64, i64 } %t191, ptr %a193 + store { ptr, i64, i64 } { ptr @.str.4483, i64 27, i64 0 }, ptr %a194 + call void @finch_str_concat(ptr %a192, ptr %a193, ptr %a194) + %t195 = load { ptr, i64, i64 }, ptr %a192 + %t196 = load { ptr, i64, i64 }, ptr %a18 + store { ptr, i64, i64 } %t195, ptr %a198 + store { ptr, i64, i64 } %t196, ptr %a199 + call void @finch_str_concat(ptr %a197, ptr %a198, ptr %a199) + store { ptr, i64, i64 } %t195, ptr %a200 + call void @finch_str_drop(ptr %a200) + %t201 = load { ptr, i64, i64 }, ptr %a197 + call void @finch.gen.fail(ptr %t189, %S.ast.Node %t190, { ptr, i64, i64 } %t201) + store { ptr, i64, i64 } %t201, ptr %a202 + call void @finch_str_drop(ptr %a202) + br label %endif6975 +endif6975: + %t203 = load ptr, ptr %a1 + %t204 = load %S.ast.Node, ptr %a2 + %t205 = load { ptr, i64, i64 }, ptr %a18 + store { ptr, i64, i64 } %t205, ptr %a207 + store { ptr, i64, i64 } { ptr @.str.4484, i64 7, i64 0 }, ptr %a208 + call void @finch_str_concat(ptr %a206, ptr %a207, ptr %a208) + %t209 = load { ptr, i64, i64 }, ptr %a206 + %t210 = getelementptr inbounds %S.gen.SumDef, ptr %a17, i32 0, i32 3 + %t211 = load i64, ptr %a168 + %t212 = load { ptr, i64, i64 }, ptr %t210 + %t213 = extractvalue { ptr, i64, i64 } %t212, 1 + %t214 = icmp uge i64 %t211, %t213 + br i1 %t214, label %range6976, label %inrange6977 +range6976: + call void @finch_panic_index(ptr @.str.4485, i64 3859, i64 %t211, i64 %t213) + unreachable +inrange6977: + %t215 = extractvalue { ptr, i64, i64 } %t212, 0 + %t216 = getelementptr inbounds i64, ptr %t215, i64 %t211 + %t217 = load i64, ptr %t216 + call void @finch_str_from_int(ptr %a218, i64 %t217) + %t219 = load { ptr, i64, i64 }, ptr %a218 + store { ptr, i64, i64 } %t209, ptr %a221 + store { ptr, i64, i64 } %t219, ptr %a222 + call void @finch_str_concat(ptr %a220, ptr %a221, ptr %a222) + store { ptr, i64, i64 } %t209, ptr %a223 + call void @finch_str_drop(ptr %a223) + store { ptr, i64, i64 } %t219, ptr %a224 + call void @finch_str_drop(ptr %a224) + %t225 = load { ptr, i64, i64 }, ptr %a220 + store { ptr, i64, i64 } %t225, ptr %a227 + store { ptr, i64, i64 } { ptr @.str.4486, i64 27, i64 0 }, ptr %a228 + call void @finch_str_concat(ptr %a226, ptr %a227, ptr %a228) + store { ptr, i64, i64 } %t225, ptr %a229 + call void @finch_str_drop(ptr %a229) + %t230 = load { ptr, i64, i64 }, ptr %a226 + %t231 = load { ptr, i64, i64 }, ptr %a18 + store { ptr, i64, i64 } %t230, ptr %a233 + store { ptr, i64, i64 } %t231, ptr %a234 + call void @finch_str_concat(ptr %a232, ptr %a233, ptr %a234) + store { ptr, i64, i64 } %t230, ptr %a235 + call void @finch_str_drop(ptr %a235) + %t236 = load { ptr, i64, i64 }, ptr %a232 + store { ptr, i64, i64 } %t236, ptr %a238 + store { ptr, i64, i64 } { ptr @.str.4487, i64 27, i64 0 }, ptr %a239 + call void @finch_str_concat(ptr %a237, ptr %a238, ptr %a239) + store { ptr, i64, i64 } %t236, ptr %a240 + call void @finch_str_drop(ptr %a240) + %t241 = load { ptr, i64, i64 }, ptr %a237 + call void @finch.gen.fail(ptr %t203, %S.ast.Node %t204, { ptr, i64, i64 } %t241) + store { ptr, i64, i64 } %t241, ptr %a242 + call void @finch_str_drop(ptr %a242) + br label %endif6970 +endif6970: + store i64 0, ptr %a243 + br label %each.cond6978 +each.cond6978: + %t244 = getelementptr inbounds { ptr, i64, i64 }, ptr %a19, i32 0, i32 1 + %t245 = load i64, ptr %t244 + %t246 = load i64, ptr %a243 + %t247 = icmp slt i64 %t246, %t245 + br i1 %t247, label %each.body6979, label %each.end6981 +each.body6979: + %t248 = load ptr, ptr %a19 + %t249 = getelementptr inbounds %S.ast.Node, ptr %t248, i64 %t246 + %t250 = load %S.ast.Node, ptr %t249 + store %S.ast.Node %t250, ptr %a251 + %t252 = getelementptr inbounds %S.ast.Node, ptr %a251, i32 0, i32 0 + %t253 = load { ptr, i64, i64 }, ptr %t252 + store { ptr, i64, i64 } %t253, ptr %a254 + store { ptr, i64, i64 } { ptr @.str.4488, i64 3, i64 0 }, ptr %a255 + %t256 = call i32 @finch_str_eq(ptr %a254, ptr %a255) + %t257 = icmp eq i32 %t256, 0 + br i1 %t257, label %then6982, label %endif6984 +then6982: + %t258 = load ptr, ptr %a1 + %t259 = load %S.ast.Node, ptr %a251 + call void @finch.gen.fail(ptr %t258, %S.ast.Node %t259, { ptr, i64, i64 } { ptr @.str.4489, i64 50, i64 0 }) + br label %endif6984 +endif6984: + br label %each.step6980 +each.step6980: + %t260 = load i64, ptr %a243 + %t261 = add i64 %t260, 1 + store i64 %t261, ptr %a243 + br label %each.cond6978 +each.end6981: + %t262 = load i64, ptr %a168 + %t263 = insertvalue %S.gen.SumPat zeroinitializer, i64 %t262, 0 + %t264 = load { ptr, i64, i64 }, ptr %a19 + store { ptr, i64, i64 } %t264, ptr %a265 + call void @finch.copy.arr_S_ast_Node(ptr %a266, ptr %a265) + %t267 = load { ptr, i64, i64 }, ptr %a266 + %t268 = insertvalue %S.gen.SumPat %t263, { ptr, i64, i64 } %t267, 1 + call void @finch.drop.arr_S_ast_Node(ptr %a19) + call void @finch_str_drop(ptr %a18) + call void @finch.drop.S_gen_SumDef(ptr %a17) + ret %S.gen.SumPat %t268 +} + define internal %S.gen.Val @finch.gen.enumValue(ptr %p0, %S.ast.Node %p1, i64 %p2) { entry: %a1 = alloca ptr, align 16 @@ -66340,21 +70050,21 @@ entry: store i64 %p2, ptr %a3 %t4 = load ptr, ptr %a1 %t5 = icmp eq ptr %t4, null - br i1 %t5, label %panic6619, label %ok6620 -panic6619: - call void @finch_panic(ptr @.str.4300, i64 3656, ptr @.str.4301) + br i1 %t5, label %panic6985, label %ok6986 +panic6985: + call void @finch_panic(ptr @.str.4490, i64 3871, ptr @.str.4491) unreachable -ok6620: +ok6986: %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 21 %t7 = load i64, ptr %a3 %t8 = load { ptr, i64, i64 }, ptr %t6 %t9 = extractvalue { ptr, i64, i64 } %t8, 1 %t10 = icmp uge i64 %t7, %t9 - br i1 %t10, label %range6621, label %inrange6622 -range6621: - call void @finch_panic_index(ptr @.str.4302, i64 3656, i64 %t7, i64 %t9) + br i1 %t10, label %range6987, label %inrange6988 +range6987: + call void @finch_panic_index(ptr @.str.4492, i64 3871, i64 %t7, i64 %t9) unreachable -inrange6622: +inrange6988: %t11 = extractvalue { ptr, i64, i64 } %t8, 0 %t12 = getelementptr inbounds %S.gen.EnumDef, ptr %t11, i64 %t7 %t13 = load %S.gen.EnumDef, ptr %t12 @@ -66370,43 +70080,43 @@ inrange6622: %t23 = load i64, ptr %t19 %t24 = load ptr, ptr %t18 store i64 0, ptr %a25 - br label %find.cond6623 -find.cond6623: + br label %find.cond6989 +find.cond6989: %t26 = load i64, ptr %a25 %t27 = icmp slt i64 %t26, %t23 - br i1 %t27, label %find.body6624, label %find.end6627 -find.body6624: + br i1 %t27, label %find.body6990, label %find.end6993 +find.body6990: %t28 = getelementptr inbounds { ptr, i64, i64 }, ptr %t24, i64 %t26 %t29 = load { ptr, i64, i64 }, ptr %t28 store { ptr, i64, i64 } %t29, ptr %a30 store { ptr, i64, i64 } %t21, ptr %a31 %t32 = call i32 @finch_str_eq(ptr %a30, ptr %a31) %t33 = icmp ne i32 %t32, 0 - br i1 %t33, label %find.hit6625, label %find.next6626 -find.hit6625: + br i1 %t33, label %find.hit6991, label %find.next6992 +find.hit6991: store i64 %t26, ptr %a22 - br label %find.end6627 -find.next6626: + br label %find.end6993 +find.next6992: %t34 = add i64 %t26, 1 store i64 %t34, ptr %a25 - br label %find.cond6623 -find.end6627: + br label %find.cond6989 +find.end6993: %t35 = load i64, ptr %a22 store i64 %t35, ptr %a36 %t37 = load i64, ptr %a36 %t38 = icmp slt i64 %t37, 0 - br i1 %t38, label %then6628, label %endif6630 -then6628: + br i1 %t38, label %then6994, label %endif6996 +then6994: %t39 = load ptr, ptr %a1 %t40 = load %S.ast.Node, ptr %a2 %t41 = getelementptr inbounds %S.gen.EnumDef, ptr %a17, i32 0, i32 1 %t42 = load { ptr, i64, i64 }, ptr %t41 - store { ptr, i64, i64 } { ptr @.str.4303, i64 9, i64 0 }, ptr %a44 + store { ptr, i64, i64 } { ptr @.str.4493, i64 9, i64 0 }, ptr %a44 store { ptr, i64, i64 } %t42, ptr %a45 call void @finch_str_concat(ptr %a43, ptr %a44, ptr %a45) %t46 = load { ptr, i64, i64 }, ptr %a43 store { ptr, i64, i64 } %t46, ptr %a48 - store { ptr, i64, i64 } { ptr @.str.4304, i64 17, i64 0 }, ptr %a49 + store { ptr, i64, i64 } { ptr @.str.4494, i64 17, i64 0 }, ptr %a49 call void @finch_str_concat(ptr %a47, ptr %a48, ptr %a49) store { ptr, i64, i64 } %t46, ptr %a50 call void @finch_str_drop(ptr %a50) @@ -66420,14 +70130,14 @@ then6628: call void @finch_str_drop(ptr %a57) %t58 = load { ptr, i64, i64 }, ptr %a54 store { ptr, i64, i64 } %t58, ptr %a60 - store { ptr, i64, i64 } { ptr @.str.4305, i64 11, i64 0 }, ptr %a61 + store { ptr, i64, i64 } { ptr @.str.4495, i64 11, i64 0 }, ptr %a61 call void @finch_str_concat(ptr %a59, ptr %a60, ptr %a61) store { ptr, i64, i64 } %t58, ptr %a62 call void @finch_str_drop(ptr %a62) %t63 = load { ptr, i64, i64 }, ptr %a59 %t64 = getelementptr inbounds %S.gen.EnumDef, ptr %a17, i32 0, i32 2 %t65 = getelementptr inbounds { ptr, i64, i64 }, ptr %t64, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.4306, i64 2, i64 0 }, ptr %a66 + store { ptr, i64, i64 } { ptr @.str.4496, i64 2, i64 0 }, ptr %a66 call void @finch_str_join(ptr %a67, ptr %t64, ptr %a66) %t68 = load { ptr, i64, i64 }, ptr %a67 store { ptr, i64, i64 } %t63, ptr %a70 @@ -66439,7 +70149,7 @@ then6628: call void @finch_str_drop(ptr %a73) %t74 = load { ptr, i64, i64 }, ptr %a69 store { ptr, i64, i64 } %t74, ptr %a76 - store { ptr, i64, i64 } { ptr @.str.4307, i64 1, i64 0 }, ptr %a77 + store { ptr, i64, i64 } { ptr @.str.4497, i64 1, i64 0 }, ptr %a77 call void @finch_str_concat(ptr %a75, ptr %a76, ptr %a77) store { ptr, i64, i64 } %t74, ptr %a78 call void @finch_str_drop(ptr %a78) @@ -66447,8 +70157,8 @@ then6628: call void @finch.gen.fail(ptr %t39, %S.ast.Node %t40, { ptr, i64, i64 } %t79) store { ptr, i64, i64 } %t79, ptr %a80 call void @finch_str_drop(ptr %a80) - br label %endif6630 -endif6630: + br label %endif6996 +endif6996: %t81 = load ptr, ptr %a1 %t82 = load %S.ast.Node, ptr %a2 %t83 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 12 @@ -66459,12 +70169,12 @@ endif6630: %t88 = load i64, ptr %t87 %t89 = getelementptr inbounds %S.gen.EnumDef, ptr %a17, i32 0, i32 1 %t90 = load { ptr, i64, i64 }, ptr %t89 - store { ptr, i64, i64 } { ptr @.str.4308, i64 9, i64 0 }, ptr %a92 + store { ptr, i64, i64 } { ptr @.str.4498, i64 9, i64 0 }, ptr %a92 store { ptr, i64, i64 } %t90, ptr %a93 call void @finch_str_concat(ptr %a91, ptr %a92, ptr %a93) %t94 = load { ptr, i64, i64 }, ptr %a91 store { ptr, i64, i64 } %t94, ptr %a96 - store { ptr, i64, i64 } { ptr @.str.4309, i64 1, i64 0 }, ptr %a97 + store { ptr, i64, i64 } { ptr @.str.4499, i64 1, i64 0 }, ptr %a97 call void @finch_str_concat(ptr %a95, ptr %a96, ptr %a97) store { ptr, i64, i64 } %t94, ptr %a98 call void @finch_str_drop(ptr %a98) @@ -66478,7 +70188,7 @@ endif6630: call void @finch_str_drop(ptr %a105) %t106 = load { ptr, i64, i64 }, ptr %a102 store { ptr, i64, i64 } %t106, ptr %a108 - store { ptr, i64, i64 } { ptr @.str.4310, i64 3, i64 0 }, ptr %a109 + store { ptr, i64, i64 } { ptr @.str.4500, i64 3, i64 0 }, ptr %a109 call void @finch_str_concat(ptr %a107, ptr %a108, ptr %a109) store { ptr, i64, i64 } %t106, ptr %a110 call void @finch_str_drop(ptr %a110) @@ -66488,11 +70198,11 @@ endif6630: %t114 = load { ptr, i64, i64 }, ptr %t112 %t115 = extractvalue { ptr, i64, i64 } %t114, 1 %t116 = icmp uge i64 %t113, %t115 - br i1 %t116, label %range6631, label %inrange6632 -range6631: - call void @finch_panic_index(ptr @.str.4311, i64 3661, i64 %t113, i64 %t115) + br i1 %t116, label %range6997, label %inrange6998 +range6997: + call void @finch_panic_index(ptr @.str.4501, i64 3876, i64 %t113, i64 %t115) unreachable -inrange6632: +inrange6998: %t117 = extractvalue { ptr, i64, i64 } %t114, 0 %t118 = getelementptr inbounds i64, ptr %t117, i64 %t113 %t119 = load i64, ptr %t118 @@ -66507,12 +70217,12 @@ inrange6632: call void @finch_str_drop(ptr %a126) %t127 = load { ptr, i64, i64 }, ptr %a122 store { ptr, i64, i64 } %t127, ptr %a129 - store { ptr, i64, i64 } { ptr @.str.4312, i64 4, i64 0 }, ptr %a130 + store { ptr, i64, i64 } { ptr @.str.4502, i64 4, i64 0 }, ptr %a130 call void @finch_str_concat(ptr %a128, ptr %a129, ptr %a130) store { ptr, i64, i64 } %t127, ptr %a131 call void @finch_str_drop(ptr %a131) %t132 = load { ptr, i64, i64 }, ptr %a128 - call void @finch.gen.noteRef(ptr %t81, %S.ast.Node %t82, i64 %t85, i64 %t88, { ptr, i64, i64 } %t132, { ptr, i64, i64 } { ptr @.str.4313, i64 0, i64 0 }, i64 0, i64 0) + call void @finch.gen.noteRef(ptr %t81, %S.ast.Node %t82, i64 %t85, i64 %t88, { ptr, i64, i64 } %t132, { ptr, i64, i64 } { ptr @.str.4503, i64 0, i64 0 }, i64 0, i64 0) store { ptr, i64, i64 } %t132, ptr %a133 call void @finch_str_drop(ptr %a133) %t134 = getelementptr inbounds %S.gen.EnumDef, ptr %a17, i32 0, i32 3 @@ -66520,18 +70230,18 @@ inrange6632: %t136 = load { ptr, i64, i64 }, ptr %t134 %t137 = extractvalue { ptr, i64, i64 } %t136, 1 %t138 = icmp uge i64 %t135, %t137 - br i1 %t138, label %range6633, label %inrange6634 -range6633: - call void @finch_panic_index(ptr @.str.4314, i64 3662, i64 %t135, i64 %t137) + br i1 %t138, label %range6999, label %inrange7000 +range6999: + call void @finch_panic_index(ptr @.str.4504, i64 3877, i64 %t135, i64 %t137) unreachable -inrange6634: +inrange7000: %t139 = extractvalue { ptr, i64, i64 } %t136, 0 %t140 = getelementptr inbounds i64, ptr %t139, i64 %t135 %t141 = load i64, ptr %t140 call void @finch_str_from_int(ptr %a142, i64 %t141) %t143 = load { ptr, i64, i64 }, ptr %a142 %t144 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t143, 0 - %t145 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.4315, i64 4, i64 0 }, 0 + %t145 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.4505, i64 4, i64 0 }, 0 %t146 = getelementptr inbounds %S.gen.EnumDef, ptr %a17, i32 0, i32 1 %t147 = load { ptr, i64, i64 }, ptr %t146 store { ptr, i64, i64 } %t147, ptr %a148 @@ -66555,206 +70265,188 @@ entry: %a2 = alloca %S.ast.Node, align 16 %a3 = alloca i1, align 16 %a13 = alloca i64, align 16 - %a35 = alloca %S.gen.Ref, align 16 - %a39 = alloca %S.ast.Type, align 16 - %a40 = alloca %S.ast.Type, align 16 - %a42 = alloca %S.ast.Type, align 16 - %a48 = alloca %S.ast.Type, align 16 - %a49 = alloca %S.ast.Type, align 16 - %a52 = alloca %S.ast.Type, align 16 - %a55 = alloca { ptr, i64, i64 }, align 16 - %a56 = alloca { ptr, i64, i64 }, align 16 - %a62 = alloca { ptr, i64, i64 }, align 16 - %a63 = alloca { ptr, i64, i64 }, align 16 - %a65 = alloca { ptr, i64, i64 }, align 16 + %a25 = alloca i64, align 16 + %a48 = alloca { ptr, i64, i64 }, align 16 + %a49 = alloca { ptr, i64, i64 }, align 16 + %a50 = alloca { ptr, i64, i64 }, align 16 + %a69 = alloca { ptr, i64, i64 }, align 16 + %a71 = alloca { ptr, i64, i64 }, align 16 + %a72 = alloca { ptr, i64, i64 }, align 16 + %a73 = alloca { ptr, i64, i64 }, align 16 %a74 = alloca { ptr, i64, i64 }, align 16 - %a84 = alloca { ptr, i64, i64 }, align 16 - %a85 = alloca { ptr, i64, i64 }, align 16 - %a86 = alloca { ptr, i64, i64 }, align 16 - %a88 = alloca { ptr, i64, i64 }, align 16 - %a89 = alloca { ptr, i64, i64 }, align 16 - %a90 = alloca { ptr, i64, i64 }, align 16 - %a91 = alloca { ptr, i64, i64 }, align 16 + %a75 = alloca { ptr, i64, i64 }, align 16 + %a77 = alloca { ptr, i64, i64 }, align 16 + %a78 = alloca { ptr, i64, i64 }, align 16 + %a79 = alloca { ptr, i64, i64 }, align 16 + %a80 = alloca { ptr, i64, i64 }, align 16 + %a93 = alloca { ptr, i64, i64 }, align 16 %a94 = alloca { ptr, i64, i64 }, align 16 - %a97 = alloca { ptr, i64, i64 }, align 16 + %a95 = alloca { ptr, i64, i64 }, align 16 + %a96 = alloca { ptr, i64, i64 }, align 16 %a98 = alloca { ptr, i64, i64 }, align 16 %a99 = alloca { ptr, i64, i64 }, align 16 + %a100 = alloca { ptr, i64, i64 }, align 16 %a101 = alloca { ptr, i64, i64 }, align 16 - %a102 = alloca { ptr, i64, i64 }, align 16 - %a103 = alloca { ptr, i64, i64 }, align 16 - %a104 = alloca { ptr, i64, i64 }, align 16 + %a105 = alloca { ptr, i64, i64 }, align 16 + %a106 = alloca { ptr, i64, i64 }, align 16 %a107 = alloca { ptr, i64, i64 }, align 16 %a108 = alloca { ptr, i64, i64 }, align 16 - %a116 = alloca %S.ast.Type, align 16 - %a117 = alloca %S.ast.Type, align 16 - %a119 = alloca %S.ast.Type, align 16 - %a120 = alloca i1, align 16 - %a123 = alloca { ptr, i64, i64 }, align 16 - %a124 = alloca { ptr, i64, i64 }, align 16 - %a143 = alloca i64, align 16 - %a146 = alloca i64, align 16 - %a151 = alloca { ptr, i64, i64 }, align 16 - %a152 = alloca { ptr, i64, i64 }, align 16 - %a160 = alloca { ptr, i64, i64 }, align 16 - %a161 = alloca { ptr, i64, i64 }, align 16 - %a169 = alloca { ptr, i64, i64 }, align 16 - %a170 = alloca { ptr, i64, i64 }, align 16 + %a110 = alloca { ptr, i64, i64 }, align 16 + %a111 = alloca { ptr, i64, i64 }, align 16 + %a112 = alloca { ptr, i64, i64 }, align 16 + %a113 = alloca { ptr, i64, i64 }, align 16 + %a115 = alloca { ptr, i64, i64 }, align 16 + %a116 = alloca { ptr, i64, i64 }, align 16 + %a135 = alloca i64, align 16 + %a157 = alloca %S.gen.Ref, align 16 + %a161 = alloca %S.ast.Type, align 16 + %a162 = alloca %S.ast.Type, align 16 + %a164 = alloca %S.ast.Type, align 16 + %a170 = alloca %S.ast.Type, align 16 + %a171 = alloca %S.ast.Type, align 16 %a174 = alloca %S.ast.Type, align 16 - %a175 = alloca %S.ast.Type, align 16 - %a181 = alloca { ptr, i64, i64 }, align 16 - %a182 = alloca { ptr, i64, i64 }, align 16 - %a189 = alloca { ptr, i64, i64 }, align 16 - %a190 = alloca { ptr, i64, i64 }, align 16 - %a191 = alloca { ptr, i64, i64 }, align 16 - %a192 = alloca { ptr, i64, i64 }, align 16 - %a194 = alloca { ptr, i64, i64 }, align 16 - %a195 = alloca { ptr, i64, i64 }, align 16 + %a177 = alloca { ptr, i64, i64 }, align 16 + %a178 = alloca { ptr, i64, i64 }, align 16 + %a184 = alloca { ptr, i64, i64 }, align 16 + %a185 = alloca { ptr, i64, i64 }, align 16 + %a187 = alloca { ptr, i64, i64 }, align 16 %a196 = alloca { ptr, i64, i64 }, align 16 - %a197 = alloca { ptr, i64, i64 }, align 16 - %a199 = alloca { ptr, i64, i64 }, align 16 - %a202 = alloca { ptr, i64, i64 }, align 16 - %a203 = alloca { ptr, i64, i64 }, align 16 - %a207 = alloca %S.ast.Type, align 16 - %a208 = alloca %S.ast.Type, align 16 - %a213 = alloca %S.gen.Ref, align 16 - %a215 = alloca %S.ast.Type, align 16 - %a216 = alloca %S.ast.Type, align 16 - %a219 = alloca %S.ast.Type, align 16 - %a222 = alloca { ptr, i64, i64 }, align 16 + %a206 = alloca { ptr, i64, i64 }, align 16 + %a207 = alloca { ptr, i64, i64 }, align 16 + %a208 = alloca { ptr, i64, i64 }, align 16 + %a210 = alloca { ptr, i64, i64 }, align 16 + %a211 = alloca { ptr, i64, i64 }, align 16 + %a212 = alloca { ptr, i64, i64 }, align 16 + %a213 = alloca { ptr, i64, i64 }, align 16 + %a216 = alloca { ptr, i64, i64 }, align 16 + %a219 = alloca { ptr, i64, i64 }, align 16 + %a220 = alloca { ptr, i64, i64 }, align 16 + %a221 = alloca { ptr, i64, i64 }, align 16 %a223 = alloca { ptr, i64, i64 }, align 16 - %a231 = alloca { ptr, i64, i64 }, align 16 - %a232 = alloca { ptr, i64, i64 }, align 16 - %a233 = alloca { ptr, i64, i64 }, align 16 - %a235 = alloca { ptr, i64, i64 }, align 16 - %a236 = alloca { ptr, i64, i64 }, align 16 - %a237 = alloca { ptr, i64, i64 }, align 16 - %a238 = alloca { ptr, i64, i64 }, align 16 - %a240 = alloca { ptr, i64, i64 }, align 16 - %a243 = alloca { ptr, i64, i64 }, align 16 - %a244 = alloca { ptr, i64, i64 }, align 16 - %a250 = alloca { ptr, i64, i64 }, align 16 - %a259 = alloca { ptr, i64, i64 }, align 16 - %a260 = alloca { ptr, i64, i64 }, align 16 - %a267 = alloca { ptr, i64, i64 }, align 16 - %a268 = alloca { ptr, i64, i64 }, align 16 - %a269 = alloca { ptr, i64, i64 }, align 16 - %a271 = alloca { ptr, i64, i64 }, align 16 - %a272 = alloca { ptr, i64, i64 }, align 16 + %a224 = alloca { ptr, i64, i64 }, align 16 + %a225 = alloca { ptr, i64, i64 }, align 16 + %a226 = alloca { ptr, i64, i64 }, align 16 + %a229 = alloca { ptr, i64, i64 }, align 16 + %a230 = alloca { ptr, i64, i64 }, align 16 + %a238 = alloca %S.ast.Type, align 16 + %a239 = alloca %S.ast.Type, align 16 + %a241 = alloca %S.ast.Type, align 16 + %a242 = alloca i1, align 16 + %a245 = alloca { ptr, i64, i64 }, align 16 + %a246 = alloca { ptr, i64, i64 }, align 16 + %a265 = alloca i64, align 16 + %a268 = alloca i64, align 16 %a273 = alloca { ptr, i64, i64 }, align 16 %a274 = alloca { ptr, i64, i64 }, align 16 - %a276 = alloca { ptr, i64, i64 }, align 16 - %a286 = alloca { ptr, i64, i64 }, align 16 - %a287 = alloca { ptr, i64, i64 }, align 16 - %a302 = alloca { ptr, i64, i64 }, align 16 + %a282 = alloca { ptr, i64, i64 }, align 16 + %a283 = alloca { ptr, i64, i64 }, align 16 + %a291 = alloca { ptr, i64, i64 }, align 16 + %a292 = alloca { ptr, i64, i64 }, align 16 + %a296 = alloca %S.ast.Type, align 16 + %a297 = alloca %S.ast.Type, align 16 %a303 = alloca { ptr, i64, i64 }, align 16 - %a308 = alloca { ptr, i64, i64 }, align 16 - %a309 = alloca { ptr, i64, i64 }, align 16 - %a315 = alloca { ptr, i64, i64 }, align 16 + %a304 = alloca { ptr, i64, i64 }, align 16 + %a311 = alloca { ptr, i64, i64 }, align 16 + %a312 = alloca { ptr, i64, i64 }, align 16 + %a313 = alloca { ptr, i64, i64 }, align 16 + %a314 = alloca { ptr, i64, i64 }, align 16 %a316 = alloca { ptr, i64, i64 }, align 16 - %a333 = alloca { ptr, i64, i64 }, align 16 - %a334 = alloca { ptr, i64, i64 }, align 16 - %a335 = alloca { ptr, i64, i64 }, align 16 + %a317 = alloca { ptr, i64, i64 }, align 16 + %a318 = alloca { ptr, i64, i64 }, align 16 + %a319 = alloca { ptr, i64, i64 }, align 16 + %a321 = alloca { ptr, i64, i64 }, align 16 + %a324 = alloca { ptr, i64, i64 }, align 16 + %a325 = alloca { ptr, i64, i64 }, align 16 + %a329 = alloca %S.ast.Type, align 16 + %a330 = alloca %S.ast.Type, align 16 + %a335 = alloca %S.gen.Ref, align 16 + %a337 = alloca %S.ast.Type, align 16 + %a338 = alloca %S.ast.Type, align 16 + %a341 = alloca %S.ast.Type, align 16 %a344 = alloca { ptr, i64, i64 }, align 16 %a345 = alloca { ptr, i64, i64 }, align 16 - %a347 = alloca { ptr, i64, i64 }, align 16 + %a353 = alloca { ptr, i64, i64 }, align 16 + %a354 = alloca { ptr, i64, i64 }, align 16 + %a355 = alloca { ptr, i64, i64 }, align 16 + %a357 = alloca { ptr, i64, i64 }, align 16 %a358 = alloca { ptr, i64, i64 }, align 16 + %a359 = alloca { ptr, i64, i64 }, align 16 %a360 = alloca { ptr, i64, i64 }, align 16 - %a363 = alloca { ptr, i64, i64 }, align 16 - %a364 = alloca { ptr, i64, i64 }, align 16 - %a374 = alloca %S.ast.Type, align 16 - %a380 = alloca { ptr, i64, i64 }, align 16 + %a362 = alloca { ptr, i64, i64 }, align 16 + %a365 = alloca { ptr, i64, i64 }, align 16 + %a366 = alloca { ptr, i64, i64 }, align 16 + %a372 = alloca { ptr, i64, i64 }, align 16 %a381 = alloca { ptr, i64, i64 }, align 16 %a382 = alloca { ptr, i64, i64 }, align 16 - %a384 = alloca { ptr, i64, i64 }, align 16 - %a385 = alloca { ptr, i64, i64 }, align 16 - %a386 = alloca { ptr, i64, i64 }, align 16 - %a387 = alloca { ptr, i64, i64 }, align 16 + %a389 = alloca { ptr, i64, i64 }, align 16 %a390 = alloca { ptr, i64, i64 }, align 16 - %a404 = alloca { ptr, i64, i64 }, align 16 - %a405 = alloca { ptr, i64, i64 }, align 16 - %a410 = alloca { ptr, i64, i64 }, align 16 - %a411 = alloca { ptr, i64, i64 }, align 16 - %a417 = alloca { ptr, i64, i64 }, align 16 - %a418 = alloca { ptr, i64, i64 }, align 16 + %a391 = alloca { ptr, i64, i64 }, align 16 + %a393 = alloca { ptr, i64, i64 }, align 16 + %a394 = alloca { ptr, i64, i64 }, align 16 + %a395 = alloca { ptr, i64, i64 }, align 16 + %a396 = alloca { ptr, i64, i64 }, align 16 + %a398 = alloca { ptr, i64, i64 }, align 16 + %a408 = alloca { ptr, i64, i64 }, align 16 + %a409 = alloca { ptr, i64, i64 }, align 16 %a424 = alloca { ptr, i64, i64 }, align 16 %a425 = alloca { ptr, i64, i64 }, align 16 - %a432 = alloca { ptr, i64, i64 }, align 16 - %a433 = alloca { ptr, i64, i64 }, align 16 - %a434 = alloca { ptr, i64, i64 }, align 16 - %a436 = alloca { ptr, i64, i64 }, align 16 + %a430 = alloca { ptr, i64, i64 }, align 16 + %a431 = alloca { ptr, i64, i64 }, align 16 %a437 = alloca { ptr, i64, i64 }, align 16 %a438 = alloca { ptr, i64, i64 }, align 16 - %a439 = alloca { ptr, i64, i64 }, align 16 - %a441 = alloca { ptr, i64, i64 }, align 16 - %a451 = alloca { ptr, i64, i64 }, align 16 - %a452 = alloca { ptr, i64, i64 }, align 16 - %a453 = alloca { ptr, i64, i64 }, align 16 - %a454 = alloca { ptr, i64, i64 }, align 16 + %a455 = alloca { ptr, i64, i64 }, align 16 %a456 = alloca { ptr, i64, i64 }, align 16 %a457 = alloca { ptr, i64, i64 }, align 16 - %a458 = alloca { ptr, i64, i64 }, align 16 - %a459 = alloca { ptr, i64, i64 }, align 16 - %a464 = alloca { ptr, i64, i64 }, align 16 - %a465 = alloca { ptr, i64, i64 }, align 16 %a466 = alloca { ptr, i64, i64 }, align 16 %a467 = alloca { ptr, i64, i64 }, align 16 %a469 = alloca { ptr, i64, i64 }, align 16 - %a470 = alloca { ptr, i64, i64 }, align 16 - %a471 = alloca { ptr, i64, i64 }, align 16 - %a472 = alloca { ptr, i64, i64 }, align 16 - %a475 = alloca { ptr, i64, i64 }, align 16 - %a476 = alloca { ptr, i64, i64 }, align 16 - %a489 = alloca { ptr, i64, i64 }, align 16 - %a490 = alloca { ptr, i64, i64 }, align 16 - %a491 = alloca { ptr, i64, i64 }, align 16 - %a492 = alloca { ptr, i64, i64 }, align 16 - %a494 = alloca { ptr, i64, i64 }, align 16 - %a495 = alloca { ptr, i64, i64 }, align 16 - %a496 = alloca { ptr, i64, i64 }, align 16 - %a497 = alloca { ptr, i64, i64 }, align 16 + %a480 = alloca { ptr, i64, i64 }, align 16 + %a482 = alloca { ptr, i64, i64 }, align 16 + %a485 = alloca { ptr, i64, i64 }, align 16 + %a486 = alloca { ptr, i64, i64 }, align 16 + %a496 = alloca %S.ast.Type, align 16 %a502 = alloca { ptr, i64, i64 }, align 16 %a503 = alloca { ptr, i64, i64 }, align 16 %a504 = alloca { ptr, i64, i64 }, align 16 - %a505 = alloca { ptr, i64, i64 }, align 16 + %a506 = alloca { ptr, i64, i64 }, align 16 %a507 = alloca { ptr, i64, i64 }, align 16 %a508 = alloca { ptr, i64, i64 }, align 16 %a509 = alloca { ptr, i64, i64 }, align 16 - %a510 = alloca { ptr, i64, i64 }, align 16 - %a513 = alloca { ptr, i64, i64 }, align 16 - %a514 = alloca { ptr, i64, i64 }, align 16 - %a520 = alloca { ptr, i64, i64 }, align 16 - %a521 = alloca { ptr, i64, i64 }, align 16 - %a529 = alloca { ptr, i64, i64 }, align 16 - %a530 = alloca { ptr, i64, i64 }, align 16 - %a537 = alloca { ptr, i64, i64 }, align 16 - %a538 = alloca { ptr, i64, i64 }, align 16 + %a512 = alloca { ptr, i64, i64 }, align 16 + %a526 = alloca { ptr, i64, i64 }, align 16 + %a527 = alloca { ptr, i64, i64 }, align 16 + %a532 = alloca { ptr, i64, i64 }, align 16 + %a533 = alloca { ptr, i64, i64 }, align 16 %a539 = alloca { ptr, i64, i64 }, align 16 %a540 = alloca { ptr, i64, i64 }, align 16 - %a544 = alloca { ptr, i64, i64 }, align 16 - %a545 = alloca { ptr, i64, i64 }, align 16 %a546 = alloca { ptr, i64, i64 }, align 16 %a547 = alloca { ptr, i64, i64 }, align 16 - %a549 = alloca { ptr, i64, i64 }, align 16 - %a550 = alloca { ptr, i64, i64 }, align 16 - %a551 = alloca { ptr, i64, i64 }, align 16 - %a552 = alloca { ptr, i64, i64 }, align 16 %a554 = alloca { ptr, i64, i64 }, align 16 - %a570 = alloca %S.gen.StructDef, align 16 - %a571 = alloca %S.gen.StructDef, align 16 - %a573 = alloca %S.gen.StructDef, align 16 - %a578 = alloca i64, align 16 - %a581 = alloca i64, align 16 + %a555 = alloca { ptr, i64, i64 }, align 16 + %a556 = alloca { ptr, i64, i64 }, align 16 + %a558 = alloca { ptr, i64, i64 }, align 16 + %a559 = alloca { ptr, i64, i64 }, align 16 + %a560 = alloca { ptr, i64, i64 }, align 16 + %a561 = alloca { ptr, i64, i64 }, align 16 + %a563 = alloca { ptr, i64, i64 }, align 16 + %a573 = alloca { ptr, i64, i64 }, align 16 + %a574 = alloca { ptr, i64, i64 }, align 16 + %a575 = alloca { ptr, i64, i64 }, align 16 + %a576 = alloca { ptr, i64, i64 }, align 16 + %a578 = alloca { ptr, i64, i64 }, align 16 + %a579 = alloca { ptr, i64, i64 }, align 16 + %a580 = alloca { ptr, i64, i64 }, align 16 + %a581 = alloca { ptr, i64, i64 }, align 16 %a586 = alloca { ptr, i64, i64 }, align 16 %a587 = alloca { ptr, i64, i64 }, align 16 - %a592 = alloca i64, align 16 - %a599 = alloca { ptr, i64, i64 }, align 16 - %a600 = alloca { ptr, i64, i64 }, align 16 - %a601 = alloca { ptr, i64, i64 }, align 16 - %a602 = alloca { ptr, i64, i64 }, align 16 - %a604 = alloca { ptr, i64, i64 }, align 16 - %a605 = alloca { ptr, i64, i64 }, align 16 - %a606 = alloca { ptr, i64, i64 }, align 16 - %a607 = alloca { ptr, i64, i64 }, align 16 + %a588 = alloca { ptr, i64, i64 }, align 16 + %a589 = alloca { ptr, i64, i64 }, align 16 + %a591 = alloca { ptr, i64, i64 }, align 16 + %a592 = alloca { ptr, i64, i64 }, align 16 + %a593 = alloca { ptr, i64, i64 }, align 16 + %a594 = alloca { ptr, i64, i64 }, align 16 + %a597 = alloca { ptr, i64, i64 }, align 16 + %a598 = alloca { ptr, i64, i64 }, align 16 %a611 = alloca { ptr, i64, i64 }, align 16 %a612 = alloca { ptr, i64, i64 }, align 16 %a613 = alloca { ptr, i64, i64 }, align 16 @@ -66763,100 +70455,151 @@ entry: %a617 = alloca { ptr, i64, i64 }, align 16 %a618 = alloca { ptr, i64, i64 }, align 16 %a619 = alloca { ptr, i64, i64 }, align 16 - %a623 = alloca { ptr, i64, i64 }, align 16 %a624 = alloca { ptr, i64, i64 }, align 16 + %a625 = alloca { ptr, i64, i64 }, align 16 %a626 = alloca { ptr, i64, i64 }, align 16 %a627 = alloca { ptr, i64, i64 }, align 16 - %a628 = alloca { ptr, i64, i64 }, align 16 %a629 = alloca { ptr, i64, i64 }, align 16 %a630 = alloca { ptr, i64, i64 }, align 16 + %a631 = alloca { ptr, i64, i64 }, align 16 %a632 = alloca { ptr, i64, i64 }, align 16 - %a633 = alloca { ptr, i64, i64 }, align 16 - %a634 = alloca { ptr, i64, i64 }, align 16 %a635 = alloca { ptr, i64, i64 }, align 16 - %a637 = alloca { ptr, i64, i64 }, align 16 - %a646 = alloca %S.ast.Type, align 16 - %a647 = alloca %S.ast.Type, align 16 - %a649 = alloca %S.ast.Type, align 16 + %a636 = alloca { ptr, i64, i64 }, align 16 + %a642 = alloca { ptr, i64, i64 }, align 16 + %a643 = alloca { ptr, i64, i64 }, align 16 + %a651 = alloca { ptr, i64, i64 }, align 16 + %a652 = alloca { ptr, i64, i64 }, align 16 + %a659 = alloca { ptr, i64, i64 }, align 16 %a660 = alloca { ptr, i64, i64 }, align 16 %a661 = alloca { ptr, i64, i64 }, align 16 %a662 = alloca { ptr, i64, i64 }, align 16 - %a663 = alloca { ptr, i64, i64 }, align 16 - %a665 = alloca { ptr, i64, i64 }, align 16 %a666 = alloca { ptr, i64, i64 }, align 16 %a667 = alloca { ptr, i64, i64 }, align 16 %a668 = alloca { ptr, i64, i64 }, align 16 + %a669 = alloca { ptr, i64, i64 }, align 16 + %a671 = alloca { ptr, i64, i64 }, align 16 %a672 = alloca { ptr, i64, i64 }, align 16 %a673 = alloca { ptr, i64, i64 }, align 16 %a674 = alloca { ptr, i64, i64 }, align 16 - %a675 = alloca { ptr, i64, i64 }, align 16 - %a677 = alloca { ptr, i64, i64 }, align 16 - %a678 = alloca { ptr, i64, i64 }, align 16 - %a679 = alloca { ptr, i64, i64 }, align 16 - %a680 = alloca { ptr, i64, i64 }, align 16 - %a682 = alloca { ptr, i64, i64 }, align 16 - %a689 = alloca { ptr, i64, i64 }, align 16 - %a690 = alloca { ptr, i64, i64 }, align 16 - %a691 = alloca { ptr, i64, i64 }, align 16 - %a692 = alloca { ptr, i64, i64 }, align 16 - %a694 = alloca { ptr, i64, i64 }, align 16 - %a695 = alloca { ptr, i64, i64 }, align 16 - %a696 = alloca { ptr, i64, i64 }, align 16 - %a697 = alloca { ptr, i64, i64 }, align 16 - %a702 = alloca { ptr, i64, i64 }, align 16 - %a703 = alloca { ptr, i64, i64 }, align 16 - %a704 = alloca { ptr, i64, i64 }, align 16 - %a705 = alloca { ptr, i64, i64 }, align 16 - %a707 = alloca { ptr, i64, i64 }, align 16 + %a676 = alloca { ptr, i64, i64 }, align 16 + %a692 = alloca %S.gen.StructDef, align 16 + %a693 = alloca %S.gen.StructDef, align 16 + %a695 = alloca %S.gen.StructDef, align 16 + %a700 = alloca i64, align 16 + %a703 = alloca i64, align 16 %a708 = alloca { ptr, i64, i64 }, align 16 %a709 = alloca { ptr, i64, i64 }, align 16 - %a710 = alloca { ptr, i64, i64 }, align 16 - %a720 = alloca { ptr, i64, i64 }, align 16 + %a714 = alloca i64, align 16 + %a721 = alloca { ptr, i64, i64 }, align 16 %a722 = alloca { ptr, i64, i64 }, align 16 %a723 = alloca { ptr, i64, i64 }, align 16 %a724 = alloca { ptr, i64, i64 }, align 16 - %a725 = alloca { ptr, i64, i64 }, align 16 %a726 = alloca { ptr, i64, i64 }, align 16 + %a727 = alloca { ptr, i64, i64 }, align 16 + %a728 = alloca { ptr, i64, i64 }, align 16 %a729 = alloca { ptr, i64, i64 }, align 16 - %a730 = alloca { ptr, i64, i64 }, align 16 %a733 = alloca { ptr, i64, i64 }, align 16 %a734 = alloca { ptr, i64, i64 }, align 16 - %a738 = alloca %S.ast.Type, align 16 - %a739 = alloca %S.ast.Type, align 16 - %a747 = alloca { ptr, i64, i64 }, align 16 + %a735 = alloca { ptr, i64, i64 }, align 16 + %a736 = alloca { ptr, i64, i64 }, align 16 + %a738 = alloca { ptr, i64, i64 }, align 16 + %a739 = alloca { ptr, i64, i64 }, align 16 + %a740 = alloca { ptr, i64, i64 }, align 16 + %a741 = alloca { ptr, i64, i64 }, align 16 + %a745 = alloca { ptr, i64, i64 }, align 16 + %a746 = alloca { ptr, i64, i64 }, align 16 %a748 = alloca { ptr, i64, i64 }, align 16 %a749 = alloca { ptr, i64, i64 }, align 16 %a750 = alloca { ptr, i64, i64 }, align 16 + %a751 = alloca { ptr, i64, i64 }, align 16 %a752 = alloca { ptr, i64, i64 }, align 16 - %a753 = alloca { ptr, i64, i64 }, align 16 %a754 = alloca { ptr, i64, i64 }, align 16 %a755 = alloca { ptr, i64, i64 }, align 16 - %a760 = alloca { ptr, i64, i64 }, align 16 - %a761 = alloca { ptr, i64, i64 }, align 16 - %a762 = alloca { ptr, i64, i64 }, align 16 - %a763 = alloca { ptr, i64, i64 }, align 16 - %a765 = alloca { ptr, i64, i64 }, align 16 - %a766 = alloca { ptr, i64, i64 }, align 16 - %a767 = alloca { ptr, i64, i64 }, align 16 - %a768 = alloca { ptr, i64, i64 }, align 16 - %a778 = alloca { ptr, i64, i64 }, align 16 - %a780 = alloca { ptr, i64, i64 }, align 16 - %a781 = alloca { ptr, i64, i64 }, align 16 + %a756 = alloca { ptr, i64, i64 }, align 16 + %a757 = alloca { ptr, i64, i64 }, align 16 + %a759 = alloca { ptr, i64, i64 }, align 16 + %a768 = alloca %S.ast.Type, align 16 + %a769 = alloca %S.ast.Type, align 16 + %a771 = alloca %S.ast.Type, align 16 %a782 = alloca { ptr, i64, i64 }, align 16 %a783 = alloca { ptr, i64, i64 }, align 16 %a784 = alloca { ptr, i64, i64 }, align 16 + %a785 = alloca { ptr, i64, i64 }, align 16 %a787 = alloca { ptr, i64, i64 }, align 16 %a788 = alloca { ptr, i64, i64 }, align 16 + %a789 = alloca { ptr, i64, i64 }, align 16 %a790 = alloca { ptr, i64, i64 }, align 16 - %a791 = alloca { ptr, i64, i64 }, align 16 - %a795 = alloca %S.ast.Type, align 16 - %a796 = alloca %S.ast.Type, align 16 - %a799 = alloca %S.gen.Val, align 16 - %a813 = alloca %S.ast.Type, align 16 - %a814 = alloca %S.ast.Type, align 16 - %a819 = alloca %S.gen.Val, align 16 - %a825 = alloca %S.gen.Val, align 16 - %a826 = alloca %S.gen.Val, align 16 + %a794 = alloca { ptr, i64, i64 }, align 16 + %a795 = alloca { ptr, i64, i64 }, align 16 + %a796 = alloca { ptr, i64, i64 }, align 16 + %a797 = alloca { ptr, i64, i64 }, align 16 + %a799 = alloca { ptr, i64, i64 }, align 16 + %a800 = alloca { ptr, i64, i64 }, align 16 + %a801 = alloca { ptr, i64, i64 }, align 16 + %a802 = alloca { ptr, i64, i64 }, align 16 + %a804 = alloca { ptr, i64, i64 }, align 16 + %a811 = alloca { ptr, i64, i64 }, align 16 + %a812 = alloca { ptr, i64, i64 }, align 16 + %a813 = alloca { ptr, i64, i64 }, align 16 + %a814 = alloca { ptr, i64, i64 }, align 16 + %a816 = alloca { ptr, i64, i64 }, align 16 + %a817 = alloca { ptr, i64, i64 }, align 16 + %a818 = alloca { ptr, i64, i64 }, align 16 + %a819 = alloca { ptr, i64, i64 }, align 16 + %a824 = alloca { ptr, i64, i64 }, align 16 + %a825 = alloca { ptr, i64, i64 }, align 16 + %a826 = alloca { ptr, i64, i64 }, align 16 + %a827 = alloca { ptr, i64, i64 }, align 16 + %a829 = alloca { ptr, i64, i64 }, align 16 + %a830 = alloca { ptr, i64, i64 }, align 16 + %a831 = alloca { ptr, i64, i64 }, align 16 + %a832 = alloca { ptr, i64, i64 }, align 16 + %a842 = alloca { ptr, i64, i64 }, align 16 + %a844 = alloca { ptr, i64, i64 }, align 16 + %a845 = alloca { ptr, i64, i64 }, align 16 + %a846 = alloca { ptr, i64, i64 }, align 16 + %a847 = alloca { ptr, i64, i64 }, align 16 + %a848 = alloca { ptr, i64, i64 }, align 16 + %a851 = alloca { ptr, i64, i64 }, align 16 + %a852 = alloca { ptr, i64, i64 }, align 16 + %a855 = alloca { ptr, i64, i64 }, align 16 + %a856 = alloca { ptr, i64, i64 }, align 16 + %a860 = alloca %S.ast.Type, align 16 + %a861 = alloca %S.ast.Type, align 16 + %a869 = alloca { ptr, i64, i64 }, align 16 + %a870 = alloca { ptr, i64, i64 }, align 16 + %a871 = alloca { ptr, i64, i64 }, align 16 + %a872 = alloca { ptr, i64, i64 }, align 16 + %a874 = alloca { ptr, i64, i64 }, align 16 + %a875 = alloca { ptr, i64, i64 }, align 16 + %a876 = alloca { ptr, i64, i64 }, align 16 + %a877 = alloca { ptr, i64, i64 }, align 16 + %a882 = alloca { ptr, i64, i64 }, align 16 + %a883 = alloca { ptr, i64, i64 }, align 16 + %a884 = alloca { ptr, i64, i64 }, align 16 + %a885 = alloca { ptr, i64, i64 }, align 16 + %a887 = alloca { ptr, i64, i64 }, align 16 + %a888 = alloca { ptr, i64, i64 }, align 16 + %a889 = alloca { ptr, i64, i64 }, align 16 + %a890 = alloca { ptr, i64, i64 }, align 16 + %a900 = alloca { ptr, i64, i64 }, align 16 + %a902 = alloca { ptr, i64, i64 }, align 16 + %a903 = alloca { ptr, i64, i64 }, align 16 + %a904 = alloca { ptr, i64, i64 }, align 16 + %a905 = alloca { ptr, i64, i64 }, align 16 + %a906 = alloca { ptr, i64, i64 }, align 16 + %a909 = alloca { ptr, i64, i64 }, align 16 + %a910 = alloca { ptr, i64, i64 }, align 16 + %a912 = alloca { ptr, i64, i64 }, align 16 + %a913 = alloca { ptr, i64, i64 }, align 16 + %a917 = alloca %S.ast.Type, align 16 + %a918 = alloca %S.ast.Type, align 16 + %a921 = alloca %S.gen.Val, align 16 + %a935 = alloca %S.ast.Type, align 16 + %a936 = alloca %S.ast.Type, align 16 + %a941 = alloca %S.gen.Val, align 16 + %a947 = alloca %S.gen.Val, align 16 + %a948 = alloca %S.gen.Val, align 16 store ptr %p0, ptr %a1 store %S.ast.Node %p1, ptr %a2 store i1 %p2, ptr %a3 @@ -66865,1203 +70608,1393 @@ entry: %t6 = load { ptr, i64, i64 }, ptr %t5 %t7 = extractvalue { ptr, i64, i64 } %t6, 1 %t8 = icmp uge i64 0, %t7 - br i1 %t8, label %range6635, label %inrange6636 -range6635: - call void @finch_panic_index(ptr @.str.4316, i64 3666, i64 0, i64 %t7) + br i1 %t8, label %range7001, label %inrange7002 +range7001: + call void @finch_panic_index(ptr @.str.4506, i64 3881, i64 0, i64 %t7) unreachable -inrange6636: +inrange7002: %t9 = extractvalue { ptr, i64, i64 } %t6, 0 %t10 = getelementptr inbounds %S.ast.Node, ptr %t9, i64 0 %t11 = load %S.ast.Node, ptr %t10 - %t12 = call i64 @finch.gen.enumNamed(ptr %t4, %S.ast.Node %t11) + %t12 = call i64 @finch.gen.sumNamed(ptr %t4, %S.ast.Node %t11) store i64 %t12, ptr %a13 %t14 = load i64, ptr %a13 %t15 = icmp sge i64 %t14, 0 - br i1 %t15, label %then6637, label %endif6639 -then6637: + br i1 %t15, label %then7003, label %endif7005 +then7003: %t16 = load i1, ptr %a3 - br i1 %t16, label %then6640, label %endif6642 -then6640: + br i1 %t16, label %then7006, label %endif7008 +then7006: %t17 = load ptr, ptr %a1 %t18 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t17, %S.ast.Node %t18, { ptr, i64, i64 } { ptr @.str.4317, i64 37, i64 0 }) - br label %endif6642 -endif6642: - %t19 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 - %t20 = load ptr, ptr %a1 - %t21 = load %S.ast.Node, ptr %a2 - %t22 = load i64, ptr %a13 - %t23 = call %S.gen.Val @finch.gen.enumValue(ptr %t20, %S.ast.Node %t21, i64 %t22) - %t24 = insertvalue %S.gen.Ref %t19, %S.gen.Val %t23, 2 - ret %S.gen.Ref %t24 -endif6639: - %t25 = load ptr, ptr %a1 - %t26 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 - %t27 = load { ptr, i64, i64 }, ptr %t26 - %t28 = extractvalue { ptr, i64, i64 } %t27, 1 - %t29 = icmp uge i64 0, %t28 - br i1 %t29, label %range6643, label %inrange6644 -range6643: - call void @finch_panic_index(ptr @.str.4318, i64 3673, i64 0, i64 %t28) + call void @finch.gen.fail(ptr %t17, %S.ast.Node %t18, { ptr, i64, i64 } { ptr @.str.4507, i64 37, i64 0 }) + br label %endif7008 +endif7008: + %t19 = load ptr, ptr %a1 + %t20 = load i64, ptr %a13 + %t21 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t22 = load { ptr, i64, i64 }, ptr %t21 + %t23 = load %S.ast.Node, ptr %a2 + %t24 = call i64 @finch.gen.sumVariant(ptr %t19, i64 %t20, { ptr, i64, i64 } %t22, %S.ast.Node %t23) + store i64 %t24, ptr %a25 + %t26 = load ptr, ptr %a1 + %t27 = icmp eq ptr %t26, null + br i1 %t27, label %panic7009, label %ok7010 +panic7009: + call void @finch_panic(ptr @.str.4508, i64 3887, ptr @.str.4509) unreachable -inrange6644: - %t30 = extractvalue { ptr, i64, i64 } %t27, 0 - %t31 = getelementptr inbounds %S.ast.Node, ptr %t30, i64 0 - %t32 = load %S.ast.Node, ptr %t31 - %t33 = load i1, ptr %a3 - %t34 = call %S.gen.Ref @finch.gen.ref(ptr %t25, %S.ast.Node %t32, i1 %t33) - store %S.gen.Ref %t34, ptr %a35 - %t36 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 2 - %t37 = getelementptr inbounds %S.gen.Val, ptr %t36, i32 0, i32 1 - %t38 = load %S.ast.Type, ptr %t37 - store %S.ast.Type %t38, ptr %a39 - call void @finch.copy.S_ast_Type(ptr %a40, ptr %a39) - %t41 = load %S.ast.Type, ptr %a40 - store %S.ast.Type %t41, ptr %a42 - %t43 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 0 - %t44 = load i1, ptr %t43 - br i1 %t44, label %then6645, label %endif6647 -then6645: - %t45 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 1 - %t46 = getelementptr inbounds %S.gen.Place, ptr %t45, i32 0, i32 1 - %t47 = load %S.ast.Type, ptr %t46 - store %S.ast.Type %t47, ptr %a48 - call void @finch.copy.S_ast_Type(ptr %a49, ptr %a48) - %t50 = load %S.ast.Type, ptr %a49 - %t51 = load %S.ast.Type, ptr %a42 - store %S.ast.Type %t50, ptr %a42 - store %S.ast.Type %t51, ptr %a52 - call void @finch.drop.S_ast_Type(ptr %a52) - br label %endif6647 -endif6647: - %t53 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 0 - %t54 = load { ptr, i64, i64 }, ptr %t53 - store { ptr, i64, i64 } %t54, ptr %a55 - store { ptr, i64, i64 } { ptr @.str.4319, i64 3, i64 0 }, ptr %a56 - %t57 = call i32 @finch_str_eq(ptr %a55, ptr %a56) - %t58 = icmp ne i32 %t57, 0 - br i1 %t58, label %then6648, label %endif6650 -then6648: - %t59 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 2 - %t60 = getelementptr inbounds %S.gen.Val, ptr %t59, i32 0, i32 0 - %t61 = load { ptr, i64, i64 }, ptr %t60 - store { ptr, i64, i64 } %t61, ptr %a62 - call void @finch_str_copy(ptr %a63, ptr %a62) - %t64 = load { ptr, i64, i64 }, ptr %a63 - store { ptr, i64, i64 } %t64, ptr %a65 - %t66 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 0 - %t67 = load i1, ptr %t66 - br i1 %t67, label %then6651, label %endif6653 -then6651: - %t68 = load ptr, ptr %a1 - %t69 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 1 - %t70 = getelementptr inbounds %S.gen.Place, ptr %t69, i32 0, i32 0 - %t71 = load { ptr, i64, i64 }, ptr %t70 - %t72 = call { ptr, i64, i64 } @finch.gen.load(ptr %t68, { ptr, i64, i64 } { ptr @.str.4320, i64 3, i64 0 }, { ptr, i64, i64 } %t71) - %t73 = load { ptr, i64, i64 }, ptr %a65 - store { ptr, i64, i64 } %t72, ptr %a65 - store { ptr, i64, i64 } %t73, ptr %a74 +ok7010: + %t28 = getelementptr inbounds %S.gen.Gen, ptr %t26, i32 0, i32 22 + %t29 = load i64, ptr %a13 + %t30 = load { ptr, i64, i64 }, ptr %t28 + %t31 = extractvalue { ptr, i64, i64 } %t30, 1 + %t32 = icmp uge i64 %t29, %t31 + br i1 %t32, label %range7011, label %inrange7012 +range7011: + call void @finch_panic_index(ptr @.str.4510, i64 3887, i64 %t29, i64 %t31) + unreachable +inrange7012: + %t33 = extractvalue { ptr, i64, i64 } %t30, 0 + %t34 = getelementptr inbounds %S.gen.SumDef, ptr %t33, i64 %t29 + %t35 = getelementptr inbounds %S.gen.SumDef, ptr %t34, i32 0, i32 3 + %t36 = load i64, ptr %a25 + %t37 = load { ptr, i64, i64 }, ptr %t35 + %t38 = extractvalue { ptr, i64, i64 } %t37, 1 + %t39 = icmp uge i64 %t36, %t38 + br i1 %t39, label %range7013, label %inrange7014 +range7013: + call void @finch_panic_index(ptr @.str.4511, i64 3887, i64 %t36, i64 %t38) + unreachable +inrange7014: + %t40 = extractvalue { ptr, i64, i64 } %t37, 0 + %t41 = getelementptr inbounds i64, ptr %t40, i64 %t36 + %t42 = load i64, ptr %t41 + %t43 = icmp sgt i64 %t42, 0 + br i1 %t43, label %then7015, label %endif7017 +then7015: + %t44 = load ptr, ptr %a1 + %t45 = load %S.ast.Node, ptr %a2 + %t46 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t47 = load { ptr, i64, i64 }, ptr %t46 + store { ptr, i64, i64 } %t47, ptr %a49 + store { ptr, i64, i64 } { ptr @.str.4512, i64 7, i64 0 }, ptr %a50 + call void @finch_str_concat(ptr %a48, ptr %a49, ptr %a50) + %t51 = load { ptr, i64, i64 }, ptr %a48 + %t52 = load ptr, ptr %a1 + %t53 = icmp eq ptr %t52, null + br i1 %t53, label %panic7018, label %ok7019 +panic7018: + call void @finch_panic(ptr @.str.4513, i64 3888, ptr @.str.4514) + unreachable +ok7019: + %t54 = getelementptr inbounds %S.gen.Gen, ptr %t52, i32 0, i32 22 + %t55 = load i64, ptr %a13 + %t56 = load { ptr, i64, i64 }, ptr %t54 + %t57 = extractvalue { ptr, i64, i64 } %t56, 1 + %t58 = icmp uge i64 %t55, %t57 + br i1 %t58, label %range7020, label %inrange7021 +range7020: + call void @finch_panic_index(ptr @.str.4515, i64 3888, i64 %t55, i64 %t57) + unreachable +inrange7021: + %t59 = extractvalue { ptr, i64, i64 } %t56, 0 + %t60 = getelementptr inbounds %S.gen.SumDef, ptr %t59, i64 %t55 + %t61 = getelementptr inbounds %S.gen.SumDef, ptr %t60, i32 0, i32 3 + %t62 = load i64, ptr %a25 + %t63 = load { ptr, i64, i64 }, ptr %t61 + %t64 = extractvalue { ptr, i64, i64 } %t63, 1 + %t65 = icmp uge i64 %t62, %t64 + br i1 %t65, label %range7022, label %inrange7023 +range7022: + call void @finch_panic_index(ptr @.str.4516, i64 3888, i64 %t62, i64 %t64) + unreachable +inrange7023: + %t66 = extractvalue { ptr, i64, i64 } %t63, 0 + %t67 = getelementptr inbounds i64, ptr %t66, i64 %t62 + %t68 = load i64, ptr %t67 + call void @finch_str_from_int(ptr %a69, i64 %t68) + %t70 = load { ptr, i64, i64 }, ptr %a69 + store { ptr, i64, i64 } %t51, ptr %a72 + store { ptr, i64, i64 } %t70, ptr %a73 + call void @finch_str_concat(ptr %a71, ptr %a72, ptr %a73) + store { ptr, i64, i64 } %t51, ptr %a74 call void @finch_str_drop(ptr %a74) - br label %endif6653 -endif6653: - %t75 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 1 - %t76 = getelementptr inbounds { ptr, i64, i64 }, ptr %t75, i32 0, i32 1 - %t77 = load i64, ptr %t76 - %t78 = icmp eq i64 %t77, 0 - br i1 %t78, label %then6654, label %endif6656 -then6654: - %t79 = load ptr, ptr %a1 - %t80 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t79, %S.ast.Node %t80, { ptr, i64, i64 } { ptr @.str.4321, i64 57, i64 0 }) - br label %endif6656 -endif6656: - %t81 = load ptr, ptr %a1 + store { ptr, i64, i64 } %t70, ptr %a75 + call void @finch_str_drop(ptr %a75) + %t76 = load { ptr, i64, i64 }, ptr %a71 + store { ptr, i64, i64 } %t76, ptr %a78 + store { ptr, i64, i64 } { ptr @.str.4517, i64 11, i64 0 }, ptr %a79 + call void @finch_str_concat(ptr %a77, ptr %a78, ptr %a79) + store { ptr, i64, i64 } %t76, ptr %a80 + call void @finch_str_drop(ptr %a80) + %t81 = load { ptr, i64, i64 }, ptr %a77 %t82 = load ptr, ptr %a1 - %t83 = load { ptr, i64, i64 }, ptr %a65 - store { ptr, i64, i64 } { ptr @.str.4322, i64 12, i64 0 }, ptr %a85 - store { ptr, i64, i64 } %t83, ptr %a86 - call void @finch_str_concat(ptr %a84, ptr %a85, ptr %a86) - %t87 = load { ptr, i64, i64 }, ptr %a84 - store { ptr, i64, i64 } %t87, ptr %a89 - store { ptr, i64, i64 } { ptr @.str.4323, i64 6, i64 0 }, ptr %a90 - call void @finch_str_concat(ptr %a88, ptr %a89, ptr %a90) - store { ptr, i64, i64 } %t87, ptr %a91 - call void @finch_str_drop(ptr %a91) - %t92 = load { ptr, i64, i64 }, ptr %a88 - %t93 = call { ptr, i64, i64 } @finch.gen.op(ptr %t82, { ptr, i64, i64 } %t92) - store { ptr, i64, i64 } %t92, ptr %a94 - call void @finch_str_drop(ptr %a94) - %t95 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t96 = load { ptr, i64, i64 }, ptr %t95 - store { ptr, i64, i64 } { ptr @.str.4324, i64 6, i64 0 }, ptr %a98 - store { ptr, i64, i64 } %t96, ptr %a99 - call void @finch_str_concat(ptr %a97, ptr %a98, ptr %a99) - %t100 = load { ptr, i64, i64 }, ptr %a97 - store { ptr, i64, i64 } %t100, ptr %a102 - store { ptr, i64, i64 } { ptr @.str.4325, i64 18, i64 0 }, ptr %a103 - call void @finch_str_concat(ptr %a101, ptr %a102, ptr %a103) - store { ptr, i64, i64 } %t100, ptr %a104 - call void @finch_str_drop(ptr %a104) - %t105 = load { ptr, i64, i64 }, ptr %a101 - %t106 = load %S.ast.Node, ptr %a2 - call void @finch.gen.panicIf(ptr %t81, { ptr, i64, i64 } %t93, { ptr, i64, i64 } %t105, %S.ast.Node %t106) - store { ptr, i64, i64 } %t93, ptr %a107 - call void @finch_str_drop(ptr %a107) - store { ptr, i64, i64 } %t105, ptr %a108 + %t83 = icmp eq ptr %t82, null + br i1 %t83, label %panic7024, label %ok7025 +panic7024: + call void @finch_panic(ptr @.str.4518, i64 3888, ptr @.str.4519) + unreachable +ok7025: + %t84 = getelementptr inbounds %S.gen.Gen, ptr %t82, i32 0, i32 22 + %t85 = load i64, ptr %a13 + %t86 = load { ptr, i64, i64 }, ptr %t84 + %t87 = extractvalue { ptr, i64, i64 } %t86, 1 + %t88 = icmp uge i64 %t85, %t87 + br i1 %t88, label %range7026, label %inrange7027 +range7026: + call void @finch_panic_index(ptr @.str.4520, i64 3888, i64 %t85, i64 %t87) + unreachable +inrange7027: + %t89 = extractvalue { ptr, i64, i64 } %t86, 0 + %t90 = getelementptr inbounds %S.gen.SumDef, ptr %t89, i64 %t85 + %t91 = getelementptr inbounds %S.gen.SumDef, ptr %t90, i32 0, i32 1 + %t92 = load { ptr, i64, i64 }, ptr %t91 + store { ptr, i64, i64 } %t81, ptr %a94 + store { ptr, i64, i64 } %t92, ptr %a95 + call void @finch_str_concat(ptr %a93, ptr %a94, ptr %a95) + store { ptr, i64, i64 } %t81, ptr %a96 + call void @finch_str_drop(ptr %a96) + %t97 = load { ptr, i64, i64 }, ptr %a93 + store { ptr, i64, i64 } %t97, ptr %a99 + store { ptr, i64, i64 } { ptr @.str.4521, i64 1, i64 0 }, ptr %a100 + call void @finch_str_concat(ptr %a98, ptr %a99, ptr %a100) + store { ptr, i64, i64 } %t97, ptr %a101 + call void @finch_str_drop(ptr %a101) + %t102 = load { ptr, i64, i64 }, ptr %a98 + %t103 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t104 = load { ptr, i64, i64 }, ptr %t103 + store { ptr, i64, i64 } %t102, ptr %a106 + store { ptr, i64, i64 } %t104, ptr %a107 + call void @finch_str_concat(ptr %a105, ptr %a106, ptr %a107) + store { ptr, i64, i64 } %t102, ptr %a108 call void @finch_str_drop(ptr %a108) - %t109 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 1 - %t110 = load { ptr, i64, i64 }, ptr %t109 - %t111 = extractvalue { ptr, i64, i64 } %t110, 1 - %t112 = icmp uge i64 0, %t111 - br i1 %t112, label %range6657, label %inrange6658 -range6657: - call void @finch_panic_index(ptr @.str.4326, i64 3687, i64 0, i64 %t111) + %t109 = load { ptr, i64, i64 }, ptr %a105 + store { ptr, i64, i64 } %t109, ptr %a111 + store { ptr, i64, i64 } { ptr @.str.4522, i64 5, i64 0 }, ptr %a112 + call void @finch_str_concat(ptr %a110, ptr %a111, ptr %a112) + store { ptr, i64, i64 } %t109, ptr %a113 + call void @finch_str_drop(ptr %a113) + %t114 = load { ptr, i64, i64 }, ptr %a110 + call void @finch.gen.fail(ptr %t44, %S.ast.Node %t45, { ptr, i64, i64 } %t114) + store { ptr, i64, i64 } %t114, ptr %a115 + call void @finch_str_drop(ptr %a115) + br label %endif7017 +endif7017: + store { ptr, i64, i64 } zeroinitializer, ptr %a116 + %t117 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 + %t118 = load ptr, ptr %a1 + %t119 = load i64, ptr %a13 + %t120 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t121 = load { ptr, i64, i64 }, ptr %t120 + %t122 = load { ptr, i64, i64 }, ptr %a116 + %t123 = load %S.ast.Node, ptr %a2 + %t124 = call %S.gen.Val @finch.gen.sumMake(ptr %t118, i64 %t119, { ptr, i64, i64 } %t121, { ptr, i64, i64 } %t122, %S.ast.Node %t123) + %t125 = insertvalue %S.gen.Ref %t117, %S.gen.Val %t124, 2 + call void @finch.drop.arr_S_ast_Node(ptr %a116) + ret %S.gen.Ref %t125 +endif7005: + %t126 = load ptr, ptr %a1 + %t127 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t128 = load { ptr, i64, i64 }, ptr %t127 + %t129 = extractvalue { ptr, i64, i64 } %t128, 1 + %t130 = icmp uge i64 0, %t129 + br i1 %t130, label %range7028, label %inrange7029 +range7028: + call void @finch_panic_index(ptr @.str.4523, i64 3893, i64 0, i64 %t129) unreachable -inrange6658: - %t113 = extractvalue { ptr, i64, i64 } %t110, 0 - %t114 = getelementptr inbounds %S.ast.Type, ptr %t113, i64 0 - %t115 = load %S.ast.Type, ptr %t114 - store %S.ast.Type %t115, ptr %a116 - call void @finch.copy.S_ast_Type(ptr %a117, ptr %a116) - %t118 = load %S.ast.Type, ptr %a117 - store %S.ast.Type %t118, ptr %a119 - store i1 false, ptr %a120 - %t121 = getelementptr inbounds %S.ast.Type, ptr %a119, i32 0, i32 0 - %t122 = load { ptr, i64, i64 }, ptr %t121 - store { ptr, i64, i64 } %t122, ptr %a123 - store { ptr, i64, i64 } { ptr @.str.4327, i64 6, i64 0 }, ptr %a124 - %t125 = call i32 @finch_str_eq(ptr %a123, ptr %a124) - %t126 = icmp ne i32 %t125, 0 - br i1 %t126, label %then6659, label %endif6661 -then6659: - %t127 = load ptr, ptr %a1 - %t128 = icmp eq ptr %t127, null - br i1 %t128, label %panic6662, label %ok6663 -panic6662: - call void @finch_panic(ptr @.str.4328, i64 3690, ptr @.str.4329) +inrange7029: + %t131 = extractvalue { ptr, i64, i64 } %t128, 0 + %t132 = getelementptr inbounds %S.ast.Node, ptr %t131, i64 0 + %t133 = load %S.ast.Node, ptr %t132 + %t134 = call i64 @finch.gen.enumNamed(ptr %t126, %S.ast.Node %t133) + store i64 %t134, ptr %a135 + %t136 = load i64, ptr %a135 + %t137 = icmp sge i64 %t136, 0 + br i1 %t137, label %then7030, label %endif7032 +then7030: + %t138 = load i1, ptr %a3 + br i1 %t138, label %then7033, label %endif7035 +then7033: + %t139 = load ptr, ptr %a1 + %t140 = load %S.ast.Node, ptr %a2 + call void @finch.gen.fail(ptr %t139, %S.ast.Node %t140, { ptr, i64, i64 } { ptr @.str.4524, i64 37, i64 0 }) + br label %endif7035 +endif7035: + %t141 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 + %t142 = load ptr, ptr %a1 + %t143 = load %S.ast.Node, ptr %a2 + %t144 = load i64, ptr %a135 + %t145 = call %S.gen.Val @finch.gen.enumValue(ptr %t142, %S.ast.Node %t143, i64 %t144) + %t146 = insertvalue %S.gen.Ref %t141, %S.gen.Val %t145, 2 + ret %S.gen.Ref %t146 +endif7032: + %t147 = load ptr, ptr %a1 + %t148 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t149 = load { ptr, i64, i64 }, ptr %t148 + %t150 = extractvalue { ptr, i64, i64 } %t149, 1 + %t151 = icmp uge i64 0, %t150 + br i1 %t151, label %range7036, label %inrange7037 +range7036: + call void @finch_panic_index(ptr @.str.4525, i64 3900, i64 0, i64 %t150) unreachable -ok6663: - %t129 = getelementptr inbounds %S.gen.Gen, ptr %t127, i32 0, i32 16 - %t130 = load ptr, ptr %a1 - %t131 = getelementptr inbounds %S.ast.Type, ptr %a119, i32 0, i32 3 - %t132 = load { ptr, i64, i64 }, ptr %t131 - %t133 = getelementptr inbounds %S.ast.Type, ptr %a119, i32 0, i32 2 - %t134 = load { ptr, i64, i64 }, ptr %t133 - %t135 = call i64 @finch.gen.findStruct(ptr %t130, { ptr, i64, i64 } %t132, { ptr, i64, i64 } %t134) - %t136 = load { ptr, i64, i64 }, ptr %t129 - %t137 = extractvalue { ptr, i64, i64 } %t136, 1 - %t138 = icmp uge i64 %t135, %t137 - br i1 %t138, label %range6664, label %inrange6665 -range6664: - call void @finch_panic_index(ptr @.str.4330, i64 3690, i64 %t135, i64 %t137) - unreachable -inrange6665: - %t139 = extractvalue { ptr, i64, i64 } %t136, 0 - %t140 = getelementptr inbounds %S.gen.StructDef, ptr %t139, i64 %t135 - %t141 = getelementptr inbounds %S.gen.StructDef, ptr %t140, i32 0, i32 11 - %t142 = getelementptr inbounds { ptr, i64, i64 }, ptr %t141, i32 0, i32 1 - store i64 -1, ptr %a143 - %t144 = load i64, ptr %t142 - %t145 = load ptr, ptr %t141 - store i64 0, ptr %a146 - br label %find.cond6666 -find.cond6666: - %t147 = load i64, ptr %a146 - %t148 = icmp slt i64 %t147, %t144 - br i1 %t148, label %find.body6667, label %find.end6670 -find.body6667: - %t149 = getelementptr inbounds { ptr, i64, i64 }, ptr %t145, i64 %t147 - %t150 = load { ptr, i64, i64 }, ptr %t149 - store { ptr, i64, i64 } %t150, ptr %a151 - store { ptr, i64, i64 } { ptr @.str.4331, i64 5, i64 0 }, ptr %a152 - %t153 = call i32 @finch_str_eq(ptr %a151, ptr %a152) - %t154 = icmp ne i32 %t153, 0 - br i1 %t154, label %find.hit6668, label %find.next6669 -find.hit6668: - store i64 %t147, ptr %a143 - br label %find.end6670 -find.next6669: - %t155 = add i64 %t147, 1 - store i64 %t155, ptr %a146 - br label %find.cond6666 -find.end6670: - %t156 = load i64, ptr %a143 - %t157 = icmp sge i64 %t156, 0 - store i1 %t157, ptr %a120 - br label %endif6661 -endif6661: - %t158 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t159 = load { ptr, i64, i64 }, ptr %t158 - store { ptr, i64, i64 } %t159, ptr %a160 - store { ptr, i64, i64 } { ptr @.str.4332, i64 5, i64 0 }, ptr %a161 - %t162 = call i32 @finch_str_eq(ptr %a160, ptr %a161) - %t163 = icmp ne i32 %t162, 0 - br label %logic.from6671 -logic.from6671: - br i1 %t163, label %logic.rhs6672, label %logic.end6673 -logic.rhs6672: - %t164 = load i1, ptr %a120 - %t165 = xor i1 %t164, true - br label %logic.rend6674 -logic.rend6674: - br label %logic.end6673 -logic.end6673: - %t166 = phi i1 [ false, %logic.from6671 ], [ %t165, %logic.rend6674 ] - br i1 %t166, label %then6675, label %endif6677 -then6675: - %t167 = insertvalue %S.gen.Ref zeroinitializer, i1 true, 0 - %t168 = load { ptr, i64, i64 }, ptr %a65 - store { ptr, i64, i64 } %t168, ptr %a169 - call void @finch_str_copy(ptr %a170, ptr %a169) - %t171 = load { ptr, i64, i64 }, ptr %a170 - %t172 = insertvalue %S.gen.Place zeroinitializer, { ptr, i64, i64 } %t171, 0 - %t173 = load %S.ast.Type, ptr %a119 +inrange7037: + %t152 = extractvalue { ptr, i64, i64 } %t149, 0 + %t153 = getelementptr inbounds %S.ast.Node, ptr %t152, i64 0 + %t154 = load %S.ast.Node, ptr %t153 + %t155 = load i1, ptr %a3 + %t156 = call %S.gen.Ref @finch.gen.ref(ptr %t147, %S.ast.Node %t154, i1 %t155) + store %S.gen.Ref %t156, ptr %a157 + %t158 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 2 + %t159 = getelementptr inbounds %S.gen.Val, ptr %t158, i32 0, i32 1 + %t160 = load %S.ast.Type, ptr %t159 + store %S.ast.Type %t160, ptr %a161 + call void @finch.copy.S_ast_Type(ptr %a162, ptr %a161) + %t163 = load %S.ast.Type, ptr %a162 + store %S.ast.Type %t163, ptr %a164 + %t165 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 0 + %t166 = load i1, ptr %t165 + br i1 %t166, label %then7038, label %endif7040 +then7038: + %t167 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 1 + %t168 = getelementptr inbounds %S.gen.Place, ptr %t167, i32 0, i32 1 + %t169 = load %S.ast.Type, ptr %t168 + store %S.ast.Type %t169, ptr %a170 + call void @finch.copy.S_ast_Type(ptr %a171, ptr %a170) + %t172 = load %S.ast.Type, ptr %a171 + %t173 = load %S.ast.Type, ptr %a164 + store %S.ast.Type %t172, ptr %a164 store %S.ast.Type %t173, ptr %a174 - call void @finch.copy.S_ast_Type(ptr %a175, ptr %a174) - %t176 = load %S.ast.Type, ptr %a175 - %t177 = insertvalue %S.gen.Place %t172, %S.ast.Type %t176, 1 - %t178 = insertvalue %S.gen.Ref %t167, %S.gen.Place %t177, 1 - call void @finch.drop.S_ast_Type(ptr %a119) - call void @finch_str_drop(ptr %a65) - call void @finch.drop.S_ast_Type(ptr %a42) - call void @finch.drop.S_gen_Ref(ptr %a35) - ret %S.gen.Ref %t178 -endif6677: - %t179 = getelementptr inbounds %S.ast.Type, ptr %a119, i32 0, i32 0 - %t180 = load { ptr, i64, i64 }, ptr %t179 - store { ptr, i64, i64 } %t180, ptr %a181 - store { ptr, i64, i64 } { ptr @.str.4333, i64 6, i64 0 }, ptr %a182 - %t183 = call i32 @finch_str_eq(ptr %a181, ptr %a182) - %t184 = icmp eq i32 %t183, 0 - br i1 %t184, label %then6678, label %endif6680 -then6678: - %t185 = load ptr, ptr %a1 - %t186 = load %S.ast.Node, ptr %a2 - %t187 = load %S.ast.Type, ptr %a42 - %t188 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t187) - store { ptr, i64, i64 } { ptr @.str.4334, i64 2, i64 0 }, ptr %a190 - store { ptr, i64, i64 } %t188, ptr %a191 - call void @finch_str_concat(ptr %a189, ptr %a190, ptr %a191) - store { ptr, i64, i64 } %t188, ptr %a192 - call void @finch_str_drop(ptr %a192) - %t193 = load { ptr, i64, i64 }, ptr %a189 - store { ptr, i64, i64 } %t193, ptr %a195 - store { ptr, i64, i64 } { ptr @.str.4335, i64 43, i64 0 }, ptr %a196 - call void @finch_str_concat(ptr %a194, ptr %a195, ptr %a196) - store { ptr, i64, i64 } %t193, ptr %a197 - call void @finch_str_drop(ptr %a197) - %t198 = load { ptr, i64, i64 }, ptr %a194 - call void @finch.gen.fail(ptr %t185, %S.ast.Node %t186, { ptr, i64, i64 } %t198) - store { ptr, i64, i64 } %t198, ptr %a199 - call void @finch_str_drop(ptr %a199) - br label %endif6680 -endif6680: - %t200 = insertvalue %S.gen.Ref zeroinitializer, i1 true, 0 - %t201 = load { ptr, i64, i64 }, ptr %a65 - store { ptr, i64, i64 } %t201, ptr %a202 - call void @finch_str_copy(ptr %a203, ptr %a202) - %t204 = load { ptr, i64, i64 }, ptr %a203 - %t205 = insertvalue %S.gen.Place zeroinitializer, { ptr, i64, i64 } %t204, 0 - %t206 = load %S.ast.Type, ptr %a119 - store %S.ast.Type %t206, ptr %a207 - call void @finch.copy.S_ast_Type(ptr %a208, ptr %a207) - %t209 = load %S.ast.Type, ptr %a208 - %t210 = insertvalue %S.gen.Place %t205, %S.ast.Type %t209, 1 - %t211 = insertvalue %S.gen.Ref %t200, %S.gen.Place %t210, 1 - %t212 = load %S.gen.Ref, ptr %a35 - store %S.gen.Ref %t211, ptr %a35 - store %S.gen.Ref %t212, ptr %a213 - call void @finch.drop.S_gen_Ref(ptr %a213) - %t214 = load %S.ast.Type, ptr %a119 - store %S.ast.Type %t214, ptr %a215 - call void @finch.copy.S_ast_Type(ptr %a216, ptr %a215) - %t217 = load %S.ast.Type, ptr %a216 - %t218 = load %S.ast.Type, ptr %a42 - store %S.ast.Type %t217, ptr %a42 - store %S.ast.Type %t218, ptr %a219 - call void @finch.drop.S_ast_Type(ptr %a219) - call void @finch.drop.S_ast_Type(ptr %a119) - call void @finch_str_drop(ptr %a65) - br label %endif6650 -endif6650: - %t220 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 0 - %t221 = load { ptr, i64, i64 }, ptr %t220 - store { ptr, i64, i64 } %t221, ptr %a222 - store { ptr, i64, i64 } { ptr @.str.4336, i64 5, i64 0 }, ptr %a223 - %t224 = call i32 @finch_str_eq(ptr %a222, ptr %a223) - %t225 = icmp ne i32 %t224, 0 - br i1 %t225, label %then6681, label %endif6683 -then6681: - %t226 = load i1, ptr %a3 - br i1 %t226, label %then6684, label %endif6686 -then6684: - %t227 = load ptr, ptr %a1 + call void @finch.drop.S_ast_Type(ptr %a174) + br label %endif7040 +endif7040: + %t175 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 0 + %t176 = load { ptr, i64, i64 }, ptr %t175 + store { ptr, i64, i64 } %t176, ptr %a177 + store { ptr, i64, i64 } { ptr @.str.4526, i64 3, i64 0 }, ptr %a178 + %t179 = call i32 @finch_str_eq(ptr %a177, ptr %a178) + %t180 = icmp ne i32 %t179, 0 + br i1 %t180, label %then7041, label %endif7043 +then7041: + %t181 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 2 + %t182 = getelementptr inbounds %S.gen.Val, ptr %t181, i32 0, i32 0 + %t183 = load { ptr, i64, i64 }, ptr %t182 + store { ptr, i64, i64 } %t183, ptr %a184 + call void @finch_str_copy(ptr %a185, ptr %a184) + %t186 = load { ptr, i64, i64 }, ptr %a185 + store { ptr, i64, i64 } %t186, ptr %a187 + %t188 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 0 + %t189 = load i1, ptr %t188 + br i1 %t189, label %then7044, label %endif7046 +then7044: + %t190 = load ptr, ptr %a1 + %t191 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 1 + %t192 = getelementptr inbounds %S.gen.Place, ptr %t191, i32 0, i32 0 + %t193 = load { ptr, i64, i64 }, ptr %t192 + %t194 = call { ptr, i64, i64 } @finch.gen.load(ptr %t190, { ptr, i64, i64 } { ptr @.str.4527, i64 3, i64 0 }, { ptr, i64, i64 } %t193) + %t195 = load { ptr, i64, i64 }, ptr %a187 + store { ptr, i64, i64 } %t194, ptr %a187 + store { ptr, i64, i64 } %t195, ptr %a196 + call void @finch_str_drop(ptr %a196) + br label %endif7046 +endif7046: + %t197 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 1 + %t198 = getelementptr inbounds { ptr, i64, i64 }, ptr %t197, i32 0, i32 1 + %t199 = load i64, ptr %t198 + %t200 = icmp eq i64 %t199, 0 + br i1 %t200, label %then7047, label %endif7049 +then7047: + %t201 = load ptr, ptr %a1 + %t202 = load %S.ast.Node, ptr %a2 + call void @finch.gen.fail(ptr %t201, %S.ast.Node %t202, { ptr, i64, i64 } { ptr @.str.4528, i64 57, i64 0 }) + br label %endif7049 +endif7049: + %t203 = load ptr, ptr %a1 + %t204 = load ptr, ptr %a1 + %t205 = load { ptr, i64, i64 }, ptr %a187 + store { ptr, i64, i64 } { ptr @.str.4529, i64 12, i64 0 }, ptr %a207 + store { ptr, i64, i64 } %t205, ptr %a208 + call void @finch_str_concat(ptr %a206, ptr %a207, ptr %a208) + %t209 = load { ptr, i64, i64 }, ptr %a206 + store { ptr, i64, i64 } %t209, ptr %a211 + store { ptr, i64, i64 } { ptr @.str.4530, i64 6, i64 0 }, ptr %a212 + call void @finch_str_concat(ptr %a210, ptr %a211, ptr %a212) + store { ptr, i64, i64 } %t209, ptr %a213 + call void @finch_str_drop(ptr %a213) + %t214 = load { ptr, i64, i64 }, ptr %a210 + %t215 = call { ptr, i64, i64 } @finch.gen.op(ptr %t204, { ptr, i64, i64 } %t214) + store { ptr, i64, i64 } %t214, ptr %a216 + call void @finch_str_drop(ptr %a216) + %t217 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t218 = load { ptr, i64, i64 }, ptr %t217 + store { ptr, i64, i64 } { ptr @.str.4531, i64 6, i64 0 }, ptr %a220 + store { ptr, i64, i64 } %t218, ptr %a221 + call void @finch_str_concat(ptr %a219, ptr %a220, ptr %a221) + %t222 = load { ptr, i64, i64 }, ptr %a219 + store { ptr, i64, i64 } %t222, ptr %a224 + store { ptr, i64, i64 } { ptr @.str.4532, i64 18, i64 0 }, ptr %a225 + call void @finch_str_concat(ptr %a223, ptr %a224, ptr %a225) + store { ptr, i64, i64 } %t222, ptr %a226 + call void @finch_str_drop(ptr %a226) + %t227 = load { ptr, i64, i64 }, ptr %a223 %t228 = load %S.ast.Node, ptr %a2 - %t229 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t230 = load { ptr, i64, i64 }, ptr %t229 - store { ptr, i64, i64 } { ptr @.str.4337, i64 1, i64 0 }, ptr %a232 - store { ptr, i64, i64 } %t230, ptr %a233 - call void @finch_str_concat(ptr %a231, ptr %a232, ptr %a233) - %t234 = load { ptr, i64, i64 }, ptr %a231 - store { ptr, i64, i64 } %t234, ptr %a236 - store { ptr, i64, i64 } { ptr @.str.4338, i64 26, i64 0 }, ptr %a237 - call void @finch_str_concat(ptr %a235, ptr %a236, ptr %a237) - store { ptr, i64, i64 } %t234, ptr %a238 - call void @finch_str_drop(ptr %a238) - %t239 = load { ptr, i64, i64 }, ptr %a235 - call void @finch.gen.fail(ptr %t227, %S.ast.Node %t228, { ptr, i64, i64 } %t239) - store { ptr, i64, i64 } %t239, ptr %a240 - call void @finch_str_drop(ptr %a240) - br label %endif6686 -endif6686: - %t241 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t242 = load { ptr, i64, i64 }, ptr %t241 - store { ptr, i64, i64 } %t242, ptr %a243 - store { ptr, i64, i64 } { ptr @.str.4339, i64 3, i64 0 }, ptr %a244 - %t245 = call i32 @finch_str_eq(ptr %a243, ptr %a244) - %t246 = icmp ne i32 %t245, 0 - br i1 %t246, label %then6687, label %endif6689 -then6687: - %t247 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 - %t248 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 4 - %t249 = load i64, ptr %t248 - call void @finch_str_from_int(ptr %a250, i64 %t249) - %t251 = load { ptr, i64, i64 }, ptr %a250 - %t252 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t251, 0 - %t253 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4340, i64 3, i64 0 }) - %t254 = insertvalue %S.gen.Val %t252, %S.ast.Type %t253, 1 - %t255 = insertvalue %S.gen.Val %t254, i1 true, 3 - %t256 = insertvalue %S.gen.Ref %t247, %S.gen.Val %t255, 2 - call void @finch.drop.S_ast_Type(ptr %a42) - call void @finch.drop.S_gen_Ref(ptr %a35) - ret %S.gen.Ref %t256 -endif6689: - %t257 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t258 = load { ptr, i64, i64 }, ptr %t257 - store { ptr, i64, i64 } %t258, ptr %a259 - store { ptr, i64, i64 } { ptr @.str.4341, i64 3, i64 0 }, ptr %a260 - %t261 = call i32 @finch_str_eq(ptr %a259, ptr %a260) - %t262 = icmp eq i32 %t261, 0 - br i1 %t262, label %then6690, label %endif6692 -then6690: - %t263 = load ptr, ptr %a1 - %t264 = load %S.ast.Node, ptr %a2 - %t265 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t266 = load { ptr, i64, i64 }, ptr %t265 - store { ptr, i64, i64 } { ptr @.str.4342, i64 34, i64 0 }, ptr %a268 - store { ptr, i64, i64 } %t266, ptr %a269 - call void @finch_str_concat(ptr %a267, ptr %a268, ptr %a269) - %t270 = load { ptr, i64, i64 }, ptr %a267 - store { ptr, i64, i64 } %t270, ptr %a272 - store { ptr, i64, i64 } { ptr @.str.4343, i64 1, i64 0 }, ptr %a273 - call void @finch_str_concat(ptr %a271, ptr %a272, ptr %a273) - store { ptr, i64, i64 } %t270, ptr %a274 - call void @finch_str_drop(ptr %a274) - %t275 = load { ptr, i64, i64 }, ptr %a271 - call void @finch.gen.fail(ptr %t263, %S.ast.Node %t264, { ptr, i64, i64 } %t275) - store { ptr, i64, i64 } %t275, ptr %a276 - call void @finch_str_drop(ptr %a276) - br label %endif6692 -endif6692: - %t277 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 0 - %t278 = load i1, ptr %t277 - %t279 = xor i1 %t278, true - br i1 %t279, label %then6693, label %endif6695 -then6693: - %t280 = load ptr, ptr %a1 - %t281 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t280, %S.ast.Node %t281, { ptr, i64, i64 } { ptr @.str.4344, i64 48, i64 0 }) - br label %endif6695 -endif6695: - %t282 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 - %t283 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 1 - %t284 = getelementptr inbounds %S.gen.Place, ptr %t283, i32 0, i32 0 - %t285 = load { ptr, i64, i64 }, ptr %t284 - store { ptr, i64, i64 } %t285, ptr %a286 - call void @finch_str_copy(ptr %a287, ptr %a286) - %t288 = load { ptr, i64, i64 }, ptr %a287 - %t289 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t288, 0 - %t290 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 1 - %t291 = load { ptr, i64, i64 }, ptr %t290 - %t292 = extractvalue { ptr, i64, i64 } %t291, 1 - %t293 = icmp uge i64 0, %t292 - br i1 %t293, label %range6696, label %inrange6697 -range6696: - call void @finch_panic_index(ptr @.str.4345, i64 3714, i64 0, i64 %t292) + call void @finch.gen.panicIf(ptr %t203, { ptr, i64, i64 } %t215, { ptr, i64, i64 } %t227, %S.ast.Node %t228) + store { ptr, i64, i64 } %t215, ptr %a229 + call void @finch_str_drop(ptr %a229) + store { ptr, i64, i64 } %t227, ptr %a230 + call void @finch_str_drop(ptr %a230) + %t231 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 1 + %t232 = load { ptr, i64, i64 }, ptr %t231 + %t233 = extractvalue { ptr, i64, i64 } %t232, 1 + %t234 = icmp uge i64 0, %t233 + br i1 %t234, label %range7050, label %inrange7051 +range7050: + call void @finch_panic_index(ptr @.str.4533, i64 3914, i64 0, i64 %t233) unreachable -inrange6697: - %t294 = extractvalue { ptr, i64, i64 } %t291, 0 - %t295 = getelementptr inbounds %S.ast.Type, ptr %t294, i64 0 - %t296 = load %S.ast.Type, ptr %t295 - %t297 = call %S.ast.Type @finch.ast.ptrTo(%S.ast.Type %t296) - %t298 = insertvalue %S.gen.Val %t289, %S.ast.Type %t297, 1 - %t299 = insertvalue %S.gen.Ref %t282, %S.gen.Val %t298, 2 - call void @finch.drop.S_ast_Type(ptr %a42) - call void @finch.drop.S_gen_Ref(ptr %a35) - ret %S.gen.Ref %t299 -endif6683: - %t300 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 0 - %t301 = load { ptr, i64, i64 }, ptr %t300 - store { ptr, i64, i64 } %t301, ptr %a302 - store { ptr, i64, i64 } { ptr @.str.4346, i64 5, i64 0 }, ptr %a303 - %t304 = call i32 @finch_str_eq(ptr %a302, ptr %a303) - %t305 = icmp ne i32 %t304, 0 - br label %logic.from6698 -logic.from6698: - br i1 %t305, label %logic.end6700, label %logic.rhs6699 -logic.rhs6699: - %t306 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 0 - %t307 = load { ptr, i64, i64 }, ptr %t306 - store { ptr, i64, i64 } %t307, ptr %a308 - store { ptr, i64, i64 } { ptr @.str.4347, i64 3, i64 0 }, ptr %a309 - %t310 = call i32 @finch_str_eq(ptr %a308, ptr %a309) - %t311 = icmp ne i32 %t310, 0 - br label %logic.rend6701 -logic.rend6701: - br label %logic.end6700 -logic.end6700: - %t312 = phi i1 [ true, %logic.from6698 ], [ %t311, %logic.rend6701 ] - br label %logic.from6702 -logic.from6702: - br i1 %t312, label %logic.rhs6703, label %logic.end6704 -logic.rhs6703: - %t313 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t314 = load { ptr, i64, i64 }, ptr %t313 - store { ptr, i64, i64 } %t314, ptr %a315 - store { ptr, i64, i64 } { ptr @.str.4348, i64 3, i64 0 }, ptr %a316 - %t317 = call i32 @finch_str_eq(ptr %a315, ptr %a316) - %t318 = icmp ne i32 %t317, 0 - br label %logic.rend6705 -logic.rend6705: - br label %logic.end6704 -logic.end6704: - %t319 = phi i1 [ false, %logic.from6702 ], [ %t318, %logic.rend6705 ] - br i1 %t319, label %then6706, label %endif6708 -then6706: - %t320 = load i1, ptr %a3 - br i1 %t320, label %then6709, label %endif6711 -then6709: - %t321 = load ptr, ptr %a1 - %t322 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t321, %S.ast.Node %t322, { ptr, i64, i64 } { ptr @.str.4349, i64 30, i64 0 }) - br label %endif6711 -endif6711: - %t323 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 0 - %t324 = load i1, ptr %t323 - %t325 = xor i1 %t324, true - br label %logic.from6712 -logic.from6712: - br i1 %t325, label %logic.rhs6713, label %logic.end6714 -logic.rhs6713: - %t326 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 2 - %t327 = getelementptr inbounds %S.gen.Val, ptr %t326, i32 0, i32 2 - %t328 = load i1, ptr %t327 - br label %logic.rend6715 -logic.rend6715: - br label %logic.end6714 -logic.end6714: - %t329 = phi i1 [ false, %logic.from6712 ], [ %t328, %logic.rend6715 ] - br label %logic.from6716 -logic.from6716: - br i1 %t329, label %logic.rhs6717, label %logic.end6718 -logic.rhs6717: - %t330 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 2 - %t331 = getelementptr inbounds %S.gen.Val, ptr %t330, i32 0, i32 0 - %t332 = load { ptr, i64, i64 }, ptr %t331 - store { ptr, i64, i64 } %t332, ptr %a333 - store { ptr, i64, i64 } { ptr @.str.4351, i64 1, i64 0 }, ptr %a335 - %t336 = call i32 @finch_str_starts(ptr %a333, ptr %a335) - %t337 = icmp ne i32 %t336, 0 - br label %logic.rend6719 -logic.rend6719: - br label %logic.end6718 -logic.end6718: - %t338 = phi i1 [ false, %logic.from6716 ], [ %t337, %logic.rend6719 ] - br i1 %t338, label %then6720, label %endif6722 -then6720: - %t339 = load ptr, ptr %a1 - %t340 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t339, %S.ast.Node %t340, { ptr, i64, i64 } { ptr @.str.4352, i64 53, i64 0 }) - br label %endif6722 -endif6722: - %t341 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 2 - %t342 = getelementptr inbounds %S.gen.Val, ptr %t341, i32 0, i32 0 +inrange7051: + %t235 = extractvalue { ptr, i64, i64 } %t232, 0 + %t236 = getelementptr inbounds %S.ast.Type, ptr %t235, i64 0 + %t237 = load %S.ast.Type, ptr %t236 + store %S.ast.Type %t237, ptr %a238 + call void @finch.copy.S_ast_Type(ptr %a239, ptr %a238) + %t240 = load %S.ast.Type, ptr %a239 + store %S.ast.Type %t240, ptr %a241 + store i1 false, ptr %a242 + %t243 = getelementptr inbounds %S.ast.Type, ptr %a241, i32 0, i32 0 + %t244 = load { ptr, i64, i64 }, ptr %t243 + store { ptr, i64, i64 } %t244, ptr %a245 + store { ptr, i64, i64 } { ptr @.str.4534, i64 6, i64 0 }, ptr %a246 + %t247 = call i32 @finch_str_eq(ptr %a245, ptr %a246) + %t248 = icmp ne i32 %t247, 0 + br i1 %t248, label %then7052, label %endif7054 +then7052: + %t249 = load ptr, ptr %a1 + %t250 = icmp eq ptr %t249, null + br i1 %t250, label %panic7055, label %ok7056 +panic7055: + call void @finch_panic(ptr @.str.4535, i64 3917, ptr @.str.4536) + unreachable +ok7056: + %t251 = getelementptr inbounds %S.gen.Gen, ptr %t249, i32 0, i32 16 + %t252 = load ptr, ptr %a1 + %t253 = getelementptr inbounds %S.ast.Type, ptr %a241, i32 0, i32 3 + %t254 = load { ptr, i64, i64 }, ptr %t253 + %t255 = getelementptr inbounds %S.ast.Type, ptr %a241, i32 0, i32 2 + %t256 = load { ptr, i64, i64 }, ptr %t255 + %t257 = call i64 @finch.gen.findStruct(ptr %t252, { ptr, i64, i64 } %t254, { ptr, i64, i64 } %t256) + %t258 = load { ptr, i64, i64 }, ptr %t251 + %t259 = extractvalue { ptr, i64, i64 } %t258, 1 + %t260 = icmp uge i64 %t257, %t259 + br i1 %t260, label %range7057, label %inrange7058 +range7057: + call void @finch_panic_index(ptr @.str.4537, i64 3917, i64 %t257, i64 %t259) + unreachable +inrange7058: + %t261 = extractvalue { ptr, i64, i64 } %t258, 0 + %t262 = getelementptr inbounds %S.gen.StructDef, ptr %t261, i64 %t257 + %t263 = getelementptr inbounds %S.gen.StructDef, ptr %t262, i32 0, i32 11 + %t264 = getelementptr inbounds { ptr, i64, i64 }, ptr %t263, i32 0, i32 1 + store i64 -1, ptr %a265 + %t266 = load i64, ptr %t264 + %t267 = load ptr, ptr %t263 + store i64 0, ptr %a268 + br label %find.cond7059 +find.cond7059: + %t269 = load i64, ptr %a268 + %t270 = icmp slt i64 %t269, %t266 + br i1 %t270, label %find.body7060, label %find.end7063 +find.body7060: + %t271 = getelementptr inbounds { ptr, i64, i64 }, ptr %t267, i64 %t269 + %t272 = load { ptr, i64, i64 }, ptr %t271 + store { ptr, i64, i64 } %t272, ptr %a273 + store { ptr, i64, i64 } { ptr @.str.4538, i64 5, i64 0 }, ptr %a274 + %t275 = call i32 @finch_str_eq(ptr %a273, ptr %a274) + %t276 = icmp ne i32 %t275, 0 + br i1 %t276, label %find.hit7061, label %find.next7062 +find.hit7061: + store i64 %t269, ptr %a265 + br label %find.end7063 +find.next7062: + %t277 = add i64 %t269, 1 + store i64 %t277, ptr %a268 + br label %find.cond7059 +find.end7063: + %t278 = load i64, ptr %a265 + %t279 = icmp sge i64 %t278, 0 + store i1 %t279, ptr %a242 + br label %endif7054 +endif7054: + %t280 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t281 = load { ptr, i64, i64 }, ptr %t280 + store { ptr, i64, i64 } %t281, ptr %a282 + store { ptr, i64, i64 } { ptr @.str.4539, i64 5, i64 0 }, ptr %a283 + %t284 = call i32 @finch_str_eq(ptr %a282, ptr %a283) + %t285 = icmp ne i32 %t284, 0 + br label %logic.from7064 +logic.from7064: + br i1 %t285, label %logic.rhs7065, label %logic.end7066 +logic.rhs7065: + %t286 = load i1, ptr %a242 + %t287 = xor i1 %t286, true + br label %logic.rend7067 +logic.rend7067: + br label %logic.end7066 +logic.end7066: + %t288 = phi i1 [ false, %logic.from7064 ], [ %t287, %logic.rend7067 ] + br i1 %t288, label %then7068, label %endif7070 +then7068: + %t289 = insertvalue %S.gen.Ref zeroinitializer, i1 true, 0 + %t290 = load { ptr, i64, i64 }, ptr %a187 + store { ptr, i64, i64 } %t290, ptr %a291 + call void @finch_str_copy(ptr %a292, ptr %a291) + %t293 = load { ptr, i64, i64 }, ptr %a292 + %t294 = insertvalue %S.gen.Place zeroinitializer, { ptr, i64, i64 } %t293, 0 + %t295 = load %S.ast.Type, ptr %a241 + store %S.ast.Type %t295, ptr %a296 + call void @finch.copy.S_ast_Type(ptr %a297, ptr %a296) + %t298 = load %S.ast.Type, ptr %a297 + %t299 = insertvalue %S.gen.Place %t294, %S.ast.Type %t298, 1 + %t300 = insertvalue %S.gen.Ref %t289, %S.gen.Place %t299, 1 + call void @finch.drop.S_ast_Type(ptr %a241) + call void @finch_str_drop(ptr %a187) + call void @finch.drop.S_ast_Type(ptr %a164) + call void @finch.drop.S_gen_Ref(ptr %a157) + ret %S.gen.Ref %t300 +endif7070: + %t301 = getelementptr inbounds %S.ast.Type, ptr %a241, i32 0, i32 0 + %t302 = load { ptr, i64, i64 }, ptr %t301 + store { ptr, i64, i64 } %t302, ptr %a303 + store { ptr, i64, i64 } { ptr @.str.4540, i64 6, i64 0 }, ptr %a304 + %t305 = call i32 @finch_str_eq(ptr %a303, ptr %a304) + %t306 = icmp eq i32 %t305, 0 + br i1 %t306, label %then7071, label %endif7073 +then7071: + %t307 = load ptr, ptr %a1 + %t308 = load %S.ast.Node, ptr %a2 + %t309 = load %S.ast.Type, ptr %a164 + %t310 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t309) + store { ptr, i64, i64 } { ptr @.str.4541, i64 2, i64 0 }, ptr %a312 + store { ptr, i64, i64 } %t310, ptr %a313 + call void @finch_str_concat(ptr %a311, ptr %a312, ptr %a313) + store { ptr, i64, i64 } %t310, ptr %a314 + call void @finch_str_drop(ptr %a314) + %t315 = load { ptr, i64, i64 }, ptr %a311 + store { ptr, i64, i64 } %t315, ptr %a317 + store { ptr, i64, i64 } { ptr @.str.4542, i64 43, i64 0 }, ptr %a318 + call void @finch_str_concat(ptr %a316, ptr %a317, ptr %a318) + store { ptr, i64, i64 } %t315, ptr %a319 + call void @finch_str_drop(ptr %a319) + %t320 = load { ptr, i64, i64 }, ptr %a316 + call void @finch.gen.fail(ptr %t307, %S.ast.Node %t308, { ptr, i64, i64 } %t320) + store { ptr, i64, i64 } %t320, ptr %a321 + call void @finch_str_drop(ptr %a321) + br label %endif7073 +endif7073: + %t322 = insertvalue %S.gen.Ref zeroinitializer, i1 true, 0 + %t323 = load { ptr, i64, i64 }, ptr %a187 + store { ptr, i64, i64 } %t323, ptr %a324 + call void @finch_str_copy(ptr %a325, ptr %a324) + %t326 = load { ptr, i64, i64 }, ptr %a325 + %t327 = insertvalue %S.gen.Place zeroinitializer, { ptr, i64, i64 } %t326, 0 + %t328 = load %S.ast.Type, ptr %a241 + store %S.ast.Type %t328, ptr %a329 + call void @finch.copy.S_ast_Type(ptr %a330, ptr %a329) + %t331 = load %S.ast.Type, ptr %a330 + %t332 = insertvalue %S.gen.Place %t327, %S.ast.Type %t331, 1 + %t333 = insertvalue %S.gen.Ref %t322, %S.gen.Place %t332, 1 + %t334 = load %S.gen.Ref, ptr %a157 + store %S.gen.Ref %t333, ptr %a157 + store %S.gen.Ref %t334, ptr %a335 + call void @finch.drop.S_gen_Ref(ptr %a335) + %t336 = load %S.ast.Type, ptr %a241 + store %S.ast.Type %t336, ptr %a337 + call void @finch.copy.S_ast_Type(ptr %a338, ptr %a337) + %t339 = load %S.ast.Type, ptr %a338 + %t340 = load %S.ast.Type, ptr %a164 + store %S.ast.Type %t339, ptr %a164 + store %S.ast.Type %t340, ptr %a341 + call void @finch.drop.S_ast_Type(ptr %a341) + call void @finch.drop.S_ast_Type(ptr %a241) + call void @finch_str_drop(ptr %a187) + br label %endif7043 +endif7043: + %t342 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 0 %t343 = load { ptr, i64, i64 }, ptr %t342 store { ptr, i64, i64 } %t343, ptr %a344 - call void @finch_str_copy(ptr %a345, ptr %a344) - %t346 = load { ptr, i64, i64 }, ptr %a345 - store { ptr, i64, i64 } %t346, ptr %a347 - %t348 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 0 - %t349 = load i1, ptr %t348 - br i1 %t349, label %then6723, label %endif6725 -then6723: - %t350 = load ptr, ptr %a1 - %t351 = load ptr, ptr %a1 - %t352 = load %S.ast.Type, ptr %a42 - %t353 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t351, %S.ast.Type %t352) - %t354 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 1 - %t355 = getelementptr inbounds %S.gen.Place, ptr %t354, i32 0, i32 0 - %t356 = load { ptr, i64, i64 }, ptr %t355 - %t357 = call { ptr, i64, i64 } @finch.gen.load(ptr %t350, { ptr, i64, i64 } %t353, { ptr, i64, i64 } %t356) - store { ptr, i64, i64 } %t353, ptr %a358 - call void @finch_str_drop(ptr %a358) - %t359 = load { ptr, i64, i64 }, ptr %a347 - store { ptr, i64, i64 } %t357, ptr %a347 - store { ptr, i64, i64 } %t359, ptr %a360 + store { ptr, i64, i64 } { ptr @.str.4543, i64 5, i64 0 }, ptr %a345 + %t346 = call i32 @finch_str_eq(ptr %a344, ptr %a345) + %t347 = icmp ne i32 %t346, 0 + br i1 %t347, label %then7074, label %endif7076 +then7074: + %t348 = load i1, ptr %a3 + br i1 %t348, label %then7077, label %endif7079 +then7077: + %t349 = load ptr, ptr %a1 + %t350 = load %S.ast.Node, ptr %a2 + %t351 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t352 = load { ptr, i64, i64 }, ptr %t351 + store { ptr, i64, i64 } { ptr @.str.4544, i64 1, i64 0 }, ptr %a354 + store { ptr, i64, i64 } %t352, ptr %a355 + call void @finch_str_concat(ptr %a353, ptr %a354, ptr %a355) + %t356 = load { ptr, i64, i64 }, ptr %a353 + store { ptr, i64, i64 } %t356, ptr %a358 + store { ptr, i64, i64 } { ptr @.str.4545, i64 26, i64 0 }, ptr %a359 + call void @finch_str_concat(ptr %a357, ptr %a358, ptr %a359) + store { ptr, i64, i64 } %t356, ptr %a360 call void @finch_str_drop(ptr %a360) - br label %endif6725 -endif6725: - %t361 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 0 - %t362 = load { ptr, i64, i64 }, ptr %t361 - store { ptr, i64, i64 } %t362, ptr %a363 - store { ptr, i64, i64 } { ptr @.str.4353, i64 3, i64 0 }, ptr %a364 - %t365 = call i32 @finch_str_eq(ptr %a363, ptr %a364) - %t366 = icmp ne i32 %t365, 0 - br i1 %t366, label %then6726, label %endif6728 -then6726: - %t367 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 - %t368 = load ptr, ptr %a1 - %t369 = load { ptr, i64, i64 }, ptr %a347 - %t370 = call { ptr, i64, i64 } @finch.gen.cstr(ptr %t368, { ptr, i64, i64 } %t369) - %t371 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t370, 0 - %t372 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4354, i64 4, i64 0 }) - %t373 = call %S.ast.Type @finch.ast.ptrTo(%S.ast.Type %t372) - store %S.ast.Type %t372, ptr %a374 - call void @finch.drop.S_ast_Type(ptr %a374) - %t375 = insertvalue %S.gen.Val %t371, %S.ast.Type %t373, 1 - %t376 = insertvalue %S.gen.Ref %t367, %S.gen.Val %t375, 2 - call void @finch_str_drop(ptr %a347) - call void @finch.drop.S_ast_Type(ptr %a42) - call void @finch.drop.S_gen_Ref(ptr %a35) - ret %S.gen.Ref %t376 -endif6728: - %t377 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 - %t378 = load ptr, ptr %a1 - %t379 = load { ptr, i64, i64 }, ptr %a347 - store { ptr, i64, i64 } { ptr @.str.4355, i64 31, i64 0 }, ptr %a381 - store { ptr, i64, i64 } %t379, ptr %a382 - call void @finch_str_concat(ptr %a380, ptr %a381, ptr %a382) - %t383 = load { ptr, i64, i64 }, ptr %a380 - store { ptr, i64, i64 } %t383, ptr %a385 - store { ptr, i64, i64 } { ptr @.str.4356, i64 3, i64 0 }, ptr %a386 - call void @finch_str_concat(ptr %a384, ptr %a385, ptr %a386) - store { ptr, i64, i64 } %t383, ptr %a387 - call void @finch_str_drop(ptr %a387) - %t388 = load { ptr, i64, i64 }, ptr %a384 - %t389 = call { ptr, i64, i64 } @finch.gen.op(ptr %t378, { ptr, i64, i64 } %t388) - store { ptr, i64, i64 } %t388, ptr %a390 - call void @finch_str_drop(ptr %a390) - %t391 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t389, 0 - %t392 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 1 - %t393 = load { ptr, i64, i64 }, ptr %t392 - %t394 = extractvalue { ptr, i64, i64 } %t393, 1 - %t395 = icmp uge i64 0, %t394 - br i1 %t395, label %range6729, label %inrange6730 -range6729: - call void @finch_panic_index(ptr @.str.4357, i64 3732, i64 0, i64 %t394) + %t361 = load { ptr, i64, i64 }, ptr %a357 + call void @finch.gen.fail(ptr %t349, %S.ast.Node %t350, { ptr, i64, i64 } %t361) + store { ptr, i64, i64 } %t361, ptr %a362 + call void @finch_str_drop(ptr %a362) + br label %endif7079 +endif7079: + %t363 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t364 = load { ptr, i64, i64 }, ptr %t363 + store { ptr, i64, i64 } %t364, ptr %a365 + store { ptr, i64, i64 } { ptr @.str.4546, i64 3, i64 0 }, ptr %a366 + %t367 = call i32 @finch_str_eq(ptr %a365, ptr %a366) + %t368 = icmp ne i32 %t367, 0 + br i1 %t368, label %then7080, label %endif7082 +then7080: + %t369 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 + %t370 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 4 + %t371 = load i64, ptr %t370 + call void @finch_str_from_int(ptr %a372, i64 %t371) + %t373 = load { ptr, i64, i64 }, ptr %a372 + %t374 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t373, 0 + %t375 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4547, i64 3, i64 0 }) + %t376 = insertvalue %S.gen.Val %t374, %S.ast.Type %t375, 1 + %t377 = insertvalue %S.gen.Val %t376, i1 true, 3 + %t378 = insertvalue %S.gen.Ref %t369, %S.gen.Val %t377, 2 + call void @finch.drop.S_ast_Type(ptr %a164) + call void @finch.drop.S_gen_Ref(ptr %a157) + ret %S.gen.Ref %t378 +endif7082: + %t379 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t380 = load { ptr, i64, i64 }, ptr %t379 + store { ptr, i64, i64 } %t380, ptr %a381 + store { ptr, i64, i64 } { ptr @.str.4548, i64 3, i64 0 }, ptr %a382 + %t383 = call i32 @finch_str_eq(ptr %a381, ptr %a382) + %t384 = icmp eq i32 %t383, 0 + br i1 %t384, label %then7083, label %endif7085 +then7083: + %t385 = load ptr, ptr %a1 + %t386 = load %S.ast.Node, ptr %a2 + %t387 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t388 = load { ptr, i64, i64 }, ptr %t387 + store { ptr, i64, i64 } { ptr @.str.4549, i64 34, i64 0 }, ptr %a390 + store { ptr, i64, i64 } %t388, ptr %a391 + call void @finch_str_concat(ptr %a389, ptr %a390, ptr %a391) + %t392 = load { ptr, i64, i64 }, ptr %a389 + store { ptr, i64, i64 } %t392, ptr %a394 + store { ptr, i64, i64 } { ptr @.str.4550, i64 1, i64 0 }, ptr %a395 + call void @finch_str_concat(ptr %a393, ptr %a394, ptr %a395) + store { ptr, i64, i64 } %t392, ptr %a396 + call void @finch_str_drop(ptr %a396) + %t397 = load { ptr, i64, i64 }, ptr %a393 + call void @finch.gen.fail(ptr %t385, %S.ast.Node %t386, { ptr, i64, i64 } %t397) + store { ptr, i64, i64 } %t397, ptr %a398 + call void @finch_str_drop(ptr %a398) + br label %endif7085 +endif7085: + %t399 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 0 + %t400 = load i1, ptr %t399 + %t401 = xor i1 %t400, true + br i1 %t401, label %then7086, label %endif7088 +then7086: + %t402 = load ptr, ptr %a1 + %t403 = load %S.ast.Node, ptr %a2 + call void @finch.gen.fail(ptr %t402, %S.ast.Node %t403, { ptr, i64, i64 } { ptr @.str.4551, i64 48, i64 0 }) + br label %endif7088 +endif7088: + %t404 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 + %t405 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 1 + %t406 = getelementptr inbounds %S.gen.Place, ptr %t405, i32 0, i32 0 + %t407 = load { ptr, i64, i64 }, ptr %t406 + store { ptr, i64, i64 } %t407, ptr %a408 + call void @finch_str_copy(ptr %a409, ptr %a408) + %t410 = load { ptr, i64, i64 }, ptr %a409 + %t411 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t410, 0 + %t412 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 1 + %t413 = load { ptr, i64, i64 }, ptr %t412 + %t414 = extractvalue { ptr, i64, i64 } %t413, 1 + %t415 = icmp uge i64 0, %t414 + br i1 %t415, label %range7089, label %inrange7090 +range7089: + call void @finch_panic_index(ptr @.str.4552, i64 3941, i64 0, i64 %t414) unreachable -inrange6730: - %t396 = extractvalue { ptr, i64, i64 } %t393, 0 - %t397 = getelementptr inbounds %S.ast.Type, ptr %t396, i64 0 - %t398 = load %S.ast.Type, ptr %t397 - %t399 = call %S.ast.Type @finch.ast.ptrTo(%S.ast.Type %t398) - %t400 = insertvalue %S.gen.Val %t391, %S.ast.Type %t399, 1 - %t401 = insertvalue %S.gen.Ref %t377, %S.gen.Val %t400, 2 - call void @finch_str_drop(ptr %a347) - call void @finch.drop.S_ast_Type(ptr %a42) - call void @finch.drop.S_gen_Ref(ptr %a35) - ret %S.gen.Ref %t401 -endif6708: - %t402 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 0 - %t403 = load { ptr, i64, i64 }, ptr %t402 - store { ptr, i64, i64 } %t403, ptr %a404 - store { ptr, i64, i64 } { ptr @.str.4358, i64 5, i64 0 }, ptr %a405 - %t406 = call i32 @finch_str_eq(ptr %a404, ptr %a405) - %t407 = icmp ne i32 %t406, 0 - br label %logic.from6731 -logic.from6731: - br i1 %t407, label %logic.end6733, label %logic.rhs6732 -logic.rhs6732: - %t408 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 0 - %t409 = load { ptr, i64, i64 }, ptr %t408 - store { ptr, i64, i64 } %t409, ptr %a410 - store { ptr, i64, i64 } { ptr @.str.4359, i64 3, i64 0 }, ptr %a411 - %t412 = call i32 @finch_str_eq(ptr %a410, ptr %a411) - %t413 = icmp ne i32 %t412, 0 - br label %logic.rend6734 -logic.rend6734: - br label %logic.end6733 -logic.end6733: - %t414 = phi i1 [ true, %logic.from6731 ], [ %t413, %logic.rend6734 ] - br label %logic.from6735 -logic.from6735: - br i1 %t414, label %logic.end6737, label %logic.rhs6736 -logic.rhs6736: - %t415 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 0 - %t416 = load { ptr, i64, i64 }, ptr %t415 - store { ptr, i64, i64 } %t416, ptr %a417 - store { ptr, i64, i64 } { ptr @.str.4360, i64 3, i64 0 }, ptr %a418 - %t419 = call i32 @finch_str_eq(ptr %a417, ptr %a418) - %t420 = icmp ne i32 %t419, 0 - br label %logic.rend6738 -logic.rend6738: - br label %logic.end6737 -logic.end6737: - %t421 = phi i1 [ true, %logic.from6735 ], [ %t420, %logic.rend6738 ] - br i1 %t421, label %then6739, label %endif6741 -then6739: - %t422 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 +inrange7090: + %t416 = extractvalue { ptr, i64, i64 } %t413, 0 + %t417 = getelementptr inbounds %S.ast.Type, ptr %t416, i64 0 + %t418 = load %S.ast.Type, ptr %t417 + %t419 = call %S.ast.Type @finch.ast.ptrTo(%S.ast.Type %t418) + %t420 = insertvalue %S.gen.Val %t411, %S.ast.Type %t419, 1 + %t421 = insertvalue %S.gen.Ref %t404, %S.gen.Val %t420, 2 + call void @finch.drop.S_ast_Type(ptr %a164) + call void @finch.drop.S_gen_Ref(ptr %a157) + ret %S.gen.Ref %t421 +endif7076: + %t422 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 0 %t423 = load { ptr, i64, i64 }, ptr %t422 store { ptr, i64, i64 } %t423, ptr %a424 - store { ptr, i64, i64 } { ptr @.str.4361, i64 3, i64 0 }, ptr %a425 + store { ptr, i64, i64 } { ptr @.str.4553, i64 5, i64 0 }, ptr %a425 %t426 = call i32 @finch_str_eq(ptr %a424, ptr %a425) - %t427 = icmp eq i32 %t426, 0 - br i1 %t427, label %then6742, label %endif6744 -then6742: - %t428 = load ptr, ptr %a1 - %t429 = load %S.ast.Node, ptr %a2 - %t430 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t431 = load { ptr, i64, i64 }, ptr %t430 - store { ptr, i64, i64 } { ptr @.str.4362, i64 37, i64 0 }, ptr %a433 - store { ptr, i64, i64 } %t431, ptr %a434 - call void @finch_str_concat(ptr %a432, ptr %a433, ptr %a434) - %t435 = load { ptr, i64, i64 }, ptr %a432 - store { ptr, i64, i64 } %t435, ptr %a437 - store { ptr, i64, i64 } { ptr @.str.4363, i64 1, i64 0 }, ptr %a438 - call void @finch_str_concat(ptr %a436, ptr %a437, ptr %a438) - store { ptr, i64, i64 } %t435, ptr %a439 - call void @finch_str_drop(ptr %a439) - %t440 = load { ptr, i64, i64 }, ptr %a436 - call void @finch.gen.fail(ptr %t428, %S.ast.Node %t429, { ptr, i64, i64 } %t440) - store { ptr, i64, i64 } %t440, ptr %a441 - call void @finch_str_drop(ptr %a441) - br label %endif6744 -endif6744: + %t427 = icmp ne i32 %t426, 0 + br label %logic.from7091 +logic.from7091: + br i1 %t427, label %logic.end7093, label %logic.rhs7092 +logic.rhs7092: + %t428 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 0 + %t429 = load { ptr, i64, i64 }, ptr %t428 + store { ptr, i64, i64 } %t429, ptr %a430 + store { ptr, i64, i64 } { ptr @.str.4554, i64 3, i64 0 }, ptr %a431 + %t432 = call i32 @finch_str_eq(ptr %a430, ptr %a431) + %t433 = icmp ne i32 %t432, 0 + br label %logic.rend7094 +logic.rend7094: + br label %logic.end7093 +logic.end7093: + %t434 = phi i1 [ true, %logic.from7091 ], [ %t433, %logic.rend7094 ] + br label %logic.from7095 +logic.from7095: + br i1 %t434, label %logic.rhs7096, label %logic.end7097 +logic.rhs7096: + %t435 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t436 = load { ptr, i64, i64 }, ptr %t435 + store { ptr, i64, i64 } %t436, ptr %a437 + store { ptr, i64, i64 } { ptr @.str.4555, i64 3, i64 0 }, ptr %a438 + %t439 = call i32 @finch_str_eq(ptr %a437, ptr %a438) + %t440 = icmp ne i32 %t439, 0 + br label %logic.rend7098 +logic.rend7098: + br label %logic.end7097 +logic.end7097: + %t441 = phi i1 [ false, %logic.from7095 ], [ %t440, %logic.rend7098 ] + br i1 %t441, label %then7099, label %endif7101 +then7099: %t442 = load i1, ptr %a3 - br i1 %t442, label %then6745, label %endif6747 -then6745: + br i1 %t442, label %then7102, label %endif7104 +then7102: %t443 = load ptr, ptr %a1 %t444 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t443, %S.ast.Node %t444, { ptr, i64, i64 } { ptr @.str.4364, i64 48, i64 0 }) - br label %endif6747 -endif6747: - %t445 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 0 + call void @finch.gen.fail(ptr %t443, %S.ast.Node %t444, { ptr, i64, i64 } { ptr @.str.4556, i64 30, i64 0 }) + br label %endif7104 +endif7104: + %t445 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 0 %t446 = load i1, ptr %t445 - br i1 %t446, label %then6748, label %endif6750 -then6748: - %t447 = load ptr, ptr %a1 - %t448 = load ptr, ptr %a1 - %t449 = load %S.ast.Type, ptr %a42 - %t450 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t448, %S.ast.Type %t449) - store { ptr, i64, i64 } { ptr @.str.4365, i64 23, i64 0 }, ptr %a452 - store { ptr, i64, i64 } %t450, ptr %a453 - call void @finch_str_concat(ptr %a451, ptr %a452, ptr %a453) - store { ptr, i64, i64 } %t450, ptr %a454 - call void @finch_str_drop(ptr %a454) - %t455 = load { ptr, i64, i64 }, ptr %a451 - store { ptr, i64, i64 } %t455, ptr %a457 - store { ptr, i64, i64 } { ptr @.str.4366, i64 6, i64 0 }, ptr %a458 - call void @finch_str_concat(ptr %a456, ptr %a457, ptr %a458) - store { ptr, i64, i64 } %t455, ptr %a459 - call void @finch_str_drop(ptr %a459) - %t460 = load { ptr, i64, i64 }, ptr %a456 - %t461 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 1 - %t462 = getelementptr inbounds %S.gen.Place, ptr %t461, i32 0, i32 0 - %t463 = load { ptr, i64, i64 }, ptr %t462 - store { ptr, i64, i64 } %t460, ptr %a465 - store { ptr, i64, i64 } %t463, ptr %a466 - call void @finch_str_concat(ptr %a464, ptr %a465, ptr %a466) - store { ptr, i64, i64 } %t460, ptr %a467 - call void @finch_str_drop(ptr %a467) - %t468 = load { ptr, i64, i64 }, ptr %a464 - store { ptr, i64, i64 } %t468, ptr %a470 - store { ptr, i64, i64 } { ptr @.str.4367, i64 14, i64 0 }, ptr %a471 - call void @finch_str_concat(ptr %a469, ptr %a470, ptr %a471) - store { ptr, i64, i64 } %t468, ptr %a472 - call void @finch_str_drop(ptr %a472) - %t473 = load { ptr, i64, i64 }, ptr %a469 - %t474 = call { ptr, i64, i64 } @finch.gen.op(ptr %t447, { ptr, i64, i64 } %t473) - store { ptr, i64, i64 } %t473, ptr %a475 - call void @finch_str_drop(ptr %a475) - store { ptr, i64, i64 } %t474, ptr %a476 - %t477 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 - %t478 = load ptr, ptr %a1 - %t479 = load { ptr, i64, i64 }, ptr %a476 - %t480 = call { ptr, i64, i64 } @finch.gen.load(ptr %t478, { ptr, i64, i64 } { ptr @.str.4368, i64 3, i64 0 }, { ptr, i64, i64 } %t479) - %t481 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t480, 0 - %t482 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4369, i64 3, i64 0 }) - %t483 = insertvalue %S.gen.Val %t481, %S.ast.Type %t482, 1 - %t484 = insertvalue %S.gen.Ref %t477, %S.gen.Val %t483, 2 - call void @finch_str_drop(ptr %a476) - call void @finch.drop.S_ast_Type(ptr %a42) - call void @finch.drop.S_gen_Ref(ptr %a35) - ret %S.gen.Ref %t484 -endif6750: - %t485 = load ptr, ptr %a1 - %t486 = load ptr, ptr %a1 - %t487 = load %S.ast.Type, ptr %a42 - %t488 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t486, %S.ast.Type %t487) - store { ptr, i64, i64 } { ptr @.str.4370, i64 13, i64 0 }, ptr %a490 - store { ptr, i64, i64 } %t488, ptr %a491 - call void @finch_str_concat(ptr %a489, ptr %a490, ptr %a491) - store { ptr, i64, i64 } %t488, ptr %a492 - call void @finch_str_drop(ptr %a492) - %t493 = load { ptr, i64, i64 }, ptr %a489 - store { ptr, i64, i64 } %t493, ptr %a495 - store { ptr, i64, i64 } { ptr @.str.4371, i64 1, i64 0 }, ptr %a496 - call void @finch_str_concat(ptr %a494, ptr %a495, ptr %a496) - store { ptr, i64, i64 } %t493, ptr %a497 - call void @finch_str_drop(ptr %a497) - %t498 = load { ptr, i64, i64 }, ptr %a494 - %t499 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 2 - %t500 = getelementptr inbounds %S.gen.Val, ptr %t499, i32 0, i32 0 - %t501 = load { ptr, i64, i64 }, ptr %t500 - store { ptr, i64, i64 } %t498, ptr %a503 + %t447 = xor i1 %t446, true + br label %logic.from7105 +logic.from7105: + br i1 %t447, label %logic.rhs7106, label %logic.end7107 +logic.rhs7106: + %t448 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 2 + %t449 = getelementptr inbounds %S.gen.Val, ptr %t448, i32 0, i32 2 + %t450 = load i1, ptr %t449 + br label %logic.rend7108 +logic.rend7108: + br label %logic.end7107 +logic.end7107: + %t451 = phi i1 [ false, %logic.from7105 ], [ %t450, %logic.rend7108 ] + br label %logic.from7109 +logic.from7109: + br i1 %t451, label %logic.rhs7110, label %logic.end7111 +logic.rhs7110: + %t452 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 2 + %t453 = getelementptr inbounds %S.gen.Val, ptr %t452, i32 0, i32 0 + %t454 = load { ptr, i64, i64 }, ptr %t453 + store { ptr, i64, i64 } %t454, ptr %a455 + store { ptr, i64, i64 } { ptr @.str.4558, i64 1, i64 0 }, ptr %a457 + %t458 = call i32 @finch_str_starts(ptr %a455, ptr %a457) + %t459 = icmp ne i32 %t458, 0 + br label %logic.rend7112 +logic.rend7112: + br label %logic.end7111 +logic.end7111: + %t460 = phi i1 [ false, %logic.from7109 ], [ %t459, %logic.rend7112 ] + br i1 %t460, label %then7113, label %endif7115 +then7113: + %t461 = load ptr, ptr %a1 + %t462 = load %S.ast.Node, ptr %a2 + call void @finch.gen.fail(ptr %t461, %S.ast.Node %t462, { ptr, i64, i64 } { ptr @.str.4559, i64 53, i64 0 }) + br label %endif7115 +endif7115: + %t463 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 2 + %t464 = getelementptr inbounds %S.gen.Val, ptr %t463, i32 0, i32 0 + %t465 = load { ptr, i64, i64 }, ptr %t464 + store { ptr, i64, i64 } %t465, ptr %a466 + call void @finch_str_copy(ptr %a467, ptr %a466) + %t468 = load { ptr, i64, i64 }, ptr %a467 + store { ptr, i64, i64 } %t468, ptr %a469 + %t470 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 0 + %t471 = load i1, ptr %t470 + br i1 %t471, label %then7116, label %endif7118 +then7116: + %t472 = load ptr, ptr %a1 + %t473 = load ptr, ptr %a1 + %t474 = load %S.ast.Type, ptr %a164 + %t475 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t473, %S.ast.Type %t474) + %t476 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 1 + %t477 = getelementptr inbounds %S.gen.Place, ptr %t476, i32 0, i32 0 + %t478 = load { ptr, i64, i64 }, ptr %t477 + %t479 = call { ptr, i64, i64 } @finch.gen.load(ptr %t472, { ptr, i64, i64 } %t475, { ptr, i64, i64 } %t478) + store { ptr, i64, i64 } %t475, ptr %a480 + call void @finch_str_drop(ptr %a480) + %t481 = load { ptr, i64, i64 }, ptr %a469 + store { ptr, i64, i64 } %t479, ptr %a469 + store { ptr, i64, i64 } %t481, ptr %a482 + call void @finch_str_drop(ptr %a482) + br label %endif7118 +endif7118: + %t483 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 0 + %t484 = load { ptr, i64, i64 }, ptr %t483 + store { ptr, i64, i64 } %t484, ptr %a485 + store { ptr, i64, i64 } { ptr @.str.4560, i64 3, i64 0 }, ptr %a486 + %t487 = call i32 @finch_str_eq(ptr %a485, ptr %a486) + %t488 = icmp ne i32 %t487, 0 + br i1 %t488, label %then7119, label %endif7121 +then7119: + %t489 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 + %t490 = load ptr, ptr %a1 + %t491 = load { ptr, i64, i64 }, ptr %a469 + %t492 = call { ptr, i64, i64 } @finch.gen.cstr(ptr %t490, { ptr, i64, i64 } %t491) + %t493 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t492, 0 + %t494 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4561, i64 4, i64 0 }) + %t495 = call %S.ast.Type @finch.ast.ptrTo(%S.ast.Type %t494) + store %S.ast.Type %t494, ptr %a496 + call void @finch.drop.S_ast_Type(ptr %a496) + %t497 = insertvalue %S.gen.Val %t493, %S.ast.Type %t495, 1 + %t498 = insertvalue %S.gen.Ref %t489, %S.gen.Val %t497, 2 + call void @finch_str_drop(ptr %a469) + call void @finch.drop.S_ast_Type(ptr %a164) + call void @finch.drop.S_gen_Ref(ptr %a157) + ret %S.gen.Ref %t498 +endif7121: + %t499 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 + %t500 = load ptr, ptr %a1 + %t501 = load { ptr, i64, i64 }, ptr %a469 + store { ptr, i64, i64 } { ptr @.str.4562, i64 31, i64 0 }, ptr %a503 store { ptr, i64, i64 } %t501, ptr %a504 call void @finch_str_concat(ptr %a502, ptr %a503, ptr %a504) - store { ptr, i64, i64 } %t498, ptr %a505 - call void @finch_str_drop(ptr %a505) - %t506 = load { ptr, i64, i64 }, ptr %a502 - store { ptr, i64, i64 } %t506, ptr %a508 - store { ptr, i64, i64 } { ptr @.str.4372, i64 3, i64 0 }, ptr %a509 - call void @finch_str_concat(ptr %a507, ptr %a508, ptr %a509) - store { ptr, i64, i64 } %t506, ptr %a510 - call void @finch_str_drop(ptr %a510) - %t511 = load { ptr, i64, i64 }, ptr %a507 - %t512 = call { ptr, i64, i64 } @finch.gen.op(ptr %t485, { ptr, i64, i64 } %t511) - store { ptr, i64, i64 } %t511, ptr %a513 - call void @finch_str_drop(ptr %a513) - store { ptr, i64, i64 } %t512, ptr %a514 - %t515 = load ptr, ptr %a1 - %t516 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 2 - %t517 = load %S.gen.Val, ptr %t516 - call void @finch.gen.release(ptr %t515, %S.gen.Val %t517) - %t518 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 - %t519 = load { ptr, i64, i64 }, ptr %a514 - store { ptr, i64, i64 } %t519, ptr %a520 - call void @finch_str_copy(ptr %a521, ptr %a520) - %t522 = load { ptr, i64, i64 }, ptr %a521 - %t523 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t522, 0 - %t524 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4373, i64 3, i64 0 }) - %t525 = insertvalue %S.gen.Val %t523, %S.ast.Type %t524, 1 - %t526 = insertvalue %S.gen.Ref %t518, %S.gen.Val %t525, 2 - call void @finch_str_drop(ptr %a514) - call void @finch.drop.S_ast_Type(ptr %a42) - call void @finch.drop.S_gen_Ref(ptr %a35) - ret %S.gen.Ref %t526 -endif6741: - %t527 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 0 - %t528 = load { ptr, i64, i64 }, ptr %t527 - store { ptr, i64, i64 } %t528, ptr %a529 - store { ptr, i64, i64 } { ptr @.str.4374, i64 6, i64 0 }, ptr %a530 - %t531 = call i32 @finch_str_eq(ptr %a529, ptr %a530) - %t532 = icmp eq i32 %t531, 0 - br i1 %t532, label %then6751, label %endif6753 -then6751: - %t533 = load ptr, ptr %a1 - %t534 = load %S.ast.Node, ptr %a2 - %t535 = load %S.ast.Type, ptr %a42 - %t536 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t535) - store { ptr, i64, i64 } %t536, ptr %a538 - store { ptr, i64, i64 } { ptr @.str.4375, i64 21, i64 0 }, ptr %a539 - call void @finch_str_concat(ptr %a537, ptr %a538, ptr %a539) - store { ptr, i64, i64 } %t536, ptr %a540 - call void @finch_str_drop(ptr %a540) - %t541 = load { ptr, i64, i64 }, ptr %a537 - %t542 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t543 = load { ptr, i64, i64 }, ptr %t542 - store { ptr, i64, i64 } %t541, ptr %a545 - store { ptr, i64, i64 } %t543, ptr %a546 - call void @finch_str_concat(ptr %a544, ptr %a545, ptr %a546) - store { ptr, i64, i64 } %t541, ptr %a547 - call void @finch_str_drop(ptr %a547) - %t548 = load { ptr, i64, i64 }, ptr %a544 - store { ptr, i64, i64 } %t548, ptr %a550 - store { ptr, i64, i64 } { ptr @.str.4376, i64 2, i64 0 }, ptr %a551 - call void @finch_str_concat(ptr %a549, ptr %a550, ptr %a551) - store { ptr, i64, i64 } %t548, ptr %a552 - call void @finch_str_drop(ptr %a552) - %t553 = load { ptr, i64, i64 }, ptr %a549 - call void @finch.gen.fail(ptr %t533, %S.ast.Node %t534, { ptr, i64, i64 } %t553) - store { ptr, i64, i64 } %t553, ptr %a554 - call void @finch_str_drop(ptr %a554) - br label %endif6753 -endif6753: - %t555 = load ptr, ptr %a1 - %t556 = icmp eq ptr %t555, null - br i1 %t556, label %panic6754, label %ok6755 -panic6754: - call void @finch_panic(ptr @.str.4377, i64 3752, ptr @.str.4378) + %t505 = load { ptr, i64, i64 }, ptr %a502 + store { ptr, i64, i64 } %t505, ptr %a507 + store { ptr, i64, i64 } { ptr @.str.4563, i64 3, i64 0 }, ptr %a508 + call void @finch_str_concat(ptr %a506, ptr %a507, ptr %a508) + store { ptr, i64, i64 } %t505, ptr %a509 + call void @finch_str_drop(ptr %a509) + %t510 = load { ptr, i64, i64 }, ptr %a506 + %t511 = call { ptr, i64, i64 } @finch.gen.op(ptr %t500, { ptr, i64, i64 } %t510) + store { ptr, i64, i64 } %t510, ptr %a512 + call void @finch_str_drop(ptr %a512) + %t513 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t511, 0 + %t514 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 1 + %t515 = load { ptr, i64, i64 }, ptr %t514 + %t516 = extractvalue { ptr, i64, i64 } %t515, 1 + %t517 = icmp uge i64 0, %t516 + br i1 %t517, label %range7122, label %inrange7123 +range7122: + call void @finch_panic_index(ptr @.str.4564, i64 3959, i64 0, i64 %t516) unreachable -ok6755: - %t557 = getelementptr inbounds %S.gen.Gen, ptr %t555, i32 0, i32 16 - %t558 = load ptr, ptr %a1 - %t559 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 3 - %t560 = load { ptr, i64, i64 }, ptr %t559 - %t561 = getelementptr inbounds %S.ast.Type, ptr %a42, i32 0, i32 2 - %t562 = load { ptr, i64, i64 }, ptr %t561 - %t563 = call i64 @finch.gen.findStruct(ptr %t558, { ptr, i64, i64 } %t560, { ptr, i64, i64 } %t562) - %t564 = load { ptr, i64, i64 }, ptr %t557 - %t565 = extractvalue { ptr, i64, i64 } %t564, 1 - %t566 = icmp uge i64 %t563, %t565 - br i1 %t566, label %range6756, label %inrange6757 -range6756: - call void @finch_panic_index(ptr @.str.4379, i64 3752, i64 %t563, i64 %t565) - unreachable -inrange6757: - %t567 = extractvalue { ptr, i64, i64 } %t564, 0 - %t568 = getelementptr inbounds %S.gen.StructDef, ptr %t567, i64 %t563 - %t569 = load %S.gen.StructDef, ptr %t568 - store %S.gen.StructDef %t569, ptr %a570 - call void @finch.copy.S_gen_StructDef(ptr %a571, ptr %a570) - %t572 = load %S.gen.StructDef, ptr %a571 - store %S.gen.StructDef %t572, ptr %a573 - %t574 = getelementptr inbounds %S.gen.StructDef, ptr %a573, i32 0, i32 11 - %t575 = getelementptr inbounds { ptr, i64, i64 }, ptr %t574, i32 0, i32 1 - %t576 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t577 = load { ptr, i64, i64 }, ptr %t576 - store i64 -1, ptr %a578 - %t579 = load i64, ptr %t575 - %t580 = load ptr, ptr %t574 - store i64 0, ptr %a581 - br label %find.cond6758 -find.cond6758: - %t582 = load i64, ptr %a581 - %t583 = icmp slt i64 %t582, %t579 - br i1 %t583, label %find.body6759, label %find.end6762 -find.body6759: - %t584 = getelementptr inbounds { ptr, i64, i64 }, ptr %t580, i64 %t582 +inrange7123: + %t518 = extractvalue { ptr, i64, i64 } %t515, 0 + %t519 = getelementptr inbounds %S.ast.Type, ptr %t518, i64 0 + %t520 = load %S.ast.Type, ptr %t519 + %t521 = call %S.ast.Type @finch.ast.ptrTo(%S.ast.Type %t520) + %t522 = insertvalue %S.gen.Val %t513, %S.ast.Type %t521, 1 + %t523 = insertvalue %S.gen.Ref %t499, %S.gen.Val %t522, 2 + call void @finch_str_drop(ptr %a469) + call void @finch.drop.S_ast_Type(ptr %a164) + call void @finch.drop.S_gen_Ref(ptr %a157) + ret %S.gen.Ref %t523 +endif7101: + %t524 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 0 + %t525 = load { ptr, i64, i64 }, ptr %t524 + store { ptr, i64, i64 } %t525, ptr %a526 + store { ptr, i64, i64 } { ptr @.str.4565, i64 5, i64 0 }, ptr %a527 + %t528 = call i32 @finch_str_eq(ptr %a526, ptr %a527) + %t529 = icmp ne i32 %t528, 0 + br label %logic.from7124 +logic.from7124: + br i1 %t529, label %logic.end7126, label %logic.rhs7125 +logic.rhs7125: + %t530 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 0 + %t531 = load { ptr, i64, i64 }, ptr %t530 + store { ptr, i64, i64 } %t531, ptr %a532 + store { ptr, i64, i64 } { ptr @.str.4566, i64 3, i64 0 }, ptr %a533 + %t534 = call i32 @finch_str_eq(ptr %a532, ptr %a533) + %t535 = icmp ne i32 %t534, 0 + br label %logic.rend7127 +logic.rend7127: + br label %logic.end7126 +logic.end7126: + %t536 = phi i1 [ true, %logic.from7124 ], [ %t535, %logic.rend7127 ] + br label %logic.from7128 +logic.from7128: + br i1 %t536, label %logic.end7130, label %logic.rhs7129 +logic.rhs7129: + %t537 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 0 + %t538 = load { ptr, i64, i64 }, ptr %t537 + store { ptr, i64, i64 } %t538, ptr %a539 + store { ptr, i64, i64 } { ptr @.str.4567, i64 3, i64 0 }, ptr %a540 + %t541 = call i32 @finch_str_eq(ptr %a539, ptr %a540) + %t542 = icmp ne i32 %t541, 0 + br label %logic.rend7131 +logic.rend7131: + br label %logic.end7130 +logic.end7130: + %t543 = phi i1 [ true, %logic.from7128 ], [ %t542, %logic.rend7131 ] + br i1 %t543, label %then7132, label %endif7134 +then7132: + %t544 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t545 = load { ptr, i64, i64 }, ptr %t544 + store { ptr, i64, i64 } %t545, ptr %a546 + store { ptr, i64, i64 } { ptr @.str.4568, i64 3, i64 0 }, ptr %a547 + %t548 = call i32 @finch_str_eq(ptr %a546, ptr %a547) + %t549 = icmp eq i32 %t548, 0 + br i1 %t549, label %then7135, label %endif7137 +then7135: + %t550 = load ptr, ptr %a1 + %t551 = load %S.ast.Node, ptr %a2 + %t552 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t553 = load { ptr, i64, i64 }, ptr %t552 + store { ptr, i64, i64 } { ptr @.str.4569, i64 37, i64 0 }, ptr %a555 + store { ptr, i64, i64 } %t553, ptr %a556 + call void @finch_str_concat(ptr %a554, ptr %a555, ptr %a556) + %t557 = load { ptr, i64, i64 }, ptr %a554 + store { ptr, i64, i64 } %t557, ptr %a559 + store { ptr, i64, i64 } { ptr @.str.4570, i64 1, i64 0 }, ptr %a560 + call void @finch_str_concat(ptr %a558, ptr %a559, ptr %a560) + store { ptr, i64, i64 } %t557, ptr %a561 + call void @finch_str_drop(ptr %a561) + %t562 = load { ptr, i64, i64 }, ptr %a558 + call void @finch.gen.fail(ptr %t550, %S.ast.Node %t551, { ptr, i64, i64 } %t562) + store { ptr, i64, i64 } %t562, ptr %a563 + call void @finch_str_drop(ptr %a563) + br label %endif7137 +endif7137: + %t564 = load i1, ptr %a3 + br i1 %t564, label %then7138, label %endif7140 +then7138: + %t565 = load ptr, ptr %a1 + %t566 = load %S.ast.Node, ptr %a2 + call void @finch.gen.fail(ptr %t565, %S.ast.Node %t566, { ptr, i64, i64 } { ptr @.str.4571, i64 48, i64 0 }) + br label %endif7140 +endif7140: + %t567 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 0 + %t568 = load i1, ptr %t567 + br i1 %t568, label %then7141, label %endif7143 +then7141: + %t569 = load ptr, ptr %a1 + %t570 = load ptr, ptr %a1 + %t571 = load %S.ast.Type, ptr %a164 + %t572 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t570, %S.ast.Type %t571) + store { ptr, i64, i64 } { ptr @.str.4572, i64 23, i64 0 }, ptr %a574 + store { ptr, i64, i64 } %t572, ptr %a575 + call void @finch_str_concat(ptr %a573, ptr %a574, ptr %a575) + store { ptr, i64, i64 } %t572, ptr %a576 + call void @finch_str_drop(ptr %a576) + %t577 = load { ptr, i64, i64 }, ptr %a573 + store { ptr, i64, i64 } %t577, ptr %a579 + store { ptr, i64, i64 } { ptr @.str.4573, i64 6, i64 0 }, ptr %a580 + call void @finch_str_concat(ptr %a578, ptr %a579, ptr %a580) + store { ptr, i64, i64 } %t577, ptr %a581 + call void @finch_str_drop(ptr %a581) + %t582 = load { ptr, i64, i64 }, ptr %a578 + %t583 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 1 + %t584 = getelementptr inbounds %S.gen.Place, ptr %t583, i32 0, i32 0 %t585 = load { ptr, i64, i64 }, ptr %t584 - store { ptr, i64, i64 } %t585, ptr %a586 - store { ptr, i64, i64 } %t577, ptr %a587 - %t588 = call i32 @finch_str_eq(ptr %a586, ptr %a587) - %t589 = icmp ne i32 %t588, 0 - br i1 %t589, label %find.hit6760, label %find.next6761 -find.hit6760: - store i64 %t582, ptr %a578 - br label %find.end6762 -find.next6761: - %t590 = add i64 %t582, 1 - store i64 %t590, ptr %a581 - br label %find.cond6758 -find.end6762: - %t591 = load i64, ptr %a578 - store i64 %t591, ptr %a592 - %t593 = load i64, ptr %a592 - %t594 = icmp slt i64 %t593, 0 - br i1 %t594, label %then6763, label %endif6765 -then6763: - %t595 = load ptr, ptr %a1 - %t596 = load %S.ast.Node, ptr %a2 - %t597 = load %S.ast.Type, ptr %a42 - %t598 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t597) - store { ptr, i64, i64 } { ptr @.str.4380, i64 11, i64 0 }, ptr %a600 - store { ptr, i64, i64 } %t598, ptr %a601 - call void @finch_str_concat(ptr %a599, ptr %a600, ptr %a601) - store { ptr, i64, i64 } %t598, ptr %a602 - call void @finch_str_drop(ptr %a602) - %t603 = load { ptr, i64, i64 }, ptr %a599 - store { ptr, i64, i64 } %t603, ptr %a605 - store { ptr, i64, i64 } { ptr @.str.4381, i64 15, i64 0 }, ptr %a606 - call void @finch_str_concat(ptr %a604, ptr %a605, ptr %a606) - store { ptr, i64, i64 } %t603, ptr %a607 - call void @finch_str_drop(ptr %a607) - %t608 = load { ptr, i64, i64 }, ptr %a604 - %t609 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t610 = load { ptr, i64, i64 }, ptr %t609 - store { ptr, i64, i64 } %t608, ptr %a612 + store { ptr, i64, i64 } %t582, ptr %a587 + store { ptr, i64, i64 } %t585, ptr %a588 + call void @finch_str_concat(ptr %a586, ptr %a587, ptr %a588) + store { ptr, i64, i64 } %t582, ptr %a589 + call void @finch_str_drop(ptr %a589) + %t590 = load { ptr, i64, i64 }, ptr %a586 + store { ptr, i64, i64 } %t590, ptr %a592 + store { ptr, i64, i64 } { ptr @.str.4574, i64 14, i64 0 }, ptr %a593 + call void @finch_str_concat(ptr %a591, ptr %a592, ptr %a593) + store { ptr, i64, i64 } %t590, ptr %a594 + call void @finch_str_drop(ptr %a594) + %t595 = load { ptr, i64, i64 }, ptr %a591 + %t596 = call { ptr, i64, i64 } @finch.gen.op(ptr %t569, { ptr, i64, i64 } %t595) + store { ptr, i64, i64 } %t595, ptr %a597 + call void @finch_str_drop(ptr %a597) + store { ptr, i64, i64 } %t596, ptr %a598 + %t599 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 + %t600 = load ptr, ptr %a1 + %t601 = load { ptr, i64, i64 }, ptr %a598 + %t602 = call { ptr, i64, i64 } @finch.gen.load(ptr %t600, { ptr, i64, i64 } { ptr @.str.4575, i64 3, i64 0 }, { ptr, i64, i64 } %t601) + %t603 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t602, 0 + %t604 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4576, i64 3, i64 0 }) + %t605 = insertvalue %S.gen.Val %t603, %S.ast.Type %t604, 1 + %t606 = insertvalue %S.gen.Ref %t599, %S.gen.Val %t605, 2 + call void @finch_str_drop(ptr %a598) + call void @finch.drop.S_ast_Type(ptr %a164) + call void @finch.drop.S_gen_Ref(ptr %a157) + ret %S.gen.Ref %t606 +endif7143: + %t607 = load ptr, ptr %a1 + %t608 = load ptr, ptr %a1 + %t609 = load %S.ast.Type, ptr %a164 + %t610 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t608, %S.ast.Type %t609) + store { ptr, i64, i64 } { ptr @.str.4577, i64 13, i64 0 }, ptr %a612 store { ptr, i64, i64 } %t610, ptr %a613 call void @finch_str_concat(ptr %a611, ptr %a612, ptr %a613) - store { ptr, i64, i64 } %t608, ptr %a614 + store { ptr, i64, i64 } %t610, ptr %a614 call void @finch_str_drop(ptr %a614) %t615 = load { ptr, i64, i64 }, ptr %a611 store { ptr, i64, i64 } %t615, ptr %a617 - store { ptr, i64, i64 } { ptr @.str.4382, i64 11, i64 0 }, ptr %a618 + store { ptr, i64, i64 } { ptr @.str.4578, i64 1, i64 0 }, ptr %a618 call void @finch_str_concat(ptr %a616, ptr %a617, ptr %a618) store { ptr, i64, i64 } %t615, ptr %a619 call void @finch_str_drop(ptr %a619) %t620 = load { ptr, i64, i64 }, ptr %a616 - %t621 = getelementptr inbounds %S.gen.StructDef, ptr %a573, i32 0, i32 11 - %t622 = getelementptr inbounds { ptr, i64, i64 }, ptr %t621, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.4383, i64 2, i64 0 }, ptr %a623 - call void @finch_str_join(ptr %a624, ptr %t621, ptr %a623) - %t625 = load { ptr, i64, i64 }, ptr %a624 + %t621 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 2 + %t622 = getelementptr inbounds %S.gen.Val, ptr %t621, i32 0, i32 0 + %t623 = load { ptr, i64, i64 }, ptr %t622 + store { ptr, i64, i64 } %t620, ptr %a625 + store { ptr, i64, i64 } %t623, ptr %a626 + call void @finch_str_concat(ptr %a624, ptr %a625, ptr %a626) store { ptr, i64, i64 } %t620, ptr %a627 - store { ptr, i64, i64 } %t625, ptr %a628 - call void @finch_str_concat(ptr %a626, ptr %a627, ptr %a628) - store { ptr, i64, i64 } %t620, ptr %a629 - call void @finch_str_drop(ptr %a629) - store { ptr, i64, i64 } %t625, ptr %a630 - call void @finch_str_drop(ptr %a630) - %t631 = load { ptr, i64, i64 }, ptr %a626 - store { ptr, i64, i64 } %t631, ptr %a633 - store { ptr, i64, i64 } { ptr @.str.4384, i64 1, i64 0 }, ptr %a634 - call void @finch_str_concat(ptr %a632, ptr %a633, ptr %a634) - store { ptr, i64, i64 } %t631, ptr %a635 + call void @finch_str_drop(ptr %a627) + %t628 = load { ptr, i64, i64 }, ptr %a624 + store { ptr, i64, i64 } %t628, ptr %a630 + store { ptr, i64, i64 } { ptr @.str.4579, i64 3, i64 0 }, ptr %a631 + call void @finch_str_concat(ptr %a629, ptr %a630, ptr %a631) + store { ptr, i64, i64 } %t628, ptr %a632 + call void @finch_str_drop(ptr %a632) + %t633 = load { ptr, i64, i64 }, ptr %a629 + %t634 = call { ptr, i64, i64 } @finch.gen.op(ptr %t607, { ptr, i64, i64 } %t633) + store { ptr, i64, i64 } %t633, ptr %a635 call void @finch_str_drop(ptr %a635) - %t636 = load { ptr, i64, i64 }, ptr %a632 - call void @finch.gen.fail(ptr %t595, %S.ast.Node %t596, { ptr, i64, i64 } %t636) - store { ptr, i64, i64 } %t636, ptr %a637 - call void @finch_str_drop(ptr %a637) - br label %endif6765 -endif6765: - %t638 = getelementptr inbounds %S.gen.StructDef, ptr %a573, i32 0, i32 12 - %t639 = load i64, ptr %a592 - %t640 = load { ptr, i64, i64 }, ptr %t638 - %t641 = extractvalue { ptr, i64, i64 } %t640, 1 - %t642 = icmp uge i64 %t639, %t641 - br i1 %t642, label %range6766, label %inrange6767 -range6766: - call void @finch_panic_index(ptr @.str.4385, i64 3757, i64 %t639, i64 %t641) + store { ptr, i64, i64 } %t634, ptr %a636 + %t637 = load ptr, ptr %a1 + %t638 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 2 + %t639 = load %S.gen.Val, ptr %t638 + call void @finch.gen.release(ptr %t637, %S.gen.Val %t639) + %t640 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 + %t641 = load { ptr, i64, i64 }, ptr %a636 + store { ptr, i64, i64 } %t641, ptr %a642 + call void @finch_str_copy(ptr %a643, ptr %a642) + %t644 = load { ptr, i64, i64 }, ptr %a643 + %t645 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t644, 0 + %t646 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4580, i64 3, i64 0 }) + %t647 = insertvalue %S.gen.Val %t645, %S.ast.Type %t646, 1 + %t648 = insertvalue %S.gen.Ref %t640, %S.gen.Val %t647, 2 + call void @finch_str_drop(ptr %a636) + call void @finch.drop.S_ast_Type(ptr %a164) + call void @finch.drop.S_gen_Ref(ptr %a157) + ret %S.gen.Ref %t648 +endif7134: + %t649 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 0 + %t650 = load { ptr, i64, i64 }, ptr %t649 + store { ptr, i64, i64 } %t650, ptr %a651 + store { ptr, i64, i64 } { ptr @.str.4581, i64 6, i64 0 }, ptr %a652 + %t653 = call i32 @finch_str_eq(ptr %a651, ptr %a652) + %t654 = icmp eq i32 %t653, 0 + br i1 %t654, label %then7144, label %endif7146 +then7144: + %t655 = load ptr, ptr %a1 + %t656 = load %S.ast.Node, ptr %a2 + %t657 = load %S.ast.Type, ptr %a164 + %t658 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t657) + store { ptr, i64, i64 } %t658, ptr %a660 + store { ptr, i64, i64 } { ptr @.str.4582, i64 21, i64 0 }, ptr %a661 + call void @finch_str_concat(ptr %a659, ptr %a660, ptr %a661) + store { ptr, i64, i64 } %t658, ptr %a662 + call void @finch_str_drop(ptr %a662) + %t663 = load { ptr, i64, i64 }, ptr %a659 + %t664 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t665 = load { ptr, i64, i64 }, ptr %t664 + store { ptr, i64, i64 } %t663, ptr %a667 + store { ptr, i64, i64 } %t665, ptr %a668 + call void @finch_str_concat(ptr %a666, ptr %a667, ptr %a668) + store { ptr, i64, i64 } %t663, ptr %a669 + call void @finch_str_drop(ptr %a669) + %t670 = load { ptr, i64, i64 }, ptr %a666 + store { ptr, i64, i64 } %t670, ptr %a672 + store { ptr, i64, i64 } { ptr @.str.4583, i64 2, i64 0 }, ptr %a673 + call void @finch_str_concat(ptr %a671, ptr %a672, ptr %a673) + store { ptr, i64, i64 } %t670, ptr %a674 + call void @finch_str_drop(ptr %a674) + %t675 = load { ptr, i64, i64 }, ptr %a671 + call void @finch.gen.fail(ptr %t655, %S.ast.Node %t656, { ptr, i64, i64 } %t675) + store { ptr, i64, i64 } %t675, ptr %a676 + call void @finch_str_drop(ptr %a676) + br label %endif7146 +endif7146: + %t677 = load ptr, ptr %a1 + %t678 = icmp eq ptr %t677, null + br i1 %t678, label %panic7147, label %ok7148 +panic7147: + call void @finch_panic(ptr @.str.4584, i64 3979, ptr @.str.4585) unreachable -inrange6767: - %t643 = extractvalue { ptr, i64, i64 } %t640, 0 - %t644 = getelementptr inbounds %S.ast.Type, ptr %t643, i64 %t639 - %t645 = load %S.ast.Type, ptr %t644 - store %S.ast.Type %t645, ptr %a646 - call void @finch.copy.S_ast_Type(ptr %a647, ptr %a646) - %t648 = load %S.ast.Type, ptr %a647 - store %S.ast.Type %t648, ptr %a649 - %t650 = load ptr, ptr %a1 - %t651 = load %S.ast.Node, ptr %a2 - %t652 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 12 - %t653 = load i64, ptr %t652 - %t654 = add i64 %t653, 1 - %t655 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t656 = getelementptr inbounds { ptr, i64, i64 }, ptr %t655, i32 0, i32 1 - %t657 = load i64, ptr %t656 - %t658 = load %S.ast.Type, ptr %a649 - %t659 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t658) - store { ptr, i64, i64 } { ptr @.str.4386, i64 9, i64 0 }, ptr %a661 - store { ptr, i64, i64 } %t659, ptr %a662 - call void @finch_str_concat(ptr %a660, ptr %a661, ptr %a662) - store { ptr, i64, i64 } %t659, ptr %a663 - call void @finch_str_drop(ptr %a663) - %t664 = load { ptr, i64, i64 }, ptr %a660 - store { ptr, i64, i64 } %t664, ptr %a666 - store { ptr, i64, i64 } { ptr @.str.4387, i64 1, i64 0 }, ptr %a667 - call void @finch_str_concat(ptr %a665, ptr %a666, ptr %a667) - store { ptr, i64, i64 } %t664, ptr %a668 - call void @finch_str_drop(ptr %a668) - %t669 = load { ptr, i64, i64 }, ptr %a665 - %t670 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t671 = load { ptr, i64, i64 }, ptr %t670 - store { ptr, i64, i64 } %t669, ptr %a673 - store { ptr, i64, i64 } %t671, ptr %a674 - call void @finch_str_concat(ptr %a672, ptr %a673, ptr %a674) - store { ptr, i64, i64 } %t669, ptr %a675 - call void @finch_str_drop(ptr %a675) - %t676 = load { ptr, i64, i64 }, ptr %a672 - store { ptr, i64, i64 } %t676, ptr %a678 - store { ptr, i64, i64 } { ptr @.str.4388, i64 4, i64 0 }, ptr %a679 - call void @finch_str_concat(ptr %a677, ptr %a678, ptr %a679) - store { ptr, i64, i64 } %t676, ptr %a680 - call void @finch_str_drop(ptr %a680) - %t681 = load { ptr, i64, i64 }, ptr %a677 - call void @finch.gen.noteRef(ptr %t650, %S.ast.Node %t651, i64 %t654, i64 %t657, { ptr, i64, i64 } %t681, { ptr, i64, i64 } { ptr @.str.4389, i64 0, i64 0 }, i64 0, i64 0) - store { ptr, i64, i64 } %t681, ptr %a682 - call void @finch_str_drop(ptr %a682) - %t683 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 0 - %t684 = load i1, ptr %t683 - br i1 %t684, label %then6768, label %endif6770 -then6768: - %t685 = load ptr, ptr %a1 - %t686 = load ptr, ptr %a1 - %t687 = load %S.ast.Type, ptr %a42 - %t688 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t686, %S.ast.Type %t687) - store { ptr, i64, i64 } { ptr @.str.4390, i64 23, i64 0 }, ptr %a690 - store { ptr, i64, i64 } %t688, ptr %a691 - call void @finch_str_concat(ptr %a689, ptr %a690, ptr %a691) - store { ptr, i64, i64 } %t688, ptr %a692 - call void @finch_str_drop(ptr %a692) - %t693 = load { ptr, i64, i64 }, ptr %a689 - store { ptr, i64, i64 } %t693, ptr %a695 - store { ptr, i64, i64 } { ptr @.str.4391, i64 6, i64 0 }, ptr %a696 - call void @finch_str_concat(ptr %a694, ptr %a695, ptr %a696) - store { ptr, i64, i64 } %t693, ptr %a697 - call void @finch_str_drop(ptr %a697) - %t698 = load { ptr, i64, i64 }, ptr %a694 - %t699 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 1 - %t700 = getelementptr inbounds %S.gen.Place, ptr %t699, i32 0, i32 0 - %t701 = load { ptr, i64, i64 }, ptr %t700 - store { ptr, i64, i64 } %t698, ptr %a703 - store { ptr, i64, i64 } %t701, ptr %a704 - call void @finch_str_concat(ptr %a702, ptr %a703, ptr %a704) - store { ptr, i64, i64 } %t698, ptr %a705 - call void @finch_str_drop(ptr %a705) - %t706 = load { ptr, i64, i64 }, ptr %a702 - store { ptr, i64, i64 } %t706, ptr %a708 - store { ptr, i64, i64 } { ptr @.str.4392, i64 13, i64 0 }, ptr %a709 - call void @finch_str_concat(ptr %a707, ptr %a708, ptr %a709) - store { ptr, i64, i64 } %t706, ptr %a710 - call void @finch_str_drop(ptr %a710) - %t711 = load { ptr, i64, i64 }, ptr %a707 - %t712 = getelementptr inbounds %S.gen.StructDef, ptr %a573, i32 0, i32 3 - %t713 = load i64, ptr %a592 - %t714 = load { ptr, i64, i64 }, ptr %t712 - %t715 = extractvalue { ptr, i64, i64 } %t714, 1 - %t716 = icmp uge i64 %t713, %t715 - br i1 %t716, label %range6771, label %inrange6772 -range6771: - call void @finch_panic_index(ptr @.str.4393, i64 3760, i64 %t713, i64 %t715) +ok7148: + %t679 = getelementptr inbounds %S.gen.Gen, ptr %t677, i32 0, i32 16 + %t680 = load ptr, ptr %a1 + %t681 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 3 + %t682 = load { ptr, i64, i64 }, ptr %t681 + %t683 = getelementptr inbounds %S.ast.Type, ptr %a164, i32 0, i32 2 + %t684 = load { ptr, i64, i64 }, ptr %t683 + %t685 = call i64 @finch.gen.findStruct(ptr %t680, { ptr, i64, i64 } %t682, { ptr, i64, i64 } %t684) + %t686 = load { ptr, i64, i64 }, ptr %t679 + %t687 = extractvalue { ptr, i64, i64 } %t686, 1 + %t688 = icmp uge i64 %t685, %t687 + br i1 %t688, label %range7149, label %inrange7150 +range7149: + call void @finch_panic_index(ptr @.str.4586, i64 3979, i64 %t685, i64 %t687) unreachable -inrange6772: - %t717 = extractvalue { ptr, i64, i64 } %t714, 0 - %t718 = getelementptr inbounds i64, ptr %t717, i64 %t713 - %t719 = load i64, ptr %t718 - call void @finch_str_from_int(ptr %a720, i64 %t719) - %t721 = load { ptr, i64, i64 }, ptr %a720 - store { ptr, i64, i64 } %t711, ptr %a723 - store { ptr, i64, i64 } %t721, ptr %a724 - call void @finch_str_concat(ptr %a722, ptr %a723, ptr %a724) - store { ptr, i64, i64 } %t711, ptr %a725 - call void @finch_str_drop(ptr %a725) - store { ptr, i64, i64 } %t721, ptr %a726 - call void @finch_str_drop(ptr %a726) - %t727 = load { ptr, i64, i64 }, ptr %a722 - %t728 = call { ptr, i64, i64 } @finch.gen.op(ptr %t685, { ptr, i64, i64 } %t727) - store { ptr, i64, i64 } %t727, ptr %a729 +inrange7150: + %t689 = extractvalue { ptr, i64, i64 } %t686, 0 + %t690 = getelementptr inbounds %S.gen.StructDef, ptr %t689, i64 %t685 + %t691 = load %S.gen.StructDef, ptr %t690 + store %S.gen.StructDef %t691, ptr %a692 + call void @finch.copy.S_gen_StructDef(ptr %a693, ptr %a692) + %t694 = load %S.gen.StructDef, ptr %a693 + store %S.gen.StructDef %t694, ptr %a695 + %t696 = getelementptr inbounds %S.gen.StructDef, ptr %a695, i32 0, i32 11 + %t697 = getelementptr inbounds { ptr, i64, i64 }, ptr %t696, i32 0, i32 1 + %t698 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t699 = load { ptr, i64, i64 }, ptr %t698 + store i64 -1, ptr %a700 + %t701 = load i64, ptr %t697 + %t702 = load ptr, ptr %t696 + store i64 0, ptr %a703 + br label %find.cond7151 +find.cond7151: + %t704 = load i64, ptr %a703 + %t705 = icmp slt i64 %t704, %t701 + br i1 %t705, label %find.body7152, label %find.end7155 +find.body7152: + %t706 = getelementptr inbounds { ptr, i64, i64 }, ptr %t702, i64 %t704 + %t707 = load { ptr, i64, i64 }, ptr %t706 + store { ptr, i64, i64 } %t707, ptr %a708 + store { ptr, i64, i64 } %t699, ptr %a709 + %t710 = call i32 @finch_str_eq(ptr %a708, ptr %a709) + %t711 = icmp ne i32 %t710, 0 + br i1 %t711, label %find.hit7153, label %find.next7154 +find.hit7153: + store i64 %t704, ptr %a700 + br label %find.end7155 +find.next7154: + %t712 = add i64 %t704, 1 + store i64 %t712, ptr %a703 + br label %find.cond7151 +find.end7155: + %t713 = load i64, ptr %a700 + store i64 %t713, ptr %a714 + %t715 = load i64, ptr %a714 + %t716 = icmp slt i64 %t715, 0 + br i1 %t716, label %then7156, label %endif7158 +then7156: + %t717 = load ptr, ptr %a1 + %t718 = load %S.ast.Node, ptr %a2 + %t719 = load %S.ast.Type, ptr %a164 + %t720 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t719) + store { ptr, i64, i64 } { ptr @.str.4587, i64 11, i64 0 }, ptr %a722 + store { ptr, i64, i64 } %t720, ptr %a723 + call void @finch_str_concat(ptr %a721, ptr %a722, ptr %a723) + store { ptr, i64, i64 } %t720, ptr %a724 + call void @finch_str_drop(ptr %a724) + %t725 = load { ptr, i64, i64 }, ptr %a721 + store { ptr, i64, i64 } %t725, ptr %a727 + store { ptr, i64, i64 } { ptr @.str.4588, i64 15, i64 0 }, ptr %a728 + call void @finch_str_concat(ptr %a726, ptr %a727, ptr %a728) + store { ptr, i64, i64 } %t725, ptr %a729 call void @finch_str_drop(ptr %a729) - store { ptr, i64, i64 } %t728, ptr %a730 - %t731 = insertvalue %S.gen.Ref zeroinitializer, i1 true, 0 - %t732 = load { ptr, i64, i64 }, ptr %a730 - store { ptr, i64, i64 } %t732, ptr %a733 - call void @finch_str_copy(ptr %a734, ptr %a733) - %t735 = load { ptr, i64, i64 }, ptr %a734 - %t736 = insertvalue %S.gen.Place zeroinitializer, { ptr, i64, i64 } %t735, 0 - %t737 = load %S.ast.Type, ptr %a649 - store %S.ast.Type %t737, ptr %a738 - call void @finch.copy.S_ast_Type(ptr %a739, ptr %a738) - %t740 = load %S.ast.Type, ptr %a739 - %t741 = insertvalue %S.gen.Place %t736, %S.ast.Type %t740, 1 - %t742 = insertvalue %S.gen.Ref %t731, %S.gen.Place %t741, 1 - call void @finch_str_drop(ptr %a730) - call void @finch.drop.S_ast_Type(ptr %a649) - call void @finch.drop.S_gen_StructDef(ptr %a573) - call void @finch.drop.S_ast_Type(ptr %a42) - call void @finch.drop.S_gen_Ref(ptr %a35) - ret %S.gen.Ref %t742 -endif6770: - %t743 = load ptr, ptr %a1 - %t744 = load ptr, ptr %a1 - %t745 = load %S.ast.Type, ptr %a42 - %t746 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t744, %S.ast.Type %t745) - store { ptr, i64, i64 } { ptr @.str.4394, i64 13, i64 0 }, ptr %a748 - store { ptr, i64, i64 } %t746, ptr %a749 - call void @finch_str_concat(ptr %a747, ptr %a748, ptr %a749) - store { ptr, i64, i64 } %t746, ptr %a750 - call void @finch_str_drop(ptr %a750) - %t751 = load { ptr, i64, i64 }, ptr %a747 - store { ptr, i64, i64 } %t751, ptr %a753 - store { ptr, i64, i64 } { ptr @.str.4395, i64 1, i64 0 }, ptr %a754 - call void @finch_str_concat(ptr %a752, ptr %a753, ptr %a754) - store { ptr, i64, i64 } %t751, ptr %a755 - call void @finch_str_drop(ptr %a755) - %t756 = load { ptr, i64, i64 }, ptr %a752 - %t757 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 2 - %t758 = getelementptr inbounds %S.gen.Val, ptr %t757, i32 0, i32 0 - %t759 = load { ptr, i64, i64 }, ptr %t758 - store { ptr, i64, i64 } %t756, ptr %a761 - store { ptr, i64, i64 } %t759, ptr %a762 - call void @finch_str_concat(ptr %a760, ptr %a761, ptr %a762) - store { ptr, i64, i64 } %t756, ptr %a763 - call void @finch_str_drop(ptr %a763) - %t764 = load { ptr, i64, i64 }, ptr %a760 - store { ptr, i64, i64 } %t764, ptr %a766 - store { ptr, i64, i64 } { ptr @.str.4396, i64 2, i64 0 }, ptr %a767 - call void @finch_str_concat(ptr %a765, ptr %a766, ptr %a767) - store { ptr, i64, i64 } %t764, ptr %a768 - call void @finch_str_drop(ptr %a768) - %t769 = load { ptr, i64, i64 }, ptr %a765 - %t770 = getelementptr inbounds %S.gen.StructDef, ptr %a573, i32 0, i32 3 - %t771 = load i64, ptr %a592 - %t772 = load { ptr, i64, i64 }, ptr %t770 - %t773 = extractvalue { ptr, i64, i64 } %t772, 1 - %t774 = icmp uge i64 %t771, %t773 - br i1 %t774, label %range6773, label %inrange6774 -range6773: - call void @finch_panic_index(ptr @.str.4397, i64 3763, i64 %t771, i64 %t773) + %t730 = load { ptr, i64, i64 }, ptr %a726 + %t731 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t732 = load { ptr, i64, i64 }, ptr %t731 + store { ptr, i64, i64 } %t730, ptr %a734 + store { ptr, i64, i64 } %t732, ptr %a735 + call void @finch_str_concat(ptr %a733, ptr %a734, ptr %a735) + store { ptr, i64, i64 } %t730, ptr %a736 + call void @finch_str_drop(ptr %a736) + %t737 = load { ptr, i64, i64 }, ptr %a733 + store { ptr, i64, i64 } %t737, ptr %a739 + store { ptr, i64, i64 } { ptr @.str.4589, i64 11, i64 0 }, ptr %a740 + call void @finch_str_concat(ptr %a738, ptr %a739, ptr %a740) + store { ptr, i64, i64 } %t737, ptr %a741 + call void @finch_str_drop(ptr %a741) + %t742 = load { ptr, i64, i64 }, ptr %a738 + %t743 = getelementptr inbounds %S.gen.StructDef, ptr %a695, i32 0, i32 11 + %t744 = getelementptr inbounds { ptr, i64, i64 }, ptr %t743, i32 0, i32 1 + store { ptr, i64, i64 } { ptr @.str.4590, i64 2, i64 0 }, ptr %a745 + call void @finch_str_join(ptr %a746, ptr %t743, ptr %a745) + %t747 = load { ptr, i64, i64 }, ptr %a746 + store { ptr, i64, i64 } %t742, ptr %a749 + store { ptr, i64, i64 } %t747, ptr %a750 + call void @finch_str_concat(ptr %a748, ptr %a749, ptr %a750) + store { ptr, i64, i64 } %t742, ptr %a751 + call void @finch_str_drop(ptr %a751) + store { ptr, i64, i64 } %t747, ptr %a752 + call void @finch_str_drop(ptr %a752) + %t753 = load { ptr, i64, i64 }, ptr %a748 + store { ptr, i64, i64 } %t753, ptr %a755 + store { ptr, i64, i64 } { ptr @.str.4591, i64 1, i64 0 }, ptr %a756 + call void @finch_str_concat(ptr %a754, ptr %a755, ptr %a756) + store { ptr, i64, i64 } %t753, ptr %a757 + call void @finch_str_drop(ptr %a757) + %t758 = load { ptr, i64, i64 }, ptr %a754 + call void @finch.gen.fail(ptr %t717, %S.ast.Node %t718, { ptr, i64, i64 } %t758) + store { ptr, i64, i64 } %t758, ptr %a759 + call void @finch_str_drop(ptr %a759) + br label %endif7158 +endif7158: + %t760 = getelementptr inbounds %S.gen.StructDef, ptr %a695, i32 0, i32 12 + %t761 = load i64, ptr %a714 + %t762 = load { ptr, i64, i64 }, ptr %t760 + %t763 = extractvalue { ptr, i64, i64 } %t762, 1 + %t764 = icmp uge i64 %t761, %t763 + br i1 %t764, label %range7159, label %inrange7160 +range7159: + call void @finch_panic_index(ptr @.str.4592, i64 3984, i64 %t761, i64 %t763) unreachable -inrange6774: - %t775 = extractvalue { ptr, i64, i64 } %t772, 0 - %t776 = getelementptr inbounds i64, ptr %t775, i64 %t771 - %t777 = load i64, ptr %t776 - call void @finch_str_from_int(ptr %a778, i64 %t777) - %t779 = load { ptr, i64, i64 }, ptr %a778 - store { ptr, i64, i64 } %t769, ptr %a781 - store { ptr, i64, i64 } %t779, ptr %a782 - call void @finch_str_concat(ptr %a780, ptr %a781, ptr %a782) - store { ptr, i64, i64 } %t769, ptr %a783 - call void @finch_str_drop(ptr %a783) - store { ptr, i64, i64 } %t779, ptr %a784 - call void @finch_str_drop(ptr %a784) - %t785 = load { ptr, i64, i64 }, ptr %a780 - %t786 = call { ptr, i64, i64 } @finch.gen.op(ptr %t743, { ptr, i64, i64 } %t785) - store { ptr, i64, i64 } %t785, ptr %a787 - call void @finch_str_drop(ptr %a787) +inrange7160: + %t765 = extractvalue { ptr, i64, i64 } %t762, 0 + %t766 = getelementptr inbounds %S.ast.Type, ptr %t765, i64 %t761 + %t767 = load %S.ast.Type, ptr %t766 + store %S.ast.Type %t767, ptr %a768 + call void @finch.copy.S_ast_Type(ptr %a769, ptr %a768) + %t770 = load %S.ast.Type, ptr %a769 + store %S.ast.Type %t770, ptr %a771 + %t772 = load ptr, ptr %a1 + %t773 = load %S.ast.Node, ptr %a2 + %t774 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 12 + %t775 = load i64, ptr %t774 + %t776 = add i64 %t775, 1 + %t777 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t778 = getelementptr inbounds { ptr, i64, i64 }, ptr %t777, i32 0, i32 1 + %t779 = load i64, ptr %t778 + %t780 = load %S.ast.Type, ptr %a771 + %t781 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t780) + store { ptr, i64, i64 } { ptr @.str.4593, i64 9, i64 0 }, ptr %a783 + store { ptr, i64, i64 } %t781, ptr %a784 + call void @finch_str_concat(ptr %a782, ptr %a783, ptr %a784) + store { ptr, i64, i64 } %t781, ptr %a785 + call void @finch_str_drop(ptr %a785) + %t786 = load { ptr, i64, i64 }, ptr %a782 store { ptr, i64, i64 } %t786, ptr %a788 - %t789 = load { ptr, i64, i64 }, ptr %a788 - store { ptr, i64, i64 } %t789, ptr %a790 - call void @finch_str_copy(ptr %a791, ptr %a790) - %t792 = load { ptr, i64, i64 }, ptr %a791 - %t793 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t792, 0 - %t794 = load %S.ast.Type, ptr %a649 - store %S.ast.Type %t794, ptr %a795 - call void @finch.copy.S_ast_Type(ptr %a796, ptr %a795) - %t797 = load %S.ast.Type, ptr %a796 - %t798 = insertvalue %S.gen.Val %t793, %S.ast.Type %t797, 1 - store %S.gen.Val %t798, ptr %a799 - %t800 = load ptr, ptr %a1 - %t801 = load %S.ast.Type, ptr %a649 - %t802 = call i1 @finch.gen.owning(ptr %t800, %S.ast.Type %t801) - br label %logic.from6775 -logic.from6775: - br i1 %t802, label %logic.rhs6776, label %logic.end6777 -logic.rhs6776: - %t803 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 2 - %t804 = getelementptr inbounds %S.gen.Val, ptr %t803, i32 0, i32 2 - %t805 = load i1, ptr %t804 - br label %logic.rend6778 -logic.rend6778: - br label %logic.end6777 -logic.end6777: - %t806 = phi i1 [ false, %logic.from6775 ], [ %t805, %logic.rend6778 ] - br i1 %t806, label %then6779, label %endif6781 -then6779: + store { ptr, i64, i64 } { ptr @.str.4594, i64 1, i64 0 }, ptr %a789 + call void @finch_str_concat(ptr %a787, ptr %a788, ptr %a789) + store { ptr, i64, i64 } %t786, ptr %a790 + call void @finch_str_drop(ptr %a790) + %t791 = load { ptr, i64, i64 }, ptr %a787 + %t792 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t793 = load { ptr, i64, i64 }, ptr %t792 + store { ptr, i64, i64 } %t791, ptr %a795 + store { ptr, i64, i64 } %t793, ptr %a796 + call void @finch_str_concat(ptr %a794, ptr %a795, ptr %a796) + store { ptr, i64, i64 } %t791, ptr %a797 + call void @finch_str_drop(ptr %a797) + %t798 = load { ptr, i64, i64 }, ptr %a794 + store { ptr, i64, i64 } %t798, ptr %a800 + store { ptr, i64, i64 } { ptr @.str.4595, i64 4, i64 0 }, ptr %a801 + call void @finch_str_concat(ptr %a799, ptr %a800, ptr %a801) + store { ptr, i64, i64 } %t798, ptr %a802 + call void @finch_str_drop(ptr %a802) + %t803 = load { ptr, i64, i64 }, ptr %a799 + call void @finch.gen.noteRef(ptr %t772, %S.ast.Node %t773, i64 %t776, i64 %t779, { ptr, i64, i64 } %t803, { ptr, i64, i64 } { ptr @.str.4596, i64 0, i64 0 }, i64 0, i64 0) + store { ptr, i64, i64 } %t803, ptr %a804 + call void @finch_str_drop(ptr %a804) + %t805 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 0 + %t806 = load i1, ptr %t805 + br i1 %t806, label %then7161, label %endif7163 +then7161: %t807 = load ptr, ptr %a1 - %t808 = load { ptr, i64, i64 }, ptr %a788 - %t809 = load %S.ast.Type, ptr %a649 - %t810 = call { ptr, i64, i64 } @finch.gen.copyValue(ptr %t807, { ptr, i64, i64 } %t808, %S.ast.Type %t809) - %t811 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t810, 0 - %t812 = load %S.ast.Type, ptr %a649 - store %S.ast.Type %t812, ptr %a813 - call void @finch.copy.S_ast_Type(ptr %a814, ptr %a813) - %t815 = load %S.ast.Type, ptr %a814 - %t816 = insertvalue %S.gen.Val %t811, %S.ast.Type %t815, 1 - %t817 = insertvalue %S.gen.Val %t816, i1 true, 2 - %t818 = load %S.gen.Val, ptr %a799 - store %S.gen.Val %t817, ptr %a799 - store %S.gen.Val %t818, ptr %a819 - call void @finch.drop.S_gen_Val(ptr %a819) - br label %endif6781 -endif6781: - %t820 = load ptr, ptr %a1 - %t821 = getelementptr inbounds %S.gen.Ref, ptr %a35, i32 0, i32 2 - %t822 = load %S.gen.Val, ptr %t821 - call void @finch.gen.release(ptr %t820, %S.gen.Val %t822) - %t823 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 - %t824 = load %S.gen.Val, ptr %a799 - store %S.gen.Val %t824, ptr %a825 - call void @finch.copy.S_gen_Val(ptr %a826, ptr %a825) - %t827 = load %S.gen.Val, ptr %a826 - %t828 = insertvalue %S.gen.Ref %t823, %S.gen.Val %t827, 2 - call void @finch.drop.S_gen_Val(ptr %a799) - call void @finch_str_drop(ptr %a788) - call void @finch.drop.S_ast_Type(ptr %a649) - call void @finch.drop.S_gen_StructDef(ptr %a573) - call void @finch.drop.S_ast_Type(ptr %a42) - call void @finch.drop.S_gen_Ref(ptr %a35) - ret %S.gen.Ref %t828 + %t808 = load ptr, ptr %a1 + %t809 = load %S.ast.Type, ptr %a164 + %t810 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t808, %S.ast.Type %t809) + store { ptr, i64, i64 } { ptr @.str.4597, i64 23, i64 0 }, ptr %a812 + store { ptr, i64, i64 } %t810, ptr %a813 + call void @finch_str_concat(ptr %a811, ptr %a812, ptr %a813) + store { ptr, i64, i64 } %t810, ptr %a814 + call void @finch_str_drop(ptr %a814) + %t815 = load { ptr, i64, i64 }, ptr %a811 + store { ptr, i64, i64 } %t815, ptr %a817 + store { ptr, i64, i64 } { ptr @.str.4598, i64 6, i64 0 }, ptr %a818 + call void @finch_str_concat(ptr %a816, ptr %a817, ptr %a818) + store { ptr, i64, i64 } %t815, ptr %a819 + call void @finch_str_drop(ptr %a819) + %t820 = load { ptr, i64, i64 }, ptr %a816 + %t821 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 1 + %t822 = getelementptr inbounds %S.gen.Place, ptr %t821, i32 0, i32 0 + %t823 = load { ptr, i64, i64 }, ptr %t822 + store { ptr, i64, i64 } %t820, ptr %a825 + store { ptr, i64, i64 } %t823, ptr %a826 + call void @finch_str_concat(ptr %a824, ptr %a825, ptr %a826) + store { ptr, i64, i64 } %t820, ptr %a827 + call void @finch_str_drop(ptr %a827) + %t828 = load { ptr, i64, i64 }, ptr %a824 + store { ptr, i64, i64 } %t828, ptr %a830 + store { ptr, i64, i64 } { ptr @.str.4599, i64 13, i64 0 }, ptr %a831 + call void @finch_str_concat(ptr %a829, ptr %a830, ptr %a831) + store { ptr, i64, i64 } %t828, ptr %a832 + call void @finch_str_drop(ptr %a832) + %t833 = load { ptr, i64, i64 }, ptr %a829 + %t834 = getelementptr inbounds %S.gen.StructDef, ptr %a695, i32 0, i32 3 + %t835 = load i64, ptr %a714 + %t836 = load { ptr, i64, i64 }, ptr %t834 + %t837 = extractvalue { ptr, i64, i64 } %t836, 1 + %t838 = icmp uge i64 %t835, %t837 + br i1 %t838, label %range7164, label %inrange7165 +range7164: + call void @finch_panic_index(ptr @.str.4600, i64 3987, i64 %t835, i64 %t837) + unreachable +inrange7165: + %t839 = extractvalue { ptr, i64, i64 } %t836, 0 + %t840 = getelementptr inbounds i64, ptr %t839, i64 %t835 + %t841 = load i64, ptr %t840 + call void @finch_str_from_int(ptr %a842, i64 %t841) + %t843 = load { ptr, i64, i64 }, ptr %a842 + store { ptr, i64, i64 } %t833, ptr %a845 + store { ptr, i64, i64 } %t843, ptr %a846 + call void @finch_str_concat(ptr %a844, ptr %a845, ptr %a846) + store { ptr, i64, i64 } %t833, ptr %a847 + call void @finch_str_drop(ptr %a847) + store { ptr, i64, i64 } %t843, ptr %a848 + call void @finch_str_drop(ptr %a848) + %t849 = load { ptr, i64, i64 }, ptr %a844 + %t850 = call { ptr, i64, i64 } @finch.gen.op(ptr %t807, { ptr, i64, i64 } %t849) + store { ptr, i64, i64 } %t849, ptr %a851 + call void @finch_str_drop(ptr %a851) + store { ptr, i64, i64 } %t850, ptr %a852 + %t853 = insertvalue %S.gen.Ref zeroinitializer, i1 true, 0 + %t854 = load { ptr, i64, i64 }, ptr %a852 + store { ptr, i64, i64 } %t854, ptr %a855 + call void @finch_str_copy(ptr %a856, ptr %a855) + %t857 = load { ptr, i64, i64 }, ptr %a856 + %t858 = insertvalue %S.gen.Place zeroinitializer, { ptr, i64, i64 } %t857, 0 + %t859 = load %S.ast.Type, ptr %a771 + store %S.ast.Type %t859, ptr %a860 + call void @finch.copy.S_ast_Type(ptr %a861, ptr %a860) + %t862 = load %S.ast.Type, ptr %a861 + %t863 = insertvalue %S.gen.Place %t858, %S.ast.Type %t862, 1 + %t864 = insertvalue %S.gen.Ref %t853, %S.gen.Place %t863, 1 + call void @finch_str_drop(ptr %a852) + call void @finch.drop.S_ast_Type(ptr %a771) + call void @finch.drop.S_gen_StructDef(ptr %a695) + call void @finch.drop.S_ast_Type(ptr %a164) + call void @finch.drop.S_gen_Ref(ptr %a157) + ret %S.gen.Ref %t864 +endif7163: + %t865 = load ptr, ptr %a1 + %t866 = load ptr, ptr %a1 + %t867 = load %S.ast.Type, ptr %a164 + %t868 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t866, %S.ast.Type %t867) + store { ptr, i64, i64 } { ptr @.str.4601, i64 13, i64 0 }, ptr %a870 + store { ptr, i64, i64 } %t868, ptr %a871 + call void @finch_str_concat(ptr %a869, ptr %a870, ptr %a871) + store { ptr, i64, i64 } %t868, ptr %a872 + call void @finch_str_drop(ptr %a872) + %t873 = load { ptr, i64, i64 }, ptr %a869 + store { ptr, i64, i64 } %t873, ptr %a875 + store { ptr, i64, i64 } { ptr @.str.4602, i64 1, i64 0 }, ptr %a876 + call void @finch_str_concat(ptr %a874, ptr %a875, ptr %a876) + store { ptr, i64, i64 } %t873, ptr %a877 + call void @finch_str_drop(ptr %a877) + %t878 = load { ptr, i64, i64 }, ptr %a874 + %t879 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 2 + %t880 = getelementptr inbounds %S.gen.Val, ptr %t879, i32 0, i32 0 + %t881 = load { ptr, i64, i64 }, ptr %t880 + store { ptr, i64, i64 } %t878, ptr %a883 + store { ptr, i64, i64 } %t881, ptr %a884 + call void @finch_str_concat(ptr %a882, ptr %a883, ptr %a884) + store { ptr, i64, i64 } %t878, ptr %a885 + call void @finch_str_drop(ptr %a885) + %t886 = load { ptr, i64, i64 }, ptr %a882 + store { ptr, i64, i64 } %t886, ptr %a888 + store { ptr, i64, i64 } { ptr @.str.4603, i64 2, i64 0 }, ptr %a889 + call void @finch_str_concat(ptr %a887, ptr %a888, ptr %a889) + store { ptr, i64, i64 } %t886, ptr %a890 + call void @finch_str_drop(ptr %a890) + %t891 = load { ptr, i64, i64 }, ptr %a887 + %t892 = getelementptr inbounds %S.gen.StructDef, ptr %a695, i32 0, i32 3 + %t893 = load i64, ptr %a714 + %t894 = load { ptr, i64, i64 }, ptr %t892 + %t895 = extractvalue { ptr, i64, i64 } %t894, 1 + %t896 = icmp uge i64 %t893, %t895 + br i1 %t896, label %range7166, label %inrange7167 +range7166: + call void @finch_panic_index(ptr @.str.4604, i64 3990, i64 %t893, i64 %t895) + unreachable +inrange7167: + %t897 = extractvalue { ptr, i64, i64 } %t894, 0 + %t898 = getelementptr inbounds i64, ptr %t897, i64 %t893 + %t899 = load i64, ptr %t898 + call void @finch_str_from_int(ptr %a900, i64 %t899) + %t901 = load { ptr, i64, i64 }, ptr %a900 + store { ptr, i64, i64 } %t891, ptr %a903 + store { ptr, i64, i64 } %t901, ptr %a904 + call void @finch_str_concat(ptr %a902, ptr %a903, ptr %a904) + store { ptr, i64, i64 } %t891, ptr %a905 + call void @finch_str_drop(ptr %a905) + store { ptr, i64, i64 } %t901, ptr %a906 + call void @finch_str_drop(ptr %a906) + %t907 = load { ptr, i64, i64 }, ptr %a902 + %t908 = call { ptr, i64, i64 } @finch.gen.op(ptr %t865, { ptr, i64, i64 } %t907) + store { ptr, i64, i64 } %t907, ptr %a909 + call void @finch_str_drop(ptr %a909) + store { ptr, i64, i64 } %t908, ptr %a910 + %t911 = load { ptr, i64, i64 }, ptr %a910 + store { ptr, i64, i64 } %t911, ptr %a912 + call void @finch_str_copy(ptr %a913, ptr %a912) + %t914 = load { ptr, i64, i64 }, ptr %a913 + %t915 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t914, 0 + %t916 = load %S.ast.Type, ptr %a771 + store %S.ast.Type %t916, ptr %a917 + call void @finch.copy.S_ast_Type(ptr %a918, ptr %a917) + %t919 = load %S.ast.Type, ptr %a918 + %t920 = insertvalue %S.gen.Val %t915, %S.ast.Type %t919, 1 + store %S.gen.Val %t920, ptr %a921 + %t922 = load ptr, ptr %a1 + %t923 = load %S.ast.Type, ptr %a771 + %t924 = call i1 @finch.gen.owning(ptr %t922, %S.ast.Type %t923) + br label %logic.from7168 +logic.from7168: + br i1 %t924, label %logic.rhs7169, label %logic.end7170 +logic.rhs7169: + %t925 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 2 + %t926 = getelementptr inbounds %S.gen.Val, ptr %t925, i32 0, i32 2 + %t927 = load i1, ptr %t926 + br label %logic.rend7171 +logic.rend7171: + br label %logic.end7170 +logic.end7170: + %t928 = phi i1 [ false, %logic.from7168 ], [ %t927, %logic.rend7171 ] + br i1 %t928, label %then7172, label %endif7174 +then7172: + %t929 = load ptr, ptr %a1 + %t930 = load { ptr, i64, i64 }, ptr %a910 + %t931 = load %S.ast.Type, ptr %a771 + %t932 = call { ptr, i64, i64 } @finch.gen.copyValue(ptr %t929, { ptr, i64, i64 } %t930, %S.ast.Type %t931) + %t933 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t932, 0 + %t934 = load %S.ast.Type, ptr %a771 + store %S.ast.Type %t934, ptr %a935 + call void @finch.copy.S_ast_Type(ptr %a936, ptr %a935) + %t937 = load %S.ast.Type, ptr %a936 + %t938 = insertvalue %S.gen.Val %t933, %S.ast.Type %t937, 1 + %t939 = insertvalue %S.gen.Val %t938, i1 true, 2 + %t940 = load %S.gen.Val, ptr %a921 + store %S.gen.Val %t939, ptr %a921 + store %S.gen.Val %t940, ptr %a941 + call void @finch.drop.S_gen_Val(ptr %a941) + br label %endif7174 +endif7174: + %t942 = load ptr, ptr %a1 + %t943 = getelementptr inbounds %S.gen.Ref, ptr %a157, i32 0, i32 2 + %t944 = load %S.gen.Val, ptr %t943 + call void @finch.gen.release(ptr %t942, %S.gen.Val %t944) + %t945 = insertvalue %S.gen.Ref zeroinitializer, i1 false, 0 + %t946 = load %S.gen.Val, ptr %a921 + store %S.gen.Val %t946, ptr %a947 + call void @finch.copy.S_gen_Val(ptr %a948, ptr %a947) + %t949 = load %S.gen.Val, ptr %a948 + %t950 = insertvalue %S.gen.Ref %t945, %S.gen.Val %t949, 2 + call void @finch.drop.S_gen_Val(ptr %a921) + call void @finch_str_drop(ptr %a910) + call void @finch.drop.S_ast_Type(ptr %a771) + call void @finch.drop.S_gen_StructDef(ptr %a695) + call void @finch.drop.S_ast_Type(ptr %a164) + call void @finch.drop.S_gen_Ref(ptr %a157) + ret %S.gen.Ref %t950 } define internal %S.gen.Ref @finch.gen.index(ptr %p0, %S.ast.Node %p1, i1 %p2) { @@ -68080,11 +72013,11 @@ entry: %t6 = load { ptr, i64, i64 }, ptr %t5 %t7 = extractvalue { ptr, i64, i64 } %t6, 1 %t8 = icmp uge i64 0, %t7 - br i1 %t8, label %range6782, label %inrange6783 -range6782: - call void @finch_panic_index(ptr @.str.4398, i64 3773, i64 0, i64 %t7) + br i1 %t8, label %range7175, label %inrange7176 +range7175: + call void @finch_panic_index(ptr @.str.4605, i64 4000, i64 0, i64 %t7) unreachable -inrange6783: +inrange7176: %t9 = extractvalue { ptr, i64, i64 } %t6, 0 %t10 = getelementptr inbounds %S.ast.Node, ptr %t9, i64 0 %t11 = load %S.ast.Node, ptr %t10 @@ -68093,11 +72026,11 @@ inrange6783: store %S.gen.Ref %t13, ptr %a14 %t15 = load ptr, ptr %a1 %t16 = icmp eq ptr %t15, null - br i1 %t16, label %panic6784, label %ok6785 -panic6784: - call void @finch_panic(ptr @.str.4399, i64 3774, ptr @.str.4400) + br i1 %t16, label %panic7177, label %ok7178 +panic7177: + call void @finch_panic(ptr @.str.4606, i64 4001, ptr @.str.4607) unreachable -ok6785: +ok7178: %t17 = getelementptr inbounds %S.gen.Gen, ptr %t15, i32 0, i32 11 %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %t17, i32 0, i32 1 %t19 = load i64, ptr %t18 @@ -68105,14 +72038,14 @@ ok6785: %t21 = getelementptr inbounds %S.gen.Ref, ptr %a14, i32 0, i32 0 %t22 = load i1, ptr %t21 %t23 = xor i1 %t22, true - br i1 %t23, label %then6786, label %endif6788 -then6786: + br i1 %t23, label %then7179, label %endif7181 +then7179: %t24 = load ptr, ptr %a1 %t25 = getelementptr inbounds %S.gen.Ref, ptr %a14, i32 0, i32 2 %t26 = load %S.gen.Val, ptr %t25 call void @finch.gen.hold(ptr %t24, %S.gen.Val %t26) - br label %endif6788 -endif6788: + br label %endif7181 +endif7181: %t27 = load ptr, ptr %a1 %t28 = load %S.ast.Node, ptr %a2 %t29 = load %S.gen.Ref, ptr %a14 @@ -68312,8 +72245,8 @@ entry: store %S.ast.Type %t10, ptr %a11 %t12 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 0 %t13 = load i1, ptr %t12 - br i1 %t13, label %then6789, label %endif6791 -then6789: + br i1 %t13, label %then7182, label %endif7184 +then7182: %t14 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 1 %t15 = getelementptr inbounds %S.gen.Place, ptr %t14, i32 0, i32 1 %t16 = load %S.ast.Type, ptr %t15 @@ -68324,16 +72257,16 @@ then6789: store %S.ast.Type %t19, ptr %a11 store %S.ast.Type %t20, ptr %a21 call void @finch.drop.S_ast_Type(ptr %a21) - br label %endif6791 -endif6791: + br label %endif7184 +endif7184: %t22 = getelementptr inbounds %S.ast.Type, ptr %a11, i32 0, i32 0 %t23 = load { ptr, i64, i64 }, ptr %t22 store { ptr, i64, i64 } %t23, ptr %a24 - store { ptr, i64, i64 } { ptr @.str.4401, i64 3, i64 0 }, ptr %a25 + store { ptr, i64, i64 } { ptr @.str.4608, i64 3, i64 0 }, ptr %a25 %t26 = call i32 @finch_str_eq(ptr %a24, ptr %a25) %t27 = icmp ne i32 %t26, 0 - br i1 %t27, label %then6792, label %endif6794 -then6792: + br i1 %t27, label %then7185, label %endif7187 +then7185: %t28 = load ptr, ptr %a1 %t29 = load %S.ast.Node, ptr %a2 %t30 = load %S.gen.Ref, ptr %a3 @@ -68342,36 +72275,36 @@ then6792: %t33 = call %S.gen.Ref @finch.gen.mapIndex(ptr %t28, %S.ast.Node %t29, %S.gen.Ref %t30, %S.ast.Type %t31, i1 %t32) call void @finch.drop.S_ast_Type(ptr %a11) ret %S.gen.Ref %t33 -endif6794: +endif7187: %t34 = load ptr, ptr %a1 %t35 = load ptr, ptr %a1 %t36 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t37 = load { ptr, i64, i64 }, ptr %t36 %t38 = extractvalue { ptr, i64, i64 } %t37, 1 %t39 = icmp uge i64 1, %t38 - br i1 %t39, label %range6795, label %inrange6796 -range6795: - call void @finch_panic_index(ptr @.str.4402, i64 3791, i64 1, i64 %t38) + br i1 %t39, label %range7188, label %inrange7189 +range7188: + call void @finch_panic_index(ptr @.str.4609, i64 4018, i64 1, i64 %t38) unreachable -inrange6796: +inrange7189: %t40 = extractvalue { ptr, i64, i64 } %t37, 0 %t41 = getelementptr inbounds %S.ast.Node, ptr %t40, i64 1 %t42 = load %S.ast.Node, ptr %t41 %t43 = call %S.gen.Val @finch.gen.expr(ptr %t35, %S.ast.Node %t42) - %t44 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4403, i64 3, i64 0 }) + %t44 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4610, i64 3, i64 0 }) %t45 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t46 = load { ptr, i64, i64 }, ptr %t45 %t47 = extractvalue { ptr, i64, i64 } %t46, 1 %t48 = icmp uge i64 1, %t47 - br i1 %t48, label %range6797, label %inrange6798 -range6797: - call void @finch_panic_index(ptr @.str.4404, i64 3791, i64 1, i64 %t47) + br i1 %t48, label %range7190, label %inrange7191 +range7190: + call void @finch_panic_index(ptr @.str.4611, i64 4018, i64 1, i64 %t47) unreachable -inrange6798: +inrange7191: %t49 = extractvalue { ptr, i64, i64 } %t46, 0 %t50 = getelementptr inbounds %S.ast.Node, ptr %t49, i64 1 %t51 = load %S.ast.Node, ptr %t50 - %t52 = call %S.gen.Val @finch.gen.coerce(ptr %t34, %S.gen.Val %t43, %S.ast.Type %t44, %S.ast.Node %t51, { ptr, i64, i64 } { ptr @.str.4405, i64 8, i64 0 }) + %t52 = call %S.gen.Val @finch.gen.coerce(ptr %t34, %S.gen.Val %t43, %S.ast.Type %t44, %S.ast.Node %t51, { ptr, i64, i64 } { ptr @.str.4612, i64 8, i64 0 }) store %S.gen.Val %t43, ptr %a53 call void @finch.drop.S_gen_Val(ptr %a53) store %S.ast.Type %t44, ptr %a54 @@ -68386,16 +72319,16 @@ inrange6798: %t61 = getelementptr inbounds %S.ast.Type, ptr %a11, i32 0, i32 0 %t62 = load { ptr, i64, i64 }, ptr %t61 store { ptr, i64, i64 } %t62, ptr %a63 - store { ptr, i64, i64 } { ptr @.str.4406, i64 5, i64 0 }, ptr %a64 + store { ptr, i64, i64 } { ptr @.str.4613, i64 5, i64 0 }, ptr %a64 %t65 = call i32 @finch_str_eq(ptr %a63, ptr %a64) %t66 = icmp ne i32 %t65, 0 - br i1 %t66, label %then6799, label %endif6801 -then6799: - store { ptr, i64, i64 } { ptr @.str.4407, i64 0, i64 0 }, ptr %a67 + br i1 %t66, label %then7192, label %endif7194 +then7192: + store { ptr, i64, i64 } { ptr @.str.4614, i64 0, i64 0 }, ptr %a67 %t68 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 0 %t69 = load i1, ptr %t68 - br i1 %t69, label %then6802, label %else6803 -then6802: + br i1 %t69, label %then7195, label %else7196 +then7195: %t70 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 1 %t71 = getelementptr inbounds %S.gen.Place, ptr %t70, i32 0, i32 0 %t72 = load { ptr, i64, i64 }, ptr %t71 @@ -68406,8 +72339,8 @@ then6802: store { ptr, i64, i64 } %t75, ptr %a67 store { ptr, i64, i64 } %t76, ptr %a77 call void @finch_str_drop(ptr %a77) - br label %endif6804 -else6803: + br label %endif7197 +else7196: %t78 = load ptr, ptr %a1 %t79 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 2 %t80 = load %S.gen.Val, ptr %t79 @@ -68416,8 +72349,8 @@ else6803: store { ptr, i64, i64 } %t81, ptr %a67 store { ptr, i64, i64 } %t82, ptr %a83 call void @finch_str_drop(ptr %a83) - br label %endif6804 -endif6804: + br label %endif7197 +endif7197: %t84 = load ptr, ptr %a1 %t85 = load { ptr, i64, i64 }, ptr %a60 %t86 = getelementptr inbounds %S.ast.Type, ptr %a11, i32 0, i32 4 @@ -68432,14 +72365,14 @@ endif6804: %t93 = load ptr, ptr %a1 %t94 = load %S.ast.Type, ptr %a11 %t95 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t93, %S.ast.Type %t94) - store { ptr, i64, i64 } { ptr @.str.4408, i64 23, i64 0 }, ptr %a97 + store { ptr, i64, i64 } { ptr @.str.4615, i64 23, i64 0 }, ptr %a97 store { ptr, i64, i64 } %t95, ptr %a98 call void @finch_str_concat(ptr %a96, ptr %a97, ptr %a98) store { ptr, i64, i64 } %t95, ptr %a99 call void @finch_str_drop(ptr %a99) %t100 = load { ptr, i64, i64 }, ptr %a96 store { ptr, i64, i64 } %t100, ptr %a102 - store { ptr, i64, i64 } { ptr @.str.4409, i64 6, i64 0 }, ptr %a103 + store { ptr, i64, i64 } { ptr @.str.4616, i64 6, i64 0 }, ptr %a103 call void @finch_str_concat(ptr %a101, ptr %a102, ptr %a103) store { ptr, i64, i64 } %t100, ptr %a104 call void @finch_str_drop(ptr %a104) @@ -68452,7 +72385,7 @@ endif6804: call void @finch_str_drop(ptr %a110) %t111 = load { ptr, i64, i64 }, ptr %a107 store { ptr, i64, i64 } %t111, ptr %a113 - store { ptr, i64, i64 } { ptr @.str.4410, i64 13, i64 0 }, ptr %a114 + store { ptr, i64, i64 } { ptr @.str.4617, i64 13, i64 0 }, ptr %a114 call void @finch_str_concat(ptr %a112, ptr %a113, ptr %a114) store { ptr, i64, i64 } %t111, ptr %a115 call void @finch_str_drop(ptr %a115) @@ -68478,11 +72411,11 @@ endif6804: %t133 = load { ptr, i64, i64 }, ptr %t132 %t134 = extractvalue { ptr, i64, i64 } %t133, 1 %t135 = icmp uge i64 0, %t134 - br i1 %t135, label %range6805, label %inrange6806 -range6805: - call void @finch_panic_index(ptr @.str.4411, i64 3801, i64 0, i64 %t134) + br i1 %t135, label %range7198, label %inrange7199 +range7198: + call void @finch_panic_index(ptr @.str.4618, i64 4028, i64 0, i64 %t134) unreachable -inrange6806: +inrange7199: %t136 = extractvalue { ptr, i64, i64 } %t133, 0 %t137 = getelementptr inbounds %S.ast.Type, ptr %t136, i64 0 %t138 = load %S.ast.Type, ptr %t137 @@ -68496,26 +72429,26 @@ inrange6806: call void @finch_str_drop(ptr %a60) call void @finch.drop.S_ast_Type(ptr %a11) ret %S.gen.Ref %t143 -endif6801: +endif7194: %t144 = getelementptr inbounds %S.ast.Type, ptr %a11, i32 0, i32 0 %t145 = load { ptr, i64, i64 }, ptr %t144 store { ptr, i64, i64 } %t145, ptr %a146 - store { ptr, i64, i64 } { ptr @.str.4412, i64 3, i64 0 }, ptr %a147 + store { ptr, i64, i64 } { ptr @.str.4619, i64 3, i64 0 }, ptr %a147 %t148 = call i32 @finch_str_eq(ptr %a146, ptr %a147) %t149 = icmp ne i32 %t148, 0 - br i1 %t149, label %then6807, label %endif6809 -then6807: + br i1 %t149, label %then7200, label %endif7202 +then7200: %t150 = getelementptr inbounds %S.ast.Type, ptr %a11, i32 0, i32 1 %t151 = getelementptr inbounds { ptr, i64, i64 }, ptr %t150, i32 0, i32 1 %t152 = load i64, ptr %t151 %t153 = icmp eq i64 %t152, 0 - br i1 %t153, label %then6810, label %endif6812 -then6810: + br i1 %t153, label %then7203, label %endif7205 +then7203: %t154 = load ptr, ptr %a1 %t155 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t154, %S.ast.Node %t155, { ptr, i64, i64 } { ptr @.str.4413, i64 57, i64 0 }) - br label %endif6812 -endif6812: + call void @finch.gen.fail(ptr %t154, %S.ast.Node %t155, { ptr, i64, i64 } { ptr @.str.4620, i64 57, i64 0 }) + br label %endif7205 +endif7205: %t156 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 2 %t157 = getelementptr inbounds %S.gen.Val, ptr %t156, i32 0, i32 0 %t158 = load { ptr, i64, i64 }, ptr %t157 @@ -68525,28 +72458,28 @@ endif6812: store { ptr, i64, i64 } %t161, ptr %a162 %t163 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 0 %t164 = load i1, ptr %t163 - br i1 %t164, label %then6813, label %endif6815 -then6813: + br i1 %t164, label %then7206, label %endif7208 +then7206: %t165 = load ptr, ptr %a1 %t166 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 1 %t167 = getelementptr inbounds %S.gen.Place, ptr %t166, i32 0, i32 0 %t168 = load { ptr, i64, i64 }, ptr %t167 - %t169 = call { ptr, i64, i64 } @finch.gen.load(ptr %t165, { ptr, i64, i64 } { ptr @.str.4414, i64 3, i64 0 }, { ptr, i64, i64 } %t168) + %t169 = call { ptr, i64, i64 } @finch.gen.load(ptr %t165, { ptr, i64, i64 } { ptr @.str.4621, i64 3, i64 0 }, { ptr, i64, i64 } %t168) %t170 = load { ptr, i64, i64 }, ptr %a162 store { ptr, i64, i64 } %t169, ptr %a162 store { ptr, i64, i64 } %t170, ptr %a171 call void @finch_str_drop(ptr %a171) - br label %endif6815 -endif6815: + br label %endif7208 +endif7208: %t172 = getelementptr inbounds %S.ast.Type, ptr %a11, i32 0, i32 1 %t173 = load { ptr, i64, i64 }, ptr %t172 %t174 = extractvalue { ptr, i64, i64 } %t173, 1 %t175 = icmp uge i64 0, %t174 - br i1 %t175, label %range6816, label %inrange6817 -range6816: - call void @finch_panic_index(ptr @.str.4415, i64 3811, i64 0, i64 %t174) + br i1 %t175, label %range7209, label %inrange7210 +range7209: + call void @finch_panic_index(ptr @.str.4622, i64 4038, i64 0, i64 %t174) unreachable -inrange6817: +inrange7210: %t176 = extractvalue { ptr, i64, i64 } %t173, 0 %t177 = getelementptr inbounds %S.ast.Type, ptr %t176, i64 0 %t178 = load %S.ast.Type, ptr %t177 @@ -68559,14 +72492,14 @@ inrange6817: %t185 = load ptr, ptr %a1 %t186 = load %S.ast.Type, ptr %a182 %t187 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t185, %S.ast.Type %t186) - store { ptr, i64, i64 } { ptr @.str.4416, i64 23, i64 0 }, ptr %a189 + store { ptr, i64, i64 } { ptr @.str.4623, i64 23, i64 0 }, ptr %a189 store { ptr, i64, i64 } %t187, ptr %a190 call void @finch_str_concat(ptr %a188, ptr %a189, ptr %a190) store { ptr, i64, i64 } %t187, ptr %a191 call void @finch_str_drop(ptr %a191) %t192 = load { ptr, i64, i64 }, ptr %a188 store { ptr, i64, i64 } %t192, ptr %a194 - store { ptr, i64, i64 } { ptr @.str.4417, i64 6, i64 0 }, ptr %a195 + store { ptr, i64, i64 } { ptr @.str.4624, i64 6, i64 0 }, ptr %a195 call void @finch_str_concat(ptr %a193, ptr %a194, ptr %a195) store { ptr, i64, i64 } %t192, ptr %a196 call void @finch_str_drop(ptr %a196) @@ -68579,7 +72512,7 @@ inrange6817: call void @finch_str_drop(ptr %a202) %t203 = load { ptr, i64, i64 }, ptr %a199 store { ptr, i64, i64 } %t203, ptr %a205 - store { ptr, i64, i64 } { ptr @.str.4418, i64 6, i64 0 }, ptr %a206 + store { ptr, i64, i64 } { ptr @.str.4625, i64 6, i64 0 }, ptr %a206 call void @finch_str_concat(ptr %a204, ptr %a205, ptr %a206) store { ptr, i64, i64 } %t203, ptr %a207 call void @finch_str_drop(ptr %a207) @@ -68606,35 +72539,35 @@ inrange6817: call void @finch_str_drop(ptr %a60) call void @finch.drop.S_ast_Type(ptr %a11) ret %S.gen.Ref %t223 -endif6809: +endif7202: %t224 = getelementptr inbounds %S.ast.Type, ptr %a11, i32 0, i32 0 %t225 = load { ptr, i64, i64 }, ptr %t224 store { ptr, i64, i64 } %t225, ptr %a226 - store { ptr, i64, i64 } { ptr @.str.4419, i64 5, i64 0 }, ptr %a227 + store { ptr, i64, i64 } { ptr @.str.4626, i64 5, i64 0 }, ptr %a227 %t228 = call i32 @finch_str_eq(ptr %a226, ptr %a227) %t229 = icmp eq i32 %t228, 0 - br label %logic.from6818 -logic.from6818: - br i1 %t229, label %logic.rhs6819, label %logic.end6820 -logic.rhs6819: + br label %logic.from7211 +logic.from7211: + br i1 %t229, label %logic.rhs7212, label %logic.end7213 +logic.rhs7212: %t230 = getelementptr inbounds %S.ast.Type, ptr %a11, i32 0, i32 0 %t231 = load { ptr, i64, i64 }, ptr %t230 store { ptr, i64, i64 } %t231, ptr %a232 - store { ptr, i64, i64 } { ptr @.str.4420, i64 3, i64 0 }, ptr %a233 + store { ptr, i64, i64 } { ptr @.str.4627, i64 3, i64 0 }, ptr %a233 %t234 = call i32 @finch_str_eq(ptr %a232, ptr %a233) %t235 = icmp eq i32 %t234, 0 - br label %logic.rend6821 -logic.rend6821: - br label %logic.end6820 -logic.end6820: - %t236 = phi i1 [ false, %logic.from6818 ], [ %t235, %logic.rend6821 ] - br i1 %t236, label %then6822, label %endif6824 -then6822: + br label %logic.rend7214 +logic.rend7214: + br label %logic.end7213 +logic.end7213: + %t236 = phi i1 [ false, %logic.from7211 ], [ %t235, %logic.rend7214 ] + br i1 %t236, label %then7215, label %endif7217 +then7215: %t237 = load ptr, ptr %a1 %t238 = load %S.ast.Node, ptr %a2 %t239 = load %S.ast.Type, ptr %a11 %t240 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t239) - store { ptr, i64, i64 } { ptr @.str.4421, i64 46, i64 0 }, ptr %a242 + store { ptr, i64, i64 } { ptr @.str.4628, i64 46, i64 0 }, ptr %a242 store { ptr, i64, i64 } %t240, ptr %a243 call void @finch_str_concat(ptr %a241, ptr %a242, ptr %a243) store { ptr, i64, i64 } %t240, ptr %a244 @@ -68643,27 +72576,27 @@ then6822: call void @finch.gen.fail(ptr %t237, %S.ast.Node %t238, { ptr, i64, i64 } %t245) store { ptr, i64, i64 } %t245, ptr %a246 call void @finch_str_drop(ptr %a246) - br label %endif6824 -endif6824: - %t247 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4422, i64 4, i64 0 }) + br label %endif7217 +endif7217: + %t247 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4629, i64 4, i64 0 }) store %S.ast.Type %t247, ptr %a248 %t249 = getelementptr inbounds %S.ast.Type, ptr %a11, i32 0, i32 0 %t250 = load { ptr, i64, i64 }, ptr %t249 store { ptr, i64, i64 } %t250, ptr %a251 - store { ptr, i64, i64 } { ptr @.str.4423, i64 5, i64 0 }, ptr %a252 + store { ptr, i64, i64 } { ptr @.str.4630, i64 5, i64 0 }, ptr %a252 %t253 = call i32 @finch_str_eq(ptr %a251, ptr %a252) %t254 = icmp ne i32 %t253, 0 - br i1 %t254, label %then6825, label %endif6827 -then6825: + br i1 %t254, label %then7218, label %endif7220 +then7218: %t255 = getelementptr inbounds %S.ast.Type, ptr %a11, i32 0, i32 1 %t256 = load { ptr, i64, i64 }, ptr %t255 %t257 = extractvalue { ptr, i64, i64 } %t256, 1 %t258 = icmp uge i64 0, %t257 - br i1 %t258, label %range6828, label %inrange6829 -range6828: - call void @finch_panic_index(ptr @.str.4424, i64 3819, i64 0, i64 %t257) + br i1 %t258, label %range7221, label %inrange7222 +range7221: + call void @finch_panic_index(ptr @.str.4631, i64 4046, i64 0, i64 %t257) unreachable -inrange6829: +inrange7222: %t259 = extractvalue { ptr, i64, i64 } %t256, 0 %t260 = getelementptr inbounds %S.ast.Type, ptr %t259, i64 0 %t261 = load %S.ast.Type, ptr %t260 @@ -68674,46 +72607,46 @@ inrange6829: store %S.ast.Type %t264, ptr %a248 store %S.ast.Type %t265, ptr %a266 call void @finch.drop.S_ast_Type(ptr %a266) - br label %endif6827 -endif6827: + br label %endif7220 +endif7220: %t267 = getelementptr inbounds %S.ast.Type, ptr %a11, i32 0, i32 0 %t268 = load { ptr, i64, i64 }, ptr %t267 store { ptr, i64, i64 } %t268, ptr %a269 - store { ptr, i64, i64 } { ptr @.str.4425, i64 3, i64 0 }, ptr %a270 + store { ptr, i64, i64 } { ptr @.str.4632, i64 3, i64 0 }, ptr %a270 %t271 = call i32 @finch_str_eq(ptr %a269, ptr %a270) %t272 = icmp ne i32 %t271, 0 - br label %logic.from6830 -logic.from6830: - br i1 %t272, label %logic.rhs6831, label %logic.end6832 -logic.rhs6831: + br label %logic.from7223 +logic.from7223: + br i1 %t272, label %logic.rhs7224, label %logic.end7225 +logic.rhs7224: %t273 = load i1, ptr %a4 - br label %logic.rend6833 -logic.rend6833: - br label %logic.end6832 -logic.end6832: - %t274 = phi i1 [ false, %logic.from6830 ], [ %t273, %logic.rend6833 ] - br i1 %t274, label %then6834, label %endif6836 -then6834: + br label %logic.rend7226 +logic.rend7226: + br label %logic.end7225 +logic.end7225: + %t274 = phi i1 [ false, %logic.from7223 ], [ %t273, %logic.rend7226 ] + br i1 %t274, label %then7227, label %endif7229 +then7227: %t275 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 0 %t276 = load i1, ptr %t275 %t277 = xor i1 %t276, true - br i1 %t277, label %then6837, label %endif6839 -then6837: + br i1 %t277, label %then7230, label %endif7232 +then7230: %t278 = load ptr, ptr %a1 %t279 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t278, %S.ast.Node %t279, { ptr, i64, i64 } { ptr @.str.4426, i64 44, i64 0 }) - br label %endif6839 -endif6839: + call void @finch.gen.fail(ptr %t278, %S.ast.Node %t279, { ptr, i64, i64 } { ptr @.str.4633, i64 44, i64 0 }) + br label %endif7232 +endif7232: %t280 = load ptr, ptr %a1 %t281 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 1 %t282 = getelementptr inbounds %S.gen.Place, ptr %t281, i32 0, i32 0 %t283 = load { ptr, i64, i64 }, ptr %t282 - store { ptr, i64, i64 } { ptr @.str.4427, i64 29, i64 0 }, ptr %a285 + store { ptr, i64, i64 } { ptr @.str.4634, i64 29, i64 0 }, ptr %a285 store { ptr, i64, i64 } %t283, ptr %a286 call void @finch_str_concat(ptr %a284, ptr %a285, ptr %a286) %t287 = load { ptr, i64, i64 }, ptr %a284 store { ptr, i64, i64 } %t287, ptr %a289 - store { ptr, i64, i64 } { ptr @.str.4428, i64 1, i64 0 }, ptr %a290 + store { ptr, i64, i64 } { ptr @.str.4635, i64 1, i64 0 }, ptr %a290 call void @finch_str_concat(ptr %a288, ptr %a289, ptr %a290) store { ptr, i64, i64 } %t287, ptr %a291 call void @finch_str_drop(ptr %a291) @@ -68721,8 +72654,8 @@ endif6839: call void @finch.gen.emit(ptr %t280, { ptr, i64, i64 } %t292) store { ptr, i64, i64 } %t292, ptr %a293 call void @finch_str_drop(ptr %a293) - br label %endif6836 -endif6836: + br label %endif7229 +endif7229: %t294 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 2 %t295 = getelementptr inbounds %S.gen.Val, ptr %t294, i32 0, i32 0 %t296 = load { ptr, i64, i64 }, ptr %t295 @@ -68732,27 +72665,27 @@ endif6836: store { ptr, i64, i64 } %t299, ptr %a300 %t301 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 0 %t302 = load i1, ptr %t301 - br i1 %t302, label %then6840, label %endif6842 -then6840: + br i1 %t302, label %then7233, label %endif7235 +then7233: %t303 = load ptr, ptr %a1 %t304 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 1 %t305 = getelementptr inbounds %S.gen.Place, ptr %t304, i32 0, i32 0 %t306 = load { ptr, i64, i64 }, ptr %t305 - %t307 = call { ptr, i64, i64 } @finch.gen.load(ptr %t303, { ptr, i64, i64 } { ptr @.str.4429, i64 17, i64 0 }, { ptr, i64, i64 } %t306) + %t307 = call { ptr, i64, i64 } @finch.gen.load(ptr %t303, { ptr, i64, i64 } { ptr @.str.4636, i64 17, i64 0 }, { ptr, i64, i64 } %t306) %t308 = load { ptr, i64, i64 }, ptr %a300 store { ptr, i64, i64 } %t307, ptr %a300 store { ptr, i64, i64 } %t308, ptr %a309 call void @finch_str_drop(ptr %a309) - br label %endif6842 -endif6842: + br label %endif7235 +endif7235: %t310 = load ptr, ptr %a1 %t311 = load { ptr, i64, i64 }, ptr %a300 - store { ptr, i64, i64 } { ptr @.str.4430, i64 31, i64 0 }, ptr %a313 + store { ptr, i64, i64 } { ptr @.str.4637, i64 31, i64 0 }, ptr %a313 store { ptr, i64, i64 } %t311, ptr %a314 call void @finch_str_concat(ptr %a312, ptr %a313, ptr %a314) %t315 = load { ptr, i64, i64 }, ptr %a312 store { ptr, i64, i64 } %t315, ptr %a317 - store { ptr, i64, i64 } { ptr @.str.4431, i64 3, i64 0 }, ptr %a318 + store { ptr, i64, i64 } { ptr @.str.4638, i64 3, i64 0 }, ptr %a318 call void @finch_str_concat(ptr %a316, ptr %a317, ptr %a318) store { ptr, i64, i64 } %t315, ptr %a319 call void @finch_str_drop(ptr %a319) @@ -68768,12 +72701,12 @@ endif6842: call void @finch.gen.boundsCheck(ptr %t324, { ptr, i64, i64 } %t325, { ptr, i64, i64 } %t326, %S.ast.Node %t327) %t328 = load ptr, ptr %a1 %t329 = load { ptr, i64, i64 }, ptr %a300 - store { ptr, i64, i64 } { ptr @.str.4432, i64 31, i64 0 }, ptr %a331 + store { ptr, i64, i64 } { ptr @.str.4639, i64 31, i64 0 }, ptr %a331 store { ptr, i64, i64 } %t329, ptr %a332 call void @finch_str_concat(ptr %a330, ptr %a331, ptr %a332) %t333 = load { ptr, i64, i64 }, ptr %a330 store { ptr, i64, i64 } %t333, ptr %a335 - store { ptr, i64, i64 } { ptr @.str.4433, i64 3, i64 0 }, ptr %a336 + store { ptr, i64, i64 } { ptr @.str.4640, i64 3, i64 0 }, ptr %a336 call void @finch_str_concat(ptr %a334, ptr %a335, ptr %a336) store { ptr, i64, i64 } %t333, ptr %a337 call void @finch_str_drop(ptr %a337) @@ -68786,14 +72719,14 @@ endif6842: %t343 = load ptr, ptr %a1 %t344 = load %S.ast.Type, ptr %a248 %t345 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t343, %S.ast.Type %t344) - store { ptr, i64, i64 } { ptr @.str.4434, i64 23, i64 0 }, ptr %a347 + store { ptr, i64, i64 } { ptr @.str.4641, i64 23, i64 0 }, ptr %a347 store { ptr, i64, i64 } %t345, ptr %a348 call void @finch_str_concat(ptr %a346, ptr %a347, ptr %a348) store { ptr, i64, i64 } %t345, ptr %a349 call void @finch_str_drop(ptr %a349) %t350 = load { ptr, i64, i64 }, ptr %a346 store { ptr, i64, i64 } %t350, ptr %a352 - store { ptr, i64, i64 } { ptr @.str.4435, i64 6, i64 0 }, ptr %a353 + store { ptr, i64, i64 } { ptr @.str.4642, i64 6, i64 0 }, ptr %a353 call void @finch_str_concat(ptr %a351, ptr %a352, ptr %a353) store { ptr, i64, i64 } %t350, ptr %a354 call void @finch_str_drop(ptr %a354) @@ -68806,7 +72739,7 @@ endif6842: call void @finch_str_drop(ptr %a360) %t361 = load { ptr, i64, i64 }, ptr %a357 store { ptr, i64, i64 } %t361, ptr %a363 - store { ptr, i64, i64 } { ptr @.str.4436, i64 6, i64 0 }, ptr %a364 + store { ptr, i64, i64 } { ptr @.str.4643, i64 6, i64 0 }, ptr %a364 call void @finch_str_concat(ptr %a362, ptr %a363, ptr %a364) store { ptr, i64, i64 } %t361, ptr %a365 call void @finch_str_drop(ptr %a365) @@ -68824,8 +72757,8 @@ endif6842: store { ptr, i64, i64 } %t373, ptr %a375 %t376 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 0 %t377 = load i1, ptr %t376 - br i1 %t377, label %then6843, label %endif6845 -then6843: + br i1 %t377, label %then7236, label %endif7238 +then7236: %t378 = insertvalue %S.gen.Ref zeroinitializer, i1 true, 0 %t379 = load { ptr, i64, i64 }, ptr %a375 store { ptr, i64, i64 } %t379, ptr %a380 @@ -68846,7 +72779,7 @@ then6843: call void @finch_str_drop(ptr %a60) call void @finch.drop.S_ast_Type(ptr %a11) ret %S.gen.Ref %t389 -endif6845: +endif7238: %t390 = load ptr, ptr %a1 %t391 = load ptr, ptr %a1 %t392 = load %S.ast.Type, ptr %a248 @@ -68870,20 +72803,20 @@ endif6845: %t409 = load ptr, ptr %a1 %t410 = load %S.ast.Type, ptr %a248 %t411 = call i1 @finch.gen.owning(ptr %t409, %S.ast.Type %t410) - br label %logic.from6846 -logic.from6846: - br i1 %t411, label %logic.rhs6847, label %logic.end6848 -logic.rhs6847: + br label %logic.from7239 +logic.from7239: + br i1 %t411, label %logic.rhs7240, label %logic.end7241 +logic.rhs7240: %t412 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 2 %t413 = getelementptr inbounds %S.gen.Val, ptr %t412, i32 0, i32 2 %t414 = load i1, ptr %t413 - br label %logic.rend6849 -logic.rend6849: - br label %logic.end6848 -logic.end6848: - %t415 = phi i1 [ false, %logic.from6846 ], [ %t414, %logic.rend6849 ] - br i1 %t415, label %then6850, label %endif6852 -then6850: + br label %logic.rend7242 +logic.rend7242: + br label %logic.end7241 +logic.end7241: + %t415 = phi i1 [ false, %logic.from7239 ], [ %t414, %logic.rend7242 ] + br i1 %t415, label %then7243, label %endif7245 +then7243: %t416 = load ptr, ptr %a1 %t417 = load { ptr, i64, i64 }, ptr %a397 %t418 = load %S.ast.Type, ptr %a248 @@ -68899,8 +72832,8 @@ then6850: store %S.gen.Val %t426, ptr %a408 store %S.gen.Val %t427, ptr %a428 call void @finch.drop.S_gen_Val(ptr %a428) - br label %endif6852 -endif6852: + br label %endif7245 +endif7245: %t429 = load ptr, ptr %a1 %t430 = getelementptr inbounds %S.gen.Ref, ptr %a3, i32 0, i32 2 %t431 = load %S.gen.Val, ptr %t430 @@ -68978,14 +72911,14 @@ entry: store i64 %t10, ptr %a11 %t12 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 10 store i64 0, ptr %a13 - br label %each.cond6853 -each.cond6853: + br label %each.cond7246 +each.cond7246: %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %t12, i32 0, i32 1 %t15 = load i64, ptr %t14 %t16 = load i64, ptr %a13 %t17 = icmp slt i64 %t16, %t15 - br i1 %t17, label %each.body6854, label %each.end6856 -each.body6854: + br i1 %t17, label %each.body7247, label %each.end7249 +each.body7247: %t18 = load ptr, ptr %t12 %t19 = getelementptr inbounds { ptr, i64, i64 }, ptr %t18, i64 %t16 %t20 = load { ptr, i64, i64 }, ptr %t19 @@ -68993,17 +72926,17 @@ each.body6854: %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %a21, i32 0, i32 1 %t23 = load i64, ptr %t22 %t24 = icmp sgt i64 %t23, 0 - br i1 %t24, label %then6857, label %endif6859 -then6857: + br i1 %t24, label %then7250, label %endif7252 +then7250: %t25 = load ptr, ptr %a1 %t26 = load %S.ast.Node, ptr %a2 %t27 = load { ptr, i64, i64 }, ptr %a21 - store { ptr, i64, i64 } { ptr @.str.4437, i64 17, i64 0 }, ptr %a29 + store { ptr, i64, i64 } { ptr @.str.4644, i64 17, i64 0 }, ptr %a29 store { ptr, i64, i64 } %t27, ptr %a30 call void @finch_str_concat(ptr %a28, ptr %a29, ptr %a30) %t31 = load { ptr, i64, i64 }, ptr %a28 store { ptr, i64, i64 } %t31, ptr %a33 - store { ptr, i64, i64 } { ptr @.str.4438, i64 36, i64 0 }, ptr %a34 + store { ptr, i64, i64 } { ptr @.str.4645, i64 36, i64 0 }, ptr %a34 call void @finch_str_concat(ptr %a32, ptr %a33, ptr %a34) store { ptr, i64, i64 } %t31, ptr %a35 call void @finch_str_drop(ptr %a35) @@ -69011,29 +72944,29 @@ then6857: call void @finch.gen.fail(ptr %t25, %S.ast.Node %t26, { ptr, i64, i64 } %t36) store { ptr, i64, i64 } %t36, ptr %a37 call void @finch_str_drop(ptr %a37) - br label %endif6859 -endif6859: - br label %each.step6855 -each.step6855: + br label %endif7252 +endif7252: + br label %each.step7248 +each.step7248: %t38 = load i64, ptr %a13 %t39 = add i64 %t38, 1 store i64 %t39, ptr %a13 - br label %each.cond6853 -each.end6856: + br label %each.cond7246 +each.end7249: %t40 = load i64, ptr %a11 %t41 = load i64, ptr %a4 %t42 = icmp ne i64 %t40, %t41 - br i1 %t42, label %then6860, label %endif6862 -then6860: + br i1 %t42, label %then7253, label %endif7255 +then7253: %t43 = load ptr, ptr %a1 %t44 = load %S.ast.Node, ptr %a2 %t45 = load { ptr, i64, i64 }, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.4439, i64 1, i64 0 }, ptr %a47 + store { ptr, i64, i64 } { ptr @.str.4646, i64 1, i64 0 }, ptr %a47 store { ptr, i64, i64 } %t45, ptr %a48 call void @finch_str_concat(ptr %a46, ptr %a47, ptr %a48) %t49 = load { ptr, i64, i64 }, ptr %a46 store { ptr, i64, i64 } %t49, ptr %a51 - store { ptr, i64, i64 } { ptr @.str.4440, i64 8, i64 0 }, ptr %a52 + store { ptr, i64, i64 } { ptr @.str.4647, i64 8, i64 0 }, ptr %a52 call void @finch_str_concat(ptr %a50, ptr %a51, ptr %a52) store { ptr, i64, i64 } %t49, ptr %a53 call void @finch_str_drop(ptr %a53) @@ -69050,7 +72983,7 @@ then6860: call void @finch_str_drop(ptr %a62) %t63 = load { ptr, i64, i64 }, ptr %a58 store { ptr, i64, i64 } %t63, ptr %a65 - store { ptr, i64, i64 } { ptr @.str.4441, i64 22, i64 0 }, ptr %a66 + store { ptr, i64, i64 } { ptr @.str.4648, i64 22, i64 0 }, ptr %a66 call void @finch_str_concat(ptr %a64, ptr %a65, ptr %a66) store { ptr, i64, i64 } %t63, ptr %a67 call void @finch_str_drop(ptr %a67) @@ -69069,8 +73002,8 @@ then6860: call void @finch.gen.fail(ptr %t43, %S.ast.Node %t44, { ptr, i64, i64 } %t77) store { ptr, i64, i64 } %t77, ptr %a78 call void @finch_str_drop(ptr %a78) - br label %endif6862 -endif6862: + br label %endif7255 +endif7255: ret void } @@ -69088,7 +73021,7 @@ entry: %t5 = load ptr, ptr %a1 %t6 = load %S.ast.Node, ptr %a2 %t7 = call %S.gen.Val @finch.gen.expr(ptr %t5, %S.ast.Node %t6) - %t8 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4442, i64 3, i64 0 }) + %t8 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4649, i64 3, i64 0 }) %t9 = load %S.ast.Node, ptr %a2 %t10 = load { ptr, i64, i64 }, ptr %a3 %t11 = call %S.gen.Val @finch.gen.coerce(ptr %t4, %S.gen.Val %t7, %S.ast.Type %t8, %S.ast.Node %t9, { ptr, i64, i64 } %t10) @@ -69104,7 +73037,7 @@ entry: %a1 = alloca ptr, align 16 store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 - %t3 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t2, { ptr, i64, i64 } { ptr @.str.4443, i64 17, i64 0 }) + %t3 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t2, { ptr, i64, i64 } { ptr @.str.4650, i64 17, i64 0 }) ret { ptr, i64, i64 } %t3 } @@ -69125,50 +73058,50 @@ entry: store { ptr, i64, i64 } %p0, ptr %a1 %t2 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t2, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.4444, i64 3, i64 0 }, ptr %a4 + store { ptr, i64, i64 } { ptr @.str.4651, i64 3, i64 0 }, ptr %a4 %t5 = call i32 @finch_str_eq(ptr %a3, ptr %a4) %t6 = icmp ne i32 %t5, 0 - br i1 %t6, label %then6863, label %endif6865 -then6863: - ret { ptr, i64, i64 } { ptr @.str.4445, i64 3, i64 0 } -endif6865: + br i1 %t6, label %then7256, label %endif7258 +then7256: + ret { ptr, i64, i64 } { ptr @.str.4652, i64 3, i64 0 } +endif7258: %t7 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t7, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.4446, i64 3, i64 0 }, ptr %a9 + store { ptr, i64, i64 } { ptr @.str.4653, i64 3, i64 0 }, ptr %a9 %t10 = call i32 @finch_str_eq(ptr %a8, ptr %a9) %t11 = icmp ne i32 %t10, 0 - br i1 %t11, label %then6866, label %endif6868 -then6866: - ret { ptr, i64, i64 } { ptr @.str.4447, i64 5, i64 0 } -endif6868: + br i1 %t11, label %then7259, label %endif7261 +then7259: + ret { ptr, i64, i64 } { ptr @.str.4654, i64 5, i64 0 } +endif7261: %t12 = mul i64 13, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t13 = call ptr @finch_alloc(i64 %t12) %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %t13, i64 0 - store { ptr, i64, i64 } { ptr @.str.4448, i64 3, i64 0 }, ptr %t14 + store { ptr, i64, i64 } { ptr @.str.4655, i64 3, i64 0 }, ptr %t14 %t15 = getelementptr inbounds { ptr, i64, i64 }, ptr %t13, i64 1 - store { ptr, i64, i64 } { ptr @.str.4449, i64 5, i64 0 }, ptr %t15 + store { ptr, i64, i64 } { ptr @.str.4656, i64 5, i64 0 }, ptr %t15 %t16 = getelementptr inbounds { ptr, i64, i64 }, ptr %t13, i64 2 - store { ptr, i64, i64 } { ptr @.str.4450, i64 4, i64 0 }, ptr %t16 + store { ptr, i64, i64 } { ptr @.str.4657, i64 4, i64 0 }, ptr %t16 %t17 = getelementptr inbounds { ptr, i64, i64 }, ptr %t13, i64 3 - store { ptr, i64, i64 } { ptr @.str.4451, i64 4, i64 0 }, ptr %t17 + store { ptr, i64, i64 } { ptr @.str.4658, i64 4, i64 0 }, ptr %t17 %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %t13, i64 4 - store { ptr, i64, i64 } { ptr @.str.4452, i64 2, i64 0 }, ptr %t18 + store { ptr, i64, i64 } { ptr @.str.4659, i64 2, i64 0 }, ptr %t18 %t19 = getelementptr inbounds { ptr, i64, i64 }, ptr %t13, i64 5 - store { ptr, i64, i64 } { ptr @.str.4453, i64 3, i64 0 }, ptr %t19 + store { ptr, i64, i64 } { ptr @.str.4660, i64 3, i64 0 }, ptr %t19 %t20 = getelementptr inbounds { ptr, i64, i64 }, ptr %t13, i64 6 - store { ptr, i64, i64 } { ptr @.str.4454, i64 3, i64 0 }, ptr %t20 + store { ptr, i64, i64 } { ptr @.str.4661, i64 3, i64 0 }, ptr %t20 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t13, i64 7 - store { ptr, i64, i64 } { ptr @.str.4455, i64 2, i64 0 }, ptr %t21 + store { ptr, i64, i64 } { ptr @.str.4662, i64 2, i64 0 }, ptr %t21 %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %t13, i64 8 - store { ptr, i64, i64 } { ptr @.str.4456, i64 3, i64 0 }, ptr %t22 + store { ptr, i64, i64 } { ptr @.str.4663, i64 3, i64 0 }, ptr %t22 %t23 = getelementptr inbounds { ptr, i64, i64 }, ptr %t13, i64 9 - store { ptr, i64, i64 } { ptr @.str.4457, i64 3, i64 0 }, ptr %t23 + store { ptr, i64, i64 } { ptr @.str.4664, i64 3, i64 0 }, ptr %t23 %t24 = getelementptr inbounds { ptr, i64, i64 }, ptr %t13, i64 10 - store { ptr, i64, i64 } { ptr @.str.4458, i64 3, i64 0 }, ptr %t24 + store { ptr, i64, i64 } { ptr @.str.4665, i64 3, i64 0 }, ptr %t24 %t25 = getelementptr inbounds { ptr, i64, i64 }, ptr %t13, i64 11 - store { ptr, i64, i64 } { ptr @.str.4459, i64 3, i64 0 }, ptr %t25 + store { ptr, i64, i64 } { ptr @.str.4666, i64 3, i64 0 }, ptr %t25 %t26 = getelementptr inbounds { ptr, i64, i64 }, ptr %t13, i64 12 - store { ptr, i64, i64 } { ptr @.str.4460, i64 3, i64 0 }, ptr %t26 + store { ptr, i64, i64 } { ptr @.str.4667, i64 3, i64 0 }, ptr %t26 %t27 = insertvalue { ptr, i64, i64 } undef, ptr %t13, 0 %t28 = insertvalue { ptr, i64, i64 } %t27, i64 13, 1 %t29 = insertvalue { ptr, i64, i64 } %t28, i64 13, 2 @@ -69179,40 +73112,40 @@ endif6868: %t34 = load i64, ptr %t31 %t35 = load ptr, ptr %a30 store i64 0, ptr %a36 - br label %find.cond6869 -find.cond6869: + br label %find.cond7262 +find.cond7262: %t37 = load i64, ptr %a36 %t38 = icmp slt i64 %t37, %t34 - br i1 %t38, label %find.body6870, label %find.end6873 -find.body6870: + br i1 %t38, label %find.body7263, label %find.end7266 +find.body7263: %t39 = getelementptr inbounds { ptr, i64, i64 }, ptr %t35, i64 %t37 %t40 = load { ptr, i64, i64 }, ptr %t39 store { ptr, i64, i64 } %t40, ptr %a41 store { ptr, i64, i64 } %t32, ptr %a42 %t43 = call i32 @finch_str_eq(ptr %a41, ptr %a42) %t44 = icmp ne i32 %t43, 0 - br i1 %t44, label %find.hit6871, label %find.next6872 -find.hit6871: + br i1 %t44, label %find.hit7264, label %find.next7265 +find.hit7264: store i64 %t37, ptr %a33 - br label %find.end6873 -find.next6872: + br label %find.end7266 +find.next7265: %t45 = add i64 %t37, 1 store i64 %t45, ptr %a36 - br label %find.cond6869 -find.end6873: + br label %find.cond7262 +find.end7266: %t46 = load i64, ptr %a33 %t47 = icmp sge i64 %t46, 0 - br i1 %t47, label %then6874, label %endif6876 -then6874: + br i1 %t47, label %then7267, label %endif7269 +then7267: %t48 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t48, ptr %a49 call void @finch_str_copy(ptr %a50, ptr %a49) %t51 = load { ptr, i64, i64 }, ptr %a50 call void @finch.drop.arr_str(ptr %a30) ret { ptr, i64, i64 } %t51 -endif6876: +endif7269: call void @finch.drop.arr_str(ptr %a30) - ret { ptr, i64, i64 } { ptr @.str.4461, i64 0, i64 0 } + ret { ptr, i64, i64 } { ptr @.str.4668, i64 0, i64 0 } } define internal %S.gen.Val @finch.gen.convert(ptr %p0, %S.ast.Node %p1, %S.ast.Type %p2) { @@ -69531,11 +73464,11 @@ entry: %t10 = load { ptr, i64, i64 }, ptr %t9 %t11 = extractvalue { ptr, i64, i64 } %t10, 1 %t12 = icmp uge i64 0, %t11 - br i1 %t12, label %range6877, label %inrange6878 -range6877: - call void @finch_panic_index(ptr @.str.4462, i64 3889, i64 0, i64 %t11) + br i1 %t12, label %range7270, label %inrange7271 +range7270: + call void @finch_panic_index(ptr @.str.4669, i64 4116, i64 0, i64 %t11) unreachable -inrange6878: +inrange7271: %t13 = extractvalue { ptr, i64, i64 } %t10, 0 %t14 = getelementptr inbounds %S.ast.Node, ptr %t13, i64 0 %t15 = load %S.ast.Node, ptr %t14 @@ -69550,41 +73483,41 @@ inrange6878: %t24 = load %S.ast.Type, ptr %a23 %t25 = load %S.ast.Type, ptr %a3 %t26 = call i1 @finch.ast.same(%S.ast.Type %t24, %S.ast.Type %t25) - br i1 %t26, label %then6879, label %endif6881 -then6879: + br i1 %t26, label %then7272, label %endif7274 +then7272: %t27 = load %S.gen.Val, ptr %a17 call void @finch.drop.S_ast_Type(ptr %a23) ret %S.gen.Val %t27 -endif6881: +endif7274: %t28 = getelementptr inbounds %S.ast.Type, ptr %a23, i32 0, i32 0 %t29 = load { ptr, i64, i64 }, ptr %t28 store { ptr, i64, i64 } %t29, ptr %a30 - store { ptr, i64, i64 } { ptr @.str.4463, i64 3, i64 0 }, ptr %a31 + store { ptr, i64, i64 } { ptr @.str.4670, i64 3, i64 0 }, ptr %a31 %t32 = call i32 @finch_str_eq(ptr %a30, ptr %a31) %t33 = icmp ne i32 %t32, 0 - br label %logic.from6882 -logic.from6882: - br i1 %t33, label %logic.rhs6883, label %logic.end6884 -logic.rhs6883: + br label %logic.from7275 +logic.from7275: + br i1 %t33, label %logic.rhs7276, label %logic.end7277 +logic.rhs7276: %t34 = load %S.ast.Type, ptr %a3 %t35 = call i1 @finch.gen.isNumber(%S.ast.Type %t34) - br label %logic.rend6885 -logic.rend6885: - br label %logic.end6884 -logic.end6884: - %t36 = phi i1 [ false, %logic.from6882 ], [ %t35, %logic.rend6885 ] - br label %logic.from6886 -logic.from6886: - br i1 %t36, label %logic.rhs6887, label %logic.end6888 -logic.rhs6887: + br label %logic.rend7278 +logic.rend7278: + br label %logic.end7277 +logic.end7277: + %t36 = phi i1 [ false, %logic.from7275 ], [ %t35, %logic.rend7278 ] + br label %logic.from7279 +logic.from7279: + br i1 %t36, label %logic.rhs7280, label %logic.end7281 +logic.rhs7280: %t37 = load ptr, ptr %a1 %t38 = icmp eq ptr %t37, null - br i1 %t38, label %panic6889, label %ok6890 -panic6889: - call void @finch_panic(ptr @.str.4464, i64 3894, ptr @.str.4465) + br i1 %t38, label %panic7282, label %ok7283 +panic7282: + call void @finch_panic(ptr @.str.4671, i64 4121, ptr @.str.4672) unreachable -ok6890: - %t39 = getelementptr inbounds %S.gen.Gen, ptr %t37, i32 0, i32 40 +ok7283: + %t39 = getelementptr inbounds %S.gen.Gen, ptr %t37, i32 0, i32 41 %t40 = load { ptr, i64, i64 }, ptr %t39 %t41 = load %S.ast.Node, ptr %a2 %t42 = call { ptr, i64, i64 } @finch.gen.nodeKey(%S.ast.Node %t41) @@ -69594,41 +73527,41 @@ ok6890: %t46 = icmp ne i32 %t45, 0 store { ptr, i64, i64 } %t42, ptr %a47 call void @finch_str_drop(ptr %a47) - br label %logic.rend6891 -logic.rend6891: - br label %logic.end6888 -logic.end6888: - %t48 = phi i1 [ false, %logic.from6886 ], [ %t46, %logic.rend6891 ] - br i1 %t48, label %then6892, label %endif6894 -then6892: + br label %logic.rend7284 +logic.rend7284: + br label %logic.end7281 +logic.end7281: + %t48 = phi i1 [ false, %logic.from7279 ], [ %t46, %logic.rend7284 ] + br i1 %t48, label %then7285, label %endif7287 +then7285: %t49 = load ptr, ptr %a1 - %t50 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t49, { ptr, i64, i64 } { ptr @.str.4466, i64 17, i64 0 }) + %t50 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t49, { ptr, i64, i64 } { ptr @.str.4673, i64 17, i64 0 }) store { ptr, i64, i64 } %t50, ptr %a51 %t52 = load ptr, ptr %a1 %t53 = load { ptr, i64, i64 }, ptr %a51 - call void @finch.gen.store(ptr %t52, { ptr, i64, i64 } { ptr @.str.4467, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.4468, i64 15, i64 0 }, { ptr, i64, i64 } %t53) + call void @finch.gen.store(ptr %t52, { ptr, i64, i64 } { ptr @.str.4674, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.4675, i64 15, i64 0 }, { ptr, i64, i64 } %t53) %t54 = load %S.ast.Type, ptr %a3 %t55 = call i1 @finch.gen.isInt(%S.ast.Type %t54) - br i1 %t55, label %then6895, label %endif6897 -then6895: + br i1 %t55, label %then7288, label %endif7290 +then7288: %t56 = load ptr, ptr %a1 - %t57 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t56, { ptr, i64, i64 } { ptr @.str.4469, i64 3, i64 0 }) + %t57 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t56, { ptr, i64, i64 } { ptr @.str.4676, i64 3, i64 0 }) store { ptr, i64, i64 } %t57, ptr %a58 %t59 = load ptr, ptr %a1 %t60 = load { ptr, i64, i64 }, ptr %a58 - call void @finch.gen.store(ptr %t59, { ptr, i64, i64 } { ptr @.str.4470, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.4471, i64 1, i64 0 }, { ptr, i64, i64 } %t60) + call void @finch.gen.store(ptr %t59, { ptr, i64, i64 } { ptr @.str.4677, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.4678, i64 1, i64 0 }, { ptr, i64, i64 } %t60) %t61 = load ptr, ptr %a1 %t62 = load ptr, ptr %a1 %t63 = load %S.gen.Val, ptr %a17 %t64 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t62, %S.gen.Val %t63) - store { ptr, i64, i64 } { ptr @.str.4472, i64 32, i64 0 }, ptr %a66 + store { ptr, i64, i64 } { ptr @.str.4679, i64 32, i64 0 }, ptr %a66 store { ptr, i64, i64 } %t64, ptr %a67 call void @finch_str_concat(ptr %a65, ptr %a66, ptr %a67) store { ptr, i64, i64 } %t64, ptr %a68 call void @finch_str_drop(ptr %a68) %t69 = load { ptr, i64, i64 }, ptr %a65 store { ptr, i64, i64 } %t69, ptr %a71 - store { ptr, i64, i64 } { ptr @.str.4473, i64 6, i64 0 }, ptr %a72 + store { ptr, i64, i64 } { ptr @.str.4680, i64 6, i64 0 }, ptr %a72 call void @finch_str_concat(ptr %a70, ptr %a71, ptr %a72) store { ptr, i64, i64 } %t69, ptr %a73 call void @finch_str_drop(ptr %a73) @@ -69641,7 +73574,7 @@ then6895: call void @finch_str_drop(ptr %a79) %t80 = load { ptr, i64, i64 }, ptr %a76 store { ptr, i64, i64 } %t80, ptr %a82 - store { ptr, i64, i64 } { ptr @.str.4474, i64 6, i64 0 }, ptr %a83 + store { ptr, i64, i64 } { ptr @.str.4681, i64 6, i64 0 }, ptr %a83 call void @finch_str_concat(ptr %a81, ptr %a82, ptr %a83) store { ptr, i64, i64 } %t80, ptr %a84 call void @finch_str_drop(ptr %a84) @@ -69654,7 +73587,7 @@ then6895: call void @finch_str_drop(ptr %a90) %t91 = load { ptr, i64, i64 }, ptr %a87 store { ptr, i64, i64 } %t91, ptr %a93 - store { ptr, i64, i64 } { ptr @.str.4475, i64 1, i64 0 }, ptr %a94 + store { ptr, i64, i64 } { ptr @.str.4682, i64 1, i64 0 }, ptr %a94 call void @finch_str_concat(ptr %a92, ptr %a93, ptr %a94) store { ptr, i64, i64 } %t91, ptr %a95 call void @finch_str_drop(ptr %a95) @@ -69665,12 +73598,12 @@ then6895: store { ptr, i64, i64 } %t97, ptr %a99 %t100 = load ptr, ptr %a1 %t101 = load { ptr, i64, i64 }, ptr %a99 - store { ptr, i64, i64 } { ptr @.str.4476, i64 12, i64 0 }, ptr %a103 + store { ptr, i64, i64 } { ptr @.str.4683, i64 12, i64 0 }, ptr %a103 store { ptr, i64, i64 } %t101, ptr %a104 call void @finch_str_concat(ptr %a102, ptr %a103, ptr %a104) %t105 = load { ptr, i64, i64 }, ptr %a102 store { ptr, i64, i64 } %t105, ptr %a107 - store { ptr, i64, i64 } { ptr @.str.4477, i64 3, i64 0 }, ptr %a108 + store { ptr, i64, i64 } { ptr @.str.4684, i64 3, i64 0 }, ptr %a108 call void @finch_str_concat(ptr %a106, ptr %a107, ptr %a108) store { ptr, i64, i64 } %t105, ptr %a109 call void @finch_str_drop(ptr %a109) @@ -69680,27 +73613,27 @@ then6895: call void @finch_str_drop(ptr %a112) %t113 = load ptr, ptr %a1 %t114 = icmp eq ptr %t113, null - br i1 %t114, label %panic6898, label %ok6899 -panic6898: - call void @finch_panic(ptr @.str.4478, i64 3902, ptr @.str.4479) + br i1 %t114, label %panic7291, label %ok7292 +panic7291: + call void @finch_panic(ptr @.str.4685, i64 4129, ptr @.str.4686) unreachable -ok6899: - %t115 = getelementptr inbounds %S.gen.Gen, ptr %t113, i32 0, i32 41 +ok7292: + %t115 = getelementptr inbounds %S.gen.Gen, ptr %t113, i32 0, i32 42 %t116 = load { ptr, i64, i64 }, ptr %t115 store { ptr, i64, i64 } %t111, ptr %t115 store { ptr, i64, i64 } %t116, ptr %a117 call void @finch_str_drop(ptr %a117) %t118 = load ptr, ptr %a1 %t119 = load { ptr, i64, i64 }, ptr %a51 - %t120 = call { ptr, i64, i64 } @finch.gen.load(ptr %t118, { ptr, i64, i64 } { ptr @.str.4480, i64 17, i64 0 }, { ptr, i64, i64 } %t119) + %t120 = call { ptr, i64, i64 } @finch.gen.load(ptr %t118, { ptr, i64, i64 } { ptr @.str.4687, i64 17, i64 0 }, { ptr, i64, i64 } %t119) %t121 = load ptr, ptr %a1 %t122 = icmp eq ptr %t121, null - br i1 %t122, label %panic6900, label %ok6901 -panic6900: - call void @finch_panic(ptr @.str.4481, i64 3903, ptr @.str.4482) + br i1 %t122, label %panic7293, label %ok7294 +panic7293: + call void @finch_panic(ptr @.str.4688, i64 4130, ptr @.str.4689) unreachable -ok6901: - %t123 = getelementptr inbounds %S.gen.Gen, ptr %t121, i32 0, i32 42 +ok7294: + %t123 = getelementptr inbounds %S.gen.Gen, ptr %t121, i32 0, i32 43 %t124 = load { ptr, i64, i64 }, ptr %t123 store { ptr, i64, i64 } %t120, ptr %t123 store { ptr, i64, i64 } %t124, ptr %a125 @@ -69711,8 +73644,8 @@ ok6901: %t128 = load ptr, ptr %a1 %t129 = load ptr, ptr %a1 %t130 = load { ptr, i64, i64 }, ptr %a58 - %t131 = call { ptr, i64, i64 } @finch.gen.load(ptr %t129, { ptr, i64, i64 } { ptr @.str.4483, i64 3, i64 0 }, { ptr, i64, i64 } %t130) - %t132 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4484, i64 3, i64 0 }) + %t131 = call { ptr, i64, i64 } @finch.gen.load(ptr %t129, { ptr, i64, i64 } { ptr @.str.4690, i64 3, i64 0 }, { ptr, i64, i64 } %t130) + %t132 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4691, i64 3, i64 0 }) %t133 = load %S.ast.Type, ptr %a3 %t134 = call { ptr, i64, i64 } @finch.gen.intCast(ptr %t128, { ptr, i64, i64 } %t131, %S.ast.Type %t132, %S.ast.Type %t133) store { ptr, i64, i64 } %t131, ptr %a135 @@ -69731,25 +73664,25 @@ ok6901: call void @finch.drop.S_ast_Type(ptr %a23) call void @finch.drop.S_gen_Val(ptr %a17) ret %S.gen.Val %t142 -endif6897: +endif7290: %t143 = load ptr, ptr %a1 - %t144 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t143, { ptr, i64, i64 } { ptr @.str.4485, i64 6, i64 0 }) + %t144 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t143, { ptr, i64, i64 } { ptr @.str.4692, i64 6, i64 0 }) store { ptr, i64, i64 } %t144, ptr %a145 %t146 = load ptr, ptr %a1 %t147 = load { ptr, i64, i64 }, ptr %a145 - call void @finch.gen.store(ptr %t146, { ptr, i64, i64 } { ptr @.str.4486, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.4487, i64 3, i64 0 }, { ptr, i64, i64 } %t147) + call void @finch.gen.store(ptr %t146, { ptr, i64, i64 } { ptr @.str.4693, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.4694, i64 3, i64 0 }, { ptr, i64, i64 } %t147) %t148 = load ptr, ptr %a1 %t149 = load ptr, ptr %a1 %t150 = load %S.gen.Val, ptr %a17 %t151 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t149, %S.gen.Val %t150) - store { ptr, i64, i64 } { ptr @.str.4488, i64 34, i64 0 }, ptr %a153 + store { ptr, i64, i64 } { ptr @.str.4695, i64 34, i64 0 }, ptr %a153 store { ptr, i64, i64 } %t151, ptr %a154 call void @finch_str_concat(ptr %a152, ptr %a153, ptr %a154) store { ptr, i64, i64 } %t151, ptr %a155 call void @finch_str_drop(ptr %a155) %t156 = load { ptr, i64, i64 }, ptr %a152 store { ptr, i64, i64 } %t156, ptr %a158 - store { ptr, i64, i64 } { ptr @.str.4489, i64 6, i64 0 }, ptr %a159 + store { ptr, i64, i64 } { ptr @.str.4696, i64 6, i64 0 }, ptr %a159 call void @finch_str_concat(ptr %a157, ptr %a158, ptr %a159) store { ptr, i64, i64 } %t156, ptr %a160 call void @finch_str_drop(ptr %a160) @@ -69762,7 +73695,7 @@ endif6897: call void @finch_str_drop(ptr %a166) %t167 = load { ptr, i64, i64 }, ptr %a163 store { ptr, i64, i64 } %t167, ptr %a169 - store { ptr, i64, i64 } { ptr @.str.4490, i64 6, i64 0 }, ptr %a170 + store { ptr, i64, i64 } { ptr @.str.4697, i64 6, i64 0 }, ptr %a170 call void @finch_str_concat(ptr %a168, ptr %a169, ptr %a170) store { ptr, i64, i64 } %t167, ptr %a171 call void @finch_str_drop(ptr %a171) @@ -69775,7 +73708,7 @@ endif6897: call void @finch_str_drop(ptr %a177) %t178 = load { ptr, i64, i64 }, ptr %a174 store { ptr, i64, i64 } %t178, ptr %a180 - store { ptr, i64, i64 } { ptr @.str.4491, i64 1, i64 0 }, ptr %a181 + store { ptr, i64, i64 } { ptr @.str.4698, i64 1, i64 0 }, ptr %a181 call void @finch_str_concat(ptr %a179, ptr %a180, ptr %a181) store { ptr, i64, i64 } %t178, ptr %a182 call void @finch_str_drop(ptr %a182) @@ -69786,12 +73719,12 @@ endif6897: store { ptr, i64, i64 } %t184, ptr %a186 %t187 = load ptr, ptr %a1 %t188 = load { ptr, i64, i64 }, ptr %a186 - store { ptr, i64, i64 } { ptr @.str.4492, i64 12, i64 0 }, ptr %a190 + store { ptr, i64, i64 } { ptr @.str.4699, i64 12, i64 0 }, ptr %a190 store { ptr, i64, i64 } %t188, ptr %a191 call void @finch_str_concat(ptr %a189, ptr %a190, ptr %a191) %t192 = load { ptr, i64, i64 }, ptr %a189 store { ptr, i64, i64 } %t192, ptr %a194 - store { ptr, i64, i64 } { ptr @.str.4493, i64 3, i64 0 }, ptr %a195 + store { ptr, i64, i64 } { ptr @.str.4700, i64 3, i64 0 }, ptr %a195 call void @finch_str_concat(ptr %a193, ptr %a194, ptr %a195) store { ptr, i64, i64 } %t192, ptr %a196 call void @finch_str_drop(ptr %a196) @@ -69801,27 +73734,27 @@ endif6897: call void @finch_str_drop(ptr %a199) %t200 = load ptr, ptr %a1 %t201 = icmp eq ptr %t200, null - br i1 %t201, label %panic6902, label %ok6903 -panic6902: - call void @finch_panic(ptr @.str.4494, i64 3910, ptr @.str.4495) + br i1 %t201, label %panic7295, label %ok7296 +panic7295: + call void @finch_panic(ptr @.str.4701, i64 4137, ptr @.str.4702) unreachable -ok6903: - %t202 = getelementptr inbounds %S.gen.Gen, ptr %t200, i32 0, i32 41 +ok7296: + %t202 = getelementptr inbounds %S.gen.Gen, ptr %t200, i32 0, i32 42 %t203 = load { ptr, i64, i64 }, ptr %t202 store { ptr, i64, i64 } %t198, ptr %t202 store { ptr, i64, i64 } %t203, ptr %a204 call void @finch_str_drop(ptr %a204) %t205 = load ptr, ptr %a1 %t206 = load { ptr, i64, i64 }, ptr %a51 - %t207 = call { ptr, i64, i64 } @finch.gen.load(ptr %t205, { ptr, i64, i64 } { ptr @.str.4496, i64 17, i64 0 }, { ptr, i64, i64 } %t206) + %t207 = call { ptr, i64, i64 } @finch.gen.load(ptr %t205, { ptr, i64, i64 } { ptr @.str.4703, i64 17, i64 0 }, { ptr, i64, i64 } %t206) %t208 = load ptr, ptr %a1 %t209 = icmp eq ptr %t208, null - br i1 %t209, label %panic6904, label %ok6905 -panic6904: - call void @finch_panic(ptr @.str.4497, i64 3911, ptr @.str.4498) + br i1 %t209, label %panic7297, label %ok7298 +panic7297: + call void @finch_panic(ptr @.str.4704, i64 4138, ptr @.str.4705) unreachable -ok6905: - %t210 = getelementptr inbounds %S.gen.Gen, ptr %t208, i32 0, i32 42 +ok7298: + %t210 = getelementptr inbounds %S.gen.Gen, ptr %t208, i32 0, i32 43 %t211 = load { ptr, i64, i64 }, ptr %t210 store { ptr, i64, i64 } %t207, ptr %t210 store { ptr, i64, i64 } %t211, ptr %a212 @@ -69832,8 +73765,8 @@ ok6905: %t215 = load ptr, ptr %a1 %t216 = load ptr, ptr %a1 %t217 = load { ptr, i64, i64 }, ptr %a145 - %t218 = call { ptr, i64, i64 } @finch.gen.load(ptr %t216, { ptr, i64, i64 } { ptr @.str.4499, i64 6, i64 0 }, { ptr, i64, i64 } %t217) - %t219 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4500, i64 5, i64 0 }) + %t218 = call { ptr, i64, i64 } @finch.gen.load(ptr %t216, { ptr, i64, i64 } { ptr @.str.4706, i64 6, i64 0 }, { ptr, i64, i64 } %t217) + %t219 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4707, i64 5, i64 0 }) %t220 = load %S.ast.Type, ptr %a3 %t221 = call { ptr, i64, i64 } @finch.gen.floatCast(ptr %t215, { ptr, i64, i64 } %t218, %S.ast.Type %t219, %S.ast.Type %t220) store { ptr, i64, i64 } %t218, ptr %a222 @@ -69852,45 +73785,45 @@ ok6905: call void @finch.drop.S_ast_Type(ptr %a23) call void @finch.drop.S_gen_Val(ptr %a17) ret %S.gen.Val %t229 -endif6894: +endif7287: %t230 = getelementptr inbounds %S.ast.Type, ptr %a23, i32 0, i32 0 %t231 = load { ptr, i64, i64 }, ptr %t230 store { ptr, i64, i64 } %t231, ptr %a232 - store { ptr, i64, i64 } { ptr @.str.4501, i64 3, i64 0 }, ptr %a233 + store { ptr, i64, i64 } { ptr @.str.4708, i64 3, i64 0 }, ptr %a233 %t234 = call i32 @finch_str_eq(ptr %a232, ptr %a233) %t235 = icmp ne i32 %t234, 0 - br label %logic.from6906 -logic.from6906: - br i1 %t235, label %logic.rhs6907, label %logic.end6908 -logic.rhs6907: + br label %logic.from7299 +logic.from7299: + br i1 %t235, label %logic.rhs7300, label %logic.end7301 +logic.rhs7300: %t236 = load %S.ast.Type, ptr %a3 %t237 = call i1 @finch.gen.isNumber(%S.ast.Type %t236) - br label %logic.rend6909 -logic.rend6909: - br label %logic.end6908 -logic.end6908: - %t238 = phi i1 [ false, %logic.from6906 ], [ %t237, %logic.rend6909 ] - br i1 %t238, label %then6910, label %endif6912 -then6910: + br label %logic.rend7302 +logic.rend7302: + br label %logic.end7301 +logic.end7301: + %t238 = phi i1 [ false, %logic.from7299 ], [ %t237, %logic.rend7302 ] + br i1 %t238, label %then7303, label %endif7305 +then7303: %t239 = load ptr, ptr %a1 %t240 = load ptr, ptr %a1 %t241 = icmp eq ptr %t240, null - br i1 %t241, label %panic6913, label %ok6914 -panic6913: - call void @finch_panic(ptr @.str.4502, i64 3916, ptr @.str.4503) + br i1 %t241, label %panic7306, label %ok7307 +panic7306: + call void @finch_panic(ptr @.str.4709, i64 4143, ptr @.str.4710) unreachable -ok6914: +ok7307: %t242 = getelementptr inbounds %S.gen.Gen, ptr %t240, i32 0, i32 1 %t243 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 13 %t244 = load i64, ptr %t243 %t245 = load { ptr, i64, i64 }, ptr %t242 %t246 = extractvalue { ptr, i64, i64 } %t245, 1 %t247 = icmp uge i64 %t244, %t246 - br i1 %t247, label %range6915, label %inrange6916 -range6915: - call void @finch_panic_index(ptr @.str.4504, i64 3916, i64 %t244, i64 %t246) + br i1 %t247, label %range7308, label %inrange7309 +range7308: + call void @finch_panic_index(ptr @.str.4711, i64 4143, i64 %t244, i64 %t246) unreachable -inrange6916: +inrange7309: %t248 = extractvalue { ptr, i64, i64 } %t245, 0 %t249 = getelementptr inbounds { ptr, i64, i64 }, ptr %t248, i64 %t244 %t250 = load { ptr, i64, i64 }, ptr %t249 @@ -69898,20 +73831,20 @@ inrange6916: store { ptr, i64, i64 } %t251, ptr %a252 %t253 = load %S.ast.Type, ptr %a3 %t254 = call i1 @finch.gen.isInt(%S.ast.Type %t253) - br i1 %t254, label %then6917, label %endif6919 -then6917: + br i1 %t254, label %then7310, label %endif7312 +then7310: %t255 = load ptr, ptr %a1 %t256 = load ptr, ptr %a1 %t257 = load %S.gen.Val, ptr %a17 %t258 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t256, %S.gen.Val %t257) - store { ptr, i64, i64 } { ptr @.str.4505, i64 31, i64 0 }, ptr %a260 + store { ptr, i64, i64 } { ptr @.str.4712, i64 31, i64 0 }, ptr %a260 store { ptr, i64, i64 } %t258, ptr %a261 call void @finch_str_concat(ptr %a259, ptr %a260, ptr %a261) store { ptr, i64, i64 } %t258, ptr %a262 call void @finch_str_drop(ptr %a262) %t263 = load { ptr, i64, i64 }, ptr %a259 store { ptr, i64, i64 } %t263, ptr %a265 - store { ptr, i64, i64 } { ptr @.str.4506, i64 6, i64 0 }, ptr %a266 + store { ptr, i64, i64 } { ptr @.str.4713, i64 6, i64 0 }, ptr %a266 call void @finch_str_concat(ptr %a264, ptr %a265, ptr %a266) store { ptr, i64, i64 } %t263, ptr %a267 call void @finch_str_drop(ptr %a267) @@ -69924,7 +73857,7 @@ then6917: call void @finch_str_drop(ptr %a273) %t274 = load { ptr, i64, i64 }, ptr %a270 store { ptr, i64, i64 } %t274, ptr %a276 - store { ptr, i64, i64 } { ptr @.str.4507, i64 6, i64 0 }, ptr %a277 + store { ptr, i64, i64 } { ptr @.str.4714, i64 6, i64 0 }, ptr %a277 call void @finch_str_concat(ptr %a275, ptr %a276, ptr %a277) store { ptr, i64, i64 } %t274, ptr %a278 call void @finch_str_drop(ptr %a278) @@ -69942,7 +73875,7 @@ then6917: call void @finch_str_drop(ptr %a288) %t289 = load { ptr, i64, i64 }, ptr %a284 store { ptr, i64, i64 } %t289, ptr %a291 - store { ptr, i64, i64 } { ptr @.str.4508, i64 1, i64 0 }, ptr %a292 + store { ptr, i64, i64 } { ptr @.str.4715, i64 1, i64 0 }, ptr %a292 call void @finch_str_concat(ptr %a290, ptr %a291, ptr %a292) store { ptr, i64, i64 } %t289, ptr %a293 call void @finch_str_drop(ptr %a293) @@ -69956,7 +73889,7 @@ then6917: call void @finch.gen.release(ptr %t298, %S.gen.Val %t299) %t300 = load ptr, ptr %a1 %t301 = load { ptr, i64, i64 }, ptr %a297 - %t302 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4509, i64 3, i64 0 }) + %t302 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4716, i64 3, i64 0 }) %t303 = load %S.ast.Type, ptr %a3 %t304 = call { ptr, i64, i64 } @finch.gen.intCast(ptr %t300, { ptr, i64, i64 } %t301, %S.ast.Type %t302, %S.ast.Type %t303) store %S.ast.Type %t302, ptr %a305 @@ -69972,19 +73905,19 @@ then6917: call void @finch.drop.S_ast_Type(ptr %a23) call void @finch.drop.S_gen_Val(ptr %a17) ret %S.gen.Val %t311 -endif6919: +endif7312: %t312 = load ptr, ptr %a1 %t313 = load ptr, ptr %a1 %t314 = load %S.gen.Val, ptr %a17 %t315 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t313, %S.gen.Val %t314) - store { ptr, i64, i64 } { ptr @.str.4510, i64 36, i64 0 }, ptr %a317 + store { ptr, i64, i64 } { ptr @.str.4717, i64 36, i64 0 }, ptr %a317 store { ptr, i64, i64 } %t315, ptr %a318 call void @finch_str_concat(ptr %a316, ptr %a317, ptr %a318) store { ptr, i64, i64 } %t315, ptr %a319 call void @finch_str_drop(ptr %a319) %t320 = load { ptr, i64, i64 }, ptr %a316 store { ptr, i64, i64 } %t320, ptr %a322 - store { ptr, i64, i64 } { ptr @.str.4511, i64 6, i64 0 }, ptr %a323 + store { ptr, i64, i64 } { ptr @.str.4718, i64 6, i64 0 }, ptr %a323 call void @finch_str_concat(ptr %a321, ptr %a322, ptr %a323) store { ptr, i64, i64 } %t320, ptr %a324 call void @finch_str_drop(ptr %a324) @@ -69997,7 +73930,7 @@ endif6919: call void @finch_str_drop(ptr %a330) %t331 = load { ptr, i64, i64 }, ptr %a327 store { ptr, i64, i64 } %t331, ptr %a333 - store { ptr, i64, i64 } { ptr @.str.4512, i64 6, i64 0 }, ptr %a334 + store { ptr, i64, i64 } { ptr @.str.4719, i64 6, i64 0 }, ptr %a334 call void @finch_str_concat(ptr %a332, ptr %a333, ptr %a334) store { ptr, i64, i64 } %t331, ptr %a335 call void @finch_str_drop(ptr %a335) @@ -70015,7 +73948,7 @@ endif6919: call void @finch_str_drop(ptr %a345) %t346 = load { ptr, i64, i64 }, ptr %a341 store { ptr, i64, i64 } %t346, ptr %a348 - store { ptr, i64, i64 } { ptr @.str.4513, i64 1, i64 0 }, ptr %a349 + store { ptr, i64, i64 } { ptr @.str.4720, i64 1, i64 0 }, ptr %a349 call void @finch_str_concat(ptr %a347, ptr %a348, ptr %a349) store { ptr, i64, i64 } %t346, ptr %a350 call void @finch_str_drop(ptr %a350) @@ -70029,7 +73962,7 @@ endif6919: call void @finch.gen.release(ptr %t355, %S.gen.Val %t356) %t357 = load ptr, ptr %a1 %t358 = load { ptr, i64, i64 }, ptr %a354 - %t359 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4514, i64 5, i64 0 }) + %t359 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4721, i64 5, i64 0 }) %t360 = load %S.ast.Type, ptr %a3 %t361 = call { ptr, i64, i64 } @finch.gen.floatCast(ptr %t357, { ptr, i64, i64 } %t358, %S.ast.Type %t359, %S.ast.Type %t360) store %S.ast.Type %t359, ptr %a362 @@ -70045,30 +73978,30 @@ endif6919: call void @finch.drop.S_ast_Type(ptr %a23) call void @finch.drop.S_gen_Val(ptr %a17) ret %S.gen.Val %t368 -endif6912: +endif7305: %t369 = load %S.ast.Type, ptr %a3 %t370 = call i1 @finch.gen.isInt(%S.ast.Type %t369) - br label %logic.from6920 -logic.from6920: - br i1 %t370, label %logic.rhs6921, label %logic.end6922 -logic.rhs6921: + br label %logic.from7313 +logic.from7313: + br i1 %t370, label %logic.rhs7314, label %logic.end7315 +logic.rhs7314: %t371 = getelementptr inbounds %S.ast.Type, ptr %a23, i32 0, i32 0 %t372 = load { ptr, i64, i64 }, ptr %t371 store { ptr, i64, i64 } %t372, ptr %a373 - store { ptr, i64, i64 } { ptr @.str.4515, i64 4, i64 0 }, ptr %a374 + store { ptr, i64, i64 } { ptr @.str.4722, i64 4, i64 0 }, ptr %a374 %t375 = call i32 @finch_str_eq(ptr %a373, ptr %a374) %t376 = icmp ne i32 %t375, 0 - br label %logic.rend6923 -logic.rend6923: - br label %logic.end6922 -logic.end6922: - %t377 = phi i1 [ false, %logic.from6920 ], [ %t376, %logic.rend6923 ] - br i1 %t377, label %then6924, label %endif6926 -then6924: + br label %logic.rend7316 +logic.rend7316: + br label %logic.end7315 +logic.end7315: + %t377 = phi i1 [ false, %logic.from7313 ], [ %t376, %logic.rend7316 ] + br i1 %t377, label %then7317, label %endif7319 +then7317: %t378 = load ptr, ptr %a1 %t379 = getelementptr inbounds %S.gen.Val, ptr %a17, i32 0, i32 0 %t380 = load { ptr, i64, i64 }, ptr %t379 - %t381 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4516, i64 3, i64 0 }) + %t381 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4723, i64 3, i64 0 }) %t382 = load %S.ast.Type, ptr %a3 %t383 = call { ptr, i64, i64 } @finch.gen.intCast(ptr %t378, { ptr, i64, i64 } %t380, %S.ast.Type %t381, %S.ast.Type %t382) store %S.ast.Type %t381, ptr %a384 @@ -70082,45 +74015,45 @@ then6924: call void @finch.drop.S_ast_Type(ptr %a23) call void @finch.drop.S_gen_Val(ptr %a17) ret %S.gen.Val %t390 -endif6926: +endif7319: %t391 = load %S.ast.Type, ptr %a3 %t392 = call i1 @finch.gen.isInt(%S.ast.Type %t391) - br label %logic.from6927 -logic.from6927: - br i1 %t392, label %logic.end6929, label %logic.rhs6928 -logic.rhs6928: + br label %logic.from7320 +logic.from7320: + br i1 %t392, label %logic.end7322, label %logic.rhs7321 +logic.rhs7321: %t393 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t394 = load { ptr, i64, i64 }, ptr %t393 store { ptr, i64, i64 } %t394, ptr %a395 - store { ptr, i64, i64 } { ptr @.str.4517, i64 4, i64 0 }, ptr %a396 + store { ptr, i64, i64 } { ptr @.str.4724, i64 4, i64 0 }, ptr %a396 %t397 = call i32 @finch_str_eq(ptr %a395, ptr %a396) %t398 = icmp ne i32 %t397, 0 - br label %logic.rend6930 -logic.rend6930: - br label %logic.end6929 -logic.end6929: - %t399 = phi i1 [ true, %logic.from6927 ], [ %t398, %logic.rend6930 ] - br i1 %t399, label %then6931, label %endif6933 -then6931: + br label %logic.rend7323 +logic.rend7323: + br label %logic.end7322 +logic.end7322: + %t399 = phi i1 [ true, %logic.from7320 ], [ %t398, %logic.rend7323 ] + br i1 %t399, label %then7324, label %endif7326 +then7324: %t400 = load %S.ast.Type, ptr %a23 %t401 = call i1 @finch.gen.isInt(%S.ast.Type %t400) - br label %logic.from6934 -logic.from6934: - br i1 %t401, label %logic.end6936, label %logic.rhs6935 -logic.rhs6935: + br label %logic.from7327 +logic.from7327: + br i1 %t401, label %logic.end7329, label %logic.rhs7328 +logic.rhs7328: %t402 = getelementptr inbounds %S.ast.Type, ptr %a23, i32 0, i32 0 %t403 = load { ptr, i64, i64 }, ptr %t402 store { ptr, i64, i64 } %t403, ptr %a404 - store { ptr, i64, i64 } { ptr @.str.4518, i64 4, i64 0 }, ptr %a405 + store { ptr, i64, i64 } { ptr @.str.4725, i64 4, i64 0 }, ptr %a405 %t406 = call i32 @finch_str_eq(ptr %a404, ptr %a405) %t407 = icmp ne i32 %t406, 0 - br label %logic.rend6937 -logic.rend6937: - br label %logic.end6936 -logic.end6936: - %t408 = phi i1 [ true, %logic.from6934 ], [ %t407, %logic.rend6937 ] - br i1 %t408, label %then6938, label %endif6940 -then6938: + br label %logic.rend7330 +logic.rend7330: + br label %logic.end7329 +logic.end7329: + %t408 = phi i1 [ true, %logic.from7327 ], [ %t407, %logic.rend7330 ] + br i1 %t408, label %then7331, label %endif7333 +then7331: %t409 = load ptr, ptr %a1 %t410 = getelementptr inbounds %S.gen.Val, ptr %a17, i32 0, i32 0 %t411 = load { ptr, i64, i64 }, ptr %t410 @@ -70136,24 +74069,24 @@ then6938: call void @finch.drop.S_ast_Type(ptr %a23) call void @finch.drop.S_gen_Val(ptr %a17) ret %S.gen.Val %t420 -endif6940: +endif7333: %t421 = getelementptr inbounds %S.ast.Type, ptr %a23, i32 0, i32 0 %t422 = load { ptr, i64, i64 }, ptr %t421 store { ptr, i64, i64 } %t422, ptr %a423 - store { ptr, i64, i64 } { ptr @.str.4519, i64 4, i64 0 }, ptr %a424 + store { ptr, i64, i64 } { ptr @.str.4726, i64 4, i64 0 }, ptr %a424 %t425 = call i32 @finch_str_eq(ptr %a423, ptr %a424) %t426 = icmp ne i32 %t425, 0 - br i1 %t426, label %then6941, label %endif6943 -then6941: + br i1 %t426, label %then7334, label %endif7336 +then7334: %t427 = load ptr, ptr %a1 %t428 = getelementptr inbounds %S.gen.Val, ptr %a17, i32 0, i32 0 %t429 = load { ptr, i64, i64 }, ptr %t428 - store { ptr, i64, i64 } { ptr @.str.4520, i64 8, i64 0 }, ptr %a431 + store { ptr, i64, i64 } { ptr @.str.4727, i64 8, i64 0 }, ptr %a431 store { ptr, i64, i64 } %t429, ptr %a432 call void @finch_str_concat(ptr %a430, ptr %a431, ptr %a432) %t433 = load { ptr, i64, i64 }, ptr %a430 store { ptr, i64, i64 } %t433, ptr %a435 - store { ptr, i64, i64 } { ptr @.str.4521, i64 4, i64 0 }, ptr %a436 + store { ptr, i64, i64 } { ptr @.str.4728, i64 4, i64 0 }, ptr %a436 call void @finch_str_concat(ptr %a434, ptr %a435, ptr %a436) store { ptr, i64, i64 } %t433, ptr %a437 call void @finch_str_drop(ptr %a437) @@ -70181,37 +74114,37 @@ then6941: call void @finch.drop.S_ast_Type(ptr %a23) call void @finch.drop.S_gen_Val(ptr %a17) ret %S.gen.Val %t455 -endif6943: +endif7336: %t456 = load %S.ast.Type, ptr %a23 %t457 = call i1 @finch.gen.isFloat(%S.ast.Type %t456) - br label %logic.from6944 -logic.from6944: - br i1 %t457, label %logic.rhs6945, label %logic.end6946 -logic.rhs6945: + br label %logic.from7337 +logic.from7337: + br i1 %t457, label %logic.rhs7338, label %logic.end7339 +logic.rhs7338: %t458 = load %S.ast.Type, ptr %a3 %t459 = call i1 @finch.gen.isInt(%S.ast.Type %t458) - br label %logic.rend6947 -logic.rend6947: - br label %logic.end6946 -logic.end6946: - %t460 = phi i1 [ false, %logic.from6944 ], [ %t459, %logic.rend6947 ] - br i1 %t460, label %then6948, label %endif6950 -then6948: - store { ptr, i64, i64 } { ptr @.str.4522, i64 6, i64 0 }, ptr %a461 + br label %logic.rend7340 +logic.rend7340: + br label %logic.end7339 +logic.end7339: + %t460 = phi i1 [ false, %logic.from7337 ], [ %t459, %logic.rend7340 ] + br i1 %t460, label %then7341, label %endif7343 +then7341: + store { ptr, i64, i64 } { ptr @.str.4729, i64 6, i64 0 }, ptr %a461 %t462 = load %S.ast.Type, ptr %a3 %t463 = call i1 @finch.gen.isSigned(%S.ast.Type %t462) - br i1 %t463, label %then6951, label %endif6953 -then6951: + br i1 %t463, label %then7344, label %endif7346 +then7344: %t464 = load { ptr, i64, i64 }, ptr %a461 - store { ptr, i64, i64 } { ptr @.str.4523, i64 6, i64 0 }, ptr %a461 + store { ptr, i64, i64 } { ptr @.str.4730, i64 6, i64 0 }, ptr %a461 store { ptr, i64, i64 } %t464, ptr %a465 call void @finch_str_drop(ptr %a465) - br label %endif6953 -endif6953: + br label %endif7346 +endif7346: %t466 = load ptr, ptr %a1 %t467 = load { ptr, i64, i64 }, ptr %a461 store { ptr, i64, i64 } %t467, ptr %a469 - store { ptr, i64, i64 } { ptr @.str.4524, i64 1, i64 0 }, ptr %a470 + store { ptr, i64, i64 } { ptr @.str.4731, i64 1, i64 0 }, ptr %a470 call void @finch_str_concat(ptr %a468, ptr %a469, ptr %a470) %t471 = load { ptr, i64, i64 }, ptr %a468 %t472 = load ptr, ptr %a1 @@ -70226,7 +74159,7 @@ endif6953: call void @finch_str_drop(ptr %a479) %t480 = load { ptr, i64, i64 }, ptr %a475 store { ptr, i64, i64 } %t480, ptr %a482 - store { ptr, i64, i64 } { ptr @.str.4525, i64 1, i64 0 }, ptr %a483 + store { ptr, i64, i64 } { ptr @.str.4732, i64 1, i64 0 }, ptr %a483 call void @finch_str_concat(ptr %a481, ptr %a482, ptr %a483) store { ptr, i64, i64 } %t480, ptr %a484 call void @finch_str_drop(ptr %a484) @@ -70240,7 +74173,7 @@ endif6953: call void @finch_str_drop(ptr %a491) %t492 = load { ptr, i64, i64 }, ptr %a488 store { ptr, i64, i64 } %t492, ptr %a494 - store { ptr, i64, i64 } { ptr @.str.4526, i64 4, i64 0 }, ptr %a495 + store { ptr, i64, i64 } { ptr @.str.4733, i64 4, i64 0 }, ptr %a495 call void @finch_str_concat(ptr %a493, ptr %a494, ptr %a495) store { ptr, i64, i64 } %t492, ptr %a496 call void @finch_str_drop(ptr %a496) @@ -70269,17 +74202,17 @@ endif6953: call void @finch.drop.S_ast_Type(ptr %a23) call void @finch.drop.S_gen_Val(ptr %a17) ret %S.gen.Val %t514 -endif6950: - br label %endif6933 -endif6933: +endif7343: + br label %endif7326 +endif7326: %t515 = load %S.ast.Type, ptr %a3 %t516 = call i1 @finch.gen.isFloat(%S.ast.Type %t515) - br i1 %t516, label %then6954, label %endif6956 -then6954: + br i1 %t516, label %then7347, label %endif7349 +then7347: %t517 = load %S.ast.Type, ptr %a23 %t518 = call i1 @finch.gen.isInt(%S.ast.Type %t517) - br i1 %t518, label %then6957, label %endif6959 -then6957: + br i1 %t518, label %then7350, label %endif7352 +then7350: %t519 = load ptr, ptr %a1 %t520 = getelementptr inbounds %S.gen.Val, ptr %a17, i32 0, i32 0 %t521 = load { ptr, i64, i64 }, ptr %t520 @@ -70295,11 +74228,11 @@ then6957: call void @finch.drop.S_ast_Type(ptr %a23) call void @finch.drop.S_gen_Val(ptr %a17) ret %S.gen.Val %t530 -endif6959: +endif7352: %t531 = load %S.ast.Type, ptr %a23 %t532 = call i1 @finch.gen.isFloat(%S.ast.Type %t531) - br i1 %t532, label %then6960, label %endif6962 -then6960: + br i1 %t532, label %then7353, label %endif7355 +then7353: %t533 = load ptr, ptr %a1 %t534 = getelementptr inbounds %S.gen.Val, ptr %a17, i32 0, i32 0 %t535 = load { ptr, i64, i64 }, ptr %t534 @@ -70315,40 +74248,40 @@ then6960: call void @finch.drop.S_ast_Type(ptr %a23) call void @finch.drop.S_gen_Val(ptr %a17) ret %S.gen.Val %t544 -endif6962: - br label %endif6956 -endif6956: +endif7355: + br label %endif7349 +endif7349: %t545 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t546 = load { ptr, i64, i64 }, ptr %t545 store { ptr, i64, i64 } %t546, ptr %a547 - store { ptr, i64, i64 } { ptr @.str.4527, i64 4, i64 0 }, ptr %a548 + store { ptr, i64, i64 } { ptr @.str.4734, i64 4, i64 0 }, ptr %a548 %t549 = call i32 @finch_str_eq(ptr %a547, ptr %a548) %t550 = icmp ne i32 %t549, 0 - br label %logic.from6963 -logic.from6963: - br i1 %t550, label %logic.rhs6964, label %logic.end6965 -logic.rhs6964: + br label %logic.from7356 +logic.from7356: + br i1 %t550, label %logic.rhs7357, label %logic.end7358 +logic.rhs7357: %t551 = load %S.ast.Type, ptr %a23 %t552 = call i1 @finch.gen.isInt(%S.ast.Type %t551) - br label %logic.rend6966 -logic.rend6966: - br label %logic.end6965 -logic.end6965: - %t553 = phi i1 [ false, %logic.from6963 ], [ %t552, %logic.rend6966 ] - br i1 %t553, label %then6967, label %endif6969 -then6967: + br label %logic.rend7359 +logic.rend7359: + br label %logic.end7358 +logic.end7358: + %t553 = phi i1 [ false, %logic.from7356 ], [ %t552, %logic.rend7359 ] + br i1 %t553, label %then7360, label %endif7362 +then7360: %t554 = load ptr, ptr %a1 %t555 = load ptr, ptr %a1 %t556 = load %S.ast.Type, ptr %a23 %t557 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t555, %S.ast.Type %t556) - store { ptr, i64, i64 } { ptr @.str.4528, i64 8, i64 0 }, ptr %a559 + store { ptr, i64, i64 } { ptr @.str.4735, i64 8, i64 0 }, ptr %a559 store { ptr, i64, i64 } %t557, ptr %a560 call void @finch_str_concat(ptr %a558, ptr %a559, ptr %a560) store { ptr, i64, i64 } %t557, ptr %a561 call void @finch_str_drop(ptr %a561) %t562 = load { ptr, i64, i64 }, ptr %a558 store { ptr, i64, i64 } %t562, ptr %a564 - store { ptr, i64, i64 } { ptr @.str.4529, i64 1, i64 0 }, ptr %a565 + store { ptr, i64, i64 } { ptr @.str.4736, i64 1, i64 0 }, ptr %a565 call void @finch_str_concat(ptr %a563, ptr %a564, ptr %a565) store { ptr, i64, i64 } %t562, ptr %a566 call void @finch_str_drop(ptr %a566) @@ -70362,7 +74295,7 @@ then6967: call void @finch_str_drop(ptr %a573) %t574 = load { ptr, i64, i64 }, ptr %a570 store { ptr, i64, i64 } %t574, ptr %a576 - store { ptr, i64, i64 } { ptr @.str.4530, i64 3, i64 0 }, ptr %a577 + store { ptr, i64, i64 } { ptr @.str.4737, i64 3, i64 0 }, ptr %a577 call void @finch_str_concat(ptr %a575, ptr %a576, ptr %a577) store { ptr, i64, i64 } %t574, ptr %a578 call void @finch_str_drop(ptr %a578) @@ -70379,45 +74312,45 @@ then6967: call void @finch.drop.S_ast_Type(ptr %a23) call void @finch.drop.S_gen_Val(ptr %a17) ret %S.gen.Val %t587 -endif6969: +endif7362: %t588 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t589 = load { ptr, i64, i64 }, ptr %t588 store { ptr, i64, i64 } %t589, ptr %a590 - store { ptr, i64, i64 } { ptr @.str.4531, i64 3, i64 0 }, ptr %a591 + store { ptr, i64, i64 } { ptr @.str.4738, i64 3, i64 0 }, ptr %a591 %t592 = call i32 @finch_str_eq(ptr %a590, ptr %a591) %t593 = icmp ne i32 %t592, 0 - br label %logic.from6970 -logic.from6970: - br i1 %t593, label %logic.rhs6971, label %logic.end6972 -logic.rhs6971: + br label %logic.from7363 +logic.from7363: + br i1 %t593, label %logic.rhs7364, label %logic.end7365 +logic.rhs7364: %t594 = getelementptr inbounds %S.ast.Type, ptr %a23, i32 0, i32 0 %t595 = load { ptr, i64, i64 }, ptr %t594 store { ptr, i64, i64 } %t595, ptr %a596 - store { ptr, i64, i64 } { ptr @.str.4532, i64 3, i64 0 }, ptr %a597 + store { ptr, i64, i64 } { ptr @.str.4739, i64 3, i64 0 }, ptr %a597 %t598 = call i32 @finch_str_eq(ptr %a596, ptr %a597) %t599 = icmp ne i32 %t598, 0 - br label %logic.from6973 -logic.from6973: - br i1 %t599, label %logic.end6975, label %logic.rhs6974 -logic.rhs6974: + br label %logic.from7366 +logic.from7366: + br i1 %t599, label %logic.end7368, label %logic.rhs7367 +logic.rhs7367: %t600 = getelementptr inbounds %S.ast.Type, ptr %a23, i32 0, i32 0 %t601 = load { ptr, i64, i64 }, ptr %t600 store { ptr, i64, i64 } %t601, ptr %a602 - store { ptr, i64, i64 } { ptr @.str.4533, i64 4, i64 0 }, ptr %a603 + store { ptr, i64, i64 } { ptr @.str.4740, i64 4, i64 0 }, ptr %a603 %t604 = call i32 @finch_str_eq(ptr %a602, ptr %a603) %t605 = icmp ne i32 %t604, 0 - br label %logic.rend6976 -logic.rend6976: - br label %logic.end6975 -logic.end6975: - %t606 = phi i1 [ true, %logic.from6973 ], [ %t605, %logic.rend6976 ] - br label %logic.rend6977 -logic.rend6977: - br label %logic.end6972 -logic.end6972: - %t607 = phi i1 [ false, %logic.from6970 ], [ %t606, %logic.rend6977 ] - br i1 %t607, label %then6978, label %endif6980 -then6978: + br label %logic.rend7369 +logic.rend7369: + br label %logic.end7368 +logic.end7368: + %t606 = phi i1 [ true, %logic.from7366 ], [ %t605, %logic.rend7369 ] + br label %logic.rend7370 +logic.rend7370: + br label %logic.end7365 +logic.end7365: + %t607 = phi i1 [ false, %logic.from7363 ], [ %t606, %logic.rend7370 ] + br i1 %t607, label %then7371, label %endif7373 +then7371: %t608 = getelementptr inbounds %S.gen.Val, ptr %a17, i32 0, i32 0 %t609 = load { ptr, i64, i64 }, ptr %t608 store { ptr, i64, i64 } %t609, ptr %a610 @@ -70432,43 +74365,43 @@ then6978: call void @finch.drop.S_ast_Type(ptr %a23) call void @finch.drop.S_gen_Val(ptr %a17) ret %S.gen.Val %t618 -endif6980: +endif7373: %t619 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t620 = load { ptr, i64, i64 }, ptr %t619 store { ptr, i64, i64 } %t620, ptr %a621 - store { ptr, i64, i64 } { ptr @.str.4534, i64 3, i64 0 }, ptr %a622 + store { ptr, i64, i64 } { ptr @.str.4741, i64 3, i64 0 }, ptr %a622 %t623 = call i32 @finch_str_eq(ptr %a621, ptr %a622) %t624 = icmp ne i32 %t623, 0 - br label %logic.from6981 -logic.from6981: - br i1 %t624, label %logic.rhs6982, label %logic.end6983 -logic.rhs6982: + br label %logic.from7374 +logic.from7374: + br i1 %t624, label %logic.rhs7375, label %logic.end7376 +logic.rhs7375: %t625 = load %S.ast.Type, ptr %a23 %t626 = call i1 @finch.gen.isInt(%S.ast.Type %t625) - br label %logic.rend6984 -logic.rend6984: - br label %logic.end6983 -logic.end6983: - %t627 = phi i1 [ false, %logic.from6981 ], [ %t626, %logic.rend6984 ] - br i1 %t627, label %then6985, label %endif6987 -then6985: + br label %logic.rend7377 +logic.rend7377: + br label %logic.end7376 +logic.end7376: + %t627 = phi i1 [ false, %logic.from7374 ], [ %t626, %logic.rend7377 ] + br i1 %t627, label %then7378, label %endif7380 +then7378: %t628 = load ptr, ptr %a1 %t629 = load ptr, ptr %a1 %t630 = getelementptr inbounds %S.gen.Val, ptr %a17, i32 0, i32 0 %t631 = load { ptr, i64, i64 }, ptr %t630 %t632 = load %S.ast.Type, ptr %a23 - %t633 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4536, i64 3, i64 0 }) + %t633 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4743, i64 3, i64 0 }) %t634 = call { ptr, i64, i64 } @finch.gen.intCast(ptr %t629, { ptr, i64, i64 } %t631, %S.ast.Type %t632, %S.ast.Type %t633) store %S.ast.Type %t633, ptr %a635 call void @finch.drop.S_ast_Type(ptr %a635) - store { ptr, i64, i64 } { ptr @.str.4535, i64 13, i64 0 }, ptr %a637 + store { ptr, i64, i64 } { ptr @.str.4742, i64 13, i64 0 }, ptr %a637 store { ptr, i64, i64 } %t634, ptr %a638 call void @finch_str_concat(ptr %a636, ptr %a637, ptr %a638) store { ptr, i64, i64 } %t634, ptr %a639 call void @finch_str_drop(ptr %a639) %t640 = load { ptr, i64, i64 }, ptr %a636 store { ptr, i64, i64 } %t640, ptr %a642 - store { ptr, i64, i64 } { ptr @.str.4537, i64 7, i64 0 }, ptr %a643 + store { ptr, i64, i64 } { ptr @.str.4744, i64 7, i64 0 }, ptr %a643 call void @finch_str_concat(ptr %a641, ptr %a642, ptr %a643) store { ptr, i64, i64 } %t640, ptr %a644 call void @finch_str_drop(ptr %a644) @@ -70485,35 +74418,35 @@ then6985: call void @finch.drop.S_ast_Type(ptr %a23) call void @finch.drop.S_gen_Val(ptr %a17) ret %S.gen.Val %t653 -endif6987: +endif7380: %t654 = load %S.ast.Type, ptr %a3 %t655 = call i1 @finch.gen.isInt(%S.ast.Type %t654) - br label %logic.from6988 -logic.from6988: - br i1 %t655, label %logic.rhs6989, label %logic.end6990 -logic.rhs6989: + br label %logic.from7381 +logic.from7381: + br i1 %t655, label %logic.rhs7382, label %logic.end7383 +logic.rhs7382: %t656 = getelementptr inbounds %S.ast.Type, ptr %a23, i32 0, i32 0 %t657 = load { ptr, i64, i64 }, ptr %t656 store { ptr, i64, i64 } %t657, ptr %a658 - store { ptr, i64, i64 } { ptr @.str.4538, i64 3, i64 0 }, ptr %a659 + store { ptr, i64, i64 } { ptr @.str.4745, i64 3, i64 0 }, ptr %a659 %t660 = call i32 @finch_str_eq(ptr %a658, ptr %a659) %t661 = icmp ne i32 %t660, 0 - br label %logic.rend6991 -logic.rend6991: - br label %logic.end6990 -logic.end6990: - %t662 = phi i1 [ false, %logic.from6988 ], [ %t661, %logic.rend6991 ] - br i1 %t662, label %then6992, label %endif6994 -then6992: + br label %logic.rend7384 +logic.rend7384: + br label %logic.end7383 +logic.end7383: + %t662 = phi i1 [ false, %logic.from7381 ], [ %t661, %logic.rend7384 ] + br i1 %t662, label %then7385, label %endif7387 +then7385: %t663 = load ptr, ptr %a1 %t664 = getelementptr inbounds %S.gen.Val, ptr %a17, i32 0, i32 0 %t665 = load { ptr, i64, i64 }, ptr %t664 - store { ptr, i64, i64 } { ptr @.str.4539, i64 13, i64 0 }, ptr %a667 + store { ptr, i64, i64 } { ptr @.str.4746, i64 13, i64 0 }, ptr %a667 store { ptr, i64, i64 } %t665, ptr %a668 call void @finch_str_concat(ptr %a666, ptr %a667, ptr %a668) %t669 = load { ptr, i64, i64 }, ptr %a666 store { ptr, i64, i64 } %t669, ptr %a671 - store { ptr, i64, i64 } { ptr @.str.4540, i64 4, i64 0 }, ptr %a672 + store { ptr, i64, i64 } { ptr @.str.4747, i64 4, i64 0 }, ptr %a672 call void @finch_str_concat(ptr %a670, ptr %a671, ptr %a672) store { ptr, i64, i64 } %t669, ptr %a673 call void @finch_str_drop(ptr %a673) @@ -70541,69 +74474,69 @@ then6992: call void @finch.drop.S_ast_Type(ptr %a23) call void @finch.drop.S_gen_Val(ptr %a17) ret %S.gen.Val %t691 -endif6994: +endif7387: %t692 = getelementptr inbounds %S.ast.Type, ptr %a3, i32 0, i32 0 %t693 = load { ptr, i64, i64 }, ptr %t692 store { ptr, i64, i64 } %t693, ptr %a694 - store { ptr, i64, i64 } { ptr @.str.4541, i64 3, i64 0 }, ptr %a695 + store { ptr, i64, i64 } { ptr @.str.4748, i64 3, i64 0 }, ptr %a695 %t696 = call i32 @finch_str_eq(ptr %a694, ptr %a695) %t697 = icmp ne i32 %t696, 0 - br label %logic.from6995 -logic.from6995: - br i1 %t697, label %logic.rhs6996, label %logic.end6997 -logic.rhs6996: + br label %logic.from7388 +logic.from7388: + br i1 %t697, label %logic.rhs7389, label %logic.end7390 +logic.rhs7389: %t698 = getelementptr inbounds %S.ast.Type, ptr %a23, i32 0, i32 0 %t699 = load { ptr, i64, i64 }, ptr %t698 store { ptr, i64, i64 } %t699, ptr %a700 - store { ptr, i64, i64 } { ptr @.str.4542, i64 3, i64 0 }, ptr %a701 + store { ptr, i64, i64 } { ptr @.str.4749, i64 3, i64 0 }, ptr %a701 %t702 = call i32 @finch_str_eq(ptr %a700, ptr %a701) %t703 = icmp ne i32 %t702, 0 - br label %logic.rend6998 -logic.rend6998: - br label %logic.end6997 -logic.end6997: - %t704 = phi i1 [ false, %logic.from6995 ], [ %t703, %logic.rend6998 ] - br i1 %t704, label %then6999, label %endif7001 -then6999: + br label %logic.rend7391 +logic.rend7391: + br label %logic.end7390 +logic.end7390: + %t704 = phi i1 [ false, %logic.from7388 ], [ %t703, %logic.rend7391 ] + br i1 %t704, label %then7392, label %endif7394 +then7392: %t705 = load ptr, ptr %a1 %t706 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t707 = load { ptr, i64, i64 }, ptr %t706 %t708 = extractvalue { ptr, i64, i64 } %t707, 1 %t709 = icmp uge i64 0, %t708 - br i1 %t709, label %range7002, label %inrange7003 -range7002: - call void @finch_panic_index(ptr @.str.4543, i64 3965, i64 0, i64 %t708) + br i1 %t709, label %range7395, label %inrange7396 +range7395: + call void @finch_panic_index(ptr @.str.4750, i64 4192, i64 0, i64 %t708) unreachable -inrange7003: +inrange7396: %t710 = extractvalue { ptr, i64, i64 } %t707, 0 %t711 = getelementptr inbounds %S.ast.Node, ptr %t710, i64 0 %t712 = load %S.ast.Node, ptr %t711 - call void @finch.gen.fail(ptr %t705, %S.ast.Node %t712, { ptr, i64, i64 } { ptr @.str.4544, i64 70, i64 0 }) - br label %endif7001 -endif7001: + call void @finch.gen.fail(ptr %t705, %S.ast.Node %t712, { ptr, i64, i64 } { ptr @.str.4751, i64 70, i64 0 }) + br label %endif7394 +endif7394: %t713 = load ptr, ptr %a1 %t714 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t715 = load { ptr, i64, i64 }, ptr %t714 %t716 = extractvalue { ptr, i64, i64 } %t715, 1 %t717 = icmp uge i64 0, %t716 - br i1 %t717, label %range7004, label %inrange7005 -range7004: - call void @finch_panic_index(ptr @.str.4545, i64 3967, i64 0, i64 %t716) + br i1 %t717, label %range7397, label %inrange7398 +range7397: + call void @finch_panic_index(ptr @.str.4752, i64 4194, i64 0, i64 %t716) unreachable -inrange7005: +inrange7398: %t718 = extractvalue { ptr, i64, i64 } %t715, 0 %t719 = getelementptr inbounds %S.ast.Node, ptr %t718, i64 0 %t720 = load %S.ast.Node, ptr %t719 %t721 = load %S.ast.Type, ptr %a23 %t722 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t721) - store { ptr, i64, i64 } { ptr @.str.4546, i64 11, i64 0 }, ptr %a724 + store { ptr, i64, i64 } { ptr @.str.4753, i64 11, i64 0 }, ptr %a724 store { ptr, i64, i64 } %t722, ptr %a725 call void @finch_str_concat(ptr %a723, ptr %a724, ptr %a725) store { ptr, i64, i64 } %t722, ptr %a726 call void @finch_str_drop(ptr %a726) %t727 = load { ptr, i64, i64 }, ptr %a723 store { ptr, i64, i64 } %t727, ptr %a729 - store { ptr, i64, i64 } { ptr @.str.4547, i64 6, i64 0 }, ptr %a730 + store { ptr, i64, i64 } { ptr @.str.4754, i64 6, i64 0 }, ptr %a730 call void @finch_str_concat(ptr %a728, ptr %a729, ptr %a730) store { ptr, i64, i64 } %t727, ptr %a731 call void @finch_str_drop(ptr %a731) @@ -70647,18 +74580,18 @@ entry: %t3 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t4 = load { ptr, i64, i64 }, ptr %t3 store { ptr, i64, i64 } %t4, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.4548, i64 6, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.4755, i64 6, i64 0 }, ptr %a6 %t7 = call i32 @finch_str_eq(ptr %a5, ptr %a6) %t8 = icmp ne i32 %t7, 0 - br i1 %t8, label %then7006, label %endif7008 -then7006: + br i1 %t8, label %then7399, label %endif7401 +then7399: %t9 = load ptr, ptr %a1 %t10 = icmp eq ptr %t9, null - br i1 %t10, label %panic7009, label %ok7010 -panic7009: - call void @finch_panic(ptr @.str.4549, i64 4000, ptr @.str.4550) + br i1 %t10, label %panic7402, label %ok7403 +panic7402: + call void @finch_panic(ptr @.str.4756, i64 4227, ptr @.str.4757) unreachable -ok7010: +ok7403: %t11 = getelementptr inbounds %S.gen.Gen, ptr %t9, i32 0, i32 16 %t12 = load ptr, ptr %a1 %t13 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 @@ -70669,25 +74602,25 @@ ok7010: %t18 = load { ptr, i64, i64 }, ptr %t11 %t19 = extractvalue { ptr, i64, i64 } %t18, 1 %t20 = icmp uge i64 %t17, %t19 - br i1 %t20, label %range7011, label %inrange7012 -range7011: - call void @finch_panic_index(ptr @.str.4551, i64 4000, i64 %t17, i64 %t19) + br i1 %t20, label %range7404, label %inrange7405 +range7404: + call void @finch_panic_index(ptr @.str.4758, i64 4227, i64 %t17, i64 %t19) unreachable -inrange7012: +inrange7405: %t21 = extractvalue { ptr, i64, i64 } %t18, 0 %t22 = getelementptr inbounds %S.gen.StructDef, ptr %t21, i64 %t17 %t23 = getelementptr inbounds %S.gen.StructDef, ptr %t22, i32 0, i32 9 %t24 = load i64, ptr %t23 ret i64 %t24 -endif7008: +endif7401: %t25 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t26 = load { ptr, i64, i64 }, ptr %t25 store { ptr, i64, i64 } %t26, ptr %a27 - store { ptr, i64, i64 } { ptr @.str.4552, i64 5, i64 0 }, ptr %a28 + store { ptr, i64, i64 } { ptr @.str.4759, i64 5, i64 0 }, ptr %a28 %t29 = call i32 @finch_str_eq(ptr %a27, ptr %a28) %t30 = icmp ne i32 %t29, 0 - br i1 %t30, label %then7013, label %endif7015 -then7013: + br i1 %t30, label %then7406, label %endif7408 +then7406: %t31 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 4 %t32 = load i64, ptr %t31 %t33 = load ptr, ptr %a1 @@ -70695,73 +74628,73 @@ then7013: %t35 = load { ptr, i64, i64 }, ptr %t34 %t36 = extractvalue { ptr, i64, i64 } %t35, 1 %t37 = icmp uge i64 0, %t36 - br i1 %t37, label %range7016, label %inrange7017 -range7016: - call void @finch_panic_index(ptr @.str.4553, i64 4003, i64 0, i64 %t36) + br i1 %t37, label %range7409, label %inrange7410 +range7409: + call void @finch_panic_index(ptr @.str.4760, i64 4230, i64 0, i64 %t36) unreachable -inrange7017: +inrange7410: %t38 = extractvalue { ptr, i64, i64 } %t35, 0 %t39 = getelementptr inbounds %S.ast.Type, ptr %t38, i64 0 %t40 = load %S.ast.Type, ptr %t39 %t41 = call i64 @finch.gen.sizeBytes(ptr %t33, %S.ast.Type %t40) %t42 = mul i64 %t32, %t41 ret i64 %t42 -endif7015: +endif7408: %t43 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t44 = load { ptr, i64, i64 }, ptr %t43 store { ptr, i64, i64 } %t44, ptr %a45 - store { ptr, i64, i64 } { ptr @.str.4554, i64 3, i64 0 }, ptr %a46 + store { ptr, i64, i64 } { ptr @.str.4761, i64 3, i64 0 }, ptr %a46 %t47 = call i32 @finch_str_eq(ptr %a45, ptr %a46) %t48 = icmp ne i32 %t47, 0 - br label %logic.from7018 -logic.from7018: - br i1 %t48, label %logic.end7020, label %logic.rhs7019 -logic.rhs7019: + br label %logic.from7411 +logic.from7411: + br i1 %t48, label %logic.end7413, label %logic.rhs7412 +logic.rhs7412: %t49 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t50 = load { ptr, i64, i64 }, ptr %t49 store { ptr, i64, i64 } %t50, ptr %a51 - store { ptr, i64, i64 } { ptr @.str.4555, i64 3, i64 0 }, ptr %a52 + store { ptr, i64, i64 } { ptr @.str.4762, i64 3, i64 0 }, ptr %a52 %t53 = call i32 @finch_str_eq(ptr %a51, ptr %a52) %t54 = icmp ne i32 %t53, 0 - br label %logic.rend7021 -logic.rend7021: - br label %logic.end7020 -logic.end7020: - %t55 = phi i1 [ true, %logic.from7018 ], [ %t54, %logic.rend7021 ] - br i1 %t55, label %then7022, label %endif7024 -then7022: + br label %logic.rend7414 +logic.rend7414: + br label %logic.end7413 +logic.end7413: + %t55 = phi i1 [ true, %logic.from7411 ], [ %t54, %logic.rend7414 ] + br i1 %t55, label %then7415, label %endif7417 +then7415: ret i64 8 -endif7024: +endif7417: %t56 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t57 = load { ptr, i64, i64 }, ptr %t56 store { ptr, i64, i64 } %t57, ptr %a58 - store { ptr, i64, i64 } { ptr @.str.4556, i64 5, i64 0 }, ptr %a59 + store { ptr, i64, i64 } { ptr @.str.4763, i64 5, i64 0 }, ptr %a59 %t60 = call i32 @finch_str_eq(ptr %a58, ptr %a59) %t61 = icmp ne i32 %t60, 0 - br i1 %t61, label %then7025, label %endif7027 -then7025: + br i1 %t61, label %then7418, label %endif7420 +then7418: ret i64 8 -endif7027: +endif7420: %t62 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t63 = load { ptr, i64, i64 }, ptr %t62 store { ptr, i64, i64 } %t63, ptr %a64 - store { ptr, i64, i64 } { ptr @.str.4557, i64 3, i64 0 }, ptr %a65 + store { ptr, i64, i64 } { ptr @.str.4764, i64 3, i64 0 }, ptr %a65 %t66 = call i32 @finch_str_eq(ptr %a64, ptr %a65) %t67 = icmp ne i32 %t66, 0 - br i1 %t67, label %then7028, label %endif7030 -then7028: + br i1 %t67, label %then7421, label %endif7423 +then7421: ret i64 4 -endif7030: +endif7423: %t68 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t69 = load { ptr, i64, i64 }, ptr %t68 store { ptr, i64, i64 } %t69, ptr %a70 - store { ptr, i64, i64 } { ptr @.str.4558, i64 4, i64 0 }, ptr %a71 + store { ptr, i64, i64 } { ptr @.str.4765, i64 4, i64 0 }, ptr %a71 %t72 = call i32 @finch_str_eq(ptr %a70, ptr %a71) %t73 = icmp ne i32 %t72, 0 - br i1 %t73, label %then7031, label %endif7033 -then7031: + br i1 %t73, label %then7424, label %endif7426 +then7424: ret i64 1 -endif7033: +endif7426: %t74 = load %S.ast.Type, ptr %a2 %t75 = call i64 @finch.gen.bitsOf(%S.ast.Type %t74) %t76 = sdiv i64 %t75, 8 @@ -70806,18 +74739,18 @@ entry: %t5 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t6 = load { ptr, i64, i64 }, ptr %t5 store { ptr, i64, i64 } %t6, ptr %a7 - store { ptr, i64, i64 } { ptr @.str.4559, i64 6, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.4766, i64 6, i64 0 }, ptr %a8 %t9 = call i32 @finch_str_eq(ptr %a7, ptr %a8) %t10 = icmp ne i32 %t9, 0 - br i1 %t10, label %then7034, label %else7035 -then7034: + br i1 %t10, label %then7427, label %else7428 +then7427: %t11 = load ptr, ptr %a1 %t12 = icmp eq ptr %t11, null - br i1 %t12, label %panic7037, label %ok7038 -panic7037: - call void @finch_panic(ptr @.str.4560, i64 4024, ptr @.str.4561) + br i1 %t12, label %panic7430, label %ok7431 +panic7430: + call void @finch_panic(ptr @.str.4767, i64 4251, ptr @.str.4768) unreachable -ok7038: +ok7431: %t13 = getelementptr inbounds %S.gen.Gen, ptr %t11, i32 0, i32 16 %t14 = load ptr, ptr %a1 %t15 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 @@ -70828,11 +74761,11 @@ ok7038: %t20 = load { ptr, i64, i64 }, ptr %t13 %t21 = extractvalue { ptr, i64, i64 } %t20, 1 %t22 = icmp uge i64 %t19, %t21 - br i1 %t22, label %range7039, label %inrange7040 -range7039: - call void @finch_panic_index(ptr @.str.4562, i64 4024, i64 %t19, i64 %t21) + br i1 %t22, label %range7432, label %inrange7433 +range7432: + call void @finch_panic_index(ptr @.str.4769, i64 4251, i64 %t19, i64 %t21) unreachable -inrange7040: +inrange7433: %t23 = extractvalue { ptr, i64, i64 } %t20, 0 %t24 = getelementptr inbounds %S.gen.StructDef, ptr %t23, i64 %t19 %t25 = load %S.gen.StructDef, ptr %t24 @@ -70844,23 +74777,23 @@ inrange7040: %t31 = getelementptr inbounds { ptr, i64, i64 }, ptr %t30, i32 0, i32 1 %t32 = load i64, ptr %t31 store i64 0, ptr %a33 - br label %for.cond7041 -for.cond7041: + br label %for.cond7434 +for.cond7434: %t34 = load i64, ptr %a33 %t35 = icmp slt i64 %t34, %t32 - br i1 %t35, label %for.body7042, label %for.end7044 -for.body7042: + br i1 %t35, label %for.body7435, label %for.end7437 +for.body7435: %t36 = load ptr, ptr %a1 %t37 = getelementptr inbounds %S.gen.StructDef, ptr %a29, i32 0, i32 12 %t38 = load i64, ptr %a33 %t39 = load { ptr, i64, i64 }, ptr %t37 %t40 = extractvalue { ptr, i64, i64 } %t39, 1 %t41 = icmp uge i64 %t38, %t40 - br i1 %t41, label %range7045, label %inrange7046 -range7045: - call void @finch_panic_index(ptr @.str.4563, i64 4026, i64 %t38, i64 %t40) + br i1 %t41, label %range7438, label %inrange7439 +range7438: + call void @finch_panic_index(ptr @.str.4770, i64 4253, i64 %t38, i64 %t40) unreachable -inrange7046: +inrange7439: %t42 = extractvalue { ptr, i64, i64 } %t39, 0 %t43 = getelementptr inbounds %S.ast.Type, ptr %t42, i64 %t38 %t44 = load %S.ast.Type, ptr %t43 @@ -70870,11 +74803,11 @@ inrange7046: %t48 = load { ptr, i64, i64 }, ptr %t46 %t49 = extractvalue { ptr, i64, i64 } %t48, 1 %t50 = icmp uge i64 %t47, %t49 - br i1 %t50, label %range7047, label %inrange7048 -range7047: - call void @finch_panic_index(ptr @.str.4564, i64 4026, i64 %t47, i64 %t49) + br i1 %t50, label %range7440, label %inrange7441 +range7440: + call void @finch_panic_index(ptr @.str.4771, i64 4253, i64 %t47, i64 %t49) unreachable -inrange7048: +inrange7441: %t51 = extractvalue { ptr, i64, i64 } %t48, 0 %t52 = getelementptr inbounds i64, ptr %t51, i64 %t47 %t53 = load i64, ptr %t52 @@ -70882,14 +74815,14 @@ inrange7048: %t55 = call { ptr, i64, i64 } @finch.gen.leavesOf(ptr %t36, %S.ast.Type %t44, i64 %t54) store { ptr, i64, i64 } %t55, ptr %a56 store i64 0, ptr %a57 - br label %each.cond7049 -each.cond7049: + br label %each.cond7442 +each.cond7442: %t58 = getelementptr inbounds { ptr, i64, i64 }, ptr %a56, i32 0, i32 1 %t59 = load i64, ptr %t58 %t60 = load i64, ptr %a57 %t61 = icmp slt i64 %t60, %t59 - br i1 %t61, label %each.body7050, label %each.end7052 -each.body7050: + br i1 %t61, label %each.body7443, label %each.end7445 +each.body7443: %t62 = load ptr, ptr %a56 %t63 = getelementptr inbounds %S.gen.Leaf, ptr %t62, i64 %t60 %t64 = load %S.gen.Leaf, ptr %t63 @@ -70903,42 +74836,42 @@ each.body7050: %t71 = getelementptr inbounds %S.gen.Leaf, ptr %t70, i64 %t68 store %S.gen.Leaf %t67, ptr %t71 store i64 %t69, ptr %t66 - br label %each.step7051 -each.step7051: + br label %each.step7444 +each.step7444: %t72 = load i64, ptr %a57 %t73 = add i64 %t72, 1 store i64 %t73, ptr %a57 - br label %each.cond7049 -each.end7052: + br label %each.cond7442 +each.end7445: call void @finch.drop.arr_S_gen_Leaf(ptr %a56) - br label %for.step7043 -for.step7043: + br label %for.step7436 +for.step7436: %t74 = load i64, ptr %a33 %t75 = add i64 %t74, 1 store i64 %t75, ptr %a33 - br label %for.cond7041 -for.end7044: + br label %for.cond7434 +for.end7437: call void @finch.drop.S_gen_StructDef(ptr %a29) - br label %endif7036 -else7035: + br label %endif7429 +else7428: %t76 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t77 = load { ptr, i64, i64 }, ptr %t76 store { ptr, i64, i64 } %t77, ptr %a78 - store { ptr, i64, i64 } { ptr @.str.4565, i64 5, i64 0 }, ptr %a79 + store { ptr, i64, i64 } { ptr @.str.4772, i64 5, i64 0 }, ptr %a79 %t80 = call i32 @finch_str_eq(ptr %a78, ptr %a79) %t81 = icmp ne i32 %t80, 0 - br i1 %t81, label %then7053, label %else7054 -then7053: + br i1 %t81, label %then7446, label %else7447 +then7446: %t82 = load ptr, ptr %a1 %t83 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t84 = load { ptr, i64, i64 }, ptr %t83 %t85 = extractvalue { ptr, i64, i64 } %t84, 1 %t86 = icmp uge i64 0, %t85 - br i1 %t86, label %range7056, label %inrange7057 -range7056: - call void @finch_panic_index(ptr @.str.4566, i64 4031, i64 0, i64 %t85) + br i1 %t86, label %range7449, label %inrange7450 +range7449: + call void @finch_panic_index(ptr @.str.4773, i64 4258, i64 0, i64 %t85) unreachable -inrange7057: +inrange7450: %t87 = extractvalue { ptr, i64, i64 } %t84, 0 %t88 = getelementptr inbounds %S.ast.Type, ptr %t87, i64 0 %t89 = load %S.ast.Type, ptr %t88 @@ -70947,22 +74880,22 @@ inrange7057: %t92 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 4 %t93 = load i64, ptr %t92 store i64 0, ptr %a94 - br label %for.cond7058 -for.cond7058: + br label %for.cond7451 +for.cond7451: %t95 = load i64, ptr %a94 %t96 = icmp slt i64 %t95, %t93 - br i1 %t96, label %for.body7059, label %for.end7061 -for.body7059: + br i1 %t96, label %for.body7452, label %for.end7454 +for.body7452: %t97 = load ptr, ptr %a1 %t98 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 1 %t99 = load { ptr, i64, i64 }, ptr %t98 %t100 = extractvalue { ptr, i64, i64 } %t99, 1 %t101 = icmp uge i64 0, %t100 - br i1 %t101, label %range7062, label %inrange7063 -range7062: - call void @finch_panic_index(ptr @.str.4567, i64 4033, i64 0, i64 %t100) + br i1 %t101, label %range7455, label %inrange7456 +range7455: + call void @finch_panic_index(ptr @.str.4774, i64 4260, i64 0, i64 %t100) unreachable -inrange7063: +inrange7456: %t102 = extractvalue { ptr, i64, i64 } %t99, 0 %t103 = getelementptr inbounds %S.ast.Type, ptr %t102, i64 0 %t104 = load %S.ast.Type, ptr %t103 @@ -70974,14 +74907,14 @@ inrange7063: %t110 = call { ptr, i64, i64 } @finch.gen.leavesOf(ptr %t97, %S.ast.Type %t104, i64 %t109) store { ptr, i64, i64 } %t110, ptr %a111 store i64 0, ptr %a112 - br label %each.cond7064 -each.cond7064: + br label %each.cond7457 +each.cond7457: %t113 = getelementptr inbounds { ptr, i64, i64 }, ptr %a111, i32 0, i32 1 %t114 = load i64, ptr %t113 %t115 = load i64, ptr %a112 %t116 = icmp slt i64 %t115, %t114 - br i1 %t116, label %each.body7065, label %each.end7067 -each.body7065: + br i1 %t116, label %each.body7458, label %each.end7460 +each.body7458: %t117 = load ptr, ptr %a111 %t118 = getelementptr inbounds %S.gen.Leaf, ptr %t117, i64 %t115 %t119 = load %S.gen.Leaf, ptr %t118 @@ -70995,23 +74928,23 @@ each.body7065: %t126 = getelementptr inbounds %S.gen.Leaf, ptr %t125, i64 %t123 store %S.gen.Leaf %t122, ptr %t126 store i64 %t124, ptr %t121 - br label %each.step7066 -each.step7066: + br label %each.step7459 +each.step7459: %t127 = load i64, ptr %a112 %t128 = add i64 %t127, 1 store i64 %t128, ptr %a112 - br label %each.cond7064 -each.end7067: + br label %each.cond7457 +each.end7460: call void @finch.drop.arr_S_gen_Leaf(ptr %a111) - br label %for.step7060 -for.step7060: + br label %for.step7453 +for.step7453: %t129 = load i64, ptr %a94 %t130 = add i64 %t129, 1 store i64 %t130, ptr %a94 - br label %for.cond7058 -for.end7061: - br label %endif7055 -else7054: + br label %for.cond7451 +for.end7454: + br label %endif7448 +else7447: %t131 = getelementptr inbounds { ptr, i64, i64 }, ptr %a4, i32 0, i32 1 %t132 = load i64, ptr %a3 %t133 = insertvalue %S.gen.Leaf zeroinitializer, i64 %t132, 0 @@ -71025,7 +74958,7 @@ else7054: %t141 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t142 = load { ptr, i64, i64 }, ptr %t141 store { ptr, i64, i64 } %t142, ptr %a143 - store { ptr, i64, i64 } { ptr @.str.4568, i64 5, i64 0 }, ptr %a144 + store { ptr, i64, i64 } { ptr @.str.4775, i64 5, i64 0 }, ptr %a144 %t145 = call i32 @finch_str_eq(ptr %a143, ptr %a144) %t146 = icmp ne i32 %t145, 0 %t147 = insertvalue %S.gen.Leaf %t140, i1 %t146, 3 @@ -71036,10 +74969,10 @@ else7054: %t151 = getelementptr inbounds %S.gen.Leaf, ptr %t150, i64 %t148 store %S.gen.Leaf %t147, ptr %t151 store i64 %t149, ptr %t131 - br label %endif7055 -endif7055: - br label %endif7036 -endif7036: + br label %endif7448 +endif7448: + br label %endif7429 +endif7429: %t152 = load { ptr, i64, i64 }, ptr %a4 ret { ptr, i64, i64 } %t152 } @@ -71138,28 +75071,28 @@ entry: %t15 = getelementptr inbounds { ptr, i64, i64 }, ptr %a14, i32 0, i32 1 %t16 = load i64, ptr %t15 %t17 = icmp sgt i64 %t16, 0 - br label %logic.from7068 -logic.from7068: - br i1 %t17, label %logic.rhs7069, label %logic.end7070 -logic.rhs7069: + br label %logic.from7461 +logic.from7461: + br i1 %t17, label %logic.rhs7462, label %logic.end7463 +logic.rhs7462: %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %a14, i32 0, i32 1 %t19 = load i64, ptr %t18 %t20 = icmp sle i64 %t19, 4 - br label %logic.rend7071 -logic.rend7071: - br label %logic.end7070 -logic.end7070: - %t21 = phi i1 [ false, %logic.from7068 ], [ %t20, %logic.rend7071 ] + br label %logic.rend7464 +logic.rend7464: + br label %logic.end7463 +logic.end7463: + %t21 = phi i1 [ false, %logic.from7461 ], [ %t20, %logic.rend7464 ] store i1 %t21, ptr %a22 store i64 0, ptr %a23 - br label %each.cond7072 -each.cond7072: + br label %each.cond7465 +each.cond7465: %t24 = getelementptr inbounds { ptr, i64, i64 }, ptr %a14, i32 0, i32 1 %t25 = load i64, ptr %t24 %t26 = load i64, ptr %a23 %t27 = icmp slt i64 %t26, %t25 - br i1 %t27, label %each.body7073, label %each.end7075 -each.body7073: + br i1 %t27, label %each.body7466, label %each.end7468 +each.body7466: %t28 = load ptr, ptr %a14 %t29 = getelementptr inbounds %S.gen.Leaf, ptr %t28, i64 %t26 %t30 = load %S.gen.Leaf, ptr %t29 @@ -71167,69 +75100,69 @@ each.body7073: %t32 = getelementptr inbounds %S.gen.Leaf, ptr %a31, i32 0, i32 2 %t33 = load i1, ptr %t32 %t34 = xor i1 %t33, true - br label %logic.from7076 -logic.from7076: - br i1 %t34, label %logic.end7078, label %logic.rhs7077 -logic.rhs7077: + br label %logic.from7469 +logic.from7469: + br i1 %t34, label %logic.end7471, label %logic.rhs7470 +logic.rhs7470: %t35 = getelementptr inbounds %S.gen.Leaf, ptr %a31, i32 0, i32 3 %t36 = load i1, ptr %t35 %t37 = load { ptr, i64, i64 }, ptr %a14 %t38 = extractvalue { ptr, i64, i64 } %t37, 1 %t39 = icmp uge i64 0, %t38 - br i1 %t39, label %range7079, label %inrange7080 -range7079: - call void @finch_panic_index(ptr @.str.4569, i64 4050, i64 0, i64 %t38) + br i1 %t39, label %range7472, label %inrange7473 +range7472: + call void @finch_panic_index(ptr @.str.4776, i64 4277, i64 0, i64 %t38) unreachable -inrange7080: +inrange7473: %t40 = extractvalue { ptr, i64, i64 } %t37, 0 %t41 = getelementptr inbounds %S.gen.Leaf, ptr %t40, i64 0 %t42 = getelementptr inbounds %S.gen.Leaf, ptr %t41, i32 0, i32 3 %t43 = load i1, ptr %t42 %t44 = icmp ne i1 %t36, %t43 - br label %logic.rend7081 -logic.rend7081: - br label %logic.end7078 -logic.end7078: - %t45 = phi i1 [ true, %logic.from7076 ], [ %t44, %logic.rend7081 ] - br i1 %t45, label %then7082, label %endif7084 -then7082: + br label %logic.rend7474 +logic.rend7474: + br label %logic.end7471 +logic.end7471: + %t45 = phi i1 [ true, %logic.from7469 ], [ %t44, %logic.rend7474 ] + br i1 %t45, label %then7475, label %endif7477 +then7475: store i1 false, ptr %a22 - br label %endif7084 -endif7084: - br label %each.step7074 -each.step7074: + br label %endif7477 +endif7477: + br label %each.step7467 +each.step7467: %t46 = load i64, ptr %a23 %t47 = add i64 %t46, 1 store i64 %t47, ptr %a23 - br label %each.cond7072 -each.end7075: + br label %each.cond7465 +each.end7468: %t48 = load i1, ptr %a22 - br i1 %t48, label %then7085, label %endif7087 -then7085: - store { ptr, i64, i64 } { ptr @.str.4570, i64 5, i64 0 }, ptr %a49 + br i1 %t48, label %then7478, label %endif7480 +then7478: + store { ptr, i64, i64 } { ptr @.str.4777, i64 5, i64 0 }, ptr %a49 %t50 = load { ptr, i64, i64 }, ptr %a14 %t51 = extractvalue { ptr, i64, i64 } %t50, 1 %t52 = icmp uge i64 0, %t51 - br i1 %t52, label %range7088, label %inrange7089 -range7088: - call void @finch_panic_index(ptr @.str.4571, i64 4056, i64 0, i64 %t51) + br i1 %t52, label %range7481, label %inrange7482 +range7481: + call void @finch_panic_index(ptr @.str.4778, i64 4283, i64 0, i64 %t51) unreachable -inrange7089: +inrange7482: %t53 = extractvalue { ptr, i64, i64 } %t50, 0 %t54 = getelementptr inbounds %S.gen.Leaf, ptr %t53, i64 0 %t55 = getelementptr inbounds %S.gen.Leaf, ptr %t54, i32 0, i32 3 %t56 = load i1, ptr %t55 - br i1 %t56, label %then7090, label %endif7092 -then7090: + br i1 %t56, label %then7483, label %endif7485 +then7483: %t57 = load { ptr, i64, i64 }, ptr %a49 - store { ptr, i64, i64 } { ptr @.str.4572, i64 6, i64 0 }, ptr %a49 + store { ptr, i64, i64 } { ptr @.str.4779, i64 6, i64 0 }, ptr %a49 store { ptr, i64, i64 } %t57, ptr %a58 call void @finch_str_drop(ptr %a58) - br label %endif7092 -endif7092: + br label %endif7485 +endif7485: %t59 = getelementptr inbounds %S.gen.Abi, ptr %a10, i32 0, i32 0 %t60 = load { ptr, i64, i64 }, ptr %t59 - store { ptr, i64, i64 } { ptr @.str.4573, i64 6, i64 0 }, ptr %t59 + store { ptr, i64, i64 } { ptr @.str.4780, i64 6, i64 0 }, ptr %t59 store { ptr, i64, i64 } %t60, ptr %a61 call void @finch_str_drop(ptr %a61) %t62 = getelementptr inbounds %S.gen.Abi, ptr %a10, i32 0, i32 1 @@ -71238,14 +75171,14 @@ endif7092: %t65 = load i64, ptr %t64 call void @finch_str_from_int(ptr %a66, i64 %t65) %t67 = load { ptr, i64, i64 }, ptr %a66 - store { ptr, i64, i64 } { ptr @.str.4574, i64 1, i64 0 }, ptr %a69 + store { ptr, i64, i64 } { ptr @.str.4781, i64 1, i64 0 }, ptr %a69 store { ptr, i64, i64 } %t67, ptr %a70 call void @finch_str_concat(ptr %a68, ptr %a69, ptr %a70) store { ptr, i64, i64 } %t67, ptr %a71 call void @finch_str_drop(ptr %a71) %t72 = load { ptr, i64, i64 }, ptr %a68 store { ptr, i64, i64 } %t72, ptr %a74 - store { ptr, i64, i64 } { ptr @.str.4575, i64 3, i64 0 }, ptr %a75 + store { ptr, i64, i64 } { ptr @.str.4782, i64 3, i64 0 }, ptr %a75 call void @finch_str_concat(ptr %a73, ptr %a74, ptr %a75) store { ptr, i64, i64 } %t72, ptr %a76 call void @finch_str_drop(ptr %a76) @@ -71258,7 +75191,7 @@ endif7092: call void @finch_str_drop(ptr %a82) %t83 = load { ptr, i64, i64 }, ptr %a79 store { ptr, i64, i64 } %t83, ptr %a85 - store { ptr, i64, i64 } { ptr @.str.4576, i64 1, i64 0 }, ptr %a86 + store { ptr, i64, i64 } { ptr @.str.4783, i64 1, i64 0 }, ptr %a86 call void @finch_str_concat(ptr %a84, ptr %a85, ptr %a86) store { ptr, i64, i64 } %t83, ptr %a87 call void @finch_str_drop(ptr %a87) @@ -71272,14 +75205,14 @@ endif7092: store i64 %t90, ptr %t63 store { ptr, i64, i64 } zeroinitializer, ptr %a93 store i64 0, ptr %a94 - br label %each.cond7093 -each.cond7093: + br label %each.cond7486 +each.cond7486: %t95 = getelementptr inbounds { ptr, i64, i64 }, ptr %a14, i32 0, i32 1 %t96 = load i64, ptr %t95 %t97 = load i64, ptr %a94 %t98 = icmp slt i64 %t97, %t96 - br i1 %t98, label %each.body7094, label %each.end7096 -each.body7094: + br i1 %t98, label %each.body7487, label %each.end7489 +each.body7487: %t99 = load ptr, ptr %a14 %t100 = getelementptr inbounds %S.gen.Leaf, ptr %t99, i64 %t97 %t101 = load %S.gen.Leaf, ptr %t100 @@ -71296,25 +75229,25 @@ each.body7094: %t111 = getelementptr inbounds { ptr, i64, i64 }, ptr %t110, i64 %t108 store { ptr, i64, i64 } %t107, ptr %t111 store i64 %t109, ptr %t103 - br label %each.step7095 -each.step7095: + br label %each.step7488 +each.step7488: %t112 = load i64, ptr %a94 %t113 = add i64 %t112, 1 store i64 %t113, ptr %a94 - br label %each.cond7093 -each.end7096: + br label %each.cond7486 +each.end7489: %t114 = getelementptr inbounds { ptr, i64, i64 }, ptr %a93, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.4578, i64 2, i64 0 }, ptr %a115 + store { ptr, i64, i64 } { ptr @.str.4785, i64 2, i64 0 }, ptr %a115 call void @finch_str_join(ptr %a116, ptr %a93, ptr %a115) %t117 = load { ptr, i64, i64 }, ptr %a116 - store { ptr, i64, i64 } { ptr @.str.4577, i64 2, i64 0 }, ptr %a119 + store { ptr, i64, i64 } { ptr @.str.4784, i64 2, i64 0 }, ptr %a119 store { ptr, i64, i64 } %t117, ptr %a120 call void @finch_str_concat(ptr %a118, ptr %a119, ptr %a120) store { ptr, i64, i64 } %t117, ptr %a121 call void @finch_str_drop(ptr %a121) %t122 = load { ptr, i64, i64 }, ptr %a118 store { ptr, i64, i64 } %t122, ptr %a124 - store { ptr, i64, i64 } { ptr @.str.4579, i64 2, i64 0 }, ptr %a125 + store { ptr, i64, i64 } { ptr @.str.4786, i64 2, i64 0 }, ptr %a125 call void @finch_str_concat(ptr %a123, ptr %a124, ptr %a125) store { ptr, i64, i64 } %t122, ptr %a126 call void @finch_str_drop(ptr %a126) @@ -71329,29 +75262,29 @@ each.end7096: call void @finch_str_drop(ptr %a49) call void @finch.drop.arr_S_gen_Leaf(ptr %a14) ret %S.gen.Abi %t131 -endif7087: +endif7480: %t132 = load i64, ptr %a4 %t133 = icmp sgt i64 %t132, 16 - br i1 %t133, label %then7097, label %endif7099 -then7097: + br i1 %t133, label %then7490, label %endif7492 +then7490: %t134 = getelementptr inbounds %S.gen.Abi, ptr %a10, i32 0, i32 0 %t135 = load { ptr, i64, i64 }, ptr %t134 - store { ptr, i64, i64 } { ptr @.str.4580, i64 8, i64 0 }, ptr %t134 + store { ptr, i64, i64 } { ptr @.str.4787, i64 8, i64 0 }, ptr %t134 store { ptr, i64, i64 } %t135, ptr %a136 call void @finch_str_drop(ptr %a136) %t137 = load %S.gen.Abi, ptr %a10 call void @finch.drop.arr_S_gen_Leaf(ptr %a14) ret %S.gen.Abi %t137 -endif7099: +endif7492: %t138 = getelementptr inbounds %S.gen.Abi, ptr %a10, i32 0, i32 0 %t139 = load { ptr, i64, i64 }, ptr %t138 - store { ptr, i64, i64 } { ptr @.str.4581, i64 6, i64 0 }, ptr %t138 + store { ptr, i64, i64 } { ptr @.str.4788, i64 6, i64 0 }, ptr %t138 store { ptr, i64, i64 } %t139, ptr %a140 call void @finch_str_drop(ptr %a140) %t141 = load i64, ptr %a5 %t142 = icmp sge i64 %t141, 16 - br i1 %t142, label %then7100, label %else7101 -then7100: + br i1 %t142, label %then7493, label %else7494 +then7493: %t143 = getelementptr inbounds %S.gen.Abi, ptr %a10, i32 0, i32 1 %t144 = getelementptr inbounds { ptr, i64, i64 }, ptr %t143, i32 0, i32 1 %t145 = load i64, ptr %t144 @@ -71359,19 +75292,19 @@ then7100: call void @finch_arr_reserve(ptr %t143, i64 %t146, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t147 = load ptr, ptr %t143 %t148 = getelementptr inbounds { ptr, i64, i64 }, ptr %t147, i64 %t145 - store { ptr, i64, i64 } { ptr @.str.4582, i64 4, i64 0 }, ptr %t148 + store { ptr, i64, i64 } { ptr @.str.4789, i64 4, i64 0 }, ptr %t148 store i64 %t146, ptr %t144 %t149 = getelementptr inbounds %S.gen.Abi, ptr %a10, i32 0, i32 2 %t150 = load { ptr, i64, i64 }, ptr %t149 - store { ptr, i64, i64 } { ptr @.str.4583, i64 4, i64 0 }, ptr %t149 + store { ptr, i64, i64 } { ptr @.str.4790, i64 4, i64 0 }, ptr %t149 store { ptr, i64, i64 } %t150, ptr %a151 call void @finch_str_drop(ptr %a151) - br label %endif7102 -else7101: + br label %endif7495 +else7494: %t152 = load i64, ptr %a4 %t153 = icmp sle i64 %t152, 8 - br i1 %t153, label %then7103, label %else7104 -then7103: + br i1 %t153, label %then7496, label %else7497 +then7496: %t154 = getelementptr inbounds %S.gen.Abi, ptr %a10, i32 0, i32 1 %t155 = getelementptr inbounds { ptr, i64, i64 }, ptr %t154, i32 0, i32 1 %t156 = load i64, ptr %t155 @@ -71379,13 +75312,13 @@ then7103: call void @finch_arr_reserve(ptr %t154, i64 %t157, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t158 = load ptr, ptr %t154 %t159 = getelementptr inbounds { ptr, i64, i64 }, ptr %t158, i64 %t156 - store { ptr, i64, i64 } { ptr @.str.4584, i64 3, i64 0 }, ptr %t159 + store { ptr, i64, i64 } { ptr @.str.4791, i64 3, i64 0 }, ptr %t159 store i64 %t157, ptr %t155 %t160 = load i64, ptr %a4 %t161 = mul i64 %t160, 8 call void @finch_str_from_int(ptr %a162, i64 %t161) %t163 = load { ptr, i64, i64 }, ptr %a162 - store { ptr, i64, i64 } { ptr @.str.4585, i64 1, i64 0 }, ptr %a165 + store { ptr, i64, i64 } { ptr @.str.4792, i64 1, i64 0 }, ptr %a165 store { ptr, i64, i64 } %t163, ptr %a166 call void @finch_str_concat(ptr %a164, ptr %a165, ptr %a166) store { ptr, i64, i64 } %t163, ptr %a167 @@ -71396,8 +75329,8 @@ then7103: store { ptr, i64, i64 } %t168, ptr %t169 store { ptr, i64, i64 } %t170, ptr %a171 call void @finch_str_drop(ptr %a171) - br label %endif7105 -else7104: + br label %endif7498 +else7497: %t172 = getelementptr inbounds %S.gen.Abi, ptr %a10, i32 0, i32 1 %t173 = getelementptr inbounds { ptr, i64, i64 }, ptr %t172, i32 0, i32 1 %t174 = load i64, ptr %t173 @@ -71405,17 +75338,17 @@ else7104: call void @finch_arr_reserve(ptr %t172, i64 %t175, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t176 = load ptr, ptr %t172 %t177 = getelementptr inbounds { ptr, i64, i64 }, ptr %t176, i64 %t174 - store { ptr, i64, i64 } { ptr @.str.4586, i64 9, i64 0 }, ptr %t177 + store { ptr, i64, i64 } { ptr @.str.4793, i64 9, i64 0 }, ptr %t177 store i64 %t175, ptr %t173 %t178 = getelementptr inbounds %S.gen.Abi, ptr %a10, i32 0, i32 2 %t179 = load { ptr, i64, i64 }, ptr %t178 - store { ptr, i64, i64 } { ptr @.str.4587, i64 9, i64 0 }, ptr %t178 + store { ptr, i64, i64 } { ptr @.str.4794, i64 9, i64 0 }, ptr %t178 store { ptr, i64, i64 } %t179, ptr %a180 call void @finch_str_drop(ptr %a180) - br label %endif7105 -endif7105: - br label %endif7102 -endif7102: + br label %endif7498 +endif7498: + br label %endif7495 +endif7495: %t181 = load %S.gen.Abi, ptr %a10 call void @finch.drop.arr_S_gen_Leaf(ptr %a14) ret %S.gen.Abi %t181 @@ -71488,26 +75421,26 @@ entry: %a299 = alloca { ptr, i64, i64 }, align 16 store ptr %p0, ptr %a1 store %S.ast.Type %p1, ptr %a2 - %t3 = insertvalue %S.gen.Abi zeroinitializer, { ptr, i64, i64 } { ptr @.str.4588, i64 6, i64 0 }, 0 + %t3 = insertvalue %S.gen.Abi zeroinitializer, { ptr, i64, i64 } { ptr @.str.4795, i64 6, i64 0 }, 0 store %S.gen.Abi %t3, ptr %a4 %t5 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t6 = load { ptr, i64, i64 }, ptr %t5 store { ptr, i64, i64 } %t6, ptr %a7 - store { ptr, i64, i64 } { ptr @.str.4589, i64 6, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.4796, i64 6, i64 0 }, ptr %a8 %t9 = call i32 @finch_str_eq(ptr %a7, ptr %a8) %t10 = icmp eq i32 %t9, 0 - br i1 %t10, label %then7106, label %endif7108 -then7106: + br i1 %t10, label %then7499, label %endif7501 +then7499: %t11 = load %S.gen.Abi, ptr %a4 ret %S.gen.Abi %t11 -endif7108: +endif7501: %t12 = load ptr, ptr %a1 %t13 = icmp eq ptr %t12, null - br i1 %t13, label %panic7109, label %ok7110 -panic7109: - call void @finch_panic(ptr @.str.4590, i64 4091, ptr @.str.4591) + br i1 %t13, label %panic7502, label %ok7503 +panic7502: + call void @finch_panic(ptr @.str.4797, i64 4318, ptr @.str.4798) unreachable -ok7110: +ok7503: %t14 = getelementptr inbounds %S.gen.Gen, ptr %t12, i32 0, i32 16 %t15 = load ptr, ptr %a1 %t16 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 3 @@ -71518,11 +75451,11 @@ ok7110: %t21 = load { ptr, i64, i64 }, ptr %t14 %t22 = extractvalue { ptr, i64, i64 } %t21, 1 %t23 = icmp uge i64 %t20, %t22 - br i1 %t23, label %range7111, label %inrange7112 -range7111: - call void @finch_panic_index(ptr @.str.4592, i64 4091, i64 %t20, i64 %t22) + br i1 %t23, label %range7504, label %inrange7505 +range7504: + call void @finch_panic_index(ptr @.str.4799, i64 4318, i64 %t20, i64 %t22) unreachable -inrange7112: +inrange7505: %t24 = extractvalue { ptr, i64, i64 } %t21, 0 %t25 = getelementptr inbounds %S.gen.StructDef, ptr %t24, i64 %t20 %t26 = load %S.gen.StructDef, ptr %t25 @@ -71538,26 +75471,26 @@ inrange7112: %t35 = getelementptr inbounds %S.gen.StructDef, ptr %a30, i32 0, i32 10 %t36 = load i64, ptr %t35 %t37 = icmp sgt i64 %t36, 8 - br i1 %t37, label %then7113, label %endif7115 -then7113: + br i1 %t37, label %then7506, label %endif7508 +then7506: %t38 = getelementptr inbounds %S.gen.StructDef, ptr %a30, i32 0, i32 10 %t39 = load i64, ptr %t38 %t40 = getelementptr inbounds %S.gen.Abi, ptr %a4, i32 0, i32 3 store i64 %t39, ptr %t40 - br label %endif7115 -endif7115: + br label %endif7508 +endif7508: %t41 = load ptr, ptr %a1 %t42 = icmp eq ptr %t41, null - br i1 %t42, label %panic7116, label %ok7117 -panic7116: - call void @finch_panic(ptr @.str.4593, i64 4097, ptr @.str.4594) + br i1 %t42, label %panic7509, label %ok7510 +panic7509: + call void @finch_panic(ptr @.str.4800, i64 4324, ptr @.str.4801) unreachable -ok7117: - %t43 = getelementptr inbounds %S.gen.Gen, ptr %t41, i32 0, i32 30 +ok7510: + %t43 = getelementptr inbounds %S.gen.Gen, ptr %t41, i32 0, i32 31 %t44 = getelementptr inbounds %S.platform.Target, ptr %t43, i32 0, i32 4 %t45 = load i1, ptr %t44 - br i1 %t45, label %then7118, label %endif7120 -then7118: + br i1 %t45, label %then7511, label %endif7513 +then7511: %t46 = load ptr, ptr %a1 %t47 = load %S.ast.Type, ptr %a2 %t48 = load %S.gen.Abi, ptr %a4 @@ -71568,59 +75501,59 @@ then7118: call void @finch.drop.S_gen_StructDef(ptr %a30) call void @finch.drop.S_gen_Abi(ptr %a4) ret %S.gen.Abi %t52 -endif7120: +endif7513: %t53 = load ptr, ptr %a1 %t54 = icmp eq ptr %t53, null - br i1 %t54, label %panic7121, label %ok7122 -panic7121: - call void @finch_panic(ptr @.str.4595, i64 4100, ptr @.str.4596) + br i1 %t54, label %panic7514, label %ok7515 +panic7514: + call void @finch_panic(ptr @.str.4802, i64 4327, ptr @.str.4803) unreachable -ok7122: - %t55 = getelementptr inbounds %S.gen.Gen, ptr %t53, i32 0, i32 30 +ok7515: + %t55 = getelementptr inbounds %S.gen.Gen, ptr %t53, i32 0, i32 31 %t56 = getelementptr inbounds %S.platform.Target, ptr %t55, i32 0, i32 1 %t57 = load i1, ptr %t56 - br i1 %t57, label %then7123, label %endif7125 -then7123: + br i1 %t57, label %then7516, label %endif7518 +then7516: %t58 = load i64, ptr %a33 %t59 = icmp eq i64 %t58, 1 - br label %logic.from7126 -logic.from7126: - br i1 %t59, label %logic.end7128, label %logic.rhs7127 -logic.rhs7127: + br label %logic.from7519 +logic.from7519: + br i1 %t59, label %logic.end7521, label %logic.rhs7520 +logic.rhs7520: %t60 = load i64, ptr %a33 %t61 = icmp eq i64 %t60, 2 - br label %logic.rend7129 -logic.rend7129: - br label %logic.end7128 -logic.end7128: - %t62 = phi i1 [ true, %logic.from7126 ], [ %t61, %logic.rend7129 ] - br label %logic.from7130 -logic.from7130: - br i1 %t62, label %logic.end7132, label %logic.rhs7131 -logic.rhs7131: + br label %logic.rend7522 +logic.rend7522: + br label %logic.end7521 +logic.end7521: + %t62 = phi i1 [ true, %logic.from7519 ], [ %t61, %logic.rend7522 ] + br label %logic.from7523 +logic.from7523: + br i1 %t62, label %logic.end7525, label %logic.rhs7524 +logic.rhs7524: %t63 = load i64, ptr %a33 %t64 = icmp eq i64 %t63, 4 - br label %logic.rend7133 -logic.rend7133: - br label %logic.end7132 -logic.end7132: - %t65 = phi i1 [ true, %logic.from7130 ], [ %t64, %logic.rend7133 ] - br label %logic.from7134 -logic.from7134: - br i1 %t65, label %logic.end7136, label %logic.rhs7135 -logic.rhs7135: + br label %logic.rend7526 +logic.rend7526: + br label %logic.end7525 +logic.end7525: + %t65 = phi i1 [ true, %logic.from7523 ], [ %t64, %logic.rend7526 ] + br label %logic.from7527 +logic.from7527: + br i1 %t65, label %logic.end7529, label %logic.rhs7528 +logic.rhs7528: %t66 = load i64, ptr %a33 %t67 = icmp eq i64 %t66, 8 - br label %logic.rend7137 -logic.rend7137: - br label %logic.end7136 -logic.end7136: - %t68 = phi i1 [ true, %logic.from7134 ], [ %t67, %logic.rend7137 ] - br i1 %t68, label %then7138, label %else7139 -then7138: + br label %logic.rend7530 +logic.rend7530: + br label %logic.end7529 +logic.end7529: + %t68 = phi i1 [ true, %logic.from7527 ], [ %t67, %logic.rend7530 ] + br i1 %t68, label %then7531, label %else7532 +then7531: %t69 = getelementptr inbounds %S.gen.Abi, ptr %a4, i32 0, i32 0 %t70 = load { ptr, i64, i64 }, ptr %t69 - store { ptr, i64, i64 } { ptr @.str.4597, i64 6, i64 0 }, ptr %t69 + store { ptr, i64, i64 } { ptr @.str.4804, i64 6, i64 0 }, ptr %t69 store { ptr, i64, i64 } %t70, ptr %a71 call void @finch_str_drop(ptr %a71) %t72 = getelementptr inbounds %S.gen.Abi, ptr %a4, i32 0, i32 1 @@ -71629,7 +75562,7 @@ then7138: %t75 = mul i64 %t74, 8 call void @finch_str_from_int(ptr %a76, i64 %t75) %t77 = load { ptr, i64, i64 }, ptr %a76 - store { ptr, i64, i64 } { ptr @.str.4598, i64 1, i64 0 }, ptr %a79 + store { ptr, i64, i64 } { ptr @.str.4805, i64 1, i64 0 }, ptr %a79 store { ptr, i64, i64 } %t77, ptr %a80 call void @finch_str_concat(ptr %a78, ptr %a79, ptr %a80) store { ptr, i64, i64 } %t77, ptr %a81 @@ -71646,11 +75579,11 @@ then7138: %t88 = load { ptr, i64, i64 }, ptr %t87 %t89 = extractvalue { ptr, i64, i64 } %t88, 1 %t90 = icmp uge i64 0, %t89 - br i1 %t90, label %range7141, label %inrange7142 -range7141: - call void @finch_panic_index(ptr @.str.4599, i64 4106, i64 0, i64 %t89) + br i1 %t90, label %range7534, label %inrange7535 +range7534: + call void @finch_panic_index(ptr @.str.4806, i64 4333, i64 0, i64 %t89) unreachable -inrange7142: +inrange7535: %t91 = extractvalue { ptr, i64, i64 } %t88, 0 %t92 = getelementptr inbounds { ptr, i64, i64 }, ptr %t91, i64 0 %t93 = load { ptr, i64, i64 }, ptr %t92 @@ -71662,43 +75595,43 @@ inrange7142: store { ptr, i64, i64 } %t97, ptr %t94 store { ptr, i64, i64 } %t98, ptr %a99 call void @finch_str_drop(ptr %a99) - br label %endif7140 -else7139: + br label %endif7533 +else7532: %t100 = getelementptr inbounds %S.gen.Abi, ptr %a4, i32 0, i32 0 %t101 = load { ptr, i64, i64 }, ptr %t100 - store { ptr, i64, i64 } { ptr @.str.4600, i64 8, i64 0 }, ptr %t100 + store { ptr, i64, i64 } { ptr @.str.4807, i64 8, i64 0 }, ptr %t100 store { ptr, i64, i64 } %t101, ptr %a102 call void @finch_str_drop(ptr %a102) - br label %endif7140 -endif7140: + br label %endif7533 +endif7533: %t103 = load %S.gen.Abi, ptr %a4 call void @finch.drop.S_gen_StructDef(ptr %a30) ret %S.gen.Abi %t103 -endif7125: +endif7518: %t104 = load i64, ptr %a33 %t105 = icmp sgt i64 %t104, 16 - br label %logic.from7143 -logic.from7143: - br i1 %t105, label %logic.end7145, label %logic.rhs7144 -logic.rhs7144: + br label %logic.from7536 +logic.from7536: + br i1 %t105, label %logic.end7538, label %logic.rhs7537 +logic.rhs7537: %t106 = load i64, ptr %a33 %t107 = icmp eq i64 %t106, 0 - br label %logic.rend7146 -logic.rend7146: - br label %logic.end7145 -logic.end7145: - %t108 = phi i1 [ true, %logic.from7143 ], [ %t107, %logic.rend7146 ] - br i1 %t108, label %then7147, label %endif7149 -then7147: + br label %logic.rend7539 +logic.rend7539: + br label %logic.end7538 +logic.end7538: + %t108 = phi i1 [ true, %logic.from7536 ], [ %t107, %logic.rend7539 ] + br i1 %t108, label %then7540, label %endif7542 +then7540: %t109 = getelementptr inbounds %S.gen.Abi, ptr %a4, i32 0, i32 0 %t110 = load { ptr, i64, i64 }, ptr %t109 - store { ptr, i64, i64 } { ptr @.str.4601, i64 6, i64 0 }, ptr %t109 + store { ptr, i64, i64 } { ptr @.str.4808, i64 6, i64 0 }, ptr %t109 store { ptr, i64, i64 } %t110, ptr %a111 call void @finch_str_drop(ptr %a111) %t112 = load %S.gen.Abi, ptr %a4 call void @finch.drop.S_gen_StructDef(ptr %a30) ret %S.gen.Abi %t112 -endif7149: +endif7542: %t113 = load ptr, ptr %a1 %t114 = load %S.ast.Type, ptr %a2 %t115 = call { ptr, i64, i64 } @finch.gen.leavesOf(ptr %t113, %S.ast.Type %t114, i64 0) @@ -71728,14 +75661,14 @@ endif7149: %t135 = insertvalue { ptr, i64, i64 } %t134, i64 2, 2 store { ptr, i64, i64 } %t135, ptr %a136 store i64 0, ptr %a137 - br label %each.cond7150 -each.cond7150: + br label %each.cond7543 +each.cond7543: %t138 = getelementptr inbounds { ptr, i64, i64 }, ptr %a116, i32 0, i32 1 %t139 = load i64, ptr %t138 %t140 = load i64, ptr %a137 %t141 = icmp slt i64 %t140, %t139 - br i1 %t141, label %each.body7151, label %each.end7153 -each.body7151: + br i1 %t141, label %each.body7544, label %each.end7546 +each.body7544: %t142 = load ptr, ptr %a116 %t143 = getelementptr inbounds %S.gen.Leaf, ptr %t142, i64 %t140 %t144 = load %S.gen.Leaf, ptr %t143 @@ -71745,27 +75678,27 @@ each.body7151: store i64 %t147, ptr %a148 %t149 = load i64, ptr %a148 %t150 = icmp sgt i64 %t149, 8 - br i1 %t150, label %then7154, label %endif7156 -then7154: + br i1 %t150, label %then7547, label %endif7549 +then7547: store i64 8, ptr %a148 - br label %endif7156 -endif7156: + br label %endif7549 +endif7549: %t151 = getelementptr inbounds %S.gen.Leaf, ptr %a145, i32 0, i32 0 %t152 = load i64, ptr %t151 %t153 = load i64, ptr %a148 %t154 = icmp eq i64 %t153, 0 - br i1 %t154, label %panic7157, label %ok7158 -panic7157: - call void @finch_panic(ptr @.str.4602, i64 4125, ptr @.str.4603) + br i1 %t154, label %panic7550, label %ok7551 +panic7550: + call void @finch_panic(ptr @.str.4809, i64 4352, ptr @.str.4810) unreachable -ok7158: +ok7551: %t155 = srem i64 %t152, %t153 %t156 = icmp ne i64 %t155, 0 - br i1 %t156, label %then7159, label %endif7161 -then7159: + br i1 %t156, label %then7552, label %endif7554 +then7552: %t157 = getelementptr inbounds %S.gen.Abi, ptr %a4, i32 0, i32 0 %t158 = load { ptr, i64, i64 }, ptr %t157 - store { ptr, i64, i64 } { ptr @.str.4604, i64 6, i64 0 }, ptr %t157 + store { ptr, i64, i64 } { ptr @.str.4811, i64 6, i64 0 }, ptr %t157 store { ptr, i64, i64 } %t158, ptr %a159 call void @finch_str_drop(ptr %a159) %t160 = load %S.gen.Abi, ptr %a4 @@ -71774,7 +75707,7 @@ then7159: call void @finch.drop.arr_S_gen_Leaf(ptr %a116) call void @finch.drop.S_gen_StructDef(ptr %a30) ret %S.gen.Abi %t160 -endif7161: +endif7554: %t161 = getelementptr inbounds %S.gen.Leaf, ptr %a145, i32 0, i32 0 %t162 = load i64, ptr %t161 %t163 = sdiv i64 %t162, 8 @@ -71783,95 +75716,95 @@ endif7161: %t166 = load { ptr, i64, i64 }, ptr %a128 %t167 = extractvalue { ptr, i64, i64 } %t166, 1 %t168 = icmp uge i64 %t165, %t167 - br i1 %t168, label %range7162, label %inrange7163 -range7162: - call void @finch_panic_index(ptr @.str.4605, i64 4130, i64 %t165, i64 %t167) + br i1 %t168, label %range7555, label %inrange7556 +range7555: + call void @finch_panic_index(ptr @.str.4812, i64 4357, i64 %t165, i64 %t167) unreachable -inrange7163: +inrange7556: %t169 = extractvalue { ptr, i64, i64 } %t166, 0 %t170 = getelementptr inbounds i64, ptr %t169, i64 %t165 %t171 = load i64, ptr %t170 %t172 = icmp eq i64 %t171, 1 - br label %logic.from7164 -logic.from7164: - br i1 %t172, label %logic.end7166, label %logic.rhs7165 -logic.rhs7165: + br label %logic.from7557 +logic.from7557: + br i1 %t172, label %logic.end7559, label %logic.rhs7558 +logic.rhs7558: %t173 = getelementptr inbounds %S.gen.Leaf, ptr %a145, i32 0, i32 2 %t174 = load i1, ptr %t173 %t175 = xor i1 %t174, true - br label %logic.rend7167 -logic.rend7167: - br label %logic.end7166 -logic.end7166: - %t176 = phi i1 [ true, %logic.from7164 ], [ %t175, %logic.rend7167 ] - br i1 %t176, label %then7168, label %else7169 -then7168: + br label %logic.rend7560 +logic.rend7560: + br label %logic.end7559 +logic.end7559: + %t176 = phi i1 [ true, %logic.from7557 ], [ %t175, %logic.rend7560 ] + br i1 %t176, label %then7561, label %else7562 +then7561: %t177 = load i64, ptr %a164 %t178 = load { ptr, i64, i64 }, ptr %a128 %t179 = extractvalue { ptr, i64, i64 } %t178, 1 %t180 = icmp uge i64 %t177, %t179 - br i1 %t180, label %range7171, label %inrange7172 -range7171: - call void @finch_panic_index(ptr @.str.4606, i64 4131, i64 %t177, i64 %t179) + br i1 %t180, label %range7564, label %inrange7565 +range7564: + call void @finch_panic_index(ptr @.str.4813, i64 4358, i64 %t177, i64 %t179) unreachable -inrange7172: +inrange7565: %t181 = extractvalue { ptr, i64, i64 } %t178, 0 %t182 = getelementptr inbounds i64, ptr %t181, i64 %t177 store i64 1, ptr %t182 - br label %endif7170 -else7169: + br label %endif7563 +else7562: %t183 = load i64, ptr %a164 %t184 = load { ptr, i64, i64 }, ptr %a128 %t185 = extractvalue { ptr, i64, i64 } %t184, 1 %t186 = icmp uge i64 %t183, %t185 - br i1 %t186, label %range7173, label %inrange7174 -range7173: - call void @finch_panic_index(ptr @.str.4607, i64 4133, i64 %t183, i64 %t185) + br i1 %t186, label %range7566, label %inrange7567 +range7566: + call void @finch_panic_index(ptr @.str.4814, i64 4360, i64 %t183, i64 %t185) unreachable -inrange7174: +inrange7567: %t187 = extractvalue { ptr, i64, i64 } %t184, 0 %t188 = getelementptr inbounds i64, ptr %t187, i64 %t183 store i64 2, ptr %t188 - br label %endif7170 -endif7170: + br label %endif7563 +endif7563: %t189 = getelementptr inbounds %S.gen.Leaf, ptr %a145, i32 0, i32 3 %t190 = load i1, ptr %t189 - br i1 %t190, label %then7175, label %endif7177 -then7175: + br i1 %t190, label %then7568, label %endif7570 +then7568: %t191 = load i64, ptr %a164 %t192 = load { ptr, i64, i64 }, ptr %a136 %t193 = extractvalue { ptr, i64, i64 } %t192, 1 %t194 = icmp uge i64 %t191, %t193 - br i1 %t194, label %range7178, label %inrange7179 -range7178: - call void @finch_panic_index(ptr @.str.4608, i64 4136, i64 %t191, i64 %t193) + br i1 %t194, label %range7571, label %inrange7572 +range7571: + call void @finch_panic_index(ptr @.str.4815, i64 4363, i64 %t191, i64 %t193) unreachable -inrange7179: +inrange7572: %t195 = extractvalue { ptr, i64, i64 } %t192, 0 %t196 = getelementptr inbounds i1, ptr %t195, i64 %t191 store i1 true, ptr %t196 - br label %endif7177 -endif7177: - br label %each.step7152 -each.step7152: + br label %endif7570 +endif7570: + br label %each.step7545 +each.step7545: %t197 = load i64, ptr %a137 %t198 = add i64 %t197, 1 store i64 %t198, ptr %a137 - br label %each.cond7150 -each.end7153: + br label %each.cond7543 +each.end7546: %t199 = getelementptr inbounds %S.gen.Abi, ptr %a4, i32 0, i32 0 %t200 = load { ptr, i64, i64 }, ptr %t199 - store { ptr, i64, i64 } { ptr @.str.4609, i64 6, i64 0 }, ptr %t199 + store { ptr, i64, i64 } { ptr @.str.4816, i64 6, i64 0 }, ptr %t199 store { ptr, i64, i64 } %t200, ptr %a201 call void @finch_str_drop(ptr %a201) %t202 = load i64, ptr %a120 store i64 0, ptr %a203 - br label %for.cond7180 -for.cond7180: + br label %for.cond7573 +for.cond7573: %t204 = load i64, ptr %a203 %t205 = icmp slt i64 %t204, %t202 - br i1 %t205, label %for.body7181, label %for.end7183 -for.body7181: + br i1 %t205, label %for.body7574, label %for.end7576 +for.body7574: %t206 = load i64, ptr %a33 %t207 = load i64, ptr %a203 %t208 = mul i64 8, %t207 @@ -71879,40 +75812,40 @@ for.body7181: store i64 %t209, ptr %a210 %t211 = load i64, ptr %a210 %t212 = icmp sgt i64 %t211, 8 - br i1 %t212, label %then7184, label %endif7186 -then7184: + br i1 %t212, label %then7577, label %endif7579 +then7577: store i64 8, ptr %a210 - br label %endif7186 -endif7186: + br label %endif7579 +endif7579: %t213 = load i64, ptr %a203 %t214 = load { ptr, i64, i64 }, ptr %a128 %t215 = extractvalue { ptr, i64, i64 } %t214, 1 %t216 = icmp uge i64 %t213, %t215 - br i1 %t216, label %range7187, label %inrange7188 -range7187: - call void @finch_panic_index(ptr @.str.4610, i64 4145, i64 %t213, i64 %t215) + br i1 %t216, label %range7580, label %inrange7581 +range7580: + call void @finch_panic_index(ptr @.str.4817, i64 4372, i64 %t213, i64 %t215) unreachable -inrange7188: +inrange7581: %t217 = extractvalue { ptr, i64, i64 } %t214, 0 %t218 = getelementptr inbounds i64, ptr %t217, i64 %t213 %t219 = load i64, ptr %t218 %t220 = icmp eq i64 %t219, 2 - br i1 %t220, label %then7189, label %else7190 -then7189: + br i1 %t220, label %then7582, label %else7583 +then7582: %t221 = load i64, ptr %a203 %t222 = load { ptr, i64, i64 }, ptr %a136 %t223 = extractvalue { ptr, i64, i64 } %t222, 1 %t224 = icmp uge i64 %t221, %t223 - br i1 %t224, label %range7192, label %inrange7193 -range7192: - call void @finch_panic_index(ptr @.str.4611, i64 4146, i64 %t221, i64 %t223) + br i1 %t224, label %range7585, label %inrange7586 +range7585: + call void @finch_panic_index(ptr @.str.4818, i64 4373, i64 %t221, i64 %t223) unreachable -inrange7193: +inrange7586: %t225 = extractvalue { ptr, i64, i64 } %t222, 0 %t226 = getelementptr inbounds i1, ptr %t225, i64 %t221 %t227 = load i1, ptr %t226 - br i1 %t227, label %then7194, label %else7195 -then7194: + br i1 %t227, label %then7587, label %else7588 +then7587: %t228 = getelementptr inbounds %S.gen.Abi, ptr %a4, i32 0, i32 1 %t229 = getelementptr inbounds { ptr, i64, i64 }, ptr %t228, i32 0, i32 1 %t230 = load i64, ptr %t229 @@ -71920,14 +75853,14 @@ then7194: call void @finch_arr_reserve(ptr %t228, i64 %t231, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t232 = load ptr, ptr %t228 %t233 = getelementptr inbounds { ptr, i64, i64 }, ptr %t232, i64 %t230 - store { ptr, i64, i64 } { ptr @.str.4612, i64 6, i64 0 }, ptr %t233 + store { ptr, i64, i64 } { ptr @.str.4819, i64 6, i64 0 }, ptr %t233 store i64 %t231, ptr %t229 - br label %endif7196 -else7195: + br label %endif7589 +else7588: %t234 = load i64, ptr %a210 %t235 = icmp sgt i64 %t234, 4 - br i1 %t235, label %then7197, label %else7198 -then7197: + br i1 %t235, label %then7590, label %else7591 +then7590: %t236 = getelementptr inbounds %S.gen.Abi, ptr %a4, i32 0, i32 1 %t237 = getelementptr inbounds { ptr, i64, i64 }, ptr %t236, i32 0, i32 1 %t238 = load i64, ptr %t237 @@ -71935,10 +75868,10 @@ then7197: call void @finch_arr_reserve(ptr %t236, i64 %t239, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t240 = load ptr, ptr %t236 %t241 = getelementptr inbounds { ptr, i64, i64 }, ptr %t240, i64 %t238 - store { ptr, i64, i64 } { ptr @.str.4613, i64 11, i64 0 }, ptr %t241 + store { ptr, i64, i64 } { ptr @.str.4820, i64 11, i64 0 }, ptr %t241 store i64 %t239, ptr %t237 - br label %endif7199 -else7198: + br label %endif7592 +else7591: %t242 = getelementptr inbounds %S.gen.Abi, ptr %a4, i32 0, i32 1 %t243 = getelementptr inbounds { ptr, i64, i64 }, ptr %t242, i32 0, i32 1 %t244 = load i64, ptr %t243 @@ -71946,21 +75879,21 @@ else7198: call void @finch_arr_reserve(ptr %t242, i64 %t245, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t246 = load ptr, ptr %t242 %t247 = getelementptr inbounds { ptr, i64, i64 }, ptr %t246, i64 %t244 - store { ptr, i64, i64 } { ptr @.str.4614, i64 5, i64 0 }, ptr %t247 + store { ptr, i64, i64 } { ptr @.str.4821, i64 5, i64 0 }, ptr %t247 store i64 %t245, ptr %t243 - br label %endif7199 -endif7199: - br label %endif7196 -endif7196: - br label %endif7191 -else7190: + br label %endif7592 +endif7592: + br label %endif7589 +endif7589: + br label %endif7584 +else7583: %t248 = getelementptr inbounds %S.gen.Abi, ptr %a4, i32 0, i32 1 %t249 = getelementptr inbounds { ptr, i64, i64 }, ptr %t248, i32 0, i32 1 %t250 = load i64, ptr %a210 %t251 = mul i64 %t250, 8 call void @finch_str_from_int(ptr %a252, i64 %t251) %t253 = load { ptr, i64, i64 }, ptr %a252 - store { ptr, i64, i64 } { ptr @.str.4615, i64 1, i64 0 }, ptr %a255 + store { ptr, i64, i64 } { ptr @.str.4822, i64 1, i64 0 }, ptr %a255 store { ptr, i64, i64 } %t253, ptr %a256 call void @finch_str_concat(ptr %a254, ptr %a255, ptr %a256) store { ptr, i64, i64 } %t253, ptr %a257 @@ -71973,30 +75906,30 @@ else7190: %t262 = getelementptr inbounds { ptr, i64, i64 }, ptr %t261, i64 %t259 store { ptr, i64, i64 } %t258, ptr %t262 store i64 %t260, ptr %t249 - br label %endif7191 -endif7191: - br label %for.step7182 -for.step7182: + br label %endif7584 +endif7584: + br label %for.step7575 +for.step7575: %t263 = load i64, ptr %a203 %t264 = add i64 %t263, 1 store i64 %t264, ptr %a203 - br label %for.cond7180 -for.end7183: + br label %for.cond7573 +for.end7576: %t265 = getelementptr inbounds %S.gen.Abi, ptr %a4, i32 0, i32 1 %t266 = getelementptr inbounds { ptr, i64, i64 }, ptr %t265, i32 0, i32 1 %t267 = load i64, ptr %t266 %t268 = icmp eq i64 %t267, 1 - br i1 %t268, label %then7200, label %else7201 -then7200: + br i1 %t268, label %then7593, label %else7594 +then7593: %t269 = getelementptr inbounds %S.gen.Abi, ptr %a4, i32 0, i32 1 %t270 = load { ptr, i64, i64 }, ptr %t269 %t271 = extractvalue { ptr, i64, i64 } %t270, 1 %t272 = icmp uge i64 0, %t271 - br i1 %t272, label %range7203, label %inrange7204 -range7203: - call void @finch_panic_index(ptr @.str.4616, i64 4158, i64 0, i64 %t271) + br i1 %t272, label %range7596, label %inrange7597 +range7596: + call void @finch_panic_index(ptr @.str.4823, i64 4385, i64 0, i64 %t271) unreachable -inrange7204: +inrange7597: %t273 = extractvalue { ptr, i64, i64 } %t270, 0 %t274 = getelementptr inbounds { ptr, i64, i64 }, ptr %t273, i64 0 %t275 = load { ptr, i64, i64 }, ptr %t274 @@ -72008,21 +75941,21 @@ inrange7204: store { ptr, i64, i64 } %t279, ptr %t276 store { ptr, i64, i64 } %t280, ptr %a281 call void @finch_str_drop(ptr %a281) - br label %endif7202 -else7201: + br label %endif7595 +else7594: %t282 = getelementptr inbounds %S.gen.Abi, ptr %a4, i32 0, i32 1 %t283 = getelementptr inbounds { ptr, i64, i64 }, ptr %t282, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.4618, i64 2, i64 0 }, ptr %a284 + store { ptr, i64, i64 } { ptr @.str.4825, i64 2, i64 0 }, ptr %a284 call void @finch_str_join(ptr %a285, ptr %t282, ptr %a284) %t286 = load { ptr, i64, i64 }, ptr %a285 - store { ptr, i64, i64 } { ptr @.str.4617, i64 2, i64 0 }, ptr %a288 + store { ptr, i64, i64 } { ptr @.str.4824, i64 2, i64 0 }, ptr %a288 store { ptr, i64, i64 } %t286, ptr %a289 call void @finch_str_concat(ptr %a287, ptr %a288, ptr %a289) store { ptr, i64, i64 } %t286, ptr %a290 call void @finch_str_drop(ptr %a290) %t291 = load { ptr, i64, i64 }, ptr %a287 store { ptr, i64, i64 } %t291, ptr %a293 - store { ptr, i64, i64 } { ptr @.str.4619, i64 2, i64 0 }, ptr %a294 + store { ptr, i64, i64 } { ptr @.str.4826, i64 2, i64 0 }, ptr %a294 call void @finch_str_concat(ptr %a292, ptr %a293, ptr %a294) store { ptr, i64, i64 } %t291, ptr %a295 call void @finch_str_drop(ptr %a295) @@ -72032,8 +75965,8 @@ else7201: store { ptr, i64, i64 } %t296, ptr %t297 store { ptr, i64, i64 } %t298, ptr %a299 call void @finch_str_drop(ptr %a299) - br label %endif7202 -endif7202: + br label %endif7595 +endif7595: %t300 = load %S.gen.Abi, ptr %a4 call void @finch.drop.arr_bool(ptr %a136) call void @finch.drop.arr_int(ptr %a128) @@ -72099,17 +76032,17 @@ entry: call void @finch.drop.S_gen_Abi(ptr %a12) %t13 = getelementptr inbounds %S.gen.Plan, ptr %a4, i32 0, i32 2 %t14 = load { ptr, i64, i64 }, ptr %t13 - store { ptr, i64, i64 } { ptr @.str.4620, i64 4, i64 0 }, ptr %t13 + store { ptr, i64, i64 } { ptr @.str.4827, i64 4, i64 0 }, ptr %t13 store { ptr, i64, i64 } %t14, ptr %a15 call void @finch_str_drop(ptr %a15) %t16 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t17 = load { ptr, i64, i64 }, ptr %t16 store { ptr, i64, i64 } %t17, ptr %a18 - store { ptr, i64, i64 } { ptr @.str.4621, i64 4, i64 0 }, ptr %a19 + store { ptr, i64, i64 } { ptr @.str.4828, i64 4, i64 0 }, ptr %a19 %t20 = call i32 @finch_str_eq(ptr %a18, ptr %a19) %t21 = icmp eq i32 %t20, 0 - br i1 %t21, label %then7205, label %endif7207 -then7205: + br i1 %t21, label %then7598, label %endif7600 +then7598: %t22 = load ptr, ptr %a1 %t23 = load %S.ast.Type, ptr %a2 %t24 = call { ptr, i64, i64 } @finch.gen.cLL(ptr %t22, %S.ast.Type %t23) @@ -72118,55 +76051,55 @@ then7205: store { ptr, i64, i64 } %t24, ptr %t25 store { ptr, i64, i64 } %t26, ptr %a27 call void @finch_str_drop(ptr %a27) - br label %endif7207 -endif7207: + br label %endif7600 +endif7600: %t28 = getelementptr inbounds %S.gen.Plan, ptr %a4, i32 0, i32 0 %t29 = getelementptr inbounds %S.gen.Abi, ptr %t28, i32 0, i32 0 %t30 = load { ptr, i64, i64 }, ptr %t29 store { ptr, i64, i64 } %t30, ptr %a31 - store { ptr, i64, i64 } { ptr @.str.4622, i64 8, i64 0 }, ptr %a32 + store { ptr, i64, i64 } { ptr @.str.4829, i64 8, i64 0 }, ptr %a32 %t33 = call i32 @finch_str_eq(ptr %a31, ptr %a32) %t34 = icmp ne i32 %t33, 0 - br i1 %t34, label %then7208, label %endif7210 -then7208: + br i1 %t34, label %then7601, label %endif7603 +then7601: %t35 = getelementptr inbounds %S.gen.Plan, ptr %a4, i32 0, i32 0 %t36 = getelementptr inbounds %S.gen.Abi, ptr %t35, i32 0, i32 0 %t37 = load { ptr, i64, i64 }, ptr %t36 - store { ptr, i64, i64 } { ptr @.str.4623, i64 6, i64 0 }, ptr %t36 + store { ptr, i64, i64 } { ptr @.str.4830, i64 6, i64 0 }, ptr %t36 store { ptr, i64, i64 } %t37, ptr %a38 call void @finch_str_drop(ptr %a38) - br label %endif7210 -endif7210: + br label %endif7603 +endif7603: %t39 = getelementptr inbounds %S.gen.Plan, ptr %a4, i32 0, i32 0 %t40 = getelementptr inbounds %S.gen.Abi, ptr %t39, i32 0, i32 0 %t41 = load { ptr, i64, i64 }, ptr %t40 store { ptr, i64, i64 } %t41, ptr %a42 - store { ptr, i64, i64 } { ptr @.str.4624, i64 6, i64 0 }, ptr %a43 + store { ptr, i64, i64 } { ptr @.str.4831, i64 6, i64 0 }, ptr %a43 %t44 = call i32 @finch_str_eq(ptr %a42, ptr %a43) %t45 = icmp ne i32 %t44, 0 - br i1 %t45, label %then7211, label %else7212 -then7211: + br i1 %t45, label %then7604, label %else7605 +then7604: %t46 = getelementptr inbounds %S.gen.Plan, ptr %a4, i32 0, i32 3 store i1 true, ptr %t46 %t47 = getelementptr inbounds %S.gen.Plan, ptr %a4, i32 0, i32 2 %t48 = load { ptr, i64, i64 }, ptr %t47 - store { ptr, i64, i64 } { ptr @.str.4625, i64 4, i64 0 }, ptr %t47 + store { ptr, i64, i64 } { ptr @.str.4832, i64 4, i64 0 }, ptr %t47 store { ptr, i64, i64 } %t48, ptr %a49 call void @finch_str_drop(ptr %a49) %t50 = load i64, ptr %a5 %t51 = sub i64 %t50, 1 store i64 %t51, ptr %a5 - br label %endif7213 -else7212: + br label %endif7606 +else7605: %t52 = getelementptr inbounds %S.gen.Plan, ptr %a4, i32 0, i32 0 %t53 = getelementptr inbounds %S.gen.Abi, ptr %t52, i32 0, i32 0 %t54 = load { ptr, i64, i64 }, ptr %t53 store { ptr, i64, i64 } %t54, ptr %a55 - store { ptr, i64, i64 } { ptr @.str.4626, i64 6, i64 0 }, ptr %a56 + store { ptr, i64, i64 } { ptr @.str.4833, i64 6, i64 0 }, ptr %a56 %t57 = call i32 @finch_str_eq(ptr %a55, ptr %a56) %t58 = icmp ne i32 %t57, 0 - br i1 %t58, label %then7214, label %endif7216 -then7214: + br i1 %t58, label %then7607, label %endif7609 +then7607: %t59 = getelementptr inbounds %S.gen.Plan, ptr %a4, i32 0, i32 0 %t60 = getelementptr inbounds %S.gen.Abi, ptr %t59, i32 0, i32 2 %t61 = load { ptr, i64, i64 }, ptr %t60 @@ -72178,19 +76111,19 @@ then7214: store { ptr, i64, i64 } %t65, ptr %t62 store { ptr, i64, i64 } %t66, ptr %a67 call void @finch_str_drop(ptr %a67) - br label %endif7216 -endif7216: - br label %endif7213 -endif7213: + br label %endif7609 +endif7609: + br label %endif7606 +endif7606: store i64 0, ptr %a68 - br label %each.cond7217 -each.cond7217: + br label %each.cond7610 +each.cond7610: %t69 = getelementptr inbounds { ptr, i64, i64 }, ptr %a3, i32 0, i32 1 %t70 = load i64, ptr %t69 %t71 = load i64, ptr %a68 %t72 = icmp slt i64 %t71, %t70 - br i1 %t72, label %each.body7218, label %each.end7220 -each.body7218: + br i1 %t72, label %each.body7611, label %each.end7613 +each.body7611: %t73 = load ptr, ptr %a3 %t74 = getelementptr inbounds %S.ast.Type, ptr %t73, i64 %t71 %t75 = load %S.ast.Type, ptr %t74 @@ -72202,106 +76135,106 @@ each.body7218: %t81 = getelementptr inbounds %S.gen.Abi, ptr %a80, i32 0, i32 0 %t82 = load { ptr, i64, i64 }, ptr %t81 store { ptr, i64, i64 } %t82, ptr %a83 - store { ptr, i64, i64 } { ptr @.str.4627, i64 6, i64 0 }, ptr %a84 + store { ptr, i64, i64 } { ptr @.str.4834, i64 6, i64 0 }, ptr %a84 %t85 = call i32 @finch_str_eq(ptr %a83, ptr %a84) %t86 = icmp ne i32 %t85, 0 - br i1 %t86, label %then7221, label %else7222 -then7221: + br i1 %t86, label %then7614, label %else7615 +then7614: store i64 0, ptr %a87 store i64 0, ptr %a88 %t89 = getelementptr inbounds %S.gen.Abi, ptr %a80, i32 0, i32 1 store i64 0, ptr %a90 - br label %each.cond7224 -each.cond7224: + br label %each.cond7617 +each.cond7617: %t91 = getelementptr inbounds { ptr, i64, i64 }, ptr %t89, i32 0, i32 1 %t92 = load i64, ptr %t91 %t93 = load i64, ptr %a90 %t94 = icmp slt i64 %t93, %t92 - br i1 %t94, label %each.body7225, label %each.end7227 -each.body7225: + br i1 %t94, label %each.body7618, label %each.end7620 +each.body7618: %t95 = load ptr, ptr %t89 %t96 = getelementptr inbounds { ptr, i64, i64 }, ptr %t95, i64 %t93 %t97 = load { ptr, i64, i64 }, ptr %t96 store { ptr, i64, i64 } %t97, ptr %a98 %t99 = load { ptr, i64, i64 }, ptr %a98 store { ptr, i64, i64 } %t99, ptr %a100 - store { ptr, i64, i64 } { ptr @.str.4629, i64 1, i64 0 }, ptr %a102 + store { ptr, i64, i64 } { ptr @.str.4836, i64 1, i64 0 }, ptr %a102 %t103 = call i32 @finch_str_starts(ptr %a100, ptr %a102) %t104 = icmp ne i32 %t103, 0 - br i1 %t104, label %then7228, label %else7229 -then7228: + br i1 %t104, label %then7621, label %else7622 +then7621: %t105 = load i64, ptr %a87 %t106 = add i64 %t105, 1 store i64 %t106, ptr %a87 - br label %endif7230 -else7229: + br label %endif7623 +else7622: %t107 = load i64, ptr %a88 %t108 = add i64 %t107, 1 store i64 %t108, ptr %a88 - br label %endif7230 -endif7230: - br label %each.step7226 -each.step7226: + br label %endif7623 +endif7623: + br label %each.step7619 +each.step7619: %t109 = load i64, ptr %a90 %t110 = add i64 %t109, 1 store i64 %t110, ptr %a90 - br label %each.cond7224 -each.end7227: + br label %each.cond7617 +each.end7620: %t111 = load ptr, ptr %a1 %t112 = icmp eq ptr %t111, null - br i1 %t112, label %panic7231, label %ok7232 -panic7231: - call void @finch_panic(ptr @.str.4630, i64 4198, ptr @.str.4631) + br i1 %t112, label %panic7624, label %ok7625 +panic7624: + call void @finch_panic(ptr @.str.4837, i64 4425, ptr @.str.4838) unreachable -ok7232: - %t113 = getelementptr inbounds %S.gen.Gen, ptr %t111, i32 0, i32 30 +ok7625: + %t113 = getelementptr inbounds %S.gen.Gen, ptr %t111, i32 0, i32 31 %t114 = getelementptr inbounds %S.platform.Target, ptr %t113, i32 0, i32 1 %t115 = load i1, ptr %t114 - br label %logic.from7233 -logic.from7233: - br i1 %t115, label %logic.end7235, label %logic.rhs7234 -logic.rhs7234: + br label %logic.from7626 +logic.from7626: + br i1 %t115, label %logic.end7628, label %logic.rhs7627 +logic.rhs7627: %t116 = load ptr, ptr %a1 %t117 = icmp eq ptr %t116, null - br i1 %t117, label %panic7236, label %ok7237 -panic7236: - call void @finch_panic(ptr @.str.4632, i64 4198, ptr @.str.4633) + br i1 %t117, label %panic7629, label %ok7630 +panic7629: + call void @finch_panic(ptr @.str.4839, i64 4425, ptr @.str.4840) unreachable -ok7237: - %t118 = getelementptr inbounds %S.gen.Gen, ptr %t116, i32 0, i32 30 +ok7630: + %t118 = getelementptr inbounds %S.gen.Gen, ptr %t116, i32 0, i32 31 %t119 = getelementptr inbounds %S.platform.Target, ptr %t118, i32 0, i32 4 %t120 = load i1, ptr %t119 - br label %logic.rend7238 -logic.rend7238: - br label %logic.end7235 -logic.end7235: - %t121 = phi i1 [ true, %logic.from7233 ], [ %t120, %logic.rend7238 ] - br label %logic.from7239 -logic.from7239: - br i1 %t121, label %logic.end7241, label %logic.rhs7240 -logic.rhs7240: + br label %logic.rend7631 +logic.rend7631: + br label %logic.end7628 +logic.end7628: + %t121 = phi i1 [ true, %logic.from7626 ], [ %t120, %logic.rend7631 ] + br label %logic.from7632 +logic.from7632: + br i1 %t121, label %logic.end7634, label %logic.rhs7633 +logic.rhs7633: %t122 = load i64, ptr %a87 %t123 = load i64, ptr %a5 %t124 = icmp sle i64 %t122, %t123 - br label %logic.from7242 -logic.from7242: - br i1 %t124, label %logic.rhs7243, label %logic.end7244 -logic.rhs7243: + br label %logic.from7635 +logic.from7635: + br i1 %t124, label %logic.rhs7636, label %logic.end7637 +logic.rhs7636: %t125 = load i64, ptr %a88 %t126 = load i64, ptr %a6 %t127 = icmp sle i64 %t125, %t126 - br label %logic.rend7245 -logic.rend7245: - br label %logic.end7244 -logic.end7244: - %t128 = phi i1 [ false, %logic.from7242 ], [ %t127, %logic.rend7245 ] - br label %logic.rend7246 -logic.rend7246: - br label %logic.end7241 -logic.end7241: - %t129 = phi i1 [ true, %logic.from7239 ], [ %t128, %logic.rend7246 ] - br i1 %t129, label %then7247, label %else7248 -then7247: + br label %logic.rend7638 +logic.rend7638: + br label %logic.end7637 +logic.end7637: + %t128 = phi i1 [ false, %logic.from7635 ], [ %t127, %logic.rend7638 ] + br label %logic.rend7639 +logic.rend7639: + br label %logic.end7634 +logic.end7634: + %t129 = phi i1 [ true, %logic.from7632 ], [ %t128, %logic.rend7639 ] + br i1 %t129, label %then7640, label %else7641 +then7640: %t130 = load i64, ptr %a87 %t131 = load i64, ptr %a5 %t132 = sub i64 %t131, %t130 @@ -72310,43 +76243,43 @@ then7247: %t134 = load i64, ptr %a6 %t135 = sub i64 %t134, %t133 store i64 %t135, ptr %a6 - br label %endif7249 -else7248: + br label %endif7642 +else7641: %t136 = getelementptr inbounds %S.gen.Abi, ptr %a80, i32 0, i32 0 %t137 = load { ptr, i64, i64 }, ptr %t136 - store { ptr, i64, i64 } { ptr @.str.4634, i64 6, i64 0 }, ptr %t136 + store { ptr, i64, i64 } { ptr @.str.4841, i64 6, i64 0 }, ptr %t136 store { ptr, i64, i64 } %t137, ptr %a138 call void @finch_str_drop(ptr %a138) - br label %endif7249 -endif7249: - br label %endif7223 -else7222: + br label %endif7642 +endif7642: + br label %endif7616 +else7615: %t139 = getelementptr inbounds %S.gen.Abi, ptr %a80, i32 0, i32 0 %t140 = load { ptr, i64, i64 }, ptr %t139 store { ptr, i64, i64 } %t140, ptr %a141 - store { ptr, i64, i64 } { ptr @.str.4635, i64 6, i64 0 }, ptr %a142 + store { ptr, i64, i64 } { ptr @.str.4842, i64 6, i64 0 }, ptr %a142 %t143 = call i32 @finch_str_eq(ptr %a141, ptr %a142) %t144 = icmp ne i32 %t143, 0 - br i1 %t144, label %then7250, label %endif7252 -then7250: + br i1 %t144, label %then7643, label %endif7645 +then7643: %t145 = load %S.ast.Type, ptr %a76 %t146 = call i1 @finch.gen.isFloat(%S.ast.Type %t145) - br i1 %t146, label %then7253, label %else7254 -then7253: + br i1 %t146, label %then7646, label %else7647 +then7646: %t147 = load i64, ptr %a6 %t148 = sub i64 %t147, 1 store i64 %t148, ptr %a6 - br label %endif7255 -else7254: + br label %endif7648 +else7647: %t149 = load i64, ptr %a5 %t150 = sub i64 %t149, 1 store i64 %t150, ptr %a5 - br label %endif7255 -endif7255: - br label %endif7252 -endif7252: - br label %endif7223 -endif7223: + br label %endif7648 +endif7648: + br label %endif7645 +endif7645: + br label %endif7616 +endif7616: %t151 = getelementptr inbounds %S.gen.Plan, ptr %a4, i32 0, i32 1 %t152 = getelementptr inbounds { ptr, i64, i64 }, ptr %t151, i32 0, i32 1 %t153 = load %S.gen.Abi, ptr %a80 @@ -72361,13 +76294,13 @@ endif7223: store %S.gen.Abi %t156, ptr %t160 store i64 %t158, ptr %t152 call void @finch.drop.S_gen_Abi(ptr %a80) - br label %each.step7219 -each.step7219: + br label %each.step7612 +each.step7612: %t161 = load i64, ptr %a68 %t162 = add i64 %t161, 1 store i64 %t162, ptr %a68 - br label %each.cond7217 -each.end7220: + br label %each.cond7610 +each.end7613: %t163 = load %S.gen.Plan, ptr %a4 ret %S.gen.Plan %t163 } @@ -72446,20 +76379,20 @@ entry: %t6 = getelementptr inbounds %S.ast.Type, ptr %a4, i32 0, i32 0 %t7 = load { ptr, i64, i64 }, ptr %t6 store { ptr, i64, i64 } %t7, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.4636, i64 6, i64 0 }, ptr %a9 + store { ptr, i64, i64 } { ptr @.str.4843, i64 6, i64 0 }, ptr %a9 %t10 = call i32 @finch_str_eq(ptr %a8, ptr %a9) %t11 = icmp eq i32 %t10, 0 - br i1 %t11, label %then7256, label %endif7258 -then7256: + br i1 %t11, label %then7649, label %endif7651 +then7649: ret void -endif7258: +endif7651: %t12 = load ptr, ptr %a1 %t13 = icmp eq ptr %t12, null - br i1 %t13, label %panic7259, label %ok7260 -panic7259: - call void @finch_panic(ptr @.str.4637, i64 4220, ptr @.str.4638) + br i1 %t13, label %panic7652, label %ok7653 +panic7652: + call void @finch_panic(ptr @.str.4844, i64 4447, ptr @.str.4845) unreachable -ok7260: +ok7653: %t14 = getelementptr inbounds %S.gen.Gen, ptr %t12, i32 0, i32 16 %t15 = load ptr, ptr %a1 %t16 = getelementptr inbounds %S.ast.Type, ptr %a4, i32 0, i32 3 @@ -72470,11 +76403,11 @@ ok7260: %t21 = load { ptr, i64, i64 }, ptr %t14 %t22 = extractvalue { ptr, i64, i64 } %t21, 1 %t23 = icmp uge i64 %t20, %t22 - br i1 %t23, label %range7261, label %inrange7262 -range7261: - call void @finch_panic_index(ptr @.str.4639, i64 4220, i64 %t20, i64 %t22) + br i1 %t23, label %range7654, label %inrange7655 +range7654: + call void @finch_panic_index(ptr @.str.4846, i64 4447, i64 %t20, i64 %t22) unreachable -inrange7262: +inrange7655: %t24 = extractvalue { ptr, i64, i64 } %t21, 0 %t25 = getelementptr inbounds %S.gen.StructDef, ptr %t24, i64 %t20 %t26 = load %S.gen.StructDef, ptr %t25 @@ -72485,17 +76418,17 @@ inrange7262: %t31 = getelementptr inbounds %S.gen.StructDef, ptr %a30, i32 0, i32 2 %t32 = load i1, ptr %t31 %t33 = xor i1 %t32, true - br i1 %t33, label %then7263, label %endif7265 -then7263: + br i1 %t33, label %then7656, label %endif7658 +then7656: %t34 = load ptr, ptr %a1 %t35 = load %S.ast.Node, ptr %a2 %t36 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.4640, i64 16, i64 0 }, ptr %a38 + store { ptr, i64, i64 } { ptr @.str.4847, i64 16, i64 0 }, ptr %a38 store { ptr, i64, i64 } %t36, ptr %a39 call void @finch_str_concat(ptr %a37, ptr %a38, ptr %a39) %t40 = load { ptr, i64, i64 }, ptr %a37 store { ptr, i64, i64 } %t40, ptr %a42 - store { ptr, i64, i64 } { ptr @.str.4641, i64 2, i64 0 }, ptr %a43 + store { ptr, i64, i64 } { ptr @.str.4848, i64 2, i64 0 }, ptr %a43 call void @finch_str_concat(ptr %a41, ptr %a42, ptr %a43) store { ptr, i64, i64 } %t40, ptr %a44 call void @finch_str_drop(ptr %a44) @@ -72508,7 +76441,7 @@ then7263: call void @finch_str_drop(ptr %a50) %t51 = load { ptr, i64, i64 }, ptr %a47 store { ptr, i64, i64 } %t51, ptr %a53 - store { ptr, i64, i64 } { ptr @.str.4642, i64 18, i64 0 }, ptr %a54 + store { ptr, i64, i64 } { ptr @.str.4849, i64 18, i64 0 }, ptr %a54 call void @finch_str_concat(ptr %a52, ptr %a53, ptr %a54) store { ptr, i64, i64 } %t51, ptr %a55 call void @finch_str_drop(ptr %a55) @@ -72524,7 +76457,7 @@ then7263: call void @finch_str_drop(ptr %a63) %t64 = load { ptr, i64, i64 }, ptr %a59 store { ptr, i64, i64 } %t64, ptr %a66 - store { ptr, i64, i64 } { ptr @.str.4643, i64 20, i64 0 }, ptr %a67 + store { ptr, i64, i64 } { ptr @.str.4850, i64 20, i64 0 }, ptr %a67 call void @finch_str_concat(ptr %a65, ptr %a66, ptr %a67) store { ptr, i64, i64 } %t64, ptr %a68 call void @finch_str_drop(ptr %a68) @@ -72532,23 +76465,23 @@ then7263: call void @finch.gen.fail(ptr %t34, %S.ast.Node %t35, { ptr, i64, i64 } %t69) store { ptr, i64, i64 } %t69, ptr %a70 call void @finch_str_drop(ptr %a70) - br label %endif7265 -endif7265: + br label %endif7658 +endif7658: %t71 = getelementptr inbounds %S.gen.StructDef, ptr %a30, i32 0, i32 8 %t72 = getelementptr inbounds { ptr, i64, i64 }, ptr %t71, i32 0, i32 1 %t73 = load i64, ptr %t72 %t74 = icmp sgt i64 %t73, 0 - br i1 %t74, label %then7266, label %endif7268 -then7266: + br i1 %t74, label %then7659, label %endif7661 +then7659: %t75 = load ptr, ptr %a1 %t76 = load %S.ast.Node, ptr %a2 %t77 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.4644, i64 16, i64 0 }, ptr %a79 + store { ptr, i64, i64 } { ptr @.str.4851, i64 16, i64 0 }, ptr %a79 store { ptr, i64, i64 } %t77, ptr %a80 call void @finch_str_concat(ptr %a78, ptr %a79, ptr %a80) %t81 = load { ptr, i64, i64 }, ptr %a78 store { ptr, i64, i64 } %t81, ptr %a83 - store { ptr, i64, i64 } { ptr @.str.4645, i64 2, i64 0 }, ptr %a84 + store { ptr, i64, i64 } { ptr @.str.4852, i64 2, i64 0 }, ptr %a84 call void @finch_str_concat(ptr %a82, ptr %a83, ptr %a84) store { ptr, i64, i64 } %t81, ptr %a85 call void @finch_str_drop(ptr %a85) @@ -72561,7 +76494,7 @@ then7266: call void @finch_str_drop(ptr %a91) %t92 = load { ptr, i64, i64 }, ptr %a88 store { ptr, i64, i64 } %t92, ptr %a94 - store { ptr, i64, i64 } { ptr @.str.4646, i64 12, i64 0 }, ptr %a95 + store { ptr, i64, i64 } { ptr @.str.4853, i64 12, i64 0 }, ptr %a95 call void @finch_str_concat(ptr %a93, ptr %a94, ptr %a95) store { ptr, i64, i64 } %t92, ptr %a96 call void @finch_str_drop(ptr %a96) @@ -72577,7 +76510,7 @@ then7266: call void @finch_str_drop(ptr %a104) %t105 = load { ptr, i64, i64 }, ptr %a100 store { ptr, i64, i64 } %t105, ptr %a107 - store { ptr, i64, i64 } { ptr @.str.4647, i64 40, i64 0 }, ptr %a108 + store { ptr, i64, i64 } { ptr @.str.4854, i64 40, i64 0 }, ptr %a108 call void @finch_str_concat(ptr %a106, ptr %a107, ptr %a108) store { ptr, i64, i64 } %t105, ptr %a109 call void @finch_str_drop(ptr %a109) @@ -72593,8 +76526,8 @@ then7266: call void @finch.gen.fail(ptr %t75, %S.ast.Node %t76, { ptr, i64, i64 } %t117) store { ptr, i64, i64 } %t117, ptr %a118 call void @finch_str_drop(ptr %a118) - br label %endif7268 -endif7268: + br label %endif7661 +endif7661: call void @finch.drop.S_gen_StructDef(ptr %a30) ret void } @@ -72611,51 +76544,51 @@ entry: store %S.ast.Type %p0, ptr %a1 %t2 = load %S.ast.Type, ptr %a1 %t3 = call i1 @finch.gen.isNumber(%S.ast.Type %t2) - br label %logic.from7269 -logic.from7269: - br i1 %t3, label %logic.end7271, label %logic.rhs7270 -logic.rhs7270: + br label %logic.from7662 +logic.from7662: + br i1 %t3, label %logic.end7664, label %logic.rhs7663 +logic.rhs7663: %t4 = getelementptr inbounds %S.ast.Type, ptr %a1, i32 0, i32 0 %t5 = load { ptr, i64, i64 }, ptr %t4 store { ptr, i64, i64 } %t5, ptr %a6 - store { ptr, i64, i64 } { ptr @.str.4648, i64 4, i64 0 }, ptr %a7 + store { ptr, i64, i64 } { ptr @.str.4855, i64 4, i64 0 }, ptr %a7 %t8 = call i32 @finch_str_eq(ptr %a6, ptr %a7) %t9 = icmp ne i32 %t8, 0 - br label %logic.rend7272 -logic.rend7272: - br label %logic.end7271 -logic.end7271: - %t10 = phi i1 [ true, %logic.from7269 ], [ %t9, %logic.rend7272 ] - br label %logic.from7273 -logic.from7273: - br i1 %t10, label %logic.end7275, label %logic.rhs7274 -logic.rhs7274: + br label %logic.rend7665 +logic.rend7665: + br label %logic.end7664 +logic.end7664: + %t10 = phi i1 [ true, %logic.from7662 ], [ %t9, %logic.rend7665 ] + br label %logic.from7666 +logic.from7666: + br i1 %t10, label %logic.end7668, label %logic.rhs7667 +logic.rhs7667: %t11 = getelementptr inbounds %S.ast.Type, ptr %a1, i32 0, i32 0 %t12 = load { ptr, i64, i64 }, ptr %t11 store { ptr, i64, i64 } %t12, ptr %a13 - store { ptr, i64, i64 } { ptr @.str.4649, i64 4, i64 0 }, ptr %a14 + store { ptr, i64, i64 } { ptr @.str.4856, i64 4, i64 0 }, ptr %a14 %t15 = call i32 @finch_str_eq(ptr %a13, ptr %a14) %t16 = icmp ne i32 %t15, 0 - br label %logic.rend7276 -logic.rend7276: - br label %logic.end7275 -logic.end7275: - %t17 = phi i1 [ true, %logic.from7273 ], [ %t16, %logic.rend7276 ] - br label %logic.from7277 -logic.from7277: - br i1 %t17, label %logic.end7279, label %logic.rhs7278 -logic.rhs7278: + br label %logic.rend7669 +logic.rend7669: + br label %logic.end7668 +logic.end7668: + %t17 = phi i1 [ true, %logic.from7666 ], [ %t16, %logic.rend7669 ] + br label %logic.from7670 +logic.from7670: + br i1 %t17, label %logic.end7672, label %logic.rhs7671 +logic.rhs7671: %t18 = getelementptr inbounds %S.ast.Type, ptr %a1, i32 0, i32 0 %t19 = load { ptr, i64, i64 }, ptr %t18 store { ptr, i64, i64 } %t19, ptr %a20 - store { ptr, i64, i64 } { ptr @.str.4650, i64 3, i64 0 }, ptr %a21 + store { ptr, i64, i64 } { ptr @.str.4857, i64 3, i64 0 }, ptr %a21 %t22 = call i32 @finch_str_eq(ptr %a20, ptr %a21) %t23 = icmp ne i32 %t22, 0 - br label %logic.rend7280 -logic.rend7280: - br label %logic.end7279 -logic.end7279: - %t24 = phi i1 [ true, %logic.from7277 ], [ %t23, %logic.rend7280 ] + br label %logic.rend7673 +logic.rend7673: + br label %logic.end7672 +logic.end7672: + %t24 = phi i1 [ true, %logic.from7670 ], [ %t23, %logic.rend7673 ] ret i1 %t24 } @@ -72704,71 +76637,71 @@ entry: %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %t4, i32 0, i32 1 %t6 = load i64, ptr %t5 %t7 = icmp sgt i64 %t6, 0 - br i1 %t7, label %then7281, label %endif7283 -then7281: + br i1 %t7, label %then7674, label %endif7676 +then7674: %t8 = load ptr, ptr %a1 %t9 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t8, %S.ast.Node %t9, { ptr, i64, i64 } { ptr @.str.4651, i64 59, i64 0 }) - br label %endif7283 -endif7283: + call void @finch.gen.fail(ptr %t8, %S.ast.Node %t9, { ptr, i64, i64 } { ptr @.str.4858, i64 59, i64 0 }) + br label %endif7676 +endif7676: %t10 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 7 %t11 = load i1, ptr %t10 - br i1 %t11, label %then7284, label %endif7286 -then7284: + br i1 %t11, label %then7677, label %endif7679 +then7677: %t12 = load ptr, ptr %a1 %t13 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t12, %S.ast.Node %t13, { ptr, i64, i64 } { ptr @.str.4652, i64 74, i64 0 }) - br label %endif7286 -endif7286: + call void @finch.gen.fail(ptr %t12, %S.ast.Node %t13, { ptr, i64, i64 } { ptr @.str.4859, i64 74, i64 0 }) + br label %endif7679 +endif7679: %t14 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 3 %t15 = getelementptr inbounds { ptr, i64, i64 }, ptr %t14, i32 0, i32 1 %t16 = load i64, ptr %t15 %t17 = icmp sgt i64 %t16, 0 - br i1 %t17, label %then7287, label %endif7289 -then7287: + br i1 %t17, label %then7680, label %endif7682 +then7680: %t18 = load ptr, ptr %a1 %t19 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t18, %S.ast.Node %t19, { ptr, i64, i64 } { ptr @.str.4653, i64 29, i64 0 }) - br label %endif7289 -endif7289: + call void @finch.gen.fail(ptr %t18, %S.ast.Node %t19, { ptr, i64, i64 } { ptr @.str.4860, i64 29, i64 0 }) + br label %endif7682 +endif7682: %t20 = getelementptr inbounds %S.gen.FnSig, ptr %a3, i32 0, i32 13 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t20, i32 0, i32 1 %t22 = load i64, ptr %t21 store i64 0, ptr %a23 - br label %for.cond7290 -for.cond7290: + br label %for.cond7683 +for.cond7683: %t24 = load i64, ptr %a23 %t25 = icmp slt i64 %t24, %t22 - br i1 %t25, label %for.body7291, label %for.end7293 -for.body7291: + br i1 %t25, label %for.body7684, label %for.end7686 +for.body7684: %t26 = getelementptr inbounds %S.gen.FnSig, ptr %a3, i32 0, i32 13 %t27 = load i64, ptr %a23 %t28 = load { ptr, i64, i64 }, ptr %t26 %t29 = extractvalue { ptr, i64, i64 } %t28, 1 %t30 = icmp uge i64 %t27, %t29 - br i1 %t30, label %range7294, label %inrange7295 -range7294: - call void @finch_panic_index(ptr @.str.4654, i64 4245, i64 %t27, i64 %t29) + br i1 %t30, label %range7687, label %inrange7688 +range7687: + call void @finch_panic_index(ptr @.str.4861, i64 4472, i64 %t27, i64 %t29) unreachable -inrange7295: +inrange7688: %t31 = extractvalue { ptr, i64, i64 } %t28, 0 %t32 = getelementptr inbounds %S.ast.Type, ptr %t31, i64 %t27 %t33 = load %S.ast.Type, ptr %t32 %t34 = call i1 @finch.gen.cPlain(%S.ast.Type %t33) %t35 = xor i1 %t34, true - br i1 %t35, label %then7296, label %endif7298 -then7296: + br i1 %t35, label %then7689, label %endif7691 +then7689: %t36 = load ptr, ptr %a1 %t37 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t38 = load i64, ptr %a23 %t39 = load { ptr, i64, i64 }, ptr %t37 %t40 = extractvalue { ptr, i64, i64 } %t39, 1 %t41 = icmp uge i64 %t38, %t40 - br i1 %t41, label %range7299, label %inrange7300 -range7299: - call void @finch_panic_index(ptr @.str.4655, i64 4246, i64 %t38, i64 %t40) + br i1 %t41, label %range7692, label %inrange7693 +range7692: + call void @finch_panic_index(ptr @.str.4862, i64 4473, i64 %t38, i64 %t40) unreachable -inrange7300: +inrange7693: %t42 = extractvalue { ptr, i64, i64 } %t39, 0 %t43 = getelementptr inbounds %S.ast.Node, ptr %t42, i64 %t38 %t44 = load %S.ast.Node, ptr %t43 @@ -72777,23 +76710,23 @@ inrange7300: %t47 = load { ptr, i64, i64 }, ptr %t45 %t48 = extractvalue { ptr, i64, i64 } %t47, 1 %t49 = icmp uge i64 %t46, %t48 - br i1 %t49, label %range7301, label %inrange7302 -range7301: - call void @finch_panic_index(ptr @.str.4657, i64 4246, i64 %t46, i64 %t48) + br i1 %t49, label %range7694, label %inrange7695 +range7694: + call void @finch_panic_index(ptr @.str.4864, i64 4473, i64 %t46, i64 %t48) unreachable -inrange7302: +inrange7695: %t50 = extractvalue { ptr, i64, i64 } %t47, 0 %t51 = getelementptr inbounds %S.ast.Type, ptr %t50, i64 %t46 %t52 = load %S.ast.Type, ptr %t51 %t53 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t52) - store { ptr, i64, i64 } { ptr @.str.4656, i64 66, i64 0 }, ptr %a55 + store { ptr, i64, i64 } { ptr @.str.4863, i64 66, i64 0 }, ptr %a55 store { ptr, i64, i64 } %t53, ptr %a56 call void @finch_str_concat(ptr %a54, ptr %a55, ptr %a56) store { ptr, i64, i64 } %t53, ptr %a57 call void @finch_str_drop(ptr %a57) %t58 = load { ptr, i64, i64 }, ptr %a54 store { ptr, i64, i64 } %t58, ptr %a60 - store { ptr, i64, i64 } { ptr @.str.4658, i64 50, i64 0 }, ptr %a61 + store { ptr, i64, i64 } { ptr @.str.4865, i64 50, i64 0 }, ptr %a61 call void @finch_str_concat(ptr %a59, ptr %a60, ptr %a61) store { ptr, i64, i64 } %t58, ptr %a62 call void @finch_str_drop(ptr %a62) @@ -72801,50 +76734,50 @@ inrange7302: call void @finch.gen.fail(ptr %t36, %S.ast.Node %t44, { ptr, i64, i64 } %t63) store { ptr, i64, i64 } %t63, ptr %a64 call void @finch_str_drop(ptr %a64) - br label %endif7298 -endif7298: - br label %for.step7292 -for.step7292: + br label %endif7691 +endif7691: + br label %for.step7685 +for.step7685: %t65 = load i64, ptr %a23 %t66 = add i64 %t65, 1 store i64 %t66, ptr %a23 - br label %for.cond7290 -for.end7293: + br label %for.cond7683 +for.end7686: %t67 = getelementptr inbounds %S.gen.FnSig, ptr %a3, i32 0, i32 12 %t68 = getelementptr inbounds %S.ast.Type, ptr %t67, i32 0, i32 0 %t69 = load { ptr, i64, i64 }, ptr %t68 store { ptr, i64, i64 } %t69, ptr %a70 - store { ptr, i64, i64 } { ptr @.str.4659, i64 4, i64 0 }, ptr %a71 + store { ptr, i64, i64 } { ptr @.str.4866, i64 4, i64 0 }, ptr %a71 %t72 = call i32 @finch_str_eq(ptr %a70, ptr %a71) %t73 = icmp eq i32 %t72, 0 - br label %logic.from7303 -logic.from7303: - br i1 %t73, label %logic.rhs7304, label %logic.end7305 -logic.rhs7304: + br label %logic.from7696 +logic.from7696: + br i1 %t73, label %logic.rhs7697, label %logic.end7698 +logic.rhs7697: %t74 = getelementptr inbounds %S.gen.FnSig, ptr %a3, i32 0, i32 12 %t75 = load %S.ast.Type, ptr %t74 %t76 = call i1 @finch.gen.cPlain(%S.ast.Type %t75) %t77 = xor i1 %t76, true - br label %logic.rend7306 -logic.rend7306: - br label %logic.end7305 -logic.end7305: - %t78 = phi i1 [ false, %logic.from7303 ], [ %t77, %logic.rend7306 ] - br i1 %t78, label %then7307, label %endif7309 -then7307: + br label %logic.rend7699 +logic.rend7699: + br label %logic.end7698 +logic.end7698: + %t78 = phi i1 [ false, %logic.from7696 ], [ %t77, %logic.rend7699 ] + br i1 %t78, label %then7700, label %endif7702 +then7700: %t79 = load ptr, ptr %a1 %t80 = load %S.ast.Node, ptr %a2 %t81 = getelementptr inbounds %S.gen.FnSig, ptr %a3, i32 0, i32 12 %t82 = load %S.ast.Type, ptr %t81 %t83 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t82) - store { ptr, i64, i64 } { ptr @.str.4660, i64 69, i64 0 }, ptr %a85 + store { ptr, i64, i64 } { ptr @.str.4867, i64 69, i64 0 }, ptr %a85 store { ptr, i64, i64 } %t83, ptr %a86 call void @finch_str_concat(ptr %a84, ptr %a85, ptr %a86) store { ptr, i64, i64 } %t83, ptr %a87 call void @finch_str_drop(ptr %a87) %t88 = load { ptr, i64, i64 }, ptr %a84 store { ptr, i64, i64 } %t88, ptr %a90 - store { ptr, i64, i64 } { ptr @.str.4661, i64 1, i64 0 }, ptr %a91 + store { ptr, i64, i64 } { ptr @.str.4868, i64 1, i64 0 }, ptr %a91 call void @finch_str_concat(ptr %a89, ptr %a90, ptr %a91) store { ptr, i64, i64 } %t88, ptr %a92 call void @finch_str_drop(ptr %a92) @@ -72852,35 +76785,35 @@ then7307: call void @finch.gen.fail(ptr %t79, %S.ast.Node %t80, { ptr, i64, i64 } %t93) store { ptr, i64, i64 } %t93, ptr %a94 call void @finch_str_drop(ptr %a94) - br label %endif7309 -endif7309: + br label %endif7702 +endif7702: %t95 = load ptr, ptr %a1 %t96 = icmp eq ptr %t95, null - br i1 %t96, label %panic7310, label %ok7311 -panic7310: - call void @finch_panic(ptr @.str.4662, i64 4252, ptr @.str.4663) + br i1 %t96, label %panic7703, label %ok7704 +panic7703: + call void @finch_panic(ptr @.str.4869, i64 4479, ptr @.str.4870) unreachable -ok7311: +ok7704: %t97 = getelementptr inbounds %S.gen.Gen, ptr %t95, i32 0, i32 15 store i64 0, ptr %a98 - br label %each.cond7312 -each.cond7312: + br label %each.cond7705 +each.cond7705: %t99 = getelementptr inbounds { ptr, i64, i64 }, ptr %t97, i32 0, i32 1 %t100 = load i64, ptr %t99 %t101 = load i64, ptr %a98 %t102 = icmp slt i64 %t101, %t100 - br i1 %t102, label %each.body7313, label %each.end7315 -each.body7313: + br i1 %t102, label %each.body7706, label %each.end7708 +each.body7706: %t103 = load ptr, ptr %t97 %t104 = getelementptr inbounds %S.gen.FnSig, ptr %t103, i64 %t101 %t105 = load %S.gen.FnSig, ptr %t104 store %S.gen.FnSig %t105, ptr %a106 %t107 = getelementptr inbounds %S.gen.FnSig, ptr %a106, i32 0, i32 5 %t108 = load i1, ptr %t107 - br label %logic.from7316 -logic.from7316: - br i1 %t108, label %logic.rhs7317, label %logic.end7318 -logic.rhs7317: + br label %logic.from7709 +logic.from7709: + br i1 %t108, label %logic.rhs7710, label %logic.end7711 +logic.rhs7710: %t109 = getelementptr inbounds %S.gen.FnSig, ptr %a106, i32 0, i32 1 %t110 = load { ptr, i64, i64 }, ptr %t109 %t111 = getelementptr inbounds %S.gen.FnSig, ptr %a3, i32 0, i32 1 @@ -72889,23 +76822,23 @@ logic.rhs7317: store { ptr, i64, i64 } %t112, ptr %a114 %t115 = call i32 @finch_str_eq(ptr %a113, ptr %a114) %t116 = icmp ne i32 %t115, 0 - br label %logic.rend7319 -logic.rend7319: - br label %logic.end7318 -logic.end7318: - %t117 = phi i1 [ false, %logic.from7316 ], [ %t116, %logic.rend7319 ] - br i1 %t117, label %then7320, label %endif7322 -then7320: + br label %logic.rend7712 +logic.rend7712: + br label %logic.end7711 +logic.end7711: + %t117 = phi i1 [ false, %logic.from7709 ], [ %t116, %logic.rend7712 ] + br i1 %t117, label %then7713, label %endif7715 +then7713: %t118 = load ptr, ptr %a1 %t119 = load %S.ast.Node, ptr %a2 %t120 = getelementptr inbounds %S.gen.FnSig, ptr %a3, i32 0, i32 1 %t121 = load { ptr, i64, i64 }, ptr %t120 - store { ptr, i64, i64 } { ptr @.str.4664, i64 1, i64 0 }, ptr %a123 + store { ptr, i64, i64 } { ptr @.str.4871, i64 1, i64 0 }, ptr %a123 store { ptr, i64, i64 } %t121, ptr %a124 call void @finch_str_concat(ptr %a122, ptr %a123, ptr %a124) %t125 = load { ptr, i64, i64 }, ptr %a122 store { ptr, i64, i64 } %t125, ptr %a127 - store { ptr, i64, i64 } { ptr @.str.4665, i64 38, i64 0 }, ptr %a128 + store { ptr, i64, i64 } { ptr @.str.4872, i64 38, i64 0 }, ptr %a128 call void @finch_str_concat(ptr %a126, ptr %a127, ptr %a128) store { ptr, i64, i64 } %t125, ptr %a129 call void @finch_str_drop(ptr %a129) @@ -72913,15 +76846,15 @@ then7320: call void @finch.gen.fail(ptr %t118, %S.ast.Node %t119, { ptr, i64, i64 } %t130) store { ptr, i64, i64 } %t130, ptr %a131 call void @finch_str_drop(ptr %a131) - br label %endif7322 -endif7322: - br label %each.step7314 -each.step7314: + br label %endif7715 +endif7715: + br label %each.step7707 +each.step7707: %t132 = load i64, ptr %a98 %t133 = add i64 %t132, 1 store i64 %t133, ptr %a98 - br label %each.cond7312 -each.end7315: + br label %each.cond7705 +each.end7708: ret void } @@ -73101,22 +77034,22 @@ entry: %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %t8, i32 0, i32 1 %t10 = load i64, ptr %t9 store i64 0, ptr %a11 - br label %for.cond7323 -for.cond7323: + br label %for.cond7716 +for.cond7716: %t12 = load i64, ptr %a11 %t13 = icmp slt i64 %t12, %t10 - br i1 %t13, label %for.body7324, label %for.end7326 -for.body7324: + br i1 %t13, label %for.body7717, label %for.end7719 +for.body7717: %t14 = getelementptr inbounds %S.gen.FnSig, ptr %a2, i32 0, i32 13 %t15 = load i64, ptr %a11 %t16 = load { ptr, i64, i64 }, ptr %t14 %t17 = extractvalue { ptr, i64, i64 } %t16, 1 %t18 = icmp uge i64 %t15, %t17 - br i1 %t18, label %range7327, label %inrange7328 -range7327: - call void @finch_panic_index(ptr @.str.4666, i64 4265, i64 %t15, i64 %t17) + br i1 %t18, label %range7720, label %inrange7721 +range7720: + call void @finch_panic_index(ptr @.str.4873, i64 4492, i64 %t15, i64 %t17) unreachable -inrange7328: +inrange7721: %t19 = extractvalue { ptr, i64, i64 } %t16, 0 %t20 = getelementptr inbounds %S.ast.Type, ptr %t19, i64 %t15 %t21 = load %S.ast.Type, ptr %t20 @@ -73127,16 +77060,16 @@ inrange7328: %t26 = getelementptr inbounds %S.ast.Type, ptr %a25, i32 0, i32 0 %t27 = load { ptr, i64, i64 }, ptr %t26 store { ptr, i64, i64 } %t27, ptr %a28 - store { ptr, i64, i64 } { ptr @.str.4667, i64 4, i64 0 }, ptr %a29 + store { ptr, i64, i64 } { ptr @.str.4874, i64 4, i64 0 }, ptr %a29 %t30 = call i32 @finch_str_eq(ptr %a28, ptr %a29) %t31 = icmp ne i32 %t30, 0 - br i1 %t31, label %then7329, label %else7330 -then7329: + br i1 %t31, label %then7722, label %else7723 +then7722: %t32 = getelementptr inbounds { ptr, i64, i64 }, ptr %a3, i32 0, i32 1 %t33 = load i64, ptr %a11 call void @finch_str_from_int(ptr %a34, i64 %t33) %t35 = load { ptr, i64, i64 }, ptr %a34 - store { ptr, i64, i64 } { ptr @.str.4668, i64 13, i64 0 }, ptr %a37 + store { ptr, i64, i64 } { ptr @.str.4875, i64 13, i64 0 }, ptr %a37 store { ptr, i64, i64 } %t35, ptr %a38 call void @finch_str_concat(ptr %a36, ptr %a37, ptr %a38) store { ptr, i64, i64 } %t35, ptr %a39 @@ -73154,14 +77087,14 @@ then7329: %t47 = load i64, ptr %a11 call void @finch_str_from_int(ptr %a48, i64 %t47) %t49 = load { ptr, i64, i64 }, ptr %a48 - store { ptr, i64, i64 } { ptr @.str.4670, i64 13, i64 0 }, ptr %a51 + store { ptr, i64, i64 } { ptr @.str.4877, i64 13, i64 0 }, ptr %a51 store { ptr, i64, i64 } %t49, ptr %a52 call void @finch_str_concat(ptr %a50, ptr %a51, ptr %a52) store { ptr, i64, i64 } %t49, ptr %a53 call void @finch_str_drop(ptr %a53) %t54 = load { ptr, i64, i64 }, ptr %a50 store { ptr, i64, i64 } %t54, ptr %a56 - store { ptr, i64, i64 } { ptr @.str.4671, i64 3, i64 0 }, ptr %a57 + store { ptr, i64, i64 } { ptr @.str.4878, i64 3, i64 0 }, ptr %a57 call void @finch_str_concat(ptr %a55, ptr %a56, ptr %a57) store { ptr, i64, i64 } %t54, ptr %a58 call void @finch_str_drop(ptr %a58) @@ -73169,7 +77102,7 @@ then7329: %t60 = call { ptr, i64, i64 } @finch.gen.op(ptr %t46, { ptr, i64, i64 } %t59) store { ptr, i64, i64 } %t59, ptr %a61 call void @finch_str_drop(ptr %a61) - store { ptr, i64, i64 } { ptr @.str.4669, i64 3, i64 0 }, ptr %a63 + store { ptr, i64, i64 } { ptr @.str.4876, i64 3, i64 0 }, ptr %a63 store { ptr, i64, i64 } %t60, ptr %a64 call void @finch_str_concat(ptr %a62, ptr %a63, ptr %a64) store { ptr, i64, i64 } %t60, ptr %a65 @@ -73182,8 +77115,8 @@ then7329: %t70 = getelementptr inbounds { ptr, i64, i64 }, ptr %t69, i64 %t67 store { ptr, i64, i64 } %t66, ptr %t70 store i64 %t68, ptr %t45 - br label %endif7331 -else7330: + br label %endif7724 +else7723: %t71 = getelementptr inbounds { ptr, i64, i64 }, ptr %a3, i32 0, i32 1 %t72 = load ptr, ptr %a1 %t73 = load %S.ast.Type, ptr %a25 @@ -73200,7 +77133,7 @@ else7330: call void @finch_str_drop(ptr %a82) %t83 = load { ptr, i64, i64 }, ptr %a78 store { ptr, i64, i64 } %t83, ptr %a85 - store { ptr, i64, i64 } { ptr @.str.4672, i64 3, i64 0 }, ptr %a86 + store { ptr, i64, i64 } { ptr @.str.4879, i64 3, i64 0 }, ptr %a86 call void @finch_str_concat(ptr %a84, ptr %a85, ptr %a86) store { ptr, i64, i64 } %t83, ptr %a87 call void @finch_str_drop(ptr %a87) @@ -73228,7 +77161,7 @@ else7330: %t104 = load %S.ast.Type, ptr %a25 %t105 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t103, %S.ast.Type %t104) store { ptr, i64, i64 } %t105, ptr %a107 - store { ptr, i64, i64 } { ptr @.str.4673, i64 3, i64 0 }, ptr %a108 + store { ptr, i64, i64 } { ptr @.str.4880, i64 3, i64 0 }, ptr %a108 call void @finch_str_concat(ptr %a106, ptr %a107, ptr %a108) store { ptr, i64, i64 } %t105, ptr %a109 call void @finch_str_drop(ptr %a109) @@ -73251,28 +77184,28 @@ else7330: %t123 = getelementptr inbounds { ptr, i64, i64 }, ptr %t122, i64 %t120 store { ptr, i64, i64 } %t119, ptr %t123 store i64 %t121, ptr %t102 - br label %endif7331 -endif7331: + br label %endif7724 +endif7724: call void @finch.drop.S_ast_Type(ptr %a25) - br label %for.step7325 -for.step7325: + br label %for.step7718 +for.step7718: %t124 = load i64, ptr %a11 %t125 = add i64 %t124, 1 store i64 %t125, ptr %a11 - br label %for.cond7323 -for.end7326: + br label %for.cond7716 +for.end7719: %t126 = load ptr, ptr %a1 %t127 = getelementptr inbounds %S.gen.FnSig, ptr %a2, i32 0, i32 12 %t128 = load %S.ast.Type, ptr %t127 %t129 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t126, %S.ast.Type %t128) - store { ptr, i64, i64 } { ptr @.str.4674, i64 5, i64 0 }, ptr %a131 + store { ptr, i64, i64 } { ptr @.str.4881, i64 5, i64 0 }, ptr %a131 store { ptr, i64, i64 } %t129, ptr %a132 call void @finch_str_concat(ptr %a130, ptr %a131, ptr %a132) store { ptr, i64, i64 } %t129, ptr %a133 call void @finch_str_drop(ptr %a133) %t134 = load { ptr, i64, i64 }, ptr %a130 store { ptr, i64, i64 } %t134, ptr %a136 - store { ptr, i64, i64 } { ptr @.str.4675, i64 1, i64 0 }, ptr %a137 + store { ptr, i64, i64 } { ptr @.str.4882, i64 1, i64 0 }, ptr %a137 call void @finch_str_concat(ptr %a135, ptr %a136, ptr %a137) store { ptr, i64, i64 } %t134, ptr %a138 call void @finch_str_drop(ptr %a138) @@ -73286,13 +77219,13 @@ for.end7326: call void @finch_str_drop(ptr %a145) %t146 = load { ptr, i64, i64 }, ptr %a142 store { ptr, i64, i64 } %t146, ptr %a148 - store { ptr, i64, i64 } { ptr @.str.4676, i64 1, i64 0 }, ptr %a149 + store { ptr, i64, i64 } { ptr @.str.4883, i64 1, i64 0 }, ptr %a149 call void @finch_str_concat(ptr %a147, ptr %a148, ptr %a149) store { ptr, i64, i64 } %t146, ptr %a150 call void @finch_str_drop(ptr %a150) %t151 = load { ptr, i64, i64 }, ptr %a147 %t152 = getelementptr inbounds { ptr, i64, i64 }, ptr %a4, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.4677, i64 2, i64 0 }, ptr %a153 + store { ptr, i64, i64 } { ptr @.str.4884, i64 2, i64 0 }, ptr %a153 call void @finch_str_join(ptr %a154, ptr %a4, ptr %a153) %t155 = load { ptr, i64, i64 }, ptr %a154 store { ptr, i64, i64 } %t151, ptr %a157 @@ -73304,45 +77237,45 @@ for.end7326: call void @finch_str_drop(ptr %a160) %t161 = load { ptr, i64, i64 }, ptr %a156 store { ptr, i64, i64 } %t161, ptr %a163 - store { ptr, i64, i64 } { ptr @.str.4678, i64 1, i64 0 }, ptr %a164 + store { ptr, i64, i64 } { ptr @.str.4885, i64 1, i64 0 }, ptr %a164 call void @finch_str_concat(ptr %a162, ptr %a163, ptr %a164) store { ptr, i64, i64 } %t161, ptr %a165 call void @finch_str_drop(ptr %a165) %t166 = load { ptr, i64, i64 }, ptr %a162 store { ptr, i64, i64 } %t166, ptr %a167 - store { ptr, i64, i64 } { ptr @.str.4679, i64 4, i64 0 }, ptr %a168 - store { ptr, i64, i64 } { ptr @.str.4680, i64 0, i64 0 }, ptr %a169 + store { ptr, i64, i64 } { ptr @.str.4886, i64 4, i64 0 }, ptr %a168 + store { ptr, i64, i64 } { ptr @.str.4887, i64 0, i64 0 }, ptr %a169 %t170 = getelementptr inbounds %S.gen.FnSig, ptr %a2, i32 0, i32 12 %t171 = getelementptr inbounds %S.ast.Type, ptr %t170, i32 0, i32 0 %t172 = load { ptr, i64, i64 }, ptr %t171 store { ptr, i64, i64 } %t172, ptr %a173 - store { ptr, i64, i64 } { ptr @.str.4681, i64 4, i64 0 }, ptr %a174 + store { ptr, i64, i64 } { ptr @.str.4888, i64 4, i64 0 }, ptr %a174 %t175 = call i32 @finch_str_eq(ptr %a173, ptr %a174) %t176 = icmp ne i32 %t175, 0 - br i1 %t176, label %then7332, label %else7333 -then7332: + br i1 %t176, label %then7725, label %else7726 +then7725: %t177 = load ptr, ptr %a1 %t178 = load { ptr, i64, i64 }, ptr %a167 call void @finch.gen.emit(ptr %t177, { ptr, i64, i64 } %t178) %t179 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t179, { ptr, i64, i64 } { ptr @.str.4682, i64 8, i64 0 }) - br label %endif7334 -else7333: + call void @finch.gen.emit(ptr %t179, { ptr, i64, i64 } { ptr @.str.4889, i64 8, i64 0 }) + br label %endif7727 +else7726: %t180 = getelementptr inbounds %S.gen.FnSig, ptr %a2, i32 0, i32 12 %t181 = getelementptr inbounds %S.ast.Type, ptr %t180, i32 0, i32 0 %t182 = load { ptr, i64, i64 }, ptr %t181 store { ptr, i64, i64 } %t182, ptr %a183 - store { ptr, i64, i64 } { ptr @.str.4683, i64 4, i64 0 }, ptr %a184 + store { ptr, i64, i64 } { ptr @.str.4890, i64 4, i64 0 }, ptr %a184 %t185 = call i32 @finch_str_eq(ptr %a183, ptr %a184) %t186 = icmp ne i32 %t185, 0 - br i1 %t186, label %then7335, label %else7336 -then7335: + br i1 %t186, label %then7728, label %else7729 +then7728: %t187 = load { ptr, i64, i64 }, ptr %a168 - store { ptr, i64, i64 } { ptr @.str.4684, i64 2, i64 0 }, ptr %a168 + store { ptr, i64, i64 } { ptr @.str.4891, i64 2, i64 0 }, ptr %a168 store { ptr, i64, i64 } %t187, ptr %a188 call void @finch_str_drop(ptr %a188) %t189 = load { ptr, i64, i64 }, ptr %a169 - store { ptr, i64, i64 } { ptr @.str.4685, i64 8, i64 0 }, ptr %a169 + store { ptr, i64, i64 } { ptr @.str.4892, i64 8, i64 0 }, ptr %a169 store { ptr, i64, i64 } %t189, ptr %a190 call void @finch_str_drop(ptr %a190) %t191 = load ptr, ptr %a1 @@ -73350,14 +77283,14 @@ then7335: %t193 = load ptr, ptr %a1 %t194 = load { ptr, i64, i64 }, ptr %a167 %t195 = call { ptr, i64, i64 } @finch.gen.op(ptr %t193, { ptr, i64, i64 } %t194) - store { ptr, i64, i64 } { ptr @.str.4687, i64 8, i64 0 }, ptr %a197 + store { ptr, i64, i64 } { ptr @.str.4894, i64 8, i64 0 }, ptr %a197 store { ptr, i64, i64 } %t195, ptr %a198 call void @finch_str_concat(ptr %a196, ptr %a197, ptr %a198) store { ptr, i64, i64 } %t195, ptr %a199 call void @finch_str_drop(ptr %a199) %t200 = load { ptr, i64, i64 }, ptr %a196 store { ptr, i64, i64 } %t200, ptr %a202 - store { ptr, i64, i64 } { ptr @.str.4688, i64 6, i64 0 }, ptr %a203 + store { ptr, i64, i64 } { ptr @.str.4895, i64 6, i64 0 }, ptr %a203 call void @finch_str_concat(ptr %a201, ptr %a202, ptr %a203) store { ptr, i64, i64 } %t200, ptr %a204 call void @finch_str_drop(ptr %a204) @@ -73365,7 +77298,7 @@ then7335: %t206 = call { ptr, i64, i64 } @finch.gen.op(ptr %t192, { ptr, i64, i64 } %t205) store { ptr, i64, i64 } %t205, ptr %a207 call void @finch_str_drop(ptr %a207) - store { ptr, i64, i64 } { ptr @.str.4686, i64 7, i64 0 }, ptr %a209 + store { ptr, i64, i64 } { ptr @.str.4893, i64 7, i64 0 }, ptr %a209 store { ptr, i64, i64 } %t206, ptr %a210 call void @finch_str_concat(ptr %a208, ptr %a209, ptr %a210) store { ptr, i64, i64 } %t206, ptr %a211 @@ -73374,8 +77307,8 @@ then7335: call void @finch.gen.emit(ptr %t191, { ptr, i64, i64 } %t212) store { ptr, i64, i64 } %t212, ptr %a213 call void @finch_str_drop(ptr %a213) - br label %endif7337 -else7336: + br label %endif7730 +else7729: %t214 = load ptr, ptr %a1 %t215 = getelementptr inbounds %S.gen.FnSig, ptr %a2, i32 0, i32 12 %t216 = load %S.ast.Type, ptr %t215 @@ -73394,12 +77327,12 @@ else7336: call void @finch_str_drop(ptr %a225) %t226 = load ptr, ptr %a1 %t227 = load { ptr, i64, i64 }, ptr %a168 - store { ptr, i64, i64 } { ptr @.str.4689, i64 4, i64 0 }, ptr %a229 + store { ptr, i64, i64 } { ptr @.str.4896, i64 4, i64 0 }, ptr %a229 store { ptr, i64, i64 } %t227, ptr %a230 call void @finch_str_concat(ptr %a228, ptr %a229, ptr %a230) %t231 = load { ptr, i64, i64 }, ptr %a228 store { ptr, i64, i64 } %t231, ptr %a233 - store { ptr, i64, i64 } { ptr @.str.4690, i64 1, i64 0 }, ptr %a234 + store { ptr, i64, i64 } { ptr @.str.4897, i64 1, i64 0 }, ptr %a234 call void @finch_str_concat(ptr %a232, ptr %a233, ptr %a234) store { ptr, i64, i64 } %t231, ptr %a235 call void @finch_str_drop(ptr %a235) @@ -73418,33 +77351,33 @@ else7336: call void @finch.gen.emit(ptr %t226, { ptr, i64, i64 } %t245) store { ptr, i64, i64 } %t245, ptr %a246 call void @finch_str_drop(ptr %a246) - br label %endif7337 -endif7337: - br label %endif7334 -endif7334: - store { ptr, i64, i64 } { ptr @.str.4691, i64 0, i64 0 }, ptr %a247 + br label %endif7730 +endif7730: + br label %endif7727 +endif7727: + store { ptr, i64, i64 } { ptr @.str.4898, i64 0, i64 0 }, ptr %a247 %t248 = load ptr, ptr %a1 %t249 = icmp eq ptr %t248, null - br i1 %t249, label %panic7338, label %ok7339 -panic7338: - call void @finch_panic(ptr @.str.4692, i64 4290, ptr @.str.4693) + br i1 %t249, label %panic7731, label %ok7732 +panic7731: + call void @finch_panic(ptr @.str.4899, i64 4517, ptr @.str.4900) unreachable -ok7339: - %t250 = getelementptr inbounds %S.gen.Gen, ptr %t248, i32 0, i32 30 +ok7732: + %t250 = getelementptr inbounds %S.gen.Gen, ptr %t248, i32 0, i32 31 %t251 = getelementptr inbounds %S.platform.Target, ptr %t250, i32 0, i32 1 %t252 = load i1, ptr %t251 - br i1 %t252, label %then7340, label %endif7342 -then7340: + br i1 %t252, label %then7733, label %endif7735 +then7733: %t253 = load { ptr, i64, i64 }, ptr %a247 - store { ptr, i64, i64 } { ptr @.str.4694, i64 10, i64 0 }, ptr %a247 + store { ptr, i64, i64 } { ptr @.str.4901, i64 10, i64 0 }, ptr %a247 store { ptr, i64, i64 } %t253, ptr %a254 call void @finch_str_drop(ptr %a254) - br label %endif7342 -endif7342: + br label %endif7735 +endif7735: %t255 = load ptr, ptr %a1 %t256 = load %S.gen.Saved, ptr %a7 %t257 = load { ptr, i64, i64 }, ptr %a247 - store { ptr, i64, i64 } { ptr @.str.4695, i64 6, i64 0 }, ptr %a259 + store { ptr, i64, i64 } { ptr @.str.4902, i64 6, i64 0 }, ptr %a259 store { ptr, i64, i64 } %t257, ptr %a260 call void @finch_str_concat(ptr %a258, ptr %a259, ptr %a260) %t261 = load { ptr, i64, i64 }, ptr %a258 @@ -73456,7 +77389,7 @@ endif7342: call void @finch_str_drop(ptr %a266) %t267 = load { ptr, i64, i64 }, ptr %a263 store { ptr, i64, i64 } %t267, ptr %a269 - store { ptr, i64, i64 } { ptr @.str.4696, i64 1, i64 0 }, ptr %a270 + store { ptr, i64, i64 } { ptr @.str.4903, i64 1, i64 0 }, ptr %a270 call void @finch_str_concat(ptr %a268, ptr %a269, ptr %a270) store { ptr, i64, i64 } %t267, ptr %a271 call void @finch_str_drop(ptr %a271) @@ -73469,7 +77402,7 @@ endif7342: call void @finch_str_drop(ptr %a277) %t278 = load { ptr, i64, i64 }, ptr %a274 store { ptr, i64, i64 } %t278, ptr %a280 - store { ptr, i64, i64 } { ptr @.str.4697, i64 2, i64 0 }, ptr %a281 + store { ptr, i64, i64 } { ptr @.str.4904, i64 2, i64 0 }, ptr %a281 call void @finch_str_concat(ptr %a279, ptr %a280, ptr %a281) store { ptr, i64, i64 } %t278, ptr %a282 call void @finch_str_drop(ptr %a282) @@ -73483,13 +77416,13 @@ endif7342: call void @finch_str_drop(ptr %a289) %t290 = load { ptr, i64, i64 }, ptr %a286 store { ptr, i64, i64 } %t290, ptr %a292 - store { ptr, i64, i64 } { ptr @.str.4698, i64 1, i64 0 }, ptr %a293 + store { ptr, i64, i64 } { ptr @.str.4905, i64 1, i64 0 }, ptr %a293 call void @finch_str_concat(ptr %a291, ptr %a292, ptr %a293) store { ptr, i64, i64 } %t290, ptr %a294 call void @finch_str_drop(ptr %a294) %t295 = load { ptr, i64, i64 }, ptr %a291 %t296 = getelementptr inbounds { ptr, i64, i64 }, ptr %a3, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.4699, i64 2, i64 0 }, ptr %a297 + store { ptr, i64, i64 } { ptr @.str.4906, i64 2, i64 0 }, ptr %a297 call void @finch_str_join(ptr %a298, ptr %a3, ptr %a297) %t299 = load { ptr, i64, i64 }, ptr %a298 store { ptr, i64, i64 } %t295, ptr %a301 @@ -73501,7 +77434,7 @@ endif7342: call void @finch_str_drop(ptr %a304) %t305 = load { ptr, i64, i64 }, ptr %a300 store { ptr, i64, i64 } %t305, ptr %a307 - store { ptr, i64, i64 } { ptr @.str.4700, i64 1, i64 0 }, ptr %a308 + store { ptr, i64, i64 } { ptr @.str.4907, i64 1, i64 0 }, ptr %a308 call void @finch_str_concat(ptr %a306, ptr %a307, ptr %a308) store { ptr, i64, i64 } %t305, ptr %a309 call void @finch_str_drop(ptr %a309) @@ -73531,19 +77464,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond7465 -n.cond7465: + br label %n.cond7858 +n.cond7858: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body7466, label %n.end7467 -n.body7466: + br i1 %t6, label %n.body7859, label %n.end7860 +n.body7859: %t7 = getelementptr inbounds %S.gen.Abi, ptr %t1, i64 %t5 call void @finch.drop.S_gen_Abi(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond7465 -n.end7467: + br label %n.cond7858 +n.end7860: call void @finch_arr_free(ptr %a) ret void } @@ -73908,21 +77841,21 @@ entry: store %S.ast.Node %p2, ptr %a3 %t4 = load ptr, ptr %a1 %t5 = icmp eq ptr %t4, null - br i1 %t5, label %panic7343, label %ok7344 -panic7343: - call void @finch_panic(ptr @.str.4701, i64 4299, ptr @.str.4702) + br i1 %t5, label %panic7736, label %ok7737 +panic7736: + call void @finch_panic(ptr @.str.4908, i64 4526, ptr @.str.4909) unreachable -ok7344: +ok7737: %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 15 %t7 = load i64, ptr %a2 %t8 = load { ptr, i64, i64 }, ptr %t6 %t9 = extractvalue { ptr, i64, i64 } %t8, 1 %t10 = icmp uge i64 %t7, %t9 - br i1 %t10, label %range7345, label %inrange7346 -range7345: - call void @finch_panic_index(ptr @.str.4703, i64 4299, i64 %t7, i64 %t9) + br i1 %t10, label %range7738, label %inrange7739 +range7738: + call void @finch_panic_index(ptr @.str.4910, i64 4526, i64 %t7, i64 %t9) unreachable -inrange7346: +inrange7739: %t11 = extractvalue { ptr, i64, i64 } %t8, 0 %t12 = getelementptr inbounds %S.gen.FnSig, ptr %t11, i64 %t7 %t13 = load %S.gen.FnSig, ptr %t12 @@ -73933,14 +77866,14 @@ inrange7346: %t18 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 0 %t19 = load { ptr, i64, i64 }, ptr %t18 %t20 = call { ptr, i64, i64 } @finch.gen.modName({ ptr, i64, i64 } %t19) - store { ptr, i64, i64 } { ptr @.str.4704, i64 9, i64 0 }, ptr %a22 + store { ptr, i64, i64 } { ptr @.str.4911, i64 9, i64 0 }, ptr %a22 store { ptr, i64, i64 } %t20, ptr %a23 call void @finch_str_concat(ptr %a21, ptr %a22, ptr %a23) store { ptr, i64, i64 } %t20, ptr %a24 call void @finch_str_drop(ptr %a24) %t25 = load { ptr, i64, i64 }, ptr %a21 store { ptr, i64, i64 } %t25, ptr %a27 - store { ptr, i64, i64 } { ptr @.str.4705, i64 1, i64 0 }, ptr %a28 + store { ptr, i64, i64 } { ptr @.str.4912, i64 1, i64 0 }, ptr %a28 call void @finch_str_concat(ptr %a26, ptr %a27, ptr %a28) store { ptr, i64, i64 } %t25, ptr %a29 call void @finch_str_drop(ptr %a29) @@ -73956,15 +77889,15 @@ inrange7346: store { ptr, i64, i64 } %t37, ptr %a38 %t39 = load ptr, ptr %a1 %t40 = icmp eq ptr %t39, null - br i1 %t40, label %panic7347, label %ok7348 -panic7347: - call void @finch_panic(ptr @.str.4706, i64 4301, ptr @.str.4707) + br i1 %t40, label %panic7740, label %ok7741 +panic7740: + call void @finch_panic(ptr @.str.4913, i64 4528, ptr @.str.4914) unreachable -ok7348: - %t41 = getelementptr inbounds %S.gen.Gen, ptr %t39, i32 0, i32 39 +ok7741: + %t41 = getelementptr inbounds %S.gen.Gen, ptr %t39, i32 0, i32 40 %t42 = getelementptr inbounds { ptr, i64, i64 }, ptr %t41, i32 0, i32 1 %t43 = load { ptr, i64, i64 }, ptr %a38 - store { ptr, i64, i64 } { ptr @.str.4708, i64 2, i64 0 }, ptr %a45 + store { ptr, i64, i64 } { ptr @.str.4915, i64 2, i64 0 }, ptr %a45 store { ptr, i64, i64 } %t43, ptr %a46 call void @finch_str_concat(ptr %a44, ptr %a45, ptr %a46) %t47 = load { ptr, i64, i64 }, ptr %a44 @@ -73972,48 +77905,48 @@ ok7348: %t49 = load i64, ptr %t42 %t50 = load ptr, ptr %t41 store i64 0, ptr %a51 - br label %find.cond7349 -find.cond7349: + br label %find.cond7742 +find.cond7742: %t52 = load i64, ptr %a51 %t53 = icmp slt i64 %t52, %t49 - br i1 %t53, label %find.body7350, label %find.end7353 -find.body7350: + br i1 %t53, label %find.body7743, label %find.end7746 +find.body7743: %t54 = getelementptr inbounds { ptr, i64, i64 }, ptr %t50, i64 %t52 %t55 = load { ptr, i64, i64 }, ptr %t54 store { ptr, i64, i64 } %t55, ptr %a56 store { ptr, i64, i64 } %t47, ptr %a57 %t58 = call i32 @finch_str_eq(ptr %a56, ptr %a57) %t59 = icmp ne i32 %t58, 0 - br i1 %t59, label %find.hit7351, label %find.next7352 -find.hit7351: + br i1 %t59, label %find.hit7744, label %find.next7745 +find.hit7744: store i64 %t52, ptr %a48 - br label %find.end7353 -find.next7352: + br label %find.end7746 +find.next7745: %t60 = add i64 %t52, 1 store i64 %t60, ptr %a51 - br label %find.cond7349 -find.end7353: + br label %find.cond7742 +find.end7746: store { ptr, i64, i64 } %t47, ptr %a61 call void @finch_str_drop(ptr %a61) %t62 = load i64, ptr %a48 %t63 = icmp sge i64 %t62, 0 - br i1 %t63, label %then7354, label %endif7356 -then7354: + br i1 %t63, label %then7747, label %endif7749 +then7747: %t64 = load { ptr, i64, i64 }, ptr %a38 call void @finch.drop.S_gen_FnSig(ptr %a17) ret { ptr, i64, i64 } %t64 -endif7356: +endif7749: %t65 = load ptr, ptr %a1 %t66 = icmp eq ptr %t65, null - br i1 %t66, label %panic7357, label %ok7358 -panic7357: - call void @finch_panic(ptr @.str.4709, i64 4304, ptr @.str.4710) + br i1 %t66, label %panic7750, label %ok7751 +panic7750: + call void @finch_panic(ptr @.str.4916, i64 4531, ptr @.str.4917) unreachable -ok7358: - %t67 = getelementptr inbounds %S.gen.Gen, ptr %t65, i32 0, i32 39 +ok7751: + %t67 = getelementptr inbounds %S.gen.Gen, ptr %t65, i32 0, i32 40 %t68 = getelementptr inbounds { ptr, i64, i64 }, ptr %t67, i32 0, i32 1 %t69 = load { ptr, i64, i64 }, ptr %a38 - store { ptr, i64, i64 } { ptr @.str.4711, i64 2, i64 0 }, ptr %a71 + store { ptr, i64, i64 } { ptr @.str.4918, i64 2, i64 0 }, ptr %a71 store { ptr, i64, i64 } %t69, ptr %a72 call void @finch_str_concat(ptr %a70, ptr %a71, ptr %a72) %t73 = load { ptr, i64, i64 }, ptr %a70 @@ -74028,29 +77961,29 @@ ok7358: %t79 = getelementptr inbounds { ptr, i64, i64 }, ptr %t78, i32 0, i32 1 %t80 = load i64, ptr %t79 %t81 = icmp sgt i64 %t80, 0 - br label %logic.from7359 -logic.from7359: - br i1 %t81, label %logic.end7361, label %logic.rhs7360 -logic.rhs7360: + br label %logic.from7752 +logic.from7752: + br i1 %t81, label %logic.end7754, label %logic.rhs7753 +logic.rhs7753: %t82 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 9 %t83 = load i1, ptr %t82 - br label %logic.rend7362 -logic.rend7362: - br label %logic.end7361 -logic.end7361: - %t84 = phi i1 [ true, %logic.from7359 ], [ %t83, %logic.rend7362 ] - br i1 %t84, label %then7363, label %endif7365 -then7363: + br label %logic.rend7755 +logic.rend7755: + br label %logic.end7754 +logic.end7754: + %t84 = phi i1 [ true, %logic.from7752 ], [ %t83, %logic.rend7755 ] + br i1 %t84, label %then7756, label %endif7758 +then7756: %t85 = load ptr, ptr %a1 %t86 = load %S.ast.Node, ptr %a3 %t87 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 1 %t88 = load { ptr, i64, i64 }, ptr %t87 - store { ptr, i64, i64 } { ptr @.str.4712, i64 5, i64 0 }, ptr %a90 + store { ptr, i64, i64 } { ptr @.str.4919, i64 5, i64 0 }, ptr %a90 store { ptr, i64, i64 } %t88, ptr %a91 call void @finch_str_concat(ptr %a89, ptr %a90, ptr %a91) %t92 = load { ptr, i64, i64 }, ptr %a89 store { ptr, i64, i64 } %t92, ptr %a94 - store { ptr, i64, i64 } { ptr @.str.4713, i64 81, i64 0 }, ptr %a95 + store { ptr, i64, i64 } { ptr @.str.4920, i64 81, i64 0 }, ptr %a95 call void @finch_str_concat(ptr %a93, ptr %a94, ptr %a95) store { ptr, i64, i64 } %t92, ptr %a96 call void @finch_str_drop(ptr %a96) @@ -74058,90 +77991,90 @@ then7363: call void @finch.gen.fail(ptr %t85, %S.ast.Node %t86, { ptr, i64, i64 } %t97) store { ptr, i64, i64 } %t97, ptr %a98 call void @finch_str_drop(ptr %a98) - br label %endif7365 -endif7365: + br label %endif7758 +endif7758: %t99 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 13 store i64 0, ptr %a100 - br label %each.cond7366 -each.cond7366: + br label %each.cond7759 +each.cond7759: %t101 = getelementptr inbounds { ptr, i64, i64 }, ptr %t99, i32 0, i32 1 %t102 = load i64, ptr %t101 %t103 = load i64, ptr %a100 %t104 = icmp slt i64 %t103, %t102 - br i1 %t104, label %each.body7367, label %each.end7369 -each.body7367: + br i1 %t104, label %each.body7760, label %each.end7762 +each.body7760: %t105 = load ptr, ptr %t99 %t106 = getelementptr inbounds %S.ast.Type, ptr %t105, i64 %t103 %t107 = load %S.ast.Type, ptr %t106 store %S.ast.Type %t107, ptr %a108 %t109 = load %S.ast.Type, ptr %a108 %t110 = call i1 @finch.gen.isNumber(%S.ast.Type %t109) - br label %logic.from7370 -logic.from7370: - br i1 %t110, label %logic.end7372, label %logic.rhs7371 -logic.rhs7371: + br label %logic.from7763 +logic.from7763: + br i1 %t110, label %logic.end7765, label %logic.rhs7764 +logic.rhs7764: %t111 = getelementptr inbounds %S.ast.Type, ptr %a108, i32 0, i32 0 %t112 = load { ptr, i64, i64 }, ptr %t111 store { ptr, i64, i64 } %t112, ptr %a113 - store { ptr, i64, i64 } { ptr @.str.4714, i64 4, i64 0 }, ptr %a114 + store { ptr, i64, i64 } { ptr @.str.4921, i64 4, i64 0 }, ptr %a114 %t115 = call i32 @finch_str_eq(ptr %a113, ptr %a114) %t116 = icmp ne i32 %t115, 0 - br label %logic.rend7373 -logic.rend7373: - br label %logic.end7372 -logic.end7372: - %t117 = phi i1 [ true, %logic.from7370 ], [ %t116, %logic.rend7373 ] - br label %logic.from7374 -logic.from7374: - br i1 %t117, label %logic.end7376, label %logic.rhs7375 -logic.rhs7375: + br label %logic.rend7766 +logic.rend7766: + br label %logic.end7765 +logic.end7765: + %t117 = phi i1 [ true, %logic.from7763 ], [ %t116, %logic.rend7766 ] + br label %logic.from7767 +logic.from7767: + br i1 %t117, label %logic.end7769, label %logic.rhs7768 +logic.rhs7768: %t118 = getelementptr inbounds %S.ast.Type, ptr %a108, i32 0, i32 0 %t119 = load { ptr, i64, i64 }, ptr %t118 store { ptr, i64, i64 } %t119, ptr %a120 - store { ptr, i64, i64 } { ptr @.str.4715, i64 4, i64 0 }, ptr %a121 + store { ptr, i64, i64 } { ptr @.str.4922, i64 4, i64 0 }, ptr %a121 %t122 = call i32 @finch_str_eq(ptr %a120, ptr %a121) %t123 = icmp ne i32 %t122, 0 - br label %logic.rend7377 -logic.rend7377: - br label %logic.end7376 -logic.end7376: - %t124 = phi i1 [ true, %logic.from7374 ], [ %t123, %logic.rend7377 ] - br label %logic.from7378 -logic.from7378: - br i1 %t124, label %logic.end7380, label %logic.rhs7379 -logic.rhs7379: + br label %logic.rend7770 +logic.rend7770: + br label %logic.end7769 +logic.end7769: + %t124 = phi i1 [ true, %logic.from7767 ], [ %t123, %logic.rend7770 ] + br label %logic.from7771 +logic.from7771: + br i1 %t124, label %logic.end7773, label %logic.rhs7772 +logic.rhs7772: %t125 = getelementptr inbounds %S.ast.Type, ptr %a108, i32 0, i32 0 %t126 = load { ptr, i64, i64 }, ptr %t125 store { ptr, i64, i64 } %t126, ptr %a127 - store { ptr, i64, i64 } { ptr @.str.4716, i64 3, i64 0 }, ptr %a128 + store { ptr, i64, i64 } { ptr @.str.4923, i64 3, i64 0 }, ptr %a128 %t129 = call i32 @finch_str_eq(ptr %a127, ptr %a128) %t130 = icmp ne i32 %t129, 0 - br label %logic.rend7381 -logic.rend7381: - br label %logic.end7380 -logic.end7380: - %t131 = phi i1 [ true, %logic.from7378 ], [ %t130, %logic.rend7381 ] - br label %logic.from7382 -logic.from7382: - br i1 %t131, label %logic.end7384, label %logic.rhs7383 -logic.rhs7383: + br label %logic.rend7774 +logic.rend7774: + br label %logic.end7773 +logic.end7773: + %t131 = phi i1 [ true, %logic.from7771 ], [ %t130, %logic.rend7774 ] + br label %logic.from7775 +logic.from7775: + br i1 %t131, label %logic.end7777, label %logic.rhs7776 +logic.rhs7776: %t132 = getelementptr inbounds %S.ast.Type, ptr %a108, i32 0, i32 0 %t133 = load { ptr, i64, i64 }, ptr %t132 store { ptr, i64, i64 } %t133, ptr %a134 - store { ptr, i64, i64 } { ptr @.str.4717, i64 6, i64 0 }, ptr %a135 + store { ptr, i64, i64 } { ptr @.str.4924, i64 6, i64 0 }, ptr %a135 %t136 = call i32 @finch_str_eq(ptr %a134, ptr %a135) %t137 = icmp ne i32 %t136, 0 - br label %logic.from7385 -logic.from7385: - br i1 %t137, label %logic.rhs7386, label %logic.end7387 -logic.rhs7386: + br label %logic.from7778 +logic.from7778: + br i1 %t137, label %logic.rhs7779, label %logic.end7780 +logic.rhs7779: %t138 = load ptr, ptr %a1 %t139 = icmp eq ptr %t138, null - br i1 %t139, label %panic7388, label %ok7389 -panic7388: - call void @finch_panic(ptr @.str.4718, i64 4309, ptr @.str.4719) + br i1 %t139, label %panic7781, label %ok7782 +panic7781: + call void @finch_panic(ptr @.str.4925, i64 4536, ptr @.str.4926) unreachable -ok7389: +ok7782: %t140 = getelementptr inbounds %S.gen.Gen, ptr %t138, i32 0, i32 16 %t141 = load ptr, ptr %a1 %t142 = getelementptr inbounds %S.ast.Type, ptr %a108, i32 0, i32 3 @@ -74152,38 +78085,38 @@ ok7389: %t147 = load { ptr, i64, i64 }, ptr %t140 %t148 = extractvalue { ptr, i64, i64 } %t147, 1 %t149 = icmp uge i64 %t146, %t148 - br i1 %t149, label %range7390, label %inrange7391 -range7390: - call void @finch_panic_index(ptr @.str.4720, i64 4309, i64 %t146, i64 %t148) + br i1 %t149, label %range7783, label %inrange7784 +range7783: + call void @finch_panic_index(ptr @.str.4927, i64 4536, i64 %t146, i64 %t148) unreachable -inrange7391: +inrange7784: %t150 = extractvalue { ptr, i64, i64 } %t147, 0 %t151 = getelementptr inbounds %S.gen.StructDef, ptr %t150, i64 %t146 %t152 = getelementptr inbounds %S.gen.StructDef, ptr %t151, i32 0, i32 2 %t153 = load i1, ptr %t152 - br label %logic.rend7392 -logic.rend7392: - br label %logic.end7387 -logic.end7387: - %t154 = phi i1 [ false, %logic.from7385 ], [ %t153, %logic.rend7392 ] - br label %logic.rend7393 -logic.rend7393: - br label %logic.end7384 -logic.end7384: - %t155 = phi i1 [ true, %logic.from7382 ], [ %t154, %logic.rend7393 ] + br label %logic.rend7785 +logic.rend7785: + br label %logic.end7780 +logic.end7780: + %t154 = phi i1 [ false, %logic.from7778 ], [ %t153, %logic.rend7785 ] + br label %logic.rend7786 +logic.rend7786: + br label %logic.end7777 +logic.end7777: + %t155 = phi i1 [ true, %logic.from7775 ], [ %t154, %logic.rend7786 ] %t156 = xor i1 %t155, true - br i1 %t156, label %then7394, label %endif7396 -then7394: + br i1 %t156, label %then7787, label %endif7789 +then7787: %t157 = load ptr, ptr %a1 %t158 = load %S.ast.Node, ptr %a3 %t159 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 1 %t160 = load { ptr, i64, i64 }, ptr %t159 - store { ptr, i64, i64 } { ptr @.str.4721, i64 5, i64 0 }, ptr %a162 + store { ptr, i64, i64 } { ptr @.str.4928, i64 5, i64 0 }, ptr %a162 store { ptr, i64, i64 } %t160, ptr %a163 call void @finch_str_concat(ptr %a161, ptr %a162, ptr %a163) %t164 = load { ptr, i64, i64 }, ptr %a161 store { ptr, i64, i64 } %t164, ptr %a166 - store { ptr, i64, i64 } { ptr @.str.4722, i64 95, i64 0 }, ptr %a167 + store { ptr, i64, i64 } { ptr @.str.4929, i64 95, i64 0 }, ptr %a167 call void @finch_str_concat(ptr %a165, ptr %a166, ptr %a167) store { ptr, i64, i64 } %t164, ptr %a168 call void @finch_str_drop(ptr %a168) @@ -74201,104 +78134,104 @@ then7394: call void @finch.gen.fail(ptr %t157, %S.ast.Node %t158, { ptr, i64, i64 } %t177) store { ptr, i64, i64 } %t177, ptr %a178 call void @finch_str_drop(ptr %a178) - br label %endif7396 -endif7396: - br label %each.step7368 -each.step7368: + br label %endif7789 +endif7789: + br label %each.step7761 +each.step7761: %t179 = load i64, ptr %a100 %t180 = add i64 %t179, 1 store i64 %t180, ptr %a100 - br label %each.cond7366 -each.end7369: + br label %each.cond7759 +each.end7762: %t181 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 12 %t182 = load %S.ast.Type, ptr %t181 %t183 = call i1 @finch.gen.isNumber(%S.ast.Type %t182) - br label %logic.from7397 -logic.from7397: - br i1 %t183, label %logic.end7399, label %logic.rhs7398 -logic.rhs7398: + br label %logic.from7790 +logic.from7790: + br i1 %t183, label %logic.end7792, label %logic.rhs7791 +logic.rhs7791: %t184 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 12 %t185 = getelementptr inbounds %S.ast.Type, ptr %t184, i32 0, i32 0 %t186 = load { ptr, i64, i64 }, ptr %t185 store { ptr, i64, i64 } %t186, ptr %a187 - store { ptr, i64, i64 } { ptr @.str.4723, i64 4, i64 0 }, ptr %a188 + store { ptr, i64, i64 } { ptr @.str.4930, i64 4, i64 0 }, ptr %a188 %t189 = call i32 @finch_str_eq(ptr %a187, ptr %a188) %t190 = icmp ne i32 %t189, 0 - br label %logic.rend7400 -logic.rend7400: - br label %logic.end7399 -logic.end7399: - %t191 = phi i1 [ true, %logic.from7397 ], [ %t190, %logic.rend7400 ] - br label %logic.from7401 -logic.from7401: - br i1 %t191, label %logic.end7403, label %logic.rhs7402 -logic.rhs7402: + br label %logic.rend7793 +logic.rend7793: + br label %logic.end7792 +logic.end7792: + %t191 = phi i1 [ true, %logic.from7790 ], [ %t190, %logic.rend7793 ] + br label %logic.from7794 +logic.from7794: + br i1 %t191, label %logic.end7796, label %logic.rhs7795 +logic.rhs7795: %t192 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 12 %t193 = getelementptr inbounds %S.ast.Type, ptr %t192, i32 0, i32 0 %t194 = load { ptr, i64, i64 }, ptr %t193 store { ptr, i64, i64 } %t194, ptr %a195 - store { ptr, i64, i64 } { ptr @.str.4724, i64 4, i64 0 }, ptr %a196 + store { ptr, i64, i64 } { ptr @.str.4931, i64 4, i64 0 }, ptr %a196 %t197 = call i32 @finch_str_eq(ptr %a195, ptr %a196) %t198 = icmp ne i32 %t197, 0 - br label %logic.rend7404 -logic.rend7404: - br label %logic.end7403 -logic.end7403: - %t199 = phi i1 [ true, %logic.from7401 ], [ %t198, %logic.rend7404 ] - br label %logic.from7405 -logic.from7405: - br i1 %t199, label %logic.end7407, label %logic.rhs7406 -logic.rhs7406: + br label %logic.rend7797 +logic.rend7797: + br label %logic.end7796 +logic.end7796: + %t199 = phi i1 [ true, %logic.from7794 ], [ %t198, %logic.rend7797 ] + br label %logic.from7798 +logic.from7798: + br i1 %t199, label %logic.end7800, label %logic.rhs7799 +logic.rhs7799: %t200 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 12 %t201 = getelementptr inbounds %S.ast.Type, ptr %t200, i32 0, i32 0 %t202 = load { ptr, i64, i64 }, ptr %t201 store { ptr, i64, i64 } %t202, ptr %a203 - store { ptr, i64, i64 } { ptr @.str.4725, i64 3, i64 0 }, ptr %a204 + store { ptr, i64, i64 } { ptr @.str.4932, i64 3, i64 0 }, ptr %a204 %t205 = call i32 @finch_str_eq(ptr %a203, ptr %a204) %t206 = icmp ne i32 %t205, 0 - br label %logic.rend7408 -logic.rend7408: - br label %logic.end7407 -logic.end7407: - %t207 = phi i1 [ true, %logic.from7405 ], [ %t206, %logic.rend7408 ] - br label %logic.from7409 -logic.from7409: - br i1 %t207, label %logic.end7411, label %logic.rhs7410 -logic.rhs7410: + br label %logic.rend7801 +logic.rend7801: + br label %logic.end7800 +logic.end7800: + %t207 = phi i1 [ true, %logic.from7798 ], [ %t206, %logic.rend7801 ] + br label %logic.from7802 +logic.from7802: + br i1 %t207, label %logic.end7804, label %logic.rhs7803 +logic.rhs7803: %t208 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 12 %t209 = getelementptr inbounds %S.ast.Type, ptr %t208, i32 0, i32 0 %t210 = load { ptr, i64, i64 }, ptr %t209 store { ptr, i64, i64 } %t210, ptr %a211 - store { ptr, i64, i64 } { ptr @.str.4726, i64 4, i64 0 }, ptr %a212 + store { ptr, i64, i64 } { ptr @.str.4933, i64 4, i64 0 }, ptr %a212 %t213 = call i32 @finch_str_eq(ptr %a211, ptr %a212) %t214 = icmp ne i32 %t213, 0 - br label %logic.rend7412 -logic.rend7412: - br label %logic.end7411 -logic.end7411: - %t215 = phi i1 [ true, %logic.from7409 ], [ %t214, %logic.rend7412 ] - br label %logic.from7413 -logic.from7413: - br i1 %t215, label %logic.end7415, label %logic.rhs7414 -logic.rhs7414: + br label %logic.rend7805 +logic.rend7805: + br label %logic.end7804 +logic.end7804: + %t215 = phi i1 [ true, %logic.from7802 ], [ %t214, %logic.rend7805 ] + br label %logic.from7806 +logic.from7806: + br i1 %t215, label %logic.end7808, label %logic.rhs7807 +logic.rhs7807: %t216 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 12 %t217 = getelementptr inbounds %S.ast.Type, ptr %t216, i32 0, i32 0 %t218 = load { ptr, i64, i64 }, ptr %t217 store { ptr, i64, i64 } %t218, ptr %a219 - store { ptr, i64, i64 } { ptr @.str.4727, i64 6, i64 0 }, ptr %a220 + store { ptr, i64, i64 } { ptr @.str.4934, i64 6, i64 0 }, ptr %a220 %t221 = call i32 @finch_str_eq(ptr %a219, ptr %a220) %t222 = icmp ne i32 %t221, 0 - br label %logic.from7416 -logic.from7416: - br i1 %t222, label %logic.rhs7417, label %logic.end7418 -logic.rhs7417: + br label %logic.from7809 +logic.from7809: + br i1 %t222, label %logic.rhs7810, label %logic.end7811 +logic.rhs7810: %t223 = load ptr, ptr %a1 %t224 = icmp eq ptr %t223, null - br i1 %t224, label %panic7419, label %ok7420 -panic7419: - call void @finch_panic(ptr @.str.4728, i64 4313, ptr @.str.4729) + br i1 %t224, label %panic7812, label %ok7813 +panic7812: + call void @finch_panic(ptr @.str.4935, i64 4540, ptr @.str.4936) unreachable -ok7420: +ok7813: %t225 = getelementptr inbounds %S.gen.Gen, ptr %t223, i32 0, i32 16 %t226 = load ptr, ptr %a1 %t227 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 12 @@ -74311,38 +78244,38 @@ ok7420: %t234 = load { ptr, i64, i64 }, ptr %t225 %t235 = extractvalue { ptr, i64, i64 } %t234, 1 %t236 = icmp uge i64 %t233, %t235 - br i1 %t236, label %range7421, label %inrange7422 -range7421: - call void @finch_panic_index(ptr @.str.4730, i64 4313, i64 %t233, i64 %t235) + br i1 %t236, label %range7814, label %inrange7815 +range7814: + call void @finch_panic_index(ptr @.str.4937, i64 4540, i64 %t233, i64 %t235) unreachable -inrange7422: +inrange7815: %t237 = extractvalue { ptr, i64, i64 } %t234, 0 %t238 = getelementptr inbounds %S.gen.StructDef, ptr %t237, i64 %t233 %t239 = getelementptr inbounds %S.gen.StructDef, ptr %t238, i32 0, i32 2 %t240 = load i1, ptr %t239 - br label %logic.rend7423 -logic.rend7423: - br label %logic.end7418 -logic.end7418: - %t241 = phi i1 [ false, %logic.from7416 ], [ %t240, %logic.rend7423 ] - br label %logic.rend7424 -logic.rend7424: - br label %logic.end7415 -logic.end7415: - %t242 = phi i1 [ true, %logic.from7413 ], [ %t241, %logic.rend7424 ] + br label %logic.rend7816 +logic.rend7816: + br label %logic.end7811 +logic.end7811: + %t241 = phi i1 [ false, %logic.from7809 ], [ %t240, %logic.rend7816 ] + br label %logic.rend7817 +logic.rend7817: + br label %logic.end7808 +logic.end7808: + %t242 = phi i1 [ true, %logic.from7806 ], [ %t241, %logic.rend7817 ] %t243 = xor i1 %t242, true - br i1 %t243, label %then7425, label %endif7427 -then7425: + br i1 %t243, label %then7818, label %endif7820 +then7818: %t244 = load ptr, ptr %a1 %t245 = load %S.ast.Node, ptr %a3 %t246 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 1 %t247 = load { ptr, i64, i64 }, ptr %t246 - store { ptr, i64, i64 } { ptr @.str.4731, i64 5, i64 0 }, ptr %a249 + store { ptr, i64, i64 } { ptr @.str.4938, i64 5, i64 0 }, ptr %a249 store { ptr, i64, i64 } %t247, ptr %a250 call void @finch_str_concat(ptr %a248, ptr %a249, ptr %a250) %t251 = load { ptr, i64, i64 }, ptr %a248 store { ptr, i64, i64 } %t251, ptr %a253 - store { ptr, i64, i64 } { ptr @.str.4732, i64 38, i64 0 }, ptr %a254 + store { ptr, i64, i64 } { ptr @.str.4939, i64 38, i64 0 }, ptr %a254 call void @finch_str_concat(ptr %a252, ptr %a253, ptr %a254) store { ptr, i64, i64 } %t251, ptr %a255 call void @finch_str_drop(ptr %a255) @@ -74361,8 +78294,8 @@ then7425: call void @finch.gen.fail(ptr %t244, %S.ast.Node %t245, { ptr, i64, i64 } %t265) store { ptr, i64, i64 } %t265, ptr %a266 call void @finch_str_drop(ptr %a266) - br label %endif7427 -endif7427: + br label %endif7820 +endif7820: %t267 = load ptr, ptr %a1 %t268 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 12 %t269 = load %S.ast.Type, ptr %t268 @@ -74375,24 +78308,24 @@ endif7427: store %S.gen.Saved %t275, ptr %a276 store { ptr, i64, i64 } zeroinitializer, ptr %a277 store i64 0, ptr %a278 - store { ptr, i64, i64 } { ptr @.str.4733, i64 0, i64 0 }, ptr %a279 + store { ptr, i64, i64 } { ptr @.str.4940, i64 0, i64 0 }, ptr %a279 %t280 = getelementptr inbounds %S.gen.Plan, ptr %a273, i32 0, i32 3 %t281 = load i1, ptr %t280 - br i1 %t281, label %then7428, label %endif7430 -then7428: + br i1 %t281, label %then7821, label %endif7823 +then7821: %t282 = getelementptr inbounds { ptr, i64, i64 }, ptr %a277, i32 0, i32 1 %t283 = load ptr, ptr %a1 %t284 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 12 %t285 = load %S.ast.Type, ptr %t284 %t286 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t283, %S.ast.Type %t285) - store { ptr, i64, i64 } { ptr @.str.4734, i64 9, i64 0 }, ptr %a288 + store { ptr, i64, i64 } { ptr @.str.4941, i64 9, i64 0 }, ptr %a288 store { ptr, i64, i64 } %t286, ptr %a289 call void @finch_str_concat(ptr %a287, ptr %a288, ptr %a289) store { ptr, i64, i64 } %t286, ptr %a290 call void @finch_str_drop(ptr %a290) %t291 = load { ptr, i64, i64 }, ptr %a287 store { ptr, i64, i64 } %t291, ptr %a293 - store { ptr, i64, i64 } { ptr @.str.4735, i64 14, i64 0 }, ptr %a294 + store { ptr, i64, i64 } { ptr @.str.4942, i64 14, i64 0 }, ptr %a294 call void @finch_str_concat(ptr %a292, ptr %a293, ptr %a294) store { ptr, i64, i64 } %t291, ptr %a295 call void @finch_str_drop(ptr %a295) @@ -74405,33 +78338,33 @@ then7428: store { ptr, i64, i64 } %t296, ptr %t300 store i64 %t298, ptr %t282 %t301 = load { ptr, i64, i64 }, ptr %a279 - store { ptr, i64, i64 } { ptr @.str.4736, i64 3, i64 0 }, ptr %a279 + store { ptr, i64, i64 } { ptr @.str.4943, i64 3, i64 0 }, ptr %a279 store { ptr, i64, i64 } %t301, ptr %a302 call void @finch_str_drop(ptr %a302) store i64 1, ptr %a278 - br label %endif7430 -endif7430: + br label %endif7823 +endif7823: store { ptr, i64, i64 } zeroinitializer, ptr %a303 %t304 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 13 %t305 = getelementptr inbounds { ptr, i64, i64 }, ptr %t304, i32 0, i32 1 %t306 = load i64, ptr %t305 store i64 0, ptr %a307 - br label %for.cond7431 -for.cond7431: + br label %for.cond7824 +for.cond7824: %t308 = load i64, ptr %a307 %t309 = icmp slt i64 %t308, %t306 - br i1 %t309, label %for.body7432, label %for.end7434 -for.body7432: + br i1 %t309, label %for.body7825, label %for.end7827 +for.body7825: %t310 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 13 %t311 = load i64, ptr %a307 %t312 = load { ptr, i64, i64 }, ptr %t310 %t313 = extractvalue { ptr, i64, i64 } %t312, 1 %t314 = icmp uge i64 %t311, %t313 - br i1 %t314, label %range7435, label %inrange7436 -range7435: - call void @finch_panic_index(ptr @.str.4737, i64 4328, i64 %t311, i64 %t313) + br i1 %t314, label %range7828, label %inrange7829 +range7828: + call void @finch_panic_index(ptr @.str.4944, i64 4555, i64 %t311, i64 %t313) unreachable -inrange7436: +inrange7829: %t315 = extractvalue { ptr, i64, i64 } %t312, 0 %t316 = getelementptr inbounds %S.ast.Type, ptr %t315, i64 %t311 %t317 = load %S.ast.Type, ptr %t316 @@ -74444,11 +78377,11 @@ inrange7436: %t324 = load { ptr, i64, i64 }, ptr %t322 %t325 = extractvalue { ptr, i64, i64 } %t324, 1 %t326 = icmp uge i64 %t323, %t325 - br i1 %t326, label %range7437, label %inrange7438 -range7437: - call void @finch_panic_index(ptr @.str.4738, i64 4329, i64 %t323, i64 %t325) + br i1 %t326, label %range7830, label %inrange7831 +range7830: + call void @finch_panic_index(ptr @.str.4945, i64 4556, i64 %t323, i64 %t325) unreachable -inrange7438: +inrange7831: %t327 = extractvalue { ptr, i64, i64 } %t324, 0 %t328 = getelementptr inbounds %S.gen.Abi, ptr %t327, i64 %t323 %t329 = load %S.gen.Abi, ptr %t328 @@ -74459,23 +78392,23 @@ inrange7438: %t334 = getelementptr inbounds %S.gen.Abi, ptr %a333, i32 0, i32 0 %t335 = load { ptr, i64, i64 }, ptr %t334 store { ptr, i64, i64 } %t335, ptr %a336 - store { ptr, i64, i64 } { ptr @.str.4739, i64 6, i64 0 }, ptr %a337 + store { ptr, i64, i64 } { ptr @.str.4946, i64 6, i64 0 }, ptr %a337 %t338 = call i32 @finch_str_eq(ptr %a336, ptr %a337) %t339 = icmp ne i32 %t338, 0 - br i1 %t339, label %then7439, label %else7440 -then7439: + br i1 %t339, label %then7832, label %else7833 +then7832: %t340 = getelementptr inbounds { ptr, i64, i64 }, ptr %a277, i32 0, i32 1 %t341 = load ptr, ptr %a1 %t342 = load %S.ast.Type, ptr %a321 %t343 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t341, %S.ast.Type %t342) - store { ptr, i64, i64 } { ptr @.str.4740, i64 10, i64 0 }, ptr %a345 + store { ptr, i64, i64 } { ptr @.str.4947, i64 10, i64 0 }, ptr %a345 store { ptr, i64, i64 } %t343, ptr %a346 call void @finch_str_concat(ptr %a344, ptr %a345, ptr %a346) store { ptr, i64, i64 } %t343, ptr %a347 call void @finch_str_drop(ptr %a347) %t348 = load { ptr, i64, i64 }, ptr %a344 store { ptr, i64, i64 } %t348, ptr %a350 - store { ptr, i64, i64 } { ptr @.str.4741, i64 8, i64 0 }, ptr %a351 + store { ptr, i64, i64 } { ptr @.str.4948, i64 8, i64 0 }, ptr %a351 call void @finch_str_concat(ptr %a349, ptr %a350, ptr %a351) store { ptr, i64, i64 } %t348, ptr %a352 call void @finch_str_drop(ptr %a352) @@ -74493,7 +78426,7 @@ then7439: call void @finch_str_drop(ptr %a362) %t363 = load { ptr, i64, i64 }, ptr %a358 store { ptr, i64, i64 } %t363, ptr %a365 - store { ptr, i64, i64 } { ptr @.str.4742, i64 3, i64 0 }, ptr %a366 + store { ptr, i64, i64 } { ptr @.str.4949, i64 3, i64 0 }, ptr %a366 call void @finch_str_concat(ptr %a364, ptr %a365, ptr %a366) store { ptr, i64, i64 } %t363, ptr %a367 call void @finch_str_drop(ptr %a367) @@ -74521,7 +78454,7 @@ then7439: %t384 = load %S.ast.Type, ptr %a321 %t385 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t383, %S.ast.Type %t384) store { ptr, i64, i64 } %t385, ptr %a387 - store { ptr, i64, i64 } { ptr @.str.4743, i64 1, i64 0 }, ptr %a388 + store { ptr, i64, i64 } { ptr @.str.4950, i64 1, i64 0 }, ptr %a388 call void @finch_str_concat(ptr %a386, ptr %a387, ptr %a388) store { ptr, i64, i64 } %t385, ptr %a389 call void @finch_str_drop(ptr %a389) @@ -74533,7 +78466,7 @@ then7439: %t395 = load i64, ptr %a278 call void @finch_str_from_int(ptr %a396, i64 %t395) %t397 = load { ptr, i64, i64 }, ptr %a396 - store { ptr, i64, i64 } { ptr @.str.4744, i64 2, i64 0 }, ptr %a399 + store { ptr, i64, i64 } { ptr @.str.4951, i64 2, i64 0 }, ptr %a399 store { ptr, i64, i64 } %t397, ptr %a400 call void @finch_str_concat(ptr %a398, ptr %a399, ptr %a400) store { ptr, i64, i64 } %t397, ptr %a401 @@ -74562,21 +78495,21 @@ then7439: %t416 = load i64, ptr %a278 %t417 = add i64 %t416, 1 store i64 %t417, ptr %a278 - br label %endif7441 -else7440: + br label %endif7834 +else7833: %t418 = getelementptr inbounds %S.gen.Abi, ptr %a333, i32 0, i32 0 %t419 = load { ptr, i64, i64 }, ptr %t418 store { ptr, i64, i64 } %t419, ptr %a420 - store { ptr, i64, i64 } { ptr @.str.4745, i64 8, i64 0 }, ptr %a421 + store { ptr, i64, i64 } { ptr @.str.4952, i64 8, i64 0 }, ptr %a421 %t422 = call i32 @finch_str_eq(ptr %a420, ptr %a421) %t423 = icmp ne i32 %t422, 0 - br i1 %t423, label %then7442, label %else7443 -then7442: + br i1 %t423, label %then7835, label %else7836 +then7835: %t424 = getelementptr inbounds { ptr, i64, i64 }, ptr %a277, i32 0, i32 1 %t425 = load i64, ptr %a278 call void @finch_str_from_int(ptr %a426, i64 %t425) %t427 = load { ptr, i64, i64 }, ptr %a426 - store { ptr, i64, i64 } { ptr @.str.4746, i64 6, i64 0 }, ptr %a429 + store { ptr, i64, i64 } { ptr @.str.4953, i64 6, i64 0 }, ptr %a429 store { ptr, i64, i64 } %t427, ptr %a430 call void @finch_str_concat(ptr %a428, ptr %a429, ptr %a430) store { ptr, i64, i64 } %t427, ptr %a431 @@ -74594,7 +78527,7 @@ then7442: %t439 = load %S.ast.Type, ptr %a321 %t440 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t438, %S.ast.Type %t439) store { ptr, i64, i64 } %t440, ptr %a442 - store { ptr, i64, i64 } { ptr @.str.4747, i64 1, i64 0 }, ptr %a443 + store { ptr, i64, i64 } { ptr @.str.4954, i64 1, i64 0 }, ptr %a443 call void @finch_str_concat(ptr %a441, ptr %a442, ptr %a443) store { ptr, i64, i64 } %t440, ptr %a444 call void @finch_str_drop(ptr %a444) @@ -74606,7 +78539,7 @@ then7442: %t450 = load i64, ptr %a278 call void @finch_str_from_int(ptr %a451, i64 %t450) %t452 = load { ptr, i64, i64 }, ptr %a451 - store { ptr, i64, i64 } { ptr @.str.4748, i64 2, i64 0 }, ptr %a454 + store { ptr, i64, i64 } { ptr @.str.4955, i64 2, i64 0 }, ptr %a454 store { ptr, i64, i64 } %t452, ptr %a455 call void @finch_str_concat(ptr %a453, ptr %a454, ptr %a455) store { ptr, i64, i64 } %t452, ptr %a456 @@ -74635,45 +78568,45 @@ then7442: %t471 = load i64, ptr %a278 %t472 = add i64 %t471, 1 store i64 %t472, ptr %a278 - br label %endif7444 -else7443: + br label %endif7837 +else7836: %t473 = getelementptr inbounds %S.gen.Abi, ptr %a333, i32 0, i32 0 %t474 = load { ptr, i64, i64 }, ptr %t473 store { ptr, i64, i64 } %t474, ptr %a475 - store { ptr, i64, i64 } { ptr @.str.4749, i64 6, i64 0 }, ptr %a476 + store { ptr, i64, i64 } { ptr @.str.4956, i64 6, i64 0 }, ptr %a476 %t477 = call i32 @finch_str_eq(ptr %a475, ptr %a476) %t478 = icmp ne i32 %t477, 0 - br i1 %t478, label %then7445, label %else7446 -then7445: + br i1 %t478, label %then7838, label %else7839 +then7838: %t479 = load ptr, ptr %a1 - %t480 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t479, { ptr, i64, i64 } { ptr @.str.4750, i64 9, i64 0 }) + %t480 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t479, { ptr, i64, i64 } { ptr @.str.4957, i64 9, i64 0 }) store { ptr, i64, i64 } %t480, ptr %a481 %t482 = getelementptr inbounds %S.gen.Abi, ptr %a333, i32 0, i32 1 %t483 = getelementptr inbounds { ptr, i64, i64 }, ptr %t482, i32 0, i32 1 %t484 = load i64, ptr %t483 store i64 0, ptr %a485 - br label %for.cond7448 -for.cond7448: + br label %for.cond7841 +for.cond7841: %t486 = load i64, ptr %a485 %t487 = icmp slt i64 %t486, %t484 - br i1 %t487, label %for.body7449, label %for.end7451 -for.body7449: + br i1 %t487, label %for.body7842, label %for.end7844 +for.body7842: %t488 = getelementptr inbounds { ptr, i64, i64 }, ptr %a277, i32 0, i32 1 %t489 = getelementptr inbounds %S.gen.Abi, ptr %a333, i32 0, i32 1 %t490 = load i64, ptr %a485 %t491 = load { ptr, i64, i64 }, ptr %t489 %t492 = extractvalue { ptr, i64, i64 } %t491, 1 %t493 = icmp uge i64 %t490, %t492 - br i1 %t493, label %range7452, label %inrange7453 -range7452: - call void @finch_panic_index(ptr @.str.4751, i64 4341, i64 %t490, i64 %t492) + br i1 %t493, label %range7845, label %inrange7846 +range7845: + call void @finch_panic_index(ptr @.str.4958, i64 4568, i64 %t490, i64 %t492) unreachable -inrange7453: +inrange7846: %t494 = extractvalue { ptr, i64, i64 } %t491, 0 %t495 = getelementptr inbounds { ptr, i64, i64 }, ptr %t494, i64 %t490 %t496 = load { ptr, i64, i64 }, ptr %t495 store { ptr, i64, i64 } %t496, ptr %a498 - store { ptr, i64, i64 } { ptr @.str.4752, i64 3, i64 0 }, ptr %a499 + store { ptr, i64, i64 } { ptr @.str.4959, i64 3, i64 0 }, ptr %a499 call void @finch_str_concat(ptr %a497, ptr %a498, ptr %a499) %t500 = load { ptr, i64, i64 }, ptr %a497 %t501 = load i64, ptr %a278 @@ -74700,18 +78633,18 @@ inrange7453: %t517 = load { ptr, i64, i64 }, ptr %t515 %t518 = extractvalue { ptr, i64, i64 } %t517, 1 %t519 = icmp uge i64 %t516, %t518 - br i1 %t519, label %range7454, label %inrange7455 -range7454: - call void @finch_panic_index(ptr @.str.4753, i64 4342, i64 %t516, i64 %t518) + br i1 %t519, label %range7847, label %inrange7848 +range7847: + call void @finch_panic_index(ptr @.str.4960, i64 4569, i64 %t516, i64 %t518) unreachable -inrange7455: +inrange7848: %t520 = extractvalue { ptr, i64, i64 } %t517, 0 %t521 = getelementptr inbounds { ptr, i64, i64 }, ptr %t520, i64 %t516 %t522 = load { ptr, i64, i64 }, ptr %t521 %t523 = load i64, ptr %a278 call void @finch_str_from_int(ptr %a524, i64 %t523) %t525 = load { ptr, i64, i64 }, ptr %a524 - store { ptr, i64, i64 } { ptr @.str.4754, i64 2, i64 0 }, ptr %a527 + store { ptr, i64, i64 } { ptr @.str.4961, i64 2, i64 0 }, ptr %a527 store { ptr, i64, i64 } %t525, ptr %a528 call void @finch_str_concat(ptr %a526, ptr %a527, ptr %a528) store { ptr, i64, i64 } %t525, ptr %a529 @@ -74719,12 +78652,12 @@ inrange7455: %t530 = load { ptr, i64, i64 }, ptr %a526 %t531 = load ptr, ptr %a1 %t532 = load { ptr, i64, i64 }, ptr %a481 - store { ptr, i64, i64 } { ptr @.str.4755, i64 31, i64 0 }, ptr %a534 + store { ptr, i64, i64 } { ptr @.str.4962, i64 31, i64 0 }, ptr %a534 store { ptr, i64, i64 } %t532, ptr %a535 call void @finch_str_concat(ptr %a533, ptr %a534, ptr %a535) %t536 = load { ptr, i64, i64 }, ptr %a533 store { ptr, i64, i64 } %t536, ptr %a538 - store { ptr, i64, i64 } { ptr @.str.4756, i64 6, i64 0 }, ptr %a539 + store { ptr, i64, i64 } { ptr @.str.4963, i64 6, i64 0 }, ptr %a539 call void @finch_str_concat(ptr %a537, ptr %a538, ptr %a539) store { ptr, i64, i64 } %t536, ptr %a540 call void @finch_str_drop(ptr %a540) @@ -74752,19 +78685,19 @@ inrange7455: %t556 = load i64, ptr %a278 %t557 = add i64 %t556, 1 store i64 %t557, ptr %a278 - br label %for.step7450 -for.step7450: + br label %for.step7843 +for.step7843: %t558 = load i64, ptr %a485 %t559 = add i64 %t558, 1 store i64 %t559, ptr %a485 - br label %for.cond7448 -for.end7451: + br label %for.cond7841 +for.end7844: %t560 = getelementptr inbounds { ptr, i64, i64 }, ptr %a303, i32 0, i32 1 %t561 = load ptr, ptr %a1 %t562 = load %S.ast.Type, ptr %a321 %t563 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t561, %S.ast.Type %t562) store { ptr, i64, i64 } %t563, ptr %a565 - store { ptr, i64, i64 } { ptr @.str.4757, i64 1, i64 0 }, ptr %a566 + store { ptr, i64, i64 } { ptr @.str.4964, i64 1, i64 0 }, ptr %a566 call void @finch_str_concat(ptr %a564, ptr %a565, ptr %a566) store { ptr, i64, i64 } %t563, ptr %a567 call void @finch_str_drop(ptr %a567) @@ -74793,8 +78726,8 @@ for.end7451: store { ptr, i64, i64 } %t581, ptr %t585 store i64 %t583, ptr %t560 call void @finch_str_drop(ptr %a481) - br label %endif7447 -else7446: + br label %endif7840 +else7839: %t586 = getelementptr inbounds { ptr, i64, i64 }, ptr %a277, i32 0, i32 1 %t587 = load ptr, ptr %a1 %t588 = load %S.ast.Type, ptr %a321 @@ -74811,7 +78744,7 @@ else7446: call void @finch_str_drop(ptr %a597) %t598 = load { ptr, i64, i64 }, ptr %a593 store { ptr, i64, i64 } %t598, ptr %a600 - store { ptr, i64, i64 } { ptr @.str.4758, i64 3, i64 0 }, ptr %a601 + store { ptr, i64, i64 } { ptr @.str.4965, i64 3, i64 0 }, ptr %a601 call void @finch_str_concat(ptr %a599, ptr %a600, ptr %a601) store { ptr, i64, i64 } %t598, ptr %a602 call void @finch_str_drop(ptr %a602) @@ -74839,7 +78772,7 @@ else7446: %t619 = load %S.ast.Type, ptr %a321 %t620 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t618, %S.ast.Type %t619) store { ptr, i64, i64 } %t620, ptr %a622 - store { ptr, i64, i64 } { ptr @.str.4759, i64 3, i64 0 }, ptr %a623 + store { ptr, i64, i64 } { ptr @.str.4966, i64 3, i64 0 }, ptr %a623 call void @finch_str_concat(ptr %a621, ptr %a622, ptr %a623) store { ptr, i64, i64 } %t620, ptr %a624 call void @finch_str_drop(ptr %a624) @@ -74865,33 +78798,33 @@ else7446: %t639 = load i64, ptr %a278 %t640 = add i64 %t639, 1 store i64 %t640, ptr %a278 - br label %endif7447 -endif7447: - br label %endif7444 -endif7444: - br label %endif7441 -endif7441: + br label %endif7840 +endif7840: + br label %endif7837 +endif7837: + br label %endif7834 +endif7834: call void @finch.drop.S_gen_Abi(ptr %a333) call void @finch.drop.S_ast_Type(ptr %a321) - br label %for.step7433 -for.step7433: + br label %for.step7826 +for.step7826: %t641 = load i64, ptr %a307 %t642 = add i64 %t641, 1 store i64 %t642, ptr %a307 - br label %for.cond7431 -for.end7434: + br label %for.cond7824 +for.end7827: %t643 = load ptr, ptr %a1 %t644 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 12 %t645 = load %S.ast.Type, ptr %t644 %t646 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t643, %S.ast.Type %t645) - store { ptr, i64, i64 } { ptr @.str.4760, i64 5, i64 0 }, ptr %a648 + store { ptr, i64, i64 } { ptr @.str.4967, i64 5, i64 0 }, ptr %a648 store { ptr, i64, i64 } %t646, ptr %a649 call void @finch_str_concat(ptr %a647, ptr %a648, ptr %a649) store { ptr, i64, i64 } %t646, ptr %a650 call void @finch_str_drop(ptr %a650) %t651 = load { ptr, i64, i64 }, ptr %a647 store { ptr, i64, i64 } %t651, ptr %a653 - store { ptr, i64, i64 } { ptr @.str.4761, i64 1, i64 0 }, ptr %a654 + store { ptr, i64, i64 } { ptr @.str.4968, i64 1, i64 0 }, ptr %a654 call void @finch_str_concat(ptr %a652, ptr %a653, ptr %a654) store { ptr, i64, i64 } %t651, ptr %a655 call void @finch_str_drop(ptr %a655) @@ -74905,13 +78838,13 @@ for.end7434: call void @finch_str_drop(ptr %a662) %t663 = load { ptr, i64, i64 }, ptr %a659 store { ptr, i64, i64 } %t663, ptr %a665 - store { ptr, i64, i64 } { ptr @.str.4762, i64 1, i64 0 }, ptr %a666 + store { ptr, i64, i64 } { ptr @.str.4969, i64 1, i64 0 }, ptr %a666 call void @finch_str_concat(ptr %a664, ptr %a665, ptr %a666) store { ptr, i64, i64 } %t663, ptr %a667 call void @finch_str_drop(ptr %a667) %t668 = load { ptr, i64, i64 }, ptr %a664 %t669 = getelementptr inbounds { ptr, i64, i64 }, ptr %a303, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.4763, i64 2, i64 0 }, ptr %a670 + store { ptr, i64, i64 } { ptr @.str.4970, i64 2, i64 0 }, ptr %a670 call void @finch_str_join(ptr %a671, ptr %a303, ptr %a670) %t672 = load { ptr, i64, i64 }, ptr %a671 store { ptr, i64, i64 } %t668, ptr %a674 @@ -74923,33 +78856,33 @@ for.end7434: call void @finch_str_drop(ptr %a677) %t678 = load { ptr, i64, i64 }, ptr %a673 store { ptr, i64, i64 } %t678, ptr %a680 - store { ptr, i64, i64 } { ptr @.str.4764, i64 1, i64 0 }, ptr %a681 + store { ptr, i64, i64 } { ptr @.str.4971, i64 1, i64 0 }, ptr %a681 call void @finch_str_concat(ptr %a679, ptr %a680, ptr %a681) store { ptr, i64, i64 } %t678, ptr %a682 call void @finch_str_drop(ptr %a682) %t683 = load { ptr, i64, i64 }, ptr %a679 store { ptr, i64, i64 } %t683, ptr %a684 - store { ptr, i64, i64 } { ptr @.str.4765, i64 0, i64 0 }, ptr %a685 + store { ptr, i64, i64 } { ptr @.str.4972, i64 0, i64 0 }, ptr %a685 %t686 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 12 %t687 = getelementptr inbounds %S.ast.Type, ptr %t686, i32 0, i32 0 %t688 = load { ptr, i64, i64 }, ptr %t687 store { ptr, i64, i64 } %t688, ptr %a689 - store { ptr, i64, i64 } { ptr @.str.4766, i64 4, i64 0 }, ptr %a690 + store { ptr, i64, i64 } { ptr @.str.4973, i64 4, i64 0 }, ptr %a690 %t691 = call i32 @finch_str_eq(ptr %a689, ptr %a690) %t692 = icmp ne i32 %t691, 0 - br i1 %t692, label %then7456, label %else7457 -then7456: + br i1 %t692, label %then7849, label %else7850 +then7849: %t693 = load ptr, ptr %a1 %t694 = load { ptr, i64, i64 }, ptr %a684 call void @finch.gen.emit(ptr %t693, { ptr, i64, i64 } %t694) %t695 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t695, { ptr, i64, i64 } { ptr @.str.4767, i64 8, i64 0 }) - br label %endif7458 -else7457: + call void @finch.gen.emit(ptr %t695, { ptr, i64, i64 } { ptr @.str.4974, i64 8, i64 0 }) + br label %endif7851 +else7850: %t696 = getelementptr inbounds %S.gen.Plan, ptr %a273, i32 0, i32 3 %t697 = load i1, ptr %t696 - br i1 %t697, label %then7459, label %else7460 -then7459: + br i1 %t697, label %then7852, label %else7853 +then7852: %t698 = load ptr, ptr %a1 %t699 = load ptr, ptr %a1 %t700 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 12 @@ -74965,20 +78898,20 @@ then7459: store { ptr, i64, i64 } %t705, ptr %a708 call void @finch_str_drop(ptr %a708) %t709 = load ptr, ptr %a1 - call void @finch.gen.emit(ptr %t709, { ptr, i64, i64 } { ptr @.str.4768, i64 8, i64 0 }) - br label %endif7461 -else7460: + call void @finch.gen.emit(ptr %t709, { ptr, i64, i64 } { ptr @.str.4975, i64 8, i64 0 }) + br label %endif7854 +else7853: %t710 = getelementptr inbounds %S.gen.Plan, ptr %a273, i32 0, i32 0 %t711 = getelementptr inbounds %S.gen.Abi, ptr %t710, i32 0, i32 0 %t712 = load { ptr, i64, i64 }, ptr %t711 store { ptr, i64, i64 } %t712, ptr %a713 - store { ptr, i64, i64 } { ptr @.str.4769, i64 6, i64 0 }, ptr %a714 + store { ptr, i64, i64 } { ptr @.str.4976, i64 6, i64 0 }, ptr %a714 %t715 = call i32 @finch_str_eq(ptr %a713, ptr %a714) %t716 = icmp ne i32 %t715, 0 - br i1 %t716, label %then7462, label %else7463 -then7462: + br i1 %t716, label %then7855, label %else7856 +then7855: %t717 = load ptr, ptr %a1 - %t718 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t717, { ptr, i64, i64 } { ptr @.str.4770, i64 9, i64 0 }) + %t718 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t717, { ptr, i64, i64 } { ptr @.str.4977, i64 9, i64 0 }) store { ptr, i64, i64 } %t718, ptr %a719 %t720 = load ptr, ptr %a1 %t721 = load ptr, ptr %a1 @@ -74998,12 +78931,12 @@ then7462: %t732 = getelementptr inbounds %S.gen.Plan, ptr %a273, i32 0, i32 0 %t733 = getelementptr inbounds %S.gen.Abi, ptr %t732, i32 0, i32 2 %t734 = load { ptr, i64, i64 }, ptr %t733 - store { ptr, i64, i64 } { ptr @.str.4771, i64 4, i64 0 }, ptr %a736 + store { ptr, i64, i64 } { ptr @.str.4978, i64 4, i64 0 }, ptr %a736 store { ptr, i64, i64 } %t734, ptr %a737 call void @finch_str_concat(ptr %a735, ptr %a736, ptr %a737) %t738 = load { ptr, i64, i64 }, ptr %a735 store { ptr, i64, i64 } %t738, ptr %a740 - store { ptr, i64, i64 } { ptr @.str.4772, i64 1, i64 0 }, ptr %a741 + store { ptr, i64, i64 } { ptr @.str.4979, i64 1, i64 0 }, ptr %a741 call void @finch_str_concat(ptr %a739, ptr %a740, ptr %a741) store { ptr, i64, i64 } %t738, ptr %a742 call void @finch_str_drop(ptr %a742) @@ -75026,8 +78959,8 @@ then7462: store { ptr, i64, i64 } %t755, ptr %a756 call void @finch_str_drop(ptr %a756) call void @finch_str_drop(ptr %a719) - br label %endif7464 -else7463: + br label %endif7857 +else7856: %t757 = load ptr, ptr %a1 %t758 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 12 %t759 = load %S.ast.Type, ptr %t758 @@ -75041,14 +78974,14 @@ else7463: %t765 = getelementptr inbounds %S.gen.FnSig, ptr %a17, i32 0, i32 12 %t766 = load %S.ast.Type, ptr %t765 %t767 = call { ptr, i64, i64 } @finch.gen.cLL(ptr %t764, %S.ast.Type %t766) - store { ptr, i64, i64 } { ptr @.str.4773, i64 4, i64 0 }, ptr %a769 + store { ptr, i64, i64 } { ptr @.str.4980, i64 4, i64 0 }, ptr %a769 store { ptr, i64, i64 } %t767, ptr %a770 call void @finch_str_concat(ptr %a768, ptr %a769, ptr %a770) store { ptr, i64, i64 } %t767, ptr %a771 call void @finch_str_drop(ptr %a771) %t772 = load { ptr, i64, i64 }, ptr %a768 store { ptr, i64, i64 } %t772, ptr %a774 - store { ptr, i64, i64 } { ptr @.str.4774, i64 1, i64 0 }, ptr %a775 + store { ptr, i64, i64 } { ptr @.str.4981, i64 1, i64 0 }, ptr %a775 call void @finch_str_concat(ptr %a773, ptr %a774, ptr %a775) store { ptr, i64, i64 } %t772, ptr %a776 call void @finch_str_drop(ptr %a776) @@ -75067,21 +79000,21 @@ else7463: call void @finch.gen.emit(ptr %t763, { ptr, i64, i64 } %t786) store { ptr, i64, i64 } %t786, ptr %a787 call void @finch_str_drop(ptr %a787) - br label %endif7464 -endif7464: - br label %endif7461 -endif7461: - br label %endif7458 -endif7458: + br label %endif7857 +endif7857: + br label %endif7854 +endif7854: + br label %endif7851 +endif7851: %t788 = load ptr, ptr %a1 %t789 = load %S.gen.Saved, ptr %a276 %t790 = load { ptr, i64, i64 }, ptr %a685 - store { ptr, i64, i64 } { ptr @.str.4775, i64 15, i64 0 }, ptr %a792 + store { ptr, i64, i64 } { ptr @.str.4982, i64 15, i64 0 }, ptr %a792 store { ptr, i64, i64 } %t790, ptr %a793 call void @finch_str_concat(ptr %a791, ptr %a792, ptr %a793) %t794 = load { ptr, i64, i64 }, ptr %a791 store { ptr, i64, i64 } %t794, ptr %a796 - store { ptr, i64, i64 } { ptr @.str.4776, i64 1, i64 0 }, ptr %a797 + store { ptr, i64, i64 } { ptr @.str.4983, i64 1, i64 0 }, ptr %a797 call void @finch_str_concat(ptr %a795, ptr %a796, ptr %a797) store { ptr, i64, i64 } %t794, ptr %a798 call void @finch_str_drop(ptr %a798) @@ -75095,7 +79028,7 @@ endif7458: call void @finch_str_drop(ptr %a805) %t806 = load { ptr, i64, i64 }, ptr %a802 store { ptr, i64, i64 } %t806, ptr %a808 - store { ptr, i64, i64 } { ptr @.str.4777, i64 1, i64 0 }, ptr %a809 + store { ptr, i64, i64 } { ptr @.str.4984, i64 1, i64 0 }, ptr %a809 call void @finch_str_concat(ptr %a807, ptr %a808, ptr %a809) store { ptr, i64, i64 } %t806, ptr %a810 call void @finch_str_drop(ptr %a810) @@ -75108,13 +79041,13 @@ endif7458: call void @finch_str_drop(ptr %a816) %t817 = load { ptr, i64, i64 }, ptr %a813 store { ptr, i64, i64 } %t817, ptr %a819 - store { ptr, i64, i64 } { ptr @.str.4778, i64 1, i64 0 }, ptr %a820 + store { ptr, i64, i64 } { ptr @.str.4985, i64 1, i64 0 }, ptr %a820 call void @finch_str_concat(ptr %a818, ptr %a819, ptr %a820) store { ptr, i64, i64 } %t817, ptr %a821 call void @finch_str_drop(ptr %a821) %t822 = load { ptr, i64, i64 }, ptr %a818 %t823 = getelementptr inbounds { ptr, i64, i64 }, ptr %a277, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.4779, i64 2, i64 0 }, ptr %a824 + store { ptr, i64, i64 } { ptr @.str.4986, i64 2, i64 0 }, ptr %a824 call void @finch_str_join(ptr %a825, ptr %a277, ptr %a824) %t826 = load { ptr, i64, i64 }, ptr %a825 store { ptr, i64, i64 } %t822, ptr %a828 @@ -75126,7 +79059,7 @@ endif7458: call void @finch_str_drop(ptr %a831) %t832 = load { ptr, i64, i64 }, ptr %a827 store { ptr, i64, i64 } %t832, ptr %a834 - store { ptr, i64, i64 } { ptr @.str.4780, i64 1, i64 0 }, ptr %a835 + store { ptr, i64, i64 } { ptr @.str.4987, i64 1, i64 0 }, ptr %a835 call void @finch_str_concat(ptr %a833, ptr %a834, ptr %a835) store { ptr, i64, i64 } %t832, ptr %a836 call void @finch_str_drop(ptr %a836) @@ -75247,21 +79180,21 @@ entry: store i64 %p2, ptr %a3 %t4 = load ptr, ptr %a1 %t5 = icmp eq ptr %t4, null - br i1 %t5, label %panic7468, label %ok7469 -panic7468: - call void @finch_panic(ptr @.str.4781, i64 4374, ptr @.str.4782) + br i1 %t5, label %panic7861, label %ok7862 +panic7861: + call void @finch_panic(ptr @.str.4988, i64 4601, ptr @.str.4989) unreachable -ok7469: +ok7862: %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 21 %t7 = load i64, ptr %a3 %t8 = load { ptr, i64, i64 }, ptr %t6 %t9 = extractvalue { ptr, i64, i64 } %t8, 1 %t10 = icmp uge i64 %t7, %t9 - br i1 %t10, label %range7470, label %inrange7471 -range7470: - call void @finch_panic_index(ptr @.str.4783, i64 4374, i64 %t7, i64 %t9) + br i1 %t10, label %range7863, label %inrange7864 +range7863: + call void @finch_panic_index(ptr @.str.4990, i64 4601, i64 %t7, i64 %t9) unreachable -inrange7471: +inrange7864: %t11 = extractvalue { ptr, i64, i64 } %t8, 0 %t12 = getelementptr inbounds %S.gen.EnumDef, ptr %t11, i64 %t7 %t13 = load %S.gen.EnumDef, ptr %t12 @@ -75279,11 +79212,11 @@ inrange7471: %t24 = load { ptr, i64, i64 }, ptr %t23 %t25 = extractvalue { ptr, i64, i64 } %t24, 1 %t26 = icmp uge i64 0, %t25 - br i1 %t26, label %range7472, label %inrange7473 -range7472: - call void @finch_panic_index(ptr @.str.4784, i64 4376, i64 0, i64 %t25) + br i1 %t26, label %range7865, label %inrange7866 +range7865: + call void @finch_panic_index(ptr @.str.4991, i64 4603, i64 0, i64 %t25) unreachable -inrange7473: +inrange7866: %t27 = extractvalue { ptr, i64, i64 } %t24, 0 %t28 = getelementptr inbounds %S.ast.Node, ptr %t27, i64 0 %t29 = load %S.ast.Node, ptr %t28 @@ -75293,25 +79226,25 @@ inrange7473: %t33 = load %S.ast.Type, ptr %t32 %t34 = call i1 @finch.gen.isInt(%S.ast.Type %t33) %t35 = xor i1 %t34, true - br i1 %t35, label %then7474, label %endif7476 -then7474: + br i1 %t35, label %then7867, label %endif7869 +then7867: %t36 = load ptr, ptr %a1 %t37 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t38 = load { ptr, i64, i64 }, ptr %t37 %t39 = extractvalue { ptr, i64, i64 } %t38, 1 %t40 = icmp uge i64 0, %t39 - br i1 %t40, label %range7477, label %inrange7478 -range7477: - call void @finch_panic_index(ptr @.str.4785, i64 4378, i64 0, i64 %t39) + br i1 %t40, label %range7870, label %inrange7871 +range7870: + call void @finch_panic_index(ptr @.str.4992, i64 4605, i64 0, i64 %t39) unreachable -inrange7478: +inrange7871: %t41 = extractvalue { ptr, i64, i64 } %t38, 0 %t42 = getelementptr inbounds %S.ast.Node, ptr %t41, i64 0 %t43 = load %S.ast.Node, ptr %t42 %t44 = getelementptr inbounds %S.gen.EnumDef, ptr %a17, i32 0, i32 1 %t45 = load { ptr, i64, i64 }, ptr %t44 store { ptr, i64, i64 } %t45, ptr %a47 - store { ptr, i64, i64 } { ptr @.str.4786, i64 54, i64 0 }, ptr %a48 + store { ptr, i64, i64 } { ptr @.str.4993, i64 54, i64 0 }, ptr %a48 call void @finch_str_concat(ptr %a46, ptr %a47, ptr %a48) %t49 = load { ptr, i64, i64 }, ptr %a46 %t50 = getelementptr inbounds %S.gen.Val, ptr %a31, i32 0, i32 1 @@ -75328,9 +79261,9 @@ inrange7478: call void @finch.gen.fail(ptr %t36, %S.ast.Node %t43, { ptr, i64, i64 } %t58) store { ptr, i64, i64 } %t58, ptr %a59 call void @finch_str_drop(ptr %a59) - br label %endif7476 -endif7476: - %t60 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.4787, i64 4, i64 0 }, 0 + br label %endif7869 +endif7869: + %t60 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.4994, i64 4, i64 0 }, 0 %t61 = getelementptr inbounds %S.gen.EnumDef, ptr %a17, i32 0, i32 1 %t62 = load { ptr, i64, i64 }, ptr %t61 store { ptr, i64, i64 } %t62, ptr %a63 @@ -75346,58 +79279,58 @@ endif7476: store %S.ast.Type %t72, ptr %a73 %t74 = getelementptr inbounds %S.gen.Val, ptr %a31, i32 0, i32 3 %t75 = load i1, ptr %t74 - br i1 %t75, label %then7479, label %endif7481 -then7479: + br i1 %t75, label %then7872, label %endif7874 +then7872: %t76 = getelementptr inbounds %S.gen.EnumDef, ptr %a17, i32 0, i32 3 %t77 = getelementptr inbounds { ptr, i64, i64 }, ptr %t76, i32 0, i32 1 %t78 = getelementptr inbounds %S.gen.Val, ptr %a31, i32 0, i32 0 %t79 = load { ptr, i64, i64 }, ptr %t78 store { ptr, i64, i64 } %t79, ptr %a80 - %t81 = call i64 @finch_str_to_int(ptr %a80, ptr @.str.4788, i64 4382) + %t81 = call i64 @finch_str_to_int(ptr %a80, ptr @.str.4995, i64 4609) store i64 -1, ptr %a82 %t83 = load i64, ptr %t77 %t84 = load ptr, ptr %t76 store i64 0, ptr %a85 - br label %find.cond7482 -find.cond7482: + br label %find.cond7875 +find.cond7875: %t86 = load i64, ptr %a85 %t87 = icmp slt i64 %t86, %t83 - br i1 %t87, label %find.body7483, label %find.end7486 -find.body7483: + br i1 %t87, label %find.body7876, label %find.end7879 +find.body7876: %t88 = getelementptr inbounds i64, ptr %t84, i64 %t86 %t89 = load i64, ptr %t88 %t90 = icmp eq i64 %t89, %t81 - br i1 %t90, label %find.hit7484, label %find.next7485 -find.hit7484: + br i1 %t90, label %find.hit7877, label %find.next7878 +find.hit7877: store i64 %t86, ptr %a82 - br label %find.end7486 -find.next7485: + br label %find.end7879 +find.next7878: %t91 = add i64 %t86, 1 store i64 %t91, ptr %a85 - br label %find.cond7482 -find.end7486: + br label %find.cond7875 +find.end7879: %t92 = load i64, ptr %a82 %t93 = icmp sge i64 %t92, 0 %t94 = xor i1 %t93, true - br i1 %t94, label %then7487, label %endif7489 -then7487: + br i1 %t94, label %then7880, label %endif7882 +then7880: %t95 = load ptr, ptr %a1 %t96 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t97 = load { ptr, i64, i64 }, ptr %t96 %t98 = extractvalue { ptr, i64, i64 } %t97, 1 %t99 = icmp uge i64 0, %t98 - br i1 %t99, label %range7490, label %inrange7491 -range7490: - call void @finch_panic_index(ptr @.str.4789, i64 4383, i64 0, i64 %t98) + br i1 %t99, label %range7883, label %inrange7884 +range7883: + call void @finch_panic_index(ptr @.str.4996, i64 4610, i64 0, i64 %t98) unreachable -inrange7491: +inrange7884: %t100 = extractvalue { ptr, i64, i64 } %t97, 0 %t101 = getelementptr inbounds %S.ast.Node, ptr %t100, i64 0 %t102 = load %S.ast.Node, ptr %t101 %t103 = getelementptr inbounds %S.gen.Val, ptr %a31, i32 0, i32 0 %t104 = load { ptr, i64, i64 }, ptr %t103 store { ptr, i64, i64 } %t104, ptr %a106 - store { ptr, i64, i64 } { ptr @.str.4790, i64 37, i64 0 }, ptr %a107 + store { ptr, i64, i64 } { ptr @.str.4997, i64 37, i64 0 }, ptr %a107 call void @finch_str_concat(ptr %a105, ptr %a106, ptr %a107) %t108 = load { ptr, i64, i64 }, ptr %a105 %t109 = getelementptr inbounds %S.gen.EnumDef, ptr %a17, i32 0, i32 1 @@ -75411,8 +79344,8 @@ inrange7491: call void @finch.gen.fail(ptr %t95, %S.ast.Node %t102, { ptr, i64, i64 } %t115) store { ptr, i64, i64 } %t115, ptr %a116 call void @finch_str_drop(ptr %a116) - br label %endif7489 -endif7489: + br label %endif7882 +endif7882: %t117 = getelementptr inbounds %S.gen.Val, ptr %a31, i32 0, i32 0 %t118 = load { ptr, i64, i64 }, ptr %t117 store { ptr, i64, i64 } %t118, ptr %a119 @@ -75428,36 +79361,36 @@ endif7489: call void @finch.drop.S_gen_Val(ptr %a31) call void @finch.drop.S_gen_EnumDef(ptr %a17) ret %S.gen.Val %t127 -endif7481: +endif7874: %t128 = load ptr, ptr %a1 %t129 = getelementptr inbounds %S.gen.Val, ptr %a31, i32 0, i32 0 %t130 = load { ptr, i64, i64 }, ptr %t129 %t131 = getelementptr inbounds %S.gen.Val, ptr %a31, i32 0, i32 1 %t132 = load %S.ast.Type, ptr %t131 - %t133 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4791, i64 3, i64 0 }) + %t133 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4998, i64 3, i64 0 }) %t134 = call { ptr, i64, i64 } @finch.gen.intCast(ptr %t128, { ptr, i64, i64 } %t130, %S.ast.Type %t132, %S.ast.Type %t133) store %S.ast.Type %t133, ptr %a135 call void @finch.drop.S_ast_Type(ptr %a135) store { ptr, i64, i64 } %t134, ptr %a136 - store { ptr, i64, i64 } { ptr @.str.4792, i64 0, i64 0 }, ptr %a137 + store { ptr, i64, i64 } { ptr @.str.4999, i64 0, i64 0 }, ptr %a137 %t138 = getelementptr inbounds %S.gen.EnumDef, ptr %a17, i32 0, i32 3 %t139 = getelementptr inbounds { ptr, i64, i64 }, ptr %t138, i32 0, i32 1 %t140 = load i64, ptr %t139 store i64 0, ptr %a141 - br label %for.cond7492 -for.cond7492: + br label %for.cond7885 +for.cond7885: %t142 = load i64, ptr %a141 %t143 = icmp slt i64 %t142, %t140 - br i1 %t143, label %for.body7493, label %for.end7495 -for.body7493: + br i1 %t143, label %for.body7886, label %for.end7888 +for.body7886: %t144 = load ptr, ptr %a1 %t145 = load { ptr, i64, i64 }, ptr %a136 - store { ptr, i64, i64 } { ptr @.str.4793, i64 12, i64 0 }, ptr %a147 + store { ptr, i64, i64 } { ptr @.str.5000, i64 12, i64 0 }, ptr %a147 store { ptr, i64, i64 } %t145, ptr %a148 call void @finch_str_concat(ptr %a146, ptr %a147, ptr %a148) %t149 = load { ptr, i64, i64 }, ptr %a146 store { ptr, i64, i64 } %t149, ptr %a151 - store { ptr, i64, i64 } { ptr @.str.4794, i64 2, i64 0 }, ptr %a152 + store { ptr, i64, i64 } { ptr @.str.5001, i64 2, i64 0 }, ptr %a152 call void @finch_str_concat(ptr %a150, ptr %a151, ptr %a152) store { ptr, i64, i64 } %t149, ptr %a153 call void @finch_str_drop(ptr %a153) @@ -75467,11 +79400,11 @@ for.body7493: %t157 = load { ptr, i64, i64 }, ptr %t155 %t158 = extractvalue { ptr, i64, i64 } %t157, 1 %t159 = icmp uge i64 %t156, %t158 - br i1 %t159, label %range7496, label %inrange7497 -range7496: - call void @finch_panic_index(ptr @.str.4795, i64 4390, i64 %t156, i64 %t158) + br i1 %t159, label %range7889, label %inrange7890 +range7889: + call void @finch_panic_index(ptr @.str.5002, i64 4617, i64 %t156, i64 %t158) unreachable -inrange7497: +inrange7890: %t160 = extractvalue { ptr, i64, i64 } %t157, 0 %t161 = getelementptr inbounds i64, ptr %t160, i64 %t156 %t162 = load i64, ptr %t161 @@ -75491,8 +79424,8 @@ inrange7497: store { ptr, i64, i64 } %t171, ptr %a173 %t174 = load i64, ptr %a141 %t175 = icmp eq i64 %t174, 0 - br i1 %t175, label %then7498, label %else7499 -then7498: + br i1 %t175, label %then7891, label %else7892 +then7891: %t176 = load { ptr, i64, i64 }, ptr %a173 store { ptr, i64, i64 } %t176, ptr %a177 call void @finch_str_copy(ptr %a178, ptr %a177) @@ -75501,16 +79434,16 @@ then7498: store { ptr, i64, i64 } %t179, ptr %a137 store { ptr, i64, i64 } %t180, ptr %a181 call void @finch_str_drop(ptr %a181) - br label %endif7500 -else7499: + br label %endif7893 +else7892: %t182 = load ptr, ptr %a1 %t183 = load { ptr, i64, i64 }, ptr %a137 - store { ptr, i64, i64 } { ptr @.str.4796, i64 6, i64 0 }, ptr %a185 + store { ptr, i64, i64 } { ptr @.str.5003, i64 6, i64 0 }, ptr %a185 store { ptr, i64, i64 } %t183, ptr %a186 call void @finch_str_concat(ptr %a184, ptr %a185, ptr %a186) %t187 = load { ptr, i64, i64 }, ptr %a184 store { ptr, i64, i64 } %t187, ptr %a189 - store { ptr, i64, i64 } { ptr @.str.4797, i64 2, i64 0 }, ptr %a190 + store { ptr, i64, i64 } { ptr @.str.5004, i64 2, i64 0 }, ptr %a190 call void @finch_str_concat(ptr %a188, ptr %a189, ptr %a190) store { ptr, i64, i64 } %t187, ptr %a191 call void @finch_str_drop(ptr %a191) @@ -75529,25 +79462,25 @@ else7499: store { ptr, i64, i64 } %t199, ptr %a137 store { ptr, i64, i64 } %t201, ptr %a202 call void @finch_str_drop(ptr %a202) - br label %endif7500 -endif7500: + br label %endif7893 +endif7893: call void @finch_str_drop(ptr %a173) - br label %for.step7494 -for.step7494: + br label %for.step7887 +for.step7887: %t203 = load i64, ptr %a141 %t204 = add i64 %t203, 1 store i64 %t204, ptr %a141 - br label %for.cond7492 -for.end7495: + br label %for.cond7885 +for.end7888: %t205 = load ptr, ptr %a1 %t206 = load ptr, ptr %a1 %t207 = load { ptr, i64, i64 }, ptr %a137 - store { ptr, i64, i64 } { ptr @.str.4798, i64 7, i64 0 }, ptr %a209 + store { ptr, i64, i64 } { ptr @.str.5005, i64 7, i64 0 }, ptr %a209 store { ptr, i64, i64 } %t207, ptr %a210 call void @finch_str_concat(ptr %a208, ptr %a209, ptr %a210) %t211 = load { ptr, i64, i64 }, ptr %a208 store { ptr, i64, i64 } %t211, ptr %a213 - store { ptr, i64, i64 } { ptr @.str.4799, i64 6, i64 0 }, ptr %a214 + store { ptr, i64, i64 } { ptr @.str.5006, i64 6, i64 0 }, ptr %a214 call void @finch_str_concat(ptr %a212, ptr %a213, ptr %a214) store { ptr, i64, i64 } %t211, ptr %a215 call void @finch_str_drop(ptr %a215) @@ -75557,7 +79490,7 @@ for.end7495: call void @finch_str_drop(ptr %a218) %t219 = getelementptr inbounds %S.gen.EnumDef, ptr %a17, i32 0, i32 1 %t220 = load { ptr, i64, i64 }, ptr %t219 - store { ptr, i64, i64 } { ptr @.str.4800, i64 32, i64 0 }, ptr %a222 + store { ptr, i64, i64 } { ptr @.str.5007, i64 32, i64 0 }, ptr %a222 store { ptr, i64, i64 } %t220, ptr %a223 call void @finch_str_concat(ptr %a221, ptr %a222, ptr %a223) %t224 = load { ptr, i64, i64 }, ptr %a221 @@ -75569,12 +79502,12 @@ for.end7495: call void @finch_str_drop(ptr %a227) %t228 = load ptr, ptr %a1 %t229 = load { ptr, i64, i64 }, ptr %a136 - store { ptr, i64, i64 } { ptr @.str.4801, i64 10, i64 0 }, ptr %a231 + store { ptr, i64, i64 } { ptr @.str.5008, i64 10, i64 0 }, ptr %a231 store { ptr, i64, i64 } %t229, ptr %a232 call void @finch_str_concat(ptr %a230, ptr %a231, ptr %a232) %t233 = load { ptr, i64, i64 }, ptr %a230 store { ptr, i64, i64 } %t233, ptr %a235 - store { ptr, i64, i64 } { ptr @.str.4802, i64 7, i64 0 }, ptr %a236 + store { ptr, i64, i64 } { ptr @.str.5009, i64 7, i64 0 }, ptr %a236 call void @finch_str_concat(ptr %a234, ptr %a235, ptr %a236) store { ptr, i64, i64 } %t233, ptr %a237 call void @finch_str_drop(ptr %a237) @@ -75611,106 +79544,106 @@ entry: %t3 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t4 = load { ptr, i64, i64 }, ptr %t3 store { ptr, i64, i64 } %t4, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.4803, i64 4, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.5010, i64 4, i64 0 }, ptr %a6 %t7 = call i32 @finch_str_eq(ptr %a5, ptr %a6) %t8 = icmp ne i32 %t7, 0 - br label %logic.from7501 -logic.from7501: - br i1 %t8, label %logic.end7503, label %logic.rhs7502 -logic.rhs7502: + br label %logic.from7894 +logic.from7894: + br i1 %t8, label %logic.end7896, label %logic.rhs7895 +logic.rhs7895: %t9 = load %S.ast.Type, ptr %a2 %t10 = call i1 @finch.gen.isUnsigned(%S.ast.Type %t9) - br label %logic.rend7504 -logic.rend7504: - br label %logic.end7503 -logic.end7503: - %t11 = phi i1 [ true, %logic.from7501 ], [ %t10, %logic.rend7504 ] - br i1 %t11, label %then7505, label %endif7507 -then7505: + br label %logic.rend7897 +logic.rend7897: + br label %logic.end7896 +logic.end7896: + %t11 = phi i1 [ true, %logic.from7894 ], [ %t10, %logic.rend7897 ] + br i1 %t11, label %then7898, label %endif7900 +then7898: %t12 = load %S.ast.Type, ptr %a2 %t13 = call i64 @finch.gen.bitsOf(%S.ast.Type %t12) %t14 = icmp slt i64 %t13, 32 - br i1 %t14, label %then7508, label %endif7510 -then7508: - ret { ptr, i64, i64 } { ptr @.str.4804, i64 8, i64 0 } -endif7510: - br label %endif7507 -endif7507: + br i1 %t14, label %then7901, label %endif7903 +then7901: + ret { ptr, i64, i64 } { ptr @.str.5011, i64 8, i64 0 } +endif7903: + br label %endif7900 +endif7900: %t15 = load %S.ast.Type, ptr %a2 %t16 = call i1 @finch.gen.isSigned(%S.ast.Type %t15) - br label %logic.from7511 -logic.from7511: - br i1 %t16, label %logic.end7513, label %logic.rhs7512 -logic.rhs7512: + br label %logic.from7904 +logic.from7904: + br i1 %t16, label %logic.end7906, label %logic.rhs7905 +logic.rhs7905: %t17 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t18 = load { ptr, i64, i64 }, ptr %t17 store { ptr, i64, i64 } %t18, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.4805, i64 4, i64 0 }, ptr %a20 + store { ptr, i64, i64 } { ptr @.str.5012, i64 4, i64 0 }, ptr %a20 %t21 = call i32 @finch_str_eq(ptr %a19, ptr %a20) %t22 = icmp ne i32 %t21, 0 - br label %logic.from7514 -logic.from7514: - br i1 %t22, label %logic.rhs7515, label %logic.end7516 -logic.rhs7515: + br label %logic.from7907 +logic.from7907: + br i1 %t22, label %logic.rhs7908, label %logic.end7909 +logic.rhs7908: %t23 = load ptr, ptr %a1 %t24 = icmp eq ptr %t23, null - br i1 %t24, label %panic7517, label %ok7518 -panic7517: - call void @finch_panic(ptr @.str.4806, i64 4410, ptr @.str.4807) + br i1 %t24, label %panic7910, label %ok7911 +panic7910: + call void @finch_panic(ptr @.str.5013, i64 4637, ptr @.str.5014) unreachable -ok7518: - %t25 = getelementptr inbounds %S.gen.Gen, ptr %t23, i32 0, i32 30 +ok7911: + %t25 = getelementptr inbounds %S.gen.Gen, ptr %t23, i32 0, i32 31 %t26 = load %S.platform.Target, ptr %t25 %t27 = call i1 @finch.platform.charIsSigned(%S.platform.Target %t26) - br label %logic.rend7519 -logic.rend7519: - br label %logic.end7516 -logic.end7516: - %t28 = phi i1 [ false, %logic.from7514 ], [ %t27, %logic.rend7519 ] - br label %logic.rend7520 -logic.rend7520: - br label %logic.end7513 -logic.end7513: - %t29 = phi i1 [ true, %logic.from7511 ], [ %t28, %logic.rend7520 ] - br label %logic.from7521 -logic.from7521: - br i1 %t29, label %logic.rhs7522, label %logic.end7523 -logic.rhs7522: + br label %logic.rend7912 +logic.rend7912: + br label %logic.end7909 +logic.end7909: + %t28 = phi i1 [ false, %logic.from7907 ], [ %t27, %logic.rend7912 ] + br label %logic.rend7913 +logic.rend7913: + br label %logic.end7906 +logic.end7906: + %t29 = phi i1 [ true, %logic.from7904 ], [ %t28, %logic.rend7913 ] + br label %logic.from7914 +logic.from7914: + br i1 %t29, label %logic.rhs7915, label %logic.end7916 +logic.rhs7915: %t30 = load %S.ast.Type, ptr %a2 %t31 = call i64 @finch.gen.bitsOf(%S.ast.Type %t30) %t32 = icmp slt i64 %t31, 32 - br label %logic.rend7524 -logic.rend7524: - br label %logic.end7523 -logic.end7523: - %t33 = phi i1 [ false, %logic.from7521 ], [ %t32, %logic.rend7524 ] - br i1 %t33, label %then7525, label %endif7527 -then7525: - ret { ptr, i64, i64 } { ptr @.str.4808, i64 8, i64 0 } -endif7527: + br label %logic.rend7917 +logic.rend7917: + br label %logic.end7916 +logic.end7916: + %t33 = phi i1 [ false, %logic.from7914 ], [ %t32, %logic.rend7917 ] + br i1 %t33, label %then7918, label %endif7920 +then7918: + ret { ptr, i64, i64 } { ptr @.str.5015, i64 8, i64 0 } +endif7920: %t34 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t35 = load { ptr, i64, i64 }, ptr %t34 store { ptr, i64, i64 } %t35, ptr %a36 - store { ptr, i64, i64 } { ptr @.str.4809, i64 4, i64 0 }, ptr %a37 + store { ptr, i64, i64 } { ptr @.str.5016, i64 4, i64 0 }, ptr %a37 %t38 = call i32 @finch_str_eq(ptr %a36, ptr %a37) %t39 = icmp ne i32 %t38, 0 - br label %logic.from7528 -logic.from7528: - br i1 %t39, label %logic.rhs7529, label %logic.end7530 -logic.rhs7529: + br label %logic.from7921 +logic.from7921: + br i1 %t39, label %logic.rhs7922, label %logic.end7923 +logic.rhs7922: %t40 = load %S.ast.Type, ptr %a2 %t41 = call i64 @finch.gen.bitsOf(%S.ast.Type %t40) %t42 = icmp slt i64 %t41, 32 - br label %logic.rend7531 -logic.rend7531: - br label %logic.end7530 -logic.end7530: - %t43 = phi i1 [ false, %logic.from7528 ], [ %t42, %logic.rend7531 ] - br i1 %t43, label %then7532, label %endif7534 -then7532: - ret { ptr, i64, i64 } { ptr @.str.4810, i64 8, i64 0 } -endif7534: - ret { ptr, i64, i64 } { ptr @.str.4811, i64 0, i64 0 } + br label %logic.rend7924 +logic.rend7924: + br label %logic.end7923 +logic.end7923: + %t43 = phi i1 [ false, %logic.from7921 ], [ %t42, %logic.rend7924 ] + br i1 %t43, label %then7925, label %endif7927 +then7925: + ret { ptr, i64, i64 } { ptr @.str.5017, i64 8, i64 0 } +endif7927: + ret { ptr, i64, i64 } { ptr @.str.5018, i64 0, i64 0 } } define internal { ptr, i64, i64 } @finch.gen.cLL(ptr %p0, %S.ast.Type %p1) { @@ -75724,13 +79657,13 @@ entry: %t3 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t4 = load { ptr, i64, i64 }, ptr %t3 store { ptr, i64, i64 } %t4, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.4812, i64 3, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.5019, i64 3, i64 0 }, ptr %a6 %t7 = call i32 @finch_str_eq(ptr %a5, ptr %a6) %t8 = icmp ne i32 %t7, 0 - br i1 %t8, label %then7535, label %endif7537 -then7535: - ret { ptr, i64, i64 } { ptr @.str.4813, i64 3, i64 0 } -endif7537: + br i1 %t8, label %then7928, label %endif7930 +then7928: + ret { ptr, i64, i64 } { ptr @.str.5020, i64 3, i64 0 } +endif7930: %t9 = load ptr, ptr %a1 %t10 = load %S.ast.Type, ptr %a2 %t11 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t9, %S.ast.Type %t10) @@ -76200,26 +80133,26 @@ entry: store %S.cimport.CFunc %p2, ptr %a3 %t4 = load ptr, ptr %a1 %t5 = icmp eq ptr %t4, null - br i1 %t5, label %panic7538, label %ok7539 -panic7538: - call void @finch_panic(ptr @.str.4814, i64 4427, ptr @.str.4815) + br i1 %t5, label %panic7931, label %ok7932 +panic7931: + call void @finch_panic(ptr @.str.5021, i64 4654, ptr @.str.5022) unreachable -ok7539: - %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 27 +ok7932: + %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 28 %t7 = load i1, ptr %t6 - br i1 %t7, label %then7540, label %endif7542 -then7540: + br i1 %t7, label %then7933, label %endif7935 +then7933: store { ptr, i64, i64 } zeroinitializer, ptr %a8 %t9 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 3 store i64 0, ptr %a10 - br label %each.cond7543 -each.cond7543: + br label %each.cond7936 +each.cond7936: %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %t9, i32 0, i32 1 %t12 = load i64, ptr %t11 %t13 = load i64, ptr %a10 %t14 = icmp slt i64 %t13, %t12 - br i1 %t14, label %each.body7544, label %each.end7546 -each.body7544: + br i1 %t14, label %each.body7937, label %each.end7939 +each.body7937: %t15 = load ptr, ptr %t9 %t16 = getelementptr inbounds %S.ast.Type, ptr %t15, i64 %t13 %t17 = load %S.ast.Type, ptr %t16 @@ -76234,27 +80167,27 @@ each.body7544: %t25 = getelementptr inbounds { ptr, i64, i64 }, ptr %t24, i64 %t22 store { ptr, i64, i64 } %t21, ptr %t25 store i64 %t23, ptr %t19 - br label %each.step7545 -each.step7545: + br label %each.step7938 +each.step7938: %t26 = load i64, ptr %a10 %t27 = add i64 %t26, 1 store i64 %t27, ptr %a10 - br label %each.cond7543 -each.end7546: + br label %each.cond7936 +each.end7939: %t28 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 4 %t29 = load i1, ptr %t28 - br i1 %t29, label %then7547, label %endif7549 -then7547: + br i1 %t29, label %then7940, label %endif7942 +then7940: %t30 = getelementptr inbounds { ptr, i64, i64 }, ptr %a8, i32 0, i32 1 %t31 = load i64, ptr %t30 %t32 = add i64 %t31, 1 call void @finch_arr_reserve(ptr %a8, i64 %t32, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t33 = load ptr, ptr %a8 %t34 = getelementptr inbounds { ptr, i64, i64 }, ptr %t33, i64 %t31 - store { ptr, i64, i64 } { ptr @.str.4816, i64 3, i64 0 }, ptr %t34 + store { ptr, i64, i64 } { ptr @.str.5023, i64 3, i64 0 }, ptr %t34 store i64 %t32, ptr %t30 - br label %endif7549 -endif7549: + br label %endif7942 +endif7942: %t35 = load ptr, ptr %a1 %t36 = load %S.ast.Node, ptr %a2 %t37 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 12 @@ -76264,12 +80197,12 @@ endif7549: %t41 = load i64, ptr %t40 %t42 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 1 %t43 = load { ptr, i64, i64 }, ptr %t42 - store { ptr, i64, i64 } { ptr @.str.4817, i64 17, i64 0 }, ptr %a45 + store { ptr, i64, i64 } { ptr @.str.5024, i64 17, i64 0 }, ptr %a45 store { ptr, i64, i64 } %t43, ptr %a46 call void @finch_str_concat(ptr %a44, ptr %a45, ptr %a46) %t47 = load { ptr, i64, i64 }, ptr %a44 store { ptr, i64, i64 } %t47, ptr %a49 - store { ptr, i64, i64 } { ptr @.str.4818, i64 7, i64 0 }, ptr %a50 + store { ptr, i64, i64 } { ptr @.str.5025, i64 7, i64 0 }, ptr %a50 call void @finch_str_concat(ptr %a48, ptr %a49, ptr %a50) store { ptr, i64, i64 } %t47, ptr %a51 call void @finch_str_drop(ptr %a51) @@ -76286,7 +80219,7 @@ endif7549: call void @finch_str_drop(ptr %a60) %t61 = load { ptr, i64, i64 }, ptr %a56 store { ptr, i64, i64 } %t61, ptr %a63 - store { ptr, i64, i64 } { ptr @.str.4819, i64 1, i64 0 }, ptr %a64 + store { ptr, i64, i64 } { ptr @.str.5026, i64 1, i64 0 }, ptr %a64 call void @finch_str_concat(ptr %a62, ptr %a63, ptr %a64) store { ptr, i64, i64 } %t61, ptr %a65 call void @finch_str_drop(ptr %a65) @@ -76300,13 +80233,13 @@ endif7549: call void @finch_str_drop(ptr %a72) %t73 = load { ptr, i64, i64 }, ptr %a69 store { ptr, i64, i64 } %t73, ptr %a75 - store { ptr, i64, i64 } { ptr @.str.4820, i64 1, i64 0 }, ptr %a76 + store { ptr, i64, i64 } { ptr @.str.5027, i64 1, i64 0 }, ptr %a76 call void @finch_str_concat(ptr %a74, ptr %a75, ptr %a76) store { ptr, i64, i64 } %t73, ptr %a77 call void @finch_str_drop(ptr %a77) %t78 = load { ptr, i64, i64 }, ptr %a74 %t79 = getelementptr inbounds { ptr, i64, i64 }, ptr %a8, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.4821, i64 2, i64 0 }, ptr %a80 + store { ptr, i64, i64 } { ptr @.str.5028, i64 2, i64 0 }, ptr %a80 call void @finch_str_join(ptr %a81, ptr %a8, ptr %a80) %t82 = load { ptr, i64, i64 }, ptr %a81 store { ptr, i64, i64 } %t78, ptr %a84 @@ -76318,33 +80251,33 @@ endif7549: call void @finch_str_drop(ptr %a87) %t88 = load { ptr, i64, i64 }, ptr %a83 store { ptr, i64, i64 } %t88, ptr %a90 - store { ptr, i64, i64 } { ptr @.str.4822, i64 5, i64 0 }, ptr %a91 + store { ptr, i64, i64 } { ptr @.str.5029, i64 5, i64 0 }, ptr %a91 call void @finch_str_concat(ptr %a89, ptr %a90, ptr %a91) store { ptr, i64, i64 } %t88, ptr %a92 call void @finch_str_drop(ptr %a92) %t93 = load { ptr, i64, i64 }, ptr %a89 - call void @finch.gen.noteRef(ptr %t35, %S.ast.Node %t36, i64 %t38, i64 %t41, { ptr, i64, i64 } %t93, { ptr, i64, i64 } { ptr @.str.4823, i64 0, i64 0 }, i64 0, i64 0) + call void @finch.gen.noteRef(ptr %t35, %S.ast.Node %t36, i64 %t38, i64 %t41, { ptr, i64, i64 } %t93, { ptr, i64, i64 } { ptr @.str.5030, i64 0, i64 0 }, i64 0, i64 0) store { ptr, i64, i64 } %t93, ptr %a94 call void @finch_str_drop(ptr %a94) call void @finch.drop.arr_str(ptr %a8) - br label %endif7542 -endif7542: + br label %endif7935 +endif7935: %t95 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 5 %t96 = getelementptr inbounds { ptr, i64, i64 }, ptr %t95, i32 0, i32 1 %t97 = load i64, ptr %t96 %t98 = icmp sgt i64 %t97, 0 - br i1 %t98, label %then7550, label %endif7552 -then7550: + br i1 %t98, label %then7943, label %endif7945 +then7943: %t99 = load ptr, ptr %a1 %t100 = load %S.ast.Node, ptr %a2 %t101 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 0 %t102 = load { ptr, i64, i64 }, ptr %t101 - store { ptr, i64, i64 } { ptr @.str.4824, i64 16, i64 0 }, ptr %a104 + store { ptr, i64, i64 } { ptr @.str.5031, i64 16, i64 0 }, ptr %a104 store { ptr, i64, i64 } %t102, ptr %a105 call void @finch_str_concat(ptr %a103, ptr %a104, ptr %a105) %t106 = load { ptr, i64, i64 }, ptr %a103 store { ptr, i64, i64 } %t106, ptr %a108 - store { ptr, i64, i64 } { ptr @.str.4825, i64 35, i64 0 }, ptr %a109 + store { ptr, i64, i64 } { ptr @.str.5032, i64 35, i64 0 }, ptr %a109 call void @finch_str_concat(ptr %a107, ptr %a108, ptr %a109) store { ptr, i64, i64 } %t106, ptr %a110 call void @finch_str_drop(ptr %a110) @@ -76360,33 +80293,33 @@ then7550: call void @finch.gen.fail(ptr %t99, %S.ast.Node %t100, { ptr, i64, i64 } %t118) store { ptr, i64, i64 } %t118, ptr %a119 call void @finch_str_drop(ptr %a119) - br label %endif7552 -endif7552: + br label %endif7945 +endif7945: %t120 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t121 = getelementptr inbounds { ptr, i64, i64 }, ptr %t120, i32 0, i32 1 %t122 = load i64, ptr %t121 store i64 %t122, ptr %a123 %t124 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 4 %t125 = load i1, ptr %t124 - br i1 %t125, label %then7553, label %else7554 -then7553: + br i1 %t125, label %then7946, label %else7947 +then7946: %t126 = load i64, ptr %a123 %t127 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 3 %t128 = getelementptr inbounds { ptr, i64, i64 }, ptr %t127, i32 0, i32 1 %t129 = load i64, ptr %t128 %t130 = icmp slt i64 %t126, %t129 - br i1 %t130, label %then7556, label %endif7558 -then7556: + br i1 %t130, label %then7949, label %endif7951 +then7949: %t131 = load ptr, ptr %a1 %t132 = load %S.ast.Node, ptr %a2 %t133 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 0 %t134 = load { ptr, i64, i64 }, ptr %t133 - store { ptr, i64, i64 } { ptr @.str.4826, i64 1, i64 0 }, ptr %a136 + store { ptr, i64, i64 } { ptr @.str.5033, i64 1, i64 0 }, ptr %a136 store { ptr, i64, i64 } %t134, ptr %a137 call void @finch_str_concat(ptr %a135, ptr %a136, ptr %a137) %t138 = load { ptr, i64, i64 }, ptr %a135 store { ptr, i64, i64 } %t138, ptr %a140 - store { ptr, i64, i64 } { ptr @.str.4827, i64 17, i64 0 }, ptr %a141 + store { ptr, i64, i64 } { ptr @.str.5034, i64 17, i64 0 }, ptr %a141 call void @finch_str_concat(ptr %a139, ptr %a140, ptr %a141) store { ptr, i64, i64 } %t138, ptr %a142 call void @finch_str_drop(ptr %a142) @@ -76405,7 +80338,7 @@ then7556: call void @finch_str_drop(ptr %a153) %t154 = load { ptr, i64, i64 }, ptr %a149 store { ptr, i64, i64 } %t154, ptr %a156 - store { ptr, i64, i64 } { ptr @.str.4828, i64 22, i64 0 }, ptr %a157 + store { ptr, i64, i64 } { ptr @.str.5035, i64 22, i64 0 }, ptr %a157 call void @finch_str_concat(ptr %a155, ptr %a156, ptr %a157) store { ptr, i64, i64 } %t154, ptr %a158 call void @finch_str_drop(ptr %a158) @@ -76424,27 +80357,27 @@ then7556: call void @finch.gen.fail(ptr %t131, %S.ast.Node %t132, { ptr, i64, i64 } %t168) store { ptr, i64, i64 } %t168, ptr %a169 call void @finch_str_drop(ptr %a169) - br label %endif7558 -endif7558: - br label %endif7555 -else7554: + br label %endif7951 +endif7951: + br label %endif7948 +else7947: %t170 = load i64, ptr %a123 %t171 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 3 %t172 = getelementptr inbounds { ptr, i64, i64 }, ptr %t171, i32 0, i32 1 %t173 = load i64, ptr %t172 %t174 = icmp ne i64 %t170, %t173 - br i1 %t174, label %then7559, label %endif7561 -then7559: + br i1 %t174, label %then7952, label %endif7954 +then7952: %t175 = load ptr, ptr %a1 %t176 = load %S.ast.Node, ptr %a2 %t177 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 0 %t178 = load { ptr, i64, i64 }, ptr %t177 - store { ptr, i64, i64 } { ptr @.str.4829, i64 1, i64 0 }, ptr %a180 + store { ptr, i64, i64 } { ptr @.str.5036, i64 1, i64 0 }, ptr %a180 store { ptr, i64, i64 } %t178, ptr %a181 call void @finch_str_concat(ptr %a179, ptr %a180, ptr %a181) %t182 = load { ptr, i64, i64 }, ptr %a179 store { ptr, i64, i64 } %t182, ptr %a184 - store { ptr, i64, i64 } { ptr @.str.4830, i64 8, i64 0 }, ptr %a185 + store { ptr, i64, i64 } { ptr @.str.5037, i64 8, i64 0 }, ptr %a185 call void @finch_str_concat(ptr %a183, ptr %a184, ptr %a185) store { ptr, i64, i64 } %t182, ptr %a186 call void @finch_str_drop(ptr %a186) @@ -76463,7 +80396,7 @@ then7559: call void @finch_str_drop(ptr %a197) %t198 = load { ptr, i64, i64 }, ptr %a193 store { ptr, i64, i64 } %t198, ptr %a200 - store { ptr, i64, i64 } { ptr @.str.4831, i64 22, i64 0 }, ptr %a201 + store { ptr, i64, i64 } { ptr @.str.5038, i64 22, i64 0 }, ptr %a201 call void @finch_str_concat(ptr %a199, ptr %a200, ptr %a201) store { ptr, i64, i64 } %t198, ptr %a202 call void @finch_str_drop(ptr %a202) @@ -76482,10 +80415,10 @@ then7559: call void @finch.gen.fail(ptr %t175, %S.ast.Node %t176, { ptr, i64, i64 } %t212) store { ptr, i64, i64 } %t212, ptr %a213 call void @finch_str_drop(ptr %a213) - br label %endif7561 -endif7561: - br label %endif7555 -endif7555: + br label %endif7954 +endif7954: + br label %endif7948 +endif7948: %t214 = load ptr, ptr %a1 %t215 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 2 %t216 = load %S.ast.Type, ptr %t215 @@ -76497,18 +80430,18 @@ endif7555: %t222 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 0 %t223 = load { ptr, i64, i64 }, ptr %t222 %t224 = load %S.ast.Type, ptr %a219 - call void @finch.gen.checkByValue(ptr %t220, %S.ast.Node %t221, { ptr, i64, i64 } %t223, %S.ast.Type %t224, { ptr, i64, i64 } { ptr @.str.4832, i64 7, i64 0 }) + call void @finch.gen.checkByValue(ptr %t220, %S.ast.Node %t221, { ptr, i64, i64 } %t223, %S.ast.Type %t224, { ptr, i64, i64 } { ptr @.str.5039, i64 7, i64 0 }) store { ptr, i64, i64 } zeroinitializer, ptr %a225 %t226 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 3 store i64 0, ptr %a227 - br label %each.cond7562 -each.cond7562: + br label %each.cond7955 +each.cond7955: %t228 = getelementptr inbounds { ptr, i64, i64 }, ptr %t226, i32 0, i32 1 %t229 = load i64, ptr %t228 %t230 = load i64, ptr %a227 %t231 = icmp slt i64 %t230, %t229 - br i1 %t231, label %each.body7563, label %each.end7565 -each.body7563: + br i1 %t231, label %each.body7956, label %each.end7958 +each.body7956: %t232 = load ptr, ptr %t226 %t233 = getelementptr inbounds %S.ast.Type, ptr %t232, i64 %t230 %t234 = load %S.ast.Type, ptr %t233 @@ -76523,7 +80456,7 @@ each.body7563: %t243 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 0 %t244 = load { ptr, i64, i64 }, ptr %t243 %t245 = load %S.ast.Type, ptr %a240 - call void @finch.gen.checkByValue(ptr %t241, %S.ast.Node %t242, { ptr, i64, i64 } %t244, %S.ast.Type %t245, { ptr, i64, i64 } { ptr @.str.4833, i64 5, i64 0 }) + call void @finch.gen.checkByValue(ptr %t241, %S.ast.Node %t242, { ptr, i64, i64 } %t244, %S.ast.Type %t245, { ptr, i64, i64 } { ptr @.str.5040, i64 5, i64 0 }) %t246 = getelementptr inbounds { ptr, i64, i64 }, ptr %a225, i32 0, i32 1 %t247 = load %S.ast.Type, ptr %a240 store %S.ast.Type %t247, ptr %a248 @@ -76537,13 +80470,13 @@ each.body7563: store %S.ast.Type %t250, ptr %t254 store i64 %t252, ptr %t246 call void @finch.drop.S_ast_Type(ptr %a240) - br label %each.step7564 -each.step7564: + br label %each.step7957 +each.step7957: %t255 = load i64, ptr %a227 %t256 = add i64 %t255, 1 store i64 %t256, ptr %a227 - br label %each.cond7562 -each.end7565: + br label %each.cond7955 +each.end7958: %t257 = load ptr, ptr %a1 %t258 = load %S.ast.Type, ptr %a219 %t259 = load { ptr, i64, i64 }, ptr %a225 @@ -76551,11 +80484,11 @@ each.end7565: store %S.gen.Plan %t260, ptr %a261 store { ptr, i64, i64 } zeroinitializer, ptr %a262 store { ptr, i64, i64 } zeroinitializer, ptr %a263 - store { ptr, i64, i64 } { ptr @.str.4834, i64 0, i64 0 }, ptr %a264 + store { ptr, i64, i64 } { ptr @.str.5041, i64 0, i64 0 }, ptr %a264 %t265 = getelementptr inbounds %S.gen.Plan, ptr %a261, i32 0, i32 3 %t266 = load i1, ptr %t265 - br i1 %t266, label %then7566, label %endif7568 -then7566: + br i1 %t266, label %then7959, label %endif7961 +then7959: %t267 = load ptr, ptr %a1 %t268 = load ptr, ptr %a1 %t269 = load %S.ast.Type, ptr %a219 @@ -76571,14 +80504,14 @@ then7566: %t276 = load ptr, ptr %a1 %t277 = load %S.ast.Type, ptr %a219 %t278 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t276, %S.ast.Type %t277) - store { ptr, i64, i64 } { ptr @.str.4835, i64 9, i64 0 }, ptr %a280 + store { ptr, i64, i64 } { ptr @.str.5042, i64 9, i64 0 }, ptr %a280 store { ptr, i64, i64 } %t278, ptr %a281 call void @finch_str_concat(ptr %a279, ptr %a280, ptr %a281) store { ptr, i64, i64 } %t278, ptr %a282 call void @finch_str_drop(ptr %a282) %t283 = load { ptr, i64, i64 }, ptr %a279 store { ptr, i64, i64 } %t283, ptr %a285 - store { ptr, i64, i64 } { ptr @.str.4836, i64 10, i64 0 }, ptr %a286 + store { ptr, i64, i64 } { ptr @.str.5043, i64 10, i64 0 }, ptr %a286 call void @finch_str_concat(ptr %a284, ptr %a285, ptr %a286) store { ptr, i64, i64 } %t283, ptr %a287 call void @finch_str_drop(ptr %a287) @@ -76594,14 +80527,14 @@ then7566: %t294 = load ptr, ptr %a1 %t295 = load %S.ast.Type, ptr %a219 %t296 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t294, %S.ast.Type %t295) - store { ptr, i64, i64 } { ptr @.str.4837, i64 9, i64 0 }, ptr %a298 + store { ptr, i64, i64 } { ptr @.str.5044, i64 9, i64 0 }, ptr %a298 store { ptr, i64, i64 } %t296, ptr %a299 call void @finch_str_concat(ptr %a297, ptr %a298, ptr %a299) store { ptr, i64, i64 } %t296, ptr %a300 call void @finch_str_drop(ptr %a300) %t301 = load { ptr, i64, i64 }, ptr %a297 store { ptr, i64, i64 } %t301, ptr %a303 - store { ptr, i64, i64 } { ptr @.str.4838, i64 11, i64 0 }, ptr %a304 + store { ptr, i64, i64 } { ptr @.str.5045, i64 11, i64 0 }, ptr %a304 call void @finch_str_concat(ptr %a302, ptr %a303, ptr %a304) store { ptr, i64, i64 } %t301, ptr %a305 call void @finch_str_drop(ptr %a305) @@ -76620,16 +80553,16 @@ then7566: %t316 = getelementptr inbounds { ptr, i64, i64 }, ptr %t315, i64 %t313 store { ptr, i64, i64 } %t312, ptr %t316 store i64 %t314, ptr %t293 - br label %endif7568 -endif7568: + br label %endif7961 +endif7961: store { ptr, i64, i64 } zeroinitializer, ptr %a317 %t318 = load ptr, ptr %a1 %t319 = icmp eq ptr %t318, null - br i1 %t319, label %panic7569, label %ok7570 -panic7569: - call void @finch_panic(ptr @.str.4839, i64 4466, ptr @.str.4840) + br i1 %t319, label %panic7962, label %ok7963 +panic7962: + call void @finch_panic(ptr @.str.5046, i64 4693, ptr @.str.5047) unreachable -ok7570: +ok7963: %t320 = getelementptr inbounds %S.gen.Gen, ptr %t318, i32 0, i32 11 %t321 = getelementptr inbounds { ptr, i64, i64 }, ptr %t320, i32 0, i32 1 %t322 = load i64, ptr %t321 @@ -76638,28 +80571,28 @@ ok7570: %t325 = getelementptr inbounds { ptr, i64, i64 }, ptr %t324, i32 0, i32 1 %t326 = load i64, ptr %t325 store i64 0, ptr %a327 - br label %for.cond7571 -for.cond7571: + br label %for.cond7964 +for.cond7964: %t328 = load i64, ptr %a327 %t329 = icmp slt i64 %t328, %t326 - br i1 %t329, label %for.body7572, label %for.end7574 -for.body7572: + br i1 %t329, label %for.body7965, label %for.end7967 +for.body7965: %t330 = load i64, ptr %a327 %t331 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 3 %t332 = getelementptr inbounds { ptr, i64, i64 }, ptr %t331, i32 0, i32 1 %t333 = load i64, ptr %t332 %t334 = icmp slt i64 %t330, %t333 - br i1 %t334, label %then7575, label %endif7577 -then7575: + br i1 %t334, label %then7968, label %endif7970 +then7968: %t335 = load i64, ptr %a327 %t336 = load { ptr, i64, i64 }, ptr %a225 %t337 = extractvalue { ptr, i64, i64 } %t336, 1 %t338 = icmp uge i64 %t335, %t337 - br i1 %t338, label %range7578, label %inrange7579 -range7578: - call void @finch_panic_index(ptr @.str.4841, i64 4469, i64 %t335, i64 %t337) + br i1 %t338, label %range7971, label %inrange7972 +range7971: + call void @finch_panic_index(ptr @.str.5048, i64 4696, i64 %t335, i64 %t337) unreachable -inrange7579: +inrange7972: %t339 = extractvalue { ptr, i64, i64 } %t336, 0 %t340 = getelementptr inbounds %S.ast.Type, ptr %t339, i64 %t335 %t341 = load %S.ast.Type, ptr %t340 @@ -76672,11 +80605,11 @@ inrange7579: %t348 = load { ptr, i64, i64 }, ptr %t346 %t349 = extractvalue { ptr, i64, i64 } %t348, 1 %t350 = icmp uge i64 %t347, %t349 - br i1 %t350, label %range7580, label %inrange7581 -range7580: - call void @finch_panic_index(ptr @.str.4842, i64 4470, i64 %t347, i64 %t349) + br i1 %t350, label %range7973, label %inrange7974 +range7973: + call void @finch_panic_index(ptr @.str.5049, i64 4697, i64 %t347, i64 %t349) unreachable -inrange7581: +inrange7974: %t351 = extractvalue { ptr, i64, i64 } %t348, 0 %t352 = getelementptr inbounds %S.gen.Abi, ptr %t351, i64 %t347 %t353 = load %S.gen.Abi, ptr %t352 @@ -76691,11 +80624,11 @@ inrange7581: %t362 = load { ptr, i64, i64 }, ptr %t360 %t363 = extractvalue { ptr, i64, i64 } %t362, 1 %t364 = icmp uge i64 %t361, %t363 - br i1 %t364, label %range7582, label %inrange7583 -range7582: - call void @finch_panic_index(ptr @.str.4843, i64 4471, i64 %t361, i64 %t363) + br i1 %t364, label %range7975, label %inrange7976 +range7975: + call void @finch_panic_index(ptr @.str.5050, i64 4698, i64 %t361, i64 %t363) unreachable -inrange7583: +inrange7976: %t365 = extractvalue { ptr, i64, i64 } %t362, 0 %t366 = getelementptr inbounds %S.ast.Node, ptr %t365, i64 %t361 %t367 = load %S.ast.Node, ptr %t366 @@ -76707,11 +80640,11 @@ inrange7583: %t373 = load { ptr, i64, i64 }, ptr %t371 %t374 = extractvalue { ptr, i64, i64 } %t373, 1 %t375 = icmp uge i64 %t372, %t374 - br i1 %t375, label %range7584, label %inrange7585 -range7584: - call void @finch_panic_index(ptr @.str.4844, i64 4471, i64 %t372, i64 %t374) + br i1 %t375, label %range7977, label %inrange7978 +range7977: + call void @finch_panic_index(ptr @.str.5051, i64 4698, i64 %t372, i64 %t374) unreachable -inrange7585: +inrange7978: %t376 = extractvalue { ptr, i64, i64 } %t373, 0 %t377 = getelementptr inbounds %S.ast.Node, ptr %t376, i64 %t372 %t378 = load %S.ast.Node, ptr %t377 @@ -76719,14 +80652,14 @@ inrange7585: %t380 = add i64 %t379, 1 call void @finch_str_from_int(ptr %a381, i64 %t380) %t382 = load { ptr, i64, i64 }, ptr %a381 - store { ptr, i64, i64 } { ptr @.str.4845, i64 9, i64 0 }, ptr %a384 + store { ptr, i64, i64 } { ptr @.str.5052, i64 9, i64 0 }, ptr %a384 store { ptr, i64, i64 } %t382, ptr %a385 call void @finch_str_concat(ptr %a383, ptr %a384, ptr %a385) store { ptr, i64, i64 } %t382, ptr %a386 call void @finch_str_drop(ptr %a386) %t387 = load { ptr, i64, i64 }, ptr %a383 store { ptr, i64, i64 } %t387, ptr %a389 - store { ptr, i64, i64 } { ptr @.str.4846, i64 4, i64 0 }, ptr %a390 + store { ptr, i64, i64 } { ptr @.str.5053, i64 4, i64 0 }, ptr %a390 call void @finch_str_concat(ptr %a388, ptr %a389, ptr %a390) store { ptr, i64, i64 } %t387, ptr %a391 call void @finch_str_drop(ptr %a391) @@ -76763,11 +80696,11 @@ inrange7585: %t415 = getelementptr inbounds %S.gen.Abi, ptr %a357, i32 0, i32 0 %t416 = load { ptr, i64, i64 }, ptr %t415 store { ptr, i64, i64 } %t416, ptr %a417 - store { ptr, i64, i64 } { ptr @.str.4847, i64 6, i64 0 }, ptr %a418 + store { ptr, i64, i64 } { ptr @.str.5054, i64 6, i64 0 }, ptr %a418 %t419 = call i32 @finch_str_eq(ptr %a417, ptr %a418) %t420 = icmp ne i32 %t419, 0 - br i1 %t420, label %then7586, label %else7587 -then7586: + br i1 %t420, label %then7979, label %else7980 +then7979: %t421 = load ptr, ptr %a1 %t422 = load ptr, ptr %a1 %t423 = load %S.ast.Type, ptr %a345 @@ -76789,14 +80722,14 @@ then7586: %t436 = load ptr, ptr %a1 %t437 = load %S.ast.Type, ptr %a345 %t438 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t436, %S.ast.Type %t437) - store { ptr, i64, i64 } { ptr @.str.4848, i64 10, i64 0 }, ptr %a440 + store { ptr, i64, i64 } { ptr @.str.5055, i64 10, i64 0 }, ptr %a440 store { ptr, i64, i64 } %t438, ptr %a441 call void @finch_str_concat(ptr %a439, ptr %a440, ptr %a441) store { ptr, i64, i64 } %t438, ptr %a442 call void @finch_str_drop(ptr %a442) %t443 = load { ptr, i64, i64 }, ptr %a439 store { ptr, i64, i64 } %t443, ptr %a445 - store { ptr, i64, i64 } { ptr @.str.4849, i64 8, i64 0 }, ptr %a446 + store { ptr, i64, i64 } { ptr @.str.5056, i64 8, i64 0 }, ptr %a446 call void @finch_str_concat(ptr %a444, ptr %a445, ptr %a446) store { ptr, i64, i64 } %t443, ptr %a447 call void @finch_str_drop(ptr %a447) @@ -76829,7 +80762,7 @@ then7586: %t469 = getelementptr inbounds { ptr, i64, i64 }, ptr %a263, i32 0, i32 1 %t470 = load { ptr, i64, i64 }, ptr %a459 store { ptr, i64, i64 } %t470, ptr %a472 - store { ptr, i64, i64 } { ptr @.str.4850, i64 1, i64 0 }, ptr %a473 + store { ptr, i64, i64 } { ptr @.str.5057, i64 1, i64 0 }, ptr %a473 call void @finch_str_concat(ptr %a471, ptr %a472, ptr %a473) %t474 = load { ptr, i64, i64 }, ptr %a471 %t475 = load { ptr, i64, i64 }, ptr %a427 @@ -76848,16 +80781,16 @@ then7586: store i64 %t482, ptr %t469 call void @finch_str_drop(ptr %a459) call void @finch_str_drop(ptr %a427) - br label %endif7588 -else7587: + br label %endif7981 +else7980: %t485 = getelementptr inbounds %S.gen.Abi, ptr %a357, i32 0, i32 0 %t486 = load { ptr, i64, i64 }, ptr %t485 store { ptr, i64, i64 } %t486, ptr %a487 - store { ptr, i64, i64 } { ptr @.str.4851, i64 8, i64 0 }, ptr %a488 + store { ptr, i64, i64 } { ptr @.str.5058, i64 8, i64 0 }, ptr %a488 %t489 = call i32 @finch_str_eq(ptr %a487, ptr %a488) %t490 = icmp ne i32 %t489, 0 - br i1 %t490, label %then7589, label %else7590 -then7589: + br i1 %t490, label %then7982, label %else7983 +then7982: %t491 = load ptr, ptr %a1 %t492 = load ptr, ptr %a1 %t493 = load %S.ast.Type, ptr %a345 @@ -76882,11 +80815,11 @@ then7589: call void @finch_arr_reserve(ptr %a262, i64 %t508, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t509 = load ptr, ptr %a262 %t510 = getelementptr inbounds { ptr, i64, i64 }, ptr %t509, i64 %t507 - store { ptr, i64, i64 } { ptr @.str.4852, i64 3, i64 0 }, ptr %t510 + store { ptr, i64, i64 } { ptr @.str.5059, i64 3, i64 0 }, ptr %t510 store i64 %t508, ptr %t506 %t511 = getelementptr inbounds { ptr, i64, i64 }, ptr %a263, i32 0, i32 1 %t512 = load { ptr, i64, i64 }, ptr %a497 - store { ptr, i64, i64 } { ptr @.str.4853, i64 4, i64 0 }, ptr %a514 + store { ptr, i64, i64 } { ptr @.str.5060, i64 4, i64 0 }, ptr %a514 store { ptr, i64, i64 } %t512, ptr %a515 call void @finch_str_concat(ptr %a513, ptr %a514, ptr %a515) %t516 = load { ptr, i64, i64 }, ptr %a513 @@ -76898,18 +80831,18 @@ then7589: store { ptr, i64, i64 } %t516, ptr %t520 store i64 %t518, ptr %t511 call void @finch_str_drop(ptr %a497) - br label %endif7591 -else7590: + br label %endif7984 +else7983: %t521 = getelementptr inbounds %S.gen.Abi, ptr %a357, i32 0, i32 0 %t522 = load { ptr, i64, i64 }, ptr %t521 store { ptr, i64, i64 } %t522, ptr %a523 - store { ptr, i64, i64 } { ptr @.str.4854, i64 6, i64 0 }, ptr %a524 + store { ptr, i64, i64 } { ptr @.str.5061, i64 6, i64 0 }, ptr %a524 %t525 = call i32 @finch_str_eq(ptr %a523, ptr %a524) %t526 = icmp ne i32 %t525, 0 - br i1 %t526, label %then7592, label %else7593 -then7592: + br i1 %t526, label %then7985, label %else7986 +then7985: %t527 = load ptr, ptr %a1 - %t528 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t527, { ptr, i64, i64 } { ptr @.str.4855, i64 9, i64 0 }) + %t528 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t527, { ptr, i64, i64 } { ptr @.str.5062, i64 9, i64 0 }) store { ptr, i64, i64 } %t528, ptr %a529 %t530 = load ptr, ptr %a1 %t531 = load ptr, ptr %a1 @@ -76925,34 +80858,34 @@ then7592: %t539 = getelementptr inbounds { ptr, i64, i64 }, ptr %t538, i32 0, i32 1 %t540 = load i64, ptr %t539 store i64 0, ptr %a541 - br label %for.cond7595 -for.cond7595: + br label %for.cond7988 +for.cond7988: %t542 = load i64, ptr %a541 %t543 = icmp slt i64 %t542, %t540 - br i1 %t543, label %for.body7596, label %for.end7598 -for.body7596: + br i1 %t543, label %for.body7989, label %for.end7991 +for.body7989: %t544 = load ptr, ptr %a1 %t545 = getelementptr inbounds %S.gen.Abi, ptr %a357, i32 0, i32 1 %t546 = load i64, ptr %a541 %t547 = load { ptr, i64, i64 }, ptr %t545 %t548 = extractvalue { ptr, i64, i64 } %t547, 1 %t549 = icmp uge i64 %t546, %t548 - br i1 %t549, label %range7599, label %inrange7600 -range7599: - call void @finch_panic_index(ptr @.str.4856, i64 4489, i64 %t546, i64 %t548) + br i1 %t549, label %range7992, label %inrange7993 +range7992: + call void @finch_panic_index(ptr @.str.5063, i64 4716, i64 %t546, i64 %t548) unreachable -inrange7600: +inrange7993: %t550 = extractvalue { ptr, i64, i64 } %t547, 0 %t551 = getelementptr inbounds { ptr, i64, i64 }, ptr %t550, i64 %t546 %t552 = load { ptr, i64, i64 }, ptr %t551 %t553 = load ptr, ptr %a1 %t554 = load { ptr, i64, i64 }, ptr %a529 - store { ptr, i64, i64 } { ptr @.str.4857, i64 31, i64 0 }, ptr %a556 + store { ptr, i64, i64 } { ptr @.str.5064, i64 31, i64 0 }, ptr %a556 store { ptr, i64, i64 } %t554, ptr %a557 call void @finch_str_concat(ptr %a555, ptr %a556, ptr %a557) %t558 = load { ptr, i64, i64 }, ptr %a555 store { ptr, i64, i64 } %t558, ptr %a560 - store { ptr, i64, i64 } { ptr @.str.4858, i64 6, i64 0 }, ptr %a561 + store { ptr, i64, i64 } { ptr @.str.5065, i64 6, i64 0 }, ptr %a561 call void @finch_str_concat(ptr %a559, ptr %a560, ptr %a561) store { ptr, i64, i64 } %t558, ptr %a562 call void @finch_str_drop(ptr %a562) @@ -76982,11 +80915,11 @@ inrange7600: %t582 = load { ptr, i64, i64 }, ptr %t580 %t583 = extractvalue { ptr, i64, i64 } %t582, 1 %t584 = icmp uge i64 %t581, %t583 - br i1 %t584, label %range7601, label %inrange7602 -range7601: - call void @finch_panic_index(ptr @.str.4859, i64 4490, i64 %t581, i64 %t583) + br i1 %t584, label %range7994, label %inrange7995 +range7994: + call void @finch_panic_index(ptr @.str.5066, i64 4717, i64 %t581, i64 %t583) unreachable -inrange7602: +inrange7995: %t585 = extractvalue { ptr, i64, i64 } %t582, 0 %t586 = getelementptr inbounds { ptr, i64, i64 }, ptr %t585, i64 %t581 %t587 = load { ptr, i64, i64 }, ptr %t586 @@ -77006,16 +80939,16 @@ inrange7602: %t598 = load { ptr, i64, i64 }, ptr %t596 %t599 = extractvalue { ptr, i64, i64 } %t598, 1 %t600 = icmp uge i64 %t597, %t599 - br i1 %t600, label %range7603, label %inrange7604 -range7603: - call void @finch_panic_index(ptr @.str.4860, i64 4491, i64 %t597, i64 %t599) + br i1 %t600, label %range7996, label %inrange7997 +range7996: + call void @finch_panic_index(ptr @.str.5067, i64 4718, i64 %t597, i64 %t599) unreachable -inrange7604: +inrange7997: %t601 = extractvalue { ptr, i64, i64 } %t598, 0 %t602 = getelementptr inbounds { ptr, i64, i64 }, ptr %t601, i64 %t597 %t603 = load { ptr, i64, i64 }, ptr %t602 store { ptr, i64, i64 } %t603, ptr %a605 - store { ptr, i64, i64 } { ptr @.str.4861, i64 1, i64 0 }, ptr %a606 + store { ptr, i64, i64 } { ptr @.str.5068, i64 1, i64 0 }, ptr %a606 call void @finch_str_concat(ptr %a604, ptr %a605, ptr %a606) %t607 = load { ptr, i64, i64 }, ptr %a604 %t608 = load { ptr, i64, i64 }, ptr %a578 @@ -77033,16 +80966,16 @@ inrange7604: store { ptr, i64, i64 } %t613, ptr %t617 store i64 %t615, ptr %t595 call void @finch_str_drop(ptr %a578) - br label %for.step7597 -for.step7597: + br label %for.step7990 +for.step7990: %t618 = load i64, ptr %a541 %t619 = add i64 %t618, 1 store i64 %t619, ptr %a541 - br label %for.cond7595 -for.end7598: + br label %for.cond7988 +for.end7991: call void @finch_str_drop(ptr %a529) - br label %endif7594 -else7593: + br label %endif7987 +else7986: %t620 = getelementptr inbounds { ptr, i64, i64 }, ptr %a262, i32 0, i32 1 %t621 = load ptr, ptr %a1 %t622 = load %S.ast.Type, ptr %a345 @@ -77068,17 +81001,17 @@ else7593: %t637 = getelementptr inbounds %S.ast.Type, ptr %a345, i32 0, i32 0 %t638 = load { ptr, i64, i64 }, ptr %t637 store { ptr, i64, i64 } %t638, ptr %a639 - store { ptr, i64, i64 } { ptr @.str.4862, i64 3, i64 0 }, ptr %a640 + store { ptr, i64, i64 } { ptr @.str.5069, i64 3, i64 0 }, ptr %a640 %t641 = call i32 @finch_str_eq(ptr %a639, ptr %a640) %t642 = icmp ne i32 %t641, 0 - br i1 %t642, label %then7605, label %else7606 -then7605: + br i1 %t642, label %then7998, label %else7999 +then7998: %t643 = getelementptr inbounds { ptr, i64, i64 }, ptr %a263, i32 0, i32 1 %t644 = load ptr, ptr %a1 %t645 = getelementptr inbounds %S.gen.Val, ptr %a403, i32 0, i32 0 %t646 = load { ptr, i64, i64 }, ptr %t645 %t647 = call { ptr, i64, i64 } @finch.gen.cstr(ptr %t644, { ptr, i64, i64 } %t646) - store { ptr, i64, i64 } { ptr @.str.4863, i64 4, i64 0 }, ptr %a649 + store { ptr, i64, i64 } { ptr @.str.5070, i64 4, i64 0 }, ptr %a649 store { ptr, i64, i64 } %t647, ptr %a650 call void @finch_str_concat(ptr %a648, ptr %a649, ptr %a650) store { ptr, i64, i64 } %t647, ptr %a651 @@ -77091,8 +81024,8 @@ then7605: %t656 = getelementptr inbounds { ptr, i64, i64 }, ptr %t655, i64 %t653 store { ptr, i64, i64 } %t652, ptr %t656 store i64 %t654, ptr %t643 - br label %endif7607 -else7606: + br label %endif8000 +else7999: %t657 = getelementptr inbounds { ptr, i64, i64 }, ptr %a263, i32 0, i32 1 %t658 = load ptr, ptr %a1 %t659 = load %S.ast.Type, ptr %a345 @@ -77109,7 +81042,7 @@ else7606: call void @finch_str_drop(ptr %a668) %t669 = load { ptr, i64, i64 }, ptr %a664 store { ptr, i64, i64 } %t669, ptr %a671 - store { ptr, i64, i64 } { ptr @.str.4864, i64 1, i64 0 }, ptr %a672 + store { ptr, i64, i64 } { ptr @.str.5071, i64 1, i64 0 }, ptr %a672 call void @finch_str_concat(ptr %a670, ptr %a671, ptr %a672) store { ptr, i64, i64 } %t669, ptr %a673 call void @finch_str_drop(ptr %a673) @@ -77129,30 +81062,30 @@ else7606: %t685 = getelementptr inbounds { ptr, i64, i64 }, ptr %t684, i64 %t682 store { ptr, i64, i64 } %t681, ptr %t685 store i64 %t683, ptr %t657 - br label %endif7607 -endif7607: - br label %endif7594 -endif7594: - br label %endif7591 -endif7591: - br label %endif7588 -endif7588: + br label %endif8000 +endif8000: + br label %endif7987 +endif7987: + br label %endif7984 +endif7984: + br label %endif7981 +endif7981: call void @finch.drop.S_gen_Val(ptr %a403) call void @finch.drop.S_gen_Abi(ptr %a357) call void @finch.drop.S_ast_Type(ptr %a345) - br label %for.step7573 -endif7577: + br label %for.step7966 +endif7970: %t686 = load ptr, ptr %a1 %t687 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t688 = load i64, ptr %a327 %t689 = load { ptr, i64, i64 }, ptr %t687 %t690 = extractvalue { ptr, i64, i64 } %t689, 1 %t691 = icmp uge i64 %t688, %t690 - br i1 %t691, label %range7608, label %inrange7609 -range7608: - call void @finch_panic_index(ptr @.str.4865, i64 4504, i64 %t688, i64 %t690) + br i1 %t691, label %range8001, label %inrange8002 +range8001: + call void @finch_panic_index(ptr @.str.5072, i64 4731, i64 %t688, i64 %t690) unreachable -inrange7609: +inrange8002: %t692 = extractvalue { ptr, i64, i64 } %t689, 0 %t693 = getelementptr inbounds %S.ast.Node, ptr %t692, i64 %t688 %t694 = load %S.ast.Node, ptr %t693 @@ -77167,28 +81100,28 @@ inrange7609: %t703 = getelementptr inbounds %S.ast.Type, ptr %a702, i32 0, i32 0 %t704 = load { ptr, i64, i64 }, ptr %t703 store { ptr, i64, i64 } %t704, ptr %a705 - store { ptr, i64, i64 } { ptr @.str.4866, i64 4, i64 0 }, ptr %a706 + store { ptr, i64, i64 } { ptr @.str.5073, i64 4, i64 0 }, ptr %a706 %t707 = call i32 @finch_str_eq(ptr %a705, ptr %a706) %t708 = icmp ne i32 %t707, 0 - br i1 %t708, label %then7610, label %endif7612 -then7610: + br i1 %t708, label %then8003, label %endif8005 +then8003: %t709 = load ptr, ptr %a1 %t710 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t711 = load i64, ptr %a327 %t712 = load { ptr, i64, i64 }, ptr %t710 %t713 = extractvalue { ptr, i64, i64 } %t712, 1 %t714 = icmp uge i64 %t711, %t713 - br i1 %t714, label %range7613, label %inrange7614 -range7613: - call void @finch_panic_index(ptr @.str.4867, i64 4507, i64 %t711, i64 %t713) + br i1 %t714, label %range8006, label %inrange8007 +range8006: + call void @finch_panic_index(ptr @.str.5074, i64 4734, i64 %t711, i64 %t713) unreachable -inrange7614: +inrange8007: %t715 = extractvalue { ptr, i64, i64 } %t712, 0 %t716 = getelementptr inbounds %S.ast.Node, ptr %t715, i64 %t711 %t717 = load %S.ast.Node, ptr %t716 - call void @finch.gen.fail(ptr %t709, %S.ast.Node %t717, { ptr, i64, i64 } { ptr @.str.4868, i64 23, i64 0 }) - br label %endif7612 -endif7612: + call void @finch.gen.fail(ptr %t709, %S.ast.Node %t717, { ptr, i64, i64 } { ptr @.str.5075, i64 23, i64 0 }) + br label %endif8005 +endif8005: %t718 = getelementptr inbounds { ptr, i64, i64 }, ptr %a317, i32 0, i32 1 %t719 = load %S.gen.Val, ptr %a696 store %S.gen.Val %t719, ptr %a720 @@ -77207,43 +81140,43 @@ endif7612: %t729 = getelementptr inbounds %S.ast.Type, ptr %a702, i32 0, i32 0 %t730 = load { ptr, i64, i64 }, ptr %t729 store { ptr, i64, i64 } %t730, ptr %a731 - store { ptr, i64, i64 } { ptr @.str.4869, i64 6, i64 0 }, ptr %a732 + store { ptr, i64, i64 } { ptr @.str.5076, i64 6, i64 0 }, ptr %a732 %t733 = call i32 @finch_str_eq(ptr %a731, ptr %a732) %t734 = icmp ne i32 %t733, 0 - br label %logic.from7615 -logic.from7615: - br i1 %t734, label %logic.end7617, label %logic.rhs7616 -logic.rhs7616: + br label %logic.from8008 +logic.from8008: + br i1 %t734, label %logic.end8010, label %logic.rhs8009 +logic.rhs8009: %t735 = getelementptr inbounds %S.ast.Type, ptr %a702, i32 0, i32 0 %t736 = load { ptr, i64, i64 }, ptr %t735 store { ptr, i64, i64 } %t736, ptr %a737 - store { ptr, i64, i64 } { ptr @.str.4870, i64 5, i64 0 }, ptr %a738 + store { ptr, i64, i64 } { ptr @.str.5077, i64 5, i64 0 }, ptr %a738 %t739 = call i32 @finch_str_eq(ptr %a737, ptr %a738) %t740 = icmp ne i32 %t739, 0 - br label %logic.rend7618 -logic.rend7618: - br label %logic.end7617 -logic.end7617: - %t741 = phi i1 [ true, %logic.from7615 ], [ %t740, %logic.rend7618 ] - br i1 %t741, label %then7619, label %endif7621 -then7619: + br label %logic.rend8011 +logic.rend8011: + br label %logic.end8010 +logic.end8010: + %t741 = phi i1 [ true, %logic.from8008 ], [ %t740, %logic.rend8011 ] + br i1 %t741, label %then8012, label %endif8014 +then8012: %t742 = load ptr, ptr %a1 %t743 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t744 = load i64, ptr %a327 %t745 = load { ptr, i64, i64 }, ptr %t743 %t746 = extractvalue { ptr, i64, i64 } %t745, 1 %t747 = icmp uge i64 %t744, %t746 - br i1 %t747, label %range7622, label %inrange7623 -range7622: - call void @finch_panic_index(ptr @.str.4871, i64 4512, i64 %t744, i64 %t746) + br i1 %t747, label %range8015, label %inrange8016 +range8015: + call void @finch_panic_index(ptr @.str.5078, i64 4739, i64 %t744, i64 %t746) unreachable -inrange7623: +inrange8016: %t748 = extractvalue { ptr, i64, i64 } %t745, 0 %t749 = getelementptr inbounds %S.ast.Node, ptr %t748, i64 %t744 %t750 = load %S.ast.Node, ptr %t749 - call void @finch.gen.fail(ptr %t742, %S.ast.Node %t750, { ptr, i64, i64 } { ptr @.str.4872, i64 68, i64 0 }) - br label %endif7621 -endif7621: + call void @finch.gen.fail(ptr %t742, %S.ast.Node %t750, { ptr, i64, i64 } { ptr @.str.5079, i64 68, i64 0 }) + br label %endif8014 +endif8014: %t751 = getelementptr inbounds %S.gen.Val, ptr %a696, i32 0, i32 0 %t752 = load { ptr, i64, i64 }, ptr %t751 store { ptr, i64, i64 } %t752, ptr %a753 @@ -77253,15 +81186,15 @@ endif7621: %t757 = getelementptr inbounds %S.ast.Type, ptr %a702, i32 0, i32 0 %t758 = load { ptr, i64, i64 }, ptr %t757 store { ptr, i64, i64 } %t758, ptr %a759 - store { ptr, i64, i64 } { ptr @.str.4873, i64 3, i64 0 }, ptr %a760 + store { ptr, i64, i64 } { ptr @.str.5080, i64 3, i64 0 }, ptr %a760 %t761 = call i32 @finch_str_eq(ptr %a759, ptr %a760) %t762 = icmp ne i32 %t761, 0 - br i1 %t762, label %then7624, label %else7625 -then7624: + br i1 %t762, label %then8017, label %else8018 +then8017: %t763 = load ptr, ptr %a1 %t764 = load { ptr, i64, i64 }, ptr %a756 %t765 = load %S.ast.Type, ptr %a702 - %t766 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4874, i64 5, i64 0 }) + %t766 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5081, i64 5, i64 0 }) %t767 = call { ptr, i64, i64 } @finch.gen.floatCast(ptr %t763, { ptr, i64, i64 } %t764, %S.ast.Type %t765, %S.ast.Type %t766) store %S.ast.Type %t766, ptr %a768 call void @finch.drop.S_ast_Type(ptr %a768) @@ -77269,21 +81202,21 @@ then7624: store { ptr, i64, i64 } %t767, ptr %a756 store { ptr, i64, i64 } %t769, ptr %a770 call void @finch_str_drop(ptr %a770) - %t771 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4875, i64 5, i64 0 }) + %t771 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5082, i64 5, i64 0 }) %t772 = load %S.ast.Type, ptr %a702 store %S.ast.Type %t771, ptr %a702 store %S.ast.Type %t772, ptr %a773 call void @finch.drop.S_ast_Type(ptr %a773) - br label %endif7626 -else7625: + br label %endif8019 +else8018: %t774 = getelementptr inbounds %S.ast.Type, ptr %a702, i32 0, i32 0 %t775 = load { ptr, i64, i64 }, ptr %t774 store { ptr, i64, i64 } %t775, ptr %a776 - store { ptr, i64, i64 } { ptr @.str.4876, i64 3, i64 0 }, ptr %a777 + store { ptr, i64, i64 } { ptr @.str.5083, i64 3, i64 0 }, ptr %a777 %t778 = call i32 @finch_str_eq(ptr %a776, ptr %a777) %t779 = icmp ne i32 %t778, 0 - br i1 %t779, label %then7627, label %else7628 -then7627: + br i1 %t779, label %then8020, label %else8021 +then8020: %t780 = load ptr, ptr %a1 %t781 = load { ptr, i64, i64 }, ptr %a756 %t782 = call { ptr, i64, i64 } @finch.gen.cstr(ptr %t780, { ptr, i64, i64 } %t781) @@ -77291,30 +81224,30 @@ then7627: store { ptr, i64, i64 } %t782, ptr %a756 store { ptr, i64, i64 } %t783, ptr %a784 call void @finch_str_drop(ptr %a784) - %t785 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4877, i64 3, i64 0 }) + %t785 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5084, i64 3, i64 0 }) %t786 = load %S.ast.Type, ptr %a702 store %S.ast.Type %t785, ptr %a702 store %S.ast.Type %t786, ptr %a787 call void @finch.drop.S_ast_Type(ptr %a787) - br label %endif7629 -else7628: + br label %endif8022 +else8021: %t788 = getelementptr inbounds %S.ast.Type, ptr %a702, i32 0, i32 0 %t789 = load { ptr, i64, i64 }, ptr %t788 store { ptr, i64, i64 } %t789, ptr %a790 - store { ptr, i64, i64 } { ptr @.str.4878, i64 4, i64 0 }, ptr %a791 + store { ptr, i64, i64 } { ptr @.str.5085, i64 4, i64 0 }, ptr %a791 %t792 = call i32 @finch_str_eq(ptr %a790, ptr %a791) %t793 = icmp ne i32 %t792, 0 - br i1 %t793, label %then7630, label %else7631 -then7630: + br i1 %t793, label %then8023, label %else8024 +then8023: %t794 = load ptr, ptr %a1 %t795 = getelementptr inbounds %S.gen.Val, ptr %a696, i32 0, i32 0 %t796 = load { ptr, i64, i64 }, ptr %t795 - store { ptr, i64, i64 } { ptr @.str.4879, i64 8, i64 0 }, ptr %a798 + store { ptr, i64, i64 } { ptr @.str.5086, i64 8, i64 0 }, ptr %a798 store { ptr, i64, i64 } %t796, ptr %a799 call void @finch_str_concat(ptr %a797, ptr %a798, ptr %a799) %t800 = load { ptr, i64, i64 }, ptr %a797 store { ptr, i64, i64 } %t800, ptr %a802 - store { ptr, i64, i64 } { ptr @.str.4880, i64 7, i64 0 }, ptr %a803 + store { ptr, i64, i64 } { ptr @.str.5087, i64 7, i64 0 }, ptr %a803 call void @finch_str_concat(ptr %a801, ptr %a802, ptr %a803) store { ptr, i64, i64 } %t800, ptr %a804 call void @finch_str_drop(ptr %a804) @@ -77326,48 +81259,48 @@ then7630: store { ptr, i64, i64 } %t806, ptr %a756 store { ptr, i64, i64 } %t808, ptr %a809 call void @finch_str_drop(ptr %a809) - %t810 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4881, i64 3, i64 0 }) + %t810 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5088, i64 3, i64 0 }) %t811 = load %S.ast.Type, ptr %a702 store %S.ast.Type %t810, ptr %a702 store %S.ast.Type %t811, ptr %a812 call void @finch.drop.S_ast_Type(ptr %a812) - br label %endif7632 -else7631: + br label %endif8025 +else8024: %t813 = load %S.ast.Type, ptr %a702 %t814 = call i1 @finch.gen.isInt(%S.ast.Type %t813) - br label %logic.from7633 -logic.from7633: - br i1 %t814, label %logic.end7635, label %logic.rhs7634 -logic.rhs7634: + br label %logic.from8026 +logic.from8026: + br i1 %t814, label %logic.end8028, label %logic.rhs8027 +logic.rhs8027: %t815 = getelementptr inbounds %S.ast.Type, ptr %a702, i32 0, i32 0 %t816 = load { ptr, i64, i64 }, ptr %t815 store { ptr, i64, i64 } %t816, ptr %a817 - store { ptr, i64, i64 } { ptr @.str.4882, i64 4, i64 0 }, ptr %a818 + store { ptr, i64, i64 } { ptr @.str.5089, i64 4, i64 0 }, ptr %a818 %t819 = call i32 @finch_str_eq(ptr %a817, ptr %a818) %t820 = icmp ne i32 %t819, 0 - br label %logic.rend7636 -logic.rend7636: - br label %logic.end7635 -logic.end7635: - %t821 = phi i1 [ true, %logic.from7633 ], [ %t820, %logic.rend7636 ] - br label %logic.from7637 -logic.from7637: - br i1 %t821, label %logic.rhs7638, label %logic.end7639 -logic.rhs7638: + br label %logic.rend8029 +logic.rend8029: + br label %logic.end8028 +logic.end8028: + %t821 = phi i1 [ true, %logic.from8026 ], [ %t820, %logic.rend8029 ] + br label %logic.from8030 +logic.from8030: + br i1 %t821, label %logic.rhs8031, label %logic.end8032 +logic.rhs8031: %t822 = load %S.ast.Type, ptr %a702 %t823 = call i64 @finch.gen.bitsOf(%S.ast.Type %t822) %t824 = icmp slt i64 %t823, 32 - br label %logic.rend7640 -logic.rend7640: - br label %logic.end7639 -logic.end7639: - %t825 = phi i1 [ false, %logic.from7637 ], [ %t824, %logic.rend7640 ] - br i1 %t825, label %then7641, label %endif7643 -then7641: + br label %logic.rend8033 +logic.rend8033: + br label %logic.end8032 +logic.end8032: + %t825 = phi i1 [ false, %logic.from8030 ], [ %t824, %logic.rend8033 ] + br i1 %t825, label %then8034, label %endif8036 +then8034: %t826 = load ptr, ptr %a1 %t827 = load { ptr, i64, i64 }, ptr %a756 %t828 = load %S.ast.Type, ptr %a702 - %t829 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4883, i64 3, i64 0 }) + %t829 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5090, i64 3, i64 0 }) %t830 = call { ptr, i64, i64 } @finch.gen.intCast(ptr %t826, { ptr, i64, i64 } %t827, %S.ast.Type %t828, %S.ast.Type %t829) store %S.ast.Type %t829, ptr %a831 call void @finch.drop.S_ast_Type(ptr %a831) @@ -77375,25 +81308,25 @@ then7641: store { ptr, i64, i64 } %t830, ptr %a756 store { ptr, i64, i64 } %t832, ptr %a833 call void @finch_str_drop(ptr %a833) - %t834 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4884, i64 3, i64 0 }) + %t834 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5091, i64 3, i64 0 }) %t835 = load %S.ast.Type, ptr %a702 store %S.ast.Type %t834, ptr %a702 store %S.ast.Type %t835, ptr %a836 call void @finch.drop.S_ast_Type(ptr %a836) - br label %endif7643 -endif7643: - br label %endif7632 -endif7632: - br label %endif7629 -endif7629: - br label %endif7626 -endif7626: + br label %endif8036 +endif8036: + br label %endif8025 +endif8025: + br label %endif8022 +endif8022: + br label %endif8019 +endif8019: %t837 = getelementptr inbounds { ptr, i64, i64 }, ptr %a263, i32 0, i32 1 %t838 = load ptr, ptr %a1 %t839 = load %S.ast.Type, ptr %a702 %t840 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t838, %S.ast.Type %t839) store { ptr, i64, i64 } %t840, ptr %a842 - store { ptr, i64, i64 } { ptr @.str.4885, i64 1, i64 0 }, ptr %a843 + store { ptr, i64, i64 } { ptr @.str.5092, i64 1, i64 0 }, ptr %a843 call void @finch_str_concat(ptr %a841, ptr %a842, ptr %a843) store { ptr, i64, i64 } %t840, ptr %a844 call void @finch_str_drop(ptr %a844) @@ -77415,29 +81348,29 @@ endif7626: call void @finch_str_drop(ptr %a756) call void @finch.drop.S_ast_Type(ptr %a702) call void @finch.drop.S_gen_Val(ptr %a696) - br label %for.step7573 -for.step7573: + br label %for.step7966 +for.step7966: %t856 = load i64, ptr %a327 %t857 = add i64 %t856, 1 store i64 %t857, ptr %a327 - br label %for.cond7571 -for.end7574: + br label %for.cond7964 +for.end7967: %t858 = getelementptr inbounds %S.gen.Plan, ptr %a261, i32 0, i32 2 %t859 = load { ptr, i64, i64 }, ptr %t858 store { ptr, i64, i64 } %t859, ptr %a860 call void @finch_str_copy(ptr %a861, ptr %a860) %t862 = load { ptr, i64, i64 }, ptr %a861 store { ptr, i64, i64 } %t862, ptr %a863 - store { ptr, i64, i64 } { ptr @.str.4886, i64 0, i64 0 }, ptr %a864 + store { ptr, i64, i64 } { ptr @.str.5093, i64 0, i64 0 }, ptr %a864 %t865 = getelementptr inbounds %S.gen.Plan, ptr %a261, i32 0, i32 0 %t866 = getelementptr inbounds %S.gen.Abi, ptr %t865, i32 0, i32 0 %t867 = load { ptr, i64, i64 }, ptr %t866 store { ptr, i64, i64 } %t867, ptr %a868 - store { ptr, i64, i64 } { ptr @.str.4887, i64 6, i64 0 }, ptr %a869 + store { ptr, i64, i64 } { ptr @.str.5094, i64 6, i64 0 }, ptr %a869 %t870 = call i32 @finch_str_eq(ptr %a868, ptr %a869) %t871 = icmp ne i32 %t870, 0 - br i1 %t871, label %then7644, label %endif7646 -then7644: + br i1 %t871, label %then8037, label %endif8039 +then8037: %t872 = load ptr, ptr %a1 %t873 = load %S.ast.Type, ptr %a219 %t874 = call { ptr, i64, i64 } @finch.gen.cExt(ptr %t872, %S.ast.Type %t873) @@ -77445,42 +81378,42 @@ then7644: store { ptr, i64, i64 } %t874, ptr %a864 store { ptr, i64, i64 } %t875, ptr %a876 call void @finch_str_drop(ptr %a876) - br label %endif7646 -endif7646: - store { ptr, i64, i64 } { ptr @.str.4888, i64 0, i64 0 }, ptr %a877 + br label %endif8039 +endif8039: + store { ptr, i64, i64 } { ptr @.str.5095, i64 0, i64 0 }, ptr %a877 %t878 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 4 %t879 = load i1, ptr %t878 - br i1 %t879, label %then7647, label %endif7649 -then7647: + br i1 %t879, label %then8040, label %endif8042 +then8040: %t880 = load { ptr, i64, i64 }, ptr %a877 - store { ptr, i64, i64 } { ptr @.str.4889, i64 5, i64 0 }, ptr %a877 + store { ptr, i64, i64 } { ptr @.str.5096, i64 5, i64 0 }, ptr %a877 store { ptr, i64, i64 } %t880, ptr %a881 call void @finch_str_drop(ptr %a881) %t882 = getelementptr inbounds { ptr, i64, i64 }, ptr %a262, i32 0, i32 1 %t883 = load i64, ptr %t882 %t884 = icmp eq i64 %t883, 0 - br i1 %t884, label %then7650, label %endif7652 -then7650: + br i1 %t884, label %then8043, label %endif8045 +then8043: %t885 = load { ptr, i64, i64 }, ptr %a877 - store { ptr, i64, i64 } { ptr @.str.4890, i64 3, i64 0 }, ptr %a877 + store { ptr, i64, i64 } { ptr @.str.5097, i64 3, i64 0 }, ptr %a877 store { ptr, i64, i64 } %t885, ptr %a886 call void @finch_str_drop(ptr %a886) - br label %endif7652 -endif7652: - br label %endif7649 -endif7649: + br label %endif8045 +endif8045: + br label %endif8042 +endif8042: %t887 = load ptr, ptr %a1 %t888 = icmp eq ptr %t887, null - br i1 %t888, label %panic7653, label %ok7654 -panic7653: - call void @finch_panic(ptr @.str.4891, i64 4543, ptr @.str.4892) + br i1 %t888, label %panic8046, label %ok8047 +panic8046: + call void @finch_panic(ptr @.str.5098, i64 4770, ptr @.str.5099) unreachable -ok7654: - %t889 = getelementptr inbounds %S.gen.Gen, ptr %t887, i32 0, i32 39 +ok8047: + %t889 = getelementptr inbounds %S.gen.Gen, ptr %t887, i32 0, i32 40 %t890 = getelementptr inbounds { ptr, i64, i64 }, ptr %t889, i32 0, i32 1 %t891 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 0 %t892 = load { ptr, i64, i64 }, ptr %t891 - store { ptr, i64, i64 } { ptr @.str.4893, i64 2, i64 0 }, ptr %a894 + store { ptr, i64, i64 } { ptr @.str.5100, i64 2, i64 0 }, ptr %a894 store { ptr, i64, i64 } %t892, ptr %a895 call void @finch_str_concat(ptr %a893, ptr %a894, ptr %a895) %t896 = load { ptr, i64, i64 }, ptr %a893 @@ -77488,46 +81421,46 @@ ok7654: %t898 = load i64, ptr %t890 %t899 = load ptr, ptr %t889 store i64 0, ptr %a900 - br label %find.cond7655 -find.cond7655: + br label %find.cond8048 +find.cond8048: %t901 = load i64, ptr %a900 %t902 = icmp slt i64 %t901, %t898 - br i1 %t902, label %find.body7656, label %find.end7659 -find.body7656: + br i1 %t902, label %find.body8049, label %find.end8052 +find.body8049: %t903 = getelementptr inbounds { ptr, i64, i64 }, ptr %t899, i64 %t901 %t904 = load { ptr, i64, i64 }, ptr %t903 store { ptr, i64, i64 } %t904, ptr %a905 store { ptr, i64, i64 } %t896, ptr %a906 %t907 = call i32 @finch_str_eq(ptr %a905, ptr %a906) %t908 = icmp ne i32 %t907, 0 - br i1 %t908, label %find.hit7657, label %find.next7658 -find.hit7657: + br i1 %t908, label %find.hit8050, label %find.next8051 +find.hit8050: store i64 %t901, ptr %a897 - br label %find.end7659 -find.next7658: + br label %find.end8052 +find.next8051: %t909 = add i64 %t901, 1 store i64 %t909, ptr %a900 - br label %find.cond7655 -find.end7659: + br label %find.cond8048 +find.end8052: store { ptr, i64, i64 } %t896, ptr %a910 call void @finch_str_drop(ptr %a910) %t911 = load i64, ptr %a897 %t912 = icmp sge i64 %t911, 0 %t913 = xor i1 %t912, true - br i1 %t913, label %then7660, label %endif7662 -then7660: + br i1 %t913, label %then8053, label %endif8055 +then8053: %t914 = load ptr, ptr %a1 %t915 = icmp eq ptr %t914, null - br i1 %t915, label %panic7663, label %ok7664 -panic7663: - call void @finch_panic(ptr @.str.4894, i64 4544, ptr @.str.4895) + br i1 %t915, label %panic8056, label %ok8057 +panic8056: + call void @finch_panic(ptr @.str.5101, i64 4771, ptr @.str.5102) unreachable -ok7664: - %t916 = getelementptr inbounds %S.gen.Gen, ptr %t914, i32 0, i32 39 +ok8057: + %t916 = getelementptr inbounds %S.gen.Gen, ptr %t914, i32 0, i32 40 %t917 = getelementptr inbounds { ptr, i64, i64 }, ptr %t916, i32 0, i32 1 %t918 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 0 %t919 = load { ptr, i64, i64 }, ptr %t918 - store { ptr, i64, i64 } { ptr @.str.4896, i64 2, i64 0 }, ptr %a921 + store { ptr, i64, i64 } { ptr @.str.5103, i64 2, i64 0 }, ptr %a921 store { ptr, i64, i64 } %t919, ptr %a922 call void @finch_str_concat(ptr %a920, ptr %a921, ptr %a922) %t923 = load { ptr, i64, i64 }, ptr %a920 @@ -77542,24 +81475,24 @@ ok7664: %t929 = load { ptr, i64, i64 }, ptr %t928 %t930 = call i1 @finch.gen.runtimeDeclares({ ptr, i64, i64 } %t929) %t931 = xor i1 %t930, true - br i1 %t931, label %then7665, label %endif7667 -then7665: + br i1 %t931, label %then8058, label %endif8060 +then8058: %t932 = load ptr, ptr %a1 %t933 = icmp eq ptr %t932, null - br i1 %t933, label %panic7668, label %ok7669 -panic7668: - call void @finch_panic(ptr @.str.4897, i64 4546, ptr @.str.4898) + br i1 %t933, label %panic8061, label %ok8062 +panic8061: + call void @finch_panic(ptr @.str.5104, i64 4773, ptr @.str.5105) unreachable -ok7669: +ok8062: %t934 = getelementptr inbounds %S.gen.Gen, ptr %t932, i32 0, i32 2 %t935 = getelementptr inbounds { ptr, i64, i64 }, ptr %t934, i32 0, i32 1 %t936 = load { ptr, i64, i64 }, ptr %a864 - store { ptr, i64, i64 } { ptr @.str.4899, i64 7, i64 0 }, ptr %a938 + store { ptr, i64, i64 } { ptr @.str.5106, i64 7, i64 0 }, ptr %a938 store { ptr, i64, i64 } %t936, ptr %a939 call void @finch_str_concat(ptr %a937, ptr %a938, ptr %a939) %t940 = load { ptr, i64, i64 }, ptr %a937 store { ptr, i64, i64 } %t940, ptr %a942 - store { ptr, i64, i64 } { ptr @.str.4900, i64 1, i64 0 }, ptr %a943 + store { ptr, i64, i64 } { ptr @.str.5107, i64 1, i64 0 }, ptr %a943 call void @finch_str_concat(ptr %a941, ptr %a942, ptr %a943) store { ptr, i64, i64 } %t940, ptr %a944 call void @finch_str_drop(ptr %a944) @@ -77572,7 +81505,7 @@ ok7669: call void @finch_str_drop(ptr %a950) %t951 = load { ptr, i64, i64 }, ptr %a947 store { ptr, i64, i64 } %t951, ptr %a953 - store { ptr, i64, i64 } { ptr @.str.4901, i64 2, i64 0 }, ptr %a954 + store { ptr, i64, i64 } { ptr @.str.5108, i64 2, i64 0 }, ptr %a954 call void @finch_str_concat(ptr %a952, ptr %a953, ptr %a954) store { ptr, i64, i64 } %t951, ptr %a955 call void @finch_str_drop(ptr %a955) @@ -77586,13 +81519,13 @@ ok7669: call void @finch_str_drop(ptr %a962) %t963 = load { ptr, i64, i64 }, ptr %a959 store { ptr, i64, i64 } %t963, ptr %a965 - store { ptr, i64, i64 } { ptr @.str.4902, i64 1, i64 0 }, ptr %a966 + store { ptr, i64, i64 } { ptr @.str.5109, i64 1, i64 0 }, ptr %a966 call void @finch_str_concat(ptr %a964, ptr %a965, ptr %a966) store { ptr, i64, i64 } %t963, ptr %a967 call void @finch_str_drop(ptr %a967) %t968 = load { ptr, i64, i64 }, ptr %a964 %t969 = getelementptr inbounds { ptr, i64, i64 }, ptr %a262, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.4903, i64 2, i64 0 }, ptr %a970 + store { ptr, i64, i64 } { ptr @.str.5110, i64 2, i64 0 }, ptr %a970 call void @finch_str_join(ptr %a971, ptr %a262, ptr %a970) %t972 = load { ptr, i64, i64 }, ptr %a971 store { ptr, i64, i64 } %t968, ptr %a974 @@ -77611,7 +81544,7 @@ ok7669: call void @finch_str_drop(ptr %a983) %t984 = load { ptr, i64, i64 }, ptr %a980 store { ptr, i64, i64 } %t984, ptr %a986 - store { ptr, i64, i64 } { ptr @.str.4904, i64 1, i64 0 }, ptr %a987 + store { ptr, i64, i64 } { ptr @.str.5111, i64 1, i64 0 }, ptr %a987 call void @finch_str_concat(ptr %a985, ptr %a986, ptr %a987) store { ptr, i64, i64 } %t984, ptr %a988 call void @finch_str_drop(ptr %a988) @@ -77623,20 +81556,20 @@ ok7669: %t993 = getelementptr inbounds { ptr, i64, i64 }, ptr %t992, i64 %t990 store { ptr, i64, i64 } %t989, ptr %t993 store i64 %t991, ptr %t935 - br label %endif7667 -endif7667: - br label %endif7662 -endif7662: - store { ptr, i64, i64 } { ptr @.str.4905, i64 0, i64 0 }, ptr %a994 + br label %endif8060 +endif8060: + br label %endif8055 +endif8055: + store { ptr, i64, i64 } { ptr @.str.5112, i64 0, i64 0 }, ptr %a994 %t995 = getelementptr inbounds %S.cimport.CFunc, ptr %a3, i32 0, i32 4 %t996 = load i1, ptr %t995 - br i1 %t996, label %then7670, label %endif7672 -then7670: + br i1 %t996, label %then8063, label %endif8065 +then8063: %t997 = getelementptr inbounds { ptr, i64, i64 }, ptr %a262, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.4907, i64 2, i64 0 }, ptr %a998 + store { ptr, i64, i64 } { ptr @.str.5114, i64 2, i64 0 }, ptr %a998 call void @finch_str_join(ptr %a999, ptr %a262, ptr %a998) %t1000 = load { ptr, i64, i64 }, ptr %a999 - store { ptr, i64, i64 } { ptr @.str.4906, i64 2, i64 0 }, ptr %a1002 + store { ptr, i64, i64 } { ptr @.str.5113, i64 2, i64 0 }, ptr %a1002 store { ptr, i64, i64 } %t1000, ptr %a1003 call void @finch_str_concat(ptr %a1001, ptr %a1002, ptr %a1003) store { ptr, i64, i64 } %t1000, ptr %a1004 @@ -77650,7 +81583,7 @@ then7670: call void @finch_str_drop(ptr %a1010) %t1011 = load { ptr, i64, i64 }, ptr %a1007 store { ptr, i64, i64 } %t1011, ptr %a1013 - store { ptr, i64, i64 } { ptr @.str.4908, i64 1, i64 0 }, ptr %a1014 + store { ptr, i64, i64 } { ptr @.str.5115, i64 1, i64 0 }, ptr %a1014 call void @finch_str_concat(ptr %a1012, ptr %a1013, ptr %a1014) store { ptr, i64, i64 } %t1011, ptr %a1015 call void @finch_str_drop(ptr %a1015) @@ -77659,15 +81592,15 @@ then7670: store { ptr, i64, i64 } %t1016, ptr %a994 store { ptr, i64, i64 } %t1017, ptr %a1018 call void @finch_str_drop(ptr %a1018) - br label %endif7672 -endif7672: + br label %endif8065 +endif8065: %t1019 = load { ptr, i64, i64 }, ptr %a864 - store { ptr, i64, i64 } { ptr @.str.4909, i64 4, i64 0 }, ptr %a1021 + store { ptr, i64, i64 } { ptr @.str.5116, i64 4, i64 0 }, ptr %a1021 store { ptr, i64, i64 } %t1019, ptr %a1022 call void @finch_str_concat(ptr %a1020, ptr %a1021, ptr %a1022) %t1023 = load { ptr, i64, i64 }, ptr %a1020 store { ptr, i64, i64 } %t1023, ptr %a1025 - store { ptr, i64, i64 } { ptr @.str.4910, i64 1, i64 0 }, ptr %a1026 + store { ptr, i64, i64 } { ptr @.str.5117, i64 1, i64 0 }, ptr %a1026 call void @finch_str_concat(ptr %a1024, ptr %a1025, ptr %a1026) store { ptr, i64, i64 } %t1023, ptr %a1027 call void @finch_str_drop(ptr %a1027) @@ -77687,7 +81620,7 @@ endif7672: call void @finch_str_drop(ptr %a1039) %t1040 = load { ptr, i64, i64 }, ptr %a1036 store { ptr, i64, i64 } %t1040, ptr %a1042 - store { ptr, i64, i64 } { ptr @.str.4911, i64 2, i64 0 }, ptr %a1043 + store { ptr, i64, i64 } { ptr @.str.5118, i64 2, i64 0 }, ptr %a1043 call void @finch_str_concat(ptr %a1041, ptr %a1042, ptr %a1043) store { ptr, i64, i64 } %t1040, ptr %a1044 call void @finch_str_drop(ptr %a1044) @@ -77701,13 +81634,13 @@ endif7672: call void @finch_str_drop(ptr %a1051) %t1052 = load { ptr, i64, i64 }, ptr %a1048 store { ptr, i64, i64 } %t1052, ptr %a1054 - store { ptr, i64, i64 } { ptr @.str.4912, i64 1, i64 0 }, ptr %a1055 + store { ptr, i64, i64 } { ptr @.str.5119, i64 1, i64 0 }, ptr %a1055 call void @finch_str_concat(ptr %a1053, ptr %a1054, ptr %a1055) store { ptr, i64, i64 } %t1052, ptr %a1056 call void @finch_str_drop(ptr %a1056) %t1057 = load { ptr, i64, i64 }, ptr %a1053 %t1058 = getelementptr inbounds { ptr, i64, i64 }, ptr %a263, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.4913, i64 2, i64 0 }, ptr %a1059 + store { ptr, i64, i64 } { ptr @.str.5120, i64 2, i64 0 }, ptr %a1059 call void @finch_str_join(ptr %a1060, ptr %a263, ptr %a1059) %t1061 = load { ptr, i64, i64 }, ptr %a1060 store { ptr, i64, i64 } %t1057, ptr %a1063 @@ -77719,7 +81652,7 @@ endif7672: call void @finch_str_drop(ptr %a1066) %t1067 = load { ptr, i64, i64 }, ptr %a1062 store { ptr, i64, i64 } %t1067, ptr %a1069 - store { ptr, i64, i64 } { ptr @.str.4914, i64 1, i64 0 }, ptr %a1070 + store { ptr, i64, i64 } { ptr @.str.5121, i64 1, i64 0 }, ptr %a1070 call void @finch_str_concat(ptr %a1068, ptr %a1069, ptr %a1070) store { ptr, i64, i64 } %t1067, ptr %a1071 call void @finch_str_drop(ptr %a1071) @@ -77728,11 +81661,11 @@ endif7672: %t1074 = getelementptr inbounds %S.ast.Type, ptr %a219, i32 0, i32 0 %t1075 = load { ptr, i64, i64 }, ptr %t1074 store { ptr, i64, i64 } %t1075, ptr %a1076 - store { ptr, i64, i64 } { ptr @.str.4915, i64 4, i64 0 }, ptr %a1077 + store { ptr, i64, i64 } { ptr @.str.5122, i64 4, i64 0 }, ptr %a1077 %t1078 = call i32 @finch_str_eq(ptr %a1076, ptr %a1077) %t1079 = icmp ne i32 %t1078, 0 - br i1 %t1079, label %then7673, label %endif7675 -then7673: + br i1 %t1079, label %then8066, label %endif8068 +then8066: %t1080 = load ptr, ptr %a1 %t1081 = load { ptr, i64, i64 }, ptr %a1073 call void @finch.gen.emit(ptr %t1080, { ptr, i64, i64 } %t1081) @@ -77758,11 +81691,11 @@ then7673: call void @finch.drop.arr_S_ast_Type(ptr %a225) call void @finch.drop.S_ast_Type(ptr %a219) ret %S.gen.Val %t1089 -endif7675: +endif8068: %t1090 = getelementptr inbounds %S.gen.Plan, ptr %a261, i32 0, i32 3 %t1091 = load i1, ptr %t1090 - br i1 %t1091, label %then7676, label %endif7678 -then7676: + br i1 %t1091, label %then8069, label %endif8071 +then8069: %t1092 = load ptr, ptr %a1 %t1093 = load { ptr, i64, i64 }, ptr %a1073 call void @finch.gen.emit(ptr %t1092, { ptr, i64, i64 } %t1093) @@ -77797,7 +81730,7 @@ then7676: call void @finch.drop.arr_S_ast_Type(ptr %a225) call void @finch.drop.S_ast_Type(ptr %a219) ret %S.gen.Val %t1109 -endif7678: +endif8071: %t1110 = load ptr, ptr %a1 %t1111 = load { ptr, i64, i64 }, ptr %a1073 %t1112 = call { ptr, i64, i64 } @finch.gen.op(ptr %t1110, { ptr, i64, i64 } %t1111) @@ -77810,13 +81743,13 @@ endif7678: %t1118 = getelementptr inbounds %S.gen.Abi, ptr %t1117, i32 0, i32 0 %t1119 = load { ptr, i64, i64 }, ptr %t1118 store { ptr, i64, i64 } %t1119, ptr %a1120 - store { ptr, i64, i64 } { ptr @.str.4916, i64 6, i64 0 }, ptr %a1121 + store { ptr, i64, i64 } { ptr @.str.5123, i64 6, i64 0 }, ptr %a1121 %t1122 = call i32 @finch_str_eq(ptr %a1120, ptr %a1121) %t1123 = icmp ne i32 %t1122, 0 - br i1 %t1123, label %then7679, label %endif7681 -then7679: + br i1 %t1123, label %then8072, label %endif8074 +then8072: %t1124 = load ptr, ptr %a1 - %t1125 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t1124, { ptr, i64, i64 } { ptr @.str.4917, i64 9, i64 0 }) + %t1125 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t1124, { ptr, i64, i64 } { ptr @.str.5124, i64 9, i64 0 }) store { ptr, i64, i64 } %t1125, ptr %a1126 %t1127 = load ptr, ptr %a1 %t1128 = getelementptr inbounds %S.gen.Plan, ptr %a261, i32 0, i32 0 @@ -77854,29 +81787,29 @@ then7679: call void @finch.drop.arr_S_ast_Type(ptr %a225) call void @finch.drop.S_ast_Type(ptr %a219) ret %S.gen.Val %t1145 -endif7681: +endif8074: %t1146 = getelementptr inbounds %S.ast.Type, ptr %a219, i32 0, i32 0 %t1147 = load { ptr, i64, i64 }, ptr %t1146 store { ptr, i64, i64 } %t1147, ptr %a1148 - store { ptr, i64, i64 } { ptr @.str.4918, i64 3, i64 0 }, ptr %a1149 + store { ptr, i64, i64 } { ptr @.str.5125, i64 3, i64 0 }, ptr %a1149 %t1150 = call i32 @finch_str_eq(ptr %a1148, ptr %a1149) %t1151 = icmp ne i32 %t1150, 0 - br i1 %t1151, label %then7682, label %endif7684 -then7682: + br i1 %t1151, label %then8075, label %endif8077 +then8075: %t1152 = load ptr, ptr %a1 %t1153 = call { ptr, i64, i64 } @finch.gen.strOut(ptr %t1152) store { ptr, i64, i64 } %t1153, ptr %a1154 %t1155 = load ptr, ptr %a1 %t1156 = load { ptr, i64, i64 }, ptr %a1154 - call void @finch.gen.store(ptr %t1155, { ptr, i64, i64 } { ptr @.str.4919, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.4920, i64 15, i64 0 }, { ptr, i64, i64 } %t1156) + call void @finch.gen.store(ptr %t1155, { ptr, i64, i64 } { ptr @.str.5126, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5127, i64 15, i64 0 }, { ptr, i64, i64 } %t1156) %t1157 = load ptr, ptr %a1 %t1158 = load { ptr, i64, i64 }, ptr %a1154 - store { ptr, i64, i64 } { ptr @.str.4921, i64 32, i64 0 }, ptr %a1160 + store { ptr, i64, i64 } { ptr @.str.5128, i64 32, i64 0 }, ptr %a1160 store { ptr, i64, i64 } %t1158, ptr %a1161 call void @finch_str_concat(ptr %a1159, ptr %a1160, ptr %a1161) %t1162 = load { ptr, i64, i64 }, ptr %a1159 store { ptr, i64, i64 } %t1162, ptr %a1164 - store { ptr, i64, i64 } { ptr @.str.4922, i64 6, i64 0 }, ptr %a1165 + store { ptr, i64, i64 } { ptr @.str.5129, i64 6, i64 0 }, ptr %a1165 call void @finch_str_concat(ptr %a1163, ptr %a1164, ptr %a1165) store { ptr, i64, i64 } %t1162, ptr %a1166 call void @finch_str_drop(ptr %a1166) @@ -77889,7 +81822,7 @@ then7682: call void @finch_str_drop(ptr %a1172) %t1173 = load { ptr, i64, i64 }, ptr %a1169 store { ptr, i64, i64 } %t1173, ptr %a1175 - store { ptr, i64, i64 } { ptr @.str.4923, i64 1, i64 0 }, ptr %a1176 + store { ptr, i64, i64 } { ptr @.str.5130, i64 1, i64 0 }, ptr %a1176 call void @finch_str_concat(ptr %a1174, ptr %a1175, ptr %a1176) store { ptr, i64, i64 } %t1173, ptr %a1177 call void @finch_str_drop(ptr %a1177) @@ -77899,7 +81832,7 @@ then7682: call void @finch_str_drop(ptr %a1179) %t1180 = load ptr, ptr %a1 %t1181 = load { ptr, i64, i64 }, ptr %a1154 - %t1182 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1180, { ptr, i64, i64 } { ptr @.str.4924, i64 17, i64 0 }, { ptr, i64, i64 } %t1181) + %t1182 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1180, { ptr, i64, i64 } { ptr @.str.5131, i64 17, i64 0 }, { ptr, i64, i64 } %t1181) %t1183 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t1182, 0 %t1184 = load %S.ast.Type, ptr %a219 store %S.ast.Type %t1184, ptr %a1185 @@ -77921,7 +81854,7 @@ then7682: call void @finch.drop.arr_S_ast_Type(ptr %a225) call void @finch.drop.S_ast_Type(ptr %a219) ret %S.gen.Val %t1188 -endif7684: +endif8077: %t1189 = load { ptr, i64, i64 }, ptr %a1113 store { ptr, i64, i64 } %t1189, ptr %a1190 call void @finch_str_copy(ptr %a1191, ptr %a1190) @@ -77959,14 +81892,14 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 store i64 %p2, ptr %a3 store i64 0, ptr %a4 - br label %each.cond7685 -each.cond7685: + br label %each.cond8078 +each.cond8078: %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t6 = load i64, ptr %t5 %t7 = load i64, ptr %a4 %t8 = icmp slt i64 %t7, %t6 - br i1 %t8, label %each.body7686, label %each.end7688 -each.body7686: + br i1 %t8, label %each.body8079, label %each.end8081 +each.body8079: %t9 = load ptr, ptr %a2 %t10 = getelementptr inbounds %S.gen.Val, ptr %t9, i64 %t7 %t11 = load %S.gen.Val, ptr %t10 @@ -77974,13 +81907,13 @@ each.body7686: %t13 = load ptr, ptr %a1 %t14 = load %S.gen.Val, ptr %a12 call void @finch.gen.release(ptr %t13, %S.gen.Val %t14) - br label %each.step7687 -each.step7687: + br label %each.step8080 +each.step8080: %t15 = load i64, ptr %a4 %t16 = add i64 %t15, 1 store i64 %t16, ptr %a4 - br label %each.cond7685 -each.end7688: + br label %each.cond8078 +each.end8081: %t17 = load ptr, ptr %a1 %t18 = load i64, ptr %a3 call void @finch.gen.heldEnd(ptr %t17, i64 %t18) @@ -77999,15 +81932,15 @@ entry: %t2 = mul i64 5, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t3 = call ptr @finch_alloc(i64 %t2) %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 0 - store { ptr, i64, i64 } { ptr @.str.4925, i64 6, i64 0 }, ptr %t4 + store { ptr, i64, i64 } { ptr @.str.5132, i64 6, i64 0 }, ptr %t4 %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 1 - store { ptr, i64, i64 } { ptr @.str.4926, i64 6, i64 0 }, ptr %t5 + store { ptr, i64, i64 } { ptr @.str.5133, i64 6, i64 0 }, ptr %t5 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 2 - store { ptr, i64, i64 } { ptr @.str.4927, i64 4, i64 0 }, ptr %t6 + store { ptr, i64, i64 } { ptr @.str.5134, i64 4, i64 0 }, ptr %t6 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 3 - store { ptr, i64, i64 } { ptr @.str.4928, i64 4, i64 0 }, ptr %t7 + store { ptr, i64, i64 } { ptr @.str.5135, i64 4, i64 0 }, ptr %t7 %t8 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 4 - store { ptr, i64, i64 } { ptr @.str.4929, i64 5, i64 0 }, ptr %t8 + store { ptr, i64, i64 } { ptr @.str.5136, i64 5, i64 0 }, ptr %t8 %t9 = insertvalue { ptr, i64, i64 } undef, ptr %t3, 0 %t10 = insertvalue { ptr, i64, i64 } %t9, i64 5, 1 %t11 = insertvalue { ptr, i64, i64 } %t10, i64 5, 2 @@ -78018,27 +81951,27 @@ entry: %t16 = load i64, ptr %t13 %t17 = load ptr, ptr %a12 store i64 0, ptr %a18 - br label %find.cond7689 -find.cond7689: + br label %find.cond8082 +find.cond8082: %t19 = load i64, ptr %a18 %t20 = icmp slt i64 %t19, %t16 - br i1 %t20, label %find.body7690, label %find.end7693 -find.body7690: + br i1 %t20, label %find.body8083, label %find.end8086 +find.body8083: %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t17, i64 %t19 %t22 = load { ptr, i64, i64 }, ptr %t21 store { ptr, i64, i64 } %t22, ptr %a23 store { ptr, i64, i64 } %t14, ptr %a24 %t25 = call i32 @finch_str_eq(ptr %a23, ptr %a24) %t26 = icmp ne i32 %t25, 0 - br i1 %t26, label %find.hit7691, label %find.next7692 -find.hit7691: + br i1 %t26, label %find.hit8084, label %find.next8085 +find.hit8084: store i64 %t19, ptr %a15 - br label %find.end7693 -find.next7692: + br label %find.end8086 +find.next8085: %t27 = add i64 %t19, 1 store i64 %t27, ptr %a18 - br label %find.cond7689 -find.end7693: + br label %find.cond8082 +find.end8086: %t28 = load i64, ptr %a15 %t29 = icmp sge i64 %t28, 0 call void @finch.drop.arr_str(ptr %a12) @@ -78066,51 +81999,51 @@ entry: %t2 = mul i64 23, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t3 = call ptr @finch_alloc(i64 %t2) %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 0 - store { ptr, i64, i64 } { ptr @.str.4930, i64 6, i64 0 }, ptr %t4 + store { ptr, i64, i64 } { ptr @.str.5137, i64 6, i64 0 }, ptr %t4 %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 1 - store { ptr, i64, i64 } { ptr @.str.4931, i64 4, i64 0 }, ptr %t5 + store { ptr, i64, i64 } { ptr @.str.5138, i64 4, i64 0 }, ptr %t5 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 2 - store { ptr, i64, i64 } { ptr @.str.4932, i64 7, i64 0 }, ptr %t6 + store { ptr, i64, i64 } { ptr @.str.5139, i64 7, i64 0 }, ptr %t6 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 3 - store { ptr, i64, i64 } { ptr @.str.4933, i64 5, i64 0 }, ptr %t7 + store { ptr, i64, i64 } { ptr @.str.5140, i64 5, i64 0 }, ptr %t7 %t8 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 4 - store { ptr, i64, i64 } { ptr @.str.4934, i64 5, i64 0 }, ptr %t8 + store { ptr, i64, i64 } { ptr @.str.5141, i64 5, i64 0 }, ptr %t8 %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 5 - store { ptr, i64, i64 } { ptr @.str.4935, i64 7, i64 0 }, ptr %t9 + store { ptr, i64, i64 } { ptr @.str.5142, i64 7, i64 0 }, ptr %t9 %t10 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 6 - store { ptr, i64, i64 } { ptr @.str.4936, i64 4, i64 0 }, ptr %t10 + store { ptr, i64, i64 } { ptr @.str.5143, i64 4, i64 0 }, ptr %t10 %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 7 - store { ptr, i64, i64 } { ptr @.str.4937, i64 3, i64 0 }, ptr %t11 + store { ptr, i64, i64 } { ptr @.str.5144, i64 3, i64 0 }, ptr %t11 %t12 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 8 - store { ptr, i64, i64 } { ptr @.str.4938, i64 3, i64 0 }, ptr %t12 + store { ptr, i64, i64 } { ptr @.str.5145, i64 3, i64 0 }, ptr %t12 %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 9 - store { ptr, i64, i64 } { ptr @.str.4939, i64 3, i64 0 }, ptr %t13 + store { ptr, i64, i64 } { ptr @.str.5146, i64 3, i64 0 }, ptr %t13 %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 10 - store { ptr, i64, i64 } { ptr @.str.4940, i64 5, i64 0 }, ptr %t14 + store { ptr, i64, i64 } { ptr @.str.5147, i64 5, i64 0 }, ptr %t14 %t15 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 11 - store { ptr, i64, i64 } { ptr @.str.4941, i64 4, i64 0 }, ptr %t15 + store { ptr, i64, i64 } { ptr @.str.5148, i64 4, i64 0 }, ptr %t15 %t16 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 12 - store { ptr, i64, i64 } { ptr @.str.4942, i64 6, i64 0 }, ptr %t16 + store { ptr, i64, i64 } { ptr @.str.5149, i64 6, i64 0 }, ptr %t16 %t17 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 13 - store { ptr, i64, i64 } { ptr @.str.4943, i64 4, i64 0 }, ptr %t17 + store { ptr, i64, i64 } { ptr @.str.5150, i64 4, i64 0 }, ptr %t17 %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 14 - store { ptr, i64, i64 } { ptr @.str.4944, i64 5, i64 0 }, ptr %t18 + store { ptr, i64, i64 } { ptr @.str.5151, i64 5, i64 0 }, ptr %t18 %t19 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 15 - store { ptr, i64, i64 } { ptr @.str.4945, i64 3, i64 0 }, ptr %t19 + store { ptr, i64, i64 } { ptr @.str.5152, i64 3, i64 0 }, ptr %t19 %t20 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 16 - store { ptr, i64, i64 } { ptr @.str.4946, i64 4, i64 0 }, ptr %t20 + store { ptr, i64, i64 } { ptr @.str.5153, i64 4, i64 0 }, ptr %t20 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 17 - store { ptr, i64, i64 } { ptr @.str.4947, i64 6, i64 0 }, ptr %t21 + store { ptr, i64, i64 } { ptr @.str.5154, i64 6, i64 0 }, ptr %t21 %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 18 - store { ptr, i64, i64 } { ptr @.str.4948, i64 6, i64 0 }, ptr %t22 + store { ptr, i64, i64 } { ptr @.str.5155, i64 6, i64 0 }, ptr %t22 %t23 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 19 - store { ptr, i64, i64 } { ptr @.str.4949, i64 6, i64 0 }, ptr %t23 + store { ptr, i64, i64 } { ptr @.str.5156, i64 6, i64 0 }, ptr %t23 %t24 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 20 - store { ptr, i64, i64 } { ptr @.str.4950, i64 4, i64 0 }, ptr %t24 + store { ptr, i64, i64 } { ptr @.str.5157, i64 4, i64 0 }, ptr %t24 %t25 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 21 - store { ptr, i64, i64 } { ptr @.str.4951, i64 5, i64 0 }, ptr %t25 + store { ptr, i64, i64 } { ptr @.str.5158, i64 5, i64 0 }, ptr %t25 %t26 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 22 - store { ptr, i64, i64 } { ptr @.str.4952, i64 6, i64 0 }, ptr %t26 + store { ptr, i64, i64 } { ptr @.str.5159, i64 6, i64 0 }, ptr %t26 %t27 = insertvalue { ptr, i64, i64 } undef, ptr %t3, 0 %t28 = insertvalue { ptr, i64, i64 } %t27, i64 23, 1 %t29 = insertvalue { ptr, i64, i64 } %t28, i64 23, 2 @@ -78118,51 +82051,51 @@ entry: %t31 = mul i64 23, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t32 = call ptr @finch_alloc(i64 %t31) %t33 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 0 - store { ptr, i64, i64 } { ptr @.str.4953, i64 7, i64 0 }, ptr %t33 + store { ptr, i64, i64 } { ptr @.str.5160, i64 7, i64 0 }, ptr %t33 %t34 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 1 - store { ptr, i64, i64 } { ptr @.str.4954, i64 7, i64 0 }, ptr %t34 + store { ptr, i64, i64 } { ptr @.str.5161, i64 7, i64 0 }, ptr %t34 %t35 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 2 - store { ptr, i64, i64 } { ptr @.str.4955, i64 7, i64 0 }, ptr %t35 + store { ptr, i64, i64 } { ptr @.str.5162, i64 7, i64 0 }, ptr %t35 %t36 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 3 - store { ptr, i64, i64 } { ptr @.str.4956, i64 7, i64 0 }, ptr %t36 + store { ptr, i64, i64 } { ptr @.str.5163, i64 7, i64 0 }, ptr %t36 %t37 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 4 - store { ptr, i64, i64 } { ptr @.str.4957, i64 7, i64 0 }, ptr %t37 + store { ptr, i64, i64 } { ptr @.str.5164, i64 7, i64 0 }, ptr %t37 %t38 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 5 - store { ptr, i64, i64 } { ptr @.str.4958, i64 7, i64 0 }, ptr %t38 + store { ptr, i64, i64 } { ptr @.str.5165, i64 7, i64 0 }, ptr %t38 %t39 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 6 - store { ptr, i64, i64 } { ptr @.str.4959, i64 6, i64 0 }, ptr %t39 + store { ptr, i64, i64 } { ptr @.str.5166, i64 6, i64 0 }, ptr %t39 %t40 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 7 - store { ptr, i64, i64 } { ptr @.str.4960, i64 6, i64 0 }, ptr %t40 + store { ptr, i64, i64 } { ptr @.str.5167, i64 6, i64 0 }, ptr %t40 %t41 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 8 - store { ptr, i64, i64 } { ptr @.str.4961, i64 6, i64 0 }, ptr %t41 + store { ptr, i64, i64 } { ptr @.str.5168, i64 6, i64 0 }, ptr %t41 %t42 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 9 - store { ptr, i64, i64 } { ptr @.str.4962, i64 6, i64 0 }, ptr %t42 + store { ptr, i64, i64 } { ptr @.str.5169, i64 6, i64 0 }, ptr %t42 %t43 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 10 - store { ptr, i64, i64 } { ptr @.str.4963, i64 6, i64 0 }, ptr %t43 + store { ptr, i64, i64 } { ptr @.str.5170, i64 6, i64 0 }, ptr %t43 %t44 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 11 - store { ptr, i64, i64 } { ptr @.str.4964, i64 6, i64 0 }, ptr %t44 + store { ptr, i64, i64 } { ptr @.str.5171, i64 6, i64 0 }, ptr %t44 %t45 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 12 - store { ptr, i64, i64 } { ptr @.str.4965, i64 8, i64 0 }, ptr %t45 + store { ptr, i64, i64 } { ptr @.str.5172, i64 8, i64 0 }, ptr %t45 %t46 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 13 - store { ptr, i64, i64 } { ptr @.str.4966, i64 8, i64 0 }, ptr %t46 + store { ptr, i64, i64 } { ptr @.str.5173, i64 8, i64 0 }, ptr %t46 %t47 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 14 - store { ptr, i64, i64 } { ptr @.str.4967, i64 8, i64 0 }, ptr %t47 + store { ptr, i64, i64 } { ptr @.str.5174, i64 8, i64 0 }, ptr %t47 %t48 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 15 - store { ptr, i64, i64 } { ptr @.str.4968, i64 8, i64 0 }, ptr %t48 + store { ptr, i64, i64 } { ptr @.str.5175, i64 8, i64 0 }, ptr %t48 %t49 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 16 - store { ptr, i64, i64 } { ptr @.str.4969, i64 8, i64 0 }, ptr %t49 + store { ptr, i64, i64 } { ptr @.str.5176, i64 8, i64 0 }, ptr %t49 %t50 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 17 - store { ptr, i64, i64 } { ptr @.str.4970, i64 8, i64 0 }, ptr %t50 + store { ptr, i64, i64 } { ptr @.str.5177, i64 8, i64 0 }, ptr %t50 %t51 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 18 - store { ptr, i64, i64 } { ptr @.str.4971, i64 8, i64 0 }, ptr %t51 + store { ptr, i64, i64 } { ptr @.str.5178, i64 8, i64 0 }, ptr %t51 %t52 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 19 - store { ptr, i64, i64 } { ptr @.str.4972, i64 8, i64 0 }, ptr %t52 + store { ptr, i64, i64 } { ptr @.str.5179, i64 8, i64 0 }, ptr %t52 %t53 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 20 - store { ptr, i64, i64 } { ptr @.str.4973, i64 6, i64 0 }, ptr %t53 + store { ptr, i64, i64 } { ptr @.str.5180, i64 6, i64 0 }, ptr %t53 %t54 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 21 - store { ptr, i64, i64 } { ptr @.str.4974, i64 8, i64 0 }, ptr %t54 + store { ptr, i64, i64 } { ptr @.str.5181, i64 8, i64 0 }, ptr %t54 %t55 = getelementptr inbounds { ptr, i64, i64 }, ptr %t32, i64 22 - store { ptr, i64, i64 } { ptr @.str.4975, i64 8, i64 0 }, ptr %t55 + store { ptr, i64, i64 } { ptr @.str.5182, i64 8, i64 0 }, ptr %t55 %t56 = insertvalue { ptr, i64, i64 } undef, ptr %t32, 0 %t57 = insertvalue { ptr, i64, i64 } %t56, i64 23, 1 %t58 = insertvalue { ptr, i64, i64 } %t57, i64 23, 2 @@ -78173,55 +82106,55 @@ entry: %t63 = load i64, ptr %t60 %t64 = load ptr, ptr %a30 store i64 0, ptr %a65 - br label %find.cond7694 -find.cond7694: + br label %find.cond8087 +find.cond8087: %t66 = load i64, ptr %a65 %t67 = icmp slt i64 %t66, %t63 - br i1 %t67, label %find.body7695, label %find.end7698 -find.body7695: + br i1 %t67, label %find.body8088, label %find.end8091 +find.body8088: %t68 = getelementptr inbounds { ptr, i64, i64 }, ptr %t64, i64 %t66 %t69 = load { ptr, i64, i64 }, ptr %t68 store { ptr, i64, i64 } %t69, ptr %a70 store { ptr, i64, i64 } %t61, ptr %a71 %t72 = call i32 @finch_str_eq(ptr %a70, ptr %a71) %t73 = icmp ne i32 %t72, 0 - br i1 %t73, label %find.hit7696, label %find.next7697 -find.hit7696: + br i1 %t73, label %find.hit8089, label %find.next8090 +find.hit8089: store i64 %t66, ptr %a62 - br label %find.end7698 -find.next7697: + br label %find.end8091 +find.next8090: %t74 = add i64 %t66, 1 store i64 %t74, ptr %a65 - br label %find.cond7694 -find.end7698: + br label %find.cond8087 +find.end8091: %t75 = load i64, ptr %a62 store i64 %t75, ptr %a76 %t77 = load i64, ptr %a76 %t78 = icmp slt i64 %t77, 0 - br i1 %t78, label %then7699, label %endif7701 -then7699: + br i1 %t78, label %then8092, label %endif8094 +then8092: call void @finch.drop.arr_str(ptr %a59) call void @finch.drop.arr_str(ptr %a30) - ret { ptr, i64, i64 } { ptr @.str.4976, i64 0, i64 0 } -endif7701: + ret { ptr, i64, i64 } { ptr @.str.5183, i64 0, i64 0 } +endif8094: %t79 = load i64, ptr %a76 %t80 = load { ptr, i64, i64 }, ptr %a59 %t81 = extractvalue { ptr, i64, i64 } %t80, 1 %t82 = icmp uge i64 %t79, %t81 - br i1 %t82, label %range7702, label %inrange7703 -range7702: - call void @finch_panic_index(ptr @.str.4978, i64 4603, i64 %t79, i64 %t81) + br i1 %t82, label %range8095, label %inrange8096 +range8095: + call void @finch_panic_index(ptr @.str.5185, i64 4830, i64 %t79, i64 %t81) unreachable -inrange7703: +inrange8096: %t83 = extractvalue { ptr, i64, i64 } %t80, 0 %t84 = getelementptr inbounds { ptr, i64, i64 }, ptr %t83, i64 %t79 %t85 = load { ptr, i64, i64 }, ptr %t84 - store { ptr, i64, i64 } { ptr @.str.4977, i64 28, i64 0 }, ptr %a87 + store { ptr, i64, i64 } { ptr @.str.5184, i64 28, i64 0 }, ptr %a87 store { ptr, i64, i64 } %t85, ptr %a88 call void @finch_str_concat(ptr %a86, ptr %a87, ptr %a88) %t89 = load { ptr, i64, i64 }, ptr %a86 store { ptr, i64, i64 } %t89, ptr %a91 - store { ptr, i64, i64 } { ptr @.str.4979, i64 14, i64 0 }, ptr %a92 + store { ptr, i64, i64 } { ptr @.str.5186, i64 14, i64 0 }, ptr %a92 call void @finch_str_concat(ptr %a90, ptr %a91, ptr %a92) store { ptr, i64, i64 } %t89, ptr %a93 call void @finch_str_drop(ptr %a93) @@ -78250,19 +82183,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond7713 -n.cond7713: + br label %n.cond8106 +n.cond8106: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body7714, label %n.end7715 -n.body7714: + br i1 %t6, label %n.body8107, label %n.end8108 +n.body8107: %t7 = getelementptr inbounds %S.docs.Doc, ptr %t1, i64 %t5 call void @finch.drop.S_docs_Doc(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond7713 -n.end7715: + br label %n.cond8106 +n.end8108: call void @finch_arr_free(ptr %a) ret void } @@ -78930,26 +82863,26 @@ entry: store { ptr, i64, i64 } %t7, ptr %a8 %t9 = load ptr, ptr %a1 %t10 = icmp eq ptr %t9, null - br i1 %t10, label %panic7704, label %ok7705 -panic7704: - call void @finch_panic(ptr @.str.4980, i64 4608, ptr @.str.4981) + br i1 %t10, label %panic8097, label %ok8098 +panic8097: + call void @finch_panic(ptr @.str.5187, i64 4835, ptr @.str.5188) unreachable -ok7705: - %t11 = getelementptr inbounds %S.gen.Gen, ptr %t9, i32 0, i32 27 +ok8098: + %t11 = getelementptr inbounds %S.gen.Gen, ptr %t9, i32 0, i32 28 %t12 = load i1, ptr %t11 - br label %logic.from7706 -logic.from7706: - br i1 %t12, label %logic.rhs7707, label %logic.end7708 -logic.rhs7707: + br label %logic.from8099 +logic.from8099: + br i1 %t12, label %logic.rhs8100, label %logic.end8101 +logic.rhs8100: %t13 = load { ptr, i64, i64 }, ptr %a8 %t14 = call i1 @finch.gen.isBuiltin({ ptr, i64, i64 } %t13) - br label %logic.rend7709 -logic.rend7709: - br label %logic.end7708 -logic.end7708: - %t15 = phi i1 [ false, %logic.from7706 ], [ %t14, %logic.rend7709 ] - br i1 %t15, label %then7710, label %endif7712 -then7710: + br label %logic.rend8102 +logic.rend8102: + br label %logic.end8101 +logic.end8101: + %t15 = phi i1 [ false, %logic.from8099 ], [ %t14, %logic.rend8102 ] + br i1 %t15, label %then8103, label %endif8105 +then8103: %t16 = call { ptr, i64, i64 } @finch.docs.builtins() %t17 = load { ptr, i64, i64 }, ptr %a8 %t18 = call %S.docs.Doc @finch.docs.find({ ptr, i64, i64 } %t16, { ptr, i64, i64 } %t17) @@ -78960,8 +82893,8 @@ then7710: %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %t21, i32 0, i32 1 %t23 = load i64, ptr %t22 %t24 = icmp sgt i64 %t23, 0 - br i1 %t24, label %then7716, label %endif7718 -then7716: + br i1 %t24, label %then8109, label %endif8111 +then8109: %t25 = load ptr, ptr %a1 %t26 = load %S.ast.Node, ptr %a2 %t27 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 12 @@ -78970,54 +82903,54 @@ then7716: %t30 = load i64, ptr %t29 %t31 = load %S.docs.Doc, ptr %a20 %t32 = call { ptr, i64, i64 } @finch.docs.hover(%S.docs.Doc %t31) - call void @finch.gen.noteRef(ptr %t25, %S.ast.Node %t26, i64 %t28, i64 %t30, { ptr, i64, i64 } %t32, { ptr, i64, i64 } { ptr @.str.4982, i64 0, i64 0 }, i64 0, i64 0) + call void @finch.gen.noteRef(ptr %t25, %S.ast.Node %t26, i64 %t28, i64 %t30, { ptr, i64, i64 } %t32, { ptr, i64, i64 } { ptr @.str.5189, i64 0, i64 0 }, i64 0, i64 0) store { ptr, i64, i64 } %t32, ptr %a33 call void @finch_str_drop(ptr %a33) - br label %endif7718 -endif7718: + br label %endif8111 +endif8111: call void @finch.drop.S_docs_Doc(ptr %a20) - br label %endif7712 -endif7712: + br label %endif8105 +endif8105: %t34 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t34, ptr %a35 - store { ptr, i64, i64 } { ptr @.str.4983, i64 5, i64 0 }, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.5190, i64 5, i64 0 }, ptr %a36 %t37 = call i32 @finch_str_eq(ptr %a35, ptr %a36) %t38 = icmp ne i32 %t37, 0 - br i1 %t38, label %then7719, label %endif7721 -then7719: + br i1 %t38, label %then8112, label %endif8114 +then8112: %t39 = load ptr, ptr %a1 %t40 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t39, %S.ast.Node %t40, { ptr, i64, i64 } { ptr @.str.4984, i64 86, i64 0 }) - br label %endif7721 -endif7721: + call void @finch.gen.fail(ptr %t39, %S.ast.Node %t40, { ptr, i64, i64 } { ptr @.str.5191, i64 86, i64 0 }) + br label %endif8114 +endif8114: %t41 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t41, ptr %a42 - store { ptr, i64, i64 } { ptr @.str.4985, i64 5, i64 0 }, ptr %a43 + store { ptr, i64, i64 } { ptr @.str.5192, i64 5, i64 0 }, ptr %a43 %t44 = call i32 @finch_str_eq(ptr %a42, ptr %a43) %t45 = icmp ne i32 %t44, 0 - br i1 %t45, label %then7722, label %endif7724 -then7722: + br i1 %t45, label %then8115, label %endif8117 +then8115: %t46 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t47 = getelementptr inbounds { ptr, i64, i64 }, ptr %t46, i32 0, i32 1 %t48 = load i64, ptr %t47 store i64 0, ptr %a49 - br label %for.cond7725 -for.cond7725: + br label %for.cond8118 +for.cond8118: %t50 = load i64, ptr %a49 %t51 = icmp slt i64 %t50, %t48 - br i1 %t51, label %for.body7726, label %for.end7728 -for.body7726: + br i1 %t51, label %for.body8119, label %for.end8121 +for.body8119: %t52 = load ptr, ptr %a1 %t53 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t54 = load i64, ptr %a49 %t55 = load { ptr, i64, i64 }, ptr %t53 %t56 = extractvalue { ptr, i64, i64 } %t55, 1 %t57 = icmp uge i64 %t54, %t56 - br i1 %t57, label %range7729, label %inrange7730 -range7729: - call void @finch_panic_index(ptr @.str.4986, i64 4619, i64 %t54, i64 %t56) + br i1 %t57, label %range8122, label %inrange8123 +range8122: + call void @finch_panic_index(ptr @.str.5193, i64 4846, i64 %t54, i64 %t56) unreachable -inrange7730: +inrange8123: %t58 = extractvalue { ptr, i64, i64 } %t55, 0 %t59 = getelementptr inbounds %S.ast.Node, ptr %t58, i64 %t54 %t60 = load %S.ast.Node, ptr %t59 @@ -79027,36 +82960,36 @@ inrange7730: %t64 = getelementptr inbounds %S.ast.Type, ptr %t63, i32 0, i32 0 %t65 = load { ptr, i64, i64 }, ptr %t64 store { ptr, i64, i64 } %t65, ptr %a66 - store { ptr, i64, i64 } { ptr @.str.4987, i64 4, i64 0 }, ptr %a67 + store { ptr, i64, i64 } { ptr @.str.5194, i64 4, i64 0 }, ptr %a67 %t68 = call i32 @finch_str_eq(ptr %a66, ptr %a67) %t69 = icmp ne i32 %t68, 0 - br i1 %t69, label %then7731, label %endif7733 -then7731: + br i1 %t69, label %then8124, label %endif8126 +then8124: %t70 = load ptr, ptr %a1 %t71 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t72 = load i64, ptr %a49 %t73 = load { ptr, i64, i64 }, ptr %t71 %t74 = extractvalue { ptr, i64, i64 } %t73, 1 %t75 = icmp uge i64 %t72, %t74 - br i1 %t75, label %range7734, label %inrange7735 -range7734: - call void @finch_panic_index(ptr @.str.4988, i64 4621, i64 %t72, i64 %t74) + br i1 %t75, label %range8127, label %inrange8128 +range8127: + call void @finch_panic_index(ptr @.str.5195, i64 4848, i64 %t72, i64 %t74) unreachable -inrange7735: +inrange8128: %t76 = extractvalue { ptr, i64, i64 } %t73, 0 %t77 = getelementptr inbounds %S.ast.Node, ptr %t76, i64 %t72 %t78 = load %S.ast.Node, ptr %t77 - call void @finch.gen.fail(ptr %t70, %S.ast.Node %t78, { ptr, i64, i64 } { ptr @.str.4989, i64 53, i64 0 }) - br label %endif7733 -endif7733: + call void @finch.gen.fail(ptr %t70, %S.ast.Node %t78, { ptr, i64, i64 } { ptr @.str.5196, i64 53, i64 0 }) + br label %endif8126 +endif8126: %t79 = load i64, ptr %a49 %t80 = icmp sgt i64 %t79, 0 - br i1 %t80, label %then7736, label %endif7738 -then7736: + br i1 %t80, label %then8129, label %endif8131 +then8129: %t81 = load ptr, ptr %a1 - call void @finch.gen.printf(ptr %t81, { ptr, i64, i64 } { ptr @.str.4990, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.4991, i64 0, i64 0 }) - br label %endif7738 -endif7738: + call void @finch.gen.printf(ptr %t81, { ptr, i64, i64 } { ptr @.str.5197, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.5198, i64 0, i64 0 }) + br label %endif8131 +endif8131: %t82 = load ptr, ptr %a1 %t83 = getelementptr inbounds %S.gen.Val, ptr %a62, i32 0, i32 0 %t84 = load { ptr, i64, i64 }, ptr %t83 @@ -79067,27 +83000,27 @@ endif7738: %t88 = load %S.gen.Val, ptr %a62 call void @finch.gen.release(ptr %t87, %S.gen.Val %t88) call void @finch.drop.S_gen_Val(ptr %a62) - br label %for.step7727 -for.step7727: + br label %for.step8120 +for.step8120: %t89 = load i64, ptr %a49 %t90 = add i64 %t89, 1 store i64 %t90, ptr %a49 - br label %for.cond7725 -for.end7728: + br label %for.cond8118 +for.end8121: %t91 = load ptr, ptr %a1 - call void @finch.gen.printf(ptr %t91, { ptr, i64, i64 } { ptr @.str.4992, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.4993, i64 0, i64 0 }) - %t92 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.4994, i64 4, i64 0 }) + call void @finch.gen.printf(ptr %t91, { ptr, i64, i64 } { ptr @.str.5199, i64 1, i64 0 }, { ptr, i64, i64 } { ptr @.str.5200, i64 0, i64 0 }) + %t92 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5201, i64 4, i64 0 }) %t93 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t92, 1 call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t93 -endif7724: +endif8117: %t94 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t94, ptr %a95 - store { ptr, i64, i64 } { ptr @.str.4995, i64 4, i64 0 }, ptr %a96 + store { ptr, i64, i64 } { ptr @.str.5202, i64 4, i64 0 }, ptr %a96 %t97 = call i32 @finch_str_eq(ptr %a95, ptr %a96) %t98 = icmp ne i32 %t97, 0 - br i1 %t98, label %then7739, label %endif7741 -then7739: + br i1 %t98, label %then8132, label %endif8134 +then8132: %t99 = load ptr, ptr %a1 %t100 = load %S.ast.Node, ptr %a2 %t101 = load { ptr, i64, i64 }, ptr %a8 @@ -79096,11 +83029,11 @@ then7739: %t103 = load { ptr, i64, i64 }, ptr %t102 %t104 = extractvalue { ptr, i64, i64 } %t103, 1 %t105 = icmp uge i64 0, %t104 - br i1 %t105, label %range7742, label %inrange7743 -range7742: - call void @finch_panic_index(ptr @.str.4996, i64 4634, i64 0, i64 %t104) + br i1 %t105, label %range8135, label %inrange8136 +range8135: + call void @finch_panic_index(ptr @.str.5203, i64 4861, i64 0, i64 %t104) unreachable -inrange7743: +inrange8136: %t106 = extractvalue { ptr, i64, i64 } %t103, 0 %t107 = getelementptr inbounds %S.ast.Node, ptr %t106, i64 0 %t108 = load %S.ast.Node, ptr %t107 @@ -79111,33 +83044,33 @@ inrange7743: %t113 = getelementptr inbounds %S.ast.Node, ptr %a112, i32 0, i32 0 %t114 = load { ptr, i64, i64 }, ptr %t113 store { ptr, i64, i64 } %t114, ptr %a115 - store { ptr, i64, i64 } { ptr @.str.4997, i64 3, i64 0 }, ptr %a116 + store { ptr, i64, i64 } { ptr @.str.5204, i64 3, i64 0 }, ptr %a116 %t117 = call i32 @finch_str_eq(ptr %a115, ptr %a116) %t118 = icmp ne i32 %t117, 0 - br label %logic.from7744 -logic.from7744: - br i1 %t118, label %logic.rhs7745, label %logic.end7746 -logic.rhs7745: + br label %logic.from8137 +logic.from8137: + br i1 %t118, label %logic.rhs8138, label %logic.end8139 +logic.rhs8138: %t119 = load ptr, ptr %a1 %t120 = getelementptr inbounds %S.ast.Node, ptr %a112, i32 0, i32 1 %t121 = load { ptr, i64, i64 }, ptr %t120 %t122 = call i64 @finch.gen.lookup(ptr %t119, { ptr, i64, i64 } %t121) %t123 = icmp slt i64 %t122, 0 - br label %logic.rend7747 -logic.rend7747: - br label %logic.end7746 -logic.end7746: - %t124 = phi i1 [ false, %logic.from7744 ], [ %t123, %logic.rend7747 ] - br i1 %t124, label %then7748, label %endif7750 -then7748: + br label %logic.rend8140 +logic.rend8140: + br label %logic.end8139 +logic.end8139: + %t124 = phi i1 [ false, %logic.from8137 ], [ %t123, %logic.rend8140 ] + br i1 %t124, label %then8141, label %endif8143 +then8141: %t125 = load ptr, ptr %a1 %t126 = load ptr, ptr %a1 %t127 = icmp eq ptr %t126, null - br i1 %t127, label %panic7751, label %ok7752 -panic7751: - call void @finch_panic(ptr @.str.4998, i64 4636, ptr @.str.4999) + br i1 %t127, label %panic8144, label %ok8145 +panic8144: + call void @finch_panic(ptr @.str.5205, i64 4863, ptr @.str.5206) unreachable -ok7752: +ok8145: %t128 = getelementptr inbounds %S.gen.Gen, ptr %t126, i32 0, i32 14 %t129 = load { ptr, i64, i64 }, ptr %t128 %t130 = getelementptr inbounds %S.ast.Node, ptr %a112, i32 0, i32 1 @@ -79146,64 +83079,64 @@ ok7752: store i64 %t132, ptr %a133 %t134 = load i64, ptr %a133 %t135 = icmp sge i64 %t134, 0 - br i1 %t135, label %then7753, label %endif7755 -then7753: + br i1 %t135, label %then8146, label %endif8148 +then8146: %t136 = load ptr, ptr %a1 %t137 = load i64, ptr %a133 %t138 = load %S.ast.Node, ptr %a112 %t139 = call { ptr, i64, i64 } @finch.gen.cThunk(ptr %t136, i64 %t137, %S.ast.Node %t138) %t140 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t139, 0 - %t141 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5000, i64 3, i64 0 }) + %t141 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5207, i64 3, i64 0 }) %t142 = insertvalue %S.gen.Val %t140, %S.ast.Type %t141, 1 call void @finch.drop.S_ast_Node(ptr %a112) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t142 -endif7755: - br label %endif7750 -endif7750: +endif8148: + br label %endif8143 +endif8143: %t143 = getelementptr inbounds %S.ast.Node, ptr %a112, i32 0, i32 0 %t144 = load { ptr, i64, i64 }, ptr %t143 store { ptr, i64, i64 } %t144, ptr %a145 - store { ptr, i64, i64 } { ptr @.str.5001, i64 3, i64 0 }, ptr %a146 + store { ptr, i64, i64 } { ptr @.str.5208, i64 3, i64 0 }, ptr %a146 %t147 = call i32 @finch_str_eq(ptr %a145, ptr %a146) %t148 = icmp eq i32 %t147, 0 - br label %logic.from7756 -logic.from7756: - br i1 %t148, label %logic.rhs7757, label %logic.end7758 -logic.rhs7757: + br label %logic.from8149 +logic.from8149: + br i1 %t148, label %logic.rhs8150, label %logic.end8151 +logic.rhs8150: %t149 = getelementptr inbounds %S.ast.Node, ptr %a112, i32 0, i32 0 %t150 = load { ptr, i64, i64 }, ptr %t149 store { ptr, i64, i64 } %t150, ptr %a151 - store { ptr, i64, i64 } { ptr @.str.5002, i64 6, i64 0 }, ptr %a152 + store { ptr, i64, i64 } { ptr @.str.5209, i64 6, i64 0 }, ptr %a152 %t153 = call i32 @finch_str_eq(ptr %a151, ptr %a152) %t154 = icmp eq i32 %t153, 0 - br label %logic.rend7759 -logic.rend7759: - br label %logic.end7758 -logic.end7758: - %t155 = phi i1 [ false, %logic.from7756 ], [ %t154, %logic.rend7759 ] - br label %logic.from7760 -logic.from7760: - br i1 %t155, label %logic.rhs7761, label %logic.end7762 -logic.rhs7761: + br label %logic.rend8152 +logic.rend8152: + br label %logic.end8151 +logic.end8151: + %t155 = phi i1 [ false, %logic.from8149 ], [ %t154, %logic.rend8152 ] + br label %logic.from8153 +logic.from8153: + br i1 %t155, label %logic.rhs8154, label %logic.end8155 +logic.rhs8154: %t156 = getelementptr inbounds %S.ast.Node, ptr %a112, i32 0, i32 0 %t157 = load { ptr, i64, i64 }, ptr %t156 store { ptr, i64, i64 } %t157, ptr %a158 - store { ptr, i64, i64 } { ptr @.str.5003, i64 5, i64 0 }, ptr %a159 + store { ptr, i64, i64 } { ptr @.str.5210, i64 5, i64 0 }, ptr %a159 %t160 = call i32 @finch_str_eq(ptr %a158, ptr %a159) %t161 = icmp eq i32 %t160, 0 - br label %logic.rend7763 -logic.rend7763: - br label %logic.end7762 -logic.end7762: - %t162 = phi i1 [ false, %logic.from7760 ], [ %t161, %logic.rend7763 ] - br i1 %t162, label %then7764, label %endif7766 -then7764: + br label %logic.rend8156 +logic.rend8156: + br label %logic.end8155 +logic.end8155: + %t162 = phi i1 [ false, %logic.from8153 ], [ %t161, %logic.rend8156 ] + br i1 %t162, label %then8157, label %endif8159 +then8157: %t163 = load ptr, ptr %a1 %t164 = load %S.ast.Node, ptr %a112 - call void @finch.gen.fail(ptr %t163, %S.ast.Node %t164, { ptr, i64, i64 } { ptr @.str.5004, i64 63, i64 0 }) - br label %endif7766 -endif7766: + call void @finch.gen.fail(ptr %t163, %S.ast.Node %t164, { ptr, i64, i64 } { ptr @.str.5211, i64 63, i64 0 }) + br label %endif8159 +endif8159: %t165 = load ptr, ptr %a1 %t166 = load %S.ast.Node, ptr %a112 %t167 = call %S.gen.Place @finch.gen.place(ptr %t165, %S.ast.Node %t166, i1 true) @@ -79222,14 +83155,14 @@ endif7766: call void @finch.drop.S_ast_Node(ptr %a112) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t178 -endif7741: +endif8134: %t179 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t179, ptr %a180 - store { ptr, i64, i64 } { ptr @.str.5005, i64 3, i64 0 }, ptr %a181 + store { ptr, i64, i64 } { ptr @.str.5212, i64 3, i64 0 }, ptr %a181 %t182 = call i32 @finch_str_eq(ptr %a180, ptr %a181) %t183 = icmp ne i32 %t182, 0 - br i1 %t183, label %then7767, label %endif7769 -then7767: + br i1 %t183, label %then8160, label %endif8162 +then8160: %t184 = load ptr, ptr %a1 %t185 = load %S.ast.Node, ptr %a2 %t186 = load { ptr, i64, i64 }, ptr %a8 @@ -79239,11 +83172,11 @@ then7767: %t189 = load { ptr, i64, i64 }, ptr %t188 %t190 = extractvalue { ptr, i64, i64 } %t189, 1 %t191 = icmp uge i64 0, %t190 - br i1 %t191, label %range7770, label %inrange7771 -range7770: - call void @finch_panic_index(ptr @.str.5006, i64 4649, i64 0, i64 %t190) + br i1 %t191, label %range8163, label %inrange8164 +range8163: + call void @finch_panic_index(ptr @.str.5213, i64 4876, i64 0, i64 %t190) unreachable -inrange7771: +inrange8164: %t192 = extractvalue { ptr, i64, i64 } %t189, 0 %t193 = getelementptr inbounds %S.ast.Node, ptr %t192, i64 0 %t194 = load %S.ast.Node, ptr %t193 @@ -79262,11 +83195,11 @@ inrange7771: store i1 false, ptr %a207 %t208 = load { ptr, i64, i64 }, ptr %a206 store { ptr, i64, i64 } %t208, ptr %a209 - store { ptr, i64, i64 } { ptr @.str.5007, i64 3, i64 0 }, ptr %a210 + store { ptr, i64, i64 } { ptr @.str.5214, i64 3, i64 0 }, ptr %a210 %t211 = call i32 @finch_str_eq(ptr %a209, ptr %a210) %t212 = icmp ne i32 %t211, 0 - br i1 %t212, label %then7772, label %else7773 -then7772: + br i1 %t212, label %then8165, label %else8166 +then8165: %t213 = load ptr, ptr %a1 %t214 = load %S.gen.Val, ptr %a196 %t215 = call { ptr, i64, i64 } @finch.gen.own(ptr %t213, %S.gen.Val %t214) @@ -79283,20 +83216,20 @@ then7772: call void @finch.drop.S_gen_Val(ptr %a196) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t223 -else7773: +else8166: %t224 = getelementptr inbounds %S.gen.Val, ptr %a196, i32 0, i32 1 %t225 = load %S.ast.Type, ptr %t224 %t226 = call i1 @finch.gen.isSigned(%S.ast.Type %t225) - br i1 %t226, label %then7775, label %else7776 -then7775: + br i1 %t226, label %then8168, label %else8169 +then8168: %t227 = load ptr, ptr %a1 %t228 = load { ptr, i64, i64 }, ptr %a199 - store { ptr, i64, i64 } { ptr @.str.5008, i64 34, i64 0 }, ptr %a230 + store { ptr, i64, i64 } { ptr @.str.5215, i64 34, i64 0 }, ptr %a230 store { ptr, i64, i64 } %t228, ptr %a231 call void @finch_str_concat(ptr %a229, ptr %a230, ptr %a231) %t232 = load { ptr, i64, i64 }, ptr %a229 store { ptr, i64, i64 } %t232, ptr %a234 - store { ptr, i64, i64 } { ptr @.str.5009, i64 6, i64 0 }, ptr %a235 + store { ptr, i64, i64 } { ptr @.str.5216, i64 6, i64 0 }, ptr %a235 call void @finch_str_concat(ptr %a233, ptr %a234, ptr %a235) store { ptr, i64, i64 } %t232, ptr %a236 call void @finch_str_drop(ptr %a236) @@ -79306,7 +83239,7 @@ then7775: %t240 = load { ptr, i64, i64 }, ptr %t239 %t241 = getelementptr inbounds %S.gen.Val, ptr %a196, i32 0, i32 1 %t242 = load %S.ast.Type, ptr %t241 - %t243 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5010, i64 3, i64 0 }) + %t243 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5217, i64 3, i64 0 }) %t244 = call { ptr, i64, i64 } @finch.gen.intCast(ptr %t238, { ptr, i64, i64 } %t240, %S.ast.Type %t242, %S.ast.Type %t243) store %S.ast.Type %t243, ptr %a245 call void @finch.drop.S_ast_Type(ptr %a245) @@ -79319,7 +83252,7 @@ then7775: call void @finch_str_drop(ptr %a250) %t251 = load { ptr, i64, i64 }, ptr %a246 store { ptr, i64, i64 } %t251, ptr %a253 - store { ptr, i64, i64 } { ptr @.str.5011, i64 1, i64 0 }, ptr %a254 + store { ptr, i64, i64 } { ptr @.str.5218, i64 1, i64 0 }, ptr %a254 call void @finch_str_concat(ptr %a252, ptr %a253, ptr %a254) store { ptr, i64, i64 } %t251, ptr %a255 call void @finch_str_drop(ptr %a255) @@ -79327,21 +83260,21 @@ then7775: call void @finch.gen.emit(ptr %t227, { ptr, i64, i64 } %t256) store { ptr, i64, i64 } %t256, ptr %a257 call void @finch_str_drop(ptr %a257) - br label %endif7777 -else7776: + br label %endif8170 +else8169: %t258 = getelementptr inbounds %S.gen.Val, ptr %a196, i32 0, i32 1 %t259 = load %S.ast.Type, ptr %t258 %t260 = call i1 @finch.gen.isUnsigned(%S.ast.Type %t259) - br i1 %t260, label %then7778, label %else7779 -then7778: + br i1 %t260, label %then8171, label %else8172 +then8171: %t261 = load ptr, ptr %a1 %t262 = load { ptr, i64, i64 }, ptr %a199 - store { ptr, i64, i64 } { ptr @.str.5012, i64 35, i64 0 }, ptr %a264 + store { ptr, i64, i64 } { ptr @.str.5219, i64 35, i64 0 }, ptr %a264 store { ptr, i64, i64 } %t262, ptr %a265 call void @finch_str_concat(ptr %a263, ptr %a264, ptr %a265) %t266 = load { ptr, i64, i64 }, ptr %a263 store { ptr, i64, i64 } %t266, ptr %a268 - store { ptr, i64, i64 } { ptr @.str.5013, i64 6, i64 0 }, ptr %a269 + store { ptr, i64, i64 } { ptr @.str.5220, i64 6, i64 0 }, ptr %a269 call void @finch_str_concat(ptr %a267, ptr %a268, ptr %a269) store { ptr, i64, i64 } %t266, ptr %a270 call void @finch_str_drop(ptr %a270) @@ -79351,7 +83284,7 @@ then7778: %t274 = load { ptr, i64, i64 }, ptr %t273 %t275 = getelementptr inbounds %S.gen.Val, ptr %a196, i32 0, i32 1 %t276 = load %S.ast.Type, ptr %t275 - %t277 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5014, i64 3, i64 0 }) + %t277 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5221, i64 3, i64 0 }) %t278 = call { ptr, i64, i64 } @finch.gen.intCast(ptr %t272, { ptr, i64, i64 } %t274, %S.ast.Type %t276, %S.ast.Type %t277) store %S.ast.Type %t277, ptr %a279 call void @finch.drop.S_ast_Type(ptr %a279) @@ -79364,7 +83297,7 @@ then7778: call void @finch_str_drop(ptr %a284) %t285 = load { ptr, i64, i64 }, ptr %a280 store { ptr, i64, i64 } %t285, ptr %a287 - store { ptr, i64, i64 } { ptr @.str.5015, i64 1, i64 0 }, ptr %a288 + store { ptr, i64, i64 } { ptr @.str.5222, i64 1, i64 0 }, ptr %a288 call void @finch_str_concat(ptr %a286, ptr %a287, ptr %a288) store { ptr, i64, i64 } %t285, ptr %a289 call void @finch_str_drop(ptr %a289) @@ -79372,21 +83305,21 @@ then7778: call void @finch.gen.emit(ptr %t261, { ptr, i64, i64 } %t290) store { ptr, i64, i64 } %t290, ptr %a291 call void @finch_str_drop(ptr %a291) - br label %endif7780 -else7779: + br label %endif8173 +else8172: %t292 = getelementptr inbounds %S.gen.Val, ptr %a196, i32 0, i32 1 %t293 = load %S.ast.Type, ptr %t292 %t294 = call i1 @finch.gen.isFloat(%S.ast.Type %t293) - br i1 %t294, label %then7781, label %else7782 -then7781: + br i1 %t294, label %then8174, label %else8175 +then8174: %t295 = load ptr, ptr %a1 %t296 = load { ptr, i64, i64 }, ptr %a199 - store { ptr, i64, i64 } { ptr @.str.5016, i64 36, i64 0 }, ptr %a298 + store { ptr, i64, i64 } { ptr @.str.5223, i64 36, i64 0 }, ptr %a298 store { ptr, i64, i64 } %t296, ptr %a299 call void @finch_str_concat(ptr %a297, ptr %a298, ptr %a299) %t300 = load { ptr, i64, i64 }, ptr %a297 store { ptr, i64, i64 } %t300, ptr %a302 - store { ptr, i64, i64 } { ptr @.str.5017, i64 9, i64 0 }, ptr %a303 + store { ptr, i64, i64 } { ptr @.str.5224, i64 9, i64 0 }, ptr %a303 call void @finch_str_concat(ptr %a301, ptr %a302, ptr %a303) store { ptr, i64, i64 } %t300, ptr %a304 call void @finch_str_drop(ptr %a304) @@ -79396,7 +83329,7 @@ then7781: %t308 = load { ptr, i64, i64 }, ptr %t307 %t309 = getelementptr inbounds %S.gen.Val, ptr %a196, i32 0, i32 1 %t310 = load %S.ast.Type, ptr %t309 - %t311 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5018, i64 5, i64 0 }) + %t311 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5225, i64 5, i64 0 }) %t312 = call { ptr, i64, i64 } @finch.gen.floatCast(ptr %t306, { ptr, i64, i64 } %t308, %S.ast.Type %t310, %S.ast.Type %t311) store %S.ast.Type %t311, ptr %a313 call void @finch.drop.S_ast_Type(ptr %a313) @@ -79409,7 +83342,7 @@ then7781: call void @finch_str_drop(ptr %a318) %t319 = load { ptr, i64, i64 }, ptr %a314 store { ptr, i64, i64 } %t319, ptr %a321 - store { ptr, i64, i64 } { ptr @.str.5019, i64 1, i64 0 }, ptr %a322 + store { ptr, i64, i64 } { ptr @.str.5226, i64 1, i64 0 }, ptr %a322 call void @finch_str_concat(ptr %a320, ptr %a321, ptr %a322) store { ptr, i64, i64 } %t319, ptr %a323 call void @finch_str_drop(ptr %a323) @@ -79417,23 +83350,23 @@ then7781: call void @finch.gen.emit(ptr %t295, { ptr, i64, i64 } %t324) store { ptr, i64, i64 } %t324, ptr %a325 call void @finch_str_drop(ptr %a325) - br label %endif7783 -else7782: + br label %endif8176 +else8175: %t326 = load { ptr, i64, i64 }, ptr %a206 store { ptr, i64, i64 } %t326, ptr %a327 - store { ptr, i64, i64 } { ptr @.str.5020, i64 4, i64 0 }, ptr %a328 + store { ptr, i64, i64 } { ptr @.str.5227, i64 4, i64 0 }, ptr %a328 %t329 = call i32 @finch_str_eq(ptr %a327, ptr %a328) %t330 = icmp ne i32 %t329, 0 - br i1 %t330, label %then7784, label %else7785 -then7784: + br i1 %t330, label %then8177, label %else8178 +then8177: %t331 = load ptr, ptr %a1 %t332 = load { ptr, i64, i64 }, ptr %a199 - store { ptr, i64, i64 } { ptr @.str.5021, i64 35, i64 0 }, ptr %a334 + store { ptr, i64, i64 } { ptr @.str.5228, i64 35, i64 0 }, ptr %a334 store { ptr, i64, i64 } %t332, ptr %a335 call void @finch_str_concat(ptr %a333, ptr %a334, ptr %a335) %t336 = load { ptr, i64, i64 }, ptr %a333 store { ptr, i64, i64 } %t336, ptr %a338 - store { ptr, i64, i64 } { ptr @.str.5022, i64 13, i64 0 }, ptr %a339 + store { ptr, i64, i64 } { ptr @.str.5229, i64 13, i64 0 }, ptr %a339 call void @finch_str_concat(ptr %a337, ptr %a338, ptr %a339) store { ptr, i64, i64 } %t336, ptr %a340 call void @finch_str_drop(ptr %a340) @@ -79447,7 +83380,7 @@ then7784: call void @finch_str_drop(ptr %a347) %t348 = load { ptr, i64, i64 }, ptr %a344 store { ptr, i64, i64 } %t348, ptr %a350 - store { ptr, i64, i64 } { ptr @.str.5023, i64 1, i64 0 }, ptr %a351 + store { ptr, i64, i64 } { ptr @.str.5230, i64 1, i64 0 }, ptr %a351 call void @finch_str_concat(ptr %a349, ptr %a350, ptr %a351) store { ptr, i64, i64 } %t348, ptr %a352 call void @finch_str_drop(ptr %a352) @@ -79455,24 +83388,24 @@ then7784: call void @finch.gen.emit(ptr %t331, { ptr, i64, i64 } %t353) store { ptr, i64, i64 } %t353, ptr %a354 call void @finch_str_drop(ptr %a354) - br label %endif7786 -else7785: + br label %endif8179 +else8178: %t355 = load { ptr, i64, i64 }, ptr %a206 store { ptr, i64, i64 } %t355, ptr %a356 - store { ptr, i64, i64 } { ptr @.str.5024, i64 4, i64 0 }, ptr %a357 + store { ptr, i64, i64 } { ptr @.str.5231, i64 4, i64 0 }, ptr %a357 %t358 = call i32 @finch_str_eq(ptr %a356, ptr %a357) %t359 = icmp ne i32 %t358, 0 - br i1 %t359, label %then7787, label %else7788 -then7787: + br i1 %t359, label %then8180, label %else8181 +then8180: %t360 = load ptr, ptr %a1 %t361 = getelementptr inbounds %S.gen.Val, ptr %a196, i32 0, i32 0 %t362 = load { ptr, i64, i64 }, ptr %t361 - store { ptr, i64, i64 } { ptr @.str.5025, i64 8, i64 0 }, ptr %a364 + store { ptr, i64, i64 } { ptr @.str.5232, i64 8, i64 0 }, ptr %a364 store { ptr, i64, i64 } %t362, ptr %a365 call void @finch_str_concat(ptr %a363, ptr %a364, ptr %a365) %t366 = load { ptr, i64, i64 }, ptr %a363 store { ptr, i64, i64 } %t366, ptr %a368 - store { ptr, i64, i64 } { ptr @.str.5026, i64 7, i64 0 }, ptr %a369 + store { ptr, i64, i64 } { ptr @.str.5233, i64 7, i64 0 }, ptr %a369 call void @finch_str_concat(ptr %a367, ptr %a368, ptr %a369) store { ptr, i64, i64 } %t366, ptr %a370 call void @finch_str_drop(ptr %a370) @@ -79483,12 +83416,12 @@ then7787: store { ptr, i64, i64 } %t372, ptr %a374 %t375 = load ptr, ptr %a1 %t376 = load { ptr, i64, i64 }, ptr %a199 - store { ptr, i64, i64 } { ptr @.str.5027, i64 35, i64 0 }, ptr %a378 + store { ptr, i64, i64 } { ptr @.str.5234, i64 35, i64 0 }, ptr %a378 store { ptr, i64, i64 } %t376, ptr %a379 call void @finch_str_concat(ptr %a377, ptr %a378, ptr %a379) %t380 = load { ptr, i64, i64 }, ptr %a377 store { ptr, i64, i64 } %t380, ptr %a382 - store { ptr, i64, i64 } { ptr @.str.5028, i64 6, i64 0 }, ptr %a383 + store { ptr, i64, i64 } { ptr @.str.5235, i64 6, i64 0 }, ptr %a383 call void @finch_str_concat(ptr %a381, ptr %a382, ptr %a383) store { ptr, i64, i64 } %t380, ptr %a384 call void @finch_str_drop(ptr %a384) @@ -79501,7 +83434,7 @@ then7787: call void @finch_str_drop(ptr %a390) %t391 = load { ptr, i64, i64 }, ptr %a387 store { ptr, i64, i64 } %t391, ptr %a393 - store { ptr, i64, i64 } { ptr @.str.5029, i64 1, i64 0 }, ptr %a394 + store { ptr, i64, i64 } { ptr @.str.5236, i64 1, i64 0 }, ptr %a394 call void @finch_str_concat(ptr %a392, ptr %a393, ptr %a394) store { ptr, i64, i64 } %t391, ptr %a395 call void @finch_str_drop(ptr %a395) @@ -79510,26 +83443,26 @@ then7787: store { ptr, i64, i64 } %t396, ptr %a397 call void @finch_str_drop(ptr %a397) call void @finch_str_drop(ptr %a374) - br label %endif7789 -else7788: + br label %endif8182 +else8181: %t398 = load { ptr, i64, i64 }, ptr %a206 store { ptr, i64, i64 } %t398, ptr %a399 - store { ptr, i64, i64 } { ptr @.str.5030, i64 3, i64 0 }, ptr %a400 + store { ptr, i64, i64 } { ptr @.str.5237, i64 3, i64 0 }, ptr %a400 %t401 = call i32 @finch_str_eq(ptr %a399, ptr %a400) %t402 = icmp ne i32 %t401, 0 - br i1 %t402, label %then7790, label %else7791 -then7790: + br i1 %t402, label %then8183, label %else8184 +then8183: %t403 = load ptr, ptr %a1 %t404 = load { ptr, i64, i64 }, ptr %a199 - call void @finch.gen.store(ptr %t403, { ptr, i64, i64 } { ptr @.str.5031, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5032, i64 15, i64 0 }, { ptr, i64, i64 } %t404) + call void @finch.gen.store(ptr %t403, { ptr, i64, i64 } { ptr @.str.5238, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5239, i64 15, i64 0 }, { ptr, i64, i64 } %t404) %t405 = load ptr, ptr %a1 %t406 = load { ptr, i64, i64 }, ptr %a199 - store { ptr, i64, i64 } { ptr @.str.5033, i64 32, i64 0 }, ptr %a408 + store { ptr, i64, i64 } { ptr @.str.5240, i64 32, i64 0 }, ptr %a408 store { ptr, i64, i64 } %t406, ptr %a409 call void @finch_str_concat(ptr %a407, ptr %a408, ptr %a409) %t410 = load { ptr, i64, i64 }, ptr %a407 store { ptr, i64, i64 } %t410, ptr %a412 - store { ptr, i64, i64 } { ptr @.str.5034, i64 6, i64 0 }, ptr %a413 + store { ptr, i64, i64 } { ptr @.str.5241, i64 6, i64 0 }, ptr %a413 call void @finch_str_concat(ptr %a411, ptr %a412, ptr %a413) store { ptr, i64, i64 } %t410, ptr %a414 call void @finch_str_drop(ptr %a414) @@ -79543,7 +83476,7 @@ then7790: call void @finch_str_drop(ptr %a421) %t422 = load { ptr, i64, i64 }, ptr %a418 store { ptr, i64, i64 } %t422, ptr %a424 - store { ptr, i64, i64 } { ptr @.str.5035, i64 1, i64 0 }, ptr %a425 + store { ptr, i64, i64 } { ptr @.str.5242, i64 1, i64 0 }, ptr %a425 call void @finch_str_concat(ptr %a423, ptr %a424, ptr %a425) store { ptr, i64, i64 } %t422, ptr %a426 call void @finch_str_drop(ptr %a426) @@ -79552,80 +83485,80 @@ then7790: store { ptr, i64, i64 } %t427, ptr %a428 call void @finch_str_drop(ptr %a428) store i1 true, ptr %a207 - br label %endif7792 -else7791: + br label %endif8185 +else8184: %t429 = load { ptr, i64, i64 }, ptr %a206 store { ptr, i64, i64 } %t429, ptr %a430 - store { ptr, i64, i64 } { ptr @.str.5036, i64 5, i64 0 }, ptr %a431 + store { ptr, i64, i64 } { ptr @.str.5243, i64 5, i64 0 }, ptr %a431 %t432 = call i32 @finch_str_eq(ptr %a430, ptr %a431) %t433 = icmp ne i32 %t432, 0 - br label %logic.from7793 -logic.from7793: - br i1 %t433, label %logic.rhs7794, label %logic.end7795 -logic.rhs7794: + br label %logic.from8186 +logic.from8186: + br i1 %t433, label %logic.rhs8187, label %logic.end8188 +logic.rhs8187: %t434 = getelementptr inbounds %S.gen.Val, ptr %a196, i32 0, i32 1 %t435 = getelementptr inbounds %S.ast.Type, ptr %t434, i32 0, i32 1 %t436 = load { ptr, i64, i64 }, ptr %t435 %t437 = extractvalue { ptr, i64, i64 } %t436, 1 %t438 = icmp uge i64 0, %t437 - br i1 %t438, label %range7796, label %inrange7797 -range7796: - call void @finch_panic_index(ptr @.str.5037, i64 4671, i64 0, i64 %t437) + br i1 %t438, label %range8189, label %inrange8190 +range8189: + call void @finch_panic_index(ptr @.str.5244, i64 4898, i64 0, i64 %t437) unreachable -inrange7797: +inrange8190: %t439 = extractvalue { ptr, i64, i64 } %t436, 0 %t440 = getelementptr inbounds %S.ast.Type, ptr %t439, i64 0 %t441 = getelementptr inbounds %S.ast.Type, ptr %t440, i32 0, i32 0 %t442 = load { ptr, i64, i64 }, ptr %t441 store { ptr, i64, i64 } %t442, ptr %a443 - store { ptr, i64, i64 } { ptr @.str.5038, i64 2, i64 0 }, ptr %a444 + store { ptr, i64, i64 } { ptr @.str.5245, i64 2, i64 0 }, ptr %a444 %t445 = call i32 @finch_str_eq(ptr %a443, ptr %a444) %t446 = icmp ne i32 %t445, 0 - br label %logic.from7798 -logic.from7798: - br i1 %t446, label %logic.end7800, label %logic.rhs7799 -logic.rhs7799: + br label %logic.from8191 +logic.from8191: + br i1 %t446, label %logic.end8193, label %logic.rhs8192 +logic.rhs8192: %t447 = getelementptr inbounds %S.gen.Val, ptr %a196, i32 0, i32 1 %t448 = getelementptr inbounds %S.ast.Type, ptr %t447, i32 0, i32 1 %t449 = load { ptr, i64, i64 }, ptr %t448 %t450 = extractvalue { ptr, i64, i64 } %t449, 1 %t451 = icmp uge i64 0, %t450 - br i1 %t451, label %range7801, label %inrange7802 -range7801: - call void @finch_panic_index(ptr @.str.5039, i64 4671, i64 0, i64 %t450) + br i1 %t451, label %range8194, label %inrange8195 +range8194: + call void @finch_panic_index(ptr @.str.5246, i64 4898, i64 0, i64 %t450) unreachable -inrange7802: +inrange8195: %t452 = extractvalue { ptr, i64, i64 } %t449, 0 %t453 = getelementptr inbounds %S.ast.Type, ptr %t452, i64 0 %t454 = getelementptr inbounds %S.ast.Type, ptr %t453, i32 0, i32 0 %t455 = load { ptr, i64, i64 }, ptr %t454 store { ptr, i64, i64 } %t455, ptr %a456 - store { ptr, i64, i64 } { ptr @.str.5040, i64 4, i64 0 }, ptr %a457 + store { ptr, i64, i64 } { ptr @.str.5247, i64 4, i64 0 }, ptr %a457 %t458 = call i32 @finch_str_eq(ptr %a456, ptr %a457) %t459 = icmp ne i32 %t458, 0 - br label %logic.rend7803 -logic.rend7803: - br label %logic.end7800 -logic.end7800: - %t460 = phi i1 [ true, %logic.from7798 ], [ %t459, %logic.rend7803 ] - br label %logic.rend7804 -logic.rend7804: - br label %logic.end7795 -logic.end7795: - %t461 = phi i1 [ false, %logic.from7793 ], [ %t460, %logic.rend7804 ] - br i1 %t461, label %then7805, label %else7806 -then7805: + br label %logic.rend8196 +logic.rend8196: + br label %logic.end8193 +logic.end8193: + %t460 = phi i1 [ true, %logic.from8191 ], [ %t459, %logic.rend8196 ] + br label %logic.rend8197 +logic.rend8197: + br label %logic.end8188 +logic.end8188: + %t461 = phi i1 [ false, %logic.from8186 ], [ %t460, %logic.rend8197 ] + br i1 %t461, label %then8198, label %else8199 +then8198: %t462 = load ptr, ptr %a1 %t463 = load { ptr, i64, i64 }, ptr %a199 - call void @finch.gen.store(ptr %t462, { ptr, i64, i64 } { ptr @.str.5041, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5042, i64 15, i64 0 }, { ptr, i64, i64 } %t463) + call void @finch.gen.store(ptr %t462, { ptr, i64, i64 } { ptr @.str.5248, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5249, i64 15, i64 0 }, { ptr, i64, i64 } %t463) %t464 = load ptr, ptr %a1 %t465 = load { ptr, i64, i64 }, ptr %a199 - store { ptr, i64, i64 } { ptr @.str.5043, i64 36, i64 0 }, ptr %a467 + store { ptr, i64, i64 } { ptr @.str.5250, i64 36, i64 0 }, ptr %a467 store { ptr, i64, i64 } %t465, ptr %a468 call void @finch_str_concat(ptr %a466, ptr %a467, ptr %a468) %t469 = load { ptr, i64, i64 }, ptr %a466 store { ptr, i64, i64 } %t469, ptr %a471 - store { ptr, i64, i64 } { ptr @.str.5044, i64 6, i64 0 }, ptr %a472 + store { ptr, i64, i64 } { ptr @.str.5251, i64 6, i64 0 }, ptr %a472 call void @finch_str_concat(ptr %a470, ptr %a471, ptr %a472) store { ptr, i64, i64 } %t469, ptr %a473 call void @finch_str_drop(ptr %a473) @@ -79642,7 +83575,7 @@ then7805: call void @finch_str_drop(ptr %a482) %t483 = load { ptr, i64, i64 }, ptr %a478 store { ptr, i64, i64 } %t483, ptr %a485 - store { ptr, i64, i64 } { ptr @.str.5045, i64 1, i64 0 }, ptr %a486 + store { ptr, i64, i64 } { ptr @.str.5252, i64 1, i64 0 }, ptr %a486 call void @finch_str_concat(ptr %a484, ptr %a485, ptr %a486) store { ptr, i64, i64 } %t483, ptr %a487 call void @finch_str_drop(ptr %a487) @@ -79653,88 +83586,88 @@ then7805: %t490 = load ptr, ptr %a1 %t491 = load %S.gen.Val, ptr %a196 call void @finch.gen.release(ptr %t490, %S.gen.Val %t491) - br label %endif7807 -else7806: + br label %endif8200 +else8199: %t492 = load { ptr, i64, i64 }, ptr %a206 store { ptr, i64, i64 } %t492, ptr %a493 - store { ptr, i64, i64 } { ptr @.str.5046, i64 4, i64 0 }, ptr %a494 + store { ptr, i64, i64 } { ptr @.str.5253, i64 4, i64 0 }, ptr %a494 %t495 = call i32 @finch_str_eq(ptr %a493, ptr %a494) %t496 = icmp ne i32 %t495, 0 - br label %logic.from7808 -logic.from7808: - br i1 %t496, label %logic.end7810, label %logic.rhs7809 -logic.rhs7809: + br label %logic.from8201 +logic.from8201: + br i1 %t496, label %logic.end8203, label %logic.rhs8202 +logic.rhs8202: %t497 = load { ptr, i64, i64 }, ptr %a206 store { ptr, i64, i64 } %t497, ptr %a498 - store { ptr, i64, i64 } { ptr @.str.5047, i64 4, i64 0 }, ptr %a499 + store { ptr, i64, i64 } { ptr @.str.5254, i64 4, i64 0 }, ptr %a499 %t500 = call i32 @finch_str_eq(ptr %a498, ptr %a499) %t501 = icmp ne i32 %t500, 0 - br label %logic.rend7811 -logic.rend7811: - br label %logic.end7810 -logic.end7810: - %t502 = phi i1 [ true, %logic.from7808 ], [ %t501, %logic.rend7811 ] - br label %logic.from7812 -logic.from7812: - br i1 %t502, label %logic.end7814, label %logic.rhs7813 -logic.rhs7813: + br label %logic.rend8204 +logic.rend8204: + br label %logic.end8203 +logic.end8203: + %t502 = phi i1 [ true, %logic.from8201 ], [ %t501, %logic.rend8204 ] + br label %logic.from8205 +logic.from8205: + br i1 %t502, label %logic.end8207, label %logic.rhs8206 +logic.rhs8206: %t503 = load { ptr, i64, i64 }, ptr %a206 store { ptr, i64, i64 } %t503, ptr %a504 - store { ptr, i64, i64 } { ptr @.str.5048, i64 5, i64 0 }, ptr %a505 + store { ptr, i64, i64 } { ptr @.str.5255, i64 5, i64 0 }, ptr %a505 %t506 = call i32 @finch_str_eq(ptr %a504, ptr %a505) %t507 = icmp ne i32 %t506, 0 - br label %logic.rend7815 -logic.rend7815: - br label %logic.end7814 -logic.end7814: - %t508 = phi i1 [ true, %logic.from7812 ], [ %t507, %logic.rend7815 ] - br label %logic.from7816 -logic.from7816: - br i1 %t508, label %logic.end7818, label %logic.rhs7817 -logic.rhs7817: + br label %logic.rend8208 +logic.rend8208: + br label %logic.end8207 +logic.end8207: + %t508 = phi i1 [ true, %logic.from8205 ], [ %t507, %logic.rend8208 ] + br label %logic.from8209 +logic.from8209: + br i1 %t508, label %logic.end8211, label %logic.rhs8210 +logic.rhs8210: %t509 = load { ptr, i64, i64 }, ptr %a206 store { ptr, i64, i64 } %t509, ptr %a510 - store { ptr, i64, i64 } { ptr @.str.5049, i64 3, i64 0 }, ptr %a511 + store { ptr, i64, i64 } { ptr @.str.5256, i64 3, i64 0 }, ptr %a511 %t512 = call i32 @finch_str_eq(ptr %a510, ptr %a511) %t513 = icmp ne i32 %t512, 0 - br label %logic.rend7819 -logic.rend7819: - br label %logic.end7818 -logic.end7818: - %t514 = phi i1 [ true, %logic.from7816 ], [ %t513, %logic.rend7819 ] - br label %logic.from7820 -logic.from7820: - br i1 %t514, label %logic.end7822, label %logic.rhs7821 -logic.rhs7821: + br label %logic.rend8212 +logic.rend8212: + br label %logic.end8211 +logic.end8211: + %t514 = phi i1 [ true, %logic.from8209 ], [ %t513, %logic.rend8212 ] + br label %logic.from8213 +logic.from8213: + br i1 %t514, label %logic.end8215, label %logic.rhs8214 +logic.rhs8214: %t515 = load { ptr, i64, i64 }, ptr %a206 store { ptr, i64, i64 } %t515, ptr %a516 - store { ptr, i64, i64 } { ptr @.str.5050, i64 6, i64 0 }, ptr %a517 + store { ptr, i64, i64 } { ptr @.str.5257, i64 6, i64 0 }, ptr %a517 %t518 = call i32 @finch_str_eq(ptr %a516, ptr %a517) %t519 = icmp ne i32 %t518, 0 - br label %logic.rend7823 -logic.rend7823: - br label %logic.end7822 -logic.end7822: - %t520 = phi i1 [ true, %logic.from7820 ], [ %t519, %logic.rend7823 ] - br label %logic.from7824 -logic.from7824: - br i1 %t520, label %logic.end7826, label %logic.rhs7825 -logic.rhs7825: + br label %logic.rend8216 +logic.rend8216: + br label %logic.end8215 +logic.end8215: + %t520 = phi i1 [ true, %logic.from8213 ], [ %t519, %logic.rend8216 ] + br label %logic.from8217 +logic.from8217: + br i1 %t520, label %logic.end8219, label %logic.rhs8218 +logic.rhs8218: %t521 = load { ptr, i64, i64 }, ptr %a206 store { ptr, i64, i64 } %t521, ptr %a522 - store { ptr, i64, i64 } { ptr @.str.5051, i64 4, i64 0 }, ptr %a523 + store { ptr, i64, i64 } { ptr @.str.5258, i64 4, i64 0 }, ptr %a523 %t524 = call i32 @finch_str_eq(ptr %a522, ptr %a523) %t525 = icmp ne i32 %t524, 0 - br label %logic.rend7827 -logic.rend7827: - br label %logic.end7826 -logic.end7826: - %t526 = phi i1 [ true, %logic.from7824 ], [ %t525, %logic.rend7827 ] - br i1 %t526, label %then7828, label %else7829 -then7828: + br label %logic.rend8220 +logic.rend8220: + br label %logic.end8219 +logic.end8219: + %t526 = phi i1 [ true, %logic.from8217 ], [ %t525, %logic.rend8220 ] + br i1 %t526, label %then8221, label %else8222 +then8221: %t527 = load ptr, ptr %a1 %t528 = load { ptr, i64, i64 }, ptr %a199 - call void @finch.gen.store(ptr %t527, { ptr, i64, i64 } { ptr @.str.5052, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5053, i64 15, i64 0 }, { ptr, i64, i64 } %t528) + call void @finch.gen.store(ptr %t527, { ptr, i64, i64 } { ptr @.str.5259, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5260, i64 15, i64 0 }, { ptr, i64, i64 } %t528) %t529 = load ptr, ptr %a1 %t530 = load { ptr, i64, i64 }, ptr %a199 %t531 = getelementptr inbounds %S.gen.Val, ptr %a196, i32 0, i32 0 @@ -79745,32 +83678,32 @@ then7828: %t535 = load ptr, ptr %a1 %t536 = load %S.gen.Val, ptr %a196 call void @finch.gen.release(ptr %t535, %S.gen.Val %t536) - br label %endif7830 -else7829: + br label %endif8223 +else8222: %t537 = load ptr, ptr %a1 %t538 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t539 = load { ptr, i64, i64 }, ptr %t538 %t540 = extractvalue { ptr, i64, i64 } %t539, 1 %t541 = icmp uge i64 0, %t540 - br i1 %t541, label %range7831, label %inrange7832 -range7831: - call void @finch_panic_index(ptr @.str.5054, i64 4681, i64 0, i64 %t540) + br i1 %t541, label %range8224, label %inrange8225 +range8224: + call void @finch_panic_index(ptr @.str.5261, i64 4908, i64 0, i64 %t540) unreachable -inrange7832: +inrange8225: %t542 = extractvalue { ptr, i64, i64 } %t539, 0 %t543 = getelementptr inbounds %S.ast.Node, ptr %t542, i64 0 %t544 = load %S.ast.Node, ptr %t543 %t545 = getelementptr inbounds %S.gen.Val, ptr %a196, i32 0, i32 1 %t546 = load %S.ast.Type, ptr %t545 %t547 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t546) - store { ptr, i64, i64 } { ptr @.str.5055, i64 11, i64 0 }, ptr %a549 + store { ptr, i64, i64 } { ptr @.str.5262, i64 11, i64 0 }, ptr %a549 store { ptr, i64, i64 } %t547, ptr %a550 call void @finch_str_concat(ptr %a548, ptr %a549, ptr %a550) store { ptr, i64, i64 } %t547, ptr %a551 call void @finch_str_drop(ptr %a551) %t552 = load { ptr, i64, i64 }, ptr %a548 store { ptr, i64, i64 } %t552, ptr %a554 - store { ptr, i64, i64 } { ptr @.str.5056, i64 9, i64 0 }, ptr %a555 + store { ptr, i64, i64 } { ptr @.str.5263, i64 9, i64 0 }, ptr %a555 call void @finch_str_concat(ptr %a553, ptr %a554, ptr %a555) store { ptr, i64, i64 } %t552, ptr %a556 call void @finch_str_drop(ptr %a556) @@ -79778,29 +83711,29 @@ inrange7832: call void @finch.gen.fail(ptr %t537, %S.ast.Node %t544, { ptr, i64, i64 } %t557) store { ptr, i64, i64 } %t557, ptr %a558 call void @finch_str_drop(ptr %a558) - br label %endif7830 -endif7830: - br label %endif7807 -endif7807: - br label %endif7792 -endif7792: - br label %endif7789 -endif7789: - br label %endif7786 -endif7786: - br label %endif7783 -endif7783: - br label %endif7780 -endif7780: - br label %endif7777 -endif7777: - br label %endif7774 -endif7774: + br label %endif8223 +endif8223: + br label %endif8200 +endif8200: + br label %endif8185 +endif8185: + br label %endif8182 +endif8182: + br label %endif8179 +endif8179: + br label %endif8176 +endif8176: + br label %endif8173 +endif8173: + br label %endif8170 +endif8170: + br label %endif8167 +endif8167: %t559 = load ptr, ptr %a1 %t560 = load { ptr, i64, i64 }, ptr %a199 - %t561 = call { ptr, i64, i64 } @finch.gen.load(ptr %t559, { ptr, i64, i64 } { ptr @.str.5057, i64 17, i64 0 }, { ptr, i64, i64 } %t560) + %t561 = call { ptr, i64, i64 } @finch.gen.load(ptr %t559, { ptr, i64, i64 } { ptr @.str.5264, i64 17, i64 0 }, { ptr, i64, i64 } %t560) %t562 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t561, 0 - %t563 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5058, i64 3, i64 0 }) + %t563 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5265, i64 3, i64 0 }) %t564 = insertvalue %S.gen.Val %t562, %S.ast.Type %t563, 1 %t565 = load i1, ptr %a207 %t566 = xor i1 %t565, true @@ -79810,15 +83743,15 @@ endif7774: call void @finch.drop.S_gen_Val(ptr %a196) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t567 -endif7769: +endif8162: %t568 = load { ptr, i64, i64 }, ptr %a8 %t569 = call { ptr, i64, i64 } @finch.gen.numType({ ptr, i64, i64 } %t568) store { ptr, i64, i64 } %t569, ptr %a570 %t571 = getelementptr inbounds { ptr, i64, i64 }, ptr %a570, i32 0, i32 1 %t572 = load i64, ptr %t571 %t573 = icmp sgt i64 %t572, 0 - br i1 %t573, label %then7833, label %endif7835 -then7833: + br i1 %t573, label %then8226, label %endif8228 +then8226: %t574 = load ptr, ptr %a1 %t575 = load %S.ast.Node, ptr %a2 %t576 = load { ptr, i64, i64 }, ptr %a570 @@ -79829,28 +83762,28 @@ then7833: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t578 -endif7835: +endif8228: %t580 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t580, ptr %a581 - store { ptr, i64, i64 } { ptr @.str.5059, i64 9, i64 0 }, ptr %a582 + store { ptr, i64, i64 } { ptr @.str.5266, i64 9, i64 0 }, ptr %a582 %t583 = call i32 @finch_str_eq(ptr %a581, ptr %a582) %t584 = icmp ne i32 %t583, 0 - br label %logic.from7836 -logic.from7836: - br i1 %t584, label %logic.end7838, label %logic.rhs7837 -logic.rhs7837: + br label %logic.from8229 +logic.from8229: + br i1 %t584, label %logic.end8231, label %logic.rhs8230 +logic.rhs8230: %t585 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t585, ptr %a586 - store { ptr, i64, i64 } { ptr @.str.5060, i64 11, i64 0 }, ptr %a587 + store { ptr, i64, i64 } { ptr @.str.5267, i64 11, i64 0 }, ptr %a587 %t588 = call i32 @finch_str_eq(ptr %a586, ptr %a587) %t589 = icmp ne i32 %t588, 0 - br label %logic.rend7839 -logic.rend7839: - br label %logic.end7838 -logic.end7838: - %t590 = phi i1 [ true, %logic.from7836 ], [ %t589, %logic.rend7839 ] - br i1 %t590, label %then7840, label %endif7842 -then7840: + br label %logic.rend8232 +logic.rend8232: + br label %logic.end8231 +logic.end8231: + %t590 = phi i1 [ true, %logic.from8229 ], [ %t589, %logic.rend8232 ] + br i1 %t590, label %then8233, label %endif8235 +then8233: %t591 = load ptr, ptr %a1 %t592 = load %S.ast.Node, ptr %a2 %t593 = load { ptr, i64, i64 }, ptr %a8 @@ -79860,15 +83793,15 @@ then7840: %t596 = load { ptr, i64, i64 }, ptr %t595 %t597 = extractvalue { ptr, i64, i64 } %t596, 1 %t598 = icmp uge i64 0, %t597 - br i1 %t598, label %range7843, label %inrange7844 -range7843: - call void @finch_panic_index(ptr @.str.5061, i64 4691, i64 0, i64 %t597) + br i1 %t598, label %range8236, label %inrange8237 +range8236: + call void @finch_panic_index(ptr @.str.5268, i64 4918, i64 0, i64 %t597) unreachable -inrange7844: +inrange8237: %t599 = extractvalue { ptr, i64, i64 } %t596, 0 %t600 = getelementptr inbounds %S.ast.Node, ptr %t599, i64 0 %t601 = load %S.ast.Node, ptr %t600 - %t602 = call %S.gen.Val @finch.gen.strArg(ptr %t594, %S.ast.Node %t601, { ptr, i64, i64 } { ptr @.str.5062, i64 13, i64 0 }) + %t602 = call %S.gen.Val @finch.gen.strArg(ptr %t594, %S.ast.Node %t601, { ptr, i64, i64 } { ptr @.str.5269, i64 13, i64 0 }) store %S.gen.Val %t602, ptr %a603 %t604 = load ptr, ptr %a1 %t605 = load %S.gen.Val, ptr %a603 @@ -79876,19 +83809,19 @@ inrange7844: store { ptr, i64, i64 } %t606, ptr %a607 %t608 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t608, ptr %a609 - store { ptr, i64, i64 } { ptr @.str.5063, i64 11, i64 0 }, ptr %a610 + store { ptr, i64, i64 } { ptr @.str.5270, i64 11, i64 0 }, ptr %a610 %t611 = call i32 @finch_str_eq(ptr %a609, ptr %a610) %t612 = icmp ne i32 %t611, 0 - br i1 %t612, label %then7845, label %endif7847 -then7845: + br i1 %t612, label %then8238, label %endif8240 +then8238: %t613 = load ptr, ptr %a1 %t614 = load { ptr, i64, i64 }, ptr %a607 - store { ptr, i64, i64 } { ptr @.str.5064, i64 32, i64 0 }, ptr %a616 + store { ptr, i64, i64 } { ptr @.str.5271, i64 32, i64 0 }, ptr %a616 store { ptr, i64, i64 } %t614, ptr %a617 call void @finch_str_concat(ptr %a615, ptr %a616, ptr %a617) %t618 = load { ptr, i64, i64 }, ptr %a615 store { ptr, i64, i64 } %t618, ptr %a620 - store { ptr, i64, i64 } { ptr @.str.5065, i64 1, i64 0 }, ptr %a621 + store { ptr, i64, i64 } { ptr @.str.5272, i64 1, i64 0 }, ptr %a621 call void @finch_str_concat(ptr %a619, ptr %a620, ptr %a621) store { ptr, i64, i64 } %t618, ptr %a622 call void @finch_str_drop(ptr %a622) @@ -79902,12 +83835,12 @@ then7845: call void @finch.gen.release(ptr %t627, %S.gen.Val %t628) %t629 = load ptr, ptr %a1 %t630 = load { ptr, i64, i64 }, ptr %a626 - store { ptr, i64, i64 } { ptr @.str.5066, i64 12, i64 0 }, ptr %a632 + store { ptr, i64, i64 } { ptr @.str.5273, i64 12, i64 0 }, ptr %a632 store { ptr, i64, i64 } %t630, ptr %a633 call void @finch_str_concat(ptr %a631, ptr %a632, ptr %a633) %t634 = load { ptr, i64, i64 }, ptr %a631 store { ptr, i64, i64 } %t634, ptr %a636 - store { ptr, i64, i64 } { ptr @.str.5067, i64 3, i64 0 }, ptr %a637 + store { ptr, i64, i64 } { ptr @.str.5274, i64 3, i64 0 }, ptr %a637 call void @finch_str_concat(ptr %a635, ptr %a636, ptr %a637) store { ptr, i64, i64 } %t634, ptr %a638 call void @finch_str_drop(ptr %a638) @@ -79916,7 +83849,7 @@ then7845: store { ptr, i64, i64 } %t639, ptr %a641 call void @finch_str_drop(ptr %a641) %t642 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t640, 0 - %t643 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5068, i64 4, i64 0 }) + %t643 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5275, i64 4, i64 0 }) %t644 = insertvalue %S.gen.Val %t642, %S.ast.Type %t643, 1 call void @finch_str_drop(ptr %a626) call void @finch_str_drop(ptr %a607) @@ -79924,18 +83857,18 @@ then7845: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t644 -endif7847: +endif8240: %t645 = load ptr, ptr %a1 %t646 = call { ptr, i64, i64 } @finch.gen.strOut(ptr %t645) store { ptr, i64, i64 } %t646, ptr %a647 %t648 = load ptr, ptr %a1 %t649 = icmp eq ptr %t648, null - br i1 %t649, label %panic7848, label %ok7849 -panic7848: - call void @finch_panic(ptr @.str.5069, i64 4699, ptr @.str.5070) + br i1 %t649, label %panic8241, label %ok8242 +panic8241: + call void @finch_panic(ptr @.str.5276, i64 4926, ptr @.str.5277) unreachable -ok7849: - %t650 = getelementptr inbounds %S.gen.Gen, ptr %t648, i32 0, i32 40 +ok8242: + %t650 = getelementptr inbounds %S.gen.Gen, ptr %t648, i32 0, i32 41 %t651 = load { ptr, i64, i64 }, ptr %t650 %t652 = load %S.ast.Node, ptr %a2 %t653 = call { ptr, i64, i64 } @finch.gen.nodeKey(%S.ast.Node %t652) @@ -79945,25 +83878,25 @@ ok7849: %t657 = icmp ne i32 %t656, 0 store { ptr, i64, i64 } %t653, ptr %a658 call void @finch_str_drop(ptr %a658) - br i1 %t657, label %then7850, label %endif7852 -then7850: + br i1 %t657, label %then8243, label %endif8245 +then8243: %t659 = load ptr, ptr %a1 - %t660 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t659, { ptr, i64, i64 } { ptr @.str.5071, i64 17, i64 0 }) + %t660 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t659, { ptr, i64, i64 } { ptr @.str.5278, i64 17, i64 0 }) store { ptr, i64, i64 } %t660, ptr %a661 %t662 = load ptr, ptr %a1 %t663 = load { ptr, i64, i64 }, ptr %a647 - call void @finch.gen.store(ptr %t662, { ptr, i64, i64 } { ptr @.str.5072, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5073, i64 15, i64 0 }, { ptr, i64, i64 } %t663) + call void @finch.gen.store(ptr %t662, { ptr, i64, i64 } { ptr @.str.5279, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5280, i64 15, i64 0 }, { ptr, i64, i64 } %t663) %t664 = load ptr, ptr %a1 %t665 = load { ptr, i64, i64 }, ptr %a661 - call void @finch.gen.store(ptr %t664, { ptr, i64, i64 } { ptr @.str.5074, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5075, i64 15, i64 0 }, { ptr, i64, i64 } %t665) + call void @finch.gen.store(ptr %t664, { ptr, i64, i64 } { ptr @.str.5281, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5282, i64 15, i64 0 }, { ptr, i64, i64 } %t665) %t666 = load ptr, ptr %a1 %t667 = load { ptr, i64, i64 }, ptr %a647 - store { ptr, i64, i64 } { ptr @.str.5076, i64 34, i64 0 }, ptr %a669 + store { ptr, i64, i64 } { ptr @.str.5283, i64 34, i64 0 }, ptr %a669 store { ptr, i64, i64 } %t667, ptr %a670 call void @finch_str_concat(ptr %a668, ptr %a669, ptr %a670) %t671 = load { ptr, i64, i64 }, ptr %a668 store { ptr, i64, i64 } %t671, ptr %a673 - store { ptr, i64, i64 } { ptr @.str.5077, i64 6, i64 0 }, ptr %a674 + store { ptr, i64, i64 } { ptr @.str.5284, i64 6, i64 0 }, ptr %a674 call void @finch_str_concat(ptr %a672, ptr %a673, ptr %a674) store { ptr, i64, i64 } %t671, ptr %a675 call void @finch_str_drop(ptr %a675) @@ -79976,7 +83909,7 @@ then7850: call void @finch_str_drop(ptr %a681) %t682 = load { ptr, i64, i64 }, ptr %a678 store { ptr, i64, i64 } %t682, ptr %a684 - store { ptr, i64, i64 } { ptr @.str.5078, i64 6, i64 0 }, ptr %a685 + store { ptr, i64, i64 } { ptr @.str.5285, i64 6, i64 0 }, ptr %a685 call void @finch_str_concat(ptr %a683, ptr %a684, ptr %a685) store { ptr, i64, i64 } %t682, ptr %a686 call void @finch_str_drop(ptr %a686) @@ -79989,7 +83922,7 @@ then7850: call void @finch_str_drop(ptr %a692) %t693 = load { ptr, i64, i64 }, ptr %a689 store { ptr, i64, i64 } %t693, ptr %a695 - store { ptr, i64, i64 } { ptr @.str.5079, i64 1, i64 0 }, ptr %a696 + store { ptr, i64, i64 } { ptr @.str.5286, i64 1, i64 0 }, ptr %a696 call void @finch_str_concat(ptr %a694, ptr %a695, ptr %a696) store { ptr, i64, i64 } %t693, ptr %a697 call void @finch_str_drop(ptr %a697) @@ -80000,12 +83933,12 @@ then7850: store { ptr, i64, i64 } %t699, ptr %a701 %t702 = load ptr, ptr %a1 %t703 = load { ptr, i64, i64 }, ptr %a701 - store { ptr, i64, i64 } { ptr @.str.5080, i64 12, i64 0 }, ptr %a705 + store { ptr, i64, i64 } { ptr @.str.5287, i64 12, i64 0 }, ptr %a705 store { ptr, i64, i64 } %t703, ptr %a706 call void @finch_str_concat(ptr %a704, ptr %a705, ptr %a706) %t707 = load { ptr, i64, i64 }, ptr %a704 store { ptr, i64, i64 } %t707, ptr %a709 - store { ptr, i64, i64 } { ptr @.str.5081, i64 3, i64 0 }, ptr %a710 + store { ptr, i64, i64 } { ptr @.str.5288, i64 3, i64 0 }, ptr %a710 call void @finch_str_concat(ptr %a708, ptr %a709, ptr %a710) store { ptr, i64, i64 } %t707, ptr %a711 call void @finch_str_drop(ptr %a711) @@ -80015,27 +83948,27 @@ then7850: call void @finch_str_drop(ptr %a714) %t715 = load ptr, ptr %a1 %t716 = icmp eq ptr %t715, null - br i1 %t716, label %panic7853, label %ok7854 -panic7853: - call void @finch_panic(ptr @.str.5082, i64 4704, ptr @.str.5083) + br i1 %t716, label %panic8246, label %ok8247 +panic8246: + call void @finch_panic(ptr @.str.5289, i64 4931, ptr @.str.5290) unreachable -ok7854: - %t717 = getelementptr inbounds %S.gen.Gen, ptr %t715, i32 0, i32 41 +ok8247: + %t717 = getelementptr inbounds %S.gen.Gen, ptr %t715, i32 0, i32 42 %t718 = load { ptr, i64, i64 }, ptr %t717 store { ptr, i64, i64 } %t713, ptr %t717 store { ptr, i64, i64 } %t718, ptr %a719 call void @finch_str_drop(ptr %a719) %t720 = load ptr, ptr %a1 %t721 = load { ptr, i64, i64 }, ptr %a661 - %t722 = call { ptr, i64, i64 } @finch.gen.load(ptr %t720, { ptr, i64, i64 } { ptr @.str.5084, i64 17, i64 0 }, { ptr, i64, i64 } %t721) + %t722 = call { ptr, i64, i64 } @finch.gen.load(ptr %t720, { ptr, i64, i64 } { ptr @.str.5291, i64 17, i64 0 }, { ptr, i64, i64 } %t721) %t723 = load ptr, ptr %a1 %t724 = icmp eq ptr %t723, null - br i1 %t724, label %panic7855, label %ok7856 -panic7855: - call void @finch_panic(ptr @.str.5085, i64 4705, ptr @.str.5086) + br i1 %t724, label %panic8248, label %ok8249 +panic8248: + call void @finch_panic(ptr @.str.5292, i64 4932, ptr @.str.5293) unreachable -ok7856: - %t725 = getelementptr inbounds %S.gen.Gen, ptr %t723, i32 0, i32 42 +ok8249: + %t725 = getelementptr inbounds %S.gen.Gen, ptr %t723, i32 0, i32 43 %t726 = load { ptr, i64, i64 }, ptr %t725 store { ptr, i64, i64 } %t722, ptr %t725 store { ptr, i64, i64 } %t726, ptr %a727 @@ -80045,9 +83978,9 @@ ok7856: call void @finch.gen.release(ptr %t728, %S.gen.Val %t729) %t730 = load ptr, ptr %a1 %t731 = load { ptr, i64, i64 }, ptr %a647 - %t732 = call { ptr, i64, i64 } @finch.gen.load(ptr %t730, { ptr, i64, i64 } { ptr @.str.5087, i64 17, i64 0 }, { ptr, i64, i64 } %t731) + %t732 = call { ptr, i64, i64 } @finch.gen.load(ptr %t730, { ptr, i64, i64 } { ptr @.str.5294, i64 17, i64 0 }, { ptr, i64, i64 } %t731) %t733 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t732, 0 - %t734 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5088, i64 3, i64 0 }) + %t734 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5295, i64 3, i64 0 }) %t735 = insertvalue %S.gen.Val %t733, %S.ast.Type %t734, 1 %t736 = insertvalue %S.gen.Val %t735, i1 true, 2 call void @finch_str_drop(ptr %a701) @@ -80058,26 +83991,26 @@ ok7856: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t736 -endif7852: +endif8245: %t737 = load ptr, ptr %a1 %t738 = load ptr, ptr %a1 %t739 = icmp eq ptr %t738, null - br i1 %t739, label %panic7857, label %ok7858 -panic7857: - call void @finch_panic(ptr @.str.5089, i64 4709, ptr @.str.5090) + br i1 %t739, label %panic8250, label %ok8251 +panic8250: + call void @finch_panic(ptr @.str.5296, i64 4936, ptr @.str.5297) unreachable -ok7858: +ok8251: %t740 = getelementptr inbounds %S.gen.Gen, ptr %t738, i32 0, i32 1 %t741 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 13 %t742 = load i64, ptr %t741 %t743 = load { ptr, i64, i64 }, ptr %t740 %t744 = extractvalue { ptr, i64, i64 } %t743, 1 %t745 = icmp uge i64 %t742, %t744 - br i1 %t745, label %range7859, label %inrange7860 -range7859: - call void @finch_panic_index(ptr @.str.5091, i64 4709, i64 %t742, i64 %t744) + br i1 %t745, label %range8252, label %inrange8253 +range8252: + call void @finch_panic_index(ptr @.str.5298, i64 4936, i64 %t742, i64 %t744) unreachable -inrange7860: +inrange8253: %t746 = extractvalue { ptr, i64, i64 } %t743, 0 %t747 = getelementptr inbounds { ptr, i64, i64 }, ptr %t746, i64 %t742 %t748 = load { ptr, i64, i64 }, ptr %t747 @@ -80085,12 +84018,12 @@ inrange7860: store { ptr, i64, i64 } %t749, ptr %a750 %t751 = load ptr, ptr %a1 %t752 = load { ptr, i64, i64 }, ptr %a647 - store { ptr, i64, i64 } { ptr @.str.5092, i64 31, i64 0 }, ptr %a754 + store { ptr, i64, i64 } { ptr @.str.5299, i64 31, i64 0 }, ptr %a754 store { ptr, i64, i64 } %t752, ptr %a755 call void @finch_str_concat(ptr %a753, ptr %a754, ptr %a755) %t756 = load { ptr, i64, i64 }, ptr %a753 store { ptr, i64, i64 } %t756, ptr %a758 - store { ptr, i64, i64 } { ptr @.str.5093, i64 6, i64 0 }, ptr %a759 + store { ptr, i64, i64 } { ptr @.str.5300, i64 6, i64 0 }, ptr %a759 call void @finch_str_concat(ptr %a757, ptr %a758, ptr %a759) store { ptr, i64, i64 } %t756, ptr %a760 call void @finch_str_drop(ptr %a760) @@ -80103,7 +84036,7 @@ inrange7860: call void @finch_str_drop(ptr %a766) %t767 = load { ptr, i64, i64 }, ptr %a763 store { ptr, i64, i64 } %t767, ptr %a769 - store { ptr, i64, i64 } { ptr @.str.5094, i64 6, i64 0 }, ptr %a770 + store { ptr, i64, i64 } { ptr @.str.5301, i64 6, i64 0 }, ptr %a770 call void @finch_str_concat(ptr %a768, ptr %a769, ptr %a770) store { ptr, i64, i64 } %t767, ptr %a771 call void @finch_str_drop(ptr %a771) @@ -80116,7 +84049,7 @@ inrange7860: call void @finch_str_drop(ptr %a777) %t778 = load { ptr, i64, i64 }, ptr %a774 store { ptr, i64, i64 } %t778, ptr %a780 - store { ptr, i64, i64 } { ptr @.str.5095, i64 6, i64 0 }, ptr %a781 + store { ptr, i64, i64 } { ptr @.str.5302, i64 6, i64 0 }, ptr %a781 call void @finch_str_concat(ptr %a779, ptr %a780, ptr %a781) store { ptr, i64, i64 } %t778, ptr %a782 call void @finch_str_drop(ptr %a782) @@ -80134,7 +84067,7 @@ inrange7860: call void @finch_str_drop(ptr %a792) %t793 = load { ptr, i64, i64 }, ptr %a788 store { ptr, i64, i64 } %t793, ptr %a795 - store { ptr, i64, i64 } { ptr @.str.5096, i64 1, i64 0 }, ptr %a796 + store { ptr, i64, i64 } { ptr @.str.5303, i64 1, i64 0 }, ptr %a796 call void @finch_str_concat(ptr %a794, ptr %a795, ptr %a796) store { ptr, i64, i64 } %t793, ptr %a797 call void @finch_str_drop(ptr %a797) @@ -80147,9 +84080,9 @@ inrange7860: call void @finch.gen.release(ptr %t800, %S.gen.Val %t801) %t802 = load ptr, ptr %a1 %t803 = load { ptr, i64, i64 }, ptr %a647 - %t804 = call { ptr, i64, i64 } @finch.gen.load(ptr %t802, { ptr, i64, i64 } { ptr @.str.5097, i64 17, i64 0 }, { ptr, i64, i64 } %t803) + %t804 = call { ptr, i64, i64 } @finch.gen.load(ptr %t802, { ptr, i64, i64 } { ptr @.str.5304, i64 17, i64 0 }, { ptr, i64, i64 } %t803) %t805 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t804, 0 - %t806 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5098, i64 3, i64 0 }) + %t806 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5305, i64 3, i64 0 }) %t807 = insertvalue %S.gen.Val %t805, %S.ast.Type %t806, 1 %t808 = insertvalue %S.gen.Val %t807, i1 true, 2 call void @finch_str_drop(ptr %a750) @@ -80159,14 +84092,14 @@ inrange7860: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t808 -endif7842: +endif8235: %t809 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t809, ptr %a810 - store { ptr, i64, i64 } { ptr @.str.5099, i64 10, i64 0 }, ptr %a811 + store { ptr, i64, i64 } { ptr @.str.5306, i64 10, i64 0 }, ptr %a811 %t812 = call i32 @finch_str_eq(ptr %a810, ptr %a811) %t813 = icmp ne i32 %t812, 0 - br i1 %t813, label %then7861, label %endif7863 -then7861: + br i1 %t813, label %then8254, label %endif8256 +then8254: %t814 = load ptr, ptr %a1 %t815 = load %S.ast.Node, ptr %a2 %t816 = load { ptr, i64, i64 }, ptr %a8 @@ -80176,23 +84109,23 @@ then7861: %t819 = load { ptr, i64, i64 }, ptr %t818 %t820 = extractvalue { ptr, i64, i64 } %t819, 1 %t821 = icmp uge i64 0, %t820 - br i1 %t821, label %range7864, label %inrange7865 -range7864: - call void @finch_panic_index(ptr @.str.5100, i64 4716, i64 0, i64 %t820) + br i1 %t821, label %range8257, label %inrange8258 +range8257: + call void @finch_panic_index(ptr @.str.5307, i64 4943, i64 0, i64 %t820) unreachable -inrange7865: +inrange8258: %t822 = extractvalue { ptr, i64, i64 } %t819, 0 %t823 = getelementptr inbounds %S.ast.Node, ptr %t822, i64 0 %t824 = load %S.ast.Node, ptr %t823 - %t825 = call %S.gen.Val @finch.gen.strArg(ptr %t817, %S.ast.Node %t824, { ptr, i64, i64 } { ptr @.str.5101, i64 13, i64 0 }) + %t825 = call %S.gen.Val @finch.gen.strArg(ptr %t817, %S.ast.Node %t824, { ptr, i64, i64 } { ptr @.str.5308, i64 13, i64 0 }) store %S.gen.Val %t825, ptr %a826 %t827 = load ptr, ptr %a1 %t828 = icmp eq ptr %t827, null - br i1 %t828, label %panic7866, label %ok7867 -panic7866: - call void @finch_panic(ptr @.str.5102, i64 4717, ptr @.str.5103) + br i1 %t828, label %panic8259, label %ok8260 +panic8259: + call void @finch_panic(ptr @.str.5309, i64 4944, ptr @.str.5310) unreachable -ok7867: +ok8260: %t829 = getelementptr inbounds %S.gen.Gen, ptr %t827, i32 0, i32 11 %t830 = getelementptr inbounds { ptr, i64, i64 }, ptr %t829, i32 0, i32 1 %t831 = load i64, ptr %t830 @@ -80205,15 +84138,15 @@ ok7867: %t837 = load { ptr, i64, i64 }, ptr %t836 %t838 = extractvalue { ptr, i64, i64 } %t837, 1 %t839 = icmp uge i64 1, %t838 - br i1 %t839, label %range7868, label %inrange7869 -range7868: - call void @finch_panic_index(ptr @.str.5104, i64 4719, i64 1, i64 %t838) + br i1 %t839, label %range8261, label %inrange8262 +range8261: + call void @finch_panic_index(ptr @.str.5311, i64 4946, i64 1, i64 %t838) unreachable -inrange7869: +inrange8262: %t840 = extractvalue { ptr, i64, i64 } %t837, 0 %t841 = getelementptr inbounds %S.ast.Node, ptr %t840, i64 1 %t842 = load %S.ast.Node, ptr %t841 - %t843 = call %S.gen.Val @finch.gen.strArg(ptr %t835, %S.ast.Node %t842, { ptr, i64, i64 } { ptr @.str.5105, i64 8, i64 0 }) + %t843 = call %S.gen.Val @finch.gen.strArg(ptr %t835, %S.ast.Node %t842, { ptr, i64, i64 } { ptr @.str.5312, i64 8, i64 0 }) store %S.gen.Val %t843, ptr %a844 %t845 = load ptr, ptr %a1 %t846 = load i64, ptr %a832 @@ -80228,12 +84161,12 @@ inrange7869: store { ptr, i64, i64 } %t853, ptr %a854 %t855 = load ptr, ptr %a1 %t856 = icmp eq ptr %t855, null - br i1 %t856, label %panic7870, label %ok7871 -panic7870: - call void @finch_panic(ptr @.str.5106, i64 4723, ptr @.str.5107) + br i1 %t856, label %panic8263, label %ok8264 +panic8263: + call void @finch_panic(ptr @.str.5313, i64 4950, ptr @.str.5314) unreachable -ok7871: - %t857 = getelementptr inbounds %S.gen.Gen, ptr %t855, i32 0, i32 40 +ok8264: + %t857 = getelementptr inbounds %S.gen.Gen, ptr %t855, i32 0, i32 41 %t858 = load { ptr, i64, i64 }, ptr %t857 %t859 = load %S.ast.Node, ptr %a2 %t860 = call { ptr, i64, i64 } @finch.gen.nodeKey(%S.ast.Node %t859) @@ -80243,22 +84176,22 @@ ok7871: %t864 = icmp ne i32 %t863, 0 store { ptr, i64, i64 } %t860, ptr %a865 call void @finch_str_drop(ptr %a865) - br i1 %t864, label %then7872, label %endif7874 -then7872: + br i1 %t864, label %then8265, label %endif8267 +then8265: %t866 = load ptr, ptr %a1 - %t867 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t866, { ptr, i64, i64 } { ptr @.str.5108, i64 17, i64 0 }) + %t867 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t866, { ptr, i64, i64 } { ptr @.str.5315, i64 17, i64 0 }) store { ptr, i64, i64 } %t867, ptr %a868 %t869 = load ptr, ptr %a1 %t870 = load { ptr, i64, i64 }, ptr %a868 - call void @finch.gen.store(ptr %t869, { ptr, i64, i64 } { ptr @.str.5109, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5110, i64 15, i64 0 }, { ptr, i64, i64 } %t870) + call void @finch.gen.store(ptr %t869, { ptr, i64, i64 } { ptr @.str.5316, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5317, i64 15, i64 0 }, { ptr, i64, i64 } %t870) %t871 = load ptr, ptr %a1 %t872 = load { ptr, i64, i64 }, ptr %a850 - store { ptr, i64, i64 } { ptr @.str.5111, i64 35, i64 0 }, ptr %a874 + store { ptr, i64, i64 } { ptr @.str.5318, i64 35, i64 0 }, ptr %a874 store { ptr, i64, i64 } %t872, ptr %a875 call void @finch_str_concat(ptr %a873, ptr %a874, ptr %a875) %t876 = load { ptr, i64, i64 }, ptr %a873 store { ptr, i64, i64 } %t876, ptr %a878 - store { ptr, i64, i64 } { ptr @.str.5112, i64 6, i64 0 }, ptr %a879 + store { ptr, i64, i64 } { ptr @.str.5319, i64 6, i64 0 }, ptr %a879 call void @finch_str_concat(ptr %a877, ptr %a878, ptr %a879) store { ptr, i64, i64 } %t876, ptr %a880 call void @finch_str_drop(ptr %a880) @@ -80271,7 +84204,7 @@ then7872: call void @finch_str_drop(ptr %a886) %t887 = load { ptr, i64, i64 }, ptr %a883 store { ptr, i64, i64 } %t887, ptr %a889 - store { ptr, i64, i64 } { ptr @.str.5113, i64 6, i64 0 }, ptr %a890 + store { ptr, i64, i64 } { ptr @.str.5320, i64 6, i64 0 }, ptr %a890 call void @finch_str_concat(ptr %a888, ptr %a889, ptr %a890) store { ptr, i64, i64 } %t887, ptr %a891 call void @finch_str_drop(ptr %a891) @@ -80284,7 +84217,7 @@ then7872: call void @finch_str_drop(ptr %a897) %t898 = load { ptr, i64, i64 }, ptr %a894 store { ptr, i64, i64 } %t898, ptr %a900 - store { ptr, i64, i64 } { ptr @.str.5114, i64 1, i64 0 }, ptr %a901 + store { ptr, i64, i64 } { ptr @.str.5321, i64 1, i64 0 }, ptr %a901 call void @finch_str_concat(ptr %a899, ptr %a900, ptr %a901) store { ptr, i64, i64 } %t898, ptr %a902 call void @finch_str_drop(ptr %a902) @@ -80295,12 +84228,12 @@ then7872: store { ptr, i64, i64 } %t904, ptr %a906 %t907 = load ptr, ptr %a1 %t908 = load { ptr, i64, i64 }, ptr %a906 - store { ptr, i64, i64 } { ptr @.str.5115, i64 12, i64 0 }, ptr %a910 + store { ptr, i64, i64 } { ptr @.str.5322, i64 12, i64 0 }, ptr %a910 store { ptr, i64, i64 } %t908, ptr %a911 call void @finch_str_concat(ptr %a909, ptr %a910, ptr %a911) %t912 = load { ptr, i64, i64 }, ptr %a909 store { ptr, i64, i64 } %t912, ptr %a914 - store { ptr, i64, i64 } { ptr @.str.5116, i64 3, i64 0 }, ptr %a915 + store { ptr, i64, i64 } { ptr @.str.5323, i64 3, i64 0 }, ptr %a915 call void @finch_str_concat(ptr %a913, ptr %a914, ptr %a915) store { ptr, i64, i64 } %t912, ptr %a916 call void @finch_str_drop(ptr %a916) @@ -80310,27 +84243,27 @@ then7872: call void @finch_str_drop(ptr %a919) %t920 = load ptr, ptr %a1 %t921 = icmp eq ptr %t920, null - br i1 %t921, label %panic7875, label %ok7876 -panic7875: - call void @finch_panic(ptr @.str.5117, i64 4727, ptr @.str.5118) + br i1 %t921, label %panic8268, label %ok8269 +panic8268: + call void @finch_panic(ptr @.str.5324, i64 4954, ptr @.str.5325) unreachable -ok7876: - %t922 = getelementptr inbounds %S.gen.Gen, ptr %t920, i32 0, i32 41 +ok8269: + %t922 = getelementptr inbounds %S.gen.Gen, ptr %t920, i32 0, i32 42 %t923 = load { ptr, i64, i64 }, ptr %t922 store { ptr, i64, i64 } %t918, ptr %t922 store { ptr, i64, i64 } %t923, ptr %a924 call void @finch_str_drop(ptr %a924) %t925 = load ptr, ptr %a1 %t926 = load { ptr, i64, i64 }, ptr %a868 - %t927 = call { ptr, i64, i64 } @finch.gen.load(ptr %t925, { ptr, i64, i64 } { ptr @.str.5119, i64 17, i64 0 }, { ptr, i64, i64 } %t926) + %t927 = call { ptr, i64, i64 } @finch.gen.load(ptr %t925, { ptr, i64, i64 } { ptr @.str.5326, i64 17, i64 0 }, { ptr, i64, i64 } %t926) %t928 = load ptr, ptr %a1 %t929 = icmp eq ptr %t928, null - br i1 %t929, label %panic7877, label %ok7878 -panic7877: - call void @finch_panic(ptr @.str.5120, i64 4728, ptr @.str.5121) + br i1 %t929, label %panic8270, label %ok8271 +panic8270: + call void @finch_panic(ptr @.str.5327, i64 4955, ptr @.str.5328) unreachable -ok7878: - %t930 = getelementptr inbounds %S.gen.Gen, ptr %t928, i32 0, i32 42 +ok8271: + %t930 = getelementptr inbounds %S.gen.Gen, ptr %t928, i32 0, i32 43 %t931 = load { ptr, i64, i64 }, ptr %t930 store { ptr, i64, i64 } %t927, ptr %t930 store { ptr, i64, i64 } %t931, ptr %a932 @@ -80341,7 +84274,7 @@ ok7878: %t935 = load ptr, ptr %a1 %t936 = load %S.gen.Val, ptr %a844 call void @finch.gen.release(ptr %t935, %S.gen.Val %t936) - %t937 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5122, i64 4, i64 0 }) + %t937 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5329, i64 4, i64 0 }) %t938 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t937, 1 call void @finch_str_drop(ptr %a906) call void @finch_str_drop(ptr %a868) @@ -80352,15 +84285,15 @@ ok7878: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t938 -endif7874: +endif8267: %t939 = load ptr, ptr %a1 %t940 = load { ptr, i64, i64 }, ptr %a850 - store { ptr, i64, i64 } { ptr @.str.5123, i64 31, i64 0 }, ptr %a942 + store { ptr, i64, i64 } { ptr @.str.5330, i64 31, i64 0 }, ptr %a942 store { ptr, i64, i64 } %t940, ptr %a943 call void @finch_str_concat(ptr %a941, ptr %a942, ptr %a943) %t944 = load { ptr, i64, i64 }, ptr %a941 store { ptr, i64, i64 } %t944, ptr %a946 - store { ptr, i64, i64 } { ptr @.str.5124, i64 6, i64 0 }, ptr %a947 + store { ptr, i64, i64 } { ptr @.str.5331, i64 6, i64 0 }, ptr %a947 call void @finch_str_concat(ptr %a945, ptr %a946, ptr %a947) store { ptr, i64, i64 } %t944, ptr %a948 call void @finch_str_drop(ptr %a948) @@ -80373,7 +84306,7 @@ endif7874: call void @finch_str_drop(ptr %a954) %t955 = load { ptr, i64, i64 }, ptr %a951 store { ptr, i64, i64 } %t955, ptr %a957 - store { ptr, i64, i64 } { ptr @.str.5125, i64 1, i64 0 }, ptr %a958 + store { ptr, i64, i64 } { ptr @.str.5332, i64 1, i64 0 }, ptr %a958 call void @finch_str_concat(ptr %a956, ptr %a957, ptr %a958) store { ptr, i64, i64 } %t955, ptr %a959 call void @finch_str_drop(ptr %a959) @@ -80390,12 +84323,12 @@ endif7874: call void @finch.gen.release(ptr %t966, %S.gen.Val %t967) %t968 = load ptr, ptr %a1 %t969 = load { ptr, i64, i64 }, ptr %a963 - store { ptr, i64, i64 } { ptr @.str.5126, i64 12, i64 0 }, ptr %a971 + store { ptr, i64, i64 } { ptr @.str.5333, i64 12, i64 0 }, ptr %a971 store { ptr, i64, i64 } %t969, ptr %a972 call void @finch_str_concat(ptr %a970, ptr %a971, ptr %a972) %t973 = load { ptr, i64, i64 }, ptr %a970 store { ptr, i64, i64 } %t973, ptr %a975 - store { ptr, i64, i64 } { ptr @.str.5127, i64 3, i64 0 }, ptr %a976 + store { ptr, i64, i64 } { ptr @.str.5334, i64 3, i64 0 }, ptr %a976 call void @finch_str_concat(ptr %a974, ptr %a975, ptr %a976) store { ptr, i64, i64 } %t973, ptr %a977 call void @finch_str_drop(ptr %a977) @@ -80404,7 +84337,7 @@ endif7874: store { ptr, i64, i64 } %t978, ptr %a980 call void @finch_str_drop(ptr %a980) %t981 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t979, 0 - %t982 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5128, i64 4, i64 0 }) + %t982 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5335, i64 4, i64 0 }) %t983 = insertvalue %S.gen.Val %t981, %S.ast.Type %t982, 1 call void @finch_str_drop(ptr %a963) call void @finch_str_drop(ptr %a854) @@ -80414,14 +84347,14 @@ endif7874: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t983 -endif7863: +endif8256: %t984 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t984, ptr %a985 - store { ptr, i64, i64 } { ptr @.str.5129, i64 11, i64 0 }, ptr %a986 + store { ptr, i64, i64 } { ptr @.str.5336, i64 11, i64 0 }, ptr %a986 %t987 = call i32 @finch_str_eq(ptr %a985, ptr %a986) %t988 = icmp ne i32 %t987, 0 - br i1 %t988, label %then7879, label %endif7881 -then7879: + br i1 %t988, label %then8272, label %endif8274 +then8272: %t989 = load ptr, ptr %a1 %t990 = load %S.ast.Node, ptr %a2 %t991 = load { ptr, i64, i64 }, ptr %a8 @@ -80431,27 +84364,27 @@ then7879: %t994 = load { ptr, i64, i64 }, ptr %t993 %t995 = extractvalue { ptr, i64, i64 } %t994, 1 %t996 = icmp uge i64 0, %t995 - br i1 %t996, label %range7882, label %inrange7883 -range7882: - call void @finch_panic_index(ptr @.str.5130, i64 4740, i64 0, i64 %t995) + br i1 %t996, label %range8275, label %inrange8276 +range8275: + call void @finch_panic_index(ptr @.str.5337, i64 4967, i64 0, i64 %t995) unreachable -inrange7883: +inrange8276: %t997 = extractvalue { ptr, i64, i64 } %t994, 0 %t998 = getelementptr inbounds %S.ast.Node, ptr %t997, i64 0 %t999 = load %S.ast.Node, ptr %t998 - %t1000 = call %S.gen.Val @finch.gen.strArg(ptr %t992, %S.ast.Node %t999, { ptr, i64, i64 } { ptr @.str.5131, i64 13, i64 0 }) + %t1000 = call %S.gen.Val @finch.gen.strArg(ptr %t992, %S.ast.Node %t999, { ptr, i64, i64 } { ptr @.str.5338, i64 13, i64 0 }) store %S.gen.Val %t1000, ptr %a1001 %t1002 = load ptr, ptr %a1 %t1003 = call { ptr, i64, i64 } @finch.gen.strOut(ptr %t1002) store { ptr, i64, i64 } %t1003, ptr %a1004 %t1005 = load ptr, ptr %a1 %t1006 = load { ptr, i64, i64 }, ptr %a1004 - store { ptr, i64, i64 } { ptr @.str.5132, i64 30, i64 0 }, ptr %a1008 + store { ptr, i64, i64 } { ptr @.str.5339, i64 30, i64 0 }, ptr %a1008 store { ptr, i64, i64 } %t1006, ptr %a1009 call void @finch_str_concat(ptr %a1007, ptr %a1008, ptr %a1009) %t1010 = load { ptr, i64, i64 }, ptr %a1007 store { ptr, i64, i64 } %t1010, ptr %a1012 - store { ptr, i64, i64 } { ptr @.str.5133, i64 6, i64 0 }, ptr %a1013 + store { ptr, i64, i64 } { ptr @.str.5340, i64 6, i64 0 }, ptr %a1013 call void @finch_str_concat(ptr %a1011, ptr %a1012, ptr %a1013) store { ptr, i64, i64 } %t1010, ptr %a1014 call void @finch_str_drop(ptr %a1014) @@ -80468,7 +84401,7 @@ inrange7883: call void @finch_str_drop(ptr %a1023) %t1024 = load { ptr, i64, i64 }, ptr %a1019 store { ptr, i64, i64 } %t1024, ptr %a1026 - store { ptr, i64, i64 } { ptr @.str.5134, i64 1, i64 0 }, ptr %a1027 + store { ptr, i64, i64 } { ptr @.str.5341, i64 1, i64 0 }, ptr %a1027 call void @finch_str_concat(ptr %a1025, ptr %a1026, ptr %a1027) store { ptr, i64, i64 } %t1024, ptr %a1028 call void @finch_str_drop(ptr %a1028) @@ -80478,12 +84411,12 @@ inrange7883: call void @finch_str_drop(ptr %a1030) %t1031 = load ptr, ptr %a1 %t1032 = icmp eq ptr %t1031, null - br i1 %t1032, label %panic7884, label %ok7885 -panic7884: - call void @finch_panic(ptr @.str.5135, i64 4743, ptr @.str.5136) + br i1 %t1032, label %panic8277, label %ok8278 +panic8277: + call void @finch_panic(ptr @.str.5342, i64 4970, ptr @.str.5343) unreachable -ok7885: - %t1033 = getelementptr inbounds %S.gen.Gen, ptr %t1031, i32 0, i32 40 +ok8278: + %t1033 = getelementptr inbounds %S.gen.Gen, ptr %t1031, i32 0, i32 41 %t1034 = load { ptr, i64, i64 }, ptr %t1033 %t1035 = load %S.ast.Node, ptr %a2 %t1036 = call { ptr, i64, i64 } @finch.gen.nodeKey(%S.ast.Node %t1035) @@ -80493,22 +84426,22 @@ ok7885: %t1040 = icmp ne i32 %t1039, 0 store { ptr, i64, i64 } %t1036, ptr %a1041 call void @finch_str_drop(ptr %a1041) - br i1 %t1040, label %then7886, label %endif7888 -then7886: + br i1 %t1040, label %then8279, label %endif8281 +then8279: %t1042 = load ptr, ptr %a1 - %t1043 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t1042, { ptr, i64, i64 } { ptr @.str.5137, i64 17, i64 0 }) + %t1043 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t1042, { ptr, i64, i64 } { ptr @.str.5344, i64 17, i64 0 }) store { ptr, i64, i64 } %t1043, ptr %a1044 %t1045 = load ptr, ptr %a1 %t1046 = load { ptr, i64, i64 }, ptr %a1044 - call void @finch.gen.store(ptr %t1045, { ptr, i64, i64 } { ptr @.str.5138, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5139, i64 15, i64 0 }, { ptr, i64, i64 } %t1046) + call void @finch.gen.store(ptr %t1045, { ptr, i64, i64 } { ptr @.str.5345, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.5346, i64 15, i64 0 }, { ptr, i64, i64 } %t1046) %t1047 = load ptr, ptr %a1 %t1048 = load { ptr, i64, i64 }, ptr %a1004 - store { ptr, i64, i64 } { ptr @.str.5140, i64 36, i64 0 }, ptr %a1050 + store { ptr, i64, i64 } { ptr @.str.5347, i64 36, i64 0 }, ptr %a1050 store { ptr, i64, i64 } %t1048, ptr %a1051 call void @finch_str_concat(ptr %a1049, ptr %a1050, ptr %a1051) %t1052 = load { ptr, i64, i64 }, ptr %a1049 store { ptr, i64, i64 } %t1052, ptr %a1054 - store { ptr, i64, i64 } { ptr @.str.5141, i64 6, i64 0 }, ptr %a1055 + store { ptr, i64, i64 } { ptr @.str.5348, i64 6, i64 0 }, ptr %a1055 call void @finch_str_concat(ptr %a1053, ptr %a1054, ptr %a1055) store { ptr, i64, i64 } %t1052, ptr %a1056 call void @finch_str_drop(ptr %a1056) @@ -80521,7 +84454,7 @@ then7886: call void @finch_str_drop(ptr %a1062) %t1063 = load { ptr, i64, i64 }, ptr %a1059 store { ptr, i64, i64 } %t1063, ptr %a1065 - store { ptr, i64, i64 } { ptr @.str.5142, i64 1, i64 0 }, ptr %a1066 + store { ptr, i64, i64 } { ptr @.str.5349, i64 1, i64 0 }, ptr %a1066 call void @finch_str_concat(ptr %a1064, ptr %a1065, ptr %a1066) store { ptr, i64, i64 } %t1063, ptr %a1067 call void @finch_str_drop(ptr %a1067) @@ -80532,12 +84465,12 @@ then7886: store { ptr, i64, i64 } %t1069, ptr %a1071 %t1072 = load ptr, ptr %a1 %t1073 = load { ptr, i64, i64 }, ptr %a1071 - store { ptr, i64, i64 } { ptr @.str.5143, i64 12, i64 0 }, ptr %a1075 + store { ptr, i64, i64 } { ptr @.str.5350, i64 12, i64 0 }, ptr %a1075 store { ptr, i64, i64 } %t1073, ptr %a1076 call void @finch_str_concat(ptr %a1074, ptr %a1075, ptr %a1076) %t1077 = load { ptr, i64, i64 }, ptr %a1074 store { ptr, i64, i64 } %t1077, ptr %a1079 - store { ptr, i64, i64 } { ptr @.str.5144, i64 3, i64 0 }, ptr %a1080 + store { ptr, i64, i64 } { ptr @.str.5351, i64 3, i64 0 }, ptr %a1080 call void @finch_str_concat(ptr %a1078, ptr %a1079, ptr %a1080) store { ptr, i64, i64 } %t1077, ptr %a1081 call void @finch_str_drop(ptr %a1081) @@ -80547,41 +84480,41 @@ then7886: call void @finch_str_drop(ptr %a1084) %t1085 = load ptr, ptr %a1 %t1086 = icmp eq ptr %t1085, null - br i1 %t1086, label %panic7889, label %ok7890 -panic7889: - call void @finch_panic(ptr @.str.5145, i64 4747, ptr @.str.5146) + br i1 %t1086, label %panic8282, label %ok8283 +panic8282: + call void @finch_panic(ptr @.str.5352, i64 4974, ptr @.str.5353) unreachable -ok7890: - %t1087 = getelementptr inbounds %S.gen.Gen, ptr %t1085, i32 0, i32 41 +ok8283: + %t1087 = getelementptr inbounds %S.gen.Gen, ptr %t1085, i32 0, i32 42 %t1088 = load { ptr, i64, i64 }, ptr %t1087 store { ptr, i64, i64 } %t1083, ptr %t1087 store { ptr, i64, i64 } %t1088, ptr %a1089 call void @finch_str_drop(ptr %a1089) %t1090 = load ptr, ptr %a1 %t1091 = load { ptr, i64, i64 }, ptr %a1044 - %t1092 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1090, { ptr, i64, i64 } { ptr @.str.5147, i64 17, i64 0 }, { ptr, i64, i64 } %t1091) + %t1092 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1090, { ptr, i64, i64 } { ptr @.str.5354, i64 17, i64 0 }, { ptr, i64, i64 } %t1091) %t1093 = load ptr, ptr %a1 %t1094 = icmp eq ptr %t1093, null - br i1 %t1094, label %panic7891, label %ok7892 -panic7891: - call void @finch_panic(ptr @.str.5148, i64 4748, ptr @.str.5149) + br i1 %t1094, label %panic8284, label %ok8285 +panic8284: + call void @finch_panic(ptr @.str.5355, i64 4975, ptr @.str.5356) unreachable -ok7892: - %t1095 = getelementptr inbounds %S.gen.Gen, ptr %t1093, i32 0, i32 42 +ok8285: + %t1095 = getelementptr inbounds %S.gen.Gen, ptr %t1093, i32 0, i32 43 %t1096 = load { ptr, i64, i64 }, ptr %t1095 store { ptr, i64, i64 } %t1092, ptr %t1095 store { ptr, i64, i64 } %t1096, ptr %a1097 call void @finch_str_drop(ptr %a1097) %t1098 = load ptr, ptr %a1 %t1099 = load { ptr, i64, i64 }, ptr %a1004 - %t1100 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5150, i64 3, i64 0 }) + %t1100 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5357, i64 3, i64 0 }) call void @finch.gen.dropAt(ptr %t1098, { ptr, i64, i64 } %t1099, %S.ast.Type %t1100) store %S.ast.Type %t1100, ptr %a1101 call void @finch.drop.S_ast_Type(ptr %a1101) %t1102 = load ptr, ptr %a1 %t1103 = load %S.gen.Val, ptr %a1001 call void @finch.gen.release(ptr %t1102, %S.gen.Val %t1103) - %t1104 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5151, i64 4, i64 0 }) + %t1104 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5358, i64 4, i64 0 }) %t1105 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t1104, 1 call void @finch_str_drop(ptr %a1071) call void @finch_str_drop(ptr %a1044) @@ -80590,15 +84523,15 @@ ok7892: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t1105 -endif7888: +endif8281: %t1106 = load ptr, ptr %a1 %t1107 = load { ptr, i64, i64 }, ptr %a1004 - store { ptr, i64, i64 } { ptr @.str.5152, i64 32, i64 0 }, ptr %a1109 + store { ptr, i64, i64 } { ptr @.str.5359, i64 32, i64 0 }, ptr %a1109 store { ptr, i64, i64 } %t1107, ptr %a1110 call void @finch_str_concat(ptr %a1108, ptr %a1109, ptr %a1110) %t1111 = load { ptr, i64, i64 }, ptr %a1108 store { ptr, i64, i64 } %t1111, ptr %a1113 - store { ptr, i64, i64 } { ptr @.str.5153, i64 1, i64 0 }, ptr %a1114 + store { ptr, i64, i64 } { ptr @.str.5360, i64 1, i64 0 }, ptr %a1114 call void @finch_str_concat(ptr %a1112, ptr %a1113, ptr %a1114) store { ptr, i64, i64 } %t1111, ptr %a1115 call void @finch_str_drop(ptr %a1115) @@ -80609,7 +84542,7 @@ endif7888: store { ptr, i64, i64 } %t1117, ptr %a1119 %t1120 = load ptr, ptr %a1 %t1121 = load { ptr, i64, i64 }, ptr %a1004 - %t1122 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5154, i64 3, i64 0 }) + %t1122 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5361, i64 3, i64 0 }) call void @finch.gen.dropAt(ptr %t1120, { ptr, i64, i64 } %t1121, %S.ast.Type %t1122) store %S.ast.Type %t1122, ptr %a1123 call void @finch.drop.S_ast_Type(ptr %a1123) @@ -80618,12 +84551,12 @@ endif7888: call void @finch.gen.release(ptr %t1124, %S.gen.Val %t1125) %t1126 = load ptr, ptr %a1 %t1127 = load { ptr, i64, i64 }, ptr %a1119 - store { ptr, i64, i64 } { ptr @.str.5155, i64 12, i64 0 }, ptr %a1129 + store { ptr, i64, i64 } { ptr @.str.5362, i64 12, i64 0 }, ptr %a1129 store { ptr, i64, i64 } %t1127, ptr %a1130 call void @finch_str_concat(ptr %a1128, ptr %a1129, ptr %a1130) %t1131 = load { ptr, i64, i64 }, ptr %a1128 store { ptr, i64, i64 } %t1131, ptr %a1133 - store { ptr, i64, i64 } { ptr @.str.5156, i64 3, i64 0 }, ptr %a1134 + store { ptr, i64, i64 } { ptr @.str.5363, i64 3, i64 0 }, ptr %a1134 call void @finch_str_concat(ptr %a1132, ptr %a1133, ptr %a1134) store { ptr, i64, i64 } %t1131, ptr %a1135 call void @finch_str_drop(ptr %a1135) @@ -80632,7 +84565,7 @@ endif7888: store { ptr, i64, i64 } %t1136, ptr %a1138 call void @finch_str_drop(ptr %a1138) %t1139 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t1137, 0 - %t1140 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5157, i64 4, i64 0 }) + %t1140 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5364, i64 4, i64 0 }) %t1141 = insertvalue %S.gen.Val %t1139, %S.ast.Type %t1140, 1 call void @finch_str_drop(ptr %a1119) call void @finch_str_drop(ptr %a1004) @@ -80640,14 +84573,14 @@ endif7888: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t1141 -endif7881: +endif8274: %t1142 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t1142, ptr %a1143 - store { ptr, i64, i64 } { ptr @.str.5158, i64 5, i64 0 }, ptr %a1144 + store { ptr, i64, i64 } { ptr @.str.5365, i64 5, i64 0 }, ptr %a1144 %t1145 = call i32 @finch_str_eq(ptr %a1143, ptr %a1144) %t1146 = icmp ne i32 %t1145, 0 - br i1 %t1146, label %then7893, label %endif7895 -then7893: + br i1 %t1146, label %then8286, label %endif8288 +then8286: %t1147 = load ptr, ptr %a1 %t1148 = load %S.ast.Node, ptr %a2 %t1149 = load { ptr, i64, i64 }, ptr %a8 @@ -80657,27 +84590,27 @@ then7893: %t1152 = load { ptr, i64, i64 }, ptr %t1151 %t1153 = extractvalue { ptr, i64, i64 } %t1152, 1 %t1154 = icmp uge i64 0, %t1153 - br i1 %t1154, label %range7896, label %inrange7897 -range7896: - call void @finch_panic_index(ptr @.str.5159, i64 4760, i64 0, i64 %t1153) + br i1 %t1154, label %range8289, label %inrange8290 +range8289: + call void @finch_panic_index(ptr @.str.5366, i64 4987, i64 0, i64 %t1153) unreachable -inrange7897: +inrange8290: %t1155 = extractvalue { ptr, i64, i64 } %t1152, 0 %t1156 = getelementptr inbounds %S.ast.Node, ptr %t1155, i64 0 %t1157 = load %S.ast.Node, ptr %t1156 - %t1158 = call %S.gen.Val @finch.gen.strArg(ptr %t1150, %S.ast.Node %t1157, { ptr, i64, i64 } { ptr @.str.5160, i64 11, i64 0 }) + %t1158 = call %S.gen.Val @finch.gen.strArg(ptr %t1150, %S.ast.Node %t1157, { ptr, i64, i64 } { ptr @.str.5367, i64 11, i64 0 }) store %S.gen.Val %t1158, ptr %a1159 %t1160 = load ptr, ptr %a1 %t1161 = call { ptr, i64, i64 } @finch.gen.strOut(ptr %t1160) store { ptr, i64, i64 } %t1161, ptr %a1162 %t1163 = load ptr, ptr %a1 %t1164 = load { ptr, i64, i64 }, ptr %a1162 - store { ptr, i64, i64 } { ptr @.str.5161, i64 30, i64 0 }, ptr %a1166 + store { ptr, i64, i64 } { ptr @.str.5368, i64 30, i64 0 }, ptr %a1166 store { ptr, i64, i64 } %t1164, ptr %a1167 call void @finch_str_concat(ptr %a1165, ptr %a1166, ptr %a1167) %t1168 = load { ptr, i64, i64 }, ptr %a1165 store { ptr, i64, i64 } %t1168, ptr %a1170 - store { ptr, i64, i64 } { ptr @.str.5162, i64 6, i64 0 }, ptr %a1171 + store { ptr, i64, i64 } { ptr @.str.5369, i64 6, i64 0 }, ptr %a1171 call void @finch_str_concat(ptr %a1169, ptr %a1170, ptr %a1171) store { ptr, i64, i64 } %t1168, ptr %a1172 call void @finch_str_drop(ptr %a1172) @@ -80694,7 +84627,7 @@ inrange7897: call void @finch_str_drop(ptr %a1181) %t1182 = load { ptr, i64, i64 }, ptr %a1177 store { ptr, i64, i64 } %t1182, ptr %a1184 - store { ptr, i64, i64 } { ptr @.str.5163, i64 1, i64 0 }, ptr %a1185 + store { ptr, i64, i64 } { ptr @.str.5370, i64 1, i64 0 }, ptr %a1185 call void @finch_str_concat(ptr %a1183, ptr %a1184, ptr %a1185) store { ptr, i64, i64 } %t1182, ptr %a1186 call void @finch_str_drop(ptr %a1186) @@ -80704,12 +84637,12 @@ inrange7897: call void @finch_str_drop(ptr %a1188) %t1189 = load ptr, ptr %a1 %t1190 = load { ptr, i64, i64 }, ptr %a1162 - store { ptr, i64, i64 } { ptr @.str.5164, i64 26, i64 0 }, ptr %a1192 + store { ptr, i64, i64 } { ptr @.str.5371, i64 26, i64 0 }, ptr %a1192 store { ptr, i64, i64 } %t1190, ptr %a1193 call void @finch_str_concat(ptr %a1191, ptr %a1192, ptr %a1193) %t1194 = load { ptr, i64, i64 }, ptr %a1191 store { ptr, i64, i64 } %t1194, ptr %a1196 - store { ptr, i64, i64 } { ptr @.str.5165, i64 1, i64 0 }, ptr %a1197 + store { ptr, i64, i64 } { ptr @.str.5372, i64 1, i64 0 }, ptr %a1197 call void @finch_str_concat(ptr %a1195, ptr %a1196, ptr %a1197) store { ptr, i64, i64 } %t1194, ptr %a1198 call void @finch_str_drop(ptr %a1198) @@ -80720,7 +84653,7 @@ inrange7897: store { ptr, i64, i64 } %t1200, ptr %a1202 %t1203 = load ptr, ptr %a1 %t1204 = load { ptr, i64, i64 }, ptr %a1162 - %t1205 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5166, i64 3, i64 0 }) + %t1205 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5373, i64 3, i64 0 }) call void @finch.gen.dropAt(ptr %t1203, { ptr, i64, i64 } %t1204, %S.ast.Type %t1205) store %S.ast.Type %t1205, ptr %a1206 call void @finch.drop.S_ast_Type(ptr %a1206) @@ -80732,7 +84665,7 @@ inrange7897: call void @finch_str_copy(ptr %a1211, ptr %a1210) %t1212 = load { ptr, i64, i64 }, ptr %a1211 %t1213 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t1212, 0 - %t1214 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5167, i64 3, i64 0 }) + %t1214 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5374, i64 3, i64 0 }) %t1215 = insertvalue %S.gen.Val %t1213, %S.ast.Type %t1214, 1 call void @finch_str_drop(ptr %a1202) call void @finch_str_drop(ptr %a1162) @@ -80740,14 +84673,14 @@ inrange7897: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t1215 -endif7895: +endif8288: %t1216 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t1216, ptr %a1217 - store { ptr, i64, i64 } { ptr @.str.5168, i64 4, i64 0 }, ptr %a1218 + store { ptr, i64, i64 } { ptr @.str.5375, i64 4, i64 0 }, ptr %a1218 %t1219 = call i32 @finch_str_eq(ptr %a1217, ptr %a1218) %t1220 = icmp ne i32 %t1219, 0 - br i1 %t1220, label %then7898, label %endif7900 -then7898: + br i1 %t1220, label %then8291, label %endif8293 +then8291: %t1221 = load ptr, ptr %a1 %t1222 = load %S.ast.Node, ptr %a2 %t1223 = load { ptr, i64, i64 }, ptr %a8 @@ -80758,29 +84691,29 @@ then7898: %t1227 = load { ptr, i64, i64 }, ptr %t1226 %t1228 = extractvalue { ptr, i64, i64 } %t1227, 1 %t1229 = icmp uge i64 0, %t1228 - br i1 %t1229, label %range7901, label %inrange7902 -range7901: - call void @finch_panic_index(ptr @.str.5169, i64 4770, i64 0, i64 %t1228) + br i1 %t1229, label %range8294, label %inrange8295 +range8294: + call void @finch_panic_index(ptr @.str.5376, i64 4997, i64 0, i64 %t1228) unreachable -inrange7902: +inrange8295: %t1230 = extractvalue { ptr, i64, i64 } %t1227, 0 %t1231 = getelementptr inbounds %S.ast.Node, ptr %t1230, i64 0 %t1232 = load %S.ast.Node, ptr %t1231 %t1233 = call %S.gen.Val @finch.gen.expr(ptr %t1225, %S.ast.Node %t1232) - %t1234 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5170, i64 3, i64 0 }) + %t1234 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5377, i64 3, i64 0 }) %t1235 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t1236 = load { ptr, i64, i64 }, ptr %t1235 %t1237 = extractvalue { ptr, i64, i64 } %t1236, 1 %t1238 = icmp uge i64 0, %t1237 - br i1 %t1238, label %range7903, label %inrange7904 -range7903: - call void @finch_panic_index(ptr @.str.5171, i64 4770, i64 0, i64 %t1237) + br i1 %t1238, label %range8296, label %inrange8297 +range8296: + call void @finch_panic_index(ptr @.str.5378, i64 4997, i64 0, i64 %t1237) unreachable -inrange7904: +inrange8297: %t1239 = extractvalue { ptr, i64, i64 } %t1236, 0 %t1240 = getelementptr inbounds %S.ast.Node, ptr %t1239, i64 0 %t1241 = load %S.ast.Node, ptr %t1240 - %t1242 = call %S.gen.Val @finch.gen.coerce(ptr %t1224, %S.gen.Val %t1233, %S.ast.Type %t1234, %S.ast.Node %t1241, { ptr, i64, i64 } { ptr @.str.5172, i64 13, i64 0 }) + %t1242 = call %S.gen.Val @finch.gen.coerce(ptr %t1224, %S.gen.Val %t1233, %S.ast.Type %t1234, %S.ast.Node %t1241, { ptr, i64, i64 } { ptr @.str.5379, i64 13, i64 0 }) store %S.gen.Val %t1233, ptr %a1243 call void @finch.drop.S_gen_Val(ptr %a1243) store %S.ast.Type %t1234, ptr %a1244 @@ -80789,12 +84722,12 @@ inrange7904: %t1246 = load ptr, ptr %a1 %t1247 = getelementptr inbounds %S.gen.Val, ptr %a1245, i32 0, i32 0 %t1248 = load { ptr, i64, i64 }, ptr %t1247 - store { ptr, i64, i64 } { ptr @.str.5173, i64 10, i64 0 }, ptr %a1250 + store { ptr, i64, i64 } { ptr @.str.5380, i64 10, i64 0 }, ptr %a1250 store { ptr, i64, i64 } %t1248, ptr %a1251 call void @finch_str_concat(ptr %a1249, ptr %a1250, ptr %a1251) %t1252 = load { ptr, i64, i64 }, ptr %a1249 store { ptr, i64, i64 } %t1252, ptr %a1254 - store { ptr, i64, i64 } { ptr @.str.5174, i64 7, i64 0 }, ptr %a1255 + store { ptr, i64, i64 } { ptr @.str.5381, i64 7, i64 0 }, ptr %a1255 call void @finch_str_concat(ptr %a1253, ptr %a1254, ptr %a1255) store { ptr, i64, i64 } %t1252, ptr %a1256 call void @finch_str_drop(ptr %a1256) @@ -80804,16 +84737,16 @@ inrange7904: call void @finch_str_drop(ptr %a1259) store { ptr, i64, i64 } %t1258, ptr %a1260 %t1261 = load ptr, ptr %a1 - %t1262 = call { ptr, i64, i64 } @finch.gen.op(ptr %t1261, { ptr, i64, i64 } { ptr @.str.5175, i64 26, i64 0 }) + %t1262 = call { ptr, i64, i64 } @finch.gen.op(ptr %t1261, { ptr, i64, i64 } { ptr @.str.5382, i64 26, i64 0 }) store { ptr, i64, i64 } %t1262, ptr %a1263 %t1264 = load ptr, ptr %a1 %t1265 = load { ptr, i64, i64 }, ptr %a1260 - store { ptr, i64, i64 } { ptr @.str.5176, i64 20, i64 0 }, ptr %a1267 + store { ptr, i64, i64 } { ptr @.str.5383, i64 20, i64 0 }, ptr %a1267 store { ptr, i64, i64 } %t1265, ptr %a1268 call void @finch_str_concat(ptr %a1266, ptr %a1267, ptr %a1268) %t1269 = load { ptr, i64, i64 }, ptr %a1266 store { ptr, i64, i64 } %t1269, ptr %a1271 - store { ptr, i64, i64 } { ptr @.str.5177, i64 1, i64 0 }, ptr %a1272 + store { ptr, i64, i64 } { ptr @.str.5384, i64 1, i64 0 }, ptr %a1272 call void @finch_str_concat(ptr %a1270, ptr %a1271, ptr %a1272) store { ptr, i64, i64 } %t1269, ptr %a1273 call void @finch_str_drop(ptr %a1273) @@ -80821,7 +84754,7 @@ inrange7904: call void @finch.gen.emit(ptr %t1264, { ptr, i64, i64 } %t1274) store { ptr, i64, i64 } %t1274, ptr %a1275 call void @finch_str_drop(ptr %a1275) - %t1276 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5178, i64 4, i64 0 }) + %t1276 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5385, i64 4, i64 0 }) %t1277 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t1276, 1 call void @finch_str_drop(ptr %a1263) call void @finch_str_drop(ptr %a1260) @@ -80829,23 +84762,23 @@ inrange7904: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t1277 -endif7900: +endif8293: %t1278 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t1278, ptr %a1279 - store { ptr, i64, i64 } { ptr @.str.5179, i64 5, i64 0 }, ptr %a1280 + store { ptr, i64, i64 } { ptr @.str.5386, i64 5, i64 0 }, ptr %a1280 %t1281 = call i32 @finch_str_eq(ptr %a1279, ptr %a1280) %t1282 = icmp ne i32 %t1281, 0 - br i1 %t1282, label %then7905, label %endif7907 -then7905: + br i1 %t1282, label %then8298, label %endif8300 +then8298: %t1283 = load ptr, ptr %a1 - %t1284 = call %S.gen.Val @finch.gen.strConst(ptr %t1283, { ptr, i64, i64 } { ptr @.str.5180, i64 0, i64 0 }) + %t1284 = call %S.gen.Val @finch.gen.strConst(ptr %t1283, { ptr, i64, i64 } { ptr @.str.5387, i64 0, i64 0 }) store %S.gen.Val %t1284, ptr %a1285 %t1286 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t1287 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1286, i32 0, i32 1 %t1288 = load i64, ptr %t1287 %t1289 = icmp sgt i64 %t1288, 0 - br i1 %t1289, label %then7908, label %endif7910 -then7908: + br i1 %t1289, label %then8301, label %endif8303 +then8301: %t1290 = load ptr, ptr %a1 %t1291 = load %S.ast.Node, ptr %a2 %t1292 = load { ptr, i64, i64 }, ptr %a8 @@ -80855,32 +84788,32 @@ then7908: %t1295 = load { ptr, i64, i64 }, ptr %t1294 %t1296 = extractvalue { ptr, i64, i64 } %t1295, 1 %t1297 = icmp uge i64 0, %t1296 - br i1 %t1297, label %range7911, label %inrange7912 -range7911: - call void @finch_panic_index(ptr @.str.5181, i64 4780, i64 0, i64 %t1296) + br i1 %t1297, label %range8304, label %inrange8305 +range8304: + call void @finch_panic_index(ptr @.str.5388, i64 5007, i64 0, i64 %t1296) unreachable -inrange7912: +inrange8305: %t1298 = extractvalue { ptr, i64, i64 } %t1295, 0 %t1299 = getelementptr inbounds %S.ast.Node, ptr %t1298, i64 0 %t1300 = load %S.ast.Node, ptr %t1299 - %t1301 = call %S.gen.Val @finch.gen.strArg(ptr %t1293, %S.ast.Node %t1300, { ptr, i64, i64 } { ptr @.str.5182, i64 12, i64 0 }) + %t1301 = call %S.gen.Val @finch.gen.strArg(ptr %t1293, %S.ast.Node %t1300, { ptr, i64, i64 } { ptr @.str.5389, i64 12, i64 0 }) %t1302 = load %S.gen.Val, ptr %a1285 store %S.gen.Val %t1301, ptr %a1285 store %S.gen.Val %t1302, ptr %a1303 call void @finch.drop.S_gen_Val(ptr %a1303) - br label %endif7910 -endif7910: + br label %endif8303 +endif8303: %t1304 = load ptr, ptr %a1 %t1305 = call { ptr, i64, i64 } @finch.gen.strOut(ptr %t1304) store { ptr, i64, i64 } %t1305, ptr %a1306 %t1307 = load ptr, ptr %a1 %t1308 = load { ptr, i64, i64 }, ptr %a1306 - store { ptr, i64, i64 } { ptr @.str.5183, i64 27, i64 0 }, ptr %a1310 + store { ptr, i64, i64 } { ptr @.str.5390, i64 27, i64 0 }, ptr %a1310 store { ptr, i64, i64 } %t1308, ptr %a1311 call void @finch_str_concat(ptr %a1309, ptr %a1310, ptr %a1311) %t1312 = load { ptr, i64, i64 }, ptr %a1309 store { ptr, i64, i64 } %t1312, ptr %a1314 - store { ptr, i64, i64 } { ptr @.str.5184, i64 6, i64 0 }, ptr %a1315 + store { ptr, i64, i64 } { ptr @.str.5391, i64 6, i64 0 }, ptr %a1315 call void @finch_str_concat(ptr %a1313, ptr %a1314, ptr %a1315) store { ptr, i64, i64 } %t1312, ptr %a1316 call void @finch_str_drop(ptr %a1316) @@ -80897,7 +84830,7 @@ endif7910: call void @finch_str_drop(ptr %a1325) %t1326 = load { ptr, i64, i64 }, ptr %a1321 store { ptr, i64, i64 } %t1326, ptr %a1328 - store { ptr, i64, i64 } { ptr @.str.5185, i64 1, i64 0 }, ptr %a1329 + store { ptr, i64, i64 } { ptr @.str.5392, i64 1, i64 0 }, ptr %a1329 call void @finch_str_concat(ptr %a1327, ptr %a1328, ptr %a1329) store { ptr, i64, i64 } %t1326, ptr %a1330 call void @finch_str_drop(ptr %a1330) @@ -80910,9 +84843,9 @@ endif7910: call void @finch.gen.release(ptr %t1333, %S.gen.Val %t1334) %t1335 = load ptr, ptr %a1 %t1336 = load { ptr, i64, i64 }, ptr %a1306 - %t1337 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1335, { ptr, i64, i64 } { ptr @.str.5186, i64 17, i64 0 }, { ptr, i64, i64 } %t1336) + %t1337 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1335, { ptr, i64, i64 } { ptr @.str.5393, i64 17, i64 0 }, { ptr, i64, i64 } %t1336) %t1338 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t1337, 0 - %t1339 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5187, i64 3, i64 0 }) + %t1339 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5394, i64 3, i64 0 }) %t1340 = insertvalue %S.gen.Val %t1338, %S.ast.Type %t1339, 1 %t1341 = insertvalue %S.gen.Val %t1340, i1 true, 2 call void @finch_str_drop(ptr %a1306) @@ -80920,14 +84853,14 @@ endif7910: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t1341 -endif7907: +endif8300: %t1342 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t1342, ptr %a1343 - store { ptr, i64, i64 } { ptr @.str.5188, i64 3, i64 0 }, ptr %a1344 + store { ptr, i64, i64 } { ptr @.str.5395, i64 3, i64 0 }, ptr %a1344 %t1345 = call i32 @finch_str_eq(ptr %a1343, ptr %a1344) %t1346 = icmp ne i32 %t1345, 0 - br i1 %t1346, label %then7913, label %endif7915 -then7913: + br i1 %t1346, label %then8306, label %endif8308 +then8306: %t1347 = load ptr, ptr %a1 %t1348 = load %S.ast.Node, ptr %a2 %t1349 = load { ptr, i64, i64 }, ptr %a8 @@ -80937,11 +84870,11 @@ then7913: %t1352 = load { ptr, i64, i64 }, ptr %t1351 %t1353 = extractvalue { ptr, i64, i64 } %t1352, 1 %t1354 = icmp uge i64 0, %t1353 - br i1 %t1354, label %range7916, label %inrange7917 -range7916: - call void @finch_panic_index(ptr @.str.5189, i64 4789, i64 0, i64 %t1353) + br i1 %t1354, label %range8309, label %inrange8310 +range8309: + call void @finch_panic_index(ptr @.str.5396, i64 5016, i64 0, i64 %t1353) unreachable -inrange7917: +inrange8310: %t1355 = extractvalue { ptr, i64, i64 } %t1352, 0 %t1356 = getelementptr inbounds %S.ast.Node, ptr %t1355, i64 0 %t1357 = load %S.ast.Node, ptr %t1356 @@ -80952,14 +84885,14 @@ inrange7917: %t1362 = getelementptr inbounds %S.gen.Val, ptr %a1359, i32 0, i32 1 %t1363 = load %S.ast.Type, ptr %t1362 %t1364 = call { ptr, i64, i64 } @finch.gen.sizeOf(ptr %t1361, %S.ast.Type %t1363) - store { ptr, i64, i64 } { ptr @.str.5190, i64 26, i64 0 }, ptr %a1366 + store { ptr, i64, i64 } { ptr @.str.5397, i64 26, i64 0 }, ptr %a1366 store { ptr, i64, i64 } %t1364, ptr %a1367 call void @finch_str_concat(ptr %a1365, ptr %a1366, ptr %a1367) store { ptr, i64, i64 } %t1364, ptr %a1368 call void @finch_str_drop(ptr %a1368) %t1369 = load { ptr, i64, i64 }, ptr %a1365 store { ptr, i64, i64 } %t1369, ptr %a1371 - store { ptr, i64, i64 } { ptr @.str.5191, i64 1, i64 0 }, ptr %a1372 + store { ptr, i64, i64 } { ptr @.str.5398, i64 1, i64 0 }, ptr %a1372 call void @finch_str_concat(ptr %a1370, ptr %a1371, ptr %a1372) store { ptr, i64, i64 } %t1369, ptr %a1373 call void @finch_str_drop(ptr %a1373) @@ -80996,14 +84929,14 @@ inrange7917: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t1397 -endif7915: +endif8308: %t1398 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t1398, ptr %a1399 - store { ptr, i64, i64 } { ptr @.str.5192, i64 4, i64 0 }, ptr %a1400 + store { ptr, i64, i64 } { ptr @.str.5399, i64 4, i64 0 }, ptr %a1400 %t1401 = call i32 @finch_str_eq(ptr %a1399, ptr %a1400) %t1402 = icmp ne i32 %t1401, 0 - br i1 %t1402, label %then7918, label %endif7920 -then7918: + br i1 %t1402, label %then8311, label %endif8313 +then8311: %t1403 = load ptr, ptr %a1 %t1404 = load %S.ast.Node, ptr %a2 %t1405 = load { ptr, i64, i64 }, ptr %a8 @@ -81013,11 +84946,11 @@ then7918: %t1408 = load { ptr, i64, i64 }, ptr %t1407 %t1409 = extractvalue { ptr, i64, i64 } %t1408, 1 %t1410 = icmp uge i64 0, %t1409 - br i1 %t1410, label %range7921, label %inrange7922 -range7921: - call void @finch_panic_index(ptr @.str.5193, i64 4796, i64 0, i64 %t1409) + br i1 %t1410, label %range8314, label %inrange8315 +range8314: + call void @finch_panic_index(ptr @.str.5400, i64 5023, i64 0, i64 %t1409) unreachable -inrange7922: +inrange8315: %t1411 = extractvalue { ptr, i64, i64 } %t1408, 0 %t1412 = getelementptr inbounds %S.ast.Node, ptr %t1411, i64 0 %t1413 = load %S.ast.Node, ptr %t1412 @@ -81027,74 +84960,74 @@ inrange7922: %t1417 = getelementptr inbounds %S.ast.Type, ptr %t1416, i32 0, i32 0 %t1418 = load { ptr, i64, i64 }, ptr %t1417 store { ptr, i64, i64 } %t1418, ptr %a1419 - store { ptr, i64, i64 } { ptr @.str.5194, i64 3, i64 0 }, ptr %a1420 + store { ptr, i64, i64 } { ptr @.str.5401, i64 3, i64 0 }, ptr %a1420 %t1421 = call i32 @finch_str_eq(ptr %a1419, ptr %a1420) %t1422 = icmp eq i32 %t1421, 0 - br i1 %t1422, label %then7923, label %endif7925 -then7923: + br i1 %t1422, label %then8316, label %endif8318 +then8316: %t1423 = load ptr, ptr %a1 %t1424 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t1425 = load { ptr, i64, i64 }, ptr %t1424 %t1426 = extractvalue { ptr, i64, i64 } %t1425, 1 %t1427 = icmp uge i64 0, %t1426 - br i1 %t1427, label %range7926, label %inrange7927 -range7926: - call void @finch_panic_index(ptr @.str.5195, i64 4798, i64 0, i64 %t1426) + br i1 %t1427, label %range8319, label %inrange8320 +range8319: + call void @finch_panic_index(ptr @.str.5402, i64 5025, i64 0, i64 %t1426) unreachable -inrange7927: +inrange8320: %t1428 = extractvalue { ptr, i64, i64 } %t1425, 0 %t1429 = getelementptr inbounds %S.ast.Node, ptr %t1428, i64 0 %t1430 = load %S.ast.Node, ptr %t1429 - call void @finch.gen.fail(ptr %t1423, %S.ast.Node %t1430, { ptr, i64, i64 } { ptr @.str.5196, i64 119, i64 0 }) - br label %endif7925 -endif7925: + call void @finch.gen.fail(ptr %t1423, %S.ast.Node %t1430, { ptr, i64, i64 } { ptr @.str.5403, i64 119, i64 0 }) + br label %endif8318 +endif8318: %t1431 = getelementptr inbounds %S.gen.Val, ptr %a1415, i32 0, i32 1 %t1432 = getelementptr inbounds %S.ast.Type, ptr %t1431, i32 0, i32 1 %t1433 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1432, i32 0, i32 1 %t1434 = load i64, ptr %t1433 %t1435 = icmp sgt i64 %t1434, 0 - br label %logic.from7928 -logic.from7928: - br i1 %t1435, label %logic.rhs7929, label %logic.end7930 -logic.rhs7929: + br label %logic.from8321 +logic.from8321: + br i1 %t1435, label %logic.rhs8322, label %logic.end8323 +logic.rhs8322: %t1436 = load ptr, ptr %a1 %t1437 = getelementptr inbounds %S.gen.Val, ptr %a1415, i32 0, i32 1 %t1438 = getelementptr inbounds %S.ast.Type, ptr %t1437, i32 0, i32 1 %t1439 = load { ptr, i64, i64 }, ptr %t1438 %t1440 = extractvalue { ptr, i64, i64 } %t1439, 1 %t1441 = icmp uge i64 0, %t1440 - br i1 %t1441, label %range7931, label %inrange7932 -range7931: - call void @finch_panic_index(ptr @.str.5197, i64 4800, i64 0, i64 %t1440) + br i1 %t1441, label %range8324, label %inrange8325 +range8324: + call void @finch_panic_index(ptr @.str.5404, i64 5027, i64 0, i64 %t1440) unreachable -inrange7932: +inrange8325: %t1442 = extractvalue { ptr, i64, i64 } %t1439, 0 %t1443 = getelementptr inbounds %S.ast.Type, ptr %t1442, i64 0 %t1444 = load %S.ast.Type, ptr %t1443 %t1445 = call i1 @finch.gen.owning(ptr %t1436, %S.ast.Type %t1444) - br label %logic.rend7933 -logic.rend7933: - br label %logic.end7930 -logic.end7930: - %t1446 = phi i1 [ false, %logic.from7928 ], [ %t1445, %logic.rend7933 ] - br i1 %t1446, label %then7934, label %endif7936 -then7934: + br label %logic.rend8326 +logic.rend8326: + br label %logic.end8323 +logic.end8323: + %t1446 = phi i1 [ false, %logic.from8321 ], [ %t1445, %logic.rend8326 ] + br i1 %t1446, label %then8327, label %endif8329 +then8327: %t1447 = load ptr, ptr %a1 - %t1448 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t1447, { ptr, i64, i64 } { ptr @.str.5198, i64 9, i64 0 }) + %t1448 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t1447, { ptr, i64, i64 } { ptr @.str.5405, i64 9, i64 0 }) store { ptr, i64, i64 } %t1448, ptr %a1449 %t1450 = load ptr, ptr %a1 - %t1451 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t1450, { ptr, i64, i64 } { ptr @.str.5199, i64 9, i64 0 }) + %t1451 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t1450, { ptr, i64, i64 } { ptr @.str.5406, i64 9, i64 0 }) store { ptr, i64, i64 } %t1451, ptr %a1452 %t1453 = load ptr, ptr %a1 %t1454 = load ptr, ptr %a1 %t1455 = getelementptr inbounds %S.gen.Val, ptr %a1415, i32 0, i32 0 %t1456 = load { ptr, i64, i64 }, ptr %t1455 - store { ptr, i64, i64 } { ptr @.str.5200, i64 12, i64 0 }, ptr %a1458 + store { ptr, i64, i64 } { ptr @.str.5407, i64 12, i64 0 }, ptr %a1458 store { ptr, i64, i64 } %t1456, ptr %a1459 call void @finch_str_concat(ptr %a1457, ptr %a1458, ptr %a1459) %t1460 = load { ptr, i64, i64 }, ptr %a1457 store { ptr, i64, i64 } %t1460, ptr %a1462 - store { ptr, i64, i64 } { ptr @.str.5201, i64 6, i64 0 }, ptr %a1463 + store { ptr, i64, i64 } { ptr @.str.5408, i64 6, i64 0 }, ptr %a1463 call void @finch_str_concat(ptr %a1461, ptr %a1462, ptr %a1463) store { ptr, i64, i64 } %t1460, ptr %a1464 call void @finch_str_drop(ptr %a1464) @@ -81118,11 +85051,11 @@ then7934: %t1478 = load { ptr, i64, i64 }, ptr %t1477 %t1479 = extractvalue { ptr, i64, i64 } %t1478, 1 %t1480 = icmp uge i64 0, %t1479 - br i1 %t1480, label %range7937, label %inrange7938 -range7937: - call void @finch_panic_index(ptr @.str.5202, i64 4805, i64 0, i64 %t1479) + br i1 %t1480, label %range8330, label %inrange8331 +range8330: + call void @finch_panic_index(ptr @.str.5409, i64 5032, i64 0, i64 %t1479) unreachable -inrange7938: +inrange8331: %t1481 = extractvalue { ptr, i64, i64 } %t1478, 0 %t1482 = getelementptr inbounds %S.ast.Type, ptr %t1481, i64 0 %t1483 = load %S.ast.Type, ptr %t1482 @@ -81135,17 +85068,17 @@ inrange7938: call void @finch.gen.label(ptr %t1486, { ptr, i64, i64 } %t1487) call void @finch_str_drop(ptr %a1452) call void @finch_str_drop(ptr %a1449) - br label %endif7936 -endif7936: + br label %endif8329 +endif8329: %t1488 = load ptr, ptr %a1 %t1489 = getelementptr inbounds %S.gen.Val, ptr %a1415, i32 0, i32 0 %t1490 = load { ptr, i64, i64 }, ptr %t1489 - store { ptr, i64, i64 } { ptr @.str.5203, i64 20, i64 0 }, ptr %a1492 + store { ptr, i64, i64 } { ptr @.str.5410, i64 20, i64 0 }, ptr %a1492 store { ptr, i64, i64 } %t1490, ptr %a1493 call void @finch_str_concat(ptr %a1491, ptr %a1492, ptr %a1493) %t1494 = load { ptr, i64, i64 }, ptr %a1491 store { ptr, i64, i64 } %t1494, ptr %a1496 - store { ptr, i64, i64 } { ptr @.str.5204, i64 1, i64 0 }, ptr %a1497 + store { ptr, i64, i64 } { ptr @.str.5411, i64 1, i64 0 }, ptr %a1497 call void @finch_str_concat(ptr %a1495, ptr %a1496, ptr %a1497) store { ptr, i64, i64 } %t1494, ptr %a1498 call void @finch_str_drop(ptr %a1498) @@ -81153,21 +85086,21 @@ endif7936: call void @finch.gen.emit(ptr %t1488, { ptr, i64, i64 } %t1499) store { ptr, i64, i64 } %t1499, ptr %a1500 call void @finch_str_drop(ptr %a1500) - %t1501 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5205, i64 4, i64 0 }) + %t1501 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5412, i64 4, i64 0 }) %t1502 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t1501, 1 call void @finch.drop.S_gen_Val(ptr %a1415) call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t1502 -endif7920: +endif8313: %t1503 = load ptr, ptr %a1 %t1504 = load ptr, ptr %a1 %t1505 = icmp eq ptr %t1504, null - br i1 %t1505, label %panic7939, label %ok7940 -panic7939: - call void @finch_panic(ptr @.str.5206, i64 4812, ptr @.str.5207) + br i1 %t1505, label %panic8332, label %ok8333 +panic8332: + call void @finch_panic(ptr @.str.5413, i64 5039, ptr @.str.5414) unreachable -ok7940: +ok8333: %t1506 = getelementptr inbounds %S.gen.Gen, ptr %t1504, i32 0, i32 14 %t1507 = load { ptr, i64, i64 }, ptr %t1506 %t1508 = load { ptr, i64, i64 }, ptr %a8 @@ -81175,24 +85108,24 @@ ok7940: store i64 %t1509, ptr %a1510 %t1511 = load i64, ptr %a1510 %t1512 = icmp sge i64 %t1511, 0 - br i1 %t1512, label %then7941, label %endif7943 -then7941: + br i1 %t1512, label %then8334, label %endif8336 +then8334: %t1513 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 5 %t1514 = getelementptr inbounds %S.ast.Type, ptr %t1513, i32 0, i32 1 %t1515 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1514, i32 0, i32 1 %t1516 = load i64, ptr %t1515 %t1517 = icmp sgt i64 %t1516, 0 - br i1 %t1517, label %then7944, label %endif7946 -then7944: + br i1 %t1517, label %then8337, label %endif8339 +then8337: %t1518 = load ptr, ptr %a1 %t1519 = load %S.ast.Node, ptr %a2 %t1520 = load { ptr, i64, i64 }, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.5208, i64 1, i64 0 }, ptr %a1522 + store { ptr, i64, i64 } { ptr @.str.5415, i64 1, i64 0 }, ptr %a1522 store { ptr, i64, i64 } %t1520, ptr %a1523 call void @finch_str_concat(ptr %a1521, ptr %a1522, ptr %a1523) %t1524 = load { ptr, i64, i64 }, ptr %a1521 store { ptr, i64, i64 } %t1524, ptr %a1526 - store { ptr, i64, i64 } { ptr @.str.5209, i64 47, i64 0 }, ptr %a1527 + store { ptr, i64, i64 } { ptr @.str.5416, i64 47, i64 0 }, ptr %a1527 call void @finch_str_concat(ptr %a1525, ptr %a1526, ptr %a1527) store { ptr, i64, i64 } %t1524, ptr %a1528 call void @finch_str_drop(ptr %a1528) @@ -81200,34 +85133,34 @@ then7944: call void @finch.gen.fail(ptr %t1518, %S.ast.Node %t1519, { ptr, i64, i64 } %t1529) store { ptr, i64, i64 } %t1529, ptr %a1530 call void @finch_str_drop(ptr %a1530) - br label %endif7946 -endif7946: + br label %endif8339 +endif8339: %t1531 = load ptr, ptr %a1 %t1532 = load i64, ptr %a1510 %t1533 = load %S.ast.Node, ptr %a2 %t1534 = load { ptr, i64, i64 }, ptr %a8 - %t1535 = call %S.gen.Val @finch.gen.callFn(ptr %t1531, i64 %t1532, %S.ast.Node %t1533, i64 0, { ptr, i64, i64 } %t1534, { ptr, i64, i64 } { ptr @.str.5210, i64 0, i64 0 }, { ptr, i64, i64 } { ptr @.str.5211, i64 0, i64 0 }) + %t1535 = call %S.gen.Val @finch.gen.callFn(ptr %t1531, i64 %t1532, %S.ast.Node %t1533, i64 0, { ptr, i64, i64 } %t1534, { ptr, i64, i64 } { ptr @.str.5417, i64 0, i64 0 }, { ptr, i64, i64 } { ptr @.str.5418, i64 0, i64 0 }) call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t1535 -endif7943: +endif8336: %t1536 = load ptr, ptr %a1 %t1537 = load ptr, ptr %a1 %t1538 = icmp eq ptr %t1537, null - br i1 %t1538, label %panic7947, label %ok7948 -panic7947: - call void @finch_panic(ptr @.str.5212, i64 4819, ptr @.str.5213) + br i1 %t1538, label %panic8340, label %ok8341 +panic8340: + call void @finch_panic(ptr @.str.5419, i64 5046, ptr @.str.5420) unreachable -ok7948: +ok8341: %t1539 = getelementptr inbounds %S.gen.Gen, ptr %t1537, i32 0, i32 14 %t1540 = load { ptr, i64, i64 }, ptr %t1539 %t1541 = load { ptr, i64, i64 }, ptr %a8 - %t1542 = call i64 @finch.gen.findTemplate(ptr %t1536, { ptr, i64, i64 } %t1540, { ptr, i64, i64 } %t1541, { ptr, i64, i64 } { ptr @.str.5214, i64 0, i64 0 }, i1 false) + %t1542 = call i64 @finch.gen.findTemplate(ptr %t1536, { ptr, i64, i64 } %t1540, { ptr, i64, i64 } %t1541, { ptr, i64, i64 } { ptr @.str.5421, i64 0, i64 0 }, i1 false) store i64 %t1542, ptr %a1543 %t1544 = load i64, ptr %a1543 %t1545 = icmp sge i64 %t1544, 0 - br i1 %t1545, label %then7949, label %endif7951 -then7949: + br i1 %t1545, label %then8342, label %endif8344 +then8342: %t1546 = load ptr, ptr %a1 %t1547 = load %S.ast.Node, ptr %a2 %t1548 = load i64, ptr %a1543 @@ -81236,38 +85169,38 @@ then7949: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t1550 -endif7951: +endif8344: %t1551 = load ptr, ptr %a1 %t1552 = load ptr, ptr %a1 %t1553 = icmp eq ptr %t1552, null - br i1 %t1553, label %panic7952, label %ok7953 -panic7952: - call void @finch_panic(ptr @.str.5215, i64 4823, ptr @.str.5216) + br i1 %t1553, label %panic8345, label %ok8346 +panic8345: + call void @finch_panic(ptr @.str.5422, i64 5050, ptr @.str.5423) unreachable -ok7953: +ok8346: %t1554 = getelementptr inbounds %S.gen.Gen, ptr %t1552, i32 0, i32 14 %t1555 = load { ptr, i64, i64 }, ptr %t1554 %t1556 = load { ptr, i64, i64 }, ptr %a8 - %t1557 = call i64 @finch.gen.findTemplate(ptr %t1551, { ptr, i64, i64 } %t1555, { ptr, i64, i64 } %t1556, { ptr, i64, i64 } { ptr @.str.5217, i64 0, i64 0 }, i1 true) + %t1557 = call i64 @finch.gen.findTemplate(ptr %t1551, { ptr, i64, i64 } %t1555, { ptr, i64, i64 } %t1556, { ptr, i64, i64 } { ptr @.str.5424, i64 0, i64 0 }, i1 true) %t1558 = icmp sge i64 %t1557, 0 - br i1 %t1558, label %then7954, label %endif7956 -then7954: + br i1 %t1558, label %then8347, label %endif8349 +then8347: %t1559 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 5 %t1560 = getelementptr inbounds %S.ast.Type, ptr %t1559, i32 0, i32 1 %t1561 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1560, i32 0, i32 1 %t1562 = load i64, ptr %t1561 %t1563 = icmp eq i64 %t1562, 0 - br i1 %t1563, label %then7957, label %endif7959 -then7957: + br i1 %t1563, label %then8350, label %endif8352 +then8350: %t1564 = load ptr, ptr %a1 %t1565 = load %S.ast.Node, ptr %a2 %t1566 = load { ptr, i64, i64 }, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.5218, i64 1, i64 0 }, ptr %a1568 + store { ptr, i64, i64 } { ptr @.str.5425, i64 1, i64 0 }, ptr %a1568 store { ptr, i64, i64 } %t1566, ptr %a1569 call void @finch_str_concat(ptr %a1567, ptr %a1568, ptr %a1569) %t1570 = load { ptr, i64, i64 }, ptr %a1567 store { ptr, i64, i64 } %t1570, ptr %a1572 - store { ptr, i64, i64 } { ptr @.str.5219, i64 42, i64 0 }, ptr %a1573 + store { ptr, i64, i64 } { ptr @.str.5426, i64 42, i64 0 }, ptr %a1573 call void @finch_str_concat(ptr %a1571, ptr %a1572, ptr %a1573) store { ptr, i64, i64 } %t1570, ptr %a1574 call void @finch_str_drop(ptr %a1574) @@ -81280,7 +85213,7 @@ then7957: call void @finch_str_drop(ptr %a1580) %t1581 = load { ptr, i64, i64 }, ptr %a1577 store { ptr, i64, i64 } %t1581, ptr %a1583 - store { ptr, i64, i64 } { ptr @.str.5220, i64 10, i64 0 }, ptr %a1584 + store { ptr, i64, i64 } { ptr @.str.5427, i64 10, i64 0 }, ptr %a1584 call void @finch_str_concat(ptr %a1582, ptr %a1583, ptr %a1584) store { ptr, i64, i64 } %t1581, ptr %a1585 call void @finch_str_drop(ptr %a1585) @@ -81288,20 +85221,20 @@ then7957: call void @finch.gen.fail(ptr %t1564, %S.ast.Node %t1565, { ptr, i64, i64 } %t1586) store { ptr, i64, i64 } %t1586, ptr %a1587 call void @finch_str_drop(ptr %a1587) - br label %endif7959 -endif7959: + br label %endif8352 +endif8352: store { ptr, i64, i64 } zeroinitializer, ptr %a1588 %t1589 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 5 %t1590 = getelementptr inbounds %S.ast.Type, ptr %t1589, i32 0, i32 1 store i64 0, ptr %a1591 - br label %each.cond7960 -each.cond7960: + br label %each.cond8353 +each.cond8353: %t1592 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1590, i32 0, i32 1 %t1593 = load i64, ptr %t1592 %t1594 = load i64, ptr %a1591 %t1595 = icmp slt i64 %t1594, %t1593 - br i1 %t1595, label %each.body7961, label %each.end7963 -each.body7961: + br i1 %t1595, label %each.body8354, label %each.end8356 +each.body8354: %t1596 = load ptr, ptr %t1590 %t1597 = getelementptr inbounds %S.ast.Type, ptr %t1596, i64 %t1594 %t1598 = load %S.ast.Type, ptr %t1597 @@ -81318,21 +85251,21 @@ each.body7961: %t1608 = getelementptr inbounds %S.ast.Type, ptr %t1607, i64 %t1605 store %S.ast.Type %t1604, ptr %t1608 store i64 %t1606, ptr %t1600 - br label %each.step7962 -each.step7962: + br label %each.step8355 +each.step8355: %t1609 = load i64, ptr %a1591 %t1610 = add i64 %t1609, 1 store i64 %t1610, ptr %a1591 - br label %each.cond7960 -each.end7963: + br label %each.cond8353 +each.end8356: %t1611 = load ptr, ptr %a1 %t1612 = load ptr, ptr %a1 %t1613 = icmp eq ptr %t1612, null - br i1 %t1613, label %panic7964, label %ok7965 -panic7964: - call void @finch_panic(ptr @.str.5221, i64 4832, ptr @.str.5222) + br i1 %t1613, label %panic8357, label %ok8358 +panic8357: + call void @finch_panic(ptr @.str.5428, i64 5059, ptr @.str.5429) unreachable -ok7965: +ok8358: %t1614 = getelementptr inbounds %S.gen.Gen, ptr %t1612, i32 0, i32 14 %t1615 = load { ptr, i64, i64 }, ptr %t1614 %t1616 = load { ptr, i64, i64 }, ptr %a8 @@ -81358,15 +85291,15 @@ ok7965: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t1633 -endif7956: +endif8349: %t1634 = load ptr, ptr %a1 %t1635 = load ptr, ptr %a1 %t1636 = icmp eq ptr %t1635, null - br i1 %t1636, label %panic7966, label %ok7967 -panic7966: - call void @finch_panic(ptr @.str.5223, i64 4835, ptr @.str.5224) + br i1 %t1636, label %panic8359, label %ok8360 +panic8359: + call void @finch_panic(ptr @.str.5430, i64 5062, ptr @.str.5431) unreachable -ok7967: +ok8360: %t1637 = getelementptr inbounds %S.gen.Gen, ptr %t1635, i32 0, i32 14 %t1638 = load { ptr, i64, i64 }, ptr %t1637 %t1639 = load { ptr, i64, i64 }, ptr %a8 @@ -81374,25 +85307,25 @@ ok7967: store i64 %t1640, ptr %a1641 %t1642 = load i64, ptr %a1641 %t1643 = icmp sge i64 %t1642, 0 - br i1 %t1643, label %then7968, label %endif7970 -then7968: + br i1 %t1643, label %then8361, label %endif8363 +then8361: %t1644 = load ptr, ptr %a1 %t1645 = icmp eq ptr %t1644, null - br i1 %t1645, label %panic7971, label %ok7972 -panic7971: - call void @finch_panic(ptr @.str.5225, i64 4837, ptr @.str.5226) + br i1 %t1645, label %panic8364, label %ok8365 +panic8364: + call void @finch_panic(ptr @.str.5432, i64 5064, ptr @.str.5433) unreachable -ok7972: +ok8365: %t1646 = getelementptr inbounds %S.gen.Gen, ptr %t1644, i32 0, i32 16 %t1647 = load i64, ptr %a1641 %t1648 = load { ptr, i64, i64 }, ptr %t1646 %t1649 = extractvalue { ptr, i64, i64 } %t1648, 1 %t1650 = icmp uge i64 %t1647, %t1649 - br i1 %t1650, label %range7973, label %inrange7974 -range7973: - call void @finch_panic_index(ptr @.str.5227, i64 4837, i64 %t1647, i64 %t1649) + br i1 %t1650, label %range8366, label %inrange8367 +range8366: + call void @finch_panic_index(ptr @.str.5434, i64 5064, i64 %t1647, i64 %t1649) unreachable -inrange7974: +inrange8367: %t1651 = extractvalue { ptr, i64, i64 } %t1648, 0 %t1652 = getelementptr inbounds %S.gen.StructDef, ptr %t1651, i64 %t1647 %t1653 = load %S.gen.StructDef, ptr %t1652 @@ -81402,45 +85335,45 @@ inrange7974: store %S.gen.StructDef %t1656, ptr %a1657 %t1658 = load ptr, ptr %a1 %t1659 = icmp eq ptr %t1658, null - br i1 %t1659, label %panic7975, label %ok7976 -panic7975: - call void @finch_panic(ptr @.str.5228, i64 4838, ptr @.str.5229) + br i1 %t1659, label %panic8368, label %ok8369 +panic8368: + call void @finch_panic(ptr @.str.5435, i64 5065, ptr @.str.5436) unreachable -ok7976: - %t1660 = getelementptr inbounds %S.gen.Gen, ptr %t1658, i32 0, i32 27 +ok8369: + %t1660 = getelementptr inbounds %S.gen.Gen, ptr %t1658, i32 0, i32 28 %t1661 = load i1, ptr %t1660 - br label %logic.from7977 -logic.from7977: - br i1 %t1661, label %logic.rhs7978, label %logic.end7979 -logic.rhs7978: + br label %logic.from8370 +logic.from8370: + br i1 %t1661, label %logic.rhs8371, label %logic.end8372 +logic.rhs8371: %t1662 = getelementptr inbounds %S.gen.StructDef, ptr %a1657, i32 0, i32 2 %t1663 = load i1, ptr %t1662 %t1664 = xor i1 %t1663, true - br label %logic.rend7980 -logic.rend7980: - br label %logic.end7979 -logic.end7979: - %t1665 = phi i1 [ false, %logic.from7977 ], [ %t1664, %logic.rend7980 ] - br i1 %t1665, label %then7981, label %endif7983 -then7981: + br label %logic.rend8373 +logic.rend8373: + br label %logic.end8372 +logic.end8372: + %t1665 = phi i1 [ false, %logic.from8370 ], [ %t1664, %logic.rend8373 ] + br i1 %t1665, label %then8374, label %endif8376 +then8374: %t1666 = load ptr, ptr %a1 %t1667 = icmp eq ptr %t1666, null - br i1 %t1667, label %panic7984, label %ok7985 -panic7984: - call void @finch_panic(ptr @.str.5230, i64 4839, ptr @.str.5231) + br i1 %t1667, label %panic8377, label %ok8378 +panic8377: + call void @finch_panic(ptr @.str.5437, i64 5066, ptr @.str.5438) unreachable -ok7985: +ok8378: %t1668 = getelementptr inbounds %S.gen.Gen, ptr %t1666, i32 0, i32 0 %t1669 = getelementptr inbounds %S.gen.StructDef, ptr %a1657, i32 0, i32 13 %t1670 = load i64, ptr %t1669 %t1671 = load { ptr, i64, i64 }, ptr %t1668 %t1672 = extractvalue { ptr, i64, i64 } %t1671, 1 %t1673 = icmp uge i64 %t1670, %t1672 - br i1 %t1673, label %range7986, label %inrange7987 -range7986: - call void @finch_panic_index(ptr @.str.5232, i64 4839, i64 %t1670, i64 %t1672) + br i1 %t1673, label %range8379, label %inrange8380 +range8379: + call void @finch_panic_index(ptr @.str.5439, i64 5066, i64 %t1670, i64 %t1672) unreachable -inrange7987: +inrange8380: %t1674 = extractvalue { ptr, i64, i64 } %t1671, 0 %t1675 = getelementptr inbounds %S.ast.Program, ptr %t1674, i64 %t1670 %t1676 = getelementptr inbounds %S.ast.Program, ptr %t1675, i32 0, i32 6 @@ -81449,11 +85382,11 @@ inrange7987: %t1679 = load { ptr, i64, i64 }, ptr %t1676 %t1680 = extractvalue { ptr, i64, i64 } %t1679, 1 %t1681 = icmp uge i64 %t1678, %t1680 - br i1 %t1681, label %range7988, label %inrange7989 -range7988: - call void @finch_panic_index(ptr @.str.5233, i64 4839, i64 %t1678, i64 %t1680) + br i1 %t1681, label %range8381, label %inrange8382 +range8381: + call void @finch_panic_index(ptr @.str.5440, i64 5066, i64 %t1678, i64 %t1680) unreachable -inrange7989: +inrange8382: %t1682 = extractvalue { ptr, i64, i64 } %t1679, 0 %t1683 = getelementptr inbounds %S.ast.Node, ptr %t1682, i64 %t1678 %t1684 = load %S.ast.Node, ptr %t1683 @@ -81469,19 +85402,19 @@ inrange7989: %t1694 = load i64, ptr %t1693 %t1695 = getelementptr inbounds %S.gen.StructDef, ptr %a1657, i32 0, i32 1 %t1696 = load { ptr, i64, i64 }, ptr %t1695 - store { ptr, i64, i64 } { ptr @.str.5234, i64 16, i64 0 }, ptr %a1698 + store { ptr, i64, i64 } { ptr @.str.5441, i64 16, i64 0 }, ptr %a1698 store { ptr, i64, i64 } %t1696, ptr %a1699 call void @finch_str_concat(ptr %a1697, ptr %a1698, ptr %a1699) %t1700 = load { ptr, i64, i64 }, ptr %a1697 store { ptr, i64, i64 } %t1700, ptr %a1702 - store { ptr, i64, i64 } { ptr @.str.5235, i64 3, i64 0 }, ptr %a1703 + store { ptr, i64, i64 } { ptr @.str.5442, i64 3, i64 0 }, ptr %a1703 call void @finch_str_concat(ptr %a1701, ptr %a1702, ptr %a1703) store { ptr, i64, i64 } %t1700, ptr %a1704 call void @finch_str_drop(ptr %a1704) %t1705 = load { ptr, i64, i64 }, ptr %a1701 %t1706 = getelementptr inbounds %S.gen.StructDef, ptr %a1657, i32 0, i32 11 %t1707 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1706, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.5236, i64 2, i64 0 }, ptr %a1708 + store { ptr, i64, i64 } { ptr @.str.5443, i64 2, i64 0 }, ptr %a1708 call void @finch_str_join(ptr %a1709, ptr %t1706, ptr %a1708) %t1710 = load { ptr, i64, i64 }, ptr %a1709 store { ptr, i64, i64 } %t1705, ptr %a1712 @@ -81493,29 +85426,29 @@ inrange7989: call void @finch_str_drop(ptr %a1715) %t1716 = load { ptr, i64, i64 }, ptr %a1711 store { ptr, i64, i64 } %t1716, ptr %a1718 - store { ptr, i64, i64 } { ptr @.str.5237, i64 6, i64 0 }, ptr %a1719 + store { ptr, i64, i64 } { ptr @.str.5444, i64 6, i64 0 }, ptr %a1719 call void @finch_str_concat(ptr %a1717, ptr %a1718, ptr %a1719) store { ptr, i64, i64 } %t1716, ptr %a1720 call void @finch_str_drop(ptr %a1720) %t1721 = load { ptr, i64, i64 }, ptr %a1717 %t1722 = load ptr, ptr %a1 %t1723 = icmp eq ptr %t1722, null - br i1 %t1723, label %panic7990, label %ok7991 -panic7990: - call void @finch_panic(ptr @.str.5238, i64 4840, ptr @.str.5239) + br i1 %t1723, label %panic8383, label %ok8384 +panic8383: + call void @finch_panic(ptr @.str.5445, i64 5067, ptr @.str.5446) unreachable -ok7991: +ok8384: %t1724 = getelementptr inbounds %S.gen.Gen, ptr %t1722, i32 0, i32 1 %t1725 = getelementptr inbounds %S.ast.Node, ptr %a1688, i32 0, i32 13 %t1726 = load i64, ptr %t1725 %t1727 = load { ptr, i64, i64 }, ptr %t1724 %t1728 = extractvalue { ptr, i64, i64 } %t1727, 1 %t1729 = icmp uge i64 %t1726, %t1728 - br i1 %t1729, label %range7992, label %inrange7993 -range7992: - call void @finch_panic_index(ptr @.str.5240, i64 4840, i64 %t1726, i64 %t1728) + br i1 %t1729, label %range8385, label %inrange8386 +range8385: + call void @finch_panic_index(ptr @.str.5447, i64 5067, i64 %t1726, i64 %t1728) unreachable -inrange7993: +inrange8386: %t1730 = extractvalue { ptr, i64, i64 } %t1727, 0 %t1731 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1730, i64 %t1726 %t1732 = load { ptr, i64, i64 }, ptr %t1731 @@ -81527,8 +85460,8 @@ inrange7993: store { ptr, i64, i64 } %t1721, ptr %a1737 call void @finch_str_drop(ptr %a1737) call void @finch.drop.S_ast_Node(ptr %a1688) - br label %endif7983 -endif7983: + br label %endif8376 +endif8376: %t1738 = load ptr, ptr %a1 %t1739 = load i64, ptr %a1641 %t1740 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 @@ -81541,15 +85474,15 @@ endif7983: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t1745 -endif7970: +endif8363: %t1746 = load ptr, ptr %a1 %t1747 = load ptr, ptr %a1 %t1748 = icmp eq ptr %t1747, null - br i1 %t1748, label %panic7994, label %ok7995 -panic7994: - call void @finch_panic(ptr @.str.5241, i64 4844, ptr @.str.5242) + br i1 %t1748, label %panic8387, label %ok8388 +panic8387: + call void @finch_panic(ptr @.str.5448, i64 5071, ptr @.str.5449) unreachable -ok7995: +ok8388: %t1749 = getelementptr inbounds %S.gen.Gen, ptr %t1747, i32 0, i32 14 %t1750 = load { ptr, i64, i64 }, ptr %t1749 %t1751 = load { ptr, i64, i64 }, ptr %a8 @@ -81557,8 +85490,8 @@ ok7995: store i64 %t1752, ptr %a1753 %t1754 = load i64, ptr %a1753 %t1755 = icmp sge i64 %t1754, 0 - br i1 %t1755, label %then7996, label %endif7998 -then7996: + br i1 %t1755, label %then8389, label %endif8391 +then8389: %t1756 = load ptr, ptr %a1 %t1757 = load %S.ast.Node, ptr %a2 %t1758 = load i64, ptr %a1753 @@ -81566,45 +85499,45 @@ then7996: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t1759 -endif7998: +endif8391: %t1760 = load ptr, ptr %a1 %t1761 = icmp eq ptr %t1760, null - br i1 %t1761, label %panic7999, label %ok8000 -panic7999: - call void @finch_panic(ptr @.str.5243, i64 4848, ptr @.str.5244) + br i1 %t1761, label %panic8392, label %ok8393 +panic8392: + call void @finch_panic(ptr @.str.5450, i64 5075, ptr @.str.5451) unreachable -ok8000: - %t1762 = getelementptr inbounds %S.gen.Gen, ptr %t1760, i32 0, i32 25 +ok8393: + %t1762 = getelementptr inbounds %S.gen.Gen, ptr %t1760, i32 0, i32 26 %t1763 = getelementptr inbounds %S.cimport.CImports, ptr %t1762, i32 0, i32 0 %t1764 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t1764, ptr %a1765 %t1766 = call i64 @finch_map_find(ptr %t1763, ptr %a1765, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t1767 = icmp sge i64 %t1766, 0 - br i1 %t1767, label %then8001, label %endif8003 -then8001: + br i1 %t1767, label %then8394, label %endif8396 +then8394: %t1768 = load ptr, ptr %a1 %t1769 = load %S.ast.Node, ptr %a2 %t1770 = load ptr, ptr %a1 %t1771 = icmp eq ptr %t1770, null - br i1 %t1771, label %panic8004, label %ok8005 -panic8004: - call void @finch_panic(ptr @.str.5245, i64 4849, ptr @.str.5246) + br i1 %t1771, label %panic8397, label %ok8398 +panic8397: + call void @finch_panic(ptr @.str.5452, i64 5076, ptr @.str.5453) unreachable -ok8005: - %t1772 = getelementptr inbounds %S.gen.Gen, ptr %t1770, i32 0, i32 25 +ok8398: + %t1772 = getelementptr inbounds %S.gen.Gen, ptr %t1770, i32 0, i32 26 %t1773 = getelementptr inbounds %S.cimport.CImports, ptr %t1772, i32 0, i32 0 %t1774 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t1774, ptr %a1775 %t1776 = call i64 @finch_map_find(ptr %t1773, ptr %a1775, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t1777 = icmp slt i64 %t1776, 0 - br i1 %t1777, label %map.missing8006, label %map.found8007 -map.missing8006: + br i1 %t1777, label %map.missing8399, label %map.found8400 +map.missing8399: store { ptr, i64, i64 } zeroinitializer, ptr %a1778 store { ptr, i64, i64 } %t1774, ptr %a1779 call void @finch_buf_str(ptr %a1778, ptr %a1779, i32 1) - call void @finch_map_missing(ptr @.str.5247, i64 4849, ptr %a1778) + call void @finch_map_missing(ptr @.str.5454, i64 5076, ptr %a1778) unreachable -map.found8007: +map.found8400: %t1780 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t1773, i32 0, i32 0 %t1781 = load ptr, ptr %t1780 %t1782 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t1781, i64 %t1776 @@ -81614,15 +85547,15 @@ map.found8007: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t1785 -endif8003: +endif8396: %t1786 = load ptr, ptr %a1 %t1787 = load { ptr, i64, i64 }, ptr %a8 - %t1788 = call i64 @finch.gen.findStruct(ptr %t1786, { ptr, i64, i64 } { ptr @.str.5248, i64 1, i64 0 }, { ptr, i64, i64 } %t1787) + %t1788 = call i64 @finch.gen.findStruct(ptr %t1786, { ptr, i64, i64 } { ptr @.str.5455, i64 1, i64 0 }, { ptr, i64, i64 } %t1787) store i64 %t1788, ptr %a1641 %t1789 = load i64, ptr %a1641 %t1790 = icmp sge i64 %t1789, 0 - br i1 %t1790, label %then8008, label %endif8010 -then8008: + br i1 %t1790, label %then8401, label %endif8403 +then8401: %t1791 = load ptr, ptr %a1 %t1792 = load i64, ptr %a1641 %t1793 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 @@ -81634,22 +85567,22 @@ then8008: call void @finch_str_drop(ptr %a570) call void @finch_str_drop(ptr %a8) ret %S.gen.Val %t1798 -endif8010: +endif8403: %t1799 = load ptr, ptr %a1 %t1800 = load { ptr, i64, i64 }, ptr %a8 %t1801 = call i64 @finch.gen.lookup(ptr %t1799, { ptr, i64, i64 } %t1800) %t1802 = icmp sge i64 %t1801, 0 - br i1 %t1802, label %then8011, label %endif8013 -then8011: + br i1 %t1802, label %then8404, label %endif8406 +then8404: %t1803 = load ptr, ptr %a1 %t1804 = load %S.ast.Node, ptr %a2 %t1805 = load { ptr, i64, i64 }, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.5249, i64 1, i64 0 }, ptr %a1807 + store { ptr, i64, i64 } { ptr @.str.5456, i64 1, i64 0 }, ptr %a1807 store { ptr, i64, i64 } %t1805, ptr %a1808 call void @finch_str_concat(ptr %a1806, ptr %a1807, ptr %a1808) %t1809 = load { ptr, i64, i64 }, ptr %a1806 store { ptr, i64, i64 } %t1809, ptr %a1811 - store { ptr, i64, i64 } { ptr @.str.5250, i64 31, i64 0 }, ptr %a1812 + store { ptr, i64, i64 } { ptr @.str.5457, i64 31, i64 0 }, ptr %a1812 call void @finch_str_concat(ptr %a1810, ptr %a1811, ptr %a1812) store { ptr, i64, i64 } %t1809, ptr %a1813 call void @finch_str_drop(ptr %a1813) @@ -81657,17 +85590,17 @@ then8011: call void @finch.gen.fail(ptr %t1803, %S.ast.Node %t1804, { ptr, i64, i64 } %t1814) store { ptr, i64, i64 } %t1814, ptr %a1815 call void @finch_str_drop(ptr %a1815) - br label %endif8013 -endif8013: + br label %endif8406 +endif8406: %t1816 = load ptr, ptr %a1 %t1817 = load %S.ast.Node, ptr %a2 %t1818 = load { ptr, i64, i64 }, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.5251, i64 28, i64 0 }, ptr %a1820 + store { ptr, i64, i64 } { ptr @.str.5458, i64 28, i64 0 }, ptr %a1820 store { ptr, i64, i64 } %t1818, ptr %a1821 call void @finch_str_concat(ptr %a1819, ptr %a1820, ptr %a1821) %t1822 = load { ptr, i64, i64 }, ptr %a1819 store { ptr, i64, i64 } %t1822, ptr %a1824 - store { ptr, i64, i64 } { ptr @.str.5252, i64 1, i64 0 }, ptr %a1825 + store { ptr, i64, i64 } { ptr @.str.5459, i64 1, i64 0 }, ptr %a1825 call void @finch_str_concat(ptr %a1823, ptr %a1824, ptr %a1825) store { ptr, i64, i64 } %t1822, ptr %a1826 call void @finch_str_drop(ptr %a1826) @@ -81752,21 +85685,21 @@ entry: store { ptr, i64, i64 } %p6, ptr %a7 %t8 = load ptr, ptr %a1 %t9 = icmp eq ptr %t8, null - br i1 %t9, label %panic8014, label %ok8015 -panic8014: - call void @finch_panic(ptr @.str.5253, i64 4863, ptr @.str.5254) + br i1 %t9, label %panic8407, label %ok8408 +panic8407: + call void @finch_panic(ptr @.str.5460, i64 5090, ptr @.str.5461) unreachable -ok8015: +ok8408: %t10 = getelementptr inbounds %S.gen.Gen, ptr %t8, i32 0, i32 15 %t11 = load i64, ptr %a2 %t12 = load { ptr, i64, i64 }, ptr %t10 %t13 = extractvalue { ptr, i64, i64 } %t12, 1 %t14 = icmp uge i64 %t11, %t13 - br i1 %t14, label %range8016, label %inrange8017 -range8016: - call void @finch_panic_index(ptr @.str.5255, i64 4863, i64 %t11, i64 %t13) + br i1 %t14, label %range8409, label %inrange8410 +range8409: + call void @finch_panic_index(ptr @.str.5462, i64 5090, i64 %t11, i64 %t13) unreachable -inrange8017: +inrange8410: %t15 = extractvalue { ptr, i64, i64 } %t12, 0 %t16 = getelementptr inbounds %S.gen.FnSig, ptr %t15, i64 %t11 %t17 = load %S.gen.FnSig, ptr %t16 @@ -81778,28 +85711,28 @@ inrange8017: %t23 = getelementptr inbounds { ptr, i64, i64 }, ptr %t22, i32 0, i32 1 %t24 = load i64, ptr %t23 %t25 = icmp eq i64 %t24, 0 - br label %logic.from8018 -logic.from8018: - br i1 %t25, label %logic.rhs8019, label %logic.end8020 -logic.rhs8019: + br label %logic.from8411 +logic.from8411: + br i1 %t25, label %logic.rhs8412, label %logic.end8413 +logic.rhs8412: %t26 = getelementptr inbounds %S.gen.FnSig, ptr %a21, i32 0, i32 1 %t27 = load { ptr, i64, i64 }, ptr %t26 store { ptr, i64, i64 } %t27, ptr %a28 - store { ptr, i64, i64 } { ptr @.str.5256, i64 4, i64 0 }, ptr %a29 + store { ptr, i64, i64 } { ptr @.str.5463, i64 4, i64 0 }, ptr %a29 %t30 = call i32 @finch_str_eq(ptr %a28, ptr %a29) %t31 = icmp ne i32 %t30, 0 - br label %logic.rend8021 -logic.rend8021: - br label %logic.end8020 -logic.end8020: - %t32 = phi i1 [ false, %logic.from8018 ], [ %t31, %logic.rend8021 ] - br i1 %t32, label %then8022, label %endif8024 -then8022: + br label %logic.rend8414 +logic.rend8414: + br label %logic.end8413 +logic.end8413: + %t32 = phi i1 [ false, %logic.from8411 ], [ %t31, %logic.rend8414 ] + br i1 %t32, label %then8415, label %endif8417 +then8415: %t33 = load ptr, ptr %a1 %t34 = load %S.ast.Node, ptr %a3 - call void @finch.gen.fail(ptr %t33, %S.ast.Node %t34, { ptr, i64, i64 } { ptr @.str.5257, i64 52, i64 0 }) - br label %endif8024 -endif8024: + call void @finch.gen.fail(ptr %t33, %S.ast.Node %t34, { ptr, i64, i64 } { ptr @.str.5464, i64 52, i64 0 }) + br label %endif8417 +endif8417: %t35 = load ptr, ptr %a1 %t36 = load %S.ast.Node, ptr %a3 %t37 = load %S.gen.FnSig, ptr %a21 @@ -81817,11 +85750,11 @@ endif8024: %t47 = getelementptr inbounds { ptr, i64, i64 }, ptr %t46, i32 0, i32 1 %t48 = load i64, ptr %t47 %t49 = icmp sgt i64 %t48, 0 - br i1 %t49, label %then8025, label %endif8027 -then8025: + br i1 %t49, label %then8418, label %endif8420 +then8418: %t50 = getelementptr inbounds { ptr, i64, i64 }, ptr %a45, i32 0, i32 1 %t51 = load { ptr, i64, i64 }, ptr %a6 - store { ptr, i64, i64 } { ptr @.str.5258, i64 4, i64 0 }, ptr %a53 + store { ptr, i64, i64 } { ptr @.str.5465, i64 4, i64 0 }, ptr %a53 store { ptr, i64, i64 } %t51, ptr %a54 call void @finch_str_concat(ptr %a52, ptr %a53, ptr %a54) %t55 = load { ptr, i64, i64 }, ptr %a52 @@ -81832,16 +85765,16 @@ then8025: %t59 = getelementptr inbounds { ptr, i64, i64 }, ptr %t58, i64 %t56 store { ptr, i64, i64 } %t55, ptr %t59 store i64 %t57, ptr %t50 - br label %endif8027 -endif8027: + br label %endif8420 +endif8420: store { ptr, i64, i64 } zeroinitializer, ptr %a60 %t61 = load ptr, ptr %a1 %t62 = icmp eq ptr %t61, null - br i1 %t62, label %panic8028, label %ok8029 -panic8028: - call void @finch_panic(ptr @.str.5259, i64 4874, ptr @.str.5260) + br i1 %t62, label %panic8421, label %ok8422 +panic8421: + call void @finch_panic(ptr @.str.5466, i64 5101, ptr @.str.5467) unreachable -ok8029: +ok8422: %t63 = getelementptr inbounds %S.gen.Gen, ptr %t61, i32 0, i32 11 %t64 = getelementptr inbounds { ptr, i64, i64 }, ptr %t63, i32 0, i32 1 %t65 = load i64, ptr %t64 @@ -81850,12 +85783,12 @@ ok8029: %t68 = getelementptr inbounds { ptr, i64, i64 }, ptr %t67, i32 0, i32 1 %t69 = load i64, ptr %t68 store i64 0, ptr %a70 - br label %for.cond8030 -for.cond8030: + br label %for.cond8423 +for.cond8423: %t71 = load i64, ptr %a70 %t72 = icmp slt i64 %t71, %t69 - br i1 %t72, label %for.body8031, label %for.end8033 -for.body8031: + br i1 %t72, label %for.body8424, label %for.end8426 +for.body8424: %t73 = getelementptr inbounds %S.ast.Node, ptr %a3, i32 0, i32 9 %t74 = load i64, ptr %a4 %t75 = load i64, ptr %a70 @@ -81863,11 +85796,11 @@ for.body8031: %t77 = load { ptr, i64, i64 }, ptr %t73 %t78 = extractvalue { ptr, i64, i64 } %t77, 1 %t79 = icmp uge i64 %t76, %t78 - br i1 %t79, label %range8034, label %inrange8035 -range8034: - call void @finch_panic_index(ptr @.str.5261, i64 4876, i64 %t76, i64 %t78) + br i1 %t79, label %range8427, label %inrange8428 +range8427: + call void @finch_panic_index(ptr @.str.5468, i64 5103, i64 %t76, i64 %t78) unreachable -inrange8035: +inrange8428: %t80 = extractvalue { ptr, i64, i64 } %t77, 0 %t81 = getelementptr inbounds %S.ast.Node, ptr %t80, i64 %t76 %t82 = load %S.ast.Node, ptr %t81 @@ -81883,11 +85816,11 @@ inrange8035: %t92 = load { ptr, i64, i64 }, ptr %t90 %t93 = extractvalue { ptr, i64, i64 } %t92, 1 %t94 = icmp uge i64 %t91, %t93 - br i1 %t94, label %range8036, label %inrange8037 -range8036: - call void @finch_panic_index(ptr @.str.5262, i64 4877, i64 %t91, i64 %t93) + br i1 %t94, label %range8429, label %inrange8430 +range8429: + call void @finch_panic_index(ptr @.str.5469, i64 5104, i64 %t91, i64 %t93) unreachable -inrange8037: +inrange8430: %t95 = extractvalue { ptr, i64, i64 } %t92, 0 %t96 = getelementptr inbounds %S.ast.Type, ptr %t95, i64 %t91 %t97 = load %S.ast.Type, ptr %t96 @@ -81897,11 +85830,11 @@ inrange8037: %t101 = load { ptr, i64, i64 }, ptr %t99 %t102 = extractvalue { ptr, i64, i64 } %t101, 1 %t103 = icmp uge i64 %t100, %t102 - br i1 %t103, label %range8038, label %inrange8039 -range8038: - call void @finch_panic_index(ptr @.str.5263, i64 4877, i64 %t100, i64 %t102) + br i1 %t103, label %range8431, label %inrange8432 +range8431: + call void @finch_panic_index(ptr @.str.5470, i64 5104, i64 %t100, i64 %t102) unreachable -inrange8039: +inrange8432: %t104 = extractvalue { ptr, i64, i64 } %t101, 0 %t105 = getelementptr inbounds %S.ast.Type, ptr %t104, i64 %t100 %t106 = load %S.ast.Type, ptr %t105 @@ -81911,20 +85844,20 @@ inrange8039: %t110 = load { ptr, i64, i64 }, ptr %t108 %t111 = extractvalue { ptr, i64, i64 } %t110, 1 %t112 = icmp uge i64 %t109, %t111 - br i1 %t112, label %range8040, label %inrange8041 -range8040: - call void @finch_panic_index(ptr @.str.5265, i64 4877, i64 %t109, i64 %t111) + br i1 %t112, label %range8433, label %inrange8434 +range8433: + call void @finch_panic_index(ptr @.str.5472, i64 5104, i64 %t109, i64 %t111) unreachable -inrange8041: +inrange8434: %t113 = extractvalue { ptr, i64, i64 } %t110, 0 %t114 = getelementptr inbounds { ptr, i64, i64 }, ptr %t113, i64 %t109 %t115 = load { ptr, i64, i64 }, ptr %t114 - store { ptr, i64, i64 } { ptr @.str.5264, i64 10, i64 0 }, ptr %a117 + store { ptr, i64, i64 } { ptr @.str.5471, i64 10, i64 0 }, ptr %a117 store { ptr, i64, i64 } %t115, ptr %a118 call void @finch_str_concat(ptr %a116, ptr %a117, ptr %a118) %t119 = load { ptr, i64, i64 }, ptr %a116 store { ptr, i64, i64 } %t119, ptr %a121 - store { ptr, i64, i64 } { ptr @.str.5266, i64 1, i64 0 }, ptr %a122 + store { ptr, i64, i64 } { ptr @.str.5473, i64 1, i64 0 }, ptr %a122 call void @finch_str_concat(ptr %a120, ptr %a121, ptr %a122) store { ptr, i64, i64 } %t119, ptr %a123 call void @finch_str_drop(ptr %a123) @@ -81941,43 +85874,43 @@ inrange8041: %t132 = load { ptr, i64, i64 }, ptr %t130 %t133 = extractvalue { ptr, i64, i64 } %t132, 1 %t134 = icmp uge i64 %t131, %t133 - br i1 %t134, label %range8042, label %inrange8043 -range8042: - call void @finch_panic_index(ptr @.str.5267, i64 4879, i64 %t131, i64 %t133) + br i1 %t134, label %range8435, label %inrange8436 +range8435: + call void @finch_panic_index(ptr @.str.5474, i64 5106, i64 %t131, i64 %t133) unreachable -inrange8043: +inrange8436: %t135 = extractvalue { ptr, i64, i64 } %t132, 0 %t136 = getelementptr inbounds %S.ast.Type, ptr %t135, i64 %t131 %t137 = load %S.ast.Type, ptr %t136 %t138 = call i1 @finch.gen.owning(ptr %t129, %S.ast.Type %t137) - br label %logic.from8044 -logic.from8044: - br i1 %t138, label %logic.rhs8045, label %logic.end8046 -logic.rhs8045: + br label %logic.from8437 +logic.from8437: + br i1 %t138, label %logic.rhs8438, label %logic.end8439 +logic.rhs8438: %t139 = getelementptr inbounds %S.gen.Val, ptr %a128, i32 0, i32 2 %t140 = load i1, ptr %t139 %t141 = xor i1 %t140, true - br label %logic.rend8047 -logic.rend8047: - br label %logic.end8046 -logic.end8046: - %t142 = phi i1 [ false, %logic.from8044 ], [ %t141, %logic.rend8047 ] - br label %logic.from8048 -logic.from8048: - br i1 %t142, label %logic.rhs8049, label %logic.end8050 -logic.rhs8049: + br label %logic.rend8440 +logic.rend8440: + br label %logic.end8439 +logic.end8439: + %t142 = phi i1 [ false, %logic.from8437 ], [ %t141, %logic.rend8440 ] + br label %logic.from8441 +logic.from8441: + br i1 %t142, label %logic.rhs8442, label %logic.end8443 +logic.rhs8442: %t143 = getelementptr inbounds { ptr, i64, i64 }, ptr %a7, i32 0, i32 1 %t144 = load i64, ptr %t143 %t145 = icmp sgt i64 %t144, 0 - br label %logic.rend8051 -logic.rend8051: - br label %logic.end8050 -logic.end8050: - %t146 = phi i1 [ false, %logic.from8048 ], [ %t145, %logic.rend8051 ] - br label %logic.from8052 -logic.from8052: - br i1 %t146, label %logic.rhs8053, label %logic.end8054 -logic.rhs8053: + br label %logic.rend8444 +logic.rend8444: + br label %logic.end8443 +logic.end8443: + %t146 = phi i1 [ false, %logic.from8441 ], [ %t145, %logic.rend8444 ] + br label %logic.from8445 +logic.from8445: + br i1 %t146, label %logic.rhs8446, label %logic.end8447 +logic.rhs8446: %t147 = load %S.ast.Node, ptr %a86 %t148 = call { ptr, i64, i64 } @finch.gen.rootVar(%S.ast.Node %t147) %t149 = load { ptr, i64, i64 }, ptr %a7 @@ -81987,13 +85920,13 @@ logic.rhs8053: %t153 = icmp ne i32 %t152, 0 store { ptr, i64, i64 } %t148, ptr %a154 call void @finch_str_drop(ptr %a154) - br label %logic.rend8055 -logic.rend8055: - br label %logic.end8054 -logic.end8054: - %t155 = phi i1 [ false, %logic.from8052 ], [ %t153, %logic.rend8055 ] - br i1 %t155, label %then8056, label %endif8058 -then8056: + br label %logic.rend8448 +logic.rend8448: + br label %logic.end8447 +logic.end8447: + %t155 = phi i1 [ false, %logic.from8445 ], [ %t153, %logic.rend8448 ] + br i1 %t155, label %then8449, label %endif8451 +then8449: %t156 = load ptr, ptr %a1 %t157 = getelementptr inbounds %S.gen.Val, ptr %a128, i32 0, i32 0 %t158 = load { ptr, i64, i64 }, ptr %t157 @@ -82012,8 +85945,8 @@ then8056: store %S.gen.Val %t169, ptr %a128 store %S.gen.Val %t170, ptr %a171 call void @finch.drop.S_gen_Val(ptr %a171) - br label %endif8058 -endif8058: + br label %endif8451 +endif8451: %t172 = getelementptr inbounds { ptr, i64, i64 }, ptr %a45, i32 0, i32 1 %t173 = load ptr, ptr %a1 %t174 = getelementptr inbounds %S.gen.FnSig, ptr %a21, i32 0, i32 13 @@ -82021,17 +85954,17 @@ endif8058: %t176 = load { ptr, i64, i64 }, ptr %t174 %t177 = extractvalue { ptr, i64, i64 } %t176, 1 %t178 = icmp uge i64 %t175, %t177 - br i1 %t178, label %range8059, label %inrange8060 -range8059: - call void @finch_panic_index(ptr @.str.5268, i64 4882, i64 %t175, i64 %t177) + br i1 %t178, label %range8452, label %inrange8453 +range8452: + call void @finch_panic_index(ptr @.str.5475, i64 5109, i64 %t175, i64 %t177) unreachable -inrange8060: +inrange8453: %t179 = extractvalue { ptr, i64, i64 } %t176, 0 %t180 = getelementptr inbounds %S.ast.Type, ptr %t179, i64 %t175 %t181 = load %S.ast.Type, ptr %t180 %t182 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t173, %S.ast.Type %t181) store { ptr, i64, i64 } %t182, ptr %a184 - store { ptr, i64, i64 } { ptr @.str.5269, i64 1, i64 0 }, ptr %a185 + store { ptr, i64, i64 } { ptr @.str.5476, i64 1, i64 0 }, ptr %a185 call void @finch_str_concat(ptr %a183, ptr %a184, ptr %a185) store { ptr, i64, i64 } %t182, ptr %a186 call void @finch_str_drop(ptr %a186) @@ -82053,8 +85986,8 @@ inrange8060: store i64 %t196, ptr %t172 %t199 = getelementptr inbounds %S.gen.Val, ptr %a128, i32 0, i32 2 %t200 = load i1, ptr %t199 - br i1 %t200, label %then8061, label %endif8063 -then8061: + br i1 %t200, label %then8454, label %endif8456 +then8454: %t201 = getelementptr inbounds { ptr, i64, i64 }, ptr %a60, i32 0, i32 1 %t202 = load %S.gen.Val, ptr %a128 store %S.gen.Val %t202, ptr %a203 @@ -82067,20 +86000,20 @@ then8061: %t209 = getelementptr inbounds %S.gen.Val, ptr %t208, i64 %t206 store %S.gen.Val %t205, ptr %t209 store i64 %t207, ptr %t201 - br label %endif8063 -endif8063: + br label %endif8456 +endif8456: %t210 = load ptr, ptr %a1 %t211 = load %S.gen.Val, ptr %a128 call void @finch.gen.hold(ptr %t210, %S.gen.Val %t211) call void @finch.drop.S_gen_Val(ptr %a128) call void @finch.drop.S_ast_Node(ptr %a86) - br label %for.step8032 -for.step8032: + br label %for.step8425 +for.step8425: %t212 = load i64, ptr %a70 %t213 = add i64 %t212, 1 store i64 %t213, ptr %a70 - br label %for.cond8030 -for.end8033: + br label %for.cond8423 +for.end8426: %t214 = load ptr, ptr %a1 %t215 = load %S.gen.FnSig, ptr %a21 %t216 = load %S.ast.Node, ptr %a3 @@ -82089,14 +86022,14 @@ for.end8033: %t219 = call %S.gen.Val @finch.gen.emitCall(ptr %t214, %S.gen.FnSig %t215, %S.ast.Node %t216, { ptr, i64, i64 } %t217, { ptr, i64, i64 } %t218) store %S.gen.Val %t219, ptr %a220 store i64 0, ptr %a221 - br label %each.cond8064 -each.cond8064: + br label %each.cond8457 +each.cond8457: %t222 = getelementptr inbounds { ptr, i64, i64 }, ptr %a60, i32 0, i32 1 %t223 = load i64, ptr %t222 %t224 = load i64, ptr %a221 %t225 = icmp slt i64 %t224, %t223 - br i1 %t225, label %each.body8065, label %each.end8067 -each.body8065: + br i1 %t225, label %each.body8458, label %each.end8460 +each.body8458: %t226 = load ptr, ptr %a60 %t227 = getelementptr inbounds %S.gen.Val, ptr %t226, i64 %t224 %t228 = load %S.gen.Val, ptr %t227 @@ -82104,13 +86037,13 @@ each.body8065: %t230 = load ptr, ptr %a1 %t231 = load %S.gen.Val, ptr %a229 call void @finch.gen.release(ptr %t230, %S.gen.Val %t231) - br label %each.step8066 -each.step8066: + br label %each.step8459 +each.step8459: %t232 = load i64, ptr %a221 %t233 = add i64 %t232, 1 store i64 %t233, ptr %a221 - br label %each.cond8064 -each.end8067: + br label %each.cond8457 +each.end8460: %t234 = load ptr, ptr %a1 %t235 = load i64, ptr %a66 call void @finch.gen.heldEnd(ptr %t234, i64 %t235) @@ -82273,18 +86206,18 @@ entry: store { ptr, i64, i64 } %p4, ptr %a5 %t6 = getelementptr inbounds %S.gen.FnSig, ptr %a2, i32 0, i32 9 %t7 = load i1, ptr %t6 - br label %logic.from8068 -logic.from8068: - br i1 %t7, label %logic.rhs8069, label %logic.end8070 -logic.rhs8069: + br label %logic.from8461 +logic.from8461: + br i1 %t7, label %logic.rhs8462, label %logic.end8463 +logic.rhs8462: %t8 = load ptr, ptr %a1 %t9 = icmp eq ptr %t8, null - br i1 %t9, label %panic8071, label %ok8072 -panic8071: - call void @finch_panic(ptr @.str.5270, i64 4898, ptr @.str.5271) + br i1 %t9, label %panic8464, label %ok8465 +panic8464: + call void @finch_panic(ptr @.str.5477, i64 5125, ptr @.str.5478) unreachable -ok8072: - %t10 = getelementptr inbounds %S.gen.Gen, ptr %t8, i32 0, i32 40 +ok8465: + %t10 = getelementptr inbounds %S.gen.Gen, ptr %t8, i32 0, i32 41 %t11 = load { ptr, i64, i64 }, ptr %t10 %t12 = load %S.ast.Node, ptr %a3 %t13 = call { ptr, i64, i64 } @finch.gen.nodeKey(%S.ast.Node %t12) @@ -82294,22 +86227,22 @@ ok8072: %t17 = icmp eq i32 %t16, 0 store { ptr, i64, i64 } %t13, ptr %a18 call void @finch_str_drop(ptr %a18) - br label %logic.rend8073 -logic.rend8073: - br label %logic.end8070 -logic.end8070: - %t19 = phi i1 [ false, %logic.from8068 ], [ %t17, %logic.rend8073 ] - br i1 %t19, label %then8074, label %endif8076 -then8074: + br label %logic.rend8466 +logic.rend8466: + br label %logic.end8463 +logic.end8463: + %t19 = phi i1 [ false, %logic.from8461 ], [ %t17, %logic.rend8466 ] + br i1 %t19, label %then8467, label %endif8469 +then8467: %t20 = load ptr, ptr %a1 %t21 = load %S.ast.Node, ptr %a3 %t22 = load { ptr, i64, i64 }, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.5272, i64 1, i64 0 }, ptr %a24 + store { ptr, i64, i64 } { ptr @.str.5479, i64 1, i64 0 }, ptr %a24 store { ptr, i64, i64 } %t22, ptr %a25 call void @finch_str_concat(ptr %a23, ptr %a24, ptr %a25) %t26 = load { ptr, i64, i64 }, ptr %a23 store { ptr, i64, i64 } %t26, ptr %a28 - store { ptr, i64, i64 } { ptr @.str.5273, i64 39, i64 0 }, ptr %a29 + store { ptr, i64, i64 } { ptr @.str.5480, i64 39, i64 0 }, ptr %a29 call void @finch_str_concat(ptr %a27, ptr %a28, ptr %a29) store { ptr, i64, i64 } %t26, ptr %a30 call void @finch_str_drop(ptr %a30) @@ -82322,7 +86255,7 @@ then8074: call void @finch_str_drop(ptr %a36) %t37 = load { ptr, i64, i64 }, ptr %a33 store { ptr, i64, i64 } %t37, ptr %a39 - store { ptr, i64, i64 } { ptr @.str.5274, i64 19, i64 0 }, ptr %a40 + store { ptr, i64, i64 } { ptr @.str.5481, i64 19, i64 0 }, ptr %a40 call void @finch_str_concat(ptr %a38, ptr %a39, ptr %a40) store { ptr, i64, i64 } %t37, ptr %a41 call void @finch_str_drop(ptr %a41) @@ -82335,7 +86268,7 @@ then8074: call void @finch_str_drop(ptr %a47) %t48 = load { ptr, i64, i64 }, ptr %a44 store { ptr, i64, i64 } %t48, ptr %a50 - store { ptr, i64, i64 } { ptr @.str.5275, i64 27, i64 0 }, ptr %a51 + store { ptr, i64, i64 } { ptr @.str.5482, i64 27, i64 0 }, ptr %a51 call void @finch_str_concat(ptr %a49, ptr %a50, ptr %a51) store { ptr, i64, i64 } %t48, ptr %a52 call void @finch_str_drop(ptr %a52) @@ -82348,7 +86281,7 @@ then8074: call void @finch_str_drop(ptr %a58) %t59 = load { ptr, i64, i64 }, ptr %a55 store { ptr, i64, i64 } %t59, ptr %a61 - store { ptr, i64, i64 } { ptr @.str.5276, i64 5, i64 0 }, ptr %a62 + store { ptr, i64, i64 } { ptr @.str.5483, i64 5, i64 0 }, ptr %a62 call void @finch_str_concat(ptr %a60, ptr %a61, ptr %a62) store { ptr, i64, i64 } %t59, ptr %a63 call void @finch_str_drop(ptr %a63) @@ -82356,19 +86289,19 @@ then8074: call void @finch.gen.fail(ptr %t20, %S.ast.Node %t21, { ptr, i64, i64 } %t64) store { ptr, i64, i64 } %t64, ptr %a65 call void @finch_str_drop(ptr %a65) - br label %endif8076 -endif8076: + br label %endif8469 +endif8469: %t66 = load ptr, ptr %a1 %t67 = load %S.gen.FnSig, ptr %a2 %t68 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t66, %S.gen.FnSig %t67) - store { ptr, i64, i64 } { ptr @.str.5277, i64 5, i64 0 }, ptr %a70 + store { ptr, i64, i64 } { ptr @.str.5484, i64 5, i64 0 }, ptr %a70 store { ptr, i64, i64 } %t68, ptr %a71 call void @finch_str_concat(ptr %a69, ptr %a70, ptr %a71) store { ptr, i64, i64 } %t68, ptr %a72 call void @finch_str_drop(ptr %a72) %t73 = load { ptr, i64, i64 }, ptr %a69 store { ptr, i64, i64 } %t73, ptr %a75 - store { ptr, i64, i64 } { ptr @.str.5278, i64 1, i64 0 }, ptr %a76 + store { ptr, i64, i64 } { ptr @.str.5485, i64 1, i64 0 }, ptr %a76 call void @finch_str_concat(ptr %a74, ptr %a75, ptr %a76) store { ptr, i64, i64 } %t73, ptr %a77 call void @finch_str_drop(ptr %a77) @@ -82382,13 +86315,13 @@ endif8076: call void @finch_str_drop(ptr %a84) %t85 = load { ptr, i64, i64 }, ptr %a81 store { ptr, i64, i64 } %t85, ptr %a87 - store { ptr, i64, i64 } { ptr @.str.5279, i64 1, i64 0 }, ptr %a88 + store { ptr, i64, i64 } { ptr @.str.5486, i64 1, i64 0 }, ptr %a88 call void @finch_str_concat(ptr %a86, ptr %a87, ptr %a88) store { ptr, i64, i64 } %t85, ptr %a89 call void @finch_str_drop(ptr %a89) %t90 = load { ptr, i64, i64 }, ptr %a86 %t91 = getelementptr inbounds { ptr, i64, i64 }, ptr %a4, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.5280, i64 2, i64 0 }, ptr %a92 + store { ptr, i64, i64 } { ptr @.str.5487, i64 2, i64 0 }, ptr %a92 call void @finch_str_join(ptr %a93, ptr %a4, ptr %a92) %t94 = load { ptr, i64, i64 }, ptr %a93 store { ptr, i64, i64 } %t90, ptr %a96 @@ -82400,7 +86333,7 @@ endif8076: call void @finch_str_drop(ptr %a99) %t100 = load { ptr, i64, i64 }, ptr %a95 store { ptr, i64, i64 } %t100, ptr %a102 - store { ptr, i64, i64 } { ptr @.str.5281, i64 1, i64 0 }, ptr %a103 + store { ptr, i64, i64 } { ptr @.str.5488, i64 1, i64 0 }, ptr %a103 call void @finch_str_concat(ptr %a101, ptr %a102, ptr %a103) store { ptr, i64, i64 } %t100, ptr %a104 call void @finch_str_drop(ptr %a104) @@ -82408,8 +86341,8 @@ endif8076: store { ptr, i64, i64 } %t105, ptr %a106 %t107 = getelementptr inbounds %S.gen.FnSig, ptr %a2, i32 0, i32 9 %t108 = load i1, ptr %t107 - br i1 %t108, label %then8077, label %endif8079 -then8077: + br i1 %t108, label %then8470, label %endif8472 +then8470: %t109 = load ptr, ptr %a1 %t110 = load { ptr, i64, i64 }, ptr %a106 %t111 = call { ptr, i64, i64 } @finch.gen.op(ptr %t109, { ptr, i64, i64 } %t110) @@ -82418,14 +86351,14 @@ then8077: %t114 = load ptr, ptr %a1 %t115 = load %S.gen.FnSig, ptr %a2 %t116 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t114, %S.gen.FnSig %t115) - store { ptr, i64, i64 } { ptr @.str.5282, i64 13, i64 0 }, ptr %a118 + store { ptr, i64, i64 } { ptr @.str.5489, i64 13, i64 0 }, ptr %a118 store { ptr, i64, i64 } %t116, ptr %a119 call void @finch_str_concat(ptr %a117, ptr %a118, ptr %a119) store { ptr, i64, i64 } %t116, ptr %a120 call void @finch_str_drop(ptr %a120) %t121 = load { ptr, i64, i64 }, ptr %a117 store { ptr, i64, i64 } %t121, ptr %a123 - store { ptr, i64, i64 } { ptr @.str.5283, i64 1, i64 0 }, ptr %a124 + store { ptr, i64, i64 } { ptr @.str.5490, i64 1, i64 0 }, ptr %a124 call void @finch_str_concat(ptr %a122, ptr %a123, ptr %a124) store { ptr, i64, i64 } %t121, ptr %a125 call void @finch_str_drop(ptr %a125) @@ -82438,7 +86371,7 @@ then8077: call void @finch_str_drop(ptr %a131) %t132 = load { ptr, i64, i64 }, ptr %a128 store { ptr, i64, i64 } %t132, ptr %a134 - store { ptr, i64, i64 } { ptr @.str.5284, i64 3, i64 0 }, ptr %a135 + store { ptr, i64, i64 } { ptr @.str.5491, i64 3, i64 0 }, ptr %a135 call void @finch_str_concat(ptr %a133, ptr %a134, ptr %a135) store { ptr, i64, i64 } %t132, ptr %a136 call void @finch_str_drop(ptr %a136) @@ -82449,12 +86382,12 @@ then8077: store { ptr, i64, i64 } %t138, ptr %a140 %t141 = load ptr, ptr %a1 %t142 = load { ptr, i64, i64 }, ptr %a140 - store { ptr, i64, i64 } { ptr @.str.5285, i64 7, i64 0 }, ptr %a144 + store { ptr, i64, i64 } { ptr @.str.5492, i64 7, i64 0 }, ptr %a144 store { ptr, i64, i64 } %t142, ptr %a145 call void @finch_str_concat(ptr %a143, ptr %a144, ptr %a145) %t146 = load { ptr, i64, i64 }, ptr %a143 store { ptr, i64, i64 } %t146, ptr %a148 - store { ptr, i64, i64 } { ptr @.str.5286, i64 6, i64 0 }, ptr %a149 + store { ptr, i64, i64 } { ptr @.str.5493, i64 6, i64 0 }, ptr %a149 call void @finch_str_concat(ptr %a147, ptr %a148, ptr %a149) store { ptr, i64, i64 } %t146, ptr %a150 call void @finch_str_drop(ptr %a150) @@ -82464,12 +86397,12 @@ then8077: call void @finch_str_drop(ptr %a153) %t154 = load ptr, ptr %a1 %t155 = icmp eq ptr %t154, null - br i1 %t155, label %panic8080, label %ok8081 -panic8080: - call void @finch_panic(ptr @.str.5287, i64 4905, ptr @.str.5288) + br i1 %t155, label %panic8473, label %ok8474 +panic8473: + call void @finch_panic(ptr @.str.5494, i64 5132, ptr @.str.5495) unreachable -ok8081: - %t156 = getelementptr inbounds %S.gen.Gen, ptr %t154, i32 0, i32 41 +ok8474: + %t156 = getelementptr inbounds %S.gen.Gen, ptr %t154, i32 0, i32 42 %t157 = load { ptr, i64, i64 }, ptr %t156 store { ptr, i64, i64 } %t152, ptr %t156 store { ptr, i64, i64 } %t157, ptr %a158 @@ -82478,14 +86411,14 @@ ok8081: %t160 = load ptr, ptr %a1 %t161 = load %S.gen.FnSig, ptr %a2 %t162 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t160, %S.gen.FnSig %t161) - store { ptr, i64, i64 } { ptr @.str.5289, i64 13, i64 0 }, ptr %a164 + store { ptr, i64, i64 } { ptr @.str.5496, i64 13, i64 0 }, ptr %a164 store { ptr, i64, i64 } %t162, ptr %a165 call void @finch_str_concat(ptr %a163, ptr %a164, ptr %a165) store { ptr, i64, i64 } %t162, ptr %a166 call void @finch_str_drop(ptr %a166) %t167 = load { ptr, i64, i64 }, ptr %a163 store { ptr, i64, i64 } %t167, ptr %a169 - store { ptr, i64, i64 } { ptr @.str.5290, i64 1, i64 0 }, ptr %a170 + store { ptr, i64, i64 } { ptr @.str.5497, i64 1, i64 0 }, ptr %a170 call void @finch_str_concat(ptr %a168, ptr %a169, ptr %a170) store { ptr, i64, i64 } %t167, ptr %a171 call void @finch_str_drop(ptr %a171) @@ -82498,7 +86431,7 @@ ok8081: call void @finch_str_drop(ptr %a177) %t178 = load { ptr, i64, i64 }, ptr %a174 store { ptr, i64, i64 } %t178, ptr %a180 - store { ptr, i64, i64 } { ptr @.str.5291, i64 3, i64 0 }, ptr %a181 + store { ptr, i64, i64 } { ptr @.str.5498, i64 3, i64 0 }, ptr %a181 call void @finch_str_concat(ptr %a179, ptr %a180, ptr %a181) store { ptr, i64, i64 } %t178, ptr %a182 call void @finch_str_drop(ptr %a182) @@ -82508,12 +86441,12 @@ ok8081: call void @finch_str_drop(ptr %a185) %t186 = load ptr, ptr %a1 %t187 = icmp eq ptr %t186, null - br i1 %t187, label %panic8082, label %ok8083 -panic8082: - call void @finch_panic(ptr @.str.5292, i64 4906, ptr @.str.5293) + br i1 %t187, label %panic8475, label %ok8476 +panic8475: + call void @finch_panic(ptr @.str.5499, i64 5133, ptr @.str.5500) unreachable -ok8083: - %t188 = getelementptr inbounds %S.gen.Gen, ptr %t186, i32 0, i32 42 +ok8476: + %t188 = getelementptr inbounds %S.gen.Gen, ptr %t186, i32 0, i32 43 %t189 = load { ptr, i64, i64 }, ptr %t188 store { ptr, i64, i64 } %t184, ptr %t188 store { ptr, i64, i64 } %t189, ptr %a190 @@ -82522,11 +86455,11 @@ ok8083: %t192 = getelementptr inbounds %S.ast.Type, ptr %t191, i32 0, i32 0 %t193 = load { ptr, i64, i64 }, ptr %t192 store { ptr, i64, i64 } %t193, ptr %a194 - store { ptr, i64, i64 } { ptr @.str.5294, i64 4, i64 0 }, ptr %a195 + store { ptr, i64, i64 } { ptr @.str.5501, i64 4, i64 0 }, ptr %a195 %t196 = call i32 @finch_str_eq(ptr %a194, ptr %a195) %t197 = icmp ne i32 %t196, 0 - br i1 %t197, label %then8084, label %endif8086 -then8084: + br i1 %t197, label %then8477, label %endif8479 +then8477: %t198 = getelementptr inbounds %S.gen.FnSig, ptr %a2, i32 0, i32 12 %t199 = load %S.ast.Type, ptr %t198 store %S.ast.Type %t199, ptr %a200 @@ -82537,19 +86470,19 @@ then8084: call void @finch_str_drop(ptr %a112) call void @finch_str_drop(ptr %a106) ret %S.gen.Val %t203 -endif8086: +endif8479: %t204 = load ptr, ptr %a1 %t205 = load ptr, ptr %a1 %t206 = load %S.gen.FnSig, ptr %a2 %t207 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t205, %S.gen.FnSig %t206) - store { ptr, i64, i64 } { ptr @.str.5295, i64 13, i64 0 }, ptr %a209 + store { ptr, i64, i64 } { ptr @.str.5502, i64 13, i64 0 }, ptr %a209 store { ptr, i64, i64 } %t207, ptr %a210 call void @finch_str_concat(ptr %a208, ptr %a209, ptr %a210) store { ptr, i64, i64 } %t207, ptr %a211 call void @finch_str_drop(ptr %a211) %t212 = load { ptr, i64, i64 }, ptr %a208 store { ptr, i64, i64 } %t212, ptr %a214 - store { ptr, i64, i64 } { ptr @.str.5296, i64 1, i64 0 }, ptr %a215 + store { ptr, i64, i64 } { ptr @.str.5503, i64 1, i64 0 }, ptr %a215 call void @finch_str_concat(ptr %a213, ptr %a214, ptr %a215) store { ptr, i64, i64 } %t212, ptr %a216 call void @finch_str_drop(ptr %a216) @@ -82562,7 +86495,7 @@ endif8086: call void @finch_str_drop(ptr %a222) %t223 = load { ptr, i64, i64 }, ptr %a219 store { ptr, i64, i64 } %t223, ptr %a225 - store { ptr, i64, i64 } { ptr @.str.5297, i64 3, i64 0 }, ptr %a226 + store { ptr, i64, i64 } { ptr @.str.5504, i64 3, i64 0 }, ptr %a226 call void @finch_str_concat(ptr %a224, ptr %a225, ptr %a226) store { ptr, i64, i64 } %t223, ptr %a227 call void @finch_str_drop(ptr %a227) @@ -82586,16 +86519,16 @@ endif8086: call void @finch_str_drop(ptr %a112) call void @finch_str_drop(ptr %a106) ret %S.gen.Val %t242 -endif8079: +endif8472: %t243 = getelementptr inbounds %S.gen.FnSig, ptr %a2, i32 0, i32 12 %t244 = getelementptr inbounds %S.ast.Type, ptr %t243, i32 0, i32 0 %t245 = load { ptr, i64, i64 }, ptr %t244 store { ptr, i64, i64 } %t245, ptr %a246 - store { ptr, i64, i64 } { ptr @.str.5298, i64 4, i64 0 }, ptr %a247 + store { ptr, i64, i64 } { ptr @.str.5505, i64 4, i64 0 }, ptr %a247 %t248 = call i32 @finch_str_eq(ptr %a246, ptr %a247) %t249 = icmp ne i32 %t248, 0 - br i1 %t249, label %then8087, label %endif8089 -then8087: + br i1 %t249, label %then8480, label %endif8482 +then8480: %t250 = load ptr, ptr %a1 %t251 = load { ptr, i64, i64 }, ptr %a106 call void @finch.gen.emit(ptr %t250, { ptr, i64, i64 } %t251) @@ -82607,7 +86540,7 @@ then8087: %t257 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t256, 1 call void @finch_str_drop(ptr %a106) ret %S.gen.Val %t257 -endif8089: +endif8482: %t258 = load ptr, ptr %a1 %t259 = load { ptr, i64, i64 }, ptr %a106 %t260 = call { ptr, i64, i64 } @finch.gen.op(ptr %t258, { ptr, i64, i64 } %t259) @@ -82829,21 +86762,21 @@ entry: store %S.ast.Node %p4, ptr %a5 %t6 = load ptr, ptr %a1 %t7 = icmp eq ptr %t6, null - br i1 %t7, label %panic8090, label %ok8091 -panic8090: - call void @finch_panic(ptr @.str.5299, i64 4920, ptr @.str.5300) + br i1 %t7, label %panic8483, label %ok8484 +panic8483: + call void @finch_panic(ptr @.str.5506, i64 5147, ptr @.str.5507) unreachable -ok8091: +ok8484: %t8 = getelementptr inbounds %S.gen.Gen, ptr %t6, i32 0, i32 16 %t9 = load i64, ptr %a2 %t10 = load { ptr, i64, i64 }, ptr %t8 %t11 = extractvalue { ptr, i64, i64 } %t10, 1 %t12 = icmp uge i64 %t9, %t11 - br i1 %t12, label %range8092, label %inrange8093 -range8092: - call void @finch_panic_index(ptr @.str.5301, i64 4920, i64 %t9, i64 %t11) + br i1 %t12, label %range8485, label %inrange8486 +range8485: + call void @finch_panic_index(ptr @.str.5508, i64 5147, i64 %t9, i64 %t11) unreachable -inrange8093: +inrange8486: %t13 = extractvalue { ptr, i64, i64 } %t10, 0 %t14 = getelementptr inbounds %S.gen.StructDef, ptr %t13, i64 %t9 %t15 = load %S.gen.StructDef, ptr %t14 @@ -82855,26 +86788,26 @@ inrange8093: %t21 = getelementptr inbounds %S.gen.StructDef, ptr %a19, i32 0, i32 2 %t22 = load i1, ptr %t21 %t23 = xor i1 %t22, true - br i1 %t23, label %then8094, label %endif8096 -then8094: + br i1 %t23, label %then8487, label %endif8489 +then8487: %t24 = load ptr, ptr %a1 %t25 = icmp eq ptr %t24, null - br i1 %t25, label %panic8097, label %ok8098 -panic8097: - call void @finch_panic(ptr @.str.5302, i64 4923, ptr @.str.5303) + br i1 %t25, label %panic8490, label %ok8491 +panic8490: + call void @finch_panic(ptr @.str.5509, i64 5150, ptr @.str.5510) unreachable -ok8098: +ok8491: %t26 = getelementptr inbounds %S.gen.Gen, ptr %t24, i32 0, i32 0 %t27 = getelementptr inbounds %S.gen.StructDef, ptr %a19, i32 0, i32 13 %t28 = load i64, ptr %t27 %t29 = load { ptr, i64, i64 }, ptr %t26 %t30 = extractvalue { ptr, i64, i64 } %t29, 1 %t31 = icmp uge i64 %t28, %t30 - br i1 %t31, label %range8099, label %inrange8100 -range8099: - call void @finch_panic_index(ptr @.str.5304, i64 4923, i64 %t28, i64 %t30) + br i1 %t31, label %range8492, label %inrange8493 +range8492: + call void @finch_panic_index(ptr @.str.5511, i64 5150, i64 %t28, i64 %t30) unreachable -inrange8100: +inrange8493: %t32 = extractvalue { ptr, i64, i64 } %t29, 0 %t33 = getelementptr inbounds %S.ast.Program, ptr %t32, i64 %t28 %t34 = getelementptr inbounds %S.ast.Program, ptr %t33, i32 0, i32 6 @@ -82883,11 +86816,11 @@ inrange8100: %t37 = load { ptr, i64, i64 }, ptr %t34 %t38 = extractvalue { ptr, i64, i64 } %t37, 1 %t39 = icmp uge i64 %t36, %t38 - br i1 %t39, label %range8101, label %inrange8102 -range8101: - call void @finch_panic_index(ptr @.str.5305, i64 4923, i64 %t36, i64 %t38) + br i1 %t39, label %range8494, label %inrange8495 +range8494: + call void @finch_panic_index(ptr @.str.5512, i64 5150, i64 %t36, i64 %t38) unreachable -inrange8102: +inrange8495: %t40 = extractvalue { ptr, i64, i64 } %t37, 0 %t41 = getelementptr inbounds %S.ast.Node, ptr %t40, i64 %t36 %t42 = load %S.ast.Node, ptr %t41 @@ -82898,9 +86831,9 @@ inrange8102: store %S.ast.Node %t45, ptr %a20 store %S.ast.Node %t46, ptr %a47 call void @finch.drop.S_ast_Node(ptr %a47) - br label %endif8096 -endif8096: - %t48 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.5306, i64 6, i64 0 }, 0 + br label %endif8489 +endif8489: + %t48 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.5513, i64 6, i64 0 }, 0 %t49 = getelementptr inbounds %S.gen.StructDef, ptr %a19, i32 0, i32 1 %t50 = load { ptr, i64, i64 }, ptr %t49 store { ptr, i64, i64 } %t50, ptr %a51 @@ -82921,40 +86854,40 @@ endif8096: %t66 = getelementptr inbounds { ptr, i64, i64 }, ptr %a4, i32 0, i32 1 %t67 = load i64, ptr %t66 %t68 = icmp sgt i64 %t67, 0 - br label %logic.from8103 -logic.from8103: - br i1 %t68, label %logic.rhs8104, label %logic.end8105 -logic.rhs8104: + br label %logic.from8496 +logic.from8496: + br i1 %t68, label %logic.rhs8497, label %logic.end8498 +logic.rhs8497: %t69 = load { ptr, i64, i64 }, ptr %a4 %t70 = extractvalue { ptr, i64, i64 } %t69, 1 %t71 = icmp uge i64 0, %t70 - br i1 %t71, label %range8106, label %inrange8107 -range8106: - call void @finch_panic_index(ptr @.str.5307, i64 4927, i64 0, i64 %t70) + br i1 %t71, label %range8499, label %inrange8500 +range8499: + call void @finch_panic_index(ptr @.str.5514, i64 5154, i64 0, i64 %t70) unreachable -inrange8107: +inrange8500: %t72 = extractvalue { ptr, i64, i64 } %t69, 0 %t73 = getelementptr inbounds { ptr, i64, i64 }, ptr %t72, i64 0 %t74 = getelementptr inbounds { ptr, i64, i64 }, ptr %t73, i32 0, i32 1 %t75 = load i64, ptr %t74 %t76 = icmp sgt i64 %t75, 0 - br label %logic.rend8108 -logic.rend8108: - br label %logic.end8105 -logic.end8105: - %t77 = phi i1 [ false, %logic.from8103 ], [ %t76, %logic.rend8108 ] + br label %logic.rend8501 +logic.rend8501: + br label %logic.end8498 +logic.end8498: + %t77 = phi i1 [ false, %logic.from8496 ], [ %t76, %logic.rend8501 ] store i1 %t77, ptr %a78 store { ptr, i64, i64 } zeroinitializer, ptr %a79 %t80 = getelementptr inbounds %S.gen.StructDef, ptr %a19, i32 0, i32 11 %t81 = getelementptr inbounds { ptr, i64, i64 }, ptr %t80, i32 0, i32 1 %t82 = load i64, ptr %t81 store i64 0, ptr %a83 - br label %for.cond8109 -for.cond8109: + br label %for.cond8502 +for.cond8502: %t84 = load i64, ptr %a83 %t85 = icmp slt i64 %t84, %t82 - br i1 %t85, label %for.body8110, label %for.end8112 -for.body8110: + br i1 %t85, label %for.body8503, label %for.end8505 +for.body8503: %t86 = getelementptr inbounds { ptr, i64, i64 }, ptr %a79, i32 0, i32 1 %t87 = load i64, ptr %t86 %t88 = add i64 %t87, 1 @@ -82963,31 +86896,31 @@ for.body8110: %t90 = getelementptr inbounds i64, ptr %t89, i64 %t87 store i64 -1, ptr %t90 store i64 %t88, ptr %t86 - br label %for.step8111 -for.step8111: + br label %for.step8504 +for.step8504: %t91 = load i64, ptr %a83 %t92 = add i64 %t91, 1 store i64 %t92, ptr %a83 - br label %for.cond8109 -for.end8112: + br label %for.cond8502 +for.end8505: %t93 = getelementptr inbounds { ptr, i64, i64 }, ptr %a3, i32 0, i32 1 %t94 = load i64, ptr %t93 store i64 0, ptr %a95 - br label %for.cond8113 -for.cond8113: + br label %for.cond8506 +for.cond8506: %t96 = load i64, ptr %a95 %t97 = icmp slt i64 %t96, %t94 - br i1 %t97, label %for.body8114, label %for.end8116 -for.body8114: + br i1 %t97, label %for.body8507, label %for.end8509 +for.body8507: %t98 = load i64, ptr %a95 %t99 = load { ptr, i64, i64 }, ptr %a4 %t100 = extractvalue { ptr, i64, i64 } %t99, 1 %t101 = icmp uge i64 %t98, %t100 - br i1 %t101, label %range8117, label %inrange8118 -range8117: - call void @finch_panic_index(ptr @.str.5308, i64 4933, i64 %t98, i64 %t100) + br i1 %t101, label %range8510, label %inrange8511 +range8510: + call void @finch_panic_index(ptr @.str.5515, i64 5160, i64 %t98, i64 %t100) unreachable -inrange8118: +inrange8511: %t102 = extractvalue { ptr, i64, i64 } %t99, 0 %t103 = getelementptr inbounds { ptr, i64, i64 }, ptr %t102, i64 %t98 %t104 = getelementptr inbounds { ptr, i64, i64 }, ptr %t103, i32 0, i32 1 @@ -82995,42 +86928,42 @@ inrange8118: %t106 = icmp sgt i64 %t105, 0 %t107 = load i1, ptr %a78 %t108 = icmp ne i1 %t106, %t107 - br i1 %t108, label %then8119, label %endif8121 -then8119: + br i1 %t108, label %then8512, label %endif8514 +then8512: %t109 = load ptr, ptr %a1 %t110 = load i64, ptr %a95 %t111 = load { ptr, i64, i64 }, ptr %a3 %t112 = extractvalue { ptr, i64, i64 } %t111, 1 %t113 = icmp uge i64 %t110, %t112 - br i1 %t113, label %range8122, label %inrange8123 -range8122: - call void @finch_panic_index(ptr @.str.5309, i64 4934, i64 %t110, i64 %t112) + br i1 %t113, label %range8515, label %inrange8516 +range8515: + call void @finch_panic_index(ptr @.str.5516, i64 5161, i64 %t110, i64 %t112) unreachable -inrange8123: +inrange8516: %t114 = extractvalue { ptr, i64, i64 } %t111, 0 %t115 = getelementptr inbounds %S.ast.Node, ptr %t114, i64 %t110 %t116 = load %S.ast.Node, ptr %t115 - call void @finch.gen.fail(ptr %t109, %S.ast.Node %t116, { ptr, i64, i64 } { ptr @.str.5310, i64 69, i64 0 }) - br label %endif8121 -endif8121: + call void @finch.gen.fail(ptr %t109, %S.ast.Node %t116, { ptr, i64, i64 } { ptr @.str.5517, i64 69, i64 0 }) + br label %endif8514 +endif8514: %t117 = load i1, ptr %a78 %t118 = xor i1 %t117, true - br i1 %t118, label %then8124, label %endif8126 -then8124: + br i1 %t118, label %then8517, label %endif8519 +then8517: %t119 = getelementptr inbounds { ptr, i64, i64 }, ptr %a3, i32 0, i32 1 %t120 = load i64, ptr %t119 %t121 = getelementptr inbounds %S.gen.StructDef, ptr %a19, i32 0, i32 11 %t122 = getelementptr inbounds { ptr, i64, i64 }, ptr %t121, i32 0, i32 1 %t123 = load i64, ptr %t122 %t124 = icmp ne i64 %t120, %t123 - br i1 %t124, label %then8127, label %endif8129 -then8127: + br i1 %t124, label %then8520, label %endif8522 +then8520: %t125 = load ptr, ptr %a1 %t126 = load %S.ast.Node, ptr %a5 %t127 = getelementptr inbounds %S.gen.StructDef, ptr %a19, i32 0, i32 1 %t128 = load { ptr, i64, i64 }, ptr %t127 store { ptr, i64, i64 } %t128, ptr %a130 - store { ptr, i64, i64 } { ptr @.str.5311, i64 5, i64 0 }, ptr %a131 + store { ptr, i64, i64 } { ptr @.str.5518, i64 5, i64 0 }, ptr %a131 call void @finch_str_concat(ptr %a129, ptr %a130, ptr %a131) %t132 = load { ptr, i64, i64 }, ptr %a129 %t133 = getelementptr inbounds %S.gen.StructDef, ptr %a19, i32 0, i32 11 @@ -83047,7 +86980,7 @@ then8127: call void @finch_str_drop(ptr %a142) %t143 = load { ptr, i64, i64 }, ptr %a138 store { ptr, i64, i64 } %t143, ptr %a145 - store { ptr, i64, i64 } { ptr @.str.5312, i64 17, i64 0 }, ptr %a146 + store { ptr, i64, i64 } { ptr @.str.5519, i64 17, i64 0 }, ptr %a146 call void @finch_str_concat(ptr %a144, ptr %a145, ptr %a146) store { ptr, i64, i64 } %t143, ptr %a147 call void @finch_str_drop(ptr %a147) @@ -83065,7 +86998,7 @@ then8127: call void @finch_str_drop(ptr %a157) %t158 = load { ptr, i64, i64 }, ptr %a153 store { ptr, i64, i64 } %t158, ptr %a160 - store { ptr, i64, i64 } { ptr @.str.5313, i64 23, i64 0 }, ptr %a161 + store { ptr, i64, i64 } { ptr @.str.5520, i64 23, i64 0 }, ptr %a161 call void @finch_str_concat(ptr %a159, ptr %a160, ptr %a161) store { ptr, i64, i64 } %t158, ptr %a162 call void @finch_str_drop(ptr %a162) @@ -83079,7 +87012,7 @@ then8127: call void @finch_str_drop(ptr %a169) %t170 = load { ptr, i64, i64 }, ptr %a166 store { ptr, i64, i64 } %t170, ptr %a172 - store { ptr, i64, i64 } { ptr @.str.5314, i64 15, i64 0 }, ptr %a173 + store { ptr, i64, i64 } { ptr @.str.5521, i64 15, i64 0 }, ptr %a173 call void @finch_str_concat(ptr %a171, ptr %a172, ptr %a173) store { ptr, i64, i64 } %t170, ptr %a174 call void @finch_str_drop(ptr %a174) @@ -83087,34 +87020,34 @@ then8127: call void @finch.gen.fail(ptr %t125, %S.ast.Node %t126, { ptr, i64, i64 } %t175) store { ptr, i64, i64 } %t175, ptr %a176 call void @finch_str_drop(ptr %a176) - br label %endif8129 -endif8129: + br label %endif8522 +endif8522: %t177 = load i64, ptr %a95 %t178 = load i64, ptr %a95 %t179 = load { ptr, i64, i64 }, ptr %a79 %t180 = extractvalue { ptr, i64, i64 } %t179, 1 %t181 = icmp uge i64 %t178, %t180 - br i1 %t181, label %range8130, label %inrange8131 -range8130: - call void @finch_panic_index(ptr @.str.5315, i64 4940, i64 %t178, i64 %t180) + br i1 %t181, label %range8523, label %inrange8524 +range8523: + call void @finch_panic_index(ptr @.str.5522, i64 5167, i64 %t178, i64 %t180) unreachable -inrange8131: +inrange8524: %t182 = extractvalue { ptr, i64, i64 } %t179, 0 %t183 = getelementptr inbounds i64, ptr %t182, i64 %t178 store i64 %t177, ptr %t183 - br label %for.step8115 -endif8126: + br label %for.step8508 +endif8519: %t184 = getelementptr inbounds %S.gen.StructDef, ptr %a19, i32 0, i32 11 %t185 = getelementptr inbounds { ptr, i64, i64 }, ptr %t184, i32 0, i32 1 %t186 = load i64, ptr %a95 %t187 = load { ptr, i64, i64 }, ptr %a4 %t188 = extractvalue { ptr, i64, i64 } %t187, 1 %t189 = icmp uge i64 %t186, %t188 - br i1 %t189, label %range8132, label %inrange8133 -range8132: - call void @finch_panic_index(ptr @.str.5316, i64 4943, i64 %t186, i64 %t188) + br i1 %t189, label %range8525, label %inrange8526 +range8525: + call void @finch_panic_index(ptr @.str.5523, i64 5170, i64 %t186, i64 %t188) unreachable -inrange8133: +inrange8526: %t190 = extractvalue { ptr, i64, i64 } %t187, 0 %t191 = getelementptr inbounds { ptr, i64, i64 }, ptr %t190, i64 %t186 %t192 = load { ptr, i64, i64 }, ptr %t191 @@ -83122,61 +87055,61 @@ inrange8133: %t194 = load i64, ptr %t185 %t195 = load ptr, ptr %t184 store i64 0, ptr %a196 - br label %find.cond8134 -find.cond8134: + br label %find.cond8527 +find.cond8527: %t197 = load i64, ptr %a196 %t198 = icmp slt i64 %t197, %t194 - br i1 %t198, label %find.body8135, label %find.end8138 -find.body8135: + br i1 %t198, label %find.body8528, label %find.end8531 +find.body8528: %t199 = getelementptr inbounds { ptr, i64, i64 }, ptr %t195, i64 %t197 %t200 = load { ptr, i64, i64 }, ptr %t199 store { ptr, i64, i64 } %t200, ptr %a201 store { ptr, i64, i64 } %t192, ptr %a202 %t203 = call i32 @finch_str_eq(ptr %a201, ptr %a202) %t204 = icmp ne i32 %t203, 0 - br i1 %t204, label %find.hit8136, label %find.next8137 -find.hit8136: + br i1 %t204, label %find.hit8529, label %find.next8530 +find.hit8529: store i64 %t197, ptr %a193 - br label %find.end8138 -find.next8137: + br label %find.end8531 +find.next8530: %t205 = add i64 %t197, 1 store i64 %t205, ptr %a196 - br label %find.cond8134 -find.end8138: + br label %find.cond8527 +find.end8531: %t206 = load i64, ptr %a193 store i64 %t206, ptr %a207 %t208 = load i64, ptr %a207 %t209 = icmp slt i64 %t208, 0 - br i1 %t209, label %then8139, label %endif8141 -then8139: + br i1 %t209, label %then8532, label %endif8534 +then8532: %t210 = load ptr, ptr %a1 %t211 = load i64, ptr %a95 %t212 = load { ptr, i64, i64 }, ptr %a3 %t213 = extractvalue { ptr, i64, i64 } %t212, 1 %t214 = icmp uge i64 %t211, %t213 - br i1 %t214, label %range8142, label %inrange8143 -range8142: - call void @finch_panic_index(ptr @.str.5317, i64 4945, i64 %t211, i64 %t213) + br i1 %t214, label %range8535, label %inrange8536 +range8535: + call void @finch_panic_index(ptr @.str.5524, i64 5172, i64 %t211, i64 %t213) unreachable -inrange8143: +inrange8536: %t215 = extractvalue { ptr, i64, i64 } %t212, 0 %t216 = getelementptr inbounds %S.ast.Node, ptr %t215, i64 %t211 %t217 = load %S.ast.Node, ptr %t216 %t218 = getelementptr inbounds %S.gen.StructDef, ptr %a19, i32 0, i32 1 %t219 = load { ptr, i64, i64 }, ptr %t218 store { ptr, i64, i64 } %t219, ptr %a221 - store { ptr, i64, i64 } { ptr @.str.5318, i64 15, i64 0 }, ptr %a222 + store { ptr, i64, i64 } { ptr @.str.5525, i64 15, i64 0 }, ptr %a222 call void @finch_str_concat(ptr %a220, ptr %a221, ptr %a222) %t223 = load { ptr, i64, i64 }, ptr %a220 %t224 = load i64, ptr %a95 %t225 = load { ptr, i64, i64 }, ptr %a4 %t226 = extractvalue { ptr, i64, i64 } %t225, 1 %t227 = icmp uge i64 %t224, %t226 - br i1 %t227, label %range8144, label %inrange8145 -range8144: - call void @finch_panic_index(ptr @.str.5319, i64 4945, i64 %t224, i64 %t226) + br i1 %t227, label %range8537, label %inrange8538 +range8537: + call void @finch_panic_index(ptr @.str.5526, i64 5172, i64 %t224, i64 %t226) unreachable -inrange8145: +inrange8538: %t228 = extractvalue { ptr, i64, i64 } %t225, 0 %t229 = getelementptr inbounds { ptr, i64, i64 }, ptr %t228, i64 %t224 %t230 = load { ptr, i64, i64 }, ptr %t229 @@ -83187,7 +87120,7 @@ inrange8145: call void @finch_str_drop(ptr %a234) %t235 = load { ptr, i64, i64 }, ptr %a231 store { ptr, i64, i64 } %t235, ptr %a237 - store { ptr, i64, i64 } { ptr @.str.5320, i64 1, i64 0 }, ptr %a238 + store { ptr, i64, i64 } { ptr @.str.5527, i64 1, i64 0 }, ptr %a238 call void @finch_str_concat(ptr %a236, ptr %a237, ptr %a238) store { ptr, i64, i64 } %t235, ptr %a239 call void @finch_str_drop(ptr %a239) @@ -83195,33 +87128,33 @@ inrange8145: call void @finch.gen.fail(ptr %t210, %S.ast.Node %t217, { ptr, i64, i64 } %t240) store { ptr, i64, i64 } %t240, ptr %a241 call void @finch_str_drop(ptr %a241) - br label %endif8141 -endif8141: + br label %endif8534 +endif8534: %t242 = load i64, ptr %a207 %t243 = load { ptr, i64, i64 }, ptr %a79 %t244 = extractvalue { ptr, i64, i64 } %t243, 1 %t245 = icmp uge i64 %t242, %t244 - br i1 %t245, label %range8146, label %inrange8147 -range8146: - call void @finch_panic_index(ptr @.str.5321, i64 4947, i64 %t242, i64 %t244) + br i1 %t245, label %range8539, label %inrange8540 +range8539: + call void @finch_panic_index(ptr @.str.5528, i64 5174, i64 %t242, i64 %t244) unreachable -inrange8147: +inrange8540: %t246 = extractvalue { ptr, i64, i64 } %t243, 0 %t247 = getelementptr inbounds i64, ptr %t246, i64 %t242 %t248 = load i64, ptr %t247 %t249 = icmp sge i64 %t248, 0 - br i1 %t249, label %then8148, label %endif8150 -then8148: + br i1 %t249, label %then8541, label %endif8543 +then8541: %t250 = load ptr, ptr %a1 %t251 = load i64, ptr %a95 %t252 = load { ptr, i64, i64 }, ptr %a3 %t253 = extractvalue { ptr, i64, i64 } %t252, 1 %t254 = icmp uge i64 %t251, %t253 - br i1 %t254, label %range8151, label %inrange8152 -range8151: - call void @finch_panic_index(ptr @.str.5322, i64 4948, i64 %t251, i64 %t253) + br i1 %t254, label %range8544, label %inrange8545 +range8544: + call void @finch_panic_index(ptr @.str.5529, i64 5175, i64 %t251, i64 %t253) unreachable -inrange8152: +inrange8545: %t255 = extractvalue { ptr, i64, i64 } %t252, 0 %t256 = getelementptr inbounds %S.ast.Node, ptr %t255, i64 %t251 %t257 = load %S.ast.Node, ptr %t256 @@ -83229,20 +87162,20 @@ inrange8152: %t259 = load { ptr, i64, i64 }, ptr %a4 %t260 = extractvalue { ptr, i64, i64 } %t259, 1 %t261 = icmp uge i64 %t258, %t260 - br i1 %t261, label %range8153, label %inrange8154 -range8153: - call void @finch_panic_index(ptr @.str.5324, i64 4948, i64 %t258, i64 %t260) + br i1 %t261, label %range8546, label %inrange8547 +range8546: + call void @finch_panic_index(ptr @.str.5531, i64 5175, i64 %t258, i64 %t260) unreachable -inrange8154: +inrange8547: %t262 = extractvalue { ptr, i64, i64 } %t259, 0 %t263 = getelementptr inbounds { ptr, i64, i64 }, ptr %t262, i64 %t258 %t264 = load { ptr, i64, i64 }, ptr %t263 - store { ptr, i64, i64 } { ptr @.str.5323, i64 11, i64 0 }, ptr %a266 + store { ptr, i64, i64 } { ptr @.str.5530, i64 11, i64 0 }, ptr %a266 store { ptr, i64, i64 } %t264, ptr %a267 call void @finch_str_concat(ptr %a265, ptr %a266, ptr %a267) %t268 = load { ptr, i64, i64 }, ptr %a265 store { ptr, i64, i64 } %t268, ptr %a270 - store { ptr, i64, i64 } { ptr @.str.5325, i64 16, i64 0 }, ptr %a271 + store { ptr, i64, i64 } { ptr @.str.5532, i64 16, i64 0 }, ptr %a271 call void @finch_str_concat(ptr %a269, ptr %a270, ptr %a271) store { ptr, i64, i64 } %t268, ptr %a272 call void @finch_str_drop(ptr %a272) @@ -83250,36 +87183,36 @@ inrange8154: call void @finch.gen.fail(ptr %t250, %S.ast.Node %t257, { ptr, i64, i64 } %t273) store { ptr, i64, i64 } %t273, ptr %a274 call void @finch_str_drop(ptr %a274) - br label %endif8150 -endif8150: + br label %endif8543 +endif8543: %t275 = load i64, ptr %a95 %t276 = load i64, ptr %a207 %t277 = load { ptr, i64, i64 }, ptr %a79 %t278 = extractvalue { ptr, i64, i64 } %t277, 1 %t279 = icmp uge i64 %t276, %t278 - br i1 %t279, label %range8155, label %inrange8156 -range8155: - call void @finch_panic_index(ptr @.str.5326, i64 4950, i64 %t276, i64 %t278) + br i1 %t279, label %range8548, label %inrange8549 +range8548: + call void @finch_panic_index(ptr @.str.5533, i64 5177, i64 %t276, i64 %t278) unreachable -inrange8156: +inrange8549: %t280 = extractvalue { ptr, i64, i64 } %t277, 0 %t281 = getelementptr inbounds i64, ptr %t280, i64 %t276 store i64 %t275, ptr %t281 - br label %for.step8115 -for.step8115: + br label %for.step8508 +for.step8508: %t282 = load i64, ptr %a95 %t283 = add i64 %t282, 1 store i64 %t283, ptr %a95 - br label %for.cond8113 -for.end8116: - store { ptr, i64, i64 } { ptr @.str.5327, i64 15, i64 0 }, ptr %a284 + br label %for.cond8506 +for.end8509: + store { ptr, i64, i64 } { ptr @.str.5534, i64 15, i64 0 }, ptr %a284 %t285 = load ptr, ptr %a1 %t286 = icmp eq ptr %t285, null - br i1 %t286, label %panic8157, label %ok8158 -panic8157: - call void @finch_panic(ptr @.str.5328, i64 4953, ptr @.str.5329) + br i1 %t286, label %panic8550, label %ok8551 +panic8550: + call void @finch_panic(ptr @.str.5535, i64 5180, ptr @.str.5536) unreachable -ok8158: +ok8551: %t287 = getelementptr inbounds %S.gen.Gen, ptr %t285, i32 0, i32 11 %t288 = getelementptr inbounds { ptr, i64, i64 }, ptr %t287, i32 0, i32 1 %t289 = load i64, ptr %t288 @@ -83288,22 +87221,22 @@ ok8158: %t292 = getelementptr inbounds { ptr, i64, i64 }, ptr %t291, i32 0, i32 1 %t293 = load i64, ptr %t292 store i64 0, ptr %a294 - br label %for.cond8159 -for.cond8159: + br label %for.cond8552 +for.cond8552: %t295 = load i64, ptr %a294 %t296 = icmp slt i64 %t295, %t293 - br i1 %t296, label %for.body8160, label %for.end8162 -for.body8160: + br i1 %t296, label %for.body8553, label %for.end8555 +for.body8553: %t297 = getelementptr inbounds %S.gen.StructDef, ptr %a19, i32 0, i32 12 %t298 = load i64, ptr %a294 %t299 = load { ptr, i64, i64 }, ptr %t297 %t300 = extractvalue { ptr, i64, i64 } %t299, 1 %t301 = icmp uge i64 %t298, %t300 - br i1 %t301, label %range8163, label %inrange8164 -range8163: - call void @finch_panic_index(ptr @.str.5330, i64 4955, i64 %t298, i64 %t300) + br i1 %t301, label %range8556, label %inrange8557 +range8556: + call void @finch_panic_index(ptr @.str.5537, i64 5182, i64 %t298, i64 %t300) unreachable -inrange8164: +inrange8557: %t302 = extractvalue { ptr, i64, i64 } %t299, 0 %t303 = getelementptr inbounds %S.ast.Type, ptr %t302, i64 %t298 %t304 = load %S.ast.Type, ptr %t303 @@ -83316,39 +87249,39 @@ inrange8164: %t311 = load { ptr, i64, i64 }, ptr %a79 %t312 = extractvalue { ptr, i64, i64 } %t311, 1 %t313 = icmp uge i64 %t310, %t312 - br i1 %t313, label %range8165, label %inrange8166 -range8165: - call void @finch_panic_index(ptr @.str.5331, i64 4957, i64 %t310, i64 %t312) + br i1 %t313, label %range8558, label %inrange8559 +range8558: + call void @finch_panic_index(ptr @.str.5538, i64 5184, i64 %t310, i64 %t312) unreachable -inrange8166: +inrange8559: %t314 = extractvalue { ptr, i64, i64 } %t311, 0 %t315 = getelementptr inbounds i64, ptr %t314, i64 %t310 %t316 = load i64, ptr %t315 %t317 = icmp sge i64 %t316, 0 - br i1 %t317, label %then8167, label %else8168 -then8167: + br i1 %t317, label %then8560, label %else8561 +then8560: %t318 = load ptr, ptr %a1 %t319 = load ptr, ptr %a1 %t320 = load i64, ptr %a294 %t321 = load { ptr, i64, i64 }, ptr %a79 %t322 = extractvalue { ptr, i64, i64 } %t321, 1 %t323 = icmp uge i64 %t320, %t322 - br i1 %t323, label %range8170, label %inrange8171 -range8170: - call void @finch_panic_index(ptr @.str.5332, i64 4958, i64 %t320, i64 %t322) + br i1 %t323, label %range8563, label %inrange8564 +range8563: + call void @finch_panic_index(ptr @.str.5539, i64 5185, i64 %t320, i64 %t322) unreachable -inrange8171: +inrange8564: %t324 = extractvalue { ptr, i64, i64 } %t321, 0 %t325 = getelementptr inbounds i64, ptr %t324, i64 %t320 %t326 = load i64, ptr %t325 %t327 = load { ptr, i64, i64 }, ptr %a3 %t328 = extractvalue { ptr, i64, i64 } %t327, 1 %t329 = icmp uge i64 %t326, %t328 - br i1 %t329, label %range8172, label %inrange8173 -range8172: - call void @finch_panic_index(ptr @.str.5333, i64 4958, i64 %t326, i64 %t328) + br i1 %t329, label %range8565, label %inrange8566 +range8565: + call void @finch_panic_index(ptr @.str.5540, i64 5185, i64 %t326, i64 %t328) unreachable -inrange8173: +inrange8566: %t330 = extractvalue { ptr, i64, i64 } %t327, 0 %t331 = getelementptr inbounds %S.ast.Node, ptr %t330, i64 %t326 %t332 = load %S.ast.Node, ptr %t331 @@ -83359,22 +87292,22 @@ inrange8173: %t337 = load { ptr, i64, i64 }, ptr %a79 %t338 = extractvalue { ptr, i64, i64 } %t337, 1 %t339 = icmp uge i64 %t336, %t338 - br i1 %t339, label %range8174, label %inrange8175 -range8174: - call void @finch_panic_index(ptr @.str.5334, i64 4958, i64 %t336, i64 %t338) + br i1 %t339, label %range8567, label %inrange8568 +range8567: + call void @finch_panic_index(ptr @.str.5541, i64 5185, i64 %t336, i64 %t338) unreachable -inrange8175: +inrange8568: %t340 = extractvalue { ptr, i64, i64 } %t337, 0 %t341 = getelementptr inbounds i64, ptr %t340, i64 %t336 %t342 = load i64, ptr %t341 %t343 = load { ptr, i64, i64 }, ptr %a3 %t344 = extractvalue { ptr, i64, i64 } %t343, 1 %t345 = icmp uge i64 %t342, %t344 - br i1 %t345, label %range8176, label %inrange8177 -range8176: - call void @finch_panic_index(ptr @.str.5335, i64 4958, i64 %t342, i64 %t344) + br i1 %t345, label %range8569, label %inrange8570 +range8569: + call void @finch_panic_index(ptr @.str.5542, i64 5185, i64 %t342, i64 %t344) unreachable -inrange8177: +inrange8570: %t346 = extractvalue { ptr, i64, i64 } %t343, 0 %t347 = getelementptr inbounds %S.ast.Node, ptr %t346, i64 %t342 %t348 = load %S.ast.Node, ptr %t347 @@ -83383,20 +87316,20 @@ inrange8177: %t351 = load { ptr, i64, i64 }, ptr %t349 %t352 = extractvalue { ptr, i64, i64 } %t351, 1 %t353 = icmp uge i64 %t350, %t352 - br i1 %t353, label %range8178, label %inrange8179 -range8178: - call void @finch_panic_index(ptr @.str.5337, i64 4958, i64 %t350, i64 %t352) + br i1 %t353, label %range8571, label %inrange8572 +range8571: + call void @finch_panic_index(ptr @.str.5544, i64 5185, i64 %t350, i64 %t352) unreachable -inrange8179: +inrange8572: %t354 = extractvalue { ptr, i64, i64 } %t351, 0 %t355 = getelementptr inbounds { ptr, i64, i64 }, ptr %t354, i64 %t350 %t356 = load { ptr, i64, i64 }, ptr %t355 - store { ptr, i64, i64 } { ptr @.str.5336, i64 11, i64 0 }, ptr %a358 + store { ptr, i64, i64 } { ptr @.str.5543, i64 11, i64 0 }, ptr %a358 store { ptr, i64, i64 } %t356, ptr %a359 call void @finch_str_concat(ptr %a357, ptr %a358, ptr %a359) %t360 = load { ptr, i64, i64 }, ptr %a357 store { ptr, i64, i64 } %t360, ptr %a362 - store { ptr, i64, i64 } { ptr @.str.5338, i64 1, i64 0 }, ptr %a363 + store { ptr, i64, i64 } { ptr @.str.5545, i64 1, i64 0 }, ptr %a363 call void @finch_str_concat(ptr %a361, ptr %a362, ptr %a363) store { ptr, i64, i64 } %t360, ptr %a364 call void @finch_str_drop(ptr %a364) @@ -83410,45 +87343,45 @@ inrange8179: store %S.gen.Val %t366, ptr %a309 store %S.gen.Val %t369, ptr %a370 call void @finch.drop.S_gen_Val(ptr %a370) - br label %endif8169 -else8168: + br label %endif8562 +else8561: %t371 = getelementptr inbounds %S.gen.StructDef, ptr %a19, i32 0, i32 2 %t372 = load i1, ptr %t371 %t373 = xor i1 %t372, true - br label %logic.from8180 -logic.from8180: - br i1 %t373, label %logic.rhs8181, label %logic.end8182 -logic.rhs8181: + br label %logic.from8573 +logic.from8573: + br i1 %t373, label %logic.rhs8574, label %logic.end8575 +logic.rhs8574: %t374 = getelementptr inbounds %S.ast.Node, ptr %a20, i32 0, i32 9 %t375 = load i64, ptr %a294 %t376 = load { ptr, i64, i64 }, ptr %t374 %t377 = extractvalue { ptr, i64, i64 } %t376, 1 %t378 = icmp uge i64 %t375, %t377 - br i1 %t378, label %range8183, label %inrange8184 -range8183: - call void @finch_panic_index(ptr @.str.5339, i64 4959, i64 %t375, i64 %t377) + br i1 %t378, label %range8576, label %inrange8577 +range8576: + call void @finch_panic_index(ptr @.str.5546, i64 5186, i64 %t375, i64 %t377) unreachable -inrange8184: +inrange8577: %t379 = extractvalue { ptr, i64, i64 } %t376, 0 %t380 = getelementptr inbounds %S.ast.Node, ptr %t379, i64 %t375 %t381 = getelementptr inbounds %S.ast.Node, ptr %t380, i32 0, i32 9 %t382 = getelementptr inbounds { ptr, i64, i64 }, ptr %t381, i32 0, i32 1 %t383 = load i64, ptr %t382 %t384 = icmp sgt i64 %t383, 0 - br label %logic.rend8185 -logic.rend8185: - br label %logic.end8182 -logic.end8182: - %t385 = phi i1 [ false, %logic.from8180 ], [ %t384, %logic.rend8185 ] - br i1 %t385, label %then8186, label %else8187 -then8186: + br label %logic.rend8578 +logic.rend8578: + br label %logic.end8575 +logic.end8575: + %t385 = phi i1 [ false, %logic.from8573 ], [ %t384, %logic.rend8578 ] + br i1 %t385, label %then8579, label %else8580 +then8579: %t386 = load ptr, ptr %a1 %t387 = icmp eq ptr %t386, null - br i1 %t387, label %panic8189, label %ok8190 -panic8189: - call void @finch_panic(ptr @.str.5340, i64 4961, ptr @.str.5341) + br i1 %t387, label %panic8582, label %ok8583 +panic8582: + call void @finch_panic(ptr @.str.5547, i64 5188, ptr @.str.5548) unreachable -ok8190: +ok8583: %t388 = getelementptr inbounds %S.gen.Gen, ptr %t386, i32 0, i32 10 %t389 = load { ptr, i64, i64 }, ptr %t388 store { ptr, i64, i64 } %t389, ptr %a390 @@ -83457,11 +87390,11 @@ ok8190: store { ptr, i64, i64 } %t392, ptr %a393 %t394 = load ptr, ptr %a1 %t395 = icmp eq ptr %t394, null - br i1 %t395, label %panic8191, label %ok8192 -panic8191: - call void @finch_panic(ptr @.str.5342, i64 4962, ptr @.str.5343) + br i1 %t395, label %panic8584, label %ok8585 +panic8584: + call void @finch_panic(ptr @.str.5549, i64 5189, ptr @.str.5550) unreachable -ok8192: +ok8585: %t396 = getelementptr inbounds %S.gen.Gen, ptr %t394, i32 0, i32 14 %t397 = load { ptr, i64, i64 }, ptr %t396 store { ptr, i64, i64 } %t397, ptr %a398 @@ -83470,11 +87403,11 @@ ok8192: store { ptr, i64, i64 } %t400, ptr %a401 %t402 = load ptr, ptr %a1 %t403 = icmp eq ptr %t402, null - br i1 %t403, label %panic8193, label %ok8194 -panic8193: - call void @finch_panic(ptr @.str.5344, i64 4963, ptr @.str.5345) + br i1 %t403, label %panic8586, label %ok8587 +panic8586: + call void @finch_panic(ptr @.str.5551, i64 5190, ptr @.str.5552) unreachable -ok8194: +ok8587: %t404 = getelementptr inbounds %S.gen.Gen, ptr %t402, i32 0, i32 18 %t405 = load { ptr, i64, i64 }, ptr %t404 store { ptr, i64, i64 } %t405, ptr %a406 @@ -83483,11 +87416,11 @@ ok8194: store { ptr, i64, i64 } %t408, ptr %a409 %t410 = load ptr, ptr %a1 %t411 = icmp eq ptr %t410, null - br i1 %t411, label %panic8195, label %ok8196 -panic8195: - call void @finch_panic(ptr @.str.5346, i64 4964, ptr @.str.5347) + br i1 %t411, label %panic8588, label %ok8589 +panic8588: + call void @finch_panic(ptr @.str.5553, i64 5191, ptr @.str.5554) unreachable -ok8196: +ok8589: %t412 = getelementptr inbounds %S.gen.Gen, ptr %t410, i32 0, i32 19 %t413 = load { ptr, i64, i64 }, ptr %t412 store { ptr, i64, i64 } %t413, ptr %a414 @@ -83498,11 +87431,11 @@ ok8196: %t419 = load { ptr, i64, i64 }, ptr %t418 %t420 = load ptr, ptr %a1 %t421 = icmp eq ptr %t420, null - br i1 %t421, label %panic8197, label %ok8198 -panic8197: - call void @finch_panic(ptr @.str.5348, i64 4965, ptr @.str.5349) + br i1 %t421, label %panic8590, label %ok8591 +panic8590: + call void @finch_panic(ptr @.str.5555, i64 5192, ptr @.str.5556) unreachable -ok8198: +ok8591: %t422 = getelementptr inbounds %S.gen.Gen, ptr %t420, i32 0, i32 18 store { ptr, i64, i64 } %t419, ptr %a423 call void @finch.copy.arr_str(ptr %a424, ptr %a423) @@ -83515,11 +87448,11 @@ ok8198: %t429 = load { ptr, i64, i64 }, ptr %t428 %t430 = load ptr, ptr %a1 %t431 = icmp eq ptr %t430, null - br i1 %t431, label %panic8199, label %ok8200 -panic8199: - call void @finch_panic(ptr @.str.5350, i64 4966, ptr @.str.5351) + br i1 %t431, label %panic8592, label %ok8593 +panic8592: + call void @finch_panic(ptr @.str.5557, i64 5193, ptr @.str.5558) unreachable -ok8200: +ok8593: %t432 = getelementptr inbounds %S.gen.Gen, ptr %t430, i32 0, i32 19 store { ptr, i64, i64 } %t429, ptr %a433 call void @finch.copy.arr_S_ast_Type(ptr %a434, ptr %a433) @@ -83532,11 +87465,11 @@ ok8200: %t439 = load { ptr, i64, i64 }, ptr %a438 %t440 = load ptr, ptr %a1 %t441 = icmp eq ptr %t440, null - br i1 %t441, label %panic8201, label %ok8202 -panic8201: - call void @finch_panic(ptr @.str.5352, i64 4968, ptr @.str.5353) + br i1 %t441, label %panic8594, label %ok8595 +panic8594: + call void @finch_panic(ptr @.str.5559, i64 5195, ptr @.str.5560) unreachable -ok8202: +ok8595: %t442 = getelementptr inbounds %S.gen.Gen, ptr %t440, i32 0, i32 10 store { ptr, i64, i64 } %t439, ptr %a443 call void @finch.copy.arr_S_gen_Scope(ptr %a444, ptr %a443) @@ -83551,11 +87484,11 @@ ok8202: %t450 = load { ptr, i64, i64 }, ptr %t449 %t451 = load ptr, ptr %a1 %t452 = icmp eq ptr %t451, null - br i1 %t452, label %panic8203, label %ok8204 -panic8203: - call void @finch_panic(ptr @.str.5354, i64 4970, ptr @.str.5355) + br i1 %t452, label %panic8596, label %ok8597 +panic8596: + call void @finch_panic(ptr @.str.5561, i64 5197, ptr @.str.5562) unreachable -ok8204: +ok8597: %t453 = getelementptr inbounds %S.gen.Gen, ptr %t451, i32 0, i32 14 store { ptr, i64, i64 } %t450, ptr %a454 call void @finch_str_copy(ptr %a455, ptr %a454) @@ -83571,22 +87504,22 @@ ok8204: %t463 = load { ptr, i64, i64 }, ptr %t461 %t464 = extractvalue { ptr, i64, i64 } %t463, 1 %t465 = icmp uge i64 %t462, %t464 - br i1 %t465, label %range8205, label %inrange8206 -range8205: - call void @finch_panic_index(ptr @.str.5356, i64 4971, i64 %t462, i64 %t464) + br i1 %t465, label %range8598, label %inrange8599 +range8598: + call void @finch_panic_index(ptr @.str.5563, i64 5198, i64 %t462, i64 %t464) unreachable -inrange8206: +inrange8599: %t466 = extractvalue { ptr, i64, i64 } %t463, 0 %t467 = getelementptr inbounds %S.ast.Node, ptr %t466, i64 %t462 %t468 = getelementptr inbounds %S.ast.Node, ptr %t467, i32 0, i32 9 %t469 = load { ptr, i64, i64 }, ptr %t468 %t470 = extractvalue { ptr, i64, i64 } %t469, 1 %t471 = icmp uge i64 0, %t470 - br i1 %t471, label %range8207, label %inrange8208 -range8207: - call void @finch_panic_index(ptr @.str.5357, i64 4971, i64 0, i64 %t470) + br i1 %t471, label %range8600, label %inrange8601 +range8600: + call void @finch_panic_index(ptr @.str.5564, i64 5198, i64 0, i64 %t470) unreachable -inrange8208: +inrange8601: %t472 = extractvalue { ptr, i64, i64 } %t469, 0 %t473 = getelementptr inbounds %S.ast.Node, ptr %t472, i64 0 %t474 = load %S.ast.Node, ptr %t473 @@ -83598,22 +87531,22 @@ inrange8208: %t480 = load { ptr, i64, i64 }, ptr %t478 %t481 = extractvalue { ptr, i64, i64 } %t480, 1 %t482 = icmp uge i64 %t479, %t481 - br i1 %t482, label %range8209, label %inrange8210 -range8209: - call void @finch_panic_index(ptr @.str.5358, i64 4971, i64 %t479, i64 %t481) + br i1 %t482, label %range8602, label %inrange8603 +range8602: + call void @finch_panic_index(ptr @.str.5565, i64 5198, i64 %t479, i64 %t481) unreachable -inrange8210: +inrange8603: %t483 = extractvalue { ptr, i64, i64 } %t480, 0 %t484 = getelementptr inbounds %S.ast.Node, ptr %t483, i64 %t479 %t485 = getelementptr inbounds %S.ast.Node, ptr %t484, i32 0, i32 9 %t486 = load { ptr, i64, i64 }, ptr %t485 %t487 = extractvalue { ptr, i64, i64 } %t486, 1 %t488 = icmp uge i64 0, %t487 - br i1 %t488, label %range8211, label %inrange8212 -range8211: - call void @finch_panic_index(ptr @.str.5359, i64 4971, i64 0, i64 %t487) + br i1 %t488, label %range8604, label %inrange8605 +range8604: + call void @finch_panic_index(ptr @.str.5566, i64 5198, i64 0, i64 %t487) unreachable -inrange8212: +inrange8605: %t489 = extractvalue { ptr, i64, i64 } %t486, 0 %t490 = getelementptr inbounds %S.ast.Node, ptr %t489, i64 0 %t491 = load %S.ast.Node, ptr %t490 @@ -83622,20 +87555,20 @@ inrange8212: %t494 = load { ptr, i64, i64 }, ptr %t492 %t495 = extractvalue { ptr, i64, i64 } %t494, 1 %t496 = icmp uge i64 %t493, %t495 - br i1 %t496, label %range8213, label %inrange8214 -range8213: - call void @finch_panic_index(ptr @.str.5361, i64 4971, i64 %t493, i64 %t495) + br i1 %t496, label %range8606, label %inrange8607 +range8606: + call void @finch_panic_index(ptr @.str.5568, i64 5198, i64 %t493, i64 %t495) unreachable -inrange8214: +inrange8607: %t497 = extractvalue { ptr, i64, i64 } %t494, 0 %t498 = getelementptr inbounds { ptr, i64, i64 }, ptr %t497, i64 %t493 %t499 = load { ptr, i64, i64 }, ptr %t498 - store { ptr, i64, i64 } { ptr @.str.5360, i64 16, i64 0 }, ptr %a501 + store { ptr, i64, i64 } { ptr @.str.5567, i64 16, i64 0 }, ptr %a501 store { ptr, i64, i64 } %t499, ptr %a502 call void @finch_str_concat(ptr %a500, ptr %a501, ptr %a502) %t503 = load { ptr, i64, i64 }, ptr %a500 store { ptr, i64, i64 } %t503, ptr %a505 - store { ptr, i64, i64 } { ptr @.str.5362, i64 1, i64 0 }, ptr %a506 + store { ptr, i64, i64 } { ptr @.str.5569, i64 1, i64 0 }, ptr %a506 call void @finch_str_concat(ptr %a504, ptr %a505, ptr %a506) store { ptr, i64, i64 } %t503, ptr %a507 call void @finch_str_drop(ptr %a507) @@ -83652,11 +87585,11 @@ inrange8214: %t514 = load { ptr, i64, i64 }, ptr %a401 %t515 = load ptr, ptr %a1 %t516 = icmp eq ptr %t515, null - br i1 %t516, label %panic8215, label %ok8216 -panic8215: - call void @finch_panic(ptr @.str.5363, i64 4972, ptr @.str.5364) + br i1 %t516, label %panic8608, label %ok8609 +panic8608: + call void @finch_panic(ptr @.str.5570, i64 5199, ptr @.str.5571) unreachable -ok8216: +ok8609: %t517 = getelementptr inbounds %S.gen.Gen, ptr %t515, i32 0, i32 14 store { ptr, i64, i64 } %t514, ptr %a518 call void @finch_str_copy(ptr %a519, ptr %a518) @@ -83668,11 +87601,11 @@ ok8216: %t523 = load { ptr, i64, i64 }, ptr %a409 %t524 = load ptr, ptr %a1 %t525 = icmp eq ptr %t524, null - br i1 %t525, label %panic8217, label %ok8218 -panic8217: - call void @finch_panic(ptr @.str.5365, i64 4973, ptr @.str.5366) + br i1 %t525, label %panic8610, label %ok8611 +panic8610: + call void @finch_panic(ptr @.str.5572, i64 5200, ptr @.str.5573) unreachable -ok8218: +ok8611: %t526 = getelementptr inbounds %S.gen.Gen, ptr %t524, i32 0, i32 18 store { ptr, i64, i64 } %t523, ptr %a527 call void @finch.copy.arr_str(ptr %a528, ptr %a527) @@ -83684,11 +87617,11 @@ ok8218: %t532 = load { ptr, i64, i64 }, ptr %a417 %t533 = load ptr, ptr %a1 %t534 = icmp eq ptr %t533, null - br i1 %t534, label %panic8219, label %ok8220 -panic8219: - call void @finch_panic(ptr @.str.5367, i64 4974, ptr @.str.5368) + br i1 %t534, label %panic8612, label %ok8613 +panic8612: + call void @finch_panic(ptr @.str.5574, i64 5201, ptr @.str.5575) unreachable -ok8220: +ok8613: %t535 = getelementptr inbounds %S.gen.Gen, ptr %t533, i32 0, i32 19 store { ptr, i64, i64 } %t532, ptr %a536 call void @finch.copy.arr_S_ast_Type(ptr %a537, ptr %a536) @@ -83700,11 +87633,11 @@ ok8220: %t541 = load { ptr, i64, i64 }, ptr %a393 %t542 = load ptr, ptr %a1 %t543 = icmp eq ptr %t542, null - br i1 %t543, label %panic8221, label %ok8222 -panic8221: - call void @finch_panic(ptr @.str.5369, i64 4975, ptr @.str.5370) + br i1 %t543, label %panic8614, label %ok8615 +panic8614: + call void @finch_panic(ptr @.str.5576, i64 5202, ptr @.str.5577) unreachable -ok8222: +ok8615: %t544 = getelementptr inbounds %S.gen.Gen, ptr %t542, i32 0, i32 10 store { ptr, i64, i64 } %t541, ptr %a545 call void @finch.copy.arr_S_gen_Scope(ptr %a546, ptr %a545) @@ -83718,14 +87651,14 @@ ok8222: call void @finch.drop.arr_str(ptr %a409) call void @finch_str_drop(ptr %a401) call void @finch.drop.arr_S_gen_Scope(ptr %a393) - br label %endif8188 -else8187: + br label %endif8581 +else8580: call void @finch.drop.S_gen_Val(ptr %a309) call void @finch.drop.S_ast_Type(ptr %a308) - br label %for.step8161 -endif8188: - br label %endif8169 -endif8169: + br label %for.step8554 +endif8581: + br label %endif8562 +endif8562: %t550 = load ptr, ptr %a1 %t551 = load %S.gen.Val, ptr %a309 %t552 = call { ptr, i64, i64 } @finch.gen.own(ptr %t550, %S.gen.Val %t551) @@ -83747,12 +87680,12 @@ endif8169: call void @finch.drop.S_gen_Val(ptr %a566) %t567 = load ptr, ptr %a1 %t568 = load { ptr, i64, i64 }, ptr %a65 - store { ptr, i64, i64 } { ptr @.str.5371, i64 12, i64 0 }, ptr %a570 + store { ptr, i64, i64 } { ptr @.str.5578, i64 12, i64 0 }, ptr %a570 store { ptr, i64, i64 } %t568, ptr %a571 call void @finch_str_concat(ptr %a569, ptr %a570, ptr %a571) %t572 = load { ptr, i64, i64 }, ptr %a569 store { ptr, i64, i64 } %t572, ptr %a574 - store { ptr, i64, i64 } { ptr @.str.5372, i64 1, i64 0 }, ptr %a575 + store { ptr, i64, i64 } { ptr @.str.5579, i64 1, i64 0 }, ptr %a575 call void @finch_str_concat(ptr %a573, ptr %a574, ptr %a575) store { ptr, i64, i64 } %t572, ptr %a576 call void @finch_str_drop(ptr %a576) @@ -83765,7 +87698,7 @@ endif8169: call void @finch_str_drop(ptr %a582) %t583 = load { ptr, i64, i64 }, ptr %a579 store { ptr, i64, i64 } %t583, ptr %a585 - store { ptr, i64, i64 } { ptr @.str.5373, i64 2, i64 0 }, ptr %a586 + store { ptr, i64, i64 } { ptr @.str.5580, i64 2, i64 0 }, ptr %a586 call void @finch_str_concat(ptr %a584, ptr %a585, ptr %a586) store { ptr, i64, i64 } %t583, ptr %a587 call void @finch_str_drop(ptr %a587) @@ -83782,7 +87715,7 @@ endif8169: call void @finch_str_drop(ptr %a596) %t597 = load { ptr, i64, i64 }, ptr %a592 store { ptr, i64, i64 } %t597, ptr %a599 - store { ptr, i64, i64 } { ptr @.str.5374, i64 1, i64 0 }, ptr %a600 + store { ptr, i64, i64 } { ptr @.str.5581, i64 1, i64 0 }, ptr %a600 call void @finch_str_concat(ptr %a598, ptr %a599, ptr %a600) store { ptr, i64, i64 } %t597, ptr %a601 call void @finch_str_drop(ptr %a601) @@ -83795,7 +87728,7 @@ endif8169: call void @finch_str_drop(ptr %a607) %t608 = load { ptr, i64, i64 }, ptr %a604 store { ptr, i64, i64 } %t608, ptr %a610 - store { ptr, i64, i64 } { ptr @.str.5375, i64 2, i64 0 }, ptr %a611 + store { ptr, i64, i64 } { ptr @.str.5582, i64 2, i64 0 }, ptr %a611 call void @finch_str_concat(ptr %a609, ptr %a610, ptr %a611) store { ptr, i64, i64 } %t608, ptr %a612 call void @finch_str_drop(ptr %a612) @@ -83805,11 +87738,11 @@ endif8169: %t616 = load { ptr, i64, i64 }, ptr %t614 %t617 = extractvalue { ptr, i64, i64 } %t616, 1 %t618 = icmp uge i64 %t615, %t617 - br i1 %t618, label %range8223, label %inrange8224 -range8223: - call void @finch_panic_index(ptr @.str.5376, i64 4981, i64 %t615, i64 %t617) + br i1 %t618, label %range8616, label %inrange8617 +range8616: + call void @finch_panic_index(ptr @.str.5583, i64 5208, i64 %t615, i64 %t617) unreachable -inrange8224: +inrange8617: %t619 = extractvalue { ptr, i64, i64 } %t616, 0 %t620 = getelementptr inbounds i64, ptr %t619, i64 %t615 %t621 = load i64, ptr %t620 @@ -83833,13 +87766,13 @@ inrange8224: call void @finch_str_drop(ptr %a553) call void @finch.drop.S_gen_Val(ptr %a309) call void @finch.drop.S_ast_Type(ptr %a308) - br label %for.step8161 -for.step8161: + br label %for.step8554 +for.step8554: %t634 = load i64, ptr %a294 %t635 = add i64 %t634, 1 store i64 %t635, ptr %a294 - br label %for.cond8159 -for.end8162: + br label %for.cond8552 +for.end8555: %t636 = load ptr, ptr %a1 %t637 = load i64, ptr %a290 call void @finch.gen.heldEnd(ptr %t636, i64 %t637) @@ -83878,18 +87811,18 @@ entry: store { ptr, i64, i64 } %p2, ptr %a3 %t4 = load ptr, ptr %a1 %t5 = icmp eq ptr %t4, null - br i1 %t5, label %panic8225, label %ok8226 -panic8225: - call void @finch_panic(ptr @.str.5377, i64 4991, ptr @.str.5378) + br i1 %t5, label %panic8618, label %ok8619 +panic8618: + call void @finch_panic(ptr @.str.5584, i64 5218, ptr @.str.5585) unreachable -ok8226: - %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 27 +ok8619: + %t6 = getelementptr inbounds %S.gen.Gen, ptr %t4, i32 0, i32 28 %t7 = load i1, ptr %t6 %t8 = xor i1 %t7, true - br i1 %t8, label %then8227, label %endif8229 -then8227: + br i1 %t8, label %then8620, label %endif8622 +then8620: ret void -endif8229: +endif8622: %t9 = load { ptr, i64, i64 }, ptr %a3 %t10 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t11 = load { ptr, i64, i64 }, ptr %t10 @@ -83899,8 +87832,8 @@ endif8229: %t15 = getelementptr inbounds { ptr, i64, i64 }, ptr %t14, i32 0, i32 1 %t16 = load i64, ptr %t15 %t17 = icmp sgt i64 %t16, 0 - br i1 %t17, label %then8230, label %endif8232 -then8230: + br i1 %t17, label %then8623, label %endif8625 +then8623: %t18 = load ptr, ptr %a1 %t19 = load %S.ast.Node, ptr %a2 %t20 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 12 @@ -83911,11 +87844,11 @@ then8230: %t25 = load i64, ptr %t24 %t26 = load %S.docs.Doc, ptr %a13 %t27 = call { ptr, i64, i64 } @finch.docs.hover(%S.docs.Doc %t26) - call void @finch.gen.noteRef(ptr %t18, %S.ast.Node %t19, i64 %t22, i64 %t25, { ptr, i64, i64 } %t27, { ptr, i64, i64 } { ptr @.str.5379, i64 0, i64 0 }, i64 0, i64 0) + call void @finch.gen.noteRef(ptr %t18, %S.ast.Node %t19, i64 %t22, i64 %t25, { ptr, i64, i64 } %t27, { ptr, i64, i64 } { ptr @.str.5586, i64 0, i64 0 }, i64 0, i64 0) store { ptr, i64, i64 } %t27, ptr %a28 call void @finch_str_drop(ptr %a28) - br label %endif8232 -endif8232: + br label %endif8625 +endif8625: call void @finch.drop.S_docs_Doc(ptr %a13) ret void } @@ -83927,220 +87860,201 @@ entry: %a10 = alloca %S.ast.Node, align 16 %a11 = alloca %S.ast.Node, align 16 %a13 = alloca %S.ast.Node, align 16 - %a16 = alloca { ptr, i64, i64 }, align 16 - %a17 = alloca { ptr, i64, i64 }, align 16 - %a28 = alloca { ptr, i64, i64 }, align 16 - %a29 = alloca { ptr, i64, i64 }, align 16 - %a31 = alloca { ptr, i64, i64 }, align 16 - %a39 = alloca { ptr, i64, i64 }, align 16 - %a40 = alloca { ptr, i64, i64 }, align 16 - %a41 = alloca { ptr, i64, i64 }, align 16 - %a43 = alloca { ptr, i64, i64 }, align 16 - %a44 = alloca { ptr, i64, i64 }, align 16 - %a45 = alloca { ptr, i64, i64 }, align 16 - %a46 = alloca { ptr, i64, i64 }, align 16 - %a49 = alloca { ptr, i64, i64 }, align 16 - %a50 = alloca { ptr, i64, i64 }, align 16 - %a51 = alloca { ptr, i64, i64 }, align 16 - %a52 = alloca { ptr, i64, i64 }, align 16 + %a17 = alloca i64, align 16 + %a20 = alloca { ptr, i64, i64 }, align 16 + %a24 = alloca i64, align 16 + %a36 = alloca %S.ast.Node, align 16 + %a37 = alloca %S.ast.Node, align 16 %a54 = alloca { ptr, i64, i64 }, align 16 %a55 = alloca { ptr, i64, i64 }, align 16 - %a56 = alloca { ptr, i64, i64 }, align 16 - %a57 = alloca { ptr, i64, i64 }, align 16 - %a59 = alloca { ptr, i64, i64 }, align 16 - %a65 = alloca i64, align 16 - %a72 = alloca { ptr, i64, i64 }, align 16 - %a73 = alloca { ptr, i64, i64 }, align 16 - %a74 = alloca { ptr, i64, i64 }, align 16 + %a66 = alloca { ptr, i64, i64 }, align 16 + %a67 = alloca { ptr, i64, i64 }, align 16 + %a69 = alloca { ptr, i64, i64 }, align 16 + %a77 = alloca { ptr, i64, i64 }, align 16 %a78 = alloca { ptr, i64, i64 }, align 16 %a79 = alloca { ptr, i64, i64 }, align 16 - %a80 = alloca { ptr, i64, i64 }, align 16 %a81 = alloca { ptr, i64, i64 }, align 16 + %a82 = alloca { ptr, i64, i64 }, align 16 + %a83 = alloca { ptr, i64, i64 }, align 16 %a84 = alloca { ptr, i64, i64 }, align 16 - %a90 = alloca i64, align 16 + %a87 = alloca { ptr, i64, i64 }, align 16 + %a88 = alloca { ptr, i64, i64 }, align 16 + %a89 = alloca { ptr, i64, i64 }, align 16 + %a90 = alloca { ptr, i64, i64 }, align 16 + %a92 = alloca { ptr, i64, i64 }, align 16 + %a93 = alloca { ptr, i64, i64 }, align 16 + %a94 = alloca { ptr, i64, i64 }, align 16 + %a95 = alloca { ptr, i64, i64 }, align 16 %a97 = alloca { ptr, i64, i64 }, align 16 - %a98 = alloca { ptr, i64, i64 }, align 16 - %a99 = alloca { ptr, i64, i64 }, align 16 - %a103 = alloca { ptr, i64, i64 }, align 16 - %a104 = alloca { ptr, i64, i64 }, align 16 - %a105 = alloca { ptr, i64, i64 }, align 16 - %a106 = alloca { ptr, i64, i64 }, align 16 - %a109 = alloca { ptr, i64, i64 }, align 16 - %a115 = alloca i64, align 16 - %a127 = alloca i64, align 16 - %a130 = alloca { ptr, i64, i64 }, align 16 - %a134 = alloca i64, align 16 - %a146 = alloca %S.ast.Node, align 16 - %a147 = alloca %S.ast.Node, align 16 - %a165 = alloca { ptr, i64, i64 }, align 16 - %a166 = alloca { ptr, i64, i64 }, align 16 - %a167 = alloca { ptr, i64, i64 }, align 16 - %a169 = alloca { ptr, i64, i64 }, align 16 - %a170 = alloca { ptr, i64, i64 }, align 16 - %a171 = alloca { ptr, i64, i64 }, align 16 - %a172 = alloca { ptr, i64, i64 }, align 16 - %a176 = alloca { ptr, i64, i64 }, align 16 - %a177 = alloca { ptr, i64, i64 }, align 16 - %a178 = alloca { ptr, i64, i64 }, align 16 - %a179 = alloca { ptr, i64, i64 }, align 16 - %a181 = alloca { ptr, i64, i64 }, align 16 - %a182 = alloca { ptr, i64, i64 }, align 16 - %a183 = alloca { ptr, i64, i64 }, align 16 - %a184 = alloca { ptr, i64, i64 }, align 16 - %a186 = alloca { ptr, i64, i64 }, align 16 - %a200 = alloca { ptr, i64, i64 }, align 16 - %a206 = alloca i64, align 16 - %a209 = alloca i64, align 16 + %a103 = alloca i64, align 16 + %a110 = alloca { ptr, i64, i64 }, align 16 + %a111 = alloca { ptr, i64, i64 }, align 16 + %a112 = alloca { ptr, i64, i64 }, align 16 + %a116 = alloca { ptr, i64, i64 }, align 16 + %a117 = alloca { ptr, i64, i64 }, align 16 + %a118 = alloca { ptr, i64, i64 }, align 16 + %a119 = alloca { ptr, i64, i64 }, align 16 + %a122 = alloca { ptr, i64, i64 }, align 16 + %a128 = alloca i64, align 16 + %a135 = alloca { ptr, i64, i64 }, align 16 + %a136 = alloca { ptr, i64, i64 }, align 16 + %a137 = alloca { ptr, i64, i64 }, align 16 + %a141 = alloca { ptr, i64, i64 }, align 16 + %a142 = alloca { ptr, i64, i64 }, align 16 + %a143 = alloca { ptr, i64, i64 }, align 16 + %a144 = alloca { ptr, i64, i64 }, align 16 + %a147 = alloca { ptr, i64, i64 }, align 16 + %a153 = alloca i64, align 16 + %a165 = alloca i64, align 16 + %a168 = alloca { ptr, i64, i64 }, align 16 + %a172 = alloca i64, align 16 + %a184 = alloca %S.ast.Node, align 16 + %a185 = alloca %S.ast.Node, align 16 + %a203 = alloca { ptr, i64, i64 }, align 16 + %a204 = alloca { ptr, i64, i64 }, align 16 + %a205 = alloca { ptr, i64, i64 }, align 16 + %a207 = alloca { ptr, i64, i64 }, align 16 + %a208 = alloca { ptr, i64, i64 }, align 16 + %a209 = alloca { ptr, i64, i64 }, align 16 + %a210 = alloca { ptr, i64, i64 }, align 16 %a214 = alloca { ptr, i64, i64 }, align 16 %a215 = alloca { ptr, i64, i64 }, align 16 - %a222 = alloca %S.gen.Ref, align 16 - %a228 = alloca i64, align 16 - %a232 = alloca %S.ast.Type, align 16 - %a233 = alloca %S.ast.Type, align 16 - %a235 = alloca %S.ast.Type, align 16 - %a241 = alloca %S.ast.Type, align 16 - %a242 = alloca %S.ast.Type, align 16 - %a245 = alloca %S.ast.Type, align 16 - %a248 = alloca { ptr, i64, i64 }, align 16 - %a249 = alloca { ptr, i64, i64 }, align 16 + %a216 = alloca { ptr, i64, i64 }, align 16 + %a217 = alloca { ptr, i64, i64 }, align 16 + %a219 = alloca { ptr, i64, i64 }, align 16 + %a220 = alloca { ptr, i64, i64 }, align 16 + %a221 = alloca { ptr, i64, i64 }, align 16 + %a222 = alloca { ptr, i64, i64 }, align 16 + %a224 = alloca { ptr, i64, i64 }, align 16 + %a238 = alloca { ptr, i64, i64 }, align 16 + %a244 = alloca i64, align 16 + %a247 = alloca i64, align 16 %a252 = alloca { ptr, i64, i64 }, align 16 - %a258 = alloca { ptr, i64, i64 }, align 16 - %a259 = alloca { ptr, i64, i64 }, align 16 - %a262 = alloca { ptr, i64, i64 }, align 16 + %a253 = alloca { ptr, i64, i64 }, align 16 + %a260 = alloca %S.gen.Ref, align 16 %a266 = alloca i64, align 16 - %a269 = alloca i64, align 16 - %a274 = alloca { ptr, i64, i64 }, align 16 - %a275 = alloca { ptr, i64, i64 }, align 16 - %a285 = alloca { ptr, i64, i64 }, align 16 + %a270 = alloca %S.ast.Type, align 16 + %a271 = alloca %S.ast.Type, align 16 + %a273 = alloca %S.ast.Type, align 16 + %a279 = alloca %S.ast.Type, align 16 + %a280 = alloca %S.ast.Type, align 16 + %a283 = alloca %S.ast.Type, align 16 %a286 = alloca { ptr, i64, i64 }, align 16 %a287 = alloca { ptr, i64, i64 }, align 16 - %a289 = alloca { ptr, i64, i64 }, align 16 - %a295 = alloca { ptr, i64, i64 }, align 16 - %a305 = alloca { ptr, i64, i64 }, align 16 - %a311 = alloca %S.gen.Val, align 16 + %a290 = alloca { ptr, i64, i64 }, align 16 + %a296 = alloca { ptr, i64, i64 }, align 16 + %a297 = alloca { ptr, i64, i64 }, align 16 + %a300 = alloca { ptr, i64, i64 }, align 16 + %a304 = alloca i64, align 16 + %a307 = alloca i64, align 16 + %a312 = alloca { ptr, i64, i64 }, align 16 + %a313 = alloca { ptr, i64, i64 }, align 16 + %a323 = alloca { ptr, i64, i64 }, align 16 + %a324 = alloca { ptr, i64, i64 }, align 16 + %a325 = alloca { ptr, i64, i64 }, align 16 %a327 = alloca { ptr, i64, i64 }, align 16 - %a328 = alloca { ptr, i64, i64 }, align 16 - %a333 = alloca %S.gen.Val, align 16 - %a334 = alloca %S.gen.Val, align 16 - %a336 = alloca %S.gen.Val, align 16 - %a346 = alloca %S.ast.Type, align 16 - %a347 = alloca %S.ast.Type, align 16 - %a351 = alloca %S.gen.Val, align 16 - %a355 = alloca { ptr, i64, i64 }, align 16 - %a367 = alloca { ptr, i64, i64 }, align 16 - %a368 = alloca %S.gen.Val, align 16 - %a379 = alloca { ptr, i64, i64 }, align 16 - %a380 = alloca { ptr, i64, i64 }, align 16 - %a383 = alloca { ptr, i64, i64 }, align 16 - %a389 = alloca { ptr, i64, i64 }, align 16 - %a390 = alloca { ptr, i64, i64 }, align 16 + %a333 = alloca { ptr, i64, i64 }, align 16 + %a343 = alloca { ptr, i64, i64 }, align 16 + %a349 = alloca %S.gen.Val, align 16 + %a365 = alloca { ptr, i64, i64 }, align 16 + %a366 = alloca { ptr, i64, i64 }, align 16 + %a371 = alloca %S.gen.Val, align 16 + %a372 = alloca %S.gen.Val, align 16 + %a374 = alloca %S.gen.Val, align 16 + %a384 = alloca %S.ast.Type, align 16 + %a385 = alloca %S.ast.Type, align 16 + %a389 = alloca %S.gen.Val, align 16 %a393 = alloca { ptr, i64, i64 }, align 16 - %a397 = alloca i64, align 16 - %a400 = alloca i64, align 16 %a405 = alloca { ptr, i64, i64 }, align 16 - %a406 = alloca { ptr, i64, i64 }, align 16 - %a416 = alloca { ptr, i64, i64 }, align 16 + %a406 = alloca %S.gen.Val, align 16 %a417 = alloca { ptr, i64, i64 }, align 16 %a418 = alloca { ptr, i64, i64 }, align 16 - %a420 = alloca { ptr, i64, i64 }, align 16 - %a426 = alloca { ptr, i64, i64 }, align 16 - %a436 = alloca { ptr, i64, i64 }, align 16 - %a442 = alloca %S.gen.Val, align 16 - %a459 = alloca %S.ast.Type, align 16 - %a460 = alloca %S.ast.Type, align 16 - %a462 = alloca %S.ast.Type, align 16 - %a463 = alloca { ptr, i64, i64 }, align 16 - %a464 = alloca i1, align 16 - %a467 = alloca { ptr, i64, i64 }, align 16 - %a468 = alloca { ptr, i64, i64 }, align 16 - %a484 = alloca { ptr, i64, i64 }, align 16 - %a485 = alloca { ptr, i64, i64 }, align 16 - %a492 = alloca { ptr, i64, i64 }, align 16 - %a493 = alloca { ptr, i64, i64 }, align 16 - %a495 = alloca { ptr, i64, i64 }, align 16 - %a504 = alloca { ptr, i64, i64 }, align 16 - %a508 = alloca { ptr, i64, i64 }, align 16 - %a509 = alloca { ptr, i64, i64 }, align 16 - %a510 = alloca { ptr, i64, i64 }, align 16 - %a512 = alloca { ptr, i64, i64 }, align 16 - %a513 = alloca { ptr, i64, i64 }, align 16 - %a514 = alloca { ptr, i64, i64 }, align 16 - %a515 = alloca { ptr, i64, i64 }, align 16 - %a518 = alloca { ptr, i64, i64 }, align 16 - %a521 = alloca { ptr, i64, i64 }, align 16 + %a421 = alloca { ptr, i64, i64 }, align 16 + %a427 = alloca { ptr, i64, i64 }, align 16 + %a428 = alloca { ptr, i64, i64 }, align 16 + %a431 = alloca { ptr, i64, i64 }, align 16 + %a435 = alloca i64, align 16 + %a438 = alloca i64, align 16 + %a443 = alloca { ptr, i64, i64 }, align 16 + %a444 = alloca { ptr, i64, i64 }, align 16 + %a454 = alloca { ptr, i64, i64 }, align 16 + %a455 = alloca { ptr, i64, i64 }, align 16 + %a456 = alloca { ptr, i64, i64 }, align 16 + %a458 = alloca { ptr, i64, i64 }, align 16 + %a464 = alloca { ptr, i64, i64 }, align 16 + %a474 = alloca { ptr, i64, i64 }, align 16 + %a480 = alloca %S.gen.Val, align 16 + %a497 = alloca %S.ast.Type, align 16 + %a498 = alloca %S.ast.Type, align 16 + %a500 = alloca %S.ast.Type, align 16 + %a501 = alloca { ptr, i64, i64 }, align 16 + %a502 = alloca i1, align 16 + %a505 = alloca { ptr, i64, i64 }, align 16 + %a506 = alloca { ptr, i64, i64 }, align 16 %a522 = alloca { ptr, i64, i64 }, align 16 %a523 = alloca { ptr, i64, i64 }, align 16 - %a525 = alloca { ptr, i64, i64 }, align 16 - %a526 = alloca { ptr, i64, i64 }, align 16 - %a527 = alloca { ptr, i64, i64 }, align 16 - %a528 = alloca { ptr, i64, i64 }, align 16 + %a530 = alloca { ptr, i64, i64 }, align 16 %a531 = alloca { ptr, i64, i64 }, align 16 - %a532 = alloca { ptr, i64, i64 }, align 16 - %a540 = alloca %S.ast.Type, align 16 - %a541 = alloca %S.ast.Type, align 16 - %a544 = alloca %S.ast.Type, align 16 + %a533 = alloca { ptr, i64, i64 }, align 16 + %a542 = alloca { ptr, i64, i64 }, align 16 %a546 = alloca { ptr, i64, i64 }, align 16 %a547 = alloca { ptr, i64, i64 }, align 16 + %a548 = alloca { ptr, i64, i64 }, align 16 %a550 = alloca { ptr, i64, i64 }, align 16 + %a551 = alloca { ptr, i64, i64 }, align 16 + %a552 = alloca { ptr, i64, i64 }, align 16 %a553 = alloca { ptr, i64, i64 }, align 16 - %a554 = alloca { ptr, i64, i64 }, align 16 + %a556 = alloca { ptr, i64, i64 }, align 16 %a559 = alloca { ptr, i64, i64 }, align 16 %a560 = alloca { ptr, i64, i64 }, align 16 + %a561 = alloca { ptr, i64, i64 }, align 16 + %a563 = alloca { ptr, i64, i64 }, align 16 + %a564 = alloca { ptr, i64, i64 }, align 16 + %a565 = alloca { ptr, i64, i64 }, align 16 + %a566 = alloca { ptr, i64, i64 }, align 16 %a569 = alloca { ptr, i64, i64 }, align 16 %a570 = alloca { ptr, i64, i64 }, align 16 - %a573 = alloca { ptr, i64, i64 }, align 16 - %a579 = alloca { ptr, i64, i64 }, align 16 - %a582 = alloca { ptr, i64, i64 }, align 16 - %a583 = alloca { ptr, i64, i64 }, align 16 + %a578 = alloca %S.ast.Type, align 16 + %a579 = alloca %S.ast.Type, align 16 + %a582 = alloca %S.ast.Type, align 16 + %a584 = alloca { ptr, i64, i64 }, align 16 + %a585 = alloca { ptr, i64, i64 }, align 16 %a588 = alloca { ptr, i64, i64 }, align 16 - %a589 = alloca { ptr, i64, i64 }, align 16 - %a601 = alloca i64, align 16 - %a606 = alloca { ptr, i64, i64 }, align 16 + %a591 = alloca { ptr, i64, i64 }, align 16 + %a592 = alloca { ptr, i64, i64 }, align 16 + %a597 = alloca { ptr, i64, i64 }, align 16 + %a598 = alloca { ptr, i64, i64 }, align 16 %a607 = alloca { ptr, i64, i64 }, align 16 - %a617 = alloca i64, align 16 - %a648 = alloca i64, align 16 - %a669 = alloca { ptr, i64, i64 }, align 16 - %a673 = alloca i64, align 16 - %a681 = alloca %S.gen.FnSig, align 16 - %a686 = alloca { ptr, i64, i64 }, align 16 - %a687 = alloca { ptr, i64, i64 }, align 16 - %a694 = alloca { ptr, i64, i64 }, align 16 - %a695 = alloca { ptr, i64, i64 }, align 16 - %a702 = alloca { ptr, i64, i64 }, align 16 - %a703 = alloca { ptr, i64, i64 }, align 16 - %a718 = alloca { ptr, i64, i64 }, align 16 - %a719 = alloca { ptr, i64, i64 }, align 16 - %a720 = alloca { ptr, i64, i64 }, align 16 - %a722 = alloca { ptr, i64, i64 }, align 16 - %a723 = alloca { ptr, i64, i64 }, align 16 + %a608 = alloca { ptr, i64, i64 }, align 16 + %a611 = alloca { ptr, i64, i64 }, align 16 + %a617 = alloca { ptr, i64, i64 }, align 16 + %a620 = alloca { ptr, i64, i64 }, align 16 + %a621 = alloca { ptr, i64, i64 }, align 16 + %a626 = alloca { ptr, i64, i64 }, align 16 + %a627 = alloca { ptr, i64, i64 }, align 16 + %a639 = alloca i64, align 16 + %a644 = alloca { ptr, i64, i64 }, align 16 + %a645 = alloca { ptr, i64, i64 }, align 16 + %a655 = alloca i64, align 16 + %a686 = alloca i64, align 16 + %a707 = alloca { ptr, i64, i64 }, align 16 + %a711 = alloca i64, align 16 + %a719 = alloca %S.gen.FnSig, align 16 %a724 = alloca { ptr, i64, i64 }, align 16 %a725 = alloca { ptr, i64, i64 }, align 16 - %a729 = alloca { ptr, i64, i64 }, align 16 - %a730 = alloca { ptr, i64, i64 }, align 16 - %a731 = alloca { ptr, i64, i64 }, align 16 %a732 = alloca { ptr, i64, i64 }, align 16 %a733 = alloca { ptr, i64, i64 }, align 16 - %a735 = alloca { ptr, i64, i64 }, align 16 - %a736 = alloca { ptr, i64, i64 }, align 16 - %a737 = alloca { ptr, i64, i64 }, align 16 - %a738 = alloca { ptr, i64, i64 }, align 16 - %a742 = alloca { ptr, i64, i64 }, align 16 - %a743 = alloca { ptr, i64, i64 }, align 16 - %a744 = alloca { ptr, i64, i64 }, align 16 - %a745 = alloca { ptr, i64, i64 }, align 16 - %a747 = alloca { ptr, i64, i64 }, align 16 - %a748 = alloca { ptr, i64, i64 }, align 16 - %a749 = alloca { ptr, i64, i64 }, align 16 - %a750 = alloca { ptr, i64, i64 }, align 16 - %a754 = alloca { ptr, i64, i64 }, align 16 - %a755 = alloca { ptr, i64, i64 }, align 16 + %a740 = alloca { ptr, i64, i64 }, align 16 + %a741 = alloca { ptr, i64, i64 }, align 16 %a756 = alloca { ptr, i64, i64 }, align 16 %a757 = alloca { ptr, i64, i64 }, align 16 - %a759 = alloca { ptr, i64, i64 }, align 16 + %a758 = alloca { ptr, i64, i64 }, align 16 %a760 = alloca { ptr, i64, i64 }, align 16 %a761 = alloca { ptr, i64, i64 }, align 16 %a762 = alloca { ptr, i64, i64 }, align 16 - %a764 = alloca { ptr, i64, i64 }, align 16 + %a763 = alloca { ptr, i64, i64 }, align 16 + %a767 = alloca { ptr, i64, i64 }, align 16 + %a768 = alloca { ptr, i64, i64 }, align 16 %a769 = alloca { ptr, i64, i64 }, align 16 %a770 = alloca { ptr, i64, i64 }, align 16 %a771 = alloca { ptr, i64, i64 }, align 16 @@ -84152,86 +88066,110 @@ entry: %a781 = alloca { ptr, i64, i64 }, align 16 %a782 = alloca { ptr, i64, i64 }, align 16 %a783 = alloca { ptr, i64, i64 }, align 16 - %a784 = alloca { ptr, i64, i64 }, align 16 + %a785 = alloca { ptr, i64, i64 }, align 16 %a786 = alloca { ptr, i64, i64 }, align 16 %a787 = alloca { ptr, i64, i64 }, align 16 %a788 = alloca { ptr, i64, i64 }, align 16 - %a789 = alloca { ptr, i64, i64 }, align 16 + %a792 = alloca { ptr, i64, i64 }, align 16 %a793 = alloca { ptr, i64, i64 }, align 16 %a794 = alloca { ptr, i64, i64 }, align 16 %a795 = alloca { ptr, i64, i64 }, align 16 - %a796 = alloca { ptr, i64, i64 }, align 16 + %a797 = alloca { ptr, i64, i64 }, align 16 %a798 = alloca { ptr, i64, i64 }, align 16 %a799 = alloca { ptr, i64, i64 }, align 16 %a800 = alloca { ptr, i64, i64 }, align 16 - %a801 = alloca { ptr, i64, i64 }, align 16 - %a804 = alloca { ptr, i64, i64 }, align 16 - %a805 = alloca { ptr, i64, i64 }, align 16 + %a802 = alloca { ptr, i64, i64 }, align 16 %a807 = alloca { ptr, i64, i64 }, align 16 %a808 = alloca { ptr, i64, i64 }, align 16 %a809 = alloca { ptr, i64, i64 }, align 16 - %a810 = alloca { ptr, i64, i64 }, align 16 %a811 = alloca { ptr, i64, i64 }, align 16 + %a812 = alloca { ptr, i64, i64 }, align 16 %a813 = alloca { ptr, i64, i64 }, align 16 %a814 = alloca { ptr, i64, i64 }, align 16 - %a815 = alloca { ptr, i64, i64 }, align 16 - %a816 = alloca { ptr, i64, i64 }, align 16 %a818 = alloca { ptr, i64, i64 }, align 16 + %a819 = alloca { ptr, i64, i64 }, align 16 + %a820 = alloca { ptr, i64, i64 }, align 16 + %a821 = alloca { ptr, i64, i64 }, align 16 + %a822 = alloca { ptr, i64, i64 }, align 16 + %a824 = alloca { ptr, i64, i64 }, align 16 + %a825 = alloca { ptr, i64, i64 }, align 16 + %a826 = alloca { ptr, i64, i64 }, align 16 + %a827 = alloca { ptr, i64, i64 }, align 16 + %a831 = alloca { ptr, i64, i64 }, align 16 %a832 = alloca { ptr, i64, i64 }, align 16 %a833 = alloca { ptr, i64, i64 }, align 16 + %a834 = alloca { ptr, i64, i64 }, align 16 + %a836 = alloca { ptr, i64, i64 }, align 16 + %a837 = alloca { ptr, i64, i64 }, align 16 %a838 = alloca { ptr, i64, i64 }, align 16 %a839 = alloca { ptr, i64, i64 }, align 16 + %a842 = alloca { ptr, i64, i64 }, align 16 + %a843 = alloca { ptr, i64, i64 }, align 16 + %a845 = alloca { ptr, i64, i64 }, align 16 + %a846 = alloca { ptr, i64, i64 }, align 16 + %a847 = alloca { ptr, i64, i64 }, align 16 + %a848 = alloca { ptr, i64, i64 }, align 16 + %a849 = alloca { ptr, i64, i64 }, align 16 %a851 = alloca { ptr, i64, i64 }, align 16 %a852 = alloca { ptr, i64, i64 }, align 16 %a853 = alloca { ptr, i64, i64 }, align 16 - %a857 = alloca { ptr, i64, i64 }, align 16 - %a858 = alloca { ptr, i64, i64 }, align 16 - %a859 = alloca { ptr, i64, i64 }, align 16 - %a860 = alloca { ptr, i64, i64 }, align 16 - %a861 = alloca { ptr, i64, i64 }, align 16 - %a863 = alloca { ptr, i64, i64 }, align 16 - %a864 = alloca { ptr, i64, i64 }, align 16 - %a865 = alloca { ptr, i64, i64 }, align 16 - %a866 = alloca { ptr, i64, i64 }, align 16 - %a868 = alloca { ptr, i64, i64 }, align 16 + %a854 = alloca { ptr, i64, i64 }, align 16 + %a856 = alloca { ptr, i64, i64 }, align 16 + %a870 = alloca { ptr, i64, i64 }, align 16 %a871 = alloca { ptr, i64, i64 }, align 16 - %a878 = alloca i64, align 16 - %a885 = alloca %S.gen.Var, align 16 + %a876 = alloca { ptr, i64, i64 }, align 16 + %a877 = alloca { ptr, i64, i64 }, align 16 + %a889 = alloca { ptr, i64, i64 }, align 16 %a890 = alloca { ptr, i64, i64 }, align 16 %a891 = alloca { ptr, i64, i64 }, align 16 - %a892 = alloca { ptr, i64, i64 }, align 16 - %a894 = alloca { ptr, i64, i64 }, align 16 %a895 = alloca { ptr, i64, i64 }, align 16 %a896 = alloca { ptr, i64, i64 }, align 16 %a897 = alloca { ptr, i64, i64 }, align 16 + %a898 = alloca { ptr, i64, i64 }, align 16 %a899 = alloca { ptr, i64, i64 }, align 16 - %a913 = alloca { ptr, i64, i64 }, align 16 - %a914 = alloca { ptr, i64, i64 }, align 16 - %a915 = alloca { ptr, i64, i64 }, align 16 - %a916 = alloca { ptr, i64, i64 }, align 16 - %a920 = alloca { ptr, i64, i64 }, align 16 - %a921 = alloca { ptr, i64, i64 }, align 16 - %a922 = alloca { ptr, i64, i64 }, align 16 - %a923 = alloca { ptr, i64, i64 }, align 16 + %a901 = alloca { ptr, i64, i64 }, align 16 + %a902 = alloca { ptr, i64, i64 }, align 16 + %a903 = alloca { ptr, i64, i64 }, align 16 + %a904 = alloca { ptr, i64, i64 }, align 16 + %a906 = alloca { ptr, i64, i64 }, align 16 + %a909 = alloca { ptr, i64, i64 }, align 16 + %a916 = alloca i64, align 16 + %a923 = alloca %S.gen.Var, align 16 + %a928 = alloca { ptr, i64, i64 }, align 16 %a929 = alloca { ptr, i64, i64 }, align 16 %a930 = alloca { ptr, i64, i64 }, align 16 - %a931 = alloca %S.gen.Val, align 16 + %a932 = alloca { ptr, i64, i64 }, align 16 + %a933 = alloca { ptr, i64, i64 }, align 16 + %a934 = alloca { ptr, i64, i64 }, align 16 + %a935 = alloca { ptr, i64, i64 }, align 16 + %a937 = alloca { ptr, i64, i64 }, align 16 %a951 = alloca { ptr, i64, i64 }, align 16 %a952 = alloca { ptr, i64, i64 }, align 16 %a953 = alloca { ptr, i64, i64 }, align 16 %a954 = alloca { ptr, i64, i64 }, align 16 - %a956 = alloca { ptr, i64, i64 }, align 16 + %a958 = alloca { ptr, i64, i64 }, align 16 + %a959 = alloca { ptr, i64, i64 }, align 16 + %a960 = alloca { ptr, i64, i64 }, align 16 + %a961 = alloca { ptr, i64, i64 }, align 16 + %a967 = alloca { ptr, i64, i64 }, align 16 + %a968 = alloca { ptr, i64, i64 }, align 16 + %a969 = alloca %S.gen.Val, align 16 + %a989 = alloca { ptr, i64, i64 }, align 16 + %a990 = alloca { ptr, i64, i64 }, align 16 + %a991 = alloca { ptr, i64, i64 }, align 16 + %a992 = alloca { ptr, i64, i64 }, align 16 + %a994 = alloca { ptr, i64, i64 }, align 16 store ptr %p0, ptr %a1 store %S.ast.Node %p1, ptr %a2 %t3 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t4 = load { ptr, i64, i64 }, ptr %t3 %t5 = extractvalue { ptr, i64, i64 } %t4, 1 %t6 = icmp uge i64 0, %t5 - br i1 %t6, label %range8233, label %inrange8234 -range8233: - call void @finch_panic_index(ptr @.str.5380, i64 5001, i64 0, i64 %t5) + br i1 %t6, label %range8626, label %inrange8627 +range8626: + call void @finch_panic_index(ptr @.str.5587, i64 5228, i64 0, i64 %t5) unreachable -inrange8234: +inrange8627: %t7 = extractvalue { ptr, i64, i64 } %t4, 0 %t8 = getelementptr inbounds %S.ast.Node, ptr %t7, i64 0 %t9 = load %S.ast.Node, ptr %t8 @@ -84239,1506 +88177,1567 @@ inrange8234: call void @finch.copy.S_ast_Node(ptr %a11, ptr %a10) %t12 = load %S.ast.Node, ptr %a11 store %S.ast.Node %t12, ptr %a13 - %t14 = getelementptr inbounds %S.ast.Node, ptr %a13, i32 0, i32 0 - %t15 = load { ptr, i64, i64 }, ptr %t14 - store { ptr, i64, i64 } %t15, ptr %a16 - store { ptr, i64, i64 } { ptr @.str.5381, i64 3, i64 0 }, ptr %a17 - %t18 = call i32 @finch_str_eq(ptr %a16, ptr %a17) - %t19 = icmp ne i32 %t18, 0 - br label %logic.from8235 -logic.from8235: - br i1 %t19, label %logic.rhs8236, label %logic.end8237 -logic.rhs8236: - %t20 = load ptr, ptr %a1 - %t21 = getelementptr inbounds %S.ast.Node, ptr %a13, i32 0, i32 1 - %t22 = load { ptr, i64, i64 }, ptr %t21 - %t23 = call i64 @finch.gen.lookup(ptr %t20, { ptr, i64, i64 } %t22) - %t24 = icmp slt i64 %t23, 0 - br label %logic.rend8238 -logic.rend8238: - br label %logic.end8237 -logic.end8237: - %t25 = phi i1 [ false, %logic.from8235 ], [ %t24, %logic.rend8238 ] - br i1 %t25, label %then8239, label %endif8241 -then8239: - %t26 = getelementptr inbounds %S.ast.Node, ptr %a13, i32 0, i32 1 - %t27 = load { ptr, i64, i64 }, ptr %t26 - store { ptr, i64, i64 } %t27, ptr %a28 - call void @finch_str_copy(ptr %a29, ptr %a28) - %t30 = load { ptr, i64, i64 }, ptr %a29 - store { ptr, i64, i64 } %t30, ptr %a31 - %t32 = load ptr, ptr %a1 - %t33 = load { ptr, i64, i64 }, ptr %a31 - %t34 = call i1 @finch.gen.imports(ptr %t32, { ptr, i64, i64 } %t33) - %t35 = xor i1 %t34, true - br i1 %t35, label %then8242, label %endif8244 -then8242: - %t36 = load ptr, ptr %a1 - %t37 = load %S.ast.Node, ptr %a13 - %t38 = load { ptr, i64, i64 }, ptr %a31 - store { ptr, i64, i64 } { ptr @.str.5382, i64 38, i64 0 }, ptr %a40 - store { ptr, i64, i64 } %t38, ptr %a41 - call void @finch_str_concat(ptr %a39, ptr %a40, ptr %a41) - %t42 = load { ptr, i64, i64 }, ptr %a39 - store { ptr, i64, i64 } %t42, ptr %a44 - store { ptr, i64, i64 } { ptr @.str.5383, i64 32, i64 0 }, ptr %a45 - call void @finch_str_concat(ptr %a43, ptr %a44, ptr %a45) - store { ptr, i64, i64 } %t42, ptr %a46 - call void @finch_str_drop(ptr %a46) - %t47 = load { ptr, i64, i64 }, ptr %a43 - %t48 = load { ptr, i64, i64 }, ptr %a31 - store { ptr, i64, i64 } %t47, ptr %a50 - store { ptr, i64, i64 } %t48, ptr %a51 - call void @finch_str_concat(ptr %a49, ptr %a50, ptr %a51) - store { ptr, i64, i64 } %t47, ptr %a52 - call void @finch_str_drop(ptr %a52) - %t53 = load { ptr, i64, i64 }, ptr %a49 - store { ptr, i64, i64 } %t53, ptr %a55 - store { ptr, i64, i64 } { ptr @.str.5384, i64 13, i64 0 }, ptr %a56 - call void @finch_str_concat(ptr %a54, ptr %a55, ptr %a56) - store { ptr, i64, i64 } %t53, ptr %a57 - call void @finch_str_drop(ptr %a57) - %t58 = load { ptr, i64, i64 }, ptr %a54 - call void @finch.gen.fail(ptr %t36, %S.ast.Node %t37, { ptr, i64, i64 } %t58) - store { ptr, i64, i64 } %t58, ptr %a59 - call void @finch_str_drop(ptr %a59) - br label %endif8244 -endif8244: - %t60 = load ptr, ptr %a1 - %t61 = load { ptr, i64, i64 }, ptr %a31 - %t62 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t63 = load { ptr, i64, i64 }, ptr %t62 - %t64 = call i64 @finch.gen.findFn(ptr %t60, { ptr, i64, i64 } %t61, { ptr, i64, i64 } %t63) - store i64 %t64, ptr %a65 - %t66 = load i64, ptr %a65 - %t67 = icmp sge i64 %t66, 0 - br i1 %t67, label %then8245, label %endif8247 -then8245: - %t68 = load ptr, ptr %a1 - %t69 = load i64, ptr %a65 - %t70 = load %S.ast.Node, ptr %a2 - %t71 = load { ptr, i64, i64 }, ptr %a31 - store { ptr, i64, i64 } %t71, ptr %a73 - store { ptr, i64, i64 } { ptr @.str.5385, i64 1, i64 0 }, ptr %a74 - call void @finch_str_concat(ptr %a72, ptr %a73, ptr %a74) - %t75 = load { ptr, i64, i64 }, ptr %a72 - %t76 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t77 = load { ptr, i64, i64 }, ptr %t76 - store { ptr, i64, i64 } %t75, ptr %a79 - store { ptr, i64, i64 } %t77, ptr %a80 - call void @finch_str_concat(ptr %a78, ptr %a79, ptr %a80) - store { ptr, i64, i64 } %t75, ptr %a81 - call void @finch_str_drop(ptr %a81) - %t82 = load { ptr, i64, i64 }, ptr %a78 - %t83 = call %S.gen.Val @finch.gen.callFn(ptr %t68, i64 %t69, %S.ast.Node %t70, i64 1, { ptr, i64, i64 } %t82, { ptr, i64, i64 } { ptr @.str.5386, i64 0, i64 0 }, { ptr, i64, i64 } { ptr @.str.5387, i64 0, i64 0 }) - store { ptr, i64, i64 } %t82, ptr %a84 + %t14 = load ptr, ptr %a1 + %t15 = load %S.ast.Node, ptr %a13 + %t16 = call i64 @finch.gen.sumNamed(ptr %t14, %S.ast.Node %t15) + store i64 %t16, ptr %a17 + %t18 = load i64, ptr %a17 + %t19 = icmp sge i64 %t18, 0 + br i1 %t19, label %then8628, label %endif8630 +then8628: + store { ptr, i64, i64 } zeroinitializer, ptr %a20 + %t21 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %t21, i32 0, i32 1 + %t23 = load i64, ptr %t22 + store i64 1, ptr %a24 + br label %for.cond8631 +for.cond8631: + %t25 = load i64, ptr %a24 + %t26 = icmp slt i64 %t25, %t23 + br i1 %t26, label %for.body8632, label %for.end8634 +for.body8632: + %t27 = getelementptr inbounds { ptr, i64, i64 }, ptr %a20, i32 0, i32 1 + %t28 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t29 = load i64, ptr %a24 + %t30 = load { ptr, i64, i64 }, ptr %t28 + %t31 = extractvalue { ptr, i64, i64 } %t30, 1 + %t32 = icmp uge i64 %t29, %t31 + br i1 %t32, label %range8635, label %inrange8636 +range8635: + call void @finch_panic_index(ptr @.str.5588, i64 5233, i64 %t29, i64 %t31) + unreachable +inrange8636: + %t33 = extractvalue { ptr, i64, i64 } %t30, 0 + %t34 = getelementptr inbounds %S.ast.Node, ptr %t33, i64 %t29 + %t35 = load %S.ast.Node, ptr %t34 + store %S.ast.Node %t35, ptr %a36 + call void @finch.copy.S_ast_Node(ptr %a37, ptr %a36) + %t38 = load %S.ast.Node, ptr %a37 + %t39 = load i64, ptr %t27 + %t40 = add i64 %t39, 1 + call void @finch_arr_reserve(ptr %a20, i64 %t40, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) + %t41 = load ptr, ptr %a20 + %t42 = getelementptr inbounds %S.ast.Node, ptr %t41, i64 %t39 + store %S.ast.Node %t38, ptr %t42 + store i64 %t40, ptr %t27 + br label %for.step8633 +for.step8633: + %t43 = load i64, ptr %a24 + %t44 = add i64 %t43, 1 + store i64 %t44, ptr %a24 + br label %for.cond8631 +for.end8634: + %t45 = load ptr, ptr %a1 + %t46 = load i64, ptr %a17 + %t47 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t48 = load { ptr, i64, i64 }, ptr %t47 + %t49 = load { ptr, i64, i64 }, ptr %a20 + %t50 = load %S.ast.Node, ptr %a2 + %t51 = call %S.gen.Val @finch.gen.sumMake(ptr %t45, i64 %t46, { ptr, i64, i64 } %t48, { ptr, i64, i64 } %t49, %S.ast.Node %t50) + call void @finch.drop.arr_S_ast_Node(ptr %a20) + call void @finch.drop.S_ast_Node(ptr %a13) + ret %S.gen.Val %t51 +endif8630: + %t52 = getelementptr inbounds %S.ast.Node, ptr %a13, i32 0, i32 0 + %t53 = load { ptr, i64, i64 }, ptr %t52 + store { ptr, i64, i64 } %t53, ptr %a54 + store { ptr, i64, i64 } { ptr @.str.5589, i64 3, i64 0 }, ptr %a55 + %t56 = call i32 @finch_str_eq(ptr %a54, ptr %a55) + %t57 = icmp ne i32 %t56, 0 + br label %logic.from8637 +logic.from8637: + br i1 %t57, label %logic.rhs8638, label %logic.end8639 +logic.rhs8638: + %t58 = load ptr, ptr %a1 + %t59 = getelementptr inbounds %S.ast.Node, ptr %a13, i32 0, i32 1 + %t60 = load { ptr, i64, i64 }, ptr %t59 + %t61 = call i64 @finch.gen.lookup(ptr %t58, { ptr, i64, i64 } %t60) + %t62 = icmp slt i64 %t61, 0 + br label %logic.rend8640 +logic.rend8640: + br label %logic.end8639 +logic.end8639: + %t63 = phi i1 [ false, %logic.from8637 ], [ %t62, %logic.rend8640 ] + br i1 %t63, label %then8641, label %endif8643 +then8641: + %t64 = getelementptr inbounds %S.ast.Node, ptr %a13, i32 0, i32 1 + %t65 = load { ptr, i64, i64 }, ptr %t64 + store { ptr, i64, i64 } %t65, ptr %a66 + call void @finch_str_copy(ptr %a67, ptr %a66) + %t68 = load { ptr, i64, i64 }, ptr %a67 + store { ptr, i64, i64 } %t68, ptr %a69 + %t70 = load ptr, ptr %a1 + %t71 = load { ptr, i64, i64 }, ptr %a69 + %t72 = call i1 @finch.gen.imports(ptr %t70, { ptr, i64, i64 } %t71) + %t73 = xor i1 %t72, true + br i1 %t73, label %then8644, label %endif8646 +then8644: + %t74 = load ptr, ptr %a1 + %t75 = load %S.ast.Node, ptr %a13 + %t76 = load { ptr, i64, i64 }, ptr %a69 + store { ptr, i64, i64 } { ptr @.str.5590, i64 38, i64 0 }, ptr %a78 + store { ptr, i64, i64 } %t76, ptr %a79 + call void @finch_str_concat(ptr %a77, ptr %a78, ptr %a79) + %t80 = load { ptr, i64, i64 }, ptr %a77 + store { ptr, i64, i64 } %t80, ptr %a82 + store { ptr, i64, i64 } { ptr @.str.5591, i64 32, i64 0 }, ptr %a83 + call void @finch_str_concat(ptr %a81, ptr %a82, ptr %a83) + store { ptr, i64, i64 } %t80, ptr %a84 call void @finch_str_drop(ptr %a84) - call void @finch_str_drop(ptr %a31) - call void @finch.drop.S_ast_Node(ptr %a13) - ret %S.gen.Val %t83 -endif8247: - %t85 = load ptr, ptr %a1 - %t86 = load { ptr, i64, i64 }, ptr %a31 - %t87 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t88 = load { ptr, i64, i64 }, ptr %t87 - %t89 = call i64 @finch.gen.findTemplate(ptr %t85, { ptr, i64, i64 } %t86, { ptr, i64, i64 } %t88, { ptr, i64, i64 } { ptr @.str.5388, i64 0, i64 0 }, i1 false) - store i64 %t89, ptr %a90 - %t91 = load i64, ptr %a90 - %t92 = icmp sge i64 %t91, 0 - br i1 %t92, label %then8248, label %endif8250 -then8248: - %t93 = load ptr, ptr %a1 - %t94 = load %S.ast.Node, ptr %a2 - %t95 = load i64, ptr %a90 - %t96 = load { ptr, i64, i64 }, ptr %a31 - store { ptr, i64, i64 } %t96, ptr %a98 - store { ptr, i64, i64 } { ptr @.str.5389, i64 1, i64 0 }, ptr %a99 - call void @finch_str_concat(ptr %a97, ptr %a98, ptr %a99) - %t100 = load { ptr, i64, i64 }, ptr %a97 - %t101 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t102 = load { ptr, i64, i64 }, ptr %t101 - store { ptr, i64, i64 } %t100, ptr %a104 - store { ptr, i64, i64 } %t102, ptr %a105 - call void @finch_str_concat(ptr %a103, ptr %a104, ptr %a105) - store { ptr, i64, i64 } %t100, ptr %a106 - call void @finch_str_drop(ptr %a106) - %t107 = load { ptr, i64, i64 }, ptr %a103 - %t108 = call %S.gen.Val @finch.gen.genericCall(ptr %t93, %S.ast.Node %t94, i64 %t95, i64 1, { ptr, i64, i64 } %t107) - store { ptr, i64, i64 } %t107, ptr %a109 - call void @finch_str_drop(ptr %a109) - call void @finch_str_drop(ptr %a31) - call void @finch.drop.S_ast_Node(ptr %a13) - ret %S.gen.Val %t108 -endif8250: - %t110 = load ptr, ptr %a1 - %t111 = load { ptr, i64, i64 }, ptr %a31 - %t112 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t113 = load { ptr, i64, i64 }, ptr %t112 - %t114 = call i64 @finch.gen.findEnum(ptr %t110, { ptr, i64, i64 } %t111, { ptr, i64, i64 } %t113) - store i64 %t114, ptr %a115 - %t116 = load i64, ptr %a115 - %t117 = icmp sge i64 %t116, 0 - br i1 %t117, label %then8251, label %endif8253 -then8251: - %t118 = load ptr, ptr %a1 - %t119 = load %S.ast.Node, ptr %a2 - %t120 = load i64, ptr %a115 - %t121 = call %S.gen.Val @finch.gen.enumFrom(ptr %t118, %S.ast.Node %t119, i64 %t120) - call void @finch_str_drop(ptr %a31) + %t85 = load { ptr, i64, i64 }, ptr %a81 + %t86 = load { ptr, i64, i64 }, ptr %a69 + store { ptr, i64, i64 } %t85, ptr %a88 + store { ptr, i64, i64 } %t86, ptr %a89 + call void @finch_str_concat(ptr %a87, ptr %a88, ptr %a89) + store { ptr, i64, i64 } %t85, ptr %a90 + call void @finch_str_drop(ptr %a90) + %t91 = load { ptr, i64, i64 }, ptr %a87 + store { ptr, i64, i64 } %t91, ptr %a93 + store { ptr, i64, i64 } { ptr @.str.5592, i64 13, i64 0 }, ptr %a94 + call void @finch_str_concat(ptr %a92, ptr %a93, ptr %a94) + store { ptr, i64, i64 } %t91, ptr %a95 + call void @finch_str_drop(ptr %a95) + %t96 = load { ptr, i64, i64 }, ptr %a92 + call void @finch.gen.fail(ptr %t74, %S.ast.Node %t75, { ptr, i64, i64 } %t96) + store { ptr, i64, i64 } %t96, ptr %a97 + call void @finch_str_drop(ptr %a97) + br label %endif8646 +endif8646: + %t98 = load ptr, ptr %a1 + %t99 = load { ptr, i64, i64 }, ptr %a69 + %t100 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t101 = load { ptr, i64, i64 }, ptr %t100 + %t102 = call i64 @finch.gen.findFn(ptr %t98, { ptr, i64, i64 } %t99, { ptr, i64, i64 } %t101) + store i64 %t102, ptr %a103 + %t104 = load i64, ptr %a103 + %t105 = icmp sge i64 %t104, 0 + br i1 %t105, label %then8647, label %endif8649 +then8647: + %t106 = load ptr, ptr %a1 + %t107 = load i64, ptr %a103 + %t108 = load %S.ast.Node, ptr %a2 + %t109 = load { ptr, i64, i64 }, ptr %a69 + store { ptr, i64, i64 } %t109, ptr %a111 + store { ptr, i64, i64 } { ptr @.str.5593, i64 1, i64 0 }, ptr %a112 + call void @finch_str_concat(ptr %a110, ptr %a111, ptr %a112) + %t113 = load { ptr, i64, i64 }, ptr %a110 + %t114 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t115 = load { ptr, i64, i64 }, ptr %t114 + store { ptr, i64, i64 } %t113, ptr %a117 + store { ptr, i64, i64 } %t115, ptr %a118 + call void @finch_str_concat(ptr %a116, ptr %a117, ptr %a118) + store { ptr, i64, i64 } %t113, ptr %a119 + call void @finch_str_drop(ptr %a119) + %t120 = load { ptr, i64, i64 }, ptr %a116 + %t121 = call %S.gen.Val @finch.gen.callFn(ptr %t106, i64 %t107, %S.ast.Node %t108, i64 1, { ptr, i64, i64 } %t120, { ptr, i64, i64 } { ptr @.str.5594, i64 0, i64 0 }, { ptr, i64, i64 } { ptr @.str.5595, i64 0, i64 0 }) + store { ptr, i64, i64 } %t120, ptr %a122 + call void @finch_str_drop(ptr %a122) + call void @finch_str_drop(ptr %a69) call void @finch.drop.S_ast_Node(ptr %a13) ret %S.gen.Val %t121 -endif8253: - %t122 = load ptr, ptr %a1 - %t123 = load { ptr, i64, i64 }, ptr %a31 - %t124 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t125 = load { ptr, i64, i64 }, ptr %t124 - %t126 = call i64 @finch.gen.findStruct(ptr %t122, { ptr, i64, i64 } %t123, { ptr, i64, i64 } %t125) - store i64 %t126, ptr %a127 - %t128 = load i64, ptr %a127 - %t129 = icmp sge i64 %t128, 0 - br i1 %t129, label %then8254, label %endif8256 -then8254: - store { ptr, i64, i64 } zeroinitializer, ptr %a130 - %t131 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 - %t132 = getelementptr inbounds { ptr, i64, i64 }, ptr %t131, i32 0, i32 1 - %t133 = load i64, ptr %t132 - store i64 1, ptr %a134 - br label %for.cond8257 -for.cond8257: - %t135 = load i64, ptr %a134 - %t136 = icmp slt i64 %t135, %t133 - br i1 %t136, label %for.body8258, label %for.end8260 -for.body8258: - %t137 = getelementptr inbounds { ptr, i64, i64 }, ptr %a130, i32 0, i32 1 - %t138 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 - %t139 = load i64, ptr %a134 - %t140 = load { ptr, i64, i64 }, ptr %t138 - %t141 = extractvalue { ptr, i64, i64 } %t140, 1 - %t142 = icmp uge i64 %t139, %t141 - br i1 %t142, label %range8261, label %inrange8262 -range8261: - call void @finch_panic_index(ptr @.str.5390, i64 5023, i64 %t139, i64 %t141) - unreachable -inrange8262: - %t143 = extractvalue { ptr, i64, i64 } %t140, 0 - %t144 = getelementptr inbounds %S.ast.Node, ptr %t143, i64 %t139 - %t145 = load %S.ast.Node, ptr %t144 - store %S.ast.Node %t145, ptr %a146 - call void @finch.copy.S_ast_Node(ptr %a147, ptr %a146) - %t148 = load %S.ast.Node, ptr %a147 - %t149 = load i64, ptr %t137 - %t150 = add i64 %t149, 1 - call void @finch_arr_reserve(ptr %a130, i64 %t150, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) - %t151 = load ptr, ptr %a130 - %t152 = getelementptr inbounds %S.ast.Node, ptr %t151, i64 %t149 - store %S.ast.Node %t148, ptr %t152 - store i64 %t150, ptr %t137 - br label %for.step8259 -for.step8259: - %t153 = load i64, ptr %a134 - %t154 = add i64 %t153, 1 - store i64 %t154, ptr %a134 - br label %for.cond8257 -for.end8260: - %t155 = load ptr, ptr %a1 - %t156 = load i64, ptr %a127 - %t157 = load { ptr, i64, i64 }, ptr %a130 - %t158 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 10 - %t159 = load { ptr, i64, i64 }, ptr %t158 - %t160 = load %S.ast.Node, ptr %a2 - %t161 = call %S.gen.Val @finch.gen.construct(ptr %t155, i64 %t156, { ptr, i64, i64 } %t157, { ptr, i64, i64 } %t159, %S.ast.Node %t160) - call void @finch.drop.arr_S_ast_Node(ptr %a130) - call void @finch_str_drop(ptr %a31) +endif8649: + %t123 = load ptr, ptr %a1 + %t124 = load { ptr, i64, i64 }, ptr %a69 + %t125 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t126 = load { ptr, i64, i64 }, ptr %t125 + %t127 = call i64 @finch.gen.findTemplate(ptr %t123, { ptr, i64, i64 } %t124, { ptr, i64, i64 } %t126, { ptr, i64, i64 } { ptr @.str.5596, i64 0, i64 0 }, i1 false) + store i64 %t127, ptr %a128 + %t129 = load i64, ptr %a128 + %t130 = icmp sge i64 %t129, 0 + br i1 %t130, label %then8650, label %endif8652 +then8650: + %t131 = load ptr, ptr %a1 + %t132 = load %S.ast.Node, ptr %a2 + %t133 = load i64, ptr %a128 + %t134 = load { ptr, i64, i64 }, ptr %a69 + store { ptr, i64, i64 } %t134, ptr %a136 + store { ptr, i64, i64 } { ptr @.str.5597, i64 1, i64 0 }, ptr %a137 + call void @finch_str_concat(ptr %a135, ptr %a136, ptr %a137) + %t138 = load { ptr, i64, i64 }, ptr %a135 + %t139 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t140 = load { ptr, i64, i64 }, ptr %t139 + store { ptr, i64, i64 } %t138, ptr %a142 + store { ptr, i64, i64 } %t140, ptr %a143 + call void @finch_str_concat(ptr %a141, ptr %a142, ptr %a143) + store { ptr, i64, i64 } %t138, ptr %a144 + call void @finch_str_drop(ptr %a144) + %t145 = load { ptr, i64, i64 }, ptr %a141 + %t146 = call %S.gen.Val @finch.gen.genericCall(ptr %t131, %S.ast.Node %t132, i64 %t133, i64 1, { ptr, i64, i64 } %t145) + store { ptr, i64, i64 } %t145, ptr %a147 + call void @finch_str_drop(ptr %a147) + call void @finch_str_drop(ptr %a69) call void @finch.drop.S_ast_Node(ptr %a13) - ret %S.gen.Val %t161 -endif8256: - %t162 = load ptr, ptr %a1 - %t163 = load %S.ast.Node, ptr %a2 - %t164 = load { ptr, i64, i64 }, ptr %a31 - store { ptr, i64, i64 } { ptr @.str.5391, i64 12, i64 0 }, ptr %a166 - store { ptr, i64, i64 } %t164, ptr %a167 - call void @finch_str_concat(ptr %a165, ptr %a166, ptr %a167) - %t168 = load { ptr, i64, i64 }, ptr %a165 - store { ptr, i64, i64 } %t168, ptr %a170 - store { ptr, i64, i64 } { ptr @.str.5392, i64 35, i64 0 }, ptr %a171 - call void @finch_str_concat(ptr %a169, ptr %a170, ptr %a171) - store { ptr, i64, i64 } %t168, ptr %a172 - call void @finch_str_drop(ptr %a172) - %t173 = load { ptr, i64, i64 }, ptr %a169 - %t174 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t175 = load { ptr, i64, i64 }, ptr %t174 - store { ptr, i64, i64 } %t173, ptr %a177 - store { ptr, i64, i64 } %t175, ptr %a178 - call void @finch_str_concat(ptr %a176, ptr %a177, ptr %a178) - store { ptr, i64, i64 } %t173, ptr %a179 - call void @finch_str_drop(ptr %a179) - %t180 = load { ptr, i64, i64 }, ptr %a176 - store { ptr, i64, i64 } %t180, ptr %a182 - store { ptr, i64, i64 } { ptr @.str.5393, i64 1, i64 0 }, ptr %a183 - call void @finch_str_concat(ptr %a181, ptr %a182, ptr %a183) - store { ptr, i64, i64 } %t180, ptr %a184 - call void @finch_str_drop(ptr %a184) - %t185 = load { ptr, i64, i64 }, ptr %a181 - call void @finch.gen.fail(ptr %t162, %S.ast.Node %t163, { ptr, i64, i64 } %t185) - store { ptr, i64, i64 } %t185, ptr %a186 - call void @finch_str_drop(ptr %a186) - call void @finch_str_drop(ptr %a31) - br label %endif8241 -endif8241: - %t187 = mul i64 8, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) - %t188 = call ptr @finch_alloc(i64 %t187) - %t189 = getelementptr inbounds { ptr, i64, i64 }, ptr %t188, i64 0 - store { ptr, i64, i64 } { ptr @.str.5394, i64 4, i64 0 }, ptr %t189 - %t190 = getelementptr inbounds { ptr, i64, i64 }, ptr %t188, i64 1 - store { ptr, i64, i64 } { ptr @.str.5395, i64 3, i64 0 }, ptr %t190 - %t191 = getelementptr inbounds { ptr, i64, i64 }, ptr %t188, i64 2 - store { ptr, i64, i64 } { ptr @.str.5396, i64 6, i64 0 }, ptr %t191 - %t192 = getelementptr inbounds { ptr, i64, i64 }, ptr %t188, i64 3 - store { ptr, i64, i64 } { ptr @.str.5397, i64 6, i64 0 }, ptr %t192 - %t193 = getelementptr inbounds { ptr, i64, i64 }, ptr %t188, i64 4 - store { ptr, i64, i64 } { ptr @.str.5398, i64 5, i64 0 }, ptr %t193 - %t194 = getelementptr inbounds { ptr, i64, i64 }, ptr %t188, i64 5 - store { ptr, i64, i64 } { ptr @.str.5399, i64 6, i64 0 }, ptr %t194 - %t195 = getelementptr inbounds { ptr, i64, i64 }, ptr %t188, i64 6 - store { ptr, i64, i64 } { ptr @.str.5400, i64 4, i64 0 }, ptr %t195 - %t196 = getelementptr inbounds { ptr, i64, i64 }, ptr %t188, i64 7 - store { ptr, i64, i64 } { ptr @.str.5401, i64 7, i64 0 }, ptr %t196 - %t197 = insertvalue { ptr, i64, i64 } undef, ptr %t188, 0 - %t198 = insertvalue { ptr, i64, i64 } %t197, i64 8, 1 - %t199 = insertvalue { ptr, i64, i64 } %t198, i64 8, 2 - store { ptr, i64, i64 } %t199, ptr %a200 - %t201 = load ptr, ptr %a1 - %t202 = load %S.ast.Node, ptr %a13 - %t203 = getelementptr inbounds { ptr, i64, i64 }, ptr %a200, i32 0, i32 1 - %t204 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t205 = load { ptr, i64, i64 }, ptr %t204 - store i64 -1, ptr %a206 - %t207 = load i64, ptr %t203 - %t208 = load ptr, ptr %a200 - store i64 0, ptr %a209 - br label %find.cond8263 -find.cond8263: - %t210 = load i64, ptr %a209 - %t211 = icmp slt i64 %t210, %t207 - br i1 %t211, label %find.body8264, label %find.end8267 -find.body8264: - %t212 = getelementptr inbounds { ptr, i64, i64 }, ptr %t208, i64 %t210 + ret %S.gen.Val %t146 +endif8652: + %t148 = load ptr, ptr %a1 + %t149 = load { ptr, i64, i64 }, ptr %a69 + %t150 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t151 = load { ptr, i64, i64 }, ptr %t150 + %t152 = call i64 @finch.gen.findEnum(ptr %t148, { ptr, i64, i64 } %t149, { ptr, i64, i64 } %t151) + store i64 %t152, ptr %a153 + %t154 = load i64, ptr %a153 + %t155 = icmp sge i64 %t154, 0 + br i1 %t155, label %then8653, label %endif8655 +then8653: + %t156 = load ptr, ptr %a1 + %t157 = load %S.ast.Node, ptr %a2 + %t158 = load i64, ptr %a153 + %t159 = call %S.gen.Val @finch.gen.enumFrom(ptr %t156, %S.ast.Node %t157, i64 %t158) + call void @finch_str_drop(ptr %a69) + call void @finch.drop.S_ast_Node(ptr %a13) + ret %S.gen.Val %t159 +endif8655: + %t160 = load ptr, ptr %a1 + %t161 = load { ptr, i64, i64 }, ptr %a69 + %t162 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t163 = load { ptr, i64, i64 }, ptr %t162 + %t164 = call i64 @finch.gen.findStruct(ptr %t160, { ptr, i64, i64 } %t161, { ptr, i64, i64 } %t163) + store i64 %t164, ptr %a165 + %t166 = load i64, ptr %a165 + %t167 = icmp sge i64 %t166, 0 + br i1 %t167, label %then8656, label %endif8658 +then8656: + store { ptr, i64, i64 } zeroinitializer, ptr %a168 + %t169 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t170 = getelementptr inbounds { ptr, i64, i64 }, ptr %t169, i32 0, i32 1 + %t171 = load i64, ptr %t170 + store i64 1, ptr %a172 + br label %for.cond8659 +for.cond8659: + %t173 = load i64, ptr %a172 + %t174 = icmp slt i64 %t173, %t171 + br i1 %t174, label %for.body8660, label %for.end8662 +for.body8660: + %t175 = getelementptr inbounds { ptr, i64, i64 }, ptr %a168, i32 0, i32 1 + %t176 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 + %t177 = load i64, ptr %a172 + %t178 = load { ptr, i64, i64 }, ptr %t176 + %t179 = extractvalue { ptr, i64, i64 } %t178, 1 + %t180 = icmp uge i64 %t177, %t179 + br i1 %t180, label %range8663, label %inrange8664 +range8663: + call void @finch_panic_index(ptr @.str.5598, i64 5258, i64 %t177, i64 %t179) + unreachable +inrange8664: + %t181 = extractvalue { ptr, i64, i64 } %t178, 0 + %t182 = getelementptr inbounds %S.ast.Node, ptr %t181, i64 %t177 + %t183 = load %S.ast.Node, ptr %t182 + store %S.ast.Node %t183, ptr %a184 + call void @finch.copy.S_ast_Node(ptr %a185, ptr %a184) + %t186 = load %S.ast.Node, ptr %a185 + %t187 = load i64, ptr %t175 + %t188 = add i64 %t187, 1 + call void @finch_arr_reserve(ptr %a168, i64 %t188, i64 ptrtoint (ptr getelementptr (%S.ast.Node, ptr null, i32 1) to i64)) + %t189 = load ptr, ptr %a168 + %t190 = getelementptr inbounds %S.ast.Node, ptr %t189, i64 %t187 + store %S.ast.Node %t186, ptr %t190 + store i64 %t188, ptr %t175 + br label %for.step8661 +for.step8661: + %t191 = load i64, ptr %a172 + %t192 = add i64 %t191, 1 + store i64 %t192, ptr %a172 + br label %for.cond8659 +for.end8662: + %t193 = load ptr, ptr %a1 + %t194 = load i64, ptr %a165 + %t195 = load { ptr, i64, i64 }, ptr %a168 + %t196 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 10 + %t197 = load { ptr, i64, i64 }, ptr %t196 + %t198 = load %S.ast.Node, ptr %a2 + %t199 = call %S.gen.Val @finch.gen.construct(ptr %t193, i64 %t194, { ptr, i64, i64 } %t195, { ptr, i64, i64 } %t197, %S.ast.Node %t198) + call void @finch.drop.arr_S_ast_Node(ptr %a168) + call void @finch_str_drop(ptr %a69) + call void @finch.drop.S_ast_Node(ptr %a13) + ret %S.gen.Val %t199 +endif8658: + %t200 = load ptr, ptr %a1 + %t201 = load %S.ast.Node, ptr %a2 + %t202 = load { ptr, i64, i64 }, ptr %a69 + store { ptr, i64, i64 } { ptr @.str.5599, i64 12, i64 0 }, ptr %a204 + store { ptr, i64, i64 } %t202, ptr %a205 + call void @finch_str_concat(ptr %a203, ptr %a204, ptr %a205) + %t206 = load { ptr, i64, i64 }, ptr %a203 + store { ptr, i64, i64 } %t206, ptr %a208 + store { ptr, i64, i64 } { ptr @.str.5600, i64 35, i64 0 }, ptr %a209 + call void @finch_str_concat(ptr %a207, ptr %a208, ptr %a209) + store { ptr, i64, i64 } %t206, ptr %a210 + call void @finch_str_drop(ptr %a210) + %t211 = load { ptr, i64, i64 }, ptr %a207 + %t212 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t213 = load { ptr, i64, i64 }, ptr %t212 - store { ptr, i64, i64 } %t213, ptr %a214 - store { ptr, i64, i64 } %t205, ptr %a215 - %t216 = call i32 @finch_str_eq(ptr %a214, ptr %a215) - %t217 = icmp ne i32 %t216, 0 - br i1 %t217, label %find.hit8265, label %find.next8266 -find.hit8265: - store i64 %t210, ptr %a206 - br label %find.end8267 -find.next8266: - %t218 = add i64 %t210, 1 - store i64 %t218, ptr %a209 - br label %find.cond8263 -find.end8267: - %t219 = load i64, ptr %a206 - %t220 = icmp sge i64 %t219, 0 - %t221 = call %S.gen.Ref @finch.gen.ref(ptr %t201, %S.ast.Node %t202, i1 %t220) - store %S.gen.Ref %t221, ptr %a222 - %t223 = load ptr, ptr %a1 - %t224 = icmp eq ptr %t223, null - br i1 %t224, label %panic8268, label %ok8269 -panic8268: - call void @finch_panic(ptr @.str.5402, i64 5031, ptr @.str.5403) + store { ptr, i64, i64 } %t211, ptr %a215 + store { ptr, i64, i64 } %t213, ptr %a216 + call void @finch_str_concat(ptr %a214, ptr %a215, ptr %a216) + store { ptr, i64, i64 } %t211, ptr %a217 + call void @finch_str_drop(ptr %a217) + %t218 = load { ptr, i64, i64 }, ptr %a214 + store { ptr, i64, i64 } %t218, ptr %a220 + store { ptr, i64, i64 } { ptr @.str.5601, i64 1, i64 0 }, ptr %a221 + call void @finch_str_concat(ptr %a219, ptr %a220, ptr %a221) + store { ptr, i64, i64 } %t218, ptr %a222 + call void @finch_str_drop(ptr %a222) + %t223 = load { ptr, i64, i64 }, ptr %a219 + call void @finch.gen.fail(ptr %t200, %S.ast.Node %t201, { ptr, i64, i64 } %t223) + store { ptr, i64, i64 } %t223, ptr %a224 + call void @finch_str_drop(ptr %a224) + call void @finch_str_drop(ptr %a69) + br label %endif8643 +endif8643: + %t225 = mul i64 8, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) + %t226 = call ptr @finch_alloc(i64 %t225) + %t227 = getelementptr inbounds { ptr, i64, i64 }, ptr %t226, i64 0 + store { ptr, i64, i64 } { ptr @.str.5602, i64 4, i64 0 }, ptr %t227 + %t228 = getelementptr inbounds { ptr, i64, i64 }, ptr %t226, i64 1 + store { ptr, i64, i64 } { ptr @.str.5603, i64 3, i64 0 }, ptr %t228 + %t229 = getelementptr inbounds { ptr, i64, i64 }, ptr %t226, i64 2 + store { ptr, i64, i64 } { ptr @.str.5604, i64 6, i64 0 }, ptr %t229 + %t230 = getelementptr inbounds { ptr, i64, i64 }, ptr %t226, i64 3 + store { ptr, i64, i64 } { ptr @.str.5605, i64 6, i64 0 }, ptr %t230 + %t231 = getelementptr inbounds { ptr, i64, i64 }, ptr %t226, i64 4 + store { ptr, i64, i64 } { ptr @.str.5606, i64 5, i64 0 }, ptr %t231 + %t232 = getelementptr inbounds { ptr, i64, i64 }, ptr %t226, i64 5 + store { ptr, i64, i64 } { ptr @.str.5607, i64 6, i64 0 }, ptr %t232 + %t233 = getelementptr inbounds { ptr, i64, i64 }, ptr %t226, i64 6 + store { ptr, i64, i64 } { ptr @.str.5608, i64 4, i64 0 }, ptr %t233 + %t234 = getelementptr inbounds { ptr, i64, i64 }, ptr %t226, i64 7 + store { ptr, i64, i64 } { ptr @.str.5609, i64 7, i64 0 }, ptr %t234 + %t235 = insertvalue { ptr, i64, i64 } undef, ptr %t226, 0 + %t236 = insertvalue { ptr, i64, i64 } %t235, i64 8, 1 + %t237 = insertvalue { ptr, i64, i64 } %t236, i64 8, 2 + store { ptr, i64, i64 } %t237, ptr %a238 + %t239 = load ptr, ptr %a1 + %t240 = load %S.ast.Node, ptr %a13 + %t241 = getelementptr inbounds { ptr, i64, i64 }, ptr %a238, i32 0, i32 1 + %t242 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t243 = load { ptr, i64, i64 }, ptr %t242 + store i64 -1, ptr %a244 + %t245 = load i64, ptr %t241 + %t246 = load ptr, ptr %a238 + store i64 0, ptr %a247 + br label %find.cond8665 +find.cond8665: + %t248 = load i64, ptr %a247 + %t249 = icmp slt i64 %t248, %t245 + br i1 %t249, label %find.body8666, label %find.end8669 +find.body8666: + %t250 = getelementptr inbounds { ptr, i64, i64 }, ptr %t246, i64 %t248 + %t251 = load { ptr, i64, i64 }, ptr %t250 + store { ptr, i64, i64 } %t251, ptr %a252 + store { ptr, i64, i64 } %t243, ptr %a253 + %t254 = call i32 @finch_str_eq(ptr %a252, ptr %a253) + %t255 = icmp ne i32 %t254, 0 + br i1 %t255, label %find.hit8667, label %find.next8668 +find.hit8667: + store i64 %t248, ptr %a244 + br label %find.end8669 +find.next8668: + %t256 = add i64 %t248, 1 + store i64 %t256, ptr %a247 + br label %find.cond8665 +find.end8669: + %t257 = load i64, ptr %a244 + %t258 = icmp sge i64 %t257, 0 + %t259 = call %S.gen.Ref @finch.gen.ref(ptr %t239, %S.ast.Node %t240, i1 %t258) + store %S.gen.Ref %t259, ptr %a260 + %t261 = load ptr, ptr %a1 + %t262 = icmp eq ptr %t261, null + br i1 %t262, label %panic8670, label %ok8671 +panic8670: + call void @finch_panic(ptr @.str.5610, i64 5266, ptr @.str.5611) unreachable -ok8269: - %t225 = getelementptr inbounds %S.gen.Gen, ptr %t223, i32 0, i32 11 - %t226 = getelementptr inbounds { ptr, i64, i64 }, ptr %t225, i32 0, i32 1 - %t227 = load i64, ptr %t226 - store i64 %t227, ptr %a228 - %t229 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 2 - %t230 = getelementptr inbounds %S.gen.Val, ptr %t229, i32 0, i32 1 - %t231 = load %S.ast.Type, ptr %t230 - store %S.ast.Type %t231, ptr %a232 - call void @finch.copy.S_ast_Type(ptr %a233, ptr %a232) - %t234 = load %S.ast.Type, ptr %a233 - store %S.ast.Type %t234, ptr %a235 - %t236 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 0 - %t237 = load i1, ptr %t236 - br i1 %t237, label %then8270, label %endif8272 -then8270: - %t238 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 1 - %t239 = getelementptr inbounds %S.gen.Place, ptr %t238, i32 0, i32 1 - %t240 = load %S.ast.Type, ptr %t239 - store %S.ast.Type %t240, ptr %a241 - call void @finch.copy.S_ast_Type(ptr %a242, ptr %a241) - %t243 = load %S.ast.Type, ptr %a242 - %t244 = load %S.ast.Type, ptr %a235 - store %S.ast.Type %t243, ptr %a235 - store %S.ast.Type %t244, ptr %a245 - call void @finch.drop.S_ast_Type(ptr %a245) - br label %endif8272 -endif8272: - %t246 = getelementptr inbounds %S.ast.Type, ptr %a235, i32 0, i32 0 - %t247 = load { ptr, i64, i64 }, ptr %t246 - store { ptr, i64, i64 } %t247, ptr %a248 - store { ptr, i64, i64 } { ptr @.str.5404, i64 5, i64 0 }, ptr %a249 - %t250 = call i32 @finch_str_eq(ptr %a248, ptr %a249) - %t251 = icmp ne i32 %t250, 0 - br i1 %t251, label %then8273, label %endif8275 -then8273: - store { ptr, i64, i64 } { ptr @.str.5405, i64 0, i64 0 }, ptr %a252 - %t253 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 0 - %t254 = load i1, ptr %t253 - br i1 %t254, label %then8276, label %else8277 -then8276: - %t255 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 1 - %t256 = getelementptr inbounds %S.gen.Place, ptr %t255, i32 0, i32 0 - %t257 = load { ptr, i64, i64 }, ptr %t256 - store { ptr, i64, i64 } %t257, ptr %a258 - call void @finch_str_copy(ptr %a259, ptr %a258) - %t260 = load { ptr, i64, i64 }, ptr %a259 - %t261 = load { ptr, i64, i64 }, ptr %a252 - store { ptr, i64, i64 } %t260, ptr %a252 - store { ptr, i64, i64 } %t261, ptr %a262 - call void @finch_str_drop(ptr %a262) - br label %endif8278 -else8277: - %t263 = getelementptr inbounds { ptr, i64, i64 }, ptr %a200, i32 0, i32 1 - %t264 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t265 = load { ptr, i64, i64 }, ptr %t264 - store i64 -1, ptr %a266 - %t267 = load i64, ptr %t263 - %t268 = load ptr, ptr %a200 - store i64 0, ptr %a269 - br label %find.cond8279 -find.cond8279: - %t270 = load i64, ptr %a269 - %t271 = icmp slt i64 %t270, %t267 - br i1 %t271, label %find.body8280, label %find.end8283 -find.body8280: - %t272 = getelementptr inbounds { ptr, i64, i64 }, ptr %t268, i64 %t270 - %t273 = load { ptr, i64, i64 }, ptr %t272 - store { ptr, i64, i64 } %t273, ptr %a274 - store { ptr, i64, i64 } %t265, ptr %a275 - %t276 = call i32 @finch_str_eq(ptr %a274, ptr %a275) - %t277 = icmp ne i32 %t276, 0 - br i1 %t277, label %find.hit8281, label %find.next8282 -find.hit8281: - store i64 %t270, ptr %a266 - br label %find.end8283 -find.next8282: - %t278 = add i64 %t270, 1 - store i64 %t278, ptr %a269 - br label %find.cond8279 -find.end8283: - %t279 = load i64, ptr %a266 - %t280 = icmp sge i64 %t279, 0 - br i1 %t280, label %then8284, label %endif8286 -then8284: - %t281 = load ptr, ptr %a1 - %t282 = load %S.ast.Node, ptr %a2 - %t283 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t284 = load { ptr, i64, i64 }, ptr %t283 - store { ptr, i64, i64 } %t284, ptr %a286 - store { ptr, i64, i64 } { ptr @.str.5406, i64 63, i64 0 }, ptr %a287 - call void @finch_str_concat(ptr %a285, ptr %a286, ptr %a287) - %t288 = load { ptr, i64, i64 }, ptr %a285 - call void @finch.gen.fail(ptr %t281, %S.ast.Node %t282, { ptr, i64, i64 } %t288) - store { ptr, i64, i64 } %t288, ptr %a289 - call void @finch_str_drop(ptr %a289) - br label %endif8286 -endif8286: - %t290 = load ptr, ptr %a1 - %t291 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 2 - %t292 = load %S.gen.Val, ptr %t291 - %t293 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t290, %S.gen.Val %t292) - %t294 = load { ptr, i64, i64 }, ptr %a252 - store { ptr, i64, i64 } %t293, ptr %a252 - store { ptr, i64, i64 } %t294, ptr %a295 - call void @finch_str_drop(ptr %a295) - %t296 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 2 - %t297 = getelementptr inbounds %S.gen.Val, ptr %t296, i32 0, i32 2 - %t298 = load i1, ptr %t297 - br i1 %t298, label %then8287, label %endif8289 -then8287: - %t299 = load ptr, ptr %a1 - %t300 = load { ptr, i64, i64 }, ptr %a252 - %t301 = load %S.ast.Type, ptr %a235 - call void @finch.gen.holdAddr(ptr %t299, { ptr, i64, i64 } %t300, %S.ast.Type %t301) - br label %endif8289 -endif8289: - br label %endif8278 -endif8278: - %t302 = load ptr, ptr %a1 - %t303 = load %S.ast.Node, ptr %a2 - %t304 = call { ptr, i64, i64 } @finch.docs.arrayMethods() - call void @finch.gen.noteMethod(ptr %t302, %S.ast.Node %t303, { ptr, i64, i64 } %t304) - store { ptr, i64, i64 } %t304, ptr %a305 - call void @finch.drop.arr_S_docs_Doc(ptr %a305) - %t306 = load ptr, ptr %a1 - %t307 = load %S.ast.Node, ptr %a2 - %t308 = load { ptr, i64, i64 }, ptr %a252 - %t309 = load %S.ast.Type, ptr %a235 - %t310 = call %S.gen.Val @finch.gen.arrayMethod(ptr %t306, %S.ast.Node %t307, { ptr, i64, i64 } %t308, %S.ast.Type %t309) - store %S.gen.Val %t310, ptr %a311 - %t312 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 0 - %t313 = load i1, ptr %t312 - %t314 = xor i1 %t313, true - br label %logic.from8290 -logic.from8290: - br i1 %t314, label %logic.rhs8291, label %logic.end8292 -logic.rhs8291: - %t315 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 2 - %t316 = getelementptr inbounds %S.gen.Val, ptr %t315, i32 0, i32 2 - %t317 = load i1, ptr %t316 - br label %logic.rend8293 -logic.rend8293: - br label %logic.end8292 -logic.end8292: - %t318 = phi i1 [ false, %logic.from8290 ], [ %t317, %logic.rend8293 ] - br i1 %t318, label %then8294, label %endif8296 -then8294: +ok8671: + %t263 = getelementptr inbounds %S.gen.Gen, ptr %t261, i32 0, i32 11 + %t264 = getelementptr inbounds { ptr, i64, i64 }, ptr %t263, i32 0, i32 1 + %t265 = load i64, ptr %t264 + store i64 %t265, ptr %a266 + %t267 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 2 + %t268 = getelementptr inbounds %S.gen.Val, ptr %t267, i32 0, i32 1 + %t269 = load %S.ast.Type, ptr %t268 + store %S.ast.Type %t269, ptr %a270 + call void @finch.copy.S_ast_Type(ptr %a271, ptr %a270) + %t272 = load %S.ast.Type, ptr %a271 + store %S.ast.Type %t272, ptr %a273 + %t274 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 0 + %t275 = load i1, ptr %t274 + br i1 %t275, label %then8672, label %endif8674 +then8672: + %t276 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 1 + %t277 = getelementptr inbounds %S.gen.Place, ptr %t276, i32 0, i32 1 + %t278 = load %S.ast.Type, ptr %t277 + store %S.ast.Type %t278, ptr %a279 + call void @finch.copy.S_ast_Type(ptr %a280, ptr %a279) + %t281 = load %S.ast.Type, ptr %a280 + %t282 = load %S.ast.Type, ptr %a273 + store %S.ast.Type %t281, ptr %a273 + store %S.ast.Type %t282, ptr %a283 + call void @finch.drop.S_ast_Type(ptr %a283) + br label %endif8674 +endif8674: + %t284 = getelementptr inbounds %S.ast.Type, ptr %a273, i32 0, i32 0 + %t285 = load { ptr, i64, i64 }, ptr %t284 + store { ptr, i64, i64 } %t285, ptr %a286 + store { ptr, i64, i64 } { ptr @.str.5612, i64 5, i64 0 }, ptr %a287 + %t288 = call i32 @finch_str_eq(ptr %a286, ptr %a287) + %t289 = icmp ne i32 %t288, 0 + br i1 %t289, label %then8675, label %endif8677 +then8675: + store { ptr, i64, i64 } { ptr @.str.5613, i64 0, i64 0 }, ptr %a290 + %t291 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 0 + %t292 = load i1, ptr %t291 + br i1 %t292, label %then8678, label %else8679 +then8678: + %t293 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 1 + %t294 = getelementptr inbounds %S.gen.Place, ptr %t293, i32 0, i32 0 + %t295 = load { ptr, i64, i64 }, ptr %t294 + store { ptr, i64, i64 } %t295, ptr %a296 + call void @finch_str_copy(ptr %a297, ptr %a296) + %t298 = load { ptr, i64, i64 }, ptr %a297 + %t299 = load { ptr, i64, i64 }, ptr %a290 + store { ptr, i64, i64 } %t298, ptr %a290 + store { ptr, i64, i64 } %t299, ptr %a300 + call void @finch_str_drop(ptr %a300) + br label %endif8680 +else8679: + %t301 = getelementptr inbounds { ptr, i64, i64 }, ptr %a238, i32 0, i32 1 + %t302 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t303 = load { ptr, i64, i64 }, ptr %t302 + store i64 -1, ptr %a304 + %t305 = load i64, ptr %t301 + %t306 = load ptr, ptr %a238 + store i64 0, ptr %a307 + br label %find.cond8681 +find.cond8681: + %t308 = load i64, ptr %a307 + %t309 = icmp slt i64 %t308, %t305 + br i1 %t309, label %find.body8682, label %find.end8685 +find.body8682: + %t310 = getelementptr inbounds { ptr, i64, i64 }, ptr %t306, i64 %t308 + %t311 = load { ptr, i64, i64 }, ptr %t310 + store { ptr, i64, i64 } %t311, ptr %a312 + store { ptr, i64, i64 } %t303, ptr %a313 + %t314 = call i32 @finch_str_eq(ptr %a312, ptr %a313) + %t315 = icmp ne i32 %t314, 0 + br i1 %t315, label %find.hit8683, label %find.next8684 +find.hit8683: + store i64 %t308, ptr %a304 + br label %find.end8685 +find.next8684: + %t316 = add i64 %t308, 1 + store i64 %t316, ptr %a307 + br label %find.cond8681 +find.end8685: + %t317 = load i64, ptr %a304 + %t318 = icmp sge i64 %t317, 0 + br i1 %t318, label %then8686, label %endif8688 +then8686: %t319 = load ptr, ptr %a1 - %t320 = load { ptr, i64, i64 }, ptr %a252 - %t321 = load %S.ast.Type, ptr %a235 - call void @finch.gen.dropAt(ptr %t319, { ptr, i64, i64 } %t320, %S.ast.Type %t321) - br label %endif8296 -endif8296: - %t322 = load ptr, ptr %a1 - %t323 = load i64, ptr %a228 - call void @finch.gen.heldEnd(ptr %t322, i64 %t323) - %t324 = load %S.gen.Val, ptr %a311 - call void @finch_str_drop(ptr %a252) - call void @finch.drop.S_ast_Type(ptr %a235) - call void @finch.drop.S_gen_Ref(ptr %a222) - call void @finch.drop.arr_str(ptr %a200) - call void @finch.drop.S_ast_Node(ptr %a13) - ret %S.gen.Val %t324 -endif8275: - %t325 = getelementptr inbounds %S.ast.Type, ptr %a235, i32 0, i32 0 - %t326 = load { ptr, i64, i64 }, ptr %t325 + %t320 = load %S.ast.Node, ptr %a2 + %t321 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t322 = load { ptr, i64, i64 }, ptr %t321 + store { ptr, i64, i64 } %t322, ptr %a324 + store { ptr, i64, i64 } { ptr @.str.5614, i64 63, i64 0 }, ptr %a325 + call void @finch_str_concat(ptr %a323, ptr %a324, ptr %a325) + %t326 = load { ptr, i64, i64 }, ptr %a323 + call void @finch.gen.fail(ptr %t319, %S.ast.Node %t320, { ptr, i64, i64 } %t326) store { ptr, i64, i64 } %t326, ptr %a327 - store { ptr, i64, i64 } { ptr @.str.5407, i64 3, i64 0 }, ptr %a328 - %t329 = call i32 @finch_str_eq(ptr %a327, ptr %a328) - %t330 = icmp ne i32 %t329, 0 - br i1 %t330, label %then8297, label %endif8299 -then8297: - %t331 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 2 - %t332 = load %S.gen.Val, ptr %t331 - store %S.gen.Val %t332, ptr %a333 - call void @finch.copy.S_gen_Val(ptr %a334, ptr %a333) - %t335 = load %S.gen.Val, ptr %a334 - store %S.gen.Val %t335, ptr %a336 - %t337 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 0 - %t338 = load i1, ptr %t337 - br i1 %t338, label %then8300, label %endif8302 -then8300: - %t339 = load ptr, ptr %a1 - %t340 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 1 - %t341 = getelementptr inbounds %S.gen.Place, ptr %t340, i32 0, i32 0 - %t342 = load { ptr, i64, i64 }, ptr %t341 - %t343 = call { ptr, i64, i64 } @finch.gen.load(ptr %t339, { ptr, i64, i64 } { ptr @.str.5408, i64 17, i64 0 }, { ptr, i64, i64 } %t342) - %t344 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t343, 0 - %t345 = load %S.ast.Type, ptr %a235 - store %S.ast.Type %t345, ptr %a346 - call void @finch.copy.S_ast_Type(ptr %a347, ptr %a346) - %t348 = load %S.ast.Type, ptr %a347 - %t349 = insertvalue %S.gen.Val %t344, %S.ast.Type %t348, 1 - %t350 = load %S.gen.Val, ptr %a336 - store %S.gen.Val %t349, ptr %a336 - store %S.gen.Val %t350, ptr %a351 - call void @finch.drop.S_gen_Val(ptr %a351) - br label %endif8302 -endif8302: - %t352 = load ptr, ptr %a1 - %t353 = load %S.ast.Node, ptr %a2 - %t354 = call { ptr, i64, i64 } @finch.docs.strMethods() - call void @finch.gen.noteMethod(ptr %t352, %S.ast.Node %t353, { ptr, i64, i64 } %t354) - store { ptr, i64, i64 } %t354, ptr %a355 - call void @finch.drop.arr_S_docs_Doc(ptr %a355) - %t356 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 0 - %t357 = load i1, ptr %t356 - %t358 = xor i1 %t357, true - br i1 %t358, label %then8303, label %endif8305 -then8303: - %t359 = load ptr, ptr %a1 - %t360 = load %S.gen.Val, ptr %a336 - call void @finch.gen.hold(ptr %t359, %S.gen.Val %t360) - br label %endif8305 -endif8305: - %t361 = load ptr, ptr %a1 - %t362 = load %S.ast.Node, ptr %a2 - %t363 = load ptr, ptr %a1 - %t364 = load %S.gen.Val, ptr %a336 - %t365 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t363, %S.gen.Val %t364) - %t366 = call %S.gen.Val @finch.gen.strMethod(ptr %t361, %S.ast.Node %t362, { ptr, i64, i64 } %t365) - store { ptr, i64, i64 } %t365, ptr %a367 - call void @finch_str_drop(ptr %a367) - store %S.gen.Val %t366, ptr %a368 - %t369 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 0 - %t370 = load i1, ptr %t369 - %t371 = xor i1 %t370, true - br i1 %t371, label %then8306, label %endif8308 -then8306: - %t372 = load ptr, ptr %a1 - %t373 = load %S.gen.Val, ptr %a336 - call void @finch.gen.release(ptr %t372, %S.gen.Val %t373) - br label %endif8308 -endif8308: - %t374 = load ptr, ptr %a1 - %t375 = load i64, ptr %a228 - call void @finch.gen.heldEnd(ptr %t374, i64 %t375) - %t376 = load %S.gen.Val, ptr %a368 - call void @finch.drop.S_gen_Val(ptr %a336) - call void @finch.drop.S_ast_Type(ptr %a235) - call void @finch.drop.S_gen_Ref(ptr %a222) - call void @finch.drop.arr_str(ptr %a200) + call void @finch_str_drop(ptr %a327) + br label %endif8688 +endif8688: + %t328 = load ptr, ptr %a1 + %t329 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 2 + %t330 = load %S.gen.Val, ptr %t329 + %t331 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t328, %S.gen.Val %t330) + %t332 = load { ptr, i64, i64 }, ptr %a290 + store { ptr, i64, i64 } %t331, ptr %a290 + store { ptr, i64, i64 } %t332, ptr %a333 + call void @finch_str_drop(ptr %a333) + %t334 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 2 + %t335 = getelementptr inbounds %S.gen.Val, ptr %t334, i32 0, i32 2 + %t336 = load i1, ptr %t335 + br i1 %t336, label %then8689, label %endif8691 +then8689: + %t337 = load ptr, ptr %a1 + %t338 = load { ptr, i64, i64 }, ptr %a290 + %t339 = load %S.ast.Type, ptr %a273 + call void @finch.gen.holdAddr(ptr %t337, { ptr, i64, i64 } %t338, %S.ast.Type %t339) + br label %endif8691 +endif8691: + br label %endif8680 +endif8680: + %t340 = load ptr, ptr %a1 + %t341 = load %S.ast.Node, ptr %a2 + %t342 = call { ptr, i64, i64 } @finch.docs.arrayMethods() + call void @finch.gen.noteMethod(ptr %t340, %S.ast.Node %t341, { ptr, i64, i64 } %t342) + store { ptr, i64, i64 } %t342, ptr %a343 + call void @finch.drop.arr_S_docs_Doc(ptr %a343) + %t344 = load ptr, ptr %a1 + %t345 = load %S.ast.Node, ptr %a2 + %t346 = load { ptr, i64, i64 }, ptr %a290 + %t347 = load %S.ast.Type, ptr %a273 + %t348 = call %S.gen.Val @finch.gen.arrayMethod(ptr %t344, %S.ast.Node %t345, { ptr, i64, i64 } %t346, %S.ast.Type %t347) + store %S.gen.Val %t348, ptr %a349 + %t350 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 0 + %t351 = load i1, ptr %t350 + %t352 = xor i1 %t351, true + br label %logic.from8692 +logic.from8692: + br i1 %t352, label %logic.rhs8693, label %logic.end8694 +logic.rhs8693: + %t353 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 2 + %t354 = getelementptr inbounds %S.gen.Val, ptr %t353, i32 0, i32 2 + %t355 = load i1, ptr %t354 + br label %logic.rend8695 +logic.rend8695: + br label %logic.end8694 +logic.end8694: + %t356 = phi i1 [ false, %logic.from8692 ], [ %t355, %logic.rend8695 ] + br i1 %t356, label %then8696, label %endif8698 +then8696: + %t357 = load ptr, ptr %a1 + %t358 = load { ptr, i64, i64 }, ptr %a290 + %t359 = load %S.ast.Type, ptr %a273 + call void @finch.gen.dropAt(ptr %t357, { ptr, i64, i64 } %t358, %S.ast.Type %t359) + br label %endif8698 +endif8698: + %t360 = load ptr, ptr %a1 + %t361 = load i64, ptr %a266 + call void @finch.gen.heldEnd(ptr %t360, i64 %t361) + %t362 = load %S.gen.Val, ptr %a349 + call void @finch_str_drop(ptr %a290) + call void @finch.drop.S_ast_Type(ptr %a273) + call void @finch.drop.S_gen_Ref(ptr %a260) + call void @finch.drop.arr_str(ptr %a238) call void @finch.drop.S_ast_Node(ptr %a13) - ret %S.gen.Val %t376 -endif8299: - %t377 = getelementptr inbounds %S.ast.Type, ptr %a235, i32 0, i32 0 - %t378 = load { ptr, i64, i64 }, ptr %t377 - store { ptr, i64, i64 } %t378, ptr %a379 - store { ptr, i64, i64 } { ptr @.str.5409, i64 3, i64 0 }, ptr %a380 - %t381 = call i32 @finch_str_eq(ptr %a379, ptr %a380) - %t382 = icmp ne i32 %t381, 0 - br i1 %t382, label %then8309, label %endif8311 -then8309: - store { ptr, i64, i64 } { ptr @.str.5410, i64 0, i64 0 }, ptr %a383 - %t384 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 0 - %t385 = load i1, ptr %t384 - br i1 %t385, label %then8312, label %else8313 -then8312: - %t386 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 1 - %t387 = getelementptr inbounds %S.gen.Place, ptr %t386, i32 0, i32 0 - %t388 = load { ptr, i64, i64 }, ptr %t387 - store { ptr, i64, i64 } %t388, ptr %a389 - call void @finch_str_copy(ptr %a390, ptr %a389) - %t391 = load { ptr, i64, i64 }, ptr %a390 - %t392 = load { ptr, i64, i64 }, ptr %a383 - store { ptr, i64, i64 } %t391, ptr %a383 + ret %S.gen.Val %t362 +endif8677: + %t363 = getelementptr inbounds %S.ast.Type, ptr %a273, i32 0, i32 0 + %t364 = load { ptr, i64, i64 }, ptr %t363 + store { ptr, i64, i64 } %t364, ptr %a365 + store { ptr, i64, i64 } { ptr @.str.5615, i64 3, i64 0 }, ptr %a366 + %t367 = call i32 @finch_str_eq(ptr %a365, ptr %a366) + %t368 = icmp ne i32 %t367, 0 + br i1 %t368, label %then8699, label %endif8701 +then8699: + %t369 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 2 + %t370 = load %S.gen.Val, ptr %t369 + store %S.gen.Val %t370, ptr %a371 + call void @finch.copy.S_gen_Val(ptr %a372, ptr %a371) + %t373 = load %S.gen.Val, ptr %a372 + store %S.gen.Val %t373, ptr %a374 + %t375 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 0 + %t376 = load i1, ptr %t375 + br i1 %t376, label %then8702, label %endif8704 +then8702: + %t377 = load ptr, ptr %a1 + %t378 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 1 + %t379 = getelementptr inbounds %S.gen.Place, ptr %t378, i32 0, i32 0 + %t380 = load { ptr, i64, i64 }, ptr %t379 + %t381 = call { ptr, i64, i64 } @finch.gen.load(ptr %t377, { ptr, i64, i64 } { ptr @.str.5616, i64 17, i64 0 }, { ptr, i64, i64 } %t380) + %t382 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t381, 0 + %t383 = load %S.ast.Type, ptr %a273 + store %S.ast.Type %t383, ptr %a384 + call void @finch.copy.S_ast_Type(ptr %a385, ptr %a384) + %t386 = load %S.ast.Type, ptr %a385 + %t387 = insertvalue %S.gen.Val %t382, %S.ast.Type %t386, 1 + %t388 = load %S.gen.Val, ptr %a374 + store %S.gen.Val %t387, ptr %a374 + store %S.gen.Val %t388, ptr %a389 + call void @finch.drop.S_gen_Val(ptr %a389) + br label %endif8704 +endif8704: + %t390 = load ptr, ptr %a1 + %t391 = load %S.ast.Node, ptr %a2 + %t392 = call { ptr, i64, i64 } @finch.docs.strMethods() + call void @finch.gen.noteMethod(ptr %t390, %S.ast.Node %t391, { ptr, i64, i64 } %t392) store { ptr, i64, i64 } %t392, ptr %a393 - call void @finch_str_drop(ptr %a393) - br label %endif8314 -else8313: - %t394 = getelementptr inbounds { ptr, i64, i64 }, ptr %a200, i32 0, i32 1 - %t395 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t396 = load { ptr, i64, i64 }, ptr %t395 - store i64 -1, ptr %a397 - %t398 = load i64, ptr %t394 - %t399 = load ptr, ptr %a200 - store i64 0, ptr %a400 - br label %find.cond8315 -find.cond8315: - %t401 = load i64, ptr %a400 - %t402 = icmp slt i64 %t401, %t398 - br i1 %t402, label %find.body8316, label %find.end8319 -find.body8316: - %t403 = getelementptr inbounds { ptr, i64, i64 }, ptr %t399, i64 %t401 - %t404 = load { ptr, i64, i64 }, ptr %t403 - store { ptr, i64, i64 } %t404, ptr %a405 - store { ptr, i64, i64 } %t396, ptr %a406 - %t407 = call i32 @finch_str_eq(ptr %a405, ptr %a406) - %t408 = icmp ne i32 %t407, 0 - br i1 %t408, label %find.hit8317, label %find.next8318 -find.hit8317: - store i64 %t401, ptr %a397 - br label %find.end8319 -find.next8318: - %t409 = add i64 %t401, 1 - store i64 %t409, ptr %a400 - br label %find.cond8315 -find.end8319: - %t410 = load i64, ptr %a397 - %t411 = icmp sge i64 %t410, 0 - br i1 %t411, label %then8320, label %endif8322 -then8320: + call void @finch.drop.arr_S_docs_Doc(ptr %a393) + %t394 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 0 + %t395 = load i1, ptr %t394 + %t396 = xor i1 %t395, true + br i1 %t396, label %then8705, label %endif8707 +then8705: + %t397 = load ptr, ptr %a1 + %t398 = load %S.gen.Val, ptr %a374 + call void @finch.gen.hold(ptr %t397, %S.gen.Val %t398) + br label %endif8707 +endif8707: + %t399 = load ptr, ptr %a1 + %t400 = load %S.ast.Node, ptr %a2 + %t401 = load ptr, ptr %a1 + %t402 = load %S.gen.Val, ptr %a374 + %t403 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t401, %S.gen.Val %t402) + %t404 = call %S.gen.Val @finch.gen.strMethod(ptr %t399, %S.ast.Node %t400, { ptr, i64, i64 } %t403) + store { ptr, i64, i64 } %t403, ptr %a405 + call void @finch_str_drop(ptr %a405) + store %S.gen.Val %t404, ptr %a406 + %t407 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 0 + %t408 = load i1, ptr %t407 + %t409 = xor i1 %t408, true + br i1 %t409, label %then8708, label %endif8710 +then8708: + %t410 = load ptr, ptr %a1 + %t411 = load %S.gen.Val, ptr %a374 + call void @finch.gen.release(ptr %t410, %S.gen.Val %t411) + br label %endif8710 +endif8710: %t412 = load ptr, ptr %a1 - %t413 = load %S.ast.Node, ptr %a2 - %t414 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t415 = load { ptr, i64, i64 }, ptr %t414 - store { ptr, i64, i64 } %t415, ptr %a417 - store { ptr, i64, i64 } { ptr @.str.5411, i64 61, i64 0 }, ptr %a418 - call void @finch_str_concat(ptr %a416, ptr %a417, ptr %a418) - %t419 = load { ptr, i64, i64 }, ptr %a416 - call void @finch.gen.fail(ptr %t412, %S.ast.Node %t413, { ptr, i64, i64 } %t419) - store { ptr, i64, i64 } %t419, ptr %a420 - call void @finch_str_drop(ptr %a420) - br label %endif8322 -endif8322: - %t421 = load ptr, ptr %a1 - %t422 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 2 - %t423 = load %S.gen.Val, ptr %t422 - %t424 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t421, %S.gen.Val %t423) - %t425 = load { ptr, i64, i64 }, ptr %a383 - store { ptr, i64, i64 } %t424, ptr %a383 - store { ptr, i64, i64 } %t425, ptr %a426 - call void @finch_str_drop(ptr %a426) - %t427 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 2 - %t428 = getelementptr inbounds %S.gen.Val, ptr %t427, i32 0, i32 2 - %t429 = load i1, ptr %t428 - br i1 %t429, label %then8323, label %endif8325 -then8323: - %t430 = load ptr, ptr %a1 - %t431 = load { ptr, i64, i64 }, ptr %a383 - %t432 = load %S.ast.Type, ptr %a235 - call void @finch.gen.holdAddr(ptr %t430, { ptr, i64, i64 } %t431, %S.ast.Type %t432) - br label %endif8325 -endif8325: - br label %endif8314 -endif8314: - %t433 = load ptr, ptr %a1 - %t434 = load %S.ast.Node, ptr %a2 - %t435 = call { ptr, i64, i64 } @finch.docs.mapMethods() - call void @finch.gen.noteMethod(ptr %t433, %S.ast.Node %t434, { ptr, i64, i64 } %t435) - store { ptr, i64, i64 } %t435, ptr %a436 - call void @finch.drop.arr_S_docs_Doc(ptr %a436) - %t437 = load ptr, ptr %a1 - %t438 = load %S.ast.Node, ptr %a2 - %t439 = load { ptr, i64, i64 }, ptr %a383 - %t440 = load %S.ast.Type, ptr %a235 - %t441 = call %S.gen.Val @finch.gen.mapMethod(ptr %t437, %S.ast.Node %t438, { ptr, i64, i64 } %t439, %S.ast.Type %t440) - store %S.gen.Val %t441, ptr %a442 - %t443 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 0 - %t444 = load i1, ptr %t443 - %t445 = xor i1 %t444, true - br label %logic.from8326 -logic.from8326: - br i1 %t445, label %logic.rhs8327, label %logic.end8328 -logic.rhs8327: - %t446 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 2 - %t447 = getelementptr inbounds %S.gen.Val, ptr %t446, i32 0, i32 2 - %t448 = load i1, ptr %t447 - br label %logic.rend8329 -logic.rend8329: - br label %logic.end8328 -logic.end8328: - %t449 = phi i1 [ false, %logic.from8326 ], [ %t448, %logic.rend8329 ] - br i1 %t449, label %then8330, label %endif8332 -then8330: - %t450 = load ptr, ptr %a1 - %t451 = load { ptr, i64, i64 }, ptr %a383 - %t452 = load %S.ast.Type, ptr %a235 - call void @finch.gen.dropAt(ptr %t450, { ptr, i64, i64 } %t451, %S.ast.Type %t452) - br label %endif8332 -endif8332: - %t453 = load ptr, ptr %a1 - %t454 = load i64, ptr %a228 - call void @finch.gen.heldEnd(ptr %t453, i64 %t454) - %t455 = load %S.gen.Val, ptr %a442 - call void @finch_str_drop(ptr %a383) - call void @finch.drop.S_ast_Type(ptr %a235) - call void @finch.drop.S_gen_Ref(ptr %a222) - call void @finch.drop.arr_str(ptr %a200) + %t413 = load i64, ptr %a266 + call void @finch.gen.heldEnd(ptr %t412, i64 %t413) + %t414 = load %S.gen.Val, ptr %a406 + call void @finch.drop.S_gen_Val(ptr %a374) + call void @finch.drop.S_ast_Type(ptr %a273) + call void @finch.drop.S_gen_Ref(ptr %a260) + call void @finch.drop.arr_str(ptr %a238) call void @finch.drop.S_ast_Node(ptr %a13) - ret %S.gen.Val %t455 -endif8311: - %t456 = load ptr, ptr %a1 - %t457 = load i64, ptr %a228 - call void @finch.gen.heldEnd(ptr %t456, i64 %t457) - %t458 = load %S.ast.Type, ptr %a235 - store %S.ast.Type %t458, ptr %a459 - call void @finch.copy.S_ast_Type(ptr %a460, ptr %a459) - %t461 = load %S.ast.Type, ptr %a460 - store %S.ast.Type %t461, ptr %a462 - store { ptr, i64, i64 } { ptr @.str.5412, i64 0, i64 0 }, ptr %a463 - store i1 false, ptr %a464 - %t465 = getelementptr inbounds %S.ast.Type, ptr %a235, i32 0, i32 0 - %t466 = load { ptr, i64, i64 }, ptr %t465 - store { ptr, i64, i64 } %t466, ptr %a467 - store { ptr, i64, i64 } { ptr @.str.5413, i64 3, i64 0 }, ptr %a468 - %t469 = call i32 @finch_str_eq(ptr %a467, ptr %a468) - %t470 = icmp ne i32 %t469, 0 - br label %logic.from8333 -logic.from8333: - br i1 %t470, label %logic.rhs8334, label %logic.end8335 -logic.rhs8334: - %t471 = getelementptr inbounds %S.ast.Type, ptr %a235, i32 0, i32 1 - %t472 = getelementptr inbounds { ptr, i64, i64 }, ptr %t471, i32 0, i32 1 - %t473 = load i64, ptr %t472 - %t474 = icmp sgt i64 %t473, 0 - br label %logic.rend8336 -logic.rend8336: - br label %logic.end8335 -logic.end8335: - %t475 = phi i1 [ false, %logic.from8333 ], [ %t474, %logic.rend8336 ] - br label %logic.from8337 -logic.from8337: - br i1 %t475, label %logic.rhs8338, label %logic.end8339 -logic.rhs8338: - %t476 = getelementptr inbounds %S.ast.Type, ptr %a235, i32 0, i32 1 - %t477 = load { ptr, i64, i64 }, ptr %t476 - %t478 = extractvalue { ptr, i64, i64 } %t477, 1 - %t479 = icmp uge i64 0, %t478 - br i1 %t479, label %range8340, label %inrange8341 -range8340: - call void @finch_panic_index(ptr @.str.5414, i64 5098, i64 0, i64 %t478) + ret %S.gen.Val %t414 +endif8701: + %t415 = getelementptr inbounds %S.ast.Type, ptr %a273, i32 0, i32 0 + %t416 = load { ptr, i64, i64 }, ptr %t415 + store { ptr, i64, i64 } %t416, ptr %a417 + store { ptr, i64, i64 } { ptr @.str.5617, i64 3, i64 0 }, ptr %a418 + %t419 = call i32 @finch_str_eq(ptr %a417, ptr %a418) + %t420 = icmp ne i32 %t419, 0 + br i1 %t420, label %then8711, label %endif8713 +then8711: + store { ptr, i64, i64 } { ptr @.str.5618, i64 0, i64 0 }, ptr %a421 + %t422 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 0 + %t423 = load i1, ptr %t422 + br i1 %t423, label %then8714, label %else8715 +then8714: + %t424 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 1 + %t425 = getelementptr inbounds %S.gen.Place, ptr %t424, i32 0, i32 0 + %t426 = load { ptr, i64, i64 }, ptr %t425 + store { ptr, i64, i64 } %t426, ptr %a427 + call void @finch_str_copy(ptr %a428, ptr %a427) + %t429 = load { ptr, i64, i64 }, ptr %a428 + %t430 = load { ptr, i64, i64 }, ptr %a421 + store { ptr, i64, i64 } %t429, ptr %a421 + store { ptr, i64, i64 } %t430, ptr %a431 + call void @finch_str_drop(ptr %a431) + br label %endif8716 +else8715: + %t432 = getelementptr inbounds { ptr, i64, i64 }, ptr %a238, i32 0, i32 1 + %t433 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t434 = load { ptr, i64, i64 }, ptr %t433 + store i64 -1, ptr %a435 + %t436 = load i64, ptr %t432 + %t437 = load ptr, ptr %a238 + store i64 0, ptr %a438 + br label %find.cond8717 +find.cond8717: + %t439 = load i64, ptr %a438 + %t440 = icmp slt i64 %t439, %t436 + br i1 %t440, label %find.body8718, label %find.end8721 +find.body8718: + %t441 = getelementptr inbounds { ptr, i64, i64 }, ptr %t437, i64 %t439 + %t442 = load { ptr, i64, i64 }, ptr %t441 + store { ptr, i64, i64 } %t442, ptr %a443 + store { ptr, i64, i64 } %t434, ptr %a444 + %t445 = call i32 @finch_str_eq(ptr %a443, ptr %a444) + %t446 = icmp ne i32 %t445, 0 + br i1 %t446, label %find.hit8719, label %find.next8720 +find.hit8719: + store i64 %t439, ptr %a435 + br label %find.end8721 +find.next8720: + %t447 = add i64 %t439, 1 + store i64 %t447, ptr %a438 + br label %find.cond8717 +find.end8721: + %t448 = load i64, ptr %a435 + %t449 = icmp sge i64 %t448, 0 + br i1 %t449, label %then8722, label %endif8724 +then8722: + %t450 = load ptr, ptr %a1 + %t451 = load %S.ast.Node, ptr %a2 + %t452 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t453 = load { ptr, i64, i64 }, ptr %t452 + store { ptr, i64, i64 } %t453, ptr %a455 + store { ptr, i64, i64 } { ptr @.str.5619, i64 61, i64 0 }, ptr %a456 + call void @finch_str_concat(ptr %a454, ptr %a455, ptr %a456) + %t457 = load { ptr, i64, i64 }, ptr %a454 + call void @finch.gen.fail(ptr %t450, %S.ast.Node %t451, { ptr, i64, i64 } %t457) + store { ptr, i64, i64 } %t457, ptr %a458 + call void @finch_str_drop(ptr %a458) + br label %endif8724 +endif8724: + %t459 = load ptr, ptr %a1 + %t460 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 2 + %t461 = load %S.gen.Val, ptr %t460 + %t462 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t459, %S.gen.Val %t461) + %t463 = load { ptr, i64, i64 }, ptr %a421 + store { ptr, i64, i64 } %t462, ptr %a421 + store { ptr, i64, i64 } %t463, ptr %a464 + call void @finch_str_drop(ptr %a464) + %t465 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 2 + %t466 = getelementptr inbounds %S.gen.Val, ptr %t465, i32 0, i32 2 + %t467 = load i1, ptr %t466 + br i1 %t467, label %then8725, label %endif8727 +then8725: + %t468 = load ptr, ptr %a1 + %t469 = load { ptr, i64, i64 }, ptr %a421 + %t470 = load %S.ast.Type, ptr %a273 + call void @finch.gen.holdAddr(ptr %t468, { ptr, i64, i64 } %t469, %S.ast.Type %t470) + br label %endif8727 +endif8727: + br label %endif8716 +endif8716: + %t471 = load ptr, ptr %a1 + %t472 = load %S.ast.Node, ptr %a2 + %t473 = call { ptr, i64, i64 } @finch.docs.mapMethods() + call void @finch.gen.noteMethod(ptr %t471, %S.ast.Node %t472, { ptr, i64, i64 } %t473) + store { ptr, i64, i64 } %t473, ptr %a474 + call void @finch.drop.arr_S_docs_Doc(ptr %a474) + %t475 = load ptr, ptr %a1 + %t476 = load %S.ast.Node, ptr %a2 + %t477 = load { ptr, i64, i64 }, ptr %a421 + %t478 = load %S.ast.Type, ptr %a273 + %t479 = call %S.gen.Val @finch.gen.mapMethod(ptr %t475, %S.ast.Node %t476, { ptr, i64, i64 } %t477, %S.ast.Type %t478) + store %S.gen.Val %t479, ptr %a480 + %t481 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 0 + %t482 = load i1, ptr %t481 + %t483 = xor i1 %t482, true + br label %logic.from8728 +logic.from8728: + br i1 %t483, label %logic.rhs8729, label %logic.end8730 +logic.rhs8729: + %t484 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 2 + %t485 = getelementptr inbounds %S.gen.Val, ptr %t484, i32 0, i32 2 + %t486 = load i1, ptr %t485 + br label %logic.rend8731 +logic.rend8731: + br label %logic.end8730 +logic.end8730: + %t487 = phi i1 [ false, %logic.from8728 ], [ %t486, %logic.rend8731 ] + br i1 %t487, label %then8732, label %endif8734 +then8732: + %t488 = load ptr, ptr %a1 + %t489 = load { ptr, i64, i64 }, ptr %a421 + %t490 = load %S.ast.Type, ptr %a273 + call void @finch.gen.dropAt(ptr %t488, { ptr, i64, i64 } %t489, %S.ast.Type %t490) + br label %endif8734 +endif8734: + %t491 = load ptr, ptr %a1 + %t492 = load i64, ptr %a266 + call void @finch.gen.heldEnd(ptr %t491, i64 %t492) + %t493 = load %S.gen.Val, ptr %a480 + call void @finch_str_drop(ptr %a421) + call void @finch.drop.S_ast_Type(ptr %a273) + call void @finch.drop.S_gen_Ref(ptr %a260) + call void @finch.drop.arr_str(ptr %a238) + call void @finch.drop.S_ast_Node(ptr %a13) + ret %S.gen.Val %t493 +endif8713: + %t494 = load ptr, ptr %a1 + %t495 = load i64, ptr %a266 + call void @finch.gen.heldEnd(ptr %t494, i64 %t495) + %t496 = load %S.ast.Type, ptr %a273 + store %S.ast.Type %t496, ptr %a497 + call void @finch.copy.S_ast_Type(ptr %a498, ptr %a497) + %t499 = load %S.ast.Type, ptr %a498 + store %S.ast.Type %t499, ptr %a500 + store { ptr, i64, i64 } { ptr @.str.5620, i64 0, i64 0 }, ptr %a501 + store i1 false, ptr %a502 + %t503 = getelementptr inbounds %S.ast.Type, ptr %a273, i32 0, i32 0 + %t504 = load { ptr, i64, i64 }, ptr %t503 + store { ptr, i64, i64 } %t504, ptr %a505 + store { ptr, i64, i64 } { ptr @.str.5621, i64 3, i64 0 }, ptr %a506 + %t507 = call i32 @finch_str_eq(ptr %a505, ptr %a506) + %t508 = icmp ne i32 %t507, 0 + br label %logic.from8735 +logic.from8735: + br i1 %t508, label %logic.rhs8736, label %logic.end8737 +logic.rhs8736: + %t509 = getelementptr inbounds %S.ast.Type, ptr %a273, i32 0, i32 1 + %t510 = getelementptr inbounds { ptr, i64, i64 }, ptr %t509, i32 0, i32 1 + %t511 = load i64, ptr %t510 + %t512 = icmp sgt i64 %t511, 0 + br label %logic.rend8738 +logic.rend8738: + br label %logic.end8737 +logic.end8737: + %t513 = phi i1 [ false, %logic.from8735 ], [ %t512, %logic.rend8738 ] + br label %logic.from8739 +logic.from8739: + br i1 %t513, label %logic.rhs8740, label %logic.end8741 +logic.rhs8740: + %t514 = getelementptr inbounds %S.ast.Type, ptr %a273, i32 0, i32 1 + %t515 = load { ptr, i64, i64 }, ptr %t514 + %t516 = extractvalue { ptr, i64, i64 } %t515, 1 + %t517 = icmp uge i64 0, %t516 + br i1 %t517, label %range8742, label %inrange8743 +range8742: + call void @finch_panic_index(ptr @.str.5622, i64 5333, i64 0, i64 %t516) unreachable -inrange8341: - %t480 = extractvalue { ptr, i64, i64 } %t477, 0 - %t481 = getelementptr inbounds %S.ast.Type, ptr %t480, i64 0 - %t482 = getelementptr inbounds %S.ast.Type, ptr %t481, i32 0, i32 0 - %t483 = load { ptr, i64, i64 }, ptr %t482 - store { ptr, i64, i64 } %t483, ptr %a484 - store { ptr, i64, i64 } { ptr @.str.5415, i64 6, i64 0 }, ptr %a485 - %t486 = call i32 @finch_str_eq(ptr %a484, ptr %a485) - %t487 = icmp ne i32 %t486, 0 - br label %logic.rend8342 -logic.rend8342: - br label %logic.end8339 -logic.end8339: - %t488 = phi i1 [ false, %logic.from8337 ], [ %t487, %logic.rend8342 ] - br i1 %t488, label %then8343, label %else8344 -then8343: - %t489 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 2 - %t490 = getelementptr inbounds %S.gen.Val, ptr %t489, i32 0, i32 0 - %t491 = load { ptr, i64, i64 }, ptr %t490 - store { ptr, i64, i64 } %t491, ptr %a492 - call void @finch_str_copy(ptr %a493, ptr %a492) - %t494 = load { ptr, i64, i64 }, ptr %a493 - store { ptr, i64, i64 } %t494, ptr %a495 - %t496 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 0 - %t497 = load i1, ptr %t496 - br i1 %t497, label %then8346, label %endif8348 -then8346: - %t498 = load ptr, ptr %a1 - %t499 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 1 - %t500 = getelementptr inbounds %S.gen.Place, ptr %t499, i32 0, i32 0 - %t501 = load { ptr, i64, i64 }, ptr %t500 - %t502 = call { ptr, i64, i64 } @finch.gen.load(ptr %t498, { ptr, i64, i64 } { ptr @.str.5416, i64 3, i64 0 }, { ptr, i64, i64 } %t501) - %t503 = load { ptr, i64, i64 }, ptr %a495 - store { ptr, i64, i64 } %t502, ptr %a495 - store { ptr, i64, i64 } %t503, ptr %a504 - call void @finch_str_drop(ptr %a504) - br label %endif8348 -endif8348: - %t505 = load ptr, ptr %a1 - %t506 = load ptr, ptr %a1 - %t507 = load { ptr, i64, i64 }, ptr %a495 - store { ptr, i64, i64 } { ptr @.str.5417, i64 12, i64 0 }, ptr %a509 - store { ptr, i64, i64 } %t507, ptr %a510 - call void @finch_str_concat(ptr %a508, ptr %a509, ptr %a510) - %t511 = load { ptr, i64, i64 }, ptr %a508 - store { ptr, i64, i64 } %t511, ptr %a513 - store { ptr, i64, i64 } { ptr @.str.5418, i64 6, i64 0 }, ptr %a514 - call void @finch_str_concat(ptr %a512, ptr %a513, ptr %a514) - store { ptr, i64, i64 } %t511, ptr %a515 - call void @finch_str_drop(ptr %a515) - %t516 = load { ptr, i64, i64 }, ptr %a512 - %t517 = call { ptr, i64, i64 } @finch.gen.op(ptr %t506, { ptr, i64, i64 } %t516) - store { ptr, i64, i64 } %t516, ptr %a518 - call void @finch_str_drop(ptr %a518) - %t519 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t520 = load { ptr, i64, i64 }, ptr %t519 - store { ptr, i64, i64 } { ptr @.str.5419, i64 8, i64 0 }, ptr %a522 - store { ptr, i64, i64 } %t520, ptr %a523 - call void @finch_str_concat(ptr %a521, ptr %a522, ptr %a523) - %t524 = load { ptr, i64, i64 }, ptr %a521 - store { ptr, i64, i64 } %t524, ptr %a526 - store { ptr, i64, i64 } { ptr @.str.5420, i64 20, i64 0 }, ptr %a527 - call void @finch_str_concat(ptr %a525, ptr %a526, ptr %a527) - store { ptr, i64, i64 } %t524, ptr %a528 - call void @finch_str_drop(ptr %a528) - %t529 = load { ptr, i64, i64 }, ptr %a525 - %t530 = load %S.ast.Node, ptr %a2 - call void @finch.gen.panicIf(ptr %t505, { ptr, i64, i64 } %t517, { ptr, i64, i64 } %t529, %S.ast.Node %t530) - store { ptr, i64, i64 } %t517, ptr %a531 - call void @finch_str_drop(ptr %a531) - store { ptr, i64, i64 } %t529, ptr %a532 - call void @finch_str_drop(ptr %a532) - %t533 = getelementptr inbounds %S.ast.Type, ptr %a235, i32 0, i32 1 - %t534 = load { ptr, i64, i64 }, ptr %t533 - %t535 = extractvalue { ptr, i64, i64 } %t534, 1 - %t536 = icmp uge i64 0, %t535 - br i1 %t536, label %range8349, label %inrange8350 -range8349: - call void @finch_panic_index(ptr @.str.5421, i64 5104, i64 0, i64 %t535) - unreachable -inrange8350: - %t537 = extractvalue { ptr, i64, i64 } %t534, 0 - %t538 = getelementptr inbounds %S.ast.Type, ptr %t537, i64 0 - %t539 = load %S.ast.Type, ptr %t538 - store %S.ast.Type %t539, ptr %a540 - call void @finch.copy.S_ast_Type(ptr %a541, ptr %a540) - %t542 = load %S.ast.Type, ptr %a541 - %t543 = load %S.ast.Type, ptr %a462 - store %S.ast.Type %t542, ptr %a462 - store %S.ast.Type %t543, ptr %a544 - call void @finch.drop.S_ast_Type(ptr %a544) - %t545 = load { ptr, i64, i64 }, ptr %a495 - store { ptr, i64, i64 } %t545, ptr %a546 - call void @finch_str_copy(ptr %a547, ptr %a546) - %t548 = load { ptr, i64, i64 }, ptr %a547 - %t549 = load { ptr, i64, i64 }, ptr %a463 - store { ptr, i64, i64 } %t548, ptr %a463 - store { ptr, i64, i64 } %t549, ptr %a550 - call void @finch_str_drop(ptr %a550) - call void @finch_str_drop(ptr %a495) - br label %endif8345 -else8344: - %t551 = getelementptr inbounds %S.ast.Type, ptr %a235, i32 0, i32 0 - %t552 = load { ptr, i64, i64 }, ptr %t551 - store { ptr, i64, i64 } %t552, ptr %a553 - store { ptr, i64, i64 } { ptr @.str.5422, i64 6, i64 0 }, ptr %a554 - %t555 = call i32 @finch_str_eq(ptr %a553, ptr %a554) - %t556 = icmp ne i32 %t555, 0 - br label %logic.from8351 -logic.from8351: - br i1 %t556, label %logic.end8353, label %logic.rhs8352 -logic.rhs8352: - %t557 = getelementptr inbounds %S.ast.Type, ptr %a235, i32 0, i32 0 +inrange8743: + %t518 = extractvalue { ptr, i64, i64 } %t515, 0 + %t519 = getelementptr inbounds %S.ast.Type, ptr %t518, i64 0 + %t520 = getelementptr inbounds %S.ast.Type, ptr %t519, i32 0, i32 0 + %t521 = load { ptr, i64, i64 }, ptr %t520 + store { ptr, i64, i64 } %t521, ptr %a522 + store { ptr, i64, i64 } { ptr @.str.5623, i64 6, i64 0 }, ptr %a523 + %t524 = call i32 @finch_str_eq(ptr %a522, ptr %a523) + %t525 = icmp ne i32 %t524, 0 + br label %logic.rend8744 +logic.rend8744: + br label %logic.end8741 +logic.end8741: + %t526 = phi i1 [ false, %logic.from8739 ], [ %t525, %logic.rend8744 ] + br i1 %t526, label %then8745, label %else8746 +then8745: + %t527 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 2 + %t528 = getelementptr inbounds %S.gen.Val, ptr %t527, i32 0, i32 0 + %t529 = load { ptr, i64, i64 }, ptr %t528 + store { ptr, i64, i64 } %t529, ptr %a530 + call void @finch_str_copy(ptr %a531, ptr %a530) + %t532 = load { ptr, i64, i64 }, ptr %a531 + store { ptr, i64, i64 } %t532, ptr %a533 + %t534 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 0 + %t535 = load i1, ptr %t534 + br i1 %t535, label %then8748, label %endif8750 +then8748: + %t536 = load ptr, ptr %a1 + %t537 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 1 + %t538 = getelementptr inbounds %S.gen.Place, ptr %t537, i32 0, i32 0 + %t539 = load { ptr, i64, i64 }, ptr %t538 + %t540 = call { ptr, i64, i64 } @finch.gen.load(ptr %t536, { ptr, i64, i64 } { ptr @.str.5624, i64 3, i64 0 }, { ptr, i64, i64 } %t539) + %t541 = load { ptr, i64, i64 }, ptr %a533 + store { ptr, i64, i64 } %t540, ptr %a533 + store { ptr, i64, i64 } %t541, ptr %a542 + call void @finch_str_drop(ptr %a542) + br label %endif8750 +endif8750: + %t543 = load ptr, ptr %a1 + %t544 = load ptr, ptr %a1 + %t545 = load { ptr, i64, i64 }, ptr %a533 + store { ptr, i64, i64 } { ptr @.str.5625, i64 12, i64 0 }, ptr %a547 + store { ptr, i64, i64 } %t545, ptr %a548 + call void @finch_str_concat(ptr %a546, ptr %a547, ptr %a548) + %t549 = load { ptr, i64, i64 }, ptr %a546 + store { ptr, i64, i64 } %t549, ptr %a551 + store { ptr, i64, i64 } { ptr @.str.5626, i64 6, i64 0 }, ptr %a552 + call void @finch_str_concat(ptr %a550, ptr %a551, ptr %a552) + store { ptr, i64, i64 } %t549, ptr %a553 + call void @finch_str_drop(ptr %a553) + %t554 = load { ptr, i64, i64 }, ptr %a550 + %t555 = call { ptr, i64, i64 } @finch.gen.op(ptr %t544, { ptr, i64, i64 } %t554) + store { ptr, i64, i64 } %t554, ptr %a556 + call void @finch_str_drop(ptr %a556) + %t557 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 %t558 = load { ptr, i64, i64 }, ptr %t557 - store { ptr, i64, i64 } %t558, ptr %a559 - store { ptr, i64, i64 } { ptr @.str.5423, i64 4, i64 0 }, ptr %a560 - %t561 = call i32 @finch_str_eq(ptr %a559, ptr %a560) - %t562 = icmp ne i32 %t561, 0 - br label %logic.rend8354 -logic.rend8354: - br label %logic.end8353 -logic.end8353: - %t563 = phi i1 [ true, %logic.from8351 ], [ %t562, %logic.rend8354 ] - br i1 %t563, label %then8355, label %endif8357 -then8355: - %t564 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 0 - %t565 = load i1, ptr %t564 - br i1 %t565, label %then8358, label %else8359 -then8358: - %t566 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 1 - %t567 = getelementptr inbounds %S.gen.Place, ptr %t566, i32 0, i32 0 - %t568 = load { ptr, i64, i64 }, ptr %t567 - store { ptr, i64, i64 } %t568, ptr %a569 - call void @finch_str_copy(ptr %a570, ptr %a569) - %t571 = load { ptr, i64, i64 }, ptr %a570 - %t572 = load { ptr, i64, i64 }, ptr %a463 - store { ptr, i64, i64 } %t571, ptr %a463 - store { ptr, i64, i64 } %t572, ptr %a573 - call void @finch_str_drop(ptr %a573) - br label %endif8360 -else8359: - %t574 = load ptr, ptr %a1 - %t575 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 2 - %t576 = load %S.gen.Val, ptr %t575 - %t577 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t574, %S.gen.Val %t576) - %t578 = load { ptr, i64, i64 }, ptr %a463 - store { ptr, i64, i64 } %t577, ptr %a463 - store { ptr, i64, i64 } %t578, ptr %a579 - call void @finch_str_drop(ptr %a579) - store i1 true, ptr %a464 - br label %endif8360 -endif8360: - br label %endif8357 -endif8357: - br label %endif8345 -endif8345: - %t580 = getelementptr inbounds %S.ast.Type, ptr %a462, i32 0, i32 0 - %t581 = load { ptr, i64, i64 }, ptr %t580 - store { ptr, i64, i64 } %t581, ptr %a582 - store { ptr, i64, i64 } { ptr @.str.5424, i64 6, i64 0 }, ptr %a583 - %t584 = call i32 @finch_str_eq(ptr %a582, ptr %a583) - %t585 = icmp ne i32 %t584, 0 - br label %logic.from8361 -logic.from8361: - br i1 %t585, label %logic.end8363, label %logic.rhs8362 -logic.rhs8362: - %t586 = getelementptr inbounds %S.ast.Type, ptr %a462, i32 0, i32 0 - %t587 = load { ptr, i64, i64 }, ptr %t586 + store { ptr, i64, i64 } { ptr @.str.5627, i64 8, i64 0 }, ptr %a560 + store { ptr, i64, i64 } %t558, ptr %a561 + call void @finch_str_concat(ptr %a559, ptr %a560, ptr %a561) + %t562 = load { ptr, i64, i64 }, ptr %a559 + store { ptr, i64, i64 } %t562, ptr %a564 + store { ptr, i64, i64 } { ptr @.str.5628, i64 20, i64 0 }, ptr %a565 + call void @finch_str_concat(ptr %a563, ptr %a564, ptr %a565) + store { ptr, i64, i64 } %t562, ptr %a566 + call void @finch_str_drop(ptr %a566) + %t567 = load { ptr, i64, i64 }, ptr %a563 + %t568 = load %S.ast.Node, ptr %a2 + call void @finch.gen.panicIf(ptr %t543, { ptr, i64, i64 } %t555, { ptr, i64, i64 } %t567, %S.ast.Node %t568) + store { ptr, i64, i64 } %t555, ptr %a569 + call void @finch_str_drop(ptr %a569) + store { ptr, i64, i64 } %t567, ptr %a570 + call void @finch_str_drop(ptr %a570) + %t571 = getelementptr inbounds %S.ast.Type, ptr %a273, i32 0, i32 1 + %t572 = load { ptr, i64, i64 }, ptr %t571 + %t573 = extractvalue { ptr, i64, i64 } %t572, 1 + %t574 = icmp uge i64 0, %t573 + br i1 %t574, label %range8751, label %inrange8752 +range8751: + call void @finch_panic_index(ptr @.str.5629, i64 5339, i64 0, i64 %t573) + unreachable +inrange8752: + %t575 = extractvalue { ptr, i64, i64 } %t572, 0 + %t576 = getelementptr inbounds %S.ast.Type, ptr %t575, i64 0 + %t577 = load %S.ast.Type, ptr %t576 + store %S.ast.Type %t577, ptr %a578 + call void @finch.copy.S_ast_Type(ptr %a579, ptr %a578) + %t580 = load %S.ast.Type, ptr %a579 + %t581 = load %S.ast.Type, ptr %a500 + store %S.ast.Type %t580, ptr %a500 + store %S.ast.Type %t581, ptr %a582 + call void @finch.drop.S_ast_Type(ptr %a582) + %t583 = load { ptr, i64, i64 }, ptr %a533 + store { ptr, i64, i64 } %t583, ptr %a584 + call void @finch_str_copy(ptr %a585, ptr %a584) + %t586 = load { ptr, i64, i64 }, ptr %a585 + %t587 = load { ptr, i64, i64 }, ptr %a501 + store { ptr, i64, i64 } %t586, ptr %a501 store { ptr, i64, i64 } %t587, ptr %a588 - store { ptr, i64, i64 } { ptr @.str.5425, i64 4, i64 0 }, ptr %a589 - %t590 = call i32 @finch_str_eq(ptr %a588, ptr %a589) - %t591 = icmp ne i32 %t590, 0 - br label %logic.rend8364 -logic.rend8364: - br label %logic.end8363 -logic.end8363: - %t592 = phi i1 [ true, %logic.from8361 ], [ %t591, %logic.rend8364 ] - br i1 %t592, label %then8365, label %endif8367 -then8365: - %t593 = load ptr, ptr %a1 - %t594 = getelementptr inbounds %S.ast.Type, ptr %a462, i32 0, i32 3 - %t595 = load { ptr, i64, i64 }, ptr %t594 - %t596 = getelementptr inbounds %S.ast.Type, ptr %a462, i32 0, i32 2 - %t597 = load { ptr, i64, i64 }, ptr %t596 - %t598 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t599 = load { ptr, i64, i64 }, ptr %t598 - %t600 = call i64 @finch.gen.findMethod(ptr %t593, { ptr, i64, i64 } %t595, { ptr, i64, i64 } %t597, { ptr, i64, i64 } %t599) - store i64 %t600, ptr %a601 - %t602 = load i64, ptr %a601 - %t603 = icmp slt i64 %t602, 0 - br label %logic.from8368 -logic.from8368: - br i1 %t603, label %logic.rhs8369, label %logic.end8370 -logic.rhs8369: - %t604 = getelementptr inbounds %S.ast.Type, ptr %a462, i32 0, i32 0 - %t605 = load { ptr, i64, i64 }, ptr %t604 - store { ptr, i64, i64 } %t605, ptr %a606 - store { ptr, i64, i64 } { ptr @.str.5426, i64 6, i64 0 }, ptr %a607 - %t608 = call i32 @finch_str_eq(ptr %a606, ptr %a607) - %t609 = icmp ne i32 %t608, 0 - br label %logic.rend8371 -logic.rend8371: - br label %logic.end8370 -logic.end8370: - %t610 = phi i1 [ false, %logic.from8368 ], [ %t609, %logic.rend8371 ] - br i1 %t610, label %then8372, label %endif8374 -then8372: - %t611 = load ptr, ptr %a1 - %t612 = getelementptr inbounds %S.ast.Type, ptr %a462, i32 0, i32 3 - %t613 = load { ptr, i64, i64 }, ptr %t612 - %t614 = getelementptr inbounds %S.ast.Type, ptr %a462, i32 0, i32 2 - %t615 = load { ptr, i64, i64 }, ptr %t614 - %t616 = call i64 @finch.gen.findStruct(ptr %t611, { ptr, i64, i64 } %t613, { ptr, i64, i64 } %t615) - store i64 %t616, ptr %a617 - %t618 = load ptr, ptr %a1 - %t619 = icmp eq ptr %t618, null - br i1 %t619, label %panic8375, label %ok8376 -panic8375: - call void @finch_panic(ptr @.str.5427, i64 5118, ptr @.str.5428) - unreachable -ok8376: - %t620 = getelementptr inbounds %S.gen.Gen, ptr %t618, i32 0, i32 16 - %t621 = load i64, ptr %a617 - %t622 = load { ptr, i64, i64 }, ptr %t620 - %t623 = extractvalue { ptr, i64, i64 } %t622, 1 - %t624 = icmp uge i64 %t621, %t623 - br i1 %t624, label %range8377, label %inrange8378 -range8377: - call void @finch_panic_index(ptr @.str.5429, i64 5118, i64 %t621, i64 %t623) - unreachable -inrange8378: - %t625 = extractvalue { ptr, i64, i64 } %t622, 0 - %t626 = getelementptr inbounds %S.gen.StructDef, ptr %t625, i64 %t621 - %t627 = getelementptr inbounds %S.gen.StructDef, ptr %t626, i32 0, i32 5 - %t628 = getelementptr inbounds { ptr, i64, i64 }, ptr %t627, i32 0, i32 1 - %t629 = load i64, ptr %t628 - %t630 = icmp sgt i64 %t629, 0 - br i1 %t630, label %then8379, label %endif8381 -then8379: + call void @finch_str_drop(ptr %a588) + call void @finch_str_drop(ptr %a533) + br label %endif8747 +else8746: + %t589 = getelementptr inbounds %S.ast.Type, ptr %a273, i32 0, i32 0 + %t590 = load { ptr, i64, i64 }, ptr %t589 + store { ptr, i64, i64 } %t590, ptr %a591 + store { ptr, i64, i64 } { ptr @.str.5630, i64 6, i64 0 }, ptr %a592 + %t593 = call i32 @finch_str_eq(ptr %a591, ptr %a592) + %t594 = icmp ne i32 %t593, 0 + br label %logic.from8753 +logic.from8753: + br i1 %t594, label %logic.end8755, label %logic.rhs8754 +logic.rhs8754: + %t595 = getelementptr inbounds %S.ast.Type, ptr %a273, i32 0, i32 0 + %t596 = load { ptr, i64, i64 }, ptr %t595 + store { ptr, i64, i64 } %t596, ptr %a597 + store { ptr, i64, i64 } { ptr @.str.5631, i64 4, i64 0 }, ptr %a598 + %t599 = call i32 @finch_str_eq(ptr %a597, ptr %a598) + %t600 = icmp ne i32 %t599, 0 + br label %logic.rend8756 +logic.rend8756: + br label %logic.end8755 +logic.end8755: + %t601 = phi i1 [ true, %logic.from8753 ], [ %t600, %logic.rend8756 ] + br i1 %t601, label %then8757, label %endif8759 +then8757: + %t602 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 0 + %t603 = load i1, ptr %t602 + br i1 %t603, label %then8760, label %else8761 +then8760: + %t604 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 1 + %t605 = getelementptr inbounds %S.gen.Place, ptr %t604, i32 0, i32 0 + %t606 = load { ptr, i64, i64 }, ptr %t605 + store { ptr, i64, i64 } %t606, ptr %a607 + call void @finch_str_copy(ptr %a608, ptr %a607) + %t609 = load { ptr, i64, i64 }, ptr %a608 + %t610 = load { ptr, i64, i64 }, ptr %a501 + store { ptr, i64, i64 } %t609, ptr %a501 + store { ptr, i64, i64 } %t610, ptr %a611 + call void @finch_str_drop(ptr %a611) + br label %endif8762 +else8761: + %t612 = load ptr, ptr %a1 + %t613 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 2 + %t614 = load %S.gen.Val, ptr %t613 + %t615 = call { ptr, i64, i64 } @finch.gen.spill(ptr %t612, %S.gen.Val %t614) + %t616 = load { ptr, i64, i64 }, ptr %a501 + store { ptr, i64, i64 } %t615, ptr %a501 + store { ptr, i64, i64 } %t616, ptr %a617 + call void @finch_str_drop(ptr %a617) + store i1 true, ptr %a502 + br label %endif8762 +endif8762: + br label %endif8759 +endif8759: + br label %endif8747 +endif8747: + %t618 = getelementptr inbounds %S.ast.Type, ptr %a500, i32 0, i32 0 + %t619 = load { ptr, i64, i64 }, ptr %t618 + store { ptr, i64, i64 } %t619, ptr %a620 + store { ptr, i64, i64 } { ptr @.str.5632, i64 6, i64 0 }, ptr %a621 + %t622 = call i32 @finch_str_eq(ptr %a620, ptr %a621) + %t623 = icmp ne i32 %t622, 0 + br label %logic.from8763 +logic.from8763: + br i1 %t623, label %logic.end8765, label %logic.rhs8764 +logic.rhs8764: + %t624 = getelementptr inbounds %S.ast.Type, ptr %a500, i32 0, i32 0 + %t625 = load { ptr, i64, i64 }, ptr %t624 + store { ptr, i64, i64 } %t625, ptr %a626 + store { ptr, i64, i64 } { ptr @.str.5633, i64 4, i64 0 }, ptr %a627 + %t628 = call i32 @finch_str_eq(ptr %a626, ptr %a627) + %t629 = icmp ne i32 %t628, 0 + br label %logic.rend8766 +logic.rend8766: + br label %logic.end8765 +logic.end8765: + %t630 = phi i1 [ true, %logic.from8763 ], [ %t629, %logic.rend8766 ] + br i1 %t630, label %then8767, label %endif8769 +then8767: %t631 = load ptr, ptr %a1 - %t632 = getelementptr inbounds %S.ast.Type, ptr %a462, i32 0, i32 3 + %t632 = getelementptr inbounds %S.ast.Type, ptr %a500, i32 0, i32 3 %t633 = load { ptr, i64, i64 }, ptr %t632 - %t634 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t634 = getelementptr inbounds %S.ast.Type, ptr %a500, i32 0, i32 2 %t635 = load { ptr, i64, i64 }, ptr %t634 - %t636 = load ptr, ptr %a1 - %t637 = icmp eq ptr %t636, null - br i1 %t637, label %panic8382, label %ok8383 -panic8382: - call void @finch_panic(ptr @.str.5430, i64 5119, ptr @.str.5431) + %t636 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t637 = load { ptr, i64, i64 }, ptr %t636 + %t638 = call i64 @finch.gen.findMethod(ptr %t631, { ptr, i64, i64 } %t633, { ptr, i64, i64 } %t635, { ptr, i64, i64 } %t637) + store i64 %t638, ptr %a639 + %t640 = load i64, ptr %a639 + %t641 = icmp slt i64 %t640, 0 + br label %logic.from8770 +logic.from8770: + br i1 %t641, label %logic.rhs8771, label %logic.end8772 +logic.rhs8771: + %t642 = getelementptr inbounds %S.ast.Type, ptr %a500, i32 0, i32 0 + %t643 = load { ptr, i64, i64 }, ptr %t642 + store { ptr, i64, i64 } %t643, ptr %a644 + store { ptr, i64, i64 } { ptr @.str.5634, i64 6, i64 0 }, ptr %a645 + %t646 = call i32 @finch_str_eq(ptr %a644, ptr %a645) + %t647 = icmp ne i32 %t646, 0 + br label %logic.rend8773 +logic.rend8773: + br label %logic.end8772 +logic.end8772: + %t648 = phi i1 [ false, %logic.from8770 ], [ %t647, %logic.rend8773 ] + br i1 %t648, label %then8774, label %endif8776 +then8774: + %t649 = load ptr, ptr %a1 + %t650 = getelementptr inbounds %S.ast.Type, ptr %a500, i32 0, i32 3 + %t651 = load { ptr, i64, i64 }, ptr %t650 + %t652 = getelementptr inbounds %S.ast.Type, ptr %a500, i32 0, i32 2 + %t653 = load { ptr, i64, i64 }, ptr %t652 + %t654 = call i64 @finch.gen.findStruct(ptr %t649, { ptr, i64, i64 } %t651, { ptr, i64, i64 } %t653) + store i64 %t654, ptr %a655 + %t656 = load ptr, ptr %a1 + %t657 = icmp eq ptr %t656, null + br i1 %t657, label %panic8777, label %ok8778 +panic8777: + call void @finch_panic(ptr @.str.5635, i64 5353, ptr @.str.5636) unreachable -ok8383: - %t638 = getelementptr inbounds %S.gen.Gen, ptr %t636, i32 0, i32 16 - %t639 = load i64, ptr %a617 - %t640 = load { ptr, i64, i64 }, ptr %t638 - %t641 = extractvalue { ptr, i64, i64 } %t640, 1 - %t642 = icmp uge i64 %t639, %t641 - br i1 %t642, label %range8384, label %inrange8385 -range8384: - call void @finch_panic_index(ptr @.str.5432, i64 5119, i64 %t639, i64 %t641) +ok8778: + %t658 = getelementptr inbounds %S.gen.Gen, ptr %t656, i32 0, i32 16 + %t659 = load i64, ptr %a655 + %t660 = load { ptr, i64, i64 }, ptr %t658 + %t661 = extractvalue { ptr, i64, i64 } %t660, 1 + %t662 = icmp uge i64 %t659, %t661 + br i1 %t662, label %range8779, label %inrange8780 +range8779: + call void @finch_panic_index(ptr @.str.5637, i64 5353, i64 %t659, i64 %t661) unreachable -inrange8385: - %t643 = extractvalue { ptr, i64, i64 } %t640, 0 - %t644 = getelementptr inbounds %S.gen.StructDef, ptr %t643, i64 %t639 - %t645 = getelementptr inbounds %S.gen.StructDef, ptr %t644, i32 0, i32 5 - %t646 = load { ptr, i64, i64 }, ptr %t645 - %t647 = call i64 @finch.gen.findTemplate(ptr %t631, { ptr, i64, i64 } %t633, { ptr, i64, i64 } %t635, { ptr, i64, i64 } %t646, i1 false) - store i64 %t647, ptr %a648 - %t649 = load i64, ptr %a648 - %t650 = icmp sge i64 %t649, 0 - br i1 %t650, label %then8386, label %endif8388 -then8386: - %t651 = load ptr, ptr %a1 - %t652 = load i64, ptr %a648 - %t653 = load ptr, ptr %a1 - %t654 = icmp eq ptr %t653, null - br i1 %t654, label %panic8389, label %ok8390 -panic8389: - call void @finch_panic(ptr @.str.5433, i64 5121, ptr @.str.5434) +inrange8780: + %t663 = extractvalue { ptr, i64, i64 } %t660, 0 + %t664 = getelementptr inbounds %S.gen.StructDef, ptr %t663, i64 %t659 + %t665 = getelementptr inbounds %S.gen.StructDef, ptr %t664, i32 0, i32 5 + %t666 = getelementptr inbounds { ptr, i64, i64 }, ptr %t665, i32 0, i32 1 + %t667 = load i64, ptr %t666 + %t668 = icmp sgt i64 %t667, 0 + br i1 %t668, label %then8781, label %endif8783 +then8781: + %t669 = load ptr, ptr %a1 + %t670 = getelementptr inbounds %S.ast.Type, ptr %a500, i32 0, i32 3 + %t671 = load { ptr, i64, i64 }, ptr %t670 + %t672 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t673 = load { ptr, i64, i64 }, ptr %t672 + %t674 = load ptr, ptr %a1 + %t675 = icmp eq ptr %t674, null + br i1 %t675, label %panic8784, label %ok8785 +panic8784: + call void @finch_panic(ptr @.str.5638, i64 5354, ptr @.str.5639) unreachable -ok8390: - %t655 = getelementptr inbounds %S.gen.Gen, ptr %t653, i32 0, i32 16 - %t656 = load i64, ptr %a617 - %t657 = load { ptr, i64, i64 }, ptr %t655 - %t658 = extractvalue { ptr, i64, i64 } %t657, 1 - %t659 = icmp uge i64 %t656, %t658 - br i1 %t659, label %range8391, label %inrange8392 -range8391: - call void @finch_panic_index(ptr @.str.5435, i64 5121, i64 %t656, i64 %t658) +ok8785: + %t676 = getelementptr inbounds %S.gen.Gen, ptr %t674, i32 0, i32 16 + %t677 = load i64, ptr %a655 + %t678 = load { ptr, i64, i64 }, ptr %t676 + %t679 = extractvalue { ptr, i64, i64 } %t678, 1 + %t680 = icmp uge i64 %t677, %t679 + br i1 %t680, label %range8786, label %inrange8787 +range8786: + call void @finch_panic_index(ptr @.str.5640, i64 5354, i64 %t677, i64 %t679) unreachable -inrange8392: - %t660 = extractvalue { ptr, i64, i64 } %t657, 0 - %t661 = getelementptr inbounds %S.gen.StructDef, ptr %t660, i64 %t656 - %t662 = getelementptr inbounds %S.gen.StructDef, ptr %t661, i32 0, i32 7 - %t663 = load { ptr, i64, i64 }, ptr %t662 - %t664 = load %S.ast.Type, ptr %a462 - %t665 = load %S.ast.Node, ptr %a2 - %t666 = call i64 @finch.gen.instFn(ptr %t651, i64 %t652, { ptr, i64, i64 } %t663, %S.ast.Type %t664, %S.ast.Node %t665) - store i64 %t666, ptr %a601 - br label %endif8388 -endif8388: - br label %endif8381 -endif8381: - br label %endif8374 -endif8374: - %t667 = load i64, ptr %a601 - %t668 = icmp slt i64 %t667, 0 - br i1 %t668, label %then8393, label %endif8395 -then8393: - store { ptr, i64, i64 } zeroinitializer, ptr %a669 - %t670 = load ptr, ptr %a1 - %t671 = icmp eq ptr %t670, null - br i1 %t671, label %panic8396, label %ok8397 -panic8396: - call void @finch_panic(ptr @.str.5436, i64 5127, ptr @.str.5437) +inrange8787: + %t681 = extractvalue { ptr, i64, i64 } %t678, 0 + %t682 = getelementptr inbounds %S.gen.StructDef, ptr %t681, i64 %t677 + %t683 = getelementptr inbounds %S.gen.StructDef, ptr %t682, i32 0, i32 5 + %t684 = load { ptr, i64, i64 }, ptr %t683 + %t685 = call i64 @finch.gen.findTemplate(ptr %t669, { ptr, i64, i64 } %t671, { ptr, i64, i64 } %t673, { ptr, i64, i64 } %t684, i1 false) + store i64 %t685, ptr %a686 + %t687 = load i64, ptr %a686 + %t688 = icmp sge i64 %t687, 0 + br i1 %t688, label %then8788, label %endif8790 +then8788: + %t689 = load ptr, ptr %a1 + %t690 = load i64, ptr %a686 + %t691 = load ptr, ptr %a1 + %t692 = icmp eq ptr %t691, null + br i1 %t692, label %panic8791, label %ok8792 +panic8791: + call void @finch_panic(ptr @.str.5641, i64 5356, ptr @.str.5642) unreachable -ok8397: - %t672 = getelementptr inbounds %S.gen.Gen, ptr %t670, i32 0, i32 15 - store i64 0, ptr %a673 - br label %each.cond8398 -each.cond8398: - %t674 = getelementptr inbounds { ptr, i64, i64 }, ptr %t672, i32 0, i32 1 - %t675 = load i64, ptr %t674 - %t676 = load i64, ptr %a673 - %t677 = icmp slt i64 %t676, %t675 - br i1 %t677, label %each.body8399, label %each.end8401 -each.body8399: - %t678 = load ptr, ptr %t672 - %t679 = getelementptr inbounds %S.gen.FnSig, ptr %t678, i64 %t676 - %t680 = load %S.gen.FnSig, ptr %t679 - store %S.gen.FnSig %t680, ptr %a681 - %t682 = getelementptr inbounds %S.gen.FnSig, ptr %a681, i32 0, i32 2 - %t683 = load { ptr, i64, i64 }, ptr %t682 - %t684 = getelementptr inbounds %S.ast.Type, ptr %a462, i32 0, i32 2 - %t685 = load { ptr, i64, i64 }, ptr %t684 - store { ptr, i64, i64 } %t683, ptr %a686 - store { ptr, i64, i64 } %t685, ptr %a687 - %t688 = call i32 @finch_str_eq(ptr %a686, ptr %a687) - %t689 = icmp ne i32 %t688, 0 - br label %logic.from8402 -logic.from8402: - br i1 %t689, label %logic.rhs8403, label %logic.end8404 -logic.rhs8403: - %t690 = getelementptr inbounds %S.gen.FnSig, ptr %a681, i32 0, i32 3 - %t691 = load { ptr, i64, i64 }, ptr %t690 - %t692 = getelementptr inbounds %S.ast.Type, ptr %a462, i32 0, i32 3 - %t693 = load { ptr, i64, i64 }, ptr %t692 - store { ptr, i64, i64 } %t691, ptr %a694 - store { ptr, i64, i64 } %t693, ptr %a695 - %t696 = call i32 @finch_str_eq(ptr %a694, ptr %a695) - %t697 = icmp ne i32 %t696, 0 - br label %logic.rend8405 -logic.rend8405: - br label %logic.end8404 -logic.end8404: - %t698 = phi i1 [ false, %logic.from8402 ], [ %t697, %logic.rend8405 ] - br i1 %t698, label %then8406, label %endif8408 -then8406: - %t699 = getelementptr inbounds { ptr, i64, i64 }, ptr %a669, i32 0, i32 1 - %t700 = getelementptr inbounds %S.gen.FnSig, ptr %a681, i32 0, i32 1 +ok8792: + %t693 = getelementptr inbounds %S.gen.Gen, ptr %t691, i32 0, i32 16 + %t694 = load i64, ptr %a655 + %t695 = load { ptr, i64, i64 }, ptr %t693 + %t696 = extractvalue { ptr, i64, i64 } %t695, 1 + %t697 = icmp uge i64 %t694, %t696 + br i1 %t697, label %range8793, label %inrange8794 +range8793: + call void @finch_panic_index(ptr @.str.5643, i64 5356, i64 %t694, i64 %t696) + unreachable +inrange8794: + %t698 = extractvalue { ptr, i64, i64 } %t695, 0 + %t699 = getelementptr inbounds %S.gen.StructDef, ptr %t698, i64 %t694 + %t700 = getelementptr inbounds %S.gen.StructDef, ptr %t699, i32 0, i32 7 %t701 = load { ptr, i64, i64 }, ptr %t700 - store { ptr, i64, i64 } %t701, ptr %a702 - call void @finch_str_copy(ptr %a703, ptr %a702) - %t704 = load { ptr, i64, i64 }, ptr %a703 - %t705 = load i64, ptr %t699 - %t706 = add i64 %t705, 1 - call void @finch_arr_reserve(ptr %a669, i64 %t706, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) - %t707 = load ptr, ptr %a669 - %t708 = getelementptr inbounds { ptr, i64, i64 }, ptr %t707, i64 %t705 - store { ptr, i64, i64 } %t704, ptr %t708 - store i64 %t706, ptr %t699 - br label %endif8408 -endif8408: - br label %each.step8400 -each.step8400: - %t709 = load i64, ptr %a673 - %t710 = add i64 %t709, 1 - store i64 %t710, ptr %a673 - br label %each.cond8398 -each.end8401: - %t711 = getelementptr inbounds { ptr, i64, i64 }, ptr %a669, i32 0, i32 1 - %t712 = load i64, ptr %t711 - %t713 = icmp eq i64 %t712, 0 - br i1 %t713, label %then8409, label %endif8411 -then8409: - %t714 = load ptr, ptr %a1 - %t715 = load %S.ast.Node, ptr %a2 - %t716 = getelementptr inbounds %S.ast.Type, ptr %a462, i32 0, i32 0 - %t717 = load { ptr, i64, i64 }, ptr %t716 - store { ptr, i64, i64 } { ptr @.str.5438, i64 4, i64 0 }, ptr %a719 - store { ptr, i64, i64 } %t717, ptr %a720 - call void @finch_str_concat(ptr %a718, ptr %a719, ptr %a720) - %t721 = load { ptr, i64, i64 }, ptr %a718 - store { ptr, i64, i64 } %t721, ptr %a723 - store { ptr, i64, i64 } { ptr @.str.5439, i64 1, i64 0 }, ptr %a724 - call void @finch_str_concat(ptr %a722, ptr %a723, ptr %a724) - store { ptr, i64, i64 } %t721, ptr %a725 - call void @finch_str_drop(ptr %a725) - %t726 = load { ptr, i64, i64 }, ptr %a722 - %t727 = load %S.ast.Type, ptr %a462 - %t728 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t727) - store { ptr, i64, i64 } %t726, ptr %a730 - store { ptr, i64, i64 } %t728, ptr %a731 - call void @finch_str_concat(ptr %a729, ptr %a730, ptr %a731) - store { ptr, i64, i64 } %t726, ptr %a732 - call void @finch_str_drop(ptr %a732) - store { ptr, i64, i64 } %t728, ptr %a733 - call void @finch_str_drop(ptr %a733) - %t734 = load { ptr, i64, i64 }, ptr %a729 - store { ptr, i64, i64 } %t734, ptr %a736 - store { ptr, i64, i64 } { ptr @.str.5440, i64 34, i64 0 }, ptr %a737 - call void @finch_str_concat(ptr %a735, ptr %a736, ptr %a737) - store { ptr, i64, i64 } %t734, ptr %a738 - call void @finch_str_drop(ptr %a738) - %t739 = load { ptr, i64, i64 }, ptr %a735 - %t740 = getelementptr inbounds %S.ast.Type, ptr %a462, i32 0, i32 2 - %t741 = load { ptr, i64, i64 }, ptr %t740 - store { ptr, i64, i64 } %t739, ptr %a743 - store { ptr, i64, i64 } %t741, ptr %a744 - call void @finch_str_concat(ptr %a742, ptr %a743, ptr %a744) - store { ptr, i64, i64 } %t739, ptr %a745 - call void @finch_str_drop(ptr %a745) - %t746 = load { ptr, i64, i64 }, ptr %a742 - store { ptr, i64, i64 } %t746, ptr %a748 - store { ptr, i64, i64 } { ptr @.str.5441, i64 1, i64 0 }, ptr %a749 - call void @finch_str_concat(ptr %a747, ptr %a748, ptr %a749) - store { ptr, i64, i64 } %t746, ptr %a750 - call void @finch_str_drop(ptr %a750) - %t751 = load { ptr, i64, i64 }, ptr %a747 - %t752 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t753 = load { ptr, i64, i64 }, ptr %t752 - store { ptr, i64, i64 } %t751, ptr %a755 - store { ptr, i64, i64 } %t753, ptr %a756 - call void @finch_str_concat(ptr %a754, ptr %a755, ptr %a756) - store { ptr, i64, i64 } %t751, ptr %a757 - call void @finch_str_drop(ptr %a757) - %t758 = load { ptr, i64, i64 }, ptr %a754 - store { ptr, i64, i64 } %t758, ptr %a760 - store { ptr, i64, i64 } { ptr @.str.5442, i64 13, i64 0 }, ptr %a761 - call void @finch_str_concat(ptr %a759, ptr %a760, ptr %a761) - store { ptr, i64, i64 } %t758, ptr %a762 - call void @finch_str_drop(ptr %a762) - %t763 = load { ptr, i64, i64 }, ptr %a759 - call void @finch.gen.fail(ptr %t714, %S.ast.Node %t715, { ptr, i64, i64 } %t763) - store { ptr, i64, i64 } %t763, ptr %a764 - call void @finch_str_drop(ptr %a764) - br label %endif8411 -endif8411: - %t765 = load ptr, ptr %a1 - %t766 = load %S.ast.Node, ptr %a2 - %t767 = getelementptr inbounds %S.ast.Type, ptr %a462, i32 0, i32 0 - %t768 = load { ptr, i64, i64 }, ptr %t767 - store { ptr, i64, i64 } { ptr @.str.5443, i64 4, i64 0 }, ptr %a770 - store { ptr, i64, i64 } %t768, ptr %a771 - call void @finch_str_concat(ptr %a769, ptr %a770, ptr %a771) - %t772 = load { ptr, i64, i64 }, ptr %a769 + %t702 = load %S.ast.Type, ptr %a500 + %t703 = load %S.ast.Node, ptr %a2 + %t704 = call i64 @finch.gen.instFn(ptr %t689, i64 %t690, { ptr, i64, i64 } %t701, %S.ast.Type %t702, %S.ast.Node %t703) + store i64 %t704, ptr %a639 + br label %endif8790 +endif8790: + br label %endif8783 +endif8783: + br label %endif8776 +endif8776: + %t705 = load i64, ptr %a639 + %t706 = icmp slt i64 %t705, 0 + br i1 %t706, label %then8795, label %endif8797 +then8795: + store { ptr, i64, i64 } zeroinitializer, ptr %a707 + %t708 = load ptr, ptr %a1 + %t709 = icmp eq ptr %t708, null + br i1 %t709, label %panic8798, label %ok8799 +panic8798: + call void @finch_panic(ptr @.str.5644, i64 5362, ptr @.str.5645) + unreachable +ok8799: + %t710 = getelementptr inbounds %S.gen.Gen, ptr %t708, i32 0, i32 15 + store i64 0, ptr %a711 + br label %each.cond8800 +each.cond8800: + %t712 = getelementptr inbounds { ptr, i64, i64 }, ptr %t710, i32 0, i32 1 + %t713 = load i64, ptr %t712 + %t714 = load i64, ptr %a711 + %t715 = icmp slt i64 %t714, %t713 + br i1 %t715, label %each.body8801, label %each.end8803 +each.body8801: + %t716 = load ptr, ptr %t710 + %t717 = getelementptr inbounds %S.gen.FnSig, ptr %t716, i64 %t714 + %t718 = load %S.gen.FnSig, ptr %t717 + store %S.gen.FnSig %t718, ptr %a719 + %t720 = getelementptr inbounds %S.gen.FnSig, ptr %a719, i32 0, i32 2 + %t721 = load { ptr, i64, i64 }, ptr %t720 + %t722 = getelementptr inbounds %S.ast.Type, ptr %a500, i32 0, i32 2 + %t723 = load { ptr, i64, i64 }, ptr %t722 + store { ptr, i64, i64 } %t721, ptr %a724 + store { ptr, i64, i64 } %t723, ptr %a725 + %t726 = call i32 @finch_str_eq(ptr %a724, ptr %a725) + %t727 = icmp ne i32 %t726, 0 + br label %logic.from8804 +logic.from8804: + br i1 %t727, label %logic.rhs8805, label %logic.end8806 +logic.rhs8805: + %t728 = getelementptr inbounds %S.gen.FnSig, ptr %a719, i32 0, i32 3 + %t729 = load { ptr, i64, i64 }, ptr %t728 + %t730 = getelementptr inbounds %S.ast.Type, ptr %a500, i32 0, i32 3 + %t731 = load { ptr, i64, i64 }, ptr %t730 + store { ptr, i64, i64 } %t729, ptr %a732 + store { ptr, i64, i64 } %t731, ptr %a733 + %t734 = call i32 @finch_str_eq(ptr %a732, ptr %a733) + %t735 = icmp ne i32 %t734, 0 + br label %logic.rend8807 +logic.rend8807: + br label %logic.end8806 +logic.end8806: + %t736 = phi i1 [ false, %logic.from8804 ], [ %t735, %logic.rend8807 ] + br i1 %t736, label %then8808, label %endif8810 +then8808: + %t737 = getelementptr inbounds { ptr, i64, i64 }, ptr %a707, i32 0, i32 1 + %t738 = getelementptr inbounds %S.gen.FnSig, ptr %a719, i32 0, i32 1 + %t739 = load { ptr, i64, i64 }, ptr %t738 + store { ptr, i64, i64 } %t739, ptr %a740 + call void @finch_str_copy(ptr %a741, ptr %a740) + %t742 = load { ptr, i64, i64 }, ptr %a741 + %t743 = load i64, ptr %t737 + %t744 = add i64 %t743, 1 + call void @finch_arr_reserve(ptr %a707, i64 %t744, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) + %t745 = load ptr, ptr %a707 + %t746 = getelementptr inbounds { ptr, i64, i64 }, ptr %t745, i64 %t743 + store { ptr, i64, i64 } %t742, ptr %t746 + store i64 %t744, ptr %t737 + br label %endif8810 +endif8810: + br label %each.step8802 +each.step8802: + %t747 = load i64, ptr %a711 + %t748 = add i64 %t747, 1 + store i64 %t748, ptr %a711 + br label %each.cond8800 +each.end8803: + %t749 = getelementptr inbounds { ptr, i64, i64 }, ptr %a707, i32 0, i32 1 + %t750 = load i64, ptr %t749 + %t751 = icmp eq i64 %t750, 0 + br i1 %t751, label %then8811, label %endif8813 +then8811: + %t752 = load ptr, ptr %a1 + %t753 = load %S.ast.Node, ptr %a2 + %t754 = getelementptr inbounds %S.ast.Type, ptr %a500, i32 0, i32 0 + %t755 = load { ptr, i64, i64 }, ptr %t754 + store { ptr, i64, i64 } { ptr @.str.5646, i64 4, i64 0 }, ptr %a757 + store { ptr, i64, i64 } %t755, ptr %a758 + call void @finch_str_concat(ptr %a756, ptr %a757, ptr %a758) + %t759 = load { ptr, i64, i64 }, ptr %a756 + store { ptr, i64, i64 } %t759, ptr %a761 + store { ptr, i64, i64 } { ptr @.str.5647, i64 1, i64 0 }, ptr %a762 + call void @finch_str_concat(ptr %a760, ptr %a761, ptr %a762) + store { ptr, i64, i64 } %t759, ptr %a763 + call void @finch_str_drop(ptr %a763) + %t764 = load { ptr, i64, i64 }, ptr %a760 + %t765 = load %S.ast.Type, ptr %a500 + %t766 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t765) + store { ptr, i64, i64 } %t764, ptr %a768 + store { ptr, i64, i64 } %t766, ptr %a769 + call void @finch_str_concat(ptr %a767, ptr %a768, ptr %a769) + store { ptr, i64, i64 } %t764, ptr %a770 + call void @finch_str_drop(ptr %a770) + store { ptr, i64, i64 } %t766, ptr %a771 + call void @finch_str_drop(ptr %a771) + %t772 = load { ptr, i64, i64 }, ptr %a767 store { ptr, i64, i64 } %t772, ptr %a774 - store { ptr, i64, i64 } { ptr @.str.5444, i64 1, i64 0 }, ptr %a775 + store { ptr, i64, i64 } { ptr @.str.5648, i64 34, i64 0 }, ptr %a775 call void @finch_str_concat(ptr %a773, ptr %a774, ptr %a775) store { ptr, i64, i64 } %t772, ptr %a776 call void @finch_str_drop(ptr %a776) %t777 = load { ptr, i64, i64 }, ptr %a773 - %t778 = load %S.ast.Type, ptr %a462 - %t779 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t778) + %t778 = getelementptr inbounds %S.ast.Type, ptr %a500, i32 0, i32 2 + %t779 = load { ptr, i64, i64 }, ptr %t778 store { ptr, i64, i64 } %t777, ptr %a781 store { ptr, i64, i64 } %t779, ptr %a782 call void @finch_str_concat(ptr %a780, ptr %a781, ptr %a782) store { ptr, i64, i64 } %t777, ptr %a783 call void @finch_str_drop(ptr %a783) - store { ptr, i64, i64 } %t779, ptr %a784 - call void @finch_str_drop(ptr %a784) - %t785 = load { ptr, i64, i64 }, ptr %a780 - store { ptr, i64, i64 } %t785, ptr %a787 - store { ptr, i64, i64 } { ptr @.str.5445, i64 16, i64 0 }, ptr %a788 - call void @finch_str_concat(ptr %a786, ptr %a787, ptr %a788) - store { ptr, i64, i64 } %t785, ptr %a789 - call void @finch_str_drop(ptr %a789) - %t790 = load { ptr, i64, i64 }, ptr %a786 - %t791 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t792 = load { ptr, i64, i64 }, ptr %t791 - store { ptr, i64, i64 } %t790, ptr %a794 - store { ptr, i64, i64 } %t792, ptr %a795 - call void @finch_str_concat(ptr %a793, ptr %a794, ptr %a795) - store { ptr, i64, i64 } %t790, ptr %a796 - call void @finch_str_drop(ptr %a796) - %t797 = load { ptr, i64, i64 }, ptr %a793 - store { ptr, i64, i64 } %t797, ptr %a799 - store { ptr, i64, i64 } { ptr @.str.5446, i64 11, i64 0 }, ptr %a800 - call void @finch_str_concat(ptr %a798, ptr %a799, ptr %a800) - store { ptr, i64, i64 } %t797, ptr %a801 - call void @finch_str_drop(ptr %a801) - %t802 = load { ptr, i64, i64 }, ptr %a798 - %t803 = getelementptr inbounds { ptr, i64, i64 }, ptr %a669, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.5447, i64 2, i64 0 }, ptr %a804 - call void @finch_str_join(ptr %a805, ptr %a669, ptr %a804) - %t806 = load { ptr, i64, i64 }, ptr %a805 - store { ptr, i64, i64 } %t802, ptr %a808 + %t784 = load { ptr, i64, i64 }, ptr %a780 + store { ptr, i64, i64 } %t784, ptr %a786 + store { ptr, i64, i64 } { ptr @.str.5649, i64 1, i64 0 }, ptr %a787 + call void @finch_str_concat(ptr %a785, ptr %a786, ptr %a787) + store { ptr, i64, i64 } %t784, ptr %a788 + call void @finch_str_drop(ptr %a788) + %t789 = load { ptr, i64, i64 }, ptr %a785 + %t790 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t791 = load { ptr, i64, i64 }, ptr %t790 + store { ptr, i64, i64 } %t789, ptr %a793 + store { ptr, i64, i64 } %t791, ptr %a794 + call void @finch_str_concat(ptr %a792, ptr %a793, ptr %a794) + store { ptr, i64, i64 } %t789, ptr %a795 + call void @finch_str_drop(ptr %a795) + %t796 = load { ptr, i64, i64 }, ptr %a792 + store { ptr, i64, i64 } %t796, ptr %a798 + store { ptr, i64, i64 } { ptr @.str.5650, i64 13, i64 0 }, ptr %a799 + call void @finch_str_concat(ptr %a797, ptr %a798, ptr %a799) + store { ptr, i64, i64 } %t796, ptr %a800 + call void @finch_str_drop(ptr %a800) + %t801 = load { ptr, i64, i64 }, ptr %a797 + call void @finch.gen.fail(ptr %t752, %S.ast.Node %t753, { ptr, i64, i64 } %t801) + store { ptr, i64, i64 } %t801, ptr %a802 + call void @finch_str_drop(ptr %a802) + br label %endif8813 +endif8813: + %t803 = load ptr, ptr %a1 + %t804 = load %S.ast.Node, ptr %a2 + %t805 = getelementptr inbounds %S.ast.Type, ptr %a500, i32 0, i32 0 + %t806 = load { ptr, i64, i64 }, ptr %t805 + store { ptr, i64, i64 } { ptr @.str.5651, i64 4, i64 0 }, ptr %a808 store { ptr, i64, i64 } %t806, ptr %a809 call void @finch_str_concat(ptr %a807, ptr %a808, ptr %a809) - store { ptr, i64, i64 } %t802, ptr %a810 - call void @finch_str_drop(ptr %a810) - store { ptr, i64, i64 } %t806, ptr %a811 - call void @finch_str_drop(ptr %a811) - %t812 = load { ptr, i64, i64 }, ptr %a807 - store { ptr, i64, i64 } %t812, ptr %a814 - store { ptr, i64, i64 } { ptr @.str.5448, i64 1, i64 0 }, ptr %a815 - call void @finch_str_concat(ptr %a813, ptr %a814, ptr %a815) - store { ptr, i64, i64 } %t812, ptr %a816 - call void @finch_str_drop(ptr %a816) - %t817 = load { ptr, i64, i64 }, ptr %a813 - call void @finch.gen.fail(ptr %t765, %S.ast.Node %t766, { ptr, i64, i64 } %t817) - store { ptr, i64, i64 } %t817, ptr %a818 - call void @finch_str_drop(ptr %a818) - call void @finch.drop.arr_str(ptr %a669) - br label %endif8395 -endif8395: - %t819 = load ptr, ptr %a1 - %t820 = icmp eq ptr %t819, null - br i1 %t820, label %panic8412, label %ok8413 -panic8412: - call void @finch_panic(ptr @.str.5449, i64 5138, ptr @.str.5450) - unreachable -ok8413: - %t821 = getelementptr inbounds %S.gen.Gen, ptr %t819, i32 0, i32 15 - %t822 = load i64, ptr %a601 - %t823 = load { ptr, i64, i64 }, ptr %t821 - %t824 = extractvalue { ptr, i64, i64 } %t823, 1 - %t825 = icmp uge i64 %t822, %t824 - br i1 %t825, label %range8414, label %inrange8415 -range8414: - call void @finch_panic_index(ptr @.str.5451, i64 5138, i64 %t822, i64 %t824) - unreachable -inrange8415: - %t826 = extractvalue { ptr, i64, i64 } %t823, 0 - %t827 = getelementptr inbounds %S.gen.FnSig, ptr %t826, i64 %t822 - %t828 = getelementptr inbounds %S.gen.FnSig, ptr %t827, i32 0, i32 10 - %t829 = load i1, ptr %t828 - br label %logic.from8416 -logic.from8416: - br i1 %t829, label %logic.rhs8417, label %logic.end8418 -logic.rhs8417: - %t830 = getelementptr inbounds %S.ast.Type, ptr %a235, i32 0, i32 0 - %t831 = load { ptr, i64, i64 }, ptr %t830 - store { ptr, i64, i64 } %t831, ptr %a832 - store { ptr, i64, i64 } { ptr @.str.5452, i64 6, i64 0 }, ptr %a833 - %t834 = call i32 @finch_str_eq(ptr %a832, ptr %a833) - %t835 = icmp ne i32 %t834, 0 - br label %logic.from8419 -logic.from8419: - br i1 %t835, label %logic.end8421, label %logic.rhs8420 -logic.rhs8420: - %t836 = getelementptr inbounds %S.ast.Type, ptr %a235, i32 0, i32 0 - %t837 = load { ptr, i64, i64 }, ptr %t836 - store { ptr, i64, i64 } %t837, ptr %a838 - store { ptr, i64, i64 } { ptr @.str.5453, i64 4, i64 0 }, ptr %a839 - %t840 = call i32 @finch_str_eq(ptr %a838, ptr %a839) - %t841 = icmp ne i32 %t840, 0 - br label %logic.rend8422 -logic.rend8422: - br label %logic.end8421 -logic.end8421: - %t842 = phi i1 [ true, %logic.from8419 ], [ %t841, %logic.rend8422 ] - br label %logic.rend8423 -logic.rend8423: - br label %logic.end8418 -logic.end8418: - %t843 = phi i1 [ false, %logic.from8416 ], [ %t842, %logic.rend8423 ] - br i1 %t843, label %then8424, label %endif8426 -then8424: - %t844 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 0 - %t845 = load i1, ptr %t844 - %t846 = xor i1 %t845, true - br i1 %t846, label %then8427, label %endif8429 -then8427: - %t847 = load ptr, ptr %a1 - %t848 = load %S.ast.Node, ptr %a2 - %t849 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t850 = load { ptr, i64, i64 }, ptr %t849 + %t810 = load { ptr, i64, i64 }, ptr %a807 + store { ptr, i64, i64 } %t810, ptr %a812 + store { ptr, i64, i64 } { ptr @.str.5652, i64 1, i64 0 }, ptr %a813 + call void @finch_str_concat(ptr %a811, ptr %a812, ptr %a813) + store { ptr, i64, i64 } %t810, ptr %a814 + call void @finch_str_drop(ptr %a814) + %t815 = load { ptr, i64, i64 }, ptr %a811 + %t816 = load %S.ast.Type, ptr %a500 + %t817 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t816) + store { ptr, i64, i64 } %t815, ptr %a819 + store { ptr, i64, i64 } %t817, ptr %a820 + call void @finch_str_concat(ptr %a818, ptr %a819, ptr %a820) + store { ptr, i64, i64 } %t815, ptr %a821 + call void @finch_str_drop(ptr %a821) + store { ptr, i64, i64 } %t817, ptr %a822 + call void @finch_str_drop(ptr %a822) + %t823 = load { ptr, i64, i64 }, ptr %a818 + store { ptr, i64, i64 } %t823, ptr %a825 + store { ptr, i64, i64 } { ptr @.str.5653, i64 16, i64 0 }, ptr %a826 + call void @finch_str_concat(ptr %a824, ptr %a825, ptr %a826) + store { ptr, i64, i64 } %t823, ptr %a827 + call void @finch_str_drop(ptr %a827) + %t828 = load { ptr, i64, i64 }, ptr %a824 + %t829 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t830 = load { ptr, i64, i64 }, ptr %t829 + store { ptr, i64, i64 } %t828, ptr %a832 + store { ptr, i64, i64 } %t830, ptr %a833 + call void @finch_str_concat(ptr %a831, ptr %a832, ptr %a833) + store { ptr, i64, i64 } %t828, ptr %a834 + call void @finch_str_drop(ptr %a834) + %t835 = load { ptr, i64, i64 }, ptr %a831 + store { ptr, i64, i64 } %t835, ptr %a837 + store { ptr, i64, i64 } { ptr @.str.5654, i64 11, i64 0 }, ptr %a838 + call void @finch_str_concat(ptr %a836, ptr %a837, ptr %a838) + store { ptr, i64, i64 } %t835, ptr %a839 + call void @finch_str_drop(ptr %a839) + %t840 = load { ptr, i64, i64 }, ptr %a836 + %t841 = getelementptr inbounds { ptr, i64, i64 }, ptr %a707, i32 0, i32 1 + store { ptr, i64, i64 } { ptr @.str.5655, i64 2, i64 0 }, ptr %a842 + call void @finch_str_join(ptr %a843, ptr %a707, ptr %a842) + %t844 = load { ptr, i64, i64 }, ptr %a843 + store { ptr, i64, i64 } %t840, ptr %a846 + store { ptr, i64, i64 } %t844, ptr %a847 + call void @finch_str_concat(ptr %a845, ptr %a846, ptr %a847) + store { ptr, i64, i64 } %t840, ptr %a848 + call void @finch_str_drop(ptr %a848) + store { ptr, i64, i64 } %t844, ptr %a849 + call void @finch_str_drop(ptr %a849) + %t850 = load { ptr, i64, i64 }, ptr %a845 store { ptr, i64, i64 } %t850, ptr %a852 - store { ptr, i64, i64 } { ptr @.str.5454, i64 28, i64 0 }, ptr %a853 + store { ptr, i64, i64 } { ptr @.str.5656, i64 1, i64 0 }, ptr %a853 call void @finch_str_concat(ptr %a851, ptr %a852, ptr %a853) - %t854 = load { ptr, i64, i64 }, ptr %a851 - %t855 = load %S.ast.Type, ptr %a462 - %t856 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t855) - store { ptr, i64, i64 } %t854, ptr %a858 - store { ptr, i64, i64 } %t856, ptr %a859 - call void @finch_str_concat(ptr %a857, ptr %a858, ptr %a859) - store { ptr, i64, i64 } %t854, ptr %a860 - call void @finch_str_drop(ptr %a860) - store { ptr, i64, i64 } %t856, ptr %a861 - call void @finch_str_drop(ptr %a861) - %t862 = load { ptr, i64, i64 }, ptr %a857 - store { ptr, i64, i64 } %t862, ptr %a864 - store { ptr, i64, i64 } { ptr @.str.5455, i64 30, i64 0 }, ptr %a865 - call void @finch_str_concat(ptr %a863, ptr %a864, ptr %a865) - store { ptr, i64, i64 } %t862, ptr %a866 - call void @finch_str_drop(ptr %a866) - %t867 = load { ptr, i64, i64 }, ptr %a863 - call void @finch.gen.fail(ptr %t847, %S.ast.Node %t848, { ptr, i64, i64 } %t867) - store { ptr, i64, i64 } %t867, ptr %a868 - call void @finch_str_drop(ptr %a868) - br label %endif8429 -endif8429: - %t869 = load %S.ast.Node, ptr %a13 - %t870 = call { ptr, i64, i64 } @finch.gen.rootVar(%S.ast.Node %t869) - store { ptr, i64, i64 } %t870, ptr %a871 - %t872 = getelementptr inbounds { ptr, i64, i64 }, ptr %a871, i32 0, i32 1 - %t873 = load i64, ptr %t872 - %t874 = icmp sgt i64 %t873, 0 - br i1 %t874, label %then8430, label %endif8432 -then8430: - %t875 = load ptr, ptr %a1 - %t876 = load { ptr, i64, i64 }, ptr %a871 - %t877 = call i64 @finch.gen.lookup(ptr %t875, { ptr, i64, i64 } %t876) - store i64 %t877, ptr %a878 - %t879 = load i64, ptr %a878 - %t880 = icmp sge i64 %t879, 0 - br label %logic.from8433 -logic.from8433: - br i1 %t880, label %logic.rhs8434, label %logic.end8435 -logic.rhs8434: - %t881 = load ptr, ptr %a1 - %t882 = load i64, ptr %a878 - %t883 = call %S.gen.Var @finch.gen.varAt(ptr %t881, i64 %t882) - %t884 = extractvalue %S.gen.Var %t883, 3 - store %S.gen.Var %t883, ptr %a885 - call void @finch.drop.S_gen_Var(ptr %a885) - br label %logic.rend8436 -logic.rend8436: - br label %logic.end8435 -logic.end8435: - %t886 = phi i1 [ false, %logic.from8433 ], [ %t884, %logic.rend8436 ] - br i1 %t886, label %then8437, label %endif8439 -then8437: - %t887 = load ptr, ptr %a1 - %t888 = load %S.ast.Node, ptr %a2 - %t889 = load { ptr, i64, i64 }, ptr %a871 - store { ptr, i64, i64 } { ptr @.str.5456, i64 19, i64 0 }, ptr %a891 - store { ptr, i64, i64 } %t889, ptr %a892 - call void @finch_str_concat(ptr %a890, ptr %a891, ptr %a892) - %t893 = load { ptr, i64, i64 }, ptr %a890 - store { ptr, i64, i64 } %t893, ptr %a895 - store { ptr, i64, i64 } { ptr @.str.5457, i64 18, i64 0 }, ptr %a896 - call void @finch_str_concat(ptr %a894, ptr %a895, ptr %a896) - store { ptr, i64, i64 } %t893, ptr %a897 - call void @finch_str_drop(ptr %a897) - %t898 = load { ptr, i64, i64 }, ptr %a894 - call void @finch.gen.fail(ptr %t887, %S.ast.Node %t888, { ptr, i64, i64 } %t898) - store { ptr, i64, i64 } %t898, ptr %a899 + store { ptr, i64, i64 } %t850, ptr %a854 + call void @finch_str_drop(ptr %a854) + %t855 = load { ptr, i64, i64 }, ptr %a851 + call void @finch.gen.fail(ptr %t803, %S.ast.Node %t804, { ptr, i64, i64 } %t855) + store { ptr, i64, i64 } %t855, ptr %a856 + call void @finch_str_drop(ptr %a856) + call void @finch.drop.arr_str(ptr %a707) + br label %endif8797 +endif8797: + %t857 = load ptr, ptr %a1 + %t858 = icmp eq ptr %t857, null + br i1 %t858, label %panic8814, label %ok8815 +panic8814: + call void @finch_panic(ptr @.str.5657, i64 5373, ptr @.str.5658) + unreachable +ok8815: + %t859 = getelementptr inbounds %S.gen.Gen, ptr %t857, i32 0, i32 15 + %t860 = load i64, ptr %a639 + %t861 = load { ptr, i64, i64 }, ptr %t859 + %t862 = extractvalue { ptr, i64, i64 } %t861, 1 + %t863 = icmp uge i64 %t860, %t862 + br i1 %t863, label %range8816, label %inrange8817 +range8816: + call void @finch_panic_index(ptr @.str.5659, i64 5373, i64 %t860, i64 %t862) + unreachable +inrange8817: + %t864 = extractvalue { ptr, i64, i64 } %t861, 0 + %t865 = getelementptr inbounds %S.gen.FnSig, ptr %t864, i64 %t860 + %t866 = getelementptr inbounds %S.gen.FnSig, ptr %t865, i32 0, i32 10 + %t867 = load i1, ptr %t866 + br label %logic.from8818 +logic.from8818: + br i1 %t867, label %logic.rhs8819, label %logic.end8820 +logic.rhs8819: + %t868 = getelementptr inbounds %S.ast.Type, ptr %a273, i32 0, i32 0 + %t869 = load { ptr, i64, i64 }, ptr %t868 + store { ptr, i64, i64 } %t869, ptr %a870 + store { ptr, i64, i64 } { ptr @.str.5660, i64 6, i64 0 }, ptr %a871 + %t872 = call i32 @finch_str_eq(ptr %a870, ptr %a871) + %t873 = icmp ne i32 %t872, 0 + br label %logic.from8821 +logic.from8821: + br i1 %t873, label %logic.end8823, label %logic.rhs8822 +logic.rhs8822: + %t874 = getelementptr inbounds %S.ast.Type, ptr %a273, i32 0, i32 0 + %t875 = load { ptr, i64, i64 }, ptr %t874 + store { ptr, i64, i64 } %t875, ptr %a876 + store { ptr, i64, i64 } { ptr @.str.5661, i64 4, i64 0 }, ptr %a877 + %t878 = call i32 @finch_str_eq(ptr %a876, ptr %a877) + %t879 = icmp ne i32 %t878, 0 + br label %logic.rend8824 +logic.rend8824: + br label %logic.end8823 +logic.end8823: + %t880 = phi i1 [ true, %logic.from8821 ], [ %t879, %logic.rend8824 ] + br label %logic.rend8825 +logic.rend8825: + br label %logic.end8820 +logic.end8820: + %t881 = phi i1 [ false, %logic.from8818 ], [ %t880, %logic.rend8825 ] + br i1 %t881, label %then8826, label %endif8828 +then8826: + %t882 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 0 + %t883 = load i1, ptr %t882 + %t884 = xor i1 %t883, true + br i1 %t884, label %then8829, label %endif8831 +then8829: + %t885 = load ptr, ptr %a1 + %t886 = load %S.ast.Node, ptr %a2 + %t887 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t888 = load { ptr, i64, i64 }, ptr %t887 + store { ptr, i64, i64 } %t888, ptr %a890 + store { ptr, i64, i64 } { ptr @.str.5662, i64 28, i64 0 }, ptr %a891 + call void @finch_str_concat(ptr %a889, ptr %a890, ptr %a891) + %t892 = load { ptr, i64, i64 }, ptr %a889 + %t893 = load %S.ast.Type, ptr %a500 + %t894 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t893) + store { ptr, i64, i64 } %t892, ptr %a896 + store { ptr, i64, i64 } %t894, ptr %a897 + call void @finch_str_concat(ptr %a895, ptr %a896, ptr %a897) + store { ptr, i64, i64 } %t892, ptr %a898 + call void @finch_str_drop(ptr %a898) + store { ptr, i64, i64 } %t894, ptr %a899 call void @finch_str_drop(ptr %a899) - br label %endif8439 -endif8439: - br label %endif8432 -endif8432: - call void @finch_str_drop(ptr %a871) - br label %endif8426 -endif8426: - %t900 = load i1, ptr %a464 - br label %logic.from8440 -logic.from8440: - br i1 %t900, label %logic.rhs8441, label %logic.end8442 -logic.rhs8441: - %t901 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 2 - %t902 = getelementptr inbounds %S.gen.Val, ptr %t901, i32 0, i32 2 - %t903 = load i1, ptr %t902 - br label %logic.rend8443 -logic.rend8443: - br label %logic.end8442 -logic.end8442: - %t904 = phi i1 [ false, %logic.from8440 ], [ %t903, %logic.rend8443 ] - br i1 %t904, label %then8444, label %endif8446 -then8444: - %t905 = load ptr, ptr %a1 - %t906 = load { ptr, i64, i64 }, ptr %a463 - %t907 = load %S.ast.Type, ptr %a462 - call void @finch.gen.holdAddr(ptr %t905, { ptr, i64, i64 } %t906, %S.ast.Type %t907) - br label %endif8446 -endif8446: - %t908 = load ptr, ptr %a1 - %t909 = load i64, ptr %a601 - %t910 = load %S.ast.Node, ptr %a2 - %t911 = load %S.ast.Type, ptr %a462 - %t912 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t911) - store { ptr, i64, i64 } %t912, ptr %a914 - store { ptr, i64, i64 } { ptr @.str.5458, i64 1, i64 0 }, ptr %a915 - call void @finch_str_concat(ptr %a913, ptr %a914, ptr %a915) - store { ptr, i64, i64 } %t912, ptr %a916 - call void @finch_str_drop(ptr %a916) - %t917 = load { ptr, i64, i64 }, ptr %a913 - %t918 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 - %t919 = load { ptr, i64, i64 }, ptr %t918 - store { ptr, i64, i64 } %t917, ptr %a921 - store { ptr, i64, i64 } %t919, ptr %a922 - call void @finch_str_concat(ptr %a920, ptr %a921, ptr %a922) - store { ptr, i64, i64 } %t917, ptr %a923 - call void @finch_str_drop(ptr %a923) - %t924 = load { ptr, i64, i64 }, ptr %a920 - %t925 = load { ptr, i64, i64 }, ptr %a463 - %t926 = load %S.ast.Node, ptr %a13 - %t927 = call { ptr, i64, i64 } @finch.gen.rootVar(%S.ast.Node %t926) - %t928 = call %S.gen.Val @finch.gen.callFn(ptr %t908, i64 %t909, %S.ast.Node %t910, i64 1, { ptr, i64, i64 } %t924, { ptr, i64, i64 } %t925, { ptr, i64, i64 } %t927) - store { ptr, i64, i64 } %t924, ptr %a929 - call void @finch_str_drop(ptr %a929) + %t900 = load { ptr, i64, i64 }, ptr %a895 + store { ptr, i64, i64 } %t900, ptr %a902 + store { ptr, i64, i64 } { ptr @.str.5663, i64 30, i64 0 }, ptr %a903 + call void @finch_str_concat(ptr %a901, ptr %a902, ptr %a903) + store { ptr, i64, i64 } %t900, ptr %a904 + call void @finch_str_drop(ptr %a904) + %t905 = load { ptr, i64, i64 }, ptr %a901 + call void @finch.gen.fail(ptr %t885, %S.ast.Node %t886, { ptr, i64, i64 } %t905) + store { ptr, i64, i64 } %t905, ptr %a906 + call void @finch_str_drop(ptr %a906) + br label %endif8831 +endif8831: + %t907 = load %S.ast.Node, ptr %a13 + %t908 = call { ptr, i64, i64 } @finch.gen.rootVar(%S.ast.Node %t907) + store { ptr, i64, i64 } %t908, ptr %a909 + %t910 = getelementptr inbounds { ptr, i64, i64 }, ptr %a909, i32 0, i32 1 + %t911 = load i64, ptr %t910 + %t912 = icmp sgt i64 %t911, 0 + br i1 %t912, label %then8832, label %endif8834 +then8832: + %t913 = load ptr, ptr %a1 + %t914 = load { ptr, i64, i64 }, ptr %a909 + %t915 = call i64 @finch.gen.lookup(ptr %t913, { ptr, i64, i64 } %t914) + store i64 %t915, ptr %a916 + %t917 = load i64, ptr %a916 + %t918 = icmp sge i64 %t917, 0 + br label %logic.from8835 +logic.from8835: + br i1 %t918, label %logic.rhs8836, label %logic.end8837 +logic.rhs8836: + %t919 = load ptr, ptr %a1 + %t920 = load i64, ptr %a916 + %t921 = call %S.gen.Var @finch.gen.varAt(ptr %t919, i64 %t920) + %t922 = extractvalue %S.gen.Var %t921, 3 + store %S.gen.Var %t921, ptr %a923 + call void @finch.drop.S_gen_Var(ptr %a923) + br label %logic.rend8838 +logic.rend8838: + br label %logic.end8837 +logic.end8837: + %t924 = phi i1 [ false, %logic.from8835 ], [ %t922, %logic.rend8838 ] + br i1 %t924, label %then8839, label %endif8841 +then8839: + %t925 = load ptr, ptr %a1 + %t926 = load %S.ast.Node, ptr %a2 + %t927 = load { ptr, i64, i64 }, ptr %a909 + store { ptr, i64, i64 } { ptr @.str.5664, i64 19, i64 0 }, ptr %a929 store { ptr, i64, i64 } %t927, ptr %a930 - call void @finch_str_drop(ptr %a930) - store %S.gen.Val %t928, ptr %a931 - %t932 = load i1, ptr %a464 - br label %logic.from8447 -logic.from8447: - br i1 %t932, label %logic.rhs8448, label %logic.end8449 -logic.rhs8448: - %t933 = getelementptr inbounds %S.gen.Ref, ptr %a222, i32 0, i32 2 - %t934 = getelementptr inbounds %S.gen.Val, ptr %t933, i32 0, i32 2 - %t935 = load i1, ptr %t934 - br label %logic.rend8450 -logic.rend8450: - br label %logic.end8449 -logic.end8449: - %t936 = phi i1 [ false, %logic.from8447 ], [ %t935, %logic.rend8450 ] - br label %logic.from8451 -logic.from8451: - br i1 %t936, label %logic.rhs8452, label %logic.end8453 -logic.rhs8452: - %t937 = load ptr, ptr %a1 - %t938 = load %S.ast.Type, ptr %a462 - %t939 = call i1 @finch.gen.owning(ptr %t937, %S.ast.Type %t938) - br label %logic.rend8454 -logic.rend8454: - br label %logic.end8453 -logic.end8453: - %t940 = phi i1 [ false, %logic.from8451 ], [ %t939, %logic.rend8454 ] - br i1 %t940, label %then8455, label %endif8457 -then8455: - %t941 = load ptr, ptr %a1 - %t942 = load { ptr, i64, i64 }, ptr %a463 - %t943 = load %S.ast.Type, ptr %a462 - call void @finch.gen.dropAt(ptr %t941, { ptr, i64, i64 } %t942, %S.ast.Type %t943) - br label %endif8457 -endif8457: - %t944 = load ptr, ptr %a1 - %t945 = load i64, ptr %a228 - call void @finch.gen.heldEnd(ptr %t944, i64 %t945) - %t946 = load %S.gen.Val, ptr %a931 - call void @finch_str_drop(ptr %a463) - call void @finch.drop.S_ast_Type(ptr %a462) - call void @finch.drop.S_ast_Type(ptr %a235) - call void @finch.drop.S_gen_Ref(ptr %a222) - call void @finch.drop.arr_str(ptr %a200) - call void @finch.drop.S_ast_Node(ptr %a13) - ret %S.gen.Val %t946 -endif8367: - %t947 = load ptr, ptr %a1 + call void @finch_str_concat(ptr %a928, ptr %a929, ptr %a930) + %t931 = load { ptr, i64, i64 }, ptr %a928 + store { ptr, i64, i64 } %t931, ptr %a933 + store { ptr, i64, i64 } { ptr @.str.5665, i64 18, i64 0 }, ptr %a934 + call void @finch_str_concat(ptr %a932, ptr %a933, ptr %a934) + store { ptr, i64, i64 } %t931, ptr %a935 + call void @finch_str_drop(ptr %a935) + %t936 = load { ptr, i64, i64 }, ptr %a932 + call void @finch.gen.fail(ptr %t925, %S.ast.Node %t926, { ptr, i64, i64 } %t936) + store { ptr, i64, i64 } %t936, ptr %a937 + call void @finch_str_drop(ptr %a937) + br label %endif8841 +endif8841: + br label %endif8834 +endif8834: + call void @finch_str_drop(ptr %a909) + br label %endif8828 +endif8828: + %t938 = load i1, ptr %a502 + br label %logic.from8842 +logic.from8842: + br i1 %t938, label %logic.rhs8843, label %logic.end8844 +logic.rhs8843: + %t939 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 2 + %t940 = getelementptr inbounds %S.gen.Val, ptr %t939, i32 0, i32 2 + %t941 = load i1, ptr %t940 + br label %logic.rend8845 +logic.rend8845: + br label %logic.end8844 +logic.end8844: + %t942 = phi i1 [ false, %logic.from8842 ], [ %t941, %logic.rend8845 ] + br i1 %t942, label %then8846, label %endif8848 +then8846: + %t943 = load ptr, ptr %a1 + %t944 = load { ptr, i64, i64 }, ptr %a501 + %t945 = load %S.ast.Type, ptr %a500 + call void @finch.gen.holdAddr(ptr %t943, { ptr, i64, i64 } %t944, %S.ast.Type %t945) + br label %endif8848 +endif8848: + %t946 = load ptr, ptr %a1 + %t947 = load i64, ptr %a639 %t948 = load %S.ast.Node, ptr %a2 - %t949 = load %S.ast.Type, ptr %a235 + %t949 = load %S.ast.Type, ptr %a500 %t950 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t949) store { ptr, i64, i64 } %t950, ptr %a952 - store { ptr, i64, i64 } { ptr @.str.5459, i64 15, i64 0 }, ptr %a953 + store { ptr, i64, i64 } { ptr @.str.5666, i64 1, i64 0 }, ptr %a953 call void @finch_str_concat(ptr %a951, ptr %a952, ptr %a953) store { ptr, i64, i64 } %t950, ptr %a954 call void @finch_str_drop(ptr %a954) %t955 = load { ptr, i64, i64 }, ptr %a951 - call void @finch.gen.fail(ptr %t947, %S.ast.Node %t948, { ptr, i64, i64 } %t955) - store { ptr, i64, i64 } %t955, ptr %a956 - call void @finch_str_drop(ptr %a956) - call void @finch_str_drop(ptr %a463) - call void @finch.drop.S_ast_Type(ptr %a462) - call void @finch.drop.S_ast_Type(ptr %a235) - call void @finch.drop.S_gen_Ref(ptr %a222) - call void @finch.drop.arr_str(ptr %a200) + %t956 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 1 + %t957 = load { ptr, i64, i64 }, ptr %t956 + store { ptr, i64, i64 } %t955, ptr %a959 + store { ptr, i64, i64 } %t957, ptr %a960 + call void @finch_str_concat(ptr %a958, ptr %a959, ptr %a960) + store { ptr, i64, i64 } %t955, ptr %a961 + call void @finch_str_drop(ptr %a961) + %t962 = load { ptr, i64, i64 }, ptr %a958 + %t963 = load { ptr, i64, i64 }, ptr %a501 + %t964 = load %S.ast.Node, ptr %a13 + %t965 = call { ptr, i64, i64 } @finch.gen.rootVar(%S.ast.Node %t964) + %t966 = call %S.gen.Val @finch.gen.callFn(ptr %t946, i64 %t947, %S.ast.Node %t948, i64 1, { ptr, i64, i64 } %t962, { ptr, i64, i64 } %t963, { ptr, i64, i64 } %t965) + store { ptr, i64, i64 } %t962, ptr %a967 + call void @finch_str_drop(ptr %a967) + store { ptr, i64, i64 } %t965, ptr %a968 + call void @finch_str_drop(ptr %a968) + store %S.gen.Val %t966, ptr %a969 + %t970 = load i1, ptr %a502 + br label %logic.from8849 +logic.from8849: + br i1 %t970, label %logic.rhs8850, label %logic.end8851 +logic.rhs8850: + %t971 = getelementptr inbounds %S.gen.Ref, ptr %a260, i32 0, i32 2 + %t972 = getelementptr inbounds %S.gen.Val, ptr %t971, i32 0, i32 2 + %t973 = load i1, ptr %t972 + br label %logic.rend8852 +logic.rend8852: + br label %logic.end8851 +logic.end8851: + %t974 = phi i1 [ false, %logic.from8849 ], [ %t973, %logic.rend8852 ] + br label %logic.from8853 +logic.from8853: + br i1 %t974, label %logic.rhs8854, label %logic.end8855 +logic.rhs8854: + %t975 = load ptr, ptr %a1 + %t976 = load %S.ast.Type, ptr %a500 + %t977 = call i1 @finch.gen.owning(ptr %t975, %S.ast.Type %t976) + br label %logic.rend8856 +logic.rend8856: + br label %logic.end8855 +logic.end8855: + %t978 = phi i1 [ false, %logic.from8853 ], [ %t977, %logic.rend8856 ] + br i1 %t978, label %then8857, label %endif8859 +then8857: + %t979 = load ptr, ptr %a1 + %t980 = load { ptr, i64, i64 }, ptr %a501 + %t981 = load %S.ast.Type, ptr %a500 + call void @finch.gen.dropAt(ptr %t979, { ptr, i64, i64 } %t980, %S.ast.Type %t981) + br label %endif8859 +endif8859: + %t982 = load ptr, ptr %a1 + %t983 = load i64, ptr %a266 + call void @finch.gen.heldEnd(ptr %t982, i64 %t983) + %t984 = load %S.gen.Val, ptr %a969 + call void @finch_str_drop(ptr %a501) + call void @finch.drop.S_ast_Type(ptr %a500) + call void @finch.drop.S_ast_Type(ptr %a273) + call void @finch.drop.S_gen_Ref(ptr %a260) + call void @finch.drop.arr_str(ptr %a238) + call void @finch.drop.S_ast_Node(ptr %a13) + ret %S.gen.Val %t984 +endif8769: + %t985 = load ptr, ptr %a1 + %t986 = load %S.ast.Node, ptr %a2 + %t987 = load %S.ast.Type, ptr %a273 + %t988 = call { ptr, i64, i64 } @finch.ast.show(%S.ast.Type %t987) + store { ptr, i64, i64 } %t988, ptr %a990 + store { ptr, i64, i64 } { ptr @.str.5667, i64 15, i64 0 }, ptr %a991 + call void @finch_str_concat(ptr %a989, ptr %a990, ptr %a991) + store { ptr, i64, i64 } %t988, ptr %a992 + call void @finch_str_drop(ptr %a992) + %t993 = load { ptr, i64, i64 }, ptr %a989 + call void @finch.gen.fail(ptr %t985, %S.ast.Node %t986, { ptr, i64, i64 } %t993) + store { ptr, i64, i64 } %t993, ptr %a994 + call void @finch_str_drop(ptr %a994) + call void @finch_str_drop(ptr %a501) + call void @finch.drop.S_ast_Type(ptr %a500) + call void @finch.drop.S_ast_Type(ptr %a273) + call void @finch.drop.S_gen_Ref(ptr %a260) + call void @finch.drop.arr_str(ptr %a238) call void @finch.drop.S_ast_Node(ptr %a13) ret %S.gen.Val zeroinitializer } @@ -86496,11 +90495,11 @@ entry: %t6 = load { ptr, i64, i64 }, ptr %t5 %t7 = extractvalue { ptr, i64, i64 } %t6, 1 %t8 = icmp uge i64 0, %t7 - br i1 %t8, label %range8458, label %inrange8459 -range8458: - call void @finch_panic_index(ptr @.str.5460, i64 5169, i64 0, i64 %t7) + br i1 %t8, label %range8860, label %inrange8861 +range8860: + call void @finch_panic_index(ptr @.str.5668, i64 5404, i64 0, i64 %t7) unreachable -inrange8459: +inrange8861: %t9 = extractvalue { ptr, i64, i64 } %t6, 0 %t10 = getelementptr inbounds %S.ast.Type, ptr %t9, i64 0 %t11 = load %S.ast.Type, ptr %t10 @@ -86520,12 +90519,12 @@ inrange8459: store { ptr, i64, i64 } %t24, ptr %a25 %t26 = load ptr, ptr %a1 %t27 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.5461, i64 46, i64 0 }, ptr %a29 + store { ptr, i64, i64 } { ptr @.str.5669, i64 46, i64 0 }, ptr %a29 store { ptr, i64, i64 } %t27, ptr %a30 call void @finch_str_concat(ptr %a28, ptr %a29, ptr %a30) %t31 = load { ptr, i64, i64 }, ptr %a28 store { ptr, i64, i64 } %t31, ptr %a33 - store { ptr, i64, i64 } { ptr @.str.5462, i64 14, i64 0 }, ptr %a34 + store { ptr, i64, i64 } { ptr @.str.5670, i64 14, i64 0 }, ptr %a34 call void @finch_str_concat(ptr %a32, ptr %a33, ptr %a34) store { ptr, i64, i64 } %t31, ptr %a35 call void @finch_str_drop(ptr %a35) @@ -86536,11 +90535,11 @@ inrange8459: store { ptr, i64, i64 } %t37, ptr %a39 %t40 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t40, ptr %a41 - store { ptr, i64, i64 } { ptr @.str.5463, i64 4, i64 0 }, ptr %a42 + store { ptr, i64, i64 } { ptr @.str.5671, i64 4, i64 0 }, ptr %a42 %t43 = call i32 @finch_str_eq(ptr %a41, ptr %a42) %t44 = icmp ne i32 %t43, 0 - br i1 %t44, label %then8460, label %endif8462 -then8460: + br i1 %t44, label %then8862, label %endif8864 +then8862: %t45 = load ptr, ptr %a1 %t46 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t45, %S.ast.Node %t46, i64 1) @@ -86551,11 +90550,11 @@ then8460: %t51 = load { ptr, i64, i64 }, ptr %t50 %t52 = extractvalue { ptr, i64, i64 } %t51, 1 %t53 = icmp uge i64 1, %t52 - br i1 %t53, label %range8463, label %inrange8464 -range8463: - call void @finch_panic_index(ptr @.str.5464, i64 5175, i64 1, i64 %t52) + br i1 %t53, label %range8865, label %inrange8866 +range8865: + call void @finch_panic_index(ptr @.str.5672, i64 5410, i64 1, i64 %t52) unreachable -inrange8464: +inrange8866: %t54 = extractvalue { ptr, i64, i64 } %t51, 0 %t55 = getelementptr inbounds %S.ast.Node, ptr %t54, i64 1 %t56 = load %S.ast.Node, ptr %t55 @@ -86566,15 +90565,15 @@ inrange8464: %t61 = load { ptr, i64, i64 }, ptr %t60 %t62 = extractvalue { ptr, i64, i64 } %t61, 1 %t63 = icmp uge i64 1, %t62 - br i1 %t63, label %range8465, label %inrange8466 -range8465: - call void @finch_panic_index(ptr @.str.5465, i64 5175, i64 1, i64 %t62) + br i1 %t63, label %range8867, label %inrange8868 +range8867: + call void @finch_panic_index(ptr @.str.5673, i64 5410, i64 1, i64 %t62) unreachable -inrange8466: +inrange8868: %t64 = extractvalue { ptr, i64, i64 } %t61, 0 %t65 = getelementptr inbounds %S.ast.Node, ptr %t64, i64 1 %t66 = load %S.ast.Node, ptr %t65 - %t67 = call %S.gen.Val @finch.gen.coerce(ptr %t48, %S.gen.Val %t58, %S.ast.Type %t59, %S.ast.Node %t66, { ptr, i64, i64 } { ptr @.str.5466, i64 11, i64 0 }) + %t67 = call %S.gen.Val @finch.gen.coerce(ptr %t48, %S.gen.Val %t58, %S.ast.Type %t59, %S.ast.Node %t66, { ptr, i64, i64 } { ptr @.str.5674, i64 11, i64 0 }) store %S.gen.Val %t58, ptr %a68 call void @finch.drop.S_gen_Val(ptr %a68) %t69 = call { ptr, i64, i64 } @finch.gen.own(ptr %t47, %S.gen.Val %t67) @@ -86583,16 +90582,16 @@ inrange8466: store { ptr, i64, i64 } %t69, ptr %a71 %t72 = load ptr, ptr %a1 %t73 = load { ptr, i64, i64 }, ptr %a39 - %t74 = call { ptr, i64, i64 } @finch.gen.load(ptr %t72, { ptr, i64, i64 } { ptr @.str.5467, i64 3, i64 0 }, { ptr, i64, i64 } %t73) + %t74 = call { ptr, i64, i64 } @finch.gen.load(ptr %t72, { ptr, i64, i64 } { ptr @.str.5675, i64 3, i64 0 }, { ptr, i64, i64 } %t73) store { ptr, i64, i64 } %t74, ptr %a75 %t76 = load ptr, ptr %a1 %t77 = load { ptr, i64, i64 }, ptr %a75 - store { ptr, i64, i64 } { ptr @.str.5468, i64 8, i64 0 }, ptr %a79 + store { ptr, i64, i64 } { ptr @.str.5676, i64 8, i64 0 }, ptr %a79 store { ptr, i64, i64 } %t77, ptr %a80 call void @finch_str_concat(ptr %a78, ptr %a79, ptr %a80) %t81 = load { ptr, i64, i64 }, ptr %a78 store { ptr, i64, i64 } %t81, ptr %a83 - store { ptr, i64, i64 } { ptr @.str.5469, i64 3, i64 0 }, ptr %a84 + store { ptr, i64, i64 } { ptr @.str.5677, i64 3, i64 0 }, ptr %a84 call void @finch_str_concat(ptr %a82, ptr %a83, ptr %a84) store { ptr, i64, i64 } %t81, ptr %a85 call void @finch_str_drop(ptr %a85) @@ -86603,12 +90602,12 @@ inrange8466: store { ptr, i64, i64 } %t87, ptr %a89 %t90 = load ptr, ptr %a1 %t91 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.5470, i64 33, i64 0 }, ptr %a93 + store { ptr, i64, i64 } { ptr @.str.5678, i64 33, i64 0 }, ptr %a93 store { ptr, i64, i64 } %t91, ptr %a94 call void @finch_str_concat(ptr %a92, ptr %a93, ptr %a94) %t95 = load { ptr, i64, i64 }, ptr %a92 store { ptr, i64, i64 } %t95, ptr %a97 - store { ptr, i64, i64 } { ptr @.str.5471, i64 6, i64 0 }, ptr %a98 + store { ptr, i64, i64 } { ptr @.str.5679, i64 6, i64 0 }, ptr %a98 call void @finch_str_concat(ptr %a96, ptr %a97, ptr %a98) store { ptr, i64, i64 } %t95, ptr %a99 call void @finch_str_drop(ptr %a99) @@ -86621,7 +90620,7 @@ inrange8466: call void @finch_str_drop(ptr %a105) %t106 = load { ptr, i64, i64 }, ptr %a102 store { ptr, i64, i64 } %t106, ptr %a108 - store { ptr, i64, i64 } { ptr @.str.5472, i64 6, i64 0 }, ptr %a109 + store { ptr, i64, i64 } { ptr @.str.5680, i64 6, i64 0 }, ptr %a109 call void @finch_str_concat(ptr %a107, ptr %a108, ptr %a109) store { ptr, i64, i64 } %t106, ptr %a110 call void @finch_str_drop(ptr %a110) @@ -86638,7 +90637,7 @@ inrange8466: call void @finch_str_drop(ptr %a119) %t120 = load { ptr, i64, i64 }, ptr %a115 store { ptr, i64, i64 } %t120, ptr %a122 - store { ptr, i64, i64 } { ptr @.str.5473, i64 1, i64 0 }, ptr %a123 + store { ptr, i64, i64 } { ptr @.str.5681, i64 1, i64 0 }, ptr %a123 call void @finch_str_concat(ptr %a121, ptr %a122, ptr %a123) store { ptr, i64, i64 } %t120, ptr %a124 call void @finch_str_drop(ptr %a124) @@ -86648,19 +90647,19 @@ inrange8466: call void @finch_str_drop(ptr %a126) %t127 = load ptr, ptr %a1 %t128 = load { ptr, i64, i64 }, ptr %a3 - %t129 = call { ptr, i64, i64 } @finch.gen.load(ptr %t127, { ptr, i64, i64 } { ptr @.str.5474, i64 3, i64 0 }, { ptr, i64, i64 } %t128) + %t129 = call { ptr, i64, i64 } @finch.gen.load(ptr %t127, { ptr, i64, i64 } { ptr @.str.5682, i64 3, i64 0 }, { ptr, i64, i64 } %t128) store { ptr, i64, i64 } %t129, ptr %a130 %t131 = load ptr, ptr %a1 %t132 = load { ptr, i64, i64 }, ptr %a19 %t133 = load { ptr, i64, i64 }, ptr %a71 %t134 = load ptr, ptr %a1 %t135 = load { ptr, i64, i64 }, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.5475, i64 23, i64 0 }, ptr %a137 + store { ptr, i64, i64 } { ptr @.str.5683, i64 23, i64 0 }, ptr %a137 store { ptr, i64, i64 } %t135, ptr %a138 call void @finch_str_concat(ptr %a136, ptr %a137, ptr %a138) %t139 = load { ptr, i64, i64 }, ptr %a136 store { ptr, i64, i64 } %t139, ptr %a141 - store { ptr, i64, i64 } { ptr @.str.5476, i64 6, i64 0 }, ptr %a142 + store { ptr, i64, i64 } { ptr @.str.5684, i64 6, i64 0 }, ptr %a142 call void @finch_str_concat(ptr %a140, ptr %a141, ptr %a142) store { ptr, i64, i64 } %t139, ptr %a143 call void @finch_str_drop(ptr %a143) @@ -86673,7 +90672,7 @@ inrange8466: call void @finch_str_drop(ptr %a149) %t150 = load { ptr, i64, i64 }, ptr %a146 store { ptr, i64, i64 } %t150, ptr %a152 - store { ptr, i64, i64 } { ptr @.str.5477, i64 6, i64 0 }, ptr %a153 + store { ptr, i64, i64 } { ptr @.str.5685, i64 6, i64 0 }, ptr %a153 call void @finch_str_concat(ptr %a151, ptr %a152, ptr %a153) store { ptr, i64, i64 } %t150, ptr %a154 call void @finch_str_drop(ptr %a154) @@ -86694,8 +90693,8 @@ inrange8466: %t165 = load ptr, ptr %a1 %t166 = load { ptr, i64, i64 }, ptr %a89 %t167 = load { ptr, i64, i64 }, ptr %a39 - call void @finch.gen.store(ptr %t165, { ptr, i64, i64 } { ptr @.str.5478, i64 3, i64 0 }, { ptr, i64, i64 } %t166, { ptr, i64, i64 } %t167) - %t168 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5479, i64 4, i64 0 }) + call void @finch.gen.store(ptr %t165, { ptr, i64, i64 } { ptr @.str.5686, i64 3, i64 0 }, { ptr, i64, i64 } %t166, { ptr, i64, i64 } %t167) + %t168 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5687, i64 4, i64 0 }) %t169 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t168, 1 call void @finch_str_drop(ptr %a130) call void @finch_str_drop(ptr %a89) @@ -86706,30 +90705,30 @@ inrange8466: call void @finch_str_drop(ptr %a19) call void @finch.drop.S_ast_Type(ptr %a15) ret %S.gen.Val %t169 -endif8462: +endif8864: %t170 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t170, ptr %a171 - store { ptr, i64, i64 } { ptr @.str.5480, i64 3, i64 0 }, ptr %a172 + store { ptr, i64, i64 } { ptr @.str.5688, i64 3, i64 0 }, ptr %a172 %t173 = call i32 @finch_str_eq(ptr %a171, ptr %a172) %t174 = icmp ne i32 %t173, 0 - br i1 %t174, label %then8467, label %endif8469 -then8467: + br i1 %t174, label %then8869, label %endif8871 +then8869: %t175 = load ptr, ptr %a1 %t176 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t175, %S.ast.Node %t176, i64 0) %t177 = load ptr, ptr %a1 %t178 = load { ptr, i64, i64 }, ptr %a39 - %t179 = call { ptr, i64, i64 } @finch.gen.load(ptr %t177, { ptr, i64, i64 } { ptr @.str.5481, i64 3, i64 0 }, { ptr, i64, i64 } %t178) + %t179 = call { ptr, i64, i64 } @finch.gen.load(ptr %t177, { ptr, i64, i64 } { ptr @.str.5689, i64 3, i64 0 }, { ptr, i64, i64 } %t178) store { ptr, i64, i64 } %t179, ptr %a180 %t181 = load ptr, ptr %a1 %t182 = load ptr, ptr %a1 %t183 = load { ptr, i64, i64 }, ptr %a180 - store { ptr, i64, i64 } { ptr @.str.5482, i64 12, i64 0 }, ptr %a185 + store { ptr, i64, i64 } { ptr @.str.5690, i64 12, i64 0 }, ptr %a185 store { ptr, i64, i64 } %t183, ptr %a186 call void @finch_str_concat(ptr %a184, ptr %a185, ptr %a186) %t187 = load { ptr, i64, i64 }, ptr %a184 store { ptr, i64, i64 } %t187, ptr %a189 - store { ptr, i64, i64 } { ptr @.str.5483, i64 3, i64 0 }, ptr %a190 + store { ptr, i64, i64 } { ptr @.str.5691, i64 3, i64 0 }, ptr %a190 call void @finch_str_concat(ptr %a188, ptr %a189, ptr %a190) store { ptr, i64, i64 } %t187, ptr %a191 call void @finch_str_drop(ptr %a191) @@ -86738,17 +90737,17 @@ then8467: store { ptr, i64, i64 } %t192, ptr %a194 call void @finch_str_drop(ptr %a194) %t195 = load %S.ast.Node, ptr %a2 - call void @finch.gen.panicIf(ptr %t181, { ptr, i64, i64 } %t193, { ptr, i64, i64 } { ptr @.str.5484, i64 23, i64 0 }, %S.ast.Node %t195) + call void @finch.gen.panicIf(ptr %t181, { ptr, i64, i64 } %t193, { ptr, i64, i64 } { ptr @.str.5692, i64 23, i64 0 }, %S.ast.Node %t195) store { ptr, i64, i64 } %t193, ptr %a196 call void @finch_str_drop(ptr %a196) %t197 = load ptr, ptr %a1 %t198 = load { ptr, i64, i64 }, ptr %a180 - store { ptr, i64, i64 } { ptr @.str.5485, i64 8, i64 0 }, ptr %a200 + store { ptr, i64, i64 } { ptr @.str.5693, i64 8, i64 0 }, ptr %a200 store { ptr, i64, i64 } %t198, ptr %a201 call void @finch_str_concat(ptr %a199, ptr %a200, ptr %a201) %t202 = load { ptr, i64, i64 }, ptr %a199 store { ptr, i64, i64 } %t202, ptr %a204 - store { ptr, i64, i64 } { ptr @.str.5486, i64 3, i64 0 }, ptr %a205 + store { ptr, i64, i64 } { ptr @.str.5694, i64 3, i64 0 }, ptr %a205 call void @finch_str_concat(ptr %a203, ptr %a204, ptr %a205) store { ptr, i64, i64 } %t202, ptr %a206 call void @finch_str_drop(ptr %a206) @@ -86759,18 +90758,18 @@ then8467: store { ptr, i64, i64 } %t208, ptr %a210 %t211 = load ptr, ptr %a1 %t212 = load { ptr, i64, i64 }, ptr %a3 - %t213 = call { ptr, i64, i64 } @finch.gen.load(ptr %t211, { ptr, i64, i64 } { ptr @.str.5487, i64 3, i64 0 }, { ptr, i64, i64 } %t212) + %t213 = call { ptr, i64, i64 } @finch.gen.load(ptr %t211, { ptr, i64, i64 } { ptr @.str.5695, i64 3, i64 0 }, { ptr, i64, i64 } %t212) store { ptr, i64, i64 } %t213, ptr %a214 %t215 = load ptr, ptr %a1 %t216 = load { ptr, i64, i64 }, ptr %a19 %t217 = load ptr, ptr %a1 %t218 = load { ptr, i64, i64 }, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.5488, i64 23, i64 0 }, ptr %a220 + store { ptr, i64, i64 } { ptr @.str.5696, i64 23, i64 0 }, ptr %a220 store { ptr, i64, i64 } %t218, ptr %a221 call void @finch_str_concat(ptr %a219, ptr %a220, ptr %a221) %t222 = load { ptr, i64, i64 }, ptr %a219 store { ptr, i64, i64 } %t222, ptr %a224 - store { ptr, i64, i64 } { ptr @.str.5489, i64 6, i64 0 }, ptr %a225 + store { ptr, i64, i64 } { ptr @.str.5697, i64 6, i64 0 }, ptr %a225 call void @finch_str_concat(ptr %a223, ptr %a224, ptr %a225) store { ptr, i64, i64 } %t222, ptr %a226 call void @finch_str_drop(ptr %a226) @@ -86783,7 +90782,7 @@ then8467: call void @finch_str_drop(ptr %a232) %t233 = load { ptr, i64, i64 }, ptr %a229 store { ptr, i64, i64 } %t233, ptr %a235 - store { ptr, i64, i64 } { ptr @.str.5490, i64 6, i64 0 }, ptr %a236 + store { ptr, i64, i64 } { ptr @.str.5698, i64 6, i64 0 }, ptr %a236 call void @finch_str_concat(ptr %a234, ptr %a235, ptr %a236) store { ptr, i64, i64 } %t233, ptr %a237 call void @finch_str_drop(ptr %a237) @@ -86805,7 +90804,7 @@ then8467: %t250 = load ptr, ptr %a1 %t251 = load { ptr, i64, i64 }, ptr %a210 %t252 = load { ptr, i64, i64 }, ptr %a39 - call void @finch.gen.store(ptr %t250, { ptr, i64, i64 } { ptr @.str.5491, i64 3, i64 0 }, { ptr, i64, i64 } %t251, { ptr, i64, i64 } %t252) + call void @finch.gen.store(ptr %t250, { ptr, i64, i64 } { ptr @.str.5699, i64 3, i64 0 }, { ptr, i64, i64 } %t251, { ptr, i64, i64 } %t252) %t253 = load { ptr, i64, i64 }, ptr %a249 store { ptr, i64, i64 } %t253, ptr %a254 call void @finch_str_copy(ptr %a255, ptr %a254) @@ -86829,53 +90828,53 @@ then8467: call void @finch_str_drop(ptr %a19) call void @finch.drop.S_ast_Type(ptr %a15) ret %S.gen.Val %t266 -endif8469: +endif8871: %t267 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t267, ptr %a268 - store { ptr, i64, i64 } { ptr @.str.5492, i64 5, i64 0 }, ptr %a269 + store { ptr, i64, i64 } { ptr @.str.5700, i64 5, i64 0 }, ptr %a269 %t270 = call i32 @finch_str_eq(ptr %a268, ptr %a269) %t271 = icmp ne i32 %t270, 0 - br i1 %t271, label %then8470, label %endif8472 -then8470: + br i1 %t271, label %then8872, label %endif8874 +then8872: %t272 = load ptr, ptr %a1 %t273 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t272, %S.ast.Node %t273, i64 0) %t274 = load ptr, ptr %a1 %t275 = load { ptr, i64, i64 }, ptr %a3 %t276 = load %S.ast.Type, ptr %a4 - call void @finch.gen.dropFrom(ptr %t274, { ptr, i64, i64 } %t275, %S.ast.Type %t276, { ptr, i64, i64 } { ptr @.str.5493, i64 1, i64 0 }) + call void @finch.gen.dropFrom(ptr %t274, { ptr, i64, i64 } %t275, %S.ast.Type %t276, { ptr, i64, i64 } { ptr @.str.5701, i64 1, i64 0 }) %t277 = load ptr, ptr %a1 %t278 = load { ptr, i64, i64 }, ptr %a39 - call void @finch.gen.store(ptr %t277, { ptr, i64, i64 } { ptr @.str.5494, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.5495, i64 1, i64 0 }, { ptr, i64, i64 } %t278) - %t279 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5496, i64 4, i64 0 }) + call void @finch.gen.store(ptr %t277, { ptr, i64, i64 } { ptr @.str.5702, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.5703, i64 1, i64 0 }, { ptr, i64, i64 } %t278) + %t279 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5704, i64 4, i64 0 }) %t280 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t279, 1 call void @finch_str_drop(ptr %a39) call void @finch_str_drop(ptr %a25) call void @finch_str_drop(ptr %a19) call void @finch.drop.S_ast_Type(ptr %a15) ret %S.gen.Val %t280 -endif8472: +endif8874: %t281 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t281, ptr %a282 - store { ptr, i64, i64 } { ptr @.str.5497, i64 4, i64 0 }, ptr %a283 + store { ptr, i64, i64 } { ptr @.str.5705, i64 4, i64 0 }, ptr %a283 %t284 = call i32 @finch_str_eq(ptr %a282, ptr %a283) %t285 = icmp ne i32 %t284, 0 - br label %logic.from8473 -logic.from8473: - br i1 %t285, label %logic.end8475, label %logic.rhs8474 -logic.rhs8474: + br label %logic.from8875 +logic.from8875: + br i1 %t285, label %logic.end8877, label %logic.rhs8876 +logic.rhs8876: %t286 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t286, ptr %a287 - store { ptr, i64, i64 } { ptr @.str.5498, i64 8, i64 0 }, ptr %a288 + store { ptr, i64, i64 } { ptr @.str.5706, i64 8, i64 0 }, ptr %a288 %t289 = call i32 @finch_str_eq(ptr %a287, ptr %a288) %t290 = icmp ne i32 %t289, 0 - br label %logic.rend8476 -logic.rend8476: - br label %logic.end8475 -logic.end8475: - %t291 = phi i1 [ true, %logic.from8473 ], [ %t290, %logic.rend8476 ] - br i1 %t291, label %then8477, label %endif8479 -then8477: + br label %logic.rend8878 +logic.rend8878: + br label %logic.end8877 +logic.end8877: + %t291 = phi i1 [ true, %logic.from8875 ], [ %t290, %logic.rend8878 ] + br i1 %t291, label %then8879, label %endif8881 +then8879: %t292 = load ptr, ptr %a1 %t293 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t292, %S.ast.Node %t293, i64 1) @@ -86885,11 +90884,11 @@ then8477: %t297 = load { ptr, i64, i64 }, ptr %t296 %t298 = extractvalue { ptr, i64, i64 } %t297, 1 %t299 = icmp uge i64 1, %t298 - br i1 %t299, label %range8480, label %inrange8481 -range8480: - call void @finch_panic_index(ptr @.str.5499, i64 5202, i64 1, i64 %t298) + br i1 %t299, label %range8882, label %inrange8883 +range8882: + call void @finch_panic_index(ptr @.str.5707, i64 5437, i64 1, i64 %t298) unreachable -inrange8481: +inrange8883: %t300 = extractvalue { ptr, i64, i64 } %t297, 0 %t301 = getelementptr inbounds %S.ast.Node, ptr %t300, i64 1 %t302 = load %S.ast.Node, ptr %t301 @@ -86900,52 +90899,52 @@ inrange8481: %t307 = load { ptr, i64, i64 }, ptr %t306 %t308 = extractvalue { ptr, i64, i64 } %t307, 1 %t309 = icmp uge i64 1, %t308 - br i1 %t309, label %range8482, label %inrange8483 -range8482: - call void @finch_panic_index(ptr @.str.5500, i64 5202, i64 1, i64 %t308) + br i1 %t309, label %range8884, label %inrange8885 +range8884: + call void @finch_panic_index(ptr @.str.5708, i64 5437, i64 1, i64 %t308) unreachable -inrange8483: +inrange8885: %t310 = extractvalue { ptr, i64, i64 } %t307, 0 %t311 = getelementptr inbounds %S.ast.Node, ptr %t310, i64 1 %t312 = load %S.ast.Node, ptr %t311 - %t313 = call %S.gen.Val @finch.gen.coerce(ptr %t294, %S.gen.Val %t304, %S.ast.Type %t305, %S.ast.Node %t312, { ptr, i64, i64 } { ptr @.str.5501, i64 21, i64 0 }) + %t313 = call %S.gen.Val @finch.gen.coerce(ptr %t294, %S.gen.Val %t304, %S.ast.Type %t305, %S.ast.Node %t312, { ptr, i64, i64 } { ptr @.str.5709, i64 21, i64 0 }) store %S.gen.Val %t304, ptr %a314 call void @finch.drop.S_gen_Val(ptr %a314) store %S.gen.Val %t313, ptr %a315 %t316 = load ptr, ptr %a1 - %t317 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t316, { ptr, i64, i64 } { ptr @.str.5502, i64 3, i64 0 }) + %t317 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t316, { ptr, i64, i64 } { ptr @.str.5710, i64 3, i64 0 }) store { ptr, i64, i64 } %t317, ptr %a318 %t319 = load ptr, ptr %a1 %t320 = load { ptr, i64, i64 }, ptr %a318 - call void @finch.gen.store(ptr %t319, { ptr, i64, i64 } { ptr @.str.5503, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.5504, i64 2, i64 0 }, { ptr, i64, i64 } %t320) + call void @finch.gen.store(ptr %t319, { ptr, i64, i64 } { ptr @.str.5711, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.5712, i64 2, i64 0 }, { ptr, i64, i64 } %t320) %t321 = load ptr, ptr %a1 %t322 = load { ptr, i64, i64 }, ptr %a39 - %t323 = call { ptr, i64, i64 } @finch.gen.load(ptr %t321, { ptr, i64, i64 } { ptr @.str.5505, i64 3, i64 0 }, { ptr, i64, i64 } %t322) + %t323 = call { ptr, i64, i64 } @finch.gen.load(ptr %t321, { ptr, i64, i64 } { ptr @.str.5713, i64 3, i64 0 }, { ptr, i64, i64 } %t322) store { ptr, i64, i64 } %t323, ptr %a324 %t325 = load ptr, ptr %a1 %t326 = load { ptr, i64, i64 }, ptr %a3 - %t327 = call { ptr, i64, i64 } @finch.gen.load(ptr %t325, { ptr, i64, i64 } { ptr @.str.5506, i64 3, i64 0 }, { ptr, i64, i64 } %t326) + %t327 = call { ptr, i64, i64 } @finch.gen.load(ptr %t325, { ptr, i64, i64 } { ptr @.str.5714, i64 3, i64 0 }, { ptr, i64, i64 } %t326) store { ptr, i64, i64 } %t327, ptr %a328 %t329 = load ptr, ptr %a1 - %t330 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t329, { ptr, i64, i64 } { ptr @.str.5507, i64 3, i64 0 }) + %t330 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t329, { ptr, i64, i64 } { ptr @.str.5715, i64 3, i64 0 }) store { ptr, i64, i64 } %t330, ptr %a331 %t332 = load ptr, ptr %a1 %t333 = load { ptr, i64, i64 }, ptr %a331 - call void @finch.gen.store(ptr %t332, { ptr, i64, i64 } { ptr @.str.5508, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.5509, i64 1, i64 0 }, { ptr, i64, i64 } %t333) + call void @finch.gen.store(ptr %t332, { ptr, i64, i64 } { ptr @.str.5716, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.5717, i64 1, i64 0 }, { ptr, i64, i64 } %t333) %t334 = load ptr, ptr %a1 - %t335 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t334, { ptr, i64, i64 } { ptr @.str.5510, i64 9, i64 0 }) + %t335 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t334, { ptr, i64, i64 } { ptr @.str.5718, i64 9, i64 0 }) store { ptr, i64, i64 } %t335, ptr %a336 %t337 = load ptr, ptr %a1 - %t338 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t337, { ptr, i64, i64 } { ptr @.str.5511, i64 9, i64 0 }) + %t338 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t337, { ptr, i64, i64 } { ptr @.str.5719, i64 9, i64 0 }) store { ptr, i64, i64 } %t338, ptr %a339 %t340 = load ptr, ptr %a1 - %t341 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t340, { ptr, i64, i64 } { ptr @.str.5512, i64 8, i64 0 }) + %t341 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t340, { ptr, i64, i64 } { ptr @.str.5720, i64 8, i64 0 }) store { ptr, i64, i64 } %t341, ptr %a342 %t343 = load ptr, ptr %a1 - %t344 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t343, { ptr, i64, i64 } { ptr @.str.5513, i64 9, i64 0 }) + %t344 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t343, { ptr, i64, i64 } { ptr @.str.5721, i64 9, i64 0 }) store { ptr, i64, i64 } %t344, ptr %a345 %t346 = load ptr, ptr %a1 - %t347 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t346, { ptr, i64, i64 } { ptr @.str.5514, i64 8, i64 0 }) + %t347 = call { ptr, i64, i64 } @finch.gen.newLabel(ptr %t346, { ptr, i64, i64 } { ptr @.str.5722, i64 8, i64 0 }) store { ptr, i64, i64 } %t347, ptr %a348 %t349 = load ptr, ptr %a1 %t350 = load { ptr, i64, i64 }, ptr %a336 @@ -86955,16 +90954,16 @@ inrange8483: call void @finch.gen.label(ptr %t351, { ptr, i64, i64 } %t352) %t353 = load ptr, ptr %a1 %t354 = load { ptr, i64, i64 }, ptr %a331 - %t355 = call { ptr, i64, i64 } @finch.gen.load(ptr %t353, { ptr, i64, i64 } { ptr @.str.5515, i64 3, i64 0 }, { ptr, i64, i64 } %t354) + %t355 = call { ptr, i64, i64 } @finch.gen.load(ptr %t353, { ptr, i64, i64 } { ptr @.str.5723, i64 3, i64 0 }, { ptr, i64, i64 } %t354) store { ptr, i64, i64 } %t355, ptr %a356 %t357 = load ptr, ptr %a1 %t358 = load { ptr, i64, i64 }, ptr %a356 - store { ptr, i64, i64 } { ptr @.str.5516, i64 13, i64 0 }, ptr %a360 + store { ptr, i64, i64 } { ptr @.str.5724, i64 13, i64 0 }, ptr %a360 store { ptr, i64, i64 } %t358, ptr %a361 call void @finch_str_concat(ptr %a359, ptr %a360, ptr %a361) %t362 = load { ptr, i64, i64 }, ptr %a359 store { ptr, i64, i64 } %t362, ptr %a364 - store { ptr, i64, i64 } { ptr @.str.5517, i64 2, i64 0 }, ptr %a365 + store { ptr, i64, i64 } { ptr @.str.5725, i64 2, i64 0 }, ptr %a365 call void @finch_str_concat(ptr %a363, ptr %a364, ptr %a365) store { ptr, i64, i64 } %t362, ptr %a366 call void @finch_str_drop(ptr %a366) @@ -86992,12 +90991,12 @@ inrange8483: %t384 = load { ptr, i64, i64 }, ptr %a19 %t385 = load ptr, ptr %a1 %t386 = load { ptr, i64, i64 }, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.5518, i64 23, i64 0 }, ptr %a388 + store { ptr, i64, i64 } { ptr @.str.5726, i64 23, i64 0 }, ptr %a388 store { ptr, i64, i64 } %t386, ptr %a389 call void @finch_str_concat(ptr %a387, ptr %a388, ptr %a389) %t390 = load { ptr, i64, i64 }, ptr %a387 store { ptr, i64, i64 } %t390, ptr %a392 - store { ptr, i64, i64 } { ptr @.str.5519, i64 6, i64 0 }, ptr %a393 + store { ptr, i64, i64 } { ptr @.str.5727, i64 6, i64 0 }, ptr %a393 call void @finch_str_concat(ptr %a391, ptr %a392, ptr %a393) store { ptr, i64, i64 } %t390, ptr %a394 call void @finch_str_drop(ptr %a394) @@ -87010,7 +91009,7 @@ inrange8483: call void @finch_str_drop(ptr %a400) %t401 = load { ptr, i64, i64 }, ptr %a397 store { ptr, i64, i64 } %t401, ptr %a403 - store { ptr, i64, i64 } { ptr @.str.5520, i64 6, i64 0 }, ptr %a404 + store { ptr, i64, i64 } { ptr @.str.5728, i64 6, i64 0 }, ptr %a404 call void @finch_str_concat(ptr %a402, ptr %a403, ptr %a404) store { ptr, i64, i64 } %t401, ptr %a405 call void @finch_str_drop(ptr %a405) @@ -87050,7 +91049,7 @@ inrange8483: %t436 = load %S.ast.Type, ptr %a435 %t437 = insertvalue %S.gen.Val %t431, %S.ast.Type %t436, 1 %t438 = load %S.ast.Node, ptr %a2 - %t439 = call %S.gen.Val @finch.gen.compare(ptr %t424, { ptr, i64, i64 } { ptr @.str.5521, i64 2, i64 0 }, %S.gen.Val %t425, %S.gen.Val %t437, %S.ast.Node %t438) + %t439 = call %S.gen.Val @finch.gen.compare(ptr %t424, { ptr, i64, i64 } { ptr @.str.5729, i64 2, i64 0 }, %S.gen.Val %t425, %S.gen.Val %t437, %S.ast.Node %t438) store %S.gen.Val %t437, ptr %a440 call void @finch.drop.S_gen_Val(ptr %a440) %t441 = extractvalue %S.gen.Val %t439, 0 @@ -87071,7 +91070,7 @@ inrange8483: %t453 = load ptr, ptr %a1 %t454 = load { ptr, i64, i64 }, ptr %a356 %t455 = load { ptr, i64, i64 }, ptr %a318 - call void @finch.gen.store(ptr %t453, { ptr, i64, i64 } { ptr @.str.5522, i64 3, i64 0 }, { ptr, i64, i64 } %t454, { ptr, i64, i64 } %t455) + call void @finch.gen.store(ptr %t453, { ptr, i64, i64 } { ptr @.str.5730, i64 3, i64 0 }, { ptr, i64, i64 } %t454, { ptr, i64, i64 } %t455) %t456 = load ptr, ptr %a1 %t457 = load { ptr, i64, i64 }, ptr %a348 call void @finch.gen.br(ptr %t456, { ptr, i64, i64 } %t457) @@ -87081,12 +91080,12 @@ inrange8483: %t460 = load ptr, ptr %a1 %t461 = load ptr, ptr %a1 %t462 = load { ptr, i64, i64 }, ptr %a356 - store { ptr, i64, i64 } { ptr @.str.5524, i64 8, i64 0 }, ptr %a464 + store { ptr, i64, i64 } { ptr @.str.5732, i64 8, i64 0 }, ptr %a464 store { ptr, i64, i64 } %t462, ptr %a465 call void @finch_str_concat(ptr %a463, ptr %a464, ptr %a465) %t466 = load { ptr, i64, i64 }, ptr %a463 store { ptr, i64, i64 } %t466, ptr %a468 - store { ptr, i64, i64 } { ptr @.str.5525, i64 3, i64 0 }, ptr %a469 + store { ptr, i64, i64 } { ptr @.str.5733, i64 3, i64 0 }, ptr %a469 call void @finch_str_concat(ptr %a467, ptr %a468, ptr %a469) store { ptr, i64, i64 } %t466, ptr %a470 call void @finch_str_drop(ptr %a470) @@ -87095,7 +91094,7 @@ inrange8483: store { ptr, i64, i64 } %t471, ptr %a473 call void @finch_str_drop(ptr %a473) %t474 = load { ptr, i64, i64 }, ptr %a331 - call void @finch.gen.store(ptr %t460, { ptr, i64, i64 } { ptr @.str.5523, i64 3, i64 0 }, { ptr, i64, i64 } %t472, { ptr, i64, i64 } %t474) + call void @finch.gen.store(ptr %t460, { ptr, i64, i64 } { ptr @.str.5731, i64 3, i64 0 }, { ptr, i64, i64 } %t472, { ptr, i64, i64 } %t474) store { ptr, i64, i64 } %t472, ptr %a475 call void @finch_str_drop(ptr %a475) %t476 = load ptr, ptr %a1 @@ -87109,21 +91108,21 @@ inrange8483: call void @finch.gen.release(ptr %t480, %S.gen.Val %t481) %t482 = load ptr, ptr %a1 %t483 = load { ptr, i64, i64 }, ptr %a318 - %t484 = call { ptr, i64, i64 } @finch.gen.load(ptr %t482, { ptr, i64, i64 } { ptr @.str.5526, i64 3, i64 0 }, { ptr, i64, i64 } %t483) + %t484 = call { ptr, i64, i64 } @finch.gen.load(ptr %t482, { ptr, i64, i64 } { ptr @.str.5734, i64 3, i64 0 }, { ptr, i64, i64 } %t483) store { ptr, i64, i64 } %t484, ptr %a485 %t486 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t486, ptr %a487 - store { ptr, i64, i64 } { ptr @.str.5527, i64 4, i64 0 }, ptr %a488 + store { ptr, i64, i64 } { ptr @.str.5735, i64 4, i64 0 }, ptr %a488 %t489 = call i32 @finch_str_eq(ptr %a487, ptr %a488) %t490 = icmp ne i32 %t489, 0 - br i1 %t490, label %then8484, label %endif8486 -then8484: + br i1 %t490, label %then8886, label %endif8888 +then8886: %t491 = load { ptr, i64, i64 }, ptr %a485 store { ptr, i64, i64 } %t491, ptr %a492 call void @finch_str_copy(ptr %a493, ptr %a492) %t494 = load { ptr, i64, i64 }, ptr %a493 %t495 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t494, 0 - %t496 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5528, i64 3, i64 0 }) + %t496 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5736, i64 3, i64 0 }) %t497 = insertvalue %S.gen.Val %t495, %S.ast.Type %t496, 1 call void @finch_str_drop(ptr %a485) call void @finch_str_drop(ptr %a446) @@ -87145,15 +91144,15 @@ then8484: call void @finch_str_drop(ptr %a19) call void @finch.drop.S_ast_Type(ptr %a15) ret %S.gen.Val %t497 -endif8486: +endif8888: %t498 = load ptr, ptr %a1 %t499 = load { ptr, i64, i64 }, ptr %a485 - store { ptr, i64, i64 } { ptr @.str.5529, i64 13, i64 0 }, ptr %a501 + store { ptr, i64, i64 } { ptr @.str.5737, i64 13, i64 0 }, ptr %a501 store { ptr, i64, i64 } %t499, ptr %a502 call void @finch_str_concat(ptr %a500, ptr %a501, ptr %a502) %t503 = load { ptr, i64, i64 }, ptr %a500 store { ptr, i64, i64 } %t503, ptr %a505 - store { ptr, i64, i64 } { ptr @.str.5530, i64 3, i64 0 }, ptr %a506 + store { ptr, i64, i64 } { ptr @.str.5738, i64 3, i64 0 }, ptr %a506 call void @finch_str_concat(ptr %a504, ptr %a505, ptr %a506) store { ptr, i64, i64 } %t503, ptr %a507 call void @finch_str_drop(ptr %a507) @@ -87162,7 +91161,7 @@ endif8486: store { ptr, i64, i64 } %t508, ptr %a510 call void @finch_str_drop(ptr %a510) %t511 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t509, 0 - %t512 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5531, i64 4, i64 0 }) + %t512 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5739, i64 4, i64 0 }) %t513 = insertvalue %S.gen.Val %t511, %S.ast.Type %t512, 1 call void @finch_str_drop(ptr %a485) call void @finch_str_drop(ptr %a446) @@ -87184,44 +91183,44 @@ endif8486: call void @finch_str_drop(ptr %a19) call void @finch.drop.S_ast_Type(ptr %a15) ret %S.gen.Val %t513 -endif8479: +endif8881: %t514 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t514, ptr %a515 - store { ptr, i64, i64 } { ptr @.str.5532, i64 4, i64 0 }, ptr %a516 + store { ptr, i64, i64 } { ptr @.str.5740, i64 4, i64 0 }, ptr %a516 %t517 = call i32 @finch_str_eq(ptr %a515, ptr %a516) %t518 = icmp ne i32 %t517, 0 - br i1 %t518, label %then8487, label %endif8489 -then8487: + br i1 %t518, label %then8889, label %endif8891 +then8889: %t519 = load ptr, ptr %a1 %t520 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t519, %S.ast.Node %t520, i64 1) %t521 = getelementptr inbounds %S.ast.Type, ptr %a15, i32 0, i32 0 %t522 = load { ptr, i64, i64 }, ptr %t521 store { ptr, i64, i64 } %t522, ptr %a523 - store { ptr, i64, i64 } { ptr @.str.5533, i64 3, i64 0 }, ptr %a524 + store { ptr, i64, i64 } { ptr @.str.5741, i64 3, i64 0 }, ptr %a524 %t525 = call i32 @finch_str_eq(ptr %a523, ptr %a524) %t526 = icmp eq i32 %t525, 0 - br i1 %t526, label %then8490, label %endif8492 -then8490: + br i1 %t526, label %then8892, label %endif8894 +then8892: %t527 = load ptr, ptr %a1 %t528 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t527, %S.ast.Node %t528, { ptr, i64, i64 } { ptr @.str.5534, i64 31, i64 0 }) - br label %endif8492 -endif8492: + call void @finch.gen.fail(ptr %t527, %S.ast.Node %t528, { ptr, i64, i64 } { ptr @.str.5742, i64 31, i64 0 }) + br label %endif8894 +endif8894: %t529 = load ptr, ptr %a1 %t530 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t531 = load { ptr, i64, i64 }, ptr %t530 %t532 = extractvalue { ptr, i64, i64 } %t531, 1 %t533 = icmp uge i64 1, %t532 - br i1 %t533, label %range8493, label %inrange8494 -range8493: - call void @finch_panic_index(ptr @.str.5535, i64 5242, i64 1, i64 %t532) + br i1 %t533, label %range8895, label %inrange8896 +range8895: + call void @finch_panic_index(ptr @.str.5743, i64 5477, i64 1, i64 %t532) unreachable -inrange8494: +inrange8896: %t534 = extractvalue { ptr, i64, i64 } %t531, 0 %t535 = getelementptr inbounds %S.ast.Node, ptr %t534, i64 1 %t536 = load %S.ast.Node, ptr %t535 - %t537 = call %S.gen.Val @finch.gen.strArg(ptr %t529, %S.ast.Node %t536, { ptr, i64, i64 } { ptr @.str.5536, i64 13, i64 0 }) + %t537 = call %S.gen.Val @finch.gen.strArg(ptr %t529, %S.ast.Node %t536, { ptr, i64, i64 } { ptr @.str.5744, i64 13, i64 0 }) store %S.gen.Val %t537, ptr %a538 %t539 = load ptr, ptr %a1 %t540 = load %S.gen.Val, ptr %a538 @@ -87232,12 +91231,12 @@ inrange8494: store { ptr, i64, i64 } %t544, ptr %a545 %t546 = load ptr, ptr %a1 %t547 = load { ptr, i64, i64 }, ptr %a545 - store { ptr, i64, i64 } { ptr @.str.5537, i64 30, i64 0 }, ptr %a549 + store { ptr, i64, i64 } { ptr @.str.5745, i64 30, i64 0 }, ptr %a549 store { ptr, i64, i64 } %t547, ptr %a550 call void @finch_str_concat(ptr %a548, ptr %a549, ptr %a550) %t551 = load { ptr, i64, i64 }, ptr %a548 store { ptr, i64, i64 } %t551, ptr %a553 - store { ptr, i64, i64 } { ptr @.str.5538, i64 6, i64 0 }, ptr %a554 + store { ptr, i64, i64 } { ptr @.str.5746, i64 6, i64 0 }, ptr %a554 call void @finch_str_concat(ptr %a552, ptr %a553, ptr %a554) store { ptr, i64, i64 } %t551, ptr %a555 call void @finch_str_drop(ptr %a555) @@ -87250,7 +91249,7 @@ inrange8494: call void @finch_str_drop(ptr %a561) %t562 = load { ptr, i64, i64 }, ptr %a558 store { ptr, i64, i64 } %t562, ptr %a564 - store { ptr, i64, i64 } { ptr @.str.5539, i64 6, i64 0 }, ptr %a565 + store { ptr, i64, i64 } { ptr @.str.5747, i64 6, i64 0 }, ptr %a565 call void @finch_str_concat(ptr %a563, ptr %a564, ptr %a565) store { ptr, i64, i64 } %t562, ptr %a566 call void @finch_str_drop(ptr %a566) @@ -87263,7 +91262,7 @@ inrange8494: call void @finch_str_drop(ptr %a572) %t573 = load { ptr, i64, i64 }, ptr %a569 store { ptr, i64, i64 } %t573, ptr %a575 - store { ptr, i64, i64 } { ptr @.str.5540, i64 1, i64 0 }, ptr %a576 + store { ptr, i64, i64 } { ptr @.str.5748, i64 1, i64 0 }, ptr %a576 call void @finch_str_concat(ptr %a574, ptr %a575, ptr %a576) store { ptr, i64, i64 } %t573, ptr %a577 call void @finch_str_drop(ptr %a577) @@ -87276,9 +91275,9 @@ inrange8494: call void @finch.gen.release(ptr %t580, %S.gen.Val %t581) %t582 = load ptr, ptr %a1 %t583 = load { ptr, i64, i64 }, ptr %a545 - %t584 = call { ptr, i64, i64 } @finch.gen.load(ptr %t582, { ptr, i64, i64 } { ptr @.str.5541, i64 17, i64 0 }, { ptr, i64, i64 } %t583) + %t584 = call { ptr, i64, i64 } @finch.gen.load(ptr %t582, { ptr, i64, i64 } { ptr @.str.5749, i64 17, i64 0 }, { ptr, i64, i64 } %t583) %t585 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t584, 0 - %t586 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5542, i64 3, i64 0 }) + %t586 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5750, i64 3, i64 0 }) %t587 = insertvalue %S.gen.Val %t585, %S.ast.Type %t586, 1 %t588 = insertvalue %S.gen.Val %t587, i1 true, 2 call void @finch_str_drop(ptr %a545) @@ -87289,14 +91288,14 @@ inrange8494: call void @finch_str_drop(ptr %a19) call void @finch.drop.S_ast_Type(ptr %a15) ret %S.gen.Val %t588 -endif8489: +endif8891: %t589 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t589, ptr %a590 - store { ptr, i64, i64 } { ptr @.str.5543, i64 6, i64 0 }, ptr %a591 + store { ptr, i64, i64 } { ptr @.str.5751, i64 6, i64 0 }, ptr %a591 %t592 = call i32 @finch_str_eq(ptr %a590, ptr %a591) %t593 = icmp ne i32 %t592, 0 - br i1 %t593, label %then8495, label %endif8497 -then8495: + br i1 %t593, label %then8897, label %endif8899 +then8897: %t594 = load ptr, ptr %a1 %t595 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t594, %S.ast.Node %t595, i64 2) @@ -87306,29 +91305,29 @@ then8495: %t599 = load { ptr, i64, i64 }, ptr %t598 %t600 = extractvalue { ptr, i64, i64 } %t599, 1 %t601 = icmp uge i64 1, %t600 - br i1 %t601, label %range8498, label %inrange8499 -range8498: - call void @finch_panic_index(ptr @.str.5544, i64 5251, i64 1, i64 %t600) + br i1 %t601, label %range8900, label %inrange8901 +range8900: + call void @finch_panic_index(ptr @.str.5752, i64 5486, i64 1, i64 %t600) unreachable -inrange8499: +inrange8901: %t602 = extractvalue { ptr, i64, i64 } %t599, 0 %t603 = getelementptr inbounds %S.ast.Node, ptr %t602, i64 1 %t604 = load %S.ast.Node, ptr %t603 %t605 = call %S.gen.Val @finch.gen.expr(ptr %t597, %S.ast.Node %t604) - %t606 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5545, i64 3, i64 0 }) + %t606 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5753, i64 3, i64 0 }) %t607 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t608 = load { ptr, i64, i64 }, ptr %t607 %t609 = extractvalue { ptr, i64, i64 } %t608, 1 %t610 = icmp uge i64 1, %t609 - br i1 %t610, label %range8500, label %inrange8501 -range8500: - call void @finch_panic_index(ptr @.str.5546, i64 5251, i64 1, i64 %t609) + br i1 %t610, label %range8902, label %inrange8903 +range8902: + call void @finch_panic_index(ptr @.str.5754, i64 5486, i64 1, i64 %t609) unreachable -inrange8501: +inrange8903: %t611 = extractvalue { ptr, i64, i64 } %t608, 0 %t612 = getelementptr inbounds %S.ast.Node, ptr %t611, i64 1 %t613 = load %S.ast.Node, ptr %t612 - %t614 = call %S.gen.Val @finch.gen.coerce(ptr %t596, %S.gen.Val %t605, %S.ast.Type %t606, %S.ast.Node %t613, { ptr, i64, i64 } { ptr @.str.5547, i64 12, i64 0 }) + %t614 = call %S.gen.Val @finch.gen.coerce(ptr %t596, %S.gen.Val %t605, %S.ast.Type %t606, %S.ast.Node %t613, { ptr, i64, i64 } { ptr @.str.5755, i64 12, i64 0 }) store %S.gen.Val %t605, ptr %a615 call void @finch.drop.S_gen_Val(ptr %a615) store %S.ast.Type %t606, ptr %a616 @@ -87347,11 +91346,11 @@ inrange8501: %t627 = load { ptr, i64, i64 }, ptr %t626 %t628 = extractvalue { ptr, i64, i64 } %t627, 1 %t629 = icmp uge i64 2, %t628 - br i1 %t629, label %range8502, label %inrange8503 -range8502: - call void @finch_panic_index(ptr @.str.5548, i64 5252, i64 2, i64 %t628) + br i1 %t629, label %range8904, label %inrange8905 +range8904: + call void @finch_panic_index(ptr @.str.5756, i64 5487, i64 2, i64 %t628) unreachable -inrange8503: +inrange8905: %t630 = extractvalue { ptr, i64, i64 } %t627, 0 %t631 = getelementptr inbounds %S.ast.Node, ptr %t630, i64 2 %t632 = load %S.ast.Node, ptr %t631 @@ -87362,15 +91361,15 @@ inrange8503: %t637 = load { ptr, i64, i64 }, ptr %t636 %t638 = extractvalue { ptr, i64, i64 } %t637, 1 %t639 = icmp uge i64 2, %t638 - br i1 %t639, label %range8504, label %inrange8505 -range8504: - call void @finch_panic_index(ptr @.str.5549, i64 5252, i64 2, i64 %t638) + br i1 %t639, label %range8906, label %inrange8907 +range8906: + call void @finch_panic_index(ptr @.str.5757, i64 5487, i64 2, i64 %t638) unreachable -inrange8505: +inrange8907: %t640 = extractvalue { ptr, i64, i64 } %t637, 0 %t641 = getelementptr inbounds %S.ast.Node, ptr %t640, i64 2 %t642 = load %S.ast.Node, ptr %t641 - %t643 = call %S.gen.Val @finch.gen.coerce(ptr %t624, %S.gen.Val %t634, %S.ast.Type %t635, %S.ast.Node %t642, { ptr, i64, i64 } { ptr @.str.5550, i64 11, i64 0 }) + %t643 = call %S.gen.Val @finch.gen.coerce(ptr %t624, %S.gen.Val %t634, %S.ast.Type %t635, %S.ast.Node %t642, { ptr, i64, i64 } { ptr @.str.5758, i64 11, i64 0 }) store %S.gen.Val %t634, ptr %a644 call void @finch.drop.S_gen_Val(ptr %a644) %t645 = call { ptr, i64, i64 } @finch.gen.own(ptr %t623, %S.gen.Val %t643) @@ -87380,22 +91379,22 @@ inrange8505: %t648 = load ptr, ptr %a1 %t649 = load ptr, ptr %a1 %t650 = icmp eq ptr %t649, null - br i1 %t650, label %panic8506, label %ok8507 -panic8506: - call void @finch_panic(ptr @.str.5551, i64 5253, ptr @.str.5552) + br i1 %t650, label %panic8908, label %ok8909 +panic8908: + call void @finch_panic(ptr @.str.5759, i64 5488, ptr @.str.5760) unreachable -ok8507: +ok8909: %t651 = getelementptr inbounds %S.gen.Gen, ptr %t649, i32 0, i32 1 %t652 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 13 %t653 = load i64, ptr %t652 %t654 = load { ptr, i64, i64 }, ptr %t651 %t655 = extractvalue { ptr, i64, i64 } %t654, 1 %t656 = icmp uge i64 %t653, %t655 - br i1 %t656, label %range8508, label %inrange8509 -range8508: - call void @finch_panic_index(ptr @.str.5553, i64 5253, i64 %t653, i64 %t655) + br i1 %t656, label %range8910, label %inrange8911 +range8910: + call void @finch_panic_index(ptr @.str.5761, i64 5488, i64 %t653, i64 %t655) unreachable -inrange8509: +inrange8911: %t657 = extractvalue { ptr, i64, i64 } %t654, 0 %t658 = getelementptr inbounds { ptr, i64, i64 }, ptr %t657, i64 %t653 %t659 = load { ptr, i64, i64 }, ptr %t658 @@ -87403,12 +91402,12 @@ inrange8509: store { ptr, i64, i64 } %t660, ptr %a661 %t662 = load ptr, ptr %a1 %t663 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.5554, i64 36, i64 0 }, ptr %a665 + store { ptr, i64, i64 } { ptr @.str.5762, i64 36, i64 0 }, ptr %a665 store { ptr, i64, i64 } %t663, ptr %a666 call void @finch_str_concat(ptr %a664, ptr %a665, ptr %a666) %t667 = load { ptr, i64, i64 }, ptr %a664 store { ptr, i64, i64 } %t667, ptr %a669 - store { ptr, i64, i64 } { ptr @.str.5555, i64 6, i64 0 }, ptr %a670 + store { ptr, i64, i64 } { ptr @.str.5763, i64 6, i64 0 }, ptr %a670 call void @finch_str_concat(ptr %a668, ptr %a669, ptr %a670) store { ptr, i64, i64 } %t667, ptr %a671 call void @finch_str_drop(ptr %a671) @@ -87421,7 +91420,7 @@ inrange8509: call void @finch_str_drop(ptr %a677) %t678 = load { ptr, i64, i64 }, ptr %a674 store { ptr, i64, i64 } %t678, ptr %a680 - store { ptr, i64, i64 } { ptr @.str.5556, i64 6, i64 0 }, ptr %a681 + store { ptr, i64, i64 } { ptr @.str.5764, i64 6, i64 0 }, ptr %a681 call void @finch_str_concat(ptr %a679, ptr %a680, ptr %a681) store { ptr, i64, i64 } %t678, ptr %a682 call void @finch_str_drop(ptr %a682) @@ -87438,7 +91437,7 @@ inrange8509: call void @finch_str_drop(ptr %a691) %t692 = load { ptr, i64, i64 }, ptr %a687 store { ptr, i64, i64 } %t692, ptr %a694 - store { ptr, i64, i64 } { ptr @.str.5557, i64 6, i64 0 }, ptr %a695 + store { ptr, i64, i64 } { ptr @.str.5765, i64 6, i64 0 }, ptr %a695 call void @finch_str_concat(ptr %a693, ptr %a694, ptr %a695) store { ptr, i64, i64 } %t692, ptr %a696 call void @finch_str_drop(ptr %a696) @@ -87451,7 +91450,7 @@ inrange8509: call void @finch_str_drop(ptr %a702) %t703 = load { ptr, i64, i64 }, ptr %a699 store { ptr, i64, i64 } %t703, ptr %a705 - store { ptr, i64, i64 } { ptr @.str.5558, i64 6, i64 0 }, ptr %a706 + store { ptr, i64, i64 } { ptr @.str.5766, i64 6, i64 0 }, ptr %a706 call void @finch_str_concat(ptr %a704, ptr %a705, ptr %a706) store { ptr, i64, i64 } %t703, ptr %a707 call void @finch_str_drop(ptr %a707) @@ -87469,7 +91468,7 @@ inrange8509: call void @finch_str_drop(ptr %a717) %t718 = load { ptr, i64, i64 }, ptr %a713 store { ptr, i64, i64 } %t718, ptr %a720 - store { ptr, i64, i64 } { ptr @.str.5559, i64 1, i64 0 }, ptr %a721 + store { ptr, i64, i64 } { ptr @.str.5767, i64 1, i64 0 }, ptr %a721 call void @finch_str_concat(ptr %a719, ptr %a720, ptr %a721) store { ptr, i64, i64 } %t718, ptr %a722 call void @finch_str_drop(ptr %a722) @@ -87479,19 +91478,19 @@ inrange8509: call void @finch_str_drop(ptr %a724) %t725 = load ptr, ptr %a1 %t726 = load { ptr, i64, i64 }, ptr %a3 - %t727 = call { ptr, i64, i64 } @finch.gen.load(ptr %t725, { ptr, i64, i64 } { ptr @.str.5560, i64 3, i64 0 }, { ptr, i64, i64 } %t726) + %t727 = call { ptr, i64, i64 } @finch.gen.load(ptr %t725, { ptr, i64, i64 } { ptr @.str.5768, i64 3, i64 0 }, { ptr, i64, i64 } %t726) store { ptr, i64, i64 } %t727, ptr %a728 %t729 = load ptr, ptr %a1 %t730 = load { ptr, i64, i64 }, ptr %a19 %t731 = load { ptr, i64, i64 }, ptr %a647 %t732 = load ptr, ptr %a1 %t733 = load { ptr, i64, i64 }, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.5561, i64 23, i64 0 }, ptr %a735 + store { ptr, i64, i64 } { ptr @.str.5769, i64 23, i64 0 }, ptr %a735 store { ptr, i64, i64 } %t733, ptr %a736 call void @finch_str_concat(ptr %a734, ptr %a735, ptr %a736) %t737 = load { ptr, i64, i64 }, ptr %a734 store { ptr, i64, i64 } %t737, ptr %a739 - store { ptr, i64, i64 } { ptr @.str.5562, i64 6, i64 0 }, ptr %a740 + store { ptr, i64, i64 } { ptr @.str.5770, i64 6, i64 0 }, ptr %a740 call void @finch_str_concat(ptr %a738, ptr %a739, ptr %a740) store { ptr, i64, i64 } %t737, ptr %a741 call void @finch_str_drop(ptr %a741) @@ -87504,7 +91503,7 @@ inrange8509: call void @finch_str_drop(ptr %a747) %t748 = load { ptr, i64, i64 }, ptr %a744 store { ptr, i64, i64 } %t748, ptr %a750 - store { ptr, i64, i64 } { ptr @.str.5563, i64 6, i64 0 }, ptr %a751 + store { ptr, i64, i64 } { ptr @.str.5771, i64 6, i64 0 }, ptr %a751 call void @finch_str_concat(ptr %a749, ptr %a750, ptr %a751) store { ptr, i64, i64 } %t748, ptr %a752 call void @finch_str_drop(ptr %a752) @@ -87522,7 +91521,7 @@ inrange8509: call void @finch.gen.store(ptr %t729, { ptr, i64, i64 } %t730, { ptr, i64, i64 } %t731, { ptr, i64, i64 } %t760) store { ptr, i64, i64 } %t760, ptr %a762 call void @finch_str_drop(ptr %a762) - %t763 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5564, i64 4, i64 0 }) + %t763 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5772, i64 4, i64 0 }) %t764 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t763, 1 call void @finch_str_drop(ptr %a728) call void @finch_str_drop(ptr %a661) @@ -87533,14 +91532,14 @@ inrange8509: call void @finch_str_drop(ptr %a19) call void @finch.drop.S_ast_Type(ptr %a15) ret %S.gen.Val %t764 -endif8497: +endif8899: %t765 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t765, ptr %a766 - store { ptr, i64, i64 } { ptr @.str.5565, i64 6, i64 0 }, ptr %a767 + store { ptr, i64, i64 } { ptr @.str.5773, i64 6, i64 0 }, ptr %a767 %t768 = call i32 @finch_str_eq(ptr %a766, ptr %a767) %t769 = icmp ne i32 %t768, 0 - br i1 %t769, label %then8510, label %endif8512 -then8510: + br i1 %t769, label %then8912, label %endif8914 +then8912: %t770 = load ptr, ptr %a1 %t771 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t770, %S.ast.Node %t771, i64 1) @@ -87550,29 +91549,29 @@ then8510: %t775 = load { ptr, i64, i64 }, ptr %t774 %t776 = extractvalue { ptr, i64, i64 } %t775, 1 %t777 = icmp uge i64 1, %t776 - br i1 %t777, label %range8513, label %inrange8514 -range8513: - call void @finch_panic_index(ptr @.str.5566, i64 5261, i64 1, i64 %t776) + br i1 %t777, label %range8915, label %inrange8916 +range8915: + call void @finch_panic_index(ptr @.str.5774, i64 5496, i64 1, i64 %t776) unreachable -inrange8514: +inrange8916: %t778 = extractvalue { ptr, i64, i64 } %t775, 0 %t779 = getelementptr inbounds %S.ast.Node, ptr %t778, i64 1 %t780 = load %S.ast.Node, ptr %t779 %t781 = call %S.gen.Val @finch.gen.expr(ptr %t773, %S.ast.Node %t780) - %t782 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5567, i64 3, i64 0 }) + %t782 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5775, i64 3, i64 0 }) %t783 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t784 = load { ptr, i64, i64 }, ptr %t783 %t785 = extractvalue { ptr, i64, i64 } %t784, 1 %t786 = icmp uge i64 1, %t785 - br i1 %t786, label %range8515, label %inrange8516 -range8515: - call void @finch_panic_index(ptr @.str.5568, i64 5261, i64 1, i64 %t785) + br i1 %t786, label %range8917, label %inrange8918 +range8917: + call void @finch_panic_index(ptr @.str.5776, i64 5496, i64 1, i64 %t785) unreachable -inrange8516: +inrange8918: %t787 = extractvalue { ptr, i64, i64 } %t784, 0 %t788 = getelementptr inbounds %S.ast.Node, ptr %t787, i64 1 %t789 = load %S.ast.Node, ptr %t788 - %t790 = call %S.gen.Val @finch.gen.coerce(ptr %t772, %S.gen.Val %t781, %S.ast.Type %t782, %S.ast.Node %t789, { ptr, i64, i64 } { ptr @.str.5569, i64 12, i64 0 }) + %t790 = call %S.gen.Val @finch.gen.coerce(ptr %t772, %S.gen.Val %t781, %S.ast.Type %t782, %S.ast.Node %t789, { ptr, i64, i64 } { ptr @.str.5777, i64 12, i64 0 }) store %S.gen.Val %t781, ptr %a791 call void @finch.drop.S_gen_Val(ptr %a791) store %S.ast.Type %t782, ptr %a792 @@ -87588,25 +91587,25 @@ inrange8516: %t800 = load { ptr, i64, i64 }, ptr %a798 %t801 = load ptr, ptr %a1 %t802 = load { ptr, i64, i64 }, ptr %a39 - %t803 = call { ptr, i64, i64 } @finch.gen.load(ptr %t801, { ptr, i64, i64 } { ptr @.str.5570, i64 3, i64 0 }, { ptr, i64, i64 } %t802) + %t803 = call { ptr, i64, i64 } @finch.gen.load(ptr %t801, { ptr, i64, i64 } { ptr @.str.5778, i64 3, i64 0 }, { ptr, i64, i64 } %t802) %t804 = load %S.ast.Node, ptr %a2 call void @finch.gen.boundsCheck(ptr %t799, { ptr, i64, i64 } %t800, { ptr, i64, i64 } %t803, %S.ast.Node %t804) store { ptr, i64, i64 } %t803, ptr %a805 call void @finch_str_drop(ptr %a805) %t806 = load ptr, ptr %a1 %t807 = load { ptr, i64, i64 }, ptr %a3 - %t808 = call { ptr, i64, i64 } @finch.gen.load(ptr %t806, { ptr, i64, i64 } { ptr @.str.5571, i64 3, i64 0 }, { ptr, i64, i64 } %t807) + %t808 = call { ptr, i64, i64 } @finch.gen.load(ptr %t806, { ptr, i64, i64 } { ptr @.str.5779, i64 3, i64 0 }, { ptr, i64, i64 } %t807) store { ptr, i64, i64 } %t808, ptr %a809 %t810 = load ptr, ptr %a1 %t811 = load { ptr, i64, i64 }, ptr %a19 %t812 = load ptr, ptr %a1 %t813 = load { ptr, i64, i64 }, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.5572, i64 23, i64 0 }, ptr %a815 + store { ptr, i64, i64 } { ptr @.str.5780, i64 23, i64 0 }, ptr %a815 store { ptr, i64, i64 } %t813, ptr %a816 call void @finch_str_concat(ptr %a814, ptr %a815, ptr %a816) %t817 = load { ptr, i64, i64 }, ptr %a814 store { ptr, i64, i64 } %t817, ptr %a819 - store { ptr, i64, i64 } { ptr @.str.5573, i64 6, i64 0 }, ptr %a820 + store { ptr, i64, i64 } { ptr @.str.5781, i64 6, i64 0 }, ptr %a820 call void @finch_str_concat(ptr %a818, ptr %a819, ptr %a820) store { ptr, i64, i64 } %t817, ptr %a821 call void @finch_str_drop(ptr %a821) @@ -87619,7 +91618,7 @@ inrange8516: call void @finch_str_drop(ptr %a827) %t828 = load { ptr, i64, i64 }, ptr %a824 store { ptr, i64, i64 } %t828, ptr %a830 - store { ptr, i64, i64 } { ptr @.str.5574, i64 6, i64 0 }, ptr %a831 + store { ptr, i64, i64 } { ptr @.str.5782, i64 6, i64 0 }, ptr %a831 call void @finch_str_concat(ptr %a829, ptr %a830, ptr %a831) store { ptr, i64, i64 } %t828, ptr %a832 call void @finch_str_drop(ptr %a832) @@ -87640,12 +91639,12 @@ inrange8516: store { ptr, i64, i64 } %t842, ptr %a844 %t845 = load ptr, ptr %a1 %t846 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.5575, i64 36, i64 0 }, ptr %a848 + store { ptr, i64, i64 } { ptr @.str.5783, i64 36, i64 0 }, ptr %a848 store { ptr, i64, i64 } %t846, ptr %a849 call void @finch_str_concat(ptr %a847, ptr %a848, ptr %a849) %t850 = load { ptr, i64, i64 }, ptr %a847 store { ptr, i64, i64 } %t850, ptr %a852 - store { ptr, i64, i64 } { ptr @.str.5576, i64 6, i64 0 }, ptr %a853 + store { ptr, i64, i64 } { ptr @.str.5784, i64 6, i64 0 }, ptr %a853 call void @finch_str_concat(ptr %a851, ptr %a852, ptr %a853) store { ptr, i64, i64 } %t850, ptr %a854 call void @finch_str_drop(ptr %a854) @@ -87658,7 +91657,7 @@ inrange8516: call void @finch_str_drop(ptr %a860) %t861 = load { ptr, i64, i64 }, ptr %a857 store { ptr, i64, i64 } %t861, ptr %a863 - store { ptr, i64, i64 } { ptr @.str.5577, i64 6, i64 0 }, ptr %a864 + store { ptr, i64, i64 } { ptr @.str.5785, i64 6, i64 0 }, ptr %a864 call void @finch_str_concat(ptr %a862, ptr %a863, ptr %a864) store { ptr, i64, i64 } %t861, ptr %a865 call void @finch_str_drop(ptr %a865) @@ -87675,7 +91674,7 @@ inrange8516: call void @finch_str_drop(ptr %a874) %t875 = load { ptr, i64, i64 }, ptr %a870 store { ptr, i64, i64 } %t875, ptr %a877 - store { ptr, i64, i64 } { ptr @.str.5578, i64 1, i64 0 }, ptr %a878 + store { ptr, i64, i64 } { ptr @.str.5786, i64 1, i64 0 }, ptr %a878 call void @finch_str_concat(ptr %a876, ptr %a877, ptr %a878) store { ptr, i64, i64 } %t875, ptr %a879 call void @finch_str_drop(ptr %a879) @@ -87705,14 +91704,14 @@ inrange8516: call void @finch_str_drop(ptr %a19) call void @finch.drop.S_ast_Type(ptr %a15) ret %S.gen.Val %t895 -endif8512: +endif8914: %t896 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t896, ptr %a897 - store { ptr, i64, i64 } { ptr @.str.5579, i64 6, i64 0 }, ptr %a898 + store { ptr, i64, i64 } { ptr @.str.5787, i64 6, i64 0 }, ptr %a898 %t899 = call i32 @finch_str_eq(ptr %a897, ptr %a898) %t900 = icmp ne i32 %t899, 0 - br i1 %t900, label %then8517, label %endif8519 -then8517: + br i1 %t900, label %then8919, label %endif8921 +then8919: %t901 = load ptr, ptr %a1 %t902 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t901, %S.ast.Node %t902, i64 1) @@ -87722,29 +91721,29 @@ then8517: %t906 = load { ptr, i64, i64 }, ptr %t905 %t907 = extractvalue { ptr, i64, i64 } %t906, 1 %t908 = icmp uge i64 1, %t907 - br i1 %t908, label %range8520, label %inrange8521 -range8520: - call void @finch_panic_index(ptr @.str.5580, i64 5270, i64 1, i64 %t907) + br i1 %t908, label %range8922, label %inrange8923 +range8922: + call void @finch_panic_index(ptr @.str.5788, i64 5505, i64 1, i64 %t907) unreachable -inrange8521: +inrange8923: %t909 = extractvalue { ptr, i64, i64 } %t906, 0 %t910 = getelementptr inbounds %S.ast.Node, ptr %t909, i64 1 %t911 = load %S.ast.Node, ptr %t910 %t912 = call %S.gen.Val @finch.gen.expr(ptr %t904, %S.ast.Node %t911) - %t913 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5581, i64 3, i64 0 }) + %t913 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5789, i64 3, i64 0 }) %t914 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t915 = load { ptr, i64, i64 }, ptr %t914 %t916 = extractvalue { ptr, i64, i64 } %t915, 1 %t917 = icmp uge i64 1, %t916 - br i1 %t917, label %range8522, label %inrange8523 -range8522: - call void @finch_panic_index(ptr @.str.5582, i64 5270, i64 1, i64 %t916) + br i1 %t917, label %range8924, label %inrange8925 +range8924: + call void @finch_panic_index(ptr @.str.5790, i64 5505, i64 1, i64 %t916) unreachable -inrange8523: +inrange8925: %t918 = extractvalue { ptr, i64, i64 } %t915, 0 %t919 = getelementptr inbounds %S.ast.Node, ptr %t918, i64 1 %t920 = load %S.ast.Node, ptr %t919 - %t921 = call %S.gen.Val @finch.gen.coerce(ptr %t903, %S.gen.Val %t912, %S.ast.Type %t913, %S.ast.Node %t920, { ptr, i64, i64 } { ptr @.str.5583, i64 14, i64 0 }) + %t921 = call %S.gen.Val @finch.gen.coerce(ptr %t903, %S.gen.Val %t912, %S.ast.Type %t913, %S.ast.Node %t920, { ptr, i64, i64 } { ptr @.str.5791, i64 14, i64 0 }) store %S.gen.Val %t912, ptr %a922 call void @finch.drop.S_gen_Val(ptr %a922) store %S.ast.Type %t913, ptr %a923 @@ -87763,12 +91762,12 @@ inrange8523: call void @finch.gen.dropFrom(ptr %t930, { ptr, i64, i64 } %t931, %S.ast.Type %t932, { ptr, i64, i64 } %t933) %t934 = load ptr, ptr %a1 %t935 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.5584, i64 32, i64 0 }, ptr %a937 + store { ptr, i64, i64 } { ptr @.str.5792, i64 32, i64 0 }, ptr %a937 store { ptr, i64, i64 } %t935, ptr %a938 call void @finch_str_concat(ptr %a936, ptr %a937, ptr %a938) %t939 = load { ptr, i64, i64 }, ptr %a936 store { ptr, i64, i64 } %t939, ptr %a941 - store { ptr, i64, i64 } { ptr @.str.5585, i64 6, i64 0 }, ptr %a942 + store { ptr, i64, i64 } { ptr @.str.5793, i64 6, i64 0 }, ptr %a942 call void @finch_str_concat(ptr %a940, ptr %a941, ptr %a942) store { ptr, i64, i64 } %t939, ptr %a943 call void @finch_str_drop(ptr %a943) @@ -87781,7 +91780,7 @@ inrange8523: call void @finch_str_drop(ptr %a949) %t950 = load { ptr, i64, i64 }, ptr %a946 store { ptr, i64, i64 } %t950, ptr %a952 - store { ptr, i64, i64 } { ptr @.str.5586, i64 6, i64 0 }, ptr %a953 + store { ptr, i64, i64 } { ptr @.str.5794, i64 6, i64 0 }, ptr %a953 call void @finch_str_concat(ptr %a951, ptr %a952, ptr %a953) store { ptr, i64, i64 } %t950, ptr %a954 call void @finch_str_drop(ptr %a954) @@ -87798,7 +91797,7 @@ inrange8523: call void @finch_str_drop(ptr %a963) %t964 = load { ptr, i64, i64 }, ptr %a959 store { ptr, i64, i64 } %t964, ptr %a966 - store { ptr, i64, i64 } { ptr @.str.5587, i64 1, i64 0 }, ptr %a967 + store { ptr, i64, i64 } { ptr @.str.5795, i64 1, i64 0 }, ptr %a967 call void @finch_str_concat(ptr %a965, ptr %a966, ptr %a967) store { ptr, i64, i64 } %t964, ptr %a968 call void @finch_str_drop(ptr %a968) @@ -87806,7 +91805,7 @@ inrange8523: call void @finch.gen.emit(ptr %t934, { ptr, i64, i64 } %t969) store { ptr, i64, i64 } %t969, ptr %a970 call void @finch_str_drop(ptr %a970) - %t971 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5588, i64 4, i64 0 }) + %t971 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5796, i64 4, i64 0 }) %t972 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t971, 1 call void @finch_str_drop(ptr %a929) call void @finch_str_drop(ptr %a39) @@ -87814,33 +91813,33 @@ inrange8523: call void @finch_str_drop(ptr %a19) call void @finch.drop.S_ast_Type(ptr %a15) ret %S.gen.Val %t972 -endif8519: +endif8921: %t973 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t973, ptr %a974 - store { ptr, i64, i64 } { ptr @.str.5589, i64 7, i64 0 }, ptr %a975 + store { ptr, i64, i64 } { ptr @.str.5797, i64 7, i64 0 }, ptr %a975 %t976 = call i32 @finch_str_eq(ptr %a974, ptr %a975) %t977 = icmp ne i32 %t976, 0 - br i1 %t977, label %then8524, label %endif8526 -then8524: + br i1 %t977, label %then8926, label %endif8928 +then8926: %t978 = load ptr, ptr %a1 %t979 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t978, %S.ast.Node %t979, i64 0) %t980 = load ptr, ptr %a1 %t981 = load { ptr, i64, i64 }, ptr %a39 - %t982 = call { ptr, i64, i64 } @finch.gen.load(ptr %t980, { ptr, i64, i64 } { ptr @.str.5590, i64 3, i64 0 }, { ptr, i64, i64 } %t981) + %t982 = call { ptr, i64, i64 } @finch.gen.load(ptr %t980, { ptr, i64, i64 } { ptr @.str.5798, i64 3, i64 0 }, { ptr, i64, i64 } %t981) store { ptr, i64, i64 } %t982, ptr %a983 %t984 = load ptr, ptr %a1 %t985 = load { ptr, i64, i64 }, ptr %a3 - %t986 = call { ptr, i64, i64 } @finch.gen.load(ptr %t984, { ptr, i64, i64 } { ptr @.str.5591, i64 3, i64 0 }, { ptr, i64, i64 } %t985) + %t986 = call { ptr, i64, i64 } @finch.gen.load(ptr %t984, { ptr, i64, i64 } { ptr @.str.5799, i64 3, i64 0 }, { ptr, i64, i64 } %t985) store { ptr, i64, i64 } %t986, ptr %a987 %t988 = load ptr, ptr %a1 %t989 = load { ptr, i64, i64 }, ptr %a983 - store { ptr, i64, i64 } { ptr @.str.5592, i64 9, i64 0 }, ptr %a991 + store { ptr, i64, i64 } { ptr @.str.5800, i64 9, i64 0 }, ptr %a991 store { ptr, i64, i64 } %t989, ptr %a992 call void @finch_str_concat(ptr %a990, ptr %a991, ptr %a992) %t993 = load { ptr, i64, i64 }, ptr %a990 store { ptr, i64, i64 } %t993, ptr %a995 - store { ptr, i64, i64 } { ptr @.str.5593, i64 3, i64 0 }, ptr %a996 + store { ptr, i64, i64 } { ptr @.str.5801, i64 3, i64 0 }, ptr %a996 call void @finch_str_concat(ptr %a994, ptr %a995, ptr %a996) store { ptr, i64, i64 } %t993, ptr %a997 call void @finch_str_drop(ptr %a997) @@ -87855,12 +91854,12 @@ then8524: store { ptr, i64, i64 } %t1004, ptr %a1005 %t1006 = load ptr, ptr %a1 %t1007 = load { ptr, i64, i64 }, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.5594, i64 23, i64 0 }, ptr %a1009 + store { ptr, i64, i64 } { ptr @.str.5802, i64 23, i64 0 }, ptr %a1009 store { ptr, i64, i64 } %t1007, ptr %a1010 call void @finch_str_concat(ptr %a1008, ptr %a1009, ptr %a1010) %t1011 = load { ptr, i64, i64 }, ptr %a1008 store { ptr, i64, i64 } %t1011, ptr %a1013 - store { ptr, i64, i64 } { ptr @.str.5595, i64 6, i64 0 }, ptr %a1014 + store { ptr, i64, i64 } { ptr @.str.5803, i64 6, i64 0 }, ptr %a1014 call void @finch_str_concat(ptr %a1012, ptr %a1013, ptr %a1014) store { ptr, i64, i64 } %t1011, ptr %a1015 call void @finch_str_drop(ptr %a1015) @@ -87873,7 +91872,7 @@ then8524: call void @finch_str_drop(ptr %a1021) %t1022 = load { ptr, i64, i64 }, ptr %a1018 store { ptr, i64, i64 } %t1022, ptr %a1024 - store { ptr, i64, i64 } { ptr @.str.5596, i64 6, i64 0 }, ptr %a1025 + store { ptr, i64, i64 } { ptr @.str.5804, i64 6, i64 0 }, ptr %a1025 call void @finch_str_concat(ptr %a1023, ptr %a1024, ptr %a1025) store { ptr, i64, i64 } %t1022, ptr %a1026 call void @finch_str_drop(ptr %a1026) @@ -87881,11 +91880,11 @@ then8524: %t1028 = load { ptr, i64, i64 }, ptr %a1005 %t1029 = extractvalue { ptr, i64, i64 } %t1028, 1 %t1030 = icmp uge i64 3, %t1029 - br i1 %t1030, label %range8527, label %inrange8528 -range8527: - call void @finch_panic_index(ptr @.str.5597, i64 5281, i64 3, i64 %t1029) + br i1 %t1030, label %range8929, label %inrange8930 +range8929: + call void @finch_panic_index(ptr @.str.5805, i64 5516, i64 3, i64 %t1029) unreachable -inrange8528: +inrange8930: %t1031 = extractvalue { ptr, i64, i64 } %t1028, 0 %t1032 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1031, i64 3 %t1033 = load { ptr, i64, i64 }, ptr %t1032 @@ -87902,12 +91901,12 @@ inrange8528: %t1042 = load ptr, ptr %a1 %t1043 = load ptr, ptr %a1 %t1044 = load { ptr, i64, i64 }, ptr %a983 - store { ptr, i64, i64 } { ptr @.str.5599, i64 8, i64 0 }, ptr %a1046 + store { ptr, i64, i64 } { ptr @.str.5807, i64 8, i64 0 }, ptr %a1046 store { ptr, i64, i64 } %t1044, ptr %a1047 call void @finch_str_concat(ptr %a1045, ptr %a1046, ptr %a1047) %t1048 = load { ptr, i64, i64 }, ptr %a1045 store { ptr, i64, i64 } %t1048, ptr %a1050 - store { ptr, i64, i64 } { ptr @.str.5600, i64 3, i64 0 }, ptr %a1051 + store { ptr, i64, i64 } { ptr @.str.5808, i64 3, i64 0 }, ptr %a1051 call void @finch_str_concat(ptr %a1049, ptr %a1050, ptr %a1051) store { ptr, i64, i64 } %t1048, ptr %a1052 call void @finch_str_drop(ptr %a1052) @@ -87915,14 +91914,14 @@ inrange8528: %t1054 = call { ptr, i64, i64 } @finch.gen.op(ptr %t1043, { ptr, i64, i64 } %t1053) store { ptr, i64, i64 } %t1053, ptr %a1055 call void @finch_str_drop(ptr %a1055) - store { ptr, i64, i64 } { ptr @.str.5598, i64 8, i64 0 }, ptr %a1057 + store { ptr, i64, i64 } { ptr @.str.5806, i64 8, i64 0 }, ptr %a1057 store { ptr, i64, i64 } %t1054, ptr %a1058 call void @finch_str_concat(ptr %a1056, ptr %a1057, ptr %a1058) store { ptr, i64, i64 } %t1054, ptr %a1059 call void @finch_str_drop(ptr %a1059) %t1060 = load { ptr, i64, i64 }, ptr %a1056 store { ptr, i64, i64 } %t1060, ptr %a1062 - store { ptr, i64, i64 } { ptr @.str.5601, i64 2, i64 0 }, ptr %a1063 + store { ptr, i64, i64 } { ptr @.str.5809, i64 2, i64 0 }, ptr %a1063 call void @finch_str_concat(ptr %a1061, ptr %a1062, ptr %a1063) store { ptr, i64, i64 } %t1060, ptr %a1064 call void @finch_str_drop(ptr %a1064) @@ -87930,11 +91929,11 @@ inrange8528: %t1066 = load { ptr, i64, i64 }, ptr %a1005 %t1067 = extractvalue { ptr, i64, i64 } %t1066, 1 %t1068 = icmp uge i64 3, %t1067 - br i1 %t1068, label %range8529, label %inrange8530 -range8529: - call void @finch_panic_index(ptr @.str.5602, i64 5282, i64 3, i64 %t1067) + br i1 %t1068, label %range8931, label %inrange8932 +range8931: + call void @finch_panic_index(ptr @.str.5810, i64 5517, i64 3, i64 %t1067) unreachable -inrange8530: +inrange8932: %t1069 = extractvalue { ptr, i64, i64 } %t1066, 0 %t1070 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1069, i64 3 %t1071 = load { ptr, i64, i64 }, ptr %t1070 @@ -87950,12 +91949,12 @@ inrange8530: store { ptr, i64, i64 } %t1077, ptr %a1079 %t1080 = load ptr, ptr %a1 %t1081 = load { ptr, i64, i64 }, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.5603, i64 23, i64 0 }, ptr %a1083 + store { ptr, i64, i64 } { ptr @.str.5811, i64 23, i64 0 }, ptr %a1083 store { ptr, i64, i64 } %t1081, ptr %a1084 call void @finch_str_concat(ptr %a1082, ptr %a1083, ptr %a1084) %t1085 = load { ptr, i64, i64 }, ptr %a1082 store { ptr, i64, i64 } %t1085, ptr %a1087 - store { ptr, i64, i64 } { ptr @.str.5604, i64 6, i64 0 }, ptr %a1088 + store { ptr, i64, i64 } { ptr @.str.5812, i64 6, i64 0 }, ptr %a1088 call void @finch_str_concat(ptr %a1086, ptr %a1087, ptr %a1088) store { ptr, i64, i64 } %t1085, ptr %a1089 call void @finch_str_drop(ptr %a1089) @@ -87968,7 +91967,7 @@ inrange8530: call void @finch_str_drop(ptr %a1095) %t1096 = load { ptr, i64, i64 }, ptr %a1092 store { ptr, i64, i64 } %t1096, ptr %a1098 - store { ptr, i64, i64 } { ptr @.str.5605, i64 6, i64 0 }, ptr %a1099 + store { ptr, i64, i64 } { ptr @.str.5813, i64 6, i64 0 }, ptr %a1099 call void @finch_str_concat(ptr %a1097, ptr %a1098, ptr %a1099) store { ptr, i64, i64 } %t1096, ptr %a1100 call void @finch_str_drop(ptr %a1100) @@ -88007,7 +92006,7 @@ inrange8530: %t1129 = load ptr, ptr %a1 %t1130 = load { ptr, i64, i64 }, ptr %a1005 call void @finch.gen.loopEnd(ptr %t1129, { ptr, i64, i64 } %t1130) - %t1131 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5606, i64 4, i64 0 }) + %t1131 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5814, i64 4, i64 0 }) %t1132 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t1131, 1 call void @finch_str_drop(ptr %a1120) call void @finch_str_drop(ptr %a1115) @@ -88023,14 +92022,14 @@ inrange8530: call void @finch_str_drop(ptr %a19) call void @finch.drop.S_ast_Type(ptr %a15) ret %S.gen.Val %t1132 -endif8526: +endif8928: %t1133 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t1133, ptr %a1134 - store { ptr, i64, i64 } { ptr @.str.5607, i64 5, i64 0 }, ptr %a1135 + store { ptr, i64, i64 } { ptr @.str.5815, i64 5, i64 0 }, ptr %a1135 %t1136 = call i32 @finch_str_eq(ptr %a1134, ptr %a1135) %t1137 = icmp ne i32 %t1136, 0 - br i1 %t1137, label %then8531, label %endif8533 -then8531: + br i1 %t1137, label %then8933, label %endif8935 +then8933: %t1138 = load ptr, ptr %a1 %t1139 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t1138, %S.ast.Node %t1139, i64 2) @@ -88040,29 +92039,29 @@ then8531: %t1143 = load { ptr, i64, i64 }, ptr %t1142 %t1144 = extractvalue { ptr, i64, i64 } %t1143, 1 %t1145 = icmp uge i64 1, %t1144 - br i1 %t1145, label %range8534, label %inrange8535 -range8534: - call void @finch_panic_index(ptr @.str.5608, i64 5293, i64 1, i64 %t1144) + br i1 %t1145, label %range8936, label %inrange8937 +range8936: + call void @finch_panic_index(ptr @.str.5816, i64 5528, i64 1, i64 %t1144) unreachable -inrange8535: +inrange8937: %t1146 = extractvalue { ptr, i64, i64 } %t1143, 0 %t1147 = getelementptr inbounds %S.ast.Node, ptr %t1146, i64 1 %t1148 = load %S.ast.Node, ptr %t1147 %t1149 = call %S.gen.Val @finch.gen.expr(ptr %t1141, %S.ast.Node %t1148) - %t1150 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5609, i64 3, i64 0 }) + %t1150 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5817, i64 3, i64 0 }) %t1151 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t1152 = load { ptr, i64, i64 }, ptr %t1151 %t1153 = extractvalue { ptr, i64, i64 } %t1152, 1 %t1154 = icmp uge i64 1, %t1153 - br i1 %t1154, label %range8536, label %inrange8537 -range8536: - call void @finch_panic_index(ptr @.str.5610, i64 5293, i64 1, i64 %t1153) + br i1 %t1154, label %range8938, label %inrange8939 +range8938: + call void @finch_panic_index(ptr @.str.5818, i64 5528, i64 1, i64 %t1153) unreachable -inrange8537: +inrange8939: %t1155 = extractvalue { ptr, i64, i64 } %t1152, 0 %t1156 = getelementptr inbounds %S.ast.Node, ptr %t1155, i64 1 %t1157 = load %S.ast.Node, ptr %t1156 - %t1158 = call %S.gen.Val @finch.gen.coerce(ptr %t1140, %S.gen.Val %t1149, %S.ast.Type %t1150, %S.ast.Node %t1157, { ptr, i64, i64 } { ptr @.str.5611, i64 9, i64 0 }) + %t1158 = call %S.gen.Val @finch.gen.coerce(ptr %t1140, %S.gen.Val %t1149, %S.ast.Type %t1150, %S.ast.Node %t1157, { ptr, i64, i64 } { ptr @.str.5819, i64 9, i64 0 }) store %S.gen.Val %t1149, ptr %a1159 call void @finch.drop.S_gen_Val(ptr %a1159) store %S.ast.Type %t1150, ptr %a1160 @@ -88080,29 +92079,29 @@ inrange8537: %t1170 = load { ptr, i64, i64 }, ptr %t1169 %t1171 = extractvalue { ptr, i64, i64 } %t1170, 1 %t1172 = icmp uge i64 2, %t1171 - br i1 %t1172, label %range8538, label %inrange8539 -range8538: - call void @finch_panic_index(ptr @.str.5612, i64 5294, i64 2, i64 %t1171) + br i1 %t1172, label %range8940, label %inrange8941 +range8940: + call void @finch_panic_index(ptr @.str.5820, i64 5529, i64 2, i64 %t1171) unreachable -inrange8539: +inrange8941: %t1173 = extractvalue { ptr, i64, i64 } %t1170, 0 %t1174 = getelementptr inbounds %S.ast.Node, ptr %t1173, i64 2 %t1175 = load %S.ast.Node, ptr %t1174 %t1176 = call %S.gen.Val @finch.gen.expr(ptr %t1168, %S.ast.Node %t1175) - %t1177 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5613, i64 3, i64 0 }) + %t1177 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5821, i64 3, i64 0 }) %t1178 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t1179 = load { ptr, i64, i64 }, ptr %t1178 %t1180 = extractvalue { ptr, i64, i64 } %t1179, 1 %t1181 = icmp uge i64 2, %t1180 - br i1 %t1181, label %range8540, label %inrange8541 -range8540: - call void @finch_panic_index(ptr @.str.5614, i64 5294, i64 2, i64 %t1180) + br i1 %t1181, label %range8942, label %inrange8943 +range8942: + call void @finch_panic_index(ptr @.str.5822, i64 5529, i64 2, i64 %t1180) unreachable -inrange8541: +inrange8943: %t1182 = extractvalue { ptr, i64, i64 } %t1179, 0 %t1183 = getelementptr inbounds %S.ast.Node, ptr %t1182, i64 2 %t1184 = load %S.ast.Node, ptr %t1183 - %t1185 = call %S.gen.Val @finch.gen.coerce(ptr %t1167, %S.gen.Val %t1176, %S.ast.Type %t1177, %S.ast.Node %t1184, { ptr, i64, i64 } { ptr @.str.5615, i64 7, i64 0 }) + %t1185 = call %S.gen.Val @finch.gen.coerce(ptr %t1167, %S.gen.Val %t1176, %S.ast.Type %t1177, %S.ast.Node %t1184, { ptr, i64, i64 } { ptr @.str.5823, i64 7, i64 0 }) store %S.gen.Val %t1176, ptr %a1186 call void @finch.drop.S_gen_Val(ptr %a1186) store %S.ast.Type %t1177, ptr %a1187 @@ -88116,16 +92115,16 @@ inrange8541: store { ptr, i64, i64 } %t1191, ptr %a1193 %t1194 = load ptr, ptr %a1 %t1195 = load { ptr, i64, i64 }, ptr %a39 - %t1196 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1194, { ptr, i64, i64 } { ptr @.str.5616, i64 3, i64 0 }, { ptr, i64, i64 } %t1195) + %t1196 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1194, { ptr, i64, i64 } { ptr @.str.5824, i64 3, i64 0 }, { ptr, i64, i64 } %t1195) store { ptr, i64, i64 } %t1196, ptr %a1197 %t1198 = load ptr, ptr %a1 %t1199 = load { ptr, i64, i64 }, ptr %a1166 - store { ptr, i64, i64 } { ptr @.str.5617, i64 13, i64 0 }, ptr %a1201 + store { ptr, i64, i64 } { ptr @.str.5825, i64 13, i64 0 }, ptr %a1201 store { ptr, i64, i64 } %t1199, ptr %a1202 call void @finch_str_concat(ptr %a1200, ptr %a1201, ptr %a1202) %t1203 = load { ptr, i64, i64 }, ptr %a1200 store { ptr, i64, i64 } %t1203, ptr %a1205 - store { ptr, i64, i64 } { ptr @.str.5618, i64 3, i64 0 }, ptr %a1206 + store { ptr, i64, i64 } { ptr @.str.5826, i64 3, i64 0 }, ptr %a1206 call void @finch_str_concat(ptr %a1204, ptr %a1205, ptr %a1206) store { ptr, i64, i64 } %t1203, ptr %a1207 call void @finch_str_drop(ptr %a1207) @@ -88136,12 +92135,12 @@ inrange8541: store { ptr, i64, i64 } %t1209, ptr %a1211 %t1212 = load ptr, ptr %a1 %t1213 = load { ptr, i64, i64 }, ptr %a1193 - store { ptr, i64, i64 } { ptr @.str.5619, i64 13, i64 0 }, ptr %a1215 + store { ptr, i64, i64 } { ptr @.str.5827, i64 13, i64 0 }, ptr %a1215 store { ptr, i64, i64 } %t1213, ptr %a1216 call void @finch_str_concat(ptr %a1214, ptr %a1215, ptr %a1216) %t1217 = load { ptr, i64, i64 }, ptr %a1214 store { ptr, i64, i64 } %t1217, ptr %a1219 - store { ptr, i64, i64 } { ptr @.str.5620, i64 2, i64 0 }, ptr %a1220 + store { ptr, i64, i64 } { ptr @.str.5828, i64 2, i64 0 }, ptr %a1220 call void @finch_str_concat(ptr %a1218, ptr %a1219, ptr %a1220) store { ptr, i64, i64 } %t1217, ptr %a1221 call void @finch_str_drop(ptr %a1221) @@ -88159,12 +92158,12 @@ inrange8541: store { ptr, i64, i64 } %t1229, ptr %a1231 %t1232 = load ptr, ptr %a1 %t1233 = load { ptr, i64, i64 }, ptr %a1166 - store { ptr, i64, i64 } { ptr @.str.5621, i64 13, i64 0 }, ptr %a1235 + store { ptr, i64, i64 } { ptr @.str.5829, i64 13, i64 0 }, ptr %a1235 store { ptr, i64, i64 } %t1233, ptr %a1236 call void @finch_str_concat(ptr %a1234, ptr %a1235, ptr %a1236) %t1237 = load { ptr, i64, i64 }, ptr %a1234 store { ptr, i64, i64 } %t1237, ptr %a1239 - store { ptr, i64, i64 } { ptr @.str.5622, i64 2, i64 0 }, ptr %a1240 + store { ptr, i64, i64 } { ptr @.str.5830, i64 2, i64 0 }, ptr %a1240 call void @finch_str_concat(ptr %a1238, ptr %a1239, ptr %a1240) store { ptr, i64, i64 } %t1237, ptr %a1241 call void @finch_str_drop(ptr %a1241) @@ -88184,12 +92183,12 @@ inrange8541: %t1253 = load ptr, ptr %a1 %t1254 = load ptr, ptr %a1 %t1255 = load { ptr, i64, i64 }, ptr %a1211 - store { ptr, i64, i64 } { ptr @.str.5624, i64 6, i64 0 }, ptr %a1257 + store { ptr, i64, i64 } { ptr @.str.5832, i64 6, i64 0 }, ptr %a1257 store { ptr, i64, i64 } %t1255, ptr %a1258 call void @finch_str_concat(ptr %a1256, ptr %a1257, ptr %a1258) %t1259 = load { ptr, i64, i64 }, ptr %a1256 store { ptr, i64, i64 } %t1259, ptr %a1261 - store { ptr, i64, i64 } { ptr @.str.5625, i64 2, i64 0 }, ptr %a1262 + store { ptr, i64, i64 } { ptr @.str.5833, i64 2, i64 0 }, ptr %a1262 call void @finch_str_concat(ptr %a1260, ptr %a1261, ptr %a1262) store { ptr, i64, i64 } %t1259, ptr %a1263 call void @finch_str_drop(ptr %a1263) @@ -88204,14 +92203,14 @@ inrange8541: %t1271 = call { ptr, i64, i64 } @finch.gen.op(ptr %t1254, { ptr, i64, i64 } %t1270) store { ptr, i64, i64 } %t1270, ptr %a1272 call void @finch_str_drop(ptr %a1272) - store { ptr, i64, i64 } { ptr @.str.5623, i64 6, i64 0 }, ptr %a1274 + store { ptr, i64, i64 } { ptr @.str.5831, i64 6, i64 0 }, ptr %a1274 store { ptr, i64, i64 } %t1271, ptr %a1275 call void @finch_str_concat(ptr %a1273, ptr %a1274, ptr %a1275) store { ptr, i64, i64 } %t1271, ptr %a1276 call void @finch_str_drop(ptr %a1276) %t1277 = load { ptr, i64, i64 }, ptr %a1273 store { ptr, i64, i64 } %t1277, ptr %a1279 - store { ptr, i64, i64 } { ptr @.str.5626, i64 2, i64 0 }, ptr %a1280 + store { ptr, i64, i64 } { ptr @.str.5834, i64 2, i64 0 }, ptr %a1280 call void @finch_str_concat(ptr %a1278, ptr %a1279, ptr %a1280) store { ptr, i64, i64 } %t1277, ptr %a1281 call void @finch_str_drop(ptr %a1281) @@ -88227,17 +92226,17 @@ inrange8541: store { ptr, i64, i64 } %t1288, ptr %a1290 call void @finch_str_drop(ptr %a1290) %t1291 = load %S.ast.Node, ptr %a2 - call void @finch.gen.panicIf(ptr %t1252, { ptr, i64, i64 } %t1289, { ptr, i64, i64 } { ptr @.str.5627, i64 33, i64 0 }, %S.ast.Node %t1291) + call void @finch.gen.panicIf(ptr %t1252, { ptr, i64, i64 } %t1289, { ptr, i64, i64 } { ptr @.str.5835, i64 33, i64 0 }, %S.ast.Node %t1291) store { ptr, i64, i64 } %t1289, ptr %a1292 call void @finch_str_drop(ptr %a1292) %t1293 = load ptr, ptr %a1 %t1294 = load { ptr, i64, i64 }, ptr %a1193 - store { ptr, i64, i64 } { ptr @.str.5628, i64 8, i64 0 }, ptr %a1296 + store { ptr, i64, i64 } { ptr @.str.5836, i64 8, i64 0 }, ptr %a1296 store { ptr, i64, i64 } %t1294, ptr %a1297 call void @finch_str_concat(ptr %a1295, ptr %a1296, ptr %a1297) %t1298 = load { ptr, i64, i64 }, ptr %a1295 store { ptr, i64, i64 } %t1298, ptr %a1300 - store { ptr, i64, i64 } { ptr @.str.5629, i64 2, i64 0 }, ptr %a1301 + store { ptr, i64, i64 } { ptr @.str.5837, i64 2, i64 0 }, ptr %a1301 call void @finch_str_concat(ptr %a1299, ptr %a1300, ptr %a1301) store { ptr, i64, i64 } %t1298, ptr %a1302 call void @finch_str_drop(ptr %a1302) @@ -88254,16 +92253,16 @@ inrange8541: call void @finch_str_drop(ptr %a1311) store { ptr, i64, i64 } %t1310, ptr %a1312 %t1313 = load ptr, ptr %a1 - %t1314 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t1313, { ptr, i64, i64 } { ptr @.str.5630, i64 17, i64 0 }) + %t1314 = call { ptr, i64, i64 } @finch.gen.alloca(ptr %t1313, { ptr, i64, i64 } { ptr @.str.5838, i64 17, i64 0 }) store { ptr, i64, i64 } %t1314, ptr %a1315 %t1316 = load ptr, ptr %a1 %t1317 = load { ptr, i64, i64 }, ptr %a1315 - store { ptr, i64, i64 } { ptr @.str.5631, i64 30, i64 0 }, ptr %a1319 + store { ptr, i64, i64 } { ptr @.str.5839, i64 30, i64 0 }, ptr %a1319 store { ptr, i64, i64 } %t1317, ptr %a1320 call void @finch_str_concat(ptr %a1318, ptr %a1319, ptr %a1320) %t1321 = load { ptr, i64, i64 }, ptr %a1318 store { ptr, i64, i64 } %t1321, ptr %a1323 - store { ptr, i64, i64 } { ptr @.str.5632, i64 6, i64 0 }, ptr %a1324 + store { ptr, i64, i64 } { ptr @.str.5840, i64 6, i64 0 }, ptr %a1324 call void @finch_str_concat(ptr %a1322, ptr %a1323, ptr %a1324) store { ptr, i64, i64 } %t1321, ptr %a1325 call void @finch_str_drop(ptr %a1325) @@ -88276,7 +92275,7 @@ inrange8541: call void @finch_str_drop(ptr %a1331) %t1332 = load { ptr, i64, i64 }, ptr %a1328 store { ptr, i64, i64 } %t1332, ptr %a1334 - store { ptr, i64, i64 } { ptr @.str.5633, i64 6, i64 0 }, ptr %a1335 + store { ptr, i64, i64 } { ptr @.str.5841, i64 6, i64 0 }, ptr %a1335 call void @finch_str_concat(ptr %a1333, ptr %a1334, ptr %a1335) store { ptr, i64, i64 } %t1332, ptr %a1336 call void @finch_str_drop(ptr %a1336) @@ -88293,7 +92292,7 @@ inrange8541: call void @finch_str_drop(ptr %a1345) %t1346 = load { ptr, i64, i64 }, ptr %a1341 store { ptr, i64, i64 } %t1346, ptr %a1348 - store { ptr, i64, i64 } { ptr @.str.5634, i64 1, i64 0 }, ptr %a1349 + store { ptr, i64, i64 } { ptr @.str.5842, i64 1, i64 0 }, ptr %a1349 call void @finch_str_concat(ptr %a1347, ptr %a1348, ptr %a1349) store { ptr, i64, i64 } %t1346, ptr %a1350 call void @finch_str_drop(ptr %a1350) @@ -88303,11 +92302,11 @@ inrange8541: call void @finch_str_drop(ptr %a1352) %t1353 = load ptr, ptr %a1 %t1354 = load { ptr, i64, i64 }, ptr %a3 - %t1355 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1353, { ptr, i64, i64 } { ptr @.str.5635, i64 3, i64 0 }, { ptr, i64, i64 } %t1354) + %t1355 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1353, { ptr, i64, i64 } { ptr @.str.5843, i64 3, i64 0 }, { ptr, i64, i64 } %t1354) store { ptr, i64, i64 } %t1355, ptr %a1356 %t1357 = load ptr, ptr %a1 %t1358 = load { ptr, i64, i64 }, ptr %a1315 - %t1359 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1357, { ptr, i64, i64 } { ptr @.str.5636, i64 3, i64 0 }, { ptr, i64, i64 } %t1358) + %t1359 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1357, { ptr, i64, i64 } { ptr @.str.5844, i64 3, i64 0 }, { ptr, i64, i64 } %t1358) store { ptr, i64, i64 } %t1359, ptr %a1360 %t1361 = load ptr, ptr %a1 %t1362 = load { ptr, i64, i64 }, ptr %a1312 @@ -88315,12 +92314,12 @@ inrange8541: store { ptr, i64, i64 } %t1363, ptr %a1364 %t1365 = load ptr, ptr %a1 %t1366 = load { ptr, i64, i64 }, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.5637, i64 23, i64 0 }, ptr %a1368 + store { ptr, i64, i64 } { ptr @.str.5845, i64 23, i64 0 }, ptr %a1368 store { ptr, i64, i64 } %t1366, ptr %a1369 call void @finch_str_concat(ptr %a1367, ptr %a1368, ptr %a1369) %t1370 = load { ptr, i64, i64 }, ptr %a1367 store { ptr, i64, i64 } %t1370, ptr %a1372 - store { ptr, i64, i64 } { ptr @.str.5638, i64 6, i64 0 }, ptr %a1373 + store { ptr, i64, i64 } { ptr @.str.5846, i64 6, i64 0 }, ptr %a1373 call void @finch_str_concat(ptr %a1371, ptr %a1372, ptr %a1373) store { ptr, i64, i64 } %t1370, ptr %a1374 call void @finch_str_drop(ptr %a1374) @@ -88333,7 +92332,7 @@ inrange8541: call void @finch_str_drop(ptr %a1380) %t1381 = load { ptr, i64, i64 }, ptr %a1377 store { ptr, i64, i64 } %t1381, ptr %a1383 - store { ptr, i64, i64 } { ptr @.str.5639, i64 6, i64 0 }, ptr %a1384 + store { ptr, i64, i64 } { ptr @.str.5847, i64 6, i64 0 }, ptr %a1384 call void @finch_str_concat(ptr %a1382, ptr %a1383, ptr %a1384) store { ptr, i64, i64 } %t1381, ptr %a1385 call void @finch_str_drop(ptr %a1385) @@ -88341,11 +92340,11 @@ inrange8541: %t1387 = load { ptr, i64, i64 }, ptr %a1364 %t1388 = extractvalue { ptr, i64, i64 } %t1387, 1 %t1389 = icmp uge i64 3, %t1388 - br i1 %t1389, label %range8542, label %inrange8543 -range8542: - call void @finch_panic_index(ptr @.str.5640, i64 5306, i64 3, i64 %t1388) + br i1 %t1389, label %range8944, label %inrange8945 +range8944: + call void @finch_panic_index(ptr @.str.5848, i64 5541, i64 3, i64 %t1388) unreachable -inrange8543: +inrange8945: %t1390 = extractvalue { ptr, i64, i64 } %t1387, 0 %t1391 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1390, i64 3 %t1392 = load { ptr, i64, i64 }, ptr %t1391 @@ -88361,12 +92360,12 @@ inrange8543: store { ptr, i64, i64 } %t1398, ptr %a1400 %t1401 = load ptr, ptr %a1 %t1402 = load { ptr, i64, i64 }, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.5641, i64 23, i64 0 }, ptr %a1404 + store { ptr, i64, i64 } { ptr @.str.5849, i64 23, i64 0 }, ptr %a1404 store { ptr, i64, i64 } %t1402, ptr %a1405 call void @finch_str_concat(ptr %a1403, ptr %a1404, ptr %a1405) %t1406 = load { ptr, i64, i64 }, ptr %a1403 store { ptr, i64, i64 } %t1406, ptr %a1408 - store { ptr, i64, i64 } { ptr @.str.5642, i64 6, i64 0 }, ptr %a1409 + store { ptr, i64, i64 } { ptr @.str.5850, i64 6, i64 0 }, ptr %a1409 call void @finch_str_concat(ptr %a1407, ptr %a1408, ptr %a1409) store { ptr, i64, i64 } %t1406, ptr %a1410 call void @finch_str_drop(ptr %a1410) @@ -88379,19 +92378,19 @@ inrange8543: call void @finch_str_drop(ptr %a1416) %t1417 = load { ptr, i64, i64 }, ptr %a1413 store { ptr, i64, i64 } %t1417, ptr %a1419 - store { ptr, i64, i64 } { ptr @.str.5643, i64 6, i64 0 }, ptr %a1420 + store { ptr, i64, i64 } { ptr @.str.5851, i64 6, i64 0 }, ptr %a1420 call void @finch_str_concat(ptr %a1418, ptr %a1419, ptr %a1420) store { ptr, i64, i64 } %t1417, ptr %a1421 call void @finch_str_drop(ptr %a1421) %t1422 = load { ptr, i64, i64 }, ptr %a1418 %t1423 = load ptr, ptr %a1 %t1424 = load { ptr, i64, i64 }, ptr %a1166 - store { ptr, i64, i64 } { ptr @.str.5644, i64 8, i64 0 }, ptr %a1426 + store { ptr, i64, i64 } { ptr @.str.5852, i64 8, i64 0 }, ptr %a1426 store { ptr, i64, i64 } %t1424, ptr %a1427 call void @finch_str_concat(ptr %a1425, ptr %a1426, ptr %a1427) %t1428 = load { ptr, i64, i64 }, ptr %a1425 store { ptr, i64, i64 } %t1428, ptr %a1430 - store { ptr, i64, i64 } { ptr @.str.5645, i64 2, i64 0 }, ptr %a1431 + store { ptr, i64, i64 } { ptr @.str.5853, i64 2, i64 0 }, ptr %a1431 call void @finch_str_concat(ptr %a1429, ptr %a1430, ptr %a1431) store { ptr, i64, i64 } %t1428, ptr %a1432 call void @finch_str_drop(ptr %a1432) @@ -88399,11 +92398,11 @@ inrange8543: %t1434 = load { ptr, i64, i64 }, ptr %a1364 %t1435 = extractvalue { ptr, i64, i64 } %t1434, 1 %t1436 = icmp uge i64 3, %t1435 - br i1 %t1436, label %range8544, label %inrange8545 -range8544: - call void @finch_panic_index(ptr @.str.5646, i64 5307, i64 3, i64 %t1435) + br i1 %t1436, label %range8946, label %inrange8947 +range8946: + call void @finch_panic_index(ptr @.str.5854, i64 5542, i64 3, i64 %t1435) unreachable -inrange8545: +inrange8947: %t1437 = extractvalue { ptr, i64, i64 } %t1434, 0 %t1438 = getelementptr inbounds { ptr, i64, i64 }, ptr %t1437, i64 3 %t1439 = load { ptr, i64, i64 }, ptr %t1438 @@ -88438,7 +92437,7 @@ inrange8545: call void @finch.gen.loopEnd(ptr %t1460, { ptr, i64, i64 } %t1461) %t1462 = load ptr, ptr %a1 %t1463 = load { ptr, i64, i64 }, ptr %a1315 - %t1464 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1462, { ptr, i64, i64 } { ptr @.str.5647, i64 17, i64 0 }, { ptr, i64, i64 } %t1463) + %t1464 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1462, { ptr, i64, i64 } { ptr @.str.5855, i64 17, i64 0 }, { ptr, i64, i64 } %t1463) %t1465 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t1464, 0 %t1466 = load %S.ast.Type, ptr %a4 store %S.ast.Type %t1466, ptr %a1467 @@ -88464,14 +92463,14 @@ inrange8545: call void @finch_str_drop(ptr %a19) call void @finch.drop.S_ast_Type(ptr %a15) ret %S.gen.Val %t1471 -endif8533: +endif8935: %t1472 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t1472, ptr %a1473 - store { ptr, i64, i64 } { ptr @.str.5648, i64 4, i64 0 }, ptr %a1474 + store { ptr, i64, i64 } { ptr @.str.5856, i64 4, i64 0 }, ptr %a1474 %t1475 = call i32 @finch_str_eq(ptr %a1473, ptr %a1474) %t1476 = icmp ne i32 %t1475, 0 - br i1 %t1476, label %then8546, label %endif8548 -then8546: + br i1 %t1476, label %then8948, label %endif8950 +then8948: %t1477 = load ptr, ptr %a1 %t1478 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t1477, %S.ast.Node %t1478, i64 0) @@ -88484,61 +92483,61 @@ then8546: %t1485 = load %S.ast.Type, ptr %a15 %t1486 = call i1 @finch.gen.isNumber(%S.ast.Type %t1485) %t1487 = xor i1 %t1486, true - br label %logic.from8549 -logic.from8549: - br i1 %t1487, label %logic.rhs8550, label %logic.end8551 -logic.rhs8550: + br label %logic.from8951 +logic.from8951: + br i1 %t1487, label %logic.rhs8952, label %logic.end8953 +logic.rhs8952: %t1488 = load { ptr, i64, i64 }, ptr %a1484 store { ptr, i64, i64 } %t1488, ptr %a1489 - store { ptr, i64, i64 } { ptr @.str.5649, i64 4, i64 0 }, ptr %a1490 + store { ptr, i64, i64 } { ptr @.str.5857, i64 4, i64 0 }, ptr %a1490 %t1491 = call i32 @finch_str_eq(ptr %a1489, ptr %a1490) %t1492 = icmp eq i32 %t1491, 0 - br label %logic.rend8552 -logic.rend8552: - br label %logic.end8551 -logic.end8551: - %t1493 = phi i1 [ false, %logic.from8549 ], [ %t1492, %logic.rend8552 ] - br label %logic.from8553 -logic.from8553: - br i1 %t1493, label %logic.rhs8554, label %logic.end8555 -logic.rhs8554: + br label %logic.rend8954 +logic.rend8954: + br label %logic.end8953 +logic.end8953: + %t1493 = phi i1 [ false, %logic.from8951 ], [ %t1492, %logic.rend8954 ] + br label %logic.from8955 +logic.from8955: + br i1 %t1493, label %logic.rhs8956, label %logic.end8957 +logic.rhs8956: %t1494 = load { ptr, i64, i64 }, ptr %a1484 store { ptr, i64, i64 } %t1494, ptr %a1495 - store { ptr, i64, i64 } { ptr @.str.5650, i64 3, i64 0 }, ptr %a1496 + store { ptr, i64, i64 } { ptr @.str.5858, i64 3, i64 0 }, ptr %a1496 %t1497 = call i32 @finch_str_eq(ptr %a1495, ptr %a1496) %t1498 = icmp eq i32 %t1497, 0 - br label %logic.rend8556 -logic.rend8556: - br label %logic.end8555 -logic.end8555: - %t1499 = phi i1 [ false, %logic.from8553 ], [ %t1498, %logic.rend8556 ] - br i1 %t1499, label %then8557, label %endif8559 -then8557: + br label %logic.rend8958 +logic.rend8958: + br label %logic.end8957 +logic.end8957: + %t1499 = phi i1 [ false, %logic.from8955 ], [ %t1498, %logic.rend8958 ] + br i1 %t1499, label %then8959, label %endif8961 +then8959: %t1500 = load ptr, ptr %a1 %t1501 = load %S.ast.Node, ptr %a2 - call void @finch.gen.fail(ptr %t1500, %S.ast.Node %t1501, { ptr, i64, i64 } { ptr @.str.5651, i64 47, i64 0 }) - br label %endif8559 -endif8559: + call void @finch.gen.fail(ptr %t1500, %S.ast.Node %t1501, { ptr, i64, i64 } { ptr @.str.5859, i64 47, i64 0 }) + br label %endif8961 +endif8961: %t1502 = load ptr, ptr %a1 %t1503 = load %S.ast.Type, ptr %a15 %t1504 = call { ptr, i64, i64 } @finch.gen.cmpFn(ptr %t1502, %S.ast.Type %t1503) store { ptr, i64, i64 } %t1504, ptr %a1505 %t1506 = load ptr, ptr %a1 %t1507 = load { ptr, i64, i64 }, ptr %a39 - %t1508 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1506, { ptr, i64, i64 } { ptr @.str.5652, i64 3, i64 0 }, { ptr, i64, i64 } %t1507) + %t1508 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1506, { ptr, i64, i64 } { ptr @.str.5860, i64 3, i64 0 }, { ptr, i64, i64 } %t1507) store { ptr, i64, i64 } %t1508, ptr %a1509 %t1510 = load ptr, ptr %a1 %t1511 = load { ptr, i64, i64 }, ptr %a3 - %t1512 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1510, { ptr, i64, i64 } { ptr @.str.5653, i64 3, i64 0 }, { ptr, i64, i64 } %t1511) + %t1512 = call { ptr, i64, i64 } @finch.gen.load(ptr %t1510, { ptr, i64, i64 } { ptr @.str.5861, i64 3, i64 0 }, { ptr, i64, i64 } %t1511) store { ptr, i64, i64 } %t1512, ptr %a1513 %t1514 = load ptr, ptr %a1 %t1515 = load { ptr, i64, i64 }, ptr %a1513 - store { ptr, i64, i64 } { ptr @.str.5654, i64 21, i64 0 }, ptr %a1517 + store { ptr, i64, i64 } { ptr @.str.5862, i64 21, i64 0 }, ptr %a1517 store { ptr, i64, i64 } %t1515, ptr %a1518 call void @finch_str_concat(ptr %a1516, ptr %a1517, ptr %a1518) %t1519 = load { ptr, i64, i64 }, ptr %a1516 store { ptr, i64, i64 } %t1519, ptr %a1521 - store { ptr, i64, i64 } { ptr @.str.5655, i64 6, i64 0 }, ptr %a1522 + store { ptr, i64, i64 } { ptr @.str.5863, i64 6, i64 0 }, ptr %a1522 call void @finch_str_concat(ptr %a1520, ptr %a1521, ptr %a1522) store { ptr, i64, i64 } %t1519, ptr %a1523 call void @finch_str_drop(ptr %a1523) @@ -88551,7 +92550,7 @@ endif8559: call void @finch_str_drop(ptr %a1529) %t1530 = load { ptr, i64, i64 }, ptr %a1526 store { ptr, i64, i64 } %t1530, ptr %a1532 - store { ptr, i64, i64 } { ptr @.str.5656, i64 6, i64 0 }, ptr %a1533 + store { ptr, i64, i64 } { ptr @.str.5864, i64 6, i64 0 }, ptr %a1533 call void @finch_str_concat(ptr %a1531, ptr %a1532, ptr %a1533) store { ptr, i64, i64 } %t1530, ptr %a1534 call void @finch_str_drop(ptr %a1534) @@ -88568,7 +92567,7 @@ endif8559: call void @finch_str_drop(ptr %a1543) %t1544 = load { ptr, i64, i64 }, ptr %a1539 store { ptr, i64, i64 } %t1544, ptr %a1546 - store { ptr, i64, i64 } { ptr @.str.5657, i64 6, i64 0 }, ptr %a1547 + store { ptr, i64, i64 } { ptr @.str.5865, i64 6, i64 0 }, ptr %a1547 call void @finch_str_concat(ptr %a1545, ptr %a1546, ptr %a1547) store { ptr, i64, i64 } %t1544, ptr %a1548 call void @finch_str_drop(ptr %a1548) @@ -88581,7 +92580,7 @@ endif8559: call void @finch_str_drop(ptr %a1554) %t1555 = load { ptr, i64, i64 }, ptr %a1551 store { ptr, i64, i64 } %t1555, ptr %a1557 - store { ptr, i64, i64 } { ptr @.str.5658, i64 1, i64 0 }, ptr %a1558 + store { ptr, i64, i64 } { ptr @.str.5866, i64 1, i64 0 }, ptr %a1558 call void @finch_str_concat(ptr %a1556, ptr %a1557, ptr %a1558) store { ptr, i64, i64 } %t1555, ptr %a1559 call void @finch_str_drop(ptr %a1559) @@ -88589,7 +92588,7 @@ endif8559: call void @finch.gen.emit(ptr %t1514, { ptr, i64, i64 } %t1560) store { ptr, i64, i64 } %t1560, ptr %a1561 call void @finch_str_drop(ptr %a1561) - %t1562 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5659, i64 4, i64 0 }) + %t1562 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5867, i64 4, i64 0 }) %t1563 = insertvalue %S.gen.Val zeroinitializer, %S.ast.Type %t1562, 1 call void @finch_str_drop(ptr %a1513) call void @finch_str_drop(ptr %a1509) @@ -88600,16 +92599,16 @@ endif8559: call void @finch_str_drop(ptr %a19) call void @finch.drop.S_ast_Type(ptr %a15) ret %S.gen.Val %t1563 -endif8548: +endif8950: %t1564 = load ptr, ptr %a1 %t1565 = load %S.ast.Node, ptr %a2 %t1566 = load { ptr, i64, i64 }, ptr %a25 - store { ptr, i64, i64 } { ptr @.str.5660, i64 24, i64 0 }, ptr %a1568 + store { ptr, i64, i64 } { ptr @.str.5868, i64 24, i64 0 }, ptr %a1568 store { ptr, i64, i64 } %t1566, ptr %a1569 call void @finch_str_concat(ptr %a1567, ptr %a1568, ptr %a1569) %t1570 = load { ptr, i64, i64 }, ptr %a1567 store { ptr, i64, i64 } %t1570, ptr %a1572 - store { ptr, i64, i64 } { ptr @.str.5661, i64 96, i64 0 }, ptr %a1573 + store { ptr, i64, i64 } { ptr @.str.5869, i64 96, i64 0 }, ptr %a1573 call void @finch_str_concat(ptr %a1571, ptr %a1572, ptr %a1573) store { ptr, i64, i64 } %t1570, ptr %a1574 call void @finch_str_drop(ptr %a1574) @@ -88757,11 +92756,11 @@ entry: %t6 = load { ptr, i64, i64 }, ptr %t5 %t7 = extractvalue { ptr, i64, i64 } %t6, 1 %t8 = icmp uge i64 0, %t7 - br i1 %t8, label %range8560, label %inrange8561 -range8560: - call void @finch_panic_index(ptr @.str.5662, i64 5330, i64 0, i64 %t7) + br i1 %t8, label %range8962, label %inrange8963 +range8962: + call void @finch_panic_index(ptr @.str.5870, i64 5565, i64 0, i64 %t7) unreachable -inrange8561: +inrange8963: %t9 = extractvalue { ptr, i64, i64 } %t6, 0 %t10 = getelementptr inbounds %S.ast.Type, ptr %t9, i64 0 %t11 = load %S.ast.Type, ptr %t10 @@ -88773,11 +92772,11 @@ inrange8561: %t17 = load %S.ast.Type, ptr %a15 %t18 = call i1 @finch.gen.owning(ptr %t16, %S.ast.Type %t17) %t19 = xor i1 %t18, true - br i1 %t19, label %then8562, label %endif8564 -then8562: + br i1 %t19, label %then8964, label %endif8966 +then8964: call void @finch.drop.S_ast_Type(ptr %a15) ret void -endif8564: +endif8966: %t20 = load ptr, ptr %a1 %t21 = load %S.ast.Type, ptr %a15 %t22 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t20, %S.ast.Type %t21) @@ -88785,12 +92784,12 @@ endif8564: %t24 = load ptr, ptr %a1 %t25 = load ptr, ptr %a1 %t26 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.5664, i64 46, i64 0 }, ptr %a28 + store { ptr, i64, i64 } { ptr @.str.5872, i64 46, i64 0 }, ptr %a28 store { ptr, i64, i64 } %t26, ptr %a29 call void @finch_str_concat(ptr %a27, ptr %a28, ptr %a29) %t30 = load { ptr, i64, i64 }, ptr %a27 store { ptr, i64, i64 } %t30, ptr %a32 - store { ptr, i64, i64 } { ptr @.str.5665, i64 14, i64 0 }, ptr %a33 + store { ptr, i64, i64 } { ptr @.str.5873, i64 14, i64 0 }, ptr %a33 call void @finch_str_concat(ptr %a31, ptr %a32, ptr %a33) store { ptr, i64, i64 } %t30, ptr %a34 call void @finch_str_drop(ptr %a34) @@ -88798,22 +92797,22 @@ endif8564: %t36 = call { ptr, i64, i64 } @finch.gen.op(ptr %t25, { ptr, i64, i64 } %t35) store { ptr, i64, i64 } %t35, ptr %a37 call void @finch_str_drop(ptr %a37) - %t38 = call { ptr, i64, i64 } @finch.gen.load(ptr %t24, { ptr, i64, i64 } { ptr @.str.5663, i64 3, i64 0 }, { ptr, i64, i64 } %t36) + %t38 = call { ptr, i64, i64 } @finch.gen.load(ptr %t24, { ptr, i64, i64 } { ptr @.str.5871, i64 3, i64 0 }, { ptr, i64, i64 } %t36) store { ptr, i64, i64 } %t36, ptr %a39 call void @finch_str_drop(ptr %a39) store { ptr, i64, i64 } %t38, ptr %a40 %t41 = load ptr, ptr %a1 %t42 = load { ptr, i64, i64 }, ptr %a2 - %t43 = call { ptr, i64, i64 } @finch.gen.load(ptr %t41, { ptr, i64, i64 } { ptr @.str.5666, i64 3, i64 0 }, { ptr, i64, i64 } %t42) + %t43 = call { ptr, i64, i64 } @finch.gen.load(ptr %t41, { ptr, i64, i64 } { ptr @.str.5874, i64 3, i64 0 }, { ptr, i64, i64 } %t42) store { ptr, i64, i64 } %t43, ptr %a44 %t45 = load ptr, ptr %a1 %t46 = load { ptr, i64, i64 }, ptr %a4 - store { ptr, i64, i64 } { ptr @.str.5667, i64 13, i64 0 }, ptr %a48 + store { ptr, i64, i64 } { ptr @.str.5875, i64 13, i64 0 }, ptr %a48 store { ptr, i64, i64 } %t46, ptr %a49 call void @finch_str_concat(ptr %a47, ptr %a48, ptr %a49) %t50 = load { ptr, i64, i64 }, ptr %a47 store { ptr, i64, i64 } %t50, ptr %a52 - store { ptr, i64, i64 } { ptr @.str.5668, i64 2, i64 0 }, ptr %a53 + store { ptr, i64, i64 } { ptr @.str.5876, i64 2, i64 0 }, ptr %a53 call void @finch_str_concat(ptr %a51, ptr %a52, ptr %a53) store { ptr, i64, i64 } %t50, ptr %a54 call void @finch_str_drop(ptr %a54) @@ -88831,12 +92830,12 @@ endif8564: store { ptr, i64, i64 } %t62, ptr %a64 %t65 = load ptr, ptr %a1 %t66 = load { ptr, i64, i64 }, ptr %a4 - store { ptr, i64, i64 } { ptr @.str.5669, i64 13, i64 0 }, ptr %a68 + store { ptr, i64, i64 } { ptr @.str.5877, i64 13, i64 0 }, ptr %a68 store { ptr, i64, i64 } %t66, ptr %a69 call void @finch_str_concat(ptr %a67, ptr %a68, ptr %a69) %t70 = load { ptr, i64, i64 }, ptr %a67 store { ptr, i64, i64 } %t70, ptr %a72 - store { ptr, i64, i64 } { ptr @.str.5670, i64 3, i64 0 }, ptr %a73 + store { ptr, i64, i64 } { ptr @.str.5878, i64 3, i64 0 }, ptr %a73 call void @finch_str_concat(ptr %a71, ptr %a72, ptr %a73) store { ptr, i64, i64 } %t70, ptr %a74 call void @finch_str_drop(ptr %a74) @@ -88847,24 +92846,24 @@ endif8564: store { ptr, i64, i64 } %t76, ptr %a78 %t79 = load ptr, ptr %a1 %t80 = load { ptr, i64, i64 }, ptr %a64 - store { ptr, i64, i64 } { ptr @.str.5671, i64 10, i64 0 }, ptr %a82 + store { ptr, i64, i64 } { ptr @.str.5879, i64 10, i64 0 }, ptr %a82 store { ptr, i64, i64 } %t80, ptr %a83 call void @finch_str_concat(ptr %a81, ptr %a82, ptr %a83) %t84 = load { ptr, i64, i64 }, ptr %a81 store { ptr, i64, i64 } %t84, ptr %a86 - store { ptr, i64, i64 } { ptr @.str.5672, i64 6, i64 0 }, ptr %a87 + store { ptr, i64, i64 } { ptr @.str.5880, i64 6, i64 0 }, ptr %a87 call void @finch_str_concat(ptr %a85, ptr %a86, ptr %a87) store { ptr, i64, i64 } %t84, ptr %a88 call void @finch_str_drop(ptr %a88) %t89 = load { ptr, i64, i64 }, ptr %a85 %t90 = load ptr, ptr %a1 %t91 = load { ptr, i64, i64 }, ptr %a78 - store { ptr, i64, i64 } { ptr @.str.5673, i64 10, i64 0 }, ptr %a93 + store { ptr, i64, i64 } { ptr @.str.5881, i64 10, i64 0 }, ptr %a93 store { ptr, i64, i64 } %t91, ptr %a94 call void @finch_str_concat(ptr %a92, ptr %a93, ptr %a94) %t95 = load { ptr, i64, i64 }, ptr %a92 store { ptr, i64, i64 } %t95, ptr %a97 - store { ptr, i64, i64 } { ptr @.str.5674, i64 13, i64 0 }, ptr %a98 + store { ptr, i64, i64 } { ptr @.str.5882, i64 13, i64 0 }, ptr %a98 call void @finch_str_concat(ptr %a96, ptr %a97, ptr %a98) store { ptr, i64, i64 } %t95, ptr %a99 call void @finch_str_drop(ptr %a99) @@ -88888,7 +92887,7 @@ endif8564: call void @finch_str_drop(ptr %a113) %t114 = load { ptr, i64, i64 }, ptr %a109 store { ptr, i64, i64 } %t114, ptr %a116 - store { ptr, i64, i64 } { ptr @.str.5675, i64 6, i64 0 }, ptr %a117 + store { ptr, i64, i64 } { ptr @.str.5883, i64 6, i64 0 }, ptr %a117 call void @finch_str_concat(ptr %a115, ptr %a116, ptr %a117) store { ptr, i64, i64 } %t114, ptr %a118 call void @finch_str_drop(ptr %a118) @@ -88907,12 +92906,12 @@ endif8564: %t129 = load ptr, ptr %a1 %t130 = load ptr, ptr %a1 %t131 = load { ptr, i64, i64 }, ptr %a40 - store { ptr, i64, i64 } { ptr @.str.5676, i64 8, i64 0 }, ptr %a133 + store { ptr, i64, i64 } { ptr @.str.5884, i64 8, i64 0 }, ptr %a133 store { ptr, i64, i64 } %t131, ptr %a134 call void @finch_str_concat(ptr %a132, ptr %a133, ptr %a134) %t135 = load { ptr, i64, i64 }, ptr %a132 store { ptr, i64, i64 } %t135, ptr %a137 - store { ptr, i64, i64 } { ptr @.str.5677, i64 2, i64 0 }, ptr %a138 + store { ptr, i64, i64 } { ptr @.str.5885, i64 2, i64 0 }, ptr %a138 call void @finch_str_concat(ptr %a136, ptr %a137, ptr %a138) store { ptr, i64, i64 } %t135, ptr %a139 call void @finch_str_drop(ptr %a139) @@ -88933,12 +92932,12 @@ endif8564: store { ptr, i64, i64 } %t149, ptr %a151 %t152 = load ptr, ptr %a1 %t153 = load { ptr, i64, i64 }, ptr %a23 - store { ptr, i64, i64 } { ptr @.str.5678, i64 23, i64 0 }, ptr %a155 + store { ptr, i64, i64 } { ptr @.str.5886, i64 23, i64 0 }, ptr %a155 store { ptr, i64, i64 } %t153, ptr %a156 call void @finch_str_concat(ptr %a154, ptr %a155, ptr %a156) %t157 = load { ptr, i64, i64 }, ptr %a154 store { ptr, i64, i64 } %t157, ptr %a159 - store { ptr, i64, i64 } { ptr @.str.5679, i64 6, i64 0 }, ptr %a160 + store { ptr, i64, i64 } { ptr @.str.5887, i64 6, i64 0 }, ptr %a160 call void @finch_str_concat(ptr %a158, ptr %a159, ptr %a160) store { ptr, i64, i64 } %t157, ptr %a161 call void @finch_str_drop(ptr %a161) @@ -88951,19 +92950,19 @@ endif8564: call void @finch_str_drop(ptr %a167) %t168 = load { ptr, i64, i64 }, ptr %a164 store { ptr, i64, i64 } %t168, ptr %a170 - store { ptr, i64, i64 } { ptr @.str.5680, i64 6, i64 0 }, ptr %a171 + store { ptr, i64, i64 } { ptr @.str.5888, i64 6, i64 0 }, ptr %a171 call void @finch_str_concat(ptr %a169, ptr %a170, ptr %a171) store { ptr, i64, i64 } %t168, ptr %a172 call void @finch_str_drop(ptr %a172) %t173 = load { ptr, i64, i64 }, ptr %a169 %t174 = load ptr, ptr %a1 %t175 = load { ptr, i64, i64 }, ptr %a128 - store { ptr, i64, i64 } { ptr @.str.5681, i64 8, i64 0 }, ptr %a177 + store { ptr, i64, i64 } { ptr @.str.5889, i64 8, i64 0 }, ptr %a177 store { ptr, i64, i64 } %t175, ptr %a178 call void @finch_str_concat(ptr %a176, ptr %a177, ptr %a178) %t179 = load { ptr, i64, i64 }, ptr %a176 store { ptr, i64, i64 } %t179, ptr %a181 - store { ptr, i64, i64 } { ptr @.str.5682, i64 2, i64 0 }, ptr %a182 + store { ptr, i64, i64 } { ptr @.str.5890, i64 2, i64 0 }, ptr %a182 call void @finch_str_concat(ptr %a180, ptr %a181, ptr %a182) store { ptr, i64, i64 } %t179, ptr %a183 call void @finch_str_drop(ptr %a183) @@ -88971,11 +92970,11 @@ endif8564: %t185 = load { ptr, i64, i64 }, ptr %a151 %t186 = extractvalue { ptr, i64, i64 } %t185, 1 %t187 = icmp uge i64 3, %t186 - br i1 %t187, label %range8565, label %inrange8566 -range8565: - call void @finch_panic_index(ptr @.str.5683, i64 5341, i64 3, i64 %t186) + br i1 %t187, label %range8967, label %inrange8968 +range8967: + call void @finch_panic_index(ptr @.str.5891, i64 5576, i64 3, i64 %t186) unreachable -inrange8566: +inrange8968: %t188 = extractvalue { ptr, i64, i64 } %t185, 0 %t189 = getelementptr inbounds { ptr, i64, i64 }, ptr %t188, i64 3 %t190 = load { ptr, i64, i64 }, ptr %t189 @@ -89198,7 +93197,7 @@ entry: store %S.ast.Type %p1, ptr %a2 %t3 = load %S.ast.Type, ptr %a2 %t4 = call { ptr, i64, i64 } @finch.gen.typeKey(%S.ast.Type %t3) - store { ptr, i64, i64 } { ptr @.str.5684, i64 11, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.5892, i64 11, i64 0 }, ptr %a6 store { ptr, i64, i64 } %t4, ptr %a7 call void @finch_str_concat(ptr %a5, ptr %a6, ptr %a7) store { ptr, i64, i64 } %t4, ptr %a8 @@ -89207,28 +93206,28 @@ entry: store { ptr, i64, i64 } %t9, ptr %a10 %t11 = load ptr, ptr %a1 %t12 = icmp eq ptr %t11, null - br i1 %t12, label %panic8567, label %ok8568 -panic8567: - call void @finch_panic(ptr @.str.5685, i64 5349, ptr @.str.5686) + br i1 %t12, label %panic8969, label %ok8970 +panic8969: + call void @finch_panic(ptr @.str.5893, i64 5584, ptr @.str.5894) unreachable -ok8568: - %t13 = getelementptr inbounds %S.gen.Gen, ptr %t11, i32 0, i32 22 +ok8970: + %t13 = getelementptr inbounds %S.gen.Gen, ptr %t11, i32 0, i32 23 %t14 = load { ptr, i64, i64 }, ptr %t13 %t15 = load { ptr, i64, i64 }, ptr %a10 %t16 = call i1 @finch.gen.has({ ptr, i64, i64 } %t14, { ptr, i64, i64 } %t15) - br i1 %t16, label %then8569, label %endif8571 -then8569: + br i1 %t16, label %then8971, label %endif8973 +then8971: %t17 = load { ptr, i64, i64 }, ptr %a10 ret { ptr, i64, i64 } %t17 -endif8571: +endif8973: %t18 = load ptr, ptr %a1 %t19 = icmp eq ptr %t18, null - br i1 %t19, label %panic8572, label %ok8573 -panic8572: - call void @finch_panic(ptr @.str.5687, i64 5352, ptr @.str.5688) + br i1 %t19, label %panic8974, label %ok8975 +panic8974: + call void @finch_panic(ptr @.str.5895, i64 5587, ptr @.str.5896) unreachable -ok8573: - %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 22 +ok8975: + %t20 = getelementptr inbounds %S.gen.Gen, ptr %t18, i32 0, i32 23 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t20, i32 0, i32 1 %t22 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t22, ptr %a23 @@ -89244,26 +93243,26 @@ ok8573: %t30 = load ptr, ptr %a1 %t31 = call %S.gen.Saved @finch.gen.beginHelper(ptr %t30) store %S.gen.Saved %t31, ptr %a32 - store { ptr, i64, i64 } { ptr @.str.5689, i64 0, i64 0 }, ptr %a33 + store { ptr, i64, i64 } { ptr @.str.5897, i64 0, i64 0 }, ptr %a33 %t34 = getelementptr inbounds %S.ast.Type, ptr %a2, i32 0, i32 0 %t35 = load { ptr, i64, i64 }, ptr %t34 store { ptr, i64, i64 } %t35, ptr %a36 - store { ptr, i64, i64 } { ptr @.str.5690, i64 3, i64 0 }, ptr %a37 + store { ptr, i64, i64 } { ptr @.str.5898, i64 3, i64 0 }, ptr %a37 %t38 = call i32 @finch_str_eq(ptr %a36, ptr %a37) %t39 = icmp ne i32 %t38, 0 - br i1 %t39, label %then8574, label %else8575 -then8574: + br i1 %t39, label %then8976, label %else8977 +then8976: %t40 = load ptr, ptr %a1 - %t41 = call { ptr, i64, i64 } @finch.gen.op(ptr %t40, { ptr, i64, i64 } { ptr @.str.5691, i64 39, i64 0 }) + %t41 = call { ptr, i64, i64 } @finch.gen.op(ptr %t40, { ptr, i64, i64 } { ptr @.str.5899, i64 39, i64 0 }) store { ptr, i64, i64 } %t41, ptr %a42 %t43 = load ptr, ptr %a1 %t44 = load { ptr, i64, i64 }, ptr %a42 - store { ptr, i64, i64 } { ptr @.str.5692, i64 10, i64 0 }, ptr %a46 + store { ptr, i64, i64 } { ptr @.str.5900, i64 10, i64 0 }, ptr %a46 store { ptr, i64, i64 } %t44, ptr %a47 call void @finch_str_concat(ptr %a45, ptr %a46, ptr %a47) %t48 = load { ptr, i64, i64 }, ptr %a45 store { ptr, i64, i64 } %t48, ptr %a50 - store { ptr, i64, i64 } { ptr @.str.5693, i64 7, i64 0 }, ptr %a51 + store { ptr, i64, i64 } { ptr @.str.5901, i64 7, i64 0 }, ptr %a51 call void @finch_str_concat(ptr %a49, ptr %a50, ptr %a51) store { ptr, i64, i64 } %t48, ptr %a52 call void @finch_str_drop(ptr %a52) @@ -89276,34 +93275,34 @@ then8574: store { ptr, i64, i64 } %t56, ptr %a57 call void @finch_str_drop(ptr %a57) call void @finch_str_drop(ptr %a42) - br label %endif8576 -else8575: + br label %endif8978 +else8977: %t58 = load ptr, ptr %a1 %t59 = load %S.ast.Type, ptr %a2 %t60 = call { ptr, i64, i64 } @finch.gen.llty(ptr %t58, %S.ast.Type %t59) store { ptr, i64, i64 } %t60, ptr %a61 %t62 = load ptr, ptr %a1 %t63 = load { ptr, i64, i64 }, ptr %a61 - %t64 = call { ptr, i64, i64 } @finch.gen.load(ptr %t62, { ptr, i64, i64 } %t63, { ptr, i64, i64 } { ptr @.str.5694, i64 2, i64 0 }) + %t64 = call { ptr, i64, i64 } @finch.gen.load(ptr %t62, { ptr, i64, i64 } %t63, { ptr, i64, i64 } { ptr @.str.5902, i64 2, i64 0 }) store { ptr, i64, i64 } %t64, ptr %a65 %t66 = load ptr, ptr %a1 %t67 = load { ptr, i64, i64 }, ptr %a61 - %t68 = call { ptr, i64, i64 } @finch.gen.load(ptr %t66, { ptr, i64, i64 } %t67, { ptr, i64, i64 } { ptr @.str.5695, i64 2, i64 0 }) + %t68 = call { ptr, i64, i64 } @finch.gen.load(ptr %t66, { ptr, i64, i64 } %t67, { ptr, i64, i64 } { ptr @.str.5903, i64 2, i64 0 }) store { ptr, i64, i64 } %t68, ptr %a69 - store { ptr, i64, i64 } { ptr @.str.5696, i64 0, i64 0 }, ptr %a70 - store { ptr, i64, i64 } { ptr @.str.5697, i64 0, i64 0 }, ptr %a71 + store { ptr, i64, i64 } { ptr @.str.5904, i64 0, i64 0 }, ptr %a70 + store { ptr, i64, i64 } { ptr @.str.5905, i64 0, i64 0 }, ptr %a71 %t72 = load %S.ast.Type, ptr %a2 %t73 = call i1 @finch.gen.isFloat(%S.ast.Type %t72) - br i1 %t73, label %then8577, label %else8578 -then8577: + br i1 %t73, label %then8979, label %else8980 +then8979: %t74 = load ptr, ptr %a1 %t75 = load { ptr, i64, i64 }, ptr %a61 - store { ptr, i64, i64 } { ptr @.str.5698, i64 9, i64 0 }, ptr %a77 + store { ptr, i64, i64 } { ptr @.str.5906, i64 9, i64 0 }, ptr %a77 store { ptr, i64, i64 } %t75, ptr %a78 call void @finch_str_concat(ptr %a76, ptr %a77, ptr %a78) %t79 = load { ptr, i64, i64 }, ptr %a76 store { ptr, i64, i64 } %t79, ptr %a81 - store { ptr, i64, i64 } { ptr @.str.5699, i64 1, i64 0 }, ptr %a82 + store { ptr, i64, i64 } { ptr @.str.5907, i64 1, i64 0 }, ptr %a82 call void @finch_str_concat(ptr %a80, ptr %a81, ptr %a82) store { ptr, i64, i64 } %t79, ptr %a83 call void @finch_str_drop(ptr %a83) @@ -89316,7 +93315,7 @@ then8577: call void @finch_str_drop(ptr %a89) %t90 = load { ptr, i64, i64 }, ptr %a86 store { ptr, i64, i64 } %t90, ptr %a92 - store { ptr, i64, i64 } { ptr @.str.5700, i64 2, i64 0 }, ptr %a93 + store { ptr, i64, i64 } { ptr @.str.5908, i64 2, i64 0 }, ptr %a93 call void @finch_str_concat(ptr %a91, ptr %a92, ptr %a93) store { ptr, i64, i64 } %t90, ptr %a94 call void @finch_str_drop(ptr %a94) @@ -89337,12 +93336,12 @@ then8577: call void @finch_str_drop(ptr %a105) %t106 = load ptr, ptr %a1 %t107 = load { ptr, i64, i64 }, ptr %a61 - store { ptr, i64, i64 } { ptr @.str.5701, i64 9, i64 0 }, ptr %a109 + store { ptr, i64, i64 } { ptr @.str.5909, i64 9, i64 0 }, ptr %a109 store { ptr, i64, i64 } %t107, ptr %a110 call void @finch_str_concat(ptr %a108, ptr %a109, ptr %a110) %t111 = load { ptr, i64, i64 }, ptr %a108 store { ptr, i64, i64 } %t111, ptr %a113 - store { ptr, i64, i64 } { ptr @.str.5702, i64 1, i64 0 }, ptr %a114 + store { ptr, i64, i64 } { ptr @.str.5910, i64 1, i64 0 }, ptr %a114 call void @finch_str_concat(ptr %a112, ptr %a113, ptr %a114) store { ptr, i64, i64 } %t111, ptr %a115 call void @finch_str_drop(ptr %a115) @@ -89355,7 +93354,7 @@ then8577: call void @finch_str_drop(ptr %a121) %t122 = load { ptr, i64, i64 }, ptr %a118 store { ptr, i64, i64 } %t122, ptr %a124 - store { ptr, i64, i64 } { ptr @.str.5703, i64 2, i64 0 }, ptr %a125 + store { ptr, i64, i64 } { ptr @.str.5911, i64 2, i64 0 }, ptr %a125 call void @finch_str_concat(ptr %a123, ptr %a124, ptr %a125) store { ptr, i64, i64 } %t122, ptr %a126 call void @finch_str_drop(ptr %a126) @@ -89374,20 +93373,20 @@ then8577: store { ptr, i64, i64 } %t134, ptr %a71 store { ptr, i64, i64 } %t136, ptr %a137 call void @finch_str_drop(ptr %a137) - br label %endif8579 -else8578: + br label %endif8981 +else8980: %t138 = load ptr, ptr %a1 %t139 = load %S.ast.Type, ptr %a2 %t140 = call i1 @finch.gen.isSigned(%S.ast.Type %t139) - %t141 = call { ptr, i64, i64 } @finch.gen.intPred({ ptr, i64, i64 } { ptr @.str.5705, i64 1, i64 0 }, i1 %t140) - store { ptr, i64, i64 } { ptr @.str.5704, i64 5, i64 0 }, ptr %a143 + %t141 = call { ptr, i64, i64 } @finch.gen.intPred({ ptr, i64, i64 } { ptr @.str.5913, i64 1, i64 0 }, i1 %t140) + store { ptr, i64, i64 } { ptr @.str.5912, i64 5, i64 0 }, ptr %a143 store { ptr, i64, i64 } %t141, ptr %a144 call void @finch_str_concat(ptr %a142, ptr %a143, ptr %a144) store { ptr, i64, i64 } %t141, ptr %a145 call void @finch_str_drop(ptr %a145) %t146 = load { ptr, i64, i64 }, ptr %a142 store { ptr, i64, i64 } %t146, ptr %a148 - store { ptr, i64, i64 } { ptr @.str.5706, i64 1, i64 0 }, ptr %a149 + store { ptr, i64, i64 } { ptr @.str.5914, i64 1, i64 0 }, ptr %a149 call void @finch_str_concat(ptr %a147, ptr %a148, ptr %a149) store { ptr, i64, i64 } %t146, ptr %a150 call void @finch_str_drop(ptr %a150) @@ -89400,7 +93399,7 @@ else8578: call void @finch_str_drop(ptr %a156) %t157 = load { ptr, i64, i64 }, ptr %a153 store { ptr, i64, i64 } %t157, ptr %a159 - store { ptr, i64, i64 } { ptr @.str.5707, i64 1, i64 0 }, ptr %a160 + store { ptr, i64, i64 } { ptr @.str.5915, i64 1, i64 0 }, ptr %a160 call void @finch_str_concat(ptr %a158, ptr %a159, ptr %a160) store { ptr, i64, i64 } %t157, ptr %a161 call void @finch_str_drop(ptr %a161) @@ -89413,7 +93412,7 @@ else8578: call void @finch_str_drop(ptr %a167) %t168 = load { ptr, i64, i64 }, ptr %a164 store { ptr, i64, i64 } %t168, ptr %a170 - store { ptr, i64, i64 } { ptr @.str.5708, i64 2, i64 0 }, ptr %a171 + store { ptr, i64, i64 } { ptr @.str.5916, i64 2, i64 0 }, ptr %a171 call void @finch_str_concat(ptr %a169, ptr %a170, ptr %a171) store { ptr, i64, i64 } %t168, ptr %a172 call void @finch_str_drop(ptr %a172) @@ -89435,15 +93434,15 @@ else8578: %t184 = load ptr, ptr %a1 %t185 = load %S.ast.Type, ptr %a2 %t186 = call i1 @finch.gen.isSigned(%S.ast.Type %t185) - %t187 = call { ptr, i64, i64 } @finch.gen.intPred({ ptr, i64, i64 } { ptr @.str.5710, i64 1, i64 0 }, i1 %t186) - store { ptr, i64, i64 } { ptr @.str.5709, i64 5, i64 0 }, ptr %a189 + %t187 = call { ptr, i64, i64 } @finch.gen.intPred({ ptr, i64, i64 } { ptr @.str.5918, i64 1, i64 0 }, i1 %t186) + store { ptr, i64, i64 } { ptr @.str.5917, i64 5, i64 0 }, ptr %a189 store { ptr, i64, i64 } %t187, ptr %a190 call void @finch_str_concat(ptr %a188, ptr %a189, ptr %a190) store { ptr, i64, i64 } %t187, ptr %a191 call void @finch_str_drop(ptr %a191) %t192 = load { ptr, i64, i64 }, ptr %a188 store { ptr, i64, i64 } %t192, ptr %a194 - store { ptr, i64, i64 } { ptr @.str.5711, i64 1, i64 0 }, ptr %a195 + store { ptr, i64, i64 } { ptr @.str.5919, i64 1, i64 0 }, ptr %a195 call void @finch_str_concat(ptr %a193, ptr %a194, ptr %a195) store { ptr, i64, i64 } %t192, ptr %a196 call void @finch_str_drop(ptr %a196) @@ -89456,7 +93455,7 @@ else8578: call void @finch_str_drop(ptr %a202) %t203 = load { ptr, i64, i64 }, ptr %a199 store { ptr, i64, i64 } %t203, ptr %a205 - store { ptr, i64, i64 } { ptr @.str.5712, i64 1, i64 0 }, ptr %a206 + store { ptr, i64, i64 } { ptr @.str.5920, i64 1, i64 0 }, ptr %a206 call void @finch_str_concat(ptr %a204, ptr %a205, ptr %a206) store { ptr, i64, i64 } %t203, ptr %a207 call void @finch_str_drop(ptr %a207) @@ -89469,7 +93468,7 @@ else8578: call void @finch_str_drop(ptr %a213) %t214 = load { ptr, i64, i64 }, ptr %a210 store { ptr, i64, i64 } %t214, ptr %a216 - store { ptr, i64, i64 } { ptr @.str.5713, i64 2, i64 0 }, ptr %a217 + store { ptr, i64, i64 } { ptr @.str.5921, i64 2, i64 0 }, ptr %a217 call void @finch_str_concat(ptr %a215, ptr %a216, ptr %a217) store { ptr, i64, i64 } %t214, ptr %a218 call void @finch_str_drop(ptr %a218) @@ -89488,17 +93487,17 @@ else8578: store { ptr, i64, i64 } %t226, ptr %a71 store { ptr, i64, i64 } %t228, ptr %a229 call void @finch_str_drop(ptr %a229) - br label %endif8579 -endif8579: + br label %endif8981 +endif8981: %t230 = load ptr, ptr %a1 %t231 = load ptr, ptr %a1 %t232 = load { ptr, i64, i64 }, ptr %a71 - store { ptr, i64, i64 } { ptr @.str.5715, i64 8, i64 0 }, ptr %a234 + store { ptr, i64, i64 } { ptr @.str.5923, i64 8, i64 0 }, ptr %a234 store { ptr, i64, i64 } %t232, ptr %a235 call void @finch_str_concat(ptr %a233, ptr %a234, ptr %a235) %t236 = load { ptr, i64, i64 }, ptr %a233 store { ptr, i64, i64 } %t236, ptr %a238 - store { ptr, i64, i64 } { ptr @.str.5716, i64 7, i64 0 }, ptr %a239 + store { ptr, i64, i64 } { ptr @.str.5924, i64 7, i64 0 }, ptr %a239 call void @finch_str_concat(ptr %a237, ptr %a238, ptr %a239) store { ptr, i64, i64 } %t236, ptr %a240 call void @finch_str_drop(ptr %a240) @@ -89506,26 +93505,26 @@ endif8579: %t242 = call { ptr, i64, i64 } @finch.gen.op(ptr %t231, { ptr, i64, i64 } %t241) store { ptr, i64, i64 } %t241, ptr %a243 call void @finch_str_drop(ptr %a243) - store { ptr, i64, i64 } { ptr @.str.5714, i64 8, i64 0 }, ptr %a245 + store { ptr, i64, i64 } { ptr @.str.5922, i64 8, i64 0 }, ptr %a245 store { ptr, i64, i64 } %t242, ptr %a246 call void @finch_str_concat(ptr %a244, ptr %a245, ptr %a246) store { ptr, i64, i64 } %t242, ptr %a247 call void @finch_str_drop(ptr %a247) %t248 = load { ptr, i64, i64 }, ptr %a244 store { ptr, i64, i64 } %t248, ptr %a250 - store { ptr, i64, i64 } { ptr @.str.5717, i64 2, i64 0 }, ptr %a251 + store { ptr, i64, i64 } { ptr @.str.5925, i64 2, i64 0 }, ptr %a251 call void @finch_str_concat(ptr %a249, ptr %a250, ptr %a251) store { ptr, i64, i64 } %t248, ptr %a252 call void @finch_str_drop(ptr %a252) %t253 = load { ptr, i64, i64 }, ptr %a249 %t254 = load ptr, ptr %a1 %t255 = load { ptr, i64, i64 }, ptr %a70 - store { ptr, i64, i64 } { ptr @.str.5718, i64 8, i64 0 }, ptr %a257 + store { ptr, i64, i64 } { ptr @.str.5926, i64 8, i64 0 }, ptr %a257 store { ptr, i64, i64 } %t255, ptr %a258 call void @finch_str_concat(ptr %a256, ptr %a257, ptr %a258) %t259 = load { ptr, i64, i64 }, ptr %a256 store { ptr, i64, i64 } %t259, ptr %a261 - store { ptr, i64, i64 } { ptr @.str.5719, i64 7, i64 0 }, ptr %a262 + store { ptr, i64, i64 } { ptr @.str.5927, i64 7, i64 0 }, ptr %a262 call void @finch_str_concat(ptr %a260, ptr %a261, ptr %a262) store { ptr, i64, i64 } %t259, ptr %a263 call void @finch_str_drop(ptr %a263) @@ -89553,11 +93552,11 @@ endif8579: call void @finch_str_drop(ptr %a69) call void @finch_str_drop(ptr %a65) call void @finch_str_drop(ptr %a61) - br label %endif8576 -endif8576: + br label %endif8978 +endif8978: %t277 = load ptr, ptr %a1 %t278 = load { ptr, i64, i64 }, ptr %a33 - store { ptr, i64, i64 } { ptr @.str.5720, i64 8, i64 0 }, ptr %a280 + store { ptr, i64, i64 } { ptr @.str.5928, i64 8, i64 0 }, ptr %a280 store { ptr, i64, i64 } %t278, ptr %a281 call void @finch_str_concat(ptr %a279, ptr %a280, ptr %a281) %t282 = load { ptr, i64, i64 }, ptr %a279 @@ -89567,12 +93566,12 @@ endif8576: %t284 = load ptr, ptr %a1 %t285 = load %S.gen.Saved, ptr %a32 %t286 = load { ptr, i64, i64 }, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.5721, i64 20, i64 0 }, ptr %a288 + store { ptr, i64, i64 } { ptr @.str.5929, i64 20, i64 0 }, ptr %a288 store { ptr, i64, i64 } %t286, ptr %a289 call void @finch_str_concat(ptr %a287, ptr %a288, ptr %a289) %t290 = load { ptr, i64, i64 }, ptr %a287 store { ptr, i64, i64 } %t290, ptr %a292 - store { ptr, i64, i64 } { ptr @.str.5722, i64 16, i64 0 }, ptr %a293 + store { ptr, i64, i64 } { ptr @.str.5930, i64 16, i64 0 }, ptr %a293 call void @finch_str_concat(ptr %a291, ptr %a292, ptr %a293) store { ptr, i64, i64 } %t290, ptr %a294 call void @finch_str_drop(ptr %a294) @@ -89935,22 +93934,22 @@ entry: %t13 = load ptr, ptr %a1 %t14 = load ptr, ptr %a1 %t15 = icmp eq ptr %t14, null - br i1 %t15, label %panic8580, label %ok8581 -panic8580: - call void @finch_panic(ptr @.str.5723, i64 5381, ptr @.str.5724) + br i1 %t15, label %panic8982, label %ok8983 +panic8982: + call void @finch_panic(ptr @.str.5931, i64 5616, ptr @.str.5932) unreachable -ok8581: +ok8983: %t16 = getelementptr inbounds %S.gen.Gen, ptr %t14, i32 0, i32 1 %t17 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 13 %t18 = load i64, ptr %t17 %t19 = load { ptr, i64, i64 }, ptr %t16 %t20 = extractvalue { ptr, i64, i64 } %t19, 1 %t21 = icmp uge i64 %t18, %t20 - br i1 %t21, label %range8582, label %inrange8583 -range8582: - call void @finch_panic_index(ptr @.str.5725, i64 5381, i64 %t18, i64 %t20) + br i1 %t21, label %range8984, label %inrange8985 +range8984: + call void @finch_panic_index(ptr @.str.5933, i64 5616, i64 %t18, i64 %t20) unreachable -inrange8583: +inrange8985: %t22 = extractvalue { ptr, i64, i64 } %t19, 0 %t23 = getelementptr inbounds { ptr, i64, i64 }, ptr %t22, i64 %t18 %t24 = load { ptr, i64, i64 }, ptr %t23 @@ -89958,11 +93957,11 @@ inrange8583: store { ptr, i64, i64 } %t25, ptr %a26 %t27 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t27, ptr %a28 - store { ptr, i64, i64 } { ptr @.str.5726, i64 3, i64 0 }, ptr %a29 + store { ptr, i64, i64 } { ptr @.str.5934, i64 3, i64 0 }, ptr %a29 %t30 = call i32 @finch_str_eq(ptr %a28, ptr %a29) %t31 = icmp ne i32 %t30, 0 - br i1 %t31, label %then8584, label %endif8586 -then8584: + br i1 %t31, label %then8986, label %endif8988 +then8986: %t32 = load ptr, ptr %a1 %t33 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t32, %S.ast.Node %t33, i64 2) @@ -89972,29 +93971,29 @@ then8584: %t37 = load { ptr, i64, i64 }, ptr %t36 %t38 = extractvalue { ptr, i64, i64 } %t37, 1 %t39 = icmp uge i64 1, %t38 - br i1 %t39, label %range8587, label %inrange8588 -range8587: - call void @finch_panic_index(ptr @.str.5727, i64 5384, i64 1, i64 %t38) + br i1 %t39, label %range8989, label %inrange8990 +range8989: + call void @finch_panic_index(ptr @.str.5935, i64 5619, i64 1, i64 %t38) unreachable -inrange8588: +inrange8990: %t40 = extractvalue { ptr, i64, i64 } %t37, 0 %t41 = getelementptr inbounds %S.ast.Node, ptr %t40, i64 1 %t42 = load %S.ast.Node, ptr %t41 %t43 = call %S.gen.Val @finch.gen.expr(ptr %t35, %S.ast.Node %t42) - %t44 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5728, i64 3, i64 0 }) + %t44 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5936, i64 3, i64 0 }) %t45 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t46 = load { ptr, i64, i64 }, ptr %t45 %t47 = extractvalue { ptr, i64, i64 } %t46, 1 %t48 = icmp uge i64 1, %t47 - br i1 %t48, label %range8589, label %inrange8590 -range8589: - call void @finch_panic_index(ptr @.str.5729, i64 5384, i64 1, i64 %t47) + br i1 %t48, label %range8991, label %inrange8992 +range8991: + call void @finch_panic_index(ptr @.str.5937, i64 5619, i64 1, i64 %t47) unreachable -inrange8590: +inrange8992: %t49 = extractvalue { ptr, i64, i64 } %t46, 0 %t50 = getelementptr inbounds %S.ast.Node, ptr %t49, i64 1 %t51 = load %S.ast.Node, ptr %t50 - %t52 = call %S.gen.Val @finch.gen.coerce(ptr %t34, %S.gen.Val %t43, %S.ast.Type %t44, %S.ast.Node %t51, { ptr, i64, i64 } { ptr @.str.5730, i64 9, i64 0 }) + %t52 = call %S.gen.Val @finch.gen.coerce(ptr %t34, %S.gen.Val %t43, %S.ast.Type %t44, %S.ast.Node %t51, { ptr, i64, i64 } { ptr @.str.5938, i64 9, i64 0 }) store %S.gen.Val %t43, ptr %a53 call void @finch.drop.S_gen_Val(ptr %a53) store %S.ast.Type %t44, ptr %a54 @@ -90012,29 +94011,29 @@ inrange8590: %t64 = load { ptr, i64, i64 }, ptr %t63 %t65 = extractvalue { ptr, i64, i64 } %t64, 1 %t66 = icmp uge i64 2, %t65 - br i1 %t66, label %range8591, label %inrange8592 -range8591: - call void @finch_panic_index(ptr @.str.5731, i64 5385, i64 2, i64 %t65) + br i1 %t66, label %range8993, label %inrange8994 +range8993: + call void @finch_panic_index(ptr @.str.5939, i64 5620, i64 2, i64 %t65) unreachable -inrange8592: +inrange8994: %t67 = extractvalue { ptr, i64, i64 } %t64, 0 %t68 = getelementptr inbounds %S.ast.Node, ptr %t67, i64 2 %t69 = load %S.ast.Node, ptr %t68 %t70 = call %S.gen.Val @finch.gen.expr(ptr %t62, %S.ast.Node %t69) - %t71 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5732, i64 3, i64 0 }) + %t71 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5940, i64 3, i64 0 }) %t72 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t73 = load { ptr, i64, i64 }, ptr %t72 %t74 = extractvalue { ptr, i64, i64 } %t73, 1 %t75 = icmp uge i64 2, %t74 - br i1 %t75, label %range8593, label %inrange8594 -range8593: - call void @finch_panic_index(ptr @.str.5733, i64 5385, i64 2, i64 %t74) + br i1 %t75, label %range8995, label %inrange8996 +range8995: + call void @finch_panic_index(ptr @.str.5941, i64 5620, i64 2, i64 %t74) unreachable -inrange8594: +inrange8996: %t76 = extractvalue { ptr, i64, i64 } %t73, 0 %t77 = getelementptr inbounds %S.ast.Node, ptr %t76, i64 2 %t78 = load %S.ast.Node, ptr %t77 - %t79 = call %S.gen.Val @finch.gen.coerce(ptr %t61, %S.gen.Val %t70, %S.ast.Type %t71, %S.ast.Node %t78, { ptr, i64, i64 } { ptr @.str.5734, i64 7, i64 0 }) + %t79 = call %S.gen.Val @finch.gen.coerce(ptr %t61, %S.gen.Val %t70, %S.ast.Type %t71, %S.ast.Node %t78, { ptr, i64, i64 } { ptr @.str.5942, i64 7, i64 0 }) store %S.gen.Val %t70, ptr %a80 call void @finch.drop.S_gen_Val(ptr %a80) store %S.ast.Type %t71, ptr %a81 @@ -90048,12 +94047,12 @@ inrange8594: store { ptr, i64, i64 } %t85, ptr %a87 %t88 = load ptr, ptr %a1 %t89 = load { ptr, i64, i64 }, ptr %a12 - store { ptr, i64, i64 } { ptr @.str.5735, i64 29, i64 0 }, ptr %a91 + store { ptr, i64, i64 } { ptr @.str.5943, i64 29, i64 0 }, ptr %a91 store { ptr, i64, i64 } %t89, ptr %a92 call void @finch_str_concat(ptr %a90, ptr %a91, ptr %a92) %t93 = load { ptr, i64, i64 }, ptr %a90 store { ptr, i64, i64 } %t93, ptr %a95 - store { ptr, i64, i64 } { ptr @.str.5736, i64 6, i64 0 }, ptr %a96 + store { ptr, i64, i64 } { ptr @.str.5944, i64 6, i64 0 }, ptr %a96 call void @finch_str_concat(ptr %a94, ptr %a95, ptr %a96) store { ptr, i64, i64 } %t93, ptr %a97 call void @finch_str_drop(ptr %a97) @@ -90066,7 +94065,7 @@ inrange8594: call void @finch_str_drop(ptr %a103) %t104 = load { ptr, i64, i64 }, ptr %a100 store { ptr, i64, i64 } %t104, ptr %a106 - store { ptr, i64, i64 } { ptr @.str.5737, i64 6, i64 0 }, ptr %a107 + store { ptr, i64, i64 } { ptr @.str.5945, i64 6, i64 0 }, ptr %a107 call void @finch_str_concat(ptr %a105, ptr %a106, ptr %a107) store { ptr, i64, i64 } %t104, ptr %a108 call void @finch_str_drop(ptr %a108) @@ -90079,7 +94078,7 @@ inrange8594: call void @finch_str_drop(ptr %a114) %t115 = load { ptr, i64, i64 }, ptr %a111 store { ptr, i64, i64 } %t115, ptr %a117 - store { ptr, i64, i64 } { ptr @.str.5738, i64 6, i64 0 }, ptr %a118 + store { ptr, i64, i64 } { ptr @.str.5946, i64 6, i64 0 }, ptr %a118 call void @finch_str_concat(ptr %a116, ptr %a117, ptr %a118) store { ptr, i64, i64 } %t115, ptr %a119 call void @finch_str_drop(ptr %a119) @@ -90092,7 +94091,7 @@ inrange8594: call void @finch_str_drop(ptr %a125) %t126 = load { ptr, i64, i64 }, ptr %a122 store { ptr, i64, i64 } %t126, ptr %a128 - store { ptr, i64, i64 } { ptr @.str.5739, i64 6, i64 0 }, ptr %a129 + store { ptr, i64, i64 } { ptr @.str.5947, i64 6, i64 0 }, ptr %a129 call void @finch_str_concat(ptr %a127, ptr %a128, ptr %a129) store { ptr, i64, i64 } %t126, ptr %a130 call void @finch_str_drop(ptr %a130) @@ -90105,7 +94104,7 @@ inrange8594: call void @finch_str_drop(ptr %a136) %t137 = load { ptr, i64, i64 }, ptr %a133 store { ptr, i64, i64 } %t137, ptr %a139 - store { ptr, i64, i64 } { ptr @.str.5740, i64 6, i64 0 }, ptr %a140 + store { ptr, i64, i64 } { ptr @.str.5948, i64 6, i64 0 }, ptr %a140 call void @finch_str_concat(ptr %a138, ptr %a139, ptr %a140) store { ptr, i64, i64 } %t137, ptr %a141 call void @finch_str_drop(ptr %a141) @@ -90123,7 +94122,7 @@ inrange8594: call void @finch_str_drop(ptr %a151) %t152 = load { ptr, i64, i64 }, ptr %a147 store { ptr, i64, i64 } %t152, ptr %a154 - store { ptr, i64, i64 } { ptr @.str.5741, i64 1, i64 0 }, ptr %a155 + store { ptr, i64, i64 } { ptr @.str.5949, i64 1, i64 0 }, ptr %a155 call void @finch_str_concat(ptr %a153, ptr %a154, ptr %a155) store { ptr, i64, i64 } %t152, ptr %a156 call void @finch_str_drop(ptr %a156) @@ -90133,9 +94132,9 @@ inrange8594: call void @finch_str_drop(ptr %a158) %t159 = load ptr, ptr %a1 %t160 = load { ptr, i64, i64 }, ptr %a12 - %t161 = call { ptr, i64, i64 } @finch.gen.load(ptr %t159, { ptr, i64, i64 } { ptr @.str.5742, i64 17, i64 0 }, { ptr, i64, i64 } %t160) + %t161 = call { ptr, i64, i64 } @finch.gen.load(ptr %t159, { ptr, i64, i64 } { ptr @.str.5950, i64 17, i64 0 }, { ptr, i64, i64 } %t160) %t162 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t161, 0 - %t163 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5743, i64 3, i64 0 }) + %t163 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5951, i64 3, i64 0 }) %t164 = insertvalue %S.gen.Val %t162, %S.ast.Type %t163, 1 %t165 = insertvalue %S.gen.Val %t164, i1 true, 2 call void @finch_str_drop(ptr %a87) @@ -90144,56 +94143,56 @@ inrange8594: call void @finch_str_drop(ptr %a12) call void @finch_str_drop(ptr %a9) ret %S.gen.Val %t165 -endif8586: +endif8988: %t166 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t166, ptr %a167 - store { ptr, i64, i64 } { ptr @.str.5744, i64 4, i64 0 }, ptr %a168 + store { ptr, i64, i64 } { ptr @.str.5952, i64 4, i64 0 }, ptr %a168 %t169 = call i32 @finch_str_eq(ptr %a167, ptr %a168) %t170 = icmp ne i32 %t169, 0 - br label %logic.from8595 -logic.from8595: - br i1 %t170, label %logic.end8597, label %logic.rhs8596 -logic.rhs8596: + br label %logic.from8997 +logic.from8997: + br i1 %t170, label %logic.end8999, label %logic.rhs8998 +logic.rhs8998: %t171 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t171, ptr %a172 - store { ptr, i64, i64 } { ptr @.str.5745, i64 8, i64 0 }, ptr %a173 + store { ptr, i64, i64 } { ptr @.str.5953, i64 8, i64 0 }, ptr %a173 %t174 = call i32 @finch_str_eq(ptr %a172, ptr %a173) %t175 = icmp ne i32 %t174, 0 - br label %logic.rend8598 -logic.rend8598: - br label %logic.end8597 -logic.end8597: - %t176 = phi i1 [ true, %logic.from8595 ], [ %t175, %logic.rend8598 ] - br label %logic.from8599 -logic.from8599: - br i1 %t176, label %logic.end8601, label %logic.rhs8600 -logic.rhs8600: + br label %logic.rend9000 +logic.rend9000: + br label %logic.end8999 +logic.end8999: + %t176 = phi i1 [ true, %logic.from8997 ], [ %t175, %logic.rend9000 ] + br label %logic.from9001 +logic.from9001: + br i1 %t176, label %logic.end9003, label %logic.rhs9002 +logic.rhs9002: %t177 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t177, ptr %a178 - store { ptr, i64, i64 } { ptr @.str.5746, i64 11, i64 0 }, ptr %a179 + store { ptr, i64, i64 } { ptr @.str.5954, i64 11, i64 0 }, ptr %a179 %t180 = call i32 @finch_str_eq(ptr %a178, ptr %a179) %t181 = icmp ne i32 %t180, 0 - br label %logic.rend8602 -logic.rend8602: - br label %logic.end8601 -logic.end8601: - %t182 = phi i1 [ true, %logic.from8599 ], [ %t181, %logic.rend8602 ] - br label %logic.from8603 -logic.from8603: - br i1 %t182, label %logic.end8605, label %logic.rhs8604 -logic.rhs8604: + br label %logic.rend9004 +logic.rend9004: + br label %logic.end9003 +logic.end9003: + %t182 = phi i1 [ true, %logic.from9001 ], [ %t181, %logic.rend9004 ] + br label %logic.from9005 +logic.from9005: + br i1 %t182, label %logic.end9007, label %logic.rhs9006 +logic.rhs9006: %t183 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t183, ptr %a184 - store { ptr, i64, i64 } { ptr @.str.5747, i64 9, i64 0 }, ptr %a185 + store { ptr, i64, i64 } { ptr @.str.5955, i64 9, i64 0 }, ptr %a185 %t186 = call i32 @finch_str_eq(ptr %a184, ptr %a185) %t187 = icmp ne i32 %t186, 0 - br label %logic.rend8606 -logic.rend8606: - br label %logic.end8605 -logic.end8605: - %t188 = phi i1 [ true, %logic.from8603 ], [ %t187, %logic.rend8606 ] - br i1 %t188, label %then8607, label %endif8609 -then8607: + br label %logic.rend9008 +logic.rend9008: + br label %logic.end9007 +logic.end9007: + %t188 = phi i1 [ true, %logic.from9005 ], [ %t187, %logic.rend9008 ] + br i1 %t188, label %then9009, label %endif9011 +then9009: %t189 = load ptr, ptr %a1 %t190 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t189, %S.ast.Node %t190, i64 1) @@ -90202,15 +94201,15 @@ then8607: %t193 = load { ptr, i64, i64 }, ptr %t192 %t194 = extractvalue { ptr, i64, i64 } %t193, 1 %t195 = icmp uge i64 1, %t194 - br i1 %t195, label %range8610, label %inrange8611 -range8610: - call void @finch_panic_index(ptr @.str.5748, i64 5391, i64 1, i64 %t194) + br i1 %t195, label %range9012, label %inrange9013 +range9012: + call void @finch_panic_index(ptr @.str.5956, i64 5626, i64 1, i64 %t194) unreachable -inrange8611: +inrange9013: %t196 = extractvalue { ptr, i64, i64 } %t193, 0 %t197 = getelementptr inbounds %S.ast.Node, ptr %t196, i64 1 %t198 = load %S.ast.Node, ptr %t197 - %t199 = call %S.gen.Val @finch.gen.strArg(ptr %t191, %S.ast.Node %t198, { ptr, i64, i64 } { ptr @.str.5749, i64 20, i64 0 }) + %t199 = call %S.gen.Val @finch.gen.strArg(ptr %t191, %S.ast.Node %t198, { ptr, i64, i64 } { ptr @.str.5957, i64 20, i64 0 }) store %S.gen.Val %t199, ptr %a200 %t201 = load ptr, ptr %a1 %t202 = load %S.gen.Val, ptr %a200 @@ -90218,19 +94217,19 @@ inrange8611: store { ptr, i64, i64 } %t203, ptr %a204 %t205 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t205, ptr %a206 - store { ptr, i64, i64 } { ptr @.str.5750, i64 4, i64 0 }, ptr %a207 + store { ptr, i64, i64 } { ptr @.str.5958, i64 4, i64 0 }, ptr %a207 %t208 = call i32 @finch_str_eq(ptr %a206, ptr %a207) %t209 = icmp ne i32 %t208, 0 - br i1 %t209, label %then8612, label %endif8614 -then8612: + br i1 %t209, label %then9014, label %endif9016 +then9014: %t210 = load ptr, ptr %a1 %t211 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.5751, i64 29, i64 0 }, ptr %a213 + store { ptr, i64, i64 } { ptr @.str.5959, i64 29, i64 0 }, ptr %a213 store { ptr, i64, i64 } %t211, ptr %a214 call void @finch_str_concat(ptr %a212, ptr %a213, ptr %a214) %t215 = load { ptr, i64, i64 }, ptr %a212 store { ptr, i64, i64 } %t215, ptr %a217 - store { ptr, i64, i64 } { ptr @.str.5752, i64 6, i64 0 }, ptr %a218 + store { ptr, i64, i64 } { ptr @.str.5960, i64 6, i64 0 }, ptr %a218 call void @finch_str_concat(ptr %a216, ptr %a217, ptr %a218) store { ptr, i64, i64 } %t215, ptr %a219 call void @finch_str_drop(ptr %a219) @@ -90243,7 +94242,7 @@ then8612: call void @finch_str_drop(ptr %a225) %t226 = load { ptr, i64, i64 }, ptr %a222 store { ptr, i64, i64 } %t226, ptr %a228 - store { ptr, i64, i64 } { ptr @.str.5753, i64 1, i64 0 }, ptr %a229 + store { ptr, i64, i64 } { ptr @.str.5961, i64 1, i64 0 }, ptr %a229 call void @finch_str_concat(ptr %a227, ptr %a228, ptr %a229) store { ptr, i64, i64 } %t226, ptr %a230 call void @finch_str_drop(ptr %a230) @@ -90260,7 +94259,7 @@ then8612: call void @finch_str_copy(ptr %a239, ptr %a238) %t240 = load { ptr, i64, i64 }, ptr %a239 %t241 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t240, 0 - %t242 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5754, i64 3, i64 0 }) + %t242 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5962, i64 3, i64 0 }) %t243 = insertvalue %S.gen.Val %t241, %S.ast.Type %t242, 1 call void @finch_str_drop(ptr %a234) call void @finch_str_drop(ptr %a204) @@ -90269,22 +94268,22 @@ then8612: call void @finch_str_drop(ptr %a12) call void @finch_str_drop(ptr %a9) ret %S.gen.Val %t243 -endif8614: +endif9016: %t244 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t244, ptr %a245 - store { ptr, i64, i64 } { ptr @.str.5755, i64 8, i64 0 }, ptr %a246 + store { ptr, i64, i64 } { ptr @.str.5963, i64 8, i64 0 }, ptr %a246 %t247 = call i32 @finch_str_eq(ptr %a245, ptr %a246) %t248 = icmp ne i32 %t247, 0 - br i1 %t248, label %then8615, label %endif8617 -then8615: + br i1 %t248, label %then9017, label %endif9019 +then9017: %t249 = load ptr, ptr %a1 %t250 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.5756, i64 29, i64 0 }, ptr %a252 + store { ptr, i64, i64 } { ptr @.str.5964, i64 29, i64 0 }, ptr %a252 store { ptr, i64, i64 } %t250, ptr %a253 call void @finch_str_concat(ptr %a251, ptr %a252, ptr %a253) %t254 = load { ptr, i64, i64 }, ptr %a251 store { ptr, i64, i64 } %t254, ptr %a256 - store { ptr, i64, i64 } { ptr @.str.5757, i64 6, i64 0 }, ptr %a257 + store { ptr, i64, i64 } { ptr @.str.5965, i64 6, i64 0 }, ptr %a257 call void @finch_str_concat(ptr %a255, ptr %a256, ptr %a257) store { ptr, i64, i64 } %t254, ptr %a258 call void @finch_str_drop(ptr %a258) @@ -90297,7 +94296,7 @@ then8615: call void @finch_str_drop(ptr %a264) %t265 = load { ptr, i64, i64 }, ptr %a261 store { ptr, i64, i64 } %t265, ptr %a267 - store { ptr, i64, i64 } { ptr @.str.5758, i64 1, i64 0 }, ptr %a268 + store { ptr, i64, i64 } { ptr @.str.5966, i64 1, i64 0 }, ptr %a268 call void @finch_str_concat(ptr %a266, ptr %a267, ptr %a268) store { ptr, i64, i64 } %t265, ptr %a269 call void @finch_str_drop(ptr %a269) @@ -90308,12 +94307,12 @@ then8615: store { ptr, i64, i64 } %t271, ptr %a273 %t274 = load ptr, ptr %a1 %t275 = load { ptr, i64, i64 }, ptr %a273 - store { ptr, i64, i64 } { ptr @.str.5759, i64 13, i64 0 }, ptr %a277 + store { ptr, i64, i64 } { ptr @.str.5967, i64 13, i64 0 }, ptr %a277 store { ptr, i64, i64 } %t275, ptr %a278 call void @finch_str_concat(ptr %a276, ptr %a277, ptr %a278) %t279 = load { ptr, i64, i64 }, ptr %a276 store { ptr, i64, i64 } %t279, ptr %a281 - store { ptr, i64, i64 } { ptr @.str.5760, i64 3, i64 0 }, ptr %a282 + store { ptr, i64, i64 } { ptr @.str.5968, i64 3, i64 0 }, ptr %a282 call void @finch_str_concat(ptr %a280, ptr %a281, ptr %a282) store { ptr, i64, i64 } %t279, ptr %a283 call void @finch_str_drop(ptr %a283) @@ -90330,7 +94329,7 @@ then8615: call void @finch_str_copy(ptr %a292, ptr %a291) %t293 = load { ptr, i64, i64 }, ptr %a292 %t294 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t293, 0 - %t295 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5761, i64 4, i64 0 }) + %t295 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5969, i64 4, i64 0 }) %t296 = insertvalue %S.gen.Val %t294, %S.ast.Type %t295, 1 call void @finch_str_drop(ptr %a287) call void @finch_str_drop(ptr %a273) @@ -90340,29 +94339,29 @@ then8615: call void @finch_str_drop(ptr %a12) call void @finch_str_drop(ptr %a9) ret %S.gen.Val %t296 -endif8617: - store { ptr, i64, i64 } { ptr @.str.5762, i64 17, i64 0 }, ptr %a297 +endif9019: + store { ptr, i64, i64 } { ptr @.str.5970, i64 17, i64 0 }, ptr %a297 %t298 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t298, ptr %a299 - store { ptr, i64, i64 } { ptr @.str.5763, i64 9, i64 0 }, ptr %a300 + store { ptr, i64, i64 } { ptr @.str.5971, i64 9, i64 0 }, ptr %a300 %t301 = call i32 @finch_str_eq(ptr %a299, ptr %a300) %t302 = icmp ne i32 %t301, 0 - br i1 %t302, label %then8618, label %endif8620 -then8618: + br i1 %t302, label %then9020, label %endif9022 +then9020: %t303 = load { ptr, i64, i64 }, ptr %a297 - store { ptr, i64, i64 } { ptr @.str.5764, i64 15, i64 0 }, ptr %a297 + store { ptr, i64, i64 } { ptr @.str.5972, i64 15, i64 0 }, ptr %a297 store { ptr, i64, i64 } %t303, ptr %a304 call void @finch_str_drop(ptr %a304) - br label %endif8620 -endif8620: + br label %endif9022 +endif9022: %t305 = load ptr, ptr %a1 %t306 = load { ptr, i64, i64 }, ptr %a297 - store { ptr, i64, i64 } { ptr @.str.5765, i64 9, i64 0 }, ptr %a308 + store { ptr, i64, i64 } { ptr @.str.5973, i64 9, i64 0 }, ptr %a308 store { ptr, i64, i64 } %t306, ptr %a309 call void @finch_str_concat(ptr %a307, ptr %a308, ptr %a309) %t310 = load { ptr, i64, i64 }, ptr %a307 store { ptr, i64, i64 } %t310, ptr %a312 - store { ptr, i64, i64 } { ptr @.str.5766, i64 5, i64 0 }, ptr %a313 + store { ptr, i64, i64 } { ptr @.str.5974, i64 5, i64 0 }, ptr %a313 call void @finch_str_concat(ptr %a311, ptr %a312, ptr %a313) store { ptr, i64, i64 } %t310, ptr %a314 call void @finch_str_drop(ptr %a314) @@ -90375,7 +94374,7 @@ endif8620: call void @finch_str_drop(ptr %a320) %t321 = load { ptr, i64, i64 }, ptr %a317 store { ptr, i64, i64 } %t321, ptr %a323 - store { ptr, i64, i64 } { ptr @.str.5767, i64 6, i64 0 }, ptr %a324 + store { ptr, i64, i64 } { ptr @.str.5975, i64 6, i64 0 }, ptr %a324 call void @finch_str_concat(ptr %a322, ptr %a323, ptr %a324) store { ptr, i64, i64 } %t321, ptr %a325 call void @finch_str_drop(ptr %a325) @@ -90388,7 +94387,7 @@ endif8620: call void @finch_str_drop(ptr %a331) %t332 = load { ptr, i64, i64 }, ptr %a328 store { ptr, i64, i64 } %t332, ptr %a334 - store { ptr, i64, i64 } { ptr @.str.5768, i64 1, i64 0 }, ptr %a335 + store { ptr, i64, i64 } { ptr @.str.5976, i64 1, i64 0 }, ptr %a335 call void @finch_str_concat(ptr %a333, ptr %a334, ptr %a335) store { ptr, i64, i64 } %t332, ptr %a336 call void @finch_str_drop(ptr %a336) @@ -90399,12 +94398,12 @@ endif8620: store { ptr, i64, i64 } %t338, ptr %a340 %t341 = load ptr, ptr %a1 %t342 = load { ptr, i64, i64 }, ptr %a340 - store { ptr, i64, i64 } { ptr @.str.5769, i64 12, i64 0 }, ptr %a344 + store { ptr, i64, i64 } { ptr @.str.5977, i64 12, i64 0 }, ptr %a344 store { ptr, i64, i64 } %t342, ptr %a345 call void @finch_str_concat(ptr %a343, ptr %a344, ptr %a345) %t346 = load { ptr, i64, i64 }, ptr %a343 store { ptr, i64, i64 } %t346, ptr %a348 - store { ptr, i64, i64 } { ptr @.str.5770, i64 3, i64 0 }, ptr %a349 + store { ptr, i64, i64 } { ptr @.str.5978, i64 3, i64 0 }, ptr %a349 call void @finch_str_concat(ptr %a347, ptr %a348, ptr %a349) store { ptr, i64, i64 } %t346, ptr %a350 call void @finch_str_drop(ptr %a350) @@ -90421,7 +94420,7 @@ endif8620: call void @finch_str_copy(ptr %a359, ptr %a358) %t360 = load { ptr, i64, i64 }, ptr %a359 %t361 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t360, 0 - %t362 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5771, i64 4, i64 0 }) + %t362 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5979, i64 4, i64 0 }) %t363 = insertvalue %S.gen.Val %t361, %S.ast.Type %t362, 1 call void @finch_str_drop(ptr %a354) call void @finch_str_drop(ptr %a340) @@ -90432,53 +94431,53 @@ endif8620: call void @finch_str_drop(ptr %a12) call void @finch_str_drop(ptr %a9) ret %S.gen.Val %t363 -endif8609: +endif9011: %t364 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t364, ptr %a365 - store { ptr, i64, i64 } { ptr @.str.5772, i64 4, i64 0 }, ptr %a366 + store { ptr, i64, i64 } { ptr @.str.5980, i64 4, i64 0 }, ptr %a366 %t367 = call i32 @finch_str_eq(ptr %a365, ptr %a366) %t368 = icmp ne i32 %t367, 0 - br label %logic.from8621 -logic.from8621: - br i1 %t368, label %logic.end8623, label %logic.rhs8622 -logic.rhs8622: + br label %logic.from9023 +logic.from9023: + br i1 %t368, label %logic.end9025, label %logic.rhs9024 +logic.rhs9024: %t369 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t369, ptr %a370 - store { ptr, i64, i64 } { ptr @.str.5773, i64 5, i64 0 }, ptr %a371 + store { ptr, i64, i64 } { ptr @.str.5981, i64 5, i64 0 }, ptr %a371 %t372 = call i32 @finch_str_eq(ptr %a370, ptr %a371) %t373 = icmp ne i32 %t372, 0 - br label %logic.rend8624 -logic.rend8624: - br label %logic.end8623 -logic.end8623: - %t374 = phi i1 [ true, %logic.from8621 ], [ %t373, %logic.rend8624 ] - br label %logic.from8625 -logic.from8625: - br i1 %t374, label %logic.end8627, label %logic.rhs8626 -logic.rhs8626: + br label %logic.rend9026 +logic.rend9026: + br label %logic.end9025 +logic.end9025: + %t374 = phi i1 [ true, %logic.from9023 ], [ %t373, %logic.rend9026 ] + br label %logic.from9027 +logic.from9027: + br i1 %t374, label %logic.end9029, label %logic.rhs9028 +logic.rhs9028: %t375 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t375, ptr %a376 - store { ptr, i64, i64 } { ptr @.str.5774, i64 5, i64 0 }, ptr %a377 + store { ptr, i64, i64 } { ptr @.str.5982, i64 5, i64 0 }, ptr %a377 %t378 = call i32 @finch_str_eq(ptr %a376, ptr %a377) %t379 = icmp ne i32 %t378, 0 - br label %logic.rend8628 -logic.rend8628: - br label %logic.end8627 -logic.end8627: - %t380 = phi i1 [ true, %logic.from8625 ], [ %t379, %logic.rend8628 ] - br i1 %t380, label %then8629, label %endif8631 -then8629: + br label %logic.rend9030 +logic.rend9030: + br label %logic.end9029 +logic.end9029: + %t380 = phi i1 [ true, %logic.from9027 ], [ %t379, %logic.rend9030 ] + br i1 %t380, label %then9031, label %endif9033 +then9031: %t381 = load ptr, ptr %a1 %t382 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t381, %S.ast.Node %t382, i64 0) %t383 = load ptr, ptr %a1 %t384 = load { ptr, i64, i64 }, ptr %a9 - store { ptr, i64, i64 } { ptr @.str.5775, i64 21, i64 0 }, ptr %a386 + store { ptr, i64, i64 } { ptr @.str.5983, i64 21, i64 0 }, ptr %a386 store { ptr, i64, i64 } %t384, ptr %a387 call void @finch_str_concat(ptr %a385, ptr %a386, ptr %a387) %t388 = load { ptr, i64, i64 }, ptr %a385 store { ptr, i64, i64 } %t388, ptr %a390 - store { ptr, i64, i64 } { ptr @.str.5776, i64 5, i64 0 }, ptr %a391 + store { ptr, i64, i64 } { ptr @.str.5984, i64 5, i64 0 }, ptr %a391 call void @finch_str_concat(ptr %a389, ptr %a390, ptr %a391) store { ptr, i64, i64 } %t388, ptr %a392 call void @finch_str_drop(ptr %a392) @@ -90491,7 +94490,7 @@ then8629: call void @finch_str_drop(ptr %a398) %t399 = load { ptr, i64, i64 }, ptr %a395 store { ptr, i64, i64 } %t399, ptr %a401 - store { ptr, i64, i64 } { ptr @.str.5777, i64 6, i64 0 }, ptr %a402 + store { ptr, i64, i64 } { ptr @.str.5985, i64 6, i64 0 }, ptr %a402 call void @finch_str_concat(ptr %a400, ptr %a401, ptr %a402) store { ptr, i64, i64 } %t399, ptr %a403 call void @finch_str_drop(ptr %a403) @@ -90504,7 +94503,7 @@ then8629: call void @finch_str_drop(ptr %a409) %t410 = load { ptr, i64, i64 }, ptr %a406 store { ptr, i64, i64 } %t410, ptr %a412 - store { ptr, i64, i64 } { ptr @.str.5778, i64 1, i64 0 }, ptr %a413 + store { ptr, i64, i64 } { ptr @.str.5986, i64 1, i64 0 }, ptr %a413 call void @finch_str_concat(ptr %a411, ptr %a412, ptr %a413) store { ptr, i64, i64 } %t410, ptr %a414 call void @finch_str_drop(ptr %a414) @@ -90514,23 +94513,23 @@ then8629: call void @finch_str_drop(ptr %a416) %t417 = load ptr, ptr %a1 %t418 = load { ptr, i64, i64 }, ptr %a12 - %t419 = call { ptr, i64, i64 } @finch.gen.load(ptr %t417, { ptr, i64, i64 } { ptr @.str.5779, i64 17, i64 0 }, { ptr, i64, i64 } %t418) + %t419 = call { ptr, i64, i64 } @finch.gen.load(ptr %t417, { ptr, i64, i64 } { ptr @.str.5987, i64 17, i64 0 }, { ptr, i64, i64 } %t418) %t420 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t419, 0 - %t421 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5780, i64 3, i64 0 }) + %t421 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5988, i64 3, i64 0 }) %t422 = insertvalue %S.gen.Val %t420, %S.ast.Type %t421, 1 %t423 = insertvalue %S.gen.Val %t422, i1 true, 2 call void @finch_str_drop(ptr %a26) call void @finch_str_drop(ptr %a12) call void @finch_str_drop(ptr %a9) ret %S.gen.Val %t423 -endif8631: +endif9033: %t424 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t424, ptr %a425 - store { ptr, i64, i64 } { ptr @.str.5781, i64 7, i64 0 }, ptr %a426 + store { ptr, i64, i64 } { ptr @.str.5989, i64 7, i64 0 }, ptr %a426 %t427 = call i32 @finch_str_eq(ptr %a425, ptr %a426) %t428 = icmp ne i32 %t427, 0 - br i1 %t428, label %then8632, label %endif8634 -then8632: + br i1 %t428, label %then9034, label %endif9036 +then9034: %t429 = load ptr, ptr %a1 %t430 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t429, %S.ast.Node %t430, i64 2) @@ -90539,23 +94538,23 @@ then8632: %t433 = load { ptr, i64, i64 }, ptr %t432 %t434 = extractvalue { ptr, i64, i64 } %t433, 1 %t435 = icmp uge i64 1, %t434 - br i1 %t435, label %range8635, label %inrange8636 -range8635: - call void @finch_panic_index(ptr @.str.5782, i64 5420, i64 1, i64 %t434) + br i1 %t435, label %range9037, label %inrange9038 +range9037: + call void @finch_panic_index(ptr @.str.5990, i64 5655, i64 1, i64 %t434) unreachable -inrange8636: +inrange9038: %t436 = extractvalue { ptr, i64, i64 } %t433, 0 %t437 = getelementptr inbounds %S.ast.Node, ptr %t436, i64 1 %t438 = load %S.ast.Node, ptr %t437 - %t439 = call %S.gen.Val @finch.gen.strArg(ptr %t431, %S.ast.Node %t438, { ptr, i64, i64 } { ptr @.str.5783, i64 19, i64 0 }) + %t439 = call %S.gen.Val @finch.gen.strArg(ptr %t431, %S.ast.Node %t438, { ptr, i64, i64 } { ptr @.str.5991, i64 19, i64 0 }) store %S.gen.Val %t439, ptr %a440 %t441 = load ptr, ptr %a1 %t442 = icmp eq ptr %t441, null - br i1 %t442, label %panic8637, label %ok8638 -panic8637: - call void @finch_panic(ptr @.str.5784, i64 5421, ptr @.str.5785) + br i1 %t442, label %panic9039, label %ok9040 +panic9039: + call void @finch_panic(ptr @.str.5992, i64 5656, ptr @.str.5993) unreachable -ok8638: +ok9040: %t443 = getelementptr inbounds %S.gen.Gen, ptr %t441, i32 0, i32 11 %t444 = getelementptr inbounds { ptr, i64, i64 }, ptr %t443, i32 0, i32 1 %t445 = load i64, ptr %t444 @@ -90568,15 +94567,15 @@ ok8638: %t451 = load { ptr, i64, i64 }, ptr %t450 %t452 = extractvalue { ptr, i64, i64 } %t451, 1 %t453 = icmp uge i64 2, %t452 - br i1 %t453, label %range8639, label %inrange8640 -range8639: - call void @finch_panic_index(ptr @.str.5786, i64 5423, i64 2, i64 %t452) + br i1 %t453, label %range9041, label %inrange9042 +range9041: + call void @finch_panic_index(ptr @.str.5994, i64 5658, i64 2, i64 %t452) unreachable -inrange8640: +inrange9042: %t454 = extractvalue { ptr, i64, i64 } %t451, 0 %t455 = getelementptr inbounds %S.ast.Node, ptr %t454, i64 2 %t456 = load %S.ast.Node, ptr %t455 - %t457 = call %S.gen.Val @finch.gen.strArg(ptr %t449, %S.ast.Node %t456, { ptr, i64, i64 } { ptr @.str.5787, i64 12, i64 0 }) + %t457 = call %S.gen.Val @finch.gen.strArg(ptr %t449, %S.ast.Node %t456, { ptr, i64, i64 } { ptr @.str.5995, i64 12, i64 0 }) store %S.gen.Val %t457, ptr %a458 %t459 = load ptr, ptr %a1 %t460 = load i64, ptr %a446 @@ -90591,12 +94590,12 @@ inrange8640: store { ptr, i64, i64 } %t467, ptr %a468 %t469 = load ptr, ptr %a1 %t470 = load { ptr, i64, i64 }, ptr %a12 - store { ptr, i64, i64 } { ptr @.str.5788, i64 33, i64 0 }, ptr %a472 + store { ptr, i64, i64 } { ptr @.str.5996, i64 33, i64 0 }, ptr %a472 store { ptr, i64, i64 } %t470, ptr %a473 call void @finch_str_concat(ptr %a471, ptr %a472, ptr %a473) %t474 = load { ptr, i64, i64 }, ptr %a471 store { ptr, i64, i64 } %t474, ptr %a476 - store { ptr, i64, i64 } { ptr @.str.5789, i64 6, i64 0 }, ptr %a477 + store { ptr, i64, i64 } { ptr @.str.5997, i64 6, i64 0 }, ptr %a477 call void @finch_str_concat(ptr %a475, ptr %a476, ptr %a477) store { ptr, i64, i64 } %t474, ptr %a478 call void @finch_str_drop(ptr %a478) @@ -90609,7 +94608,7 @@ inrange8640: call void @finch_str_drop(ptr %a484) %t485 = load { ptr, i64, i64 }, ptr %a481 store { ptr, i64, i64 } %t485, ptr %a487 - store { ptr, i64, i64 } { ptr @.str.5790, i64 6, i64 0 }, ptr %a488 + store { ptr, i64, i64 } { ptr @.str.5998, i64 6, i64 0 }, ptr %a488 call void @finch_str_concat(ptr %a486, ptr %a487, ptr %a488) store { ptr, i64, i64 } %t485, ptr %a489 call void @finch_str_drop(ptr %a489) @@ -90622,7 +94621,7 @@ inrange8640: call void @finch_str_drop(ptr %a495) %t496 = load { ptr, i64, i64 }, ptr %a492 store { ptr, i64, i64 } %t496, ptr %a498 - store { ptr, i64, i64 } { ptr @.str.5791, i64 6, i64 0 }, ptr %a499 + store { ptr, i64, i64 } { ptr @.str.5999, i64 6, i64 0 }, ptr %a499 call void @finch_str_concat(ptr %a497, ptr %a498, ptr %a499) store { ptr, i64, i64 } %t496, ptr %a500 call void @finch_str_drop(ptr %a500) @@ -90635,7 +94634,7 @@ inrange8640: call void @finch_str_drop(ptr %a506) %t507 = load { ptr, i64, i64 }, ptr %a503 store { ptr, i64, i64 } %t507, ptr %a509 - store { ptr, i64, i64 } { ptr @.str.5792, i64 1, i64 0 }, ptr %a510 + store { ptr, i64, i64 } { ptr @.str.6000, i64 1, i64 0 }, ptr %a510 call void @finch_str_concat(ptr %a508, ptr %a509, ptr %a510) store { ptr, i64, i64 } %t507, ptr %a511 call void @finch_str_drop(ptr %a511) @@ -90651,9 +94650,9 @@ inrange8640: call void @finch.gen.release(ptr %t516, %S.gen.Val %t517) %t518 = load ptr, ptr %a1 %t519 = load { ptr, i64, i64 }, ptr %a12 - %t520 = call { ptr, i64, i64 } @finch.gen.load(ptr %t518, { ptr, i64, i64 } { ptr @.str.5793, i64 17, i64 0 }, { ptr, i64, i64 } %t519) + %t520 = call { ptr, i64, i64 } @finch.gen.load(ptr %t518, { ptr, i64, i64 } { ptr @.str.6001, i64 17, i64 0 }, { ptr, i64, i64 } %t519) %t521 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t520, 0 - %t522 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5794, i64 3, i64 0 }) + %t522 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.6002, i64 3, i64 0 }) %t523 = insertvalue %S.gen.Val %t521, %S.ast.Type %t522, 1 %t524 = insertvalue %S.gen.Val %t523, i1 true, 2 call void @finch_str_drop(ptr %a468) @@ -90664,14 +94663,14 @@ inrange8640: call void @finch_str_drop(ptr %a12) call void @finch_str_drop(ptr %a9) ret %S.gen.Val %t524 -endif8634: +endif9036: %t525 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t525, ptr %a526 - store { ptr, i64, i64 } { ptr @.str.5795, i64 5, i64 0 }, ptr %a527 + store { ptr, i64, i64 } { ptr @.str.6003, i64 5, i64 0 }, ptr %a527 %t528 = call i32 @finch_str_eq(ptr %a526, ptr %a527) %t529 = icmp ne i32 %t528, 0 - br i1 %t529, label %then8641, label %endif8643 -then8641: + br i1 %t529, label %then9043, label %endif9045 +then9043: %t530 = load ptr, ptr %a1 %t531 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t530, %S.ast.Node %t531, i64 1) @@ -90680,15 +94679,15 @@ then8641: %t534 = load { ptr, i64, i64 }, ptr %t533 %t535 = extractvalue { ptr, i64, i64 } %t534, 1 %t536 = icmp uge i64 1, %t535 - br i1 %t536, label %range8644, label %inrange8645 -range8644: - call void @finch_panic_index(ptr @.str.5796, i64 5434, i64 1, i64 %t535) + br i1 %t536, label %range9046, label %inrange9047 +range9046: + call void @finch_panic_index(ptr @.str.6004, i64 5669, i64 1, i64 %t535) unreachable -inrange8645: +inrange9047: %t537 = extractvalue { ptr, i64, i64 } %t534, 0 %t538 = getelementptr inbounds %S.ast.Node, ptr %t537, i64 1 %t539 = load %S.ast.Node, ptr %t538 - %t540 = call %S.gen.Val @finch.gen.strArg(ptr %t532, %S.ast.Node %t539, { ptr, i64, i64 } { ptr @.str.5797, i64 13, i64 0 }) + %t540 = call %S.gen.Val @finch.gen.strArg(ptr %t532, %S.ast.Node %t539, { ptr, i64, i64 } { ptr @.str.6005, i64 13, i64 0 }) store %S.gen.Val %t540, ptr %a541 %t542 = load ptr, ptr %a1 %t543 = load %S.gen.Val, ptr %a541 @@ -90699,12 +94698,12 @@ inrange8645: store { ptr, i64, i64 } %t547, ptr %a548 %t549 = load ptr, ptr %a1 %t550 = load { ptr, i64, i64 }, ptr %a548 - store { ptr, i64, i64 } { ptr @.str.5798, i64 31, i64 0 }, ptr %a552 + store { ptr, i64, i64 } { ptr @.str.6006, i64 31, i64 0 }, ptr %a552 store { ptr, i64, i64 } %t550, ptr %a553 call void @finch_str_concat(ptr %a551, ptr %a552, ptr %a553) %t554 = load { ptr, i64, i64 }, ptr %a551 store { ptr, i64, i64 } %t554, ptr %a556 - store { ptr, i64, i64 } { ptr @.str.5799, i64 6, i64 0 }, ptr %a557 + store { ptr, i64, i64 } { ptr @.str.6007, i64 6, i64 0 }, ptr %a557 call void @finch_str_concat(ptr %a555, ptr %a556, ptr %a557) store { ptr, i64, i64 } %t554, ptr %a558 call void @finch_str_drop(ptr %a558) @@ -90717,7 +94716,7 @@ inrange8645: call void @finch_str_drop(ptr %a564) %t565 = load { ptr, i64, i64 }, ptr %a561 store { ptr, i64, i64 } %t565, ptr %a567 - store { ptr, i64, i64 } { ptr @.str.5800, i64 6, i64 0 }, ptr %a568 + store { ptr, i64, i64 } { ptr @.str.6008, i64 6, i64 0 }, ptr %a568 call void @finch_str_concat(ptr %a566, ptr %a567, ptr %a568) store { ptr, i64, i64 } %t565, ptr %a569 call void @finch_str_drop(ptr %a569) @@ -90730,7 +94729,7 @@ inrange8645: call void @finch_str_drop(ptr %a575) %t576 = load { ptr, i64, i64 }, ptr %a572 store { ptr, i64, i64 } %t576, ptr %a578 - store { ptr, i64, i64 } { ptr @.str.5801, i64 1, i64 0 }, ptr %a579 + store { ptr, i64, i64 } { ptr @.str.6009, i64 1, i64 0 }, ptr %a579 call void @finch_str_concat(ptr %a577, ptr %a578, ptr %a579) store { ptr, i64, i64 } %t576, ptr %a580 call void @finch_str_drop(ptr %a580) @@ -90743,9 +94742,9 @@ inrange8645: call void @finch.gen.release(ptr %t583, %S.gen.Val %t584) %t585 = load ptr, ptr %a1 %t586 = load { ptr, i64, i64 }, ptr %a548 - %t587 = call { ptr, i64, i64 } @finch.gen.load(ptr %t585, { ptr, i64, i64 } { ptr @.str.5802, i64 17, i64 0 }, { ptr, i64, i64 } %t586) + %t587 = call { ptr, i64, i64 } @finch.gen.load(ptr %t585, { ptr, i64, i64 } { ptr @.str.6010, i64 17, i64 0 }, { ptr, i64, i64 } %t586) %t588 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t587, 0 - %t589 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5803, i64 3, i64 0 }) + %t589 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.6011, i64 3, i64 0 }) %t590 = call %S.ast.Type @finch.ast.arrayOf(%S.ast.Type %t589) store %S.ast.Type %t589, ptr %a591 call void @finch.drop.S_ast_Type(ptr %a591) @@ -90758,14 +94757,14 @@ inrange8645: call void @finch_str_drop(ptr %a12) call void @finch_str_drop(ptr %a9) ret %S.gen.Val %t593 -endif8643: +endif9045: %t594 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t594, ptr %a595 - store { ptr, i64, i64 } { ptr @.str.5804, i64 6, i64 0 }, ptr %a596 + store { ptr, i64, i64 } { ptr @.str.6012, i64 6, i64 0 }, ptr %a596 %t597 = call i32 @finch_str_eq(ptr %a595, ptr %a596) %t598 = icmp ne i32 %t597, 0 - br i1 %t598, label %then8646, label %endif8648 -then8646: + br i1 %t598, label %then9048, label %endif9050 +then9048: %t599 = load ptr, ptr %a1 %t600 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t599, %S.ast.Node %t600, i64 1) @@ -90775,29 +94774,29 @@ then8646: %t604 = load { ptr, i64, i64 }, ptr %t603 %t605 = extractvalue { ptr, i64, i64 } %t604, 1 %t606 = icmp uge i64 1, %t605 - br i1 %t606, label %range8649, label %inrange8650 -range8649: - call void @finch_panic_index(ptr @.str.5805, i64 5443, i64 1, i64 %t605) + br i1 %t606, label %range9051, label %inrange9052 +range9051: + call void @finch_panic_index(ptr @.str.6013, i64 5678, i64 1, i64 %t605) unreachable -inrange8650: +inrange9052: %t607 = extractvalue { ptr, i64, i64 } %t604, 0 %t608 = getelementptr inbounds %S.ast.Node, ptr %t607, i64 1 %t609 = load %S.ast.Node, ptr %t608 %t610 = call %S.gen.Val @finch.gen.expr(ptr %t602, %S.ast.Node %t609) - %t611 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5806, i64 3, i64 0 }) + %t611 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.6014, i64 3, i64 0 }) %t612 = getelementptr inbounds %S.ast.Node, ptr %a2, i32 0, i32 9 %t613 = load { ptr, i64, i64 }, ptr %t612 %t614 = extractvalue { ptr, i64, i64 } %t613, 1 %t615 = icmp uge i64 1, %t614 - br i1 %t615, label %range8651, label %inrange8652 -range8651: - call void @finch_panic_index(ptr @.str.5807, i64 5443, i64 1, i64 %t614) + br i1 %t615, label %range9053, label %inrange9054 +range9053: + call void @finch_panic_index(ptr @.str.6015, i64 5678, i64 1, i64 %t614) unreachable -inrange8652: +inrange9054: %t616 = extractvalue { ptr, i64, i64 } %t613, 0 %t617 = getelementptr inbounds %S.ast.Node, ptr %t616, i64 1 %t618 = load %S.ast.Node, ptr %t617 - %t619 = call %S.gen.Val @finch.gen.coerce(ptr %t601, %S.gen.Val %t610, %S.ast.Type %t611, %S.ast.Node %t618, { ptr, i64, i64 } { ptr @.str.5808, i64 9, i64 0 }) + %t619 = call %S.gen.Val @finch.gen.coerce(ptr %t601, %S.gen.Val %t610, %S.ast.Type %t611, %S.ast.Node %t618, { ptr, i64, i64 } { ptr @.str.6016, i64 9, i64 0 }) store %S.gen.Val %t610, ptr %a620 call void @finch.drop.S_gen_Val(ptr %a620) store %S.ast.Type %t611, ptr %a621 @@ -90811,12 +94810,12 @@ inrange8652: store { ptr, i64, i64 } %t625, ptr %a627 %t628 = load ptr, ptr %a1 %t629 = load { ptr, i64, i64 }, ptr %a12 - store { ptr, i64, i64 } { ptr @.str.5809, i64 32, i64 0 }, ptr %a631 + store { ptr, i64, i64 } { ptr @.str.6017, i64 32, i64 0 }, ptr %a631 store { ptr, i64, i64 } %t629, ptr %a632 call void @finch_str_concat(ptr %a630, ptr %a631, ptr %a632) %t633 = load { ptr, i64, i64 }, ptr %a630 store { ptr, i64, i64 } %t633, ptr %a635 - store { ptr, i64, i64 } { ptr @.str.5810, i64 6, i64 0 }, ptr %a636 + store { ptr, i64, i64 } { ptr @.str.6018, i64 6, i64 0 }, ptr %a636 call void @finch_str_concat(ptr %a634, ptr %a635, ptr %a636) store { ptr, i64, i64 } %t633, ptr %a637 call void @finch_str_drop(ptr %a637) @@ -90829,7 +94828,7 @@ inrange8652: call void @finch_str_drop(ptr %a643) %t644 = load { ptr, i64, i64 }, ptr %a640 store { ptr, i64, i64 } %t644, ptr %a646 - store { ptr, i64, i64 } { ptr @.str.5811, i64 6, i64 0 }, ptr %a647 + store { ptr, i64, i64 } { ptr @.str.6019, i64 6, i64 0 }, ptr %a647 call void @finch_str_concat(ptr %a645, ptr %a646, ptr %a647) store { ptr, i64, i64 } %t644, ptr %a648 call void @finch_str_drop(ptr %a648) @@ -90842,7 +94841,7 @@ inrange8652: call void @finch_str_drop(ptr %a654) %t655 = load { ptr, i64, i64 }, ptr %a651 store { ptr, i64, i64 } %t655, ptr %a657 - store { ptr, i64, i64 } { ptr @.str.5812, i64 1, i64 0 }, ptr %a658 + store { ptr, i64, i64 } { ptr @.str.6020, i64 1, i64 0 }, ptr %a658 call void @finch_str_concat(ptr %a656, ptr %a657, ptr %a658) store { ptr, i64, i64 } %t655, ptr %a659 call void @finch_str_drop(ptr %a659) @@ -90852,9 +94851,9 @@ inrange8652: call void @finch_str_drop(ptr %a661) %t662 = load ptr, ptr %a1 %t663 = load { ptr, i64, i64 }, ptr %a12 - %t664 = call { ptr, i64, i64 } @finch.gen.load(ptr %t662, { ptr, i64, i64 } { ptr @.str.5813, i64 17, i64 0 }, { ptr, i64, i64 } %t663) + %t664 = call { ptr, i64, i64 } @finch.gen.load(ptr %t662, { ptr, i64, i64 } { ptr @.str.6021, i64 17, i64 0 }, { ptr, i64, i64 } %t663) %t665 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t664, 0 - %t666 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5814, i64 3, i64 0 }) + %t666 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.6022, i64 3, i64 0 }) %t667 = insertvalue %S.gen.Val %t665, %S.ast.Type %t666, 1 %t668 = insertvalue %S.gen.Val %t667, i1 true, 2 call void @finch_str_drop(ptr %a627) @@ -90862,14 +94861,14 @@ inrange8652: call void @finch_str_drop(ptr %a12) call void @finch_str_drop(ptr %a9) ret %S.gen.Val %t668 -endif8648: +endif9050: %t669 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t669, ptr %a670 - store { ptr, i64, i64 } { ptr @.str.5815, i64 5, i64 0 }, ptr %a671 + store { ptr, i64, i64 } { ptr @.str.6023, i64 5, i64 0 }, ptr %a671 %t672 = call i32 @finch_str_eq(ptr %a670, ptr %a671) %t673 = icmp ne i32 %t672, 0 - br i1 %t673, label %then8653, label %endif8655 -then8653: + br i1 %t673, label %then9055, label %endif9057 +then9055: %t674 = load ptr, ptr %a1 %t675 = load %S.ast.Node, ptr %a2 call void @finch.gen.need(ptr %t674, %S.ast.Node %t675, i64 0) @@ -90878,12 +94877,12 @@ then8653: store { ptr, i64, i64 } %t677, ptr %a678 %t679 = load ptr, ptr %a1 %t680 = load { ptr, i64, i64 }, ptr %a678 - store { ptr, i64, i64 } { ptr @.str.5816, i64 36, i64 0 }, ptr %a682 + store { ptr, i64, i64 } { ptr @.str.6024, i64 36, i64 0 }, ptr %a682 store { ptr, i64, i64 } %t680, ptr %a683 call void @finch_str_concat(ptr %a681, ptr %a682, ptr %a683) %t684 = load { ptr, i64, i64 }, ptr %a681 store { ptr, i64, i64 } %t684, ptr %a686 - store { ptr, i64, i64 } { ptr @.str.5817, i64 6, i64 0 }, ptr %a687 + store { ptr, i64, i64 } { ptr @.str.6025, i64 6, i64 0 }, ptr %a687 call void @finch_str_concat(ptr %a685, ptr %a686, ptr %a687) store { ptr, i64, i64 } %t684, ptr %a688 call void @finch_str_drop(ptr %a688) @@ -90896,7 +94895,7 @@ then8653: call void @finch_str_drop(ptr %a694) %t695 = load { ptr, i64, i64 }, ptr %a691 store { ptr, i64, i64 } %t695, ptr %a697 - store { ptr, i64, i64 } { ptr @.str.5818, i64 1, i64 0 }, ptr %a698 + store { ptr, i64, i64 } { ptr @.str.6026, i64 1, i64 0 }, ptr %a698 call void @finch_str_concat(ptr %a696, ptr %a697, ptr %a698) store { ptr, i64, i64 } %t695, ptr %a699 call void @finch_str_drop(ptr %a699) @@ -90906,9 +94905,9 @@ then8653: call void @finch_str_drop(ptr %a701) %t702 = load ptr, ptr %a1 %t703 = load { ptr, i64, i64 }, ptr %a678 - %t704 = call { ptr, i64, i64 } @finch.gen.load(ptr %t702, { ptr, i64, i64 } { ptr @.str.5819, i64 17, i64 0 }, { ptr, i64, i64 } %t703) + %t704 = call { ptr, i64, i64 } @finch.gen.load(ptr %t702, { ptr, i64, i64 } { ptr @.str.6027, i64 17, i64 0 }, { ptr, i64, i64 } %t703) %t705 = insertvalue %S.gen.Val zeroinitializer, { ptr, i64, i64 } %t704, 0 - %t706 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.5820, i64 2, i64 0 }) + %t706 = call %S.ast.Type @finch.gen.T({ ptr, i64, i64 } { ptr @.str.6028, i64 2, i64 0 }) %t707 = call %S.ast.Type @finch.ast.arrayOf(%S.ast.Type %t706) store %S.ast.Type %t706, ptr %a708 call void @finch.drop.S_ast_Type(ptr %a708) @@ -90919,16 +94918,16 @@ then8653: call void @finch_str_drop(ptr %a12) call void @finch_str_drop(ptr %a9) ret %S.gen.Val %t710 -endif8655: +endif9057: %t711 = load ptr, ptr %a1 %t712 = load %S.ast.Node, ptr %a2 %t713 = load { ptr, i64, i64 }, ptr %a9 - store { ptr, i64, i64 } { ptr @.str.5821, i64 21, i64 0 }, ptr %a715 + store { ptr, i64, i64 } { ptr @.str.6029, i64 21, i64 0 }, ptr %a715 store { ptr, i64, i64 } %t713, ptr %a716 call void @finch_str_concat(ptr %a714, ptr %a715, ptr %a716) %t717 = load { ptr, i64, i64 }, ptr %a714 store { ptr, i64, i64 } %t717, ptr %a719 - store { ptr, i64, i64 } { ptr @.str.5822, i64 106, i64 0 }, ptr %a720 + store { ptr, i64, i64 } { ptr @.str.6030, i64 106, i64 0 }, ptr %a720 call void @finch_str_concat(ptr %a718, ptr %a719, ptr %a720) store { ptr, i64, i64 } %t717, ptr %a721 call void @finch_str_drop(ptr %a721) @@ -90954,163 +94953,163 @@ entry: %t1 = mul i64 74, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t2 = call ptr @finch_alloc(i64 %t1) %t3 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 0 - store { ptr, i64, i64 } { ptr @.str.5823, i64 54, i64 0 }, ptr %t3 + store { ptr, i64, i64 } { ptr @.str.6031, i64 54, i64 0 }, ptr %t3 %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 1 - store { ptr, i64, i64 } { ptr @.str.5824, i64 65, i64 0 }, ptr %t4 + store { ptr, i64, i64 } { ptr @.str.6032, i64 65, i64 0 }, ptr %t4 %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 2 - store { ptr, i64, i64 } { ptr @.str.5825, i64 29, i64 0 }, ptr %t5 + store { ptr, i64, i64 } { ptr @.str.6033, i64 29, i64 0 }, ptr %t5 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 3 - store { ptr, i64, i64 } { ptr @.str.5826, i64 38, i64 0 }, ptr %t6 + store { ptr, i64, i64 } { ptr @.str.6034, i64 38, i64 0 }, ptr %t6 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 4 - store { ptr, i64, i64 } { ptr @.str.5827, i64 33, i64 0 }, ptr %t7 + store { ptr, i64, i64 } { ptr @.str.6035, i64 33, i64 0 }, ptr %t7 %t8 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 5 - store { ptr, i64, i64 } { ptr @.str.5828, i64 33, i64 0 }, ptr %t8 + store { ptr, i64, i64 } { ptr @.str.6036, i64 33, i64 0 }, ptr %t8 %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 6 - store { ptr, i64, i64 } { ptr @.str.5829, i64 33, i64 0 }, ptr %t9 + store { ptr, i64, i64 } { ptr @.str.6037, i64 33, i64 0 }, ptr %t9 %t10 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 7 - store { ptr, i64, i64 } { ptr @.str.5830, i64 32, i64 0 }, ptr %t10 + store { ptr, i64, i64 } { ptr @.str.6038, i64 32, i64 0 }, ptr %t10 %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 8 - store { ptr, i64, i64 } { ptr @.str.5831, i64 45, i64 0 }, ptr %t11 + store { ptr, i64, i64 } { ptr @.str.6039, i64 45, i64 0 }, ptr %t11 %t12 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 9 - store { ptr, i64, i64 } { ptr @.str.5832, i64 35, i64 0 }, ptr %t12 + store { ptr, i64, i64 } { ptr @.str.6040, i64 35, i64 0 }, ptr %t12 %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 10 - store { ptr, i64, i64 } { ptr @.str.5833, i64 36, i64 0 }, ptr %t13 + store { ptr, i64, i64 } { ptr @.str.6041, i64 36, i64 0 }, ptr %t13 %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 11 - store { ptr, i64, i64 } { ptr @.str.5834, i64 42, i64 0 }, ptr %t14 + store { ptr, i64, i64 } { ptr @.str.6042, i64 42, i64 0 }, ptr %t14 %t15 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 12 - store { ptr, i64, i64 } { ptr @.str.5835, i64 37, i64 0 }, ptr %t15 + store { ptr, i64, i64 } { ptr @.str.6043, i64 37, i64 0 }, ptr %t15 %t16 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 13 - store { ptr, i64, i64 } { ptr @.str.5836, i64 38, i64 0 }, ptr %t16 + store { ptr, i64, i64 } { ptr @.str.6044, i64 38, i64 0 }, ptr %t16 %t17 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 14 - store { ptr, i64, i64 } { ptr @.str.5837, i64 42, i64 0 }, ptr %t17 + store { ptr, i64, i64 } { ptr @.str.6045, i64 42, i64 0 }, ptr %t17 %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 15 - store { ptr, i64, i64 } { ptr @.str.5838, i64 38, i64 0 }, ptr %t18 + store { ptr, i64, i64 } { ptr @.str.6046, i64 38, i64 0 }, ptr %t18 %t19 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 16 - store { ptr, i64, i64 } { ptr @.str.5839, i64 37, i64 0 }, ptr %t19 + store { ptr, i64, i64 } { ptr @.str.6047, i64 37, i64 0 }, ptr %t19 %t20 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 17 - store { ptr, i64, i64 } { ptr @.str.5840, i64 42, i64 0 }, ptr %t20 + store { ptr, i64, i64 } { ptr @.str.6048, i64 42, i64 0 }, ptr %t20 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 18 - store { ptr, i64, i64 } { ptr @.str.5841, i64 42, i64 0 }, ptr %t21 + store { ptr, i64, i64 } { ptr @.str.6049, i64 42, i64 0 }, ptr %t21 %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 19 - store { ptr, i64, i64 } { ptr @.str.5842, i64 34, i64 0 }, ptr %t22 + store { ptr, i64, i64 } { ptr @.str.6050, i64 34, i64 0 }, ptr %t22 %t23 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 20 - store { ptr, i64, i64 } { ptr @.str.5843, i64 42, i64 0 }, ptr %t23 + store { ptr, i64, i64 } { ptr @.str.6051, i64 42, i64 0 }, ptr %t23 %t24 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 21 - store { ptr, i64, i64 } { ptr @.str.5844, i64 43, i64 0 }, ptr %t24 + store { ptr, i64, i64 } { ptr @.str.6052, i64 43, i64 0 }, ptr %t24 %t25 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 22 - store { ptr, i64, i64 } { ptr @.str.5845, i64 47, i64 0 }, ptr %t25 + store { ptr, i64, i64 } { ptr @.str.6053, i64 47, i64 0 }, ptr %t25 %t26 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 23 - store { ptr, i64, i64 } { ptr @.str.5846, i64 50, i64 0 }, ptr %t26 + store { ptr, i64, i64 } { ptr @.str.6054, i64 50, i64 0 }, ptr %t26 %t27 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 24 - store { ptr, i64, i64 } { ptr @.str.5847, i64 43, i64 0 }, ptr %t27 + store { ptr, i64, i64 } { ptr @.str.6055, i64 43, i64 0 }, ptr %t27 %t28 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 25 - store { ptr, i64, i64 } { ptr @.str.5848, i64 44, i64 0 }, ptr %t28 + store { ptr, i64, i64 } { ptr @.str.6056, i64 44, i64 0 }, ptr %t28 %t29 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 26 - store { ptr, i64, i64 } { ptr @.str.5849, i64 49, i64 0 }, ptr %t29 + store { ptr, i64, i64 } { ptr @.str.6057, i64 49, i64 0 }, ptr %t29 %t30 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 27 - store { ptr, i64, i64 } { ptr @.str.5850, i64 57, i64 0 }, ptr %t30 + store { ptr, i64, i64 } { ptr @.str.6058, i64 57, i64 0 }, ptr %t30 %t31 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 28 - store { ptr, i64, i64 } { ptr @.str.5851, i64 37, i64 0 }, ptr %t31 + store { ptr, i64, i64 } { ptr @.str.6059, i64 37, i64 0 }, ptr %t31 %t32 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 29 - store { ptr, i64, i64 } { ptr @.str.5852, i64 39, i64 0 }, ptr %t32 + store { ptr, i64, i64 } { ptr @.str.6060, i64 39, i64 0 }, ptr %t32 %t33 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 30 - store { ptr, i64, i64 } { ptr @.str.5853, i64 37, i64 0 }, ptr %t33 + store { ptr, i64, i64 } { ptr @.str.6061, i64 37, i64 0 }, ptr %t33 %t34 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 31 - store { ptr, i64, i64 } { ptr @.str.5854, i64 38, i64 0 }, ptr %t34 + store { ptr, i64, i64 } { ptr @.str.6062, i64 38, i64 0 }, ptr %t34 %t35 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 32 - store { ptr, i64, i64 } { ptr @.str.5855, i64 39, i64 0 }, ptr %t35 + store { ptr, i64, i64 } { ptr @.str.6063, i64 39, i64 0 }, ptr %t35 %t36 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 33 - store { ptr, i64, i64 } { ptr @.str.5856, i64 39, i64 0 }, ptr %t36 + store { ptr, i64, i64 } { ptr @.str.6064, i64 39, i64 0 }, ptr %t36 %t37 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 34 - store { ptr, i64, i64 } { ptr @.str.5857, i64 51, i64 0 }, ptr %t37 + store { ptr, i64, i64 } { ptr @.str.6065, i64 51, i64 0 }, ptr %t37 %t38 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 35 - store { ptr, i64, i64 } { ptr @.str.5858, i64 44, i64 0 }, ptr %t38 + store { ptr, i64, i64 } { ptr @.str.6066, i64 44, i64 0 }, ptr %t38 %t39 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 36 - store { ptr, i64, i64 } { ptr @.str.5859, i64 43, i64 0 }, ptr %t39 + store { ptr, i64, i64 } { ptr @.str.6067, i64 43, i64 0 }, ptr %t39 %t40 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 37 - store { ptr, i64, i64 } { ptr @.str.5860, i64 45, i64 0 }, ptr %t40 + store { ptr, i64, i64 } { ptr @.str.6068, i64 45, i64 0 }, ptr %t40 %t41 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 38 - store { ptr, i64, i64 } { ptr @.str.5861, i64 44, i64 0 }, ptr %t41 + store { ptr, i64, i64 } { ptr @.str.6069, i64 44, i64 0 }, ptr %t41 %t42 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 39 - store { ptr, i64, i64 } { ptr @.str.5862, i64 52, i64 0 }, ptr %t42 + store { ptr, i64, i64 } { ptr @.str.6070, i64 52, i64 0 }, ptr %t42 %t43 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 40 - store { ptr, i64, i64 } { ptr @.str.5863, i64 57, i64 0 }, ptr %t43 + store { ptr, i64, i64 } { ptr @.str.6071, i64 57, i64 0 }, ptr %t43 %t44 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 41 - store { ptr, i64, i64 } { ptr @.str.5864, i64 48, i64 0 }, ptr %t44 + store { ptr, i64, i64 } { ptr @.str.6072, i64 48, i64 0 }, ptr %t44 %t45 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 42 - store { ptr, i64, i64 } { ptr @.str.5865, i64 34, i64 0 }, ptr %t45 + store { ptr, i64, i64 } { ptr @.str.6073, i64 34, i64 0 }, ptr %t45 %t46 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 43 - store { ptr, i64, i64 } { ptr @.str.5866, i64 48, i64 0 }, ptr %t46 + store { ptr, i64, i64 } { ptr @.str.6074, i64 48, i64 0 }, ptr %t46 %t47 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 44 - store { ptr, i64, i64 } { ptr @.str.5867, i64 60, i64 0 }, ptr %t47 + store { ptr, i64, i64 } { ptr @.str.6075, i64 60, i64 0 }, ptr %t47 %t48 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 45 - store { ptr, i64, i64 } { ptr @.str.5868, i64 55, i64 0 }, ptr %t48 + store { ptr, i64, i64 } { ptr @.str.6076, i64 55, i64 0 }, ptr %t48 %t49 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 46 - store { ptr, i64, i64 } { ptr @.str.5869, i64 46, i64 0 }, ptr %t49 + store { ptr, i64, i64 } { ptr @.str.6077, i64 46, i64 0 }, ptr %t49 %t50 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 47 - store { ptr, i64, i64 } { ptr @.str.5870, i64 48, i64 0 }, ptr %t50 + store { ptr, i64, i64 } { ptr @.str.6078, i64 48, i64 0 }, ptr %t50 %t51 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 48 - store { ptr, i64, i64 } { ptr @.str.5871, i64 43, i64 0 }, ptr %t51 + store { ptr, i64, i64 } { ptr @.str.6079, i64 43, i64 0 }, ptr %t51 %t52 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 49 - store { ptr, i64, i64 } { ptr @.str.5872, i64 45, i64 0 }, ptr %t52 + store { ptr, i64, i64 } { ptr @.str.6080, i64 45, i64 0 }, ptr %t52 %t53 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 50 - store { ptr, i64, i64 } { ptr @.str.5873, i64 59, i64 0 }, ptr %t53 + store { ptr, i64, i64 } { ptr @.str.6081, i64 59, i64 0 }, ptr %t53 %t54 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 51 - store { ptr, i64, i64 } { ptr @.str.5874, i64 49, i64 0 }, ptr %t54 + store { ptr, i64, i64 } { ptr @.str.6082, i64 49, i64 0 }, ptr %t54 %t55 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 52 - store { ptr, i64, i64 } { ptr @.str.5875, i64 39, i64 0 }, ptr %t55 + store { ptr, i64, i64 } { ptr @.str.6083, i64 39, i64 0 }, ptr %t55 %t56 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 53 - store { ptr, i64, i64 } { ptr @.str.5876, i64 39, i64 0 }, ptr %t56 + store { ptr, i64, i64 } { ptr @.str.6084, i64 39, i64 0 }, ptr %t56 %t57 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 54 - store { ptr, i64, i64 } { ptr @.str.5877, i64 35, i64 0 }, ptr %t57 + store { ptr, i64, i64 } { ptr @.str.6085, i64 35, i64 0 }, ptr %t57 %t58 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 55 - store { ptr, i64, i64 } { ptr @.str.5878, i64 35, i64 0 }, ptr %t58 + store { ptr, i64, i64 } { ptr @.str.6086, i64 35, i64 0 }, ptr %t58 %t59 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 56 - store { ptr, i64, i64 } { ptr @.str.5879, i64 45, i64 0 }, ptr %t59 + store { ptr, i64, i64 } { ptr @.str.6087, i64 45, i64 0 }, ptr %t59 %t60 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 57 - store { ptr, i64, i64 } { ptr @.str.5880, i64 47, i64 0 }, ptr %t60 + store { ptr, i64, i64 } { ptr @.str.6088, i64 47, i64 0 }, ptr %t60 %t61 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 58 - store { ptr, i64, i64 } { ptr @.str.5881, i64 47, i64 0 }, ptr %t61 + store { ptr, i64, i64 } { ptr @.str.6089, i64 47, i64 0 }, ptr %t61 %t62 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 59 - store { ptr, i64, i64 } { ptr @.str.5882, i64 48, i64 0 }, ptr %t62 + store { ptr, i64, i64 } { ptr @.str.6090, i64 48, i64 0 }, ptr %t62 %t63 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 60 - store { ptr, i64, i64 } { ptr @.str.5883, i64 44, i64 0 }, ptr %t63 + store { ptr, i64, i64 } { ptr @.str.6091, i64 44, i64 0 }, ptr %t63 %t64 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 61 - store { ptr, i64, i64 } { ptr @.str.5884, i64 37, i64 0 }, ptr %t64 + store { ptr, i64, i64 } { ptr @.str.6092, i64 37, i64 0 }, ptr %t64 %t65 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 62 - store { ptr, i64, i64 } { ptr @.str.5885, i64 49, i64 0 }, ptr %t65 + store { ptr, i64, i64 } { ptr @.str.6093, i64 49, i64 0 }, ptr %t65 %t66 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 63 - store { ptr, i64, i64 } { ptr @.str.5886, i64 39, i64 0 }, ptr %t66 + store { ptr, i64, i64 } { ptr @.str.6094, i64 39, i64 0 }, ptr %t66 %t67 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 64 - store { ptr, i64, i64 } { ptr @.str.5887, i64 29, i64 0 }, ptr %t67 + store { ptr, i64, i64 } { ptr @.str.6095, i64 29, i64 0 }, ptr %t67 %t68 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 65 - store { ptr, i64, i64 } { ptr @.str.5888, i64 35, i64 0 }, ptr %t68 + store { ptr, i64, i64 } { ptr @.str.6096, i64 35, i64 0 }, ptr %t68 %t69 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 66 - store { ptr, i64, i64 } { ptr @.str.5889, i64 29, i64 0 }, ptr %t69 + store { ptr, i64, i64 } { ptr @.str.6097, i64 29, i64 0 }, ptr %t69 %t70 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 67 - store { ptr, i64, i64 } { ptr @.str.5890, i64 24, i64 0 }, ptr %t70 + store { ptr, i64, i64 } { ptr @.str.6098, i64 24, i64 0 }, ptr %t70 %t71 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 68 - store { ptr, i64, i64 } { ptr @.str.5891, i64 40, i64 0 }, ptr %t71 + store { ptr, i64, i64 } { ptr @.str.6099, i64 40, i64 0 }, ptr %t71 %t72 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 69 - store { ptr, i64, i64 } { ptr @.str.5892, i64 33, i64 0 }, ptr %t72 + store { ptr, i64, i64 } { ptr @.str.6100, i64 33, i64 0 }, ptr %t72 %t73 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 70 - store { ptr, i64, i64 } { ptr @.str.5893, i64 34, i64 0 }, ptr %t73 + store { ptr, i64, i64 } { ptr @.str.6101, i64 34, i64 0 }, ptr %t73 %t74 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 71 - store { ptr, i64, i64 } { ptr @.str.5894, i64 44, i64 0 }, ptr %t74 + store { ptr, i64, i64 } { ptr @.str.6102, i64 44, i64 0 }, ptr %t74 %t75 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 72 - store { ptr, i64, i64 } { ptr @.str.5895, i64 32, i64 0 }, ptr %t75 + store { ptr, i64, i64 } { ptr @.str.6103, i64 32, i64 0 }, ptr %t75 %t76 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 73 - store { ptr, i64, i64 } { ptr @.str.5896, i64 23, i64 0 }, ptr %t76 + store { ptr, i64, i64 } { ptr @.str.6104, i64 23, i64 0 }, ptr %t76 %t77 = insertvalue { ptr, i64, i64 } undef, ptr %t2, 0 %t78 = insertvalue { ptr, i64, i64 } %t77, i64 74, 1 %t79 = insertvalue { ptr, i64, i64 } %t78, i64 74, 2 store { ptr, i64, i64 } %t79, ptr %a80 %t81 = getelementptr inbounds { ptr, i64, i64 }, ptr %a80, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.5897, i64 1, i64 0 }, ptr %a82 + store { ptr, i64, i64 } { ptr @.str.6105, i64 1, i64 0 }, ptr %a82 call void @finch_str_join(ptr %a83, ptr %a80, ptr %a82) %t84 = load { ptr, i64, i64 }, ptr %a83 store { ptr, i64, i64 } %t84, ptr %a86 - store { ptr, i64, i64 } { ptr @.str.5898, i64 1, i64 0 }, ptr %a87 + store { ptr, i64, i64 } { ptr @.str.6106, i64 1, i64 0 }, ptr %a87 call void @finch_str_concat(ptr %a85, ptr %a86, ptr %a87) store { ptr, i64, i64 } %t84, ptr %a88 call void @finch_str_drop(ptr %a88) @@ -91176,32 +95175,32 @@ entry: %a103 = alloca { ptr, i64, i64 }, align 16 %a106 = alloca { ptr, i64, i64 }, align 16 store ptr %p0, ptr %a1 - store { ptr, i64, i64 } { ptr @.str.5899, i64 52, i64 0 }, ptr %a2 + store { ptr, i64, i64 } { ptr @.str.6107, i64 52, i64 0 }, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic8656, label %ok8657 -panic8656: - call void @finch_panic(ptr @.str.5900, i64 5541, ptr @.str.5901) + br i1 %t4, label %panic9058, label %ok9059 +panic9058: + call void @finch_panic(ptr @.str.6108, i64 5776, ptr @.str.6109) unreachable -ok8657: - %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 30 +ok9059: + %t5 = getelementptr inbounds %S.gen.Gen, ptr %t3, i32 0, i32 31 %t6 = getelementptr inbounds %S.platform.Target, ptr %t5, i32 0, i32 5 %t7 = load i1, ptr %t6 - br i1 %t7, label %then8658, label %endif8660 -then8658: + br i1 %t7, label %then9060, label %endif9062 +then9060: %t8 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t8, ptr %a10 - store { ptr, i64, i64 } { ptr @.str.5902, i64 17, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.6110, i64 17, i64 0 }, ptr %a11 call void @finch_str_concat(ptr %a9, ptr %a10, ptr %a11) %t12 = load { ptr, i64, i64 }, ptr %a9 %t13 = load ptr, ptr %a1 %t14 = icmp eq ptr %t13, null - br i1 %t14, label %panic8661, label %ok8662 -panic8661: - call void @finch_panic(ptr @.str.5903, i64 5542, ptr @.str.5904) + br i1 %t14, label %panic9063, label %ok9064 +panic9063: + call void @finch_panic(ptr @.str.6111, i64 5777, ptr @.str.6112) unreachable -ok8662: - %t15 = getelementptr inbounds %S.gen.Gen, ptr %t13, i32 0, i32 30 +ok9064: + %t15 = getelementptr inbounds %S.gen.Gen, ptr %t13, i32 0, i32 31 %t16 = getelementptr inbounds %S.platform.Target, ptr %t15, i32 0, i32 0 %t17 = load { ptr, i64, i64 }, ptr %t16 store { ptr, i64, i64 } %t12, ptr %a19 @@ -91211,7 +95210,7 @@ ok8662: call void @finch_str_drop(ptr %a21) %t22 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t22, ptr %a24 - store { ptr, i64, i64 } { ptr @.str.5905, i64 3, i64 0 }, ptr %a25 + store { ptr, i64, i64 } { ptr @.str.6113, i64 3, i64 0 }, ptr %a25 call void @finch_str_concat(ptr %a23, ptr %a24, ptr %a25) store { ptr, i64, i64 } %t22, ptr %a26 call void @finch_str_drop(ptr %a26) @@ -91220,19 +95219,19 @@ ok8662: store { ptr, i64, i64 } %t27, ptr %a2 store { ptr, i64, i64 } %t28, ptr %a29 call void @finch_str_drop(ptr %a29) - br label %endif8660 -endif8660: + br label %endif9062 +endif9062: %t30 = load { ptr, i64, i64 }, ptr %a2 %t31 = load ptr, ptr %a1 %t32 = icmp eq ptr %t31, null - br i1 %t32, label %panic8663, label %ok8664 -panic8663: - call void @finch_panic(ptr @.str.5906, i64 5544, ptr @.str.5907) + br i1 %t32, label %panic9065, label %ok9066 +panic9065: + call void @finch_panic(ptr @.str.6114, i64 5779, ptr @.str.6115) unreachable -ok8664: +ok9066: %t33 = getelementptr inbounds %S.gen.Gen, ptr %t31, i32 0, i32 2 %t34 = getelementptr inbounds { ptr, i64, i64 }, ptr %t33, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.5908, i64 1, i64 0 }, ptr %a35 + store { ptr, i64, i64 } { ptr @.str.6116, i64 1, i64 0 }, ptr %a35 call void @finch_str_join(ptr %a36, ptr %t33, ptr %a35) %t37 = load { ptr, i64, i64 }, ptr %a36 store { ptr, i64, i64 } %t30, ptr %a39 @@ -91242,7 +95241,7 @@ ok8664: call void @finch_str_drop(ptr %a41) %t42 = load { ptr, i64, i64 }, ptr %a38 store { ptr, i64, i64 } %t42, ptr %a44 - store { ptr, i64, i64 } { ptr @.str.5909, i64 2, i64 0 }, ptr %a45 + store { ptr, i64, i64 } { ptr @.str.6117, i64 2, i64 0 }, ptr %a45 call void @finch_str_concat(ptr %a43, ptr %a44, ptr %a45) store { ptr, i64, i64 } %t42, ptr %a46 call void @finch_str_drop(ptr %a46) @@ -91257,7 +95256,7 @@ ok8664: call void @finch_str_drop(ptr %a53) %t54 = load { ptr, i64, i64 }, ptr %a49 store { ptr, i64, i64 } %t54, ptr %a56 - store { ptr, i64, i64 } { ptr @.str.5910, i64 1, i64 0 }, ptr %a57 + store { ptr, i64, i64 } { ptr @.str.6118, i64 1, i64 0 }, ptr %a57 call void @finch_str_concat(ptr %a55, ptr %a56, ptr %a57) store { ptr, i64, i64 } %t54, ptr %a58 call void @finch_str_drop(ptr %a58) @@ -91268,37 +95267,37 @@ ok8664: call void @finch_str_drop(ptr %a61) %t62 = load ptr, ptr %a1 %t63 = icmp eq ptr %t62, null - br i1 %t63, label %panic8665, label %ok8666 -panic8665: - call void @finch_panic(ptr @.str.5911, i64 5545, ptr @.str.5912) + br i1 %t63, label %panic9067, label %ok9068 +panic9067: + call void @finch_panic(ptr @.str.6119, i64 5780, ptr @.str.6120) unreachable -ok8666: - %t64 = getelementptr inbounds %S.gen.Gen, ptr %t62, i32 0, i32 29 +ok9068: + %t64 = getelementptr inbounds %S.gen.Gen, ptr %t62, i32 0, i32 30 %t65 = load i1, ptr %t64 - br i1 %t65, label %then8667, label %endif8669 -then8667: + br i1 %t65, label %then9069, label %endif9071 +then9069: %t66 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t66, ptr %a68 - store { ptr, i64, i64 } { ptr @.str.5913, i64 62, i64 0 }, ptr %a69 + store { ptr, i64, i64 } { ptr @.str.6121, i64 62, i64 0 }, ptr %a69 call void @finch_str_concat(ptr %a67, ptr %a68, ptr %a69) %t70 = load { ptr, i64, i64 }, ptr %a67 %t71 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t70, ptr %a2 store { ptr, i64, i64 } %t71, ptr %a72 call void @finch_str_drop(ptr %a72) - br label %endif8669 -endif8669: + br label %endif9071 +endif9071: %t73 = load { ptr, i64, i64 }, ptr %a2 %t74 = load ptr, ptr %a1 %t75 = icmp eq ptr %t74, null - br i1 %t75, label %panic8670, label %ok8671 -panic8670: - call void @finch_panic(ptr @.str.5914, i64 5548, ptr @.str.5915) + br i1 %t75, label %panic9072, label %ok9073 +panic9072: + call void @finch_panic(ptr @.str.6122, i64 5783, ptr @.str.6123) unreachable -ok8671: +ok9073: %t76 = getelementptr inbounds %S.gen.Gen, ptr %t74, i32 0, i32 3 %t77 = getelementptr inbounds { ptr, i64, i64 }, ptr %t76, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.5916, i64 1, i64 0 }, ptr %a78 + store { ptr, i64, i64 } { ptr @.str.6124, i64 1, i64 0 }, ptr %a78 call void @finch_str_join(ptr %a79, ptr %t76, ptr %a78) %t80 = load { ptr, i64, i64 }, ptr %a79 store { ptr, i64, i64 } %t73, ptr %a82 @@ -91313,18 +95312,18 @@ ok8671: call void @finch_str_drop(ptr %a87) %t88 = load ptr, ptr %a1 %t89 = icmp eq ptr %t88, null - br i1 %t89, label %panic8672, label %ok8673 -panic8672: - call void @finch_panic(ptr @.str.5917, i64 5549, ptr @.str.5918) + br i1 %t89, label %panic9074, label %ok9075 +panic9074: + call void @finch_panic(ptr @.str.6125, i64 5784, ptr @.str.6126) unreachable -ok8673: - %t90 = getelementptr inbounds %S.gen.Gen, ptr %t88, i32 0, i32 29 +ok9075: + %t90 = getelementptr inbounds %S.gen.Gen, ptr %t88, i32 0, i32 30 %t91 = load i1, ptr %t90 - br i1 %t91, label %then8674, label %endif8676 -then8674: + br i1 %t91, label %then9076, label %endif9078 +then9076: %t92 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t92, ptr %a94 - store { ptr, i64, i64 } { ptr @.str.5919, i64 1, i64 0 }, ptr %a95 + store { ptr, i64, i64 } { ptr @.str.6127, i64 1, i64 0 }, ptr %a95 call void @finch_str_concat(ptr %a93, ptr %a94, ptr %a95) %t96 = load { ptr, i64, i64 }, ptr %a93 %t97 = load ptr, ptr %a1 @@ -91341,8 +95340,8 @@ then8674: store { ptr, i64, i64 } %t104, ptr %a2 store { ptr, i64, i64 } %t105, ptr %a106 call void @finch_str_drop(ptr %a106) - br label %endif8676 -endif8676: + br label %endif9078 +endif9078: %t107 = load { ptr, i64, i64 }, ptr %a2 ret { ptr, i64, i64 } %t107 } @@ -91356,20 +95355,20 @@ entry: %t3 = getelementptr inbounds { ptr, i64, i64 }, ptr %src, i32 0, i32 1 %t4 = load i64, ptr %t3 store i64 0, ptr %a5 - br label %n.cond8677 -n.cond8677: + br label %n.cond9079 +n.cond9079: %t6 = load i64, ptr %a5 %t7 = icmp slt i64 %t6, %t4 - br i1 %t7, label %n.body8678, label %n.end8679 -n.body8678: + br i1 %t7, label %n.body9080, label %n.end9081 +n.body9080: %t8 = getelementptr inbounds %S.ast.Program, ptr %t1, i64 %t6 %t9 = getelementptr inbounds %S.ast.Program, ptr %t2, i64 %t6 call void @finch.copy.S_ast_Program(ptr %t8, ptr %t9) %t10 = load i64, ptr %a5 %t11 = add i64 %t10, 1 store i64 %t11, ptr %a5 - br label %n.cond8677 -n.end8679: + br label %n.cond9079 +n.end9081: ret void } @@ -91403,12 +95402,12 @@ entry: %t1 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %src, i32 0, i32 2 %t2 = load i64, ptr %t1 store i64 0, ptr %a3 - br label %n.cond8680 -n.cond8680: + br label %n.cond9082 +n.cond9082: %t4 = load i64, ptr %a3 %t5 = icmp slt i64 %t4, %t2 - br i1 %t5, label %n.body8681, label %n.end8682 -n.body8681: + br i1 %t5, label %n.body9083, label %n.end9084 +n.body9083: %t6 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %src, i32 0, i32 0 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t7, i64 %t4 @@ -91418,21 +95417,21 @@ n.body8681: %t12 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t8, i32 0, i32 0 %t13 = load i64, ptr %t12 %t14 = icmp ne i64 %t13, 0 - br i1 %t14, label %entry.live8683, label %entry.next8684 -entry.live8683: + br i1 %t14, label %entry.live9085, label %entry.next9086 +entry.live9085: %t15 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t11, i32 0, i32 1 %t16 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t8, i32 0, i32 1 call void @finch_str_copy(ptr %t15, ptr %t16) %t17 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t11, i32 0, i32 2 %t18 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t8, i32 0, i32 2 call void @finch.copy.S_cimport_CFunc(ptr %t17, ptr %t18) - br label %entry.next8684 -entry.next8684: + br label %entry.next9086 +entry.next9086: %t19 = load i64, ptr %a3 %t20 = add i64 %t19, 1 store i64 %t20, ptr %a3 - br label %n.cond8680 -n.end8682: + br label %n.cond9082 +n.end9084: ret void } @@ -91443,12 +95442,12 @@ entry: %t1 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %src, i32 0, i32 2 %t2 = load i64, ptr %t1 store i64 0, ptr %a3 - br label %n.cond8685 -n.cond8685: + br label %n.cond9087 +n.cond9087: %t4 = load i64, ptr %a3 %t5 = icmp slt i64 %t4, %t2 - br i1 %t5, label %n.body8686, label %n.end8687 -n.body8686: + br i1 %t5, label %n.body9088, label %n.end9089 +n.body9088: %t6 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %src, i32 0, i32 0 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t7, i64 %t4 @@ -91458,21 +95457,21 @@ n.body8686: %t12 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t8, i32 0, i32 0 %t13 = load i64, ptr %t12 %t14 = icmp ne i64 %t13, 0 - br i1 %t14, label %entry.live8688, label %entry.next8689 -entry.live8688: + br i1 %t14, label %entry.live9090, label %entry.next9091 +entry.live9090: %t15 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t11, i32 0, i32 1 %t16 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t8, i32 0, i32 1 call void @finch_str_copy(ptr %t15, ptr %t16) %t17 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t11, i32 0, i32 2 %t18 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t8, i32 0, i32 2 call void @finch.copy.S_cimport_CConst(ptr %t17, ptr %t18) - br label %entry.next8689 -entry.next8689: + br label %entry.next9091 +entry.next9091: %t19 = load i64, ptr %a3 %t20 = add i64 %t19, 1 store i64 %t20, ptr %a3 - br label %n.cond8685 -n.end8687: + br label %n.cond9087 +n.end9089: ret void } @@ -91483,12 +95482,12 @@ entry: %t1 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %src, i32 0, i32 2 %t2 = load i64, ptr %t1 store i64 0, ptr %a3 - br label %n.cond8690 -n.cond8690: + br label %n.cond9092 +n.cond9092: %t4 = load i64, ptr %a3 %t5 = icmp slt i64 %t4, %t2 - br i1 %t5, label %n.body8691, label %n.end8692 -n.body8691: + br i1 %t5, label %n.body9093, label %n.end9094 +n.body9093: %t6 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %src, i32 0, i32 0 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.ast.Type }, ptr %t7, i64 %t4 @@ -91498,21 +95497,21 @@ n.body8691: %t12 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.ast.Type }, ptr %t8, i32 0, i32 0 %t13 = load i64, ptr %t12 %t14 = icmp ne i64 %t13, 0 - br i1 %t14, label %entry.live8693, label %entry.next8694 -entry.live8693: + br i1 %t14, label %entry.live9095, label %entry.next9096 +entry.live9095: %t15 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.ast.Type }, ptr %t11, i32 0, i32 1 %t16 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.ast.Type }, ptr %t8, i32 0, i32 1 call void @finch_str_copy(ptr %t15, ptr %t16) %t17 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.ast.Type }, ptr %t11, i32 0, i32 2 %t18 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.ast.Type }, ptr %t8, i32 0, i32 2 call void @finch.copy.S_ast_Type(ptr %t17, ptr %t18) - br label %entry.next8694 -entry.next8694: + br label %entry.next9096 +entry.next9096: %t19 = load i64, ptr %a3 %t20 = add i64 %t19, 1 store i64 %t20, ptr %a3 - br label %n.cond8690 -n.end8692: + br label %n.cond9092 +n.end9094: ret void } @@ -91523,12 +95522,12 @@ entry: %t1 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %src, i32 0, i32 2 %t2 = load i64, ptr %t1 store i64 0, ptr %a3 - br label %n.cond8695 -n.cond8695: + br label %n.cond9097 +n.cond9097: %t4 = load i64, ptr %a3 %t5 = icmp slt i64 %t4, %t2 - br i1 %t5, label %n.body8696, label %n.end8697 -n.body8696: + br i1 %t5, label %n.body9098, label %n.end9099 +n.body9098: %t6 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %src, i32 0, i32 0 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr %t7, i64 %t4 @@ -91538,21 +95537,21 @@ n.body8696: %t12 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr %t8, i32 0, i32 0 %t13 = load i64, ptr %t12 %t14 = icmp ne i64 %t13, 0 - br i1 %t14, label %entry.live8698, label %entry.next8699 -entry.live8698: + br i1 %t14, label %entry.live9100, label %entry.next9101 +entry.live9100: %t15 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr %t11, i32 0, i32 1 %t16 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr %t8, i32 0, i32 1 call void @finch_str_copy(ptr %t15, ptr %t16) %t17 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr %t11, i32 0, i32 2 %t18 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr %t8, i32 0, i32 2 call void @finch.copy.S_cimport_CStruct(ptr %t17, ptr %t18) - br label %entry.next8699 -entry.next8699: + br label %entry.next9101 +entry.next9101: %t19 = load i64, ptr %a3 %t20 = add i64 %t19, 1 store i64 %t20, ptr %a3 - br label %n.cond8695 -n.end8697: + br label %n.cond9097 +n.end9099: ret void } @@ -91586,19 +95585,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond8768 -n.cond8768: + br label %n.cond9170 +n.cond9170: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body8769, label %n.end8770 -n.body8769: + br i1 %t6, label %n.body9171, label %n.end9172 +n.body9171: %t7 = getelementptr inbounds %S.gen.Pending, ptr %t1, i64 %t5 call void @finch.drop.S_gen_Pending(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond8768 -n.end8770: + br label %n.cond9170 +n.end9172: call void @finch_arr_free(ptr %a) ret void } @@ -91610,19 +95609,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond8771 -n.cond8771: + br label %n.cond9173 +n.cond9173: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body8772, label %n.end8773 -n.body8772: + br i1 %t6, label %n.body9174, label %n.end9175 +n.body9174: %t7 = getelementptr inbounds %S.gen.Loop, ptr %t1, i64 %t5 call void @finch.drop.S_gen_Loop(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond8771 -n.end8773: + br label %n.cond9173 +n.end9175: call void @finch_arr_free(ptr %a) ret void } @@ -91634,19 +95633,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond8774 -n.cond8774: + br label %n.cond9176 +n.cond9176: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body8775, label %n.end8776 -n.body8775: + br i1 %t6, label %n.body9177, label %n.end9178 +n.body9177: %t7 = getelementptr inbounds %S.gen.FnSig, ptr %t1, i64 %t5 call void @finch.drop.S_gen_FnSig(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond8774 -n.end8776: + br label %n.cond9176 +n.end9178: call void @finch_arr_free(ptr %a) ret void } @@ -91658,19 +95657,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond8777 -n.cond8777: + br label %n.cond9179 +n.cond9179: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body8778, label %n.end8779 -n.body8778: + br i1 %t6, label %n.body9180, label %n.end9181 +n.body9180: %t7 = getelementptr inbounds %S.gen.StructDef, ptr %t1, i64 %t5 call void @finch.drop.S_gen_StructDef(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond8777 -n.end8779: + br label %n.cond9179 +n.end9181: call void @finch_arr_free(ptr %a) ret void } @@ -91682,19 +95681,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond8780 -n.cond8780: + br label %n.cond9182 +n.cond9182: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body8781, label %n.end8782 -n.body8781: + br i1 %t6, label %n.body9183, label %n.end9184 +n.body9183: %t7 = getelementptr inbounds %S.gen.Template, ptr %t1, i64 %t5 call void @finch.drop.S_gen_Template(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond8780 -n.end8782: + br label %n.cond9182 +n.end9184: call void @finch_arr_free(ptr %a) ret void } @@ -91706,19 +95705,43 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond8783 -n.cond8783: + br label %n.cond9185 +n.cond9185: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body8784, label %n.end8785 -n.body8784: + br i1 %t6, label %n.body9186, label %n.end9187 +n.body9186: %t7 = getelementptr inbounds %S.gen.EnumDef, ptr %t1, i64 %t5 call void @finch.drop.S_gen_EnumDef(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond8783 -n.end8785: + br label %n.cond9185 +n.end9187: + call void @finch_arr_free(ptr %a) + ret void +} + +define internal void @finch.drop.arr_S_gen_SumDef(ptr %a) { +entry: + %a4 = alloca i64, align 16 + %t1 = load ptr, ptr %a + %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 + %t3 = load i64, ptr %t2 + store i64 0, ptr %a4 + br label %n.cond9188 +n.cond9188: + %t5 = load i64, ptr %a4 + %t6 = icmp slt i64 %t5, %t3 + br i1 %t6, label %n.body9189, label %n.end9190 +n.body9189: + %t7 = getelementptr inbounds %S.gen.SumDef, ptr %t1, i64 %t5 + call void @finch.drop.S_gen_SumDef(ptr %t7) + %t8 = load i64, ptr %a4 + %t9 = add i64 %t8, 1 + store i64 %t9, ptr %a4 + br label %n.cond9188 +n.end9190: call void @finch_arr_free(ptr %a) ret void } @@ -91729,30 +95752,30 @@ entry: %t1 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %a, i32 0, i32 2 %t2 = load i64, ptr %t1 store i64 0, ptr %a3 - br label %n.cond8786 -n.cond8786: + br label %n.cond9191 +n.cond9191: %t4 = load i64, ptr %a3 %t5 = icmp slt i64 %t4, %t2 - br i1 %t5, label %n.body8787, label %n.end8788 -n.body8787: + br i1 %t5, label %n.body9192, label %n.end9193 +n.body9192: %t6 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %a, i32 0, i32 0 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t7, i64 %t4 %t9 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t8, i32 0, i32 0 %t10 = load i64, ptr %t9 %t11 = icmp ne i64 %t10, 0 - br i1 %t11, label %entry.live8789, label %entry.next8790 -entry.live8789: + br i1 %t11, label %entry.live9194, label %entry.next9195 +entry.live9194: %t12 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t8, i32 0, i32 1 call void @finch_str_drop(ptr %t12) %t13 = getelementptr inbounds { i64, { ptr, i64, i64 }, i64 }, ptr %t8, i32 0, i32 2 - br label %entry.next8790 -entry.next8790: + br label %entry.next9195 +entry.next9195: %t14 = load i64, ptr %a3 %t15 = add i64 %t14, 1 store i64 %t15, ptr %a3 - br label %n.cond8786 -n.end8788: + br label %n.cond9191 +n.end9193: call void @finch_map_free(ptr %a) ret void } @@ -91797,31 +95820,33 @@ entry: %t18 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 21 call void @finch.drop.arr_S_gen_EnumDef(ptr %t18) %t19 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 22 - call void @finch.drop.arr_str(ptr %t19) + call void @finch.drop.arr_S_gen_SumDef(ptr %t19) %t20 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 23 call void @finch.drop.arr_str(ptr %t20) - %t21 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 25 - call void @finch.drop.S_cimport_CImports(ptr %t21) - %t22 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 28 - call void @finch.drop.arr_str(ptr %t22) - %t23 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 30 - call void @finch.drop.S_platform_Target(ptr %t23) + %t21 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 24 + call void @finch.drop.arr_str(ptr %t21) + %t22 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 26 + call void @finch.drop.S_cimport_CImports(ptr %t22) + %t23 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 29 + call void @finch.drop.arr_str(ptr %t23) %t24 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 31 - call void @finch_str_drop(ptr %t24) + call void @finch.drop.S_platform_Target(ptr %t24) %t25 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 32 - call void @finch.drop.arr_str(ptr %t25) + call void @finch_str_drop(ptr %t25) %t26 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 33 - call void @finch.drop.map_str_int(ptr %t26) + call void @finch.drop.arr_str(ptr %t26) %t27 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 34 - call void @finch.drop.arr_int(ptr %t27) - %t28 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 39 - call void @finch.drop.arr_str(ptr %t28) + call void @finch.drop.map_str_int(ptr %t27) + %t28 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 35 + call void @finch.drop.arr_int(ptr %t28) %t29 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 40 - call void @finch_str_drop(ptr %t29) + call void @finch.drop.arr_str(ptr %t29) %t30 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 41 call void @finch_str_drop(ptr %t30) %t31 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 42 call void @finch_str_drop(ptr %t31) + %t32 = getelementptr inbounds %S.gen.Gen, ptr %a, i32 0, i32 43 + call void @finch_str_drop(ptr %t32) ret void } @@ -92033,132 +96058,132 @@ entry: store %S.cimport.CImports %t18, ptr %a19 call void @finch.copy.S_cimport_CImports(ptr %a20, ptr %a19) %t21 = load %S.cimport.CImports, ptr %a20 - %t22 = insertvalue %S.gen.Gen %t17, %S.cimport.CImports %t21, 25 + %t22 = insertvalue %S.gen.Gen %t17, %S.cimport.CImports %t21, 26 %t23 = getelementptr inbounds %S.gen.Options, ptr %a4, i32 0, i32 0 %t24 = load i1, ptr %t23 - %t25 = insertvalue %S.gen.Gen %t22, i1 %t24, 26 + %t25 = insertvalue %S.gen.Gen %t22, i1 %t24, 27 %t26 = getelementptr inbounds %S.gen.Options, ptr %a4, i32 0, i32 1 %t27 = load i1, ptr %t26 - %t28 = insertvalue %S.gen.Gen %t25, i1 %t27, 27 + %t28 = insertvalue %S.gen.Gen %t25, i1 %t27, 28 %t29 = getelementptr inbounds %S.gen.Options, ptr %a4, i32 0, i32 2 %t30 = load i1, ptr %t29 - %t31 = insertvalue %S.gen.Gen %t28, i1 %t30, 29 + %t31 = insertvalue %S.gen.Gen %t28, i1 %t30, 30 %t32 = getelementptr inbounds %S.gen.Options, ptr %a4, i32 0, i32 4 %t33 = load %S.platform.Target, ptr %t32 store %S.platform.Target %t33, ptr %a34 call void @finch.copy.S_platform_Target(ptr %a35, ptr %a34) %t36 = load %S.platform.Target, ptr %a35 - %t37 = insertvalue %S.gen.Gen %t31, %S.platform.Target %t36, 30 + %t37 = insertvalue %S.gen.Gen %t31, %S.platform.Target %t36, 31 %t38 = getelementptr inbounds %S.gen.Options, ptr %a4, i32 0, i32 3 %t39 = load { ptr, i64, i64 }, ptr %t38 store { ptr, i64, i64 } %t39, ptr %a40 call void @finch_str_copy(ptr %a41, ptr %a40) %t42 = load { ptr, i64, i64 }, ptr %a41 - %t43 = insertvalue %S.gen.Gen %t37, { ptr, i64, i64 } %t42, 31 - %t44 = insertvalue %S.gen.Gen %t43, i64 -1, 35 + %t43 = insertvalue %S.gen.Gen %t37, { ptr, i64, i64 } %t42, 32 + %t44 = insertvalue %S.gen.Gen %t43, i64 -1, 36 store %S.gen.Gen %t44, ptr %a45 store ptr %a45, ptr %a46 %t47 = load ptr, ptr %a46 %t48 = icmp eq ptr %t47, null - br i1 %t48, label %panic8700, label %ok8701 -panic8700: - call void @finch_panic(ptr @.str.5920, i64 5559, ptr @.str.5921) + br i1 %t48, label %panic9102, label %ok9103 +panic9102: + call void @finch_panic(ptr @.str.6128, i64 5794, ptr @.str.6129) unreachable -ok8701: - %t49 = getelementptr inbounds %S.gen.Gen, ptr %t47, i32 0, i32 29 +ok9103: + %t49 = getelementptr inbounds %S.gen.Gen, ptr %t47, i32 0, i32 30 %t50 = load i1, ptr %t49 - br i1 %t50, label %then8702, label %endif8704 -then8702: + br i1 %t50, label %then9104, label %endif9106 +then9104: %t51 = load ptr, ptr %a46 %t52 = icmp eq ptr %t51, null - br i1 %t52, label %panic8705, label %ok8706 -panic8705: - call void @finch_panic(ptr @.str.5922, i64 5561, ptr @.str.5923) + br i1 %t52, label %panic9107, label %ok9108 +panic9107: + call void @finch_panic(ptr @.str.6130, i64 5796, ptr @.str.6131) unreachable -ok8706: - %t53 = getelementptr inbounds %S.gen.Gen, ptr %t51, i32 0, i32 32 +ok9108: + %t53 = getelementptr inbounds %S.gen.Gen, ptr %t51, i32 0, i32 33 %t54 = getelementptr inbounds { ptr, i64, i64 }, ptr %t53, i32 0, i32 1 %t55 = load i64, ptr %t54 %t56 = add i64 %t55, 1 call void @finch_arr_reserve(ptr %t53, i64 %t56, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t57 = load ptr, ptr %t53 %t58 = getelementptr inbounds { ptr, i64, i64 }, ptr %t57, i64 %t55 - store { ptr, i64, i64 } { ptr @.str.5924, i64 0, i64 0 }, ptr %t58 + store { ptr, i64, i64 } { ptr @.str.6132, i64 0, i64 0 }, ptr %t58 store i64 %t56, ptr %t54 %t59 = load ptr, ptr %a46 %t60 = icmp eq ptr %t59, null - br i1 %t60, label %panic8707, label %ok8708 -panic8707: - call void @finch_panic(ptr @.str.5925, i64 5562, ptr @.str.5926) + br i1 %t60, label %panic9109, label %ok9110 +panic9109: + call void @finch_panic(ptr @.str.6133, i64 5797, ptr @.str.6134) unreachable -ok8708: - %t61 = getelementptr inbounds %S.gen.Gen, ptr %t59, i32 0, i32 32 +ok9110: + %t61 = getelementptr inbounds %S.gen.Gen, ptr %t59, i32 0, i32 33 %t62 = getelementptr inbounds { ptr, i64, i64 }, ptr %t61, i32 0, i32 1 %t63 = load i64, ptr %t62 %t64 = add i64 %t63, 1 call void @finch_arr_reserve(ptr %t61, i64 %t64, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t65 = load ptr, ptr %t61 %t66 = getelementptr inbounds { ptr, i64, i64 }, ptr %t65, i64 %t63 - store { ptr, i64, i64 } { ptr @.str.5927, i64 33, i64 0 }, ptr %t66 + store { ptr, i64, i64 } { ptr @.str.6135, i64 33, i64 0 }, ptr %t66 store i64 %t64, ptr %t62 %t67 = load ptr, ptr %a46 %t68 = icmp eq ptr %t67, null - br i1 %t68, label %panic8709, label %ok8710 -panic8709: - call void @finch_panic(ptr @.str.5928, i64 5563, ptr @.str.5929) + br i1 %t68, label %panic9111, label %ok9112 +panic9111: + call void @finch_panic(ptr @.str.6136, i64 5798, ptr @.str.6137) unreachable -ok8710: - %t69 = getelementptr inbounds %S.gen.Gen, ptr %t67, i32 0, i32 32 +ok9112: + %t69 = getelementptr inbounds %S.gen.Gen, ptr %t67, i32 0, i32 33 %t70 = getelementptr inbounds { ptr, i64, i64 }, ptr %t69, i32 0, i32 1 %t71 = load i64, ptr %t70 %t72 = add i64 %t71, 1 call void @finch_arr_reserve(ptr %t69, i64 %t72, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t73 = load ptr, ptr %t69 %t74 = getelementptr inbounds { ptr, i64, i64 }, ptr %t73, i64 %t71 - store { ptr, i64, i64 } { ptr @.str.5930, i64 38, i64 0 }, ptr %t74 + store { ptr, i64, i64 } { ptr @.str.6138, i64 38, i64 0 }, ptr %t74 store i64 %t72, ptr %t70 store i64 0, ptr %a75 - br label %each.cond8711 -each.cond8711: + br label %each.cond9113 +each.cond9113: %t76 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t77 = load i64, ptr %t76 %t78 = load i64, ptr %a75 %t79 = icmp slt i64 %t78, %t77 - br i1 %t79, label %each.body8712, label %each.end8714 -each.body8712: + br i1 %t79, label %each.body9114, label %each.end9116 +each.body9114: %t80 = load ptr, ptr %a2 %t81 = getelementptr inbounds { ptr, i64, i64 }, ptr %t80, i64 %t78 %t82 = load { ptr, i64, i64 }, ptr %t81 store { ptr, i64, i64 } %t82, ptr %a83 %t84 = load ptr, ptr %a46 %t85 = icmp eq ptr %t84, null - br i1 %t85, label %panic8715, label %ok8716 -panic8715: - call void @finch_panic(ptr @.str.5931, i64 5565, ptr @.str.5932) + br i1 %t85, label %panic9117, label %ok9118 +panic9117: + call void @finch_panic(ptr @.str.6139, i64 5800, ptr @.str.6140) unreachable -ok8716: - %t86 = getelementptr inbounds %S.gen.Gen, ptr %t84, i32 0, i32 34 +ok9118: + %t86 = getelementptr inbounds %S.gen.Gen, ptr %t84, i32 0, i32 35 %t87 = getelementptr inbounds { ptr, i64, i64 }, ptr %t86, i32 0, i32 1 %t88 = load ptr, ptr %a46 %t89 = load { ptr, i64, i64 }, ptr %a83 - store { ptr, i64, i64 } { ptr @.str.5933, i64 19, i64 0 }, ptr %a91 + store { ptr, i64, i64 } { ptr @.str.6141, i64 19, i64 0 }, ptr %a91 store { ptr, i64, i64 } %t89, ptr %a92 call void @finch_str_concat(ptr %a90, ptr %a91, ptr %a92) %t93 = load { ptr, i64, i64 }, ptr %a90 store { ptr, i64, i64 } %t93, ptr %a95 - store { ptr, i64, i64 } { ptr @.str.5934, i64 15, i64 0 }, ptr %a96 + store { ptr, i64, i64 } { ptr @.str.6142, i64 15, i64 0 }, ptr %a96 call void @finch_str_concat(ptr %a94, ptr %a95, ptr %a96) store { ptr, i64, i64 } %t93, ptr %a97 call void @finch_str_drop(ptr %a97) %t98 = load { ptr, i64, i64 }, ptr %a94 %t99 = load ptr, ptr %a46 %t100 = icmp eq ptr %t99, null - br i1 %t100, label %panic8717, label %ok8718 -panic8717: - call void @finch_panic(ptr @.str.5935, i64 5565, ptr @.str.5936) + br i1 %t100, label %panic9119, label %ok9120 +panic9119: + call void @finch_panic(ptr @.str.6143, i64 5800, ptr @.str.6144) unreachable -ok8718: - %t101 = getelementptr inbounds %S.gen.Gen, ptr %t99, i32 0, i32 31 +ok9120: + %t101 = getelementptr inbounds %S.gen.Gen, ptr %t99, i32 0, i32 32 %t102 = load { ptr, i64, i64 }, ptr %t101 store { ptr, i64, i64 } %t98, ptr %a104 store { ptr, i64, i64 } %t102, ptr %a105 @@ -92167,7 +96192,7 @@ ok8718: call void @finch_str_drop(ptr %a106) %t107 = load { ptr, i64, i64 }, ptr %a103 store { ptr, i64, i64 } %t107, ptr %a109 - store { ptr, i64, i64 } { ptr @.str.5937, i64 2, i64 0 }, ptr %a110 + store { ptr, i64, i64 } { ptr @.str.6145, i64 2, i64 0 }, ptr %a110 call void @finch_str_concat(ptr %a108, ptr %a109, ptr %a110) store { ptr, i64, i64 } %t107, ptr %a111 call void @finch_str_drop(ptr %a111) @@ -92182,108 +96207,108 @@ ok8718: %t118 = getelementptr inbounds i64, ptr %t117, i64 %t115 store i64 %t113, ptr %t118 store i64 %t116, ptr %t87 - br label %each.step8713 -each.step8713: + br label %each.step9115 +each.step9115: %t119 = load i64, ptr %a75 %t120 = add i64 %t119, 1 store i64 %t120, ptr %a75 - br label %each.cond8711 -each.end8714: + br label %each.cond9113 +each.end9116: %t121 = load ptr, ptr %a46 %t122 = icmp eq ptr %t121, null - br i1 %t122, label %panic8719, label %ok8720 -panic8719: - call void @finch_panic(ptr @.str.5939, i64 5567, ptr @.str.5940) + br i1 %t122, label %panic9121, label %ok9122 +panic9121: + call void @finch_panic(ptr @.str.6147, i64 5802, ptr @.str.6148) unreachable -ok8720: - %t123 = getelementptr inbounds %S.gen.Gen, ptr %t121, i32 0, i32 34 +ok9122: + %t123 = getelementptr inbounds %S.gen.Gen, ptr %t121, i32 0, i32 35 %t124 = load { ptr, i64, i64 }, ptr %t123 %t125 = extractvalue { ptr, i64, i64 } %t124, 1 %t126 = icmp uge i64 0, %t125 - br i1 %t126, label %range8721, label %inrange8722 -range8721: - call void @finch_panic_index(ptr @.str.5941, i64 5567, i64 0, i64 %t125) + br i1 %t126, label %range9123, label %inrange9124 +range9123: + call void @finch_panic_index(ptr @.str.6149, i64 5802, i64 0, i64 %t125) unreachable -inrange8722: +inrange9124: %t127 = extractvalue { ptr, i64, i64 } %t124, 0 %t128 = getelementptr inbounds i64, ptr %t127, i64 0 %t129 = load i64, ptr %t128 call void @finch_str_from_int(ptr %a130, i64 %t129) %t131 = load { ptr, i64, i64 }, ptr %a130 - store { ptr, i64, i64 } { ptr @.str.5938, i64 52, i64 0 }, ptr %a133 + store { ptr, i64, i64 } { ptr @.str.6146, i64 52, i64 0 }, ptr %a133 store { ptr, i64, i64 } %t131, ptr %a134 call void @finch_str_concat(ptr %a132, ptr %a133, ptr %a134) store { ptr, i64, i64 } %t131, ptr %a135 call void @finch_str_drop(ptr %a135) %t136 = load { ptr, i64, i64 }, ptr %a132 store { ptr, i64, i64 } %t136, ptr %a138 - store { ptr, i64, i64 } { ptr @.str.5942, i64 84, i64 0 }, ptr %a139 + store { ptr, i64, i64 } { ptr @.str.6150, i64 84, i64 0 }, ptr %a139 call void @finch_str_concat(ptr %a137, ptr %a138, ptr %a139) store { ptr, i64, i64 } %t136, ptr %a140 call void @finch_str_drop(ptr %a140) %t141 = load { ptr, i64, i64 }, ptr %a137 %t142 = load ptr, ptr %a46 %t143 = icmp eq ptr %t142, null - br i1 %t143, label %panic8723, label %ok8724 -panic8723: - call void @finch_panic(ptr @.str.5943, i64 5567, ptr @.str.5944) + br i1 %t143, label %panic9125, label %ok9126 +panic9125: + call void @finch_panic(ptr @.str.6151, i64 5802, ptr @.str.6152) unreachable -ok8724: - %t144 = getelementptr inbounds %S.gen.Gen, ptr %t142, i32 0, i32 32 +ok9126: + %t144 = getelementptr inbounds %S.gen.Gen, ptr %t142, i32 0, i32 33 %t145 = load { ptr, i64, i64 }, ptr %t144 %t146 = extractvalue { ptr, i64, i64 } %t145, 1 %t147 = icmp uge i64 0, %t146 - br i1 %t147, label %range8725, label %inrange8726 -range8725: - call void @finch_panic_index(ptr @.str.5945, i64 5567, i64 0, i64 %t146) + br i1 %t147, label %range9127, label %inrange9128 +range9127: + call void @finch_panic_index(ptr @.str.6153, i64 5802, i64 0, i64 %t146) unreachable -inrange8726: +inrange9128: %t148 = extractvalue { ptr, i64, i64 } %t145, 0 %t149 = getelementptr inbounds { ptr, i64, i64 }, ptr %t148, i64 0 %t150 = load { ptr, i64, i64 }, ptr %t149 store { ptr, i64, i64 } %t141, ptr %t149 store { ptr, i64, i64 } %t150, ptr %a151 call void @finch_str_drop(ptr %a151) - br label %endif8704 -endif8704: + br label %endif9106 +endif9106: %t152 = load ptr, ptr %a46 call void @finch.gen.declare(ptr %t152) %t153 = load ptr, ptr %a46 - %t154 = call i64 @finch.gen.findFn(ptr %t153, { ptr, i64, i64 } { ptr @.str.5946, i64 0, i64 0 }, { ptr, i64, i64 } { ptr @.str.5947, i64 4, i64 0 }) + %t154 = call i64 @finch.gen.findFn(ptr %t153, { ptr, i64, i64 } { ptr @.str.6154, i64 0, i64 0 }, { ptr, i64, i64 } { ptr @.str.6155, i64 4, i64 0 }) store i64 %t154, ptr %a155 %t156 = load i1, ptr %a7 - br i1 %t156, label %then8727, label %else8728 -then8727: + br i1 %t156, label %then9129, label %else9130 +then9129: %t157 = load i64, ptr %a155 %t158 = icmp sge i64 %t157, 0 - br i1 %t158, label %then8730, label %endif8732 -then8730: + br i1 %t158, label %then9132, label %endif9134 +then9132: %t159 = load ptr, ptr %a46 %t160 = load ptr, ptr %a46 %t161 = icmp eq ptr %t160, null - br i1 %t161, label %panic8733, label %ok8734 -panic8733: - call void @finch_panic(ptr @.str.5948, i64 5573, ptr @.str.5949) + br i1 %t161, label %panic9135, label %ok9136 +panic9135: + call void @finch_panic(ptr @.str.6156, i64 5808, ptr @.str.6157) unreachable -ok8734: +ok9136: %t162 = getelementptr inbounds %S.gen.Gen, ptr %t160, i32 0, i32 0 %t163 = load ptr, ptr %a46 %t164 = icmp eq ptr %t163, null - br i1 %t164, label %panic8735, label %ok8736 -panic8735: - call void @finch_panic(ptr @.str.5950, i64 5573, ptr @.str.5951) + br i1 %t164, label %panic9137, label %ok9138 +panic9137: + call void @finch_panic(ptr @.str.6158, i64 5808, ptr @.str.6159) unreachable -ok8736: +ok9138: %t165 = getelementptr inbounds %S.gen.Gen, ptr %t163, i32 0, i32 15 %t166 = load i64, ptr %a155 %t167 = load { ptr, i64, i64 }, ptr %t165 %t168 = extractvalue { ptr, i64, i64 } %t167, 1 %t169 = icmp uge i64 %t166, %t168 - br i1 %t169, label %range8737, label %inrange8738 -range8737: - call void @finch_panic_index(ptr @.str.5952, i64 5573, i64 %t166, i64 %t168) + br i1 %t169, label %range9139, label %inrange9140 +range9139: + call void @finch_panic_index(ptr @.str.6160, i64 5808, i64 %t166, i64 %t168) unreachable -inrange8738: +inrange9140: %t170 = extractvalue { ptr, i64, i64 } %t167, 0 %t171 = getelementptr inbounds %S.gen.FnSig, ptr %t170, i64 %t166 %t172 = getelementptr inbounds %S.gen.FnSig, ptr %t171, i32 0, i32 16 @@ -92291,31 +96316,31 @@ inrange8738: %t174 = load { ptr, i64, i64 }, ptr %t162 %t175 = extractvalue { ptr, i64, i64 } %t174, 1 %t176 = icmp uge i64 %t173, %t175 - br i1 %t176, label %range8739, label %inrange8740 -range8739: - call void @finch_panic_index(ptr @.str.5953, i64 5573, i64 %t173, i64 %t175) + br i1 %t176, label %range9141, label %inrange9142 +range9141: + call void @finch_panic_index(ptr @.str.6161, i64 5808, i64 %t173, i64 %t175) unreachable -inrange8740: +inrange9142: %t177 = extractvalue { ptr, i64, i64 } %t174, 0 %t178 = getelementptr inbounds %S.ast.Program, ptr %t177, i64 %t173 %t179 = getelementptr inbounds %S.ast.Program, ptr %t178, i32 0, i32 8 %t180 = load ptr, ptr %a46 %t181 = icmp eq ptr %t180, null - br i1 %t181, label %panic8741, label %ok8742 -panic8741: - call void @finch_panic(ptr @.str.5954, i64 5573, ptr @.str.5955) + br i1 %t181, label %panic9143, label %ok9144 +panic9143: + call void @finch_panic(ptr @.str.6162, i64 5808, ptr @.str.6163) unreachable -ok8742: +ok9144: %t182 = getelementptr inbounds %S.gen.Gen, ptr %t180, i32 0, i32 15 %t183 = load i64, ptr %a155 %t184 = load { ptr, i64, i64 }, ptr %t182 %t185 = extractvalue { ptr, i64, i64 } %t184, 1 %t186 = icmp uge i64 %t183, %t185 - br i1 %t186, label %range8743, label %inrange8744 -range8743: - call void @finch_panic_index(ptr @.str.5956, i64 5573, i64 %t183, i64 %t185) + br i1 %t186, label %range9145, label %inrange9146 +range9145: + call void @finch_panic_index(ptr @.str.6164, i64 5808, i64 %t183, i64 %t185) unreachable -inrange8744: +inrange9146: %t187 = extractvalue { ptr, i64, i64 } %t184, 0 %t188 = getelementptr inbounds %S.gen.FnSig, ptr %t187, i64 %t183 %t189 = getelementptr inbounds %S.gen.FnSig, ptr %t188, i32 0, i32 17 @@ -92323,106 +96348,106 @@ inrange8744: %t191 = load { ptr, i64, i64 }, ptr %t179 %t192 = extractvalue { ptr, i64, i64 } %t191, 1 %t193 = icmp uge i64 %t190, %t192 - br i1 %t193, label %range8745, label %inrange8746 -range8745: - call void @finch_panic_index(ptr @.str.5957, i64 5573, i64 %t190, i64 %t192) + br i1 %t193, label %range9147, label %inrange9148 +range9147: + call void @finch_panic_index(ptr @.str.6165, i64 5808, i64 %t190, i64 %t192) unreachable -inrange8746: +inrange9148: %t194 = extractvalue { ptr, i64, i64 } %t191, 0 %t195 = getelementptr inbounds %S.ast.Node, ptr %t194, i64 %t190 %t196 = load %S.ast.Node, ptr %t195 - call void @finch.gen.fail(ptr %t159, %S.ast.Node %t196, { ptr, i64, i64 } { ptr @.str.5958, i64 82, i64 0 }) - br label %endif8732 -endif8732: - br label %endif8729 -else8728: + call void @finch.gen.fail(ptr %t159, %S.ast.Node %t196, { ptr, i64, i64 } { ptr @.str.6166, i64 82, i64 0 }) + br label %endif9134 +endif9134: + br label %endif9131 +else9130: %t197 = load i64, ptr %a155 %t198 = icmp slt i64 %t197, 0 - br i1 %t198, label %then8747, label %endif8749 -then8747: + br i1 %t198, label %then9149, label %endif9151 +then9149: %t199 = load { ptr, i64, i64 }, ptr %a2 %t200 = extractvalue { ptr, i64, i64 } %t199, 1 %t201 = icmp uge i64 0, %t200 - br i1 %t201, label %range8750, label %inrange8751 -range8750: - call void @finch_panic_index(ptr @.str.5959, i64 5576, i64 0, i64 %t200) + br i1 %t201, label %range9152, label %inrange9153 +range9152: + call void @finch_panic_index(ptr @.str.6167, i64 5811, i64 0, i64 %t200) unreachable -inrange8751: +inrange9153: %t202 = extractvalue { ptr, i64, i64 } %t199, 0 %t203 = getelementptr inbounds { ptr, i64, i64 }, ptr %t202, i64 0 %t204 = load { ptr, i64, i64 }, ptr %t203 store { ptr, i64, i64 } %t204, ptr %a206 - store { ptr, i64, i64 } { ptr @.str.5960, i64 64, i64 0 }, ptr %a207 + store { ptr, i64, i64 } { ptr @.str.6168, i64 64, i64 0 }, ptr %a207 call void @finch_str_concat(ptr %a205, ptr %a206, ptr %a207) %t208 = load { ptr, i64, i64 }, ptr %a205 %t209 = extractvalue { ptr, i64, i64 } %t208, 1 %t210 = trunc i64 %t209 to i32 %t211 = extractvalue { ptr, i64, i64 } %t208, 0 %t212 = icmp eq ptr %t211, null - %t213 = select i1 %t212, ptr @.str.5961, ptr %t211 - %t214 = call i32 (ptr, ...) @printf(ptr @.str.5962, i32 %t210, ptr %t213) + %t213 = select i1 %t212, ptr @.str.6169, ptr %t211 + %t214 = call i32 (ptr, ...) @printf(ptr @.str.6170, i32 %t210, ptr %t213) store { ptr, i64, i64 } %t208, ptr %a215 call void @finch_str_drop(ptr %a215) - %t216 = call i32 (ptr, ...) @printf(ptr @.str.5963) + %t216 = call i32 (ptr, ...) @printf(ptr @.str.6171) %t217 = trunc i64 1 to i32 %t218 = call i32 @fflush(ptr null) call void @exit(i32 %t217) - br label %endif8749 -endif8749: - br label %endif8729 -endif8729: + br label %endif9151 +endif9151: + br label %endif9131 +endif9131: store i64 0, ptr %a219 - br label %while.cond8752 -while.cond8752: + br label %while.cond9154 +while.cond9154: %t220 = load i64, ptr %a219 %t221 = load ptr, ptr %a46 %t222 = icmp eq ptr %t221, null - br i1 %t222, label %panic8755, label %ok8756 -panic8755: - call void @finch_panic(ptr @.str.5964, i64 5581, ptr @.str.5965) + br i1 %t222, label %panic9157, label %ok9158 +panic9157: + call void @finch_panic(ptr @.str.6172, i64 5816, ptr @.str.6173) unreachable -ok8756: +ok9158: %t223 = getelementptr inbounds %S.gen.Gen, ptr %t221, i32 0, i32 15 %t224 = getelementptr inbounds { ptr, i64, i64 }, ptr %t223, i32 0, i32 1 %t225 = load i64, ptr %t224 %t226 = icmp slt i64 %t220, %t225 - br i1 %t226, label %while.body8753, label %while.end8754 -while.body8753: + br i1 %t226, label %while.body9155, label %while.end9156 +while.body9155: %t227 = load ptr, ptr %a46 %t228 = load i64, ptr %a219 call void @finch.gen.define(ptr %t227, i64 %t228) %t229 = load i64, ptr %a219 %t230 = add i64 %t229, 1 store i64 %t230, ptr %a219 - br label %while.cond8752 -while.end8754: + br label %while.cond9154 +while.end9156: %t231 = load ptr, ptr %a46 %t232 = icmp eq ptr %t231, null - br i1 %t232, label %panic8757, label %ok8758 -panic8757: - call void @finch_panic(ptr @.str.5966, i64 5585, ptr @.str.5967) + br i1 %t232, label %panic9159, label %ok9160 +panic9159: + call void @finch_panic(ptr @.str.6174, i64 5820, ptr @.str.6175) unreachable -ok8758: - %t233 = getelementptr inbounds %S.gen.Gen, ptr %t231, i32 0, i32 27 +ok9160: + %t233 = getelementptr inbounds %S.gen.Gen, ptr %t231, i32 0, i32 28 %t234 = load i1, ptr %t233 - br i1 %t234, label %then8759, label %endif8761 -then8759: + br i1 %t234, label %then9161, label %endif9163 +then9161: %t235 = load ptr, ptr %a46 %t236 = icmp eq ptr %t235, null - br i1 %t236, label %panic8762, label %ok8763 -panic8762: - call void @finch_panic(ptr @.str.5968, i64 5586, ptr @.str.5969) + br i1 %t236, label %panic9164, label %ok9165 +panic9164: + call void @finch_panic(ptr @.str.6176, i64 5821, ptr @.str.6177) unreachable -ok8763: +ok9165: %t237 = getelementptr inbounds %S.gen.Gen, ptr %t235, i32 0, i32 0 %t238 = load { ptr, i64, i64 }, ptr %t237 %t239 = extractvalue { ptr, i64, i64 } %t238, 1 %t240 = icmp uge i64 0, %t239 - br i1 %t240, label %range8764, label %inrange8765 -range8764: - call void @finch_panic_index(ptr @.str.5970, i64 5586, i64 0, i64 %t239) + br i1 %t240, label %range9166, label %inrange9167 +range9166: + call void @finch_panic_index(ptr @.str.6178, i64 5821, i64 0, i64 %t239) unreachable -inrange8765: +inrange9167: %t241 = extractvalue { ptr, i64, i64 } %t238, 0 %t242 = getelementptr inbounds %S.ast.Program, ptr %t241, i64 0 %t243 = getelementptr inbounds %S.ast.Program, ptr %t242, i32 0, i32 2 @@ -92436,97 +96461,97 @@ inrange8765: call void @finch.gen.indexAll(ptr %t249, { ptr, i64, i64 } %t250) %t251 = load ptr, ptr %a46 %t252 = icmp eq ptr %t251, null - br i1 %t252, label %panic8766, label %ok8767 -panic8766: - call void @finch_panic(ptr @.str.5971, i64 5588, ptr @.str.5972) + br i1 %t252, label %panic9168, label %ok9169 +panic9168: + call void @finch_panic(ptr @.str.6179, i64 5823, ptr @.str.6180) unreachable -ok8767: - %t253 = getelementptr inbounds %S.gen.Gen, ptr %t251, i32 0, i32 28 +ok9169: + %t253 = getelementptr inbounds %S.gen.Gen, ptr %t251, i32 0, i32 29 %t254 = getelementptr inbounds { ptr, i64, i64 }, ptr %t253, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.5973, i64 1, i64 0 }, ptr %a255 + store { ptr, i64, i64 } { ptr @.str.6181, i64 1, i64 0 }, ptr %a255 call void @finch_str_join(ptr %a256, ptr %t253, ptr %a255) %t257 = load { ptr, i64, i64 }, ptr %a256 call void @finch.drop.arr_str(ptr %a248) call void @finch.drop.S_gen_Gen(ptr %a45) ret { ptr, i64, i64 } %t257 -endif8761: +endif9163: %t258 = load ptr, ptr %a46 %t259 = icmp eq ptr %t258, null - br i1 %t259, label %panic8791, label %ok8792 -panic8791: - call void @finch_panic(ptr @.str.5974, i64 5590, ptr @.str.5975) + br i1 %t259, label %panic9196, label %ok9197 +panic9196: + call void @finch_panic(ptr @.str.6182, i64 5825, ptr @.str.6183) unreachable -ok8792: +ok9197: %t260 = getelementptr inbounds %S.gen.Gen, ptr %t258, i32 0, i32 15 store i64 0, ptr %a261 - br label %each.cond8793 -each.cond8793: + br label %each.cond9198 +each.cond9198: %t262 = getelementptr inbounds { ptr, i64, i64 }, ptr %t260, i32 0, i32 1 %t263 = load i64, ptr %t262 %t264 = load i64, ptr %a261 %t265 = icmp slt i64 %t264, %t263 - br i1 %t265, label %each.body8794, label %each.end8796 -each.body8794: + br i1 %t265, label %each.body9199, label %each.end9201 +each.body9199: %t266 = load ptr, ptr %t260 %t267 = getelementptr inbounds %S.gen.FnSig, ptr %t266, i64 %t264 %t268 = load %S.gen.FnSig, ptr %t267 store %S.gen.FnSig %t268, ptr %a269 %t270 = getelementptr inbounds %S.gen.FnSig, ptr %a269, i32 0, i32 5 %t271 = load i1, ptr %t270 - br i1 %t271, label %then8797, label %endif8799 -then8797: + br i1 %t271, label %then9202, label %endif9204 +then9202: %t272 = load ptr, ptr %a46 %t273 = load %S.gen.FnSig, ptr %a269 %t274 = call { ptr, i64, i64 } @finch.gen.exportWrapper(ptr %t272, %S.gen.FnSig %t273) store { ptr, i64, i64 } %t274, ptr %a275 call void @finch_str_drop(ptr %a275) - br label %endif8799 -endif8799: - br label %each.step8795 -each.step8795: + br label %endif9204 +endif9204: + br label %each.step9200 +each.step9200: %t276 = load i64, ptr %a261 %t277 = add i64 %t276, 1 store i64 %t277, ptr %a261 - br label %each.cond8793 -each.end8796: + br label %each.cond9198 +each.end9201: %t278 = load i1, ptr %a7 - br i1 %t278, label %then8800, label %endif8802 -then8800: - store { ptr, i64, i64 } { ptr @.str.5976, i64 0, i64 0 }, ptr %a279 + br i1 %t278, label %then9205, label %endif9207 +then9205: + store { ptr, i64, i64 } { ptr @.str.6184, i64 0, i64 0 }, ptr %a279 %t280 = load ptr, ptr %a46 %t281 = icmp eq ptr %t280, null - br i1 %t281, label %panic8803, label %ok8804 -panic8803: - call void @finch_panic(ptr @.str.5977, i64 5598, ptr @.str.5978) + br i1 %t281, label %panic9208, label %ok9209 +panic9208: + call void @finch_panic(ptr @.str.6185, i64 5833, ptr @.str.6186) unreachable -ok8804: - %t282 = getelementptr inbounds %S.gen.Gen, ptr %t280, i32 0, i32 30 +ok9209: + %t282 = getelementptr inbounds %S.gen.Gen, ptr %t280, i32 0, i32 31 %t283 = getelementptr inbounds %S.platform.Target, ptr %t282, i32 0, i32 1 %t284 = load i1, ptr %t283 - br i1 %t284, label %then8805, label %endif8807 -then8805: + br i1 %t284, label %then9210, label %endif9212 +then9210: %t285 = load { ptr, i64, i64 }, ptr %a279 - store { ptr, i64, i64 } { ptr @.str.5979, i64 10, i64 0 }, ptr %a279 + store { ptr, i64, i64 } { ptr @.str.6187, i64 10, i64 0 }, ptr %a279 store { ptr, i64, i64 } %t285, ptr %a286 call void @finch_str_drop(ptr %a286) - br label %endif8807 -endif8807: + br label %endif9212 +endif9212: %t287 = load ptr, ptr %a46 %t288 = icmp eq ptr %t287, null - br i1 %t288, label %panic8808, label %ok8809 -panic8808: - call void @finch_panic(ptr @.str.5980, i64 5601, ptr @.str.5981) + br i1 %t288, label %panic9213, label %ok9214 +panic9213: + call void @finch_panic(ptr @.str.6188, i64 5836, ptr @.str.6189) unreachable -ok8809: +ok9214: %t289 = getelementptr inbounds %S.gen.Gen, ptr %t287, i32 0, i32 3 %t290 = getelementptr inbounds { ptr, i64, i64 }, ptr %t289, i32 0, i32 1 %t291 = load { ptr, i64, i64 }, ptr %a279 - store { ptr, i64, i64 } { ptr @.str.5982, i64 6, i64 0 }, ptr %a293 + store { ptr, i64, i64 } { ptr @.str.6190, i64 6, i64 0 }, ptr %a293 store { ptr, i64, i64 } %t291, ptr %a294 call void @finch_str_concat(ptr %a292, ptr %a293, ptr %a294) %t295 = load { ptr, i64, i64 }, ptr %a292 store { ptr, i64, i64 } %t295, ptr %a297 - store { ptr, i64, i64 } { ptr @.str.5983, i64 107, i64 0 }, ptr %a298 + store { ptr, i64, i64 } { ptr @.str.6191, i64 107, i64 0 }, ptr %a298 call void @finch_str_concat(ptr %a296, ptr %a297, ptr %a298) store { ptr, i64, i64 } %t295, ptr %a299 call void @finch_str_drop(ptr %a299) @@ -92543,24 +96568,24 @@ ok8809: call void @finch_str_drop(ptr %a279) call void @finch.drop.S_gen_Gen(ptr %a45) ret { ptr, i64, i64 } %t306 -endif8802: +endif9207: %t307 = load ptr, ptr %a46 %t308 = icmp eq ptr %t307, null - br i1 %t308, label %panic8810, label %ok8811 -panic8810: - call void @finch_panic(ptr @.str.5984, i64 5605, ptr @.str.5985) + br i1 %t308, label %panic9215, label %ok9216 +panic9215: + call void @finch_panic(ptr @.str.6192, i64 5840, ptr @.str.6193) unreachable -ok8811: +ok9216: %t309 = getelementptr inbounds %S.gen.Gen, ptr %t307, i32 0, i32 15 %t310 = load i64, ptr %a155 %t311 = load { ptr, i64, i64 }, ptr %t309 %t312 = extractvalue { ptr, i64, i64 } %t311, 1 %t313 = icmp uge i64 %t310, %t312 - br i1 %t313, label %range8812, label %inrange8813 -range8812: - call void @finch_panic_index(ptr @.str.5986, i64 5605, i64 %t310, i64 %t312) + br i1 %t313, label %range9217, label %inrange9218 +range9217: + call void @finch_panic_index(ptr @.str.6194, i64 5840, i64 %t310, i64 %t312) unreachable -inrange8813: +inrange9218: %t314 = extractvalue { ptr, i64, i64 } %t311, 0 %t315 = getelementptr inbounds %S.gen.FnSig, ptr %t314, i64 %t310 %t316 = load %S.gen.FnSig, ptr %t315 @@ -92571,14 +96596,14 @@ inrange8813: %t321 = load ptr, ptr %a46 %t322 = load %S.gen.FnSig, ptr %a320 %t323 = call { ptr, i64, i64 } @finch.gen.retTy(ptr %t321, %S.gen.FnSig %t322) - store { ptr, i64, i64 } { ptr @.str.5987, i64 5, i64 0 }, ptr %a325 + store { ptr, i64, i64 } { ptr @.str.6195, i64 5, i64 0 }, ptr %a325 store { ptr, i64, i64 } %t323, ptr %a326 call void @finch_str_concat(ptr %a324, ptr %a325, ptr %a326) store { ptr, i64, i64 } %t323, ptr %a327 call void @finch_str_drop(ptr %a327) %t328 = load { ptr, i64, i64 }, ptr %a324 store { ptr, i64, i64 } %t328, ptr %a330 - store { ptr, i64, i64 } { ptr @.str.5988, i64 1, i64 0 }, ptr %a331 + store { ptr, i64, i64 } { ptr @.str.6196, i64 1, i64 0 }, ptr %a331 call void @finch_str_concat(ptr %a329, ptr %a330, ptr %a331) store { ptr, i64, i64 } %t328, ptr %a332 call void @finch_str_drop(ptr %a332) @@ -92592,50 +96617,50 @@ inrange8813: call void @finch_str_drop(ptr %a339) %t340 = load { ptr, i64, i64 }, ptr %a336 store { ptr, i64, i64 } %t340, ptr %a342 - store { ptr, i64, i64 } { ptr @.str.5989, i64 1, i64 0 }, ptr %a343 + store { ptr, i64, i64 } { ptr @.str.6197, i64 1, i64 0 }, ptr %a343 call void @finch_str_concat(ptr %a341, ptr %a342, ptr %a343) store { ptr, i64, i64 } %t340, ptr %a344 call void @finch_str_drop(ptr %a344) %t345 = load { ptr, i64, i64 }, ptr %a341 store { ptr, i64, i64 } %t345, ptr %a346 - store { ptr, i64, i64 } { ptr @.str.5990, i64 0, i64 0 }, ptr %a347 + store { ptr, i64, i64 } { ptr @.str.6198, i64 0, i64 0 }, ptr %a347 %t348 = getelementptr inbounds %S.gen.FnSig, ptr %a320, i32 0, i32 13 %t349 = getelementptr inbounds { ptr, i64, i64 }, ptr %t348, i32 0, i32 1 %t350 = load i64, ptr %t349 %t351 = icmp eq i64 %t350, 1 - br i1 %t351, label %then8814, label %endif8816 -then8814: + br i1 %t351, label %then9219, label %endif9221 +then9219: %t352 = load { ptr, i64, i64 }, ptr %a347 - store { ptr, i64, i64 } { ptr @.str.5991, i64 133, i64 0 }, ptr %a347 + store { ptr, i64, i64 } { ptr @.str.6199, i64 133, i64 0 }, ptr %a347 store { ptr, i64, i64 } %t352, ptr %a353 call void @finch_str_drop(ptr %a353) %t354 = load { ptr, i64, i64 }, ptr %a346 store { ptr, i64, i64 } %t354, ptr %a356 - store { ptr, i64, i64 } { ptr @.str.5992, i64 20, i64 0 }, ptr %a357 + store { ptr, i64, i64 } { ptr @.str.6200, i64 20, i64 0 }, ptr %a357 call void @finch_str_concat(ptr %a355, ptr %a356, ptr %a357) %t358 = load { ptr, i64, i64 }, ptr %a355 %t359 = load { ptr, i64, i64 }, ptr %a346 store { ptr, i64, i64 } %t358, ptr %a346 store { ptr, i64, i64 } %t359, ptr %a360 call void @finch_str_drop(ptr %a360) - br label %endif8816 -endif8816: + br label %endif9221 +endif9221: %t361 = load { ptr, i64, i64 }, ptr %a346 store { ptr, i64, i64 } %t361, ptr %a363 - store { ptr, i64, i64 } { ptr @.str.5993, i64 1, i64 0 }, ptr %a364 + store { ptr, i64, i64 } { ptr @.str.6201, i64 1, i64 0 }, ptr %a364 call void @finch_str_concat(ptr %a362, ptr %a363, ptr %a364) %t365 = load { ptr, i64, i64 }, ptr %a362 %t366 = load { ptr, i64, i64 }, ptr %a346 store { ptr, i64, i64 } %t365, ptr %a346 store { ptr, i64, i64 } %t366, ptr %a367 call void @finch_str_drop(ptr %a367) - store { ptr, i64, i64 } { ptr @.str.5994, i64 12, i64 0 }, ptr %a368 + store { ptr, i64, i64 } { ptr @.str.6202, i64 12, i64 0 }, ptr %a368 %t369 = getelementptr inbounds %S.gen.FnSig, ptr %a320, i32 0, i32 9 %t370 = load i1, ptr %t369 - br i1 %t370, label %then8817, label %else8818 -then8817: + br i1 %t370, label %then9222, label %else9223 +then9222: %t371 = load { ptr, i64, i64 }, ptr %a346 - store { ptr, i64, i64 } { ptr @.str.5995, i64 5, i64 0 }, ptr %a373 + store { ptr, i64, i64 } { ptr @.str.6203, i64 5, i64 0 }, ptr %a373 store { ptr, i64, i64 } %t371, ptr %a374 call void @finch_str_concat(ptr %a372, ptr %a373, ptr %a374) %t375 = load { ptr, i64, i64 }, ptr %a372 @@ -92645,7 +96670,7 @@ then8817: call void @finch_str_drop(ptr %a377) %t378 = load { ptr, i64, i64 }, ptr %a347 store { ptr, i64, i64 } %t378, ptr %a380 - store { ptr, i64, i64 } { ptr @.str.5996, i64 2, i64 0 }, ptr %a381 + store { ptr, i64, i64 } { ptr @.str.6204, i64 2, i64 0 }, ptr %a381 call void @finch_str_concat(ptr %a379, ptr %a380, ptr %a381) %t382 = load { ptr, i64, i64 }, ptr %a379 %t383 = load { ptr, i64, i64 }, ptr %a346 @@ -92656,7 +96681,7 @@ then8817: call void @finch_str_drop(ptr %a387) %t388 = load { ptr, i64, i64 }, ptr %a384 store { ptr, i64, i64 } %t388, ptr %a390 - store { ptr, i64, i64 } { ptr @.str.5997, i64 1, i64 0 }, ptr %a391 + store { ptr, i64, i64 } { ptr @.str.6205, i64 1, i64 0 }, ptr %a391 call void @finch_str_concat(ptr %a389, ptr %a390, ptr %a391) store { ptr, i64, i64 } %t388, ptr %a392 call void @finch_str_drop(ptr %a392) @@ -92666,7 +96691,7 @@ then8817: store { ptr, i64, i64 } %t394, ptr %a395 call void @finch_str_drop(ptr %a395) %t396 = load { ptr, i64, i64 }, ptr %a346 - store { ptr, i64, i64 } { ptr @.str.5998, i64 0, i64 0 }, ptr %a346 + store { ptr, i64, i64 } { ptr @.str.6206, i64 0, i64 0 }, ptr %a346 store { ptr, i64, i64 } %t396, ptr %a397 call void @finch_str_drop(ptr %a397) %t398 = load ptr, ptr %a46 @@ -92675,7 +96700,7 @@ then8817: store { ptr, i64, i64 } %t400, ptr %a401 %t402 = load { ptr, i64, i64 }, ptr %a347 store { ptr, i64, i64 } %t402, ptr %a404 - store { ptr, i64, i64 } { ptr @.str.5999, i64 21, i64 0 }, ptr %a405 + store { ptr, i64, i64 } { ptr @.str.6207, i64 21, i64 0 }, ptr %a405 call void @finch_str_concat(ptr %a403, ptr %a404, ptr %a405) %t406 = load { ptr, i64, i64 }, ptr %a403 %t407 = load { ptr, i64, i64 }, ptr %a401 @@ -92686,7 +96711,7 @@ then8817: call void @finch_str_drop(ptr %a411) %t412 = load { ptr, i64, i64 }, ptr %a408 store { ptr, i64, i64 } %t412, ptr %a414 - store { ptr, i64, i64 } { ptr @.str.6000, i64 62, i64 0 }, ptr %a415 + store { ptr, i64, i64 } { ptr @.str.6208, i64 62, i64 0 }, ptr %a415 call void @finch_str_concat(ptr %a413, ptr %a414, ptr %a415) store { ptr, i64, i64 } %t412, ptr %a416 call void @finch_str_drop(ptr %a416) @@ -92697,7 +96722,7 @@ then8817: call void @finch_str_drop(ptr %a419) %t420 = load { ptr, i64, i64 }, ptr %a347 store { ptr, i64, i64 } %t420, ptr %a422 - store { ptr, i64, i64 } { ptr @.str.6001, i64 20, i64 0 }, ptr %a423 + store { ptr, i64, i64 } { ptr @.str.6209, i64 20, i64 0 }, ptr %a423 call void @finch_str_concat(ptr %a421, ptr %a422, ptr %a423) %t424 = load { ptr, i64, i64 }, ptr %a421 %t425 = load { ptr, i64, i64 }, ptr %a401 @@ -92708,7 +96733,7 @@ then8817: call void @finch_str_drop(ptr %a429) %t430 = load { ptr, i64, i64 }, ptr %a426 store { ptr, i64, i64 } %t430, ptr %a432 - store { ptr, i64, i64 } { ptr @.str.6002, i64 78, i64 0 }, ptr %a433 + store { ptr, i64, i64 } { ptr @.str.6210, i64 78, i64 0 }, ptr %a433 call void @finch_str_concat(ptr %a431, ptr %a432, ptr %a433) store { ptr, i64, i64 } %t430, ptr %a434 call void @finch_str_drop(ptr %a434) @@ -92719,7 +96744,7 @@ then8817: call void @finch_str_drop(ptr %a437) %t438 = load { ptr, i64, i64 }, ptr %a347 store { ptr, i64, i64 } %t438, ptr %a440 - store { ptr, i64, i64 } { ptr @.str.6003, i64 62, i64 0 }, ptr %a441 + store { ptr, i64, i64 } { ptr @.str.6211, i64 62, i64 0 }, ptr %a441 call void @finch_str_concat(ptr %a439, ptr %a440, ptr %a441) %t442 = load { ptr, i64, i64 }, ptr %a439 %t443 = load { ptr, i64, i64 }, ptr %a347 @@ -92730,18 +96755,18 @@ then8817: %t446 = getelementptr inbounds %S.ast.Type, ptr %t445, i32 0, i32 0 %t447 = load { ptr, i64, i64 }, ptr %t446 store { ptr, i64, i64 } %t447, ptr %a448 - store { ptr, i64, i64 } { ptr @.str.6004, i64 3, i64 0 }, ptr %a449 + store { ptr, i64, i64 } { ptr @.str.6212, i64 3, i64 0 }, ptr %a449 %t450 = call i32 @finch_str_eq(ptr %a448, ptr %a449) %t451 = icmp ne i32 %t450, 0 - br i1 %t451, label %then8820, label %endif8822 -then8820: + br i1 %t451, label %then9225, label %endif9227 +then9225: %t452 = load { ptr, i64, i64 }, ptr %a401 - store { ptr, i64, i64 } { ptr @.str.6005, i64 20, i64 0 }, ptr %a454 + store { ptr, i64, i64 } { ptr @.str.6213, i64 20, i64 0 }, ptr %a454 store { ptr, i64, i64 } %t452, ptr %a455 call void @finch_str_concat(ptr %a453, ptr %a454, ptr %a455) %t456 = load { ptr, i64, i64 }, ptr %a453 store { ptr, i64, i64 } %t456, ptr %a458 - store { ptr, i64, i64 } { ptr @.str.6006, i64 53, i64 0 }, ptr %a459 + store { ptr, i64, i64 } { ptr @.str.6214, i64 53, i64 0 }, ptr %a459 call void @finch_str_concat(ptr %a457, ptr %a458, ptr %a459) store { ptr, i64, i64 } %t456, ptr %a460 call void @finch_str_drop(ptr %a460) @@ -92750,22 +96775,22 @@ then8820: store { ptr, i64, i64 } %t461, ptr %a368 store { ptr, i64, i64 } %t462, ptr %a463 call void @finch_str_drop(ptr %a463) - br label %endif8822 -endif8822: + br label %endif9227 +endif9227: call void @finch_str_drop(ptr %a401) - br label %endif8819 -else8818: + br label %endif9224 +else9223: %t464 = getelementptr inbounds %S.gen.FnSig, ptr %a320, i32 0, i32 12 %t465 = getelementptr inbounds %S.ast.Type, ptr %t464, i32 0, i32 0 %t466 = load { ptr, i64, i64 }, ptr %t465 store { ptr, i64, i64 } %t466, ptr %a467 - store { ptr, i64, i64 } { ptr @.str.6007, i64 3, i64 0 }, ptr %a468 + store { ptr, i64, i64 } { ptr @.str.6215, i64 3, i64 0 }, ptr %a468 %t469 = call i32 @finch_str_eq(ptr %a467, ptr %a468) %t470 = icmp ne i32 %t469, 0 - br i1 %t470, label %then8823, label %endif8825 -then8823: + br i1 %t470, label %then9228, label %endif9230 +then9228: %t471 = load { ptr, i64, i64 }, ptr %a346 - store { ptr, i64, i64 } { ptr @.str.6008, i64 5, i64 0 }, ptr %a473 + store { ptr, i64, i64 } { ptr @.str.6216, i64 5, i64 0 }, ptr %a473 store { ptr, i64, i64 } %t471, ptr %a474 call void @finch_str_concat(ptr %a472, ptr %a473, ptr %a474) %t475 = load { ptr, i64, i64 }, ptr %a472 @@ -92774,29 +96799,29 @@ then8823: store { ptr, i64, i64 } %t476, ptr %a477 call void @finch_str_drop(ptr %a477) %t478 = load { ptr, i64, i64 }, ptr %a368 - store { ptr, i64, i64 } { ptr @.str.6009, i64 46, i64 0 }, ptr %a368 + store { ptr, i64, i64 } { ptr @.str.6217, i64 46, i64 0 }, ptr %a368 store { ptr, i64, i64 } %t478, ptr %a479 call void @finch_str_drop(ptr %a479) - br label %endif8825 -endif8825: - br label %endif8819 -endif8819: + br label %endif9230 +endif9230: + br label %endif9224 +endif9224: %t480 = load ptr, ptr %a46 %t481 = icmp eq ptr %t480, null - br i1 %t481, label %panic8826, label %ok8827 -panic8826: - call void @finch_panic(ptr @.str.6010, i64 5630, ptr @.str.6011) + br i1 %t481, label %panic9231, label %ok9232 +panic9231: + call void @finch_panic(ptr @.str.6218, i64 5865, ptr @.str.6219) unreachable -ok8827: +ok9232: %t482 = getelementptr inbounds %S.gen.Gen, ptr %t480, i32 0, i32 3 %t483 = getelementptr inbounds { ptr, i64, i64 }, ptr %t482, i32 0, i32 1 %t484 = load { ptr, i64, i64 }, ptr %a347 - store { ptr, i64, i64 } { ptr @.str.6012, i64 48, i64 0 }, ptr %a486 + store { ptr, i64, i64 } { ptr @.str.6220, i64 48, i64 0 }, ptr %a486 store { ptr, i64, i64 } %t484, ptr %a487 call void @finch_str_concat(ptr %a485, ptr %a486, ptr %a487) %t488 = load { ptr, i64, i64 }, ptr %a485 store { ptr, i64, i64 } %t488, ptr %a490 - store { ptr, i64, i64 } { ptr @.str.6013, i64 2, i64 0 }, ptr %a491 + store { ptr, i64, i64 } { ptr @.str.6221, i64 2, i64 0 }, ptr %a491 call void @finch_str_concat(ptr %a489, ptr %a490, ptr %a491) store { ptr, i64, i64 } %t488, ptr %a492 call void @finch_str_drop(ptr %a492) @@ -92809,7 +96834,7 @@ ok8827: call void @finch_str_drop(ptr %a498) %t499 = load { ptr, i64, i64 }, ptr %a495 store { ptr, i64, i64 } %t499, ptr %a501 - store { ptr, i64, i64 } { ptr @.str.6014, i64 1, i64 0 }, ptr %a502 + store { ptr, i64, i64 } { ptr @.str.6222, i64 1, i64 0 }, ptr %a502 call void @finch_str_concat(ptr %a500, ptr %a501, ptr %a502) store { ptr, i64, i64 } %t499, ptr %a503 call void @finch_str_drop(ptr %a503) @@ -92822,7 +96847,7 @@ ok8827: call void @finch_str_drop(ptr %a509) %t510 = load { ptr, i64, i64 }, ptr %a506 store { ptr, i64, i64 } %t510, ptr %a512 - store { ptr, i64, i64 } { ptr @.str.6015, i64 2, i64 0 }, ptr %a513 + store { ptr, i64, i64 } { ptr @.str.6223, i64 2, i64 0 }, ptr %a513 call void @finch_str_concat(ptr %a511, ptr %a512, ptr %a513) store { ptr, i64, i64 } %t510, ptr %a514 call void @finch_str_drop(ptr %a514) @@ -92879,24 +96904,24 @@ entry: define internal { ptr, i64, i64 } @finch.docs.builtins() { entry: - %t1 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6016, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6017, i64 16, i64 0 }, { ptr, i64, i64 } { ptr @.str.6018, i64 78, i64 0 }) - %t2 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6019, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6020, i64 31, i64 0 }, { ptr, i64, i64 } { ptr @.str.6021, i64 77, i64 0 }) - %t3 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6022, i64 9, i64 0 }, { ptr, i64, i64 } { ptr @.str.6023, i64 26, i64 0 }, { ptr, i64, i64 } { ptr @.str.6024, i64 121, i64 0 }) - %t4 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6025, i64 10, i64 0 }, { ptr, i64, i64 } { ptr @.str.6026, i64 38, i64 0 }, { ptr, i64, i64 } { ptr @.str.6027, i64 83, i64 0 }) - %t5 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6028, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6029, i64 29, i64 0 }, { ptr, i64, i64 } { ptr @.str.6030, i64 29, i64 0 }) - %t6 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6031, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6032, i64 29, i64 0 }, { ptr, i64, i64 } { ptr @.str.6033, i64 73, i64 0 }) - %t7 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6034, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6035, i64 18, i64 0 }, { ptr, i64, i64 } { ptr @.str.6036, i64 98, i64 0 }) - %t8 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6037, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6038, i64 25, i64 0 }, { ptr, i64, i64 } { ptr @.str.6039, i64 66, i64 0 }) - %t9 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6040, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6041, i64 14, i64 0 }, { ptr, i64, i64 } { ptr @.str.6042, i64 48, i64 0 }) - %t10 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6043, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6044, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.6045, i64 77, i64 0 }) - %t11 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6046, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6047, i64 20, i64 0 }, { ptr, i64, i64 } { ptr @.str.6048, i64 66, i64 0 }) - %t12 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6049, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6050, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6051, i64 73, i64 0 }) - %t13 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6052, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6053, i64 13, i64 0 }, { ptr, i64, i64 } { ptr @.str.6054, i64 61, i64 0 }) - %t14 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6055, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6056, i64 13, i64 0 }, { ptr, i64, i64 } { ptr @.str.6057, i64 130, i64 0 }) - %t15 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6058, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6059, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.6060, i64 75, i64 0 }) - %t16 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6061, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6062, i64 19, i64 0 }, { ptr, i64, i64 } { ptr @.str.6063, i64 29, i64 0 }) - %t17 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6064, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6065, i64 19, i64 0 }, { ptr, i64, i64 } { ptr @.str.6066, i64 26, i64 0 }) - %t18 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6067, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6068, i64 13, i64 0 }, { ptr, i64, i64 } { ptr @.str.6069, i64 88, i64 0 }) + %t1 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6224, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6225, i64 16, i64 0 }, { ptr, i64, i64 } { ptr @.str.6226, i64 78, i64 0 }) + %t2 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6227, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6228, i64 31, i64 0 }, { ptr, i64, i64 } { ptr @.str.6229, i64 77, i64 0 }) + %t3 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6230, i64 9, i64 0 }, { ptr, i64, i64 } { ptr @.str.6231, i64 26, i64 0 }, { ptr, i64, i64 } { ptr @.str.6232, i64 121, i64 0 }) + %t4 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6233, i64 10, i64 0 }, { ptr, i64, i64 } { ptr @.str.6234, i64 38, i64 0 }, { ptr, i64, i64 } { ptr @.str.6235, i64 83, i64 0 }) + %t5 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6236, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6237, i64 29, i64 0 }, { ptr, i64, i64 } { ptr @.str.6238, i64 29, i64 0 }) + %t6 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6239, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6240, i64 29, i64 0 }, { ptr, i64, i64 } { ptr @.str.6241, i64 73, i64 0 }) + %t7 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6242, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6243, i64 18, i64 0 }, { ptr, i64, i64 } { ptr @.str.6244, i64 98, i64 0 }) + %t8 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6245, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6246, i64 25, i64 0 }, { ptr, i64, i64 } { ptr @.str.6247, i64 66, i64 0 }) + %t9 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6248, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6249, i64 14, i64 0 }, { ptr, i64, i64 } { ptr @.str.6250, i64 48, i64 0 }) + %t10 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6251, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6252, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.6253, i64 77, i64 0 }) + %t11 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6254, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6255, i64 20, i64 0 }, { ptr, i64, i64 } { ptr @.str.6256, i64 66, i64 0 }) + %t12 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6257, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6258, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6259, i64 73, i64 0 }) + %t13 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6260, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6261, i64 13, i64 0 }, { ptr, i64, i64 } { ptr @.str.6262, i64 61, i64 0 }) + %t14 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6263, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6264, i64 13, i64 0 }, { ptr, i64, i64 } { ptr @.str.6265, i64 130, i64 0 }) + %t15 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6266, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6267, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.6268, i64 75, i64 0 }) + %t16 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6269, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6270, i64 19, i64 0 }, { ptr, i64, i64 } { ptr @.str.6271, i64 29, i64 0 }) + %t17 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6272, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6273, i64 19, i64 0 }, { ptr, i64, i64 } { ptr @.str.6274, i64 26, i64 0 }) + %t18 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6275, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6276, i64 13, i64 0 }, { ptr, i64, i64 } { ptr @.str.6277, i64 88, i64 0 }) %t19 = mul i64 18, ptrtoint (ptr getelementptr (%S.docs.Doc, ptr null, i32 1) to i64) %t20 = call ptr @finch_alloc(i64 %t19) %t21 = getelementptr inbounds %S.docs.Doc, ptr %t20, i64 0 @@ -92944,20 +96969,20 @@ entry: define internal { ptr, i64, i64 } @finch.docs.arrayMethods() { entry: - %t1 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6070, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6071, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6072, i64 23, i64 0 }) - %t2 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6073, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6074, i64 14, i64 0 }, { ptr, i64, i64 } { ptr @.str.6075, i64 40, i64 0 }) - %t3 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6076, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6077, i64 9, i64 0 }, { ptr, i64, i64 } { ptr @.str.6078, i64 18, i64 0 }) - %t4 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6079, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6080, i64 10, i64 0 }, { ptr, i64, i64 } { ptr @.str.6081, i64 43, i64 0 }) - %t5 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6082, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6083, i64 18, i64 0 }, { ptr, i64, i64 } { ptr @.str.6084, i64 38, i64 0 }) - %t6 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6085, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6086, i64 18, i64 0 }, { ptr, i64, i64 } { ptr @.str.6087, i64 37, i64 0 }) - %t7 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6088, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6089, i64 7, i64 0 }, { ptr, i64, i64 } { ptr @.str.6090, i64 19, i64 0 }) - %t8 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6091, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6092, i64 13, i64 0 }, { ptr, i64, i64 } { ptr @.str.6093, i64 46, i64 0 }) - %t9 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6094, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6095, i64 16, i64 0 }, { ptr, i64, i64 } { ptr @.str.6096, i64 22, i64 0 }) - %t10 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6097, i64 8, i64 0 }, { ptr, i64, i64 } { ptr @.str.6098, i64 21, i64 0 }, { ptr, i64, i64 } { ptr @.str.6099, i64 18, i64 0 }) - %t11 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6100, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6101, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6102, i64 37, i64 0 }) - %t12 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6103, i64 7, i64 0 }, { ptr, i64, i64 } { ptr @.str.6104, i64 9, i64 0 }, { ptr, i64, i64 } { ptr @.str.6105, i64 18, i64 0 }) - %t13 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6106, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6107, i64 32, i64 0 }, { ptr, i64, i64 } { ptr @.str.6108, i64 45, i64 0 }) - %t14 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6109, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6110, i64 20, i64 0 }, { ptr, i64, i64 } { ptr @.str.6111, i64 47, i64 0 }) + %t1 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6278, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6279, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6280, i64 23, i64 0 }) + %t2 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6281, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6282, i64 14, i64 0 }, { ptr, i64, i64 } { ptr @.str.6283, i64 40, i64 0 }) + %t3 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6284, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6285, i64 9, i64 0 }, { ptr, i64, i64 } { ptr @.str.6286, i64 18, i64 0 }) + %t4 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6287, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6288, i64 10, i64 0 }, { ptr, i64, i64 } { ptr @.str.6289, i64 43, i64 0 }) + %t5 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6290, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6291, i64 18, i64 0 }, { ptr, i64, i64 } { ptr @.str.6292, i64 38, i64 0 }) + %t6 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6293, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6294, i64 18, i64 0 }, { ptr, i64, i64 } { ptr @.str.6295, i64 37, i64 0 }) + %t7 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6296, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6297, i64 7, i64 0 }, { ptr, i64, i64 } { ptr @.str.6298, i64 19, i64 0 }) + %t8 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6299, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6300, i64 13, i64 0 }, { ptr, i64, i64 } { ptr @.str.6301, i64 46, i64 0 }) + %t9 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6302, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6303, i64 16, i64 0 }, { ptr, i64, i64 } { ptr @.str.6304, i64 22, i64 0 }) + %t10 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6305, i64 8, i64 0 }, { ptr, i64, i64 } { ptr @.str.6306, i64 21, i64 0 }, { ptr, i64, i64 } { ptr @.str.6307, i64 18, i64 0 }) + %t11 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6308, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6309, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6310, i64 37, i64 0 }) + %t12 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6311, i64 7, i64 0 }, { ptr, i64, i64 } { ptr @.str.6312, i64 9, i64 0 }, { ptr, i64, i64 } { ptr @.str.6313, i64 18, i64 0 }) + %t13 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6314, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6315, i64 32, i64 0 }, { ptr, i64, i64 } { ptr @.str.6316, i64 45, i64 0 }) + %t14 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6317, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6318, i64 20, i64 0 }, { ptr, i64, i64 } { ptr @.str.6319, i64 47, i64 0 }) %t15 = mul i64 14, ptrtoint (ptr getelementptr (%S.docs.Doc, ptr null, i32 1) to i64) %t16 = call ptr @finch_alloc(i64 %t15) %t17 = getelementptr inbounds %S.docs.Doc, ptr %t16, i64 0 @@ -92997,20 +97022,20 @@ entry: define internal { ptr, i64, i64 } @finch.docs.strMethods() { entry: - %t1 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6112, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6113, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6114, i64 20, i64 0 }) - %t2 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6115, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6116, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.6117, i64 59, i64 0 }) - %t3 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6118, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6119, i64 30, i64 0 }, { ptr, i64, i64 } { ptr @.str.6120, i64 29, i64 0 }) - %t4 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6121, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6122, i64 18, i64 0 }, { ptr, i64, i64 } { ptr @.str.6123, i64 22, i64 0 }) - %t5 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6124, i64 8, i64 0 }, { ptr, i64, i64 } { ptr @.str.6125, i64 23, i64 0 }, { ptr, i64, i64 } { ptr @.str.6126, i64 24, i64 0 }) - %t6 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6127, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6128, i64 26, i64 0 }, { ptr, i64, i64 } { ptr @.str.6129, i64 27, i64 0 }) - %t7 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6130, i64 9, i64 0 }, { ptr, i64, i64 } { ptr @.str.6131, i64 24, i64 0 }, { ptr, i64, i64 } { ptr @.str.6132, i64 25, i64 0 }) - %t8 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6133, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6134, i64 23, i64 0 }, { ptr, i64, i64 } { ptr @.str.6135, i64 62, i64 0 }) - %t9 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6136, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6137, i64 13, i64 0 }, { ptr, i64, i64 } { ptr @.str.6138, i64 41, i64 0 }) - %t10 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6139, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6140, i64 14, i64 0 }, { ptr, i64, i64 } { ptr @.str.6141, i64 24, i64 0 }) - %t11 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6142, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6143, i64 14, i64 0 }, { ptr, i64, i64 } { ptr @.str.6144, i64 24, i64 0 }) - %t12 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6145, i64 7, i64 0 }, { ptr, i64, i64 } { ptr @.str.6146, i64 32, i64 0 }, { ptr, i64, i64 } { ptr @.str.6147, i64 26, i64 0 }) - %t13 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6148, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6149, i64 20, i64 0 }, { ptr, i64, i64 } { ptr @.str.6150, i64 17, i64 0 }) - %t14 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6151, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6152, i64 15, i64 0 }, { ptr, i64, i64 } { ptr @.str.6153, i64 22, i64 0 }) + %t1 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6320, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6321, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6322, i64 20, i64 0 }) + %t2 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6323, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6324, i64 17, i64 0 }, { ptr, i64, i64 } { ptr @.str.6325, i64 59, i64 0 }) + %t3 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6326, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6327, i64 30, i64 0 }, { ptr, i64, i64 } { ptr @.str.6328, i64 29, i64 0 }) + %t4 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6329, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6330, i64 18, i64 0 }, { ptr, i64, i64 } { ptr @.str.6331, i64 22, i64 0 }) + %t5 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6332, i64 8, i64 0 }, { ptr, i64, i64 } { ptr @.str.6333, i64 23, i64 0 }, { ptr, i64, i64 } { ptr @.str.6334, i64 24, i64 0 }) + %t6 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6335, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6336, i64 26, i64 0 }, { ptr, i64, i64 } { ptr @.str.6337, i64 27, i64 0 }) + %t7 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6338, i64 9, i64 0 }, { ptr, i64, i64 } { ptr @.str.6339, i64 24, i64 0 }, { ptr, i64, i64 } { ptr @.str.6340, i64 25, i64 0 }) + %t8 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6341, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6342, i64 23, i64 0 }, { ptr, i64, i64 } { ptr @.str.6343, i64 62, i64 0 }) + %t9 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6344, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6345, i64 13, i64 0 }, { ptr, i64, i64 } { ptr @.str.6346, i64 41, i64 0 }) + %t10 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6347, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6348, i64 14, i64 0 }, { ptr, i64, i64 } { ptr @.str.6349, i64 24, i64 0 }) + %t11 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6350, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6351, i64 14, i64 0 }, { ptr, i64, i64 } { ptr @.str.6352, i64 24, i64 0 }) + %t12 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6353, i64 7, i64 0 }, { ptr, i64, i64 } { ptr @.str.6354, i64 32, i64 0 }, { ptr, i64, i64 } { ptr @.str.6355, i64 26, i64 0 }) + %t13 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6356, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6357, i64 20, i64 0 }, { ptr, i64, i64 } { ptr @.str.6358, i64 17, i64 0 }) + %t14 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6359, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6360, i64 15, i64 0 }, { ptr, i64, i64 } { ptr @.str.6361, i64 22, i64 0 }) %t15 = mul i64 14, ptrtoint (ptr getelementptr (%S.docs.Doc, ptr null, i32 1) to i64) %t16 = call ptr @finch_alloc(i64 %t15) %t17 = getelementptr inbounds %S.docs.Doc, ptr %t16, i64 0 @@ -93050,13 +97075,13 @@ entry: define internal { ptr, i64, i64 } @finch.docs.mapMethods() { entry: - %t1 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6154, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6155, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6156, i64 19, i64 0 }) - %t2 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6157, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6158, i64 18, i64 0 }, { ptr, i64, i64 } { ptr @.str.6159, i64 22, i64 0 }) - %t3 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6160, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6161, i64 26, i64 0 }, { ptr, i64, i64 } { ptr @.str.6162, i64 53, i64 0 }) - %t4 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6163, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6164, i64 21, i64 0 }, { ptr, i64, i64 } { ptr @.str.6165, i64 52, i64 0 }) - %t5 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6166, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6167, i64 7, i64 0 }, { ptr, i64, i64 } { ptr @.str.6168, i64 19, i64 0 }) - %t6 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6169, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6170, i64 13, i64 0 }, { ptr, i64, i64 } { ptr @.str.6171, i64 39, i64 0 }) - %t7 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6172, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6173, i64 15, i64 0 }, { ptr, i64, i64 } { ptr @.str.6174, i64 47, i64 0 }) + %t1 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6362, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6363, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6364, i64 19, i64 0 }) + %t2 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6365, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6366, i64 18, i64 0 }, { ptr, i64, i64 } { ptr @.str.6367, i64 22, i64 0 }) + %t3 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6368, i64 3, i64 0 }, { ptr, i64, i64 } { ptr @.str.6369, i64 26, i64 0 }, { ptr, i64, i64 } { ptr @.str.6370, i64 53, i64 0 }) + %t4 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6371, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6372, i64 21, i64 0 }, { ptr, i64, i64 } { ptr @.str.6373, i64 52, i64 0 }) + %t5 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6374, i64 5, i64 0 }, { ptr, i64, i64 } { ptr @.str.6375, i64 7, i64 0 }, { ptr, i64, i64 } { ptr @.str.6376, i64 19, i64 0 }) + %t6 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6377, i64 4, i64 0 }, { ptr, i64, i64 } { ptr @.str.6378, i64 13, i64 0 }, { ptr, i64, i64 } { ptr @.str.6379, i64 39, i64 0 }) + %t7 = call %S.docs.Doc @finch.docs.doc({ ptr, i64, i64 } { ptr @.str.6380, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6381, i64 15, i64 0 }, { ptr, i64, i64 } { ptr @.str.6382, i64 47, i64 0 }) %t8 = mul i64 7, ptrtoint (ptr getelementptr (%S.docs.Doc, ptr null, i32 1) to i64) %t9 = call ptr @finch_alloc(i64 %t8) %t10 = getelementptr inbounds %S.docs.Doc, ptr %t9, i64 0 @@ -93085,49 +97110,49 @@ entry: %t1 = mul i64 22, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t2 = call ptr @finch_alloc(i64 %t1) %t3 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 0 - store { ptr, i64, i64 } { ptr @.str.6175, i64 2, i64 0 }, ptr %t3 + store { ptr, i64, i64 } { ptr @.str.6383, i64 2, i64 0 }, ptr %t3 %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 1 - store { ptr, i64, i64 } { ptr @.str.6176, i64 6, i64 0 }, ptr %t4 + store { ptr, i64, i64 } { ptr @.str.6384, i64 6, i64 0 }, ptr %t4 %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 2 - store { ptr, i64, i64 } { ptr @.str.6177, i64 2, i64 0 }, ptr %t5 + store { ptr, i64, i64 } { ptr @.str.6385, i64 2, i64 0 }, ptr %t5 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 3 - store { ptr, i64, i64 } { ptr @.str.6178, i64 4, i64 0 }, ptr %t6 + store { ptr, i64, i64 } { ptr @.str.6386, i64 4, i64 0 }, ptr %t6 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 4 - store { ptr, i64, i64 } { ptr @.str.6179, i64 5, i64 0 }, ptr %t7 + store { ptr, i64, i64 } { ptr @.str.6387, i64 5, i64 0 }, ptr %t7 %t8 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 5 - store { ptr, i64, i64 } { ptr @.str.6180, i64 3, i64 0 }, ptr %t8 + store { ptr, i64, i64 } { ptr @.str.6388, i64 3, i64 0 }, ptr %t8 %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 6 - store { ptr, i64, i64 } { ptr @.str.6181, i64 2, i64 0 }, ptr %t9 + store { ptr, i64, i64 } { ptr @.str.6389, i64 2, i64 0 }, ptr %t9 %t10 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 7 - store { ptr, i64, i64 } { ptr @.str.6182, i64 5, i64 0 }, ptr %t10 + store { ptr, i64, i64 } { ptr @.str.6390, i64 5, i64 0 }, ptr %t10 %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 8 - store { ptr, i64, i64 } { ptr @.str.6183, i64 8, i64 0 }, ptr %t11 + store { ptr, i64, i64 } { ptr @.str.6391, i64 8, i64 0 }, ptr %t11 %t12 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 9 - store { ptr, i64, i64 } { ptr @.str.6184, i64 4, i64 0 }, ptr %t12 + store { ptr, i64, i64 } { ptr @.str.6392, i64 4, i64 0 }, ptr %t12 %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 10 - store { ptr, i64, i64 } { ptr @.str.6185, i64 5, i64 0 }, ptr %t13 + store { ptr, i64, i64 } { ptr @.str.6393, i64 5, i64 0 }, ptr %t13 %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 11 - store { ptr, i64, i64 } { ptr @.str.6186, i64 4, i64 0 }, ptr %t14 + store { ptr, i64, i64 } { ptr @.str.6394, i64 4, i64 0 }, ptr %t14 %t15 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 12 - store { ptr, i64, i64 } { ptr @.str.6187, i64 6, i64 0 }, ptr %t15 + store { ptr, i64, i64 } { ptr @.str.6395, i64 6, i64 0 }, ptr %t15 %t16 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 13 - store { ptr, i64, i64 } { ptr @.str.6188, i64 4, i64 0 }, ptr %t16 + store { ptr, i64, i64 } { ptr @.str.6396, i64 4, i64 0 }, ptr %t16 %t17 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 14 - store { ptr, i64, i64 } { ptr @.str.6189, i64 6, i64 0 }, ptr %t17 + store { ptr, i64, i64 } { ptr @.str.6397, i64 6, i64 0 }, ptr %t17 %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 15 - store { ptr, i64, i64 } { ptr @.str.6190, i64 4, i64 0 }, ptr %t18 + store { ptr, i64, i64 } { ptr @.str.6398, i64 4, i64 0 }, ptr %t18 %t19 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 16 - store { ptr, i64, i64 } { ptr @.str.6191, i64 5, i64 0 }, ptr %t19 + store { ptr, i64, i64 } { ptr @.str.6399, i64 5, i64 0 }, ptr %t19 %t20 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 17 - store { ptr, i64, i64 } { ptr @.str.6192, i64 6, i64 0 }, ptr %t20 + store { ptr, i64, i64 } { ptr @.str.6400, i64 6, i64 0 }, ptr %t20 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 18 - store { ptr, i64, i64 } { ptr @.str.6193, i64 5, i64 0 }, ptr %t21 + store { ptr, i64, i64 } { ptr @.str.6401, i64 5, i64 0 }, ptr %t21 %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 19 - store { ptr, i64, i64 } { ptr @.str.6194, i64 2, i64 0 }, ptr %t22 + store { ptr, i64, i64 } { ptr @.str.6402, i64 2, i64 0 }, ptr %t22 %t23 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 20 - store { ptr, i64, i64 } { ptr @.str.6195, i64 3, i64 0 }, ptr %t23 + store { ptr, i64, i64 } { ptr @.str.6403, i64 3, i64 0 }, ptr %t23 %t24 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 21 - store { ptr, i64, i64 } { ptr @.str.6196, i64 4, i64 0 }, ptr %t24 + store { ptr, i64, i64 } { ptr @.str.6404, i64 4, i64 0 }, ptr %t24 %t25 = insertvalue { ptr, i64, i64 } undef, ptr %t2, 0 %t26 = insertvalue { ptr, i64, i64 } %t25, i64 22, 1 %t27 = insertvalue { ptr, i64, i64 } %t26, i64 22, 2 @@ -93140,39 +97165,39 @@ entry: %t1 = mul i64 17, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t2 = call ptr @finch_alloc(i64 %t1) %t3 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 0 - store { ptr, i64, i64 } { ptr @.str.6197, i64 3, i64 0 }, ptr %t3 + store { ptr, i64, i64 } { ptr @.str.6405, i64 3, i64 0 }, ptr %t3 %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 1 - store { ptr, i64, i64 } { ptr @.str.6198, i64 5, i64 0 }, ptr %t4 + store { ptr, i64, i64 } { ptr @.str.6406, i64 5, i64 0 }, ptr %t4 %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 2 - store { ptr, i64, i64 } { ptr @.str.6199, i64 4, i64 0 }, ptr %t5 + store { ptr, i64, i64 } { ptr @.str.6407, i64 4, i64 0 }, ptr %t5 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 3 - store { ptr, i64, i64 } { ptr @.str.6200, i64 4, i64 0 }, ptr %t6 + store { ptr, i64, i64 } { ptr @.str.6408, i64 4, i64 0 }, ptr %t6 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 4 - store { ptr, i64, i64 } { ptr @.str.6201, i64 3, i64 0 }, ptr %t7 + store { ptr, i64, i64 } { ptr @.str.6409, i64 3, i64 0 }, ptr %t7 %t8 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 5 - store { ptr, i64, i64 } { ptr @.str.6202, i64 3, i64 0 }, ptr %t8 + store { ptr, i64, i64 } { ptr @.str.6410, i64 3, i64 0 }, ptr %t8 %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 6 - store { ptr, i64, i64 } { ptr @.str.6203, i64 3, i64 0 }, ptr %t9 + store { ptr, i64, i64 } { ptr @.str.6411, i64 3, i64 0 }, ptr %t9 %t10 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 7 - store { ptr, i64, i64 } { ptr @.str.6204, i64 2, i64 0 }, ptr %t10 + store { ptr, i64, i64 } { ptr @.str.6412, i64 2, i64 0 }, ptr %t10 %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 8 - store { ptr, i64, i64 } { ptr @.str.6205, i64 3, i64 0 }, ptr %t11 + store { ptr, i64, i64 } { ptr @.str.6413, i64 3, i64 0 }, ptr %t11 %t12 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 9 - store { ptr, i64, i64 } { ptr @.str.6206, i64 3, i64 0 }, ptr %t12 + store { ptr, i64, i64 } { ptr @.str.6414, i64 3, i64 0 }, ptr %t12 %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 10 - store { ptr, i64, i64 } { ptr @.str.6207, i64 3, i64 0 }, ptr %t13 + store { ptr, i64, i64 } { ptr @.str.6415, i64 3, i64 0 }, ptr %t13 %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 11 - store { ptr, i64, i64 } { ptr @.str.6208, i64 2, i64 0 }, ptr %t14 + store { ptr, i64, i64 } { ptr @.str.6416, i64 2, i64 0 }, ptr %t14 %t15 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 12 - store { ptr, i64, i64 } { ptr @.str.6209, i64 3, i64 0 }, ptr %t15 + store { ptr, i64, i64 } { ptr @.str.6417, i64 3, i64 0 }, ptr %t15 %t16 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 13 - store { ptr, i64, i64 } { ptr @.str.6210, i64 3, i64 0 }, ptr %t16 + store { ptr, i64, i64 } { ptr @.str.6418, i64 3, i64 0 }, ptr %t16 %t17 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 14 - store { ptr, i64, i64 } { ptr @.str.6211, i64 3, i64 0 }, ptr %t17 + store { ptr, i64, i64 } { ptr @.str.6419, i64 3, i64 0 }, ptr %t17 %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 15 - store { ptr, i64, i64 } { ptr @.str.6212, i64 3, i64 0 }, ptr %t18 + store { ptr, i64, i64 } { ptr @.str.6420, i64 3, i64 0 }, ptr %t18 %t19 = getelementptr inbounds { ptr, i64, i64 }, ptr %t2, i64 16 - store { ptr, i64, i64 } { ptr @.str.6213, i64 3, i64 0 }, ptr %t19 + store { ptr, i64, i64 } { ptr @.str.6421, i64 3, i64 0 }, ptr %t19 %t20 = insertvalue { ptr, i64, i64 } undef, ptr %t2, 0 %t21 = insertvalue { ptr, i64, i64 } %t20, i64 17, 1 %t22 = insertvalue { ptr, i64, i64 } %t21, i64 17, 2 @@ -93209,14 +97234,14 @@ entry: store { ptr, i64, i64 } %p0, ptr %a1 store { ptr, i64, i64 } %p1, ptr %a2 store i64 0, ptr %a3 - br label %each.cond8828 -each.cond8828: + br label %each.cond9233 +each.cond9233: %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t5 = load i64, ptr %t4 %t6 = load i64, ptr %a3 %t7 = icmp slt i64 %t6, %t5 - br i1 %t7, label %each.body8829, label %each.end8831 -each.body8829: + br i1 %t7, label %each.body9234, label %each.end9236 +each.body9234: %t8 = load ptr, ptr %a1 %t9 = getelementptr inbounds %S.docs.Doc, ptr %t8, i64 %t6 %t10 = load %S.docs.Doc, ptr %t9 @@ -93228,21 +97253,21 @@ each.body8829: store { ptr, i64, i64 } %t14, ptr %a16 %t17 = call i32 @finch_str_eq(ptr %a15, ptr %a16) %t18 = icmp ne i32 %t17, 0 - br i1 %t18, label %then8832, label %endif8834 -then8832: + br i1 %t18, label %then9237, label %endif9239 +then9237: %t19 = load %S.docs.Doc, ptr %a11 store %S.docs.Doc %t19, ptr %a20 call void @finch.copy.S_docs_Doc(ptr %a21, ptr %a20) %t22 = load %S.docs.Doc, ptr %a21 ret %S.docs.Doc %t22 -endif8834: - br label %each.step8830 -each.step8830: +endif9239: + br label %each.step9235 +each.step9235: %t23 = load i64, ptr %a3 %t24 = add i64 %t23, 1 store i64 %t24, ptr %a3 - br label %each.cond8828 -each.end8831: + br label %each.cond9233 +each.end9236: ret %S.docs.Doc zeroinitializer } @@ -93263,12 +97288,12 @@ entry: store %S.docs.Doc %p0, ptr %a1 %t2 = getelementptr inbounds %S.docs.Doc, ptr %a1, i32 0, i32 1 %t3 = load { ptr, i64, i64 }, ptr %t2 - store { ptr, i64, i64 } { ptr @.str.6214, i64 9, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.6422, i64 9, i64 0 }, ptr %a5 store { ptr, i64, i64 } %t3, ptr %a6 call void @finch_str_concat(ptr %a4, ptr %a5, ptr %a6) %t7 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t7, ptr %a9 - store { ptr, i64, i64 } { ptr @.str.6215, i64 5, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.6423, i64 5, i64 0 }, ptr %a10 call void @finch_str_concat(ptr %a8, ptr %a9, ptr %a10) store { ptr, i64, i64 } %t7, ptr %a11 call void @finch_str_drop(ptr %a11) @@ -93358,7 +97383,7 @@ entry: %a11 = alloca %S.ast.Type, align 16 store %S.ast.Type %p0, ptr %a1 store i64 %p1, ptr %a2 - %t3 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.6216, i64 5, i64 0 }, 0 + %t3 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.6424, i64 5, i64 0 }, 0 %t4 = load i64, ptr %a2 %t5 = insertvalue %S.ast.Type %t3, i64 %t4, 4 store %S.ast.Type %t5, ptr %a6 @@ -93479,7 +97504,7 @@ entry: store { ptr, i64, i64 } zeroinitializer, ptr %a2 %t3 = call { ptr, i64, i64 } @finch.host.tempDir() store { ptr, i64, i64 } %t3, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.6217, i64 15, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.6425, i64 15, i64 0 }, ptr %a6 call void @finch_str_concat(ptr %a4, ptr %a5, ptr %a6) store { ptr, i64, i64 } %t3, ptr %a7 call void @finch_str_drop(ptr %a7) @@ -93496,7 +97521,7 @@ entry: call void @finch_str_drop(ptr %a16) %t17 = load { ptr, i64, i64 }, ptr %a12 store { ptr, i64, i64 } %t17, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.6218, i64 4, i64 0 }, ptr %a20 + store { ptr, i64, i64 } { ptr @.str.6426, i64 4, i64 0 }, ptr %a20 call void @finch_str_concat(ptr %a18, ptr %a19, ptr %a20) store { ptr, i64, i64 } %t17, ptr %a21 call void @finch_str_drop(ptr %a21) @@ -93504,7 +97529,7 @@ entry: store { ptr, i64, i64 } %t22, ptr %a23 %t24 = call { ptr, i64, i64 } @finch.host.tempDir() store { ptr, i64, i64 } %t24, ptr %a26 - store { ptr, i64, i64 } { ptr @.str.6219, i64 13, i64 0 }, ptr %a27 + store { ptr, i64, i64 } { ptr @.str.6427, i64 13, i64 0 }, ptr %a27 call void @finch_str_concat(ptr %a25, ptr %a26, ptr %a27) store { ptr, i64, i64 } %t24, ptr %a28 call void @finch_str_drop(ptr %a28) @@ -93521,7 +97546,7 @@ entry: call void @finch_str_drop(ptr %a37) %t38 = load { ptr, i64, i64 }, ptr %a33 store { ptr, i64, i64 } %t38, ptr %a40 - store { ptr, i64, i64 } { ptr @.str.6220, i64 2, i64 0 }, ptr %a41 + store { ptr, i64, i64 } { ptr @.str.6428, i64 2, i64 0 }, ptr %a41 call void @finch_str_concat(ptr %a39, ptr %a40, ptr %a41) store { ptr, i64, i64 } %t38, ptr %a42 call void @finch_str_drop(ptr %a42) @@ -93529,12 +97554,12 @@ entry: store { ptr, i64, i64 } %t43, ptr %a44 %t45 = load { ptr, i64, i64 }, ptr %a44 store { ptr, i64, i64 } %t45, ptr %a46 - store { ptr, i64, i64 } { ptr @.str.6221, i64 0, i64 0 }, ptr %a47 + store { ptr, i64, i64 } { ptr @.str.6429, i64 0, i64 0 }, ptr %a47 %t48 = call i32 @finch_write_file(ptr %a46, ptr %a47) %t49 = icmp ne i32 %t48, 0 %t50 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t50, ptr %a52 - store { ptr, i64, i64 } { ptr @.str.6222, i64 12, i64 0 }, ptr %a53 + store { ptr, i64, i64 } { ptr @.str.6430, i64 12, i64 0 }, ptr %a53 call void @finch_str_concat(ptr %a51, ptr %a52, ptr %a53) %t54 = load { ptr, i64, i64 }, ptr %a51 %t55 = load { ptr, i64, i64 }, ptr %a44 @@ -93548,7 +97573,7 @@ entry: call void @finch_str_drop(ptr %a61) %t62 = load { ptr, i64, i64 }, ptr %a57 store { ptr, i64, i64 } %t62, ptr %a64 - store { ptr, i64, i64 } { ptr @.str.6223, i64 4, i64 0 }, ptr %a65 + store { ptr, i64, i64 } { ptr @.str.6431, i64 4, i64 0 }, ptr %a65 call void @finch_str_concat(ptr %a63, ptr %a64, ptr %a65) store { ptr, i64, i64 } %t62, ptr %a66 call void @finch_str_drop(ptr %a66) @@ -93564,7 +97589,7 @@ entry: call void @finch_str_drop(ptr %a74) %t75 = load { ptr, i64, i64 }, ptr %a70 store { ptr, i64, i64 } %t75, ptr %a77 - store { ptr, i64, i64 } { ptr @.str.6224, i64 3, i64 0 }, ptr %a78 + store { ptr, i64, i64 } { ptr @.str.6432, i64 3, i64 0 }, ptr %a78 call void @finch_str_concat(ptr %a76, ptr %a77, ptr %a78) store { ptr, i64, i64 } %t75, ptr %a79 call void @finch_str_drop(ptr %a79) @@ -93588,34 +97613,34 @@ entry: %t93 = call i32 @finch_file_exists(ptr %a92) %t94 = icmp ne i32 %t93, 0 %t95 = xor i1 %t94, true - br i1 %t95, label %then8835, label %endif8837 -then8835: + br i1 %t95, label %then9240, label %endif9242 +then9240: %t96 = load { ptr, i64, i64 }, ptr %a2 call void @finch_str_drop(ptr %a44) call void @finch_str_drop(ptr %a23) ret { ptr, i64, i64 } %t96 -endif8837: +endif9242: store i1 false, ptr %a97 %t98 = load { ptr, i64, i64 }, ptr %a23 store { ptr, i64, i64 } %t98, ptr %a99 - call void @finch_read_file(ptr %a100, ptr %a99, ptr @.str.6225, i64 114) + call void @finch_read_file(ptr %a100, ptr %a99, ptr @.str.6433, i64 114) %t101 = load { ptr, i64, i64 }, ptr %a100 store { ptr, i64, i64 } %t101, ptr %a102 - store { ptr, i64, i64 } { ptr @.str.6227, i64 1, i64 0 }, ptr %a104 + store { ptr, i64, i64 } { ptr @.str.6435, i64 1, i64 0 }, ptr %a104 call void @finch_str_split(ptr %a105, ptr %a102, ptr %a104) %t106 = load { ptr, i64, i64 }, ptr %a105 store { ptr, i64, i64 } %t101, ptr %a107 call void @finch_str_drop(ptr %a107) store { ptr, i64, i64 } %t106, ptr %a108 store i64 0, ptr %a109 - br label %each.cond8838 -each.cond8838: + br label %each.cond9243 +each.cond9243: %t110 = getelementptr inbounds { ptr, i64, i64 }, ptr %a108, i32 0, i32 1 %t111 = load i64, ptr %t110 %t112 = load i64, ptr %a109 %t113 = icmp slt i64 %t112, %t111 - br i1 %t113, label %each.body8839, label %each.end8841 -each.body8839: + br i1 %t113, label %each.body9244, label %each.end9246 +each.body9244: %t114 = load ptr, ptr %a108 %t115 = getelementptr inbounds { ptr, i64, i64 }, ptr %t114, i64 %t112 %t116 = load { ptr, i64, i64 }, ptr %t115 @@ -93627,60 +97652,60 @@ each.body8839: store { ptr, i64, i64 } %t121, ptr %a122 %t123 = load { ptr, i64, i64 }, ptr %a122 store { ptr, i64, i64 } %t123, ptr %a124 - store { ptr, i64, i64 } { ptr @.str.6230, i64 34, i64 0 }, ptr %a126 + store { ptr, i64, i64 } { ptr @.str.6438, i64 34, i64 0 }, ptr %a126 %t127 = call i32 @finch_str_starts(ptr %a124, ptr %a126) %t128 = icmp ne i32 %t127, 0 - br i1 %t128, label %then8842, label %endif8844 -then8842: + br i1 %t128, label %then9247, label %endif9249 +then9247: store i1 true, ptr %a97 call void @finch_str_drop(ptr %a122) - br label %each.step8840 -endif8844: + br label %each.step9245 +endif9249: %t129 = load { ptr, i64, i64 }, ptr %a122 store { ptr, i64, i64 } %t129, ptr %a130 - store { ptr, i64, i64 } { ptr @.str.6232, i64 19, i64 0 }, ptr %a132 + store { ptr, i64, i64 } { ptr @.str.6440, i64 19, i64 0 }, ptr %a132 %t133 = call i32 @finch_str_starts(ptr %a130, ptr %a132) %t134 = icmp ne i32 %t133, 0 - br i1 %t134, label %then8845, label %endif8847 -then8845: + br i1 %t134, label %then9250, label %endif9252 +then9250: call void @finch_str_drop(ptr %a122) - br label %each.end8841 -endif8847: + br label %each.end9246 +endif9252: %t135 = load i1, ptr %a97 %t136 = xor i1 %t135, true - br label %logic.from8848 -logic.from8848: - br i1 %t136, label %logic.end8850, label %logic.rhs8849 -logic.rhs8849: + br label %logic.from9253 +logic.from9253: + br i1 %t136, label %logic.end9255, label %logic.rhs9254 +logic.rhs9254: %t137 = getelementptr inbounds { ptr, i64, i64 }, ptr %a122, i32 0, i32 1 %t138 = load i64, ptr %t137 %t139 = icmp eq i64 %t138, 0 - br label %logic.rend8851 -logic.rend8851: - br label %logic.end8850 -logic.end8850: - %t140 = phi i1 [ true, %logic.from8848 ], [ %t139, %logic.rend8851 ] - br i1 %t140, label %then8852, label %endif8854 -then8852: + br label %logic.rend9256 +logic.rend9256: + br label %logic.end9255 +logic.end9255: + %t140 = phi i1 [ true, %logic.from9253 ], [ %t139, %logic.rend9256 ] + br i1 %t140, label %then9257, label %endif9259 +then9257: call void @finch_str_drop(ptr %a122) - br label %each.step8840 -endif8854: + br label %each.step9245 +endif9259: %t141 = load { ptr, i64, i64 }, ptr %a122 store { ptr, i64, i64 } %t141, ptr %a142 - store { ptr, i64, i64 } { ptr @.str.6234, i64 22, i64 0 }, ptr %a144 + store { ptr, i64, i64 } { ptr @.str.6442, i64 22, i64 0 }, ptr %a144 %t145 = call i32 @finch_str_ends(ptr %a142, ptr %a144) %t146 = icmp ne i32 %t145, 0 - br i1 %t146, label %then8855, label %else8856 -then8855: + br i1 %t146, label %then9260, label %else9261 +then9260: %t147 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t148 = load { ptr, i64, i64 }, ptr %a122 store { ptr, i64, i64 } %t148, ptr %a149 %t151 = getelementptr inbounds { ptr, i64, i64 }, ptr %a122, i32 0, i32 1 %t152 = load i64, ptr %t151 %t153 = sub i64 %t152, 22 - call void @finch_str_sub(ptr %a150, ptr %a149, i64 0, i64 %t153, ptr @.str.6236, i64 128) + call void @finch_str_sub(ptr %a150, ptr %a149, i64 0, i64 %t153, ptr @.str.6444, i64 128) %t154 = load { ptr, i64, i64 }, ptr %a150 - store { ptr, i64, i64 } { ptr @.str.6235, i64 11, i64 0 }, ptr %a156 + store { ptr, i64, i64 } { ptr @.str.6443, i64 11, i64 0 }, ptr %a156 store { ptr, i64, i64 } %t154, ptr %a157 call void @finch_str_concat(ptr %a155, ptr %a156, ptr %a157) store { ptr, i64, i64 } %t154, ptr %a158 @@ -93693,11 +97718,11 @@ then8855: %t163 = getelementptr inbounds { ptr, i64, i64 }, ptr %t162, i64 %t160 store { ptr, i64, i64 } %t159, ptr %t163 store i64 %t161, ptr %t147 - br label %endif8857 -else8856: + br label %endif9262 +else9261: %t164 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t165 = load { ptr, i64, i64 }, ptr %a122 - store { ptr, i64, i64 } { ptr @.str.6237, i64 8, i64 0 }, ptr %a167 + store { ptr, i64, i64 } { ptr @.str.6445, i64 8, i64 0 }, ptr %a167 store { ptr, i64, i64 } %t165, ptr %a168 call void @finch_str_concat(ptr %a166, ptr %a167, ptr %a168) %t169 = load { ptr, i64, i64 }, ptr %a166 @@ -93708,16 +97733,16 @@ else8856: %t173 = getelementptr inbounds { ptr, i64, i64 }, ptr %t172, i64 %t170 store { ptr, i64, i64 } %t169, ptr %t173 store i64 %t171, ptr %t164 - br label %endif8857 -endif8857: + br label %endif9262 +endif9262: call void @finch_str_drop(ptr %a122) - br label %each.step8840 -each.step8840: + br label %each.step9245 +each.step9245: %t174 = load i64, ptr %a109 %t175 = add i64 %t174, 1 store i64 %t175, ptr %a109 - br label %each.cond8838 -each.end8841: + br label %each.cond9243 +each.end9246: call void @finch.drop.arr_str(ptr %a108) %t176 = load { ptr, i64, i64 }, ptr %a23 call void @finch.host.remove({ ptr, i64, i64 } %t176) @@ -93776,38 +97801,38 @@ entry: store { ptr, i64, i64 } %t13, ptr %a14 %t15 = load ptr, ptr %a1 %t16 = icmp eq ptr %t15, null - br i1 %t16, label %panic8858, label %ok8859 -panic8858: - call void @finch_panic(ptr @.str.6238, i64 143, ptr @.str.6239) + br i1 %t16, label %panic9263, label %ok9264 +panic9263: + call void @finch_panic(ptr @.str.6446, i64 143, ptr @.str.6447) unreachable -ok8859: +ok9264: %t17 = getelementptr inbounds %S.cimport.Importer, ptr %t15, i32 0, i32 3 %t18 = load { ptr, i64, i64 }, ptr %a14 store { ptr, i64, i64 } %t18, ptr %a19 %t20 = call i64 @finch_map_find(ptr %t17, ptr %a19, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t21 = icmp sge i64 %t20, 0 - br i1 %t21, label %then8860, label %endif8862 -then8860: + br i1 %t21, label %then9265, label %endif9267 +then9265: %t22 = load ptr, ptr %a1 %t23 = icmp eq ptr %t22, null - br i1 %t23, label %panic8863, label %ok8864 -panic8863: - call void @finch_panic(ptr @.str.6240, i64 144, ptr @.str.6241) + br i1 %t23, label %panic9268, label %ok9269 +panic9268: + call void @finch_panic(ptr @.str.6448, i64 144, ptr @.str.6449) unreachable -ok8864: +ok9269: %t24 = getelementptr inbounds %S.cimport.Importer, ptr %t22, i32 0, i32 3 %t25 = load { ptr, i64, i64 }, ptr %a14 store { ptr, i64, i64 } %t25, ptr %a26 %t27 = call i64 @finch_map_find(ptr %t24, ptr %a26, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t28 = icmp slt i64 %t27, 0 - br i1 %t28, label %map.missing8865, label %map.found8866 -map.missing8865: + br i1 %t28, label %map.missing9270, label %map.found9271 +map.missing9270: store { ptr, i64, i64 } zeroinitializer, ptr %a29 store { ptr, i64, i64 } %t25, ptr %a30 call void @finch_buf_str(ptr %a29, ptr %a30, i32 1) - call void @finch_map_missing(ptr @.str.6242, i64 144, ptr %a29) + call void @finch_map_missing(ptr @.str.6450, i64 144, ptr %a29) unreachable -map.found8866: +map.found9271: %t31 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t24, i32 0, i32 0 %t32 = load ptr, ptr %t31 %t33 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t32, i64 %t27 @@ -93818,7 +97843,7 @@ map.found8866: %t38 = load { ptr, i64, i64 }, ptr %a37 call void @finch_str_drop(ptr %a14) ret { ptr, i64, i64 } %t38 -endif8862: +endif9267: %t39 = load %S.C.CXCursor, ptr %a7 store %S.C.CXCursor %t39, ptr %a40 %t41 = call { i64, i64 } @clang_getCursorSpelling(ptr byval(%S.C.CXCursor) align 8 %a40) @@ -93829,45 +97854,45 @@ endif8862: %t46 = getelementptr inbounds { ptr, i64, i64 }, ptr %a45, i32 0, i32 1 %t47 = load i64, ptr %t46 %t48 = icmp eq i64 %t47, 0 - br label %logic.from8867 -logic.from8867: - br i1 %t48, label %logic.end8869, label %logic.rhs8868 -logic.rhs8868: + br label %logic.from9272 +logic.from9272: + br i1 %t48, label %logic.end9274, label %logic.rhs9273 +logic.rhs9273: %t49 = load { ptr, i64, i64 }, ptr %a45 store { ptr, i64, i64 } %t49, ptr %a50 - store { ptr, i64, i64 } { ptr @.str.6244, i64 1, i64 0 }, ptr %a52 + store { ptr, i64, i64 } { ptr @.str.6452, i64 1, i64 0 }, ptr %a52 %t53 = call i64 @finch_str_find(ptr %a50, ptr %a52) %t54 = icmp sge i64 %t53, 0 - br label %logic.rend8870 -logic.rend8870: - br label %logic.end8869 -logic.end8869: - %t55 = phi i1 [ true, %logic.from8867 ], [ %t54, %logic.rend8870 ] - br i1 %t55, label %then8871, label %endif8873 -then8871: + br label %logic.rend9275 +logic.rend9275: + br label %logic.end9274 +logic.end9274: + %t55 = phi i1 [ true, %logic.from9272 ], [ %t54, %logic.rend9275 ] + br i1 %t55, label %then9276, label %endif9278 +then9276: %t56 = load ptr, ptr %a1 %t57 = icmp eq ptr %t56, null - br i1 %t57, label %panic8874, label %ok8875 -panic8874: - call void @finch_panic(ptr @.str.6245, i64 148, ptr @.str.6246) + br i1 %t57, label %panic9279, label %ok9280 +panic9279: + call void @finch_panic(ptr @.str.6453, i64 148, ptr @.str.6454) unreachable -ok8875: +ok9280: %t58 = getelementptr inbounds %S.cimport.Importer, ptr %t56, i32 0, i32 5 %t59 = load i64, ptr %t58 %t60 = add i64 %t59, 1 store i64 %t60, ptr %t58 %t61 = load ptr, ptr %a1 %t62 = icmp eq ptr %t61, null - br i1 %t62, label %panic8876, label %ok8877 -panic8876: - call void @finch_panic(ptr @.str.6248, i64 149, ptr @.str.6249) + br i1 %t62, label %panic9281, label %ok9282 +panic9281: + call void @finch_panic(ptr @.str.6456, i64 149, ptr @.str.6457) unreachable -ok8877: +ok9282: %t63 = getelementptr inbounds %S.cimport.Importer, ptr %t61, i32 0, i32 5 %t64 = load i64, ptr %t63 call void @finch_str_from_int(ptr %a65, i64 %t64) %t66 = load { ptr, i64, i64 }, ptr %a65 - store { ptr, i64, i64 } { ptr @.str.6247, i64 12, i64 0 }, ptr %a68 + store { ptr, i64, i64 } { ptr @.str.6455, i64 12, i64 0 }, ptr %a68 store { ptr, i64, i64 } %t66, ptr %a69 call void @finch_str_concat(ptr %a67, ptr %a68, ptr %a69) store { ptr, i64, i64 } %t66, ptr %a70 @@ -93877,16 +97902,16 @@ ok8877: store { ptr, i64, i64 } %t71, ptr %a45 store { ptr, i64, i64 } %t72, ptr %a73 call void @finch_str_drop(ptr %a73) - br label %endif8873 -endif8873: + br label %endif9278 +endif9278: %t74 = load { ptr, i64, i64 }, ptr %a45 %t75 = load ptr, ptr %a1 %t76 = icmp eq ptr %t75, null - br i1 %t76, label %panic8878, label %ok8879 -panic8878: - call void @finch_panic(ptr @.str.6250, i64 151, ptr @.str.6251) + br i1 %t76, label %panic9283, label %ok9284 +panic9283: + call void @finch_panic(ptr @.str.6458, i64 151, ptr @.str.6459) unreachable -ok8879: +ok9284: %t77 = getelementptr inbounds %S.cimport.Importer, ptr %t75, i32 0, i32 3 %t78 = load { ptr, i64, i64 }, ptr %a14 store { ptr, i64, i64 } %t78, ptr %a79 @@ -93897,14 +97922,14 @@ ok8879: %t84 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t83, i64 %t81 %t85 = load i32, ptr %a80 %t86 = icmp ne i32 %t85, 0 - br i1 %t86, label %map.new8880, label %map.have8881 -map.new8880: + br i1 %t86, label %map.new9285, label %map.have9286 +map.new9285: %t87 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t84, i32 0, i32 1 call void @finch_str_copy(ptr %t87, ptr %a79) %t88 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t84, i32 0, i32 2 store { ptr, i64, i64 } zeroinitializer, ptr %t88 - br label %map.have8881 -map.have8881: + br label %map.have9286 +map.have9286: %t89 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t84, i32 0, i32 2 store { ptr, i64, i64 } %t74, ptr %a90 call void @finch_str_copy(ptr %a91, ptr %a90) @@ -93987,63 +98012,63 @@ entry: store { ptr, i64, i64 } %t22, ptr %a23 %t24 = load ptr, ptr %a1 %t25 = icmp eq ptr %t24, null - br i1 %t25, label %panic8882, label %ok8883 -panic8882: - call void @finch_panic(ptr @.str.6252, i64 161, ptr @.str.6253) + br i1 %t25, label %panic9287, label %ok9288 +panic9287: + call void @finch_panic(ptr @.str.6460, i64 161, ptr @.str.6461) unreachable -ok8883: +ok9288: %t26 = getelementptr inbounds %S.cimport.Importer, ptr %t24, i32 0, i32 0 %t27 = getelementptr inbounds %S.cimport.CImports, ptr %t26, i32 0, i32 3 %t28 = load { ptr, i64, i64 }, ptr %a23 store { ptr, i64, i64 } %t28, ptr %a29 %t30 = call i64 @finch_map_find(ptr %t27, ptr %a29, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t31 = icmp sge i64 %t30, 0 - br label %logic.from8884 -logic.from8884: - br i1 %t31, label %logic.end8886, label %logic.rhs8885 -logic.rhs8885: + br label %logic.from9289 +logic.from9289: + br i1 %t31, label %logic.end9291, label %logic.rhs9290 +logic.rhs9290: %t32 = load ptr, ptr %a1 %t33 = icmp eq ptr %t32, null - br i1 %t33, label %panic8887, label %ok8888 -panic8887: - call void @finch_panic(ptr @.str.6254, i64 161, ptr @.str.6255) + br i1 %t33, label %panic9292, label %ok9293 +panic9292: + call void @finch_panic(ptr @.str.6462, i64 161, ptr @.str.6463) unreachable -ok8888: +ok9293: %t34 = getelementptr inbounds %S.cimport.Importer, ptr %t32, i32 0, i32 4 %t35 = load { ptr, i64, i64 }, ptr %a19 store { ptr, i64, i64 } %t35, ptr %a36 %t37 = call i64 @finch_map_find(ptr %t34, ptr %a36, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, i1 }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t38 = icmp sge i64 %t37, 0 - br label %logic.rend8889 -logic.rend8889: - br label %logic.end8886 -logic.end8886: - %t39 = phi i1 [ true, %logic.from8884 ], [ %t38, %logic.rend8889 ] - br i1 %t39, label %then8890, label %endif8892 -then8890: + br label %logic.rend9294 +logic.rend9294: + br label %logic.end9291 +logic.end9291: + %t39 = phi i1 [ true, %logic.from9289 ], [ %t38, %logic.rend9294 ] + br i1 %t39, label %then9295, label %endif9297 +then9295: %t40 = load { ptr, i64, i64 }, ptr %a23 call void @finch_str_drop(ptr %a19) ret { ptr, i64, i64 } %t40 -endif8892: +endif9297: %t41 = load %S.C.CXType, ptr %a7 store %S.C.CXType %t41, ptr %a42 %t43 = call i64 @clang_Type_getSizeOf(ptr byval(%S.C.CXType) align 8 %a42) store i64 %t43, ptr %a44 %t45 = load i64, ptr %a44 %t46 = icmp slt i64 %t45, 0 - br i1 %t46, label %then8893, label %endif8895 -then8893: + br i1 %t46, label %then9298, label %endif9300 +then9298: call void @finch_str_drop(ptr %a23) call void @finch_str_drop(ptr %a19) - ret { ptr, i64, i64 } { ptr @.str.6256, i64 0, i64 0 } -endif8895: + ret { ptr, i64, i64 } { ptr @.str.6464, i64 0, i64 0 } +endif9300: %t47 = load ptr, ptr %a1 %t48 = icmp eq ptr %t47, null - br i1 %t48, label %panic8896, label %ok8897 -panic8896: - call void @finch_panic(ptr @.str.6257, i64 168, ptr @.str.6258) + br i1 %t48, label %panic9301, label %ok9302 +panic9301: + call void @finch_panic(ptr @.str.6465, i64 168, ptr @.str.6466) unreachable -ok8897: +ok9302: %t49 = getelementptr inbounds %S.cimport.Importer, ptr %t47, i32 0, i32 4 %t50 = load { ptr, i64, i64 }, ptr %a19 store { ptr, i64, i64 } %t50, ptr %a51 @@ -94054,14 +98079,14 @@ ok8897: %t56 = getelementptr inbounds { i64, { ptr, i64, i64 }, i1 }, ptr %t55, i64 %t53 %t57 = load i32, ptr %a52 %t58 = icmp ne i32 %t57, 0 - br i1 %t58, label %map.new8898, label %map.have8899 -map.new8898: + br i1 %t58, label %map.new9303, label %map.have9304 +map.new9303: %t59 = getelementptr inbounds { i64, { ptr, i64, i64 }, i1 }, ptr %t56, i32 0, i32 1 call void @finch_str_copy(ptr %t59, ptr %a51) %t60 = getelementptr inbounds { i64, { ptr, i64, i64 }, i1 }, ptr %t56, i32 0, i32 2 store i1 false, ptr %t60 - br label %map.have8899 -map.have8899: + br label %map.have9304 +map.have9304: %t61 = getelementptr inbounds { i64, { ptr, i64, i64 }, i1 }, ptr %t56, i32 0, i32 2 store i1 true, ptr %t61 %t62 = load { ptr, i64, i64 }, ptr %a23 @@ -94080,15 +98105,15 @@ map.have8899: store %S.C.CXCursor %t74, ptr %a75 %t76 = call i32 @clang_getCursorKind(ptr byval(%S.C.CXCursor) align 8 %a75) %t77 = icmp eq i32 %t76, 3 - br i1 %t77, label %then8900, label %endif8902 -then8900: + br i1 %t77, label %then9305, label %endif9307 +then9305: %t78 = getelementptr inbounds %S.cimport.CStruct, ptr %a73, i32 0, i32 4 %t79 = load { ptr, i64, i64 }, ptr %t78 - store { ptr, i64, i64 } { ptr @.str.6259, i64 12, i64 0 }, ptr %t78 + store { ptr, i64, i64 } { ptr @.str.6467, i64 12, i64 0 }, ptr %t78 store { ptr, i64, i64 } %t79, ptr %a80 call void @finch_str_drop(ptr %a80) - br label %endif8902 -endif8902: + br label %endif9307 +endif9307: %t81 = load ptr, ptr %a1 %t82 = insertvalue %S.cimport.FieldCtx zeroinitializer, ptr %t81, 0 %t83 = insertvalue %S.cimport.FieldCtx %t82, ptr %a73, 1 @@ -94098,18 +98123,18 @@ endif8902: %t87 = call i32 @clang_Type_visitFields(ptr byval(%S.C.CXType) align 8 %a86, ptr @finch.c.cimport.visitField, ptr %a84) %t88 = load ptr, ptr %a1 %t89 = icmp eq ptr %t88, null - br i1 %t89, label %panic8903, label %ok8904 -panic8903: - call void @finch_panic(ptr @.str.6260, i64 176, ptr @.str.6261) + br i1 %t89, label %panic9308, label %ok9309 +panic9308: + call void @finch_panic(ptr @.str.6468, i64 176, ptr @.str.6469) unreachable -ok8904: +ok9309: %t90 = getelementptr inbounds %S.cimport.Importer, ptr %t88, i32 0, i32 4 %t91 = load { ptr, i64, i64 }, ptr %a19 store { ptr, i64, i64 } %t91, ptr %a92 %t93 = call i64 @finch_map_find(ptr %t90, ptr %a92, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, i1 }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t94 = icmp sge i64 %t93, 0 - br i1 %t94, label %remove.hit8905, label %remove.end8906 -remove.hit8905: + br i1 %t94, label %remove.hit9310, label %remove.end9311 +remove.hit9310: %t95 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t90, i32 0, i32 0 %t96 = load ptr, ptr %t95 %t97 = getelementptr inbounds { i64, { ptr, i64, i64 }, i1 }, ptr %t96, i64 %t93 @@ -94117,16 +98142,16 @@ remove.hit8905: call void @finch_str_drop(ptr %t98) %t99 = getelementptr inbounds { i64, { ptr, i64, i64 }, i1 }, ptr %t97, i32 0, i32 2 call void @finch_map_remove_at(ptr %t90, i64 %t93, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, i1 }, ptr null, i32 1) to i64)) - br label %remove.end8906 -remove.end8906: + br label %remove.end9311 +remove.end9311: %t100 = load %S.cimport.CStruct, ptr %a73 %t101 = load ptr, ptr %a1 %t102 = icmp eq ptr %t101, null - br i1 %t102, label %panic8907, label %ok8908 -panic8907: - call void @finch_panic(ptr @.str.6262, i64 177, ptr @.str.6263) + br i1 %t102, label %panic9312, label %ok9313 +panic9312: + call void @finch_panic(ptr @.str.6470, i64 177, ptr @.str.6471) unreachable -ok8908: +ok9313: %t103 = getelementptr inbounds %S.cimport.Importer, ptr %t101, i32 0, i32 0 %t104 = getelementptr inbounds %S.cimport.CImports, ptr %t103, i32 0, i32 3 %t105 = load { ptr, i64, i64 }, ptr %a23 @@ -94138,14 +98163,14 @@ ok8908: %t111 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr %t110, i64 %t108 %t112 = load i32, ptr %a107 %t113 = icmp ne i32 %t112, 0 - br i1 %t113, label %map.new8909, label %map.have8910 -map.new8909: + br i1 %t113, label %map.new9314, label %map.have9315 +map.new9314: %t114 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr %t111, i32 0, i32 1 call void @finch_str_copy(ptr %t114, ptr %a106) %t115 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr %t111, i32 0, i32 2 store %S.cimport.CStruct zeroinitializer, ptr %t115 - br label %map.have8910 -map.have8910: + br label %map.have9315 +map.have9315: %t116 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr %t111, i32 0, i32 2 store %S.cimport.CStruct %t100, ptr %a117 call void @finch.copy.S_cimport_CStruct(ptr %a118, ptr %a117) @@ -94156,11 +98181,11 @@ map.have8910: call void @finch.drop.S_cimport_CStruct(ptr %a121) %t122 = load ptr, ptr %a1 %t123 = icmp eq ptr %t122, null - br i1 %t123, label %panic8911, label %ok8912 -panic8911: - call void @finch_panic(ptr @.str.6264, i64 178, ptr @.str.6265) + br i1 %t123, label %panic9316, label %ok9317 +panic9316: + call void @finch_panic(ptr @.str.6472, i64 178, ptr @.str.6473) unreachable -ok8912: +ok9317: %t124 = getelementptr inbounds %S.cimport.Importer, ptr %t122, i32 0, i32 0 %t125 = getelementptr inbounds %S.cimport.CImports, ptr %t124, i32 0, i32 4 %t126 = getelementptr inbounds { ptr, i64, i64 }, ptr %t125, i32 0, i32 1 @@ -94258,39 +98283,39 @@ entry: store %S.C.CXCursor %t34, ptr %a35 %t36 = call i32 @clang_Cursor_isBitField(ptr byval(%S.C.CXCursor) align 8 %a35) %t37 = icmp ne i32 %t36, 0 - br i1 %t37, label %then8913, label %else8914 -then8913: + br i1 %t37, label %then9318, label %else9319 +then9318: %t38 = load ptr, ptr %a4 %t39 = icmp eq ptr %t38, null - br i1 %t39, label %panic8916, label %ok8917 -panic8916: - call void @finch_panic(ptr @.str.6267, i64 195, ptr @.str.6268) + br i1 %t39, label %panic9321, label %ok9322 +panic9321: + call void @finch_panic(ptr @.str.6475, i64 195, ptr @.str.6476) unreachable -ok8917: +ok9322: %t40 = getelementptr inbounds %S.cimport.FieldCtx, ptr %t38, i32 0, i32 1 %t41 = load ptr, ptr %t40 %t42 = icmp eq ptr %t41, null - br i1 %t42, label %panic8918, label %ok8919 -panic8918: - call void @finch_panic(ptr @.str.6269, i64 195, ptr @.str.6270) + br i1 %t42, label %panic9323, label %ok9324 +panic9323: + call void @finch_panic(ptr @.str.6477, i64 195, ptr @.str.6478) unreachable -ok8919: +ok9324: %t43 = getelementptr inbounds %S.cimport.CStruct, ptr %t41, i32 0, i32 4 %t44 = load { ptr, i64, i64 }, ptr %t43 - store { ptr, i64, i64 } { ptr @.str.6266, i64 14, i64 0 }, ptr %t43 + store { ptr, i64, i64 } { ptr @.str.6474, i64 14, i64 0 }, ptr %t43 store { ptr, i64, i64 } %t44, ptr %a45 call void @finch_str_drop(ptr %a45) %t46 = getelementptr inbounds %S.cimport.CField, ptr %a12, i32 0, i32 5 store i1 true, ptr %t46 - br label %endif8915 -else8914: + br label %endif9320 +else9319: %t47 = getelementptr inbounds %S.C.CXType, ptr %a20, i32 0, i32 0 %t48 = load i32, ptr %t47 %t49 = icmp eq i32 %t48, 105 - br label %logic.from8920 -logic.from8920: - br i1 %t49, label %logic.rhs8921, label %logic.end8922 -logic.rhs8921: + br label %logic.from9325 +logic.from9325: + br i1 %t49, label %logic.rhs9326, label %logic.end9327 +logic.rhs9326: %t51 = load %S.C.CXType, ptr %a20 store %S.C.CXType %t51, ptr %a52 call void @clang_getTypeDeclaration(ptr sret(%S.C.CXCursor) align 16 %a50, ptr byval(%S.C.CXType) align 8 %a52) @@ -94298,24 +98323,24 @@ logic.rhs8921: store %S.C.CXCursor %t53, ptr %a54 %t55 = call i32 @clang_getCursorKind(ptr byval(%S.C.CXCursor) align 8 %a54) %t56 = icmp eq i32 %t55, 3 - br label %logic.rend8923 -logic.rend8923: - br label %logic.end8922 -logic.end8922: - %t57 = phi i1 [ false, %logic.from8920 ], [ %t56, %logic.rend8923 ] - br i1 %t57, label %then8924, label %else8925 -then8924: + br label %logic.rend9328 +logic.rend9328: + br label %logic.end9327 +logic.end9327: + %t57 = phi i1 [ false, %logic.from9325 ], [ %t56, %logic.rend9328 ] + br i1 %t57, label %then9329, label %else9330 +then9329: %t58 = getelementptr inbounds %S.cimport.CField, ptr %a12, i32 0, i32 5 store i1 true, ptr %t58 - br label %endif8926 -else8925: + br label %endif9331 +else9330: %t59 = load ptr, ptr %a4 %t60 = icmp eq ptr %t59, null - br i1 %t60, label %panic8927, label %ok8928 -panic8927: - call void @finch_panic(ptr @.str.6271, i64 200, ptr @.str.6272) + br i1 %t60, label %panic9332, label %ok9333 +panic9332: + call void @finch_panic(ptr @.str.6479, i64 200, ptr @.str.6480) unreachable -ok8928: +ok9333: %t61 = getelementptr inbounds %S.cimport.FieldCtx, ptr %t59, i32 0, i32 0 %t62 = load ptr, ptr %t61 %t63 = load %S.C.CXType, ptr %a20 @@ -94323,8 +98348,8 @@ ok8928: store %S.cimport.Mapped %t64, ptr %a65 %t66 = getelementptr inbounds %S.cimport.Mapped, ptr %a65, i32 0, i32 2 %t67 = load i1, ptr %t66 - br i1 %t67, label %then8929, label %else8930 -then8929: + br i1 %t67, label %then9334, label %else9335 +then9334: %t68 = getelementptr inbounds %S.cimport.Mapped, ptr %a65, i32 0, i32 0 %t69 = load %S.ast.Type, ptr %t68 %t70 = getelementptr inbounds %S.cimport.CField, ptr %a12, i32 0, i32 1 @@ -94335,65 +98360,65 @@ then8929: store %S.ast.Type %t73, ptr %t70 store %S.ast.Type %t74, ptr %a75 call void @finch.drop.S_ast_Type(ptr %a75) - br label %endif8931 -else8930: + br label %endif9336 +else9335: %t76 = getelementptr inbounds %S.cimport.CField, ptr %a12, i32 0, i32 5 store i1 true, ptr %t76 - br label %endif8931 -endif8931: + br label %endif9336 +endif9336: call void @finch.drop.S_cimport_Mapped(ptr %a65) - br label %endif8926 -endif8926: - br label %endif8915 -endif8915: + br label %endif9331 +endif9331: + br label %endif9320 +endif9320: %t77 = getelementptr inbounds %S.cimport.CField, ptr %a12, i32 0, i32 5 %t78 = load i1, ptr %t77 - br i1 %t78, label %then8932, label %endif8934 -then8932: + br i1 %t78, label %then9337, label %endif9339 +then9337: %t79 = load ptr, ptr %a4 %t80 = icmp eq ptr %t79, null - br i1 %t80, label %panic8935, label %ok8936 -panic8935: - call void @finch_panic(ptr @.str.6273, i64 208, ptr @.str.6274) + br i1 %t80, label %panic9340, label %ok9341 +panic9340: + call void @finch_panic(ptr @.str.6481, i64 208, ptr @.str.6482) unreachable -ok8936: +ok9341: %t81 = getelementptr inbounds %S.cimport.FieldCtx, ptr %t79, i32 0, i32 1 %t82 = load ptr, ptr %t81 %t83 = icmp eq ptr %t82, null - br i1 %t83, label %panic8937, label %ok8938 -panic8937: - call void @finch_panic(ptr @.str.6275, i64 208, ptr @.str.6276) + br i1 %t83, label %panic9342, label %ok9343 +panic9342: + call void @finch_panic(ptr @.str.6483, i64 208, ptr @.str.6484) unreachable -ok8938: +ok9343: %t84 = getelementptr inbounds %S.cimport.CStruct, ptr %t82, i32 0, i32 5 store i1 true, ptr %t84 - br label %endif8934 -endif8934: + br label %endif9339 +endif9339: %t85 = getelementptr inbounds %S.cimport.CField, ptr %a12, i32 0, i32 0 %t86 = getelementptr inbounds { ptr, i64, i64 }, ptr %t85, i32 0, i32 1 %t87 = load i64, ptr %t86 %t88 = icmp eq i64 %t87, 0 - br i1 %t88, label %then8939, label %endif8941 -then8939: + br i1 %t88, label %then9344, label %endif9346 +then9344: %t89 = getelementptr inbounds %S.cimport.CField, ptr %a12, i32 0, i32 5 store i1 true, ptr %t89 - br label %endif8941 -endif8941: + br label %endif9346 +endif9346: %t90 = load ptr, ptr %a4 %t91 = icmp eq ptr %t90, null - br i1 %t91, label %panic8942, label %ok8943 -panic8942: - call void @finch_panic(ptr @.str.6277, i64 213, ptr @.str.6278) + br i1 %t91, label %panic9347, label %ok9348 +panic9347: + call void @finch_panic(ptr @.str.6485, i64 213, ptr @.str.6486) unreachable -ok8943: +ok9348: %t92 = getelementptr inbounds %S.cimport.FieldCtx, ptr %t90, i32 0, i32 1 %t93 = load ptr, ptr %t92 %t94 = icmp eq ptr %t93, null - br i1 %t94, label %panic8944, label %ok8945 -panic8944: - call void @finch_panic(ptr @.str.6279, i64 213, ptr @.str.6280) + br i1 %t94, label %panic9349, label %ok9350 +panic9349: + call void @finch_panic(ptr @.str.6487, i64 213, ptr @.str.6488) unreachable -ok8945: +ok9350: %t95 = getelementptr inbounds %S.cimport.CStruct, ptr %t93, i32 0, i32 1 %t96 = getelementptr inbounds { ptr, i64, i64 }, ptr %t95, i32 0, i32 1 %t97 = load %S.cimport.CField, ptr %a12 @@ -94437,92 +98462,92 @@ entry: store i1 %p1, ptr %a2 %t3 = load i64, ptr %a1 %t4 = icmp eq i64 %t3, 1 - br i1 %t4, label %then8946, label %endif8948 -then8946: + br i1 %t4, label %then9351, label %endif9353 +then9351: %t5 = load i1, ptr %a2 - br i1 %t5, label %then8949, label %endif8951 -then8949: - %t6 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6281, i64 2, i64 0 }) + br i1 %t5, label %then9354, label %endif9356 +then9354: + %t6 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6489, i64 2, i64 0 }) %t7 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t6) store %S.ast.Type %t6, ptr %a8 call void @finch.drop.S_ast_Type(ptr %a8) ret %S.cimport.Mapped %t7 -endif8951: - %t9 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6282, i64 2, i64 0 }) +endif9356: + %t9 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6490, i64 2, i64 0 }) %t10 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t9) store %S.ast.Type %t9, ptr %a11 call void @finch.drop.S_ast_Type(ptr %a11) ret %S.cimport.Mapped %t10 -endif8948: +endif9353: %t12 = load i64, ptr %a1 %t13 = icmp eq i64 %t12, 2 - br i1 %t13, label %then8952, label %endif8954 -then8952: + br i1 %t13, label %then9357, label %endif9359 +then9357: %t14 = load i1, ptr %a2 - br i1 %t14, label %then8955, label %endif8957 -then8955: - %t15 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6283, i64 3, i64 0 }) + br i1 %t14, label %then9360, label %endif9362 +then9360: + %t15 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6491, i64 3, i64 0 }) %t16 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t15) store %S.ast.Type %t15, ptr %a17 call void @finch.drop.S_ast_Type(ptr %a17) ret %S.cimport.Mapped %t16 -endif8957: - %t18 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6284, i64 3, i64 0 }) +endif9362: + %t18 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6492, i64 3, i64 0 }) %t19 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t18) store %S.ast.Type %t18, ptr %a20 call void @finch.drop.S_ast_Type(ptr %a20) ret %S.cimport.Mapped %t19 -endif8954: +endif9359: %t21 = load i64, ptr %a1 %t22 = icmp eq i64 %t21, 4 - br i1 %t22, label %then8958, label %endif8960 -then8958: + br i1 %t22, label %then9363, label %endif9365 +then9363: %t23 = load i1, ptr %a2 - br i1 %t23, label %then8961, label %endif8963 -then8961: - %t24 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6285, i64 3, i64 0 }) + br i1 %t23, label %then9366, label %endif9368 +then9366: + %t24 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6493, i64 3, i64 0 }) %t25 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t24) store %S.ast.Type %t24, ptr %a26 call void @finch.drop.S_ast_Type(ptr %a26) ret %S.cimport.Mapped %t25 -endif8963: - %t27 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6286, i64 3, i64 0 }) +endif9368: + %t27 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6494, i64 3, i64 0 }) %t28 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t27) store %S.ast.Type %t27, ptr %a29 call void @finch.drop.S_ast_Type(ptr %a29) ret %S.cimport.Mapped %t28 -endif8960: +endif9365: %t30 = load i64, ptr %a1 %t31 = icmp eq i64 %t30, 8 - br i1 %t31, label %then8964, label %endif8966 -then8964: + br i1 %t31, label %then9369, label %endif9371 +then9369: %t32 = load i1, ptr %a2 - br i1 %t32, label %then8967, label %endif8969 -then8967: - %t33 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6287, i64 3, i64 0 }) + br i1 %t32, label %then9372, label %endif9374 +then9372: + %t33 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6495, i64 3, i64 0 }) %t34 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t33) store %S.ast.Type %t33, ptr %a35 call void @finch.drop.S_ast_Type(ptr %a35) ret %S.cimport.Mapped %t34 -endif8969: - %t36 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6288, i64 3, i64 0 }) +endif9374: + %t36 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6496, i64 3, i64 0 }) %t37 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t36) store %S.ast.Type %t36, ptr %a38 call void @finch.drop.S_ast_Type(ptr %a38) ret %S.cimport.Mapped %t37 -endif8966: +endif9371: %t39 = load i64, ptr %a1 %t40 = mul i64 %t39, 8 call void @finch_str_from_int(ptr %a41, i64 %t40) %t42 = load { ptr, i64, i64 }, ptr %a41 - store { ptr, i64, i64 } { ptr @.str.6289, i64 7, i64 0 }, ptr %a44 + store { ptr, i64, i64 } { ptr @.str.6497, i64 7, i64 0 }, ptr %a44 store { ptr, i64, i64 } %t42, ptr %a45 call void @finch_str_concat(ptr %a43, ptr %a44, ptr %a45) store { ptr, i64, i64 } %t42, ptr %a46 call void @finch_str_drop(ptr %a46) %t47 = load { ptr, i64, i64 }, ptr %a43 store { ptr, i64, i64 } %t47, ptr %a49 - store { ptr, i64, i64 } { ptr @.str.6290, i64 11, i64 0 }, ptr %a50 + store { ptr, i64, i64 } { ptr @.str.6498, i64 11, i64 0 }, ptr %a50 call void @finch_str_concat(ptr %a48, ptr %a49, ptr %a50) store { ptr, i64, i64 } %t47, ptr %a51 call void @finch_str_drop(ptr %a51) @@ -94606,181 +98631,181 @@ entry: store i32 %t15, ptr %a16 %t17 = load i32, ptr %a16 %t18 = icmp eq i32 %t17, 2 - br i1 %t18, label %then8970, label %endif8972 -then8970: - %t19 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6291, i64 4, i64 0 }) + br i1 %t18, label %then9375, label %endif9377 +then9375: + %t19 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6499, i64 4, i64 0 }) %t20 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t19) store %S.ast.Type %t19, ptr %a21 call void @finch.drop.S_ast_Type(ptr %a21) ret %S.cimport.Mapped %t20 -endif8972: +endif9377: %t22 = load i32, ptr %a16 %t23 = icmp eq i32 %t22, 3 - br i1 %t23, label %then8973, label %endif8975 -then8973: - %t24 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6292, i64 4, i64 0 }) + br i1 %t23, label %then9378, label %endif9380 +then9378: + %t24 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6500, i64 4, i64 0 }) %t25 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t24) store %S.ast.Type %t24, ptr %a26 call void @finch.drop.S_ast_Type(ptr %a26) ret %S.cimport.Mapped %t25 -endif8975: +endif9380: %t27 = load i32, ptr %a16 %t28 = icmp eq i32 %t27, 13 - br label %logic.from8976 -logic.from8976: - br i1 %t28, label %logic.end8978, label %logic.rhs8977 -logic.rhs8977: + br label %logic.from9381 +logic.from9381: + br i1 %t28, label %logic.end9383, label %logic.rhs9382 +logic.rhs9382: %t29 = load i32, ptr %a16 %t30 = icmp eq i32 %t29, 4 - br label %logic.rend8979 -logic.rend8979: - br label %logic.end8978 -logic.end8978: - %t31 = phi i1 [ true, %logic.from8976 ], [ %t30, %logic.rend8979 ] - br i1 %t31, label %then8980, label %endif8982 -then8980: - %t32 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6293, i64 4, i64 0 }) + br label %logic.rend9384 +logic.rend9384: + br label %logic.end9383 +logic.end9383: + %t31 = phi i1 [ true, %logic.from9381 ], [ %t30, %logic.rend9384 ] + br i1 %t31, label %then9385, label %endif9387 +then9385: + %t32 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6501, i64 4, i64 0 }) %t33 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t32) store %S.ast.Type %t32, ptr %a34 call void @finch.drop.S_ast_Type(ptr %a34) ret %S.cimport.Mapped %t33 -endif8982: +endif9387: %t35 = load i32, ptr %a16 %t36 = icmp eq i32 %t35, 14 - br label %logic.from8983 -logic.from8983: - br i1 %t36, label %logic.end8985, label %logic.rhs8984 -logic.rhs8984: + br label %logic.from9388 +logic.from9388: + br i1 %t36, label %logic.end9390, label %logic.rhs9389 +logic.rhs9389: %t37 = load i32, ptr %a16 %t38 = icmp eq i32 %t37, 16 - br label %logic.rend8986 -logic.rend8986: - br label %logic.end8985 -logic.end8985: - %t39 = phi i1 [ true, %logic.from8983 ], [ %t38, %logic.rend8986 ] - br label %logic.from8987 -logic.from8987: - br i1 %t39, label %logic.end8989, label %logic.rhs8988 -logic.rhs8988: + br label %logic.rend9391 +logic.rend9391: + br label %logic.end9390 +logic.end9390: + %t39 = phi i1 [ true, %logic.from9388 ], [ %t38, %logic.rend9391 ] + br label %logic.from9392 +logic.from9392: + br i1 %t39, label %logic.end9394, label %logic.rhs9393 +logic.rhs9393: %t40 = load i32, ptr %a16 %t41 = icmp eq i32 %t40, 17 - br label %logic.rend8990 -logic.rend8990: - br label %logic.end8989 -logic.end8989: - %t42 = phi i1 [ true, %logic.from8987 ], [ %t41, %logic.rend8990 ] - br label %logic.from8991 -logic.from8991: - br i1 %t42, label %logic.end8993, label %logic.rhs8992 -logic.rhs8992: + br label %logic.rend9395 +logic.rend9395: + br label %logic.end9394 +logic.end9394: + %t42 = phi i1 [ true, %logic.from9392 ], [ %t41, %logic.rend9395 ] + br label %logic.from9396 +logic.from9396: + br i1 %t42, label %logic.end9398, label %logic.rhs9397 +logic.rhs9397: %t43 = load i32, ptr %a16 %t44 = icmp eq i32 %t43, 18 - br label %logic.rend8994 -logic.rend8994: - br label %logic.end8993 -logic.end8993: - %t45 = phi i1 [ true, %logic.from8991 ], [ %t44, %logic.rend8994 ] - br label %logic.from8995 -logic.from8995: - br i1 %t45, label %logic.end8997, label %logic.rhs8996 -logic.rhs8996: + br label %logic.rend9399 +logic.rend9399: + br label %logic.end9398 +logic.end9398: + %t45 = phi i1 [ true, %logic.from9396 ], [ %t44, %logic.rend9399 ] + br label %logic.from9400 +logic.from9400: + br i1 %t45, label %logic.end9402, label %logic.rhs9401 +logic.rhs9401: %t46 = load i32, ptr %a16 %t47 = icmp eq i32 %t46, 19 - br label %logic.rend8998 -logic.rend8998: - br label %logic.end8997 -logic.end8997: - %t48 = phi i1 [ true, %logic.from8995 ], [ %t47, %logic.rend8998 ] - br i1 %t48, label %then8999, label %endif9001 -then8999: + br label %logic.rend9403 +logic.rend9403: + br label %logic.end9402 +logic.end9402: + %t48 = phi i1 [ true, %logic.from9400 ], [ %t47, %logic.rend9403 ] + br i1 %t48, label %then9404, label %endif9406 +then9404: %t49 = load i64, ptr %a13 %t50 = call %S.cimport.Mapped @finch.cimport.sized(i64 %t49, i1 true) ret %S.cimport.Mapped %t50 -endif9001: +endif9406: %t51 = load i32, ptr %a16 %t52 = icmp eq i32 %t51, 5 - br label %logic.from9002 -logic.from9002: - br i1 %t52, label %logic.end9004, label %logic.rhs9003 -logic.rhs9003: + br label %logic.from9407 +logic.from9407: + br i1 %t52, label %logic.end9409, label %logic.rhs9408 +logic.rhs9408: %t53 = load i32, ptr %a16 %t54 = icmp eq i32 %t53, 8 - br label %logic.rend9005 -logic.rend9005: - br label %logic.end9004 -logic.end9004: - %t55 = phi i1 [ true, %logic.from9002 ], [ %t54, %logic.rend9005 ] - br label %logic.from9006 -logic.from9006: - br i1 %t55, label %logic.end9008, label %logic.rhs9007 -logic.rhs9007: + br label %logic.rend9410 +logic.rend9410: + br label %logic.end9409 +logic.end9409: + %t55 = phi i1 [ true, %logic.from9407 ], [ %t54, %logic.rend9410 ] + br label %logic.from9411 +logic.from9411: + br i1 %t55, label %logic.end9413, label %logic.rhs9412 +logic.rhs9412: %t56 = load i32, ptr %a16 %t57 = icmp eq i32 %t56, 9 - br label %logic.rend9009 -logic.rend9009: - br label %logic.end9008 -logic.end9008: - %t58 = phi i1 [ true, %logic.from9006 ], [ %t57, %logic.rend9009 ] - br label %logic.from9010 -logic.from9010: - br i1 %t58, label %logic.end9012, label %logic.rhs9011 -logic.rhs9011: + br label %logic.rend9414 +logic.rend9414: + br label %logic.end9413 +logic.end9413: + %t58 = phi i1 [ true, %logic.from9411 ], [ %t57, %logic.rend9414 ] + br label %logic.from9415 +logic.from9415: + br i1 %t58, label %logic.end9417, label %logic.rhs9416 +logic.rhs9416: %t59 = load i32, ptr %a16 %t60 = icmp eq i32 %t59, 10 - br label %logic.rend9013 -logic.rend9013: - br label %logic.end9012 -logic.end9012: - %t61 = phi i1 [ true, %logic.from9010 ], [ %t60, %logic.rend9013 ] - br label %logic.from9014 -logic.from9014: - br i1 %t61, label %logic.end9016, label %logic.rhs9015 -logic.rhs9015: + br label %logic.rend9418 +logic.rend9418: + br label %logic.end9417 +logic.end9417: + %t61 = phi i1 [ true, %logic.from9415 ], [ %t60, %logic.rend9418 ] + br label %logic.from9419 +logic.from9419: + br i1 %t61, label %logic.end9421, label %logic.rhs9420 +logic.rhs9420: %t62 = load i32, ptr %a16 %t63 = icmp eq i32 %t62, 11 - br label %logic.rend9017 -logic.rend9017: - br label %logic.end9016 -logic.end9016: - %t64 = phi i1 [ true, %logic.from9014 ], [ %t63, %logic.rend9017 ] - br i1 %t64, label %then9018, label %endif9020 -then9018: + br label %logic.rend9422 +logic.rend9422: + br label %logic.end9421 +logic.end9421: + %t64 = phi i1 [ true, %logic.from9419 ], [ %t63, %logic.rend9422 ] + br i1 %t64, label %then9423, label %endif9425 +then9423: %t65 = load i64, ptr %a13 %t66 = call %S.cimport.Mapped @finch.cimport.sized(i64 %t65, i1 false) ret %S.cimport.Mapped %t66 -endif9020: +endif9425: %t67 = load i32, ptr %a16 %t68 = icmp eq i32 %t67, 106 - br i1 %t68, label %then9021, label %endif9023 -then9021: + br i1 %t68, label %then9426, label %endif9428 +then9426: %t69 = load i64, ptr %a13 %t70 = call %S.cimport.Mapped @finch.cimport.sized(i64 %t69, i1 true) ret %S.cimport.Mapped %t70 -endif9023: +endif9428: %t71 = load i32, ptr %a16 %t72 = icmp eq i32 %t71, 21 - br i1 %t72, label %then9024, label %endif9026 -then9024: - %t73 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6294, i64 3, i64 0 }) + br i1 %t72, label %then9429, label %endif9431 +then9429: + %t73 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6502, i64 3, i64 0 }) %t74 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t73) store %S.ast.Type %t73, ptr %a75 call void @finch.drop.S_ast_Type(ptr %a75) ret %S.cimport.Mapped %t74 -endif9026: +endif9431: %t76 = load i32, ptr %a16 %t77 = icmp eq i32 %t76, 22 - br i1 %t77, label %then9027, label %endif9029 -then9027: - %t78 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6295, i64 5, i64 0 }) + br i1 %t77, label %then9432, label %endif9434 +then9432: + %t78 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6503, i64 5, i64 0 }) %t79 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t78) store %S.ast.Type %t78, ptr %a80 call void @finch.drop.S_ast_Type(ptr %a80) ret %S.cimport.Mapped %t79 -endif9029: +endif9434: %t81 = load i32, ptr %a16 %t82 = icmp eq i32 %t81, 101 - br i1 %t82, label %then9030, label %endif9032 -then9030: + br i1 %t82, label %then9435, label %endif9437 +then9435: %t85 = load %S.C.CXType, ptr %a9 store %S.C.CXType %t85, ptr %a86 call void @clang_getPointeeType(ptr sret(%S.C.CXType) align 16 %a84, ptr byval(%S.C.CXType) align 8 %a86) @@ -94792,90 +98817,90 @@ then9030: %t91 = getelementptr inbounds %S.C.CXType, ptr %a90, i32 0, i32 0 %t92 = load i32, ptr %t91 %t93 = icmp eq i32 %t92, 13 - br label %logic.from9033 -logic.from9033: - br i1 %t93, label %logic.end9035, label %logic.rhs9034 -logic.rhs9034: + br label %logic.from9438 +logic.from9438: + br i1 %t93, label %logic.end9440, label %logic.rhs9439 +logic.rhs9439: %t94 = getelementptr inbounds %S.C.CXType, ptr %a90, i32 0, i32 0 %t95 = load i32, ptr %t94 %t96 = icmp eq i32 %t95, 4 - br label %logic.rend9036 -logic.rend9036: - br label %logic.end9035 -logic.end9035: - %t97 = phi i1 [ true, %logic.from9033 ], [ %t96, %logic.rend9036 ] - br label %logic.from9037 -logic.from9037: - br i1 %t97, label %logic.rhs9038, label %logic.end9039 -logic.rhs9038: + br label %logic.rend9441 +logic.rend9441: + br label %logic.end9440 +logic.end9440: + %t97 = phi i1 [ true, %logic.from9438 ], [ %t96, %logic.rend9441 ] + br label %logic.from9442 +logic.from9442: + br i1 %t97, label %logic.rhs9443, label %logic.end9444 +logic.rhs9443: %t98 = load i1, ptr %a3 - br label %logic.rend9040 -logic.rend9040: - br label %logic.end9039 -logic.end9039: - %t99 = phi i1 [ false, %logic.from9037 ], [ %t98, %logic.rend9040 ] - br i1 %t99, label %then9041, label %endif9043 -then9041: + br label %logic.rend9445 +logic.rend9445: + br label %logic.end9444 +logic.end9444: + %t99 = phi i1 [ false, %logic.from9442 ], [ %t98, %logic.rend9445 ] + br i1 %t99, label %then9446, label %endif9448 +then9446: %t100 = load i1, ptr %a4 %t101 = xor i1 %t100, true - br label %logic.from9044 -logic.from9044: - br i1 %t101, label %logic.end9046, label %logic.rhs9045 -logic.rhs9045: + br label %logic.from9449 +logic.from9449: + br i1 %t101, label %logic.end9451, label %logic.rhs9450 +logic.rhs9450: %t102 = load %S.C.CXType, ptr %a90 store %S.C.CXType %t102, ptr %a103 %t104 = call i32 @clang_isConstQualifiedType(ptr byval(%S.C.CXType) align 8 %a103) %t105 = icmp ne i32 %t104, 0 - br label %logic.rend9047 -logic.rend9047: - br label %logic.end9046 -logic.end9046: - %t106 = phi i1 [ true, %logic.from9044 ], [ %t105, %logic.rend9047 ] - br i1 %t106, label %then9048, label %endif9050 -then9048: - %t107 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6296, i64 3, i64 0 }) + br label %logic.rend9452 +logic.rend9452: + br label %logic.end9451 +logic.end9451: + %t106 = phi i1 [ true, %logic.from9449 ], [ %t105, %logic.rend9452 ] + br i1 %t106, label %then9453, label %endif9455 +then9453: + %t107 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6504, i64 3, i64 0 }) %t108 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t107) store %S.ast.Type %t107, ptr %a109 call void @finch.drop.S_ast_Type(ptr %a109) ret %S.cimport.Mapped %t108 -endif9050: - br label %endif9043 -endif9043: +endif9455: + br label %endif9448 +endif9448: %t110 = getelementptr inbounds %S.C.CXType, ptr %a90, i32 0, i32 0 %t111 = load i32, ptr %t110 %t112 = icmp eq i32 %t111, 2 - br label %logic.from9051 -logic.from9051: - br i1 %t112, label %logic.end9053, label %logic.rhs9052 -logic.rhs9052: + br label %logic.from9456 +logic.from9456: + br i1 %t112, label %logic.end9458, label %logic.rhs9457 +logic.rhs9457: %t113 = getelementptr inbounds %S.C.CXType, ptr %a90, i32 0, i32 0 %t114 = load i32, ptr %t113 %t115 = icmp eq i32 %t114, 111 - br label %logic.rend9054 -logic.rend9054: - br label %logic.end9053 -logic.end9053: - %t116 = phi i1 [ true, %logic.from9051 ], [ %t115, %logic.rend9054 ] - br label %logic.from9055 -logic.from9055: - br i1 %t116, label %logic.end9057, label %logic.rhs9056 -logic.rhs9056: + br label %logic.rend9459 +logic.rend9459: + br label %logic.end9458 +logic.end9458: + %t116 = phi i1 [ true, %logic.from9456 ], [ %t115, %logic.rend9459 ] + br label %logic.from9460 +logic.from9460: + br i1 %t116, label %logic.end9462, label %logic.rhs9461 +logic.rhs9461: %t117 = getelementptr inbounds %S.C.CXType, ptr %a90, i32 0, i32 0 %t118 = load i32, ptr %t117 %t119 = icmp eq i32 %t118, 110 - br label %logic.rend9058 -logic.rend9058: - br label %logic.end9057 -logic.end9057: - %t120 = phi i1 [ true, %logic.from9055 ], [ %t119, %logic.rend9058 ] - br i1 %t120, label %then9059, label %endif9061 -then9059: - %t121 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6297, i64 3, i64 0 }) + br label %logic.rend9463 +logic.rend9463: + br label %logic.end9462 +logic.end9462: + %t120 = phi i1 [ true, %logic.from9460 ], [ %t119, %logic.rend9463 ] + br i1 %t120, label %then9464, label %endif9466 +then9464: + %t121 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6505, i64 3, i64 0 }) %t122 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t121) store %S.ast.Type %t121, ptr %a123 call void @finch.drop.S_ast_Type(ptr %a123) ret %S.cimport.Mapped %t122 -endif9061: +endif9466: %t124 = load ptr, ptr %a1 %t125 = load %S.C.CXType, ptr %a90 %t126 = call %S.cimport.Mapped @finch.cimport.mapType(ptr %t124, %S.C.CXType %t125, i1 false, i1 false) @@ -94883,47 +98908,47 @@ endif9061: %t128 = getelementptr inbounds %S.cimport.Mapped, ptr %a127, i32 0, i32 2 %t129 = load i1, ptr %t128 %t130 = xor i1 %t129, true - br label %logic.from9062 -logic.from9062: - br i1 %t130, label %logic.end9064, label %logic.rhs9063 -logic.rhs9063: + br label %logic.from9467 +logic.from9467: + br i1 %t130, label %logic.end9469, label %logic.rhs9468 +logic.rhs9468: %t131 = getelementptr inbounds %S.cimport.Mapped, ptr %a127, i32 0, i32 0 %t132 = getelementptr inbounds %S.ast.Type, ptr %t131, i32 0, i32 0 %t133 = load { ptr, i64, i64 }, ptr %t132 store { ptr, i64, i64 } %t133, ptr %a134 - store { ptr, i64, i64 } { ptr @.str.6298, i64 4, i64 0 }, ptr %a135 + store { ptr, i64, i64 } { ptr @.str.6506, i64 4, i64 0 }, ptr %a135 %t136 = call i32 @finch_str_eq(ptr %a134, ptr %a135) %t137 = icmp ne i32 %t136, 0 - br label %logic.rend9065 -logic.rend9065: - br label %logic.end9064 -logic.end9064: - %t138 = phi i1 [ true, %logic.from9062 ], [ %t137, %logic.rend9065 ] - br label %logic.from9066 -logic.from9066: - br i1 %t138, label %logic.end9068, label %logic.rhs9067 -logic.rhs9067: + br label %logic.rend9470 +logic.rend9470: + br label %logic.end9469 +logic.end9469: + %t138 = phi i1 [ true, %logic.from9467 ], [ %t137, %logic.rend9470 ] + br label %logic.from9471 +logic.from9471: + br i1 %t138, label %logic.end9473, label %logic.rhs9472 +logic.rhs9472: %t139 = getelementptr inbounds %S.cimport.Mapped, ptr %a127, i32 0, i32 0 %t140 = getelementptr inbounds %S.ast.Type, ptr %t139, i32 0, i32 0 %t141 = load { ptr, i64, i64 }, ptr %t140 store { ptr, i64, i64 } %t141, ptr %a142 - store { ptr, i64, i64 } { ptr @.str.6299, i64 5, i64 0 }, ptr %a143 + store { ptr, i64, i64 } { ptr @.str.6507, i64 5, i64 0 }, ptr %a143 %t144 = call i32 @finch_str_eq(ptr %a142, ptr %a143) %t145 = icmp ne i32 %t144, 0 - br label %logic.rend9069 -logic.rend9069: - br label %logic.end9068 -logic.end9068: - %t146 = phi i1 [ true, %logic.from9066 ], [ %t145, %logic.rend9069 ] - br i1 %t146, label %then9070, label %endif9072 -then9070: - %t147 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6300, i64 3, i64 0 }) + br label %logic.rend9474 +logic.rend9474: + br label %logic.end9473 +logic.end9473: + %t146 = phi i1 [ true, %logic.from9471 ], [ %t145, %logic.rend9474 ] + br i1 %t146, label %then9475, label %endif9477 +then9475: + %t147 = call %S.ast.Type @finch.ast.simple({ ptr, i64, i64 } { ptr @.str.6508, i64 3, i64 0 }) %t148 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t147) store %S.ast.Type %t147, ptr %a149 call void @finch.drop.S_ast_Type(ptr %a149) call void @finch.drop.S_cimport_Mapped(ptr %a127) ret %S.cimport.Mapped %t148 -endif9072: +endif9477: %t150 = getelementptr inbounds %S.cimport.Mapped, ptr %a127, i32 0, i32 0 %t151 = load %S.ast.Type, ptr %t150 %t152 = call %S.ast.Type @finch.ast.ptrTo(%S.ast.Type %t151) @@ -94932,11 +98957,11 @@ endif9072: call void @finch.drop.S_ast_Type(ptr %a154) call void @finch.drop.S_cimport_Mapped(ptr %a127) ret %S.cimport.Mapped %t153 -endif9032: +endif9437: %t155 = load i32, ptr %a16 %t156 = icmp eq i32 %t155, 105 - br i1 %t156, label %then9073, label %endif9075 -then9073: + br i1 %t156, label %then9478, label %endif9480 +then9478: %t158 = load %S.C.CXType, ptr %a9 store %S.C.CXType %t158, ptr %a159 call void @clang_getTypeDeclaration(ptr sret(%S.C.CXCursor) align 16 %a157, ptr byval(%S.C.CXType) align 8 %a159) @@ -94944,11 +98969,11 @@ then9073: store %S.C.CXCursor %t160, ptr %a161 %t162 = call i32 @clang_getCursorKind(ptr byval(%S.C.CXCursor) align 8 %a161) %t163 = icmp eq i32 %t162, 3 - br i1 %t163, label %then9076, label %endif9078 -then9076: - %t164 = call %S.cimport.Mapped @finch.cimport.no({ ptr, i64, i64 } { ptr @.str.6301, i64 23, i64 0 }) + br i1 %t163, label %then9481, label %endif9483 +then9481: + %t164 = call %S.cimport.Mapped @finch.cimport.no({ ptr, i64, i64 } { ptr @.str.6509, i64 23, i64 0 }) ret %S.cimport.Mapped %t164 -endif9078: +endif9483: %t165 = load ptr, ptr %a1 %t166 = load %S.C.CXType, ptr %a9 %t167 = call { ptr, i64, i64 } @finch.cimport.defineRecord(ptr %t165, %S.C.CXType %t166) @@ -94956,29 +98981,29 @@ endif9078: %t169 = getelementptr inbounds { ptr, i64, i64 }, ptr %a168, i32 0, i32 1 %t170 = load i64, ptr %t169 %t171 = icmp eq i64 %t170, 0 - br i1 %t171, label %then9079, label %endif9081 -then9079: - %t172 = call %S.cimport.Mapped @finch.cimport.no({ ptr, i64, i64 } { ptr @.str.6302, i64 36, i64 0 }) + br i1 %t171, label %then9484, label %endif9486 +then9484: + %t172 = call %S.cimport.Mapped @finch.cimport.no({ ptr, i64, i64 } { ptr @.str.6510, i64 36, i64 0 }) call void @finch_str_drop(ptr %a168) ret %S.cimport.Mapped %t172 -endif9081: - %t173 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.6303, i64 5, i64 0 }, 0 +endif9486: + %t173 = insertvalue %S.ast.Type zeroinitializer, { ptr, i64, i64 } { ptr @.str.6511, i64 5, i64 0 }, 0 %t174 = load { ptr, i64, i64 }, ptr %a168 store { ptr, i64, i64 } %t174, ptr %a175 call void @finch_str_copy(ptr %a176, ptr %a175) %t177 = load { ptr, i64, i64 }, ptr %a176 %t178 = insertvalue %S.ast.Type %t173, { ptr, i64, i64 } %t177, 2 - %t179 = insertvalue %S.ast.Type %t178, { ptr, i64, i64 } { ptr @.str.6304, i64 1, i64 0 }, 3 + %t179 = insertvalue %S.ast.Type %t178, { ptr, i64, i64 } { ptr @.str.6512, i64 1, i64 0 }, 3 %t180 = call %S.cimport.Mapped @finch.cimport.ok(%S.ast.Type %t179) store %S.ast.Type %t179, ptr %a181 call void @finch.drop.S_ast_Type(ptr %a181) call void @finch_str_drop(ptr %a168) ret %S.cimport.Mapped %t180 -endif9075: +endif9480: %t182 = load i32, ptr %a16 %t183 = icmp eq i32 %t182, 112 - br i1 %t183, label %then9082, label %endif9084 -then9082: + br i1 %t183, label %then9487, label %endif9489 +then9487: %t184 = load ptr, ptr %a1 %t186 = load %S.C.CXType, ptr %a9 store %S.C.CXType %t186, ptr %a187 @@ -94989,11 +99014,11 @@ then9082: %t191 = getelementptr inbounds %S.cimport.Mapped, ptr %a190, i32 0, i32 2 %t192 = load i1, ptr %t191 %t193 = xor i1 %t192, true - br i1 %t193, label %then9085, label %endif9087 -then9085: + br i1 %t193, label %then9490, label %endif9492 +then9490: %t194 = load %S.cimport.Mapped, ptr %a190 ret %S.cimport.Mapped %t194 -endif9087: +endif9492: %t195 = getelementptr inbounds %S.cimport.Mapped, ptr %a190, i32 0, i32 0 %t196 = load %S.ast.Type, ptr %t195 %t197 = load %S.C.CXType, ptr %a9 @@ -95005,28 +99030,28 @@ endif9087: call void @finch.drop.S_ast_Type(ptr %a202) call void @finch.drop.S_cimport_Mapped(ptr %a190) ret %S.cimport.Mapped %t201 -endif9084: +endif9489: %t203 = load i32, ptr %a16 %t204 = icmp eq i32 %t203, 23 - br i1 %t204, label %then9088, label %endif9090 -then9088: - %t205 = call %S.cimport.Mapped @finch.cimport.no({ ptr, i64, i64 } { ptr @.str.6305, i64 16, i64 0 }) + br i1 %t204, label %then9493, label %endif9495 +then9493: + %t205 = call %S.cimport.Mapped @finch.cimport.no({ ptr, i64, i64 } { ptr @.str.6513, i64 16, i64 0 }) ret %S.cimport.Mapped %t205 -endif9090: +endif9495: %t206 = load %S.C.CXType, ptr %a9 store %S.C.CXType %t206, ptr %a207 %t208 = call { i64, i64 } @clang_getTypeSpelling(ptr byval(%S.C.CXType) align 8 %a207) store { i64, i64 } %t208, ptr %a209 %t210 = load %S.C.CXString, ptr %a209 %t211 = call { ptr, i64, i64 } @finch.cimport.text(%S.C.CXString %t210) - store { ptr, i64, i64 } { ptr @.str.6306, i64 17, i64 0 }, ptr %a213 + store { ptr, i64, i64 } { ptr @.str.6514, i64 17, i64 0 }, ptr %a213 store { ptr, i64, i64 } %t211, ptr %a214 call void @finch_str_concat(ptr %a212, ptr %a213, ptr %a214) store { ptr, i64, i64 } %t211, ptr %a215 call void @finch_str_drop(ptr %a215) %t216 = load { ptr, i64, i64 }, ptr %a212 store { ptr, i64, i64 } %t216, ptr %a218 - store { ptr, i64, i64 } { ptr @.str.6307, i64 1, i64 0 }, ptr %a219 + store { ptr, i64, i64 } { ptr @.str.6515, i64 1, i64 0 }, ptr %a219 call void @finch_str_concat(ptr %a217, ptr %a218, ptr %a219) store { ptr, i64, i64 } %t216, ptr %a220 call void @finch_str_drop(ptr %a220) @@ -95075,99 +99100,99 @@ entry: store i64 10, ptr %a7 %t8 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t8, ptr %a9 - store { ptr, i64, i64 } { ptr @.str.6309, i64 2, i64 0 }, ptr %a11 + store { ptr, i64, i64 } { ptr @.str.6517, i64 2, i64 0 }, ptr %a11 %t12 = call i32 @finch_str_starts(ptr %a9, ptr %a11) %t13 = icmp ne i32 %t12, 0 - br label %logic.from9091 -logic.from9091: - br i1 %t13, label %logic.end9093, label %logic.rhs9092 -logic.rhs9092: + br label %logic.from9496 +logic.from9496: + br i1 %t13, label %logic.end9498, label %logic.rhs9497 +logic.rhs9497: %t14 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t14, ptr %a15 - store { ptr, i64, i64 } { ptr @.str.6311, i64 2, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.6519, i64 2, i64 0 }, ptr %a17 %t18 = call i32 @finch_str_starts(ptr %a15, ptr %a17) %t19 = icmp ne i32 %t18, 0 - br label %logic.rend9094 -logic.rend9094: - br label %logic.end9093 -logic.end9093: - %t20 = phi i1 [ true, %logic.from9091 ], [ %t19, %logic.rend9094 ] - br i1 %t20, label %then9095, label %else9096 -then9095: + br label %logic.rend9499 +logic.rend9499: + br label %logic.end9498 +logic.end9498: + %t20 = phi i1 [ true, %logic.from9496 ], [ %t19, %logic.rend9499 ] + br i1 %t20, label %then9500, label %else9501 +then9500: store i64 16, ptr %a7 %t21 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t21, ptr %a22 %t24 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t25 = load i64, ptr %t24 - call void @finch_str_sub(ptr %a23, ptr %a22, i64 2, i64 %t25, ptr @.str.6312, i64 331) + call void @finch_str_sub(ptr %a23, ptr %a22, i64 2, i64 %t25, ptr @.str.6520, i64 331) %t26 = load { ptr, i64, i64 }, ptr %a23 %t27 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t26, ptr %a6 store { ptr, i64, i64 } %t27, ptr %a28 call void @finch_str_drop(ptr %a28) - br label %endif9097 -else9096: + br label %endif9502 +else9501: %t29 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t30 = load i64, ptr %t29 %t31 = icmp sgt i64 %t30, 1 - br label %logic.from9098 -logic.from9098: - br i1 %t31, label %logic.rhs9099, label %logic.end9100 -logic.rhs9099: + br label %logic.from9503 +logic.from9503: + br i1 %t31, label %logic.rhs9504, label %logic.end9505 +logic.rhs9504: %t32 = load { ptr, i64, i64 }, ptr %a6 %t33 = extractvalue { ptr, i64, i64 } %t32, 1 %t34 = icmp uge i64 0, %t33 - br i1 %t34, label %range9101, label %inrange9102 -range9101: - call void @finch_panic_index(ptr @.str.6313, i64 332, i64 0, i64 %t33) + br i1 %t34, label %range9506, label %inrange9507 +range9506: + call void @finch_panic_index(ptr @.str.6521, i64 332, i64 0, i64 %t33) unreachable -inrange9102: +inrange9507: %t35 = extractvalue { ptr, i64, i64 } %t32, 0 %t36 = getelementptr inbounds i8, ptr %t35, i64 0 %t37 = load i8, ptr %t36 %t38 = icmp eq i8 %t37, 48 - br label %logic.rend9103 -logic.rend9103: - br label %logic.end9100 -logic.end9100: - %t39 = phi i1 [ false, %logic.from9098 ], [ %t38, %logic.rend9103 ] - br i1 %t39, label %then9104, label %endif9106 -then9104: + br label %logic.rend9508 +logic.rend9508: + br label %logic.end9505 +logic.end9505: + %t39 = phi i1 [ false, %logic.from9503 ], [ %t38, %logic.rend9508 ] + br i1 %t39, label %then9509, label %endif9511 +then9509: store i64 8, ptr %a7 %t40 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t40, ptr %a41 %t43 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t44 = load i64, ptr %t43 - call void @finch_str_sub(ptr %a42, ptr %a41, i64 1, i64 %t44, ptr @.str.6314, i64 334) + call void @finch_str_sub(ptr %a42, ptr %a41, i64 1, i64 %t44, ptr @.str.6522, i64 334) %t45 = load { ptr, i64, i64 }, ptr %a42 %t46 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t45, ptr %a6 store { ptr, i64, i64 } %t46, ptr %a47 call void @finch_str_drop(ptr %a47) - br label %endif9106 -endif9106: - br label %endif9097 -endif9097: + br label %endif9511 +endif9511: + br label %endif9502 +endif9502: store i64 0, ptr %a48 store i1 false, ptr %a49 store i64 0, ptr %a50 - br label %while.cond9107 -while.cond9107: + br label %while.cond9512 +while.cond9512: %t51 = load i64, ptr %a50 %t52 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t53 = load i64, ptr %t52 %t54 = icmp slt i64 %t51, %t53 - br i1 %t54, label %while.body9108, label %while.end9109 -while.body9108: + br i1 %t54, label %while.body9513, label %while.end9514 +while.body9513: %t55 = load i64, ptr %a50 %t56 = load { ptr, i64, i64 }, ptr %a6 %t57 = extractvalue { ptr, i64, i64 } %t56, 1 %t58 = icmp uge i64 %t55, %t57 - br i1 %t58, label %range9110, label %inrange9111 -range9110: - call void @finch_panic_index(ptr @.str.6315, i64 340, i64 %t55, i64 %t57) + br i1 %t58, label %range9515, label %inrange9516 +range9515: + call void @finch_panic_index(ptr @.str.6523, i64 340, i64 %t55, i64 %t57) unreachable -inrange9111: +inrange9516: %t59 = extractvalue { ptr, i64, i64 } %t56, 0 %t60 = getelementptr inbounds i8, ptr %t59, i64 %t55 %t61 = load i8, ptr %t60 @@ -95175,83 +99200,83 @@ inrange9111: store i64 99, ptr %a63 %t64 = load i8, ptr %a62 %t65 = icmp uge i8 %t64, 48 - br label %logic.from9112 -logic.from9112: - br i1 %t65, label %logic.rhs9113, label %logic.end9114 -logic.rhs9113: + br label %logic.from9517 +logic.from9517: + br i1 %t65, label %logic.rhs9518, label %logic.end9519 +logic.rhs9518: %t66 = load i8, ptr %a62 %t67 = icmp ule i8 %t66, 57 - br label %logic.rend9115 -logic.rend9115: - br label %logic.end9114 -logic.end9114: - %t68 = phi i1 [ false, %logic.from9112 ], [ %t67, %logic.rend9115 ] - br i1 %t68, label %then9116, label %else9117 -then9116: + br label %logic.rend9520 +logic.rend9520: + br label %logic.end9519 +logic.end9519: + %t68 = phi i1 [ false, %logic.from9517 ], [ %t67, %logic.rend9520 ] + br i1 %t68, label %then9521, label %else9522 +then9521: %t69 = load i8, ptr %a62 %t70 = zext i8 %t69 to i64 %t71 = zext i8 48 to i64 %t72 = sub i64 %t70, %t71 store i64 %t72, ptr %a63 - br label %endif9118 -else9117: + br label %endif9523 +else9522: %t73 = load i8, ptr %a62 %t74 = icmp uge i8 %t73, 97 - br label %logic.from9119 -logic.from9119: - br i1 %t74, label %logic.rhs9120, label %logic.end9121 -logic.rhs9120: + br label %logic.from9524 +logic.from9524: + br i1 %t74, label %logic.rhs9525, label %logic.end9526 +logic.rhs9525: %t75 = load i8, ptr %a62 %t76 = icmp ule i8 %t75, 102 - br label %logic.rend9122 -logic.rend9122: - br label %logic.end9121 -logic.end9121: - %t77 = phi i1 [ false, %logic.from9119 ], [ %t76, %logic.rend9122 ] - br i1 %t77, label %then9123, label %else9124 -then9123: + br label %logic.rend9527 +logic.rend9527: + br label %logic.end9526 +logic.end9526: + %t77 = phi i1 [ false, %logic.from9524 ], [ %t76, %logic.rend9527 ] + br i1 %t77, label %then9528, label %else9529 +then9528: %t78 = load i8, ptr %a62 %t79 = zext i8 %t78 to i64 %t80 = zext i8 97 to i64 %t81 = sub i64 %t79, %t80 %t82 = add i64 %t81, 10 store i64 %t82, ptr %a63 - br label %endif9125 -else9124: + br label %endif9530 +else9529: %t83 = load i8, ptr %a62 %t84 = icmp uge i8 %t83, 65 - br label %logic.from9126 -logic.from9126: - br i1 %t84, label %logic.rhs9127, label %logic.end9128 -logic.rhs9127: + br label %logic.from9531 +logic.from9531: + br i1 %t84, label %logic.rhs9532, label %logic.end9533 +logic.rhs9532: %t85 = load i8, ptr %a62 %t86 = icmp ule i8 %t85, 70 - br label %logic.rend9129 -logic.rend9129: - br label %logic.end9128 -logic.end9128: - %t87 = phi i1 [ false, %logic.from9126 ], [ %t86, %logic.rend9129 ] - br i1 %t87, label %then9130, label %endif9132 -then9130: + br label %logic.rend9534 +logic.rend9534: + br label %logic.end9533 +logic.end9533: + %t87 = phi i1 [ false, %logic.from9531 ], [ %t86, %logic.rend9534 ] + br i1 %t87, label %then9535, label %endif9537 +then9535: %t88 = load i8, ptr %a62 %t89 = zext i8 %t88 to i64 %t90 = zext i8 65 to i64 %t91 = sub i64 %t89, %t90 %t92 = add i64 %t91, 10 store i64 %t92, ptr %a63 - br label %endif9132 -endif9132: - br label %endif9125 -endif9125: - br label %endif9118 -endif9118: + br label %endif9537 +endif9537: + br label %endif9530 +endif9530: + br label %endif9523 +endif9523: %t93 = load i64, ptr %a63 %t94 = load i64, ptr %a7 %t95 = icmp sge i64 %t93, %t94 - br i1 %t95, label %then9133, label %endif9135 -then9133: - br label %while.end9109 -endif9135: + br i1 %t95, label %then9538, label %endif9540 +then9538: + br label %while.end9514 +endif9540: %t96 = load i64, ptr %a48 %t97 = load i64, ptr %a7 %t98 = mul i64 %t96, %t97 @@ -95262,26 +99287,26 @@ endif9135: %t101 = load i64, ptr %a50 %t102 = add i64 %t101, 1 store i64 %t102, ptr %a50 - br label %while.cond9107 -while.end9109: - br label %while.cond9136 -while.cond9136: + br label %while.cond9512 +while.end9514: + br label %while.cond9541 +while.cond9541: %t103 = load i64, ptr %a50 %t104 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t105 = load i64, ptr %t104 %t106 = icmp slt i64 %t103, %t105 - br i1 %t106, label %while.body9137, label %while.end9138 -while.body9137: - store { ptr, i64, i64 } { ptr @.str.6316, i64 4, i64 0 }, ptr %a107 + br i1 %t106, label %while.body9542, label %while.end9543 +while.body9542: + store { ptr, i64, i64 } { ptr @.str.6524, i64 4, i64 0 }, ptr %a107 %t109 = load i64, ptr %a50 %t110 = load { ptr, i64, i64 }, ptr %a6 %t111 = extractvalue { ptr, i64, i64 } %t110, 1 %t112 = icmp uge i64 %t109, %t111 - br i1 %t112, label %range9139, label %inrange9140 -range9139: - call void @finch_panic_index(ptr @.str.6318, i64 358, i64 %t109, i64 %t111) + br i1 %t112, label %range9544, label %inrange9545 +range9544: + call void @finch_panic_index(ptr @.str.6526, i64 358, i64 %t109, i64 %t111) unreachable -inrange9140: +inrange9545: %t113 = extractvalue { ptr, i64, i64 } %t110, 0 %t114 = getelementptr inbounds i8, ptr %t113, i64 %t109 %t115 = load i8, ptr %t114 @@ -95293,34 +99318,34 @@ inrange9140: store { ptr, i64, i64 } %t117, ptr %a121 call void @finch_str_drop(ptr %a121) %t122 = xor i1 %t120, true - br i1 %t122, label %then9141, label %endif9143 -then9141: + br i1 %t122, label %then9546, label %endif9548 +then9546: call void @finch_str_drop(ptr %a6) ret %S.cimport.Number zeroinitializer -endif9143: +endif9548: %t123 = load i64, ptr %a50 %t124 = add i64 %t123, 1 store i64 %t124, ptr %a50 - br label %while.cond9136 -while.end9138: + br label %while.cond9541 +while.end9543: %t125 = load i1, ptr %a49 %t126 = xor i1 %t125, true - br label %logic.from9144 -logic.from9144: - br i1 %t126, label %logic.rhs9145, label %logic.end9146 -logic.rhs9145: + br label %logic.from9549 +logic.from9549: + br i1 %t126, label %logic.rhs9550, label %logic.end9551 +logic.rhs9550: %t127 = load i64, ptr %a7 %t128 = icmp ne i64 %t127, 8 - br label %logic.rend9147 -logic.rend9147: - br label %logic.end9146 -logic.end9146: - %t129 = phi i1 [ false, %logic.from9144 ], [ %t128, %logic.rend9147 ] - br i1 %t129, label %then9148, label %endif9150 -then9148: + br label %logic.rend9552 +logic.rend9552: + br label %logic.end9551 +logic.end9551: + %t129 = phi i1 [ false, %logic.from9549 ], [ %t128, %logic.rend9552 ] + br i1 %t129, label %then9553, label %endif9555 +then9553: call void @finch_str_drop(ptr %a6) ret %S.cimport.Number zeroinitializer -endif9150: +endif9555: %t130 = load i64, ptr %a48 %t131 = insertvalue %S.cimport.CConst zeroinitializer, i64 %t130, 1 %t132 = insertvalue %S.cimport.Number zeroinitializer, %S.cimport.CConst %t131, 0 @@ -95394,11 +99419,11 @@ entry: store i32 0, ptr %a4 %t5 = load ptr, ptr %a1 %t6 = icmp eq ptr %t5, null - br i1 %t6, label %panic9151, label %ok9152 -panic9151: - call void @finch_panic(ptr @.str.6319, i64 373, ptr @.str.6320) + br i1 %t6, label %panic9556, label %ok9557 +panic9556: + call void @finch_panic(ptr @.str.6527, i64 373, ptr @.str.6528) unreachable -ok9152: +ok9557: %t7 = getelementptr inbounds %S.cimport.Importer, ptr %t5, i32 0, i32 1 %t8 = load ptr, ptr %t7 %t10 = load %S.C.CXCursor, ptr %a2 @@ -95411,12 +99436,12 @@ ok9152: %t15 = load i32, ptr %a4 %t16 = zext i32 %t15 to i64 store i64 1, ptr %a17 - br label %for.cond9153 -for.cond9153: + br label %for.cond9558 +for.cond9558: %t18 = load i64, ptr %a17 %t19 = icmp slt i64 %t18, %t16 - br i1 %t19, label %for.body9154, label %for.end9156 -for.body9154: + br i1 %t19, label %for.body9559, label %for.end9561 +for.body9559: %t20 = load i64, ptr %a17 %t21 = load ptr, ptr %a3 %t22 = getelementptr inbounds %S.C.CXToken, ptr %t21, i64 %t20 @@ -95424,18 +99449,18 @@ for.body9154: store %S.C.CXToken %t23, ptr %a24 %t25 = call i32 @clang_getTokenKind(ptr byval(%S.C.CXToken) align 8 %a24) %t26 = icmp eq i32 %t25, 4 - br i1 %t26, label %then9157, label %endif9159 -then9157: - br label %for.step9155 -endif9159: + br i1 %t26, label %then9562, label %endif9564 +then9562: + br label %for.step9560 +endif9564: %t27 = getelementptr inbounds { ptr, i64, i64 }, ptr %a14, i32 0, i32 1 %t28 = load ptr, ptr %a1 %t29 = icmp eq ptr %t28, null - br i1 %t29, label %panic9160, label %ok9161 -panic9160: - call void @finch_panic(ptr @.str.6321, i64 379, ptr @.str.6322) + br i1 %t29, label %panic9565, label %ok9566 +panic9565: + call void @finch_panic(ptr @.str.6529, i64 379, ptr @.str.6530) unreachable -ok9161: +ok9566: %t30 = getelementptr inbounds %S.cimport.Importer, ptr %t28, i32 0, i32 1 %t31 = load ptr, ptr %t30 %t32 = load i64, ptr %a17 @@ -95454,91 +99479,91 @@ ok9161: %t44 = getelementptr inbounds { ptr, i64, i64 }, ptr %t43, i64 %t41 store { ptr, i64, i64 } %t40, ptr %t44 store i64 %t42, ptr %t27 - br label %for.step9155 -for.step9155: + br label %for.step9560 +for.step9560: %t45 = load i64, ptr %a17 %t46 = add i64 %t45, 1 store i64 %t46, ptr %a17 - br label %for.cond9153 -for.end9156: + br label %for.cond9558 +for.end9561: %t47 = load ptr, ptr %a1 %t48 = icmp eq ptr %t47, null - br i1 %t48, label %panic9162, label %ok9163 -panic9162: - call void @finch_panic(ptr @.str.6323, i64 381, ptr @.str.6324) + br i1 %t48, label %panic9567, label %ok9568 +panic9567: + call void @finch_panic(ptr @.str.6531, i64 381, ptr @.str.6532) unreachable -ok9163: +ok9568: %t49 = getelementptr inbounds %S.cimport.Importer, ptr %t47, i32 0, i32 1 %t50 = load ptr, ptr %t49 %t51 = load ptr, ptr %a3 %t52 = load i32, ptr %a4 call void @clang_disposeTokens(ptr %t50, ptr %t51, i32 %t52) - br label %while.cond9164 -while.cond9164: + br label %while.cond9569 +while.cond9569: %t53 = getelementptr inbounds { ptr, i64, i64 }, ptr %a14, i32 0, i32 1 %t54 = load i64, ptr %t53 %t55 = icmp sge i64 %t54, 2 - br label %logic.from9167 -logic.from9167: - br i1 %t55, label %logic.rhs9168, label %logic.end9169 -logic.rhs9168: + br label %logic.from9572 +logic.from9572: + br i1 %t55, label %logic.rhs9573, label %logic.end9574 +logic.rhs9573: %t56 = load { ptr, i64, i64 }, ptr %a14 %t57 = extractvalue { ptr, i64, i64 } %t56, 1 %t58 = icmp uge i64 0, %t57 - br i1 %t58, label %range9170, label %inrange9171 -range9170: - call void @finch_panic_index(ptr @.str.6325, i64 383, i64 0, i64 %t57) + br i1 %t58, label %range9575, label %inrange9576 +range9575: + call void @finch_panic_index(ptr @.str.6533, i64 383, i64 0, i64 %t57) unreachable -inrange9171: +inrange9576: %t59 = extractvalue { ptr, i64, i64 } %t56, 0 %t60 = getelementptr inbounds { ptr, i64, i64 }, ptr %t59, i64 0 %t61 = load { ptr, i64, i64 }, ptr %t60 store { ptr, i64, i64 } %t61, ptr %a62 - store { ptr, i64, i64 } { ptr @.str.6326, i64 1, i64 0 }, ptr %a63 + store { ptr, i64, i64 } { ptr @.str.6534, i64 1, i64 0 }, ptr %a63 %t64 = call i32 @finch_str_eq(ptr %a62, ptr %a63) %t65 = icmp ne i32 %t64, 0 - br label %logic.rend9172 -logic.rend9172: - br label %logic.end9169 -logic.end9169: - %t66 = phi i1 [ false, %logic.from9167 ], [ %t65, %logic.rend9172 ] - br label %logic.from9173 -logic.from9173: - br i1 %t66, label %logic.rhs9174, label %logic.end9175 -logic.rhs9174: + br label %logic.rend9577 +logic.rend9577: + br label %logic.end9574 +logic.end9574: + %t66 = phi i1 [ false, %logic.from9572 ], [ %t65, %logic.rend9577 ] + br label %logic.from9578 +logic.from9578: + br i1 %t66, label %logic.rhs9579, label %logic.end9580 +logic.rhs9579: %t67 = getelementptr inbounds { ptr, i64, i64 }, ptr %a14, i32 0, i32 1 %t68 = load i64, ptr %t67 %t69 = sub i64 %t68, 1 %t70 = load { ptr, i64, i64 }, ptr %a14 %t71 = extractvalue { ptr, i64, i64 } %t70, 1 %t72 = icmp uge i64 %t69, %t71 - br i1 %t72, label %range9176, label %inrange9177 -range9176: - call void @finch_panic_index(ptr @.str.6327, i64 383, i64 %t69, i64 %t71) + br i1 %t72, label %range9581, label %inrange9582 +range9581: + call void @finch_panic_index(ptr @.str.6535, i64 383, i64 %t69, i64 %t71) unreachable -inrange9177: +inrange9582: %t73 = extractvalue { ptr, i64, i64 } %t70, 0 %t74 = getelementptr inbounds { ptr, i64, i64 }, ptr %t73, i64 %t69 %t75 = load { ptr, i64, i64 }, ptr %t74 store { ptr, i64, i64 } %t75, ptr %a76 - store { ptr, i64, i64 } { ptr @.str.6328, i64 1, i64 0 }, ptr %a77 + store { ptr, i64, i64 } { ptr @.str.6536, i64 1, i64 0 }, ptr %a77 %t78 = call i32 @finch_str_eq(ptr %a76, ptr %a77) %t79 = icmp ne i32 %t78, 0 - br label %logic.rend9178 -logic.rend9178: - br label %logic.end9175 -logic.end9175: - %t80 = phi i1 [ false, %logic.from9173 ], [ %t79, %logic.rend9178 ] - br i1 %t80, label %while.body9165, label %while.end9166 -while.body9165: + br label %logic.rend9583 +logic.rend9583: + br label %logic.end9580 +logic.end9580: + %t80 = phi i1 [ false, %logic.from9578 ], [ %t79, %logic.rend9583 ] + br i1 %t80, label %while.body9570, label %while.end9571 +while.body9570: %t81 = getelementptr inbounds { ptr, i64, i64 }, ptr %a14, i32 0, i32 1 %t82 = load i64, ptr %t81 %t83 = icmp uge i64 0, %t82 - br i1 %t83, label %range9179, label %inrange9180 -range9179: - call void @finch_panic_index(ptr @.str.6329, i64 384, i64 0, i64 %t82) + br i1 %t83, label %range9584, label %inrange9585 +range9584: + call void @finch_panic_index(ptr @.str.6537, i64 384, i64 0, i64 %t82) unreachable -inrange9180: +inrange9585: %t84 = load ptr, ptr %a14 %t85 = getelementptr inbounds { ptr, i64, i64 }, ptr %t84, i64 0 %t86 = load { ptr, i64, i64 }, ptr %t85 @@ -95548,11 +99573,11 @@ inrange9180: %t88 = getelementptr inbounds { ptr, i64, i64 }, ptr %a14, i32 0, i32 1 %t89 = load i64, ptr %t88 %t90 = icmp eq i64 %t89, 0 - br i1 %t90, label %panic9181, label %ok9182 -panic9181: - call void @finch_panic(ptr @.str.6330, i64 385, ptr @.str.6331) + br i1 %t90, label %panic9586, label %ok9587 +panic9586: + call void @finch_panic(ptr @.str.6538, i64 385, ptr @.str.6539) unreachable -ok9182: +ok9587: %t91 = sub i64 %t89, 1 %t92 = load ptr, ptr %a14 %t93 = getelementptr inbounds { ptr, i64, i64 }, ptr %t92, i64 %t91 @@ -95560,71 +99585,71 @@ ok9182: store i64 %t91, ptr %t88 store { ptr, i64, i64 } %t94, ptr %a95 call void @finch_str_drop(ptr %a95) - br label %while.cond9164 -while.end9166: + br label %while.cond9569 +while.end9571: store i1 false, ptr %a96 %t97 = getelementptr inbounds { ptr, i64, i64 }, ptr %a14, i32 0, i32 1 %t98 = load i64, ptr %t97 %t99 = icmp eq i64 %t98, 2 - br label %logic.from9183 -logic.from9183: - br i1 %t99, label %logic.rhs9184, label %logic.end9185 -logic.rhs9184: + br label %logic.from9588 +logic.from9588: + br i1 %t99, label %logic.rhs9589, label %logic.end9590 +logic.rhs9589: %t100 = load { ptr, i64, i64 }, ptr %a14 %t101 = extractvalue { ptr, i64, i64 } %t100, 1 %t102 = icmp uge i64 0, %t101 - br i1 %t102, label %range9186, label %inrange9187 -range9186: - call void @finch_panic_index(ptr @.str.6332, i64 388, i64 0, i64 %t101) + br i1 %t102, label %range9591, label %inrange9592 +range9591: + call void @finch_panic_index(ptr @.str.6540, i64 388, i64 0, i64 %t101) unreachable -inrange9187: +inrange9592: %t103 = extractvalue { ptr, i64, i64 } %t100, 0 %t104 = getelementptr inbounds { ptr, i64, i64 }, ptr %t103, i64 0 %t105 = load { ptr, i64, i64 }, ptr %t104 store { ptr, i64, i64 } %t105, ptr %a106 - store { ptr, i64, i64 } { ptr @.str.6333, i64 1, i64 0 }, ptr %a107 + store { ptr, i64, i64 } { ptr @.str.6541, i64 1, i64 0 }, ptr %a107 %t108 = call i32 @finch_str_eq(ptr %a106, ptr %a107) %t109 = icmp ne i32 %t108, 0 - br label %logic.rend9188 -logic.rend9188: - br label %logic.end9185 -logic.end9185: - %t110 = phi i1 [ false, %logic.from9183 ], [ %t109, %logic.rend9188 ] - br i1 %t110, label %then9189, label %endif9191 -then9189: + br label %logic.rend9593 +logic.rend9593: + br label %logic.end9590 +logic.end9590: + %t110 = phi i1 [ false, %logic.from9588 ], [ %t109, %logic.rend9593 ] + br i1 %t110, label %then9594, label %endif9596 +then9594: store i1 true, ptr %a96 %t111 = getelementptr inbounds { ptr, i64, i64 }, ptr %a14, i32 0, i32 1 %t112 = load i64, ptr %t111 %t113 = icmp uge i64 0, %t112 - br i1 %t113, label %range9192, label %inrange9193 -range9192: - call void @finch_panic_index(ptr @.str.6334, i64 390, i64 0, i64 %t112) + br i1 %t113, label %range9597, label %inrange9598 +range9597: + call void @finch_panic_index(ptr @.str.6542, i64 390, i64 0, i64 %t112) unreachable -inrange9193: +inrange9598: %t114 = load ptr, ptr %a14 %t115 = getelementptr inbounds { ptr, i64, i64 }, ptr %t114, i64 0 %t116 = load { ptr, i64, i64 }, ptr %t115 call void @finch_arr_remove_gap(ptr %a14, i64 0, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) store { ptr, i64, i64 } %t116, ptr %a117 call void @finch_str_drop(ptr %a117) - br label %endif9191 -endif9191: + br label %endif9596 +endif9596: %t118 = getelementptr inbounds { ptr, i64, i64 }, ptr %a14, i32 0, i32 1 %t119 = load i64, ptr %t118 %t120 = icmp ne i64 %t119, 1 - br i1 %t120, label %then9194, label %endif9196 -then9194: + br i1 %t120, label %then9599, label %endif9601 +then9599: call void @finch.drop.arr_str(ptr %a14) ret %S.cimport.Number zeroinitializer -endif9196: +endif9601: %t121 = load { ptr, i64, i64 }, ptr %a14 %t122 = extractvalue { ptr, i64, i64 } %t121, 1 %t123 = icmp uge i64 0, %t122 - br i1 %t123, label %range9197, label %inrange9198 -range9197: - call void @finch_panic_index(ptr @.str.6335, i64 395, i64 0, i64 %t122) + br i1 %t123, label %range9602, label %inrange9603 +range9602: + call void @finch_panic_index(ptr @.str.6543, i64 395, i64 0, i64 %t122) unreachable -inrange9198: +inrange9603: %t124 = extractvalue { ptr, i64, i64 } %t121, 0 %t125 = getelementptr inbounds { ptr, i64, i64 }, ptr %t124, i64 0 %t126 = load { ptr, i64, i64 }, ptr %t125 @@ -95635,154 +99660,154 @@ inrange9198: %t131 = getelementptr inbounds { ptr, i64, i64 }, ptr %a130, i32 0, i32 1 %t132 = load i64, ptr %t131 %t133 = icmp eq i64 %t132, 0 - br label %logic.from9199 -logic.from9199: - br i1 %t133, label %logic.end9201, label %logic.rhs9200 -logic.rhs9200: + br label %logic.from9604 +logic.from9604: + br i1 %t133, label %logic.end9606, label %logic.rhs9605 +logic.rhs9605: %t134 = load { ptr, i64, i64 }, ptr %a130 %t135 = extractvalue { ptr, i64, i64 } %t134, 1 %t136 = icmp uge i64 0, %t135 - br i1 %t136, label %range9202, label %inrange9203 -range9202: - call void @finch_panic_index(ptr @.str.6336, i64 396, i64 0, i64 %t135) + br i1 %t136, label %range9607, label %inrange9608 +range9607: + call void @finch_panic_index(ptr @.str.6544, i64 396, i64 0, i64 %t135) unreachable -inrange9203: +inrange9608: %t137 = extractvalue { ptr, i64, i64 } %t134, 0 %t138 = getelementptr inbounds i8, ptr %t137, i64 0 %t139 = load i8, ptr %t138 %t140 = icmp uge i8 %t139, 48 - br label %logic.from9204 -logic.from9204: - br i1 %t140, label %logic.rhs9205, label %logic.end9206 -logic.rhs9205: + br label %logic.from9609 +logic.from9609: + br i1 %t140, label %logic.rhs9610, label %logic.end9611 +logic.rhs9610: %t141 = load { ptr, i64, i64 }, ptr %a130 %t142 = extractvalue { ptr, i64, i64 } %t141, 1 %t143 = icmp uge i64 0, %t142 - br i1 %t143, label %range9207, label %inrange9208 -range9207: - call void @finch_panic_index(ptr @.str.6337, i64 396, i64 0, i64 %t142) + br i1 %t143, label %range9612, label %inrange9613 +range9612: + call void @finch_panic_index(ptr @.str.6545, i64 396, i64 0, i64 %t142) unreachable -inrange9208: +inrange9613: %t144 = extractvalue { ptr, i64, i64 } %t141, 0 %t145 = getelementptr inbounds i8, ptr %t144, i64 0 %t146 = load i8, ptr %t145 %t147 = icmp ule i8 %t146, 57 - br label %logic.rend9209 -logic.rend9209: - br label %logic.end9206 -logic.end9206: - %t148 = phi i1 [ false, %logic.from9204 ], [ %t147, %logic.rend9209 ] - br label %logic.from9210 -logic.from9210: - br i1 %t148, label %logic.end9212, label %logic.rhs9211 -logic.rhs9211: + br label %logic.rend9614 +logic.rend9614: + br label %logic.end9611 +logic.end9611: + %t148 = phi i1 [ false, %logic.from9609 ], [ %t147, %logic.rend9614 ] + br label %logic.from9615 +logic.from9615: + br i1 %t148, label %logic.end9617, label %logic.rhs9616 +logic.rhs9616: %t149 = load { ptr, i64, i64 }, ptr %a130 %t150 = extractvalue { ptr, i64, i64 } %t149, 1 %t151 = icmp uge i64 0, %t150 - br i1 %t151, label %range9213, label %inrange9214 -range9213: - call void @finch_panic_index(ptr @.str.6338, i64 396, i64 0, i64 %t150) + br i1 %t151, label %range9618, label %inrange9619 +range9618: + call void @finch_panic_index(ptr @.str.6546, i64 396, i64 0, i64 %t150) unreachable -inrange9214: +inrange9619: %t152 = extractvalue { ptr, i64, i64 } %t149, 0 %t153 = getelementptr inbounds i8, ptr %t152, i64 0 %t154 = load i8, ptr %t153 %t155 = icmp eq i8 %t154, 46 - br label %logic.rend9215 -logic.rend9215: - br label %logic.end9212 -logic.end9212: - %t156 = phi i1 [ true, %logic.from9210 ], [ %t155, %logic.rend9215 ] + br label %logic.rend9620 +logic.rend9620: + br label %logic.end9617 +logic.end9617: + %t156 = phi i1 [ true, %logic.from9615 ], [ %t155, %logic.rend9620 ] %t157 = xor i1 %t156, true - br label %logic.rend9216 -logic.rend9216: - br label %logic.end9201 -logic.end9201: - %t158 = phi i1 [ true, %logic.from9199 ], [ %t157, %logic.rend9216 ] - br i1 %t158, label %then9217, label %endif9219 -then9217: + br label %logic.rend9621 +logic.rend9621: + br label %logic.end9606 +logic.end9606: + %t158 = phi i1 [ true, %logic.from9604 ], [ %t157, %logic.rend9621 ] + br i1 %t158, label %then9622, label %endif9624 +then9622: call void @finch_str_drop(ptr %a130) call void @finch.drop.arr_str(ptr %a14) ret %S.cimport.Number zeroinitializer -endif9219: +endif9624: %t159 = load { ptr, i64, i64 }, ptr %a130 store { ptr, i64, i64 } %t159, ptr %a160 - store { ptr, i64, i64 } { ptr @.str.6340, i64 1, i64 0 }, ptr %a162 + store { ptr, i64, i64 } { ptr @.str.6548, i64 1, i64 0 }, ptr %a162 %t163 = call i64 @finch_str_find(ptr %a160, ptr %a162) %t164 = icmp sge i64 %t163, 0 - br label %logic.from9220 -logic.from9220: - br i1 %t164, label %logic.end9222, label %logic.rhs9221 -logic.rhs9221: + br label %logic.from9625 +logic.from9625: + br i1 %t164, label %logic.end9627, label %logic.rhs9626 +logic.rhs9626: %t165 = load { ptr, i64, i64 }, ptr %a130 store { ptr, i64, i64 } %t165, ptr %a166 - store { ptr, i64, i64 } { ptr @.str.6342, i64 1, i64 0 }, ptr %a168 + store { ptr, i64, i64 } { ptr @.str.6550, i64 1, i64 0 }, ptr %a168 %t169 = call i64 @finch_str_find(ptr %a166, ptr %a168) %t170 = icmp sge i64 %t169, 0 - br label %logic.rend9223 -logic.rend9223: - br label %logic.end9222 -logic.end9222: - %t171 = phi i1 [ true, %logic.from9220 ], [ %t170, %logic.rend9223 ] - br label %logic.from9224 -logic.from9224: - br i1 %t171, label %logic.end9226, label %logic.rhs9225 -logic.rhs9225: + br label %logic.rend9628 +logic.rend9628: + br label %logic.end9627 +logic.end9627: + %t171 = phi i1 [ true, %logic.from9625 ], [ %t170, %logic.rend9628 ] + br label %logic.from9629 +logic.from9629: + br i1 %t171, label %logic.end9631, label %logic.rhs9630 +logic.rhs9630: %t172 = load { ptr, i64, i64 }, ptr %a130 store { ptr, i64, i64 } %t172, ptr %a173 - store { ptr, i64, i64 } { ptr @.str.6344, i64 1, i64 0 }, ptr %a175 + store { ptr, i64, i64 } { ptr @.str.6552, i64 1, i64 0 }, ptr %a175 %t176 = call i64 @finch_str_find(ptr %a173, ptr %a175) %t177 = icmp sge i64 %t176, 0 - br label %logic.rend9227 -logic.rend9227: - br label %logic.end9226 -logic.end9226: - %t178 = phi i1 [ true, %logic.from9224 ], [ %t177, %logic.rend9227 ] - br label %logic.from9228 -logic.from9228: - br i1 %t178, label %logic.rhs9229, label %logic.end9230 -logic.rhs9229: + br label %logic.rend9632 +logic.rend9632: + br label %logic.end9631 +logic.end9631: + %t178 = phi i1 [ true, %logic.from9629 ], [ %t177, %logic.rend9632 ] + br label %logic.from9633 +logic.from9633: + br i1 %t178, label %logic.rhs9634, label %logic.end9635 +logic.rhs9634: %t179 = load { ptr, i64, i64 }, ptr %a130 store { ptr, i64, i64 } %t179, ptr %a180 - store { ptr, i64, i64 } { ptr @.str.6346, i64 2, i64 0 }, ptr %a182 + store { ptr, i64, i64 } { ptr @.str.6554, i64 2, i64 0 }, ptr %a182 %t183 = call i32 @finch_str_starts(ptr %a180, ptr %a182) %t184 = icmp ne i32 %t183, 0 %t185 = xor i1 %t184, true - br label %logic.rend9231 -logic.rend9231: - br label %logic.end9230 -logic.end9230: - %t186 = phi i1 [ false, %logic.from9228 ], [ %t185, %logic.rend9231 ] + br label %logic.rend9636 +logic.rend9636: + br label %logic.end9635 +logic.end9635: + %t186 = phi i1 [ false, %logic.from9633 ], [ %t185, %logic.rend9636 ] store i1 %t186, ptr %a187 %t188 = load i1, ptr %a187 - br i1 %t188, label %then9232, label %endif9234 -then9232: + br i1 %t188, label %then9637, label %endif9639 +then9637: %t189 = load { ptr, i64, i64 }, ptr %a130 store { ptr, i64, i64 } %t189, ptr %a190 call void @finch_str_copy(ptr %a191, ptr %a190) %t192 = load { ptr, i64, i64 }, ptr %a191 store { ptr, i64, i64 } %t192, ptr %a193 - br label %while.cond9235 -while.cond9235: + br label %while.cond9640 +while.cond9640: %t194 = getelementptr inbounds { ptr, i64, i64 }, ptr %a193, i32 0, i32 1 %t195 = load i64, ptr %t194 %t196 = icmp sgt i64 %t195, 0 - br label %logic.from9238 -logic.from9238: - br i1 %t196, label %logic.rhs9239, label %logic.end9240 -logic.rhs9239: - store { ptr, i64, i64 } { ptr @.str.6347, i64 4, i64 0 }, ptr %a197 + br label %logic.from9643 +logic.from9643: + br i1 %t196, label %logic.rhs9644, label %logic.end9645 +logic.rhs9644: + store { ptr, i64, i64 } { ptr @.str.6555, i64 4, i64 0 }, ptr %a197 %t199 = getelementptr inbounds { ptr, i64, i64 }, ptr %a193, i32 0, i32 1 %t200 = load i64, ptr %t199 %t201 = sub i64 %t200, 1 %t202 = load { ptr, i64, i64 }, ptr %a193 %t203 = extractvalue { ptr, i64, i64 } %t202, 1 %t204 = icmp uge i64 %t201, %t203 - br i1 %t204, label %range9241, label %inrange9242 -range9241: - call void @finch_panic_index(ptr @.str.6349, i64 402, i64 %t201, i64 %t203) + br i1 %t204, label %range9646, label %inrange9647 +range9646: + call void @finch_panic_index(ptr @.str.6557, i64 402, i64 %t201, i64 %t203) unreachable -inrange9242: +inrange9647: %t205 = extractvalue { ptr, i64, i64 } %t202, 0 %t206 = getelementptr inbounds i8, ptr %t205, i64 %t201 %t207 = load i8, ptr %t206 @@ -95793,26 +99818,26 @@ inrange9242: %t212 = icmp sge i64 %t211, 0 store { ptr, i64, i64 } %t209, ptr %a213 call void @finch_str_drop(ptr %a213) - br label %logic.rend9243 -logic.rend9243: - br label %logic.end9240 -logic.end9240: - %t214 = phi i1 [ false, %logic.from9238 ], [ %t212, %logic.rend9243 ] - br i1 %t214, label %while.body9236, label %while.end9237 -while.body9236: + br label %logic.rend9648 +logic.rend9648: + br label %logic.end9645 +logic.end9645: + %t214 = phi i1 [ false, %logic.from9643 ], [ %t212, %logic.rend9648 ] + br i1 %t214, label %while.body9641, label %while.end9642 +while.body9641: %t215 = load { ptr, i64, i64 }, ptr %a193 store { ptr, i64, i64 } %t215, ptr %a216 %t218 = getelementptr inbounds { ptr, i64, i64 }, ptr %a193, i32 0, i32 1 %t219 = load i64, ptr %t218 %t220 = sub i64 %t219, 1 - call void @finch_str_sub(ptr %a217, ptr %a216, i64 0, i64 %t220, ptr @.str.6350, i64 403) + call void @finch_str_sub(ptr %a217, ptr %a216, i64 0, i64 %t220, ptr @.str.6558, i64 403) %t221 = load { ptr, i64, i64 }, ptr %a217 %t222 = load { ptr, i64, i64 }, ptr %a193 store { ptr, i64, i64 } %t221, ptr %a193 store { ptr, i64, i64 } %t222, ptr %a223 call void @finch_str_drop(ptr %a223) - br label %while.cond9235 -while.end9237: + br label %while.cond9640 +while.end9642: %t224 = load { ptr, i64, i64 }, ptr %a193 store { ptr, i64, i64 } zeroinitializer, ptr %a225 store double 0.0, ptr %a226 @@ -95821,24 +99846,24 @@ while.end9237: %t229 = icmp eq i32 %t228, 0 %t230 = load { ptr, i64, i64 }, ptr %a225 %t231 = load double, ptr %a226 - br i1 %t229, label %or.failed9244, label %or.ok9245 -or.failed9244: + br i1 %t229, label %or.failed9649, label %or.ok9650 +or.failed9649: store { ptr, i64, i64 } %t230, ptr %a232 call void @finch_str_drop(ptr %a232) call void @finch_str_drop(ptr %a193) call void @finch_str_drop(ptr %a130) call void @finch.drop.arr_str(ptr %a14) ret %S.cimport.Number zeroinitializer -or.ok9245: +or.ok9650: store double %t231, ptr %a233 %t234 = load i1, ptr %a96 - br i1 %t234, label %then9246, label %endif9248 -then9246: + br i1 %t234, label %then9651, label %endif9653 +then9651: %t235 = load double, ptr %a233 %t236 = fsub double 0.0, %t235 store double %t236, ptr %a233 - br label %endif9248 -endif9248: + br label %endif9653 +endif9653: %t237 = insertvalue %S.cimport.CConst zeroinitializer, i1 true, 0 %t238 = load double, ptr %a233 %t239 = insertvalue %S.cimport.CConst %t237, double %t238, 2 @@ -95853,24 +99878,24 @@ endif9248: call void @finch_str_drop(ptr %a130) call void @finch.drop.arr_str(ptr %a14) ret %S.cimport.Number %t246 -endif9234: +endif9639: %t247 = load { ptr, i64, i64 }, ptr %a130 %t248 = call %S.cimport.Number @finch.cimport.parseInt({ ptr, i64, i64 } %t247) store %S.cimport.Number %t248, ptr %a249 %t250 = getelementptr inbounds %S.cimport.Number, ptr %a249, i32 0, i32 1 %t251 = load i1, ptr %t250 - br label %logic.from9249 -logic.from9249: - br i1 %t251, label %logic.rhs9250, label %logic.end9251 -logic.rhs9250: + br label %logic.from9654 +logic.from9654: + br i1 %t251, label %logic.rhs9655, label %logic.end9656 +logic.rhs9655: %t252 = load i1, ptr %a96 - br label %logic.rend9252 -logic.rend9252: - br label %logic.end9251 -logic.end9251: - %t253 = phi i1 [ false, %logic.from9249 ], [ %t252, %logic.rend9252 ] - br i1 %t253, label %then9253, label %endif9255 -then9253: + br label %logic.rend9657 +logic.rend9657: + br label %logic.end9656 +logic.end9656: + %t253 = phi i1 [ false, %logic.from9654 ], [ %t252, %logic.rend9657 ] + br i1 %t253, label %then9658, label %endif9660 +then9658: %t254 = getelementptr inbounds %S.cimport.Number, ptr %a249, i32 0, i32 0 %t255 = getelementptr inbounds %S.cimport.CConst, ptr %t254, i32 0, i32 1 %t256 = load i64, ptr %t255 @@ -95878,8 +99903,8 @@ then9253: %t258 = getelementptr inbounds %S.cimport.Number, ptr %a249, i32 0, i32 0 %t259 = getelementptr inbounds %S.cimport.CConst, ptr %t258, i32 0, i32 1 store i64 %t257, ptr %t259 - br label %endif9255 -endif9255: + br label %endif9660 +endif9660: %t260 = load %S.cimport.Number, ptr %a249 call void @finch_str_drop(ptr %a130) call void @finch.drop.arr_str(ptr %a14) @@ -96054,8 +100079,8 @@ entry: store i32 %t12, ptr %a13 %t14 = load i32, ptr %a13 %t15 = icmp eq i32 %t14, 20 - br i1 %t15, label %then9256, label %else9257 -then9256: + br i1 %t15, label %then9661, label %else9662 +then9661: %t18 = load %S.C.CXCursor, ptr %a2 store %S.C.CXCursor %t18, ptr %a19 call void @clang_getTypedefDeclUnderlyingType(ptr sret(%S.C.CXType) align 16 %a17, ptr byval(%S.C.CXCursor) align 8 %a19) @@ -96067,8 +100092,8 @@ then9256: %t24 = getelementptr inbounds %S.C.CXType, ptr %a23, i32 0, i32 0 %t25 = load i32, ptr %t24 %t26 = icmp eq i32 %t25, 105 - br i1 %t26, label %then9259, label %endif9261 -then9259: + br i1 %t26, label %then9664, label %endif9666 +then9664: %t28 = load %S.C.CXType, ptr %a23 store %S.C.CXType %t28, ptr %a29 call void @clang_getTypeDeclaration(ptr sret(%S.C.CXCursor) align 16 %a27, ptr byval(%S.C.CXType) align 8 %a29) @@ -96081,49 +100106,49 @@ then9259: store { ptr, i64, i64 } %t35, ptr %a36 %t37 = load ptr, ptr %a1 %t38 = icmp eq ptr %t37, null - br i1 %t38, label %panic9262, label %ok9263 -panic9262: - call void @finch_panic(ptr @.str.6351, i64 437, ptr @.str.6352) + br i1 %t38, label %panic9667, label %ok9668 +panic9667: + call void @finch_panic(ptr @.str.6559, i64 437, ptr @.str.6560) unreachable -ok9263: +ok9668: %t39 = getelementptr inbounds %S.cimport.Importer, ptr %t37, i32 0, i32 3 %t40 = load { ptr, i64, i64 }, ptr %a36 store { ptr, i64, i64 } %t40, ptr %a41 %t42 = call i64 @finch_map_find(ptr %t39, ptr %a41, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t43 = icmp sge i64 %t42, 0 - br label %logic.from9264 -logic.from9264: - br i1 %t43, label %logic.rhs9265, label %logic.end9266 -logic.rhs9265: + br label %logic.from9669 +logic.from9669: + br i1 %t43, label %logic.rhs9670, label %logic.end9671 +logic.rhs9670: %t44 = load ptr, ptr %a1 %t45 = icmp eq ptr %t44, null - br i1 %t45, label %panic9267, label %ok9268 -panic9267: - call void @finch_panic(ptr @.str.6353, i64 437, ptr @.str.6354) + br i1 %t45, label %panic9672, label %ok9673 +panic9672: + call void @finch_panic(ptr @.str.6561, i64 437, ptr @.str.6562) unreachable -ok9268: +ok9673: %t46 = getelementptr inbounds %S.cimport.Importer, ptr %t44, i32 0, i32 0 %t47 = getelementptr inbounds %S.cimport.CImports, ptr %t46, i32 0, i32 3 %t48 = load ptr, ptr %a1 %t49 = icmp eq ptr %t48, null - br i1 %t49, label %panic9269, label %ok9270 -panic9269: - call void @finch_panic(ptr @.str.6355, i64 437, ptr @.str.6356) + br i1 %t49, label %panic9674, label %ok9675 +panic9674: + call void @finch_panic(ptr @.str.6563, i64 437, ptr @.str.6564) unreachable -ok9270: +ok9675: %t50 = getelementptr inbounds %S.cimport.Importer, ptr %t48, i32 0, i32 3 %t51 = load { ptr, i64, i64 }, ptr %a36 store { ptr, i64, i64 } %t51, ptr %a52 %t53 = call i64 @finch_map_find(ptr %t50, ptr %a52, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t54 = icmp slt i64 %t53, 0 - br i1 %t54, label %map.missing9271, label %map.found9272 -map.missing9271: + br i1 %t54, label %map.missing9676, label %map.found9677 +map.missing9676: store { ptr, i64, i64 } zeroinitializer, ptr %a55 store { ptr, i64, i64 } %t51, ptr %a56 call void @finch_buf_str(ptr %a55, ptr %a56, i32 1) - call void @finch_map_missing(ptr @.str.6357, i64 437, ptr %a55) + call void @finch_map_missing(ptr @.str.6565, i64 437, ptr %a55) unreachable -map.found9272: +map.found9677: %t57 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t50, i32 0, i32 0 %t58 = load ptr, ptr %t57 %t59 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t58, i64 %t53 @@ -96132,25 +100157,25 @@ map.found9272: store { ptr, i64, i64 } %t61, ptr %a62 %t63 = call i64 @finch_map_find(ptr %t47, ptr %a62, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t64 = icmp sge i64 %t63, 0 - br label %logic.rend9273 -logic.rend9273: - br label %logic.end9266 -logic.end9266: - %t65 = phi i1 [ false, %logic.from9264 ], [ %t64, %logic.rend9273 ] + br label %logic.rend9678 +logic.rend9678: + br label %logic.end9671 +logic.end9671: + %t65 = phi i1 [ false, %logic.from9669 ], [ %t64, %logic.rend9678 ] store i1 %t65, ptr %a66 %t67 = load i1, ptr %a66 %t68 = xor i1 %t67, true - br label %logic.from9274 -logic.from9274: - br i1 %t68, label %logic.rhs9275, label %logic.end9276 -logic.rhs9275: + br label %logic.from9679 +logic.from9679: + br i1 %t68, label %logic.rhs9680, label %logic.end9681 +logic.rhs9680: %t69 = load ptr, ptr %a1 %t70 = icmp eq ptr %t69, null - br i1 %t70, label %panic9277, label %ok9278 -panic9277: - call void @finch_panic(ptr @.str.6358, i64 438, ptr @.str.6359) + br i1 %t70, label %panic9682, label %ok9683 +panic9682: + call void @finch_panic(ptr @.str.6566, i64 438, ptr @.str.6567) unreachable -ok9278: +ok9683: %t71 = getelementptr inbounds %S.cimport.Importer, ptr %t69, i32 0, i32 0 %t72 = getelementptr inbounds %S.cimport.CImports, ptr %t71, i32 0, i32 3 %t73 = load { ptr, i64, i64 }, ptr %a9 @@ -96158,21 +100183,21 @@ ok9278: %t75 = call i64 @finch_map_find(ptr %t72, ptr %a74, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.cimport.CStruct }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t76 = icmp sge i64 %t75, 0 %t77 = xor i1 %t76, true - br label %logic.rend9279 -logic.rend9279: - br label %logic.end9276 -logic.end9276: - %t78 = phi i1 [ false, %logic.from9274 ], [ %t77, %logic.rend9279 ] - br i1 %t78, label %then9280, label %endif9282 -then9280: + br label %logic.rend9684 +logic.rend9684: + br label %logic.end9681 +logic.end9681: + %t78 = phi i1 [ false, %logic.from9679 ], [ %t77, %logic.rend9684 ] + br i1 %t78, label %then9685, label %endif9687 +then9685: %t79 = load { ptr, i64, i64 }, ptr %a9 %t80 = load ptr, ptr %a1 %t81 = icmp eq ptr %t80, null - br i1 %t81, label %panic9283, label %ok9284 -panic9283: - call void @finch_panic(ptr @.str.6360, i64 439, ptr @.str.6361) + br i1 %t81, label %panic9688, label %ok9689 +panic9688: + call void @finch_panic(ptr @.str.6568, i64 439, ptr @.str.6569) unreachable -ok9284: +ok9689: %t82 = getelementptr inbounds %S.cimport.Importer, ptr %t80, i32 0, i32 3 %t83 = load { ptr, i64, i64 }, ptr %a36 store { ptr, i64, i64 } %t83, ptr %a84 @@ -96183,14 +100208,14 @@ ok9284: %t89 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t88, i64 %t86 %t90 = load i32, ptr %a85 %t91 = icmp ne i32 %t90, 0 - br i1 %t91, label %map.new9285, label %map.have9286 -map.new9285: + br i1 %t91, label %map.new9690, label %map.have9691 +map.new9690: %t92 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t89, i32 0, i32 1 call void @finch_str_copy(ptr %t92, ptr %a84) %t93 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t89, i32 0, i32 2 store { ptr, i64, i64 } zeroinitializer, ptr %t93 - br label %map.have9286 -map.have9286: + br label %map.have9691 +map.have9691: %t94 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t89, i32 0, i32 2 store { ptr, i64, i64 } %t79, ptr %a95 call void @finch_str_copy(ptr %a96, ptr %a95) @@ -96199,35 +100224,35 @@ map.have9286: store { ptr, i64, i64 } %t97, ptr %t94 store { ptr, i64, i64 } %t98, ptr %a99 call void @finch_str_drop(ptr %a99) - br label %endif9282 -endif9282: + br label %endif9687 +endif9687: call void @finch_str_drop(ptr %a36) - br label %endif9261 -endif9261: - br label %endif9258 -else9257: + br label %endif9666 +endif9666: + br label %endif9663 +else9662: %t100 = load i32, ptr %a13 %t101 = icmp eq i32 %t100, 8 - br i1 %t101, label %then9287, label %else9288 -then9287: + br i1 %t101, label %then9692, label %else9693 +then9692: %t102 = load ptr, ptr %a1 %t103 = icmp eq ptr %t102, null - br i1 %t103, label %panic9290, label %ok9291 -panic9290: - call void @finch_panic(ptr @.str.6362, i64 443, ptr @.str.6363) + br i1 %t103, label %panic9695, label %ok9696 +panic9695: + call void @finch_panic(ptr @.str.6570, i64 443, ptr @.str.6571) unreachable -ok9291: +ok9696: %t104 = getelementptr inbounds %S.cimport.Importer, ptr %t102, i32 0, i32 0 %t105 = getelementptr inbounds %S.cimport.CImports, ptr %t104, i32 0, i32 0 %t106 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t106, ptr %a107 %t108 = call i64 @finch_map_find(ptr %t105, ptr %a107, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t109 = icmp sge i64 %t108, 0 - br i1 %t109, label %then9292, label %endif9294 -then9292: + br i1 %t109, label %then9697, label %endif9699 +then9697: call void @finch_str_drop(ptr %a9) ret void -endif9294: +endif9699: %t110 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t110, ptr %a111 call void @finch_str_copy(ptr %a112, ptr %a111) @@ -96235,11 +100260,11 @@ endif9294: %t114 = insertvalue %S.cimport.CFunc zeroinitializer, { ptr, i64, i64 } %t113, 0 %t115 = load ptr, ptr %a1 %t116 = icmp eq ptr %t115, null - br i1 %t116, label %panic9295, label %ok9296 -panic9295: - call void @finch_panic(ptr @.str.6364, i64 446, ptr @.str.6365) + br i1 %t116, label %panic9700, label %ok9701 +panic9700: + call void @finch_panic(ptr @.str.6572, i64 446, ptr @.str.6573) unreachable -ok9296: +ok9701: %t117 = getelementptr inbounds %S.cimport.Importer, ptr %t115, i32 0, i32 2 %t118 = load { ptr, i64, i64 }, ptr %t117 store { ptr, i64, i64 } %t118, ptr %a119 @@ -96251,21 +100276,21 @@ ok9296: store %S.C.CXCursor %t124, ptr %a125 %t126 = call i32 @clang_Cursor_getStorageClass(ptr byval(%S.C.CXCursor) align 8 %a125) %t127 = icmp eq i32 %t126, 3 - br i1 %t127, label %then9297, label %endif9299 -then9297: + br i1 %t127, label %then9702, label %endif9704 +then9702: %t128 = getelementptr inbounds %S.cimport.CFunc, ptr %a123, i32 0, i32 5 %t129 = load { ptr, i64, i64 }, ptr %t128 - store { ptr, i64, i64 } { ptr @.str.6366, i64 62, i64 0 }, ptr %t128 + store { ptr, i64, i64 } { ptr @.str.6574, i64 62, i64 0 }, ptr %t128 store { ptr, i64, i64 } %t129, ptr %a130 call void @finch_str_drop(ptr %a130) %t131 = load %S.cimport.CFunc, ptr %a123 %t132 = load ptr, ptr %a1 %t133 = icmp eq ptr %t132, null - br i1 %t133, label %panic9300, label %ok9301 -panic9300: - call void @finch_panic(ptr @.str.6367, i64 449, ptr @.str.6368) + br i1 %t133, label %panic9705, label %ok9706 +panic9705: + call void @finch_panic(ptr @.str.6575, i64 449, ptr @.str.6576) unreachable -ok9301: +ok9706: %t134 = getelementptr inbounds %S.cimport.Importer, ptr %t132, i32 0, i32 0 %t135 = getelementptr inbounds %S.cimport.CImports, ptr %t134, i32 0, i32 0 %t136 = load { ptr, i64, i64 }, ptr %a9 @@ -96277,14 +100302,14 @@ ok9301: %t142 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t141, i64 %t139 %t143 = load i32, ptr %a138 %t144 = icmp ne i32 %t143, 0 - br i1 %t144, label %map.new9302, label %map.have9303 -map.new9302: + br i1 %t144, label %map.new9707, label %map.have9708 +map.new9707: %t145 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t142, i32 0, i32 1 call void @finch_str_copy(ptr %t145, ptr %a137) %t146 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t142, i32 0, i32 2 store %S.cimport.CFunc zeroinitializer, ptr %t146 - br label %map.have9303 -map.have9303: + br label %map.have9708 +map.have9708: %t147 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t142, i32 0, i32 2 store %S.cimport.CFunc %t131, ptr %a148 call void @finch.copy.S_cimport_CFunc(ptr %a149, ptr %a148) @@ -96296,7 +100321,7 @@ map.have9303: call void @finch.drop.S_cimport_CFunc(ptr %a123) call void @finch_str_drop(ptr %a9) ret void -endif9299: +endif9704: %t155 = load %S.C.CXCursor, ptr %a2 store %S.C.CXCursor %t155, ptr %a156 call void @clang_getCursorType(ptr sret(%S.C.CXType) align 16 %a154, ptr byval(%S.C.CXCursor) align 8 %a156) @@ -96308,21 +100333,21 @@ endif9299: %t161 = getelementptr inbounds %S.C.CXType, ptr %a160, i32 0, i32 0 %t162 = load i32, ptr %t161 %t163 = icmp eq i32 %t162, 110 - br i1 %t163, label %then9304, label %endif9306 -then9304: + br i1 %t163, label %then9709, label %endif9711 +then9709: %t164 = getelementptr inbounds %S.cimport.CFunc, ptr %a123, i32 0, i32 5 %t165 = load { ptr, i64, i64 }, ptr %t164 - store { ptr, i64, i64 } { ptr @.str.6369, i64 42, i64 0 }, ptr %t164 + store { ptr, i64, i64 } { ptr @.str.6577, i64 42, i64 0 }, ptr %t164 store { ptr, i64, i64 } %t165, ptr %a166 call void @finch_str_drop(ptr %a166) %t167 = load %S.cimport.CFunc, ptr %a123 %t168 = load ptr, ptr %a1 %t169 = icmp eq ptr %t168, null - br i1 %t169, label %panic9307, label %ok9308 -panic9307: - call void @finch_panic(ptr @.str.6370, i64 455, ptr @.str.6371) + br i1 %t169, label %panic9712, label %ok9713 +panic9712: + call void @finch_panic(ptr @.str.6578, i64 455, ptr @.str.6579) unreachable -ok9308: +ok9713: %t170 = getelementptr inbounds %S.cimport.Importer, ptr %t168, i32 0, i32 0 %t171 = getelementptr inbounds %S.cimport.CImports, ptr %t170, i32 0, i32 0 %t172 = load { ptr, i64, i64 }, ptr %a9 @@ -96334,14 +100359,14 @@ ok9308: %t178 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t177, i64 %t175 %t179 = load i32, ptr %a174 %t180 = icmp ne i32 %t179, 0 - br i1 %t180, label %map.new9309, label %map.have9310 -map.new9309: + br i1 %t180, label %map.new9714, label %map.have9715 +map.new9714: %t181 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t178, i32 0, i32 1 call void @finch_str_copy(ptr %t181, ptr %a173) %t182 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t178, i32 0, i32 2 store %S.cimport.CFunc zeroinitializer, ptr %t182 - br label %map.have9310 -map.have9310: + br label %map.have9715 +map.have9715: %t183 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t178, i32 0, i32 2 store %S.cimport.CFunc %t167, ptr %a184 call void @finch.copy.S_cimport_CFunc(ptr %a185, ptr %a184) @@ -96353,7 +100378,7 @@ map.have9310: call void @finch.drop.S_cimport_CFunc(ptr %a123) call void @finch_str_drop(ptr %a9) ret void -endif9306: +endif9711: %t189 = load ptr, ptr %a1 %t191 = load %S.C.CXType, ptr %a160 store %S.C.CXType %t191, ptr %a192 @@ -96363,8 +100388,8 @@ endif9306: store %S.cimport.Mapped %t194, ptr %a195 %t196 = getelementptr inbounds %S.cimport.Mapped, ptr %a195, i32 0, i32 2 %t197 = load i1, ptr %t196 - br i1 %t197, label %then9311, label %else9312 -then9311: + br i1 %t197, label %then9716, label %else9717 +then9716: %t198 = getelementptr inbounds %S.cimport.Mapped, ptr %a195, i32 0, i32 0 %t199 = load %S.ast.Type, ptr %t198 %t200 = getelementptr inbounds %S.cimport.CFunc, ptr %a123, i32 0, i32 2 @@ -96375,8 +100400,8 @@ then9311: store %S.ast.Type %t203, ptr %t200 store %S.ast.Type %t204, ptr %a205 call void @finch.drop.S_ast_Type(ptr %a205) - br label %endif9313 -else9312: + br label %endif9718 +else9717: %t206 = getelementptr inbounds %S.cimport.Mapped, ptr %a195, i32 0, i32 1 %t207 = load { ptr, i64, i64 }, ptr %t206 %t208 = getelementptr inbounds %S.cimport.CFunc, ptr %a123, i32 0, i32 5 @@ -96387,8 +100412,8 @@ else9312: store { ptr, i64, i64 } %t211, ptr %t208 store { ptr, i64, i64 } %t212, ptr %a213 call void @finch_str_drop(ptr %a213) - br label %endif9313 -endif9313: + br label %endif9718 +endif9718: %t214 = load %S.C.CXType, ptr %a160 store %S.C.CXType %t214, ptr %a215 %t216 = call i32 @clang_getNumArgTypes(ptr byval(%S.C.CXType) align 8 %a215) @@ -96396,20 +100421,20 @@ endif9313: store i64 %t217, ptr %a218 %t219 = load i64, ptr %a218 store i64 0, ptr %a220 - br label %for.cond9314 -for.cond9314: + br label %for.cond9719 +for.cond9719: %t221 = load i64, ptr %a220 %t222 = icmp slt i64 %t221, %t219 - br i1 %t222, label %for.body9315, label %for.end9317 -for.body9315: + br i1 %t222, label %for.body9720, label %for.end9722 +for.body9720: %t223 = getelementptr inbounds %S.cimport.CFunc, ptr %a123, i32 0, i32 5 %t224 = getelementptr inbounds { ptr, i64, i64 }, ptr %t223, i32 0, i32 1 %t225 = load i64, ptr %t224 %t226 = icmp sgt i64 %t225, 0 - br i1 %t226, label %then9318, label %endif9320 -then9318: - br label %for.end9317 -endif9320: + br i1 %t226, label %then9723, label %endif9725 +then9723: + br label %for.end9722 +endif9725: %t227 = load ptr, ptr %a1 %t229 = load %S.C.CXType, ptr %a160 store %S.C.CXType %t229, ptr %a230 @@ -96421,8 +100446,8 @@ endif9320: store %S.cimport.Mapped %t234, ptr %a235 %t236 = getelementptr inbounds %S.cimport.Mapped, ptr %a235, i32 0, i32 2 %t237 = load i1, ptr %t236 - br i1 %t237, label %then9321, label %else9322 -then9321: + br i1 %t237, label %then9726, label %else9727 +then9726: %t238 = getelementptr inbounds %S.cimport.CFunc, ptr %a123, i32 0, i32 3 %t239 = getelementptr inbounds { ptr, i64, i64 }, ptr %t238, i32 0, i32 1 %t240 = getelementptr inbounds %S.cimport.Mapped, ptr %a235, i32 0, i32 0 @@ -96437,8 +100462,8 @@ then9321: %t248 = getelementptr inbounds %S.ast.Type, ptr %t247, i64 %t245 store %S.ast.Type %t244, ptr %t248 store i64 %t246, ptr %t239 - br label %endif9323 -else9322: + br label %endif9728 +else9727: %t249 = getelementptr inbounds %S.cimport.Mapped, ptr %a235, i32 0, i32 1 %t250 = load { ptr, i64, i64 }, ptr %t249 %t251 = getelementptr inbounds %S.cimport.CFunc, ptr %a123, i32 0, i32 5 @@ -96449,16 +100474,16 @@ else9322: store { ptr, i64, i64 } %t254, ptr %t251 store { ptr, i64, i64 } %t255, ptr %a256 call void @finch_str_drop(ptr %a256) - br label %endif9323 -endif9323: + br label %endif9728 +endif9728: call void @finch.drop.S_cimport_Mapped(ptr %a235) - br label %for.step9316 -for.step9316: + br label %for.step9721 +for.step9721: %t257 = load i64, ptr %a220 %t258 = add i64 %t257, 1 store i64 %t258, ptr %a220 - br label %for.cond9314 -for.end9317: + br label %for.cond9719 +for.end9722: %t259 = load %S.C.CXType, ptr %a160 store %S.C.CXType %t259, ptr %a260 %t261 = call i32 @clang_isFunctionTypeVariadic(ptr byval(%S.C.CXType) align 8 %a260) @@ -96468,11 +100493,11 @@ for.end9317: %t264 = load %S.cimport.CFunc, ptr %a123 %t265 = load ptr, ptr %a1 %t266 = icmp eq ptr %t265, null - br i1 %t266, label %panic9324, label %ok9325 -panic9324: - call void @finch_panic(ptr @.str.6372, i64 477, ptr @.str.6373) + br i1 %t266, label %panic9729, label %ok9730 +panic9729: + call void @finch_panic(ptr @.str.6580, i64 477, ptr @.str.6581) unreachable -ok9325: +ok9730: %t267 = getelementptr inbounds %S.cimport.Importer, ptr %t265, i32 0, i32 0 %t268 = getelementptr inbounds %S.cimport.CImports, ptr %t267, i32 0, i32 0 %t269 = load { ptr, i64, i64 }, ptr %a9 @@ -96484,14 +100509,14 @@ ok9325: %t275 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t274, i64 %t272 %t276 = load i32, ptr %a271 %t277 = icmp ne i32 %t276, 0 - br i1 %t277, label %map.new9326, label %map.have9327 -map.new9326: + br i1 %t277, label %map.new9731, label %map.have9732 +map.new9731: %t278 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t275, i32 0, i32 1 call void @finch_str_copy(ptr %t278, ptr %a270) %t279 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t275, i32 0, i32 2 store %S.cimport.CFunc zeroinitializer, ptr %t279 - br label %map.have9327 -map.have9327: + br label %map.have9732 +map.have9732: %t280 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t275, i32 0, i32 2 store %S.cimport.CFunc %t264, ptr %a281 call void @finch.copy.S_cimport_CFunc(ptr %a282, ptr %a281) @@ -96502,43 +100527,43 @@ map.have9327: call void @finch.drop.S_cimport_CFunc(ptr %a285) call void @finch.drop.S_cimport_Mapped(ptr %a195) call void @finch.drop.S_cimport_CFunc(ptr %a123) - br label %endif9289 -else9288: + br label %endif9694 +else9693: %t286 = load i32, ptr %a13 %t287 = icmp eq i32 %t286, 9 - br i1 %t287, label %then9328, label %else9329 -then9328: + br i1 %t287, label %then9733, label %else9734 +then9733: %t288 = load %S.C.CXCursor, ptr %a2 store %S.C.CXCursor %t288, ptr %a289 %t290 = call i32 @clang_Cursor_getStorageClass(ptr byval(%S.C.CXCursor) align 8 %a289) %t291 = icmp ne i32 %t290, 2 - br label %logic.from9331 -logic.from9331: - br i1 %t291, label %logic.end9333, label %logic.rhs9332 -logic.rhs9332: + br label %logic.from9736 +logic.from9736: + br i1 %t291, label %logic.end9738, label %logic.rhs9737 +logic.rhs9737: %t292 = load ptr, ptr %a1 %t293 = icmp eq ptr %t292, null - br i1 %t293, label %panic9334, label %ok9335 -panic9334: - call void @finch_panic(ptr @.str.6374, i64 479, ptr @.str.6375) + br i1 %t293, label %panic9739, label %ok9740 +panic9739: + call void @finch_panic(ptr @.str.6582, i64 479, ptr @.str.6583) unreachable -ok9335: +ok9740: %t294 = getelementptr inbounds %S.cimport.Importer, ptr %t292, i32 0, i32 0 %t295 = getelementptr inbounds %S.cimport.CImports, ptr %t294, i32 0, i32 2 %t296 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t296, ptr %a297 %t298 = call i64 @finch_map_find(ptr %t295, ptr %a297, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.ast.Type }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t299 = icmp sge i64 %t298, 0 - br label %logic.rend9336 -logic.rend9336: - br label %logic.end9333 -logic.end9333: - %t300 = phi i1 [ true, %logic.from9331 ], [ %t299, %logic.rend9336 ] - br i1 %t300, label %then9337, label %endif9339 -then9337: + br label %logic.rend9741 +logic.rend9741: + br label %logic.end9738 +logic.end9738: + %t300 = phi i1 [ true, %logic.from9736 ], [ %t299, %logic.rend9741 ] + br i1 %t300, label %then9742, label %endif9744 +then9742: call void @finch_str_drop(ptr %a9) ret void -endif9339: +endif9744: %t301 = load ptr, ptr %a1 %t303 = load %S.C.CXCursor, ptr %a2 store %S.C.CXCursor %t303, ptr %a304 @@ -96548,17 +100573,17 @@ endif9339: store %S.cimport.Mapped %t306, ptr %a307 %t308 = getelementptr inbounds %S.cimport.Mapped, ptr %a307, i32 0, i32 2 %t309 = load i1, ptr %t308 - br i1 %t309, label %then9340, label %endif9342 -then9340: + br i1 %t309, label %then9745, label %endif9747 +then9745: %t310 = getelementptr inbounds %S.cimport.Mapped, ptr %a307, i32 0, i32 0 %t311 = load %S.ast.Type, ptr %t310 %t312 = load ptr, ptr %a1 %t313 = icmp eq ptr %t312, null - br i1 %t313, label %panic9343, label %ok9344 -panic9343: - call void @finch_panic(ptr @.str.6376, i64 484, ptr @.str.6377) + br i1 %t313, label %panic9748, label %ok9749 +panic9748: + call void @finch_panic(ptr @.str.6584, i64 484, ptr @.str.6585) unreachable -ok9344: +ok9749: %t314 = getelementptr inbounds %S.cimport.Importer, ptr %t312, i32 0, i32 0 %t315 = getelementptr inbounds %S.cimport.CImports, ptr %t314, i32 0, i32 2 %t316 = load { ptr, i64, i64 }, ptr %a9 @@ -96570,14 +100595,14 @@ ok9344: %t322 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.ast.Type }, ptr %t321, i64 %t319 %t323 = load i32, ptr %a318 %t324 = icmp ne i32 %t323, 0 - br i1 %t324, label %map.new9345, label %map.have9346 -map.new9345: + br i1 %t324, label %map.new9750, label %map.have9751 +map.new9750: %t325 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.ast.Type }, ptr %t322, i32 0, i32 1 call void @finch_str_copy(ptr %t325, ptr %a317) %t326 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.ast.Type }, ptr %t322, i32 0, i32 2 store %S.ast.Type zeroinitializer, ptr %t326 - br label %map.have9346 -map.have9346: + br label %map.have9751 +map.have9751: %t327 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.ast.Type }, ptr %t322, i32 0, i32 2 store %S.ast.Type %t311, ptr %a328 call void @finch.copy.S_ast_Type(ptr %a329, ptr %a328) @@ -96586,48 +100611,48 @@ map.have9346: store %S.ast.Type %t330, ptr %t327 store %S.ast.Type %t331, ptr %a332 call void @finch.drop.S_ast_Type(ptr %a332) - br label %endif9342 -endif9342: + br label %endif9747 +endif9747: call void @finch.drop.S_cimport_Mapped(ptr %a307) - br label %endif9330 -else9329: + br label %endif9735 +else9734: %t333 = load i32, ptr %a13 %t334 = icmp eq i32 %t333, 2 - br i1 %t334, label %then9347, label %else9348 -then9347: + br i1 %t334, label %then9752, label %else9753 +then9752: %t335 = load %S.C.CXCursor, ptr %a2 store %S.C.CXCursor %t335, ptr %a336 %t337 = call i32 @clang_isCursorDefinition(ptr byval(%S.C.CXCursor) align 8 %a336) %t338 = icmp ne i32 %t337, 0 - br label %logic.from9350 -logic.from9350: - br i1 %t338, label %logic.rhs9351, label %logic.end9352 -logic.rhs9351: + br label %logic.from9755 +logic.from9755: + br i1 %t338, label %logic.rhs9756, label %logic.end9757 +logic.rhs9756: %t339 = getelementptr inbounds { ptr, i64, i64 }, ptr %a9, i32 0, i32 1 %t340 = load i64, ptr %t339 %t341 = icmp sgt i64 %t340, 0 - br label %logic.rend9353 -logic.rend9353: - br label %logic.end9352 -logic.end9352: - %t342 = phi i1 [ false, %logic.from9350 ], [ %t341, %logic.rend9353 ] - br label %logic.from9354 -logic.from9354: - br i1 %t342, label %logic.rhs9355, label %logic.end9356 -logic.rhs9355: + br label %logic.rend9758 +logic.rend9758: + br label %logic.end9757 +logic.end9757: + %t342 = phi i1 [ false, %logic.from9755 ], [ %t341, %logic.rend9758 ] + br label %logic.from9759 +logic.from9759: + br i1 %t342, label %logic.rhs9760, label %logic.end9761 +logic.rhs9760: %t343 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t343, ptr %a344 - store { ptr, i64, i64 } { ptr @.str.6379, i64 1, i64 0 }, ptr %a346 + store { ptr, i64, i64 } { ptr @.str.6587, i64 1, i64 0 }, ptr %a346 %t347 = call i64 @finch_str_find(ptr %a344, ptr %a346) %t348 = icmp sge i64 %t347, 0 %t349 = xor i1 %t348, true - br label %logic.rend9357 -logic.rend9357: - br label %logic.end9356 -logic.end9356: - %t350 = phi i1 [ false, %logic.from9354 ], [ %t349, %logic.rend9357 ] - br i1 %t350, label %then9358, label %endif9360 -then9358: + br label %logic.rend9762 +logic.rend9762: + br label %logic.end9761 +logic.end9761: + %t350 = phi i1 [ false, %logic.from9759 ], [ %t349, %logic.rend9762 ] + br i1 %t350, label %then9763, label %endif9765 +then9763: %t351 = load %S.C.CXCursor, ptr %a2 store %S.C.CXCursor %t351, ptr %a352 %t353 = call { i64, i64 } @clang_getCursorUSR(ptr byval(%S.C.CXCursor) align 8 %a352) @@ -96637,27 +100662,27 @@ then9358: store { ptr, i64, i64 } %t356, ptr %a357 %t358 = load ptr, ptr %a1 %t359 = icmp eq ptr %t358, null - br i1 %t359, label %panic9361, label %ok9362 -panic9361: - call void @finch_panic(ptr @.str.6380, i64 489, ptr @.str.6381) + br i1 %t359, label %panic9766, label %ok9767 +panic9766: + call void @finch_panic(ptr @.str.6588, i64 489, ptr @.str.6589) unreachable -ok9362: +ok9767: %t360 = getelementptr inbounds %S.cimport.Importer, ptr %t358, i32 0, i32 3 %t361 = load { ptr, i64, i64 }, ptr %a357 store { ptr, i64, i64 } %t361, ptr %a362 %t363 = call i64 @finch_map_find(ptr %t360, ptr %a362, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t364 = icmp sge i64 %t363, 0 %t365 = xor i1 %t364, true - br i1 %t365, label %then9363, label %endif9365 -then9363: + br i1 %t365, label %then9768, label %endif9770 +then9768: %t366 = load { ptr, i64, i64 }, ptr %a9 %t367 = load ptr, ptr %a1 %t368 = icmp eq ptr %t367, null - br i1 %t368, label %panic9366, label %ok9367 -panic9366: - call void @finch_panic(ptr @.str.6382, i64 490, ptr @.str.6383) + br i1 %t368, label %panic9771, label %ok9772 +panic9771: + call void @finch_panic(ptr @.str.6590, i64 490, ptr @.str.6591) unreachable -ok9367: +ok9772: %t369 = getelementptr inbounds %S.cimport.Importer, ptr %t367, i32 0, i32 3 %t370 = load { ptr, i64, i64 }, ptr %a357 store { ptr, i64, i64 } %t370, ptr %a371 @@ -96668,14 +100693,14 @@ ok9367: %t376 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t375, i64 %t373 %t377 = load i32, ptr %a372 %t378 = icmp ne i32 %t377, 0 - br i1 %t378, label %map.new9368, label %map.have9369 -map.new9368: + br i1 %t378, label %map.new9773, label %map.have9774 +map.new9773: %t379 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t376, i32 0, i32 1 call void @finch_str_copy(ptr %t379, ptr %a371) %t380 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t376, i32 0, i32 2 store { ptr, i64, i64 } zeroinitializer, ptr %t380 - br label %map.have9369 -map.have9369: + br label %map.have9774 +map.have9774: %t381 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t376, i32 0, i32 2 store { ptr, i64, i64 } %t366, ptr %a382 call void @finch_str_copy(ptr %a383, ptr %a382) @@ -96684,34 +100709,34 @@ map.have9369: store { ptr, i64, i64 } %t384, ptr %t381 store { ptr, i64, i64 } %t385, ptr %a386 call void @finch_str_drop(ptr %a386) - br label %endif9365 -endif9365: + br label %endif9770 +endif9770: call void @finch_str_drop(ptr %a357) - br label %endif9360 -endif9360: - br label %endif9349 -else9348: + br label %endif9765 +endif9765: + br label %endif9754 +else9753: %t387 = load i32, ptr %a13 %t388 = icmp eq i32 %t387, 5 - br i1 %t388, label %then9370, label %else9371 -then9370: + br i1 %t388, label %then9775, label %else9776 +then9775: %t389 = load %S.C.CXCursor, ptr %a2 store %S.C.CXCursor %t389, ptr %a390 %t391 = load ptr, ptr %a1 %t392 = call i32 @clang_visitChildren(ptr byval(%S.C.CXCursor) align 8 %a390, ptr @finch.c.cimport.visitTop, ptr %t391) - br label %endif9372 -else9371: + br label %endif9777 +else9776: %t393 = load i32, ptr %a13 %t394 = icmp eq i32 %t393, 7 - br i1 %t394, label %then9373, label %else9374 -then9373: + br i1 %t394, label %then9778, label %else9779 +then9778: %t395 = load ptr, ptr %a1 %t396 = icmp eq ptr %t395, null - br i1 %t396, label %panic9376, label %ok9377 -panic9376: - call void @finch_panic(ptr @.str.6384, i64 496, ptr @.str.6385) + br i1 %t396, label %panic9781, label %ok9782 +panic9781: + call void @finch_panic(ptr @.str.6592, i64 496, ptr @.str.6593) unreachable -ok9377: +ok9782: %t397 = getelementptr inbounds %S.cimport.Importer, ptr %t395, i32 0, i32 0 %t398 = getelementptr inbounds %S.cimport.CImports, ptr %t397, i32 0, i32 1 %t399 = load { ptr, i64, i64 }, ptr %a9 @@ -96719,19 +100744,19 @@ ok9377: %t401 = call i64 @finch_map_find(ptr %t398, ptr %a400, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t402 = icmp sge i64 %t401, 0 %t403 = xor i1 %t402, true - br i1 %t403, label %then9378, label %endif9380 -then9378: + br i1 %t403, label %then9783, label %endif9785 +then9783: %t404 = load %S.C.CXCursor, ptr %a2 store %S.C.CXCursor %t404, ptr %a405 %t406 = call i64 @clang_getEnumConstantDeclValue(ptr byval(%S.C.CXCursor) align 8 %a405) %t407 = insertvalue %S.cimport.CConst zeroinitializer, i64 %t406, 1 %t408 = load ptr, ptr %a1 %t409 = icmp eq ptr %t408, null - br i1 %t409, label %panic9381, label %ok9382 -panic9381: - call void @finch_panic(ptr @.str.6386, i64 497, ptr @.str.6387) + br i1 %t409, label %panic9786, label %ok9787 +panic9786: + call void @finch_panic(ptr @.str.6594, i64 497, ptr @.str.6595) unreachable -ok9382: +ok9787: %t410 = getelementptr inbounds %S.cimport.Importer, ptr %t408, i32 0, i32 0 %t411 = getelementptr inbounds %S.cimport.CImports, ptr %t410, i32 0, i32 1 %t412 = load { ptr, i64, i64 }, ptr %a9 @@ -96743,66 +100768,66 @@ ok9382: %t418 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t417, i64 %t415 %t419 = load i32, ptr %a414 %t420 = icmp ne i32 %t419, 0 - br i1 %t420, label %map.new9383, label %map.have9384 -map.new9383: + br i1 %t420, label %map.new9788, label %map.have9789 +map.new9788: %t421 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t418, i32 0, i32 1 call void @finch_str_copy(ptr %t421, ptr %a413) %t422 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t418, i32 0, i32 2 store %S.cimport.CConst zeroinitializer, ptr %t422 - br label %map.have9384 -map.have9384: + br label %map.have9789 +map.have9789: %t423 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t418, i32 0, i32 2 %t424 = load %S.cimport.CConst, ptr %t423 store %S.cimport.CConst %t407, ptr %t423 store %S.cimport.CConst %t424, ptr %a425 call void @finch.drop.S_cimport_CConst(ptr %a425) - br label %endif9380 -endif9380: - br label %endif9375 -else9374: + br label %endif9785 +endif9785: + br label %endif9780 +else9779: %t426 = load i32, ptr %a13 %t427 = icmp eq i32 %t426, 501 - br i1 %t427, label %then9385, label %endif9387 -then9385: + br i1 %t427, label %then9790, label %endif9792 +then9790: %t428 = load %S.C.CXCursor, ptr %a2 store %S.C.CXCursor %t428, ptr %a429 %t430 = call i32 @clang_Cursor_isMacroBuiltin(ptr byval(%S.C.CXCursor) align 8 %a429) %t431 = icmp ne i32 %t430, 0 - br label %logic.from9388 -logic.from9388: - br i1 %t431, label %logic.end9390, label %logic.rhs9389 -logic.rhs9389: + br label %logic.from9793 +logic.from9793: + br i1 %t431, label %logic.end9795, label %logic.rhs9794 +logic.rhs9794: %t432 = load %S.C.CXCursor, ptr %a2 store %S.C.CXCursor %t432, ptr %a433 %t434 = call i32 @clang_Cursor_isMacroFunctionLike(ptr byval(%S.C.CXCursor) align 8 %a433) %t435 = icmp ne i32 %t434, 0 - br label %logic.rend9391 -logic.rend9391: - br label %logic.end9390 -logic.end9390: - %t436 = phi i1 [ true, %logic.from9388 ], [ %t435, %logic.rend9391 ] - br i1 %t436, label %then9392, label %endif9394 -then9392: + br label %logic.rend9796 +logic.rend9796: + br label %logic.end9795 +logic.end9795: + %t436 = phi i1 [ true, %logic.from9793 ], [ %t435, %logic.rend9796 ] + br i1 %t436, label %then9797, label %endif9799 +then9797: call void @finch_str_drop(ptr %a9) ret void -endif9394: +endif9799: %t437 = load ptr, ptr %a1 %t438 = load %S.C.CXCursor, ptr %a2 %t439 = call %S.cimport.Number @finch.cimport.macroValue(ptr %t437, %S.C.CXCursor %t438) store %S.cimport.Number %t439, ptr %a440 %t441 = getelementptr inbounds %S.cimport.Number, ptr %a440, i32 0, i32 1 %t442 = load i1, ptr %t441 - br label %logic.from9395 -logic.from9395: - br i1 %t442, label %logic.rhs9396, label %logic.end9397 -logic.rhs9396: + br label %logic.from9800 +logic.from9800: + br i1 %t442, label %logic.rhs9801, label %logic.end9802 +logic.rhs9801: %t443 = load ptr, ptr %a1 %t444 = icmp eq ptr %t443, null - br i1 %t444, label %panic9398, label %ok9399 -panic9398: - call void @finch_panic(ptr @.str.6388, i64 504, ptr @.str.6389) + br i1 %t444, label %panic9803, label %ok9804 +panic9803: + call void @finch_panic(ptr @.str.6596, i64 504, ptr @.str.6597) unreachable -ok9399: +ok9804: %t445 = getelementptr inbounds %S.cimport.Importer, ptr %t443, i32 0, i32 0 %t446 = getelementptr inbounds %S.cimport.CImports, ptr %t445, i32 0, i32 1 %t447 = load { ptr, i64, i64 }, ptr %a9 @@ -96810,22 +100835,22 @@ ok9399: %t449 = call i64 @finch_map_find(ptr %t446, ptr %a448, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t450 = icmp sge i64 %t449, 0 %t451 = xor i1 %t450, true - br label %logic.rend9400 -logic.rend9400: - br label %logic.end9397 -logic.end9397: - %t452 = phi i1 [ false, %logic.from9395 ], [ %t451, %logic.rend9400 ] - br i1 %t452, label %then9401, label %endif9403 -then9401: + br label %logic.rend9805 +logic.rend9805: + br label %logic.end9802 +logic.end9802: + %t452 = phi i1 [ false, %logic.from9800 ], [ %t451, %logic.rend9805 ] + br i1 %t452, label %then9806, label %endif9808 +then9806: %t453 = getelementptr inbounds %S.cimport.Number, ptr %a440, i32 0, i32 0 %t454 = load %S.cimport.CConst, ptr %t453 %t455 = load ptr, ptr %a1 %t456 = icmp eq ptr %t455, null - br i1 %t456, label %panic9404, label %ok9405 -panic9404: - call void @finch_panic(ptr @.str.6390, i64 505, ptr @.str.6391) + br i1 %t456, label %panic9809, label %ok9810 +panic9809: + call void @finch_panic(ptr @.str.6598, i64 505, ptr @.str.6599) unreachable -ok9405: +ok9810: %t457 = getelementptr inbounds %S.cimport.Importer, ptr %t455, i32 0, i32 0 %t458 = getelementptr inbounds %S.cimport.CImports, ptr %t457, i32 0, i32 1 %t459 = load { ptr, i64, i64 }, ptr %a9 @@ -96837,14 +100862,14 @@ ok9405: %t465 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t464, i64 %t462 %t466 = load i32, ptr %a461 %t467 = icmp ne i32 %t466, 0 - br i1 %t467, label %map.new9406, label %map.have9407 -map.new9406: + br i1 %t467, label %map.new9811, label %map.have9812 +map.new9811: %t468 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t465, i32 0, i32 1 call void @finch_str_copy(ptr %t468, ptr %a460) %t469 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t465, i32 0, i32 2 store %S.cimport.CConst zeroinitializer, ptr %t469 - br label %map.have9407 -map.have9407: + br label %map.have9812 +map.have9812: %t470 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CConst }, ptr %t465, i32 0, i32 2 store %S.cimport.CConst %t454, ptr %a471 call void @finch.copy.S_cimport_CConst(ptr %a472, ptr %a471) @@ -96853,23 +100878,23 @@ map.have9407: store %S.cimport.CConst %t473, ptr %t470 store %S.cimport.CConst %t474, ptr %a475 call void @finch.drop.S_cimport_CConst(ptr %a475) - br label %endif9403 -endif9403: + br label %endif9808 +endif9808: call void @finch.drop.S_cimport_Number(ptr %a440) - br label %endif9387 -endif9387: - br label %endif9375 -endif9375: - br label %endif9372 -endif9372: - br label %endif9349 -endif9349: - br label %endif9330 -endif9330: - br label %endif9289 -endif9289: - br label %endif9258 -endif9258: + br label %endif9792 +endif9792: + br label %endif9780 +endif9780: + br label %endif9777 +endif9777: + br label %endif9754 +endif9754: + br label %endif9735 +endif9735: + br label %endif9694 +endif9694: + br label %endif9663 +endif9663: call void @finch_str_drop(ptr %a9) ret void } @@ -96880,31 +100905,31 @@ entry: %t1 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %a, i32 0, i32 2 %t2 = load i64, ptr %t1 store i64 0, ptr %a3 - br label %n.cond9411 -n.cond9411: + br label %n.cond9816 +n.cond9816: %t4 = load i64, ptr %a3 %t5 = icmp slt i64 %t4, %t2 - br i1 %t5, label %n.body9412, label %n.end9413 -n.body9412: + br i1 %t5, label %n.body9817, label %n.end9818 +n.body9817: %t6 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %a, i32 0, i32 0 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t7, i64 %t4 %t9 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t8, i32 0, i32 0 %t10 = load i64, ptr %t9 %t11 = icmp ne i64 %t10, 0 - br i1 %t11, label %entry.live9414, label %entry.next9415 -entry.live9414: + br i1 %t11, label %entry.live9819, label %entry.next9820 +entry.live9819: %t12 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t8, i32 0, i32 1 call void @finch_str_drop(ptr %t12) %t13 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t8, i32 0, i32 2 call void @finch_str_drop(ptr %t13) - br label %entry.next9415 -entry.next9415: + br label %entry.next9820 +entry.next9820: %t14 = load i64, ptr %a3 %t15 = add i64 %t14, 1 store i64 %t15, ptr %a3 - br label %n.cond9411 -n.end9413: + br label %n.cond9816 +n.end9818: call void @finch_map_free(ptr %a) ret void } @@ -96915,30 +100940,30 @@ entry: %t1 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %a, i32 0, i32 2 %t2 = load i64, ptr %t1 store i64 0, ptr %a3 - br label %n.cond9416 -n.cond9416: + br label %n.cond9821 +n.cond9821: %t4 = load i64, ptr %a3 %t5 = icmp slt i64 %t4, %t2 - br i1 %t5, label %n.body9417, label %n.end9418 -n.body9417: + br i1 %t5, label %n.body9822, label %n.end9823 +n.body9822: %t6 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %a, i32 0, i32 0 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds { i64, { ptr, i64, i64 }, i1 }, ptr %t7, i64 %t4 %t9 = getelementptr inbounds { i64, { ptr, i64, i64 }, i1 }, ptr %t8, i32 0, i32 0 %t10 = load i64, ptr %t9 %t11 = icmp ne i64 %t10, 0 - br i1 %t11, label %entry.live9419, label %entry.next9420 -entry.live9419: + br i1 %t11, label %entry.live9824, label %entry.next9825 +entry.live9824: %t12 = getelementptr inbounds { i64, { ptr, i64, i64 }, i1 }, ptr %t8, i32 0, i32 1 call void @finch_str_drop(ptr %t12) %t13 = getelementptr inbounds { i64, { ptr, i64, i64 }, i1 }, ptr %t8, i32 0, i32 2 - br label %entry.next9420 -entry.next9420: + br label %entry.next9825 +entry.next9825: %t14 = load i64, ptr %a3 %t15 = add i64 %t14, 1 store i64 %t15, ptr %a3 - br label %n.cond9416 -n.end9418: + br label %n.cond9821 +n.end9823: call void @finch_map_free(ptr %a) ret void } @@ -97096,8 +101121,8 @@ entry: %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t8 = load i64, ptr %t7 %t9 = icmp eq i64 %t8, 0 - br i1 %t9, label %then9408, label %endif9410 -then9408: + br i1 %t9, label %then9813, label %endif9815 +then9813: %t10 = getelementptr inbounds %S.cimport.Importer, ptr %a6, i32 0, i32 0 %t11 = load %S.cimport.CImports, ptr %t10 store %S.cimport.CImports %t11, ptr %a12 @@ -97107,15 +101132,15 @@ then9408: %t15 = insertvalue { i1, %S.cimport.CImports, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 %t16 = insertvalue { i1, %S.cimport.CImports, { ptr, i64, i64 } } %t15, %S.cimport.CImports %t14, 1 ret { i1, %S.cimport.CImports, { ptr, i64, i64 } } %t16 -endif9410: +endif9815: %t17 = mul i64 3, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t18 = call ptr @finch_alloc(i64 %t17) %t19 = getelementptr inbounds { ptr, i64, i64 }, ptr %t18, i64 0 - store { ptr, i64, i64 } { ptr @.str.6392, i64 2, i64 0 }, ptr %t19 + store { ptr, i64, i64 } { ptr @.str.6600, i64 2, i64 0 }, ptr %t19 %t20 = getelementptr inbounds { ptr, i64, i64 }, ptr %t18, i64 1 - store { ptr, i64, i64 } { ptr @.str.6393, i64 1, i64 0 }, ptr %t20 + store { ptr, i64, i64 } { ptr @.str.6601, i64 1, i64 0 }, ptr %t20 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t18, i64 2 - store { ptr, i64, i64 } { ptr @.str.6394, i64 10, i64 0 }, ptr %t21 + store { ptr, i64, i64 } { ptr @.str.6602, i64 10, i64 0 }, ptr %t21 %t22 = insertvalue { ptr, i64, i64 } undef, ptr %t18, 0 %t23 = insertvalue { ptr, i64, i64 } %t22, i64 3, 1 %t24 = insertvalue { ptr, i64, i64 } %t23, i64 3, 2 @@ -97123,11 +101148,11 @@ endif9410: %t26 = getelementptr inbounds { ptr, i64, i64 }, ptr %a3, i32 0, i32 1 %t27 = load i64, ptr %t26 %t28 = icmp sgt i64 %t27, 0 - br i1 %t28, label %then9421, label %endif9423 -then9421: + br i1 %t28, label %then9826, label %endif9828 +then9826: %t29 = getelementptr inbounds { ptr, i64, i64 }, ptr %a25, i32 0, i32 1 %t30 = load { ptr, i64, i64 }, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.6395, i64 9, i64 0 }, ptr %a32 + store { ptr, i64, i64 } { ptr @.str.6603, i64 9, i64 0 }, ptr %a32 store { ptr, i64, i64 } %t30, ptr %a33 call void @finch_str_concat(ptr %a31, ptr %a32, ptr %a33) %t34 = load { ptr, i64, i64 }, ptr %a31 @@ -97138,37 +101163,37 @@ then9421: %t38 = getelementptr inbounds { ptr, i64, i64 }, ptr %t37, i64 %t35 store { ptr, i64, i64 } %t34, ptr %t38 store i64 %t36, ptr %t29 - br label %endif9423 -endif9423: + br label %endif9828 +endif9828: %t39 = load i1, ptr %a4 - br i1 %t39, label %then9424, label %endif9426 -then9424: + br i1 %t39, label %then9829, label %endif9831 +then9829: %t40 = getelementptr inbounds { ptr, i64, i64 }, ptr %a25, i32 0, i32 1 %t41 = load i64, ptr %t40 %t42 = add i64 %t41, 1 call void @finch_arr_reserve(ptr %a25, i64 %t42, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t43 = load ptr, ptr %a25 %t44 = getelementptr inbounds { ptr, i64, i64 }, ptr %t43, i64 %t41 - store { ptr, i64, i64 } { ptr @.str.6396, i64 19, i64 0 }, ptr %t44 + store { ptr, i64, i64 } { ptr @.str.6604, i64 19, i64 0 }, ptr %t44 store i64 %t42, ptr %t40 - br label %endif9426 -endif9426: + br label %endif9831 +endif9831: store i64 0, ptr %a45 - br label %each.cond9427 -each.cond9427: + br label %each.cond9832 +each.cond9832: %t46 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t47 = load i64, ptr %t46 %t48 = load i64, ptr %a45 %t49 = icmp slt i64 %t48, %t47 - br i1 %t49, label %each.body9428, label %each.end9430 -each.body9428: + br i1 %t49, label %each.body9833, label %each.end9835 +each.body9833: %t50 = load ptr, ptr %a2 %t51 = getelementptr inbounds { ptr, i64, i64 }, ptr %t50, i64 %t48 %t52 = load { ptr, i64, i64 }, ptr %t51 store { ptr, i64, i64 } %t52, ptr %a53 %t54 = getelementptr inbounds { ptr, i64, i64 }, ptr %a25, i32 0, i32 1 %t55 = load { ptr, i64, i64 }, ptr %a53 - store { ptr, i64, i64 } { ptr @.str.6397, i64 2, i64 0 }, ptr %a57 + store { ptr, i64, i64 } { ptr @.str.6605, i64 2, i64 0 }, ptr %a57 store { ptr, i64, i64 } %t55, ptr %a58 call void @finch_str_concat(ptr %a56, ptr %a57, ptr %a58) %t59 = load { ptr, i64, i64 }, ptr %a56 @@ -97179,25 +101204,25 @@ each.body9428: %t63 = getelementptr inbounds { ptr, i64, i64 }, ptr %t62, i64 %t60 store { ptr, i64, i64 } %t59, ptr %t63 store i64 %t61, ptr %t54 - br label %each.step9429 -each.step9429: + br label %each.step9834 +each.step9834: %t64 = load i64, ptr %a45 %t65 = add i64 %t64, 1 store i64 %t65, ptr %a45 - br label %each.cond9427 -each.end9430: + br label %each.cond9832 +each.end9835: %t66 = load { ptr, i64, i64 }, ptr %a5 %t67 = call { ptr, i64, i64 } @finch.cimport.systemIncludeArgs({ ptr, i64, i64 } %t66) store { ptr, i64, i64 } %t67, ptr %a68 store i64 0, ptr %a69 - br label %each.cond9431 -each.cond9431: + br label %each.cond9836 +each.cond9836: %t70 = getelementptr inbounds { ptr, i64, i64 }, ptr %a68, i32 0, i32 1 %t71 = load i64, ptr %t70 %t72 = load i64, ptr %a69 %t73 = icmp slt i64 %t72, %t71 - br i1 %t73, label %each.body9432, label %each.end9434 -each.body9432: + br i1 %t73, label %each.body9837, label %each.end9839 +each.body9837: %t74 = load ptr, ptr %a68 %t75 = getelementptr inbounds { ptr, i64, i64 }, ptr %t74, i64 %t72 %t76 = load { ptr, i64, i64 }, ptr %t75 @@ -97214,40 +101239,40 @@ each.body9432: %t86 = getelementptr inbounds { ptr, i64, i64 }, ptr %t85, i64 %t83 store { ptr, i64, i64 } %t82, ptr %t86 store i64 %t84, ptr %t78 - br label %each.step9433 -each.step9433: + br label %each.step9838 +each.step9838: %t87 = load i64, ptr %a69 %t88 = add i64 %t87, 1 store i64 %t88, ptr %a69 - br label %each.cond9431 -each.end9434: + br label %each.cond9836 +each.end9839: call void @finch.drop.arr_str(ptr %a68) store { ptr, i64, i64 } zeroinitializer, ptr %a89 %t90 = getelementptr inbounds { ptr, i64, i64 }, ptr %a25, i32 0, i32 1 %t91 = load i64, ptr %t90 store i64 0, ptr %a92 - br label %for.cond9435 -for.cond9435: + br label %for.cond9840 +for.cond9840: %t93 = load i64, ptr %a92 %t94 = icmp slt i64 %t93, %t91 - br i1 %t94, label %for.body9436, label %for.end9438 -for.body9436: + br i1 %t94, label %for.body9841, label %for.end9843 +for.body9841: %t95 = getelementptr inbounds { ptr, i64, i64 }, ptr %a89, i32 0, i32 1 %t96 = load i64, ptr %a92 %t97 = load { ptr, i64, i64 }, ptr %a25 %t98 = extractvalue { ptr, i64, i64 } %t97, 1 %t99 = icmp uge i64 %t96, %t98 - br i1 %t99, label %range9439, label %inrange9440 -range9439: - call void @finch_panic_index(ptr @.str.6398, i64 532, i64 %t96, i64 %t98) + br i1 %t99, label %range9844, label %inrange9845 +range9844: + call void @finch_panic_index(ptr @.str.6606, i64 532, i64 %t96, i64 %t98) unreachable -inrange9440: +inrange9845: %t100 = extractvalue { ptr, i64, i64 } %t97, 0 %t101 = getelementptr inbounds { ptr, i64, i64 }, ptr %t100, i64 %t96 %t102 = load { ptr, i64, i64 }, ptr %t101 %t103 = extractvalue { ptr, i64, i64 } %t102, 0 %t104 = icmp eq ptr %t103, null - %t105 = select i1 %t104, ptr @.str.6399, ptr %t103 + %t105 = select i1 %t104, ptr @.str.6607, ptr %t103 %t106 = load i64, ptr %t95 %t107 = add i64 %t106, 1 call void @finch_arr_reserve(ptr %a89, i64 %t107, i64 ptrtoint (ptr getelementptr (ptr, ptr null, i32 1) to i64)) @@ -97255,49 +101280,49 @@ inrange9440: %t109 = getelementptr inbounds ptr, ptr %t108, i64 %t106 store ptr %t105, ptr %t109 store i64 %t107, ptr %t95 - br label %for.step9437 -for.step9437: + br label %for.step9842 +for.step9842: %t110 = load i64, ptr %a92 %t111 = add i64 %t110, 1 store i64 %t111, ptr %a92 - br label %for.cond9435 -for.end9438: + br label %for.cond9840 +for.end9843: %t112 = call ptr @clang_createIndex(i32 0, i32 0) store ptr %t112, ptr %a113 store i64 0, ptr %a114 - br label %each.cond9441 -each.cond9441: + br label %each.cond9846 +each.cond9846: %t115 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t116 = load i64, ptr %t115 %t117 = load i64, ptr %a114 %t118 = icmp slt i64 %t117, %t116 - br i1 %t118, label %each.body9442, label %each.end9444 -each.body9442: + br i1 %t118, label %each.body9847, label %each.end9849 +each.body9847: %t119 = load ptr, ptr %a1 %t120 = getelementptr inbounds %S.cimport.Header, ptr %t119, i64 %t117 %t121 = load %S.cimport.Header, ptr %t120 store %S.cimport.Header %t121, ptr %a122 %t123 = getelementptr inbounds %S.cimport.Header, ptr %a122, i32 0, i32 0 %t124 = load { ptr, i64, i64 }, ptr %t123 - store { ptr, i64, i64 } { ptr @.str.6400, i64 10, i64 0 }, ptr %a126 + store { ptr, i64, i64 } { ptr @.str.6608, i64 10, i64 0 }, ptr %a126 store { ptr, i64, i64 } %t124, ptr %a127 call void @finch_str_concat(ptr %a125, ptr %a126, ptr %a127) %t128 = load { ptr, i64, i64 }, ptr %a125 store { ptr, i64, i64 } %t128, ptr %a130 - store { ptr, i64, i64 } { ptr @.str.6401, i64 2, i64 0 }, ptr %a131 + store { ptr, i64, i64 } { ptr @.str.6609, i64 2, i64 0 }, ptr %a131 call void @finch_str_concat(ptr %a129, ptr %a130, ptr %a131) store { ptr, i64, i64 } %t128, ptr %a132 call void @finch_str_drop(ptr %a132) %t133 = load { ptr, i64, i64 }, ptr %a129 store { ptr, i64, i64 } %t133, ptr %a134 - %t135 = extractvalue { ptr, i64, i64 } { ptr @.str.6402, i64 14, i64 0 }, 0 + %t135 = extractvalue { ptr, i64, i64 } { ptr @.str.6610, i64 14, i64 0 }, 0 %t136 = icmp eq ptr %t135, null - %t137 = select i1 %t136, ptr @.str.6403, ptr %t135 + %t137 = select i1 %t136, ptr @.str.6611, ptr %t135 %t138 = insertvalue %S.C.CXUnsavedFile zeroinitializer, ptr %t137, 0 %t139 = load { ptr, i64, i64 }, ptr %a134 %t140 = extractvalue { ptr, i64, i64 } %t139, 0 %t141 = icmp eq ptr %t140, null - %t142 = select i1 %t141, ptr @.str.6404, ptr %t140 + %t142 = select i1 %t141, ptr @.str.6612, ptr %t140 %t143 = insertvalue %S.C.CXUnsavedFile %t138, ptr %t142, 1 %t144 = getelementptr inbounds { ptr, i64, i64 }, ptr %a134, i32 0, i32 1 %t145 = load i64, ptr %t144 @@ -97307,9 +101332,9 @@ each.body9442: %t149 = or i64 1, 64 store i64 %t149, ptr %a150 %t151 = load ptr, ptr %a113 - %t152 = extractvalue { ptr, i64, i64 } { ptr @.str.6405, i64 14, i64 0 }, 0 + %t152 = extractvalue { ptr, i64, i64 } { ptr @.str.6613, i64 14, i64 0 }, 0 %t153 = icmp eq ptr %t152, null - %t154 = select i1 %t153, ptr @.str.6406, ptr %t152 + %t154 = select i1 %t153, ptr @.str.6614, ptr %t152 %t155 = load { ptr, i64, i64 }, ptr %a89 %t156 = extractvalue { ptr, i64, i64 } %t155, 0 %t157 = getelementptr inbounds { ptr, i64, i64 }, ptr %a89, i32 0, i32 1 @@ -97321,23 +101346,23 @@ each.body9442: store i32 %t162, ptr %a163 %t164 = load i32, ptr %a163 %t165 = icmp ne i32 %t164, 0 - br label %logic.from9445 -logic.from9445: - br i1 %t165, label %logic.end9447, label %logic.rhs9446 -logic.rhs9446: + br label %logic.from9850 +logic.from9850: + br i1 %t165, label %logic.end9852, label %logic.rhs9851 +logic.rhs9851: %t166 = load ptr, ptr %a148 %t167 = icmp eq ptr %t166, null - br label %logic.rend9448 -logic.rend9448: - br label %logic.end9447 -logic.end9447: - %t168 = phi i1 [ true, %logic.from9445 ], [ %t167, %logic.rend9448 ] - br i1 %t168, label %then9449, label %endif9451 -then9449: + br label %logic.rend9853 +logic.rend9853: + br label %logic.end9852 +logic.end9852: + %t168 = phi i1 [ true, %logic.from9850 ], [ %t167, %logic.rend9853 ] + br i1 %t168, label %then9854, label %endif9856 +then9854: %t169 = getelementptr inbounds %S.cimport.Header, ptr %a122, i32 0, i32 1 %t170 = load { ptr, i64, i64 }, ptr %t169 store { ptr, i64, i64 } %t170, ptr %a172 - store { ptr, i64, i64 } { ptr @.str.6407, i64 33, i64 0 }, ptr %a173 + store { ptr, i64, i64 } { ptr @.str.6615, i64 33, i64 0 }, ptr %a173 call void @finch_str_concat(ptr %a171, ptr %a172, ptr %a173) %t174 = load { ptr, i64, i64 }, ptr %a171 %t175 = getelementptr inbounds %S.cimport.Header, ptr %a122, i32 0, i32 0 @@ -97349,7 +101374,7 @@ then9449: call void @finch_str_drop(ptr %a180) %t181 = load { ptr, i64, i64 }, ptr %a177 store { ptr, i64, i64 } %t181, ptr %a183 - store { ptr, i64, i64 } { ptr @.str.6408, i64 1, i64 0 }, ptr %a184 + store { ptr, i64, i64 } { ptr @.str.6616, i64 1, i64 0 }, ptr %a184 call void @finch_str_concat(ptr %a182, ptr %a183, ptr %a184) store { ptr, i64, i64 } %t181, ptr %a185 call void @finch_str_drop(ptr %a185) @@ -97360,19 +101385,19 @@ then9449: call void @finch.drop.S_cimport_Importer(ptr %a6) %t187 = insertvalue { i1, %S.cimport.CImports, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t186, 2 ret { i1, %S.cimport.CImports, { ptr, i64, i64 } } %t187 -endif9451: +endif9856: %t188 = load ptr, ptr %a148 %t189 = call i32 @clang_getNumDiagnostics(ptr %t188) %t190 = zext i32 %t189 to i64 store i64 %t190, ptr %a191 %t192 = load i64, ptr %a191 store i64 0, ptr %a193 - br label %for.cond9452 -for.cond9452: + br label %for.cond9857 +for.cond9857: %t194 = load i64, ptr %a193 %t195 = icmp slt i64 %t194, %t192 - br i1 %t195, label %for.body9453, label %for.end9455 -for.body9453: + br i1 %t195, label %for.body9858, label %for.end9860 +for.body9858: %t196 = load ptr, ptr %a148 %t197 = load i64, ptr %a193 %t198 = trunc i64 %t197 to i32 @@ -97381,8 +101406,8 @@ for.body9453: %t201 = load ptr, ptr %a200 %t202 = call i32 @clang_getDiagnosticSeverity(ptr %t201) %t203 = icmp sge i32 %t202, 3 - br i1 %t203, label %then9456, label %endif9458 -then9456: + br i1 %t203, label %then9861, label %endif9863 +then9861: %t204 = load ptr, ptr %a200 %t205 = call { i64, i64 } @clang_getDiagnosticSpelling(ptr %t204) store { i64, i64 } %t205, ptr %a206 @@ -97393,26 +101418,26 @@ then9456: call void @clang_disposeDiagnostic(ptr %t210) %t211 = load { ptr, i64, i64 }, ptr %a209 store { ptr, i64, i64 } %t211, ptr %a212 - store { ptr, i64, i64 } { ptr @.str.6410, i64 14, i64 0 }, ptr %a214 + store { ptr, i64, i64 } { ptr @.str.6618, i64 14, i64 0 }, ptr %a214 %t215 = call i64 @finch_str_find(ptr %a212, ptr %a214) %t216 = icmp sge i64 %t215, 0 - br i1 %t216, label %then9459, label %endif9461 -then9459: + br i1 %t216, label %then9864, label %endif9866 +then9864: %t217 = load { ptr, i64, i64 }, ptr %a209 store { ptr, i64, i64 } %t217, ptr %a218 %t220 = load { ptr, i64, i64 }, ptr %a209 store { ptr, i64, i64 } %t220, ptr %a221 %t223 = getelementptr inbounds { ptr, i64, i64 }, ptr %a209, i32 0, i32 1 %t224 = load i64, ptr %t223 - call void @finch_str_sub(ptr %a222, ptr %a221, i64 1, i64 %t224, ptr @.str.6412, i64 552) + call void @finch_str_sub(ptr %a222, ptr %a221, i64 1, i64 %t224, ptr @.str.6620, i64 552) %t225 = load { ptr, i64, i64 }, ptr %a222 store { ptr, i64, i64 } %t225, ptr %a226 - store { ptr, i64, i64 } { ptr @.str.6414, i64 1, i64 0 }, ptr %a228 + store { ptr, i64, i64 } { ptr @.str.6622, i64 1, i64 0 }, ptr %a228 %t229 = call i64 @finch_str_find(ptr %a226, ptr %a228) store { ptr, i64, i64 } %t225, ptr %a230 call void @finch_str_drop(ptr %a230) %t231 = add i64 %t229, 1 - call void @finch_str_sub(ptr %a219, ptr %a218, i64 1, i64 %t231, ptr @.str.6411, i64 552) + call void @finch_str_sub(ptr %a219, ptr %a218, i64 1, i64 %t231, ptr @.str.6619, i64 552) %t232 = load { ptr, i64, i64 }, ptr %a219 store { ptr, i64, i64 } %t232, ptr %a233 %t234 = load { ptr, i64, i64 }, ptr %a233 @@ -97422,12 +101447,12 @@ then9459: store { ptr, i64, i64 } %t236, ptr %a238 %t239 = call i32 @finch_str_eq(ptr %a237, ptr %a238) %t240 = icmp ne i32 %t239, 0 - br i1 %t240, label %then9462, label %endif9464 -then9462: + br i1 %t240, label %then9867, label %endif9869 +then9867: %t241 = getelementptr inbounds %S.cimport.Header, ptr %a122, i32 0, i32 1 %t242 = load { ptr, i64, i64 }, ptr %t241 store { ptr, i64, i64 } %t242, ptr %a244 - store { ptr, i64, i64 } { ptr @.str.6415, i64 34, i64 0 }, ptr %a245 + store { ptr, i64, i64 } { ptr @.str.6623, i64 34, i64 0 }, ptr %a245 call void @finch_str_concat(ptr %a243, ptr %a244, ptr %a245) %t246 = load { ptr, i64, i64 }, ptr %a243 %t247 = getelementptr inbounds %S.cimport.Header, ptr %a122, i32 0, i32 0 @@ -97439,7 +101464,7 @@ then9462: call void @finch_str_drop(ptr %a252) %t253 = load { ptr, i64, i64 }, ptr %a249 store { ptr, i64, i64 } %t253, ptr %a255 - store { ptr, i64, i64 } { ptr @.str.6416, i64 1, i64 0 }, ptr %a256 + store { ptr, i64, i64 } { ptr @.str.6624, i64 1, i64 0 }, ptr %a256 call void @finch_str_concat(ptr %a254, ptr %a255, ptr %a256) store { ptr, i64, i64 } %t253, ptr %a257 call void @finch_str_drop(ptr %a257) @@ -97452,11 +101477,11 @@ then9462: call void @finch.drop.S_cimport_Importer(ptr %a6) %t259 = insertvalue { i1, %S.cimport.CImports, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t258, 2 ret { i1, %S.cimport.CImports, { ptr, i64, i64 } } %t259 -endif9464: +endif9869: %t260 = getelementptr inbounds %S.cimport.Header, ptr %a122, i32 0, i32 1 %t261 = load { ptr, i64, i64 }, ptr %t260 store { ptr, i64, i64 } %t261, ptr %a263 - store { ptr, i64, i64 } { ptr @.str.6417, i64 34, i64 0 }, ptr %a264 + store { ptr, i64, i64 } { ptr @.str.6625, i64 34, i64 0 }, ptr %a264 call void @finch_str_concat(ptr %a262, ptr %a263, ptr %a264) %t265 = load { ptr, i64, i64 }, ptr %a262 %t266 = load { ptr, i64, i64 }, ptr %a233 @@ -97467,7 +101492,7 @@ endif9464: call void @finch_str_drop(ptr %a270) %t271 = load { ptr, i64, i64 }, ptr %a267 store { ptr, i64, i64 } %t271, ptr %a273 - store { ptr, i64, i64 } { ptr @.str.6418, i64 10, i64 0 }, ptr %a274 + store { ptr, i64, i64 } { ptr @.str.6626, i64 10, i64 0 }, ptr %a274 call void @finch_str_concat(ptr %a272, ptr %a273, ptr %a274) store { ptr, i64, i64 } %t271, ptr %a275 call void @finch_str_drop(ptr %a275) @@ -97481,7 +101506,7 @@ endif9464: call void @finch_str_drop(ptr %a282) %t283 = load { ptr, i64, i64 }, ptr %a279 store { ptr, i64, i64 } %t283, ptr %a285 - store { ptr, i64, i64 } { ptr @.str.6419, i64 60, i64 0 }, ptr %a286 + store { ptr, i64, i64 } { ptr @.str.6627, i64 60, i64 0 }, ptr %a286 call void @finch_str_concat(ptr %a284, ptr %a285, ptr %a286) store { ptr, i64, i64 } %t283, ptr %a287 call void @finch_str_drop(ptr %a287) @@ -97494,11 +101519,11 @@ endif9464: call void @finch.drop.S_cimport_Importer(ptr %a6) %t289 = insertvalue { i1, %S.cimport.CImports, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t288, 2 ret { i1, %S.cimport.CImports, { ptr, i64, i64 } } %t289 -endif9461: +endif9866: %t290 = getelementptr inbounds %S.cimport.Header, ptr %a122, i32 0, i32 1 %t291 = load { ptr, i64, i64 }, ptr %t290 store { ptr, i64, i64 } %t291, ptr %a293 - store { ptr, i64, i64 } { ptr @.str.6420, i64 19, i64 0 }, ptr %a294 + store { ptr, i64, i64 } { ptr @.str.6628, i64 19, i64 0 }, ptr %a294 call void @finch_str_concat(ptr %a292, ptr %a293, ptr %a294) %t295 = load { ptr, i64, i64 }, ptr %a292 %t296 = getelementptr inbounds %S.cimport.Header, ptr %a122, i32 0, i32 0 @@ -97510,7 +101535,7 @@ endif9461: call void @finch_str_drop(ptr %a301) %t302 = load { ptr, i64, i64 }, ptr %a298 store { ptr, i64, i64 } %t302, ptr %a304 - store { ptr, i64, i64 } { ptr @.str.6421, i64 16, i64 0 }, ptr %a305 + store { ptr, i64, i64 } { ptr @.str.6629, i64 16, i64 0 }, ptr %a305 call void @finch_str_concat(ptr %a303, ptr %a304, ptr %a305) store { ptr, i64, i64 } %t302, ptr %a306 call void @finch_str_drop(ptr %a306) @@ -97529,16 +101554,16 @@ endif9461: call void @finch.drop.S_cimport_Importer(ptr %a6) %t314 = insertvalue { i1, %S.cimport.CImports, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t313, 2 ret { i1, %S.cimport.CImports, { ptr, i64, i64 } } %t314 -endif9458: +endif9863: %t315 = load ptr, ptr %a200 call void @clang_disposeDiagnostic(ptr %t315) - br label %for.step9454 -for.step9454: + br label %for.step9859 +for.step9859: %t316 = load i64, ptr %a193 %t317 = add i64 %t316, 1 store i64 %t317, ptr %a193 - br label %for.cond9452 -for.end9455: + br label %for.cond9857 +for.end9860: %t318 = load ptr, ptr %a148 %t319 = getelementptr inbounds %S.cimport.Importer, ptr %a6, i32 0, i32 1 store ptr %t318, ptr %t319 @@ -97560,13 +101585,13 @@ for.end9455: %t333 = load ptr, ptr %a148 call void @clang_disposeTranslationUnit(ptr %t333) call void @finch_str_drop(ptr %a134) - br label %each.step9443 -each.step9443: + br label %each.step9848 +each.step9848: %t334 = load i64, ptr %a114 %t335 = add i64 %t334, 1 store i64 %t335, ptr %a114 - br label %each.cond9441 -each.end9444: + br label %each.cond9846 +each.end9849: %t336 = load ptr, ptr %a113 call void @clang_disposeIndex(ptr %t336) %t337 = getelementptr inbounds %S.cimport.Importer, ptr %a6, i32 0, i32 0 @@ -97600,18 +101625,18 @@ entry: store { ptr, i64, i64 } %p0, ptr %a1 %t2 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t2, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.6424, i64 1, i64 0 }, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.6425, i64 4, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.6632, i64 1, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.6633, i64 4, i64 0 }, ptr %a6 call void @finch_str_replace(ptr %a4, ptr %a3, ptr %a5, ptr %a6) %t7 = load { ptr, i64, i64 }, ptr %a4 - store { ptr, i64, i64 } { ptr @.str.6422, i64 1, i64 0 }, ptr %a9 + store { ptr, i64, i64 } { ptr @.str.6630, i64 1, i64 0 }, ptr %a9 store { ptr, i64, i64 } %t7, ptr %a10 call void @finch_str_concat(ptr %a8, ptr %a9, ptr %a10) store { ptr, i64, i64 } %t7, ptr %a11 call void @finch_str_drop(ptr %a11) %t12 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t12, ptr %a14 - store { ptr, i64, i64 } { ptr @.str.6426, i64 1, i64 0 }, ptr %a15 + store { ptr, i64, i64 } { ptr @.str.6634, i64 1, i64 0 }, ptr %a15 call void @finch_str_concat(ptr %a13, ptr %a14, ptr %a15) store { ptr, i64, i64 } %t12, ptr %a16 call void @finch_str_drop(ptr %a16) @@ -97636,7 +101661,7 @@ entry: define internal { ptr, i64, i64 } @finch.host.nullDevice() { entry: - ret { ptr, i64, i64 } { ptr @.str.6427, i64 9, i64 0 } + ret { ptr, i64, i64 } { ptr @.str.6635, i64 9, i64 0 } } define internal { ptr, i64, i64 } @finch.host.tempDir() { @@ -97650,9 +101675,9 @@ entry: %a17 = alloca { ptr, i64, i64 }, align 16 %a21 = alloca { ptr, i64, i64 }, align 16 %a22 = alloca { ptr, i64, i64 }, align 16 - %t1 = extractvalue { ptr, i64, i64 } { ptr @.str.6428, i64 6, i64 0 }, 0 + %t1 = extractvalue { ptr, i64, i64 } { ptr @.str.6636, i64 6, i64 0 }, 0 %t2 = icmp eq ptr %t1, null - %t3 = select i1 %t2, ptr @.str.6429, ptr %t1 + %t3 = select i1 %t2, ptr @.str.6637, ptr %t1 %t4 = call ptr @getenv(ptr %t3) store { ptr, i64, i64 } zeroinitializer, ptr %a5 call void @finch_str_from_c(ptr %a5, ptr %t4) @@ -97664,36 +101689,36 @@ entry: %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %a10, i32 0, i32 1 %t12 = load i64, ptr %t11 %t13 = icmp sgt i64 %t12, 0 - br i1 %t13, label %then9465, label %endif9467 -then9465: + br i1 %t13, label %then9870, label %endif9872 +then9870: %t14 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t14, ptr %a15 - store { ptr, i64, i64 } { ptr @.str.6431, i64 1, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.6639, i64 1, i64 0 }, ptr %a17 %t18 = call i32 @finch_str_ends(ptr %a15, ptr %a17) %t19 = icmp ne i32 %t18, 0 - br i1 %t19, label %then9468, label %endif9470 -then9468: + br i1 %t19, label %then9873, label %endif9875 +then9873: %t20 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t20, ptr %a21 %t23 = getelementptr inbounds { ptr, i64, i64 }, ptr %a10, i32 0, i32 1 %t24 = load i64, ptr %t23 %t25 = sub i64 %t24, 1 - call void @finch_str_sub(ptr %a22, ptr %a21, i64 0, i64 %t25, ptr @.str.6432, i64 25) + call void @finch_str_sub(ptr %a22, ptr %a21, i64 0, i64 %t25, ptr @.str.6640, i64 25) %t26 = load { ptr, i64, i64 }, ptr %a22 call void @finch_str_drop(ptr %a10) ret { ptr, i64, i64 } %t26 -endif9470: +endif9875: %t27 = load { ptr, i64, i64 }, ptr %a10 ret { ptr, i64, i64 } %t27 -endif9467: +endif9872: call void @finch_str_drop(ptr %a10) - ret { ptr, i64, i64 } { ptr @.str.6433, i64 4, i64 0 } + ret { ptr, i64, i64 } { ptr @.str.6641, i64 4, i64 0 } } define internal { ptr, i64, i64 } @finch.host.pathSeparator() { entry: - ret { ptr, i64, i64 } { ptr @.str.6434, i64 1, i64 0 } + ret { ptr, i64, i64 } { ptr @.str.6642, i64 1, i64 0 } } define internal i64 @finch.host.pid() { @@ -97709,9 +101734,9 @@ entry: %a5 = alloca { ptr, i64, i64 }, align 16 %a7 = alloca { ptr, i64, i64 }, align 16 %a8 = alloca { ptr, i64, i64 }, align 16 - %t1 = extractvalue { ptr, i64, i64 } { ptr @.str.6435, i64 3, i64 0 }, 0 + %t1 = extractvalue { ptr, i64, i64 } { ptr @.str.6643, i64 3, i64 0 }, 0 %t2 = icmp eq ptr %t1, null - %t3 = select i1 %t2, ptr @.str.6436, ptr %t1 + %t3 = select i1 %t2, ptr @.str.6644, ptr %t1 %t4 = call ptr @getenv(ptr %t3) store { ptr, i64, i64 } zeroinitializer, ptr %a5 call void @finch_str_from_c(ptr %a5, ptr %t4) @@ -97742,9 +101767,9 @@ entry: %a39 = alloca { ptr, i64, i64 }, align 16 %a40 = alloca { ptr, i64, i64 }, align 16 %a41 = alloca { ptr, i64, i64 }, align 16 - %t1 = extractvalue { ptr, i64, i64 } { ptr @.str.6437, i64 14, i64 0 }, 0 + %t1 = extractvalue { ptr, i64, i64 } { ptr @.str.6645, i64 14, i64 0 }, 0 %t2 = icmp eq ptr %t1, null - %t3 = select i1 %t2, ptr @.str.6438, ptr %t1 + %t3 = select i1 %t2, ptr @.str.6646, ptr %t1 %t4 = call ptr @getenv(ptr %t3) store { ptr, i64, i64 } zeroinitializer, ptr %a5 call void @finch_str_from_c(ptr %a5, ptr %t4) @@ -97756,19 +101781,19 @@ entry: %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %a10, i32 0, i32 1 %t12 = load i64, ptr %t11 %t13 = icmp sgt i64 %t12, 0 - br i1 %t13, label %then9471, label %endif9473 -then9471: + br i1 %t13, label %then9876, label %endif9878 +then9876: %t14 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t14, ptr %a16 - store { ptr, i64, i64 } { ptr @.str.6439, i64 6, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.6647, i64 6, i64 0 }, ptr %a17 call void @finch_str_concat(ptr %a15, ptr %a16, ptr %a17) %t18 = load { ptr, i64, i64 }, ptr %a15 call void @finch_str_drop(ptr %a10) ret { ptr, i64, i64 } %t18 -endif9473: - %t19 = extractvalue { ptr, i64, i64 } { ptr @.str.6440, i64 4, i64 0 }, 0 +endif9878: + %t19 = extractvalue { ptr, i64, i64 } { ptr @.str.6648, i64 4, i64 0 }, 0 %t20 = icmp eq ptr %t19, null - %t21 = select i1 %t20, ptr @.str.6441, ptr %t19 + %t21 = select i1 %t20, ptr @.str.6649, ptr %t19 %t22 = call ptr @getenv(ptr %t21) store { ptr, i64, i64 } zeroinitializer, ptr %a23 call void @finch_str_from_c(ptr %a23, ptr %t22) @@ -97780,20 +101805,20 @@ endif9473: %t29 = getelementptr inbounds { ptr, i64, i64 }, ptr %a28, i32 0, i32 1 %t30 = load i64, ptr %t29 %t31 = icmp sgt i64 %t30, 0 - br i1 %t31, label %then9474, label %endif9476 -then9474: + br i1 %t31, label %then9879, label %endif9881 +then9879: %t32 = load { ptr, i64, i64 }, ptr %a28 store { ptr, i64, i64 } %t32, ptr %a34 - store { ptr, i64, i64 } { ptr @.str.6442, i64 13, i64 0 }, ptr %a35 + store { ptr, i64, i64 } { ptr @.str.6650, i64 13, i64 0 }, ptr %a35 call void @finch_str_concat(ptr %a33, ptr %a34, ptr %a35) %t36 = load { ptr, i64, i64 }, ptr %a33 call void @finch_str_drop(ptr %a28) call void @finch_str_drop(ptr %a10) ret { ptr, i64, i64 } %t36 -endif9476: +endif9881: %t37 = call { ptr, i64, i64 } @finch.host.tempDir() store { ptr, i64, i64 } %t37, ptr %a39 - store { ptr, i64, i64 } { ptr @.str.6443, i64 12, i64 0 }, ptr %a40 + store { ptr, i64, i64 } { ptr @.str.6651, i64 12, i64 0 }, ptr %a40 call void @finch_str_concat(ptr %a38, ptr %a39, ptr %a40) store { ptr, i64, i64 } %t37, ptr %a41 call void @finch_str_drop(ptr %a41) @@ -97822,7 +101847,7 @@ entry: store { ptr, i64, i64 } %p0, ptr %a1 %t2 = load { ptr, i64, i64 }, ptr %a1 %t3 = call { ptr, i64, i64 } @finch.host.quote({ ptr, i64, i64 } %t2) - store { ptr, i64, i64 } { ptr @.str.6444, i64 9, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.6652, i64 9, i64 0 }, ptr %a5 store { ptr, i64, i64 } %t3, ptr %a6 call void @finch_str_concat(ptr %a4, ptr %a5, ptr %a6) store { ptr, i64, i64 } %t3, ptr %a7 @@ -97865,7 +101890,7 @@ entry: store { ptr, i64, i64 } %p0, ptr %a1 %t2 = load { ptr, i64, i64 }, ptr %a1 %t3 = call { ptr, i64, i64 } @finch.host.quote({ ptr, i64, i64 } %t2) - store { ptr, i64, i64 } { ptr @.str.6445, i64 7, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.6653, i64 7, i64 0 }, ptr %a5 store { ptr, i64, i64 } %t3, ptr %a6 call void @finch_str_concat(ptr %a4, ptr %a5, ptr %a6) store { ptr, i64, i64 } %t3, ptr %a7 @@ -97904,14 +101929,14 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load { ptr, i64, i64 }, ptr %a1 %t4 = call { ptr, i64, i64 } @finch.host.quote({ ptr, i64, i64 } %t3) - store { ptr, i64, i64 } { ptr @.str.6446, i64 3, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.6654, i64 3, i64 0 }, ptr %a6 store { ptr, i64, i64 } %t4, ptr %a7 call void @finch_str_concat(ptr %a5, ptr %a6, ptr %a7) store { ptr, i64, i64 } %t4, ptr %a8 call void @finch_str_drop(ptr %a8) %t9 = load { ptr, i64, i64 }, ptr %a5 store { ptr, i64, i64 } %t9, ptr %a11 - store { ptr, i64, i64 } { ptr @.str.6447, i64 1, i64 0 }, ptr %a12 + store { ptr, i64, i64 } { ptr @.str.6655, i64 1, i64 0 }, ptr %a12 call void @finch_str_concat(ptr %a10, ptr %a11, ptr %a12) store { ptr, i64, i64 } %t9, ptr %a13 call void @finch_str_drop(ptr %a13) @@ -97954,7 +101979,7 @@ entry: call void @finch_str_trim(ptr %a4, ptr %a3) %t5 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t5, ptr %a6 - store { ptr, i64, i64 } { ptr @.str.6450, i64 1, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.6658, i64 1, i64 0 }, ptr %a8 call void @finch_str_split(ptr %a9, ptr %a6, ptr %a8) %t10 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t5, ptr %a11 @@ -97963,11 +101988,11 @@ entry: %t13 = load { ptr, i64, i64 }, ptr %a12 %t14 = extractvalue { ptr, i64, i64 } %t13, 1 %t15 = icmp uge i64 0, %t14 - br i1 %t15, label %range9477, label %inrange9478 -range9477: - call void @finch_panic_index(ptr @.str.6451, i64 21, i64 0, i64 %t14) + br i1 %t15, label %range9882, label %inrange9883 +range9882: + call void @finch_panic_index(ptr @.str.6659, i64 21, i64 0, i64 %t14) unreachable -inrange9478: +inrange9883: %t16 = extractvalue { ptr, i64, i64 } %t13, 0 %t17 = getelementptr inbounds { ptr, i64, i64 }, ptr %t16, i64 0 %t18 = load { ptr, i64, i64 }, ptr %t17 @@ -98019,7 +102044,7 @@ entry: %a60 = alloca { ptr, i64, i64 }, align 16 %t1 = call { ptr, i64, i64 } @finch.host.tempDir() store { ptr, i64, i64 } %t1, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.6453, i64 14, i64 0 }, ptr %a4 + store { ptr, i64, i64 } { ptr @.str.6661, i64 14, i64 0 }, ptr %a4 call void @finch_str_concat(ptr %a2, ptr %a3, ptr %a4) store { ptr, i64, i64 } %t1, ptr %a5 call void @finch_str_drop(ptr %a5) @@ -98036,7 +102061,7 @@ entry: call void @finch_str_drop(ptr %a14) %t15 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t15, ptr %a17 - store { ptr, i64, i64 } { ptr @.str.6454, i64 4, i64 0 }, ptr %a18 + store { ptr, i64, i64 } { ptr @.str.6662, i64 4, i64 0 }, ptr %a18 call void @finch_str_concat(ptr %a16, ptr %a17, ptr %a18) store { ptr, i64, i64 } %t15, ptr %a19 call void @finch_str_drop(ptr %a19) @@ -98044,14 +102069,14 @@ entry: store { ptr, i64, i64 } %t20, ptr %a21 %t22 = load { ptr, i64, i64 }, ptr %a21 %t23 = call { ptr, i64, i64 } @finch.host.quote({ ptr, i64, i64 } %t22) - store { ptr, i64, i64 } { ptr @.str.6455, i64 21, i64 0 }, ptr %a25 + store { ptr, i64, i64 } { ptr @.str.6663, i64 21, i64 0 }, ptr %a25 store { ptr, i64, i64 } %t23, ptr %a26 call void @finch_str_concat(ptr %a24, ptr %a25, ptr %a26) store { ptr, i64, i64 } %t23, ptr %a27 call void @finch_str_drop(ptr %a27) %t28 = load { ptr, i64, i64 }, ptr %a24 store { ptr, i64, i64 } %t28, ptr %a30 - store { ptr, i64, i64 } { ptr @.str.6456, i64 4, i64 0 }, ptr %a31 + store { ptr, i64, i64 } { ptr @.str.6664, i64 4, i64 0 }, ptr %a31 call void @finch_str_concat(ptr %a29, ptr %a30, ptr %a31) store { ptr, i64, i64 } %t28, ptr %a32 call void @finch_str_drop(ptr %a32) @@ -98076,17 +102101,17 @@ entry: %t48 = icmp eq i32 %t47, 0 %t49 = load { ptr, i64, i64 }, ptr %a46 %t50 = load { ptr, i64, i64 }, ptr %a45 - br i1 %t48, label %or.failed9479, label %or.ok9480 -or.failed9479: + br i1 %t48, label %or.failed9884, label %or.ok9885 +or.failed9884: store { ptr, i64, i64 } %t49, ptr %a51 call void @finch_str_drop(ptr %a51) - br label %or.bend9481 -or.bend9481: - br label %or.end9482 -or.ok9480: - br label %or.end9482 -or.end9482: - %t52 = phi { ptr, i64, i64 } [ { ptr @.str.6457, i64 0, i64 0 }, %or.bend9481 ], [ %t50, %or.ok9480 ] + br label %or.bend9886 +or.bend9886: + br label %or.end9887 +or.ok9885: + br label %or.end9887 +or.end9887: + %t52 = phi { ptr, i64, i64 } [ { ptr @.str.6665, i64 0, i64 0 }, %or.bend9886 ], [ %t50, %or.ok9885 ] store { ptr, i64, i64 } %t52, ptr %a53 %t54 = load { ptr, i64, i64 }, ptr %a21 call void @finch.host.remove({ ptr, i64, i64 } %t54) @@ -98098,12 +102123,12 @@ or.end9482: store { ptr, i64, i64 } %t58, ptr %a60 call void @finch_str_drop(ptr %a60) %t61 = icmp eq i64 %t59, 0 - br i1 %t61, label %then9483, label %endif9485 -then9483: + br i1 %t61, label %then9888, label %endif9890 +then9888: call void @finch_str_drop(ptr %a53) call void @finch_str_drop(ptr %a21) - ret { ptr, i64, i64 } { ptr @.str.6459, i64 24, i64 0 } -endif9485: + ret { ptr, i64, i64 } { ptr @.str.6667, i64 24, i64 0 } +endif9890: %t62 = load { ptr, i64, i64 }, ptr %a53 %t63 = call { ptr, i64, i64 } @finch.platform.firstLine({ ptr, i64, i64 } %t62) call void @finch_str_drop(ptr %a53) @@ -98224,8 +102249,8 @@ entry: %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t10 = load i64, ptr %t9 %t11 = icmp eq i64 %t10, 0 - br i1 %t11, label %then9486, label %else9487 -then9486: + br i1 %t11, label %then9891, label %else9892 +then9891: %t12 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t12, ptr %a13 call void @finch_str_copy(ptr %a14, ptr %a13) @@ -98234,125 +102259,125 @@ then9486: store { ptr, i64, i64 } %t15, ptr %a8 store { ptr, i64, i64 } %t16, ptr %a17 call void @finch_str_drop(ptr %a17) - br label %endif9488 -else9487: + br label %endif9893 +else9892: %t18 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t18, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.6460, i64 7, i64 0 }, ptr %a20 + store { ptr, i64, i64 } { ptr @.str.6668, i64 7, i64 0 }, ptr %a20 %t21 = call i32 @finch_str_eq(ptr %a19, ptr %a20) %t22 = icmp ne i32 %t21, 0 - br i1 %t22, label %then9489, label %else9490 -then9489: + br i1 %t22, label %then9894, label %else9895 +then9894: %t23 = load { ptr, i64, i64 }, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.6461, i64 18, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.6669, i64 18, i64 0 }, ptr %a8 store { ptr, i64, i64 } %t23, ptr %a24 call void @finch_str_drop(ptr %a24) - br label %endif9491 -else9490: + br label %endif9896 +else9895: %t25 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t25, ptr %a26 - store { ptr, i64, i64 } { ptr @.str.6462, i64 5, i64 0 }, ptr %a27 + store { ptr, i64, i64 } { ptr @.str.6670, i64 5, i64 0 }, ptr %a27 %t28 = call i32 @finch_str_eq(ptr %a26, ptr %a27) %t29 = icmp ne i32 %t28, 0 - br i1 %t29, label %then9492, label %else9493 -then9492: + br i1 %t29, label %then9897, label %else9898 +then9897: %t30 = load { ptr, i64, i64 }, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.6463, i64 24, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.6671, i64 24, i64 0 }, ptr %a8 store { ptr, i64, i64 } %t30, ptr %a31 call void @finch_str_drop(ptr %a31) - br label %endif9494 -else9493: + br label %endif9899 +else9898: %t32 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t32, ptr %a33 - store { ptr, i64, i64 } { ptr @.str.6464, i64 5, i64 0 }, ptr %a34 + store { ptr, i64, i64 } { ptr @.str.6672, i64 5, i64 0 }, ptr %a34 %t35 = call i32 @finch_str_eq(ptr %a33, ptr %a34) %t36 = icmp ne i32 %t35, 0 - br label %logic.from9495 -logic.from9495: - br i1 %t36, label %logic.end9497, label %logic.rhs9496 -logic.rhs9496: + br label %logic.from9900 +logic.from9900: + br i1 %t36, label %logic.end9902, label %logic.rhs9901 +logic.rhs9901: %t37 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t37, ptr %a38 - store { ptr, i64, i64 } { ptr @.str.6465, i64 7, i64 0 }, ptr %a39 + store { ptr, i64, i64 } { ptr @.str.6673, i64 7, i64 0 }, ptr %a39 %t40 = call i32 @finch_str_eq(ptr %a38, ptr %a39) %t41 = icmp ne i32 %t40, 0 - br label %logic.rend9498 -logic.rend9498: - br label %logic.end9497 -logic.end9497: - %t42 = phi i1 [ true, %logic.from9495 ], [ %t41, %logic.rend9498 ] - br label %logic.from9499 -logic.from9499: - br i1 %t42, label %logic.end9501, label %logic.rhs9500 -logic.rhs9500: + br label %logic.rend9903 +logic.rend9903: + br label %logic.end9902 +logic.end9902: + %t42 = phi i1 [ true, %logic.from9900 ], [ %t41, %logic.rend9903 ] + br label %logic.from9904 +logic.from9904: + br i1 %t42, label %logic.end9906, label %logic.rhs9905 +logic.rhs9905: %t43 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t43, ptr %a44 - store { ptr, i64, i64 } { ptr @.str.6466, i64 11, i64 0 }, ptr %a45 + store { ptr, i64, i64 } { ptr @.str.6674, i64 11, i64 0 }, ptr %a45 %t46 = call i32 @finch_str_eq(ptr %a44, ptr %a45) %t47 = icmp ne i32 %t46, 0 - br label %logic.rend9502 -logic.rend9502: - br label %logic.end9501 -logic.end9501: - %t48 = phi i1 [ true, %logic.from9499 ], [ %t47, %logic.rend9502 ] - br i1 %t48, label %then9503, label %else9504 -then9503: + br label %logic.rend9907 +logic.rend9907: + br label %logic.end9906 +logic.end9906: + %t48 = phi i1 [ true, %logic.from9904 ], [ %t47, %logic.rend9907 ] + br i1 %t48, label %then9908, label %else9909 +then9908: %t49 = load { ptr, i64, i64 }, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.6467, i64 25, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.6675, i64 25, i64 0 }, ptr %a8 store { ptr, i64, i64 } %t49, ptr %a50 call void @finch_str_drop(ptr %a50) - br label %endif9505 -else9504: + br label %endif9910 +else9909: %t51 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t51, ptr %a52 - store { ptr, i64, i64 } { ptr @.str.6468, i64 5, i64 0 }, ptr %a53 + store { ptr, i64, i64 } { ptr @.str.6676, i64 5, i64 0 }, ptr %a53 %t54 = call i32 @finch_str_eq(ptr %a52, ptr %a53) %t55 = icmp ne i32 %t54, 0 - br i1 %t55, label %then9506, label %endif9508 -then9506: + br i1 %t55, label %then9911, label %endif9913 +then9911: %t56 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t56, ptr %a57 - store { ptr, i64, i64 } { ptr @.str.6470, i64 7, i64 0 }, ptr %a59 + store { ptr, i64, i64 } { ptr @.str.6678, i64 7, i64 0 }, ptr %a59 %t60 = call i32 @finch_str_starts(ptr %a57, ptr %a59) %t61 = icmp ne i32 %t60, 0 - br label %logic.from9509 -logic.from9509: - br i1 %t61, label %logic.end9511, label %logic.rhs9510 -logic.rhs9510: + br label %logic.from9914 +logic.from9914: + br i1 %t61, label %logic.end9916, label %logic.rhs9915 +logic.rhs9915: %t62 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t62, ptr %a63 - store { ptr, i64, i64 } { ptr @.str.6472, i64 5, i64 0 }, ptr %a65 + store { ptr, i64, i64 } { ptr @.str.6680, i64 5, i64 0 }, ptr %a65 %t66 = call i32 @finch_str_starts(ptr %a63, ptr %a65) %t67 = icmp ne i32 %t66, 0 - br label %logic.rend9512 -logic.rend9512: - br label %logic.end9511 -logic.end9511: - %t68 = phi i1 [ true, %logic.from9509 ], [ %t67, %logic.rend9512 ] - br i1 %t68, label %then9513, label %else9514 -then9513: + br label %logic.rend9917 +logic.rend9917: + br label %logic.end9916 +logic.end9916: + %t68 = phi i1 [ true, %logic.from9914 ], [ %t67, %logic.rend9917 ] + br i1 %t68, label %then9918, label %else9919 +then9918: %t69 = load { ptr, i64, i64 }, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.6473, i64 24, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.6681, i64 24, i64 0 }, ptr %a8 store { ptr, i64, i64 } %t69, ptr %a70 call void @finch_str_drop(ptr %a70) - br label %endif9515 -else9514: + br label %endif9920 +else9919: %t71 = load { ptr, i64, i64 }, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.6474, i64 25, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.6682, i64 25, i64 0 }, ptr %a8 store { ptr, i64, i64 } %t71, ptr %a72 call void @finch_str_drop(ptr %a72) - br label %endif9515 -endif9515: - br label %endif9508 -endif9508: - br label %endif9505 -endif9505: - br label %endif9494 -endif9494: - br label %endif9491 -endif9491: - br label %endif9488 -endif9488: + br label %endif9920 +endif9920: + br label %endif9913 +endif9913: + br label %endif9910 +endif9910: + br label %endif9899 +endif9899: + br label %endif9896 +endif9896: + br label %endif9893 +endif9893: %t73 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t73, ptr %a74 call void @finch_str_copy(ptr %a75, ptr %a74) @@ -98361,205 +102386,205 @@ endif9488: store %S.platform.Target %t77, ptr %a78 %t79 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t79, ptr %a80 - store { ptr, i64, i64 } { ptr @.str.6476, i64 7, i64 0 }, ptr %a82 + store { ptr, i64, i64 } { ptr @.str.6684, i64 7, i64 0 }, ptr %a82 %t83 = call i64 @finch_str_find(ptr %a80, ptr %a82) %t84 = icmp sge i64 %t83, 0 - br label %logic.from9516 -logic.from9516: - br i1 %t84, label %logic.end9518, label %logic.rhs9517 -logic.rhs9517: + br label %logic.from9921 +logic.from9921: + br i1 %t84, label %logic.end9923, label %logic.rhs9922 +logic.rhs9922: %t85 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t85, ptr %a86 - store { ptr, i64, i64 } { ptr @.str.6478, i64 5, i64 0 }, ptr %a88 + store { ptr, i64, i64 } { ptr @.str.6686, i64 5, i64 0 }, ptr %a88 %t89 = call i64 @finch_str_find(ptr %a86, ptr %a88) %t90 = icmp sge i64 %t89, 0 - br label %logic.rend9519 -logic.rend9519: - br label %logic.end9518 -logic.end9518: - %t91 = phi i1 [ true, %logic.from9516 ], [ %t90, %logic.rend9519 ] - br label %logic.from9520 -logic.from9520: - br i1 %t91, label %logic.end9522, label %logic.rhs9521 -logic.rhs9521: + br label %logic.rend9924 +logic.rend9924: + br label %logic.end9923 +logic.end9923: + %t91 = phi i1 [ true, %logic.from9921 ], [ %t90, %logic.rend9924 ] + br label %logic.from9925 +logic.from9925: + br i1 %t91, label %logic.end9927, label %logic.rhs9926 +logic.rhs9926: %t92 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t92, ptr %a93 - store { ptr, i64, i64 } { ptr @.str.6480, i64 4, i64 0 }, ptr %a95 + store { ptr, i64, i64 } { ptr @.str.6688, i64 4, i64 0 }, ptr %a95 %t96 = call i64 @finch_str_find(ptr %a93, ptr %a95) %t97 = icmp sge i64 %t96, 0 - br label %logic.rend9523 -logic.rend9523: - br label %logic.end9522 -logic.end9522: - %t98 = phi i1 [ true, %logic.from9520 ], [ %t97, %logic.rend9523 ] - br label %logic.from9524 -logic.from9524: - br i1 %t98, label %logic.end9526, label %logic.rhs9525 -logic.rhs9525: + br label %logic.rend9928 +logic.rend9928: + br label %logic.end9927 +logic.end9927: + %t98 = phi i1 [ true, %logic.from9925 ], [ %t97, %logic.rend9928 ] + br label %logic.from9929 +logic.from9929: + br i1 %t98, label %logic.end9931, label %logic.rhs9930 +logic.rhs9930: %t99 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t99, ptr %a100 - store { ptr, i64, i64 } { ptr @.str.6482, i64 5, i64 0 }, ptr %a102 + store { ptr, i64, i64 } { ptr @.str.6690, i64 5, i64 0 }, ptr %a102 %t103 = call i64 @finch_str_find(ptr %a100, ptr %a102) %t104 = icmp sge i64 %t103, 0 - br label %logic.rend9527 -logic.rend9527: - br label %logic.end9526 -logic.end9526: - %t105 = phi i1 [ true, %logic.from9524 ], [ %t104, %logic.rend9527 ] + br label %logic.rend9932 +logic.rend9932: + br label %logic.end9931 +logic.end9931: + %t105 = phi i1 [ true, %logic.from9929 ], [ %t104, %logic.rend9932 ] %t106 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 1 store i1 %t105, ptr %t106 %t107 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t107, ptr %a108 - store { ptr, i64, i64 } { ptr @.str.6484, i64 4, i64 0 }, ptr %a110 + store { ptr, i64, i64 } { ptr @.str.6692, i64 4, i64 0 }, ptr %a110 %t111 = call i64 @finch_str_find(ptr %a108, ptr %a110) %t112 = icmp sge i64 %t111, 0 %t113 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 2 store i1 %t112, ptr %t113 %t114 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t114, ptr %a115 - store { ptr, i64, i64 } { ptr @.str.6486, i64 5, i64 0 }, ptr %a117 + store { ptr, i64, i64 } { ptr @.str.6694, i64 5, i64 0 }, ptr %a117 %t118 = call i64 @finch_str_find(ptr %a115, ptr %a117) %t119 = icmp sge i64 %t118, 0 - br label %logic.from9528 -logic.from9528: - br i1 %t119, label %logic.end9530, label %logic.rhs9529 -logic.rhs9529: + br label %logic.from9933 +logic.from9933: + br i1 %t119, label %logic.end9935, label %logic.rhs9934 +logic.rhs9934: %t120 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t120, ptr %a121 - store { ptr, i64, i64 } { ptr @.str.6488, i64 6, i64 0 }, ptr %a123 + store { ptr, i64, i64 } { ptr @.str.6696, i64 6, i64 0 }, ptr %a123 %t124 = call i64 @finch_str_find(ptr %a121, ptr %a123) %t125 = icmp sge i64 %t124, 0 - br label %logic.rend9531 -logic.rend9531: - br label %logic.end9530 -logic.end9530: - %t126 = phi i1 [ true, %logic.from9528 ], [ %t125, %logic.rend9531 ] - br label %logic.from9532 -logic.from9532: - br i1 %t126, label %logic.end9534, label %logic.rhs9533 -logic.rhs9533: + br label %logic.rend9936 +logic.rend9936: + br label %logic.end9935 +logic.end9935: + %t126 = phi i1 [ true, %logic.from9933 ], [ %t125, %logic.rend9936 ] + br label %logic.from9937 +logic.from9937: + br i1 %t126, label %logic.end9939, label %logic.rhs9938 +logic.rhs9938: %t127 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t127, ptr %a128 - store { ptr, i64, i64 } { ptr @.str.6490, i64 5, i64 0 }, ptr %a130 + store { ptr, i64, i64 } { ptr @.str.6698, i64 5, i64 0 }, ptr %a130 %t131 = call i64 @finch_str_find(ptr %a128, ptr %a130) %t132 = icmp sge i64 %t131, 0 - br label %logic.rend9535 -logic.rend9535: - br label %logic.end9534 -logic.end9534: - %t133 = phi i1 [ true, %logic.from9532 ], [ %t132, %logic.rend9535 ] + br label %logic.rend9940 +logic.rend9940: + br label %logic.end9939 +logic.end9939: + %t133 = phi i1 [ true, %logic.from9937 ], [ %t132, %logic.rend9940 ] %t134 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 3 store i1 %t133, ptr %t134 %t135 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t135, ptr %a136 - store { ptr, i64, i64 } { ptr @.str.6492, i64 7, i64 0 }, ptr %a138 + store { ptr, i64, i64 } { ptr @.str.6700, i64 7, i64 0 }, ptr %a138 %t139 = call i32 @finch_str_starts(ptr %a136, ptr %a138) %t140 = icmp ne i32 %t139, 0 - br label %logic.from9536 -logic.from9536: - br i1 %t140, label %logic.end9538, label %logic.rhs9537 -logic.rhs9537: + br label %logic.from9941 +logic.from9941: + br i1 %t140, label %logic.end9943, label %logic.rhs9942 +logic.rhs9942: %t141 = load { ptr, i64, i64 }, ptr %a8 store { ptr, i64, i64 } %t141, ptr %a142 - store { ptr, i64, i64 } { ptr @.str.6494, i64 5, i64 0 }, ptr %a144 + store { ptr, i64, i64 } { ptr @.str.6702, i64 5, i64 0 }, ptr %a144 %t145 = call i32 @finch_str_starts(ptr %a142, ptr %a144) %t146 = icmp ne i32 %t145, 0 - br label %logic.rend9539 -logic.rend9539: - br label %logic.end9538 -logic.end9538: - %t147 = phi i1 [ true, %logic.from9536 ], [ %t146, %logic.rend9539 ] + br label %logic.rend9944 +logic.rend9944: + br label %logic.end9943 +logic.end9943: + %t147 = phi i1 [ true, %logic.from9941 ], [ %t146, %logic.rend9944 ] %t148 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 4 store i1 %t147, ptr %t148 %t149 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t149, ptr %a150 - store { ptr, i64, i64 } { ptr @.str.6496, i64 7, i64 0 }, ptr %a152 + store { ptr, i64, i64 } { ptr @.str.6704, i64 7, i64 0 }, ptr %a152 %t153 = call i32 @finch_str_starts(ptr %a150, ptr %a152) %t154 = icmp ne i32 %t153, 0 - br label %logic.from9540 -logic.from9540: - br i1 %t154, label %logic.end9542, label %logic.rhs9541 -logic.rhs9541: + br label %logic.from9945 +logic.from9945: + br i1 %t154, label %logic.end9947, label %logic.rhs9946 +logic.rhs9946: %t155 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t155, ptr %a156 - store { ptr, i64, i64 } { ptr @.str.6498, i64 5, i64 0 }, ptr %a158 + store { ptr, i64, i64 } { ptr @.str.6706, i64 5, i64 0 }, ptr %a158 %t159 = call i32 @finch_str_starts(ptr %a156, ptr %a158) %t160 = icmp ne i32 %t159, 0 - br label %logic.rend9543 -logic.rend9543: - br label %logic.end9542 -logic.end9542: - %t161 = phi i1 [ true, %logic.from9540 ], [ %t160, %logic.rend9543 ] + br label %logic.rend9948 +logic.rend9948: + br label %logic.end9947 +logic.end9947: + %t161 = phi i1 [ true, %logic.from9945 ], [ %t160, %logic.rend9948 ] store i1 %t161, ptr %a162 %t163 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t163, ptr %a164 - store { ptr, i64, i64 } { ptr @.str.6500, i64 5, i64 0 }, ptr %a166 + store { ptr, i64, i64 } { ptr @.str.6708, i64 5, i64 0 }, ptr %a166 %t167 = call i64 @finch_str_find(ptr %a164, ptr %a166) %t168 = icmp sge i64 %t167, 0 - br label %logic.from9544 -logic.from9544: - br i1 %t168, label %logic.end9546, label %logic.rhs9545 -logic.rhs9545: + br label %logic.from9949 +logic.from9949: + br i1 %t168, label %logic.end9951, label %logic.rhs9950 +logic.rhs9950: %t169 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t169, ptr %a170 - store { ptr, i64, i64 } { ptr @.str.6502, i64 6, i64 0 }, ptr %a172 + store { ptr, i64, i64 } { ptr @.str.6710, i64 6, i64 0 }, ptr %a172 %t173 = call i64 @finch_str_find(ptr %a170, ptr %a172) %t174 = icmp sge i64 %t173, 0 - br label %logic.rend9547 -logic.rend9547: - br label %logic.end9546 -logic.end9546: - %t175 = phi i1 [ true, %logic.from9544 ], [ %t174, %logic.rend9547 ] + br label %logic.rend9952 +logic.rend9952: + br label %logic.end9951 +logic.end9951: + %t175 = phi i1 [ true, %logic.from9949 ], [ %t174, %logic.rend9952 ] store i1 %t175, ptr %a176 %t177 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 1 %t178 = load i1, ptr %t177 - br label %logic.from9548 -logic.from9548: - br i1 %t178, label %logic.end9550, label %logic.rhs9549 -logic.rhs9549: + br label %logic.from9953 +logic.from9953: + br i1 %t178, label %logic.end9955, label %logic.rhs9954 +logic.rhs9954: %t179 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 3 %t180 = load i1, ptr %t179 %t181 = load i1, ptr %a176 %t182 = icmp ne i1 %t180, %t181 - br label %logic.rend9551 -logic.rend9551: - br label %logic.end9550 -logic.end9550: - %t183 = phi i1 [ true, %logic.from9548 ], [ %t182, %logic.rend9551 ] - br label %logic.from9552 -logic.from9552: - br i1 %t183, label %logic.end9554, label %logic.rhs9553 -logic.rhs9553: + br label %logic.rend9956 +logic.rend9956: + br label %logic.end9955 +logic.end9955: + %t183 = phi i1 [ true, %logic.from9953 ], [ %t182, %logic.rend9956 ] + br label %logic.from9957 +logic.from9957: + br i1 %t183, label %logic.end9959, label %logic.rhs9958 +logic.rhs9958: %t184 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 4 %t185 = load i1, ptr %t184 %t186 = load i1, ptr %a162 %t187 = icmp ne i1 %t185, %t186 - br label %logic.rend9555 -logic.rend9555: - br label %logic.end9554 -logic.end9554: - %t188 = phi i1 [ true, %logic.from9552 ], [ %t187, %logic.rend9555 ] + br label %logic.rend9960 +logic.rend9960: + br label %logic.end9959 +logic.end9959: + %t188 = phi i1 [ true, %logic.from9957 ], [ %t187, %logic.rend9960 ] %t189 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 5 store i1 %t188, ptr %t189 %t190 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 6 %t191 = load { ptr, i64, i64 }, ptr %t190 - store { ptr, i64, i64 } { ptr @.str.6503, i64 0, i64 0 }, ptr %t190 + store { ptr, i64, i64 } { ptr @.str.6711, i64 0, i64 0 }, ptr %t190 store { ptr, i64, i64 } %t191, ptr %a192 call void @finch_str_drop(ptr %a192) %t193 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 1 %t194 = load i1, ptr %t193 - br i1 %t194, label %then9556, label %endif9558 -then9556: + br i1 %t194, label %then9961, label %endif9963 +then9961: %t195 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 6 %t196 = load { ptr, i64, i64 }, ptr %t195 - store { ptr, i64, i64 } { ptr @.str.6504, i64 4, i64 0 }, ptr %t195 + store { ptr, i64, i64 } { ptr @.str.6712, i64 4, i64 0 }, ptr %t195 store { ptr, i64, i64 } %t196, ptr %a197 call void @finch_str_drop(ptr %a197) - br label %endif9558 -endif9558: - %t198 = extractvalue { ptr, i64, i64 } { ptr @.str.6505, i64 8, i64 0 }, 0 + br label %endif9963 +endif9963: + %t198 = extractvalue { ptr, i64, i64 } { ptr @.str.6713, i64 8, i64 0 }, 0 %t199 = icmp eq ptr %t198, null - %t200 = select i1 %t199, ptr @.str.6506, ptr %t198 + %t200 = select i1 %t199, ptr @.str.6714, ptr %t198 %t201 = call ptr @getenv(ptr %t200) store { ptr, i64, i64 } zeroinitializer, ptr %a202 call void @finch_str_from_c(ptr %a202, ptr %t201) @@ -98571,8 +102596,8 @@ endif9558: %t208 = getelementptr inbounds { ptr, i64, i64 }, ptr %a207, i32 0, i32 1 %t209 = load i64, ptr %t208 %t210 = icmp sgt i64 %t209, 0 - br i1 %t210, label %then9559, label %else9560 -then9559: + br i1 %t210, label %then9964, label %else9965 +then9964: %t211 = load { ptr, i64, i64 }, ptr %a207 %t212 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 7 store { ptr, i64, i64 } %t211, ptr %a213 @@ -98582,70 +102607,70 @@ then9559: store { ptr, i64, i64 } %t215, ptr %t212 store { ptr, i64, i64 } %t216, ptr %a217 call void @finch_str_drop(ptr %a217) - br label %endif9561 -else9560: + br label %endif9966 +else9965: %t218 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 5 %t219 = load i1, ptr %t218 - br label %logic.from9562 -logic.from9562: - br i1 %t219, label %logic.rhs9563, label %logic.end9564 -logic.rhs9563: + br label %logic.from9967 +logic.from9967: + br i1 %t219, label %logic.rhs9968, label %logic.end9969 +logic.rhs9968: %t220 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 1 %t221 = load i1, ptr %t220 - br label %logic.rend9565 -logic.rend9565: - br label %logic.end9564 -logic.end9564: - %t222 = phi i1 [ false, %logic.from9562 ], [ %t221, %logic.rend9565 ] - br i1 %t222, label %then9566, label %else9567 -then9566: + br label %logic.rend9970 +logic.rend9970: + br label %logic.end9969 +logic.end9969: + %t222 = phi i1 [ false, %logic.from9967 ], [ %t221, %logic.rend9970 ] + br i1 %t222, label %then9971, label %else9972 +then9971: %t223 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 7 %t224 = load { ptr, i64, i64 }, ptr %t223 - store { ptr, i64, i64 } { ptr @.str.6507, i64 22, i64 0 }, ptr %t223 + store { ptr, i64, i64 } { ptr @.str.6715, i64 22, i64 0 }, ptr %t223 store { ptr, i64, i64 } %t224, ptr %a225 call void @finch_str_drop(ptr %a225) - br label %endif9568 -else9567: + br label %endif9973 +else9972: %t226 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 5 %t227 = load i1, ptr %t226 - br label %logic.from9569 -logic.from9569: - br i1 %t227, label %logic.rhs9570, label %logic.end9571 -logic.rhs9570: + br label %logic.from9974 +logic.from9974: + br i1 %t227, label %logic.rhs9975, label %logic.end9976 +logic.rhs9975: %t228 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 4 %t229 = load i1, ptr %t228 - br label %logic.rend9572 -logic.rend9572: - br label %logic.end9571 -logic.end9571: - %t230 = phi i1 [ false, %logic.from9569 ], [ %t229, %logic.rend9572 ] - br label %logic.from9573 -logic.from9573: - br i1 %t230, label %logic.rhs9574, label %logic.end9575 -logic.rhs9574: + br label %logic.rend9977 +logic.rend9977: + br label %logic.end9976 +logic.end9976: + %t230 = phi i1 [ false, %logic.from9974 ], [ %t229, %logic.rend9977 ] + br label %logic.from9978 +logic.from9978: + br i1 %t230, label %logic.rhs9979, label %logic.end9980 +logic.rhs9979: %t231 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 3 %t232 = load i1, ptr %t231 %t233 = xor i1 %t232, true - br label %logic.rend9576 -logic.rend9576: - br label %logic.end9575 -logic.end9575: - %t234 = phi i1 [ false, %logic.from9573 ], [ %t233, %logic.rend9576 ] - br i1 %t234, label %then9577, label %else9578 -then9577: + br label %logic.rend9981 +logic.rend9981: + br label %logic.end9980 +logic.end9980: + %t234 = phi i1 [ false, %logic.from9978 ], [ %t233, %logic.rend9981 ] + br i1 %t234, label %then9982, label %else9983 +then9982: %t235 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 7 %t236 = load { ptr, i64, i64 }, ptr %t235 - store { ptr, i64, i64 } { ptr @.str.6508, i64 21, i64 0 }, ptr %t235 + store { ptr, i64, i64 } { ptr @.str.6716, i64 21, i64 0 }, ptr %t235 store { ptr, i64, i64 } %t236, ptr %a237 call void @finch_str_drop(ptr %a237) - br label %endif9579 -else9578: + br label %endif9984 +else9983: %t238 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 5 %t239 = load i1, ptr %t238 - br i1 %t239, label %then9580, label %else9581 -then9580: + br i1 %t239, label %then9985, label %else9986 +then9985: %t240 = load { ptr, i64, i64 }, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.6509, i64 15, i64 0 }, ptr %a242 + store { ptr, i64, i64 } { ptr @.str.6717, i64 15, i64 0 }, ptr %a242 store { ptr, i64, i64 } %t240, ptr %a243 call void @finch_str_concat(ptr %a241, ptr %a242, ptr %a243) %t244 = load { ptr, i64, i64 }, ptr %a241 @@ -98654,97 +102679,97 @@ then9580: store { ptr, i64, i64 } %t244, ptr %t245 store { ptr, i64, i64 } %t246, ptr %a247 call void @finch_str_drop(ptr %a247) - br label %endif9582 -else9581: + br label %endif9987 +else9986: %t248 = call { ptr, i64, i64 } @finch.host.pathSeparator() store { ptr, i64, i64 } %t248, ptr %a249 - store { ptr, i64, i64 } { ptr @.str.6510, i64 1, i64 0 }, ptr %a250 + store { ptr, i64, i64 } { ptr @.str.6718, i64 1, i64 0 }, ptr %a250 %t251 = call i32 @finch_str_eq(ptr %a249, ptr %a250) %t252 = icmp ne i32 %t251, 0 store { ptr, i64, i64 } %t248, ptr %a253 call void @finch_str_drop(ptr %a253) - br i1 %t252, label %then9583, label %else9584 -then9583: + br i1 %t252, label %then9988, label %else9989 +then9988: %t254 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 7 %t255 = load { ptr, i64, i64 }, ptr %t254 - store { ptr, i64, i64 } { ptr @.str.6511, i64 5, i64 0 }, ptr %t254 + store { ptr, i64, i64 } { ptr @.str.6719, i64 5, i64 0 }, ptr %t254 store { ptr, i64, i64 } %t255, ptr %a256 call void @finch_str_drop(ptr %a256) - br label %endif9585 -else9584: + br label %endif9990 +else9989: %t257 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 7 %t258 = load { ptr, i64, i64 }, ptr %t257 - store { ptr, i64, i64 } { ptr @.str.6512, i64 2, i64 0 }, ptr %t257 + store { ptr, i64, i64 } { ptr @.str.6720, i64 2, i64 0 }, ptr %t257 store { ptr, i64, i64 } %t258, ptr %a259 call void @finch_str_drop(ptr %a259) - br label %endif9585 -endif9585: - br label %endif9582 -endif9582: - br label %endif9579 -endif9579: - br label %endif9568 -endif9568: - br label %endif9561 -endif9561: + br label %endif9990 +endif9990: + br label %endif9987 +endif9987: + br label %endif9984 +endif9984: + br label %endif9973 +endif9973: + br label %endif9966 +endif9966: %t260 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 5 %t261 = load i1, ptr %t260 - br label %logic.from9586 -logic.from9586: - br i1 %t261, label %logic.rhs9587, label %logic.end9588 -logic.rhs9587: + br label %logic.from9991 +logic.from9991: + br i1 %t261, label %logic.rhs9992, label %logic.end9993 +logic.rhs9992: %t262 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 1 %t263 = load i1, ptr %t262 - br label %logic.rend9589 -logic.rend9589: - br label %logic.end9588 -logic.end9588: - %t264 = phi i1 [ false, %logic.from9586 ], [ %t263, %logic.rend9589 ] - br i1 %t264, label %then9590, label %else9591 -then9590: + br label %logic.rend9994 +logic.rend9994: + br label %logic.end9993 +logic.end9993: + %t264 = phi i1 [ false, %logic.from9991 ], [ %t263, %logic.rend9994 ] + br i1 %t264, label %then9995, label %else9996 +then9995: %t265 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 8 %t266 = load { ptr, i64, i64 }, ptr %t265 - store { ptr, i64, i64 } { ptr @.str.6513, i64 5, i64 0 }, ptr %t265 + store { ptr, i64, i64 } { ptr @.str.6721, i64 5, i64 0 }, ptr %t265 store { ptr, i64, i64 } %t266, ptr %a267 call void @finch_str_drop(ptr %a267) - br label %endif9592 -else9591: + br label %endif9997 +else9996: %t268 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 5 %t269 = load i1, ptr %t268 - br label %logic.from9593 -logic.from9593: - br i1 %t269, label %logic.rhs9594, label %logic.end9595 -logic.rhs9594: + br label %logic.from9998 +logic.from9998: + br i1 %t269, label %logic.rhs9999, label %logic.end10000 +logic.rhs9999: %t270 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 4 %t271 = load i1, ptr %t270 - br label %logic.rend9596 -logic.rend9596: - br label %logic.end9595 -logic.end9595: - %t272 = phi i1 [ false, %logic.from9593 ], [ %t271, %logic.rend9596 ] - br label %logic.from9597 -logic.from9597: - br i1 %t272, label %logic.rhs9598, label %logic.end9599 -logic.rhs9598: + br label %logic.rend10001 +logic.rend10001: + br label %logic.end10000 +logic.end10000: + %t272 = phi i1 [ false, %logic.from9998 ], [ %t271, %logic.rend10001 ] + br label %logic.from10002 +logic.from10002: + br i1 %t272, label %logic.rhs10003, label %logic.end10004 +logic.rhs10003: %t273 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 3 %t274 = load i1, ptr %t273 %t275 = xor i1 %t274, true - br label %logic.rend9600 -logic.rend9600: - br label %logic.end9599 -logic.end9599: - %t276 = phi i1 [ false, %logic.from9597 ], [ %t275, %logic.rend9600 ] - br i1 %t276, label %then9601, label %endif9603 -then9601: + br label %logic.rend10005 +logic.rend10005: + br label %logic.end10004 +logic.end10004: + %t276 = phi i1 [ false, %logic.from10002 ], [ %t275, %logic.rend10005 ] + br i1 %t276, label %then10006, label %endif10008 +then10006: %t277 = getelementptr inbounds %S.platform.Target, ptr %a78, i32 0, i32 8 %t278 = load { ptr, i64, i64 }, ptr %t277 - store { ptr, i64, i64 } { ptr @.str.6514, i64 13, i64 0 }, ptr %t277 + store { ptr, i64, i64 } { ptr @.str.6722, i64 13, i64 0 }, ptr %t277 store { ptr, i64, i64 } %t278, ptr %a279 call void @finch_str_drop(ptr %a279) - br label %endif9603 -endif9603: - br label %endif9592 -endif9592: + br label %endif10008 +endif10008: + br label %endif9997 +endif9997: %t280 = load %S.platform.Target, ptr %a78 call void @finch_str_drop(ptr %a207) call void @finch_str_drop(ptr %a8) @@ -98759,28 +102784,28 @@ entry: %t2 = getelementptr inbounds %S.platform.Target, ptr %a1, i32 0, i32 4 %t3 = load i1, ptr %t2 %t4 = xor i1 %t3, true - br label %logic.from9604 -logic.from9604: - br i1 %t4, label %logic.end9606, label %logic.rhs9605 -logic.rhs9605: + br label %logic.from10009 +logic.from10009: + br i1 %t4, label %logic.end10011, label %logic.rhs10010 +logic.rhs10010: %t5 = getelementptr inbounds %S.platform.Target, ptr %a1, i32 0, i32 3 %t6 = load i1, ptr %t5 - br label %logic.rend9607 -logic.rend9607: - br label %logic.end9606 -logic.end9606: - %t7 = phi i1 [ true, %logic.from9604 ], [ %t6, %logic.rend9607 ] - br label %logic.from9608 -logic.from9608: - br i1 %t7, label %logic.end9610, label %logic.rhs9609 -logic.rhs9609: + br label %logic.rend10012 +logic.rend10012: + br label %logic.end10011 +logic.end10011: + %t7 = phi i1 [ true, %logic.from10009 ], [ %t6, %logic.rend10012 ] + br label %logic.from10013 +logic.from10013: + br i1 %t7, label %logic.end10015, label %logic.rhs10014 +logic.rhs10014: %t8 = getelementptr inbounds %S.platform.Target, ptr %a1, i32 0, i32 1 %t9 = load i1, ptr %t8 - br label %logic.rend9611 -logic.rend9611: - br label %logic.end9610 -logic.end9610: - %t10 = phi i1 [ true, %logic.from9608 ], [ %t9, %logic.rend9611 ] + br label %logic.rend10016 +logic.rend10016: + br label %logic.end10015 +logic.end10015: + %t10 = phi i1 [ true, %logic.from10013 ], [ %t9, %logic.rend10016 ] ret i1 %t10 } @@ -98799,14 +102824,14 @@ entry: store { ptr, i64, i64 } %p0, ptr %a1 store i32 2166136261, ptr %a2 store i64 0, ptr %a3 - br label %each.cond9612 -each.cond9612: + br label %each.cond10017 +each.cond10017: %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t5 = load i64, ptr %t4 %t6 = load i64, ptr %a3 %t7 = icmp slt i64 %t6, %t5 - br i1 %t7, label %each.body9613, label %each.end9615 -each.body9613: + br i1 %t7, label %each.body10018, label %each.end10020 +each.body10018: %t8 = load ptr, ptr %a1 %t9 = getelementptr inbounds i8, ptr %t8, i64 %t6 %t10 = load i8, ptr %t9 @@ -98817,22 +102842,22 @@ each.body9613: %t15 = xor i32 %t12, %t14 %t16 = mul i32 %t15, 16777619 store i32 %t16, ptr %a2 - br label %each.step9614 -each.step9614: + br label %each.step10019 +each.step10019: %t17 = load i64, ptr %a3 %t18 = add i64 %t17, 1 store i64 %t18, ptr %a3 - br label %each.cond9612 -each.end9615: - store { ptr, i64, i64 } { ptr @.str.6515, i64 16, i64 0 }, ptr %a19 + br label %each.cond10017 +each.end10020: + store { ptr, i64, i64 } { ptr @.str.6723, i64 16, i64 0 }, ptr %a19 store { ptr, i64, i64 } zeroinitializer, ptr %a20 store i64 0, ptr %a21 - br label %for.cond9616 -for.cond9616: + br label %for.cond10021 +for.cond10021: %t22 = load i64, ptr %a21 %t23 = icmp slt i64 %t22, 8 - br i1 %t23, label %for.body9617, label %for.end9619 -for.body9617: + br i1 %t23, label %for.body10022, label %for.end10024 +for.body10022: %t24 = getelementptr inbounds { ptr, i64, i64 }, ptr %a20, i32 0, i32 1 %t25 = load i32, ptr %a2 %t26 = load i64, ptr %a21 @@ -98845,11 +102870,11 @@ for.body9617: %t33 = load { ptr, i64, i64 }, ptr %a19 %t34 = extractvalue { ptr, i64, i64 } %t33, 1 %t35 = icmp uge i64 %t32, %t34 - br i1 %t35, label %range9620, label %inrange9621 -range9620: - call void @finch_panic_index(ptr @.str.6516, i64 16, i64 %t32, i64 %t34) + br i1 %t35, label %range10025, label %inrange10026 +range10025: + call void @finch_panic_index(ptr @.str.6724, i64 16, i64 %t32, i64 %t34) unreachable -inrange9621: +inrange10026: %t36 = extractvalue { ptr, i64, i64 } %t33, 0 %t37 = getelementptr inbounds i8, ptr %t36, i64 %t32 %t38 = load i8, ptr %t37 @@ -98862,15 +102887,15 @@ inrange9621: %t44 = getelementptr inbounds { ptr, i64, i64 }, ptr %t43, i64 %t41 store { ptr, i64, i64 } %t40, ptr %t44 store i64 %t42, ptr %t24 - br label %for.step9618 -for.step9618: + br label %for.step10023 +for.step10023: %t45 = load i64, ptr %a21 %t46 = add i64 %t45, 1 store i64 %t46, ptr %a21 - br label %for.cond9616 -for.end9619: + br label %for.cond10021 +for.end10024: %t47 = getelementptr inbounds { ptr, i64, i64 }, ptr %a20, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.6517, i64 0, i64 0 }, ptr %a48 + store { ptr, i64, i64 } { ptr @.str.6725, i64 0, i64 0 }, ptr %a48 call void @finch_str_join(ptr %a49, ptr %a20, ptr %a48) %t50 = load { ptr, i64, i64 }, ptr %a49 call void @finch.drop.arr_str(ptr %a20) @@ -98957,37 +102982,37 @@ entry: store %S.platform.Target %p1, ptr %a2 %t3 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t3, ptr %a4 - store { ptr, i64, i64 } { ptr @.str.6519, i64 10, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.6727, i64 10, i64 0 }, ptr %a6 %t7 = call i32 @finch_str_ends(ptr %a4, ptr %a6) %t8 = icmp ne i32 %t7, 0 - br i1 %t8, label %then9622, label %endif9624 -then9622: + br i1 %t8, label %then10027, label %endif10029 +then10027: %t9 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t9, ptr %a10 %t12 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t13 = load i64, ptr %t12 %t14 = sub i64 %t13, 10 - call void @finch_str_sub(ptr %a11, ptr %a10, i64 0, i64 %t14, ptr @.str.6521, i64 28) + call void @finch_str_sub(ptr %a11, ptr %a10, i64 0, i64 %t14, ptr @.str.6729, i64 28) %t15 = load { ptr, i64, i64 }, ptr %a11 %t16 = call { ptr, i64, i64 } @finch.linker.quote({ ptr, i64, i64 } %t15) store { ptr, i64, i64 } %t15, ptr %a17 call void @finch_str_drop(ptr %a17) - store { ptr, i64, i64 } { ptr @.str.6520, i64 11, i64 0 }, ptr %a19 + store { ptr, i64, i64 } { ptr @.str.6728, i64 11, i64 0 }, ptr %a19 store { ptr, i64, i64 } %t16, ptr %a20 call void @finch_str_concat(ptr %a18, ptr %a19, ptr %a20) store { ptr, i64, i64 } %t16, ptr %a21 call void @finch_str_drop(ptr %a21) %t22 = load { ptr, i64, i64 }, ptr %a18 ret { ptr, i64, i64 } %t22 -endif9624: +endif10029: %t23 = getelementptr inbounds %S.platform.Target, ptr %a2, i32 0, i32 5 %t24 = load i1, ptr %t23 %t25 = xor i1 %t24, true - br i1 %t25, label %then9625, label %endif9627 -then9625: + br i1 %t25, label %then10030, label %endif10032 +then10030: %t26 = call { ptr, i64, i64 } @finch.host.tempDir() store { ptr, i64, i64 } %t26, ptr %a28 - store { ptr, i64, i64 } { ptr @.str.6522, i64 17, i64 0 }, ptr %a29 + store { ptr, i64, i64 } { ptr @.str.6730, i64 17, i64 0 }, ptr %a29 call void @finch_str_concat(ptr %a27, ptr %a28, ptr %a29) store { ptr, i64, i64 } %t26, ptr %a30 call void @finch_str_drop(ptr %a30) @@ -99004,7 +103029,7 @@ then9625: call void @finch_str_drop(ptr %a39) %t40 = load { ptr, i64, i64 }, ptr %a35 store { ptr, i64, i64 } %t40, ptr %a42 - store { ptr, i64, i64 } { ptr @.str.6523, i64 4, i64 0 }, ptr %a43 + store { ptr, i64, i64 } { ptr @.str.6731, i64 4, i64 0 }, ptr %a43 call void @finch_str_concat(ptr %a41, ptr %a42, ptr %a43) store { ptr, i64, i64 } %t40, ptr %a44 call void @finch_str_drop(ptr %a44) @@ -99012,14 +103037,14 @@ then9625: store { ptr, i64, i64 } %t45, ptr %a46 %t47 = load { ptr, i64, i64 }, ptr %a1 %t48 = call { ptr, i64, i64 } @finch.linker.quote({ ptr, i64, i64 } %t47) - store { ptr, i64, i64 } { ptr @.str.6524, i64 18, i64 0 }, ptr %a50 + store { ptr, i64, i64 } { ptr @.str.6732, i64 18, i64 0 }, ptr %a50 store { ptr, i64, i64 } %t48, ptr %a51 call void @finch_str_concat(ptr %a49, ptr %a50, ptr %a51) store { ptr, i64, i64 } %t48, ptr %a52 call void @finch_str_drop(ptr %a52) %t53 = load { ptr, i64, i64 }, ptr %a49 store { ptr, i64, i64 } %t53, ptr %a55 - store { ptr, i64, i64 } { ptr @.str.6525, i64 3, i64 0 }, ptr %a56 + store { ptr, i64, i64 } { ptr @.str.6733, i64 3, i64 0 }, ptr %a56 call void @finch_str_concat(ptr %a54, ptr %a55, ptr %a56) store { ptr, i64, i64 } %t53, ptr %a57 call void @finch_str_drop(ptr %a57) @@ -99035,7 +103060,7 @@ then9625: call void @finch_str_drop(ptr %a65) %t66 = load { ptr, i64, i64 }, ptr %a61 store { ptr, i64, i64 } %t66, ptr %a68 - store { ptr, i64, i64 } { ptr @.str.6526, i64 4, i64 0 }, ptr %a69 + store { ptr, i64, i64 } { ptr @.str.6734, i64 4, i64 0 }, ptr %a69 call void @finch_str_concat(ptr %a67, ptr %a68, ptr %a69) store { ptr, i64, i64 } %t66, ptr %a70 call void @finch_str_drop(ptr %a70) @@ -99055,21 +103080,21 @@ then9625: store i64 %t79, ptr %a81 %t82 = load i64, ptr %a81 %t83 = icmp eq i64 %t82, 0 - br label %logic.from9628 -logic.from9628: - br i1 %t83, label %logic.rhs9629, label %logic.end9630 -logic.rhs9629: + br label %logic.from10033 +logic.from10033: + br i1 %t83, label %logic.rhs10034, label %logic.end10035 +logic.rhs10034: %t84 = load { ptr, i64, i64 }, ptr %a46 store { ptr, i64, i64 } %t84, ptr %a85 %t86 = call i32 @finch_file_exists(ptr %a85) %t87 = icmp ne i32 %t86, 0 - br label %logic.rend9631 -logic.rend9631: - br label %logic.end9630 -logic.end9630: - %t88 = phi i1 [ false, %logic.from9628 ], [ %t87, %logic.rend9631 ] - br i1 %t88, label %then9632, label %endif9634 -then9632: + br label %logic.rend10036 +logic.rend10036: + br label %logic.end10035 +logic.end10035: + %t88 = phi i1 [ false, %logic.from10033 ], [ %t87, %logic.rend10036 ] + br i1 %t88, label %then10037, label %endif10039 +then10037: %t89 = load { ptr, i64, i64 }, ptr %a46 store { ptr, i64, i64 } %t89, ptr %a90 store { ptr, i64, i64 } zeroinitializer, ptr %a91 @@ -99078,17 +103103,17 @@ then9632: %t94 = icmp eq i32 %t93, 0 %t95 = load { ptr, i64, i64 }, ptr %a92 %t96 = load { ptr, i64, i64 }, ptr %a91 - br i1 %t94, label %or.failed9635, label %or.ok9636 -or.failed9635: + br i1 %t94, label %or.failed10040, label %or.ok10041 +or.failed10040: store { ptr, i64, i64 } %t95, ptr %a97 call void @finch_str_drop(ptr %a97) - br label %or.bend9637 -or.bend9637: - br label %or.end9638 -or.ok9636: - br label %or.end9638 -or.end9638: - %t98 = phi { ptr, i64, i64 } [ { ptr @.str.6527, i64 0, i64 0 }, %or.bend9637 ], [ %t96, %or.ok9636 ] + br label %or.bend10042 +or.bend10042: + br label %or.end10043 +or.ok10041: + br label %or.end10043 +or.end10043: + %t98 = phi { ptr, i64, i64 } [ { ptr @.str.6735, i64 0, i64 0 }, %or.bend10042 ], [ %t96, %or.ok10041 ] store { ptr, i64, i64 } %t98, ptr %a99 call void @finch_str_trim(ptr %a100, ptr %a99) %t101 = load { ptr, i64, i64 }, ptr %a100 @@ -99100,20 +103125,20 @@ or.end9638: %t105 = getelementptr inbounds { ptr, i64, i64 }, ptr %a103, i32 0, i32 1 %t106 = load i64, ptr %t105 %t107 = icmp sgt i64 %t106, 0 - br i1 %t107, label %then9639, label %endif9641 -then9639: + br i1 %t107, label %then10044, label %endif10046 +then10044: %t108 = load { ptr, i64, i64 }, ptr %a103 call void @finch_str_drop(ptr %a46) ret { ptr, i64, i64 } %t108 -endif9641: +endif10046: call void @finch_str_drop(ptr %a103) - br label %endif9634 -endif9634: + br label %endif10039 +endif10039: call void @finch_str_drop(ptr %a46) - br label %endif9627 -endif9627: + br label %endif10032 +endif10032: %t109 = load { ptr, i64, i64 }, ptr %a1 - store { ptr, i64, i64 } { ptr @.str.6529, i64 2, i64 0 }, ptr %a111 + store { ptr, i64, i64 } { ptr @.str.6737, i64 2, i64 0 }, ptr %a111 store { ptr, i64, i64 } %t109, ptr %a112 call void @finch_str_concat(ptr %a110, ptr %a111, ptr %a112) %t113 = load { ptr, i64, i64 }, ptr %a110 @@ -99157,22 +103182,22 @@ entry: store { ptr, i64, i64 } %t5, ptr %a6 %t7 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t7, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.6531, i64 1, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.6739, i64 1, i64 0 }, ptr %a10 %t11 = call i64 @finch_str_find(ptr %a8, ptr %a10) store i64 %t11, ptr %a12 - br label %while.cond9642 -while.cond9642: + br label %while.cond10047 +while.cond10047: %t13 = load i64, ptr %a12 %t14 = icmp sge i64 %t13, 0 - br i1 %t14, label %while.body9643, label %while.end9644 -while.body9643: + br i1 %t14, label %while.body10048, label %while.end10049 +while.body10048: %t15 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t15, ptr %a16 %t18 = load i64, ptr %a12 %t19 = add i64 %t18, 1 %t20 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t21 = load i64, ptr %t20 - call void @finch_str_sub(ptr %a17, ptr %a16, i64 %t19, i64 %t21, ptr @.str.6532, i64 49) + call void @finch_str_sub(ptr %a17, ptr %a16, i64 %t19, i64 %t21, ptr @.str.6740, i64 49) %t22 = load { ptr, i64, i64 }, ptr %a17 %t23 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t22, ptr %a6 @@ -99180,126 +103205,126 @@ while.body9643: call void @finch_str_drop(ptr %a24) %t25 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t25, ptr %a26 - store { ptr, i64, i64 } { ptr @.str.6534, i64 1, i64 0 }, ptr %a28 + store { ptr, i64, i64 } { ptr @.str.6742, i64 1, i64 0 }, ptr %a28 %t29 = call i64 @finch_str_find(ptr %a26, ptr %a28) store i64 %t29, ptr %a12 - br label %while.cond9642 -while.end9644: + br label %while.cond10047 +while.end10049: %t30 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t31 = load i64, ptr %t30 store i64 %t31, ptr %a32 %t33 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t34 = load i64, ptr %t33 store i64 0, ptr %a35 - br label %for.cond9645 -for.cond9645: + br label %for.cond10050 +for.cond10050: %t36 = load i64, ptr %a35 %t37 = icmp slt i64 %t36, %t34 - br i1 %t37, label %for.body9646, label %for.end9648 -for.body9646: + br i1 %t37, label %for.body10051, label %for.end10053 +for.body10051: %t38 = load i64, ptr %a35 %t39 = load { ptr, i64, i64 }, ptr %a6 %t40 = extractvalue { ptr, i64, i64 } %t39, 1 %t41 = icmp uge i64 %t38, %t40 - br i1 %t41, label %range9649, label %inrange9650 -range9649: - call void @finch_panic_index(ptr @.str.6535, i64 54, i64 %t38, i64 %t40) + br i1 %t41, label %range10054, label %inrange10055 +range10054: + call void @finch_panic_index(ptr @.str.6743, i64 54, i64 %t38, i64 %t40) unreachable -inrange9650: +inrange10055: %t42 = extractvalue { ptr, i64, i64 } %t39, 0 %t43 = getelementptr inbounds i8, ptr %t42, i64 %t38 %t44 = load i8, ptr %t43 %t45 = icmp eq i8 %t44, 46 - br i1 %t45, label %then9651, label %endif9653 -then9651: + br i1 %t45, label %then10056, label %endif10058 +then10056: %t46 = load i64, ptr %a35 store i64 %t46, ptr %a32 - br label %endif9653 -endif9653: - br label %for.step9647 -for.step9647: + br label %endif10058 +endif10058: + br label %for.step10052 +for.step10052: %t47 = load i64, ptr %a35 %t48 = add i64 %t47, 1 store i64 %t48, ptr %a35 - br label %for.cond9645 -for.end9648: + br label %for.cond10050 +for.end10053: %t49 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t49, ptr %a50 %t52 = load i64, ptr %a32 - call void @finch_str_sub(ptr %a51, ptr %a50, i64 0, i64 %t52, ptr @.str.6536, i64 58) + call void @finch_str_sub(ptr %a51, ptr %a50, i64 0, i64 %t52, ptr @.str.6744, i64 58) %t53 = load { ptr, i64, i64 }, ptr %a51 %t54 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t53, ptr %a6 store { ptr, i64, i64 } %t54, ptr %a55 call void @finch_str_drop(ptr %a55) - br label %while.cond9654 -while.cond9654: + br label %while.cond10059 +while.cond10059: %t56 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t57 = load i64, ptr %t56 %t58 = icmp sgt i64 %t57, 0 - br label %logic.from9657 -logic.from9657: - br i1 %t58, label %logic.rhs9658, label %logic.end9659 -logic.rhs9658: + br label %logic.from10062 +logic.from10062: + br i1 %t58, label %logic.rhs10063, label %logic.end10064 +logic.rhs10063: %t59 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t60 = load i64, ptr %t59 %t61 = sub i64 %t60, 1 %t62 = load { ptr, i64, i64 }, ptr %a6 %t63 = extractvalue { ptr, i64, i64 } %t62, 1 %t64 = icmp uge i64 %t61, %t63 - br i1 %t64, label %range9660, label %inrange9661 -range9660: - call void @finch_panic_index(ptr @.str.6537, i64 59, i64 %t61, i64 %t63) + br i1 %t64, label %range10065, label %inrange10066 +range10065: + call void @finch_panic_index(ptr @.str.6745, i64 59, i64 %t61, i64 %t63) unreachable -inrange9661: +inrange10066: %t65 = extractvalue { ptr, i64, i64 } %t62, 0 %t66 = getelementptr inbounds i8, ptr %t65, i64 %t61 %t67 = load i8, ptr %t66 %t68 = icmp uge i8 %t67, 48 - br label %logic.rend9662 -logic.rend9662: - br label %logic.end9659 -logic.end9659: - %t69 = phi i1 [ false, %logic.from9657 ], [ %t68, %logic.rend9662 ] - br label %logic.from9663 -logic.from9663: - br i1 %t69, label %logic.rhs9664, label %logic.end9665 -logic.rhs9664: + br label %logic.rend10067 +logic.rend10067: + br label %logic.end10064 +logic.end10064: + %t69 = phi i1 [ false, %logic.from10062 ], [ %t68, %logic.rend10067 ] + br label %logic.from10068 +logic.from10068: + br i1 %t69, label %logic.rhs10069, label %logic.end10070 +logic.rhs10069: %t70 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t71 = load i64, ptr %t70 %t72 = sub i64 %t71, 1 %t73 = load { ptr, i64, i64 }, ptr %a6 %t74 = extractvalue { ptr, i64, i64 } %t73, 1 %t75 = icmp uge i64 %t72, %t74 - br i1 %t75, label %range9666, label %inrange9667 -range9666: - call void @finch_panic_index(ptr @.str.6538, i64 59, i64 %t72, i64 %t74) + br i1 %t75, label %range10071, label %inrange10072 +range10071: + call void @finch_panic_index(ptr @.str.6746, i64 59, i64 %t72, i64 %t74) unreachable -inrange9667: +inrange10072: %t76 = extractvalue { ptr, i64, i64 } %t73, 0 %t77 = getelementptr inbounds i8, ptr %t76, i64 %t72 %t78 = load i8, ptr %t77 %t79 = icmp ule i8 %t78, 57 - br label %logic.rend9668 -logic.rend9668: - br label %logic.end9665 -logic.end9665: - %t80 = phi i1 [ false, %logic.from9663 ], [ %t79, %logic.rend9668 ] - br i1 %t80, label %while.body9655, label %while.end9656 -while.body9655: + br label %logic.rend10073 +logic.rend10073: + br label %logic.end10070 +logic.end10070: + %t80 = phi i1 [ false, %logic.from10068 ], [ %t79, %logic.rend10073 ] + br i1 %t80, label %while.body10060, label %while.end10061 +while.body10060: %t81 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t81, ptr %a82 %t84 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t85 = load i64, ptr %t84 %t86 = sub i64 %t85, 1 - call void @finch_str_sub(ptr %a83, ptr %a82, i64 0, i64 %t86, ptr @.str.6539, i64 60) + call void @finch_str_sub(ptr %a83, ptr %a82, i64 0, i64 %t86, ptr @.str.6747, i64 60) %t87 = load { ptr, i64, i64 }, ptr %a83 %t88 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t87, ptr %a6 store { ptr, i64, i64 } %t88, ptr %a89 call void @finch_str_drop(ptr %a89) - br label %while.cond9654 -while.end9656: + br label %while.cond10059 +while.end10061: %t90 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t90, ptr %a91 call void @finch_str_lower(ptr %a92, ptr %a91) @@ -99321,10 +103346,10 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t3 = load i64, ptr %t2 %t4 = icmp sgt i64 %t3, 0 - br label %logic.from9669 -logic.from9669: - br i1 %t4, label %logic.rhs9670, label %logic.end9671 -logic.rhs9670: + br label %logic.from10074 +logic.from10074: + br i1 %t4, label %logic.rhs10075, label %logic.end10076 +logic.rhs10075: %t5 = getelementptr inbounds %S.linker.Names, ptr %self, i32 0, i32 0 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t7 = load { ptr, i64, i64 }, ptr %a1 @@ -99332,37 +103357,37 @@ logic.rhs9670: %t9 = load i64, ptr %t6 %t10 = load ptr, ptr %t5 store i64 0, ptr %a11 - br label %find.cond9672 -find.cond9672: + br label %find.cond10077 +find.cond10077: %t12 = load i64, ptr %a11 %t13 = icmp slt i64 %t12, %t9 - br i1 %t13, label %find.body9673, label %find.end9676 -find.body9673: + br i1 %t13, label %find.body10078, label %find.end10081 +find.body10078: %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %t10, i64 %t12 %t15 = load { ptr, i64, i64 }, ptr %t14 store { ptr, i64, i64 } %t15, ptr %a16 store { ptr, i64, i64 } %t7, ptr %a17 %t18 = call i32 @finch_str_eq(ptr %a16, ptr %a17) %t19 = icmp ne i32 %t18, 0 - br i1 %t19, label %find.hit9674, label %find.next9675 -find.hit9674: + br i1 %t19, label %find.hit10079, label %find.next10080 +find.hit10079: store i64 %t12, ptr %a8 - br label %find.end9676 -find.next9675: + br label %find.end10081 +find.next10080: %t20 = add i64 %t12, 1 store i64 %t20, ptr %a11 - br label %find.cond9672 -find.end9676: + br label %find.cond10077 +find.end10081: %t21 = load i64, ptr %a8 %t22 = icmp sge i64 %t21, 0 %t23 = xor i1 %t22, true - br label %logic.rend9677 -logic.rend9677: - br label %logic.end9671 -logic.end9671: - %t24 = phi i1 [ false, %logic.from9669 ], [ %t23, %logic.rend9677 ] - br i1 %t24, label %then9678, label %endif9680 -then9678: + br label %logic.rend10082 +logic.rend10082: + br label %logic.end10076 +logic.end10076: + %t24 = phi i1 [ false, %logic.from10074 ], [ %t23, %logic.rend10082 ] + br i1 %t24, label %then10083, label %endif10085 +then10083: %t25 = getelementptr inbounds %S.linker.Names, ptr %self, i32 0, i32 0 %t26 = getelementptr inbounds { ptr, i64, i64 }, ptr %t25, i32 0, i32 1 %t27 = load { ptr, i64, i64 }, ptr %a1 @@ -99376,8 +103401,8 @@ then9678: %t34 = getelementptr inbounds { ptr, i64, i64 }, ptr %t33, i64 %t31 store { ptr, i64, i64 } %t30, ptr %t34 store i64 %t32, ptr %t26 - br label %endif9680 -endif9680: + br label %endif10085 +endif10085: ret void } @@ -99412,10 +103437,10 @@ entry: store i64 %t9, ptr %a10 %t11 = load i64, ptr %a10 %t12 = icmp slt i64 %t11, 0 - br i1 %t12, label %then9681, label %endif9683 -then9681: - ret { ptr, i64, i64 } { ptr @.str.6542, i64 0, i64 0 } -endif9683: + br i1 %t12, label %then10086, label %endif10088 +then10086: + ret { ptr, i64, i64 } { ptr @.str.6750, i64 0, i64 0 } +endif10088: %t13 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t13, ptr %a14 %t16 = load i64, ptr %a10 @@ -99424,31 +103449,31 @@ endif9683: %t19 = add i64 %t16, %t18 %t20 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t21 = load i64, ptr %t20 - call void @finch_str_sub(ptr %a15, ptr %a14, i64 %t19, i64 %t21, ptr @.str.6543, i64 81) + call void @finch_str_sub(ptr %a15, ptr %a14, i64 %t19, i64 %t21, ptr @.str.6751, i64 81) %t22 = load { ptr, i64, i64 }, ptr %a15 store { ptr, i64, i64 } %t22, ptr %a23 store i64 0, ptr %a24 - br label %while.cond9684 -while.cond9684: + br label %while.cond10089 +while.cond10089: %t25 = load i64, ptr %a24 %t26 = getelementptr inbounds { ptr, i64, i64 }, ptr %a23, i32 0, i32 1 %t27 = load i64, ptr %t26 %t28 = icmp slt i64 %t25, %t27 - br label %logic.from9687 -logic.from9687: - br i1 %t28, label %logic.rhs9688, label %logic.end9689 -logic.rhs9688: + br label %logic.from10092 +logic.from10092: + br i1 %t28, label %logic.rhs10093, label %logic.end10094 +logic.rhs10093: %t29 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t29, ptr %a30 %t32 = load i64, ptr %a24 %t33 = load { ptr, i64, i64 }, ptr %a23 %t34 = extractvalue { ptr, i64, i64 } %t33, 1 %t35 = icmp uge i64 %t32, %t34 - br i1 %t35, label %range9690, label %inrange9691 -range9690: - call void @finch_panic_index(ptr @.str.6545, i64 83, i64 %t32, i64 %t34) + br i1 %t35, label %range10095, label %inrange10096 +range10095: + call void @finch_panic_index(ptr @.str.6753, i64 83, i64 %t32, i64 %t34) unreachable -inrange9691: +inrange10096: %t36 = extractvalue { ptr, i64, i64 } %t33, 0 %t37 = getelementptr inbounds i8, ptr %t36, i64 %t32 %t38 = load i8, ptr %t37 @@ -99460,22 +103485,22 @@ inrange9691: store { ptr, i64, i64 } %t40, ptr %a44 call void @finch_str_drop(ptr %a44) %t45 = xor i1 %t43, true - br label %logic.rend9692 -logic.rend9692: - br label %logic.end9689 -logic.end9689: - %t46 = phi i1 [ false, %logic.from9687 ], [ %t45, %logic.rend9692 ] - br i1 %t46, label %while.body9685, label %while.end9686 -while.body9685: + br label %logic.rend10097 +logic.rend10097: + br label %logic.end10094 +logic.end10094: + %t46 = phi i1 [ false, %logic.from10092 ], [ %t45, %logic.rend10097 ] + br i1 %t46, label %while.body10090, label %while.end10091 +while.body10090: %t47 = load i64, ptr %a24 %t48 = add i64 %t47, 1 store i64 %t48, ptr %a24 - br label %while.cond9684 -while.end9686: + br label %while.cond10089 +while.end10091: %t49 = load { ptr, i64, i64 }, ptr %a23 store { ptr, i64, i64 } %t49, ptr %a50 %t52 = load i64, ptr %a24 - call void @finch_str_sub(ptr %a51, ptr %a50, i64 0, i64 %t52, ptr @.str.6546, i64 86) + call void @finch_str_sub(ptr %a51, ptr %a50, i64 0, i64 %t52, ptr @.str.6754, i64 86) %t53 = load { ptr, i64, i64 }, ptr %a51 call void @finch_str_drop(ptr %a23) ret { ptr, i64, i64 } %t53 @@ -99496,19 +103521,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond9796 -n.cond9796: + br label %n.cond10201 +n.cond10201: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body9797, label %n.end9798 -n.body9797: + br i1 %t6, label %n.body10202, label %n.end10203 +n.body10202: %t7 = getelementptr inbounds %S.linker.Names, ptr %t1, i64 %t5 call void @finch.drop.S_linker_Names(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond9796 -n.end9798: + br label %n.cond10201 +n.end10203: call void @finch_arr_free(ptr %a) ret void } @@ -99687,19 +103712,19 @@ entry: store %S.linker.Names zeroinitializer, ptr %a5 %t6 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t6, ptr %a7 - store { ptr, i64, i64 } { ptr @.str.6548, i64 1, i64 0 }, ptr %a9 + store { ptr, i64, i64 } { ptr @.str.6756, i64 1, i64 0 }, ptr %a9 call void @finch_str_split(ptr %a10, ptr %a7, ptr %a9) %t11 = load { ptr, i64, i64 }, ptr %a10 store { ptr, i64, i64 } %t11, ptr %a12 store i64 0, ptr %a13 - br label %each.cond9693 -each.cond9693: + br label %each.cond10098 +each.cond10098: %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %a12, i32 0, i32 1 %t15 = load i64, ptr %t14 %t16 = load i64, ptr %a13 %t17 = icmp slt i64 %t16, %t15 - br i1 %t17, label %each.body9694, label %each.end9696 -each.body9694: + br i1 %t17, label %each.body10099, label %each.end10101 +each.body10099: %t18 = load ptr, ptr %a12 %t19 = getelementptr inbounds { ptr, i64, i64 }, ptr %t18, i64 %t16 %t20 = load { ptr, i64, i64 }, ptr %t19 @@ -99711,113 +103736,113 @@ each.body9694: store { ptr, i64, i64 } %t25, ptr %a26 %t27 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t27, ptr %a28 - store { ptr, i64, i64 } { ptr @.str.6551, i64 24, i64 0 }, ptr %a30 + store { ptr, i64, i64 } { ptr @.str.6759, i64 24, i64 0 }, ptr %a30 %t31 = call i64 @finch_str_find(ptr %a28, ptr %a30) %t32 = icmp sge i64 %t31, 0 - br i1 %t32, label %then9697, label %else9698 -then9697: + br i1 %t32, label %then10102, label %else10103 +then10102: %t33 = load { ptr, i64, i64 }, ptr %a26 - %t34 = call { ptr, i64, i64 } @finch.linker.between({ ptr, i64, i64 } %t33, { ptr, i64, i64 } { ptr @.str.6552, i64 24, i64 0 }, { ptr, i64, i64 } { ptr @.str.6553, i64 1, i64 0 }) + %t34 = call { ptr, i64, i64 } @finch.linker.between({ ptr, i64, i64 } %t33, { ptr, i64, i64 } { ptr @.str.6760, i64 24, i64 0 }, { ptr, i64, i64 } { ptr @.str.6761, i64 1, i64 0 }) call void @finch.linker.Names.add(ptr %a4, { ptr, i64, i64 } %t34) store { ptr, i64, i64 } %t34, ptr %a35 call void @finch_str_drop(ptr %a35) - br label %endif9699 -else9698: + br label %endif10104 +else10103: %t36 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t36, ptr %a37 - store { ptr, i64, i64 } { ptr @.str.6555, i64 18, i64 0 }, ptr %a39 + store { ptr, i64, i64 } { ptr @.str.6763, i64 18, i64 0 }, ptr %a39 %t40 = call i64 @finch_str_find(ptr %a37, ptr %a39) %t41 = icmp sge i64 %t40, 0 - br i1 %t41, label %then9700, label %else9701 -then9700: + br i1 %t41, label %then10105, label %else10106 +then10105: %t42 = load { ptr, i64, i64 }, ptr %a26 - %t43 = call { ptr, i64, i64 } @finch.linker.between({ ptr, i64, i64 } %t42, { ptr, i64, i64 } { ptr @.str.6556, i64 18, i64 0 }, { ptr, i64, i64 } { ptr @.str.6557, i64 2, i64 0 }) + %t43 = call { ptr, i64, i64 } @finch.linker.between({ ptr, i64, i64 } %t42, { ptr, i64, i64 } { ptr @.str.6764, i64 18, i64 0 }, { ptr, i64, i64 } { ptr @.str.6765, i64 2, i64 0 }) call void @finch.linker.Names.add(ptr %a4, { ptr, i64, i64 } %t43) store { ptr, i64, i64 } %t43, ptr %a44 call void @finch_str_drop(ptr %a44) - br label %endif9702 -else9701: + br label %endif10107 +else10106: %t45 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t45, ptr %a46 - store { ptr, i64, i64 } { ptr @.str.6559, i64 27, i64 0 }, ptr %a48 + store { ptr, i64, i64 } { ptr @.str.6767, i64 27, i64 0 }, ptr %a48 %t49 = call i64 @finch_str_find(ptr %a46, ptr %a48) %t50 = icmp sge i64 %t49, 0 - br i1 %t50, label %then9703, label %else9704 -then9703: + br i1 %t50, label %then10108, label %else10109 +then10108: %t51 = load { ptr, i64, i64 }, ptr %a26 - %t52 = call { ptr, i64, i64 } @finch.linker.between({ ptr, i64, i64 } %t51, { ptr, i64, i64 } { ptr @.str.6560, i64 27, i64 0 }, { ptr, i64, i64 } { ptr @.str.6561, i64 3, i64 0 }) + %t52 = call { ptr, i64, i64 } @finch.linker.between({ ptr, i64, i64 } %t51, { ptr, i64, i64 } { ptr @.str.6768, i64 27, i64 0 }, { ptr, i64, i64 } { ptr @.str.6769, i64 3, i64 0 }) call void @finch.linker.Names.add(ptr %a4, { ptr, i64, i64 } %t52) store { ptr, i64, i64 } %t52, ptr %a53 call void @finch_str_drop(ptr %a53) - br label %endif9705 -else9704: + br label %endif10110 +else10109: %t54 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t54, ptr %a55 - store { ptr, i64, i64 } { ptr @.str.6563, i64 14, i64 0 }, ptr %a57 + store { ptr, i64, i64 } { ptr @.str.6771, i64 14, i64 0 }, ptr %a57 %t58 = call i64 @finch_str_find(ptr %a55, ptr %a57) %t59 = icmp sge i64 %t58, 0 - br i1 %t59, label %then9706, label %else9707 -then9706: + br i1 %t59, label %then10111, label %else10112 +then10111: %t60 = load { ptr, i64, i64 }, ptr %a26 - %t61 = call { ptr, i64, i64 } @finch.linker.between({ ptr, i64, i64 } %t60, { ptr, i64, i64 } { ptr @.str.6564, i64 14, i64 0 }, { ptr, i64, i64 } { ptr @.str.6565, i64 4, i64 0 }) + %t61 = call { ptr, i64, i64 } @finch.linker.between({ ptr, i64, i64 } %t60, { ptr, i64, i64 } { ptr @.str.6772, i64 14, i64 0 }, { ptr, i64, i64 } { ptr @.str.6773, i64 4, i64 0 }) call void @finch.linker.Names.add(ptr %a5, { ptr, i64, i64 } %t61) store { ptr, i64, i64 } %t61, ptr %a62 call void @finch_str_drop(ptr %a62) - br label %endif9708 -else9707: + br label %endif10113 +else10112: %t63 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t63, ptr %a64 - store { ptr, i64, i64 } { ptr @.str.6567, i64 24, i64 0 }, ptr %a66 + store { ptr, i64, i64 } { ptr @.str.6775, i64 24, i64 0 }, ptr %a66 %t67 = call i64 @finch_str_find(ptr %a64, ptr %a66) %t68 = icmp sge i64 %t67, 0 - br i1 %t68, label %then9709, label %else9710 -then9709: + br i1 %t68, label %then10114, label %else10115 +then10114: %t69 = load { ptr, i64, i64 }, ptr %a26 - %t70 = call { ptr, i64, i64 } @finch.linker.between({ ptr, i64, i64 } %t69, { ptr, i64, i64 } { ptr @.str.6568, i64 24, i64 0 }, { ptr, i64, i64 } { ptr @.str.6569, i64 4, i64 0 }) + %t70 = call { ptr, i64, i64 } @finch.linker.between({ ptr, i64, i64 } %t69, { ptr, i64, i64 } { ptr @.str.6776, i64 24, i64 0 }, { ptr, i64, i64 } { ptr @.str.6777, i64 4, i64 0 }) call void @finch.linker.Names.add(ptr %a5, { ptr, i64, i64 } %t70) store { ptr, i64, i64 } %t70, ptr %a71 call void @finch_str_drop(ptr %a71) - br label %endif9711 -else9710: + br label %endif10116 +else10115: %t72 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t72, ptr %a73 - store { ptr, i64, i64 } { ptr @.str.6571, i64 13, i64 0 }, ptr %a75 + store { ptr, i64, i64 } { ptr @.str.6779, i64 13, i64 0 }, ptr %a75 %t76 = call i64 @finch_str_find(ptr %a73, ptr %a75) %t77 = icmp sge i64 %t76, 0 - br i1 %t77, label %then9712, label %else9713 -then9712: + br i1 %t77, label %then10117, label %else10118 +then10117: %t78 = load { ptr, i64, i64 }, ptr %a26 - %t79 = call { ptr, i64, i64 } @finch.linker.between({ ptr, i64, i64 } %t78, { ptr, i64, i64 } { ptr @.str.6572, i64 13, i64 0 }, { ptr, i64, i64 } { ptr @.str.6573, i64 1, i64 0 }) + %t79 = call { ptr, i64, i64 } @finch.linker.between({ ptr, i64, i64 } %t78, { ptr, i64, i64 } { ptr @.str.6780, i64 13, i64 0 }, { ptr, i64, i64 } { ptr @.str.6781, i64 1, i64 0 }) call void @finch.linker.Names.add(ptr %a5, { ptr, i64, i64 } %t79) store { ptr, i64, i64 } %t79, ptr %a80 call void @finch_str_drop(ptr %a80) - br label %endif9714 -else9713: + br label %endif10119 +else10118: %t81 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t81, ptr %a82 - store { ptr, i64, i64 } { ptr @.str.6575, i64 11, i64 0 }, ptr %a84 + store { ptr, i64, i64 } { ptr @.str.6783, i64 11, i64 0 }, ptr %a84 %t85 = call i64 @finch_str_find(ptr %a82, ptr %a84) %t86 = icmp sge i64 %t85, 0 - br label %logic.from9715 -logic.from9715: - br i1 %t86, label %logic.rhs9716, label %logic.end9717 -logic.rhs9716: + br label %logic.from10120 +logic.from10120: + br i1 %t86, label %logic.rhs10121, label %logic.end10122 +logic.rhs10121: %t87 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t87, ptr %a88 - store { ptr, i64, i64 } { ptr @.str.6577, i64 9, i64 0 }, ptr %a90 + store { ptr, i64, i64 } { ptr @.str.6785, i64 9, i64 0 }, ptr %a90 %t91 = call i64 @finch_str_find(ptr %a88, ptr %a90) %t92 = icmp sge i64 %t91, 0 - br label %logic.rend9718 -logic.rend9718: - br label %logic.end9717 -logic.end9717: - %t93 = phi i1 [ false, %logic.from9715 ], [ %t92, %logic.rend9718 ] - br i1 %t93, label %then9719, label %else9720 -then9719: + br label %logic.rend10123 +logic.rend10123: + br label %logic.end10122 +logic.end10122: + %t93 = phi i1 [ false, %logic.from10120 ], [ %t92, %logic.rend10123 ] + br i1 %t93, label %then10124, label %else10125 +then10124: %t94 = load { ptr, i64, i64 }, ptr %a26 - %t95 = call { ptr, i64, i64 } @finch.linker.between({ ptr, i64, i64 } %t94, { ptr, i64, i64 } { ptr @.str.6578, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6579, i64 1, i64 0 }) + %t95 = call { ptr, i64, i64 } @finch.linker.between({ ptr, i64, i64 } %t94, { ptr, i64, i64 } { ptr @.str.6786, i64 11, i64 0 }, { ptr, i64, i64 } { ptr @.str.6787, i64 1, i64 0 }) store { ptr, i64, i64 } %t95, ptr %a97 - store { ptr, i64, i64 } { ptr @.str.6580, i64 10, i64 0 }, ptr %a98 + store { ptr, i64, i64 } { ptr @.str.6788, i64 10, i64 0 }, ptr %a98 call void @finch_str_concat(ptr %a96, ptr %a97, ptr %a98) store { ptr, i64, i64 } %t95, ptr %a99 call void @finch_str_drop(ptr %a99) @@ -99825,154 +103850,154 @@ then9719: call void @finch.linker.Names.add(ptr %a5, { ptr, i64, i64 } %t100) store { ptr, i64, i64 } %t100, ptr %a101 call void @finch_str_drop(ptr %a101) - br label %endif9721 -else9720: + br label %endif10126 +else10125: %t102 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t102, ptr %a103 - store { ptr, i64, i64 } { ptr @.str.6582, i64 1, i64 0 }, ptr %a105 + store { ptr, i64, i64 } { ptr @.str.6790, i64 1, i64 0 }, ptr %a105 %t106 = call i32 @finch_str_starts(ptr %a103, ptr %a105) %t107 = icmp ne i32 %t106, 0 - br label %logic.from9722 -logic.from9722: - br i1 %t107, label %logic.rhs9723, label %logic.end9724 -logic.rhs9723: + br label %logic.from10127 +logic.from10127: + br i1 %t107, label %logic.rhs10128, label %logic.end10129 +logic.rhs10128: %t108 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t108, ptr %a109 - store { ptr, i64, i64 } { ptr @.str.6584, i64 19, i64 0 }, ptr %a111 + store { ptr, i64, i64 } { ptr @.str.6792, i64 19, i64 0 }, ptr %a111 %t112 = call i64 @finch_str_find(ptr %a109, ptr %a111) %t113 = icmp sge i64 %t112, 0 - br label %logic.rend9725 -logic.rend9725: - br label %logic.end9724 -logic.end9724: - %t114 = phi i1 [ false, %logic.from9722 ], [ %t113, %logic.rend9725 ] - br i1 %t114, label %then9726, label %endif9728 -then9726: + br label %logic.rend10130 +logic.rend10130: + br label %logic.end10129 +logic.end10129: + %t114 = phi i1 [ false, %logic.from10127 ], [ %t113, %logic.rend10130 ] + br i1 %t114, label %then10131, label %endif10133 +then10131: %t115 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t115, ptr %a116 %t118 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t118, ptr %a119 - store { ptr, i64, i64 } { ptr @.str.6587, i64 19, i64 0 }, ptr %a121 + store { ptr, i64, i64 } { ptr @.str.6795, i64 19, i64 0 }, ptr %a121 %t122 = call i64 @finch_str_find(ptr %a119, ptr %a121) - call void @finch_str_sub(ptr %a117, ptr %a116, i64 1, i64 %t122, ptr @.str.6585, i64 111) + call void @finch_str_sub(ptr %a117, ptr %a116, i64 1, i64 %t122, ptr @.str.6793, i64 111) %t123 = load { ptr, i64, i64 }, ptr %a117 store { ptr, i64, i64 } %t123, ptr %a124 %t125 = getelementptr inbounds %S.platform.Target, ptr %a3, i32 0, i32 3 %t126 = load i1, ptr %t125 - br label %logic.from9729 -logic.from9729: - br i1 %t126, label %logic.rhs9730, label %logic.end9731 -logic.rhs9730: + br label %logic.from10134 +logic.from10134: + br i1 %t126, label %logic.rhs10135, label %logic.end10136 +logic.rhs10135: %t127 = load { ptr, i64, i64 }, ptr %a124 store { ptr, i64, i64 } %t127, ptr %a128 - store { ptr, i64, i64 } { ptr @.str.6589, i64 1, i64 0 }, ptr %a130 + store { ptr, i64, i64 } { ptr @.str.6797, i64 1, i64 0 }, ptr %a130 %t131 = call i32 @finch_str_starts(ptr %a128, ptr %a130) %t132 = icmp ne i32 %t131, 0 - br label %logic.rend9732 -logic.rend9732: - br label %logic.end9731 -logic.end9731: - %t133 = phi i1 [ false, %logic.from9729 ], [ %t132, %logic.rend9732 ] - br i1 %t133, label %then9733, label %endif9735 -then9733: + br label %logic.rend10137 +logic.rend10137: + br label %logic.end10136 +logic.end10136: + %t133 = phi i1 [ false, %logic.from10134 ], [ %t132, %logic.rend10137 ] + br i1 %t133, label %then10138, label %endif10140 +then10138: %t134 = load { ptr, i64, i64 }, ptr %a124 store { ptr, i64, i64 } %t134, ptr %a135 %t137 = getelementptr inbounds { ptr, i64, i64 }, ptr %a124, i32 0, i32 1 %t138 = load i64, ptr %t137 - call void @finch_str_sub(ptr %a136, ptr %a135, i64 1, i64 %t138, ptr @.str.6590, i64 113) + call void @finch_str_sub(ptr %a136, ptr %a135, i64 1, i64 %t138, ptr @.str.6798, i64 113) %t139 = load { ptr, i64, i64 }, ptr %a136 %t140 = load { ptr, i64, i64 }, ptr %a124 store { ptr, i64, i64 } %t139, ptr %a124 store { ptr, i64, i64 } %t140, ptr %a141 call void @finch_str_drop(ptr %a141) - br label %endif9735 -endif9735: + br label %endif10140 +endif10140: %t142 = load { ptr, i64, i64 }, ptr %a124 call void @finch.linker.Names.add(ptr %a4, { ptr, i64, i64 } %t142) call void @finch_str_drop(ptr %a124) - br label %endif9728 -endif9728: - br label %endif9721 -endif9721: - br label %endif9714 -endif9714: - br label %endif9711 -endif9711: - br label %endif9708 -endif9708: - br label %endif9705 -endif9705: - br label %endif9702 -endif9702: - br label %endif9699 -endif9699: + br label %endif10133 +endif10133: + br label %endif10126 +endif10126: + br label %endif10119 +endif10119: + br label %endif10116 +endif10116: + br label %endif10113 +endif10113: + br label %endif10110 +endif10110: + br label %endif10107 +endif10107: + br label %endif10104 +endif10104: call void @finch_str_drop(ptr %a26) - br label %each.step9695 -each.step9695: + br label %each.step10100 +each.step10100: %t143 = load i64, ptr %a13 %t144 = add i64 %t143, 1 store i64 %t144, ptr %a13 - br label %each.cond9693 -each.end9696: + br label %each.cond10098 +each.end10101: call void @finch.drop.arr_str(ptr %a12) %t145 = getelementptr inbounds %S.linker.Names, ptr %a4, i32 0, i32 0 %t146 = getelementptr inbounds { ptr, i64, i64 }, ptr %t145, i32 0, i32 1 %t147 = load i64, ptr %t146 %t148 = icmp eq i64 %t147, 0 - br label %logic.from9736 -logic.from9736: - br i1 %t148, label %logic.rhs9737, label %logic.end9738 -logic.rhs9737: + br label %logic.from10141 +logic.from10141: + br i1 %t148, label %logic.rhs10142, label %logic.end10143 +logic.rhs10142: %t149 = getelementptr inbounds %S.linker.Names, ptr %a5, i32 0, i32 0 %t150 = getelementptr inbounds { ptr, i64, i64 }, ptr %t149, i32 0, i32 1 %t151 = load i64, ptr %t150 %t152 = icmp eq i64 %t151, 0 - br label %logic.rend9739 -logic.rend9739: - br label %logic.end9738 -logic.end9738: - %t153 = phi i1 [ false, %logic.from9736 ], [ %t152, %logic.rend9739 ] - br i1 %t153, label %then9740, label %endif9742 -then9740: + br label %logic.rend10144 +logic.rend10144: + br label %logic.end10143 +logic.end10143: + %t153 = phi i1 [ false, %logic.from10141 ], [ %t152, %logic.rend10144 ] + br i1 %t153, label %then10145, label %endif10147 +then10145: %t154 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t154, ptr %a156 - store { ptr, i64, i64 } { ptr @.str.6591, i64 21, i64 0 }, ptr %a157 + store { ptr, i64, i64 } { ptr @.str.6799, i64 21, i64 0 }, ptr %a157 call void @finch_str_concat(ptr %a155, ptr %a156, ptr %a157) %t158 = load { ptr, i64, i64 }, ptr %a155 %t159 = extractvalue { ptr, i64, i64 } %t158, 1 %t160 = trunc i64 %t159 to i32 %t161 = extractvalue { ptr, i64, i64 } %t158, 0 %t162 = icmp eq ptr %t161, null - %t163 = select i1 %t162, ptr @.str.6592, ptr %t161 - %t164 = call i32 (ptr, ...) @printf(ptr @.str.6593, i32 %t160, ptr %t163) + %t163 = select i1 %t162, ptr @.str.6800, ptr %t161 + %t164 = call i32 (ptr, ...) @printf(ptr @.str.6801, i32 %t160, ptr %t163) store { ptr, i64, i64 } %t158, ptr %a165 call void @finch_str_drop(ptr %a165) - %t166 = call i32 (ptr, ...) @printf(ptr @.str.6594) + %t166 = call i32 (ptr, ...) @printf(ptr @.str.6802) call void @finch.drop.S_linker_Names(ptr %a5) call void @finch.drop.S_linker_Names(ptr %a4) ret i64 1 -endif9742: +endif10147: %t167 = getelementptr inbounds %S.linker.Names, ptr %a5, i32 0, i32 0 store i64 0, ptr %a168 - br label %each.cond9743 -each.cond9743: + br label %each.cond10148 +each.cond10148: %t169 = getelementptr inbounds { ptr, i64, i64 }, ptr %t167, i32 0, i32 1 %t170 = load i64, ptr %t169 %t171 = load i64, ptr %a168 %t172 = icmp slt i64 %t171, %t170 - br i1 %t172, label %each.body9744, label %each.end9746 -each.body9744: + br i1 %t172, label %each.body10149, label %each.end10151 +each.body10149: %t173 = load ptr, ptr %t167 %t174 = getelementptr inbounds { ptr, i64, i64 }, ptr %t173, i64 %t171 %t175 = load { ptr, i64, i64 }, ptr %t174 store { ptr, i64, i64 } %t175, ptr %a176 %t177 = load { ptr, i64, i64 }, ptr %a176 - store { ptr, i64, i64 } { ptr @.str.6595, i64 20, i64 0 }, ptr %a179 + store { ptr, i64, i64 } { ptr @.str.6803, i64 20, i64 0 }, ptr %a179 store { ptr, i64, i64 } %t177, ptr %a180 call void @finch_str_concat(ptr %a178, ptr %a179, ptr %a180) %t181 = load { ptr, i64, i64 }, ptr %a178 store { ptr, i64, i64 } %t181, ptr %a183 - store { ptr, i64, i64 } { ptr @.str.6596, i64 62, i64 0 }, ptr %a184 + store { ptr, i64, i64 } { ptr @.str.6804, i64 62, i64 0 }, ptr %a184 call void @finch_str_concat(ptr %a182, ptr %a183, ptr %a184) store { ptr, i64, i64 } %t181, ptr %a185 call void @finch_str_drop(ptr %a185) @@ -99981,55 +104006,55 @@ each.body9744: %t188 = trunc i64 %t187 to i32 %t189 = extractvalue { ptr, i64, i64 } %t186, 0 %t190 = icmp eq ptr %t189, null - %t191 = select i1 %t190, ptr @.str.6597, ptr %t189 - %t192 = call i32 (ptr, ...) @printf(ptr @.str.6598, i32 %t188, ptr %t191) + %t191 = select i1 %t190, ptr @.str.6805, ptr %t189 + %t192 = call i32 (ptr, ...) @printf(ptr @.str.6806, i32 %t188, ptr %t191) store { ptr, i64, i64 } %t186, ptr %a193 call void @finch_str_drop(ptr %a193) - %t194 = call i32 (ptr, ...) @printf(ptr @.str.6599) - br label %each.step9745 -each.step9745: + %t194 = call i32 (ptr, ...) @printf(ptr @.str.6807) + br label %each.step10150 +each.step10150: %t195 = load i64, ptr %a168 %t196 = add i64 %t195, 1 store i64 %t196, ptr %a168 - br label %each.cond9743 -each.end9746: + br label %each.cond10148 +each.end10151: store { ptr, i64, i64 } zeroinitializer, ptr %a197 store { ptr, i64, i64 } zeroinitializer, ptr %a198 %t199 = getelementptr inbounds %S.linker.Names, ptr %a4, i32 0, i32 0 store i64 0, ptr %a200 - br label %each.cond9747 -each.cond9747: + br label %each.cond10152 +each.cond10152: %t201 = getelementptr inbounds { ptr, i64, i64 }, ptr %t199, i32 0, i32 1 %t202 = load i64, ptr %t201 %t203 = load i64, ptr %a200 %t204 = icmp slt i64 %t203, %t202 - br i1 %t204, label %each.body9748, label %each.end9750 -each.body9748: + br i1 %t204, label %each.body10153, label %each.end10155 +each.body10153: %t205 = load ptr, ptr %t199 %t206 = getelementptr inbounds { ptr, i64, i64 }, ptr %t205, i64 %t203 %t207 = load { ptr, i64, i64 }, ptr %t206 store { ptr, i64, i64 } %t207, ptr %a208 - store { ptr, i64, i64 } { ptr @.str.6600, i64 0, i64 0 }, ptr %a209 + store { ptr, i64, i64 } { ptr @.str.6808, i64 0, i64 0 }, ptr %a209 %t210 = getelementptr inbounds %S.cimport.CImports, ptr %a2, i32 0, i32 0 %t211 = load { ptr, i64, i64 }, ptr %a208 store { ptr, i64, i64 } %t211, ptr %a212 %t213 = call i64 @finch_map_find(ptr %t210, ptr %a212, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t214 = icmp sge i64 %t213, 0 - br i1 %t214, label %then9751, label %endif9753 -then9751: + br i1 %t214, label %then10156, label %endif10158 +then10156: %t215 = getelementptr inbounds %S.cimport.CImports, ptr %a2, i32 0, i32 0 %t216 = load { ptr, i64, i64 }, ptr %a208 store { ptr, i64, i64 } %t216, ptr %a217 %t218 = call i64 @finch_map_find(ptr %t215, ptr %a217, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t219 = icmp slt i64 %t218, 0 - br i1 %t219, label %map.missing9754, label %map.found9755 -map.missing9754: + br i1 %t219, label %map.missing10159, label %map.found10160 +map.missing10159: store { ptr, i64, i64 } zeroinitializer, ptr %a220 store { ptr, i64, i64 } %t216, ptr %a221 call void @finch_buf_str(ptr %a220, ptr %a221, i32 1) - call void @finch_map_missing(ptr @.str.6601, i64 131, ptr %a220) + call void @finch_map_missing(ptr @.str.6809, i64 131, ptr %a220) unreachable -map.found9755: +map.found10160: %t222 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t215, i32 0, i32 0 %t223 = load ptr, ptr %t222 %t224 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.cimport.CFunc }, ptr %t223, i64 %t218 @@ -100043,41 +104068,41 @@ map.found9755: store { ptr, i64, i64 } %t230, ptr %a209 store { ptr, i64, i64 } %t231, ptr %a232 call void @finch_str_drop(ptr %a232) - br label %endif9753 -endif9753: + br label %endif10158 +endif10158: %t233 = getelementptr inbounds { ptr, i64, i64 }, ptr %a197, i32 0, i32 1 %t234 = load { ptr, i64, i64 }, ptr %a209 store i64 -1, ptr %a235 %t236 = load i64, ptr %t233 %t237 = load ptr, ptr %a197 store i64 0, ptr %a238 - br label %find.cond9756 -find.cond9756: + br label %find.cond10161 +find.cond10161: %t239 = load i64, ptr %a238 %t240 = icmp slt i64 %t239, %t236 - br i1 %t240, label %find.body9757, label %find.end9760 -find.body9757: + br i1 %t240, label %find.body10162, label %find.end10165 +find.body10162: %t241 = getelementptr inbounds { ptr, i64, i64 }, ptr %t237, i64 %t239 %t242 = load { ptr, i64, i64 }, ptr %t241 store { ptr, i64, i64 } %t242, ptr %a243 store { ptr, i64, i64 } %t234, ptr %a244 %t245 = call i32 @finch_str_eq(ptr %a243, ptr %a244) %t246 = icmp ne i32 %t245, 0 - br i1 %t246, label %find.hit9758, label %find.next9759 -find.hit9758: + br i1 %t246, label %find.hit10163, label %find.next10164 +find.hit10163: store i64 %t239, ptr %a235 - br label %find.end9760 -find.next9759: + br label %find.end10165 +find.next10164: %t247 = add i64 %t239, 1 store i64 %t247, ptr %a238 - br label %find.cond9756 -find.end9760: + br label %find.cond10161 +find.end10165: %t248 = load i64, ptr %a235 store i64 %t248, ptr %a249 %t250 = load i64, ptr %a249 %t251 = icmp slt i64 %t250, 0 - br i1 %t251, label %then9761, label %endif9763 -then9761: + br i1 %t251, label %then10166, label %endif10168 +then10166: %t252 = getelementptr inbounds { ptr, i64, i64 }, ptr %a197, i32 0, i32 1 %t253 = load { ptr, i64, i64 }, ptr %a209 store { ptr, i64, i64 } %t253, ptr %a254 @@ -100102,47 +104127,47 @@ then9761: %t267 = load i64, ptr %t266 %t268 = sub i64 %t267, 1 store i64 %t268, ptr %a249 - br label %endif9763 -endif9763: + br label %endif10168 +endif10168: %t269 = load i64, ptr %a249 %t270 = load { ptr, i64, i64 }, ptr %a198 %t271 = extractvalue { ptr, i64, i64 } %t270, 1 %t272 = icmp uge i64 %t269, %t271 - br i1 %t272, label %range9764, label %inrange9765 -range9764: - call void @finch_panic_index(ptr @.str.6602, i64 139, i64 %t269, i64 %t271) + br i1 %t272, label %range10169, label %inrange10170 +range10169: + call void @finch_panic_index(ptr @.str.6810, i64 139, i64 %t269, i64 %t271) unreachable -inrange9765: +inrange10170: %t273 = extractvalue { ptr, i64, i64 } %t270, 0 %t274 = getelementptr inbounds %S.linker.Names, ptr %t273, i64 %t269 %t275 = load { ptr, i64, i64 }, ptr %a208 call void @finch.linker.Names.add(ptr %t274, { ptr, i64, i64 } %t275) call void @finch_str_drop(ptr %a209) - br label %each.step9749 -each.step9749: + br label %each.step10154 +each.step10154: %t276 = load i64, ptr %a200 %t277 = add i64 %t276, 1 store i64 %t277, ptr %a200 - br label %each.cond9747 -each.end9750: + br label %each.cond10152 +each.end10155: %t278 = getelementptr inbounds { ptr, i64, i64 }, ptr %a197, i32 0, i32 1 %t279 = load i64, ptr %t278 store i64 0, ptr %a280 - br label %for.cond9766 -for.cond9766: + br label %for.cond10171 +for.cond10171: %t281 = load i64, ptr %a280 %t282 = icmp slt i64 %t281, %t279 - br i1 %t282, label %for.body9767, label %for.end9769 -for.body9767: + br i1 %t282, label %for.body10172, label %for.end10174 +for.body10172: %t283 = load i64, ptr %a280 %t284 = load { ptr, i64, i64 }, ptr %a198 %t285 = extractvalue { ptr, i64, i64 } %t284, 1 %t286 = icmp uge i64 %t283, %t285 - br i1 %t286, label %range9770, label %inrange9771 -range9770: - call void @finch_panic_index(ptr @.str.6603, i64 142, i64 %t283, i64 %t285) + br i1 %t286, label %range10175, label %inrange10176 +range10175: + call void @finch_panic_index(ptr @.str.6811, i64 142, i64 %t283, i64 %t285) unreachable -inrange9771: +inrange10176: %t287 = extractvalue { ptr, i64, i64 } %t284, 0 %t288 = getelementptr inbounds %S.linker.Names, ptr %t287, i64 %t283 %t289 = getelementptr inbounds %S.linker.Names, ptr %t288, i32 0, i32 0 @@ -100155,26 +104180,26 @@ inrange9771: %t296 = getelementptr inbounds { ptr, i64, i64 }, ptr %a294, i32 0, i32 1 %t297 = load i64, ptr %t296 store i64 0, ptr %a298 - br label %for.cond9772 -for.cond9772: + br label %for.cond10177 +for.cond10177: %t299 = load i64, ptr %a298 %t300 = icmp slt i64 %t299, %t297 - br i1 %t300, label %for.body9773, label %for.end9775 -for.body9773: + br i1 %t300, label %for.body10178, label %for.end10180 +for.body10178: %t301 = load i64, ptr %a298 %t302 = icmp slt i64 %t301, 3 - br i1 %t302, label %then9776, label %endif9778 -then9776: + br i1 %t302, label %then10181, label %endif10183 +then10181: %t303 = getelementptr inbounds { ptr, i64, i64 }, ptr %a295, i32 0, i32 1 %t304 = load i64, ptr %a298 %t305 = load { ptr, i64, i64 }, ptr %a294 %t306 = extractvalue { ptr, i64, i64 } %t305, 1 %t307 = icmp uge i64 %t304, %t306 - br i1 %t307, label %range9779, label %inrange9780 -range9779: - call void @finch_panic_index(ptr @.str.6604, i64 146, i64 %t304, i64 %t306) + br i1 %t307, label %range10184, label %inrange10185 +range10184: + call void @finch_panic_index(ptr @.str.6812, i64 146, i64 %t304, i64 %t306) unreachable -inrange9780: +inrange10185: %t308 = extractvalue { ptr, i64, i64 } %t305, 0 %t309 = getelementptr inbounds { ptr, i64, i64 }, ptr %t308, i64 %t304 %t310 = load { ptr, i64, i64 }, ptr %t309 @@ -100188,28 +104213,28 @@ inrange9780: %t317 = getelementptr inbounds { ptr, i64, i64 }, ptr %t316, i64 %t314 store { ptr, i64, i64 } %t313, ptr %t317 store i64 %t315, ptr %t303 - br label %endif9778 -endif9778: - br label %for.step9774 -for.step9774: + br label %endif10183 +endif10183: + br label %for.step10179 +for.step10179: %t318 = load i64, ptr %a298 %t319 = add i64 %t318, 1 store i64 %t319, ptr %a298 - br label %for.cond9772 -for.end9775: + br label %for.cond10177 +for.end10180: %t320 = getelementptr inbounds { ptr, i64, i64 }, ptr %a295, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.6605, i64 2, i64 0 }, ptr %a321 + store { ptr, i64, i64 } { ptr @.str.6813, i64 2, i64 0 }, ptr %a321 call void @finch_str_join(ptr %a322, ptr %a295, ptr %a321) %t323 = load { ptr, i64, i64 }, ptr %a322 store { ptr, i64, i64 } %t323, ptr %a324 %t325 = getelementptr inbounds { ptr, i64, i64 }, ptr %a294, i32 0, i32 1 %t326 = load i64, ptr %t325 %t327 = icmp sgt i64 %t326, 3 - br i1 %t327, label %then9781, label %endif9783 -then9781: + br i1 %t327, label %then10186, label %endif10188 +then10186: %t328 = load { ptr, i64, i64 }, ptr %a324 store { ptr, i64, i64 } %t328, ptr %a330 - store { ptr, i64, i64 } { ptr @.str.6606, i64 5, i64 0 }, ptr %a331 + store { ptr, i64, i64 } { ptr @.str.6814, i64 5, i64 0 }, ptr %a331 call void @finch_str_concat(ptr %a329, ptr %a330, ptr %a331) %t332 = load { ptr, i64, i64 }, ptr %a329 %t333 = getelementptr inbounds { ptr, i64, i64 }, ptr %a294, i32 0, i32 1 @@ -100226,7 +104251,7 @@ then9781: call void @finch_str_drop(ptr %a342) %t343 = load { ptr, i64, i64 }, ptr %a338 store { ptr, i64, i64 } %t343, ptr %a345 - store { ptr, i64, i64 } { ptr @.str.6607, i64 5, i64 0 }, ptr %a346 + store { ptr, i64, i64 } { ptr @.str.6815, i64 5, i64 0 }, ptr %a346 call void @finch_str_concat(ptr %a344, ptr %a345, ptr %a346) store { ptr, i64, i64 } %t343, ptr %a347 call void @finch_str_drop(ptr %a347) @@ -100235,26 +104260,26 @@ then9781: store { ptr, i64, i64 } %t348, ptr %a324 store { ptr, i64, i64 } %t349, ptr %a350 call void @finch_str_drop(ptr %a350) - br label %endif9783 -endif9783: + br label %endif10188 +endif10188: %t351 = load i64, ptr %a280 %t352 = load { ptr, i64, i64 }, ptr %a197 %t353 = extractvalue { ptr, i64, i64 } %t352, 1 %t354 = icmp uge i64 %t351, %t353 - br i1 %t354, label %range9784, label %inrange9785 -range9784: - call void @finch_panic_index(ptr @.str.6608, i64 153, i64 %t351, i64 %t353) + br i1 %t354, label %range10189, label %inrange10190 +range10189: + call void @finch_panic_index(ptr @.str.6816, i64 153, i64 %t351, i64 %t353) unreachable -inrange9785: +inrange10190: %t355 = extractvalue { ptr, i64, i64 } %t352, 0 %t356 = getelementptr inbounds { ptr, i64, i64 }, ptr %t355, i64 %t351 %t357 = getelementptr inbounds { ptr, i64, i64 }, ptr %t356, i32 0, i32 1 %t358 = load i64, ptr %t357 %t359 = icmp eq i64 %t358, 0 - br i1 %t359, label %then9786, label %endif9788 -then9786: + br i1 %t359, label %then10191, label %endif10193 +then10191: %t360 = load { ptr, i64, i64 }, ptr %a324 - store { ptr, i64, i64 } { ptr @.str.6609, i64 25, i64 0 }, ptr %a362 + store { ptr, i64, i64 } { ptr @.str.6817, i64 25, i64 0 }, ptr %a362 store { ptr, i64, i64 } %t360, ptr %a363 call void @finch_str_concat(ptr %a361, ptr %a362, ptr %a363) %t364 = load { ptr, i64, i64 }, ptr %a361 @@ -100262,35 +104287,35 @@ then9786: %t366 = trunc i64 %t365 to i32 %t367 = extractvalue { ptr, i64, i64 } %t364, 0 %t368 = icmp eq ptr %t367, null - %t369 = select i1 %t368, ptr @.str.6610, ptr %t367 - %t370 = call i32 (ptr, ...) @printf(ptr @.str.6611, i32 %t366, ptr %t369) + %t369 = select i1 %t368, ptr @.str.6818, ptr %t367 + %t370 = call i32 (ptr, ...) @printf(ptr @.str.6819, i32 %t366, ptr %t369) store { ptr, i64, i64 } %t364, ptr %a371 call void @finch_str_drop(ptr %a371) - %t372 = call i32 (ptr, ...) @printf(ptr @.str.6612) + %t372 = call i32 (ptr, ...) @printf(ptr @.str.6820) call void @finch_str_drop(ptr %a324) call void @finch.drop.arr_str(ptr %a295) call void @finch.drop.arr_str(ptr %a294) - br label %for.step9768 -endif9788: - store { ptr, i64, i64 } { ptr @.str.6613, i64 4, i64 0 }, ptr %a373 + br label %for.step10173 +endif10193: + store { ptr, i64, i64 } { ptr @.str.6821, i64 4, i64 0 }, ptr %a373 %t374 = getelementptr inbounds { ptr, i64, i64 }, ptr %a294, i32 0, i32 1 %t375 = load i64, ptr %t374 %t376 = icmp eq i64 %t375, 1 - br i1 %t376, label %then9789, label %endif9791 -then9789: + br i1 %t376, label %then10194, label %endif10196 +then10194: %t377 = load { ptr, i64, i64 }, ptr %a373 - store { ptr, i64, i64 } { ptr @.str.6614, i64 5, i64 0 }, ptr %a373 + store { ptr, i64, i64 } { ptr @.str.6822, i64 5, i64 0 }, ptr %a373 store { ptr, i64, i64 } %t377, ptr %a378 call void @finch_str_drop(ptr %a378) - br label %endif9791 -endif9791: + br label %endif10196 +endif10196: %t379 = load { ptr, i64, i64 }, ptr %a324 - store { ptr, i64, i64 } { ptr @.str.6615, i64 7, i64 0 }, ptr %a381 + store { ptr, i64, i64 } { ptr @.str.6823, i64 7, i64 0 }, ptr %a381 store { ptr, i64, i64 } %t379, ptr %a382 call void @finch_str_concat(ptr %a380, ptr %a381, ptr %a382) %t383 = load { ptr, i64, i64 }, ptr %a380 store { ptr, i64, i64 } %t383, ptr %a385 - store { ptr, i64, i64 } { ptr @.str.6616, i64 1, i64 0 }, ptr %a386 + store { ptr, i64, i64 } { ptr @.str.6824, i64 1, i64 0 }, ptr %a386 call void @finch_str_concat(ptr %a384, ptr %a385, ptr %a386) store { ptr, i64, i64 } %t383, ptr %a387 call void @finch_str_drop(ptr %a387) @@ -100303,7 +104328,7 @@ endif9791: call void @finch_str_drop(ptr %a393) %t394 = load { ptr, i64, i64 }, ptr %a390 store { ptr, i64, i64 } %t394, ptr %a396 - store { ptr, i64, i64 } { ptr @.str.6617, i64 7, i64 0 }, ptr %a397 + store { ptr, i64, i64 } { ptr @.str.6825, i64 7, i64 0 }, ptr %a397 call void @finch_str_concat(ptr %a395, ptr %a396, ptr %a397) store { ptr, i64, i64 } %t394, ptr %a398 call void @finch_str_drop(ptr %a398) @@ -100312,11 +104337,11 @@ endif9791: %t401 = load { ptr, i64, i64 }, ptr %a197 %t402 = extractvalue { ptr, i64, i64 } %t401, 1 %t403 = icmp uge i64 %t400, %t402 - br i1 %t403, label %range9792, label %inrange9793 -range9792: - call void @finch_panic_index(ptr @.str.6618, i64 161, i64 %t400, i64 %t402) + br i1 %t403, label %range10197, label %inrange10198 +range10197: + call void @finch_panic_index(ptr @.str.6826, i64 161, i64 %t400, i64 %t402) unreachable -inrange9793: +inrange10198: %t404 = extractvalue { ptr, i64, i64 } %t401, 0 %t405 = getelementptr inbounds { ptr, i64, i64 }, ptr %t404, i64 %t400 %t406 = load { ptr, i64, i64 }, ptr %t405 @@ -100327,7 +104352,7 @@ inrange9793: call void @finch_str_drop(ptr %a410) %t411 = load { ptr, i64, i64 }, ptr %a407 store { ptr, i64, i64 } %t411, ptr %a413 - store { ptr, i64, i64 } { ptr @.str.6619, i64 31, i64 0 }, ptr %a414 + store { ptr, i64, i64 } { ptr @.str.6827, i64 31, i64 0 }, ptr %a414 call void @finch_str_concat(ptr %a412, ptr %a413, ptr %a414) store { ptr, i64, i64 } %t411, ptr %a415 call void @finch_str_drop(ptr %a415) @@ -100336,53 +104361,53 @@ inrange9793: %t418 = trunc i64 %t417 to i32 %t419 = extractvalue { ptr, i64, i64 } %t416, 0 %t420 = icmp eq ptr %t419, null - %t421 = select i1 %t420, ptr @.str.6620, ptr %t419 - %t422 = call i32 (ptr, ...) @printf(ptr @.str.6621, i32 %t418, ptr %t421) + %t421 = select i1 %t420, ptr @.str.6828, ptr %t419 + %t422 = call i32 (ptr, ...) @printf(ptr @.str.6829, i32 %t418, ptr %t421) store { ptr, i64, i64 } %t416, ptr %a423 call void @finch_str_drop(ptr %a423) - %t424 = call i32 (ptr, ...) @printf(ptr @.str.6622) - %t425 = extractvalue { ptr, i64, i64 } { ptr @.str.6623, i64 74, i64 0 }, 1 + %t424 = call i32 (ptr, ...) @printf(ptr @.str.6830) + %t425 = extractvalue { ptr, i64, i64 } { ptr @.str.6831, i64 74, i64 0 }, 1 %t426 = trunc i64 %t425 to i32 - %t427 = extractvalue { ptr, i64, i64 } { ptr @.str.6623, i64 74, i64 0 }, 0 + %t427 = extractvalue { ptr, i64, i64 } { ptr @.str.6831, i64 74, i64 0 }, 0 %t428 = icmp eq ptr %t427, null - %t429 = select i1 %t428, ptr @.str.6624, ptr %t427 - %t430 = call i32 (ptr, ...) @printf(ptr @.str.6625, i32 %t426, ptr %t429) - %t431 = call i32 (ptr, ...) @printf(ptr @.str.6626) - %t432 = extractvalue { ptr, i64, i64 } { ptr @.str.6627, i64 66, i64 0 }, 1 + %t429 = select i1 %t428, ptr @.str.6832, ptr %t427 + %t430 = call i32 (ptr, ...) @printf(ptr @.str.6833, i32 %t426, ptr %t429) + %t431 = call i32 (ptr, ...) @printf(ptr @.str.6834) + %t432 = extractvalue { ptr, i64, i64 } { ptr @.str.6835, i64 66, i64 0 }, 1 %t433 = trunc i64 %t432 to i32 - %t434 = extractvalue { ptr, i64, i64 } { ptr @.str.6627, i64 66, i64 0 }, 0 + %t434 = extractvalue { ptr, i64, i64 } { ptr @.str.6835, i64 66, i64 0 }, 0 %t435 = icmp eq ptr %t434, null - %t436 = select i1 %t435, ptr @.str.6628, ptr %t434 - %t437 = call i32 (ptr, ...) @printf(ptr @.str.6629, i32 %t433, ptr %t436) - %t438 = call i32 (ptr, ...) @printf(ptr @.str.6630) - %t439 = extractvalue { ptr, i64, i64 } { ptr @.str.6631, i64 0, i64 0 }, 1 + %t436 = select i1 %t435, ptr @.str.6836, ptr %t434 + %t437 = call i32 (ptr, ...) @printf(ptr @.str.6837, i32 %t433, ptr %t436) + %t438 = call i32 (ptr, ...) @printf(ptr @.str.6838) + %t439 = extractvalue { ptr, i64, i64 } { ptr @.str.6839, i64 0, i64 0 }, 1 %t440 = trunc i64 %t439 to i32 - %t441 = extractvalue { ptr, i64, i64 } { ptr @.str.6631, i64 0, i64 0 }, 0 + %t441 = extractvalue { ptr, i64, i64 } { ptr @.str.6839, i64 0, i64 0 }, 0 %t442 = icmp eq ptr %t441, null - %t443 = select i1 %t442, ptr @.str.6632, ptr %t441 - %t444 = call i32 (ptr, ...) @printf(ptr @.str.6633, i32 %t440, ptr %t443) - %t445 = call i32 (ptr, ...) @printf(ptr @.str.6634) + %t443 = select i1 %t442, ptr @.str.6840, ptr %t441 + %t444 = call i32 (ptr, ...) @printf(ptr @.str.6841, i32 %t440, ptr %t443) + %t445 = call i32 (ptr, ...) @printf(ptr @.str.6842) %t446 = load i64, ptr %a280 %t447 = load { ptr, i64, i64 }, ptr %a197 %t448 = extractvalue { ptr, i64, i64 } %t447, 1 %t449 = icmp uge i64 %t446, %t448 - br i1 %t449, label %range9794, label %inrange9795 -range9794: - call void @finch_panic_index(ptr @.str.6636, i64 165, i64 %t446, i64 %t448) + br i1 %t449, label %range10199, label %inrange10200 +range10199: + call void @finch_panic_index(ptr @.str.6844, i64 165, i64 %t446, i64 %t448) unreachable -inrange9795: +inrange10200: %t450 = extractvalue { ptr, i64, i64 } %t447, 0 %t451 = getelementptr inbounds { ptr, i64, i64 }, ptr %t450, i64 %t446 %t452 = load { ptr, i64, i64 }, ptr %t451 %t453 = call { ptr, i64, i64 } @finch.linker.guessLib({ ptr, i64, i64 } %t452) - store { ptr, i64, i64 } { ptr @.str.6635, i64 12, i64 0 }, ptr %a455 + store { ptr, i64, i64 } { ptr @.str.6843, i64 12, i64 0 }, ptr %a455 store { ptr, i64, i64 } %t453, ptr %a456 call void @finch_str_concat(ptr %a454, ptr %a455, ptr %a456) store { ptr, i64, i64 } %t453, ptr %a457 call void @finch_str_drop(ptr %a457) %t458 = load { ptr, i64, i64 }, ptr %a454 store { ptr, i64, i64 } %t458, ptr %a460 - store { ptr, i64, i64 } { ptr @.str.6637, i64 1, i64 0 }, ptr %a461 + store { ptr, i64, i64 } { ptr @.str.6845, i64 1, i64 0 }, ptr %a461 call void @finch_str_concat(ptr %a459, ptr %a460, ptr %a461) store { ptr, i64, i64 } %t458, ptr %a462 call void @finch_str_drop(ptr %a462) @@ -100391,29 +104416,29 @@ inrange9795: %t465 = trunc i64 %t464 to i32 %t466 = extractvalue { ptr, i64, i64 } %t463, 0 %t467 = icmp eq ptr %t466, null - %t468 = select i1 %t467, ptr @.str.6638, ptr %t466 - %t469 = call i32 (ptr, ...) @printf(ptr @.str.6639, i32 %t465, ptr %t468) + %t468 = select i1 %t467, ptr @.str.6846, ptr %t466 + %t469 = call i32 (ptr, ...) @printf(ptr @.str.6847, i32 %t465, ptr %t468) store { ptr, i64, i64 } %t463, ptr %a470 call void @finch_str_drop(ptr %a470) - %t471 = call i32 (ptr, ...) @printf(ptr @.str.6640) - %t472 = extractvalue { ptr, i64, i64 } { ptr @.str.6641, i64 0, i64 0 }, 1 + %t471 = call i32 (ptr, ...) @printf(ptr @.str.6848) + %t472 = extractvalue { ptr, i64, i64 } { ptr @.str.6849, i64 0, i64 0 }, 1 %t473 = trunc i64 %t472 to i32 - %t474 = extractvalue { ptr, i64, i64 } { ptr @.str.6641, i64 0, i64 0 }, 0 + %t474 = extractvalue { ptr, i64, i64 } { ptr @.str.6849, i64 0, i64 0 }, 0 %t475 = icmp eq ptr %t474, null - %t476 = select i1 %t475, ptr @.str.6642, ptr %t474 - %t477 = call i32 (ptr, ...) @printf(ptr @.str.6643, i32 %t473, ptr %t476) - %t478 = call i32 (ptr, ...) @printf(ptr @.str.6644) + %t476 = select i1 %t475, ptr @.str.6850, ptr %t474 + %t477 = call i32 (ptr, ...) @printf(ptr @.str.6851, i32 %t473, ptr %t476) + %t478 = call i32 (ptr, ...) @printf(ptr @.str.6852) call void @finch_str_drop(ptr %a373) call void @finch_str_drop(ptr %a324) call void @finch.drop.arr_str(ptr %a295) call void @finch.drop.arr_str(ptr %a294) - br label %for.step9768 -for.step9768: + br label %for.step10173 +for.step10173: %t479 = load i64, ptr %a280 %t480 = add i64 %t479, 1 store i64 %t480, ptr %a280 - br label %for.cond9766 -for.end9769: + br label %for.cond10171 +for.end10174: call void @finch.drop.arr_S_linker_Names(ptr %a198) call void @finch.drop.arr_str(ptr %a197) call void @finch.drop.S_linker_Names(ptr %a5) @@ -100540,17 +104565,17 @@ entry: %t9 = icmp eq i32 %t8, 0 %t10 = load { ptr, i64, i64 }, ptr %a7 %t11 = load { ptr, i64, i64 }, ptr %a6 - br i1 %t9, label %try.failed9799, label %try.ok9800 -try.failed9799: + br i1 %t9, label %try.failed10204, label %try.ok10205 +try.failed10204: %t12 = insertvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t10, 2 ret { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t12 -try.ok9800: +try.ok10205: store { ptr, i64, i64 } %t11, ptr %a13 %t14 = call { ptr, i64, i64 } @finch.host.cacheDir() store { ptr, i64, i64 } %t14, ptr %a15 %t16 = load { ptr, i64, i64 }, ptr %a15 store { ptr, i64, i64 } %t16, ptr %a18 - store { ptr, i64, i64 } { ptr @.str.6645, i64 4, i64 0 }, ptr %a19 + store { ptr, i64, i64 } { ptr @.str.6853, i64 4, i64 0 }, ptr %a19 call void @finch_str_concat(ptr %a17, ptr %a18, ptr %a19) %t20 = load { ptr, i64, i64 }, ptr %a17 %t21 = load { ptr, i64, i64 }, ptr %a13 @@ -100568,7 +104593,7 @@ try.ok9800: call void @finch_str_drop(ptr %a32) %t33 = load { ptr, i64, i64 }, ptr %a29 store { ptr, i64, i64 } %t33, ptr %a35 - store { ptr, i64, i64 } { ptr @.str.6646, i64 3, i64 0 }, ptr %a36 + store { ptr, i64, i64 } { ptr @.str.6854, i64 3, i64 0 }, ptr %a36 call void @finch_str_concat(ptr %a34, ptr %a35, ptr %a36) store { ptr, i64, i64 } %t33, ptr %a37 call void @finch_str_drop(ptr %a37) @@ -100585,7 +104610,7 @@ try.ok9800: call void @finch_str_drop(ptr %a45) %t46 = load { ptr, i64, i64 }, ptr %a41 store { ptr, i64, i64 } %t46, ptr %a48 - store { ptr, i64, i64 } { ptr @.str.6647, i64 2, i64 0 }, ptr %a49 + store { ptr, i64, i64 } { ptr @.str.6855, i64 2, i64 0 }, ptr %a49 call void @finch_str_concat(ptr %a47, ptr %a48, ptr %a49) store { ptr, i64, i64 } %t46, ptr %a50 call void @finch_str_drop(ptr %a50) @@ -100595,20 +104620,20 @@ try.ok9800: store { ptr, i64, i64 } %t53, ptr %a54 %t55 = call i32 @finch_file_exists(ptr %a54) %t56 = icmp ne i32 %t55, 0 - br i1 %t56, label %then9801, label %endif9803 -then9801: + br i1 %t56, label %then10206, label %endif10208 +then10206: %t57 = load { ptr, i64, i64 }, ptr %a52 call void @finch_str_drop(ptr %a15) call void @finch_str_drop(ptr %a13) %t58 = insertvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 %t59 = insertvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t58, { ptr, i64, i64 } %t57, 1 ret { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t59 -endif9803: +endif10208: %t60 = load { ptr, i64, i64 }, ptr %a15 call void @finch.host.makeDirs({ ptr, i64, i64 } %t60) %t61 = load { ptr, i64, i64 }, ptr %a52 store { ptr, i64, i64 } %t61, ptr %a63 - store { ptr, i64, i64 } { ptr @.str.6648, i64 5, i64 0 }, ptr %a64 + store { ptr, i64, i64 } { ptr @.str.6856, i64 5, i64 0 }, ptr %a64 call void @finch_str_concat(ptr %a62, ptr %a63, ptr %a64) %t65 = load { ptr, i64, i64 }, ptr %a62 %t66 = call i64 @finch.host.pid() @@ -100623,26 +104648,26 @@ endif9803: call void @finch_str_drop(ptr %a73) %t74 = load { ptr, i64, i64 }, ptr %a69 store { ptr, i64, i64 } %t74, ptr %a75 - store { ptr, i64, i64 } { ptr @.str.6649, i64 6, i64 0 }, ptr %a76 + store { ptr, i64, i64 } { ptr @.str.6857, i64 6, i64 0 }, ptr %a76 %t77 = getelementptr inbounds %S.platform.Target, ptr %a2, i32 0, i32 1 %t78 = load i1, ptr %t77 - br i1 %t78, label %then9804, label %endif9806 -then9804: + br i1 %t78, label %then10209, label %endif10211 +then10209: %t79 = load { ptr, i64, i64 }, ptr %a76 - store { ptr, i64, i64 } { ptr @.str.6650, i64 0, i64 0 }, ptr %a76 + store { ptr, i64, i64 } { ptr @.str.6858, i64 0, i64 0 }, ptr %a76 store { ptr, i64, i64 } %t79, ptr %a80 call void @finch_str_drop(ptr %a80) - br label %endif9806 -endif9806: + br label %endif10211 +endif10211: %t81 = load { ptr, i64, i64 }, ptr %a75 store { ptr, i64, i64 } %t81, ptr %a83 - store { ptr, i64, i64 } { ptr @.str.6651, i64 4, i64 0 }, ptr %a84 + store { ptr, i64, i64 } { ptr @.str.6859, i64 4, i64 0 }, ptr %a84 call void @finch_str_concat(ptr %a82, ptr %a83, ptr %a84) %t85 = load { ptr, i64, i64 }, ptr %a82 store { ptr, i64, i64 } %t85, ptr %a86 %t87 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t87, ptr %a89 - store { ptr, i64, i64 } { ptr @.str.6652, i64 4, i64 0 }, ptr %a90 + store { ptr, i64, i64 } { ptr @.str.6860, i64 4, i64 0 }, ptr %a90 call void @finch_str_concat(ptr %a88, ptr %a89, ptr %a90) %t91 = load { ptr, i64, i64 }, ptr %a88 %t92 = load { ptr, i64, i64 }, ptr %a76 @@ -100653,7 +104678,7 @@ endif9806: call void @finch_str_drop(ptr %a96) %t97 = load { ptr, i64, i64 }, ptr %a93 store { ptr, i64, i64 } %t97, ptr %a99 - store { ptr, i64, i64 } { ptr @.str.6653, i64 4, i64 0 }, ptr %a100 + store { ptr, i64, i64 } { ptr @.str.6861, i64 4, i64 0 }, ptr %a100 call void @finch_str_concat(ptr %a98, ptr %a99, ptr %a100) store { ptr, i64, i64 } %t97, ptr %a101 call void @finch_str_drop(ptr %a101) @@ -100669,7 +104694,7 @@ endif9806: call void @finch_str_drop(ptr %a109) %t110 = load { ptr, i64, i64 }, ptr %a105 store { ptr, i64, i64 } %t110, ptr %a112 - store { ptr, i64, i64 } { ptr @.str.6654, i64 4, i64 0 }, ptr %a113 + store { ptr, i64, i64 } { ptr @.str.6862, i64 4, i64 0 }, ptr %a113 call void @finch_str_concat(ptr %a111, ptr %a112, ptr %a113) store { ptr, i64, i64 } %t110, ptr %a114 call void @finch_str_drop(ptr %a114) @@ -100685,7 +104710,7 @@ endif9806: call void @finch_str_drop(ptr %a122) %t123 = load { ptr, i64, i64 }, ptr %a118 store { ptr, i64, i64 } %t123, ptr %a125 - store { ptr, i64, i64 } { ptr @.str.6655, i64 3, i64 0 }, ptr %a126 + store { ptr, i64, i64 } { ptr @.str.6863, i64 3, i64 0 }, ptr %a126 call void @finch_str_concat(ptr %a124, ptr %a125, ptr %a126) store { ptr, i64, i64 } %t123, ptr %a127 call void @finch_str_drop(ptr %a127) @@ -100701,7 +104726,7 @@ endif9806: call void @finch_str_drop(ptr %a135) %t136 = load { ptr, i64, i64 }, ptr %a131 store { ptr, i64, i64 } %t136, ptr %a138 - store { ptr, i64, i64 } { ptr @.str.6656, i64 5, i64 0 }, ptr %a139 + store { ptr, i64, i64 } { ptr @.str.6864, i64 5, i64 0 }, ptr %a139 call void @finch_str_concat(ptr %a137, ptr %a138, ptr %a139) store { ptr, i64, i64 } %t136, ptr %a140 call void @finch_str_drop(ptr %a140) @@ -100712,8 +104737,8 @@ endif9806: store i64 %t142, ptr %a144 %t145 = load i64, ptr %a144 %t146 = icmp ne i64 %t145, 0 - br i1 %t146, label %then9807, label %endif9809 -then9807: + br i1 %t146, label %then10212, label %endif10214 +then10212: %t147 = load { ptr, i64, i64 }, ptr %a86 store { ptr, i64, i64 } %t147, ptr %a148 store { ptr, i64, i64 } zeroinitializer, ptr %a149 @@ -100722,17 +104747,17 @@ then9807: %t152 = icmp eq i32 %t151, 0 %t153 = load { ptr, i64, i64 }, ptr %a150 %t154 = load { ptr, i64, i64 }, ptr %a149 - br i1 %t152, label %or.failed9810, label %or.ok9811 -or.failed9810: + br i1 %t152, label %or.failed10215, label %or.ok10216 +or.failed10215: store { ptr, i64, i64 } %t153, ptr %a155 call void @finch_str_drop(ptr %a155) - br label %or.bend9812 -or.bend9812: - br label %or.end9813 -or.ok9811: - br label %or.end9813 -or.end9813: - %t156 = phi { ptr, i64, i64 } [ { ptr @.str.6657, i64 0, i64 0 }, %or.bend9812 ], [ %t154, %or.ok9811 ] + br label %or.bend10217 +or.bend10217: + br label %or.end10218 +or.ok10216: + br label %or.end10218 +or.end10218: + %t156 = phi { ptr, i64, i64 } [ { ptr @.str.6865, i64 0, i64 0 }, %or.bend10217 ], [ %t154, %or.ok10216 ] store { ptr, i64, i64 } %t156, ptr %a157 %t158 = load { ptr, i64, i64 }, ptr %a75 call void @finch.host.remove({ ptr, i64, i64 } %t158) @@ -100740,7 +104765,7 @@ or.end9813: call void @finch.host.remove({ ptr, i64, i64 } %t159) %t160 = load { ptr, i64, i64 }, ptr %a157 store { ptr, i64, i64 } %t160, ptr %a162 - store { ptr, i64, i64 } { ptr @.str.6658, i64 46, i64 0 }, ptr %a163 + store { ptr, i64, i64 } { ptr @.str.6866, i64 46, i64 0 }, ptr %a163 call void @finch_str_concat(ptr %a161, ptr %a162, ptr %a163) %t164 = load { ptr, i64, i64 }, ptr %a161 %t165 = load { ptr, i64, i64 }, ptr %a3 @@ -100751,7 +104776,7 @@ or.end9813: call void @finch_str_drop(ptr %a169) %t170 = load { ptr, i64, i64 }, ptr %a166 store { ptr, i64, i64 } %t170, ptr %a172 - store { ptr, i64, i64 } { ptr @.str.6659, i64 30, i64 0 }, ptr %a173 + store { ptr, i64, i64 } { ptr @.str.6867, i64 30, i64 0 }, ptr %a173 call void @finch_str_concat(ptr %a171, ptr %a172, ptr %a173) store { ptr, i64, i64 } %t170, ptr %a174 call void @finch_str_drop(ptr %a174) @@ -100765,7 +104790,7 @@ or.end9813: call void @finch_str_drop(ptr %a13) %t176 = insertvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t175, 2 ret { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t176 -endif9809: +endif10214: %t177 = load { ptr, i64, i64 }, ptr %a86 call void @finch.host.remove({ ptr, i64, i64 } %t177) %t178 = load { ptr, i64, i64 }, ptr %a75 @@ -101058,9 +105083,9 @@ entry: store %S.linker.Build %p0, ptr %a1 store %S.platform.Target %p1, ptr %a2 store %S.cimport.CImports %p2, ptr %a3 - %t4 = extractvalue { ptr, i64, i64 } { ptr @.str.6660, i64 11, i64 0 }, 0 + %t4 = extractvalue { ptr, i64, i64 } { ptr @.str.6868, i64 11, i64 0 }, 0 %t5 = icmp eq ptr %t4, null - %t6 = select i1 %t5, ptr @.str.6661, ptr %t4 + %t6 = select i1 %t5, ptr @.str.6869, ptr %t4 %t7 = call ptr @getenv(ptr %t6) store { ptr, i64, i64 } zeroinitializer, ptr %a8 call void @finch_str_from_c(ptr %a8, ptr %t7) @@ -101072,14 +105097,14 @@ entry: %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %a13, i32 0, i32 1 %t15 = load i64, ptr %t14 %t16 = icmp eq i64 %t15, 0 - br i1 %t16, label %then9814, label %endif9816 -then9814: + br i1 %t16, label %then10219, label %endif10221 +then10219: %t17 = load { ptr, i64, i64 }, ptr %a13 - store { ptr, i64, i64 } { ptr @.str.6662, i64 5, i64 0 }, ptr %a13 + store { ptr, i64, i64 } { ptr @.str.6870, i64 5, i64 0 }, ptr %a13 store { ptr, i64, i64 } %t17, ptr %a18 call void @finch_str_drop(ptr %a18) - br label %endif9816 -endif9816: + br label %endif10221 +endif10221: %t19 = load { ptr, i64, i64 }, ptr %a13 store { ptr, i64, i64 } %t19, ptr %a20 call void @finch_str_copy(ptr %a21, ptr %a20) @@ -101087,8 +105112,8 @@ endif9816: store { ptr, i64, i64 } %t22, ptr %a23 %t24 = getelementptr inbounds %S.platform.Target, ptr %a2, i32 0, i32 5 %t25 = load i1, ptr %t24 - br i1 %t25, label %then9817, label %else9818 -then9817: + br i1 %t25, label %then10222, label %else10223 +then10222: %t26 = getelementptr inbounds %S.platform.Target, ptr %a2, i32 0, i32 7 %t27 = load { ptr, i64, i64 }, ptr %t26 store { ptr, i64, i64 } %t27, ptr %a28 @@ -101098,22 +105123,22 @@ then9817: store { ptr, i64, i64 } %t30, ptr %a23 store { ptr, i64, i64 } %t31, ptr %a32 call void @finch_str_drop(ptr %a32) - br label %endif9819 -else9818: - %t33 = extractvalue { ptr, i64, i64 } { ptr @.str.6663, i64 8, i64 0 }, 0 + br label %endif10224 +else10223: + %t33 = extractvalue { ptr, i64, i64 } { ptr @.str.6871, i64 8, i64 0 }, 0 %t34 = icmp eq ptr %t33, null - %t35 = select i1 %t34, ptr @.str.6664, ptr %t33 + %t35 = select i1 %t34, ptr @.str.6872, ptr %t33 %t36 = call ptr @getenv(ptr %t35) store { ptr, i64, i64 } zeroinitializer, ptr %a37 call void @finch_str_from_c(ptr %a37, ptr %t36) %t38 = load { ptr, i64, i64 }, ptr %a37 %t39 = extractvalue { ptr, i64, i64 } %t38, 1 %t40 = icmp sgt i64 %t39, 0 - br i1 %t40, label %then9820, label %endif9822 -then9820: - %t41 = extractvalue { ptr, i64, i64 } { ptr @.str.6665, i64 8, i64 0 }, 0 + br i1 %t40, label %then10225, label %endif10227 +then10225: + %t41 = extractvalue { ptr, i64, i64 } { ptr @.str.6873, i64 8, i64 0 }, 0 %t42 = icmp eq ptr %t41, null - %t43 = select i1 %t42, ptr @.str.6666, ptr %t41 + %t43 = select i1 %t42, ptr @.str.6874, ptr %t41 %t44 = call ptr @getenv(ptr %t43) store { ptr, i64, i64 } zeroinitializer, ptr %a45 call void @finch_str_from_c(ptr %a45, ptr %t44) @@ -101125,10 +105150,10 @@ then9820: store { ptr, i64, i64 } %t49, ptr %a23 store { ptr, i64, i64 } %t50, ptr %a51 call void @finch_str_drop(ptr %a51) - br label %endif9822 -endif9822: - br label %endif9819 -endif9819: + br label %endif10227 +endif10227: + br label %endif10224 +endif10224: %t52 = getelementptr inbounds %S.linker.Build, ptr %a1, i32 0, i32 2 %t53 = load { ptr, i64, i64 }, ptr %t52 %t54 = load %S.platform.Target, ptr %a2 @@ -101138,34 +105163,34 @@ endif9819: %t58 = xor i1 %t57, true %t59 = extractvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t56, 2 %t60 = extractvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t56, 1 - br i1 %t58, label %or.failed9823, label %or.ok9824 -or.failed9823: + br i1 %t58, label %or.failed10228, label %or.ok10229 +or.failed10228: store { ptr, i64, i64 } %t59, ptr %a61 %t62 = load { ptr, i64, i64 }, ptr %a61 %t63 = extractvalue { ptr, i64, i64 } %t62, 1 %t64 = trunc i64 %t63 to i32 %t65 = extractvalue { ptr, i64, i64 } %t62, 0 %t66 = icmp eq ptr %t65, null - %t67 = select i1 %t66, ptr @.str.6667, ptr %t65 - %t68 = call i32 (ptr, ...) @printf(ptr @.str.6668, i32 %t64, ptr %t67) - %t69 = call i32 (ptr, ...) @printf(ptr @.str.6669) + %t67 = select i1 %t66, ptr @.str.6875, ptr %t65 + %t68 = call i32 (ptr, ...) @printf(ptr @.str.6876, i32 %t64, ptr %t67) + %t69 = call i32 (ptr, ...) @printf(ptr @.str.6877) call void @finch_str_drop(ptr %a61) call void @finch_str_drop(ptr %a23) call void @finch_str_drop(ptr %a13) ret i64 1 -or.ok9824: +or.ok10229: store { ptr, i64, i64 } %t60, ptr %a70 %t71 = getelementptr inbounds %S.linker.Build, ptr %a1, i32 0, i32 0 %t72 = load { ptr, i64, i64 }, ptr %t71 store { ptr, i64, i64 } %t72, ptr %a74 - store { ptr, i64, i64 } { ptr @.str.6670, i64 3, i64 0 }, ptr %a75 + store { ptr, i64, i64 } { ptr @.str.6878, i64 3, i64 0 }, ptr %a75 call void @finch_str_concat(ptr %a73, ptr %a74, ptr %a75) %t76 = load { ptr, i64, i64 }, ptr %a73 store { ptr, i64, i64 } %t76, ptr %a77 %t78 = getelementptr inbounds %S.linker.Build, ptr %a1, i32 0, i32 0 %t79 = load { ptr, i64, i64 }, ptr %t78 store { ptr, i64, i64 } %t79, ptr %a81 - store { ptr, i64, i64 } { ptr @.str.6671, i64 2, i64 0 }, ptr %a82 + store { ptr, i64, i64 } { ptr @.str.6879, i64 2, i64 0 }, ptr %a82 call void @finch_str_concat(ptr %a80, ptr %a81, ptr %a82) %t83 = load { ptr, i64, i64 }, ptr %a80 store { ptr, i64, i64 } %t83, ptr %a84 @@ -101176,14 +105201,14 @@ or.ok9824: store { ptr, i64, i64 } %t87, ptr %a89 %t90 = call i32 @finch_write_file(ptr %a88, ptr %a89) %t91 = icmp ne i32 %t90, 0 - store { ptr, i64, i64 } { ptr @.str.6672, i64 0, i64 0 }, ptr %a92 + store { ptr, i64, i64 } { ptr @.str.6880, i64 0, i64 0 }, ptr %a92 %t93 = getelementptr inbounds %S.platform.Target, ptr %a2, i32 0, i32 5 %t94 = load i1, ptr %t93 - br i1 %t94, label %then9825, label %endif9827 -then9825: + br i1 %t94, label %then10230, label %endif10232 +then10230: %t95 = getelementptr inbounds %S.platform.Target, ptr %a2, i32 0, i32 0 %t96 = load { ptr, i64, i64 }, ptr %t95 - store { ptr, i64, i64 } { ptr @.str.6673, i64 10, i64 0 }, ptr %a98 + store { ptr, i64, i64 } { ptr @.str.6881, i64 10, i64 0 }, ptr %a98 store { ptr, i64, i64 } %t96, ptr %a99 call void @finch_str_concat(ptr %a97, ptr %a98, ptr %a99) %t100 = load { ptr, i64, i64 }, ptr %a97 @@ -101191,12 +105216,12 @@ then9825: store { ptr, i64, i64 } %t100, ptr %a92 store { ptr, i64, i64 } %t101, ptr %a102 call void @finch_str_drop(ptr %a102) - br label %endif9827 -endif9827: + br label %endif10232 +endif10232: %t103 = getelementptr inbounds %S.linker.Build, ptr %a1, i32 0, i32 0 %t104 = load { ptr, i64, i64 }, ptr %t103 store { ptr, i64, i64 } %t104, ptr %a106 - store { ptr, i64, i64 } { ptr @.str.6674, i64 4, i64 0 }, ptr %a107 + store { ptr, i64, i64 } { ptr @.str.6882, i64 4, i64 0 }, ptr %a107 call void @finch_str_concat(ptr %a105, ptr %a106, ptr %a107) %t108 = load { ptr, i64, i64 }, ptr %a105 store { ptr, i64, i64 } %t108, ptr %a109 @@ -101207,7 +105232,7 @@ endif9827: call void @finch_str_concat(ptr %a112, ptr %a113, ptr %a114) %t115 = load { ptr, i64, i64 }, ptr %a112 store { ptr, i64, i64 } %t115, ptr %a117 - store { ptr, i64, i64 } { ptr @.str.6675, i64 1, i64 0 }, ptr %a118 + store { ptr, i64, i64 } { ptr @.str.6883, i64 1, i64 0 }, ptr %a118 call void @finch_str_concat(ptr %a116, ptr %a117, ptr %a118) store { ptr, i64, i64 } %t115, ptr %a119 call void @finch_str_drop(ptr %a119) @@ -101229,7 +105254,7 @@ endif9827: call void @finch_str_drop(ptr %a133) %t134 = load { ptr, i64, i64 }, ptr %a130 store { ptr, i64, i64 } %t134, ptr %a136 - store { ptr, i64, i64 } { ptr @.str.6676, i64 7, i64 0 }, ptr %a137 + store { ptr, i64, i64 } { ptr @.str.6884, i64 7, i64 0 }, ptr %a137 call void @finch_str_concat(ptr %a135, ptr %a136, ptr %a137) store { ptr, i64, i64 } %t134, ptr %a138 call void @finch_str_drop(ptr %a138) @@ -101245,7 +105270,7 @@ endif9827: call void @finch_str_drop(ptr %a146) %t147 = load { ptr, i64, i64 }, ptr %a142 store { ptr, i64, i64 } %t147, ptr %a149 - store { ptr, i64, i64 } { ptr @.str.6677, i64 4, i64 0 }, ptr %a150 + store { ptr, i64, i64 } { ptr @.str.6885, i64 4, i64 0 }, ptr %a150 call void @finch_str_concat(ptr %a148, ptr %a149, ptr %a150) store { ptr, i64, i64 } %t147, ptr %a151 call void @finch_str_drop(ptr %a151) @@ -101261,7 +105286,7 @@ endif9827: call void @finch_str_drop(ptr %a159) %t160 = load { ptr, i64, i64 }, ptr %a155 store { ptr, i64, i64 } %t160, ptr %a162 - store { ptr, i64, i64 } { ptr @.str.6678, i64 3, i64 0 }, ptr %a163 + store { ptr, i64, i64 } { ptr @.str.6886, i64 3, i64 0 }, ptr %a163 call void @finch_str_concat(ptr %a161, ptr %a162, ptr %a163) store { ptr, i64, i64 } %t160, ptr %a164 call void @finch_str_drop(ptr %a164) @@ -101277,7 +105302,7 @@ endif9827: call void @finch_str_drop(ptr %a172) %t173 = load { ptr, i64, i64 }, ptr %a168 store { ptr, i64, i64 } %t173, ptr %a175 - store { ptr, i64, i64 } { ptr @.str.6679, i64 5, i64 0 }, ptr %a176 + store { ptr, i64, i64 } { ptr @.str.6887, i64 5, i64 0 }, ptr %a176 call void @finch_str_concat(ptr %a174, ptr %a175, ptr %a176) store { ptr, i64, i64 } %t173, ptr %a177 call void @finch_str_drop(ptr %a177) @@ -101290,8 +105315,8 @@ endif9827: call void @finch.host.remove({ ptr, i64, i64 } %t182) %t183 = load i64, ptr %a181 %t184 = icmp ne i64 %t183, 0 - br i1 %t184, label %then9828, label %endif9830 -then9828: + br i1 %t184, label %then10233, label %endif10235 +then10233: %t185 = load { ptr, i64, i64 }, ptr %a109 store { ptr, i64, i64 } %t185, ptr %a186 store { ptr, i64, i64 } zeroinitializer, ptr %a187 @@ -101300,33 +105325,33 @@ then9828: %t190 = icmp eq i32 %t189, 0 %t191 = load { ptr, i64, i64 }, ptr %a188 %t192 = load { ptr, i64, i64 }, ptr %a187 - br i1 %t190, label %or.failed9831, label %or.ok9832 -or.failed9831: + br i1 %t190, label %or.failed10236, label %or.ok10237 +or.failed10236: store { ptr, i64, i64 } %t191, ptr %a193 call void @finch_str_drop(ptr %a193) - br label %or.bend9833 -or.bend9833: - br label %or.end9834 -or.ok9832: - br label %or.end9834 -or.end9834: - %t194 = phi { ptr, i64, i64 } [ { ptr @.str.6680, i64 0, i64 0 }, %or.bend9833 ], [ %t192, %or.ok9832 ] + br label %or.bend10238 +or.bend10238: + br label %or.end10239 +or.ok10237: + br label %or.end10239 +or.end10239: + %t194 = phi { ptr, i64, i64 } [ { ptr @.str.6888, i64 0, i64 0 }, %or.bend10238 ], [ %t192, %or.ok10237 ] %t195 = extractvalue { ptr, i64, i64 } %t194, 1 %t196 = trunc i64 %t195 to i32 %t197 = extractvalue { ptr, i64, i64 } %t194, 0 %t198 = icmp eq ptr %t197, null - %t199 = select i1 %t198, ptr @.str.6681, ptr %t197 - %t200 = call i32 (ptr, ...) @printf(ptr @.str.6682, i32 %t196, ptr %t199) + %t199 = select i1 %t198, ptr @.str.6889, ptr %t197 + %t200 = call i32 (ptr, ...) @printf(ptr @.str.6890, i32 %t196, ptr %t199) store { ptr, i64, i64 } %t194, ptr %a201 call void @finch_str_drop(ptr %a201) - %t202 = call i32 (ptr, ...) @printf(ptr @.str.6683) - %t203 = extractvalue { ptr, i64, i64 } { ptr @.str.6684, i64 46, i64 0 }, 1 + %t202 = call i32 (ptr, ...) @printf(ptr @.str.6891) + %t203 = extractvalue { ptr, i64, i64 } { ptr @.str.6892, i64 46, i64 0 }, 1 %t204 = trunc i64 %t203 to i32 - %t205 = extractvalue { ptr, i64, i64 } { ptr @.str.6684, i64 46, i64 0 }, 0 + %t205 = extractvalue { ptr, i64, i64 } { ptr @.str.6892, i64 46, i64 0 }, 0 %t206 = icmp eq ptr %t205, null - %t207 = select i1 %t206, ptr @.str.6685, ptr %t205 - %t208 = call i32 (ptr, ...) @printf(ptr @.str.6686, i32 %t204, ptr %t207) - %t209 = call i32 (ptr, ...) @printf(ptr @.str.6687) + %t207 = select i1 %t206, ptr @.str.6893, ptr %t205 + %t208 = call i32 (ptr, ...) @printf(ptr @.str.6894, i32 %t204, ptr %t207) + %t209 = call i32 (ptr, ...) @printf(ptr @.str.6895) %t210 = load { ptr, i64, i64 }, ptr %a84 call void @finch.host.remove({ ptr, i64, i64 } %t210) %t211 = load { ptr, i64, i64 }, ptr %a109 @@ -101339,10 +105364,10 @@ or.end9834: call void @finch_str_drop(ptr %a23) call void @finch_str_drop(ptr %a13) ret i64 1 -endif9830: +endif10235: %t212 = load { ptr, i64, i64 }, ptr %a23 store { ptr, i64, i64 } %t212, ptr %a214 - store { ptr, i64, i64 } { ptr @.str.6688, i64 1, i64 0 }, ptr %a215 + store { ptr, i64, i64 } { ptr @.str.6896, i64 1, i64 0 }, ptr %a215 call void @finch_str_concat(ptr %a213, ptr %a214, ptr %a215) %t216 = load { ptr, i64, i64 }, ptr %a213 %t217 = load { ptr, i64, i64 }, ptr %a84 @@ -101356,7 +105381,7 @@ endif9830: call void @finch_str_drop(ptr %a223) %t224 = load { ptr, i64, i64 }, ptr %a219 store { ptr, i64, i64 } %t224, ptr %a226 - store { ptr, i64, i64 } { ptr @.str.6689, i64 1, i64 0 }, ptr %a227 + store { ptr, i64, i64 } { ptr @.str.6897, i64 1, i64 0 }, ptr %a227 call void @finch_str_concat(ptr %a225, ptr %a226, ptr %a227) store { ptr, i64, i64 } %t224, ptr %a228 call void @finch_str_drop(ptr %a228) @@ -101372,7 +105397,7 @@ endif9830: call void @finch_str_drop(ptr %a236) %t237 = load { ptr, i64, i64 }, ptr %a232 store { ptr, i64, i64 } %t237, ptr %a239 - store { ptr, i64, i64 } { ptr @.str.6690, i64 4, i64 0 }, ptr %a240 + store { ptr, i64, i64 } { ptr @.str.6898, i64 4, i64 0 }, ptr %a240 call void @finch_str_concat(ptr %a238, ptr %a239, ptr %a240) store { ptr, i64, i64 } %t237, ptr %a241 call void @finch_str_drop(ptr %a241) @@ -101392,77 +105417,77 @@ endif9830: %t253 = getelementptr inbounds %S.platform.Target, ptr %a2, i32 0, i32 2 %t254 = load i1, ptr %t253 %t255 = xor i1 %t254, true - br i1 %t255, label %then9835, label %endif9837 -then9835: + br i1 %t255, label %then10240, label %endif10242 +then10240: %t256 = load { ptr, i64, i64 }, ptr %a252 store { ptr, i64, i64 } %t256, ptr %a258 - store { ptr, i64, i64 } { ptr @.str.6691, i64 4, i64 0 }, ptr %a259 + store { ptr, i64, i64 } { ptr @.str.6899, i64 4, i64 0 }, ptr %a259 call void @finch_str_concat(ptr %a257, ptr %a258, ptr %a259) %t260 = load { ptr, i64, i64 }, ptr %a257 %t261 = load { ptr, i64, i64 }, ptr %a252 store { ptr, i64, i64 } %t260, ptr %a252 store { ptr, i64, i64 } %t261, ptr %a262 call void @finch_str_drop(ptr %a262) - br label %endif9837 -endif9837: + br label %endif10242 +endif10242: %t263 = getelementptr inbounds %S.linker.Build, ptr %a1, i32 0, i32 5 %t264 = load i1, ptr %t263 - br i1 %t264, label %then9838, label %endif9840 -then9838: + br i1 %t264, label %then10243, label %endif10245 +then10243: %t265 = getelementptr inbounds %S.platform.Target, ptr %a2, i32 0, i32 3 %t266 = load i1, ptr %t265 - br i1 %t266, label %then9841, label %else9842 -then9841: + br i1 %t266, label %then10246, label %else10247 +then10246: %t267 = load { ptr, i64, i64 }, ptr %a252 store { ptr, i64, i64 } %t267, ptr %a269 - store { ptr, i64, i64 } { ptr @.str.6692, i64 12, i64 0 }, ptr %a270 + store { ptr, i64, i64 } { ptr @.str.6900, i64 12, i64 0 }, ptr %a270 call void @finch_str_concat(ptr %a268, ptr %a269, ptr %a270) %t271 = load { ptr, i64, i64 }, ptr %a268 %t272 = load { ptr, i64, i64 }, ptr %a252 store { ptr, i64, i64 } %t271, ptr %a252 store { ptr, i64, i64 } %t272, ptr %a273 call void @finch_str_drop(ptr %a273) - br label %endif9843 -else9842: + br label %endif10248 +else10247: %t274 = load { ptr, i64, i64 }, ptr %a252 store { ptr, i64, i64 } %t274, ptr %a276 - store { ptr, i64, i64 } { ptr @.str.6693, i64 8, i64 0 }, ptr %a277 + store { ptr, i64, i64 } { ptr @.str.6901, i64 8, i64 0 }, ptr %a277 call void @finch_str_concat(ptr %a275, ptr %a276, ptr %a277) %t278 = load { ptr, i64, i64 }, ptr %a275 %t279 = load { ptr, i64, i64 }, ptr %a252 store { ptr, i64, i64 } %t278, ptr %a252 store { ptr, i64, i64 } %t279, ptr %a280 call void @finch_str_drop(ptr %a280) - br label %endif9843 -endif9843: - br label %endif9840 -endif9840: + br label %endif10248 +endif10248: + br label %endif10245 +endif10245: store { ptr, i64, i64 } zeroinitializer, ptr %a281 %t282 = getelementptr inbounds %S.linker.Build, ptr %a1, i32 0, i32 6 store i64 0, ptr %a283 - br label %each.cond9844 -each.cond9844: + br label %each.cond10249 +each.cond10249: %t284 = getelementptr inbounds { ptr, i64, i64 }, ptr %t282, i32 0, i32 1 %t285 = load i64, ptr %t284 %t286 = load i64, ptr %a283 %t287 = icmp slt i64 %t286, %t285 - br i1 %t287, label %each.body9845, label %each.end9847 -each.body9845: + br i1 %t287, label %each.body10250, label %each.end10252 +each.body10250: %t288 = load ptr, ptr %t282 %t289 = getelementptr inbounds { ptr, i64, i64 }, ptr %t288, i64 %t286 %t290 = load { ptr, i64, i64 }, ptr %t289 store { ptr, i64, i64 } %t290, ptr %a291 %t292 = load { ptr, i64, i64 }, ptr %a291 store { ptr, i64, i64 } %t292, ptr %a293 - store { ptr, i64, i64 } { ptr @.str.6695, i64 2, i64 0 }, ptr %a295 + store { ptr, i64, i64 } { ptr @.str.6903, i64 2, i64 0 }, ptr %a295 %t296 = call i32 @finch_str_ends(ptr %a293, ptr %a295) %t297 = icmp ne i32 %t296, 0 - br i1 %t297, label %then9848, label %else9849 -then9848: + br i1 %t297, label %then10253, label %else10254 +then10253: %t298 = getelementptr inbounds %S.linker.Build, ptr %a1, i32 0, i32 0 %t299 = load { ptr, i64, i64 }, ptr %t298 store { ptr, i64, i64 } %t299, ptr %a301 - store { ptr, i64, i64 } { ptr @.str.6696, i64 1, i64 0 }, ptr %a302 + store { ptr, i64, i64 } { ptr @.str.6904, i64 1, i64 0 }, ptr %a302 call void @finch_str_concat(ptr %a300, ptr %a301, ptr %a302) %t303 = load { ptr, i64, i64 }, ptr %a300 %t304 = getelementptr inbounds { ptr, i64, i64 }, ptr %a281, i32 0, i32 1 @@ -101478,26 +105503,26 @@ then9848: call void @finch_str_drop(ptr %a312) %t313 = load { ptr, i64, i64 }, ptr %a308 store { ptr, i64, i64 } %t313, ptr %a315 - store { ptr, i64, i64 } { ptr @.str.6697, i64 2, i64 0 }, ptr %a316 + store { ptr, i64, i64 } { ptr @.str.6905, i64 2, i64 0 }, ptr %a316 call void @finch_str_concat(ptr %a314, ptr %a315, ptr %a316) store { ptr, i64, i64 } %t313, ptr %a317 call void @finch_str_drop(ptr %a317) %t318 = load { ptr, i64, i64 }, ptr %a314 store { ptr, i64, i64 } %t318, ptr %a319 - store { ptr, i64, i64 } { ptr @.str.6698, i64 6, i64 0 }, ptr %a320 + store { ptr, i64, i64 } { ptr @.str.6906, i64 6, i64 0 }, ptr %a320 %t321 = getelementptr inbounds %S.platform.Target, ptr %a2, i32 0, i32 1 %t322 = load i1, ptr %t321 - br i1 %t322, label %then9851, label %endif9853 -then9851: + br i1 %t322, label %then10256, label %endif10258 +then10256: %t323 = load { ptr, i64, i64 }, ptr %a320 - store { ptr, i64, i64 } { ptr @.str.6699, i64 0, i64 0 }, ptr %a320 + store { ptr, i64, i64 } { ptr @.str.6907, i64 0, i64 0 }, ptr %a320 store { ptr, i64, i64 } %t323, ptr %a324 call void @finch_str_drop(ptr %a324) - br label %endif9853 -endif9853: + br label %endif10258 +endif10258: %t325 = load { ptr, i64, i64 }, ptr %a23 store { ptr, i64, i64 } %t325, ptr %a327 - store { ptr, i64, i64 } { ptr @.str.6700, i64 4, i64 0 }, ptr %a328 + store { ptr, i64, i64 } { ptr @.str.6908, i64 4, i64 0 }, ptr %a328 call void @finch_str_concat(ptr %a326, ptr %a327, ptr %a328) %t329 = load { ptr, i64, i64 }, ptr %a326 %t330 = load { ptr, i64, i64 }, ptr %a320 @@ -101508,7 +105533,7 @@ endif9853: call void @finch_str_drop(ptr %a334) %t335 = load { ptr, i64, i64 }, ptr %a331 store { ptr, i64, i64 } %t335, ptr %a337 - store { ptr, i64, i64 } { ptr @.str.6701, i64 4, i64 0 }, ptr %a338 + store { ptr, i64, i64 } { ptr @.str.6909, i64 4, i64 0 }, ptr %a338 call void @finch_str_concat(ptr %a336, ptr %a337, ptr %a338) store { ptr, i64, i64 } %t335, ptr %a339 call void @finch_str_drop(ptr %a339) @@ -101524,7 +105549,7 @@ endif9853: call void @finch_str_drop(ptr %a347) %t348 = load { ptr, i64, i64 }, ptr %a343 store { ptr, i64, i64 } %t348, ptr %a350 - store { ptr, i64, i64 } { ptr @.str.6702, i64 4, i64 0 }, ptr %a351 + store { ptr, i64, i64 } { ptr @.str.6910, i64 4, i64 0 }, ptr %a351 call void @finch_str_concat(ptr %a349, ptr %a350, ptr %a351) store { ptr, i64, i64 } %t348, ptr %a352 call void @finch_str_drop(ptr %a352) @@ -101540,7 +105565,7 @@ endif9853: call void @finch_str_drop(ptr %a360) %t361 = load { ptr, i64, i64 }, ptr %a356 store { ptr, i64, i64 } %t361, ptr %a363 - store { ptr, i64, i64 } { ptr @.str.6703, i64 3, i64 0 }, ptr %a364 + store { ptr, i64, i64 } { ptr @.str.6911, i64 3, i64 0 }, ptr %a364 call void @finch_str_concat(ptr %a362, ptr %a363, ptr %a364) store { ptr, i64, i64 } %t361, ptr %a365 call void @finch_str_drop(ptr %a365) @@ -101556,7 +105581,7 @@ endif9853: call void @finch_str_drop(ptr %a373) %t374 = load { ptr, i64, i64 }, ptr %a369 store { ptr, i64, i64 } %t374, ptr %a376 - store { ptr, i64, i64 } { ptr @.str.6704, i64 5, i64 0 }, ptr %a377 + store { ptr, i64, i64 } { ptr @.str.6912, i64 5, i64 0 }, ptr %a377 call void @finch_str_concat(ptr %a375, ptr %a376, ptr %a377) store { ptr, i64, i64 } %t374, ptr %a378 call void @finch_str_drop(ptr %a378) @@ -101567,8 +105592,8 @@ endif9853: store i64 %t380, ptr %a382 %t383 = load i64, ptr %a382 %t384 = icmp ne i64 %t383, 0 - br i1 %t384, label %then9854, label %endif9856 -then9854: + br i1 %t384, label %then10259, label %endif10261 +then10259: %t385 = load { ptr, i64, i64 }, ptr %a109 store { ptr, i64, i64 } %t385, ptr %a386 store { ptr, i64, i64 } zeroinitializer, ptr %a387 @@ -101577,19 +105602,19 @@ then9854: %t390 = icmp eq i32 %t389, 0 %t391 = load { ptr, i64, i64 }, ptr %a388 %t392 = load { ptr, i64, i64 }, ptr %a387 - br i1 %t390, label %or.failed9857, label %or.ok9858 -or.failed9857: + br i1 %t390, label %or.failed10262, label %or.ok10263 +or.failed10262: store { ptr, i64, i64 } %t391, ptr %a393 call void @finch_str_drop(ptr %a393) - br label %or.bend9859 -or.bend9859: - br label %or.end9860 -or.ok9858: - br label %or.end9860 -or.end9860: - %t394 = phi { ptr, i64, i64 } [ { ptr @.str.6705, i64 0, i64 0 }, %or.bend9859 ], [ %t392, %or.ok9858 ] + br label %or.bend10264 +or.bend10264: + br label %or.end10265 +or.ok10263: + br label %or.end10265 +or.end10265: + %t394 = phi { ptr, i64, i64 } [ { ptr @.str.6913, i64 0, i64 0 }, %or.bend10264 ], [ %t392, %or.ok10263 ] store { ptr, i64, i64 } %t394, ptr %a396 - store { ptr, i64, i64 } { ptr @.str.6706, i64 24, i64 0 }, ptr %a397 + store { ptr, i64, i64 } { ptr @.str.6914, i64 24, i64 0 }, ptr %a397 call void @finch_str_concat(ptr %a395, ptr %a396, ptr %a397) store { ptr, i64, i64 } %t394, ptr %a398 call void @finch_str_drop(ptr %a398) @@ -101605,11 +105630,11 @@ or.end9860: %t407 = trunc i64 %t406 to i32 %t408 = extractvalue { ptr, i64, i64 } %t405, 0 %t409 = icmp eq ptr %t408, null - %t410 = select i1 %t409, ptr @.str.6707, ptr %t408 - %t411 = call i32 (ptr, ...) @printf(ptr @.str.6708, i32 %t407, ptr %t410) + %t410 = select i1 %t409, ptr @.str.6915, ptr %t408 + %t411 = call i32 (ptr, ...) @printf(ptr @.str.6916, i32 %t407, ptr %t410) store { ptr, i64, i64 } %t405, ptr %a412 call void @finch_str_drop(ptr %a412) - %t413 = call i32 (ptr, ...) @printf(ptr @.str.6709) + %t413 = call i32 (ptr, ...) @printf(ptr @.str.6917) %t414 = load { ptr, i64, i64 }, ptr %a84 call void @finch.host.remove({ ptr, i64, i64 } %t414) %t415 = load { ptr, i64, i64 }, ptr %a109 @@ -101628,7 +105653,7 @@ or.end9860: call void @finch_str_drop(ptr %a23) call void @finch_str_drop(ptr %a13) ret i64 1 -endif9856: +endif10261: %t417 = getelementptr inbounds { ptr, i64, i64 }, ptr %a281, i32 0, i32 1 %t418 = load { ptr, i64, i64 }, ptr %a319 store { ptr, i64, i64 } %t418, ptr %a419 @@ -101643,7 +105668,7 @@ endif9856: store i64 %t423, ptr %t417 %t426 = load { ptr, i64, i64 }, ptr %a252 store { ptr, i64, i64 } %t426, ptr %a428 - store { ptr, i64, i64 } { ptr @.str.6710, i64 1, i64 0 }, ptr %a429 + store { ptr, i64, i64 } { ptr @.str.6918, i64 1, i64 0 }, ptr %a429 call void @finch_str_concat(ptr %a427, ptr %a428, ptr %a429) %t430 = load { ptr, i64, i64 }, ptr %a427 %t431 = load { ptr, i64, i64 }, ptr %a319 @@ -101662,32 +105687,32 @@ endif9856: call void @finch_str_drop(ptr %a440) call void @finch_str_drop(ptr %a320) call void @finch_str_drop(ptr %a319) - br label %endif9850 -else9849: + br label %endif10255 +else10254: %t441 = load { ptr, i64, i64 }, ptr %a291 store { ptr, i64, i64 } %t441, ptr %a442 - store { ptr, i64, i64 } { ptr @.str.6712, i64 2, i64 0 }, ptr %a444 + store { ptr, i64, i64 } { ptr @.str.6920, i64 2, i64 0 }, ptr %a444 %t445 = call i32 @finch_str_ends(ptr %a442, ptr %a444) %t446 = icmp ne i32 %t445, 0 - br label %logic.from9861 -logic.from9861: - br i1 %t446, label %logic.end9863, label %logic.rhs9862 -logic.rhs9862: + br label %logic.from10266 +logic.from10266: + br i1 %t446, label %logic.end10268, label %logic.rhs10267 +logic.rhs10267: %t447 = load { ptr, i64, i64 }, ptr %a291 store { ptr, i64, i64 } %t447, ptr %a448 - store { ptr, i64, i64 } { ptr @.str.6714, i64 2, i64 0 }, ptr %a450 + store { ptr, i64, i64 } { ptr @.str.6922, i64 2, i64 0 }, ptr %a450 %t451 = call i32 @finch_str_ends(ptr %a448, ptr %a450) %t452 = icmp ne i32 %t451, 0 - br label %logic.rend9864 -logic.rend9864: - br label %logic.end9863 -logic.end9863: - %t453 = phi i1 [ true, %logic.from9861 ], [ %t452, %logic.rend9864 ] - br i1 %t453, label %then9865, label %else9866 -then9865: + br label %logic.rend10269 +logic.rend10269: + br label %logic.end10268 +logic.end10268: + %t453 = phi i1 [ true, %logic.from10266 ], [ %t452, %logic.rend10269 ] + br i1 %t453, label %then10270, label %else10271 +then10270: %t454 = load { ptr, i64, i64 }, ptr %a252 store { ptr, i64, i64 } %t454, ptr %a456 - store { ptr, i64, i64 } { ptr @.str.6715, i64 1, i64 0 }, ptr %a457 + store { ptr, i64, i64 } { ptr @.str.6923, i64 1, i64 0 }, ptr %a457 call void @finch_str_concat(ptr %a455, ptr %a456, ptr %a457) %t458 = load { ptr, i64, i64 }, ptr %a455 %t459 = load { ptr, i64, i64 }, ptr %a291 @@ -101704,11 +105729,11 @@ then9865: store { ptr, i64, i64 } %t466, ptr %a252 store { ptr, i64, i64 } %t467, ptr %a468 call void @finch_str_drop(ptr %a468) - br label %endif9867 -else9866: + br label %endif10272 +else10271: %t469 = load { ptr, i64, i64 }, ptr %a252 store { ptr, i64, i64 } %t469, ptr %a471 - store { ptr, i64, i64 } { ptr @.str.6716, i64 1, i64 0 }, ptr %a472 + store { ptr, i64, i64 } { ptr @.str.6924, i64 1, i64 0 }, ptr %a472 call void @finch_str_concat(ptr %a470, ptr %a471, ptr %a472) %t473 = load { ptr, i64, i64 }, ptr %a470 %t474 = load { ptr, i64, i64 }, ptr %a291 @@ -101726,20 +105751,20 @@ else9866: store { ptr, i64, i64 } %t482, ptr %a252 store { ptr, i64, i64 } %t483, ptr %a484 call void @finch_str_drop(ptr %a484) - br label %endif9867 -endif9867: - br label %endif9850 -endif9850: - br label %each.step9846 -each.step9846: + br label %endif10272 +endif10272: + br label %endif10255 +endif10255: + br label %each.step10251 +each.step10251: %t485 = load i64, ptr %a283 %t486 = add i64 %t485, 1 store i64 %t486, ptr %a283 - br label %each.cond9844 -each.end9847: + br label %each.cond10249 +each.end10252: %t487 = load { ptr, i64, i64 }, ptr %a252 store { ptr, i64, i64 } %t487, ptr %a489 - store { ptr, i64, i64 } { ptr @.str.6717, i64 3, i64 0 }, ptr %a490 + store { ptr, i64, i64 } { ptr @.str.6925, i64 3, i64 0 }, ptr %a490 call void @finch_str_concat(ptr %a488, ptr %a489, ptr %a490) %t491 = load { ptr, i64, i64 }, ptr %a488 %t492 = load { ptr, i64, i64 }, ptr %a109 @@ -101753,7 +105778,7 @@ each.end9847: call void @finch_str_drop(ptr %a498) %t499 = load { ptr, i64, i64 }, ptr %a494 store { ptr, i64, i64 } %t499, ptr %a501 - store { ptr, i64, i64 } { ptr @.str.6718, i64 5, i64 0 }, ptr %a502 + store { ptr, i64, i64 } { ptr @.str.6926, i64 5, i64 0 }, ptr %a502 call void @finch_str_concat(ptr %a500, ptr %a501, ptr %a502) store { ptr, i64, i64 } %t499, ptr %a503 call void @finch_str_drop(ptr %a503) @@ -101770,55 +105795,55 @@ each.end9847: %t513 = icmp eq i32 %t512, 0 %t514 = load { ptr, i64, i64 }, ptr %a511 %t515 = load { ptr, i64, i64 }, ptr %a510 - br i1 %t513, label %or.failed9868, label %or.ok9869 -or.failed9868: + br i1 %t513, label %or.failed10273, label %or.ok10274 +or.failed10273: store { ptr, i64, i64 } %t514, ptr %a516 call void @finch_str_drop(ptr %a516) - br label %or.bend9870 -or.bend9870: - br label %or.end9871 -or.ok9869: - br label %or.end9871 -or.end9871: - %t517 = phi { ptr, i64, i64 } [ { ptr @.str.6719, i64 0, i64 0 }, %or.bend9870 ], [ %t515, %or.ok9869 ] + br label %or.bend10275 +or.bend10275: + br label %or.end10276 +or.ok10274: + br label %or.end10276 +or.end10276: + %t517 = phi { ptr, i64, i64 } [ { ptr @.str.6927, i64 0, i64 0 }, %or.bend10275 ], [ %t515, %or.ok10274 ] store { ptr, i64, i64 } %t517, ptr %a518 %t519 = load { ptr, i64, i64 }, ptr %a84 call void @finch.host.remove({ ptr, i64, i64 } %t519) %t520 = load { ptr, i64, i64 }, ptr %a109 call void @finch.host.remove({ ptr, i64, i64 } %t520) store i64 0, ptr %a521 - br label %each.cond9872 -each.cond9872: + br label %each.cond10277 +each.cond10277: %t522 = getelementptr inbounds { ptr, i64, i64 }, ptr %a281, i32 0, i32 1 %t523 = load i64, ptr %t522 %t524 = load i64, ptr %a521 %t525 = icmp slt i64 %t524, %t523 - br i1 %t525, label %each.body9873, label %each.end9875 -each.body9873: + br i1 %t525, label %each.body10278, label %each.end10280 +each.body10278: %t526 = load ptr, ptr %a281 %t527 = getelementptr inbounds { ptr, i64, i64 }, ptr %t526, i64 %t524 %t528 = load { ptr, i64, i64 }, ptr %t527 store { ptr, i64, i64 } %t528, ptr %a529 %t530 = load { ptr, i64, i64 }, ptr %a529 call void @finch.host.remove({ ptr, i64, i64 } %t530) - br label %each.step9874 -each.step9874: + br label %each.step10279 +each.step10279: %t531 = load i64, ptr %a521 %t532 = add i64 %t531, 1 store i64 %t532, ptr %a521 - br label %each.cond9872 -each.end9875: + br label %each.cond10277 +each.end10280: %t533 = load i64, ptr %a507 %t534 = icmp eq i64 %t533, 127 - br i1 %t534, label %then9876, label %endif9878 -then9876: + br i1 %t534, label %then10281, label %endif10283 +then10281: %t535 = load { ptr, i64, i64 }, ptr %a23 - store { ptr, i64, i64 } { ptr @.str.6720, i64 42, i64 0 }, ptr %a537 + store { ptr, i64, i64 } { ptr @.str.6928, i64 42, i64 0 }, ptr %a537 store { ptr, i64, i64 } %t535, ptr %a538 call void @finch_str_concat(ptr %a536, ptr %a537, ptr %a538) %t539 = load { ptr, i64, i64 }, ptr %a536 store { ptr, i64, i64 } %t539, ptr %a541 - store { ptr, i64, i64 } { ptr @.str.6721, i64 32, i64 0 }, ptr %a542 + store { ptr, i64, i64 } { ptr @.str.6929, i64 32, i64 0 }, ptr %a542 call void @finch_str_concat(ptr %a540, ptr %a541, ptr %a542) store { ptr, i64, i64 } %t539, ptr %a543 call void @finch_str_drop(ptr %a543) @@ -101827,11 +105852,11 @@ then9876: %t546 = trunc i64 %t545 to i32 %t547 = extractvalue { ptr, i64, i64 } %t544, 0 %t548 = icmp eq ptr %t547, null - %t549 = select i1 %t548, ptr @.str.6722, ptr %t547 - %t550 = call i32 (ptr, ...) @printf(ptr @.str.6723, i32 %t546, ptr %t549) + %t549 = select i1 %t548, ptr @.str.6930, ptr %t547 + %t550 = call i32 (ptr, ...) @printf(ptr @.str.6931, i32 %t546, ptr %t549) store { ptr, i64, i64 } %t544, ptr %a551 call void @finch_str_drop(ptr %a551) - %t552 = call i32 (ptr, ...) @printf(ptr @.str.6724) + %t552 = call i32 (ptr, ...) @printf(ptr @.str.6932) call void @finch_str_drop(ptr %a518) call void @finch.drop.arr_str(ptr %a281) call void @finch_str_drop(ptr %a252) @@ -101843,11 +105868,11 @@ then9876: call void @finch_str_drop(ptr %a23) call void @finch_str_drop(ptr %a13) ret i64 1 -endif9878: +endif10283: %t553 = load i64, ptr %a507 %t554 = icmp ne i64 %t553, 0 - br i1 %t554, label %then9879, label %endif9881 -then9879: + br i1 %t554, label %then10284, label %endif10286 +then10284: %t555 = load { ptr, i64, i64 }, ptr %a518 %t556 = load %S.cimport.CImports, ptr %a3 %t557 = load %S.platform.Target, ptr %a2 @@ -101863,22 +105888,22 @@ then9879: call void @finch_str_drop(ptr %a23) call void @finch_str_drop(ptr %a13) ret i64 %t558 -endif9881: +endif10286: %t559 = getelementptr inbounds { ptr, i64, i64 }, ptr %a518, i32 0, i32 1 %t560 = load i64, ptr %t559 %t561 = icmp sgt i64 %t560, 0 - br i1 %t561, label %then9882, label %endif9884 -then9882: + br i1 %t561, label %then10287, label %endif10289 +then10287: %t562 = load { ptr, i64, i64 }, ptr %a518 %t563 = extractvalue { ptr, i64, i64 } %t562, 1 %t564 = trunc i64 %t563 to i32 %t565 = extractvalue { ptr, i64, i64 } %t562, 0 %t566 = icmp eq ptr %t565, null - %t567 = select i1 %t566, ptr @.str.6725, ptr %t565 - %t568 = call i32 (ptr, ...) @printf(ptr @.str.6726, i32 %t564, ptr %t567) - %t569 = call i32 (ptr, ...) @printf(ptr @.str.6727) - br label %endif9884 -endif9884: + %t567 = select i1 %t566, ptr @.str.6933, ptr %t565 + %t568 = call i32 (ptr, ...) @printf(ptr @.str.6934, i32 %t564, ptr %t567) + %t569 = call i32 (ptr, ...) @printf(ptr @.str.6935) + br label %endif10289 +endif10289: call void @finch_str_drop(ptr %a518) call void @finch.drop.arr_str(ptr %a281) call void @finch_str_drop(ptr %a252) @@ -101898,69 +105923,69 @@ entry: store i8 %p0, ptr %a1 %t2 = load i8, ptr %a1 %t3 = icmp uge i8 %t2, 48 - br label %logic.from9885 -logic.from9885: - br i1 %t3, label %logic.rhs9886, label %logic.end9887 -logic.rhs9886: + br label %logic.from10290 +logic.from10290: + br i1 %t3, label %logic.rhs10291, label %logic.end10292 +logic.rhs10291: %t4 = load i8, ptr %a1 %t5 = icmp ule i8 %t4, 57 - br label %logic.rend9888 -logic.rend9888: - br label %logic.end9887 -logic.end9887: - %t6 = phi i1 [ false, %logic.from9885 ], [ %t5, %logic.rend9888 ] - br i1 %t6, label %then9889, label %endif9891 -then9889: + br label %logic.rend10293 +logic.rend10293: + br label %logic.end10292 +logic.end10292: + %t6 = phi i1 [ false, %logic.from10290 ], [ %t5, %logic.rend10293 ] + br i1 %t6, label %then10294, label %endif10296 +then10294: %t7 = load i8, ptr %a1 %t8 = zext i8 %t7 to i64 %t9 = zext i8 48 to i64 %t10 = sub i64 %t8, %t9 ret i64 %t10 -endif9891: +endif10296: %t11 = load i8, ptr %a1 %t12 = icmp uge i8 %t11, 97 - br label %logic.from9892 -logic.from9892: - br i1 %t12, label %logic.rhs9893, label %logic.end9894 -logic.rhs9893: + br label %logic.from10297 +logic.from10297: + br i1 %t12, label %logic.rhs10298, label %logic.end10299 +logic.rhs10298: %t13 = load i8, ptr %a1 %t14 = icmp ule i8 %t13, 102 - br label %logic.rend9895 -logic.rend9895: - br label %logic.end9894 -logic.end9894: - %t15 = phi i1 [ false, %logic.from9892 ], [ %t14, %logic.rend9895 ] - br i1 %t15, label %then9896, label %endif9898 -then9896: + br label %logic.rend10300 +logic.rend10300: + br label %logic.end10299 +logic.end10299: + %t15 = phi i1 [ false, %logic.from10297 ], [ %t14, %logic.rend10300 ] + br i1 %t15, label %then10301, label %endif10303 +then10301: %t16 = load i8, ptr %a1 %t17 = zext i8 %t16 to i64 %t18 = zext i8 97 to i64 %t19 = sub i64 %t17, %t18 %t20 = add i64 %t19, 10 ret i64 %t20 -endif9898: +endif10303: %t21 = load i8, ptr %a1 %t22 = icmp uge i8 %t21, 65 - br label %logic.from9899 -logic.from9899: - br i1 %t22, label %logic.rhs9900, label %logic.end9901 -logic.rhs9900: + br label %logic.from10304 +logic.from10304: + br i1 %t22, label %logic.rhs10305, label %logic.end10306 +logic.rhs10305: %t23 = load i8, ptr %a1 %t24 = icmp ule i8 %t23, 70 - br label %logic.rend9902 -logic.rend9902: - br label %logic.end9901 -logic.end9901: - %t25 = phi i1 [ false, %logic.from9899 ], [ %t24, %logic.rend9902 ] - br i1 %t25, label %then9903, label %endif9905 -then9903: + br label %logic.rend10307 +logic.rend10307: + br label %logic.end10306 +logic.end10306: + %t25 = phi i1 [ false, %logic.from10304 ], [ %t24, %logic.rend10307 ] + br i1 %t25, label %then10308, label %endif10310 +then10308: %t26 = load i8, ptr %a1 %t27 = zext i8 %t26 to i64 %t28 = zext i8 65 to i64 %t29 = sub i64 %t27, %t28 %t30 = add i64 %t29, 10 ret i64 %t30 -endif9905: +endif10310: ret i64 -1 } @@ -101995,122 +106020,122 @@ entry: store { ptr, i64, i64 } %t5, ptr %a6 %t7 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t7, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.6729, i64 7, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.6937, i64 7, i64 0 }, ptr %a10 %t11 = call i32 @finch_str_starts(ptr %a8, ptr %a10) %t12 = icmp ne i32 %t11, 0 - br i1 %t12, label %then9906, label %endif9908 -then9906: + br i1 %t12, label %then10311, label %endif10313 +then10311: %t13 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t13, ptr %a14 %t16 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t17 = load i64, ptr %t16 - call void @finch_str_sub(ptr %a15, ptr %a14, i64 7, i64 %t17, ptr @.str.6730, i64 114) + call void @finch_str_sub(ptr %a15, ptr %a14, i64 7, i64 %t17, ptr @.str.6938, i64 114) %t18 = load { ptr, i64, i64 }, ptr %a15 %t19 = load { ptr, i64, i64 }, ptr %a6 store { ptr, i64, i64 } %t18, ptr %a6 store { ptr, i64, i64 } %t19, ptr %a20 call void @finch_str_drop(ptr %a20) - br label %endif9908 -endif9908: + br label %endif10313 +endif10313: store { ptr, i64, i64 } zeroinitializer, ptr %a21 store i64 0, ptr %a22 - br label %while.cond9909 -while.cond9909: + br label %while.cond10314 +while.cond10314: %t23 = load i64, ptr %a22 %t24 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t25 = load i64, ptr %t24 %t26 = icmp slt i64 %t23, %t25 - br i1 %t26, label %while.body9910, label %while.end9911 -while.body9910: + br i1 %t26, label %while.body10315, label %while.end10316 +while.body10315: %t27 = load i64, ptr %a22 %t28 = load { ptr, i64, i64 }, ptr %a6 %t29 = extractvalue { ptr, i64, i64 } %t28, 1 %t30 = icmp uge i64 %t27, %t29 - br i1 %t30, label %range9912, label %inrange9913 -range9912: - call void @finch_panic_index(ptr @.str.6731, i64 119, i64 %t27, i64 %t29) + br i1 %t30, label %range10317, label %inrange10318 +range10317: + call void @finch_panic_index(ptr @.str.6939, i64 119, i64 %t27, i64 %t29) unreachable -inrange9913: +inrange10318: %t31 = extractvalue { ptr, i64, i64 } %t28, 0 %t32 = getelementptr inbounds i8, ptr %t31, i64 %t27 %t33 = load i8, ptr %t32 %t34 = icmp eq i8 %t33, 37 - br label %logic.from9914 -logic.from9914: - br i1 %t34, label %logic.rhs9915, label %logic.end9916 -logic.rhs9915: + br label %logic.from10319 +logic.from10319: + br i1 %t34, label %logic.rhs10320, label %logic.end10321 +logic.rhs10320: %t35 = load i64, ptr %a22 %t36 = add i64 %t35, 2 %t37 = getelementptr inbounds { ptr, i64, i64 }, ptr %a6, i32 0, i32 1 %t38 = load i64, ptr %t37 %t39 = add i64 %t38, 0 %t40 = icmp slt i64 %t36, %t39 - br label %logic.rend9917 -logic.rend9917: - br label %logic.end9916 -logic.end9916: - %t41 = phi i1 [ false, %logic.from9914 ], [ %t40, %logic.rend9917 ] - br label %logic.from9918 -logic.from9918: - br i1 %t41, label %logic.rhs9919, label %logic.end9920 -logic.rhs9919: + br label %logic.rend10322 +logic.rend10322: + br label %logic.end10321 +logic.end10321: + %t41 = phi i1 [ false, %logic.from10319 ], [ %t40, %logic.rend10322 ] + br label %logic.from10323 +logic.from10323: + br i1 %t41, label %logic.rhs10324, label %logic.end10325 +logic.rhs10324: %t42 = load i64, ptr %a22 %t43 = add i64 %t42, 1 %t44 = load { ptr, i64, i64 }, ptr %a6 %t45 = extractvalue { ptr, i64, i64 } %t44, 1 %t46 = icmp uge i64 %t43, %t45 - br i1 %t46, label %range9921, label %inrange9922 -range9921: - call void @finch_panic_index(ptr @.str.6732, i64 119, i64 %t43, i64 %t45) + br i1 %t46, label %range10326, label %inrange10327 +range10326: + call void @finch_panic_index(ptr @.str.6940, i64 119, i64 %t43, i64 %t45) unreachable -inrange9922: +inrange10327: %t47 = extractvalue { ptr, i64, i64 } %t44, 0 %t48 = getelementptr inbounds i8, ptr %t47, i64 %t43 %t49 = load i8, ptr %t48 %t50 = call i64 @finch.lsp.hexval(i8 %t49) %t51 = icmp sge i64 %t50, 0 - br label %logic.rend9923 -logic.rend9923: - br label %logic.end9920 -logic.end9920: - %t52 = phi i1 [ false, %logic.from9918 ], [ %t51, %logic.rend9923 ] - br label %logic.from9924 -logic.from9924: - br i1 %t52, label %logic.rhs9925, label %logic.end9926 -logic.rhs9925: + br label %logic.rend10328 +logic.rend10328: + br label %logic.end10325 +logic.end10325: + %t52 = phi i1 [ false, %logic.from10323 ], [ %t51, %logic.rend10328 ] + br label %logic.from10329 +logic.from10329: + br i1 %t52, label %logic.rhs10330, label %logic.end10331 +logic.rhs10330: %t53 = load i64, ptr %a22 %t54 = add i64 %t53, 2 %t55 = load { ptr, i64, i64 }, ptr %a6 %t56 = extractvalue { ptr, i64, i64 } %t55, 1 %t57 = icmp uge i64 %t54, %t56 - br i1 %t57, label %range9927, label %inrange9928 -range9927: - call void @finch_panic_index(ptr @.str.6733, i64 119, i64 %t54, i64 %t56) + br i1 %t57, label %range10332, label %inrange10333 +range10332: + call void @finch_panic_index(ptr @.str.6941, i64 119, i64 %t54, i64 %t56) unreachable -inrange9928: +inrange10333: %t58 = extractvalue { ptr, i64, i64 } %t55, 0 %t59 = getelementptr inbounds i8, ptr %t58, i64 %t54 %t60 = load i8, ptr %t59 %t61 = call i64 @finch.lsp.hexval(i8 %t60) %t62 = icmp sge i64 %t61, 0 - br label %logic.rend9929 -logic.rend9929: - br label %logic.end9926 -logic.end9926: - %t63 = phi i1 [ false, %logic.from9924 ], [ %t62, %logic.rend9929 ] - br i1 %t63, label %then9930, label %else9931 -then9930: + br label %logic.rend10334 +logic.rend10334: + br label %logic.end10331 +logic.end10331: + %t63 = phi i1 [ false, %logic.from10329 ], [ %t62, %logic.rend10334 ] + br i1 %t63, label %then10335, label %else10336 +then10335: %t64 = getelementptr inbounds { ptr, i64, i64 }, ptr %a21, i32 0, i32 1 %t65 = load i64, ptr %a22 %t66 = add i64 %t65, 1 %t67 = load { ptr, i64, i64 }, ptr %a6 %t68 = extractvalue { ptr, i64, i64 } %t67, 1 %t69 = icmp uge i64 %t66, %t68 - br i1 %t69, label %range9933, label %inrange9934 -range9933: - call void @finch_panic_index(ptr @.str.6734, i64 120, i64 %t66, i64 %t68) + br i1 %t69, label %range10338, label %inrange10339 +range10338: + call void @finch_panic_index(ptr @.str.6942, i64 120, i64 %t66, i64 %t68) unreachable -inrange9934: +inrange10339: %t70 = extractvalue { ptr, i64, i64 } %t67, 0 %t71 = getelementptr inbounds i8, ptr %t70, i64 %t66 %t72 = load i8, ptr %t71 @@ -102121,11 +106146,11 @@ inrange9934: %t77 = load { ptr, i64, i64 }, ptr %a6 %t78 = extractvalue { ptr, i64, i64 } %t77, 1 %t79 = icmp uge i64 %t76, %t78 - br i1 %t79, label %range9935, label %inrange9936 -range9935: - call void @finch_panic_index(ptr @.str.6735, i64 120, i64 %t76, i64 %t78) + br i1 %t79, label %range10340, label %inrange10341 +range10340: + call void @finch_panic_index(ptr @.str.6943, i64 120, i64 %t76, i64 %t78) unreachable -inrange9936: +inrange10341: %t80 = extractvalue { ptr, i64, i64 } %t77, 0 %t81 = getelementptr inbounds i8, ptr %t80, i64 %t76 %t82 = load i8, ptr %t81 @@ -102142,18 +106167,18 @@ inrange9936: %t90 = load i64, ptr %a22 %t91 = add i64 %t90, 3 store i64 %t91, ptr %a22 - br label %endif9932 -else9931: + br label %endif10337 +else10336: %t92 = getelementptr inbounds { ptr, i64, i64 }, ptr %a21, i32 0, i32 1 %t93 = load i64, ptr %a22 %t94 = load { ptr, i64, i64 }, ptr %a6 %t95 = extractvalue { ptr, i64, i64 } %t94, 1 %t96 = icmp uge i64 %t93, %t95 - br i1 %t96, label %range9937, label %inrange9938 -range9937: - call void @finch_panic_index(ptr @.str.6736, i64 123, i64 %t93, i64 %t95) + br i1 %t96, label %range10342, label %inrange10343 +range10342: + call void @finch_panic_index(ptr @.str.6944, i64 123, i64 %t93, i64 %t95) unreachable -inrange9938: +inrange10343: %t97 = extractvalue { ptr, i64, i64 } %t94, 0 %t98 = getelementptr inbounds i8, ptr %t97, i64 %t93 %t99 = load i8, ptr %t98 @@ -102167,10 +106192,10 @@ inrange9938: %t104 = load i64, ptr %a22 %t105 = add i64 %t104, 1 store i64 %t105, ptr %a22 - br label %endif9932 -endif9932: - br label %while.cond9909 -while.end9911: + br label %endif10337 +endif10337: + br label %while.cond10314 +while.end10316: %t106 = load { ptr, i64, i64 }, ptr %a21 store { ptr, i64, i64 } zeroinitializer, ptr %a107 store { ptr, i64, i64 } %t106, ptr %a108 @@ -102209,24 +106234,24 @@ entry: %a97 = alloca { ptr, i64, i64 }, align 16 %a98 = alloca { ptr, i64, i64 }, align 16 store { ptr, i64, i64 } %p0, ptr %a1 - store { ptr, i64, i64 } { ptr @.str.6737, i64 16, i64 0 }, ptr %a2 + store { ptr, i64, i64 } { ptr @.str.6945, i64 16, i64 0 }, ptr %a2 %t3 = mul i64 1, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t4 = call ptr @finch_alloc(i64 %t3) %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %t4, i64 0 - store { ptr, i64, i64 } { ptr @.str.6738, i64 7, i64 0 }, ptr %t5 + store { ptr, i64, i64 } { ptr @.str.6946, i64 7, i64 0 }, ptr %t5 %t6 = insertvalue { ptr, i64, i64 } undef, ptr %t4, 0 %t7 = insertvalue { ptr, i64, i64 } %t6, i64 1, 1 %t8 = insertvalue { ptr, i64, i64 } %t7, i64 1, 2 store { ptr, i64, i64 } %t8, ptr %a9 store i64 0, ptr %a10 - br label %each.cond9939 -each.cond9939: + br label %each.cond10344 +each.cond10344: %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t12 = load i64, ptr %t11 %t13 = load i64, ptr %a10 %t14 = icmp slt i64 %t13, %t12 - br i1 %t14, label %each.body9940, label %each.end9942 -each.body9940: + br i1 %t14, label %each.body10345, label %each.end10347 +each.body10345: %t15 = load ptr, ptr %a1 %t16 = getelementptr inbounds i8, ptr %t15, i64 %t13 %t17 = load i8, ptr %t16 @@ -102236,66 +106261,66 @@ each.body9940: store i64 %t20, ptr %a21 %t22 = load i8, ptr %a18 %t23 = icmp uge i8 %t22, 97 - br label %logic.from9943 -logic.from9943: - br i1 %t23, label %logic.rhs9944, label %logic.end9945 -logic.rhs9944: + br label %logic.from10348 +logic.from10348: + br i1 %t23, label %logic.rhs10349, label %logic.end10350 +logic.rhs10349: %t24 = load i8, ptr %a18 %t25 = icmp ule i8 %t24, 122 - br label %logic.rend9946 -logic.rend9946: - br label %logic.end9945 -logic.end9945: - %t26 = phi i1 [ false, %logic.from9943 ], [ %t25, %logic.rend9946 ] - br label %logic.from9947 -logic.from9947: - br i1 %t26, label %logic.end9949, label %logic.rhs9948 -logic.rhs9948: + br label %logic.rend10351 +logic.rend10351: + br label %logic.end10350 +logic.end10350: + %t26 = phi i1 [ false, %logic.from10348 ], [ %t25, %logic.rend10351 ] + br label %logic.from10352 +logic.from10352: + br i1 %t26, label %logic.end10354, label %logic.rhs10353 +logic.rhs10353: %t27 = load i8, ptr %a18 %t28 = icmp uge i8 %t27, 65 - br label %logic.from9950 -logic.from9950: - br i1 %t28, label %logic.rhs9951, label %logic.end9952 -logic.rhs9951: + br label %logic.from10355 +logic.from10355: + br i1 %t28, label %logic.rhs10356, label %logic.end10357 +logic.rhs10356: %t29 = load i8, ptr %a18 %t30 = icmp ule i8 %t29, 90 - br label %logic.rend9953 -logic.rend9953: - br label %logic.end9952 -logic.end9952: - %t31 = phi i1 [ false, %logic.from9950 ], [ %t30, %logic.rend9953 ] - br label %logic.rend9954 -logic.rend9954: - br label %logic.end9949 -logic.end9949: - %t32 = phi i1 [ true, %logic.from9947 ], [ %t31, %logic.rend9954 ] - br label %logic.from9955 -logic.from9955: - br i1 %t32, label %logic.end9957, label %logic.rhs9956 -logic.rhs9956: + br label %logic.rend10358 +logic.rend10358: + br label %logic.end10357 +logic.end10357: + %t31 = phi i1 [ false, %logic.from10355 ], [ %t30, %logic.rend10358 ] + br label %logic.rend10359 +logic.rend10359: + br label %logic.end10354 +logic.end10354: + %t32 = phi i1 [ true, %logic.from10352 ], [ %t31, %logic.rend10359 ] + br label %logic.from10360 +logic.from10360: + br i1 %t32, label %logic.end10362, label %logic.rhs10361 +logic.rhs10361: %t33 = load i8, ptr %a18 %t34 = icmp uge i8 %t33, 48 - br label %logic.from9958 -logic.from9958: - br i1 %t34, label %logic.rhs9959, label %logic.end9960 -logic.rhs9959: + br label %logic.from10363 +logic.from10363: + br i1 %t34, label %logic.rhs10364, label %logic.end10365 +logic.rhs10364: %t35 = load i8, ptr %a18 %t36 = icmp ule i8 %t35, 57 - br label %logic.rend9961 -logic.rend9961: - br label %logic.end9960 -logic.end9960: - %t37 = phi i1 [ false, %logic.from9958 ], [ %t36, %logic.rend9961 ] - br label %logic.rend9962 -logic.rend9962: - br label %logic.end9957 -logic.end9957: - %t38 = phi i1 [ true, %logic.from9955 ], [ %t37, %logic.rend9962 ] - br label %logic.from9963 -logic.from9963: - br i1 %t38, label %logic.end9965, label %logic.rhs9964 -logic.rhs9964: - store { ptr, i64, i64 } { ptr @.str.6739, i64 5, i64 0 }, ptr %a39 + br label %logic.rend10366 +logic.rend10366: + br label %logic.end10365 +logic.end10365: + %t37 = phi i1 [ false, %logic.from10363 ], [ %t36, %logic.rend10366 ] + br label %logic.rend10367 +logic.rend10367: + br label %logic.end10362 +logic.end10362: + %t38 = phi i1 [ true, %logic.from10360 ], [ %t37, %logic.rend10367 ] + br label %logic.from10368 +logic.from10368: + br i1 %t38, label %logic.end10370, label %logic.rhs10369 +logic.rhs10369: + store { ptr, i64, i64 } { ptr @.str.6947, i64 5, i64 0 }, ptr %a39 %t41 = load i8, ptr %a18 call void @finch_str_from_char(ptr %a42, i8 signext %t41) %t43 = load { ptr, i64, i64 }, ptr %a42 @@ -102304,13 +106329,13 @@ logic.rhs9964: %t46 = icmp sge i64 %t45, 0 store { ptr, i64, i64 } %t43, ptr %a47 call void @finch_str_drop(ptr %a47) - br label %logic.rend9966 -logic.rend9966: - br label %logic.end9965 -logic.end9965: - %t48 = phi i1 [ true, %logic.from9963 ], [ %t46, %logic.rend9966 ] - br i1 %t48, label %then9967, label %else9968 -then9967: + br label %logic.rend10371 +logic.rend10371: + br label %logic.end10370 +logic.end10370: + %t48 = phi i1 [ true, %logic.from10368 ], [ %t46, %logic.rend10371 ] + br i1 %t48, label %then10372, label %else10373 +then10372: %t49 = getelementptr inbounds { ptr, i64, i64 }, ptr %a9, i32 0, i32 1 %t50 = load i8, ptr %a18 call void @finch_str_from_char(ptr %a51, i8 signext %t50) @@ -102322,8 +106347,8 @@ then9967: %t56 = getelementptr inbounds { ptr, i64, i64 }, ptr %t55, i64 %t53 store { ptr, i64, i64 } %t52, ptr %t56 store i64 %t54, ptr %t49 - br label %endif9969 -else9968: + br label %endif10374 +else10373: %t57 = getelementptr inbounds { ptr, i64, i64 }, ptr %a9, i32 0, i32 1 %t58 = load i64, ptr %a21 %t59 = sdiv i64 %t58, 16 @@ -102331,17 +106356,17 @@ else9968: %t61 = load { ptr, i64, i64 }, ptr %a2 %t62 = extractvalue { ptr, i64, i64 } %t61, 1 %t63 = icmp uge i64 %t60, %t62 - br i1 %t63, label %range9970, label %inrange9971 -range9970: - call void @finch_panic_index(ptr @.str.6742, i64 138, i64 %t60, i64 %t62) + br i1 %t63, label %range10375, label %inrange10376 +range10375: + call void @finch_panic_index(ptr @.str.6950, i64 138, i64 %t60, i64 %t62) unreachable -inrange9971: +inrange10376: %t64 = extractvalue { ptr, i64, i64 } %t61, 0 %t65 = getelementptr inbounds i8, ptr %t64, i64 %t60 %t66 = load i8, ptr %t65 call void @finch_str_from_char(ptr %a67, i8 signext %t66) %t68 = load { ptr, i64, i64 }, ptr %a67 - store { ptr, i64, i64 } { ptr @.str.6741, i64 1, i64 0 }, ptr %a70 + store { ptr, i64, i64 } { ptr @.str.6949, i64 1, i64 0 }, ptr %a70 store { ptr, i64, i64 } %t68, ptr %a71 call void @finch_str_concat(ptr %a69, ptr %a70, ptr %a71) store { ptr, i64, i64 } %t68, ptr %a72 @@ -102352,11 +106377,11 @@ inrange9971: %t76 = load { ptr, i64, i64 }, ptr %a2 %t77 = extractvalue { ptr, i64, i64 } %t76, 1 %t78 = icmp uge i64 %t75, %t77 - br i1 %t78, label %range9972, label %inrange9973 -range9972: - call void @finch_panic_index(ptr @.str.6743, i64 138, i64 %t75, i64 %t77) + br i1 %t78, label %range10377, label %inrange10378 +range10377: + call void @finch_panic_index(ptr @.str.6951, i64 138, i64 %t75, i64 %t77) unreachable -inrange9973: +inrange10378: %t79 = extractvalue { ptr, i64, i64 } %t76, 0 %t80 = getelementptr inbounds i8, ptr %t79, i64 %t75 %t81 = load i8, ptr %t80 @@ -102377,17 +106402,17 @@ inrange9973: %t93 = getelementptr inbounds { ptr, i64, i64 }, ptr %t92, i64 %t90 store { ptr, i64, i64 } %t89, ptr %t93 store i64 %t91, ptr %t57 - br label %endif9969 -endif9969: - br label %each.step9941 -each.step9941: + br label %endif10374 +endif10374: + br label %each.step10346 +each.step10346: %t94 = load i64, ptr %a10 %t95 = add i64 %t94, 1 store i64 %t95, ptr %a10 - br label %each.cond9939 -each.end9942: + br label %each.cond10344 +each.end10347: %t96 = getelementptr inbounds { ptr, i64, i64 }, ptr %a9, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.6744, i64 0, i64 0 }, ptr %a97 + store { ptr, i64, i64 } { ptr @.str.6952, i64 0, i64 0 }, ptr %a97 call void @finch_str_join(ptr %a98, ptr %a9, ptr %a97) %t99 = load { ptr, i64, i64 }, ptr %a98 call void @finch.drop.arr_str(ptr %a9) @@ -102407,80 +106432,80 @@ entry: store { ptr, i64, i64 } %p0, ptr %a1 store { ptr, i64, i64 } zeroinitializer, ptr %a2 store i64 0, ptr %a3 - br label %while.cond9974 -while.cond9974: + br label %while.cond10379 +while.cond10379: %t4 = load i64, ptr %a3 %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t6 = load i64, ptr %t5 %t7 = icmp slt i64 %t4, %t6 - br i1 %t7, label %while.body9975, label %while.end9976 -while.body9975: + br i1 %t7, label %while.body10380, label %while.end10381 +while.body10380: %t8 = load i64, ptr %a3 %t9 = load { ptr, i64, i64 }, ptr %a1 %t10 = extractvalue { ptr, i64, i64 } %t9, 1 %t11 = icmp uge i64 %t8, %t10 - br i1 %t11, label %range9977, label %inrange9978 -range9977: - call void @finch_panic_index(ptr @.str.6745, i64 149, i64 %t8, i64 %t10) + br i1 %t11, label %range10382, label %inrange10383 +range10382: + call void @finch_panic_index(ptr @.str.6953, i64 149, i64 %t8, i64 %t10) unreachable -inrange9978: +inrange10383: %t12 = extractvalue { ptr, i64, i64 } %t9, 0 %t13 = getelementptr inbounds i8, ptr %t12, i64 %t8 %t14 = load i8, ptr %t13 %t15 = icmp eq i8 %t14, 92 - br label %logic.from9979 -logic.from9979: - br i1 %t15, label %logic.rhs9980, label %logic.end9981 -logic.rhs9980: + br label %logic.from10384 +logic.from10384: + br i1 %t15, label %logic.rhs10385, label %logic.end10386 +logic.rhs10385: %t16 = load i64, ptr %a3 %t17 = add i64 %t16, 1 %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t19 = load i64, ptr %t18 %t20 = icmp slt i64 %t17, %t19 - br label %logic.rend9982 -logic.rend9982: - br label %logic.end9981 -logic.end9981: - %t21 = phi i1 [ false, %logic.from9979 ], [ %t20, %logic.rend9982 ] - br i1 %t21, label %then9983, label %else9984 -then9983: + br label %logic.rend10387 +logic.rend10387: + br label %logic.end10386 +logic.end10386: + %t21 = phi i1 [ false, %logic.from10384 ], [ %t20, %logic.rend10387 ] + br i1 %t21, label %then10388, label %else10389 +then10388: %t22 = load i64, ptr %a3 %t23 = add i64 %t22, 1 %t24 = load { ptr, i64, i64 }, ptr %a1 %t25 = extractvalue { ptr, i64, i64 } %t24, 1 %t26 = icmp uge i64 %t23, %t25 - br i1 %t26, label %range9986, label %inrange9987 -range9986: - call void @finch_panic_index(ptr @.str.6746, i64 150, i64 %t23, i64 %t25) + br i1 %t26, label %range10391, label %inrange10392 +range10391: + call void @finch_panic_index(ptr @.str.6954, i64 150, i64 %t23, i64 %t25) unreachable -inrange9987: +inrange10392: %t27 = extractvalue { ptr, i64, i64 } %t24, 0 %t28 = getelementptr inbounds i8, ptr %t27, i64 %t23 %t29 = load i8, ptr %t28 %t30 = icmp eq i8 %t29, 110 - br i1 %t30, label %then9988, label %else9989 -then9988: + br i1 %t30, label %then10393, label %else10394 +then10393: %t31 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t32 = load i64, ptr %t31 %t33 = add i64 %t32, 1 call void @finch_arr_reserve(ptr %a2, i64 %t33, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t34 = load ptr, ptr %a2 %t35 = getelementptr inbounds { ptr, i64, i64 }, ptr %t34, i64 %t32 - store { ptr, i64, i64 } { ptr @.str.6747, i64 1, i64 0 }, ptr %t35 + store { ptr, i64, i64 } { ptr @.str.6955, i64 1, i64 0 }, ptr %t35 store i64 %t33, ptr %t31 - br label %endif9990 -else9989: + br label %endif10395 +else10394: %t36 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t37 = load i64, ptr %a3 %t38 = add i64 %t37, 1 %t39 = load { ptr, i64, i64 }, ptr %a1 %t40 = extractvalue { ptr, i64, i64 } %t39, 1 %t41 = icmp uge i64 %t38, %t40 - br i1 %t41, label %range9991, label %inrange9992 -range9991: - call void @finch_panic_index(ptr @.str.6748, i64 153, i64 %t38, i64 %t40) + br i1 %t41, label %range10396, label %inrange10397 +range10396: + call void @finch_panic_index(ptr @.str.6956, i64 153, i64 %t38, i64 %t40) unreachable -inrange9992: +inrange10397: %t42 = extractvalue { ptr, i64, i64 } %t39, 0 %t43 = getelementptr inbounds i8, ptr %t42, i64 %t38 %t44 = load i8, ptr %t43 @@ -102493,23 +106518,23 @@ inrange9992: %t50 = getelementptr inbounds { ptr, i64, i64 }, ptr %t49, i64 %t47 store { ptr, i64, i64 } %t46, ptr %t50 store i64 %t48, ptr %t36 - br label %endif9990 -endif9990: + br label %endif10395 +endif10395: %t51 = load i64, ptr %a3 %t52 = add i64 %t51, 2 store i64 %t52, ptr %a3 - br label %endif9985 -else9984: + br label %endif10390 +else10389: %t53 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t54 = load i64, ptr %a3 %t55 = load { ptr, i64, i64 }, ptr %a1 %t56 = extractvalue { ptr, i64, i64 } %t55, 1 %t57 = icmp uge i64 %t54, %t56 - br i1 %t57, label %range9993, label %inrange9994 -range9993: - call void @finch_panic_index(ptr @.str.6749, i64 157, i64 %t54, i64 %t56) + br i1 %t57, label %range10398, label %inrange10399 +range10398: + call void @finch_panic_index(ptr @.str.6957, i64 157, i64 %t54, i64 %t56) unreachable -inrange9994: +inrange10399: %t58 = extractvalue { ptr, i64, i64 } %t55, 0 %t59 = getelementptr inbounds i8, ptr %t58, i64 %t54 %t60 = load i8, ptr %t59 @@ -102525,12 +106550,12 @@ inrange9994: %t67 = load i64, ptr %a3 %t68 = add i64 %t67, 1 store i64 %t68, ptr %a3 - br label %endif9985 -endif9985: - br label %while.cond9974 -while.end9976: + br label %endif10390 +endif10390: + br label %while.cond10379 +while.end10381: %t69 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.6750, i64 0, i64 0 }, ptr %a70 + store { ptr, i64, i64 } { ptr @.str.6958, i64 0, i64 0 }, ptr %a70 call void @finch_str_join(ptr %a71, ptr %a2, ptr %a70) %t72 = load { ptr, i64, i64 }, ptr %a71 call void @finch.drop.arr_str(ptr %a2) @@ -102552,37 +106577,37 @@ entry: store i64 %p1, ptr %a2 %t3 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t3, ptr %a4 - store { ptr, i64, i64 } { ptr @.str.6752, i64 1, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.6960, i64 1, i64 0 }, ptr %a6 call void @finch_str_split(ptr %a7, ptr %a4, ptr %a6) %t8 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t8, ptr %a9 %t10 = load i64, ptr %a2 %t11 = icmp sge i64 %t10, 1 - br label %logic.from9995 -logic.from9995: - br i1 %t11, label %logic.rhs9996, label %logic.end9997 -logic.rhs9996: + br label %logic.from10400 +logic.from10400: + br i1 %t11, label %logic.rhs10401, label %logic.end10402 +logic.rhs10401: %t12 = load i64, ptr %a2 %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %a9, i32 0, i32 1 %t14 = load i64, ptr %t13 %t15 = icmp sle i64 %t12, %t14 - br label %logic.rend9998 -logic.rend9998: - br label %logic.end9997 -logic.end9997: - %t16 = phi i1 [ false, %logic.from9995 ], [ %t15, %logic.rend9998 ] - br i1 %t16, label %then9999, label %endif10001 -then9999: + br label %logic.rend10403 +logic.rend10403: + br label %logic.end10402 +logic.end10402: + %t16 = phi i1 [ false, %logic.from10400 ], [ %t15, %logic.rend10403 ] + br i1 %t16, label %then10404, label %endif10406 +then10404: %t17 = load i64, ptr %a2 %t18 = sub i64 %t17, 1 %t19 = load { ptr, i64, i64 }, ptr %a9 %t20 = extractvalue { ptr, i64, i64 } %t19, 1 %t21 = icmp uge i64 %t18, %t20 - br i1 %t21, label %range10002, label %inrange10003 -range10002: - call void @finch_panic_index(ptr @.str.6753, i64 167, i64 %t18, i64 %t20) + br i1 %t21, label %range10407, label %inrange10408 +range10407: + call void @finch_panic_index(ptr @.str.6961, i64 167, i64 %t18, i64 %t20) unreachable -inrange10003: +inrange10408: %t22 = extractvalue { ptr, i64, i64 } %t19, 0 %t23 = getelementptr inbounds { ptr, i64, i64 }, ptr %t22, i64 %t18 %t24 = load { ptr, i64, i64 }, ptr %t23 @@ -102591,9 +106616,9 @@ inrange10003: %t27 = load { ptr, i64, i64 }, ptr %a26 call void @finch.drop.arr_str(ptr %a9) ret { ptr, i64, i64 } %t27 -endif10001: +endif10406: call void @finch.drop.arr_str(ptr %a9) - ret { ptr, i64, i64 } { ptr @.str.6754, i64 0, i64 0 } + ret { ptr, i64, i64 } { ptr @.str.6962, i64 0, i64 0 } } define internal { ptr, i64, i64 } @finch.lsp.readLine() { @@ -102610,25 +106635,25 @@ entry: %a28 = alloca { ptr, i64, i64 }, align 16 %a34 = alloca { ptr, i64, i64 }, align 16 store { ptr, i64, i64 } zeroinitializer, ptr %a1 - br label %while.cond10004 -while.cond10004: - br label %while.body10005 -while.body10005: + br label %while.cond10409 +while.cond10409: + br label %while.body10410 +while.body10410: %t2 = call i32 @getchar() store i32 %t2, ptr %a3 %t4 = load i32, ptr %a3 %t5 = icmp slt i32 %t4, 0 - br i1 %t5, label %then10007, label %endif10009 -then10007: + br i1 %t5, label %then10412, label %endif10414 +then10412: call void @finch.drop.arr_u8(ptr %a1) - ret { ptr, i64, i64 } { ptr @.str.6755, i64 0, i64 0 } -endif10009: + ret { ptr, i64, i64 } { ptr @.str.6963, i64 0, i64 0 } +endif10414: %t6 = load i32, ptr %a3 %t7 = icmp eq i32 %t6, 10 - br i1 %t7, label %then10010, label %endif10012 -then10010: - br label %while.end10006 -endif10012: + br i1 %t7, label %then10415, label %endif10417 +then10415: + br label %while.end10411 +endif10417: %t8 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t9 = load i32, ptr %a3 %t10 = trunc i32 %t9 to i8 @@ -102639,8 +106664,8 @@ endif10012: %t14 = getelementptr inbounds i8, ptr %t13, i64 %t11 store i8 %t10, ptr %t14 store i64 %t12, ptr %t8 - br label %while.cond10004 -while.end10006: + br label %while.cond10409 +while.end10411: %t15 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } zeroinitializer, ptr %a16 store { ptr, i64, i64 } %t15, ptr %a17 @@ -102649,24 +106674,24 @@ while.end10006: store { ptr, i64, i64 } %t18, ptr %a19 %t20 = load { ptr, i64, i64 }, ptr %a19 store { ptr, i64, i64 } %t20, ptr %a21 - store { ptr, i64, i64 } { ptr @.str.6757, i64 1, i64 0 }, ptr %a23 + store { ptr, i64, i64 } { ptr @.str.6965, i64 1, i64 0 }, ptr %a23 %t24 = call i32 @finch_str_ends(ptr %a21, ptr %a23) %t25 = icmp ne i32 %t24, 0 - br i1 %t25, label %then10013, label %endif10015 -then10013: + br i1 %t25, label %then10418, label %endif10420 +then10418: %t26 = load { ptr, i64, i64 }, ptr %a19 store { ptr, i64, i64 } %t26, ptr %a27 %t29 = getelementptr inbounds { ptr, i64, i64 }, ptr %a19, i32 0, i32 1 %t30 = load i64, ptr %t29 %t31 = sub i64 %t30, 1 - call void @finch_str_sub(ptr %a28, ptr %a27, i64 0, i64 %t31, ptr @.str.6758, i64 188) + call void @finch_str_sub(ptr %a28, ptr %a27, i64 0, i64 %t31, ptr @.str.6966, i64 188) %t32 = load { ptr, i64, i64 }, ptr %a28 %t33 = load { ptr, i64, i64 }, ptr %a19 store { ptr, i64, i64 } %t32, ptr %a19 store { ptr, i64, i64 } %t33, ptr %a34 call void @finch_str_drop(ptr %a34) - br label %endif10015 -endif10015: + br label %endif10420 +endif10420: %t35 = load { ptr, i64, i64 }, ptr %a19 call void @finch.drop.arr_u8(ptr %a1) ret { ptr, i64, i64 } %t35 @@ -102696,48 +106721,48 @@ entry: %a60 = alloca { ptr, i64, i64 }, align 16 %a67 = alloca { ptr, i64, i64 }, align 16 store i64 0, ptr %a1 - br label %while.cond10016 -while.cond10016: - br label %while.body10017 -while.body10017: + br label %while.cond10421 +while.cond10421: + br label %while.body10422 +while.body10422: %t2 = call { ptr, i64, i64 } @finch.lsp.readLine() store { ptr, i64, i64 } %t2, ptr %a3 %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %a3, i32 0, i32 1 %t5 = load i64, ptr %t4 %t6 = icmp eq i64 %t5, 0 - br i1 %t6, label %then10019, label %endif10021 -then10019: + br i1 %t6, label %then10424, label %endif10426 +then10424: %t7 = load i64, ptr %a1 %t8 = icmp sgt i64 %t7, 0 - br i1 %t8, label %then10022, label %endif10024 -then10022: + br i1 %t8, label %then10427, label %endif10429 +then10427: call void @finch_str_drop(ptr %a3) - br label %while.end10018 -endif10024: + br label %while.end10423 +endif10429: %t9 = load ptr, ptr @stdin %t10 = call i32 @feof(ptr %t9) %t11 = icmp ne i32 %t10, 0 - br i1 %t11, label %then10025, label %endif10027 -then10025: + br i1 %t11, label %then10430, label %endif10432 +then10430: call void @finch_str_drop(ptr %a3) - %t12 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } { ptr @.str.6759, i64 32, i64 0 }, 2 + %t12 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } { ptr @.str.6967, i64 32, i64 0 }, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t12 -endif10027: +endif10432: call void @finch_str_drop(ptr %a3) - br label %while.cond10016 -endif10021: + br label %while.cond10421 +endif10426: %t13 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t13, ptr %a14 - store { ptr, i64, i64 } { ptr @.str.6761, i64 15, i64 0 }, ptr %a16 + store { ptr, i64, i64 } { ptr @.str.6969, i64 15, i64 0 }, ptr %a16 %t17 = call i32 @finch_str_starts(ptr %a14, ptr %a16) %t18 = icmp ne i32 %t17, 0 - br i1 %t18, label %then10028, label %endif10030 -then10028: + br i1 %t18, label %then10433, label %endif10435 +then10433: %t19 = load { ptr, i64, i64 }, ptr %a3 store { ptr, i64, i64 } %t19, ptr %a20 %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %a3, i32 0, i32 1 %t23 = load i64, ptr %t22 - call void @finch_str_sub(ptr %a21, ptr %a20, i64 15, i64 %t23, ptr @.str.6762, i64 208) + call void @finch_str_sub(ptr %a21, ptr %a20, i64 15, i64 %t23, ptr @.str.6970, i64 208) %t24 = load { ptr, i64, i64 }, ptr %a21 store { ptr, i64, i64 } %t24, ptr %a25 call void @finch_str_trim(ptr %a26, ptr %a25) @@ -102753,42 +106778,42 @@ then10028: store { ptr, i64, i64 } %t27, ptr %a35 call void @finch_str_drop(ptr %a35) %t36 = load i64, ptr %a30 - br i1 %t33, label %or.failed10031, label %or.ok10032 -or.failed10031: + br i1 %t33, label %or.failed10436, label %or.ok10437 +or.failed10436: store { ptr, i64, i64 } %t34, ptr %a37 call void @finch_str_drop(ptr %a37) - br label %or.bend10033 -or.bend10033: - br label %or.end10034 -or.ok10032: - br label %or.end10034 -or.end10034: - %t38 = phi i64 [ 0, %or.bend10033 ], [ %t36, %or.ok10032 ] + br label %or.bend10438 +or.bend10438: + br label %or.end10439 +or.ok10437: + br label %or.end10439 +or.end10439: + %t38 = phi i64 [ 0, %or.bend10438 ], [ %t36, %or.ok10437 ] store i64 %t38, ptr %a1 - br label %endif10030 -endif10030: + br label %endif10435 +endif10435: call void @finch_str_drop(ptr %a3) - br label %while.cond10016 -while.end10018: + br label %while.cond10421 +while.end10423: store { ptr, i64, i64 } zeroinitializer, ptr %a39 %t40 = load i64, ptr %a1 store i64 0, ptr %a41 - br label %for.cond10035 -for.cond10035: + br label %for.cond10440 +for.cond10440: %t42 = load i64, ptr %a41 %t43 = icmp slt i64 %t42, %t40 - br i1 %t43, label %for.body10036, label %for.end10038 -for.body10036: + br i1 %t43, label %for.body10441, label %for.end10443 +for.body10441: %t44 = call i32 @getchar() store i32 %t44, ptr %a45 %t46 = load i32, ptr %a45 %t47 = icmp slt i32 %t46, 0 - br i1 %t47, label %then10039, label %endif10041 -then10039: + br i1 %t47, label %then10444, label %endif10446 +then10444: call void @finch.drop.arr_u8(ptr %a39) - %t48 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } { ptr @.str.6764, i64 25, i64 0 }, 2 + %t48 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } { ptr @.str.6972, i64 25, i64 0 }, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t48 -endif10041: +endif10446: %t49 = getelementptr inbounds { ptr, i64, i64 }, ptr %a39, i32 0, i32 1 %t50 = load i32, ptr %a45 %t51 = trunc i32 %t50 to i8 @@ -102799,13 +106824,13 @@ endif10041: %t55 = getelementptr inbounds i8, ptr %t54, i64 %t52 store i8 %t51, ptr %t55 store i64 %t53, ptr %t49 - br label %for.step10037 -for.step10037: + br label %for.step10442 +for.step10442: %t56 = load i64, ptr %a41 %t57 = add i64 %t56, 1 store i64 %t57, ptr %a41 - br label %for.cond10035 -for.end10038: + br label %for.cond10440 +for.end10443: %t58 = load { ptr, i64, i64 }, ptr %a39 store { ptr, i64, i64 } zeroinitializer, ptr %a59 store { ptr, i64, i64 } %t58, ptr %a60 @@ -102818,12 +106843,12 @@ for.end10038: %t66 = extractvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t62, 1 store { ptr, i64, i64 } %t61, ptr %a67 call void @finch_str_drop(ptr %a67) - br i1 %t64, label %try.failed10042, label %try.ok10043 -try.failed10042: + br i1 %t64, label %try.failed10447, label %try.ok10448 +try.failed10447: call void @finch.drop.arr_u8(ptr %a39) %t68 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t65, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t68 -try.ok10043: +try.ok10448: call void @finch.drop.arr_u8(ptr %a39) %t69 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 %t70 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t69, %S.json.Json %t66, 1 @@ -102856,14 +106881,14 @@ entry: %t6 = load i64, ptr %t5 call void @finch_str_from_int(ptr %a7, i64 %t6) %t8 = load { ptr, i64, i64 }, ptr %a7 - store { ptr, i64, i64 } { ptr @.str.6765, i64 16, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.6973, i64 16, i64 0 }, ptr %a10 store { ptr, i64, i64 } %t8, ptr %a11 call void @finch_str_concat(ptr %a9, ptr %a10, ptr %a11) store { ptr, i64, i64 } %t8, ptr %a12 call void @finch_str_drop(ptr %a12) %t13 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t13, ptr %a15 - store { ptr, i64, i64 } { ptr @.str.6766, i64 4, i64 0 }, ptr %a16 + store { ptr, i64, i64 } { ptr @.str.6974, i64 4, i64 0 }, ptr %a16 call void @finch_str_concat(ptr %a14, ptr %a15, ptr %a16) store { ptr, i64, i64 } %t13, ptr %a17 call void @finch_str_drop(ptr %a17) @@ -102879,7 +106904,7 @@ entry: %t27 = load { ptr, i64, i64 }, ptr %a26 %t28 = extractvalue { ptr, i64, i64 } %t27, 0 %t29 = icmp eq ptr %t28, null - %t30 = select i1 %t29, ptr @.str.6767, ptr %t28 + %t30 = select i1 %t29, ptr @.str.6975, ptr %t28 %t31 = getelementptr inbounds { ptr, i64, i64 }, ptr %a26, i32 0, i32 1 %t32 = load i64, ptr %t31 %t33 = load ptr, ptr @stdout @@ -102899,19 +106924,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond10044 -n.cond10044: + br label %n.cond10449 +n.cond10449: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body10045, label %n.end10046 -n.body10045: + br i1 %t6, label %n.body10450, label %n.end10451 +n.body10450: %t7 = getelementptr inbounds %S.json.Json, ptr %t1, i64 %t5 call void @finch.drop.S_json_Json(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond10044 -n.end10046: + br label %n.cond10449 +n.end10451: call void @finch_arr_free(ptr %a) ret void } @@ -102938,14 +106963,14 @@ entry: store %S.json.Json %p1, ptr %a2 %t3 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t3, ptr %a4 - %t5 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.6769, i64 3, i64 0 }) - call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6768, i64 7, i64 0 }, %S.json.Json %t5) + %t5 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.6977, i64 3, i64 0 }) + call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6976, i64 7, i64 0 }, %S.json.Json %t5) store %S.json.Json %t5, ptr %a6 call void @finch.drop.S_json_Json(ptr %a6) %t7 = load %S.json.Json, ptr %a1 - call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6770, i64 2, i64 0 }, %S.json.Json %t7) + call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6978, i64 2, i64 0 }, %S.json.Json %t7) %t8 = load %S.json.Json, ptr %a2 - call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6771, i64 6, i64 0 }, %S.json.Json %t8) + call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6979, i64 6, i64 0 }, %S.json.Json %t8) %t9 = load %S.json.Json, ptr %a4 call void @finch.lsp.send(%S.json.Json %t9) call void @finch.drop.S_json_Json(ptr %a4) @@ -102963,17 +106988,17 @@ entry: store %S.json.Json %p1, ptr %a2 %t3 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t3, ptr %a4 - %t5 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.6773, i64 3, i64 0 }) - call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6772, i64 7, i64 0 }, %S.json.Json %t5) + %t5 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.6981, i64 3, i64 0 }) + call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6980, i64 7, i64 0 }, %S.json.Json %t5) store %S.json.Json %t5, ptr %a6 call void @finch.drop.S_json_Json(ptr %a6) %t7 = load { ptr, i64, i64 }, ptr %a1 %t8 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t7) - call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6774, i64 6, i64 0 }, %S.json.Json %t8) + call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6982, i64 6, i64 0 }, %S.json.Json %t8) store %S.json.Json %t8, ptr %a9 call void @finch.drop.S_json_Json(ptr %a9) %t10 = load %S.json.Json, ptr %a2 - call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6775, i64 6, i64 0 }, %S.json.Json %t10) + call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6983, i64 6, i64 0 }, %S.json.Json %t10) %t11 = load %S.json.Json, ptr %a4 call void @finch.lsp.send(%S.json.Json %t11) call void @finch.drop.S_json_Json(ptr %a4) @@ -103003,12 +107028,12 @@ entry: store %S.json.Json %t3, ptr %a4 %t5 = load i64, ptr %a1 %t6 = call %S.json.Json @finch.lsp.num(i64 %t5) - call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6776, i64 4, i64 0 }, %S.json.Json %t6) + call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6984, i64 4, i64 0 }, %S.json.Json %t6) store %S.json.Json %t6, ptr %a7 call void @finch.drop.S_json_Json(ptr %a7) %t8 = load i64, ptr %a2 %t9 = call %S.json.Json @finch.lsp.num(i64 %t8) - call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6777, i64 9, i64 0 }, %S.json.Json %t9) + call void @finch.json.Json.set(ptr %a4, { ptr, i64, i64 } { ptr @.str.6985, i64 9, i64 0 }, %S.json.Json %t9) store %S.json.Json %t9, ptr %a10 call void @finch.drop.S_json_Json(ptr %a10) %t11 = load %S.json.Json, ptr %a4 @@ -103031,13 +107056,13 @@ entry: %t6 = load i64, ptr %a1 %t7 = load i64, ptr %a2 %t8 = call %S.json.Json @finch.lsp.position(i64 %t6, i64 %t7) - call void @finch.json.Json.set(ptr %a5, { ptr, i64, i64 } { ptr @.str.6778, i64 5, i64 0 }, %S.json.Json %t8) + call void @finch.json.Json.set(ptr %a5, { ptr, i64, i64 } { ptr @.str.6986, i64 5, i64 0 }, %S.json.Json %t8) store %S.json.Json %t8, ptr %a9 call void @finch.drop.S_json_Json(ptr %a9) %t10 = load i64, ptr %a1 %t11 = load i64, ptr %a3 %t12 = call %S.json.Json @finch.lsp.position(i64 %t10, i64 %t11) - call void @finch.json.Json.set(ptr %a5, { ptr, i64, i64 } { ptr @.str.6779, i64 3, i64 0 }, %S.json.Json %t12) + call void @finch.json.Json.set(ptr %a5, { ptr, i64, i64 } { ptr @.str.6987, i64 3, i64 0 }, %S.json.Json %t12) store %S.json.Json %t12, ptr %a13 call void @finch.drop.S_json_Json(ptr %a13) %t14 = load %S.json.Json, ptr %a5 @@ -103054,7 +107079,7 @@ entry: store { ptr, i64, i64 } %p0, ptr %a1 %t2 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t2, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.6781, i64 1, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.6989, i64 1, i64 0 }, ptr %a5 call void @finch_str_split(ptr %a6, ptr %a3, ptr %a5) %t7 = load { ptr, i64, i64 }, ptr %a6 ret { ptr, i64, i64 } %t7 @@ -103076,17 +107101,17 @@ entry: %t7 = icmp eq i32 %t6, 0 %t8 = load { ptr, i64, i64 }, ptr %a3 %t9 = load i64, ptr %a4 - br i1 %t7, label %or.failed10047, label %or.ok10048 -or.failed10047: + br i1 %t7, label %or.failed10452, label %or.ok10453 +or.failed10452: store { ptr, i64, i64 } %t8, ptr %a10 call void @finch_str_drop(ptr %a10) - br label %or.bend10049 -or.bend10049: - br label %or.end10050 -or.ok10048: - br label %or.end10050 -or.end10050: - %t11 = phi i64 [ 0, %or.bend10049 ], [ %t9, %or.ok10048 ] + br label %or.bend10454 +or.bend10454: + br label %or.end10455 +or.ok10453: + br label %or.end10455 +or.end10455: + %t11 = phi i64 [ 0, %or.bend10454 ], [ %t9, %or.ok10453 ] ret i64 %t11 } @@ -103121,19 +107146,19 @@ entry: store { ptr, i64, i64 } %p0, ptr %a1 %t2 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t2, ptr %a3 - store { ptr, i64, i64 } { ptr @.str.6783, i64 9, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.6991, i64 9, i64 0 }, ptr %a5 %t6 = call i64 @finch_str_find(ptr %a3, ptr %a5) store i64 %t6, ptr %a7 %t8 = load i64, ptr %a7 %t9 = icmp slt i64 %t8, 0 - br i1 %t9, label %then10051, label %endif10053 -then10051: + br i1 %t9, label %then10456, label %endif10458 +then10456: ret %S.lsp.Diag zeroinitializer -endif10053: +endif10458: %t10 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t10, ptr %a11 %t13 = load i64, ptr %a7 - call void @finch_str_sub(ptr %a12, ptr %a11, i64 0, i64 %t13, ptr @.str.6784, i64 280) + call void @finch_str_sub(ptr %a12, ptr %a11, i64 0, i64 %t13, ptr @.str.6992, i64 280) %t14 = load { ptr, i64, i64 }, ptr %a12 store { ptr, i64, i64 } %t14, ptr %a15 %t16 = load { ptr, i64, i64 }, ptr %a1 @@ -103142,36 +107167,36 @@ endif10053: %t20 = add i64 %t19, 9 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t22 = load i64, ptr %t21 - call void @finch_str_sub(ptr %a18, ptr %a17, i64 %t20, i64 %t22, ptr @.str.6785, i64 281) + call void @finch_str_sub(ptr %a18, ptr %a17, i64 %t20, i64 %t22, ptr @.str.6993, i64 281) %t23 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t23, ptr %a24 %t25 = load { ptr, i64, i64 }, ptr %a15 store { ptr, i64, i64 } %t25, ptr %a26 - store { ptr, i64, i64 } { ptr @.str.6787, i64 1, i64 0 }, ptr %a28 + store { ptr, i64, i64 } { ptr @.str.6995, i64 1, i64 0 }, ptr %a28 call void @finch_str_split(ptr %a29, ptr %a26, ptr %a28) %t30 = load { ptr, i64, i64 }, ptr %a29 store { ptr, i64, i64 } %t30, ptr %a31 %t32 = getelementptr inbounds { ptr, i64, i64 }, ptr %a31, i32 0, i32 1 %t33 = load i64, ptr %t32 %t34 = icmp slt i64 %t33, 3 - br i1 %t34, label %then10054, label %endif10056 -then10054: + br i1 %t34, label %then10459, label %endif10461 +then10459: call void @finch.drop.arr_str(ptr %a31) call void @finch_str_drop(ptr %a24) call void @finch_str_drop(ptr %a15) ret %S.lsp.Diag zeroinitializer -endif10056: +endif10461: %t35 = getelementptr inbounds { ptr, i64, i64 }, ptr %a31, i32 0, i32 1 %t36 = load i64, ptr %t35 %t37 = sub i64 %t36, 1 %t38 = load { ptr, i64, i64 }, ptr %a31 %t39 = extractvalue { ptr, i64, i64 } %t38, 1 %t40 = icmp uge i64 %t37, %t39 - br i1 %t40, label %range10057, label %inrange10058 -range10057: - call void @finch_panic_index(ptr @.str.6788, i64 287, i64 %t37, i64 %t39) + br i1 %t40, label %range10462, label %inrange10463 +range10462: + call void @finch_panic_index(ptr @.str.6996, i64 287, i64 %t37, i64 %t39) unreachable -inrange10058: +inrange10463: %t41 = extractvalue { ptr, i64, i64 } %t38, 0 %t42 = getelementptr inbounds { ptr, i64, i64 }, ptr %t41, i64 %t37 %t43 = load { ptr, i64, i64 }, ptr %t42 @@ -103183,11 +107208,11 @@ inrange10058: %t49 = load { ptr, i64, i64 }, ptr %a31 %t50 = extractvalue { ptr, i64, i64 } %t49, 1 %t51 = icmp uge i64 %t48, %t50 - br i1 %t51, label %range10059, label %inrange10060 -range10059: - call void @finch_panic_index(ptr @.str.6789, i64 288, i64 %t48, i64 %t50) + br i1 %t51, label %range10464, label %inrange10465 +range10464: + call void @finch_panic_index(ptr @.str.6997, i64 288, i64 %t48, i64 %t50) unreachable -inrange10060: +inrange10465: %t52 = extractvalue { ptr, i64, i64 } %t49, 0 %t53 = getelementptr inbounds { ptr, i64, i64 }, ptr %t52, i64 %t48 %t54 = load { ptr, i64, i64 }, ptr %t53 @@ -103198,22 +107223,22 @@ inrange10060: %t59 = load i64, ptr %t58 %t60 = sub i64 %t59, 2 store i64 0, ptr %a61 - br label %for.cond10061 -for.cond10061: + br label %for.cond10466 +for.cond10466: %t62 = load i64, ptr %a61 %t63 = icmp slt i64 %t62, %t60 - br i1 %t63, label %for.body10062, label %for.end10064 -for.body10062: + br i1 %t63, label %for.body10467, label %for.end10469 +for.body10467: %t64 = getelementptr inbounds { ptr, i64, i64 }, ptr %a57, i32 0, i32 1 %t65 = load i64, ptr %a61 %t66 = load { ptr, i64, i64 }, ptr %a31 %t67 = extractvalue { ptr, i64, i64 } %t66, 1 %t68 = icmp uge i64 %t65, %t67 - br i1 %t68, label %range10065, label %inrange10066 -range10065: - call void @finch_panic_index(ptr @.str.6790, i64 291, i64 %t65, i64 %t67) + br i1 %t68, label %range10470, label %inrange10471 +range10470: + call void @finch_panic_index(ptr @.str.6998, i64 291, i64 %t65, i64 %t67) unreachable -inrange10066: +inrange10471: %t69 = extractvalue { ptr, i64, i64 } %t66, 0 %t70 = getelementptr inbounds { ptr, i64, i64 }, ptr %t69, i64 %t65 %t71 = load { ptr, i64, i64 }, ptr %t70 @@ -103227,16 +107252,16 @@ inrange10066: %t78 = getelementptr inbounds { ptr, i64, i64 }, ptr %t77, i64 %t75 store { ptr, i64, i64 } %t74, ptr %t78 store i64 %t76, ptr %t64 - br label %for.step10063 -for.step10063: + br label %for.step10468 +for.step10468: %t79 = load i64, ptr %a61 %t80 = add i64 %t79, 1 store i64 %t80, ptr %a61 - br label %for.cond10061 -for.end10064: + br label %for.cond10466 +for.end10469: %t81 = insertvalue %S.lsp.Diag zeroinitializer, i1 true, 0 %t82 = getelementptr inbounds { ptr, i64, i64 }, ptr %a57, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.6791, i64 1, i64 0 }, ptr %a83 + store { ptr, i64, i64 } { ptr @.str.6999, i64 1, i64 0 }, ptr %a83 call void @finch_str_join(ptr %a84, ptr %a57, ptr %a83) %t85 = load { ptr, i64, i64 }, ptr %a84 %t86 = insertvalue %S.lsp.Diag %t81, { ptr, i64, i64 } %t85, 1 @@ -103350,41 +107375,41 @@ entry: store %S.lsp.Analysis zeroinitializer, ptr %a2 %t3 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t3, ptr %a4 - store { ptr, i64, i64 } { ptr @.str.6793, i64 1, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.7001, i64 1, i64 0 }, ptr %a6 call void @finch_str_split(ptr %a7, ptr %a4, ptr %a6) %t8 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t8, ptr %a9 store i64 0, ptr %a10 - br label %each.cond10067 -each.cond10067: + br label %each.cond10472 +each.cond10472: %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %a9, i32 0, i32 1 %t12 = load i64, ptr %t11 %t13 = load i64, ptr %a10 %t14 = icmp slt i64 %t13, %t12 - br i1 %t14, label %each.body10068, label %each.end10070 -each.body10068: + br i1 %t14, label %each.body10473, label %each.end10475 +each.body10473: %t15 = load ptr, ptr %a9 %t16 = getelementptr inbounds { ptr, i64, i64 }, ptr %t15, i64 %t13 %t17 = load { ptr, i64, i64 }, ptr %t16 store { ptr, i64, i64 } %t17, ptr %a18 %t19 = load { ptr, i64, i64 }, ptr %a18 store { ptr, i64, i64 } %t19, ptr %a20 - store { ptr, i64, i64 } { ptr @.str.6795, i64 1, i64 0 }, ptr %a22 + store { ptr, i64, i64 } { ptr @.str.7003, i64 1, i64 0 }, ptr %a22 %t23 = call i32 @finch_str_starts(ptr %a20, ptr %a22) %t24 = icmp ne i32 %t23, 0 - br i1 %t24, label %then10071, label %else10072 -then10071: + br i1 %t24, label %then10476, label %else10477 +then10476: %t25 = load { ptr, i64, i64 }, ptr %a18 %t26 = call { ptr, i64, i64 } @finch.lsp.splitTabs({ ptr, i64, i64 } %t25) store { ptr, i64, i64 } %t26, ptr %a27 %t28 = load { ptr, i64, i64 }, ptr %a27 %t29 = extractvalue { ptr, i64, i64 } %t28, 1 %t30 = icmp uge i64 0, %t29 - br i1 %t30, label %range10074, label %inrange10075 -range10074: - call void @finch_panic_index(ptr @.str.6796, i64 301, i64 0, i64 %t29) + br i1 %t30, label %range10479, label %inrange10480 +range10479: + call void @finch_panic_index(ptr @.str.7004, i64 301, i64 0, i64 %t29) unreachable -inrange10075: +inrange10480: %t31 = extractvalue { ptr, i64, i64 } %t28, 0 %t32 = getelementptr inbounds { ptr, i64, i64 }, ptr %t31, i64 0 %t33 = load { ptr, i64, i64 }, ptr %t32 @@ -103394,33 +107419,33 @@ inrange10075: store { ptr, i64, i64 } %t36, ptr %a37 %t38 = load { ptr, i64, i64 }, ptr %a37 store { ptr, i64, i64 } %t38, ptr %a39 - store { ptr, i64, i64 } { ptr @.str.6797, i64 2, i64 0 }, ptr %a40 + store { ptr, i64, i64 } { ptr @.str.7005, i64 2, i64 0 }, ptr %a40 %t41 = call i32 @finch_str_eq(ptr %a39, ptr %a40) %t42 = icmp ne i32 %t41, 0 - br label %logic.from10076 -logic.from10076: - br i1 %t42, label %logic.rhs10077, label %logic.end10078 -logic.rhs10077: + br label %logic.from10481 +logic.from10481: + br i1 %t42, label %logic.rhs10482, label %logic.end10483 +logic.rhs10482: %t43 = getelementptr inbounds { ptr, i64, i64 }, ptr %a27, i32 0, i32 1 %t44 = load i64, ptr %t43 %t45 = icmp sge i64 %t44, 9 - br label %logic.rend10079 -logic.rend10079: - br label %logic.end10078 -logic.end10078: - %t46 = phi i1 [ false, %logic.from10076 ], [ %t45, %logic.rend10079 ] - br i1 %t46, label %then10080, label %else10081 -then10080: + br label %logic.rend10484 +logic.rend10484: + br label %logic.end10483 +logic.end10483: + %t46 = phi i1 [ false, %logic.from10481 ], [ %t45, %logic.rend10484 ] + br i1 %t46, label %then10485, label %else10486 +then10485: %t47 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 0 %t48 = getelementptr inbounds { ptr, i64, i64 }, ptr %t47, i32 0, i32 1 %t49 = load { ptr, i64, i64 }, ptr %a27 %t50 = extractvalue { ptr, i64, i64 } %t49, 1 %t51 = icmp uge i64 1, %t50 - br i1 %t51, label %range10083, label %inrange10084 -range10083: - call void @finch_panic_index(ptr @.str.6798, i64 303, i64 1, i64 %t50) + br i1 %t51, label %range10488, label %inrange10489 +range10488: + call void @finch_panic_index(ptr @.str.7006, i64 303, i64 1, i64 %t50) unreachable -inrange10084: +inrange10489: %t52 = extractvalue { ptr, i64, i64 } %t49, 0 %t53 = getelementptr inbounds { ptr, i64, i64 }, ptr %t52, i64 1 %t54 = load { ptr, i64, i64 }, ptr %t53 @@ -103431,11 +107456,11 @@ inrange10084: %t59 = load { ptr, i64, i64 }, ptr %a27 %t60 = extractvalue { ptr, i64, i64 } %t59, 1 %t61 = icmp uge i64 2, %t60 - br i1 %t61, label %range10085, label %inrange10086 -range10085: - call void @finch_panic_index(ptr @.str.6799, i64 303, i64 2, i64 %t60) + br i1 %t61, label %range10490, label %inrange10491 +range10490: + call void @finch_panic_index(ptr @.str.7007, i64 303, i64 2, i64 %t60) unreachable -inrange10086: +inrange10491: %t62 = extractvalue { ptr, i64, i64 } %t59, 0 %t63 = getelementptr inbounds { ptr, i64, i64 }, ptr %t62, i64 2 %t64 = load { ptr, i64, i64 }, ptr %t63 @@ -103444,11 +107469,11 @@ inrange10086: %t67 = load { ptr, i64, i64 }, ptr %a27 %t68 = extractvalue { ptr, i64, i64 } %t67, 1 %t69 = icmp uge i64 3, %t68 - br i1 %t69, label %range10087, label %inrange10088 -range10087: - call void @finch_panic_index(ptr @.str.6800, i64 303, i64 3, i64 %t68) + br i1 %t69, label %range10492, label %inrange10493 +range10492: + call void @finch_panic_index(ptr @.str.7008, i64 303, i64 3, i64 %t68) unreachable -inrange10088: +inrange10493: %t70 = extractvalue { ptr, i64, i64 } %t67, 0 %t71 = getelementptr inbounds { ptr, i64, i64 }, ptr %t70, i64 3 %t72 = load { ptr, i64, i64 }, ptr %t71 @@ -103457,11 +107482,11 @@ inrange10088: %t75 = load { ptr, i64, i64 }, ptr %a27 %t76 = extractvalue { ptr, i64, i64 } %t75, 1 %t77 = icmp uge i64 4, %t76 - br i1 %t77, label %range10089, label %inrange10090 -range10089: - call void @finch_panic_index(ptr @.str.6801, i64 303, i64 4, i64 %t76) + br i1 %t77, label %range10494, label %inrange10495 +range10494: + call void @finch_panic_index(ptr @.str.7009, i64 303, i64 4, i64 %t76) unreachable -inrange10090: +inrange10495: %t78 = extractvalue { ptr, i64, i64 } %t75, 0 %t79 = getelementptr inbounds { ptr, i64, i64 }, ptr %t78, i64 4 %t80 = load { ptr, i64, i64 }, ptr %t79 @@ -103470,11 +107495,11 @@ inrange10090: %t83 = load { ptr, i64, i64 }, ptr %a27 %t84 = extractvalue { ptr, i64, i64 } %t83, 1 %t85 = icmp uge i64 5, %t84 - br i1 %t85, label %range10091, label %inrange10092 -range10091: - call void @finch_panic_index(ptr @.str.6802, i64 303, i64 5, i64 %t84) + br i1 %t85, label %range10496, label %inrange10497 +range10496: + call void @finch_panic_index(ptr @.str.7010, i64 303, i64 5, i64 %t84) unreachable -inrange10092: +inrange10497: %t86 = extractvalue { ptr, i64, i64 } %t83, 0 %t87 = getelementptr inbounds { ptr, i64, i64 }, ptr %t86, i64 5 %t88 = load { ptr, i64, i64 }, ptr %t87 @@ -103485,11 +107510,11 @@ inrange10092: %t93 = load { ptr, i64, i64 }, ptr %a27 %t94 = extractvalue { ptr, i64, i64 } %t93, 1 %t95 = icmp uge i64 6, %t94 - br i1 %t95, label %range10093, label %inrange10094 -range10093: - call void @finch_panic_index(ptr @.str.6803, i64 303, i64 6, i64 %t94) + br i1 %t95, label %range10498, label %inrange10499 +range10498: + call void @finch_panic_index(ptr @.str.7011, i64 303, i64 6, i64 %t94) unreachable -inrange10094: +inrange10499: %t96 = extractvalue { ptr, i64, i64 } %t93, 0 %t97 = getelementptr inbounds { ptr, i64, i64 }, ptr %t96, i64 6 %t98 = load { ptr, i64, i64 }, ptr %t97 @@ -103498,11 +107523,11 @@ inrange10094: %t101 = load { ptr, i64, i64 }, ptr %a27 %t102 = extractvalue { ptr, i64, i64 } %t101, 1 %t103 = icmp uge i64 7, %t102 - br i1 %t103, label %range10095, label %inrange10096 -range10095: - call void @finch_panic_index(ptr @.str.6804, i64 303, i64 7, i64 %t102) + br i1 %t103, label %range10500, label %inrange10501 +range10500: + call void @finch_panic_index(ptr @.str.7012, i64 303, i64 7, i64 %t102) unreachable -inrange10096: +inrange10501: %t104 = extractvalue { ptr, i64, i64 } %t101, 0 %t105 = getelementptr inbounds { ptr, i64, i64 }, ptr %t104, i64 7 %t106 = load { ptr, i64, i64 }, ptr %t105 @@ -103511,11 +107536,11 @@ inrange10096: %t109 = load { ptr, i64, i64 }, ptr %a27 %t110 = extractvalue { ptr, i64, i64 } %t109, 1 %t111 = icmp uge i64 8, %t110 - br i1 %t111, label %range10097, label %inrange10098 -range10097: - call void @finch_panic_index(ptr @.str.6805, i64 303, i64 8, i64 %t110) + br i1 %t111, label %range10502, label %inrange10503 +range10502: + call void @finch_panic_index(ptr @.str.7013, i64 303, i64 8, i64 %t110) unreachable -inrange10098: +inrange10503: %t112 = extractvalue { ptr, i64, i64 } %t109, 0 %t113 = getelementptr inbounds { ptr, i64, i64 }, ptr %t112, i64 8 %t114 = load { ptr, i64, i64 }, ptr %t113 @@ -103528,37 +107553,37 @@ inrange10098: %t120 = getelementptr inbounds %S.lsp.Ref, ptr %t119, i64 %t117 store %S.lsp.Ref %t116, ptr %t120 store i64 %t118, ptr %t48 - br label %endif10082 -else10081: + br label %endif10487 +else10486: %t121 = load { ptr, i64, i64 }, ptr %a37 store { ptr, i64, i64 } %t121, ptr %a122 - store { ptr, i64, i64 } { ptr @.str.6806, i64 2, i64 0 }, ptr %a123 + store { ptr, i64, i64 } { ptr @.str.7014, i64 2, i64 0 }, ptr %a123 %t124 = call i32 @finch_str_eq(ptr %a122, ptr %a123) %t125 = icmp ne i32 %t124, 0 - br label %logic.from10099 -logic.from10099: - br i1 %t125, label %logic.rhs10100, label %logic.end10101 -logic.rhs10100: + br label %logic.from10504 +logic.from10504: + br i1 %t125, label %logic.rhs10505, label %logic.end10506 +logic.rhs10505: %t126 = getelementptr inbounds { ptr, i64, i64 }, ptr %a27, i32 0, i32 1 %t127 = load i64, ptr %t126 %t128 = icmp sge i64 %t127, 9 - br label %logic.rend10102 -logic.rend10102: - br label %logic.end10101 -logic.end10101: - %t129 = phi i1 [ false, %logic.from10099 ], [ %t128, %logic.rend10102 ] - br i1 %t129, label %then10103, label %else10104 -then10103: + br label %logic.rend10507 +logic.rend10507: + br label %logic.end10506 +logic.end10506: + %t129 = phi i1 [ false, %logic.from10504 ], [ %t128, %logic.rend10507 ] + br i1 %t129, label %then10508, label %else10509 +then10508: %t130 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 1 %t131 = getelementptr inbounds { ptr, i64, i64 }, ptr %t130, i32 0, i32 1 %t132 = load { ptr, i64, i64 }, ptr %a27 %t133 = extractvalue { ptr, i64, i64 } %t132, 1 %t134 = icmp uge i64 1, %t133 - br i1 %t134, label %range10106, label %inrange10107 -range10106: - call void @finch_panic_index(ptr @.str.6807, i64 305, i64 1, i64 %t133) + br i1 %t134, label %range10511, label %inrange10512 +range10511: + call void @finch_panic_index(ptr @.str.7015, i64 305, i64 1, i64 %t133) unreachable -inrange10107: +inrange10512: %t135 = extractvalue { ptr, i64, i64 } %t132, 0 %t136 = getelementptr inbounds { ptr, i64, i64 }, ptr %t135, i64 1 %t137 = load { ptr, i64, i64 }, ptr %t136 @@ -103569,11 +107594,11 @@ inrange10107: %t142 = load { ptr, i64, i64 }, ptr %a27 %t143 = extractvalue { ptr, i64, i64 } %t142, 1 %t144 = icmp uge i64 2, %t143 - br i1 %t144, label %range10108, label %inrange10109 -range10108: - call void @finch_panic_index(ptr @.str.6808, i64 305, i64 2, i64 %t143) + br i1 %t144, label %range10513, label %inrange10514 +range10513: + call void @finch_panic_index(ptr @.str.7016, i64 305, i64 2, i64 %t143) unreachable -inrange10109: +inrange10514: %t145 = extractvalue { ptr, i64, i64 } %t142, 0 %t146 = getelementptr inbounds { ptr, i64, i64 }, ptr %t145, i64 2 %t147 = load { ptr, i64, i64 }, ptr %t146 @@ -103584,11 +107609,11 @@ inrange10109: %t152 = load { ptr, i64, i64 }, ptr %a27 %t153 = extractvalue { ptr, i64, i64 } %t152, 1 %t154 = icmp uge i64 3, %t153 - br i1 %t154, label %range10110, label %inrange10111 -range10110: - call void @finch_panic_index(ptr @.str.6809, i64 305, i64 3, i64 %t153) + br i1 %t154, label %range10515, label %inrange10516 +range10515: + call void @finch_panic_index(ptr @.str.7017, i64 305, i64 3, i64 %t153) unreachable -inrange10111: +inrange10516: %t155 = extractvalue { ptr, i64, i64 } %t152, 0 %t156 = getelementptr inbounds { ptr, i64, i64 }, ptr %t155, i64 3 %t157 = load { ptr, i64, i64 }, ptr %t156 @@ -103599,11 +107624,11 @@ inrange10111: %t162 = load { ptr, i64, i64 }, ptr %a27 %t163 = extractvalue { ptr, i64, i64 } %t162, 1 %t164 = icmp uge i64 4, %t163 - br i1 %t164, label %range10112, label %inrange10113 -range10112: - call void @finch_panic_index(ptr @.str.6810, i64 305, i64 4, i64 %t163) + br i1 %t164, label %range10517, label %inrange10518 +range10517: + call void @finch_panic_index(ptr @.str.7018, i64 305, i64 4, i64 %t163) unreachable -inrange10113: +inrange10518: %t165 = extractvalue { ptr, i64, i64 } %t162, 0 %t166 = getelementptr inbounds { ptr, i64, i64 }, ptr %t165, i64 4 %t167 = load { ptr, i64, i64 }, ptr %t166 @@ -103612,11 +107637,11 @@ inrange10113: %t170 = load { ptr, i64, i64 }, ptr %a27 %t171 = extractvalue { ptr, i64, i64 } %t170, 1 %t172 = icmp uge i64 5, %t171 - br i1 %t172, label %range10114, label %inrange10115 -range10114: - call void @finch_panic_index(ptr @.str.6811, i64 305, i64 5, i64 %t171) + br i1 %t172, label %range10519, label %inrange10520 +range10519: + call void @finch_panic_index(ptr @.str.7019, i64 305, i64 5, i64 %t171) unreachable -inrange10115: +inrange10520: %t173 = extractvalue { ptr, i64, i64 } %t170, 0 %t174 = getelementptr inbounds { ptr, i64, i64 }, ptr %t173, i64 5 %t175 = load { ptr, i64, i64 }, ptr %t174 @@ -103625,11 +107650,11 @@ inrange10115: %t178 = load { ptr, i64, i64 }, ptr %a27 %t179 = extractvalue { ptr, i64, i64 } %t178, 1 %t180 = icmp uge i64 6, %t179 - br i1 %t180, label %range10116, label %inrange10117 -range10116: - call void @finch_panic_index(ptr @.str.6812, i64 305, i64 6, i64 %t179) + br i1 %t180, label %range10521, label %inrange10522 +range10521: + call void @finch_panic_index(ptr @.str.7020, i64 305, i64 6, i64 %t179) unreachable -inrange10117: +inrange10522: %t181 = extractvalue { ptr, i64, i64 } %t178, 0 %t182 = getelementptr inbounds { ptr, i64, i64 }, ptr %t181, i64 6 %t183 = load { ptr, i64, i64 }, ptr %t182 @@ -103640,11 +107665,11 @@ inrange10117: %t188 = load { ptr, i64, i64 }, ptr %a27 %t189 = extractvalue { ptr, i64, i64 } %t188, 1 %t190 = icmp uge i64 7, %t189 - br i1 %t190, label %range10118, label %inrange10119 -range10118: - call void @finch_panic_index(ptr @.str.6813, i64 305, i64 7, i64 %t189) + br i1 %t190, label %range10523, label %inrange10524 +range10523: + call void @finch_panic_index(ptr @.str.7021, i64 305, i64 7, i64 %t189) unreachable -inrange10119: +inrange10524: %t191 = extractvalue { ptr, i64, i64 } %t188, 0 %t192 = getelementptr inbounds { ptr, i64, i64 }, ptr %t191, i64 7 %t193 = load { ptr, i64, i64 }, ptr %t192 @@ -103653,11 +107678,11 @@ inrange10119: %t196 = load { ptr, i64, i64 }, ptr %a27 %t197 = extractvalue { ptr, i64, i64 } %t196, 1 %t198 = icmp uge i64 8, %t197 - br i1 %t198, label %range10120, label %inrange10121 -range10120: - call void @finch_panic_index(ptr @.str.6814, i64 305, i64 8, i64 %t197) + br i1 %t198, label %range10525, label %inrange10526 +range10525: + call void @finch_panic_index(ptr @.str.7022, i64 305, i64 8, i64 %t197) unreachable -inrange10121: +inrange10526: %t199 = extractvalue { ptr, i64, i64 } %t196, 0 %t200 = getelementptr inbounds { ptr, i64, i64 }, ptr %t199, i64 8 %t201 = load { ptr, i64, i64 }, ptr %t200 @@ -103670,37 +107695,37 @@ inrange10121: %t207 = getelementptr inbounds %S.lsp.VarRec, ptr %t206, i64 %t204 store %S.lsp.VarRec %t203, ptr %t207 store i64 %t205, ptr %t131 - br label %endif10105 -else10104: + br label %endif10510 +else10509: %t208 = load { ptr, i64, i64 }, ptr %a37 store { ptr, i64, i64 } %t208, ptr %a209 - store { ptr, i64, i64 } { ptr @.str.6815, i64 2, i64 0 }, ptr %a210 + store { ptr, i64, i64 } { ptr @.str.7023, i64 2, i64 0 }, ptr %a210 %t211 = call i32 @finch_str_eq(ptr %a209, ptr %a210) %t212 = icmp ne i32 %t211, 0 - br label %logic.from10122 -logic.from10122: - br i1 %t212, label %logic.rhs10123, label %logic.end10124 -logic.rhs10123: + br label %logic.from10527 +logic.from10527: + br i1 %t212, label %logic.rhs10528, label %logic.end10529 +logic.rhs10528: %t213 = getelementptr inbounds { ptr, i64, i64 }, ptr %a27, i32 0, i32 1 %t214 = load i64, ptr %t213 %t215 = icmp sge i64 %t214, 10 - br label %logic.rend10125 -logic.rend10125: - br label %logic.end10124 -logic.end10124: - %t216 = phi i1 [ false, %logic.from10122 ], [ %t215, %logic.rend10125 ] - br i1 %t216, label %then10126, label %else10127 -then10126: + br label %logic.rend10530 +logic.rend10530: + br label %logic.end10529 +logic.end10529: + %t216 = phi i1 [ false, %logic.from10527 ], [ %t215, %logic.rend10530 ] + br i1 %t216, label %then10531, label %else10532 +then10531: %t217 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 2 %t218 = getelementptr inbounds { ptr, i64, i64 }, ptr %t217, i32 0, i32 1 %t219 = load { ptr, i64, i64 }, ptr %a27 %t220 = extractvalue { ptr, i64, i64 } %t219, 1 %t221 = icmp uge i64 1, %t220 - br i1 %t221, label %range10129, label %inrange10130 -range10129: - call void @finch_panic_index(ptr @.str.6816, i64 307, i64 1, i64 %t220) + br i1 %t221, label %range10534, label %inrange10535 +range10534: + call void @finch_panic_index(ptr @.str.7024, i64 307, i64 1, i64 %t220) unreachable -inrange10130: +inrange10535: %t222 = extractvalue { ptr, i64, i64 } %t219, 0 %t223 = getelementptr inbounds { ptr, i64, i64 }, ptr %t222, i64 1 %t224 = load { ptr, i64, i64 }, ptr %t223 @@ -103711,11 +107736,11 @@ inrange10130: %t229 = load { ptr, i64, i64 }, ptr %a27 %t230 = extractvalue { ptr, i64, i64 } %t229, 1 %t231 = icmp uge i64 2, %t230 - br i1 %t231, label %range10131, label %inrange10132 -range10131: - call void @finch_panic_index(ptr @.str.6817, i64 307, i64 2, i64 %t230) + br i1 %t231, label %range10536, label %inrange10537 +range10536: + call void @finch_panic_index(ptr @.str.7025, i64 307, i64 2, i64 %t230) unreachable -inrange10132: +inrange10537: %t232 = extractvalue { ptr, i64, i64 } %t229, 0 %t233 = getelementptr inbounds { ptr, i64, i64 }, ptr %t232, i64 2 %t234 = load { ptr, i64, i64 }, ptr %t233 @@ -103726,11 +107751,11 @@ inrange10132: %t239 = load { ptr, i64, i64 }, ptr %a27 %t240 = extractvalue { ptr, i64, i64 } %t239, 1 %t241 = icmp uge i64 3, %t240 - br i1 %t241, label %range10133, label %inrange10134 -range10133: - call void @finch_panic_index(ptr @.str.6818, i64 307, i64 3, i64 %t240) + br i1 %t241, label %range10538, label %inrange10539 +range10538: + call void @finch_panic_index(ptr @.str.7026, i64 307, i64 3, i64 %t240) unreachable -inrange10134: +inrange10539: %t242 = extractvalue { ptr, i64, i64 } %t239, 0 %t243 = getelementptr inbounds { ptr, i64, i64 }, ptr %t242, i64 3 %t244 = load { ptr, i64, i64 }, ptr %t243 @@ -103741,11 +107766,11 @@ inrange10134: %t249 = load { ptr, i64, i64 }, ptr %a27 %t250 = extractvalue { ptr, i64, i64 } %t249, 1 %t251 = icmp uge i64 4, %t250 - br i1 %t251, label %range10135, label %inrange10136 -range10135: - call void @finch_panic_index(ptr @.str.6819, i64 307, i64 4, i64 %t250) + br i1 %t251, label %range10540, label %inrange10541 +range10540: + call void @finch_panic_index(ptr @.str.7027, i64 307, i64 4, i64 %t250) unreachable -inrange10136: +inrange10541: %t252 = extractvalue { ptr, i64, i64 } %t249, 0 %t253 = getelementptr inbounds { ptr, i64, i64 }, ptr %t252, i64 4 %t254 = load { ptr, i64, i64 }, ptr %t253 @@ -103756,11 +107781,11 @@ inrange10136: %t259 = load { ptr, i64, i64 }, ptr %a27 %t260 = extractvalue { ptr, i64, i64 } %t259, 1 %t261 = icmp uge i64 5, %t260 - br i1 %t261, label %range10137, label %inrange10138 -range10137: - call void @finch_panic_index(ptr @.str.6820, i64 307, i64 5, i64 %t260) + br i1 %t261, label %range10542, label %inrange10543 +range10542: + call void @finch_panic_index(ptr @.str.7028, i64 307, i64 5, i64 %t260) unreachable -inrange10138: +inrange10543: %t262 = extractvalue { ptr, i64, i64 } %t259, 0 %t263 = getelementptr inbounds { ptr, i64, i64 }, ptr %t262, i64 5 %t264 = load { ptr, i64, i64 }, ptr %t263 @@ -103769,11 +107794,11 @@ inrange10138: %t267 = load { ptr, i64, i64 }, ptr %a27 %t268 = extractvalue { ptr, i64, i64 } %t267, 1 %t269 = icmp uge i64 6, %t268 - br i1 %t269, label %range10139, label %inrange10140 -range10139: - call void @finch_panic_index(ptr @.str.6821, i64 307, i64 6, i64 %t268) + br i1 %t269, label %range10544, label %inrange10545 +range10544: + call void @finch_panic_index(ptr @.str.7029, i64 307, i64 6, i64 %t268) unreachable -inrange10140: +inrange10545: %t270 = extractvalue { ptr, i64, i64 } %t267, 0 %t271 = getelementptr inbounds { ptr, i64, i64 }, ptr %t270, i64 6 %t272 = load { ptr, i64, i64 }, ptr %t271 @@ -103782,11 +107807,11 @@ inrange10140: %t275 = load { ptr, i64, i64 }, ptr %a27 %t276 = extractvalue { ptr, i64, i64 } %t275, 1 %t277 = icmp uge i64 7, %t276 - br i1 %t277, label %range10141, label %inrange10142 -range10141: - call void @finch_panic_index(ptr @.str.6822, i64 307, i64 7, i64 %t276) + br i1 %t277, label %range10546, label %inrange10547 +range10546: + call void @finch_panic_index(ptr @.str.7030, i64 307, i64 7, i64 %t276) unreachable -inrange10142: +inrange10547: %t278 = extractvalue { ptr, i64, i64 } %t275, 0 %t279 = getelementptr inbounds { ptr, i64, i64 }, ptr %t278, i64 7 %t280 = load { ptr, i64, i64 }, ptr %t279 @@ -103795,11 +107820,11 @@ inrange10142: %t283 = load { ptr, i64, i64 }, ptr %a27 %t284 = extractvalue { ptr, i64, i64 } %t283, 1 %t285 = icmp uge i64 8, %t284 - br i1 %t285, label %range10143, label %inrange10144 -range10143: - call void @finch_panic_index(ptr @.str.6823, i64 307, i64 8, i64 %t284) + br i1 %t285, label %range10548, label %inrange10549 +range10548: + call void @finch_panic_index(ptr @.str.7031, i64 307, i64 8, i64 %t284) unreachable -inrange10144: +inrange10549: %t286 = extractvalue { ptr, i64, i64 } %t283, 0 %t287 = getelementptr inbounds { ptr, i64, i64 }, ptr %t286, i64 8 %t288 = load { ptr, i64, i64 }, ptr %t287 @@ -103808,16 +107833,16 @@ inrange10144: %t291 = load { ptr, i64, i64 }, ptr %a27 %t292 = extractvalue { ptr, i64, i64 } %t291, 1 %t293 = icmp uge i64 9, %t292 - br i1 %t293, label %range10145, label %inrange10146 -range10145: - call void @finch_panic_index(ptr @.str.6824, i64 307, i64 9, i64 %t292) + br i1 %t293, label %range10550, label %inrange10551 +range10550: + call void @finch_panic_index(ptr @.str.7032, i64 307, i64 9, i64 %t292) unreachable -inrange10146: +inrange10551: %t294 = extractvalue { ptr, i64, i64 } %t291, 0 %t295 = getelementptr inbounds { ptr, i64, i64 }, ptr %t294, i64 9 %t296 = load { ptr, i64, i64 }, ptr %t295 store { ptr, i64, i64 } %t296, ptr %a297 - store { ptr, i64, i64 } { ptr @.str.6826, i64 1, i64 0 }, ptr %a299 + store { ptr, i64, i64 } { ptr @.str.7034, i64 1, i64 0 }, ptr %a299 call void @finch_str_split(ptr %a300, ptr %a297, ptr %a299) %t301 = load { ptr, i64, i64 }, ptr %a300 %t302 = insertvalue %S.lsp.FnRec %t290, { ptr, i64, i64 } %t301, 8 @@ -103828,37 +107853,37 @@ inrange10146: %t306 = getelementptr inbounds %S.lsp.FnRec, ptr %t305, i64 %t303 store %S.lsp.FnRec %t302, ptr %t306 store i64 %t304, ptr %t218 - br label %endif10128 -else10127: + br label %endif10533 +else10532: %t307 = load { ptr, i64, i64 }, ptr %a37 store { ptr, i64, i64 } %t307, ptr %a308 - store { ptr, i64, i64 } { ptr @.str.6827, i64 2, i64 0 }, ptr %a309 + store { ptr, i64, i64 } { ptr @.str.7035, i64 2, i64 0 }, ptr %a309 %t310 = call i32 @finch_str_eq(ptr %a308, ptr %a309) %t311 = icmp ne i32 %t310, 0 - br label %logic.from10147 -logic.from10147: - br i1 %t311, label %logic.rhs10148, label %logic.end10149 -logic.rhs10148: + br label %logic.from10552 +logic.from10552: + br i1 %t311, label %logic.rhs10553, label %logic.end10554 +logic.rhs10553: %t312 = getelementptr inbounds { ptr, i64, i64 }, ptr %a27, i32 0, i32 1 %t313 = load i64, ptr %t312 %t314 = icmp sge i64 %t313, 6 - br label %logic.rend10150 -logic.rend10150: - br label %logic.end10149 -logic.end10149: - %t315 = phi i1 [ false, %logic.from10147 ], [ %t314, %logic.rend10150 ] - br i1 %t315, label %then10151, label %else10152 -then10151: + br label %logic.rend10555 +logic.rend10555: + br label %logic.end10554 +logic.end10554: + %t315 = phi i1 [ false, %logic.from10552 ], [ %t314, %logic.rend10555 ] + br i1 %t315, label %then10556, label %else10557 +then10556: %t316 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 3 %t317 = getelementptr inbounds { ptr, i64, i64 }, ptr %t316, i32 0, i32 1 %t318 = load { ptr, i64, i64 }, ptr %a27 %t319 = extractvalue { ptr, i64, i64 } %t318, 1 %t320 = icmp uge i64 1, %t319 - br i1 %t320, label %range10154, label %inrange10155 -range10154: - call void @finch_panic_index(ptr @.str.6828, i64 309, i64 1, i64 %t319) + br i1 %t320, label %range10559, label %inrange10560 +range10559: + call void @finch_panic_index(ptr @.str.7036, i64 309, i64 1, i64 %t319) unreachable -inrange10155: +inrange10560: %t321 = extractvalue { ptr, i64, i64 } %t318, 0 %t322 = getelementptr inbounds { ptr, i64, i64 }, ptr %t321, i64 1 %t323 = load { ptr, i64, i64 }, ptr %t322 @@ -103869,11 +107894,11 @@ inrange10155: %t328 = load { ptr, i64, i64 }, ptr %a27 %t329 = extractvalue { ptr, i64, i64 } %t328, 1 %t330 = icmp uge i64 2, %t329 - br i1 %t330, label %range10156, label %inrange10157 -range10156: - call void @finch_panic_index(ptr @.str.6829, i64 309, i64 2, i64 %t329) + br i1 %t330, label %range10561, label %inrange10562 +range10561: + call void @finch_panic_index(ptr @.str.7037, i64 309, i64 2, i64 %t329) unreachable -inrange10157: +inrange10562: %t331 = extractvalue { ptr, i64, i64 } %t328, 0 %t332 = getelementptr inbounds { ptr, i64, i64 }, ptr %t331, i64 2 %t333 = load { ptr, i64, i64 }, ptr %t332 @@ -103884,11 +107909,11 @@ inrange10157: %t338 = load { ptr, i64, i64 }, ptr %a27 %t339 = extractvalue { ptr, i64, i64 } %t338, 1 %t340 = icmp uge i64 3, %t339 - br i1 %t340, label %range10158, label %inrange10159 -range10158: - call void @finch_panic_index(ptr @.str.6830, i64 309, i64 3, i64 %t339) + br i1 %t340, label %range10563, label %inrange10564 +range10563: + call void @finch_panic_index(ptr @.str.7038, i64 309, i64 3, i64 %t339) unreachable -inrange10159: +inrange10564: %t341 = extractvalue { ptr, i64, i64 } %t338, 0 %t342 = getelementptr inbounds { ptr, i64, i64 }, ptr %t341, i64 3 %t343 = load { ptr, i64, i64 }, ptr %t342 @@ -103899,11 +107924,11 @@ inrange10159: %t348 = load { ptr, i64, i64 }, ptr %a27 %t349 = extractvalue { ptr, i64, i64 } %t348, 1 %t350 = icmp uge i64 4, %t349 - br i1 %t350, label %range10160, label %inrange10161 -range10160: - call void @finch_panic_index(ptr @.str.6831, i64 309, i64 4, i64 %t349) + br i1 %t350, label %range10565, label %inrange10566 +range10565: + call void @finch_panic_index(ptr @.str.7039, i64 309, i64 4, i64 %t349) unreachable -inrange10161: +inrange10566: %t351 = extractvalue { ptr, i64, i64 } %t348, 0 %t352 = getelementptr inbounds { ptr, i64, i64 }, ptr %t351, i64 4 %t353 = load { ptr, i64, i64 }, ptr %t352 @@ -103912,11 +107937,11 @@ inrange10161: %t356 = load { ptr, i64, i64 }, ptr %a27 %t357 = extractvalue { ptr, i64, i64 } %t356, 1 %t358 = icmp uge i64 5, %t357 - br i1 %t358, label %range10162, label %inrange10163 -range10162: - call void @finch_panic_index(ptr @.str.6832, i64 309, i64 5, i64 %t357) + br i1 %t358, label %range10567, label %inrange10568 +range10567: + call void @finch_panic_index(ptr @.str.7040, i64 309, i64 5, i64 %t357) unreachable -inrange10163: +inrange10568: %t359 = extractvalue { ptr, i64, i64 } %t356, 0 %t360 = getelementptr inbounds { ptr, i64, i64 }, ptr %t359, i64 5 %t361 = load { ptr, i64, i64 }, ptr %t360 @@ -103929,40 +107954,40 @@ inrange10163: %t367 = getelementptr inbounds %S.lsp.StructRec, ptr %t366, i64 %t364 store %S.lsp.StructRec %t363, ptr %t367 store i64 %t365, ptr %t317 - br label %endif10153 -else10152: + br label %endif10558 +else10557: %t368 = load { ptr, i64, i64 }, ptr %a37 store { ptr, i64, i64 } %t368, ptr %a369 - store { ptr, i64, i64 } { ptr @.str.6833, i64 3, i64 0 }, ptr %a370 + store { ptr, i64, i64 } { ptr @.str.7041, i64 3, i64 0 }, ptr %a370 %t371 = call i32 @finch_str_eq(ptr %a369, ptr %a370) %t372 = icmp ne i32 %t371, 0 - br label %logic.from10164 -logic.from10164: - br i1 %t372, label %logic.rhs10165, label %logic.end10166 -logic.rhs10165: + br label %logic.from10569 +logic.from10569: + br i1 %t372, label %logic.rhs10570, label %logic.end10571 +logic.rhs10570: %t373 = getelementptr inbounds { ptr, i64, i64 }, ptr %a27, i32 0, i32 1 %t374 = load i64, ptr %t373 %t375 = icmp sge i64 %t374, 5 - br label %logic.rend10167 -logic.rend10167: - br label %logic.end10166 -logic.end10166: - %t376 = phi i1 [ false, %logic.from10164 ], [ %t375, %logic.rend10167 ] - br label %logic.from10168 -logic.from10168: - br i1 %t376, label %logic.rhs10169, label %logic.end10170 -logic.rhs10169: + br label %logic.rend10572 +logic.rend10572: + br label %logic.end10571 +logic.end10571: + %t376 = phi i1 [ false, %logic.from10569 ], [ %t375, %logic.rend10572 ] + br label %logic.from10573 +logic.from10573: + br i1 %t376, label %logic.rhs10574, label %logic.end10575 +logic.rhs10574: %t377 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 3 %t378 = getelementptr inbounds { ptr, i64, i64 }, ptr %t377, i32 0, i32 1 %t379 = load i64, ptr %t378 %t380 = icmp sgt i64 %t379, 0 - br label %logic.rend10171 -logic.rend10171: - br label %logic.end10170 -logic.end10170: - %t381 = phi i1 [ false, %logic.from10168 ], [ %t380, %logic.rend10171 ] - br i1 %t381, label %then10172, label %else10173 -then10172: + br label %logic.rend10576 +logic.rend10576: + br label %logic.end10575 +logic.end10575: + %t381 = phi i1 [ false, %logic.from10573 ], [ %t380, %logic.rend10576 ] + br i1 %t381, label %then10577, label %else10578 +then10577: %t382 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 3 %t383 = getelementptr inbounds { ptr, i64, i64 }, ptr %t382, i32 0, i32 1 %t384 = load i64, ptr %t383 @@ -103973,11 +107998,11 @@ then10172: %t389 = load { ptr, i64, i64 }, ptr %t387 %t390 = extractvalue { ptr, i64, i64 } %t389, 1 %t391 = icmp uge i64 %t388, %t390 - br i1 %t391, label %range10175, label %inrange10176 -range10175: - call void @finch_panic_index(ptr @.str.6834, i64 312, i64 %t388, i64 %t390) + br i1 %t391, label %range10580, label %inrange10581 +range10580: + call void @finch_panic_index(ptr @.str.7042, i64 312, i64 %t388, i64 %t390) unreachable -inrange10176: +inrange10581: %t392 = extractvalue { ptr, i64, i64 } %t389, 0 %t393 = getelementptr inbounds %S.lsp.StructRec, ptr %t392, i64 %t388 %t394 = getelementptr inbounds %S.lsp.StructRec, ptr %t393, i32 0, i32 5 @@ -103985,11 +108010,11 @@ inrange10176: %t396 = load { ptr, i64, i64 }, ptr %a27 %t397 = extractvalue { ptr, i64, i64 } %t396, 1 %t398 = icmp uge i64 3, %t397 - br i1 %t398, label %range10177, label %inrange10178 -range10177: - call void @finch_panic_index(ptr @.str.6835, i64 312, i64 3, i64 %t397) + br i1 %t398, label %range10582, label %inrange10583 +range10582: + call void @finch_panic_index(ptr @.str.7043, i64 312, i64 3, i64 %t397) unreachable -inrange10178: +inrange10583: %t399 = extractvalue { ptr, i64, i64 } %t396, 0 %t400 = getelementptr inbounds { ptr, i64, i64 }, ptr %t399, i64 3 %t401 = load { ptr, i64, i64 }, ptr %t400 @@ -104008,11 +108033,11 @@ inrange10178: %t411 = load { ptr, i64, i64 }, ptr %t409 %t412 = extractvalue { ptr, i64, i64 } %t411, 1 %t413 = icmp uge i64 %t410, %t412 - br i1 %t413, label %range10179, label %inrange10180 -range10179: - call void @finch_panic_index(ptr @.str.6836, i64 313, i64 %t410, i64 %t412) + br i1 %t413, label %range10584, label %inrange10585 +range10584: + call void @finch_panic_index(ptr @.str.7044, i64 313, i64 %t410, i64 %t412) unreachable -inrange10180: +inrange10585: %t414 = extractvalue { ptr, i64, i64 } %t411, 0 %t415 = getelementptr inbounds %S.lsp.StructRec, ptr %t414, i64 %t410 %t416 = getelementptr inbounds %S.lsp.StructRec, ptr %t415, i32 0, i32 6 @@ -104020,11 +108045,11 @@ inrange10180: %t418 = load { ptr, i64, i64 }, ptr %a27 %t419 = extractvalue { ptr, i64, i64 } %t418, 1 %t420 = icmp uge i64 4, %t419 - br i1 %t420, label %range10181, label %inrange10182 -range10181: - call void @finch_panic_index(ptr @.str.6837, i64 313, i64 4, i64 %t419) + br i1 %t420, label %range10586, label %inrange10587 +range10586: + call void @finch_panic_index(ptr @.str.7045, i64 313, i64 4, i64 %t419) unreachable -inrange10182: +inrange10587: %t421 = extractvalue { ptr, i64, i64 } %t418, 0 %t422 = getelementptr inbounds { ptr, i64, i64 }, ptr %t421, i64 4 %t423 = load { ptr, i64, i64 }, ptr %t422 @@ -104038,37 +108063,37 @@ inrange10182: %t430 = getelementptr inbounds { ptr, i64, i64 }, ptr %t429, i64 %t427 store { ptr, i64, i64 } %t426, ptr %t430 store i64 %t428, ptr %t417 - br label %endif10174 -else10173: + br label %endif10579 +else10578: %t431 = load { ptr, i64, i64 }, ptr %a37 store { ptr, i64, i64 } %t431, ptr %a432 - store { ptr, i64, i64 } { ptr @.str.6838, i64 2, i64 0 }, ptr %a433 + store { ptr, i64, i64 } { ptr @.str.7046, i64 2, i64 0 }, ptr %a433 %t434 = call i32 @finch_str_eq(ptr %a432, ptr %a433) %t435 = icmp ne i32 %t434, 0 - br label %logic.from10183 -logic.from10183: - br i1 %t435, label %logic.rhs10184, label %logic.end10185 -logic.rhs10184: + br label %logic.from10588 +logic.from10588: + br i1 %t435, label %logic.rhs10589, label %logic.end10590 +logic.rhs10589: %t436 = getelementptr inbounds { ptr, i64, i64 }, ptr %a27, i32 0, i32 1 %t437 = load i64, ptr %t436 %t438 = icmp sge i64 %t437, 7 - br label %logic.rend10186 -logic.rend10186: - br label %logic.end10185 -logic.end10185: - %t439 = phi i1 [ false, %logic.from10183 ], [ %t438, %logic.rend10186 ] - br i1 %t439, label %then10187, label %else10188 -then10187: + br label %logic.rend10591 +logic.rend10591: + br label %logic.end10590 +logic.end10590: + %t439 = phi i1 [ false, %logic.from10588 ], [ %t438, %logic.rend10591 ] + br i1 %t439, label %then10592, label %else10593 +then10592: %t440 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 4 %t441 = getelementptr inbounds { ptr, i64, i64 }, ptr %t440, i32 0, i32 1 %t442 = load { ptr, i64, i64 }, ptr %a27 %t443 = extractvalue { ptr, i64, i64 } %t442, 1 %t444 = icmp uge i64 1, %t443 - br i1 %t444, label %range10190, label %inrange10191 -range10190: - call void @finch_panic_index(ptr @.str.6839, i64 315, i64 1, i64 %t443) + br i1 %t444, label %range10595, label %inrange10596 +range10595: + call void @finch_panic_index(ptr @.str.7047, i64 315, i64 1, i64 %t443) unreachable -inrange10191: +inrange10596: %t445 = extractvalue { ptr, i64, i64 } %t442, 0 %t446 = getelementptr inbounds { ptr, i64, i64 }, ptr %t445, i64 1 %t447 = load { ptr, i64, i64 }, ptr %t446 @@ -104079,11 +108104,11 @@ inrange10191: %t452 = load { ptr, i64, i64 }, ptr %a27 %t453 = extractvalue { ptr, i64, i64 } %t452, 1 %t454 = icmp uge i64 2, %t453 - br i1 %t454, label %range10192, label %inrange10193 -range10192: - call void @finch_panic_index(ptr @.str.6840, i64 315, i64 2, i64 %t453) + br i1 %t454, label %range10597, label %inrange10598 +range10597: + call void @finch_panic_index(ptr @.str.7048, i64 315, i64 2, i64 %t453) unreachable -inrange10193: +inrange10598: %t455 = extractvalue { ptr, i64, i64 } %t452, 0 %t456 = getelementptr inbounds { ptr, i64, i64 }, ptr %t455, i64 2 %t457 = load { ptr, i64, i64 }, ptr %t456 @@ -104094,11 +108119,11 @@ inrange10193: %t462 = load { ptr, i64, i64 }, ptr %a27 %t463 = extractvalue { ptr, i64, i64 } %t462, 1 %t464 = icmp uge i64 3, %t463 - br i1 %t464, label %range10194, label %inrange10195 -range10194: - call void @finch_panic_index(ptr @.str.6841, i64 315, i64 3, i64 %t463) + br i1 %t464, label %range10599, label %inrange10600 +range10599: + call void @finch_panic_index(ptr @.str.7049, i64 315, i64 3, i64 %t463) unreachable -inrange10195: +inrange10600: %t465 = extractvalue { ptr, i64, i64 } %t462, 0 %t466 = getelementptr inbounds { ptr, i64, i64 }, ptr %t465, i64 3 %t467 = load { ptr, i64, i64 }, ptr %t466 @@ -104109,11 +108134,11 @@ inrange10195: %t472 = load { ptr, i64, i64 }, ptr %a27 %t473 = extractvalue { ptr, i64, i64 } %t472, 1 %t474 = icmp uge i64 4, %t473 - br i1 %t474, label %range10196, label %inrange10197 -range10196: - call void @finch_panic_index(ptr @.str.6842, i64 315, i64 4, i64 %t473) + br i1 %t474, label %range10601, label %inrange10602 +range10601: + call void @finch_panic_index(ptr @.str.7050, i64 315, i64 4, i64 %t473) unreachable -inrange10197: +inrange10602: %t475 = extractvalue { ptr, i64, i64 } %t472, 0 %t476 = getelementptr inbounds { ptr, i64, i64 }, ptr %t475, i64 4 %t477 = load { ptr, i64, i64 }, ptr %t476 @@ -104122,11 +108147,11 @@ inrange10197: %t480 = load { ptr, i64, i64 }, ptr %a27 %t481 = extractvalue { ptr, i64, i64 } %t480, 1 %t482 = icmp uge i64 5, %t481 - br i1 %t482, label %range10198, label %inrange10199 -range10198: - call void @finch_panic_index(ptr @.str.6843, i64 315, i64 5, i64 %t481) + br i1 %t482, label %range10603, label %inrange10604 +range10603: + call void @finch_panic_index(ptr @.str.7051, i64 315, i64 5, i64 %t481) unreachable -inrange10199: +inrange10604: %t483 = extractvalue { ptr, i64, i64 } %t480, 0 %t484 = getelementptr inbounds { ptr, i64, i64 }, ptr %t483, i64 5 %t485 = load { ptr, i64, i64 }, ptr %t484 @@ -104135,16 +108160,16 @@ inrange10199: %t488 = load { ptr, i64, i64 }, ptr %a27 %t489 = extractvalue { ptr, i64, i64 } %t488, 1 %t490 = icmp uge i64 6, %t489 - br i1 %t490, label %range10200, label %inrange10201 -range10200: - call void @finch_panic_index(ptr @.str.6844, i64 315, i64 6, i64 %t489) + br i1 %t490, label %range10605, label %inrange10606 +range10605: + call void @finch_panic_index(ptr @.str.7052, i64 315, i64 6, i64 %t489) unreachable -inrange10201: +inrange10606: %t491 = extractvalue { ptr, i64, i64 } %t488, 0 %t492 = getelementptr inbounds { ptr, i64, i64 }, ptr %t491, i64 6 %t493 = load { ptr, i64, i64 }, ptr %t492 store { ptr, i64, i64 } %t493, ptr %a494 - store { ptr, i64, i64 } { ptr @.str.6846, i64 1, i64 0 }, ptr %a496 + store { ptr, i64, i64 } { ptr @.str.7054, i64 1, i64 0 }, ptr %a496 call void @finch_str_split(ptr %a497, ptr %a494, ptr %a496) %t498 = load { ptr, i64, i64 }, ptr %a497 %t499 = insertvalue %S.lsp.EnumRec %t487, { ptr, i64, i64 } %t498, 5 @@ -104155,37 +108180,37 @@ inrange10201: %t503 = getelementptr inbounds %S.lsp.EnumRec, ptr %t502, i64 %t500 store %S.lsp.EnumRec %t499, ptr %t503 store i64 %t501, ptr %t441 - br label %endif10189 -else10188: + br label %endif10594 +else10593: %t504 = load { ptr, i64, i64 }, ptr %a37 store { ptr, i64, i64 } %t504, ptr %a505 - store { ptr, i64, i64 } { ptr @.str.6847, i64 2, i64 0 }, ptr %a506 + store { ptr, i64, i64 } { ptr @.str.7055, i64 2, i64 0 }, ptr %a506 %t507 = call i32 @finch_str_eq(ptr %a505, ptr %a506) %t508 = icmp ne i32 %t507, 0 - br label %logic.from10202 -logic.from10202: - br i1 %t508, label %logic.rhs10203, label %logic.end10204 -logic.rhs10203: + br label %logic.from10607 +logic.from10607: + br i1 %t508, label %logic.rhs10608, label %logic.end10609 +logic.rhs10608: %t509 = getelementptr inbounds { ptr, i64, i64 }, ptr %a27, i32 0, i32 1 %t510 = load i64, ptr %t509 %t511 = icmp sge i64 %t510, 2 - br label %logic.rend10205 -logic.rend10205: - br label %logic.end10204 -logic.end10204: - %t512 = phi i1 [ false, %logic.from10202 ], [ %t511, %logic.rend10205 ] - br i1 %t512, label %then10206, label %endif10208 -then10206: + br label %logic.rend10610 +logic.rend10610: + br label %logic.end10609 +logic.end10609: + %t512 = phi i1 [ false, %logic.from10607 ], [ %t511, %logic.rend10610 ] + br i1 %t512, label %then10611, label %endif10613 +then10611: %t513 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 5 %t514 = getelementptr inbounds { ptr, i64, i64 }, ptr %t513, i32 0, i32 1 %t515 = load { ptr, i64, i64 }, ptr %a27 %t516 = extractvalue { ptr, i64, i64 } %t515, 1 %t517 = icmp uge i64 1, %t516 - br i1 %t517, label %range10209, label %inrange10210 -range10209: - call void @finch_panic_index(ptr @.str.6848, i64 317, i64 1, i64 %t516) + br i1 %t517, label %range10614, label %inrange10615 +range10614: + call void @finch_panic_index(ptr @.str.7056, i64 317, i64 1, i64 %t516) unreachable -inrange10210: +inrange10615: %t518 = extractvalue { ptr, i64, i64 } %t515, 0 %t519 = getelementptr inbounds { ptr, i64, i64 }, ptr %t518, i64 1 %t520 = load { ptr, i64, i64 }, ptr %t519 @@ -104199,30 +108224,30 @@ inrange10210: %t527 = getelementptr inbounds { ptr, i64, i64 }, ptr %t526, i64 %t524 store { ptr, i64, i64 } %t523, ptr %t527 store i64 %t525, ptr %t514 - br label %endif10208 -endif10208: - br label %endif10189 -endif10189: - br label %endif10174 -endif10174: - br label %endif10153 -endif10153: - br label %endif10128 -endif10128: - br label %endif10105 -endif10105: - br label %endif10082 -endif10082: + br label %endif10613 +endif10613: + br label %endif10594 +endif10594: + br label %endif10579 +endif10579: + br label %endif10558 +endif10558: + br label %endif10533 +endif10533: + br label %endif10510 +endif10510: + br label %endif10487 +endif10487: call void @finch_str_drop(ptr %a37) call void @finch.drop.arr_str(ptr %a27) - br label %endif10073 -else10072: + br label %endif10478 +else10477: %t528 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 6 %t529 = getelementptr inbounds %S.lsp.Diag, ptr %t528, i32 0, i32 0 %t530 = load i1, ptr %t529 %t531 = xor i1 %t530, true - br i1 %t531, label %then10211, label %endif10213 -then10211: + br i1 %t531, label %then10616, label %endif10618 +then10616: %t532 = load { ptr, i64, i64 }, ptr %a18 %t533 = call %S.lsp.Diag @finch.lsp.parseDiag({ ptr, i64, i64 } %t532) %t534 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 6 @@ -104230,17 +108255,17 @@ then10211: store %S.lsp.Diag %t533, ptr %t534 store %S.lsp.Diag %t535, ptr %a536 call void @finch.drop.S_lsp_Diag(ptr %a536) - br label %endif10213 -endif10213: - br label %endif10073 -endif10073: - br label %each.step10069 -each.step10069: + br label %endif10618 +endif10618: + br label %endif10478 +endif10478: + br label %each.step10474 +each.step10474: %t537 = load i64, ptr %a10 %t538 = add i64 %t537, 1 store i64 %t538, ptr %a10 - br label %each.cond10067 -each.end10070: + br label %each.cond10472 +each.end10475: call void @finch.drop.arr_str(ptr %a9) %t539 = load %S.lsp.Analysis, ptr %a2 ret %S.lsp.Analysis %t539 @@ -104272,20 +108297,20 @@ entry: %t3 = getelementptr inbounds { ptr, i64, i64 }, ptr %src, i32 0, i32 1 %t4 = load i64, ptr %t3 store i64 0, ptr %a5 - br label %n.cond10234 -n.cond10234: + br label %n.cond10639 +n.cond10639: %t6 = load i64, ptr %a5 %t7 = icmp slt i64 %t6, %t4 - br i1 %t7, label %n.body10235, label %n.end10236 -n.body10235: + br i1 %t7, label %n.body10640, label %n.end10641 +n.body10640: %t8 = getelementptr inbounds %S.lsp.Ref, ptr %t1, i64 %t6 %t9 = getelementptr inbounds %S.lsp.Ref, ptr %t2, i64 %t6 call void @finch.copy.S_lsp_Ref(ptr %t8, ptr %t9) %t10 = load i64, ptr %a5 %t11 = add i64 %t10, 1 store i64 %t11, ptr %a5 - br label %n.cond10234 -n.end10236: + br label %n.cond10639 +n.end10641: ret void } @@ -104318,20 +108343,20 @@ entry: %t3 = getelementptr inbounds { ptr, i64, i64 }, ptr %src, i32 0, i32 1 %t4 = load i64, ptr %t3 store i64 0, ptr %a5 - br label %n.cond10237 -n.cond10237: + br label %n.cond10642 +n.cond10642: %t6 = load i64, ptr %a5 %t7 = icmp slt i64 %t6, %t4 - br i1 %t7, label %n.body10238, label %n.end10239 -n.body10238: + br i1 %t7, label %n.body10643, label %n.end10644 +n.body10643: %t8 = getelementptr inbounds %S.lsp.VarRec, ptr %t1, i64 %t6 %t9 = getelementptr inbounds %S.lsp.VarRec, ptr %t2, i64 %t6 call void @finch.copy.S_lsp_VarRec(ptr %t8, ptr %t9) %t10 = load i64, ptr %a5 %t11 = add i64 %t10, 1 store i64 %t11, ptr %a5 - br label %n.cond10237 -n.end10239: + br label %n.cond10642 +n.end10644: ret void } @@ -104370,20 +108395,20 @@ entry: %t3 = getelementptr inbounds { ptr, i64, i64 }, ptr %src, i32 0, i32 1 %t4 = load i64, ptr %t3 store i64 0, ptr %a5 - br label %n.cond10240 -n.cond10240: + br label %n.cond10645 +n.cond10645: %t6 = load i64, ptr %a5 %t7 = icmp slt i64 %t6, %t4 - br i1 %t7, label %n.body10241, label %n.end10242 -n.body10241: + br i1 %t7, label %n.body10646, label %n.end10647 +n.body10646: %t8 = getelementptr inbounds %S.lsp.FnRec, ptr %t1, i64 %t6 %t9 = getelementptr inbounds %S.lsp.FnRec, ptr %t2, i64 %t6 call void @finch.copy.S_lsp_FnRec(ptr %t8, ptr %t9) %t10 = load i64, ptr %a5 %t11 = add i64 %t10, 1 store i64 %t11, ptr %a5 - br label %n.cond10240 -n.end10242: + br label %n.cond10645 +n.end10647: ret void } @@ -104419,20 +108444,20 @@ entry: %t3 = getelementptr inbounds { ptr, i64, i64 }, ptr %src, i32 0, i32 1 %t4 = load i64, ptr %t3 store i64 0, ptr %a5 - br label %n.cond10243 -n.cond10243: + br label %n.cond10648 +n.cond10648: %t6 = load i64, ptr %a5 %t7 = icmp slt i64 %t6, %t4 - br i1 %t7, label %n.body10244, label %n.end10245 -n.body10244: + br i1 %t7, label %n.body10649, label %n.end10650 +n.body10649: %t8 = getelementptr inbounds %S.lsp.StructRec, ptr %t1, i64 %t6 %t9 = getelementptr inbounds %S.lsp.StructRec, ptr %t2, i64 %t6 call void @finch.copy.S_lsp_StructRec(ptr %t8, ptr %t9) %t10 = load i64, ptr %a5 %t11 = add i64 %t10, 1 store i64 %t11, ptr %a5 - br label %n.cond10243 -n.end10245: + br label %n.cond10648 +n.end10650: ret void } @@ -104465,20 +108490,20 @@ entry: %t3 = getelementptr inbounds { ptr, i64, i64 }, ptr %src, i32 0, i32 1 %t4 = load i64, ptr %t3 store i64 0, ptr %a5 - br label %n.cond10246 -n.cond10246: + br label %n.cond10651 +n.cond10651: %t6 = load i64, ptr %a5 %t7 = icmp slt i64 %t6, %t4 - br i1 %t7, label %n.body10247, label %n.end10248 -n.body10247: + br i1 %t7, label %n.body10652, label %n.end10653 +n.body10652: %t8 = getelementptr inbounds %S.lsp.EnumRec, ptr %t1, i64 %t6 %t9 = getelementptr inbounds %S.lsp.EnumRec, ptr %t2, i64 %t6 call void @finch.copy.S_lsp_EnumRec(ptr %t8, ptr %t9) %t10 = load i64, ptr %a5 %t11 = add i64 %t10, 1 store i64 %t11, ptr %a5 - br label %n.cond10246 -n.end10248: + br label %n.cond10651 +n.end10653: ret void } @@ -104544,19 +108569,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond10249 -n.cond10249: + br label %n.cond10654 +n.cond10654: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body10250, label %n.end10251 -n.body10250: + br i1 %t6, label %n.body10655, label %n.end10656 +n.body10655: %t7 = getelementptr inbounds %S.lsp.Ref, ptr %t1, i64 %t5 call void @finch.drop.S_lsp_Ref(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond10249 -n.end10251: + br label %n.cond10654 +n.end10656: call void @finch_arr_free(ptr %a) ret void } @@ -104582,19 +108607,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond10252 -n.cond10252: + br label %n.cond10657 +n.cond10657: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body10253, label %n.end10254 -n.body10253: + br i1 %t6, label %n.body10658, label %n.end10659 +n.body10658: %t7 = getelementptr inbounds %S.lsp.VarRec, ptr %t1, i64 %t5 call void @finch.drop.S_lsp_VarRec(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond10252 -n.end10254: + br label %n.cond10657 +n.end10659: call void @finch_arr_free(ptr %a) ret void } @@ -104624,19 +108649,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond10255 -n.cond10255: + br label %n.cond10660 +n.cond10660: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body10256, label %n.end10257 -n.body10256: + br i1 %t6, label %n.body10661, label %n.end10662 +n.body10661: %t7 = getelementptr inbounds %S.lsp.FnRec, ptr %t1, i64 %t5 call void @finch.drop.S_lsp_FnRec(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond10255 -n.end10257: + br label %n.cond10660 +n.end10662: call void @finch_arr_free(ptr %a) ret void } @@ -104664,19 +108689,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond10258 -n.cond10258: + br label %n.cond10663 +n.cond10663: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body10259, label %n.end10260 -n.body10259: + br i1 %t6, label %n.body10664, label %n.end10665 +n.body10664: %t7 = getelementptr inbounds %S.lsp.StructRec, ptr %t1, i64 %t5 call void @finch.drop.S_lsp_StructRec(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond10258 -n.end10260: + br label %n.cond10663 +n.end10665: call void @finch_arr_free(ptr %a) ret void } @@ -104702,19 +108727,19 @@ entry: %t2 = getelementptr inbounds { ptr, i64, i64 }, ptr %a, i32 0, i32 1 %t3 = load i64, ptr %t2 store i64 0, ptr %a4 - br label %n.cond10261 -n.cond10261: + br label %n.cond10666 +n.cond10666: %t5 = load i64, ptr %a4 %t6 = icmp slt i64 %t5, %t3 - br i1 %t6, label %n.body10262, label %n.end10263 -n.body10262: + br i1 %t6, label %n.body10667, label %n.end10668 +n.body10667: %t7 = getelementptr inbounds %S.lsp.EnumRec, ptr %t1, i64 %t5 call void @finch.drop.S_lsp_EnumRec(ptr %t7) %t8 = load i64, ptr %a4 %t9 = add i64 %t8, 1 store i64 %t9, ptr %a4 - br label %n.cond10261 -n.end10263: + br label %n.cond10666 +n.end10668: call void @finch_arr_free(ptr %a) ret void } @@ -104859,7 +108884,7 @@ entry: %t2 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 1 %t3 = load { ptr, i64, i64 }, ptr %t2 call void @finch.host.makeDirs({ ptr, i64, i64 } %t3) - store { ptr, i64, i64 } { ptr @.str.6849, i64 0, i64 0 }, ptr %a4 + store { ptr, i64, i64 } { ptr @.str.7057, i64 0, i64 0 }, ptr %a4 store i64 0, ptr %a5 %t6 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 2 store { ptr, i64, i64 } zeroinitializer, ptr %a7 @@ -104871,44 +108896,44 @@ entry: %t12 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t6, i32 0, i32 2 %t13 = load i64, ptr %t12 store i64 0, ptr %a14 - br label %n.cond10214 -n.cond10214: + br label %n.cond10619 +n.cond10619: %t15 = load i64, ptr %a14 %t16 = icmp slt i64 %t15, %t13 - br i1 %t16, label %n.body10215, label %n.end10216 -n.body10215: + br i1 %t16, label %n.body10620, label %n.end10621 +n.body10620: %t17 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t6, i32 0, i32 0 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t18, i64 %t15 %t20 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t19, i32 0, i32 0 %t21 = load i64, ptr %t20 %t22 = icmp ne i64 %t21, 0 - br i1 %t22, label %entry.live10217, label %entry.next10218 -entry.live10217: + br i1 %t22, label %entry.live10622, label %entry.next10623 +entry.live10622: %t23 = load i64, ptr %a11 %t24 = getelementptr inbounds { ptr, i64, i64 }, ptr %t10, i64 %t23 %t25 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t19, i32 0, i32 1 call void @finch_str_copy(ptr %t24, ptr %t25) %t26 = add i64 %t23, 1 store i64 %t26, ptr %a11 - br label %entry.next10218 -entry.next10218: + br label %entry.next10623 +entry.next10623: %t27 = load i64, ptr %a14 %t28 = add i64 %t27, 1 store i64 %t28, ptr %a14 - br label %n.cond10214 -n.end10216: + br label %n.cond10619 +n.end10621: %t29 = load { ptr, i64, i64 }, ptr %a7 store { ptr, i64, i64 } %t29, ptr %a30 store i64 0, ptr %a31 - br label %each.cond10219 -each.cond10219: + br label %each.cond10624 +each.cond10624: %t32 = getelementptr inbounds { ptr, i64, i64 }, ptr %a30, i32 0, i32 1 %t33 = load i64, ptr %t32 %t34 = load i64, ptr %a31 %t35 = icmp slt i64 %t34, %t33 - br i1 %t35, label %each.body10220, label %each.end10222 -each.body10220: + br i1 %t35, label %each.body10625, label %each.end10627 +each.body10625: %t36 = load ptr, ptr %a30 %t37 = getelementptr inbounds { ptr, i64, i64 }, ptr %t36, i64 %t34 %t38 = load { ptr, i64, i64 }, ptr %t37 @@ -104916,7 +108941,7 @@ each.body10220: %t40 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 1 %t41 = load { ptr, i64, i64 }, ptr %t40 store { ptr, i64, i64 } %t41, ptr %a43 - store { ptr, i64, i64 } { ptr @.str.6850, i64 4, i64 0 }, ptr %a44 + store { ptr, i64, i64 } { ptr @.str.7058, i64 4, i64 0 }, ptr %a44 call void @finch_str_concat(ptr %a42, ptr %a43, ptr %a44) %t45 = load { ptr, i64, i64 }, ptr %a42 %t46 = load i64, ptr %a5 @@ -104931,7 +108956,7 @@ each.body10220: call void @finch_str_drop(ptr %a53) %t54 = load { ptr, i64, i64 }, ptr %a49 store { ptr, i64, i64 } %t54, ptr %a56 - store { ptr, i64, i64 } { ptr @.str.6851, i64 4, i64 0 }, ptr %a57 + store { ptr, i64, i64 } { ptr @.str.7059, i64 4, i64 0 }, ptr %a57 call void @finch_str_concat(ptr %a55, ptr %a56, ptr %a57) store { ptr, i64, i64 } %t54, ptr %a58 call void @finch_str_drop(ptr %a58) @@ -104943,14 +108968,14 @@ each.body10220: store { ptr, i64, i64 } %t63, ptr %a64 %t65 = call i64 @finch_map_find(ptr %t62, ptr %a64, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t66 = icmp slt i64 %t65, 0 - br i1 %t66, label %map.missing10223, label %map.found10224 -map.missing10223: + br i1 %t66, label %map.missing10628, label %map.found10629 +map.missing10628: store { ptr, i64, i64 } zeroinitializer, ptr %a67 store { ptr, i64, i64 } %t63, ptr %a68 call void @finch_buf_str(ptr %a67, ptr %a68, i32 1) - call void @finch_map_missing(ptr @.str.6852, i64 333, ptr %a67) + call void @finch_map_missing(ptr @.str.7060, i64 333, ptr %a67) unreachable -map.found10224: +map.found10629: %t69 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t62, i32 0, i32 0 %t70 = load ptr, ptr %t69 %t71 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t70, i64 %t65 @@ -104962,12 +108987,12 @@ map.found10224: %t77 = icmp ne i32 %t76, 0 %t78 = load { ptr, i64, i64 }, ptr %a4 store { ptr, i64, i64 } %t78, ptr %a80 - store { ptr, i64, i64 } { ptr @.str.6853, i64 11, i64 0 }, ptr %a81 + store { ptr, i64, i64 } { ptr @.str.7061, i64 11, i64 0 }, ptr %a81 call void @finch_str_concat(ptr %a79, ptr %a80, ptr %a81) %t82 = load { ptr, i64, i64 }, ptr %a79 %t83 = load { ptr, i64, i64 }, ptr %a39 store { ptr, i64, i64 } %t83, ptr %a85 - store { ptr, i64, i64 } { ptr @.str.6854, i64 1, i64 0 }, ptr %a86 + store { ptr, i64, i64 } { ptr @.str.7062, i64 1, i64 0 }, ptr %a86 call void @finch_str_concat(ptr %a84, ptr %a85, ptr %a86) %t87 = load { ptr, i64, i64 }, ptr %a84 %t88 = load { ptr, i64, i64 }, ptr %a60 @@ -104996,18 +109021,18 @@ map.found10224: %t105 = add i64 %t104, 1 store i64 %t105, ptr %a5 call void @finch_str_drop(ptr %a60) - br label %each.step10221 -each.step10221: + br label %each.step10626 +each.step10626: %t106 = load i64, ptr %a31 %t107 = add i64 %t106, 1 store i64 %t107, ptr %a31 - br label %each.cond10219 -each.end10222: + br label %each.cond10624 +each.end10627: call void @finch.drop.arr_str(ptr %a30) %t108 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 1 %t109 = load { ptr, i64, i64 }, ptr %t108 store { ptr, i64, i64 } %t109, ptr %a111 - store { ptr, i64, i64 } { ptr @.str.6855, i64 8, i64 0 }, ptr %a112 + store { ptr, i64, i64 } { ptr @.str.7063, i64 8, i64 0 }, ptr %a112 call void @finch_str_concat(ptr %a110, ptr %a111, ptr %a112) %t113 = load { ptr, i64, i64 }, ptr %a110 store { ptr, i64, i64 } %t113, ptr %a114 @@ -105015,7 +109040,7 @@ each.end10222: %t116 = load { ptr, i64, i64 }, ptr %t115 %t117 = call { ptr, i64, i64 } @finch.host.quote({ ptr, i64, i64 } %t116) store { ptr, i64, i64 } %t117, ptr %a119 - store { ptr, i64, i64 } { ptr @.str.6856, i64 7, i64 0 }, ptr %a120 + store { ptr, i64, i64 } { ptr @.str.7064, i64 7, i64 0 }, ptr %a120 call void @finch_str_concat(ptr %a118, ptr %a119, ptr %a120) store { ptr, i64, i64 } %t117, ptr %a121 call void @finch_str_drop(ptr %a121) @@ -105038,7 +109063,7 @@ each.end10222: call void @finch_str_drop(ptr %a135) %t136 = load { ptr, i64, i64 }, ptr %a132 store { ptr, i64, i64 } %t136, ptr %a138 - store { ptr, i64, i64 } { ptr @.str.6857, i64 3, i64 0 }, ptr %a139 + store { ptr, i64, i64 } { ptr @.str.7065, i64 3, i64 0 }, ptr %a139 call void @finch_str_concat(ptr %a137, ptr %a138, ptr %a139) store { ptr, i64, i64 } %t136, ptr %a140 call void @finch_str_drop(ptr %a140) @@ -105054,7 +109079,7 @@ each.end10222: call void @finch_str_drop(ptr %a148) %t149 = load { ptr, i64, i64 }, ptr %a144 store { ptr, i64, i64 } %t149, ptr %a151 - store { ptr, i64, i64 } { ptr @.str.6858, i64 5, i64 0 }, ptr %a152 + store { ptr, i64, i64 } { ptr @.str.7066, i64 5, i64 0 }, ptr %a152 call void @finch_str_concat(ptr %a150, ptr %a151, ptr %a152) store { ptr, i64, i64 } %t149, ptr %a153 call void @finch_str_drop(ptr %a153) @@ -105070,17 +109095,17 @@ each.end10222: %t162 = icmp eq i32 %t161, 0 %t163 = load { ptr, i64, i64 }, ptr %a160 %t164 = load { ptr, i64, i64 }, ptr %a159 - br i1 %t162, label %or.failed10225, label %or.ok10226 -or.failed10225: + br i1 %t162, label %or.failed10630, label %or.ok10631 +or.failed10630: store { ptr, i64, i64 } %t163, ptr %a165 call void @finch_str_drop(ptr %a165) - br label %or.bend10227 -or.bend10227: - br label %or.end10228 -or.ok10226: - br label %or.end10228 -or.end10228: - %t166 = phi { ptr, i64, i64 } [ { ptr @.str.6859, i64 0, i64 0 }, %or.bend10227 ], [ %t164, %or.ok10226 ] + br label %or.bend10632 +or.bend10632: + br label %or.end10633 +or.ok10631: + br label %or.end10633 +or.end10633: + %t166 = phi { ptr, i64, i64 } [ { ptr @.str.7067, i64 0, i64 0 }, %or.bend10632 ], [ %t164, %or.ok10631 ] %t167 = call %S.lsp.Analysis @finch.lsp.parseOutput({ ptr, i64, i64 } %t166) store { ptr, i64, i64 } %t166, ptr %a168 call void @finch_str_drop(ptr %a168) @@ -105089,8 +109114,8 @@ or.end10228: %t171 = getelementptr inbounds %S.lsp.Diag, ptr %t170, i32 0, i32 0 %t172 = load i1, ptr %t171 %t173 = xor i1 %t172, true - br i1 %t173, label %then10229, label %else10230 -then10229: + br i1 %t173, label %then10634, label %else10635 +then10634: %t174 = load %S.lsp.Analysis, ptr %a169 %t175 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 4 %t176 = load { ptr, i64, i64 }, ptr %a1 @@ -105102,14 +109127,14 @@ then10229: %t182 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t181, i64 %t179 %t183 = load i32, ptr %a178 %t184 = icmp ne i32 %t183, 0 - br i1 %t184, label %map.new10232, label %map.have10233 -map.new10232: + br i1 %t184, label %map.new10637, label %map.have10638 +map.new10637: %t185 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t182, i32 0, i32 1 call void @finch_str_copy(ptr %t185, ptr %a177) %t186 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t182, i32 0, i32 2 store %S.lsp.Analysis zeroinitializer, ptr %t186 - br label %map.have10233 -map.have10233: + br label %map.have10638 +map.have10638: %t187 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t182, i32 0, i32 2 store %S.lsp.Analysis %t174, ptr %a188 call void @finch.copy.S_lsp_Analysis(ptr %a189, ptr %a188) @@ -105118,28 +109143,28 @@ map.have10233: store %S.lsp.Analysis %t190, ptr %t187 store %S.lsp.Analysis %t191, ptr %a192 call void @finch.drop.S_lsp_Analysis(ptr %a192) - br label %endif10231 -else10230: + br label %endif10636 +else10635: %t193 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 4 %t194 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t194, ptr %a195 %t196 = call i64 @finch_map_find(ptr %t193, ptr %a195, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t197 = icmp sge i64 %t196, 0 - br i1 %t197, label %then10264, label %endif10266 -then10264: + br i1 %t197, label %then10669, label %endif10671 +then10669: %t198 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 4 %t199 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t199, ptr %a200 %t201 = call i64 @finch_map_find(ptr %t198, ptr %a200, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t202 = icmp slt i64 %t201, 0 - br i1 %t202, label %map.missing10267, label %map.found10268 -map.missing10267: + br i1 %t202, label %map.missing10672, label %map.found10673 +map.missing10672: store { ptr, i64, i64 } zeroinitializer, ptr %a203 store { ptr, i64, i64 } %t199, ptr %a204 call void @finch_buf_str(ptr %a203, ptr %a204, i32 1) - call void @finch_map_missing(ptr @.str.6860, i64 344, ptr %a203) + call void @finch_map_missing(ptr @.str.7068, i64 344, ptr %a203) unreachable -map.found10268: +map.found10673: %t205 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t198, i32 0, i32 0 %t206 = load ptr, ptr %t205 %t207 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t206, i64 %t201 @@ -105193,8 +109218,8 @@ map.found10268: %t247 = getelementptr inbounds { ptr, i64, i64 }, ptr %t246, i32 0, i32 1 %t248 = load i64, ptr %t247 %t249 = icmp eq i64 %t248, 0 - br i1 %t249, label %then10269, label %endif10271 -then10269: + br i1 %t249, label %then10674, label %endif10676 +then10674: %t250 = getelementptr inbounds %S.lsp.Analysis, ptr %a213, i32 0, i32 5 %t251 = load { ptr, i64, i64 }, ptr %t250 %t252 = getelementptr inbounds %S.lsp.Analysis, ptr %a169, i32 0, i32 5 @@ -105205,13 +109230,13 @@ then10269: store { ptr, i64, i64 } %t255, ptr %t252 store { ptr, i64, i64 } %t256, ptr %a257 call void @finch.drop.arr_str(ptr %a257) - br label %endif10271 -endif10271: + br label %endif10676 +endif10676: call void @finch.drop.S_lsp_Analysis(ptr %a213) - br label %endif10266 -endif10266: - br label %endif10231 -endif10231: + br label %endif10671 +endif10671: + br label %endif10636 +endif10636: %t258 = load %S.lsp.Analysis, ptr %a169 %t259 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 3 %t260 = load { ptr, i64, i64 }, ptr %a1 @@ -105223,14 +109248,14 @@ endif10231: %t266 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t265, i64 %t263 %t267 = load i32, ptr %a262 %t268 = icmp ne i32 %t267, 0 - br i1 %t268, label %map.new10272, label %map.have10273 -map.new10272: + br i1 %t268, label %map.new10677, label %map.have10678 +map.new10677: %t269 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t266, i32 0, i32 1 call void @finch_str_copy(ptr %t269, ptr %a261) %t270 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t266, i32 0, i32 2 store %S.lsp.Analysis zeroinitializer, ptr %t270 - br label %map.have10273 -map.have10273: + br label %map.have10678 +map.have10678: %t271 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t266, i32 0, i32 2 store %S.lsp.Analysis %t258, ptr %a272 call void @finch.copy.S_lsp_Analysis(ptr %a273, ptr %a272) @@ -105300,14 +109325,14 @@ entry: store { ptr, i64, i64 } %t12, ptr %a13 %t14 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 5 store i64 0, ptr %a15 - br label %each.cond10274 -each.cond10274: + br label %each.cond10679 +each.cond10679: %t16 = getelementptr inbounds { ptr, i64, i64 }, ptr %t14, i32 0, i32 1 %t17 = load i64, ptr %t16 %t18 = load i64, ptr %a15 %t19 = icmp slt i64 %t18, %t17 - br i1 %t19, label %each.body10275, label %each.end10277 -each.body10275: + br i1 %t19, label %each.body10680, label %each.end10682 +each.body10680: %t20 = load ptr, ptr %t14 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t20, i64 %t18 %t22 = load { ptr, i64, i64 }, ptr %t21 @@ -105318,32 +109343,32 @@ each.body10275: %t27 = load i64, ptr %t24 %t28 = load ptr, ptr %a13 store i64 0, ptr %a29 - br label %find.cond10278 -find.cond10278: + br label %find.cond10683 +find.cond10683: %t30 = load i64, ptr %a29 %t31 = icmp slt i64 %t30, %t27 - br i1 %t31, label %find.body10279, label %find.end10282 -find.body10279: + br i1 %t31, label %find.body10684, label %find.end10687 +find.body10684: %t32 = getelementptr inbounds { ptr, i64, i64 }, ptr %t28, i64 %t30 %t33 = load { ptr, i64, i64 }, ptr %t32 store { ptr, i64, i64 } %t33, ptr %a34 store { ptr, i64, i64 } %t25, ptr %a35 %t36 = call i32 @finch_str_eq(ptr %a34, ptr %a35) %t37 = icmp ne i32 %t36, 0 - br i1 %t37, label %find.hit10280, label %find.next10281 -find.hit10280: + br i1 %t37, label %find.hit10685, label %find.next10686 +find.hit10685: store i64 %t30, ptr %a26 - br label %find.end10282 -find.next10281: + br label %find.end10687 +find.next10686: %t38 = add i64 %t30, 1 store i64 %t38, ptr %a29 - br label %find.cond10278 -find.end10282: + br label %find.cond10683 +find.end10687: %t39 = load i64, ptr %a26 %t40 = icmp sge i64 %t39, 0 %t41 = xor i1 %t40, true - br i1 %t41, label %then10283, label %endif10285 -then10283: + br i1 %t41, label %then10688, label %endif10690 +then10688: %t42 = getelementptr inbounds { ptr, i64, i64 }, ptr %a13, i32 0, i32 1 %t43 = load { ptr, i64, i64 }, ptr %a23 store { ptr, i64, i64 } %t43, ptr %a44 @@ -105356,25 +109381,25 @@ then10283: %t50 = getelementptr inbounds { ptr, i64, i64 }, ptr %t49, i64 %t47 store { ptr, i64, i64 } %t46, ptr %t50 store i64 %t48, ptr %t42 - br label %endif10285 -endif10285: - br label %each.step10276 -each.step10276: + br label %endif10690 +endif10690: + br label %each.step10681 +each.step10681: %t51 = load i64, ptr %a15 %t52 = add i64 %t51, 1 store i64 %t52, ptr %a15 - br label %each.cond10274 -each.end10277: + br label %each.cond10679 +each.end10682: store { ptr, i64, i64 } zeroinitializer, ptr %a53 store i64 0, ptr %a54 - br label %each.cond10286 -each.cond10286: + br label %each.cond10691 +each.cond10691: %t55 = getelementptr inbounds { ptr, i64, i64 }, ptr %a13, i32 0, i32 1 %t56 = load i64, ptr %t55 %t57 = load i64, ptr %a54 %t58 = icmp slt i64 %t57, %t56 - br i1 %t58, label %each.body10287, label %each.end10289 -each.body10287: + br i1 %t58, label %each.body10692, label %each.end10694 +each.body10692: %t59 = load ptr, ptr %a13 %t60 = getelementptr inbounds { ptr, i64, i64 }, ptr %t59, i64 %t57 %t61 = load { ptr, i64, i64 }, ptr %t60 @@ -105384,10 +109409,10 @@ each.body10287: %t65 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 6 %t66 = getelementptr inbounds %S.lsp.Diag, ptr %t65, i32 0, i32 0 %t67 = load i1, ptr %t66 - br label %logic.from10290 -logic.from10290: - br i1 %t67, label %logic.rhs10291, label %logic.end10292 -logic.rhs10291: + br label %logic.from10695 +logic.from10695: + br i1 %t67, label %logic.rhs10696, label %logic.end10697 +logic.rhs10696: %t68 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 6 %t69 = getelementptr inbounds %S.lsp.Diag, ptr %t68, i32 0, i32 1 %t70 = load { ptr, i64, i64 }, ptr %t69 @@ -105396,13 +109421,13 @@ logic.rhs10291: store { ptr, i64, i64 } %t71, ptr %a73 %t74 = call i32 @finch_str_eq(ptr %a72, ptr %a73) %t75 = icmp ne i32 %t74, 0 - br label %logic.rend10293 -logic.rend10293: - br label %logic.end10292 -logic.end10292: - %t76 = phi i1 [ false, %logic.from10290 ], [ %t75, %logic.rend10293 ] - br i1 %t76, label %then10294, label %endif10296 -then10294: + br label %logic.rend10698 +logic.rend10698: + br label %logic.end10697 +logic.end10697: + %t76 = phi i1 [ false, %logic.from10695 ], [ %t75, %logic.rend10698 ] + br i1 %t76, label %then10699, label %endif10701 +then10699: %t77 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 6 %t78 = getelementptr inbounds %S.lsp.Diag, ptr %t77, i32 0, i32 2 %t79 = load i64, ptr %t78 @@ -105410,11 +109435,11 @@ then10294: store i64 %t80, ptr %a81 %t82 = load i64, ptr %a81 %t83 = icmp slt i64 %t82, 0 - br i1 %t83, label %then10297, label %endif10299 -then10297: + br i1 %t83, label %then10702, label %endif10704 +then10702: store i64 0, ptr %a81 - br label %endif10299 -endif10299: + br label %endif10704 +endif10704: %t84 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 6 %t85 = getelementptr inbounds %S.lsp.Diag, ptr %t84, i32 0, i32 3 %t86 = load i64, ptr %t85 @@ -105422,11 +109447,11 @@ endif10299: store i64 %t87, ptr %a88 %t89 = load i64, ptr %a88 %t90 = icmp slt i64 %t89, 0 - br i1 %t90, label %then10300, label %endif10302 -then10300: + br i1 %t90, label %then10705, label %endif10707 +then10705: store i64 0, ptr %a88 - br label %endif10302 -endif10302: + br label %endif10707 +endif10707: %t91 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t91, ptr %a92 %t93 = load i64, ptr %a81 @@ -105434,22 +109459,22 @@ endif10302: %t95 = load i64, ptr %a88 %t96 = add i64 %t95, 1 %t97 = call %S.json.Json @finch.lsp.range(i64 %t93, i64 %t94, i64 %t96) - call void @finch.json.Json.set(ptr %a92, { ptr, i64, i64 } { ptr @.str.6861, i64 5, i64 0 }, %S.json.Json %t97) + call void @finch.json.Json.set(ptr %a92, { ptr, i64, i64 } { ptr @.str.7069, i64 5, i64 0 }, %S.json.Json %t97) store %S.json.Json %t97, ptr %a98 call void @finch.drop.S_json_Json(ptr %a98) %t99 = call %S.json.Json @finch.lsp.num(i64 1) - call void @finch.json.Json.set(ptr %a92, { ptr, i64, i64 } { ptr @.str.6862, i64 8, i64 0 }, %S.json.Json %t99) + call void @finch.json.Json.set(ptr %a92, { ptr, i64, i64 } { ptr @.str.7070, i64 8, i64 0 }, %S.json.Json %t99) store %S.json.Json %t99, ptr %a100 call void @finch.drop.S_json_Json(ptr %a100) - %t101 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.6864, i64 5, i64 0 }) - call void @finch.json.Json.set(ptr %a92, { ptr, i64, i64 } { ptr @.str.6863, i64 6, i64 0 }, %S.json.Json %t101) + %t101 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.7072, i64 5, i64 0 }) + call void @finch.json.Json.set(ptr %a92, { ptr, i64, i64 } { ptr @.str.7071, i64 6, i64 0 }, %S.json.Json %t101) store %S.json.Json %t101, ptr %a102 call void @finch.drop.S_json_Json(ptr %a102) %t103 = getelementptr inbounds %S.lsp.Analysis, ptr %a2, i32 0, i32 6 %t104 = getelementptr inbounds %S.lsp.Diag, ptr %t103, i32 0, i32 4 %t105 = load { ptr, i64, i64 }, ptr %t104 %t106 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t105) - call void @finch.json.Json.set(ptr %a92, { ptr, i64, i64 } { ptr @.str.6865, i64 7, i64 0 }, %S.json.Json %t106) + call void @finch.json.Json.set(ptr %a92, { ptr, i64, i64 } { ptr @.str.7073, i64 7, i64 0 }, %S.json.Json %t106) store %S.json.Json %t106, ptr %a107 call void @finch.drop.S_json_Json(ptr %a107) %t108 = load %S.json.Json, ptr %a92 @@ -105467,8 +109492,8 @@ endif10302: store { ptr, i64, i64 } %t113, ptr %t117 store i64 %t115, ptr %t109 call void @finch.drop.S_json_Json(ptr %a92) - br label %endif10296 -endif10296: + br label %endif10701 +endif10701: %t118 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t118, ptr %a119 %t120 = load { ptr, i64, i64 }, ptr %a62 @@ -105476,22 +109501,22 @@ endif10296: %t122 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t121) store { ptr, i64, i64 } %t121, ptr %a123 call void @finch_str_drop(ptr %a123) - call void @finch.json.Json.set(ptr %a119, { ptr, i64, i64 } { ptr @.str.6866, i64 3, i64 0 }, %S.json.Json %t122) + call void @finch.json.Json.set(ptr %a119, { ptr, i64, i64 } { ptr @.str.7074, i64 3, i64 0 }, %S.json.Json %t122) store %S.json.Json %t122, ptr %a124 call void @finch.drop.S_json_Json(ptr %a124) %t125 = load %S.json.Json, ptr %a64 - call void @finch.json.Json.set(ptr %a119, { ptr, i64, i64 } { ptr @.str.6867, i64 11, i64 0 }, %S.json.Json %t125) + call void @finch.json.Json.set(ptr %a119, { ptr, i64, i64 } { ptr @.str.7075, i64 11, i64 0 }, %S.json.Json %t125) %t126 = load %S.json.Json, ptr %a119 - call void @finch.lsp.notify({ ptr, i64, i64 } { ptr @.str.6868, i64 31, i64 0 }, %S.json.Json %t126) + call void @finch.lsp.notify({ ptr, i64, i64 } { ptr @.str.7076, i64 31, i64 0 }, %S.json.Json %t126) call void @finch.drop.S_json_Json(ptr %a119) call void @finch.drop.S_json_Json(ptr %a64) - br label %each.step10288 -each.step10288: + br label %each.step10693 +each.step10693: %t127 = load i64, ptr %a54 %t128 = add i64 %t127, 1 store i64 %t128, ptr %a54 - br label %each.cond10286 -each.end10289: + br label %each.cond10691 +each.end10694: %t129 = load { ptr, i64, i64 }, ptr %a53 %t130 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 5 store { ptr, i64, i64 } %t129, ptr %a131 @@ -105526,22 +109551,22 @@ entry: %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t7 = load i64, ptr %t6 store i64 0, ptr %a8 - br label %for.cond10303 -for.cond10303: + br label %for.cond10708 +for.cond10708: %t9 = load i64, ptr %a8 %t10 = icmp slt i64 %t9, %t7 - br i1 %t10, label %for.body10304, label %for.end10306 -for.body10304: + br i1 %t10, label %for.body10709, label %for.end10711 +for.body10709: %t11 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 0 %t12 = load i64, ptr %a8 %t13 = load { ptr, i64, i64 }, ptr %t11 %t14 = extractvalue { ptr, i64, i64 } %t13, 1 %t15 = icmp uge i64 %t12, %t14 - br i1 %t15, label %range10307, label %inrange10308 -range10307: - call void @finch_panic_index(ptr @.str.6869, i64 397, i64 %t12, i64 %t14) + br i1 %t15, label %range10712, label %inrange10713 +range10712: + call void @finch_panic_index(ptr @.str.7077, i64 397, i64 %t12, i64 %t14) unreachable -inrange10308: +inrange10713: %t16 = extractvalue { ptr, i64, i64 } %t13, 0 %t17 = getelementptr inbounds %S.lsp.Ref, ptr %t16, i64 %t12 %t18 = load %S.lsp.Ref, ptr %t17 @@ -105553,23 +109578,23 @@ inrange10308: %t24 = load i64, ptr %t23 %t25 = load i64, ptr %a3 %t26 = icmp eq i64 %t24, %t25 - br label %logic.from10309 -logic.from10309: - br i1 %t26, label %logic.rhs10310, label %logic.end10311 -logic.rhs10310: + br label %logic.from10714 +logic.from10714: + br i1 %t26, label %logic.rhs10715, label %logic.end10716 +logic.rhs10715: %t27 = load i64, ptr %a4 %t28 = getelementptr inbounds %S.lsp.Ref, ptr %a22, i32 0, i32 2 %t29 = load i64, ptr %t28 %t30 = icmp sge i64 %t27, %t29 - br label %logic.rend10312 -logic.rend10312: - br label %logic.end10311 -logic.end10311: - %t31 = phi i1 [ false, %logic.from10309 ], [ %t30, %logic.rend10312 ] - br label %logic.from10313 -logic.from10313: - br i1 %t31, label %logic.rhs10314, label %logic.end10315 -logic.rhs10314: + br label %logic.rend10717 +logic.rend10717: + br label %logic.end10716 +logic.end10716: + %t31 = phi i1 [ false, %logic.from10714 ], [ %t30, %logic.rend10717 ] + br label %logic.from10718 +logic.from10718: + br i1 %t31, label %logic.rhs10719, label %logic.end10720 +logic.rhs10719: %t32 = load i64, ptr %a4 %t33 = getelementptr inbounds %S.lsp.Ref, ptr %a22, i32 0, i32 2 %t34 = load i64, ptr %t33 @@ -105577,15 +109602,15 @@ logic.rhs10314: %t36 = load i64, ptr %t35 %t37 = add i64 %t34, %t36 %t38 = icmp sle i64 %t32, %t37 - br label %logic.rend10316 -logic.rend10316: - br label %logic.end10315 -logic.end10315: - %t39 = phi i1 [ false, %logic.from10313 ], [ %t38, %logic.rend10316 ] - br label %logic.from10317 -logic.from10317: - br i1 %t39, label %logic.rhs10318, label %logic.end10319 -logic.rhs10318: + br label %logic.rend10721 +logic.rend10721: + br label %logic.end10720 +logic.end10720: + %t39 = phi i1 [ false, %logic.from10718 ], [ %t38, %logic.rend10721 ] + br label %logic.from10722 +logic.from10722: + br i1 %t39, label %logic.rhs10723, label %logic.end10724 +logic.rhs10723: %t40 = getelementptr inbounds %S.lsp.Ref, ptr %a22, i32 0, i32 0 %t41 = load { ptr, i64, i64 }, ptr %t40 %t42 = load { ptr, i64, i64 }, ptr %a2 @@ -105593,25 +109618,25 @@ logic.rhs10318: store { ptr, i64, i64 } %t42, ptr %a44 %t45 = call i32 @finch_str_eq(ptr %a43, ptr %a44) %t46 = icmp ne i32 %t45, 0 - br label %logic.rend10320 -logic.rend10320: - br label %logic.end10319 -logic.end10319: - %t47 = phi i1 [ false, %logic.from10317 ], [ %t46, %logic.rend10320 ] - br i1 %t47, label %then10321, label %endif10323 -then10321: + br label %logic.rend10725 +logic.rend10725: + br label %logic.end10724 +logic.end10724: + %t47 = phi i1 [ false, %logic.from10722 ], [ %t46, %logic.rend10725 ] + br i1 %t47, label %then10726, label %endif10728 +then10726: %t48 = load i64, ptr %a8 call void @finch.drop.S_lsp_Ref(ptr %a22) ret i64 %t48 -endif10323: +endif10728: call void @finch.drop.S_lsp_Ref(ptr %a22) - br label %for.step10305 -for.step10305: + br label %for.step10710 +for.step10710: %t49 = load i64, ptr %a8 %t50 = add i64 %t49, 1 store i64 %t50, ptr %a8 - br label %for.cond10303 -for.end10306: + br label %for.cond10708 +for.end10711: ret i64 -1 } @@ -105638,15 +109663,15 @@ entry: store i64 %t9, ptr %a10 %t11 = load i64, ptr %a10 %t12 = icmp slt i64 %t11, 0 - br i1 %t12, label %then10324, label %endif10326 -then10324: + br i1 %t12, label %then10729, label %endif10731 +then10729: %t13 = call %S.json.Json @finch.json.new_null() ret %S.json.Json %t13 -endif10326: +endif10731: %t14 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t14, ptr %a15 - %t16 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.6871, i64 8, i64 0 }) - call void @finch.json.Json.set(ptr %a15, { ptr, i64, i64 } { ptr @.str.6870, i64 4, i64 0 }, %S.json.Json %t16) + %t16 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.7079, i64 8, i64 0 }) + call void @finch.json.Json.set(ptr %a15, { ptr, i64, i64 } { ptr @.str.7078, i64 4, i64 0 }, %S.json.Json %t16) store %S.json.Json %t16, ptr %a17 call void @finch.drop.S_json_Json(ptr %a17) %t18 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 0 @@ -105654,23 +109679,23 @@ endif10326: %t20 = load { ptr, i64, i64 }, ptr %t18 %t21 = extractvalue { ptr, i64, i64 } %t20, 1 %t22 = icmp uge i64 %t19, %t21 - br i1 %t22, label %range10327, label %inrange10328 -range10327: - call void @finch_panic_index(ptr @.str.6873, i64 412, i64 %t19, i64 %t21) + br i1 %t22, label %range10732, label %inrange10733 +range10732: + call void @finch_panic_index(ptr @.str.7081, i64 412, i64 %t19, i64 %t21) unreachable -inrange10328: +inrange10733: %t23 = extractvalue { ptr, i64, i64 } %t20, 0 %t24 = getelementptr inbounds %S.lsp.Ref, ptr %t23, i64 %t19 %t25 = getelementptr inbounds %S.lsp.Ref, ptr %t24, i32 0, i32 7 %t26 = load { ptr, i64, i64 }, ptr %t25 %t27 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t26) - call void @finch.json.Json.set(ptr %a15, { ptr, i64, i64 } { ptr @.str.6872, i64 5, i64 0 }, %S.json.Json %t27) + call void @finch.json.Json.set(ptr %a15, { ptr, i64, i64 } { ptr @.str.7080, i64 5, i64 0 }, %S.json.Json %t27) store %S.json.Json %t27, ptr %a28 call void @finch.drop.S_json_Json(ptr %a28) %t29 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t29, ptr %a30 %t31 = load %S.json.Json, ptr %a15 - call void @finch.json.Json.set(ptr %a30, { ptr, i64, i64 } { ptr @.str.6874, i64 8, i64 0 }, %S.json.Json %t31) + call void @finch.json.Json.set(ptr %a30, { ptr, i64, i64 } { ptr @.str.7082, i64 8, i64 0 }, %S.json.Json %t31) %t32 = load %S.json.Json, ptr %a30 call void @finch.drop.S_json_Json(ptr %a15) ret %S.json.Json %t32 @@ -105702,46 +109727,46 @@ entry: store i64 %t9, ptr %a10 %t11 = load i64, ptr %a10 %t12 = icmp slt i64 %t11, 0 - br label %logic.from10329 -logic.from10329: - br i1 %t12, label %logic.end10331, label %logic.rhs10330 -logic.rhs10330: + br label %logic.from10734 +logic.from10734: + br i1 %t12, label %logic.end10736, label %logic.rhs10735 +logic.rhs10735: %t13 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 0 %t14 = load i64, ptr %a10 %t15 = load { ptr, i64, i64 }, ptr %t13 %t16 = extractvalue { ptr, i64, i64 } %t15, 1 %t17 = icmp uge i64 %t14, %t16 - br i1 %t17, label %range10332, label %inrange10333 -range10332: - call void @finch_panic_index(ptr @.str.6875, i64 420, i64 %t14, i64 %t16) + br i1 %t17, label %range10737, label %inrange10738 +range10737: + call void @finch_panic_index(ptr @.str.7083, i64 420, i64 %t14, i64 %t16) unreachable -inrange10333: +inrange10738: %t18 = extractvalue { ptr, i64, i64 } %t15, 0 %t19 = getelementptr inbounds %S.lsp.Ref, ptr %t18, i64 %t14 %t20 = getelementptr inbounds %S.lsp.Ref, ptr %t19, i32 0, i32 4 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t20, i32 0, i32 1 %t22 = load i64, ptr %t21 %t23 = icmp eq i64 %t22, 0 - br label %logic.rend10334 -logic.rend10334: - br label %logic.end10331 -logic.end10331: - %t24 = phi i1 [ true, %logic.from10329 ], [ %t23, %logic.rend10334 ] - br i1 %t24, label %then10335, label %endif10337 -then10335: + br label %logic.rend10739 +logic.rend10739: + br label %logic.end10736 +logic.end10736: + %t24 = phi i1 [ true, %logic.from10734 ], [ %t23, %logic.rend10739 ] + br i1 %t24, label %then10740, label %endif10742 +then10740: %t25 = call %S.json.Json @finch.json.new_null() ret %S.json.Json %t25 -endif10337: +endif10742: %t26 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 0 %t27 = load i64, ptr %a10 %t28 = load { ptr, i64, i64 }, ptr %t26 %t29 = extractvalue { ptr, i64, i64 } %t28, 1 %t30 = icmp uge i64 %t27, %t29 - br i1 %t30, label %range10338, label %inrange10339 -range10338: - call void @finch_panic_index(ptr @.str.6876, i64 423, i64 %t27, i64 %t29) + br i1 %t30, label %range10743, label %inrange10744 +range10743: + call void @finch_panic_index(ptr @.str.7084, i64 423, i64 %t27, i64 %t29) unreachable -inrange10339: +inrange10744: %t31 = extractvalue { ptr, i64, i64 } %t28, 0 %t32 = getelementptr inbounds %S.lsp.Ref, ptr %t31, i64 %t27 %t33 = load %S.lsp.Ref, ptr %t32 @@ -105757,7 +109782,7 @@ inrange10339: %t43 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t42) store { ptr, i64, i64 } %t42, ptr %a44 call void @finch_str_drop(ptr %a44) - call void @finch.json.Json.set(ptr %a39, { ptr, i64, i64 } { ptr @.str.6877, i64 3, i64 0 }, %S.json.Json %t43) + call void @finch.json.Json.set(ptr %a39, { ptr, i64, i64 } { ptr @.str.7085, i64 3, i64 0 }, %S.json.Json %t43) store %S.json.Json %t43, ptr %a45 call void @finch.drop.S_json_Json(ptr %a45) %t46 = getelementptr inbounds %S.lsp.Ref, ptr %a37, i32 0, i32 5 @@ -105770,7 +109795,7 @@ inrange10339: %t53 = load i64, ptr %t52 %t54 = sub i64 %t53, 1 %t55 = call %S.json.Json @finch.lsp.range(i64 %t48, i64 %t51, i64 %t54) - call void @finch.json.Json.set(ptr %a39, { ptr, i64, i64 } { ptr @.str.6878, i64 5, i64 0 }, %S.json.Json %t55) + call void @finch.json.Json.set(ptr %a39, { ptr, i64, i64 } { ptr @.str.7086, i64 5, i64 0 }, %S.json.Json %t55) store %S.json.Json %t55, ptr %a56 call void @finch.drop.S_json_Json(ptr %a56) %t57 = load %S.json.Json, ptr %a39 @@ -105816,14 +109841,14 @@ entry: store %S.json.Json %t3, ptr %a4 %t5 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 2 store i64 0, ptr %a6 - br label %each.cond10340 -each.cond10340: + br label %each.cond10745 +each.cond10745: %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t8 = load i64, ptr %t7 %t9 = load i64, ptr %a6 %t10 = icmp slt i64 %t9, %t8 - br i1 %t10, label %each.body10341, label %each.end10343 -each.body10341: + br i1 %t10, label %each.body10746, label %each.end10748 +each.body10746: %t11 = load ptr, ptr %t5 %t12 = getelementptr inbounds %S.lsp.FnRec, ptr %t11, i64 %t9 %t13 = load %S.lsp.FnRec, ptr %t12 @@ -105835,10 +109860,10 @@ each.body10341: store { ptr, i64, i64 } %t17, ptr %a19 %t20 = call i32 @finch_str_eq(ptr %a18, ptr %a19) %t21 = icmp eq i32 %t20, 0 - br i1 %t21, label %then10344, label %endif10346 -then10344: - br label %each.step10342 -endif10346: + br i1 %t21, label %then10749, label %endif10751 +then10749: + br label %each.step10747 +endif10751: store i64 12, ptr %a22 %t23 = getelementptr inbounds %S.lsp.FnRec, ptr %a14, i32 0, i32 1 %t24 = load { ptr, i64, i64 }, ptr %t23 @@ -105850,13 +109875,13 @@ endif10346: %t30 = getelementptr inbounds { ptr, i64, i64 }, ptr %t29, i32 0, i32 1 %t31 = load i64, ptr %t30 %t32 = icmp sgt i64 %t31, 0 - br i1 %t32, label %then10347, label %endif10349 -then10347: + br i1 %t32, label %then10752, label %endif10754 +then10752: store i64 6, ptr %a22 %t33 = getelementptr inbounds %S.lsp.FnRec, ptr %a14, i32 0, i32 2 %t34 = load { ptr, i64, i64 }, ptr %t33 store { ptr, i64, i64 } %t34, ptr %a36 - store { ptr, i64, i64 } { ptr @.str.6879, i64 1, i64 0 }, ptr %a37 + store { ptr, i64, i64 } { ptr @.str.7087, i64 1, i64 0 }, ptr %a37 call void @finch_str_concat(ptr %a35, ptr %a36, ptr %a37) %t38 = load { ptr, i64, i64 }, ptr %a35 %t39 = getelementptr inbounds %S.lsp.FnRec, ptr %a14, i32 0, i32 1 @@ -105871,8 +109896,8 @@ then10347: store { ptr, i64, i64 } %t45, ptr %a28 store { ptr, i64, i64 } %t46, ptr %a47 call void @finch_str_drop(ptr %a47) - br label %endif10349 -endif10349: + br label %endif10754 +endif10754: %t48 = load { ptr, i64, i64 }, ptr %a28 %t49 = load i64, ptr %a22 %t50 = getelementptr inbounds %S.lsp.FnRec, ptr %a14, i32 0, i32 4 @@ -105886,23 +109911,23 @@ endif10349: store %S.json.Json %t56, ptr %a57 call void @finch.drop.S_json_Json(ptr %a57) call void @finch_str_drop(ptr %a28) - br label %each.step10342 -each.step10342: + br label %each.step10747 +each.step10747: %t58 = load i64, ptr %a6 %t59 = add i64 %t58, 1 store i64 %t59, ptr %a6 - br label %each.cond10340 -each.end10343: + br label %each.cond10745 +each.end10748: %t60 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 3 store i64 0, ptr %a61 - br label %each.cond10350 -each.cond10350: + br label %each.cond10755 +each.cond10755: %t62 = getelementptr inbounds { ptr, i64, i64 }, ptr %t60, i32 0, i32 1 %t63 = load i64, ptr %t62 %t64 = load i64, ptr %a61 %t65 = icmp slt i64 %t64, %t63 - br i1 %t65, label %each.body10351, label %each.end10353 -each.body10351: + br i1 %t65, label %each.body10756, label %each.end10758 +each.body10756: %t66 = load ptr, ptr %t60 %t67 = getelementptr inbounds %S.lsp.StructRec, ptr %t66, i64 %t64 %t68 = load %S.lsp.StructRec, ptr %t67 @@ -105914,8 +109939,8 @@ each.body10351: store { ptr, i64, i64 } %t72, ptr %a74 %t75 = call i32 @finch_str_eq(ptr %a73, ptr %a74) %t76 = icmp ne i32 %t75, 0 - br i1 %t76, label %then10354, label %endif10356 -then10354: + br i1 %t76, label %then10759, label %endif10761 +then10759: %t77 = getelementptr inbounds %S.lsp.StructRec, ptr %a69, i32 0, i32 1 %t78 = load { ptr, i64, i64 }, ptr %t77 %t79 = getelementptr inbounds %S.lsp.StructRec, ptr %a69, i32 0, i32 3 @@ -105933,25 +109958,25 @@ then10354: call void @finch.json.Json.push(ptr %a4, %S.json.Json %t90) store %S.json.Json %t90, ptr %a91 call void @finch.drop.S_json_Json(ptr %a91) - br label %endif10356 -endif10356: - br label %each.step10352 -each.step10352: + br label %endif10761 +endif10761: + br label %each.step10757 +each.step10757: %t92 = load i64, ptr %a61 %t93 = add i64 %t92, 1 store i64 %t93, ptr %a61 - br label %each.cond10350 -each.end10353: + br label %each.cond10755 +each.end10758: %t94 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 4 store i64 0, ptr %a95 - br label %each.cond10357 -each.cond10357: + br label %each.cond10762 +each.cond10762: %t96 = getelementptr inbounds { ptr, i64, i64 }, ptr %t94, i32 0, i32 1 %t97 = load i64, ptr %t96 %t98 = load i64, ptr %a95 %t99 = icmp slt i64 %t98, %t97 - br i1 %t99, label %each.body10358, label %each.end10360 -each.body10358: + br i1 %t99, label %each.body10763, label %each.end10765 +each.body10763: %t100 = load ptr, ptr %t94 %t101 = getelementptr inbounds %S.lsp.EnumRec, ptr %t100, i64 %t98 %t102 = load %S.lsp.EnumRec, ptr %t101 @@ -105963,8 +109988,8 @@ each.body10358: store { ptr, i64, i64 } %t106, ptr %a108 %t109 = call i32 @finch_str_eq(ptr %a107, ptr %a108) %t110 = icmp ne i32 %t109, 0 - br i1 %t110, label %then10361, label %endif10363 -then10361: + br i1 %t110, label %then10766, label %endif10768 +then10766: %t111 = getelementptr inbounds %S.lsp.EnumRec, ptr %a103, i32 0, i32 1 %t112 = load { ptr, i64, i64 }, ptr %t111 %t113 = getelementptr inbounds %S.lsp.EnumRec, ptr %a103, i32 0, i32 3 @@ -105982,15 +110007,15 @@ then10361: call void @finch.json.Json.push(ptr %a4, %S.json.Json %t124) store %S.json.Json %t124, ptr %a125 call void @finch.drop.S_json_Json(ptr %a125) - br label %endif10363 -endif10363: - br label %each.step10359 -each.step10359: + br label %endif10768 +endif10768: + br label %each.step10764 +each.step10764: %t126 = load i64, ptr %a95 %t127 = add i64 %t126, 1 store i64 %t127, ptr %a95 - br label %each.cond10357 -each.end10360: + br label %each.cond10762 +each.end10765: %t128 = load %S.json.Json, ptr %a4 ret %S.json.Json %t128 } @@ -106018,12 +110043,12 @@ entry: store %S.json.Json %t6, ptr %a7 %t8 = load { ptr, i64, i64 }, ptr %a1 %t9 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t8) - call void @finch.json.Json.set(ptr %a7, { ptr, i64, i64 } { ptr @.str.6880, i64 4, i64 0 }, %S.json.Json %t9) + call void @finch.json.Json.set(ptr %a7, { ptr, i64, i64 } { ptr @.str.7088, i64 4, i64 0 }, %S.json.Json %t9) store %S.json.Json %t9, ptr %a10 call void @finch.drop.S_json_Json(ptr %a10) %t11 = load i64, ptr %a2 %t12 = call %S.json.Json @finch.lsp.num(i64 %t11) - call void @finch.json.Json.set(ptr %a7, { ptr, i64, i64 } { ptr @.str.6881, i64 4, i64 0 }, %S.json.Json %t12) + call void @finch.json.Json.set(ptr %a7, { ptr, i64, i64 } { ptr @.str.7089, i64 4, i64 0 }, %S.json.Json %t12) store %S.json.Json %t12, ptr %a13 call void @finch.drop.S_json_Json(ptr %a13) %t14 = call %S.json.Json @finch.json.new_object() @@ -106031,16 +110056,16 @@ entry: %t16 = load i64, ptr %a3 %t17 = sub i64 %t16, 1 %t18 = call %S.json.Json @finch.lsp.position(i64 %t17, i64 0) - call void @finch.json.Json.set(ptr %a15, { ptr, i64, i64 } { ptr @.str.6882, i64 5, i64 0 }, %S.json.Json %t18) + call void @finch.json.Json.set(ptr %a15, { ptr, i64, i64 } { ptr @.str.7090, i64 5, i64 0 }, %S.json.Json %t18) store %S.json.Json %t18, ptr %a19 call void @finch.drop.S_json_Json(ptr %a19) %t20 = load i64, ptr %a5 %t21 = call %S.json.Json @finch.lsp.position(i64 %t20, i64 0) - call void @finch.json.Json.set(ptr %a15, { ptr, i64, i64 } { ptr @.str.6883, i64 3, i64 0 }, %S.json.Json %t21) + call void @finch.json.Json.set(ptr %a15, { ptr, i64, i64 } { ptr @.str.7091, i64 3, i64 0 }, %S.json.Json %t21) store %S.json.Json %t21, ptr %a22 call void @finch.drop.S_json_Json(ptr %a22) %t23 = load %S.json.Json, ptr %a15 - call void @finch.json.Json.set(ptr %a7, { ptr, i64, i64 } { ptr @.str.6884, i64 5, i64 0 }, %S.json.Json %t23) + call void @finch.json.Json.set(ptr %a7, { ptr, i64, i64 } { ptr @.str.7092, i64 5, i64 0 }, %S.json.Json %t23) %t24 = load i64, ptr %a3 %t25 = sub i64 %t24, 1 %t26 = load i64, ptr %a4 @@ -106048,7 +110073,7 @@ entry: %t28 = load i64, ptr %a4 %t29 = sub i64 %t28, 1 %t30 = call %S.json.Json @finch.lsp.range(i64 %t25, i64 %t27, i64 %t29) - call void @finch.json.Json.set(ptr %a7, { ptr, i64, i64 } { ptr @.str.6885, i64 14, i64 0 }, %S.json.Json %t30) + call void @finch.json.Json.set(ptr %a7, { ptr, i64, i64 } { ptr @.str.7093, i64 14, i64 0 }, %S.json.Json %t30) store %S.json.Json %t30, ptr %a31 call void @finch.drop.S_json_Json(ptr %a31) %t32 = load %S.json.Json, ptr %a7 @@ -106077,47 +110102,47 @@ entry: store %S.json.Json %t5, ptr %a6 %t7 = load { ptr, i64, i64 }, ptr %a1 %t8 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t7) - call void @finch.json.Json.set(ptr %a6, { ptr, i64, i64 } { ptr @.str.6886, i64 5, i64 0 }, %S.json.Json %t8) + call void @finch.json.Json.set(ptr %a6, { ptr, i64, i64 } { ptr @.str.7094, i64 5, i64 0 }, %S.json.Json %t8) store %S.json.Json %t8, ptr %a9 call void @finch.drop.S_json_Json(ptr %a9) %t10 = load i64, ptr %a2 %t11 = call %S.json.Json @finch.lsp.num(i64 %t10) - call void @finch.json.Json.set(ptr %a6, { ptr, i64, i64 } { ptr @.str.6887, i64 4, i64 0 }, %S.json.Json %t11) + call void @finch.json.Json.set(ptr %a6, { ptr, i64, i64 } { ptr @.str.7095, i64 4, i64 0 }, %S.json.Json %t11) store %S.json.Json %t11, ptr %a12 call void @finch.drop.S_json_Json(ptr %a12) %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %a3, i32 0, i32 1 %t14 = load i64, ptr %t13 %t15 = icmp sgt i64 %t14, 0 - br i1 %t15, label %then10364, label %endif10366 -then10364: + br i1 %t15, label %then10769, label %endif10771 +then10769: %t16 = load { ptr, i64, i64 }, ptr %a3 %t17 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t16) - call void @finch.json.Json.set(ptr %a6, { ptr, i64, i64 } { ptr @.str.6888, i64 6, i64 0 }, %S.json.Json %t17) + call void @finch.json.Json.set(ptr %a6, { ptr, i64, i64 } { ptr @.str.7096, i64 6, i64 0 }, %S.json.Json %t17) store %S.json.Json %t17, ptr %a18 call void @finch.drop.S_json_Json(ptr %a18) - br label %endif10366 -endif10366: + br label %endif10771 +endif10771: %t19 = getelementptr inbounds { ptr, i64, i64 }, ptr %a4, i32 0, i32 1 %t20 = load i64, ptr %t19 %t21 = icmp sgt i64 %t20, 0 - br i1 %t21, label %then10367, label %endif10369 -then10367: + br i1 %t21, label %then10772, label %endif10774 +then10772: %t22 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t22, ptr %a23 - %t24 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.6890, i64 8, i64 0 }) - call void @finch.json.Json.set(ptr %a23, { ptr, i64, i64 } { ptr @.str.6889, i64 4, i64 0 }, %S.json.Json %t24) + %t24 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.7098, i64 8, i64 0 }) + call void @finch.json.Json.set(ptr %a23, { ptr, i64, i64 } { ptr @.str.7097, i64 4, i64 0 }, %S.json.Json %t24) store %S.json.Json %t24, ptr %a25 call void @finch.drop.S_json_Json(ptr %a25) %t26 = load { ptr, i64, i64 }, ptr %a4 %t27 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t26) - call void @finch.json.Json.set(ptr %a23, { ptr, i64, i64 } { ptr @.str.6891, i64 5, i64 0 }, %S.json.Json %t27) + call void @finch.json.Json.set(ptr %a23, { ptr, i64, i64 } { ptr @.str.7099, i64 5, i64 0 }, %S.json.Json %t27) store %S.json.Json %t27, ptr %a28 call void @finch.drop.S_json_Json(ptr %a28) %t29 = load %S.json.Json, ptr %a23 - call void @finch.json.Json.set(ptr %a6, { ptr, i64, i64 } { ptr @.str.6892, i64 13, i64 0 }, %S.json.Json %t29) + call void @finch.json.Json.set(ptr %a6, { ptr, i64, i64 } { ptr @.str.7100, i64 13, i64 0 }, %S.json.Json %t29) call void @finch.drop.S_json_Json(ptr %a23) - br label %endif10369 -endif10369: + br label %endif10774 +endif10774: %t30 = load %S.json.Json, ptr %a6 ret %S.json.Json %t30 } @@ -106128,72 +110153,72 @@ entry: store i8 %p0, ptr %a1 %t2 = load i8, ptr %a1 %t3 = icmp uge i8 %t2, 97 - br label %logic.from10370 -logic.from10370: - br i1 %t3, label %logic.rhs10371, label %logic.end10372 -logic.rhs10371: + br label %logic.from10775 +logic.from10775: + br i1 %t3, label %logic.rhs10776, label %logic.end10777 +logic.rhs10776: %t4 = load i8, ptr %a1 %t5 = icmp ule i8 %t4, 122 - br label %logic.rend10373 -logic.rend10373: - br label %logic.end10372 -logic.end10372: - %t6 = phi i1 [ false, %logic.from10370 ], [ %t5, %logic.rend10373 ] - br label %logic.from10374 -logic.from10374: - br i1 %t6, label %logic.end10376, label %logic.rhs10375 -logic.rhs10375: + br label %logic.rend10778 +logic.rend10778: + br label %logic.end10777 +logic.end10777: + %t6 = phi i1 [ false, %logic.from10775 ], [ %t5, %logic.rend10778 ] + br label %logic.from10779 +logic.from10779: + br i1 %t6, label %logic.end10781, label %logic.rhs10780 +logic.rhs10780: %t7 = load i8, ptr %a1 %t8 = icmp uge i8 %t7, 65 - br label %logic.from10377 -logic.from10377: - br i1 %t8, label %logic.rhs10378, label %logic.end10379 -logic.rhs10378: + br label %logic.from10782 +logic.from10782: + br i1 %t8, label %logic.rhs10783, label %logic.end10784 +logic.rhs10783: %t9 = load i8, ptr %a1 %t10 = icmp ule i8 %t9, 90 - br label %logic.rend10380 -logic.rend10380: - br label %logic.end10379 -logic.end10379: - %t11 = phi i1 [ false, %logic.from10377 ], [ %t10, %logic.rend10380 ] - br label %logic.rend10381 -logic.rend10381: - br label %logic.end10376 -logic.end10376: - %t12 = phi i1 [ true, %logic.from10374 ], [ %t11, %logic.rend10381 ] - br label %logic.from10382 -logic.from10382: - br i1 %t12, label %logic.end10384, label %logic.rhs10383 -logic.rhs10383: + br label %logic.rend10785 +logic.rend10785: + br label %logic.end10784 +logic.end10784: + %t11 = phi i1 [ false, %logic.from10782 ], [ %t10, %logic.rend10785 ] + br label %logic.rend10786 +logic.rend10786: + br label %logic.end10781 +logic.end10781: + %t12 = phi i1 [ true, %logic.from10779 ], [ %t11, %logic.rend10786 ] + br label %logic.from10787 +logic.from10787: + br i1 %t12, label %logic.end10789, label %logic.rhs10788 +logic.rhs10788: %t13 = load i8, ptr %a1 %t14 = icmp uge i8 %t13, 48 - br label %logic.from10385 -logic.from10385: - br i1 %t14, label %logic.rhs10386, label %logic.end10387 -logic.rhs10386: + br label %logic.from10790 +logic.from10790: + br i1 %t14, label %logic.rhs10791, label %logic.end10792 +logic.rhs10791: %t15 = load i8, ptr %a1 %t16 = icmp ule i8 %t15, 57 - br label %logic.rend10388 -logic.rend10388: - br label %logic.end10387 -logic.end10387: - %t17 = phi i1 [ false, %logic.from10385 ], [ %t16, %logic.rend10388 ] - br label %logic.rend10389 -logic.rend10389: - br label %logic.end10384 -logic.end10384: - %t18 = phi i1 [ true, %logic.from10382 ], [ %t17, %logic.rend10389 ] - br label %logic.from10390 -logic.from10390: - br i1 %t18, label %logic.end10392, label %logic.rhs10391 -logic.rhs10391: + br label %logic.rend10793 +logic.rend10793: + br label %logic.end10792 +logic.end10792: + %t17 = phi i1 [ false, %logic.from10790 ], [ %t16, %logic.rend10793 ] + br label %logic.rend10794 +logic.rend10794: + br label %logic.end10789 +logic.end10789: + %t18 = phi i1 [ true, %logic.from10787 ], [ %t17, %logic.rend10794 ] + br label %logic.from10795 +logic.from10795: + br i1 %t18, label %logic.end10797, label %logic.rhs10796 +logic.rhs10796: %t19 = load i8, ptr %a1 %t20 = icmp eq i8 %t19, 95 - br label %logic.rend10393 -logic.rend10393: - br label %logic.end10392 -logic.end10392: - %t21 = phi i1 [ true, %logic.from10390 ], [ %t20, %logic.rend10393 ] + br label %logic.rend10798 +logic.rend10798: + br label %logic.end10797 +logic.end10797: + %t21 = phi i1 [ true, %logic.from10795 ], [ %t20, %logic.rend10798 ] ret i1 %t21 } @@ -106211,14 +110236,14 @@ entry: store ptr %p0, ptr %a1 store { ptr, i64, i64 } %p1, ptr %a2 store i64 0, ptr %a3 - br label %each.cond10394 -each.cond10394: + br label %each.cond10799 +each.cond10799: %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t5 = load i64, ptr %t4 %t6 = load i64, ptr %a3 %t7 = icmp slt i64 %t6, %t5 - br i1 %t7, label %each.body10395, label %each.end10397 -each.body10395: + br i1 %t7, label %each.body10800, label %each.end10802 +each.body10800: %t8 = load ptr, ptr %a2 %t9 = getelementptr inbounds %S.docs.Doc, ptr %t8, i64 %t6 %t10 = load %S.docs.Doc, ptr %t9 @@ -106227,21 +110252,21 @@ each.body10395: %t13 = getelementptr inbounds %S.docs.Doc, ptr %a11, i32 0, i32 1 %t14 = load { ptr, i64, i64 }, ptr %t13 store { ptr, i64, i64 } %t14, ptr %a15 - store { ptr, i64, i64 } { ptr @.str.6894, i64 1, i64 0 }, ptr %a17 + store { ptr, i64, i64 } { ptr @.str.7102, i64 1, i64 0 }, ptr %a17 %t18 = call i32 @finch_str_starts(ptr %a15, ptr %a17) %t19 = icmp ne i32 %t18, 0 - br i1 %t19, label %then10398, label %endif10400 -then10398: + br i1 %t19, label %then10803, label %endif10805 +then10803: store i64 5, ptr %a12 - br label %endif10400 -endif10400: + br label %endif10805 +endif10805: %t20 = load ptr, ptr %a1 %t21 = icmp eq ptr %t20, null - br i1 %t21, label %panic10401, label %ok10402 -panic10401: - call void @finch_panic(ptr @.str.6895, i64 497, ptr @.str.6896) + br i1 %t21, label %panic10806, label %ok10807 +panic10806: + call void @finch_panic(ptr @.str.7103, i64 497, ptr @.str.7104) unreachable -ok10402: +ok10807: %t22 = getelementptr inbounds %S.docs.Doc, ptr %a11, i32 0, i32 0 %t23 = load { ptr, i64, i64 }, ptr %t22 %t24 = load i64, ptr %a12 @@ -106253,13 +110278,13 @@ ok10402: call void @finch.json.Json.push(ptr %t20, %S.json.Json %t29) store %S.json.Json %t29, ptr %a30 call void @finch.drop.S_json_Json(ptr %a30) - br label %each.step10396 -each.step10396: + br label %each.step10801 +each.step10801: %t31 = load i64, ptr %a3 %t32 = add i64 %t31, 1 store i64 %t32, ptr %a3 - br label %each.cond10394 -each.end10397: + br label %each.cond10799 +each.end10802: ret void } @@ -106286,14 +110311,14 @@ entry: store %S.lsp.VarRec zeroinitializer, ptr %a5 %t6 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 1 store i64 0, ptr %a7 - br label %each.cond10403 -each.cond10403: + br label %each.cond10808 +each.cond10808: %t8 = getelementptr inbounds { ptr, i64, i64 }, ptr %t6, i32 0, i32 1 %t9 = load i64, ptr %t8 %t10 = load i64, ptr %a7 %t11 = icmp slt i64 %t10, %t9 - br i1 %t11, label %each.body10404, label %each.end10406 -each.body10404: + br i1 %t11, label %each.body10809, label %each.end10811 +each.body10809: %t12 = load ptr, ptr %t6 %t13 = getelementptr inbounds %S.lsp.VarRec, ptr %t12, i64 %t10 %t14 = load %S.lsp.VarRec, ptr %t13 @@ -106305,37 +110330,37 @@ each.body10404: store { ptr, i64, i64 } %t18, ptr %a20 %t21 = call i32 @finch_str_eq(ptr %a19, ptr %a20) %t22 = icmp ne i32 %t21, 0 - br label %logic.from10407 -logic.from10407: - br i1 %t22, label %logic.rhs10408, label %logic.end10409 -logic.rhs10408: + br label %logic.from10812 +logic.from10812: + br i1 %t22, label %logic.rhs10813, label %logic.end10814 +logic.rhs10813: %t23 = getelementptr inbounds %S.lsp.VarRec, ptr %a15, i32 0, i32 3 %t24 = load i64, ptr %t23 %t25 = load i64, ptr %a4 %t26 = icmp sle i64 %t24, %t25 - br label %logic.rend10410 -logic.rend10410: - br label %logic.end10409 -logic.end10409: - %t27 = phi i1 [ false, %logic.from10407 ], [ %t26, %logic.rend10410 ] - br label %logic.from10411 -logic.from10411: - br i1 %t27, label %logic.rhs10412, label %logic.end10413 -logic.rhs10412: + br label %logic.rend10815 +logic.rend10815: + br label %logic.end10814 +logic.end10814: + %t27 = phi i1 [ false, %logic.from10812 ], [ %t26, %logic.rend10815 ] + br label %logic.from10816 +logic.from10816: + br i1 %t27, label %logic.rhs10817, label %logic.end10818 +logic.rhs10817: %t28 = load i64, ptr %a4 %t29 = getelementptr inbounds %S.lsp.VarRec, ptr %a15, i32 0, i32 7 %t30 = load i64, ptr %t29 %t31 = add i64 %t30, 1 %t32 = icmp sle i64 %t28, %t31 - br label %logic.rend10414 -logic.rend10414: - br label %logic.end10413 -logic.end10413: - %t33 = phi i1 [ false, %logic.from10411 ], [ %t32, %logic.rend10414 ] - br label %logic.from10415 -logic.from10415: - br i1 %t33, label %logic.rhs10416, label %logic.end10417 -logic.rhs10416: + br label %logic.rend10819 +logic.rend10819: + br label %logic.end10818 +logic.end10818: + %t33 = phi i1 [ false, %logic.from10816 ], [ %t32, %logic.rend10819 ] + br label %logic.from10820 +logic.from10820: + br i1 %t33, label %logic.rhs10821, label %logic.end10822 +logic.rhs10821: %t34 = getelementptr inbounds %S.lsp.VarRec, ptr %a15, i32 0, i32 5 %t35 = load { ptr, i64, i64 }, ptr %t34 %t36 = load { ptr, i64, i64 }, ptr %a2 @@ -106343,13 +110368,13 @@ logic.rhs10416: store { ptr, i64, i64 } %t36, ptr %a38 %t39 = call i32 @finch_str_eq(ptr %a37, ptr %a38) %t40 = icmp ne i32 %t39, 0 - br label %logic.rend10418 -logic.rend10418: - br label %logic.end10417 -logic.end10417: - %t41 = phi i1 [ false, %logic.from10415 ], [ %t40, %logic.rend10418 ] - br i1 %t41, label %then10419, label %endif10421 -then10419: + br label %logic.rend10823 +logic.rend10823: + br label %logic.end10822 +logic.end10822: + %t41 = phi i1 [ false, %logic.from10820 ], [ %t40, %logic.rend10823 ] + br i1 %t41, label %then10824, label %endif10826 +then10824: %t42 = load %S.lsp.VarRec, ptr %a15 store %S.lsp.VarRec %t42, ptr %a43 call void @finch.copy.S_lsp_VarRec(ptr %a44, ptr %a43) @@ -106358,15 +110383,15 @@ then10419: store %S.lsp.VarRec %t45, ptr %a5 store %S.lsp.VarRec %t46, ptr %a47 call void @finch.drop.S_lsp_VarRec(ptr %a47) - br label %endif10421 -endif10421: - br label %each.step10405 -each.step10405: + br label %endif10826 +endif10826: + br label %each.step10810 +each.step10810: %t48 = load i64, ptr %a7 %t49 = add i64 %t48, 1 store i64 %t49, ptr %a7 - br label %each.cond10403 -each.end10406: + br label %each.cond10808 +each.end10811: %t50 = load %S.lsp.VarRec, ptr %a5 ret %S.lsp.VarRec %t50 } @@ -106561,198 +110586,198 @@ entry: %t16 = getelementptr inbounds { ptr, i64, i64 }, ptr %a11, i32 0, i32 1 %t17 = load i64, ptr %t16 %t18 = icmp sgt i64 %t15, %t17 - br i1 %t18, label %then10422, label %endif10424 -then10422: + br i1 %t18, label %then10827, label %endif10829 +then10827: %t19 = getelementptr inbounds { ptr, i64, i64 }, ptr %a11, i32 0, i32 1 %t20 = load i64, ptr %t19 store i64 %t20, ptr %a14 - br label %endif10424 -endif10424: + br label %endif10829 +endif10829: %t21 = load { ptr, i64, i64 }, ptr %a11 store { ptr, i64, i64 } %t21, ptr %a22 %t24 = load i64, ptr %a14 - call void @finch_str_sub(ptr %a23, ptr %a22, i64 0, i64 %t24, ptr @.str.6897, i64 519) + call void @finch_str_sub(ptr %a23, ptr %a22, i64 0, i64 %t24, ptr @.str.7105, i64 519) %t25 = load { ptr, i64, i64 }, ptr %a23 store { ptr, i64, i64 } %t25, ptr %a26 %t27 = getelementptr inbounds { ptr, i64, i64 }, ptr %a26, i32 0, i32 1 %t28 = load i64, ptr %t27 store i64 %t28, ptr %a29 - br label %while.cond10425 -while.cond10425: + br label %while.cond10830 +while.cond10830: %t30 = load i64, ptr %a29 %t31 = icmp sgt i64 %t30, 0 - br label %logic.from10428 -logic.from10428: - br i1 %t31, label %logic.rhs10429, label %logic.end10430 -logic.rhs10429: + br label %logic.from10833 +logic.from10833: + br i1 %t31, label %logic.rhs10834, label %logic.end10835 +logic.rhs10834: %t32 = load i64, ptr %a29 %t33 = sub i64 %t32, 1 %t34 = load { ptr, i64, i64 }, ptr %a26 %t35 = extractvalue { ptr, i64, i64 } %t34, 1 %t36 = icmp uge i64 %t33, %t35 - br i1 %t36, label %range10431, label %inrange10432 -range10431: - call void @finch_panic_index(ptr @.str.6898, i64 522, i64 %t33, i64 %t35) + br i1 %t36, label %range10836, label %inrange10837 +range10836: + call void @finch_panic_index(ptr @.str.7106, i64 522, i64 %t33, i64 %t35) unreachable -inrange10432: +inrange10837: %t37 = extractvalue { ptr, i64, i64 } %t34, 0 %t38 = getelementptr inbounds i8, ptr %t37, i64 %t33 %t39 = load i8, ptr %t38 %t40 = call i1 @finch.lsp.isWordChar(i8 %t39) - br label %logic.rend10433 -logic.rend10433: - br label %logic.end10430 -logic.end10430: - %t41 = phi i1 [ false, %logic.from10428 ], [ %t40, %logic.rend10433 ] - br i1 %t41, label %while.body10426, label %while.end10427 -while.body10426: + br label %logic.rend10838 +logic.rend10838: + br label %logic.end10835 +logic.end10835: + %t41 = phi i1 [ false, %logic.from10833 ], [ %t40, %logic.rend10838 ] + br i1 %t41, label %while.body10831, label %while.end10832 +while.body10831: %t42 = load i64, ptr %a29 %t43 = sub i64 %t42, 1 store i64 %t43, ptr %a29 - br label %while.cond10425 -while.end10427: + br label %while.cond10830 +while.end10832: %t44 = load i64, ptr %a29 %t45 = icmp sgt i64 %t44, 0 - br label %logic.from10434 -logic.from10434: - br i1 %t45, label %logic.rhs10435, label %logic.end10436 -logic.rhs10435: + br label %logic.from10839 +logic.from10839: + br i1 %t45, label %logic.rhs10840, label %logic.end10841 +logic.rhs10840: %t46 = load i64, ptr %a29 %t47 = sub i64 %t46, 1 %t48 = load { ptr, i64, i64 }, ptr %a26 %t49 = extractvalue { ptr, i64, i64 } %t48, 1 %t50 = icmp uge i64 %t47, %t49 - br i1 %t50, label %range10437, label %inrange10438 -range10437: - call void @finch_panic_index(ptr @.str.6899, i64 525, i64 %t47, i64 %t49) + br i1 %t50, label %range10842, label %inrange10843 +range10842: + call void @finch_panic_index(ptr @.str.7107, i64 525, i64 %t47, i64 %t49) unreachable -inrange10438: +inrange10843: %t51 = extractvalue { ptr, i64, i64 } %t48, 0 %t52 = getelementptr inbounds i8, ptr %t51, i64 %t47 %t53 = load i8, ptr %t52 %t54 = icmp eq i8 %t53, 46 - br label %logic.rend10439 -logic.rend10439: - br label %logic.end10436 -logic.end10436: - %t55 = phi i1 [ false, %logic.from10434 ], [ %t54, %logic.rend10439 ] + br label %logic.rend10844 +logic.rend10844: + br label %logic.end10841 +logic.end10841: + %t55 = phi i1 [ false, %logic.from10839 ], [ %t54, %logic.rend10844 ] store i1 %t55, ptr %a56 %t57 = load i1, ptr %a56 - br i1 %t57, label %then10440, label %endif10442 -then10440: + br i1 %t57, label %then10845, label %endif10847 +then10845: %t58 = load i64, ptr %a29 %t59 = sub i64 %t58, 1 store i64 %t59, ptr %a60 - br label %while.cond10443 -while.cond10443: + br label %while.cond10848 +while.cond10848: %t61 = load i64, ptr %a60 %t62 = icmp sgt i64 %t61, 0 - br label %logic.from10446 -logic.from10446: - br i1 %t62, label %logic.rhs10447, label %logic.end10448 -logic.rhs10447: + br label %logic.from10851 +logic.from10851: + br i1 %t62, label %logic.rhs10852, label %logic.end10853 +logic.rhs10852: %t63 = load i64, ptr %a60 %t64 = sub i64 %t63, 1 %t65 = load { ptr, i64, i64 }, ptr %a26 %t66 = extractvalue { ptr, i64, i64 } %t65, 1 %t67 = icmp uge i64 %t64, %t66 - br i1 %t67, label %range10449, label %inrange10450 -range10449: - call void @finch_panic_index(ptr @.str.6900, i64 528, i64 %t64, i64 %t66) + br i1 %t67, label %range10854, label %inrange10855 +range10854: + call void @finch_panic_index(ptr @.str.7108, i64 528, i64 %t64, i64 %t66) unreachable -inrange10450: +inrange10855: %t68 = extractvalue { ptr, i64, i64 } %t65, 0 %t69 = getelementptr inbounds i8, ptr %t68, i64 %t64 %t70 = load i8, ptr %t69 %t71 = call i1 @finch.lsp.isWordChar(i8 %t70) - br label %logic.from10451 -logic.from10451: - br i1 %t71, label %logic.end10453, label %logic.rhs10452 -logic.rhs10452: + br label %logic.from10856 +logic.from10856: + br i1 %t71, label %logic.end10858, label %logic.rhs10857 +logic.rhs10857: %t72 = load i64, ptr %a60 %t73 = sub i64 %t72, 1 %t74 = load { ptr, i64, i64 }, ptr %a26 %t75 = extractvalue { ptr, i64, i64 } %t74, 1 %t76 = icmp uge i64 %t73, %t75 - br i1 %t76, label %range10454, label %inrange10455 -range10454: - call void @finch_panic_index(ptr @.str.6901, i64 528, i64 %t73, i64 %t75) + br i1 %t76, label %range10859, label %inrange10860 +range10859: + call void @finch_panic_index(ptr @.str.7109, i64 528, i64 %t73, i64 %t75) unreachable -inrange10455: +inrange10860: %t77 = extractvalue { ptr, i64, i64 } %t74, 0 %t78 = getelementptr inbounds i8, ptr %t77, i64 %t73 %t79 = load i8, ptr %t78 %t80 = icmp eq i8 %t79, 91 - br label %logic.rend10456 -logic.rend10456: - br label %logic.end10453 -logic.end10453: - %t81 = phi i1 [ true, %logic.from10451 ], [ %t80, %logic.rend10456 ] - br label %logic.from10457 -logic.from10457: - br i1 %t81, label %logic.end10459, label %logic.rhs10458 -logic.rhs10458: + br label %logic.rend10861 +logic.rend10861: + br label %logic.end10858 +logic.end10858: + %t81 = phi i1 [ true, %logic.from10856 ], [ %t80, %logic.rend10861 ] + br label %logic.from10862 +logic.from10862: + br i1 %t81, label %logic.end10864, label %logic.rhs10863 +logic.rhs10863: %t82 = load i64, ptr %a60 %t83 = sub i64 %t82, 1 %t84 = load { ptr, i64, i64 }, ptr %a26 %t85 = extractvalue { ptr, i64, i64 } %t84, 1 %t86 = icmp uge i64 %t83, %t85 - br i1 %t86, label %range10460, label %inrange10461 -range10460: - call void @finch_panic_index(ptr @.str.6902, i64 528, i64 %t83, i64 %t85) + br i1 %t86, label %range10865, label %inrange10866 +range10865: + call void @finch_panic_index(ptr @.str.7110, i64 528, i64 %t83, i64 %t85) unreachable -inrange10461: +inrange10866: %t87 = extractvalue { ptr, i64, i64 } %t84, 0 %t88 = getelementptr inbounds i8, ptr %t87, i64 %t83 %t89 = load i8, ptr %t88 %t90 = icmp eq i8 %t89, 93 - br label %logic.rend10462 -logic.rend10462: - br label %logic.end10459 -logic.end10459: - %t91 = phi i1 [ true, %logic.from10457 ], [ %t90, %logic.rend10462 ] - br label %logic.rend10463 -logic.rend10463: - br label %logic.end10448 -logic.end10448: - %t92 = phi i1 [ false, %logic.from10446 ], [ %t91, %logic.rend10463 ] - br i1 %t92, label %while.body10444, label %while.end10445 -while.body10444: + br label %logic.rend10867 +logic.rend10867: + br label %logic.end10864 +logic.end10864: + %t91 = phi i1 [ true, %logic.from10862 ], [ %t90, %logic.rend10867 ] + br label %logic.rend10868 +logic.rend10868: + br label %logic.end10853 +logic.end10853: + %t92 = phi i1 [ false, %logic.from10851 ], [ %t91, %logic.rend10868 ] + br i1 %t92, label %while.body10849, label %while.end10850 +while.body10849: %t93 = load i64, ptr %a60 %t94 = sub i64 %t93, 1 store i64 %t94, ptr %a60 - br label %while.cond10443 -while.end10445: + br label %while.cond10848 +while.end10850: %t95 = load { ptr, i64, i64 }, ptr %a26 store { ptr, i64, i64 } %t95, ptr %a96 %t98 = load i64, ptr %a60 %t99 = load i64, ptr %a29 %t100 = sub i64 %t99, 1 - call void @finch_str_sub(ptr %a97, ptr %a96, i64 %t98, i64 %t100, ptr @.str.6903, i64 531) + call void @finch_str_sub(ptr %a97, ptr %a96, i64 %t98, i64 %t100, ptr @.str.7111, i64 531) %t101 = load { ptr, i64, i64 }, ptr %a97 store { ptr, i64, i64 } %t101, ptr %a102 store i1 false, ptr %a103 %t104 = load { ptr, i64, i64 }, ptr %a102 store { ptr, i64, i64 } %t104, ptr %a105 - store { ptr, i64, i64 } { ptr @.str.6905, i64 1, i64 0 }, ptr %a107 + store { ptr, i64, i64 } { ptr @.str.7113, i64 1, i64 0 }, ptr %a107 %t108 = call i64 @finch_str_find(ptr %a105, ptr %a107) store i64 %t108, ptr %a109 %t110 = load i64, ptr %a109 %t111 = icmp sge i64 %t110, 0 - br i1 %t111, label %then10464, label %endif10466 -then10464: + br i1 %t111, label %then10869, label %endif10871 +then10869: %t112 = load { ptr, i64, i64 }, ptr %a102 store { ptr, i64, i64 } %t112, ptr %a113 %t115 = load i64, ptr %a109 - call void @finch_str_sub(ptr %a114, ptr %a113, i64 0, i64 %t115, ptr @.str.6906, i64 535) + call void @finch_str_sub(ptr %a114, ptr %a113, i64 0, i64 %t115, ptr @.str.7114, i64 535) %t116 = load { ptr, i64, i64 }, ptr %a114 %t117 = load { ptr, i64, i64 }, ptr %a102 store { ptr, i64, i64 } %t116, ptr %a102 store { ptr, i64, i64 } %t117, ptr %a118 call void @finch_str_drop(ptr %a118) store i1 true, ptr %a103 - br label %endif10466 -endif10466: + br label %endif10871 +endif10871: %t119 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 5 %t120 = getelementptr inbounds { ptr, i64, i64 }, ptr %t119, i32 0, i32 1 %t121 = load { ptr, i64, i64 }, ptr %a102 @@ -106760,41 +110785,41 @@ endif10466: %t123 = load i64, ptr %t120 %t124 = load ptr, ptr %t119 store i64 0, ptr %a125 - br label %find.cond10467 -find.cond10467: + br label %find.cond10872 +find.cond10872: %t126 = load i64, ptr %a125 %t127 = icmp slt i64 %t126, %t123 - br i1 %t127, label %find.body10468, label %find.end10471 -find.body10468: + br i1 %t127, label %find.body10873, label %find.end10876 +find.body10873: %t128 = getelementptr inbounds { ptr, i64, i64 }, ptr %t124, i64 %t126 %t129 = load { ptr, i64, i64 }, ptr %t128 store { ptr, i64, i64 } %t129, ptr %a130 store { ptr, i64, i64 } %t121, ptr %a131 %t132 = call i32 @finch_str_eq(ptr %a130, ptr %a131) %t133 = icmp ne i32 %t132, 0 - br i1 %t133, label %find.hit10469, label %find.next10470 -find.hit10469: + br i1 %t133, label %find.hit10874, label %find.next10875 +find.hit10874: store i64 %t126, ptr %a122 - br label %find.end10471 -find.next10470: + br label %find.end10876 +find.next10875: %t134 = add i64 %t126, 1 store i64 %t134, ptr %a125 - br label %find.cond10467 -find.end10471: + br label %find.cond10872 +find.end10876: %t135 = load i64, ptr %a122 %t136 = icmp sge i64 %t135, 0 - br i1 %t136, label %then10472, label %endif10474 -then10472: + br i1 %t136, label %then10877, label %endif10879 +then10877: %t137 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 2 store i64 0, ptr %a138 - br label %each.cond10475 -each.cond10475: + br label %each.cond10880 +each.cond10880: %t139 = getelementptr inbounds { ptr, i64, i64 }, ptr %t137, i32 0, i32 1 %t140 = load i64, ptr %t139 %t141 = load i64, ptr %a138 %t142 = icmp slt i64 %t141, %t140 - br i1 %t142, label %each.body10476, label %each.end10478 -each.body10476: + br i1 %t142, label %each.body10881, label %each.end10883 +each.body10881: %t143 = load ptr, ptr %t137 %t144 = getelementptr inbounds %S.lsp.FnRec, ptr %t143, i64 %t141 %t145 = load %S.lsp.FnRec, ptr %t144 @@ -106806,48 +110831,48 @@ each.body10476: store { ptr, i64, i64 } %t149, ptr %a151 %t152 = call i32 @finch_str_eq(ptr %a150, ptr %a151) %t153 = icmp ne i32 %t152, 0 - br label %logic.from10479 -logic.from10479: - br i1 %t153, label %logic.rhs10480, label %logic.end10481 -logic.rhs10480: + br label %logic.from10884 +logic.from10884: + br i1 %t153, label %logic.rhs10885, label %logic.end10886 +logic.rhs10885: %t154 = getelementptr inbounds %S.lsp.FnRec, ptr %a146, i32 0, i32 2 %t155 = getelementptr inbounds { ptr, i64, i64 }, ptr %t154, i32 0, i32 1 %t156 = load i64, ptr %t155 %t157 = icmp eq i64 %t156, 0 - br label %logic.rend10482 -logic.rend10482: - br label %logic.end10481 -logic.end10481: - %t158 = phi i1 [ false, %logic.from10479 ], [ %t157, %logic.rend10482 ] - br i1 %t158, label %then10483, label %endif10485 -then10483: + br label %logic.rend10887 +logic.rend10887: + br label %logic.end10886 +logic.end10886: + %t158 = phi i1 [ false, %logic.from10884 ], [ %t157, %logic.rend10887 ] + br i1 %t158, label %then10888, label %endif10890 +then10888: %t159 = getelementptr inbounds %S.lsp.FnRec, ptr %a146, i32 0, i32 1 %t160 = load { ptr, i64, i64 }, ptr %t159 %t161 = getelementptr inbounds %S.lsp.FnRec, ptr %a146, i32 0, i32 7 %t162 = load { ptr, i64, i64 }, ptr %t161 - %t163 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t160, i64 3, { ptr, i64, i64 } %t162, { ptr, i64, i64 } { ptr @.str.6907, i64 0, i64 0 }) + %t163 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t160, i64 3, { ptr, i64, i64 } %t162, { ptr, i64, i64 } { ptr @.str.7115, i64 0, i64 0 }) call void @finch.json.Json.push(ptr %a7, %S.json.Json %t163) store %S.json.Json %t163, ptr %a164 call void @finch.drop.S_json_Json(ptr %a164) - br label %endif10485 -endif10485: - br label %each.step10477 -each.step10477: + br label %endif10890 +endif10890: + br label %each.step10882 +each.step10882: %t165 = load i64, ptr %a138 %t166 = add i64 %t165, 1 store i64 %t166, ptr %a138 - br label %each.cond10475 -each.end10478: + br label %each.cond10880 +each.end10883: %t167 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 3 store i64 0, ptr %a168 - br label %each.cond10486 -each.cond10486: + br label %each.cond10891 +each.cond10891: %t169 = getelementptr inbounds { ptr, i64, i64 }, ptr %t167, i32 0, i32 1 %t170 = load i64, ptr %t169 %t171 = load i64, ptr %a168 %t172 = icmp slt i64 %t171, %t170 - br i1 %t172, label %each.body10487, label %each.end10489 -each.body10487: + br i1 %t172, label %each.body10892, label %each.end10894 +each.body10892: %t173 = load ptr, ptr %t167 %t174 = getelementptr inbounds %S.lsp.StructRec, ptr %t173, i64 %t171 %t175 = load %S.lsp.StructRec, ptr %t174 @@ -106859,41 +110884,41 @@ each.body10487: store { ptr, i64, i64 } %t179, ptr %a181 %t182 = call i32 @finch_str_eq(ptr %a180, ptr %a181) %t183 = icmp ne i32 %t182, 0 - br i1 %t183, label %then10490, label %endif10492 -then10490: + br i1 %t183, label %then10895, label %endif10897 +then10895: %t184 = getelementptr inbounds %S.lsp.StructRec, ptr %a176, i32 0, i32 1 %t185 = load { ptr, i64, i64 }, ptr %t184 %t186 = getelementptr inbounds %S.lsp.StructRec, ptr %a176, i32 0, i32 1 %t187 = load { ptr, i64, i64 }, ptr %t186 - store { ptr, i64, i64 } { ptr @.str.6908, i64 7, i64 0 }, ptr %a189 + store { ptr, i64, i64 } { ptr @.str.7116, i64 7, i64 0 }, ptr %a189 store { ptr, i64, i64 } %t187, ptr %a190 call void @finch_str_concat(ptr %a188, ptr %a189, ptr %a190) %t191 = load { ptr, i64, i64 }, ptr %a188 - %t192 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t185, i64 22, { ptr, i64, i64 } %t191, { ptr, i64, i64 } { ptr @.str.6909, i64 0, i64 0 }) + %t192 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t185, i64 22, { ptr, i64, i64 } %t191, { ptr, i64, i64 } { ptr @.str.7117, i64 0, i64 0 }) store { ptr, i64, i64 } %t191, ptr %a193 call void @finch_str_drop(ptr %a193) call void @finch.json.Json.push(ptr %a7, %S.json.Json %t192) store %S.json.Json %t192, ptr %a194 call void @finch.drop.S_json_Json(ptr %a194) - br label %endif10492 -endif10492: - br label %each.step10488 -each.step10488: + br label %endif10897 +endif10897: + br label %each.step10893 +each.step10893: %t195 = load i64, ptr %a168 %t196 = add i64 %t195, 1 store i64 %t196, ptr %a168 - br label %each.cond10486 -each.end10489: + br label %each.cond10891 +each.end10894: %t197 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 4 store i64 0, ptr %a198 - br label %each.cond10493 -each.cond10493: + br label %each.cond10898 +each.cond10898: %t199 = getelementptr inbounds { ptr, i64, i64 }, ptr %t197, i32 0, i32 1 %t200 = load i64, ptr %t199 %t201 = load i64, ptr %a198 %t202 = icmp slt i64 %t201, %t200 - br i1 %t202, label %each.body10494, label %each.end10496 -each.body10494: + br i1 %t202, label %each.body10899, label %each.end10901 +each.body10899: %t203 = load ptr, ptr %t197 %t204 = getelementptr inbounds %S.lsp.EnumRec, ptr %t203, i64 %t201 %t205 = load %S.lsp.EnumRec, ptr %t204 @@ -106905,31 +110930,31 @@ each.body10494: store { ptr, i64, i64 } %t209, ptr %a211 %t212 = call i32 @finch_str_eq(ptr %a210, ptr %a211) %t213 = icmp ne i32 %t212, 0 - br i1 %t213, label %then10497, label %endif10499 -then10497: + br i1 %t213, label %then10902, label %endif10904 +then10902: %t214 = getelementptr inbounds %S.lsp.EnumRec, ptr %a206, i32 0, i32 1 %t215 = load { ptr, i64, i64 }, ptr %t214 %t216 = getelementptr inbounds %S.lsp.EnumRec, ptr %a206, i32 0, i32 1 %t217 = load { ptr, i64, i64 }, ptr %t216 - store { ptr, i64, i64 } { ptr @.str.6910, i64 5, i64 0 }, ptr %a219 + store { ptr, i64, i64 } { ptr @.str.7118, i64 5, i64 0 }, ptr %a219 store { ptr, i64, i64 } %t217, ptr %a220 call void @finch_str_concat(ptr %a218, ptr %a219, ptr %a220) %t221 = load { ptr, i64, i64 }, ptr %a218 - %t222 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t215, i64 13, { ptr, i64, i64 } %t221, { ptr, i64, i64 } { ptr @.str.6911, i64 0, i64 0 }) + %t222 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t215, i64 13, { ptr, i64, i64 } %t221, { ptr, i64, i64 } { ptr @.str.7119, i64 0, i64 0 }) store { ptr, i64, i64 } %t221, ptr %a223 call void @finch_str_drop(ptr %a223) call void @finch.json.Json.push(ptr %a7, %S.json.Json %t222) store %S.json.Json %t222, ptr %a224 call void @finch.drop.S_json_Json(ptr %a224) - br label %endif10499 -endif10499: - br label %each.step10495 -each.step10495: + br label %endif10904 +endif10904: + br label %each.step10900 +each.step10900: %t225 = load i64, ptr %a198 %t226 = add i64 %t225, 1 store i64 %t226, ptr %a198 - br label %each.cond10493 -each.end10496: + br label %each.cond10898 +each.end10901: %t227 = load %S.json.Json, ptr %a7 %t228 = call %S.json.Json @finch.lsp.completionList(%S.json.Json %t227) call void @finch_str_drop(ptr %a102) @@ -106937,17 +110962,17 @@ each.end10496: call void @finch_str_drop(ptr %a11) call void @finch.drop.S_json_Json(ptr %a7) ret %S.json.Json %t228 -endif10474: +endif10879: %t229 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 4 store i64 0, ptr %a230 - br label %each.cond10500 -each.cond10500: + br label %each.cond10905 +each.cond10905: %t231 = getelementptr inbounds { ptr, i64, i64 }, ptr %t229, i32 0, i32 1 %t232 = load i64, ptr %t231 %t233 = load i64, ptr %a230 %t234 = icmp slt i64 %t233, %t232 - br i1 %t234, label %each.body10501, label %each.end10503 -each.body10501: + br i1 %t234, label %each.body10906, label %each.end10908 +each.body10906: %t235 = load ptr, ptr %t229 %t236 = getelementptr inbounds %S.lsp.EnumRec, ptr %t235, i64 %t233 %t237 = load %S.lsp.EnumRec, ptr %t236 @@ -106959,10 +110984,10 @@ each.body10501: store { ptr, i64, i64 } %t241, ptr %a243 %t244 = call i32 @finch_str_eq(ptr %a242, ptr %a243) %t245 = icmp ne i32 %t244, 0 - br label %logic.from10504 -logic.from10504: - br i1 %t245, label %logic.rhs10505, label %logic.end10506 -logic.rhs10505: + br label %logic.from10909 +logic.from10909: + br i1 %t245, label %logic.rhs10910, label %logic.end10911 +logic.rhs10910: %t246 = load %S.lsp.Analysis, ptr %a1 %t247 = load { ptr, i64, i64 }, ptr %a3 %t248 = load { ptr, i64, i64 }, ptr %a102 @@ -106978,23 +111003,23 @@ logic.rhs10505: store { ptr, i64, i64 } %t254, ptr %a257 call void @finch_str_drop(ptr %a257) %t258 = icmp eq i64 %t256, 0 - br label %logic.rend10507 -logic.rend10507: - br label %logic.end10506 -logic.end10506: - %t259 = phi i1 [ false, %logic.from10504 ], [ %t258, %logic.rend10507 ] - br i1 %t259, label %then10508, label %endif10510 -then10508: + br label %logic.rend10912 +logic.rend10912: + br label %logic.end10911 +logic.end10911: + %t259 = phi i1 [ false, %logic.from10909 ], [ %t258, %logic.rend10912 ] + br i1 %t259, label %then10913, label %endif10915 +then10913: %t260 = getelementptr inbounds %S.lsp.EnumRec, ptr %a238, i32 0, i32 5 store i64 0, ptr %a261 - br label %each.cond10511 -each.cond10511: + br label %each.cond10916 +each.cond10916: %t262 = getelementptr inbounds { ptr, i64, i64 }, ptr %t260, i32 0, i32 1 %t263 = load i64, ptr %t262 %t264 = load i64, ptr %a261 %t265 = icmp slt i64 %t264, %t263 - br i1 %t265, label %each.body10512, label %each.end10514 -each.body10512: + br i1 %t265, label %each.body10917, label %each.end10919 +each.body10917: %t266 = load ptr, ptr %t260 %t267 = getelementptr inbounds { ptr, i64, i64 }, ptr %t266, i64 %t264 %t268 = load { ptr, i64, i64 }, ptr %t267 @@ -107003,7 +111028,7 @@ each.body10512: %t271 = getelementptr inbounds %S.lsp.EnumRec, ptr %a238, i32 0, i32 1 %t272 = load { ptr, i64, i64 }, ptr %t271 store { ptr, i64, i64 } %t272, ptr %a274 - store { ptr, i64, i64 } { ptr @.str.6912, i64 1, i64 0 }, ptr %a275 + store { ptr, i64, i64 } { ptr @.str.7120, i64 1, i64 0 }, ptr %a275 call void @finch_str_concat(ptr %a273, ptr %a274, ptr %a275) %t276 = load { ptr, i64, i64 }, ptr %a273 %t277 = load { ptr, i64, i64 }, ptr %a269 @@ -107013,19 +111038,19 @@ each.body10512: store { ptr, i64, i64 } %t276, ptr %a281 call void @finch_str_drop(ptr %a281) %t282 = load { ptr, i64, i64 }, ptr %a278 - %t283 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t270, i64 20, { ptr, i64, i64 } %t282, { ptr, i64, i64 } { ptr @.str.6913, i64 0, i64 0 }) + %t283 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t270, i64 20, { ptr, i64, i64 } %t282, { ptr, i64, i64 } { ptr @.str.7121, i64 0, i64 0 }) store { ptr, i64, i64 } %t282, ptr %a284 call void @finch_str_drop(ptr %a284) call void @finch.json.Json.push(ptr %a7, %S.json.Json %t283) store %S.json.Json %t283, ptr %a285 call void @finch.drop.S_json_Json(ptr %a285) - br label %each.step10513 -each.step10513: + br label %each.step10918 +each.step10918: %t286 = load i64, ptr %a261 %t287 = add i64 %t286, 1 store i64 %t287, ptr %a261 - br label %each.cond10511 -each.end10514: + br label %each.cond10916 +each.end10919: %t288 = load %S.json.Json, ptr %a7 %t289 = call %S.json.Json @finch.lsp.completionList(%S.json.Json %t288) call void @finch_str_drop(ptr %a102) @@ -107033,14 +111058,14 @@ each.end10514: call void @finch_str_drop(ptr %a11) call void @finch.drop.S_json_Json(ptr %a7) ret %S.json.Json %t289 -endif10510: - br label %each.step10502 -each.step10502: +endif10915: + br label %each.step10907 +each.step10907: %t290 = load i64, ptr %a230 %t291 = add i64 %t290, 1 store i64 %t291, ptr %a230 - br label %each.cond10500 -each.end10503: + br label %each.cond10905 +each.end10908: %t292 = load %S.lsp.Analysis, ptr %a1 %t293 = load { ptr, i64, i64 }, ptr %a3 %t294 = load { ptr, i64, i64 }, ptr %a102 @@ -107054,132 +111079,132 @@ each.end10503: call void @finch.drop.S_lsp_VarRec(ptr %a301) store { ptr, i64, i64 } %t300, ptr %a302 %t303 = load i1, ptr %a103 - br label %logic.from10515 -logic.from10515: - br i1 %t303, label %logic.rhs10516, label %logic.end10517 -logic.rhs10516: + br label %logic.from10920 +logic.from10920: + br i1 %t303, label %logic.rhs10921, label %logic.end10922 +logic.rhs10921: %t304 = load { ptr, i64, i64 }, ptr %a302 store { ptr, i64, i64 } %t304, ptr %a305 - store { ptr, i64, i64 } { ptr @.str.6915, i64 2, i64 0 }, ptr %a307 + store { ptr, i64, i64 } { ptr @.str.7123, i64 2, i64 0 }, ptr %a307 %t308 = call i32 @finch_str_starts(ptr %a305, ptr %a307) %t309 = icmp ne i32 %t308, 0 - br label %logic.rend10518 -logic.rend10518: - br label %logic.end10517 -logic.end10517: - %t310 = phi i1 [ false, %logic.from10515 ], [ %t309, %logic.rend10518 ] - br i1 %t310, label %then10519, label %else10520 -then10519: + br label %logic.rend10923 +logic.rend10923: + br label %logic.end10922 +logic.end10922: + %t310 = phi i1 [ false, %logic.from10920 ], [ %t309, %logic.rend10923 ] + br i1 %t310, label %then10924, label %else10925 +then10924: %t311 = load { ptr, i64, i64 }, ptr %a302 store { ptr, i64, i64 } %t311, ptr %a312 %t314 = getelementptr inbounds { ptr, i64, i64 }, ptr %a302, i32 0, i32 1 %t315 = load i64, ptr %t314 - call void @finch_str_sub(ptr %a313, ptr %a312, i64 2, i64 %t315, ptr @.str.6916, i64 569) + call void @finch_str_sub(ptr %a313, ptr %a312, i64 2, i64 %t315, ptr @.str.7124, i64 569) %t316 = load { ptr, i64, i64 }, ptr %a313 %t317 = load { ptr, i64, i64 }, ptr %a302 store { ptr, i64, i64 } %t316, ptr %a302 store { ptr, i64, i64 } %t317, ptr %a318 call void @finch_str_drop(ptr %a318) - br label %endif10521 -else10520: + br label %endif10926 +else10925: %t319 = load i1, ptr %a103 - br label %logic.from10522 -logic.from10522: - br i1 %t319, label %logic.rhs10523, label %logic.end10524 -logic.rhs10523: + br label %logic.from10927 +logic.from10927: + br i1 %t319, label %logic.rhs10928, label %logic.end10929 +logic.rhs10928: %t320 = load { ptr, i64, i64 }, ptr %a302 store { ptr, i64, i64 } %t320, ptr %a321 - store { ptr, i64, i64 } { ptr @.str.6917, i64 3, i64 0 }, ptr %a322 + store { ptr, i64, i64 } { ptr @.str.7125, i64 3, i64 0 }, ptr %a322 %t323 = call i32 @finch_str_eq(ptr %a321, ptr %a322) %t324 = icmp ne i32 %t323, 0 - br label %logic.rend10525 -logic.rend10525: - br label %logic.end10524 -logic.end10524: - %t325 = phi i1 [ false, %logic.from10522 ], [ %t324, %logic.rend10525 ] - br i1 %t325, label %then10526, label %endif10528 -then10526: + br label %logic.rend10930 +logic.rend10930: + br label %logic.end10929 +logic.end10929: + %t325 = phi i1 [ false, %logic.from10927 ], [ %t324, %logic.rend10930 ] + br i1 %t325, label %then10931, label %endif10933 +then10931: %t326 = load { ptr, i64, i64 }, ptr %a302 - store { ptr, i64, i64 } { ptr @.str.6918, i64 4, i64 0 }, ptr %a302 + store { ptr, i64, i64 } { ptr @.str.7126, i64 4, i64 0 }, ptr %a302 store { ptr, i64, i64 } %t326, ptr %a327 call void @finch_str_drop(ptr %a327) - br label %endif10528 -endif10528: - br label %endif10521 -endif10521: + br label %endif10933 +endif10933: + br label %endif10926 +endif10926: %t328 = load { ptr, i64, i64 }, ptr %a302 store { ptr, i64, i64 } %t328, ptr %a329 - store { ptr, i64, i64 } { ptr @.str.6920, i64 4, i64 0 }, ptr %a331 + store { ptr, i64, i64 } { ptr @.str.7128, i64 4, i64 0 }, ptr %a331 %t332 = call i32 @finch_str_starts(ptr %a329, ptr %a331) %t333 = icmp ne i32 %t332, 0 - br label %logic.from10529 -logic.from10529: - br i1 %t333, label %logic.rhs10530, label %logic.end10531 -logic.rhs10530: + br label %logic.from10934 +logic.from10934: + br i1 %t333, label %logic.rhs10935, label %logic.end10936 +logic.rhs10935: %t334 = load { ptr, i64, i64 }, ptr %a302 store { ptr, i64, i64 } %t334, ptr %a335 - store { ptr, i64, i64 } { ptr @.str.6922, i64 1, i64 0 }, ptr %a337 + store { ptr, i64, i64 } { ptr @.str.7130, i64 1, i64 0 }, ptr %a337 %t338 = call i32 @finch_str_ends(ptr %a335, ptr %a337) %t339 = icmp ne i32 %t338, 0 - br label %logic.rend10532 -logic.rend10532: - br label %logic.end10531 -logic.end10531: - %t340 = phi i1 [ false, %logic.from10529 ], [ %t339, %logic.rend10532 ] - br i1 %t340, label %then10533, label %endif10535 -then10533: + br label %logic.rend10937 +logic.rend10937: + br label %logic.end10936 +logic.end10936: + %t340 = phi i1 [ false, %logic.from10934 ], [ %t339, %logic.rend10937 ] + br i1 %t340, label %then10938, label %endif10940 +then10938: %t341 = load { ptr, i64, i64 }, ptr %a302 store { ptr, i64, i64 } %t341, ptr %a342 %t344 = getelementptr inbounds { ptr, i64, i64 }, ptr %a302, i32 0, i32 1 %t345 = load i64, ptr %t344 %t346 = sub i64 %t345, 1 - call void @finch_str_sub(ptr %a343, ptr %a342, i64 4, i64 %t346, ptr @.str.6923, i64 574) + call void @finch_str_sub(ptr %a343, ptr %a342, i64 4, i64 %t346, ptr @.str.7131, i64 574) %t347 = load { ptr, i64, i64 }, ptr %a343 %t348 = load { ptr, i64, i64 }, ptr %a302 store { ptr, i64, i64 } %t347, ptr %a302 store { ptr, i64, i64 } %t348, ptr %a349 call void @finch_str_drop(ptr %a349) - br label %endif10535 -endif10535: + br label %endif10940 +endif10940: %t350 = load { ptr, i64, i64 }, ptr %a302 store { ptr, i64, i64 } %t350, ptr %a351 - store { ptr, i64, i64 } { ptr @.str.6925, i64 2, i64 0 }, ptr %a353 + store { ptr, i64, i64 } { ptr @.str.7133, i64 2, i64 0 }, ptr %a353 %t354 = call i32 @finch_str_starts(ptr %a351, ptr %a353) %t355 = icmp ne i32 %t354, 0 - br i1 %t355, label %then10536, label %else10537 -then10536: + br i1 %t355, label %then10941, label %else10942 +then10941: %t356 = call { ptr, i64, i64 } @finch.docs.arrayMethods() call void @finch.lsp.methodItems(ptr %a7, { ptr, i64, i64 } %t356) store { ptr, i64, i64 } %t356, ptr %a357 call void @finch.drop.arr_S_docs_Doc(ptr %a357) - br label %endif10538 -else10537: + br label %endif10943 +else10942: %t358 = load { ptr, i64, i64 }, ptr %a302 store { ptr, i64, i64 } %t358, ptr %a359 - store { ptr, i64, i64 } { ptr @.str.6926, i64 3, i64 0 }, ptr %a360 + store { ptr, i64, i64 } { ptr @.str.7134, i64 3, i64 0 }, ptr %a360 %t361 = call i32 @finch_str_eq(ptr %a359, ptr %a360) %t362 = icmp ne i32 %t361, 0 - br i1 %t362, label %then10539, label %else10540 -then10539: + br i1 %t362, label %then10944, label %else10945 +then10944: %t363 = call { ptr, i64, i64 } @finch.docs.strMethods() call void @finch.lsp.methodItems(ptr %a7, { ptr, i64, i64 } %t363) store { ptr, i64, i64 } %t363, ptr %a364 call void @finch.drop.arr_S_docs_Doc(ptr %a364) - br label %endif10541 -else10540: + br label %endif10946 +else10945: %t365 = load { ptr, i64, i64 }, ptr %a302 store { ptr, i64, i64 } %t365, ptr %a366 - store { ptr, i64, i64 } { ptr @.str.6928, i64 4, i64 0 }, ptr %a368 + store { ptr, i64, i64 } { ptr @.str.7136, i64 4, i64 0 }, ptr %a368 %t369 = call i32 @finch_str_starts(ptr %a366, ptr %a368) %t370 = icmp ne i32 %t369, 0 - br i1 %t370, label %then10542, label %else10543 -then10542: + br i1 %t370, label %then10947, label %else10948 +then10947: %t371 = call { ptr, i64, i64 } @finch.docs.mapMethods() call void @finch.lsp.methodItems(ptr %a7, { ptr, i64, i64 } %t371) store { ptr, i64, i64 } %t371, ptr %a372 call void @finch.drop.arr_S_docs_Doc(ptr %a372) - br label %endif10544 -else10543: + br label %endif10949 +else10948: %t373 = load { ptr, i64, i64 }, ptr %a302 store { ptr, i64, i64 } %t373, ptr %a374 call void @finch_str_copy(ptr %a375, ptr %a374) @@ -107187,14 +111212,14 @@ else10543: store { ptr, i64, i64 } %t376, ptr %a377 %t378 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 3 store i64 0, ptr %a379 - br label %each.cond10545 -each.cond10545: + br label %each.cond10950 +each.cond10950: %t380 = getelementptr inbounds { ptr, i64, i64 }, ptr %t378, i32 0, i32 1 %t381 = load i64, ptr %t380 %t382 = load i64, ptr %a379 %t383 = icmp slt i64 %t382, %t381 - br i1 %t383, label %each.body10546, label %each.end10548 -each.body10546: + br i1 %t383, label %each.body10951, label %each.end10953 +each.body10951: %t384 = load ptr, ptr %t378 %t385 = getelementptr inbounds %S.lsp.StructRec, ptr %t384, i64 %t382 %t386 = load %S.lsp.StructRec, ptr %t385 @@ -107206,28 +111231,28 @@ each.body10546: store { ptr, i64, i64 } %t390, ptr %a392 %t393 = call i32 @finch_str_eq(ptr %a391, ptr %a392) %t394 = icmp ne i32 %t393, 0 - br i1 %t394, label %then10549, label %endif10551 -then10549: + br i1 %t394, label %then10954, label %endif10956 +then10954: %t395 = getelementptr inbounds %S.lsp.StructRec, ptr %a387, i32 0, i32 5 %t396 = getelementptr inbounds { ptr, i64, i64 }, ptr %t395, i32 0, i32 1 %t397 = load i64, ptr %t396 store i64 0, ptr %a398 - br label %for.cond10552 -for.cond10552: + br label %for.cond10957 +for.cond10957: %t399 = load i64, ptr %a398 %t400 = icmp slt i64 %t399, %t397 - br i1 %t400, label %for.body10553, label %for.end10555 -for.body10553: + br i1 %t400, label %for.body10958, label %for.end10960 +for.body10958: %t401 = getelementptr inbounds %S.lsp.StructRec, ptr %a387, i32 0, i32 5 %t402 = load i64, ptr %a398 %t403 = load { ptr, i64, i64 }, ptr %t401 %t404 = extractvalue { ptr, i64, i64 } %t403, 1 %t405 = icmp uge i64 %t402, %t404 - br i1 %t405, label %range10556, label %inrange10557 -range10556: - call void @finch_panic_index(ptr @.str.6929, i64 587, i64 %t402, i64 %t404) + br i1 %t405, label %range10961, label %inrange10962 +range10961: + call void @finch_panic_index(ptr @.str.7137, i64 587, i64 %t402, i64 %t404) unreachable -inrange10557: +inrange10962: %t406 = extractvalue { ptr, i64, i64 } %t403, 0 %t407 = getelementptr inbounds { ptr, i64, i64 }, ptr %t406, i64 %t402 %t408 = load { ptr, i64, i64 }, ptr %t407 @@ -107236,44 +111261,44 @@ inrange10557: %t411 = load { ptr, i64, i64 }, ptr %t409 %t412 = extractvalue { ptr, i64, i64 } %t411, 1 %t413 = icmp uge i64 %t410, %t412 - br i1 %t413, label %range10558, label %inrange10559 -range10558: - call void @finch_panic_index(ptr @.str.6930, i64 587, i64 %t410, i64 %t412) + br i1 %t413, label %range10963, label %inrange10964 +range10963: + call void @finch_panic_index(ptr @.str.7138, i64 587, i64 %t410, i64 %t412) unreachable -inrange10559: +inrange10964: %t414 = extractvalue { ptr, i64, i64 } %t411, 0 %t415 = getelementptr inbounds { ptr, i64, i64 }, ptr %t414, i64 %t410 %t416 = load { ptr, i64, i64 }, ptr %t415 - %t417 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t408, i64 5, { ptr, i64, i64 } %t416, { ptr, i64, i64 } { ptr @.str.6931, i64 0, i64 0 }) + %t417 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t408, i64 5, { ptr, i64, i64 } %t416, { ptr, i64, i64 } { ptr @.str.7139, i64 0, i64 0 }) call void @finch.json.Json.push(ptr %a7, %S.json.Json %t417) store %S.json.Json %t417, ptr %a418 call void @finch.drop.S_json_Json(ptr %a418) - br label %for.step10554 -for.step10554: + br label %for.step10959 +for.step10959: %t419 = load i64, ptr %a398 %t420 = add i64 %t419, 1 store i64 %t420, ptr %a398 - br label %for.cond10552 -for.end10555: - br label %endif10551 -endif10551: - br label %each.step10547 -each.step10547: + br label %for.cond10957 +for.end10960: + br label %endif10956 +endif10956: + br label %each.step10952 +each.step10952: %t421 = load i64, ptr %a379 %t422 = add i64 %t421, 1 store i64 %t422, ptr %a379 - br label %each.cond10545 -each.end10548: + br label %each.cond10950 +each.end10953: %t423 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 2 store i64 0, ptr %a424 - br label %each.cond10560 -each.cond10560: + br label %each.cond10965 +each.cond10965: %t425 = getelementptr inbounds { ptr, i64, i64 }, ptr %t423, i32 0, i32 1 %t426 = load i64, ptr %t425 %t427 = load i64, ptr %a424 %t428 = icmp slt i64 %t427, %t426 - br i1 %t428, label %each.body10561, label %each.end10563 -each.body10561: + br i1 %t428, label %each.body10966, label %each.end10968 +each.body10966: %t429 = load ptr, ptr %t423 %t430 = getelementptr inbounds %S.lsp.FnRec, ptr %t429, i64 %t427 %t431 = load %S.lsp.FnRec, ptr %t430 @@ -107285,32 +111310,32 @@ each.body10561: store { ptr, i64, i64 } %t435, ptr %a437 %t438 = call i32 @finch_str_eq(ptr %a436, ptr %a437) %t439 = icmp ne i32 %t438, 0 - br i1 %t439, label %then10564, label %endif10566 -then10564: + br i1 %t439, label %then10969, label %endif10971 +then10969: %t440 = getelementptr inbounds %S.lsp.FnRec, ptr %a432, i32 0, i32 1 %t441 = load { ptr, i64, i64 }, ptr %t440 %t442 = getelementptr inbounds %S.lsp.FnRec, ptr %a432, i32 0, i32 7 %t443 = load { ptr, i64, i64 }, ptr %t442 - %t444 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t441, i64 2, { ptr, i64, i64 } %t443, { ptr, i64, i64 } { ptr @.str.6932, i64 0, i64 0 }) + %t444 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t441, i64 2, { ptr, i64, i64 } %t443, { ptr, i64, i64 } { ptr @.str.7140, i64 0, i64 0 }) call void @finch.json.Json.push(ptr %a7, %S.json.Json %t444) store %S.json.Json %t444, ptr %a445 call void @finch.drop.S_json_Json(ptr %a445) - br label %endif10566 -endif10566: - br label %each.step10562 -each.step10562: + br label %endif10971 +endif10971: + br label %each.step10967 +each.step10967: %t446 = load i64, ptr %a424 %t447 = add i64 %t446, 1 store i64 %t447, ptr %a424 - br label %each.cond10560 -each.end10563: + br label %each.cond10965 +each.end10968: call void @finch_str_drop(ptr %a377) - br label %endif10544 -endif10544: - br label %endif10541 -endif10541: - br label %endif10538 -endif10538: + br label %endif10949 +endif10949: + br label %endif10946 +endif10946: + br label %endif10943 +endif10943: %t448 = load %S.json.Json, ptr %a7 %t449 = call %S.json.Json @finch.lsp.completionList(%S.json.Json %t448) call void @finch_str_drop(ptr %a302) @@ -107319,18 +111344,18 @@ endif10538: call void @finch_str_drop(ptr %a11) call void @finch.drop.S_json_Json(ptr %a7) ret %S.json.Json %t449 -endif10442: +endif10847: store %S.lsp.Names zeroinitializer, ptr %a450 %t451 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 1 store i64 0, ptr %a452 - br label %each.cond10567 -each.cond10567: + br label %each.cond10972 +each.cond10972: %t453 = getelementptr inbounds { ptr, i64, i64 }, ptr %t451, i32 0, i32 1 %t454 = load i64, ptr %t453 %t455 = load i64, ptr %a452 %t456 = icmp slt i64 %t455, %t454 - br i1 %t456, label %each.body10568, label %each.end10570 -each.body10568: + br i1 %t456, label %each.body10973, label %each.end10975 +each.body10973: %t457 = load ptr, ptr %t451 %t458 = getelementptr inbounds %S.lsp.VarRec, ptr %t457, i64 %t455 %t459 = load %S.lsp.VarRec, ptr %t458 @@ -107339,24 +111364,24 @@ each.body10568: %t462 = load i64, ptr %t461 %t463 = load i64, ptr %a4 %t464 = icmp sle i64 %t462, %t463 - br label %logic.from10571 -logic.from10571: - br i1 %t464, label %logic.rhs10572, label %logic.end10573 -logic.rhs10572: + br label %logic.from10976 +logic.from10976: + br i1 %t464, label %logic.rhs10977, label %logic.end10978 +logic.rhs10977: %t465 = load i64, ptr %a4 %t466 = getelementptr inbounds %S.lsp.VarRec, ptr %a460, i32 0, i32 7 %t467 = load i64, ptr %t466 %t468 = add i64 %t467, 1 %t469 = icmp sle i64 %t465, %t468 - br label %logic.rend10574 -logic.rend10574: - br label %logic.end10573 -logic.end10573: - %t470 = phi i1 [ false, %logic.from10571 ], [ %t469, %logic.rend10574 ] - br label %logic.from10575 -logic.from10575: - br i1 %t470, label %logic.rhs10576, label %logic.end10577 -logic.rhs10576: + br label %logic.rend10979 +logic.rend10979: + br label %logic.end10978 +logic.end10978: + %t470 = phi i1 [ false, %logic.from10976 ], [ %t469, %logic.rend10979 ] + br label %logic.from10980 +logic.from10980: + br i1 %t470, label %logic.rhs10981, label %logic.end10982 +logic.rhs10981: %t471 = getelementptr inbounds %S.lsp.VarRec, ptr %a460, i32 0, i32 5 %t472 = load { ptr, i64, i64 }, ptr %t471 %t473 = load { ptr, i64, i64 }, ptr %a3 @@ -107364,52 +111389,52 @@ logic.rhs10576: store { ptr, i64, i64 } %t473, ptr %a475 %t476 = call i32 @finch_str_eq(ptr %a474, ptr %a475) %t477 = icmp ne i32 %t476, 0 - br label %logic.rend10578 -logic.rend10578: - br label %logic.end10577 -logic.end10577: - %t478 = phi i1 [ false, %logic.from10575 ], [ %t477, %logic.rend10578 ] - br label %logic.from10579 -logic.from10579: - br i1 %t478, label %logic.rhs10580, label %logic.end10581 -logic.rhs10580: + br label %logic.rend10983 +logic.rend10983: + br label %logic.end10982 +logic.end10982: + %t478 = phi i1 [ false, %logic.from10980 ], [ %t477, %logic.rend10983 ] + br label %logic.from10984 +logic.from10984: + br i1 %t478, label %logic.rhs10985, label %logic.end10986 +logic.rhs10985: %t479 = getelementptr inbounds %S.lsp.VarRec, ptr %a460, i32 0, i32 0 %t480 = load { ptr, i64, i64 }, ptr %t479 %t481 = call i1 @finch.lsp.Names.add(ptr %a450, { ptr, i64, i64 } %t480) - br label %logic.rend10582 -logic.rend10582: - br label %logic.end10581 -logic.end10581: - %t482 = phi i1 [ false, %logic.from10579 ], [ %t481, %logic.rend10582 ] - br i1 %t482, label %then10583, label %endif10585 -then10583: + br label %logic.rend10987 +logic.rend10987: + br label %logic.end10986 +logic.end10986: + %t482 = phi i1 [ false, %logic.from10984 ], [ %t481, %logic.rend10987 ] + br i1 %t482, label %then10988, label %endif10990 +then10988: %t483 = getelementptr inbounds %S.lsp.VarRec, ptr %a460, i32 0, i32 0 %t484 = load { ptr, i64, i64 }, ptr %t483 %t485 = getelementptr inbounds %S.lsp.VarRec, ptr %a460, i32 0, i32 1 %t486 = load { ptr, i64, i64 }, ptr %t485 - %t487 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t484, i64 6, { ptr, i64, i64 } %t486, { ptr, i64, i64 } { ptr @.str.6933, i64 0, i64 0 }) + %t487 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t484, i64 6, { ptr, i64, i64 } %t486, { ptr, i64, i64 } { ptr @.str.7141, i64 0, i64 0 }) call void @finch.json.Json.push(ptr %a7, %S.json.Json %t487) store %S.json.Json %t487, ptr %a488 call void @finch.drop.S_json_Json(ptr %a488) - br label %endif10585 -endif10585: - br label %each.step10569 -each.step10569: + br label %endif10990 +endif10990: + br label %each.step10974 +each.step10974: %t489 = load i64, ptr %a452 %t490 = add i64 %t489, 1 store i64 %t490, ptr %a452 - br label %each.cond10567 -each.end10570: + br label %each.cond10972 +each.end10975: %t491 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 2 store i64 0, ptr %a492 - br label %each.cond10586 -each.cond10586: + br label %each.cond10991 +each.cond10991: %t493 = getelementptr inbounds { ptr, i64, i64 }, ptr %t491, i32 0, i32 1 %t494 = load i64, ptr %t493 %t495 = load i64, ptr %a492 %t496 = icmp slt i64 %t495, %t494 - br i1 %t496, label %each.body10587, label %each.end10589 -each.body10587: + br i1 %t496, label %each.body10992, label %each.end10994 +each.body10992: %t497 = load ptr, ptr %t491 %t498 = getelementptr inbounds %S.lsp.FnRec, ptr %t497, i64 %t495 %t499 = load %S.lsp.FnRec, ptr %t498 @@ -107418,62 +111443,62 @@ each.body10587: %t502 = getelementptr inbounds { ptr, i64, i64 }, ptr %t501, i32 0, i32 1 %t503 = load i64, ptr %t502 %t504 = icmp eq i64 %t503, 0 - br label %logic.from10590 -logic.from10590: - br i1 %t504, label %logic.rhs10591, label %logic.end10592 -logic.rhs10591: + br label %logic.from10995 +logic.from10995: + br i1 %t504, label %logic.rhs10996, label %logic.end10997 +logic.rhs10996: %t505 = getelementptr inbounds %S.lsp.FnRec, ptr %a500, i32 0, i32 0 %t506 = load { ptr, i64, i64 }, ptr %t505 store { ptr, i64, i64 } %t506, ptr %a507 - store { ptr, i64, i64 } { ptr @.str.6934, i64 0, i64 0 }, ptr %a508 + store { ptr, i64, i64 } { ptr @.str.7142, i64 0, i64 0 }, ptr %a508 %t509 = call i32 @finch_str_eq(ptr %a507, ptr %a508) %t510 = icmp ne i32 %t509, 0 - br label %logic.rend10593 -logic.rend10593: - br label %logic.end10592 -logic.end10592: - %t511 = phi i1 [ false, %logic.from10590 ], [ %t510, %logic.rend10593 ] - br label %logic.from10594 -logic.from10594: - br i1 %t511, label %logic.rhs10595, label %logic.end10596 -logic.rhs10595: + br label %logic.rend10998 +logic.rend10998: + br label %logic.end10997 +logic.end10997: + %t511 = phi i1 [ false, %logic.from10995 ], [ %t510, %logic.rend10998 ] + br label %logic.from10999 +logic.from10999: + br i1 %t511, label %logic.rhs11000, label %logic.end11001 +logic.rhs11000: %t512 = getelementptr inbounds %S.lsp.FnRec, ptr %a500, i32 0, i32 1 %t513 = load { ptr, i64, i64 }, ptr %t512 %t514 = call i1 @finch.lsp.Names.add(ptr %a450, { ptr, i64, i64 } %t513) - br label %logic.rend10597 -logic.rend10597: - br label %logic.end10596 -logic.end10596: - %t515 = phi i1 [ false, %logic.from10594 ], [ %t514, %logic.rend10597 ] - br i1 %t515, label %then10598, label %endif10600 -then10598: + br label %logic.rend11002 +logic.rend11002: + br label %logic.end11001 +logic.end11001: + %t515 = phi i1 [ false, %logic.from10999 ], [ %t514, %logic.rend11002 ] + br i1 %t515, label %then11003, label %endif11005 +then11003: %t516 = getelementptr inbounds %S.lsp.FnRec, ptr %a500, i32 0, i32 1 %t517 = load { ptr, i64, i64 }, ptr %t516 %t518 = getelementptr inbounds %S.lsp.FnRec, ptr %a500, i32 0, i32 7 %t519 = load { ptr, i64, i64 }, ptr %t518 - %t520 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t517, i64 3, { ptr, i64, i64 } %t519, { ptr, i64, i64 } { ptr @.str.6935, i64 0, i64 0 }) + %t520 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t517, i64 3, { ptr, i64, i64 } %t519, { ptr, i64, i64 } { ptr @.str.7143, i64 0, i64 0 }) call void @finch.json.Json.push(ptr %a7, %S.json.Json %t520) store %S.json.Json %t520, ptr %a521 call void @finch.drop.S_json_Json(ptr %a521) - br label %endif10600 -endif10600: - br label %each.step10588 -each.step10588: + br label %endif11005 +endif11005: + br label %each.step10993 +each.step10993: %t522 = load i64, ptr %a492 %t523 = add i64 %t522, 1 store i64 %t523, ptr %a492 - br label %each.cond10586 -each.end10589: + br label %each.cond10991 +each.end10994: %t524 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 3 store i64 0, ptr %a525 - br label %each.cond10601 -each.cond10601: + br label %each.cond11006 +each.cond11006: %t526 = getelementptr inbounds { ptr, i64, i64 }, ptr %t524, i32 0, i32 1 %t527 = load i64, ptr %t526 %t528 = load i64, ptr %a525 %t529 = icmp slt i64 %t528, %t527 - br i1 %t529, label %each.body10602, label %each.end10604 -each.body10602: + br i1 %t529, label %each.body11007, label %each.end11009 +each.body11007: %t530 = load ptr, ptr %t524 %t531 = getelementptr inbounds %S.lsp.StructRec, ptr %t530, i64 %t528 %t532 = load %S.lsp.StructRec, ptr %t531 @@ -107481,56 +111506,56 @@ each.body10602: %t534 = getelementptr inbounds %S.lsp.StructRec, ptr %a533, i32 0, i32 0 %t535 = load { ptr, i64, i64 }, ptr %t534 store { ptr, i64, i64 } %t535, ptr %a536 - store { ptr, i64, i64 } { ptr @.str.6936, i64 0, i64 0 }, ptr %a537 + store { ptr, i64, i64 } { ptr @.str.7144, i64 0, i64 0 }, ptr %a537 %t538 = call i32 @finch_str_eq(ptr %a536, ptr %a537) %t539 = icmp ne i32 %t538, 0 - br label %logic.from10605 -logic.from10605: - br i1 %t539, label %logic.rhs10606, label %logic.end10607 -logic.rhs10606: + br label %logic.from11010 +logic.from11010: + br i1 %t539, label %logic.rhs11011, label %logic.end11012 +logic.rhs11011: %t540 = getelementptr inbounds %S.lsp.StructRec, ptr %a533, i32 0, i32 1 %t541 = load { ptr, i64, i64 }, ptr %t540 %t542 = call i1 @finch.lsp.Names.add(ptr %a450, { ptr, i64, i64 } %t541) - br label %logic.rend10608 -logic.rend10608: - br label %logic.end10607 -logic.end10607: - %t543 = phi i1 [ false, %logic.from10605 ], [ %t542, %logic.rend10608 ] - br i1 %t543, label %then10609, label %endif10611 -then10609: + br label %logic.rend11013 +logic.rend11013: + br label %logic.end11012 +logic.end11012: + %t543 = phi i1 [ false, %logic.from11010 ], [ %t542, %logic.rend11013 ] + br i1 %t543, label %then11014, label %endif11016 +then11014: %t544 = getelementptr inbounds %S.lsp.StructRec, ptr %a533, i32 0, i32 1 %t545 = load { ptr, i64, i64 }, ptr %t544 %t546 = getelementptr inbounds %S.lsp.StructRec, ptr %a533, i32 0, i32 1 %t547 = load { ptr, i64, i64 }, ptr %t546 - store { ptr, i64, i64 } { ptr @.str.6937, i64 7, i64 0 }, ptr %a549 + store { ptr, i64, i64 } { ptr @.str.7145, i64 7, i64 0 }, ptr %a549 store { ptr, i64, i64 } %t547, ptr %a550 call void @finch_str_concat(ptr %a548, ptr %a549, ptr %a550) %t551 = load { ptr, i64, i64 }, ptr %a548 - %t552 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t545, i64 22, { ptr, i64, i64 } %t551, { ptr, i64, i64 } { ptr @.str.6938, i64 0, i64 0 }) + %t552 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t545, i64 22, { ptr, i64, i64 } %t551, { ptr, i64, i64 } { ptr @.str.7146, i64 0, i64 0 }) store { ptr, i64, i64 } %t551, ptr %a553 call void @finch_str_drop(ptr %a553) call void @finch.json.Json.push(ptr %a7, %S.json.Json %t552) store %S.json.Json %t552, ptr %a554 call void @finch.drop.S_json_Json(ptr %a554) - br label %endif10611 -endif10611: - br label %each.step10603 -each.step10603: + br label %endif11016 +endif11016: + br label %each.step11008 +each.step11008: %t555 = load i64, ptr %a525 %t556 = add i64 %t555, 1 store i64 %t556, ptr %a525 - br label %each.cond10601 -each.end10604: + br label %each.cond11006 +each.end11009: %t557 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 4 store i64 0, ptr %a558 - br label %each.cond10612 -each.cond10612: + br label %each.cond11017 +each.cond11017: %t559 = getelementptr inbounds { ptr, i64, i64 }, ptr %t557, i32 0, i32 1 %t560 = load i64, ptr %t559 %t561 = load i64, ptr %a558 %t562 = icmp slt i64 %t561, %t560 - br i1 %t562, label %each.body10613, label %each.end10615 -each.body10613: + br i1 %t562, label %each.body11018, label %each.end11020 +each.body11018: %t563 = load ptr, ptr %t557 %t564 = getelementptr inbounds %S.lsp.EnumRec, ptr %t563, i64 %t561 %t565 = load %S.lsp.EnumRec, ptr %t564 @@ -107538,89 +111563,89 @@ each.body10613: %t567 = getelementptr inbounds %S.lsp.EnumRec, ptr %a566, i32 0, i32 0 %t568 = load { ptr, i64, i64 }, ptr %t567 store { ptr, i64, i64 } %t568, ptr %a569 - store { ptr, i64, i64 } { ptr @.str.6939, i64 0, i64 0 }, ptr %a570 + store { ptr, i64, i64 } { ptr @.str.7147, i64 0, i64 0 }, ptr %a570 %t571 = call i32 @finch_str_eq(ptr %a569, ptr %a570) %t572 = icmp ne i32 %t571, 0 - br label %logic.from10616 -logic.from10616: - br i1 %t572, label %logic.rhs10617, label %logic.end10618 -logic.rhs10617: + br label %logic.from11021 +logic.from11021: + br i1 %t572, label %logic.rhs11022, label %logic.end11023 +logic.rhs11022: %t573 = getelementptr inbounds %S.lsp.EnumRec, ptr %a566, i32 0, i32 1 %t574 = load { ptr, i64, i64 }, ptr %t573 %t575 = call i1 @finch.lsp.Names.add(ptr %a450, { ptr, i64, i64 } %t574) - br label %logic.rend10619 -logic.rend10619: - br label %logic.end10618 -logic.end10618: - %t576 = phi i1 [ false, %logic.from10616 ], [ %t575, %logic.rend10619 ] - br i1 %t576, label %then10620, label %endif10622 -then10620: + br label %logic.rend11024 +logic.rend11024: + br label %logic.end11023 +logic.end11023: + %t576 = phi i1 [ false, %logic.from11021 ], [ %t575, %logic.rend11024 ] + br i1 %t576, label %then11025, label %endif11027 +then11025: %t577 = getelementptr inbounds %S.lsp.EnumRec, ptr %a566, i32 0, i32 1 %t578 = load { ptr, i64, i64 }, ptr %t577 %t579 = getelementptr inbounds %S.lsp.EnumRec, ptr %a566, i32 0, i32 1 %t580 = load { ptr, i64, i64 }, ptr %t579 - store { ptr, i64, i64 } { ptr @.str.6940, i64 5, i64 0 }, ptr %a582 + store { ptr, i64, i64 } { ptr @.str.7148, i64 5, i64 0 }, ptr %a582 store { ptr, i64, i64 } %t580, ptr %a583 call void @finch_str_concat(ptr %a581, ptr %a582, ptr %a583) %t584 = load { ptr, i64, i64 }, ptr %a581 - %t585 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t578, i64 13, { ptr, i64, i64 } %t584, { ptr, i64, i64 } { ptr @.str.6941, i64 0, i64 0 }) + %t585 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t578, i64 13, { ptr, i64, i64 } %t584, { ptr, i64, i64 } { ptr @.str.7149, i64 0, i64 0 }) store { ptr, i64, i64 } %t584, ptr %a586 call void @finch_str_drop(ptr %a586) call void @finch.json.Json.push(ptr %a7, %S.json.Json %t585) store %S.json.Json %t585, ptr %a587 call void @finch.drop.S_json_Json(ptr %a587) - br label %endif10622 -endif10622: - br label %each.step10614 -each.step10614: + br label %endif11027 +endif11027: + br label %each.step11019 +each.step11019: %t588 = load i64, ptr %a558 %t589 = add i64 %t588, 1 store i64 %t589, ptr %a558 - br label %each.cond10612 -each.end10615: + br label %each.cond11017 +each.end11020: %t590 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 5 store i64 0, ptr %a591 - br label %each.cond10623 -each.cond10623: + br label %each.cond11028 +each.cond11028: %t592 = getelementptr inbounds { ptr, i64, i64 }, ptr %t590, i32 0, i32 1 %t593 = load i64, ptr %t592 %t594 = load i64, ptr %a591 %t595 = icmp slt i64 %t594, %t593 - br i1 %t595, label %each.body10624, label %each.end10626 -each.body10624: + br i1 %t595, label %each.body11029, label %each.end11031 +each.body11029: %t596 = load ptr, ptr %t590 %t597 = getelementptr inbounds { ptr, i64, i64 }, ptr %t596, i64 %t594 %t598 = load { ptr, i64, i64 }, ptr %t597 store { ptr, i64, i64 } %t598, ptr %a599 %t600 = load { ptr, i64, i64 }, ptr %a599 %t601 = call i1 @finch.lsp.Names.add(ptr %a450, { ptr, i64, i64 } %t600) - br i1 %t601, label %then10627, label %endif10629 -then10627: + br i1 %t601, label %then11032, label %endif11034 +then11032: %t602 = load { ptr, i64, i64 }, ptr %a599 - %t603 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t602, i64 9, { ptr, i64, i64 } { ptr @.str.6942, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.6943, i64 0, i64 0 }) + %t603 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t602, i64 9, { ptr, i64, i64 } { ptr @.str.7150, i64 6, i64 0 }, { ptr, i64, i64 } { ptr @.str.7151, i64 0, i64 0 }) call void @finch.json.Json.push(ptr %a7, %S.json.Json %t603) store %S.json.Json %t603, ptr %a604 call void @finch.drop.S_json_Json(ptr %a604) - br label %endif10629 -endif10629: - br label %each.step10625 -each.step10625: + br label %endif11034 +endif11034: + br label %each.step11030 +each.step11030: %t605 = load i64, ptr %a591 %t606 = add i64 %t605, 1 store i64 %t606, ptr %a591 - br label %each.cond10623 -each.end10626: + br label %each.cond11028 +each.end11031: %t607 = call { ptr, i64, i64 } @finch.docs.builtins() store { ptr, i64, i64 } %t607, ptr %a608 store i64 0, ptr %a609 - br label %each.cond10630 -each.cond10630: + br label %each.cond11035 +each.cond11035: %t610 = getelementptr inbounds { ptr, i64, i64 }, ptr %a608, i32 0, i32 1 %t611 = load i64, ptr %t610 %t612 = load i64, ptr %a609 %t613 = icmp slt i64 %t612, %t611 - br i1 %t613, label %each.body10631, label %each.end10633 -each.body10631: + br i1 %t613, label %each.body11036, label %each.end11038 +each.body11036: %t614 = load ptr, ptr %a608 %t615 = getelementptr inbounds %S.docs.Doc, ptr %t614, i64 %t612 %t616 = load %S.docs.Doc, ptr %t615 @@ -107628,8 +111653,8 @@ each.body10631: %t618 = getelementptr inbounds %S.docs.Doc, ptr %a617, i32 0, i32 0 %t619 = load { ptr, i64, i64 }, ptr %t618 %t620 = call i1 @finch.lsp.Names.add(ptr %a450, { ptr, i64, i64 } %t619) - br i1 %t620, label %then10634, label %endif10636 -then10634: + br i1 %t620, label %then11039, label %endif11041 +then11039: %t621 = getelementptr inbounds %S.docs.Doc, ptr %a617, i32 0, i32 0 %t622 = load { ptr, i64, i64 }, ptr %t621 %t623 = getelementptr inbounds %S.docs.Doc, ptr %a617, i32 0, i32 1 @@ -107640,83 +111665,83 @@ then10634: call void @finch.json.Json.push(ptr %a7, %S.json.Json %t627) store %S.json.Json %t627, ptr %a628 call void @finch.drop.S_json_Json(ptr %a628) - br label %endif10636 -endif10636: - br label %each.step10632 -each.step10632: + br label %endif11041 +endif11041: + br label %each.step11037 +each.step11037: %t629 = load i64, ptr %a609 %t630 = add i64 %t629, 1 store i64 %t630, ptr %a609 - br label %each.cond10630 -each.end10633: + br label %each.cond11035 +each.end11038: call void @finch.drop.arr_S_docs_Doc(ptr %a608) %t631 = call { ptr, i64, i64 } @finch.docs.keywords() store { ptr, i64, i64 } %t631, ptr %a632 store i64 0, ptr %a633 - br label %each.cond10637 -each.cond10637: + br label %each.cond11042 +each.cond11042: %t634 = getelementptr inbounds { ptr, i64, i64 }, ptr %a632, i32 0, i32 1 %t635 = load i64, ptr %t634 %t636 = load i64, ptr %a633 %t637 = icmp slt i64 %t636, %t635 - br i1 %t637, label %each.body10638, label %each.end10640 -each.body10638: + br i1 %t637, label %each.body11043, label %each.end11045 +each.body11043: %t638 = load ptr, ptr %a632 %t639 = getelementptr inbounds { ptr, i64, i64 }, ptr %t638, i64 %t636 %t640 = load { ptr, i64, i64 }, ptr %t639 store { ptr, i64, i64 } %t640, ptr %a641 %t642 = load { ptr, i64, i64 }, ptr %a641 %t643 = call i1 @finch.lsp.Names.add(ptr %a450, { ptr, i64, i64 } %t642) - br i1 %t643, label %then10641, label %endif10643 -then10641: + br i1 %t643, label %then11046, label %endif11048 +then11046: %t644 = load { ptr, i64, i64 }, ptr %a641 - %t645 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t644, i64 14, { ptr, i64, i64 } { ptr @.str.6944, i64 0, i64 0 }, { ptr, i64, i64 } { ptr @.str.6945, i64 0, i64 0 }) + %t645 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t644, i64 14, { ptr, i64, i64 } { ptr @.str.7152, i64 0, i64 0 }, { ptr, i64, i64 } { ptr @.str.7153, i64 0, i64 0 }) call void @finch.json.Json.push(ptr %a7, %S.json.Json %t645) store %S.json.Json %t645, ptr %a646 call void @finch.drop.S_json_Json(ptr %a646) - br label %endif10643 -endif10643: - br label %each.step10639 -each.step10639: + br label %endif11048 +endif11048: + br label %each.step11044 +each.step11044: %t647 = load i64, ptr %a633 %t648 = add i64 %t647, 1 store i64 %t648, ptr %a633 - br label %each.cond10637 -each.end10640: + br label %each.cond11042 +each.end11045: call void @finch.drop.arr_str(ptr %a632) %t649 = call { ptr, i64, i64 } @finch.docs.typeNames() store { ptr, i64, i64 } %t649, ptr %a650 store i64 0, ptr %a651 - br label %each.cond10644 -each.cond10644: + br label %each.cond11049 +each.cond11049: %t652 = getelementptr inbounds { ptr, i64, i64 }, ptr %a650, i32 0, i32 1 %t653 = load i64, ptr %t652 %t654 = load i64, ptr %a651 %t655 = icmp slt i64 %t654, %t653 - br i1 %t655, label %each.body10645, label %each.end10647 -each.body10645: + br i1 %t655, label %each.body11050, label %each.end11052 +each.body11050: %t656 = load ptr, ptr %a650 %t657 = getelementptr inbounds { ptr, i64, i64 }, ptr %t656, i64 %t654 %t658 = load { ptr, i64, i64 }, ptr %t657 store { ptr, i64, i64 } %t658, ptr %a659 %t660 = load { ptr, i64, i64 }, ptr %a659 %t661 = call i1 @finch.lsp.Names.add(ptr %a450, { ptr, i64, i64 } %t660) - br i1 %t661, label %then10648, label %endif10650 -then10648: + br i1 %t661, label %then11053, label %endif11055 +then11053: %t662 = load { ptr, i64, i64 }, ptr %a659 - %t663 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t662, i64 25, { ptr, i64, i64 } { ptr @.str.6946, i64 0, i64 0 }, { ptr, i64, i64 } { ptr @.str.6947, i64 0, i64 0 }) + %t663 = call %S.json.Json @finch.lsp.item({ ptr, i64, i64 } %t662, i64 25, { ptr, i64, i64 } { ptr @.str.7154, i64 0, i64 0 }, { ptr, i64, i64 } { ptr @.str.7155, i64 0, i64 0 }) call void @finch.json.Json.push(ptr %a7, %S.json.Json %t663) store %S.json.Json %t663, ptr %a664 call void @finch.drop.S_json_Json(ptr %a664) - br label %endif10650 -endif10650: - br label %each.step10646 -each.step10646: + br label %endif11055 +endif11055: + br label %each.step11051 +each.step11051: %t665 = load i64, ptr %a651 %t666 = add i64 %t665, 1 store i64 %t666, ptr %a651 - br label %each.cond10644 -each.end10647: + br label %each.cond11049 +each.end11052: call void @finch.drop.arr_str(ptr %a650) %t667 = load %S.json.Json, ptr %a7 %t668 = call %S.json.Json @finch.lsp.completionList(%S.json.Json %t667) @@ -107744,33 +111769,33 @@ entry: %t6 = load i64, ptr %t3 %t7 = load ptr, ptr %t2 store i64 0, ptr %a8 - br label %find.cond10651 -find.cond10651: + br label %find.cond11056 +find.cond11056: %t9 = load i64, ptr %a8 %t10 = icmp slt i64 %t9, %t6 - br i1 %t10, label %find.body10652, label %find.end10655 -find.body10652: + br i1 %t10, label %find.body11057, label %find.end11060 +find.body11057: %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %t7, i64 %t9 %t12 = load { ptr, i64, i64 }, ptr %t11 store { ptr, i64, i64 } %t12, ptr %a13 store { ptr, i64, i64 } %t4, ptr %a14 %t15 = call i32 @finch_str_eq(ptr %a13, ptr %a14) %t16 = icmp ne i32 %t15, 0 - br i1 %t16, label %find.hit10653, label %find.next10654 -find.hit10653: + br i1 %t16, label %find.hit11058, label %find.next11059 +find.hit11058: store i64 %t9, ptr %a5 - br label %find.end10655 -find.next10654: + br label %find.end11060 +find.next11059: %t17 = add i64 %t9, 1 store i64 %t17, ptr %a8 - br label %find.cond10651 -find.end10655: + br label %find.cond11056 +find.end11060: %t18 = load i64, ptr %a5 %t19 = icmp sge i64 %t18, 0 - br i1 %t19, label %then10656, label %endif10658 -then10656: + br i1 %t19, label %then11061, label %endif11063 +then11061: ret i1 false -endif10658: +endif11063: %t20 = getelementptr inbounds %S.lsp.Names, ptr %self, i32 0, i32 0 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t20, i32 0, i32 1 %t22 = load { ptr, i64, i64 }, ptr %a1 @@ -107796,11 +111821,11 @@ entry: %t2 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t2, ptr %a3 %t4 = call %S.json.Json @finch.json.new_bool(i1 false) - call void @finch.json.Json.set(ptr %a3, { ptr, i64, i64 } { ptr @.str.6948, i64 12, i64 0 }, %S.json.Json %t4) + call void @finch.json.Json.set(ptr %a3, { ptr, i64, i64 } { ptr @.str.7156, i64 12, i64 0 }, %S.json.Json %t4) store %S.json.Json %t4, ptr %a5 call void @finch.drop.S_json_Json(ptr %a5) %t6 = load %S.json.Json, ptr %a1 - call void @finch.json.Json.set(ptr %a3, { ptr, i64, i64 } { ptr @.str.6949, i64 5, i64 0 }, %S.json.Json %t6) + call void @finch.json.Json.set(ptr %a3, { ptr, i64, i64 } { ptr @.str.7157, i64 5, i64 0 }, %S.json.Json %t6) %t7 = load %S.json.Json, ptr %a3 ret %S.json.Json %t7 } @@ -107890,17 +111915,17 @@ entry: %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %a9, i32 0, i32 1 %t15 = load i64, ptr %t14 %t16 = icmp sgt i64 %t13, %t15 - br i1 %t16, label %then10659, label %endif10661 -then10659: + br i1 %t16, label %then11064, label %endif11066 +then11064: %t17 = getelementptr inbounds { ptr, i64, i64 }, ptr %a9, i32 0, i32 1 %t18 = load i64, ptr %t17 store i64 %t18, ptr %a12 - br label %endif10661 -endif10661: + br label %endif11066 +endif11066: %t19 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t19, ptr %a20 %t22 = load i64, ptr %a12 - call void @finch_str_sub(ptr %a21, ptr %a20, i64 0, i64 %t22, ptr @.str.6950, i64 671) + call void @finch_str_sub(ptr %a21, ptr %a20, i64 0, i64 %t22, ptr @.str.7158, i64 671) %t23 = load { ptr, i64, i64 }, ptr %a21 store { ptr, i64, i64 } %t23, ptr %a24 store i64 0, ptr %a25 @@ -107910,246 +111935,246 @@ endif10661: %t29 = load i64, ptr %t28 %t30 = sub i64 %t29, 1 store i64 %t30, ptr %a31 - br label %while.cond10662 -while.cond10662: + br label %while.cond11067 +while.cond11067: %t32 = load i64, ptr %a31 %t33 = icmp sge i64 %t32, 0 - br i1 %t33, label %while.body10663, label %while.end10664 -while.body10663: + br i1 %t33, label %while.body11068, label %while.end11069 +while.body11068: %t34 = load i64, ptr %a31 %t35 = load { ptr, i64, i64 }, ptr %a24 %t36 = extractvalue { ptr, i64, i64 } %t35, 1 %t37 = icmp uge i64 %t34, %t36 - br i1 %t37, label %range10665, label %inrange10666 -range10665: - call void @finch_panic_index(ptr @.str.6951, i64 678, i64 %t34, i64 %t36) + br i1 %t37, label %range11070, label %inrange11071 +range11070: + call void @finch_panic_index(ptr @.str.7159, i64 678, i64 %t34, i64 %t36) unreachable -inrange10666: +inrange11071: %t38 = extractvalue { ptr, i64, i64 } %t35, 0 %t39 = getelementptr inbounds i8, ptr %t38, i64 %t34 %t40 = load i8, ptr %t39 store i8 %t40, ptr %a41 %t42 = load i8, ptr %a41 %t43 = icmp eq i8 %t42, 41 - br label %logic.from10667 -logic.from10667: - br i1 %t43, label %logic.end10669, label %logic.rhs10668 -logic.rhs10668: + br label %logic.from11072 +logic.from11072: + br i1 %t43, label %logic.end11074, label %logic.rhs11073 +logic.rhs11073: %t44 = load i8, ptr %a41 %t45 = icmp eq i8 %t44, 93 - br label %logic.rend10670 -logic.rend10670: - br label %logic.end10669 -logic.end10669: - %t46 = phi i1 [ true, %logic.from10667 ], [ %t45, %logic.rend10670 ] - br i1 %t46, label %then10671, label %else10672 -then10671: + br label %logic.rend11075 +logic.rend11075: + br label %logic.end11074 +logic.end11074: + %t46 = phi i1 [ true, %logic.from11072 ], [ %t45, %logic.rend11075 ] + br i1 %t46, label %then11076, label %else11077 +then11076: %t47 = load i64, ptr %a25 %t48 = add i64 %t47, 1 store i64 %t48, ptr %a25 - br label %endif10673 -else10672: + br label %endif11078 +else11077: %t49 = load i8, ptr %a41 %t50 = icmp eq i8 %t49, 40 - br label %logic.from10674 -logic.from10674: - br i1 %t50, label %logic.end10676, label %logic.rhs10675 -logic.rhs10675: + br label %logic.from11079 +logic.from11079: + br i1 %t50, label %logic.end11081, label %logic.rhs11080 +logic.rhs11080: %t51 = load i8, ptr %a41 %t52 = icmp eq i8 %t51, 91 - br label %logic.rend10677 -logic.rend10677: - br label %logic.end10676 -logic.end10676: - %t53 = phi i1 [ true, %logic.from10674 ], [ %t52, %logic.rend10677 ] - br i1 %t53, label %then10678, label %else10679 -then10678: + br label %logic.rend11082 +logic.rend11082: + br label %logic.end11081 +logic.end11081: + %t53 = phi i1 [ true, %logic.from11079 ], [ %t52, %logic.rend11082 ] + br i1 %t53, label %then11083, label %else11084 +then11083: %t54 = load i64, ptr %a25 %t55 = icmp eq i64 %t54, 0 - br i1 %t55, label %then10681, label %else10682 -then10681: + br i1 %t55, label %then11086, label %else11087 +then11086: %t56 = load i8, ptr %a41 %t57 = icmp eq i8 %t56, 40 - br i1 %t57, label %then10684, label %endif10686 -then10684: + br i1 %t57, label %then11089, label %endif11091 +then11089: %t58 = load i64, ptr %a31 store i64 %t58, ptr %a27 - br label %while.end10664 -endif10686: - br label %endif10683 -else10682: + br label %while.end11069 +endif11091: + br label %endif11088 +else11087: %t59 = load i64, ptr %a25 %t60 = sub i64 %t59, 1 store i64 %t60, ptr %a25 - br label %endif10683 -endif10683: - br label %endif10680 -else10679: + br label %endif11088 +endif11088: + br label %endif11085 +else11084: %t61 = load i8, ptr %a41 %t62 = icmp eq i8 %t61, 44 - br label %logic.from10687 -logic.from10687: - br i1 %t62, label %logic.rhs10688, label %logic.end10689 -logic.rhs10688: + br label %logic.from11092 +logic.from11092: + br i1 %t62, label %logic.rhs11093, label %logic.end11094 +logic.rhs11093: %t63 = load i64, ptr %a25 %t64 = icmp eq i64 %t63, 0 - br label %logic.rend10690 -logic.rend10690: - br label %logic.end10689 -logic.end10689: - %t65 = phi i1 [ false, %logic.from10687 ], [ %t64, %logic.rend10690 ] - br i1 %t65, label %then10691, label %endif10693 -then10691: + br label %logic.rend11095 +logic.rend11095: + br label %logic.end11094 +logic.end11094: + %t65 = phi i1 [ false, %logic.from11092 ], [ %t64, %logic.rend11095 ] + br i1 %t65, label %then11096, label %endif11098 +then11096: %t66 = load i64, ptr %a26 %t67 = add i64 %t66, 1 store i64 %t67, ptr %a26 - br label %endif10693 -endif10693: - br label %endif10680 -endif10680: - br label %endif10673 -endif10673: + br label %endif11098 +endif11098: + br label %endif11085 +endif11085: + br label %endif11078 +endif11078: %t68 = load i64, ptr %a31 %t69 = sub i64 %t68, 1 store i64 %t69, ptr %a31 - br label %while.cond10662 -while.end10664: + br label %while.cond11067 +while.end11069: %t70 = load i64, ptr %a27 %t71 = icmp slt i64 %t70, 0 - br i1 %t71, label %then10694, label %endif10696 -then10694: + br i1 %t71, label %then11099, label %endif11101 +then11099: %t72 = call %S.json.Json @finch.json.new_null() call void @finch_str_drop(ptr %a24) call void @finch_str_drop(ptr %a9) ret %S.json.Json %t72 -endif10696: +endif11101: %t73 = load i64, ptr %a27 store i64 %t73, ptr %a74 %t75 = load i64, ptr %a74 store i64 %t75, ptr %a76 - br label %while.cond10697 -while.cond10697: + br label %while.cond11102 +while.cond11102: %t77 = load i64, ptr %a76 %t78 = icmp sgt i64 %t77, 0 - br label %logic.from10700 -logic.from10700: - br i1 %t78, label %logic.rhs10701, label %logic.end10702 -logic.rhs10701: + br label %logic.from11105 +logic.from11105: + br i1 %t78, label %logic.rhs11106, label %logic.end11107 +logic.rhs11106: %t79 = load i64, ptr %a76 %t80 = sub i64 %t79, 1 %t81 = load { ptr, i64, i64 }, ptr %a24 %t82 = extractvalue { ptr, i64, i64 } %t81, 1 %t83 = icmp uge i64 %t80, %t82 - br i1 %t83, label %range10703, label %inrange10704 -range10703: - call void @finch_panic_index(ptr @.str.6952, i64 700, i64 %t80, i64 %t82) + br i1 %t83, label %range11108, label %inrange11109 +range11108: + call void @finch_panic_index(ptr @.str.7160, i64 700, i64 %t80, i64 %t82) unreachable -inrange10704: +inrange11109: %t84 = extractvalue { ptr, i64, i64 } %t81, 0 %t85 = getelementptr inbounds i8, ptr %t84, i64 %t80 %t86 = load i8, ptr %t85 %t87 = call i1 @finch.lsp.isWordChar(i8 %t86) - br label %logic.rend10705 -logic.rend10705: - br label %logic.end10702 -logic.end10702: - %t88 = phi i1 [ false, %logic.from10700 ], [ %t87, %logic.rend10705 ] - br i1 %t88, label %while.body10698, label %while.end10699 -while.body10698: + br label %logic.rend11110 +logic.rend11110: + br label %logic.end11107 +logic.end11107: + %t88 = phi i1 [ false, %logic.from11105 ], [ %t87, %logic.rend11110 ] + br i1 %t88, label %while.body11103, label %while.end11104 +while.body11103: %t89 = load i64, ptr %a76 %t90 = sub i64 %t89, 1 store i64 %t90, ptr %a76 - br label %while.cond10697 -while.end10699: + br label %while.cond11102 +while.end11104: %t91 = load { ptr, i64, i64 }, ptr %a24 store { ptr, i64, i64 } %t91, ptr %a92 %t94 = load i64, ptr %a76 %t95 = load i64, ptr %a74 - call void @finch_str_sub(ptr %a93, ptr %a92, i64 %t94, i64 %t95, ptr @.str.6953, i64 703) + call void @finch_str_sub(ptr %a93, ptr %a92, i64 %t94, i64 %t95, ptr @.str.7161, i64 703) %t96 = load { ptr, i64, i64 }, ptr %a93 store { ptr, i64, i64 } %t96, ptr %a97 %t98 = getelementptr inbounds { ptr, i64, i64 }, ptr %a97, i32 0, i32 1 %t99 = load i64, ptr %t98 %t100 = icmp eq i64 %t99, 0 - br i1 %t100, label %then10706, label %endif10708 -then10706: + br i1 %t100, label %then11111, label %endif11113 +then11111: %t101 = call %S.json.Json @finch.json.new_null() call void @finch_str_drop(ptr %a97) call void @finch_str_drop(ptr %a24) call void @finch_str_drop(ptr %a9) ret %S.json.Json %t101 -endif10708: - store { ptr, i64, i64 } { ptr @.str.6954, i64 0, i64 0 }, ptr %a102 +endif11113: + store { ptr, i64, i64 } { ptr @.str.7162, i64 0, i64 0 }, ptr %a102 %t103 = load i64, ptr %a76 %t104 = icmp sgt i64 %t103, 0 - br label %logic.from10709 -logic.from10709: - br i1 %t104, label %logic.rhs10710, label %logic.end10711 -logic.rhs10710: + br label %logic.from11114 +logic.from11114: + br i1 %t104, label %logic.rhs11115, label %logic.end11116 +logic.rhs11115: %t105 = load i64, ptr %a76 %t106 = sub i64 %t105, 1 %t107 = load { ptr, i64, i64 }, ptr %a24 %t108 = extractvalue { ptr, i64, i64 } %t107, 1 %t109 = icmp uge i64 %t106, %t108 - br i1 %t109, label %range10712, label %inrange10713 -range10712: - call void @finch_panic_index(ptr @.str.6955, i64 708, i64 %t106, i64 %t108) + br i1 %t109, label %range11117, label %inrange11118 +range11117: + call void @finch_panic_index(ptr @.str.7163, i64 708, i64 %t106, i64 %t108) unreachable -inrange10713: +inrange11118: %t110 = extractvalue { ptr, i64, i64 } %t107, 0 %t111 = getelementptr inbounds i8, ptr %t110, i64 %t106 %t112 = load i8, ptr %t111 %t113 = icmp eq i8 %t112, 46 - br label %logic.rend10714 -logic.rend10714: - br label %logic.end10711 -logic.end10711: - %t114 = phi i1 [ false, %logic.from10709 ], [ %t113, %logic.rend10714 ] - br i1 %t114, label %then10715, label %endif10717 -then10715: + br label %logic.rend11119 +logic.rend11119: + br label %logic.end11116 +logic.end11116: + %t114 = phi i1 [ false, %logic.from11114 ], [ %t113, %logic.rend11119 ] + br i1 %t114, label %then11120, label %endif11122 +then11120: %t115 = load i64, ptr %a76 %t116 = sub i64 %t115, 1 store i64 %t116, ptr %a117 - br label %while.cond10718 -while.cond10718: + br label %while.cond11123 +while.cond11123: %t118 = load i64, ptr %a117 %t119 = icmp sgt i64 %t118, 0 - br label %logic.from10721 -logic.from10721: - br i1 %t119, label %logic.rhs10722, label %logic.end10723 -logic.rhs10722: + br label %logic.from11126 +logic.from11126: + br i1 %t119, label %logic.rhs11127, label %logic.end11128 +logic.rhs11127: %t120 = load i64, ptr %a117 %t121 = sub i64 %t120, 1 %t122 = load { ptr, i64, i64 }, ptr %a24 %t123 = extractvalue { ptr, i64, i64 } %t122, 1 %t124 = icmp uge i64 %t121, %t123 - br i1 %t124, label %range10724, label %inrange10725 -range10724: - call void @finch_panic_index(ptr @.str.6956, i64 711, i64 %t121, i64 %t123) + br i1 %t124, label %range11129, label %inrange11130 +range11129: + call void @finch_panic_index(ptr @.str.7164, i64 711, i64 %t121, i64 %t123) unreachable -inrange10725: +inrange11130: %t125 = extractvalue { ptr, i64, i64 } %t122, 0 %t126 = getelementptr inbounds i8, ptr %t125, i64 %t121 %t127 = load i8, ptr %t126 %t128 = call i1 @finch.lsp.isWordChar(i8 %t127) - br label %logic.rend10726 -logic.rend10726: - br label %logic.end10723 -logic.end10723: - %t129 = phi i1 [ false, %logic.from10721 ], [ %t128, %logic.rend10726 ] - br i1 %t129, label %while.body10719, label %while.end10720 -while.body10719: + br label %logic.rend11131 +logic.rend11131: + br label %logic.end11128 +logic.end11128: + %t129 = phi i1 [ false, %logic.from11126 ], [ %t128, %logic.rend11131 ] + br i1 %t129, label %while.body11124, label %while.end11125 +while.body11124: %t130 = load i64, ptr %a117 %t131 = sub i64 %t130, 1 store i64 %t131, ptr %a117 - br label %while.cond10718 -while.end10720: + br label %while.cond11123 +while.end11125: %t132 = load { ptr, i64, i64 }, ptr %a24 store { ptr, i64, i64 } %t132, ptr %a133 %t135 = load i64, ptr %a117 %t136 = load i64, ptr %a76 %t137 = sub i64 %t136, 1 - call void @finch_str_sub(ptr %a134, ptr %a133, i64 %t135, i64 %t137, ptr @.str.6957, i64 714) + call void @finch_str_sub(ptr %a134, ptr %a133, i64 %t135, i64 %t137, ptr @.str.7165, i64 714) %t138 = load { ptr, i64, i64 }, ptr %a134 store { ptr, i64, i64 } %t138, ptr %a139 %t140 = load %S.lsp.Analysis, ptr %a1 @@ -108166,38 +112191,38 @@ while.end10720: store { ptr, i64, i64 } %t148, ptr %a150 %t151 = load { ptr, i64, i64 }, ptr %a150 store { ptr, i64, i64 } %t151, ptr %a152 - store { ptr, i64, i64 } { ptr @.str.6959, i64 4, i64 0 }, ptr %a154 + store { ptr, i64, i64 } { ptr @.str.7167, i64 4, i64 0 }, ptr %a154 %t155 = call i32 @finch_str_starts(ptr %a152, ptr %a154) %t156 = icmp ne i32 %t155, 0 - br label %logic.from10727 -logic.from10727: - br i1 %t156, label %logic.rhs10728, label %logic.end10729 -logic.rhs10728: + br label %logic.from11132 +logic.from11132: + br i1 %t156, label %logic.rhs11133, label %logic.end11134 +logic.rhs11133: %t157 = load { ptr, i64, i64 }, ptr %a150 store { ptr, i64, i64 } %t157, ptr %a158 - store { ptr, i64, i64 } { ptr @.str.6961, i64 1, i64 0 }, ptr %a160 + store { ptr, i64, i64 } { ptr @.str.7169, i64 1, i64 0 }, ptr %a160 %t161 = call i32 @finch_str_ends(ptr %a158, ptr %a160) %t162 = icmp ne i32 %t161, 0 - br label %logic.rend10730 -logic.rend10730: - br label %logic.end10729 -logic.end10729: - %t163 = phi i1 [ false, %logic.from10727 ], [ %t162, %logic.rend10730 ] - br i1 %t163, label %then10731, label %endif10733 -then10731: + br label %logic.rend11135 +logic.rend11135: + br label %logic.end11134 +logic.end11134: + %t163 = phi i1 [ false, %logic.from11132 ], [ %t162, %logic.rend11135 ] + br i1 %t163, label %then11136, label %endif11138 +then11136: %t164 = load { ptr, i64, i64 }, ptr %a150 store { ptr, i64, i64 } %t164, ptr %a165 %t167 = getelementptr inbounds { ptr, i64, i64 }, ptr %a150, i32 0, i32 1 %t168 = load i64, ptr %t167 %t169 = sub i64 %t168, 1 - call void @finch_str_sub(ptr %a166, ptr %a165, i64 4, i64 %t169, ptr @.str.6962, i64 717) + call void @finch_str_sub(ptr %a166, ptr %a165, i64 4, i64 %t169, ptr @.str.7170, i64 717) %t170 = load { ptr, i64, i64 }, ptr %a166 %t171 = load { ptr, i64, i64 }, ptr %a150 store { ptr, i64, i64 } %t170, ptr %a150 store { ptr, i64, i64 } %t171, ptr %a172 call void @finch_str_drop(ptr %a172) - br label %endif10733 -endif10733: + br label %endif11138 +endif11138: %t173 = load { ptr, i64, i64 }, ptr %a150 store { ptr, i64, i64 } %t173, ptr %a174 call void @finch_str_copy(ptr %a175, ptr %a174) @@ -108208,18 +112233,18 @@ endif10733: call void @finch_str_drop(ptr %a178) call void @finch_str_drop(ptr %a150) call void @finch_str_drop(ptr %a139) - br label %endif10717 -endif10717: + br label %endif11122 +endif11122: %t179 = getelementptr inbounds %S.lsp.Analysis, ptr %a1, i32 0, i32 2 store i64 0, ptr %a180 - br label %each.cond10734 -each.cond10734: + br label %each.cond11139 +each.cond11139: %t181 = getelementptr inbounds { ptr, i64, i64 }, ptr %t179, i32 0, i32 1 %t182 = load i64, ptr %t181 %t183 = load i64, ptr %a180 %t184 = icmp slt i64 %t183, %t182 - br i1 %t184, label %each.body10735, label %each.end10737 -each.body10735: + br i1 %t184, label %each.body11140, label %each.end11142 +each.body11140: %t185 = load ptr, ptr %t179 %t186 = getelementptr inbounds %S.lsp.FnRec, ptr %t185, i64 %t183 %t187 = load %S.lsp.FnRec, ptr %t186 @@ -108231,10 +112256,10 @@ each.body10735: store { ptr, i64, i64 } %t191, ptr %a193 %t194 = call i32 @finch_str_eq(ptr %a192, ptr %a193) %t195 = icmp ne i32 %t194, 0 - br label %logic.from10738 -logic.from10738: - br i1 %t195, label %logic.rhs10739, label %logic.end10740 -logic.rhs10739: + br label %logic.from11143 +logic.from11143: + br i1 %t195, label %logic.rhs11144, label %logic.end11145 +logic.rhs11144: %t196 = getelementptr inbounds %S.lsp.FnRec, ptr %a188, i32 0, i32 2 %t197 = load { ptr, i64, i64 }, ptr %t196 %t198 = load { ptr, i64, i64 }, ptr %a102 @@ -108242,33 +112267,33 @@ logic.rhs10739: store { ptr, i64, i64 } %t198, ptr %a200 %t201 = call i32 @finch_str_eq(ptr %a199, ptr %a200) %t202 = icmp ne i32 %t201, 0 - br label %logic.rend10741 -logic.rend10741: - br label %logic.end10740 -logic.end10740: - %t203 = phi i1 [ false, %logic.from10738 ], [ %t202, %logic.rend10741 ] - br i1 %t203, label %then10742, label %endif10744 -then10742: + br label %logic.rend11146 +logic.rend11146: + br label %logic.end11145 +logic.end11145: + %t203 = phi i1 [ false, %logic.from11143 ], [ %t202, %logic.rend11146 ] + br i1 %t203, label %then11147, label %endif11149 +then11147: %t204 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t204, ptr %a205 %t206 = getelementptr inbounds %S.lsp.FnRec, ptr %a188, i32 0, i32 7 %t207 = load { ptr, i64, i64 }, ptr %t206 %t208 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t207) - call void @finch.json.Json.set(ptr %a205, { ptr, i64, i64 } { ptr @.str.6963, i64 5, i64 0 }, %S.json.Json %t208) + call void @finch.json.Json.set(ptr %a205, { ptr, i64, i64 } { ptr @.str.7171, i64 5, i64 0 }, %S.json.Json %t208) store %S.json.Json %t208, ptr %a209 call void @finch.drop.S_json_Json(ptr %a209) %t210 = call %S.json.Json @finch.json.new_list() store %S.json.Json %t210, ptr %a211 %t212 = getelementptr inbounds %S.lsp.FnRec, ptr %a188, i32 0, i32 8 store i64 0, ptr %a213 - br label %each.cond10745 -each.cond10745: + br label %each.cond11150 +each.cond11150: %t214 = getelementptr inbounds { ptr, i64, i64 }, ptr %t212, i32 0, i32 1 %t215 = load i64, ptr %t214 %t216 = load i64, ptr %a213 %t217 = icmp slt i64 %t216, %t215 - br i1 %t217, label %each.body10746, label %each.end10748 -each.body10746: + br i1 %t217, label %each.body11151, label %each.end11153 +each.body11151: %t218 = load ptr, ptr %t212 %t219 = getelementptr inbounds { ptr, i64, i64 }, ptr %t218, i64 %t216 %t220 = load { ptr, i64, i64 }, ptr %t219 @@ -108276,29 +112301,29 @@ each.body10746: %t222 = getelementptr inbounds { ptr, i64, i64 }, ptr %a221, i32 0, i32 1 %t223 = load i64, ptr %t222 %t224 = icmp sgt i64 %t223, 0 - br i1 %t224, label %then10749, label %endif10751 -then10749: + br i1 %t224, label %then11154, label %endif11156 +then11154: %t225 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t225, ptr %a226 %t227 = load { ptr, i64, i64 }, ptr %a221 %t228 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t227) - call void @finch.json.Json.set(ptr %a226, { ptr, i64, i64 } { ptr @.str.6964, i64 5, i64 0 }, %S.json.Json %t228) + call void @finch.json.Json.set(ptr %a226, { ptr, i64, i64 } { ptr @.str.7172, i64 5, i64 0 }, %S.json.Json %t228) store %S.json.Json %t228, ptr %a229 call void @finch.drop.S_json_Json(ptr %a229) %t230 = load %S.json.Json, ptr %a226 call void @finch.json.Json.push(ptr %a211, %S.json.Json %t230) call void @finch.drop.S_json_Json(ptr %a226) - br label %endif10751 -endif10751: - br label %each.step10747 -each.step10747: + br label %endif11156 +endif11156: + br label %each.step11152 +each.step11152: %t231 = load i64, ptr %a213 %t232 = add i64 %t231, 1 store i64 %t232, ptr %a213 - br label %each.cond10745 -each.end10748: + br label %each.cond11150 +each.end11153: %t233 = load %S.json.Json, ptr %a211 - call void @finch.json.Json.set(ptr %a205, { ptr, i64, i64 } { ptr @.str.6965, i64 10, i64 0 }, %S.json.Json %t233) + call void @finch.json.Json.set(ptr %a205, { ptr, i64, i64 } { ptr @.str.7173, i64 10, i64 0 }, %S.json.Json %t233) %t234 = call %S.json.Json @finch.json.new_list() store %S.json.Json %t234, ptr %a235 %t236 = load %S.json.Json, ptr %a205 @@ -108306,14 +112331,14 @@ each.end10748: %t237 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t237, ptr %a238 %t239 = load %S.json.Json, ptr %a235 - call void @finch.json.Json.set(ptr %a238, { ptr, i64, i64 } { ptr @.str.6966, i64 10, i64 0 }, %S.json.Json %t239) + call void @finch.json.Json.set(ptr %a238, { ptr, i64, i64 } { ptr @.str.7174, i64 10, i64 0 }, %S.json.Json %t239) %t240 = call %S.json.Json @finch.lsp.num(i64 0) - call void @finch.json.Json.set(ptr %a238, { ptr, i64, i64 } { ptr @.str.6967, i64 15, i64 0 }, %S.json.Json %t240) + call void @finch.json.Json.set(ptr %a238, { ptr, i64, i64 } { ptr @.str.7175, i64 15, i64 0 }, %S.json.Json %t240) store %S.json.Json %t240, ptr %a241 call void @finch.drop.S_json_Json(ptr %a241) %t242 = load i64, ptr %a26 %t243 = call %S.json.Json @finch.lsp.num(i64 %t242) - call void @finch.json.Json.set(ptr %a238, { ptr, i64, i64 } { ptr @.str.6968, i64 15, i64 0 }, %S.json.Json %t243) + call void @finch.json.Json.set(ptr %a238, { ptr, i64, i64 } { ptr @.str.7176, i64 15, i64 0 }, %S.json.Json %t243) store %S.json.Json %t243, ptr %a244 call void @finch.drop.S_json_Json(ptr %a244) %t245 = load %S.json.Json, ptr %a238 @@ -108325,14 +112350,14 @@ each.end10748: call void @finch_str_drop(ptr %a24) call void @finch_str_drop(ptr %a9) ret %S.json.Json %t245 -endif10744: - br label %each.step10736 -each.step10736: +endif11149: + br label %each.step11141 +each.step11141: %t246 = load i64, ptr %a180 %t247 = add i64 %t246, 1 store i64 %t247, ptr %a180 - br label %each.cond10734 -each.end10737: + br label %each.cond11139 +each.end11142: %t248 = call { ptr, i64, i64 } @finch.docs.builtins() %t249 = load { ptr, i64, i64 }, ptr %a97 %t250 = call %S.docs.Doc @finch.docs.find({ ptr, i64, i64 } %t248, { ptr, i64, i64 } %t249) @@ -108343,20 +112368,20 @@ each.end10737: %t254 = getelementptr inbounds { ptr, i64, i64 }, ptr %t253, i32 0, i32 1 %t255 = load i64, ptr %t254 %t256 = icmp sgt i64 %t255, 0 - br i1 %t256, label %then10752, label %endif10754 -then10752: + br i1 %t256, label %then11157, label %endif11159 +then11157: %t257 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t257, ptr %a258 %t259 = getelementptr inbounds %S.docs.Doc, ptr %a252, i32 0, i32 1 %t260 = load { ptr, i64, i64 }, ptr %t259 %t261 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t260) - call void @finch.json.Json.set(ptr %a258, { ptr, i64, i64 } { ptr @.str.6969, i64 5, i64 0 }, %S.json.Json %t261) + call void @finch.json.Json.set(ptr %a258, { ptr, i64, i64 } { ptr @.str.7177, i64 5, i64 0 }, %S.json.Json %t261) store %S.json.Json %t261, ptr %a262 call void @finch.drop.S_json_Json(ptr %a262) %t263 = getelementptr inbounds %S.docs.Doc, ptr %a252, i32 0, i32 2 %t264 = load { ptr, i64, i64 }, ptr %t263 %t265 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t264) - call void @finch.json.Json.set(ptr %a258, { ptr, i64, i64 } { ptr @.str.6970, i64 13, i64 0 }, %S.json.Json %t265) + call void @finch.json.Json.set(ptr %a258, { ptr, i64, i64 } { ptr @.str.7178, i64 13, i64 0 }, %S.json.Json %t265) store %S.json.Json %t265, ptr %a266 call void @finch.drop.S_json_Json(ptr %a266) %t267 = call %S.json.Json @finch.json.new_list() @@ -108366,14 +112391,14 @@ then10752: %t270 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t270, ptr %a271 %t272 = load %S.json.Json, ptr %a268 - call void @finch.json.Json.set(ptr %a271, { ptr, i64, i64 } { ptr @.str.6971, i64 10, i64 0 }, %S.json.Json %t272) + call void @finch.json.Json.set(ptr %a271, { ptr, i64, i64 } { ptr @.str.7179, i64 10, i64 0 }, %S.json.Json %t272) %t273 = call %S.json.Json @finch.lsp.num(i64 0) - call void @finch.json.Json.set(ptr %a271, { ptr, i64, i64 } { ptr @.str.6972, i64 15, i64 0 }, %S.json.Json %t273) + call void @finch.json.Json.set(ptr %a271, { ptr, i64, i64 } { ptr @.str.7180, i64 15, i64 0 }, %S.json.Json %t273) store %S.json.Json %t273, ptr %a274 call void @finch.drop.S_json_Json(ptr %a274) %t275 = load i64, ptr %a26 %t276 = call %S.json.Json @finch.lsp.num(i64 %t275) - call void @finch.json.Json.set(ptr %a271, { ptr, i64, i64 } { ptr @.str.6973, i64 15, i64 0 }, %S.json.Json %t276) + call void @finch.json.Json.set(ptr %a271, { ptr, i64, i64 } { ptr @.str.7181, i64 15, i64 0 }, %S.json.Json %t276) store %S.json.Json %t276, ptr %a277 call void @finch.drop.S_json_Json(ptr %a277) %t278 = load %S.json.Json, ptr %a271 @@ -108385,7 +112410,7 @@ then10752: call void @finch_str_drop(ptr %a24) call void @finch_str_drop(ptr %a9) ret %S.json.Json %t278 -endif10754: +endif11159: %t279 = call %S.json.Json @finch.json.new_null() call void @finch.drop.S_docs_Doc(ptr %a252) call void @finch_str_drop(ptr %a102) @@ -108401,12 +112426,12 @@ entry: %a3 = alloca %S.json.Json, align 16 %a5 = alloca %S.json.Json, align 16 store %S.json.Json %p0, ptr %a1 - %t2 = call %S.json.Json @finch.json.Json.get(ptr %a1, { ptr, i64, i64 } { ptr @.str.6974, i64 12, i64 0 }) + %t2 = call %S.json.Json @finch.json.Json.get(ptr %a1, { ptr, i64, i64 } { ptr @.str.7182, i64 12, i64 0 }) store %S.json.Json %t2, ptr %a3 - %t4 = call %S.json.Json @finch.json.Json.get(ptr %a3, { ptr, i64, i64 } { ptr @.str.6975, i64 4, i64 0 }) + %t4 = call %S.json.Json @finch.json.Json.get(ptr %a3, { ptr, i64, i64 } { ptr @.str.7183, i64 4, i64 0 }) call void @finch.drop.S_json_Json(ptr %a3) store %S.json.Json %t4, ptr %a5 - %t6 = call { ptr, i64, i64 } @finch.json.Json.str_or(ptr %a5, { ptr, i64, i64 } { ptr @.str.6976, i64 0, i64 0 }) + %t6 = call { ptr, i64, i64 } @finch.json.Json.str_or(ptr %a5, { ptr, i64, i64 } { ptr @.str.7184, i64 0, i64 0 }) call void @finch.drop.S_json_Json(ptr %a5) ret { ptr, i64, i64 } %t6 } @@ -108418,12 +112443,12 @@ entry: %a5 = alloca %S.json.Json, align 16 %a8 = alloca { ptr, i64, i64 }, align 16 store %S.json.Json %p0, ptr %a1 - %t2 = call %S.json.Json @finch.json.Json.get(ptr %a1, { ptr, i64, i64 } { ptr @.str.6977, i64 12, i64 0 }) + %t2 = call %S.json.Json @finch.json.Json.get(ptr %a1, { ptr, i64, i64 } { ptr @.str.7185, i64 12, i64 0 }) store %S.json.Json %t2, ptr %a3 - %t4 = call %S.json.Json @finch.json.Json.get(ptr %a3, { ptr, i64, i64 } { ptr @.str.6978, i64 3, i64 0 }) + %t4 = call %S.json.Json @finch.json.Json.get(ptr %a3, { ptr, i64, i64 } { ptr @.str.7186, i64 3, i64 0 }) call void @finch.drop.S_json_Json(ptr %a3) store %S.json.Json %t4, ptr %a5 - %t6 = call { ptr, i64, i64 } @finch.json.Json.str_or(ptr %a5, { ptr, i64, i64 } { ptr @.str.6979, i64 0, i64 0 }) + %t6 = call { ptr, i64, i64 } @finch.json.Json.str_or(ptr %a5, { ptr, i64, i64 } { ptr @.str.7187, i64 0, i64 0 }) call void @finch.drop.S_json_Json(ptr %a5) %t7 = call { ptr, i64, i64 } @finch.lsp.uriToPath({ ptr, i64, i64 } %t6) store { ptr, i64, i64 } %t6, ptr %a8 @@ -108537,80 +112562,80 @@ entry: %a322 = alloca %S.json.Json, align 16 %a328 = alloca %S.json.Json, align 16 store %S.json.Json %p0, ptr %a1 - %t2 = call %S.json.Json @finch.json.Json.get(ptr %a1, { ptr, i64, i64 } { ptr @.str.6980, i64 6, i64 0 }) + %t2 = call %S.json.Json @finch.json.Json.get(ptr %a1, { ptr, i64, i64 } { ptr @.str.7188, i64 6, i64 0 }) store %S.json.Json %t2, ptr %a3 - %t4 = call { ptr, i64, i64 } @finch.json.Json.str_or(ptr %a3, { ptr, i64, i64 } { ptr @.str.6981, i64 0, i64 0 }) + %t4 = call { ptr, i64, i64 } @finch.json.Json.str_or(ptr %a3, { ptr, i64, i64 } { ptr @.str.7189, i64 0, i64 0 }) call void @finch.drop.S_json_Json(ptr %a3) store { ptr, i64, i64 } %t4, ptr %a5 - %t6 = call %S.json.Json @finch.json.Json.get(ptr %a1, { ptr, i64, i64 } { ptr @.str.6982, i64 6, i64 0 }) + %t6 = call %S.json.Json @finch.json.Json.get(ptr %a1, { ptr, i64, i64 } { ptr @.str.7190, i64 6, i64 0 }) store %S.json.Json %t6, ptr %a7 - %t8 = call %S.json.Json @finch.json.Json.get(ptr %a1, { ptr, i64, i64 } { ptr @.str.6983, i64 2, i64 0 }) + %t8 = call %S.json.Json @finch.json.Json.get(ptr %a1, { ptr, i64, i64 } { ptr @.str.7191, i64 2, i64 0 }) store %S.json.Json %t8, ptr %a9 %t10 = load { ptr, i64, i64 }, ptr %a5 store { ptr, i64, i64 } %t10, ptr %a11 - store { ptr, i64, i64 } { ptr @.str.6984, i64 10, i64 0 }, ptr %a12 + store { ptr, i64, i64 } { ptr @.str.7192, i64 10, i64 0 }, ptr %a12 %t13 = call i32 @finch_str_eq(ptr %a11, ptr %a12) %t14 = icmp ne i32 %t13, 0 - br i1 %t14, label %match.arm10756, label %match.next10757 -match.arm10756: + br i1 %t14, label %match.arm11161, label %match.next11162 +match.arm11161: %t15 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t15, ptr %a16 %t17 = call %S.json.Json @finch.lsp.num(i64 1) - call void @finch.json.Json.set(ptr %a16, { ptr, i64, i64 } { ptr @.str.6985, i64 16, i64 0 }, %S.json.Json %t17) + call void @finch.json.Json.set(ptr %a16, { ptr, i64, i64 } { ptr @.str.7193, i64 16, i64 0 }, %S.json.Json %t17) store %S.json.Json %t17, ptr %a18 call void @finch.drop.S_json_Json(ptr %a18) %t19 = call %S.json.Json @finch.json.new_bool(i1 true) - call void @finch.json.Json.set(ptr %a16, { ptr, i64, i64 } { ptr @.str.6986, i64 13, i64 0 }, %S.json.Json %t19) + call void @finch.json.Json.set(ptr %a16, { ptr, i64, i64 } { ptr @.str.7194, i64 13, i64 0 }, %S.json.Json %t19) store %S.json.Json %t19, ptr %a20 call void @finch.drop.S_json_Json(ptr %a20) %t21 = call %S.json.Json @finch.json.new_bool(i1 true) - call void @finch.json.Json.set(ptr %a16, { ptr, i64, i64 } { ptr @.str.6987, i64 18, i64 0 }, %S.json.Json %t21) + call void @finch.json.Json.set(ptr %a16, { ptr, i64, i64 } { ptr @.str.7195, i64 18, i64 0 }, %S.json.Json %t21) store %S.json.Json %t21, ptr %a22 call void @finch.drop.S_json_Json(ptr %a22) %t23 = call %S.json.Json @finch.json.new_bool(i1 true) - call void @finch.json.Json.set(ptr %a16, { ptr, i64, i64 } { ptr @.str.6988, i64 22, i64 0 }, %S.json.Json %t23) + call void @finch.json.Json.set(ptr %a16, { ptr, i64, i64 } { ptr @.str.7196, i64 22, i64 0 }, %S.json.Json %t23) store %S.json.Json %t23, ptr %a24 call void @finch.drop.S_json_Json(ptr %a24) %t25 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t25, ptr %a26 %t27 = call %S.json.Json @finch.json.new_list() store %S.json.Json %t27, ptr %a28 - %t29 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.6989, i64 1, i64 0 }) + %t29 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.7197, i64 1, i64 0 }) call void @finch.json.Json.push(ptr %a28, %S.json.Json %t29) store %S.json.Json %t29, ptr %a30 call void @finch.drop.S_json_Json(ptr %a30) %t31 = load %S.json.Json, ptr %a28 - call void @finch.json.Json.set(ptr %a26, { ptr, i64, i64 } { ptr @.str.6990, i64 17, i64 0 }, %S.json.Json %t31) + call void @finch.json.Json.set(ptr %a26, { ptr, i64, i64 } { ptr @.str.7198, i64 17, i64 0 }, %S.json.Json %t31) %t32 = load %S.json.Json, ptr %a26 - call void @finch.json.Json.set(ptr %a16, { ptr, i64, i64 } { ptr @.str.6991, i64 18, i64 0 }, %S.json.Json %t32) + call void @finch.json.Json.set(ptr %a16, { ptr, i64, i64 } { ptr @.str.7199, i64 18, i64 0 }, %S.json.Json %t32) %t33 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t33, ptr %a34 %t35 = call %S.json.Json @finch.json.new_list() store %S.json.Json %t35, ptr %a36 - %t37 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.6992, i64 1, i64 0 }) + %t37 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.7200, i64 1, i64 0 }) call void @finch.json.Json.push(ptr %a36, %S.json.Json %t37) store %S.json.Json %t37, ptr %a38 call void @finch.drop.S_json_Json(ptr %a38) - %t39 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.6993, i64 1, i64 0 }) + %t39 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.7201, i64 1, i64 0 }) call void @finch.json.Json.push(ptr %a36, %S.json.Json %t39) store %S.json.Json %t39, ptr %a40 call void @finch.drop.S_json_Json(ptr %a40) %t41 = load %S.json.Json, ptr %a36 - call void @finch.json.Json.set(ptr %a34, { ptr, i64, i64 } { ptr @.str.6994, i64 17, i64 0 }, %S.json.Json %t41) + call void @finch.json.Json.set(ptr %a34, { ptr, i64, i64 } { ptr @.str.7202, i64 17, i64 0 }, %S.json.Json %t41) %t42 = load %S.json.Json, ptr %a34 - call void @finch.json.Json.set(ptr %a16, { ptr, i64, i64 } { ptr @.str.6995, i64 21, i64 0 }, %S.json.Json %t42) + call void @finch.json.Json.set(ptr %a16, { ptr, i64, i64 } { ptr @.str.7203, i64 21, i64 0 }, %S.json.Json %t42) %t43 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t43, ptr %a44 %t45 = load %S.json.Json, ptr %a16 - call void @finch.json.Json.set(ptr %a44, { ptr, i64, i64 } { ptr @.str.6996, i64 12, i64 0 }, %S.json.Json %t45) + call void @finch.json.Json.set(ptr %a44, { ptr, i64, i64 } { ptr @.str.7204, i64 12, i64 0 }, %S.json.Json %t45) %t46 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t46, ptr %a47 - %t48 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.6998, i64 5, i64 0 }) - call void @finch.json.Json.set(ptr %a47, { ptr, i64, i64 } { ptr @.str.6997, i64 4, i64 0 }, %S.json.Json %t48) + %t48 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } { ptr @.str.7206, i64 5, i64 0 }) + call void @finch.json.Json.set(ptr %a47, { ptr, i64, i64 } { ptr @.str.7205, i64 4, i64 0 }, %S.json.Json %t48) store %S.json.Json %t48, ptr %a49 call void @finch.drop.S_json_Json(ptr %a49) %t50 = load %S.json.Json, ptr %a47 - call void @finch.json.Json.set(ptr %a44, { ptr, i64, i64 } { ptr @.str.6999, i64 10, i64 0 }, %S.json.Json %t50) + call void @finch.json.Json.set(ptr %a44, { ptr, i64, i64 } { ptr @.str.7207, i64 10, i64 0 }, %S.json.Json %t50) %t51 = load %S.json.Json, ptr %a9 %t52 = load %S.json.Json, ptr %a44 call void @finch.lsp.reply(%S.json.Json %t51, %S.json.Json %t52) @@ -108621,14 +112646,14 @@ match.arm10756: call void @finch.drop.S_json_Json(ptr %a28) call void @finch.drop.S_json_Json(ptr %a26) call void @finch.drop.S_json_Json(ptr %a16) - br label %match.end10755 -match.next10757: + br label %match.end11160 +match.next11162: store { ptr, i64, i64 } %t10, ptr %a53 - store { ptr, i64, i64 } { ptr @.str.7000, i64 8, i64 0 }, ptr %a54 + store { ptr, i64, i64 } { ptr @.str.7208, i64 8, i64 0 }, ptr %a54 %t55 = call i32 @finch_str_eq(ptr %a53, ptr %a54) %t56 = icmp ne i32 %t55, 0 - br i1 %t56, label %match.arm10758, label %match.next10759 -match.arm10758: + br i1 %t56, label %match.arm11163, label %match.next11164 +match.arm11163: %t57 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 6 store i1 true, ptr %t57 %t58 = load %S.json.Json, ptr %a9 @@ -108636,25 +112661,25 @@ match.arm10758: call void @finch.lsp.reply(%S.json.Json %t58, %S.json.Json %t59) store %S.json.Json %t59, ptr %a60 call void @finch.drop.S_json_Json(ptr %a60) - br label %match.end10755 -match.next10759: + br label %match.end11160 +match.next11164: store { ptr, i64, i64 } %t10, ptr %a61 - store { ptr, i64, i64 } { ptr @.str.7001, i64 4, i64 0 }, ptr %a62 + store { ptr, i64, i64 } { ptr @.str.7209, i64 4, i64 0 }, ptr %a62 %t63 = call i32 @finch_str_eq(ptr %a61, ptr %a62) %t64 = icmp ne i32 %t63, 0 - br i1 %t64, label %match.arm10760, label %match.next10761 -match.arm10760: + br i1 %t64, label %match.arm11165, label %match.next11166 +match.arm11165: %t65 = trunc i64 0 to i32 %t66 = call i32 @fflush(ptr null) call void @exit(i32 %t65) - br label %match.end10755 -match.next10761: + br label %match.end11160 +match.next11166: store { ptr, i64, i64 } %t10, ptr %a67 - store { ptr, i64, i64 } { ptr @.str.7002, i64 20, i64 0 }, ptr %a68 + store { ptr, i64, i64 } { ptr @.str.7210, i64 20, i64 0 }, ptr %a68 %t69 = call i32 @finch_str_eq(ptr %a67, ptr %a68) %t70 = icmp ne i32 %t69, 0 - br i1 %t70, label %match.arm10762, label %match.next10763 -match.arm10762: + br i1 %t70, label %match.arm11167, label %match.next11168 +match.arm11167: %t71 = load %S.json.Json, ptr %a7 %t72 = call { ptr, i64, i64 } @finch.lsp.pathOf(%S.json.Json %t71) store { ptr, i64, i64 } %t72, ptr %a73 @@ -108670,14 +112695,14 @@ match.arm10762: %t83 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t82, i64 %t80 %t84 = load i32, ptr %a79 %t85 = icmp ne i32 %t84, 0 - br i1 %t85, label %map.new10764, label %map.have10765 -map.new10764: + br i1 %t85, label %map.new11169, label %map.have11170 +map.new11169: %t86 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t83, i32 0, i32 1 call void @finch_str_copy(ptr %t86, ptr %a78) %t87 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t83, i32 0, i32 2 store { ptr, i64, i64 } zeroinitializer, ptr %t87 - br label %map.have10765 -map.have10765: + br label %map.have11170 +map.have11170: %t88 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t83, i32 0, i32 2 %t89 = load { ptr, i64, i64 }, ptr %t88 store { ptr, i64, i64 } %t75, ptr %t88 @@ -108686,31 +112711,31 @@ map.have10765: %t91 = load { ptr, i64, i64 }, ptr %a73 call void @finch.lsp.Server.analyse(ptr %self, { ptr, i64, i64 } %t91) call void @finch_str_drop(ptr %a73) - br label %match.end10755 -match.next10763: + br label %match.end11160 +match.next11168: store { ptr, i64, i64 } %t10, ptr %a92 - store { ptr, i64, i64 } { ptr @.str.7003, i64 22, i64 0 }, ptr %a93 + store { ptr, i64, i64 } { ptr @.str.7211, i64 22, i64 0 }, ptr %a93 %t94 = call i32 @finch_str_eq(ptr %a92, ptr %a93) %t95 = icmp ne i32 %t94, 0 - br i1 %t95, label %match.arm10766, label %match.next10767 -match.arm10766: + br i1 %t95, label %match.arm11171, label %match.next11172 +match.arm11171: %t96 = load %S.json.Json, ptr %a7 %t97 = call { ptr, i64, i64 } @finch.lsp.pathOf(%S.json.Json %t96) store { ptr, i64, i64 } %t97, ptr %a98 - %t99 = call %S.json.Json @finch.json.Json.get(ptr %a7, { ptr, i64, i64 } { ptr @.str.7004, i64 14, i64 0 }) + %t99 = call %S.json.Json @finch.json.Json.get(ptr %a7, { ptr, i64, i64 } { ptr @.str.7212, i64 14, i64 0 }) store %S.json.Json %t99, ptr %a100 %t101 = call i64 @finch.json.Json.len(ptr %a100) %t102 = icmp sgt i64 %t101, 0 - br i1 %t102, label %then10768, label %endif10770 -then10768: + br i1 %t102, label %then11173, label %endif11175 +then11173: %t103 = call i64 @finch.json.Json.len(ptr %a100) %t104 = sub i64 %t103, 1 %t105 = call %S.json.Json @finch.json.Json.at(ptr %a100, i64 %t104) store %S.json.Json %t105, ptr %a106 - %t107 = call %S.json.Json @finch.json.Json.get(ptr %a106, { ptr, i64, i64 } { ptr @.str.7005, i64 4, i64 0 }) + %t107 = call %S.json.Json @finch.json.Json.get(ptr %a106, { ptr, i64, i64 } { ptr @.str.7213, i64 4, i64 0 }) call void @finch.drop.S_json_Json(ptr %a106) store %S.json.Json %t107, ptr %a108 - %t109 = call { ptr, i64, i64 } @finch.json.Json.str_or(ptr %a108, { ptr, i64, i64 } { ptr @.str.7006, i64 0, i64 0 }) + %t109 = call { ptr, i64, i64 } @finch.json.Json.str_or(ptr %a108, { ptr, i64, i64 } { ptr @.str.7214, i64 0, i64 0 }) call void @finch.drop.S_json_Json(ptr %a108) %t110 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 2 %t111 = load { ptr, i64, i64 }, ptr %a98 @@ -108722,14 +112747,14 @@ then10768: %t117 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t116, i64 %t114 %t118 = load i32, ptr %a113 %t119 = icmp ne i32 %t118, 0 - br i1 %t119, label %map.new10771, label %map.have10772 -map.new10771: + br i1 %t119, label %map.new11176, label %map.have11177 +map.new11176: %t120 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t117, i32 0, i32 1 call void @finch_str_copy(ptr %t120, ptr %a112) %t121 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t117, i32 0, i32 2 store { ptr, i64, i64 } zeroinitializer, ptr %t121 - br label %map.have10772 -map.have10772: + br label %map.have11177 +map.have11177: %t122 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t117, i32 0, i32 2 %t123 = load { ptr, i64, i64 }, ptr %t122 store { ptr, i64, i64 } %t109, ptr %t122 @@ -108737,18 +112762,18 @@ map.have10772: call void @finch_str_drop(ptr %a124) %t125 = load { ptr, i64, i64 }, ptr %a98 call void @finch.lsp.Server.analyse(ptr %self, { ptr, i64, i64 } %t125) - br label %endif10770 -endif10770: + br label %endif11175 +endif11175: call void @finch.drop.S_json_Json(ptr %a100) call void @finch_str_drop(ptr %a98) - br label %match.end10755 -match.next10767: + br label %match.end11160 +match.next11172: store { ptr, i64, i64 } %t10, ptr %a126 - store { ptr, i64, i64 } { ptr @.str.7007, i64 20, i64 0 }, ptr %a127 + store { ptr, i64, i64 } { ptr @.str.7215, i64 20, i64 0 }, ptr %a127 %t128 = call i32 @finch_str_eq(ptr %a126, ptr %a127) %t129 = icmp ne i32 %t128, 0 - br i1 %t129, label %match.arm10773, label %match.next10774 -match.arm10773: + br i1 %t129, label %match.arm11178, label %match.next11179 +match.arm11178: %t130 = load %S.json.Json, ptr %a7 %t131 = call { ptr, i64, i64 } @finch.lsp.pathOf(%S.json.Json %t130) store { ptr, i64, i64 } %t131, ptr %a132 @@ -108757,21 +112782,21 @@ match.arm10773: store { ptr, i64, i64 } %t134, ptr %a135 %t136 = call i64 @finch_map_find(ptr %t133, ptr %a135, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t137 = icmp sge i64 %t136, 0 - br i1 %t137, label %then10775, label %endif10777 -then10775: + br i1 %t137, label %then11180, label %endif11182 +then11180: %t138 = load { ptr, i64, i64 }, ptr %a132 call void @finch.lsp.Server.analyse(ptr %self, { ptr, i64, i64 } %t138) - br label %endif10777 -endif10777: + br label %endif11182 +endif11182: call void @finch_str_drop(ptr %a132) - br label %match.end10755 -match.next10774: + br label %match.end11160 +match.next11179: store { ptr, i64, i64 } %t10, ptr %a139 - store { ptr, i64, i64 } { ptr @.str.7008, i64 21, i64 0 }, ptr %a140 + store { ptr, i64, i64 } { ptr @.str.7216, i64 21, i64 0 }, ptr %a140 %t141 = call i32 @finch_str_eq(ptr %a139, ptr %a140) %t142 = icmp ne i32 %t141, 0 - br i1 %t142, label %match.arm10778, label %match.next10779 -match.arm10778: + br i1 %t142, label %match.arm11183, label %match.next11184 +match.arm11183: %t143 = load %S.json.Json, ptr %a7 %t144 = call { ptr, i64, i64 } @finch.lsp.pathOf(%S.json.Json %t143) store { ptr, i64, i64 } %t144, ptr %a145 @@ -108780,8 +112805,8 @@ match.arm10778: store { ptr, i64, i64 } %t147, ptr %a148 %t149 = call i64 @finch_map_find(ptr %t146, ptr %a148, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t150 = icmp sge i64 %t149, 0 - br i1 %t150, label %remove.hit10780, label %remove.end10781 -remove.hit10780: + br i1 %t150, label %remove.hit11185, label %remove.end11186 +remove.hit11185: %t151 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t146, i32 0, i32 0 %t152 = load ptr, ptr %t151 %t153 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t152, i64 %t149 @@ -108790,15 +112815,15 @@ remove.hit10780: %t155 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t153, i32 0, i32 2 call void @finch_str_drop(ptr %t155) call void @finch_map_remove_at(ptr %t146, i64 %t149, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr null, i32 1) to i64)) - br label %remove.end10781 -remove.end10781: + br label %remove.end11186 +remove.end11186: %t156 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 3 %t157 = load { ptr, i64, i64 }, ptr %a145 store { ptr, i64, i64 } %t157, ptr %a158 %t159 = call i64 @finch_map_find(ptr %t156, ptr %a158, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t160 = icmp sge i64 %t159, 0 - br i1 %t160, label %remove.hit10782, label %remove.end10783 -remove.hit10782: + br i1 %t160, label %remove.hit11187, label %remove.end11188 +remove.hit11187: %t161 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t156, i32 0, i32 0 %t162 = load ptr, ptr %t161 %t163 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t162, i64 %t159 @@ -108807,15 +112832,15 @@ remove.hit10782: %t165 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t163, i32 0, i32 2 call void @finch.drop.S_lsp_Analysis(ptr %t165) call void @finch_map_remove_at(ptr %t156, i64 %t159, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr null, i32 1) to i64)) - br label %remove.end10783 -remove.end10783: + br label %remove.end11188 +remove.end11188: %t166 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 4 %t167 = load { ptr, i64, i64 }, ptr %a145 store { ptr, i64, i64 } %t167, ptr %a168 %t169 = call i64 @finch_map_find(ptr %t166, ptr %a168, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t170 = icmp sge i64 %t169, 0 - br i1 %t170, label %remove.hit10784, label %remove.end10785 -remove.hit10784: + br i1 %t170, label %remove.hit11189, label %remove.end11190 +remove.hit11189: %t171 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t166, i32 0, i32 0 %t172 = load ptr, ptr %t171 %t173 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t172, i64 %t169 @@ -108824,8 +112849,8 @@ remove.hit10784: %t175 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t173, i32 0, i32 2 call void @finch.drop.S_lsp_Analysis(ptr %t175) call void @finch_map_remove_at(ptr %t166, i64 %t169, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr null, i32 1) to i64)) - br label %remove.end10785 -remove.end10785: + br label %remove.end11190 +remove.end11190: %t176 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t176, ptr %a177 %t178 = load { ptr, i64, i64 }, ptr %a145 @@ -108833,64 +112858,64 @@ remove.end10785: %t180 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t179) store { ptr, i64, i64 } %t179, ptr %a181 call void @finch_str_drop(ptr %a181) - call void @finch.json.Json.set(ptr %a177, { ptr, i64, i64 } { ptr @.str.7009, i64 3, i64 0 }, %S.json.Json %t180) + call void @finch.json.Json.set(ptr %a177, { ptr, i64, i64 } { ptr @.str.7217, i64 3, i64 0 }, %S.json.Json %t180) store %S.json.Json %t180, ptr %a182 call void @finch.drop.S_json_Json(ptr %a182) %t183 = call %S.json.Json @finch.json.new_list() - call void @finch.json.Json.set(ptr %a177, { ptr, i64, i64 } { ptr @.str.7010, i64 11, i64 0 }, %S.json.Json %t183) + call void @finch.json.Json.set(ptr %a177, { ptr, i64, i64 } { ptr @.str.7218, i64 11, i64 0 }, %S.json.Json %t183) store %S.json.Json %t183, ptr %a184 call void @finch.drop.S_json_Json(ptr %a184) %t185 = load %S.json.Json, ptr %a177 - call void @finch.lsp.notify({ ptr, i64, i64 } { ptr @.str.7011, i64 31, i64 0 }, %S.json.Json %t185) + call void @finch.lsp.notify({ ptr, i64, i64 } { ptr @.str.7219, i64 31, i64 0 }, %S.json.Json %t185) call void @finch.drop.S_json_Json(ptr %a177) call void @finch_str_drop(ptr %a145) - br label %match.end10755 -match.next10779: + br label %match.end11160 +match.next11184: store { ptr, i64, i64 } %t10, ptr %a186 - store { ptr, i64, i64 } { ptr @.str.7012, i64 18, i64 0 }, ptr %a187 + store { ptr, i64, i64 } { ptr @.str.7220, i64 18, i64 0 }, ptr %a187 %t188 = call i32 @finch_str_eq(ptr %a186, ptr %a187) %t189 = icmp ne i32 %t188, 0 - br i1 %t189, label %match.arm10786, label %match.or10788 -match.or10788: + br i1 %t189, label %match.arm11191, label %match.or11193 +match.or11193: store { ptr, i64, i64 } %t10, ptr %a190 - store { ptr, i64, i64 } { ptr @.str.7013, i64 23, i64 0 }, ptr %a191 + store { ptr, i64, i64 } { ptr @.str.7221, i64 23, i64 0 }, ptr %a191 %t192 = call i32 @finch_str_eq(ptr %a190, ptr %a191) %t193 = icmp ne i32 %t192, 0 - br i1 %t193, label %match.arm10786, label %match.or10789 -match.or10789: + br i1 %t193, label %match.arm11191, label %match.or11194 +match.or11194: store { ptr, i64, i64 } %t10, ptr %a194 - store { ptr, i64, i64 } { ptr @.str.7014, i64 23, i64 0 }, ptr %a195 + store { ptr, i64, i64 } { ptr @.str.7222, i64 23, i64 0 }, ptr %a195 %t196 = call i32 @finch_str_eq(ptr %a194, ptr %a195) %t197 = icmp ne i32 %t196, 0 - br i1 %t197, label %match.arm10786, label %match.or10790 -match.or10790: + br i1 %t197, label %match.arm11191, label %match.or11195 +match.or11195: store { ptr, i64, i64 } %t10, ptr %a198 - store { ptr, i64, i64 } { ptr @.str.7015, i64 27, i64 0 }, ptr %a199 + store { ptr, i64, i64 } { ptr @.str.7223, i64 27, i64 0 }, ptr %a199 %t200 = call i32 @finch_str_eq(ptr %a198, ptr %a199) %t201 = icmp ne i32 %t200, 0 - br i1 %t201, label %match.arm10786, label %match.or10791 -match.or10791: + br i1 %t201, label %match.arm11191, label %match.or11196 +match.or11196: store { ptr, i64, i64 } %t10, ptr %a202 - store { ptr, i64, i64 } { ptr @.str.7016, i64 26, i64 0 }, ptr %a203 + store { ptr, i64, i64 } { ptr @.str.7224, i64 26, i64 0 }, ptr %a203 %t204 = call i32 @finch_str_eq(ptr %a202, ptr %a203) %t205 = icmp ne i32 %t204, 0 - br i1 %t205, label %match.arm10786, label %match.next10787 -match.arm10786: + br i1 %t205, label %match.arm11191, label %match.next11192 +match.arm11191: %t206 = load %S.json.Json, ptr %a7 %t207 = call { ptr, i64, i64 } @finch.lsp.pathOf(%S.json.Json %t206) store { ptr, i64, i64 } %t207, ptr %a208 - %t209 = call %S.json.Json @finch.json.Json.get(ptr %a7, { ptr, i64, i64 } { ptr @.str.7017, i64 8, i64 0 }) + %t209 = call %S.json.Json @finch.json.Json.get(ptr %a7, { ptr, i64, i64 } { ptr @.str.7225, i64 8, i64 0 }) store %S.json.Json %t209, ptr %a210 - %t211 = call %S.json.Json @finch.json.Json.get(ptr %a210, { ptr, i64, i64 } { ptr @.str.7018, i64 4, i64 0 }) + %t211 = call %S.json.Json @finch.json.Json.get(ptr %a210, { ptr, i64, i64 } { ptr @.str.7226, i64 4, i64 0 }) call void @finch.drop.S_json_Json(ptr %a210) store %S.json.Json %t211, ptr %a212 %t213 = call i64 @finch.json.Json.int_or(ptr %a212, i64 0) call void @finch.drop.S_json_Json(ptr %a212) %t214 = add i64 %t213, 1 store i64 %t214, ptr %a215 - %t216 = call %S.json.Json @finch.json.Json.get(ptr %a7, { ptr, i64, i64 } { ptr @.str.7019, i64 8, i64 0 }) + %t216 = call %S.json.Json @finch.json.Json.get(ptr %a7, { ptr, i64, i64 } { ptr @.str.7227, i64 8, i64 0 }) store %S.json.Json %t216, ptr %a217 - %t218 = call %S.json.Json @finch.json.Json.get(ptr %a217, { ptr, i64, i64 } { ptr @.str.7020, i64 9, i64 0 }) + %t218 = call %S.json.Json @finch.json.Json.get(ptr %a217, { ptr, i64, i64 } { ptr @.str.7228, i64 9, i64 0 }) call void @finch.drop.S_json_Json(ptr %a217) store %S.json.Json %t218, ptr %a219 %t220 = call i64 @finch.json.Json.int_or(ptr %a219, i64 0) @@ -108903,8 +112928,8 @@ match.arm10786: %t226 = call i64 @finch_map_find(ptr %t223, ptr %a225, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t227 = icmp sge i64 %t226, 0 %t228 = xor i1 %t227, true - br i1 %t228, label %then10792, label %endif10794 -then10792: + br i1 %t228, label %then11197, label %endif11199 +then11197: %t229 = load %S.json.Json, ptr %a9 %t230 = call %S.json.Json @finch.json.new_null() call void @finch.lsp.reply(%S.json.Json %t229, %S.json.Json %t230) @@ -108915,20 +112940,20 @@ then10792: call void @finch.drop.S_json_Json(ptr %a7) call void @finch_str_drop(ptr %a5) ret void -endif10794: +endif11199: %t232 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 3 %t233 = load { ptr, i64, i64 }, ptr %a208 store { ptr, i64, i64 } %t233, ptr %a234 %t235 = call i64 @finch_map_find(ptr %t232, ptr %a234, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t236 = icmp slt i64 %t235, 0 - br i1 %t236, label %map.missing10795, label %map.found10796 -map.missing10795: + br i1 %t236, label %map.missing11200, label %map.found11201 +map.missing11200: store { ptr, i64, i64 } zeroinitializer, ptr %a237 store { ptr, i64, i64 } %t233, ptr %a238 call void @finch_buf_str(ptr %a237, ptr %a238, i32 1) - call void @finch_map_missing(ptr @.str.7021, i64 842, ptr %a237) + call void @finch_map_missing(ptr @.str.7229, i64 842, ptr %a237) unreachable -map.found10796: +map.found11201: %t239 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t232, i32 0, i32 0 %t240 = load ptr, ptr %t239 %t241 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t240, i64 %t235 @@ -108938,27 +112963,27 @@ map.found10796: call void @finch.copy.S_lsp_Analysis(ptr %a245, ptr %a244) %t246 = load %S.lsp.Analysis, ptr %a245 store %S.lsp.Analysis %t246, ptr %a247 - store { ptr, i64, i64 } { ptr @.str.7022, i64 0, i64 0 }, ptr %a248 + store { ptr, i64, i64 } { ptr @.str.7230, i64 0, i64 0 }, ptr %a248 %t249 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 2 %t250 = load { ptr, i64, i64 }, ptr %a208 store { ptr, i64, i64 } %t250, ptr %a251 %t252 = call i64 @finch_map_find(ptr %t249, ptr %a251, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t253 = icmp sge i64 %t252, 0 - br i1 %t253, label %then10797, label %endif10799 -then10797: + br i1 %t253, label %then11202, label %endif11204 +then11202: %t254 = getelementptr inbounds %S.lsp.Server, ptr %self, i32 0, i32 2 %t255 = load { ptr, i64, i64 }, ptr %a208 store { ptr, i64, i64 } %t255, ptr %a256 %t257 = call i64 @finch_map_find(ptr %t254, ptr %a256, i64 ptrtoint (ptr getelementptr ({ i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr null, i32 1) to i64), i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64), i32 1) %t258 = icmp slt i64 %t257, 0 - br i1 %t258, label %map.missing10800, label %map.found10801 -map.missing10800: + br i1 %t258, label %map.missing11205, label %map.found11206 +map.missing11205: store { ptr, i64, i64 } zeroinitializer, ptr %a259 store { ptr, i64, i64 } %t255, ptr %a260 call void @finch_buf_str(ptr %a259, ptr %a260, i32 1) - call void @finch_map_missing(ptr @.str.7023, i64 845, ptr %a259) + call void @finch_map_missing(ptr @.str.7231, i64 845, ptr %a259) unreachable -map.found10801: +map.found11206: %t261 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %t254, i32 0, i32 0 %t262 = load ptr, ptr %t261 %t263 = getelementptr inbounds { i64, { ptr, i64, i64 }, { ptr, i64, i64 } }, ptr %t262, i64 %t257 @@ -108971,15 +112996,15 @@ map.found10801: store { ptr, i64, i64 } %t268, ptr %a248 store { ptr, i64, i64 } %t269, ptr %a270 call void @finch_str_drop(ptr %a270) - br label %endif10799 -endif10799: + br label %endif11204 +endif11204: %t271 = load { ptr, i64, i64 }, ptr %a5 store { ptr, i64, i64 } %t271, ptr %a272 - store { ptr, i64, i64 } { ptr @.str.7024, i64 18, i64 0 }, ptr %a273 + store { ptr, i64, i64 } { ptr @.str.7232, i64 18, i64 0 }, ptr %a273 %t274 = call i32 @finch_str_eq(ptr %a272, ptr %a273) %t275 = icmp ne i32 %t274, 0 - br i1 %t275, label %match.arm10803, label %match.next10804 -match.arm10803: + br i1 %t275, label %match.arm11208, label %match.next11209 +match.arm11208: %t276 = load %S.json.Json, ptr %a9 %t277 = load %S.lsp.Analysis, ptr %a247 %t278 = load { ptr, i64, i64 }, ptr %a208 @@ -108989,14 +113014,14 @@ match.arm10803: call void @finch.lsp.reply(%S.json.Json %t276, %S.json.Json %t281) store %S.json.Json %t281, ptr %a282 call void @finch.drop.S_json_Json(ptr %a282) - br label %match.end10802 -match.next10804: + br label %match.end11207 +match.next11209: store { ptr, i64, i64 } %t271, ptr %a283 - store { ptr, i64, i64 } { ptr @.str.7025, i64 23, i64 0 }, ptr %a284 + store { ptr, i64, i64 } { ptr @.str.7233, i64 23, i64 0 }, ptr %a284 %t285 = call i32 @finch_str_eq(ptr %a283, ptr %a284) %t286 = icmp ne i32 %t285, 0 - br i1 %t286, label %match.arm10805, label %match.next10806 -match.arm10805: + br i1 %t286, label %match.arm11210, label %match.next11211 +match.arm11210: %t287 = load %S.json.Json, ptr %a9 %t288 = load %S.lsp.Analysis, ptr %a247 %t289 = load { ptr, i64, i64 }, ptr %a208 @@ -109006,14 +113031,14 @@ match.arm10805: call void @finch.lsp.reply(%S.json.Json %t287, %S.json.Json %t292) store %S.json.Json %t292, ptr %a293 call void @finch.drop.S_json_Json(ptr %a293) - br label %match.end10802 -match.next10806: + br label %match.end11207 +match.next11211: store { ptr, i64, i64 } %t271, ptr %a294 - store { ptr, i64, i64 } { ptr @.str.7026, i64 23, i64 0 }, ptr %a295 + store { ptr, i64, i64 } { ptr @.str.7234, i64 23, i64 0 }, ptr %a295 %t296 = call i32 @finch_str_eq(ptr %a294, ptr %a295) %t297 = icmp ne i32 %t296, 0 - br i1 %t297, label %match.arm10807, label %match.next10808 -match.arm10807: + br i1 %t297, label %match.arm11212, label %match.next11213 +match.arm11212: %t298 = load %S.json.Json, ptr %a9 %t299 = load %S.lsp.Analysis, ptr %a247 %t300 = load { ptr, i64, i64 }, ptr %a248 @@ -109024,14 +113049,14 @@ match.arm10807: call void @finch.lsp.reply(%S.json.Json %t298, %S.json.Json %t304) store %S.json.Json %t304, ptr %a305 call void @finch.drop.S_json_Json(ptr %a305) - br label %match.end10802 -match.next10808: + br label %match.end11207 +match.next11213: store { ptr, i64, i64 } %t271, ptr %a306 - store { ptr, i64, i64 } { ptr @.str.7027, i64 27, i64 0 }, ptr %a307 + store { ptr, i64, i64 } { ptr @.str.7235, i64 27, i64 0 }, ptr %a307 %t308 = call i32 @finch_str_eq(ptr %a306, ptr %a307) %t309 = icmp ne i32 %t308, 0 - br i1 %t309, label %match.arm10809, label %match.next10810 -match.arm10809: + br i1 %t309, label %match.arm11214, label %match.next11215 +match.arm11214: %t310 = load %S.json.Json, ptr %a9 %t311 = load %S.lsp.Analysis, ptr %a247 %t312 = load { ptr, i64, i64 }, ptr %a208 @@ -109039,10 +113064,10 @@ match.arm10809: call void @finch.lsp.reply(%S.json.Json %t310, %S.json.Json %t313) store %S.json.Json %t313, ptr %a314 call void @finch.drop.S_json_Json(ptr %a314) - br label %match.end10802 -match.next10810: - br label %match.arm10811 -match.arm10811: + br label %match.end11207 +match.next11215: + br label %match.arm11216 +match.arm11216: %t315 = load %S.json.Json, ptr %a9 %t316 = load %S.lsp.Analysis, ptr %a247 %t317 = load { ptr, i64, i64 }, ptr %a248 @@ -109053,29 +113078,29 @@ match.arm10811: call void @finch.lsp.reply(%S.json.Json %t315, %S.json.Json %t321) store %S.json.Json %t321, ptr %a322 call void @finch.drop.S_json_Json(ptr %a322) - br label %match.end10802 -match.end10802: + br label %match.end11207 +match.end11207: call void @finch_str_drop(ptr %a248) call void @finch.drop.S_lsp_Analysis(ptr %a247) call void @finch_str_drop(ptr %a208) - br label %match.end10755 -match.next10787: - br label %match.arm10813 -match.arm10813: + br label %match.end11160 +match.next11192: + br label %match.arm11218 +match.arm11218: %t323 = getelementptr inbounds %S.json.Json, ptr %a9, i32 0, i32 0 %t324 = load i32, ptr %t323 %t325 = icmp ne i32 %t324, 0 - br i1 %t325, label %then10815, label %endif10817 -then10815: + br i1 %t325, label %then11220, label %endif11222 +then11220: %t326 = load %S.json.Json, ptr %a9 %t327 = call %S.json.Json @finch.json.new_null() call void @finch.lsp.reply(%S.json.Json %t326, %S.json.Json %t327) store %S.json.Json %t327, ptr %a328 call void @finch.drop.S_json_Json(ptr %a328) - br label %endif10817 -endif10817: - br label %match.end10755 -match.end10755: + br label %endif11222 +endif11222: + br label %match.end11160 +match.end11160: call void @finch.drop.S_json_Json(ptr %a9) call void @finch.drop.S_json_Json(ptr %a7) call void @finch_str_drop(ptr %a5) @@ -109088,31 +113113,31 @@ entry: %t1 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %a, i32 0, i32 2 %t2 = load i64, ptr %t1 store i64 0, ptr %a3 - br label %n.cond10823 -n.cond10823: + br label %n.cond11228 +n.cond11228: %t4 = load i64, ptr %a3 %t5 = icmp slt i64 %t4, %t2 - br i1 %t5, label %n.body10824, label %n.end10825 -n.body10824: + br i1 %t5, label %n.body11229, label %n.end11230 +n.body11229: %t6 = getelementptr inbounds { ptr, i64, i64, i64, ptr, i64, i64 }, ptr %a, i32 0, i32 0 %t7 = load ptr, ptr %t6 %t8 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t7, i64 %t4 %t9 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t8, i32 0, i32 0 %t10 = load i64, ptr %t9 %t11 = icmp ne i64 %t10, 0 - br i1 %t11, label %entry.live10826, label %entry.next10827 -entry.live10826: + br i1 %t11, label %entry.live11231, label %entry.next11232 +entry.live11231: %t12 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t8, i32 0, i32 1 call void @finch_str_drop(ptr %t12) %t13 = getelementptr inbounds { i64, { ptr, i64, i64 }, %S.lsp.Analysis }, ptr %t8, i32 0, i32 2 call void @finch.drop.S_lsp_Analysis(ptr %t13) - br label %entry.next10827 -entry.next10827: + br label %entry.next11232 +entry.next11232: %t14 = load i64, ptr %a3 %t15 = add i64 %t14, 1 store i64 %t15, ptr %a3 - br label %n.cond10823 -n.end10825: + br label %n.cond11228 +n.end11230: call void @finch_map_free(ptr %a) ret void } @@ -109162,7 +113187,7 @@ entry: %t6 = insertvalue %S.lsp.Server zeroinitializer, { ptr, i64, i64 } %t5, 0 %t7 = call { ptr, i64, i64 } @finch.host.tempDir() store { ptr, i64, i64 } %t7, ptr %a9 - store { ptr, i64, i64 } { ptr @.str.7028, i64 11, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.7236, i64 11, i64 0 }, ptr %a10 call void @finch_str_concat(ptr %a8, ptr %a9, ptr %a10) store { ptr, i64, i64 } %t7, ptr %a11 call void @finch_str_drop(ptr %a11) @@ -109180,27 +113205,27 @@ entry: %t21 = load { ptr, i64, i64 }, ptr %a16 %t22 = insertvalue %S.lsp.Server %t6, { ptr, i64, i64 } %t21, 1 store %S.lsp.Server %t22, ptr %a23 - br label %while.cond10818 -while.cond10818: - br label %while.body10819 -while.body10819: + br label %while.cond11223 +while.cond11223: + br label %while.body11224 +while.body11224: %t24 = call { i1, %S.json.Json, { ptr, i64, i64 } } @finch.lsp.readMessage() %t25 = extractvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t24, 0 %t26 = xor i1 %t25, true %t27 = extractvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t24, 2 %t28 = extractvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t24, 1 - br i1 %t26, label %or.failed10821, label %or.ok10822 -or.failed10821: + br i1 %t26, label %or.failed11226, label %or.ok11227 +or.failed11226: store { ptr, i64, i64 } %t27, ptr %a29 call void @finch_str_drop(ptr %a29) - br label %while.end10820 -or.ok10822: + br label %while.end11225 +or.ok11227: store %S.json.Json %t28, ptr %a30 %t31 = load %S.json.Json, ptr %a30 call void @finch.lsp.Server.answer(ptr %a23, %S.json.Json %t31) call void @finch.drop.S_json_Json(ptr %a30) - br label %while.cond10818 -while.end10820: + br label %while.cond11223 +while.end11225: %t32 = getelementptr inbounds %S.lsp.Server, ptr %a23, i32 0, i32 1 %t33 = load { ptr, i64, i64 }, ptr %t32 call void @finch.host.removeTree({ ptr, i64, i64 } %t33) @@ -109279,35 +113304,35 @@ entry: %t1 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 0 %t2 = load i32, ptr %t1 %t3 = icmp eq i32 %t2, 4 - br i1 %t3, label %match.arm10829, label %match.or10831 -match.or10831: + br i1 %t3, label %match.arm11234, label %match.or11236 +match.or11236: %t4 = icmp eq i32 %t2, 5 - br i1 %t4, label %match.arm10829, label %match.next10830 -match.arm10829: + br i1 %t4, label %match.arm11234, label %match.next11235 +match.arm11234: %t5 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 4 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t7 = load i64, ptr %t6 - br label %match.from10832 -match.from10832: - br label %match.end10828 -match.next10830: + br label %match.from11237 +match.from11237: + br label %match.end11233 +match.next11235: %t8 = icmp eq i32 %t2, 3 - br i1 %t8, label %match.arm10833, label %match.next10834 -match.arm10833: + br i1 %t8, label %match.arm11238, label %match.next11239 +match.arm11238: %t9 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 3 %t10 = getelementptr inbounds { ptr, i64, i64 }, ptr %t9, i32 0, i32 1 %t11 = load i64, ptr %t10 - br label %match.from10835 -match.from10835: - br label %match.end10828 -match.next10834: - br label %match.arm10836 -match.arm10836: - br label %match.from10838 -match.from10838: - br label %match.end10828 -match.end10828: - %t12 = phi i64 [ %t7, %match.from10832 ], [ %t11, %match.from10835 ], [ 0, %match.from10838 ] + br label %match.from11240 +match.from11240: + br label %match.end11233 +match.next11239: + br label %match.arm11241 +match.arm11241: + br label %match.from11243 +match.from11243: + br label %match.end11233 +match.end11233: + %t12 = phi i64 [ %t7, %match.from11237 ], [ %t11, %match.from11240 ], [ 0, %match.from11243 ] ret i64 %t12 } @@ -109322,10 +113347,10 @@ entry: %t2 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 0 %t3 = load i32, ptr %t2 %t4 = icmp eq i32 %t3, 5 - br label %logic.from10839 -logic.from10839: - br i1 %t4, label %logic.rhs10840, label %logic.end10841 -logic.rhs10840: + br label %logic.from11244 +logic.from11244: + br i1 %t4, label %logic.rhs11245, label %logic.end11246 +logic.rhs11245: %t5 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 5 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t7 = load { ptr, i64, i64 }, ptr %a1 @@ -109333,34 +113358,34 @@ logic.rhs10840: %t9 = load i64, ptr %t6 %t10 = load ptr, ptr %t5 store i64 0, ptr %a11 - br label %find.cond10842 -find.cond10842: + br label %find.cond11247 +find.cond11247: %t12 = load i64, ptr %a11 %t13 = icmp slt i64 %t12, %t9 - br i1 %t13, label %find.body10843, label %find.end10846 -find.body10843: + br i1 %t13, label %find.body11248, label %find.end11251 +find.body11248: %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %t10, i64 %t12 %t15 = load { ptr, i64, i64 }, ptr %t14 store { ptr, i64, i64 } %t15, ptr %a16 store { ptr, i64, i64 } %t7, ptr %a17 %t18 = call i32 @finch_str_eq(ptr %a16, ptr %a17) %t19 = icmp ne i32 %t18, 0 - br i1 %t19, label %find.hit10844, label %find.next10845 -find.hit10844: + br i1 %t19, label %find.hit11249, label %find.next11250 +find.hit11249: store i64 %t12, ptr %a8 - br label %find.end10846 -find.next10845: + br label %find.end11251 +find.next11250: %t20 = add i64 %t12, 1 store i64 %t20, ptr %a11 - br label %find.cond10842 -find.end10846: + br label %find.cond11247 +find.end11251: %t21 = load i64, ptr %a8 %t22 = icmp sge i64 %t21, 0 - br label %logic.rend10847 -logic.rend10847: - br label %logic.end10841 -logic.end10841: - %t23 = phi i1 [ false, %logic.from10839 ], [ %t22, %logic.rend10847 ] + br label %logic.rend11252 +logic.rend11252: + br label %logic.end11246 +logic.end11246: + %t23 = phi i1 [ false, %logic.from11244 ], [ %t22, %logic.rend11252 ] ret i1 %t23 } @@ -109373,20 +113398,20 @@ entry: %t3 = getelementptr inbounds { ptr, i64, i64 }, ptr %src, i32 0, i32 1 %t4 = load i64, ptr %t3 store i64 0, ptr %a5 - br label %n.cond10861 -n.cond10861: + br label %n.cond11266 +n.cond11266: %t6 = load i64, ptr %a5 %t7 = icmp slt i64 %t6, %t4 - br i1 %t7, label %n.body10862, label %n.end10863 -n.body10862: + br i1 %t7, label %n.body11267, label %n.end11268 +n.body11267: %t8 = getelementptr inbounds %S.json.Json, ptr %t1, i64 %t6 %t9 = getelementptr inbounds %S.json.Json, ptr %t2, i64 %t6 call void @finch.copy.S_json_Json(ptr %t8, ptr %t9) %t10 = load i64, ptr %a5 %t11 = add i64 %t10, 1 store i64 %t11, ptr %a5 - br label %n.cond10861 -n.end10863: + br label %n.cond11266 +n.end11268: ret void } @@ -109421,11 +113446,11 @@ entry: %t2 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 0 %t3 = load i32, ptr %t2 %t4 = icmp ne i32 %t3, 5 - br i1 %t4, label %then10848, label %endif10850 -then10848: + br i1 %t4, label %then11253, label %endif11255 +then11253: %t5 = call %S.json.Json @finch.json.new_null() ret %S.json.Json %t5 -endif10850: +endif11255: %t6 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 5 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %t6, i32 0, i32 1 %t8 = load { ptr, i64, i64 }, ptr %a1 @@ -109433,46 +113458,46 @@ endif10850: %t10 = load i64, ptr %t7 %t11 = load ptr, ptr %t6 store i64 0, ptr %a12 - br label %find.cond10851 -find.cond10851: + br label %find.cond11256 +find.cond11256: %t13 = load i64, ptr %a12 %t14 = icmp slt i64 %t13, %t10 - br i1 %t14, label %find.body10852, label %find.end10855 -find.body10852: + br i1 %t14, label %find.body11257, label %find.end11260 +find.body11257: %t15 = getelementptr inbounds { ptr, i64, i64 }, ptr %t11, i64 %t13 %t16 = load { ptr, i64, i64 }, ptr %t15 store { ptr, i64, i64 } %t16, ptr %a17 store { ptr, i64, i64 } %t8, ptr %a18 %t19 = call i32 @finch_str_eq(ptr %a17, ptr %a18) %t20 = icmp ne i32 %t19, 0 - br i1 %t20, label %find.hit10853, label %find.next10854 -find.hit10853: + br i1 %t20, label %find.hit11258, label %find.next11259 +find.hit11258: store i64 %t13, ptr %a9 - br label %find.end10855 -find.next10854: + br label %find.end11260 +find.next11259: %t21 = add i64 %t13, 1 store i64 %t21, ptr %a12 - br label %find.cond10851 -find.end10855: + br label %find.cond11256 +find.end11260: %t22 = load i64, ptr %a9 store i64 %t22, ptr %a23 %t24 = load i64, ptr %a23 %t25 = icmp slt i64 %t24, 0 - br i1 %t25, label %then10856, label %endif10858 -then10856: + br i1 %t25, label %then11261, label %endif11263 +then11261: %t26 = call %S.json.Json @finch.json.new_null() ret %S.json.Json %t26 -endif10858: +endif11263: %t27 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 4 %t28 = load i64, ptr %a23 %t29 = load { ptr, i64, i64 }, ptr %t27 %t30 = extractvalue { ptr, i64, i64 } %t29, 1 %t31 = icmp uge i64 %t28, %t30 - br i1 %t31, label %range10859, label %inrange10860 -range10859: - call void @finch_panic_index(ptr @.str.7029, i64 84, i64 %t28, i64 %t30) + br i1 %t31, label %range11264, label %inrange11265 +range11264: + call void @finch_panic_index(ptr @.str.7237, i64 84, i64 %t28, i64 %t30) unreachable -inrange10860: +inrange11265: %t32 = extractvalue { ptr, i64, i64 } %t29, 0 %t33 = getelementptr inbounds %S.json.Json, ptr %t32, i64 %t28 %t34 = load %S.json.Json, ptr %t33 @@ -109491,46 +113516,46 @@ entry: %t2 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 0 %t3 = load i32, ptr %t2 %t4 = icmp ne i32 %t3, 4 - br label %logic.from10864 -logic.from10864: - br i1 %t4, label %logic.end10866, label %logic.rhs10865 -logic.rhs10865: + br label %logic.from11269 +logic.from11269: + br i1 %t4, label %logic.end11271, label %logic.rhs11270 +logic.rhs11270: %t5 = load i64, ptr %a1 %t6 = icmp slt i64 %t5, 0 - br label %logic.rend10867 -logic.rend10867: - br label %logic.end10866 -logic.end10866: - %t7 = phi i1 [ true, %logic.from10864 ], [ %t6, %logic.rend10867 ] - br label %logic.from10868 -logic.from10868: - br i1 %t7, label %logic.end10870, label %logic.rhs10869 -logic.rhs10869: + br label %logic.rend11272 +logic.rend11272: + br label %logic.end11271 +logic.end11271: + %t7 = phi i1 [ true, %logic.from11269 ], [ %t6, %logic.rend11272 ] + br label %logic.from11273 +logic.from11273: + br i1 %t7, label %logic.end11275, label %logic.rhs11274 +logic.rhs11274: %t8 = load i64, ptr %a1 %t9 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 4 %t10 = getelementptr inbounds { ptr, i64, i64 }, ptr %t9, i32 0, i32 1 %t11 = load i64, ptr %t10 %t12 = icmp sge i64 %t8, %t11 - br label %logic.rend10871 -logic.rend10871: - br label %logic.end10870 -logic.end10870: - %t13 = phi i1 [ true, %logic.from10868 ], [ %t12, %logic.rend10871 ] - br i1 %t13, label %then10872, label %endif10874 -then10872: + br label %logic.rend11276 +logic.rend11276: + br label %logic.end11275 +logic.end11275: + %t13 = phi i1 [ true, %logic.from11273 ], [ %t12, %logic.rend11276 ] + br i1 %t13, label %then11277, label %endif11279 +then11277: %t14 = call %S.json.Json @finch.json.new_null() ret %S.json.Json %t14 -endif10874: +endif11279: %t15 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 4 %t16 = load i64, ptr %a1 %t17 = load { ptr, i64, i64 }, ptr %t15 %t18 = extractvalue { ptr, i64, i64 } %t17, 1 %t19 = icmp uge i64 %t16, %t18 - br i1 %t19, label %range10875, label %inrange10876 -range10875: - call void @finch_panic_index(ptr @.str.7030, i64 92, i64 %t16, i64 %t18) + br i1 %t19, label %range11280, label %inrange11281 +range11280: + call void @finch_panic_index(ptr @.str.7238, i64 92, i64 %t16, i64 %t18) unreachable -inrange10876: +inrange11281: %t20 = extractvalue { ptr, i64, i64 } %t17, 0 %t21 = getelementptr inbounds %S.json.Json, ptr %t20, i64 %t16 %t22 = load %S.json.Json, ptr %t21 @@ -109551,15 +113576,15 @@ entry: %t2 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 0 %t3 = load i32, ptr %t2 %t4 = icmp eq i32 %t3, 3 - br i1 %t4, label %then10877, label %endif10879 -then10877: + br i1 %t4, label %then11282, label %endif11284 +then11282: %t5 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 3 %t6 = load { ptr, i64, i64 }, ptr %t5 store { ptr, i64, i64 } %t6, ptr %a7 call void @finch_str_copy(ptr %a8, ptr %a7) %t9 = load { ptr, i64, i64 }, ptr %a8 ret { ptr, i64, i64 } %t9 -endif10879: +endif11284: %t10 = load { ptr, i64, i64 }, ptr %a1 store { ptr, i64, i64 } %t10, ptr %a11 call void @finch_str_copy(ptr %a12, ptr %a11) @@ -109574,12 +113599,12 @@ entry: %t2 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 0 %t3 = load i32, ptr %t2 %t4 = icmp eq i32 %t3, 2 - br i1 %t4, label %then10880, label %endif10882 -then10880: + br i1 %t4, label %then11285, label %endif11287 +then11285: %t5 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 2 %t6 = load double, ptr %t5 ret double %t6 -endif10882: +endif11287: %t7 = load double, ptr %a1 ret double %t7 } @@ -109591,13 +113616,13 @@ entry: %t2 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 0 %t3 = load i32, ptr %t2 %t4 = icmp eq i32 %t3, 2 - br i1 %t4, label %then10883, label %endif10885 -then10883: + br i1 %t4, label %then11288, label %endif11290 +then11288: %t5 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 2 %t6 = load double, ptr %t5 %t7 = fptosi double %t6 to i64 ret i64 %t7 -endif10885: +endif11290: %t8 = load i64, ptr %a1 ret i64 %t8 } @@ -109609,12 +113634,12 @@ entry: %t2 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 0 %t3 = load i32, ptr %t2 %t4 = icmp eq i32 %t3, 1 - br i1 %t4, label %then10886, label %endif10888 -then10886: + br i1 %t4, label %then11291, label %endif11293 +then11291: %t5 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 1 %t6 = load i1, ptr %t5 ret i1 %t6 -endif10888: +endif11293: %t7 = load i1, ptr %a1 ret i1 %t7 } @@ -109678,44 +113703,44 @@ entry: %t7 = load i64, ptr %t4 %t8 = load ptr, ptr %t3 store i64 0, ptr %a9 - br label %find.cond10889 -find.cond10889: + br label %find.cond11294 +find.cond11294: %t10 = load i64, ptr %a9 %t11 = icmp slt i64 %t10, %t7 - br i1 %t11, label %find.body10890, label %find.end10893 -find.body10890: + br i1 %t11, label %find.body11295, label %find.end11298 +find.body11295: %t12 = getelementptr inbounds { ptr, i64, i64 }, ptr %t8, i64 %t10 %t13 = load { ptr, i64, i64 }, ptr %t12 store { ptr, i64, i64 } %t13, ptr %a14 store { ptr, i64, i64 } %t5, ptr %a15 %t16 = call i32 @finch_str_eq(ptr %a14, ptr %a15) %t17 = icmp ne i32 %t16, 0 - br i1 %t17, label %find.hit10891, label %find.next10892 -find.hit10891: + br i1 %t17, label %find.hit11296, label %find.next11297 +find.hit11296: store i64 %t10, ptr %a6 - br label %find.end10893 -find.next10892: + br label %find.end11298 +find.next11297: %t18 = add i64 %t10, 1 store i64 %t18, ptr %a9 - br label %find.cond10889 -find.end10893: + br label %find.cond11294 +find.end11298: %t19 = load i64, ptr %a6 store i64 %t19, ptr %a20 %t21 = load i64, ptr %a20 %t22 = icmp sge i64 %t21, 0 - br i1 %t22, label %then10894, label %endif10896 -then10894: + br i1 %t22, label %then11299, label %endif11301 +then11299: %t23 = load %S.json.Json, ptr %a2 %t24 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 4 %t25 = load i64, ptr %a20 %t26 = load { ptr, i64, i64 }, ptr %t24 %t27 = extractvalue { ptr, i64, i64 } %t26, 1 %t28 = icmp uge i64 %t25, %t27 - br i1 %t28, label %range10897, label %inrange10898 -range10897: - call void @finch_panic_index(ptr @.str.7031, i64 140, i64 %t25, i64 %t27) + br i1 %t28, label %range11302, label %inrange11303 +range11302: + call void @finch_panic_index(ptr @.str.7239, i64 140, i64 %t25, i64 %t27) unreachable -inrange10898: +inrange11303: %t29 = extractvalue { ptr, i64, i64 } %t26, 0 %t30 = getelementptr inbounds %S.json.Json, ptr %t29, i64 %t25 store %S.json.Json %t23, ptr %a31 @@ -109726,7 +113751,7 @@ inrange10898: store %S.json.Json %t34, ptr %a35 call void @finch.drop.S_json_Json(ptr %a35) ret void -endif10896: +endif11301: %t36 = getelementptr inbounds %S.json.Json, ptr %self, i32 0, i32 5 %t37 = getelementptr inbounds { ptr, i64, i64 }, ptr %t36, i32 0, i32 1 %t38 = load { ptr, i64, i64 }, ptr %a1 @@ -109779,20 +113804,20 @@ entry: %t2 = mul i64 1, ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64) %t3 = call ptr @finch_alloc(i64 %t2) %t4 = getelementptr inbounds { ptr, i64, i64 }, ptr %t3, i64 0 - store { ptr, i64, i64 } { ptr @.str.7032, i64 1, i64 0 }, ptr %t4 + store { ptr, i64, i64 } { ptr @.str.7240, i64 1, i64 0 }, ptr %t4 %t5 = insertvalue { ptr, i64, i64 } undef, ptr %t3, 0 %t6 = insertvalue { ptr, i64, i64 } %t5, i64 1, 1 %t7 = insertvalue { ptr, i64, i64 } %t6, i64 1, 2 store { ptr, i64, i64 } %t7, ptr %a8 store i64 0, ptr %a9 - br label %each.cond10899 -each.cond10899: + br label %each.cond11304 +each.cond11304: %t10 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t11 = load i64, ptr %t10 %t12 = load i64, ptr %a9 %t13 = icmp slt i64 %t12, %t11 - br i1 %t13, label %each.body10900, label %each.end10902 -each.body10900: + br i1 %t13, label %each.body11305, label %each.end11307 +each.body11305: %t14 = load ptr, ptr %a1 %t15 = getelementptr inbounds i8, ptr %t14, i64 %t12 %t16 = load i8, ptr %t15 @@ -109802,83 +113827,83 @@ each.body10900: store i64 %t19, ptr %a20 %t21 = load i8, ptr %a17 %t22 = icmp eq i8 %t21, 34 - br i1 %t22, label %then10903, label %else10904 -then10903: + br i1 %t22, label %then11308, label %else11309 +then11308: %t23 = getelementptr inbounds { ptr, i64, i64 }, ptr %a8, i32 0, i32 1 %t24 = load i64, ptr %t23 %t25 = add i64 %t24, 1 call void @finch_arr_reserve(ptr %a8, i64 %t25, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t26 = load ptr, ptr %a8 %t27 = getelementptr inbounds { ptr, i64, i64 }, ptr %t26, i64 %t24 - store { ptr, i64, i64 } { ptr @.str.7033, i64 2, i64 0 }, ptr %t27 + store { ptr, i64, i64 } { ptr @.str.7241, i64 2, i64 0 }, ptr %t27 store i64 %t25, ptr %t23 - br label %endif10905 -else10904: + br label %endif11310 +else11309: %t28 = load i8, ptr %a17 %t29 = icmp eq i8 %t28, 92 - br i1 %t29, label %then10906, label %else10907 -then10906: + br i1 %t29, label %then11311, label %else11312 +then11311: %t30 = getelementptr inbounds { ptr, i64, i64 }, ptr %a8, i32 0, i32 1 %t31 = load i64, ptr %t30 %t32 = add i64 %t31, 1 call void @finch_arr_reserve(ptr %a8, i64 %t32, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t33 = load ptr, ptr %a8 %t34 = getelementptr inbounds { ptr, i64, i64 }, ptr %t33, i64 %t31 - store { ptr, i64, i64 } { ptr @.str.7034, i64 2, i64 0 }, ptr %t34 + store { ptr, i64, i64 } { ptr @.str.7242, i64 2, i64 0 }, ptr %t34 store i64 %t32, ptr %t30 - br label %endif10908 -else10907: + br label %endif11313 +else11312: %t35 = load i8, ptr %a17 %t36 = icmp eq i8 %t35, 10 - br i1 %t36, label %then10909, label %else10910 -then10909: + br i1 %t36, label %then11314, label %else11315 +then11314: %t37 = getelementptr inbounds { ptr, i64, i64 }, ptr %a8, i32 0, i32 1 %t38 = load i64, ptr %t37 %t39 = add i64 %t38, 1 call void @finch_arr_reserve(ptr %a8, i64 %t39, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t40 = load ptr, ptr %a8 %t41 = getelementptr inbounds { ptr, i64, i64 }, ptr %t40, i64 %t38 - store { ptr, i64, i64 } { ptr @.str.7035, i64 2, i64 0 }, ptr %t41 + store { ptr, i64, i64 } { ptr @.str.7243, i64 2, i64 0 }, ptr %t41 store i64 %t39, ptr %t37 - br label %endif10911 -else10910: + br label %endif11316 +else11315: %t42 = load i8, ptr %a17 %t43 = icmp eq i8 %t42, 13 - br i1 %t43, label %then10912, label %else10913 -then10912: + br i1 %t43, label %then11317, label %else11318 +then11317: %t44 = getelementptr inbounds { ptr, i64, i64 }, ptr %a8, i32 0, i32 1 %t45 = load i64, ptr %t44 %t46 = add i64 %t45, 1 call void @finch_arr_reserve(ptr %a8, i64 %t46, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t47 = load ptr, ptr %a8 %t48 = getelementptr inbounds { ptr, i64, i64 }, ptr %t47, i64 %t45 - store { ptr, i64, i64 } { ptr @.str.7036, i64 2, i64 0 }, ptr %t48 + store { ptr, i64, i64 } { ptr @.str.7244, i64 2, i64 0 }, ptr %t48 store i64 %t46, ptr %t44 - br label %endif10914 -else10913: + br label %endif11319 +else11318: %t49 = load i8, ptr %a17 %t50 = icmp eq i8 %t49, 9 - br i1 %t50, label %then10915, label %else10916 -then10915: + br i1 %t50, label %then11320, label %else11321 +then11320: %t51 = getelementptr inbounds { ptr, i64, i64 }, ptr %a8, i32 0, i32 1 %t52 = load i64, ptr %t51 %t53 = add i64 %t52, 1 call void @finch_arr_reserve(ptr %a8, i64 %t53, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t54 = load ptr, ptr %a8 %t55 = getelementptr inbounds { ptr, i64, i64 }, ptr %t54, i64 %t52 - store { ptr, i64, i64 } { ptr @.str.7037, i64 2, i64 0 }, ptr %t55 + store { ptr, i64, i64 } { ptr @.str.7245, i64 2, i64 0 }, ptr %t55 store i64 %t53, ptr %t51 - br label %endif10917 -else10916: + br label %endif11322 +else11321: %t56 = load i64, ptr %a20 %t57 = icmp slt i64 %t56, 32 - br i1 %t57, label %then10918, label %else10919 -then10918: + br i1 %t57, label %then11323, label %else11324 +then11323: %t58 = getelementptr inbounds { ptr, i64, i64 }, ptr %a8, i32 0, i32 1 %t59 = load i64, ptr %a20 %t60 = sdiv i64 %t59, 16 %t61 = call { ptr, i64, i64 } @finch.json.hexdigit(i64 %t60) - store { ptr, i64, i64 } { ptr @.str.7038, i64 4, i64 0 }, ptr %a63 + store { ptr, i64, i64 } { ptr @.str.7246, i64 4, i64 0 }, ptr %a63 store { ptr, i64, i64 } %t61, ptr %a64 call void @finch_str_concat(ptr %a62, ptr %a63, ptr %a64) store { ptr, i64, i64 } %t61, ptr %a65 @@ -109902,8 +113927,8 @@ then10918: %t79 = getelementptr inbounds { ptr, i64, i64 }, ptr %t78, i64 %t76 store { ptr, i64, i64 } %t75, ptr %t79 store i64 %t77, ptr %t58 - br label %endif10920 -else10919: + br label %endif11325 +else11324: %t80 = getelementptr inbounds { ptr, i64, i64 }, ptr %a8, i32 0, i32 1 %t81 = load i8, ptr %a17 call void @finch_str_from_char(ptr %a82, i8 signext %t81) @@ -109915,35 +113940,35 @@ else10919: %t87 = getelementptr inbounds { ptr, i64, i64 }, ptr %t86, i64 %t84 store { ptr, i64, i64 } %t83, ptr %t87 store i64 %t85, ptr %t80 - br label %endif10920 -endif10920: - br label %endif10917 -endif10917: - br label %endif10914 -endif10914: - br label %endif10911 -endif10911: - br label %endif10908 -endif10908: - br label %endif10905 -endif10905: - br label %each.step10901 -each.step10901: + br label %endif11325 +endif11325: + br label %endif11322 +endif11322: + br label %endif11319 +endif11319: + br label %endif11316 +endif11316: + br label %endif11313 +endif11313: + br label %endif11310 +endif11310: + br label %each.step11306 +each.step11306: %t88 = load i64, ptr %a9 %t89 = add i64 %t88, 1 store i64 %t89, ptr %a9 - br label %each.cond10899 -each.end10902: + br label %each.cond11304 +each.end11307: %t90 = getelementptr inbounds { ptr, i64, i64 }, ptr %a8, i32 0, i32 1 %t91 = load i64, ptr %t90 %t92 = add i64 %t91, 1 call void @finch_arr_reserve(ptr %a8, i64 %t92, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t93 = load ptr, ptr %a8 %t94 = getelementptr inbounds { ptr, i64, i64 }, ptr %t93, i64 %t91 - store { ptr, i64, i64 } { ptr @.str.7039, i64 1, i64 0 }, ptr %t94 + store { ptr, i64, i64 } { ptr @.str.7247, i64 1, i64 0 }, ptr %t94 store i64 %t92, ptr %t90 %t95 = getelementptr inbounds { ptr, i64, i64 }, ptr %a8, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.7040, i64 0, i64 0 }, ptr %a96 + store { ptr, i64, i64 } { ptr @.str.7248, i64 0, i64 0 }, ptr %a96 call void @finch_str_join(ptr %a97, ptr %a8, ptr %a96) %t98 = load { ptr, i64, i64 }, ptr %a97 call void @finch.drop.arr_str(ptr %a8) @@ -109956,16 +113981,16 @@ entry: %a2 = alloca { ptr, i64, i64 }, align 16 %a10 = alloca { ptr, i64, i64 }, align 16 store i64 %p0, ptr %a1 - store { ptr, i64, i64 } { ptr @.str.7041, i64 16, i64 0 }, ptr %a2 + store { ptr, i64, i64 } { ptr @.str.7249, i64 16, i64 0 }, ptr %a2 %t3 = load i64, ptr %a1 %t4 = load { ptr, i64, i64 }, ptr %a2 %t5 = extractvalue { ptr, i64, i64 } %t4, 1 %t6 = icmp uge i64 %t3, %t5 - br i1 %t6, label %range10921, label %inrange10922 -range10921: - call void @finch_panic_index(ptr @.str.7042, i64 175, i64 %t3, i64 %t5) + br i1 %t6, label %range11326, label %inrange11327 +range11326: + call void @finch_panic_index(ptr @.str.7250, i64 175, i64 %t3, i64 %t5) unreachable -inrange10922: +inrange11327: %t7 = extractvalue { ptr, i64, i64 } %t4, 0 %t8 = getelementptr inbounds i8, ptr %t7, i64 %t3 %t9 = load i8, ptr %t8 @@ -109986,37 +114011,37 @@ entry: %t4 = fptosi double %t3 to i64 %t5 = sitofp i64 %t4 to double %t6 = fcmp oeq double %t2, %t5 - br label %logic.from10923 -logic.from10923: - br i1 %t6, label %logic.rhs10924, label %logic.end10925 -logic.rhs10924: + br label %logic.from11328 +logic.from11328: + br i1 %t6, label %logic.rhs11329, label %logic.end11330 +logic.rhs11329: %t7 = load double, ptr %a1 %t8 = fneg double 1000000000000000.0 %t9 = fcmp ogt double %t7, %t8 - br label %logic.rend10926 -logic.rend10926: - br label %logic.end10925 -logic.end10925: - %t10 = phi i1 [ false, %logic.from10923 ], [ %t9, %logic.rend10926 ] - br label %logic.from10927 -logic.from10927: - br i1 %t10, label %logic.rhs10928, label %logic.end10929 -logic.rhs10928: + br label %logic.rend11331 +logic.rend11331: + br label %logic.end11330 +logic.end11330: + %t10 = phi i1 [ false, %logic.from11328 ], [ %t9, %logic.rend11331 ] + br label %logic.from11332 +logic.from11332: + br i1 %t10, label %logic.rhs11333, label %logic.end11334 +logic.rhs11333: %t11 = load double, ptr %a1 %t12 = fcmp olt double %t11, 1000000000000000.0 - br label %logic.rend10930 -logic.rend10930: - br label %logic.end10929 -logic.end10929: - %t13 = phi i1 [ false, %logic.from10927 ], [ %t12, %logic.rend10930 ] - br i1 %t13, label %then10931, label %endif10933 -then10931: + br label %logic.rend11335 +logic.rend11335: + br label %logic.end11334 +logic.end11334: + %t13 = phi i1 [ false, %logic.from11332 ], [ %t12, %logic.rend11335 ] + br i1 %t13, label %then11336, label %endif11338 +then11336: %t14 = load double, ptr %a1 %t15 = fptosi double %t14 to i64 call void @finch_str_from_int(ptr %a16, i64 %t15) %t17 = load { ptr, i64, i64 }, ptr %a16 ret { ptr, i64, i64 } %t17 -endif10933: +endif11338: %t18 = load double, ptr %a1 call void @finch_str_from_float(ptr %a19, double %t18) %t20 = load { ptr, i64, i64 }, ptr %a19 @@ -110085,17 +114110,17 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 store { ptr, i64, i64 } %p2, ptr %a3 store ptr %p3, ptr %a4 - store { ptr, i64, i64 } { ptr @.str.7043, i64 0, i64 0 }, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.7044, i64 0, i64 0 }, ptr %a6 - store { ptr, i64, i64 } { ptr @.str.7045, i64 1, i64 0 }, ptr %a7 - store { ptr, i64, i64 } { ptr @.str.7046, i64 1, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.7251, i64 0, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.7252, i64 0, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.7253, i64 1, i64 0 }, ptr %a7 + store { ptr, i64, i64 } { ptr @.str.7254, i64 1, i64 0 }, ptr %a8 %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t10 = load i64, ptr %t9 %t11 = icmp sgt i64 %t10, 0 - br i1 %t11, label %then10934, label %endif10936 -then10934: + br i1 %t11, label %then11339, label %endif11341 +then11339: %t12 = load { ptr, i64, i64 }, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.7047, i64 1, i64 0 }, ptr %a5 + store { ptr, i64, i64 } { ptr @.str.7255, i64 1, i64 0 }, ptr %a5 store { ptr, i64, i64 } %t12, ptr %a13 call void @finch_str_drop(ptr %a13) %t14 = load { ptr, i64, i64 }, ptr %a3 @@ -110109,23 +114134,23 @@ then10934: store { ptr, i64, i64 } %t20, ptr %a21 call void @finch_str_drop(ptr %a21) %t22 = load { ptr, i64, i64 }, ptr %a8 - store { ptr, i64, i64 } { ptr @.str.7048, i64 2, i64 0 }, ptr %a8 + store { ptr, i64, i64 } { ptr @.str.7256, i64 2, i64 0 }, ptr %a8 store { ptr, i64, i64 } %t22, ptr %a23 call void @finch_str_drop(ptr %a23) - br label %endif10936 -endif10936: + br label %endif11341 +endif11341: %t24 = getelementptr inbounds %S.json.Json, ptr %a1, i32 0, i32 0 %t25 = load i32, ptr %t24 %t26 = icmp eq i32 %t25, 0 - br i1 %t26, label %match.arm10938, label %match.next10939 -match.arm10938: + br i1 %t26, label %match.arm11343, label %match.next11344 +match.arm11343: %t27 = load ptr, ptr %a4 %t28 = icmp eq ptr %t27, null - br i1 %t28, label %panic10940, label %ok10941 -panic10940: - call void @finch_panic(ptr @.str.7049, i64 200, ptr @.str.7050) + br i1 %t28, label %panic11345, label %ok11346 +panic11345: + call void @finch_panic(ptr @.str.7257, i64 200, ptr @.str.7258) unreachable -ok10941: +ok11346: %t29 = getelementptr inbounds %S.json.Writer, ptr %t27, i32 0, i32 0 %t30 = getelementptr inbounds { ptr, i64, i64 }, ptr %t29, i32 0, i32 1 %t31 = load i64, ptr %t30 @@ -110133,24 +114158,24 @@ ok10941: call void @finch_arr_reserve(ptr %t29, i64 %t32, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t33 = load ptr, ptr %t29 %t34 = getelementptr inbounds { ptr, i64, i64 }, ptr %t33, i64 %t31 - store { ptr, i64, i64 } { ptr @.str.7051, i64 4, i64 0 }, ptr %t34 + store { ptr, i64, i64 } { ptr @.str.7259, i64 4, i64 0 }, ptr %t34 store i64 %t32, ptr %t30 - br label %match.end10937 -match.next10939: + br label %match.end11342 +match.next11344: %t35 = icmp eq i32 %t25, 1 - br i1 %t35, label %match.arm10942, label %match.next10943 -match.arm10942: + br i1 %t35, label %match.arm11347, label %match.next11348 +match.arm11347: %t36 = getelementptr inbounds %S.json.Json, ptr %a1, i32 0, i32 1 %t37 = load i1, ptr %t36 - br i1 %t37, label %then10944, label %else10945 -then10944: + br i1 %t37, label %then11349, label %else11350 +then11349: %t38 = load ptr, ptr %a4 %t39 = icmp eq ptr %t38, null - br i1 %t39, label %panic10947, label %ok10948 -panic10947: - call void @finch_panic(ptr @.str.7052, i64 203, ptr @.str.7053) + br i1 %t39, label %panic11352, label %ok11353 +panic11352: + call void @finch_panic(ptr @.str.7260, i64 203, ptr @.str.7261) unreachable -ok10948: +ok11353: %t40 = getelementptr inbounds %S.json.Writer, ptr %t38, i32 0, i32 0 %t41 = getelementptr inbounds { ptr, i64, i64 }, ptr %t40, i32 0, i32 1 %t42 = load i64, ptr %t41 @@ -110158,17 +114183,17 @@ ok10948: call void @finch_arr_reserve(ptr %t40, i64 %t43, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t44 = load ptr, ptr %t40 %t45 = getelementptr inbounds { ptr, i64, i64 }, ptr %t44, i64 %t42 - store { ptr, i64, i64 } { ptr @.str.7054, i64 4, i64 0 }, ptr %t45 + store { ptr, i64, i64 } { ptr @.str.7262, i64 4, i64 0 }, ptr %t45 store i64 %t43, ptr %t41 - br label %endif10946 -else10945: + br label %endif11351 +else11350: %t46 = load ptr, ptr %a4 %t47 = icmp eq ptr %t46, null - br i1 %t47, label %panic10949, label %ok10950 -panic10949: - call void @finch_panic(ptr @.str.7055, i64 205, ptr @.str.7056) + br i1 %t47, label %panic11354, label %ok11355 +panic11354: + call void @finch_panic(ptr @.str.7263, i64 205, ptr @.str.7264) unreachable -ok10950: +ok11355: %t48 = getelementptr inbounds %S.json.Writer, ptr %t46, i32 0, i32 0 %t49 = getelementptr inbounds { ptr, i64, i64 }, ptr %t48, i32 0, i32 1 %t50 = load i64, ptr %t49 @@ -110176,22 +114201,22 @@ ok10950: call void @finch_arr_reserve(ptr %t48, i64 %t51, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t52 = load ptr, ptr %t48 %t53 = getelementptr inbounds { ptr, i64, i64 }, ptr %t52, i64 %t50 - store { ptr, i64, i64 } { ptr @.str.7057, i64 5, i64 0 }, ptr %t53 + store { ptr, i64, i64 } { ptr @.str.7265, i64 5, i64 0 }, ptr %t53 store i64 %t51, ptr %t49 - br label %endif10946 -endif10946: - br label %match.end10937 -match.next10943: + br label %endif11351 +endif11351: + br label %match.end11342 +match.next11348: %t54 = icmp eq i32 %t25, 2 - br i1 %t54, label %match.arm10951, label %match.next10952 -match.arm10951: + br i1 %t54, label %match.arm11356, label %match.next11357 +match.arm11356: %t55 = load ptr, ptr %a4 %t56 = icmp eq ptr %t55, null - br i1 %t56, label %panic10953, label %ok10954 -panic10953: - call void @finch_panic(ptr @.str.7058, i64 208, ptr @.str.7059) + br i1 %t56, label %panic11358, label %ok11359 +panic11358: + call void @finch_panic(ptr @.str.7266, i64 208, ptr @.str.7267) unreachable -ok10954: +ok11359: %t57 = getelementptr inbounds %S.json.Writer, ptr %t55, i32 0, i32 0 %t58 = getelementptr inbounds { ptr, i64, i64 }, ptr %t57, i32 0, i32 1 %t59 = getelementptr inbounds %S.json.Json, ptr %a1, i32 0, i32 2 @@ -110204,18 +114229,18 @@ ok10954: %t65 = getelementptr inbounds { ptr, i64, i64 }, ptr %t64, i64 %t62 store { ptr, i64, i64 } %t61, ptr %t65 store i64 %t63, ptr %t58 - br label %match.end10937 -match.next10952: + br label %match.end11342 +match.next11357: %t66 = icmp eq i32 %t25, 3 - br i1 %t66, label %match.arm10955, label %match.next10956 -match.arm10955: + br i1 %t66, label %match.arm11360, label %match.next11361 +match.arm11360: %t67 = load ptr, ptr %a4 %t68 = icmp eq ptr %t67, null - br i1 %t68, label %panic10957, label %ok10958 -panic10957: - call void @finch_panic(ptr @.str.7060, i64 209, ptr @.str.7061) + br i1 %t68, label %panic11362, label %ok11363 +panic11362: + call void @finch_panic(ptr @.str.7268, i64 209, ptr @.str.7269) unreachable -ok10958: +ok11363: %t69 = getelementptr inbounds %S.json.Writer, ptr %t67, i32 0, i32 0 %t70 = getelementptr inbounds { ptr, i64, i64 }, ptr %t69, i32 0, i32 1 %t71 = getelementptr inbounds %S.json.Json, ptr %a1, i32 0, i32 3 @@ -110228,24 +114253,24 @@ ok10958: %t77 = getelementptr inbounds { ptr, i64, i64 }, ptr %t76, i64 %t74 store { ptr, i64, i64 } %t73, ptr %t77 store i64 %t75, ptr %t70 - br label %match.end10937 -match.next10956: + br label %match.end11342 +match.next11361: %t78 = icmp eq i32 %t25, 4 - br i1 %t78, label %match.arm10959, label %match.next10960 -match.arm10959: + br i1 %t78, label %match.arm11364, label %match.next11365 +match.arm11364: %t79 = getelementptr inbounds %S.json.Json, ptr %a1, i32 0, i32 4 %t80 = getelementptr inbounds { ptr, i64, i64 }, ptr %t79, i32 0, i32 1 %t81 = load i64, ptr %t80 %t82 = icmp eq i64 %t81, 0 - br i1 %t82, label %then10961, label %endif10963 -then10961: + br i1 %t82, label %then11366, label %endif11368 +then11366: %t83 = load ptr, ptr %a4 %t84 = icmp eq ptr %t83, null - br i1 %t84, label %panic10964, label %ok10965 -panic10964: - call void @finch_panic(ptr @.str.7062, i64 212, ptr @.str.7063) + br i1 %t84, label %panic11369, label %ok11370 +panic11369: + call void @finch_panic(ptr @.str.7270, i64 212, ptr @.str.7271) unreachable -ok10965: +ok11370: %t85 = getelementptr inbounds %S.json.Writer, ptr %t83, i32 0, i32 0 %t86 = getelementptr inbounds { ptr, i64, i64 }, ptr %t85, i32 0, i32 1 %t87 = load i64, ptr %t86 @@ -110253,25 +114278,25 @@ ok10965: call void @finch_arr_reserve(ptr %t85, i64 %t88, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t89 = load ptr, ptr %t85 %t90 = getelementptr inbounds { ptr, i64, i64 }, ptr %t89, i64 %t87 - store { ptr, i64, i64 } { ptr @.str.7064, i64 2, i64 0 }, ptr %t90 + store { ptr, i64, i64 } { ptr @.str.7272, i64 2, i64 0 }, ptr %t90 store i64 %t88, ptr %t86 call void @finch_str_drop(ptr %a8) call void @finch_str_drop(ptr %a7) call void @finch_str_drop(ptr %a6) call void @finch_str_drop(ptr %a5) ret void -endif10963: +endif11368: %t91 = load ptr, ptr %a4 %t92 = icmp eq ptr %t91, null - br i1 %t92, label %panic10966, label %ok10967 -panic10966: - call void @finch_panic(ptr @.str.7065, i64 215, ptr @.str.7066) + br i1 %t92, label %panic11371, label %ok11372 +panic11371: + call void @finch_panic(ptr @.str.7273, i64 215, ptr @.str.7274) unreachable -ok10967: +ok11372: %t93 = getelementptr inbounds %S.json.Writer, ptr %t91, i32 0, i32 0 %t94 = getelementptr inbounds { ptr, i64, i64 }, ptr %t93, i32 0, i32 1 %t95 = load { ptr, i64, i64 }, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.7067, i64 1, i64 0 }, ptr %a97 + store { ptr, i64, i64 } { ptr @.str.7275, i64 1, i64 0 }, ptr %a97 store { ptr, i64, i64 } %t95, ptr %a98 call void @finch_str_concat(ptr %a96, ptr %a97, ptr %a98) %t99 = load { ptr, i64, i64 }, ptr %a96 @@ -110284,14 +114309,14 @@ ok10967: store i64 %t101, ptr %t94 %t104 = getelementptr inbounds %S.json.Json, ptr %a1, i32 0, i32 4 store i64 0, ptr %a105 - br label %each.cond10968 -each.cond10968: + br label %each.cond11373 +each.cond11373: %t106 = getelementptr inbounds { ptr, i64, i64 }, ptr %t104, i32 0, i32 1 %t107 = load i64, ptr %t106 %t108 = load i64, ptr %a105 %t109 = icmp slt i64 %t108, %t107 - br i1 %t109, label %each.body10969, label %each.end10971 -each.body10969: + br i1 %t109, label %each.body11374, label %each.end11376 +each.body11374: %t110 = load ptr, ptr %t104 %t111 = getelementptr inbounds %S.json.Json, ptr %t110, i64 %t108 %t112 = load %S.json.Json, ptr %t111 @@ -110299,15 +114324,15 @@ each.body10969: store %S.json.Json %t112, ptr %a114 %t115 = load i64, ptr %a113 %t116 = icmp sgt i64 %t115, 0 - br i1 %t116, label %then10972, label %endif10974 -then10972: + br i1 %t116, label %then11377, label %endif11379 +then11377: %t117 = load ptr, ptr %a4 %t118 = icmp eq ptr %t117, null - br i1 %t118, label %panic10975, label %ok10976 -panic10975: - call void @finch_panic(ptr @.str.7068, i64 218, ptr @.str.7069) + br i1 %t118, label %panic11380, label %ok11381 +panic11380: + call void @finch_panic(ptr @.str.7276, i64 218, ptr @.str.7277) unreachable -ok10976: +ok11381: %t119 = getelementptr inbounds %S.json.Writer, ptr %t117, i32 0, i32 0 %t120 = getelementptr inbounds { ptr, i64, i64 }, ptr %t119, i32 0, i32 1 %t121 = load { ptr, i64, i64 }, ptr %a7 @@ -110323,15 +114348,15 @@ ok10976: %t130 = getelementptr inbounds { ptr, i64, i64 }, ptr %t129, i64 %t127 store { ptr, i64, i64 } %t126, ptr %t130 store i64 %t128, ptr %t120 - br label %endif10974 -endif10974: + br label %endif11379 +endif11379: %t131 = load ptr, ptr %a4 %t132 = icmp eq ptr %t131, null - br i1 %t132, label %panic10977, label %ok10978 -panic10977: - call void @finch_panic(ptr @.str.7070, i64 220, ptr @.str.7071) + br i1 %t132, label %panic11382, label %ok11383 +panic11382: + call void @finch_panic(ptr @.str.7278, i64 220, ptr @.str.7279) unreachable -ok10978: +ok11383: %t133 = getelementptr inbounds %S.json.Writer, ptr %t131, i32 0, i32 0 %t134 = getelementptr inbounds { ptr, i64, i64 }, ptr %t133, i32 0, i32 1 %t135 = load { ptr, i64, i64 }, ptr %a6 @@ -110350,20 +114375,20 @@ ok10978: %t145 = load { ptr, i64, i64 }, ptr %a6 %t146 = load ptr, ptr %a4 call void @finch.json.write(%S.json.Json %t143, { ptr, i64, i64 } %t144, { ptr, i64, i64 } %t145, ptr %t146) - br label %each.step10970 -each.step10970: + br label %each.step11375 +each.step11375: %t147 = load i64, ptr %a105 %t148 = add i64 %t147, 1 store i64 %t148, ptr %a105 - br label %each.cond10968 -each.end10971: + br label %each.cond11373 +each.end11376: %t149 = load ptr, ptr %a4 %t150 = icmp eq ptr %t149, null - br i1 %t150, label %panic10979, label %ok10980 -panic10979: - call void @finch_panic(ptr @.str.7072, i64 223, ptr @.str.7073) + br i1 %t150, label %panic11384, label %ok11385 +panic11384: + call void @finch_panic(ptr @.str.7280, i64 223, ptr @.str.7281) unreachable -ok10980: +ok11385: %t151 = getelementptr inbounds %S.json.Writer, ptr %t149, i32 0, i32 0 %t152 = getelementptr inbounds { ptr, i64, i64 }, ptr %t151, i32 0, i32 1 %t153 = load { ptr, i64, i64 }, ptr %a5 @@ -110373,7 +114398,7 @@ ok10980: call void @finch_str_concat(ptr %a155, ptr %a156, ptr %a157) %t158 = load { ptr, i64, i64 }, ptr %a155 store { ptr, i64, i64 } %t158, ptr %a160 - store { ptr, i64, i64 } { ptr @.str.7074, i64 1, i64 0 }, ptr %a161 + store { ptr, i64, i64 } { ptr @.str.7282, i64 1, i64 0 }, ptr %a161 call void @finch_str_concat(ptr %a159, ptr %a160, ptr %a161) store { ptr, i64, i64 } %t158, ptr %a162 call void @finch_str_drop(ptr %a162) @@ -110385,24 +114410,24 @@ ok10980: %t167 = getelementptr inbounds { ptr, i64, i64 }, ptr %t166, i64 %t164 store { ptr, i64, i64 } %t163, ptr %t167 store i64 %t165, ptr %t152 - br label %match.end10937 -match.next10960: + br label %match.end11342 +match.next11365: %t168 = icmp eq i32 %t25, 5 - br i1 %t168, label %match.arm10981, label %match.next10982 -match.arm10981: + br i1 %t168, label %match.arm11386, label %match.next11387 +match.arm11386: %t169 = getelementptr inbounds %S.json.Json, ptr %a1, i32 0, i32 4 %t170 = getelementptr inbounds { ptr, i64, i64 }, ptr %t169, i32 0, i32 1 %t171 = load i64, ptr %t170 %t172 = icmp eq i64 %t171, 0 - br i1 %t172, label %then10983, label %endif10985 -then10983: + br i1 %t172, label %then11388, label %endif11390 +then11388: %t173 = load ptr, ptr %a4 %t174 = icmp eq ptr %t173, null - br i1 %t174, label %panic10986, label %ok10987 -panic10986: - call void @finch_panic(ptr @.str.7075, i64 227, ptr @.str.7076) + br i1 %t174, label %panic11391, label %ok11392 +panic11391: + call void @finch_panic(ptr @.str.7283, i64 227, ptr @.str.7284) unreachable -ok10987: +ok11392: %t175 = getelementptr inbounds %S.json.Writer, ptr %t173, i32 0, i32 0 %t176 = getelementptr inbounds { ptr, i64, i64 }, ptr %t175, i32 0, i32 1 %t177 = load i64, ptr %t176 @@ -110410,25 +114435,25 @@ ok10987: call void @finch_arr_reserve(ptr %t175, i64 %t178, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t179 = load ptr, ptr %t175 %t180 = getelementptr inbounds { ptr, i64, i64 }, ptr %t179, i64 %t177 - store { ptr, i64, i64 } { ptr @.str.7077, i64 2, i64 0 }, ptr %t180 + store { ptr, i64, i64 } { ptr @.str.7285, i64 2, i64 0 }, ptr %t180 store i64 %t178, ptr %t176 call void @finch_str_drop(ptr %a8) call void @finch_str_drop(ptr %a7) call void @finch_str_drop(ptr %a6) call void @finch_str_drop(ptr %a5) ret void -endif10985: +endif11390: %t181 = load ptr, ptr %a4 %t182 = icmp eq ptr %t181, null - br i1 %t182, label %panic10988, label %ok10989 -panic10988: - call void @finch_panic(ptr @.str.7078, i64 230, ptr @.str.7079) + br i1 %t182, label %panic11393, label %ok11394 +panic11393: + call void @finch_panic(ptr @.str.7286, i64 230, ptr @.str.7287) unreachable -ok10989: +ok11394: %t183 = getelementptr inbounds %S.json.Writer, ptr %t181, i32 0, i32 0 %t184 = getelementptr inbounds { ptr, i64, i64 }, ptr %t183, i32 0, i32 1 %t185 = load { ptr, i64, i64 }, ptr %a5 - store { ptr, i64, i64 } { ptr @.str.7080, i64 1, i64 0 }, ptr %a187 + store { ptr, i64, i64 } { ptr @.str.7288, i64 1, i64 0 }, ptr %a187 store { ptr, i64, i64 } %t185, ptr %a188 call void @finch_str_concat(ptr %a186, ptr %a187, ptr %a188) %t189 = load { ptr, i64, i64 }, ptr %a186 @@ -110441,14 +114466,14 @@ ok10989: store i64 %t191, ptr %t184 %t194 = getelementptr inbounds %S.json.Json, ptr %a1, i32 0, i32 4 store i64 0, ptr %a195 - br label %each.cond10990 -each.cond10990: + br label %each.cond11395 +each.cond11395: %t196 = getelementptr inbounds { ptr, i64, i64 }, ptr %t194, i32 0, i32 1 %t197 = load i64, ptr %t196 %t198 = load i64, ptr %a195 %t199 = icmp slt i64 %t198, %t197 - br i1 %t199, label %each.body10991, label %each.end10993 -each.body10991: + br i1 %t199, label %each.body11396, label %each.end11398 +each.body11396: %t200 = load ptr, ptr %t194 %t201 = getelementptr inbounds %S.json.Json, ptr %t200, i64 %t198 %t202 = load %S.json.Json, ptr %t201 @@ -110456,15 +114481,15 @@ each.body10991: store %S.json.Json %t202, ptr %a204 %t205 = load i64, ptr %a203 %t206 = icmp sgt i64 %t205, 0 - br i1 %t206, label %then10994, label %endif10996 -then10994: + br i1 %t206, label %then11399, label %endif11401 +then11399: %t207 = load ptr, ptr %a4 %t208 = icmp eq ptr %t207, null - br i1 %t208, label %panic10997, label %ok10998 -panic10997: - call void @finch_panic(ptr @.str.7081, i64 233, ptr @.str.7082) + br i1 %t208, label %panic11402, label %ok11403 +panic11402: + call void @finch_panic(ptr @.str.7289, i64 233, ptr @.str.7290) unreachable -ok10998: +ok11403: %t209 = getelementptr inbounds %S.json.Writer, ptr %t207, i32 0, i32 0 %t210 = getelementptr inbounds { ptr, i64, i64 }, ptr %t209, i32 0, i32 1 %t211 = load { ptr, i64, i64 }, ptr %a7 @@ -110480,15 +114505,15 @@ ok10998: %t220 = getelementptr inbounds { ptr, i64, i64 }, ptr %t219, i64 %t217 store { ptr, i64, i64 } %t216, ptr %t220 store i64 %t218, ptr %t210 - br label %endif10996 -endif10996: + br label %endif11401 +endif11401: %t221 = load ptr, ptr %a4 %t222 = icmp eq ptr %t221, null - br i1 %t222, label %panic10999, label %ok11000 -panic10999: - call void @finch_panic(ptr @.str.7083, i64 235, ptr @.str.7084) + br i1 %t222, label %panic11404, label %ok11405 +panic11404: + call void @finch_panic(ptr @.str.7291, i64 235, ptr @.str.7292) unreachable -ok11000: +ok11405: %t223 = getelementptr inbounds %S.json.Writer, ptr %t221, i32 0, i32 0 %t224 = getelementptr inbounds { ptr, i64, i64 }, ptr %t223, i32 0, i32 1 %t225 = load { ptr, i64, i64 }, ptr %a6 @@ -110497,11 +114522,11 @@ ok11000: %t228 = load { ptr, i64, i64 }, ptr %t226 %t229 = extractvalue { ptr, i64, i64 } %t228, 1 %t230 = icmp uge i64 %t227, %t229 - br i1 %t230, label %range11001, label %inrange11002 -range11001: - call void @finch_panic_index(ptr @.str.7085, i64 235, i64 %t227, i64 %t229) + br i1 %t230, label %range11406, label %inrange11407 +range11406: + call void @finch_panic_index(ptr @.str.7293, i64 235, i64 %t227, i64 %t229) unreachable -inrange11002: +inrange11407: %t231 = extractvalue { ptr, i64, i64 } %t228, 0 %t232 = getelementptr inbounds { ptr, i64, i64 }, ptr %t231, i64 %t227 %t233 = load { ptr, i64, i64 }, ptr %t232 @@ -110531,20 +114556,20 @@ inrange11002: %t252 = load { ptr, i64, i64 }, ptr %a6 %t253 = load ptr, ptr %a4 call void @finch.json.write(%S.json.Json %t250, { ptr, i64, i64 } %t251, { ptr, i64, i64 } %t252, ptr %t253) - br label %each.step10992 -each.step10992: + br label %each.step11397 +each.step11397: %t254 = load i64, ptr %a195 %t255 = add i64 %t254, 1 store i64 %t255, ptr %a195 - br label %each.cond10990 -each.end10993: + br label %each.cond11395 +each.end11398: %t256 = load ptr, ptr %a4 %t257 = icmp eq ptr %t256, null - br i1 %t257, label %panic11003, label %ok11004 -panic11003: - call void @finch_panic(ptr @.str.7086, i64 238, ptr @.str.7087) + br i1 %t257, label %panic11408, label %ok11409 +panic11408: + call void @finch_panic(ptr @.str.7294, i64 238, ptr @.str.7295) unreachable -ok11004: +ok11409: %t258 = getelementptr inbounds %S.json.Writer, ptr %t256, i32 0, i32 0 %t259 = getelementptr inbounds { ptr, i64, i64 }, ptr %t258, i32 0, i32 1 %t260 = load { ptr, i64, i64 }, ptr %a5 @@ -110554,7 +114579,7 @@ ok11004: call void @finch_str_concat(ptr %a262, ptr %a263, ptr %a264) %t265 = load { ptr, i64, i64 }, ptr %a262 store { ptr, i64, i64 } %t265, ptr %a267 - store { ptr, i64, i64 } { ptr @.str.7088, i64 1, i64 0 }, ptr %a268 + store { ptr, i64, i64 } { ptr @.str.7296, i64 1, i64 0 }, ptr %a268 call void @finch_str_concat(ptr %a266, ptr %a267, ptr %a268) store { ptr, i64, i64 } %t265, ptr %a269 call void @finch_str_drop(ptr %a269) @@ -110566,15 +114591,15 @@ ok11004: %t274 = getelementptr inbounds { ptr, i64, i64 }, ptr %t273, i64 %t271 store { ptr, i64, i64 } %t270, ptr %t274 store i64 %t272, ptr %t259 - br label %match.end10937 -match.next10982: - br i1 true, label %panic11005, label %ok11006 -panic11005: - call void @finch_panic(ptr @.str.7089, i64 199, ptr @.str.7090) + br label %match.end11342 +match.next11387: + br i1 true, label %panic11410, label %ok11411 +panic11410: + call void @finch_panic(ptr @.str.7297, i64 199, ptr @.str.7298) unreachable -ok11006: +ok11411: unreachable -match.end10937: +match.end11342: call void @finch_str_drop(ptr %a8) call void @finch_str_drop(ptr %a7) call void @finch_str_drop(ptr %a6) @@ -110599,10 +114624,10 @@ entry: store %S.json.Json %p0, ptr %a1 store %S.json.Writer zeroinitializer, ptr %a2 %t3 = load %S.json.Json, ptr %a1 - call void @finch.json.write(%S.json.Json %t3, { ptr, i64, i64 } { ptr @.str.7091, i64 0, i64 0 }, { ptr, i64, i64 } { ptr @.str.7092, i64 0, i64 0 }, ptr %a2) + call void @finch.json.write(%S.json.Json %t3, { ptr, i64, i64 } { ptr @.str.7299, i64 0, i64 0 }, { ptr, i64, i64 } { ptr @.str.7300, i64 0, i64 0 }, ptr %a2) %t4 = getelementptr inbounds %S.json.Writer, ptr %a2, i32 0, i32 0 %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %t4, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.7093, i64 0, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.7301, i64 0, i64 0 }, ptr %a6 call void @finch_str_join(ptr %a7, ptr %t4, ptr %a6) %t8 = load { ptr, i64, i64 }, ptr %a7 call void @finch.drop.S_json_Writer(ptr %a2) @@ -110618,10 +114643,10 @@ entry: store %S.json.Json %p0, ptr %a1 store %S.json.Writer zeroinitializer, ptr %a2 %t3 = load %S.json.Json, ptr %a1 - call void @finch.json.write(%S.json.Json %t3, { ptr, i64, i64 } { ptr @.str.7094, i64 2, i64 0 }, { ptr, i64, i64 } { ptr @.str.7095, i64 0, i64 0 }, ptr %a2) + call void @finch.json.write(%S.json.Json %t3, { ptr, i64, i64 } { ptr @.str.7302, i64 2, i64 0 }, { ptr, i64, i64 } { ptr @.str.7303, i64 0, i64 0 }, ptr %a2) %t4 = getelementptr inbounds %S.json.Writer, ptr %a2, i32 0, i32 0 %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %t4, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.7096, i64 0, i64 0 }, ptr %a6 + store { ptr, i64, i64 } { ptr @.str.7304, i64 0, i64 0 }, ptr %a6 call void @finch_str_join(ptr %a7, ptr %t4, ptr %a6) %t8 = load { ptr, i64, i64 }, ptr %a7 call void @finch.drop.S_json_Writer(ptr %a2) @@ -110654,93 +114679,93 @@ entry: store i64 1, ptr %a3 %t4 = load ptr, ptr %a1 %t5 = icmp eq ptr %t4, null - br i1 %t5, label %panic11007, label %ok11008 -panic11007: - call void @finch_panic(ptr @.str.7097, i64 268, ptr @.str.7098) + br i1 %t5, label %panic11412, label %ok11413 +panic11412: + call void @finch_panic(ptr @.str.7305, i64 268, ptr @.str.7306) unreachable -ok11008: +ok11413: %t6 = getelementptr inbounds %S.json.Reader, ptr %t4, i32 0, i32 1 %t7 = load i64, ptr %t6 store i64 0, ptr %a8 - br label %for.cond11009 -for.cond11009: + br label %for.cond11414 +for.cond11414: %t9 = load i64, ptr %a8 %t10 = icmp slt i64 %t9, %t7 - br i1 %t10, label %for.body11010, label %for.end11012 -for.body11010: + br i1 %t10, label %for.body11415, label %for.end11417 +for.body11415: %t11 = load i64, ptr %a8 %t12 = load ptr, ptr %a1 %t13 = icmp eq ptr %t12, null - br i1 %t13, label %panic11013, label %ok11014 -panic11013: - call void @finch_panic(ptr @.str.7099, i64 269, ptr @.str.7100) + br i1 %t13, label %panic11418, label %ok11419 +panic11418: + call void @finch_panic(ptr @.str.7307, i64 269, ptr @.str.7308) unreachable -ok11014: +ok11419: %t14 = getelementptr inbounds %S.json.Reader, ptr %t12, i32 0, i32 0 %t15 = getelementptr inbounds { ptr, i64, i64 }, ptr %t14, i32 0, i32 1 %t16 = load i64, ptr %t15 %t17 = icmp slt i64 %t11, %t16 - br label %logic.from11015 -logic.from11015: - br i1 %t17, label %logic.rhs11016, label %logic.end11017 -logic.rhs11016: + br label %logic.from11420 +logic.from11420: + br i1 %t17, label %logic.rhs11421, label %logic.end11422 +logic.rhs11421: %t18 = load ptr, ptr %a1 %t19 = icmp eq ptr %t18, null - br i1 %t19, label %panic11018, label %ok11019 -panic11018: - call void @finch_panic(ptr @.str.7101, i64 269, ptr @.str.7102) + br i1 %t19, label %panic11423, label %ok11424 +panic11423: + call void @finch_panic(ptr @.str.7309, i64 269, ptr @.str.7310) unreachable -ok11019: +ok11424: %t20 = getelementptr inbounds %S.json.Reader, ptr %t18, i32 0, i32 0 %t21 = load i64, ptr %a8 %t22 = load { ptr, i64, i64 }, ptr %t20 %t23 = extractvalue { ptr, i64, i64 } %t22, 1 %t24 = icmp uge i64 %t21, %t23 - br i1 %t24, label %range11020, label %inrange11021 -range11020: - call void @finch_panic_index(ptr @.str.7103, i64 269, i64 %t21, i64 %t23) + br i1 %t24, label %range11425, label %inrange11426 +range11425: + call void @finch_panic_index(ptr @.str.7311, i64 269, i64 %t21, i64 %t23) unreachable -inrange11021: +inrange11426: %t25 = extractvalue { ptr, i64, i64 } %t22, 0 %t26 = getelementptr inbounds i8, ptr %t25, i64 %t21 %t27 = load i8, ptr %t26 %t28 = icmp eq i8 %t27, 10 - br label %logic.rend11022 -logic.rend11022: - br label %logic.end11017 -logic.end11017: - %t29 = phi i1 [ false, %logic.from11015 ], [ %t28, %logic.rend11022 ] - br i1 %t29, label %then11023, label %else11024 -then11023: + br label %logic.rend11427 +logic.rend11427: + br label %logic.end11422 +logic.end11422: + %t29 = phi i1 [ false, %logic.from11420 ], [ %t28, %logic.rend11427 ] + br i1 %t29, label %then11428, label %else11429 +then11428: %t30 = load i64, ptr %a2 %t31 = add i64 %t30, 1 store i64 %t31, ptr %a2 store i64 1, ptr %a3 - br label %endif11025 -else11024: + br label %endif11430 +else11429: %t32 = load i64, ptr %a3 %t33 = add i64 %t32, 1 store i64 %t33, ptr %a3 - br label %endif11025 -endif11025: - br label %for.step11011 -for.step11011: + br label %endif11430 +endif11430: + br label %for.step11416 +for.step11416: %t34 = load i64, ptr %a8 %t35 = add i64 %t34, 1 store i64 %t35, ptr %a8 - br label %for.cond11009 -for.end11012: + br label %for.cond11414 +for.end11417: %t36 = load i64, ptr %a2 call void @finch_str_from_int(ptr %a37, i64 %t36) %t38 = load { ptr, i64, i64 }, ptr %a37 - store { ptr, i64, i64 } { ptr @.str.7104, i64 5, i64 0 }, ptr %a40 + store { ptr, i64, i64 } { ptr @.str.7312, i64 5, i64 0 }, ptr %a40 store { ptr, i64, i64 } %t38, ptr %a41 call void @finch_str_concat(ptr %a39, ptr %a40, ptr %a41) store { ptr, i64, i64 } %t38, ptr %a42 call void @finch_str_drop(ptr %a42) %t43 = load { ptr, i64, i64 }, ptr %a39 store { ptr, i64, i64 } %t43, ptr %a45 - store { ptr, i64, i64 } { ptr @.str.7105, i64 9, i64 0 }, ptr %a46 + store { ptr, i64, i64 } { ptr @.str.7313, i64 9, i64 0 }, ptr %a46 call void @finch_str_concat(ptr %a44, ptr %a45, ptr %a46) store { ptr, i64, i64 } %t43, ptr %a47 call void @finch_str_drop(ptr %a47) @@ -110765,56 +114790,56 @@ entry: store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 %t3 = icmp eq ptr %t2, null - br i1 %t3, label %panic11026, label %ok11027 -panic11026: - call void @finch_panic(ptr @.str.7106, i64 280, ptr @.str.7107) + br i1 %t3, label %panic11431, label %ok11432 +panic11431: + call void @finch_panic(ptr @.str.7314, i64 280, ptr @.str.7315) unreachable -ok11027: +ok11432: %t4 = getelementptr inbounds %S.json.Reader, ptr %t2, i32 0, i32 1 %t5 = load i64, ptr %t4 %t6 = load ptr, ptr %a1 %t7 = icmp eq ptr %t6, null - br i1 %t7, label %panic11028, label %ok11029 -panic11028: - call void @finch_panic(ptr @.str.7108, i64 280, ptr @.str.7109) + br i1 %t7, label %panic11433, label %ok11434 +panic11433: + call void @finch_panic(ptr @.str.7316, i64 280, ptr @.str.7317) unreachable -ok11029: +ok11434: %t8 = getelementptr inbounds %S.json.Reader, ptr %t6, i32 0, i32 0 %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %t8, i32 0, i32 1 %t10 = load i64, ptr %t9 %t11 = icmp slt i64 %t5, %t10 - br i1 %t11, label %then11030, label %endif11032 -then11030: + br i1 %t11, label %then11435, label %endif11437 +then11435: %t12 = load ptr, ptr %a1 %t13 = icmp eq ptr %t12, null - br i1 %t13, label %panic11033, label %ok11034 -panic11033: - call void @finch_panic(ptr @.str.7110, i64 281, ptr @.str.7111) + br i1 %t13, label %panic11438, label %ok11439 +panic11438: + call void @finch_panic(ptr @.str.7318, i64 281, ptr @.str.7319) unreachable -ok11034: +ok11439: %t14 = getelementptr inbounds %S.json.Reader, ptr %t12, i32 0, i32 0 %t15 = load ptr, ptr %a1 %t16 = icmp eq ptr %t15, null - br i1 %t16, label %panic11035, label %ok11036 -panic11035: - call void @finch_panic(ptr @.str.7112, i64 281, ptr @.str.7113) + br i1 %t16, label %panic11440, label %ok11441 +panic11440: + call void @finch_panic(ptr @.str.7320, i64 281, ptr @.str.7321) unreachable -ok11036: +ok11441: %t17 = getelementptr inbounds %S.json.Reader, ptr %t15, i32 0, i32 1 %t18 = load i64, ptr %t17 %t19 = load { ptr, i64, i64 }, ptr %t14 %t20 = extractvalue { ptr, i64, i64 } %t19, 1 %t21 = icmp uge i64 %t18, %t20 - br i1 %t21, label %range11037, label %inrange11038 -range11037: - call void @finch_panic_index(ptr @.str.7114, i64 281, i64 %t18, i64 %t20) + br i1 %t21, label %range11442, label %inrange11443 +range11442: + call void @finch_panic_index(ptr @.str.7322, i64 281, i64 %t18, i64 %t20) unreachable -inrange11038: +inrange11443: %t22 = extractvalue { ptr, i64, i64 } %t19, 0 %t23 = getelementptr inbounds i8, ptr %t22, i64 %t18 %t24 = load i8, ptr %t23 ret i8 %t24 -endif11032: +endif11437: %t25 = trunc i64 0 to i8 ret i8 %t25 } @@ -110823,195 +114848,195 @@ define internal void @finch.json.skip_space(ptr %p0) { entry: %a1 = alloca ptr, align 16 store ptr %p0, ptr %a1 - br label %while.cond11039 -while.cond11039: + br label %while.cond11444 +while.cond11444: %t2 = load ptr, ptr %a1 %t3 = icmp eq ptr %t2, null - br i1 %t3, label %panic11042, label %ok11043 -panic11042: - call void @finch_panic(ptr @.str.7115, i64 287, ptr @.str.7116) + br i1 %t3, label %panic11447, label %ok11448 +panic11447: + call void @finch_panic(ptr @.str.7323, i64 287, ptr @.str.7324) unreachable -ok11043: +ok11448: %t4 = getelementptr inbounds %S.json.Reader, ptr %t2, i32 0, i32 1 %t5 = load i64, ptr %t4 %t6 = load ptr, ptr %a1 %t7 = icmp eq ptr %t6, null - br i1 %t7, label %panic11044, label %ok11045 -panic11044: - call void @finch_panic(ptr @.str.7117, i64 287, ptr @.str.7118) + br i1 %t7, label %panic11449, label %ok11450 +panic11449: + call void @finch_panic(ptr @.str.7325, i64 287, ptr @.str.7326) unreachable -ok11045: +ok11450: %t8 = getelementptr inbounds %S.json.Reader, ptr %t6, i32 0, i32 0 %t9 = getelementptr inbounds { ptr, i64, i64 }, ptr %t8, i32 0, i32 1 %t10 = load i64, ptr %t9 %t11 = icmp slt i64 %t5, %t10 - br label %logic.from11046 -logic.from11046: - br i1 %t11, label %logic.rhs11047, label %logic.end11048 -logic.rhs11047: + br label %logic.from11451 +logic.from11451: + br i1 %t11, label %logic.rhs11452, label %logic.end11453 +logic.rhs11452: %t12 = load ptr, ptr %a1 %t13 = icmp eq ptr %t12, null - br i1 %t13, label %panic11049, label %ok11050 -panic11049: - call void @finch_panic(ptr @.str.7119, i64 287, ptr @.str.7120) + br i1 %t13, label %panic11454, label %ok11455 +panic11454: + call void @finch_panic(ptr @.str.7327, i64 287, ptr @.str.7328) unreachable -ok11050: +ok11455: %t14 = getelementptr inbounds %S.json.Reader, ptr %t12, i32 0, i32 0 %t15 = load ptr, ptr %a1 %t16 = icmp eq ptr %t15, null - br i1 %t16, label %panic11051, label %ok11052 -panic11051: - call void @finch_panic(ptr @.str.7121, i64 287, ptr @.str.7122) + br i1 %t16, label %panic11456, label %ok11457 +panic11456: + call void @finch_panic(ptr @.str.7329, i64 287, ptr @.str.7330) unreachable -ok11052: +ok11457: %t17 = getelementptr inbounds %S.json.Reader, ptr %t15, i32 0, i32 1 %t18 = load i64, ptr %t17 %t19 = load { ptr, i64, i64 }, ptr %t14 %t20 = extractvalue { ptr, i64, i64 } %t19, 1 %t21 = icmp uge i64 %t18, %t20 - br i1 %t21, label %range11053, label %inrange11054 -range11053: - call void @finch_panic_index(ptr @.str.7123, i64 287, i64 %t18, i64 %t20) + br i1 %t21, label %range11458, label %inrange11459 +range11458: + call void @finch_panic_index(ptr @.str.7331, i64 287, i64 %t18, i64 %t20) unreachable -inrange11054: +inrange11459: %t22 = extractvalue { ptr, i64, i64 } %t19, 0 %t23 = getelementptr inbounds i8, ptr %t22, i64 %t18 %t24 = load i8, ptr %t23 %t25 = icmp eq i8 %t24, 32 - br label %logic.from11055 -logic.from11055: - br i1 %t25, label %logic.end11057, label %logic.rhs11056 -logic.rhs11056: + br label %logic.from11460 +logic.from11460: + br i1 %t25, label %logic.end11462, label %logic.rhs11461 +logic.rhs11461: %t26 = load ptr, ptr %a1 %t27 = icmp eq ptr %t26, null - br i1 %t27, label %panic11058, label %ok11059 -panic11058: - call void @finch_panic(ptr @.str.7124, i64 287, ptr @.str.7125) + br i1 %t27, label %panic11463, label %ok11464 +panic11463: + call void @finch_panic(ptr @.str.7332, i64 287, ptr @.str.7333) unreachable -ok11059: +ok11464: %t28 = getelementptr inbounds %S.json.Reader, ptr %t26, i32 0, i32 0 %t29 = load ptr, ptr %a1 %t30 = icmp eq ptr %t29, null - br i1 %t30, label %panic11060, label %ok11061 -panic11060: - call void @finch_panic(ptr @.str.7126, i64 287, ptr @.str.7127) + br i1 %t30, label %panic11465, label %ok11466 +panic11465: + call void @finch_panic(ptr @.str.7334, i64 287, ptr @.str.7335) unreachable -ok11061: +ok11466: %t31 = getelementptr inbounds %S.json.Reader, ptr %t29, i32 0, i32 1 %t32 = load i64, ptr %t31 %t33 = load { ptr, i64, i64 }, ptr %t28 %t34 = extractvalue { ptr, i64, i64 } %t33, 1 %t35 = icmp uge i64 %t32, %t34 - br i1 %t35, label %range11062, label %inrange11063 -range11062: - call void @finch_panic_index(ptr @.str.7128, i64 287, i64 %t32, i64 %t34) + br i1 %t35, label %range11467, label %inrange11468 +range11467: + call void @finch_panic_index(ptr @.str.7336, i64 287, i64 %t32, i64 %t34) unreachable -inrange11063: +inrange11468: %t36 = extractvalue { ptr, i64, i64 } %t33, 0 %t37 = getelementptr inbounds i8, ptr %t36, i64 %t32 %t38 = load i8, ptr %t37 %t39 = icmp eq i8 %t38, 10 - br label %logic.rend11064 -logic.rend11064: - br label %logic.end11057 -logic.end11057: - %t40 = phi i1 [ true, %logic.from11055 ], [ %t39, %logic.rend11064 ] - br label %logic.from11065 -logic.from11065: - br i1 %t40, label %logic.end11067, label %logic.rhs11066 -logic.rhs11066: + br label %logic.rend11469 +logic.rend11469: + br label %logic.end11462 +logic.end11462: + %t40 = phi i1 [ true, %logic.from11460 ], [ %t39, %logic.rend11469 ] + br label %logic.from11470 +logic.from11470: + br i1 %t40, label %logic.end11472, label %logic.rhs11471 +logic.rhs11471: %t41 = load ptr, ptr %a1 %t42 = icmp eq ptr %t41, null - br i1 %t42, label %panic11068, label %ok11069 -panic11068: - call void @finch_panic(ptr @.str.7129, i64 287, ptr @.str.7130) + br i1 %t42, label %panic11473, label %ok11474 +panic11473: + call void @finch_panic(ptr @.str.7337, i64 287, ptr @.str.7338) unreachable -ok11069: +ok11474: %t43 = getelementptr inbounds %S.json.Reader, ptr %t41, i32 0, i32 0 %t44 = load ptr, ptr %a1 %t45 = icmp eq ptr %t44, null - br i1 %t45, label %panic11070, label %ok11071 -panic11070: - call void @finch_panic(ptr @.str.7131, i64 287, ptr @.str.7132) + br i1 %t45, label %panic11475, label %ok11476 +panic11475: + call void @finch_panic(ptr @.str.7339, i64 287, ptr @.str.7340) unreachable -ok11071: +ok11476: %t46 = getelementptr inbounds %S.json.Reader, ptr %t44, i32 0, i32 1 %t47 = load i64, ptr %t46 %t48 = load { ptr, i64, i64 }, ptr %t43 %t49 = extractvalue { ptr, i64, i64 } %t48, 1 %t50 = icmp uge i64 %t47, %t49 - br i1 %t50, label %range11072, label %inrange11073 -range11072: - call void @finch_panic_index(ptr @.str.7133, i64 287, i64 %t47, i64 %t49) + br i1 %t50, label %range11477, label %inrange11478 +range11477: + call void @finch_panic_index(ptr @.str.7341, i64 287, i64 %t47, i64 %t49) unreachable -inrange11073: +inrange11478: %t51 = extractvalue { ptr, i64, i64 } %t48, 0 %t52 = getelementptr inbounds i8, ptr %t51, i64 %t47 %t53 = load i8, ptr %t52 %t54 = icmp eq i8 %t53, 9 - br label %logic.rend11074 -logic.rend11074: - br label %logic.end11067 -logic.end11067: - %t55 = phi i1 [ true, %logic.from11065 ], [ %t54, %logic.rend11074 ] - br label %logic.from11075 -logic.from11075: - br i1 %t55, label %logic.end11077, label %logic.rhs11076 -logic.rhs11076: + br label %logic.rend11479 +logic.rend11479: + br label %logic.end11472 +logic.end11472: + %t55 = phi i1 [ true, %logic.from11470 ], [ %t54, %logic.rend11479 ] + br label %logic.from11480 +logic.from11480: + br i1 %t55, label %logic.end11482, label %logic.rhs11481 +logic.rhs11481: %t56 = load ptr, ptr %a1 %t57 = icmp eq ptr %t56, null - br i1 %t57, label %panic11078, label %ok11079 -panic11078: - call void @finch_panic(ptr @.str.7134, i64 287, ptr @.str.7135) + br i1 %t57, label %panic11483, label %ok11484 +panic11483: + call void @finch_panic(ptr @.str.7342, i64 287, ptr @.str.7343) unreachable -ok11079: +ok11484: %t58 = getelementptr inbounds %S.json.Reader, ptr %t56, i32 0, i32 0 %t59 = load ptr, ptr %a1 %t60 = icmp eq ptr %t59, null - br i1 %t60, label %panic11080, label %ok11081 -panic11080: - call void @finch_panic(ptr @.str.7136, i64 287, ptr @.str.7137) + br i1 %t60, label %panic11485, label %ok11486 +panic11485: + call void @finch_panic(ptr @.str.7344, i64 287, ptr @.str.7345) unreachable -ok11081: +ok11486: %t61 = getelementptr inbounds %S.json.Reader, ptr %t59, i32 0, i32 1 %t62 = load i64, ptr %t61 %t63 = load { ptr, i64, i64 }, ptr %t58 %t64 = extractvalue { ptr, i64, i64 } %t63, 1 %t65 = icmp uge i64 %t62, %t64 - br i1 %t65, label %range11082, label %inrange11083 -range11082: - call void @finch_panic_index(ptr @.str.7138, i64 287, i64 %t62, i64 %t64) + br i1 %t65, label %range11487, label %inrange11488 +range11487: + call void @finch_panic_index(ptr @.str.7346, i64 287, i64 %t62, i64 %t64) unreachable -inrange11083: +inrange11488: %t66 = extractvalue { ptr, i64, i64 } %t63, 0 %t67 = getelementptr inbounds i8, ptr %t66, i64 %t62 %t68 = load i8, ptr %t67 %t69 = icmp eq i8 %t68, 13 - br label %logic.rend11084 -logic.rend11084: - br label %logic.end11077 -logic.end11077: - %t70 = phi i1 [ true, %logic.from11075 ], [ %t69, %logic.rend11084 ] - br label %logic.rend11085 -logic.rend11085: - br label %logic.end11048 -logic.end11048: - %t71 = phi i1 [ false, %logic.from11046 ], [ %t70, %logic.rend11085 ] - br i1 %t71, label %while.body11040, label %while.end11041 -while.body11040: + br label %logic.rend11489 +logic.rend11489: + br label %logic.end11482 +logic.end11482: + %t70 = phi i1 [ true, %logic.from11480 ], [ %t69, %logic.rend11489 ] + br label %logic.rend11490 +logic.rend11490: + br label %logic.end11453 +logic.end11453: + %t71 = phi i1 [ false, %logic.from11451 ], [ %t70, %logic.rend11490 ] + br i1 %t71, label %while.body11445, label %while.end11446 +while.body11445: %t72 = load ptr, ptr %a1 %t73 = icmp eq ptr %t72, null - br i1 %t73, label %panic11086, label %ok11087 -panic11086: - call void @finch_panic(ptr @.str.7139, i64 288, ptr @.str.7140) + br i1 %t73, label %panic11491, label %ok11492 +panic11491: + call void @finch_panic(ptr @.str.7347, i64 288, ptr @.str.7348) unreachable -ok11087: +ok11492: %t74 = getelementptr inbounds %S.json.Reader, ptr %t72, i32 0, i32 1 %t75 = load i64, ptr %t74 %t76 = add i64 %t75, 1 store i64 %t76, ptr %t74 - br label %while.cond11039 -while.end11041: + br label %while.cond11444 +while.end11446: ret void } @@ -111065,33 +115090,33 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic11088, label %ok11089 -panic11088: - call void @finch_panic(ptr @.str.7141, i64 293, ptr @.str.7142) + br i1 %t4, label %panic11493, label %ok11494 +panic11493: + call void @finch_panic(ptr @.str.7349, i64 293, ptr @.str.7350) unreachable -ok11089: +ok11494: %t5 = getelementptr inbounds %S.json.Reader, ptr %t3, i32 0, i32 1 %t6 = load i64, ptr %t5 %t7 = load ptr, ptr %a1 %t8 = icmp eq ptr %t7, null - br i1 %t8, label %panic11090, label %ok11091 -panic11090: - call void @finch_panic(ptr @.str.7143, i64 293, ptr @.str.7144) + br i1 %t8, label %panic11495, label %ok11496 +panic11495: + call void @finch_panic(ptr @.str.7351, i64 293, ptr @.str.7352) unreachable -ok11091: +ok11496: %t9 = getelementptr inbounds %S.json.Reader, ptr %t7, i32 0, i32 0 %t10 = getelementptr inbounds { ptr, i64, i64 }, ptr %t9, i32 0, i32 1 %t11 = load i64, ptr %t10 %t12 = icmp sge i64 %t6, %t11 - br i1 %t12, label %then11092, label %endif11094 -then11092: + br i1 %t12, label %then11497, label %endif11499 +then11497: %t13 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.7145, i64 26, i64 0 }, ptr %a15 + store { ptr, i64, i64 } { ptr @.str.7353, i64 26, i64 0 }, ptr %a15 store { ptr, i64, i64 } %t13, ptr %a16 call void @finch_str_concat(ptr %a14, ptr %a15, ptr %a16) %t17 = load { ptr, i64, i64 }, ptr %a14 store { ptr, i64, i64 } %t17, ptr %a19 - store { ptr, i64, i64 } { ptr @.str.7146, i64 12, i64 0 }, ptr %a20 + store { ptr, i64, i64 } { ptr @.str.7354, i64 12, i64 0 }, ptr %a20 call void @finch_str_concat(ptr %a18, ptr %a19, ptr %a20) store { ptr, i64, i64 } %t17, ptr %a21 call void @finch_str_drop(ptr %a21) @@ -111107,51 +115132,51 @@ then11092: call void @finch_str_drop(ptr %a29) %t30 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t30, ptr %a32 - store { ptr, i64, i64 } { ptr @.str.7147, i64 1, i64 0 }, ptr %a33 + store { ptr, i64, i64 } { ptr @.str.7355, i64 1, i64 0 }, ptr %a33 call void @finch_str_concat(ptr %a31, ptr %a32, ptr %a33) store { ptr, i64, i64 } %t30, ptr %a34 call void @finch_str_drop(ptr %a34) %t35 = load { ptr, i64, i64 }, ptr %a31 ret { ptr, i64, i64 } %t35 -endif11094: +endif11499: %t36 = load ptr, ptr %a1 %t37 = icmp eq ptr %t36, null - br i1 %t37, label %panic11095, label %ok11096 -panic11095: - call void @finch_panic(ptr @.str.7149, i64 296, ptr @.str.7150) + br i1 %t37, label %panic11500, label %ok11501 +panic11500: + call void @finch_panic(ptr @.str.7357, i64 296, ptr @.str.7358) unreachable -ok11096: +ok11501: %t38 = getelementptr inbounds %S.json.Reader, ptr %t36, i32 0, i32 0 %t39 = load ptr, ptr %a1 %t40 = icmp eq ptr %t39, null - br i1 %t40, label %panic11097, label %ok11098 -panic11097: - call void @finch_panic(ptr @.str.7151, i64 296, ptr @.str.7152) + br i1 %t40, label %panic11502, label %ok11503 +panic11502: + call void @finch_panic(ptr @.str.7359, i64 296, ptr @.str.7360) unreachable -ok11098: +ok11503: %t41 = getelementptr inbounds %S.json.Reader, ptr %t39, i32 0, i32 1 %t42 = load i64, ptr %t41 %t43 = load { ptr, i64, i64 }, ptr %t38 %t44 = extractvalue { ptr, i64, i64 } %t43, 1 %t45 = icmp uge i64 %t42, %t44 - br i1 %t45, label %range11099, label %inrange11100 -range11099: - call void @finch_panic_index(ptr @.str.7153, i64 296, i64 %t42, i64 %t44) + br i1 %t45, label %range11504, label %inrange11505 +range11504: + call void @finch_panic_index(ptr @.str.7361, i64 296, i64 %t42, i64 %t44) unreachable -inrange11100: +inrange11505: %t46 = extractvalue { ptr, i64, i64 } %t43, 0 %t47 = getelementptr inbounds i8, ptr %t46, i64 %t42 %t48 = load i8, ptr %t47 call void @finch_str_from_char(ptr %a49, i8 signext %t48) %t50 = load { ptr, i64, i64 }, ptr %a49 - store { ptr, i64, i64 } { ptr @.str.7148, i64 13, i64 0 }, ptr %a52 + store { ptr, i64, i64 } { ptr @.str.7356, i64 13, i64 0 }, ptr %a52 store { ptr, i64, i64 } %t50, ptr %a53 call void @finch_str_concat(ptr %a51, ptr %a52, ptr %a53) store { ptr, i64, i64 } %t50, ptr %a54 call void @finch_str_drop(ptr %a54) %t55 = load { ptr, i64, i64 }, ptr %a51 store { ptr, i64, i64 } %t55, ptr %a57 - store { ptr, i64, i64 } { ptr @.str.7154, i64 8, i64 0 }, ptr %a58 + store { ptr, i64, i64 } { ptr @.str.7362, i64 8, i64 0 }, ptr %a58 call void @finch_str_concat(ptr %a56, ptr %a57, ptr %a58) store { ptr, i64, i64 } %t55, ptr %a59 call void @finch_str_drop(ptr %a59) @@ -111164,7 +115189,7 @@ inrange11100: call void @finch_str_drop(ptr %a65) %t66 = load { ptr, i64, i64 }, ptr %a62 store { ptr, i64, i64 } %t66, ptr %a68 - store { ptr, i64, i64 } { ptr @.str.7155, i64 12, i64 0 }, ptr %a69 + store { ptr, i64, i64 } { ptr @.str.7363, i64 12, i64 0 }, ptr %a69 call void @finch_str_concat(ptr %a67, ptr %a68, ptr %a69) store { ptr, i64, i64 } %t66, ptr %a70 call void @finch_str_drop(ptr %a70) @@ -111180,7 +115205,7 @@ inrange11100: call void @finch_str_drop(ptr %a78) %t79 = load { ptr, i64, i64 }, ptr %a74 store { ptr, i64, i64 } %t79, ptr %a81 - store { ptr, i64, i64 } { ptr @.str.7156, i64 1, i64 0 }, ptr %a82 + store { ptr, i64, i64 } { ptr @.str.7364, i64 1, i64 0 }, ptr %a82 call void @finch_str_concat(ptr %a80, ptr %a81, ptr %a82) store { ptr, i64, i64 } %t79, ptr %a83 call void @finch_str_drop(ptr %a83) @@ -111201,63 +115226,63 @@ entry: store { ptr, i64, i64 } %p1, ptr %a2 %t3 = load ptr, ptr %a1 %t4 = icmp eq ptr %t3, null - br i1 %t4, label %panic11101, label %ok11102 -panic11101: - call void @finch_panic(ptr @.str.7157, i64 301, ptr @.str.7158) + br i1 %t4, label %panic11506, label %ok11507 +panic11506: + call void @finch_panic(ptr @.str.7365, i64 301, ptr @.str.7366) unreachable -ok11102: +ok11507: %t5 = getelementptr inbounds %S.json.Reader, ptr %t3, i32 0, i32 0 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i32 0, i32 1 %t7 = load i64, ptr %t6 %t8 = load ptr, ptr %a1 %t9 = icmp eq ptr %t8, null - br i1 %t9, label %panic11103, label %ok11104 -panic11103: - call void @finch_panic(ptr @.str.7159, i64 301, ptr @.str.7160) + br i1 %t9, label %panic11508, label %ok11509 +panic11508: + call void @finch_panic(ptr @.str.7367, i64 301, ptr @.str.7368) unreachable -ok11104: +ok11509: %t10 = getelementptr inbounds %S.json.Reader, ptr %t8, i32 0, i32 1 %t11 = load i64, ptr %t10 %t12 = sub i64 %t7, %t11 %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t14 = load i64, ptr %t13 %t15 = icmp sge i64 %t12, %t14 - br label %logic.from11105 -logic.from11105: - br i1 %t15, label %logic.rhs11106, label %logic.end11107 -logic.rhs11106: + br label %logic.from11510 +logic.from11510: + br i1 %t15, label %logic.rhs11511, label %logic.end11512 +logic.rhs11511: %t16 = load ptr, ptr %a1 %t17 = icmp eq ptr %t16, null - br i1 %t17, label %panic11108, label %ok11109 -panic11108: - call void @finch_panic(ptr @.str.7161, i64 301, ptr @.str.7162) + br i1 %t17, label %panic11513, label %ok11514 +panic11513: + call void @finch_panic(ptr @.str.7369, i64 301, ptr @.str.7370) unreachable -ok11109: +ok11514: %t18 = getelementptr inbounds %S.json.Reader, ptr %t16, i32 0, i32 0 %t19 = load { ptr, i64, i64 }, ptr %t18 store { ptr, i64, i64 } %t19, ptr %a20 %t22 = load ptr, ptr %a1 %t23 = icmp eq ptr %t22, null - br i1 %t23, label %panic11110, label %ok11111 -panic11110: - call void @finch_panic(ptr @.str.7164, i64 301, ptr @.str.7165) + br i1 %t23, label %panic11515, label %ok11516 +panic11515: + call void @finch_panic(ptr @.str.7372, i64 301, ptr @.str.7373) unreachable -ok11111: +ok11516: %t24 = getelementptr inbounds %S.json.Reader, ptr %t22, i32 0, i32 1 %t25 = load i64, ptr %t24 %t26 = load ptr, ptr %a1 %t27 = icmp eq ptr %t26, null - br i1 %t27, label %panic11112, label %ok11113 -panic11112: - call void @finch_panic(ptr @.str.7166, i64 301, ptr @.str.7167) + br i1 %t27, label %panic11517, label %ok11518 +panic11517: + call void @finch_panic(ptr @.str.7374, i64 301, ptr @.str.7375) unreachable -ok11113: +ok11518: %t28 = getelementptr inbounds %S.json.Reader, ptr %t26, i32 0, i32 1 %t29 = load i64, ptr %t28 %t30 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t31 = load i64, ptr %t30 %t32 = add i64 %t29, %t31 - call void @finch_str_sub(ptr %a21, ptr %a20, i64 %t25, i64 %t32, ptr @.str.7163, i64 301) + call void @finch_str_sub(ptr %a21, ptr %a20, i64 %t25, i64 %t32, ptr @.str.7371, i64 301) %t33 = load { ptr, i64, i64 }, ptr %a21 %t34 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } %t33, ptr %a35 @@ -111266,11 +115291,11 @@ ok11113: %t38 = icmp ne i32 %t37, 0 store { ptr, i64, i64 } %t33, ptr %a39 call void @finch_str_drop(ptr %a39) - br label %logic.rend11114 -logic.rend11114: - br label %logic.end11107 -logic.end11107: - %t40 = phi i1 [ false, %logic.from11105 ], [ %t38, %logic.rend11114 ] + br label %logic.rend11519 +logic.rend11519: + br label %logic.end11512 +logic.end11512: + %t40 = phi i1 [ false, %logic.from11510 ], [ %t38, %logic.rend11519 ] ret i1 %t40 } @@ -111292,16 +115317,16 @@ entry: %t4 = load { ptr, i64, i64 }, ptr %a2 %t5 = call i1 @finch.json.comes(ptr %t3, { ptr, i64, i64 } %t4) %t6 = xor i1 %t5, true - br i1 %t6, label %then11115, label %endif11117 -then11115: + br i1 %t6, label %then11520, label %endif11522 +then11520: %t7 = load ptr, ptr %a1 %t8 = load { ptr, i64, i64 }, ptr %a2 - store { ptr, i64, i64 } { ptr @.str.7168, i64 1, i64 0 }, ptr %a10 + store { ptr, i64, i64 } { ptr @.str.7376, i64 1, i64 0 }, ptr %a10 store { ptr, i64, i64 } %t8, ptr %a11 call void @finch_str_concat(ptr %a9, ptr %a10, ptr %a11) %t12 = load { ptr, i64, i64 }, ptr %a9 store { ptr, i64, i64 } %t12, ptr %a14 - store { ptr, i64, i64 } { ptr @.str.7169, i64 1, i64 0 }, ptr %a15 + store { ptr, i64, i64 } { ptr @.str.7377, i64 1, i64 0 }, ptr %a15 call void @finch_str_concat(ptr %a13, ptr %a14, ptr %a15) store { ptr, i64, i64 } %t12, ptr %a16 call void @finch_str_drop(ptr %a16) @@ -111311,16 +115336,16 @@ then11115: call void @finch_str_drop(ptr %a19) %t20 = insertvalue { i1, i8, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t18, 2 ret { i1, i8, { ptr, i64, i64 } } %t20 -endif11117: +endif11522: %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t22 = load i64, ptr %t21 %t23 = load ptr, ptr %a1 %t24 = icmp eq ptr %t23, null - br i1 %t24, label %panic11118, label %ok11119 -panic11118: - call void @finch_panic(ptr @.str.7170, i64 308, ptr @.str.7171) + br i1 %t24, label %panic11523, label %ok11524 +panic11523: + call void @finch_panic(ptr @.str.7378, i64 308, ptr @.str.7379) unreachable -ok11119: +ok11524: %t25 = getelementptr inbounds %S.json.Reader, ptr %t23, i32 0, i32 1 %t26 = load i64, ptr %t25 %t27 = add i64 %t26, %t22 @@ -111334,69 +115359,69 @@ entry: store i8 %p0, ptr %a1 %t2 = load i8, ptr %a1 %t3 = icmp uge i8 %t2, 48 - br label %logic.from11120 -logic.from11120: - br i1 %t3, label %logic.rhs11121, label %logic.end11122 -logic.rhs11121: + br label %logic.from11525 +logic.from11525: + br i1 %t3, label %logic.rhs11526, label %logic.end11527 +logic.rhs11526: %t4 = load i8, ptr %a1 %t5 = icmp ule i8 %t4, 57 - br label %logic.rend11123 -logic.rend11123: - br label %logic.end11122 -logic.end11122: - %t6 = phi i1 [ false, %logic.from11120 ], [ %t5, %logic.rend11123 ] - br i1 %t6, label %then11124, label %endif11126 -then11124: + br label %logic.rend11528 +logic.rend11528: + br label %logic.end11527 +logic.end11527: + %t6 = phi i1 [ false, %logic.from11525 ], [ %t5, %logic.rend11528 ] + br i1 %t6, label %then11529, label %endif11531 +then11529: %t7 = load i8, ptr %a1 %t8 = zext i8 %t7 to i64 %t9 = zext i8 48 to i64 %t10 = sub i64 %t8, %t9 ret i64 %t10 -endif11126: +endif11531: %t11 = load i8, ptr %a1 %t12 = icmp uge i8 %t11, 97 - br label %logic.from11127 -logic.from11127: - br i1 %t12, label %logic.rhs11128, label %logic.end11129 -logic.rhs11128: + br label %logic.from11532 +logic.from11532: + br i1 %t12, label %logic.rhs11533, label %logic.end11534 +logic.rhs11533: %t13 = load i8, ptr %a1 %t14 = icmp ule i8 %t13, 102 - br label %logic.rend11130 -logic.rend11130: - br label %logic.end11129 -logic.end11129: - %t15 = phi i1 [ false, %logic.from11127 ], [ %t14, %logic.rend11130 ] - br i1 %t15, label %then11131, label %endif11133 -then11131: + br label %logic.rend11535 +logic.rend11535: + br label %logic.end11534 +logic.end11534: + %t15 = phi i1 [ false, %logic.from11532 ], [ %t14, %logic.rend11535 ] + br i1 %t15, label %then11536, label %endif11538 +then11536: %t16 = load i8, ptr %a1 %t17 = zext i8 %t16 to i64 %t18 = zext i8 97 to i64 %t19 = sub i64 %t17, %t18 %t20 = add i64 %t19, 10 ret i64 %t20 -endif11133: +endif11538: %t21 = load i8, ptr %a1 %t22 = icmp uge i8 %t21, 65 - br label %logic.from11134 -logic.from11134: - br i1 %t22, label %logic.rhs11135, label %logic.end11136 -logic.rhs11135: + br label %logic.from11539 +logic.from11539: + br i1 %t22, label %logic.rhs11540, label %logic.end11541 +logic.rhs11540: %t23 = load i8, ptr %a1 %t24 = icmp ule i8 %t23, 70 - br label %logic.rend11137 -logic.rend11137: - br label %logic.end11136 -logic.end11136: - %t25 = phi i1 [ false, %logic.from11134 ], [ %t24, %logic.rend11137 ] - br i1 %t25, label %then11138, label %endif11140 -then11138: + br label %logic.rend11542 +logic.rend11542: + br label %logic.end11541 +logic.end11541: + %t25 = phi i1 [ false, %logic.from11539 ], [ %t24, %logic.rend11542 ] + br i1 %t25, label %then11543, label %endif11545 +then11543: %t26 = load i8, ptr %a1 %t27 = zext i8 %t26 to i64 %t28 = zext i8 65 to i64 %t29 = sub i64 %t27, %t28 %t30 = add i64 %t29, 10 ret i64 %t30 -endif11140: +endif11545: ret i64 -1 } @@ -111410,8 +115435,8 @@ entry: store { ptr, i64, i64 } zeroinitializer, ptr %a2 %t3 = load i64, ptr %a1 %t4 = icmp slt i64 %t3, 128 - br i1 %t4, label %then11141, label %else11142 -then11141: + br i1 %t4, label %then11546, label %else11547 +then11546: %t5 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t6 = load i64, ptr %a1 %t7 = trunc i64 %t6 to i8 @@ -111422,12 +115447,12 @@ then11141: %t11 = getelementptr inbounds i8, ptr %t10, i64 %t8 store i8 %t7, ptr %t11 store i64 %t9, ptr %t5 - br label %endif11143 -else11142: + br label %endif11548 +else11547: %t12 = load i64, ptr %a1 %t13 = icmp slt i64 %t12, 2048 - br i1 %t13, label %then11144, label %else11145 -then11144: + br i1 %t13, label %then11549, label %else11550 +then11549: %t14 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t15 = load i64, ptr %a1 %t16 = sdiv i64 %t15, 64 @@ -111452,12 +115477,12 @@ then11144: %t31 = getelementptr inbounds i8, ptr %t30, i64 %t28 store i8 %t27, ptr %t31 store i64 %t29, ptr %t23 - br label %endif11146 -else11145: + br label %endif11551 +else11550: %t32 = load i64, ptr %a1 %t33 = icmp slt i64 %t32, 65536 - br i1 %t33, label %then11147, label %else11148 -then11147: + br i1 %t33, label %then11552, label %else11553 +then11552: %t34 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t35 = load i64, ptr %a1 %t36 = sdiv i64 %t35, 4096 @@ -111495,8 +115520,8 @@ then11147: %t61 = getelementptr inbounds i8, ptr %t60, i64 %t58 store i8 %t57, ptr %t61 store i64 %t59, ptr %t53 - br label %endif11149 -else11148: + br label %endif11554 +else11553: %t62 = getelementptr inbounds { ptr, i64, i64 }, ptr %a2, i32 0, i32 1 %t63 = load i64, ptr %a1 %t64 = sdiv i64 %t63, 262144 @@ -111547,12 +115572,12 @@ else11148: %t99 = getelementptr inbounds i8, ptr %t98, i64 %t96 store i8 %t95, ptr %t99 store i64 %t97, ptr %t91 - br label %endif11149 -endif11149: - br label %endif11146 -endif11146: - br label %endif11143 -endif11143: + br label %endif11554 +endif11554: + br label %endif11551 +endif11551: + br label %endif11548 +endif11548: %t100 = load { ptr, i64, i64 }, ptr %a2 store { ptr, i64, i64 } zeroinitializer, ptr %a101 store { ptr, i64, i64 } %t100, ptr %a102 @@ -111570,105 +115595,105 @@ entry: store ptr %p0, ptr %a1 store i64 0, ptr %a2 store i64 0, ptr %a3 - br label %for.cond11150 -for.cond11150: + br label %for.cond11555 +for.cond11555: %t4 = load i64, ptr %a3 %t5 = icmp slt i64 %t4, 4 - br i1 %t5, label %for.body11151, label %for.end11153 -for.body11151: + br i1 %t5, label %for.body11556, label %for.end11558 +for.body11556: %t6 = load ptr, ptr %a1 %t7 = icmp eq ptr %t6, null - br i1 %t7, label %panic11154, label %ok11155 -panic11154: - call void @finch_panic(ptr @.str.7172, i64 348, ptr @.str.7173) + br i1 %t7, label %panic11559, label %ok11560 +panic11559: + call void @finch_panic(ptr @.str.7380, i64 348, ptr @.str.7381) unreachable -ok11155: +ok11560: %t8 = getelementptr inbounds %S.json.Reader, ptr %t6, i32 0, i32 1 %t9 = load i64, ptr %t8 %t10 = load ptr, ptr %a1 %t11 = icmp eq ptr %t10, null - br i1 %t11, label %panic11156, label %ok11157 -panic11156: - call void @finch_panic(ptr @.str.7174, i64 348, ptr @.str.7175) + br i1 %t11, label %panic11561, label %ok11562 +panic11561: + call void @finch_panic(ptr @.str.7382, i64 348, ptr @.str.7383) unreachable -ok11157: +ok11562: %t12 = getelementptr inbounds %S.json.Reader, ptr %t10, i32 0, i32 0 %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %t12, i32 0, i32 1 %t14 = load i64, ptr %t13 %t15 = icmp sge i64 %t9, %t14 - br label %logic.from11158 -logic.from11158: - br i1 %t15, label %logic.end11160, label %logic.rhs11159 -logic.rhs11159: + br label %logic.from11563 +logic.from11563: + br i1 %t15, label %logic.end11565, label %logic.rhs11564 +logic.rhs11564: %t16 = load ptr, ptr %a1 %t17 = icmp eq ptr %t16, null - br i1 %t17, label %panic11161, label %ok11162 -panic11161: - call void @finch_panic(ptr @.str.7176, i64 348, ptr @.str.7177) + br i1 %t17, label %panic11566, label %ok11567 +panic11566: + call void @finch_panic(ptr @.str.7384, i64 348, ptr @.str.7385) unreachable -ok11162: +ok11567: %t18 = getelementptr inbounds %S.json.Reader, ptr %t16, i32 0, i32 0 %t19 = load ptr, ptr %a1 %t20 = icmp eq ptr %t19, null - br i1 %t20, label %panic11163, label %ok11164 -panic11163: - call void @finch_panic(ptr @.str.7178, i64 348, ptr @.str.7179) + br i1 %t20, label %panic11568, label %ok11569 +panic11568: + call void @finch_panic(ptr @.str.7386, i64 348, ptr @.str.7387) unreachable -ok11164: +ok11569: %t21 = getelementptr inbounds %S.json.Reader, ptr %t19, i32 0, i32 1 %t22 = load i64, ptr %t21 %t23 = load { ptr, i64, i64 }, ptr %t18 %t24 = extractvalue { ptr, i64, i64 } %t23, 1 %t25 = icmp uge i64 %t22, %t24 - br i1 %t25, label %range11165, label %inrange11166 -range11165: - call void @finch_panic_index(ptr @.str.7180, i64 348, i64 %t22, i64 %t24) + br i1 %t25, label %range11570, label %inrange11571 +range11570: + call void @finch_panic_index(ptr @.str.7388, i64 348, i64 %t22, i64 %t24) unreachable -inrange11166: +inrange11571: %t26 = extractvalue { ptr, i64, i64 } %t23, 0 %t27 = getelementptr inbounds i8, ptr %t26, i64 %t22 %t28 = load i8, ptr %t27 %t29 = call i64 @finch.json.hex_value(i8 %t28) %t30 = icmp slt i64 %t29, 0 - br label %logic.rend11167 -logic.rend11167: - br label %logic.end11160 -logic.end11160: - %t31 = phi i1 [ true, %logic.from11158 ], [ %t30, %logic.rend11167 ] - br i1 %t31, label %then11168, label %endif11170 -then11168: + br label %logic.rend11572 +logic.rend11572: + br label %logic.end11565 +logic.end11565: + %t31 = phi i1 [ true, %logic.from11563 ], [ %t30, %logic.rend11572 ] + br i1 %t31, label %then11573, label %endif11575 +then11573: %t32 = load ptr, ptr %a1 - %t33 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t32, { ptr, i64, i64 } { ptr @.str.7181, i64 19, i64 0 }) + %t33 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t32, { ptr, i64, i64 } { ptr @.str.7389, i64 19, i64 0 }) %t34 = insertvalue { i1, i64, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t33, 2 ret { i1, i64, { ptr, i64, i64 } } %t34 -endif11170: +endif11575: %t35 = load i64, ptr %a2 %t36 = mul i64 %t35, 16 %t37 = load ptr, ptr %a1 %t38 = icmp eq ptr %t37, null - br i1 %t38, label %panic11171, label %ok11172 -panic11171: - call void @finch_panic(ptr @.str.7182, i64 351, ptr @.str.7183) + br i1 %t38, label %panic11576, label %ok11577 +panic11576: + call void @finch_panic(ptr @.str.7390, i64 351, ptr @.str.7391) unreachable -ok11172: +ok11577: %t39 = getelementptr inbounds %S.json.Reader, ptr %t37, i32 0, i32 0 %t40 = load ptr, ptr %a1 %t41 = icmp eq ptr %t40, null - br i1 %t41, label %panic11173, label %ok11174 -panic11173: - call void @finch_panic(ptr @.str.7184, i64 351, ptr @.str.7185) + br i1 %t41, label %panic11578, label %ok11579 +panic11578: + call void @finch_panic(ptr @.str.7392, i64 351, ptr @.str.7393) unreachable -ok11174: +ok11579: %t42 = getelementptr inbounds %S.json.Reader, ptr %t40, i32 0, i32 1 %t43 = load i64, ptr %t42 %t44 = load { ptr, i64, i64 }, ptr %t39 %t45 = extractvalue { ptr, i64, i64 } %t44, 1 %t46 = icmp uge i64 %t43, %t45 - br i1 %t46, label %range11175, label %inrange11176 -range11175: - call void @finch_panic_index(ptr @.str.7186, i64 351, i64 %t43, i64 %t45) + br i1 %t46, label %range11580, label %inrange11581 +range11580: + call void @finch_panic_index(ptr @.str.7394, i64 351, i64 %t43, i64 %t45) unreachable -inrange11176: +inrange11581: %t47 = extractvalue { ptr, i64, i64 } %t44, 0 %t48 = getelementptr inbounds i8, ptr %t47, i64 %t43 %t49 = load i8, ptr %t48 @@ -111677,22 +115702,22 @@ inrange11176: store i64 %t51, ptr %a2 %t52 = load ptr, ptr %a1 %t53 = icmp eq ptr %t52, null - br i1 %t53, label %panic11177, label %ok11178 -panic11177: - call void @finch_panic(ptr @.str.7187, i64 352, ptr @.str.7188) + br i1 %t53, label %panic11582, label %ok11583 +panic11582: + call void @finch_panic(ptr @.str.7395, i64 352, ptr @.str.7396) unreachable -ok11178: +ok11583: %t54 = getelementptr inbounds %S.json.Reader, ptr %t52, i32 0, i32 1 %t55 = load i64, ptr %t54 %t56 = add i64 %t55, 1 store i64 %t56, ptr %t54 - br label %for.step11152 -for.step11152: + br label %for.step11557 +for.step11557: %t57 = load i64, ptr %a3 %t58 = add i64 %t57, 1 store i64 %t58, ptr %a3 - br label %for.cond11150 -for.end11153: + br label %for.cond11555 +for.end11558: %t59 = load i64, ptr %a2 %t60 = insertvalue { i1, i64, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 %t61 = insertvalue { i1, i64, { ptr, i64, i64 } } %t60, i64 %t59, 1 @@ -111752,11 +115777,11 @@ entry: store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 %t3 = icmp eq ptr %t2, null - br i1 %t3, label %panic11179, label %ok11180 -panic11179: - call void @finch_panic(ptr @.str.7189, i64 358, ptr @.str.7190) + br i1 %t3, label %panic11584, label %ok11585 +panic11584: + call void @finch_panic(ptr @.str.7397, i64 358, ptr @.str.7398) unreachable -ok11180: +ok11585: %t4 = getelementptr inbounds %S.json.Reader, ptr %t2, i32 0, i32 1 %t5 = load i64, ptr %t4 %t6 = add i64 %t5, 1 @@ -111764,50 +115789,50 @@ ok11180: store { ptr, i64, i64 } zeroinitializer, ptr %a7 %t8 = load ptr, ptr %a1 %t9 = icmp eq ptr %t8, null - br i1 %t9, label %panic11181, label %ok11182 -panic11181: - call void @finch_panic(ptr @.str.7191, i64 360, ptr @.str.7192) + br i1 %t9, label %panic11586, label %ok11587 +panic11586: + call void @finch_panic(ptr @.str.7399, i64 360, ptr @.str.7400) unreachable -ok11182: +ok11587: %t10 = getelementptr inbounds %S.json.Reader, ptr %t8, i32 0, i32 1 %t11 = load i64, ptr %t10 store i64 %t11, ptr %a12 - br label %while.cond11183 -while.cond11183: - br label %while.body11184 -while.body11184: + br label %while.cond11588 +while.cond11588: + br label %while.body11589 +while.body11589: %t13 = load ptr, ptr %a1 %t14 = icmp eq ptr %t13, null - br i1 %t14, label %panic11186, label %ok11187 -panic11186: - call void @finch_panic(ptr @.str.7193, i64 362, ptr @.str.7194) + br i1 %t14, label %panic11591, label %ok11592 +panic11591: + call void @finch_panic(ptr @.str.7401, i64 362, ptr @.str.7402) unreachable -ok11187: +ok11592: %t15 = getelementptr inbounds %S.json.Reader, ptr %t13, i32 0, i32 1 %t16 = load i64, ptr %t15 %t17 = load ptr, ptr %a1 %t18 = icmp eq ptr %t17, null - br i1 %t18, label %panic11188, label %ok11189 -panic11188: - call void @finch_panic(ptr @.str.7195, i64 362, ptr @.str.7196) + br i1 %t18, label %panic11593, label %ok11594 +panic11593: + call void @finch_panic(ptr @.str.7403, i64 362, ptr @.str.7404) unreachable -ok11189: +ok11594: %t19 = getelementptr inbounds %S.json.Reader, ptr %t17, i32 0, i32 0 %t20 = getelementptr inbounds { ptr, i64, i64 }, ptr %t19, i32 0, i32 1 %t21 = load i64, ptr %t20 %t22 = icmp sge i64 %t16, %t21 - br i1 %t22, label %then11190, label %endif11192 -then11190: + br i1 %t22, label %then11595, label %endif11597 +then11595: %t23 = load ptr, ptr %a1 %t24 = call { ptr, i64, i64 } @finch.json.where(ptr %t23) - store { ptr, i64, i64 } { ptr @.str.7197, i64 30, i64 0 }, ptr %a26 + store { ptr, i64, i64 } { ptr @.str.7405, i64 30, i64 0 }, ptr %a26 store { ptr, i64, i64 } %t24, ptr %a27 call void @finch_str_concat(ptr %a25, ptr %a26, ptr %a27) store { ptr, i64, i64 } %t24, ptr %a28 call void @finch_str_drop(ptr %a28) %t29 = load { ptr, i64, i64 }, ptr %a25 store { ptr, i64, i64 } %t29, ptr %a31 - store { ptr, i64, i64 } { ptr @.str.7198, i64 1, i64 0 }, ptr %a32 + store { ptr, i64, i64 } { ptr @.str.7406, i64 1, i64 0 }, ptr %a32 call void @finch_str_concat(ptr %a30, ptr %a31, ptr %a32) store { ptr, i64, i64 } %t29, ptr %a33 call void @finch_str_drop(ptr %a33) @@ -111815,62 +115840,62 @@ then11190: call void @finch.drop.arr_str(ptr %a7) %t35 = insertvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t34, 2 ret { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t35 -endif11192: +endif11597: %t36 = load ptr, ptr %a1 %t37 = icmp eq ptr %t36, null - br i1 %t37, label %panic11193, label %ok11194 -panic11193: - call void @finch_panic(ptr @.str.7199, i64 365, ptr @.str.7200) + br i1 %t37, label %panic11598, label %ok11599 +panic11598: + call void @finch_panic(ptr @.str.7407, i64 365, ptr @.str.7408) unreachable -ok11194: +ok11599: %t38 = getelementptr inbounds %S.json.Reader, ptr %t36, i32 0, i32 0 %t39 = load ptr, ptr %a1 %t40 = icmp eq ptr %t39, null - br i1 %t40, label %panic11195, label %ok11196 -panic11195: - call void @finch_panic(ptr @.str.7201, i64 365, ptr @.str.7202) + br i1 %t40, label %panic11600, label %ok11601 +panic11600: + call void @finch_panic(ptr @.str.7409, i64 365, ptr @.str.7410) unreachable -ok11196: +ok11601: %t41 = getelementptr inbounds %S.json.Reader, ptr %t39, i32 0, i32 1 %t42 = load i64, ptr %t41 %t43 = load { ptr, i64, i64 }, ptr %t38 %t44 = extractvalue { ptr, i64, i64 } %t43, 1 %t45 = icmp uge i64 %t42, %t44 - br i1 %t45, label %range11197, label %inrange11198 -range11197: - call void @finch_panic_index(ptr @.str.7203, i64 365, i64 %t42, i64 %t44) + br i1 %t45, label %range11602, label %inrange11603 +range11602: + call void @finch_panic_index(ptr @.str.7411, i64 365, i64 %t42, i64 %t44) unreachable -inrange11198: +inrange11603: %t46 = extractvalue { ptr, i64, i64 } %t43, 0 %t47 = getelementptr inbounds i8, ptr %t46, i64 %t42 %t48 = load i8, ptr %t47 store i8 %t48, ptr %a49 %t50 = load i8, ptr %a49 %t51 = icmp eq i8 %t50, 34 - br i1 %t51, label %then11199, label %endif11201 -then11199: + br i1 %t51, label %then11604, label %endif11606 +then11604: %t52 = getelementptr inbounds { ptr, i64, i64 }, ptr %a7, i32 0, i32 1 %t53 = load ptr, ptr %a1 %t54 = icmp eq ptr %t53, null - br i1 %t54, label %panic11202, label %ok11203 -panic11202: - call void @finch_panic(ptr @.str.7204, i64 367, ptr @.str.7205) + br i1 %t54, label %panic11607, label %ok11608 +panic11607: + call void @finch_panic(ptr @.str.7412, i64 367, ptr @.str.7413) unreachable -ok11203: +ok11608: %t55 = getelementptr inbounds %S.json.Reader, ptr %t53, i32 0, i32 0 %t56 = load { ptr, i64, i64 }, ptr %t55 store { ptr, i64, i64 } %t56, ptr %a57 %t59 = load i64, ptr %a12 %t60 = load ptr, ptr %a1 %t61 = icmp eq ptr %t60, null - br i1 %t61, label %panic11204, label %ok11205 -panic11204: - call void @finch_panic(ptr @.str.7207, i64 367, ptr @.str.7208) + br i1 %t61, label %panic11609, label %ok11610 +panic11609: + call void @finch_panic(ptr @.str.7415, i64 367, ptr @.str.7416) unreachable -ok11205: +ok11610: %t62 = getelementptr inbounds %S.json.Reader, ptr %t60, i32 0, i32 1 %t63 = load i64, ptr %t62 - call void @finch_str_sub(ptr %a58, ptr %a57, i64 %t59, i64 %t63, ptr @.str.7206, i64 367) + call void @finch_str_sub(ptr %a58, ptr %a57, i64 %t59, i64 %t63, ptr @.str.7414, i64 367) %t64 = load { ptr, i64, i64 }, ptr %a58 %t65 = load i64, ptr %t52 %t66 = add i64 %t65, 1 @@ -111881,39 +115906,39 @@ ok11205: store i64 %t66, ptr %t52 %t69 = load ptr, ptr %a1 %t70 = icmp eq ptr %t69, null - br i1 %t70, label %panic11206, label %ok11207 -panic11206: - call void @finch_panic(ptr @.str.7209, i64 368, ptr @.str.7210) + br i1 %t70, label %panic11611, label %ok11612 +panic11611: + call void @finch_panic(ptr @.str.7417, i64 368, ptr @.str.7418) unreachable -ok11207: +ok11612: %t71 = getelementptr inbounds %S.json.Reader, ptr %t69, i32 0, i32 1 %t72 = load i64, ptr %t71 %t73 = add i64 %t72, 1 store i64 %t73, ptr %t71 %t74 = getelementptr inbounds { ptr, i64, i64 }, ptr %a7, i32 0, i32 1 - store { ptr, i64, i64 } { ptr @.str.7211, i64 0, i64 0 }, ptr %a75 + store { ptr, i64, i64 } { ptr @.str.7419, i64 0, i64 0 }, ptr %a75 call void @finch_str_join(ptr %a76, ptr %a7, ptr %a75) %t77 = load { ptr, i64, i64 }, ptr %a76 call void @finch.drop.arr_str(ptr %a7) %t78 = insertvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 %t79 = insertvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t78, { ptr, i64, i64 } %t77, 1 ret { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t79 -endif11201: +endif11606: %t80 = load i8, ptr %a49 %t81 = zext i8 %t80 to i64 %t82 = icmp slt i64 %t81, 32 - br i1 %t82, label %then11208, label %endif11210 -then11208: + br i1 %t82, label %then11613, label %endif11615 +then11613: %t83 = load ptr, ptr %a1 %t84 = call { ptr, i64, i64 } @finch.json.where(ptr %t83) - store { ptr, i64, i64 } { ptr @.str.7212, i64 55, i64 0 }, ptr %a86 + store { ptr, i64, i64 } { ptr @.str.7420, i64 55, i64 0 }, ptr %a86 store { ptr, i64, i64 } %t84, ptr %a87 call void @finch_str_concat(ptr %a85, ptr %a86, ptr %a87) store { ptr, i64, i64 } %t84, ptr %a88 call void @finch_str_drop(ptr %a88) %t89 = load { ptr, i64, i64 }, ptr %a85 store { ptr, i64, i64 } %t89, ptr %a91 - store { ptr, i64, i64 } { ptr @.str.7213, i64 1, i64 0 }, ptr %a92 + store { ptr, i64, i64 } { ptr @.str.7421, i64 1, i64 0 }, ptr %a92 call void @finch_str_concat(ptr %a90, ptr %a91, ptr %a92) store { ptr, i64, i64 } %t89, ptr %a93 call void @finch_str_drop(ptr %a93) @@ -111921,46 +115946,46 @@ then11208: call void @finch.drop.arr_str(ptr %a7) %t95 = insertvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t94, 2 ret { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t95 -endif11210: +endif11615: %t96 = load i8, ptr %a49 %t97 = icmp ne i8 %t96, 92 - br i1 %t97, label %then11211, label %endif11213 -then11211: + br i1 %t97, label %then11616, label %endif11618 +then11616: %t98 = load ptr, ptr %a1 %t99 = icmp eq ptr %t98, null - br i1 %t99, label %panic11214, label %ok11215 -panic11214: - call void @finch_panic(ptr @.str.7214, i64 375, ptr @.str.7215) + br i1 %t99, label %panic11619, label %ok11620 +panic11619: + call void @finch_panic(ptr @.str.7422, i64 375, ptr @.str.7423) unreachable -ok11215: +ok11620: %t100 = getelementptr inbounds %S.json.Reader, ptr %t98, i32 0, i32 1 %t101 = load i64, ptr %t100 %t102 = add i64 %t101, 1 store i64 %t102, ptr %t100 - br label %while.cond11183 -endif11213: + br label %while.cond11588 +endif11618: %t103 = getelementptr inbounds { ptr, i64, i64 }, ptr %a7, i32 0, i32 1 %t104 = load ptr, ptr %a1 %t105 = icmp eq ptr %t104, null - br i1 %t105, label %panic11216, label %ok11217 -panic11216: - call void @finch_panic(ptr @.str.7216, i64 378, ptr @.str.7217) + br i1 %t105, label %panic11621, label %ok11622 +panic11621: + call void @finch_panic(ptr @.str.7424, i64 378, ptr @.str.7425) unreachable -ok11217: +ok11622: %t106 = getelementptr inbounds %S.json.Reader, ptr %t104, i32 0, i32 0 %t107 = load { ptr, i64, i64 }, ptr %t106 store { ptr, i64, i64 } %t107, ptr %a108 %t110 = load i64, ptr %a12 %t111 = load ptr, ptr %a1 %t112 = icmp eq ptr %t111, null - br i1 %t112, label %panic11218, label %ok11219 -panic11218: - call void @finch_panic(ptr @.str.7219, i64 378, ptr @.str.7220) + br i1 %t112, label %panic11623, label %ok11624 +panic11623: + call void @finch_panic(ptr @.str.7427, i64 378, ptr @.str.7428) unreachable -ok11219: +ok11624: %t113 = getelementptr inbounds %S.json.Reader, ptr %t111, i32 0, i32 1 %t114 = load i64, ptr %t113 - call void @finch_str_sub(ptr %a109, ptr %a108, i64 %t110, i64 %t114, ptr @.str.7218, i64 378) + call void @finch_str_sub(ptr %a109, ptr %a108, i64 %t110, i64 %t114, ptr @.str.7426, i64 378) %t115 = load { ptr, i64, i64 }, ptr %a109 %t116 = load i64, ptr %t103 %t117 = add i64 %t116, 1 @@ -111971,11 +115996,11 @@ ok11219: store i64 %t117, ptr %t103 %t120 = load ptr, ptr %a1 %t121 = icmp eq ptr %t120, null - br i1 %t121, label %panic11220, label %ok11221 -panic11220: - call void @finch_panic(ptr @.str.7221, i64 379, ptr @.str.7222) + br i1 %t121, label %panic11625, label %ok11626 +panic11625: + call void @finch_panic(ptr @.str.7429, i64 379, ptr @.str.7430) unreachable -ok11221: +ok11626: %t122 = getelementptr inbounds %S.json.Reader, ptr %t120, i32 0, i32 1 %t123 = load i64, ptr %t122 %t124 = add i64 %t123, 1 @@ -111985,61 +116010,61 @@ ok11221: store i8 %t126, ptr %a127 %t128 = load ptr, ptr %a1 %t129 = icmp eq ptr %t128, null - br i1 %t129, label %panic11222, label %ok11223 -panic11222: - call void @finch_panic(ptr @.str.7223, i64 381, ptr @.str.7224) + br i1 %t129, label %panic11627, label %ok11628 +panic11627: + call void @finch_panic(ptr @.str.7431, i64 381, ptr @.str.7432) unreachable -ok11223: +ok11628: %t130 = getelementptr inbounds %S.json.Reader, ptr %t128, i32 0, i32 1 %t131 = load i64, ptr %t130 %t132 = add i64 %t131, 1 store i64 %t132, ptr %t130 %t133 = load i8, ptr %a127 %t134 = icmp eq i8 %t133, 110 - br i1 %t134, label %then11224, label %else11225 -then11224: + br i1 %t134, label %then11629, label %else11630 +then11629: %t135 = getelementptr inbounds { ptr, i64, i64 }, ptr %a7, i32 0, i32 1 %t136 = load i64, ptr %t135 %t137 = add i64 %t136, 1 call void @finch_arr_reserve(ptr %a7, i64 %t137, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t138 = load ptr, ptr %a7 %t139 = getelementptr inbounds { ptr, i64, i64 }, ptr %t138, i64 %t136 - store { ptr, i64, i64 } { ptr @.str.7225, i64 1, i64 0 }, ptr %t139 + store { ptr, i64, i64 } { ptr @.str.7433, i64 1, i64 0 }, ptr %t139 store i64 %t137, ptr %t135 - br label %endif11226 -else11225: + br label %endif11631 +else11630: %t140 = load i8, ptr %a127 %t141 = icmp eq i8 %t140, 116 - br i1 %t141, label %then11227, label %else11228 -then11227: + br i1 %t141, label %then11632, label %else11633 +then11632: %t142 = getelementptr inbounds { ptr, i64, i64 }, ptr %a7, i32 0, i32 1 %t143 = load i64, ptr %t142 %t144 = add i64 %t143, 1 call void @finch_arr_reserve(ptr %a7, i64 %t144, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t145 = load ptr, ptr %a7 %t146 = getelementptr inbounds { ptr, i64, i64 }, ptr %t145, i64 %t143 - store { ptr, i64, i64 } { ptr @.str.7226, i64 1, i64 0 }, ptr %t146 + store { ptr, i64, i64 } { ptr @.str.7434, i64 1, i64 0 }, ptr %t146 store i64 %t144, ptr %t142 - br label %endif11229 -else11228: + br label %endif11634 +else11633: %t147 = load i8, ptr %a127 %t148 = icmp eq i8 %t147, 114 - br i1 %t148, label %then11230, label %else11231 -then11230: + br i1 %t148, label %then11635, label %else11636 +then11635: %t149 = getelementptr inbounds { ptr, i64, i64 }, ptr %a7, i32 0, i32 1 %t150 = load i64, ptr %t149 %t151 = add i64 %t150, 1 call void @finch_arr_reserve(ptr %a7, i64 %t151, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t152 = load ptr, ptr %a7 %t153 = getelementptr inbounds { ptr, i64, i64 }, ptr %t152, i64 %t150 - store { ptr, i64, i64 } { ptr @.str.7227, i64 1, i64 0 }, ptr %t153 + store { ptr, i64, i64 } { ptr @.str.7435, i64 1, i64 0 }, ptr %t153 store i64 %t151, ptr %t149 - br label %endif11232 -else11231: + br label %endif11637 +else11636: %t154 = load i8, ptr %a127 %t155 = icmp eq i8 %t154, 98 - br i1 %t155, label %then11233, label %else11234 -then11233: + br i1 %t155, label %then11638, label %else11639 +then11638: %t156 = getelementptr inbounds { ptr, i64, i64 }, ptr %a7, i32 0, i32 1 %t157 = call { ptr, i64, i64 } @finch.json.utf8(i64 8) %t158 = load i64, ptr %t156 @@ -112049,12 +116074,12 @@ then11233: %t161 = getelementptr inbounds { ptr, i64, i64 }, ptr %t160, i64 %t158 store { ptr, i64, i64 } %t157, ptr %t161 store i64 %t159, ptr %t156 - br label %endif11235 -else11234: + br label %endif11640 +else11639: %t162 = load i8, ptr %a127 %t163 = icmp eq i8 %t162, 102 - br i1 %t163, label %then11236, label %else11237 -then11236: + br i1 %t163, label %then11641, label %else11642 +then11641: %t164 = getelementptr inbounds { ptr, i64, i64 }, ptr %a7, i32 0, i32 1 %t165 = call { ptr, i64, i64 } @finch.json.utf8(i64 12) %t166 = load i64, ptr %t164 @@ -112064,34 +116089,34 @@ then11236: %t169 = getelementptr inbounds { ptr, i64, i64 }, ptr %t168, i64 %t166 store { ptr, i64, i64 } %t165, ptr %t169 store i64 %t167, ptr %t164 - br label %endif11238 -else11237: + br label %endif11643 +else11642: %t170 = load i8, ptr %a127 %t171 = icmp eq i8 %t170, 34 - br label %logic.from11239 -logic.from11239: - br i1 %t171, label %logic.end11241, label %logic.rhs11240 -logic.rhs11240: + br label %logic.from11644 +logic.from11644: + br i1 %t171, label %logic.end11646, label %logic.rhs11645 +logic.rhs11645: %t172 = load i8, ptr %a127 %t173 = icmp eq i8 %t172, 92 - br label %logic.rend11242 -logic.rend11242: - br label %logic.end11241 -logic.end11241: - %t174 = phi i1 [ true, %logic.from11239 ], [ %t173, %logic.rend11242 ] - br label %logic.from11243 -logic.from11243: - br i1 %t174, label %logic.end11245, label %logic.rhs11244 -logic.rhs11244: + br label %logic.rend11647 +logic.rend11647: + br label %logic.end11646 +logic.end11646: + %t174 = phi i1 [ true, %logic.from11644 ], [ %t173, %logic.rend11647 ] + br label %logic.from11648 +logic.from11648: + br i1 %t174, label %logic.end11650, label %logic.rhs11649 +logic.rhs11649: %t175 = load i8, ptr %a127 %t176 = icmp eq i8 %t175, 47 - br label %logic.rend11246 -logic.rend11246: - br label %logic.end11245 -logic.end11245: - %t177 = phi i1 [ true, %logic.from11243 ], [ %t176, %logic.rend11246 ] - br i1 %t177, label %then11247, label %else11248 -then11247: + br label %logic.rend11651 +logic.rend11651: + br label %logic.end11650 +logic.end11650: + %t177 = phi i1 [ true, %logic.from11648 ], [ %t176, %logic.rend11651 ] + br i1 %t177, label %then11652, label %else11653 +then11652: %t178 = getelementptr inbounds { ptr, i64, i64 }, ptr %a7, i32 0, i32 1 %t179 = load i8, ptr %a127 call void @finch_str_from_char(ptr %a180, i8 signext %t179) @@ -112103,58 +116128,58 @@ then11247: %t185 = getelementptr inbounds { ptr, i64, i64 }, ptr %t184, i64 %t182 store { ptr, i64, i64 } %t181, ptr %t185 store i64 %t183, ptr %t178 - br label %endif11249 -else11248: + br label %endif11654 +else11653: %t186 = load i8, ptr %a127 %t187 = icmp eq i8 %t186, 117 - br i1 %t187, label %then11250, label %else11251 -then11250: + br i1 %t187, label %then11655, label %else11656 +then11655: %t188 = load ptr, ptr %a1 %t189 = call { i1, i64, { ptr, i64, i64 } } @finch.json.read_hex4(ptr %t188) %t190 = extractvalue { i1, i64, { ptr, i64, i64 } } %t189, 0 %t191 = xor i1 %t190, true %t192 = extractvalue { i1, i64, { ptr, i64, i64 } } %t189, 2 %t193 = extractvalue { i1, i64, { ptr, i64, i64 } } %t189, 1 - br i1 %t191, label %try.failed11253, label %try.ok11254 -try.failed11253: + br i1 %t191, label %try.failed11658, label %try.ok11659 +try.failed11658: call void @finch.drop.arr_str(ptr %a7) %t194 = insertvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t192, 2 ret { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t194 -try.ok11254: +try.ok11659: store i64 %t193, ptr %a195 %t196 = load i64, ptr %a195 %t197 = icmp sge i64 %t196, 55296 - br label %logic.from11255 -logic.from11255: - br i1 %t197, label %logic.rhs11256, label %logic.end11257 -logic.rhs11256: + br label %logic.from11660 +logic.from11660: + br i1 %t197, label %logic.rhs11661, label %logic.end11662 +logic.rhs11661: %t198 = load i64, ptr %a195 %t199 = icmp slt i64 %t198, 56320 - br label %logic.rend11258 -logic.rend11258: - br label %logic.end11257 -logic.end11257: - %t200 = phi i1 [ false, %logic.from11255 ], [ %t199, %logic.rend11258 ] - br label %logic.from11259 -logic.from11259: - br i1 %t200, label %logic.rhs11260, label %logic.end11261 -logic.rhs11260: + br label %logic.rend11663 +logic.rend11663: + br label %logic.end11662 +logic.end11662: + %t200 = phi i1 [ false, %logic.from11660 ], [ %t199, %logic.rend11663 ] + br label %logic.from11664 +logic.from11664: + br i1 %t200, label %logic.rhs11665, label %logic.end11666 +logic.rhs11665: %t201 = load ptr, ptr %a1 - %t202 = call i1 @finch.json.comes(ptr %t201, { ptr, i64, i64 } { ptr @.str.7228, i64 2, i64 0 }) - br label %logic.rend11262 -logic.rend11262: - br label %logic.end11261 -logic.end11261: - %t203 = phi i1 [ false, %logic.from11259 ], [ %t202, %logic.rend11262 ] - br i1 %t203, label %then11263, label %endif11265 -then11263: + %t202 = call i1 @finch.json.comes(ptr %t201, { ptr, i64, i64 } { ptr @.str.7436, i64 2, i64 0 }) + br label %logic.rend11667 +logic.rend11667: + br label %logic.end11666 +logic.end11666: + %t203 = phi i1 [ false, %logic.from11664 ], [ %t202, %logic.rend11667 ] + br i1 %t203, label %then11668, label %endif11670 +then11668: %t204 = load ptr, ptr %a1 %t205 = icmp eq ptr %t204, null - br i1 %t205, label %panic11266, label %ok11267 -panic11266: - call void @finch_panic(ptr @.str.7229, i64 398, ptr @.str.7230) + br i1 %t205, label %panic11671, label %ok11672 +panic11671: + call void @finch_panic(ptr @.str.7437, i64 398, ptr @.str.7438) unreachable -ok11267: +ok11672: %t206 = getelementptr inbounds %S.json.Reader, ptr %t204, i32 0, i32 1 %t207 = load i64, ptr %t206 %t208 = add i64 %t207, 2 @@ -112165,12 +116190,12 @@ ok11267: %t212 = xor i1 %t211, true %t213 = extractvalue { i1, i64, { ptr, i64, i64 } } %t210, 2 %t214 = extractvalue { i1, i64, { ptr, i64, i64 } } %t210, 1 - br i1 %t212, label %try.failed11268, label %try.ok11269 -try.failed11268: + br i1 %t212, label %try.failed11673, label %try.ok11674 +try.failed11673: call void @finch.drop.arr_str(ptr %a7) %t215 = insertvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t213, 2 ret { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t215 -try.ok11269: +try.ok11674: store i64 %t214, ptr %a216 %t217 = load i64, ptr %a195 %t218 = sub i64 %t217, 55296 @@ -112180,8 +116205,8 @@ try.ok11269: %t222 = sub i64 %t221, 56320 %t223 = add i64 %t220, %t222 store i64 %t223, ptr %a195 - br label %endif11265 -endif11265: + br label %endif11670 +endif11670: %t224 = getelementptr inbounds { ptr, i64, i64 }, ptr %a7, i32 0, i32 1 %t225 = load i64, ptr %a195 %t226 = call { ptr, i64, i64 } @finch.json.utf8(i64 %t225) @@ -112192,19 +116217,19 @@ endif11265: %t230 = getelementptr inbounds { ptr, i64, i64 }, ptr %t229, i64 %t227 store { ptr, i64, i64 } %t226, ptr %t230 store i64 %t228, ptr %t224 - br label %endif11252 -else11251: + br label %endif11657 +else11656: %t231 = load i8, ptr %a127 call void @finch_str_from_char(ptr %a232, i8 signext %t231) %t233 = load { ptr, i64, i64 }, ptr %a232 - store { ptr, i64, i64 } { ptr @.str.7231, i64 22, i64 0 }, ptr %a235 + store { ptr, i64, i64 } { ptr @.str.7439, i64 22, i64 0 }, ptr %a235 store { ptr, i64, i64 } %t233, ptr %a236 call void @finch_str_concat(ptr %a234, ptr %a235, ptr %a236) store { ptr, i64, i64 } %t233, ptr %a237 call void @finch_str_drop(ptr %a237) %t238 = load { ptr, i64, i64 }, ptr %a234 store { ptr, i64, i64 } %t238, ptr %a240 - store { ptr, i64, i64 } { ptr @.str.7232, i64 12, i64 0 }, ptr %a241 + store { ptr, i64, i64 } { ptr @.str.7440, i64 12, i64 0 }, ptr %a241 call void @finch_str_concat(ptr %a239, ptr %a240, ptr %a241) store { ptr, i64, i64 } %t238, ptr %a242 call void @finch_str_drop(ptr %a242) @@ -112220,7 +116245,7 @@ else11251: call void @finch_str_drop(ptr %a250) %t251 = load { ptr, i64, i64 }, ptr %a246 store { ptr, i64, i64 } %t251, ptr %a253 - store { ptr, i64, i64 } { ptr @.str.7233, i64 1, i64 0 }, ptr %a254 + store { ptr, i64, i64 } { ptr @.str.7441, i64 1, i64 0 }, ptr %a254 call void @finch_str_concat(ptr %a252, ptr %a253, ptr %a254) store { ptr, i64, i64 } %t251, ptr %a255 call void @finch_str_drop(ptr %a255) @@ -112228,30 +116253,30 @@ else11251: call void @finch.drop.arr_str(ptr %a7) %t257 = insertvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t256, 2 ret { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t257 -endif11252: - br label %endif11249 -endif11249: - br label %endif11238 -endif11238: - br label %endif11235 -endif11235: - br label %endif11232 -endif11232: - br label %endif11229 -endif11229: - br label %endif11226 -endif11226: +endif11657: + br label %endif11654 +endif11654: + br label %endif11643 +endif11643: + br label %endif11640 +endif11640: + br label %endif11637 +endif11637: + br label %endif11634 +endif11634: + br label %endif11631 +endif11631: %t258 = load ptr, ptr %a1 %t259 = icmp eq ptr %t258, null - br i1 %t259, label %panic11270, label %ok11271 -panic11270: - call void @finch_panic(ptr @.str.7234, i64 406, ptr @.str.7235) + br i1 %t259, label %panic11675, label %ok11676 +panic11675: + call void @finch_panic(ptr @.str.7442, i64 406, ptr @.str.7443) unreachable -ok11271: +ok11676: %t260 = getelementptr inbounds %S.json.Reader, ptr %t258, i32 0, i32 1 %t261 = load i64, ptr %t260 store i64 %t261, ptr %a12 - br label %while.cond11183 + br label %while.cond11588 } define internal { i1, %S.json.Json, { ptr, i64, i64 } } @finch.json.read_number(ptr %p0) { @@ -112269,356 +116294,356 @@ entry: store ptr %p0, ptr %a1 %t2 = load ptr, ptr %a1 %t3 = icmp eq ptr %t2, null - br i1 %t3, label %panic11272, label %ok11273 -panic11272: - call void @finch_panic(ptr @.str.7236, i64 411, ptr @.str.7237) + br i1 %t3, label %panic11677, label %ok11678 +panic11677: + call void @finch_panic(ptr @.str.7444, i64 411, ptr @.str.7445) unreachable -ok11273: +ok11678: %t4 = getelementptr inbounds %S.json.Reader, ptr %t2, i32 0, i32 1 %t5 = load i64, ptr %t4 store i64 %t5, ptr %a6 %t7 = load ptr, ptr %a1 %t8 = call i8 @finch.json.peek(ptr %t7) %t9 = icmp eq i8 %t8, 45 - br i1 %t9, label %then11274, label %endif11276 -then11274: + br i1 %t9, label %then11679, label %endif11681 +then11679: %t10 = load ptr, ptr %a1 %t11 = icmp eq ptr %t10, null - br i1 %t11, label %panic11277, label %ok11278 -panic11277: - call void @finch_panic(ptr @.str.7238, i64 413, ptr @.str.7239) + br i1 %t11, label %panic11682, label %ok11683 +panic11682: + call void @finch_panic(ptr @.str.7446, i64 413, ptr @.str.7447) unreachable -ok11278: +ok11683: %t12 = getelementptr inbounds %S.json.Reader, ptr %t10, i32 0, i32 1 %t13 = load i64, ptr %t12 %t14 = add i64 %t13, 1 store i64 %t14, ptr %t12 - br label %endif11276 -endif11276: - br label %while.cond11279 -while.cond11279: + br label %endif11681 +endif11681: + br label %while.cond11684 +while.cond11684: %t15 = load ptr, ptr %a1 %t16 = icmp eq ptr %t15, null - br i1 %t16, label %panic11282, label %ok11283 -panic11282: - call void @finch_panic(ptr @.str.7240, i64 415, ptr @.str.7241) + br i1 %t16, label %panic11687, label %ok11688 +panic11687: + call void @finch_panic(ptr @.str.7448, i64 415, ptr @.str.7449) unreachable -ok11283: +ok11688: %t17 = getelementptr inbounds %S.json.Reader, ptr %t15, i32 0, i32 1 %t18 = load i64, ptr %t17 %t19 = load ptr, ptr %a1 %t20 = icmp eq ptr %t19, null - br i1 %t20, label %panic11284, label %ok11285 -panic11284: - call void @finch_panic(ptr @.str.7242, i64 415, ptr @.str.7243) + br i1 %t20, label %panic11689, label %ok11690 +panic11689: + call void @finch_panic(ptr @.str.7450, i64 415, ptr @.str.7451) unreachable -ok11285: +ok11690: %t21 = getelementptr inbounds %S.json.Reader, ptr %t19, i32 0, i32 0 %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %t21, i32 0, i32 1 %t23 = load i64, ptr %t22 %t24 = icmp slt i64 %t18, %t23 - br label %logic.from11286 -logic.from11286: - br i1 %t24, label %logic.rhs11287, label %logic.end11288 -logic.rhs11287: + br label %logic.from11691 +logic.from11691: + br i1 %t24, label %logic.rhs11692, label %logic.end11693 +logic.rhs11692: %t25 = load ptr, ptr %a1 %t26 = icmp eq ptr %t25, null - br i1 %t26, label %panic11289, label %ok11290 -panic11289: - call void @finch_panic(ptr @.str.7244, i64 415, ptr @.str.7245) + br i1 %t26, label %panic11694, label %ok11695 +panic11694: + call void @finch_panic(ptr @.str.7452, i64 415, ptr @.str.7453) unreachable -ok11290: +ok11695: %t27 = getelementptr inbounds %S.json.Reader, ptr %t25, i32 0, i32 0 %t28 = load ptr, ptr %a1 %t29 = icmp eq ptr %t28, null - br i1 %t29, label %panic11291, label %ok11292 -panic11291: - call void @finch_panic(ptr @.str.7246, i64 415, ptr @.str.7247) + br i1 %t29, label %panic11696, label %ok11697 +panic11696: + call void @finch_panic(ptr @.str.7454, i64 415, ptr @.str.7455) unreachable -ok11292: +ok11697: %t30 = getelementptr inbounds %S.json.Reader, ptr %t28, i32 0, i32 1 %t31 = load i64, ptr %t30 %t32 = load { ptr, i64, i64 }, ptr %t27 %t33 = extractvalue { ptr, i64, i64 } %t32, 1 %t34 = icmp uge i64 %t31, %t33 - br i1 %t34, label %range11293, label %inrange11294 -range11293: - call void @finch_panic_index(ptr @.str.7248, i64 415, i64 %t31, i64 %t33) + br i1 %t34, label %range11698, label %inrange11699 +range11698: + call void @finch_panic_index(ptr @.str.7456, i64 415, i64 %t31, i64 %t33) unreachable -inrange11294: +inrange11699: %t35 = extractvalue { ptr, i64, i64 } %t32, 0 %t36 = getelementptr inbounds i8, ptr %t35, i64 %t31 %t37 = load i8, ptr %t36 %t38 = icmp uge i8 %t37, 48 - br label %logic.from11295 -logic.from11295: - br i1 %t38, label %logic.rhs11296, label %logic.end11297 -logic.rhs11296: + br label %logic.from11700 +logic.from11700: + br i1 %t38, label %logic.rhs11701, label %logic.end11702 +logic.rhs11701: %t39 = load ptr, ptr %a1 %t40 = icmp eq ptr %t39, null - br i1 %t40, label %panic11298, label %ok11299 -panic11298: - call void @finch_panic(ptr @.str.7249, i64 415, ptr @.str.7250) + br i1 %t40, label %panic11703, label %ok11704 +panic11703: + call void @finch_panic(ptr @.str.7457, i64 415, ptr @.str.7458) unreachable -ok11299: +ok11704: %t41 = getelementptr inbounds %S.json.Reader, ptr %t39, i32 0, i32 0 %t42 = load ptr, ptr %a1 %t43 = icmp eq ptr %t42, null - br i1 %t43, label %panic11300, label %ok11301 -panic11300: - call void @finch_panic(ptr @.str.7251, i64 415, ptr @.str.7252) + br i1 %t43, label %panic11705, label %ok11706 +panic11705: + call void @finch_panic(ptr @.str.7459, i64 415, ptr @.str.7460) unreachable -ok11301: +ok11706: %t44 = getelementptr inbounds %S.json.Reader, ptr %t42, i32 0, i32 1 %t45 = load i64, ptr %t44 %t46 = load { ptr, i64, i64 }, ptr %t41 %t47 = extractvalue { ptr, i64, i64 } %t46, 1 %t48 = icmp uge i64 %t45, %t47 - br i1 %t48, label %range11302, label %inrange11303 -range11302: - call void @finch_panic_index(ptr @.str.7253, i64 415, i64 %t45, i64 %t47) + br i1 %t48, label %range11707, label %inrange11708 +range11707: + call void @finch_panic_index(ptr @.str.7461, i64 415, i64 %t45, i64 %t47) unreachable -inrange11303: +inrange11708: %t49 = extractvalue { ptr, i64, i64 } %t46, 0 %t50 = getelementptr inbounds i8, ptr %t49, i64 %t45 %t51 = load i8, ptr %t50 %t52 = icmp ule i8 %t51, 57 - br label %logic.rend11304 -logic.rend11304: - br label %logic.end11297 -logic.end11297: - %t53 = phi i1 [ false, %logic.from11295 ], [ %t52, %logic.rend11304 ] - br label %logic.from11305 -logic.from11305: - br i1 %t53, label %logic.end11307, label %logic.rhs11306 -logic.rhs11306: + br label %logic.rend11709 +logic.rend11709: + br label %logic.end11702 +logic.end11702: + %t53 = phi i1 [ false, %logic.from11700 ], [ %t52, %logic.rend11709 ] + br label %logic.from11710 +logic.from11710: + br i1 %t53, label %logic.end11712, label %logic.rhs11711 +logic.rhs11711: %t54 = load ptr, ptr %a1 %t55 = icmp eq ptr %t54, null - br i1 %t55, label %panic11308, label %ok11309 -panic11308: - call void @finch_panic(ptr @.str.7254, i64 415, ptr @.str.7255) + br i1 %t55, label %panic11713, label %ok11714 +panic11713: + call void @finch_panic(ptr @.str.7462, i64 415, ptr @.str.7463) unreachable -ok11309: +ok11714: %t56 = getelementptr inbounds %S.json.Reader, ptr %t54, i32 0, i32 0 %t57 = load ptr, ptr %a1 %t58 = icmp eq ptr %t57, null - br i1 %t58, label %panic11310, label %ok11311 -panic11310: - call void @finch_panic(ptr @.str.7256, i64 415, ptr @.str.7257) + br i1 %t58, label %panic11715, label %ok11716 +panic11715: + call void @finch_panic(ptr @.str.7464, i64 415, ptr @.str.7465) unreachable -ok11311: +ok11716: %t59 = getelementptr inbounds %S.json.Reader, ptr %t57, i32 0, i32 1 %t60 = load i64, ptr %t59 %t61 = load { ptr, i64, i64 }, ptr %t56 %t62 = extractvalue { ptr, i64, i64 } %t61, 1 %t63 = icmp uge i64 %t60, %t62 - br i1 %t63, label %range11312, label %inrange11313 -range11312: - call void @finch_panic_index(ptr @.str.7258, i64 415, i64 %t60, i64 %t62) + br i1 %t63, label %range11717, label %inrange11718 +range11717: + call void @finch_panic_index(ptr @.str.7466, i64 415, i64 %t60, i64 %t62) unreachable -inrange11313: +inrange11718: %t64 = extractvalue { ptr, i64, i64 } %t61, 0 %t65 = getelementptr inbounds i8, ptr %t64, i64 %t60 %t66 = load i8, ptr %t65 %t67 = icmp eq i8 %t66, 46 - br label %logic.rend11314 -logic.rend11314: - br label %logic.end11307 -logic.end11307: - %t68 = phi i1 [ true, %logic.from11305 ], [ %t67, %logic.rend11314 ] - br label %logic.from11315 -logic.from11315: - br i1 %t68, label %logic.end11317, label %logic.rhs11316 -logic.rhs11316: + br label %logic.rend11719 +logic.rend11719: + br label %logic.end11712 +logic.end11712: + %t68 = phi i1 [ true, %logic.from11710 ], [ %t67, %logic.rend11719 ] + br label %logic.from11720 +logic.from11720: + br i1 %t68, label %logic.end11722, label %logic.rhs11721 +logic.rhs11721: %t69 = load ptr, ptr %a1 %t70 = icmp eq ptr %t69, null - br i1 %t70, label %panic11318, label %ok11319 -panic11318: - call void @finch_panic(ptr @.str.7259, i64 415, ptr @.str.7260) + br i1 %t70, label %panic11723, label %ok11724 +panic11723: + call void @finch_panic(ptr @.str.7467, i64 415, ptr @.str.7468) unreachable -ok11319: +ok11724: %t71 = getelementptr inbounds %S.json.Reader, ptr %t69, i32 0, i32 0 %t72 = load ptr, ptr %a1 %t73 = icmp eq ptr %t72, null - br i1 %t73, label %panic11320, label %ok11321 -panic11320: - call void @finch_panic(ptr @.str.7261, i64 415, ptr @.str.7262) + br i1 %t73, label %panic11725, label %ok11726 +panic11725: + call void @finch_panic(ptr @.str.7469, i64 415, ptr @.str.7470) unreachable -ok11321: +ok11726: %t74 = getelementptr inbounds %S.json.Reader, ptr %t72, i32 0, i32 1 %t75 = load i64, ptr %t74 %t76 = load { ptr, i64, i64 }, ptr %t71 %t77 = extractvalue { ptr, i64, i64 } %t76, 1 %t78 = icmp uge i64 %t75, %t77 - br i1 %t78, label %range11322, label %inrange11323 -range11322: - call void @finch_panic_index(ptr @.str.7263, i64 415, i64 %t75, i64 %t77) + br i1 %t78, label %range11727, label %inrange11728 +range11727: + call void @finch_panic_index(ptr @.str.7471, i64 415, i64 %t75, i64 %t77) unreachable -inrange11323: +inrange11728: %t79 = extractvalue { ptr, i64, i64 } %t76, 0 %t80 = getelementptr inbounds i8, ptr %t79, i64 %t75 %t81 = load i8, ptr %t80 %t82 = icmp eq i8 %t81, 101 - br label %logic.rend11324 -logic.rend11324: - br label %logic.end11317 -logic.end11317: - %t83 = phi i1 [ true, %logic.from11315 ], [ %t82, %logic.rend11324 ] - br label %logic.from11325 -logic.from11325: - br i1 %t83, label %logic.end11327, label %logic.rhs11326 -logic.rhs11326: + br label %logic.rend11729 +logic.rend11729: + br label %logic.end11722 +logic.end11722: + %t83 = phi i1 [ true, %logic.from11720 ], [ %t82, %logic.rend11729 ] + br label %logic.from11730 +logic.from11730: + br i1 %t83, label %logic.end11732, label %logic.rhs11731 +logic.rhs11731: %t84 = load ptr, ptr %a1 %t85 = icmp eq ptr %t84, null - br i1 %t85, label %panic11328, label %ok11329 -panic11328: - call void @finch_panic(ptr @.str.7264, i64 415, ptr @.str.7265) + br i1 %t85, label %panic11733, label %ok11734 +panic11733: + call void @finch_panic(ptr @.str.7472, i64 415, ptr @.str.7473) unreachable -ok11329: +ok11734: %t86 = getelementptr inbounds %S.json.Reader, ptr %t84, i32 0, i32 0 %t87 = load ptr, ptr %a1 %t88 = icmp eq ptr %t87, null - br i1 %t88, label %panic11330, label %ok11331 -panic11330: - call void @finch_panic(ptr @.str.7266, i64 415, ptr @.str.7267) + br i1 %t88, label %panic11735, label %ok11736 +panic11735: + call void @finch_panic(ptr @.str.7474, i64 415, ptr @.str.7475) unreachable -ok11331: +ok11736: %t89 = getelementptr inbounds %S.json.Reader, ptr %t87, i32 0, i32 1 %t90 = load i64, ptr %t89 %t91 = load { ptr, i64, i64 }, ptr %t86 %t92 = extractvalue { ptr, i64, i64 } %t91, 1 %t93 = icmp uge i64 %t90, %t92 - br i1 %t93, label %range11332, label %inrange11333 -range11332: - call void @finch_panic_index(ptr @.str.7268, i64 415, i64 %t90, i64 %t92) + br i1 %t93, label %range11737, label %inrange11738 +range11737: + call void @finch_panic_index(ptr @.str.7476, i64 415, i64 %t90, i64 %t92) unreachable -inrange11333: +inrange11738: %t94 = extractvalue { ptr, i64, i64 } %t91, 0 %t95 = getelementptr inbounds i8, ptr %t94, i64 %t90 %t96 = load i8, ptr %t95 %t97 = icmp eq i8 %t96, 69 - br label %logic.rend11334 -logic.rend11334: - br label %logic.end11327 -logic.end11327: - %t98 = phi i1 [ true, %logic.from11325 ], [ %t97, %logic.rend11334 ] - br label %logic.from11335 -logic.from11335: - br i1 %t98, label %logic.end11337, label %logic.rhs11336 -logic.rhs11336: + br label %logic.rend11739 +logic.rend11739: + br label %logic.end11732 +logic.end11732: + %t98 = phi i1 [ true, %logic.from11730 ], [ %t97, %logic.rend11739 ] + br label %logic.from11740 +logic.from11740: + br i1 %t98, label %logic.end11742, label %logic.rhs11741 +logic.rhs11741: %t99 = load ptr, ptr %a1 %t100 = icmp eq ptr %t99, null - br i1 %t100, label %panic11338, label %ok11339 -panic11338: - call void @finch_panic(ptr @.str.7269, i64 415, ptr @.str.7270) + br i1 %t100, label %panic11743, label %ok11744 +panic11743: + call void @finch_panic(ptr @.str.7477, i64 415, ptr @.str.7478) unreachable -ok11339: +ok11744: %t101 = getelementptr inbounds %S.json.Reader, ptr %t99, i32 0, i32 0 %t102 = load ptr, ptr %a1 %t103 = icmp eq ptr %t102, null - br i1 %t103, label %panic11340, label %ok11341 -panic11340: - call void @finch_panic(ptr @.str.7271, i64 415, ptr @.str.7272) + br i1 %t103, label %panic11745, label %ok11746 +panic11745: + call void @finch_panic(ptr @.str.7479, i64 415, ptr @.str.7480) unreachable -ok11341: +ok11746: %t104 = getelementptr inbounds %S.json.Reader, ptr %t102, i32 0, i32 1 %t105 = load i64, ptr %t104 %t106 = load { ptr, i64, i64 }, ptr %t101 %t107 = extractvalue { ptr, i64, i64 } %t106, 1 %t108 = icmp uge i64 %t105, %t107 - br i1 %t108, label %range11342, label %inrange11343 -range11342: - call void @finch_panic_index(ptr @.str.7273, i64 415, i64 %t105, i64 %t107) + br i1 %t108, label %range11747, label %inrange11748 +range11747: + call void @finch_panic_index(ptr @.str.7481, i64 415, i64 %t105, i64 %t107) unreachable -inrange11343: +inrange11748: %t109 = extractvalue { ptr, i64, i64 } %t106, 0 %t110 = getelementptr inbounds i8, ptr %t109, i64 %t105 %t111 = load i8, ptr %t110 %t112 = icmp eq i8 %t111, 43 - br label %logic.rend11344 -logic.rend11344: - br label %logic.end11337 -logic.end11337: - %t113 = phi i1 [ true, %logic.from11335 ], [ %t112, %logic.rend11344 ] - br label %logic.from11345 -logic.from11345: - br i1 %t113, label %logic.end11347, label %logic.rhs11346 -logic.rhs11346: + br label %logic.rend11749 +logic.rend11749: + br label %logic.end11742 +logic.end11742: + %t113 = phi i1 [ true, %logic.from11740 ], [ %t112, %logic.rend11749 ] + br label %logic.from11750 +logic.from11750: + br i1 %t113, label %logic.end11752, label %logic.rhs11751 +logic.rhs11751: %t114 = load ptr, ptr %a1 %t115 = icmp eq ptr %t114, null - br i1 %t115, label %panic11348, label %ok11349 -panic11348: - call void @finch_panic(ptr @.str.7274, i64 415, ptr @.str.7275) + br i1 %t115, label %panic11753, label %ok11754 +panic11753: + call void @finch_panic(ptr @.str.7482, i64 415, ptr @.str.7483) unreachable -ok11349: +ok11754: %t116 = getelementptr inbounds %S.json.Reader, ptr %t114, i32 0, i32 0 %t117 = load ptr, ptr %a1 %t118 = icmp eq ptr %t117, null - br i1 %t118, label %panic11350, label %ok11351 -panic11350: - call void @finch_panic(ptr @.str.7276, i64 415, ptr @.str.7277) + br i1 %t118, label %panic11755, label %ok11756 +panic11755: + call void @finch_panic(ptr @.str.7484, i64 415, ptr @.str.7485) unreachable -ok11351: +ok11756: %t119 = getelementptr inbounds %S.json.Reader, ptr %t117, i32 0, i32 1 %t120 = load i64, ptr %t119 %t121 = load { ptr, i64, i64 }, ptr %t116 %t122 = extractvalue { ptr, i64, i64 } %t121, 1 %t123 = icmp uge i64 %t120, %t122 - br i1 %t123, label %range11352, label %inrange11353 -range11352: - call void @finch_panic_index(ptr @.str.7278, i64 415, i64 %t120, i64 %t122) + br i1 %t123, label %range11757, label %inrange11758 +range11757: + call void @finch_panic_index(ptr @.str.7486, i64 415, i64 %t120, i64 %t122) unreachable -inrange11353: +inrange11758: %t124 = extractvalue { ptr, i64, i64 } %t121, 0 %t125 = getelementptr inbounds i8, ptr %t124, i64 %t120 %t126 = load i8, ptr %t125 %t127 = icmp eq i8 %t126, 45 - br label %logic.rend11354 -logic.rend11354: - br label %logic.end11347 -logic.end11347: - %t128 = phi i1 [ true, %logic.from11345 ], [ %t127, %logic.rend11354 ] - br label %logic.rend11355 -logic.rend11355: - br label %logic.end11288 -logic.end11288: - %t129 = phi i1 [ false, %logic.from11286 ], [ %t128, %logic.rend11355 ] - br i1 %t129, label %while.body11280, label %while.end11281 -while.body11280: + br label %logic.rend11759 +logic.rend11759: + br label %logic.end11752 +logic.end11752: + %t128 = phi i1 [ true, %logic.from11750 ], [ %t127, %logic.rend11759 ] + br label %logic.rend11760 +logic.rend11760: + br label %logic.end11693 +logic.end11693: + %t129 = phi i1 [ false, %logic.from11691 ], [ %t128, %logic.rend11760 ] + br i1 %t129, label %while.body11685, label %while.end11686 +while.body11685: %t130 = load ptr, ptr %a1 %t131 = icmp eq ptr %t130, null - br i1 %t131, label %panic11356, label %ok11357 -panic11356: - call void @finch_panic(ptr @.str.7279, i64 416, ptr @.str.7280) + br i1 %t131, label %panic11761, label %ok11762 +panic11761: + call void @finch_panic(ptr @.str.7487, i64 416, ptr @.str.7488) unreachable -ok11357: +ok11762: %t132 = getelementptr inbounds %S.json.Reader, ptr %t130, i32 0, i32 1 %t133 = load i64, ptr %t132 %t134 = add i64 %t133, 1 store i64 %t134, ptr %t132 - br label %while.cond11279 -while.end11281: + br label %while.cond11684 +while.end11686: %t135 = load ptr, ptr %a1 %t136 = icmp eq ptr %t135, null - br i1 %t136, label %panic11358, label %ok11359 -panic11358: - call void @finch_panic(ptr @.str.7281, i64 418, ptr @.str.7282) + br i1 %t136, label %panic11763, label %ok11764 +panic11763: + call void @finch_panic(ptr @.str.7489, i64 418, ptr @.str.7490) unreachable -ok11359: +ok11764: %t137 = getelementptr inbounds %S.json.Reader, ptr %t135, i32 0, i32 0 %t138 = load { ptr, i64, i64 }, ptr %t137 store { ptr, i64, i64 } %t138, ptr %a139 %t141 = load i64, ptr %a6 %t142 = load ptr, ptr %a1 %t143 = icmp eq ptr %t142, null - br i1 %t143, label %panic11360, label %ok11361 -panic11360: - call void @finch_panic(ptr @.str.7284, i64 418, ptr @.str.7285) + br i1 %t143, label %panic11765, label %ok11766 +panic11765: + call void @finch_panic(ptr @.str.7492, i64 418, ptr @.str.7493) unreachable -ok11361: +ok11766: %t144 = getelementptr inbounds %S.json.Reader, ptr %t142, i32 0, i32 1 %t145 = load i64, ptr %t144 - call void @finch_str_sub(ptr %a140, ptr %a139, i64 %t141, i64 %t145, ptr @.str.7283, i64 418) + call void @finch_str_sub(ptr %a140, ptr %a139, i64 %t141, i64 %t145, ptr @.str.7491, i64 418) %t146 = load { ptr, i64, i64 }, ptr %a140 store { ptr, i64, i64 } zeroinitializer, ptr %a147 store double 0.0, ptr %a148 @@ -112629,25 +116654,25 @@ ok11361: store { ptr, i64, i64 } %t146, ptr %a153 call void @finch_str_drop(ptr %a153) %t154 = load double, ptr %a148 - br i1 %t151, label %or.failed11362, label %or.ok11363 -or.failed11362: + br i1 %t151, label %or.failed11767, label %or.ok11768 +or.failed11767: store { ptr, i64, i64 } %t152, ptr %a155 %t156 = load i64, ptr %a6 %t157 = load ptr, ptr %a1 %t158 = icmp eq ptr %t157, null - br i1 %t158, label %panic11364, label %ok11365 -panic11364: - call void @finch_panic(ptr @.str.7286, i64 419, ptr @.str.7287) + br i1 %t158, label %panic11769, label %ok11770 +panic11769: + call void @finch_panic(ptr @.str.7494, i64 419, ptr @.str.7495) unreachable -ok11365: +ok11770: %t159 = getelementptr inbounds %S.json.Reader, ptr %t157, i32 0, i32 1 store i64 %t156, ptr %t159 %t160 = load ptr, ptr %a1 - %t161 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t160, { ptr, i64, i64 } { ptr @.str.7288, i64 8, i64 0 }) + %t161 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t160, { ptr, i64, i64 } { ptr @.str.7496, i64 8, i64 0 }) call void @finch_str_drop(ptr %a155) %t162 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t161, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t162 -or.ok11363: +or.ok11768: store double %t154, ptr %a163 %t164 = load double, ptr %a163 %t165 = call %S.json.Json @finch.json.new_number(double %t164) @@ -112674,44 +116699,44 @@ entry: store i8 %t4, ptr %a5 %t6 = load ptr, ptr %a1 %t7 = icmp eq ptr %t6, null - br i1 %t7, label %panic11366, label %ok11367 -panic11366: - call void @finch_panic(ptr @.str.7289, i64 428, ptr @.str.7290) + br i1 %t7, label %panic11771, label %ok11772 +panic11771: + call void @finch_panic(ptr @.str.7497, i64 428, ptr @.str.7498) unreachable -ok11367: +ok11772: %t8 = getelementptr inbounds %S.json.Reader, ptr %t6, i32 0, i32 1 %t9 = load i64, ptr %t8 %t10 = load ptr, ptr %a1 %t11 = icmp eq ptr %t10, null - br i1 %t11, label %panic11368, label %ok11369 -panic11368: - call void @finch_panic(ptr @.str.7291, i64 428, ptr @.str.7292) + br i1 %t11, label %panic11773, label %ok11774 +panic11773: + call void @finch_panic(ptr @.str.7499, i64 428, ptr @.str.7500) unreachable -ok11369: +ok11774: %t12 = getelementptr inbounds %S.json.Reader, ptr %t10, i32 0, i32 0 %t13 = getelementptr inbounds { ptr, i64, i64 }, ptr %t12, i32 0, i32 1 %t14 = load i64, ptr %t13 %t15 = icmp sge i64 %t9, %t14 - br i1 %t15, label %then11370, label %endif11372 -then11370: + br i1 %t15, label %then11775, label %endif11777 +then11775: %t16 = load ptr, ptr %a1 - %t17 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t16, { ptr, i64, i64 } { ptr @.str.7293, i64 7, i64 0 }) + %t17 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t16, { ptr, i64, i64 } { ptr @.str.7501, i64 7, i64 0 }) %t18 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t17, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t18 -endif11372: +endif11777: %t19 = load i8, ptr %a5 %t20 = icmp eq i8 %t19, 123 - br i1 %t20, label %then11373, label %endif11375 -then11373: + br i1 %t20, label %then11778, label %endif11780 +then11778: %t21 = call %S.json.Json @finch.json.new_object() store %S.json.Json %t21, ptr %a22 %t23 = load ptr, ptr %a1 %t24 = icmp eq ptr %t23, null - br i1 %t24, label %panic11376, label %ok11377 -panic11376: - call void @finch_panic(ptr @.str.7294, i64 433, ptr @.str.7295) + br i1 %t24, label %panic11781, label %ok11782 +panic11781: + call void @finch_panic(ptr @.str.7502, i64 433, ptr @.str.7503) unreachable -ok11377: +ok11782: %t25 = getelementptr inbounds %S.json.Reader, ptr %t23, i32 0, i32 1 %t26 = load i64, ptr %t25 %t27 = add i64 %t26, 1 @@ -112721,15 +116746,15 @@ ok11377: %t29 = load ptr, ptr %a1 %t30 = call i8 @finch.json.peek(ptr %t29) %t31 = icmp eq i8 %t30, 125 - br i1 %t31, label %then11378, label %endif11380 -then11378: + br i1 %t31, label %then11783, label %endif11785 +then11783: %t32 = load ptr, ptr %a1 %t33 = icmp eq ptr %t32, null - br i1 %t33, label %panic11381, label %ok11382 -panic11381: - call void @finch_panic(ptr @.str.7296, i64 436, ptr @.str.7297) + br i1 %t33, label %panic11786, label %ok11787 +panic11786: + call void @finch_panic(ptr @.str.7504, i64 436, ptr @.str.7505) unreachable -ok11382: +ok11787: %t34 = getelementptr inbounds %S.json.Reader, ptr %t32, i32 0, i32 1 %t35 = load i64, ptr %t34 %t36 = add i64 %t35, 1 @@ -112738,58 +116763,58 @@ ok11382: %t38 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 %t39 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t38, %S.json.Json %t37, 1 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t39 -endif11380: - br label %while.cond11383 -while.cond11383: - br label %while.body11384 -while.body11384: +endif11785: + br label %while.cond11788 +while.cond11788: + br label %while.body11789 +while.body11789: %t40 = load ptr, ptr %a1 call void @finch.json.skip_space(ptr %t40) %t41 = load ptr, ptr %a1 %t42 = call i8 @finch.json.peek(ptr %t41) %t43 = icmp ne i8 %t42, 34 - br i1 %t43, label %then11386, label %endif11388 -then11386: + br i1 %t43, label %then11791, label %endif11793 +then11791: %t44 = load ptr, ptr %a1 - %t45 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t44, { ptr, i64, i64 } { ptr @.str.7298, i64 15, i64 0 }) + %t45 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t44, { ptr, i64, i64 } { ptr @.str.7506, i64 15, i64 0 }) call void @finch.drop.S_json_Json(ptr %a22) %t46 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t45, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t46 -endif11388: +endif11793: %t47 = load ptr, ptr %a1 %t48 = call { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } @finch.json.read_string(ptr %t47) %t49 = extractvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t48, 0 %t50 = xor i1 %t49, true %t51 = extractvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t48, 2 %t52 = extractvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t48, 1 - br i1 %t50, label %try.failed11389, label %try.ok11390 -try.failed11389: + br i1 %t50, label %try.failed11794, label %try.ok11795 +try.failed11794: call void @finch.drop.S_json_Json(ptr %a22) %t53 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t51, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t53 -try.ok11390: +try.ok11795: store { ptr, i64, i64 } %t52, ptr %a54 %t55 = load ptr, ptr %a1 call void @finch.json.skip_space(ptr %t55) %t56 = load ptr, ptr %a1 %t57 = call i8 @finch.json.peek(ptr %t56) %t58 = icmp ne i8 %t57, 58 - br i1 %t58, label %then11391, label %endif11393 -then11391: + br i1 %t58, label %then11796, label %endif11798 +then11796: %t59 = load ptr, ptr %a1 - %t60 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t59, { ptr, i64, i64 } { ptr @.str.7299, i64 3, i64 0 }) + %t60 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t59, { ptr, i64, i64 } { ptr @.str.7507, i64 3, i64 0 }) call void @finch_str_drop(ptr %a54) call void @finch.drop.S_json_Json(ptr %a22) %t61 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t60, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t61 -endif11393: +endif11798: %t62 = load ptr, ptr %a1 %t63 = icmp eq ptr %t62, null - br i1 %t63, label %panic11394, label %ok11395 -panic11394: - call void @finch_panic(ptr @.str.7300, i64 449, ptr @.str.7301) + br i1 %t63, label %panic11799, label %ok11800 +panic11799: + call void @finch_panic(ptr @.str.7508, i64 449, ptr @.str.7509) unreachable -ok11395: +ok11800: %t64 = getelementptr inbounds %S.json.Reader, ptr %t62, i32 0, i32 1 %t65 = load i64, ptr %t64 %t66 = add i64 %t65, 1 @@ -112800,13 +116825,13 @@ ok11395: %t70 = xor i1 %t69, true %t71 = extractvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t68, 2 %t72 = extractvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t68, 1 - br i1 %t70, label %try.failed11396, label %try.ok11397 -try.failed11396: + br i1 %t70, label %try.failed11801, label %try.ok11802 +try.failed11801: call void @finch_str_drop(ptr %a54) call void @finch.drop.S_json_Json(ptr %a22) %t73 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t71, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t73 -try.ok11397: +try.ok11802: store %S.json.Json %t72, ptr %a74 %t75 = load { ptr, i64, i64 }, ptr %a54 %t76 = load %S.json.Json, ptr %a74 @@ -112816,35 +116841,35 @@ try.ok11397: %t78 = load ptr, ptr %a1 %t79 = call i8 @finch.json.peek(ptr %t78) %t80 = icmp eq i8 %t79, 44 - br i1 %t80, label %then11398, label %endif11400 -then11398: + br i1 %t80, label %then11803, label %endif11805 +then11803: %t81 = load ptr, ptr %a1 %t82 = icmp eq ptr %t81, null - br i1 %t82, label %panic11401, label %ok11402 -panic11401: - call void @finch_panic(ptr @.str.7302, i64 454, ptr @.str.7303) + br i1 %t82, label %panic11806, label %ok11807 +panic11806: + call void @finch_panic(ptr @.str.7510, i64 454, ptr @.str.7511) unreachable -ok11402: +ok11807: %t83 = getelementptr inbounds %S.json.Reader, ptr %t81, i32 0, i32 1 %t84 = load i64, ptr %t83 %t85 = add i64 %t84, 1 store i64 %t85, ptr %t83 call void @finch.drop.S_json_Json(ptr %a74) call void @finch_str_drop(ptr %a54) - br label %while.cond11383 -endif11400: + br label %while.cond11788 +endif11805: %t86 = load ptr, ptr %a1 %t87 = call i8 @finch.json.peek(ptr %t86) %t88 = icmp eq i8 %t87, 125 - br i1 %t88, label %then11403, label %endif11405 -then11403: + br i1 %t88, label %then11808, label %endif11810 +then11808: %t89 = load ptr, ptr %a1 %t90 = icmp eq ptr %t89, null - br i1 %t90, label %panic11406, label %ok11407 -panic11406: - call void @finch_panic(ptr @.str.7304, i64 458, ptr @.str.7305) + br i1 %t90, label %panic11811, label %ok11812 +panic11811: + call void @finch_panic(ptr @.str.7512, i64 458, ptr @.str.7513) unreachable -ok11407: +ok11812: %t91 = getelementptr inbounds %S.json.Reader, ptr %t89, i32 0, i32 1 %t92 = load i64, ptr %t91 %t93 = add i64 %t92, 1 @@ -112855,28 +116880,28 @@ ok11407: %t95 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 %t96 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t95, %S.json.Json %t94, 1 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t96 -endif11405: +endif11810: %t97 = load ptr, ptr %a1 - %t98 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t97, { ptr, i64, i64 } { ptr @.str.7306, i64 10, i64 0 }) + %t98 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t97, { ptr, i64, i64 } { ptr @.str.7514, i64 10, i64 0 }) call void @finch.drop.S_json_Json(ptr %a74) call void @finch_str_drop(ptr %a54) call void @finch.drop.S_json_Json(ptr %a22) %t99 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t98, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t99 -endif11375: +endif11780: %t100 = load i8, ptr %a5 %t101 = icmp eq i8 %t100, 91 - br i1 %t101, label %then11408, label %endif11410 -then11408: + br i1 %t101, label %then11813, label %endif11815 +then11813: %t102 = call %S.json.Json @finch.json.new_list() store %S.json.Json %t102, ptr %a103 %t104 = load ptr, ptr %a1 %t105 = icmp eq ptr %t104, null - br i1 %t105, label %panic11411, label %ok11412 -panic11411: - call void @finch_panic(ptr @.str.7307, i64 466, ptr @.str.7308) + br i1 %t105, label %panic11816, label %ok11817 +panic11816: + call void @finch_panic(ptr @.str.7515, i64 466, ptr @.str.7516) unreachable -ok11412: +ok11817: %t106 = getelementptr inbounds %S.json.Reader, ptr %t104, i32 0, i32 1 %t107 = load i64, ptr %t106 %t108 = add i64 %t107, 1 @@ -112886,15 +116911,15 @@ ok11412: %t110 = load ptr, ptr %a1 %t111 = call i8 @finch.json.peek(ptr %t110) %t112 = icmp eq i8 %t111, 93 - br i1 %t112, label %then11413, label %endif11415 -then11413: + br i1 %t112, label %then11818, label %endif11820 +then11818: %t113 = load ptr, ptr %a1 %t114 = icmp eq ptr %t113, null - br i1 %t114, label %panic11416, label %ok11417 -panic11416: - call void @finch_panic(ptr @.str.7309, i64 469, ptr @.str.7310) + br i1 %t114, label %panic11821, label %ok11822 +panic11821: + call void @finch_panic(ptr @.str.7517, i64 469, ptr @.str.7518) unreachable -ok11417: +ok11822: %t115 = getelementptr inbounds %S.json.Reader, ptr %t113, i32 0, i32 1 %t116 = load i64, ptr %t115 %t117 = add i64 %t116, 1 @@ -112903,23 +116928,23 @@ ok11417: %t119 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 %t120 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t119, %S.json.Json %t118, 1 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t120 -endif11415: - br label %while.cond11418 -while.cond11418: - br label %while.body11419 -while.body11419: +endif11820: + br label %while.cond11823 +while.cond11823: + br label %while.body11824 +while.body11824: %t121 = load ptr, ptr %a1 %t122 = call { i1, %S.json.Json, { ptr, i64, i64 } } @finch.json.read_value(ptr %t121) %t123 = extractvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t122, 0 %t124 = xor i1 %t123, true %t125 = extractvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t122, 2 %t126 = extractvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t122, 1 - br i1 %t124, label %try.failed11421, label %try.ok11422 -try.failed11421: + br i1 %t124, label %try.failed11826, label %try.ok11827 +try.failed11826: call void @finch.drop.S_json_Json(ptr %a103) %t127 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t125, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t127 -try.ok11422: +try.ok11827: store %S.json.Json %t126, ptr %a128 %t129 = load %S.json.Json, ptr %a128 call void @finch.json.Json.push(ptr %a103, %S.json.Json %t129) @@ -112928,34 +116953,34 @@ try.ok11422: %t131 = load ptr, ptr %a1 %t132 = call i8 @finch.json.peek(ptr %t131) %t133 = icmp eq i8 %t132, 44 - br i1 %t133, label %then11423, label %endif11425 -then11423: + br i1 %t133, label %then11828, label %endif11830 +then11828: %t134 = load ptr, ptr %a1 %t135 = icmp eq ptr %t134, null - br i1 %t135, label %panic11426, label %ok11427 -panic11426: - call void @finch_panic(ptr @.str.7311, i64 477, ptr @.str.7312) + br i1 %t135, label %panic11831, label %ok11832 +panic11831: + call void @finch_panic(ptr @.str.7519, i64 477, ptr @.str.7520) unreachable -ok11427: +ok11832: %t136 = getelementptr inbounds %S.json.Reader, ptr %t134, i32 0, i32 1 %t137 = load i64, ptr %t136 %t138 = add i64 %t137, 1 store i64 %t138, ptr %t136 call void @finch.drop.S_json_Json(ptr %a128) - br label %while.cond11418 -endif11425: + br label %while.cond11823 +endif11830: %t139 = load ptr, ptr %a1 %t140 = call i8 @finch.json.peek(ptr %t139) %t141 = icmp eq i8 %t140, 93 - br i1 %t141, label %then11428, label %endif11430 -then11428: + br i1 %t141, label %then11833, label %endif11835 +then11833: %t142 = load ptr, ptr %a1 %t143 = icmp eq ptr %t142, null - br i1 %t143, label %panic11431, label %ok11432 -panic11431: - call void @finch_panic(ptr @.str.7313, i64 481, ptr @.str.7314) + br i1 %t143, label %panic11836, label %ok11837 +panic11836: + call void @finch_panic(ptr @.str.7521, i64 481, ptr @.str.7522) unreachable -ok11432: +ok11837: %t144 = getelementptr inbounds %S.json.Reader, ptr %t142, i32 0, i32 1 %t145 = load i64, ptr %t144 %t146 = add i64 %t145, 1 @@ -112965,29 +116990,29 @@ ok11432: %t148 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 %t149 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t148, %S.json.Json %t147, 1 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t149 -endif11430: +endif11835: %t150 = load ptr, ptr %a1 - %t151 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t150, { ptr, i64, i64 } { ptr @.str.7315, i64 10, i64 0 }) + %t151 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t150, { ptr, i64, i64 } { ptr @.str.7523, i64 10, i64 0 }) call void @finch.drop.S_json_Json(ptr %a128) call void @finch.drop.S_json_Json(ptr %a103) %t152 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t151, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t152 -endif11410: +endif11815: %t153 = load i8, ptr %a5 %t154 = icmp eq i8 %t153, 34 - br i1 %t154, label %then11433, label %endif11435 -then11433: + br i1 %t154, label %then11838, label %endif11840 +then11838: %t155 = load ptr, ptr %a1 %t156 = call { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } @finch.json.read_string(ptr %t155) %t157 = extractvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t156, 0 %t158 = xor i1 %t157, true %t159 = extractvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t156, 2 %t160 = extractvalue { i1, { ptr, i64, i64 }, { ptr, i64, i64 } } %t156, 1 - br i1 %t158, label %try.failed11436, label %try.ok11437 -try.failed11436: + br i1 %t158, label %try.failed11841, label %try.ok11842 +try.failed11841: %t161 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t159, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t161 -try.ok11437: +try.ok11842: store { ptr, i64, i64 } %t160, ptr %a162 %t163 = load { ptr, i64, i64 }, ptr %a162 %t164 = call %S.json.Json @finch.json.new_text({ ptr, i64, i64 } %t163) @@ -112995,107 +117020,107 @@ try.ok11437: %t165 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 %t166 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t165, %S.json.Json %t164, 1 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t166 -endif11435: +endif11840: %t167 = load i8, ptr %a5 %t168 = icmp eq i8 %t167, 116 - br i1 %t168, label %then11438, label %endif11440 -then11438: + br i1 %t168, label %then11843, label %endif11845 +then11843: %t169 = load ptr, ptr %a1 - %t170 = call { i1, i8, { ptr, i64, i64 } } @finch.json.expect_word(ptr %t169, { ptr, i64, i64 } { ptr @.str.7316, i64 4, i64 0 }) + %t170 = call { i1, i8, { ptr, i64, i64 } } @finch.json.expect_word(ptr %t169, { ptr, i64, i64 } { ptr @.str.7524, i64 4, i64 0 }) %t171 = extractvalue { i1, i8, { ptr, i64, i64 } } %t170, 0 %t172 = xor i1 %t171, true %t173 = extractvalue { i1, i8, { ptr, i64, i64 } } %t170, 2 - br i1 %t172, label %try.failed11441, label %try.ok11442 -try.failed11441: + br i1 %t172, label %try.failed11846, label %try.ok11847 +try.failed11846: %t174 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t173, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t174 -try.ok11442: +try.ok11847: %t175 = call %S.json.Json @finch.json.new_bool(i1 true) %t176 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 %t177 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t176, %S.json.Json %t175, 1 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t177 -endif11440: +endif11845: %t178 = load i8, ptr %a5 %t179 = icmp eq i8 %t178, 102 - br i1 %t179, label %then11443, label %endif11445 -then11443: + br i1 %t179, label %then11848, label %endif11850 +then11848: %t180 = load ptr, ptr %a1 - %t181 = call { i1, i8, { ptr, i64, i64 } } @finch.json.expect_word(ptr %t180, { ptr, i64, i64 } { ptr @.str.7317, i64 5, i64 0 }) + %t181 = call { i1, i8, { ptr, i64, i64 } } @finch.json.expect_word(ptr %t180, { ptr, i64, i64 } { ptr @.str.7525, i64 5, i64 0 }) %t182 = extractvalue { i1, i8, { ptr, i64, i64 } } %t181, 0 %t183 = xor i1 %t182, true %t184 = extractvalue { i1, i8, { ptr, i64, i64 } } %t181, 2 - br i1 %t183, label %try.failed11446, label %try.ok11447 -try.failed11446: + br i1 %t183, label %try.failed11851, label %try.ok11852 +try.failed11851: %t185 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t184, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t185 -try.ok11447: +try.ok11852: %t186 = call %S.json.Json @finch.json.new_bool(i1 false) %t187 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 %t188 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t187, %S.json.Json %t186, 1 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t188 -endif11445: +endif11850: %t189 = load i8, ptr %a5 %t190 = icmp eq i8 %t189, 110 - br i1 %t190, label %then11448, label %endif11450 -then11448: + br i1 %t190, label %then11853, label %endif11855 +then11853: %t191 = load ptr, ptr %a1 - %t192 = call { i1, i8, { ptr, i64, i64 } } @finch.json.expect_word(ptr %t191, { ptr, i64, i64 } { ptr @.str.7318, i64 4, i64 0 }) + %t192 = call { i1, i8, { ptr, i64, i64 } } @finch.json.expect_word(ptr %t191, { ptr, i64, i64 } { ptr @.str.7526, i64 4, i64 0 }) %t193 = extractvalue { i1, i8, { ptr, i64, i64 } } %t192, 0 %t194 = xor i1 %t193, true %t195 = extractvalue { i1, i8, { ptr, i64, i64 } } %t192, 2 - br i1 %t194, label %try.failed11451, label %try.ok11452 -try.failed11451: + br i1 %t194, label %try.failed11856, label %try.ok11857 +try.failed11856: %t196 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t195, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t196 -try.ok11452: +try.ok11857: %t197 = call %S.json.Json @finch.json.new_null() %t198 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 %t199 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t198, %S.json.Json %t197, 1 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t199 -endif11450: +endif11855: %t200 = load i8, ptr %a5 %t201 = icmp eq i8 %t200, 45 - br label %logic.from11453 -logic.from11453: - br i1 %t201, label %logic.end11455, label %logic.rhs11454 -logic.rhs11454: + br label %logic.from11858 +logic.from11858: + br i1 %t201, label %logic.end11860, label %logic.rhs11859 +logic.rhs11859: %t202 = load i8, ptr %a5 %t203 = icmp uge i8 %t202, 48 - br label %logic.from11456 -logic.from11456: - br i1 %t203, label %logic.rhs11457, label %logic.end11458 -logic.rhs11457: + br label %logic.from11861 +logic.from11861: + br i1 %t203, label %logic.rhs11862, label %logic.end11863 +logic.rhs11862: %t204 = load i8, ptr %a5 %t205 = icmp ule i8 %t204, 57 - br label %logic.rend11459 -logic.rend11459: - br label %logic.end11458 -logic.end11458: - %t206 = phi i1 [ false, %logic.from11456 ], [ %t205, %logic.rend11459 ] - br label %logic.rend11460 -logic.rend11460: - br label %logic.end11455 -logic.end11455: - %t207 = phi i1 [ true, %logic.from11453 ], [ %t206, %logic.rend11460 ] - br i1 %t207, label %then11461, label %endif11463 -then11461: + br label %logic.rend11864 +logic.rend11864: + br label %logic.end11863 +logic.end11863: + %t206 = phi i1 [ false, %logic.from11861 ], [ %t205, %logic.rend11864 ] + br label %logic.rend11865 +logic.rend11865: + br label %logic.end11860 +logic.end11860: + %t207 = phi i1 [ true, %logic.from11858 ], [ %t206, %logic.rend11865 ] + br i1 %t207, label %then11866, label %endif11868 +then11866: %t208 = load ptr, ptr %a1 %t209 = call { i1, %S.json.Json, { ptr, i64, i64 } } @finch.json.read_number(ptr %t208) %t210 = extractvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t209, 0 %t211 = xor i1 %t210, true %t212 = extractvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t209, 2 %t213 = extractvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t209, 1 - br i1 %t211, label %try.failed11464, label %try.ok11465 -try.failed11464: + br i1 %t211, label %try.failed11869, label %try.ok11870 +try.failed11869: %t214 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t212, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t214 -try.ok11465: +try.ok11870: %t215 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 %t216 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t215, %S.json.Json %t213, 1 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t216 -endif11463: +endif11868: %t217 = load ptr, ptr %a1 - %t218 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t217, { ptr, i64, i64 } { ptr @.str.7319, i64 7, i64 0 }) + %t218 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %t217, { ptr, i64, i64 } { ptr @.str.7527, i64 7, i64 0 }) %t219 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t218, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t219 } @@ -113127,12 +117152,12 @@ entry: %t10 = xor i1 %t9, true %t11 = extractvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t8, 2 %t12 = extractvalue { i1, %S.json.Json, { ptr, i64, i64 } } %t8, 1 - br i1 %t10, label %try.failed11466, label %try.ok11467 -try.failed11466: + br i1 %t10, label %try.failed11871, label %try.ok11872 +try.failed11871: call void @finch.drop.S_json_Reader(ptr %a7) %t13 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t11, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t13 -try.ok11467: +try.ok11872: store %S.json.Json %t12, ptr %a14 call void @finch.json.skip_space(ptr %a7) %t15 = getelementptr inbounds %S.json.Reader, ptr %a7, i32 0, i32 1 @@ -113141,14 +117166,14 @@ try.ok11467: %t18 = getelementptr inbounds { ptr, i64, i64 }, ptr %t17, i32 0, i32 1 %t19 = load i64, ptr %t18 %t20 = icmp slt i64 %t16, %t19 - br i1 %t20, label %then11468, label %endif11470 -then11468: - %t21 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %a7, { ptr, i64, i64 } { ptr @.str.7320, i64 19, i64 0 }) + br i1 %t20, label %then11873, label %endif11875 +then11873: + %t21 = call { ptr, i64, i64 } @finch.json.unexpected(ptr %a7, { ptr, i64, i64 } { ptr @.str.7528, i64 19, i64 0 }) call void @finch.drop.S_json_Json(ptr %a14) call void @finch.drop.S_json_Reader(ptr %a7) %t22 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, { ptr, i64, i64 } %t21, 2 ret { i1, %S.json.Json, { ptr, i64, i64 } } %t22 -endif11470: +endif11875: %t23 = load %S.json.Json, ptr %a14 call void @finch.drop.S_json_Reader(ptr %a7) %t24 = insertvalue { i1, %S.json.Json, { ptr, i64, i64 } } zeroinitializer, i1 true, 0 @@ -113166,7 +117191,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t4, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t5 = load ptr, ptr %a1 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i64 %t3 - store { ptr, i64, i64 } { ptr @.str.7321, i64 18, i64 0 }, ptr %t6 + store { ptr, i64, i64 } { ptr @.str.7529, i64 18, i64 0 }, ptr %t6 store i64 %t4, ptr %t2 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t8 = load i64, ptr %t7 @@ -113174,7 +117199,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t9, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t10 = load ptr, ptr %a1 %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %t10, i64 %t8 - store { ptr, i64, i64 } { ptr @.str.7322, i64 12, i64 0 }, ptr %t11 + store { ptr, i64, i64 } { ptr @.str.7530, i64 12, i64 0 }, ptr %t11 store i64 %t9, ptr %t7 %t12 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t13 = load i64, ptr %t12 @@ -113182,7 +117207,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t14, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t15 = load ptr, ptr %a1 %t16 = getelementptr inbounds { ptr, i64, i64 }, ptr %t15, i64 %t13 - store { ptr, i64, i64 } { ptr @.str.7323, i64 12, i64 0 }, ptr %t16 + store { ptr, i64, i64 } { ptr @.str.7531, i64 12, i64 0 }, ptr %t16 store i64 %t14, ptr %t12 %t17 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t18 = load i64, ptr %t17 @@ -113190,7 +117215,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t19, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t20 = load ptr, ptr %a1 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t20, i64 %t18 - store { ptr, i64, i64 } { ptr @.str.7324, i64 12, i64 0 }, ptr %t21 + store { ptr, i64, i64 } { ptr @.str.7532, i64 12, i64 0 }, ptr %t21 store i64 %t19, ptr %t17 %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t23 = load i64, ptr %t22 @@ -113198,7 +117223,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t24, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t25 = load ptr, ptr %a1 %t26 = getelementptr inbounds { ptr, i64, i64 }, ptr %t25, i64 %t23 - store { ptr, i64, i64 } { ptr @.str.7325, i64 20, i64 0 }, ptr %t26 + store { ptr, i64, i64 } { ptr @.str.7533, i64 20, i64 0 }, ptr %t26 store i64 %t24, ptr %t22 %t27 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t28 = load i64, ptr %t27 @@ -113206,7 +117231,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t29, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t30 = load ptr, ptr %a1 %t31 = getelementptr inbounds { ptr, i64, i64 }, ptr %t30, i64 %t28 - store { ptr, i64, i64 } { ptr @.str.7326, i64 12, i64 0 }, ptr %t31 + store { ptr, i64, i64 } { ptr @.str.7534, i64 12, i64 0 }, ptr %t31 store i64 %t29, ptr %t27 %t32 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t33 = load i64, ptr %t32 @@ -113214,7 +117239,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t34, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t35 = load ptr, ptr %a1 %t36 = getelementptr inbounds { ptr, i64, i64 }, ptr %t35, i64 %t33 - store { ptr, i64, i64 } { ptr @.str.7327, i64 20, i64 0 }, ptr %t36 + store { ptr, i64, i64 } { ptr @.str.7535, i64 20, i64 0 }, ptr %t36 store i64 %t34, ptr %t32 %t37 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t38 = load i64, ptr %t37 @@ -113222,7 +117247,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t39, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t40 = load ptr, ptr %a1 %t41 = getelementptr inbounds { ptr, i64, i64 }, ptr %t40, i64 %t38 - store { ptr, i64, i64 } { ptr @.str.7328, i64 15, i64 0 }, ptr %t41 + store { ptr, i64, i64 } { ptr @.str.7536, i64 15, i64 0 }, ptr %t41 store i64 %t39, ptr %t37 %t42 = load { ptr, i64, i64 }, ptr %a1 ret { ptr, i64, i64 } %t42 @@ -113238,7 +117263,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t4, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t5 = load ptr, ptr %a1 %t6 = getelementptr inbounds { ptr, i64, i64 }, ptr %t5, i64 %t3 - store { ptr, i64, i64 } { ptr @.str.7329, i64 24981, i64 0 }, ptr %t6 + store { ptr, i64, i64 } { ptr @.str.7537, i64 24981, i64 0 }, ptr %t6 store i64 %t4, ptr %t2 %t7 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t8 = load i64, ptr %t7 @@ -113246,7 +117271,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t9, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t10 = load ptr, ptr %a1 %t11 = getelementptr inbounds { ptr, i64, i64 }, ptr %t10, i64 %t8 - store { ptr, i64, i64 } { ptr @.str.7330, i64 12884, i64 0 }, ptr %t11 + store { ptr, i64, i64 } { ptr @.str.7538, i64 12884, i64 0 }, ptr %t11 store i64 %t9, ptr %t7 %t12 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t13 = load i64, ptr %t12 @@ -113254,7 +117279,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t14, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t15 = load ptr, ptr %a1 %t16 = getelementptr inbounds { ptr, i64, i64 }, ptr %t15, i64 %t13 - store { ptr, i64, i64 } { ptr @.str.7331, i64 2846, i64 0 }, ptr %t16 + store { ptr, i64, i64 } { ptr @.str.7539, i64 2846, i64 0 }, ptr %t16 store i64 %t14, ptr %t12 %t17 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t18 = load i64, ptr %t17 @@ -113262,7 +117287,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t19, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t20 = load ptr, ptr %a1 %t21 = getelementptr inbounds { ptr, i64, i64 }, ptr %t20, i64 %t18 - store { ptr, i64, i64 } { ptr @.str.7332, i64 1406, i64 0 }, ptr %t21 + store { ptr, i64, i64 } { ptr @.str.7540, i64 1406, i64 0 }, ptr %t21 store i64 %t19, ptr %t17 %t22 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t23 = load i64, ptr %t22 @@ -113270,7 +117295,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t24, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t25 = load ptr, ptr %a1 %t26 = getelementptr inbounds { ptr, i64, i64 }, ptr %t25, i64 %t23 - store { ptr, i64, i64 } { ptr @.str.7333, i64 995, i64 0 }, ptr %t26 + store { ptr, i64, i64 } { ptr @.str.7541, i64 995, i64 0 }, ptr %t26 store i64 %t24, ptr %t22 %t27 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t28 = load i64, ptr %t27 @@ -113278,7 +117303,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t29, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t30 = load ptr, ptr %a1 %t31 = getelementptr inbounds { ptr, i64, i64 }, ptr %t30, i64 %t28 - store { ptr, i64, i64 } { ptr @.str.7334, i64 2539, i64 0 }, ptr %t31 + store { ptr, i64, i64 } { ptr @.str.7542, i64 2539, i64 0 }, ptr %t31 store i64 %t29, ptr %t27 %t32 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t33 = load i64, ptr %t32 @@ -113286,7 +117311,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t34, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t35 = load ptr, ptr %a1 %t36 = getelementptr inbounds { ptr, i64, i64 }, ptr %t35, i64 %t33 - store { ptr, i64, i64 } { ptr @.str.7335, i64 1792, i64 0 }, ptr %t36 + store { ptr, i64, i64 } { ptr @.str.7543, i64 1792, i64 0 }, ptr %t36 store i64 %t34, ptr %t32 %t37 = getelementptr inbounds { ptr, i64, i64 }, ptr %a1, i32 0, i32 1 %t38 = load i64, ptr %t37 @@ -113294,7 +117319,7 @@ entry: call void @finch_arr_reserve(ptr %a1, i64 %t39, i64 ptrtoint (ptr getelementptr ({ ptr, i64, i64 }, ptr null, i32 1) to i64)) %t40 = load ptr, ptr %a1 %t41 = getelementptr inbounds { ptr, i64, i64 }, ptr %t40, i64 %t38 - store { ptr, i64, i64 } { ptr @.str.7336, i64 365, i64 0 }, ptr %t41 + store { ptr, i64, i64 } { ptr @.str.7544, i64 365, i64 0 }, ptr %t41 store i64 %t39, ptr %t37 %t42 = load { ptr, i64, i64 }, ptr %a1 ret { ptr, i64, i64 } %t42 diff --git a/docs/en/for-engineers.md b/docs/en/for-engineers.md index faf00dd..a1b08b8 100644 --- a/docs/en/for-engineers.md +++ b/docs/en/for-engineers.md @@ -428,4 +428,4 @@ test (22 checks). - The driver uses `sh` utilities (`rm`, `mkdir`), so it needs a POSIX shell. - Generics are monomorphised (code size grows with instantiations); there are no trait bounds, a wrong use is an error inside the instantiated body. -- No payload enums yet (variants carry no data). + diff --git a/docs/en/for-technicians.md b/docs/en/for-technicians.md index 029b470..bdc368c 100644 --- a/docs/en/for-technicians.md +++ b/docs/en/for-technicians.md @@ -924,6 +924,29 @@ tests/cross.sh windows # every test built for Windows and run with Wine tests/cross.sh arm64 # every test built for ARM64 Linux and run with QEMU ``` +### Variants that hold values + +A variant can carry values. Make one with `Shape.Circle(2.0)`, take them out with `match`, which names them: + +```c +enum Shape { + Circle(float) + Rect(float, float) + Point +} + +fn Shape.area() -> float { + return match self { + Circle(r) -> 3.14 * r * r + Rect(w, h) -> w * h + Point -> 0.0 + } +} +``` + +`_` ignores a value. `match` must handle every variant (or end with `else`). Printing shows `Rect(2, 3.5)`. Such an enum is +copied and freed like a struct; it can't be compared with `==` (match on it). Variants of these enums can't have numbers. + --- ## 23. Enums and match @@ -1027,7 +1050,7 @@ write_file(path.join("out", "config.json"), json.pretty(doc)) Not there yet: -- Interfaces, and enums whose variants carry values (`Circle(radius)`). +- Interfaces. - Unicode-aware text: `.len`, `s[i]` and `upper()` work on bytes / ASCII. - Threads. - Windows on ARM64, 32-bit systems, WebAssembly. diff --git a/docs/pl/dla-inzynierow.md b/docs/pl/dla-inzynierow.md index 5af730b..6378e6d 100644 --- a/docs/pl/dla-inzynierow.md +++ b/docs/pl/dla-inzynierow.md @@ -421,4 +421,4 @@ serwer podpowiada dalej z ostatniej wersji, która się skompilowała. Test akce - Sterownik używa narzędzi `sh` (`rm`, `mkdir`), więc wymaga powłoki POSIX. - Generyki są monomorfizowane (kod rośnie z liczbą instancji); nie ma ograniczeń na typy, błędne użycie to błąd wewnątrz wygenerowanego ciała. -- Jeszcze nie ma enumów z danymi (warianty nie niosą wartości). + diff --git a/docs/pl/dla-technikow.md b/docs/pl/dla-technikow.md index 5a999da..506792d 100644 --- a/docs/pl/dla-technikow.md +++ b/docs/pl/dla-technikow.md @@ -928,6 +928,29 @@ tests/cross.sh windows # każdy test zbudowany na Windowsa i uruchomiony w tests/cross.sh arm64 # każdy test zbudowany na Linuksa ARM64 i uruchomiony w QEMU ``` +### Warianty z wartościami + +Wariant może nieść wartości. Tworzysz go przez `Shape.Circle(2.0)`, a wyciągasz `match`-em, który je nazywa: + +```c +enum Shape { + Circle(float) + Rect(float, float) + Point +} + +fn Shape.area() -> float { + return match self { + Circle(r) -> 3.14 * r * r + Rect(w, h) -> w * h + Point -> 0.0 + } +} +``` + +`_` pomija wartość. `match` musi obsłużyć każdy wariant (albo kończyć się `else`). Wypisanie pokazuje `Rect(2, 3.5)`. Taki enum +jest kopiowany i zwalniany jak struktura; nie da się go porównać przez `==` (użyj `match`). Warianty takich enumów nie mają numerów. + --- ## 23. Enumy i match @@ -1031,7 +1054,7 @@ write_file(path.join("out", "config.json"), json.pretty(dok)) Jeszcze nie ma: -- Interfejsów i enumów, których warianty niosą wartości (`Kolo(promien)`). +- Interfejsów. - Tekstu świadomego Unicode: `.len`, `s[i]` i `upper()` działają na bajtach / ASCII. - Wątków. - Windowsa na ARM64, systemów 32-bitowych, WebAssembly. diff --git a/notatka.txt b/notatka.txt deleted file mode 100644 index 1044ac2..0000000 --- a/notatka.txt +++ /dev/null @@ -1 +0,0 @@ -Kupić mleko \ No newline at end of file diff --git a/note.txt b/note.txt deleted file mode 100644 index 7d2e267..0000000 --- a/note.txt +++ /dev/null @@ -1 +0,0 @@ -Buy milk \ No newline at end of file diff --git a/src/gen.fch b/src/gen.fch index 3ba4b96..3fb7b65 100644 --- a/src/gen.fch +++ b/src/gen.fch @@ -63,6 +63,22 @@ struct Cleanup { int idx } +// An enum whose variants hold values (see sumStruct in parser.fch): it is a struct `tag, V_0, ...`. +// firsts[k] is the number of the struct field holding variant k's first value. +struct SumDef { + str module + str name + []str variants + []int counts + []int firsts + []ast.Node nodes +} + +struct SumPat { + int k + []ast.Node binds +} + struct Scope { []Var vars []ast.Node defers @@ -167,6 +183,7 @@ struct Gen { []ast.Type targs str instNote // " (while building max[Pixel])", added to errors found inside a generic []EnumDef enums + []SumDef sums []str done []str mm // names of methods that change self, for the mutation analysis int nvars // variables declared so far in this function @@ -483,6 +500,15 @@ fn findEnum(ptr[Gen] g, str module, str name) -> int { return -1 } +fn findSum(ptr[Gen] g, str module, str name) -> int { + for i in 0..g.sums.len { + if g.sums[i].module == module && g.sums[i].name == name { + return i + } + } + return -1 +} + fn progOf(ptr[Gen] g, str module) -> int { for i in 0..g.progs.len { if g.progs[i].module == module { @@ -1172,6 +1198,43 @@ fn formatFn(ptr[Gen] g, ast.Type t) -> str { label(g, next) loopEnd(g, l) bufText(g, "%buf", "}") + } else if t.kind == "struct" && findSum(g, t.module, t.name) >= 0 { + // Circle(2.5), Point + sm := g.sums[findSum(g, t.module, t.name)] + sd := g.structs[findStruct(g, t.module, t.name)] + st := llty(g, t) + tag := load(g, "i64", op(g, "getelementptr inbounds " + st + ", ptr %a, i32 0, i32 " + str(sd.lidx[0]))) + def := newLabel(g, "sum.other") + done := newLabel(g, "sum.done") + []str cases + []str labels + for k in 0..sm.variants.len { + labels.push(newLabel(g, "sum.v")) + cases.push("i64 " + str(k) + ", label %" + labels[k]) + } + emit(g, "switch i64 " + tag + ", label %" + def + " [ " + cases.join(" ") + " ]") + g.term = true + for k in 0..sm.variants.len { + label(g, labels[k]) + bufText(g, "%buf", sm.variants[k]) + if sm.counts[k] > 0 { + bufText(g, "%buf", "(") + for j in 0..sm.counts[k] { + if j > 0 { + bufText(g, "%buf", ", ") + } + fi := sm.firsts[k] + j + fp := op(g, "getelementptr inbounds " + st + ", ptr %a, i32 0, i32 " + str(sd.lidx[fi])) + emitFormat(g, "%buf", load(g, llty(g, sd.ftypes[fi]), fp), sd.ftypes[fi], true) + } + bufText(g, "%buf", ")") + } + br(g, done) + } + label(g, def) + bufText(g, "%buf", sm.name + "(?)") + br(g, done) + label(g, done) } else { sd := g.structs[findStruct(g, t.module, t.name)] st := llty(g, t) @@ -1460,6 +1523,24 @@ fn declare(ptr[Gen] g) { g.module = g.progs[pi].module for ei in 0..g.progs[pi].enums.len { e := g.progs[pi].enums[ei] + if e.flag { + if findEnum(g, g.module, e.name) >= 0 || findSum(g, g.module, e.name) >= 0 { + fail(g, e, "'" + e.name + "' is defined twice") + } + sd := SumDef(module: g.module, name: e.name) + first := 1 + for v in e.kids { + if sd.variants.contains(v.name) { + fail(g, v, "the enum " + e.name + " has the variant " + v.name + " twice") + } + sd.variants.push(v.name) + sd.counts.push(v.kids.len) + sd.firsts.push(first) + first += v.kids.len + } + g.sums.push(sd) + continue + } if findEnum(g, g.module, e.name) >= 0 || findStruct(g, g.module, e.name) >= 0 { fail(g, e, "'" + e.name + "' is defined twice") } @@ -2965,6 +3046,14 @@ fn matchGen(ptr[Gen] g, ast.Node e, bool asValue) -> Val { } mark := g.pending.len hold(g, subj) // a temporary subject lives through the arms + si := -1 + tagv := "" + if st.kind == "struct" { + si = findSum(g, st.module, st.name) + if si >= 0 { + tagv = op(g, "extractvalue " + llty(g, st) + " " + subj.v + ", " + str(g.structs[findStruct(g, st.module, st.name)].lidx[0])) + } + } end := newLabel(g, "match.end") hasElse := false reached := false // does any arm go on to the end? @@ -2980,28 +3069,61 @@ fn matchGen(ptr[Gen] g, ast.Node e, bool asValue) -> Val { } body := newLabel(g, "match.arm") next := newLabel(g, "match.next") + []ast.Node binds + bindK := -1 if arm.flag { hasElse = true br(g, body) } else { pats := arm.kids[0].kids for pi in 0..pats.len { - pv := patternValue(g, pats[pi], st) - if covered.contains(pv.v) && st.kind == "enum" { - fail(g, pats[pi], "this variant is already handled by an earlier arm") + hitv := "" + if si >= 0 { + sp := sumPattern(g, pats[pi], si) + if covered.contains(str(sp.k)) { + fail(g, pats[pi], "this variant is already handled by an earlier arm") + } + covered.push(str(sp.k)) + if sp.binds.len > 0 { + if pats.len > 1 { + fail(g, pats[pi], "an arm with several variants can't name their values") + } + binds = sp.binds + bindK = sp.k + } + hitv = op(g, "icmp eq i64 " + tagv + ", " + str(sp.k)) + } else { + pv := patternValue(g, pats[pi], st) + if covered.contains(pv.v) && st.kind == "enum" { + fail(g, pats[pi], "this variant is already handled by an earlier arm") + } + covered.push(pv.v) + hitv = compare(g, "==", subj, pv, pats[pi]).v } - covered.push(pv.v) - hit := compare(g, "==", subj, pv, pats[pi]) if pi == pats.len - 1 { - condBr(g, hit.v, body, next) + condBr(g, hitv, body, next) } else { more := newLabel(g, "match.or") - condBr(g, hit.v, body, more) + condBr(g, hitv, body, more) label(g, more) } } } label(g, body) + scoped := binds.len > 0 + if scoped { + pushScope(g) + sx := g.structs[findStruct(g, st.module, st.name)] + for j in 0..binds.len { + if binds[j].name == "_" { + continue + } + fi := g.sums[si].firsts[bindK] + j + ft := sx.ftypes[fi] + fv := op(g, "extractvalue " + llty(g, st) + " " + subj.v + ", " + str(sx.lidx[fi])) + addVar(g, binds[j], binds[j].name, ft, copyValue(g, fv, ft), true, true) + } + } node := arm.kids[1] if asValue { v := expr(g, node) @@ -3013,6 +3135,9 @@ fn matchGen(ptr[Gen] g, ast.Node e, bool asValue) -> Val { } v = coerce(g, v, resultTy, node, "this arm (the arms of a match have to give the same type)") out := own(g, v) + if scoped { + popScope(g) + } from := newLabel(g, "match.from") br(g, from) label(g, from) @@ -3029,6 +3154,9 @@ fn matchGen(ptr[Gen] g, ast.Node e, bool asValue) -> Val { if !g.term { reached = true } + if scoped { + popScope(g) + } br(g, end) } if !arm.flag { @@ -3036,7 +3164,17 @@ fn matchGen(ptr[Gen] g, ast.Node e, bool asValue) -> Val { } } if !hasElse { - if st.kind == "enum" { + if si >= 0 { + []str missing + for k in 0..g.sums[si].variants.len { + if !covered.contains(str(k)) { + missing.push(g.sums[si].variants[k]) + } + } + if missing.len > 0 { + fail(g, e, "this match doesn't handle " + missing.join(", ") + " (add them, or an 'else' arm)") + } + } else if st.kind == "enum" { ed := g.enums[findEnum(g, st.module, st.name)] []str missing for k in 0..ed.variants.len { @@ -3651,6 +3789,83 @@ fn enumNamed(ptr[Gen] g, ast.Node n) -> int { return -1 } +// Which payload enum does `n` name? Shape, or shapes.Shape. -1 if neither. +fn sumNamed(ptr[Gen] g, ast.Node n) -> int { + if n.kind == "var" && lookup(g, n.name) < 0 { + return findSum(g, g.module, n.name) + } + if n.kind == "member" && n.kids[0].kind == "var" && lookup(g, n.kids[0].name) < 0 && imports(g, n.kids[0].name) { + return findSum(g, n.kids[0].name, n.name) + } + return -1 +} + +fn sumVariant(ptr[Gen] g, int si, str name, ast.Node at) -> int { + sd := g.sums[si] + k := sd.variants.find(name) + if k < 0 { + fail(g, at, "the enum " + sd.name + " has no variant '" + name + "' (it has: " + sd.variants.join(", ") + ")") + } + return k +} + +// Shape.Circle(2.0), or Shape.Point +fn sumMake(ptr[Gen] g, int si, str vname, []ast.Node args, ast.Node at) -> Val { + sd := g.sums[si] + k := sumVariant(g, si, vname, at) + if args.len != sd.counts[k] { + if sd.counts[k] == 0 { + fail(g, at, vname + " holds nothing: write " + sd.name + "." + vname) + } + fail(g, at, vname + " holds " + str(sd.counts[k]) + " value(s), but got " + str(args.len) + ": " + sd.name + "." + vname + "(...)") + } + []ast.Node all + []str names + all.push(ast.Node(kind: "int", text: str(k), line: at.line, col: at.col, file: at.file)) + names.push("tag") + for j in 0..args.len { + all.push(args[j]) + names.push(vname + "_" + str(j)) + } + noteRef(g, at, at.col, vname.len, "```finch\n" + sd.name + "." + vname + "\n```", "", 0, 0) + return construct(g, findStruct(g, sd.module, sd.name), all, names, at) +} + +// the variant a match pattern names, and the names it binds: Circle(r) Shape.Rect(w, h) Point +fn sumPattern(ptr[Gen] g, ast.Node pat, int si) -> SumPat { + sd := g.sums[si] + name := "" + []ast.Node binds + if pat.kind == "var" && lookup(g, pat.name) < 0 { + name = pat.name + } else if pat.kind == "call" { + name = pat.name + binds = pat.kids + } else if pat.kind == "member" && sumNamed(g, pat.kids[0]) == si { + name = pat.name + } else if pat.kind == "method" && sumNamed(g, pat.kids[0]) == si { + name = pat.name + for q in 1..pat.kids.len { + binds.push(pat.kids[q]) + } + } else { + fail(g, pat, "this pattern is not a variant of " + sd.name + " (it has: " + sd.variants.join(", ") + ")") + } + k := sumVariant(g, si, name, pat) + if binds.len != sd.counts[k] { + if sd.counts[k] == 0 { + fail(g, pat, name + " holds nothing: write just " + name) + } + fail(g, pat, name + " holds " + str(sd.counts[k]) + " value(s): name them, like " + name + "(x), or use _ to ignore one") + } + for b in binds { + if b.kind != "var" { + fail(g, b, "write a name to hold the value (or _ to ignore it)") + } + } + return SumPat(k: k, binds: binds) +} + // Color.Red fn enumValue(ptr[Gen] g, ast.Node m, int ei) -> Val { ed := g.enums[ei] @@ -3663,6 +3878,18 @@ fn enumValue(ptr[Gen] g, ast.Node m, int ei) -> Val { } fn member(ptr[Gen] g, ast.Node m, bool write) -> Ref { + sm := sumNamed(g, m.kids[0]) + if sm >= 0 { + if write { + fail(g, m, "a variant of an enum can't be changed") + } + k := sumVariant(g, sm, m.name, m) + if g.sums[sm].counts[k] > 0 { + fail(g, m, m.name + " holds " + str(g.sums[sm].counts[k]) + " value(s): " + g.sums[sm].name + "." + m.name + "(...)") + } + []ast.Node none + return Ref(isPlace: false, val: sumMake(g, sm, m.name, none, m)) + } ei := enumNamed(g, m.kids[0]) if ei >= 0 { if write { @@ -4999,6 +5226,14 @@ fn noteMethod(ptr[Gen] g, ast.Node m, []docs.Doc list) { fn method(ptr[Gen] g, ast.Node m) -> Val { objNode := m.kids[0] + sm := sumNamed(g, objNode) + if sm >= 0 { + []ast.Node vals + for q in 1..m.kids.len { + vals.push(m.kids[q]) + } + return sumMake(g, sm, m.name, vals, m) + } if objNode.kind == "var" && lookup(g, objNode.name) < 0 { mn := objNode.name if !imports(g, mn) { diff --git a/src/parser.fch b/src/parser.fch index fb5e5e1..82c54ad 100644 --- a/src/parser.fch +++ b/src/parser.fch @@ -249,7 +249,11 @@ fn parseProgram(ptr[Parser] p) -> ast.Program { } else if at(p, "struct") { prog.structs.push(parseStruct(p)) } else if at(p, "enum") { - prog.enums.push(parseEnum(p)) + e := parseEnum(p) + prog.enums.push(e) + if e.flag { + prog.structs.push(sumStruct(e)) // an enum with values inside is stored as a struct (see sumStruct) + } } else { prog.fns.push(parseFn(p)) } @@ -259,6 +263,7 @@ fn parseProgram(ptr[Parser] p) -> ast.Program { // enum Color { Red, Green, Blue } enum Status { Ok = 200, NotFound = 404 } // The variants are numbered from 0 (or from the last number given) and are written Color.Red. +// A variant can hold values: enum Shape { Circle(float), Rect(float, float), Point } (e.flag is then true). fn parseEnum(ptr[Parser] p) -> ast.Node { e := node(p, "enum") expect(p, "enum", "'enum'") @@ -270,7 +275,25 @@ fn parseEnum(ptr[Parser] p) -> ast.Node { } v := node(p, "variant") v.name = expect(p, "ident", "a variant name, like Red").text + if accept(p, "(") { + e.flag = true + while !at(p, ")") { + f := node(p, "field") + f.ty = parseType(p) + v.kids.push(f) + if !accept(p, ",") { + break + } + } + expect(p, ")", "')' after the values of the variant") + if v.kids.len == 0 { + fail(p, cur(p), "the variant " + v.name + " has empty () : write just " + v.name + " if it holds nothing") + } + } if accept(p, "=") { + if e.flag { + fail(p, cur(p), "a variant can't have both values inside and a number") + } sign := "" if accept(p, "-") { sign = "-" @@ -286,9 +309,34 @@ fn parseEnum(ptr[Parser] p) -> ast.Node { if e.kids.len == 0 { fail(p, cur(p), "the enum " + e.name + " has no variants") } + if e.flag { + for v in e.kids { + if v.text.len > 0 { + fail(p, cur(p), "an enum whose variants hold values can't number them (" + v.name + " = " + v.text + ")") + } + } + } return e } +// An enum whose variants hold values is a struct underneath: a `tag` (which variant it is) and, one after the other, +// the values of every variant (Rect's are Rect_0, Rect_1). Only the tag's variant has values; the rest stay +// empty. It's simple and it makes copying, dropping and methods the struct's own. +fn sumStruct(ast.Node e) -> ast.Node { + s := ast.Node(kind: "struct", name: e.name, line: e.line, col: e.col, file: e.file) + tag := ast.Node(kind: "field", name: "tag", line: e.line, col: e.col, file: e.file) + tag.ty = ast.simple("int") + s.kids.push(tag) + for v in e.kids { + for j in 0..v.kids.len { + f := ast.Node(kind: "field", name: v.name + "_" + str(j), line: v.line, col: v.col, file: v.file) + f.ty = v.kids[j].ty + s.kids.push(f) + } + } + return s +} + // match value { A, B -> ... C -> ... else -> ... } // As a statement the arms are statements or { blocks }; as an expression they are expressions. fn parseMatch(ptr[Parser] p, bool asExpr) -> ast.Node { diff --git a/tests/new/fail/payload_missing.fch b/tests/new/fail/payload_missing.fch new file mode 100644 index 0000000..56fa3dd --- /dev/null +++ b/tests/new/fail/payload_missing.fch @@ -0,0 +1,12 @@ +// expect: this match doesn't handle Point +enum Shape { + Circle(float) + Point +} + +fn main() { + s := Shape.Circle(1.0) + match s { + Circle(r) -> print(r) + } +} diff --git a/tests/new/payload_enums.fch b/tests/new/payload_enums.fch new file mode 100644 index 0000000..b0fbaaa --- /dev/null +++ b/tests/new/payload_enums.fch @@ -0,0 +1,38 @@ +enum Shape { + Circle(float) + Rect(float, float) + Named(str, []int) + Point +} + +fn Shape.area() -> float { + return match self { + Circle(r) -> 3.0 * r * r + Rect(w, h) -> w * h + Named(_, sizes) -> float(sizes.len) + Point -> 0.0 + } +} + +fn describe(Shape s) -> str { + match s { + Shape.Circle(r) -> return "circle " + str(r) + Shape.Named(name, _) -> return "named " + name + else -> return "other" + } +} + +fn main() { + shapes := [Shape.Circle(2.0), Shape.Rect(2.0, 3.5), Shape.Named("tri", [1, 2, 3]), Shape.Point] + for s in shapes { + print(s, s.area(), describe(s)) + } + copy := shapes[2] + shapes.clear() + print(copy) + p := Shape.Point + match p { + Point -> print("a point") + else -> print("no") + } +} diff --git a/tests/new/payload_enums.out b/tests/new/payload_enums.out new file mode 100644 index 0000000..66a4dfd --- /dev/null +++ b/tests/new/payload_enums.out @@ -0,0 +1,6 @@ +Circle(2) 12 circle 2 +Rect(2, 3.5) 7 other +Named("tri", [1, 2, 3]) 3 named tri +Point 0 other +Named("tri", [1, 2, 3]) +a point